@namzu/sdk 38.2.1 → 39.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +700 -0
- package/dist/advisory/executor.d.ts +10 -1
- package/dist/advisory/executor.d.ts.map +1 -1
- package/dist/advisory/executor.js +5 -26
- package/dist/advisory/executor.js.map +1 -1
- package/dist/advisory/history.d.ts +9 -0
- package/dist/advisory/history.d.ts.map +1 -0
- package/dist/advisory/history.js +120 -0
- package/dist/advisory/history.js.map +1 -0
- package/dist/advisory/index.d.ts +1 -1
- package/dist/advisory/index.d.ts.map +1 -1
- package/dist/advisory/index.js.map +1 -1
- package/dist/agents/ReactiveAgent.d.ts.map +1 -1
- package/dist/agents/ReactiveAgent.js +3 -0
- package/dist/agents/ReactiveAgent.js.map +1 -1
- package/dist/agents/runAgent.d.ts +10 -0
- package/dist/agents/runAgent.d.ts.map +1 -1
- package/dist/agents/runAgent.js +3 -0
- package/dist/agents/runAgent.js.map +1 -1
- package/dist/compaction/manual.d.ts +6 -0
- package/dist/compaction/manual.d.ts.map +1 -1
- package/dist/compaction/manual.js +21 -2
- package/dist/compaction/manual.js.map +1 -1
- package/dist/compaction/summary.d.ts.map +1 -1
- package/dist/compaction/summary.js +4 -1
- package/dist/compaction/summary.js.map +1 -1
- package/dist/config/runtime.js +2 -2
- package/dist/config/runtime.js.map +1 -1
- package/dist/contracts/schemas.js +1 -1
- package/dist/contracts/schemas.js.map +1 -1
- package/dist/eval/harness-protection.d.ts +18 -0
- package/dist/eval/harness-protection.d.ts.map +1 -0
- package/dist/eval/harness-protection.js +58 -0
- package/dist/eval/harness-protection.js.map +1 -0
- package/dist/eval/harness-verification.d.ts +6 -1
- package/dist/eval/harness-verification.d.ts.map +1 -1
- package/dist/eval/harness-verification.js +19 -2
- package/dist/eval/harness-verification.js.map +1 -1
- package/dist/eval/index.d.ts +1 -0
- package/dist/eval/index.d.ts.map +1 -1
- package/dist/eval/index.js.map +1 -1
- package/dist/manager/resident/activity.d.ts +50 -0
- package/dist/manager/resident/activity.d.ts.map +1 -0
- package/dist/manager/resident/activity.js +125 -0
- package/dist/manager/resident/activity.js.map +1 -0
- package/dist/manager/resident/agenda.d.ts +13 -1
- package/dist/manager/resident/agenda.d.ts.map +1 -1
- package/dist/manager/resident/agenda.js +40 -5
- package/dist/manager/resident/agenda.js.map +1 -1
- package/dist/manager/resident/consumption.d.ts +104 -0
- package/dist/manager/resident/consumption.d.ts.map +1 -0
- package/dist/manager/resident/consumption.js +233 -0
- package/dist/manager/resident/consumption.js.map +1 -0
- package/dist/manager/resident/evidence-recall.d.ts +24 -0
- package/dist/manager/resident/evidence-recall.d.ts.map +1 -0
- package/dist/manager/resident/evidence-recall.js +295 -0
- package/dist/manager/resident/evidence-recall.js.map +1 -0
- package/dist/manager/resident/history-disk.d.ts +10 -0
- package/dist/manager/resident/history-disk.d.ts.map +1 -0
- package/dist/manager/resident/history-disk.js +50 -0
- package/dist/manager/resident/history-disk.js.map +1 -0
- package/dist/manager/resident/history.d.ts +79 -0
- package/dist/manager/resident/history.d.ts.map +1 -0
- package/dist/manager/resident/history.js +203 -0
- package/dist/manager/resident/history.js.map +1 -0
- package/dist/manager/resident/initiative.d.ts.map +1 -1
- package/dist/manager/resident/initiative.js +11 -3
- package/dist/manager/resident/initiative.js.map +1 -1
- package/dist/manager/resident/learning-cycle.d.ts +131 -0
- package/dist/manager/resident/learning-cycle.d.ts.map +1 -0
- package/dist/manager/resident/learning-cycle.js +306 -0
- package/dist/manager/resident/learning-cycle.js.map +1 -0
- package/dist/manager/resident/learning-observation.d.ts +80 -0
- package/dist/manager/resident/learning-observation.d.ts.map +1 -0
- package/dist/manager/resident/learning-observation.js +22 -0
- package/dist/manager/resident/learning-observation.js.map +1 -0
- package/dist/manager/resident/learning-store.d.ts +106 -0
- package/dist/manager/resident/learning-store.d.ts.map +1 -0
- package/dist/manager/resident/learning-store.js +598 -0
- package/dist/manager/resident/learning-store.js.map +1 -0
- package/dist/manager/resident/learning.d.ts +246 -3
- package/dist/manager/resident/learning.d.ts.map +1 -1
- package/dist/manager/resident/learning.js +96 -6
- package/dist/manager/resident/learning.js.map +1 -1
- package/dist/manager/resident/outbox.d.ts +4 -4
- package/dist/manager/resident/store.d.ts +37 -4
- package/dist/manager/resident/store.d.ts.map +1 -1
- package/dist/manager/resident/store.js +27 -3
- package/dist/manager/resident/store.js.map +1 -1
- package/dist/manager/resident/tool-evidence.d.ts +71 -0
- package/dist/manager/resident/tool-evidence.d.ts.map +1 -0
- package/dist/manager/resident/tool-evidence.js +285 -0
- package/dist/manager/resident/tool-evidence.js.map +1 -0
- package/dist/manager/run/persistence.d.ts.map +1 -1
- package/dist/manager/run/persistence.js +6 -0
- package/dist/manager/run/persistence.js.map +1 -1
- package/dist/plugin/loader.d.ts.map +1 -1
- package/dist/plugin/loader.js +5 -3
- package/dist/plugin/loader.js.map +1 -1
- package/dist/prompt/coding-agent-doctrine.d.ts +1 -1
- package/dist/prompt/coding-agent-doctrine.d.ts.map +1 -1
- package/dist/prompt/coding-agent-doctrine.js +2 -0
- package/dist/prompt/coding-agent-doctrine.js.map +1 -1
- package/dist/prompt/index.d.ts +2 -0
- package/dist/prompt/index.d.ts.map +1 -1
- package/dist/prompt/index.js +1 -0
- package/dist/prompt/index.js.map +1 -1
- package/dist/prompt/resident-learning.d.ts +19 -0
- package/dist/prompt/resident-learning.d.ts.map +1 -0
- package/dist/prompt/resident-learning.js +125 -0
- package/dist/prompt/resident-learning.js.map +1 -0
- package/dist/prompt/resident-step.d.ts +8 -1
- package/dist/prompt/resident-step.d.ts.map +1 -1
- package/dist/prompt/resident-step.js +65 -4
- package/dist/prompt/resident-step.js.map +1 -1
- package/dist/provider/collect-chat-completion.d.ts +2 -1
- package/dist/provider/collect-chat-completion.d.ts.map +1 -1
- package/dist/provider/collect-chat-completion.js +7 -6
- package/dist/provider/collect-chat-completion.js.map +1 -1
- package/dist/provider/fallback.d.ts.map +1 -1
- package/dist/provider/fallback.js +2 -1
- package/dist/provider/fallback.js.map +1 -1
- package/dist/provider/stream-text.d.ts +16 -0
- package/dist/provider/stream-text.d.ts.map +1 -0
- package/dist/provider/stream-text.js +51 -0
- package/dist/provider/stream-text.js.map +1 -0
- package/dist/public-runtime.d.ts +13 -3
- package/dist/public-runtime.d.ts.map +1 -1
- package/dist/public-runtime.js +12 -3
- package/dist/public-runtime.js.map +1 -1
- package/dist/public-tools.d.ts +2 -0
- package/dist/public-tools.d.ts.map +1 -1
- package/dist/public-tools.js +2 -0
- package/dist/public-tools.js.map +1 -1
- package/dist/public-types.d.ts +15 -3
- package/dist/public-types.d.ts.map +1 -1
- package/dist/run/LimitChecker.js +3 -3
- package/dist/run/LimitChecker.js.map +1 -1
- package/dist/run/evidence-query.d.ts +41 -0
- package/dist/run/evidence-query.d.ts.map +1 -0
- package/dist/run/evidence-query.js +270 -0
- package/dist/run/evidence-query.js.map +1 -0
- package/dist/run/evidence-recall.d.ts +99 -0
- package/dist/run/evidence-recall.d.ts.map +1 -0
- package/dist/run/evidence-recall.js +633 -0
- package/dist/run/evidence-recall.js.map +1 -0
- package/dist/run/index.d.ts +2 -0
- package/dist/run/index.d.ts.map +1 -1
- package/dist/run/index.js +1 -0
- package/dist/run/index.js.map +1 -1
- package/dist/run/json-claim-verifier.d.ts +83 -0
- package/dist/run/json-claim-verifier.d.ts.map +1 -0
- package/dist/run/json-claim-verifier.js +200 -0
- package/dist/run/json-claim-verifier.js.map +1 -0
- package/dist/run/preparation-context-error.d.ts +10 -0
- package/dist/run/preparation-context-error.d.ts.map +1 -0
- package/dist/run/preparation-context-error.js +15 -0
- package/dist/run/preparation-context-error.js.map +1 -0
- package/dist/run-query/index.d.ts +3 -1
- package/dist/run-query/index.d.ts.map +1 -1
- package/dist/runtime/query/callback-inference.d.ts +8 -0
- package/dist/runtime/query/callback-inference.d.ts.map +1 -0
- package/dist/runtime/query/callback-inference.js +89 -0
- package/dist/runtime/query/callback-inference.js.map +1 -0
- package/dist/runtime/query/checkpoint.d.ts +4 -0
- package/dist/runtime/query/checkpoint.d.ts.map +1 -1
- package/dist/runtime/query/checkpoint.js +13 -0
- package/dist/runtime/query/checkpoint.js.map +1 -1
- package/dist/runtime/query/events.d.ts +1 -0
- package/dist/runtime/query/events.d.ts.map +1 -1
- package/dist/runtime/query/events.js +18 -0
- package/dist/runtime/query/events.js.map +1 -1
- package/dist/runtime/query/executor.d.ts +7 -1
- package/dist/runtime/query/executor.d.ts.map +1 -1
- package/dist/runtime/query/executor.js +38 -7
- package/dist/runtime/query/executor.js.map +1 -1
- package/dist/runtime/query/file-evidence-context.d.ts +5 -0
- package/dist/runtime/query/file-evidence-context.d.ts.map +1 -0
- package/dist/runtime/query/file-evidence-context.js +64 -0
- package/dist/runtime/query/file-evidence-context.js.map +1 -0
- package/dist/runtime/query/guard.d.ts.map +1 -1
- package/dist/runtime/query/guard.js +4 -0
- package/dist/runtime/query/guard.js.map +1 -1
- package/dist/runtime/query/index.d.ts +10 -1
- package/dist/runtime/query/index.d.ts.map +1 -1
- package/dist/runtime/query/index.js +39 -24
- package/dist/runtime/query/index.js.map +1 -1
- package/dist/runtime/query/iteration/index.d.ts +9 -31
- package/dist/runtime/query/iteration/index.d.ts.map +1 -1
- package/dist/runtime/query/iteration/index.js +231 -93
- package/dist/runtime/query/iteration/index.js.map +1 -1
- package/dist/runtime/query/iteration/phases/advisory.d.ts +2 -1
- package/dist/runtime/query/iteration/phases/advisory.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/advisory.js +2 -1
- package/dist/runtime/query/iteration/phases/advisory.js.map +1 -1
- package/dist/runtime/query/iteration/phases/context.d.ts +2 -1
- package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/context.js.map +1 -1
- package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/tool-review.js +3 -0
- package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
- package/dist/runtime/query/iteration/provider-rejected-image.d.ts +2 -1
- package/dist/runtime/query/iteration/provider-rejected-image.d.ts.map +1 -1
- package/dist/runtime/query/iteration/provider-rejected-image.js +5 -2
- package/dist/runtime/query/iteration/provider-rejected-image.js.map +1 -1
- package/dist/runtime/query/iteration/stream-turn.d.ts +4 -1
- package/dist/runtime/query/iteration/stream-turn.d.ts.map +1 -1
- package/dist/runtime/query/iteration/stream-turn.js +22 -8
- package/dist/runtime/query/iteration/stream-turn.js.map +1 -1
- package/dist/runtime/query/resume-pending.d.ts +18 -33
- package/dist/runtime/query/resume-pending.d.ts.map +1 -1
- package/dist/runtime/query/resume-pending.js +59 -42
- package/dist/runtime/query/resume-pending.js.map +1 -1
- package/dist/runtime/query/review-policy.d.ts +4 -4
- package/dist/runtime/query/review-policy.d.ts.map +1 -1
- package/dist/runtime/query/review-policy.js +10 -9
- package/dist/runtime/query/review-policy.js.map +1 -1
- package/dist/runtime/query/sandbox-lifecycle.d.ts.map +1 -1
- package/dist/runtime/query/sandbox-lifecycle.js +4 -0
- package/dist/runtime/query/sandbox-lifecycle.js.map +1 -1
- package/dist/runtime/query/tool-output-budget.d.ts +10 -6
- package/dist/runtime/query/tool-output-budget.d.ts.map +1 -1
- package/dist/runtime/query/tool-output-budget.js +54 -12
- package/dist/runtime/query/tool-output-budget.js.map +1 -1
- package/dist/runtime/query/tooling.d.ts +3 -1
- package/dist/runtime/query/tooling.d.ts.map +1 -1
- package/dist/runtime/query/tooling.js +4 -0
- package/dist/runtime/query/tooling.js.map +1 -1
- package/dist/scheduler/completion-inbox.d.ts +3 -0
- package/dist/scheduler/completion-inbox.d.ts.map +1 -1
- package/dist/scheduler/completion-inbox.js +28 -0
- package/dist/scheduler/completion-inbox.js.map +1 -1
- package/dist/store/evidence/compaction-archive.d.ts +109 -0
- package/dist/store/evidence/compaction-archive.d.ts.map +1 -0
- package/dist/store/evidence/compaction-archive.js +125 -0
- package/dist/store/evidence/compaction-archive.js.map +1 -0
- package/dist/store/evidence/compaction-provenance.d.ts +7 -0
- package/dist/store/evidence/compaction-provenance.d.ts.map +1 -0
- package/dist/store/evidence/compaction-provenance.js +49 -0
- package/dist/store/evidence/compaction-provenance.js.map +1 -0
- package/dist/store/evidence/compaction-text.d.ts +16 -0
- package/dist/store/evidence/compaction-text.d.ts.map +1 -0
- package/dist/store/evidence/compaction-text.js +51 -0
- package/dist/store/evidence/compaction-text.js.map +1 -0
- package/dist/store/evidence/disk.d.ts +11 -0
- package/dist/store/evidence/disk.d.ts.map +1 -0
- package/dist/store/evidence/disk.js +367 -0
- package/dist/store/evidence/disk.js.map +1 -0
- package/dist/store/evidence/format.d.ts +25 -0
- package/dist/store/evidence/format.d.ts.map +1 -0
- package/dist/store/evidence/format.js +115 -0
- package/dist/store/evidence/format.js.map +1 -0
- package/dist/store/evidence/index-page.d.ts +208 -0
- package/dist/store/evidence/index-page.d.ts.map +1 -0
- package/dist/store/evidence/index-page.js +262 -0
- package/dist/store/evidence/index-page.js.map +1 -0
- package/dist/store/evidence/io.d.ts +24 -0
- package/dist/store/evidence/io.d.ts.map +1 -0
- package/dist/store/evidence/io.js +69 -0
- package/dist/store/evidence/io.js.map +1 -0
- package/dist/store/evidence/linked.d.ts +9 -0
- package/dist/store/evidence/linked.d.ts.map +1 -0
- package/dist/store/evidence/linked.js +314 -0
- package/dist/store/evidence/linked.js.map +1 -0
- package/dist/store/evidence/passages.d.ts +15 -0
- package/dist/store/evidence/passages.d.ts.map +1 -0
- package/dist/store/evidence/passages.js +72 -0
- package/dist/store/evidence/passages.js.map +1 -0
- package/dist/store/evidence/record-chain.d.ts +42 -0
- package/dist/store/evidence/record-chain.d.ts.map +1 -0
- package/dist/store/evidence/record-chain.js +111 -0
- package/dist/store/evidence/record-chain.js.map +1 -0
- package/dist/store/evidence/search-input.d.ts +21 -0
- package/dist/store/evidence/search-input.d.ts.map +1 -0
- package/dist/store/evidence/search-input.js +44 -0
- package/dist/store/evidence/search-input.js.map +1 -0
- package/dist/store/evidence/selection.d.ts +9 -0
- package/dist/store/evidence/selection.d.ts.map +1 -0
- package/dist/store/evidence/selection.js +17 -0
- package/dist/store/evidence/selection.js.map +1 -0
- package/dist/store/evidence/source-kind.d.ts +11 -0
- package/dist/store/evidence/source-kind.d.ts.map +1 -0
- package/dist/store/evidence/source-kind.js +26 -0
- package/dist/store/evidence/source-kind.js.map +1 -0
- package/dist/store/evidence/source-text.d.ts +51 -0
- package/dist/store/evidence/source-text.d.ts.map +1 -0
- package/dist/store/evidence/source-text.js +213 -0
- package/dist/store/evidence/source-text.js.map +1 -0
- package/dist/store/evidence/types.d.ts +162 -0
- package/dist/store/evidence/types.d.ts.map +1 -0
- package/dist/store/evidence/types.js +2 -0
- package/dist/store/evidence/types.js.map +1 -0
- package/dist/store/memory/disk.d.ts +2 -0
- package/dist/store/memory/disk.d.ts.map +1 -1
- package/dist/store/memory/disk.js +2 -1
- package/dist/store/memory/disk.js.map +1 -1
- package/dist/store/run/disk.d.ts +10 -0
- package/dist/store/run/disk.d.ts.map +1 -1
- package/dist/store/run/disk.js +87 -7
- package/dist/store/run/disk.js.map +1 -1
- package/dist/store/run/memory.d.ts +1 -0
- package/dist/store/run/memory.d.ts.map +1 -1
- package/dist/store/run/memory.js +10 -0
- package/dist/store/run/memory.js.map +1 -1
- package/dist/store/run/tool-executions.d.ts +13 -0
- package/dist/store/run/tool-executions.d.ts.map +1 -0
- package/dist/store/run/tool-executions.js +99 -0
- package/dist/store/run/tool-executions.js.map +1 -0
- package/dist/store/session/index.d.ts +2 -0
- package/dist/store/session/index.d.ts.map +1 -1
- package/dist/store/session/index.js +1 -0
- package/dist/store/session/index.js.map +1 -1
- package/dist/store/session/sqlite.d.ts +57 -0
- package/dist/store/session/sqlite.d.ts.map +1 -0
- package/dist/store/session/sqlite.js +430 -0
- package/dist/store/session/sqlite.js.map +1 -0
- package/dist/tools/builtins/job.d.ts.map +1 -1
- package/dist/tools/builtins/job.js +4 -5
- package/dist/tools/builtins/job.js.map +1 -1
- package/dist/tools/builtins/write-file.js +2 -2
- package/dist/tools/builtins/write-file.js.map +1 -1
- package/dist/tools/defineTool.d.ts +2 -1
- package/dist/tools/defineTool.d.ts.map +1 -1
- package/dist/tools/defineTool.js +1 -1
- package/dist/tools/defineTool.js.map +1 -1
- package/dist/tools/file-read-tracker.d.ts.map +1 -1
- package/dist/tools/file-read-tracker.js +12 -3
- package/dist/tools/file-read-tracker.js.map +1 -1
- package/dist/tools/resident-history.d.ts +10 -0
- package/dist/tools/resident-history.d.ts.map +1 -0
- package/dist/tools/resident-history.js +80 -0
- package/dist/tools/resident-history.js.map +1 -0
- package/dist/tools/resident-tool-evidence.d.ts +5 -0
- package/dist/tools/resident-tool-evidence.d.ts.map +1 -0
- package/dist/tools/resident-tool-evidence.js +57 -0
- package/dist/tools/resident-tool-evidence.js.map +1 -0
- package/dist/types/advisory/config.d.ts +7 -0
- package/dist/types/advisory/config.d.ts.map +1 -1
- package/dist/types/agent/reactive.d.ts +1 -0
- package/dist/types/agent/reactive.d.ts.map +1 -1
- package/dist/types/authorization/index.d.ts +9 -9
- package/dist/types/authorization/index.d.ts.map +1 -1
- package/dist/types/authorization/index.js +1 -1
- package/dist/types/authorization/index.js.map +1 -1
- package/dist/types/hitl/index.d.ts +4 -0
- package/dist/types/hitl/index.d.ts.map +1 -1
- package/dist/types/hitl/index.js.map +1 -1
- package/dist/types/message/index.d.ts +16 -2
- package/dist/types/message/index.d.ts.map +1 -1
- package/dist/types/message/index.js +8 -1
- package/dist/types/message/index.js.map +1 -1
- package/dist/types/provider/chat.d.ts +2 -0
- package/dist/types/provider/chat.d.ts.map +1 -1
- package/dist/types/provider/stream.d.ts +4 -0
- package/dist/types/provider/stream.d.ts.map +1 -1
- package/dist/types/run/answer-review.d.ts +34 -3
- package/dist/types/run/answer-review.d.ts.map +1 -1
- package/dist/types/run/config.d.ts +3 -0
- package/dist/types/run/config.d.ts.map +1 -1
- package/dist/types/run/entity.d.ts +7 -0
- package/dist/types/run/entity.d.ts.map +1 -1
- package/dist/types/run/events.d.ts +31 -8
- package/dist/types/run/events.d.ts.map +1 -1
- package/dist/types/run/events.js.map +1 -1
- package/dist/types/run/prepare-step.d.ts +53 -8
- package/dist/types/run/prepare-step.d.ts.map +1 -1
- package/dist/types/run/store.d.ts +29 -4
- package/dist/types/run/store.d.ts.map +1 -1
- package/dist/types/run/store.js +0 -28
- package/dist/types/run/store.js.map +1 -1
- package/dist/types/tool/index.d.ts +15 -1
- package/dist/types/tool/index.d.ts.map +1 -1
- package/dist/types/tool/index.js.map +1 -1
- package/dist/utils/await-with-abort.d.ts +8 -0
- package/dist/utils/await-with-abort.d.ts.map +1 -0
- package/dist/utils/await-with-abort.js +28 -0
- package/dist/utils/await-with-abort.js.map +1 -0
- package/dist/utils/evidence-time.d.ts +3 -0
- package/dist/utils/evidence-time.d.ts.map +1 -0
- package/dist/utils/evidence-time.js +10 -0
- package/dist/utils/evidence-time.js.map +1 -0
- package/dist/utils/evidence-tokens.d.ts +13 -0
- package/dist/utils/evidence-tokens.d.ts.map +1 -0
- package/dist/utils/evidence-tokens.js +29 -0
- package/dist/utils/evidence-tokens.js.map +1 -0
- package/package.json +1 -1
- package/src/advisory/executor.ts +15 -30
- package/src/advisory/history.ts +126 -0
- package/src/advisory/index.ts +5 -1
- package/src/agents/ReactiveAgent.ts +3 -0
- package/src/agents/runAgent.ts +14 -1
- package/src/compaction/manual.ts +30 -2
- package/src/compaction/summary.ts +4 -1
- package/src/config/runtime.ts +2 -2
- package/src/contracts/schemas.ts +1 -1
- package/src/eval/harness-protection.ts +79 -0
- package/src/eval/harness-verification.ts +31 -1
- package/src/eval/index.ts +1 -0
- package/src/manager/resident/activity.ts +187 -0
- package/src/manager/resident/agenda.ts +59 -5
- package/src/manager/resident/consumption.ts +311 -0
- package/src/manager/resident/evidence-recall.ts +363 -0
- package/src/manager/resident/history-disk.ts +63 -0
- package/src/manager/resident/history.ts +312 -0
- package/src/manager/resident/initiative.ts +13 -3
- package/src/manager/resident/learning-cycle.ts +499 -0
- package/src/manager/resident/learning-observation.ts +39 -0
- package/src/manager/resident/learning-store.ts +813 -0
- package/src/manager/resident/learning.ts +132 -8
- package/src/manager/resident/store.ts +31 -3
- package/src/manager/resident/tool-evidence.ts +412 -0
- package/src/manager/run/persistence.ts +6 -0
- package/src/plugin/loader.ts +8 -3
- package/src/prompt/coding-agent-doctrine.ts +2 -0
- package/src/prompt/index.ts +2 -0
- package/src/prompt/resident-learning.ts +143 -0
- package/src/prompt/resident-step.ts +83 -3
- package/src/provider/collect-chat-completion.ts +7 -6
- package/src/provider/fallback.ts +2 -1
- package/src/provider/stream-text.ts +56 -0
- package/src/public-runtime.ts +30 -0
- package/src/public-tools.ts +3 -0
- package/src/public-types.ts +98 -0
- package/src/run/LimitChecker.ts +3 -3
- package/src/run/evidence-query.ts +333 -0
- package/src/run/evidence-recall.ts +854 -0
- package/src/run/index.ts +11 -0
- package/src/run/json-claim-verifier.ts +298 -0
- package/src/run/preparation-context-error.ts +16 -0
- package/src/run-query/index.ts +1 -1
- package/src/runtime/query/callback-inference.ts +94 -0
- package/src/runtime/query/checkpoint.ts +14 -0
- package/src/runtime/query/events.ts +22 -0
- package/src/runtime/query/executor.ts +51 -9
- package/src/runtime/query/file-evidence-context.ts +65 -0
- package/src/runtime/query/guard.ts +2 -0
- package/src/runtime/query/index.ts +49 -25
- package/src/runtime/query/iteration/index.ts +269 -86
- package/src/runtime/query/iteration/phases/advisory.ts +3 -0
- package/src/runtime/query/iteration/phases/context.ts +2 -0
- package/src/runtime/query/iteration/phases/tool-review.ts +3 -0
- package/src/runtime/query/iteration/provider-rejected-image.ts +6 -1
- package/src/runtime/query/iteration/stream-turn.ts +35 -8
- package/src/runtime/query/resume-pending.ts +65 -40
- package/src/runtime/query/review-policy.ts +13 -9
- package/src/runtime/query/sandbox-lifecycle.ts +3 -0
- package/src/runtime/query/tool-output-budget.ts +65 -13
- package/src/runtime/query/tooling.ts +7 -1
- package/src/scheduler/completion-inbox.ts +26 -0
- package/src/store/evidence/compaction-archive.ts +139 -0
- package/src/store/evidence/compaction-provenance.ts +52 -0
- package/src/store/evidence/compaction-text.ts +61 -0
- package/src/store/evidence/disk.ts +461 -0
- package/src/store/evidence/format.ts +126 -0
- package/src/store/evidence/index-page.ts +292 -0
- package/src/store/evidence/io.ts +95 -0
- package/src/store/evidence/linked.ts +365 -0
- package/src/store/evidence/passages.ts +88 -0
- package/src/store/evidence/record-chain.ts +108 -0
- package/src/store/evidence/search-input.ts +62 -0
- package/src/store/evidence/selection.ts +25 -0
- package/src/store/evidence/source-kind.ts +36 -0
- package/src/store/evidence/source-text.ts +285 -0
- package/src/store/evidence/types.ts +177 -0
- package/src/store/memory/disk.ts +4 -1
- package/src/store/run/disk.ts +110 -8
- package/src/store/run/memory.ts +10 -0
- package/src/store/run/tool-executions.ts +112 -0
- package/src/store/session/index.ts +2 -0
- package/src/store/session/sqlite.ts +584 -0
- package/src/tools/builtins/job.ts +4 -5
- package/src/tools/builtins/write-file.ts +2 -2
- package/src/tools/defineTool.ts +4 -2
- package/src/tools/file-read-tracker.ts +8 -2
- package/src/tools/resident-history.ts +86 -0
- package/src/tools/resident-tool-evidence.ts +68 -0
- package/src/types/advisory/config.ts +7 -0
- package/src/types/agent/reactive.ts +1 -0
- package/src/types/authorization/index.ts +2 -2
- package/src/types/hitl/index.ts +4 -0
- package/src/types/message/index.ts +20 -0
- package/src/types/provider/chat.ts +2 -0
- package/src/types/provider/stream.ts +4 -0
- package/src/types/run/answer-review.ts +34 -3
- package/src/types/run/config.ts +3 -0
- package/src/types/run/entity.ts +7 -0
- package/src/types/run/events.ts +31 -8
- package/src/types/run/prepare-step.ts +59 -8
- package/src/types/run/store.ts +35 -4
- package/src/types/tool/index.ts +19 -1
- package/src/utils/await-with-abort.ts +26 -0
- package/src/utils/evidence-time.ts +9 -0
- package/src/utils/evidence-tokens.ts +32 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { resolve } from 'node:path'
|
|
2
|
+
import { isClearedToolResult } from '../../compaction/tool-result-editing.js'
|
|
3
|
+
import { fingerprintContent } from '../../tools/builtins/content-fingerprint.js'
|
|
4
|
+
import { WriteFileTool } from '../../tools/builtins/write-file.js'
|
|
5
|
+
import type { Message, ToolCall } from '../../types/message/index.js'
|
|
6
|
+
import type { FileReadTracker } from '../../types/tool/index.js'
|
|
7
|
+
|
|
8
|
+
/** Join visible call bodies, successful receipts and this executor's observation ledger. */
|
|
9
|
+
export function describeVisibleFileEvidence(
|
|
10
|
+
messages: readonly Message[],
|
|
11
|
+
tracker: FileReadTracker,
|
|
12
|
+
workingDirectory: string,
|
|
13
|
+
sandboxed: boolean,
|
|
14
|
+
): string | undefined {
|
|
15
|
+
// Execution-owned witnesses survive transparent wrappers; a name alone proves nothing.
|
|
16
|
+
if (!tracker.writeCallId || !tracker.fingerprint) return
|
|
17
|
+
const calls = new Map<string, ToolCall | null>()
|
|
18
|
+
const results = new Map<string, Message | null>()
|
|
19
|
+
for (const message of messages) {
|
|
20
|
+
if (message.role === 'assistant') {
|
|
21
|
+
for (const call of message.toolCalls ?? []) {
|
|
22
|
+
calls.set(call.id, calls.has(call.id) ? null : call)
|
|
23
|
+
}
|
|
24
|
+
} else if (message.role === 'tool') {
|
|
25
|
+
results.set(message.toolCallId, results.has(message.toolCallId) ? null : message)
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
const files = new Map<string, { path: string; bodyInCall: string; observedFingerprint: string }>()
|
|
29
|
+
for (const [id, call] of calls) {
|
|
30
|
+
const receipt = results.get(id)
|
|
31
|
+
if (
|
|
32
|
+
!call ||
|
|
33
|
+
call.function.name !== 'write' ||
|
|
34
|
+
call.metadata?.inputTruncated ||
|
|
35
|
+
call.function.arguments.length > 32_000 ||
|
|
36
|
+
id.length > 256 ||
|
|
37
|
+
!receipt ||
|
|
38
|
+
receipt.role !== 'tool' ||
|
|
39
|
+
receipt.isError ||
|
|
40
|
+
typeof receipt.content !== 'string' ||
|
|
41
|
+
isClearedToolResult(receipt.content)
|
|
42
|
+
)
|
|
43
|
+
continue
|
|
44
|
+
try {
|
|
45
|
+
const input = WriteFileTool.inputSchema.safeParse(JSON.parse(call.function.arguments))
|
|
46
|
+
if (!input.success || input.data.path.length > 512) continue
|
|
47
|
+
const body = input.data.content ?? input.data.newStr
|
|
48
|
+
if (typeof body !== 'string') continue
|
|
49
|
+
const key = sandboxed ? input.data.path : resolve(workingDirectory, input.data.path)
|
|
50
|
+
const fingerprint = fingerprintContent(body)
|
|
51
|
+
if (tracker.writeCallId(key) !== id || tracker.fingerprint(key) !== fingerprint) continue
|
|
52
|
+
files.delete(key)
|
|
53
|
+
files.set(key, {
|
|
54
|
+
path: input.data.path,
|
|
55
|
+
bodyInCall: id,
|
|
56
|
+
observedFingerprint: fingerprint,
|
|
57
|
+
})
|
|
58
|
+
if (files.size > 6) files.delete(files.keys().next().value as string)
|
|
59
|
+
} catch {
|
|
60
|
+
// Malformed retained inputs or a custom tracker cannot establish evidence.
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (files.size === 0) return
|
|
64
|
+
return `Visible file evidence (this request only): each complete body remains in the named successful write call and matches the latest conversation observation. Reuse that body for a targeted edit; a read solely to recall it is unnecessary. This is NOT a fresh disk check. Built-in edit/write still compare the disk body at mutation admission and refuse observed drift; on refusal inspect the current file and replan. Missing entries establish nothing.\n${JSON.stringify([...files.values()])}`
|
|
65
|
+
}
|
|
@@ -83,6 +83,7 @@ export class GuardCoordinator {
|
|
|
83
83
|
* on the RUN rather than on the process now hosting it.
|
|
84
84
|
*/
|
|
85
85
|
remainingBeforeFinalizeMs(): number {
|
|
86
|
+
if (this.limitConfig.timeoutMs === 0) return Number.POSITIVE_INFINITY
|
|
86
87
|
const finalizeAt = this.limitConfig.timeoutMs * this.limitConfig.budgetWarningThreshold
|
|
87
88
|
return Math.max(0, finalizeAt - (Date.now() - this.startTime))
|
|
88
89
|
}
|
|
@@ -96,6 +97,7 @@ export class GuardCoordinator {
|
|
|
96
97
|
* deadline around such work instead of inventing a second clock.
|
|
97
98
|
*/
|
|
98
99
|
remainingUntilTimeoutMs(): number {
|
|
100
|
+
if (this.limitConfig.timeoutMs === 0) return Number.POSITIVE_INFINITY
|
|
99
101
|
return Math.max(0, this.limitConfig.timeoutMs - (Date.now() - this.startTime))
|
|
100
102
|
}
|
|
101
103
|
|
|
@@ -139,10 +139,10 @@ import { ResultAssembler } from './result.js'
|
|
|
139
139
|
import {
|
|
140
140
|
type PendingResumePlan,
|
|
141
141
|
applyPendingResume,
|
|
142
|
+
interruptedToolCalls,
|
|
142
143
|
planCrashResume,
|
|
143
144
|
planPendingResume,
|
|
144
145
|
recoverCompletedCalls,
|
|
145
|
-
unansweredToolCalls,
|
|
146
146
|
} from './resume-pending.js'
|
|
147
147
|
import {
|
|
148
148
|
acquireSandbox,
|
|
@@ -362,6 +362,14 @@ export interface QueryParams {
|
|
|
362
362
|
* agent decides the rest is worth re-reading. Set `0` to disable.
|
|
363
363
|
*/
|
|
364
364
|
maxToolOutputChars?: number
|
|
365
|
+
/**
|
|
366
|
+
* Smaller preview for text that exceeded maxToolOutputChars, after its full
|
|
367
|
+
* host output and integrity manifest have been saved. Unset/0 keeps the old
|
|
368
|
+
* preview size. Does not change the spill threshold, rich blocks or ordinary
|
|
369
|
+
* results. A failed spill/manifest or a cap too small for its recovery path
|
|
370
|
+
* retains the ordinary output budget. Re-supply on resume.
|
|
371
|
+
*/
|
|
372
|
+
retainedToolPreviewChars?: number
|
|
365
373
|
|
|
366
374
|
/**
|
|
367
375
|
* Cap on the RICH channel of a single tool result, in base64 characters.
|
|
@@ -411,6 +419,7 @@ export interface QueryParams {
|
|
|
411
419
|
*
|
|
412
420
|
* Bounded by {@link maxAnswerReviews}. Never called on the forced-final
|
|
413
421
|
* turn, which exists to extract a closing summary under pressure.
|
|
422
|
+
* Exceptions or malformed verdicts fail the run; cancellation stops waiting.
|
|
414
423
|
*/
|
|
415
424
|
reviewAnswer?: ReviewAnswer
|
|
416
425
|
|
|
@@ -422,7 +431,7 @@ export interface QueryParams {
|
|
|
422
431
|
*/
|
|
423
432
|
promoteMemory?: PromoteMemory
|
|
424
433
|
|
|
425
|
-
/**
|
|
434
|
+
/** Corrections allowed before the run stops. Nonnegative safe integer; default 3. Consumed rejections survive checkpoints. */
|
|
426
435
|
maxAnswerReviews?: number
|
|
427
436
|
|
|
428
437
|
/** Called with each completed step, as it completes. */
|
|
@@ -931,11 +940,10 @@ async function resolveProviderContextWindow(
|
|
|
931
940
|
onAbort = () => resolve(interrupted)
|
|
932
941
|
resolverSignal.addEventListener('abort', onAbort, { once: true })
|
|
933
942
|
})
|
|
934
|
-
//
|
|
935
|
-
//
|
|
936
|
-
//
|
|
937
|
-
|
|
938
|
-
const deadlineMs = Math.min(Math.max(0, timeoutMs), 2_147_483_647)
|
|
943
|
+
// Direct QueryParams callers can supply a large run deadline. The clamp
|
|
944
|
+
// avoids Node's >2^31-1 one-millisecond timer coercion during metadata lookup.
|
|
945
|
+
// Metadata discovery remains optional and bounded even without a run deadline.
|
|
946
|
+
const deadlineMs = timeoutMs === 0 ? 5_000 : Math.min(Math.max(0, timeoutMs), 2_147_483_647)
|
|
939
947
|
const timer = setTimeout(() => {
|
|
940
948
|
deadline.abort(new Error(`Provider context-window lookup exceeded ${deadlineMs}ms`))
|
|
941
949
|
}, deadlineMs)
|
|
@@ -1707,10 +1715,24 @@ export async function* query(params: QueryParams): AsyncGenerator<RunEvent, Run>
|
|
|
1707
1715
|
? new AuthorizationGate(gateConfig, ctx.log)
|
|
1708
1716
|
: undefined
|
|
1709
1717
|
|
|
1710
|
-
//
|
|
1711
|
-
//
|
|
1712
|
-
|
|
1713
|
-
const toolOutputDir =
|
|
1718
|
+
// The store is initialized when the async query starts, after tooling is
|
|
1719
|
+
// composed. Resolve lazily at execution time: capturing getRunDir() here
|
|
1720
|
+
// permanently disabled retention for fresh disk-backed invocations.
|
|
1721
|
+
const toolOutputDir = () => {
|
|
1722
|
+
const runDir = ctx.runMgr.getRunDir()
|
|
1723
|
+
return runDir ? join(runDir, TOOL_OUTPUT_DIR_NAME) : undefined
|
|
1724
|
+
}
|
|
1725
|
+
// The same invocation-owned capability serves tools and optional preparation.
|
|
1726
|
+
// Local cancellation cannot override the run's cancellation or settled state.
|
|
1727
|
+
const captureRunEvidence = async (maxReadBytes?: number, signal?: AbortSignal) => {
|
|
1728
|
+
const combined = signal
|
|
1729
|
+
? AbortSignal.any([ctx.abortController.signal, signal])
|
|
1730
|
+
: ctx.abortController.signal
|
|
1731
|
+
combined.throwIfAborted()
|
|
1732
|
+
const source = await eventTranslator.captureRunEvidence(maxReadBytes, combined)
|
|
1733
|
+
combined.throwIfAborted()
|
|
1734
|
+
return source
|
|
1735
|
+
}
|
|
1714
1736
|
|
|
1715
1737
|
const toolExecutor = ToolingBootstrap.init(
|
|
1716
1738
|
{
|
|
@@ -1750,13 +1772,17 @@ export async function* query(params: QueryParams): AsyncGenerator<RunEvent, Run>
|
|
|
1750
1772
|
...(params.maxToolOutputChars !== undefined
|
|
1751
1773
|
? { maxToolOutputChars: params.maxToolOutputChars }
|
|
1752
1774
|
: {}),
|
|
1775
|
+
...(params.retainedToolPreviewChars !== undefined
|
|
1776
|
+
? { retainedToolPreviewChars: params.retainedToolPreviewChars }
|
|
1777
|
+
: {}),
|
|
1753
1778
|
...(params.maxToolContentBytes !== undefined
|
|
1754
1779
|
? { maxToolContentBytes: params.maxToolContentBytes }
|
|
1755
1780
|
: {}),
|
|
1756
1781
|
// Overflow lands beside the run's other artifacts, so it is
|
|
1757
1782
|
// cleaned up with the run and reachable by the model's own
|
|
1758
1783
|
// `read`/`grep` without a new affordance.
|
|
1759
|
-
|
|
1784
|
+
toolOutputDir,
|
|
1785
|
+
captureRunEvidence,
|
|
1760
1786
|
...(params.repairToolCall ? { repairToolCall: params.repairToolCall } : {}),
|
|
1761
1787
|
...(verificationGate ? { authorizationGate: verificationGate } : {}),
|
|
1762
1788
|
recordAudit: (input) => ctx.runMgr.recordAudit(input),
|
|
@@ -1930,6 +1956,7 @@ export async function* query(params: QueryParams): AsyncGenerator<RunEvent, Run>
|
|
|
1930
1956
|
: undefined
|
|
1931
1957
|
return {
|
|
1932
1958
|
messages: ctx.runMgr.messages,
|
|
1959
|
+
turn: iterationOrchestrator.getAdvisoryTurnContext(),
|
|
1933
1960
|
...(summary !== undefined ? { workingStateSummary: summary } : {}),
|
|
1934
1961
|
...(advisoryConfig.includeToolCatalog
|
|
1935
1962
|
? { toolCatalog: params.tools.toLLMTools(effectiveAllowedTools) }
|
|
@@ -1950,6 +1977,7 @@ export async function* query(params: QueryParams): AsyncGenerator<RunEvent, Run>
|
|
|
1950
1977
|
}
|
|
1951
1978
|
|
|
1952
1979
|
const iterationOrchestrator = new IterationOrchestrator({
|
|
1980
|
+
captureRunEvidence,
|
|
1953
1981
|
provider: resilientProvider,
|
|
1954
1982
|
providerCapabilities: capabilities,
|
|
1955
1983
|
strictCapabilities: params.strictCapabilities === true,
|
|
@@ -2294,23 +2322,19 @@ export async function* query(params: QueryParams): AsyncGenerator<RunEvent, Run>
|
|
|
2294
2322
|
? planPendingResume(projectedCheckpoint, params.pendingDecision, ctx.log)
|
|
2295
2323
|
: null
|
|
2296
2324
|
|
|
2297
|
-
//
|
|
2298
|
-
//
|
|
2299
|
-
|
|
2300
|
-
// durable all along — it was simply never read back, and the
|
|
2301
|
-
// resumed run re-ran calls that had already charged a card or
|
|
2302
|
-
// sent an email.
|
|
2303
|
-
const unanswered = unansweredToolCalls(projectedCheckpoint.messages)
|
|
2325
|
+
// Recover completed observations and explicitly unknown outcomes.
|
|
2326
|
+
// A recorded start is not proof that its external effect failed.
|
|
2327
|
+
const unanswered = interruptedToolCalls(projectedCheckpoint.messages)
|
|
2304
2328
|
recoveredResults =
|
|
2305
2329
|
unanswered.length > 0
|
|
2306
|
-
? await recoverCompletedCalls(ctx.runMgr, unanswered, ctx.log
|
|
2330
|
+
? await recoverCompletedCalls(ctx.runMgr, unanswered, ctx.log, {
|
|
2331
|
+
answers: pendingResume?.answers,
|
|
2332
|
+
signal: ctx.abortController.signal,
|
|
2333
|
+
})
|
|
2307
2334
|
: new Map()
|
|
2308
2335
|
|
|
2309
|
-
//
|
|
2310
|
-
//
|
|
2311
|
-
// would re-run everything that already ran. Only taken when
|
|
2312
|
-
// the transcript proves execution had begun — a tool-review
|
|
2313
|
-
// park has no completions and keeps the cheap repair below.
|
|
2336
|
+
// Preserve both known and unknown outcomes before continuing calls
|
|
2337
|
+
// whose absence of a start was established by a complete scan.
|
|
2314
2338
|
if (!pendingResume && recoveredResults.size > 0) {
|
|
2315
2339
|
pendingResume = planCrashResume(projectedCheckpoint, recoveredResults, ctx.log)
|
|
2316
2340
|
}
|