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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/core/agent/findings/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/core/agent/findings/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;;;AAqBH,kFAAkF;AACrE,QAAA,iBAAiB,GAAG,WAAoB,CAAC;AACtD,8EAA8E;AACjE,QAAA,mBAAmB,GAAG,WAAoB,CAAC;AASxD,wEAAwE;AAC3D,QAAA,YAAY,GAAqB,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;AAC1E,QAAA,aAAa,GAAsB,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5E,QAAA,eAAe,GAAwB,MAAM,CAAC,MAAM,CAAC;IAChE,MAAM;IACN,MAAM;IACN,OAAO;IACP,WAAW;CACZ,CAAC,CAAC;AAEH;;;;;;;GAOG;AACU,QAAA,iBAAiB,GAAG,GAAG,CAAC;AAyJrC;;;;;GAKG;AACU,QAAA,kBAAkB,GAAG,IAAI,CAAC;AA0EvC;;;;;;GAMG;AACU,QAAA,sBAAsB,GAAG,GAAG,CAAC"}
|
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* scripts/attachment — `.scriptTravelsWithTheAnswer()`: the recorded program
|
|
4
|
+
* itself, under the answer, labelled from the execution record.
|
|
5
|
+
*
|
|
6
|
+
* Pattern: composed by the FRAMEWORK, never requested from the model (the
|
|
7
|
+
* `.limitsTravelWithTheAnswer()` precedent, `semantics/coverage/
|
|
8
|
+
* answer.ts`). Pure: rows in, data and text out.
|
|
9
|
+
* Role: core/ layer. Read by the final branch (`stages/prepareFinal.ts`):
|
|
10
|
+
* the data rides `turn_end.scripts` on every answer under the arm;
|
|
11
|
+
* the text is appended to a PROSE answer through the one composer
|
|
12
|
+
* (`composeAnswerWithCoverage`), after the standing line and the
|
|
13
|
+
* limits block. A typed answer gets the data only — its bytes are
|
|
14
|
+
* never edited.
|
|
15
|
+
* Emits: N/A.
|
|
16
|
+
*
|
|
17
|
+
* ## Why the library attaches it
|
|
18
|
+
*
|
|
19
|
+
* An app's rule "always show the script" is a rule the model can break, and
|
|
20
|
+
* the cheapest revision that passes a names-and-numbers check is to delete
|
|
21
|
+
* the script. The attachment needs no cooperation from the model: the program
|
|
22
|
+
* comes from the record (the row's `text` — what was SUBMITTED to the tool),
|
|
23
|
+
* so there is nothing to retype and nothing to check. When the model also
|
|
24
|
+
* showed a matched copy, the attachment is still appended: the model's copy
|
|
25
|
+
* never decides whether the authoritative one is delivered.
|
|
26
|
+
*
|
|
27
|
+
* ## What is attached (design § 4.1, § 4.4)
|
|
28
|
+
*
|
|
29
|
+
* - `which: 'last'` (default): the last call of the turn that REACHED the tool
|
|
30
|
+
* (its label is not `submitted`); `'all'`: every such call, at most
|
|
31
|
+
* {@link MAX_ATTACHED_SCRIPTS}, the rest counted in `omitted`.
|
|
32
|
+
* - `maxBytes` (default 4,000 UTF-8 bytes) bounds each program shown, cut at a
|
|
33
|
+
* code-point boundary; a cut says so — `[incomplete: showing N of M bytes —
|
|
34
|
+
* not the whole program]` and `truncated.shownBytes` — and is never
|
|
35
|
+
* advertised as a complete, reproducible program.
|
|
36
|
+
* - A program over `MAX_SCRIPT_BYTES` has no text on its row: it is counted in
|
|
37
|
+
* `omitted` and the text says "one script of N bytes is over the bound and
|
|
38
|
+
* is not shown". Calls past `MAX_SCRIPT_ROWS` have no row: counted too.
|
|
39
|
+
*
|
|
40
|
+
* Every line is library-authored and past tense, names the CALL (never a
|
|
41
|
+
* destination), and uses the label's words (`label.ts` · `labelWords`).
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```ts
|
|
45
|
+
* const data = scriptsOfAnswer(scriptRowsOfTurn(ledger, turn).current, { which: 'last', maxBytes: 4000 });
|
|
46
|
+
* scriptsBlock(data);
|
|
47
|
+
* // Script submitted to run_code on call c1 — completed, exit 0. Attached by the library from the run record:
|
|
48
|
+
* //
|
|
49
|
+
* // ```python
|
|
50
|
+
* // print(41 + 1)
|
|
51
|
+
* // ```
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
55
|
+
exports.turnEndScriptsOf = exports.scriptsBlockAfter = exports.scriptsBlock = exports.recordedScripts = exports.rebuildBoundary = exports.attachmentBoundary = exports.shownScriptBlock = exports.scriptWithheldLine = exports.scriptLabelLine = exports.scriptsOfAnswer = exports.resolveScriptTravel = exports.DEFAULT_ATTACHED_BYTES = exports.MAX_ATTACHED_SCRIPTS = void 0;
|
|
56
|
+
const utf8_js_1 = require("../../../lib/utf8.js");
|
|
57
|
+
const codeRegions_js_1 = require("../evidence/codeRegions.js");
|
|
58
|
+
const inert_js_1 = require("./inert.js");
|
|
59
|
+
const label_js_1 = require("./label.js");
|
|
60
|
+
const rows_js_1 = require("./rows.js");
|
|
61
|
+
const wrapper_js_1 = require("./wrapper.js");
|
|
62
|
+
/** Scripts attached under `which: 'all'`; the rest are counted (`omitted`). Design § 4.1. */
|
|
63
|
+
exports.MAX_ATTACHED_SCRIPTS = 8;
|
|
64
|
+
/** Default UTF-8 bytes of each program shown. Design § 4.1. */
|
|
65
|
+
exports.DEFAULT_ATTACHED_BYTES = 4_000;
|
|
66
|
+
const DOOR = 'AgentBuilder.scriptTravelsWithTheAnswer';
|
|
67
|
+
/**
|
|
68
|
+
* Check `.scriptTravelsWithTheAnswer()`'s options once, at the call site, into
|
|
69
|
+
* the arm the chart carries. Refusals name the option and the fix.
|
|
70
|
+
*/
|
|
71
|
+
function resolveScriptTravel(opts = {}) {
|
|
72
|
+
if (opts === null || typeof opts !== 'object' || Array.isArray(opts)) {
|
|
73
|
+
throw new Error(`${DOOR}: options must be an object ({ which?, maxBytes? }).`);
|
|
74
|
+
}
|
|
75
|
+
const unknown = Object.keys(opts).filter((k) => k !== 'which' && k !== 'maxBytes');
|
|
76
|
+
if (unknown.length > 0) {
|
|
77
|
+
throw new Error(`${DOOR}: unknown option(s) ${unknown.map((k) => `'${k}'`).join(', ')}. ` +
|
|
78
|
+
"The options are which ('last' | 'all') and maxBytes (UTF-8 bytes shown per program).");
|
|
79
|
+
}
|
|
80
|
+
const which = opts.which ?? 'last';
|
|
81
|
+
if (which !== 'last' && which !== 'all') {
|
|
82
|
+
throw new Error(`${DOOR}: which '${String(which)}' is not one this version has. Use 'last' (the last ` +
|
|
83
|
+
"call of the turn that reached the tool — the default) or 'all' (every such call, at " +
|
|
84
|
+
`most ${exports.MAX_ATTACHED_SCRIPTS}).`);
|
|
85
|
+
}
|
|
86
|
+
const maxBytes = opts.maxBytes ?? exports.DEFAULT_ATTACHED_BYTES;
|
|
87
|
+
if (!Number.isInteger(maxBytes) || maxBytes < 1) {
|
|
88
|
+
throw new Error(`${DOOR}: maxBytes must be a whole number of at least 1 — got ${String(opts.maxBytes)}. ` +
|
|
89
|
+
`It bounds the UTF-8 bytes of each program shown (default ${exports.DEFAULT_ATTACHED_BYTES}); ` +
|
|
90
|
+
'a longer program is cut and says so.');
|
|
91
|
+
}
|
|
92
|
+
return { which, maxBytes };
|
|
93
|
+
}
|
|
94
|
+
exports.resolveScriptTravel = resolveScriptTravel;
|
|
95
|
+
/** A call that reached the tool — the attachment's candidates. */
|
|
96
|
+
const reached = (row) => row.outcome !== 'submitted';
|
|
97
|
+
/** One row as an attached script, cut at `maxBytes`. */
|
|
98
|
+
function shownFrom(row, maxBytes) {
|
|
99
|
+
const cut = (0, utf8_js_1.utf8Prefix)(row.text, maxBytes);
|
|
100
|
+
const shownBytes = cut === row.text ? row.bytes : (0, utf8_js_1.utf8Length)(cut);
|
|
101
|
+
return {
|
|
102
|
+
toolCallId: row.toolCallId,
|
|
103
|
+
dispatch: row.dispatch,
|
|
104
|
+
tool: row.tool,
|
|
105
|
+
...(row.language !== undefined && { language: row.language }),
|
|
106
|
+
label: row.outcome,
|
|
107
|
+
...(row.exitCode !== undefined && { exitCode: row.exitCode }),
|
|
108
|
+
...(row.resultWithheld !== undefined && { resultWithheld: row.resultWithheld }),
|
|
109
|
+
...(row.rewritten === true && { rewritten: true }),
|
|
110
|
+
bytes: row.bytes,
|
|
111
|
+
lines: row.lines,
|
|
112
|
+
...(cut !== row.text && { truncated: { shownBytes } }),
|
|
113
|
+
text: cut,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* What travels with this turn's answer — the data form (`turn_end.scripts`).
|
|
118
|
+
* `rows` is this turn's reading (`rows.ts` · `scriptRowsOfTurn`); fresh plain
|
|
119
|
+
* objects, never a reference into the ledger.
|
|
120
|
+
*/
|
|
121
|
+
function scriptsOfAnswer(rows, travel, scriptsDropped = 0) {
|
|
122
|
+
const candidates = rows.filter(reached);
|
|
123
|
+
const chosen = travel.which === 'last' ? candidates.slice(-1) : candidates;
|
|
124
|
+
const shown = [];
|
|
125
|
+
const overSize = [];
|
|
126
|
+
let omitted = scriptsDropped;
|
|
127
|
+
for (const row of chosen) {
|
|
128
|
+
if (row.text === undefined) {
|
|
129
|
+
overSize.push(row);
|
|
130
|
+
omitted += 1;
|
|
131
|
+
}
|
|
132
|
+
else if (shown.length < exports.MAX_ATTACHED_SCRIPTS) {
|
|
133
|
+
shown.push(shownFrom(row, travel.maxBytes));
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
omitted += 1;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return { shown, omitted, overSize };
|
|
140
|
+
}
|
|
141
|
+
exports.scriptsOfAnswer = scriptsOfAnswer;
|
|
142
|
+
/** The call a line names, and what its record says — every dynamic value inert (`inert.ts`). */
|
|
143
|
+
function callSaid(script) {
|
|
144
|
+
const withheld = script.resultWithheld === 'over-ceiling'
|
|
145
|
+
? "; its result was withheld over the tool's ceiling"
|
|
146
|
+
: '';
|
|
147
|
+
const rewritten = script.rewritten === true ? '; a before-tool rule changed it before dispatch' : '';
|
|
148
|
+
return (`Script submitted to ${(0, inert_js_1.inertCode)(script.tool)} on call ${(0, inert_js_1.inertCode)(script.toolCallId)} — ` +
|
|
149
|
+
`${(0, label_js_1.labelWords)(script.label, script.exitCode)}${withheld}${rewritten}.`);
|
|
150
|
+
}
|
|
151
|
+
/** The label line of one attached script — library words, past tense, the call named. */
|
|
152
|
+
function scriptLabelLine(script) {
|
|
153
|
+
return `${callSaid(script)} Attached by the library from the run record:`;
|
|
154
|
+
}
|
|
155
|
+
exports.scriptLabelLine = scriptLabelLine;
|
|
156
|
+
/** The line that stands for a script whose program is kept out of the text (`withheldFromText`). */
|
|
157
|
+
function scriptWithheldLine(script) {
|
|
158
|
+
return (`${callSaid(script)} The program is not shown here: the formatting above could display ` +
|
|
159
|
+
'part of it as ordinary text. It is kept on the run record.');
|
|
160
|
+
}
|
|
161
|
+
exports.scriptWithheldLine = scriptWithheldLine;
|
|
162
|
+
/** One attached script as text: its label line, then the program in the library's fence. */
|
|
163
|
+
function shownScriptBlock(script) {
|
|
164
|
+
const body = `${scriptLabelLine(script)}\n\n${(0, wrapper_js_1.wrapProgram)(script.text, script.language)}`;
|
|
165
|
+
if (script.truncated === undefined)
|
|
166
|
+
return body;
|
|
167
|
+
return (`${body}\n[incomplete: showing ${script.truncated.shownBytes} of ${script.bytes} bytes — ` +
|
|
168
|
+
'not the whole program]');
|
|
169
|
+
}
|
|
170
|
+
exports.shownScriptBlock = shownScriptBlock;
|
|
171
|
+
const CLEAN = { kind: 'clean' };
|
|
172
|
+
/** The boundary after `before` (see {@link AttachmentBoundary}). */
|
|
173
|
+
function attachmentBoundary(before) {
|
|
174
|
+
if (before.length === 0)
|
|
175
|
+
return CLEAN;
|
|
176
|
+
const read = (0, codeRegions_js_1.codeRegionsOf)(`${before}\n`);
|
|
177
|
+
if (read.stoppedAt !== undefined)
|
|
178
|
+
return { kind: 'unsettled' };
|
|
179
|
+
if (read.openFence !== undefined)
|
|
180
|
+
return { kind: 'closed', fence: read.openFence };
|
|
181
|
+
return CLEAN;
|
|
182
|
+
}
|
|
183
|
+
exports.attachmentBoundary = attachmentBoundary;
|
|
184
|
+
const isObject = (value) => value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
185
|
+
const isCount = (value) => typeof value === 'number' && Number.isInteger(value) && value >= 0;
|
|
186
|
+
/**
|
|
187
|
+
* The boundary a `turn_end.scripts` record states — `undefined` when the
|
|
188
|
+
* record holds a value no writer of this library files: a `closedFence` that
|
|
189
|
+
* is not `{ char: 'backtick' | 'tilde', length }` with a whole length of at
|
|
190
|
+
* least 3 and at most `within` (the answer the closing fence was written into
|
|
191
|
+
* — a fence longer than the text cannot be in it), a `withheldFromText` that
|
|
192
|
+
* is not `true`, or both at once.
|
|
193
|
+
*/
|
|
194
|
+
function recordedBoundary(scripts, within) {
|
|
195
|
+
const withheld = scripts.withheldFromText;
|
|
196
|
+
const closed = scripts.closedFence;
|
|
197
|
+
if (withheld !== undefined && withheld !== true)
|
|
198
|
+
return undefined;
|
|
199
|
+
if (closed === undefined)
|
|
200
|
+
return withheld === true ? { kind: 'unsettled' } : { kind: 'clean' };
|
|
201
|
+
if (withheld === true || !isObject(closed))
|
|
202
|
+
return undefined;
|
|
203
|
+
const char = closed.char;
|
|
204
|
+
if ((char !== 'backtick' && char !== 'tilde') || !isCount(closed.length))
|
|
205
|
+
return undefined;
|
|
206
|
+
if (closed.length < 3 || closed.length > within)
|
|
207
|
+
return undefined;
|
|
208
|
+
return { kind: 'closed', char, length: closed.length };
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* The boundary to rebuild a recorded text behind — `undefined` when its fence
|
|
212
|
+
* is longer than `within`, the text it would have to be found in: the one
|
|
213
|
+
* repetition a reader makes is bounded by what it reads.
|
|
214
|
+
*/
|
|
215
|
+
function rebuildBoundary(recorded, within) {
|
|
216
|
+
if (recorded.kind !== 'closed')
|
|
217
|
+
return recorded;
|
|
218
|
+
if (recorded.length > within)
|
|
219
|
+
return undefined;
|
|
220
|
+
return { kind: 'closed', fence: (recorded.char === 'tilde' ? '~' : '`').repeat(recorded.length) };
|
|
221
|
+
}
|
|
222
|
+
exports.rebuildBoundary = rebuildBoundary;
|
|
223
|
+
/**
|
|
224
|
+
* One `turn_end.scripts.shown` entry, checked against what `shownFrom` writes
|
|
225
|
+
* — a fresh copy, or `undefined` when any field is one no writer of this
|
|
226
|
+
* library files: a call that never reached the tool (`submitted` is never
|
|
227
|
+
* attached), an exit code its label does not carry (`label.ts` ·
|
|
228
|
+
* `exitCodeFits`), a program over `MAX_SCRIPT_BYTES`, or a text whose UTF-8
|
|
229
|
+
* length is not the bytes it says it shows (`truncated.shownBytes` when cut,
|
|
230
|
+
* and then fewer than `bytes`; else `bytes`).
|
|
231
|
+
*/
|
|
232
|
+
function shownScriptOf(value) {
|
|
233
|
+
if (!isObject(value))
|
|
234
|
+
return undefined;
|
|
235
|
+
const v = value;
|
|
236
|
+
const { toolCallId, tool, text, bytes, lines, dispatch, label, exitCode } = v;
|
|
237
|
+
if (typeof toolCallId !== 'string' || typeof tool !== 'string')
|
|
238
|
+
return undefined;
|
|
239
|
+
if (typeof text !== 'string' || !isCount(bytes) || !isCount(lines))
|
|
240
|
+
return undefined;
|
|
241
|
+
if (!isCount(dispatch) || dispatch < 1)
|
|
242
|
+
return undefined;
|
|
243
|
+
if (label === 'submitted' || !label_js_1.SCRIPT_LABELS.includes(label)) {
|
|
244
|
+
return undefined;
|
|
245
|
+
}
|
|
246
|
+
if (!(0, label_js_1.exitCodeFits)(label, exitCode))
|
|
247
|
+
return undefined;
|
|
248
|
+
if (v.language !== undefined && typeof v.language !== 'string')
|
|
249
|
+
return undefined;
|
|
250
|
+
if (v.resultWithheld !== undefined && v.resultWithheld !== 'over-ceiling')
|
|
251
|
+
return undefined;
|
|
252
|
+
if (v.rewritten !== undefined && v.rewritten !== true)
|
|
253
|
+
return undefined;
|
|
254
|
+
if (bytes > rows_js_1.MAX_SCRIPT_BYTES)
|
|
255
|
+
return undefined;
|
|
256
|
+
const cut = v.truncated;
|
|
257
|
+
let shownBytes = bytes;
|
|
258
|
+
if (cut !== undefined) {
|
|
259
|
+
if (!isObject(cut) || !isCount(cut.shownBytes) || cut.shownBytes >= bytes)
|
|
260
|
+
return undefined;
|
|
261
|
+
shownBytes = cut.shownBytes;
|
|
262
|
+
}
|
|
263
|
+
// A UTF-8 encoding is never shorter than the string's length in code
|
|
264
|
+
// units: a longer string is refused before it is measured.
|
|
265
|
+
if (text.length > shownBytes || (0, utf8_js_1.utf8Length)(text) !== shownBytes)
|
|
266
|
+
return undefined;
|
|
267
|
+
return {
|
|
268
|
+
toolCallId,
|
|
269
|
+
dispatch,
|
|
270
|
+
tool,
|
|
271
|
+
...(v.language !== undefined && { language: v.language }),
|
|
272
|
+
label: label,
|
|
273
|
+
...(exitCode !== undefined && { exitCode: exitCode }),
|
|
274
|
+
...(v.resultWithheld !== undefined && { resultWithheld: 'over-ceiling' }),
|
|
275
|
+
...(v.rewritten !== undefined && { rewritten: true }),
|
|
276
|
+
bytes,
|
|
277
|
+
lines,
|
|
278
|
+
...(cut !== undefined && { truncated: { shownBytes } }),
|
|
279
|
+
text,
|
|
280
|
+
};
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* A saved `turn_end.scripts` — THE reader of the shape for a reader of a
|
|
284
|
+
* record. `undefined` when the event carries no scripts arm. `within` is the
|
|
285
|
+
* length of the answer the block was appended to (a fence longer than it is
|
|
286
|
+
* refused). Bounded by the writer's cap: no reader iterates more entries
|
|
287
|
+
* than a writer attaches.
|
|
288
|
+
*/
|
|
289
|
+
function recordedScripts(value, within = Number.MAX_SAFE_INTEGER) {
|
|
290
|
+
if (value === undefined)
|
|
291
|
+
return undefined;
|
|
292
|
+
if (!isObject(value) || !Array.isArray(value.shown))
|
|
293
|
+
return { shown: [], unread: 1 };
|
|
294
|
+
const all = value.shown;
|
|
295
|
+
const shown = [];
|
|
296
|
+
let unread = Math.max(0, all.length - exports.MAX_ATTACHED_SCRIPTS);
|
|
297
|
+
for (let index = 0; index < Math.min(all.length, exports.MAX_ATTACHED_SCRIPTS); index++) {
|
|
298
|
+
const script = shownScriptOf(all[index]);
|
|
299
|
+
if (script === undefined)
|
|
300
|
+
unread += 1;
|
|
301
|
+
else
|
|
302
|
+
shown.push({ index, script });
|
|
303
|
+
}
|
|
304
|
+
const omitted = isCount(value.omitted) ? value.omitted : undefined;
|
|
305
|
+
if (omitted === undefined)
|
|
306
|
+
unread += 1;
|
|
307
|
+
const boundary = recordedBoundary(value, within);
|
|
308
|
+
if (boundary === undefined)
|
|
309
|
+
unread += 1;
|
|
310
|
+
return {
|
|
311
|
+
shown,
|
|
312
|
+
unread,
|
|
313
|
+
...(omitted !== undefined && { omitted }),
|
|
314
|
+
...(boundary !== undefined && { boundary }),
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
exports.recordedScripts = recordedScripts;
|
|
318
|
+
/**
|
|
319
|
+
* The text form: one block per attached script, then one line per omission —
|
|
320
|
+
* `''` when nothing travels (the composer then appends nothing). Every cut and
|
|
321
|
+
* every omission is stated. Behind a `closed` boundary the block opens with
|
|
322
|
+
* the closing fence; behind an `unsettled` one each script is its label line
|
|
323
|
+
* alone (`scriptWithheldLine`) — the programs ride the data only.
|
|
324
|
+
*/
|
|
325
|
+
function scriptsBlock(scripts, boundary = CLEAN) {
|
|
326
|
+
const parts = boundary.kind === 'unsettled'
|
|
327
|
+
? scripts.shown.map(scriptWithheldLine)
|
|
328
|
+
: scripts.shown.map(shownScriptBlock);
|
|
329
|
+
const overSize = scripts.overSize ?? [];
|
|
330
|
+
for (const row of overSize) {
|
|
331
|
+
parts.push(`One script of ${row.bytes} bytes (${(0, inert_js_1.inertCode)(row.tool)}, call ${(0, inert_js_1.inertCode)(row.toolCallId)}) is over the bound and is not shown.`);
|
|
332
|
+
}
|
|
333
|
+
const others = scripts.omitted - overSize.length;
|
|
334
|
+
if (others > 0) {
|
|
335
|
+
parts.push(`${others} more script${others === 1 ? ' was' : 's were'} submitted this turn and ` +
|
|
336
|
+
`${others === 1 ? 'is' : 'are'} not shown here.`);
|
|
337
|
+
}
|
|
338
|
+
if (parts.length === 0)
|
|
339
|
+
return '';
|
|
340
|
+
if (boundary.kind === 'closed')
|
|
341
|
+
parts.unshift(boundary.fence);
|
|
342
|
+
return parts.join('\n\n');
|
|
343
|
+
}
|
|
344
|
+
exports.scriptsBlock = scriptsBlock;
|
|
345
|
+
/**
|
|
346
|
+
* The text form behind the boundary the text before it leaves — `''` when
|
|
347
|
+
* nothing travels (no boundary is then taken). The second value is the
|
|
348
|
+
* boundary the text was written behind: what `turn_end.scripts` records.
|
|
349
|
+
*/
|
|
350
|
+
function scriptsBlockAfter(scripts, before) {
|
|
351
|
+
if (scriptsBlock(scripts) === '')
|
|
352
|
+
return { text: '', boundary: CLEAN };
|
|
353
|
+
const boundary = attachmentBoundary(before);
|
|
354
|
+
return { text: scriptsBlock(scripts, boundary), boundary };
|
|
355
|
+
}
|
|
356
|
+
exports.scriptsBlockAfter = scriptsBlockAfter;
|
|
357
|
+
/** The data form as detached plain data — what `turn_end.scripts` carries. */
|
|
358
|
+
function turnEndScriptsOf(scripts, boundary = CLEAN) {
|
|
359
|
+
return {
|
|
360
|
+
shown: scripts.shown.map((s) => ({
|
|
361
|
+
...s,
|
|
362
|
+
...(s.truncated !== undefined && { truncated: { shownBytes: s.truncated.shownBytes } }),
|
|
363
|
+
})),
|
|
364
|
+
omitted: scripts.omitted,
|
|
365
|
+
...(boundary.kind === 'closed' && {
|
|
366
|
+
closedFence: {
|
|
367
|
+
char: boundary.fence.charCodeAt(0) === 0x7e ? 'tilde' : 'backtick',
|
|
368
|
+
length: boundary.fence.length,
|
|
369
|
+
},
|
|
370
|
+
}),
|
|
371
|
+
...(boundary.kind === 'unsettled' && { withheldFromText: true }),
|
|
372
|
+
};
|
|
373
|
+
}
|
|
374
|
+
exports.turnEndScriptsOf = turnEndScriptsOf;
|
|
375
|
+
//# sourceMappingURL=attachment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attachment.js","sourceRoot":"","sources":["../../../../src/core/agent/scripts/attachment.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* scripts/inert — a dynamic value (a tool's name, a provider's call id) written
|
|
4
|
+
* into a library line as an inline code span that cannot leave its line.
|
|
5
|
+
*
|
|
6
|
+
* Pattern: pure leaf.
|
|
7
|
+
* Role: core/ layer leaf, asked by the attachment's lines (`attachment.ts`)
|
|
8
|
+
* for every name and id they print.
|
|
9
|
+
* Emits: N/A.
|
|
10
|
+
*
|
|
11
|
+
* THE RULE. A provider may hand the library any string as a call id: line
|
|
12
|
+
* breaks, a sentence, a fence. Interpolated as it is, a blank line in an id ends
|
|
13
|
+
* the library's label paragraph, and the rest of the id renders as a paragraph
|
|
14
|
+
* of its own — text nobody checked, under the answer, in the library's voice.
|
|
15
|
+
* So a value is written as inline code:
|
|
16
|
+
*
|
|
17
|
+
* - every character that can end a line, turn the line's direction or hide
|
|
18
|
+
* (C0 and C1 controls, DEL, U+2028 and U+2029, format characters such as a
|
|
19
|
+
* bidi override or a zero-width joiner, a lone surrogate) is written as
|
|
20
|
+
* `\u{…}`, its code point in hex;
|
|
21
|
+
* - at most {@link MAX_INERT_POINTS} code points are written, then `…`;
|
|
22
|
+
* - the delimiter is one backtick longer than the longest run inside, with a
|
|
23
|
+
* space at either end when the value begins or ends with a backtick or a
|
|
24
|
+
* space (CommonMark's code-span rule), so nothing inside can close it.
|
|
25
|
+
*
|
|
26
|
+
* Inside a code span nothing is Markdown: no emphasis, no link, no HTML, no
|
|
27
|
+
* line ending. The value is shown, never interpreted.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* inertCode('c1'); // '`c1`'
|
|
32
|
+
* inertCode('c1\n\nRevenue was 98765.'); // '`c1\u{a}\u{a}Revenue was 98765.`'
|
|
33
|
+
* inertCode('a`b'); // '``a`b``'
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
exports.inertCode = exports.MAX_INERT_POINTS = void 0;
|
|
38
|
+
/** Code points of a value written; the rest is `…`. */
|
|
39
|
+
exports.MAX_INERT_POINTS = 64;
|
|
40
|
+
const FORMAT = /\p{Cf}/u;
|
|
41
|
+
/** Whether one code point must be written as `\u{…}`. */
|
|
42
|
+
function escapes(point, char) {
|
|
43
|
+
if (point < 0x20 || point === 0x7f || (point >= 0x80 && point <= 0x9f))
|
|
44
|
+
return true;
|
|
45
|
+
if (point === 0x2028 || point === 0x2029)
|
|
46
|
+
return true;
|
|
47
|
+
if (point >= 0xd800 && point <= 0xdfff)
|
|
48
|
+
return true;
|
|
49
|
+
return FORMAT.test(char);
|
|
50
|
+
}
|
|
51
|
+
/** The longest run of backticks in `text`. */
|
|
52
|
+
function longestBacktickRun(text) {
|
|
53
|
+
let longest = 0;
|
|
54
|
+
let run = 0;
|
|
55
|
+
for (let i = 0; i < text.length; i++) {
|
|
56
|
+
if (text.charCodeAt(i) === 0x60) {
|
|
57
|
+
run += 1;
|
|
58
|
+
if (run > longest)
|
|
59
|
+
longest = run;
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
run = 0;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return longest;
|
|
66
|
+
}
|
|
67
|
+
/** `value` as an inline code span that stays on its line. */
|
|
68
|
+
function inertCode(value) {
|
|
69
|
+
let shown = '';
|
|
70
|
+
let points = 0;
|
|
71
|
+
for (const char of value) {
|
|
72
|
+
if (points === exports.MAX_INERT_POINTS) {
|
|
73
|
+
shown += '…';
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
points += 1;
|
|
77
|
+
const point = char.codePointAt(0);
|
|
78
|
+
shown += escapes(point, char) ? `\\u{${point.toString(16)}}` : char;
|
|
79
|
+
}
|
|
80
|
+
if (shown.length === 0)
|
|
81
|
+
return '`(empty)`';
|
|
82
|
+
const fence = '`'.repeat(longestBacktickRun(shown) + 1);
|
|
83
|
+
const edge = (c) => c === '`' || c === ' ';
|
|
84
|
+
const pad = edge(shown[0]) || edge(shown[shown.length - 1]) ? ' ' : '';
|
|
85
|
+
return `${fence}${pad}${shown}${pad}${fence}`;
|
|
86
|
+
}
|
|
87
|
+
exports.inertCode = inertCode;
|
|
88
|
+
//# sourceMappingURL=inert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inert.js","sourceRoot":"","sources":["../../../../src/core/agent/scripts/inert.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;;;AAEH,uDAAuD;AAC1C,QAAA,gBAAgB,GAAG,EAAE,CAAC;AAEnC,MAAM,MAAM,GAAG,SAAS,CAAC;AAEzB,yDAAyD;AACzD,SAAS,OAAO,CAAC,KAAa,EAAE,IAAY;IAC1C,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACpF,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACtD,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IACpD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,8CAA8C;AAC9C,SAAS,kBAAkB,CAAC,IAAY;IACtC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAChC,GAAG,IAAI,CAAC,CAAC;YACT,IAAI,GAAG,GAAG,OAAO;gBAAE,OAAO,GAAG,GAAG,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,GAAG,GAAG,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,6DAA6D;AAC7D,SAAgB,SAAS,CAAC,KAAa;IACrC,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,MAAM,KAAK,wBAAgB,EAAE,CAAC;YAChC,KAAK,IAAI,GAAG,CAAC;YACb,MAAM;QACR,CAAC;QACD,MAAM,IAAI,CAAC,CAAC;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAW,CAAC;QAC5C,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IACtE,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,WAAW,CAAC;IAC3C,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,CAAC,CAAqB,EAAW,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC;IACxE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACvE,OAAO,GAAG,KAAK,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,KAAK,EAAE,CAAC;AAChD,CAAC;AAjBD,8BAiBC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* scripts/judge — the evidence gate's ONE judge, with the script match in
|
|
4
|
+
* front of it.
|
|
5
|
+
*
|
|
6
|
+
* Pattern: Decorator over the judge closure `stages/route.ts` ·
|
|
7
|
+
* `judgeEvidence` builds (the gate bound to this run's evidence).
|
|
8
|
+
* Role: core/ layer. Built only under `.namesAndNumbersFromEvidence({
|
|
9
|
+
* code: 'match' })`, on a prose answer (a typed answer is read as
|
|
10
|
+
* today — design § 12). The same decorated closure judges the draft
|
|
11
|
+
* and, for `.answerValidation()`, the delivered candidate.
|
|
12
|
+
* Emits: N/A — the Route decider emits `evidence_checked`, now carrying
|
|
13
|
+
* `scripts` and each unsupported value's `region`.
|
|
14
|
+
*
|
|
15
|
+
* What it adds, and nothing else: the matched blocks are cut out of the text
|
|
16
|
+
* the gate reads (`match.ts`), the verdict carries `scripts`, and each
|
|
17
|
+
* unsupported value says where it sat — `'code'` when every occurrence of it
|
|
18
|
+
* is inside an unmatched block, `'prose'` otherwise. The corpus and the
|
|
19
|
+
* exempt corpus are untouched: a matched script grounds nothing.
|
|
20
|
+
*/
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.scriptJudge = void 0;
|
|
23
|
+
const match_js_1 = require("./match.js");
|
|
24
|
+
/** The gate's judge with the script match in front of it. */
|
|
25
|
+
function scriptJudge(input) {
|
|
26
|
+
return (text) => {
|
|
27
|
+
const shown = (0, match_js_1.readShownScripts)(text, input.turn, input.scriptsDropped);
|
|
28
|
+
const verdict = input.judgeProse(shown.prose);
|
|
29
|
+
const inProse = verdict.unsupported.length > 0 ? input.valuesIn(shown.outsideCode) : new Set();
|
|
30
|
+
return {
|
|
31
|
+
...verdict,
|
|
32
|
+
unsupported: verdict.unsupported.map((value) => ({
|
|
33
|
+
...value,
|
|
34
|
+
region: inProse.has(value.value) ? 'prose' : 'code',
|
|
35
|
+
})),
|
|
36
|
+
scripts: shown.verdict,
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
exports.scriptJudge = scriptJudge;
|
|
41
|
+
//# sourceMappingURL=judge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"judge.js","sourceRoot":"","sources":["../../../../src/core/agent/scripts/judge.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;AAGH,yCAA8C;AAG9C,6DAA6D;AAC7D,SAAgB,WAAW,CAAC,KAa3B;IACC,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,MAAM,KAAK,GAAG,IAAA,2BAAgB,EAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,OAAO,GACX,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAU,CAAC;QACzF,OAAO;YACL,GAAG,OAAO;YACV,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC/C,GAAG,KAAK;gBACR,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,OAAiB,CAAC,CAAC,CAAE,MAAgB;aAC1E,CAAC,CAAC;YACH,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AA5BD,kCA4BC"}
|