@agenticprimitives/fabric 0.0.0-alpha.1 → 0.0.0-alpha.3
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/dist/messaging/board.d.ts +84 -4
- package/dist/messaging/board.d.ts.map +1 -1
- package/dist/messaging/board.js +98 -7
- 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/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/inbox-assistant.d.ts +68 -0
- package/dist/messaging/inbox-assistant.d.ts.map +1 -0
- package/dist/messaging/inbox-assistant.js +102 -0
- package/dist/messaging/inbox-assistant.js.map +1 -0
- package/dist/messaging/index.d.ts +6 -3
- package/dist/messaging/index.d.ts.map +1 -1
- package/dist/messaging/index.js +13 -2
- package/dist/messaging/index.js.map +1 -1
- package/dist/messaging/types.d.ts +22 -0
- package/dist/messaging/types.d.ts.map +1 -1
- package/dist/messaging/types.js +15 -1
- package/dist/messaging/types.js.map +1 -1
- package/dist/messaging/vault-store.d.ts +33 -0
- 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/record-catalog.d.ts.map +1 -1
- package/dist/record-catalog.js +12 -0
- package/dist/record-catalog.js.map +1 -1
- package/package.json +8 -8
|
@@ -12,6 +12,39 @@ export declare function messageBodyResource(id: MessageId): string;
|
|
|
12
12
|
* `message.body:topic:<conversationId>:<messageId>`. */
|
|
13
13
|
export declare function topicBodyResource(conversationId: string, id: MessageId): string;
|
|
14
14
|
export declare function messageAttachmentResource(id: MessageId, index: number): string;
|
|
15
|
+
/**
|
|
16
|
+
* Decode + hash-verify ONE stored body record against its envelope (spec 309 §8.4).
|
|
17
|
+
* Fail-closed: a missing/malformed record or a hash mismatch throws — never partial
|
|
18
|
+
* bytes. This is the SINGLE verification mechanism (ADR-0013) shared by the
|
|
19
|
+
* per-envelope `loadBody` and the batched {@link verifiedBodiesFromBatch}.
|
|
20
|
+
*/
|
|
21
|
+
export declare function verifyStoredBody(envelope: Pick<MessageEnvelopeV1, 'id' | 'bodyHash'>, stored: unknown): Promise<Uint8Array>;
|
|
22
|
+
/**
|
|
23
|
+
* Verify a BATCHED body read: `records` maps resource name → stored body record (the
|
|
24
|
+
* vault get-many response); returns verified bytes keyed by MESSAGE id.
|
|
25
|
+
*
|
|
26
|
+
* Why batching exists (2026-07-18 live regression): board reads issued one delegated
|
|
27
|
+
* vault read PER MESSAGE, so a polling Discussions tab scaled O(board size) verified
|
|
28
|
+
* calls against the org principal's rate budget; once the soft limiter tripped, the
|
|
29
|
+
* MEMBER-GATE reads on the same budget were rejected and the board surfaced a raw
|
|
30
|
+
* "auth failed". One get-many round-trip makes the per-poll cost O(1).
|
|
31
|
+
*
|
|
32
|
+
* Fail-closed PER RECORD, matching the per-envelope read's catch-and-omit: a
|
|
33
|
+
* missing/malformed/hash-mismatched body is OMITTED and never fails its siblings.
|
|
34
|
+
*/
|
|
35
|
+
export declare function verifiedBodiesFromBatch(envelopes: ReadonlyArray<Pick<MessageEnvelopeV1, 'id' | 'bodyHash' | 'body'>>, records: Record<string, unknown>): Promise<Record<MessageId, Uint8Array>>;
|
|
36
|
+
/**
|
|
37
|
+
* True iff a vault-tool response is a TRANSIENT throughput reject (the runtime's
|
|
38
|
+
* stage-2 soft rate limiter: HTTP 429, or the opaque 401 whose body carries
|
|
39
|
+
* `code: 'rate-limited'`), safe to retry after a short backoff — the runtime rejects
|
|
40
|
+
* rate-limited calls BEFORE the tool handler runs, so a retried call was never
|
|
41
|
+
* executed. NOT a credential failure: surfacing this as "auth failed" was the
|
|
42
|
+
* 2026-07-18 live-regression symptom (a throttled member board rendered a raw
|
|
43
|
+
* auth error instead of retrying).
|
|
44
|
+
*/
|
|
45
|
+
export declare function isRetryableVaultToolFailure(status: number, body: {
|
|
46
|
+
code?: unknown;
|
|
47
|
+
} | null | undefined): boolean;
|
|
15
48
|
export interface PutBodyResult {
|
|
16
49
|
ref: VaultRef;
|
|
17
50
|
bodyHash: Hex32;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vault-store.d.ts","sourceRoot":"","sources":["../../src/messaging/vault-store.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGtE,eAAO,MAAM,wBAAwB,iBAAiB,CAAC;AACvD,eAAO,MAAM,8BAA8B,uBAAuB,CAAC;AAEnE;;;;iFAIiF;AACjF,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,CAEzD;AAED;yDACyD;AACzD,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,GAAG,MAAM,CAE/E;AAED,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE9E;AAqBD,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,QAAQ,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC;CACjB;AAED,2EAA2E;AAC3E,MAAM,WAAW,gBAAgB;IAC/B,iFAAiF;IACjF,OAAO,CAAC,IAAI,EAAE;QACZ,SAAS,EAAE,SAAS,CAAC;QACrB,KAAK,EAAE,UAAU,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,mBAAmB,CAAC;QACpC,gHAAgH;QAChH,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CAC5D;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,gBAAgB,
|
|
1
|
+
{"version":3,"file":"vault-store.d.ts","sourceRoot":"","sources":["../../src/messaging/vault-store.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGtE,eAAO,MAAM,wBAAwB,iBAAiB,CAAC;AACvD,eAAO,MAAM,8BAA8B,uBAAuB,CAAC;AAEnE;;;;iFAIiF;AACjF,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,CAEzD;AAED;yDACyD;AACzD,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,GAAG,MAAM,CAE/E;AAED,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE9E;AAqBD;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,GAAG,UAAU,CAAC,EACpD,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,UAAU,CAAC,CAUrB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,GAAG,UAAU,GAAG,MAAM,CAAC,CAAC,EAC7E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAQxC;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,GAC1C,OAAO,CAET;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,QAAQ,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC;CACjB;AAED,2EAA2E;AAC3E,MAAM,WAAW,gBAAgB;IAC/B,iFAAiF;IACjF,OAAO,CAAC,IAAI,EAAE;QACZ,SAAS,EAAE,SAAS,CAAC;QACrB,KAAK,EAAE,UAAU,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,mBAAmB,CAAC;QACpC,gHAAgH;QAChH,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CAC5D;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAoBzF"}
|
|
@@ -34,6 +34,58 @@ function fromBase64(b64) {
|
|
|
34
34
|
out[i] = bin.charCodeAt(i);
|
|
35
35
|
return out;
|
|
36
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Decode + hash-verify ONE stored body record against its envelope (spec 309 §8.4).
|
|
39
|
+
* Fail-closed: a missing/malformed record or a hash mismatch throws — never partial
|
|
40
|
+
* bytes. This is the SINGLE verification mechanism (ADR-0013) shared by the
|
|
41
|
+
* per-envelope `loadBody` and the batched {@link verifiedBodiesFromBatch}.
|
|
42
|
+
*/
|
|
43
|
+
export async function verifyStoredBody(envelope, stored) {
|
|
44
|
+
const b64 = stored?.b64;
|
|
45
|
+
if (typeof b64 !== 'string') {
|
|
46
|
+
throw new Error(`message body for ${envelope.id} is missing or malformed`);
|
|
47
|
+
}
|
|
48
|
+
const bytes = fromBase64(b64);
|
|
49
|
+
if ((await sha256Hex32(bytes)) !== envelope.bodyHash) {
|
|
50
|
+
throw new Error(`message body ${envelope.id} does not match envelope bodyHash`);
|
|
51
|
+
}
|
|
52
|
+
return bytes;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Verify a BATCHED body read: `records` maps resource name → stored body record (the
|
|
56
|
+
* vault get-many response); returns verified bytes keyed by MESSAGE id.
|
|
57
|
+
*
|
|
58
|
+
* Why batching exists (2026-07-18 live regression): board reads issued one delegated
|
|
59
|
+
* vault read PER MESSAGE, so a polling Discussions tab scaled O(board size) verified
|
|
60
|
+
* calls against the org principal's rate budget; once the soft limiter tripped, the
|
|
61
|
+
* MEMBER-GATE reads on the same budget were rejected and the board surfaced a raw
|
|
62
|
+
* "auth failed". One get-many round-trip makes the per-poll cost O(1).
|
|
63
|
+
*
|
|
64
|
+
* Fail-closed PER RECORD, matching the per-envelope read's catch-and-omit: a
|
|
65
|
+
* missing/malformed/hash-mismatched body is OMITTED and never fails its siblings.
|
|
66
|
+
*/
|
|
67
|
+
export async function verifiedBodiesFromBatch(envelopes, records) {
|
|
68
|
+
const out = {};
|
|
69
|
+
await Promise.all(envelopes.map(async (e) => {
|
|
70
|
+
try {
|
|
71
|
+
out[e.id] = await verifyStoredBody(e, records[e.body.resource]);
|
|
72
|
+
}
|
|
73
|
+
catch { /* fail-closed omit — mirrors loadBody's per-message catch */ }
|
|
74
|
+
}));
|
|
75
|
+
return out;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* True iff a vault-tool response is a TRANSIENT throughput reject (the runtime's
|
|
79
|
+
* stage-2 soft rate limiter: HTTP 429, or the opaque 401 whose body carries
|
|
80
|
+
* `code: 'rate-limited'`), safe to retry after a short backoff — the runtime rejects
|
|
81
|
+
* rate-limited calls BEFORE the tool handler runs, so a retried call was never
|
|
82
|
+
* executed. NOT a credential failure: surfacing this as "auth failed" was the
|
|
83
|
+
* 2026-07-18 live-regression symptom (a throttled member board rendered a raw
|
|
84
|
+
* auth error instead of retrying).
|
|
85
|
+
*/
|
|
86
|
+
export function isRetryableVaultToolFailure(status, body) {
|
|
87
|
+
return status === 429 || (typeof body === 'object' && body !== null && body.code === 'rate-limited');
|
|
88
|
+
}
|
|
37
89
|
export function createVaultMessageBodyStore(vault, owner) {
|
|
38
90
|
return {
|
|
39
91
|
async putBody({ messageId, bytes, contentType, classification, resource: resourceOverride }) {
|
|
@@ -51,11 +103,7 @@ export function createVaultMessageBodyStore(vault, owner) {
|
|
|
51
103
|
if (obj === null) {
|
|
52
104
|
throw new Error(`message body ${envelope.body.resource} not found in vault`);
|
|
53
105
|
}
|
|
54
|
-
|
|
55
|
-
if ((await sha256Hex32(bytes)) !== envelope.bodyHash) {
|
|
56
|
-
throw new Error(`message body ${envelope.id} does not match envelope bodyHash`);
|
|
57
|
-
}
|
|
58
|
-
return bytes;
|
|
106
|
+
return verifyStoredBody(envelope, obj.data);
|
|
59
107
|
},
|
|
60
108
|
};
|
|
61
109
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vault-store.js","sourceRoot":"","sources":["../../src/messaging/vault-store.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,0EAA0E;AAC1E,2EAA2E;AAC3E,8EAA8E;AAI9E,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,CAAC,MAAM,wBAAwB,GAAG,cAAc,CAAC;AACvD,MAAM,CAAC,MAAM,8BAA8B,GAAG,oBAAoB,CAAC;AAEnE;;;;iFAIiF;AACjF,MAAM,UAAU,mBAAmB,CAAC,EAAa;IAC/C,OAAO,GAAG,wBAAwB,OAAO,EAAE,EAAE,CAAC;AAChD,CAAC;AAED;yDACyD;AACzD,MAAM,UAAU,iBAAiB,CAAC,cAAsB,EAAE,EAAa;IACrE,OAAO,GAAG,wBAAwB,UAAU,cAAc,IAAI,EAAE,EAAE,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,EAAa,EAAE,KAAa;IACpE,OAAO,GAAG,8BAA8B,IAAI,EAAE,IAAI,KAAK,EAAE,CAAC;AAC5D,CAAC;AAED,SAAS,QAAQ,CAAC,KAAiB;IACjC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,CAAC,IAAI,KAAK;QAAE,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACrD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;AACnB,CAAC;AAED,SAAS,UAAU,CAAC,GAAW;IAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;QAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACnE,OAAO,GAAG,CAAC;AACb,CAAC;
|
|
1
|
+
{"version":3,"file":"vault-store.js","sourceRoot":"","sources":["../../src/messaging/vault-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record-catalog.d.ts","sourceRoot":"","sources":["../src/record-catalog.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,kBAAkB;IACjC;mFAC+E;IAC/E,OAAO,EAAE,MAAM,CAAC;IAChB,2FAA2F;IAC3F,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,wFAAwF;IACxF,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,mFAAmF;IACnF,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,sDAAsD;IACtD,mBAAmB,EAAE,UAAU,GAAG,cAAc,CAAC;IACjD,KAAK,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;CAClC;AAED;;;wCAGwC;AACxC,eAAO,MAAM,cAAc,EAAE,SAAS,kBAAkB,
|
|
1
|
+
{"version":3,"file":"record-catalog.d.ts","sourceRoot":"","sources":["../src/record-catalog.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,kBAAkB;IACjC;mFAC+E;IAC/E,OAAO,EAAE,MAAM,CAAC;IAChB,2FAA2F;IAC3F,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,wFAAwF;IACxF,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,mFAAmF;IACnF,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,sDAAsD;IACtD,mBAAmB,EAAE,UAAU,GAAG,cAAc,CAAC;IACjD,KAAK,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;CAClC;AAED;;;wCAGwC;AACxC,eAAO,MAAM,cAAc,EAAE,SAAS,kBAAkB,EA8B9C,CAAC;AAEX,gGAAgG;AAChG,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAIhF"}
|
package/dist/record-catalog.js
CHANGED
|
@@ -27,6 +27,18 @@ export const RECORD_CATALOG = [
|
|
|
27
27
|
// Org admin (reachable from NO messaging scope)
|
|
28
28
|
{ pattern: 'org.profile', typeTag: null, classIri: null, shapeIri: null, classificationFloor: 'internal', owner: 'org' },
|
|
29
29
|
{ pattern: 'org.invite:*', typeTag: null, classIri: null, shapeIri: null, classificationFloor: 'confidential', owner: 'org' },
|
|
30
|
+
// Routed consultation (spec 329). The consult GRANT record is a capability (a member-signed
|
|
31
|
+
// delegation wire — delegation-gated residency, never KV; W1 custody note: the wire currently
|
|
32
|
+
// lives in the org's DO grant store, the delegate-service side per spec 322 §2, keyed by this
|
|
33
|
+
// name). The ConsultationIntent record is the Layer-2 spine DESCRIPTION per routed consult.
|
|
34
|
+
{ pattern: 'org.consult-grant:*', typeTag: null, classIri: null, shapeIri: null, classificationFloor: 'confidential', owner: 'org' },
|
|
35
|
+
{ pattern: 'routing.consult:*', typeTag: 'ap.consultation-intent.v1', classIri: CLASS.ConsultationIntent, shapeIri: SHAPE.ConsultationIntent, classificationFloor: 'internal', owner: 'org' },
|
|
36
|
+
// W3 additions (spec 329 §3.1/§4.1; both custodied in org DO storage — the W1 custody note's
|
|
37
|
+
// rationale). `routing.orgWire` is a CAPABILITY (the steward-minted org consult wire — a stored
|
|
38
|
+
// wire lives with its delegate service); `routing.pending:*` is a derived pending-ring
|
|
39
|
+
// PROJECTION (deliberately class-less per spec 329 §6 — projections get no ontology classes).
|
|
40
|
+
{ pattern: 'routing.orgWire', typeTag: null, classIri: null, shapeIri: null, classificationFloor: 'confidential', owner: 'org' },
|
|
41
|
+
{ pattern: 'routing.pending:*', typeTag: null, classIri: null, shapeIri: null, classificationFloor: 'internal', owner: 'org' },
|
|
30
42
|
];
|
|
31
43
|
/** Look up the catalog entry governing a concrete resource name (exact, then prefix family). */
|
|
32
44
|
export function catalogEntryFor(resource) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record-catalog.js","sourceRoot":"","sources":["../src/record-catalog.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,oGAAoG;AACpG,2FAA2F;AAC3F,mGAAmG;AACnG,4FAA4F;AAC5F,6FAA6F;AAC7F,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAiB3D;;;wCAGwC;AACxC,MAAM,CAAC,MAAM,cAAc,GAAkC;IAC3D,0DAA0D;IAC1D,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE;IACxH,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE;IAChI,iEAAiE;IACjE,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,YAAY,EAAE,QAAQ,EAAE,KAAK,CAAC,YAAY,EAAE,mBAAmB,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;IACtJ,EAAE,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,YAAY,EAAE,QAAQ,EAAE,KAAK,CAAC,YAAY,EAAE,mBAAmB,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;IAC3J,EAAE,OAAO,EAAE,sBAAsB,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,KAAK,CAAC,YAAY,EAAE,QAAQ,EAAE,KAAK,CAAC,YAAY,EAAE,mBAAmB,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;IAC7K,6BAA6B;IAC7B,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,8BAA8B,EAAE,QAAQ,EAAE,KAAK,CAAC,gBAAgB,EAAE,QAAQ,EAAE,KAAK,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;IACzL,gDAAgD;IAChD,EAAE,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE;IACtI,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE;IAChI,gFAAgF;IAChF,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE;IACjI,gDAAgD;IAChD,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;IACxH,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE;
|
|
1
|
+
{"version":3,"file":"record-catalog.js","sourceRoot":"","sources":["../src/record-catalog.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agenticprimitives/fabric",
|
|
3
|
-
"version": "0.0.0-alpha.
|
|
3
|
+
"version": "0.0.0-alpha.3",
|
|
4
4
|
"description": "The Agentic Interaction Fabric (spec 316): one canonical ExchangeRecordV1 + two-level exec/case FSM that absorbs messaging (envelope/inbox) and interactions (case/run) into an A2A-native, decentralized, low-latency substrate. Transport-agnostic core; the Cloudflare PrincipalGatewayDO ships as the ./cloudflare adapter subpath.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -62,14 +62,14 @@
|
|
|
62
62
|
"dependencies": {
|
|
63
63
|
"@noble/curves": "^2.2.0",
|
|
64
64
|
"@noble/hashes": "^2.2.0",
|
|
65
|
-
"@agenticprimitives/
|
|
66
|
-
"@agenticprimitives/
|
|
67
|
-
"@agenticprimitives/
|
|
68
|
-
"@agenticprimitives/tool-policy": "1.0.0-alpha.17",
|
|
69
|
-
"@agenticprimitives/types": "1.0.0-alpha.17",
|
|
65
|
+
"@agenticprimitives/fulfillment": "0.0.0-alpha.16",
|
|
66
|
+
"@agenticprimitives/audit": "1.0.0-alpha.19",
|
|
67
|
+
"@agenticprimitives/tool-policy": "1.0.0-alpha.19",
|
|
70
68
|
"@agenticprimitives/vault": "0.0.0-alpha.2",
|
|
71
|
-
"@agenticprimitives/
|
|
72
|
-
"@agenticprimitives/
|
|
69
|
+
"@agenticprimitives/ontology": "1.0.0-alpha.19",
|
|
70
|
+
"@agenticprimitives/types": "1.0.0-alpha.19",
|
|
71
|
+
"@agenticprimitives/provenance": "0.0.0-alpha.0",
|
|
72
|
+
"@agenticprimitives/orchestration": "0.0.0-alpha.1"
|
|
73
73
|
},
|
|
74
74
|
"scripts": {
|
|
75
75
|
"build": "tsc -p tsconfig.build.json",
|