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

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
@@ -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,77 @@
1
+ import type { RunRecordV1 } from './record.js';
2
+ /** Did every planned step leave a record? */
3
+ export interface EvidenceCoverageV1 {
4
+ state: 'complete' | 'incomplete' | 'unknown';
5
+ plannedSteps: number;
6
+ recordedSteps: number;
7
+ /** NAMED, not counted: "3 of 5" sends a reader looking; this says which two. */
8
+ missing: string[];
9
+ skipped: string[];
10
+ replayed: string[];
11
+ }
12
+ /** Do the record's own parts agree with each other? */
13
+ export interface EvidenceConsistencyV1 {
14
+ state: 'consistent' | 'conflicting' | 'unknown';
15
+ /** Each conflict in words, naming both sides. A disagreement is REPORTED, never resolved by preferring
16
+ * one source — picking a winner here is how the losing source stops being evidence. */
17
+ conflicts: string[];
18
+ }
19
+ /** Who observed each claim in this record? */
20
+ export interface EvidenceOriginV1 {
21
+ state: 'executor-observed' | 'mixed';
22
+ /** Steps another agent ran and reported back (a hand-off): their claims are asserted TO us, not observed
23
+ * BY us, and the difference survives into the reading. */
24
+ delegatedSteps: string[];
25
+ }
26
+ /** How far have the bytes actually been checked? Orchestration cannot check them; `provenance` can. */
27
+ export interface EvidenceIntegrityV1 {
28
+ state: 'unchecked' | 'hash-validated' | 'signature-validated' | 'anchored';
29
+ /** Present once the run's bundle was anchored on chain (from the export report). */
30
+ anchorDigest?: string;
31
+ }
32
+ /** Has anyone judged this run, and against what? */
33
+ export interface EvidenceAssessmentV1 {
34
+ state: 'unassessed' | 'assessed';
35
+ count: number;
36
+ }
37
+ /** What the run cost. `unavailable` is a real answer and `0` is a claim — they are never the same. */
38
+ export interface EvidenceCostV1 {
39
+ state: 'reported' | 'partial' | 'unavailable';
40
+ tokensIn?: number;
41
+ tokensOut?: number;
42
+ modelCalls: number;
43
+ /** Calls whose provider reported no usage. While this is non-zero the totals are a floor, not a total. */
44
+ callsMissingUsage: number;
45
+ }
46
+ export interface EvidenceStatusV1 {
47
+ runRef: string;
48
+ coverage: EvidenceCoverageV1;
49
+ consistency: EvidenceConsistencyV1;
50
+ origin: EvidenceOriginV1;
51
+ integrity: EvidenceIntegrityV1;
52
+ assessment: EvidenceAssessmentV1;
53
+ cost: EvidenceCostV1;
54
+ /** Spec 398 T10 — ORTHOGONAL to everything above and never collapsed into a failure. A step whose external
55
+ * call timed out after it may have landed is "unknown — reconciling", and a reader must be able to see
56
+ * that at the same time as seeing the run completed. */
57
+ effectUncertain: boolean;
58
+ }
59
+ export interface EvidenceStatusOpts {
60
+ /** Steps whose external effect is unknown, named by the caller that saw it (the runtime). Not derived here:
61
+ * reading uncertainty out of an error string is a heuristic standing in for a fact, and the fact has an
62
+ * owner. */
63
+ effectUncertainSteps?: readonly string[];
64
+ /** Assessments found for this run (spec 438 §5). Supplied, because the store is not orchestration's. */
65
+ assessmentCount?: number;
66
+ /** An integrity answer from `@agenticprimitives/provenance`, which can recompute digests. */
67
+ integrity?: EvidenceIntegrityV1['state'];
68
+ }
69
+ /**
70
+ * Read a run record's five dimensions.
71
+ *
72
+ * Pure and total: a malformed or truncated record yields `unknown` states rather than throwing, because a
73
+ * record that cannot be read is itself the finding (see `findingsOf` in `@agenticprimitives/harness`), and a
74
+ * thrown error would hide every other dimension that WAS readable.
75
+ */
76
+ export declare function evidenceStatusOf(record: RunRecordV1, opts?: EvidenceStatusOpts): EvidenceStatusV1;
77
+ //# sourceMappingURL=evidence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../src/evidence.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,6CAA6C;AAC7C,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,UAAU,GAAG,YAAY,GAAG,SAAS,CAAC;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,gFAAgF;IAChF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,uDAAuD;AACvD,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,YAAY,GAAG,aAAa,GAAG,SAAS,CAAC;IAChD;4FACwF;IACxF,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,8CAA8C;AAC9C,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC;IACrC;+DAC2D;IAC3D,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,uGAAuG;AACvG,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,WAAW,GAAG,gBAAgB,GAAG,qBAAqB,GAAG,UAAU,CAAC;IAC3E,oFAAoF;IACpF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,oDAAoD;AACpD,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,YAAY,GAAG,UAAU,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,sGAAsG;AACtG,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,aAAa,CAAC;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,0GAA0G;IAC1G,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,WAAW,EAAE,qBAAqB,CAAC;IACnC,MAAM,EAAE,gBAAgB,CAAC;IACzB,SAAS,EAAE,mBAAmB,CAAC;IAC/B,UAAU,EAAE,oBAAoB,CAAC;IACjC,IAAI,EAAE,cAAc,CAAC;IACrB;;6DAEyD;IACzD,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC;;iBAEa;IACb,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,wGAAwG;IACxG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6FAA6F;IAC7F,SAAS,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;CAC1C;AAID;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,GAAE,kBAAuB,GAAG,gBAAgB,CAiGrG"}
@@ -0,0 +1,101 @@
1
+ const stepRefOf = (step, i) => step.id ?? `s${i}`;
2
+ /**
3
+ * Read a run record's five dimensions.
4
+ *
5
+ * Pure and total: a malformed or truncated record yields `unknown` states rather than throwing, because a
6
+ * record that cannot be read is itself the finding (see `findingsOf` in `@agenticprimitives/harness`), and a
7
+ * thrown error would hide every other dimension that WAS readable.
8
+ */
9
+ export function evidenceStatusOf(record, opts = {}) {
10
+ const planSteps = Array.isArray(record.plan?.steps) ? record.plan.steps : [];
11
+ const steps = Array.isArray(record.steps) ? record.steps : [];
12
+ const receipts = Array.isArray(record.receipts) ? record.receipts : [];
13
+ const recorded = new Set(steps.map((s) => s.stepRef));
14
+ // ── coverage ────────────────────────────────────────────────────────────────────────────────────
15
+ const planned = planSteps.map((s, i) => stepRefOf(s, i));
16
+ const missing = planned.filter((ref) => !recorded.has(ref));
17
+ // A run that stopped early (denied, suspended, authority-required, canceled) is SUPPOSED to have fewer
18
+ // steps than planned — calling that "incomplete evidence" would flag the authority plane working as a
19
+ // defect. Coverage speaks about a run that ran to its end.
20
+ const stoppedEarly = record.outcome === 'denied' ||
21
+ record.outcome === 'suspended' ||
22
+ record.outcome === 'authority-required' ||
23
+ Boolean(record.canceled);
24
+ const coverage = {
25
+ state: planSteps.length === 0 ? 'unknown' : missing.length === 0 ? 'complete' : stoppedEarly ? 'unknown' : 'incomplete',
26
+ plannedSteps: planSteps.length,
27
+ recordedSteps: steps.length,
28
+ missing,
29
+ skipped: steps.filter((s) => s.skipped).map((s) => s.stepRef),
30
+ replayed: steps.filter((s) => s.replayed).map((s) => s.stepRef),
31
+ };
32
+ // ── consistency ─────────────────────────────────────────────────────────────────────────────────
33
+ const conflicts = [];
34
+ const receiptByStep = new Map(receipts.map((r) => [r.stepRef, r]));
35
+ for (const s of steps) {
36
+ const r = receiptByStep.get(s.stepRef);
37
+ if (!r)
38
+ continue;
39
+ if (s.ok && r.status === 'failed')
40
+ conflicts.push(`step ${s.stepRef}: the observation says ok, its receipt says failed`);
41
+ if (!s.ok && r.status === 'executed')
42
+ conflicts.push(`step ${s.stepRef}: the observation says not-ok, its receipt says executed`);
43
+ }
44
+ const anyStepFailed = steps.some((s) => !s.ok && !s.skipped);
45
+ if (record.outcome === 'completed' && anyStepFailed && !opts.effectUncertainSteps?.length) {
46
+ conflicts.push('the run reports completed while a step reports not-ok');
47
+ }
48
+ const consistency = {
49
+ state: steps.length === 0 && receipts.length === 0 ? 'unknown' : conflicts.length === 0 ? 'consistent' : 'conflicting',
50
+ conflicts,
51
+ };
52
+ // ── origin ──────────────────────────────────────────────────────────────────────────────────────
53
+ // A step another agent ran is reported TO this record, not observed BY it.
54
+ const delegatedSteps = planSteps
55
+ .map((s, i) => ({ ref: stepRefOf(s, i), delegated: Boolean(s.agent) }))
56
+ .filter((s) => s.delegated)
57
+ .map((s) => s.ref);
58
+ const origin = {
59
+ state: delegatedSteps.length > 0 ? 'mixed' : 'executor-observed',
60
+ delegatedSteps,
61
+ };
62
+ // ── integrity ───────────────────────────────────────────────────────────────────────────────────
63
+ const anchor = record.export?.anchor;
64
+ const anchored = anchor && 'digest' in anchor ? anchor : undefined;
65
+ const integrity = {
66
+ state: opts.integrity ?? (anchored ? 'anchored' : 'unchecked'),
67
+ ...(anchored ? { anchorDigest: anchored.digest } : {}),
68
+ };
69
+ // ── assessment ──────────────────────────────────────────────────────────────────────────────────
70
+ const assessmentCount = opts.assessmentCount ?? 0;
71
+ const assessment = {
72
+ state: assessmentCount > 0 ? 'assessed' : 'unassessed',
73
+ count: assessmentCount,
74
+ };
75
+ // ── cost ────────────────────────────────────────────────────────────────────────────────────────
76
+ // THE RULE WITH A GATE BEHIND IT (`check:evidence-no-zeros`): a provider that reported no usage leaves the
77
+ // cost UNAVAILABLE. Summing undefined as zero produces a confident, specific, wrong number — and a wrong
78
+ // number is worse than an absent one, because nobody goes looking for it.
79
+ const calls = Array.isArray(record.modelCalls) ? record.modelCalls : [];
80
+ const callsMissingUsage = calls.filter((c) => c.tokensIn === undefined && c.tokensOut === undefined).length;
81
+ const reported = calls.filter((c) => c.tokensIn !== undefined || c.tokensOut !== undefined);
82
+ const sum = (pick) => reported.length === 0 ? undefined : reported.reduce((n, c) => n + (pick(c) ?? 0), 0);
83
+ const cost = {
84
+ state: calls.length === 0 || reported.length === 0 ? 'unavailable' : callsMissingUsage > 0 ? 'partial' : 'reported',
85
+ ...(sum((c) => c.tokensIn) !== undefined ? { tokensIn: sum((c) => c.tokensIn) } : {}),
86
+ ...(sum((c) => c.tokensOut) !== undefined ? { tokensOut: sum((c) => c.tokensOut) } : {}),
87
+ modelCalls: calls.length,
88
+ callsMissingUsage,
89
+ };
90
+ return {
91
+ runRef: record.runRef,
92
+ coverage,
93
+ consistency,
94
+ origin,
95
+ integrity,
96
+ assessment,
97
+ cost,
98
+ effectUncertain: (opts.effectUncertainSteps?.length ?? 0) > 0,
99
+ };
100
+ }
101
+ //# sourceMappingURL=evidence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence.js","sourceRoot":"","sources":["../src/evidence.ts"],"names":[],"mappings":"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"}
@@ -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":""}
package/dist/index.d.ts CHANGED
@@ -1,11 +1,14 @@
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';
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';
4
6
  export type { Planner, PlanInput, PlanRule, AnswerComposer, ComposeInput } from './planner.js';
