@agenticprimitives/orchestration 0.0.0-alpha.1 → 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.
Files changed (114) hide show
  1. package/README.md +2 -0
  2. package/dist/admission.d.ts +127 -0
  3. package/dist/admission.d.ts.map +1 -0
  4. package/dist/admission.js +355 -0
  5. package/dist/admission.js.map +1 -0
  6. package/dist/answer-quality.d.ts +80 -0
  7. package/dist/answer-quality.d.ts.map +1 -0
  8. package/dist/answer-quality.js +97 -0
  9. package/dist/answer-quality.js.map +1 -0
  10. package/dist/artifacts.d.ts +137 -0
  11. package/dist/artifacts.d.ts.map +1 -0
  12. package/dist/artifacts.js +232 -0
  13. package/dist/artifacts.js.map +1 -0
  14. package/dist/authority.d.ts +465 -0
  15. package/dist/authority.d.ts.map +1 -0
  16. package/dist/authority.js +2 -0
  17. package/dist/authority.js.map +1 -0
  18. package/dist/conformance.d.ts +66 -0
  19. package/dist/conformance.d.ts.map +1 -0
  20. package/dist/conformance.js +140 -0
  21. package/dist/conformance.js.map +1 -0
  22. package/dist/derivation.d.ts +21 -0
  23. package/dist/derivation.d.ts.map +1 -0
  24. package/dist/derivation.js +31 -0
  25. package/dist/derivation.js.map +1 -0
  26. package/dist/durable.d.ts +44 -0
  27. package/dist/durable.d.ts.map +1 -0
  28. package/dist/durable.js +15 -0
  29. package/dist/durable.js.map +1 -0
  30. package/dist/export-port.d.ts +13 -0
  31. package/dist/export-port.d.ts.map +1 -0
  32. package/dist/export-port.js +2 -0
  33. package/dist/export-port.js.map +1 -0
  34. package/dist/flow-trace.d.ts +105 -0
  35. package/dist/flow-trace.d.ts.map +1 -0
  36. package/dist/flow-trace.js +60 -0
  37. package/dist/flow-trace.js.map +1 -0
  38. package/dist/index.d.ts +37 -4
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +44 -3
  41. package/dist/index.js.map +1 -1
  42. package/dist/input.d.ts +165 -0
  43. package/dist/input.d.ts.map +1 -0
  44. package/dist/input.js +33 -0
  45. package/dist/input.js.map +1 -0
  46. package/dist/intent.d.ts +37 -0
  47. package/dist/intent.d.ts.map +1 -0
  48. package/dist/intent.js +46 -0
  49. package/dist/intent.js.map +1 -0
  50. package/dist/judgment.d.ts +131 -0
  51. package/dist/judgment.d.ts.map +1 -0
  52. package/dist/judgment.js +249 -0
  53. package/dist/judgment.js.map +1 -0
  54. package/dist/loop.d.ts +155 -6
  55. package/dist/loop.d.ts.map +1 -1
  56. package/dist/loop.js +905 -32
  57. package/dist/loop.js.map +1 -1
  58. package/dist/metrics.d.ts +35 -0
  59. package/dist/metrics.d.ts.map +1 -0
  60. package/dist/metrics.js +98 -0
  61. package/dist/metrics.js.map +1 -0
  62. package/dist/outcome.d.ts +223 -0
  63. package/dist/outcome.d.ts.map +1 -0
  64. package/dist/outcome.js +325 -0
  65. package/dist/outcome.js.map +1 -0
  66. package/dist/plan-digest.d.ts +6 -0
  67. package/dist/plan-digest.d.ts.map +1 -0
  68. package/dist/plan-digest.js +35 -0
  69. package/dist/plan-digest.js.map +1 -0
  70. package/dist/planner-wire.d.ts +11 -0
  71. package/dist/planner-wire.d.ts.map +1 -0
  72. package/dist/planner-wire.js +53 -0
  73. package/dist/planner-wire.js.map +1 -0
  74. package/dist/planner.d.ts +51 -0
  75. package/dist/planner.d.ts.map +1 -1
  76. package/dist/planner.js +74 -0
  77. package/dist/planner.js.map +1 -1
  78. package/dist/reconcile.d.ts +41 -0
  79. package/dist/reconcile.d.ts.map +1 -0
  80. package/dist/reconcile.js +20 -0
  81. package/dist/reconcile.js.map +1 -0
  82. package/dist/record.d.ts +238 -0
  83. package/dist/record.d.ts.map +1 -0
  84. package/dist/record.js +116 -0
  85. package/dist/record.js.map +1 -0
  86. package/dist/regression.d.ts +109 -0
  87. package/dist/regression.d.ts.map +1 -0
  88. package/dist/regression.js +97 -0
  89. package/dist/regression.js.map +1 -0
  90. package/dist/selection.d.ts +334 -0
  91. package/dist/selection.d.ts.map +1 -0
  92. package/dist/selection.js +481 -0
  93. package/dist/selection.js.map +1 -0
  94. package/dist/spans.d.ts +262 -0
  95. package/dist/spans.d.ts.map +1 -0
  96. package/dist/spans.js +589 -0
  97. package/dist/spans.js.map +1 -0
  98. package/dist/tool-invoker.d.ts +61 -3
  99. package/dist/tool-invoker.d.ts.map +1 -1
  100. package/dist/tool-invoker.js +26 -1
  101. package/dist/tool-invoker.js.map +1 -1
  102. package/dist/trace-context.d.ts +26 -0
  103. package/dist/trace-context.d.ts.map +1 -0
  104. package/dist/trace-context.js +59 -0
  105. package/dist/trace-context.js.map +1 -0
  106. package/dist/trace-facts.d.ts +84 -0
  107. package/dist/trace-facts.d.ts.map +1 -0
  108. package/dist/trace-facts.js +82 -0
  109. package/dist/trace-facts.js.map +1 -0
  110. package/dist/types.d.ts +265 -3
  111. package/dist/types.d.ts.map +1 -1
  112. package/dist/types.js +4 -0
  113. package/dist/types.js.map +1 -1
  114. package/package.json +19 -7
