agentfootprint 9.128.1 → 9.131.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 +13 -1
- package/dist/adapters/llm/AnthropicProvider.js +10 -111
- package/dist/adapters/llm/AnthropicProvider.js.map +1 -1
- package/dist/adapters/llm/BedrockProvider.js +11 -4
- package/dist/adapters/llm/BedrockProvider.js.map +1 -1
- package/dist/adapters/llm/InvokeModelGatewayProvider.js +167 -35
- package/dist/adapters/llm/InvokeModelGatewayProvider.js.map +1 -1
- package/dist/adapters/llm/OpenAIProvider.js +5 -0
- package/dist/adapters/llm/OpenAIProvider.js.map +1 -1
- package/dist/adapters/llm/anthropicMessagesWire.js +20 -6
- package/dist/adapters/llm/anthropicMessagesWire.js.map +1 -1
- package/dist/adapters/llm/retryAfter.js +61 -0
- package/dist/adapters/llm/retryAfter.js.map +1 -0
- package/dist/adapters/types.js.map +1 -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 +229 -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 +356 -14
- 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 +25 -1
- package/dist/core/agent/arguments/dispatch.js.map +1 -1
- package/dist/core/agent/arguments/resolve.js +239 -6
- package/dist/core/agent/arguments/resolve.js.map +1 -1
- package/dist/core/agent/arguments/rows.js +37 -2
- package/dist/core/agent/arguments/rows.js.map +1 -1
- package/dist/core/agent/arguments/serve.js +332 -4
- package/dist/core/agent/arguments/serve.js.map +1 -1
- package/dist/core/agent/arguments/subflow.js +46 -7
- package/dist/core/agent/arguments/subflow.js.map +1 -1
- package/dist/core/agent/assessment/assess.js +45 -6
- package/dist/core/agent/assessment/assess.js.map +1 -1
- package/dist/core/agent/assessment/compose.js +3 -0
- package/dist/core/agent/assessment/compose.js.map +1 -1
- package/dist/core/agent/assessment/reasons.js +18 -0
- package/dist/core/agent/assessment/reasons.js.map +1 -1
- package/dist/core/agent/buildAgentChart.js +31 -1
- package/dist/core/agent/buildAgentChart.js.map +1 -1
- package/dist/core/agent/buildDynamicAgentChart.js +9 -0
- package/dist/core/agent/buildDynamicAgentChart.js.map +1 -1
- package/dist/core/agent/coverage/answer.js +24 -7
- package/dist/core/agent/coverage/answer.js.map +1 -1
- package/dist/core/agent/coverage/period.js +110 -69
- package/dist/core/agent/coverage/period.js.map +1 -1
- package/dist/core/agent/coverage/timeLimitFacts.js +70 -0
- package/dist/core/agent/coverage/timeLimitFacts.js.map +1 -0
- package/dist/core/agent/coverage/timeLimits.js +72 -0
- package/dist/core/agent/coverage/timeLimits.js.map +1 -0
- package/dist/core/agent/evidence/evidenceIndex.js +48 -7
- package/dist/core/agent/evidence/evidenceIndex.js.map +1 -1
- package/dist/core/agent/evidence/gate.js +9 -4
- package/dist/core/agent/evidence/gate.js.map +1 -1
- package/dist/core/agent/evidence/normalize.js +1 -105
- package/dist/core/agent/evidence/normalize.js.map +1 -1
- package/dist/core/agent/findings/ledger.js +14 -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 +105 -4
- package/dist/core/agent/honesty/mounts.js.map +1 -1
- package/dist/core/agent/results/subflow.js +43 -11
- package/dist/core/agent/results/subflow.js.map +1 -1
- package/dist/core/agent/stages/argumentAsk.js +85 -6
- package/dist/core/agent/stages/argumentAsk.js.map +1 -1
- package/dist/core/agent/stages/callLLM.js +16 -0
- package/dist/core/agent/stages/callLLM.js.map +1 -1
- package/dist/core/agent/stages/prepareFinal.js +61 -8
- package/dist/core/agent/stages/prepareFinal.js.map +1 -1
- package/dist/core/agent/stages/route.js +64 -6
- package/dist/core/agent/stages/route.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/timeLineage.js +61 -0
- package/dist/core/agent/stages/timeLineage.js.map +1 -0
- package/dist/core/agent/stages/toolCalls.js +70 -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 +17 -2
- package/dist/core/runCheckpoint.js.map +1 -1
- package/dist/core/slots/buildToolsSlot.js +30 -2
- package/dist/core/slots/buildToolsSlot.js.map +1 -1
- package/dist/core/time/ask.js +239 -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 +235 -0
- package/dist/core/time/bind.js.map +1 -0
- package/dist/core/time/check.js +261 -0
- package/dist/core/time/check.js.map +1 -0
- package/dist/core/time/checkRecord.js +97 -0
- package/dist/core/time/checkRecord.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 +634 -0
- package/dist/core/time/convert.js.map +1 -0
- package/dist/core/time/drift.js +96 -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/forms.js +273 -0
- package/dist/core/time/forms.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 +312 -0
- package/dist/core/time/present.js.map +1 -0
- package/dist/core/time/range.js +267 -0
- package/dist/core/time/range.js.map +1 -0
- package/dist/core/time/reader.js +209 -0
- package/dist/core/time/reader.js.map +1 -0
- package/dist/core/time/readers/english.js +576 -0
- package/dist/core/time/readers/english.js.map +1 -0
- package/dist/core/time/readingAsk.js +94 -0
- package/dist/core/time/readingAsk.js.map +1 -0
- package/dist/core/time/resolve.js +694 -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 +412 -0
- package/dist/core/time/rows.js.map +1 -0
- package/dist/core/time/rowsBuild.js +193 -0
- package/dist/core/time/rowsBuild.js.map +1 -0
- package/dist/core/time/textForms.js +133 -0
- package/dist/core/time/textForms.js.map +1 -0
- package/dist/core/time/windows.js +172 -0
- package/dist/core/time/windows.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/adapters/llm/AnthropicProvider.js +8 -109
- package/dist/esm/adapters/llm/AnthropicProvider.js.map +1 -1
- package/dist/esm/adapters/llm/BedrockProvider.js +11 -4
- package/dist/esm/adapters/llm/BedrockProvider.js.map +1 -1
- package/dist/esm/adapters/llm/InvokeModelGatewayProvider.d.ts +38 -4
- package/dist/esm/adapters/llm/InvokeModelGatewayProvider.js +167 -35
- package/dist/esm/adapters/llm/InvokeModelGatewayProvider.js.map +1 -1
- package/dist/esm/adapters/llm/OpenAIProvider.js +5 -0
- package/dist/esm/adapters/llm/OpenAIProvider.js.map +1 -1
- package/dist/esm/adapters/llm/anthropicMessagesWire.d.ts +6 -1
- package/dist/esm/adapters/llm/anthropicMessagesWire.js +20 -6
- package/dist/esm/adapters/llm/anthropicMessagesWire.js.map +1 -1
- package/dist/esm/adapters/llm/retryAfter.d.ts +27 -0
- package/dist/esm/adapters/llm/retryAfter.js +56 -0
- package/dist/esm/adapters/llm/retryAfter.js.map +1 -0
- package/dist/esm/adapters/types.d.ts +9 -0
- package/dist/esm/adapters/types.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 +230 -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 +88 -5
- package/dist/esm/core/agent/arguments/ask.js +349 -8
- 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 +25 -1
- package/dist/esm/core/agent/arguments/dispatch.js.map +1 -1
- package/dist/esm/core/agent/arguments/resolve.d.ts +77 -7
- package/dist/esm/core/agent/arguments/resolve.js +239 -8
- package/dist/esm/core/agent/arguments/resolve.js.map +1 -1
- package/dist/esm/core/agent/arguments/rows.d.ts +31 -2
- package/dist/esm/core/agent/arguments/rows.js +35 -1
- package/dist/esm/core/agent/arguments/rows.js.map +1 -1
- package/dist/esm/core/agent/arguments/serve.d.ts +133 -4
- package/dist/esm/core/agent/arguments/serve.js +328 -4
- package/dist/esm/core/agent/arguments/serve.js.map +1 -1
- package/dist/esm/core/agent/arguments/subflow.d.ts +28 -0
- package/dist/esm/core/agent/arguments/subflow.js +47 -8
- package/dist/esm/core/agent/arguments/subflow.js.map +1 -1
- package/dist/esm/core/agent/assessment/assess.js +45 -6
- package/dist/esm/core/agent/assessment/assess.js.map +1 -1
- package/dist/esm/core/agent/assessment/compose.js +3 -0
- package/dist/esm/core/agent/assessment/compose.js.map +1 -1
- package/dist/esm/core/agent/assessment/reasons.js +18 -0
- package/dist/esm/core/agent/assessment/reasons.js.map +1 -1
- package/dist/esm/core/agent/assessment/types.d.ts +15 -1
- package/dist/esm/core/agent/buildAgentChart.d.ts +41 -0
- package/dist/esm/core/agent/buildAgentChart.js +28 -0
- package/dist/esm/core/agent/buildAgentChart.js.map +1 -1
- package/dist/esm/core/agent/buildDynamicAgentChart.d.ts +1 -1
- package/dist/esm/core/agent/buildDynamicAgentChart.js +9 -0
- package/dist/esm/core/agent/buildDynamicAgentChart.js.map +1 -1
- package/dist/esm/core/agent/coverage/answer.d.ts +20 -1
- package/dist/esm/core/agent/coverage/answer.js +23 -6
- package/dist/esm/core/agent/coverage/answer.js.map +1 -1
- package/dist/esm/core/agent/coverage/period.d.ts +49 -3
- package/dist/esm/core/agent/coverage/period.js +107 -68
- package/dist/esm/core/agent/coverage/period.js.map +1 -1
- package/dist/esm/core/agent/coverage/timeLimitFacts.d.ts +56 -0
- package/dist/esm/core/agent/coverage/timeLimitFacts.js +65 -0
- package/dist/esm/core/agent/coverage/timeLimitFacts.js.map +1 -0
- package/dist/esm/core/agent/coverage/timeLimits.d.ts +46 -0
- package/dist/esm/core/agent/coverage/timeLimits.js +67 -0
- package/dist/esm/core/agent/coverage/timeLimits.js.map +1 -0
- package/dist/esm/core/agent/evidence/evidenceIndex.d.ts +25 -2
- package/dist/esm/core/agent/evidence/evidenceIndex.js +47 -7
- package/dist/esm/core/agent/evidence/evidenceIndex.js.map +1 -1
- package/dist/esm/core/agent/evidence/gate.d.ts +7 -0
- package/dist/esm/core/agent/evidence/gate.js +9 -4
- package/dist/esm/core/agent/evidence/gate.js.map +1 -1
- package/dist/esm/core/agent/evidence/normalize.d.ts +0 -34
- package/dist/esm/core/agent/evidence/normalize.js +0 -103
- package/dist/esm/core/agent/evidence/normalize.js.map +1 -1
- package/dist/esm/core/agent/evidence/types.d.ts +12 -1
- package/dist/esm/core/agent/findings/ledger.js +14 -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 +25 -0
- package/dist/esm/core/agent/honesty/mounts.js +104 -4
- package/dist/esm/core/agent/honesty/mounts.js.map +1 -1
- package/dist/esm/core/agent/results/subflow.d.ts +34 -2
- package/dist/esm/core/agent/results/subflow.js +43 -11
- package/dist/esm/core/agent/results/subflow.js.map +1 -1
- package/dist/esm/core/agent/stages/argumentAsk.d.ts +19 -0
- package/dist/esm/core/agent/stages/argumentAsk.js +85 -6
- package/dist/esm/core/agent/stages/argumentAsk.js.map +1 -1
- package/dist/esm/core/agent/stages/callLLM.d.ts +6 -0
- package/dist/esm/core/agent/stages/callLLM.js +16 -0
- package/dist/esm/core/agent/stages/callLLM.js.map +1 -1
- package/dist/esm/core/agent/stages/prepareFinal.d.ts +13 -1
- package/dist/esm/core/agent/stages/prepareFinal.js +59 -7
- package/dist/esm/core/agent/stages/prepareFinal.js.map +1 -1
- package/dist/esm/core/agent/stages/route.d.ts +29 -1
- package/dist/esm/core/agent/stages/route.js +64 -7
- package/dist/esm/core/agent/stages/route.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/timeLineage.d.ts +31 -0
- package/dist/esm/core/agent/stages/timeLineage.js +57 -0
- package/dist/esm/core/agent/stages/timeLineage.js.map +1 -0
- package/dist/esm/core/agent/stages/toolCalls.d.ts +32 -0
- package/dist/esm/core/agent/stages/toolCalls.js +70 -0
- package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
- package/dist/esm/core/agent/types.d.ts +37 -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 +17 -2
- package/dist/esm/core/runCheckpoint.js.map +1 -1
- package/dist/esm/core/slots/buildToolsSlot.d.ts +29 -0
- package/dist/esm/core/slots/buildToolsSlot.js +30 -2
- package/dist/esm/core/slots/buildToolsSlot.js.map +1 -1
- package/dist/esm/core/time/ask.d.ts +126 -0
- package/dist/esm/core/time/ask.js +230 -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 +143 -0
- package/dist/esm/core/time/bind.js +227 -0
- package/dist/esm/core/time/bind.js.map +1 -0
- package/dist/esm/core/time/check.d.ts +113 -0
- package/dist/esm/core/time/check.js +252 -0
- package/dist/esm/core/time/check.js.map +1 -0
- package/dist/esm/core/time/checkRecord.d.ts +74 -0
- package/dist/esm/core/time/checkRecord.js +90 -0
- package/dist/esm/core/time/checkRecord.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 +178 -0
- package/dist/esm/core/time/convert.js +609 -0
- package/dist/esm/core/time/convert.js.map +1 -0
- package/dist/esm/core/time/drift.d.ts +85 -0
- package/dist/esm/core/time/drift.js +91 -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/forms.d.ts +84 -0
- package/dist/esm/core/time/forms.js +268 -0
- package/dist/esm/core/time/forms.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 +107 -0
- package/dist/esm/core/time/present.js +305 -0
- package/dist/esm/core/time/present.js.map +1 -0
- package/dist/esm/core/time/range.d.ts +127 -0
- package/dist/esm/core/time/range.js +249 -0
- package/dist/esm/core/time/range.js.map +1 -0
- package/dist/esm/core/time/reader.d.ts +162 -0
- package/dist/esm/core/time/reader.js +203 -0
- package/dist/esm/core/time/reader.js.map +1 -0
- package/dist/esm/core/time/readers/english.d.ts +99 -0
- package/dist/esm/core/time/readers/english.js +572 -0
- package/dist/esm/core/time/readers/english.js.map +1 -0
- package/dist/esm/core/time/readingAsk.d.ts +45 -0
- package/dist/esm/core/time/readingAsk.js +90 -0
- package/dist/esm/core/time/readingAsk.js.map +1 -0
- package/dist/esm/core/time/resolve.d.ts +103 -0
- package/dist/esm/core/time/resolve.js +684 -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 +297 -0
- package/dist/esm/core/time/rows.js +397 -0
- package/dist/esm/core/time/rows.js.map +1 -0
- package/dist/esm/core/time/rowsBuild.d.ts +82 -0
- package/dist/esm/core/time/rowsBuild.js +185 -0
- package/dist/esm/core/time/rowsBuild.js.map +1 -0
- package/dist/esm/core/time/textForms.d.ts +53 -0
- package/dist/esm/core/time/textForms.js +126 -0
- package/dist/esm/core/time/textForms.js.map +1 -0
- package/dist/esm/core/time/windows.d.ts +113 -0
- package/dist/esm/core/time/windows.js +166 -0
- package/dist/esm/core/time/windows.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 +16 -2
- package/dist/esm/index.d.ts +13 -1
- package/dist/esm/index.js +6 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/answer-account/facts/howSure.js +7 -0
- package/dist/esm/lib/answer-account/facts/howSure.js.map +1 -1
- package/dist/esm/lib/answer-account/templates.d.ts +3 -0
- package/dist/esm/lib/answer-account/templates.js +4 -0
- package/dist/esm/lib/answer-account/templates.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/lib/time-travel/receipt.d.ts +1 -1
- package/dist/esm/lib/time-travel/servedView.d.ts +1 -1
- package/dist/esm/lib/time-travel/servedView.js +9 -0
- package/dist/esm/lib/time-travel/servedView.js.map +1 -1
- 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/esm/recorders/core/resilienceHooks.js +1 -0
- package/dist/esm/recorders/core/resilienceHooks.js.map +1 -1
- package/dist/esm/resilience/statedWait.d.ts +22 -0
- package/dist/esm/resilience/statedWait.js +35 -0
- package/dist/esm/resilience/statedWait.js.map +1 -0
- package/dist/esm/resilience/withRetry.d.ts +13 -2
- package/dist/esm/resilience/withRetry.js +16 -1
- package/dist/esm/resilience/withRetry.js.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/answer-account/facts/howSure.js +7 -0
- package/dist/lib/answer-account/facts/howSure.js.map +1 -1
- package/dist/lib/answer-account/templates.js +4 -0
- package/dist/lib/answer-account/templates.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/lib/time-travel/servedView.js +9 -0
- package/dist/lib/time-travel/servedView.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/recorders/core/resilienceHooks.js +1 -0
- package/dist/recorders/core/resilienceHooks.js.map +1 -1
- package/dist/resilience/statedWait.js +39 -0
- package/dist/resilience/statedWait.js.map +1 -0
- package/dist/resilience/withRetry.js +16 -1
- package/dist/resilience/withRetry.js.map +1 -1
- package/dist/types/adapters/llm/AnthropicProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/BedrockProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/InvokeModelGatewayProvider.d.ts +38 -4
- package/dist/types/adapters/llm/InvokeModelGatewayProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/OpenAIProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/anthropicMessagesWire.d.ts +6 -1
- package/dist/types/adapters/llm/anthropicMessagesWire.d.ts.map +1 -1
- package/dist/types/adapters/llm/retryAfter.d.ts +28 -0
- package/dist/types/adapters/llm/retryAfter.d.ts.map +1 -0
- package/dist/types/adapters/types.d.ts +9 -0
- package/dist/types/adapters/types.d.ts.map +1 -1
- 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 +88 -5
- 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 +77 -7
- package/dist/types/core/agent/arguments/resolve.d.ts.map +1 -1
- package/dist/types/core/agent/arguments/rows.d.ts +31 -2
- package/dist/types/core/agent/arguments/rows.d.ts.map +1 -1
- package/dist/types/core/agent/arguments/serve.d.ts +133 -4
- package/dist/types/core/agent/arguments/serve.d.ts.map +1 -1
- package/dist/types/core/agent/arguments/subflow.d.ts +28 -0
- package/dist/types/core/agent/arguments/subflow.d.ts.map +1 -1
- package/dist/types/core/agent/assessment/assess.d.ts.map +1 -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 +15 -1
- package/dist/types/core/agent/assessment/types.d.ts.map +1 -1
- package/dist/types/core/agent/buildAgentChart.d.ts +41 -0
- package/dist/types/core/agent/buildAgentChart.d.ts.map +1 -1
- package/dist/types/core/agent/buildDynamicAgentChart.d.ts +1 -1
- package/dist/types/core/agent/buildDynamicAgentChart.d.ts.map +1 -1
- package/dist/types/core/agent/coverage/answer.d.ts +20 -1
- package/dist/types/core/agent/coverage/answer.d.ts.map +1 -1
- package/dist/types/core/agent/coverage/period.d.ts +49 -3
- package/dist/types/core/agent/coverage/period.d.ts.map +1 -1
- package/dist/types/core/agent/coverage/timeLimitFacts.d.ts +57 -0
- package/dist/types/core/agent/coverage/timeLimitFacts.d.ts.map +1 -0
- package/dist/types/core/agent/coverage/timeLimits.d.ts +47 -0
- package/dist/types/core/agent/coverage/timeLimits.d.ts.map +1 -0
- package/dist/types/core/agent/evidence/evidenceIndex.d.ts +25 -2
- package/dist/types/core/agent/evidence/evidenceIndex.d.ts.map +1 -1
- package/dist/types/core/agent/evidence/gate.d.ts +7 -0
- package/dist/types/core/agent/evidence/gate.d.ts.map +1 -1
- package/dist/types/core/agent/evidence/normalize.d.ts +0 -34
- package/dist/types/core/agent/evidence/normalize.d.ts.map +1 -1
- package/dist/types/core/agent/evidence/types.d.ts +12 -1
- package/dist/types/core/agent/evidence/types.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 +25 -0
- package/dist/types/core/agent/honesty/mounts.d.ts.map +1 -1
- package/dist/types/core/agent/results/subflow.d.ts +34 -2
- package/dist/types/core/agent/results/subflow.d.ts.map +1 -1
- package/dist/types/core/agent/stages/argumentAsk.d.ts +19 -0
- package/dist/types/core/agent/stages/argumentAsk.d.ts.map +1 -1
- package/dist/types/core/agent/stages/callLLM.d.ts +6 -0
- package/dist/types/core/agent/stages/callLLM.d.ts.map +1 -1
- package/dist/types/core/agent/stages/prepareFinal.d.ts +13 -1
- package/dist/types/core/agent/stages/prepareFinal.d.ts.map +1 -1
- package/dist/types/core/agent/stages/route.d.ts +29 -1
- package/dist/types/core/agent/stages/route.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/timeLineage.d.ts +32 -0
- package/dist/types/core/agent/stages/timeLineage.d.ts.map +1 -0
- package/dist/types/core/agent/stages/toolCalls.d.ts +32 -0
- package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
- package/dist/types/core/agent/types.d.ts +37 -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/slots/buildToolsSlot.d.ts +29 -0
- package/dist/types/core/slots/buildToolsSlot.d.ts.map +1 -1
- package/dist/types/core/time/ask.d.ts +127 -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 +144 -0
- package/dist/types/core/time/bind.d.ts.map +1 -0
- package/dist/types/core/time/check.d.ts +114 -0
- package/dist/types/core/time/check.d.ts.map +1 -0
- package/dist/types/core/time/checkRecord.d.ts +75 -0
- package/dist/types/core/time/checkRecord.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 +179 -0
- package/dist/types/core/time/convert.d.ts.map +1 -0
- package/dist/types/core/time/drift.d.ts +86 -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/forms.d.ts +85 -0
- package/dist/types/core/time/forms.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 +108 -0
- package/dist/types/core/time/present.d.ts.map +1 -0
- package/dist/types/core/time/range.d.ts +128 -0
- package/dist/types/core/time/range.d.ts.map +1 -0
- package/dist/types/core/time/reader.d.ts +163 -0
- package/dist/types/core/time/reader.d.ts.map +1 -0
- package/dist/types/core/time/readers/english.d.ts +100 -0
- package/dist/types/core/time/readers/english.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 +104 -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 +298 -0
- package/dist/types/core/time/rows.d.ts.map +1 -0
- package/dist/types/core/time/rowsBuild.d.ts +83 -0
- package/dist/types/core/time/rowsBuild.d.ts.map +1 -0
- package/dist/types/core/time/textForms.d.ts +54 -0
- package/dist/types/core/time/textForms.d.ts.map +1 -0
- package/dist/types/core/time/windows.d.ts +114 -0
- package/dist/types/core/time/windows.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 +16 -2
- package/dist/types/events/payloads.d.ts.map +1 -1
- package/dist/types/index.d.ts +13 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/lib/answer-account/facts/howSure.d.ts.map +1 -1
- package/dist/types/lib/answer-account/templates.d.ts +3 -0
- package/dist/types/lib/answer-account/templates.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/lib/time-travel/receipt.d.ts +1 -1
- package/dist/types/lib/time-travel/receipt.d.ts.map +1 -1
- package/dist/types/lib/time-travel/servedView.d.ts +1 -1
- package/dist/types/lib/time-travel/servedView.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/dist/types/recorders/core/resilienceHooks.d.ts.map +1 -1
- package/dist/types/resilience/statedWait.d.ts +23 -0
- package/dist/types/resilience/statedWait.d.ts.map +1 -0
- package/dist/types/resilience/withRetry.d.ts +13 -2
- package/dist/types/resilience/withRetry.d.ts.map +1 -1
- 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
|
@@ -0,0 +1,397 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* core/time/rows — the time layer's rows on the one honesty ledger
|
|
3
|
+
* (`AgentState.findingsLedger`), and the checkpoint door's test for each.
|
|
4
|
+
*
|
|
5
|
+
* Pattern: one owner of each row's shape (the `coverage/period.ts` ·
|
|
6
|
+
* `periodRowIsWellFormed` precedent): the module that defines a row
|
|
7
|
+
* also answers "is this a row I would have filed?", so the
|
|
8
|
+
* checkpoint door (`core/runCheckpoint.ts` · `ledgerRowIsWellFormed`)
|
|
9
|
+
* refuses exactly what the library never files.
|
|
10
|
+
* Role: core/ leaf (the time layer). Imports `instant.ts`, `zone.ts`,
|
|
11
|
+
* `range.ts`, `reader.ts` (the parts check), `resolveRecord.ts` (the
|
|
12
|
+
* candidate and choice checks), `convert.ts` (the refusal codes) and
|
|
13
|
+
* `clock.ts`' and `bind.ts`' types only — the rows are plain records
|
|
14
|
+
* the agent loop files (`agent/stages/timeLayer.ts`, the inputs
|
|
15
|
+
* layer). Their BUILDERS live in `rowsBuild.ts` — never re-exported
|
|
16
|
+
* here: they reach the resolver, which only an armed agent loads,
|
|
17
|
+
* while this module is on the checkpoint door's synchronous path.
|
|
18
|
+
* Emits: N/A — the rows fire no event of their own (the `conflict` row's
|
|
19
|
+
* precedent: no event field ships without a reader in the same
|
|
20
|
+
* release). The lens reads the rows.
|
|
21
|
+
*
|
|
22
|
+
* Eight kinds, each filed only while `.time()` is armed:
|
|
23
|
+
*
|
|
24
|
+
* | Kind | Filed | Carries |
|
|
25
|
+
* |------|-------|---------|
|
|
26
|
+
* | `clock` | once per turn, by seed | the turn's {@link TimeClock} and, when the run passed one, the `control` window |
|
|
27
|
+
* | `clock-on-resume` | first thing in the resumed leg's ToolCalls stage — either pause shape: the pausable resume door, or the stage re-run an `interrupt()` pause makes — when a resume passed a `time` that differs from the kept clock | what was passed and what was kept — the kept clock still rules |
|
|
28
|
+
* | `call` | once per dispatched call, just before the tool runs | `dispatchedAt`: the wall clock at dispatch (a look-back is evaluated by the TOOL at dispatch, which after a pause is later than `now`); `drift` when a look-back was sent more than the tool's step after `now` — `redrawn` into an absolute form, or `shifted` (§ 7.4, `drift.ts`) |
|
|
29
|
+
* | `call-window` | by the inputs layer, once per call to a tool that declares period forms, before it dispatches | which window the call carries: filled from the turn's one window (exactly, or wider — with what the read adds), bound to one (by quote or value), the model's own (beside the person's when it differs), unread, not filled and why, or refused before dispatch and why |
|
|
30
|
+
* | `time-reading` | by seed, once per MENTION the armed reader (`.time({ reader })`) found in the person's message — or ONE row with `mentions: 0` when it found none, so a retry knows the message was read | the quote, the parts, every candidate `resolve.ts` made of them, how the reading settled (`choice` — never settled by the library: every reading is a PROPOSAL, `open` with `confirm`, its candidates `said: []`), the reader's id, version, kind and locale, and the tz database version; a refused mention keeps only why |
|
|
31
|
+
* | `time-answer` | by the batch ask, once per mention the person settled in the time ask — the only door by which a window of words becomes the person's | the mention, the window and its zone, and `how`: `confirmed` (they picked a reading the library offered — the click) or `edited` (they wrote their own) |
|
|
32
|
+
* | `time-derived` | by the Route decider, once per judged answer that stands, when the evidence gate found values no tool result carried that the library itself spelled from this turn's time readings (§ 9.5, step T7 — `forms.ts` · `timeFormsOf`'s `derived` list) | the values, normalized and clipped as the gate reports them — the lineage `derived-from-reading`: never invented, never the person's |
|
|
33
|
+
* | `source-clock` | by ToolCalls, once per call and zone, when the call minted a dataset whose declared time axis names a `zone` (§ 9.6, step T8) | the tool, the call and the zone its rows' wall times are in — read by the limits block's `Clocks` lines and `check.ts` · `clocksDiffer` |
|
|
34
|
+
*
|
|
35
|
+
* Readers that switch over every row kind must skip one they do not know.
|
|
36
|
+
*/
|
|
37
|
+
import { instantOf } from './instant.js';
|
|
38
|
+
import { isTimeRange } from './range.js';
|
|
39
|
+
import { isZoneName } from './zone.js';
|
|
40
|
+
import { isTimeParts } from './reader.js';
|
|
41
|
+
import { TIME_REFUSALS } from './periodForm.js';
|
|
42
|
+
import { candidateIsWellFormed, choiceIsWellFormed, } from './resolveRecord.js';
|
|
43
|
+
/** The most values one `time-derived` row carries (the gate's report bound). */
|
|
44
|
+
export const MAX_DERIVED_VALUES = 12;
|
|
45
|
+
/** The longest value a `time-derived` row carries (the gate's clip). */
|
|
46
|
+
export const MAX_DERIVED_VALUE_CHARS = 64;
|
|
47
|
+
// ─── Reading ─────────────────────────────────────────────────────────────
|
|
48
|
+
/** This turn's `call-window` row for one call, if the inputs layer filed one — `ctx.time` reads it. */
|
|
49
|
+
export function callWindowOfCall(ledger, toolCallId, turn) {
|
|
50
|
+
if (ledger === undefined)
|
|
51
|
+
return undefined;
|
|
52
|
+
for (let i = ledger.length - 1; i >= 0; i--) {
|
|
53
|
+
const r = ledger[i];
|
|
54
|
+
if (r !== null &&
|
|
55
|
+
typeof r === 'object' &&
|
|
56
|
+
r.kind === 'call-window' &&
|
|
57
|
+
r.toolCallId === toolCallId &&
|
|
58
|
+
r.turn === turn) {
|
|
59
|
+
return r;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return undefined;
|
|
63
|
+
}
|
|
64
|
+
/** The `time-reading` rows filed for `turn` — read back on a resume or a retry, never re-read. */
|
|
65
|
+
export function readingsOf(ledger, turn) {
|
|
66
|
+
if (ledger === undefined)
|
|
67
|
+
return [];
|
|
68
|
+
return ledger.filter((row) => {
|
|
69
|
+
const r = row;
|
|
70
|
+
return r !== null && typeof r === 'object' && r.kind === 'time-reading' && r.turn === turn;
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
/** The `time-answer` row for one window the person settled in the time ask. */
|
|
74
|
+
export function timeAnswerRow(answer, at) {
|
|
75
|
+
return {
|
|
76
|
+
kind: 'time-answer',
|
|
77
|
+
turn: at.turn,
|
|
78
|
+
iteration: at.iteration,
|
|
79
|
+
mention: answer.mention,
|
|
80
|
+
from: answer.range.from,
|
|
81
|
+
to: answer.range.to,
|
|
82
|
+
zone: answer.zone,
|
|
83
|
+
how: answer.how,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/** The `time-derived` row for one judged answer — `values` cut to {@link MAX_DERIVED_VALUES}. */
|
|
87
|
+
export function timeDerivedRow(values, at) {
|
|
88
|
+
return {
|
|
89
|
+
kind: 'time-derived',
|
|
90
|
+
turn: at.turn,
|
|
91
|
+
iteration: at.iteration,
|
|
92
|
+
values: values.slice(0, MAX_DERIVED_VALUES),
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
/** The `source-clock` row for one call's dataset whose declared axis names `zone`. */
|
|
96
|
+
export function sourceClockRow(call, at, zone) {
|
|
97
|
+
return {
|
|
98
|
+
kind: 'source-clock',
|
|
99
|
+
turn: at.turn,
|
|
100
|
+
iteration: at.iteration,
|
|
101
|
+
toolCallId: call.toolCallId,
|
|
102
|
+
toolName: call.toolName,
|
|
103
|
+
zone,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
/** This turn's `call` row for one call — the last filed (a resumed leg files its own). */
|
|
107
|
+
export function callRowOfCall(ledger, toolCallId, turn) {
|
|
108
|
+
if (ledger === undefined)
|
|
109
|
+
return undefined;
|
|
110
|
+
for (let i = ledger.length - 1; i >= 0; i--) {
|
|
111
|
+
const r = ledger[i];
|
|
112
|
+
if (r !== null &&
|
|
113
|
+
typeof r === 'object' &&
|
|
114
|
+
r.kind === 'call' &&
|
|
115
|
+
r.toolCallId === toolCallId &&
|
|
116
|
+
r.turn === turn) {
|
|
117
|
+
return r;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return undefined;
|
|
121
|
+
}
|
|
122
|
+
/** The `source-clock` rows filed for `turn`, in the order filed. */
|
|
123
|
+
export function sourceClocksOf(ledger, turn) {
|
|
124
|
+
if (ledger === undefined)
|
|
125
|
+
return [];
|
|
126
|
+
return ledger.filter((row) => {
|
|
127
|
+
const r = row;
|
|
128
|
+
return (r !== null &&
|
|
129
|
+
typeof r === 'object' &&
|
|
130
|
+
r.kind === 'source-clock' &&
|
|
131
|
+
(turn === undefined || r.turn === turn));
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
/** The `time-answer` rows filed for `turn`, in the order filed. */
|
|
135
|
+
export function answersOf(ledger, turn) {
|
|
136
|
+
if (ledger === undefined)
|
|
137
|
+
return [];
|
|
138
|
+
return ledger.filter((row) => {
|
|
139
|
+
const r = row;
|
|
140
|
+
return r !== null && typeof r === 'object' && r.kind === 'time-answer' && r.turn === turn;
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* The clock of the LATEST turn on the ledger — the last `clock` row — or
|
|
145
|
+
* `undefined` when none was filed (an agent without `.time()`, or a turn
|
|
146
|
+
* paused by a runtime that had none). A continued conversation carries one
|
|
147
|
+
* row per turn; the last one is this turn's, because each turn's seed files
|
|
148
|
+
* exactly one (last in seed, before any stage of the turn can read it).
|
|
149
|
+
*/
|
|
150
|
+
export function clockOf(ledger) {
|
|
151
|
+
if (ledger === undefined)
|
|
152
|
+
return undefined;
|
|
153
|
+
for (let i = ledger.length - 1; i >= 0; i--) {
|
|
154
|
+
const row = ledger[i];
|
|
155
|
+
if (row !== null && typeof row === 'object' && row.kind === 'clock')
|
|
156
|
+
return row;
|
|
157
|
+
}
|
|
158
|
+
return undefined;
|
|
159
|
+
}
|
|
160
|
+
// ─── The checkpoint door ─────────────────────────────────────────────────
|
|
161
|
+
const isInstant = (value) => instantOf(value, 'strict') !== undefined;
|
|
162
|
+
const isCount = (value) => typeof value === 'number' && Number.isInteger(value) && value >= 0;
|
|
163
|
+
function isKept(value) {
|
|
164
|
+
if (value === null || typeof value !== 'object' || Array.isArray(value))
|
|
165
|
+
return false;
|
|
166
|
+
const k = value;
|
|
167
|
+
return (isInstant(k.now) && isZoneName(k.zone) && (k.window === undefined || isTimeRange(k.window)));
|
|
168
|
+
}
|
|
169
|
+
function isPassed(value) {
|
|
170
|
+
if (value === null || typeof value !== 'object' || Array.isArray(value))
|
|
171
|
+
return false;
|
|
172
|
+
const p = value;
|
|
173
|
+
const keys = Object.keys(p);
|
|
174
|
+
return (keys.length > 0 &&
|
|
175
|
+
keys.every((k) => k === 'now' || k === 'zone' || k === 'window') &&
|
|
176
|
+
(p.now === undefined || isInstant(p.now)) &&
|
|
177
|
+
(p.zone === undefined || isZoneName(p.zone)) &&
|
|
178
|
+
(p.window === undefined || isTimeRange(p.window)));
|
|
179
|
+
}
|
|
180
|
+
function isControlWindow(value) {
|
|
181
|
+
if (value === null || typeof value !== 'object' || Array.isArray(value))
|
|
182
|
+
return false;
|
|
183
|
+
const { source, ...range } = value;
|
|
184
|
+
return source === 'control' && isTimeRange(range);
|
|
185
|
+
}
|
|
186
|
+
const nonEmpty = (value) => typeof value === 'string' && value.length > 0;
|
|
187
|
+
function isReaderStamp(value) {
|
|
188
|
+
if (value === null || typeof value !== 'object' || Array.isArray(value))
|
|
189
|
+
return false;
|
|
190
|
+
const r = value;
|
|
191
|
+
return (Object.keys(r).length === 4 &&
|
|
192
|
+
nonEmpty(r.id) &&
|
|
193
|
+
nonEmpty(r.version) &&
|
|
194
|
+
nonEmpty(r.locale) &&
|
|
195
|
+
(r.kind === 'rule' || r.kind === 'model'));
|
|
196
|
+
}
|
|
197
|
+
const MENTION_FIELDS = ['mention', 'quote', 'parses', 'problem', 'refused', 'candidates', 'choice'];
|
|
198
|
+
function isReadingRow(row) {
|
|
199
|
+
if (!isReaderStamp(row.reader) || !nonEmpty(row.tzdata) || !isCount(row.mentions))
|
|
200
|
+
return false;
|
|
201
|
+
const mentions = row.mentions;
|
|
202
|
+
if (mentions === 0)
|
|
203
|
+
return MENTION_FIELDS.every((k) => row[k] === undefined);
|
|
204
|
+
if (!isCount(row.mention) || row.mention >= mentions)
|
|
205
|
+
return false;
|
|
206
|
+
if (row.refused !== undefined) {
|
|
207
|
+
return ((row.refused === 'quote-not-in-text' || row.refused === 'malformed') &&
|
|
208
|
+
['quote', 'parses', 'problem', 'candidates', 'choice'].every((k) => row[k] === undefined));
|
|
209
|
+
}
|
|
210
|
+
const parses = row.parses;
|
|
211
|
+
const candidates = row.candidates;
|
|
212
|
+
return (nonEmpty(row.quote) &&
|
|
213
|
+
Array.isArray(parses) &&
|
|
214
|
+
parses.every((p) => isTimeParts(p)) &&
|
|
215
|
+
(row.problem === undefined || (row.problem === 'unreadable' && parses.length === 0)) &&
|
|
216
|
+
Array.isArray(candidates) &&
|
|
217
|
+
candidates.every(candidateIsWellFormed) &&
|
|
218
|
+
choiceIsWellFormed(row.choice, candidates.length));
|
|
219
|
+
}
|
|
220
|
+
const HOWS = ['filled', 'bound', 'model-chosen', 'model', 'unread', 'not-filled', 'refused'];
|
|
221
|
+
const WHYS = ['no-window', 'several-mentions', 'open-reading', 'no-exact-form'];
|
|
222
|
+
function isPersonWindow(value) {
|
|
223
|
+
if (value === null || typeof value !== 'object' || Array.isArray(value))
|
|
224
|
+
return false;
|
|
225
|
+
const { source, mention, ...range } = value;
|
|
226
|
+
return ((source === 'said' ||
|
|
227
|
+
source === 'derived-from-reading' ||
|
|
228
|
+
source === 'answered' ||
|
|
229
|
+
source === 'control') &&
|
|
230
|
+
(mention === undefined || isCount(mention)) &&
|
|
231
|
+
(source === 'control') === (mention === undefined) &&
|
|
232
|
+
isTimeRange(range));
|
|
233
|
+
}
|
|
234
|
+
function isRangeList(value) {
|
|
235
|
+
return Array.isArray(value) && value.length >= 1 && value.length <= 2 && value.every(isTimeRange);
|
|
236
|
+
}
|
|
237
|
+
/** A widened fill's fields: `sent` with exactly one of `differs` / `trimmedByTool`, or none of the three. */
|
|
238
|
+
function widenedOk(row) {
|
|
239
|
+
if (row.sent === undefined)
|
|
240
|
+
return row.differs === undefined && row.trimmedByTool === undefined;
|
|
241
|
+
if (!isTimeRange(row.sent))
|
|
242
|
+
return false;
|
|
243
|
+
if (row.trimmedByTool !== undefined)
|
|
244
|
+
return row.trimmedByTool === true && row.differs === undefined;
|
|
245
|
+
const differs = row.differs;
|
|
246
|
+
if (differs === null || typeof differs !== 'object' || Array.isArray(differs))
|
|
247
|
+
return false;
|
|
248
|
+
const d = differs;
|
|
249
|
+
return Object.keys(d).length === 1 && isRangeList(d.extra);
|
|
250
|
+
}
|
|
251
|
+
function isCallWindowRow(row) {
|
|
252
|
+
if (typeof row.toolCallId !== 'string' || typeof row.toolName !== 'string')
|
|
253
|
+
return false;
|
|
254
|
+
if (!HOWS.includes(row.how))
|
|
255
|
+
return false;
|
|
256
|
+
const has = (k) => row[k] !== undefined;
|
|
257
|
+
const only = (...keys) => [
|
|
258
|
+
'form',
|
|
259
|
+
'asked',
|
|
260
|
+
'person',
|
|
261
|
+
'by',
|
|
262
|
+
'rounded',
|
|
263
|
+
'why',
|
|
264
|
+
'sent',
|
|
265
|
+
'differs',
|
|
266
|
+
'trimmedByTool',
|
|
267
|
+
'partlyBeyondRetention',
|
|
268
|
+
'refused',
|
|
269
|
+
'argument',
|
|
270
|
+
].every((k) => keys.includes(k) || !has(k));
|
|
271
|
+
const formOk = isCount(row.form);
|
|
272
|
+
const askedOk = isTimeRange(row.asked);
|
|
273
|
+
const partlyOk = row.partlyBeyondRetention === undefined || row.partlyBeyondRetention === true;
|
|
274
|
+
switch (row.how) {
|
|
275
|
+
case 'filled':
|
|
276
|
+
return (only('form', 'asked', 'person', 'rounded', 'sent', 'differs', 'trimmedByTool', 'partlyBeyondRetention') &&
|
|
277
|
+
formOk &&
|
|
278
|
+
askedOk &&
|
|
279
|
+
isPersonWindow(row.person) &&
|
|
280
|
+
(row.rounded === undefined || row.rounded === true) &&
|
|
281
|
+
widenedOk(row) &&
|
|
282
|
+
partlyOk);
|
|
283
|
+
case 'bound':
|
|
284
|
+
return (only('form', 'asked', 'person', 'by', 'partlyBeyondRetention') &&
|
|
285
|
+
formOk &&
|
|
286
|
+
askedOk &&
|
|
287
|
+
isPersonWindow(row.person) &&
|
|
288
|
+
(row.by === 'quote' || row.by === 'value') &&
|
|
289
|
+
partlyOk);
|
|
290
|
+
case 'model-chosen':
|
|
291
|
+
return (only('form', 'asked', 'person', 'partlyBeyondRetention') &&
|
|
292
|
+
formOk &&
|
|
293
|
+
askedOk &&
|
|
294
|
+
(row.person === undefined || isPersonWindow(row.person)) &&
|
|
295
|
+
partlyOk);
|
|
296
|
+
case 'model':
|
|
297
|
+
return only('form', 'asked', 'partlyBeyondRetention') && formOk && askedOk && partlyOk;
|
|
298
|
+
case 'unread':
|
|
299
|
+
return only();
|
|
300
|
+
case 'refused':
|
|
301
|
+
return (only('form', 'asked', 'person', 'refused', 'argument') &&
|
|
302
|
+
TIME_REFUSALS.includes(row.refused) &&
|
|
303
|
+
(row.form === undefined || formOk) &&
|
|
304
|
+
(row.asked === undefined || askedOk) &&
|
|
305
|
+
(row.person === undefined || isPersonWindow(row.person)) &&
|
|
306
|
+
// A skipped wall time names its argument and has no range; every other refusal has a range.
|
|
307
|
+
(row.refused === 'dst-gap'
|
|
308
|
+
? typeof row.argument === 'string' && formOk && row.asked === undefined
|
|
309
|
+
: row.argument === undefined && askedOk));
|
|
310
|
+
default:
|
|
311
|
+
return only('why') && WHYS.includes(row.why);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
function isCallDrift(value) {
|
|
315
|
+
if (value === null || typeof value !== 'object' || Array.isArray(value))
|
|
316
|
+
return false;
|
|
317
|
+
const d = value;
|
|
318
|
+
if (typeof d.byMs !== 'number' || !Number.isSafeInteger(d.byMs) || d.byMs === 0)
|
|
319
|
+
return false;
|
|
320
|
+
if (d.outcome === 'redrawn')
|
|
321
|
+
return Object.keys(d).length === 3 && isCount(d.form);
|
|
322
|
+
return d.outcome === 'shifted' && Object.keys(d).length === 2;
|
|
323
|
+
}
|
|
324
|
+
/** A `time-answer` row: its mention, a range, a zone, `how` — and no other key. */
|
|
325
|
+
function isAnswerRow(row) {
|
|
326
|
+
const { kind: _k, turn: _t, iteration: _i, mention, zone, how, ...range } = row;
|
|
327
|
+
void _k;
|
|
328
|
+
void _t;
|
|
329
|
+
void _i;
|
|
330
|
+
return (isCount(mention) &&
|
|
331
|
+
isZoneName(zone) &&
|
|
332
|
+
(how === 'confirmed' || how === 'edited') &&
|
|
333
|
+
isTimeRange(range));
|
|
334
|
+
}
|
|
335
|
+
/** A `time-derived` row: one to `MAX_DERIVED_VALUES` non-empty values — and no other key. */
|
|
336
|
+
function isDerivedRow(row) {
|
|
337
|
+
const values = row.values;
|
|
338
|
+
return (Object.keys(row).length === 4 &&
|
|
339
|
+
Array.isArray(values) &&
|
|
340
|
+
values.length >= 1 &&
|
|
341
|
+
values.length <= MAX_DERIVED_VALUES &&
|
|
342
|
+
values.every((v) => nonEmpty(v) && v.length <= MAX_DERIVED_VALUE_CHARS));
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* The checkpoint door's test for a time-layer row — `true` only for a row of
|
|
346
|
+
* one of the eight kinds with every field this module files, well formed.
|
|
347
|
+
* Any other kind answers `false` (the caller routes by kind first).
|
|
348
|
+
*/
|
|
349
|
+
export function timeRowIsWellFormed(row) {
|
|
350
|
+
if (!isCount(row.turn) || !isCount(row.iteration))
|
|
351
|
+
return false;
|
|
352
|
+
switch (row.kind) {
|
|
353
|
+
case 'clock':
|
|
354
|
+
return (isInstant(row.now) &&
|
|
355
|
+
(row.nowSource === 'app' || row.nowSource === 'default') &&
|
|
356
|
+
isZoneName(row.zone) &&
|
|
357
|
+
(row.zoneSource === 'run' || row.zoneSource === 'builder') &&
|
|
358
|
+
(row.window === undefined || isControlWindow(row.window)));
|
|
359
|
+
case 'clock-on-resume':
|
|
360
|
+
return isPassed(row.passed) && isKept(row.kept);
|
|
361
|
+
case 'call':
|
|
362
|
+
return (typeof row.toolCallId === 'string' &&
|
|
363
|
+
typeof row.toolName === 'string' &&
|
|
364
|
+
isInstant(row.dispatchedAt) &&
|
|
365
|
+
(row.drift === undefined || isCallDrift(row.drift)));
|
|
366
|
+
case 'time-reading':
|
|
367
|
+
return isReadingRow(row);
|
|
368
|
+
case 'call-window':
|
|
369
|
+
return isCallWindowRow(row);
|
|
370
|
+
case 'time-answer':
|
|
371
|
+
return isAnswerRow(row);
|
|
372
|
+
case 'time-derived':
|
|
373
|
+
return isDerivedRow(row);
|
|
374
|
+
case 'source-clock':
|
|
375
|
+
return (typeof row.toolCallId === 'string' &&
|
|
376
|
+
typeof row.toolName === 'string' &&
|
|
377
|
+
isZoneName(row.zone));
|
|
378
|
+
default:
|
|
379
|
+
return false;
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
/** Whether a ledger row is one of the time layer's kinds (the router's question). */
|
|
383
|
+
export function isTimeRowKind(kind) {
|
|
384
|
+
return (kind === 'clock' ||
|
|
385
|
+
kind === 'clock-on-resume' ||
|
|
386
|
+
kind === 'call' ||
|
|
387
|
+
kind === 'time-reading' ||
|
|
388
|
+
kind === 'call-window' ||
|
|
389
|
+
kind === 'time-answer' ||
|
|
390
|
+
kind === 'time-derived' ||
|
|
391
|
+
kind === 'source-clock');
|
|
392
|
+
}
|
|
393
|
+
/** The zone the answer's lines are rendered in — the clock's (no reader is armed yet, so the run's). */
|
|
394
|
+
export function presentationZoneOf(ledger) {
|
|
395
|
+
return clockOf(ledger)?.zone;
|
|
396
|
+
}
|
|
397
|
+
//# sourceMappingURL=rows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rows.js","sourceRoot":"","sources":["../../../../src/core/time/rows.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* core/time/rowsBuild — the builders of the time layer's rows (`rows.ts` owns
|
|
3
|
+
* the shapes, the readers and the checkpoint door's checks).
|
|
4
|
+
*
|
|
5
|
+
* Pattern: one builder per row kind, each returning the plain record the
|
|
6
|
+
* ledger's one writer files.
|
|
7
|
+
* Role: core/ leaf (the time layer). Split from `rows.ts` because
|
|
8
|
+
* `timeReadingRows` runs the resolver (`resolve.ts`), which only an
|
|
9
|
+
* armed agent loads — its callers (`agent/stages/timeLayer.ts`, the
|
|
10
|
+
* inputs layer's `arguments/resolve.ts`) are reached through
|
|
11
|
+
* `import()` — while `rows.ts` sits on the checkpoint door's
|
|
12
|
+
* synchronous path (the optional-family law of docs-next's site
|
|
13
|
+
* budget). Import a builder from HERE — `rows.ts` does not re-export
|
|
14
|
+
* them, or a bundler would place them on its synchronous path.
|
|
15
|
+
* Emits: N/A.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```ts
|
|
19
|
+
* clockRow(clock, { turn: 1, iteration: 1 }); // { kind: 'clock', turn: 1, … }
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
import type { TimeRange } from './range.js';
|
|
23
|
+
import { type ReadRunTime, type TimeClock } from './clock.js';
|
|
24
|
+
import type { CheckedMention } from './reader.js';
|
|
25
|
+
import type { CallWindow } from './bind.js';
|
|
26
|
+
import { type TimePolicy } from './resolve.js';
|
|
27
|
+
import type { CallDrift, CallRow, CallWindowRow, ClockOnResumeRow, ClockRow, TimeReaderStamp, TimeReadingRow } from './rows.js';
|
|
28
|
+
/** The clock stamp for one turn. */
|
|
29
|
+
export declare function clockRow(clock: TimeClock, at: {
|
|
30
|
+
readonly turn: number;
|
|
31
|
+
readonly iteration: number;
|
|
32
|
+
}, window?: TimeRange): ClockRow;
|
|
33
|
+
/**
|
|
34
|
+
* The row for one dispatched call. `nowMs` is the wall clock — the second of
|
|
35
|
+
* the layer's two recorded wall-clock reads (the first is a default `now`).
|
|
36
|
+
*/
|
|
37
|
+
export declare function callRow(call: {
|
|
38
|
+
readonly toolCallId: string;
|
|
39
|
+
readonly toolName: string;
|
|
40
|
+
}, at: {
|
|
41
|
+
readonly turn: number;
|
|
42
|
+
readonly iteration: number;
|
|
43
|
+
}, nowMs: number, drift?: CallDrift): CallRow;
|
|
44
|
+
/**
|
|
45
|
+
* The row for a resume whose passed `time` differs from the turn's kept clock
|
|
46
|
+
* (`clock.ts` · `clockChange`), or `undefined` when nothing differs. The kept
|
|
47
|
+
* clock is the turn's `clock` row; it is never replaced.
|
|
48
|
+
*/
|
|
49
|
+
export declare function clockOnResumeRow(passed: ReadRunTime, kept: ClockRow, at: {
|
|
50
|
+
readonly turn: number;
|
|
51
|
+
readonly iteration: number;
|
|
52
|
+
}): ClockOnResumeRow | undefined;
|
|
53
|
+
/**
|
|
54
|
+
* The `time-reading` rows for one checked reading (`reader.ts` ·
|
|
55
|
+
* `checkReading`): one per mention, resolved against the turn's clock — or
|
|
56
|
+
* one `mentions: 0` row. The one owner of the law "a reading only PROPOSES"
|
|
57
|
+
* (the owner's decision "Always confirm", time design TQ29): whatever the
|
|
58
|
+
* reader's kind, no reading is settled by the library and none is the
|
|
59
|
+
* person's words — its candidates carry `said: []` and its choice stays
|
|
60
|
+
* `open` with `confirm` (the policy may still remove readings), so the time
|
|
61
|
+
* ask offers it, pre-filled with its window and zone, and only the person's
|
|
62
|
+
* answer settles it (`rows.ts` · `TimeAnswerRow`).
|
|
63
|
+
*/
|
|
64
|
+
export declare function timeReadingRows(input: {
|
|
65
|
+
readonly mentions: readonly CheckedMention[];
|
|
66
|
+
readonly clock: TimeClock;
|
|
67
|
+
readonly policy: TimePolicy;
|
|
68
|
+
readonly reader: TimeReaderStamp;
|
|
69
|
+
readonly tzdata: string;
|
|
70
|
+
readonly at: {
|
|
71
|
+
readonly turn: number;
|
|
72
|
+
readonly iteration: number;
|
|
73
|
+
};
|
|
74
|
+
}): TimeReadingRow[];
|
|
75
|
+
/** The `call-window` row for one call's decision (`bind.ts` · `callWindowOf`). */
|
|
76
|
+
export declare function callWindowRow(call: {
|
|
77
|
+
readonly toolCallId: string;
|
|
78
|
+
readonly toolName: string;
|
|
79
|
+
}, decision: CallWindow, at: {
|
|
80
|
+
readonly turn: number;
|
|
81
|
+
readonly iteration: number;
|
|
82
|
+
}): CallWindowRow;
|