/** * [ref] —— 共享记忆库(org 盘)的**只读 HTTP 面**。 * * 路由:`GET /v1/shared-memory/stores`、`GET /v1/shared-memory/stores/:store/documents`、 * `GET /v1/shared-memory/stores/:store/document?path=`。本域零可变状态。 * * ───────────────────────────────────────────────────────────────────────────────────────────────── * 挂载条件 = store ∧ org 折叠面,**双在场**才有这个域(v2/F4 硬化) * ───────────────────────────────────────────────────────────────────────────────────────────────── * 供给面在场但授权面缺席时,这个域整体**不挂载** —— 请求落到全局 404 `not_found.route`。刻意不是 501: * · 501 的自述是「这个面存在,只是本部署没开」,它对一个连身份都无法被判定的调用方暴露了「这套部署 * 有共享记忆库」,并暗示补个配置就能读; * · 「store 好了先挂载、授权后补」是这条纪律真正要堵的中间态 —— 一个没有成员性判据的读面,唯一能做的 * 要么是全放(跨租户读)要么是全拒(伪装成故障),两个都比「这个面不存在」差。 * 能力广告(`capabilities.sharedMemory`)读的是**同一个合取式**,所以「说 yes ⟺ 面真能用」结构上成立。 * * ───────────────────────────────────────────────────────────────────────────────────────────────── * 授权:一次 snapshot,零第二真源 * ───────────────────────────────────────────────────────────────────────────────────────────────── * 每个请求取**一次** `provider.snapshot({ principal })` —— 与模型面(core 的 memory_list/memory_read) * 走的是同一个供给口、同一次绑定。可见的 store 集合因此按定义等于模型看到的那一份,HTTP 面不可能比 * 模型面多看见一个库。越界一律 404 且**与「这个库根本不存在」字节同形**:状态码、errorCode、message * 全同,差一个字就是一次成员性探针(某人能用 404 的差异枚举出别的 org 有哪些库)。 * * 文档**不存在**则另说(`not_found.shared_memory_document`):调用方已经证明了自己是这个库的成员, * 「库里没有这份文件」对他不是秘密,把它和「你不是成员」合并反而会让成员无法区分打错路径和权限问题。 */ import type { IncomingMessage, ServerResponse } from "node:http"; import type { RouteCtx, RouteMatch, RouteIdsOf } from "../route-ctx.js"; export declare function handleSharedMemory(req: IncomingMessage, res: ServerResponse, match: RouteMatch, ctx: RouteCtx): Promise; export declare const SHARED_MEMORY_ROUTES: readonly [{ readonly id: "shared-memory-stores"; readonly path: "/v1/shared-memory/stores"; readonly methods: readonly ["GET"]; }, { readonly id: "shared-memory-store-documents"; readonly pattern: RegExp; readonly label: "/v1/shared-memory/stores/:store/documents"; readonly methods: readonly ["GET"]; }, { readonly id: "shared-memory-store-document"; readonly pattern: RegExp; readonly label: "/v1/shared-memory/stores/:store/document"; readonly methods: readonly ["GET"]; }]; /** 本域可分派行的 `id` 闭集 —— handler 的 `switch` 按它判穷尽(漏一口 = 编译红)。 */ export type SharedMemoryRouteId = RouteIdsOf; //# sourceMappingURL=shared-memory.d.ts.map