@agenticprimitives/fabric 0.0.0-alpha.1 → 0.0.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/messaging/board.d.ts +84 -4
- package/dist/messaging/board.d.ts.map +1 -1
- package/dist/messaging/board.js +98 -7
- package/dist/messaging/board.js.map +1 -1
- package/dist/messaging/consult-routing.d.ts +289 -0
- package/dist/messaging/consult-routing.d.ts.map +1 -0
- package/dist/messaging/consult-routing.js +455 -0
- package/dist/messaging/consult-routing.js.map +1 -0
- package/dist/messaging/consult.d.ts +158 -0
- package/dist/messaging/consult.d.ts.map +1 -0
- package/dist/messaging/consult.js +141 -0
- package/dist/messaging/consult.js.map +1 -0
- package/dist/messaging/directory.d.ts +16 -0
- package/dist/messaging/directory.d.ts.map +1 -1
- package/dist/messaging/directory.js.map +1 -1
- package/dist/messaging/inbox-assistant.d.ts +68 -0
- package/dist/messaging/inbox-assistant.d.ts.map +1 -0
- package/dist/messaging/inbox-assistant.js +102 -0
- package/dist/messaging/inbox-assistant.js.map +1 -0
- package/dist/messaging/index.d.ts +6 -3
- package/dist/messaging/index.d.ts.map +1 -1
- package/dist/messaging/index.js +13 -2
- package/dist/messaging/index.js.map +1 -1
- package/dist/messaging/types.d.ts +22 -0
- package/dist/messaging/types.d.ts.map +1 -1
- package/dist/messaging/types.js +15 -1
- package/dist/messaging/types.js.map +1 -1
- package/dist/messaging/vault-store.d.ts +33 -0
- package/dist/messaging/vault-store.d.ts.map +1 -1
- package/dist/messaging/vault-store.js +53 -5
- package/dist/messaging/vault-store.js.map +1 -1
- package/dist/record-catalog.d.ts.map +1 -1
- package/dist/record-catalog.js +12 -0
- package/dist/record-catalog.js.map +1 -1
- package/package.json +8 -8
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consult.d.ts","sourceRoot":"","sources":["../../src/messaging/consult.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/** The consult A2A skill id — the delegation's `allowedMethods` selector derives from THIS string
|
|
2
|
+
* (`skillSelector('discussion.consult')`, spec 269 FR-4.2). Never `A2A_ANY_SKILL`. */
|
|
3
|
+
export const CONSULT_SKILL_ID = 'discussion.consult';
|
|
4
|
+
/** Member-side per-org fixed window (spec 329 §3.2): 12 consults / hour / org. Exceeding ⇒ the
|
|
5
|
+
* task fails typed + audited (`a2a.consult.rateLimited`); decided with `fixedWindowAllow`. */
|
|
6
|
+
export const CONSULT_RATE_WINDOW_MS = 60 * 60_000;
|
|
7
|
+
export const CONSULT_RATE_MAX = 12;
|
|
8
|
+
/** Default consultability-delegation lifetime (spec 329 §2.1) — re-opt-in refreshes. */
|
|
9
|
+
export const CONSULT_GRANT_VALIDITY_SECONDS = 180 * 24 * 60 * 60;
|
|
10
|
+
// ── Org-side routing bounds (spec 329 §4 — approved defaults). Kept in THIS leaf (no board
|
|
11
|
+
// import) so board.ts's setTopicRouting and the routing module share one definition. ──
|
|
12
|
+
/** Fan-out per routed question: default 3, steward-tunable 1..5. */
|
|
13
|
+
export const ROUTING_FANOUT_DEFAULT = 3;
|
|
14
|
+
export const ROUTING_FANOUT_MIN = 1;
|
|
15
|
+
export const ROUTING_FANOUT_MAX = 5;
|
|
16
|
+
/** Per-topic routing bucket (on top of 327's dispatch bucket): 3 routed questions / 10 min. */
|
|
17
|
+
export const ROUTING_RATE_WINDOW_MS = 10 * 60_000;
|
|
18
|
+
export const ROUTING_RATE_MAX = 3;
|
|
19
|
+
/** Per-member consult timeout (spec 329 §4): a member agent that hasn't completed by then is
|
|
20
|
+
* reported as timed out in the synthesis attribution. */
|
|
21
|
+
export const CONSULT_MEMBER_TIMEOUT_MS = 60_000;
|
|
22
|
+
/** contextRef kind carried by the turn-1 status post + turn-2 synthesis (spec 329 §6;
|
|
23
|
+
* cbox/interaction-vocabulary.ttl `apmsg:routedConsultation`). */
|
|
24
|
+
export const ROUTED_CONSULTATION_CONTEXT_KIND = 'routed-consultation';
|
|
25
|
+
/** The org-vault record name family holding member consultability grants (spec 329 §2.1) —
|
|
26
|
+
* exported so W2's `find_members` eligibility read and the opt-in ceremony key identically. */
|
|
27
|
+
export const consultGrantRecordKey = (memberSA) => `org.consult-grant:${memberSA.toLowerCase()}`;
|
|
28
|
+
/** Build the routed-consultation contextRef: id = `<orgSA>/<topicId>/<questionId>` (spec 329 §6). */
|
|
29
|
+
export function routedConsultationContextRef(orgSA, topicId, questionId) {
|
|
30
|
+
return { kind: ROUTED_CONSULTATION_CONTEXT_KIND, id: `${orgSA.toLowerCase()}/${topicId}/${questionId}` };
|
|
31
|
+
}
|
|
32
|
+
/** Bounds on the carried context — the consult turn is small by construction. */
|
|
33
|
+
export const CONSULT_QUESTION_MAX_CHARS = 2000;
|
|
34
|
+
export const CONSULT_TAIL_MAX_ROWS = 8;
|
|
35
|
+
export const CONSULT_TAIL_CLIP = 300;
|
|
36
|
+
/** Parse + bound an inbound consult payload, fail-closed. Unknown/oversized context is CLIPPED
|
|
37
|
+
* (data, never authority — ADR-0041); a missing goal/org/topic/question id REJECTS. */
|
|
38
|
+
export function parseConsultRequest(input) {
|
|
39
|
+
if (!input || typeof input !== 'object')
|
|
40
|
+
return { ok: false, error: 'consult requires an object payload { goal, context }' };
|
|
41
|
+
const i = input;
|
|
42
|
+
const goal = typeof i.goal === 'string' ? i.goal.trim().slice(0, CONSULT_QUESTION_MAX_CHARS) : '';
|
|
43
|
+
if (!goal)
|
|
44
|
+
return { ok: false, error: 'consult requires goal (the question text)' };
|
|
45
|
+
const c = (i.context && typeof i.context === 'object' ? i.context : {});
|
|
46
|
+
const orgSA = String(c.orgSA ?? '').toLowerCase();
|
|
47
|
+
if (!/^0x[0-9a-f]{40}$/.test(orgSA))
|
|
48
|
+
return { ok: false, error: 'consult requires context.orgSA (the consulting org SA)' };
|
|
49
|
+
const topicId = String(c.topicId ?? '').trim();
|
|
50
|
+
const questionId = String(c.questionId ?? '').trim();
|
|
51
|
+
if (!topicId || !questionId)
|
|
52
|
+
return { ok: false, error: 'consult requires context.topicId + context.questionId' };
|
|
53
|
+
const tailRaw = Array.isArray(c.topicTail) ? c.topicTail : [];
|
|
54
|
+
const topicTail = tailRaw.slice(-CONSULT_TAIL_MAX_ROWS).flatMap((r) => {
|
|
55
|
+
const row = r;
|
|
56
|
+
const bodyText = typeof row.bodyText === 'string' ? row.bodyText.slice(0, CONSULT_TAIL_CLIP) : '';
|
|
57
|
+
if (!bodyText)
|
|
58
|
+
return [];
|
|
59
|
+
return [{ author: typeof row.author === 'string' ? row.author.slice(0, 120) : 'member', bodyText }];
|
|
60
|
+
});
|
|
61
|
+
const topicTitle = typeof c.topicTitle === 'string' && c.topicTitle.trim() ? c.topicTitle.trim().slice(0, 200) : undefined;
|
|
62
|
+
return {
|
|
63
|
+
ok: true,
|
|
64
|
+
request: {
|
|
65
|
+
goal,
|
|
66
|
+
context: { orgSA, topicId, questionId, ...(topicTitle ? { topicTitle } : {}), ...(topicTail.length ? { topicTail } : {}) },
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/** Max answer/decline-reason length carried back to the org. */
|
|
71
|
+
export const CONSULT_ANSWER_MAX_CHARS = 4000;
|
|
72
|
+
/**
|
|
73
|
+
* Build the ConsultAnswer artifact body (spec 329 §3.2). IDENTITY-PINNED by construction: the
|
|
74
|
+
* caller supplies only the outcome — `actor` is ALWAYS the member principal, and the request
|
|
75
|
+
* correlation (org/topic/question) comes from the PARSED request, never planner output.
|
|
76
|
+
* Enforces answered XOR declined, fail-closed (ADR-0013): an empty answer without an explicit
|
|
77
|
+
* decline is an error, never a silent empty artifact.
|
|
78
|
+
*/
|
|
79
|
+
export function buildConsultAnswer(request, opts) {
|
|
80
|
+
const answer = (opts.answer ?? '').trim().slice(0, CONSULT_ANSWER_MAX_CHARS);
|
|
81
|
+
const declined = opts.declined === true;
|
|
82
|
+
if (declined && answer)
|
|
83
|
+
return { ok: false, error: 'a consult terminal is answered XOR declined — not both' };
|
|
84
|
+
if (!declined && !answer)
|
|
85
|
+
return { ok: false, error: 'consult answer requires answer text or an explicit decline' };
|
|
86
|
+
const memberAddr = String(opts.member).match(/0x[0-9a-fA-F]{40}$/)?.[0];
|
|
87
|
+
if (!memberAddr)
|
|
88
|
+
return { ok: false, error: 'member must be an EVM agent (CAIP-10)' };
|
|
89
|
+
const declineReason = declined ? (opts.declineReason ?? '').trim().slice(0, CONSULT_ANSWER_MAX_CHARS) : '';
|
|
90
|
+
return {
|
|
91
|
+
ok: true,
|
|
92
|
+
answer: {
|
|
93
|
+
version: 'ap.consult-answer.v1',
|
|
94
|
+
questionId: request.context.questionId,
|
|
95
|
+
orgSA: request.context.orgSA,
|
|
96
|
+
topicId: request.context.topicId,
|
|
97
|
+
question: request.goal,
|
|
98
|
+
...(declined ? { declined: true, ...(declineReason ? { declineReason } : {}) } : { answer }),
|
|
99
|
+
actor: opts.member,
|
|
100
|
+
respondedAt: opts.now ?? new Date().toISOString(),
|
|
101
|
+
},
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
/** TS mirror of apmsg:ConsultAnswerShape (structural; the bodyHash binding is the task rail's). */
|
|
105
|
+
export function validateConsultAnswer(a) {
|
|
106
|
+
const errors = [];
|
|
107
|
+
if (a.version !== 'ap.consult-answer.v1')
|
|
108
|
+
errors.push('bad_version');
|
|
109
|
+
if (!a.questionId?.trim())
|
|
110
|
+
errors.push('missing_question_id');
|
|
111
|
+
if (!/^0x[0-9a-f]{40}$/.test(a.orgSA ?? ''))
|
|
112
|
+
errors.push('missing_org');
|
|
113
|
+
if (!a.topicId?.trim())
|
|
114
|
+
errors.push('missing_topic');
|
|
115
|
+
if (!a.actor || !String(a.actor).match(/0x[0-9a-fA-F]{40}$/))
|
|
116
|
+
errors.push('missing_actor');
|
|
117
|
+
const answered = typeof a.answer === 'string' && a.answer.trim().length > 0;
|
|
118
|
+
if (answered && a.declined)
|
|
119
|
+
errors.push('answered_and_declined');
|
|
120
|
+
if (!answered && a.declined !== true)
|
|
121
|
+
errors.push('neither_answered_nor_declined');
|
|
122
|
+
return errors;
|
|
123
|
+
}
|
|
124
|
+
/** TS mirror of apint:ConsultationIntentShape. */
|
|
125
|
+
export function validateConsultationIntent(i) {
|
|
126
|
+
const errors = [];
|
|
127
|
+
if (i.version !== 'ap.consultation-intent.v1')
|
|
128
|
+
errors.push('bad_version');
|
|
129
|
+
if (i.direction !== 'receive')
|
|
130
|
+
errors.push('bad_direction');
|
|
131
|
+
if (!i.expressedBy)
|
|
132
|
+
errors.push('missing_expressed_by');
|
|
133
|
+
if (!Array.isArray(i.addressedTo) || i.addressedTo.length !== 1 || !i.addressedTo[0])
|
|
134
|
+
errors.push('bad_addressed_to');
|
|
135
|
+
if (!i.constraints || !(i.constraints.timeoutMs > 0) || !i.constraints.topicId?.trim())
|
|
136
|
+
errors.push('missing_constraints');
|
|
137
|
+
if (!['drafted', 'expressed', 'fulfilled', 'abandoned'].includes(i.status))
|
|
138
|
+
errors.push('bad_status');
|
|
139
|
+
return errors;
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=consult.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consult.js","sourceRoot":"","sources":["../../src/messaging/consult.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,22 @@ export interface DirectoryListingV1 {
|
|
|
17
17
|
roles?: string[];
|
|
18
18
|
/** Where signed envelopes can be delivered (the subject's Home inbox). */
|
|
19
19
|
inboxEndpoint?: string;
|
|
20
|
+
/** spec 329 §2.2 — member-asserted, org-scoped routing HINT (aporg:consultable): "my agent may
|
|
21
|
+
* be consulted for this org's discussions". The AUTHORITY is the consultability delegation —
|
|
22
|
+
* flag without delegation ⇒ not consultable (fail-closed); delegation without flag ⇒ not
|
|
23
|
+
* surfaced to routing. Absent ⇒ false. Inside the signed digest (additive optional field —
|
|
24
|
+
* legacy listings verify unchanged; setting/clearing it is a re-publish, i.e. re-signed). */
|
|
25
|
+
consultable?: boolean;
|
|
26
|
+
/** spec 329 §12 — the member's PRIMARY ROLE **in this organization**, self-asserted ("tax
|
|
27
|
+
* advisor", "financial advisor"). Org-scoped by construction: the listing IS per-org, so the
|
|
28
|
+
* same person holds a different role in each org they list themselves in. MEMBER-AUTHORED —
|
|
29
|
+
* the listing is member-signed, so nobody else can set it (a steward-assigned role is out of
|
|
30
|
+
* scope, §12.2). Free text, display + routing HINT only: it is never an authorization and never
|
|
31
|
+
* a verified credential. Distinct from the display-only {@link DirectoryListingV1.roles} list
|
|
32
|
+
* (unstructured, multi-valued, pre-329) — routing needs ONE primary role per org.
|
|
33
|
+
* Inside the signed digest (additive optional field — legacy listings verify byte-identically;
|
|
34
|
+
* setting/clearing it is a re-publish, i.e. re-signed). Absent ⇒ no role asserted. */
|
|
35
|
+
orgRole?: string;
|
|
20
36
|
visibility: 'community' | 'public';
|
|
21
37
|
publishedAt: string;
|
|
22
38
|
expiresAt?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directory.d.ts","sourceRoot":"","sources":["../../src/messaging/directory.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,8BAA8B,CAAC;IACrC,iEAAiE;IACjE,OAAO,EAAE,gBAAgB,CAAC;IAC1B,+EAA+E;IAC/E,OAAO,EAAE,YAAY,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,WAAW,GAAG,QAAQ,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,cAAc,CAAC;CACvB;AAED,MAAM,MAAM,sBAAsB,GAC9B,UAAU,GACV,iBAAiB,GACjB,aAAa,GACb,sBAAsB,GACtB,gBAAgB,GAChB,kBAAkB,GAClB,gBAAgB,GAChB,eAAe,GACf,mBAAmB,CAAC;AAExB;;gEAEgE;AAChE,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,kBAAkB,GAAG,sBAAsB,EAAE,CAexF;AAED,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAI9E"}
|
|
1
|
+
{"version":3,"file":"directory.d.ts","sourceRoot":"","sources":["../../src/messaging/directory.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,8BAA8B,CAAC;IACrC,iEAAiE;IACjE,OAAO,EAAE,gBAAgB,CAAC;IAC1B,+EAA+E;IAC/E,OAAO,EAAE,YAAY,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;kGAI8F;IAC9F,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;;;2FAQuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,WAAW,GAAG,QAAQ,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,cAAc,CAAC;CACvB;AAED,MAAM,MAAM,sBAAsB,GAC9B,UAAU,GACV,iBAAiB,GACjB,aAAa,GACb,sBAAsB,GACtB,gBAAgB,GAChB,kBAAkB,GAClB,gBAAgB,GAChB,eAAe,GACf,mBAAmB,CAAC;AAExB;;gEAEgE;AAChE,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,kBAAkB,GAAG,sBAAsB,EAAE,CAexF;AAED,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAI9E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directory.js","sourceRoot":"","sources":["../../src/messaging/directory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"directory.js","sourceRoot":"","sources":["../../src/messaging/directory.ts"],"names":[],"mappings":"AA8DA;;gEAEgE;AAChE,MAAM,UAAU,wBAAwB,CAAC,CAAqB;IAC5D,MAAM,MAAM,GAA6B,EAAE,CAAC;IAC5C,IAAI,CAAC,CAAC,IAAI,KAAK,8BAA8B;QAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvE,IAAI,CAAC,CAAC,CAAC,OAAO;QAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC/C,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE;QAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACnF,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE;QAAE,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAChE,IAAI,CAAC,CAAC,UAAU,KAAK,WAAW,IAAI,CAAC,CAAC,UAAU,KAAK,QAAQ;QAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC7F,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC/F,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACtG,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS;QAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACjD,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;QAC/E,mEAAmE;QACnE,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,gBAAgB,CAAC,CAAqB,EAAE,KAAa;IACnE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC;QAAE,OAAO,KAAK,CAAC;IACrE,OAAO,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACnE,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { CanonicalAgentId } from '@agenticprimitives/types';
|
|
2
|
+
import type { ConversationDescriptorV1, MessageEnvelopeV1 } from './types.js';
|
|
3
|
+
/** Owner-controlled auto-reply assistant config for a PERSON's 1:1 inbox (spec 328 §2).
|
|
4
|
+
* One record in the person's vault; `enabled:false` is the disable tombstone (one record, no
|
|
5
|
+
* delete ceremony — absent and disabled are the same answer). Display name is captured AT
|
|
6
|
+
* ENABLE TIME so no per-delivery chain read is needed (ADR-0012); re-enabling refreshes it. */
|
|
7
|
+
export interface PersonAssistantV1 {
|
|
8
|
+
version: 'ap.person-assistant.v1';
|
|
9
|
+
enabled: boolean;
|
|
10
|
+
/** 'all' — reply to every inbound plain 1:1 message. 'mention' is deliberately NOT offered:
|
|
11
|
+
* a 1:1 message is already addressed to the person (spec 328 §2). */
|
|
12
|
+
trigger: 'all';
|
|
13
|
+
displayName: string;
|
|
14
|
+
enabledBy: string;
|
|
15
|
+
enabledAt: string;
|
|
16
|
+
}
|
|
17
|
+
/** Backfill/replay guard: only envelopes created within this window of the scan may trigger. */
|
|
18
|
+
export declare const INBOX_ASSISTANT_FRESH_WINDOW_MS: number;
|
|
19
|
+
/** Should a just-committed inbound envelope trigger the person's auto-reply assistant
|
|
20
|
+
* (spec 328 §3/§7)? Pure predicate over the canonical config + the envelope — the full
|
|
21
|
+
* loop-prevention matrix lives HERE so every ingress (in-Worker a2a delivery, Home whole-doc
|
|
22
|
+
* write) decides identically:
|
|
23
|
+
* - config absent / disabled → false (default off; disable wins)
|
|
24
|
+
* - `actor` set (agent-authored) → false (kills assistant↔assistant ping-pong)
|
|
25
|
+
* - kind ≠ 'plain' → false (cases/receipts/system have their own flows)
|
|
26
|
+
* - from = the principal (self-send) → false (never answers its own person)
|
|
27
|
+
* - not addressed `to` the principal → false
|
|
28
|
+
* - createdAt stale (> fresh window) or before enabledAt → false (backfill floods can't fire)
|
|
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;
|
|
31
|
+
/** One fixed-window rate state (DO-storage resident at the execution point). */
|
|
32
|
+
export interface FixedWindowState {
|
|
33
|
+
windowStart: number;
|
|
34
|
+
count: number;
|
|
35
|
+
}
|
|
36
|
+
/** Pure fixed-window rate decision (spec 328 §3; the same 6/10min semantics as spec 327's
|
|
37
|
+
* per-topic bucket, extracted so the bound is unit-testable without a DO). The caller persists
|
|
38
|
+
* `next` whether or not the dispatch is allowed (denied attempts still consume nothing — the
|
|
39
|
+
* count only advances on allow). */
|
|
40
|
+
export declare function fixedWindowAllow(prev: FixedWindowState | undefined, now: number, opts: {
|
|
41
|
+
windowMs: number;
|
|
42
|
+
max: number;
|
|
43
|
+
}): {
|
|
44
|
+
allowed: boolean;
|
|
45
|
+
next: FixedWindowState;
|
|
46
|
+
};
|
|
47
|
+
export type AssistantReplyResult = {
|
|
48
|
+
ok: true;
|
|
49
|
+
envelope: MessageEnvelopeV1;
|
|
50
|
+
counterparty: CanonicalAgentId;
|
|
51
|
+
counterpartyAddr: string;
|
|
52
|
+
bodyBytes: Uint8Array;
|
|
53
|
+
} | {
|
|
54
|
+
ok: false;
|
|
55
|
+
error: string;
|
|
56
|
+
};
|
|
57
|
+
/** Build the assistant's reply envelope (spec 328 §5). IDENTITY-PINNED by construction: the
|
|
58
|
+
* caller supplies only the conversation + body text — `from` and `actor` are ALWAYS the
|
|
59
|
+
* principal, and the counterparty resolves from the OWNER'S OWN conversation descriptor (never
|
|
60
|
+
* the wire), exactly the Home's replyInConversation rule. Two-party conversations only; no
|
|
61
|
+
* descriptor ⇒ typed error (fail-closed, ADR-0013 — never a weaker resolution path). */
|
|
62
|
+
export declare function buildAssistantInboxReply(conversations: ConversationDescriptorV1[] | undefined, opts: {
|
|
63
|
+
principal: CanonicalAgentId;
|
|
64
|
+
conversationId: string;
|
|
65
|
+
bodyText: string;
|
|
66
|
+
now?: string;
|
|
67
|
+
}): Promise<AssistantReplyResult>;
|
|
68
|
+
//# sourceMappingURL=inbox-assistant.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { generateMessageId, validateMessageEnvelope } from './envelope.js';
|
|
2
|
+
import { sha256Hex32 } from './hash.js';
|
|
3
|
+
import { messageBodyResource } from './vault-store.js';
|
|
4
|
+
/** Backfill/replay guard: only envelopes created within this window of the scan may trigger. */
|
|
5
|
+
export const INBOX_ASSISTANT_FRESH_WINDOW_MS = 10 * 60_000;
|
|
6
|
+
/** Should a just-committed inbound envelope trigger the person's auto-reply assistant
|
|
7
|
+
* (spec 328 §3/§7)? Pure predicate over the canonical config + the envelope — the full
|
|
8
|
+
* loop-prevention matrix lives HERE so every ingress (in-Worker a2a delivery, Home whole-doc
|
|
9
|
+
* write) decides identically:
|
|
10
|
+
* - config absent / disabled → false (default off; disable wins)
|
|
11
|
+
* - `actor` set (agent-authored) → false (kills assistant↔assistant ping-pong)
|
|
12
|
+
* - kind ≠ 'plain' → false (cases/receipts/system have their own flows)
|
|
13
|
+
* - from = the principal (self-send) → false (never answers its own person)
|
|
14
|
+
* - not addressed `to` the principal → false
|
|
15
|
+
* - createdAt stale (> fresh window) or before enabledAt → false (backfill floods can't fire)
|
|
16
|
+
* The seen-ledger dedup and the per-conversation rate bucket are the caller's (DO storage). */
|
|
17
|
+
export function inboxAssistantTrigger(assistant, envelope, principalAddr, nowMs) {
|
|
18
|
+
if (!assistant?.enabled)
|
|
19
|
+
return false;
|
|
20
|
+
if (envelope.actor)
|
|
21
|
+
return false;
|
|
22
|
+
if (envelope.kind !== 'plain')
|
|
23
|
+
return false;
|
|
24
|
+
const me = principalAddr.toLowerCase();
|
|
25
|
+
const addrOf = (caip) => (caip.match(/0x[0-9a-fA-F]{40}$/)?.[0] ?? '').toLowerCase();
|
|
26
|
+
if (addrOf(String(envelope.from)) === me)
|
|
27
|
+
return false;
|
|
28
|
+
if (!envelope.to.some((t) => addrOf(String(t)) === me))
|
|
29
|
+
return false;
|
|
30
|
+
const created = Date.parse(envelope.createdAt);
|
|
31
|
+
if (!Number.isFinite(created))
|
|
32
|
+
return false;
|
|
33
|
+
const now = nowMs ?? Date.now();
|
|
34
|
+
if (now - created > INBOX_ASSISTANT_FRESH_WINDOW_MS)
|
|
35
|
+
return false;
|
|
36
|
+
const enabledAt = Date.parse(assistant.enabledAt);
|
|
37
|
+
if (Number.isFinite(enabledAt) && created < enabledAt)
|
|
38
|
+
return false;
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
/** Pure fixed-window rate decision (spec 328 §3; the same 6/10min semantics as spec 327's
|
|
42
|
+
* per-topic bucket, extracted so the bound is unit-testable without a DO). The caller persists
|
|
43
|
+
* `next` whether or not the dispatch is allowed (denied attempts still consume nothing — the
|
|
44
|
+
* count only advances on allow). */
|
|
45
|
+
export function fixedWindowAllow(prev, now, opts) {
|
|
46
|
+
const inWindow = !!prev && now - prev.windowStart < opts.windowMs;
|
|
47
|
+
if (inWindow && prev.count >= opts.max)
|
|
48
|
+
return { allowed: false, next: prev };
|
|
49
|
+
return {
|
|
50
|
+
allowed: true,
|
|
51
|
+
next: inWindow ? { windowStart: prev.windowStart, count: prev.count + 1 } : { windowStart: now, count: 1 },
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
/** Build the assistant's reply envelope (spec 328 §5). IDENTITY-PINNED by construction: the
|
|
55
|
+
* caller supplies only the conversation + body text — `from` and `actor` are ALWAYS the
|
|
56
|
+
* principal, and the counterparty resolves from the OWNER'S OWN conversation descriptor (never
|
|
57
|
+
* the wire), exactly the Home's replyInConversation rule. Two-party conversations only; no
|
|
58
|
+
* descriptor ⇒ typed error (fail-closed, ADR-0013 — never a weaker resolution path). */
|
|
59
|
+
export async function buildAssistantInboxReply(conversations, opts) {
|
|
60
|
+
const bodyText = opts.bodyText.trim();
|
|
61
|
+
if (!opts.conversationId || !bodyText)
|
|
62
|
+
return { ok: false, error: 'conversationId + bodyText required' };
|
|
63
|
+
const descriptor = (conversations ?? []).find((d) => d.id === opts.conversationId);
|
|
64
|
+
if (!descriptor)
|
|
65
|
+
return { ok: false, error: 'unknown conversation' };
|
|
66
|
+
const meAddr = (String(opts.principal).match(/0x[0-9a-fA-F]{40}$/)?.[0] ?? '').toLowerCase();
|
|
67
|
+
if (!meAddr)
|
|
68
|
+
return { ok: false, error: 'principal must be an EVM agent (CAIP-10)' };
|
|
69
|
+
const others = descriptor.participants.filter((p) => (String(p).match(/0x[0-9a-fA-F]{40}$/)?.[0] ?? '').toLowerCase() !== meAddr);
|
|
70
|
+
if (others.length !== 1)
|
|
71
|
+
return { ok: false, error: 'assistant replies require a two-party conversation' };
|
|
72
|
+
const counterparty = others[0];
|
|
73
|
+
const counterpartyAddr = (String(counterparty).match(/0x[0-9a-fA-F]{40}$/)?.[0] ?? '').toLowerCase();
|
|
74
|
+
if (!counterpartyAddr)
|
|
75
|
+
return { ok: false, error: 'counterparty is not an EVM agent' };
|
|
76
|
+
const now = opts.now ?? new Date().toISOString();
|
|
77
|
+
const messageId = generateMessageId();
|
|
78
|
+
const bodyBytes = new TextEncoder().encode(bodyText);
|
|
79
|
+
const envelope = {
|
|
80
|
+
version: 'ap.message.v1',
|
|
81
|
+
id: messageId,
|
|
82
|
+
conversationId: descriptor.id,
|
|
83
|
+
kind: 'plain',
|
|
84
|
+
from: opts.principal,
|
|
85
|
+
to: [counterparty],
|
|
86
|
+
...(descriptor.title ? { subject: descriptor.title } : {}),
|
|
87
|
+
createdAt: now,
|
|
88
|
+
classification: 'internal',
|
|
89
|
+
body: { resource: messageBodyResource(messageId), classification: 'internal', updatedAt: now },
|
|
90
|
+
bodyHash: await sha256Hex32(bodyBytes),
|
|
91
|
+
bodyContentType: 'text/plain',
|
|
92
|
+
...(descriptor.contextRefs ? { contextRefs: descriptor.contextRefs } : {}),
|
|
93
|
+
// spec 324 §9 — machine-readable agent-authored provenance; also the loop-prevention marker
|
|
94
|
+
// the counterparty's own assistant skips on (spec 328 §7).
|
|
95
|
+
actor: opts.principal,
|
|
96
|
+
};
|
|
97
|
+
const errors = validateMessageEnvelope(envelope);
|
|
98
|
+
if (errors.length > 0)
|
|
99
|
+
return { ok: false, error: `invalid reply envelope: ${errors.join(', ')}` };
|
|
100
|
+
return { ok: true, envelope, counterparty, counterpartyAddr, bodyBytes };
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=inbox-assistant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inbox-assistant.js","sourceRoot":"","sources":["../../src/messaging/inbox-assistant.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
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, } from './types.js';
|
|
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';
|
|
5
5
|
export { canonicalizeMessage, sha256Hex32, hashMessageEnvelope, verifyBodyHash, } from './hash.js';
|
|
6
6
|
export { generateMessageId, generateConversationId, generateThreadId, type EnvelopeValidationError, validateMessageEnvelope, MAX_CONTEXT_REFS, } from './envelope.js';
|
|
7
7
|
export { type ConversationValidationError, validateConversationDescriptor, type ConversationSummaryV1, summarizeConversations, } from './conversation.js';
|
|
@@ -9,8 +9,11 @@ export { applyMessageEvent, type MessageStore, createInMemoryMessageStore, } fro
|
|
|
9
9
|
export { type InboxRulePredicateV1, type InboxRuleActionV1, type InboxRuleV1, type NotificationEventV1, type NotificationSink, matchesRulePredicate, matchesContextRef, type RuleApplication, applyInboxRules, } from './rules.js';
|
|
10
10
|
export { type FolderSummaryV1, summarizeFolders, type InboxDeltaCursorV1, type InboxDeltaV1, type DeltaCursorStore, type MessageDeliveryPort, type InboxProjector, type CreateInboxProjectorOpts, createInMemoryInboxProjector, } from './projector.js';
|
|
11
11
|
export { buildDeliveryReceipt, buildReadReceipt } from './receipts.js';
|
|
12
|
-
export { MESSAGE_BODY_RECORD_TYPE, MESSAGE_ATTACHMENT_RECORD_TYPE, messageBodyResource, topicBodyResource, messageAttachmentResource, type PutBodyResult, type MessageBodyStore, createVaultMessageBodyStore, } from './vault-store.js';
|
|
12
|
+
export { MESSAGE_BODY_RECORD_TYPE, MESSAGE_ATTACHMENT_RECORD_TYPE, messageBodyResource, topicBodyResource, messageAttachmentResource, type PutBodyResult, type MessageBodyStore, createVaultMessageBodyStore, verifyStoredBody, verifiedBodiesFromBatch, isRetryableVaultToolFailure, } from './vault-store.js';
|
|
13
13
|
export { type AuditedInboxDelivery, createAuditedInboxDelivery } from './delivery.js';
|
|
14
|
-
export { BOARD_HISTORY_LIMIT, createBoardChannel, canSeeChannel, appendBoardPost, type BoardResult, type ChannelMessageEntryV1, type ChannelV1, } from './board.js';
|
|
14
|
+
export { BOARD_HISTORY_LIMIT, createBoardChannel, canSeeChannel, channelParticipationPolicy, appendBoardPost, assistantTrigger, setTopicAssistant, setTopicRouting, type BoardResult, type ChannelMessageEntryV1, type ChannelV1, type TopicAssistantV1, type TopicRoutingV1, } from './board.js';
|
|
15
|
+
export { INBOX_ASSISTANT_FRESH_WINDOW_MS, inboxAssistantTrigger, fixedWindowAllow, buildAssistantInboxReply, type PersonAssistantV1, type FixedWindowState, type AssistantReplyResult, } from './inbox-assistant.js';
|
|
15
16
|
export { validateDirectoryListing, isListingCurrent, type DirectoryListingV1, type ListingValidationError, } from './directory.js';
|
|
17
|
+
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';
|
|
18
|
+
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';
|
|
16
19
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -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,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,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,eAAe,
|
|
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
|
@@ -12,6 +12,7 @@
|
|
|
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 { ENDEAVOR_CONTEXT_KIND, endeavorContextRef, } from './types.js';
|
|
15
16
|
export { canonicalizeMessage, sha256Hex32, hashMessageEnvelope, verifyBodyHash, } from './hash.js';
|
|
16
17
|
export { generateMessageId, generateConversationId, generateThreadId, validateMessageEnvelope, MAX_CONTEXT_REFS, } from './envelope.js';
|
|
17
18
|
export { validateConversationDescriptor, summarizeConversations, } from './conversation.js';
|
|
@@ -19,11 +20,21 @@ export { applyMessageEvent, createInMemoryMessageStore, } from './store.js';
|
|
|
19
20
|
export { matchesRulePredicate, matchesContextRef, applyInboxRules, } from './rules.js';
|
|
20
21
|
export { summarizeFolders, createInMemoryInboxProjector, } from './projector.js';
|
|
21
22
|
export { buildDeliveryReceipt, buildReadReceipt } from './receipts.js';
|
|
22
|
-
export { MESSAGE_BODY_RECORD_TYPE, MESSAGE_ATTACHMENT_RECORD_TYPE, messageBodyResource, topicBodyResource, messageAttachmentResource, createVaultMessageBodyStore, } from './vault-store.js';
|
|
23
|
+
export { MESSAGE_BODY_RECORD_TYPE, MESSAGE_ATTACHMENT_RECORD_TYPE, messageBodyResource, topicBodyResource, messageAttachmentResource, createVaultMessageBodyStore, verifyStoredBody, verifiedBodiesFromBatch, isRetryableVaultToolFailure, } from './vault-store.js';
|
|
23
24
|
export { createAuditedInboxDelivery } from './delivery.js';
|
|
24
25
|
// Community channel board (spec 322 W1) — shape + validated pure mutations; gating/audit/residency
|
|
25
26
|
// stay with the execution point.
|
|
26
|
-
export { BOARD_HISTORY_LIMIT, createBoardChannel, canSeeChannel, appendBoardPost, } from './board.js';
|
|
27
|
+
export { BOARD_HISTORY_LIMIT, createBoardChannel, canSeeChannel, channelParticipationPolicy, appendBoardPost, assistantTrigger, setTopicAssistant, setTopicRouting, } from './board.js';
|
|
28
|
+
// Person inbox auto-reply assistant (spec 328) — pure trigger/rate/reply-builder helpers; the
|
|
29
|
+
// execution point (the person's InteractionsDO) owns gating, audit, and the two-party writes.
|
|
30
|
+
export { INBOX_ASSISTANT_FRESH_WINDOW_MS, inboxAssistantTrigger, fixedWindowAllow, buildAssistantInboxReply, } from './inbox-assistant.js';
|
|
27
31
|
// Directory listing (spec 322 W1; moved from @agenticprimitives/home — a listing is substrate).
|
|
28
32
|
export { validateDirectoryListing, isListingCurrent, } from './directory.js';
|
|
33
|
+
// Routed consultation (spec 329) — pure request/answer/intent shapes + builders; the member's
|
|
34
|
+
// delegation gate, rate bucket, audit, and residency stay with the execution points (demo-a2a).
|
|
35
|
+
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, ROUTING_FANOUT_DEFAULT, ROUTING_FANOUT_MIN, ROUTING_FANOUT_MAX, ROUTING_RATE_WINDOW_MS, ROUTING_RATE_MAX, CONSULT_MEMBER_TIMEOUT_MS, } from './consult.js';
|
|
36
|
+
// Org-side member routing (spec 329 W2/W3) — pure eligibility ∩ spec-281 ranking, the depth-1
|
|
37
|
+
// routing-tools guard, consult-request/intent builders, and synthesis attribution/PROV. Discovery
|
|
38
|
+
// I/O, custody, buckets, signing, audit stay with the execution point (demo-a2a).
|
|
39
|
+
export { routingPendingKey, consultationIntentKey, eligibleConsultMembers, rankConsultCandidates, routingToolsAllowed, routedTurnDegrade, buildConsultRequest, buildConsultationIntentRecord, consultAttribution, buildConsultProvenance, synthesisOutcomeLines, deterministicSynthesisBody, deterministicStatusBody, consultSelectionBasis, consultCandidateLine, questionAddressesRole, } from './consult-routing.js';
|
|
29
40
|
//# sourceMappingURL=index.js.map
|
|
@@ -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;
|
|
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"}
|
|
@@ -23,6 +23,15 @@ export interface ContextRefV1 {
|
|
|
23
23
|
/** Display-only label; not authoritative, not verified. */
|
|
24
24
|
label?: string;
|
|
25
25
|
}
|
|
26
|
+
/** contextRef kind pointing at a coordination Endeavor (spec 334 §9): messages
|
|
27
|
+
* ABOUT an Endeavor carry it; UIs render an endeavor chip deep-linking to the
|
|
28
|
+
* Endeavor detail. Ref id = `<managingPrincipalSA>/<endeavorId>` (same
|
|
29
|
+
* `<owner>/<id>` shape as the discussion-topic chip). A POINTER only — never
|
|
30
|
+
* authority, never a coordination record; finer scopes ('endeavor-step',
|
|
31
|
+
* 'endeavor-decision', 'endeavor-artifact') stay app-defined kinds. */
|
|
32
|
+
export declare const ENDEAVOR_CONTEXT_KIND: "endeavor";
|
|
33
|
+
/** Build the endeavor contextRef: id = `<managingPrincipalSA>/<endeavorId>`. */
|
|
34
|
+
export declare function endeavorContextRef(managingPrincipal: string, endeavorId: string, label?: string): ContextRefV1;
|
|
26
35
|
export interface MessageAttachmentRef {
|
|
27
36
|
ref: VaultRef;
|
|
28
37
|
hash: Hex32;
|
|
@@ -62,6 +71,14 @@ export interface MessageEnvelopeV1 {
|
|
|
62
71
|
attachments?: MessageAttachmentRef[];
|
|
63
72
|
/** String ref into an `interactions` case (no import back-edge). */
|
|
64
73
|
interactionId?: string;
|
|
74
|
+
/** spec 324 §9 acting-agent provenance (spec 328): WHO performed the authoring move when it was
|
|
75
|
+
* not a human session — for a person-assistant auto-reply, the author's OWN SA (CAIP-10).
|
|
76
|
+
* Absent ⇒ human-authored. Unlike the board-entry `actor` (spec 327), this rides the WIRE:
|
|
77
|
+
* the inbox stores envelopes directly and the marker must reach the COUNTERPARTY's store for
|
|
78
|
+
* loop prevention (an assistant never answers an agent-authored message). Display + loop
|
|
79
|
+
* metadata only — NEVER authority (ADR-0041); a sender-claimed `actor` only suppresses
|
|
80
|
+
* auto-replies to that sender and chips their message as agent-sent. */
|
|
81
|
+
actor?: CanonicalAgentId;
|
|
65
82
|
/** Entities this message is ABOUT (spec 312) — covered by the envelope hash,
|
|
66
83
|
* so refs are signed with the message. Bounded (≤ 8, enforced). */
|
|
67
84
|
contextRefs?: ContextRefV1[];
|
|
@@ -148,6 +165,11 @@ export interface DiscussionTopicV1 {
|
|
|
148
165
|
createdByAgent: CanonicalAgentId;
|
|
149
166
|
createdAt: string;
|
|
150
167
|
status: 'open' | 'closed' | 'archived';
|
|
168
|
+
/** apmsg:participationPolicy — who may dialog. `open` (default; absent ⇒ open): every org MEMBER is
|
|
169
|
+
* automatically a PARTICIPANT, derived from OrganizationMembership at read time — never stored per
|
|
170
|
+
* topic. `restricted`: invite-only — participation is asserted via DiscussionInvitation → acceptance →
|
|
171
|
+
* DiscussionParticipation carrying a discussion-scoped RoleAssignment. Orthogonal to `status` (lifecycle). */
|
|
172
|
+
participationPolicy?: 'open' | 'restricted';
|
|
151
173
|
pinned?: boolean;
|
|
152
174
|
hidden?: boolean;
|
|
153
175
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/messaging/types.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACxF,OAAO,KAAK,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG9E,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;AAEtC,MAAM,MAAM,SAAS,GAAG,OAAO,MAAM,EAAE,CAAC;AACxC,MAAM,MAAM,cAAc,GAAG,QAAQ,MAAM,EAAE,CAAC;AAC9C,MAAM,MAAM,QAAQ,GAAG,OAAO,MAAM,EAAE,CAAC;AAEvC,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;AAElG,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEnE,MAAM,MAAM,WAAW,GACnB,OAAO,GACP,SAAS,GACT,UAAU,GACV,qBAAqB,GACrB,SAAS,GACT,QAAQ,GACR,WAAW,CAAC;AAEhB;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,qFAAqF;IACrF,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,EAAE,EAAE,MAAM,CAAC;IACX,2EAA2E;IAC3E,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,QAAQ,CAAC;IACd,IAAI,EAAE,KAAK,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wFAAwF;AACxF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,eAAe,CAAC;IACzB,EAAE,EAAE,SAAS,CAAC;IACd,cAAc,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,gBAAgB,CAAC;IACvB,EAAE,EAAE,gBAAgB,EAAE,CAAC;IACvB,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACxB,gGAAgG;IAChG,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,mBAAmB,CAAC;IACpC,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,KAAK,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACrC,oEAAoE;IACpE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;wEACoE;IACpE,WAAW,CAAC,EAAE,YAAY,EAAE,CAAC;IAC7B,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B;AAED,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,MAAM,GACN,UAAU,GACV,WAAW,GACX,MAAM,GACN,MAAM,GACN,UAAU,GACV,SAAS,GACT,UAAU,GACV,YAAY,GACZ,QAAQ,CAAC;AAEb,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,qBAAqB,CAAC;IAC/B,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,gBAAgB,CAAC;IACxB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B;AAED,yEAAyE;AACzE,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,SAAS,CAAC;IACrB,cAAc,EAAE,cAAc,CAAC;IAC/B,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB;gEAC4D;IAC5D,WAAW,EAAE,YAAY,EAAE,CAAC;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,eAAe,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;GAMG;AACH;0GAC0G;AAC1G,MAAM,MAAM,mBAAmB,GAC3B,QAAQ,GAAG,OAAO,GAAG,YAAY,GAAG,WAAW,GAAG,OAAO,GAAG,cAAc,GAAG,SAAS,CAAC;AAE3F,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,EAAE,EAAE,cAAc,CAAC;IACnB,uDAAuD;IACvD,KAAK,EAAE,gBAAgB,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,iDAAiD;IACjD,WAAW,CAAC,EAAE,YAAY,EAAE,CAAC;IAC7B;8EAC0E;IAC1E,iBAAiB,EAAE,OAAO,GAAG,eAAe,GAAG,iBAAiB,CAAC;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,8FAA8F;IAC9F,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,qGAAqG;IACrG,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,mBAAmB,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,cAAc,CAAC;IAC/D,gHAAgH;IAChH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,wBAAwB,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,cAAc,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,gBAAgB,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,sGAAsG;AACtG,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,sBAAsB,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,cAAc,CAAC;IAC/B,4GAA4G;IAC5G,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;CACxC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/messaging/types.ts"],"names":[],"mappings":"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"}
|
package/dist/messaging/types.js
CHANGED
|
@@ -3,5 +3,19 @@
|
|
|
3
3
|
// A message CARRIES a request / evidence / credential reference; a message is
|
|
4
4
|
// NEVER authority (spec 309 §4.2). Bodies live in the vault — the envelope and
|
|
5
5
|
// inbox state carry hashes + refs only (spec 309 §4.3).
|
|
6
|
-
|
|
6
|
+
/** contextRef kind pointing at a coordination Endeavor (spec 334 §9): messages
|
|
7
|
+
* ABOUT an Endeavor carry it; UIs render an endeavor chip deep-linking to the
|
|
8
|
+
* Endeavor detail. Ref id = `<managingPrincipalSA>/<endeavorId>` (same
|
|
9
|
+
* `<owner>/<id>` shape as the discussion-topic chip). A POINTER only — never
|
|
10
|
+
* authority, never a coordination record; finer scopes ('endeavor-step',
|
|
11
|
+
* 'endeavor-decision', 'endeavor-artifact') stay app-defined kinds. */
|
|
12
|
+
export const ENDEAVOR_CONTEXT_KIND = 'endeavor';
|
|
13
|
+
/** Build the endeavor contextRef: id = `<managingPrincipalSA>/<endeavorId>`. */
|
|
14
|
+
export function endeavorContextRef(managingPrincipal, endeavorId, label) {
|
|
15
|
+
return {
|
|
16
|
+
kind: ENDEAVOR_CONTEXT_KIND,
|
|
17
|
+
id: `${managingPrincipal.toLowerCase()}/${endeavorId}`,
|
|
18
|
+
...(label !== undefined ? { label } : {}),
|
|
19
|
+
};
|
|
20
|
+
}
|
|
7
21
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/messaging/types.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,EAAE;AACF,8EAA8E;AAC9E,+EAA+E;AAC/E,wDAAwD"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/messaging/types.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,EAAE;AACF,8EAA8E;AAC9E,+EAA+E;AAC/E,wDAAwD;AA0CxD;;;;;wEAKwE;AACxE,MAAM,CAAC,MAAM,qBAAqB,GAAG,UAAmB,CAAC;AAEzD,gFAAgF;AAChF,MAAM,UAAU,kBAAkB,CAChC,iBAAyB,EACzB,UAAkB,EAClB,KAAc;IAEd,OAAO;QACL,IAAI,EAAE,qBAAqB;QAC3B,EAAE,EAAE,GAAG,iBAAiB,CAAC,WAAW,EAAE,IAAI,UAAU,EAAE;QACtD,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC;AACJ,CAAC"}
|