@agenticprimitives/fabric 0.0.0-alpha.3 → 0.0.0-alpha.5

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 (78) hide show
  1. package/CLAUDE.md +12 -2
  2. package/dist/cloudflare/index.d.ts +1 -0
  3. package/dist/cloudflare/index.d.ts.map +1 -1
  4. package/dist/cloudflare/index.js +4 -0
  5. package/dist/cloudflare/index.js.map +1 -1
  6. package/dist/cloudflare/interaction-store.d.ts +55 -0
  7. package/dist/cloudflare/interaction-store.d.ts.map +1 -0
  8. package/dist/cloudflare/interaction-store.js +230 -0
  9. package/dist/cloudflare/interaction-store.js.map +1 -0
  10. package/dist/cloudflare/principal-gateway-do.d.ts +118 -2
  11. package/dist/cloudflare/principal-gateway-do.d.ts.map +1 -1
  12. package/dist/cloudflare/principal-gateway-do.js +182 -7
  13. package/dist/cloudflare/principal-gateway-do.js.map +1 -1
  14. package/dist/communicative-act.d.ts +24 -1
  15. package/dist/communicative-act.d.ts.map +1 -1
  16. package/dist/communicative-act.js +28 -0
  17. package/dist/communicative-act.js.map +1 -1
  18. package/dist/delivery-envelope.d.ts.map +1 -1
  19. package/dist/delivery-envelope.js +0 -1
  20. package/dist/delivery-envelope.js.map +1 -1
  21. package/dist/enum-retirement.d.ts +34 -0
  22. package/dist/enum-retirement.d.ts.map +1 -0
  23. package/dist/enum-retirement.js +87 -0
  24. package/dist/enum-retirement.js.map +1 -0
  25. package/dist/exchange-record.d.ts +19 -3
  26. package/dist/exchange-record.d.ts.map +1 -1
  27. package/dist/exchange-record.js.map +1 -1
  28. package/dist/exchange-reducer.d.ts +33 -0
  29. package/dist/exchange-reducer.d.ts.map +1 -1
  30. package/dist/exchange-reducer.js +48 -0
  31. package/dist/exchange-reducer.js.map +1 -1
  32. package/dist/index.d.ts +14 -0
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +23 -0
  35. package/dist/index.js.map +1 -1
  36. package/dist/interaction-machines.d.ts +136 -0
  37. package/dist/interaction-machines.d.ts.map +1 -0
  38. package/dist/interaction-machines.js +174 -0
  39. package/dist/interaction-machines.js.map +1 -0
  40. package/dist/interaction-profile.d.ts +126 -0
  41. package/dist/interaction-profile.d.ts.map +1 -0
  42. package/dist/interaction-profile.js +192 -0
  43. package/dist/interaction-profile.js.map +1 -0
  44. package/dist/interaction-record.d.ts +168 -0
  45. package/dist/interaction-record.d.ts.map +1 -0
  46. package/dist/interaction-record.js +108 -0
  47. package/dist/interaction-record.js.map +1 -0
  48. package/dist/messaging/conversation-interaction.d.ts +66 -0
  49. package/dist/messaging/conversation-interaction.d.ts.map +1 -0
  50. package/dist/messaging/conversation-interaction.js +139 -0
  51. package/dist/messaging/conversation-interaction.js.map +1 -0
  52. package/dist/messaging/inbox-assistant.d.ts +6 -3
  53. package/dist/messaging/inbox-assistant.d.ts.map +1 -1
  54. package/dist/messaging/inbox-assistant.js +23 -2
  55. package/dist/messaging/inbox-assistant.js.map +1 -1
  56. package/dist/messaging/index.d.ts +4 -1
  57. package/dist/messaging/index.d.ts.map +1 -1
  58. package/dist/messaging/index.js +4 -0
  59. package/dist/messaging/index.js.map +1 -1
  60. package/dist/messaging/rules.d.ts +9 -2
  61. package/dist/messaging/rules.d.ts.map +1 -1
  62. package/dist/messaging/rules.js +8 -1
  63. package/dist/messaging/rules.js.map +1 -1
  64. package/dist/messaging/store.d.ts.map +1 -1
  65. package/dist/messaging/store.js +5 -3
  66. package/dist/messaging/store.js.map +1 -1
  67. package/dist/messaging/types.d.ts +30 -0
  68. package/dist/messaging/types.d.ts.map +1 -1
  69. package/dist/messaging/types.js +3 -0
  70. package/dist/messaging/types.js.map +1 -1
  71. package/dist/protocol-binding.d.ts +71 -0
  72. package/dist/protocol-binding.d.ts.map +1 -0
  73. package/dist/protocol-binding.js +0 -0
  74. package/dist/protocol-binding.js.map +1 -0
  75. package/dist/record-catalog.d.ts.map +1 -1
  76. package/dist/record-catalog.js +7 -0
  77. package/dist/record-catalog.js.map +1 -1
  78. package/package.json +8 -8