5
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';
6
9
  export type { ToolInvoker, InvokeContext } from './tool-invoker.js';
7
- export { runIntent } from './loop.js';
8
- export { planAdmission, externalExecutorsReadOnly, instructionNeedsAct, noPlaceholders, subjectNamedInAsk, dependenciesProvided, branchesDecidable, questionAnsweredByRead, capabilitiesAvailable, outcomeClassOf, squash as squashLabel } from './admission.js';
10
+ export { runIntent, RETRIEVAL_STEP_REF, CONTINUE_STEP_ID, CONTINUE_TOOL } from './loop.js';
11
+ export { planAdmission, externalExecutorsReadOnly, foundIsNotAsked, instructionNeedsAct, noPlaceholders, subjectNamedInAsk, dependenciesProvided, branchesDecidable, questionAnsweredByRead, numbersFromTheWords, numbersSaid, partiesDistinct, actingPartyFromTheWords, kindNamedIsChartered, capabilitiesAvailable, outcomeClassOf, squash as squashLabel } from './admission.js';
9
12
  export type { PlanAdmission, AdmissionRule, AdmissionVerdict, AdmissionViolation, AdmissionInput, AdmissionCode } from './admission.js';
10
13
  export type { ExecutionBindingV1 } from './authority.js';
11
14
  export type { OutcomeClass } from './types.js';
