@actuarial-ts/agents 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,156 +1,58 @@
1
1
  # @actuarial-ts/agents
2
2
 
3
- Mastra agent toolkit for the actuarial-ts SDK: typed actuarial tools with a hard tenant seam, human-gated judgment workflows that write the compliance assumption ledger, a four-gate study-promotion chain (`promoteStudy`), a remote-engine bridge (`defineRemoteMethod`) with a referee divergence explainer, a fail-closed MCP tenant seam, a reserving advisor factory, and a golden-prompt eval harness.
3
+ Mastra tools and human-gated workflows for actuarial-ts. It is an orchestration boundary around the other four packages, not an autonomous actuary.
4
4
 
5
- The package generalizes the agent architecture proven in the ActNG reserving workbench. Its core idea: when an agent participates in an actuarial analysis, the documentation ASOP 41 asks for should fall out of RUNNING the analysis, not be reconstructed afterwards. Judgment chains built here write an `@actuarial-ts/compliance` assumption ledger as decisions are made, so a completed chain hands back a ledger ready for `generateDisclosure`.
6
-
7
- These utilities are designed to support the actuary's compliance with the ASOPs; responsibility for compliance remains with the credentialed actuary.
8
-
9
- ## Install
10
-
11
- ```sh
12
- npm install @actuarial-ts/agents @mastra/core zod
13
- # plus @mastra/mcp if you use the MCP surface:
14
- npm install @mastra/mcp
5
+ ```bash
6
+ npm install @actuarial-ts/agents@0.6.0 @actuarial-ts/core@0.6.0 @actuarial-ts/data@0.6.0 @actuarial-ts/interchange@0.6.0 @actuarial-ts/compliance@0.6.0 @mastra/core@^1.51.0 @mastra/mcp@^1.14.0 zod@^3.25.76
15
7
  ```
16
8
 
17
- `@mastra/core` (>= 1.49, < 2), `zod` (^3.25), and `@mastra/mcp` (>= 1.14, < 2) are peer dependencies: the HOST application owns the Mastra version. `@mastra/mcp` is only needed if you use the MCP surface. `@actuarial-ts/core`, `@actuarial-ts/interchange`, `@actuarial-ts/data`, and `@actuarial-ts/compliance` are regular dependencies, installed for you.
18
-
19
- ## Security model
20
-
21
- The tenant id (project id) reaches tools ONLY via the server-set request context, never from the model. The package enforces the seam at both ends:
9
+ Requires Node 22.13+. Peer ranges are `@mastra/core >=1.51.0 <2`, `@mastra/mcp >=1.14.0 <2`, and Zod `^3.25.76`.
22
10
 
23
- - `tenantOf(context, key = "projectId")` reads the tenant from `context.requestContext`, set server-side from the authenticated request. Missing, non-string, or empty ids throw a typed `AgentsError("NO_TENANT_CONTEXT")`, which the tool wrapper converts to a failure envelope.
24
- - `defineActuarialTool` REJECTS, at definition time, any input schema declaring a tenant-id key (`projectId`, `tenantId`, `project_id`, ... in any casing) with `AgentsError("TENANT_IN_SCHEMA")`. The model must not even be able to express a tenant id.
25
-
26
- Tools never throw into the model. Anything the tool body throws becomes:
27
-
28
- ```ts
29
- { success: false, error: { code: string, message: string } }
30
- ```
11
+ ## Trusted diagnostic selection
31
12
 
32
- Errors carrying a string `code` property (HTTP-style coded errors, `AgentsError`, `ComplianceError`) keep their code so the agent can recover deliberately: retry with adjusted parameters, suggest an alternative, or ask.
13
+ `createDiagnosticSelectionTool` lets a model choose only reviewed instance IDs, one host-approved run preset, and a display view. The host owns the authentic compiled definition, allowable instance catalog, cutoff/filter/grouping policy, tenant, data access, and executor.
33
14
 
34
15
  ```ts
