@agenticprimitives/orchestration 0.0.0-alpha.2 → 0.0.0-alpha.21

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 (94) hide show
  1. package/README.md +2 -0
  2. package/dist/admission.d.ts +66 -10
  3. package/dist/admission.d.ts.map +1 -1
  4. package/dist/admission.js +203 -8
  5. package/dist/admission.js.map +1 -1
  6. package/dist/answer-quality.d.ts +129 -0
  7. package/dist/answer-quality.d.ts.map +1 -0
  8. package/dist/answer-quality.js +197 -0
  9. package/dist/answer-quality.js.map +1 -0
  10. package/dist/authority.d.ts +39 -0
  11. package/dist/authority.d.ts.map +1 -1
  12. package/dist/conformance.d.ts +66 -0
  13. package/dist/conformance.d.ts.map +1 -0
  14. package/dist/conformance.js +140 -0
  15. package/dist/conformance.js.map +1 -0
  16. package/dist/derivation.d.ts +21 -0
  17. package/dist/derivation.d.ts.map +1 -0
  18. package/dist/derivation.js +31 -0
  19. package/dist/derivation.js.map +1 -0
  20. package/dist/evidence.d.ts +77 -0
  21. package/dist/evidence.d.ts.map +1 -0
  22. package/dist/evidence.js +101 -0
  23. package/dist/evidence.js.map +1 -0
  24. package/dist/export-port.d.ts +13 -0
  25. package/dist/export-port.d.ts.map +1 -0
  26. package/dist/export-port.js +2 -0
  27. package/dist/export-port.js.map +1 -0
  28. package/dist/index.d.ts +23 -6
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +29 -4
  31. package/dist/index.js.map +1 -1
  32. package/dist/intent.d.ts +37 -0
  33. package/dist/intent.d.ts.map +1 -0
  34. package/dist/intent.js +46 -0
  35. package/dist/intent.js.map +1 -0
  36. package/dist/judgment.d.ts +131 -0
  37. package/dist/judgment.d.ts.map +1 -0
  38. package/dist/judgment.js +249 -0
  39. package/dist/judgment.js.map +1 -0
  40. package/dist/loop.d.ts +52 -7
  41. package/dist/loop.d.ts.map +1 -1
  42. package/dist/loop.js +314 -64
  43. package/dist/loop.js.map +1 -1
  44. package/dist/metrics.js +8 -8
  45. package/dist/metrics.js.map +1 -1
  46. package/dist/outcome.d.ts +223 -0
  47. package/dist/outcome.d.ts.map +1 -0
  48. package/dist/outcome.js +325 -0
  49. package/dist/outcome.js.map +1 -0
  50. package/dist/plan-digest.d.ts +6 -0
  51. package/dist/plan-digest.d.ts.map +1 -0
  52. package/dist/plan-digest.js +35 -0
  53. package/dist/plan-digest.js.map +1 -0
  54. package/dist/planner.d.ts +18 -0
  55. package/dist/planner.d.ts.map +1 -1
  56. package/dist/planner.js +74 -0
  57. package/dist/planner.js.map +1 -1
  58. package/dist/reconcile.d.ts +41 -0
  59. package/dist/reconcile.d.ts.map +1 -0
  60. package/dist/reconcile.js +20 -0
  61. package/dist/reconcile.js.map +1 -0
  62. package/dist/record.d.ts +125 -21
  63. package/dist/record.d.ts.map +1 -1
  64. package/dist/record.js +47 -1
  65. package/dist/record.js.map +1 -1
  66. package/dist/regression.d.ts +109 -0
  67. package/dist/regression.d.ts.map +1 -0
  68. package/dist/regression.js +97 -0
  69. package/dist/regression.js.map +1 -0
  70. package/dist/rollup.d.ts +72 -0
  71. package/dist/rollup.d.ts.map +1 -0
  72. package/dist/rollup.js +117 -0
  73. package/dist/rollup.js.map +1 -0
  74. package/dist/selection.d.ts +334 -0
  75. package/dist/selection.d.ts.map +1 -0
  76. package/dist/selection.js +481 -0
  77. package/dist/selection.js.map +1 -0
  78. package/dist/spans.d.ts +62 -0
  79. package/dist/spans.d.ts.map +1 -1
  80. package/dist/spans.js +78 -11
  81. package/dist/spans.js.map +1 -1
  82. package/dist/tool-invoker.d.ts +54 -3
  83. package/dist/tool-invoker.d.ts.map +1 -1
  84. package/dist/tool-invoker.js +26 -1
  85. package/dist/tool-invoker.js.map +1 -1
  86. package/dist/trace-facts.d.ts +93 -0
  87. package/dist/trace-facts.d.ts.map +1 -0
  88. package/dist/trace-facts.js +82 -0
  89. package/dist/trace-facts.js.map +1 -0
  90. package/dist/types.d.ts +86 -1
  91. package/dist/types.d.ts.map +1 -1
  92. package/dist/types.js +4 -0
  93. package/dist/types.js.map +1 -1
  94. package/package.json +17 -8
package/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # @agenticprimitives/orchestration
2
2
 
