@superbee/core 0.2.0-pre.10 → 0.2.0-pre.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -13,6 +13,27 @@ The additive `@superbee/core/artifact-contract` subpath provides pure v1 documen
13
13
  observation, request, receipt and capability decoders. See the [contract reference](https://github.com/Holaxis-ai/superbee/blob/main/packages/core/ARTIFACT-CONTRACT.md)
14
14
  for identity, provenance, lifecycle and host responsibilities.
15
15
 
16
+ ## Site capabilities
17
+
18
+ The additive `@superbee/core/site-capabilities` subpath is the contract for read-only tools a
19
+ site or a recipe pack provides (`SiteCapability`), and the one owner of their composition rules:
20
+ `composeSiteCapabilities` refuses duplicate names, `superbee_` names outside the generic tier and
21
+ names outside a pack's or site's namespace, orders generic, pack and site tools deterministically,
22
+ applies a surface's exclusions after those checks, enforces size limits and, with
23
+ `requireReadOnly`, refuses any capability not declared read-only. It returns frozen snapshots and
24
+ an identity digest for the surface's list. `toProviderTool`, `toPortalAdditionalTool`,
25
+ `toToolDescriptor` and `siteCapabilityFromPortalTool` are the explicit mappings to the existing
26
+ tool shapes. `checkSiteCapability` and `siteCapabilityConformanceCases` test a capability against
27
+ recorded fixtures (read-only declaration, dated results, closed error codes that never echo input,
28
+ bounded and deterministic output, same-origin URLs, citations of records the result contains, and
29
+ refusal of unknown arguments). `siteRecordSource` mints a `site-record` citation only for a path
30
+ the host admits, bound to the publication's digests.
31
+
32
+ Annotations such as `readOnlyHint` and `untrustedContentHint` are self-declared and enforce
33
+ nothing at runtime; the checks above test recorded fixtures, not the code. Treat them as a control
34
+ only for in-process code from the same reviewed deploy. The module has no Node built-in import, so
35
+ it runs unchanged in a Worker or a browser.
36
+
16
37
  ## Mutation attribution and local history
17
38
 
18
39
  `mutateDocument` and `prepareDocumentMutationCandidate` persist a supplied `actor` by default:
@@ -7,7 +7,8 @@
7
7
  * compare-and-swap decides every concurrent change to one document and never merges it. Any other
8
8
  * kind (a body update) or a kind its base contradicts is refused before anything is sent, and
9
9
  * never mapped to another operation. The managed fields the host owns are stripped before
10
- * sending; the host carries them from the stored document.
10
+ * sending; the host carries them from the stored document. The one exception is a bundle's
11
+ * creation ({@link WholeDocumentRequestOptions.mode} `import`), where nothing is stored yet.
11
12
  *
12
13
  * A deleted document leaves a tombstone on the host. A create of that id is refused as a
13
14
  * `version_conflict` naming the tombstone unless it acknowledges exactly the id's latest one
@@ -36,6 +37,19 @@ import { type HostedCarrier } from "./carrier.js";
36
37
  import { type HostedReadAdapter } from "./read-adapter.js";
37
38
  /** Frontmatter the host owns; no caller may set it, and the host carries it from the stored document. */
38
39
  export declare const HOSTED_MANAGED_FIELDS: ReadonlySet<string>;
40
+ /**
41
+ * The managed fields a bundle's creation carries as the folder states them: provenance a local
42
+ * engine stored, which nothing on the host could restore later. `generated` is a claim about who
43
+ * produced the content, not authority. Every other managed field ({@link IMPORT_DROPPED_FIELDS})
44
+ * never leaves.
45
+ */
46
+ export declare const IMPORT_CARRIED_FIELDS: readonly string[];
47
+ /**
48
+ * The managed fields a creation still drops: `superbee_updated_by` is the host's own attribution,
49
+ * and a `verified` event names a verifier and drives the trust tier, which an importer must not
50
+ * be able to assert.
51
+ */
52
+ export declare const IMPORT_DROPPED_FIELDS: readonly string[];
39
53
  /** The most frontmatter fields the kernel accepts on a create or replace. */
40
54
  export declare const FRONTMATTER_KEY_LIMIT = 32;
41
55
  /** The settlement mode a whole-document delivery must use. */
@@ -80,6 +94,11 @@ export type WholeDocumentRequest = {
80
94
  body: string;
81
95
  };
82
96
  recreates?: Version;
97
+ /** An `import` request only: the managed fields the document held, carried and dropped. */
98
+ provenance?: {
99
+ carried: string[];
100
+ dropped: string[];
101
+ };
83
102
  } | {
84
103
  kind: "replace";
85
104
  operationId: "documents.replace.v1";
@@ -116,14 +135,24 @@ export declare class WholeDocumentInputError extends Error {
116
135
  readonly code: "invalid_input" | "unsupported_operation";
117
136
  constructor(message: string, code?: "invalid_input" | "unsupported_operation");
118
137
  }
138
+ export interface WholeDocumentRequestOptions {
139
+ /**
140
+ * `write` (the default): every managed field is removed, as every write to an existing bundle
141
+ * needs. `import`: the document is part of a bundle's creation, where the host stores what it
142
+ * is sent and holds nothing to carry managed fields from, so {@link IMPORT_CARRIED_FIELDS}
143
+ * travel as the folder states them and {@link IMPORT_DROPPED_FIELDS} are removed. Only a create
144
+ * may be an import; any other operation is refused.
145
+ */
146
+ mode?: "write" | "import";
147
+ }
119
148
  /**
120
149
  * The request an intent becomes: the serialized document parsed under the bundle's edition,
121
- * managed fields removed, a create or a replace against `base` as its kind names. The kind is
122
- * checked first, so an unsupported kind is refused before its content is read. A document
123
- * whose frontmatter is not plain JSON (a date object, say) is refused here, because sending it
124
- * would change what it says.
150
+ * managed fields removed (for an `import`, the dropped ones), a create or a replace against
151
+ * `base` as its kind names. The kind is checked first, so an unsupported kind is refused before
152
+ * its content is read. A document whose frontmatter is not plain JSON (a date object, say) is
153
+ * refused here, because sending it would change what it says.
125
154
  */
126
- export declare function wholeDocumentRequest(bundleId: string, intent: Pick<OperationIntent, "kind" | "target" | "base" | "content" | "recreates">, okfVersion?: string): WholeDocumentRequest;
155
+ export declare function wholeDocumentRequest(bundleId: string, intent: Pick<OperationIntent, "kind" | "target" | "base" | "content" | "recreates">, okfVersion?: string, options?: WholeDocumentRequestOptions): WholeDocumentRequest;
127
156
  export interface WholeDocumentTransportOptions {
128
157
  carrier: HostedCarrier;
129
158
  bundleId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"whole-document-transport.d.ts","sourceRoot":"","sources":["../../src/hosted-transport/whole-document-transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"whole-document-transport.d.ts","sourceRoot":"","sources":["../../src/hosted-transport/whole-document-transport.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,8 @@
7
7
  * compare-and-swap decides every concurrent change to one document and never merges it. Any other
8
8
  * kind (a body update) or a kind its base contradicts is refused before anything is sent, and
9
9
  * never mapped to another operation. The managed fields the host owns are stripped before
10
- * sending; the host carries them from the stored document.
10
+ * sending; the host carries them from the stored document. The one exception is a bundle's
11
+ * creation ({@link WholeDocumentRequestOptions.mode} `import`), where nothing is stored yet.
11
12
  *
12
13
  * A deleted document leaves a tombstone on the host. A create of that id is refused as a
13
14
  * `version_conflict` naming the tombstone unless it acknowledges exactly the id's latest one
@@ -37,6 +38,19 @@ import { isContentVersion } from "../version-transport.js";
37
38
  import { OPERATIONS_RETENTION_SKEW_MS } from "./read-adapter.js";
38
39
  /** Frontmatter the host owns; no caller may set it, and the host carries it from the stored document. */
39
40
  export const HOSTED_MANAGED_FIELDS = new Set(["actor", "superbee_updated_by", "generated", "verified", "timestamp", "okf_version"]);
41
+ /**
42
+ * The managed fields a bundle's creation carries as the folder states them: provenance a local
43
+ * engine stored, which nothing on the host could restore later. `generated` is a claim about who
44
+ * produced the content, not authority. Every other managed field ({@link IMPORT_DROPPED_FIELDS})
45
+ * never leaves.
46
+ */
47
+ export const IMPORT_CARRIED_FIELDS = Object.freeze(["generated", "timestamp", "actor", "okf_version"]);
48
+ /**
49
+ * The managed fields a creation still drops: `superbee_updated_by` is the host's own attribution,
50
+ * and a `verified` event names a verifier and drives the trust tier, which an importer must not
51
+ * be able to assert.
52
+ */
53
+ export const IMPORT_DROPPED_FIELDS = Object.freeze([...HOSTED_MANAGED_FIELDS].filter((field) => !IMPORT_CARRIED_FIELDS.includes(field)));
40
54
  /** The most frontmatter fields the kernel accepts on a create or replace. */
41
55
  export const FRONTMATTER_KEY_LIMIT = 32;
42
56
  const UNSAFE_KEYS = new Set(["__proto__", "constructor", "prototype"]);
@@ -124,13 +138,16 @@ function jsonPure(value) {
124
138
  }
125
139
  /**
126
140
  * The request an intent becomes: the serialized document parsed under the bundle's edition,
127
- * managed fields removed, a create or a replace against `base` as its kind names. The kind is
128
- * checked first, so an unsupported kind is refused before its content is read. A document
129
- * whose frontmatter is not plain JSON (a date object, say) is refused here, because sending it
130
- * would change what it says.
141
+ * managed fields removed (for an `import`, the dropped ones), a create or a replace against
142
+ * `base` as its kind names. The kind is checked first, so an unsupported kind is refused before
143
+ * its content is read. A document whose frontmatter is not plain JSON (a date object, say) is
144
+ * refused here, because sending it would change what it says.
131
145
  */
132
- export function wholeDocumentRequest(bundleId, intent, okfVersion) {
146
+ export function wholeDocumentRequest(bundleId, intent, okfVersion, options = {}) {
133
147
  const operation = operationOf(intent);
148
+ const importing = options.mode === "import";
149
+ if (importing && operation !== "create")
150
+ throw new WholeDocumentInputError(`'${intent.target}' is a ${operation}, and only a create may carry imported provenance`, "unsupported_operation");
134
151
  // A delete names the version that leaves and nothing else: its content is never read or sent.
135
152
  if (operation === "delete")
136
153
  return { kind: "delete", operationId: OPERATION_IDS.delete, payload: { bundleId, documentId: intent.target, expectedVersion: intent.base } };
@@ -142,15 +159,24 @@ export function wholeDocumentRequest(bundleId, intent, okfVersion) {
142
159
  throw new WholeDocumentInputError(`'${intent.target}' does not parse: ${error.message}`);
143
160
  }
144
161
  const frontmatter = {};
162
+ const carried = [];
163
+ const dropped = [];
145
164
  for (const [key, value] of Object.entries(parsed.frontmatter)) {
146
165
  if (!HOSTED_MANAGED_FIELDS.has(key))
147
166
  frontmatter[key] = value;
167
+ else if (importing && IMPORT_CARRIED_FIELDS.includes(key)) {
168
+ frontmatter[key] = value;
169
+ carried.push(key);
170
+ }
171
+ else if (importing)
172
+ dropped.push(key);
148
173
  }
149
174
  if (!jsonPure(frontmatter))
150
175
  throw new WholeDocumentInputError(`'${intent.target}' has frontmatter that is not plain JSON`);
151
176
  // The kernel's input schema bounds, checked here so a document it would refuse is refused
152
- // before it leaves rather than answered and looked up.
153
- const keys = Object.keys(frontmatter);
177
+ // before it leaves rather than answered and looked up. The field count is of authored fields: a
178
+ // carried managed field is the host's to hold, as on every later write.
179
+ const keys = Object.keys(frontmatter).filter((key) => !HOSTED_MANAGED_FIELDS.has(key));
154
180
  if (keys.length > FRONTMATTER_KEY_LIMIT)
155
181
  throw new WholeDocumentInputError(`'${intent.target}' has ${keys.length} frontmatter fields; at most ${FRONTMATTER_KEY_LIMIT} are accepted`);
156
182
  if (typeof frontmatter.type !== "string" || frontmatter.type.trim() === "")
@@ -165,6 +191,7 @@ export function wholeDocumentRequest(bundleId, intent, okfVersion) {
165
191
  operationId: OPERATION_IDS.create,
166
192
  payload: { bundleId, documentId: intent.target, expectAbsent: true, frontmatter, body: parsed.body },
167
193
  ...(intent.recreates !== undefined ? { recreates: intent.recreates } : {}),
194
+ ...(importing ? { provenance: { carried, dropped } } : {}),
168
195
  }
169
196
  : { kind: "replace", operationId: OPERATION_IDS.replace, payload: { ...common, expectedVersion: intent.base } };
170
197
  }
@@ -1 +1 @@
1
- {"version":3,"file":"whole-document-transport.js","sourceRoot":"","sources":["../../src/hosted-transport/whole-document-transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"whole-document-transport.js","sourceRoot":"","sources":["../../src/hosted-transport/whole-document-transport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,339 @@
1
+ /**
2
+ * MCP tool hints, plus Portal's `untrustedContentHint` and `privateInputHint`. Other keys pass
3
+ * through unchanged.
4
+ *
5
+ * These are self-declared: a capability states them about itself and nothing at runtime enforces
6
+ * them. `checkSiteCapability` tests recorded fixtures, and `composeSiteCapabilities` with
7
+ * `requireReadOnly` refuses a capability that does not declare `readOnlyHint: true`, but neither
8
+ * proves what the code does. They are acceptable as a control only for in-process code from the
9
+ * same reviewed deploy; never cite them as a control for code a host did not review.
10
+ */
11
+ export interface SiteCapabilityAnnotations {
12
+ readonly readOnlyHint?: boolean;
13
+ readonly destructiveHint?: boolean;
14
+ readonly idempotentHint?: boolean;
15
+ readonly openWorldHint?: boolean;
16
+ /** The result carries text authored or copied by others: a model must treat it as data. */
17
+ readonly untrustedContentHint?: boolean;
18
+ /** The input may carry private data: a surface takes it only in a request body (POST) and never caches or stores it. */
19
+ readonly privateInputHint?: boolean;
20
+ readonly [hint: string]: unknown;
21
+ }
22
+ /** What a surface passes to `execute`. Every surface passes `signal`; a provider adapter also
23
+ * passes its `toolCallId`; a host that pins the clock (fixtures, evals) passes `now`. */
24
+ export interface SiteCapabilityInvocation {
25
+ readonly signal: AbortSignal;
26
+ readonly toolCallId?: string;
27
+ /** Milliseconds since the epoch. A capability reads the clock only through this when present. */
28
+ readonly now?: () => number;
29
+ }
30
+ /** A citable record in a successful result. The host mints source IDs from these; the tool never
31
+ * does (`siteRecordSource`). */
32
+ export interface SiteRecordCitation {
33
+ /** The record's stable ID, as it appears in the result. */
34
+ readonly recordId: string;
35
+ /** The record's same-origin page path, such as `/fairport/places/lift-bridge`. */
36
+ readonly path: string;
37
+ /** When the record's data was current (ISO 8601). */
38
+ readonly asOf: string;
39
+ }
40
+ /**
41
+ * A tool a site or a recipe pack provides.
42
+ *
43
+ * How it maps onto the existing tool shapes (each mapping is a function below, so no caller relies
44
+ * on structural luck):
45
+ * - Portal `PortalWebMcpAdditionalToolV0` (`@superbee/portal-webmcp` 0.3.x `additionalTools`,
46
+ * restated here as `PortalAdditionalTool`): a `SiteCapability` is assignable to it, and Portal's
47
+ * registration keeps only the fields it binds. `toPortalAdditionalTool` makes that explicit;
48
+ * `siteCapabilityFromPortalTool` maps the other way.
49
+ * - The hosted provider port's `AgentProviderTool` (`name`, `description`, `inputSchema`,
50
+ * `execute(input, { signal, toolCallId })`): assignable; `toProviderTool` keeps only those fields.
51
+ * - The hosted `ToolDescriptor`, whose `execute` takes an optional invocation with an optional
52
+ * signal: NOT assignable, because a capability always receives a signal. `toToolDescriptor`
53
+ * supplies one.
54
+ */
55
+ export interface SiteCapability<Result = unknown> {
56
+ /** `^[a-z][a-z0-9_]{2,63}$`: valid for MCP, WebMCP, the Messages API and Managed Agents. */
57
+ readonly name: string;
58
+ /** Stable identity of this implementation, as Portal's `implementationId`: a changed meaning
59
+ * behind an unchanged schema gets a new one. */
60
+ readonly implementationId: string;
61
+ readonly title?: string;
62
+ readonly description: string;
63
+ /** JSON Schema of the input, with `type: "object"`. */
64
+ readonly inputSchema: Readonly<Record<string, unknown>>;
65
+ readonly outputSchema?: Readonly<Record<string, unknown>>;
66
+ readonly annotations?: SiteCapabilityAnnotations;
67
+ /** Largest serialized result in UTF-8 bytes. Defaults to `DEFAULT_MAXIMUM_OUTPUT_BYTES`. */
68
+ readonly maximumOutputBytes?: number;
69
+ /** Runs the capability. Failures a caller can act on are results (`{ ok: false, error }`), not
70
+ * throws; a throw is a fault. */
71
+ execute(input: unknown, invocation: SiteCapabilityInvocation): Promise<Result>;
72
+ /** The citable records in a successful result. Never called on a failed result. */
73
+ mintSources?(result: Result): readonly SiteRecordCitation[];
74
+ }
75
+ /** Portal's `PortalWebMcpAdditionalToolV0` (`@superbee/portal-webmcp` 0.3.1, `registration.d.ts`),
76
+ * restated so this package stays dependency-free. */
77
+ export interface PortalAdditionalTool {
78
+ readonly name: string;
79
+ readonly implementationId: string;
80
+ readonly description: string;
81
+ readonly inputSchema: Readonly<Record<string, unknown>>;
82
+ readonly annotations?: Readonly<Record<string, unknown>>;
83
+ execute(input: unknown, context: {
84
+ signal: AbortSignal;
85
+ }): Promise<unknown>;
86
+ }
87
+ /** A host-minted citation of one site record. Like a Portal document source it binds the
88
+ * publication the record was read from, so a citation names exact bytes, not only a date. */
89
+ export interface SiteRecordSourceRef {
90
+ readonly sourceId: string;
91
+ readonly kind: "site-record";
92
+ readonly siteId: string;
93
+ readonly recordId: string;
94
+ readonly path: string;
95
+ readonly asOf: string;
96
+ readonly artifactDigest: string;
97
+ readonly snapshotDigest: string;
98
+ }
99
+ export declare const SITE_CAPABILITY_NAME_PATTERN: RegExp;
100
+ /** Package-owned tools only (Portal's `PORTAL_WEBMCP_RESERVED_PREFIX_V0`). */
101
+ export declare const RESERVED_TOOL_PREFIX = "superbee_";
102
+ export declare const DEFAULT_MAXIMUM_OUTPUT_BYTES = 65536;
103
+ /** The closed error-code set a site capability's `{ ok: false }` results use by default. */
104
+ export declare const SITE_CAPABILITY_ERROR_CODES: readonly ["INVALID_INPUT", "NOT_FOUND", "AMBIGUOUS", "NOT_AVAILABLE"];
105
+ export declare const utf8Bytes: (text: string) => number;
106
+ /**
107
+ * JSON with object keys sorted at every depth, so equal values serialize to equal bytes. Throws on
108
+ * anything JSON cannot carry exactly: functions, symbols, `undefined` array items, non-finite
109
+ * numbers, bigints and cycles. Object properties whose value is `undefined` are omitted, as
110
+ * `JSON.stringify` does.
111
+ */
112
+ export declare function canonicalJson(value: unknown): string;
113
+ /**
114
+ * Whether `path` is a plain same-origin page path: absolute, not protocol-relative, no query,
115
+ * fragment, backslash, control character, encoded slash or dot segment, and unchanged by URL
116
+ * normalization. The same checks as agent-surface's `portalAssistantRoute`. Syntax only: a path
117
+ * such as `/a/%252e%252e/b` or `/a/..;/b` passes, so the host's route-membership check
118
+ * (`admittedPath` in `siteRecordSource`) must still refuse any path it does not serve.
119
+ */
120
+ export declare function isSafeSitePath(path: unknown): path is string;
121
+ /**
122
+ * The host-minted `site-record` source for one citation a capability returned, or `undefined`
123
+ * when the citation is malformed, its path is not a safe same-origin path, or the path is not one
124
+ * the host admits. `sourceId` is the host's own ID for this read; a model-produced ID or URL never
125
+ * mints a source. `admittedPath` is the host's route-membership check (the publication's
126
+ * digest-bound route list, or the build's route list): syntax alone does not admit a path.
127
+ */
128
+ export declare function siteRecordSource(options: {
129
+ sourceId: string;
130
+ siteId: string;
131
+ /** The publication the capability read: its artifact and snapshot digests. */
132
+ publication: {
133
+ artifactDigest: string;
134
+ snapshotDigest: string;
135
+ };
136
+ citation: SiteRecordCitation;
137
+ admittedPath: (path: string) => boolean;
138
+ }): SiteRecordSourceRef | undefined;
139
+ /**
140
+ * Portal's `additionalTools` shape as a `SiteCapability`. The Portal tool keeps receiving exactly
141
+ * `{ signal }`; `extras` adds what Portal's shape has no field for. The reverse needs no adapter:
142
+ * a `SiteCapability` is already a valid `PortalAdditionalTool`.
143
+ */
144
+ export declare function siteCapabilityFromPortalTool(tool: PortalAdditionalTool, extras?: Pick<SiteCapability, "title" | "outputSchema" | "maximumOutputBytes" | "mintSources">): SiteCapability;
145
+ /** Portal's `additionalTools` entry for a capability: exactly the fields Portal binds, with the
146
+ * capability receiving `{ signal }`. */
147
+ export declare function toPortalAdditionalTool(capability: SiteCapability): PortalAdditionalTool;
148
+ /** The provider port's tool shape (hosted `AgentProviderTool`): name, description, input schema
149
+ * and `execute(input, { signal, toolCallId })`. */
150
+ export declare function toProviderTool(capability: SiteCapability): {
151
+ name: string;
152
+ description: string;
153
+ inputSchema: Record<string, unknown>;
154
+ execute(input: unknown, invocation: {
155
+ signal: AbortSignal;
156
+ toolCallId: string;
157
+ }): Promise<unknown>;
158
+ };
159
+ /** The hosted `ToolDescriptor` shape, whose callers may omit the invocation or its signal; the
160
+ * capability then receives a signal that never aborts. */
161
+ export declare function toToolDescriptor(capability: SiteCapability): {
162
+ name: string;
163
+ description: string;
164
+ inputSchema: Record<string, unknown>;
165
+ annotations?: Record<string, unknown>;
166
+ execute(input: unknown, invocation?: {
167
+ signal?: AbortSignal;
168
+ }): Promise<unknown>;
169
+ };
170
+ /**
171
+ * One annotation set from several declarations of the same capability (for example a WebMCP
172
+ * declaration and an MCP declaration that each carry some hints). For the MCP hints the more
173
+ * cautious value wins: `readOnlyHint` and `idempotentHint` are true only if no set says false;
174
+ * `destructiveHint`, `openWorldHint`, `untrustedContentHint` and `privateInputHint` are true if any
175
+ * set says true. A hint a set leaves out does not count either way, so the result can carry a hint
176
+ * only some sets declared; MCP's defaults for absent hints (`readOnlyHint` false, `openWorldHint`
177
+ * true) apply only when no set declares it. Any other key must not disagree between sets; a
178
+ * disagreement throws.
179
+ */
180
+ export declare function mergeAnnotations(...sets: readonly (SiteCapabilityAnnotations | undefined)[]): SiteCapabilityAnnotations;
181
+ /** The descriptor a surface shows a model: what the descriptor limits and the identity cover. */
182
+ export declare function siteCapabilityDescriptor(capability: SiteCapability): {
183
+ annotations?: SiteCapabilityAnnotations | undefined;
184
+ outputSchema?: Readonly<Record<string, unknown>> | undefined;
185
+ description: string;
186
+ inputSchema: Readonly<Record<string, unknown>>;
187
+ title?: string | undefined;
188
+ name: string;
189
+ };
190
+ /** The three tiers of site-capability design, composed in this order. */
191
+ export type SiteCapabilityTier = "generic" | "pack" | "site";
192
+ /** One declared list. `pack` and `site` lists own a namespace: each name starts with
193
+ * `<namespace>_` (`guide_open_now`, `hm_who_handles`). `generic` lists (the Portal snapshot reads,
194
+ * hosted reads) have none and alone may use the reserved `superbee_` prefix. */
195
+ export interface SiteCapabilityGroup {
196
+ readonly tier: SiteCapabilityTier;
197
+ readonly namespace?: string;
198
+ readonly capabilities: readonly SiteCapability[];
199
+ }
200
+ export interface SiteCapabilityLimits {
201
+ readonly maxTools: number;
202
+ /** Per descriptor (`siteCapabilityDescriptor`), canonical JSON in UTF-8 bytes. */
203
+ readonly maxDescriptorBytes: number;
204
+ /** All kept descriptors together. */
205
+ readonly maxTotalDescriptorBytes: number;
206
+ }
207
+ export declare const DEFAULT_SITE_CAPABILITY_LIMITS: SiteCapabilityLimits;
208
+ export interface ComposeSiteCapabilitiesOptions {
209
+ /** The surface this list is for (`hm-ask`, `webmcp`, `mcp`); part of the identity digest. */
210
+ readonly surface: string;
211
+ /** Names this surface does not offer. Applied after every conflict check, so a filter can never
212
+ * hide a conflict. Naming a capability that is not composed refuses. */
213
+ readonly exclude?: readonly string[];
214
+ /** Refuse any capability that does not declare `readOnlyHint: true`, or declares
215
+ * `destructiveHint: true`, in any tier (a static-site surface has no writes). Checked before
216
+ * `exclude`, so excluding a write tool does not make the list acceptable. The hints are
217
+ * self-declared (see `SiteCapabilityAnnotations`). */
218
+ readonly requireReadOnly?: boolean;
219
+ readonly limits?: Partial<SiteCapabilityLimits>;
220
+ }
221
+ export type SiteCapabilityCompositionRefusal =
222
+ /** The surface ID is empty or longer than 256 bytes. */
223
+ "invalid_surface"
224
+ /** A group has an unknown tier, a missing, invalid, reserved or repeated namespace, or a
225
+ * namespace on the generic tier. */
226
+ | "invalid_group"
227
+ /** A capability is not structurally valid (see `checkSiteCapability` for behavior). */
228
+ | "invalid_descriptor" | "duplicate_name"
229
+ /** A `superbee_` name outside the generic tier. */
230
+ | "reserved_prefix"
231
+ /** A pack or site name that does not start with its group's namespace. */
232
+ | "outside_namespace"
233
+ /** `requireReadOnly` and a capability that does not declare itself read-only. */
234
+ | "not_read_only" | "unknown_exclusion" | "too_many_tools" | "descriptor_too_large" | "total_too_large";
235
+ export type SiteCapabilityComposition = {
236
+ readonly ok: true;
237
+ readonly surface: string;
238
+ /** Frozen snapshots in composed order: generic, then packs, then site extras, each in
239
+ * declaration order. Pass them unchanged to a provider adapter, Portal registration or an
240
+ * MCP server. */
241
+ readonly capabilities: readonly SiteCapability[];
242
+ /** The tier of each entry of `capabilities`, index for index. */
243
+ readonly tiers: readonly SiteCapabilityTier[];
244
+ /** Names removed by `exclude`, in composed order. */
245
+ readonly dropped: readonly string[];
246
+ /** SHA-256 of the canonical JSON `{ schema: "superbee-site-capabilities/v1", surface, tools }`,
247
+ * where each tool is `{ tier, namespace, implementationId, maximumOutputBytes, descriptor }`
248
+ * for the kept capabilities in composed order. It identifies one surface's tool list: record
249
+ * it per session and compare it at provisioning. It is not Portal registration's
250
+ * `identityDigest`, which also binds the publication, owner and activation. */
251
+ readonly identityDigest: `sha256:${string}`;
252
+ } | {
253
+ readonly ok: false;
254
+ readonly refused: SiteCapabilityCompositionRefusal;
255
+ /** The names (or, for `invalid_group`, the namespaces) involved, when there are any. */
256
+ readonly names: readonly string[];
257
+ /** A fixed English explanation; never echoes descriptor text. */
258
+ readonly detail: string;
259
+ };
260
+ /**
261
+ * Composes the capabilities one surface offers. This is the one owner of the composition rule;
262
+ * Portal's registration applies the same reserved-prefix and duplicate refusals to its own
263
+ * additional tools and can call this instead. Conflicts refuse the whole
264
+ * composition, never shadow: a duplicate name, a `superbee_` name outside the generic tier, or a
265
+ * pack or site name outside its namespace. Order is deterministic (generic, packs, site extras,
266
+ * each in declaration order), which prompt caching and the Managed Agents byte check depend on.
267
+ * The surface's exclusions apply after the conflict checks; the limits apply to what is kept.
268
+ */
269
+ export declare function composeSiteCapabilities(groups: readonly SiteCapabilityGroup[], options: ComposeSiteCapabilitiesOptions): SiteCapabilityComposition;
270
+ /** The requirements `checkSiteCapability` tests from fixtures. Whether each record carries its own
271
+ * sources with checked dates has no site-neutral shape; a site checks that, and anything else
272
+ * site-specific, with its own fixture assertions (`SiteCapabilityFixture.check`, reported as
273
+ * `site`). */
274
+ export type SiteCapabilityRequirement = "descriptor" | "read_only" | "dated" | "stable_ids" | "public_urls" | "errors" | "bounded" | "deterministic" | "input_checked" | "fixed_text" | "site";
275
+ /** One recorded input and what it must produce. */
276
+ export interface SiteCapabilityFixture {
277
+ /** Shown in problems; defaults to the fixture's index. */
278
+ readonly name?: string;
279
+ readonly input: unknown;
280
+ readonly expect: "ok" | "error";
281
+ /** For `expect: "error"`, the exact code. */
282
+ readonly errorCode?: string;
283
+ /** The pinned clock for this fixture, in milliseconds since the epoch. */
284
+ readonly now?: number;
285
+ /** A site's own assertion over the result (per-record sources, anything site-specific): return a
286
+ * problem description, or nothing when the result is acceptable. */
287
+ readonly check?: (result: unknown) => string | undefined | void;
288
+ }
289
+ export interface CheckSiteCapabilityOptions {
290
+ /** The site's own origin, such as `https://hereandmain.town`. Every absolute http(s) URL in a
291
+ * result must be on it, or on one of `externalHosts`. */
292
+ readonly origin: string;
293
+ /** Hosts whose pages a result may link to: a provider's own page for a feed-only item. */
294
+ readonly externalHosts?: readonly string[];
295
+ /** The closed error-code set; defaults to `SITE_CAPABILITY_ERROR_CODES`. */
296
+ readonly errorCodes?: readonly string[];
297
+ /** The pinned clock for fixtures without their own. Defaults to 2026-01-01T12:00:00Z. */
298
+ readonly now?: number;
299
+ /** Probe one successful fixture's input with an unknown argument, which must be refused
300
+ * with `{ ok: false }`. Default true. */
301
+ readonly probeUnknownArgument?: boolean;
302
+ }
303
+ export interface SiteCapabilityProblem {
304
+ readonly requirement: SiteCapabilityRequirement;
305
+ readonly fixture?: string;
306
+ readonly detail: string;
307
+ }
308
+ export interface SiteCapabilityCheck {
309
+ readonly ok: boolean;
310
+ readonly problems: readonly SiteCapabilityProblem[];
311
+ }
312
+ /**
313
+ * Tests one capability against recorded fixtures and the site capability requirements:
314
+ * a valid, read-only descriptor; results that are deterministic for a pinned clock, bounded,
315
+ * dated (`as_of`) when successful, and `{ ok: false, error: { code, message } }` with a closed code
316
+ * and a message that never echoes input when not; absolute URLs only on the site's origin or its
317
+ * declared external hosts; every citation from `mintSources` naming a record ID present in the
318
+ * result and a safe same-origin path; unknown arguments refused; and a descriptor that running
319
+ * the fixtures does not change. Runs each fixture twice. Never throws for a capability's fault.
320
+ */
321
+ export declare function checkSiteCapability(capability: SiteCapability, fixtures: readonly SiteCapabilityFixture[], options: CheckSiteCapabilityOptions): Promise<SiteCapabilityCheck>;
322
+ /** One named conformance case. `run` resolves when the capability conforms and rejects with an
323
+ * `Error` naming every problem otherwise. Runner-neutral: wrap each case in `node:test`, Vitest or
324
+ * any other runner (`for (const c of cases) test(c.name, c.run)`). */
325
+ export interface SiteCapabilityConformanceCase {
326
+ readonly name: string;
327
+ run(): Promise<void>;
328
+ }
329
+ /**
330
+ * The reusable conformance suite for one capability: one case per requirement checked by
331
+ * `checkSiteCapability`, plus the composition and mapping cases every surface relies on (it
332
+ * composes alone in its own namespace on a read-only surface, and its provider, Portal and
333
+ * descriptor mappings carry the same name, description and schema). A site, a pack and any host
334
+ * run the same cases over the same fixtures.
335
+ */
336
+ export declare function siteCapabilityConformanceCases(capability: SiteCapability, fixtures: readonly SiteCapabilityFixture[], options: CheckSiteCapabilityOptions & {
337
+ readonly namespace?: string;
338
+ }): readonly SiteCapabilityConformanceCase[];
339
+ //# sourceMappingURL=site-capabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site-capabilities.d.ts","sourceRoot":"","sources":["../src/site-capabilities.ts"],"names":[],"mappings":"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"}