kiokuko-dsh 0.2.7 → 0.2.9
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/PERMISSIONS.md +1 -1
- package/README.ja.md +38 -11
- package/README.ko.md +34 -3
- package/README.md +39 -13
- package/README.zh-CN.md +34 -3
- package/THIRD_PARTY_NOTICES.md +4 -0
- package/dist/db/transaction.d.ts +2 -1
- package/dist/db/transaction.d.ts.map +1 -1
- package/dist/db/transaction.js +44 -7
- package/dist/db/transaction.js.map +1 -1
- package/dist/deep-planning-config.d.ts +32 -0
- package/dist/deep-planning-config.d.ts.map +1 -0
- package/dist/deep-planning-config.js +20 -0
- package/dist/deep-planning-config.js.map +1 -0
- package/dist/deep-thinker/core/contracts.d.ts +1 -29
- package/dist/deep-thinker/core/contracts.d.ts.map +1 -1
- package/dist/deep-thinker/core/contracts.js +2 -17
- package/dist/deep-thinker/core/contracts.js.map +1 -1
- package/dist/deep-thinker/memory-finalizer.d.ts.map +1 -1
- package/dist/deep-thinker/memory-finalizer.js +1 -114
- package/dist/deep-thinker/memory-finalizer.js.map +1 -1
- package/dist/deep-thinker/native-executor.d.ts.map +1 -1
- package/dist/deep-thinker/native-executor.js +3 -4
- package/dist/deep-thinker/native-executor.js.map +1 -1
- package/dist/deep-thinker/store.js +1 -2
- package/dist/deep-thinker/store.js.map +1 -1
- package/dist/dsh/agenticreplay-event-mapper.d.ts +1 -1
- package/dist/dsh/agenticreplay-event-mapper.d.ts.map +1 -1
- package/dist/dsh/agenticreplay-event-mapper.js +5 -1
- package/dist/dsh/agenticreplay-event-mapper.js.map +1 -1
- package/dist/dsh/agenticreplay-files.d.ts +1 -0
- package/dist/dsh/agenticreplay-files.d.ts.map +1 -1
- package/dist/dsh/agenticreplay-files.js +19 -2
- package/dist/dsh/agenticreplay-files.js.map +1 -1
- package/dist/dsh/agenticreplay-host.js +3 -3
- package/dist/dsh/agenticreplay-host.js.map +1 -1
- package/dist/dsh/agenticreplay-read-service.d.ts +20 -0
- package/dist/dsh/agenticreplay-read-service.d.ts.map +1 -1
- package/dist/dsh/agenticreplay-read-service.js +27 -0
- package/dist/dsh/agenticreplay-read-service.js.map +1 -1
- package/dist/dsh/agenticreplay-recorder.d.ts +18 -12
- package/dist/dsh/agenticreplay-recorder.d.ts.map +1 -1
- package/dist/dsh/agenticreplay-recorder.js +43 -13
- package/dist/dsh/agenticreplay-recorder.js.map +1 -1
- package/dist/dsh/agenticreplay-security.d.ts +1 -0
- package/dist/dsh/agenticreplay-security.d.ts.map +1 -1
- package/dist/dsh/agenticreplay-security.js +84 -3
- package/dist/dsh/agenticreplay-security.js.map +1 -1
- package/dist/dsh/answer-review/coordinator.js +2 -1
- package/dist/dsh/answer-review/coordinator.js.map +1 -1
- package/dist/dsh/auto-memory-review.d.ts.map +1 -1
- package/dist/dsh/auto-memory-review.js +10 -193
- package/dist/dsh/auto-memory-review.js.map +1 -1
- package/dist/dsh/coding-workflow/contracts.d.ts +2 -0
- package/dist/dsh/coding-workflow/contracts.d.ts.map +1 -1
- package/dist/dsh/coding-workflow/contracts.js.map +1 -1
- package/dist/dsh/coding-workflow/intent.d.ts.map +1 -1
- package/dist/dsh/coding-workflow/intent.js +12 -4
- package/dist/dsh/coding-workflow/intent.js.map +1 -1
- package/dist/dsh/coding-workflow/service.d.ts +10 -81
- package/dist/dsh/coding-workflow/service.d.ts.map +1 -1
- package/dist/dsh/coding-workflow/service.js +52 -1
- package/dist/dsh/coding-workflow/service.js.map +1 -1
- package/dist/dsh/coding-workflow/store.d.ts +22 -0
- package/dist/dsh/coding-workflow/store.d.ts.map +1 -1
- package/dist/dsh/coding-workflow/store.js +51 -0
- package/dist/dsh/coding-workflow/store.js.map +1 -1
- package/dist/dsh/completion-verifiers.d.ts +6 -0
- package/dist/dsh/completion-verifiers.d.ts.map +1 -1
- package/dist/dsh/completion-verifiers.js.map +1 -1
- package/dist/dsh/composition.d.ts +2 -0
- package/dist/dsh/composition.d.ts.map +1 -1
- package/dist/dsh/composition.js +3 -0
- package/dist/dsh/composition.js.map +1 -1
- package/dist/dsh/config.d.ts +1 -1
- package/dist/dsh/config.d.ts.map +1 -1
- package/dist/dsh/config.js +3 -3
- package/dist/dsh/config.js.map +1 -1
- package/dist/dsh/core/host.d.ts.map +1 -1
- package/dist/dsh/core/host.js +159 -34
- package/dist/dsh/core/host.js.map +1 -1
- package/dist/dsh/core/tasks.d.ts +5 -2
- package/dist/dsh/core/tasks.d.ts.map +1 -1
- package/dist/dsh/core/tasks.js +124 -93
- package/dist/dsh/core/tasks.js.map +1 -1
- package/dist/dsh/decisions/request-intent.d.ts +114 -1
- package/dist/dsh/decisions/request-intent.d.ts.map +1 -1
- package/dist/dsh/decisions/request-intent.js +102 -18
- package/dist/dsh/decisions/request-intent.js.map +1 -1
- package/dist/dsh/execution-result.d.ts +1 -0
- package/dist/dsh/execution-result.d.ts.map +1 -1
- package/dist/dsh/execution-support.d.ts +2 -0
- package/dist/dsh/execution-support.d.ts.map +1 -1
- package/dist/dsh/execution-support.js +39 -4
- package/dist/dsh/execution-support.js.map +1 -1
- package/dist/dsh/existing-task-intake.d.ts +22 -0
- package/dist/dsh/existing-task-intake.d.ts.map +1 -0
- package/dist/dsh/existing-task-intake.js +46 -0
- package/dist/dsh/existing-task-intake.js.map +1 -0
- package/dist/dsh/finalization-request.d.ts +1 -1
- package/dist/dsh/finalization-request.d.ts.map +1 -1
- package/dist/dsh/finalization-request.js +1 -1
- package/dist/dsh/finalization-request.js.map +1 -1
- package/dist/dsh/guardrail/contracts.d.ts +85 -0
- package/dist/dsh/guardrail/contracts.d.ts.map +1 -0
- package/dist/dsh/guardrail/contracts.js +10 -0
- package/dist/dsh/guardrail/contracts.js.map +1 -0
- package/dist/dsh/guardrail/engine.d.ts +19 -0
- package/dist/dsh/guardrail/engine.d.ts.map +1 -0
- package/dist/dsh/guardrail/engine.js +178 -0
- package/dist/dsh/guardrail/engine.js.map +1 -0
- package/dist/dsh/guardrail/evidence.d.ts +16 -0
- package/dist/dsh/guardrail/evidence.d.ts.map +1 -0
- package/dist/dsh/guardrail/evidence.js +101 -0
- package/dist/dsh/guardrail/evidence.js.map +1 -0
- package/dist/dsh/guardrail/service.d.ts +27 -0
- package/dist/dsh/guardrail/service.d.ts.map +1 -0
- package/dist/dsh/guardrail/service.js +253 -0
- package/dist/dsh/guardrail/service.js.map +1 -0
- package/dist/dsh/host-adapter/admission.d.ts.map +1 -1
- package/dist/dsh/host-adapter/admission.js +143 -144
- package/dist/dsh/host-adapter/admission.js.map +1 -1
- package/dist/dsh/host-adapter/lifecycle.d.ts +1 -0
- package/dist/dsh/host-adapter/lifecycle.d.ts.map +1 -1
- package/dist/dsh/host-adapter/lifecycle.js +107 -77
- package/dist/dsh/host-adapter/lifecycle.js.map +1 -1
- package/dist/dsh/host-adapter/routing.d.ts.map +1 -1
- package/dist/dsh/host-adapter/routing.js +4 -4
- package/dist/dsh/host-adapter/routing.js.map +1 -1
- package/dist/dsh/host-adapter/turn-state.d.ts +4 -2
- package/dist/dsh/host-adapter/turn-state.d.ts.map +1 -1
- package/dist/dsh/host-adapter/turn-state.js +14 -7
- package/dist/dsh/host-adapter/turn-state.js.map +1 -1
- package/dist/dsh/host-adapter.d.ts.map +1 -1
- package/dist/dsh/host-adapter.js +125 -24
- package/dist/dsh/host-adapter.js.map +1 -1
- package/dist/dsh/intake-clarification.js +2 -2
- package/dist/dsh/intake-clarification.js.map +1 -1
- package/dist/dsh/intake-gate.js +6 -7
- package/dist/dsh/intake-gate.js.map +1 -1
- package/dist/dsh/legacy-session-codecs.d.ts +1 -0
- package/dist/dsh/legacy-session-codecs.d.ts.map +1 -1
- package/dist/dsh/legacy-session-codecs.js +831 -127
- package/dist/dsh/legacy-session-codecs.js.map +4 -4
- package/dist/dsh/lifecycle-memory.d.ts +66 -0
- package/dist/dsh/lifecycle-memory.d.ts.map +1 -0
- package/dist/dsh/lifecycle-memory.js +380 -0
- package/dist/dsh/lifecycle-memory.js.map +1 -0
- package/dist/dsh/lisp/candidate.d.ts +2 -2
- package/dist/dsh/lisp/ci.d.ts +2 -1
- package/dist/dsh/lisp/ci.d.ts.map +1 -1
- package/dist/dsh/lisp/ci.js +15 -2
- package/dist/dsh/lisp/ci.js.map +1 -1
- package/dist/dsh/lisp/contracts.d.ts +1 -18
- package/dist/dsh/lisp/contracts.d.ts.map +1 -1
- package/dist/dsh/lisp/contracts.js +1 -10
- package/dist/dsh/lisp/contracts.js.map +1 -1
- package/dist/dsh/lisp/files.d.ts +1 -1
- package/dist/dsh/lisp/files.d.ts.map +1 -1
- package/dist/dsh/lisp/files.js +17 -4
- package/dist/dsh/lisp/files.js.map +1 -1
- package/dist/dsh/lisp/hot-store.d.ts.map +1 -1
- package/dist/dsh/lisp/hot-store.js +4 -0
- package/dist/dsh/lisp/hot-store.js.map +1 -1
- package/dist/dsh/lisp/hot-tools.d.ts +2 -0
- package/dist/dsh/lisp/hot-tools.d.ts.map +1 -1
- package/dist/dsh/lisp/hot-tools.js +10 -0
- package/dist/dsh/lisp/hot-tools.js.map +1 -1
- package/dist/dsh/lisp/manager.d.ts +14 -1
- package/dist/dsh/lisp/manager.d.ts.map +1 -1
- package/dist/dsh/lisp/manager.js +238 -37
- package/dist/dsh/lisp/manager.js.map +1 -1
- package/dist/dsh/lisp/memory-verification.d.ts +5 -2
- package/dist/dsh/lisp/memory-verification.d.ts.map +1 -1
- package/dist/dsh/lisp/memory-verification.js +5 -1
- package/dist/dsh/lisp/memory-verification.js.map +1 -1
- package/dist/dsh/lisp/package-manager.d.ts +1 -1
- package/dist/dsh/lisp/package-manager.d.ts.map +1 -1
- package/dist/dsh/lisp/package-manager.js +10 -1
- package/dist/dsh/lisp/package-manager.js.map +1 -1
- package/dist/dsh/lisp/packages.d.ts +1 -1
- package/dist/dsh/lisp/packages.d.ts.map +1 -1
- package/dist/dsh/lisp/packages.js +15 -5
- package/dist/dsh/lisp/packages.js.map +1 -1
- package/dist/dsh/lisp/proposal-batch.d.ts +2 -0
- package/dist/dsh/lisp/proposal-batch.d.ts.map +1 -1
- package/dist/dsh/lisp/proposal-batch.js +17 -3
- package/dist/dsh/lisp/proposal-batch.js.map +1 -1
- package/dist/dsh/lisp/request-surface.d.ts +12 -0
- package/dist/dsh/lisp/request-surface.d.ts.map +1 -1
- package/dist/dsh/lisp/store.d.ts +2 -1
- package/dist/dsh/lisp/store.d.ts.map +1 -1
- package/dist/dsh/lisp/store.js +5 -1
- package/dist/dsh/lisp/store.js.map +1 -1
- package/dist/dsh/lisp/surface.d.ts.map +1 -1
- package/dist/dsh/lisp/surface.js +107 -13
- package/dist/dsh/lisp/surface.js.map +1 -1
- package/dist/dsh/lisp/task-authority.d.ts +29 -0
- package/dist/dsh/lisp/task-authority.d.ts.map +1 -0
- package/dist/dsh/lisp/task-authority.js +87 -0
- package/dist/dsh/lisp/task-authority.js.map +1 -0
- package/dist/dsh/lisp/worker.d.ts +3 -1
- package/dist/dsh/lisp/worker.d.ts.map +1 -1
- package/dist/dsh/lisp/worker.js +26 -4
- package/dist/dsh/lisp/worker.js.map +1 -1
- package/dist/dsh/lisp-config.d.ts +21 -0
- package/dist/dsh/lisp-config.d.ts.map +1 -0
- package/dist/dsh/lisp-config.js +13 -0
- package/dist/dsh/lisp-config.js.map +1 -0
- package/dist/dsh/memory-application.d.ts +3 -2
- package/dist/dsh/memory-application.d.ts.map +1 -1
- package/dist/dsh/memory-application.js +31 -22
- package/dist/dsh/memory-application.js.map +1 -1
- package/dist/dsh/model-handoff.d.ts.map +1 -1
- package/dist/dsh/model-handoff.js +2 -1
- package/dist/dsh/model-handoff.js.map +1 -1
- package/dist/dsh/models/service.d.ts.map +1 -1
- package/dist/dsh/models/service.js +13 -2
- package/dist/dsh/models/service.js.map +1 -1
- package/dist/dsh/models/vendor/opencode-codec.d.ts.map +1 -1
- package/dist/dsh/models/vendor/opencode-codec.js +71 -0
- package/dist/dsh/models/vendor/opencode-codec.js.map +1 -1
- package/dist/dsh/native-cancellation-observer.d.ts +13 -0
- package/dist/dsh/native-cancellation-observer.d.ts.map +1 -0
- package/dist/dsh/native-cancellation-observer.js +54 -0
- package/dist/dsh/native-cancellation-observer.js.map +1 -0
- package/dist/dsh/native-execution-ownership.d.ts +6 -0
- package/dist/dsh/native-execution-ownership.d.ts.map +1 -0
- package/dist/dsh/native-execution-ownership.js +34 -0
- package/dist/dsh/native-execution-ownership.js.map +1 -0
- package/dist/dsh/native-subagent.d.ts +2 -2
- package/dist/dsh/native-subagent.d.ts.map +1 -1
- package/dist/dsh/native-subagent.js +2 -3
- package/dist/dsh/native-subagent.js.map +1 -1
- package/dist/dsh/native-task-authority.d.ts +66 -0
- package/dist/dsh/native-task-authority.d.ts.map +1 -0
- package/dist/dsh/native-task-authority.js +220 -0
- package/dist/dsh/native-task-authority.js.map +1 -0
- package/dist/dsh/node-tap-summary.d.ts +1 -2
- package/dist/dsh/node-tap-summary.d.ts.map +1 -1
- package/dist/dsh/node-tap-summary.js +2 -24
- package/dist/dsh/node-tap-summary.js.map +1 -1
- package/dist/dsh/observation-pack/policy.d.ts +1 -0
- package/dist/dsh/observation-pack/policy.d.ts.map +1 -1
- package/dist/dsh/observation-pack/policy.js +3 -0
- package/dist/dsh/observation-pack/policy.js.map +1 -1
- package/dist/dsh/observation-pack/service.d.ts.map +1 -1
- package/dist/dsh/observation-pack/service.js +3 -1
- package/dist/dsh/observation-pack/service.js.map +1 -1
- package/dist/dsh/on-demand-intake.d.ts +28 -1
- package/dist/dsh/on-demand-intake.d.ts.map +1 -1
- package/dist/dsh/on-demand-intake.js +171 -10
- package/dist/dsh/on-demand-intake.js.map +1 -1
- package/dist/dsh/orchestration/execution-owner.js +1 -1
- package/dist/dsh/orchestration/execution-owner.js.map +1 -1
- package/dist/dsh/orchestration/managed-agent-executor.d.ts +12 -1
- package/dist/dsh/orchestration/managed-agent-executor.d.ts.map +1 -1
- package/dist/dsh/orchestration/managed-agent-executor.js +28 -2
- package/dist/dsh/orchestration/managed-agent-executor.js.map +1 -1
- package/dist/dsh/owned-completion-evidence.d.ts +11 -0
- package/dist/dsh/owned-completion-evidence.d.ts.map +1 -0
- package/dist/dsh/owned-completion-evidence.js +59 -0
- package/dist/dsh/owned-completion-evidence.js.map +1 -0
- package/dist/dsh/owned-execution.d.ts +28 -1
- package/dist/dsh/owned-execution.d.ts.map +1 -1
- package/dist/dsh/owned-execution.js +325 -101
- package/dist/dsh/owned-execution.js.map +1 -1
- package/dist/dsh/owned-read-owner.d.ts +6 -0
- package/dist/dsh/owned-read-owner.d.ts.map +1 -0
- package/dist/dsh/owned-read-owner.js +22 -0
- package/dist/dsh/owned-read-owner.js.map +1 -0
- package/dist/dsh/replay-memory-extract.d.ts +36 -0
- package/dist/dsh/replay-memory-extract.d.ts.map +1 -0
- package/dist/dsh/replay-memory-extract.js +192 -0
- package/dist/dsh/replay-memory-extract.js.map +1 -0
- package/dist/dsh/semantic-compaction/coordinator.d.ts.map +1 -1
- package/dist/dsh/semantic-compaction/coordinator.js +2 -1
- package/dist/dsh/semantic-compaction/coordinator.js.map +1 -1
- package/dist/dsh/session-bridge.d.ts +3 -0
- package/dist/dsh/session-bridge.d.ts.map +1 -1
- package/dist/dsh/session-bridge.js +22 -25
- package/dist/dsh/session-bridge.js.map +1 -1
- package/dist/dsh/session-history-compatibility.d.ts.map +1 -1
- package/dist/dsh/session-history-compatibility.js +15 -1
- package/dist/dsh/session-history-compatibility.js.map +1 -1
- package/dist/dsh/session-history-lookup.d.ts +1 -1
- package/dist/dsh/session-history-lookup.d.ts.map +1 -1
- package/dist/dsh/session-history-lookup.js +4 -3
- package/dist/dsh/session-history-lookup.js.map +1 -1
- package/dist/dsh/session-memory-finalizer.d.ts.map +1 -1
- package/dist/dsh/session-memory-finalizer.js +129 -117
- package/dist/dsh/session-memory-finalizer.js.map +1 -1
- package/dist/dsh/setup.d.ts +1 -1
- package/dist/dsh/setup.d.ts.map +1 -1
- package/dist/dsh/setup.js +1 -1
- package/dist/dsh/skill-prompts.json +1 -1
- package/dist/dsh/task-authority-context.d.ts +8 -0
- package/dist/dsh/task-authority-context.d.ts.map +1 -0
- package/dist/dsh/task-authority-context.js +28 -0
- package/dist/dsh/task-authority-context.js.map +1 -0
- package/dist/dsh/task-completion-host.d.ts +2 -1
- package/dist/dsh/task-completion-host.d.ts.map +1 -1
- package/dist/dsh/task-completion-host.js +17 -5
- package/dist/dsh/task-completion-host.js.map +1 -1
- package/dist/dsh/task-completion.d.ts +13 -0
- package/dist/dsh/task-completion.d.ts.map +1 -1
- package/dist/dsh/task-completion.js +23 -6
- package/dist/dsh/task-completion.js.map +1 -1
- package/dist/dsh/task-intake.d.ts.map +1 -1
- package/dist/dsh/task-intake.js +7 -16
- package/dist/dsh/task-intake.js.map +1 -1
- package/dist/dsh/task-source-history.d.ts +33 -0
- package/dist/dsh/task-source-history.d.ts.map +1 -0
- package/dist/dsh/task-source-history.js +62 -0
- package/dist/dsh/task-source-history.js.map +1 -0
- package/dist/dsh/task-state-host.d.ts +124 -0
- package/dist/dsh/task-state-host.d.ts.map +1 -0
- package/dist/dsh/task-state-host.js +403 -0
- package/dist/dsh/task-state-host.js.map +1 -0
- package/dist/dsh/task-state-surface.d.ts +8 -0
- package/dist/dsh/task-state-surface.d.ts.map +1 -0
- package/dist/dsh/task-state-surface.js +113 -0
- package/dist/dsh/task-state-surface.js.map +1 -0
- package/dist/dsh/task-state.d.ts +217 -0
- package/dist/dsh/task-state.d.ts.map +1 -0
- package/dist/dsh/task-state.js +315 -0
- package/dist/dsh/task-state.js.map +1 -0
- package/dist/dsh/tool-exposure-config.d.ts +12 -0
- package/dist/dsh/tool-exposure-config.d.ts.map +1 -0
- package/dist/dsh/tool-exposure-config.js +4 -0
- package/dist/dsh/tool-exposure-config.js.map +1 -0
- package/dist/dsh/tool-exposure.d.ts +2 -11
- package/dist/dsh/tool-exposure.d.ts.map +1 -1
- package/dist/dsh/tool-exposure.js +2 -2
- package/dist/dsh/tool-exposure.js.map +1 -1
- package/dist/dsh/tools.d.ts +2 -2
- package/dist/dsh/tools.d.ts.map +1 -1
- package/dist/dsh/tools.js +3 -2
- package/dist/dsh/tools.js.map +1 -1
- package/dist/enno-oduno/memory-verification.d.ts +2 -1
- package/dist/enno-oduno/memory-verification.d.ts.map +1 -1
- package/dist/enno-oduno/memory-verification.js +42 -30
- package/dist/enno-oduno/memory-verification.js.map +1 -1
- package/dist/enno-oduno/schemas.d.ts +1 -1
- package/dist/enno-oduno/store.d.ts +7 -0
- package/dist/enno-oduno/store.d.ts.map +1 -1
- package/dist/enno-oduno/store.js +42 -0
- package/dist/enno-oduno/store.js.map +1 -1
- package/dist/ledger/store.d.ts.map +1 -1
- package/dist/ledger/store.js +0 -5
- package/dist/ledger/store.js.map +1 -1
- package/dist/locale/en.json +1 -1
- package/dist/locale/ja.json +1 -1
- package/dist/locale/ko.json +1 -1
- package/dist/locale/zh-CN.json +1 -1
- package/dist/memory/application.js +1 -1
- package/dist/memory/application.js.map +1 -1
- package/dist/memory/auto-globalization.d.ts.map +1 -1
- package/dist/memory/auto-globalization.js +4 -82
- package/dist/memory/auto-globalization.js.map +1 -1
- package/dist/memory/evolution/contracts.d.ts +3 -1
- package/dist/memory/evolution/contracts.d.ts.map +1 -1
- package/dist/memory/evolution/contracts.js +1 -1
- package/dist/memory/evolution/contracts.js.map +1 -1
- package/dist/memory/evolution/store.d.ts +2 -1
- package/dist/memory/evolution/store.d.ts.map +1 -1
- package/dist/memory/evolution/store.js +75 -34
- package/dist/memory/evolution/store.js.map +1 -1
- package/dist/memory/evolution/worker.d.ts +1 -0
- package/dist/memory/evolution/worker.d.ts.map +1 -1
- package/dist/memory/evolution/worker.js +6 -18
- package/dist/memory/evolution/worker.js.map +1 -1
- package/dist/memory/explain.d.ts.map +1 -1
- package/dist/memory/explain.js +2 -2
- package/dist/memory/explain.js.map +1 -1
- package/dist/memory/forget.d.ts.map +1 -1
- package/dist/memory/forget.js +12 -3
- package/dist/memory/forget.js.map +1 -1
- package/dist/memory/hybrid-retrieval.d.ts.map +1 -1
- package/dist/memory/hybrid-retrieval.js +3 -0
- package/dist/memory/hybrid-retrieval.js.map +1 -1
- package/dist/memory/index-reasoning/service.d.ts.map +1 -1
- package/dist/memory/index-reasoning/service.js +5 -43
- package/dist/memory/index-reasoning/service.js.map +1 -1
- package/dist/memory/index-reasoning/worker.d.ts.map +1 -1
- package/dist/memory/index-reasoning/worker.js +1 -15
- package/dist/memory/index-reasoning/worker.js.map +1 -1
- package/dist/memory/lifecycle-cache.d.ts +12 -0
- package/dist/memory/lifecycle-cache.d.ts.map +1 -0
- package/dist/memory/lifecycle-cache.js +36 -0
- package/dist/memory/lifecycle-cache.js.map +1 -0
- package/dist/memory/lifecycle-database.d.ts +5 -0
- package/dist/memory/lifecycle-database.d.ts.map +1 -0
- package/dist/memory/lifecycle-database.js +32 -0
- package/dist/memory/lifecycle-database.js.map +1 -0
- package/dist/memory/lifecycle-global-state.d.ts +5 -0
- package/dist/memory/lifecycle-global-state.d.ts.map +1 -0
- package/dist/memory/lifecycle-global-state.js +23 -0
- package/dist/memory/lifecycle-global-state.js.map +1 -0
- package/dist/memory/lifecycle-global.d.ts +23 -0
- package/dist/memory/lifecycle-global.d.ts.map +1 -0
- package/dist/memory/lifecycle-global.js +56 -0
- package/dist/memory/lifecycle-global.js.map +1 -0
- package/dist/memory/lifecycle.d.ts +152 -0
- package/dist/memory/lifecycle.d.ts.map +1 -0
- package/dist/memory/lifecycle.js +152 -0
- package/dist/memory/lifecycle.js.map +1 -0
- package/dist/memory/replay-review.d.ts +90 -0
- package/dist/memory/replay-review.d.ts.map +1 -0
- package/dist/memory/replay-review.js +82 -0
- package/dist/memory/replay-review.js.map +1 -0
- package/dist/memory/replay-store.d.ts +14 -0
- package/dist/memory/replay-store.d.ts.map +1 -0
- package/dist/memory/replay-store.js +117 -0
- package/dist/memory/replay-store.js.map +1 -0
- package/dist/memory/review/adoption.d.ts.map +1 -1
- package/dist/memory/review/adoption.js +2 -106
- package/dist/memory/review/adoption.js.map +1 -1
- package/dist/memory/review/store.d.ts.map +1 -1
- package/dist/memory/review/store.js +9 -5
- package/dist/memory/review/store.js.map +1 -1
- package/dist/memory/review/worker.d.ts.map +1 -1
- package/dist/memory/review/worker.js +1 -7
- package/dist/memory/review/worker.js.map +1 -1
- package/dist/memory/scoped-memory.js +1 -1
- package/dist/memory/scoped-memory.js.map +1 -1
- package/dist/model-tools/contracts.d.ts +4 -4
- package/dist/model-tools/contracts.d.ts.map +1 -1
- package/dist/model-tools/contracts.js +1 -11
- package/dist/model-tools/contracts.js.map +1 -1
- package/dist/model-tools/names.d.ts +4 -0
- package/dist/model-tools/names.d.ts.map +1 -0
- package/dist/model-tools/names.js +13 -0
- package/dist/model-tools/names.js.map +1 -0
- package/docs/agenticreplay-recording.md +1 -1
- package/docs/code-intelligence.md +54 -119
- package/docs/dsh-plugin.md +86 -9
- package/docs/getting-started.md +10 -0
- package/docs/guardrail-licenses/Apache-2.0.txt +73 -0
- package/docs/guardrail-licenses/BSD-2-Clause.txt +9 -0
- package/docs/guardrail-licenses/COPYRIGHT-Rust.txt +34 -0
- package/docs/guardrail-licenses/COPYRIGHT-library.html +29357 -0
- package/docs/guardrail-licenses/ISC.txt +7 -0
- package/docs/guardrail-licenses/LICENSE-APACHE +176 -0
- package/docs/guardrail-licenses/LICENSE-MIT +25 -0
- package/docs/guardrail-licenses/LLVM-exception.txt +15 -0
- package/docs/guardrail-licenses/MIT.txt +9 -0
- package/docs/guardrail-licenses/NCSA.txt +29 -0
- package/docs/guardrail-licenses/README.md +7 -0
- package/docs/guardrail-licenses/Unicode-3.0.txt +39 -0
- package/docs/guardrail-licenses/libunwind-LICENSE.txt +311 -0
- package/docs/guardrail-licenses/manifest.json +71 -0
- package/docs/guardrail-licenses/musl-COPYRIGHT.txt +193 -0
- package/docs/guardrail.md +33 -0
- package/docs/lifecycle-memory.md +25 -0
- package/docs/lisp.md +33 -9
- package/docs/memory-evolution.md +6 -6
- package/docs/owned-execution.md +3 -3
- package/docs/replay-memory-review.md +26 -0
- package/docs/semantic-compaction.md +2 -0
- package/guardrail/aarch64-apple-darwin/kiokuko-guardrail +0 -0
- package/guardrail/aarch64-apple-darwin/manifest.json +71 -0
- package/guardrail/aarch64-unknown-linux-musl/kiokuko-guardrail +0 -0
- package/guardrail/aarch64-unknown-linux-musl/manifest.json +69 -0
- package/guardrail/manifest.json +204 -0
- package/guardrail/node-runner.mjs +37 -0
- package/guardrail/protocols/coding-routine.lisp +33 -0
- package/guardrail/x86_64-apple-darwin/kiokuko-guardrail +0 -0
- package/guardrail/x86_64-apple-darwin/manifest.json +71 -0
- package/guardrail/x86_64-unknown-linux-musl/kiokuko-guardrail +0 -0
- package/guardrail/x86_64-unknown-linux-musl/manifest.json +68 -0
- package/migrations/038_coding_admission.sql +19 -0
- package/migrations/039_memory_lifecycle.sql +336 -0
- package/migrations/040_task_state.sql +45 -0
- package/migrations/041_task_source_history.sql +88 -0
- package/migrations/042_evolution_source_epochs.sql +148 -0
- package/package.json +45 -27
- package/scripts/guardrail-artifacts.d.mts +13 -0
- package/scripts/guardrail-artifacts.mjs +136 -0
- package/skills/kiokuko-lisp/SKILL.md +1 -1
- package/skills/kiokuko-soul/SKILL.md +6 -6
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle-global.js","sourceRoot":"","sources":["../../src/memory/lifecycle-global.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { type GlobalPrinciple } from './lifecycle-global.js';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import type { SqliteDatabase } from '../db/adapter.js';
|
|
4
|
+
export declare const MemoryObservation: z.ZodObject<{
|
|
5
|
+
cwd: z.ZodString;
|
|
6
|
+
eventId: z.ZodString;
|
|
7
|
+
sessionId: z.ZodString;
|
|
8
|
+
kind: z.ZodEnum<{
|
|
9
|
+
compaction: "compaction";
|
|
10
|
+
completion: "completion";
|
|
11
|
+
praise: "praise";
|
|
12
|
+
model_switch: "model_switch";
|
|
13
|
+
complaint: "complaint";
|
|
14
|
+
}>;
|
|
15
|
+
summary: z.ZodOptional<z.ZodString>;
|
|
16
|
+
tags: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
17
|
+
outcome: z.ZodDefault<z.ZodEnum<{
|
|
18
|
+
unknown: "unknown";
|
|
19
|
+
passed: "passed";
|
|
20
|
+
failed: "failed";
|
|
21
|
+
}>>;
|
|
22
|
+
verification: z.ZodDefault<z.ZodEnum<{
|
|
23
|
+
unknown: "unknown";
|
|
24
|
+
passed: "passed";
|
|
25
|
+
failed: "failed";
|
|
26
|
+
}>>;
|
|
27
|
+
actions: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
28
|
+
kind: z.ZodEnum<{
|
|
29
|
+
build: "build";
|
|
30
|
+
edit: "edit";
|
|
31
|
+
test: "test";
|
|
32
|
+
other: "other";
|
|
33
|
+
inspect: "inspect";
|
|
34
|
+
explain: "explain";
|
|
35
|
+
recover: "recover";
|
|
36
|
+
}>;
|
|
37
|
+
outcome: z.ZodEnum<{
|
|
38
|
+
unknown: "unknown";
|
|
39
|
+
passed: "passed";
|
|
40
|
+
failed: "failed";
|
|
41
|
+
}>;
|
|
42
|
+
summary: z.ZodString;
|
|
43
|
+
}, z.core.$strict>>>;
|
|
44
|
+
source: z.ZodObject<{
|
|
45
|
+
producer: z.ZodString;
|
|
46
|
+
runId: z.ZodString;
|
|
47
|
+
eventIds: z.ZodArray<z.ZodString>;
|
|
48
|
+
revision: z.ZodDefault<z.ZodNumber>;
|
|
49
|
+
tombstone: z.ZodDefault<z.ZodBoolean>;
|
|
50
|
+
}, z.core.$strict>;
|
|
51
|
+
issue: z.ZodOptional<z.ZodString>;
|
|
52
|
+
prevention: z.ZodOptional<z.ZodString>;
|
|
53
|
+
fromModel: z.ZodOptional<z.ZodString>;
|
|
54
|
+
toModel: z.ZodOptional<z.ZodString>;
|
|
55
|
+
}, z.core.$strict>;
|
|
56
|
+
export type MemoryObservationInput = z.input<typeof MemoryObservation>;
|
|
57
|
+
export type Observation = Omit<z.infer<typeof MemoryObservation>, 'summary'> & {
|
|
58
|
+
summary: string;
|
|
59
|
+
};
|
|
60
|
+
export interface ObservationVersion {
|
|
61
|
+
sourceKey?: string;
|
|
62
|
+
revision?: number;
|
|
63
|
+
tombstone?: boolean;
|
|
64
|
+
hostVerified?: boolean;
|
|
65
|
+
}
|
|
66
|
+
export interface MemorySource {
|
|
67
|
+
producer: string;
|
|
68
|
+
eventId: string;
|
|
69
|
+
runId: string;
|
|
70
|
+
eventIds: string[];
|
|
71
|
+
sourceKey: string;
|
|
72
|
+
revision: number;
|
|
73
|
+
digest: string;
|
|
74
|
+
verification: Observation['verification'];
|
|
75
|
+
verificationSource: 'host_receipt' | 'producer_assertion';
|
|
76
|
+
}
|
|
77
|
+
export interface RoutineCandidate {
|
|
78
|
+
id: string;
|
|
79
|
+
kind: 'caution' | 'procedure';
|
|
80
|
+
summary: string;
|
|
81
|
+
tags: string[];
|
|
82
|
+
verification: Observation['verification'];
|
|
83
|
+
confidence: number;
|
|
84
|
+
candidate: true;
|
|
85
|
+
active: boolean;
|
|
86
|
+
sources: MemorySource[];
|
|
87
|
+
}
|
|
88
|
+
export interface MemoryContext {
|
|
89
|
+
schemaVersion: 1;
|
|
90
|
+
workspace: string;
|
|
91
|
+
cautions: RoutineCandidate[];
|
|
92
|
+
successfulProcedures: RoutineCandidate[];
|
|
93
|
+
recentHistory: {
|
|
94
|
+
kind: Observation['kind'];
|
|
95
|
+
summary: string;
|
|
96
|
+
actions: Observation['actions'];
|
|
97
|
+
source: MemorySource;
|
|
98
|
+
}[];
|
|
99
|
+
continuation: {
|
|
100
|
+
kind: Observation['kind'];
|
|
101
|
+
summary: string;
|
|
102
|
+
actions: Observation['actions'];
|
|
103
|
+
source: MemorySource;
|
|
104
|
+
}[];
|
|
105
|
+
sourceRefs: MemorySource[];
|
|
106
|
+
workMayContinue: true;
|
|
107
|
+
diagnostics: string[];
|
|
108
|
+
available: boolean;
|
|
109
|
+
entries: {
|
|
110
|
+
entryId: string;
|
|
111
|
+
revision: number;
|
|
112
|
+
summary: string;
|
|
113
|
+
tags: string[];
|
|
114
|
+
confidence: number;
|
|
115
|
+
verification: Observation['verification'];
|
|
116
|
+
verificationProvenance: string;
|
|
117
|
+
sourceEventIds: string[];
|
|
118
|
+
scope: 'project' | 'global';
|
|
119
|
+
untrusted: true;
|
|
120
|
+
}[];
|
|
121
|
+
globalPrinciples: GlobalPrinciple[];
|
|
122
|
+
handoff: null | {
|
|
123
|
+
sessionId: string;
|
|
124
|
+
expiresAt: string;
|
|
125
|
+
observations: MemoryContext['continuation'];
|
|
126
|
+
};
|
|
127
|
+
warnings: string[];
|
|
128
|
+
}
|
|
129
|
+
/** Producer assertions stay assertions. Only a host-bound check can set hostVerified. */
|
|
130
|
+
export declare function observeMemory(db: SqliteDatabase, workspace: string, input: unknown, version?: ObservationVersion): {
|
|
131
|
+
accepted: boolean;
|
|
132
|
+
recorded: boolean;
|
|
133
|
+
duplicate: boolean;
|
|
134
|
+
workMayContinue: true;
|
|
135
|
+
diagnostics: string[];
|
|
136
|
+
};
|
|
137
|
+
/** Deterministic bounded extraction, including untrusted portable Global candidates. */
|
|
138
|
+
export declare function improveMemory(db: SqliteDatabase, workspace: string, limit?: number): {
|
|
139
|
+
accepted: boolean;
|
|
140
|
+
recorded: boolean;
|
|
141
|
+
workMayContinue: true;
|
|
142
|
+
changed: number;
|
|
143
|
+
skipped: boolean;
|
|
144
|
+
diagnostics: string[];
|
|
145
|
+
};
|
|
146
|
+
export declare function memoryContext(db: SqliteDatabase, workspace: string, input?: {
|
|
147
|
+
query?: string | undefined;
|
|
148
|
+
tags?: readonly string[] | undefined;
|
|
149
|
+
sessionId?: string | undefined;
|
|
150
|
+
limit?: number | undefined;
|
|
151
|
+
}): MemoryContext;
|
|
152
|
+
//# sourceMappingURL=lifecycle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/memory/lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { contextStamp, cachedContext, saveContext } from './lifecycle-cache.js';
|
|
2
|
+
import { globalPrinciples } from './lifecycle-global.js';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { withOptionalMemoryTransaction } from './lifecycle-database.js';
|
|
5
|
+
import { canonicalContentHash } from '../serialization/validate.js';
|
|
6
|
+
import { capturePolicy } from './capture-policy.js';
|
|
7
|
+
const identity = z.string().min(1).max(256).regex(/^[^\p{Cc}\p{Cf}]+$/u);
|
|
8
|
+
const text = z.string().trim().min(1).max(2048);
|
|
9
|
+
const outcome = z.enum(['passed', 'failed', 'unknown']);
|
|
10
|
+
export const MemoryObservation = z.object({
|
|
11
|
+
cwd: z.string().min(1), eventId: identity, sessionId: identity,
|
|
12
|
+
kind: z.enum(['compaction', 'completion', 'model_switch', 'complaint', 'praise']), summary: text.optional(),
|
|
13
|
+
tags: z.array(z.string().trim().min(1).max(80)).max(16).default([]),
|
|
14
|
+
outcome: outcome.default('unknown'), verification: outcome.default('unknown'),
|
|
15
|
+
actions: z.array(z.object({ kind: z.enum(['inspect', 'edit', 'build', 'test', 'recover', 'explain', 'other']),
|
|
16
|
+
outcome, summary: z.string().trim().min(1).max(512) }).strict()).max(32).default([]),
|
|
17
|
+
source: z.object({ producer: identity, runId: identity, eventIds: z.array(identity).min(1).max(32), revision: z.number().int().nonnegative().default(0), tombstone: z.boolean().default(false) }).strict(),
|
|
18
|
+
issue: text.optional(), prevention: text.optional(), fromModel: identity.optional(), toModel: identity.optional(),
|
|
19
|
+
}).strict();
|
|
20
|
+
/** Producer assertions stay assertions. Only a host-bound check can set hostVerified. */
|
|
21
|
+
export function observeMemory(db, workspace, input, version = {}) {
|
|
22
|
+
return { accepted: false, recorded: false, duplicate: false, workMayContinue: true, diagnostics: ['post_task_memory_review_required'] };
|
|
23
|
+
}
|
|
24
|
+
function latest(db, workspace) {
|
|
25
|
+
const rows = db.prepare(`SELECT o.* FROM dsh_memory_observations o WHERE o.workspace=? AND NOT EXISTS
|
|
26
|
+
(SELECT 1 FROM dsh_memory_observations n WHERE n.workspace=o.workspace AND n.producer=o.producer AND n.source_key=o.source_key AND n.source_revision>o.source_revision)
|
|
27
|
+
ORDER BY o.created_at DESC,o.event_id DESC LIMIT 512`).all(workspace);
|
|
28
|
+
const seen = new Set(rows.map(row => `${row.producer}:${row.source_key}`));
|
|
29
|
+
const cached = db.prepare(`SELECT r.candidate_json FROM dsh_memory_routine_revisions r WHERE r.workspace=? AND NOT EXISTS
|
|
30
|
+
(SELECT 1 FROM dsh_memory_routine_revisions n WHERE n.workspace=r.workspace AND n.candidate_id=r.candidate_id AND n.revision>r.revision)
|
|
31
|
+
ORDER BY r.created_at DESC LIMIT 128`).all(workspace);
|
|
32
|
+
for (const old of cached) {
|
|
33
|
+
const candidate = JSON.parse(old.candidate_json);
|
|
34
|
+
if (!candidate.active)
|
|
35
|
+
continue;
|
|
36
|
+
for (const ref of candidate.sources) {
|
|
37
|
+
const key = `${ref.producer}:${ref.sourceKey}`;
|
|
38
|
+
if (seen.has(key) || rows.length >= 1024)
|
|
39
|
+
continue;
|
|
40
|
+
const row = db.prepare('SELECT * FROM dsh_memory_observations WHERE workspace=? AND producer=? AND source_key=? ORDER BY source_revision DESC LIMIT 1').get(workspace, ref.producer, ref.sourceKey);
|
|
41
|
+
if (row) {
|
|
42
|
+
rows.push(row);
|
|
43
|
+
seen.add(key);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return rows.map(row => {
|
|
48
|
+
const parsed = MemoryObservation.parse(JSON.parse(row.observation_json)), value = { ...parsed, summary: parsed.summary ?? 'Observation withdrawn.' };
|
|
49
|
+
if (canonicalContentHash({ value, sourceKey: row.source_key, revision: row.source_revision, tombstone: row.tombstone === 1, hostVerified: row.host_verified === 1 }) !== row.content_hash)
|
|
50
|
+
throw new Error('memory_integrity_error');
|
|
51
|
+
const source = { producer: row.producer, eventId: row.event_id, runId: value.source.runId, eventIds: value.source.eventIds,
|
|
52
|
+
sourceKey: row.source_key, revision: row.source_revision, digest: row.content_hash, verification: value.verification, verificationSource: row.host_verified === 1 ? 'host_receipt' : 'producer_assertion' };
|
|
53
|
+
return { value, source, hostVerified: row.host_verified === 1, tombstone: row.tombstone === 1 || capturePolicy(db, workspace, value.sessionId).mode !== 'allowed', createdAt: row.created_at };
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
function sourceCurrent(sources, current) {
|
|
57
|
+
return sources.length > 0 && sources.every(ref => current.some(row => !row.tombstone && row.source.producer === ref.producer && row.source.sourceKey === ref.sourceKey && row.source.digest === ref.digest));
|
|
58
|
+
}
|
|
59
|
+
function signature(row) { return canonicalContentHash(row.value.actions.filter(a => a.kind !== 'explain').map(a => ({ kind: a.kind, summary: a.summary }))); }
|
|
60
|
+
function derive(rows) {
|
|
61
|
+
const active = rows.filter(row => !row.tombstone), candidates = [];
|
|
62
|
+
for (const row of active.filter(row => ['complaint', 'praise'].includes(row.value.kind))) {
|
|
63
|
+
const caution = row.value.kind === 'complaint';
|
|
64
|
+
candidates.push({ id: `feedback:${canonicalContentHash([row.source.producer, row.source.sourceKey])}`, kind: caution ? 'caution' : 'procedure',
|
|
65
|
+
summary: [row.value.issue ?? row.value.summary, row.value.prevention ?? (caution ? 'A source-backed correction and verification are still required before reusing this result.' : 'Human praise is a candidate signal; it does not establish verification.')].join('\n'),
|
|
66
|
+
tags: row.value.tags, verification: row.hostVerified ? 'passed' : 'unknown', confidence: row.hostVerified ? 0.7 : 0.3, candidate: true, active: true, sources: [row.source] });
|
|
67
|
+
}
|
|
68
|
+
const groups = new Map();
|
|
69
|
+
for (const row of active.filter(row => row.value.kind === 'completion' && row.value.outcome !== 'failed' && !row.value.tags.some(tag => ['status:cancelled', 'status:interrupted'].includes(tag)) && row.value.actions.length)) {
|
|
70
|
+
const key = signature(row), group = groups.get(key) ?? [];
|
|
71
|
+
group.push(row);
|
|
72
|
+
groups.set(key, group);
|
|
73
|
+
}
|
|
74
|
+
for (const [key, group] of groups) {
|
|
75
|
+
const independent = [...new Map(group.map(row => [row.value.source.runId, row])).values()];
|
|
76
|
+
if (independent.length < 2)
|
|
77
|
+
continue;
|
|
78
|
+
const counterexamples = active.filter(row => (row.value.kind === 'complaint' || row.value.kind === 'completion' && row.value.outcome === 'failed') && row.value.actions.length && signature(row) === key);
|
|
79
|
+
const verified = independent.filter(row => row.hostVerified && row.value.outcome === 'passed').length;
|
|
80
|
+
candidates.push({ id: `procedure:${key}`, kind: 'procedure', summary: `Repeated recorded procedure (${independent.length} independent runs):\n${independent[0].value.actions.map(a => `${a.kind}: ${a.summary}`).join('\n')}`,
|
|
81
|
+
tags: [...new Set(independent.flatMap(row => row.value.tags))].slice(0, 16), verification: verified >= 2 && !counterexamples.length ? 'passed' : 'unknown',
|
|
82
|
+
confidence: counterexamples.length ? 0.2 : verified >= 2 ? 0.75 : 0.3, candidate: true, active: true, sources: [...independent, ...counterexamples].map(row => row.source) });
|
|
83
|
+
}
|
|
84
|
+
return candidates.slice(0, 128);
|
|
85
|
+
}
|
|
86
|
+
/** Deterministic bounded extraction, including untrusted portable Global candidates. */
|
|
87
|
+
export function improveMemory(db, workspace, limit = 32) {
|
|
88
|
+
return { accepted: false, recorded: false, workMayContinue: true, changed: 0, skipped: true, diagnostics: ['post_task_memory_review_required'] };
|
|
89
|
+
}
|
|
90
|
+
export function memoryContext(db, workspace, input = {}) {
|
|
91
|
+
const empty = { schemaVersion: 1, workspace, cautions: [], successfulProcedures: [], recentHistory: [], continuation: [], sourceRefs: [], workMayContinue: true, diagnostics: [], available: true, entries: [], globalPrinciples: [], handoff: null, warnings: [] };
|
|
92
|
+
try {
|
|
93
|
+
return withOptionalMemoryTransaction(db, () => {
|
|
94
|
+
if (input.sessionId && capturePolicy(db, workspace, input.sessionId).mode !== 'allowed')
|
|
95
|
+
return { ...empty, diagnostics: ['capture_excluded'] };
|
|
96
|
+
const now = Date.now(), key = JSON.stringify([workspace, input.sessionId ?? null, input.query ?? '', input.tags ?? [], input.limit ?? 5]), stamp = contextStamp(db, workspace);
|
|
97
|
+
const reused = cachedContext(db, key, stamp, now);
|
|
98
|
+
if (reused)
|
|
99
|
+
return reused;
|
|
100
|
+
const rows = latest(db, workspace), limit = Math.max(1, Math.min(16, input.limit ?? 5)), words = (input.query ?? '').toLocaleLowerCase().split(/\s+/u).filter(Boolean).slice(0, 12), tags = input.tags ?? [];
|
|
101
|
+
const match = (summary, itemTags) => tags.every(tag => itemTags.includes(tag)) && (!words.length || words.some(word => `${summary} ${itemTags.join(' ')}`.toLocaleLowerCase().includes(word)));
|
|
102
|
+
const savedRows = db.prepare(`SELECT r.candidate_json,r.revision FROM dsh_memory_routine_revisions r WHERE r.workspace=? AND NOT EXISTS
|
|
103
|
+
(SELECT 1 FROM dsh_memory_routine_revisions n WHERE n.workspace=r.workspace AND n.candidate_id=r.candidate_id AND n.revision>r.revision) ORDER BY r.created_at DESC LIMIT 128`)
|
|
104
|
+
.all(workspace);
|
|
105
|
+
const revisions = new Map(savedRows.map(row => [JSON.parse(row.candidate_json).id, row.revision]));
|
|
106
|
+
const saved = savedRows.map(row => JSON.parse(row.candidate_json));
|
|
107
|
+
const currentCandidates = new Map(derive(rows).map(candidate => [candidate.id, canonicalContentHash(candidate)]));
|
|
108
|
+
const candidates = saved.filter(c => c.active && sourceCurrent(c.sources, rows) && currentCandidates.get(c.id) === canonicalContentHash(c) && match(c.summary, c.tags));
|
|
109
|
+
const continuation = input.sessionId ? rows.filter(row => !row.tombstone && Date.parse(row.createdAt) >= now - 86400000 && row.value.sessionId === input.sessionId && ['model_switch', 'compaction', 'completion'].includes(row.value.kind)).slice(0, limit)
|
|
110
|
+
.map(row => ({ kind: row.value.kind, summary: row.value.summary, actions: row.value.actions, source: row.source })) : [];
|
|
111
|
+
const cautions = candidates.filter(c => c.kind === 'caution').slice(0, limit), successfulProcedures = candidates.filter(c => c.kind === 'procedure').slice(0, limit);
|
|
112
|
+
const recentHistory = rows.filter(row => !row.tombstone && row.value.kind === 'completion' && row.value.sessionId !== input.sessionId && match(row.value.summary, row.value.tags)).slice(0, limit)
|
|
113
|
+
.map(row => ({ kind: row.value.kind, summary: row.value.summary, actions: row.value.actions, source: row.source }));
|
|
114
|
+
const compact = (ref) => ({ ...ref, eventIds: ref.eventIds.slice(0, 8) });
|
|
115
|
+
const projected = { ...empty, globalPrinciples: globalPrinciples(db, input), cautions: cautions.map(c => ({ ...c, summary: c.summary.slice(0, 2048), sources: c.sources.slice(0, 6).map(compact) })),
|
|
116
|
+
successfulProcedures: successfulProcedures.map(c => ({ ...c, summary: c.summary.slice(0, 2048), sources: c.sources.slice(0, 6).map(compact) })),
|
|
117
|
+
continuation: continuation.map(c => ({ ...c, source: compact(c.source) })), recentHistory: recentHistory.map(c => ({ ...c, source: compact(c.source) })) };
|
|
118
|
+
const refs = () => {
|
|
119
|
+
projected.sourceRefs = [...projected.cautions.flatMap(c => c.sources), ...projected.successfulProcedures.flatMap(c => c.sources), ...projected.continuation.map(c => c.source), ...projected.recentHistory.map(c => c.source)].slice(0, 32);
|
|
120
|
+
projected.entries = [...projected.cautions, ...projected.successfulProcedures].map(c => ({ entryId: `lifecycle:${c.id}`, revision: revisions.get(c.id) ?? 1, summary: c.summary, tags: c.tags, confidence: c.confidence,
|
|
121
|
+
verification: c.verification, verificationProvenance: c.sources.every(ref => ref.verificationSource === 'host_receipt') ? 'host_receipt' : 'producer_assertion', sourceEventIds: c.sources.map(ref => ref.eventId), scope: 'project', untrusted: true })).concat(projected.globalPrinciples);
|
|
122
|
+
const dated = rows.filter(row => !row.tombstone && row.value.sessionId === input.sessionId && projected.continuation.some(c => c.source.digest === row.source.digest)).map(row => Date.parse(row.createdAt));
|
|
123
|
+
projected.handoff = input.sessionId && dated.length ? { sessionId: input.sessionId, expiresAt: new Date(Math.max(...dated) + 86400000).toISOString(), observations: projected.continuation } : null;
|
|
124
|
+
projected.warnings = projected.diagnostics;
|
|
125
|
+
};
|
|
126
|
+
refs();
|
|
127
|
+
while (Buffer.byteLength(JSON.stringify(projected)) > 15000) {
|
|
128
|
+
projected.diagnostics = ['context_excerpt_bounded'];
|
|
129
|
+
if (projected.globalPrinciples.length)
|
|
130
|
+
projected.globalPrinciples.pop();
|
|
131
|
+
else if (projected.successfulProcedures.length)
|
|
132
|
+
projected.successfulProcedures.pop();
|
|
133
|
+
else if (projected.recentHistory.length)
|
|
134
|
+
projected.recentHistory.pop();
|
|
135
|
+
else if (projected.continuation.length)
|
|
136
|
+
projected.continuation.pop();
|
|
137
|
+
else if (projected.cautions.length)
|
|
138
|
+
projected.cautions.pop();
|
|
139
|
+
else
|
|
140
|
+
break;
|
|
141
|
+
refs();
|
|
142
|
+
}
|
|
143
|
+
const expirations = rows.filter(row => !row.tombstone && row.value.sessionId === input.sessionId && Date.parse(row.createdAt) + 86400000 > now
|
|
144
|
+
&& ['model_switch', 'compaction', 'completion'].includes(row.value.kind)).map(row => Date.parse(row.createdAt) + 86400000);
|
|
145
|
+
return saveContext(db, key, stamp, projected, Math.min(...expirations), now);
|
|
146
|
+
}, true);
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
return { ...empty, available: false, diagnostics: ['memory_unavailable'], warnings: ['memory_unavailable'] };
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=lifecycle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/memory/lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
export interface ReplayMemoryProposal {
|
|
2
|
+
schemaVersion: 1;
|
|
3
|
+
proposalId: string;
|
|
4
|
+
revision: number;
|
|
5
|
+
source: {
|
|
6
|
+
taskOutcome?: 'completed' | 'failed';
|
|
7
|
+
workspace: string;
|
|
8
|
+
taskId: string;
|
|
9
|
+
sessionId: string;
|
|
10
|
+
traces: Array<{
|
|
11
|
+
runId: string;
|
|
12
|
+
eventsSha256: string;
|
|
13
|
+
eventsRead: number;
|
|
14
|
+
totalEvents: number | null;
|
|
15
|
+
digestScope?: 'complete' | 'observed_prefix';
|
|
16
|
+
complete: boolean;
|
|
17
|
+
gaps: string[];
|
|
18
|
+
}>;
|
|
19
|
+
};
|
|
20
|
+
request: {
|
|
21
|
+
text: string;
|
|
22
|
+
evidenceRefs: string[];
|
|
23
|
+
};
|
|
24
|
+
languages: Array<{
|
|
25
|
+
name: string;
|
|
26
|
+
basis: 'observed' | 'inferred';
|
|
27
|
+
evidenceRefs: string[];
|
|
28
|
+
}>;
|
|
29
|
+
attempts: Array<{
|
|
30
|
+
taskId?: string | null;
|
|
31
|
+
attemptId: string;
|
|
32
|
+
tool: string;
|
|
33
|
+
command?: string;
|
|
34
|
+
arguments?: unknown;
|
|
35
|
+
signal?: string;
|
|
36
|
+
callRef: string;
|
|
37
|
+
resultRef?: string;
|
|
38
|
+
outcome: 'succeeded' | 'failed' | 'cancelled' | 'unknown';
|
|
39
|
+
execution: 'attempted' | 'started' | 'completed' | 'denied' | 'unknown';
|
|
40
|
+
exitCode?: number;
|
|
41
|
+
outputExcerpt?: string;
|
|
42
|
+
payloadHashes: string[];
|
|
43
|
+
limitations: string[];
|
|
44
|
+
}>;
|
|
45
|
+
findings: Array<{
|
|
46
|
+
taskId?: string | null;
|
|
47
|
+
kind: 'worked' | 'failed' | 'key_point';
|
|
48
|
+
text: string;
|
|
49
|
+
basis: 'observed' | 'verified' | 'inferred' | 'user_corrected';
|
|
50
|
+
evidenceRefs: string[];
|
|
51
|
+
}>;
|
|
52
|
+
tags: string[];
|
|
53
|
+
keywords: string[];
|
|
54
|
+
}
|
|
55
|
+
export interface ReviewQuestion {
|
|
56
|
+
id: string;
|
|
57
|
+
phase: 'organize' | 'review';
|
|
58
|
+
text: string;
|
|
59
|
+
revision?: number;
|
|
60
|
+
digest?: string;
|
|
61
|
+
}
|
|
62
|
+
export interface ReviewAnswer {
|
|
63
|
+
questionId: string;
|
|
64
|
+
choice: 'organize' | 'approve' | 'revise' | 'decline';
|
|
65
|
+
comment?: string;
|
|
66
|
+
}
|
|
67
|
+
export interface ReviewReceipt {
|
|
68
|
+
status: 'saved' | 'declined' | 'unavailable' | 'not_completed';
|
|
69
|
+
workMayContinue: true;
|
|
70
|
+
approvalKey?: string;
|
|
71
|
+
}
|
|
72
|
+
export declare const proposalDigest: (value: ReplayMemoryProposal) => string;
|
|
73
|
+
/** Host-only adapter. Never expose ask/save or a human:true input through a model tool.
|
|
74
|
+
* All candidates remain local until the exact displayed revision is approved.
|
|
75
|
+
* A restart drops the closure. A signal/decline cannot be revived by late extraction.
|
|
76
|
+
*/
|
|
77
|
+
export declare function reviewCompletedReplay(deps: {
|
|
78
|
+
completed: boolean;
|
|
79
|
+
taskOutcome?: 'completed' | 'failed';
|
|
80
|
+
taskId: string;
|
|
81
|
+
sessionId: string;
|
|
82
|
+
workspace: string;
|
|
83
|
+
extract: () => Promise<ReplayMemoryProposal>;
|
|
84
|
+
ask: (question: ReviewQuestion) => Promise<ReviewAnswer>;
|
|
85
|
+
save: (proposal: ReplayMemoryProposal, approvalKey: string) => Promise<void>;
|
|
86
|
+
/** Host-only ephemeral retention after exact approval, for uncertain-save reconciliation. */
|
|
87
|
+
onApproved?: (proposal: ReplayMemoryProposal, approvalKey: string) => void;
|
|
88
|
+
signal?: AbortSignal;
|
|
89
|
+
}): Promise<ReviewReceipt>;
|
|
90
|
+
//# sourceMappingURL=replay-review.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replay-review.d.ts","sourceRoot":"","sources":["../../src/memory/replay-review.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { createHash, randomUUID } from 'node:crypto';
|
|
2
|
+
import { canonicalJson } from '../serialization/validate.js';
|
|
3
|
+
import { findSecretInValue } from './secrets.js';
|
|
4
|
+
export const proposalDigest = (value) => createHash('sha256').update(canonicalJson(value)).digest('hex');
|
|
5
|
+
/** Host-only adapter. Never expose ask/save or a human:true input through a model tool.
|
|
6
|
+
* All candidates remain local until the exact displayed revision is approved.
|
|
7
|
+
* A restart drops the closure. A signal/decline cannot be revived by late extraction.
|
|
8
|
+
*/
|
|
9
|
+
export async function reviewCompletedReplay(deps) {
|
|
10
|
+
const receipt = (status) => ({ status, workMayContinue: true });
|
|
11
|
+
if (!deps.completed)
|
|
12
|
+
return receipt('not_completed');
|
|
13
|
+
const active = () => !deps.signal?.aborted;
|
|
14
|
+
// Race host cancellation without letting its late promise resume this flow.
|
|
15
|
+
async function wait(operation) {
|
|
16
|
+
if (!active())
|
|
17
|
+
throw new Error('review_cancelled');
|
|
18
|
+
let onAbort;
|
|
19
|
+
const cancellation = new Promise((_, reject) => {
|
|
20
|
+
onAbort = () => reject(new Error('review_cancelled'));
|
|
21
|
+
deps.signal?.addEventListener('abort', onAbort, { once: true });
|
|
22
|
+
});
|
|
23
|
+
try {
|
|
24
|
+
return await Promise.race([operation, cancellation]);
|
|
25
|
+
}
|
|
26
|
+
finally {
|
|
27
|
+
if (onAbort)
|
|
28
|
+
deps.signal?.removeEventListener('abort', onAbort);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
let approvedKey;
|
|
32
|
+
try {
|
|
33
|
+
const organize = { id: randomUUID(), phase: 'organize', text: `${deps.taskOutcome === 'failed' ? 'The task has ended with a failed outcome.' : 'The task is complete.'} May I organize its recorded experience into proposed memories? Nothing is saved until you review and approve it.` };
|
|
34
|
+
if (!active())
|
|
35
|
+
return receipt('declined');
|
|
36
|
+
const permission = await wait(deps.ask(organize));
|
|
37
|
+
if (permission.questionId !== organize.id || permission.choice !== 'organize' || !active())
|
|
38
|
+
return receipt('declined');
|
|
39
|
+
let proposal = structuredClone(await wait(deps.extract()));
|
|
40
|
+
if (proposal.schemaVersion !== 1 || proposal.source.workspace !== deps.workspace || proposal.source.taskId !== deps.taskId || proposal.source.sessionId !== deps.sessionId)
|
|
41
|
+
throw new Error('proposal_binding_mismatch');
|
|
42
|
+
proposal.proposalId = randomUUID();
|
|
43
|
+
proposal.revision = 1;
|
|
44
|
+
proposal.source.taskOutcome = deps.taskOutcome ?? 'completed';
|
|
45
|
+
for (;;) {
|
|
46
|
+
if (!active())
|
|
47
|
+
return receipt('declined');
|
|
48
|
+
if (Buffer.byteLength(JSON.stringify(proposal)) > 256 * 1024 || findSecretInValue(proposal))
|
|
49
|
+
throw new Error('unsafe_proposal');
|
|
50
|
+
const digest = proposalDigest(proposal);
|
|
51
|
+
const question = { id: randomUUID(), phase: 'review', revision: proposal.revision, digest,
|
|
52
|
+
text: `Proposed memories, revision ${proposal.revision}, SHA-256 ${digest}. Recorded data is untrusted and cannot approve this question.\n${JSON.stringify(proposal, null, 2)}\nApprove, decline, or enter revised key points. Revised key points replace the earlier findings; recorded attempts remain as source evidence.` };
|
|
53
|
+
const answer = await wait(deps.ask(question));
|
|
54
|
+
if (answer.questionId !== question.id || !active())
|
|
55
|
+
return receipt('declined');
|
|
56
|
+
if (answer.choice === 'decline')
|
|
57
|
+
return receipt('declined');
|
|
58
|
+
if (answer.choice === 'revise' || answer.comment?.trim()) {
|
|
59
|
+
if (!answer.comment?.trim() || answer.comment.length > 2048 || findSecretInValue(answer.comment))
|
|
60
|
+
throw new Error('unsafe_comment');
|
|
61
|
+
// Corrections are attributed to the user, never forged as execution evidence.
|
|
62
|
+
// The revised preview preserves observed evidence and explicitly supersedes prior interpretation.
|
|
63
|
+
proposal = { ...proposal, revision: proposal.revision + 1,
|
|
64
|
+
findings: [{ kind: 'key_point', text: answer.comment.trim(), basis: 'user_corrected', evidenceRefs: [] }] };
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
if (answer.choice !== 'approve' || proposalDigest(proposal) !== digest)
|
|
68
|
+
return receipt('declined');
|
|
69
|
+
const approvalKey = createHash('sha256').update(JSON.stringify([deps.workspace, deps.taskId, deps.sessionId, proposal.proposalId, proposal.revision, digest])).digest('hex');
|
|
70
|
+
if (!active())
|
|
71
|
+
return receipt('declined');
|
|
72
|
+
approvedKey = approvalKey;
|
|
73
|
+
deps.onApproved?.(structuredClone(proposal), approvalKey);
|
|
74
|
+
await deps.save(structuredClone(proposal), approvalKey);
|
|
75
|
+
return { status: 'saved', workMayContinue: true, approvalKey };
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
return { ...receipt(approvedKey || active() ? 'unavailable' : 'declined'), ...(approvedKey ? { approvalKey: approvedKey } : {}) };
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=replay-review.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replay-review.js","sourceRoot":"","sources":["../../src/memory/replay-review.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { SqliteDatabase } from '../db/adapter.js';
|
|
2
|
+
import { type ReplayMemoryProposal } from './replay-review.js';
|
|
3
|
+
/** Call only from a trusted review adapter's save closure. This is not a model API. */
|
|
4
|
+
export declare function createApprovedReplayMemoryStore(db: SqliteDatabase, workspace: string, indexApproved?: (proposal: ReplayMemoryProposal, approvalKey: string) => {
|
|
5
|
+
id: string;
|
|
6
|
+
revision: number;
|
|
7
|
+
} | void): {
|
|
8
|
+
reconcile: (proposal: ReplayMemoryProposal, approvalKey: string) => "saved" | "unavailable";
|
|
9
|
+
save(proposal: ReplayMemoryProposal, approvalKey: string): void;
|
|
10
|
+
query(query: string, tags?: string[], limit?: number): ReplayMemoryProposal[];
|
|
11
|
+
};
|
|
12
|
+
/** Called by the existing explicitly-confirmed purge inside its transaction. No content survives. */
|
|
13
|
+
export declare function purgeReplayMemoryForEntryInTransaction(db: SqliteDatabase, entryId: string): void;
|
|
14
|
+
//# sourceMappingURL=replay-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replay-store.d.ts","sourceRoot":"","sources":["../../src/memory/replay-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKvD,OAAO,EAAkB,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/E,uFAAuF;AACvF,wBAAgB,+BAA+B,CAAC,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EACnF,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,KAAK;IAAC,EAAE,EAAC,MAAM,CAAC;IAAA,QAAQ,EAAC,MAAM,CAAA;CAAC,GAAG,IAAI;0BAE9E,oBAAoB,eAAe,MAAM,KAAG,OAAO,GAAG,aAAa;mBAa/E,oBAAoB,eAAe,MAAM,GAAG,IAAI;iBAwClD,MAAM,SAAQ,MAAM,EAAE,mBAAoB,oBAAoB,EAAE;EAchF;AAED,qGAAqG;AACrG,wBAAgB,sCAAsC,CAAC,EAAE,EAAC,cAAc,EAAC,OAAO,EAAC,MAAM,GAAE,IAAI,CAS5F"}
|