@agenticprimitives/fabric 0.0.0-alpha.8 → 0.0.0-alpha.9
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/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 +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { Hex32 } from './messaging/index.js';
|
|
2
|
+
import type { InboxDataV1 } from './inbox-doc.js';
|
|
3
|
+
/** An opaque cursor. Callers compare it for equality and MUST NOT parse or order it — see the header
|
|
4
|
+
* on why "newer?" is deliberately unanswerable. */
|
|
5
|
+
export type InboxRevision = Hex32;
|
|
6
|
+
/**
|
|
7
|
+
* The revision of an inbox document.
|
|
8
|
+
*
|
|
9
|
+
* Canonical JSON (sorted keys, `undefined` dropped) means two structurally identical documents produce
|
|
10
|
+
* the same digest regardless of key order — so a re-serialization round trip, or a different property
|
|
11
|
+
* insertion order between two writers, does not read as a change. That matters: a cursor that reported
|
|
12
|
+
* spurious changes would send the client back for a full replay it did not need, which is the cost this
|
|
13
|
+
* exists to remove.
|
|
14
|
+
*/
|
|
15
|
+
export declare function inboxRevision(doc: InboxDataV1): Promise<InboxRevision>;
|
|
16
|
+
/**
|
|
17
|
+
* Whether the caller's cursor still matches the document — the whole read-side contract.
|
|
18
|
+
*
|
|
19
|
+
* An absent cursor is NOT a match: a first-time caller has seen nothing, so it must receive the
|
|
20
|
+
* document. Treating "no cursor" as "unchanged" would return an empty answer to a client with an empty
|
|
21
|
+
* cache, and the two look identical from the client's side (ADR-0013 — empty is an answer, and here it
|
|
22
|
+
* would be the wrong one).
|
|
23
|
+
*/
|
|
24
|
+
export declare function inboxUnchanged(doc: InboxDataV1, callerRevision: string | null | undefined): Promise<boolean>;
|
|
25
|
+
/**
|
|
26
|
+
* The read result: either the document with its revision, or a bare "unchanged".
|
|
27
|
+
*
|
|
28
|
+
* A discriminated union rather than an optional `doc`, so a caller cannot read `result.doc` on an
|
|
29
|
+
* unchanged response and silently observe `undefined` as "empty inbox" — which is the shape of bug
|
|
30
|
+
* this cursor would otherwise introduce into every consumer.
|
|
31
|
+
*/
|
|
32
|
+
export type InboxReadResult = {
|
|
33
|
+
unchanged: true;
|
|
34
|
+
revision: InboxRevision;
|
|
35
|
+
} | {
|
|
36
|
+
unchanged: false;
|
|
37
|
+
revision: InboxRevision;
|
|
38
|
+
doc: InboxDataV1;
|
|
39
|
+
};
|
|
40
|
+
/** Build the read result for a caller presenting `callerRevision` (or none). */
|
|
41
|
+
export declare function readInboxWithCursor(doc: InboxDataV1, callerRevision: string | null | undefined): Promise<InboxReadResult>;
|
|
42
|
+
//# sourceMappingURL=inbox-revision.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inbox-revision.d.ts","sourceRoot":"","sources":["../src/inbox-revision.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD;oDACoD;AACpD,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC;AAElC;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAE5E;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,WAAW,EAChB,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACxC,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GACvB;IAAE,SAAS,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,aAAa,CAAA;CAAE,GAC5C;IAAE,SAAS,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,aAAa,CAAC;IAAC,GAAG,EAAE,WAAW,CAAA;CAAE,CAAC;AAEpE,gFAAgF;AAChF,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,WAAW,EAChB,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACxC,OAAO,CAAC,eAAe,CAAC,CAI1B"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
// The inbox READ CURSOR (spec 341 §3.2 / Wave 2a).
|
|
2
|
+
//
|
|
3
|
+
// WHAT PROBLEM THIS SOLVES, precisely. Spec 341 moves the Home's inbox read off a shared-secret bridge
|
|
4
|
+
// and onto A2A. A poll that today is a cheap local-ish call becomes a signed round-trip, so a read that
|
|
5
|
+
// returns "nothing changed" has to become cheap or the migration is a latency regression wearing
|
|
6
|
+
// compliance's clothes (ADR-0059).
|
|
7
|
+
//
|
|
8
|
+
// WHY A DIGEST AND NOT A COUNTER. A monotonic counter needs somewhere to live and someone to increment
|
|
9
|
+
// it — new storage, and a second source of truth that can drift from the document it describes. A
|
|
10
|
+
// digest is derived: it changes if and only if the content changes, it needs no storage, and it cannot
|
|
11
|
+
// disagree with the thing it summarises. What a digest gives up is ORDER — it answers "different?" and
|
|
12
|
+
// never "newer?" — and that is exactly the ETag contract, which is all a poll requires.
|
|
13
|
+
//
|
|
14
|
+
// WHAT IT DOES NOT SAVE, stated so nobody expects more. The holder still reads and decrypts the
|
|
15
|
+
// document to compute the digest; the vault round-trip is unavoidable. What it saves is everything
|
|
16
|
+
// AFTER that: the JSON transfer, and — the expensive half — the client's `hydrateInboxStores` replay,
|
|
17
|
+
// which is O(events) on every single load. An unchanged answer lets a caller skip a full event-log
|
|
18
|
+
// replay it was otherwise doing several times a minute.
|
|
19
|
+
//
|
|
20
|
+
// NOT AUTHORITY, and not freshness. A matching revision says the bytes are the same; it says nothing
|
|
21
|
+
// about whether the caller may read them, and nothing about how recently anyone looked. Authorization
|
|
22
|
+
// is re-decided per call regardless (ADR-0041).
|
|
23
|
+
import { canonicalizeJson } from '@agenticprimitives/types';
|
|
24
|
+
import { sha256Hex32 } from './messaging/index.js';
|
|
25
|
+
/**
|
|
26
|
+
* The revision of an inbox document.
|
|
27
|
+
*
|
|
28
|
+
* Canonical JSON (sorted keys, `undefined` dropped) means two structurally identical documents produce
|
|
29
|
+
* the same digest regardless of key order — so a re-serialization round trip, or a different property
|
|
30
|
+
* insertion order between two writers, does not read as a change. That matters: a cursor that reported
|
|
31
|
+
* spurious changes would send the client back for a full replay it did not need, which is the cost this
|
|
32
|
+
* exists to remove.
|
|
33
|
+
*/
|
|
34
|
+
export async function inboxRevision(doc) {
|
|
35
|
+
return sha256Hex32(canonicalizeJson(doc));
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Whether the caller's cursor still matches the document — the whole read-side contract.
|
|
39
|
+
*
|
|
40
|
+
* An absent cursor is NOT a match: a first-time caller has seen nothing, so it must receive the
|
|
41
|
+
* document. Treating "no cursor" as "unchanged" would return an empty answer to a client with an empty
|
|
42
|
+
* cache, and the two look identical from the client's side (ADR-0013 — empty is an answer, and here it
|
|
43
|
+
* would be the wrong one).
|
|
44
|
+
*/
|
|
45
|
+
export async function inboxUnchanged(doc, callerRevision) {
|
|
46
|
+
if (!callerRevision)
|
|
47
|
+
return false;
|
|
48
|
+
return (await inboxRevision(doc)) === callerRevision;
|
|
49
|
+
}
|
|
50
|
+
/** Build the read result for a caller presenting `callerRevision` (or none). */
|
|
51
|
+
export async function readInboxWithCursor(doc, callerRevision) {
|
|
52
|
+
const revision = await inboxRevision(doc);
|
|
53
|
+
if (callerRevision && callerRevision === revision)
|
|
54
|
+
return { unchanged: true, revision };
|
|
55
|
+
return { unchanged: false, revision, doc };
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=inbox-revision.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inbox-revision.js","sourceRoot":"","sources":["../src/inbox-revision.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,EAAE;AACF,uGAAuG;AACvG,wGAAwG;AACxG,iGAAiG;AACjG,mCAAmC;AACnC,EAAE;AACF,uGAAuG;AACvG,kGAAkG;AAClG,uGAAuG;AACvG,uGAAuG;AACvG,wFAAwF;AACxF,EAAE;AACF,gGAAgG;AAChG,mGAAmG;AACnG,sGAAsG;AACtG,mGAAmG;AACnG,wDAAwD;AACxD,EAAE;AACF,qGAAqG;AACrG,sGAAsG;AACtG,gDAAgD;AAEhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAQnD;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAgB;IAClD,OAAO,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAgB,EAChB,cAAyC;IAEzC,IAAI,CAAC,cAAc;QAAE,OAAO,KAAK,CAAC;IAClC,OAAO,CAAC,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,cAAc,CAAC;AACvD,CAAC;AAaD,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,GAAgB,EAChB,cAAyC;IAEzC,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,cAAc,IAAI,cAAc,KAAK,QAAQ;QAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACxF,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;AAC7C,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -24,6 +24,8 @@ export { applyInboxTransition, applyInteractionTransition, applyDecisionTransiti
|
|
|
24
24
|
export type { MachineRejection, MachineResult, InboxState, InboxTransition, InboxEntryV1, InteractionState, InteractionTransition, InteractionLifecycleV1, DecisionState, DecisionTransition, DecisionRecordV1, CommitmentState, CommitmentTransition, CommitmentRecordV1, } from './interaction-machines.js';
|
|
25
25
|
export { isProfileVersion, isFloatingVersion, checkReproducible, assertReproducible, hashContextSnapshot, buildContextSnapshot, verifyContextSnapshot, participantsAt, detectProfileDowngrades, } from './interaction-record.js';
|
|
26
26
|
export type { InteractionId, InteractionRecordV1, ProfileVersion, ParticipationV1, ContextDigest, ContextReferenceV1, ContextSnapshotV1, ContextReproducibilityFailure, ProfileDowngrade, } from './interaction-record.js';
|
|
27
|
+
export { inboxRevision, inboxUnchanged, readInboxWithCursor } from './inbox-revision.js';
|
|
28
|
+
export type { InboxRevision, InboxReadResult } from './inbox-revision.js';
|
|
27
29
|
export { conversationInteractionId, conversationIdFromInteraction, participationModeOfConversation, profileVersionOfConversation, participationsOfConversation, conversationPins, interactionViewOfConversation, participationModeOfChannel, interactionViewOfChannel, } from './messaging/conversation-interaction.js';
|
|
28
30
|
export type { ConversationExchangePins, ConversationInteractionView } from './messaging/conversation-interaction.js';
|
|
29
31
|
export { projectInboxItem, applyMessageEvent, applyInboxRules, createInMemoryInboxProjector, } from './inbox-projection.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -42,6 +42,10 @@ export { applyInboxTransition, applyInteractionTransition, applyDecisionTransiti
|
|
|
42
42
|
// The durable governed situation (spec 340 W2; ADR-0058). The aggregate an Exchange occurs IN — an
|
|
43
43
|
// Exchange without one is a message, which is a legitimate state and why the pins are optional.
|
|
44
44
|
export { isProfileVersion, isFloatingVersion, checkReproducible, assertReproducible, hashContextSnapshot, buildContextSnapshot, verifyContextSnapshot, participantsAt, detectProfileDowngrades, } from './interaction-record.js';
|
|
45
|
+
// spec 341 §3.2 / Wave 2a — the inbox READ CURSOR. Makes an unchanged poll cheap BEFORE the read moves
|
|
46
|
+
// onto signed A2A round-trips, so the migration is not a latency regression. A digest, not a counter:
|
|
47
|
+
// derived rather than stored, so it cannot drift from the document it describes.
|
|
48
|
+
export { inboxRevision, inboxUnchanged, readInboxWithCursor } from './inbox-revision.js';
|
|
45
49
|
// The vault-backed conversation as an Interaction (spec 340 W12) — the projection `demo-a2a`'s live
|
|
46
50
|
// board path uses. W11 wired the DO-SQL channel store, which no app runs; this reaches the one that does.
|
|
47
51
|
export { conversationInteractionId, conversationIdFromInteraction, participationModeOfConversation, profileVersionOfConversation, participationsOfConversation, conversationPins, interactionViewOfConversation, participationModeOfChannel, interactionViewOfChannel, } from './messaging/conversation-interaction.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.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.9",
|
|
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": {
|