@agenticprimitives/fabric 0.0.0-alpha.4 → 0.0.0-alpha.8

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.
Files changed (130) hide show
  1. package/CLAUDE.md +22 -2
  2. package/README.md +16 -16
  3. package/dist/case-emissions.d.ts +95 -0
  4. package/dist/case-emissions.d.ts.map +1 -0
  5. package/dist/case-emissions.js +208 -0
  6. package/dist/case-emissions.js.map +1 -0
  7. package/dist/case-machine.d.ts +28 -2
  8. package/dist/case-machine.d.ts.map +1 -1
  9. package/dist/case-machine.js +34 -7
  10. package/dist/case-machine.js.map +1 -1
  11. package/dist/cloudflare/index.d.ts +1 -0
  12. package/dist/cloudflare/index.d.ts.map +1 -1
  13. package/dist/cloudflare/index.js +4 -0
  14. package/dist/cloudflare/index.js.map +1 -1
  15. package/dist/cloudflare/interaction-store.d.ts +55 -0
  16. package/dist/cloudflare/interaction-store.d.ts.map +1 -0
  17. package/dist/cloudflare/interaction-store.js +230 -0
  18. package/dist/cloudflare/interaction-store.js.map +1 -0
  19. package/dist/cloudflare/principal-gateway-do.d.ts +118 -2
  20. package/dist/cloudflare/principal-gateway-do.d.ts.map +1 -1
  21. package/dist/cloudflare/principal-gateway-do.js +182 -7
  22. package/dist/cloudflare/principal-gateway-do.js.map +1 -1
  23. package/dist/communicative-act.d.ts +24 -1
  24. package/dist/communicative-act.d.ts.map +1 -1
  25. package/dist/communicative-act.js +28 -0
  26. package/dist/communicative-act.js.map +1 -1
  27. package/dist/delivery-envelope.d.ts.map +1 -1
  28. package/dist/delivery-envelope.js +0 -1
  29. package/dist/delivery-envelope.js.map +1 -1
  30. package/dist/enum-retirement.d.ts +43 -0
  31. package/dist/enum-retirement.d.ts.map +1 -0
  32. package/dist/enum-retirement.js +93 -0
  33. package/dist/enum-retirement.js.map +1 -0
  34. package/dist/exchange-record.d.ts +35 -4
  35. package/dist/exchange-record.d.ts.map +1 -1
  36. package/dist/exchange-record.js.map +1 -1
  37. package/dist/exchange-reducer.d.ts +32 -4
  38. package/dist/exchange-reducer.d.ts.map +1 -1
  39. package/dist/exchange-reducer.js +75 -1
  40. package/dist/exchange-reducer.js.map +1 -1
  41. package/dist/exchange-state.d.ts +30 -8
  42. package/dist/exchange-state.d.ts.map +1 -1
  43. package/dist/exchange-state.js +12 -10
  44. package/dist/exchange-state.js.map +1 -1
  45. package/dist/inbox-doc.d.ts +2 -2
  46. package/dist/inbox-doc.d.ts.map +1 -1
  47. package/dist/inbox-doc.js.map +1 -1
  48. package/dist/inbox-projection.d.ts +2 -2
  49. package/dist/inbox-projection.d.ts.map +1 -1
  50. package/dist/inbox-projection.js.map +1 -1
  51. package/dist/index.d.ts +21 -3
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +32 -2
  54. package/dist/index.js.map +1 -1
  55. package/dist/interaction-machines.d.ts +136 -0
  56. package/dist/interaction-machines.d.ts.map +1 -0
  57. package/dist/interaction-machines.js +174 -0
  58. package/dist/interaction-machines.js.map +1 -0
  59. package/dist/interaction-profile.d.ts +126 -0
  60. package/dist/interaction-profile.d.ts.map +1 -0
  61. package/dist/interaction-profile.js +192 -0
  62. package/dist/interaction-profile.js.map +1 -0
  63. package/dist/interaction-record.d.ts +168 -0
  64. package/dist/interaction-record.d.ts.map +1 -0
  65. package/dist/interaction-record.js +108 -0
  66. package/dist/interaction-record.js.map +1 -0
  67. package/dist/interactions/machine.d.ts +2 -2
  68. package/dist/interactions/machine.d.ts.map +1 -1
  69. package/dist/interactions/machine.js +2 -2
  70. package/dist/interactions/machine.js.map +1 -1
  71. package/dist/interactions/store.d.ts +9 -0
  72. package/dist/interactions/store.d.ts.map +1 -1
  73. package/dist/interactions/store.js +57 -2
  74. package/dist/interactions/store.js.map +1 -1
  75. package/dist/messaging/board.d.ts +3 -3
  76. package/dist/messaging/board.d.ts.map +1 -1
  77. package/dist/messaging/board.js +2 -2
  78. package/dist/messaging/board.js.map +1 -1
  79. package/dist/messaging/conversation-interaction.d.ts +66 -0
  80. package/dist/messaging/conversation-interaction.d.ts.map +1 -0
  81. package/dist/messaging/conversation-interaction.js +139 -0
  82. package/dist/messaging/conversation-interaction.js.map +1 -0
  83. package/dist/messaging/delivery.d.ts +2 -2
  84. package/dist/messaging/delivery.d.ts.map +1 -1
  85. package/dist/messaging/delivery.js +8 -1
  86. package/dist/messaging/delivery.js.map +1 -1
  87. package/dist/messaging/envelope.d.ts +7 -3
  88. package/dist/messaging/envelope.d.ts.map +1 -1
  89. package/dist/messaging/envelope.js +18 -1
  90. package/dist/messaging/envelope.js.map +1 -1
  91. package/dist/messaging/hash.d.ts +8 -2
  92. package/dist/messaging/hash.d.ts.map +1 -1
  93. package/dist/messaging/hash.js +6 -0
  94. package/dist/messaging/hash.js.map +1 -1
  95. package/dist/messaging/inbox-assistant.d.ts +16 -4
  96. package/dist/messaging/inbox-assistant.d.ts.map +1 -1
  97. package/dist/messaging/inbox-assistant.js +27 -4
  98. package/dist/messaging/inbox-assistant.js.map +1 -1
  99. package/dist/messaging/index.d.ts +4 -1
  100. package/dist/messaging/index.d.ts.map +1 -1
  101. package/dist/messaging/index.js +4 -0
  102. package/dist/messaging/index.js.map +1 -1
  103. package/dist/messaging/projector.d.ts +3 -3
  104. package/dist/messaging/projector.d.ts.map +1 -1
  105. package/dist/messaging/projector.js.map +1 -1
  106. package/dist/messaging/receipts.d.ts +3 -3
  107. package/dist/messaging/receipts.d.ts.map +1 -1
  108. package/dist/messaging/receipts.js.map +1 -1
  109. package/dist/messaging/rules.d.ts +10 -3
  110. package/dist/messaging/rules.d.ts.map +1 -1
  111. package/dist/messaging/rules.js +8 -1
  112. package/dist/messaging/rules.js.map +1 -1
  113. package/dist/messaging/store.d.ts +4 -4
  114. package/dist/messaging/store.d.ts.map +1 -1
  115. package/dist/messaging/store.js +5 -3
  116. package/dist/messaging/store.js.map +1 -1
  117. package/dist/messaging/types.d.ts +30 -0
  118. package/dist/messaging/types.d.ts.map +1 -1
  119. package/dist/messaging/types.js +3 -0
  120. package/dist/messaging/types.js.map +1 -1
  121. package/dist/messaging/vault-store.d.ts +2 -2
  122. package/dist/messaging/vault-store.d.ts.map +1 -1
  123. package/dist/protocol-binding.d.ts +71 -0
  124. package/dist/protocol-binding.d.ts.map +1 -0
  125. package/dist/protocol-binding.js +0 -0
  126. package/dist/protocol-binding.js.map +1 -0
  127. package/dist/record-catalog.d.ts.map +1 -1
  128. package/dist/record-catalog.js +7 -0
  129. package/dist/record-catalog.js.map +1 -1
  130. package/package.json +7 -7
