@agenticprimitives/fabric 0.0.0-alpha.10 → 0.0.0-alpha.12

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 (72) hide show
  1. package/CLAUDE.md +30 -49
  2. package/dist/adoption.d.ts +79 -0
  3. package/dist/adoption.d.ts.map +1 -0
  4. package/dist/adoption.js +95 -0
  5. package/dist/adoption.js.map +1 -0
  6. package/dist/cloudflare/authority-verdict-cache.d.ts +28 -1
  7. package/dist/cloudflare/authority-verdict-cache.d.ts.map +1 -1
  8. package/dist/cloudflare/authority-verdict-cache.js +32 -1
  9. package/dist/cloudflare/authority-verdict-cache.js.map +1 -1
  10. package/dist/cloudflare/index.d.ts +3 -1
  11. package/dist/cloudflare/index.d.ts.map +1 -1
  12. package/dist/cloudflare/index.js +3 -1
  13. package/dist/cloudflare/index.js.map +1 -1
  14. package/dist/cloudflare/principal-gateway-do.d.ts +18 -0
  15. package/dist/cloudflare/principal-gateway-do.d.ts.map +1 -1
  16. package/dist/cloudflare/principal-gateway-do.js +9 -2
  17. package/dist/cloudflare/principal-gateway-do.js.map +1 -1
  18. package/dist/cloudflare/sql-vault.d.ts.map +1 -1
  19. package/dist/cloudflare/sql-vault.js +56 -0
  20. package/dist/cloudflare/sql-vault.js.map +1 -1
  21. package/dist/cloudflare/vault-exchange-store.d.ts +47 -0
  22. package/dist/cloudflare/vault-exchange-store.d.ts.map +1 -0
  23. package/dist/cloudflare/vault-exchange-store.js +118 -0
  24. package/dist/cloudflare/vault-exchange-store.js.map +1 -0
  25. package/dist/cloudflare/vault-interaction-store.d.ts +44 -0
  26. package/dist/cloudflare/vault-interaction-store.d.ts.map +1 -0
  27. package/dist/cloudflare/vault-interaction-store.js +245 -0
  28. package/dist/cloudflare/vault-interaction-store.js.map +1 -0
  29. package/dist/email/index.d.ts +75 -0
  30. package/dist/email/index.d.ts.map +1 -0
  31. package/dist/email/index.js +77 -0
  32. package/dist/email/index.js.map +1 -0
  33. package/dist/index.d.ts +3 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +4 -0
  36. package/dist/index.js.map +1 -1
  37. package/dist/interactions/grant-scopes.d.ts +21 -0
  38. package/dist/interactions/grant-scopes.d.ts.map +1 -0
  39. package/dist/interactions/grant-scopes.js +39 -0
  40. package/dist/interactions/grant-scopes.js.map +1 -0
  41. package/dist/interactions/index.d.ts +1 -0
  42. package/dist/interactions/index.d.ts.map +1 -1
  43. package/dist/interactions/index.js +3 -0
  44. package/dist/interactions/index.js.map +1 -1
  45. package/dist/interactions/open-case.d.ts +60 -0
  46. package/dist/interactions/open-case.d.ts.map +1 -0
  47. package/dist/interactions/open-case.js +83 -0
  48. package/dist/interactions/open-case.js.map +1 -0
  49. package/dist/messaging/consult-routing.d.ts +21 -14
  50. package/dist/messaging/consult-routing.d.ts.map +1 -1
  51. package/dist/messaging/consult-routing.js +34 -25
  52. package/dist/messaging/consult-routing.js.map +1 -1
  53. package/dist/messaging/consult.d.ts +4 -0
  54. package/dist/messaging/consult.d.ts.map +1 -1
  55. package/dist/messaging/consult.js +3 -1
  56. package/dist/messaging/consult.js.map +1 -1
  57. package/dist/messaging/conversation.d.ts +69 -1
  58. package/dist/messaging/conversation.d.ts.map +1 -1
  59. package/dist/messaging/conversation.js +131 -0
  60. package/dist/messaging/conversation.js.map +1 -1
  61. package/dist/messaging/index.d.ts +2 -1
  62. package/dist/messaging/index.d.ts.map +1 -1
  63. package/dist/messaging/index.js +6 -1
  64. package/dist/messaging/index.js.map +1 -1
  65. package/dist/messaging/outbound-message.d.ts +42 -0
  66. package/dist/messaging/outbound-message.d.ts.map +1 -0
  67. package/dist/messaging/outbound-message.js +64 -0
  68. package/dist/messaging/outbound-message.js.map +1 -0
  69. package/dist/record-catalog.d.ts.map +1 -1
  70. package/dist/record-catalog.js +5 -0
  71. package/dist/record-catalog.js.map +1 -1
  72. package/package.json +13 -9
