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,143 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* scripts/label — the ONE rule that turns a code call's record into a label,
|
|
4
|
+
* and the label's words.
|
|
5
|
+
*
|
|
6
|
+
* Pattern: pure function over two separate facts (design § 4.3).
|
|
7
|
+
* Role: core/ layer leaf. Asked by the dispatch loop when it files a call's
|
|
8
|
+
* `script` row (`rows.ts` · `scriptRowFor`); every sentence that names
|
|
9
|
+
* an outcome — the attachment's label line, the recovery clause, the
|
|
10
|
+
* answer account — reads the row's label through {@link labelWords}.
|
|
11
|
+
* Emits: N/A.
|
|
12
|
+
*
|
|
13
|
+
* ## Three facts, read in one order
|
|
14
|
+
*
|
|
15
|
+
* The record holds three facts about a code call, written by three mechanisms:
|
|
16
|
+
* EXECUTION evidence (the runner's facts — `codeRunnerTool.ts` ·
|
|
17
|
+
* `CodeRunFacts`, taken right after `tool.execute` returns), call SETTLEMENT
|
|
18
|
+
* (did the call return, throw, or never enter `execute`) and result DELIVERY
|
|
19
|
+
* (the tool's ceiling replaced the payload). A label is read from execution
|
|
20
|
+
* evidence first, then settlement, and NEVER from delivery: a withheld result
|
|
21
|
+
* does not undo a completed execution (it rides the row as `resultWithheld`).
|
|
22
|
+
*
|
|
23
|
+
* | the record says | label |
|
|
24
|
+
* |---|---|
|
|
25
|
+
* | an explicit `exitCode: 0` | `completed` |
|
|
26
|
+
* | an explicit non-zero `exitCode` (a whole number — {@link isExitCode}) | `completed-with-failure` |
|
|
27
|
+
* | `serviceError` and no exit code | `outcome-unknown` |
|
|
28
|
+
* | `ok: true`, no exit code | `reported-success` |
|
|
29
|
+
* | `ok: false`, no exit code, no service error (a stopped process included) | `reported-failure` |
|
|
30
|
+
* | facts that report no outcome (`ok` absent, no exit code) | — no execution evidence: the settlement decides |
|
|
31
|
+
* | no facts, the call returned | `returned` |
|
|
32
|
+
* | no facts, the call threw (a timeout, a cancellation, a staging refusal) | `outcome-unknown` |
|
|
33
|
+
* | the call never entered `execute` (or has not settled) | `submitted` |
|
|
34
|
+
*
|
|
35
|
+
* Only an explicit exit code proves the program reached an exit. `ok` is a
|
|
36
|
+
* VERDICT: it never yields `completed`, and no word here prints an exit number
|
|
37
|
+
* the record does not hold.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```ts
|
|
41
|
+
* scriptLabelOf({ settlement: 'returned', facts: { exitCode: 0 } }); // { label: 'completed', exitCode: 0 }
|
|
42
|
+
* scriptLabelOf({ settlement: 'returned', facts: { ok: false, serviceError: true } }); // { label: 'outcome-unknown', serviceError: true }
|
|
43
|
+
* scriptLabelOf({ settlement: 'threw' }); // { label: 'outcome-unknown' }
|
|
44
|
+
* labelWords('completed-with-failure', 7); // 'completed with failure, exit 7'
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
+
exports.SCRIPT_LABELS = exports.labelWords = exports.scriptLabelOf = exports.exitCodeFits = exports.isExitCode = void 0;
|
|
49
|
+
/**
|
|
50
|
+
* Whether `value` is an exit code: a whole number, as a process reports one
|
|
51
|
+
* (a negative one included — a signal, on some runtimes). THE rule for every
|
|
52
|
+
* writer and reader of a script's exit code — the label below, and the
|
|
53
|
+
* readers of a saved record (`rows.ts` · `scriptRowIsWellFormed`,
|
|
54
|
+
* `attachment.ts` · `recordedScripts`, `match.ts` · `recordedBlocks`), so the
|
|
55
|
+
* writer never files a row the checkpoint door refuses. A runner that reports
|
|
56
|
+
* anything else (`1.5`, `NaN`) reported no exit code.
|
|
57
|
+
*/
|
|
58
|
+
const isExitCode = (value) => Number.isInteger(value);
|
|
59
|
+
exports.isExitCode = isExitCode;
|
|
60
|
+
/**
|
|
61
|
+
* Whether a recorded label and exit code agree, as {@link scriptLabelOf}
|
|
62
|
+
* writes them: an exit code rides exactly the two labels one proves — `0` on
|
|
63
|
+
* `completed`, any other on `completed-with-failure` — and no other label.
|
|
64
|
+
* A record where they disagree holds a value no writer of this library files.
|
|
65
|
+
*/
|
|
66
|
+
function exitCodeFits(label, exitCode) {
|
|
67
|
+
if (label === 'completed')
|
|
68
|
+
return exitCode === 0;
|
|
69
|
+
if (label === 'completed-with-failure')
|
|
70
|
+
return (0, exports.isExitCode)(exitCode) && exitCode !== 0;
|
|
71
|
+
return exitCode === undefined;
|
|
72
|
+
}
|
|
73
|
+
exports.exitCodeFits = exitCodeFits;
|
|
74
|
+
/**
|
|
75
|
+
* The label of one call — execution evidence first, then settlement. `facts`
|
|
76
|
+
* is ABSENT when the tool filed none (a declared tool that is not
|
|
77
|
+
* `codeRunnerTool`, or a call that never reached its runner).
|
|
78
|
+
*/
|
|
79
|
+
function scriptLabelOf(input) {
|
|
80
|
+
const facts = input.facts;
|
|
81
|
+
if (facts !== undefined) {
|
|
82
|
+
if ((0, exports.isExitCode)(facts.exitCode)) {
|
|
83
|
+
return {
|
|
84
|
+
label: facts.exitCode === 0 ? 'completed' : 'completed-with-failure',
|
|
85
|
+
exitCode: facts.exitCode,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
if (facts.serviceError === true)
|
|
89
|
+
return { label: 'outcome-unknown', serviceError: true };
|
|
90
|
+
if (facts.ok === true)
|
|
91
|
+
return { label: 'reported-success' };
|
|
92
|
+
if (facts.ok === false)
|
|
93
|
+
return { label: 'reported-failure' };
|
|
94
|
+
// Facts with no outcome in them — the runner reported neither an exit code
|
|
95
|
+
// nor a verdict — are no execution evidence: the settlement decides below.
|
|
96
|
+
}
|
|
97
|
+
switch (input.settlement) {
|
|
98
|
+
case 'not-entered':
|
|
99
|
+
return { label: 'submitted' };
|
|
100
|
+
case 'returned':
|
|
101
|
+
return { label: 'returned' };
|
|
102
|
+
case 'threw':
|
|
103
|
+
return { label: 'outcome-unknown' };
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
exports.scriptLabelOf = scriptLabelOf;
|
|
107
|
+
/**
|
|
108
|
+
* The label's own words — the one phrase every library sentence about a call's
|
|
109
|
+
* outcome uses (design § 4.3). `exitCode` is printed only for
|
|
110
|
+
* `completed-with-failure`, and only the number the record holds.
|
|
111
|
+
*/
|
|
112
|
+
function labelWords(label, exitCode) {
|
|
113
|
+
switch (label) {
|
|
114
|
+
case 'submitted':
|
|
115
|
+
return 'submitted';
|
|
116
|
+
case 'returned':
|
|
117
|
+
return 'tool call returned; execution not confirmed';
|
|
118
|
+
case 'reported-success':
|
|
119
|
+
return 'runner reported success; no exit code';
|
|
120
|
+
case 'reported-failure':
|
|
121
|
+
return 'runner reported failure; no exit code';
|
|
122
|
+
case 'completed':
|
|
123
|
+
return 'completed, exit 0';
|
|
124
|
+
case 'completed-with-failure':
|
|
125
|
+
return exitCode === undefined
|
|
126
|
+
? 'completed with failure'
|
|
127
|
+
: `completed with failure, exit ${exitCode}`;
|
|
128
|
+
case 'outcome-unknown':
|
|
129
|
+
return 'outcome unknown';
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
exports.labelWords = labelWords;
|
|
133
|
+
/** Every label, in the design's order — for a reader that validates one. */
|
|
134
|
+
exports.SCRIPT_LABELS = Object.freeze([
|
|
135
|
+
'submitted',
|
|
136
|
+
'returned',
|
|
137
|
+
'reported-success',
|
|
138
|
+
'reported-failure',
|
|
139
|
+
'completed',
|
|
140
|
+
'completed-with-failure',
|
|
141
|
+
'outcome-unknown',
|
|
142
|
+
]);
|
|
143
|
+
//# sourceMappingURL=label.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"label.js","sourceRoot":"","sources":["../../../../src/core/agent/scripts/label.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;;;AA8BH;;;;;;;;GAQG;AACI,MAAM,UAAU,GAAG,CAAC,KAAc,EAAmB,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAA1E,QAAA,UAAU,cAAgE;AAEvF;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,KAAc,EAAE,QAAiB;IAC5D,IAAI,KAAK,KAAK,WAAW;QAAE,OAAO,QAAQ,KAAK,CAAC,CAAC;IACjD,IAAI,KAAK,KAAK,wBAAwB;QAAE,OAAO,IAAA,kBAAU,EAAC,QAAQ,CAAC,IAAI,QAAQ,KAAK,CAAC,CAAC;IACtF,OAAO,QAAQ,KAAK,SAAS,CAAC;AAChC,CAAC;AAJD,oCAIC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAC,KAG7B;IACC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,IAAI,IAAA,kBAAU,EAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO;gBACL,KAAK,EAAE,KAAK,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,wBAAwB;gBACpE,QAAQ,EAAE,KAAK,CAAC,QAAQ;aACzB,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI;YAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QACzF,IAAI,KAAK,CAAC,EAAE,KAAK,IAAI;YAAE,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;QAC5D,IAAI,KAAK,CAAC,EAAE,KAAK,KAAK;YAAE,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;QAC7D,2EAA2E;QAC3E,2EAA2E;IAC7E,CAAC;IACD,QAAQ,KAAK,CAAC,UAAU,EAAE,CAAC;QACzB,KAAK,aAAa;YAChB,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QAChC,KAAK,UAAU;YACb,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;QAC/B,KAAK,OAAO;YACV,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;IACxC,CAAC;AACH,CAAC;AA1BD,sCA0BC;AAED;;;;GAIG;AACH,SAAgB,UAAU,CAAC,KAAkB,EAAE,QAAiB;IAC9D,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,WAAW;YACd,OAAO,WAAW,CAAC;QACrB,KAAK,UAAU;YACb,OAAO,6CAA6C,CAAC;QACvD,KAAK,kBAAkB;YACrB,OAAO,uCAAuC,CAAC;QACjD,KAAK,kBAAkB;YACrB,OAAO,uCAAuC,CAAC;QACjD,KAAK,WAAW;YACd,OAAO,mBAAmB,CAAC;QAC7B,KAAK,wBAAwB;YAC3B,OAAO,QAAQ,KAAK,SAAS;gBAC3B,CAAC,CAAC,wBAAwB;gBAC1B,CAAC,CAAC,gCAAgC,QAAQ,EAAE,CAAC;QACjD,KAAK,iBAAiB;YACpB,OAAO,iBAAiB,CAAC;IAC7B,CAAC;AACH,CAAC;AAnBD,gCAmBC;AAED,4EAA4E;AAC/D,QAAA,aAAa,GAA2B,MAAM,CAAC,MAAM,CAAC;IACjE,WAAW;IACX,UAAU;IACV,kBAAkB;IAClB,kBAAkB;IAClB,WAAW;IACX,wBAAwB;IACxB,iBAAiB;CAClB,CAAC,CAAC"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* scripts/match — is a fenced block the program ONE call of this turn
|
|
4
|
+
* submitted? Identity against the record, never evidence for a value.
|
|
5
|
+
*
|
|
6
|
+
* Pattern: pure function over the answer and this turn's rows.
|
|
7
|
+
* Role: core/ layer. Asked inside the ONE judge closure the Route decider
|
|
8
|
+
* builds (`stages/route.ts` · `judgeEvidence`, through `judge.ts`),
|
|
9
|
+
* before the names-and-numbers extractor reads the text — so the
|
|
10
|
+
* draft and the delivered candidate are read alike. Only under
|
|
11
|
+
* `.namesAndNumbersFromEvidence({ code: 'match' })`.
|
|
12
|
+
* Emits: N/A.
|
|
13
|
+
*
|
|
14
|
+
* ## The match rule: exact, after removing only the wrapper (design § 5.2)
|
|
15
|
+
*
|
|
16
|
+
* A block matches a call only when its content (`../evidence/codeRegions.ts`)
|
|
17
|
+
* equals the program the call SUBMITTED to the tool, byte for byte. Nothing is
|
|
18
|
+
* transformed: no trailing-space strip, no line-ending rewrite, no Unicode
|
|
19
|
+
* normalization, no shape, no edit distance — each can change a literal and so
|
|
20
|
+
* the program (`print(len("""A \nB"""))` prints 5, its copy without the two
|
|
21
|
+
* spaces 3; `"é"` written with a combining mark is one more character than its
|
|
22
|
+
* NFC form). The strings are compared as they hold the text (UTF-16 code
|
|
23
|
+
* units): for well-formed text that is UTF-8 byte equality, and for a lone
|
|
24
|
+
* surrogate it is stricter, the safe direction.
|
|
25
|
+
*
|
|
26
|
+
* - Against the rows of the CURRENT TURN only; earlier turns are counted
|
|
27
|
+
* (`earlierTurnRows`), never compared, and a miss says "no submission of
|
|
28
|
+
* this turn", never "no submission".
|
|
29
|
+
* - A block over `MAX_SCRIPT_BYTES` is `over-size`: no row keeps a program
|
|
30
|
+
* that long, so it is never compared.
|
|
31
|
+
* - Two calls that submitted byte-identical programs: the block names the
|
|
32
|
+
* LATEST, counts the rest (`alsoMatches`) and carries its label.
|
|
33
|
+
* - No nearest submission is ever named: a near match is a different program.
|
|
34
|
+
*
|
|
35
|
+
* WHAT A MATCH YIELDS. The block is script content: it is cut out of the text
|
|
36
|
+
* the extractor reads, so it yields no value candidates — and it grounds
|
|
37
|
+
* nothing: the evidence corpus is untouched, so a value in the prose that also
|
|
38
|
+
* sits in the script still needs a result. A MISS stays in the text and is
|
|
39
|
+
* checked as prose, exactly as today.
|
|
40
|
+
*
|
|
41
|
+
* COST. One linear scan of the answer (`codeRegionsOf`); each of at most
|
|
42
|
+
* `MAX_CODE_REGIONS` blocks is looked up once among at most `MAX_SCRIPT_ROWS`
|
|
43
|
+
* programs of at most `MAX_SCRIPT_BYTES` — within the 512 comparisons per
|
|
44
|
+
* judged answer of design § 4.4. Earlier turns add nothing.
|
|
45
|
+
*/
|
|
46
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
47
|
+
exports.recordedBlocks = exports.blockVerdictOf = exports.UNMATCHED_REASONS = exports.copyScriptsVerdict = exports.readShownScripts = void 0;
|
|
48
|
+
const codeRegions_js_1 = require("../evidence/codeRegions.js");
|
|
49
|
+
const utf8_js_1 = require("../../../lib/utf8.js");
|
|
50
|
+
const label_js_1 = require("./label.js");
|
|
51
|
+
const rows_js_1 = require("./rows.js");
|
|
52
|
+
/** The text with `cut` regions removed, whole lines each (fence lines included). */
|
|
53
|
+
function without(text, cut) {
|
|
54
|
+
if (cut.length === 0)
|
|
55
|
+
return text;
|
|
56
|
+
const parts = [];
|
|
57
|
+
let from = 0;
|
|
58
|
+
for (const region of cut) {
|
|
59
|
+
parts.push(text.slice(from, region.start));
|
|
60
|
+
from = region.end;
|
|
61
|
+
}
|
|
62
|
+
parts.push(text.slice(from));
|
|
63
|
+
return parts.join('');
|
|
64
|
+
}
|
|
65
|
+
/** Whether a block's content is over the per-script bound — never compared then. */
|
|
66
|
+
function overSize(content) {
|
|
67
|
+
// Every UTF-16 unit is at least one UTF-8 byte: a long string is over at once.
|
|
68
|
+
return content.length > rows_js_1.MAX_SCRIPT_BYTES || (0, utf8_js_1.utf8Length)(content) > rows_js_1.MAX_SCRIPT_BYTES;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Read `answer`'s fenced blocks against this turn's submissions. Pure; the
|
|
72
|
+
* rows are `rows.ts` · `scriptRowsOfTurn`'s reading (last row per call).
|
|
73
|
+
*/
|
|
74
|
+
function readShownScripts(answer, turn, scriptsDropped) {
|
|
75
|
+
const { regions, dropped } = (0, codeRegions_js_1.codeRegionsOf)(answer);
|
|
76
|
+
// The programs this turn submitted, each with every call that submitted it,
|
|
77
|
+
// in the order the calls were made — the last is "the latest".
|
|
78
|
+
const byProgram = new Map();
|
|
79
|
+
for (const row of turn.current) {
|
|
80
|
+
if (row.text === undefined)
|
|
81
|
+
continue;
|
|
82
|
+
const calls = byProgram.get(row.text);
|
|
83
|
+
if (calls === undefined)
|
|
84
|
+
byProgram.set(row.text, [row]);
|
|
85
|
+
else
|
|
86
|
+
calls.push(row);
|
|
87
|
+
}
|
|
88
|
+
const blocks = [];
|
|
89
|
+
const matched = [];
|
|
90
|
+
for (const region of regions) {
|
|
91
|
+
if (overSize(region.content)) {
|
|
92
|
+
blocks.push({ block: region.block, label: 'unmatched', reason: 'over-size' });
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
const calls = byProgram.get(region.content);
|
|
96
|
+
if (calls === undefined) {
|
|
97
|
+
blocks.push({ block: region.block, label: 'unmatched', reason: 'no-submission-this-turn' });
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
const latest = calls[calls.length - 1];
|
|
101
|
+
matched.push(region);
|
|
102
|
+
blocks.push({
|
|
103
|
+
block: region.block,
|
|
104
|
+
label: latest.outcome,
|
|
105
|
+
...(latest.exitCode !== undefined && { exitCode: latest.exitCode }),
|
|
106
|
+
toolCallId: latest.toolCallId,
|
|
107
|
+
tool: latest.tool,
|
|
108
|
+
dispatch: latest.dispatch,
|
|
109
|
+
...(calls.length > 1 && { alsoMatches: calls.length - 1 }),
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
return {
|
|
113
|
+
prose: without(answer, matched),
|
|
114
|
+
outsideCode: without(answer, regions),
|
|
115
|
+
verdict: {
|
|
116
|
+
blocks,
|
|
117
|
+
earlierTurnRows: turn.earlier,
|
|
118
|
+
regionsDropped: dropped,
|
|
119
|
+
...(scriptsDropped !== undefined && scriptsDropped > 0 && { scriptsDropped }),
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
exports.readShownScripts = readShownScripts;
|
|
124
|
+
/**
|
|
125
|
+
* A verdict as detached plain data — field by field, never a reference into
|
|
126
|
+
* state (a value read back through a TypedScope is a live view, and an event
|
|
127
|
+
* payload must be plain data).
|
|
128
|
+
*/
|
|
129
|
+
function copyScriptsVerdict(verdict) {
|
|
130
|
+
return {
|
|
131
|
+
blocks: verdict.blocks.map((b) => b.label === 'unmatched'
|
|
132
|
+
? { block: b.block, label: 'unmatched', reason: b.reason }
|
|
133
|
+
: {
|
|
134
|
+
block: b.block,
|
|
135
|
+
label: b.label,
|
|
136
|
+
...(b.exitCode !== undefined && { exitCode: b.exitCode }),
|
|
137
|
+
toolCallId: b.toolCallId,
|
|
138
|
+
tool: b.tool,
|
|
139
|
+
dispatch: b.dispatch,
|
|
140
|
+
...(b.alsoMatches !== undefined && { alsoMatches: b.alsoMatches }),
|
|
141
|
+
}),
|
|
142
|
+
earlierTurnRows: verdict.earlierTurnRows,
|
|
143
|
+
regionsDropped: verdict.regionsDropped,
|
|
144
|
+
...(verdict.scriptsDropped !== undefined && { scriptsDropped: verdict.scriptsDropped }),
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
exports.copyScriptsVerdict = copyScriptsVerdict;
|
|
148
|
+
// ─── Reading a record back ────────────────────────────────────────────
|
|
149
|
+
//
|
|
150
|
+
// A saved verdict is JSON a reader is handed, not a value this library holds.
|
|
151
|
+
// ONE rule reads its fields for every reader of the shape — the answer
|
|
152
|
+
// account (`evidence_checked.scripts`) and the checkpoint door's
|
|
153
|
+
// `script-shown` witness row (`assessment/witness.ts`) — and it refuses
|
|
154
|
+
// exactly what no writer of this library files.
|
|
155
|
+
/** Every reason a block can be unmatched for. */
|
|
156
|
+
exports.UNMATCHED_REASONS = Object.freeze([
|
|
157
|
+
'no-submission-this-turn',
|
|
158
|
+
'over-size',
|
|
159
|
+
'kept-out',
|
|
160
|
+
]);
|
|
161
|
+
const isObject = (value) => value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
162
|
+
const isPositive = (value) => typeof value === 'number' && Number.isInteger(value) && value >= 1;
|
|
163
|
+
/**
|
|
164
|
+
* One block verdict's fields, checked as {@link readShownScripts} writes them
|
|
165
|
+
* — a fresh copy, or `undefined` when any field is one no writer of this
|
|
166
|
+
* library files: a position or a dispatch that is not a whole number from 1,
|
|
167
|
+
* a label outside the vocabulary, an exit code its label does not carry
|
|
168
|
+
* (`label.ts` · `exitCodeFits`), an unmatched block that names a call, a
|
|
169
|
+
* matched one without its call. Fields beside these (a witness row's `kind`,
|
|
170
|
+
* `turn`, `iteration`) are not read.
|
|
171
|
+
*/
|
|
172
|
+
function blockVerdictOf(value) {
|
|
173
|
+
if (!isObject(value))
|
|
174
|
+
return undefined;
|
|
175
|
+
const { block, label, reason, toolCallId, tool, dispatch, exitCode, alsoMatches } = value;
|
|
176
|
+
if (!isPositive(block))
|
|
177
|
+
return undefined;
|
|
178
|
+
if (label === 'unmatched') {
|
|
179
|
+
const named = toolCallId !== undefined ||
|
|
180
|
+
tool !== undefined ||
|
|
181
|
+
dispatch !== undefined ||
|
|
182
|
+
exitCode !== undefined ||
|
|
183
|
+
alsoMatches !== undefined;
|
|
184
|
+
if (named || !exports.UNMATCHED_REASONS.includes(reason))
|
|
185
|
+
return undefined;
|
|
186
|
+
return { block, label: 'unmatched', reason: reason };
|
|
187
|
+
}
|
|
188
|
+
if (reason !== undefined || !label_js_1.SCRIPT_LABELS.includes(label)) {
|
|
189
|
+
return undefined;
|
|
190
|
+
}
|
|
191
|
+
if (!(0, label_js_1.exitCodeFits)(label, exitCode))
|
|
192
|
+
return undefined;
|
|
193
|
+
if (typeof toolCallId !== 'string' || typeof tool !== 'string')
|
|
194
|
+
return undefined;
|
|
195
|
+
if (!isPositive(dispatch))
|
|
196
|
+
return undefined;
|
|
197
|
+
if (alsoMatches !== undefined && !isPositive(alsoMatches))
|
|
198
|
+
return undefined;
|
|
199
|
+
return {
|
|
200
|
+
block,
|
|
201
|
+
label: label,
|
|
202
|
+
...(exitCode !== undefined && { exitCode: exitCode }),
|
|
203
|
+
toolCallId,
|
|
204
|
+
tool,
|
|
205
|
+
dispatch,
|
|
206
|
+
...(alsoMatches !== undefined && { alsoMatches }),
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
exports.blockVerdictOf = blockVerdictOf;
|
|
210
|
+
/**
|
|
211
|
+
* A saved `evidence_checked.scripts` — THE reader of the shape for a reader
|
|
212
|
+
* of a record. `undefined` when the event carries no scripts arm. Bounded by
|
|
213
|
+
* the writer's cap: no reader iterates more verdicts than a writer files.
|
|
214
|
+
*/
|
|
215
|
+
function recordedBlocks(value) {
|
|
216
|
+
if (value === undefined)
|
|
217
|
+
return undefined;
|
|
218
|
+
if (!isObject(value) || !Array.isArray(value.blocks))
|
|
219
|
+
return { blocks: [], unread: 1 };
|
|
220
|
+
const all = value.blocks;
|
|
221
|
+
const blocks = [];
|
|
222
|
+
let unread = Math.max(0, all.length - codeRegions_js_1.MAX_CODE_REGIONS);
|
|
223
|
+
for (let index = 0; index < Math.min(all.length, codeRegions_js_1.MAX_CODE_REGIONS); index++) {
|
|
224
|
+
const verdict = blockVerdictOf(all[index]);
|
|
225
|
+
if (verdict === undefined)
|
|
226
|
+
unread += 1;
|
|
227
|
+
else
|
|
228
|
+
blocks.push({ index, verdict });
|
|
229
|
+
}
|
|
230
|
+
return { blocks, unread };
|
|
231
|
+
}
|
|
232
|
+
exports.recordedBlocks = recordedBlocks;
|
|
233
|
+
//# sourceMappingURL=match.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"match.js","sourceRoot":"","sources":["../../../../src/core/agent/scripts/match.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* scripts/recovery — the one clause the evidence revision request gains under
|
|
4
|
+
* `code: 'match'`: keep the script, fix the values.
|
|
5
|
+
*
|
|
6
|
+
* Pattern: Lens — a library sentence about a FINISHED call, composed from the
|
|
7
|
+
* match's verdict, in the past tense, naming no tool as where to go
|
|
8
|
+
* next (`core/agent/README.md`, the correction law). Request-only:
|
|
9
|
+
* it rides the internal recovery instruction (`../evidence/recovery.ts`
|
|
10
|
+
* · `buildEvidenceRecovery`), never history.
|
|
11
|
+
* Role: core/ layer. Composed by the Route decider, which holds this turn's
|
|
12
|
+
* rows, and carried to the recheck stage on `evidenceUnsupported`.
|
|
13
|
+
* Emits: N/A.
|
|
14
|
+
*
|
|
15
|
+
* Two clauses, chosen by what the verdict holds (design § 7):
|
|
16
|
+
*
|
|
17
|
+
* - a block that matched no submission, and a flagged value that sat only in
|
|
18
|
+
* such a block — its contents were checked as prose: keep a script, show it
|
|
19
|
+
* exactly as submitted, or say the code shown is not the one submitted, and
|
|
20
|
+
* fix the values in the prose;
|
|
21
|
+
* - a block that matched a call, with values flagged in the prose — the
|
|
22
|
+
* script was not checked: keep it; the listed values were in the prose.
|
|
23
|
+
*
|
|
24
|
+
* The parenthesis carries the call's ACTUAL label in its words
|
|
25
|
+
* (`label.ts` · `labelWords`) — never a fixed "executed", never an exit
|
|
26
|
+
* number the record does not hold.
|
|
27
|
+
*
|
|
28
|
+
* WHAT IT CANNOT DO, stated: deleting an unmatched block removes its
|
|
29
|
+
* candidates and the `script-unmatched` reason, so a draft without the script
|
|
30
|
+
* can pass the check. No sentence makes a model keep a script; mandatory
|
|
31
|
+
* display comes from `.scriptTravelsWithTheAnswer()`, which needs no
|
|
32
|
+
* cooperation from the model.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```ts
|
|
36
|
+
* scriptRecoveryClause({ blocks: [{ block: 1, label: 'completed-with-failure', exitCode: 7,
|
|
37
|
+
* toolCallId: 'c1', tool: 'run_code' }], earlierTurnRows: 0, regionsDropped: 0 },
|
|
38
|
+
* [{ value: '1200', shape: 'number', region: 'prose' }], ['run_code']);
|
|
39
|
+
* // 'The script shown is the one submitted to `run_code` on call c1 (completed with failure,
|
|
40
|
+
* // exit 7) and was not checked. Keep it. The listed values were in the prose around it.'
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
|
+
exports.scriptRecoveryClause = void 0;
|
|
45
|
+
const label_js_1 = require("./label.js");
|
|
46
|
+
/** `run_code`, `` `a` or `b` `` — the tools named, quoted. */
|
|
47
|
+
function toolsNamed(tools) {
|
|
48
|
+
const quoted = tools.map((t) => `\`${t}\``);
|
|
49
|
+
if (quoted.length === 0)
|
|
50
|
+
return 'a code-running tool';
|
|
51
|
+
if (quoted.length === 1)
|
|
52
|
+
return quoted[0];
|
|
53
|
+
return `${quoted.slice(0, -1).join(', ')} or ${quoted[quoted.length - 1]}`;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* The clause(s) for one rejected draft — `''` when the verdict calls for
|
|
57
|
+
* none (no fenced block, or no flagged value the blocks bear on).
|
|
58
|
+
* `toolsThisTurn` names the code-running tools this turn's calls submitted
|
|
59
|
+
* to, in first-call order.
|
|
60
|
+
*/
|
|
61
|
+
function scriptRecoveryClause(scripts, unsupported, toolsThisTurn) {
|
|
62
|
+
const clauses = [];
|
|
63
|
+
const unmatched = scripts.blocks.some((b) => b.label === 'unmatched');
|
|
64
|
+
if (unmatched && unsupported.some((v) => v.region === 'code')) {
|
|
65
|
+
clauses.push(`The fenced code in the rejected draft matched no submission to ${toolsNamed(toolsThisTurn)} recorded this turn, so its contents were checked as prose. Keep a script in the ` +
|
|
66
|
+
'answer: show the program exactly as it was submitted on that call, byte for byte, or ' +
|
|
67
|
+
'say that the code shown is not the one that was submitted. Fix the values in the prose.');
|
|
68
|
+
}
|
|
69
|
+
const matched = scripts.blocks.flatMap((b) => (b.label === 'unmatched' ? [] : [b]));
|
|
70
|
+
if (matched.length > 0 && unsupported.some((v) => v.region === 'prose')) {
|
|
71
|
+
const calls = matched.map((b) => `to \`${b.tool}\` on call ${b.toolCallId} (${(0, label_js_1.labelWords)(b.label, b.exitCode)})`);
|
|
72
|
+
clauses.push(matched.length === 1
|
|
73
|
+
? `The script shown is the one submitted ${calls[0]} and was not checked. Keep it. The ` +
|
|
74
|
+
'listed values were in the prose around it.'
|
|
75
|
+
: `The scripts shown are the ones submitted ${calls.join(' and ')} and were not checked. ` +
|
|
76
|
+
'Keep them. The listed values were in the prose around them.');
|
|
77
|
+
}
|
|
78
|
+
return clauses.join(' ');
|
|
79
|
+
}
|
|
80
|
+
exports.scriptRecoveryClause = scriptRecoveryClause;
|
|
81
|
+
//# sourceMappingURL=recovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recovery.js","sourceRoot":"","sources":["../../../../src/core/agent/scripts/recovery.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;;;AAEH,yCAAwC;AAQxC,8DAA8D;AAC9D,SAAS,UAAU,CAAC,KAAwB;IAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,qBAAqB,CAAC;IACtD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,CAAC,CAAW,CAAC;IACpD,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;AAC7E,CAAC;AAED;;;;;GAKG;AACH,SAAgB,oBAAoB,CAClC,OAAuB,EACvB,WAAoC,EACpC,aAAgC;IAEhC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC;IACtE,IAAI,SAAS,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,CAAC;QAC9D,OAAO,CAAC,IAAI,CACV,kEAAkE,UAAU,CAC1E,aAAa,CACd,mFAAmF;YAClF,uFAAuF;YACvF,yFAAyF,CAC5F,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,EAAE,CAAC;QACxE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CACvB,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,UAAU,KAAK,IAAA,qBAAU,EAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CACvF,CAAC;QACF,OAAO,CAAC,IAAI,CACV,OAAO,CAAC,MAAM,KAAK,CAAC;YAClB,CAAC,CAAC,yCAAyC,KAAK,CAAC,CAAC,CAAC,qCAAqC;gBACpF,4CAA4C;YAChD,CAAC,CAAC,4CAA4C,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,yBAAyB;gBACtF,6DAA6D,CACpE,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AA9BD,oDA8BC"}
|