@@ -1,11 +1,13 @@
1
- import type { MessageEnvelopeV1, MessageKind, MessageEventType, MessageId, Hex32, ContextRefV1 } from './messaging/index.js';
1
+ import type { MessageEnvelopeV1, MessageEventType, MessageId, Hex32, ContextRefV1 } from './messaging/index.js';
2
2
  import { hashMessageEnvelope } from './messaging/index.js';
3
3
  import type { AuthorityRef } from './interactions/index.js';
4
4
  import type { AuthorityTier } from '@agenticprimitives/tool-policy';
5
5
  import type { CanonicalAgentId } from '@agenticprimitives/types';
6
6
  import type { VaultRef } from '@agenticprimitives/vault';
7
7
  import type { ExecState, CaseState } from './exchange-state.js';
8
+ import type { DecisionState } from './interaction-machines.js';
8
9
  import type { CaseTransition } from './case-machine.js';
10
+ import type { InteractionId, ProfileVersion, ContextDigest } from './interaction-record.js';
9
11
  /** The exchange spine id — replaces today's `taskId` / `int_`+`run_` / `conv_`+`msg_` id families. */
10
12
  export type ExchangeId = `xch_${string}`;
11
13
  /**
@@ -82,12 +84,16 @@ export type ExchangeEventV1 = (ExchangeEventBase & {
82
84
  * The ONE canonical exchange record (spec §b). Two-level FSM: `exec` (transport, always present) + `case`
83
85
  * (business substate, execution-tier only). Authority is referenced, never satisfied here — approving a case
84
86
  * advances `case`, it never unlocks a resource (ADR-0041).
87
+ *
88
+ * `kind: MessageKind` was REMOVED in spec 340 W8. It was a frozen taxonomy on the aggregate, it was a second
89
+ * copy of `envelope.kind`, and it had ZERO readers — the authority tier is server-classified from the skill
90
+ * selector, never from `kind`, and that comment was the only thing the field was doing. `profileVersion` is
91
+ * what carries interaction type now. `MessageEnvelopeV1.kind` is a DIFFERENT field and stays: it is inside
92
+ * the signed wire hash and has live readers (spec 340 §R.1).
85
93
  */
