@agenticprimitives/fabric 0.0.0-alpha.1 → 0.0.0-alpha.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/CLAUDE.md +26 -30
- package/README.md +16 -16
- package/dist/case-emissions.d.ts +95 -0
- package/dist/case-emissions.d.ts.map +1 -0
- package/dist/case-emissions.js +208 -0
- package/dist/case-emissions.js.map +1 -0
- package/dist/case-machine.d.ts +28 -2
- package/dist/case-machine.d.ts.map +1 -1
- package/dist/case-machine.js +34 -7
- package/dist/case-machine.js.map +1 -1
- package/dist/cloudflare/authority-verdict-cache.d.ts +28 -1
- package/dist/cloudflare/authority-verdict-cache.d.ts.map +1 -1
- package/dist/cloudflare/authority-verdict-cache.js +32 -1
- package/dist/cloudflare/authority-verdict-cache.js.map +1 -1
- package/dist/cloudflare/index.d.ts +4 -1
- package/dist/cloudflare/index.d.ts.map +1 -1
- package/dist/cloudflare/index.js +7 -1
- package/dist/cloudflare/index.js.map +1 -1
- package/dist/cloudflare/interaction-store.d.ts +55 -0
- package/dist/cloudflare/interaction-store.d.ts.map +1 -0
- package/dist/cloudflare/interaction-store.js +230 -0
- package/dist/cloudflare/interaction-store.js.map +1 -0
- package/dist/cloudflare/principal-gateway-do.d.ts +136 -2
- package/dist/cloudflare/principal-gateway-do.d.ts.map +1 -1
- package/dist/cloudflare/principal-gateway-do.js +190 -8
- package/dist/cloudflare/principal-gateway-do.js.map +1 -1
- package/dist/cloudflare/vault-exchange-store.d.ts +47 -0
- package/dist/cloudflare/vault-exchange-store.d.ts.map +1 -0
- package/dist/cloudflare/vault-exchange-store.js +118 -0
- package/dist/cloudflare/vault-exchange-store.js.map +1 -0
- package/dist/cloudflare/vault-interaction-store.d.ts +44 -0
- package/dist/cloudflare/vault-interaction-store.d.ts.map +1 -0
- package/dist/cloudflare/vault-interaction-store.js +245 -0
- package/dist/cloudflare/vault-interaction-store.js.map +1 -0
- package/dist/communicative-act.d.ts +24 -1
- package/dist/communicative-act.d.ts.map +1 -1
- package/dist/communicative-act.js +28 -0
- package/dist/communicative-act.js.map +1 -1
- package/dist/delivery-envelope.d.ts.map +1 -1
- package/dist/delivery-envelope.js +0 -1
- package/dist/delivery-envelope.js.map +1 -1
- package/dist/enum-retirement.d.ts +43 -0
- package/dist/enum-retirement.d.ts.map +1 -0
- package/dist/enum-retirement.js +93 -0
- package/dist/enum-retirement.js.map +1 -0
- package/dist/exchange-record.d.ts +35 -4
- package/dist/exchange-record.d.ts.map +1 -1
- package/dist/exchange-record.js.map +1 -1
- package/dist/exchange-reducer.d.ts +32 -4
- package/dist/exchange-reducer.d.ts.map +1 -1
- package/dist/exchange-reducer.js +75 -1
- package/dist/exchange-reducer.js.map +1 -1
- package/dist/exchange-state.d.ts +30 -8
- package/dist/exchange-state.d.ts.map +1 -1
- package/dist/exchange-state.js +12 -10
- package/dist/exchange-state.js.map +1 -1
- package/dist/inbox-doc.d.ts +2 -2
- package/dist/inbox-doc.d.ts.map +1 -1
- package/dist/inbox-doc.js.map +1 -1
- package/dist/inbox-projection.d.ts +2 -2
- package/dist/inbox-projection.d.ts.map +1 -1
- package/dist/inbox-projection.js.map +1 -1
- package/dist/inbox-revision.d.ts +42 -0
- package/dist/inbox-revision.d.ts.map +1 -0
- package/dist/inbox-revision.js +57 -0
- package/dist/inbox-revision.js.map +1 -0
- package/dist/index.d.ts +24 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -2
- package/dist/index.js.map +1 -1
- package/dist/interaction-machines.d.ts +136 -0
- package/dist/interaction-machines.d.ts.map +1 -0
- package/dist/interaction-machines.js +174 -0
- package/dist/interaction-machines.js.map +1 -0
- package/dist/interaction-profile.d.ts +126 -0
- package/dist/interaction-profile.d.ts.map +1 -0
- package/dist/interaction-profile.js +192 -0
- package/dist/interaction-profile.js.map +1 -0
- package/dist/interaction-record.d.ts +168 -0
- package/dist/interaction-record.d.ts.map +1 -0
- package/dist/interaction-record.js +108 -0
- package/dist/interaction-record.js.map +1 -0
- package/dist/interactions/machine.d.ts +2 -2
- package/dist/interactions/machine.d.ts.map +1 -1
- package/dist/interactions/machine.js +2 -2
- package/dist/interactions/machine.js.map +1 -1
- package/dist/interactions/open-case.d.ts +60 -0
- package/dist/interactions/open-case.d.ts.map +1 -0
- package/dist/interactions/open-case.js +83 -0
- package/dist/interactions/open-case.js.map +1 -0
- package/dist/interactions/store.d.ts +9 -0
- package/dist/interactions/store.d.ts.map +1 -1
- package/dist/interactions/store.js +57 -2
- package/dist/interactions/store.js.map +1 -1
- package/dist/messaging/board.d.ts +86 -6
- package/dist/messaging/board.d.ts.map +1 -1
- package/dist/messaging/board.js +100 -9
- package/dist/messaging/board.js.map +1 -1
- package/dist/messaging/consult-routing.d.ts +289 -0
- package/dist/messaging/consult-routing.d.ts.map +1 -0
- package/dist/messaging/consult-routing.js +455 -0
- package/dist/messaging/consult-routing.js.map +1 -0
- package/dist/messaging/consult.d.ts +158 -0
- package/dist/messaging/consult.d.ts.map +1 -0
- package/dist/messaging/consult.js +141 -0
- package/dist/messaging/consult.js.map +1 -0
- package/dist/messaging/conversation-interaction.d.ts +66 -0
- package/dist/messaging/conversation-interaction.d.ts.map +1 -0
- package/dist/messaging/conversation-interaction.js +139 -0
- package/dist/messaging/conversation-interaction.js.map +1 -0
- package/dist/messaging/delivery.d.ts +2 -2
- package/dist/messaging/delivery.d.ts.map +1 -1
- package/dist/messaging/delivery.js +8 -1
- package/dist/messaging/delivery.js.map +1 -1
- package/dist/messaging/directory.d.ts +16 -0
- package/dist/messaging/directory.d.ts.map +1 -1
- package/dist/messaging/directory.js.map +1 -1
- package/dist/messaging/envelope.d.ts +7 -3
- package/dist/messaging/envelope.d.ts.map +1 -1
- package/dist/messaging/envelope.js +18 -1
- package/dist/messaging/envelope.js.map +1 -1
- package/dist/messaging/hash.d.ts +8 -2
- package/dist/messaging/hash.d.ts.map +1 -1
- package/dist/messaging/hash.js +6 -0
- package/dist/messaging/hash.js.map +1 -1
- package/dist/messaging/inbox-assistant.d.ts +80 -0
- package/dist/messaging/inbox-assistant.d.ts.map +1 -0
- package/dist/messaging/inbox-assistant.js +125 -0
- package/dist/messaging/inbox-assistant.js.map +1 -0
- package/dist/messaging/index.d.ts +10 -3
- package/dist/messaging/index.d.ts.map +1 -1
- package/dist/messaging/index.js +20 -2
- package/dist/messaging/index.js.map +1 -1
- package/dist/messaging/outbound-message.d.ts +42 -0
- package/dist/messaging/outbound-message.d.ts.map +1 -0
- package/dist/messaging/outbound-message.js +64 -0
- package/dist/messaging/outbound-message.js.map +1 -0
- package/dist/messaging/projector.d.ts +3 -3
- package/dist/messaging/projector.d.ts.map +1 -1
- package/dist/messaging/projector.js.map +1 -1
- package/dist/messaging/receipts.d.ts +3 -3
- package/dist/messaging/receipts.d.ts.map +1 -1
- package/dist/messaging/receipts.js.map +1 -1
- package/dist/messaging/rules.d.ts +10 -3
- package/dist/messaging/rules.d.ts.map +1 -1
- package/dist/messaging/rules.js +8 -1
- package/dist/messaging/rules.js.map +1 -1
- package/dist/messaging/store.d.ts +4 -4
- package/dist/messaging/store.d.ts.map +1 -1
- package/dist/messaging/store.js +5 -3
- package/dist/messaging/store.js.map +1 -1
- package/dist/messaging/types.d.ts +52 -0
- package/dist/messaging/types.d.ts.map +1 -1
- package/dist/messaging/types.js +18 -1
- package/dist/messaging/types.js.map +1 -1
- package/dist/messaging/vault-store.d.ts +35 -2
- package/dist/messaging/vault-store.d.ts.map +1 -1
- package/dist/messaging/vault-store.js +53 -5
- package/dist/messaging/vault-store.js.map +1 -1
- package/dist/protocol-binding.d.ts +71 -0
- package/dist/protocol-binding.d.ts.map +1 -0
- package/dist/protocol-binding.js +0 -0
- package/dist/protocol-binding.js.map +1 -0
- package/dist/record-catalog.d.ts.map +1 -1
- package/dist/record-catalog.js +24 -0
- package/dist/record-catalog.js.map +1 -1
- package/package.json +7 -7
|
@@ -4,6 +4,11 @@ import type { AuthorityTier } from '@agenticprimitives/tool-policy';
|
|
|
4
4
|
import type { ExchangeRecordV1, ExchangeEventV1, ExchangeId } from '../exchange-record.js';
|
|
5
5
|
import { type DeliveryEnvelopeV1 } from '../delivery-envelope.js';
|
|
6
6
|
import { type OutboxEntry } from './outbox-store.js';
|
|
7
|
+
import { type ExchangeStore } from './exchange-store.js';
|
|
8
|
+
import { type InteractionStore } from './interaction-store.js';
|
|
9
|
+
import type { CommitmentRecordV1 } from '../interaction-machines.js';
|
|
10
|
+
import type { InteractionRecordV1, InteractionId, ProfileVersion, ParticipationV1 } from '../interaction-record.js';
|
|
11
|
+
import type { ProtocolBindingV1 } from '../protocol-binding.js';
|
|
7
12
|
import { type AuthorityVerdictCache, type AuthorityVerdict, type AuthorityVerdictKey } from './authority-verdict-cache.js';
|
|
8
13
|
import { type DeliveryReceiptInput, type SignedDeliveryReceiptV1 } from './receipt-signer.js';
|
|
9
14
|
import type { GatewayToolRegistry } from './gateway-tools.js';
|
|
@@ -14,6 +19,10 @@ import { type ChannelV1, type ConversationRoleProjection } from './channel-store
|
|
|
14
19
|
export interface PrincipalGatewayEnv {
|
|
15
20
|
/** The chain id the gateway verifies authority against (for the T1 verdict + delivery). */
|
|
16
21
|
CHAIN_ID?: string;
|
|
22
|
+
/** The CAIP-10 of the principal THIS gateway belongs to. Optional so every existing deployment keeps
|
|
23
|
+
* working, but required by `openInteraction`: an interaction is custodied by the gateway holding it,
|
|
24
|
+
* and a gateway that cannot name itself cannot be a custodian. Fails closed rather than defaulting. */
|
|
25
|
+
PRINCIPAL_SA?: string;
|
|
17
26
|
}
|
|
18
27
|
/**
|
|
19
28
|
* Injected co-resident-MCP dependencies. INJECTED (not built in the fabric core) because they need
|
|
@@ -32,17 +41,62 @@ export interface GatewayDeps {
|
|
|
32
41
|
/** The injected planner for the T2 orchestration loop (§15) — the LLM adapter in prod, the rule-based
|
|
33
42
|
* planner in tests. Absent ⇒ `orchestrate()` throws (T2 unavailable), but T0/T1 still work. */
|
|
34
43
|
planner?: Planner;
|
|
44
|
+
/**
|
|
45
|
+
* THE THREE STORAGE SEAMS (ADR-0055 amendment). Omit them and this DO constructs its own DO-SQL
|
|
46
|
+
* stores, which is right for tests and for a self-hosted single-tenant gateway. A deployment whose
|
|
47
|
+
* records already live in an owner's vault MUST inject instead — because otherwise adopting this DO
|
|
48
|
+
* moves person data out of the vault as a SIDE EFFECT of a runtime change, decided by a constructor
|
|
49
|
+
* rather than by anyone.
|
|
50
|
+
*
|
|
51
|
+
* `vault` is the one that carries durable private records, so it is the one that matters most.
|
|
52
|
+
* `exchangeStore` / `interactionStore` may stay DO-local ONLY as ordering + index over exchanges
|
|
53
|
+
* whose records live in the vault — and only if they are genuinely rebuildable from it: the durable
|
|
54
|
+
* fact written to the vault first, an explicit rebuild in code, and a test that wipes the DO and
|
|
55
|
+
* rebuilds. An untested rebuild path is indistinguishable from an absent one, which is how a
|
|
56
|
+
* projection silently becomes the only copy.
|
|
57
|
+
*/
|
|
58
|
+
vault?(wrapper: DekWrapper): Vault;
|
|
59
|
+
exchangeStore?: ExchangeStore;
|
|
60
|
+
interactionStore?: InteractionStore;
|
|
35
61
|
/** Token-gated channel join (spec 318 C3): verify a `member`'s `credential` satisfies a channel's
|
|
36
62
|
* `joinGate` requirement. Injected (the `entitlements`/`verifiable-credentials` resolver in prod, a fake in
|
|
37
63
|
* tests) — the fabric core stays credential-mechanism-free. Absent ⇒ a gated channel cannot be joined. */
|
|
38
64
|
verifyEntitlement?: (requirement: string, credential: unknown, member: string) => Promise<boolean>;
|
|
39
65
|
}
|
|
66
|
+
/** What ingress observed about an exchange's place in a governed situation (spec 340 W7). */
|
|
67
|
+
export type DeliveryNote =
|
|
68
|
+
/** No `interactionId`: this is a message, not part of a governed situation. The common case. */
|
|
69
|
+
{
|
|
70
|
+
kind: 'unpinned-exchange';
|
|
71
|
+
}
|
|
72
|
+
/** Pinned an older profile version than the interaction now runs. Legal — and the signal that
|
|
73
|
+
* survives a downgrade, which is why it is reported rather than refused. */
|
|
74
|
+
| {
|
|
75
|
+
kind: 'profile-downgrade';
|
|
76
|
+
pinned: string;
|
|
77
|
+
inForce: string;
|
|
78
|
+
}
|
|
79
|
+
/** The pinned ContextSnapshot is not on this gateway — normal for an inbound delivery, where it
|
|
80
|
+
* lives on the sender's. Recorded so nobody reads the exchange as replayable here. */
|
|
81
|
+
| {
|
|
82
|
+
kind: 'context-unavailable';
|
|
83
|
+
digest: string;
|
|
84
|
+
};
|
|
85
|
+
export type DeliveryOutcome = {
|
|
86
|
+
ok: true;
|
|
87
|
+
interactionId?: InteractionId;
|
|
88
|
+
notes: readonly DeliveryNote[];
|
|
89
|
+
} | {
|
|
90
|
+
ok: false;
|
|
91
|
+
reason: 'unknown-interaction' | 'not-a-participant';
|
|
92
|
+
};
|
|
40
93
|
export declare class PrincipalGatewayDO {
|
|
41
94
|
private readonly state;
|
|
42
95
|
private readonly env;
|
|
43
96
|
private readonly deps?;
|
|
44
97
|
private readonly sql;
|
|
45
98
|
private readonly exchanges;
|
|
99
|
+
private readonly interactionStore;
|
|
46
100
|
private readonly verdicts;
|
|
47
101
|
private readonly requestIds;
|
|
48
102
|
private readonly receipts;
|
|
@@ -50,7 +104,18 @@ export declare class PrincipalGatewayDO {
|
|
|
50
104
|
private readonly provenance;
|
|
51
105
|
private readonly channels;
|
|
52
106
|
constructor(state: DurableObjectState, env: PrincipalGatewayEnv, deps?: GatewayDeps | undefined);
|
|
53
|
-
/**
|
|
107
|
+
/**
|
|
108
|
+
* Create/rename a channel owned by this org gateway, and open the Interaction it IS (spec 340 W11).
|
|
109
|
+
*
|
|
110
|
+
* A topic was already a governed situation in everything but name: the org owns the board, members
|
|
111
|
+
* join and leave, `facilitator`/`contributor` are its roles, and it opens and closes. Opening the
|
|
112
|
+
* Interaction alongside it names that rather than adding a parallel object — the id is DERIVED
|
|
113
|
+
* (`ixn_topic_<channelId>`), so the two cannot drift and no join table exists to go stale.
|
|
114
|
+
*
|
|
115
|
+
* `participationMode: 'derived'`. Membership belongs to the channel (and, for an open topic, to the
|
|
116
|
+
* organization behind it), so the Interaction stores NO member list. Copying one per topic is what
|
|
117
|
+
* `apmsg:openParticipation` forbids, and a stale copy is how a removed member keeps posting.
|
|
118
|
+
*/
|
|
54
119
|
createChannel(channel: ChannelV1): Promise<void>;
|
|
55
120
|
/**
|
|
56
121
|
* Add a member with a role (spec 318 C2 — the role IS the projection of an org-SA delegation caveat).
|
|
@@ -183,9 +248,78 @@ export declare class PrincipalGatewayDO {
|
|
|
183
248
|
* the message event's `idempotencyKey` at the reducer). Receipt signing (`DeliveryReceiptV1`, DO-local
|
|
184
249
|
* software key) is a W2 follow-step.
|
|
185
250
|
*/
|
|
186
|
-
deliver(record: ExchangeRecordV1): Promise<
|
|
251
|
+
deliver(record: ExchangeRecordV1): Promise<DeliveryOutcome>;
|
|
252
|
+
/**
|
|
253
|
+
* The interaction-aware half of ingress (spec 340 W7).
|
|
254
|
+
*
|
|
255
|
+
* THREE OUTCOMES, and which is which is the whole design:
|
|
256
|
+
*
|
|
257
|
+
* 1. NO `interactionId` → delivered, with an `unpinned-exchange` note. An Exchange without an
|
|
258
|
+
* Interaction is a MESSAGE (ADR-0058 §12) — a legitimate state, and the overwhelmingly common
|
|
259
|
+
* one. Auto-creating an interaction per message would make "a thread is a projection, not a
|
|
260
|
+
* container" false by turning every message into a container.
|
|
261
|
+
*
|
|
262
|
+
* 2. UNKNOWN `interactionId` → REFUSED. Interactions are opened by their custodian
|
|
263
|
+
* (`openInteraction`), never conjured by a sender. If ingress created one from a sender-supplied
|
|
264
|
+
* id, any peer could seed arbitrary interactions with arbitrary participations on someone else's
|
|
265
|
+
* gateway, then post into them — inventing a governed situation the owner never entered.
|
|
266
|
+
*
|
|
267
|
+
* 3. KNOWN `interactionId` → the sender must be a current participant. An exchange claiming to occur
|
|
268
|
+
* in an interaction whose membership does not include its sender is a record that misrepresents
|
|
269
|
+
* the situation. This is an integrity check on the record's shape, NOT authority: being a
|
|
270
|
+
* participant is not permission to do anything (ADR-0048 §4).
|
|
271
|
+
*
|
|
272
|
+
* Two conditions are NOTED rather than refused, because refusing them would lose true records:
|
|
273
|
+
* · a profile-version mismatch — a mid-flight profile bump is legal, and the per-exchange pin is
|
|
274
|
+
* the signal that survives, so this reports (spec 340 §6);
|
|
275
|
+
* · a pinned context digest we do not hold — normal for an INBOUND delivery, where the snapshot
|
|
276
|
+
* lives on the sender's gateway. Dropping the message would be fail-closed in the wrong place;
|
|
277
|
+
* the digest stays pinned and resolvable later. What we must not do is pretend it is replayable.
|
|
278
|
+
*/
|
|
279
|
+
private admitIntoInteraction;
|
|
280
|
+
/**
|
|
281
|
+
* Membership for a `derived` interaction.
|
|
282
|
+
*
|
|
283
|
+
* Topic interactions carry `ixn_topic_<channelId>`, so the channel is recoverable from the id and the
|
|
284
|
+
* answer comes from the channel store — the same member-or-bot test `postToChannel` already applies.
|
|
285
|
+
* That is the point of doing this: the gate stops being a second check that could drift from the
|
|
286
|
+
* first, and becomes the same check asked once.
|
|
287
|
+
*
|
|
288
|
+
* Fail-closed by construction: an id that names no known derivation source resolves to `false`, so a
|
|
289
|
+
* `derived` interaction with no resolver admits nobody rather than everybody.
|
|
290
|
+
*/
|
|
291
|
+
private resolveDerivedParticipation;
|
|
292
|
+
/**
|
|
293
|
+
* Open a governed situation on this gateway. The custodian is always THIS principal — an interaction
|
|
294
|
+
* is custodied by the gateway that holds it, and accepting a caller-supplied principal would let a
|
|
295
|
+
* peer name someone else as custodian of a situation on our storage.
|
|
296
|
+
*/
|
|
297
|
+
openInteraction(input: {
|
|
298
|
+
interactionId: InteractionId;
|
|
299
|
+
profileVersion: ProfileVersion;
|
|
300
|
+
/** Omit for a `derived` interaction — see `InteractionRecordV1.participationMode`. */
|
|
301
|
+
participations?: readonly ParticipationV1[];
|
|
302
|
+
participationMode?: 'asserted' | 'derived';
|
|
303
|
+
at: string;
|
|
304
|
+
protocolBindings?: readonly ProtocolBindingV1[];
|
|
305
|
+
}): Promise<InteractionRecordV1>;
|
|
187
306
|
/** Append one event to an existing exchange (case transitions / transport moves), reduced fail-closed. */
|
|
188
307
|
applyEvent(exchangeId: ExchangeId | string, event: ExchangeEventV1): Promise<import("../exchange-reducer.js").ExchangeApplyResult | null>;
|
|
308
|
+
/** Interactions, context snapshots, decisions, commitments, per-viewer inbox state. */
|
|
309
|
+
get interactions(): InteractionStore;
|
|
310
|
+
/**
|
|
311
|
+
* Everything still owed on this gateway — the query the single `case` field could not answer.
|
|
312
|
+
*
|
|
313
|
+
* A case could be `denied` while an obligation stayed outstanding with nowhere to record it, because
|
|
314
|
+
* one field was serving three machines (spec 340 §R). Concluding an interaction deliberately does NOT
|
|
315
|
+
* appear here as a discharge: closing a conversation ends the conversation, never the promise made
|
|
316
|
+
* inside it.
|
|
317
|
+
*/
|
|
318
|
+
openCommitments(): Promise<CommitmentRecordV1[]>;
|
|
319
|
+
/** The gateway's own SA. Throws rather than defaulting: a wrong custodian on a governed situation is
|
|
320
|
+
* worse than a refused write, and empty-string config is treated as unset (a wrangler `VAR = ""`
|
|
321
|
+
* binds an empty string, which `??` would happily accept). */
|
|
322
|
+
private requirePrincipal;
|
|
189
323
|
private requireDeps;
|
|
190
324
|
/** The verdict cache (revoke / epoch-sweep hooks + read for tests). */
|
|
191
325
|
get authority(): AuthorityVerdictCache;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"principal-gateway-do.d.ts","sourceRoot":"","sources":["../../src/cloudflare/principal-gateway-do.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAoD,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"principal-gateway-do.d.ts","sourceRoot":"","sources":["../../src/cloudflare/principal-gateway-do.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,9 @@ import { admitDeliveryEnvelope, deliveryToExchangeRecord, } from '../delivery-en
|
|
|
2
2
|
import { createDurableObjectSqlVault } from './sql-vault.js';
|
|
3
3
|
import { createDurableObjectOutboxStore } from './outbox-store.js';
|
|
4
4
|
import { createDurableObjectExchangeStore } from './exchange-store.js';
|
|
5
|
+
import { createDurableObjectInteractionStore } from './interaction-store.js';
|
|
6
|
+
import { topicInteractionId, channelIdFromTopicInteraction } from '../protocol-binding.js';
|
|
7
|
+
import { TOPIC_PROFILE } from '../interaction-profile.js';
|
|
5
8
|
import { createDurableObjectAuthorityVerdictCache, } from './authority-verdict-cache.js';
|
|
6
9
|
import { createDurableObjectRequestIdLedger } from './request-id-ledger.js';
|
|
7
10
|
import { createDurableObjectReceiptSigner, } from './receipt-signer.js';
|
|
@@ -18,6 +21,7 @@ export class PrincipalGatewayDO {
|
|
|
18
21
|
deps;
|
|
19
22
|
sql;
|
|
20
23
|
exchanges;
|
|
24
|
+
interactionStore;
|
|
21
25
|
verdicts;
|
|
22
26
|
requestIds;
|
|
23
27
|
receipts;
|
|
@@ -31,7 +35,9 @@ export class PrincipalGatewayDO {
|
|
|
31
35
|
this.sql = state.storage.sql;
|
|
32
36
|
// Co-resident, DO-local: exchange stream + vault + T1 verdict cache + request-id ledger all share the
|
|
33
37
|
// one SQLite trust domain (L2, §4.0). The receipt signer holds a DO-local software key in DO KV storage.
|
|
34
|
-
|
|
38
|
+
// Injected when the deployment's records live elsewhere (ADR-0055); DO-local otherwise.
|
|
39
|
+
this.exchanges = deps?.exchangeStore ?? createDurableObjectExchangeStore(this.sql);
|
|
40
|
+
this.interactionStore = deps?.interactionStore ?? createDurableObjectInteractionStore(this.sql);
|
|
35
41
|
this.verdicts = createDurableObjectAuthorityVerdictCache(this.sql);
|
|
36
42
|
this.requestIds = createDurableObjectRequestIdLedger(this.sql);
|
|
37
43
|
this.receipts = createDurableObjectReceiptSigner(state.storage);
|
|
@@ -43,9 +49,27 @@ export class PrincipalGatewayDO {
|
|
|
43
49
|
// A channel is a shared context on this org's exchange stream; membership is the org's policy (projected
|
|
44
50
|
// from the app directory listing, spec 313); posting is member-gated fail-closed. Roles = delegations
|
|
45
51
|
// (C2) and token-gated join (C3) layer on top; the org agent acting in-channel is `orchestrate()` (§15).
|
|
46
|
-
/**
|
|
52
|
+
/**
|
|
53
|
+
* Create/rename a channel owned by this org gateway, and open the Interaction it IS (spec 340 W11).
|
|
54
|
+
*
|
|
55
|
+
* A topic was already a governed situation in everything but name: the org owns the board, members
|
|
56
|
+
* join and leave, `facilitator`/`contributor` are its roles, and it opens and closes. Opening the
|
|
57
|
+
* Interaction alongside it names that rather than adding a parallel object — the id is DERIVED
|
|
58
|
+
* (`ixn_topic_<channelId>`), so the two cannot drift and no join table exists to go stale.
|
|
59
|
+
*
|
|
60
|
+
* `participationMode: 'derived'`. Membership belongs to the channel (and, for an open topic, to the
|
|
61
|
+
* organization behind it), so the Interaction stores NO member list. Copying one per topic is what
|
|
62
|
+
* `apmsg:openParticipation` forbids, and a stale copy is how a removed member keeps posting.
|
|
63
|
+
*/
|
|
47
64
|
async createChannel(channel) {
|
|
48
|
-
|
|
65
|
+
await this.channels.createChannel(channel);
|
|
66
|
+
// Idempotent on rename: the derived id is stable, so this refreshes rather than duplicates.
|
|
67
|
+
await this.openInteraction({
|
|
68
|
+
interactionId: topicInteractionId(channel.channelId),
|
|
69
|
+
profileVersion: TOPIC_PROFILE.profileVersion,
|
|
70
|
+
participationMode: 'derived',
|
|
71
|
+
at: channel.createdAt,
|
|
72
|
+
});
|
|
49
73
|
}
|
|
50
74
|
/**
|
|
51
75
|
* Add a member with a role (spec 318 C2 — the role IS the projection of an org-SA delegation caveat).
|
|
@@ -119,11 +143,24 @@ export class PrincipalGatewayDO {
|
|
|
119
143
|
async postToChannel(channelId, record) {
|
|
120
144
|
const from = record.parties.from;
|
|
121
145
|
// A poster is either a channel MEMBER (person/org, C1/C2) or an admitted channel BOT (Service SA, C4).
|
|
146
|
+
// Kept as an explicit pre-check so the caller-facing reason stays `not_a_member`: ingress would also
|
|
147
|
+
// refuse, but as `not-a-participant`, and a post rejection should say the thing the poster can act on.
|
|
122
148
|
if (!(await this.channels.isMember(channelId, from)) && !(await this.channels.isBot(channelId, from))) {
|
|
123
149
|
return { ok: false, reason: 'not_a_member' };
|
|
124
150
|
}
|
|
125
|
-
|
|
126
|
-
|
|
151
|
+
// The post now OCCURS IN the topic's Interaction (spec 340 W11) — pinned here rather than trusted
|
|
152
|
+
// from the caller, because a poster naming someone else's interaction would otherwise file into it.
|
|
153
|
+
const posted = {
|
|
154
|
+
...record,
|
|
155
|
+
interactionId: topicInteractionId(channelId),
|
|
156
|
+
profileVersion: TOPIC_PROFILE.profileVersion,
|
|
157
|
+
};
|
|
158
|
+
// Threading the refusal rather than discarding it: a post naming an interaction this gateway does
|
|
159
|
+
// not hold must not be indexed into the channel as though it landed.
|
|
160
|
+
const delivered = await this.deliver(posted);
|
|
161
|
+
if (!delivered.ok)
|
|
162
|
+
return { ok: false, reason: delivered.reason };
|
|
163
|
+
await this.channels.addPost(channelId, String(posted.exchangeId), posted.updatedAt);
|
|
127
164
|
return { ok: true };
|
|
128
165
|
}
|
|
129
166
|
// ─── C4: channel bots ARE Service Smart Agents (spec 318 §8) ─────────────────────────────────────────
|
|
@@ -195,7 +232,11 @@ export class PrincipalGatewayDO {
|
|
|
195
232
|
if (!admission.ok)
|
|
196
233
|
return admission;
|
|
197
234
|
const rec = deliveryToExchangeRecord(delivery, { tier: opts.tier, at: opts.at });
|
|
198
|
-
|
|
235
|
+
// A peer naming an interaction we do not hold, or one it is not in, is refused BEFORE the receipt:
|
|
236
|
+
// signing a delivery receipt for an exchange we did not store would attest to something false.
|
|
237
|
+
const delivered = await this.deliver(rec);
|
|
238
|
+
if (!delivered.ok)
|
|
239
|
+
return { ok: false, reason: delivered.reason };
|
|
199
240
|
await this.applyEvent(rec.exchangeId, {
|
|
200
241
|
kind: 'message', seq: 0, at: opts.at, eventType: 'delivered', actor: delivery.envelope.from, messageId: delivery.envelope.id,
|
|
201
242
|
});
|
|
@@ -250,6 +291,12 @@ export class PrincipalGatewayDO {
|
|
|
250
291
|
* accessor stays key-material-free. Same `state.storage.sql` as the exchange stream — one trust domain.
|
|
251
292
|
*/
|
|
252
293
|
vault(wrapper) {
|
|
294
|
+
// INJECTED WINS. A deployment whose records live in the owner's vault passes `deps.vault`; the
|
|
295
|
+
// DO-SQL construction below is the fallback for tests and single-tenant self-hosting. Inheriting
|
|
296
|
+
// the fallback in production is exactly the drift ADR-0055's amendment refuses: a custody change
|
|
297
|
+
// arriving as a side effect of a runtime change.
|
|
298
|
+
if (this.deps?.vault)
|
|
299
|
+
return this.deps.vault(wrapper);
|
|
253
300
|
return createDurableObjectSqlVault(this.sql, wrapper);
|
|
254
301
|
}
|
|
255
302
|
/**
|
|
@@ -260,15 +307,147 @@ export class PrincipalGatewayDO {
|
|
|
260
307
|
* software key) is a W2 follow-step.
|
|
261
308
|
*/
|
|
262
309
|
async deliver(record) {
|
|
310
|
+
const admission = await this.admitIntoInteraction(record);
|
|
311
|
+
if (!admission.ok)
|
|
312
|
+
return admission;
|
|
263
313
|
await this.exchanges.put(record);
|
|
264
314
|
// W5 — project the exchange into the PRIVATE provenance A-box (one trace, §15). Off the sender's hot path
|
|
265
315
|
// conceptually, but co-located here (demo-scale); a public row is derived SEPARATELY via the S1 firewall.
|
|
266
316
|
await this.provenance.put(String(record.exchangeId), projectExchangeProvenance(this.exchangeToProvenanceInput(record)), record.updatedAt);
|
|
317
|
+
return admission;
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* The interaction-aware half of ingress (spec 340 W7).
|
|
321
|
+
*
|
|
322
|
+
* THREE OUTCOMES, and which is which is the whole design:
|
|
323
|
+
*
|
|
324
|
+
* 1. NO `interactionId` → delivered, with an `unpinned-exchange` note. An Exchange without an
|
|
325
|
+
* Interaction is a MESSAGE (ADR-0058 §12) — a legitimate state, and the overwhelmingly common
|
|
326
|
+
* one. Auto-creating an interaction per message would make "a thread is a projection, not a
|
|
327
|
+
* container" false by turning every message into a container.
|
|
328
|
+
*
|
|
329
|
+
* 2. UNKNOWN `interactionId` → REFUSED. Interactions are opened by their custodian
|
|
330
|
+
* (`openInteraction`), never conjured by a sender. If ingress created one from a sender-supplied
|
|
331
|
+
* id, any peer could seed arbitrary interactions with arbitrary participations on someone else's
|
|
332
|
+
* gateway, then post into them — inventing a governed situation the owner never entered.
|
|
333
|
+
*
|
|
334
|
+
* 3. KNOWN `interactionId` → the sender must be a current participant. An exchange claiming to occur
|
|
335
|
+
* in an interaction whose membership does not include its sender is a record that misrepresents
|
|
336
|
+
* the situation. This is an integrity check on the record's shape, NOT authority: being a
|
|
337
|
+
* participant is not permission to do anything (ADR-0048 §4).
|
|
338
|
+
*
|
|
339
|
+
* Two conditions are NOTED rather than refused, because refusing them would lose true records:
|
|
340
|
+
* · a profile-version mismatch — a mid-flight profile bump is legal, and the per-exchange pin is
|
|
341
|
+
* the signal that survives, so this reports (spec 340 §6);
|
|
342
|
+
* · a pinned context digest we do not hold — normal for an INBOUND delivery, where the snapshot
|
|
343
|
+
* lives on the sender's gateway. Dropping the message would be fail-closed in the wrong place;
|
|
344
|
+
* the digest stays pinned and resolvable later. What we must not do is pretend it is replayable.
|
|
345
|
+
*/
|
|
346
|
+
async admitIntoInteraction(record) {
|
|
347
|
+
if (!record.interactionId)
|
|
348
|
+
return { ok: true, notes: [{ kind: 'unpinned-exchange' }] };
|
|
349
|
+
const interaction = await this.interactionStore.getInteraction(record.interactionId);
|
|
350
|
+
if (!interaction)
|
|
351
|
+
return { ok: false, reason: 'unknown-interaction' };
|
|
352
|
+
// ONE membership question, answered by whichever source actually owns it (spec 340 W11). For an
|
|
353
|
+
// `asserted` interaction the record IS the membership. For a `derived` one — an open org topic —
|
|
354
|
+
// the organization owns it, and this asks the org's own projection rather than a per-topic copy
|
|
355
|
+
// that could disagree with it. A stale copy of a membership list is how a removed member keeps
|
|
356
|
+
// posting, so there is no copy.
|
|
357
|
+
const isParticipant = interaction.participationMode === 'derived'
|
|
358
|
+
? await this.resolveDerivedParticipation(interaction.interactionId, record.parties.from)
|
|
359
|
+
: interaction.participations.some((p) => p.agent === record.parties.from && p.leftAt === undefined);
|
|
360
|
+
if (!isParticipant)
|
|
361
|
+
return { ok: false, reason: 'not-a-participant' };
|
|
362
|
+
const notes = [];
|
|
363
|
+
if (record.profileVersion && record.profileVersion !== interaction.profileVersion) {
|
|
364
|
+
notes.push({ kind: 'profile-downgrade', pinned: record.profileVersion, inForce: interaction.profileVersion });
|
|
365
|
+
}
|
|
366
|
+
if (record.contextDigest && !(await this.interactionStore.getContextSnapshot(record.contextDigest))) {
|
|
367
|
+
notes.push({ kind: 'context-unavailable', digest: record.contextDigest });
|
|
368
|
+
}
|
|
369
|
+
return { ok: true, interactionId: interaction.interactionId, notes };
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Membership for a `derived` interaction.
|
|
373
|
+
*
|
|
374
|
+
* Topic interactions carry `ixn_topic_<channelId>`, so the channel is recoverable from the id and the
|
|
375
|
+
* answer comes from the channel store — the same member-or-bot test `postToChannel` already applies.
|
|
376
|
+
* That is the point of doing this: the gate stops being a second check that could drift from the
|
|
377
|
+
* first, and becomes the same check asked once.
|
|
378
|
+
*
|
|
379
|
+
* Fail-closed by construction: an id that names no known derivation source resolves to `false`, so a
|
|
380
|
+
* `derived` interaction with no resolver admits nobody rather than everybody.
|
|
381
|
+
*/
|
|
382
|
+
async resolveDerivedParticipation(interactionId, agent) {
|
|
383
|
+
const channelId = channelIdFromTopicInteraction(interactionId);
|
|
384
|
+
if (!channelId)
|
|
385
|
+
return false;
|
|
386
|
+
return (await this.channels.isMember(channelId, agent)) || (await this.channels.isBot(channelId, agent));
|
|
387
|
+
}
|
|
388
|
+
/**
|
|
389
|
+
* Open a governed situation on this gateway. The custodian is always THIS principal — an interaction
|
|
390
|
+
* is custodied by the gateway that holds it, and accepting a caller-supplied principal would let a
|
|
391
|
+
* peer name someone else as custodian of a situation on our storage.
|
|
392
|
+
*/
|
|
393
|
+
async openInteraction(input) {
|
|
394
|
+
const participationMode = input.participationMode ?? 'asserted';
|
|
395
|
+
if (participationMode === 'derived' && (input.participations?.length ?? 0) > 0) {
|
|
396
|
+
// Refused rather than silently dropped: a caller passing both has a mental model where the list
|
|
397
|
+
// matters, and letting the write succeed would leave them believing a stale copy is authoritative.
|
|
398
|
+
throw new Error('openInteraction: a derived interaction must not carry participations');
|
|
399
|
+
}
|
|
400
|
+
const record = {
|
|
401
|
+
version: 'ap.interaction.v1',
|
|
402
|
+
interactionId: input.interactionId,
|
|
403
|
+
profileVersion: input.profileVersion,
|
|
404
|
+
principal: this.requirePrincipal(),
|
|
405
|
+
lifecycleState: 'active',
|
|
406
|
+
participationMode,
|
|
407
|
+
participations: input.participations ?? [],
|
|
408
|
+
...(input.protocolBindings ? { protocolBindings: input.protocolBindings } : {}),
|
|
409
|
+
createdAt: input.at,
|
|
410
|
+
updatedAt: input.at,
|
|
411
|
+
rev: 0,
|
|
412
|
+
};
|
|
413
|
+
await this.interactionStore.putInteraction(record);
|
|
414
|
+
return record;
|
|
267
415
|
}
|
|
268
416
|
/** Append one event to an existing exchange (case transitions / transport moves), reduced fail-closed. */
|
|
269
417
|
async applyEvent(exchangeId, event) {
|
|
270
418
|
return this.exchanges.append(exchangeId, event);
|
|
271
419
|
}
|
|
420
|
+
// ─── The interaction spine (spec 340 W6) ────────────────────────────────────────────────────────────
|
|
421
|
+
// Exposed as ONE accessor rather than a dozen forwarding methods. The DO is already large, and each
|
|
422
|
+
// forwarder would be a place for the store's invariants to be quietly re-implemented — the point of
|
|
423
|
+
// routing every transition through its machine is undone by a wrapper that sets state itself.
|
|
424
|
+
//
|
|
425
|
+
// Persisting here confers nothing: an interaction record says a situation exists, a commitment record
|
|
426
|
+
// says an obligation was recorded. Neither authorizes anything (ADR-0041/0043).
|
|
427
|
+
/** Interactions, context snapshots, decisions, commitments, per-viewer inbox state. */
|
|
428
|
+
get interactions() {
|
|
429
|
+
return this.interactionStore;
|
|
430
|
+
}
|
|
431
|
+
/**
|
|
432
|
+
* Everything still owed on this gateway — the query the single `case` field could not answer.
|
|
433
|
+
*
|
|
434
|
+
* A case could be `denied` while an obligation stayed outstanding with nowhere to record it, because
|
|
435
|
+
* one field was serving three machines (spec 340 §R). Concluding an interaction deliberately does NOT
|
|
436
|
+
* appear here as a discharge: closing a conversation ends the conversation, never the promise made
|
|
437
|
+
* inside it.
|
|
438
|
+
*/
|
|
439
|
+
async openCommitments() {
|
|
440
|
+
return this.interactionStore.listOpenCommitments();
|
|
441
|
+
}
|
|
442
|
+
/** The gateway's own SA. Throws rather than defaulting: a wrong custodian on a governed situation is
|
|
443
|
+
* worse than a refused write, and empty-string config is treated as unset (a wrangler `VAR = ""`
|
|
444
|
+
* binds an empty string, which `??` would happily accept). */
|
|
445
|
+
requirePrincipal() {
|
|
446
|
+
const sa = this.env.PRINCIPAL_SA?.trim();
|
|
447
|
+
if (!sa)
|
|
448
|
+
throw new Error('PrincipalGatewayDO: PRINCIPAL_SA is not configured; cannot custody an interaction');
|
|
449
|
+
return sa;
|
|
450
|
+
}
|
|
272
451
|
requireDeps() {
|
|
273
452
|
if (!this.deps)
|
|
274
453
|
throw new Error('PrincipalGatewayDO: co-resident MCP deps not configured (verifyToken/wrapperFor/tools)');
|
|
@@ -332,8 +511,11 @@ export class PrincipalGatewayDO {
|
|
|
332
511
|
const url = new URL(request.url);
|
|
333
512
|
try {
|
|
334
513
|
if (request.method === 'POST' && url.pathname === '/deliver') {
|
|
335
|
-
await this.deliver((await request.json()));
|
|
336
|
-
|
|
514
|
+
const outcome = await this.deliver((await request.json()));
|
|
515
|
+
// 409, not 400: the request is well-formed and the situation is what refuses it.
|
|
516
|
+
if (!outcome.ok)
|
|
517
|
+
return json({ ok: false, error: outcome.reason }, 409);
|
|
518
|
+
return json({ ok: true, interactionId: outcome.interactionId, notes: outcome.notes });
|
|
337
519
|
}
|
|
338
520
|
if (request.method === 'POST' && url.pathname === '/event') {
|
|
339
521
|
const body = (await request.json());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"principal-gateway-do.js","sourceRoot":"","sources":["../../src/cloudflare/principal-gateway-do.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"principal-gateway-do.js","sourceRoot":"","sources":["../../src/cloudflare/principal-gateway-do.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { Vault } from '@agenticprimitives/vault';
|
|
2
|
+
import type { ExchangeRecordV1, ExchangeId } from '../exchange-record.js';
|
|
3
|
+
import type { ExchangeStore } from './exchange-store.js';
|
|
4
|
+
/** One party's copy of one exchange. */
|
|
5
|
+
export declare const exchangeResource: (exchangeId: ExchangeId | string) => string;
|
|
6
|
+
/** The ordered id list. It exists so `list()` and `rebuild()` are ONE read plus N, rather than an
|
|
7
|
+
* enumeration that must fetch every record just to order them — an index whose cost is the reason nobody
|
|
8
|
+
* runs the rebuild is not much of an index. */
|
|
9
|
+
export declare const EXCHANGE_INDEX_RESOURCE = "exchange.index";
|
|
10
|
+
export interface ExchangeIndexV1 {
|
|
11
|
+
version: 1;
|
|
12
|
+
/** Newest activity first — the order `list()` returns and the order a rebuild replays. */
|
|
13
|
+
entries: Array<{
|
|
14
|
+
exchangeId: string;
|
|
15
|
+
updatedAt: string;
|
|
16
|
+
rev: number;
|
|
17
|
+
}>;
|
|
18
|
+
}
|
|
19
|
+
export interface VaultExchangeStore extends ExchangeStore {
|
|
20
|
+
/**
|
|
21
|
+
* Reconstruct the DO-local index from vault-held records.
|
|
22
|
+
*
|
|
23
|
+
* This is the operation ADR-0055 requires to exist IN CODE. A runbook does not count: the rebuild is
|
|
24
|
+
* needed on the day the DO is exactly what you cannot read, and a procedure nobody has executed is
|
|
25
|
+
* indistinguishable from one that does not work.
|
|
26
|
+
*
|
|
27
|
+
* Returns how many records were recovered — a rebuild that silently recovers nothing looks identical to
|
|
28
|
+
* one that succeeded against an empty vault, and those are opposite situations.
|
|
29
|
+
*/
|
|
30
|
+
rebuild(): Promise<{
|
|
31
|
+
recovered: number;
|
|
32
|
+
missing: string[];
|
|
33
|
+
}>;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* @param vault the owner's MCP-backed vault — the home of the records.
|
|
37
|
+
* @param owner the principal whose copy this is. Each party passes their OWN.
|
|
38
|
+
* @param index DO-local index hooks. Optional: absent, the store is vault-only (correct, just slower),
|
|
39
|
+
* which is also what makes the rebuild testable without a SQL fake.
|
|
40
|
+
*/
|
|
41
|
+
export declare function createVaultExchangeStore(vault: Vault, owner: string, index?: {
|
|
42
|
+
put(record: ExchangeRecordV1): void;
|
|
43
|
+
get(exchangeId: string): ExchangeRecordV1 | null;
|
|
44
|
+
list(): ExchangeRecordV1[];
|
|
45
|
+
clear(): void;
|
|
46
|
+
}): VaultExchangeStore;
|
|
47
|
+
//# sourceMappingURL=vault-exchange-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault-exchange-store.d.ts","sourceRoot":"","sources":["../../src/cloudflare/vault-exchange-store.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAmB,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAE3F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,wCAAwC;AACxC,eAAO,MAAM,gBAAgB,eAAgB,UAAU,GAAG,MAAM,KAAG,MAA0C,CAAC;AAE9G;;gDAEgD;AAChD,eAAO,MAAM,uBAAuB,mBAAmB,CAAC;AAExD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,CAAC,CAAC;IACX,0FAA0F;IAC1F,OAAO,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxE;AAID,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD;;;;;;;;;OASG;IACH,OAAO,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CAC9D;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE;IACN,GAAG,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACpC,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAAC;IACjD,IAAI,IAAI,gBAAgB,EAAE,CAAC;IAC3B,KAAK,IAAI,IAAI,CAAC;CACf,GACA,kBAAkB,CAgFpB"}
|