3
+ > Part of **[Agentic Primitives](https://agenticprimitives.dev)** — the open-source trust substrate for agentic applications: identity that can sign, authority checked at act time, evidence the owner carries. [Developer kit](https://github.com/agentictrustlabs/agentic-primitives) · [All packages](https://agenticprimitives.dev/developers)
4
+
3
5
  The Ring-0 **agentic orchestration core**: the intent → plan → execute → observe loop, the `Planner` and
4
6
  `ToolInvoker` ports, and a deterministic rule-based planner. A first-party app expresses a **goal**; this
5
7
  package plans which tools compose to satisfy it and runs them through an injected invoker — the web never
@@ -1,6 +1,6 @@
1
1
  import type { Intent, Plan, ToolSpec } from './types.js';
2
2
  /** Spec 367 §4 — the violation codes. Each names the field at fault and the recovery it allows. */
3
- export type AdmissionCode = 'REQUIRED_ROLE_UNRESOLVED' | 'RESOURCE_SCOPE_MISMATCH' | 'CAPABILITY_UNAVAILABLE' | 'UNSUPPORTED_BINDING_SOURCE' | 'DEPENDENCY_NOT_SATISFIED' | 'OUTCOME_NOT_ESTABLISHED' | 'BRANCH_UNDECIDABLE' | 'QUESTION_NOT_ANSWERED' | 'EXTERNAL_EXECUTOR_ACT';
3
+ export type AdmissionCode = 'REQUIRED_ROLE_UNRESOLVED' | 'RESOURCE_SCOPE_MISMATCH' | 'CAPABILITY_UNAVAILABLE' | 'UNSUPPORTED_BINDING_SOURCE' | 'DEPENDENCY_NOT_SATISFIED' | 'OUTCOME_NOT_ESTABLISHED' | 'BRANCH_UNDECIDABLE' | 'QUESTION_NOT_ANSWERED' | 'EXTERNAL_EXECUTOR_ACT' | 'OUTCOME_NOT_ENTAILED' | 'OUTCOME_BOUND_EXCEEDED' | 'OUTCOME_DISCLOSURE';
4
4
  export interface AdmissionViolation {
5
5
  code: AdmissionCode;
6
6
  /** The sentence a planner is re-planned with, and a person is refused with. */
@@ -10,7 +10,8 @@ export interface AdmissionViolation {
10
10
  /** The argument or plan field at fault, when there is one. */
11
11
  field?: string;
12
12
  /** What may fix it: re-plan the means, ask the person, resolve the binding, or refuse. */
13
- recovery: 'replan' | 'ask' | 'resolve' | 'refuse';
13
+ /** `continue` (spec 421 W1): the plan read what the act needs and stopped — the loop appends `plan.continue` itself. */
14
+ recovery: 'replan' | 'ask' | 'resolve' | 'refuse' | 'continue';
14
15
  }
15
16
  export type AdmissionVerdict = {
16
17
  admitted: true;
@@ -53,19 +54,58 @@ export declare const dependenciesProvided: AdmissionRule;
53
54
  * be decided by absence — which is a guess dressed as a condition — and an edge to a later step is a cycle.
54
55
  */
55
56
  export declare const branchesDecidable: AdmissionRule;
56
- /**
57
- * Spec 371 — THE QUESTION MUST BE ANSWERED BY THE READ THAT ANSWERS IT. A read declares the fact words a
58
- * question uses to name what it establishes (`answers`: "balance", "how much"). When the sentence names
59
- * such a fact and an exposed tool answers it, a plan without that tool is answering something else — a
60
- * survey of receipts for a balance question. The rule reads declarations only, and it says which tool.
61
- */
62
57
  export declare const questionAnsweredByRead: AdmissionRule;
63
- /** A step naming a tool this agent does not expose. The loop refuses it anyway (`unknown_tool`); as a rule it
64
- * lets an eval and a re-plan see WHICH capability was missing. */
58
+ /** A step naming a tool this agent does not expose. Without this rule the loop hard-throws `unknown_tool` and the
59
+ * run dies with a raw error and no recovery. As an admission rule it is a RE-PLAN, not a refusal: a missing
60
+ * capability is exactly what one more planning round — told which tools the agent has — can fix (the model that
61
+ * named `calendar.events.list` on a game persona recovers to a tool it offers, or to an honest "I don't have a
62
+ * calendar"). If the re-plan names an unexposed tool again, the loop's second-admission path makes it terminal
63
+ * with this same sentence. Recovery `refuse` would skip that round and is wrong here — a missing capability is
64
+ * not something no re-plan can fix. */
65
65
  export declare const capabilitiesAvailable: AdmissionRule;
66
66
  /** A PLACEHOLDER IS NOT AN ARGUMENT. "<UNKNOWN>", "TBD", "n/a" inside a step is a value the person would be
67
67
  * asked to sign over. Omit the argument and it is asked for; a placeholder is refused. */
68
68
  export declare const noPlaceholders: AdmissionRule;
69
+ /** The numbers a sentence states: digits (1,250.50 · 12.5 · $3) and the plain number words. */
70
+ export declare function numbersSaid(sentence: string): number[];
71
+ /**
72
+ * AN ACT NEVER CARRIES A NUMBER THE PERSON DID NOT SAY. "Pay nathan.treasury back for the hymnals" names no amount; the
73
+ * planner wrote 12.50, and only the balance check stopped a mandate for a sum she never said (act laboratory,
74
+ * 2026-09-28). A numeric argument of an ACT step whose value is not among the sentence's numbers is dropped — and the
75
+ * step then asks for it, as a missing argument always does. Reads are not held to this (a limit on a listing is not
76
+ * something anyone signs). Deterministic: numbers are compared by value, never by a model.
77
+ */
78
+ export declare const numbersFromTheWords: AdmissionRule;
79
+ /**
80
+ * ONE PARTY IS NOT BOTH SIDES OF AN ACT. "Pay nathan.treasury back for the hymnals" was planned with nathan.treasury as
81
+ * payee AND payer (act laboratory, 2026-09-28) — a mandate for the payee's own authority. The ontology declares each
82
+ * party argument's side (`PARTY_ROLES`: acting · counterparty · context); an acting argument that names the same party as
83
+ * a counterparty argument of the same step came from nowhere the person said. The ACTING one is dropped (recovery `ask`):
84
+ * the declared default then fills it and says why, or the person is asked. `sideOf` is the ontology's, supplied by the app.
85
+ */
86
+ export declare function partiesDistinct(sideOf: (capability: string, arg: string) => 'acting' | 'counterparty' | 'context' | undefined): AdmissionRule;
87
+ /**
88
+ * THE ACTING PARTY IS THE PERSON'S TO NAME. When she names no paying account the declared default decides it and says why
89
+ * (spec 363); a planner that writes one anyway ("my treasury", the payee itself) replaces that decision with words she
90
+ * never said — and the harness then asks her which treasury she meant by words that were not hers (act laboratory,
91
+ * 2026-09-28). An ACTING argument (the ontology's side, `sideOf`) with no word of its own in the sentence — words inside
92
+ * the counterparty's value do not count, nor filler like "my" — is dropped (recovery `ask`): decided or asked for.
93
+ * An address is left alone (it arrives from a surface or a resolved turn, never from a planner's paraphrase).
94
+ */
95
+ export declare function actingPartyFromTheWords(sideOf: (capability: string, arg: string) => 'acting' | 'counterparty' | 'context' | undefined): AdmissionRule;
96
+ /**
97
+ * THE KIND THE PERSON NAMED IS THE KIND CHARTERED. Asked to "start a team … under Missio Nexus" where no team tool was
98
+ * offered, the planner chartered an ORGANIZATION (act laboratory, 2026-09-28) — the nearest kind, which the tool's own
99
+ * description forbids in prose. Here it is a rule: `kinds` (the app's chartering capabilities and the words for each —
100
+ * its noun and its name suffix) — a step chartering kind A when the sentence names kind B and never A is re-planned
101
+ * with the reason; if nothing charters B, the plan says so rather than making the nearest thing. Dotted names
102
+ * ("missio-nexus.org") are not words the person used for a kind.
103
+ */
104
+ export declare function kindNamedIsChartered(kinds: ReadonlyArray<{
105
+ capability: string;
106
+ noun: string;
107
+ words: readonly string[];
108
+ }>): AdmissionRule;
69
109
  /**
70
110
  * THE SUBJECT THE SENTENCE NAMES MUST BE IN THE STEP. A tool that declares a `subject` argument (spec 366)
71
111
  * is answered by the agent that argument names. When the sentence contains the name of an agent the asker
@@ -77,6 +117,22 @@ export declare function subjectNamedInAsk(knownNames: (intent: Intent) => Promis
77
117
  name: string;
78
118
  agent: string;
79
119
  }>>): AdmissionRule;
120
+ /**
121
+ * Spec 421 W1, applied to discovery — FOUND IS NOT ASKED. A question of the world ("how many unreached people groups
122
+ * are there in india") is answered by the agent that serves the subject, and a plan that FINDS that agent and stops
123
+ * has read what the ask needs without asking it: the person was told "could not be read from these results" while
124
+ * the one agent that could answer sat in the find's own result (alice's Home, 2026-10-12 — the planner, told by its
125
+ * playbook to find then engage, emitted the find alone). When the sentence did not ask to FIND — none of the find
126
+ * tool's own `answers` words or `verbs` is in it — a plan that ends at the find with no engage step CONTINUES
127
+ * (`recovery: 'continue'`): the loop appends `plan.continue`, the find runs, and the continuation planner is told
128
+ * what is still owed with the find's result in front of it. A sentence that DID ask to find ("find a publisher with a
129
+ * study on budgeting", "who offers mentoring curricula") is answered by the find, and this rule says nothing. Nothing
130
+ * here is authority: an engagement is a read, and what the engaged agent says is an observation (spec 379).
131
+ */
132
+ export declare function foundIsNotAsked(ids: {
133
+ find: string;
134
+ engage: string;
135
+ }): AdmissionRule;
80
136
  /**
81
137
  * Spec 379 (appendix M4) — AN OUTSIDE AGENT MAY ANSWER, NEVER ACT. A step whose `executor` is outside this
82
138
  * deployment (the caller says which — an https card URL, an address not served here) may run only a
@@ -1 +1 @@
1
- {"version":3,"file":"admission.d.ts","sourceRoot":"","sources":["../src/admission.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEzD,mGAAmG;AACnG,MAAM,MAAM,aAAa,GACrB,0BAA0B,GAC1B,yBAAyB,GACzB,wBAAwB,GACxB,4BAA4B,GAC5B,0BAA0B,GAC1B,yBAAyB,GACzB,oBAAoB,GACpB,uBAAuB,GACvB,uBAAuB,CAAC;AAE5B,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,aAAa,CAAC;IACpB,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0FAA0F;IAC1F,QAAQ,EAAE,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;CACnD;AAED,MAAM,MAAM,gBAAgB,GAAG;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,UAAU,EAAE,kBAAkB,EAAE,CAAA;CAAE,CAAC;AAE1G,MAAM,WAAW,cAAc;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,QAAQ,EAAE,CAAA;CAAE;AAEjF,uGAAuG;AACvG,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,kBAAkB,EAAE,CAAC,GAAG,kBAAkB,EAAE,CAAC;AAE5G,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACzD;AAED;+DAC+D;AAC/D,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,GAAG,aAAa,CAO5E;AAGD,iHAAiH;AACjH,eAAO,MAAM,MAAM,MAAO,MAAM,KAAG,MAA0C,CAAC;AAQ9E;;;;;;GAMG;AACH;wEACwE;AACxE,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,YAAY,GAAG,eAAe,CAErF;AAED,eAAO,MAAM,mBAAmB,EAAE,aAoBjC,CAAC;AAEF;oGACoG;AACpG,eAAO,MAAM,oBAAoB,EAAE,aAqBlC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,aAgB/B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,EAAE,aAWpC,CAAC;AAEF;mEACmE;AACnE,eAAO,MAAM,qBAAqB,EAAE,aAGnC,CAAC;AAEF;2FAC2F;AAC3F,eAAO,MAAM,cAAc,EAAE,aAG8Q,CAAC;AAE5S;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,GAAG,aAAa,CAmBhI;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,GAAG,aAAa,CAWlG"}
1
+ {"version":3,"file":"admission.d.ts","sourceRoot":"","sources":["../src/admission.ts"],"names":[],"mappings":"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"}
package/dist/admission.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { CONTINUE_STEP_ID } from './types.js';
1
2
  /** Compose rules into the port. Every rule runs; the verdict carries every violation, so a re-plan is
2
3
  * told everything at once rather than one thing per round. */
3
4
  export function planAdmission(rules) {
@@ -31,7 +32,13 @@ export function outcomeClassOf(t) {
31
32
  export const instructionNeedsAct = ({ intent, plan, tools }) => {
32
33
  const opening = imperativeOf(intent.goal);
33
34
  const acts = tools.filter((t) => t.capability && t.verbs?.length);
34
- const claims = (t) => !!t.verbs?.some((v) => opening === lc(v) || opening.startsWith(`${lc(v)} `));
35
+ // "TELL ME about…" / "message me when…" is the person asking HER OWN AGENT, not an instruction to reach someone: the
36
+ // verb's object is the speaker. A question in that form was refused as an unperformed act ("Tell me about the
37
+ // articles in my library" → plan messaging.direct.send — live 2026-09-21). "tell melissa" still claims the verb.
38
+ const selfDirected = (v) => new RegExp(`^${lc(v).replace(/[.*+?^${}()|[\]\\]/g, '\\$&')} (me|us)\\b`).test(opening);
39
+ // A clause may carry the verb too (spec 421): "read my latest message AND REPLY to whoever sent it" instructs a reply.
40
+ const clauses = [opening, ...opening.split(/\s*[—–;:,]\s*|\s+(?:and then|then|and)\s+/).slice(1)];
41
+ const claims = (t) => !!t.verbs?.some((v) => clauses.some((c) => (c === lc(v) || c.startsWith(`${lc(v)} `)) && !new RegExp(`^${lc(v).replace(/[.*+?^${}()|[\]\\]/g, '\\$&')} (me|us)\\b`).test(c)));
35
42
  const named = acts.filter(claims);
36
43
  if (!named.length)
37
44
  return [];
@@ -47,9 +54,17 @@ export const instructionNeedsAct = ({ intent, plan, tools }) => {
47
54
  const canDischarge = plan.steps.some((s) => { const t = byId.get(s.toolId); return !!t && outcomeClassOf(t) !== 'lookup'; });
48
55
  if (canDischarge)
49
56
  return [];
57
+ // Spec 421 W1 — A PLAN THAT READS AND THEN CONTINUES has deferred the act, not skipped it: the act is planned from what
58
+ // the reads return, and that continuation plan is admitted by this same rule before anything in it runs.
59
+ if (plan.steps[plan.steps.length - 1]?.toolId === CONTINUE_STEP_ID)
60
+ return [];
61
+ const canContinue = tools.some((t) => t.id === CONTINUE_STEP_ID);
62
+ // With continuation on and something READ, the plan has gathered what the act needs and stopped short: the recovery is to
63
+ // continue from what it reads (deterministic — the harness does not wait for a model to notice the option).
64
+ const readSomething = plan.steps.some((s) => { const t = byId.get(s.toolId); return !!t && !t.capability; });
50
65
  return [{
51
- code: 'OUTCOME_NOT_ESTABLISHED', recovery: 'replan',
52
- message: `"${intent.goal}" is an instruction (it opens with ${named.map((t) => `"${t.verbs[0]}"`).join(' / ')}) and every step in the plan only looks something up (${plan.steps.map((s) => s.toolId).join(', ') || 'nothing'}) — a lookup cannot establish that it was done. Plan the capability that performs it — ${named.map((t) => t.id).join(' or ')} — and pass the person's words as its arguments; it resolves who is meant itself.`,
66
+ code: 'OUTCOME_NOT_ESTABLISHED', recovery: canContinue && readSomething ? 'continue' : 'replan',
67
+ message: `"${intent.goal}" is an instruction (it opens with ${named.map((t) => `"${t.verbs[0]}"`).join(' / ')}) and every step in the plan only looks something up (${plan.steps.map((s) => s.toolId).join(', ') || 'nothing'}) — a lookup cannot establish that it was done. Plan the capability that performs it — ${named.map((t) => t.id).join(' or ')} — and pass the person's words as its arguments; it resolves who is meant itself.${canContinue ? ` If its arguments are in something you must read first (a message, a record), plan that read and end the plan with ${CONTINUE_STEP_ID}: you will be shown what it returned and plan the act from it.` : ''}`,
53
68
  }];
54
69
  };
55
70
  /** A step that consumes `{ $ref: name }` must follow a step that provides `ref: name` (spec 367 §4:
@@ -116,8 +131,46 @@ export const branchesDecidable = ({ plan }) => {
116
131
  * such a fact and an exposed tool answers it, a plan without that tool is answering something else — a
117
132
  * survey of receipts for a balance question. The rule reads declarations only, and it says which tool.
118
133
  */
134
+ /**
135
+ * WHAT SOMEBODY SAID, NOT WHAT WAS ATTACHED TO IT. An ask on the A2A surface carries its material in the
136
+ * same string as its sentence — a card table sends the seat's view, a mystery sends the character's whole
137
+ * night — and this rule strips punctuation before matching, so `"holds":["the register key"]` inside that
138
+ * payload reads exactly like the word "holds" in a question about money.
139
+ *
140
+ * Live, that cost a murder mystery 39% of its moments: `treasury.balance.read` answers "holds", a character
141
+ * carrying a clue has `holds` in her view, and every such ask was refused with "use treasury.balance.read
142
+ * for that" — a balance tool demanded of a woman in mourning in a hotel. The plan was right, the sentence
143
+ * never mentioned money, and `replanning: false` made it terminal, so the character simply went quiet.
144
+ *
145
+ * A tool's `answers` words are how a PERSON names what they want. A serialized object is not something
146
+ * anyone said, so it is removed before the sentence is read.
147
+ */
148
+ const SENTENCE_ONLY = (goal) => {
149
+ let out = '';
150
+ let depth = 0;
151
+ for (const ch of goal) {
152
+ if (ch === '{' || ch === '[') {
153
+ depth++;
154
+ continue;
155
+ }
156
+ if (ch === '}' || ch === ']') {
157
+ if (depth > 0)
158
+ depth--;
159
+ continue;
160
+ }
161
+ if (depth === 0)
162
+ out += ch;
163
+ }
164
+ return out;
165
+ };
119
166
  export const questionAnsweredByRead = ({ intent, plan, tools }) => {
120
- const goal = ` ${lc(intent.goal).replace(/[^a-z0-9]+/g, ' ')} `;
167
+ // An INSTRUCTION names the thing it acts on: "add dave to my contacts" names "my contacts" because the contact invite
168
+ // changes them — refusing it for "a survey" (act laboratory, 2026-09-28) turned a valid act into a refusal. The rule
169
+ // guards a QUESTION answered by the wrong read; a plan that ACTS is not answering a question.
170
+ const byId = new Map(tools.map((t) => [t.id, t]));
171
+ if (plan.steps.some((s) => byId.get(s.toolId)?.capability))
172
+ return [];
173
+ const goal = ` ${lc(SENTENCE_ONLY(intent.goal)).replace(/[^a-z0-9]+/g, ' ')} `;
121
174
  const out = [];
122
175
  const inPlan = new Set(plan.steps.map((s) => s.toolId));
123
176
  for (const t of tools) {
@@ -130,17 +183,123 @@ export const questionAnsweredByRead = ({ intent, plan, tools }) => {
130
183
  }
131
184
  return out;
132
185
  };
133
- /** A step naming a tool this agent does not expose. The loop refuses it anyway (`unknown_tool`); as a rule it
134
- * lets an eval and a re-plan see WHICH capability was missing. */
186
+ /** A step naming a tool this agent does not expose. Without this rule the loop hard-throws `unknown_tool` and the
187
+ * run dies with a raw error and no recovery. As an admission rule it is a RE-PLAN, not a refusal: a missing
188
+ * capability is exactly what one more planning round — told which tools the agent has — can fix (the model that
189
+ * named `calendar.events.list` on a game persona recovers to a tool it offers, or to an honest "I don't have a
190
+ * calendar"). If the re-plan names an unexposed tool again, the loop's second-admission path makes it terminal
191
+ * with this same sentence. Recovery `refuse` would skip that round and is wrong here — a missing capability is
192
+ * not something no re-plan can fix. */
135
193
  export const capabilitiesAvailable = ({ plan, tools }) => {
136
194
  const ids = new Set(tools.map((t) => t.id));
137
- return plan.steps.flatMap((s, i) => ids.has(s.toolId) ? [] : [{ code: 'CAPABILITY_UNAVAILABLE', recovery: 'refuse', stepIndex: i, toolId: s.toolId, message: `step ${i + 1} names "${s.toolId}", which this agent does not offer — choose among: ${[...ids].join(', ')}.` }]);
195
+ return plan.steps.flatMap((s, i) => ids.has(s.toolId) ? [] : [{ code: 'CAPABILITY_UNAVAILABLE', recovery: 'replan', stepIndex: i, toolId: s.toolId, message: `step ${i + 1} names "${s.toolId}", which this agent does not offer — choose among: ${[...ids].join(', ')}.` }]);
138
196
  };
139
197
  /** A PLACEHOLDER IS NOT AN ARGUMENT. "<UNKNOWN>", "TBD", "n/a" inside a step is a value the person would be
140
198
  * asked to sign over. Omit the argument and it is asked for; a placeholder is refused. */
141
199
  export const noPlaceholders = ({ plan }) => plan.steps.flatMap((s, i) => Object.entries(s.args)
142
200
  .filter(([, v]) => typeof v === 'string' && /^<.*>$|^(unknown|tbd|n\/a|null|undefined|placeholder)$/i.test(v.trim()))
143
201
  .map(([k, v]) => ({ code: 'UNSUPPORTED_BINDING_SOURCE', recovery: 'ask', stepIndex: i, toolId: s.toolId, field: k, message: `step ${i + 1} (${s.toolId}) carries a placeholder for "${k}" (${String(v)}); omit an argument the sentence did not give, and it will be asked for.` })));
202
+ const NUMBER_WORDS = { zero: 0, one: 1, a: 1, an: 1, two: 2, three: 3, four: 4, five: 5, six: 6, seven: 7, eight: 8, nine: 9, ten: 10, eleven: 11, twelve: 12, fifteen: 15, twenty: 20, thirty: 30, forty: 40, fifty: 50, hundred: 100 };
203
+ /** The numbers a sentence states: digits (1,250.50 · 12.5 · $3) and the plain number words. */
204
+ export function numbersSaid(sentence) {
205
+ const out = [...sentence.replace(/(\d),(\d{3})/g, '$1$2').matchAll(/\d+(?:\.\d+)?/g)].map((m) => Number(m[0]));
206
+ for (const w of lc(sentence).split(/[^a-z]+/))
207
+ if (w in NUMBER_WORDS && w !== 'a' && w !== 'an')
208
+ out.push(NUMBER_WORDS[w]);
209
+ // "a dollar", "an usdc" — one, only where a unit follows.
210
+ if (/\ban?\s+(?:dollar|buck|usdc)\b/i.test(sentence))
211
+ out.push(1);
212
+ return out;
213
+ }
214
+ const NUMERIC = /^\s*\$?\d+(?:\.\d+)?\s*$/;
215
+ /**
216
+ * AN ACT NEVER CARRIES A NUMBER THE PERSON DID NOT SAY. "Pay nathan.treasury back for the hymnals" names no amount; the
217
+ * planner wrote 12.50, and only the balance check stopped a mandate for a sum she never said (act laboratory,
218
+ * 2026-09-28). A numeric argument of an ACT step whose value is not among the sentence's numbers is dropped — and the
219
+ * step then asks for it, as a missing argument always does. Reads are not held to this (a limit on a listing is not
220
+ * something anyone signs). Deterministic: numbers are compared by value, never by a model.
221
+ */
222
+ export const numbersFromTheWords = ({ intent, plan, tools }) => {
223
+ const byId = new Map(tools.map((t) => [t.id, t]));
224
+ const said = numbersSaid(SENTENCE_ONLY(intent.goal));
225
+ return plan.steps.flatMap((s, i) => (byId.get(s.toolId)?.capability ? Object.entries(s.args) : [])
226
+ .filter(([, v]) => (typeof v === 'number' && Number.isFinite(v)) || (typeof v === 'string' && NUMERIC.test(v)))
227
+ .filter(([, v]) => { const n = Number(String(v).replace(/[$\s]/g, '')); return !said.some((x) => Math.abs(x - n) < 1e-9); })
228
+ .map(([k, v]) => ({ code: 'UNSUPPORTED_BINDING_SOURCE', recovery: 'ask', stepIndex: i, toolId: s.toolId, field: k, message: `step ${i + 1} (${s.toolId}) carries ${k} = ${String(v)}, a number the sentence does not state; omit it and it will be asked for.` })));
229
+ };
230
+ /**
231
+ * ONE PARTY IS NOT BOTH SIDES OF AN ACT. "Pay nathan.treasury back for the hymnals" was planned with nathan.treasury as
232
+ * payee AND payer (act laboratory, 2026-09-28) — a mandate for the payee's own authority. The ontology declares each
233
+ * party argument's side (`PARTY_ROLES`: acting · counterparty · context); an acting argument that names the same party as
234
+ * a counterparty argument of the same step came from nowhere the person said. The ACTING one is dropped (recovery `ask`):
235
+ * the declared default then fills it and says why, or the person is asked. `sideOf` is the ontology's, supplied by the app.
236
+ */
237
+ export function partiesDistinct(sideOf) {
238
+ return ({ plan, tools }) => {
239
+ const byId = new Map(tools.map((t) => [t.id, t]));
240
+ return plan.steps.flatMap((s, i) => {
241
+ const cap = byId.get(s.toolId)?.capability?.id;
242
+ if (!cap)
243
+ return [];
244
+ const named = Object.entries(s.args).filter(([, v]) => typeof v === 'string' && v.trim()).map(([k, v]) => ({ k, v: squash(String(v)), side: sideOf(cap, k) }));
245
+ return named.filter((a) => a.side === 'acting' && named.some((b) => b.side === 'counterparty' && b.v === a.v))
246
+ .map((a) => ({ code: 'UNSUPPORTED_BINDING_SOURCE', recovery: 'ask', stepIndex: i, toolId: s.toolId, field: a.k, message: `step ${i + 1} (${s.toolId}) names the same party as ${a.k} and as its counterparty; the ${a.k} was not said — omit it and it will be decided or asked for.` }));
247
+ });
248
+ };
249
+ }
250
+ const FILLER = new Set(['my', 'our', 'the', 'a', 'an', 'your', 'his', 'her', 'their', 'from', 'of', 'account', 'me', 'mine']);
251
+ /** Words that name THE ROOM (the agent asked) — a planner writing them for an acting party is not inventing one; the resolver
252
+ * turns them into the room (spec 418 §12 "us"). */
253
+ const ROOM_WORDS = new Set(['us', 'we', 'our', 'ours', 'ourselves', 'self', 'itself', 'this agent', 'the agent', 'this organization', 'this org', 'the organization', 'the org', 'this team', 'the team', 'this household', 'this workspace']);
254
+ const wordsOf = (v) => lc(v).split(/[^a-z0-9]+/).filter((w) => w && !FILLER.has(w));
255
+ /**
256
+ * THE ACTING PARTY IS THE PERSON'S TO NAME. When she names no paying account the declared default decides it and says why
257
+ * (spec 363); a planner that writes one anyway ("my treasury", the payee itself) replaces that decision with words she
258
+ * never said — and the harness then asks her which treasury she meant by words that were not hers (act laboratory,
259
+ * 2026-09-28). An ACTING argument (the ontology's side, `sideOf`) with no word of its own in the sentence — words inside
260
+ * the counterparty's value do not count, nor filler like "my" — is dropped (recovery `ask`): decided or asked for.
261
+ * An address is left alone (it arrives from a surface or a resolved turn, never from a planner's paraphrase).
262
+ */
263
+ export function actingPartyFromTheWords(sideOf) {
264
+ return ({ intent, plan, tools }) => {
265
+ const byId = new Map(tools.map((t) => [t.id, t]));
266
+ return plan.steps.flatMap((s, i) => {
267
+ const cap = byId.get(s.toolId)?.capability?.id;
268
+ if (!cap)
269
+ return [];
270
+ const strArgs = Object.entries(s.args).filter((e) => typeof e[1] === 'string' && !!e[1].trim());
271
+ let sentence = ` ${lc(SENTENCE_ONLY(intent.goal))} `;
272
+ for (const [k, v] of strArgs)
273
+ if (sideOf(cap, k) === 'counterparty')
274
+ sentence = sentence.split(lc(v)).join(' ');
275
+ const said = new Set(wordsOf(sentence));
276
+ return strArgs.filter(([k, v]) => sideOf(cap, k) === 'acting' && !/^0x[0-9a-f]{40}$/i.test(v.trim()) && !ROOM_WORDS.has(lc(v).trim()) && !wordsOf(v).some((w) => said.has(w)))
277
+ .map(([k, v]) => ({ code: 'UNSUPPORTED_BINDING_SOURCE', recovery: 'ask', stepIndex: i, toolId: s.toolId, field: k, message: `step ${i + 1} (${s.toolId}) names ${k} "${v}", which the sentence does not; omit it and it will be decided or asked for.` }));
278
+ });
279
+ };
280
+ }
281
+ /**
282
+ * THE KIND THE PERSON NAMED IS THE KIND CHARTERED. Asked to "start a team … under Missio Nexus" where no team tool was
283
+ * offered, the planner chartered an ORGANIZATION (act laboratory, 2026-09-28) — the nearest kind, which the tool's own
284
+ * description forbids in prose. Here it is a rule: `kinds` (the app's chartering capabilities and the words for each —
285
+ * its noun and its name suffix) — a step chartering kind A when the sentence names kind B and never A is re-planned
286
+ * with the reason; if nothing charters B, the plan says so rather than making the nearest thing. Dotted names
287
+ * ("missio-nexus.org") are not words the person used for a kind.
288
+ */
289
+ export function kindNamedIsChartered(kinds) {
290
+ const byCap = new Map(kinds.map((k) => [k.capability, k]));
291
+ return ({ intent, plan }) => {
292
+ const sentence = ` ${lc(SENTENCE_ONLY(intent.goal)).replace(/\S+\.[a-z0-9-]+\S*/g, ' ').replace(/[^a-z0-9]+/g, ' ')} `;
293
+ const said = (k) => k.words.some((w) => sentence.includes(` ${lc(w)} `) || sentence.includes(` ${lc(w)}s `));
294
+ return plan.steps.flatMap((s, i) => {
295
+ const mine = byCap.get(s.toolId);
296
+ if (!mine || said(mine))
297
+ return [];
298
+ const named = kinds.filter((k) => k.capability !== mine.capability && said(k));
299
+ return named.length ? [{ code: 'OUTCOME_NOT_ESTABLISHED', recovery: 'replan', stepIndex: i, toolId: s.toolId, message: `the sentence asks for a ${named[0].noun}; ${s.toolId} charters a ${mine.noun}. Use the tool that charters a ${named[0].noun}; if none is offered here, say this agent cannot — never charter the nearest kind.` }] : [];
300
+ });
301
+ };
302
+ }
144
303
  /**
145
304
  * THE SUBJECT THE SENTENCE NAMES MUST BE IN THE STEP. A tool that declares a `subject` argument (spec 366)
146
305
  * is answered by the agent that argument names. When the sentence contains the name of an agent the asker
@@ -161,7 +320,10 @@ export function subjectNamedInAsk(knownNames) {
161
320
  const full = squash(n.name);
162
321
  const label = squash(n.name.split('.')[0] ?? '');
163
322
  return (full.length >= 4 && goal.includes(full)) || (label.length >= 4 && goal.includes(label));
164
- });
323
+ })
324
+ // The agent BEING ASKED is the room: an empty subject there already means it ("what is Missio Nexus's balance", asked
325
+ // at missio-nexus.org, was refused for leaving the account empty — 2026-09-28).
326
+ .filter((n) => String(n.agent).toLowerCase() !== String(intent.context?.addressee ?? '').toLowerCase());
165
327
  if (!named.length)
166
328
  return [];
167
329
  return candidates.map(({ s, i, tool }) => ({
@@ -170,6 +332,39 @@ export function subjectNamedInAsk(knownNames) {
170
332
  }));
171
333
  };
172
334
  }
335
+ /**
336
+ * Spec 421 W1, applied to discovery — FOUND IS NOT ASKED. A question of the world ("how many unreached people groups
337
+ * are there in india") is answered by the agent that serves the subject, and a plan that FINDS that agent and stops
338
+ * has read what the ask needs without asking it: the person was told "could not be read from these results" while
339
+ * the one agent that could answer sat in the find's own result (alice's Home, 2026-10-12 — the planner, told by its
340
+ * playbook to find then engage, emitted the find alone). When the sentence did not ask to FIND — none of the find
341
+ * tool's own `answers` words or `verbs` is in it — a plan that ends at the find with no engage step CONTINUES
342
+ * (`recovery: 'continue'`): the loop appends `plan.continue`, the find runs, and the continuation planner is told
343
+ * what is still owed with the find's result in front of it. A sentence that DID ask to find ("find a publisher with a
344
+ * study on budgeting", "who offers mentoring curricula") is answered by the find, and this rule says nothing. Nothing
345
+ * here is authority: an engagement is a read, and what the engaged agent says is an observation (spec 379).
346
+ */
347
+ export function foundIsNotAsked(ids) {
348
+ return ({ intent, plan, tools }) => {
349
+ const finds = plan.steps.map((s, i) => ({ s, i })).filter(({ s }) => s.toolId === ids.find);
350
+ if (!finds.length)
351
+ return [];
352
+ // Already asked, or already deferred to a continuation: nothing is owed.
353
+ if (plan.steps.some((s) => s.toolId === ids.engage || s.toolId === CONTINUE_STEP_ID))
354
+ return [];
355
+ const find = tools.find((t) => t.id === ids.find);
356
+ const words = (w) => ` ${lc(w).replace(/[^a-z0-9]+/g, ' ')} `;
357
+ const goal = words(intent.goal);
358
+ const askedToFind = [...(find?.answers ?? []), ...(find?.verbs ?? [])].some((w) => goal.includes(words(w)));
359
+ if (askedToFind)
360
+ return [];
361
+ const last = finds[finds.length - 1];
362
+ return [{
363
+ code: 'QUESTION_NOT_ANSWERED', recovery: 'continue', stepIndex: last.i, toolId: ids.find,
364
+ message: `the sentence asks a question, not for a list of agents, and the plan stops at finding who could answer it — engage the agent ${ids.find} returned with ${ids.engage}, sending the person's words complete, and answer from what it says.`,
365
+ }];
366
+ };
367
+ }
173
368
  /**
174
369
  * Spec 379 (appendix M4) — AN OUTSIDE AGENT MAY ANSWER, NEVER ACT. A step whose `executor` is outside this
175
370
  * deployment (the caller says which — an https card URL, an address not served here) may run only a
@@ -1 +1 @@
1
- {"version":3,"file":"admission.js","sourceRoot":"","sources":["../src/admission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admission.js","sourceRoot":"","sources":["../src/admission.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,129 @@
1
+ import type { StructuredCallLike } from './selection.js';
2
+ export declare const ANSWER_QUALITY_JUDGE: {
3
+ name: string;
4
+ kind: "model";
5
+ };
6
+ /** The rubric: each a statement the judge gives P(true) for. Stable ids — a changed rubric is a new judge name (J5). */
7
+ export declare const ANSWER_QUALITY_RUBRIC: ReadonlyArray<{
8
+ id: string;
9
+ statement: string;
10
+ }>;
11
+ export interface AnswerQualityV1 {
12
+ judge: typeof ANSWER_QUALITY_JUDGE;
13
+ /** P(true) per rubric question. */
14
+ scores: Record<string, number>;
15
+ /** Their mean — the quality number a comparison reads. */
16
+ score: number;
17
+ ms: number;
18
+ error?: string;
19
+ }
20
+ /** Judge one answer. The answer is truncated to `maxChars` (the judge reads a bounded state). */
21
+ export declare function judgeAnswerQuality(input: {
22
+ request: string;
23
+ skillCard: string;
24
+ answer: string;
25
+ maxChars?: number;
26
+ }, call: StructuredCallLike): Promise<AnswerQualityV1>;
27
+ export declare const ANSWER_PREFERENCE_JUDGE: {
28
+ name: string;
29
+ kind: "model";
30
+ };
31
+ export interface AnswerPreferenceV1 {
32
+ judge: typeof ANSWER_PREFERENCE_JUDGE;
33
+ preference: Record<string, number>;
34
+ permutations: {
35
+ asked: number;
36
+ answered: number;
37
+ };
38
+ ms: number;
39
+ error?: string;
40
+ }
41
+ export declare function judgeAnswerPreference(input: {
42
+ request: string;
43
+ skillCard: string;
44
+ answers: Record<string, string>;
45
+ maxChars?: number;
46
+ }, call: StructuredCallLike): Promise<AnswerPreferenceV1>;
47
+ export declare const OUTCOME_CHECK_JUDGE: {
48
+ name: string;
49
+ kind: "model";
50
+ };
51
+ /** One scoring unit: a single class (`id` = its IRI), or an alternative group (`id` = `alternative:<group>`). */
52
+ export interface OutcomeUnitV1 {
53
+ id: string;
54
+ members: string[];
55
+ requested: number;
56
+ delivered: number;
57
+ counted: boolean;
58
+ required?: true;
59
+ }
60
+ export interface OutcomeCheckV1 {
61
+ judge: typeof OUTCOME_CHECK_JUDGE;
62
+ classes: Record<string, number>;
63
+ requested: Record<string, number>;
64
+ units?: OutcomeUnitV1[];
65
+ score: number;
66
+ ms: number;
67
+ error?: string;
68
+ }
69
+ export declare function judgeOutcomeDelivered(input: {
70
+ request: string;
71
+ answer: string;
72
+ expected: ReadonlyArray<{
73
+ iri: string;
74
+ label: string;
75
+ required?: boolean;
76
+ alternative?: string;
77
+ }>;
78
+ maxChars?: number;
79
+ }, call: StructuredCallLike): Promise<OutcomeCheckV1>;
80
+ export declare const OUTCOME_PER_CLASS_JUDGE: {
81
+ name: string;
82
+ kind: "model";
83
+ };
84
+ export type OutcomeVerdictV1 = 'delivered' | 'missing' | 'unknown';
85
+ export type OutcomeExpectationKindV1 = 'delivered' | 'named-missing' | 'asked-which';
86
+ /** What one class is expected to be in the answer, with the words the question is built from. */
87
+ export interface OutcomeExpectationV1 {
88
+ iri: string;
89
+ label: string;
90
+ required?: boolean;
91
+ alternative?: string;
92
+ /** The class's `rdfs:comment` — what a complete one IS, in the ontology's words. */
93
+ comment?: string;
94
+ /** The fields its shape requires (`sh:minCount 1`, by `sh:name`) — what a complete one HAS. */
95
+ requiredFields?: string[];
96
+ /** The shape's other fields — what a GOOD one also has (quality, never pass/fail). */
97
+ qualityFields?: string[];
98
+ /** delivered (default) · named-missing (W2 `missing`) · asked-which (W2 `behaviour: clarify`). */
99
+ kind?: OutcomeExpectationKindV1;
100
+ }
101
+ export interface OutcomeUnitVerdictV1 extends OutcomeUnitV1 {
102
+ verdict: OutcomeVerdictV1;
103
+ }
104
+ export interface OutcomePerClassV1 {
105
+ judge: typeof OUTCOME_PER_CLASS_JUDGE;
106
+ /** Per class: P(delivered) from its own call (0 when the verdict is unknown — read `verdicts` before this). */
107
+ classes: Record<string, number>;
108
+ requested: Record<string, number>;
109
+ verdicts: Record<string, OutcomeVerdictV1>;
110
+ units: OutcomeUnitVerdictV1[];
111
+ /** Mean P(delivered) over the counted units WITH a verdict; 0 when none has one (and `counted` says so). */
112
+ score: number;
113
+ /** How many counted units had a verdict (the denominator) and how many were cantTell (out of it, reported). */
114
+ counted: number;
115
+ cantTell: number;
116
+ /** Judge calls made (one per class + one for the request). */
117
+ calls: number;
118
+ ms: number;
119
+ error?: string;
120
+ }
121
+ /** The question for one class, from the ontology's own words. Pure, so the prompt is a function of the class. */
122
+ export declare function outcomeQuestionOf(c: OutcomeExpectationV1): string;
123
+ export declare function judgeOutcomePerClass(input: {
124
+ request: string;
125
+ answer: string;
126
+ expected: ReadonlyArray<OutcomeExpectationV1>;
127
+ maxChars?: number;
128
+ }, call: StructuredCallLike): Promise<OutcomePerClassV1>;
129
+ //# sourceMappingURL=answer-quality.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"answer-quality.d.ts","sourceRoot":"","sources":["../src/answer-quality.ts"],"names":[],"mappings":"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"}