agentfootprint 12.2.0 → 13.0.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/CAPABILITIES.md +1 -0
- package/dist/adapters/code/output.js +8 -29
- package/dist/adapters/code/output.js.map +1 -1
- package/dist/adapters/observability/audit.js +151 -159
- package/dist/adapters/observability/audit.js.map +1 -1
- package/dist/adapters/observability/auditBounding.js +411 -0
- package/dist/adapters/observability/auditBounding.js.map +1 -0
- package/dist/adapters/observability/auditKeptByContract.js +107 -0
- package/dist/adapters/observability/auditKeptByContract.js.map +1 -0
- package/dist/adapters/observability/auditShapes.js +1731 -0
- package/dist/adapters/observability/auditShapes.js.map +1 -0
- package/dist/answer-account/account.js +92 -15
- package/dist/answer-account/account.js.map +1 -1
- package/dist/answer-account/facts/calls.js +7 -9
- package/dist/answer-account/facts/calls.js.map +1 -1
- package/dist/answer-account/facts/checked.js +2 -2
- package/dist/answer-account/facts/checked.js.map +1 -1
- package/dist/answer-account/facts/common.js +40 -7
- package/dist/answer-account/facts/common.js.map +1 -1
- package/dist/answer-account/facts/found.js +1 -1
- package/dist/answer-account/facts/found.js.map +1 -1
- package/dist/answer-account/facts/howSure.js +21 -3
- package/dist/answer-account/facts/howSure.js.map +1 -1
- package/dist/answer-account/facts/inView.js +3 -4
- package/dist/answer-account/facts/inView.js.map +1 -1
- package/dist/answer-account/facts/pausedLeg.js +1 -1
- package/dist/answer-account/facts/pausedLeg.js.map +1 -1
- package/dist/answer-account/facts/scripts.js +222 -0
- package/dist/answer-account/facts/scripts.js.map +1 -0
- package/dist/answer-account/facts/understood.js +5 -5
- package/dist/answer-account/facts/understood.js.map +1 -1
- package/dist/answer-account/pointerKey.js +1 -1
- package/dist/answer-account/shown.js +25 -7
- package/dist/answer-account/shown.js.map +1 -1
- package/dist/answer-account/signals.js +1 -1
- package/dist/answer-account/signals.js.map +1 -1
- package/dist/answer-account/size.js +152 -0
- package/dist/answer-account/size.js.map +1 -0
- package/dist/answer-account/templates.js +39 -1
- package/dist/answer-account/templates.js.map +1 -1
- package/dist/core/Agent.js +25 -1
- package/dist/core/Agent.js.map +1 -1
- package/dist/core/agent/AgentBuilder.js +85 -1
- package/dist/core/agent/AgentBuilder.js.map +1 -1
- package/dist/core/agent/arguments/ask.js +85 -2
- package/dist/core/agent/arguments/ask.js.map +1 -1
- package/dist/core/agent/arguments/partialWindow.js +120 -0
- package/dist/core/agent/arguments/partialWindow.js.map +1 -0
- package/dist/core/agent/assessment/assess.js +37 -0
- package/dist/core/agent/assessment/assess.js.map +1 -1
- package/dist/core/agent/assessment/compose.js +5 -1
- package/dist/core/agent/assessment/compose.js.map +1 -1
- package/dist/core/agent/assessment/reasons.js +7 -0
- package/dist/core/agent/assessment/reasons.js.map +1 -1
- package/dist/core/agent/assessment/witness.js +37 -4
- package/dist/core/agent/assessment/witness.js.map +1 -1
- package/dist/core/agent/buildAgentChart.js.map +1 -1
- package/dist/core/agent/evidence/codeRegions.js +279 -0
- package/dist/core/agent/evidence/codeRegions.js.map +1 -0
- package/dist/core/agent/evidence/gate.js +13 -2
- package/dist/core/agent/evidence/gate.js.map +1 -1
- package/dist/core/agent/evidence/recovery.js +11 -2
- package/dist/core/agent/evidence/recovery.js.map +1 -1
- package/dist/core/agent/findings/types.js.map +1 -1
- package/dist/core/agent/scripts/attachment.js +375 -0
- package/dist/core/agent/scripts/attachment.js.map +1 -0
- package/dist/core/agent/scripts/inert.js +88 -0
- package/dist/core/agent/scripts/inert.js.map +1 -0
- package/dist/core/agent/scripts/judge.js +41 -0
- package/dist/core/agent/scripts/judge.js.map +1 -0
- package/dist/core/agent/scripts/label.js +143 -0
- package/dist/core/agent/scripts/label.js.map +1 -0
- package/dist/core/agent/scripts/match.js +233 -0
- package/dist/core/agent/scripts/match.js.map +1 -0
- package/dist/core/agent/scripts/recovery.js +81 -0
- package/dist/core/agent/scripts/recovery.js.map +1 -0
- package/dist/core/agent/scripts/rows.js +221 -0
- package/dist/core/agent/scripts/rows.js.map +1 -0
- package/dist/core/agent/scripts/types.js +22 -0
- package/dist/core/agent/scripts/types.js.map +1 -0
- package/dist/core/agent/scripts/wrapper.js +63 -0
- package/dist/core/agent/scripts/wrapper.js.map +1 -0
- package/dist/core/agent/stages/argumentAsk.js +161 -19
- package/dist/core/agent/stages/argumentAsk.js.map +1 -1
- package/dist/core/agent/stages/evidenceRecheck.js +4 -1
- package/dist/core/agent/stages/evidenceRecheck.js.map +1 -1
- package/dist/core/agent/stages/prepareFinal.js +65 -10
- package/dist/core/agent/stages/prepareFinal.js.map +1 -1
- package/dist/core/agent/stages/route.js +53 -3
- package/dist/core/agent/stages/route.js.map +1 -1
- package/dist/core/agent/stages/seed.js +14 -1
- package/dist/core/agent/stages/seed.js.map +1 -1
- package/dist/core/agent/stages/toolCalls.js +339 -18
- package/dist/core/agent/stages/toolCalls.js.map +1 -1
- package/dist/core/codeRunnerTool.js +32 -3
- package/dist/core/codeRunnerTool.js.map +1 -1
- package/dist/core/runCheckpoint.js +19 -6
- package/dist/core/runCheckpoint.js.map +1 -1
- package/dist/esm/adapters/code/output.d.ts +1 -4
- package/dist/esm/adapters/code/output.js +3 -24
- package/dist/esm/adapters/code/output.js.map +1 -1
- package/dist/esm/adapters/observability/audit.d.ts +79 -12
- package/dist/esm/adapters/observability/audit.js +132 -142
- package/dist/esm/adapters/observability/audit.js.map +1 -1
- package/dist/esm/adapters/observability/auditBounding.d.ts +215 -0
- package/dist/esm/adapters/observability/auditBounding.js +390 -0
- package/dist/esm/adapters/observability/auditBounding.js.map +1 -0
- package/dist/esm/adapters/observability/auditKeptByContract.d.ts +65 -0
- package/dist/esm/adapters/observability/auditKeptByContract.js +103 -0
- package/dist/esm/adapters/observability/auditKeptByContract.js.map +1 -0
- package/dist/esm/adapters/observability/auditShapes.d.ts +78 -0
- package/dist/esm/adapters/observability/auditShapes.js +1726 -0
- package/dist/esm/adapters/observability/auditShapes.js.map +1 -0
- package/dist/esm/answer-account/account.js +91 -14
- package/dist/esm/answer-account/account.js.map +1 -1
- package/dist/esm/answer-account/facts/calls.d.ts +0 -2
- package/dist/esm/answer-account/facts/calls.js +1 -3
- package/dist/esm/answer-account/facts/calls.js.map +1 -1
- package/dist/esm/answer-account/facts/checked.js +2 -2
- package/dist/esm/answer-account/facts/checked.js.map +1 -1
- package/dist/esm/answer-account/facts/common.d.ts +16 -4
- package/dist/esm/answer-account/facts/common.js +38 -6
- package/dist/esm/answer-account/facts/common.js.map +1 -1
- package/dist/esm/answer-account/facts/found.js +2 -2
- package/dist/esm/answer-account/facts/found.js.map +1 -1
- package/dist/esm/answer-account/facts/howSure.d.ts +1 -1
- package/dist/esm/answer-account/facts/howSure.js +22 -4
- package/dist/esm/answer-account/facts/howSure.js.map +1 -1
- package/dist/esm/answer-account/facts/inView.js +1 -2
- package/dist/esm/answer-account/facts/inView.js.map +1 -1
- package/dist/esm/answer-account/facts/pausedLeg.js +2 -2
- package/dist/esm/answer-account/facts/pausedLeg.js.map +1 -1
- package/dist/esm/answer-account/facts/scripts.d.ts +34 -0
- package/dist/esm/answer-account/facts/scripts.js +218 -0
- package/dist/esm/answer-account/facts/scripts.js.map +1 -0
- package/dist/esm/answer-account/facts/understood.js +2 -2
- package/dist/esm/answer-account/facts/understood.js.map +1 -1
- package/dist/esm/answer-account/pointerKey.d.ts +1 -1
- package/dist/esm/answer-account/pointerKey.js +1 -1
- package/dist/esm/answer-account/shown.d.ts +9 -2
- package/dist/esm/answer-account/shown.js +25 -7
- package/dist/esm/answer-account/shown.js.map +1 -1
- package/dist/esm/answer-account/signals.js +2 -2
- package/dist/esm/answer-account/signals.js.map +1 -1
- package/dist/esm/answer-account/size.d.ts +59 -0
- package/dist/esm/answer-account/size.js +147 -0
- package/dist/esm/answer-account/size.js.map +1 -0
- package/dist/esm/answer-account/templates.d.ts +29 -1
- package/dist/esm/answer-account/templates.js +39 -1
- package/dist/esm/answer-account/templates.js.map +1 -1
- package/dist/esm/core/Agent.d.ts +8 -1
- package/dist/esm/core/Agent.js +25 -1
- package/dist/esm/core/Agent.js.map +1 -1
- package/dist/esm/core/agent/AgentBuilder.d.ts +52 -0
- package/dist/esm/core/agent/AgentBuilder.js +85 -1
- package/dist/esm/core/agent/AgentBuilder.js.map +1 -1
- package/dist/esm/core/agent/arguments/ask.d.ts +11 -0
- package/dist/esm/core/agent/arguments/ask.js +83 -1
- package/dist/esm/core/agent/arguments/ask.js.map +1 -1
- package/dist/esm/core/agent/arguments/partialWindow.d.ts +42 -0
- package/dist/esm/core/agent/arguments/partialWindow.js +111 -0
- package/dist/esm/core/agent/arguments/partialWindow.js.map +1 -0
- package/dist/esm/core/agent/assessment/assess.js +37 -0
- package/dist/esm/core/agent/assessment/assess.js.map +1 -1
- package/dist/esm/core/agent/assessment/compose.d.ts +3 -1
- package/dist/esm/core/agent/assessment/compose.js +5 -1
- package/dist/esm/core/agent/assessment/compose.js.map +1 -1
- package/dist/esm/core/agent/assessment/reasons.js +7 -0
- package/dist/esm/core/agent/assessment/reasons.js.map +1 -1
- package/dist/esm/core/agent/assessment/types.d.ts +12 -2
- package/dist/esm/core/agent/assessment/witness.d.ts +44 -4
- package/dist/esm/core/agent/assessment/witness.js +35 -3
- package/dist/esm/core/agent/assessment/witness.js.map +1 -1
- package/dist/esm/core/agent/buildAgentChart.d.ts +9 -0
- package/dist/esm/core/agent/buildAgentChart.js.map +1 -1
- package/dist/esm/core/agent/evidence/codeRegions.d.ts +130 -0
- package/dist/esm/core/agent/evidence/codeRegions.js +275 -0
- package/dist/esm/core/agent/evidence/codeRegions.js.map +1 -0
- package/dist/esm/core/agent/evidence/gate.d.ts +3 -0
- package/dist/esm/core/agent/evidence/gate.js +12 -2
- package/dist/esm/core/agent/evidence/gate.js.map +1 -1
- package/dist/esm/core/agent/evidence/recovery.d.ts +5 -1
- package/dist/esm/core/agent/evidence/recovery.js +11 -2
- package/dist/esm/core/agent/evidence/recovery.js.map +1 -1
- package/dist/esm/core/agent/evidence/types.d.ts +35 -0
- package/dist/esm/core/agent/findings/types.d.ts +3 -2
- package/dist/esm/core/agent/findings/types.js.map +1 -1
- package/dist/esm/core/agent/scripts/attachment.d.ts +179 -0
- package/dist/esm/core/agent/scripts/attachment.js +361 -0
- package/dist/esm/core/agent/scripts/attachment.js.map +1 -0
- package/dist/esm/core/agent/scripts/inert.d.ts +38 -0
- package/dist/esm/core/agent/scripts/inert.js +84 -0
- package/dist/esm/core/agent/scripts/inert.js.map +1 -0
- package/dist/esm/core/agent/scripts/judge.d.ts +36 -0
- package/dist/esm/core/agent/scripts/judge.js +37 -0
- package/dist/esm/core/agent/scripts/judge.js.map +1 -0
- package/dist/esm/core/agent/scripts/label.d.ts +103 -0
- package/dist/esm/core/agent/scripts/label.js +136 -0
- package/dist/esm/core/agent/scripts/label.js.map +1 -0
- package/dist/esm/core/agent/scripts/match.d.ts +99 -0
- package/dist/esm/core/agent/scripts/match.js +226 -0
- package/dist/esm/core/agent/scripts/match.js.map +1 -0
- package/dist/esm/core/agent/scripts/recovery.d.ts +54 -0
- package/dist/esm/core/agent/scripts/recovery.js +77 -0
- package/dist/esm/core/agent/scripts/recovery.js.map +1 -0
- package/dist/esm/core/agent/scripts/rows.d.ts +143 -0
- package/dist/esm/core/agent/scripts/rows.js +211 -0
- package/dist/esm/core/agent/scripts/rows.js.map +1 -0
- package/dist/esm/core/agent/scripts/types.d.ts +91 -0
- package/dist/esm/core/agent/scripts/types.js +21 -0
- package/dist/esm/core/agent/scripts/types.js.map +1 -0
- package/dist/esm/core/agent/scripts/wrapper.d.ts +36 -0
- package/dist/esm/core/agent/scripts/wrapper.js +58 -0
- package/dist/esm/core/agent/scripts/wrapper.js.map +1 -0
- package/dist/esm/core/agent/stages/argumentAsk.d.ts +4 -1
- package/dist/esm/core/agent/stages/argumentAsk.js +164 -22
- package/dist/esm/core/agent/stages/argumentAsk.js.map +1 -1
- package/dist/esm/core/agent/stages/evidenceRecheck.js +4 -1
- package/dist/esm/core/agent/stages/evidenceRecheck.js.map +1 -1
- package/dist/esm/core/agent/stages/prepareFinal.d.ts +11 -0
- package/dist/esm/core/agent/stages/prepareFinal.js +65 -10
- package/dist/esm/core/agent/stages/prepareFinal.js.map +1 -1
- package/dist/esm/core/agent/stages/route.js +53 -3
- package/dist/esm/core/agent/stages/route.js.map +1 -1
- package/dist/esm/core/agent/stages/seed.js +14 -1
- package/dist/esm/core/agent/stages/seed.js.map +1 -1
- package/dist/esm/core/agent/stages/toolCalls.d.ts +14 -0
- package/dist/esm/core/agent/stages/toolCalls.js +337 -16
- package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
- package/dist/esm/core/agent/types.d.ts +41 -0
- package/dist/esm/core/codeRunnerTool.d.ts +23 -0
- package/dist/esm/core/codeRunnerTool.js +31 -2
- package/dist/esm/core/codeRunnerTool.js.map +1 -1
- package/dist/esm/core/runCheckpoint.js +16 -3
- package/dist/esm/core/runCheckpoint.js.map +1 -1
- package/dist/esm/events/payloads.d.ts +46 -1
- package/dist/esm/hosting/answerAccounts.js +4 -2
- package/dist/esm/hosting/answerAccounts.js.map +1 -1
- package/dist/esm/hosting/artifactWire.d.ts +3 -2
- package/dist/esm/hosting/artifactWire.js.map +1 -1
- package/dist/esm/index.d.ts +3 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/boundedJson.d.ts +24 -0
- package/dist/esm/lib/boundedJson.js +45 -2
- package/dist/esm/lib/boundedJson.js.map +1 -1
- package/dist/esm/lib/scriptRecord.d.ts +139 -0
- package/dist/esm/lib/scriptRecord.js +18 -0
- package/dist/esm/lib/scriptRecord.js.map +1 -0
- package/dist/esm/lib/utf8.d.ts +36 -0
- package/dist/esm/lib/utf8.js +70 -0
- package/dist/esm/lib/utf8.js.map +1 -0
- package/dist/esm/mcp/toolExtras.d.ts +9 -0
- package/dist/esm/mcp/toolExtras.js +6 -0
- package/dist/esm/mcp/toolExtras.js.map +1 -1
- package/dist/esm/redaction/conversation.js +10 -0
- package/dist/esm/redaction/conversation.js.map +1 -1
- package/dist/esm/redaction/knownStrings.js +34 -0
- package/dist/esm/redaction/knownStrings.js.map +1 -1
- package/dist/esm/semantics/coverage/answer.d.ts +12 -1
- package/dist/esm/semantics/coverage/answer.js +26 -3
- package/dist/esm/semantics/coverage/answer.js.map +1 -1
- package/dist/esm/tools/script.d.ts +85 -0
- package/dist/esm/tools/script.js +157 -0
- package/dist/esm/tools/script.js.map +1 -0
- package/dist/esm/tools/tools.d.ts +30 -0
- package/dist/esm/tools/tools.js +4 -0
- package/dist/esm/tools/tools.js.map +1 -1
- package/dist/hosting/answerAccounts.js +4 -2
- package/dist/hosting/answerAccounts.js.map +1 -1
- package/dist/hosting/artifactWire.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/boundedJson.js +48 -3
- package/dist/lib/boundedJson.js.map +1 -1
- package/dist/lib/scriptRecord.js +19 -0
- package/dist/lib/scriptRecord.js.map +1 -0
- package/dist/lib/utf8.js +77 -0
- package/dist/lib/utf8.js.map +1 -0
- package/dist/mcp/toolExtras.js +6 -0
- package/dist/mcp/toolExtras.js.map +1 -1
- package/dist/redaction/conversation.js +10 -0
- package/dist/redaction/conversation.js.map +1 -1
- package/dist/redaction/knownStrings.js +34 -0
- package/dist/redaction/knownStrings.js.map +1 -1
- package/dist/semantics/coverage/answer.js +26 -3
- package/dist/semantics/coverage/answer.js.map +1 -1
- package/dist/tools/script.js +163 -0
- package/dist/tools/script.js.map +1 -0
- package/dist/tools/tools.js +4 -0
- package/dist/tools/tools.js.map +1 -1
- package/dist/types/adapters/code/output.d.ts +1 -4
- package/dist/types/adapters/code/output.d.ts.map +1 -1
- package/dist/types/adapters/observability/audit.d.ts +79 -12
- package/dist/types/adapters/observability/audit.d.ts.map +1 -1
- package/dist/types/adapters/observability/auditBounding.d.ts +216 -0
- package/dist/types/adapters/observability/auditBounding.d.ts.map +1 -0
- package/dist/types/adapters/observability/auditKeptByContract.d.ts +66 -0
- package/dist/types/adapters/observability/auditKeptByContract.d.ts.map +1 -0
- package/dist/types/adapters/observability/auditShapes.d.ts +79 -0
- package/dist/types/adapters/observability/auditShapes.d.ts.map +1 -0
- package/dist/types/answer-account/account.d.ts.map +1 -1
- package/dist/types/answer-account/facts/calls.d.ts +0 -2
- package/dist/types/answer-account/facts/calls.d.ts.map +1 -1
- package/dist/types/answer-account/facts/checked.d.ts.map +1 -1
- package/dist/types/answer-account/facts/common.d.ts +16 -4
- package/dist/types/answer-account/facts/common.d.ts.map +1 -1
- package/dist/types/answer-account/facts/found.d.ts.map +1 -1
- package/dist/types/answer-account/facts/howSure.d.ts +1 -1
- package/dist/types/answer-account/facts/howSure.d.ts.map +1 -1
- package/dist/types/answer-account/facts/inView.d.ts.map +1 -1
- package/dist/types/answer-account/facts/pausedLeg.d.ts.map +1 -1
- package/dist/types/answer-account/facts/scripts.d.ts +35 -0
- package/dist/types/answer-account/facts/scripts.d.ts.map +1 -0
- package/dist/types/answer-account/facts/understood.d.ts.map +1 -1
- package/dist/types/answer-account/pointerKey.d.ts +1 -1
- package/dist/types/answer-account/shown.d.ts +9 -2
- package/dist/types/answer-account/shown.d.ts.map +1 -1
- package/dist/types/answer-account/signals.d.ts.map +1 -1
- package/dist/types/answer-account/size.d.ts +60 -0
- package/dist/types/answer-account/size.d.ts.map +1 -0
- package/dist/types/answer-account/templates.d.ts +29 -1
- package/dist/types/answer-account/templates.d.ts.map +1 -1
- package/dist/types/core/Agent.d.ts +8 -1
- package/dist/types/core/Agent.d.ts.map +1 -1
- package/dist/types/core/agent/AgentBuilder.d.ts +52 -0
- package/dist/types/core/agent/AgentBuilder.d.ts.map +1 -1
- package/dist/types/core/agent/arguments/ask.d.ts +11 -0
- package/dist/types/core/agent/arguments/ask.d.ts.map +1 -1
- package/dist/types/core/agent/arguments/partialWindow.d.ts +43 -0
- package/dist/types/core/agent/arguments/partialWindow.d.ts.map +1 -0
- package/dist/types/core/agent/assessment/assess.d.ts.map +1 -1
- package/dist/types/core/agent/assessment/compose.d.ts +3 -1
- package/dist/types/core/agent/assessment/compose.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 +12 -2
- package/dist/types/core/agent/assessment/types.d.ts.map +1 -1
- package/dist/types/core/agent/assessment/witness.d.ts +44 -4
- package/dist/types/core/agent/assessment/witness.d.ts.map +1 -1
- package/dist/types/core/agent/buildAgentChart.d.ts +9 -0
- package/dist/types/core/agent/buildAgentChart.d.ts.map +1 -1
- package/dist/types/core/agent/evidence/codeRegions.d.ts +131 -0
- package/dist/types/core/agent/evidence/codeRegions.d.ts.map +1 -0
- package/dist/types/core/agent/evidence/gate.d.ts +3 -0
- package/dist/types/core/agent/evidence/gate.d.ts.map +1 -1
- package/dist/types/core/agent/evidence/recovery.d.ts +5 -1
- package/dist/types/core/agent/evidence/recovery.d.ts.map +1 -1
- package/dist/types/core/agent/evidence/types.d.ts +35 -0
- package/dist/types/core/agent/evidence/types.d.ts.map +1 -1
- package/dist/types/core/agent/findings/types.d.ts +3 -2
- package/dist/types/core/agent/findings/types.d.ts.map +1 -1
- package/dist/types/core/agent/scripts/attachment.d.ts +180 -0
- package/dist/types/core/agent/scripts/attachment.d.ts.map +1 -0
- package/dist/types/core/agent/scripts/inert.d.ts +39 -0
- package/dist/types/core/agent/scripts/inert.d.ts.map +1 -0
- package/dist/types/core/agent/scripts/judge.d.ts +37 -0
- package/dist/types/core/agent/scripts/judge.d.ts.map +1 -0
- package/dist/types/core/agent/scripts/label.d.ts +104 -0
- package/dist/types/core/agent/scripts/label.d.ts.map +1 -0
- package/dist/types/core/agent/scripts/match.d.ts +100 -0
- package/dist/types/core/agent/scripts/match.d.ts.map +1 -0
- package/dist/types/core/agent/scripts/recovery.d.ts +55 -0
- package/dist/types/core/agent/scripts/recovery.d.ts.map +1 -0
- package/dist/types/core/agent/scripts/rows.d.ts +144 -0
- package/dist/types/core/agent/scripts/rows.d.ts.map +1 -0
- package/dist/types/core/agent/scripts/types.d.ts +92 -0
- package/dist/types/core/agent/scripts/types.d.ts.map +1 -0
- package/dist/types/core/agent/scripts/wrapper.d.ts +37 -0
- package/dist/types/core/agent/scripts/wrapper.d.ts.map +1 -0
- package/dist/types/core/agent/stages/argumentAsk.d.ts +4 -1
- package/dist/types/core/agent/stages/argumentAsk.d.ts.map +1 -1
- package/dist/types/core/agent/stages/evidenceRecheck.d.ts.map +1 -1
- package/dist/types/core/agent/stages/prepareFinal.d.ts +11 -0
- package/dist/types/core/agent/stages/prepareFinal.d.ts.map +1 -1
- package/dist/types/core/agent/stages/route.d.ts.map +1 -1
- package/dist/types/core/agent/stages/seed.d.ts.map +1 -1
- package/dist/types/core/agent/stages/toolCalls.d.ts +14 -0
- package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
- package/dist/types/core/agent/types.d.ts +41 -0
- package/dist/types/core/agent/types.d.ts.map +1 -1
- package/dist/types/core/codeRunnerTool.d.ts +23 -0
- package/dist/types/core/codeRunnerTool.d.ts.map +1 -1
- package/dist/types/core/runCheckpoint.d.ts.map +1 -1
- package/dist/types/events/payloads.d.ts +46 -1
- package/dist/types/events/payloads.d.ts.map +1 -1
- package/dist/types/hosting/answerAccounts.d.ts.map +1 -1
- package/dist/types/hosting/artifactWire.d.ts +3 -2
- package/dist/types/hosting/artifactWire.d.ts.map +1 -1
- package/dist/types/index.d.ts +3 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/lib/boundedJson.d.ts +24 -0
- package/dist/types/lib/boundedJson.d.ts.map +1 -1
- package/dist/types/lib/scriptRecord.d.ts +140 -0
- package/dist/types/lib/scriptRecord.d.ts.map +1 -0
- package/dist/types/lib/utf8.d.ts +37 -0
- package/dist/types/lib/utf8.d.ts.map +1 -0
- package/dist/types/mcp/toolExtras.d.ts +9 -0
- package/dist/types/mcp/toolExtras.d.ts.map +1 -1
- package/dist/types/redaction/conversation.d.ts.map +1 -1
- package/dist/types/redaction/knownStrings.d.ts.map +1 -1
- package/dist/types/semantics/coverage/answer.d.ts +12 -1
- package/dist/types/semantics/coverage/answer.d.ts.map +1 -1
- package/dist/types/tools/script.d.ts +86 -0
- package/dist/types/tools/script.d.ts.map +1 -0
- package/dist/types/tools/tools.d.ts +30 -0
- package/dist/types/tools/tools.d.ts.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* codeRegions — the fenced code blocks of an answer, read by one linear pass,
|
|
3
|
+
* closed where a CommonMark renderer closes them.
|
|
4
|
+
*
|
|
5
|
+
* Pattern: pure leaf. Imports nothing — it does not know the gate exists. The
|
|
6
|
+
* one reader of "which bytes of this answer sit inside a fenced
|
|
7
|
+
* block", asked by the script match (`../scripts/match.ts`) under
|
|
8
|
+
* `.namesAndNumbersFromEvidence({ code: 'match' })`. Under the
|
|
9
|
+
* default `code: 'check'` it is never called.
|
|
10
|
+
* Role: core/ layer (the evidence gate's folder), no state, no events.
|
|
11
|
+
*
|
|
12
|
+
* ## Why it must agree with the renderer
|
|
13
|
+
*
|
|
14
|
+
* A region that matches a submission is exempt from the evidence check. If
|
|
15
|
+
* this reader saw a block where a renderer shows prose, a model could submit a
|
|
16
|
+
* program holding a sentence, show it fenced so that the sentence renders
|
|
17
|
+
* outside the block, and the sentence would never be checked. So the reader
|
|
18
|
+
* closes a block exactly where CommonMark closes it. Where a renderer could
|
|
19
|
+
* pair fences another way, it stops reading blocks altogether.
|
|
20
|
+
*
|
|
21
|
+
* ## The grammar (design: docs/design/2026-10-script-artifact.md § 5.1–5.2, aligned with CommonMark)
|
|
22
|
+
*
|
|
23
|
+
* The answer is read line by line. A line ends at an LF, a CR or a CRLF, as
|
|
24
|
+
* CommonMark ends it.
|
|
25
|
+
*
|
|
26
|
+
* - An OPENING fence starts at column 0 with three or more backticks, or three
|
|
27
|
+
* or more tildes, then an optional info string, and ENDS IN A LINE ENDING.
|
|
28
|
+
* A backtick fence's info string may not contain a backtick.
|
|
29
|
+
* - The CLOSING fence uses the same character and is at least as long. As in
|
|
30
|
+
* CommonMark, it may be indented by up to three spaces and is followed only
|
|
31
|
+
* by spaces.
|
|
32
|
+
* - The CONTENT is exactly the bytes between the opening line's line ending
|
|
33
|
+
* and the ONE line ending before the closing line: every space, tab, CR and
|
|
34
|
+
* code point as written. Before the closing line, an LF is the wrapper's (a
|
|
35
|
+
* CR before it is content), and so is a lone CR. A closing fence on the line
|
|
36
|
+
* right after the opening one gives an empty block (content `''`).
|
|
37
|
+
* - A fence that never closes is NOT a region: the text from it to the end is
|
|
38
|
+
* prose.
|
|
39
|
+
* - At most {@link MAX_CODE_REGIONS} regions are read; the rest are prose and
|
|
40
|
+
* counted in `dropped`.
|
|
41
|
+
*
|
|
42
|
+
* ## Where reading stops (`stoppedAt`)
|
|
43
|
+
*
|
|
44
|
+
* The reader models CommonMark's top level only. It does not model list
|
|
45
|
+
* items, block quotes, HTML blocks or the extensions renderers add. At the
|
|
46
|
+
* first line where a renderer could pair fences another way, reading STOPS.
|
|
47
|
+
* No region is read from there on: everything after that point is prose and
|
|
48
|
+
* checked.
|
|
49
|
+
*
|
|
50
|
+
* Outside a block, reading stops at:
|
|
51
|
+
* - a fence indented by one to three spaces. It is either a list item's fence,
|
|
52
|
+
* which the item scopes, or an indented fence, whose content a renderer
|
|
53
|
+
* strips (and "as written" and "with the indentation removed" are two
|
|
54
|
+
* different programs);
|
|
55
|
+
* - a line that may start an HTML block (up to three spaces, `<`, then a
|
|
56
|
+
* letter, `/`, `!` or `?`). Inside an HTML block, a fence is not a fence;
|
|
57
|
+
* - a line opening display math (`$$`), the block extension chat renderers
|
|
58
|
+
* commonly add. Inside display math, a fence is not a fence;
|
|
59
|
+
* - a byte-order mark at the very start, which some renderers drop and some
|
|
60
|
+
* keep.
|
|
61
|
+
*
|
|
62
|
+
* Inside a block, reading stops at:
|
|
63
|
+
* - a closing run followed by a TAB. CommonMark 0.30 closes the block there
|
|
64
|
+
* and 0.29 does not, so the block is read (it is code either way) and
|
|
65
|
+
* reading stops after it;
|
|
66
|
+
* - a run of the block's own fence character, anywhere in its content, as long
|
|
67
|
+
* as its opening fence. A renderer laxer than CommonMark could close the
|
|
68
|
+
* block there, so the block is prose and reading stops at its opening line.
|
|
69
|
+
* The library's own wrapper never writes such a block
|
|
70
|
+
* (`../scripts/wrapper.ts` · `fenceFor`: the longest run + 1).
|
|
71
|
+
*
|
|
72
|
+
* Nothing here normalizes anything: no trimming, no line-ending rewrite, no
|
|
73
|
+
* Unicode normalization. A region is the program a reader would copy.
|
|
74
|
+
*
|
|
75
|
+
* ## Linear by construction
|
|
76
|
+
*
|
|
77
|
+
* The text is model output, so the pass is linear in it (the
|
|
78
|
+
* `lib/linearText.ts` law, pinned by `test/security/linear-scanners.test.ts`).
|
|
79
|
+
* Each line is read ONCE, character by character, from where the last one
|
|
80
|
+
* ended: its indentation, its fence run, the rest of it and its line ending.
|
|
81
|
+
* No regular expression runs over the answer.
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```ts
|
|
85
|
+
* const { regions } = codeRegionsOf('Total:\n```python\nprint(1)\n```\nDone.');
|
|
86
|
+
* regions[0].content; // 'print(1)'
|
|
87
|
+
* regions[0].block; // 1
|
|
88
|
+
* codeRegionsOf('```\na\n ```\nRevenue was 4321.').regions[0].content; // 'a'
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
/** Regions read per answer; the rest are prose and counted (`dropped`). Design § 4.4. */
|
|
92
|
+
export declare const MAX_CODE_REGIONS = 32;
|
|
93
|
+
/** One fenced block, as the answer wrote it. */
|
|
94
|
+
export interface CodeRegion {
|
|
95
|
+
/** 1-based position among the regions READ, in answer order. */
|
|
96
|
+
readonly block: number;
|
|
97
|
+
/** Index of the opening fence line's first character. */
|
|
98
|
+
readonly start: number;
|
|
99
|
+
/** Index just past the closing fence line (past its line ending when it has one). */
|
|
100
|
+
readonly end: number;
|
|
101
|
+
/** The bytes between the wrapper's two line endings — the program as written. */
|
|
102
|
+
readonly content: string;
|
|
103
|
+
/** The opening line's info string, as written (spaces excluded at the ends). */
|
|
104
|
+
readonly info: string;
|
|
105
|
+
}
|
|
106
|
+
/** Every region of one answer, and how many more there were. */
|
|
107
|
+
export interface CodeRegions {
|
|
108
|
+
readonly regions: readonly CodeRegion[];
|
|
109
|
+
/** Regions past {@link MAX_CODE_REGIONS}: read as prose, never matched. */
|
|
110
|
+
readonly dropped: number;
|
|
111
|
+
/**
|
|
112
|
+
* Where reading stopped, when it did: the index of the first character no
|
|
113
|
+
* region is read from. Everything from here on is prose. Absent when the
|
|
114
|
+
* whole answer was read.
|
|
115
|
+
*/
|
|
116
|
+
readonly stoppedAt?: number;
|
|
117
|
+
/**
|
|
118
|
+
* The opening run of a fence still open at the END (`'```'`, `'~~~~'`) —
|
|
119
|
+
* the block a renderer is still inside there. The fence is prose for the
|
|
120
|
+
* match; a writer that appends after this text closes it first
|
|
121
|
+
* (`../scripts/attachment.ts` · `attachmentBoundary`). Never set with
|
|
122
|
+
* `stoppedAt`: after a stop the reader does not know what is open.
|
|
123
|
+
*/
|
|
124
|
+
readonly openFence?: string;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* The fenced code regions of `text`, in order, how many past the cap, and where
|
|
128
|
+
* reading stopped. Pure and linear; `max` defaults to {@link MAX_CODE_REGIONS}.
|
|
129
|
+
*/
|
|
130
|
+
export declare function codeRegionsOf(text: string, max?: number): CodeRegions;
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* codeRegions — the fenced code blocks of an answer, read by one linear pass,
|
|
3
|
+
* closed where a CommonMark renderer closes them.
|
|
4
|
+
*
|
|
5
|
+
* Pattern: pure leaf. Imports nothing — it does not know the gate exists. The
|
|
6
|
+
* one reader of "which bytes of this answer sit inside a fenced
|
|
7
|
+
* block", asked by the script match (`../scripts/match.ts`) under
|
|
8
|
+
* `.namesAndNumbersFromEvidence({ code: 'match' })`. Under the
|
|
9
|
+
* default `code: 'check'` it is never called.
|
|
10
|
+
* Role: core/ layer (the evidence gate's folder), no state, no events.
|
|
11
|
+
*
|
|
12
|
+
* ## Why it must agree with the renderer
|
|
13
|
+
*
|
|
14
|
+
* A region that matches a submission is exempt from the evidence check. If
|
|
15
|
+
* this reader saw a block where a renderer shows prose, a model could submit a
|
|
16
|
+
* program holding a sentence, show it fenced so that the sentence renders
|
|
17
|
+
* outside the block, and the sentence would never be checked. So the reader
|
|
18
|
+
* closes a block exactly where CommonMark closes it. Where a renderer could
|
|
19
|
+
* pair fences another way, it stops reading blocks altogether.
|
|
20
|
+
*
|
|
21
|
+
* ## The grammar (design: docs/design/2026-10-script-artifact.md § 5.1–5.2, aligned with CommonMark)
|
|
22
|
+
*
|
|
23
|
+
* The answer is read line by line. A line ends at an LF, a CR or a CRLF, as
|
|
24
|
+
* CommonMark ends it.
|
|
25
|
+
*
|
|
26
|
+
* - An OPENING fence starts at column 0 with three or more backticks, or three
|
|
27
|
+
* or more tildes, then an optional info string, and ENDS IN A LINE ENDING.
|
|
28
|
+
* A backtick fence's info string may not contain a backtick.
|
|
29
|
+
* - The CLOSING fence uses the same character and is at least as long. As in
|
|
30
|
+
* CommonMark, it may be indented by up to three spaces and is followed only
|
|
31
|
+
* by spaces.
|
|
32
|
+
* - The CONTENT is exactly the bytes between the opening line's line ending
|
|
33
|
+
* and the ONE line ending before the closing line: every space, tab, CR and
|
|
34
|
+
* code point as written. Before the closing line, an LF is the wrapper's (a
|
|
35
|
+
* CR before it is content), and so is a lone CR. A closing fence on the line
|
|
36
|
+
* right after the opening one gives an empty block (content `''`).
|
|
37
|
+
* - A fence that never closes is NOT a region: the text from it to the end is
|
|
38
|
+
* prose.
|
|
39
|
+
* - At most {@link MAX_CODE_REGIONS} regions are read; the rest are prose and
|
|
40
|
+
* counted in `dropped`.
|
|
41
|
+
*
|
|
42
|
+
* ## Where reading stops (`stoppedAt`)
|
|
43
|
+
*
|
|
44
|
+
* The reader models CommonMark's top level only. It does not model list
|
|
45
|
+
* items, block quotes, HTML blocks or the extensions renderers add. At the
|
|
46
|
+
* first line where a renderer could pair fences another way, reading STOPS.
|
|
47
|
+
* No region is read from there on: everything after that point is prose and
|
|
48
|
+
* checked.
|
|
49
|
+
*
|
|
50
|
+
* Outside a block, reading stops at:
|
|
51
|
+
* - a fence indented by one to three spaces. It is either a list item's fence,
|
|
52
|
+
* which the item scopes, or an indented fence, whose content a renderer
|
|
53
|
+
* strips (and "as written" and "with the indentation removed" are two
|
|
54
|
+
* different programs);
|
|
55
|
+
* - a line that may start an HTML block (up to three spaces, `<`, then a
|
|
56
|
+
* letter, `/`, `!` or `?`). Inside an HTML block, a fence is not a fence;
|
|
57
|
+
* - a line opening display math (`$$`), the block extension chat renderers
|
|
58
|
+
* commonly add. Inside display math, a fence is not a fence;
|
|
59
|
+
* - a byte-order mark at the very start, which some renderers drop and some
|
|
60
|
+
* keep.
|
|
61
|
+
*
|
|
62
|
+
* Inside a block, reading stops at:
|
|
63
|
+
* - a closing run followed by a TAB. CommonMark 0.30 closes the block there
|
|
64
|
+
* and 0.29 does not, so the block is read (it is code either way) and
|
|
65
|
+
* reading stops after it;
|
|
66
|
+
* - a run of the block's own fence character, anywhere in its content, as long
|
|
67
|
+
* as its opening fence. A renderer laxer than CommonMark could close the
|
|
68
|
+
* block there, so the block is prose and reading stops at its opening line.
|
|
69
|
+
* The library's own wrapper never writes such a block
|
|
70
|
+
* (`../scripts/wrapper.ts` · `fenceFor`: the longest run + 1).
|
|
71
|
+
*
|
|
72
|
+
* Nothing here normalizes anything: no trimming, no line-ending rewrite, no
|
|
73
|
+
* Unicode normalization. A region is the program a reader would copy.
|
|
74
|
+
*
|
|
75
|
+
* ## Linear by construction
|
|
76
|
+
*
|
|
77
|
+
* The text is model output, so the pass is linear in it (the
|
|
78
|
+
* `lib/linearText.ts` law, pinned by `test/security/linear-scanners.test.ts`).
|
|
79
|
+
* Each line is read ONCE, character by character, from where the last one
|
|
80
|
+
* ended: its indentation, its fence run, the rest of it and its line ending.
|
|
81
|
+
* No regular expression runs over the answer.
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```ts
|
|
85
|
+
* const { regions } = codeRegionsOf('Total:\n```python\nprint(1)\n```\nDone.');
|
|
86
|
+
* regions[0].content; // 'print(1)'
|
|
87
|
+
* regions[0].block; // 1
|
|
88
|
+
* codeRegionsOf('```\na\n ```\nRevenue was 4321.').regions[0].content; // 'a'
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
/** Regions read per answer; the rest are prose and counted (`dropped`). Design § 4.4. */
|
|
92
|
+
export const MAX_CODE_REGIONS = 32;
|
|
93
|
+
const BACKTICK = 0x60;
|
|
94
|
+
const TILDE = 0x7e;
|
|
95
|
+
const SPACE = 0x20;
|
|
96
|
+
const TAB = 0x09;
|
|
97
|
+
const CR = 0x0d;
|
|
98
|
+
const LF = 0x0a;
|
|
99
|
+
const LESS_THAN = 0x3c;
|
|
100
|
+
const DOLLAR = 0x24;
|
|
101
|
+
const BYTE_ORDER_MARK = 0xfeff;
|
|
102
|
+
/**
|
|
103
|
+
* Read the line starting at `start`, each character once. `watch` is the fence
|
|
104
|
+
* character of the block that is open (0 when none): the longest run of it on
|
|
105
|
+
* the line is counted.
|
|
106
|
+
*/
|
|
107
|
+
function readLine(text, start, watch) {
|
|
108
|
+
const length = text.length;
|
|
109
|
+
let i = start;
|
|
110
|
+
let c = i < length ? text.charCodeAt(i) : -1;
|
|
111
|
+
while (c === SPACE)
|
|
112
|
+
c = ++i < length ? text.charCodeAt(i) : -1;
|
|
113
|
+
const indent = i - start;
|
|
114
|
+
const first = c === CR || c === LF ? -1 : c;
|
|
115
|
+
let char = 0;
|
|
116
|
+
let run = 0;
|
|
117
|
+
let current = 0;
|
|
118
|
+
let longest = 0;
|
|
119
|
+
if (c === BACKTICK || c === TILDE) {
|
|
120
|
+
char = c;
|
|
121
|
+
while (c === char) {
|
|
122
|
+
run += 1;
|
|
123
|
+
c = ++i < length ? text.charCodeAt(i) : -1;
|
|
124
|
+
}
|
|
125
|
+
if (watch !== 0 && char === watch)
|
|
126
|
+
longest = current = run;
|
|
127
|
+
}
|
|
128
|
+
let restSpaces = true;
|
|
129
|
+
let restBlank = true;
|
|
130
|
+
let restBacktick = false;
|
|
131
|
+
let infoFrom = -1;
|
|
132
|
+
let infoTo = i;
|
|
133
|
+
while (c !== -1 && c !== CR && c !== LF) {
|
|
134
|
+
if (c !== SPACE) {
|
|
135
|
+
restSpaces = false;
|
|
136
|
+
if (c !== TAB)
|
|
137
|
+
restBlank = false;
|
|
138
|
+
if (infoFrom === -1)
|
|
139
|
+
infoFrom = i;
|
|
140
|
+
infoTo = i + 1;
|
|
141
|
+
}
|
|
142
|
+
if (c === BACKTICK)
|
|
143
|
+
restBacktick = true;
|
|
144
|
+
if (watch !== 0 && c === watch) {
|
|
145
|
+
current += 1;
|
|
146
|
+
if (current > longest)
|
|
147
|
+
longest = current;
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
current = 0;
|
|
151
|
+
}
|
|
152
|
+
c = ++i < length ? text.charCodeAt(i) : -1;
|
|
153
|
+
}
|
|
154
|
+
const end = i;
|
|
155
|
+
let next = end;
|
|
156
|
+
if (c === CR) {
|
|
157
|
+
next = end + 1;
|
|
158
|
+
if (next < length && text.charCodeAt(next) === LF)
|
|
159
|
+
next += 1;
|
|
160
|
+
}
|
|
161
|
+
else if (c === LF) {
|
|
162
|
+
next = end + 1;
|
|
163
|
+
}
|
|
164
|
+
return {
|
|
165
|
+
end,
|
|
166
|
+
next,
|
|
167
|
+
terminated: next > end,
|
|
168
|
+
indent,
|
|
169
|
+
first,
|
|
170
|
+
char,
|
|
171
|
+
run,
|
|
172
|
+
restSpaces,
|
|
173
|
+
restBlank,
|
|
174
|
+
restBacktick,
|
|
175
|
+
infoFrom: infoFrom === -1 ? infoTo : infoFrom,
|
|
176
|
+
infoTo,
|
|
177
|
+
longest,
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Whether a line outside any block could be read by a renderer as something
|
|
182
|
+
* that pairs fences another way: an indented fence, an HTML block's start, or
|
|
183
|
+
* display math.
|
|
184
|
+
*/
|
|
185
|
+
function unsettles(text, lineStart, line) {
|
|
186
|
+
if (line.indent > 3)
|
|
187
|
+
return false;
|
|
188
|
+
if (line.run >= 3)
|
|
189
|
+
return line.indent > 0;
|
|
190
|
+
if (line.first !== LESS_THAN && line.first !== DOLLAR)
|
|
191
|
+
return false;
|
|
192
|
+
const second = text.charCodeAt(lineStart + line.indent + 1);
|
|
193
|
+
if (line.first === LESS_THAN) {
|
|
194
|
+
// A letter (an open tag), `/` (a closing tag), `!` (a comment, a
|
|
195
|
+
// declaration, CDATA) or `?` (a processing instruction).
|
|
196
|
+
const lower = second | 0x20;
|
|
197
|
+
return ((lower >= 0x61 && lower <= 0x7a) || second === 0x2f || second === 0x21 || second === 0x3f);
|
|
198
|
+
}
|
|
199
|
+
return second === DOLLAR;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* The fenced code regions of `text`, in order, how many past the cap, and where
|
|
203
|
+
* reading stopped. Pure and linear; `max` defaults to {@link MAX_CODE_REGIONS}.
|
|
204
|
+
*/
|
|
205
|
+
export function codeRegionsOf(text, max = MAX_CODE_REGIONS) {
|
|
206
|
+
const regions = [];
|
|
207
|
+
let dropped = 0;
|
|
208
|
+
if (text.length > 0 && text.charCodeAt(0) === BYTE_ORDER_MARK) {
|
|
209
|
+
return { regions, dropped, stoppedAt: 0 };
|
|
210
|
+
}
|
|
211
|
+
let open;
|
|
212
|
+
// The longest run of the open block's fence character in its content so far.
|
|
213
|
+
let longest = 0;
|
|
214
|
+
let lineStart = 0;
|
|
215
|
+
while (lineStart < text.length) {
|
|
216
|
+
const line = readLine(text, lineStart, open?.char ?? 0);
|
|
217
|
+
if (open === undefined) {
|
|
218
|
+
if (line.indent === 0 &&
|
|
219
|
+
line.run >= 3 &&
|
|
220
|
+
line.terminated &&
|
|
221
|
+
!(line.char === BACKTICK && line.restBacktick)) {
|
|
222
|
+
open = {
|
|
223
|
+
start: lineStart,
|
|
224
|
+
contentStart: line.next,
|
|
225
|
+
char: line.char,
|
|
226
|
+
length: line.run,
|
|
227
|
+
info: text.slice(line.infoFrom, line.infoTo),
|
|
228
|
+
};
|
|
229
|
+
longest = 0;
|
|
230
|
+
}
|
|
231
|
+
else if (unsettles(text, lineStart, line)) {
|
|
232
|
+
return { regions, dropped, stoppedAt: lineStart };
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
else if (line.indent <= 3 &&
|
|
236
|
+
line.char === open.char &&
|
|
237
|
+
line.run >= open.length &&
|
|
238
|
+
line.restBlank) {
|
|
239
|
+
// A laxer renderer could have closed the block inside its content.
|
|
240
|
+
if (longest >= open.length)
|
|
241
|
+
return { regions, dropped, stoppedAt: open.start };
|
|
242
|
+
if (regions.length < max) {
|
|
243
|
+
// The ONE line ending before the closing line is the wrapper's: its
|
|
244
|
+
// last character (the LF of an LF or a CRLF, or a lone CR). A closing
|
|
245
|
+
// line right after the opening one leaves an empty block.
|
|
246
|
+
const contentEnd = Math.max(open.contentStart, lineStart - 1);
|
|
247
|
+
regions.push({
|
|
248
|
+
block: regions.length + 1,
|
|
249
|
+
start: open.start,
|
|
250
|
+
end: line.next,
|
|
251
|
+
content: text.slice(open.contentStart, contentEnd),
|
|
252
|
+
info: open.info,
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
else {
|
|
256
|
+
dropped += 1;
|
|
257
|
+
}
|
|
258
|
+
open = undefined;
|
|
259
|
+
// A tab after the run: CommonMark versions disagree on what follows.
|
|
260
|
+
if (!line.restSpaces)
|
|
261
|
+
return { regions, dropped, stoppedAt: line.next };
|
|
262
|
+
}
|
|
263
|
+
else if (line.longest > longest) {
|
|
264
|
+
longest = line.longest;
|
|
265
|
+
}
|
|
266
|
+
lineStart = line.next;
|
|
267
|
+
}
|
|
268
|
+
// A fence still open here never closed: prose to the end, not a region —
|
|
269
|
+
// and the block a renderer is still inside, for a writer appending after.
|
|
270
|
+
if (open !== undefined) {
|
|
271
|
+
return { regions, dropped, openFence: String.fromCharCode(open.char).repeat(open.length) };
|
|
272
|
+
}
|
|
273
|
+
return { regions, dropped };
|
|
274
|
+
}
|
|
275
|
+
//# sourceMappingURL=codeRegions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codeRegions.js","sourceRoot":"","sources":["../../../../../src/core/agent/evidence/codeRegions.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,6 +66,9 @@ import type { FigureCheck } from './figures.js';
|
|
|
66
66
|
import type { EvidencePosture, EvidenceVerdict, NamesAndNumbersOptions, ResolvedEvidenceGate, UnsupportedValue } from './types.js';
|
|
67
67
|
export { EVIDENCE_CHECK_FRAME_PREFIX };
|
|
68
68
|
export { MAX_REPORTED_VALUES };
|
|
69
|
+
/** Clip a value for display without letting it pretend to be complete — the
|
|
70
|
+
* spelling every verdict reports a value under (`UnsupportedValue.value`). */
|
|
71
|
+
export declare function clip(v: string): string;
|
|
69
72
|
/**
|
|
70
73
|
* Validate the caller's options once, at build time, into the config the chart
|
|
71
74
|
* carries. Refusals name the option and the fix — nothing here is discovered
|
|
@@ -74,8 +74,9 @@ export { EVIDENCE_CHECK_FRAME_PREFIX };
|
|
|
74
74
|
export { MAX_REPORTED_VALUES };
|
|
75
75
|
/** Longest a single value is quoted at. */
|
|
76
76
|
const MAX_VALUE_CHARS = 64;
|
|
77
|
-
/** Clip a value for display without letting it pretend to be complete
|
|
78
|
-
|
|
77
|
+
/** Clip a value for display without letting it pretend to be complete — the
|
|
78
|
+
* spelling every verdict reports a value under (`UnsupportedValue.value`). */
|
|
79
|
+
export function clip(v) {
|
|
79
80
|
return v.length <= MAX_VALUE_CHARS ? v : `${v.slice(0, MAX_VALUE_CHARS - 1)}…`;
|
|
80
81
|
}
|
|
81
82
|
/**
|
|
@@ -113,6 +114,14 @@ export function resolveEvidenceGate(opts = {}) {
|
|
|
113
114
|
`whether it is a rounding, sum, ratio or unit conversion of the numbers one did; ` +
|
|
114
115
|
`absent or \`false\` is the gate as it was.`);
|
|
115
116
|
}
|
|
117
|
+
const code = opts.code ?? 'check';
|
|
118
|
+
if (code !== 'check' && code !== 'match') {
|
|
119
|
+
throw new Error(`AgentBuilder.namesAndNumbersFromEvidence: code '${String(opts.code)}' is not a mode ` +
|
|
120
|
+
"this library has. Use 'check' (the default — a fenced block is read as prose, as " +
|
|
121
|
+
"always) or 'match' (a fenced block that equals a program this turn's code-running " +
|
|
122
|
+
'calls submitted is script content; any other block stays prose). There is no ' +
|
|
123
|
+
"'skip': exempting every fence would exempt any claim typed inside one.");
|
|
124
|
+
}
|
|
116
125
|
const decimalRounding = opts.decimalRounding ?? false;
|
|
117
126
|
if (typeof decimalRounding !== 'boolean') {
|
|
118
127
|
throw new Error('AgentBuilder.namesAndNumbersFromEvidence: decimalRounding must be a boolean. ' +
|
|
@@ -164,6 +173,7 @@ export function resolveEvidenceGate(opts = {}) {
|
|
|
164
173
|
nudge,
|
|
165
174
|
figures,
|
|
166
175
|
...(decimalRounding && { decimalRounding: true }),
|
|
176
|
+
...(code === 'match' && { code: 'match' }),
|
|
167
177
|
...(opts.recoveryInstruction !== undefined && {
|
|
168
178
|
recoveryInstruction: opts.recoveryInstruction,
|
|
169
179
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate.js","sourceRoot":"","sources":["../../../../../src/core/agent/evidence/gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAE5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAYxE,MAAM,QAAQ,GAA+B,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAE1E,4EAA4E;AAC5E,8EAA8E;AAC9E,oEAAoE;AACpE,OAAO,EAAE,2BAA2B,EAAE,CAAC;AAEvC,6EAA6E;AAC7E,sEAAsE;AACtE,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAE/B,2CAA2C;AAC3C,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B
|
|
1
|
+
{"version":3,"file":"gate.js","sourceRoot":"","sources":["../../../../../src/core/agent/evidence/gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAE5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAYxE,MAAM,QAAQ,GAA+B,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAE1E,4EAA4E;AAC5E,8EAA8E;AAC9E,oEAAoE;AACpE,OAAO,EAAE,2BAA2B,EAAE,CAAC;AAEvC,6EAA6E;AAC7E,sEAAsE;AACtE,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAE/B,2CAA2C;AAC3C,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B;+EAC+E;AAC/E,MAAM,UAAU,IAAI,CAAC,CAAS;IAC5B,OAAO,CAAC,CAAC,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,GAAG,CAAC,CAAC,GAAG,CAAC;AACjF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAA+B,EAAE;IACnE,2BAA2B,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC;IACzC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,sDAAsD,MAAM,CAAC,OAAO,CAAC,qBAAqB;YACxF,oFAAoF;YACpF,oFAAoF;YACpF,kCAAkC,CACrC,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CACb,yFAAyF;YACvF,WAAW,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,uDAAuD;YACxF,0FAA0F,CAC7F,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC;IAClC,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,0EAA0E;YACxE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,+DAA+D;YACpF,sFAAsF;YACtF,0BAA0B,CAC7B,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC;IACtC,IAAI,OAAO,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,4EAA4E;YAC1E,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,uDAAuD;YAC9E,iFAAiF;YACjF,kFAAkF;YAClF,4CAA4C,CAC/C,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC;IAClC,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CACb,mDAAmD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB;YACpF,mFAAmF;YACnF,oFAAoF;YACpF,+EAA+E;YAC/E,wEAAwE,CAC3E,CAAC;IACJ,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,KAAK,CAAC;IACtD,IAAI,OAAO,eAAe,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CACb,+EAA+E;YAC7E,mFAAmF;YACnF,gEAAgE,CACnE,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CACb,wFAAwF;gBACtF,kFAAkF;gBAClF,4EAA4E,CAC/E,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,wEAAwE,IAAI,WAAW;gBACrF,6EAA6E,CAChF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,YAAY,MAAM,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CACb,oDAAoD,IAAI,6BAA6B,CACtF,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACnC,IAAI,EAAE,YAAY,MAAM;YAAE,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;aACrD,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;YAChC,sEAAsE;YACtE,gDAAgD;YAChD,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC;gBAAE,IAAI,IAAI,KAAK,EAAE;oBAAE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChF,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,oFAAoF,CACrF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO;QACP,MAAM;QACN,YAAY;QACZ,cAAc;QACd,SAAS;QACT,KAAK;QACL,OAAO;QACP,GAAG,CAAC,eAAe,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;QACjD,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,EAAE,IAAI,EAAE,OAAgB,EAAE,CAAC;QACnD,GAAG,CAAC,IAAI,CAAC,mBAAmB,KAAK,SAAS,IAAI;YAC5C,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;SAC9C,CAAC;KACH,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,MAAM,CAAC,EAAU;IACxB,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AACzE,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,WAAW,CACzB,MAAc,EACd,IAyBC;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE;QAC5C,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO;QAC9B,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;QACjC,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,IAAI;KAC3B,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,MAAM,WAAW,GAAuB,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAuB,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAqB,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,eAAmC,CAAC;IACxC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,uEAAuE;QACvE,uEAAuE;QACvE,sEAAsE;QACtE,yEAAyE;QACzE,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAAE,SAAS;QACpD,oEAAoE;QACpE,wEAAwE;QACxE,wEAAwE;QACxE,kCAAkC;QAClC,IAAI,IAAwB,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,GAAG,IAAI,CAAC;gBAAE,IAAI,GAAG,IAAI,CAAC;QAC7E,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,kEAAkE;YAClE,gEAAgE;YAChE,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;gBACrD,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;gBACvE,SAAS;YACX,CAAC;YACD,6DAA6D;YAC7D,sEAAsE;YACtE,MAAM,GAAG,GACP,IAAI,CAAC,IAAI,CAAC,eAAe,KAAK,IAAI,IAAI,SAAS,CAAC,eAAe,KAAK,SAAS;gBAC3E,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,SAAS,CAAC,eAAe,CAAC;gBAC3D,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO;oBACjB,IAAI,CAAC,OAAO,KAAK,SAAS;oBAC1B,CAAC,SAAS,CAAC,KAAK,KAAK,QAAQ,IAAI,SAAS,CAAC,KAAK,KAAK,QAAQ,CAAC;oBAChE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC;oBACvC,CAAC,CAAC,SAAS,CAAC;YAChB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;gBAChF,SAAS;YACX,CAAC;YACD,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;YAC3E,SAAS;QACX,CAAC;QACD,wEAAwE;QACxE,+CAA+C;QAC/C,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACjD,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YACtC,YAAY,IAAI,CAAC,CAAC;YAClB,SAAS;QACX,CAAC;QACD,cAAc,IAAI,CAAC,CAAC;QACpB,IAAI,eAAe,KAAK,SAAS,IAAI,IAAI,GAAG,eAAe;YAAE,eAAe,GAAG,IAAI,CAAC;IACtF,CAAC;IACD,OAAO;QACL,WAAW;QACX,UAAU,EAAE,UAAU,CAAC,MAAM;QAC7B,qEAAqE;QACrE,qFAAqF;QACrF,QAAQ,EAAE,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;QACjF,QAAQ;QACR,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC;QAC9C,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC/C,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS;QAC1C,yEAAyE;QACzE,2BAA2B;QAC3B,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QACrD,SAAS,EAAE;YACT,YAAY;YACZ,cAAc;YACd,GAAG,CAAC,eAAe,KAAK,SAAS,IAAI,EAAE,eAAe,EAAE,CAAC;YACzD,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW;YACtC,mBAAmB,EAAE,IAAI,CAAC,QAAQ,CAAC,mBAAmB;YACtD,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS;SACxC;KACF,CAAC;AACJ,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,cAAc,CAAC,MAAmC;IAChE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC1C,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC/D,CAAC;AAED,4CAA4C;AAC5C,yGAAyG;AACzG,mFAAmF;AACnF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,UAAU,uBAAuB,CACrC,YAAoB,EACpB,MAAmC,EACnC,UAA4B;IAE5B,MAAM,KAAK,GACT,GAAG,2BAA2B,2DAA2D;QACzF,0FAA0F;QAC1F,4FAA4F;QAC5F,cAAc;QACd,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;QACtE,6EAA6E;QAC7E,4FAA4F;QAC5F,2FAA2F;QAC3F,oBAAoB,CAAC;IACvB,OAAO;QACL,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE;QAC5C,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,OAAO,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE;KACnE,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAAmC,EACnC,OAAwB,EACxB,OAAgB;AAChB;2DAC2D;AAC3D,OAAiB;IAEjB,MAAM,IAAI,GACR,OAAO,KAAK,OAAO;QACjB,CAAC,CAAC,kDAAkD,MAAM,CAAC,MAAM,wDAAwD;QACzH,CAAC,CAAC,uCAAuC,MAAM,CAAC,MAAM,uDAAuD,CAAC;IAClH,OAAO,CACL,GAAG,IAAI,MAAM,cAAc,CAAC,MAAM,CAAC,IAAI;QACvC,CAAC,OAAO,CAAC,CAAC,CAAC,2EAA2E,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5F,CAAC,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC;YACnF,CAAC,CAAC,qFAAqF;gBACrF,sFAAsF;gBACtF,8BAA8B;YAChC,CAAC,CAAC,EAAE,CAAC;QACP,sFAAsF;QACtF,4FAA4F;QAC5F,2FAA2F;QAC3F,uFAAuF;QACvF,4FAA4F;QAC5F,yFAAyF;QACzF,4DAA4D,CAC7D,CAAC;AACJ,CAAC"}
|
|
@@ -17,7 +17,11 @@ export declare function buildEvidenceRecovery(input: {
|
|
|
17
17
|
}, extra?: EvidenceRecoveryInstruction, staged?: StagedRefsMatch,
|
|
18
18
|
/** The figures dial's late line (`figures.ts` · `figuresConclusionLine`,
|
|
19
19
|
* composed by Route, which loaded the module): rides the request LAST. */
|
|
20
|
-
conclusion?: string
|
|
20
|
+
conclusion?: string,
|
|
21
|
+
/** Under `code: 'match'`: the script clause (`scripts/recovery.ts` ·
|
|
22
|
+
* `scriptRecoveryClause`, composed by Route) — after "Recovery action:
|
|
23
|
+
* replace the rejected draft". Absent or `''` → the bytes it always was. */
|
|
24
|
+
scriptClause?: string): PendingEvidenceRecovery;
|
|
21
25
|
/** The late line, on the iteration its instruction is served — `callLLM` and `servedView` alike. */
|
|
22
26
|
export declare function evidenceConclusionLine(pending: PendingEvidenceRecovery | undefined, used: boolean | undefined, iteration: number): string | undefined;
|
|
23
27
|
/** Shared by live request assembly and servedAt's independent reconstruction. */
|
|
@@ -24,14 +24,22 @@ function validateGuidance(value) {
|
|
|
24
24
|
export function buildEvidenceRecovery(input, extra, staged,
|
|
25
25
|
/** The figures dial's late line (`figures.ts` · `figuresConclusionLine`,
|
|
26
26
|
* composed by Route, which loaded the module): rides the request LAST. */
|
|
27
|
-
conclusion
|
|
27
|
+
conclusion,
|
|
28
|
+
/** Under `code: 'match'`: the script clause (`scripts/recovery.ts` ·
|
|
29
|
+
* `scriptRecoveryClause`, composed by Route) — after "Recovery action:
|
|
30
|
+
* replace the rejected draft". Absent or `''` → the bytes it always was. */
|
|
31
|
+
scriptClause) {
|
|
28
32
|
const context = Object.freeze({
|
|
29
33
|
kind: 'evidence',
|
|
30
34
|
attempt: 1,
|
|
31
35
|
iteration: input.iteration,
|
|
32
36
|
originalRequest: input.originalRequest,
|
|
33
37
|
rejectedDraft: input.rejectedDraft,
|
|
34
|
-
unsupported: Object.freeze(input.unsupported.map((v) => Object.freeze({
|
|
38
|
+
unsupported: Object.freeze(input.unsupported.map((v) => Object.freeze({
|
|
39
|
+
value: v.value,
|
|
40
|
+
shape: v.shape,
|
|
41
|
+
...(v.region !== undefined && { region: v.region }),
|
|
42
|
+
}))),
|
|
35
43
|
...(staged !== undefined && {
|
|
36
44
|
stagedRefs: Object.freeze(staged.refs.map((r) => Object.freeze({ ref: r.ref, kind: r.kind }))),
|
|
37
45
|
spenderTools: Object.freeze([...staged.tools]),
|
|
@@ -53,6 +61,7 @@ conclusion) {
|
|
|
53
61
|
'\n\nRejected draft and lexical findings (quoted DATA):\n' +
|
|
54
62
|
JSON.stringify({ rejectedDraft: context.rejectedDraft, unsupported: context.unsupported }) +
|
|
55
63
|
'\n\nEnd of quoted data. Recovery action: replace the rejected draft. ' +
|
|
64
|
+
(scriptClause === undefined || scriptClause === '' ? '' : `${scriptClause} `) +
|
|
56
65
|
'Do not repeat the flagged values, including as examples or suggested choices, unless the original user or a tool result supplies them. ' +
|
|
57
66
|
'When asking for missing information, ask an open question with no example values or candidate list. ' +
|
|
58
67
|
'Return the corrected response directly; do not acknowledge this internal check.' +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recovery.js","sourceRoot":"","sources":["../../../../../src/core/agent/evidence/recovery.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAQ5D,MAAM,CAAC,MAAM,oCAAoC,GAAG,IAAI,CAAC;AACzD,iFAAiF;AACjF,MAAM,CAAC,MAAM,2BAA2B,GAAG,SAAS,CAAC;AAErD,MAAM,UAAU,2BAA2B,CAAC,KAAc;IACxD,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,UAAU;QAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO;IAChC,yEAAyE;IACzE,mEAAmE;IACnE,IACE,KAAK,KAAK,IAAI;QACd,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU,CAAC;QAC1D,OAAQ,KAA4B,CAAC,IAAI,KAAK,UAAU,EACxD,CAAC;QACD,KAAK,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,oCAAoC,EAAE,CAAC;QACrF,MAAM,IAAI,KAAK,CACb,oIAAoI,CACrI,CAAC;IACJ,CAAC;AACH,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,qBAAqB,CACnC,KAOC,EACD,KAAmC,EACnC,MAAwB;AACxB;2EAC2E;AAC3E,UAAmB;
|
|
1
|
+
{"version":3,"file":"recovery.js","sourceRoot":"","sources":["../../../../../src/core/agent/evidence/recovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* Emits: N/A.
|
|
8
8
|
*/
|
|
9
9
|
import type { AnswerGroundingReading } from '../../../integrity/prior-turn-evidence/check.js';
|
|
10
|
+
import type { ScriptsVerdict } from '../scripts/types.js';
|
|
10
11
|
/**
|
|
11
12
|
* How hard the check pushes back. **Same three words as the skill-graph
|
|
12
13
|
* routing dial, deliberately** — one posture vocabulary across the library —
|
|
@@ -160,6 +161,25 @@ export interface NamesAndNumbersOptions {
|
|
|
160
161
|
* The library's internal framing and validation remain in force. The text
|
|
161
162
|
* is request-only and never becomes evidence, user history or an exemption. */
|
|
162
163
|
readonly recoveryInstruction?: EvidenceRecoveryInstruction;
|
|
164
|
+
/**
|
|
165
|
+
* How a fenced code block in a PROSE answer is read. Default `'check'` —
|
|
166
|
+
* today's behaviour, byte for byte: the whole answer is prose.
|
|
167
|
+
*
|
|
168
|
+
* `'match'` — each fenced block (```` ``` ```` or `~~~`, at column 0, closed)
|
|
169
|
+
* is compared, byte for byte after removing only the Markdown wrapper,
|
|
170
|
+
* against the programs this TURN's calls of a declared code-running tool
|
|
171
|
+
* (`Tool.script`, which `codeRunnerTool` declares) submitted to the tool. A
|
|
172
|
+
* block that matches one is script content: it yields no value to ground
|
|
173
|
+
* and is labelled with that call's recorded outcome (`completed, exit 0`,
|
|
174
|
+
* `outcome unknown`, …). A block that matches none stays prose, checked as
|
|
175
|
+
* today, and is labelled `unmatched`. Code is never evidence: a value in the
|
|
176
|
+
* prose that also sits in the script still needs a tool result.
|
|
177
|
+
*
|
|
178
|
+
* Inline spans, unclosed fences and indented code are prose. A typed answer
|
|
179
|
+
* is not scanned. There is no `'skip'`: exempting every fence would be an
|
|
180
|
+
* exemption by formatting. See `core/agent/scripts/README.md`.
|
|
181
|
+
*/
|
|
182
|
+
readonly code?: 'check' | 'match';
|
|
163
183
|
}
|
|
164
184
|
/**
|
|
165
185
|
* One value a tool result DID carry (9.110.0): the candidate as normalized
|
|
@@ -192,6 +212,12 @@ export interface UnsupportedValue {
|
|
|
192
212
|
/** Which rule made it a candidate: `'identifier'`, `'number'`, or the name
|
|
193
213
|
* of a declared {@link EvidenceShape}. */
|
|
194
214
|
readonly shape: string;
|
|
215
|
+
/**
|
|
216
|
+
* Under `code: 'match'` only: `'code'` when every occurrence of the value is
|
|
217
|
+
* inside a fenced block that matched no submission (checked as prose all the
|
|
218
|
+
* same), `'prose'` otherwise. Absent under `'check'`.
|
|
219
|
+
*/
|
|
220
|
+
readonly region?: 'prose' | 'code';
|
|
195
221
|
}
|
|
196
222
|
/**
|
|
197
223
|
* What the builder resolved once and the chart carries for the whole run.
|
|
@@ -217,6 +243,8 @@ export interface ResolvedEvidenceGate {
|
|
|
217
243
|
/** Present only when true: an absent dial preserves resolved default bytes. */
|
|
218
244
|
readonly decimalRounding?: true;
|
|
219
245
|
readonly recoveryInstruction?: EvidenceRecoveryInstruction;
|
|
246
|
+
/** Present only for `code: 'match'`: an absent field is `'check'`, byte for byte. */
|
|
247
|
+
readonly code?: 'match';
|
|
220
248
|
/**
|
|
221
249
|
* Set by the agent, never by `resolveEvidenceGate`: a posture that can
|
|
222
250
|
* revise under an ENFORCING answer validation. The revision and every later
|
|
@@ -300,4 +328,11 @@ export interface EvidenceVerdict {
|
|
|
300
328
|
* no posture changes because of it.
|
|
301
329
|
*/
|
|
302
330
|
readonly grounding: AnswerGroundingReading;
|
|
331
|
+
/**
|
|
332
|
+
* Under `code: 'match'` on a prose answer: the verdict on each fenced block
|
|
333
|
+
* (matched → its call's label, or `unmatched` with a reason), the script
|
|
334
|
+
* rows of earlier turns counted, and blocks past the cap counted. Never the
|
|
335
|
+
* code. Absent under `'check'` and on a typed answer.
|
|
336
|
+
*/
|
|
337
|
+
readonly scripts?: ScriptsVerdict;
|
|
303
338
|
}
|