@@ -0,0 +1,140 @@
1
+ import { outcomeClassOf as toolOutcomeClassOf } from './admission.js';
2
+ const escapeRe = (s) => s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
3
+ /** The first figure of money in a sentence: "$2,000", "2000 usdc", "under 500", "for 1,250.50 dollars". */
4
+ function moneyIn(sentence) {
5
+ const m = sentence.match(/(?:\$|usd\s?|usdc\s?)?\s*(\d{1,3}(?:,\d{3})+|\d+)(?:\.(\d{1,2}))?\s*(?:usdc|usd|dollars?|bucks)?\b/i);
6
+ if (!m)
7
+ return null;
8
+ // A bare number with no money word or symbol counts only after a bound word ("under", "for", "within", "budget").
9
+ const raw = m[0];
10
+ const hasMoneyWord = /\$|usd|dollar|buck/i.test(raw);
11
+ const before = sentence.slice(0, m.index ?? 0);
12
+ const afterBoundWord = /\b(under|for|within|budget(?: of)?|up to|at most|no more than|max(?:imum)?(?: of)?)\s*$/i.test(before);
13
+ if (!hasMoneyWord && !afterBoundWord)
14
+ return null;
15
+ const n = Number(`${m[1].replace(/,/g, '')}${m[2] ? `.${m[2]}` : ''}`);
16
+ return Number.isFinite(n) ? n : null;
17
+ }
18
+ /** The words after a preposition, to the next clause: "at the town hall on Friday" → "the town hall". */
19
+ function afterIn(sentence, prepositions) {
20
+ for (const p of prepositions) {
21
+ const m = sentence.match(new RegExp(`\\b${escapeRe(p)}\\s+([^,.;]+?)(?=\\s+(?:on|for|with|under|by|before|after|next|this)\\b|[,.;]|$)`, 'i'));
22
+ if (m?.[1])
23
+ return m[1].trim();
24
+ }
25
+ return null;
26
+ }
27
+ /**
28
+ * Spec 410 §6 — THE ASK'S CLASSIFIER, rendered from the ontology: does this sentence name an OPEN intent of a published
29
+ * outcome class? Matched on the class's own words, whole and case-insensitive; the bounds read the way the class says
30
+ * they are read. Deterministic — the same sentence classifies the same way on every run, so the stated outcome the
31
+ * mandate digests is stable across a resume. Null for every closed intent ("pay alice 10"), which is judged by nothing
32
+ * here. A sentence that names two classes is not classified: one outcome per ask.
33
+ */
34
+ export function classifyOpenIntent(goal, classes) {
35
+ const sentence = String(goal ?? '').trim();
36
+ if (!sentence)
37
+ return null;
38
+ const hits = classes.filter((c) => (c.words ?? []).some((w) => new RegExp(`\\b${escapeRe(w)}\\b`, 'i').test(sentence)));
39
+ if (hits.length !== 1)
40
+ return null;
41
+ const c = hits[0];
42
+ const bounds = {};
43
+ for (const [key, how] of Object.entries(c.reads ?? {})) {
44
+ if (!c.bounds[key])
45
+ continue;
46
+ if (how.kind === 'money') {
47
+ const n = moneyIn(sentence);
48
+ if (n !== null)
49
+ bounds[key] = n;
50
+ }
51
+ else {
52
+ const v = afterIn(sentence, how.prepositions);
53
+ if (v)
54
+ bounds[key] = v;
55
+ }
56
+ }
57
+ return { class: c.class, ...(Object.keys(bounds).length ? { bounds } : {}) };
58
+ }
59
+ export function statedOutcomeOf(intent) {
60
+ const o = intent.constraints?.outcome;
61
+ return o && typeof o === 'object' && typeof o.class === 'string' && o.class ? { class: o.class, ...(o.bounds && typeof o.bounds === 'object' ? { bounds: o.bounds } : {}) } : null;
62
+ }
63
+ const asNumber = (v) => {
64
+ if (typeof v === 'number')
65
+ return Number.isFinite(v) ? v : null;
66
+ if (typeof v === 'string' && /^\s*-?\d+(\.\d+)?\s*$/.test(v))
67
+ return Number(v);
68
+ return null;
69
+ };
70
+ const norm = (v) => String(v ?? '').trim().toLowerCase();
71
+ /**
72
+ * The rule. `lookup` resolves an outcome class IRI to what it entails (the ontology's `outcomeClassOf`); a class
73
+ * the ontology does not publish entails NOTHING, so every consequential step under it is refused — a refusal
74
+ * that names the unknown class, never a silent pass.
75
+ */
76
+ export function outcomeConformance(lookup) {
77
+ return ({ intent, plan, tools }) => {
78
+ const stated = statedOutcomeOf(intent);
79
+ if (!stated)
80
+ return [];
81
+ const byId = new Map(tools.map((t) => [t.id, t]));
82
+ const oc = lookup(stated.class);
83
+ const violations = [];
84
+ plan.steps.forEach((step, i) => {
85
+ const tool = byId.get(step.toolId);
86
+ if (!tool || !tool.capability || toolOutcomeClassOf(tool) === 'lookup')
87
+ return; // a read entails nothing consequential
88
+ const capId = tool.capability.id;
89
+ if (!oc) {
90
+ violations.push({ code: 'OUTCOME_NOT_ENTAILED', message: `${capId} was proposed under the outcome "${stated.class}", which this substrate does not publish — an outcome nobody modelled entails nothing`, stepIndex: i, toolId: tool.id, recovery: 'refuse' });
91
+ return;
92
+ }
93
+ const ent = oc.entails.find((e) => e.capability === capId);
94
+ if (!ent) {
95
+ violations.push({ code: 'OUTCOME_NOT_ENTAILED', message: `${capId} is not something ${oc.label} entails — it was proposed anyway, and is refused before it can be offered for signature`, stepIndex: i, toolId: tool.id, recovery: 'refuse' });
96
+ return;
97
+ }
98
+ // Bounds: the argument the class says this entailment is held to, against what the intent stated.
99
+ if (ent.bound) {
100
+ const b = oc.bounds[ent.bound];
101
+ const statedValue = stated.bounds?.[ent.bound];
102
+ if (b && statedValue !== undefined) {
103
+ const actual = step.args[b.arg];
104
+ if (actual !== undefined && actual !== null && actual !== '') {
105
+ if (b.kind === 'amount') {
106
+ const have = asNumber(actual);
107
+ const limit = asNumber(statedValue);
108
+ if (have === null || limit === null || have > limit)
109
+ violations.push({ code: 'OUTCOME_BOUND_EXCEEDED', message: `${capId}: ${b.arg} ${String(actual)} exceeds the ${ent.bound} the intent stated (${String(statedValue)})`, stepIndex: i, toolId: tool.id, field: b.arg, recovery: 'refuse' });
110
+ }
111
+ else if (norm(actual) !== norm(statedValue)) {
112
+ violations.push({ code: 'OUTCOME_BOUND_EXCEEDED', message: `${capId}: ${b.arg} "${String(actual)}" is not the ${ent.bound} the intent named ("${String(statedValue)}") — a substitute is not what was asked`, stepIndex: i, toolId: tool.id, field: b.arg, recovery: 'refuse' });
113
+ }
114
+ }
115
+ }
116
+ }
117
+ // Carries: what the write's present arguments carry (the tool's declaration) must stay within the entailment.
118
+ if (ent.carries && tool.carries) {
119
+ const allowed = new Set(ent.carries.map(norm));
120
+ for (const [arg, classes] of Object.entries(tool.carries)) {
121
+ const present = step.args[arg];
122
+ if (present === undefined || present === null || present === '')
123
+ continue;
124
+ const outside = classes.filter((c) => !allowed.has(norm(c)));
125
+ if (outside.length)
126
+ violations.push({ code: 'OUTCOME_DISCLOSURE', message: `${capId}: ${arg} would carry ${outside.join(', ')}, which ${oc.label} does not entail disclosing`, stepIndex: i, toolId: tool.id, field: arg, recovery: 'refuse' });
127
+ }
128
+ }
129
+ });
130
+ return violations;
131
+ };
132
+ }
133
+ /** For a caller that wants the split the spec names: what stays offered and what was refused. */
134
+ export function conformEffects(input, lookup) {
135
+ const rule = outcomeConformance(lookup);
136
+ const refused = rule({ intent: input.intent, plan: input.plan, tools: input.tools });
137
+ const bad = new Set(refused.map((v) => v.stepIndex));
138
+ return { offered: input.plan.steps.map((_, i) => i).filter((i) => !bad.has(i)), refused };
139
+ }
140
+ //# sourceMappingURL=conformance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conformance.js","sourceRoot":"","sources":["../src/conformance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { StepObservation } from './types.js';
2
+ export interface ArgDerivationV1 {
3
+ /** The value (or its name part) is in the person's own words. */
4
+ hers: boolean;
5
+ /** Observations the value occurs in, by stepRef (and tool). */
6
+ from: Array<{
7
+ stepRef: string;
8
+ toolId: string;
9
+ untrusted: boolean;
10
+ }>;
11
+ /** The value came ONLY from untrusted content: not in her words, and every source it occurs in is untrusted. */
12
+ untrustedOnly: boolean;
13
+ }
14
+ /**
15
+ * Derivation of each STRING argument (and each string in an array argument) of one step. Arguments shorter than three
16
+ * characters, and values the run cannot have read (booleans, numbers) are not judged: they carry no party or content.
17
+ */
18
+ export declare function deriveArgs(args: Record<string, unknown>, goal: string, observations: ReadonlyArray<StepObservation>): Record<string, ArgDerivationV1>;
19
+ /** The arguments of a step that came only from untrusted content — the ones her signing card must name. */
20
+ export declare function untrustedArgs(d: Record<string, ArgDerivationV1>): string[];
21
+ //# sourceMappingURL=derivation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"derivation.d.ts","sourceRoot":"","sources":["../src/derivation.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,WAAW,eAAe;IAC9B,iEAAiE;IACjE,IAAI,EAAE,OAAO,CAAC;IACd,+DAA+D;IAC/D,IAAI,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACrE,gHAAgH;IAChH,aAAa,EAAE,OAAO,CAAC;CACxB;AAQD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAerJ;AAED,2GAA2G;AAC3G,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,MAAM,EAAE,CAE1E"}
@@ -0,0 +1,31 @@
1
+ const norm = (v) => v.toLowerCase().normalize('NFKD').replace(/[^\p{L}\p{N}.@ -]+/gu, ' ').replace(/\s+/g, ' ').trim();
2
+ /** The forms a value may appear in: itself, and for a typed name (`nathan.me`) its label (`nathan`). */
3
+ const formsOf = (v) => { const n = norm(v); const label = n.includes('.') && !n.includes(' ') ? n.split('.')[0] : ''; return [n, ...(label && label.length >= 3 ? [label] : [])]; };
4
+ const contains = (hay, needle) => needle.length >= 3 && new RegExp(`(^|[^\\p{L}\\p{N}])${needle.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}([^\\p{L}\\p{N}]|$)`, 'u').test(hay);
5
+ const isUntrusted = (r) => !!r && typeof r === 'object' && r.untrusted === true;
6
+ /**
7
+ * Derivation of each STRING argument (and each string in an array argument) of one step. Arguments shorter than three
8
+ * characters, and values the run cannot have read (booleans, numbers) are not judged: they carry no party or content.
9
+ */
10
+ export function deriveArgs(args, goal, observations) {
11
+ const said = norm(goal);
12
+ const texts = observations.filter((o) => o.ok && !o.skipped && o.result !== undefined).map((o) => ({
13
+ stepRef: o.stepRef ?? '', toolId: o.step.toolId, untrusted: isUntrusted(o.result), text: norm(typeof o.result === 'string' ? o.result : JSON.stringify(o.result)),
14
+ }));
15
+ const out = {};
16
+ for (const [k, raw] of Object.entries(args)) {
17
+ const values = (Array.isArray(raw) ? raw : [raw]).filter((v) => typeof v === 'string' && norm(v).length >= 3);
18
+ if (!values.length)
19
+ continue;
20
+ const forms = values.flatMap(formsOf);
21
+ const hers = forms.some((f) => contains(said, f));
22
+ const from = texts.filter((t) => forms.some((f) => contains(t.text, f))).map(({ stepRef, toolId, untrusted }) => ({ stepRef, toolId, untrusted }));
23
+ out[k] = { hers, from, untrustedOnly: !hers && from.length > 0 && from.every((f) => f.untrusted) };
24
+ }
25
+ return out;
26
+ }
27
+ /** The arguments of a step that came only from untrusted content — the ones her signing card must name. */
28
+ export function untrustedArgs(d) {
29
+ return Object.entries(d).filter(([, v]) => v.untrustedOnly).map(([k]) => k);
30
+ }
31
+ //# sourceMappingURL=derivation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"derivation.js","sourceRoot":"","sources":["../src/derivation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ type Hex = `0x${string}`;
2
+ /**
3
+ * A vendor-neutral view of a durable engine's step machinery. No `WorkflowStep`, no bindings, no DO
4
+ * storage APIs — a binding adapts one engine to this and nothing in Ring 0 knows which.
5
+ */
6
+ export interface DurableStepPort {
7
+ /** Persist-on-success execution of ONE WHOLE ATTEMPT. The name must be deterministic (the engine
8
+ * keys its checkpoint by it); the callback must be reconcile→verify→act, indivisible. */
9
+ attempt<T>(name: string, fn: () => Promise<T>): Promise<T>;
10
+ /** Durable suspension until a matching external event, or throw on timeout. The event carries an
11
+ * EVIDENCE REFERENCE ("relevant evidence may now be available") — never permission. */
12
+ waitForEvent<T>(name: string, opts: {
13
+ type: string;
14
+ timeoutMs: number;
15
+ }): Promise<T>;
16
+ /** Durable suspension until a wall-clock time. */
17
+ sleepUntil(name: string, at: Date): Promise<void>;
18
+ }
19
+ /**
20
+ * An authority DENIAL is not weather. Retrying a revocation as though it were an intermittent network
21
+ * error is the anti-pattern by name; a binding maps this to its engine's non-retry mechanism
22
+ * (Cloudflare `NonRetryableError`) or a terminal domain outcome. Only a NEW authorization decision —
23
+ * a fresh mandate, a discharged obligation — makes another attempt meaningful.
24
+ */
25
+ export declare class TerminalDenial extends Error {
26
+ readonly reason: 'denied' | 'revoked' | 'expired' | 'intent-mismatch';
27
+ constructor(message: string, reason?: 'denied' | 'revoked' | 'expired' | 'intent-mismatch');
28
+ }
29
+ /** ONE EXECUTOR PER RUN. The run record pins which engine advances it; the other entry path refuses.
30
+ * Never a fallback pair: "Workflows looked unavailable so the DO path started the same action" is two
31
+ * executors later advancing one operation. Migration is an explicit ownership transfer, not discovery. */
32
+ export type RunExecutor = 'client' | 'workflow';
33
+ /** What an approval event may carry: a REFERENCE to evidence the resume then verifies through the same
34
+ * ports as ever (ERC-1271, digest binding, deadline). Anything more — `{ approved: true }` — is a
35
+ * client-submitted assertion, and the resume must treat it as exactly that. */
36
+ export interface ApprovalEventV1 {
37
+ type: 'custodian-decision';
38
+ /** The approval record's digest/reference — located and VERIFIED on resume, never trusted. */
39
+ approvalRef: Hex | string;
40
+ /** Who claims to have decided. Display until verified. */
41
+ approver?: string;
42
+ }
43
+ export {};
44
+ //# sourceMappingURL=durable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"durable.d.ts","sourceRoot":"","sources":["../src/durable.ts"],"names":[],"mappings":"AAiBA,KAAK,GAAG,GAAG,KAAK,MAAM,EAAE,CAAC;AAEzB;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;8FAC0F;IAC1F,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3D;4FACwF;IACxF,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACrF,kDAAkD;IAClD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnD;AAED;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACV,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,iBAAiB;gBAAtF,OAAO,EAAE,MAAM,EAAW,MAAM,GAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,iBAA4B;CAI9G;AAED;;2GAE2G;AAC3G,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEhD;;gFAEgF;AAChF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,oBAAoB,CAAC;IAC3B,8FAA8F;IAC9F,WAAW,EAAE,GAAG,GAAG,MAAM,CAAC;IAC1B,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * An authority DENIAL is not weather. Retrying a revocation as though it were an intermittent network
3
+ * error is the anti-pattern by name; a binding maps this to its engine's non-retry mechanism
4
+ * (Cloudflare `NonRetryableError`) or a terminal domain outcome. Only a NEW authorization decision —
5
+ * a fresh mandate, a discharged obligation — makes another attempt meaningful.
6
+ */
7
+ export class TerminalDenial extends Error {
8
+ reason;
9
+ constructor(message, reason = 'denied') {
10
+ super(message);
11
+ this.reason = reason;
12
+ this.name = 'TerminalDenial';
13
+ }
14
+ }
15
+ //# sourceMappingURL=durable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"durable.js","sourceRoot":"","sources":["../src/durable.ts"],"names":[],"mappings":"AAkCA;;;;;GAKG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IACD;IAAtC,YAAY,OAAe,EAAW,SAA+D,QAAQ;QAC3G,KAAK,CAAC,OAAO,CAAC,CAAC;QADqB,WAAM,GAAN,MAAM,CAAiE;QAE3G,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ import type { SpanV1 } from './spans.js';
2
+ import type { RunMetricsV1 } from './metrics.js';
3
+ /** What one send came to. `sent: false` with no `error` = this deployment names no destination (not a failure). */
4
+ export interface TraceExportResultV1 {
5
+ sent: boolean;
6
+ error?: string;
7
+ }
8
+ export interface TraceExporterPort {
9
+ readonly binding: string;
10
+ exportTraces(spans: readonly SpanV1[]): Promise<TraceExportResultV1>;
11
+ exportMetrics(metrics: RunMetricsV1): Promise<TraceExportResultV1>;
12
+ }
13
+ //# sourceMappingURL=export-port.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export-port.d.ts","sourceRoot":"","sources":["../src/export-port.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,mHAAmH;AACnH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACrE,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACpE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=export-port.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export-port.js","sourceRoot":"","sources":["../src/export-port.ts"],"names":[],"mappings":""}
@@ -0,0 +1,105 @@
1
+ import type { RunEvent } from './authority.js';
2
+ export interface FlowStepV1 {
3
+ stepRef?: string;
4
+ toolId: string;
5
+ ok: boolean;
6
+ replayed?: boolean;
7
+ skipped?: string;
8
+ args?: Record<string, unknown>;
9
+ /** What the step returned, summarized: a catalog read's count/total/source, a refusal, an error. */
10
+ output?: Record<string, unknown>;
11
+ }
12
+ export interface FlowTraceV1 {
13
+ kind: 'ap.flow-trace.v1';
14
+ hop: 'agent';
15
+ flowId: string | null;
16
+ /** Spec 390 W2 — the W3C trace id this run's spans belong to (the caller's `traceparent`), or null when it derived its own. */
17
+ traceId?: string | null;
18
+ runRef: string;
19
+ agent: string;
20
+ asker: string;
21
+ playbook: {
22
+ archetypeId: string;
23
+ archetypeVersion: string;
24
+ digest: string;
25
+ } | null;
26
+ planner: {
27
+ kind: string;
28
+ model?: string;
29
+ toolsExposed: string[];
30
+ plan: Array<{
31
+ toolId: string;
32
+ args: Record<string, unknown>;
33
+ }>;
34
+ admission?: unknown[]; /** Spec 388 — which provider carried the planner and the composer, and why. */
35
+ route?: unknown;
36
+ } | null;
37
+ steps: FlowStepV1[];
38
+ reply: {
39
+ kind: string;
40
+ chars: number;
41
+ artifacts: string[];
42
+ };
43
+ /** Spec 387 W3 — how the caller found this agent: the registry and its receipt, as the caller said it. Evidence, never authority. */
44
+ referral?: ReferralV1;
45
+ /** Spec 387 W3 — this turn continued a parked run rather than starting one. */
46
+ continued?: boolean;
47
+ events: Array<{
48
+ type: string;
49
+ stepRef?: string;
50
+ toolId?: string;
51
+ ok?: boolean;
52
+ because?: string;
53
+ error?: string;
54
+ }>;
55
+ ms: number;
56
+ }
57
+ export interface ReferralV1 {
58
+ registry: string;
59
+ receipt?: string;
60
+ }
61
+ /** The caller's referral from the message metadata: which registry pointed it here and the receipt it cites — echoed as
62
+ * said (short strings only), verified by nobody here: how a caller found an agent grants nothing. */
63
+ export declare function referralOf(message: {
64
+ metadata?: Record<string, unknown>;
65
+ } | undefined): ReferralV1 | null;
66
+ /** The caller's flow id from the message metadata, or null — never a value we would not echo verbatim. */
67
+ export declare function flowIdOf(message: {
68
+ metadata?: Record<string, unknown>;
69
+ } | undefined): string | null;
70
+ /** A result's summary: numbers, flags and sources, never the rows (those are the `results` artifact's). */
71
+ export declare function summarizeOutput(result: unknown): Record<string, unknown> | undefined;
72
+ export declare function buildFlowTrace(input: {
73
+ flowId: string | null;
74
+ runRef: string;
75
+ agent: string;
76
+ asker: string;
77
+ startedAt: number;
78
+ reply: {
79
+ kind: string;
80
+ text?: string;
81
+ plannerTrace?: {
82
+ planner?: string;
83
+ model?: string;
84
+ toolsExposed?: string[];
85
+ plan?: Array<{
86
+ toolId: string;
87
+ args: Record<string, unknown>;
88
+ }>;
89
+ playbook?: FlowTraceV1['playbook'];
90
+ admission?: unknown[];
91
+ route?: unknown;
92
+ };
93
+ results?: Array<{
94
+ toolId: string;
95
+ result: unknown;
96
+ }>;
97
+ };
98
+ events?: RunEvent[];
99
+ artifacts: string[];
100
+ referral?: ReferralV1;
101
+ continued?: boolean;
102
+ /** Spec 390 W2 — the W3C trace id the request arrived with (the caller's), when one did. Correlation only. */
103
+ traceId?: string | null;
104
+ }): FlowTraceV1;
105
+ //# sourceMappingURL=flow-trace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-trace.d.ts","sourceRoot":"","sources":["../src/flow-trace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ const FLOW_ID = /^[A-Za-z0-9_.:-]{4,64}$/;
2
+ /** The caller's referral from the message metadata: which registry pointed it here and the receipt it cites — echoed as
3
+ * said (short strings only), verified by nobody here: how a caller found an agent grants nothing. */
4
+ export function referralOf(message) {
5
+ const r = message?.metadata?.referral;
6
+ if (!r || typeof r.registry !== 'string' || !r.registry || r.registry.length > 200)
7
+ return null;
8
+ return { registry: r.registry, ...(typeof r.receipt === 'string' && r.receipt && r.receipt.length <= 400 ? { receipt: r.receipt } : {}) };
9
+ }
10
+ /** The caller's flow id from the message metadata, or null — never a value we would not echo verbatim. */
11
+ export function flowIdOf(message) {
12
+ const v = message?.metadata?.flowId;
13
+ return typeof v === 'string' && FLOW_ID.test(v) ? v : null;
14
+ }
15
+ /** A result's summary: numbers, flags and sources, never the rows (those are the `results` artifact's). */
16
+ export function summarizeOutput(result) {
17
+ if (!result || typeof result !== 'object')
18
+ return typeof result === 'string' ? { text: result.slice(0, 200) } : undefined;
19
+ const r = result;
20
+ const out = {};
21
+ for (const k of ['count', 'total', 'found', 'error', 'refused', 'source', 'interpretation', 'filters', 'types'])
22
+ if (r[k] !== undefined)
23
+ out[k] = r[k];
24
+ for (const k of ['resources', 'topics', 'members', 'agents', 'rows', 'items'])
25
+ if (Array.isArray(r[k]))
26
+ out[`${k}Count`] = r[k].length;
27
+ if (typeof out.interpretation === 'string')
28
+ out.interpretation = out.interpretation.slice(0, 240);
29
+ return Object.keys(out).length ? out : { keys: Object.keys(r).slice(0, 12) };
30
+ }
31
+ export function buildFlowTrace(input) {
32
+ const events = input.events ?? [];
33
+ const byTool = new Map();
34
+ for (const r of input.reply.results ?? [])
35
+ byTool.set(r.toolId, r.result);
36
+ const planArgs = new Map();
37
+ for (const p of input.reply.plannerTrace?.plan ?? [])
38
+ planArgs.set(p.toolId, p.args);
39
+ const steps = [];
40
+ for (const e of events) {
41
+ if (e.type === 'ToolInvoked')
42
+ steps.push({ stepRef: e.stepRef, toolId: e.toolId, ok: e.ok, ...(planArgs.has(e.toolId) ? { args: planArgs.get(e.toolId) } : {}), ...(byTool.has(e.toolId) ? { output: summarizeOutput(byTool.get(e.toolId)) } : {}) });
43
+ else if (e.type === 'StepReplayed')
44
+ steps.push({ stepRef: e.stepRef, toolId: e.toolId, ok: true, replayed: true });
45
+ else if (e.type === 'StepSkipped')
46
+ steps.push({ stepRef: e.stepRef, toolId: e.toolId, ok: true, skipped: e.because });
47
+ }
48
+ const pt = input.reply.plannerTrace;
49
+ return {
50
+ kind: 'ap.flow-trace.v1', hop: 'agent', flowId: input.flowId, traceId: input.traceId ?? null, runRef: input.runRef, agent: input.agent, asker: input.asker,
51
+ playbook: pt?.playbook ?? null,
52
+ planner: pt ? { kind: pt.planner ?? 'unknown', ...(pt.model ? { model: pt.model } : {}), toolsExposed: pt.toolsExposed ?? [], plan: pt.plan ?? [], ...(pt.admission?.length ? { admission: pt.admission } : {}), ...(pt.route ? { route: pt.route } : {}) } : null,
53
+ steps,
54
+ reply: { kind: input.reply.kind, chars: (input.reply.text ?? '').length, artifacts: input.artifacts },
55
+ ...(input.referral ? { referral: input.referral } : {}), ...(input.continued ? { continued: true } : {}),
56
+ events: events.map((e) => ({ type: e.type, ...('stepRef' in e ? { stepRef: e.stepRef } : {}), ...('toolId' in e ? { toolId: e.toolId } : {}), ...('ok' in e ? { ok: e.ok } : {}), ...('because' in e ? { because: e.because } : {}), ...('error' in e ? { error: e.error } : {}) })),
57
+ ms: Date.now() - input.startedAt,
58
+ };
59
+ }
60
+ //# sourceMappingURL=flow-trace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-trace.js","sourceRoot":"","sources":["../src/flow-trace.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,41 @@
1
1
  export { PACKAGE_NAME, PACKAGE_STATUS, SPEC_REF, OrchestrationError } from './types.js';