@@ -0,0 +1,66 @@
1
+ import type { CanonicalAgentId } from '@agenticprimitives/types';
2
+ import type { ConversationDescriptorV1, ConversationId } from './types.js';
3
+ import type { InteractionId, ProfileVersion, ParticipationV1 } from '../interaction-record.js';
4
+ import type { InteractionState } from '../interaction-machines.js';
5
+ import { type ChannelV1 } from './board.js';
6
+ /** Derived from the conversation id, so the two can never disagree and no field needs adding. */
7
+ export declare function conversationInteractionId(conversationId: ConversationId | string): InteractionId;
8
+ /** The inverse, or `null` for an id that is not a conversation interaction. Null rather than a guess —
9
+ * the same rule that keeps derived-participation resolution fail-closed. */
10
+ export declare function conversationIdFromInteraction(interactionId: string): string | null;
11
+ /**
12
+ * `participantPolicy` IS `participationMode`, and noticing that is what made this a projection.
13
+ *
14
+ * `open-to-context` means "anyone in the anchored org" — membership owned elsewhere, resolved at read
15
+ * time, never copied per conversation. That is precisely `derived`. `fixed` and `owner-managed` both
16
+ * mean the participant list on the record is the membership: `asserted`.
17
+ */
18
+ export declare function participationModeOfConversation(descriptor: Pick<ConversationDescriptorV1, 'participantPolicy'>): 'asserted' | 'derived';
19
+ /**
20
+ * Which profile governs this conversation.
21
+ *
22
+ * `forum`/`discussion` are boards — `topic`. Everything else is conversation — `direct`. Neither can
23
+ * create an obligation, which is true of both today and stated rather than left to inference. A
24
+ * conversation that needs to negotiate is promoted to its own Interaction under the negotiation
25
+ * profile (ADR-0058 §14), not granted extra acts here.
26
+ */
27
+ export declare function profileVersionOfConversation(descriptor: Pick<ConversationDescriptorV1, 'profile'>): ProfileVersion;
28
+ /**
29
+ * Lifecycle state.
30
+ *
31
+ * `archived` is deliberately NOT read as an ending. Spec 340 §P settled that shelving is a display
32
+ * concern that already lives in `InboxState`; an archived conversation has still either concluded or
33
+ * not, and conflating them would mean unarchiving a board silently reopened a concluded situation.
34
+ * The descriptor carries no concluded flag today, so every live conversation is `active` — stated here
35
+ * rather than invented, because inferring a conclusion from `archived` would be exactly the wrong fix.
36
+ */
37
+ export declare function lifecycleStateOfConversation(_descriptor: Pick<ConversationDescriptorV1, 'archived'>): InteractionState;
38
+ /** Participations, for an `asserted` conversation. Empty for a `derived` one — the whole point. */
39
+ export declare function participationsOfConversation(descriptor: Pick<ConversationDescriptorV1, 'participantPolicy' | 'participants' | 'createdAt'>): readonly ParticipationV1[];
40
+ /** What an Exchange in this conversation pins — `interactionId` + `profileVersion` in one call, so a
41
+ * caller cannot set one and forget the other. */
42
+ export interface ConversationExchangePins {
43
+ interactionId: InteractionId;
44
+ profileVersion: ProfileVersion;
45
+ }
46
+ export declare function conversationPins(descriptor: Pick<ConversationDescriptorV1, 'id' | 'profile'>): ConversationExchangePins;
47
+ /** The full interaction view of a conversation — the projection, assembled. */
48
+ export interface ConversationInteractionView {
49
+ interactionId: InteractionId;
50
+ profileVersion: ProfileVersion;
51
+ principal: CanonicalAgentId;
52
+ lifecycleState: InteractionState;
53
+ participationMode: 'asserted' | 'derived';
54
+ participations: readonly ParticipationV1[];
55
+ }
56
+ export declare function interactionViewOfConversation(descriptor: ConversationDescriptorV1): ConversationInteractionView;
57
+ /** Participation mode of a board channel — `open` topics derive membership, `restricted` assert it. */
58
+ export declare function participationModeOfChannel(channel: Pick<ChannelV1, 'participationPolicy' | 'visibility'>): 'asserted' | 'derived';
59
+ /**
60
+ * The interaction view of a live board channel — the one `demo-a2a` actually serves.
61
+ *
62
+ * Zero storage change: every field is read from what the board already persists. A topic in the vault
63
+ * IS an Interaction; this is how to read it as one.
64
+ */
65
+ export declare function interactionViewOfChannel(channel: ChannelV1): ConversationInteractionView;
66
+ //# sourceMappingURL=conversation-interaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation-interaction.d.ts","sourceRoot":"","sources":["../../src/messaging/conversation-interaction.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC/F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EAA8B,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAIxE,iGAAiG;AACjG,wBAAgB,yBAAyB,CAAC,cAAc,EAAE,cAAc,GAAG,MAAM,GAAG,aAAa,CAEhG;AAED;6EAC6E;AAC7E,wBAAgB,6BAA6B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAElF;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,IAAI,CAAC,wBAAwB,EAAE,mBAAmB,CAAC,GAC9D,UAAU,GAAG,SAAS,CAExB;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,IAAI,CAAC,wBAAwB,EAAE,SAAS,CAAC,GACpD,cAAc,CAIhB;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,IAAI,CAAC,wBAAwB,EAAE,UAAU,CAAC,GACtD,gBAAgB,CAElB;AAED,mGAAmG;AACnG,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,IAAI,CAAC,wBAAwB,EAAE,mBAAmB,GAAG,cAAc,GAAG,WAAW,CAAC,GAC7F,SAAS,eAAe,EAAE,CAU5B;AAED;kDACkD;AAClD,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,IAAI,CAAC,wBAAwB,EAAE,IAAI,GAAG,SAAS,CAAC,GAC3D,wBAAwB,CAK1B;AAED,+EAA+E;AAC/E,MAAM,WAAW,2BAA2B;IAC1C,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,gBAAgB,CAAC;IAC5B,cAAc,EAAE,gBAAgB,CAAC;IACjC,iBAAiB,EAAE,UAAU,GAAG,SAAS,CAAC;IAC1C,cAAc,EAAE,SAAS,eAAe,EAAE,CAAC;CAC5C;AAED,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,wBAAwB,GACnC,2BAA2B,CAU7B;AAcD,uGAAuG;AACvG,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,qBAAqB,GAAG,YAAY,CAAC,GAC7D,UAAU,GAAG,SAAS,CAExB;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,SAAS,GAAG,2BAA2B,CAkBxF"}
@@ -0,0 +1,139 @@
1
+ // The vault-backed conversation, viewed as the Interaction it already is (spec 340 W12).
2
+ //
3
+ // WHY THIS FILE EXISTS, stated plainly because it is a correction. W11 made org topics a real
4
+ // Interaction by wiring `PrincipalGatewayDO.createChannel`/`postToChannel` — the DO-SQL channel store.
5
+ // `demo-a2a`, the only app that actually serves topics, does not use that store. It uses the
6
+ // VAULT-backed board (`createBoardChannel` / `appendBoardPost` over `ConversationDescriptorV1`). So
7
+ // W11 landed in a code path no demo runs, which is the same dormancy the whole exercise was meant to
8
+ // end — this time with the added problem that a third model of "a governed conversation" now existed.
9
+ //
10
+ // THE FIX IS A PROJECTION, NOT A MIGRATION. `ConversationDescriptorV1` already carries every field the
11
+ // Interaction needs, under different names:
12
+ //
13
+ // descriptor.id → the interaction identity (derived, see below)
14
+ // descriptor.owner → the custodian (`principal`)
15
+ // descriptor.participantPolicy → `participationMode`, exactly
16
+ // descriptor.participants → the asserted list, when there is one
17
+ // descriptor.profile → which InteractionProfile applies
18
+ // descriptor.archived → shelving, NOT the lifecycle (spec 340 §P)
19
+ //
20
+ // So nothing is stored twice and nothing migrates. A conversation IS an interaction; this says how to
21
+ // read it as one. Deriving rather than storing is deliberate: a stored copy of a value computable from
22
+ // the record is the drift this ontology work exists to remove, and it would need a migration to add.
23
+ import { TOPIC_PROFILE, DIRECT_PROFILE } from '../interaction-profile.js';
24
+ import { channelParticipationPolicy } from './board.js';
25
+ const CONVERSATION_PREFIX = 'ixn_conv_';
26
+ /** Derived from the conversation id, so the two can never disagree and no field needs adding. */
27
+ export function conversationInteractionId(conversationId) {
28
+ return `${CONVERSATION_PREFIX}${conversationId}`;
29
+ }
30
+ /** The inverse, or `null` for an id that is not a conversation interaction. Null rather than a guess —
31
+ * the same rule that keeps derived-participation resolution fail-closed. */
32
+ export function conversationIdFromInteraction(interactionId) {
33
+ return interactionId.startsWith(CONVERSATION_PREFIX) ? interactionId.slice(CONVERSATION_PREFIX.length) : null;
34
+ }
35
+ /**
36
+ * `participantPolicy` IS `participationMode`, and noticing that is what made this a projection.
37
+ *
38
+ * `open-to-context` means "anyone in the anchored org" — membership owned elsewhere, resolved at read
39
+ * time, never copied per conversation. That is precisely `derived`. `fixed` and `owner-managed` both
40
+ * mean the participant list on the record is the membership: `asserted`.
41
+ */
42
+ export function participationModeOfConversation(descriptor) {
43
+ return descriptor.participantPolicy === 'open-to-context' ? 'derived' : 'asserted';
44
+ }
45
+ /**
46
+ * Which profile governs this conversation.
47
+ *
48
+ * `forum`/`discussion` are boards — `topic`. Everything else is conversation — `direct`. Neither can
49
+ * create an obligation, which is true of both today and stated rather than left to inference. A
50
+ * conversation that needs to negotiate is promoted to its own Interaction under the negotiation
51
+ * profile (ADR-0058 §14), not granted extra acts here.
52
+ */
53
+ export function profileVersionOfConversation(descriptor) {
54
+ return descriptor.profile === 'forum' || descriptor.profile === 'discussion'
55
+ ? TOPIC_PROFILE.profileVersion
56
+ : DIRECT_PROFILE.profileVersion;
57
+ }
58
+ /**
59
+ * Lifecycle state.
60
+ *
61
+ * `archived` is deliberately NOT read as an ending. Spec 340 §P settled that shelving is a display
62
+ * concern that already lives in `InboxState`; an archived conversation has still either concluded or
63
+ * not, and conflating them would mean unarchiving a board silently reopened a concluded situation.
64
+ * The descriptor carries no concluded flag today, so every live conversation is `active` — stated here
65
+ * rather than invented, because inferring a conclusion from `archived` would be exactly the wrong fix.
66
+ */
67
+ export function lifecycleStateOfConversation(_descriptor) {
68
+ return 'active';
69
+ }
70
+ /** Participations, for an `asserted` conversation. Empty for a `derived` one — the whole point. */
71
+ export function participationsOfConversation(descriptor) {
72
+ if (participationModeOfConversation(descriptor) === 'derived')
73
+ return [];
74
+ return descriptor.participants.map((agent) => ({
75
+ agent,
76
+ role: 'participant',
77
+ // The descriptor records no per-participant join time, so the conversation's own is the honest
78
+ // answer: it is when membership was first observable, and claiming a more precise one would be
79
+ // inventing provenance.
80
+ joinedAt: descriptor.createdAt,
81
+ }));
82
+ }
83
+ export function conversationPins(descriptor) {
84
+ return {
85
+ interactionId: conversationInteractionId(descriptor.id),
86
+ profileVersion: profileVersionOfConversation(descriptor),
87
+ };
88
+ }
89
+ export function interactionViewOfConversation(descriptor) {
90
+ return {
91
+ ...conversationPins(descriptor),
92
+ // The descriptor's `owner` is the store that holds this copy, which for an org board is the org —
93
+ // the same custodial rule W3 enforces, arrived at from the other direction.
94
+ principal: descriptor.owner,
95
+ lifecycleState: lifecycleStateOfConversation(descriptor),
96
+ participationMode: participationModeOfConversation(descriptor),
97
+ participations: participationsOfConversation(descriptor),
98
+ };
99
+ }
100
+ // ─── Board channels ──────────────────────────────────────────────────────────
101
+ //
102
+ // A board `ChannelV1` (this subpath) is NOT the DO-SQL `ChannelV1` in `../cloudflare/channel-store.ts`.
103
+ // Same name, two different concepts, two subpaths — noted here rather than renamed, because renaming a
104
+ // live wire type is its own change; see spec 340 §C.
105
+ //
106
+ // The board channel is the better projection source than its descriptor: it carries
107
+ // `participationPolicy` DIRECTLY (`open` = derived from org membership and never stored; `restricted` =
108
+ // `members` is the list), with `channelParticipationPolicy` already resolving the legacy `visibility`
109
+ // spelling. Reading that instead of re-deriving from `participantPolicy` means one answer, from the
110
+ // field that actually decides it.
111
+ /** Participation mode of a board channel — `open` topics derive membership, `restricted` assert it. */
112
+ export function participationModeOfChannel(channel) {
113
+ return channelParticipationPolicy(channel) === 'open' ? 'derived' : 'asserted';
114
+ }
115
+ /**
116
+ * The interaction view of a live board channel — the one `demo-a2a` actually serves.
117
+ *
118
+ * Zero storage change: every field is read from what the board already persists. A topic in the vault
119
+ * IS an Interaction; this is how to read it as one.
120
+ */
121
+ export function interactionViewOfChannel(channel) {
122
+ const mode = participationModeOfChannel(channel);
123
+ return {
124
+ ...conversationPins(channel.descriptor),
125
+ principal: channel.descriptor.owner,
126
+ lifecycleState: lifecycleStateOfConversation(channel.descriptor),
127
+ participationMode: mode,
128
+ // A restricted topic's `members` IS the participant list (legacy field name; these are discussion
129
+ // participants, not the org roster). An open topic stores none, by design.
130
+ participations: mode === 'derived'
131
+ ? []
132
+ : (channel.members ?? []).map((agent) => ({
133
+ agent: agent,
134
+ role: 'participant',
135
+ joinedAt: channel.descriptor.createdAt,
136
+ })),
137
+ };
138
+ }
139
+ //# sourceMappingURL=conversation-interaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation-interaction.js","sourceRoot":"","sources":["../../src/messaging/conversation-interaction.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { CanonicalAgentId } from '@agenticprimitives/types';
2
- import type { ConversationDescriptorV1, MessageEnvelopeV1 } from './types.js';
2
+ import type { ConversationDescriptorV1, MessageEnvelopeV1, MessageEnvelopeV2, AnyMessageEnvelope } from './types.js';
3
3
  /** Owner-controlled auto-reply assistant config for a PERSON's 1:1 inbox (spec 328 §2).
4
4
  * One record in the person's vault; `enabled:false` is the disable tombstone (one record, no
5
5
  * delete ceremony — absent and disabled are the same answer). Display name is captured AT
@@ -27,13 +27,16 @@ export declare const INBOX_ASSISTANT_FRESH_WINDOW_MS: number;
27
27
  * - not addressed `to` the principal → false
28
28
  * - createdAt stale (> fresh window) or before enabledAt → false (backfill floods can't fire)
29
29
  * The seen-ledger dedup and the per-conversation rate bucket are the caller's (DO storage). */