@@ -1,4 +1,4 @@
1
- import type { ConversationDescriptorV1 } from './types.js';
1
+ import type { ConversationDescriptorV1, ConversationId } from './types.js';
2
2
  export type ConversationValidationError = 'bad_version' | 'bad_id' | 'missing_owner' | 'empty_participants' | 'owner_not_participant' | 'bad_participant_policy' | 'bad_created_at' | 'too_many_context_refs' | 'bad_context_ref';
3
3
  /** Structural validation, fail-closed. Empty array iff admissible. */
4
4
  export declare function validateConversationDescriptor(d: ConversationDescriptorV1): ConversationValidationError[];
@@ -32,4 +32,72 @@ export declare function summarizeConversations(items: readonly {
32
32
  label?: string;
33
33
  }[];
34
34
  }[]): ConversationSummaryV1[];
35
+ /** The EVM address inside a CAIP-10 (or bare) agent id, lowercased; '' when there is none. */
36
+ export declare function agentAddressOf(id: string): string;
37
+ /** Prefix that marks an id as a deterministic pairwise DM (`conv_dm_<32 hex>`). */
38
+ export declare const DIRECT_CONVERSATION_PREFIX = "conv_dm_";
39
+ /**
40
+ * The one conversation id for the DM between `a` and `b` — order-independent, address-keyed, so the
41
+ * same pair always names the same thread from either side. Self-DM (a === b) is a valid pair.
42
+ */
43
+ export declare function directConversationId(a: string, b: string): Promise<ConversationId>;
44
+ export declare const isDirectConversationId: (id: string) => boolean;
45
+ /** The bucket key for a counterparty set: sorted lowercase addresses joined by `+`. */
46
+ export declare function directMessageKey(counterparties: readonly string[]): string;
47
+ export interface DirectMessageSummaryV1 {
48
+ /** `directMessageKey` of the counterparties — stable across conversation ids. */
49
+ key: string;
50
+ /** The OTHER parties' addresses (lowercase). One entry for a DM; several for a small group. */
51
+ counterparties: string[];
52
+ /** Every conversation folded into this bucket, most recently active first. */
53
+ conversationIds: ConversationId[];
54
+ messageCount: number;
55
+ unread: number;
56
+ lastEventAt: string;
57
+ /** The newest non-trashed message — what the rail previews. */
58
+ lastMessageId: string;
59
+ /** True when the owner sent the newest message (rail shows "You: …"). */
60
+ lastFromOwner: boolean;
61
+ /** Union of context refs across every message in the bucket. */
62
+ contextRefs: {
63
+ kind: string;
64
+ id: string;
65
+ label?: string;
66
+ }[];
67
+ hasPending: boolean;
68
+ }
69
+ export interface DirectMessageSummaryInput {
70
+ /** The owner whose projection this is (CAIP-10 or address). */
71
+ owner: string;
72
+ items: readonly {
73
+ messageId: string;
74
+ conversationId: ConversationId;
75
+ folder: string;
76
+ unread: boolean;
77
+ lastEventAt: string;
78
+ contextRefs: {
79
+ kind: string;
80
+ id: string;
81
+ label?: string;
82
+ }[];
83
+ }[];
84
+ /** Owner's descriptors by conversation id — the participant list when present. */
85
+ descriptors: Readonly<Record<string, {
86
+ participants: readonly string[];
87
+ }>>;
88
+ /** Envelope addressing by message id — the participant list when a descriptor is absent. */
89
+ envelopes: Readonly<Record<string, {
90
+ from: string;
91
+ to: readonly string[];
92
+ }>>;
93
+ }
94
+ /**
95
+ * Fold the owner's inbox into per-counterparty DM buckets, newest activity first.
96
+ *
97
+ * The counterparties of a conversation come from its descriptor's participants minus the owner; a
98
+ * conversation with no descriptor (an older recipient-side thread) derives them from its envelopes'
99
+ * `from`/`to`. A conversation whose only participant is the owner is a self-DM (Slack's "you" space).
100
+ * Trashed items are skipped, as `summarizeConversations` skips them. Pure and deterministic.
101
+ */
102
+ export declare function summarizeDirectMessages(input: DirectMessageSummaryInput): DirectMessageSummaryV1[];
35
103
  //# sourceMappingURL=conversation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/messaging/conversation.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAK3D,MAAM,MAAM,2BAA2B,GACnC,aAAa,GACb,QAAQ,GACR,eAAe,GACf,oBAAoB,GACpB,uBAAuB,GACvB,wBAAwB,GACxB,gBAAgB,GAChB,uBAAuB,GACvB,iBAAiB,CAAC;AAQtB,sEAAsE;AACtE,wBAAgB,8BAA8B,CAC5C,CAAC,EAAE,wBAAwB,GAC1B,2BAA2B,EAAE,CAsB/B;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5D,gFAAgF;IAChF,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,SAAS;IACd,cAAc,EAAE,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC7D,EAAE,GACF,qBAAqB,EAAE,CAwBzB"}
