@agenticprimitives/fabric 0.0.0-alpha.10 → 0.0.0-alpha.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +26 -50
- package/dist/cloudflare/authority-verdict-cache.d.ts +28 -1
- package/dist/cloudflare/authority-verdict-cache.d.ts.map +1 -1
- package/dist/cloudflare/authority-verdict-cache.js +32 -1
- package/dist/cloudflare/authority-verdict-cache.js.map +1 -1
- package/dist/cloudflare/index.d.ts +3 -1
- package/dist/cloudflare/index.d.ts.map +1 -1
- package/dist/cloudflare/index.js +3 -1
- package/dist/cloudflare/index.js.map +1 -1
- package/dist/cloudflare/principal-gateway-do.d.ts +18 -0
- package/dist/cloudflare/principal-gateway-do.d.ts.map +1 -1
- package/dist/cloudflare/principal-gateway-do.js +9 -2
- package/dist/cloudflare/principal-gateway-do.js.map +1 -1
- package/dist/cloudflare/vault-exchange-store.d.ts +47 -0
- package/dist/cloudflare/vault-exchange-store.d.ts.map +1 -0
- package/dist/cloudflare/vault-exchange-store.js +118 -0
- package/dist/cloudflare/vault-exchange-store.js.map +1 -0
- package/dist/cloudflare/vault-interaction-store.d.ts +44 -0
- package/dist/cloudflare/vault-interaction-store.d.ts.map +1 -0
- package/dist/cloudflare/vault-interaction-store.js +245 -0
- package/dist/cloudflare/vault-interaction-store.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/interactions/open-case.d.ts +60 -0
- package/dist/interactions/open-case.d.ts.map +1 -0
- package/dist/interactions/open-case.js +83 -0
- package/dist/interactions/open-case.js.map +1 -0
- package/dist/messaging/index.d.ts +1 -0
- package/dist/messaging/index.d.ts.map +1 -1
- package/dist/messaging/index.js +3 -0
- package/dist/messaging/index.js.map +1 -1
- package/dist/messaging/outbound-message.d.ts +42 -0
- package/dist/messaging/outbound-message.d.ts.map +1 -0
- package/dist/messaging/outbound-message.js +64 -0
- package/dist/messaging/outbound-message.js.map +1 -0
- package/dist/record-catalog.d.ts.map +1 -1
- package/dist/record-catalog.js +5 -0
- package/dist/record-catalog.js.map +1 -1
- package/package.json +6 -6
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault-exchange-store.js","sourceRoot":"","sources":["../../src/cloudflare/vault-exchange-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { Vault } from '@agenticprimitives/vault';
|
|
2
|
+
import type { InteractionId } from '../interaction-record.js';
|
|
3
|
+
import type { InteractionStore } from './interaction-store.js';
|
|
4
|
+
export declare const INTERACTION_INDEX_RESOURCE = "interaction.index";
|
|
5
|
+
export declare const interactionResource: (id: InteractionId | string) => string;
|
|
6
|
+
export declare const decisionResource: (id: string) => string;
|
|
7
|
+
export declare const commitmentResource: (id: string) => string;
|
|
8
|
+
export declare const snapshotResource: (digest: string) => string;
|
|
9
|
+
export declare const inboxEntryResource: (viewer: string, exchangeId: string) => string;
|
|
10
|
+
export interface InteractionIndexV1 {
|
|
11
|
+
version: 1;
|
|
12
|
+
interactions: string[];
|
|
13
|
+
decisions: string[];
|
|
14
|
+
/** Commitment ids only — state is re-derived from the records on read, never trusted from here.
|
|
15
|
+
* A cached state in an index is a second copy of a machine-owned fact, and the machine owns it. */
|
|
16
|
+
commitments: string[];
|
|
17
|
+
snapshots: string[];
|
|
18
|
+
inboxEntries: Array<{
|
|
19
|
+
viewer: string;
|
|
20
|
+
exchangeId: string;
|
|
21
|
+
}>;
|
|
22
|
+
/** Correlator → interaction ids. DUPLICATES ARE KEPT: two interactions under one correlator is the
|
|
23
|
+
* ambiguity `resolveByBinding` exists to report, and de-duplicating here would resolve it by deletion. */
|
|
24
|
+
bindings: Record<string, string[]>;
|
|
25
|
+
}
|
|
26
|
+
export interface VaultInteractionStore extends InteractionStore {
|
|
27
|
+
/**
|
|
28
|
+
* Reconstruct DO-local state from vault-held records (the ADR-0055 rebuild, in code).
|
|
29
|
+
*
|
|
30
|
+
* Returns per-family counts plus every id whose record is missing. An id in the index with nothing
|
|
31
|
+
* behind it means two vault writes fell apart mid-flight; reporting it is the only way that is ever
|
|
32
|
+
* discovered, since a rebuild that quietly skipped it would return a clean-looking count.
|
|
33
|
+
*/
|
|
34
|
+
rebuild(): Promise<{
|
|
35
|
+
recovered: Record<string, number>;
|
|
36
|
+
missing: string[];
|
|
37
|
+
}>;
|
|
38
|
+
}
|
|
39
|
+
export declare function createVaultInteractionStore(vault: Vault, owner: string, cache?: {
|
|
40
|
+
put(resource: string, value: unknown): void;
|
|
41
|
+
get(resource: string): unknown | null;
|
|
42
|
+
clear(): void;
|
|
43
|
+
}): VaultInteractionStore;
|
|
44
|
+
//# sourceMappingURL=vault-interaction-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault-interaction-store.d.ts","sourceRoot":"","sources":["../../src/cloudflare/vault-interaction-store.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,KAAK,EAAuB,aAAa,EAAqB,MAAM,0BAA0B,CAAC;AAiBtG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,eAAO,MAAM,0BAA0B,sBAAsB,CAAC;AAE9D,eAAO,MAAM,mBAAmB,OAAQ,aAAa,GAAG,MAAM,KAAG,MAAqC,CAAC;AACvG,eAAO,MAAM,gBAAgB,OAAQ,MAAM,KAAG,MAAsC,CAAC;AACrF,eAAO,MAAM,kBAAkB,OAAQ,MAAM,KAAG,MAAwC,CAAC;AACzF,eAAO,MAAM,gBAAgB,WAAY,MAAM,KAAG,MAA0C,CAAC;AAC7F,eAAO,MAAM,kBAAkB,WAAY,MAAM,cAAc,MAAM,KAAG,MACb,CAAC;AAK5D,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,CAAC,CAAC;IACX,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB;wGACoG;IACpG,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D;+GAC2G;IAC3G,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACpC;AAMD,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAC7D;;;;;;OAMG;IACH,OAAO,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CAC9E;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE;IACN,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAC5C,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IACtC,KAAK,IAAI,IAAI,CAAC;CACf,GACA,qBAAqB,CAuMvB"}
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
// The VAULT-BACKED `InteractionStore` (spec 316 §0b, ADR-0055 amendment, audit G-2).
|
|
2
|
+
//
|
|
3
|
+
// Same residency decision as the exchange store, for the same reason: **each party holds their own copy**.
|
|
4
|
+
// An Interaction is a governed situation with participants, and each participant's vault holds their view
|
|
5
|
+
// of it. No single system of record; no copy authoritative over another. A rebuild is therefore a
|
|
6
|
+
// SINGLE-VAULT read — recovery never waits on a counterparty being reachable, willing, or still extant.
|
|
7
|
+
//
|
|
8
|
+
// SIX FAMILIES, ONE INDEX. Interactions, decisions, commitments, inbox entries, context snapshots and
|
|
9
|
+
// protocol bindings each get their own vault resource; one `interaction.index` document carries the ids.
|
|
10
|
+
// Six index documents would mean six writes to keep in step and six ways for them to drift.
|
|
11
|
+
//
|
|
12
|
+
// THE TWO INVARIANTS OF THE DO-LOCAL STORE ARE PRESERVED EXACTLY, because they are about immutability and
|
|
13
|
+
// they do not become negotiable when the backing store changes:
|
|
14
|
+
//
|
|
15
|
+
// 1. A ContextSnapshot is CONTENT-ADDRESSED and the digest is verified before storing. A forged snapshot
|
|
16
|
+
// is refused at the door rather than detected later. Re-putting a verified digest that is already
|
|
17
|
+
// present is a no-op — that is what content-addressing means.
|
|
18
|
+
// 2. Every transition goes THROUGH its machine. This store never assigns a state, so "the creditor
|
|
19
|
+
// discharges, not the debtor" cannot be bypassed by writing the row. A rejected transition writes
|
|
20
|
+
// NOTHING: persisting it "for the audit trail" would make the machine advisory.
|
|
21
|
+
//
|
|
22
|
+
// It confers nothing. Persisting a commitment does not make it owed; persisting a decision authorizes
|
|
23
|
+
// nothing (ADR-0041).
|
|
24
|
+
import { verifyContextSnapshot } from '../interaction-record.js';
|
|
25
|
+
import { applyInteractionTransition, applyDecisionTransition, applyCommitmentTransition, applyInboxTransition, } from '../interaction-machines.js';
|
|
26
|
+
import { bindingKey, resolveInteractionByBinding, } from '../protocol-binding.js';
|
|
27
|
+
export const INTERACTION_INDEX_RESOURCE = 'interaction.index';
|
|
28
|
+
export const interactionResource = (id) => `interaction:${String(id)}`;
|
|
29
|
+
export const decisionResource = (id) => `interaction.decision:${id}`;
|
|
30
|
+
export const commitmentResource = (id) => `interaction.commitment:${id}`;
|
|
31
|
+
export const snapshotResource = (digest) => `interaction.snapshot:${digest}`;
|
|
32
|
+
export const inboxEntryResource = (viewer, exchangeId) => `interaction.inbox:${viewer.toLowerCase()}:${exchangeId}`;
|
|
33
|
+
/** States an obligation is still live in. `discharged`/`breached`/`void` are ended, differently. */
|
|
34
|
+
const OPEN_COMMITMENT_STATES = new Set(['proposed', 'active', 'fulfilment-claimed']);
|
|
35
|
+
const EMPTY = {
|
|
36
|
+
version: 1, interactions: [], decisions: [], commitments: [], snapshots: [], inboxEntries: [], bindings: {},
|
|
37
|
+
};
|
|
38
|
+
export function createVaultInteractionStore(vault, owner, cache) {
|
|
39
|
+
const readIndex = async () => {
|
|
40
|
+
const obj = await vault.read({ owner, resource: INTERACTION_INDEX_RESOURCE });
|
|
41
|
+
return { ...EMPTY, ...(obj?.data ?? {}) };
|
|
42
|
+
};
|
|
43
|
+
const writeIndex = async (mutate) => {
|
|
44
|
+
const next = mutate(await readIndex());
|
|
45
|
+
await vault.write({ owner, resource: INTERACTION_INDEX_RESOURCE, data: next, classification: 'internal' });
|
|
46
|
+
};
|
|
47
|
+
/** WRITE-THROUGH. The vault first — the durable fact — then the index, then the DO-local cache. A crash
|
|
48
|
+
* after the first leaves a cache that can be re-derived; the reverse order leaves one that cannot. */
|
|
49
|
+
const save = async (resource, data, index) => {
|
|
50
|
+
await vault.write({ owner, resource, data, classification: 'internal' });
|
|
51
|
+
if (index)
|
|
52
|
+
await writeIndex(index);
|
|
53
|
+
cache?.put(resource, data);
|
|
54
|
+
};
|
|
55
|
+
const load = async (resource) => {
|
|
56
|
+
const hit = cache?.get(resource);
|
|
57
|
+
// A cache hit is the SAME answer the vault holds, not a second mechanism (ADR-0013).
|
|
58
|
+
if (hit)
|
|
59
|
+
return hit;
|
|
60
|
+
const obj = await vault.read({ owner, resource });
|
|
61
|
+
return obj?.data ?? null;
|
|
62
|
+
};
|
|
63
|
+
const addOnce = (list, id) => (list.includes(id) ? list : [...list, id]);
|
|
64
|
+
const store = {
|
|
65
|
+
// ── Interactions ────────────────────────────────────────────────────────────────────────────────
|
|
66
|
+
async putInteraction(record) {
|
|
67
|
+
await save(interactionResource(record.interactionId), record, (i) => ({
|
|
68
|
+
...i, interactions: addOnce(i.interactions, String(record.interactionId)),
|
|
69
|
+
}));
|
|
70
|
+
},
|
|
71
|
+
async getInteraction(id) {
|
|
72
|
+
return load(interactionResource(id));
|
|
73
|
+
},
|
|
74
|
+
async listInteractions() {
|
|
75
|
+
const idx = await readIndex();
|
|
76
|
+
const all = await Promise.all(idx.interactions.map((id) => this.getInteraction(id)));
|
|
77
|
+
return all.filter((r) => r !== null);
|
|
78
|
+
},
|
|
79
|
+
async transitionInteraction(id, event) {
|
|
80
|
+
const record = await this.getInteraction(id);
|
|
81
|
+
if (!record)
|
|
82
|
+
return null;
|
|
83
|
+
const result = applyInteractionTransition(lifecycleOf(record), event);
|
|
84
|
+
// Fail-closed: a rejection leaves the record exactly as it was.
|
|
85
|
+
if (result.ok) {
|
|
86
|
+
await this.putInteraction({
|
|
87
|
+
...record, lifecycleState: result.next.state, updatedAt: event.at, rev: record.rev + 1,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
return result;
|
|
91
|
+
},
|
|
92
|
+
// ── Protocol bindings ───────────────────────────────────────────────────────────────────────────
|
|
93
|
+
async bindProtocolTo(id, binding) {
|
|
94
|
+
const key = bindingKey(binding.protocol, binding.field, binding.value);
|
|
95
|
+
await writeIndex((i) => ({
|
|
96
|
+
...i,
|
|
97
|
+
// Appended, never de-duplicated across interactions: a correlator naming two interactions IS the
|
|
98
|
+
// ambiguity, and collapsing it here would answer an ambiguous question with a confident wrong one.
|
|
99
|
+
bindings: { ...i.bindings, [key]: [...(i.bindings[key] ?? []), String(id)] },
|
|
100
|
+
}));
|
|
101
|
+
},
|
|
102
|
+
async resolveByBinding(protocol, field, value) {
|
|
103
|
+
const idx = await readIndex();
|
|
104
|
+
const key = bindingKey(protocol, field, value);
|
|
105
|
+
// Reuses the in-memory resolver so every backing store agrees on what "ambiguous" means.
|
|
106
|
+
return resolveInteractionByBinding(new Map([[key, (idx.bindings[key] ?? [])]]), protocol, field, value);
|
|
107
|
+
},
|
|
108
|
+
// ── Context snapshots (content-addressed) ───────────────────────────────────────────────────────
|
|
109
|
+
async putContextSnapshot(snapshot) {
|
|
110
|
+
// Verified BEFORE storing. A snapshot whose digest does not match its bytes is not evidence, and
|
|
111
|
+
// storing it would make a later verification failure look like tampering rather than corruption.
|
|
112
|
+
if (!(await verifyContextSnapshot(snapshot)))
|
|
113
|
+
return { ok: false, reason: 'digest-mismatch' };
|
|
114
|
+
if (await load(snapshotResource(snapshot.digest))) {
|
|
115
|
+
// Digest verified and already present ⇒ the content is the same. Two parties observing one
|
|
116
|
+
// context legitimately store it twice; the stored bytes win.
|
|
117
|
+
return { ok: true, stored: 'identical' };
|
|
118
|
+
}
|
|
119
|
+
await save(snapshotResource(snapshot.digest), snapshot, (i) => ({
|
|
120
|
+
...i, snapshots: addOnce(i.snapshots, snapshot.digest),
|
|
121
|
+
}));
|
|
122
|
+
return { ok: true, stored: 'new' };
|
|
123
|
+
},
|
|
124
|
+
async getContextSnapshot(digest) {
|
|
125
|
+
return load(snapshotResource(digest));
|
|
126
|
+
},
|
|
127
|
+
// ── Decisions ───────────────────────────────────────────────────────────────────────────────────
|
|
128
|
+
async putDecision(record) {
|
|
129
|
+
await save(decisionResource(record.decisionId), record, (i) => ({
|
|
130
|
+
...i, decisions: addOnce(i.decisions, record.decisionId),
|
|
131
|
+
}));
|
|
132
|
+
},
|
|
133
|
+
async getDecision(id) {
|
|
134
|
+
return load(decisionResource(id));
|
|
135
|
+
},
|
|
136
|
+
async transitionDecision(id, event) {
|
|
137
|
+
const record = await this.getDecision(id);
|
|
138
|
+
if (!record)
|
|
139
|
+
return null;
|
|
140
|
+
const result = applyDecisionTransition(record, event);
|
|
141
|
+
if (result.ok)
|
|
142
|
+
await this.putDecision(result.next);
|
|
143
|
+
return result;
|
|
144
|
+
},
|
|
145
|
+
// ── Commitments ─────────────────────────────────────────────────────────────────────────────────
|
|
146
|
+
async putCommitment(record) {
|
|
147
|
+
await save(commitmentResource(record.commitmentId), record, (i) => ({
|
|
148
|
+
...i, commitments: addOnce(i.commitments, record.commitmentId),
|
|
149
|
+
}));
|
|
150
|
+
},
|
|
151
|
+
async getCommitment(id) {
|
|
152
|
+
return load(commitmentResource(id));
|
|
153
|
+
},
|
|
154
|
+
async listOpenCommitments() {
|
|
155
|
+
const idx = await readIndex();
|
|
156
|
+
const all = await Promise.all(idx.commitments.map((id) => this.getCommitment(id)));
|
|
157
|
+
// Filtered on the RECORD's state, never on a state cached in the index. "What is still owed" is
|
|
158
|
+
// machine-owned, and an index that answered it from its own copy could report an obligation as open
|
|
159
|
+
// after the creditor discharged it — the exact confusion the six machines exist to prevent.
|
|
160
|
+
return all
|
|
161
|
+
.filter((r) => r !== null && OPEN_COMMITMENT_STATES.has(r.state))
|
|
162
|
+
.sort((a, b) => b.updatedAt.localeCompare(a.updatedAt));
|
|
163
|
+
},
|
|
164
|
+
async transitionCommitment(id, event) {
|
|
165
|
+
const record = await this.getCommitment(id);
|
|
166
|
+
if (!record)
|
|
167
|
+
return null;
|
|
168
|
+
const result = applyCommitmentTransition(record, event);
|
|
169
|
+
if (result.ok)
|
|
170
|
+
await this.putCommitment(result.next);
|
|
171
|
+
return result;
|
|
172
|
+
},
|
|
173
|
+
// ── Inbox entries ───────────────────────────────────────────────────────────────────────────────
|
|
174
|
+
async putInboxEntry(entry) {
|
|
175
|
+
const viewer = String(entry.viewer).toLowerCase();
|
|
176
|
+
await save(inboxEntryResource(viewer, entry.exchangeId), entry, (i) => ({
|
|
177
|
+
...i,
|
|
178
|
+
inboxEntries: i.inboxEntries.some((e) => e.viewer === viewer && e.exchangeId === entry.exchangeId)
|
|
179
|
+
? i.inboxEntries
|
|
180
|
+
: [...i.inboxEntries, { viewer, exchangeId: entry.exchangeId }],
|
|
181
|
+
}));
|
|
182
|
+
},
|
|
183
|
+
async getInboxEntry(viewer, exchangeId) {
|
|
184
|
+
return load(inboxEntryResource(String(viewer), exchangeId));
|
|
185
|
+
},
|
|
186
|
+
async transitionInbox(viewer, exchangeId, event) {
|
|
187
|
+
const entry = await this.getInboxEntry(viewer, exchangeId);
|
|
188
|
+
if (!entry)
|
|
189
|
+
return null;
|
|
190
|
+
const result = applyInboxTransition(entry, event);
|
|
191
|
+
if (result.ok)
|
|
192
|
+
await this.putInboxEntry(result.next);
|
|
193
|
+
return result;
|
|
194
|
+
},
|
|
195
|
+
// ── Rebuild ─────────────────────────────────────────────────────────────────────────────────────
|
|
196
|
+
async rebuild() {
|
|
197
|
+
cache?.clear();
|
|
198
|
+
const idx = await readIndex();
|
|
199
|
+
const missing = [];
|
|
200
|
+
const recovered = {
|
|
201
|
+
interactions: 0, decisions: 0, commitments: 0, snapshots: 0, inboxEntries: 0,
|
|
202
|
+
};
|
|
203
|
+
const pull = async (family, resource) => {
|
|
204
|
+
const obj = await vault.read({ owner, resource });
|
|
205
|
+
if (!obj?.data) {
|
|
206
|
+
missing.push(resource);
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
cache?.put(resource, obj.data);
|
|
210
|
+
recovered[family] = (recovered[family] ?? 0) + 1;
|
|
211
|
+
};
|
|
212
|
+
for (const id of idx.interactions)
|
|
213
|
+
await pull('interactions', interactionResource(id));
|
|
214
|
+
for (const id of idx.decisions)
|
|
215
|
+
await pull('decisions', decisionResource(id));
|
|
216
|
+
for (const id of idx.commitments)
|
|
217
|
+
await pull('commitments', commitmentResource(id));
|
|
218
|
+
for (const d of idx.snapshots)
|
|
219
|
+
await pull('snapshots', snapshotResource(d));
|
|
220
|
+
for (const e of idx.inboxEntries)
|
|
221
|
+
await pull('inboxEntries', inboxEntryResource(e.viewer, e.exchangeId));
|
|
222
|
+
return { recovered, missing };
|
|
223
|
+
},
|
|
224
|
+
};
|
|
225
|
+
return store;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* The lifecycle facet of a stored interaction, for the machine to operate on.
|
|
229
|
+
*
|
|
230
|
+
* `principal` and `participations` are NOT optional decoration. The interaction machine decides who may
|
|
231
|
+
* drive a transition from them, so a facet that omitted them would hand the machine an interaction with
|
|
232
|
+
* no participants and no custodian — every transition rejected, for a reason that reads like a state-model
|
|
233
|
+
* problem. (Which is how this was found: the first version dropped both and the legal-transition test
|
|
234
|
+
* failed while the rejection tests still "passed".)
|
|
235
|
+
*/
|
|
236
|
+
function lifecycleOf(record) {
|
|
237
|
+
return {
|
|
238
|
+
interactionId: record.interactionId,
|
|
239
|
+
state: record.lifecycleState,
|
|
240
|
+
principal: record.principal,
|
|
241
|
+
participations: record.participations,
|
|
242
|
+
updatedAt: record.updatedAt,
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=vault-interaction-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault-interaction-store.js","sourceRoot":"","sources":["../../src/cloudflare/vault-interaction-store.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export type { FabricCaseV1, CaseFsmFields, CaseTransition, CaseTransitionEventV1
|
|
|
11
11
|
export { caseTransitionEmissions, applyCaseEmissions, seedDecision, seedCommitment, decisionIdForCase, commitmentIdForCase, EMITTING_CASE_TRANSITIONS, } from './case-emissions.js';
|
|
12
12
|
export type { CaseEmissionsV1, CaseEmissionApplyResult, EmissionOutcome, DecisionSeedV1, CommitmentSeedV1, } from './case-emissions.js';
|
|
13
13
|
export { applyExchangeEvent, caseViewFromRecord } from './exchange-reducer.js';
|
|
14
|
+
export { openCase, derivedCaseId, type OpenCaseInput, type OpenCaseResult } from './interactions/open-case.js';
|
|
14
15
|
export type { ExchangeApplyResult } from './exchange-reducer.js';
|
|
15
16
|
export { EXCHANGE_REDUCER_VERSION, eventSetDigest, replayExchange } from './exchange-reducer.js';
|
|
16
17
|
export type { MaterializationProvenanceV1, ExchangeReplayResult } from './exchange-reducer.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -22,6 +22,7 @@ export { applyCaseTransition, isTerminalCaseState, TERMINAL_CASE_STATES, require
|
|
|
22
22
|
export { caseTransitionEmissions, applyCaseEmissions, seedDecision, seedCommitment, decisionIdForCase, commitmentIdForCase, EMITTING_CASE_TRANSITIONS, } from './case-emissions.js';
|
|
23
23
|
// The unified exchange-event reducer (spec 316 §b/§2) — one append-only stream, one reducer over the record.
|
|
24
24
|
export { applyExchangeEvent, caseViewFromRecord } from './exchange-reducer.js';
|
|
25
|
+
export { openCase, derivedCaseId } from './interactions/open-case.js';
|
|
25
26
|
// Materialization provenance (spec 340 INV-340-8) — rebuilt state travels WITH which events and which
|
|
26
27
|
// rules produced it, so a dropped event and a never-received one stop looking identical.
|
|
27
28
|
export { EXCHANGE_REDUCER_VERSION, eventSetDigest, replayExchange } from './exchange-reducer.js';
|
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,8FAA8F;AAC9F,oGAAoG;AACpG,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,6GAA6G;AAC7G,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAUzF,0GAA0G;AAC1G,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAQhG,0GAA0G;AAC1G,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,sCAAsC,GACvC,MAAM,mBAAmB,CAAC;AAW3B,6FAA6F;AAC7F,sGAAsG;AACtG,0CAA0C;AAC1C,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAS7B,6GAA6G;AAC7G,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { CanonicalAgentId } from '@agenticprimitives/types';
|
|
2
|
+
import type { ContextRefV1, MessageId } from '../messaging/index.js';
|
|
3
|
+
import type { InteractionCaseV1, InteractionId, InteractionKind } from './types.js';
|
|
4
|
+
export interface OpenCaseInput {
|
|
5
|
+
/** The Interaction this case belongs to. DERIVED by the caller (e.g. `ixn_work_<workItemId>`), never
|
|
6
|
+
* minted — see `derivedCaseId` for why. */
|
|
7
|
+
interactionId: string;
|
|
8
|
+
/** Who is asking. The party the decision is about, verified by the recipient's gate before this runs. */
|
|
9
|
+
requester: CanonicalAgentId;
|
|
10
|
+
/** Who must answer. */
|
|
11
|
+
responder: CanonicalAgentId;
|
|
12
|
+
kind: InteractionKind;
|
|
13
|
+
/** Human-facing one-liner. What the responder is being asked, in their words not the system's. */
|
|
14
|
+
subject: string;
|
|
15
|
+
/** The message that opened it — the case's root in the exchange stream. */
|
|
16
|
+
rootMessageId: MessageId;
|
|
17
|
+
/** What this case is ABOUT (the work item, the artifact). About-ness, never authority. */
|
|
18
|
+
contextRefs?: ContextRefV1[];
|
|
19
|
+
at: string;
|
|
20
|
+
expiresAt?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* The case id, DERIVED from what makes it the same request.
|
|
24
|
+
*
|
|
25
|
+
* NOT a uuid, and this is the whole of §N.7.2. A transition can be retried — a delivery re-attempt, a
|
|
26
|
+
* user pressing twice, an at-least-once queue — and a minted id would make every retry a NEW obligation
|
|
27
|
+
* sitting in someone's inbox. Deriving it means a retry finds the case that already exists.
|
|
28
|
+
*
|
|
29
|
+
* The tuple is (interaction, requester, responder, kind): the same party asking the same party for the
|
|
30
|
+
* same thing about the same interaction IS the same request. A different KIND is a different ask, so it
|
|
31
|
+
* gets its own case — an access request and an approval request about one work item are two questions.
|
|
32
|
+
*
|
|
33
|
+
* Precedent: W11 derives `ixn_topic_<channelId>` so "the two cannot drift and no join table exists to go
|
|
34
|
+
* stale", and `org.applications` keeps one entry per applicant so re-applying updates in place rather
|
|
35
|
+
* than flooding the queue.
|
|
36
|
+
*/
|
|
37
|
+
export declare function derivedCaseId(input: {
|
|
38
|
+
interactionId: string;
|
|
39
|
+
requester: CanonicalAgentId;
|
|
40
|
+
responder: CanonicalAgentId;
|
|
41
|
+
kind: InteractionKind;
|
|
42
|
+
}): InteractionId;
|
|
43
|
+
export type OpenCaseResult = {
|
|
44
|
+
ok: true;
|
|
45
|
+
case: InteractionCaseV1;
|
|
46
|
+
created: boolean;
|
|
47
|
+
} | {
|
|
48
|
+
ok: false;
|
|
49
|
+
reason: 'self-addressed' | 'missing-subject';
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Open a case, or return the one already open for this request.
|
|
53
|
+
*
|
|
54
|
+
* `created: false` is a SUCCESS, not a conflict — a retried transition is supposed to be a no-op, and
|
|
55
|
+
* reporting it as an error would push every caller into distinguishing "already asked" from "failed to
|
|
56
|
+
* ask". The existing case is returned unchanged: re-asking does not reset a decision already in progress,
|
|
57
|
+
* and must never revive one already answered.
|
|
58
|
+
*/
|
|
59
|
+
export declare function openCase(input: OpenCaseInput, existing?: InteractionCaseV1 | null): OpenCaseResult;
|
|
60
|
+
//# sourceMappingURL=open-case.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"open-case.d.ts","sourceRoot":"","sources":["../../src/interactions/open-case.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEpF,MAAM,WAAW,aAAa;IAC5B;gDAC4C;IAC5C,aAAa,EAAE,MAAM,CAAC;IACtB,yGAAyG;IACzG,SAAS,EAAE,gBAAgB,CAAC;IAC5B,uBAAuB;IACvB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,IAAI,EAAE,eAAe,CAAC;IACtB,kGAAkG;IAClG,OAAO,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,aAAa,EAAE,SAAS,CAAC;IACzB,0FAA0F;IAC1F,WAAW,CAAC,EAAE,YAAY,EAAE,CAAC;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,SAAS,EAAE,gBAAgB,CAAC;IAC5B,IAAI,EAAE,eAAe,CAAC;CACvB,GAAG,aAAa,CAGhB;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GACvD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,gBAAgB,GAAG,iBAAiB,CAAA;CAAE,CAAC;AAEhE;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,IAAI,GAAG,cAAc,CAoClG"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
// `openCase` — the CASE PRODUCER (spec 340 §N).
|
|
2
|
+
//
|
|
3
|
+
// THE GAP THIS FILLS. Everything downstream of a case was built and wired — the store, the reducer,
|
|
4
|
+
// `applyApproveWithMandate` with its four gates, the server action, the UI button — and nothing ever
|
|
5
|
+
// created one. `putCase` was called in exactly one place: `hydrate`, reading a stored document back. So
|
|
6
|
+
// `cases`/`cards`/`mandates` were structurally always empty and the governed-situation half of the model
|
|
7
|
+
// had never executed against a live deployment.
|
|
8
|
+
//
|
|
9
|
+
// WHAT THIS DOES NOT KNOW. It has no idea what a work item is, and it must not learn (§N.7.1). The
|
|
10
|
+
// coordination profile decides WHICH transitions open a case; this decides what a case IS. The boundary
|
|
11
|
+
// has a test: if this function ever needs a work-item field, the boundary has moved and the design is
|
|
12
|
+
// wrong. Callers pass a `subject` and `contextRefs` — about-ness, never authority.
|
|
13
|
+
//
|
|
14
|
+
// OPENING A CASE GRANTS NOTHING (§N.7.3, ADR-0041). It creates an obligation to ANSWER, not permission to
|
|
15
|
+
// act. `authorityRefs` starts empty and stays empty until a mandate is issued; the case points at
|
|
16
|
+
// authority and never becomes it. That is why this function takes no grant, no delegation and no
|
|
17
|
+
// credential — there is nothing it could legitimately do with one.
|
|
18
|
+
/**
|
|
19
|
+
* The case id, DERIVED from what makes it the same request.
|
|
20
|
+
*
|
|
21
|
+
* NOT a uuid, and this is the whole of §N.7.2. A transition can be retried — a delivery re-attempt, a
|
|
22
|
+
* user pressing twice, an at-least-once queue — and a minted id would make every retry a NEW obligation
|
|
23
|
+
* sitting in someone's inbox. Deriving it means a retry finds the case that already exists.
|
|
24
|
+
*
|
|
25
|
+
* The tuple is (interaction, requester, responder, kind): the same party asking the same party for the
|
|
26
|
+
* same thing about the same interaction IS the same request. A different KIND is a different ask, so it
|
|
27
|
+
* gets its own case — an access request and an approval request about one work item are two questions.
|
|
28
|
+
*
|
|
29
|
+
* Precedent: W11 derives `ixn_topic_<channelId>` so "the two cannot drift and no join table exists to go
|
|
30
|
+
* stale", and `org.applications` keeps one entry per applicant so re-applying updates in place rather
|
|
31
|
+
* than flooding the queue.
|
|
32
|
+
*/
|
|
33
|
+
export function derivedCaseId(input) {
|
|
34
|
+
const part = (s) => String(s).toLowerCase().replace(/[^a-z0-9:_.-]/g, '');
|
|
35
|
+
return `${part(input.interactionId)}:${input.kind}:${part(input.requester)}:${part(input.responder)}`;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Open a case, or return the one already open for this request.
|
|
39
|
+
*
|
|
40
|
+
* `created: false` is a SUCCESS, not a conflict — a retried transition is supposed to be a no-op, and
|
|
41
|
+
* reporting it as an error would push every caller into distinguishing "already asked" from "failed to
|
|
42
|
+
* ask". The existing case is returned unchanged: re-asking does not reset a decision already in progress,
|
|
43
|
+
* and must never revive one already answered.
|
|
44
|
+
*/
|
|
45
|
+
export function openCase(input, existing) {
|
|
46
|
+
if (!input.subject.trim())
|
|
47
|
+
return { ok: false, reason: 'missing-subject' };
|
|
48
|
+
// A case is a question addressed to somebody else. Asking yourself for a decision would create an
|
|
49
|
+
// obligation with no counterparty, and it is the shape a mis-wired emitter produces — worth refusing
|
|
50
|
+
// loudly rather than filling an inbox with self-addressed requests.
|
|
51
|
+
if (input.requester.toLowerCase() === input.responder.toLowerCase())
|
|
52
|
+
return { ok: false, reason: 'self-addressed' };
|
|
53
|
+
if (existing)
|
|
54
|
+
return { ok: true, case: existing, created: false };
|
|
55
|
+
return {
|
|
56
|
+
ok: true,
|
|
57
|
+
created: true,
|
|
58
|
+
case: {
|
|
59
|
+
version: 'ap.interaction.v1',
|
|
60
|
+
id: derivedCaseId(input),
|
|
61
|
+
kind: input.kind,
|
|
62
|
+
subject: input.subject.trim(),
|
|
63
|
+
requester: input.requester,
|
|
64
|
+
responder: input.responder,
|
|
65
|
+
// SUBMITTED, not 'draft' and not an invented 'requested'. W10b made `CaseState` execution-only
|
|
66
|
+
// (11 → 8), and a case that has been asked but not yet triaged is exactly `submitted` — 'draft'
|
|
67
|
+
// would mean the requester had not sent it. Reusing the existing vocabulary rather than widening
|
|
68
|
+
// it is the point: the enum retirement (§R) exists so states are not added per feature.
|
|
69
|
+
state: 'submitted',
|
|
70
|
+
createdAt: input.at,
|
|
71
|
+
updatedAt: input.at,
|
|
72
|
+
rootMessageId: input.rootMessageId,
|
|
73
|
+
latestMessageId: input.rootMessageId,
|
|
74
|
+
evidenceRefs: [],
|
|
75
|
+
// EMPTY, AND IT STAYS EMPTY UNTIL A MANDATE EXISTS. The case points at authority; it never carries
|
|
76
|
+
// it (ADR-0041). A producer that seeded this would make opening a case a way to acquire permission.
|
|
77
|
+
authorityRefs: [],
|
|
78
|
+
...(input.contextRefs?.length ? { contextRefs: input.contextRefs } : {}),
|
|
79
|
+
...(input.expiresAt ? { expiresAt: input.expiresAt } : {}),
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=open-case.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"open-case.js","sourceRoot":"","sources":["../../src/interactions/open-case.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,EAAE;AACF,oGAAoG;AACpG,qGAAqG;AACrG,wGAAwG;AACxG,yGAAyG;AACzG,gDAAgD;AAChD,EAAE;AACF,mGAAmG;AACnG,wGAAwG;AACxG,sGAAsG;AACtG,mFAAmF;AACnF,EAAE;AACF,0GAA0G;AAC1G,kGAAkG;AAClG,iGAAiG;AACjG,mEAAmE;AAyBnE;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,aAAa,CAAC,KAK7B;IACC,MAAM,IAAI,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;IAC1F,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAmB,CAAC;AACzH,CAAC;AAMD;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAoB,EAAE,QAAmC;IAChF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC3E,kGAAkG;IAClG,qGAAqG;IACrG,oEAAoE;IACpE,IAAI,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAEpH,IAAI,QAAQ;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAElE,OAAO;QACL,EAAE,EAAE,IAAI;QACR,OAAO,EAAE,IAAI;QACb,IAAI,EAAE;YACJ,OAAO,EAAE,mBAAmB;YAC5B,EAAE,EAAE,aAAa,CAAC,KAAK,CAAC;YACxB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;YAC7B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,+FAA+F;YAC/F,gGAAgG;YAChG,iGAAiG;YACjG,wFAAwF;YACxF,KAAK,EAAE,WAAW;YAClB,SAAS,EAAE,KAAK,CAAC,EAAE;YACnB,SAAS,EAAE,KAAK,CAAC,EAAE;YACnB,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,eAAe,EAAE,KAAK,CAAC,aAAa;YACpC,YAAY,EAAE,EAAE;YAChB,mGAAmG;YACnG,oGAAoG;YACpG,aAAa,EAAE,EAAE;YACjB,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3D;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -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":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/messaging/index.ts"],"names":[],"mappings":"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"}
|
package/dist/messaging/index.js
CHANGED
|
@@ -32,6 +32,9 @@ export { BOARD_HISTORY_LIMIT, createBoardChannel, canSeeChannel, channelParticip
|
|
|
32
32
|
// Person inbox auto-reply assistant (spec 328) — pure trigger/rate/reply-builder helpers; the
|
|
33
33
|
// execution point (the person's InteractionsDO) owns gating, audit, and the two-party writes.
|
|
34
34
|
export { INBOX_ASSISTANT_FRESH_WINDOW_MS, inboxAssistantTrigger, fixedWindowAllow, buildAssistantInboxReply, } from './inbox-assistant.js';
|
|
35
|
+
// Outbound message construction (spec 341 Wave 5) — ONE builder for the envelope + descriptor a
|
|
36
|
+
// party sends, shared by the Home composer and the sender's own agent so the two cannot drift.
|
|
37
|
+
export { buildOutboundMessage, } from './outbound-message.js';
|
|
35
38
|
// Directory listing (spec 322 W1; moved from @agenticprimitives/home — a listing is substrate).
|
|
36
39
|
export { validateDirectoryListing, isListingCurrent, } from './directory.js';
|
|
37
40
|
// 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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"}
|