agentfootprint 9.121.0 → 9.122.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/AGENTS.md +1 -1
- package/CAPABILITIES.md +1 -0
- package/ai-instructions/claude-code/SKILL.md +1 -1
- package/dist/adapters/types.js.map +1 -1
- package/dist/conventions.js +27 -0
- package/dist/conventions.js.map +1 -1
- package/dist/core/Agent.js +111 -10
- package/dist/core/Agent.js.map +1 -1
- package/dist/core/agent/AgentBuilder.js +40 -1
- package/dist/core/agent/AgentBuilder.js.map +1 -1
- package/dist/core/agent/arguments/declare.js +456 -0
- package/dist/core/agent/arguments/declare.js.map +1 -0
- package/dist/core/agent/arguments/dispatch.js +148 -0
- package/dist/core/agent/arguments/dispatch.js.map +1 -0
- package/dist/core/agent/arguments/resolve.js +184 -0
- package/dist/core/agent/arguments/resolve.js.map +1 -0
- package/dist/core/agent/arguments/rows.js +150 -0
- package/dist/core/agent/arguments/rows.js.map +1 -0
- package/dist/core/agent/arguments/serve.js +279 -0
- package/dist/core/agent/arguments/serve.js.map +1 -0
- package/dist/core/agent/arguments/subflow.js +99 -0
- package/dist/core/agent/arguments/subflow.js.map +1 -0
- package/dist/core/agent/assessment/assess.js +101 -3
- package/dist/core/agent/assessment/assess.js.map +1 -1
- package/dist/core/agent/assessment/reasons.js +12 -0
- package/dist/core/agent/assessment/reasons.js.map +1 -1
- package/dist/core/agent/buildAgentChart.js +9 -1
- package/dist/core/agent/buildAgentChart.js.map +1 -1
- package/dist/core/agent/buildDynamicAgentChart.js +10 -3
- package/dist/core/agent/buildDynamicAgentChart.js.map +1 -1
- package/dist/core/agent/composeRequest.js +14 -8
- package/dist/core/agent/composeRequest.js.map +1 -1
- package/dist/core/agent/coverage/answer.js +26 -8
- package/dist/core/agent/coverage/answer.js.map +1 -1
- package/dist/core/agent/evidence/evidenceIndex.js +12 -1
- package/dist/core/agent/evidence/evidenceIndex.js.map +1 -1
- package/dist/core/agent/findings/judge.js +4 -2
- package/dist/core/agent/findings/judge.js.map +1 -1
- package/dist/core/agent/findings/ledger.js +95 -23
- package/dist/core/agent/findings/ledger.js.map +1 -1
- package/dist/core/agent/findings/types.js.map +1 -1
- package/dist/core/agent/honesty/armed.js +26 -0
- package/dist/core/agent/honesty/armed.js.map +1 -0
- package/dist/core/agent/honesty/mounts.js +139 -0
- package/dist/core/agent/honesty/mounts.js.map +1 -0
- package/dist/core/agent/middleware/outcomes.js +18 -2
- package/dist/core/agent/middleware/outcomes.js.map +1 -1
- package/dist/core/agent/middleware/rewrites.js +68 -0
- package/dist/core/agent/middleware/rewrites.js.map +1 -0
- package/dist/core/agent/middleware/runChain.js +9 -1
- package/dist/core/agent/middleware/runChain.js.map +1 -1
- package/dist/core/agent/stages/callLLM.js +31 -1
- package/dist/core/agent/stages/callLLM.js.map +1 -1
- package/dist/core/agent/stages/prepareFinal.js +65 -1
- package/dist/core/agent/stages/prepareFinal.js.map +1 -1
- package/dist/core/agent/stages/route.js +99 -25
- package/dist/core/agent/stages/route.js.map +1 -1
- package/dist/core/agent/stages/seed.js +68 -8
- package/dist/core/agent/stages/seed.js.map +1 -1
- package/dist/core/agent/stages/toolCalls.js +248 -194
- package/dist/core/agent/stages/toolCalls.js.map +1 -1
- package/dist/core/agent/stages/toolResolver.js +88 -0
- package/dist/core/agent/stages/toolResolver.js.map +1 -0
- package/dist/core/agent/toolArgsValidation.js +27 -1
- package/dist/core/agent/toolArgsValidation.js.map +1 -1
- package/dist/core/agent/toolDispatch.js +35 -1
- package/dist/core/agent/toolDispatch.js.map +1 -1
- package/dist/core/checkin.js.map +1 -1
- package/dist/core/runCheckpoint.js +17 -1
- package/dist/core/runCheckpoint.js.map +1 -1
- package/dist/core/slots/buildToolsSlot.js +27 -7
- package/dist/core/slots/buildToolsSlot.js.map +1 -1
- package/dist/core/tools.js +7 -0
- package/dist/core/tools.js.map +1 -1
- package/dist/esm/adapters/types.d.ts +29 -0
- package/dist/esm/adapters/types.js.map +1 -1
- package/dist/esm/conventions.d.ts +16 -0
- package/dist/esm/conventions.js +27 -0
- package/dist/esm/conventions.js.map +1 -1
- package/dist/esm/core/Agent.d.ts +19 -3
- package/dist/esm/core/Agent.js +112 -11
- package/dist/esm/core/Agent.js.map +1 -1
- package/dist/esm/core/agent/AgentBuilder.d.ts +29 -0
- package/dist/esm/core/agent/AgentBuilder.js +40 -1
- package/dist/esm/core/agent/AgentBuilder.js.map +1 -1
- package/dist/esm/core/agent/arguments/declare.d.ts +191 -0
- package/dist/esm/core/agent/arguments/declare.js +447 -0
- package/dist/esm/core/agent/arguments/declare.js.map +1 -0
- package/dist/esm/core/agent/arguments/dispatch.d.ts +78 -0
- package/dist/esm/core/agent/arguments/dispatch.js +137 -0
- package/dist/esm/core/agent/arguments/dispatch.js.map +1 -0
- package/dist/esm/core/agent/arguments/resolve.d.ts +117 -0
- package/dist/esm/core/agent/arguments/resolve.js +177 -0
- package/dist/esm/core/agent/arguments/resolve.js.map +1 -0
- package/dist/esm/core/agent/arguments/rows.d.ts +130 -0
- package/dist/esm/core/agent/arguments/rows.js +144 -0
- package/dist/esm/core/agent/arguments/rows.js.map +1 -0
- package/dist/esm/core/agent/arguments/serve.d.ts +141 -0
- package/dist/esm/core/agent/arguments/serve.js +266 -0
- package/dist/esm/core/agent/arguments/serve.js.map +1 -0
- package/dist/esm/core/agent/arguments/subflow.d.ts +80 -0
- package/dist/esm/core/agent/arguments/subflow.js +92 -0
- package/dist/esm/core/agent/arguments/subflow.js.map +1 -0
- package/dist/esm/core/agent/assessment/assess.js +101 -3
- package/dist/esm/core/agent/assessment/assess.js.map +1 -1
- package/dist/esm/core/agent/assessment/reasons.js +12 -0
- package/dist/esm/core/agent/assessment/reasons.js.map +1 -1
- package/dist/esm/core/agent/assessment/types.d.ts +16 -4
- package/dist/esm/core/agent/buildAgentChart.d.ts +11 -0
- package/dist/esm/core/agent/buildAgentChart.js +10 -2
- package/dist/esm/core/agent/buildAgentChart.js.map +1 -1
- package/dist/esm/core/agent/buildDynamicAgentChart.js +11 -4
- package/dist/esm/core/agent/buildDynamicAgentChart.js.map +1 -1
- package/dist/esm/core/agent/composeRequest.d.ts +9 -6
- package/dist/esm/core/agent/composeRequest.js +14 -8
- package/dist/esm/core/agent/composeRequest.js.map +1 -1
- package/dist/esm/core/agent/coverage/answer.d.ts +7 -1
- package/dist/esm/core/agent/coverage/answer.js +25 -7
- package/dist/esm/core/agent/coverage/answer.js.map +1 -1
- package/dist/esm/core/agent/evidence/evidenceIndex.d.ts +7 -0
- package/dist/esm/core/agent/evidence/evidenceIndex.js +12 -1
- package/dist/esm/core/agent/evidence/evidenceIndex.js.map +1 -1
- package/dist/esm/core/agent/findings/judge.d.ts +4 -2
- package/dist/esm/core/agent/findings/judge.js +5 -3
- package/dist/esm/core/agent/findings/judge.js.map +1 -1
- package/dist/esm/core/agent/findings/ledger.d.ts +43 -3
- package/dist/esm/core/agent/findings/ledger.js +92 -22
- package/dist/esm/core/agent/findings/ledger.js.map +1 -1
- package/dist/esm/core/agent/findings/types.d.ts +51 -1
- package/dist/esm/core/agent/findings/types.js.map +1 -1
- package/dist/esm/core/agent/honesty/armed.d.ts +24 -0
- package/dist/esm/core/agent/honesty/armed.js +22 -0
- package/dist/esm/core/agent/honesty/armed.js.map +1 -0
- package/dist/esm/core/agent/honesty/mounts.d.ts +61 -0
- package/dist/esm/core/agent/honesty/mounts.js +111 -0
- package/dist/esm/core/agent/honesty/mounts.js.map +1 -0
- package/dist/esm/core/agent/middleware/outcomes.d.ts +17 -1
- package/dist/esm/core/agent/middleware/outcomes.js +18 -2
- package/dist/esm/core/agent/middleware/outcomes.js.map +1 -1
- package/dist/esm/core/agent/middleware/rewrites.d.ts +44 -0
- package/dist/esm/core/agent/middleware/rewrites.js +64 -0
- package/dist/esm/core/agent/middleware/rewrites.js.map +1 -0
- package/dist/esm/core/agent/middleware/runChain.js +9 -1
- package/dist/esm/core/agent/middleware/runChain.js.map +1 -1
- package/dist/esm/core/agent/middleware/types.d.ts +24 -0
- package/dist/esm/core/agent/stages/callLLM.js +31 -1
- package/dist/esm/core/agent/stages/callLLM.js.map +1 -1
- package/dist/esm/core/agent/stages/prepareFinal.d.ts +26 -0
- package/dist/esm/core/agent/stages/prepareFinal.js +40 -0
- package/dist/esm/core/agent/stages/prepareFinal.js.map +1 -1
- package/dist/esm/core/agent/stages/route.d.ts +59 -1
- package/dist/esm/core/agent/stages/route.js +96 -24
- package/dist/esm/core/agent/stages/route.js.map +1 -1
- package/dist/esm/core/agent/stages/seed.d.ts +17 -0
- package/dist/esm/core/agent/stages/seed.js +45 -8
- package/dist/esm/core/agent/stages/seed.js.map +1 -1
- package/dist/esm/core/agent/stages/toolCalls.d.ts +24 -0
- package/dist/esm/core/agent/stages/toolCalls.js +248 -194
- package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
- package/dist/esm/core/agent/stages/toolResolver.d.ts +65 -0
- package/dist/esm/core/agent/stages/toolResolver.js +84 -0
- package/dist/esm/core/agent/stages/toolResolver.js.map +1 -0
- package/dist/esm/core/agent/toolArgsValidation.d.ts +19 -0
- package/dist/esm/core/agent/toolArgsValidation.js +25 -0
- package/dist/esm/core/agent/toolArgsValidation.js.map +1 -1
- package/dist/esm/core/agent/toolDispatch.d.ts +4 -1
- package/dist/esm/core/agent/toolDispatch.js +35 -1
- package/dist/esm/core/agent/toolDispatch.js.map +1 -1
- package/dist/esm/core/agent/types.d.ts +26 -0
- package/dist/esm/core/checkin.d.ts +6 -1
- package/dist/esm/core/checkin.js.map +1 -1
- package/dist/esm/core/runCheckpoint.js +17 -1
- package/dist/esm/core/runCheckpoint.js.map +1 -1
- package/dist/esm/core/slots/buildToolsSlot.d.ts +18 -0
- package/dist/esm/core/slots/buildToolsSlot.js +27 -7
- package/dist/esm/core/slots/buildToolsSlot.js.map +1 -1
- package/dist/esm/core/tools.d.ts +37 -0
- package/dist/esm/core/tools.js +7 -0
- package/dist/esm/core/tools.js.map +1 -1
- package/dist/esm/events/payloads.d.ts +37 -0
- package/dist/esm/events/registry.d.ts +3 -1
- package/dist/esm/events/registry.js +3 -0
- package/dist/esm/events/registry.js.map +1 -1
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/answer-account/facts/howSure.js +5 -0
- package/dist/esm/lib/answer-account/facts/howSure.js.map +1 -1
- package/dist/esm/lib/answer-account/facts/inView.js +5 -2
- package/dist/esm/lib/answer-account/facts/inView.js.map +1 -1
- package/dist/esm/lib/answer-account/templates.d.ts +4 -1
- package/dist/esm/lib/answer-account/templates.js +5 -1
- package/dist/esm/lib/answer-account/templates.js.map +1 -1
- package/dist/esm/lib/mcp/mcpClient.js +5 -1
- package/dist/esm/lib/mcp/mcpClient.js.map +1 -1
- package/dist/esm/lib/mcp/mockMcpClient.js +5 -1
- package/dist/esm/lib/mcp/mockMcpClient.js.map +1 -1
- package/dist/esm/lib/mcp/toolExtras.d.ts +23 -0
- package/dist/esm/lib/mcp/toolExtras.js +12 -0
- package/dist/esm/lib/mcp/toolExtras.js.map +1 -1
- package/dist/esm/lib/toolBytes.d.ts +57 -0
- package/dist/esm/lib/toolBytes.js +67 -0
- package/dist/esm/lib/toolBytes.js.map +1 -0
- package/dist/esm/recorders/observability/BoundaryRecorder.js +1 -0
- package/dist/esm/recorders/observability/BoundaryRecorder.js.map +1 -1
- package/dist/events/registry.js +3 -0
- package/dist/events/registry.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/answer-account/facts/howSure.js +5 -0
- package/dist/lib/answer-account/facts/howSure.js.map +1 -1
- package/dist/lib/answer-account/facts/inView.js +5 -2
- package/dist/lib/answer-account/facts/inView.js.map +1 -1
- package/dist/lib/answer-account/templates.js +5 -1
- package/dist/lib/answer-account/templates.js.map +1 -1
- package/dist/lib/mcp/mcpClient.js +5 -1
- package/dist/lib/mcp/mcpClient.js.map +1 -1
- package/dist/lib/mcp/mockMcpClient.js +5 -1
- package/dist/lib/mcp/mockMcpClient.js.map +1 -1
- package/dist/lib/mcp/toolExtras.js +12 -0
- package/dist/lib/mcp/toolExtras.js.map +1 -1
- package/dist/lib/toolBytes.js +71 -0
- package/dist/lib/toolBytes.js.map +1 -0
- package/dist/recorders/observability/BoundaryRecorder.js +1 -0
- package/dist/recorders/observability/BoundaryRecorder.js.map +1 -1
- package/dist/types/adapters/types.d.ts +29 -0
- package/dist/types/adapters/types.d.ts.map +1 -1
- package/dist/types/conventions.d.ts +16 -0
- package/dist/types/conventions.d.ts.map +1 -1
- package/dist/types/core/Agent.d.ts +19 -3
- package/dist/types/core/Agent.d.ts.map +1 -1
- package/dist/types/core/agent/AgentBuilder.d.ts +29 -0
- package/dist/types/core/agent/AgentBuilder.d.ts.map +1 -1
- package/dist/types/core/agent/arguments/declare.d.ts +192 -0
- package/dist/types/core/agent/arguments/declare.d.ts.map +1 -0
- package/dist/types/core/agent/arguments/dispatch.d.ts +79 -0
- package/dist/types/core/agent/arguments/dispatch.d.ts.map +1 -0
- package/dist/types/core/agent/arguments/resolve.d.ts +118 -0
- package/dist/types/core/agent/arguments/resolve.d.ts.map +1 -0
- package/dist/types/core/agent/arguments/rows.d.ts +131 -0
- package/dist/types/core/agent/arguments/rows.d.ts.map +1 -0
- package/dist/types/core/agent/arguments/serve.d.ts +142 -0
- package/dist/types/core/agent/arguments/serve.d.ts.map +1 -0
- package/dist/types/core/agent/arguments/subflow.d.ts +81 -0
- package/dist/types/core/agent/arguments/subflow.d.ts.map +1 -0
- package/dist/types/core/agent/assessment/assess.d.ts.map +1 -1
- package/dist/types/core/agent/assessment/reasons.d.ts.map +1 -1
- package/dist/types/core/agent/assessment/types.d.ts +16 -4
- package/dist/types/core/agent/assessment/types.d.ts.map +1 -1
- package/dist/types/core/agent/buildAgentChart.d.ts +11 -0
- package/dist/types/core/agent/buildAgentChart.d.ts.map +1 -1
- package/dist/types/core/agent/buildDynamicAgentChart.d.ts.map +1 -1
- package/dist/types/core/agent/composeRequest.d.ts +9 -6
- package/dist/types/core/agent/composeRequest.d.ts.map +1 -1
- package/dist/types/core/agent/coverage/answer.d.ts +7 -1
- package/dist/types/core/agent/coverage/answer.d.ts.map +1 -1
- package/dist/types/core/agent/evidence/evidenceIndex.d.ts +7 -0
- package/dist/types/core/agent/evidence/evidenceIndex.d.ts.map +1 -1
- package/dist/types/core/agent/findings/judge.d.ts +4 -2
- package/dist/types/core/agent/findings/judge.d.ts.map +1 -1
- package/dist/types/core/agent/findings/ledger.d.ts +43 -3
- package/dist/types/core/agent/findings/ledger.d.ts.map +1 -1
- package/dist/types/core/agent/findings/types.d.ts +51 -1
- package/dist/types/core/agent/findings/types.d.ts.map +1 -1
- package/dist/types/core/agent/honesty/armed.d.ts +25 -0
- package/dist/types/core/agent/honesty/armed.d.ts.map +1 -0
- package/dist/types/core/agent/honesty/mounts.d.ts +62 -0
- package/dist/types/core/agent/honesty/mounts.d.ts.map +1 -0
- package/dist/types/core/agent/middleware/outcomes.d.ts +17 -1
- package/dist/types/core/agent/middleware/outcomes.d.ts.map +1 -1
- package/dist/types/core/agent/middleware/rewrites.d.ts +45 -0
- package/dist/types/core/agent/middleware/rewrites.d.ts.map +1 -0
- package/dist/types/core/agent/middleware/runChain.d.ts.map +1 -1
- package/dist/types/core/agent/middleware/types.d.ts +24 -0
- package/dist/types/core/agent/middleware/types.d.ts.map +1 -1
- package/dist/types/core/agent/stages/callLLM.d.ts.map +1 -1
- package/dist/types/core/agent/stages/prepareFinal.d.ts +26 -0
- package/dist/types/core/agent/stages/prepareFinal.d.ts.map +1 -1
- package/dist/types/core/agent/stages/route.d.ts +59 -1
- package/dist/types/core/agent/stages/route.d.ts.map +1 -1
- package/dist/types/core/agent/stages/seed.d.ts +17 -0
- package/dist/types/core/agent/stages/seed.d.ts.map +1 -1
- package/dist/types/core/agent/stages/toolCalls.d.ts +24 -0
- package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
- package/dist/types/core/agent/stages/toolResolver.d.ts +66 -0
- package/dist/types/core/agent/stages/toolResolver.d.ts.map +1 -0
- package/dist/types/core/agent/toolArgsValidation.d.ts +19 -0
- package/dist/types/core/agent/toolArgsValidation.d.ts.map +1 -1
- package/dist/types/core/agent/toolDispatch.d.ts +4 -1
- package/dist/types/core/agent/toolDispatch.d.ts.map +1 -1
- package/dist/types/core/agent/types.d.ts +26 -0
- package/dist/types/core/agent/types.d.ts.map +1 -1
- package/dist/types/core/checkin.d.ts +6 -1
- package/dist/types/core/checkin.d.ts.map +1 -1
- package/dist/types/core/runCheckpoint.d.ts.map +1 -1
- package/dist/types/core/slots/buildToolsSlot.d.ts +18 -0
- package/dist/types/core/slots/buildToolsSlot.d.ts.map +1 -1
- package/dist/types/core/tools.d.ts +37 -0
- package/dist/types/core/tools.d.ts.map +1 -1
- package/dist/types/events/payloads.d.ts +37 -0
- package/dist/types/events/payloads.d.ts.map +1 -1
- package/dist/types/events/registry.d.ts +3 -1
- package/dist/types/events/registry.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/lib/answer-account/facts/howSure.d.ts.map +1 -1
- package/dist/types/lib/answer-account/facts/inView.d.ts.map +1 -1
- package/dist/types/lib/answer-account/templates.d.ts +4 -1
- package/dist/types/lib/answer-account/templates.d.ts.map +1 -1
- package/dist/types/lib/mcp/toolExtras.d.ts +23 -0
- package/dist/types/lib/mcp/toolExtras.d.ts.map +1 -1
- package/dist/types/lib/toolBytes.d.ts +58 -0
- package/dist/types/lib/toolBytes.d.ts.map +1 -0
- package/dist/types/recorders/observability/BoundaryRecorder.d.ts.map +1 -1
- package/package.json +1 -1
package/AGENTS.md
CHANGED
|
@@ -275,7 +275,7 @@ const agent = Agent.create({ provider, model })
|
|
|
275
275
|
agent.on('agentfootprint.context.evaluated', (e) => console.log(e.payload.activeIds));
|
|
276
276
|
```
|
|
277
277
|
|
|
278
|
-
**
|
|
278
|
+
**122 typed events across 27 domains.** Two subscription shapes and no third:
|
|
279
279
|
`'*'` (every event) and `'agentfootprint.<domain>.*'` (one domain). **`'agentfootprint.*'`
|
|
280
280
|
is not a pattern** — TypeScript rejects it, and at runtime it would match nothing.
|
|
281
281
|
|
package/CAPABILITIES.md
CHANGED
|
@@ -69,6 +69,7 @@ not in this table, search `src/index.ts` for the nearest noun before writing cod
|
|
|
69
69
|
| a skill's plain name for a person ("array estate report" for `array-inventory`) on the recording, without changing what the model reads or what a graph draws — at most 60 chars, one line of plain visible text, not the id; carried as `skill.graph_declared` `nodes[].title` on a skill-graph agent, absent when not declared | `defineSkill` + `title` | `src/lib/injection-engine/factories/defineSkill.ts` | 9.116.0 |
|
|
70
70
|
| how many of an answer's values the evidence check actually LOOKED UP — `candidates` also counts values the person's message or the app's instructions already held, which are never looked up; found plus not found, before the 12-value slice, on every `evidence_checked` | `lookedUp` + `EvidenceVerdict` | `src/core/agent/evidence/` | 9.116.0 |
|
|
71
71
|
| explaining ONE answer to a person in plain words — what was asked, how it was routed, what each tool checked and did not check, what it found, how sure, and anything wrong — every line from the record by a fixed versioned template (never a model), each with its template id and who vouches for it (person / library / tool / model / app), "not recorded" instead of a guess, own-run events only, three checks with the ones that could not run said aloud | `accountForAnswer` + `AnswerAccount` | `src/lib/answer-account/` | 9.116.0 |
|
|
72
|
+
| a tool whose default NOBODY CHOSE (a log search that quietly defaults to 2 hours) — the LIBRARY fills a value the call left out from the tool's declared rule, never the tool; files one `argument` row per ruled argument per call on the findings ledger (`source: 'default'` filled or echoed — `proposed` tells them apart — or `'model'`), stamped with the conversation `turn`; tells the model in a past-tense note (only for a value the call ran with) behind a `toolChars` boundary every reader of a result reads through, so the note grounds nothing and hides no empty result; the answer's standing reads "not sure — assumed"; an "Assumed" block under `.limitsTravelWithTheAnswer()`; carried over MCP `_meta`; a ruled tool on an agent without the layer is REFUSED before any middleware asks, never run unruled; `{ ask }` refused until the batch ask ships | `Tool.askOrAssume` + `Tool.period` (`ToolPeriod`) + `ArgumentRow` + `agentfootprint.findings.argument` + `AgentBuilder.inputsLayer()` + `allow(value, why, { from })` | `src/core/agent/arguments/` | 9.122.0 |
|
|
72
73
|
| how far an answer STANDS — known · consistent with the record · not sure (with the reasons) · ask · not assessed — folded from the run's COMMITTED record (never from the model's confidence, never from events, never "known" from silence: only a passed enforce answer check supports it); each reason names the row it rests on, `checked` counts what ran, this turn only; a pause of any kind reads `ask` from the recording alone, a run with no answer has no standing; one emptiness reader shared with the answer account (`coverage/emptiness.ts`: a `coverage()` envelope read through, a described result counted, an undeclared empty rowset said aloud) | `assessAnswer` + `AnswerAssessment` (on the observe door), `agent.assessment()` | `src/core/agent/assessment/` | 9.120.0 |
|
|
73
74
|
| serving that explanation to a browser without the recording: one opt-in wire op returns the account plus allow-listed "show me" leaves, owner-only on the `artifact-get` path, lane-free, cached and single-flight, a stated size ceiling, and a swept record answering "not available" even when cached | `standingAgent({ answerAccounts })` + `{ op: 'answer-account', ref }` + `answerAccountPointerKey` | `src/hosting/answerAccounts.ts` | 9.116.0 |
|
|
74
75
|
| bounding what one session can ask of the artifact door at once: `artifact-head`, `artifact-get` and `answer-account` counted together per session, after the ownership check, refused 429 by name while every other session is served | `standingAgent({ artifactOpsPerSession })` + `ArtifactOpsBusyError` | `src/hosting/standingAgent.ts` | 9.116.0 |
|
|
@@ -275,7 +275,7 @@ const agent = Agent.create({ provider, model })
|
|
|
275
275
|
agent.on('agentfootprint.context.evaluated', (e) => console.log(e.payload.activeIds));
|
|
276
276
|
```
|
|
277
277
|
|
|
278
|
-
**
|
|
278
|
+
**122 typed events across 27 domains.** Two subscription shapes and no third:
|
|
279
279
|
`'*'` (every event) and `'agentfootprint.<domain>.*'` (one domain). **`'agentfootprint.*'`
|
|
280
280
|
is not a pattern** — TypeScript rejects it, and at runtime it would match nothing.
|
|
281
281
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;AAiMH;;;;GAIG;AACU,QAAA,2BAA2B,GAAwB,MAAM,CAAC,MAAM,CAAC;IAC5E,MAAM;IACN,WAAW;CACZ,CAAC,CAAC;AAusBH;;;;;;GAMG;AACH,SAAgB,cAAc,CAC5B,OAAsC,EACtC,UAAgC;IAEhC,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,IAAI,UAAU,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;AACxD,CAAC;AAPD,wCAOC;AAqID;;;;;;;;;GASG;AACU,QAAA,iBAAiB,GAAG,kBAAkB,CAAC;AAgGpD;uDACuD;AACvD,SAAgB,kBAAkB,CAChC,OAAoB;IAEpB,OAAO,OAAO,OAAO,CAAC,WAAW,KAAK,UAAU,CAAC;AACnD,CAAC;AAJD,gDAIC"}
|
package/dist/conventions.js
CHANGED
|
@@ -60,6 +60,13 @@ exports.SUBFLOW_IDS = {
|
|
|
60
60
|
* pure plumbing from the agent step's POV — never a user-facing
|
|
61
61
|
* step in the StepGraph. */
|
|
62
62
|
THINKING: 'sf-thinking',
|
|
63
|
+
/** The inputs layer (honesty layer 2) — mounted between the LLM call and
|
|
64
|
+
* Route ONLY when armed (a registered tool declares `askOrAssume`, or the
|
|
65
|
+
* agent was built with `.inputsLayer()`). Runs once per batch: Declare →
|
|
66
|
+
* Verify → Record → Resolve, filing one `argument` row per ruled argument
|
|
67
|
+
* per call and handing ToolCalls the values the library fills. Absent on
|
|
68
|
+
* every other agent — the chart is byte-identical. */
|
|
69
|
+
INPUTS: 'sf-inputs',
|
|
63
70
|
};
|
|
64
71
|
// ─── The reserved subflow namespace ──────────────────────────────────
|
|
65
72
|
/**
|
|
@@ -208,6 +215,15 @@ exports.STAGE_IDS = {
|
|
|
208
215
|
/** BuildLLMRequest stage — calls strategy.prepareRequest to apply
|
|
209
216
|
* markers to the wire request (v2.6). */
|
|
210
217
|
BUILD_LLM_REQUEST: 'build-llm-request',
|
|
218
|
+
/** The inputs layer's four stages, inside `sf-inputs` (honesty layer 2):
|
|
219
|
+
* which calls carry rules and which ruled values are missing … */
|
|
220
|
+
DECLARE_ARGUMENTS: 'declare-arguments',
|
|
221
|
+
/** … where each ruled value came from … */
|
|
222
|
+
VERIFY_ARGUMENTS: 'verify-arguments',
|
|
223
|
+
/** … one `argument` row per ruled argument, and its event … */
|
|
224
|
+
RECORD_ARGUMENTS: 'record-arguments',
|
|
225
|
+
/** … and the fills and refusals ToolCalls applies. */
|
|
226
|
+
RESOLVE_ARGUMENTS: 'resolve-arguments',
|
|
211
227
|
};
|
|
212
228
|
// ─── Type guards ─────────────────────────────────────────────────────
|
|
213
229
|
/** True when a subflow id corresponds to one of the 3 context slots. */
|
|
@@ -287,6 +303,13 @@ const PLUMBING_LOCAL_IDS = new Set([
|
|
|
287
303
|
exports.STAGE_IDS.APPLY_MARKERS,
|
|
288
304
|
exports.STAGE_IDS.SKIP_CACHING,
|
|
289
305
|
exports.STAGE_IDS.BUILD_LLM_REQUEST,
|
|
306
|
+
// The inputs layer (honesty layer 2): its verdicts ride the ledger rows and
|
|
307
|
+
// `agentfootprint.findings.argument`; the mount and its stages are mechanism.
|
|
308
|
+
exports.SUBFLOW_IDS.INPUTS,
|
|
309
|
+
exports.STAGE_IDS.DECLARE_ARGUMENTS,
|
|
310
|
+
exports.STAGE_IDS.VERIFY_ARGUMENTS,
|
|
311
|
+
exports.STAGE_IDS.RECORD_ARGUMENTS,
|
|
312
|
+
exports.STAGE_IDS.RESOLVE_ARGUMENTS,
|
|
290
313
|
]);
|
|
291
314
|
/** Neutral chart boundaries — entry/exit, rendered normally (not muted). */
|
|
292
315
|
const BOUNDARY_LOCAL_IDS = new Set([
|
|
@@ -364,6 +387,10 @@ const MILESTONES = new Map([
|
|
|
364
387
|
['tool-calls', milestone('tool-call', 'Tool call')],
|
|
365
388
|
[exports.SUBFLOW_IDS.TOOL_CALLS, milestone('tool-call', 'Tool call')],
|
|
366
389
|
[exports.SUBFLOW_IDS.ROUTE, milestone('decision', 'Route')],
|
|
390
|
+
// The inputs layer (honesty layer 2), mounted only when armed: where the
|
|
391
|
+
// library filled a value the call left out — a stop a reader scrubs to when
|
|
392
|
+
// asking whose value a call ran with.
|
|
393
|
+
[exports.SUBFLOW_IDS.INPUTS, milestone('decision', 'Inputs')],
|
|
367
394
|
// The answer failed its schema and the loop asked again — a stop worth
|
|
368
395
|
// scrubbing to, because everything after it is a second attempt.
|
|
369
396
|
[exports.STAGE_IDS.OUTPUT_RETRY, milestone('decision', 'Schema retry')],
|
package/dist/conventions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conventions.js","sourceRoot":"","sources":["../src/conventions.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAEH,6CAAiD;AAGjD,gEAAgE;AACnD,QAAA,WAAW,GAAG;IACzB;0EACsE;IACtE,gBAAgB,EAAE,qBAAqB;IACvC;;qDAEiD;IACjD,QAAQ,EAAE,aAAa;IACvB,+DAA+D;IAC/D,aAAa,EAAE,kBAAkB;IACjC,6BAA6B;IAC7B,QAAQ,EAAE,aAAa;IACvB,0BAA0B;IAC1B,KAAK,EAAE,UAAU;IACjB,2CAA2C;IAC3C,KAAK,EAAE,UAAU;IACjB,uDAAuD;IACvD,UAAU,EAAE,eAAe;IAC3B,kCAAkC;IAClC,KAAK,EAAE,UAAU;IACjB;;;;oCAIgC;IAChC,KAAK,EAAE,OAAO;IACd;;;;;;gCAM4B;IAC5B,KAAK,EAAE,UAAU;IACjB;;;wDAGoD;IACpD,cAAc,EAAE,mBAAmB;IACnC;;;;;iCAK6B;IAC7B,QAAQ,EAAE,aAAa;
|
|
1
|
+
{"version":3,"file":"conventions.js","sourceRoot":"","sources":["../src/conventions.ts"],"names":[],"mappings":"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"}
|
package/dist/core/Agent.js
CHANGED
|
@@ -164,6 +164,10 @@ const seed_js_1 = require("./agent/stages/seed.js");
|
|
|
164
164
|
const errors_js_3 = require("./agent/middleware/errors.js");
|
|
165
165
|
const callLLM_js_1 = require("./agent/stages/callLLM.js");
|
|
166
166
|
const toolCalls_js_1 = require("./agent/stages/toolCalls.js");
|
|
167
|
+
const toolResolver_js_1 = require("./agent/stages/toolResolver.js");
|
|
168
|
+
const route_js_2 = require("./agent/stages/route.js");
|
|
169
|
+
const declare_js_1 = require("./agent/arguments/declare.js");
|
|
170
|
+
const armed_js_1 = require("./agent/honesty/armed.js");
|
|
167
171
|
const toolResultCap_js_1 = require("./agent/toolResultCap.js");
|
|
168
172
|
const buildAgentChart_js_1 = require("./agent/buildAgentChart.js");
|
|
169
173
|
const buildDynamicAgentChart_js_1 = require("./agent/buildDynamicAgentChart.js");
|
|
@@ -322,6 +326,15 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
322
326
|
* armed agent with a window, where `stages/window.ts · buildWindowStage`
|
|
323
327
|
* spends it as the `'ledger-fact'` pin ceiling. */
|
|
324
328
|
findingsOptions;
|
|
329
|
+
/** `.inputsLayer()` (honesty layer 2): mount the inputs layer even when no
|
|
330
|
+
* registered tool declares `askOrAssume` — for ruled tools only a
|
|
331
|
+
* ToolProvider serves, which the build cannot see. */
|
|
332
|
+
inputsLayerOption;
|
|
333
|
+
/** Whether this agent's chart mounts the inputs layer (`sf-inputs`) —
|
|
334
|
+
* decided ONCE, in `buildChart`: a registered tool declares rules, or
|
|
335
|
+
* `.inputsLayer()` was set. Gates the findings event bridge and the
|
|
336
|
+
* widened ledger restore. */
|
|
337
|
+
inputsLayerArmed = false;
|
|
325
338
|
/** Tool choice by classifier (9.105.0, `.toolChoice()`): the classifier,
|
|
326
339
|
* the serve dial and the app's own doors. Threaded to the tools slot (the
|
|
327
340
|
* pick and the narrowing), to call-llm (`toolChoice: true`, the outcome
|
|
@@ -739,6 +752,8 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
739
752
|
this.toolArgValidation = opts.toolArgValidation;
|
|
740
753
|
if (opts.findings !== undefined)
|
|
741
754
|
this.findingsOptions = opts.findings;
|
|
755
|
+
if (opts.inputsLayer === true)
|
|
756
|
+
this.inputsLayerOption = true;
|
|
742
757
|
if (opts.toolChoice !== undefined)
|
|
743
758
|
this.toolChoiceOptions = opts.toolChoice;
|
|
744
759
|
if (opts.ontology !== undefined)
|
|
@@ -2793,7 +2808,9 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
2793
2808
|
// `.findings()`: an unarmed agent gains no bridge, no listener and no
|
|
2794
2809
|
// per-event work, and `agent.on('agentfootprint.findings.*')` can only
|
|
2795
2810
|
// ever fire on an agent that could have filed a row.
|
|
2796
|
-
|
|
2811
|
+
// Also under the inputs layer (honesty layer 2): its `argument` rows are
|
|
2812
|
+
// filed through the same writer and ride the same domain.
|
|
2813
|
+
if (this.findingsOptions !== undefined || this.inputsLayerArmed) {
|
|
2797
2814
|
attachObserver(new EmitBridge_js_1.EmitBridge({
|
|
2798
2815
|
id: 'agentfootprint.findings-bridge',
|
|
2799
2816
|
prefix: 'agentfootprint.findings.',
|
|
@@ -3167,9 +3184,16 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
3167
3184
|
* assertions stood on, `open`, `ruled-out`, `noise` — the LAST row per
|
|
3168
3185
|
* `toolCallId` is the current reading; earlier ones are quotable history)
|
|
3169
3186
|
* and `conflict` rows (two stood-on readings that disagree, witnesses by
|
|
3170
|
-
* identity). Undefined when
|
|
3171
|
-
*
|
|
3172
|
-
*
|
|
3187
|
+
* identity). Undefined when nothing filed a row — never an empty array
|
|
3188
|
+
* standing in for "no findings", and an id with no standing row is
|
|
3189
|
+
* undeclared, never `open`.
|
|
3190
|
+
*
|
|
3191
|
+
* THE INPUTS LAYER files here too (honesty layer 2): an agent whose tools
|
|
3192
|
+
* declare `askOrAssume` gets `argument` rows — the library's verdict on each
|
|
3193
|
+
* ruled argument of each call (`source: 'default'` when a tool's rule
|
|
3194
|
+
* assumed the value, `'model'` when the model sent one the record does not
|
|
3195
|
+
* trace), each stamped with its conversation `turn` — WITHOUT `.findings()`.
|
|
3196
|
+
* A reader that switches over every row kind must skip one it does not know.
|
|
3173
3197
|
*
|
|
3174
3198
|
* Detached from the execution record (`structuredClone`), so a caller may
|
|
3175
3199
|
* keep or mutate it without touching the run's state.
|
|
@@ -3489,6 +3513,20 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
3489
3513
|
const conversationStores = Array.from(new Set(this.memories
|
|
3490
3514
|
.filter((m) => m.write !== undefined && m.corpus === undefined && m.store !== undefined)
|
|
3491
3515
|
.map((m) => m.store)));
|
|
3516
|
+
// The inputs layer (honesty layer 2) — late-bound like `toolSchemas`: the
|
|
3517
|
+
// registry that says whether a tool is ruled is harvested further down.
|
|
3518
|
+
let seededRuledTools;
|
|
3519
|
+
let seededHonestyLayers;
|
|
3520
|
+
// The findings ledger's restore (9.101.0), WIDENED (honesty layer 2): wired
|
|
3521
|
+
// whenever the ledger OR an honesty layer is armed — an agent without
|
|
3522
|
+
// `.findings()` files argument rows too, and a continued conversation must
|
|
3523
|
+
// keep them. Still value-conditional inside seed (only when rows exist).
|
|
3524
|
+
let ledgerRestoreArmed = this.findingsOptions !== undefined;
|
|
3525
|
+
const consumeResumeLedger = () => {
|
|
3526
|
+
const l = this.pendingResumeFindingsLedger;
|
|
3527
|
+
this.pendingResumeFindingsLedger = undefined;
|
|
3528
|
+
return l;
|
|
3529
|
+
};
|
|
3492
3530
|
const seed = (0, seed_js_1.buildSeedStage)({
|
|
3493
3531
|
maxIterations,
|
|
3494
3532
|
// The forced-output tool's name (9.88.0) — a build-time constant, put on
|
|
@@ -3504,6 +3542,15 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
3504
3542
|
get toolWantsByName() {
|
|
3505
3543
|
return seededToolWants;
|
|
3506
3544
|
},
|
|
3545
|
+
get ruledTools() {
|
|
3546
|
+
return seededRuledTools;
|
|
3547
|
+
},
|
|
3548
|
+
get honestyLayers() {
|
|
3549
|
+
return seededHonestyLayers;
|
|
3550
|
+
},
|
|
3551
|
+
get consumePendingResumeFindingsLedger() {
|
|
3552
|
+
return ledgerRestoreArmed ? consumeResumeLedger : undefined;
|
|
3553
|
+
},
|
|
3507
3554
|
consumePendingResumeHistory: () => {
|
|
3508
3555
|
const h = this.pendingResumeHistory;
|
|
3509
3556
|
this.pendingResumeHistory = undefined;
|
|
@@ -3535,11 +3582,6 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
3535
3582
|
...(this.findingsOptions.answerAsk === 'quote-facts' && {
|
|
3536
3583
|
findingsAnswerAsk: 'quote-facts',
|
|
3537
3584
|
}),
|
|
3538
|
-
consumePendingResumeFindingsLedger: () => {
|
|
3539
|
-
const l = this.pendingResumeFindingsLedger;
|
|
3540
|
-
this.pendingResumeFindingsLedger = undefined;
|
|
3541
|
-
return l;
|
|
3542
|
-
},
|
|
3543
3585
|
}),
|
|
3544
3586
|
// The declared ontology (9.106.0): the whole frozen map, which seed
|
|
3545
3587
|
// writes ONCE as the run constant `ontology` — the `findingsServe`
|
|
@@ -3704,6 +3746,22 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
3704
3746
|
// Late-bind toolSchemas into the seed stage's deps (the factory was
|
|
3705
3747
|
// built earlier with a getter; this resolves the actual value).
|
|
3706
3748
|
toolSchemasResolved = toolSchemas;
|
|
3749
|
+
// ── The inputs layer (honesty layer 2) — armed ONCE, here ──────────
|
|
3750
|
+
// A registered tool (static, skill-carried, or an MCP tool registered on
|
|
3751
|
+
// the builder) that declares argument rules arms the mount — the
|
|
3752
|
+
// `toolGrounding` harvest precedent, over the same catalog. Tools a
|
|
3753
|
+
// ToolProvider serves are invisible here, so `.inputsLayer()` arms the
|
|
3754
|
+
// mount for them; without it their calls are refused at dispatch (fail
|
|
3755
|
+
// closed). Unarmed: nothing below is mounted, decorated, read or written.
|
|
3756
|
+
const ruledTools = new Map([...registryByName.entries()].filter(([, tool]) => tool.askOrAssume !== undefined || tool.period !== undefined));
|
|
3757
|
+
const inputsArmed = ruledTools.size > 0 || this.inputsLayerOption === true;
|
|
3758
|
+
this.inputsLayerArmed = inputsArmed;
|
|
3759
|
+
if (inputsArmed) {
|
|
3760
|
+
if (ruledTools.size > 0)
|
|
3761
|
+
seededRuledTools = ruledTools;
|
|
3762
|
+
seededHonestyLayers = (0, armed_js_1.honestyLayersOf)(true);
|
|
3763
|
+
ledgerRestoreArmed = true;
|
|
3764
|
+
}
|
|
3707
3765
|
// The gate's admissible set, for the record (9.50.0): declared hops from
|
|
3708
3766
|
// the cursor plus the open skills — the SAME two resolvers the read_skill
|
|
3709
3767
|
// offer and the refusal messages are built from (`readSkillOfferFor`),
|
|
@@ -3814,6 +3872,17 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
3814
3872
|
// whose contract the model read is the party that answers. `lastServed`
|
|
3815
3873
|
// is the run's memory of the same fact, for a name that left the wire.
|
|
3816
3874
|
const servedTools = { current: new Map(), lastServed: new Map() };
|
|
3875
|
+
// THE ONE DISPATCH RESOLVER, for the inputs layer (honesty layer 2): built
|
|
3876
|
+
// from the SAME deps objects the dispatch handler builds its own from, so
|
|
3877
|
+
// the layer reads a call's rules off the implementation that will answer.
|
|
3878
|
+
const resolveForLayer = (0, toolResolver_js_1.buildToolResolver)({
|
|
3879
|
+
registryByName,
|
|
3880
|
+
...(this.externalToolProvider && { externalToolProvider: this.externalToolProvider }),
|
|
3881
|
+
...(this.externalToolProvider && { providerToolCache }),
|
|
3882
|
+
servedTools,
|
|
3883
|
+
toolClaimants,
|
|
3884
|
+
notServed: toolCalls_js_1.notServedResult,
|
|
3885
|
+
});
|
|
3817
3886
|
const readSkillFor = this.readSkillOfferFor();
|
|
3818
3887
|
// Per-role skill visibility. The RESOLVER is handed to the tools slot, which
|
|
3819
3888
|
// is the fact's one owner: it resolves the ids once per iteration and
|
|
@@ -3905,6 +3974,9 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
3905
3974
|
// The findings ledger (9.101.0): the ONE decoration site is inside this
|
|
3906
3975
|
// slot; the gate rides in value-conditionally.
|
|
3907
3976
|
...(this.findingsOptions !== undefined && { findings: true }),
|
|
3977
|
+
// The inputs layer (honesty layer 2): the same site decorates a ruled
|
|
3978
|
+
// tool's schema first — value-conditional, the same grammar.
|
|
3979
|
+
...(inputsArmed && { inputsLayer: true }),
|
|
3908
3980
|
// Tool choice by classifier (9.105.0): the pick and the narrowing live
|
|
3909
3981
|
// inside this slot too, at the same site; value-conditional.
|
|
3910
3982
|
...(this.toolChoiceOptions !== undefined && {
|
|
@@ -4097,7 +4169,23 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
4097
4169
|
// THE ANSWER TURN'S STANDINGS (9.101.0) — the same value-conditional
|
|
4098
4170
|
// trailing positional, for the same reason: an unarmed agent hands the
|
|
4099
4171
|
// builder exactly the arguments it always did.
|
|
4100
|
-
this.findingsOptions !== undefined ? true : undefined
|
|
4172
|
+
this.findingsOptions !== undefined ? true : undefined,
|
|
4173
|
+
// THE INPUTS LAYER (honesty layer 2) — the same value-conditional
|
|
4174
|
+
// trailing positional: the rows this decider files carry the turn
|
|
4175
|
+
// stamp, and with the evidence gate armed too, the gate's exempt corpus
|
|
4176
|
+
// gains this turn's assumed values, read from the tools' declarations.
|
|
4177
|
+
inputsArmed
|
|
4178
|
+
? {
|
|
4179
|
+
...(this.evidenceGate !== undefined && {
|
|
4180
|
+
declaredDefaults: (0, route_js_2.declaredDefaultsFrom)((toolName, argument) => {
|
|
4181
|
+
const rules = (0, declare_js_1.rulesOf)(resolveForLayer(toolName).tool);
|
|
4182
|
+
if (rules === undefined || (0, declare_js_1.isRefused)(rules))
|
|
4183
|
+
return undefined;
|
|
4184
|
+
return rules.ruled.find((r) => r.argument === argument)?.assume;
|
|
4185
|
+
}),
|
|
4186
|
+
}),
|
|
4187
|
+
}
|
|
4188
|
+
: undefined);
|
|
4101
4189
|
const routeDecider = this.answerValidationConfig === undefined
|
|
4102
4190
|
? baseRouteDecider
|
|
4103
4191
|
: (0, answerValidation_js_1.withAnswerValidation)(baseRouteDecider, this.answerValidationConfig, this.outputSchemaParser, artifactStore, () => this.consentOutstanding.size > 0);
|
|
@@ -4125,6 +4213,9 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
4125
4213
|
// The findings ledger (9.101.0) — the peel, the basis row and the
|
|
4126
4214
|
// previous batch's standings all live in this handler under this gate.
|
|
4127
4215
|
...(this.findingsOptions !== undefined && { findings: true }),
|
|
4216
|
+
// The inputs layer (honesty layer 2) — the fills, the refusals and the
|
|
4217
|
+
// note; absent → a ruled tool's call is refused (fail closed).
|
|
4218
|
+
...(inputsArmed && { inputsLayer: true }),
|
|
4128
4219
|
// The judge (9.104.0) — VALUE-conditional inside the arm: an armed
|
|
4129
4220
|
// agent without one hands the handler exactly the deps it did before.
|
|
4130
4221
|
...(this.findingsOptions?.judge !== undefined && {
|
|
@@ -4334,6 +4425,16 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
4334
4425
|
// grammar as the slot's `findings` and callLLM's `hasFindingsLedger`,
|
|
4335
4426
|
// so the three can never disagree about whether the ledger is armed.
|
|
4336
4427
|
...(this.findingsOptions !== undefined && { hasFindingsLedger: true }),
|
|
4428
|
+
// The inputs layer (honesty layer 2): `sf-inputs` between the LLM call
|
|
4429
|
+
// and Route, in both builders through one helper; absent → untouched.
|
|
4430
|
+
// With a before-tool chain, the final branch's "Assumed" block also reads
|
|
4431
|
+
// the chain's rewrites (a rewritten fill is not what the call ran with).
|
|
4432
|
+
...(inputsArmed && {
|
|
4433
|
+
inputsLayer: {
|
|
4434
|
+
toolOf: (toolName) => resolveForLayer(toolName).tool,
|
|
4435
|
+
...(this.toolMiddleware.length > 0 && { rewrites: true }),
|
|
4436
|
+
},
|
|
4437
|
+
}),
|
|
4337
4438
|
// Tool choice by classifier (9.105.0): the mount args on the Tools
|
|
4338
4439
|
// branch and the key across the sf-llm-call boundary, under the arm.
|
|
4339
4440
|
...(this.toolChoiceOptions !== undefined && { hasToolChoice: true }),
|