30
- export declare function inboxAssistantTrigger(assistant: PersonAssistantV1 | null | undefined, envelope: Pick<MessageEnvelopeV1, 'kind' | 'from' | 'to' | 'actor' | 'createdAt'>, principalAddr: string, nowMs?: number): boolean;
30
+ export declare function inboxAssistantTrigger(assistant: PersonAssistantV1 | null | undefined, envelope: Pick<AnyMessageEnvelope, 'from' | 'to' | 'actor' | 'createdAt' | 'inReplyTo'> & Partial<Pick<MessageEnvelopeV1, 'kind'>> & Partial<Pick<MessageEnvelopeV2, 'performative'>>, principalAddr: string, nowMs?: number): boolean;
31
31
  /** One fixed-window rate state (DO-storage resident at the execution point). */
32
32
  export interface FixedWindowState {
33
33
  windowStart: number;
34
34
  count: number;
35
35
  }
36
- /** Pure fixed-window rate decision (spec 328 §3; the same 6/10min semantics as spec 327's
36
+ /** Pure fixed-window rate decision — SAME ALGORITHM as `rate-control.fixedWindowAllow`, kept local
37
+ * because `fabric` may not import `rate-control` (not in its allowedImports; adding that edge is an
38
+ * architectural decision, not a cleanup). If you change the boundary condition here, change it
39
+ * there. (spec 328 §3; the same 6/10min semantics as spec 327's
37
40
  * per-topic bucket, extracted so the bound is unit-testable without a DO). The caller persists
38
41
  * `next` whether or not the dispatch is allowed (denied attempts still consume nothing — the
39
42
  * count only advances on allow). */