86
94
  export interface ExchangeRecordV1 {
87
95
  version: 'ap.exchange.v1';
88
96
  exchangeId: ExchangeId;
89
- /** Projection hint only — the authority TIER is server-classified from the skill selector, never `kind`. */
90
- kind: MessageKind;
91
97
  /** Server-classified ONCE at ingress (never client-asserted). */
92
98
  tier: AuthorityTier;
93
99
  /** The delegator / gateway owner SA — on whose behalf the exchange runs. Also the case RESPONDER by
@@ -108,8 +114,22 @@ export interface ExchangeRecordV1 {
108
114
  resourceOwner?: CanonicalAgentId;
109
115
  /** Transport envelope state (always present). */
110
116
  exec: ExecState;
111
- /** Business substate — execution-tier only; `undefined` for a T0 communication exchange. */
117
+ /** Execution substate — execution-tier only; `undefined` for a T0 communication exchange. */
112
118
  case?: CaseState;
119
+ /**
120
+ * spec 340 W10b-3 — the DECISION substate, projected onto this record.
121
+ *
122
+ * Until W10b-3 the ordering "you cannot issue before approving" was an FSM edge
123
+ * (`issue-credential` ran only `from: ['approved']`). With the determination out of `CaseState`,
124
+ * this reducer would otherwise have no way to know one was made, and issuance could skip it — a
125
+ * guarantee silently lost to a type change. So the reducer projects the decision state the same way
126
+ * it projects `exec` from `case`.
127
+ *
128
+ * A PROJECTION, not the record of record: the full `DecisionRecordV1` (with its decider and
129
+ * timestamps) lives in the interaction store's decision machine. This carries only what the
130
+ * precondition needs. It is never authority — a `granted` here permits nothing (ADR-0041).
131
+ */
132
+ decision?: DecisionState;
113
133
  /** The signed wire objects (deliveries, responses, decisions). */
114
134
  envelopes: ExchangeEnvelopeV1[];
115
135
  /** The single append-only event stream (single-writer in the DO). */
@@ -120,6 +140,17 @@ export interface ExchangeRecordV1 {
120
140
  artifacts?: ArtifactRef[];
121
141
  /** Entities this exchange is ABOUT (spec 312) — carried through from the envelope. */
122
142
  contextRefs?: ContextRefV1[];
143
+ /** The governed situation this exchange occurs in. An Exchange without one is a message — a
144
+ * legitimate state, not an error, and the reason this is optional rather than required. */
145
+ interactionId?: InteractionId;
146
+ /** The EXACT profile version this exchange was made under, recorded HERE rather than read off the
147
+ * live interaction. Reading it off the interaction is what makes a downgrade invisible: an
148
+ * adversary edits one field and a Negotiation is reinterpreted as a Conversation, taking its
149
+ * acceptance semantics with it (spec 340 §6). */
150
+ profileVersion?: ProfileVersion;
151
+ /** Digest of the `ContextSnapshotV1` this exchange was evaluated against — by hash, never a pointer
152
+ * at live state. Supersedes `contextRefs` for authority-bearing context (spec 340 §7). */
153
+ contextDigest?: ContextDigest;
123
154
  /** Monotonic revision for the inbox-projection cursor. */
124
155
  rev: number;
125
156
  updatedAt: string;
@@ -1 +1 @@
1
- {"version":3,"file":"exchange-record.d.ts","sourceRoot":"","sources":["../src/exchange-record.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exchange-record.d.ts","sourceRoot":"","sources":["../src/exchange-record.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"exchange-record.js","sourceRoot":"","sources":["../src/exchange-record.ts"],"names":[],"mappings":"AAAA,yGAAyG;AACzG,6GAA6G;AAC7G,0GAA0G;AAC1G,EAAE;AACF,oGAAoG;AACpG,2GAA2G;AAC3G,6GAA6G;AAC7G,8GAA8G;AAC9G,+EAA+E;AAC/E,EAAE;AACF,4GAA4G;AAC5G,oGAAoG;AAGpG,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAiC3D;;kDAEkD;AAClD,MAAM,CAAC,MAAM,oBAAoB,GAAG,mBAAmB,CAAC;AACxD,uFAAuF;AACvF,MAAM,CAAC,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AA8EtD;uGACuG;AACvG,MAAM,UAAU,OAAO,CAAC,MAAqD;IAC3E,OAAO,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,SAAS,CAAC;AAC1C,CAAC"}
1
+ {"version":3,"file":"exchange-record.js","sourceRoot":"","sources":["../src/exchange-record.ts"],"names":[],"mappings":"AAAA,yGAAyG;AACzG,6GAA6G;AAC7G,0GAA0G;AAC1G,EAAE;AACF,oGAAoG;AACpG,2GAA2G;AAC3G,6GAA6G;AAC7G,8GAA8G;AAC9G,+EAA+E;AAC/E,EAAE;AACF,4GAA4G;AAC5G,oGAAoG;AAGpG,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAmC3D;;kDAEkD;AAClD,MAAM,CAAC,MAAM,oBAAoB,GAAG,mBAAmB,CAAC;AACxD,uFAAuF;AACvF,MAAM,CAAC,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AA+GtD;uGACuG;AACvG,MAAM,UAAU,OAAO,CAAC,MAAqD;IAC3E,OAAO,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,SAAS,CAAC;AAC1C,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { type CaseFsmFields } from './case-machine.js';
2
2
  import type { ExchangeRecordV1, ExchangeEventV1 } from './exchange-record.js';
3
+ import type { Hex32 } from './messaging/index.js';
3
4
  export type ExchangeApplyResult = {
4
5
  ok: true;
5
6
  record: ExchangeRecordV1;
@@ -16,10 +17,37 @@ export type ExchangeApplyResult = {
16
17
  * `null` for a case-less (T0) exchange.
17
18
  */
18
19
  export declare function caseViewFromRecord(record: ExchangeRecordV1): CaseFsmFields | null;
20
+ export declare function applyExchangeEvent(record: ExchangeRecordV1, event: ExchangeEventV1): ExchangeApplyResult;
21
+ /** Bumped ONLY when a fold changes an output for inputs it already accepted. Adding a rejection reason
22
+ * is not a bump; changing what an accepted event does to the record is. */
23
+ export declare const EXCHANGE_REDUCER_VERSION: "ap.exchange-reducer.v1";
24
+ export interface MaterializationProvenanceV1 {
25
+ reducerVersion: typeof EXCHANGE_REDUCER_VERSION;
26
+ /** sha256 over the canonical event array — order-sensitive, because the fold is. */
27
+ eventSetDigest: Hex32;
28
+ eventCount: number;
29
+ }
30
+ /** Digest of the exact event sequence a materialization consumed. Order-sensitive on purpose: the same
31
+ * events in a different order are a different history, and folding them yields a different record. */
32
+ export declare function eventSetDigest(events: readonly ExchangeEventV1[]): Promise<Hex32>;
33
+ export type ExchangeReplayResult = {
34
+ ok: true;
35
+ record: ExchangeRecordV1;
36
+ provenance: MaterializationProvenanceV1;
37
+ } | {
38
+ ok: false;
39
+ reason: string;
40
+ atSeq: number;
41
+ };
19
42
  /**
20
- * Apply one event to an exchange record. Single-writer semantics (the gateway DO): `event.seq` must be the
21
- * next slot (`record.events.length`). Returns the next record (`changed: true`), a no-op for an idempotent
22
- * replay (`changed: false`), or a typed rejection.
43
+ * Rebuild an exchange from its event stream, and return the state WITH the evidence of how it was
44
+ * built.
45
+ *
46
+ * `seed` is the record as it existed before any event — the identity fields only. Its `events` are
47
+ * ignored and replaced by the fold, so replaying an already-materialized record cannot double-apply.
48
+ *
49
+ * Failure carries `atSeq` rather than just a reason: on a stream of two hundred events, "illegal
50
+ * transition" without the position is not a diagnosis.
23
51
  */
24
- export declare function applyExchangeEvent(record: ExchangeRecordV1, event: ExchangeEventV1): ExchangeApplyResult;
52
+ export declare function replayExchange(seed: ExchangeRecordV1, events: readonly ExchangeEventV1[]): Promise<ExchangeReplayResult>;
25
53
  //# sourceMappingURL=exchange-reducer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"exchange-reducer.d.ts","sourceRoot":"","sources":["../src/exchange-reducer.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE9E,MAAM,MAAM,mBAAmB,GAC3B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GACxD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElC;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,GAAG,aAAa,GAAG,IAAI,CAajF;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,GAAG,mBAAmB,CAiExG"}
1
+ {"version":3,"file":"exchange-reducer.d.ts","sourceRoot":"","sources":["../src/exchange-reducer.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAuB,KAAK,aAAa,EAAuB,MAAM,mBAAmB,CAAC;AAEjG,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAGlD,MAAM,MAAM,mBAAmB,GAC3B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GACxD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElC;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,GAAG,aAAa,GAAG,IAAI,CAajF;AAiCD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,GAAG,mBAAmB,CAwExG;AAaD;4EAC4E;AAC5E,eAAO,MAAM,wBAAwB,EAAG,wBAAiC,CAAC;AAE1E,MAAM,WAAW,2BAA2B;IAC1C,cAAc,EAAE,OAAO,wBAAwB,CAAC;IAChD,oFAAoF;IACpF,cAAc,EAAE,KAAK,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;uGACuG;AACvG,wBAAsB,cAAc,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAEvF;AAED,MAAM,MAAM,oBAAoB,GAC5B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAC;IAAC,UAAU,EAAE,2BAA2B,CAAA;CAAE,GAC/E;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjD;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,SAAS,eAAe,EAAE,GACjC,OAAO,CAAC,oBAAoB,CAAC,CAgB/B"}
@@ -13,8 +13,10 @@
13
13
  //
14
14
  // Fail-closed: an illegal case transition, an inconsistent transport move, or a seq gap is a typed rejection,
15
15
  // never a silent state change. Idempotent: a replayed event (same `idempotencyKey`) is a no-op.
16
+ import { canonicalizeJson } from '@agenticprimitives/types';
16
17
  import { canTaskTransition, expectedExecForCase, isExecCaseConsistent } from './exchange-state.js';
17
18
  import { applyCaseTransition } from './case-machine.js';
19
+ import { sha256Hex32 } from './messaging/index.js';
18
20
  /**
19
21
  * Derive the transient case FSM view from a lean `ExchangeRecordV1` (option (a) — the record stays the lean
20
22
  * spine; the case view is constructed only when applying a transition). Role convention: `requester` = the
@@ -42,6 +44,28 @@ export function caseViewFromRecord(record) {
42
44
  * next slot (`record.events.length`). Returns the next record (`changed: true`), a no-op for an idempotent
43
45
  * replay (`changed: false`), or a typed rejection.
44
46
  */
47
+ /**
48
+ * spec 340 W10b-3 — the decision substate this record projects, given the transition just applied.
49
+ *
50
+ * Mirrors `caseTransitionEmissions`' decision half deliberately narrowly: the reducer holds no
51
+ * `DecisionRecordV1` (no decider, no timestamps), only the state the `issue-credential` precondition
52
+ * needs. The authoritative record lives in the interaction store's decision machine.
53
+ *
54
+ * `undefined` in, `undefined` out for every non-deciding transition — this never invents a
55
+ * determination, and a transition that decides nothing leaves the projection exactly as it was.
56
+ */
57
+ function nextDecisionState(current, transition) {
58
+ switch (transition) {
59
+ case 'approve':
60
+ return 'granted';
61
+ case 'deny':
62
+ return 'refused';
63
+ case 'expire':
64
+ return 'expired';
65
+ default:
66
+ return current;
67
+ }
68
+ }
45
69
  export function applyExchangeEvent(record, event) {
46
70
  // Idempotent replay — a matching key already in the stream is a no-op (no second row).
47
71
  if (event.idempotencyKey && record.events.some((e) => e.idempotencyKey === event.idempotencyKey)) {
@@ -77,7 +101,10 @@ export function applyExchangeEvent(record, event) {
77
101
  messageId: event.messageId,
78
102
  evidenceRef: event.evidenceRef,
79
103
  authorityRef: event.authorityRef,
80
- });
104
+ },
105
+ // W10b-3: supply the decision this record has projected so far, so `issue-credential` still
106
+ // cannot precede a grant now that the ordering is no longer an FSM edge.
107
+ { decisionState: record.decision ?? null });
81
108
  if (!res.ok)
82
109
  return { ok: false, reason: `case:${res.reason}` };
83
110
  const nextCase = res.case.state;
@@ -88,6 +115,7 @@ export function applyExchangeEvent(record, event) {
88
115
  ...appended,
89
116
  case: nextCase,
90
117
  exec: expectedExecForCase(nextCase), // projection — the case FSM is the authority
118
+ decision: nextDecisionState(record.decision, event.transition),
91
119
  authorityRefs: res.case.authorityRefs,
92
120
  },
93
121
  };
@@ -105,4 +133,50 @@ export function applyExchangeEvent(record, event) {
105
133
  }
106
134
  }
107
135
  }
136
+ // ─── Materialization provenance (spec 340 INV-340-8) ─────────────────────────
137
+ //
138
+ // "Materialized state rebuilds deterministically from signed events" is a claim, and a claim nobody can
139
+ // check is a hope. Two things make it checkable, and both must travel WITH the rebuilt state:
140
+ //
141
+ // eventSetDigest — WHICH events produced this. Without it, a state that silently dropped an event
142
+ // and a state that legitimately never received one are indistinguishable.
143
+ // reducerVersion — WHICH rules produced this. Two nodes on different reducer versions can fold the
144
+ // same events into different states and both be internally consistent; the
145
+ // disagreement then looks like data corruption instead of a version skew.
146
+ /** Bumped ONLY when a fold changes an output for inputs it already accepted. Adding a rejection reason
147
+ * is not a bump; changing what an accepted event does to the record is. */
148
+ export const EXCHANGE_REDUCER_VERSION = 'ap.exchange-reducer.v1';
149
+ /** Digest of the exact event sequence a materialization consumed. Order-sensitive on purpose: the same
150
+ * events in a different order are a different history, and folding them yields a different record. */
151
+ export async function eventSetDigest(events) {
152
+ return sha256Hex32(canonicalizeJson(events));
153
+ }
154
+ /**
155
+ * Rebuild an exchange from its event stream, and return the state WITH the evidence of how it was
156
+ * built.
157
+ *
158
+ * `seed` is the record as it existed before any event — the identity fields only. Its `events` are
159
+ * ignored and replaced by the fold, so replaying an already-materialized record cannot double-apply.
160
+ *
161
+ * Failure carries `atSeq` rather than just a reason: on a stream of two hundred events, "illegal
162
+ * transition" without the position is not a diagnosis.
163
+ */
164
+ export async function replayExchange(seed, events) {
165
+ let record = { ...seed, events: [] };
166
+ for (const event of events) {
167
+ const res = applyExchangeEvent(record, event);
168
+ if (!res.ok)
169
+ return { ok: false, reason: res.reason, atSeq: event.seq };
170
+ record = res.record;
171
+ }
172
+ return {
173
+ ok: true,
174
+ record,
175
+ provenance: {
176
+ reducerVersion: EXCHANGE_REDUCER_VERSION,
177
+ eventSetDigest: await eventSetDigest(events),
178
+ eventCount: events.length,
179
+ },
180
+ };
181
+ }
108
182
  //# sourceMappingURL=exchange-reducer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"exchange-reducer.js","sourceRoot":"","sources":["../src/exchange-reducer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exchange-reducer.js","sourceRoot":"","sources":["../src/exchange-reducer.ts"],"names":[],"mappings":"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"}
@@ -4,20 +4,42 @@ export type ExecState = TaskState;
4
4
  export { canTaskTransition };
5
5
  /** All 8 transport `ExecState`s (mirrors `fulfillment` `TaskState`), for coverage assertions. */
6
6
  export declare const EXEC_STATES: readonly ExecState[];
7
- /** The business/interaction substate (spec 316 §2), 11 states. `delivered`/`seen` were REMOVED (Blocker 6):
8
- * they are inbox read-receipt facts, not lifecycle transitions. */
9
- export type CaseState = 'draft' | 'submitted' | 'triaged' | 'needs-info' | 'approved' | 'denied' | 'issued' | 'completed' | 'expired' | 'revoked' | 'failed';
7
+ /**
8
+ * The EXECUTION substate (spec 340 W10b-3), 8 states. Two earlier removals and one late one:
9
+ *
10
+ * - `delivered`/`seen` went in Blocker 6 — inbox read-receipt facts, not lifecycle transitions.
11
+ * - `approved`/`denied`/`expired`/`revoked` went in W10b-3. They were never execution. `approved`,
12
+ * `denied` and `expired` are DECISIONS and `revoked` is what happens to a COMMITMENT, so they now
13
+ * live in the machines that own them (spec 340 §R.2). One field was answering three questions with
14
+ * three different signers, which is why a case could be `denied` while a commitment stayed
15
+ * outstanding with nowhere to record it.
16
+ *
17
+ * `closed` replaces the terminal those four used to provide: the work was taken up and ended without
18
+ * issuance. It carries no verdict — the verdict is in the decision record. Deliberately not folded
19
+ * into `failed`: a denial is not a fault, and collapsing them would reclassify every refusal as an
20
+ * error (and would silently drop the `rejected` exec value, which nothing else produces).
21
+ *
22
+ * The TRANSITION VERBS did not change. `approve`/`deny`/`expire`/`revoke` are still transitions — they
23
+ * now emit into the decision and commitment machines and land the case on an execution state. That is
24
+ * what lets a stored v1 event log keep replaying with no migration (W10b-1).
25
+ */
26
+ export type CaseState = 'draft' | 'submitted' | 'triaged' | 'needs-info' | 'issued' | 'completed' | 'closed' | 'failed';
10
27
  export declare const CASE_STATES: readonly CaseState[];
11
28
  /**
12
- * EXEC_CASE_COUPLING (spec 316 §2) — the canonical `ExecState` each `CaseState` maps to. Exhaustive over all
13
- * 11 `CaseState`. Rationale per row:
29
+ * EXEC_CASE_COUPLING (spec 316 §2) — the canonical `ExecState` each `CaseState` maps to. Exhaustive over
30
+ * all 8 `CaseState`. Rationale per row:
14
31
  * - `draft`/`submitted` → `submitted` : case created, pre-triage/local — accepted, not yet worked.
15
- * - `triaged`/`approved` → `working` : responder actively working the request.
32
+ * - `triaged` → `working` : responder actively working the request.
16
33
  * - `needs-info` → `input-required` : the ONLY case → `input-required` (blocked awaiting requester;
17
34
  * A2A `input-required` = blocked on the SENDER, so `triaged` must NOT map here).
18
35
  * - `issued`/`completed` → `completed`.
19
- * - `denied` → `rejected` : a rejected request is distinct from a failed task.
20
- * - `expired`/`revoked`/`failed` → `failed` (canonical; `canceled` is the transport-set alternative).
36
+ * - `closed` → `rejected` : taken up and ended without issuance — distinct from a failed
37
+ * task, which is the distinction `denied` used to carry. Keeping this row is
38
+ * what keeps `rejected` reachable at all; folding `closed` into `failed`
39
+ * would leave an `ExecState` no case produces.
40
+ * - `failed` → `failed` (canonical; `canceled` is the transport-set alternative).
41
+ *
42
+ * Still 6 case-derived exec values + the 2 transport-set ones = all 8 `ExecState`, unchanged by W10b-3.
21
43
  */
22
44
  export declare const EXEC_CASE_COUPLING: Record<CaseState, ExecState>;
23
45
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"exchange-state.d.ts","sourceRoot":"","sources":["../src/exchange-state.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,iBAAiB,EAAE,KAAK,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAEnF,yGAAyG;AACzG,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B,iGAAiG;AACjG,eAAO,MAAM,WAAW,EAAE,SAAS,SAAS,EAElC,CAAC;AAEX;oEACoE;AACpE,MAAM,MAAM,SAAS,GACjB,OAAO,GAAG,WAAW,GAAG,SAAS,GAAG,YAAY,GAChD,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAC9C,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAErC,eAAO,MAAM,WAAW,EAAE,SAAS,SAAS,EAElC,CAAC;AAEX;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,CAY3D,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,SAAS,EAA2C,CAAC;AAE/F,kHAAkH;AAClH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAG/E;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAG/F;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,SAAS,CAAA;CAAE,EAC3C,EAAE,EAAE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,SAAS,CAAA;CAAE,GACxC,OAAO,CAGT"}
1
+ {"version":3,"file":"exchange-state.d.ts","sourceRoot":"","sources":["../src/exchange-state.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,iBAAiB,EAAE,KAAK,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAEnF,yGAAyG;AACzG,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B,iGAAiG;AACjG,eAAO,MAAM,WAAW,EAAE,SAAS,SAAS,EAElC,CAAC;AAEX;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,SAAS,GACjB,OAAO,GAAG,WAAW,GAAG,SAAS,GAAG,YAAY,GAChD,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEjD,eAAO,MAAM,WAAW,EAAE,SAAS,SAAS,EAElC,CAAC;AAEX;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,CAS3D,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,SAAS,EAA2C,CAAC;AAE/F,kHAAkH;AAClH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAG/E;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAG/F;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,SAAS,CAAA;CAAE,EAC3C,EAAE,EAAE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,SAAS,CAAA;CAAE,GACxC,OAAO,CAGT"}
@@ -13,30 +13,32 @@ export const EXEC_STATES = [
13
13
  'submitted', 'working', 'completed', 'failed', 'canceled', 'input-required', 'rejected', 'auth-required',
14
14
  ];
15
15
  export const CASE_STATES = [
16
- 'draft', 'submitted', 'triaged', 'needs-info', 'approved', 'denied', 'issued', 'completed', 'expired', 'revoked', 'failed',
16
+ 'draft', 'submitted', 'triaged', 'needs-info', 'issued', 'completed', 'closed', 'failed',
17
17
  ];
18
18
  /**
19
- * EXEC_CASE_COUPLING (spec 316 §2) — the canonical `ExecState` each `CaseState` maps to. Exhaustive over all
20
- * 11 `CaseState`. Rationale per row:
19
+ * EXEC_CASE_COUPLING (spec 316 §2) — the canonical `ExecState` each `CaseState` maps to. Exhaustive over
20
+ * all 8 `CaseState`. Rationale per row:
21
21
  * - `draft`/`submitted` → `submitted` : case created, pre-triage/local — accepted, not yet worked.
22
- * - `triaged`/`approved` → `working` : responder actively working the request.
22
+ * - `triaged` → `working` : responder actively working the request.
23
23
  * - `needs-info` → `input-required` : the ONLY case → `input-required` (blocked awaiting requester;
24
24
  * A2A `input-required` = blocked on the SENDER, so `triaged` must NOT map here).
25
25
  * - `issued`/`completed` → `completed`.
26
- * - `denied` → `rejected` : a rejected request is distinct from a failed task.
27
- * - `expired`/`revoked`/`failed` → `failed` (canonical; `canceled` is the transport-set alternative).
26
+ * - `closed` → `rejected` : taken up and ended without issuance — distinct from a failed
27
+ * task, which is the distinction `denied` used to carry. Keeping this row is
28
+ * what keeps `rejected` reachable at all; folding `closed` into `failed`
29
+ * would leave an `ExecState` no case produces.
30
+ * - `failed` → `failed` (canonical; `canceled` is the transport-set alternative).
31
+ *
32
+ * Still 6 case-derived exec values + the 2 transport-set ones = all 8 `ExecState`, unchanged by W10b-3.
28
33
  */
29
34
  export const EXEC_CASE_COUPLING = {
30
35
  draft: 'submitted',
31
36
  submitted: 'submitted',
32
37
  triaged: 'working',
33
38
  'needs-info': 'input-required',
34
- approved: 'working',
35
39
  issued: 'completed',
36
40
  completed: 'completed',
37
- denied: 'rejected',
38
- expired: 'failed',
39
- revoked: 'failed',
41
+ closed: 'rejected',
40
42
  failed: 'failed',
41
43
  };
42
44
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"exchange-state.js","sourceRoot":"","sources":["../src/exchange-state.ts"],"names":[],"mappings":"AAAA,2GAA2G;AAC3G,2GAA2G;AAC3G,4GAA4G;AAC5G,4GAA4G;AAC5G,gHAAgH;AAChH,EAAE;AACF,2GAA2G;AAC3G,4GAA4G;AAE5G,OAAO,EAAE,iBAAiB,EAAkB,MAAM,gCAAgC,CAAC;AAInF,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B,iGAAiG;AACjG,MAAM,CAAC,MAAM,WAAW,GAAyB;IAC/C,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,eAAe;CAChG,CAAC;AASX,MAAM,CAAC,MAAM,WAAW,GAAyB;IAC/C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ;CAClH,CAAC;AAEX;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAiC;IAC9D,KAAK,EAAE,WAAW;IAClB,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;IAClB,YAAY,EAAE,gBAAgB;IAC9B,QAAQ,EAAE,SAAS;IACnB,MAAM,EAAE,WAAW;IACnB,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,QAAQ;IACjB,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAyB,CAAC,eAAe,EAAE,UAAU,CAAU,CAAC;AAE/F,kHAAkH;AAClH,MAAM,UAAU,mBAAmB,CAAC,SAAgC;IAClE,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,WAAW,CAAC;IAChD,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAe,EAAE,SAAgC;IACpF,IAAI,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,KAAK,SAAS,CAAC;IACtE,OAAO,mBAAmB,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;AACjD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAA2C,EAC3C,EAAyC;IAEzC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACzD,OAAO,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"exchange-state.js","sourceRoot":"","sources":["../src/exchange-state.ts"],"names":[],"mappings":"AAAA,2GAA2G;AAC3G,2GAA2G;AAC3G,4GAA4G;AAC5G,4GAA4G;AAC5G,gHAAgH;AAChH,EAAE;AACF,2GAA2G;AAC3G,4GAA4G;AAE5G,OAAO,EAAE,iBAAiB,EAAkB,MAAM,gCAAgC,CAAC;AAInF,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B,iGAAiG;AACjG,MAAM,CAAC,MAAM,WAAW,GAAyB;IAC/C,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,eAAe;CAChG,CAAC;AAyBX,MAAM,CAAC,MAAM,WAAW,GAAyB;IAC/C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ;CAChF,CAAC;AAEX;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAiC;IAC9D,KAAK,EAAE,WAAW;IAClB,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;IAClB,YAAY,EAAE,gBAAgB;IAC9B,MAAM,EAAE,WAAW;IACnB,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAyB,CAAC,eAAe,EAAE,UAAU,CAAU,CAAC;AAE/F,kHAAkH;AAClH,MAAM,UAAU,mBAAmB,CAAC,SAAgC;IAClE,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,WAAW,CAAC;IAChD,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAe,EAAE,SAAgC;IACpF,IAAI,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,KAAK,SAAS,CAAC;IACtE,OAAO,mBAAmB,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;AACjD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAA2C,EAC3C,EAAyC;IAEzC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACzD,OAAO,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC"}
@@ -1,8 +1,8 @@
1
- import { type ContextRefV1, type ConversationDescriptorV1, type InboxProjector, type MessageEnvelopeV1, type MessageEventV1 } from './messaging/index.js';
1
+ import { type ContextRefV1, type ConversationDescriptorV1, type InboxProjector, type AnyMessageEnvelope, type MessageEventV1 } from './messaging/index.js';
2
2
  import { type ActionCardV1, type InteractionCaseV1, type InteractionMandateV1, type InteractionStore, type InteractionTransitionEventV1 } from './interactions/index.js';
3
3
  export interface InboxDataV1 {
4
4
  version: 1;
5
- envelopes: MessageEnvelopeV1[];
5
+ envelopes: AnyMessageEnvelope[];
6
6
  events: MessageEventV1[];
7
7
  /** Cases as they entered (draft) — current state is replayed from caseEvents. */
8
8
  draftCases: InteractionCaseV1[];
@@ -1 +1 @@
1
- {"version":3,"file":"inbox-doc.d.ts","sourceRoot":"","sources":["../src/inbox-doc.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,4BAA4B,EAClC,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,iFAAiF;IACjF,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,UAAU,EAAE,4BAA4B,EAAE,CAAC;IAC3C,iFAAiF;IACjF,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACpC,oFAAoF;IACpF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAChD,2EAA2E;IAC3E,aAAa,CAAC,EAAE,wBAAwB,EAAE,CAAC;CAE5C;AAED,wBAAgB,cAAc,IAAI,WAAW,CAE5C;AAED,yGAAyG;AACzG,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAGvD;AAED,sFAAsF;AACtF,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG;IAAE,SAAS,EAAE,cAAc,CAAC;IAAC,YAAY,EAAE,gBAAgB,CAAA;CAAE,CAYpI;AAED;;wEAEwE;AACxE,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,wBAAwB,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,SAAS,GAAG,OAAO,CAOhH;AAED;kGACkG;AAClG,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,wBAAwB,GAAG,IAAI,CAQ/F"}
1
+ {"version":3,"file":"inbox-doc.d.ts","sourceRoot":"","sources":["../src/inbox-doc.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EAEnB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,4BAA4B,EAClC,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,iFAAiF;IACjF,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,UAAU,EAAE,4BAA4B,EAAE,CAAC;IAC3C,iFAAiF;IACjF,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACpC,oFAAoF;IACpF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAChD,2EAA2E;IAC3E,aAAa,CAAC,EAAE,wBAAwB,EAAE,CAAC;CAE5C;AAED,wBAAgB,cAAc,IAAI,WAAW,CAE5C;AAED,yGAAyG;AACzG,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAGvD;AAED,sFAAsF;AACtF,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG;IAAE,SAAS,EAAE,cAAc,CAAC;IAAC,YAAY,EAAE,gBAAgB,CAAA;CAAE,CAYpI;AAED;;wEAEwE;AACxE,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,wBAAwB,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,SAAS,GAAG,OAAO,CAOhH;AAED;kGACkG;AAClG,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,wBAAwB,GAAG,IAAI,CAQ/F"}
@@ -1 +1 @@
1
- {"version":3,"file":"inbox-doc.js","sourceRoot":"","sources":["../src/inbox-doc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inbox-doc.js","sourceRoot":"","sources":["../src/inbox-doc.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { InboxItemV1, MessageEnvelopeV1 } from './messaging/index.js';
1
+ import type { AnyMessageEnvelope, InboxItemV1 } from './messaging/index.js';
2
2
  import type { ExchangeEventV1 } from './exchange-record.js';
3
3
  /** A `kind:'message'` fabric event — the inbox-relevant slice of the stream. */
4
4
  export type InboxProjectionEvent = Extract<ExchangeEventV1, {
@@ -9,7 +9,7 @@ export type InboxProjectionEvent = Extract<ExchangeEventV1, {
9
9
  * seeds the row from the envelope. Adapts the fabric event to messaging's `MessageEventV1` and delegates to
10
10
  * the absorbed `applyMessageEvent` reducer, so folder/unread semantics stay identical across the absorption.
11
11
  */
12
- export declare function projectInboxItem(prev: InboxItemV1 | undefined, envelope: MessageEnvelopeV1, event: InboxProjectionEvent): InboxItemV1;
12
+ export declare function projectInboxItem(prev: InboxItemV1 | undefined, envelope: AnyMessageEnvelope, event: InboxProjectionEvent): InboxItemV1;
13
13
  export { applyMessageEvent, applyInboxRules, createInMemoryInboxProjector } from './messaging/index.js';
14
14
  export type { InboxItemV1, InboxRuleV1, InboxProjector, CreateInboxProjectorOpts, FolderKind, } from './messaging/index.js';
15
15
  //# sourceMappingURL=inbox-projection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"inbox-projection.d.ts","sourceRoot":"","sources":["../src/inbox-projection.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAkB,MAAM,sBAAsB,CAAC;AAC3F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,gFAAgF;AAChF,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,eAAe,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AAEjF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,QAAQ,EAAE,iBAAiB,EAC3B,KAAK,EAAE,oBAAoB,GAC1B,WAAW,CAUb;AAGD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACxG,YAAY,EACV,WAAW,EACX,WAAW,EACX,cAAc,EACd,wBAAwB,EACxB,UAAU,GACX,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"inbox-projection.d.ts","sourceRoot":"","sources":["../src/inbox-projection.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAkB,MAAM,sBAAsB,CAAC;AAC5F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,gFAAgF;AAChF,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,eAAe,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AAEjF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,QAAQ,EAAE,kBAAkB,EAC5B,KAAK,EAAE,oBAAoB,GAC1B,WAAW,CAUb;AAGD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACxG,YAAY,EACV,WAAW,EACX,WAAW,EACX,cAAc,EACd,wBAAwB,EACxB,UAAU,GACX,MAAM,sBAAsB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"inbox-projection.js","sourceRoot":"","sources":["../src/inbox-projection.ts"],"names":[],"mappings":"AAAA,2GAA2G;AAC3G,uGAAuG;AACvG,8GAA8G;AAC9G,4GAA4G;AAC5G,0GAA0G;AAC1G,EAAE;AACF,4GAA4G;AAC5G,yEAAyE;AAEzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAOzD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAA6B,EAC7B,QAA2B,EAC3B,KAA2B;IAE3B,MAAM,YAAY,GAAmB;QACnC,OAAO,EAAE,qBAAqB;QAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,WAAW,EAAE,KAAK,CAAC,WAAW;KAC/B,CAAC;IACF,OAAO,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;AACzD,CAAC;AAED,qGAAqG;AACrG,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"inbox-projection.js","sourceRoot":"","sources":["../src/inbox-projection.ts"],"names":[],"mappings":"AAAA,2GAA2G;AAC3G,uGAAuG;AACvG,8GAA8G;AAC9G,4GAA4G;AAC5G,0GAA0G;AAC1G,EAAE;AACF,4GAA4G;AAC5G,yEAAyE;AAEzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAOzD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAA6B,EAC7B,QAA4B,EAC5B,KAA2B;IAE3B,MAAM,YAAY,GAAmB;QACnC,OAAO,EAAE,qBAAqB;QAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,WAAW,EAAE,KAAK,CAAC,WAAW;KAC/B,CAAC;IACF,OAAO,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;AACzD,CAAC;AAED,qGAAqG;AACrG,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,13 +1,31 @@
1
1
  export { canTaskTransition, canExchangeTransition, expectedExecForCase, isExecCaseConsistent, EXEC_CASE_COUPLING, TRANSPORT_SET_EXEC, EXEC_STATES, CASE_STATES, } from './exchange-state.js';
2
2
  export type { ExecState, CaseState } from './exchange-state.js';
3
+ export { isEnvelopeV2 } from './messaging/types.js';
4
+ export type { AnyMessageEnvelope, MessageEnvelopeV1, MessageEnvelopeV2 } from './messaging/types.js';
3
5
  export { hashExchangeEnvelope, hashIntentEnvelope, actorOf } from './exchange-record.js';
4
6
  export type { ExchangeId, ExchangeEnvelopeV1, IntentEnvelopeV1, ExchangeRecordV1, ExchangeEventV1, ArtifactRef, } from './exchange-record.js';
5
- export { performativeForKind } from './communicative-act.js';
7
+ export { performativeForKind, performativeOf, isOriginalMessage } from './communicative-act.js';
6
8
  export type { Performative, CommunicativeActV1, SemanticContentRef, EvidenceRef, } from './communicative-act.js';
7
- export { applyCaseTransition, isTerminalCaseState, TERMINAL_CASE_STATES, } from './case-machine.js';
8
- export type { FabricCaseV1, CaseFsmFields, CaseTransition, CaseTransitionEventV1, CaseResult, CaseRejection, } from './case-machine.js';
9
+ export { applyCaseTransition, isTerminalCaseState, TERMINAL_CASE_STATES, requiresGrantedDecision, TRANSITIONS_REQUIRING_GRANTED_DECISION, } from './case-machine.js';
10
+ export type { FabricCaseV1, CaseFsmFields, CaseTransition, CaseTransitionEventV1, CaseResult, CaseRejection, CaseTransitionContext, } from './case-machine.js';
11
+ export { caseTransitionEmissions, applyCaseEmissions, seedDecision, seedCommitment, decisionIdForCase, commitmentIdForCase, EMITTING_CASE_TRANSITIONS, } from './case-emissions.js';
12
+ export type { CaseEmissionsV1, CaseEmissionApplyResult, EmissionOutcome, DecisionSeedV1, CommitmentSeedV1, } from './case-emissions.js';
9
13
  export { applyExchangeEvent, caseViewFromRecord } from './exchange-reducer.js';
10
14
  export type { ExchangeApplyResult } from './exchange-reducer.js';
15
+ export { EXCHANGE_REDUCER_VERSION, eventSetDigest, replayExchange } from './exchange-reducer.js';
16
+ export type { MaterializationProvenanceV1, ExchangeReplayResult } from './exchange-reducer.js';
17
+ export { PROTOCOL, looksCanonical, bindProtocol, bindingKey, buildBindingIndex, resolveInteractionByBinding, topicInteractionId, channelIdFromTopicInteraction, } from './protocol-binding.js';
18
+ export type { ProtocolBindingV1, BindingRejection, BindingIndex, BindingResolution } from './protocol-binding.js';
19
+ export { PROFILE_FOR_MESSAGE_KIND, MACHINE_FOR_CASE_STATE, machinesSpannedByCaseState } from './enum-retirement.js';
20
+ export type { OwningMachine } from './enum-retirement.js';
21
+ export { checkExchangeAgainstProfile, profileFor, PROFILE_LIBRARY, DIRECT_PROFILE, NEGOTIATION_PROFILE, CONSULTATION_PROFILE, ENGAGEMENT_PROFILE, TOPIC_PROFILE, ENGAGEMENT_RESPONSE_KIND_AXES, } from './interaction-profile.js';
22
+ export type { InteractionProfileV1, ProfileViolation, ExchangeUnderProfile, } from './interaction-profile.js';
23
+ export { applyInboxTransition, applyInteractionTransition, applyDecisionTransition, applyCommitmentTransition, mayDischargeOnExecution, TERMINAL_INTERACTION_STATES, TERMINAL_DECISION_STATES, TERMINAL_COMMITMENT_STATES, } from './interaction-machines.js';
24
+ export type { MachineRejection, MachineResult, InboxState, InboxTransition, InboxEntryV1, InteractionState, InteractionTransition, InteractionLifecycleV1, DecisionState, DecisionTransition, DecisionRecordV1, CommitmentState, CommitmentTransition, CommitmentRecordV1, } from './interaction-machines.js';
25
+ export { isProfileVersion, isFloatingVersion, checkReproducible, assertReproducible, hashContextSnapshot, buildContextSnapshot, verifyContextSnapshot, participantsAt, detectProfileDowngrades, } from './interaction-record.js';
26
+ export type { InteractionId, InteractionRecordV1, ProfileVersion, ParticipationV1, ContextDigest, ContextReferenceV1, ContextSnapshotV1, ContextReproducibilityFailure, ProfileDowngrade, } from './interaction-record.js';
27
+ export { conversationInteractionId, conversationIdFromInteraction, participationModeOfConversation, profileVersionOfConversation, participationsOfConversation, conversationPins, interactionViewOfConversation, participationModeOfChannel, interactionViewOfChannel, } from './messaging/conversation-interaction.js';
28
+ export type { ConversationExchangePins, ConversationInteractionView } from './messaging/conversation-interaction.js';
11
29
  export { projectInboxItem, applyMessageEvent, applyInboxRules, createInMemoryInboxProjector, } from './inbox-projection.js';
12
30
  export type { InboxProjectionEvent, InboxItemV1, InboxRuleV1, InboxProjector, CreateInboxProjectorOpts, FolderKind, } from './inbox-projection.js';
13
31
  export { buildGatewaySurfaceCommitment, hashGatewaySurfaceCommitment, verifyGatewaySurfaceCommitment, } from './gateway-surface.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhE,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACzF,YAAY,EACV,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,GACZ,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,YAAY,EACZ,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,UAAU,EACV,aAAa,GACd,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAGjE,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,4BAA4B,GAC7B,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,oBAAoB,EACpB,WAAW,EACX,WAAW,EACX,cAAc,EACd,wBAAwB,EACxB,UAAU,GACX,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,8BAA8B,GAC/B,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAGvE,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAIpF,OAAO,EACL,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,WAAW,GACjB,MAAM,gBAAgB,CAAC;AAIxB,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -7,14 +7,44 @@
7
7
  // Wave 1 (this slice): the two-level exec/case state machine spine. Envelope + inbox reducers + case
8
8
  // payloads are absorbed from messaging/interactions in the subsequent Wave-1 steps.
9
9
  export { canTaskTransition, canExchangeTransition, expectedExecForCase, isExecCaseConsistent, EXEC_CASE_COUPLING, TRANSPORT_SET_EXEC, EXEC_STATES, CASE_STATES, } from './exchange-state.js';
10
+ // spec 340 — the ap.message.v2 wire version and its dual-read seam. V1 is untouched and still
11
+ // verifies; V2 drops `kind` and carries `performative` natively. Readers take `AnyMessageEnvelope`.
12
+ export { isEnvelopeV2 } from './messaging/types.js';
10
13
  // The canonical exchange object (spec 316 §b) — absorbs the messaging envelope + composes the two-level FSM.
11
14
  export { hashExchangeEnvelope, hashIntentEnvelope, actorOf } from './exchange-record.js';
12
15
  // Fabric semantic acts (spec 324 §9) — the speech-act layer over the transport envelope. Never authority.
13
- export { performativeForKind } from './communicative-act.js';
16
+ export { performativeForKind, performativeOf, isOriginalMessage } from './communicative-act.js';
14
17
  // The absorbed case (business-substate) machine — interactions FSM re-anchored on the 11-state CaseState.
15
- export { applyCaseTransition, isTerminalCaseState, TERMINAL_CASE_STATES, } from './case-machine.js';
18
+ export { applyCaseTransition, isTerminalCaseState, TERMINAL_CASE_STATES, requiresGrantedDecision, TRANSITIONS_REQUIRING_GRANTED_DECISION, } from './case-machine.js';
19
+ // spec 340 W10 — what a case transition emits into the decision and commitment machines. The
20
+ // prerequisite §R.3 names for shrinking `CaseState` to execution: those states must land in their own
21
+ // machines before the enum can lose them.
22
+ export { caseTransitionEmissions, applyCaseEmissions, seedDecision, seedCommitment, decisionIdForCase, commitmentIdForCase, EMITTING_CASE_TRANSITIONS, } from './case-emissions.js';
16
23
  // The unified exchange-event reducer (spec 316 §b/§2) — one append-only stream, one reducer over the record.
17
24
  export { applyExchangeEvent, caseViewFromRecord } from './exchange-reducer.js';
25
+ // Materialization provenance (spec 340 INV-340-8) — rebuilt state travels WITH which events and which
26
+ // rules produced it, so a dropped event and a never-received one stop looking identical.
27
+ export { EXCHANGE_REDUCER_VERSION, eventSetDigest, replayExchange } from './exchange-reducer.js';
28
+ // Protocol bindings (spec 340 §11 / W5) — foreign keys into other protocols' namespaces, NEVER our
29
+ // canonical ids. Resolution returns a typed ambiguity rather than a first match: cross-wiring two
30
+ // interactions merges two participant sets, two commitment ledgers and two audit trails.
31
+ export { PROTOCOL, looksCanonical, bindProtocol, bindingKey, buildBindingIndex, resolveInteractionByBinding, topicInteractionId, channelIdFromTopicInteraction, } from './protocol-binding.js';
32
+ // TRANSITIONAL (spec 340 W5) — the MessageKind/CaseState retirement path. This module exists to be
33
+ // deleted; both enums are still live, and the total compiler-checked mapping is what makes the later
34
+ // removal mechanical instead of a judgement call per call site.
35
+ export { PROFILE_FOR_MESSAGE_KIND, MACHINE_FOR_CASE_STATE, machinesSpannedByCaseState } from './enum-retirement.js';
36
+ // The profile mechanism (spec 340 W4) — what replaces the frozen MessageKind/CaseState enums. A new
37
+ // interaction type is DATA, not a schema change. A profile permits nothing.
38
+ export { checkExchangeAgainstProfile, profileFor, PROFILE_LIBRARY, DIRECT_PROFILE, NEGOTIATION_PROFILE, CONSULTATION_PROFILE, ENGAGEMENT_PROFILE, TOPIC_PROFILE, ENGAGEMENT_RESPONSE_KIND_AXES, } from './interaction-profile.js';
39
+ // The four state machines spec 340 §5 named and the fabric did not have (W3). Six, never collapsed:
40
+ // delivery · inbox · interaction · decision · commitment · execution. None of them is authority.
41
+ export { applyInboxTransition, applyInteractionTransition, applyDecisionTransition, applyCommitmentTransition, mayDischargeOnExecution, TERMINAL_INTERACTION_STATES, TERMINAL_DECISION_STATES, TERMINAL_COMMITMENT_STATES, } from './interaction-machines.js';
42
+ // The durable governed situation (spec 340 W2; ADR-0058). The aggregate an Exchange occurs IN — an
43
+ // Exchange without one is a message, which is a legitimate state and why the pins are optional.
44
+ export { isProfileVersion, isFloatingVersion, checkReproducible, assertReproducible, hashContextSnapshot, buildContextSnapshot, verifyContextSnapshot, participantsAt, detectProfileDowngrades, } from './interaction-record.js';
45
+ // The vault-backed conversation as an Interaction (spec 340 W12) — the projection `demo-a2a`'s live
46
+ // board path uses. W11 wired the DO-SQL channel store, which no app runs; this reaches the one that does.
47
+ export { conversationInteractionId, conversationIdFromInteraction, participationModeOfConversation, profileVersionOfConversation, participationsOfConversation, conversationPins, interactionViewOfConversation, participationModeOfChannel, interactionViewOfChannel, } from './messaging/conversation-interaction.js';
18
48
  // Inbox projection (spec 316 §b) — the vault-resident inbox row projected from the message-event slice.
19
49
  export { projectInboxItem, applyMessageEvent, applyInboxRules, createInMemoryInboxProjector, } from './inbox-projection.js';
20
50
  // Gateway surface commitment (spec 316 §4.1 / W4 — decentralized discovery; the atl:gatewayRoot preimage).
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,EAAE;AACF,sGAAsG;AACtG,oGAAoG;AACpG,8EAA8E;AAC9E,EAAE;AACF,qGAAqG;AACrG,oFAAoF;AAEpF,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAG7B,6GAA6G;AAC7G,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAUzF,0GAA0G;AAC1G,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAQ7D,0GAA0G;AAC1G,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAU3B,6GAA6G;AAC7G,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG/E,wGAAwG;AACxG,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,4BAA4B,GAC7B,MAAM,uBAAuB,CAAC;AAU/B,2GAA2G;AAC3G,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,8BAA8B,GAC/B,MAAM,sBAAsB,CAAC;AAG9B,sFAAsF;AACtF,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,wBAAwB,CAAC;AAGhC,mGAAmG;AACnG,yFAAyF;AACzF,OAAO,EACL,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,GAEnB,MAAM,gBAAgB,CAAC;AAExB,iGAAiG;AACjG,uFAAuF;AACvF,OAAO,EAAE,cAAc,EAAE,eAAe,EAA2B,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}