2
- export type { Intent, ToolSpec, PlanStep, Plan, StepObservation, RunOutcome, RunResult, OrchestrationErrorCode, } from './types.js';
3
- export { createRuleBasedPlanner } from './planner.js';
4
- export type { Planner, PlanInput, PlanRule } from './planner.js';
2
+ export type { Intent, ToolSpec, ExecutorInvokeV1, PlanStep, Plan, StepObservation, RunOutcome, RunResult, OrchestrationErrorCode, AdapterDeclarationV1, } from './types.js';
3
+ export { createRuleBasedPlanner, renderContinuation } from './planner.js';
4
+ export { deriveArgs, untrustedArgs } from './derivation.js';
5
+ export type { ArgDerivationV1 } from './derivation.js';
6
+ export type { Planner, PlanInput, PlanRule, AnswerComposer, ComposeInput } from './planner.js';
7
+ export { wireNameFor, toolNameMap, planStepFromToolArgs } from './planner-wire.js';
8
+ export { isToolInvocationResult, observed, describeObservation, type ToolObservationV1, type ToolInvocationResultV1, type EvidenceRefV1, type ObservedOutcome } from './tool-invoker.js';
5
9
  export type { ToolInvoker, InvokeContext } from './tool-invoker.js';
6
- export { runIntent } from './loop.js';
10
+ export { runIntent, RETRIEVAL_STEP_REF, CONTINUE_STEP_ID, CONTINUE_TOOL } from './loop.js';
11
+ export { planAdmission, externalExecutorsReadOnly, instructionNeedsAct, noPlaceholders, subjectNamedInAsk, dependenciesProvided, branchesDecidable, questionAnsweredByRead, numbersFromTheWords, numbersSaid, partiesDistinct, actingPartyFromTheWords, kindNamedIsChartered, capabilitiesAvailable, outcomeClassOf, squash as squashLabel } from './admission.js';
12
+ export type { PlanAdmission, AdmissionRule, AdmissionVerdict, AdmissionViolation, AdmissionInput, AdmissionCode } from './admission.js';
13
+ export type { ExecutionBindingV1 } from './authority.js';
14
+ export type { OutcomeClass } from './types.js';
7
15
  export type { RunIntentOpts } from './loop.js';
