@agenticprimitives/orchestration 0.0.0-alpha.5 → 0.0.0-alpha.7

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 (81) hide show
  1. package/dist/admission.d.ts +50 -4
  2. package/dist/admission.d.ts.map +1 -1
  3. package/dist/admission.js +137 -7
  4. package/dist/admission.js.map +1 -1
  5. package/dist/answer-quality.d.ts +80 -0
  6. package/dist/answer-quality.d.ts.map +1 -0
  7. package/dist/answer-quality.js +97 -0
  8. package/dist/answer-quality.js.map +1 -0
  9. package/dist/authority.d.ts +31 -0
  10. package/dist/authority.d.ts.map +1 -1
  11. package/dist/conformance.d.ts +66 -0
  12. package/dist/conformance.d.ts.map +1 -0
  13. package/dist/conformance.js +140 -0
  14. package/dist/conformance.js.map +1 -0
  15. package/dist/derivation.d.ts +21 -0
  16. package/dist/derivation.d.ts.map +1 -0
  17. package/dist/derivation.js +31 -0
  18. package/dist/derivation.js.map +1 -0
  19. package/dist/export-port.d.ts +13 -0
  20. package/dist/export-port.d.ts.map +1 -0
  21. package/dist/export-port.js +2 -0
  22. package/dist/export-port.js.map +1 -0
  23. package/dist/index.d.ts +19 -6
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +23 -4
  26. package/dist/index.js.map +1 -1
  27. package/dist/intent.d.ts +37 -0
  28. package/dist/intent.d.ts.map +1 -0
  29. package/dist/intent.js +46 -0
  30. package/dist/intent.js.map +1 -0
  31. package/dist/judgment.d.ts +131 -0
  32. package/dist/judgment.d.ts.map +1 -0
  33. package/dist/judgment.js +249 -0
  34. package/dist/judgment.js.map +1 -0
  35. package/dist/loop.d.ts +44 -7
  36. package/dist/loop.d.ts.map +1 -1
  37. package/dist/loop.js +268 -60
  38. package/dist/loop.js.map +1 -1
  39. package/dist/metrics.js +8 -8
  40. package/dist/metrics.js.map +1 -1
  41. package/dist/outcome.d.ts +223 -0
  42. package/dist/outcome.d.ts.map +1 -0
  43. package/dist/outcome.js +325 -0
  44. package/dist/outcome.js.map +1 -0
  45. package/dist/planner.d.ts +18 -0
  46. package/dist/planner.d.ts.map +1 -1
  47. package/dist/planner.js +74 -0
  48. package/dist/planner.js.map +1 -1
  49. package/dist/reconcile.d.ts +41 -0
  50. package/dist/reconcile.d.ts.map +1 -0
  51. package/dist/reconcile.js +20 -0
  52. package/dist/reconcile.js.map +1 -0
  53. package/dist/record.d.ts +76 -21
  54. package/dist/record.d.ts.map +1 -1
  55. package/dist/record.js +22 -1
  56. package/dist/record.js.map +1 -1
  57. package/dist/regression.d.ts +109 -0
  58. package/dist/regression.d.ts.map +1 -0
  59. package/dist/regression.js +97 -0
  60. package/dist/regression.js.map +1 -0
  61. package/dist/selection.d.ts +334 -0
  62. package/dist/selection.d.ts.map +1 -0
  63. package/dist/selection.js +481 -0
  64. package/dist/selection.js.map +1 -0
  65. package/dist/spans.d.ts +62 -0
  66. package/dist/spans.d.ts.map +1 -1
  67. package/dist/spans.js +78 -11
  68. package/dist/spans.js.map +1 -1
  69. package/dist/tool-invoker.d.ts +46 -3
  70. package/dist/tool-invoker.d.ts.map +1 -1
  71. package/dist/tool-invoker.js +26 -1
  72. package/dist/tool-invoker.js.map +1 -1
  73. package/dist/trace-facts.d.ts +84 -0
  74. package/dist/trace-facts.d.ts.map +1 -0
  75. package/dist/trace-facts.js +82 -0
  76. package/dist/trace-facts.js.map +1 -0
  77. package/dist/types.d.ts +70 -1
  78. package/dist/types.d.ts.map +1 -1
  79. package/dist/types.js +4 -0
  80. package/dist/types.js.map +1 -1
  81. package/package.json +2 -2
