agentfootprint 9.128.1 → 9.129.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 +8 -1
- package/dist/artifacts/datasetResult.js +2 -2
- package/dist/artifacts/datasetResult.js.map +1 -1
- package/dist/artifacts/index.js +10 -8
- package/dist/artifacts/index.js.map +1 -1
- package/dist/artifacts/minting.js +2 -2
- package/dist/artifacts/minting.js.map +1 -1
- package/dist/core/Agent.js +199 -5
- package/dist/core/Agent.js.map +1 -1
- package/dist/core/agent/AgentBuilder.js +75 -1
- package/dist/core/agent/AgentBuilder.js.map +1 -1
- package/dist/core/agent/arguments/ask.js +60 -4
- package/dist/core/agent/arguments/ask.js.map +1 -1
- package/dist/core/agent/arguments/declare.js +260 -45
- package/dist/core/agent/arguments/declare.js.map +1 -1
- package/dist/core/agent/arguments/dispatch.js +10 -0
- package/dist/core/agent/arguments/dispatch.js.map +1 -1
- package/dist/core/agent/arguments/resolve.js +218 -6
- package/dist/core/agent/arguments/resolve.js.map +1 -1
- package/dist/core/agent/arguments/rows.js +32 -2
- package/dist/core/agent/arguments/rows.js.map +1 -1
- package/dist/core/agent/arguments/serve.js +89 -4
- package/dist/core/agent/arguments/serve.js.map +1 -1
- package/dist/core/agent/arguments/subflow.js +41 -6
- package/dist/core/agent/arguments/subflow.js.map +1 -1
- package/dist/core/agent/buildAgentChart.js.map +1 -1
- package/dist/core/agent/coverage/answer.js +9 -4
- package/dist/core/agent/coverage/answer.js.map +1 -1
- package/dist/core/agent/coverage/period.js +43 -67
- package/dist/core/agent/coverage/period.js.map +1 -1
- package/dist/core/agent/findings/ledger.js +6 -0
- package/dist/core/agent/findings/ledger.js.map +1 -1
- package/dist/core/agent/findings/types.js.map +1 -1
- package/dist/core/agent/honesty/mounts.js +27 -3
- package/dist/core/agent/honesty/mounts.js.map +1 -1
- package/dist/core/agent/stages/argumentAsk.js +11 -4
- package/dist/core/agent/stages/argumentAsk.js.map +1 -1
- package/dist/core/agent/stages/prepareFinal.js +40 -6
- package/dist/core/agent/stages/prepareFinal.js.map +1 -1
- package/dist/core/agent/stages/seed.js +29 -6
- package/dist/core/agent/stages/seed.js.map +1 -1
- package/dist/core/agent/stages/timeLayer.js +201 -0
- package/dist/core/agent/stages/timeLayer.js.map +1 -0
- package/dist/core/agent/stages/toolCalls.js +39 -0
- package/dist/core/agent/stages/toolCalls.js.map +1 -1
- package/dist/core/inputRequest.js +132 -5
- package/dist/core/inputRequest.js.map +1 -1
- package/dist/core/messageFrom.js +5 -2
- package/dist/core/messageFrom.js.map +1 -1
- package/dist/core/runCheckpoint.js +16 -2
- package/dist/core/runCheckpoint.js.map +1 -1
- package/dist/core/time/ask.js +234 -0
- package/dist/core/time/ask.js.map +1 -0
- package/dist/core/time/axis.js +469 -0
- package/dist/core/time/axis.js.map +1 -0
- package/dist/core/time/bind.js +265 -0
- package/dist/core/time/bind.js.map +1 -0
- package/dist/core/time/clock.js +260 -0
- package/dist/core/time/clock.js.map +1 -0
- package/dist/core/time/convert.js +644 -0
- package/dist/core/time/convert.js.map +1 -0
- package/dist/core/time/drift.js +89 -0
- package/dist/core/time/drift.js.map +1 -0
- package/dist/core/time/duration.js +125 -0
- package/dist/core/time/duration.js.map +1 -0
- package/dist/core/time/instant.js +141 -0
- package/dist/core/time/instant.js.map +1 -0
- package/dist/core/time/periodForm.js +392 -0
- package/dist/core/time/periodForm.js.map +1 -0
- package/dist/core/time/present.js +311 -0
- package/dist/core/time/present.js.map +1 -0
- package/dist/core/time/range.js +256 -0
- package/dist/core/time/range.js.map +1 -0
- package/dist/core/time/reader.js +205 -0
- package/dist/core/time/reader.js.map +1 -0
- package/dist/core/time/readingAsk.js +90 -0
- package/dist/core/time/readingAsk.js.map +1 -0
- package/dist/core/time/resolve.js +663 -0
- package/dist/core/time/resolve.js.map +1 -0
- package/dist/core/time/resolveRecord.js +164 -0
- package/dist/core/time/resolveRecord.js.map +1 -0
- package/dist/core/time/rows.js +295 -0
- package/dist/core/time/rows.js.map +1 -0
- package/dist/core/time/rowsBuild.js +187 -0
- package/dist/core/time/rowsBuild.js.map +1 -0
- package/dist/core/time/wire.js +86 -0
- package/dist/core/time/wire.js.map +1 -0
- package/dist/core/time/zone.js +253 -0
- package/dist/core/time/zone.js.map +1 -0
- package/dist/core/tools.js.map +1 -1
- package/dist/esm/artifacts/datasetResult.js +1 -1
- package/dist/esm/artifacts/datasetResult.js.map +1 -1
- package/dist/esm/artifacts/index.d.ts +1 -1
- package/dist/esm/artifacts/index.js +3 -2
- package/dist/esm/artifacts/index.js.map +1 -1
- package/dist/esm/artifacts/minting.js +1 -1
- package/dist/esm/artifacts/minting.js.map +1 -1
- package/dist/esm/artifacts/types.d.ts +2 -2
- package/dist/esm/core/Agent.d.ts +64 -0
- package/dist/esm/core/Agent.js +200 -6
- package/dist/esm/core/Agent.js.map +1 -1
- package/dist/esm/core/agent/AgentBuilder.d.ts +60 -0
- package/dist/esm/core/agent/AgentBuilder.js +75 -1
- package/dist/esm/core/agent/AgentBuilder.js.map +1 -1
- package/dist/esm/core/agent/arguments/ask.d.ts +16 -2
- package/dist/esm/core/agent/arguments/ask.js +59 -4
- package/dist/esm/core/agent/arguments/ask.js.map +1 -1
- package/dist/esm/core/agent/arguments/checks.d.ts +1 -1
- package/dist/esm/core/agent/arguments/declare.d.ts +76 -15
- package/dist/esm/core/agent/arguments/declare.js +255 -44
- package/dist/esm/core/agent/arguments/declare.js.map +1 -1
- package/dist/esm/core/agent/arguments/dispatch.js +10 -0
- package/dist/esm/core/agent/arguments/dispatch.js.map +1 -1
- package/dist/esm/core/agent/arguments/resolve.d.ts +59 -6
- package/dist/esm/core/agent/arguments/resolve.js +218 -8
- package/dist/esm/core/agent/arguments/resolve.js.map +1 -1
- package/dist/esm/core/agent/arguments/rows.d.ts +29 -2
- package/dist/esm/core/agent/arguments/rows.js +30 -1
- package/dist/esm/core/agent/arguments/rows.js.map +1 -1
- package/dist/esm/core/agent/arguments/serve.d.ts +32 -3
- package/dist/esm/core/agent/arguments/serve.js +87 -3
- package/dist/esm/core/agent/arguments/serve.js.map +1 -1
- package/dist/esm/core/agent/arguments/subflow.d.ts +25 -0
- package/dist/esm/core/agent/arguments/subflow.js +42 -7
- package/dist/esm/core/agent/arguments/subflow.js.map +1 -1
- package/dist/esm/core/agent/buildAgentChart.d.ts +7 -0
- package/dist/esm/core/agent/buildAgentChart.js.map +1 -1
- package/dist/esm/core/agent/coverage/answer.d.ts +7 -1
- package/dist/esm/core/agent/coverage/answer.js +9 -4
- package/dist/esm/core/agent/coverage/answer.js.map +1 -1
- package/dist/esm/core/agent/coverage/period.d.ts +8 -3
- package/dist/esm/core/agent/coverage/period.js +43 -67
- package/dist/esm/core/agent/coverage/period.js.map +1 -1
- package/dist/esm/core/agent/findings/ledger.js +6 -0
- package/dist/esm/core/agent/findings/ledger.js.map +1 -1
- package/dist/esm/core/agent/findings/types.d.ts +2 -1
- package/dist/esm/core/agent/findings/types.js.map +1 -1
- package/dist/esm/core/agent/honesty/mounts.d.ts +12 -0
- package/dist/esm/core/agent/honesty/mounts.js +28 -4
- package/dist/esm/core/agent/honesty/mounts.js.map +1 -1
- package/dist/esm/core/agent/stages/argumentAsk.d.ts +9 -0
- package/dist/esm/core/agent/stages/argumentAsk.js +11 -4
- package/dist/esm/core/agent/stages/argumentAsk.js.map +1 -1
- package/dist/esm/core/agent/stages/prepareFinal.d.ts +12 -1
- package/dist/esm/core/agent/stages/prepareFinal.js +38 -5
- package/dist/esm/core/agent/stages/prepareFinal.js.map +1 -1
- package/dist/esm/core/agent/stages/seed.d.ts +23 -0
- package/dist/esm/core/agent/stages/seed.js +29 -6
- package/dist/esm/core/agent/stages/seed.js.map +1 -1
- package/dist/esm/core/agent/stages/timeLayer.d.ts +94 -0
- package/dist/esm/core/agent/stages/timeLayer.js +193 -0
- package/dist/esm/core/agent/stages/timeLayer.js.map +1 -0
- package/dist/esm/core/agent/stages/toolCalls.d.ts +21 -0
- package/dist/esm/core/agent/stages/toolCalls.js +39 -0
- package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
- package/dist/esm/core/agent/types.d.ts +25 -0
- package/dist/esm/core/inputRequest.d.ts +50 -6
- package/dist/esm/core/inputRequest.js +132 -5
- package/dist/esm/core/inputRequest.js.map +1 -1
- package/dist/esm/core/messageFrom.d.ts +5 -2
- package/dist/esm/core/messageFrom.js +5 -2
- package/dist/esm/core/messageFrom.js.map +1 -1
- package/dist/esm/core/runCheckpoint.js +16 -2
- package/dist/esm/core/runCheckpoint.js.map +1 -1
- package/dist/esm/core/time/ask.d.ts +121 -0
- package/dist/esm/core/time/ask.js +225 -0
- package/dist/esm/core/time/ask.js.map +1 -0
- package/dist/esm/core/time/axis.d.ts +224 -0
- package/dist/esm/core/time/axis.js +462 -0
- package/dist/esm/core/time/axis.js.map +1 -0
- package/dist/esm/core/time/bind.d.ts +168 -0
- package/dist/esm/core/time/bind.js +259 -0
- package/dist/esm/core/time/bind.js.map +1 -0
- package/dist/esm/core/time/clock.d.ts +183 -0
- package/dist/esm/core/time/clock.js +252 -0
- package/dist/esm/core/time/clock.js.map +1 -0
- package/dist/esm/core/time/convert.d.ts +179 -0
- package/dist/esm/core/time/convert.js +616 -0
- package/dist/esm/core/time/convert.js.map +1 -0
- package/dist/esm/core/time/drift.d.ts +78 -0
- package/dist/esm/core/time/drift.js +85 -0
- package/dist/esm/core/time/drift.js.map +1 -0
- package/dist/esm/core/time/duration.d.ts +71 -0
- package/dist/esm/core/time/duration.js +117 -0
- package/dist/esm/core/time/duration.js.map +1 -0
- package/dist/esm/core/time/instant.d.ts +75 -0
- package/dist/esm/core/time/instant.js +131 -0
- package/dist/esm/core/time/instant.js.map +1 -0
- package/dist/esm/core/time/periodForm.d.ts +184 -0
- package/dist/esm/core/time/periodForm.js +376 -0
- package/dist/esm/core/time/periodForm.js.map +1 -0
- package/dist/esm/core/time/present.d.ts +105 -0
- package/dist/esm/core/time/present.js +304 -0
- package/dist/esm/core/time/present.js.map +1 -0
- package/dist/esm/core/time/range.d.ts +125 -0
- package/dist/esm/core/time/range.js +239 -0
- package/dist/esm/core/time/range.js.map +1 -0
- package/dist/esm/core/time/reader.d.ts +153 -0
- package/dist/esm/core/time/reader.js +199 -0
- package/dist/esm/core/time/reader.js.map +1 -0
- package/dist/esm/core/time/readingAsk.d.ts +45 -0
- package/dist/esm/core/time/readingAsk.js +86 -0
- package/dist/esm/core/time/readingAsk.js.map +1 -0
- package/dist/esm/core/time/resolve.d.ts +82 -0
- package/dist/esm/core/time/resolve.js +654 -0
- package/dist/esm/core/time/resolve.js.map +1 -0
- package/dist/esm/core/time/resolveRecord.d.ts +160 -0
- package/dist/esm/core/time/resolveRecord.js +158 -0
- package/dist/esm/core/time/resolveRecord.js.map +1 -0
- package/dist/esm/core/time/rows.d.ts +210 -0
- package/dist/esm/core/time/rows.js +286 -0
- package/dist/esm/core/time/rows.js.map +1 -0
- package/dist/esm/core/time/rowsBuild.d.ts +76 -0
- package/dist/esm/core/time/rowsBuild.js +179 -0
- package/dist/esm/core/time/rowsBuild.js.map +1 -0
- package/dist/esm/core/time/wire.d.ts +63 -0
- package/dist/esm/core/time/wire.js +81 -0
- package/dist/esm/core/time/wire.js.map +1 -0
- package/dist/esm/core/time/zone.d.ts +115 -0
- package/dist/esm/core/time/zone.js +242 -0
- package/dist/esm/core/time/zone.js.map +1 -0
- package/dist/esm/core/tools.d.ts +26 -4
- package/dist/esm/core/tools.js.map +1 -1
- package/dist/esm/events/payloads.d.ts +2 -2
- package/dist/esm/index.d.ts +11 -1
- package/dist/esm/index.js +3 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/mcp/elicitation.d.ts +84 -0
- package/dist/esm/lib/mcp/elicitation.js +181 -0
- package/dist/esm/lib/mcp/elicitation.js.map +1 -0
- package/dist/esm/lib/mcp/mcpClient.js +9 -3
- package/dist/esm/lib/mcp/mcpClient.js.map +1 -1
- package/dist/esm/lib/mcp/mcpServe.js +6 -2
- package/dist/esm/lib/mcp/mcpServe.js.map +1 -1
- package/dist/esm/lib/mcp/mockMcpClient.d.ts +9 -1
- package/dist/esm/lib/mcp/mockMcpClient.js +5 -3
- package/dist/esm/lib/mcp/mockMcpClient.js.map +1 -1
- package/dist/esm/lib/mcp/toolExtras.d.ts +21 -2
- package/dist/esm/lib/mcp/toolExtras.js +22 -0
- package/dist/esm/lib/mcp/toolExtras.js.map +1 -1
- package/dist/esm/lib/mcp/types.d.ts +8 -0
- package/dist/esm/locales/index.d.ts +6 -0
- package/dist/esm/locales/index.js +6 -0
- package/dist/esm/locales/index.js.map +1 -1
- package/dist/esm/locales/timeAsk.d.ts +29 -0
- package/dist/esm/locales/timeAsk.js +44 -0
- package/dist/esm/locales/timeAsk.js.map +1 -0
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/mcp/elicitation.js +186 -0
- package/dist/lib/mcp/elicitation.js.map +1 -0
- package/dist/lib/mcp/mcpClient.js +8 -2
- package/dist/lib/mcp/mcpClient.js.map +1 -1
- package/dist/lib/mcp/mcpServe.js +5 -1
- package/dist/lib/mcp/mcpServe.js.map +1 -1
- package/dist/lib/mcp/mockMcpClient.js +4 -2
- package/dist/lib/mcp/mockMcpClient.js.map +1 -1
- package/dist/lib/mcp/toolExtras.js +25 -1
- package/dist/lib/mcp/toolExtras.js.map +1 -1
- package/dist/locales/index.js +8 -1
- package/dist/locales/index.js.map +1 -1
- package/dist/locales/timeAsk.js +47 -0
- package/dist/locales/timeAsk.js.map +1 -0
- package/dist/types/artifacts/index.d.ts +1 -1
- package/dist/types/artifacts/index.d.ts.map +1 -1
- package/dist/types/artifacts/types.d.ts +2 -2
- package/dist/types/artifacts/types.d.ts.map +1 -1
- package/dist/types/core/Agent.d.ts +64 -0
- package/dist/types/core/Agent.d.ts.map +1 -1
- package/dist/types/core/agent/AgentBuilder.d.ts +60 -0
- package/dist/types/core/agent/AgentBuilder.d.ts.map +1 -1
- package/dist/types/core/agent/arguments/ask.d.ts +16 -2
- package/dist/types/core/agent/arguments/ask.d.ts.map +1 -1
- package/dist/types/core/agent/arguments/checks.d.ts +1 -1
- package/dist/types/core/agent/arguments/checks.d.ts.map +1 -1
- package/dist/types/core/agent/arguments/declare.d.ts +76 -15
- package/dist/types/core/agent/arguments/declare.d.ts.map +1 -1
- package/dist/types/core/agent/arguments/dispatch.d.ts.map +1 -1
- package/dist/types/core/agent/arguments/resolve.d.ts +59 -6
- package/dist/types/core/agent/arguments/resolve.d.ts.map +1 -1
- package/dist/types/core/agent/arguments/rows.d.ts +29 -2
- package/dist/types/core/agent/arguments/rows.d.ts.map +1 -1
- package/dist/types/core/agent/arguments/serve.d.ts +32 -3
- package/dist/types/core/agent/arguments/serve.d.ts.map +1 -1
- package/dist/types/core/agent/arguments/subflow.d.ts +25 -0
- package/dist/types/core/agent/arguments/subflow.d.ts.map +1 -1
- package/dist/types/core/agent/buildAgentChart.d.ts +7 -0
- package/dist/types/core/agent/buildAgentChart.d.ts.map +1 -1
- package/dist/types/core/agent/coverage/answer.d.ts +7 -1
- package/dist/types/core/agent/coverage/answer.d.ts.map +1 -1
- package/dist/types/core/agent/coverage/period.d.ts +8 -3
- package/dist/types/core/agent/coverage/period.d.ts.map +1 -1
- package/dist/types/core/agent/findings/ledger.d.ts.map +1 -1
- package/dist/types/core/agent/findings/types.d.ts +2 -1
- package/dist/types/core/agent/findings/types.d.ts.map +1 -1
- package/dist/types/core/agent/honesty/mounts.d.ts +12 -0
- package/dist/types/core/agent/honesty/mounts.d.ts.map +1 -1
- package/dist/types/core/agent/stages/argumentAsk.d.ts +9 -0
- package/dist/types/core/agent/stages/argumentAsk.d.ts.map +1 -1
- package/dist/types/core/agent/stages/prepareFinal.d.ts +12 -1
- package/dist/types/core/agent/stages/prepareFinal.d.ts.map +1 -1
- package/dist/types/core/agent/stages/seed.d.ts +23 -0
- package/dist/types/core/agent/stages/seed.d.ts.map +1 -1
- package/dist/types/core/agent/stages/timeLayer.d.ts +95 -0
- package/dist/types/core/agent/stages/timeLayer.d.ts.map +1 -0
- package/dist/types/core/agent/stages/toolCalls.d.ts +21 -0
- package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
- package/dist/types/core/agent/types.d.ts +25 -0
- package/dist/types/core/agent/types.d.ts.map +1 -1
- package/dist/types/core/inputRequest.d.ts +50 -6
- package/dist/types/core/inputRequest.d.ts.map +1 -1
- package/dist/types/core/messageFrom.d.ts +5 -2
- package/dist/types/core/messageFrom.d.ts.map +1 -1
- package/dist/types/core/runCheckpoint.d.ts.map +1 -1
- package/dist/types/core/time/ask.d.ts +122 -0
- package/dist/types/core/time/ask.d.ts.map +1 -0
- package/dist/types/core/time/axis.d.ts +225 -0
- package/dist/types/core/time/axis.d.ts.map +1 -0
- package/dist/types/core/time/bind.d.ts +169 -0
- package/dist/types/core/time/bind.d.ts.map +1 -0
- package/dist/types/core/time/clock.d.ts +184 -0
- package/dist/types/core/time/clock.d.ts.map +1 -0
- package/dist/types/core/time/convert.d.ts +180 -0
- package/dist/types/core/time/convert.d.ts.map +1 -0
- package/dist/types/core/time/drift.d.ts +79 -0
- package/dist/types/core/time/drift.d.ts.map +1 -0
- package/dist/types/core/time/duration.d.ts +72 -0
- package/dist/types/core/time/duration.d.ts.map +1 -0
- package/dist/types/core/time/instant.d.ts +76 -0
- package/dist/types/core/time/instant.d.ts.map +1 -0
- package/dist/types/core/time/periodForm.d.ts +185 -0
- package/dist/types/core/time/periodForm.d.ts.map +1 -0
- package/dist/types/core/time/present.d.ts +106 -0
- package/dist/types/core/time/present.d.ts.map +1 -0
- package/dist/types/core/time/range.d.ts +126 -0
- package/dist/types/core/time/range.d.ts.map +1 -0
- package/dist/types/core/time/reader.d.ts +154 -0
- package/dist/types/core/time/reader.d.ts.map +1 -0
- package/dist/types/core/time/readingAsk.d.ts +46 -0
- package/dist/types/core/time/readingAsk.d.ts.map +1 -0
- package/dist/types/core/time/resolve.d.ts +83 -0
- package/dist/types/core/time/resolve.d.ts.map +1 -0
- package/dist/types/core/time/resolveRecord.d.ts +161 -0
- package/dist/types/core/time/resolveRecord.d.ts.map +1 -0
- package/dist/types/core/time/rows.d.ts +211 -0
- package/dist/types/core/time/rows.d.ts.map +1 -0
- package/dist/types/core/time/rowsBuild.d.ts +77 -0
- package/dist/types/core/time/rowsBuild.d.ts.map +1 -0
- package/dist/types/core/time/wire.d.ts +64 -0
- package/dist/types/core/time/wire.d.ts.map +1 -0
- package/dist/types/core/time/zone.d.ts +116 -0
- package/dist/types/core/time/zone.d.ts.map +1 -0
- package/dist/types/core/tools.d.ts +26 -4
- package/dist/types/core/tools.d.ts.map +1 -1
- package/dist/types/events/payloads.d.ts +2 -2
- package/dist/types/events/payloads.d.ts.map +1 -1
- package/dist/types/index.d.ts +11 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/lib/mcp/elicitation.d.ts +85 -0
- package/dist/types/lib/mcp/elicitation.d.ts.map +1 -0
- package/dist/types/lib/mcp/mcpServe.d.ts.map +1 -1
- package/dist/types/lib/mcp/mockMcpClient.d.ts +9 -1
- package/dist/types/lib/mcp/mockMcpClient.d.ts.map +1 -1
- package/dist/types/lib/mcp/toolExtras.d.ts +21 -2
- package/dist/types/lib/mcp/toolExtras.d.ts.map +1 -1
- package/dist/types/lib/mcp/types.d.ts +8 -0
- package/dist/types/lib/mcp/types.d.ts.map +1 -1
- package/dist/types/locales/index.d.ts +6 -0
- package/dist/types/locales/index.d.ts.map +1 -1
- package/dist/types/locales/timeAsk.d.ts +30 -0
- package/dist/types/locales/timeAsk.d.ts.map +1 -0
- package/package.json +1 -1
- package/dist/artifacts/timeAxis.js +0 -218
- package/dist/artifacts/timeAxis.js.map +0 -1
- package/dist/esm/artifacts/timeAxis.d.ts +0 -114
- package/dist/esm/artifacts/timeAxis.js +0 -212
- package/dist/esm/artifacts/timeAxis.js.map +0 -1
- package/dist/types/artifacts/timeAxis.d.ts +0 -115
- package/dist/types/artifacts/timeAxis.d.ts.map +0 -1
package/CAPABILITIES.md
CHANGED
|
@@ -51,7 +51,14 @@ not in this table, search `src/index.ts` for the nearest noun before writing cod
|
|
|
51
51
|
| naming your own branches and nodes — which prefix is reserved, and telling framework plumbing from consumer structure in a trace | `RESERVED_SUBFLOW_PREFIX` + `isReservedSubflowSegment` | `src/conventions.ts` | 9.49.0 |
|
|
52
52
|
| keeping a large tool result out of the model's context | `artifacts` (bare store, or `{ store, placement: { maxInlineChars }, recordings }` — `placement` omitted ⇒ never placed; `recordings: true` / `{ label }`, default off) + `wants` + `placement` | `src/artifacts/` | 9.21.0 |
|
|
53
53
|
| the ticket placement just minted being REFUSED by your own `wants` argument as a kind mismatch — because the mint says `tool-result/<toolName>` and your consumer says `dataset/rows` | `Tool.resultKind` + `placedResultKind(toolName, declared?)` (the mint speaks the consumer's vocabulary; the exact-match matcher is untouched) | `src/artifacts/placement.ts` | 9.70.0 |
|
|
54
|
-
| a viewer guessing which column of a dataset is time (epoch seconds under `ts`, wall-clock strings, a `bucket` column) and opening a series as a table | `timeAxis` on `PutArtifactInput` / `ArtifactMeta` (column · `'iso'`/`'epoch-s'`/`'epoch-ms'` · zone · interval · aggregate) + `readTimeAxis` + `describeTimeAxis` + `timeAxisIssues` (judged at mint, never repaired) | `src/
|
|
54
|
+
| a viewer guessing which column of a dataset is time (epoch seconds under `ts`, wall-clock strings, a `bucket` column) and opening a series as a table | `timeAxis` on `PutArtifactInput` / `ArtifactMeta` (column · `'iso'`/`'epoch-s'`/`'epoch-ms'` · zone · interval · aggregate) + `readTimeAxis` + `describeTimeAxis` + `timeAxisIssues` (judged at mint, never repaired) | `src/core/time/axis.ts` | 9.128.0 |
|
|
55
|
+
| a chart or check comparing a dataset's time values as spellings — epoch seconds beside ISO strings, `+02:00` beside `Z`, a wall-clock string with no offset silently read as UTC, two `01:30` rows in the hour the clocks go back; a READ-SIDE view (the stored rows are never rewritten): UTC instants at one precision, sorted, each with its row; an offset-less value under a zone-less axis is counted (`status: 'naive-values'`) or refused (`naive: 'refuse'`), never read as UTC; a fall-back wall time placed by row order and noted, else counted `dstAmbiguous`; a skipped one `dstGap` (the axis is re-exported from `src/artifacts/`) | `normaliseInstants` + `NormalisedAxis` | `src/core/time/axis.ts` | 9.129.0 |
|
|
56
|
+
| a second parser for an instant, a look-back like `30m`/`24h`, a time zone or a `from..to` range inside the library — three separately written grammars used to disagree (an `iso-range` argument took 30 February, a declared period took a lower-case `t`); ONE owner now, with two named instant profiles (`lenient` for a period a result declares, `strict` for a value sent to a tool), a duration grammar with the unit set named per use (look-back `mhdw`, no digit cap; `s` only by opt-in), IANA zones through `Intl` with abbreviations and bare offsets refused, Temporal's four DST words, and one conversion per boundary a half-open range crosses; internal until the run clock ships | `instantOf` + `durationMs` / `spellDuration` + `isZoneName` / `wallToInstant` + `parseRange` / `spellRange` + `fromInclusive` / `toInclusive` | `src/core/time/` | 9.129.0 |
|
|
57
|
+
| a run that reads "now" and the person's time zone from the SERVER — "since 8" answered in the host's zone, a default nobody chose, a resume half an hour later silently re-anchoring the question — the clock as a declared, recorded input: the zone per run (`run({ time: { zone } })`), `.time({ zone })` an optional fallback, a run with neither REFUSED before the turn starts; `now` the app's (the message's time) else the turn's start, recorded `nowSource: 'default'`; one `clock` row per turn on the ledger (with a UI-set `time.window`, `source: 'control'`), one `call` row per dispatched call with `dispatchedAt`, a resume's differing `time` kept out and recorded as `clock-on-resume`; the limits block's `Period:` lines rendered in the run's zone with the zone named (`2026-10-09 08:00–08:40 America/Los_Angeles (UTC-07:00)`) while the typed record keeps the instants; nothing served to the model | `AgentBuilder.time()` + `AgentInput.time` / `AgentRunOptions.time` (`RunTime`) + `TimeClock` + `ClockRow` / `ClockOnResumeRow` / `CallRow` | `src/core/time/clock.ts` | 9.129.0 |
|
|
58
|
+
| an app's date parser silently choosing MDY, reading `8:40` as morning, guessing a year, taking `PST` as a zone, or re-reading a message differently on a resume — the person's words read ONLY through a reader the app arms (`.time({ reader })`, no default), which returns zone-less PARTS and a verbatim quote (checked: an out-of-text quote is refused and keeps no text); the library resolves every candidate window against the run clock (three date orders, am and pm, both instants of a DST overlap or gap, a day word, a look-back, a range read to the end of its grain; an abbreviation is asked, never mapped); a v1 policy (`dateOrder`, `year`, both `'ask'` by default) removes readings and the removal is recorded; one `time-reading` row per mention (or one `mentions: 0` row), once per message — only a message a person wrote, never a composed run's — with the reader's id, version, kind and locale and the tz database version; a resume or retry reads the row, never the reader; a `kind: 'model'` reader's window is never `said` and waits for the person's confirmation; nothing served to the model | `TimeReader` + `TimeParts` + `TimePolicy` + `TimeCandidate` / `ReadingChoice` + `TimeReadingRow` (`.time({ reader, policy })`) | `src/core/time/resolve.ts` | 9.129.0 |
|
|
59
|
+
| every app re-checking a time answer the person typed into an ask — a window written backwards, a date-time with no offset, `PST` for a zone, a wall time the clocks skip — and re-asking in silence; a `requestInput` field declares a `format` — `'instant'`, `'time-range'` or `'zone'` — (refused unless `type: 'string'`; a malformed choice or supplied value refused at definition) and the resume door judges the answer with the time layer's one judge: a refused one is NOT taken — the same ask returns with `refused: { answer, reason }` and `repeat: { count }`, the field missing again, nothing run; the reason is a catalog sentence the app can reword (`.time({ messages })`), and only a check the app armed produces one (the DST check needs `.time()`'s zone); `labels` per choice, free entry open unless `strict`; over MCP a range travels as two `date-time` elicitation properties | `InputField.format` / `labels` / `strict` + `defaultTimeAskMessages` + `elicitationOf` / `answerFromElicitation` | `src/core/time/ask.ts` | 9.129.0 |
|
|
60
|
+
| a tool whose period is two epoch-millisecond arguments (or a joined range, a date, a look-back in seconds) being sent the person's window in the wrong shape, rounded silently, or overwritten — and every host tool re-parsing its own argument to say what its read covered; the tool DECLARES every shape its period takes (`forms`: `bounds` · `joined` · `object` · `day` · `lookback` with `units`; today's `{ argument, spelling }` is shorthand, plus `accepts`, `wall-range` + `zoneArgument`) and facts about its source (`direction`, `retention`, `maxRange`, `granularity`, `filtersToAsked`, `wallZone`), judged at definition, dispatch and MCP ingest (`_meta.agentfootprint.period`); under `.time()` a period the model left out is filled from the turn's ONE window of the person's (a settled reading, or a UI `time.window`) into the first form that holds it exactly, filed as theirs (`said` + `matched: 'mention'`; a model reader's as a reading; a UI window as `app`); two mentions fill nothing; a sent window is bound by quote or value, or runs as sent and is recorded `model-chosen` (standing "not sure"); one `call-window` row per call; the tool is handed `ctx.time` (`asked`, `zone`, `now`, `dispatchedAt`; over MCP in the call's `_meta.agentfootprint.time`); the tool's facts join the time answer's re-check | `ToolPeriod.forms` / `PeriodForm` / `PeriodFacts` + `ToolExecutionContext.time` (`TimeContext`) + `CallWindowRow` | `src/core/time/convert.ts` | 9.129.0 |
|
|
61
|
+
| a tool whose period cannot hold the person's window exactly being sent a narrower window, a silently wider one, or a window its source cannot hold — a look-back tool asked for "yesterday", a `day` tool asked for two days, a log store asked for tomorrow, a look-back re-read half an hour later after a pause; under `.time()` the fill takes the first exact form, else the first that holds MORE (a whole day; the covering look-back from now, never over `maxRange`) and records it (`call-window` `sent` + `differs.extra`, or `trimmedByTool` under `filtersToAsked`; the note says wider); a window outside `direction`, wholly beyond `retention`, over `maxRange`, spanning days for a `day`-only tool, or a sent wall time the zone skips is REFUSED before dispatch with a past-tense reason naming the declared fact (`how: 'refused'`); a window partly beyond `retention` runs, marked; after drift past the tool's step the library's own look-back fill is redrawn into an absolute form and the model's runs as sent (`call` row `drift`: `redrawn` or `shifted`) | `PeriodFacts` + `convertWidened` + `driftAtDispatch` + `CallWindowRow` + `CallRow.drift` | `src/core/time/` | 9.129.0 |
|
|
55
62
|
| letting the UI draw an artifact without the model naming a component | `registerArtifactComponent` (in the `agentfootprint-lens` package) | — | — |
|
|
56
63
|
| finding which tools the model keeps writing by hand | `agentfootprint.tools.code_run` + `codeShape` | `src/core/codeRunnerTool.ts` | 9.46.0 |
|
|
57
64
|
| a skill wrongly activated by a keyword staying loaded for the whole turn — suspending/parking a map's prompt + tools when its contribution goes unused, WITHOUT touching its cursor, and re-engaging it on evidence | `.maps({ renewalGrace })` (default 3) + `MountedMap.nonParkable` + `advanceEngagement` + `agentfootprint.map.engaged/parked` + skip reason `'parked'` | `src/maps/` | 9.58.0 |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.stageDatasetArtifacts = exports.withDatasetArtifacts = void 0;
|
|
4
4
|
const types_js_1 = require("./types.js");
|
|
5
|
-
const
|
|
5
|
+
const axis_js_1 = require("../core/time/axis.js");
|
|
6
6
|
const projection_js_1 = require("../lib/semantics/projection.js");
|
|
7
7
|
/**
|
|
8
8
|
* Adapt any local, HTTP-backed or MCP Tool using the SAME already-bound execution capability.
|
|
@@ -109,7 +109,7 @@ function assertInputs(datasets) {
|
|
|
109
109
|
// store would come back as a 'store-unavailable' receipt, which is a
|
|
110
110
|
// different fact from "the producer declared something unreadable".
|
|
111
111
|
if (input.timeAxis !== undefined) {
|
|
112
|
-
const issues = (0,
|
|
112
|
+
const issues = (0, axis_js_1.timeAxisIssues)(input.timeAxis);
|
|
113
113
|
if (issues.length > 0) {
|
|
114
114
|
throw new types_js_1.InvalidArtifactError(`Dataset '${entry.key}': ${issues.join(' ')}`);
|
|
115
115
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datasetResult.js","sourceRoot":"","sources":["../../src/artifacts/datasetResult.ts"],"names":[],"mappings":";;;AAGA,yCAAqE;AACrE
|
|
1
|
+
{"version":3,"file":"datasetResult.js","sourceRoot":"","sources":["../../src/artifacts/datasetResult.ts"],"names":[],"mappings":"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"}
|
package/dist/artifacts/index.js
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* this folder for the one-job map and the import direction.
|
|
12
12
|
*/
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.TIME_AXIS_UNITS = exports.TIME_AXIS_AGGREGATES = exports.timeAxisIssues = exports.readTimeAxis = exports.describeTimeAxis = exports.stageDatasetArtifacts = exports.withDatasetArtifacts = exports.placedToolResult = exports.placedResultKind = exports.isPlacedToolResult = exports.assertArtifactPlacement = exports.runArtifactStoreConformance = exports.runArtifactStoreCase = exports.formatArtifactStoreReport = exports.artifactStoreConformance = exports.UnserializableRecordingError = exports.chartWalkPutInput = exports.CHART_WALK_ARTIFACT_KIND = exports.RECORDING_MEDIA_TYPE = exports.RECORDING_ARTIFACT_KIND = exports.recordingPutInput = exports.presentArtifact = exports.PRESENT_TOOL_NAME = exports.wantsNeedsStoreRefusal = exports.resolveToolWants = exports.assertToolWants = exports.unconfiguredArtifacts = exports.bindArtifacts = exports.collectStream = exports.canStreamArtifacts = exports.canPutArtifactStream = exports.canGetArtifactStream = exports.bytesAsStream = exports.assertStreamBytes = exports.gcsArtifacts = exports.s3Artifacts = exports.UnreadableArtifactStoreError = exports.sqliteArtifacts = exports.UnreadableArtifactFileError = exports.fileArtifacts = exports.DEFAULT_IN_MEMORY_ARTIFACT_RETENTION = exports.inMemoryArtifacts = exports.mintArtifactRef = exports.isArtifactRef = exports.ARTIFACT_REF_PREFIX = exports.UnknownParentRefError = exports.InvalidArtifactError = exports.ArtifactIntegrityError = void 0;
|
|
14
|
+
exports.TIME_AXIS_UNITS = exports.TIME_AXIS_AGGREGATES = exports.timeAxisIssues = exports.readTimeAxis = exports.normaliseInstants = exports.describeTimeAxis = exports.stageDatasetArtifacts = exports.withDatasetArtifacts = exports.placedToolResult = exports.placedResultKind = exports.isPlacedToolResult = exports.assertArtifactPlacement = exports.runArtifactStoreConformance = exports.runArtifactStoreCase = exports.formatArtifactStoreReport = exports.artifactStoreConformance = exports.UnserializableRecordingError = exports.chartWalkPutInput = exports.CHART_WALK_ARTIFACT_KIND = exports.RECORDING_MEDIA_TYPE = exports.RECORDING_ARTIFACT_KIND = exports.recordingPutInput = exports.presentArtifact = exports.PRESENT_TOOL_NAME = exports.wantsNeedsStoreRefusal = exports.resolveToolWants = exports.assertToolWants = exports.unconfiguredArtifacts = exports.bindArtifacts = exports.collectStream = exports.canStreamArtifacts = exports.canPutArtifactStream = exports.canGetArtifactStream = exports.bytesAsStream = exports.assertStreamBytes = exports.gcsArtifacts = exports.s3Artifacts = exports.UnreadableArtifactStoreError = exports.sqliteArtifacts = exports.UnreadableArtifactFileError = exports.fileArtifacts = exports.DEFAULT_IN_MEMORY_ARTIFACT_RETENTION = exports.inMemoryArtifacts = exports.mintArtifactRef = exports.isArtifactRef = exports.ARTIFACT_REF_PREFIX = exports.UnknownParentRefError = exports.InvalidArtifactError = exports.ArtifactIntegrityError = void 0;
|
|
15
15
|
var types_js_1 = require("./types.js");
|
|
16
16
|
Object.defineProperty(exports, "ArtifactIntegrityError", { enumerable: true, get: function () { return types_js_1.ArtifactIntegrityError; } });
|
|
17
17
|
Object.defineProperty(exports, "InvalidArtifactError", { enumerable: true, get: function () { return types_js_1.InvalidArtifactError; } });
|
|
@@ -74,11 +74,13 @@ Object.defineProperty(exports, "placedToolResult", { enumerable: true, get: func
|
|
|
74
74
|
var datasetResult_js_1 = require("./datasetResult.js");
|
|
75
75
|
Object.defineProperty(exports, "withDatasetArtifacts", { enumerable: true, get: function () { return datasetResult_js_1.withDatasetArtifacts; } });
|
|
76
76
|
Object.defineProperty(exports, "stageDatasetArtifacts", { enumerable: true, get: function () { return datasetResult_js_1.stageDatasetArtifacts; } });
|
|
77
|
-
// A dataset's declared TIME AXIS — judged at mint, read by consumers.
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
Object.defineProperty(exports, "
|
|
81
|
-
Object.defineProperty(exports, "
|
|
82
|
-
Object.defineProperty(exports, "
|
|
83
|
-
Object.defineProperty(exports, "
|
|
77
|
+
// A dataset's declared TIME AXIS — judged at mint, read by consumers. Owned by
|
|
78
|
+
// the time layer (`core/time/axis.ts`); re-exported here, where datasets live.
|
|
79
|
+
var axis_js_1 = require("../core/time/axis.js");
|
|
80
|
+
Object.defineProperty(exports, "describeTimeAxis", { enumerable: true, get: function () { return axis_js_1.describeTimeAxis; } });
|
|
81
|
+
Object.defineProperty(exports, "normaliseInstants", { enumerable: true, get: function () { return axis_js_1.normaliseInstants; } });
|
|
82
|
+
Object.defineProperty(exports, "readTimeAxis", { enumerable: true, get: function () { return axis_js_1.readTimeAxis; } });
|
|
83
|
+
Object.defineProperty(exports, "timeAxisIssues", { enumerable: true, get: function () { return axis_js_1.timeAxisIssues; } });
|
|
84
|
+
Object.defineProperty(exports, "TIME_AXIS_AGGREGATES", { enumerable: true, get: function () { return axis_js_1.TIME_AXIS_AGGREGATES; } });
|
|
85
|
+
Object.defineProperty(exports, "TIME_AXIS_UNITS", { enumerable: true, get: function () { return axis_js_1.TIME_AXIS_UNITS; } });
|
|
84
86
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/artifacts/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAEH,uCAkBoB;AAjBlB,kHAAA,sBAAsB,OAAA;AACtB,gHAAA,oBAAoB,OAAA;AACpB,iHAAA,qBAAqB,OAAA;AAgBvB,yCAAkF;AAAzE,gHAAA,mBAAmB,OAAA;AAAE,0GAAA,aAAa,OAAA;AAAE,4GAAA,eAAe,OAAA;AAE5D,+DAKgC;AAJ9B,yHAAA,iBAAiB,OAAA;AACjB,4IAAA,oCAAoC,OAAA;AAItC,uDAI4B;AAH1B,iHAAA,aAAa,OAAA;AACb,+HAAA,2BAA2B,OAAA;AAG7B,2DAK8B;AAJ5B,qHAAA,eAAe,OAAA;AACf,kIAAA,4BAA4B,OAAA;AAI9B,mDAAwE;AAA/D,6GAAA,WAAW,OAAA;AACpB,qDAA2E;AAAlE,+GAAA,YAAY,OAAA;AACrB,+CAUwB;AATtB,iHAAA,iBAAiB,OAAA;AACjB,6GAAA,aAAa,OAAA;AACb,oHAAA,oBAAoB,OAAA;AACpB,oHAAA,oBAAoB,OAAA;AACpB,kHAAA,kBAAkB,OAAA;AAClB,6GAAA,aAAa,OAAA;AAKf,iDAUyB;AATvB,8GAAA,aAAa,OAAA;AACb,sHAAA,qBAAqB,OAAA;AASvB,uCAOoB;AANlB,2GAAA,eAAe,OAAA;AACf,4GAAA,gBAAgB,OAAA;AAChB,kHAAA,sBAAsB,OAAA;AAKxB,2CAMsB;AALpB,+GAAA,iBAAiB,OAAA;AACjB,6GAAA,eAAe,OAAA;AAKjB,+DASgC;AAR9B,yHAAA,iBAAiB,OAAA;AACjB,+HAAA,uBAAuB,OAAA;AACvB,4HAAA,oBAAoB,OAAA;AACpB,gIAAA,wBAAwB,OAAA;AACxB,yHAAA,iBAAiB,OAAA;AACjB,oIAAA,4BAA4B,OAAA;AAI9B,4EAA4E;AAC5E,+EAA+E;AAC/E,6EAA6E;AAC7E,mCAAmC;AACnC,mDAagC;AAZ9B,oHAAA,wBAAwB,OAAA;AACxB,qHAAA,yBAAyB,OAAA;AACzB,gHAAA,oBAAoB,OAAA;AACpB,uHAAA,2BAA2B,OAAA;AAU7B,+CAOwB;AANtB,uHAAA,uBAAuB,OAAA;AACvB,kHAAA,kBAAkB,OAAA;AAClB,gHAAA,gBAAgB,OAAA;AAChB,gHAAA,gBAAgB,OAAA;AAIlB,uDAQ4B;AAP1B,wHAAA,oBAAoB,OAAA;AACpB,yHAAA,qBAAqB,OAAA;AAOvB
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/artifacts/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAEH,uCAkBoB;AAjBlB,kHAAA,sBAAsB,OAAA;AACtB,gHAAA,oBAAoB,OAAA;AACpB,iHAAA,qBAAqB,OAAA;AAgBvB,yCAAkF;AAAzE,gHAAA,mBAAmB,OAAA;AAAE,0GAAA,aAAa,OAAA;AAAE,4GAAA,eAAe,OAAA;AAE5D,+DAKgC;AAJ9B,yHAAA,iBAAiB,OAAA;AACjB,4IAAA,oCAAoC,OAAA;AAItC,uDAI4B;AAH1B,iHAAA,aAAa,OAAA;AACb,+HAAA,2BAA2B,OAAA;AAG7B,2DAK8B;AAJ5B,qHAAA,eAAe,OAAA;AACf,kIAAA,4BAA4B,OAAA;AAI9B,mDAAwE;AAA/D,6GAAA,WAAW,OAAA;AACpB,qDAA2E;AAAlE,+GAAA,YAAY,OAAA;AACrB,+CAUwB;AATtB,iHAAA,iBAAiB,OAAA;AACjB,6GAAA,aAAa,OAAA;AACb,oHAAA,oBAAoB,OAAA;AACpB,oHAAA,oBAAoB,OAAA;AACpB,kHAAA,kBAAkB,OAAA;AAClB,6GAAA,aAAa,OAAA;AAKf,iDAUyB;AATvB,8GAAA,aAAa,OAAA;AACb,sHAAA,qBAAqB,OAAA;AASvB,uCAOoB;AANlB,2GAAA,eAAe,OAAA;AACf,4GAAA,gBAAgB,OAAA;AAChB,kHAAA,sBAAsB,OAAA;AAKxB,2CAMsB;AALpB,+GAAA,iBAAiB,OAAA;AACjB,6GAAA,eAAe,OAAA;AAKjB,+DASgC;AAR9B,yHAAA,iBAAiB,OAAA;AACjB,+HAAA,uBAAuB,OAAA;AACvB,4HAAA,oBAAoB,OAAA;AACpB,gIAAA,wBAAwB,OAAA;AACxB,yHAAA,iBAAiB,OAAA;AACjB,oIAAA,4BAA4B,OAAA;AAI9B,4EAA4E;AAC5E,+EAA+E;AAC/E,6EAA6E;AAC7E,mCAAmC;AACnC,mDAagC;AAZ9B,oHAAA,wBAAwB,OAAA;AACxB,qHAAA,yBAAyB,OAAA;AACzB,gHAAA,oBAAoB,OAAA;AACpB,uHAAA,2BAA2B,OAAA;AAU7B,+CAOwB;AANtB,uHAAA,uBAAuB,OAAA;AACvB,kHAAA,kBAAkB,OAAA;AAClB,gHAAA,gBAAgB,OAAA;AAChB,gHAAA,gBAAgB,OAAA;AAIlB,uDAQ4B;AAP1B,wHAAA,oBAAoB,OAAA;AACpB,yHAAA,qBAAqB,OAAA;AAOvB,+EAA+E;AAC/E,+EAA+E;AAC/E,gDAkB8B;AAjB5B,2GAAA,gBAAgB,OAAA;AAChB,4GAAA,iBAAiB,OAAA;AACjB,uGAAA,YAAY,OAAA;AACZ,yGAAA,cAAc,OAAA;AACd,+GAAA,oBAAoB,OAAA;AACpB,0GAAA,eAAe,OAAA"}
|
|
@@ -15,7 +15,7 @@ exports.prepareArtifact = void 0;
|
|
|
15
15
|
const naming_js_1 = require("./naming.js");
|
|
16
16
|
const payload_js_1 = require("./payload.js");
|
|
17
17
|
const retention_js_1 = require("./retention.js");
|
|
18
|
-
const
|
|
18
|
+
const axis_js_1 = require("../core/time/axis.js");
|
|
19
19
|
const types_js_1 = require("./types.js");
|
|
20
20
|
/**
|
|
21
21
|
* Validate a put and build the meta it mints.
|
|
@@ -49,7 +49,7 @@ async function prepareArtifact(input, resolveParent, retention, now) {
|
|
|
49
49
|
// A declared time axis is judged, never repaired: a ticket whose
|
|
50
50
|
// description the store had "fixed" would carry a promise nobody made.
|
|
51
51
|
if (input.timeAxis !== undefined) {
|
|
52
|
-
const issues = (0,
|
|
52
|
+
const issues = (0, axis_js_1.timeAxisIssues)(input.timeAxis);
|
|
53
53
|
if (issues.length > 0)
|
|
54
54
|
throw new types_js_1.InvalidArtifactError(issues.join(' '));
|
|
55
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minting.js","sourceRoot":"","sources":["../../src/artifacts/minting.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAEH,2CAA6D;AAC7D,6CAA2E;AAC3E,iDAA0E;AAC1E
|
|
1
|
+
{"version":3,"file":"minting.js","sourceRoot":"","sources":["../../src/artifacts/minting.ts"],"names":[],"mappings":"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"}
|
package/dist/core/Agent.js
CHANGED
|
@@ -153,6 +153,8 @@ const conversation_js_1 = require("./conversation.js");
|
|
|
153
153
|
const inputRequest_js_1 = require("./inputRequest.js");
|
|
154
154
|
const outputSchema_js_1 = require("./outputSchema.js");
|
|
155
155
|
const runInput_js_1 = require("./runInput.js");
|
|
156
|
+
const rows_js_1 = require("./time/rows.js");
|
|
157
|
+
const clock_js_1 = require("./time/clock.js");
|
|
156
158
|
const outputRetry_js_1 = require("./agent/stages/outputRetry.js");
|
|
157
159
|
const RunnerBase_js_1 = require("./RunnerBase.js");
|
|
158
160
|
const validators_js_1 = require("./agent/validators.js");
|
|
@@ -365,6 +367,20 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
365
367
|
* ask, and that undefined is the whole zero-cost guarantee: no stage, no
|
|
366
368
|
* witness row, no stamp, no event, no bridge. */
|
|
367
369
|
answerLayerOption;
|
|
370
|
+
/** `.time()` (the time layer, `core/time/`): the fallback zone, as read.
|
|
371
|
+
* Undefined on every agent that did not ask — then no clock is read, no
|
|
372
|
+
* time row is filed and `time` on a run is refused. */
|
|
373
|
+
timeOptions;
|
|
374
|
+
/** The clock the CURRENT `run()`'s seed stamps — set by `run()` (refusing a
|
|
375
|
+
* run with no zone), read by seed through `SeedStageDeps.timeClock`, and
|
|
376
|
+
* cleared when `run()` ends, so a later turn this agent did not start (its
|
|
377
|
+
* chart mounted in a composition) never stamps a clock nobody declared for
|
|
378
|
+
* it (`seedClockDraft`). */
|
|
379
|
+
runClockDraft;
|
|
380
|
+
/** The `time` the CURRENT resume passed, as read — TAKEN once by the first
|
|
381
|
+
* ToolCalls pass of the resumed leg (`ToolCallsHandlerDeps.time`), and
|
|
382
|
+
* cleared when `run()` or `resume()` ends. */
|
|
383
|
+
resumePassedTime;
|
|
368
384
|
/** Tool choice by classifier (9.105.0, `.toolChoice()`): the classifier,
|
|
369
385
|
* the serve dial and the app's own doors. Threaded to the tools slot (the
|
|
370
386
|
* pick and the narrowing), to call-llm (`toolChoice: true`, the outcome
|
|
@@ -804,6 +820,18 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
804
820
|
else if (typeof opts.answerLayer === 'object' && opts.answerLayer !== null) {
|
|
805
821
|
this.answerLayerOption = opts.answerLayer.standingLine === true ? { standingLine: true } : {};
|
|
806
822
|
}
|
|
823
|
+
// The time layer's door (`.time()` / `AgentOptions.time`): `true` or the
|
|
824
|
+
// options, read once; a malformed zone is refused here, at build.
|
|
825
|
+
if (opts.time !== undefined) {
|
|
826
|
+
const read = (0, clock_js_1.readTimeOptions)(opts.time === true ? undefined : opts.time);
|
|
827
|
+
if ('problem' in read)
|
|
828
|
+
throw new Error(`Agent: time ${read.problem}.`);
|
|
829
|
+
this.timeOptions = read.value;
|
|
830
|
+
// The reader reads only a person's message — a composition hands the
|
|
831
|
+
// `messageFrom: 'composed'` marker only to a runner that reads it.
|
|
832
|
+
if (read.value.reader !== undefined)
|
|
833
|
+
(0, messageFrom_js_1.readsMessageFrom)(this);
|
|
834
|
+
}
|
|
807
835
|
if (opts.findings?.argumentSources === true || inputsLayer?.argumentSources === true) {
|
|
808
836
|
this.argumentSourcesArmed = true;
|
|
809
837
|
// Declared sources read `AgentInput.messageFrom` — a composition hands
|
|
@@ -1493,6 +1521,10 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
1493
1521
|
// not at the resume of a pause it would have made impossible to resume.
|
|
1494
1522
|
(0, callerIdentity_js_1.assertIdentityShape)(runInput.identity, 'Agent.run');
|
|
1495
1523
|
(0, callerIdentity_js_1.assertIdentityShape)(options?.identity, 'Agent.run');
|
|
1524
|
+
// The run's clock (the time layer): read or refused HERE, before the turn
|
|
1525
|
+
// starts — a run with no zone anywhere never runs on the server's zone.
|
|
1526
|
+
const clockDraft = this.clockDraftFor(runInput.time ?? options?.time, 'Agent.run');
|
|
1527
|
+
const engineOptions = withoutTime(options);
|
|
1496
1528
|
// Timing next, and before the executor exists: both of these refuse a call
|
|
1497
1529
|
// that would have SUCCEEDED into corrupted per-instance state or an
|
|
1498
1530
|
// orphaned human question. See ./conversation.ts for why they are throws.
|
|
@@ -1524,7 +1556,8 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
1524
1556
|
// (helper used in the catch block below — module-private function
|
|
1525
1557
|
// declared at file end via hoisting)
|
|
1526
1558
|
this.answeredAsk = undefined;
|
|
1527
|
-
|
|
1559
|
+
this.resumePassedTime = undefined;
|
|
1560
|
+
const executor = this.createExecutor(engineOptions);
|
|
1528
1561
|
this.inFlightRunId = this.currentRunContext.runId;
|
|
1529
1562
|
// One disposition ledger per run (9.60.0) — registration mirrors what
|
|
1530
1563
|
// this agent's configuration makes applicable; dev posture runs the
|
|
@@ -1549,22 +1582,28 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
1549
1582
|
this.lastRunAnswer = undefined;
|
|
1550
1583
|
// One run can never raise on another run's consent block.
|
|
1551
1584
|
this.consentOutstanding.clear();
|
|
1585
|
+
// Set here, beside the `try` whose `finally` clears it, so no exit path
|
|
1586
|
+
// can leave it behind for a turn this `run()` did not start.
|
|
1587
|
+
this.runClockDraft = clockDraft;
|
|
1552
1588
|
try {
|
|
1553
1589
|
const result = await executor.run({
|
|
1554
1590
|
input: {
|
|
1555
1591
|
message: runInput.message,
|
|
1556
1592
|
...(this.lastRunIdentity !== undefined && { identity: this.lastRunIdentity }),
|
|
1557
1593
|
// A composed message reaches seed only on an agent that reads it
|
|
1558
|
-
// (declared sources) — every other run's
|
|
1594
|
+
// (declared sources, or the time layer's reader) — every other run's
|
|
1595
|
+
// input is the bytes it was.
|
|
1559
1596
|
...(messageFrom === 'composed' &&
|
|
1560
|
-
this.argumentSourcesArmed === true
|
|
1597
|
+
(this.argumentSourcesArmed === true || this.timeOptions?.reader !== undefined) && {
|
|
1598
|
+
messageFrom: 'composed',
|
|
1599
|
+
}),
|
|
1561
1600
|
},
|
|
1562
1601
|
// Co-engineered boundary (#16): the engine's loop-iteration limit
|
|
1563
1602
|
// (footprintjs 9 default 1000) must never fire BELOW the agent's own
|
|
1564
1603
|
// budget — give it headroom (×2 + 10 covers double-hop loop shapes).
|
|
1565
1604
|
// Consumer-provided options win.
|
|
1566
1605
|
maxIterations: this.maxIterations * 2 + 10,
|
|
1567
|
-
...(
|
|
1606
|
+
...(engineOptions ?? {}),
|
|
1568
1607
|
});
|
|
1569
1608
|
const finalized = this.finalizeResult(executor, result);
|
|
1570
1609
|
if (typeof finalized === 'string')
|
|
@@ -1658,6 +1697,11 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
1658
1697
|
throw cause;
|
|
1659
1698
|
}
|
|
1660
1699
|
finally {
|
|
1700
|
+
// The time layer's per-run inputs end with the run: a stale draft would
|
|
1701
|
+
// be stamped by the next seed this agent did not start (a composition
|
|
1702
|
+
// mounting its chart) as if the app had declared it.
|
|
1703
|
+
this.runClockDraft = undefined;
|
|
1704
|
+
this.resumePassedTime = undefined;
|
|
1661
1705
|
// The run's disposition rows, on EVERY path — success, failure, pause —
|
|
1662
1706
|
// and BEFORE the recording stops, so a recording carries its run's
|
|
1663
1707
|
// checker accounting (9.60.0).
|
|
@@ -1841,6 +1885,79 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
1841
1885
|
identityFor(options, cp) {
|
|
1842
1886
|
return options?.identity ?? cp.identity;
|
|
1843
1887
|
}
|
|
1888
|
+
/**
|
|
1889
|
+
* A run's `time`, read into the turn's clock draft (the time layer) — or
|
|
1890
|
+
* refused, before the turn starts: `time` on an agent without `.time()`, a
|
|
1891
|
+
* malformed value, or no zone anywhere (the run's, else the builder's).
|
|
1892
|
+
* `undefined` on an agent without the layer.
|
|
1893
|
+
*
|
|
1894
|
+
* @internal
|
|
1895
|
+
*/
|
|
1896
|
+
clockDraftFor(time, runner) {
|
|
1897
|
+
const passed = this.passedTimeFor(time, runner);
|
|
1898
|
+
if (this.timeOptions === undefined)
|
|
1899
|
+
return undefined;
|
|
1900
|
+
const draft = (0, clock_js_1.draftClock)(passed, this.timeOptions);
|
|
1901
|
+
if (draft === 'no-zone') {
|
|
1902
|
+
throw new runInput_js_1.InvalidRunInputError({
|
|
1903
|
+
runner,
|
|
1904
|
+
received: 'a run with no time zone',
|
|
1905
|
+
hint: "this agent's time layer needs the person's zone — pass run({ message, time: { zone: " +
|
|
1906
|
+
"'America/Los_Angeles' } }) or declare a fallback with .time({ zone }); the server's " +
|
|
1907
|
+
'zone is never used',
|
|
1908
|
+
});
|
|
1909
|
+
}
|
|
1910
|
+
return draft;
|
|
1911
|
+
}
|
|
1912
|
+
/**
|
|
1913
|
+
* The clock draft seed stamps (the time layer): the one `run()` read — or,
|
|
1914
|
+
* for a turn this agent's `run()` did not start (its chart mounted in a
|
|
1915
|
+
* composition, which passes no `time`), the builder's fallback zone with
|
|
1916
|
+
* the turn's start as `now` (`zoneSource: 'builder'`, `nowSource:
|
|
1917
|
+
* 'default'` — the same record a `run()` with no `time` files). With no
|
|
1918
|
+
* fallback zone that turn is refused, as `run()` refuses it: the server's
|
|
1919
|
+
* zone is never used.
|
|
1920
|
+
*
|
|
1921
|
+
* @internal
|
|
1922
|
+
*/
|
|
1923
|
+
seedClockDraft() {
|
|
1924
|
+
if (this.runClockDraft !== undefined)
|
|
1925
|
+
return this.runClockDraft;
|
|
1926
|
+
const draft = (0, clock_js_1.draftClock)(undefined, this.timeOptions ?? {});
|
|
1927
|
+
if (draft === 'no-zone') {
|
|
1928
|
+
throw new runInput_js_1.InvalidRunInputError({
|
|
1929
|
+
runner: 'Agent (mounted in a composition)',
|
|
1930
|
+
received: 'a turn with no time zone',
|
|
1931
|
+
hint: "this agent's time layer needs the person's zone, and a composition passes no time to " +
|
|
1932
|
+
"the agents it mounts — declare a fallback with .time({ zone: 'America/Los_Angeles' }); " +
|
|
1933
|
+
"the server's zone is never used",
|
|
1934
|
+
});
|
|
1935
|
+
}
|
|
1936
|
+
return draft;
|
|
1937
|
+
}
|
|
1938
|
+
/**
|
|
1939
|
+
* A `time` passed to a run or a resume, read — or refused by name: passed to
|
|
1940
|
+
* an agent without `.time()` (a door that ignored it would look configured
|
|
1941
|
+
* and do nothing), or malformed.
|
|
1942
|
+
*
|
|
1943
|
+
* @internal
|
|
1944
|
+
*/
|
|
1945
|
+
passedTimeFor(time, runner) {
|
|
1946
|
+
if (time === undefined)
|
|
1947
|
+
return undefined;
|
|
1948
|
+
if (this.timeOptions === undefined) {
|
|
1949
|
+
throw new runInput_js_1.InvalidRunInputError({
|
|
1950
|
+
runner,
|
|
1951
|
+
received: 'time',
|
|
1952
|
+
hint: 'this agent reads no clock — arm the time layer with .time() to pass time',
|
|
1953
|
+
});
|
|
1954
|
+
}
|
|
1955
|
+
const read = (0, clock_js_1.readRunTime)(time);
|
|
1956
|
+
if ('problem' in read) {
|
|
1957
|
+
throw new runInput_js_1.InvalidRunInputError({ runner, received: 'a malformed time', hint: read.problem });
|
|
1958
|
+
}
|
|
1959
|
+
return read.value;
|
|
1960
|
+
}
|
|
1844
1961
|
/**
|
|
1845
1962
|
* Install a per-run checkpoint tracker. Listens for the agent's
|
|
1846
1963
|
* own iteration_end events on `this.dispatcher` and snapshots the
|
|
@@ -1936,6 +2053,11 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
1936
2053
|
// answer is a value (often a string) and must stay accepted, so the only
|
|
1937
2054
|
// sound question is "what was asked?".
|
|
1938
2055
|
(0, callerIdentity_js_1.assertIdentityShape)(options?.identity, 'Agent.resume');
|
|
2056
|
+
// A resume's `time` (the time layer) is read or refused before anything
|
|
2057
|
+
// moves; it is never applied — the paused turn's clock is kept, and a
|
|
2058
|
+
// differing value is recorded by the ToolCalls resume door.
|
|
2059
|
+
const passedTime = this.passedTimeFor(options?.time, 'Agent.resume');
|
|
2060
|
+
options = withoutTime(options);
|
|
1939
2061
|
const gate = (0, pause_js_1.pauseDemandsDecision)(checkpoint.pauseData);
|
|
1940
2062
|
if (gate && !(0, checkin_js_1.isCheckInDecision)(input))
|
|
1941
2063
|
throw new pause_js_1.DecisionRequiredError(gate, input);
|
|
@@ -1967,7 +2089,7 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
1967
2089
|
let answeredAsk;
|
|
1968
2090
|
if (awaitingInput !== undefined) {
|
|
1969
2091
|
this.assertNotRunning('Agent.resume');
|
|
1970
|
-
const answered = (0, inputRequest_js_1.applyInputResponse)(awaitingInput, input);
|
|
2092
|
+
const answered = (0, inputRequest_js_1.applyInputResponse)(awaitingInput, input, this.timeAnswerContextOf(checkpoint.sharedState));
|
|
1971
2093
|
if ('cancel' in answered) {
|
|
1972
2094
|
throw new TypeError('[input request] Cancel a hosted request through its host, or abandonPause() before starting another run.');
|
|
1973
2095
|
}
|
|
@@ -2048,6 +2170,8 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
2048
2170
|
this.lastRunAnswer = undefined;
|
|
2049
2171
|
// One run can never raise on another run's consent block.
|
|
2050
2172
|
this.consentOutstanding.clear();
|
|
2173
|
+
// Beside the `try` whose `finally` clears it (the fresh-run path's terms).
|
|
2174
|
+
this.resumePassedTime = passedTime;
|
|
2051
2175
|
try {
|
|
2052
2176
|
const result = await executor.resume(checkpoint, input, resumeOptions);
|
|
2053
2177
|
const finalized = this.finalizeResult(executor, result);
|
|
@@ -2067,6 +2191,8 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
2067
2191
|
throw cause;
|
|
2068
2192
|
}
|
|
2069
2193
|
finally {
|
|
2194
|
+
// A resume's passed `time` ends with the resume (the fresh-run path's terms).
|
|
2195
|
+
this.resumePassedTime = undefined;
|
|
2070
2196
|
// Same terms as the fresh-run path: rows on every exit, before the
|
|
2071
2197
|
// recording stops (9.60.0).
|
|
2072
2198
|
this.fileIntegrityDisposition();
|
|
@@ -2242,6 +2368,26 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
2242
2368
|
return undefined;
|
|
2243
2369
|
return structuredClone(spans);
|
|
2244
2370
|
}
|
|
2371
|
+
/**
|
|
2372
|
+
* What the resume door checks a time field's answer with (the time design
|
|
2373
|
+
* § 6.2, step T4): the paused turn's clock zone — the kept `clock` row, so
|
|
2374
|
+
* a resume that passes another `time` changes nothing — and the app's
|
|
2375
|
+
* catalog overrides. `undefined` without `.time()`: a `format` field is
|
|
2376
|
+
* then judged for shape, order and offset only, in the default words.
|
|
2377
|
+
*
|
|
2378
|
+
* @internal
|
|
2379
|
+
*/
|
|
2380
|
+
timeAnswerContextOf(state) {
|
|
2381
|
+
if (this.timeOptions === undefined)
|
|
2382
|
+
return undefined;
|
|
2383
|
+
const ledger = state?.findingsLedger;
|
|
2384
|
+
const zone = (0, rows_js_1.clockOf)(Array.isArray(ledger) ? ledger : undefined)?.zone;
|
|
2385
|
+
const messages = this.timeOptions.messages;
|
|
2386
|
+
return {
|
|
2387
|
+
...(zone !== undefined && { zone }),
|
|
2388
|
+
...(messages !== undefined && { messages }),
|
|
2389
|
+
};
|
|
2390
|
+
}
|
|
2245
2391
|
/**
|
|
2246
2392
|
* The findings ledger for a checkpoint (9.101.0) — `foldedSpansOf`'s twin:
|
|
2247
2393
|
* one reader for `checkpoint()` and the crash carrier, `undefined` when the
|
|
@@ -3683,6 +3829,16 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
3683
3829
|
get honestyLayers() {
|
|
3684
3830
|
return seededHonestyLayers;
|
|
3685
3831
|
},
|
|
3832
|
+
// The time layer's clock: the draft `run()` read (refusing a run with no
|
|
3833
|
+
// zone), stamped by seed as the turn's one `clock` row. Absent → the
|
|
3834
|
+
// deps object seed always had.
|
|
3835
|
+
...(this.timeOptions !== undefined && { timeClock: () => this.seedClockDraft() }),
|
|
3836
|
+
// The time layer's reader: seed reads the person's words once per turn,
|
|
3837
|
+
// after the clock. Absent → nothing is read.
|
|
3838
|
+
...(this.timeOptions?.reader !== undefined &&
|
|
3839
|
+
this.timeOptions.policy !== undefined && {
|
|
3840
|
+
timeReader: { reader: this.timeOptions.reader, policy: this.timeOptions.policy },
|
|
3841
|
+
}),
|
|
3686
3842
|
// Declared sources (honesty layer 2): the seed twin plants `_findings.from`
|
|
3687
3843
|
// on ruled tools, and the run's `messageFrom` constant is written — only
|
|
3688
3844
|
// under the arm (refused at build without the inputs layer).
|
|
@@ -3937,6 +4093,10 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
3937
4093
|
});
|
|
3938
4094
|
ledgerRestoreArmed = true;
|
|
3939
4095
|
}
|
|
4096
|
+
// The time layer's rows ride the same ledger: a continued conversation
|
|
4097
|
+
// keeps its earlier turns' clocks (each turn files its own).
|
|
4098
|
+
if (this.timeOptions !== undefined)
|
|
4099
|
+
ledgerRestoreArmed = true;
|
|
3940
4100
|
// The gate's admissible set, for the record (9.50.0): declared hops from
|
|
3941
4101
|
// the cursor plus the open skills — the SAME two resolvers the read_skill
|
|
3942
4102
|
// offer and the refusal messages are built from (`readSkillOfferFor`),
|
|
@@ -4552,6 +4712,18 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
4552
4712
|
// never allocates it.
|
|
4553
4713
|
currentRun: () => this.toolRunFacts(),
|
|
4554
4714
|
answeredAsk: () => this.answeredAsk,
|
|
4715
|
+
// The time layer: each dispatched call files its `call` row, and the
|
|
4716
|
+
// resume door compares a resume's passed `time` with the kept clock.
|
|
4717
|
+
...(this.timeOptions !== undefined && {
|
|
4718
|
+
time: {
|
|
4719
|
+
takePassedOnResume: () => {
|
|
4720
|
+
const passed = this.resumePassedTime;
|
|
4721
|
+
this.resumePassedTime = undefined;
|
|
4722
|
+
return passed;
|
|
4723
|
+
},
|
|
4724
|
+
...(this.timeOptions.zone !== undefined && { appZone: this.timeOptions.zone }),
|
|
4725
|
+
},
|
|
4726
|
+
}),
|
|
4555
4727
|
emitForRun: (type, payload, runContext) => this.emitLateFact(type, payload, runContext),
|
|
4556
4728
|
toolSessions: () => this.toolSessions(),
|
|
4557
4729
|
// 8.6.0 — what a run does when a declared credential needs 3LO consent.
|
|
@@ -4643,6 +4815,13 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
4643
4815
|
inputsLayer: {
|
|
4644
4816
|
toolOf: (toolName) => resolveForLayer(toolName).tool,
|
|
4645
4817
|
...(this.toolMiddleware.length > 0 && { rewrites: true }),
|
|
4818
|
+
// The time layer (step T5a): a tool whose period declares forms is filled from the
|
|
4819
|
+
// turn's one window, bound to the person's window, or recorded as the model's.
|
|
4820
|
+
...(this.timeOptions !== undefined && {
|
|
4821
|
+
time: {
|
|
4822
|
+
...(this.timeOptions.zone !== undefined && { appZone: this.timeOptions.zone }),
|
|
4823
|
+
},
|
|
4824
|
+
}),
|
|
4646
4825
|
// Declared sources: the layer reads `_findings.from` and checks it against
|
|
4647
4826
|
// the corpora the mount hands in — the app's `externalGrounds` among them.
|
|
4648
4827
|
...(argumentSources && {
|
|
@@ -4703,6 +4882,9 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
4703
4882
|
// gets the stage that appends nothing and carries the limits as data.
|
|
4704
4883
|
...(this.limitsTravelWithTheAnswerValue && !limitsAsData && { attachCoverageLimits: true }),
|
|
4705
4884
|
...(limitsAsData && { coverageLimitsAsData: true }),
|
|
4885
|
+
// The time layer: the prose limits block renders its `Period:` lines in
|
|
4886
|
+
// the run's clock zone. Absent → the final stage it always mounted.
|
|
4887
|
+
...(this.timeOptions !== undefined && { timeLayer: true }),
|
|
4706
4888
|
...(this.answerValidationConfig !== undefined && { hasAnswerValidation: true }),
|
|
4707
4889
|
// The out-of-budget wrap-up branch (9.56.0) — the conditional-mount law
|
|
4708
4890
|
// above, decided once beside the Route decider that routes to it so the
|
|
@@ -4766,4 +4948,16 @@ function boundInsertionOrder(held, max) {
|
|
|
4766
4948
|
held.delete(oldest.value);
|
|
4767
4949
|
}
|
|
4768
4950
|
}
|
|
4951
|
+
/**
|
|
4952
|
+
* The run options without the time layer's `time` — what the engine is handed.
|
|
4953
|
+
* The SAME object when it carries no `time` key, so a run that passed none
|
|
4954
|
+
* hands the executor exactly the options it always did.
|
|
4955
|
+
*/
|
|
4956
|
+
function withoutTime(options) {
|
|
4957
|
+
if (options === undefined || !('time' in options))
|
|
4958
|
+
return options;
|
|
4959
|
+
const { time: _time, ...rest } = options;
|
|
4960
|
+
void _time;
|
|
4961
|
+
return rest;
|
|
4962
|
+
}
|
|
4769
4963
|
//# sourceMappingURL=Agent.js.map
|