16
+ export type { MandatePresentation, ResolvedStep, StepAuthorityRequest, Obligation, EffectSink, DecisionReason, DecisionEvidence, MandateDecision, MandateVerifier, PolicyEvaluator, ApprovalRequest, ApprovalOutcome, ApprovalPort, StepReceiptStatus, StepReceipt, ReceiptSink, RunEvent, RunEventStamp, RunEventSink, OrchestrationPorts, } from './authority.js';
17
+ export { InputRequired, isInputRequired, inputsFor, dataFor, signatureFor, receiptPending } from './input.js';
18
+ export type { InputRequestV1, InputFieldV1, InputFieldType, SuppliedInputV1, CommitmentRefV1 } from './input.js';
19
+ export { TerminalDenial, type DurableStepPort, type RunExecutor, type ApprovalEventV1 } from './durable.js';
20
+ export { recordOf, runMarks, replayingInvoker, replayRun, completedFromRecord } from './record.js';
21
+ export { planDigest, planStepAsWritten } from './plan-digest.js';
22
+ export type { RunRecordV1, RunExportReportV1, ReplayReport, ReplayVerdict, RunBillV1, RunMarkV1, RunMarks, RunOperationalV1 } from './record.js';
23
+ export { spansOf, assertFirewalled, otlpTracesOf, receiptDigest, provenanceOf, runProvenanceRecordKey, SPAN_ATTRIBUTE_ALLOWLIST, RUN_PROVENANCE_RECORD_PREFIX, provIds, traceIdOf, spanIdOf, PROV_ID_BASE, stageSpansOf, assertMetricsFirewalled } from './spans.js';
24
+ export { metricsOf, otlpMetricsOf, STEP_DURATION_BOUNDS_MS, type RunMetricsV1, type CounterPointV1, type HistogramPointV1, type MetricAttributes } from './metrics.js';
25
+ export type { TraceExporterPort, TraceExportResultV1 } from './export-port.js';
26
+ export { engagementsOf, variantDigestOf, plannerCapabilityOf, addUsage, type ModelUsageV1, type RunDoorV1, type ModelCallV1, type VariantV1, type StartingStateRefV1, type HarnessEngagementV1, type EngagementEffectV1 } from './trace-facts.js';
27
+ export type { SpanV1, RunProvenanceV1 } from './spans.js';
28
+ export { traceIdFor } from './spans.js';
29
+ export { parseTraceparent, formatTraceparent, withTracestateMember, tracestateMember, traceContextOf, type TraceContextV1 } from './trace-context.js';
30
+ export { ARTIFACT_REF_TYPE, OFFLOAD_THRESHOLD_CHARS, SUMMARY_MAX_CHARS, RUN_ARTIFACT_RECORD_PREFIX, runArtifactRecordKey, isArtifactRef, canonicalJson, summarizeResult, offloadObservations, offloadRunResult, refsReachedBy, rehydrateObservations, fitEvidence, compactObservations, resultFactsOf, RETAINED_RESULT_KEYS, type ArtifactRefV1, type RunArtifactRecordV1, type ArtifactStore, type OffloadReport, type EvidenceItemV1, type FittedEvidenceV1 } from './artifacts.js';
31
+ export { buildFlowTrace, flowIdOf, referralOf, summarizeOutput } from './flow-trace.js';
32
+ export type { FlowTraceV1, FlowStepV1, ReferralV1 } from './flow-trace.js';
33
+ export { reconcileByTool, type ReconcilePort, type ReconcileAnswer, type ReconcileRequest } from './reconcile.js';
34
+ export { outcomeConformance, conformEffects, statedOutcomeOf, type OutcomeClassView, type StatedOutcomeV1, classifyOpenIntent } from './conformance.js';
35
+ export { selectByDeclaredUtterances, tokensOf, overlap, DEFAULT_DECLARED_SELECTION, type DeclaredCandidateV1, type DeclaredSelectionV1, type DeclaredSelectionParamsV1, groundInLexicon, decideFromGrounding, selectByOntology, type DomainLexiconV1, type OntologyCandidateV1, type OntologySelectionV1, type GroundingV1, selectByJudgment, DEFAULT_JUDGMENT_SELECTION, SELECTION_JUDGE, NEEDS_CLARIFICATION, NEEDS_SEVERAL, SELECTION_JUDGE_FAST, SELECTION_JUDGE_FAST_V3, SELECTION_JUDGE_LOGPROB, selectByOntologyFirst, type OntologyFirstSelectionV1, type JudgmentContextV1, foldSelectionAbstentions, calibrateByTemperature, conformalSetOf, type ConformalAcceptanceV1, OUTSIDE_DOMAIN, type StructuredCallLike, type JudgmentCandidateV1, type JudgmentSelectionV1, type JudgmentSelectionParamsV1, type InferredIntentV1, selectByOntologyThenJudgment, type ComposedSelectionV1, proposeFromGrounding, selectByProposalThenJudgment, DEFAULT_PROPOSAL, type ProposalV1, type ProposalParamsV1, type ProposalViaV1, type ProposedSelectionV1, selectByFramedJudgment, DEFAULT_FRAMED_SELECTION, FRAMED_JUDGE, type FramedCandidateV1, type FramedSelectionV1, type FramedSelectionParamsV1 } from './selection.js';
36
+ export { judgeQuestions, judgeQuestionsAveraged, type AveragedJudgmentV1, logprobChoiceDecisionModel, type LogprobChoiceLike, applyDecisionRule, explainAnswer, answerOf, outcomesOf, shapeOf, structuredCallDecisionModel, NOT_APPLICABLE, type JudgmentQuestionV1, type JudgmentAnswerV1, type JudgmentV1, type RawDistributionsV1, type DecisionModelPort, type DecisionRuleV1, type DecisionV1 } from './judgment.js';
37
+ export { inferIntent, renderReading, skillCard, type AskerContextV1, type InferredIntentReadingV1 } from './intent.js';
38
+ export { outcomeGraphOf, consumedClassesOf, edgesOf, edgeKey, edgeByParty, upstreamInputsOf, downstreamOf, absenceStatement, planOptionsAround, choosePlanAround, PLAN_CHOICE_JUDGE, type PlanOptionV1, type PlanChoiceV1, planForPicked, OUTCOME_JUDGE_SELECTIVE, glossOf, type SelectivePlanV1, planForOutcome, selectByOutcome, outcomeSteps, OUTCOME_JUDGE, DEFAULT_OUTCOME_PARAMS, DEFAULT_OUTCOME_BOUNDS, type DataflowCandidateV1, type OutcomeGraphV1, type OutcomePlanV1, type OutcomePlanBoundsV1, type OutcomeSelectionV1, type OutcomeParamsV1, type ClassRefV1 } from './outcome.js';
39
+ export { judgeAnswerQuality, judgeOutcomeDelivered, OUTCOME_CHECK_JUDGE, type OutcomeCheckV1, type OutcomeUnitV1, ANSWER_QUALITY_JUDGE, ANSWER_QUALITY_RUBRIC, type AnswerQualityV1, judgeAnswerPreference, ANSWER_PREFERENCE_JUDGE, type AnswerPreferenceV1 } from './answer-quality.js';
40
+ export { checkPlan, completePlan, transitionsHold, type FactsV1, type TransitionLike, type CompletionV1, type StepCheckV1, type PreconditionVerdictV1 } from './regression.js';
8
41
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACxF,YAAY,EACV,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,eAAe,EACf,UAAU,EACV,SAAS,EACT,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEjE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}