package/dist/record.d.ts CHANGED
@@ -4,6 +4,7 @@ import { type RunIntentOpts } from './loop.js';
4
4
  import type { ToolInvoker } from './tool-invoker.js';
5
5
  import type { TraceContextV1 } from './trace-context.js';
6
6
  import type { OffloadReport } from './artifacts.js';
7
+ import type { HarnessEngagementV1, ModelCallV1, RunDoorV1, StartingStateRefV1, VariantV1 } from './trace-facts.js';
7
8
  export interface RunRecordV1 {
8
9
  type: 'ap.run-record.v1';
9
10
  runRef: string;
@@ -37,15 +38,15 @@ export interface RunRecordV1 {
37
38
  * trace (its id, parented to the caller's span) instead of deriving one. Correlation, never trust: no
38
39
  * gate reads it, and a forged one changes no verdict (the authority twin). */
39
40
  traceContext?: TraceContextV1;
40
- /** Spec 390 W3 — WHO PROPOSED THE PLAN AND WHO COMPOSED THE REPLY, as names and numbers only: the planner
41
- * kind (a screen, a compiled shape, a model), the model and provider, and the route's reasons (spec 388 —
42
- * provider names and token counts, never words). Read by the span projection for the `plan` and
43
- * `issue_outcome` spans; consulted by no verifier. */
44
- planner?: RunPlannerSummaryV1;
45
41
  /** Spec 390 W3 — when the REQUEST arrived (ms), before the loop started: the gap to `RunStarted` is the
46
42
  * admission and preparation the record itself does not itemise (the session, the standing, the playbook),
47
43
  * shown as one `receive_request` span rather than hidden. */
48
44
  receivedAt?: number;
45
+ /** Spec 390 W3 — the preparation and the wrap-up ITEMISED: what the runtime awaited before `RunStarted` (the
46
+ * session, the budget, the playbook, the standing) and after `RunCompleted` (the reply, the offload), each as a
47
+ * name and a window (ms). Projected as child spans of `receive_request` / `issue_outcome` so a slow turn says
48
+ * WHICH read was slow; never read by a gate. Names are stage words, never a record's content. */
49
+ marks?: RunMarkV1[];
49
50
  /** Spec 391 — which steps' results were offloaded to the acting agent's vault (and which write was refused). */
50
51
  offloaded?: OffloadReport[];
51
52
  /** Spec 398 §5.3 — CANCELED by the person who could resume it: the run stops; what already happened stands
@@ -61,22 +62,41 @@ export interface RunRecordV1 {
61
62
  /** Spec 396 W3 — what the run COST its agent's storage: vault calls and serving-plane (DO) requests, by the step
62
63
  * that made them (`plan` for the planner's reads). Numbers only; exported as the `ap.vault.calls` metric. */
63
64
  bill?: RunBillV1;
65
+ /** Spec 414 A1 — HOW THE RUN ARRIVED: the door kind and, for an A2A message, its message / context / task ids. */
66
+ door?: RunDoorV1;
67
+ /** Spec 414 A1 — every language-model call the run made (plan, compose, structured), as names and numbers. */
68
+ modelCalls?: ModelCallV1[];
69
+ /** Spec 414 A1 — the configuration the run ran under; its digest is what a comparison groups by. */
70
+ variant?: VariantV1;
71
+ /** Spec 414 A1 — the seeded records the run began from (a comparison's fixture), by digest. */
72
+ startingState?: StartingStateRefV1;
73
+ /** Spec 414 §3.2 — harness capabilities engaged that leave no other fact on the record (a standing instruction
74
+ * applied, a confirmation reused …). What the record already shows is derived by `engagementsOf`. */
75
+ engaged?: HarnessEngagementV1[];
76
+ /** Spec 417 §5 — HOW THE TURN WENT, kept past the reply: where its time went (stage → ms, the wall phases
77
+ * included), how the skill was chosen (the arm, the choice or hold, the chain, the judge), and the turn it belongs to.
78
+ * Numbers and ids only — never a prompt, never an answer. Read by the inspector, the ops index and the Lab. */
79
+ operational?: RunOperationalV1;
64
80
  }
65
- /** Spec 390 W3 — the run's model calls, summarised for the trace. Vendor-neutral: strings the app supplies. */
66
- export interface RunPlannerSummaryV1 {
67
- kind: string;
68
- model?: string;
69
- provider?: string;
70
- route?: {
71
- policy?: string;
72
- planner?: {
73
- provider: string | null;
74
- because: string;
75
- };
76
- composer?: {
77
- provider: string | null;
78
- because: string;
79
- };
81
+ export interface RunOperationalV1 {
82
+ stages?: Record<string, number>;
83
+ selectionMs?: number;
84
+ selection?: {
85
+ approach: string;
86
+ chose: string | null;
87
+ hold?: string;
88
+ chain?: string[];
89
+ missing?: string[];
90
+ judge?: string;
91
+ confidence?: number;
92
+ };
93
+ skillStage?: string;
94
+ /** 2026-10-02 (`plan/chain-proceed`) — a chain's terminal step ran under the proceed-anyway instruction. */
95
+ chainProceed?: boolean;
96
+ /** The conversation this turn belongs to (the A2A context id, else the Home thread) and the turn's place in it. */
97
+ turn?: {
98
+ contextId?: string;
99
+ recalledTurns?: number;
80
100
  };
81
101
  }
82
102
  /** Spec 381 — the exporter's report, kept on the record. */
@@ -108,6 +128,22 @@ export interface RunExportReportV1 {
108
128
  } | {
109
129
  error: string;
110
130
  };
131
+ /** Spec 410 §4.4 — the anchor CITATION beside the bundle in the same vault (`run.anchor:<runRef>`): which chain-
132
+ * qualified registry holds the digest and which estate the run was performed in, so a Home in another estate
133
+ * knows where to look. Written only after a successful anchor; absent when nothing was anchored. */
134
+ anchorRecord?: {
135
+ written: boolean;
136
+ recordType: string;
137
+ error?: string;
138
+ };
139
+ /** Spec 414 A2 — the run's measurements (`run.measures:<runRef>`) beside its provenance: how many numbers, and
140
+ * whether the acting agent's store took them (a grant signed before the scope existed refuses — said, not hidden). */
141
+ measures?: {
142
+ written: boolean;
143
+ recordType: string;
144
+ count: number;
145
+ error?: string;
146
+ };
111
147
  }
112
148
  /** Build the record of a finished (or stopped) run. */
113
149
  /** Spec 396 W3 — the run's bill: vault calls and DO requests, by step. */
@@ -123,6 +159,19 @@ export interface RunBillV1 {
123
159
  /** DO requests by op (an op id, never a payload) — which serving-plane calls a turn makes, and how often. */
124
160
  byOp?: Record<string, number>;
125
161
  }
162
+ /** One timed window of the runtime's own work around the loop (spec 390 W3): a stage name and when it ran. */
163
+ export interface RunMarkV1 {
164
+ name: string;
165
+ startMs: number;
166
+ endMs: number;
167
+ }
168
+ /** Collects `RunMarkV1`s: `time(name, fn)` records the window `fn` took. Overlapping windows are fine (parallel
169
+ * reads each get their own mark). */
170
+ export interface RunMarks {
171
+ readonly list: RunMarkV1[];
172
+ time<T>(name: string, fn: () => Promise<T>): Promise<T>;
173
+ }
174
+ export declare function runMarks(now?: () => number): RunMarks;
126
175
  export declare function recordOf(input: {
127
176
  runRef: string;
128
177
  intent: Intent;
@@ -131,10 +180,16 @@ export declare function recordOf(input: {
131
180
  presented?: readonly MandatePresentation[];
132
181
  now?: number;
133
182
  traceContext?: TraceContextV1 | null;
134
- planner?: RunPlannerSummaryV1 | null;
135
183
  receivedAt?: number;
184
+ marks?: readonly RunMarkV1[];
136
185
  offloaded?: OffloadReport[];
137
186
  bill?: RunBillV1 | null;
187
+ door?: RunDoorV1 | null;
188
+ modelCalls?: readonly ModelCallV1[];
189
+ variant?: VariantV1 | null;
190
+ startingState?: StartingStateRefV1 | null;
191
+ engaged?: readonly HarnessEngagementV1[];
192
+ operational?: RunOperationalV1 | null;
138
193
  }): RunRecordV1;
139
194
  /**
140
195
  * Spec 408 §2.4 (R917-P-4) — THE RESUME INPUT, FROM THE RECORD. A caller resumes from the stored
@@ -1 +1 @@
1
- {"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../src/record.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../src/record.ts"],"names":[],"mappings":"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"}
package/dist/record.js CHANGED
@@ -1,4 +1,19 @@
1
1
  import { runIntent } from './loop.js';
2
+ export function runMarks(now = Date.now) {
3
+ const list = [];
4
+ return {
5
+ list,
6
+ async time(name, fn) {
7
+ const startMs = now();
8
+ try {
9
+ return await fn();
10
+ }
11
+ finally {
12
+ list.push({ name, startMs, endMs: now() });
13
+ }
14
+ },
15
+ };
16
+ }
2
17
  export function recordOf(input) {
3
18
  const stepRefOf = (o, i) => o.stepRef ?? o.step.id ?? `s${i}`;
4
19
  return {
@@ -16,11 +31,17 @@ export function recordOf(input) {
16
31
  events: [...input.events],
17
32
  outcome: input.result.outcome,
18
33
  ...(input.traceContext ? { traceContext: input.traceContext } : {}),
19
- ...(input.planner ? { planner: input.planner } : {}),
20
34
  ...(typeof input.receivedAt === 'number' && input.receivedAt > 0 ? { receivedAt: input.receivedAt } : {}),
35
+ ...(input.marks?.length ? { marks: [...input.marks] } : {}),
21
36
  ...(input.offloaded?.length ? { offloaded: input.offloaded } : {}),
22
37
  ...(input.bill ? { bill: input.bill } : {}),
23
38
  ...(input.presented?.length ? { presented: [...input.presented] } : {}),
39
+ ...(input.door ? { door: input.door } : {}),
40
+ ...(input.modelCalls?.length ? { modelCalls: [...input.modelCalls] } : {}),
41
+ ...(input.variant ? { variant: input.variant } : {}),
42
+ ...(input.startingState ? { startingState: input.startingState } : {}),
43
+ ...(input.operational ? { operational: input.operational } : {}),
44
+ ...(input.engaged?.length ? { engaged: [...input.engaged] } : {}),
24
45
  };
25
46
  }
26
47
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"record.js","sourceRoot":"","sources":["../src/record.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"record.js","sourceRoot":"","sources":["../src/record.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ import type { Plan } from './types.js';
2
+ export type StandingRelation = 'self' | 'steward' | 'member' | 'none';
3
+ export interface TransitionLike {
4
+ capability: string;
5
+ establishes: {
6
+ situation: string;
7
+ roles: Readonly<Record<string, string>>;
8
+ outcomeClass: 'submission' | 'authoritative';
9
+ };
10
+ requires: ReadonlyArray<{
11
+ situation: string;
12
+ of: string;
13
+ in?: string;
14
+ absent?: true;
15
+ readBy: string;
16
+ } | {
17
+ standing: 'self' | 'steward' | 'member';
18
+ at: string;
19
+ }>;
20
+ authority: string;
21
+ }
22
+ /** What the harness KNOWS this turn: situations read from the record (by class, with the parties they bind), and the asker's
23
+ * standing at each agent. A situation not listed is UNKNOWN (not absent) unless `known` names its class as fully read. */
24
+ export interface FactsV1 {
25
+ situations: ReadonlyArray<{
26
+ situation: string;
27
+ of: string;
28
+ in?: string; /** Other words the party answers to (a name, a label) — a plan names words, not addresses, before resolution. */
29
+ aliases?: readonly string[];
30
+ }>;
31
+ /** Situation classes whose full extent (for the parties concerned) was read this turn — absence is then a fact. */
32
+ known: ReadonlySet<string>;
33
+ standing: (agent: string) => StandingRelation | undefined;
34
+ /** The agent being asked (the room), for `at: 'room'`. */
35
+ room: string;
36
+ /** Words that MEAN the room in a plan's arguments before resolution ("us", the room's name or label). */
37
+ isRoom?: (value: string) => boolean;
38
+ /** At an organization, a context/acting argument the planner left EMPTY means the room (the read tools take it so;
39
+ * `subjectNamedInAsk` exempts it so). Never at a person's own agent, where empty is a question. */
40
+ emptyMeansRoom?: boolean;
41
+ }
42
+ export type PreconditionVerdictV1 = {
43
+ kind: 'holds';
44
+ because: string;
45
+ } | {
46
+ kind: 'unknown';
47
+ readBy: string;
48
+ because: string;
49
+ } | {
50
+ kind: 'violated';
51
+ because: string;
52
+ } | {
53
+ kind: 'unauthorizable';
54
+ needs: 'self' | 'steward' | 'member';
55
+ at: string;
56
+ has: StandingRelation | undefined;
57
+ because: string;
58
+ };
59
+ export interface StepCheckV1 {
60
+ index: number;
61
+ toolId: string;
62
+ verdicts: PreconditionVerdictV1[];
63
+ }
64
+ /** Every precondition of every step that has a transition, judged against the facts. */
65
+ export declare function checkPlan(plan: Plan, transitions: ReadonlyArray<TransitionLike>, facts: FactsV1): StepCheckV1[];
66
+ export interface CompletionV1 {
67
+ plan: Plan;
68
+ /** Reads inserted before the step whose precondition they settle. */
69
+ inserted: Array<{
70
+ before: number;
71
+ toolId: string;
72
+ because: string;
73
+ }>;
74
+ /** Steps that cannot be authorized by this asker — the plan is not to run; these are the words. */
75
+ gaps: Array<{
76
+ index: number;
77
+ toolId: string;
78
+ because: string;
79
+ needs: 'self' | 'steward' | 'member';
80
+ at: string;
81
+ }>;
82
+ /** Steps whose precondition the facts contradict (inviting a member). */
83
+ violations: Array<{
84
+ index: number;
85
+ toolId: string;
86
+ because: string;
87
+ }>;
88
+ /** A submission's outcome is somebody else's to bring about — said on the reply, never claimed. */
89
+ submissions: Array<{
90
+ index: number;
91
+ toolId: string;
92
+ establishes: string;
93
+ }>;
94
+ }
95
+ /** Complete a plan against the facts: insert the reads that settle unknown situation preconditions (each once, before the
96
+ * first step that needs it), and name the gaps and violations. Never invents a party or an amount. */
97
+ export declare function completePlan(plan: Plan, transitions: ReadonlyArray<TransitionLike>, facts: FactsV1): CompletionV1;
98
+ /** Spec 420 §2 — the admission rule: a step whose transition the facts CONTRADICT (inviting a member) or whose standing the
99
+ * asker LACKS is refused by name before any signature is asked for. Unknowns pass here — `completePlan` plans their read. */
100
+ export declare function transitionsHold(transitions: ReadonlyArray<TransitionLike>, facts: () => FactsV1): (input: {
101
+ plan: Plan;
102
+ }) => Array<{
103
+ code: 'REQUIRED_ROLE_UNRESOLVED' | 'OUTCOME_NOT_ESTABLISHED';
104
+ recovery: 'refuse';
105
+ stepIndex: number;
106
+ toolId: string;
107
+ message: string;
108
+ }>;
109
+ //# sourceMappingURL=regression.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regression.d.ts","sourceRoot":"","sources":["../src/regression.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ const ORDER = { none: 0, member: 1, steward: 2, self: 3 };
2
+ const satisfies = (has, needs) => {
3
+ if (!has)
4
+ return false;
5
+ if (needs === 'self')
6
+ return has === 'self';
7
+ return ORDER[has] >= ORDER[needs];
8
+ };
9
+ const party = (step, arg, facts) => {
10
+ if (arg === 'room')
11
+ return facts.room.toLowerCase();
12
+ const v = step.args[arg];
13
+ if (typeof v !== 'string' || !v.trim())
14
+ return facts.emptyMeansRoom && arg !== 'invitee' && arg !== 'recipient' && arg !== 'payee' && arg !== 'member' ? facts.room.toLowerCase() : undefined;
15
+ const w = v.trim().toLowerCase();
16
+ return facts.isRoom?.(w) || w === facts.room.toLowerCase() ? facts.room.toLowerCase() : w;
17
+ };
18
+ const sameParty = (fact, value) => fact.of.toLowerCase() === value || (fact.aliases ?? []).some((a) => { const w = a.toLowerCase(); return w === value || w.split('.')[0] === value || w.split(/\s+/)[0] === value; });
19
+ /** Every precondition of every step that has a transition, judged against the facts. */
20
+ export function checkPlan(plan, transitions, facts) {
21
+ const byCap = new Map(transitions.map((t) => [t.capability, t]));
22
+ return plan.steps.flatMap((step, index) => {
23
+ const t = byCap.get(step.toolId);
24
+ if (!t)
25
+ return [];
26
+ const verdicts = t.requires.map((pre) => {
27
+ if ('standing' in pre) {
28
+ const at = party(step, pre.at, facts);
29
+ if (!at)
30
+ return { kind: 'unknown', readBy: '', because: `${pre.at} is not yet resolved` };
31
+ const has = facts.standing(at);
32
+ if (has === undefined)
33
+ return { kind: 'unknown', readBy: 'standing', because: `the asker's standing at ${at} is not yet known` };
34
+ return satisfies(has, pre.standing)
35
+ ? { kind: 'holds', because: `the asker is ${has === 'self' ? 'this agent' : `a ${has}`} at ${at}` }
36
+ : { kind: 'unauthorizable', needs: pre.standing, at, has, because: `${step.toolId} needs a ${pre.standing} at ${at}; the asker ${has === 'none' ? 'has no standing there' : `is a ${has} there`}` };
37
+ }
38
+ const of = party(step, pre.of, facts);
39
+ const inn = pre.in ? party(step, pre.in, facts) : undefined;
40
+ if (!of || (pre.in && !inn))
41
+ return { kind: 'unknown', readBy: pre.readBy, because: `${pre.of}${pre.in ? `/${pre.in}` : ''} is not yet resolved` };
42
+ const matches = facts.situations.filter((s) => s.situation === pre.situation && sameParty(s, of) && (!pre.in || (s.in ?? '').toLowerCase() === inn));
43
+ // A WORD can answer to several parties before resolution ("bob" among two Bobs): that is a question for the resolver,
44
+ // not a fact for the plan — unknown, never a verdict either way.
45
+ if (matches.length > 1)
46
+ return { kind: 'unknown', readBy: '', because: `several answer to "${of}" — which is a question, not a fact` };
47
+ const present = matches.length === 1;
48
+ if (present)
49
+ return pre.absent ? { kind: 'violated', because: `${of} already holds ${label(pre.situation)}${inn ? ` in ${inn}` : ''}` } : { kind: 'holds', because: `${of} holds ${label(pre.situation)}` };
50
+ if (!facts.known.has(pre.situation))
51
+ return { kind: 'unknown', readBy: pre.readBy, because: `whether ${of} holds ${label(pre.situation)}${inn ? ` in ${inn}` : ''} has not been read` };
52
+ return pre.absent ? { kind: 'holds', because: `${of} does not hold ${label(pre.situation)}` } : { kind: 'violated', because: `${of} does not hold ${label(pre.situation)}${inn ? ` in ${inn}` : ''}` };
53
+ });
54
+ return [{ index, toolId: step.toolId, verdicts }];
55
+ });
56
+ }
57
+ const label = (iri) => iri.split('#').pop().replace(/([a-z])([A-Z])/g, '$1 $2').toLowerCase();
58
+ /** Complete a plan against the facts: insert the reads that settle unknown situation preconditions (each once, before the
59
+ * first step that needs it), and name the gaps and violations. Never invents a party or an amount. */
60
+ export function completePlan(plan, transitions, facts) {
61
+ const checks = checkPlan(plan, transitions, facts);
62
+ const byCap = new Map(transitions.map((t) => [t.capability, t]));
63
+ const inserted = [];
64
+ const gaps = [];
65
+ const violations = [];
66
+ const seenRead = new Set();
67
+ for (const c of checks)
68
+ for (const v of c.verdicts) {
69
+ if (v.kind === 'unknown' && v.readBy && v.readBy !== 'standing' && !seenRead.has(v.readBy) && !plan.steps.some((s) => s.toolId === v.readBy)) {
70
+ seenRead.add(v.readBy);
71
+ inserted.push({ before: c.index, toolId: v.readBy, because: v.because });
72
+ }
73
+ if (v.kind === 'unauthorizable')
74
+ gaps.push({ index: c.index, toolId: c.toolId, because: v.because, needs: v.needs, at: v.at });
75
+ if (v.kind === 'violated')
76
+ violations.push({ index: c.index, toolId: c.toolId, because: v.because });
77
+ }
78
+ const submissions = plan.steps.flatMap((s, index) => { const t = byCap.get(s.toolId); return t?.establishes.outcomeClass === 'submission' ? [{ index, toolId: s.toolId, establishes: t.establishes.situation }] : []; });
79
+ const steps = [];
80
+ plan.steps.forEach((s, i) => { for (const ins of inserted.filter((x) => x.before === i))
81
+ steps.push({ toolId: ins.toolId, args: readArgsFor(ins.toolId, s) }); steps.push(s); });
82
+ return { plan: { ...plan, steps }, inserted, gaps, violations, submissions };
83
+ }
84
+ /** The read's arguments, from the act it precedes: a membership read takes the organization the invitation names. */
85
+ function readArgsFor(readTool, act) {
86
+ if (readTool === 'organization.membership.list')
87
+ return typeof act.args['org'] === 'string' ? { org: act.args['org'] } : {};
88
+ return {};
89
+ }
90
+ /** Spec 420 §2 — the admission rule: a step whose transition the facts CONTRADICT (inviting a member) or whose standing the
91
+ * asker LACKS is refused by name before any signature is asked for. Unknowns pass here — `completePlan` plans their read. */
92
+ export function transitionsHold(transitions, facts) {
93
+ return ({ plan }) => checkPlan(plan, transitions, facts()).flatMap((c) => c.verdicts.flatMap((v) => v.kind === 'unauthorizable'
94
+ ? [{ code: 'REQUIRED_ROLE_UNRESOLVED', recovery: 'refuse', stepIndex: c.index, toolId: c.toolId, message: `${v.because} — this cannot be done from here; ask a ${v.needs} of that agent.` }]
95
+ : v.kind === 'violated' ? [{ code: 'OUTCOME_NOT_ESTABLISHED', recovery: 'refuse', stepIndex: c.index, toolId: c.toolId, message: `${v.because} — ${c.toolId} would establish nothing.` }] : []));
96
+ }
97
+ //# sourceMappingURL=regression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regression.js","sourceRoot":"","sources":["../src/regression.ts"],"names":[],"mappings":"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"}