@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 +21 -0
- package/dist/hosted-transport/whole-document-transport.d.ts +35 -6
- package/dist/hosted-transport/whole-document-transport.d.ts.map +1 -1
- package/dist/hosted-transport/whole-document-transport.js +35 -8
- package/dist/hosted-transport/whole-document-transport.js.map +1 -1
- package/dist/site-capabilities.d.ts +339 -0
- package/dist/site-capabilities.d.ts.map +1 -0
- package/dist/site-capabilities.js +717 -0
- package/dist/site-capabilities.js.map +1 -0
- package/package.json +5 -1
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
|
|
122
|
-
* checked first, so an unsupported kind is refused before
|
|
123
|
-
* whose frontmatter is not plain JSON (a date object, say) is
|
|
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":"AAAA
|
|
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
|
|
128
|
-
* checked first, so an unsupported kind is refused before
|
|
129
|
-
* whose frontmatter is not plain JSON (a date object, say) is
|
|
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
|
-
|
|
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":"AAcA;;;;;;;;;GASG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,2FAA2F;IAC3F,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IACxC,wHAAwH;IACxH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAClC;AAED;yFACyF;AACzF,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,iGAAiG;IACjG,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CAC7B;AAED;gCACgC;AAChC,MAAM,WAAW,kBAAkB;IACjC,2DAA2D;IAC3D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,kFAAkF;IAClF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,cAAc,CAAC,MAAM,GAAG,OAAO;IAC9C,4FAA4F;IAC5F,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;oDACgD;IAChD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,uDAAuD;IACvD,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1D,QAAQ,CAAC,WAAW,CAAC,EAAE,yBAAyB,CAAC;IACjD,4FAA4F;IAC5F,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC;qCACiC;IACjC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/E,mFAAmF;IACnF,WAAW,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,kBAAkB,EAAE,CAAC;CAC7D;AAED;qDACqD;AACrD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE;QAAE,MAAM,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7E;AAED;6FAC6F;AAC7F,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,eAAO,MAAM,4BAA4B,QAA2B,CAAC;AACrE,8EAA8E;AAC9E,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAChD,eAAO,MAAM,4BAA4B,QAAQ,CAAC;AAClD,4FAA4F;AAC5F,eAAO,MAAM,2BAA2B,uEAAwE,CAAC;AAMjH,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,KAAG,MAAyC,CAAC;AAKnF;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CA8BpD;AAGD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,MAAM,CAuB5D;AAOD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,WAAW,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CACzC,GAAG,mBAAmB,GAAG,SAAS,CA0BlC;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,oBAAoB,EAC1B,MAAM,GAAE,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,cAAc,GAAG,oBAAoB,GAAG,aAAa,CAAM,GACjG,cAAc,CAahB;AAED;wCACwC;AACxC,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,cAAc,GAAG,oBAAoB,CASvF;AAED;mDACmD;AACnD,wBAAgB,cAAc,CAAC,UAAU,EAAE,cAAc,GAAG;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE;QAAE,MAAM,EAAE,WAAW,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACpG,CAQA;AAED;0DAC0D;AAC1D,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,cAAc,GAAG;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAClF,CASA;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,IAAI,EAAE,SAAS,CAAC,yBAAyB,GAAG,SAAS,CAAC,EAAE,GAAG,yBAAyB,CAmBvH;AAED,iGAAiG;AACjG,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,cAAc;;;;;;;EASlE;AAiHD,yEAAyE;AACzE,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAE7D;;gFAEgF;AAChF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,SAAS,cAAc,EAAE,CAAC;CAClD;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,kFAAkF;IAClF,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,qCAAqC;IACrC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;CAC1C;AACD,eAAO,MAAM,8BAA8B,EAAE,oBAI3C,CAAC;AAEH,MAAM,WAAW,8BAA8B;IAC7C,6FAA6F;IAC7F,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;4EACwE;IACxE,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC;;;0DAGsD;IACtD,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACjD;AAED,MAAM,MAAM,gCAAgC;AAC1C,wDAAwD;AACtD,iBAAiB;AACnB;oCACoC;GAClC,eAAe;AACjB,uFAAuF;GACrF,oBAAoB,GACpB,gBAAgB;AAClB,mDAAmD;GACjD,iBAAiB;AACnB,0EAA0E;GACxE,mBAAmB;AACrB,iFAAiF;GAC/E,eAAe,GACf,mBAAmB,GACnB,gBAAgB,GAChB,sBAAsB,GACtB,iBAAiB,CAAC;AAEtB,MAAM,MAAM,yBAAyB,GACjC;IACE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;qBAEiB;IACjB,QAAQ,CAAC,YAAY,EAAE,SAAS,cAAc,EAAE,CAAC;IACjD,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC9C,qDAAqD;IACrD,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC;;;;mFAI+E;IAC/E,QAAQ,CAAC,cAAc,EAAE,UAAU,MAAM,EAAE,CAAC;CAC7C,GACD;IACE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,OAAO,EAAE,gCAAgC,CAAC;IACnD,wFAAwF;IACxF,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,iEAAiE;IACjE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAIN;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,mBAAmB,EAAE,EACtC,OAAO,EAAE,8BAA8B,GACtC,yBAAyB,CAwH3B;AAED;;;cAGc;AACd,MAAM,MAAM,yBAAyB,GACjC,YAAY,GACZ,WAAW,GACX,OAAO,GACP,YAAY,GACZ,aAAa,GACb,QAAQ,GACR,SAAS,GACT,eAAe,GACf,eAAe,GACf,YAAY,GACZ,MAAM,CAAC;AAEX,mDAAmD;AACnD,MAAM,WAAW,qBAAqB;IACpC,0DAA0D;IAC1D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;IAChC,6CAA6C;IAC7C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,0EAA0E;IAC1E,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB;wEACoE;IACpE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;CACjE;AAED,MAAM,WAAW,0BAA0B;IACzC;6DACyD;IACzD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,0FAA0F;IAC1F,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,4EAA4E;IAC5E,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,yFAAyF;IACzF,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB;6CACyC;IACzC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CACzC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,WAAW,EAAE,yBAAyB,CAAC;IAChD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AACD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACrD;AAsBD;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,cAAc,EAC1B,QAAQ,EAAE,SAAS,qBAAqB,EAAE,EAC1C,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,mBAAmB,CAAC,CA0J9B;AAED;;sEAEsE;AACtE,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACtB;AAgBD;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,cAAc,EAC1B,QAAQ,EAAE,SAAS,qBAAqB,EAAE,EAC1C,OAAO,EAAE,0BAA0B,GAAG;IAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACpE,SAAS,6BAA6B,EAAE,CAuC1C"}
|