35
- import { defineActuarialTool, tenantOf, toolRegistry } from "@actuarial-ts/agents";
36
- import { z } from "zod";
37
-
38
- const getOverview = defineActuarialTool({
39
- id: "get_workspace_overview",
40
- description: "Orient yourself in the workspace",
41
- kind: "read", // or "action" for state-mutating tools
42
- inputSchema: z.object({}),
43
- execute: async (_input, context) => {
44
- const projectId = tenantOf(context);
45
- return { success: true, ...loadOverview(projectId) };
46
- },
16
+ import { createDiagnosticSelectionTool } from "@actuarial-ts/agents";
17
+
18
+ const tool = createDiagnosticSelectionTool({
19
+ definition: compiledDefinition,
20
+ presets: [{
21
+ id: "annual-review-v1",
22
+ definitionIntegrity: compiledDefinition.definitionIntegrity,
23
+ allowedInstanceIds: ["casualty/count/reported-frequency"],
24
+ execute: ({ tenant, instanceIds }) => runApprovedPreset({ tenant, instanceIds }),
25
+ }],
47
26
  });
48
-
49
- const { tools, actionToolIds } = toolRegistry([getOverview /* , ... */]);
50
- // tools -> Record keyed by id, ready for new Agent({ tools })
51
- // actionToolIds -> the host client refreshes after these run
52
27
  ```
53
28
 
54
- ## Judgment chains: propose, justify, approve, record
55
-
56
- `createJudgmentChain` turns an ordered list of `JudgmentGateSpec`s into a committed Mastra workflow that pauses at EVERY actuarial judgment:
57
-
58
- 1. **Propose.** The gate gathers evidence through your service layer and suspends with `{ stage, recommendation, evidence }`.
59
- 2. **Justify and approve.** A human decides; the resume payload carries the decision plus a VERBATIM rationale (schemas without a `rationale` key are rejected at definition time; blank rationales fail the gate at runtime).
60
- 3. **Record.** `applyDecision` applies the decision through your service layer and returns the assumptions it fixed; the chain appends them to the threaded ledger with the rationale, the actor from the payload's optional `actor` field (default `"actuary"`), and a timestamp from the host-injected `now()` (the package never reads a clock).
61
-
62
- A gate may also self-skip (`skipWhen`) based on earlier gates' decisions, recording a skip note in the trail - the shape the ActNG ELR derivation uses when the cap gate chose to stay unlimited and the restoration gate becomes moot.
29
+ The strict model input contains only:
63
30
 
64
31
  ```ts
65
- import { createJudgmentChain } from "@actuarial-ts/agents";
66
- import { generateDisclosure } from "@actuarial-ts/compliance";
67
- import { Mastra } from "@mastra/core/mastra";
68
-
69
- const chain = createJudgmentChain({
70
- id: "derive-expected-losses",
71
- gates: [capGate, ilfGate, trendGate, elrGate],
72
- now: () => new Date().toISOString(), // the host owns the clock
73
- onComplete: async ({ trail, ledger }, ctx) => {
74
- persistTrailNote(tenantOf(ctx), trail, ledger);
75
- },
76
- });
77
-
78
- // Register for snapshot storage (suspend/resume state lives there; durable
79
- // storage keeps paused chains resumable across restarts).
80
- const mastra = new Mastra({ workflows: { chain }, storage });
81
-
82
- const run = await mastra.getWorkflow("chain").createRun();
83
- let state = await run.start({ inputData: {}, requestContext }); // suspended at gate 1
84
- state = await run.resume({
85
- step: "cap-gate",
86
- resumeData: { decision: "accept", cap: 150_000, rationale: "volatile large losses distort development" },
87
- requestContext,
88
- });
89
- // ... resume each gate; the final result is { trail, ledger }
32
+ type DiagnosticAgentToolInput = {
33
+ runPresetId: string;
34
+ instanceIds: string[];
35
+ view: "emergence" | "triangles" | "latest-diagonal";
36
+ };
90
37
  ```
91
38
 
92
- ### The ledger fusion
39
+ It cannot contain formulas, measures, count populations, amount/exposure bases, missingness, period axes, arbitrary filters, provenance, or project/tenant IDs. The executor must return owner-authenticated `VerifiedDiagnosticRunProvenance` stamped for the exact definition, preset, and sorted selection; a cached superset is rejected rather than display-filtered into an apparent run.
93
40
 
94
- The completed chain's `ledger` is a real `@actuarial-ts/compliance` `AssumptionLedger`: every human decision is an `AssumptionEntry` with actor, verbatim rationale, and caller-supplied timestamp. Feed it straight into the disclosure pipeline:
41
+ Success returns formula/calculation/definition identities, run/result/binding fingerprints, the full review receipt (including triggered and not-evaluated rules), and one explicitly display-only projection. There is no definition-editing path; changing a basis or rule requires a separate human-governed workflow.
95
42
 
96
- ```ts
97
- const { trail, ledger } = finalResult;
98
- const disclosure = generateDisclosure({
99
- metadata, // EstimateMetadata for the analysis
100
- methods, // MethodUse[]
101
- ledger, // the chain's fused ledger, judgments and rationales included
102
- sdkVersion,
103
- generatedAt: now(),
104
- });
105
- ```
106
-
107
- ASOP 41 assumptions-and-judgments documentation as a side effect of running the analysis.
108
-
109
- ### Footgun: workflows are accidental thenables
110
-
111
- A Mastra `Workflow` exposes a `.then(step)` builder method, so `await chain` (or returning a workflow from an `async` function) makes JavaScript treat it as a thenable and the promise NEVER settles. Assign the chain synchronously and register it on your Mastra instance.
112
-
113
- ## Reserving advisor factory
114
-
115
- `createReservingAdvisor` assembles an `@mastra/core` Agent on a hardened base instruction template: professional grounding, every-number-from-a-tool-result, read-before-recommend ordering, action consent, failure recovery, and selection-of-ultimates weighting guidance. Host domain sections splice in between the base analytics and the conduct section.
43
+ ## Tool boundary
116
44
 
117
- The template is auditable by construction: `BASE_INSTRUCTIONS` exports the named sections and `assembleInstructions` is a pure deterministic string function, so hosts can byte-inspect (and snapshot-test) the exact prompt their agent runs on.
45
+ `defineActuarialTool` enforces two shared rules. First, required tenant identity is resolved from trusted request context before the body runs; the model schema cannot express a project/tenant key. Second, every failure is a recursively readonly `{ success: false, error: { code, message } }` result rather than a thrown model-visible exception.
118
46
 
119
- ```ts
120
- import { createReservingAdvisor, assembleInstructions } from "@actuarial-ts/agents";
121
-
122
- const advisor = createReservingAdvisor({
123
- model: anthropic("claude-sonnet-4-5"),
124
- tools,
125
- memory,
126
- domainInstructions: [ldfSelectionGuide, cappingGuide, tailGuide],
127
- });
128
-
129
- // What is this agent actually running on? Byte-inspect it:
130
- const prompt = assembleInstructions({ domainInstructions: [ldfSelectionGuide, cappingGuide, tailGuide] });
131
- ```
47
+ In 0.6 the public `DefinedActuarialTool<TInput, TOutput>` execute accepts raw `z.input`, parses exactly once, gives the body `z.output`, and returns only the body result or `ToolEnvelopeFailure`. Input/output schemas remain attached through identity-validation metadata bridges whose JSON Schema matches the private real Zod schema, so Mastra cannot run transforms twice. Invalid input is `TOOL_INPUT_INVALID`; malformed/undefined output is `TOOL_OUTPUT_INVALID`. A supplied output schema must accept and preserve the complete failure union or construction throws `BAD_OUTPUT_SCHEMA`. Failure envelopes cannot be rewritten by conditional transforms.
132
48
 
133
- ## Eval harness
49
+ ## Human judgment and remote engines
134
50
 
135
- `runToolSelectionEvals` asserts tool SELECTION, not prose: each golden case lists the tools that must appear among the turn's calls. Running against a real agent costs live API tokens, so keep it opt-in (an env flag in a script, never in package tests).
51
+ `createJudgmentChain` suspends at declared gates, requires a rationale on resume, records the authenticated actor identity, and writes the compliance assumption ledger. `createReservingAdvisor` assembles a constrained Mastra advisor. `defineRemoteMethod` calls an authenticated interchange sidecar with timeouts, abort support, client-side document validation, and the same tenant/failure seam. Promotion workflows replay and referee imported studies before any selection can enter a workspace.
136
52
 
137
- ```ts
138
- import { runToolSelectionEvals } from "@actuarial-ts/agents";
139
-
140
- const report = await runToolSelectionEvals({
141
- agent: advisor,
142
- requestContext,
143
- cases: [
144
- { id: "cap-evidence", prompt: "Should we cap this book? Check the claim-size evidence first.", expectTools: ["analyze_claim_sizes"] },
145
- { id: "elr-select", prompt: "Select an expected loss ratio of 65%.", expectTools: ["set_elr"] },
146
- ],
147
- timeoutMs: 180_000, // a stalled stream fails the case, not the suite
148
- });
149
- // report.results: per-case { id, pass, called, missing, error? }
150
- // report.summary: { total, passed, failed }
151
- ```
53
+ The package’s offline test suite covers trusted catalog selection, direct/Mastra-shaped execution, tenant failure, once-only transforms, provenance coherence, judgment gates, remote sidecar behavior, promotion, and golden-prompt tool selection.
152
54
 
153
- The `agent` parameter is typed structurally (anything with a `stream()` yielding a `fullStream`), so the harness itself is testable with a stubbed agent and canned chunks - no LLM, no network.
55
+ See the [formula catalog](https://github.com/yerromnitsuj/actng/blob/v0.6.0/docs/reference/diagnostic-formulas.md) and [migration guide](https://github.com/yerromnitsuj/actng/blob/v0.6.0/docs/migrations/0.6-generalized-diagnostics.md).
154
56
 
155
57
  ## License
156
58
 
@@ -0,0 +1,64 @@
1
+ import { type CompiledDiagnosticDefinition, type DiagnosticDeepReadonly } from "@actuarial-ts/core";
2
+ import { type VerifiedDiagnosticRunProvenance } from "@actuarial-ts/compliance";
3
+ import { z } from "zod";
4
+ import { type DefinedActuarialTool, type ToolEnvelopeFailure } from "./tools.js";
5
+ export declare const diagnosticAgentToolInputSchema: z.ZodObject<{
6
+ runPresetId: z.ZodString;
7
+ instanceIds: z.ZodArray<z.ZodString, "many">;
8
+ view: z.ZodEnum<["emergence", "triangles", "latest-diagonal"]>;
9
+ }, "strict", z.ZodTypeAny, {
10
+ runPresetId: string;
11
+ instanceIds: string[];
12
+ view: "emergence" | "triangles" | "latest-diagonal";
13
+ }, {
14
+ runPresetId: string;
15
+ instanceIds: string[];
16
+ view: "emergence" | "triangles" | "latest-diagonal";
17
+ }>;
18
+ export type DiagnosticAgentToolInput = z.input<typeof diagnosticAgentToolInputSchema>;
19
+ export interface DiagnosticAgentRunPreset {
20
+ readonly id: string;
21
+ readonly definitionIntegrity: string;
22
+ readonly allowedInstanceIds: readonly string[];
23
+ readonly execute: (input: {
24
+ readonly tenant: string;
25
+ readonly instanceIds: readonly string[];
26
+ }) => Promise<VerifiedDiagnosticRunProvenance>;
27
+ }
28
+ export interface CreateDiagnosticSelectionToolInput {
29
+ readonly definition: CompiledDiagnosticDefinition;
30
+ readonly presets: readonly DiagnosticAgentRunPreset[];
31
+ readonly id?: string;
32
+ readonly description?: string;
33
+ readonly tenantContextKey?: string;
34
+ }
35
+ export type DiagnosticAgentDisplayProjection = {
36
+ readonly view: "emergence";
37
+ readonly value: VerifiedDiagnosticRunProvenance["result"]["emergence"];
38
+ } | {
39
+ readonly view: "triangles";
40
+ readonly value: VerifiedDiagnosticRunProvenance["result"]["triangles"];
41
+ } | {
42
+ readonly view: "latest-diagonal";
43
+ readonly value: VerifiedDiagnosticRunProvenance["result"]["latestDiagonal"];
44
+ };
45
+ export type DiagnosticAgentDisplayPoint = VerifiedDiagnosticRunProvenance["result"]["emergence"][number] | VerifiedDiagnosticRunProvenance["result"]["triangles"][number] | VerifiedDiagnosticRunProvenance["result"]["latestDiagonal"][number];
46
+ export interface DiagnosticAgentToolSuccess {
47
+ readonly success: true;
48
+ readonly runPresetId: string;
49
+ readonly instanceIds: readonly string[];
50
+ readonly definitionIntegrity: string;
51
+ readonly formulaFingerprints: Readonly<Record<string, string>>;
52
+ readonly calculationFingerprints: Readonly<Record<string, string>>;
53
+ readonly runFingerprint: string;
54
+ readonly resultFingerprint: string;
55
+ readonly runResultFingerprint: string;
56
+ readonly review: VerifiedDiagnosticRunProvenance["review"];
57
+ readonly display: DiagnosticAgentDisplayProjection;
58
+ }
59
+ export type DiagnosticAgentToolResult = DiagnosticDeepReadonly<DiagnosticAgentToolSuccess> | ToolEnvelopeFailure;
60
+ /** Strict model-visible output schema, including the wrapper's failure branch. */
61
+ export declare const diagnosticAgentToolResultSchema: z.ZodType<DiagnosticAgentToolResult>;
62
+ export type DiagnosticSelectionTool = DefinedActuarialTool<DiagnosticAgentToolInput, DiagnosticAgentToolResult>;
63
+ export declare function createDiagnosticSelectionTool(input: CreateDiagnosticSelectionToolInput): DiagnosticSelectionTool;
64
+ //# sourceMappingURL=diagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ import { assertCompiledDiagnosticDefinition } from "@actuarial-ts/core";
2
+ import { assertVerifiedDiagnosticRunProvenance } from "@actuarial-ts/compliance";
3
+ import { z } from "zod";
4
+ import { AgentsError } from "./errors.js";
5
+ import { defineActuarialTool } from "./tools.js";
6
+ export const diagnosticAgentToolInputSchema = z.object({
7
+ runPresetId: z.string().min(1),
8
+ instanceIds: z.array(z.string().min(1)).min(1),
9
+ view: z.enum(["emergence", "triangles", "latest-diagonal"]),
10
+ }).strict();
11
+ const toolFailureSchema = z.object({ success: z.literal(false), error: z.object({ code: z.string(), message: z.string() }).strict() }).strict();
12
+ const displaySchema = z.discriminatedUnion("view", [
13
+ z.object({ view: z.literal("emergence"), value: z.custom() }).strict(),
14
+ z.object({ view: z.literal("triangles"), value: z.custom() }).strict(),
15
+ z.object({ view: z.literal("latest-diagonal"), value: z.custom() }).strict(),
16
+ ]);
17
+ const toolSuccessSchema = z.object({
18
+ success: z.literal(true), runPresetId: z.string(), instanceIds: z.array(z.string()), definitionIntegrity: z.string(),
19
+ formulaFingerprints: z.record(z.string()), calculationFingerprints: z.record(z.string()), runFingerprint: z.string(),
20
+ resultFingerprint: z.string(), runResultFingerprint: z.string(), review: z.custom(),
21
+ display: displaySchema,
22
+ }).strict();
23
+ /** Strict model-visible output schema, including the wrapper's failure branch. */
24
+ export const diagnosticAgentToolResultSchema = z.union([toolSuccessSchema, toolFailureSchema]);
25
+ function token(value, label) { if (value.length === 0 || /^[\t-\r ]|[\t-\r ]$/.test(value) || value.includes("\0"))
26
+ throw new AgentsError("BAD_DIAGNOSTIC_CATALOG", `${label} must be a nonempty token`); }
27
+ function sortUniqueRequested(values) { const result = [...new Set(values)]; result.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); return result; }
28
+ export function createDiagnosticSelectionTool(input) {
29
+ try {
30
+ assertCompiledDiagnosticDefinition(input.definition);
31
+ }
32
+ catch {
33
+ throw new AgentsError("BAD_DIAGNOSTIC_CATALOG", "definition must be an authentic compiled diagnostic definition");
34
+ }
35
+ const id = input.id ?? "run_diagnostic_selection";
36
+ const description = input.description ?? "Run a host-approved diagnostic preset for selected registered metric instances.";
37
+ const tenantKey = input.tenantContextKey ?? "projectId";
38
+ token(id, "tool id");
39
+ token(tenantKey, "tenant context key");
40
+ if (description.trim().length === 0)
41
+ throw new AgentsError("BAD_DIAGNOSTIC_CATALOG", "description must be nonblank");
42
+ if (input.presets.length === 0)
43
+ throw new AgentsError("BAD_DIAGNOSTIC_CATALOG", "at least one approved diagnostic preset is required");
44
+ const known = new Set(input.definition.definition.instances.map((item) => item.id));
45
+ const catalog = new Map();
46
+ for (const preset of input.presets) {
47
+ token(preset.id, "preset id");
48
+ if (catalog.has(preset.id))
49
+ throw new AgentsError("BAD_DIAGNOSTIC_CATALOG", `duplicate preset ${preset.id}`);
50
+ if (preset.definitionIntegrity !== input.definition.definitionIntegrity)
51
+ throw new AgentsError("BAD_DIAGNOSTIC_CATALOG", `preset ${preset.id} targets another definition`);
52
+ if (typeof preset.execute !== "function")
53
+ throw new AgentsError("BAD_DIAGNOSTIC_CATALOG", `preset ${preset.id} has no executor`);
54
+ const seen = new Set();
55
+ for (const instanceId of preset.allowedInstanceIds) {
56
+ token(instanceId, "allowed instance id");
57
+ if (seen.has(instanceId))
58
+ throw new AgentsError("BAD_DIAGNOSTIC_CATALOG", `preset ${preset.id} repeats ${instanceId}`);
59
+ if (!known.has(instanceId))
60
+ throw new AgentsError("BAD_DIAGNOSTIC_CATALOG", `preset ${preset.id} references unknown instance ${instanceId}`);
61
+ seen.add(instanceId);
62
+ }
63
+ if (seen.size === 0)
64
+ throw new AgentsError("BAD_DIAGNOSTIC_CATALOG", `preset ${preset.id} has no allowed instances`);
65
+ catalog.set(preset.id, Object.freeze({ definitionIntegrity: preset.definitionIntegrity, allowedInstanceIds: Object.freeze([...seen].sort()), execute: preset.execute }));
66
+ }
67
+ return defineActuarialTool({ id, description, kind: "read", tenant: "required", tenantKey, inputSchema: diagnosticAgentToolInputSchema, outputSchema: diagnosticAgentToolResultSchema, execute: async (raw, tenant) => {
68
+ const preset = catalog.get(raw.runPresetId);
69
+ if (!preset)
70
+ throw new AgentsError("UNKNOWN_DIAGNOSTIC_PRESET", `Unknown diagnostic preset ${raw.runPresetId}`);
71
+ const selected = sortUniqueRequested(raw.instanceIds);
72
+ if (selected.some((item) => !preset.allowedInstanceIds.includes(item)))
73
+ throw new AgentsError("UNAPPROVED_DIAGNOSTIC_INSTANCE", "One or more diagnostic instances are not approved by the selected preset");
74
+ const provenance = await preset.execute({ tenant, instanceIds: selected });
75
+ try {
76
+ assertVerifiedDiagnosticRunProvenance(provenance);
77
+ }
78
+ catch {
79
+ throw new AgentsError("DIAGNOSTIC_RUN_MISMATCH", "Preset executor returned unauthenticated diagnostic provenance");
80
+ }
81
+ const filter = provenance.manifest.preparation.filter;
82
+ if (provenance.definitionIdentities.definition !== input.definition.definitionIntegrity || provenance.manifest.runPresetId !== raw.runPresetId || !filter || JSON.stringify(filter.instanceIds ?? []) !== JSON.stringify(selected))
83
+ throw new AgentsError("DIAGNOSTIC_RUN_MISMATCH", "Verified run does not match the selected definition, preset, and exact instance set");
84
+ const instances = input.definition.definition.instances.filter((item) => selected.includes(item.id));
85
+ const formulaIds = [...new Set(instances.map((item) => item.formulaId))].sort();
86
+ const formulaFingerprints = Object.fromEntries(formulaIds.map((formulaId) => [formulaId, provenance.definitionIdentities.formulaById[formulaId]]));
87
+ const calculationFingerprints = Object.fromEntries(selected.map((instanceId) => [instanceId, provenance.definitionIdentities.calculationByInstanceId[instanceId]]));
88
+ const display = raw.view === "emergence" ? { view: "emergence", value: provenance.result.emergence } : raw.view === "triangles" ? { view: "triangles", value: provenance.result.triangles } : { view: "latest-diagonal", value: provenance.result.latestDiagonal };
89
+ return { success: true, runPresetId: raw.runPresetId, instanceIds: selected, definitionIntegrity: provenance.definitionIdentities.definition, formulaFingerprints, calculationFingerprints, runFingerprint: provenance.runFingerprint, resultFingerprint: provenance.resultFingerprint, runResultFingerprint: provenance.runResultFingerprint, review: provenance.review, display };
90
+ } });
91
+ }
92
+ //# sourceMappingURL=diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"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"}
@@ -193,9 +193,10 @@ export declare function assembleDivergencePrompt(evidence: DivergenceEvidence):
193
193
  * the request context. Read-only by construction - it can only restate what
194
194
  * explainDivergence assembled; there is nothing to mutate.
195
195
  */
196
- export declare function createDivergenceEvidenceTool(): import("@mastra/core/tools").Tool<{}, unknown, unknown, unknown, import("@mastra/core/tools").ToolExecutionContext<unknown, unknown, unknown>, string, unknown> & {
197
- kind: import("./tools.js").ActuarialToolKind;
198
- };
196
+ export declare function createDivergenceEvidenceTool(): import("./tools.js").DefinedActuarialTool<{}, import("./tools.js").ToolEnvelopeFailure | {
197
+ success: true;
198
+ evidence: DivergenceEvidence;
199
+ }>;
199
200
  /** Config slices lifted from the installed Agent constructor so the factory tracks the host's Mastra version. */
200
201
  type AgentCtorConfig = ConstructorParameters<typeof Agent>[0];
201
202
  export interface CreateDivergenceExplainerOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"divergence.d.ts","sourceRoot":"","sources":["../src/divergence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"divergence.d.ts","sourceRoot":"","sources":["../src/divergence.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts CHANGED
@@ -10,7 +10,7 @@
10
10
  * thrown during tool execution into a { success: false, error } envelope.
11
11
  */
12
12
  /** Every machine-readable code an AgentsError can carry. */
13
- export declare const AGENTS_ERROR_CODES: readonly ["NO_TENANT_CONTEXT", "TENANT_IN_SCHEMA", "BAD_INPUT_SCHEMA", "BAD_GATE", "MISSING_RATIONALE", "DUPLICATE_TOOL_ID", "BAD_PROMOTION_OPTIONS", "EMPTY_STUDY", "TOLERANCE_CEILING_EXCEEDED", "SEGMENT_UNRESOLVED", "SEGMENT_AMBIGUOUS", "VERDICT_NOT_DISAGREE", "DIVERGENCE_INPUT_MISMATCH", "NO_DIVERGENCE_EVIDENCE", "REMOTE_RESULT_INVALID", "MCP_SELF_TEST_FAILED"];
13
+ export declare const AGENTS_ERROR_CODES: readonly ["NO_TENANT_CONTEXT", "TENANT_IN_SCHEMA", "BAD_INPUT_SCHEMA", "BAD_GATE", "MISSING_RATIONALE", "DUPLICATE_TOOL_ID", "BAD_PROMOTION_OPTIONS", "EMPTY_STUDY", "TOLERANCE_CEILING_EXCEEDED", "SEGMENT_UNRESOLVED", "SEGMENT_AMBIGUOUS", "VERDICT_NOT_DISAGREE", "DIVERGENCE_INPUT_MISMATCH", "NO_DIVERGENCE_EVIDENCE", "REMOTE_RESULT_INVALID", "MCP_SELF_TEST_FAILED", "BAD_DIAGNOSTIC_CATALOG", "UNKNOWN_DIAGNOSTIC_PRESET", "UNAPPROVED_DIAGNOSTIC_INSTANCE", "DIAGNOSTIC_RUN_MISMATCH", "BAD_OUTPUT_SCHEMA", "TOOL_INPUT_INVALID", "TOOL_OUTPUT_INVALID"];
14
14
  export type AgentsErrorCode = (typeof AGENTS_ERROR_CODES)[number];
15
15
  /**
16
16
  * Thrown for invalid agent-toolkit input: tenant-seam violations, malformed
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,4DAA4D;AAC5D,eAAO,MAAM,kBAAkB,+WAgCrB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,KAAK;IACpC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;gBACnB,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM;CAKnD"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,4DAA4D;AAC5D,eAAO,MAAM,kBAAkB,qiBAuCrB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,KAAK;IACpC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;gBACnB,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM;CAKnD"}
package/dist/errors.js CHANGED
@@ -42,6 +42,13 @@ export const AGENTS_ERROR_CODES = [
42
42
  "REMOTE_RESULT_INVALID",
43
43
  /** The boot self-test found an MCP-exposed probe tool that did NOT fail closed without tenant context; the MCP tenant seam is not wired up and the server must abort startup. */
44
44
  "MCP_SELF_TEST_FAILED",
45
+ "BAD_DIAGNOSTIC_CATALOG",
46
+ "UNKNOWN_DIAGNOSTIC_PRESET",
47
+ "UNAPPROVED_DIAGNOSTIC_INSTANCE",
48
+ "DIAGNOSTIC_RUN_MISMATCH",
49
+ "BAD_OUTPUT_SCHEMA",
50
+ "TOOL_INPUT_INVALID",
51
+ "TOOL_OUTPUT_INVALID",
45
52
  ];
46
53
  /**
47
54
  * Thrown for invalid agent-toolkit input: tenant-seam violations, malformed
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,4DAA4D;AAC5D,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,sFAAsF;IACtF,mBAAmB;IACnB,sHAAsH;IACtH,kBAAkB;IAClB,kBAAkB;IAClB,2EAA2E;IAC3E,UAAU;IACV,iEAAiE;IACjE,mBAAmB;IACnB,8DAA8D;IAC9D,mBAAmB;IACnB,8EAA8E;IAC9E,uBAAuB;IACvB,kEAAkE;IAClE,aAAa;IACb,mFAAmF;IACnF,4BAA4B;IAC5B,6FAA6F;IAC7F,oBAAoB;IACpB,kGAAkG;IAClG,mBAAmB;IACnB,wIAAwI;IACxI,sBAAsB;IACtB,0IAA0I;IAC1I,2BAA2B;IAC3B,sIAAsI;IACtI,wBAAwB;IACxB,yIAAyI;IACzI,uBAAuB;IACvB,iLAAiL;IACjL,sBAAsB;CACd,CAAC;AAIX;;;;GAIG;AACH,MAAM,OAAO,WAAY,SAAQ,KAAK;IAC3B,IAAI,CAAkB;IAC/B,YAAY,IAAqB,EAAE,OAAe;QAChD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,4DAA4D;AAC5D,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,sFAAsF;IACtF,mBAAmB;IACnB,sHAAsH;IACtH,kBAAkB;IAClB,kBAAkB;IAClB,2EAA2E;IAC3E,UAAU;IACV,iEAAiE;IACjE,mBAAmB;IACnB,8DAA8D;IAC9D,mBAAmB;IACnB,8EAA8E;IAC9E,uBAAuB;IACvB,kEAAkE;IAClE,aAAa;IACb,mFAAmF;IACnF,4BAA4B;IAC5B,6FAA6F;IAC7F,oBAAoB;IACpB,kGAAkG;IAClG,mBAAmB;IACnB,wIAAwI;IACxI,sBAAsB;IACtB,0IAA0I;IAC1I,2BAA2B;IAC3B,sIAAsI;IACtI,wBAAwB;IACxB,yIAAyI;IACzI,uBAAuB;IACvB,iLAAiL;IACjL,sBAAsB;IACtB,wBAAwB;IACxB,2BAA2B;IAC3B,gCAAgC;IAChC,yBAAyB;IACzB,mBAAmB;IACnB,oBAAoB;IACpB,qBAAqB;CACb,CAAC;AAIX;;;;GAIG;AACH,MAAM,OAAO,WAAY,SAAQ,KAAK;IAC3B,IAAI,CAAkB;IAC/B,YAAY,IAAqB,EAAE,OAAe;QAChD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -7,4 +7,5 @@ export * from "./evals.js";
7
7
  export * from "./divergence.js";
8
8
  export * from "./remote.js";
9
9
  export * from "./mcp.js";
10
+ export * from "./diagnostics.js";
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -7,4 +7,5 @@ export * from "./evals.js";
7
7
  export * from "./divergence.js";
8
8
  export * from "./remote.js";
9
9
  export * from "./mcp.js";
10
+ export * from "./diagnostics.js";
10
11
  //# 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,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC"}
package/dist/mcp.d.ts CHANGED
@@ -22,7 +22,7 @@
22
22
  * startup MUST abort.
23
23
  *
24
24
  * ---------------------------------------------------------------------------
25
- * VERIFIED against the installed @mastra/mcp 1.14.0 (house rule — types and
25
+ * VERIFIED against the lock-tested @mastra/mcp 1.17.3 (house rule — types and
26
26
  * compiled source, not memory):
27
27
  *
28
28
  * - MCPServer.executeTool(toolId, args, executionContext?: { messages?,
@@ -40,7 +40,7 @@
40
40
  * tool context TWO ways: directly at `context.mcp.extra`, and — via
41
41
  * createProxiedRequestContext — as INDIVIDUAL keys set on a fresh
42
42
  * RequestContext (`context.requestContext.get("authInfo")`). NOTE the
43
- * surprise: the installed 1.14.0 sets each extra key on the RequestContext
43
+ * surprise: the lock-tested 1.17.3 sets each extra key on the RequestContext
44
44
  * verbatim, so the tenant lives at `requestContext.get("authInfo")`, NOT
45
45
  * under a single `"mcp.extra"` key as the research draft documented. This
46
46
  * helper tries all three shapes so it is correct against both the installed
package/dist/mcp.js CHANGED
@@ -22,7 +22,7 @@
22
22
  * startup MUST abort.
23
23
  *
24
24
  * ---------------------------------------------------------------------------
25
- * VERIFIED against the installed @mastra/mcp 1.14.0 (house rule — types and
25
+ * VERIFIED against the lock-tested @mastra/mcp 1.17.3 (house rule — types and
26
26
  * compiled source, not memory):
27
27
  *
28
28
  * - MCPServer.executeTool(toolId, args, executionContext?: { messages?,
@@ -40,7 +40,7 @@
40
40
  * tool context TWO ways: directly at `context.mcp.extra`, and — via
41
41
  * createProxiedRequestContext — as INDIVIDUAL keys set on a fresh
42
42
  * RequestContext (`context.requestContext.get("authInfo")`). NOTE the
43
- * surprise: the installed 1.14.0 sets each extra key on the RequestContext
43
+ * surprise: the lock-tested 1.17.3 sets each extra key on the RequestContext
44
44
  * verbatim, so the tenant lives at `requestContext.get("authInfo")`, NOT
45
45
  * under a single `"mcp.extra"` key as the research draft documented. This
46
46
  * helper tries all three shapes so it is correct against both the installed
@@ -1 +1 @@
1
- {"version":3,"file":"promotion.d.ts","sourceRoot":"","sources":["../src/promotion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"promotion.d.ts","sourceRoot":"","sources":["../src/promotion.ts"],"names":[],"mappings":"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"}
package/dist/promotion.js CHANGED
@@ -117,6 +117,7 @@ function structuralCheck(id, description, findings) {
117
117
  description,
118
118
  status: findings.length > 0 ? "warning" : "pass",
119
119
  details: capDetails(findings),
120
+ findings: findings.map((message) => ({ code: id, message, context: {} })),
120
121
  };
121
122
  }
122
123
  /**
@@ -173,6 +174,7 @@ function notEvaluatedReview(reason) {
173
174
  description: "ASOP 23-oriented triangle review",
174
175
  status: "not-evaluated",
175
176
  details: [`not evaluated: ${reason}`],
177
+ findings: [],
176
178
  },
177
179
  ],
178
180
  summary: { pass: 0, warning: 0, fail: 0, notEvaluated: 1 },