@@ -1 +1 @@
1
- {"version":3,"file":"inbox-assistant.d.ts","sourceRoot":"","sources":["../../src/messaging/inbox-assistant.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAIjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE9E;;;gGAGgG;AAChG,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,wBAAwB,CAAC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB;0EACsE;IACtE,OAAO,EAAE,KAAK,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,gGAAgG;AAChG,eAAO,MAAM,+BAA+B,QAAc,CAAC;AAE3D;;;;;;;;;;gGAUgG;AAChG,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,EAC/C,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,WAAW,CAAC,EACjF,aAAa,EAAE,MAAM,EACrB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAeT;AAED,gFAAgF;AAChF,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;qCAGqC;AACrC,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,gBAAgB,GAAG,SAAS,EAClC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAO9C;AAED,MAAM,MAAM,oBAAoB,GAC5B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,iBAAiB,CAAC;IAAC,YAAY,EAAE,gBAAgB,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,UAAU,CAAA;CAAE,GAC1H;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjC;;;;yFAIyF;AACzF,wBAAsB,wBAAwB,CAC5C,aAAa,EAAE,wBAAwB,EAAE,GAAG,SAAS,EACrD,IAAI,EAAE;IAAE,SAAS,EAAE,gBAAgB,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5F,OAAO,CAAC,oBAAoB,CAAC,CAuC/B"}
1
+ {"version":3,"file":"inbox-assistant.d.ts","sourceRoot":"","sources":["../../src/messaging/inbox-assistant.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAIjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAIrH;;;gGAGgG;AAChG,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,wBAAwB,CAAC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB;0EACsE;IACtE,OAAO,EAAE,KAAK,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,gGAAgG;AAChG,eAAO,MAAM,+BAA+B,QAAc,CAAC;AAE3D;;;;;;;;;;gGAUgG;AAChG,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,EAC/C,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,WAAW,GAAG,WAAW,CAAC,GACrF,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC,EAC7F,aAAa,EAAE,MAAM,EACrB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CA6BT;AAED,gFAAgF;AAChF,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;qCAMqC;AACrC,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,gBAAgB,GAAG,SAAS,EAClC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAO9C;AAED,MAAM,MAAM,oBAAoB,GAC5B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,iBAAiB,CAAC;IAAC,YAAY,EAAE,gBAAgB,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,UAAU,CAAA;CAAE,GAC1H;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjC;;;;yFAIyF;AACzF,wBAAsB,wBAAwB,CAC5C,aAAa,EAAE,wBAAwB,EAAE,GAAG,SAAS,EACrD,IAAI,EAAE;IAAE,SAAS,EAAE,gBAAgB,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5F,OAAO,CAAC,oBAAoB,CAAC,CAuC/B"}
@@ -1,6 +1,8 @@
1
1
  import { generateMessageId, validateMessageEnvelope } from './envelope.js';
2
2
  import { sha256Hex32 } from './hash.js';
3
3
  import { messageBodyResource } from './vault-store.js';
4
+ import { isOriginalMessage } from '../communicative-act.js';
5
+ import { isEnvelopeV2 } from './types.js';
4
6
  /** Backfill/replay guard: only envelopes created within this window of the scan may trigger. */
5
7
  export const INBOX_ASSISTANT_FRESH_WINDOW_MS = 10 * 60_000;
6
8
  /** Should a just-committed inbound envelope trigger the person's auto-reply assistant
@@ -19,8 +21,24 @@ export function inboxAssistantTrigger(assistant, envelope, principalAddr, nowMs)
19
21
  return false;
20
22
  if (envelope.actor)
21
23
  return false;
22
- if (envelope.kind !== 'plain')
24
+ // ONE RULE PER WIRE VERSION, not a translation (spec 340 W9). V1 keeps `kind === 'plain'` byte for
25
+ // byte: its behaviour must not shift under a version bump it is not part of.
26
+ //
27
+ // V2 cannot express that test. `performativeForKind` is not injective — `plain` and `response` BOTH
28
+ // map to INFORM — so a V2 envelope has no way to say "not a response". Translating the V1 rule as
29
+ // `performative === 'INFORM'` would have widened it, and the assistant would start answering
30
+ // replies, including its own. What `kind: 'response'` actually meant is "this has an antecedent",
31
+ // and `inReplyTo` says that directly. Hence the V2 CONFORMANCE REQUIREMENT: a V2 envelope that
32
+ // responds to another MUST carry `inReplyTo`; it is what makes it a response.
33
+ if (isEnvelopeV2(envelope)) {
34
+ if (envelope.performative !== 'INFORM')
35
+ return false;
36
+ if (!isOriginalMessage(envelope))
37
+ return false;
38
+ }
39
+ else if (envelope.kind !== 'plain') {
23
40
  return false;
41
+ }
24
42
  const me = principalAddr.toLowerCase();
25
43
  const addrOf = (caip) => (caip.match(/0x[0-9a-fA-F]{40}$/)?.[0] ?? '').toLowerCase();
26
44
  if (addrOf(String(envelope.from)) === me)
@@ -38,7 +56,10 @@ export function inboxAssistantTrigger(assistant, envelope, principalAddr, nowMs)
38
56
  return false;
39
57
  return true;
40
58
  }
41
- /** Pure fixed-window rate decision (spec 328 §3; the same 6/10min semantics as spec 327's
59
+ /** Pure fixed-window rate decision — SAME ALGORITHM as `rate-control.fixedWindowAllow`, kept local
60
+ * because `fabric` may not import `rate-control` (not in its allowedImports; adding that edge is an
61
+ * architectural decision, not a cleanup). If you change the boundary condition here, change it
62
+ * there. (spec 328 §3; the same 6/10min semantics as spec 327's
42
63
  * per-topic bucket, extracted so the bound is unit-testable without a DO). The caller persists
43
64
  * `next` whether or not the dispatch is allowed (denied attempts still consume nothing — the
44
65
  * count only advances on allow). */
@@ -1 +1 @@
1
- {"version":3,"file":"inbox-assistant.js","sourceRoot":"","sources":["../../src/messaging/inbox-assistant.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inbox-assistant.js","sourceRoot":"","sources":["../../src/messaging/inbox-assistant.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
1
  export declare const PACKAGE_NAME = "@agenticprimitives/fabric/messaging";
2
2
  export declare const PACKAGE_STATUS: "w5-context";
3
3
  export declare const SPEC_REF = "specs/309-messaging-and-interactions.md";
4
- export { type Hex32, type MessageId, type ConversationId, type ThreadId, type FolderKind, type MessagePriority, type MessageKind, type ContextRefV1, type SignatureProof, type MessageAttachmentRef, type RetentionPolicyRef, type MessageEnvelopeV1, type MessageEventType, type MessageEventV1, type InboxItemV1, type ConversationDescriptorV1, type ConversationProfile, type DiscussionTopicV1, type MessageThreadV1, ENDEAVOR_CONTEXT_KIND, endeavorContextRef, } from './types.js';
4
+ export { isEnvelopeV2 } from './types.js';
5
+ export { conversationInteractionId, conversationIdFromInteraction, participationModeOfConversation, profileVersionOfConversation, lifecycleStateOfConversation, participationsOfConversation, conversationPins, interactionViewOfConversation, participationModeOfChannel, interactionViewOfChannel, } from './conversation-interaction.js';
6
+ export type { ConversationExchangePins, ConversationInteractionView } from './conversation-interaction.js';
7
+ export { type Hex32, type MessageId, type ConversationId, type ThreadId, type FolderKind, type MessagePriority, type MessageKind, type ContextRefV1, type SignatureProof, type MessageAttachmentRef, type RetentionPolicyRef, type MessageEnvelopeV1, type MessageEnvelopeV2, type AnyMessageEnvelope, type MessageEventType, type MessageEventV1, type InboxItemV1, type ConversationDescriptorV1, type ConversationProfile, type DiscussionTopicV1, type MessageThreadV1, ENDEAVOR_CONTEXT_KIND, endeavorContextRef, } from './types.js';
5
8
  export { canonicalizeMessage, sha256Hex32, hashMessageEnvelope, verifyBodyHash, } from './hash.js';
6
9
  export { generateMessageId, generateConversationId, generateThreadId, type EnvelopeValidationError, validateMessageEnvelope, MAX_CONTEXT_REFS, } from './envelope.js';
7
10
  export { type ConversationValidationError, validateConversationDescriptor, type ConversationSummaryV1, summarizeConversations, } from './conversation.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/messaging/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/messaging/index.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,10 @@
12
12
  export const PACKAGE_NAME = '@agenticprimitives/fabric/messaging';
13
13
  export const PACKAGE_STATUS = 'w5-context';
14
14
  export const SPEC_REF = 'specs/309-messaging-and-interactions.md';
15
+ export { isEnvelopeV2 } from './types.js';
16
+ // The vault-backed conversation, read as the Interaction it already is (spec 340 W12). A PROJECTION —
17
+ // nothing is stored twice and nothing migrates.
18
+ export { conversationInteractionId, conversationIdFromInteraction, participationModeOfConversation, profileVersionOfConversation, lifecycleStateOfConversation, participationsOfConversation, conversationPins, interactionViewOfConversation, participationModeOfChannel, interactionViewOfChannel, } from './conversation-interaction.js';
15
19
  export { ENDEAVOR_CONTEXT_KIND, endeavorContextRef, } from './types.js';
16
20
  export { canonicalizeMessage, sha256Hex32, hashMessageEnvelope, verifyBodyHash, } from './hash.js';
17
21
  export { generateMessageId, generateConversationId, generateThreadId, validateMessageEnvelope, MAX_CONTEXT_REFS, } from './envelope.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/messaging/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,8EAA8E;AAC9E,iFAAiF;AACjF,iFAAiF;AACjF,2CAA2C;AAC3C,EAAE;AACF,8EAA8E;AAC9E,+EAA+E;AAC/E,wEAAwE;AACxE,0EAA0E;AAC1E,8CAA8C;AAE9C,MAAM,CAAC,MAAM,YAAY,GAAG,qCAAqC,CAAC;AAClE,MAAM,CAAC,MAAM,cAAc,GAAG,YAAqB,CAAC;AACpD,MAAM,CAAC,MAAM,QAAQ,GAAG,yCAAyC,CAAC;AAElE,OAAO,EAoBL,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,mBAAmB,EACnB,cAAc,GACf,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAEhB,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAEL,8BAA8B,EAE9B,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,iBAAiB,EAEjB,0BAA0B,GAC3B,MAAM,YAAY,CAAC;AAEpB,OAAO,EAML,oBAAoB,EACpB,iBAAiB,EAEjB,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAEL,gBAAgB,EAOhB,4BAA4B,GAC7B,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEvE,OAAO,EACL,wBAAwB,EACxB,8BAA8B,EAC9B,mBAAmB,EACnB,iBAAiB,EACjB,yBAAyB,EAGzB,2BAA2B,EAC3B,gBAAgB,EAChB,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAA6B,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAEtF,mGAAmG;AACnG,iCAAiC;AACjC,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,0BAA0B,EAC1B,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,GAMhB,MAAM,YAAY,CAAC;AAEpB,8FAA8F;AAC9F,8FAA8F;AAC9F,OAAO,EACL,+BAA+B,EAC/B,qBAAqB,EACrB,gBAAgB,EAChB,wBAAwB,GAIzB,MAAM,sBAAsB,CAAC;AAE9B,gGAAgG;AAChG,OAAO,EACL,wBAAwB,EACxB,gBAAgB,GAGjB,MAAM,gBAAgB,CAAC;AAExB,8FAA8F;AAC9F,gGAAgG;AAChG,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,8BAA8B,EAC9B,0BAA0B,EAC1B,qBAAqB,EACrB,iBAAiB,EACjB,wBAAwB,EACxB,gCAAgC,EAChC,qBAAqB,EACrB,4BAA4B,EAC5B,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,0BAA0B,EAU1B,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,yBAAyB,GAE1B,MAAM,cAAc,CAAC;AAEtB,8FAA8F;AAC9F,kGAAkG;AAClG,kFAAkF;AAClF,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,6BAA6B,EAC7B,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,GAWtB,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/messaging/index.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,17 @@
1
1
  import type { CanonicalAgentId } from '@agenticprimitives/types';
2
2
  import type { VaultClassification } from '@agenticprimitives/vault';
3
- import type { ContextRefV1, FolderKind, InboxItemV1, MessageEnvelopeV1, MessageId, MessageKind, MessagePriority } from './types.js';
3
+ import type { ContextRefV1, FolderKind, InboxItemV1, MessageEnvelopeV1, MessageId, MessageKind, MessagePriority, AnyMessageEnvelope } from './types.js';
4
+ import { type Performative } from '../communicative-act.js';
4
5
  /** AND across specified members; any-of within each list. Empty predicate matches all. */
5
6
  export interface InboxRulePredicateV1 {
6
7
  fromAnyOf?: CanonicalAgentId[];
8
+ /** V1 ONLY. A V2 envelope has no `kind`, and this deliberately does NOT derive one from the
9
+ * performative: `performativeForKind` is not injective, so the inverse would be a guess (ADR-0013).
10
+ * A V1 rule therefore stops matching V2 mail — visibly (the message lands in `inbox` instead of the
11
+ * rule's folder), never dangerously. Use `performativeAnyOf` for rules that must span both. */
7
12
  kindAnyOf?: MessageKind[];
13
+ /** Spans both wire versions — V2 states the performative, V1 derives it. */
14
+ performativeAnyOf?: Performative[];
8
15
  /** Case-insensitive substring match, any-of. */
9
16
  subjectContainsAnyOf?: string[];
10
17
  labelAnyOf?: string[];
@@ -67,7 +74,7 @@ export interface NotificationEventV1 {
67
74
  export interface NotificationSink {
68
75
  notify(event: NotificationEventV1): void | Promise<void>;
69
76
  }
70
- export declare function matchesRulePredicate(predicate: InboxRulePredicateV1, envelope: MessageEnvelopeV1, item: InboxItemV1): boolean;
77
+ export declare function matchesRulePredicate(predicate: InboxRulePredicateV1, envelope: AnyMessageEnvelope, item: InboxItemV1): boolean;
71
78
  export interface RuleApplication {
72
79
  item: InboxItemV1;
73
80
  /** Empty when suppressed — a matching suppress-notification wins over notify. */
@@ -1 +1 @@
1
- {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/messaging/rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/messaging/rules.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@
3
3
  // The action union is closed on purpose: a rule can never issue entitlements,
4
4
  // grant delegation, release keys, or change custody — those verbs do not exist
5
5
  // here and must never be added.
6
+ import { isEnvelopeV2 } from './types.js';
7
+ import { performativeOf } from '../communicative-act.js';
6
8
  const PRIORITY_ORDER = ['low', 'normal', 'high', 'urgent'];
7
9
  /** Shared context-match used by rules and `listByContext` — ONE mechanism (ADR-0013). */
8
10
  export function matchesContextRef(refs, query) {
@@ -11,7 +13,12 @@ export function matchesContextRef(refs, query) {
11
13
  export function matchesRulePredicate(predicate, envelope, item) {
12
14
  if (predicate.fromAnyOf && !predicate.fromAnyOf.includes(envelope.from))
13
15
  return false;
14
- if (predicate.kindAnyOf && !predicate.kindAnyOf.includes(envelope.kind))
16
+ if (predicate.kindAnyOf) {
17
+ // No kind on a V2 envelope, and no inferred one either — the rule simply does not match.
18
+ if (isEnvelopeV2(envelope) || !predicate.kindAnyOf.includes(envelope.kind))
19
+ return false;
20
+ }
21
+ if (predicate.performativeAnyOf && !predicate.performativeAnyOf.includes(performativeOf(envelope)))
15
22
  return false;
16
23
  if (predicate.subjectContainsAnyOf) {
17
24
  const subject = (envelope.subject ?? '').toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/messaging/rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/messaging/rules.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/messaging/store.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,SAAS,EACV,MAAM,YAAY,CAAC;AAiBpB;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,QAAQ,EAAE,iBAAiB,EAC3B,KAAK,EAAE,cAAc,GACpB,WAAW,CAqDb;AAED,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,UAAU,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC9C,UAAU,CAAC,EAAE,EAAE,SAAS,GAAG,iBAAiB,GAAG,IAAI,CAAC;IACpD,4EAA4E;IAC5E,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,WAAW,CAAC;IAChD,UAAU,CAAC,EAAE,EAAE,SAAS,GAAG,cAAc,EAAE,CAAC;IAC5C,YAAY,CAAC,EAAE,EAAE,SAAS,GAAG,WAAW,GAAG,IAAI,CAAC;IAChD,SAAS,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,WAAW,EAAE,CAAC;IAC9C,WAAW,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;CAC1C;AAED,wBAAgB,0BAA0B,IAAI,YAAY,CA4CzD"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/messaging/store.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,SAAS,EACV,MAAM,YAAY,CAAC;AAmBpB;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,QAAQ,EAAE,iBAAiB,EAC3B,KAAK,EAAE,cAAc,GACpB,WAAW,CAqDb;AAED,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,UAAU,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC9C,UAAU,CAAC,EAAE,EAAE,SAAS,GAAG,iBAAiB,GAAG,IAAI,CAAC;IACpD,4EAA4E;IAC5E,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,WAAW,CAAC;IAChD,UAAU,CAAC,EAAE,EAAE,SAAS,GAAG,cAAc,EAAE,CAAC;IAC5C,YAAY,CAAC,EAAE,EAAE,SAAS,GAAG,WAAW,GAAG,IAAI,CAAC;IAChD,SAAS,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,WAAW,EAAE,CAAC;IAC9C,WAAW,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;CAC1C;AAED,wBAAgB,0BAA0B,IAAI,YAAY,CA4CzD"}
@@ -4,6 +4,7 @@
4
4
  // The projection is a pure reducer — replaying the same events always yields
5
5
  // the same InboxItemV1. Rules / categories / delta cursors land in W2.
6
6
  import { validateMessageEnvelope } from './envelope.js';
7
+ import { performativeOf } from '../communicative-act.js';
7
8
  import { canonicalizeMessage } from './hash.js';
8
9
  /** Where a message lands when first admitted, by perspective + kind. */
9
10
  function initialFolder(envelope, event) {
@@ -13,8 +14,9 @@ function initialFolder(envelope, event) {
13
14
  case 'sent':
14
15
  return 'sent';
15
16
  default:
16
- // Typed requests queue for review instead of burying in mail (spec 309 §6).
17
- return envelope.kind === 'request' ? 'pending' : 'inbox';
17
+ // Typed requests queue for review instead of burying in mail (spec 309 §6). Reads the
18
+ // performative rather than `kind` so a V2 envelope routes identically (spec 340 W9).
19
+ return performativeOf(envelope) === 'REQUEST' ? 'pending' : 'inbox';
18
20
  }
19
21
  }
20
22
  /**
@@ -57,7 +59,7 @@ export function applyMessageEvent(prev, envelope, event) {
57
59
  next.bodyPreview = undefined;
58
60
  break;
59
61
  case 'restored':
60
- next.folder = envelope.kind === 'request' ? 'pending' : 'inbox';
62
+ next.folder = performativeOf(envelope) === 'REQUEST' ? 'pending' : 'inbox';
61
63
  break;
62
64
  case 'drafted':
63
65
  next.folder = 'drafts';
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/messaging/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/messaging/store.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,41 @@
1
1
  import type { CanonicalAgentId, Hex32, SignatureProof } from '@agenticprimitives/types';
2
2
  import type { VaultRef, VaultClassification } from '@agenticprimitives/vault';
3
+ import type { Performative } from '../communicative-act.js';
3
4
  export type { Hex32, SignatureProof };
4
5
  export type MessageId = `msg_${string}`;
5
6
  export type ConversationId = `conv_${string}`;
6
7
  export type ThreadId = `thr_${string}`;
7
8
  export type FolderKind = 'inbox' | 'sent' | 'drafts' | 'archive' | 'trash' | 'pending' | 'custom';
8
9
  export type MessagePriority = 'low' | 'normal' | 'high' | 'urgent';
10
+ /**
11
+ * `ap.message.v2` — the envelope without `kind` (spec 340 W9).
12
+ *
13
+ * WHY A NEW VERSION RATHER THAN AN EDIT. `kind` is inside the signed hash: `hashMessageEnvelope`
14
+ * excludes only `signature`. Dropping the field in place would change every digest and invalidate
15
+ * every existing signature and delivery receipt. So V1 stays exactly as it is, verifies exactly as it
16
+ * did, and V2 is a second shape that new senders emit. Nothing is re-signed and no history is rewritten.
17
+ *
18
+ * `version` is inside the hashed body, so V1 and V2 of otherwise-identical content already produce
19
+ * different digests — the versions are domain-separated for free, and `envelope-v2.test.ts` asserts it
20
+ * rather than assuming it.
21
+ *
22
+ * WHAT V2 CARRIES INSTEAD. `performative` — what the act DOES — natively, which is what `kind` was
23
+ * standing in for. It does NOT yet carry `actor`/`principal` natively; those stay body-adjacent. That
24
+ * was anticipated in `communicative-act.ts` and is a separate concern from removing a frozen taxonomy,
25
+ * so it is not smuggled into this bump.
26
+ *
27
+ * THE TRANSLATION IS ONE-WAY, and that matters. `performativeForKind` is not injective: `plain` and
28
+ * `response` both map to `INFORM`. So V1 → V2 is total, V2 → V1 is not, and any reader that keyed off
29
+ * `kind` must be rewritten in terms of what it actually meant rather than mapped back. See
30
+ * `isOriginalMessage` for the case where that surfaced a latent bug.
31
+ */
32
+ export interface MessageEnvelopeV2 extends Omit<MessageEnvelopeV1, 'version' | 'kind'> {
33
+ version: 'ap.message.v2';
34
+ performative: Performative;
35
+ }
36
+ /** Either wire version. Readers take this; only the hash and the accessors care which it is. */
37
+ export type AnyMessageEnvelope = MessageEnvelopeV1 | MessageEnvelopeV2;
38
+ export declare function isEnvelopeV2(e: AnyMessageEnvelope): e is MessageEnvelopeV2;
9
39
  export type MessageKind = 'plain' | 'request' | 'response' | 'credential-delivery' | 'receipt' | 'system' | 'tombstone';
10
40
  /**
11
41
  * Typed "about-ness" pointer (spec 312 §4.1): binds a message/conversation to
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/messaging/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/messaging/types.ts"],"names":[],"mappings":"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"}