@@ -14,14 +17,28 @@ export type { MandatePresentation, ResolvedStep, StepAuthorityRequest, Obligatio
14
17
  export { InputRequired, isInputRequired, inputsFor, dataFor, signatureFor, receiptPending } from './input.js';
15
18
  export type { InputRequestV1, InputFieldV1, InputFieldType, SuppliedInputV1, CommitmentRefV1 } from './input.js';
16
19
  export { TerminalDenial, type DurableStepPort, type RunExecutor, type ApprovalEventV1 } from './durable.js';
17
- export { recordOf, replayingInvoker, replayRun } from './record.js';
18
- export type { RunRecordV1, RunPlannerSummaryV1, RunExportReportV1, ReplayReport, ReplayVerdict, RunBillV1 } from './record.js';
20
+ export { recordOf, runMarks, replayingInvoker, replayRun, completedFromRecord } from './record.js';
21
+ export { planDigest, planStepAsWritten } from './plan-digest.js';
22
+ export type { RunRecordV1, RunWorkRefV1, RunExportReportV1, ReplayReport, ReplayVerdict, RunBillV1, RunMarkV1, RunMarks, RunOperationalV1 } from './record.js';
19
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';
20
24
  export { metricsOf, otlpMetricsOf, STEP_DURATION_BOUNDS_MS, type RunMetricsV1, type CounterPointV1, type HistogramPointV1, type MetricAttributes } from './metrics.js';
25
+ export { rollupMetrics, quantilesOf, histogramQuantile, mergeHistograms, validateEstatePerformance, type EstatePerformanceV1, type QuantilesV1, type RollupExtrasV1 } from './rollup.js';
26
+ export type { TraceExporterPort, TraceExportResultV1 } from './export-port.js';
27
+ export { engagementsOf, variantDigestOf, plannerCapabilityOf, addUsage, type ModelUsageV1, type RunDoorV1, type ModelCallV1, type VariantV1, type StartingStateRefV1, type HarnessEngagementV1, type EngagementEffectV1 } from './trace-facts.js';
21
28
  export type { SpanV1, RunProvenanceV1 } from './spans.js';
22
29
  export { traceIdFor } from './spans.js';
23
30
  export { parseTraceparent, formatTraceparent, withTracestateMember, tracestateMember, traceContextOf, type TraceContextV1 } from './trace-context.js';
24
31
  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';
25
32
  export { buildFlowTrace, flowIdOf, referralOf, summarizeOutput } from './flow-trace.js';
26
33
  export type { FlowTraceV1, FlowStepV1, ReferralV1 } from './flow-trace.js';
34
+ export { reconcileByTool, type ReconcilePort, type ReconcileAnswer, type ReconcileRequest } from './reconcile.js';
35
+ export { outcomeConformance, conformEffects, statedOutcomeOf, type OutcomeClassView, type StatedOutcomeV1, classifyOpenIntent } from './conformance.js';
36
+ 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';
37
+ 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';
38
+ export { inferIntent, renderReading, skillCard, type AskerContextV1, type InferredIntentReadingV1 } from './intent.js';
39
+ 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';
40
+ export { judgeAnswerQuality, judgeOutcomeDelivered, OUTCOME_CHECK_JUDGE, type OutcomeCheckV1, type OutcomeUnitV1, judgeOutcomePerClass, outcomeQuestionOf, OUTCOME_PER_CLASS_JUDGE, type OutcomePerClassV1, type OutcomeExpectationV1, type OutcomeExpectationKindV1, type OutcomeVerdictV1, type OutcomeUnitVerdictV1, ANSWER_QUALITY_JUDGE, ANSWER_QUALITY_RUBRIC, type AnswerQualityV1, judgeAnswerPreference, ANSWER_PREFERENCE_JUDGE, type AnswerPreferenceV1 } from './answer-quality.js';
41
+ export { checkPlan, completePlan, transitionsHold, type FactsV1, type TransitionLike, type CompletionV1, type StepCheckV1, type PreconditionVerdictV1 } from './regression.js';
42
+ export { evidenceStatusOf } from './evidence.js';
43
+ export type { EvidenceStatusV1, EvidenceStatusOpts, EvidenceCoverageV1, EvidenceConsistencyV1, EvidenceOriginV1, EvidenceIntegrityV1, EvidenceAssessmentV1, EvidenceCostV1, } from './evidence.js';
27
44
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -3,20 +3,28 @@
3
3
  // The LLM bindings live in sibling adapters behind the Planner port (`orchestration-anthropic`,
4
4
  // `orchestration-openai-compat`). ADR-0044, spec 377.
5
5
  export { PACKAGE_NAME, PACKAGE_STATUS, SPEC_REF, OrchestrationError } from './types.js';
6
- export { createRuleBasedPlanner } from './planner.js';
6
+ export { createRuleBasedPlanner, renderContinuation } from './planner.js';
7
+ export { deriveArgs, untrustedArgs } from './derivation.js';
7
8
  // Spec 377 §2 — the plan-shape convention on a vendor's wire, shared by every LLM adapter.
8
9
  export { wireNameFor, toolNameMap, planStepFromToolArgs } from './planner-wire.js';
9
- export { runIntent } from './loop.js';
10
- export { planAdmission, externalExecutorsReadOnly, instructionNeedsAct, noPlaceholders, subjectNamedInAsk, dependenciesProvided, branchesDecidable, questionAnsweredByRead, capabilitiesAvailable, outcomeClassOf, squash as squashLabel } from './admission.js';
10
+ export { isToolInvocationResult, observed, describeObservation } from './tool-invoker.js';
11
+ export { runIntent, RETRIEVAL_STEP_REF, CONTINUE_STEP_ID, CONTINUE_TOOL } from './loop.js';
12
+ export { planAdmission, externalExecutorsReadOnly, foundIsNotAsked, instructionNeedsAct, noPlaceholders, subjectNamedInAsk, dependenciesProvided, branchesDecidable, questionAnsweredByRead, numbersFromTheWords, numbersSaid, partiesDistinct, actingPartyFromTheWords, kindNamedIsChartered, capabilitiesAvailable, outcomeClassOf, squash as squashLabel } from './admission.js';
11
13
  // Spec 350 §3.4 — a tool may ask the person for what it lacks; the run suspends with the prompt.
12
14
  export { InputRequired, isInputRequired, inputsFor, dataFor, signatureFor, receiptPending } from './input.js';
13
15
  export { TerminalDenial } from './durable.js';
14
16
  // Spec 370 P6 — the run record and its replay (verdicts re-derived, tools never re-run).
15
- export { recordOf, replayingInvoker, replayRun } from './record.js';
17
+ export { recordOf, runMarks, replayingInvoker, replayRun, completedFromRecord } from './record.js';
18
+ // Spec 408 §2.3 — the digest of the plan as written, bound by a mandate and presented on every step.
19
+ export { planDigest, planStepAsWritten } from './plan-digest.js';
16
20
  // Spec 381 — the run, exported: firewalled spans + the durable half for the vault. Pure projections of a record.
17
21
  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';
18
22
  // Spec 390 W4 — the run as metrics: four instruments from one record, the OTLP metrics body beside the traces body.
19
23
  export { metricsOf, otlpMetricsOf, STEP_DURATION_BOUNDS_MS } from './metrics.js';
24
+ // Spec 437 I5 — the estate's performance block: a pure rollup of many runs' metrics into the quantiles an estate reports on its heartbeat.
25
+ export { rollupMetrics, quantilesOf, histogramQuantile, mergeHistograms, validateEstatePerformance } from './rollup.js';
26
+ // Spec 414 A1 — the trace from the door: door, model calls, variant, starting state, harness-capability engagements.
27
+ export { engagementsOf, variantDigestOf, plannerCapabilityOf, addUsage } from './trace-facts.js';
20
28
  export { traceIdFor } from './spans.js';
21
29
  // Spec 390 W2 — W3C Trace Context on the wire: parse, format, tracestate members. Correlation, never trust.
22
30
  export { parseTraceparent, formatTraceparent, withTracestateMember, tracestateMember, traceContextOf } from './trace-context.js';
@@ -24,4 +32,21 @@ export { parseTraceparent, formatTraceparent, withTracestateMember, tracestateMe
24
32
  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 } from './artifacts.js';
25
33
  // Spec 387 W2 / spec 399 §4 — the flow trace: a run's story on its task, folded from RunEvents + the planner summary. Evidence, never authority.
26
34
  export { buildFlowTrace, flowIdOf, referralOf, summarizeOutput } from './flow-trace.js';
35
+ // Spec 410 §3 — reconcile before every retry, per effect kind.
36
+ export { reconcileByTool } from './reconcile.js';
37
+ // Spec 410 §6 — conformance for open intents: what the stated outcome entails, before anything is offered.
38
+ export { outcomeConformance, conformEffects, statedOutcomeOf, classifyOpenIntent } from './conformance.js';
39
+ // Spec 415 A4 — skill selection by declared vocabulary (`skill-selection/rules`): chooses with a margin or holds.
40
+ export { selectByDeclaredUtterances, tokensOf, overlap, DEFAULT_DECLARED_SELECTION, groundInLexicon, decideFromGrounding, selectByOntology, selectByJudgment, DEFAULT_JUDGMENT_SELECTION, SELECTION_JUDGE, NEEDS_CLARIFICATION, NEEDS_SEVERAL, SELECTION_JUDGE_FAST, SELECTION_JUDGE_FAST_V3, SELECTION_JUDGE_LOGPROB, selectByOntologyFirst, foldSelectionAbstentions, calibrateByTemperature, conformalSetOf, OUTSIDE_DOMAIN, selectByOntologyThenJudgment, proposeFromGrounding, selectByProposalThenJudgment, DEFAULT_PROPOSAL, selectByFramedJudgment, DEFAULT_FRAMED_SELECTION, FRAMED_JUDGE } from './selection.js';
41
+ // Spec 414 §3.4 J1–J13 — the judgment capability: typed questions, a distribution per question, a declared decision rule.
42
+ export { judgeQuestions, judgeQuestionsAveraged, logprobChoiceDecisionModel, applyDecisionRule, explainAnswer, answerOf, outcomesOf, shapeOf, structuredCallDecisionModel, NOT_APPLICABLE } from './judgment.js';
43
+ // Spec 416 §4f — the inferred intent: the request read into the ontology's terms + what is known of the asker.
44
+ export { inferIntent, renderReading, skillCard } from './intent.js';
45
+ export { outcomeGraphOf, consumedClassesOf, edgesOf, edgeKey, edgeByParty, upstreamInputsOf, downstreamOf, absenceStatement, planOptionsAround, choosePlanAround, PLAN_CHOICE_JUDGE, planForPicked, OUTCOME_JUDGE_SELECTIVE, glossOf, planForOutcome, selectByOutcome, outcomeSteps, OUTCOME_JUDGE, DEFAULT_OUTCOME_PARAMS, DEFAULT_OUTCOME_BOUNDS } from './outcome.js';
46
+ // Spec 416 §4h — answer quality, judged by typed yes-no questions over (request, skill card, answer); numbers only.
47
+ export { judgeAnswerQuality, judgeOutcomeDelivered, OUTCOME_CHECK_JUDGE, judgeOutcomePerClass, outcomeQuestionOf, OUTCOME_PER_CLASS_JUDGE, ANSWER_QUALITY_JUDGE, ANSWER_QUALITY_RUBRIC, judgeAnswerPreference, ANSWER_PREFERENCE_JUDGE } from './answer-quality.js';
48
+ // Spec 420 §2 — goal regression over situations (pure; transitions and facts supplied).
49
+ export { checkPlan, completePlan, transitionsHold } from './regression.js';
50
+ // Spec 438 §4 — evidence status: five separate answers about what a run left behind, never one flag.
51
+ export { evidenceStatusOf } from './evidence.js';
27
52
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0GAA0G;AAC1G,2GAA2G;AAC3G,gGAAgG;AAChG,sDAAsD;AAEtD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAYxF,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,2FAA2F;AAC3F,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAInF,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,cAAc,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAC;AA4BjQ,iGAAiG;AACjG,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG9G,OAAO,EAAE,cAAc,EAAgE,MAAM,cAAc,CAAC;AAC5G,yFAAyF;AACzF,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEpE,iHAAiH;AACjH,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACrQ,oHAAoH;AACpH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,uBAAuB,EAAwF,MAAM,cAAc,CAAC;AAEvK,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,4GAA4G;AAC5G,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,cAAc,EAAuB,MAAM,oBAAoB,CAAC;AACtJ,oHAAoH;AACpH,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,aAAa,EAAE,qBAAqB,EAAE,WAAW,EAAE,mBAAmB,EAAE,aAAa,EAAE,oBAAoB,EAAoI,MAAM,gBAAgB,CAAC;AACtd,iJAAiJ;AACjJ,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import type { DomainLexiconV1, GroundingV1, JudgmentCandidateV1, OntologyCandidateV1 } from './selection.js';
2
+ /** What the agent knows about who is asking — gathered by the harness from what it already holds. Labels and ids only. */
3
+ export interface AskerContextV1 {
4
+ /** The asker's standing toward this agent. */
5
+ relation?: 'self' | 'steward' | 'member' | 'stranger';
6
+ /** Skills this asker used here recently, most frequent first (tool ids with counts). */
7
+ recentSkills?: ReadonlyArray<{
8
+ id: string;
9
+ times: number;
10
+ }>;
11
+ /** What the person's own agent remembers about them that bears on a request — short tags ("faith journey: new
12
+ * believer", "poker: intermediate"), never a record's text. Present only at the person's own agent. */
13
+ memoryTags?: readonly string[];
14
+ /** Spec 417 — domain classes the asker already HOLDS (class IRIs of their typed records, or a comparison's seeded
15
+ * state): a chain does not re-produce what is in hand. Classes only, never the records. */
16
+ heldClasses?: readonly string[];
17
+ }
18
+ export interface InferredIntentReadingV1 {
19
+ /** Classes the request's words name, with the term that named each. */
20
+ names: GroundingV1[];
21
+ /** Spec 418 D4 — the asker's OFFICE, from their memory tags grounded in the lexicon's role classes (a class that declares
22
+ * `uses`), with the capabilities that role typically uses: a prior the judge weighs, never a filter. */
23
+ offices?: Array<{
24
+ iri: string;
25
+ uses: string[];
26
+ }>;
27
+ /** Classes sharing a semantic cluster with a named one (not named themselves). */
28
+ near: string[];
29
+ asker?: AskerContextV1;
30
+ }
31
+ /** Read the request into the ontology's terms (and carry what is known of the asker). */
32
+ export declare function inferIntent(ask: string, candidates: ReadonlyArray<OntologyCandidateV1>, lexicon?: DomainLexiconV1, asker?: AskerContextV1): InferredIntentReadingV1;
33
+ /** The reading as the judge sees it — labels, not IRIs; short. */
34
+ export declare function renderReading(ask: string, reading: InferredIntentReadingV1, labelOf: (iri: string) => string): string;
35
+ /** A skill's CARD in the ontology's terms: one line of purpose, what it produces, what it is not for. */
36
+ export declare function skillCard(c: JudgmentCandidateV1): string;
37
+ //# sourceMappingURL=intent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent.d.ts","sourceRoot":"","sources":["../src/intent.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAG7G,0HAA0H;AAC1H,MAAM,WAAW,cAAc;IAC7B,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;IACtD,wFAAwF;IACxF,YAAY,CAAC,EAAE,aAAa,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D;4GACwG;IACxG,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B;gGAC4F;IAC5F,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,uBAAuB;IACtC,uEAAuE;IACvE,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB;6GACyG;IACzG,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACjD,kFAAkF;IAClF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB;AAED,yFAAyF;AACzF,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,uBAAuB,CAYnK;AAED,kEAAkE;AAClE,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAYrH;AAED,yGAAyG;AACzG,wBAAgB,SAAS,CAAC,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAMxD"}
package/dist/intent.js ADDED
@@ -0,0 +1,46 @@
1
+ import { groundInLexicon } from './selection.js';
2
+ /** Read the request into the ontology's terms (and carry what is known of the asker). */
3
+ export function inferIntent(ask, candidates, lexicon, asker) {
4
+ const names = groundInLexicon(ask, candidates, lexicon);
5
+ const named = new Set(names.map((g) => g.iri));
6
+ const clustersOf = new Map((lexicon ?? []).map((e) => [e.iri, e.clusters]));
7
+ const clusters = new Set([...named].flatMap((iri) => clustersOf.get(iri) ?? []));
8
+ const near = (lexicon ?? []).filter((e) => !named.has(e.iri) && e.clusters.some((c) => clusters.has(c))).map((e) => e.iri).sort();
9
+ // The asker's office: their memory tags grounded in the role classes only (a role word in the request is the request's).
10
+ const roles = (lexicon ?? []).filter((e) => e.uses?.length);
11
+ const offices = asker?.memoryTags?.length && roles.length
12
+ ? groundInLexicon(asker.memoryTags.join(' . '), [], roles).map((g) => ({ iri: g.iri, uses: [...(roles.find((e) => e.iri === g.iri)?.uses ?? [])] }))
13
+ : [];
14
+ return { names, near, ...(offices.length ? { offices } : {}), ...(asker ? { asker } : {}) };
15
+ }
16
+ /** The reading as the judge sees it — labels, not IRIs; short. */
17
+ export function renderReading(ask, reading, labelOf) {
18
+ const lines = [`Request: ${ask}`];
19
+ if (reading.names.length)
20
+ lines.push(`It names (domain terms): ${reading.names.map((g) => `${labelOf(g.iri)} ("${g.term}")`).join('; ')}.`);
21
+ else
22
+ lines.push('It names no term of this domain\'s vocabulary.');
23
+ if (reading.near.length)
24
+ lines.push(`Nearby in the domain: ${reading.near.slice(0, 8).map(labelOf).join(', ')}.`);
25
+ const a = reading.asker;
26
+ if (a?.relation)
27
+ lines.push(`Asked by: ${a.relation === 'self' ? 'the agent\'s own principal' : `a ${a.relation} of this agent`}.`);
28
+ if (a?.recentSkills?.length)
29
+ lines.push(`This asker recently used: ${a.recentSkills.slice(0, 4).map((s) => `${s.id} (${s.times}×)`).join(', ')}.`);
30
+ if (a?.memoryTags?.length)
31
+ lines.push(`Known about the asker: ${a.memoryTags.slice(0, 6).join('; ')}.`);
32
+ for (const o of reading.offices ?? [])
33
+ lines.push(`The asker's role: ${labelOf(o.iri)} — a role that typically uses ${o.uses.join(', ')}.`);
34
+ if (a?.heldClasses?.length)
35
+ lines.push(`The asker already holds: ${a.heldClasses.slice(0, 8).map(labelOf).join(', ')}.`);
36
+ return lines.join('\n');
37
+ }
38
+ /** A skill's CARD in the ontology's terms: one line of purpose, what it produces, what it is not for. */
39
+ export function skillCard(c) {
40
+ const purpose = c.description.split(/\bNOT for\b/i)[0].replace(/\s+/g, ' ').trim();
41
+ const oneLine = purpose.length > 180 ? `${purpose.slice(0, 177).replace(/\s+\S*$/, '')}…` : purpose;
42
+ const produces = (c.covers ?? []).map((k) => k.label).join(', ');
43
+ const notFor = (c.excludes ?? []).map((k) => k.label).join(', ');
44
+ return `${oneLine}${produces ? ` Produces: ${produces}.` : ''}${notFor ? ` Not for: ${notFor}.` : ''}`;
45
+ }
46
+ //# sourceMappingURL=intent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent.js","sourceRoot":"","sources":["../src/intent.ts"],"names":[],"mappings":"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"}