1
+ {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/messaging/conversation.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  // anchors, append policy); it never authorizes delivery — admission validates
4
4
  // every envelope independently, and each side keeps its own descriptor copy.
5
5
  import { MAX_CONTEXT_REFS } from './envelope.js';
6
+ import { sha256Hex32 } from './hash.js';
6
7
  const HEX32_RE = /^0x[0-9a-f]{64}$/;
7
8
  const POLICIES = [
8
9
  'fixed',
@@ -69,4 +70,134 @@ export function summarizeConversations(items) {
69
70
  }
70
71
  return [...byConv.values()].sort((a, b) => b.lastEventAt.localeCompare(a.lastEventAt));
71
72
  }
73
+ // ─── Direct messages — the Slack DM model (spec 313 §2 amendment) ────────────────────────────────────
74
+ //
75
+ // A direct message is identified by WHO, not by what it is about. There is one DM between two agents,
76
+ // ever — the way Slack has one DM per pair — and a "new message" to someone you have already talked
77
+ // to lands in that same DM. A subject line is not a conversation boundary; it never was, it was just
78
+ // the only thing the old composer had to title a fresh `conv_` id with.
79
+ //
80
+ // TWO PIECES, both pure:
81
+ // • `directConversationId(a, b)` — the DETERMINISTIC id of the DM between two agents. Both sides
82
+ // mint the same id without coordinating, so a first message racing from each end still lands in
83
+ // ONE conversation, and "continue the DM with X" needs no lookup.
84
+ // • `summarizeDirectMessages(...)` — the rail projection: every conversation the owner has with the
85
+ // same counterparty set, folded into one bucket, newest activity first, with the last message
86
+ // named so the rail can show it. Historical random-id conversations with the same counterparty
87
+ // fold into the bucket too — no migration, the projection absorbs them (deletes > deprecations).
88
+ //
89
+ // Neither is authority. A bucket is a VIEW over the owner's own projection; the id is a name for a
90
+ // thread, and admission still validates every envelope on its own (spec 312 §4.2).
91
+ const ADDR_RE = /0x[0-9a-fA-F]{40}$/;
92
+ /** The EVM address inside a CAIP-10 (or bare) agent id, lowercased; '' when there is none. */
93
+ export function agentAddressOf(id) {
94
+ return (String(id).match(ADDR_RE)?.[0] ?? '').toLowerCase();
95
+ }
96
+ /** Prefix that marks an id as a deterministic pairwise DM (`conv_dm_<32 hex>`). */
97
+ export const DIRECT_CONVERSATION_PREFIX = 'conv_dm_';
98
+ /**
99
+ * The one conversation id for the DM between `a` and `b` — order-independent, address-keyed, so the
100
+ * same pair always names the same thread from either side. Self-DM (a === b) is a valid pair.
101
+ */
102
+ export async function directConversationId(a, b) {
103
+ const x = agentAddressOf(a);
104
+ const y = agentAddressOf(b);
105
+ if (!x || !y)
106
+ throw new Error('directConversationId: both parties must be EVM agents');
107
+ const [lo, hi] = x < y ? [x, y] : [y, x];
108
+ const digest = await sha256Hex32(`ap.direct-message.v1|${lo}|${hi}`);
109
+ return `${DIRECT_CONVERSATION_PREFIX}${digest.slice(2, 34)}`;
110
+ }
111
+ export const isDirectConversationId = (id) => id.startsWith(DIRECT_CONVERSATION_PREFIX);
112
+ /** The bucket key for a counterparty set: sorted lowercase addresses joined by `+`. */
113
+ export function directMessageKey(counterparties) {
114
+ return [...new Set(counterparties.map(agentAddressOf).filter(Boolean))].sort().join('+');
115
+ }
116
+ /**
117
+ * Fold the owner's inbox into per-counterparty DM buckets, newest activity first.
118
+ *
119
+ * The counterparties of a conversation come from its descriptor's participants minus the owner; a
120
+ * conversation with no descriptor (an older recipient-side thread) derives them from its envelopes'
121
+ * `from`/`to`. A conversation whose only participant is the owner is a self-DM (Slack's "you" space).
122
+ * Trashed items are skipped, as `summarizeConversations` skips them. Pure and deterministic.
123
+ */
124
+ export function summarizeDirectMessages(input) {
125
+ const me = agentAddressOf(input.owner);
126
+ const live = input.items.filter((i) => i.folder !== 'trash');
127
+ // 1. counterparties per conversation
128
+ const partiesByConv = new Map();
129
+ for (const item of live) {
130
+ if (partiesByConv.has(item.conversationId))
131
+ continue;
132
+ const d = input.descriptors[item.conversationId];
133
+ const set = new Set();
134
+ if (d) {
135
+ for (const p of d.participants) {
136
+ const a = agentAddressOf(p);
137
+ if (a && a !== me)
138
+ set.add(a);
139
+ }
140
+ }
141
+ else {
142
+ for (const i of live) {
143
+ if (i.conversationId !== item.conversationId)
144
+ continue;
145
+ const e = input.envelopes[i.messageId];
146
+ if (!e)
147
+ continue;
148
+ for (const p of [e.from, ...e.to]) {
149
+ const a = agentAddressOf(p);
150
+ if (a && a !== me)
151
+ set.add(a);
152
+ }
153
+ }
154
+ }
155
+ // Nobody but the owner ⇒ self-DM, keyed by the owner.
156
+ partiesByConv.set(item.conversationId, set.size > 0 ? [...set].sort() : [me]);
157
+ }
158
+ // 2. fold conversations into buckets
159
+ const buckets = new Map();
160
+ for (const item of live) {
161
+ const parties = partiesByConv.get(item.conversationId);
162
+ const key = directMessageKey(parties);
163
+ const b = buckets.get(key) ?? {
164
+ key,
165
+ counterparties: parties,
166
+ conversationIds: [],
167
+ messageCount: 0,
168
+ unread: 0,
169
+ lastEventAt: item.lastEventAt,
170
+ lastMessageId: item.messageId,
171
+ lastFromOwner: item.folder === 'sent',
172
+ contextRefs: [],
173
+ hasPending: false,
174
+ convLast: new Map(),
175
+ };
176
+ b.messageCount += 1;
177
+ if (item.unread)
178
+ b.unread += 1;
179
+ if (item.folder === 'pending')
180
+ b.hasPending = true;
181
+ if (item.lastEventAt >= b.lastEventAt) {
182
+ b.lastEventAt = item.lastEventAt;
183
+ b.lastMessageId = item.messageId;
184
+ b.lastFromOwner = item.folder === 'sent';
185
+ }
186
+ const prevConv = b.convLast.get(item.conversationId);
187
+ if (!prevConv || item.lastEventAt > prevConv)
188
+ b.convLast.set(item.conversationId, item.lastEventAt);
189
+ for (const ref of item.contextRefs) {
190
+ if (!b.contextRefs.some((r) => r.kind === ref.kind && r.id === ref.id)) {
191
+ b.contextRefs.push({ kind: ref.kind, id: ref.id, ...(ref.label !== undefined ? { label: ref.label } : {}) });
192
+ }
193
+ }
194
+ buckets.set(key, b);
195
+ }
196
+ return [...buckets.values()]
197
+ .map(({ convLast, ...b }) => ({
198
+ ...b,
199
+ conversationIds: [...convLast.entries()].sort((x, y) => y[1].localeCompare(x[1])).map(([id]) => id),
200
+ }))
201
+ .sort((a, b) => b.lastEventAt.localeCompare(a.lastEventAt));
202
+ }
72
203
  //# sourceMappingURL=conversation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/messaging/conversation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/messaging/conversation.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ export type { ConversationExchangePins, ConversationInteractionView } from './co
7
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';
8
8
  export { canonicalizeMessage, sha256Hex32, hashMessageEnvelope, verifyBodyHash, } from './hash.js';
9
9
  export { generateMessageId, generateConversationId, generateThreadId, type EnvelopeValidationError, validateMessageEnvelope, MAX_CONTEXT_REFS, } from './envelope.js';
10
- export { type ConversationValidationError, validateConversationDescriptor, type ConversationSummaryV1, summarizeConversations, } from './conversation.js';
10
+ export { type ConversationValidationError, validateConversationDescriptor, type ConversationSummaryV1, summarizeConversations, DIRECT_CONVERSATION_PREFIX, agentAddressOf, directConversationId, isDirectConversationId, directMessageKey, type DirectMessageSummaryV1, type DirectMessageSummaryInput, summarizeDirectMessages, } from './conversation.js';
11
11
  export { applyMessageEvent, type MessageStore, createInMemoryMessageStore, } from './store.js';
12
12
  export { type InboxRulePredicateV1, type InboxRuleActionV1, type InboxRuleV1, type NotificationEventV1, type NotificationSink, matchesRulePredicate, matchesContextRef, type RuleApplication, applyInboxRules, } from './rules.js';
13
13
  export { type FolderSummaryV1, summarizeFolders, type InboxDeltaCursorV1, type InboxDeltaV1, type DeltaCursorStore, type MessageDeliveryPort, type InboxProjector, type CreateInboxProjectorOpts, createInMemoryInboxProjector, } from './projector.js';
@@ -16,6 +16,7 @@ export { MESSAGE_BODY_RECORD_TYPE, MESSAGE_ATTACHMENT_RECORD_TYPE, messageBodyRe
16
16
  export { type AuditedInboxDelivery, createAuditedInboxDelivery } from './delivery.js';
17
17
  export { BOARD_HISTORY_LIMIT, createBoardChannel, canSeeChannel, channelParticipationPolicy, appendBoardPost, assistantTrigger, setTopicAssistant, setTopicRouting, type BoardResult, type ChannelMessageEntryV1, type ChannelV1, type TopicAssistantV1, type TopicRoutingV1, } from './board.js';
18
18
  export { INBOX_ASSISTANT_FRESH_WINDOW_MS, inboxAssistantTrigger, fixedWindowAllow, buildAssistantInboxReply, type PersonAssistantV1, type FixedWindowState, type AssistantReplyResult, } from './inbox-assistant.js';
19
+ export { buildOutboundMessage, type OutboundMessageInput, type OutboundMessageResult, } from './outbound-message.js';
19
20
  export { validateDirectoryListing, isListingCurrent, type DirectoryListingV1, type ListingValidationError, } from './directory.js';
20
21
  export { CONSULT_SKILL_ID, CONSULT_RATE_WINDOW_MS, CONSULT_RATE_MAX, CONSULT_GRANT_VALIDITY_SECONDS, CONSULT_QUESTION_MAX_CHARS, CONSULT_TAIL_MAX_ROWS, CONSULT_TAIL_CLIP, CONSULT_ANSWER_MAX_CHARS, ROUTED_CONSULTATION_CONTEXT_KIND, consultGrantRecordKey, routedConsultationContextRef, parseConsultRequest, buildConsultAnswer, validateConsultAnswer, validateConsultationIntent, type ConsultTailRowV1, type ConsultRequestV1, type ConsultParseResult, type ConsultAnswerV1, type ConsultAnswerBuildResult, type ConsultAnswerValidationError, type ConsultationIntentV1, type ConsultationIntentStatus, type ConsultationIntentValidationError, ROUTING_FANOUT_DEFAULT, ROUTING_FANOUT_MIN, ROUTING_FANOUT_MAX, ROUTING_RATE_WINDOW_MS, ROUTING_RATE_MAX, CONSULT_MEMBER_TIMEOUT_MS, type ConsultProvenanceV1, } from './consult.js';
21
22
  export { routingPendingKey, consultationIntentKey, eligibleConsultMembers, rankConsultCandidates, routingToolsAllowed, routedTurnDegrade, buildConsultRequest, buildConsultationIntentRecord, consultAttribution, buildConsultProvenance, synthesisOutcomeLines, deterministicSynthesisBody, deterministicStatusBody, consultSelectionBasis, consultCandidateLine, questionAddressesRole, type ConsultRosterRowV1, type EligibleConsultMemberV1, type ConsultCandidateFacetsV1, type ConsultCandidateV1, type ConsultRankingV1, type RoutedTurnStateV1, type RoutedTurnDegradeV1, type ConsultOutcomeStatus, type ConsultOutcomeV1, type ConsultAttributionV1, } from './consult-routing.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/messaging/index.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,YAAY,wCAAwC,CAAC;AAClE,eAAO,MAAM,cAAc,EAAG,YAAqB,CAAC;AACpD,eAAO,MAAM,QAAQ,4CAA4C,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,EACL,yBAAyB,EACzB,6BAA6B,EAC7B,+BAA+B,EAC/B,4BAA4B,EAC5B,4BAA4B,EAC5B,4BAA4B,EAC5B,gBAAgB,EAChB,6BAA6B,EAC7B,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,+BAA+B,CAAC;AACvC,YAAY,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC3G,OAAO,EACL,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,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,EAChB,KAAK,uBAAuB,EAC5B,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,KAAK,2BAA2B,EAChC,8BAA8B,EAC9B,KAAK,qBAAqB,EAC1B,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,iBAAiB,EACjB,KAAK,YAAY,EACjB,0BAA0B,GAC3B,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,KAAK,eAAe,EACpB,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,KAAK,eAAe,EACpB,gBAAgB,EAChB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,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,EACzB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,2BAA2B,EAC3B,gBAAgB,EAChB,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,KAAK,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAItF,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,0BAA0B,EAC1B,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,cAAc,GACpB,MAAM,YAAY,CAAC;AAIpB,OAAO,EACL,+BAA+B,EAC/B,qBAAqB,EACrB,gBAAgB,EAChB,wBAAwB,EACxB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,GAC5B,MAAM,gBAAgB,CAAC;AAIxB,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,EAC1B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,wBAAwB,EAC7B,KAAK,4BAA4B,EACjC,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,iCAAiC,EACtC,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,yBAAyB,EACzB,KAAK,mBAAmB,GACzB,MAAM,cAAc,CAAC;AAKtB,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,EACrB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/messaging/index.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,9 @@ export { conversationInteractionId, conversationIdFromInteraction, participation
19
19
  export { ENDEAVOR_CONTEXT_KIND, endeavorContextRef, } from './types.js';
20
20
  export { canonicalizeMessage, sha256Hex32, hashMessageEnvelope, verifyBodyHash, } from './hash.js';
21
21
  export { generateMessageId, generateConversationId, generateThreadId, validateMessageEnvelope, MAX_CONTEXT_REFS, } from './envelope.js';
22
- export { validateConversationDescriptor, summarizeConversations, } from './conversation.js';
22
+ export { validateConversationDescriptor, summarizeConversations,
23
+ // Direct messages — the Slack DM model: one deterministic thread per pair, rail bucketed by WHO.
24
+ DIRECT_CONVERSATION_PREFIX, agentAddressOf, directConversationId, isDirectConversationId, directMessageKey, summarizeDirectMessages, } from './conversation.js';
23
25
  export { applyMessageEvent, createInMemoryMessageStore, } from './store.js';
24
26
  export { matchesRulePredicate, matchesContextRef, applyInboxRules, } from './rules.js';
25
27
  export { summarizeFolders, createInMemoryInboxProjector, } from './projector.js';
@@ -32,6 +34,9 @@ export { BOARD_HISTORY_LIMIT, createBoardChannel, canSeeChannel, channelParticip
32
34
  // Person inbox auto-reply assistant (spec 328) — pure trigger/rate/reply-builder helpers; the
33
35
  // execution point (the person's InteractionsDO) owns gating, audit, and the two-party writes.
34
36
  export { INBOX_ASSISTANT_FRESH_WINDOW_MS, inboxAssistantTrigger, fixedWindowAllow, buildAssistantInboxReply, } from './inbox-assistant.js';
37
+ // Outbound message construction (spec 341 Wave 5) — ONE builder for the envelope + descriptor a
38
+ // party sends, shared by the Home composer and the sender's own agent so the two cannot drift.
39
+ export { buildOutboundMessage, } from './outbound-message.js';
35
40
  // Directory listing (spec 322 W1; moved from @agenticprimitives/home — a listing is substrate).
36
41
  export { validateDirectoryListing, isListingCurrent, } from './directory.js';
37
42
  // Routed consultation (spec 329) — pure request/answer/intent shapes + builders; the member's
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/messaging/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/messaging/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import type { CanonicalAgentId } from '@agenticprimitives/types';
2
+ import type { ContextRefV1, ConversationDescriptorV1, MessageEnvelopeV2, MessageId } from './types.js';
3
+ export interface OutboundMessageInput {
4
+ /** The sender — always the caller's own id; there is no way to author as someone else. */
5
+ from: CanonicalAgentId;
6
+ /** The single recipient. Two-party only, matching what the composer and the reply path support. */
7
+ to: CanonicalAgentId;
8
+ subject?: string;
9
+ bodyText: string;
10
+ /** Continue an existing thread. Omitted ⇒ a new conversation id is minted. */
11
+ conversationId?: string;
12
+ /** Thread title for the descriptor. Falls back to `subject`. */
13
+ title?: string;
14
+ contextRefs?: ContextRefV1[];
15
+ /** Set ONLY when this message answers another (spec 340 §R.4). */
16
+ inReplyTo?: MessageId;
17
+ /** Set when an AGENT authored this on the sender's behalf — the loop-prevention marker every
18
+ * assistant skips on (spec 328 §7). A person composing in the UI leaves it unset. */
19
+ actor?: CanonicalAgentId;
20
+ now?: string;
21
+ }
22
+ export type OutboundMessageResult = {
23
+ ok: true;
24
+ envelope: MessageEnvelopeV2;
25
+ /** The RECIPIENT's copy of the thread descriptor. The sender's own copy is the same object with
26
+ * `owner` set to the sender — each side owns its own view (`sendFromInbox`'s rule). */
27
+ descriptor: ConversationDescriptorV1;
28
+ /** The exact bytes `bodyHash` covers. Returned so no caller re-encodes and hopes it matches. */
29
+ bodyBytes: Uint8Array;
30
+ } | {
31
+ ok: false;
32
+ error: string;
33
+ };
34
+ /**
35
+ * Build one outbound message + its conversation descriptor.
36
+ *
37
+ * Fail-closed on everything the receiving side would reject anyway — an empty body, a self-addressed
38
+ * envelope the composer has no path for, an envelope or descriptor that fails validation. Refusing
39
+ * here names the cause; refusing at the recipient's gate surfaces as an opaque delivery failure.
40
+ */
41
+ export declare function buildOutboundMessage(input: OutboundMessageInput): Promise<OutboundMessageResult>;
42
+ //# sourceMappingURL=outbound-message.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outbound-message.d.ts","sourceRoot":"","sources":["../../src/messaging/outbound-message.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAKjE,OAAO,KAAK,EAAE,YAAY,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvG,MAAM,WAAW,oBAAoB;IACnC,0FAA0F;IAC1F,IAAI,EAAE,gBAAgB,CAAC;IACvB,mGAAmG;IACnG,EAAE,EAAE,gBAAgB,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,YAAY,EAAE,CAAC;IAC7B,kEAAkE;IAClE,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;0FACsF;IACtF,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,qBAAqB,GAC7B;IACE,EAAE,EAAE,IAAI,CAAC;IACT,QAAQ,EAAE,iBAAiB,CAAC;IAC5B;4FACwF;IACxF,UAAU,EAAE,wBAAwB,CAAC;IACrC,gGAAgG;IAChG,SAAS,EAAE,UAAU,CAAC;CACvB,GACD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjC;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAmDtG"}
@@ -0,0 +1,64 @@
1
+ import { generateConversationId, generateMessageId, validateMessageEnvelope } from './envelope.js';
2
+ import { validateConversationDescriptor } from './conversation.js';
3
+ import { sha256Hex32 } from './hash.js';
4
+ import { messageBodyResource } from './vault-store.js';
5
+ /**
6
+ * Build one outbound message + its conversation descriptor.
7
+ *
8
+ * Fail-closed on everything the receiving side would reject anyway — an empty body, a self-addressed
9
+ * envelope the composer has no path for, an envelope or descriptor that fails validation. Refusing
10
+ * here names the cause; refusing at the recipient's gate surfaces as an opaque delivery failure.
11
+ */
12
+ export async function buildOutboundMessage(input) {
13
+ const bodyText = input.bodyText.trim();
14
+ if (!bodyText)
15
+ return { ok: false, error: 'bodyText required' };
16
+ const addrOf = (id) => (String(id).match(/0x[0-9a-fA-F]{40}$/)?.[0] ?? '').toLowerCase();
17
+ const me = addrOf(input.from);
18
+ const them = addrOf(input.to);
19
+ if (!me || !them)
20
+ return { ok: false, error: 'from and to must be EVM agents (CAIP-10)' };
21
+ const now = input.now ?? new Date().toISOString();
22
+ const messageId = generateMessageId();
23
+ const conversationId = (input.conversationId ?? generateConversationId());
24
+ const bodyBytes = new TextEncoder().encode(bodyText);
25
+ const envelope = {
26
+ version: 'ap.message.v2',
27
+ id: messageId,
28
+ conversationId,
29
+ performative: 'INFORM',
30
+ from: input.from,
31
+ to: [input.to],
32
+ ...(input.subject ? { subject: input.subject } : {}),
33
+ createdAt: now,
34
+ classification: 'internal',
35
+ // The body lives at this resource in EACH owner's own vault — the sender resolves it in theirs,
36
+ // the recipient in theirs. One name, two residencies, no shared store (spec 317).
37
+ body: { resource: messageBodyResource(messageId), classification: 'internal', updatedAt: now },
38
+ bodyHash: await sha256Hex32(bodyBytes),
39
+ bodyContentType: 'text/plain',
40
+ ...(input.inReplyTo ? { inReplyTo: input.inReplyTo } : {}),
41
+ ...(input.contextRefs?.length ? { contextRefs: input.contextRefs } : {}),
42
+ ...(input.actor ? { actor: input.actor } : {}),
43
+ };
44
+ const envelopeErrors = validateMessageEnvelope(envelope);
45
+ if (envelopeErrors.length > 0)
46
+ return { ok: false, error: `invalid envelope: ${envelopeErrors.join(', ')}` };
47
+ const descriptor = {
48
+ version: 'ap.conversation.v1',
49
+ id: conversationId,
50
+ // The RECIPIENT's view. The sender's copy is this with `owner: from` — stated at the call site
51
+ // rather than returned as a pair, because only the sender's execution point writes it.
52
+ owner: input.to,
53
+ ...(input.title ?? input.subject ? { title: input.title ?? input.subject } : {}),
54
+ participants: [input.from, input.to],
55
+ ...(input.contextRefs?.length ? { contextRefs: input.contextRefs } : {}),
56
+ participantPolicy: 'fixed',
57
+ createdAt: now,
58
+ };
59
+ const descriptorErrors = validateConversationDescriptor(descriptor);
60
+ if (descriptorErrors.length > 0)
61
+ return { ok: false, error: `invalid conversation: ${descriptorErrors.join(', ')}` };
62
+ return { ok: true, envelope, descriptor, bodyBytes };
63
+ }
64
+ //# sourceMappingURL=outbound-message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outbound-message.js","sourceRoot":"","sources":["../../src/messaging/outbound-message.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"record-catalog.d.ts","sourceRoot":"","sources":["../src/record-catalog.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,kBAAkB;IACjC;mFAC+E;IAC/E,OAAO,EAAE,MAAM,CAAC;IAChB,2FAA2F;IAC3F,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,wFAAwF;IACxF,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,mFAAmF;IACnF,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,sDAAsD;IACtD,mBAAmB,EAAE,UAAU,GAAG,cAAc,CAAC;IACjD,KAAK,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;CAClC;AAED;;;wCAGwC;AACxC,eAAO,MAAM,cAAc,EAAE,SAAS,kBAAkB,EAqC9C,CAAC;AAEX,gGAAgG;AAChG,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAIhF"}
1
+ {"version":3,"file":"record-catalog.d.ts","sourceRoot":"","sources":["../src/record-catalog.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,kBAAkB;IACjC;mFAC+E;IAC/E,OAAO,EAAE,MAAM,CAAC;IAChB,2FAA2F;IAC3F,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,wFAAwF;IACxF,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,mFAAmF;IACnF,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,sDAAsD;IACtD,mBAAmB,EAAE,UAAU,GAAG,cAAc,CAAC;IACjD,KAAK,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;CAClC;AAED;;;wCAGwC;AACxC,eAAO,MAAM,cAAc,EAAE,SAAS,kBAAkB,EA0C9C,CAAC;AAEX,gGAAgG;AAChG,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAIhF"}
@@ -26,6 +26,11 @@ export const RECORD_CATALOG = [
26
26
  { pattern: 'grants.delivery', typeTag: null, classIri: null, shapeIri: null, classificationFloor: 'confidential', owner: 'both' },
27
27
  // Org admin (reachable from NO messaging scope)
28
28
  { pattern: 'org.profile', typeTag: null, classIri: null, shapeIri: null, classificationFloor: 'internal', owner: 'org' },
29
+ // spec 342 — the steward's administrative lifecycle decision about the org (active | inactive |
30
+ // deleted). Its OWN record, not a field on org.profile: a decision is not a profile detail, and a
31
+ // separate record keeps the profile editor's read-modify-write from ever clobbering it. `deleted`
32
+ // is a tombstone — this record is written, nothing is removed.
33
+ { pattern: 'org.lifecycle', typeTag: null, classIri: null, shapeIri: null, classificationFloor: 'internal', owner: 'org' },
29
34
  { pattern: 'org.invite:*', typeTag: null, classIri: null, shapeIri: null, classificationFloor: 'confidential', owner: 'org' },
30
35
  // Routed consultation (spec 329). The consult GRANT record is a capability (a member-signed
31
36
  // delegation wire — delegation-gated residency, never KV; W1 custody note: the wire currently
@@ -1 +1 @@
1
- {"version":3,"file":"record-catalog.js","sourceRoot":"","sources":["../src/record-catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"record-catalog.js","sourceRoot":"","sources":["../src/record-catalog.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agenticprimitives/fabric",
3
- "version": "0.0.0-alpha.10",
3
+ "version": "0.0.0-alpha.12",
4
4
  "description": "The Agentic Interaction Fabric (spec 316): one canonical ExchangeRecordV1 + two-level exec/case FSM that absorbs messaging (envelope/inbox) and interactions (case/run) into an A2A-native, decentralized, low-latency substrate. Transport-agnostic core; the Cloudflare PrincipalGatewayDO ships as the ./cloudflare adapter subpath.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -35,6 +35,10 @@
35
35
  "./cloudflare": {
36
36
  "types": "./dist/cloudflare/index.d.ts",
37
37
  "import": "./dist/cloudflare/index.js"
38
+ },
39
+ "./email": {
40
+ "types": "./dist/email/index.d.ts",
41
+ "import": "./dist/email/index.js"
38
42
  }
39
43
  },
40
44
  "files": [
@@ -62,14 +66,14 @@
62
66
  "dependencies": {
63
67
  "@noble/curves": "^2.2.0",
64
68
  "@noble/hashes": "^2.2.0",
65
- "@agenticprimitives/audit": "1.0.0-alpha.21",
66
- "@agenticprimitives/ontology": "1.0.0-alpha.21",
67
- "@agenticprimitives/fulfillment": "0.0.0-alpha.18",
68
- "@agenticprimitives/tool-policy": "1.0.0-alpha.21",
69
- "@agenticprimitives/types": "1.0.0-alpha.21",
70
- "@agenticprimitives/vault": "0.0.0-alpha.2",
71
- "@agenticprimitives/orchestration": "0.0.0-alpha.1",
72
- "@agenticprimitives/provenance": "0.0.0-alpha.1"
69
+ "@agenticprimitives/audit": "1.0.0-alpha.23",
70
+ "@agenticprimitives/fulfillment": "0.0.0-alpha.20",
71
+ "@agenticprimitives/ontology": "1.0.0-alpha.23",
72
+ "@agenticprimitives/tool-policy": "1.0.0-alpha.23",
73
+ "@agenticprimitives/types": "1.0.0-alpha.23",
74
+ "@agenticprimitives/vault": "0.0.0-alpha.3",
75
+ "@agenticprimitives/orchestration": "0.0.0-alpha.2",
76
+ "@agenticprimitives/provenance": "0.0.0-alpha.2"
73
77
  },
74
78
  "scripts": {
75
79
  "build": "tsc -p tsconfig.build.json",