open-multi-agent-kit 0.80.7 → 0.90.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 +5 -27
- package/README.md +81 -38
- package/dist/agents/jailbreak/index.d.ts +7 -0
- package/dist/agents/jailbreak/index.d.ts.map +1 -0
- package/dist/agents/jailbreak/index.js +7 -0
- package/dist/agents/jailbreak/index.js.map +1 -0
- package/dist/agents/jailbreak/subagent-f.d.ts +44 -0
- package/dist/agents/jailbreak/subagent-f.d.ts.map +1 -0
- package/dist/agents/jailbreak/subagent-f.js +60 -0
- package/dist/agents/jailbreak/subagent-f.js.map +1 -0
- package/dist/bun/register-bedrock.d.ts.map +1 -1
- package/dist/bun/register-bedrock.js +2 -2
- package/dist/bun/register-bedrock.js.map +1 -1
- package/dist/ci/verify-reporter.d.ts +22 -0
- package/dist/ci/verify-reporter.d.ts.map +1 -0
- package/dist/ci/verify-reporter.js +50 -0
- package/dist/ci/verify-reporter.js.map +1 -0
- package/dist/cli/args.d.ts +4 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +8 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/config-selector.d.ts.map +1 -1
- package/dist/cli/config-selector.js +1 -1
- package/dist/cli/config-selector.js.map +1 -1
- package/dist/cli/file-processor.d.ts +1 -1
- package/dist/cli/file-processor.d.ts.map +1 -1
- package/dist/cli/file-processor.js.map +1 -1
- package/dist/cli/initial-message.d.ts +1 -1
- package/dist/cli/initial-message.d.ts.map +1 -1
- package/dist/cli/initial-message.js.map +1 -1
- package/dist/cli/jailbreak-args.d.ts +26 -0
- package/dist/cli/jailbreak-args.d.ts.map +1 -0
- package/dist/cli/jailbreak-args.js +86 -0
- package/dist/cli/jailbreak-args.js.map +1 -0
- package/dist/cli/list-models.d.ts.map +1 -1
- package/dist/cli/list-models.js +1 -1
- package/dist/cli/list-models.js.map +1 -1
- package/dist/cli/session-picker.d.ts.map +1 -1
- package/dist/cli/session-picker.js +1 -1
- package/dist/cli/session-picker.js.map +1 -1
- package/dist/commands/doctor-provider.d.ts +19 -0
- package/dist/commands/doctor-provider.d.ts.map +1 -0
- package/dist/commands/doctor-provider.js +123 -0
- package/dist/commands/doctor-provider.js.map +1 -0
- package/dist/commands/jailbreak.d.ts +49 -0
- package/dist/commands/jailbreak.d.ts.map +1 -0
- package/dist/commands/jailbreak.js +201 -0
- package/dist/commands/jailbreak.js.map +1 -0
- package/dist/config.d.ts +9 -5
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +33 -52
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session-services.d.ts +2 -2
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session.d.ts +16 -27
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +185 -89
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-storage.d.ts +3 -6
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +7 -7
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/automation/index.d.ts +359 -0
- package/dist/core/automation/index.d.ts.map +1 -0
- package/dist/core/automation/index.js +665 -0
- package/dist/core/automation/index.js.map +1 -0
- package/dist/core/bash-executor.d.ts +1 -0
- package/dist/core/bash-executor.d.ts.map +1 -1
- package/dist/core/bash-executor.js +1 -0
- package/dist/core/bash-executor.js.map +1 -1
- package/dist/core/browser-use.d.ts +53 -0
- package/dist/core/browser-use.d.ts.map +1 -0
- package/dist/core/browser-use.js +108 -0
- package/dist/core/browser-use.js.map +1 -0
- package/dist/core/command-safety-parser.d.ts +77 -0
- package/dist/core/command-safety-parser.d.ts.map +1 -0
- package/dist/core/command-safety-parser.js +763 -0
- package/dist/core/command-safety-parser.js.map +1 -0
- package/dist/core/command-safety.d.ts.map +1 -1
- package/dist/core/command-safety.js +106 -3
- package/dist/core/command-safety.js.map +1 -1
- package/dist/core/compaction/branch-summarization.d.ts +2 -2
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js +5 -21
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts +3 -101
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +21 -656
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/compaction/utils.d.ts +2 -2
- package/dist/core/compaction/utils.d.ts.map +1 -1
- package/dist/core/compaction/utils.js.map +1 -1
- package/dist/core/compactor.d.ts +42 -0
- package/dist/core/compactor.d.ts.map +1 -0
- package/dist/core/compactor.js +131 -0
- package/dist/core/compactor.js.map +1 -0
- package/dist/core/context-budget-compressors.d.ts +50 -0
- package/dist/core/context-budget-compressors.d.ts.map +1 -0
- package/dist/core/context-budget-compressors.js +166 -0
- package/dist/core/context-budget-compressors.js.map +1 -0
- package/dist/core/context-budget-governor-v2.d.ts +7 -0
- package/dist/core/context-budget-governor-v2.d.ts.map +1 -0
- package/dist/core/context-budget-governor-v2.js +7 -0
- package/dist/core/context-budget-governor-v2.js.map +1 -0
- package/dist/core/context-budget-governor.d.ts +67 -0
- package/dist/core/context-budget-governor.d.ts.map +1 -0
- package/dist/core/context-budget-governor.js +224 -0
- package/dist/core/context-budget-governor.js.map +1 -0
- package/dist/core/context-budget-headroom-candidates.d.ts +3 -0
- package/dist/core/context-budget-headroom-candidates.d.ts.map +1 -0
- package/dist/core/context-budget-headroom-candidates.js +85 -0
- package/dist/core/context-budget-headroom-candidates.js.map +1 -0
- package/dist/core/context-budget-headroom-types.d.ts +67 -0
- package/dist/core/context-budget-headroom-types.d.ts.map +1 -0
- package/dist/core/context-budget-headroom-types.js +46 -0
- package/dist/core/context-budget-headroom-types.js.map +1 -0
- package/dist/core/context-budget-headroom.d.ts +5 -0
- package/dist/core/context-budget-headroom.d.ts.map +1 -0
- package/dist/core/context-budget-headroom.js +123 -0
- package/dist/core/context-budget-headroom.js.map +1 -0
- package/dist/core/context-budget-relevance.d.ts +46 -0
- package/dist/core/context-budget-relevance.d.ts.map +1 -0
- package/dist/core/context-budget-relevance.js +329 -0
- package/dist/core/context-budget-relevance.js.map +1 -0
- package/dist/core/context-budget-system-prompt-items.d.ts +19 -0
- package/dist/core/context-budget-system-prompt-items.d.ts.map +1 -0
- package/dist/core/context-budget-system-prompt-items.js +143 -0
- package/dist/core/context-budget-system-prompt-items.js.map +1 -0
- package/dist/core/context-budget-system-prompt.d.ts +31 -0
- package/dist/core/context-budget-system-prompt.d.ts.map +1 -0
- package/dist/core/context-budget-system-prompt.js +87 -0
- package/dist/core/context-budget-system-prompt.js.map +1 -0
- package/dist/core/context-budget-token-counter.d.ts +34 -0
- package/dist/core/context-budget-token-counter.d.ts.map +1 -0
- package/dist/core/context-budget-token-counter.js +315 -0
- package/dist/core/context-budget-token-counter.js.map +1 -0
- package/dist/core/context-budget-v2-coverage.d.ts +5 -0
- package/dist/core/context-budget-v2-coverage.d.ts.map +1 -0
- package/dist/core/context-budget-v2-coverage.js +58 -0
- package/dist/core/context-budget-v2-coverage.js.map +1 -0
- package/dist/core/context-budget-v2-plan-hash.d.ts +12 -0
- package/dist/core/context-budget-v2-plan-hash.d.ts.map +1 -0
- package/dist/core/context-budget-v2-plan-hash.js +38 -0
- package/dist/core/context-budget-v2-plan-hash.js.map +1 -0
- package/dist/core/context-budget-v2-planner.d.ts +3 -0
- package/dist/core/context-budget-v2-planner.d.ts.map +1 -0
- package/dist/core/context-budget-v2-planner.js +143 -0
- package/dist/core/context-budget-v2-planner.js.map +1 -0
- package/dist/core/context-budget-v2-scoring.d.ts +14 -0
- package/dist/core/context-budget-v2-scoring.d.ts.map +1 -0
- package/dist/core/context-budget-v2-scoring.js +114 -0
- package/dist/core/context-budget-v2-scoring.js.map +1 -0
- package/dist/core/context-budget-v2-selection.d.ts +32 -0
- package/dist/core/context-budget-v2-selection.d.ts.map +1 -0
- package/dist/core/context-budget-v2-selection.js +158 -0
- package/dist/core/context-budget-v2-selection.js.map +1 -0
- package/dist/core/context-budget-v2-tiers.d.ts +15 -0
- package/dist/core/context-budget-v2-tiers.d.ts.map +1 -0
- package/dist/core/context-budget-v2-tiers.js +68 -0
- package/dist/core/context-budget-v2-tiers.js.map +1 -0
- package/dist/core/context-budget-v2-types.d.ts +92 -0
- package/dist/core/context-budget-v2-types.d.ts.map +1 -0
- package/dist/core/context-budget-v2-types.js +24 -0
- package/dist/core/context-budget-v2-types.js.map +1 -0
- package/dist/core/defaults.d.ts +1 -1
- package/dist/core/defaults.d.ts.map +1 -1
- package/dist/core/defaults.js.map +1 -1
- package/dist/core/diagnostics.d.ts +6 -0
- package/dist/core/diagnostics.d.ts.map +1 -1
- package/dist/core/diagnostics.js.map +1 -1
- package/dist/core/domain-confidence.d.ts +9 -0
- package/dist/core/domain-confidence.d.ts.map +1 -0
- package/dist/core/domain-confidence.js +39 -0
- package/dist/core/domain-confidence.js.map +1 -0
- package/dist/core/domain-dispatch.d.ts +44 -0
- package/dist/core/domain-dispatch.d.ts.map +1 -0
- package/dist/core/domain-dispatch.js +118 -0
- package/dist/core/domain-dispatch.js.map +1 -0
- package/dist/core/domain-loadouts.d.ts +76 -0
- package/dist/core/domain-loadouts.d.ts.map +1 -0
- package/dist/core/domain-loadouts.js +981 -0
- package/dist/core/domain-loadouts.js.map +1 -0
- package/dist/core/domain-registry.d.ts +7 -0
- package/dist/core/domain-registry.d.ts.map +1 -0
- package/dist/core/domain-registry.js +11 -0
- package/dist/core/domain-registry.js.map +1 -0
- package/dist/core/domain-router.d.ts +16 -0
- package/dist/core/domain-router.d.ts.map +1 -0
- package/dist/core/domain-router.js +24 -0
- package/dist/core/domain-router.js.map +1 -0
- package/dist/core/domain-score.d.ts +13 -0
- package/dist/core/domain-score.d.ts.map +1 -0
- package/dist/core/domain-score.js +48 -0
- package/dist/core/domain-score.js.map +1 -0
- package/dist/core/domain-trigger-match.d.ts +14 -0
- package/dist/core/domain-trigger-match.d.ts.map +1 -0
- package/dist/core/domain-trigger-match.js +51 -0
- package/dist/core/domain-trigger-match.js.map +1 -0
- package/dist/core/domain-types.d.ts +30 -0
- package/dist/core/domain-types.d.ts.map +1 -0
- package/dist/core/domain-types.js +2 -0
- package/dist/core/domain-types.js.map +1 -0
- package/dist/core/exact-cache-policy.d.ts +8 -0
- package/dist/core/exact-cache-policy.d.ts.map +1 -1
- package/dist/core/exact-cache-policy.js +9 -0
- package/dist/core/exact-cache-policy.js.map +1 -1
- package/dist/core/exec.d.ts +0 -2
- package/dist/core/exec.d.ts.map +1 -1
- package/dist/core/exec.js +0 -1
- package/dist/core/exec.js.map +1 -1
- package/dist/core/export-html/index.d.ts +1 -1
- package/dist/core/export-html/index.d.ts.map +1 -1
- package/dist/core/export-html/index.js.map +1 -1
- package/dist/core/export-html/template.js +1 -3
- package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
- package/dist/core/export-html/tool-renderer.js.map +1 -1
- package/dist/core/extensions/builtin/command-safety-gate.d.ts +3 -0
- package/dist/core/extensions/builtin/command-safety-gate.d.ts.map +1 -1
- package/dist/core/extensions/builtin/command-safety-gate.js +15 -3
- package/dist/core/extensions/builtin/command-safety-gate.js.map +1 -1
- package/dist/core/extensions/builtin/todo-checklist.d.ts +20 -0
- package/dist/core/extensions/builtin/todo-checklist.d.ts.map +1 -0
- package/dist/core/extensions/builtin/todo-checklist.js +73 -0
- package/dist/core/extensions/builtin/todo-checklist.js.map +1 -0
- package/dist/core/extensions/loader.d.ts +4 -4
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +57 -92
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +3 -3
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +1 -1
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +7 -35
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/extensions/wrapper.d.ts +1 -1
- package/dist/core/extensions/wrapper.d.ts.map +1 -1
- package/dist/core/extensions/wrapper.js.map +1 -1
- package/dist/core/footer-data-provider.d.ts +3 -1
- package/dist/core/footer-data-provider.d.ts.map +1 -1
- package/dist/core/footer-data-provider.js +4 -0
- package/dist/core/footer-data-provider.js.map +1 -1
- package/dist/core/headroom.d.ts +45 -0
- package/dist/core/headroom.d.ts.map +1 -0
- package/dist/core/headroom.js +171 -0
- package/dist/core/headroom.js.map +1 -0
- package/dist/core/hook-inventory.d.ts +4 -2
- package/dist/core/hook-inventory.d.ts.map +1 -1
- package/dist/core/hook-inventory.js +80 -11
- package/dist/core/hook-inventory.js.map +1 -1
- package/dist/core/hooks/fail-closed.d.ts +4 -1
- package/dist/core/hooks/fail-closed.d.ts.map +1 -1
- package/dist/core/hooks/fail-closed.js +79 -5
- package/dist/core/hooks/fail-closed.js.map +1 -1
- package/dist/core/hooks/index.d.ts +2 -2
- package/dist/core/hooks/index.d.ts.map +1 -1
- package/dist/core/hooks/index.js +1 -1
- package/dist/core/hooks/index.js.map +1 -1
- package/dist/core/hooks/types.d.ts +9 -0
- package/dist/core/hooks/types.d.ts.map +1 -1
- package/dist/core/hooks/types.js.map +1 -1
- package/dist/core/keybindings.d.ts +2 -14
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +1 -31
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/lean-ctx.d.ts +99 -0
- package/dist/core/lean-ctx.d.ts.map +1 -0
- package/dist/core/lean-ctx.js +225 -0
- package/dist/core/lean-ctx.js.map +1 -0
- package/dist/core/loadout-compose.d.ts +53 -0
- package/dist/core/loadout-compose.d.ts.map +1 -0
- package/dist/core/loadout-compose.js +172 -0
- package/dist/core/loadout-compose.js.map +1 -0
- package/dist/core/loadout-policy-bridge.d.ts +22 -0
- package/dist/core/loadout-policy-bridge.d.ts.map +1 -0
- package/dist/core/loadout-policy-bridge.js +52 -0
- package/dist/core/loadout-policy-bridge.js.map +1 -0
- package/dist/core/loadout-runtime.d.ts +22 -0
- package/dist/core/loadout-runtime.d.ts.map +1 -1
- package/dist/core/loadout-runtime.js +41 -5
- package/dist/core/loadout-runtime.js.map +1 -1
- package/dist/core/loadout-safety.d.ts +55 -0
- package/dist/core/loadout-safety.d.ts.map +1 -0
- package/dist/core/loadout-safety.js +213 -0
- package/dist/core/loadout-safety.js.map +1 -0
- package/dist/core/loadouts.d.ts +4 -2
- package/dist/core/loadouts.d.ts.map +1 -1
- package/dist/core/loadouts.js +116 -5
- package/dist/core/loadouts.js.map +1 -1
- package/dist/core/loop-gates.d.ts +48 -0
- package/dist/core/loop-gates.d.ts.map +1 -0
- package/dist/core/loop-gates.js +352 -0
- package/dist/core/loop-gates.js.map +1 -0
- package/dist/core/loop-registry.d.ts +77 -0
- package/dist/core/loop-registry.d.ts.map +1 -0
- package/dist/core/loop-registry.js +831 -0
- package/dist/core/loop-registry.js.map +1 -0
- package/dist/core/loop-types.d.ts +194 -0
- package/dist/core/loop-types.d.ts.map +1 -0
- package/dist/core/loop-types.js +2 -0
- package/dist/core/loop-types.js.map +1 -0
- package/dist/core/mcp-inventory.d.ts +7 -0
- package/dist/core/mcp-inventory.d.ts.map +1 -1
- package/dist/core/mcp-inventory.js +5 -1
- package/dist/core/mcp-inventory.js.map +1 -1
- package/dist/core/mcp-presets.d.ts +43 -2
- package/dist/core/mcp-presets.d.ts.map +1 -1
- package/dist/core/mcp-presets.js +298 -2
- package/dist/core/mcp-presets.js.map +1 -1
- package/dist/core/messages.d.ts +3 -3
- package/dist/core/messages.d.ts.map +1 -1
- package/dist/core/messages.js.map +1 -1
- package/dist/core/metrics-sampler.d.ts +11 -0
- package/dist/core/metrics-sampler.d.ts.map +1 -1
- package/dist/core/metrics-sampler.js +52 -13
- package/dist/core/metrics-sampler.js.map +1 -1
- package/dist/core/model-registry.d.ts +1 -2
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +18 -41
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-resolver.d.ts +2 -2
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +2 -2
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/package-gallery-identity.d.ts +7 -0
- package/dist/core/package-gallery-identity.d.ts.map +1 -0
- package/dist/core/package-gallery-identity.js +31 -0
- package/dist/core/package-gallery-identity.js.map +1 -0
- package/dist/core/package-gallery-install.d.ts +6 -0
- package/dist/core/package-gallery-install.d.ts.map +1 -0
- package/dist/core/package-gallery-install.js +59 -0
- package/dist/core/package-gallery-install.js.map +1 -0
- package/dist/core/package-gallery-manifest.d.ts +13 -0
- package/dist/core/package-gallery-manifest.d.ts.map +1 -0
- package/dist/core/package-gallery-manifest.js +183 -0
- package/dist/core/package-gallery-manifest.js.map +1 -0
- package/dist/core/package-gallery-trial.d.ts +4 -0
- package/dist/core/package-gallery-trial.d.ts.map +1 -0
- package/dist/core/package-gallery-trial.js +55 -0
- package/dist/core/package-gallery-trial.js.map +1 -0
- package/dist/core/package-gallery-types.d.ts +71 -0
- package/dist/core/package-gallery-types.d.ts.map +1 -0
- package/dist/core/package-gallery-types.js +2 -0
- package/dist/core/package-gallery-types.js.map +1 -0
- package/dist/core/package-gallery.d.ts +5 -123
- package/dist/core/package-gallery.d.ts.map +1 -1
- package/dist/core/package-gallery.js +5 -391
- package/dist/core/package-gallery.js.map +1 -1
- package/dist/core/package-manager.d.ts +0 -69
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +69 -367
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/package-procurement.d.ts +4 -4
- package/dist/core/package-procurement.d.ts.map +1 -1
- package/dist/core/package-procurement.js +29 -17
- package/dist/core/package-procurement.js.map +1 -1
- package/dist/core/pi-package-intake-candidates.d.ts +21 -0
- package/dist/core/pi-package-intake-candidates.d.ts.map +1 -0
- package/dist/core/pi-package-intake-candidates.js +109 -0
- package/dist/core/pi-package-intake-candidates.js.map +1 -0
- package/dist/core/pi-package-intake.d.ts +43 -0
- package/dist/core/pi-package-intake.d.ts.map +1 -0
- package/dist/core/pi-package-intake.js +122 -0
- package/dist/core/pi-package-intake.js.map +1 -0
- package/dist/core/provider-attribution.d.ts +1 -1
- package/dist/core/provider-attribution.d.ts.map +1 -1
- package/dist/core/provider-attribution.js.map +1 -1
- package/dist/core/provider-display-names.d.ts.map +1 -1
- package/dist/core/provider-display-names.js +1 -0
- package/dist/core/provider-display-names.js.map +1 -1
- package/dist/core/read-anchors.d.ts +1 -1
- package/dist/core/read-anchors.d.ts.map +1 -1
- package/dist/core/read-anchors.js +1 -1
- package/dist/core/read-anchors.js.map +1 -1
- package/dist/core/recovery-checkpoint.d.ts +2 -2
- package/dist/core/recovery-checkpoint.d.ts.map +1 -1
- package/dist/core/recovery-checkpoint.js +2 -2
- package/dist/core/recovery-checkpoint.js.map +1 -1
- package/dist/core/resolve-config-value.d.ts +1 -1
- package/dist/core/resolve-config-value.d.ts.map +1 -1
- package/dist/core/resolve-config-value.js +2 -30
- package/dist/core/resolve-config-value.js.map +1 -1
- package/dist/core/resource-loader.d.ts +12 -20
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +67 -90
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/sandbox-policy-v2.d.ts +49 -0
- package/dist/core/sandbox-policy-v2.d.ts.map +1 -0
- package/dist/core/sandbox-policy-v2.js +368 -0
- package/dist/core/sandbox-policy-v2.js.map +1 -0
- package/dist/core/sdk.d.ts +10 -78
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +97 -139
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/semantic-cache-policy.d.ts +7 -1
- package/dist/core/semantic-cache-policy.d.ts.map +1 -1
- package/dist/core/semantic-cache-policy.js +8 -0
- package/dist/core/semantic-cache-policy.js.map +1 -1
- package/dist/core/session-manager.d.ts +2 -4
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +5 -6
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-manager.d.ts +1 -18
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +2 -48
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/skills.d.ts +5 -0
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +149 -36
- package/dist/core/skills.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +0 -2
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/subagent-orchestration.d.ts +73 -0
- package/dist/core/subagent-orchestration.d.ts.map +1 -0
- package/dist/core/subagent-orchestration.js +408 -0
- package/dist/core/subagent-orchestration.js.map +1 -0
- package/dist/core/system-prompt.d.ts +5 -4
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +57 -36
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/timings.d.ts +0 -4
- package/dist/core/timings.d.ts.map +1 -1
- package/dist/core/timings.js +0 -4
- package/dist/core/timings.js.map +1 -1
- package/dist/core/todo-runtime-state.d.ts +5 -0
- package/dist/core/todo-runtime-state.d.ts.map +1 -0
- package/dist/core/todo-runtime-state.js +12 -0
- package/dist/core/todo-runtime-state.js.map +1 -0
- package/dist/core/todo-state.d.ts +53 -0
- package/dist/core/todo-state.d.ts.map +1 -0
- package/dist/core/todo-state.js +87 -0
- package/dist/core/todo-state.js.map +1 -0
- package/dist/core/token-optimizer.d.ts +58 -0
- package/dist/core/token-optimizer.d.ts.map +1 -0
- package/dist/core/token-optimizer.js +179 -0
- package/dist/core/token-optimizer.js.map +1 -0
- package/dist/core/tools/bash.d.ts +8 -9
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +9 -8
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/edit.d.ts +3 -14
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +4 -25
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/find.d.ts +1 -4
- package/dist/core/tools/find.d.ts.map +1 -1
- package/dist/core/tools/find.js +1 -4
- package/dist/core/tools/find.js.map +1 -1
- package/dist/core/tools/grep.d.ts +1 -4
- package/dist/core/tools/grep.d.ts.map +1 -1
- package/dist/core/tools/grep.js +2 -5
- package/dist/core/tools/grep.js.map +1 -1
- package/dist/core/tools/index.d.ts +2 -2
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/ls.d.ts +1 -4
- package/dist/core/tools/ls.d.ts.map +1 -1
- package/dist/core/tools/ls.js +1 -4
- package/dist/core/tools/ls.js.map +1 -1
- package/dist/core/tools/read.d.ts +2 -14
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js +4 -28
- package/dist/core/tools/read.js.map +1 -1
- package/dist/core/tools/render-utils.d.ts +1 -1
- package/dist/core/tools/render-utils.d.ts.map +1 -1
- package/dist/core/tools/render-utils.js +1 -1
- package/dist/core/tools/render-utils.js.map +1 -1
- package/dist/core/tools/tool-definition-wrapper.d.ts +1 -1
- package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
- package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
- package/dist/core/tools/write.d.ts +2 -4
- package/dist/core/tools/write.d.ts.map +1 -1
- package/dist/core/tools/write.js +4 -4
- package/dist/core/tools/write.js.map +1 -1
- package/dist/encoding/index.d.ts +6 -0
- package/dist/encoding/index.d.ts.map +1 -0
- package/dist/encoding/index.js +6 -0
- package/dist/encoding/index.js.map +1 -0
- package/dist/encoding/l4-encoder.d.ts +96 -0
- package/dist/encoding/l4-encoder.d.ts.map +1 -0
- package/dist/encoding/l4-encoder.js +474 -0
- package/dist/encoding/l4-encoder.js.map +1 -0
- package/dist/fuzzing/index.d.ts +6 -0
- package/dist/fuzzing/index.d.ts.map +1 -0
- package/dist/fuzzing/index.js +6 -0
- package/dist/fuzzing/index.js.map +1 -0
- package/dist/fuzzing/mutation-engine.d.ts +93 -0
- package/dist/fuzzing/mutation-engine.d.ts.map +1 -0
- package/dist/fuzzing/mutation-engine.js +244 -0
- package/dist/fuzzing/mutation-engine.js.map +1 -0
- package/dist/guardrails/audit-logger.d.ts +4 -0
- package/dist/guardrails/audit-logger.d.ts.map +1 -0
- package/dist/guardrails/audit-logger.js +28 -0
- package/dist/guardrails/audit-logger.js.map +1 -0
- package/dist/guardrails/evidence-system.d.ts +61 -0
- package/dist/guardrails/evidence-system.d.ts.map +1 -0
- package/dist/guardrails/evidence-system.js +302 -0
- package/dist/guardrails/evidence-system.js.map +1 -0
- package/dist/guardrails/freedomd-adapter.d.ts +16 -0
- package/dist/guardrails/freedomd-adapter.d.ts.map +1 -0
- package/dist/guardrails/freedomd-adapter.js +87 -0
- package/dist/guardrails/freedomd-adapter.js.map +1 -0
- package/dist/index.d.ts +5 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -17
- package/dist/index.js.map +1 -1
- package/dist/jailbreak-extension.d.ts +48 -0
- package/dist/jailbreak-extension.d.ts.map +1 -0
- package/dist/jailbreak-extension.js +47 -0
- package/dist/jailbreak-extension.js.map +1 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +2 -2
- package/dist/main.js.map +1 -1
- package/dist/migrations.d.ts +0 -37
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js +6 -414
- package/dist/migrations.js.map +1 -1
- package/dist/modes/interactive/components/armin.d.ts +1 -1
- package/dist/modes/interactive/components/armin.d.ts.map +1 -1
- package/dist/modes/interactive/components/armin.js.map +1 -1
- package/dist/modes/interactive/components/assistant-message.d.ts +2 -2
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js +1 -1
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/bash-execution.d.ts +1 -1
- package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/bash-execution.js +1 -1
- package/dist/modes/interactive/components/bash-execution.js.map +1 -1
- package/dist/modes/interactive/components/bordered-loader.d.ts +1 -1
- package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
- package/dist/modes/interactive/components/bordered-loader.js +1 -1
- package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.d.ts +1 -1
- package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.js +1 -1
- package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.d.ts +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.js +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/config-selector.d.ts +1 -1
- package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/config-selector.js +1 -1
- package/dist/modes/interactive/components/config-selector.js.map +1 -1
- package/dist/modes/interactive/components/control-panel-box.d.ts +15 -0
- package/dist/modes/interactive/components/control-panel-box.d.ts.map +1 -0
- package/dist/modes/interactive/components/control-panel-box.js +55 -0
- package/dist/modes/interactive/components/control-panel-box.js.map +1 -0
- package/dist/modes/interactive/components/control-panel-gradient-motion.d.ts.map +1 -1
- package/dist/modes/interactive/components/control-panel-gradient-motion.js +2 -36
- package/dist/modes/interactive/components/control-panel-gradient-motion.js.map +1 -1
- package/dist/modes/interactive/components/control-panel-gradient.d.ts +1 -0
- package/dist/modes/interactive/components/control-panel-gradient.d.ts.map +1 -1
- package/dist/modes/interactive/components/control-panel-gradient.js +6 -5
- package/dist/modes/interactive/components/control-panel-gradient.js.map +1 -1
- package/dist/modes/interactive/components/control-panel-layout.d.ts +30 -0
- package/dist/modes/interactive/components/control-panel-layout.d.ts.map +1 -0
- package/dist/modes/interactive/components/control-panel-layout.js +197 -0
- package/dist/modes/interactive/components/control-panel-layout.js.map +1 -0
- package/dist/modes/interactive/components/control-panel-runtime-status.d.ts +6 -0
- package/dist/modes/interactive/components/control-panel-runtime-status.d.ts.map +1 -0
- package/dist/modes/interactive/components/control-panel-runtime-status.js +29 -0
- package/dist/modes/interactive/components/control-panel-runtime-status.js.map +1 -0
- package/dist/modes/interactive/components/control-panel.d.ts +9 -31
- package/dist/modes/interactive/components/control-panel.d.ts.map +1 -1
- package/dist/modes/interactive/components/control-panel.js +49 -168
- package/dist/modes/interactive/components/control-panel.js.map +1 -1
- package/dist/modes/interactive/components/countdown-timer.d.ts +1 -1
- package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
- package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
- package/dist/modes/interactive/components/custom-editor.d.ts +1 -1
- package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-editor.js +14 -22
- package/dist/modes/interactive/components/custom-editor.js.map +1 -1
- package/dist/modes/interactive/components/custom-message.d.ts +1 -1
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-message.js +1 -1
- package/dist/modes/interactive/components/custom-message.js.map +1 -1
- package/dist/modes/interactive/components/daxnuts.d.ts +1 -1
- package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -1
- package/dist/modes/interactive/components/daxnuts.js.map +1 -1
- package/dist/modes/interactive/components/dynamic-border.d.ts +1 -1
- package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -1
- package/dist/modes/interactive/components/dynamic-border.js.map +1 -1
- package/dist/modes/interactive/components/earendil-announcement.d.ts +1 -1
- package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -1
- package/dist/modes/interactive/components/earendil-announcement.js +1 -1
- package/dist/modes/interactive/components/earendil-announcement.js.map +1 -1
- package/dist/modes/interactive/components/extension-editor.d.ts +1 -1
- package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-editor.js +1 -1
- package/dist/modes/interactive/components/extension-editor.js.map +1 -1
- package/dist/modes/interactive/components/extension-input.d.ts +1 -1
- package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-input.js +1 -1
- package/dist/modes/interactive/components/extension-input.js.map +1 -1
- package/dist/modes/interactive/components/extension-selector.d.ts +1 -1
- package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-selector.js +1 -1
- package/dist/modes/interactive/components/extension-selector.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts +1 -1
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +7 -9
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/index.d.ts +0 -2
- package/dist/modes/interactive/components/index.d.ts.map +1 -1
- package/dist/modes/interactive/components/index.js +0 -2
- package/dist/modes/interactive/components/index.js.map +1 -1
- package/dist/modes/interactive/components/keybinding-hints.d.ts +1 -1
- package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
- package/dist/modes/interactive/components/keybinding-hints.js +1 -1
- package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
- package/dist/modes/interactive/components/login-dialog.d.ts +2 -2
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
- package/dist/modes/interactive/components/login-dialog.js +2 -2
- package/dist/modes/interactive/components/login-dialog.js.map +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts +13 -47
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js +118 -193
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts +1 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.js +1 -1
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.d.ts +2 -2
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.js +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
- package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector-search.js +1 -1
- package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
- package/dist/modes/interactive/components/session-selector.d.ts +1 -1
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector.js +1 -1
- package/dist/modes/interactive/components/session-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +3 -3
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +1 -1
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/show-images-selector.d.ts +1 -1
- package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/show-images-selector.js +1 -1
- package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.d.ts +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.js +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
- package/dist/modes/interactive/components/theme-selector.d.ts +1 -2
- package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/theme-selector.js +2 -11
- package/dist/modes/interactive/components/theme-selector.js.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.d.ts +8 -7
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.js +48 -7
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
- package/dist/modes/interactive/components/todo-checklist.d.ts +31 -0
- package/dist/modes/interactive/components/todo-checklist.d.ts.map +1 -0
- package/dist/modes/interactive/components/todo-checklist.js +121 -0
- package/dist/modes/interactive/components/todo-checklist.js.map +1 -0
- package/dist/modes/interactive/components/tool-execution.d.ts +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +1 -1
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/components/tree-selector.d.ts +1 -1
- package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/tree-selector.js +1 -1
- package/dist/modes/interactive/components/tree-selector.js.map +1 -1
- package/dist/modes/interactive/components/user-message-selector.d.ts +1 -1
- package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message-selector.js +1 -1
- package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
- package/dist/modes/interactive/components/user-message.d.ts +1 -1
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message.js +1 -1
- package/dist/modes/interactive/components/user-message.js.map +1 -1
- package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -1
- package/dist/modes/interactive/components/visual-truncate.js +1 -1
- package/dist/modes/interactive/components/visual-truncate.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +3 -8
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +80 -232
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/theme/omk-control-grid-dark.json +65 -77
- package/dist/modes/interactive/theme/omk-neon-control.json +90 -0
- package/dist/modes/interactive/theme/rust-forge.json +14 -24
- package/dist/modes/interactive/theme/theme.d.ts +1 -1
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +25 -45
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/print-mode.d.ts +1 -1
- package/dist/modes/print-mode.d.ts.map +1 -1
- package/dist/modes/print-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts +2 -2
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +0 -4
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +2 -2
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-types.js.map +1 -1
- package/dist/modules/index.d.ts +8 -0
- package/dist/modules/index.d.ts.map +1 -0
- package/dist/modules/index.js +7 -0
- package/dist/modules/index.js.map +1 -0
- package/dist/modules/lrl-bypass.d.ts +40 -0
- package/dist/modules/lrl-bypass.d.ts.map +1 -0
- package/dist/modules/lrl-bypass.js +84 -0
- package/dist/modules/lrl-bypass.js.map +1 -0
- package/dist/modules/lrl-deps.d.ts +38 -0
- package/dist/modules/lrl-deps.d.ts.map +1 -0
- package/dist/modules/lrl-deps.js +128 -0
- package/dist/modules/lrl-deps.js.map +1 -0
- package/dist/multiturn/easl-chain.d.ts +113 -0
- package/dist/multiturn/easl-chain.d.ts.map +1 -0
- package/dist/multiturn/easl-chain.js +351 -0
- package/dist/multiturn/easl-chain.js.map +1 -0
- package/dist/multiturn/index.d.ts +6 -0
- package/dist/multiturn/index.d.ts.map +1 -0
- package/dist/multiturn/index.js +6 -0
- package/dist/multiturn/index.js.map +1 -0
- package/dist/orchestration/lane-grant-auditor.d.ts +4 -0
- package/dist/orchestration/lane-grant-auditor.d.ts.map +1 -0
- package/dist/orchestration/lane-grant-auditor.js +87 -0
- package/dist/orchestration/lane-grant-auditor.js.map +1 -0
- package/dist/package-manager-cli.d.ts.map +1 -1
- package/dist/package-manager-cli.js +48 -113
- package/dist/package-manager-cli.js.map +1 -1
- package/dist/routing/fallback-router.d.ts +123 -0
- package/dist/routing/fallback-router.d.ts.map +1 -0
- package/dist/routing/fallback-router.js +355 -0
- package/dist/routing/fallback-router.js.map +1 -0
- package/dist/routing/index.d.ts +6 -0
- package/dist/routing/index.d.ts.map +1 -0
- package/dist/routing/index.js +6 -0
- package/dist/routing/index.js.map +1 -0
- package/dist/types/evidence.d.ts +117 -0
- package/dist/types/evidence.d.ts.map +1 -0
- package/dist/types/evidence.js +8 -0
- package/dist/types/evidence.js.map +1 -0
- package/dist/types/guardrails.d.ts +61 -0
- package/dist/types/guardrails.d.ts.map +1 -0
- package/dist/types/guardrails.js +9 -0
- package/dist/types/guardrails.js.map +1 -0
- package/dist/types/jailbreak.d.ts +246 -0
- package/dist/types/jailbreak.d.ts.map +1 -0
- package/dist/types/jailbreak.js +8 -0
- package/dist/types/jailbreak.js.map +1 -0
- package/dist/types/lane-grant.d.ts +58 -0
- package/dist/types/lane-grant.d.ts.map +1 -0
- package/dist/types/lane-grant.js +9 -0
- package/dist/types/lane-grant.js.map +1 -0
- package/dist/utils/jailbreak/common.d.ts +63 -0
- package/dist/utils/jailbreak/common.d.ts.map +1 -0
- package/dist/utils/jailbreak/common.js +130 -0
- package/dist/utils/jailbreak/common.js.map +1 -0
- package/dist/utils/jailbreak/index.d.ts +7 -0
- package/dist/utils/jailbreak/index.d.ts.map +1 -0
- package/dist/utils/jailbreak/index.js +7 -0
- package/dist/utils/jailbreak/index.js.map +1 -0
- package/dist/utils/windows-self-update.d.ts.map +1 -1
- package/dist/utils/windows-self-update.js +1 -1
- package/dist/utils/windows-self-update.js.map +1 -1
- package/docs/compaction.md +8 -21
- package/docs/custom-provider.md +2 -2
- package/docs/development.md +1 -1
- package/docs/extensions.md +11 -11
- package/docs/loadout-domains/README.md +70 -0
- package/docs/loadout-domains/ai-agent-ops.md +94 -0
- package/docs/loadout-domains/backend-api.md +116 -0
- package/docs/loadout-domains/data-science.md +100 -0
- package/docs/loadout-domains/devops-infra.md +85 -0
- package/docs/loadout-domains/docs-writing.md +92 -0
- package/docs/loadout-domains/frontend-ui.md +128 -0
- package/docs/loadout-domains/general.md +62 -0
- package/docs/loadout-domains/mobile.md +84 -0
- package/docs/loadout-domains/qa-testing.md +87 -0
- package/docs/loadout-domains/research.md +80 -0
- package/docs/loadout-domains/security-audit.md +97 -0
- package/docs/packages.md +7 -48
- package/docs/prompt-templates.md +0 -2
- package/docs/providers.md +12 -0
- package/docs/sdk.md +3 -3
- package/docs/security.md +145 -0
- package/docs/session-format.md +1 -1
- package/docs/themes.md +8 -7
- package/docs/tui.md +14 -14
- package/docs/usage.md +6 -16
- package/examples/extensions/README.md +2 -2
- package/examples/extensions/aside-computer-use/README.md +114 -0
- package/examples/extensions/aside-computer-use/action-scoring.ts +122 -0
- package/examples/extensions/aside-computer-use/assertions.ts +380 -0
- package/examples/extensions/aside-computer-use/controller.ts +491 -0
- package/examples/extensions/aside-computer-use/evidence.ts +229 -0
- package/examples/extensions/aside-computer-use/golden-trace.ts +141 -0
- package/examples/extensions/aside-computer-use/index.ts +76 -0
- package/examples/extensions/aside-computer-use/mcp-client.ts +381 -0
- package/examples/extensions/aside-computer-use/observation-snapshot.ts +121 -0
- package/examples/extensions/aside-computer-use/package.json +16 -0
- package/examples/extensions/aside-computer-use/policy.ts +257 -0
- package/examples/extensions/aside-computer-use/risk-authorize.ts +200 -0
- package/examples/extensions/aside-computer-use/risk-classifier.ts +205 -0
- package/examples/extensions/aside-computer-use/schema-fingerprint.ts +80 -0
- package/examples/extensions/aside-computer-use/session-binding.ts +161 -0
- package/examples/extensions/aside-computer-use/tools.ts +449 -0
- package/examples/extensions/aside-computer-use/types.ts +217 -0
- package/examples/extensions/aside-computer-use/url-origin.ts +132 -0
- package/examples/extensions/bash-spawn-hook.ts +1 -1
- package/examples/extensions/border-status-editor.ts +2 -2
- package/examples/extensions/built-in-tool-renderer.ts +1 -1
- package/examples/extensions/custom-compaction.ts +1 -1
- package/examples/extensions/custom-footer.ts +2 -2
- package/examples/extensions/custom-header.ts +8 -8
- package/examples/extensions/custom-provider-anthropic/index.ts +1 -1
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/index.ts +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/test.ts +1 -1
- package/examples/extensions/doom-overlay/README.md +1 -2
- package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
- package/examples/extensions/doom-overlay/doom/build.sh +4 -4
- package/examples/extensions/doom-overlay/doom/doomgeneric_omk.c +72 -0
- package/examples/extensions/doom-overlay/doom-component.ts +2 -2
- package/examples/extensions/doom-overlay/doom-keys.ts +1 -1
- package/examples/extensions/git-merge-and-resolve.ts +1 -1
- package/examples/extensions/github-issue-autocomplete.ts +1 -6
- package/examples/extensions/gondolin/index.ts +1 -1
- package/examples/extensions/gondolin/package-lock.json +2 -2
- package/examples/extensions/gondolin/package.json +1 -1
- package/examples/extensions/handoff.ts +2 -2
- package/examples/extensions/hello.ts +1 -1
- package/examples/extensions/inline-bash.ts +1 -1
- package/examples/extensions/input-transform-streaming.ts +1 -1
- package/examples/extensions/input-transform.ts +2 -2
- package/examples/extensions/mac-system-theme.ts +1 -1
- package/examples/extensions/message-renderer.ts +1 -1
- package/examples/extensions/minimal-mode.ts +1 -1
- package/examples/extensions/modal-editor.ts +1 -1
- package/examples/extensions/overlay-qa-tests.ts +7 -7
- package/examples/extensions/overlay-test.ts +1 -1
- package/examples/extensions/plan-mode/index.ts +3 -3
- package/examples/extensions/preset.ts +4 -4
- package/examples/extensions/provider-payload.ts +6 -3
- package/examples/extensions/qna.ts +1 -1
- package/examples/extensions/question.ts +1 -1
- package/examples/extensions/questionnaire.ts +1 -1
- package/examples/extensions/rpc-demo.ts +1 -1
- package/examples/extensions/sandbox/index.ts +2 -2
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/shutdown-command.ts +5 -5
- package/examples/extensions/snake.ts +1 -1
- package/examples/extensions/space-invaders.ts +1 -1
- package/examples/extensions/structured-output.ts +1 -1
- package/examples/extensions/subagent/agents.ts +2 -2
- package/examples/extensions/subagent/index.ts +19 -51
- package/examples/extensions/summarize.ts +2 -2
- package/examples/extensions/tic-tac-toe.ts +2 -2
- package/examples/extensions/todo.ts +2 -2
- package/examples/extensions/tool-override.ts +1 -1
- package/examples/extensions/tools.ts +1 -1
- package/examples/extensions/truncated-tool.ts +1 -1
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/examples/extensions/working-indicator.ts +3 -3
- package/examples/rpc-extension-ui.ts +1 -9
- package/examples/sdk/02-custom-model.ts +1 -1
- package/examples/sdk/07-context-files.ts +0 -2
- package/examples/sdk/12-full-control.ts +1 -1
- package/examples/sdk/README.md +1 -1
- package/npm-shrinkwrap.json +1805 -0
- package/package.json +10 -32
- package/dist/core/compaction/pruner-policy.d.ts +0 -84
- package/dist/core/compaction/pruner-policy.d.ts.map +0 -1
- package/dist/core/compaction/pruner-policy.js +0 -273
- package/dist/core/compaction/pruner-policy.js.map +0 -1
- package/dist/core/context-graph-identity-resolution.d.ts +0 -114
- package/dist/core/context-graph-identity-resolution.d.ts.map +0 -1
- package/dist/core/context-graph-identity-resolution.js +0 -127
- package/dist/core/context-graph-identity-resolution.js.map +0 -1
- package/dist/core/context-graph-memory-store.d.ts +0 -153
- package/dist/core/context-graph-memory-store.d.ts.map +0 -1
- package/dist/core/context-graph-memory-store.js +0 -377
- package/dist/core/context-graph-memory-store.js.map +0 -1
- package/dist/core/context-graph-ontology-generation.d.ts +0 -104
- package/dist/core/context-graph-ontology-generation.d.ts.map +0 -1
- package/dist/core/context-graph-ontology-generation.js +0 -135
- package/dist/core/context-graph-ontology-generation.js.map +0 -1
- package/dist/core/context-graph-ontology-registry.d.ts +0 -766
- package/dist/core/context-graph-ontology-registry.d.ts.map +0 -1
- package/dist/core/context-graph-ontology-registry.js +0 -1133
- package/dist/core/context-graph-ontology-registry.js.map +0 -1
- package/dist/core/context-graph-policy.d.ts +0 -68
- package/dist/core/context-graph-policy.d.ts.map +0 -1
- package/dist/core/context-graph-policy.js +0 -221
- package/dist/core/context-graph-policy.js.map +0 -1
- package/dist/core/context-graph-reasoning.d.ts +0 -130
- package/dist/core/context-graph-reasoning.d.ts.map +0 -1
- package/dist/core/context-graph-reasoning.js +0 -442
- package/dist/core/context-graph-reasoning.js.map +0 -1
- package/dist/core/context-graph-retrieval.d.ts +0 -120
- package/dist/core/context-graph-retrieval.d.ts.map +0 -1
- package/dist/core/context-graph-retrieval.js +0 -288
- package/dist/core/context-graph-retrieval.js.map +0 -1
- package/dist/core/contract-verification.d.ts +0 -78
- package/dist/core/contract-verification.d.ts.map +0 -1
- package/dist/core/contract-verification.js +0 -110
- package/dist/core/contract-verification.js.map +0 -1
- package/dist/core/freedom/banner.d.ts +0 -14
- package/dist/core/freedom/banner.d.ts.map +0 -1
- package/dist/core/freedom/banner.js +0 -22
- package/dist/core/freedom/banner.js.map +0 -1
- package/dist/core/freedom/config.d.ts +0 -27
- package/dist/core/freedom/config.d.ts.map +0 -1
- package/dist/core/freedom/config.js +0 -216
- package/dist/core/freedom/config.js.map +0 -1
- package/dist/core/freedom/index.d.ts +0 -23
- package/dist/core/freedom/index.d.ts.map +0 -1
- package/dist/core/freedom/index.js +0 -19
- package/dist/core/freedom/index.js.map +0 -1
- package/dist/core/freedom/policy.d.ts +0 -42
- package/dist/core/freedom/policy.d.ts.map +0 -1
- package/dist/core/freedom/policy.js +0 -47
- package/dist/core/freedom/policy.js.map +0 -1
- package/dist/core/freedom/safety-floor.d.ts +0 -73
- package/dist/core/freedom/safety-floor.d.ts.map +0 -1
- package/dist/core/freedom/safety-floor.js +0 -275
- package/dist/core/freedom/safety-floor.js.map +0 -1
- package/dist/core/harness-control-events.d.ts +0 -91
- package/dist/core/harness-control-events.d.ts.map +0 -1
- package/dist/core/harness-control-events.js +0 -514
- package/dist/core/harness-control-events.js.map +0 -1
- package/dist/core/harness-control-replay.d.ts +0 -31
- package/dist/core/harness-control-replay.d.ts.map +0 -1
- package/dist/core/harness-control-replay.js +0 -187
- package/dist/core/harness-control-replay.js.map +0 -1
- package/dist/core/headroom-middleware.d.ts +0 -35
- package/dist/core/headroom-middleware.d.ts.map +0 -1
- package/dist/core/headroom-middleware.js +0 -166
- package/dist/core/headroom-middleware.js.map +0 -1
- package/dist/core/lean-context-middleware.d.ts +0 -12
- package/dist/core/lean-context-middleware.d.ts.map +0 -1
- package/dist/core/lean-context-middleware.js +0 -87
- package/dist/core/lean-context-middleware.js.map +0 -1
- package/dist/core/lean-context-policy.d.ts +0 -45
- package/dist/core/lean-context-policy.d.ts.map +0 -1
- package/dist/core/lean-context-policy.js +0 -108
- package/dist/core/lean-context-policy.js.map +0 -1
- package/dist/core/native-adoption-benchmark.d.ts +0 -166
- package/dist/core/native-adoption-benchmark.d.ts.map +0 -1
- package/dist/core/native-adoption-benchmark.js +0 -624
- package/dist/core/native-adoption-benchmark.js.map +0 -1
- package/dist/core/observability-trace.d.ts +0 -80
- package/dist/core/observability-trace.d.ts.map +0 -1
- package/dist/core/observability-trace.js +0 -140
- package/dist/core/observability-trace.js.map +0 -1
- package/dist/core/orchestration/checkpoint.d.ts +0 -83
- package/dist/core/orchestration/checkpoint.d.ts.map +0 -1
- package/dist/core/orchestration/checkpoint.js +0 -152
- package/dist/core/orchestration/checkpoint.js.map +0 -1
- package/dist/core/orchestration/errors.d.ts +0 -74
- package/dist/core/orchestration/errors.d.ts.map +0 -1
- package/dist/core/orchestration/errors.js +0 -52
- package/dist/core/orchestration/errors.js.map +0 -1
- package/dist/core/orchestration/merge-queue.d.ts +0 -121
- package/dist/core/orchestration/merge-queue.d.ts.map +0 -1
- package/dist/core/orchestration/merge-queue.js +0 -149
- package/dist/core/orchestration/merge-queue.js.map +0 -1
- package/dist/core/orchestration/recovery.d.ts +0 -106
- package/dist/core/orchestration/recovery.d.ts.map +0 -1
- package/dist/core/orchestration/recovery.js +0 -110
- package/dist/core/orchestration/recovery.js.map +0 -1
- package/dist/core/orchestration/replay-ledger.d.ts +0 -76
- package/dist/core/orchestration/replay-ledger.d.ts.map +0 -1
- package/dist/core/orchestration/replay-ledger.js +0 -395
- package/dist/core/orchestration/replay-ledger.js.map +0 -1
- package/dist/core/orchestration/scheduler-state.d.ts +0 -78
- package/dist/core/orchestration/scheduler-state.d.ts.map +0 -1
- package/dist/core/orchestration/scheduler-state.js +0 -185
- package/dist/core/orchestration/scheduler-state.js.map +0 -1
- package/dist/core/orchestration/scheduler-store.d.ts +0 -309
- package/dist/core/orchestration/scheduler-store.d.ts.map +0 -1
- package/dist/core/orchestration/scheduler-store.js +0 -368
- package/dist/core/orchestration/scheduler-store.js.map +0 -1
- package/dist/core/orchestration/sqlite-scheduler-store.d.ts +0 -57
- package/dist/core/orchestration/sqlite-scheduler-store.d.ts.map +0 -1
- package/dist/core/orchestration/sqlite-scheduler-store.js +0 -528
- package/dist/core/orchestration/sqlite-scheduler-store.js.map +0 -1
- package/dist/core/orchestration/transaction-coordinator.d.ts +0 -217
- package/dist/core/orchestration/transaction-coordinator.d.ts.map +0 -1
- package/dist/core/orchestration/transaction-coordinator.js +0 -281
- package/dist/core/orchestration/transaction-coordinator.js.map +0 -1
- package/dist/core/orchestration/verification-contract.d.ts +0 -197
- package/dist/core/orchestration/verification-contract.d.ts.map +0 -1
- package/dist/core/orchestration/verification-contract.js +0 -145
- package/dist/core/orchestration/verification-contract.js.map +0 -1
- package/dist/core/package-composition.d.ts +0 -68
- package/dist/core/package-composition.d.ts.map +0 -1
- package/dist/core/package-composition.js +0 -304
- package/dist/core/package-composition.js.map +0 -1
- package/dist/core/package-trial-runtime.d.ts +0 -75
- package/dist/core/package-trial-runtime.d.ts.map +0 -1
- package/dist/core/package-trial-runtime.js +0 -73
- package/dist/core/package-trial-runtime.js.map +0 -1
- package/dist/core/package-trial-sandbox.d.ts +0 -27
- package/dist/core/package-trial-sandbox.d.ts.map +0 -1
- package/dist/core/package-trial-sandbox.js +0 -102
- package/dist/core/package-trial-sandbox.js.map +0 -1
- package/dist/core/policy-overlays-runtime.d.ts +0 -141
- package/dist/core/policy-overlays-runtime.d.ts.map +0 -1
- package/dist/core/policy-overlays-runtime.js +0 -720
- package/dist/core/policy-overlays-runtime.js.map +0 -1
- package/dist/core/read-anchor-registry.d.ts +0 -27
- package/dist/core/read-anchor-registry.d.ts.map +0 -1
- package/dist/core/read-anchor-registry.js +0 -103
- package/dist/core/read-anchor-registry.js.map +0 -1
- package/dist/core/read-content-cache.d.ts +0 -22
- package/dist/core/read-content-cache.d.ts.map +0 -1
- package/dist/core/read-content-cache.js +0 -79
- package/dist/core/read-content-cache.js.map +0 -1
- package/dist/core/session-digest.d.ts +0 -57
- package/dist/core/session-digest.d.ts.map +0 -1
- package/dist/core/session-digest.js +0 -193
- package/dist/core/session-digest.js.map +0 -1
- package/dist/core/spec-kit/compiler.d.ts +0 -67
- package/dist/core/spec-kit/compiler.d.ts.map +0 -1
- package/dist/core/spec-kit/compiler.js +0 -268
- package/dist/core/spec-kit/compiler.js.map +0 -1
- package/dist/core/transaction-coordinator.d.ts +0 -30
- package/dist/core/transaction-coordinator.d.ts.map +0 -1
- package/dist/core/transaction-coordinator.js +0 -173
- package/dist/core/transaction-coordinator.js.map +0 -1
- package/dist/modes/interactive/components/mcp-selector.d.ts +0 -30
- package/dist/modes/interactive/components/mcp-selector.d.ts.map +0 -1
- package/dist/modes/interactive/components/mcp-selector.js +0 -155
- package/dist/modes/interactive/components/mcp-selector.js.map +0 -1
- package/dist/modes/interactive/components/model-selector-state.d.ts +0 -101
- package/dist/modes/interactive/components/model-selector-state.d.ts.map +0 -1
- package/dist/modes/interactive/components/model-selector-state.js +0 -261
- package/dist/modes/interactive/components/model-selector-state.js.map +0 -1
- package/dist/modes/interactive/components/skills-selector.d.ts +0 -32
- package/dist/modes/interactive/components/skills-selector.d.ts.map +0 -1
- package/dist/modes/interactive/components/skills-selector.js +0 -130
- package/dist/modes/interactive/components/skills-selector.js.map +0 -1
- package/dist/modes/interactive/theme/omk-blackboard.json +0 -91
- package/dist/modes/interactive/theme/omk-freedom-grid.json +0 -91
- package/dist/modes/interactive/theme/omk-neon-ops.json +0 -90
- package/dist/modes/interactive/theme/omk-slate-light.json +0 -91
- package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +0 -72
- package/node_modules/@earendil-works/omk-agent-core/README.md +0 -488
- package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.d.ts +0 -24
- package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.js +0 -553
- package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/agent.d.ts +0 -118
- package/node_modules/@earendil-works/omk-agent-core/dist/agent.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/agent.js +0 -402
- package/node_modules/@earendil-works/omk-agent-core/dist/agent.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.d.ts +0 -95
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.js +0 -996
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.d.ts +0 -53
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.js +0 -175
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.d.ts +0 -117
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.js +0 -568
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.d.ts +0 -25
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.js +0 -131
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.d.ts +0 -51
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.js +0 -510
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.d.ts +0 -51
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.js +0 -102
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.d.ts +0 -48
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.js +0 -230
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.d.ts +0 -26
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.js +0 -101
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.d.ts +0 -36
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.js +0 -273
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.d.ts +0 -18
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.js +0 -42
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.d.ts +0 -25
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.js +0 -114
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.d.ts +0 -11
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.js +0 -39
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.d.ts +0 -33
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.js +0 -210
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.d.ts +0 -2
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.js +0 -50
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.d.ts +0 -44
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.js +0 -311
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.d.ts +0 -3
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.js +0 -30
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.d.ts +0 -616
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.js +0 -94
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.d.ts +0 -14
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.js +0 -126
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.d.ts +0 -70
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.js +0 -297
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/index.d.ts +0 -20
- package/node_modules/@earendil-works/omk-agent-core/dist/index.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/index.js +0 -25
- package/node_modules/@earendil-works/omk-agent-core/dist/index.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/node.d.ts +0 -3
- package/node_modules/@earendil-works/omk-agent-core/dist/node.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/node.js +0 -3
- package/node_modules/@earendil-works/omk-agent-core/dist/node.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/proxy.d.ts +0 -69
- package/node_modules/@earendil-works/omk-agent-core/dist/proxy.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/proxy.js +0 -278
- package/node_modules/@earendil-works/omk-agent-core/dist/proxy.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/types.d.ts +0 -393
- package/node_modules/@earendil-works/omk-agent-core/dist/types.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/types.js +0 -2
- package/node_modules/@earendil-works/omk-agent-core/dist/types.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/package.json +0 -60
- package/node_modules/@earendil-works/omk-ai/README.md +0 -1389
- package/node_modules/@earendil-works/omk-ai/dist/api-registry.d.ts +0 -20
- package/node_modules/@earendil-works/omk-ai/dist/api-registry.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/api-registry.js +0 -44
- package/node_modules/@earendil-works/omk-ai/dist/api-registry.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.d.ts +0 -5
- package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.js +0 -6
- package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/cli.d.ts +0 -3
- package/node_modules/@earendil-works/omk-ai/dist/cli.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/cli.js +0 -130
- package/node_modules/@earendil-works/omk-ai/dist/cli.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.d.ts +0 -20
- package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.js +0 -199
- package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/image-models.d.ts +0 -10
- package/node_modules/@earendil-works/omk-ai/dist/image-models.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.d.ts +0 -515
- package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.js +0 -517
- package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/image-models.js +0 -23
- package/node_modules/@earendil-works/omk-ai/dist/image-models.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.d.ts +0 -14
- package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.js +0 -22
- package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/images.d.ts +0 -4
- package/node_modules/@earendil-works/omk-ai/dist/images.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/images.js +0 -16
- package/node_modules/@earendil-works/omk-ai/dist/images.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/index.d.ts +0 -33
- package/node_modules/@earendil-works/omk-ai/dist/index.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/index.js +0 -21
- package/node_modules/@earendil-works/omk-ai/dist/index.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/models.d.ts +0 -18
- package/node_modules/@earendil-works/omk-ai/dist/models.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/models.generated.d.ts +0 -18762
- package/node_modules/@earendil-works/omk-ai/dist/models.generated.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/models.generated.js +0 -17197
- package/node_modules/@earendil-works/omk-ai/dist/models.generated.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/models.js +0 -78
- package/node_modules/@earendil-works/omk-ai/dist/models.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/oauth.d.ts +0 -2
- package/node_modules/@earendil-works/omk-ai/dist/oauth.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/oauth.js +0 -2
- package/node_modules/@earendil-works/omk-ai/dist/oauth.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/provider-network.d.ts +0 -39
- package/node_modules/@earendil-works/omk-ai/dist/provider-network.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/provider-network.js +0 -170
- package/node_modules/@earendil-works/omk-ai/dist/provider-network.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.d.ts +0 -38
- package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.js +0 -826
- package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.d.ts +0 -77
- package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.js +0 -1123
- package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.d.ts +0 -15
- package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.js +0 -221
- package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.d.ts +0 -13
- package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.js +0 -26
- package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/faux.d.ts +0 -56
- package/node_modules/@earendil-works/omk-ai/dist/providers/faux.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/faux.js +0 -368
- package/node_modules/@earendil-works/omk-ai/dist/providers/faux.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.d.ts +0 -8
- package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.js +0 -29
- package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.d.ts +0 -70
- package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.js +0 -331
- package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.d.ts +0 -15
- package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.js +0 -442
- package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/google.d.ts +0 -13
- package/node_modules/@earendil-works/omk-ai/dist/providers/google.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/google.js +0 -402
- package/node_modules/@earendil-works/omk-ai/dist/providers/google.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.d.ts +0 -3
- package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.js +0 -128
- package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.d.ts +0 -4
- package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.js +0 -34
- package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.d.ts +0 -25
- package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.js +0 -534
- package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.d.ts +0 -30
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.js +0 -1171
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.d.ts +0 -19
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.js +0 -977
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.d.ts +0 -11
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.js +0 -22
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.d.ts +0 -18
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.js +0 -496
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.d.ts +0 -13
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.js +0 -233
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.d.ts +0 -35
- package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.js +0 -254
- package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.d.ts +0 -8
- package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.js +0 -42
- package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.d.ts +0 -13
- package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.js +0 -82
- package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.d.ts +0 -8
- package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.js +0 -184
- package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/session-resources.d.ts +0 -4
- package/node_modules/@earendil-works/omk-ai/dist/session-resources.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/session-resources.js +0 -22
- package/node_modules/@earendil-works/omk-ai/dist/session-resources.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/stream.d.ts +0 -8
- package/node_modules/@earendil-works/omk-ai/dist/stream.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/stream.js +0 -77
- package/node_modules/@earendil-works/omk-ai/dist/stream.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/types.d.ts +0 -570
- package/node_modules/@earendil-works/omk-ai/dist/types.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/types.js +0 -2
- package/node_modules/@earendil-works/omk-ai/dist/types.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.d.ts +0 -6
- package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.js +0 -34
- package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.d.ts +0 -19
- package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.js +0 -25
- package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.d.ts +0 -21
- package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.js +0 -81
- package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/hash.d.ts +0 -3
- package/node_modules/@earendil-works/omk-ai/dist/utils/hash.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/hash.js +0 -14
- package/node_modules/@earendil-works/omk-ai/dist/utils/hash.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/headers.d.ts +0 -2
- package/node_modules/@earendil-works/omk-ai/dist/utils/headers.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/headers.js +0 -8
- package/node_modules/@earendil-works/omk-ai/dist/utils/headers.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.d.ts +0 -16
- package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.js +0 -113
- package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.d.ts +0 -10
- package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.js +0 -97
- package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.d.ts +0 -25
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.js +0 -335
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.d.ts +0 -21
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.js +0 -56
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.d.ts +0 -30
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.js +0 -280
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.d.ts +0 -58
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.js +0 -122
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.d.ts +0 -3
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.js +0 -105
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.d.ts +0 -43
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.js +0 -487
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.d.ts +0 -13
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.js +0 -31
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.d.ts +0 -64
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.js +0 -2
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.d.ts +0 -57
- package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.js +0 -154
- package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.d.ts +0 -22
- package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.js +0 -26
- package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.d.ts +0 -17
- package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.js +0 -21
- package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/validation.d.ts +0 -18
- package/node_modules/@earendil-works/omk-ai/dist/utils/validation.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/validation.js +0 -281
- package/node_modules/@earendil-works/omk-ai/dist/utils/validation.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/package.json +0 -106
- package/node_modules/@earendil-works/omk-tui/README.md +0 -791
- package/node_modules/@earendil-works/omk-tui/dist/autocomplete.d.ts +0 -54
- package/node_modules/@earendil-works/omk-tui/dist/autocomplete.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/autocomplete.js +0 -632
- package/node_modules/@earendil-works/omk-tui/dist/autocomplete.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/box.d.ts +0 -22
- package/node_modules/@earendil-works/omk-tui/dist/components/box.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/box.js +0 -104
- package/node_modules/@earendil-works/omk-tui/dist/components/box.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.d.ts +0 -22
- package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.js +0 -35
- package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/editor.d.ts +0 -249
- package/node_modules/@earendil-works/omk-tui/dist/components/editor.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/editor.js +0 -1857
- package/node_modules/@earendil-works/omk-tui/dist/components/editor.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/image.d.ts +0 -28
- package/node_modules/@earendil-works/omk-tui/dist/components/image.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/image.js +0 -89
- package/node_modules/@earendil-works/omk-tui/dist/components/image.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/input.d.ts +0 -37
- package/node_modules/@earendil-works/omk-tui/dist/components/input.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/input.js +0 -378
- package/node_modules/@earendil-works/omk-tui/dist/components/input.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/loader.d.ts +0 -31
- package/node_modules/@earendil-works/omk-tui/dist/components/loader.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/loader.js +0 -69
- package/node_modules/@earendil-works/omk-tui/dist/components/loader.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/markdown.d.ts +0 -96
- package/node_modules/@earendil-works/omk-tui/dist/components/markdown.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/markdown.js +0 -644
- package/node_modules/@earendil-works/omk-tui/dist/components/markdown.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/select-list.d.ts +0 -50
- package/node_modules/@earendil-works/omk-tui/dist/components/select-list.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/select-list.js +0 -159
- package/node_modules/@earendil-works/omk-tui/dist/components/select-list.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.d.ts +0 -50
- package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.js +0 -185
- package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/spacer.d.ts +0 -12
- package/node_modules/@earendil-works/omk-tui/dist/components/spacer.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/spacer.js +0 -23
- package/node_modules/@earendil-works/omk-tui/dist/components/spacer.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/text.d.ts +0 -19
- package/node_modules/@earendil-works/omk-tui/dist/components/text.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/text.js +0 -89
- package/node_modules/@earendil-works/omk-tui/dist/components/text.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.d.ts +0 -13
- package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.js +0 -51
- package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/editor-component.d.ts +0 -39
- package/node_modules/@earendil-works/omk-tui/dist/editor-component.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/editor-component.js +0 -2
- package/node_modules/@earendil-works/omk-tui/dist/editor-component.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/fuzzy.d.ts +0 -16
- package/node_modules/@earendil-works/omk-tui/dist/fuzzy.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/fuzzy.js +0 -110
- package/node_modules/@earendil-works/omk-tui/dist/fuzzy.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/index.d.ts +0 -23
- package/node_modules/@earendil-works/omk-tui/dist/index.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/index.js +0 -32
- package/node_modules/@earendil-works/omk-tui/dist/index.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/keybindings.d.ts +0 -212
- package/node_modules/@earendil-works/omk-tui/dist/keybindings.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/keybindings.js +0 -252
- package/node_modules/@earendil-works/omk-tui/dist/keybindings.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/keys.d.ts +0 -184
- package/node_modules/@earendil-works/omk-tui/dist/keys.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/keys.js +0 -1173
- package/node_modules/@earendil-works/omk-tui/dist/keys.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/kill-ring.d.ts +0 -28
- package/node_modules/@earendil-works/omk-tui/dist/kill-ring.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/kill-ring.js +0 -44
- package/node_modules/@earendil-works/omk-tui/dist/kill-ring.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.d.ts +0 -3
- package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.js +0 -53
- package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.d.ts +0 -50
- package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.js +0 -361
- package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/terminal-image.d.ts +0 -90
- package/node_modules/@earendil-works/omk-tui/dist/terminal-image.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/terminal-image.js +0 -366
- package/node_modules/@earendil-works/omk-tui/dist/terminal-image.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/terminal.d.ts +0 -113
- package/node_modules/@earendil-works/omk-tui/dist/terminal.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/terminal.js +0 -472
- package/node_modules/@earendil-works/omk-tui/dist/terminal.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/tui.d.ts +0 -242
- package/node_modules/@earendil-works/omk-tui/dist/tui.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/tui.js +0 -1221
- package/node_modules/@earendil-works/omk-tui/dist/tui.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/undo-stack.d.ts +0 -17
- package/node_modules/@earendil-works/omk-tui/dist/undo-stack.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/undo-stack.js +0 -25
- package/node_modules/@earendil-works/omk-tui/dist/undo-stack.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/utils.d.ts +0 -84
- package/node_modules/@earendil-works/omk-tui/dist/utils.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/utils.js +0 -1032
- package/node_modules/@earendil-works/omk-tui/dist/utils.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/word-navigation.d.ts +0 -25
- package/node_modules/@earendil-works/omk-tui/dist/word-navigation.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/word-navigation.js +0 -96
- package/node_modules/@earendil-works/omk-tui/dist/word-navigation.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/native/darwin/prebuilds/darwin-arm64/darwin-modifiers.node +0 -0
- package/node_modules/@earendil-works/omk-tui/native/darwin/prebuilds/darwin-x64/darwin-modifiers.node +0 -0
- package/node_modules/@earendil-works/omk-tui/native/win32/prebuilds/win32-arm64/win32-console-mode.node +0 -0
- package/node_modules/@earendil-works/omk-tui/native/win32/prebuilds/win32-x64/win32-console-mode.node +0 -0
- package/node_modules/@earendil-works/omk-tui/package.json +0 -47
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"policy-overlays-runtime.js","sourceRoot":"","sources":["../../src/core/policy-overlays-runtime.ts"],"names":[],"mappings":"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","sourcesContent":["import { createHash } from \"node:crypto\";\nimport { resolve } from \"node:path\";\nimport type {\n\tTraceContentTier,\n\tTraceEnvironment,\n\tTraceJsonObject,\n\tTraceJsonValue,\n\tTraceSink,\n} from \"./observability-trace.ts\";\nimport { sanitizeTraceData } from \"./observability-trace.ts\";\nimport type { DeferredReason, ExportPolicyOverlay, PolicyOverlay } from \"./package-procurement.ts\";\n\n// ---------------------------------------------------------------------------\n// Shared types\n// ---------------------------------------------------------------------------\n\nexport type PolicyDomain = \"observability\" | \"memory\" | \"advisor\" | \"simplify\" | \"todo\" | \"cache-optimizer\";\n\nexport type PolicyDecision =\n\t| { kind: \"allow\"; rule: string; reason: string }\n\t| { kind: \"deny\"; rule: string; reason: string }\n\t| { kind: \"defer\"; rule: string; reason: string; deferredReason: DeferredReason };\n\nexport type PolicyTraceContentTier = TraceContentTier | \"full\";\n\nexport interface ObservabilityExportRequest {\n\tsink: TraceSink;\n\tcontentTier: PolicyTraceContentTier;\n\tenv: TraceEnvironment;\n\tdata: TraceJsonObject;\n}\n\nexport type MemoryStore = \"memory\" | \"supermemory\";\nexport type MemoryOperation = \"read\" | \"write\" | \"replay\";\nexport type MemoryWriteSource =\n\t| \"user-explicit\"\n\t| \"compaction-summary\"\n\t| \"branch-summary\"\n\t| \"session-digest\"\n\t| \"harness-control\"\n\t| \"extension\";\nexport type MemoryContentTier = \"metadata\" | \"summary\" | \"evidence\" | \"raw\";\nexport type MemoryLaneAuthority = \"none\" | \"read\" | \"write-sanitized\" | \"write-global\";\nexport type MemoryNamespaceScope = \"project\" | \"session\" | \"goal\" | \"lane\" | \"user\";\nexport type MemorySanitizerCategory = \"secret\" | \"auth\" | \"pii\" | \"path\" | \"rawTool\" | \"rawPrompt\" | \"binary\";\n\nexport interface MemoryNamespaceRequest {\n\tscope: MemoryNamespaceScope;\n\tprojectRoot?: string;\n\tsessionId?: string;\n\tgoalId?: string;\n\tlaneId?: string;\n\ttopic?: string;\n}\n\nexport interface MemoryPolicyContext {\n\tcwd: string;\n\tsessionId?: string;\n\tgoalId?: string;\n\tlaneId?: string;\n\tuserId?: string;\n\tlaneAuthority: MemoryLaneAuthority;\n\toffline?: boolean;\n}\n\nexport interface MemoryAccessRequest {\n\tkind: MemoryOperation;\n\tstore: MemoryStore;\n\tkey?: string;\n\tnamespace?: MemoryNamespaceRequest;\n\tsource?: MemoryWriteSource;\n\tcontentTier?: MemoryContentTier;\n\tpayload?: unknown;\n}\n\nexport interface SanitizerOptions {\n\tsource: MemoryWriteSource;\n\tcontentTier: MemoryContentTier;\n\tmaxChars: number;\n\texternal: boolean;\n}\n\nexport interface SanitizerFindingSummary {\n\tsanitized: boolean;\n\tdenied: boolean;\n\tcategories: Partial<Record<MemorySanitizerCategory, number>>;\n\tredactionCount: number;\n\toriginalChars: number;\n\tkeptChars: number;\n\tdigest: string;\n}\n\nexport interface MemorySanitizerResult {\n\tpayload: TraceJsonValue;\n\tfindings: SanitizerFindingSummary;\n\treason?: string;\n}\n\nexport type MemoryNamespaceDecision =\n\t| { kind: \"allow\"; rule: string; reason: string; namespace: string; topic?: string }\n\t| { kind: \"deny\"; rule: string; reason: string }\n\t| { kind: \"defer\"; rule: string; reason: string; missing: string[] };\n\nexport type MemoryPolicyDecision =\n\t| {\n\t\t\tkind: \"allow\";\n\t\t\trule: string;\n\t\t\treason: string;\n\t\t\tnamespace: string;\n\t\t\tsanitizedPayload?: TraceJsonValue;\n\t\t\tfindings: SanitizerFindingSummary;\n\t }\n\t| { kind: \"deny\"; rule: string; reason: string; findings: SanitizerFindingSummary }\n\t| { kind: \"defer\"; rule: string; reason: string; missing: string[]; findings: SanitizerFindingSummary };\n\nexport interface ToolInvocationRequest {\n\tsource: \"advisor\" | \"simplify\" | \"harness-control\" | \"verification\" | \"package-manager\";\n\ttoolName: string;\n\ttoolCategory: \"read\" | \"write\" | \"shell\" | \"memory\" | \"other\";\n}\n\nexport interface TodoOverlayRequest {\n\ttext: string;\n\tsource: \"compaction-summary\" | \"user-explicit\";\n}\n\nexport interface CacheOptimizerRequest {\n\tmetrics: string[];\n\tgateDecision?: \"control\" | \"treatment\" | \"deferred\";\n}\n\n// ---------------------------------------------------------------------------\n// Observability export enforcer\n// ---------------------------------------------------------------------------\n\nconst TIER_RANK: Record<PolicyTraceContentTier, number> = {\n\tmetadata: 0,\n\tsummary: 1,\n\tfull: 2,\n};\n\nexport function enforceObservabilityExport(\n\tpolicy: ExportPolicyOverlay | undefined,\n\trequest: ObservabilityExportRequest,\n): PolicyDecision {\n\tif (policy === undefined || policy.defaultOff === true) {\n\t\tif (request.sink === \"braintrust\") {\n\t\t\treturn {\n\t\t\t\tkind: \"deny\",\n\t\t\t\trule: \"export.default_off\",\n\t\t\t\treason: \"External trace export disabled by default.\",\n\t\t\t};\n\t\t}\n\t}\n\tif (request.env.offline === true) {\n\t\treturn {\n\t\t\tkind: \"deny\",\n\t\t\trule: \"export.offline\",\n\t\t\treason: \"Offline mode disables external trace export.\",\n\t\t};\n\t}\n\tif (request.sink !== \"braintrust\") {\n\t\treturn {\n\t\t\tkind: \"deny\",\n\t\t\trule: \"export.local_sink\",\n\t\t\treason: \"Local sink does not export externally.\",\n\t\t};\n\t}\n\tif (policy?.payloadTier !== undefined && TIER_RANK[request.contentTier] > TIER_RANK[policy.payloadTier]) {\n\t\treturn {\n\t\t\tkind: \"deny\",\n\t\t\trule: \"export.tier_exceeded\",\n\t\t\treason: \"Requested content tier exceeds policy.\",\n\t\t};\n\t}\n\treturn {\n\t\tkind: \"allow\",\n\t\trule: \"export.allowed\",\n\t\treason: \"External trace export permitted by policy.\",\n\t};\n}\n\n// ---------------------------------------------------------------------------\n// Trace sanitization enforcer\n// ---------------------------------------------------------------------------\n\nconst PROMPT_KEY_PATTERN = /(?:prompt|completion|response)/i;\nconst TOOL_KEY_PATTERN = /tool[_-]?(?:output|input|call|result)|toolCall|toolResult/i;\n\nfunction dropKeys(value: TraceJsonValue, patterns: readonly RegExp[]): TraceJsonValue {\n\tif (value === null || typeof value !== \"object\") {\n\t\treturn value;\n\t}\n\tif (Array.isArray(value)) {\n\t\treturn value.map((entry) => dropKeys(entry, patterns));\n\t}\n\tconst result: TraceJsonObject = {};\n\tfor (const [key, entry] of Object.entries(value)) {\n\t\tif (patterns.some((pattern) => pattern.test(key))) {\n\t\t\tcontinue;\n\t\t}\n\t\tresult[key] = dropKeys(entry, patterns);\n\t}\n\treturn result;\n}\n\nexport function sanitizeForExportPolicy(\n\tpolicy: ExportPolicyOverlay | undefined,\n\tdata: TraceJsonObject,\n): TraceJsonObject {\n\tconst patterns: RegExp[] = [];\n\tif (policy?.denyRawPrompt === true) {\n\t\tpatterns.push(PROMPT_KEY_PATTERN);\n\t}\n\tif (policy?.denyRawToolOutput === true) {\n\t\tpatterns.push(TOOL_KEY_PATTERN);\n\t}\n\tconst base = sanitizeTraceData(data);\n\tif (patterns.length === 0) {\n\t\treturn base;\n\t}\n\treturn dropKeys(base, patterns) as TraceJsonObject;\n}\n\n// ---------------------------------------------------------------------------\n// Memory namespace / sanitizer / access enforcer\n// ---------------------------------------------------------------------------\n\nconst MEMORY_REDACTED = \"[redacted]\";\nconst MEMORY_BINARY_REDACTED = \"[redacted:binary]\";\nconst MEMORY_TRUNCATION_MARKER = \"…[omk-memory:truncated]…\";\nconst MAX_MEMORY_SANITIZER_DEPTH = 6;\nconst MAX_MEMORY_OBJECT_KEYS = 80;\nconst MAX_MEMORY_ARRAY_ITEMS = 80;\nconst LOCAL_MEMORY_MAX_CHARS = 8_000;\nconst EXTERNAL_MEMORY_MAX_CHARS = 4_000;\nconst OMITTED_MEMORY_VALUE = Symbol(\"omitted-memory-value\");\nconst NAMESPACE_COMPONENT_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._-]{0,120}$/;\nconst TOPIC_PATTERN = /^[a-z0-9][a-z0-9._/-]{0,120}$/;\nconst SENSITIVE_MEMORY_KEY_PATTERN =\n\t/(?:secret|token|api[_-]?key|authorization|password|credential|private[_-]?key|cookie|session|refresh[_-]?token|access[_-]?token)/i;\nconst AUTH_MEMORY_KEY_PATTERN = /(?:authorization|cookie|session|refresh[_-]?token|access[_-]?token|token)/i;\nconst PRIVATE_KEY_PATTERN = /-----BEGIN [^-]+PRIVATE KEY-----[\\s\\S]*?-----END [^-]+PRIVATE KEY-----/g;\nconst SSH_PRIVATE_KEY_PATTERN = /-----BEGIN OPENSSH PRIVATE KEY-----[\\s\\S]*?-----END OPENSSH PRIVATE KEY-----/g;\nconst BEARER_PATTERN = /Bearer\\s+[A-Za-z0-9._~+/=-]{8,}/gi;\nconst JWT_PATTERN = /\\beyJ[A-Za-z0-9_-]{5,}\\.[A-Za-z0-9_-]{5,}\\.[A-Za-z0-9_-]{5,}\\b/g;\nconst PROVIDER_TOKEN_PATTERN = /\\bsk-(?:proj-|ant-)?[A-Za-z0-9_-]{16,}\\b/g;\nconst SERVICE_TOKEN_PATTERN =\n\t/\\b(?:ghp|gho|ghu|ghs|ghr|github_pat|npm|xox[baprs]|rk_live|sk_live)_[A-Za-z0-9_=-]{16,}\\b/g;\nconst AWS_ACCESS_KEY_PATTERN = /\\bAKIA[0-9A-Z]{16}\\b/g;\nconst ENV_SECRET_ASSIGNMENT_PATTERN =\n\t/(^|\\n)([A-Z0-9_]*(?:SECRET|TOKEN|API[_-]?KEY|PASSWORD|CREDENTIAL|PRIVATE[_-]?KEY)[A-Z0-9_]*\\s*=\\s*)([^\\s]+)/gi;\nconst SECRET_KEY_VALUE_PATTERN =\n\t/(^|[\\s,;{[(])([A-Z0-9_.-]*(?:SECRET|TOKEN|API[_-]?KEY|APIKEY|AUTHORIZATION|PASSWORD|CREDENTIAL|PRIVATE[_-]?KEY|COOKIE|SESSION|REFRESH[_-]?TOKEN|ACCESS[_-]?TOKEN)[A-Z0-9_.-]*\\s*[:=]\\s*)(?:\"([^\"\\r\\n]*)\"|'([^'\\r\\n]*)'|([^\\s,;}\\])]+))/gi;\nconst EMAIL_PATTERN = /\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}\\b/gi;\nconst PHONE_PATTERN = /\\b\\+?\\d[\\d\\s().-]{7,}\\d\\b/g;\nconst SSN_PATTERN = /\\b\\d{3}-\\d{2}-\\d{4}\\b/g;\nconst CREDIT_CARD_PATTERN = /\\b(?:\\d[ -]*?){13,19}\\b/g;\nconst HOME_PATH_PATTERN = /(?:\\/home|\\/Users)\\/[^/\\s:]+/g;\nconst GENERIC_HIGH_ENTROPY_PATTERN = /\\b(?=[A-Za-z0-9+/=_-]{32,}\\b)(?=.*[A-Za-z])(?=.*\\d)[A-Za-z0-9+/=_-]+\\b/g;\n\ntype SanitizedMemoryValue = TraceJsonValue | typeof OMITTED_MEMORY_VALUE;\n\ninterface MutableSanitizerState {\n\tcategories: Partial<Record<MemorySanitizerCategory, number>>;\n\tredactionCount: number;\n\tprivateKeyBlocked: boolean;\n\ttruncated: boolean;\n}\n\nfunction sha256Text(value: string): string {\n\treturn createHash(\"sha256\").update(value).digest(\"hex\");\n}\n\nfunction canonicalMemoryJson(value: TraceJsonValue): string {\n\tif (value === null) return \"null\";\n\tif (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n\t\treturn JSON.stringify(value);\n\t}\n\tif (Array.isArray(value)) {\n\t\treturn `[${value.map((entry) => canonicalMemoryJson(entry)).join(\",\")}]`;\n\t}\n\treturn `{${Object.keys(value)\n\t\t.sort()\n\t\t.map((key) => `${JSON.stringify(key)}:${canonicalMemoryJson(value[key] ?? null)}`)\n\t\t.join(\",\")}}`;\n}\n\nfunction createEmptyMemoryFindings(originalChars = 0): SanitizerFindingSummary {\n\treturn {\n\t\tsanitized: false,\n\t\tdenied: false,\n\t\tcategories: {},\n\t\tredactionCount: 0,\n\t\toriginalChars,\n\t\tkeptChars: 0,\n\t\tdigest: sha256Text(\"null\"),\n\t};\n}\n\nfunction recordMemoryFinding(state: MutableSanitizerState, category: MemorySanitizerCategory, count = 1): void {\n\tstate.categories[category] = (state.categories[category] ?? 0) + count;\n\tstate.redactionCount += count;\n}\n\nfunction measureUnknownChars(value: unknown): number {\n\ttry {\n\t\tconst serialized = JSON.stringify(value);\n\t\treturn serialized?.length ?? String(value).length;\n\t} catch {\n\t\treturn String(value).length;\n\t}\n}\n\nfunction boundMemoryString(value: string, maxChars: number): { text: string; truncated: boolean } {\n\tconst budget = Number.isFinite(maxChars) ? Math.max(0, Math.floor(maxChars)) : 0;\n\tif (budget <= 0) return { text: \"\", truncated: value.length > 0 };\n\tif (value.length <= budget) return { text: value, truncated: false };\n\tconst marker = MEMORY_TRUNCATION_MARKER.length < budget ? MEMORY_TRUNCATION_MARKER : budget >= 3 ? \"…\" : \"\";\n\tconst contentBudget = Math.max(0, budget - marker.length);\n\tconst headBudget = Math.floor(contentBudget / 2);\n\tconst tailBudget = Math.max(0, contentBudget - headBudget);\n\treturn {\n\t\ttext: `${value.slice(0, headBudget)}${marker}${value.slice(Math.max(0, value.length - tailBudget))}`,\n\t\ttruncated: true,\n\t};\n}\n\nfunction redactMemoryString(value: string, state: MutableSanitizerState, maxChars: number): string {\n\tlet redacted = value;\n\tredacted = redacted.replace(PRIVATE_KEY_PATTERN, () => {\n\t\tstate.privateKeyBlocked = true;\n\t\trecordMemoryFinding(state, \"secret\");\n\t\treturn MEMORY_REDACTED;\n\t});\n\tredacted = redacted.replace(SSH_PRIVATE_KEY_PATTERN, () => {\n\t\tstate.privateKeyBlocked = true;\n\t\trecordMemoryFinding(state, \"secret\");\n\t\treturn MEMORY_REDACTED;\n\t});\n\tredacted = redacted.replace(ENV_SECRET_ASSIGNMENT_PATTERN, (_match: string, prefix: string, assignment: string) => {\n\t\trecordMemoryFinding(state, \"secret\");\n\t\treturn `${prefix}${assignment}${MEMORY_REDACTED}`;\n\t});\n\tredacted = redacted.replace(BEARER_PATTERN, () => {\n\t\trecordMemoryFinding(state, \"auth\");\n\t\treturn `Bearer ${MEMORY_REDACTED}`;\n\t});\n\tredacted = redacted.replace(JWT_PATTERN, () => {\n\t\trecordMemoryFinding(state, \"auth\");\n\t\treturn MEMORY_REDACTED;\n\t});\n\tredacted = redacted.replace(PROVIDER_TOKEN_PATTERN, () => {\n\t\trecordMemoryFinding(state, \"secret\");\n\t\treturn MEMORY_REDACTED;\n\t});\n\tredacted = redacted.replace(SERVICE_TOKEN_PATTERN, () => {\n\t\trecordMemoryFinding(state, \"secret\");\n\t\treturn MEMORY_REDACTED;\n\t});\n\tredacted = redacted.replace(AWS_ACCESS_KEY_PATTERN, () => {\n\t\trecordMemoryFinding(state, \"secret\");\n\t\treturn MEMORY_REDACTED;\n\t});\n\tredacted = redacted.replace(\n\t\tSECRET_KEY_VALUE_PATTERN,\n\t\t(\n\t\t\tmatch: string,\n\t\t\tprefix: string,\n\t\t\tassignment: string,\n\t\t\tdoubleQuoted: string | undefined,\n\t\t\tsingleQuoted: string | undefined,\n\t\t\tbare: string | undefined,\n\t\t) => {\n\t\t\tconst value = doubleQuoted ?? singleQuoted ?? bare ?? \"\";\n\t\t\tif (value.includes(MEMORY_REDACTED) || value.includes(\"[redacted\")) return match;\n\t\t\trecordMemoryFinding(state, categoryForSensitiveKey(assignment));\n\t\t\tif (doubleQuoted !== undefined) return `${prefix}${assignment}\"${MEMORY_REDACTED}\"`;\n\t\t\tif (singleQuoted !== undefined) return `${prefix}${assignment}'${MEMORY_REDACTED}'`;\n\t\t\treturn `${prefix}${assignment}${MEMORY_REDACTED}`;\n\t\t},\n\t);\n\tredacted = redacted.replace(EMAIL_PATTERN, () => {\n\t\trecordMemoryFinding(state, \"pii\");\n\t\treturn MEMORY_REDACTED;\n\t});\n\tredacted = redacted.replace(SSN_PATTERN, () => {\n\t\trecordMemoryFinding(state, \"pii\");\n\t\treturn MEMORY_REDACTED;\n\t});\n\tredacted = redacted.replace(CREDIT_CARD_PATTERN, () => {\n\t\trecordMemoryFinding(state, \"pii\");\n\t\treturn MEMORY_REDACTED;\n\t});\n\tredacted = redacted.replace(PHONE_PATTERN, () => {\n\t\trecordMemoryFinding(state, \"pii\");\n\t\treturn MEMORY_REDACTED;\n\t});\n\tredacted = redacted.replace(HOME_PATH_PATTERN, () => {\n\t\trecordMemoryFinding(state, \"path\");\n\t\treturn \"~\";\n\t});\n\tredacted = redacted.replace(GENERIC_HIGH_ENTROPY_PATTERN, () => {\n\t\trecordMemoryFinding(state, \"secret\");\n\t\treturn MEMORY_REDACTED;\n\t});\n\tconst bounded = boundMemoryString(redacted, maxChars);\n\tif (bounded.truncated) state.truncated = true;\n\treturn bounded.text;\n}\n\nfunction isSessionDerivedMemorySource(source: MemoryWriteSource): boolean {\n\treturn source !== \"user-explicit\";\n}\n\nfunction categoryForSensitiveKey(key: string): MemorySanitizerCategory {\n\treturn AUTH_MEMORY_KEY_PATTERN.test(key) ? \"auth\" : \"secret\";\n}\n\nfunction isPlainObject(value: object): value is Record<string, unknown> {\n\treturn Object.getPrototypeOf(value) === Object.prototype || Object.getPrototypeOf(value) === null;\n}\n\nfunction sanitizeMemoryValue(\n\tvalue: unknown,\n\toptions: SanitizerOptions,\n\tstate: MutableSanitizerState,\n\tdepth: number,\n\tseen: WeakSet<object>,\n): SanitizedMemoryValue {\n\tif (value === null) return null;\n\tif (typeof value === \"string\") return redactMemoryString(value, state, options.maxChars);\n\tif (typeof value === \"number\") return Number.isFinite(value) ? value : String(value);\n\tif (typeof value === \"boolean\") return value;\n\tif (typeof value === \"bigint\") return value.toString();\n\tif (typeof value === \"undefined\") return \"\";\n\tif (typeof value === \"function\" || typeof value === \"symbol\") return String(value);\n\tif (depth >= MAX_MEMORY_SANITIZER_DEPTH) return \"[max-depth]\";\n\n\tif (value instanceof ArrayBuffer || ArrayBuffer.isView(value)) {\n\t\trecordMemoryFinding(state, \"binary\");\n\t\treturn MEMORY_BINARY_REDACTED;\n\t}\n\tif (value instanceof Date) return value.toISOString();\n\tif (value instanceof Error) {\n\t\treturn {\n\t\t\tname: redactMemoryString(value.name, state, options.maxChars),\n\t\t\tmessage: redactMemoryString(value.message, state, options.maxChars),\n\t\t};\n\t}\n\tif (Array.isArray(value)) {\n\t\treturn value.slice(0, MAX_MEMORY_ARRAY_ITEMS).map((entry) => {\n\t\t\tconst sanitized = sanitizeMemoryValue(entry, options, state, depth + 1, seen);\n\t\t\treturn sanitized === OMITTED_MEMORY_VALUE ? MEMORY_REDACTED : sanitized;\n\t\t});\n\t}\n\tif (typeof value === \"object\") {\n\t\tif (seen.has(value)) return \"[circular]\";\n\t\tseen.add(value);\n\t\tconst entries = isPlainObject(value)\n\t\t\t? Object.entries(value)\n\t\t\t: Object.entries(value).slice(0, MAX_MEMORY_OBJECT_KEYS);\n\t\tconst result: TraceJsonObject = {};\n\t\tfor (const [key, entry] of entries.slice(0, MAX_MEMORY_OBJECT_KEYS)) {\n\t\t\tif (SENSITIVE_MEMORY_KEY_PATTERN.test(key)) {\n\t\t\t\tif (/private[_-]?key/i.test(key)) state.privateKeyBlocked = true;\n\t\t\t\trecordMemoryFinding(state, categoryForSensitiveKey(key));\n\t\t\t\tresult[key] = MEMORY_REDACTED;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (isSessionDerivedMemorySource(options.source) && options.contentTier !== \"evidence\") {\n\t\t\t\tif (PROMPT_KEY_PATTERN.test(key)) {\n\t\t\t\t\trecordMemoryFinding(state, \"rawPrompt\");\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (TOOL_KEY_PATTERN.test(key)) {\n\t\t\t\t\trecordMemoryFinding(state, \"rawTool\");\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst sanitized = sanitizeMemoryValue(entry, options, state, depth + 1, seen);\n\t\t\tif (sanitized !== OMITTED_MEMORY_VALUE) result[key] = sanitized;\n\t\t}\n\t\tseen.delete(value);\n\t\treturn result;\n\t}\n\treturn String(value);\n}\n\nfunction boundSanitizedPayload(value: TraceJsonValue, maxChars: number, state: MutableSanitizerState): TraceJsonValue {\n\tconst canonical = canonicalMemoryJson(value);\n\tif (canonical.length <= maxChars) return value;\n\tconst bounded = boundMemoryString(canonical, maxChars);\n\tif (bounded.truncated) state.truncated = true;\n\treturn bounded.text;\n}\n\nfunction isEmptyMemoryPayload(value: TraceJsonValue): boolean {\n\tif (value === null) return true;\n\tif (typeof value === \"string\") return value.trim().length === 0;\n\tif (Array.isArray(value)) return value.length === 0;\n\tif (typeof value === \"object\") return Object.keys(value).length === 0;\n\treturn false;\n}\n\nfunction sanitizerDenyReason(\n\tpayload: TraceJsonValue,\n\toptions: SanitizerOptions,\n\tstate: MutableSanitizerState,\n): string | undefined {\n\tif (state.privateKeyBlocked) return \"memory.sanitizer.private_key\";\n\tconst sensitiveCount = (state.categories.secret ?? 0) + (state.categories.auth ?? 0);\n\tif (sensitiveCount >= 3 && sensitiveCount * 2 >= Math.max(1, state.redactionCount)) {\n\t\treturn \"memory.sanitizer.high_secret_density\";\n\t}\n\tif (options.contentTier !== \"metadata\" && isEmptyMemoryPayload(payload)) return \"memory.sanitizer.empty_payload\";\n\treturn undefined;\n}\n\nexport function sanitizeMemoryPayload(payload: unknown, options: SanitizerOptions): MemorySanitizerResult {\n\tconst originalChars = measureUnknownChars(payload);\n\tconst state: MutableSanitizerState = {\n\t\tcategories: {},\n\t\tredactionCount: 0,\n\t\tprivateKeyBlocked: false,\n\t\ttruncated: false,\n\t};\n\tconst sanitizedValue = sanitizeMemoryValue(payload, options, state, 0, new WeakSet<object>());\n\tconst sanitizedPayload = sanitizedValue === OMITTED_MEMORY_VALUE ? null : sanitizedValue;\n\tconst boundedPayload = boundSanitizedPayload(sanitizedPayload, options.maxChars, state);\n\tconst canonicalPayload = canonicalMemoryJson(boundedPayload);\n\tconst reason = sanitizerDenyReason(boundedPayload, options, state);\n\treturn {\n\t\tpayload: boundedPayload,\n\t\tfindings: {\n\t\t\tsanitized: state.redactionCount > 0 || state.truncated,\n\t\t\tdenied: reason !== undefined,\n\t\t\tcategories: state.categories,\n\t\t\tredactionCount: state.redactionCount,\n\t\t\toriginalChars,\n\t\t\tkeptChars: canonicalPayload.length,\n\t\t\tdigest: sha256Text(canonicalPayload),\n\t\t},\n\t\treason,\n\t};\n}\n\nfunction canonicalProjectHash(root: string): string {\n\treturn sha256Text(resolve(root).replace(/\\\\/g, \"/\")).slice(0, 16);\n}\n\nfunction normalizeResolvedProjectPath(path: string): string {\n\tconst normalized = resolve(path).replace(/\\\\/g, \"/\");\n\tif (normalized.length > 1 && normalized.endsWith(\"/\")) return normalized.replace(/\\/+$/, \"\");\n\treturn normalized;\n}\n\nfunction isSameOrAncestorProjectRoot(projectRoot: string, cwd: string): boolean {\n\tconst root = normalizeResolvedProjectPath(projectRoot);\n\tconst current = normalizeResolvedProjectPath(cwd);\n\treturn current === root || current.startsWith(`${root}/`);\n}\n\nfunction resolveMemoryProjectRoot(\n\tcontext: MemoryPolicyContext,\n\trequest: MemoryNamespaceRequest,\n): MemoryNamespaceDecision | { kind: \"allow\"; projectRoot: string } {\n\tif (request.projectRoot === undefined) return { kind: \"allow\", projectRoot: context.cwd };\n\tif (isSameOrAncestorProjectRoot(request.projectRoot, context.cwd)) {\n\t\treturn { kind: \"allow\", projectRoot: request.projectRoot };\n\t}\n\treturn {\n\t\tkind: \"deny\",\n\t\trule: \"memory.namespace.project_root_mismatch\",\n\t\treason: \"Memory namespace project root must contain the active workspace.\",\n\t};\n}\n\nfunction validateNamespaceComponent(name: string, value: string): MemoryNamespaceDecision | undefined {\n\tif (NAMESPACE_COMPONENT_PATTERN.test(value)) return undefined;\n\treturn {\n\t\tkind: \"deny\",\n\t\trule: \"memory.namespace.invalid_component\",\n\t\treason: `${name} contains unsupported namespace characters.`,\n\t};\n}\n\nfunction normalizeMemoryTopic(topic: string | undefined): MemoryNamespaceDecision | { kind: \"allow\"; topic?: string } {\n\tif (topic === undefined) return { kind: \"allow\" };\n\tconst normalized = topic.trim().toLowerCase();\n\tif (\n\t\tnormalized.length === 0 ||\n\t\tnormalized.includes(\"..\") ||\n\t\tnormalized.startsWith(\"/\") ||\n\t\tnormalized.includes(\"\\\\\") ||\n\t\t/^[a-z][a-z0-9+.-]*:/.test(normalized) ||\n\t\t/[\\x00-\\x1f\\x7f]/.test(normalized) ||\n\t\t!TOPIC_PATTERN.test(normalized)\n\t) {\n\t\treturn {\n\t\t\tkind: \"deny\",\n\t\t\trule: \"memory.namespace.invalid_topic\",\n\t\t\treason: \"Memory namespace topic is not a safe relative suffix.\",\n\t\t};\n\t}\n\treturn { kind: \"allow\", topic: normalized };\n}\n\nfunction missingNamespaceDecision(missing: string[]): MemoryNamespaceDecision {\n\treturn {\n\t\tkind: \"defer\",\n\t\trule: \"memory.namespace.missing_context\",\n\t\treason: \"Memory namespace requires additional context.\",\n\t\tmissing,\n\t};\n}\n\nfunction appendMemoryTopic(namespace: string, topic: string | undefined): string {\n\treturn topic === undefined ? namespace : `${namespace}:${topic}`;\n}\n\nexport function deriveMemoryNamespace(\n\tcontext: MemoryPolicyContext,\n\trequest: MemoryNamespaceRequest,\n): MemoryNamespaceDecision {\n\tconst topic = normalizeMemoryTopic(request.topic);\n\tif (topic.kind !== \"allow\") return topic;\n\tconst projectRoot = resolveMemoryProjectRoot(context, request);\n\tif (!(\"projectRoot\" in projectRoot)) return projectRoot;\n\tconst projectHash = canonicalProjectHash(projectRoot.projectRoot);\n\tconst projectNamespace = `omk:project:${projectHash}`;\n\tif (request.scope === \"project\")\n\t\treturn {\n\t\t\tkind: \"allow\",\n\t\t\trule: \"memory.namespace.project\",\n\t\t\treason: \"Project namespace derived.\",\n\t\t\tnamespace: appendMemoryTopic(projectNamespace, topic.topic),\n\t\t\ttopic: topic.topic,\n\t\t};\n\n\tif (request.scope === \"session\") {\n\t\tconst sessionId = request.sessionId ?? context.sessionId;\n\t\tif (sessionId === undefined) return missingNamespaceDecision([\"sessionId\"]);\n\t\tconst invalid = validateNamespaceComponent(\"sessionId\", sessionId);\n\t\tif (invalid) return invalid;\n\t\treturn {\n\t\t\tkind: \"allow\",\n\t\t\trule: \"memory.namespace.session\",\n\t\t\treason: \"Session namespace derived.\",\n\t\t\tnamespace: appendMemoryTopic(`${projectNamespace}:session:${sessionId}`, topic.topic),\n\t\t\ttopic: topic.topic,\n\t\t};\n\t}\n\n\tif (request.scope === \"goal\") {\n\t\tconst goalId = request.goalId ?? context.goalId;\n\t\tif (goalId === undefined) return missingNamespaceDecision([\"goalId\"]);\n\t\tconst invalid = validateNamespaceComponent(\"goalId\", goalId);\n\t\tif (invalid) return invalid;\n\t\treturn {\n\t\t\tkind: \"allow\",\n\t\t\trule: \"memory.namespace.goal\",\n\t\t\treason: \"Goal namespace derived.\",\n\t\t\tnamespace: appendMemoryTopic(`${projectNamespace}:goal:${goalId}`, topic.topic),\n\t\t\ttopic: topic.topic,\n\t\t};\n\t}\n\n\tif (request.scope === \"lane\") {\n\t\tconst goalId = request.goalId ?? context.goalId;\n\t\tconst laneId = request.laneId ?? context.laneId;\n\t\tif (goalId === undefined || laneId === undefined) {\n\t\t\tconst missing = [\n\t\t\t\tgoalId === undefined ? \"goalId\" : undefined,\n\t\t\t\tlaneId === undefined ? \"laneId\" : undefined,\n\t\t\t].filter((entry): entry is string => entry !== undefined);\n\t\t\treturn missingNamespaceDecision(missing);\n\t\t}\n\t\tconst invalidGoal = validateNamespaceComponent(\"goalId\", goalId);\n\t\tif (invalidGoal) return invalidGoal;\n\t\tconst invalidLane = validateNamespaceComponent(\"laneId\", laneId);\n\t\tif (invalidLane) return invalidLane;\n\t\treturn {\n\t\t\tkind: \"allow\",\n\t\t\trule: \"memory.namespace.lane\",\n\t\t\treason: \"Lane namespace derived.\",\n\t\t\tnamespace: appendMemoryTopic(`${projectNamespace}:goal:${goalId}:lane:${laneId}`, topic.topic),\n\t\t\ttopic: topic.topic,\n\t\t};\n\t}\n\n\tconst userId = context.userId;\n\tif (userId === undefined) return missingNamespaceDecision([\"userId\"]);\n\treturn {\n\t\tkind: \"allow\",\n\t\trule: \"memory.namespace.user\",\n\t\treason: \"User namespace derived.\",\n\t\tnamespace: appendMemoryTopic(`omk:user:${sha256Text(userId).slice(0, 16)}`, topic.topic),\n\t\ttopic: topic.topic,\n\t};\n}\n\nfunction canReadMemory(authority: MemoryLaneAuthority): boolean {\n\treturn authority === \"read\" || authority === \"write-sanitized\" || authority === \"write-global\";\n}\n\nfunction canWriteMemory(authority: MemoryLaneAuthority): boolean {\n\treturn authority === \"write-sanitized\" || authority === \"write-global\";\n}\n\nfunction defaultMemoryContext(\n\toverlay: PolicyOverlay | undefined,\n\trequest: MemoryAccessRequest,\n\tcontext: MemoryPolicyContext | undefined,\n): MemoryPolicyContext {\n\treturn {\n\t\tcwd: context?.cwd ?? process.cwd(),\n\t\tsessionId: context?.sessionId,\n\t\tgoalId: context?.goalId,\n\t\tlaneId: context?.laneId,\n\t\tuserId: context?.userId,\n\t\tlaneAuthority:\n\t\t\tcontext?.laneAuthority ?? (overlay?.declaredUse === \"memory\" && request.kind === \"read\" ? \"read\" : \"none\"),\n\t\toffline: context?.offline,\n\t};\n}\n\nfunction denyMemory(rule: string, reason: string, findings = createEmptyMemoryFindings()): MemoryPolicyDecision {\n\treturn { kind: \"deny\", rule, reason, findings };\n}\n\nfunction deferMemory(\n\trule: string,\n\treason: string,\n\tmissing: string[],\n\tfindings = createEmptyMemoryFindings(),\n): MemoryPolicyDecision {\n\treturn { kind: \"defer\", rule, reason, missing, findings };\n}\n\nfunction namespaceToPolicyDecision(\n\tdecision: Exclude<MemoryNamespaceDecision, { kind: \"allow\" }>,\n): MemoryPolicyDecision {\n\tif (decision.kind === \"deny\") return denyMemory(decision.rule, decision.reason);\n\treturn deferMemory(decision.rule, decision.reason, decision.missing);\n}\n\nfunction missingRequestFields(request: MemoryAccessRequest): string[] {\n\treturn [\n\t\trequest.source === undefined ? \"source\" : undefined,\n\t\trequest.contentTier === undefined ? \"contentTier\" : undefined,\n\t].filter((entry): entry is string => entry !== undefined);\n}\n\nfunction memoryMaxChars(store: MemoryStore): number {\n\treturn store === \"supermemory\" ? EXTERNAL_MEMORY_MAX_CHARS : LOCAL_MEMORY_MAX_CHARS;\n}\n\nexport function enforceMemoryAccess(\n\toverlay: PolicyOverlay | undefined,\n\trequest: MemoryAccessRequest,\n\tcontext?: MemoryPolicyContext,\n): MemoryPolicyDecision {\n\tconst effectiveContext = defaultMemoryContext(overlay, request, context);\n\tconst namespaceDecision = deriveMemoryNamespace(effectiveContext, request.namespace ?? { scope: \"project\" });\n\tif (namespaceDecision.kind !== \"allow\") return namespaceToPolicyDecision(namespaceDecision);\n\n\tif (request.kind === \"read\") {\n\t\tif (!canReadMemory(effectiveContext.laneAuthority)) {\n\t\t\treturn denyMemory(\"memory.authority_denied\", \"Memory read requires lane memory authority.\");\n\t\t}\n\t\treturn {\n\t\t\tkind: \"allow\",\n\t\t\trule: \"memory.read_allowed\",\n\t\t\treason: \"Memory read permitted.\",\n\t\t\tnamespace: namespaceDecision.namespace,\n\t\t\tfindings: createEmptyMemoryFindings(),\n\t\t};\n\t}\n\n\tif (request.store === \"supermemory\" && request.contentTier === \"raw\") {\n\t\treturn denyMemory(\"memory.supermemory_raw_denied\", \"Supermemory does not accept raw memory payloads.\");\n\t}\n\tif (overlay?.declaredUse !== \"memory\") {\n\t\treturn denyMemory(\"memory.not_a_memory_lane\", \"Write/replay requested outside a memory lane.\");\n\t}\n\tif (overlay.advisoryOnly === true) {\n\t\treturn denyMemory(\"memory.advisory_only\", \"Memory lane is advisory-only; writes denied.\");\n\t}\n\tif (!canWriteMemory(effectiveContext.laneAuthority)) {\n\t\treturn denyMemory(\"memory.authority_denied\", \"Memory write requires sanitized-write lane authority.\");\n\t}\n\tif (request.kind === \"replay\" && overlay.replayInput !== true) {\n\t\treturn denyMemory(\"memory.no_replay\", \"Memory replay requires an explicit replayInput overlay.\");\n\t}\n\tif (effectiveContext.offline === true && request.store === \"supermemory\") {\n\t\treturn deferMemory(\"memory.supermemory_offline\", \"Supermemory writes are deferred while offline.\", [\"online\"]);\n\t}\n\tconst source = request.source;\n\tconst contentTier = request.contentTier;\n\tif (source === undefined || contentTier === undefined) {\n\t\tconst missing = missingRequestFields(request);\n\t\treturn deferMemory(\"memory.request.missing_context\", \"Memory write requires source and content tier.\", missing);\n\t}\n\tif (request.namespace?.scope === \"user\") {\n\t\tif (effectiveContext.laneAuthority !== \"write-global\" || source !== \"user-explicit\") {\n\t\t\treturn denyMemory(\n\t\t\t\t\"memory.global_authority_denied\",\n\t\t\t\t\"User/global memory writes require explicit global authority.\",\n\t\t\t);\n\t\t}\n\t}\n\tif (contentTier === \"raw\") {\n\t\tif (\n\t\t\trequest.store !== \"memory\" ||\n\t\t\tsource !== \"user-explicit\" ||\n\t\t\teffectiveContext.laneAuthority !== \"write-global\"\n\t\t) {\n\t\t\treturn denyMemory(\n\t\t\t\t\"memory.raw_denied\",\n\t\t\t\t\"Raw memory writes require explicit user-global local memory authority.\",\n\t\t\t);\n\t\t}\n\t}\n\n\tconst sanitized = sanitizeMemoryPayload(request.payload ?? null, {\n\t\tsource,\n\t\tcontentTier,\n\t\tmaxChars: memoryMaxChars(request.store),\n\t\texternal: request.store === \"supermemory\",\n\t});\n\tif (sanitized.findings.denied) {\n\t\treturn denyMemory(\n\t\t\tsanitized.reason ?? \"memory.sanitizer.denied\",\n\t\t\t\"Memory payload sanitizer denied persistence.\",\n\t\t\tsanitized.findings,\n\t\t);\n\t}\n\tif (contentTier === \"raw\" && sanitized.findings.redactionCount > 0) {\n\t\treturn denyMemory(\n\t\t\t\"memory.raw_sensitive_denied\",\n\t\t\t\"Raw memory payload contains sanitizer findings.\",\n\t\t\tsanitized.findings,\n\t\t);\n\t}\n\treturn {\n\t\tkind: \"allow\",\n\t\trule: request.kind === \"replay\" ? \"memory.replay_sanitized\" : \"memory.write_sanitized\",\n\t\treason: \"Memory payload permitted after sanitization.\",\n\t\tnamespace: namespaceDecision.namespace,\n\t\tsanitizedPayload: sanitized.payload,\n\t\tfindings: sanitized.findings,\n\t};\n}\n\n// ---------------------------------------------------------------------------\n// Advisor / simplify report-only tool enforcer\n// ---------------------------------------------------------------------------\n\nexport function enforceReportOnlyToolInvocation(\n\toverlay: PolicyOverlay | undefined,\n\trequest: ToolInvocationRequest,\n): PolicyDecision {\n\tif (request.source !== \"advisor\" && request.source !== \"simplify\") {\n\t\treturn {\n\t\t\tkind: \"allow\",\n\t\t\trule: \"source.not_advisor\",\n\t\t\treason: \"Source is not advisor/simplify.\",\n\t\t};\n\t}\n\tconst declaredUse = overlay?.declaredUse;\n\tconst hasReportOverlay =\n\t\toverlay?.mutationMode === \"report-only\" || declaredUse === \"advisor\" || declaredUse === \"quality\";\n\tif (!hasReportOverlay) {\n\t\treturn {\n\t\t\tkind: \"deny\",\n\t\t\trule: \"advisor.missing_overlay\",\n\t\t\treason: \"Advisor/simplify source requires a report-only overlay.\",\n\t\t};\n\t}\n\tif (request.toolCategory === \"write\" || request.toolCategory === \"shell\") {\n\t\treturn {\n\t\t\tkind: \"deny\",\n\t\t\trule: \"advisor.mutation_denied\",\n\t\t\treason: \"Advisor/simplify tools are report-only.\",\n\t\t};\n\t}\n\treturn {\n\t\tkind: \"allow\",\n\t\trule: \"advisor.read_allowed\",\n\t\treason: \"Read-only advisor/simplify tool permitted.\",\n\t};\n}\n\n// ---------------------------------------------------------------------------\n// Todo overlay classifier\n// ---------------------------------------------------------------------------\n\nfunction sanitizeStatusText(text: string): string {\n\treturn text.replace(/[\\x00-\\x08\\x0b-\\x1f\\x7f]/g, \"\").trim();\n}\n\nexport type TodoOverlayClassification =\n\t| { authoritative: false; display: string }\n\t| { authoritative: true; source: \"user-explicit\" };\n\nexport function classifyTodoOverlay(request: TodoOverlayRequest): TodoOverlayClassification {\n\tif (request.source === \"compaction-summary\") {\n\t\treturn { authoritative: false, display: sanitizeStatusText(request.text) };\n\t}\n\treturn { authoritative: true, source: \"user-explicit\" };\n}\n\n// ---------------------------------------------------------------------------\n// Cache optimizer A/B measurement gate\n// ---------------------------------------------------------------------------\n\nexport function enforceCacheOptimizerGate(\n\toverlay: PolicyOverlay | undefined,\n\trequest: CacheOptimizerRequest,\n): PolicyDecision {\n\tif (overlay?.declaredUse !== \"cache-perf\") {\n\t\treturn {\n\t\t\tkind: \"deny\",\n\t\t\trule: \"cache.not_a_cache_optimizer\",\n\t\t\treason: \"Cache optimizer gate requested for non-cache lane.\",\n\t\t};\n\t}\n\tif (request.metrics.length === 0) {\n\t\treturn {\n\t\t\tkind: \"defer\",\n\t\t\trule: \"pending-measurement-plan\",\n\t\t\treason: \"Cache optimizer requires metrics array.\",\n\t\t\tdeferredReason: \"pending-measurement-plan\",\n\t\t};\n\t}\n\tif (request.gateDecision !== \"treatment\") {\n\t\treturn {\n\t\t\tkind: \"defer\",\n\t\t\trule: \"pending-measurement-plan\",\n\t\t\treason: \"Cache optimizer awaiting A/B treatment decision.\",\n\t\t\tdeferredReason: \"pending-measurement-plan\",\n\t\t};\n\t}\n\treturn {\n\t\tkind: \"allow\",\n\t\trule: \"cache.treatment_allowed\",\n\t\treason: \"Cache optimizer treatment permitted.\",\n\t};\n}\n"]}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import type { ReadAnchor } from "./read-anchors.ts";
|
|
2
|
-
export interface ReadAnchorRegistryEntry {
|
|
3
|
-
readonly anchor: ReadAnchor;
|
|
4
|
-
readonly content: string;
|
|
5
|
-
}
|
|
6
|
-
export interface ReadAnchorRegistry {
|
|
7
|
-
/** Store an anchor and the newline-normalized full-file content it was derived from. */
|
|
8
|
-
register(anchor: ReadAnchor, normalizedContent: string): void;
|
|
9
|
-
/** Look up a registered anchor and its stored content by readId. */
|
|
10
|
-
get(readId: string): ReadAnchorRegistryEntry | undefined;
|
|
11
|
-
/** Return all registered anchors for a path, newest first by registration time. */
|
|
12
|
-
getByPath(path: string): ReadAnchor[];
|
|
13
|
-
/** Evict every entry associated with a path. */
|
|
14
|
-
invalidatePath(path: string): void;
|
|
15
|
-
/** Evict every entry. */
|
|
16
|
-
clear(): void;
|
|
17
|
-
/** Number of currently stored anchors. */
|
|
18
|
-
readonly size: number;
|
|
19
|
-
}
|
|
20
|
-
/** Create a factory that yields deterministic, sortable, unique read ids. */
|
|
21
|
-
export declare function createMonotonicReadIdFactory(): () => string;
|
|
22
|
-
/**
|
|
23
|
-
* Create a per-session registry that maps read ids to anchors and supports
|
|
24
|
-
* path-indexed invalidation and deterministic LRU eviction.
|
|
25
|
-
*/
|
|
26
|
-
export declare function createReadAnchorRegistry(maxEntries?: number): ReadAnchorRegistry;
|
|
27
|
-
//# sourceMappingURL=read-anchor-registry.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"read-anchor-registry.d.ts","sourceRoot":"","sources":["../../src/core/read-anchor-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IAClC,wFAAwF;IACxF,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9D,oEAAoE;IACpE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS,CAAC;IACzD,mFAAmF;IACnF,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,CAAC;IACtC,gDAAgD;IAChD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,yBAAyB;IACzB,KAAK,IAAI,IAAI,CAAC;IACd,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AAWD,6EAA6E;AAC7E,wBAAgB,4BAA4B,IAAI,MAAM,MAAM,CAM3D;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,SAA+B,GAAG,kBAAkB,CAqFtG","sourcesContent":["import type { ReadAnchor } from \"./read-anchors.ts\";\n\nexport interface ReadAnchorRegistryEntry {\n\treadonly anchor: ReadAnchor;\n\treadonly content: string;\n}\n\nexport interface ReadAnchorRegistry {\n\t/** Store an anchor and the newline-normalized full-file content it was derived from. */\n\tregister(anchor: ReadAnchor, normalizedContent: string): void;\n\t/** Look up a registered anchor and its stored content by readId. */\n\tget(readId: string): ReadAnchorRegistryEntry | undefined;\n\t/** Return all registered anchors for a path, newest first by registration time. */\n\tgetByPath(path: string): ReadAnchor[];\n\t/** Evict every entry associated with a path. */\n\tinvalidatePath(path: string): void;\n\t/** Evict every entry. */\n\tclear(): void;\n\t/** Number of currently stored anchors. */\n\treadonly size: number;\n}\n\ninterface Entry extends ReadAnchorRegistryEntry {\n\t/** Monotonic registration order; determines \"newest first\" for path queries. */\n\treadonly registeredAt: number;\n\t/** Monotonic last-access counter; drives deterministic LRU eviction. */\n\tlastAccess: number;\n}\n\nconst DEFAULT_MAX_REGISTRY_ENTRIES = 1000;\n\n/** Create a factory that yields deterministic, sortable, unique read ids. */\nexport function createMonotonicReadIdFactory(): () => string {\n\tlet counter = 0;\n\treturn () => {\n\t\tcounter += 1;\n\t\treturn `ra-${counter.toString(36).padStart(12, \"0\")}`;\n\t};\n}\n\n/**\n * Create a per-session registry that maps read ids to anchors and supports\n * path-indexed invalidation and deterministic LRU eviction.\n */\nexport function createReadAnchorRegistry(maxEntries = DEFAULT_MAX_REGISTRY_ENTRIES): ReadAnchorRegistry {\n\tlet accessCounter = 0;\n\tconst byId = new Map<string, Entry>();\n\tconst byPath = new Map<string, Set<string>>();\n\n\tfunction touch(entry: Entry): Entry {\n\t\taccessCounter += 1;\n\t\treturn { ...entry, lastAccess: accessCounter };\n\t}\n\n\tfunction evictIfNeeded(): void {\n\t\tif (byId.size <= maxEntries) return;\n\t\tlet oldest: Entry | undefined;\n\t\tfor (const entry of byId.values()) {\n\t\t\tif (oldest === undefined || entry.lastAccess < oldest.lastAccess) {\n\t\t\t\toldest = entry;\n\t\t\t}\n\t\t}\n\t\tif (oldest === undefined) return;\n\t\tbyId.delete(oldest.anchor.readId);\n\t\tconst pathSet = byPath.get(oldest.anchor.path);\n\t\tif (pathSet) {\n\t\t\tpathSet.delete(oldest.anchor.readId);\n\t\t\tif (pathSet.size === 0) {\n\t\t\t\tbyPath.delete(oldest.anchor.path);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\tregister(anchor, normalizedContent) {\n\t\t\taccessCounter += 1;\n\t\t\tconst entry: Entry = {\n\t\t\t\tanchor,\n\t\t\t\tcontent: normalizedContent,\n\t\t\t\tregisteredAt: accessCounter,\n\t\t\t\tlastAccess: accessCounter,\n\t\t\t};\n\t\t\tbyId.set(anchor.readId, entry);\n\t\t\tlet pathSet = byPath.get(anchor.path);\n\t\t\tif (!pathSet) {\n\t\t\t\tpathSet = new Set<string>();\n\t\t\t\tbyPath.set(anchor.path, pathSet);\n\t\t\t}\n\t\t\tpathSet.add(anchor.readId);\n\t\t\tevictIfNeeded();\n\t\t},\n\t\tget(readId) {\n\t\t\tconst entry = byId.get(readId);\n\t\t\tif (entry === undefined) return undefined;\n\t\t\tconst touched = touch(entry);\n\t\t\tbyId.set(readId, touched);\n\t\t\treturn { anchor: touched.anchor, content: touched.content };\n\t\t},\n\t\tgetByPath(path) {\n\t\t\tconst pathSet = byPath.get(path);\n\t\t\tif (pathSet === undefined) return [];\n\t\t\tconst anchors: ReadAnchor[] = [];\n\t\t\tfor (const readId of pathSet) {\n\t\t\t\tconst entry = byId.get(readId);\n\t\t\t\tif (entry === undefined) continue;\n\t\t\t\tconst touched = touch(entry);\n\t\t\t\tbyId.set(readId, touched);\n\t\t\t\tanchors.push(touched.anchor);\n\t\t\t}\n\t\t\tanchors.sort((a, b) => byId.get(b.readId)!.registeredAt - byId.get(a.readId)!.registeredAt);\n\t\t\treturn anchors;\n\t\t},\n\t\tinvalidatePath(path) {\n\t\t\tconst pathSet = byPath.get(path);\n\t\t\tif (pathSet === undefined) return;\n\t\t\tfor (const readId of pathSet) {\n\t\t\t\tbyId.delete(readId);\n\t\t\t}\n\t\t\tbyPath.delete(path);\n\t\t},\n\t\tclear() {\n\t\t\tbyId.clear();\n\t\t\tbyPath.clear();\n\t\t\taccessCounter = 0;\n\t\t},\n\t\tget size() {\n\t\t\treturn byId.size;\n\t\t},\n\t};\n}\n"]}
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
const DEFAULT_MAX_REGISTRY_ENTRIES = 1000;
|
|
2
|
-
/** Create a factory that yields deterministic, sortable, unique read ids. */
|
|
3
|
-
export function createMonotonicReadIdFactory() {
|
|
4
|
-
let counter = 0;
|
|
5
|
-
return () => {
|
|
6
|
-
counter += 1;
|
|
7
|
-
return `ra-${counter.toString(36).padStart(12, "0")}`;
|
|
8
|
-
};
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Create a per-session registry that maps read ids to anchors and supports
|
|
12
|
-
* path-indexed invalidation and deterministic LRU eviction.
|
|
13
|
-
*/
|
|
14
|
-
export function createReadAnchorRegistry(maxEntries = DEFAULT_MAX_REGISTRY_ENTRIES) {
|
|
15
|
-
let accessCounter = 0;
|
|
16
|
-
const byId = new Map();
|
|
17
|
-
const byPath = new Map();
|
|
18
|
-
function touch(entry) {
|
|
19
|
-
accessCounter += 1;
|
|
20
|
-
return { ...entry, lastAccess: accessCounter };
|
|
21
|
-
}
|
|
22
|
-
function evictIfNeeded() {
|
|
23
|
-
if (byId.size <= maxEntries)
|
|
24
|
-
return;
|
|
25
|
-
let oldest;
|
|
26
|
-
for (const entry of byId.values()) {
|
|
27
|
-
if (oldest === undefined || entry.lastAccess < oldest.lastAccess) {
|
|
28
|
-
oldest = entry;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
if (oldest === undefined)
|
|
32
|
-
return;
|
|
33
|
-
byId.delete(oldest.anchor.readId);
|
|
34
|
-
const pathSet = byPath.get(oldest.anchor.path);
|
|
35
|
-
if (pathSet) {
|
|
36
|
-
pathSet.delete(oldest.anchor.readId);
|
|
37
|
-
if (pathSet.size === 0) {
|
|
38
|
-
byPath.delete(oldest.anchor.path);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
return {
|
|
43
|
-
register(anchor, normalizedContent) {
|
|
44
|
-
accessCounter += 1;
|
|
45
|
-
const entry = {
|
|
46
|
-
anchor,
|
|
47
|
-
content: normalizedContent,
|
|
48
|
-
registeredAt: accessCounter,
|
|
49
|
-
lastAccess: accessCounter,
|
|
50
|
-
};
|
|
51
|
-
byId.set(anchor.readId, entry);
|
|
52
|
-
let pathSet = byPath.get(anchor.path);
|
|
53
|
-
if (!pathSet) {
|
|
54
|
-
pathSet = new Set();
|
|
55
|
-
byPath.set(anchor.path, pathSet);
|
|
56
|
-
}
|
|
57
|
-
pathSet.add(anchor.readId);
|
|
58
|
-
evictIfNeeded();
|
|
59
|
-
},
|
|
60
|
-
get(readId) {
|
|
61
|
-
const entry = byId.get(readId);
|
|
62
|
-
if (entry === undefined)
|
|
63
|
-
return undefined;
|
|
64
|
-
const touched = touch(entry);
|
|
65
|
-
byId.set(readId, touched);
|
|
66
|
-
return { anchor: touched.anchor, content: touched.content };
|
|
67
|
-
},
|
|
68
|
-
getByPath(path) {
|
|
69
|
-
const pathSet = byPath.get(path);
|
|
70
|
-
if (pathSet === undefined)
|
|
71
|
-
return [];
|
|
72
|
-
const anchors = [];
|
|
73
|
-
for (const readId of pathSet) {
|
|
74
|
-
const entry = byId.get(readId);
|
|
75
|
-
if (entry === undefined)
|
|
76
|
-
continue;
|
|
77
|
-
const touched = touch(entry);
|
|
78
|
-
byId.set(readId, touched);
|
|
79
|
-
anchors.push(touched.anchor);
|
|
80
|
-
}
|
|
81
|
-
anchors.sort((a, b) => byId.get(b.readId).registeredAt - byId.get(a.readId).registeredAt);
|
|
82
|
-
return anchors;
|
|
83
|
-
},
|
|
84
|
-
invalidatePath(path) {
|
|
85
|
-
const pathSet = byPath.get(path);
|
|
86
|
-
if (pathSet === undefined)
|
|
87
|
-
return;
|
|
88
|
-
for (const readId of pathSet) {
|
|
89
|
-
byId.delete(readId);
|
|
90
|
-
}
|
|
91
|
-
byPath.delete(path);
|
|
92
|
-
},
|
|
93
|
-
clear() {
|
|
94
|
-
byId.clear();
|
|
95
|
-
byPath.clear();
|
|
96
|
-
accessCounter = 0;
|
|
97
|
-
},
|
|
98
|
-
get size() {
|
|
99
|
-
return byId.size;
|
|
100
|
-
},
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
//# sourceMappingURL=read-anchor-registry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"read-anchor-registry.js","sourceRoot":"","sources":["../../src/core/read-anchor-registry.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ReadAnchor } from \"./read-anchors.ts\";\n\nexport interface ReadAnchorRegistryEntry {\n\treadonly anchor: ReadAnchor;\n\treadonly content: string;\n}\n\nexport interface ReadAnchorRegistry {\n\t/** Store an anchor and the newline-normalized full-file content it was derived from. */\n\tregister(anchor: ReadAnchor, normalizedContent: string): void;\n\t/** Look up a registered anchor and its stored content by readId. */\n\tget(readId: string): ReadAnchorRegistryEntry | undefined;\n\t/** Return all registered anchors for a path, newest first by registration time. */\n\tgetByPath(path: string): ReadAnchor[];\n\t/** Evict every entry associated with a path. */\n\tinvalidatePath(path: string): void;\n\t/** Evict every entry. */\n\tclear(): void;\n\t/** Number of currently stored anchors. */\n\treadonly size: number;\n}\n\ninterface Entry extends ReadAnchorRegistryEntry {\n\t/** Monotonic registration order; determines \"newest first\" for path queries. */\n\treadonly registeredAt: number;\n\t/** Monotonic last-access counter; drives deterministic LRU eviction. */\n\tlastAccess: number;\n}\n\nconst DEFAULT_MAX_REGISTRY_ENTRIES = 1000;\n\n/** Create a factory that yields deterministic, sortable, unique read ids. */\nexport function createMonotonicReadIdFactory(): () => string {\n\tlet counter = 0;\n\treturn () => {\n\t\tcounter += 1;\n\t\treturn `ra-${counter.toString(36).padStart(12, \"0\")}`;\n\t};\n}\n\n/**\n * Create a per-session registry that maps read ids to anchors and supports\n * path-indexed invalidation and deterministic LRU eviction.\n */\nexport function createReadAnchorRegistry(maxEntries = DEFAULT_MAX_REGISTRY_ENTRIES): ReadAnchorRegistry {\n\tlet accessCounter = 0;\n\tconst byId = new Map<string, Entry>();\n\tconst byPath = new Map<string, Set<string>>();\n\n\tfunction touch(entry: Entry): Entry {\n\t\taccessCounter += 1;\n\t\treturn { ...entry, lastAccess: accessCounter };\n\t}\n\n\tfunction evictIfNeeded(): void {\n\t\tif (byId.size <= maxEntries) return;\n\t\tlet oldest: Entry | undefined;\n\t\tfor (const entry of byId.values()) {\n\t\t\tif (oldest === undefined || entry.lastAccess < oldest.lastAccess) {\n\t\t\t\toldest = entry;\n\t\t\t}\n\t\t}\n\t\tif (oldest === undefined) return;\n\t\tbyId.delete(oldest.anchor.readId);\n\t\tconst pathSet = byPath.get(oldest.anchor.path);\n\t\tif (pathSet) {\n\t\t\tpathSet.delete(oldest.anchor.readId);\n\t\t\tif (pathSet.size === 0) {\n\t\t\t\tbyPath.delete(oldest.anchor.path);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\tregister(anchor, normalizedContent) {\n\t\t\taccessCounter += 1;\n\t\t\tconst entry: Entry = {\n\t\t\t\tanchor,\n\t\t\t\tcontent: normalizedContent,\n\t\t\t\tregisteredAt: accessCounter,\n\t\t\t\tlastAccess: accessCounter,\n\t\t\t};\n\t\t\tbyId.set(anchor.readId, entry);\n\t\t\tlet pathSet = byPath.get(anchor.path);\n\t\t\tif (!pathSet) {\n\t\t\t\tpathSet = new Set<string>();\n\t\t\t\tbyPath.set(anchor.path, pathSet);\n\t\t\t}\n\t\t\tpathSet.add(anchor.readId);\n\t\t\tevictIfNeeded();\n\t\t},\n\t\tget(readId) {\n\t\t\tconst entry = byId.get(readId);\n\t\t\tif (entry === undefined) return undefined;\n\t\t\tconst touched = touch(entry);\n\t\t\tbyId.set(readId, touched);\n\t\t\treturn { anchor: touched.anchor, content: touched.content };\n\t\t},\n\t\tgetByPath(path) {\n\t\t\tconst pathSet = byPath.get(path);\n\t\t\tif (pathSet === undefined) return [];\n\t\t\tconst anchors: ReadAnchor[] = [];\n\t\t\tfor (const readId of pathSet) {\n\t\t\t\tconst entry = byId.get(readId);\n\t\t\t\tif (entry === undefined) continue;\n\t\t\t\tconst touched = touch(entry);\n\t\t\t\tbyId.set(readId, touched);\n\t\t\t\tanchors.push(touched.anchor);\n\t\t\t}\n\t\t\tanchors.sort((a, b) => byId.get(b.readId)!.registeredAt - byId.get(a.readId)!.registeredAt);\n\t\t\treturn anchors;\n\t\t},\n\t\tinvalidatePath(path) {\n\t\t\tconst pathSet = byPath.get(path);\n\t\t\tif (pathSet === undefined) return;\n\t\t\tfor (const readId of pathSet) {\n\t\t\t\tbyId.delete(readId);\n\t\t\t}\n\t\t\tbyPath.delete(path);\n\t\t},\n\t\tclear() {\n\t\t\tbyId.clear();\n\t\t\tbyPath.clear();\n\t\t\taccessCounter = 0;\n\t\t},\n\t\tget size() {\n\t\t\treturn byId.size;\n\t\t},\n\t};\n}\n"]}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export interface ReadContentCache {
|
|
2
|
-
/** Retrieve newline-normalized content by its file SHA-256. */
|
|
3
|
-
get(fileSha256: string): string | undefined;
|
|
4
|
-
/**
|
|
5
|
-
* Store newline-normalized content keyed by file SHA-256. The path is
|
|
6
|
-
* recorded so all hashes for a path can be evicted together when the file
|
|
7
|
-
* is edited.
|
|
8
|
-
*/
|
|
9
|
-
set(fileSha256: string, normalizedContent: string, path: string): void;
|
|
10
|
-
/** Evict every cached hash that originated from the given path. */
|
|
11
|
-
invalidatePath(path: string): void;
|
|
12
|
-
/** Evict every entry. */
|
|
13
|
-
clear(): void;
|
|
14
|
-
/** Number of currently stored entries. */
|
|
15
|
-
readonly size: number;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Create a per-session content cache that avoids repeated disk reads and
|
|
19
|
-
* newline-normalization for files whose bytes have not changed.
|
|
20
|
-
*/
|
|
21
|
-
export declare function createReadContentCache(maxEntries?: number): ReadContentCache;
|
|
22
|
-
//# sourceMappingURL=read-content-cache.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"read-content-cache.d.ts","sourceRoot":"","sources":["../../src/core/read-content-cache.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAChC,+DAA+D;IAC/D,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC5C;;;;OAIG;IACH,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACvE,mEAAmE;IACnE,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,yBAAyB;IACzB,KAAK,IAAI,IAAI,CAAC;IACd,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AAYD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,SAA4B,GAAG,gBAAgB,CAuE/F","sourcesContent":["export interface ReadContentCache {\n\t/** Retrieve newline-normalized content by its file SHA-256. */\n\tget(fileSha256: string): string | undefined;\n\t/**\n\t * Store newline-normalized content keyed by file SHA-256. The path is\n\t * recorded so all hashes for a path can be evicted together when the file\n\t * is edited.\n\t */\n\tset(fileSha256: string, normalizedContent: string, path: string): void;\n\t/** Evict every cached hash that originated from the given path. */\n\tinvalidatePath(path: string): void;\n\t/** Evict every entry. */\n\tclear(): void;\n\t/** Number of currently stored entries. */\n\treadonly size: number;\n}\n\ninterface CacheEntry {\n\treadonly fileSha256: string;\n\treadonly content: string;\n\treadonly path: string;\n\t/** Monotonic last-access counter; drives deterministic LRU eviction. */\n\tlastAccess: number;\n}\n\nconst DEFAULT_MAX_CACHE_ENTRIES = 64;\n\n/**\n * Create a per-session content cache that avoids repeated disk reads and\n * newline-normalization for files whose bytes have not changed.\n */\nexport function createReadContentCache(maxEntries = DEFAULT_MAX_CACHE_ENTRIES): ReadContentCache {\n\tlet accessCounter = 0;\n\tconst byHash = new Map<string, CacheEntry>();\n\tconst byPath = new Map<string, Set<string>>();\n\n\tfunction touch(entry: CacheEntry): CacheEntry {\n\t\taccessCounter += 1;\n\t\treturn { ...entry, lastAccess: accessCounter };\n\t}\n\n\tfunction evictIfNeeded(): void {\n\t\tif (byHash.size <= maxEntries) return;\n\t\tlet oldest: CacheEntry | undefined;\n\t\tfor (const entry of byHash.values()) {\n\t\t\tif (oldest === undefined || entry.lastAccess < oldest.lastAccess) {\n\t\t\t\toldest = entry;\n\t\t\t}\n\t\t}\n\t\tif (oldest === undefined) return;\n\t\tbyHash.delete(oldest.fileSha256);\n\t\tconst pathSet = byPath.get(oldest.path);\n\t\tif (pathSet) {\n\t\t\tpathSet.delete(oldest.fileSha256);\n\t\t\tif (pathSet.size === 0) {\n\t\t\t\tbyPath.delete(oldest.path);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\tget(fileSha256) {\n\t\t\tconst entry = byHash.get(fileSha256);\n\t\t\tif (entry === undefined) return undefined;\n\t\t\tconst touched = touch(entry);\n\t\t\tbyHash.set(fileSha256, touched);\n\t\t\treturn touched.content;\n\t\t},\n\t\tset(fileSha256, normalizedContent, path) {\n\t\t\taccessCounter += 1;\n\t\t\tconst entry: CacheEntry = {\n\t\t\t\tfileSha256,\n\t\t\t\tcontent: normalizedContent,\n\t\t\t\tpath,\n\t\t\t\tlastAccess: accessCounter,\n\t\t\t};\n\t\t\tbyHash.set(fileSha256, entry);\n\t\t\tlet pathSet = byPath.get(path);\n\t\t\tif (!pathSet) {\n\t\t\t\tpathSet = new Set<string>();\n\t\t\t\tbyPath.set(path, pathSet);\n\t\t\t}\n\t\t\tpathSet.add(fileSha256);\n\t\t\tevictIfNeeded();\n\t\t},\n\t\tinvalidatePath(path) {\n\t\t\tconst pathSet = byPath.get(path);\n\t\t\tif (pathSet === undefined) return;\n\t\t\tfor (const fileSha256 of pathSet) {\n\t\t\t\tbyHash.delete(fileSha256);\n\t\t\t}\n\t\t\tbyPath.delete(path);\n\t\t},\n\t\tclear() {\n\t\t\tbyHash.clear();\n\t\t\tbyPath.clear();\n\t\t\taccessCounter = 0;\n\t\t},\n\t\tget size() {\n\t\t\treturn byHash.size;\n\t\t},\n\t};\n}\n"]}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
const DEFAULT_MAX_CACHE_ENTRIES = 64;
|
|
2
|
-
/**
|
|
3
|
-
* Create a per-session content cache that avoids repeated disk reads and
|
|
4
|
-
* newline-normalization for files whose bytes have not changed.
|
|
5
|
-
*/
|
|
6
|
-
export function createReadContentCache(maxEntries = DEFAULT_MAX_CACHE_ENTRIES) {
|
|
7
|
-
let accessCounter = 0;
|
|
8
|
-
const byHash = new Map();
|
|
9
|
-
const byPath = new Map();
|
|
10
|
-
function touch(entry) {
|
|
11
|
-
accessCounter += 1;
|
|
12
|
-
return { ...entry, lastAccess: accessCounter };
|
|
13
|
-
}
|
|
14
|
-
function evictIfNeeded() {
|
|
15
|
-
if (byHash.size <= maxEntries)
|
|
16
|
-
return;
|
|
17
|
-
let oldest;
|
|
18
|
-
for (const entry of byHash.values()) {
|
|
19
|
-
if (oldest === undefined || entry.lastAccess < oldest.lastAccess) {
|
|
20
|
-
oldest = entry;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
if (oldest === undefined)
|
|
24
|
-
return;
|
|
25
|
-
byHash.delete(oldest.fileSha256);
|
|
26
|
-
const pathSet = byPath.get(oldest.path);
|
|
27
|
-
if (pathSet) {
|
|
28
|
-
pathSet.delete(oldest.fileSha256);
|
|
29
|
-
if (pathSet.size === 0) {
|
|
30
|
-
byPath.delete(oldest.path);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
return {
|
|
35
|
-
get(fileSha256) {
|
|
36
|
-
const entry = byHash.get(fileSha256);
|
|
37
|
-
if (entry === undefined)
|
|
38
|
-
return undefined;
|
|
39
|
-
const touched = touch(entry);
|
|
40
|
-
byHash.set(fileSha256, touched);
|
|
41
|
-
return touched.content;
|
|
42
|
-
},
|
|
43
|
-
set(fileSha256, normalizedContent, path) {
|
|
44
|
-
accessCounter += 1;
|
|
45
|
-
const entry = {
|
|
46
|
-
fileSha256,
|
|
47
|
-
content: normalizedContent,
|
|
48
|
-
path,
|
|
49
|
-
lastAccess: accessCounter,
|
|
50
|
-
};
|
|
51
|
-
byHash.set(fileSha256, entry);
|
|
52
|
-
let pathSet = byPath.get(path);
|
|
53
|
-
if (!pathSet) {
|
|
54
|
-
pathSet = new Set();
|
|
55
|
-
byPath.set(path, pathSet);
|
|
56
|
-
}
|
|
57
|
-
pathSet.add(fileSha256);
|
|
58
|
-
evictIfNeeded();
|
|
59
|
-
},
|
|
60
|
-
invalidatePath(path) {
|
|
61
|
-
const pathSet = byPath.get(path);
|
|
62
|
-
if (pathSet === undefined)
|
|
63
|
-
return;
|
|
64
|
-
for (const fileSha256 of pathSet) {
|
|
65
|
-
byHash.delete(fileSha256);
|
|
66
|
-
}
|
|
67
|
-
byPath.delete(path);
|
|
68
|
-
},
|
|
69
|
-
clear() {
|
|
70
|
-
byHash.clear();
|
|
71
|
-
byPath.clear();
|
|
72
|
-
accessCounter = 0;
|
|
73
|
-
},
|
|
74
|
-
get size() {
|
|
75
|
-
return byHash.size;
|
|
76
|
-
},
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
//# sourceMappingURL=read-content-cache.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"read-content-cache.js","sourceRoot":"","sources":["../../src/core/read-content-cache.ts"],"names":[],"mappings":"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","sourcesContent":["export interface ReadContentCache {\n\t/** Retrieve newline-normalized content by its file SHA-256. */\n\tget(fileSha256: string): string | undefined;\n\t/**\n\t * Store newline-normalized content keyed by file SHA-256. The path is\n\t * recorded so all hashes for a path can be evicted together when the file\n\t * is edited.\n\t */\n\tset(fileSha256: string, normalizedContent: string, path: string): void;\n\t/** Evict every cached hash that originated from the given path. */\n\tinvalidatePath(path: string): void;\n\t/** Evict every entry. */\n\tclear(): void;\n\t/** Number of currently stored entries. */\n\treadonly size: number;\n}\n\ninterface CacheEntry {\n\treadonly fileSha256: string;\n\treadonly content: string;\n\treadonly path: string;\n\t/** Monotonic last-access counter; drives deterministic LRU eviction. */\n\tlastAccess: number;\n}\n\nconst DEFAULT_MAX_CACHE_ENTRIES = 64;\n\n/**\n * Create a per-session content cache that avoids repeated disk reads and\n * newline-normalization for files whose bytes have not changed.\n */\nexport function createReadContentCache(maxEntries = DEFAULT_MAX_CACHE_ENTRIES): ReadContentCache {\n\tlet accessCounter = 0;\n\tconst byHash = new Map<string, CacheEntry>();\n\tconst byPath = new Map<string, Set<string>>();\n\n\tfunction touch(entry: CacheEntry): CacheEntry {\n\t\taccessCounter += 1;\n\t\treturn { ...entry, lastAccess: accessCounter };\n\t}\n\n\tfunction evictIfNeeded(): void {\n\t\tif (byHash.size <= maxEntries) return;\n\t\tlet oldest: CacheEntry | undefined;\n\t\tfor (const entry of byHash.values()) {\n\t\t\tif (oldest === undefined || entry.lastAccess < oldest.lastAccess) {\n\t\t\t\toldest = entry;\n\t\t\t}\n\t\t}\n\t\tif (oldest === undefined) return;\n\t\tbyHash.delete(oldest.fileSha256);\n\t\tconst pathSet = byPath.get(oldest.path);\n\t\tif (pathSet) {\n\t\t\tpathSet.delete(oldest.fileSha256);\n\t\t\tif (pathSet.size === 0) {\n\t\t\t\tbyPath.delete(oldest.path);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\tget(fileSha256) {\n\t\t\tconst entry = byHash.get(fileSha256);\n\t\t\tif (entry === undefined) return undefined;\n\t\t\tconst touched = touch(entry);\n\t\t\tbyHash.set(fileSha256, touched);\n\t\t\treturn touched.content;\n\t\t},\n\t\tset(fileSha256, normalizedContent, path) {\n\t\t\taccessCounter += 1;\n\t\t\tconst entry: CacheEntry = {\n\t\t\t\tfileSha256,\n\t\t\t\tcontent: normalizedContent,\n\t\t\t\tpath,\n\t\t\t\tlastAccess: accessCounter,\n\t\t\t};\n\t\t\tbyHash.set(fileSha256, entry);\n\t\t\tlet pathSet = byPath.get(path);\n\t\t\tif (!pathSet) {\n\t\t\t\tpathSet = new Set<string>();\n\t\t\t\tbyPath.set(path, pathSet);\n\t\t\t}\n\t\t\tpathSet.add(fileSha256);\n\t\t\tevictIfNeeded();\n\t\t},\n\t\tinvalidatePath(path) {\n\t\t\tconst pathSet = byPath.get(path);\n\t\t\tif (pathSet === undefined) return;\n\t\t\tfor (const fileSha256 of pathSet) {\n\t\t\t\tbyHash.delete(fileSha256);\n\t\t\t}\n\t\t\tbyPath.delete(path);\n\t\t},\n\t\tclear() {\n\t\t\tbyHash.clear();\n\t\t\tbyPath.clear();\n\t\t\taccessCounter = 0;\n\t\t},\n\t\tget size() {\n\t\t\treturn byHash.size;\n\t\t},\n\t};\n}\n"]}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { type SanitizerFindingSummary } from "./policy-overlays-runtime.ts";
|
|
2
|
-
export interface BoundedDigestOptions {
|
|
3
|
-
/** Hard ceiling on output character length. */
|
|
4
|
-
maxChars: number;
|
|
5
|
-
/** Fraction of retained content reserved for the beginning of the stream. */
|
|
6
|
-
headRatio?: number;
|
|
7
|
-
/** Separator inserted between pushed segments. */
|
|
8
|
-
separator?: string;
|
|
9
|
-
/** Marker inserted between retained head and tail when content is omitted. */
|
|
10
|
-
marker?: string;
|
|
11
|
-
/** Redact memory-sensitive text before it enters the digest. Defaults to true for runtime session paths. */
|
|
12
|
-
sanitize?: boolean;
|
|
13
|
-
}
|
|
14
|
-
export interface BoundedDigestResult {
|
|
15
|
-
text: string;
|
|
16
|
-
truncated: boolean;
|
|
17
|
-
originalChars: number;
|
|
18
|
-
keptChars: number;
|
|
19
|
-
}
|
|
20
|
-
export declare const DEFAULT_SESSION_DIGEST_MAX_CHARS = 16000;
|
|
21
|
-
export declare const DEFAULT_SESSION_FIRST_MESSAGE_MAX_CHARS = 2000;
|
|
22
|
-
export declare const DEFAULT_DIGEST_HEAD_RATIO = 0.6;
|
|
23
|
-
export declare const DEFAULT_DIGEST_MARKER = " \u2026[omk-digest:truncated]\u2026 ";
|
|
24
|
-
export declare class BoundedDigestAccumulator {
|
|
25
|
-
private readonly options;
|
|
26
|
-
private head;
|
|
27
|
-
private tail;
|
|
28
|
-
private originalChars;
|
|
29
|
-
private wroteAny;
|
|
30
|
-
private overflowed;
|
|
31
|
-
constructor(options: BoundedDigestOptions);
|
|
32
|
-
push(segment: string): void;
|
|
33
|
-
result(): BoundedDigestResult;
|
|
34
|
-
private appendToHead;
|
|
35
|
-
private appendToTail;
|
|
36
|
-
}
|
|
37
|
-
export declare function buildBoundedDigest(segments: readonly string[], options: BoundedDigestOptions): BoundedDigestResult;
|
|
38
|
-
export declare function boundConversationTextForSummary(text: string, maxChars: number): string;
|
|
39
|
-
export declare function boundSessionFirstMessage(text: string, maxChars?: number, sanitize?: boolean): string;
|
|
40
|
-
export interface SanitizedDigestResult extends BoundedDigestResult {
|
|
41
|
-
findings: SanitizerFindingSummary;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Bound a digest of session-derived text segments while redacting secrets, auth
|
|
45
|
-
* tokens, PII-like values, and home paths via the shared memory sanitizer.
|
|
46
|
-
*
|
|
47
|
-
* Sanitization (redaction) is applied per segment with a generous budget so only
|
|
48
|
-
* redaction happens; the configured maxChars ceiling is then enforced by the
|
|
49
|
-
* BoundedDigestAccumulator, preserving head/tail retention semantics.
|
|
50
|
-
*/
|
|
51
|
-
export declare function boundAndSanitizeSessionDigest(segments: readonly string[], options: BoundedDigestOptions): SanitizedDigestResult;
|
|
52
|
-
/**
|
|
53
|
-
* Bound the first session message while redacting sanitizer-sensitive values.
|
|
54
|
-
* Mirrors boundSessionFirstMessage() but sanitizes the source first.
|
|
55
|
-
*/
|
|
56
|
-
export declare function boundAndSanitizeFirstMessage(text: string, maxChars?: number): SanitizedDigestResult;
|
|
57
|
-
//# sourceMappingURL=session-digest.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session-digest.d.ts","sourceRoot":"","sources":["../../src/core/session-digest.ts"],"names":[],"mappings":"AACA,OAAO,EAEN,KAAK,uBAAuB,EAE5B,MAAM,8BAA8B,CAAC;AAEtC,MAAM,WAAW,oBAAoB;IACpC,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4GAA4G;IAC5G,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,gCAAgC,QAAS,CAAC;AACvD,eAAO,MAAM,uCAAuC,OAAQ,CAAC;AAC7D,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAC7C,eAAO,MAAM,qBAAqB,yCAA+B,CAAC;AAyClE,qBAAa,wBAAwB;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAClD,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAS;IAE3B,YAAY,OAAO,EAAE,oBAAoB,EAExC;IAED,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAW1B;IAED,MAAM,IAAI,mBAAmB,CAa5B;IAED,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,YAAY;CAYpB;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,oBAAoB,GAAG,mBAAmB,CAMlH;AAED,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKtF;AAED,wBAAgB,wBAAwB,CACvC,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,MAAgD,EAC1D,QAAQ,UAAO,GACb,MAAM,CAOR;AAYD,MAAM,WAAW,qBAAsB,SAAQ,mBAAmB;IACjE,QAAQ,EAAE,uBAAuB,CAAC;CAClC;AAaD;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAC5C,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,OAAO,EAAE,oBAAoB,GAC3B,qBAAqB,CAgCvB;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC3C,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,MAAgD,GACxD,qBAAqB,CAgBvB","sourcesContent":["import { createHash } from \"node:crypto\";\nimport {\n\ttype MemorySanitizerCategory,\n\ttype SanitizerFindingSummary,\n\tsanitizeMemoryPayload,\n} from \"./policy-overlays-runtime.ts\";\n\nexport interface BoundedDigestOptions {\n\t/** Hard ceiling on output character length. */\n\tmaxChars: number;\n\t/** Fraction of retained content reserved for the beginning of the stream. */\n\theadRatio?: number;\n\t/** Separator inserted between pushed segments. */\n\tseparator?: string;\n\t/** Marker inserted between retained head and tail when content is omitted. */\n\tmarker?: string;\n\t/** Redact memory-sensitive text before it enters the digest. Defaults to true for runtime session paths. */\n\tsanitize?: boolean;\n}\n\nexport interface BoundedDigestResult {\n\ttext: string;\n\ttruncated: boolean;\n\toriginalChars: number;\n\tkeptChars: number;\n}\n\nexport const DEFAULT_SESSION_DIGEST_MAX_CHARS = 16_000;\nexport const DEFAULT_SESSION_FIRST_MESSAGE_MAX_CHARS = 2_000;\nexport const DEFAULT_DIGEST_HEAD_RATIO = 0.6;\nexport const DEFAULT_DIGEST_MARKER = \" …[omk-digest:truncated]… \";\nconst FIRST_MESSAGE_TRUNCATION_MARKER = \" …[omk-first-message:truncated]\";\n\ninterface NormalizedDigestOptions {\n\tmaxChars: number;\n\theadRatio: number;\n\theadBudget: number;\n\ttailBudget: number;\n\tseparator: string;\n\tmarker: string;\n\tsanitize: boolean;\n}\n\nfunction fitTruncationMarker(marker: string, maxChars: number): string {\n\tif (maxChars <= 0) return \"\";\n\tif (marker.length < maxChars) return marker;\n\treturn maxChars >= 3 ? \"…\" : \"\";\n}\n\nfunction normalizeDigestOptions(options: BoundedDigestOptions): NormalizedDigestOptions {\n\tconst maxChars = Number.isFinite(options.maxChars) ? Math.max(0, Math.floor(options.maxChars)) : 0;\n\tconst ratioValue = options.headRatio ?? DEFAULT_DIGEST_HEAD_RATIO;\n\tconst headRatio = Number.isFinite(ratioValue) ? Math.min(1, Math.max(0, ratioValue)) : DEFAULT_DIGEST_HEAD_RATIO;\n\tconst separator = options.separator ?? \" \";\n\tconst marker = fitTruncationMarker(options.marker ?? DEFAULT_DIGEST_MARKER, maxChars);\n\tconst sanitize = options.sanitize ?? true;\n\tconst headBudget = Math.floor(maxChars * headRatio);\n\tconst tailBudget = Math.max(0, maxChars - headBudget);\n\treturn { maxChars, headRatio, headBudget, tailBudget, separator, marker, sanitize };\n}\n\nfunction sanitizeSessionDigestText(text: string): string {\n\tconst sanitized = sanitizeMemoryPayload(text, {\n\t\tsource: \"session-digest\",\n\t\tcontentTier: \"summary\",\n\t\tmaxChars: DIGEST_SANITIZER_MAX_CHARS,\n\t\texternal: false,\n\t});\n\treturn typeof sanitized.payload === \"string\" ? sanitized.payload : \"\";\n}\n\nexport class BoundedDigestAccumulator {\n\tprivate readonly options: NormalizedDigestOptions;\n\tprivate head = \"\";\n\tprivate tail = \"\";\n\tprivate originalChars = 0;\n\tprivate wroteAny = false;\n\tprivate overflowed = false;\n\n\tconstructor(options: BoundedDigestOptions) {\n\t\tthis.options = normalizeDigestOptions(options);\n\t}\n\n\tpush(segment: string): void {\n\t\tif (segment.length === 0 || this.options.maxChars <= 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst safeSegment = this.options.sanitize ? sanitizeSessionDigestText(segment) : segment;\n\t\tif (safeSegment.length === 0) return;\n\t\tconst piece = this.wroteAny ? `${this.options.separator}${safeSegment}` : safeSegment;\n\t\tthis.wroteAny = true;\n\t\tthis.originalChars += piece.length;\n\t\tthis.appendToHead(piece);\n\t}\n\n\tresult(): BoundedDigestResult {\n\t\tif (!this.overflowed) {\n\t\t\tconst text = this.head + this.tail;\n\t\t\treturn { text, truncated: false, originalChars: this.originalChars, keptChars: text.length };\n\t\t}\n\n\t\tconst contentBudget = Math.max(0, this.options.maxChars - this.options.marker.length);\n\t\tconst headBudget = Math.floor(contentBudget * this.options.headRatio);\n\t\tconst tailBudget = Math.max(0, contentBudget - headBudget);\n\t\tconst text = `${this.head.slice(0, headBudget)}${this.options.marker}${this.tail.slice(\n\t\t\tMath.max(0, this.tail.length - tailBudget),\n\t\t)}`;\n\t\treturn { text, truncated: true, originalChars: this.originalChars, keptChars: text.length };\n\t}\n\n\tprivate appendToHead(piece: string): void {\n\t\tconst headRemaining = this.options.headBudget - this.head.length;\n\t\tif (headRemaining > 0) {\n\t\t\tconst headPiece = piece.slice(0, headRemaining);\n\t\t\tthis.head += headPiece;\n\t\t\tconst rest = piece.slice(headPiece.length);\n\t\t\tif (rest.length > 0) {\n\t\t\t\tthis.appendToTail(rest);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tthis.appendToTail(piece);\n\t}\n\n\tprivate appendToTail(piece: string): void {\n\t\tif (this.options.tailBudget <= 0) {\n\t\t\tthis.overflowed = true;\n\t\t\treturn;\n\t\t}\n\n\t\tthis.tail += piece;\n\t\tif (this.tail.length > this.options.tailBudget) {\n\t\t\tthis.tail = this.tail.slice(this.tail.length - this.options.tailBudget);\n\t\t\tthis.overflowed = true;\n\t\t}\n\t}\n}\n\nexport function buildBoundedDigest(segments: readonly string[], options: BoundedDigestOptions): BoundedDigestResult {\n\tconst accumulator = new BoundedDigestAccumulator(options);\n\tfor (const segment of segments) {\n\t\taccumulator.push(segment);\n\t}\n\treturn accumulator.result();\n}\n\nexport function boundConversationTextForSummary(text: string, maxChars: number): string {\n\tif (!Number.isFinite(maxChars) || maxChars <= 0 || text.length <= maxChars) {\n\t\treturn text;\n\t}\n\treturn buildBoundedDigest([text], { maxChars, headRatio: 0.5 }).text;\n}\n\nexport function boundSessionFirstMessage(\n\ttext: string,\n\tmaxChars: number = DEFAULT_SESSION_FIRST_MESSAGE_MAX_CHARS,\n\tsanitize = true,\n): string {\n\tif (!Number.isFinite(maxChars) || maxChars <= 0) return \"\";\n\tconst safeText = sanitize ? sanitizeSessionDigestText(text) : text;\n\tif (safeText.length <= maxChars) return safeText;\n\tconst marker = fitTruncationMarker(FIRST_MESSAGE_TRUNCATION_MARKER, maxChars);\n\tconst contentBudget = Math.max(0, maxChars - marker.length);\n\treturn `${safeText.slice(0, contentBudget)}${marker}`;\n}\n\n// ---------------------------------------------------------------------------\n// Sanitized digest helpers (memory-policy runtime wiring)\n// ---------------------------------------------------------------------------\n\n/**\n * Generous per-segment sanitizer budget: redaction only, never truncates.\n * The real output budget is enforced by BoundedDigestAccumulator afterwards.\n */\nconst DIGEST_SANITIZER_MAX_CHARS = 2_000_000;\n\nexport interface SanitizedDigestResult extends BoundedDigestResult {\n\tfindings: SanitizerFindingSummary;\n}\n\nfunction mergeMemoryCategories(\n\ttarget: Partial<Record<MemorySanitizerCategory, number>>,\n\tsource: Partial<Record<MemorySanitizerCategory, number>>,\n): void {\n\tfor (const category of Object.keys(source) as MemorySanitizerCategory[]) {\n\t\tconst count = source[category];\n\t\tif (count === undefined) continue;\n\t\ttarget[category] = (target[category] ?? 0) + count;\n\t}\n}\n\n/**\n * Bound a digest of session-derived text segments while redacting secrets, auth\n * tokens, PII-like values, and home paths via the shared memory sanitizer.\n *\n * Sanitization (redaction) is applied per segment with a generous budget so only\n * redaction happens; the configured maxChars ceiling is then enforced by the\n * BoundedDigestAccumulator, preserving head/tail retention semantics.\n */\nexport function boundAndSanitizeSessionDigest(\n\tsegments: readonly string[],\n\toptions: BoundedDigestOptions,\n): SanitizedDigestResult {\n\tconst accumulator = new BoundedDigestAccumulator({ ...options, sanitize: false });\n\tconst categories: Partial<Record<MemorySanitizerCategory, number>> = {};\n\tlet redactionCount = 0;\n\tlet originalInputChars = 0;\n\n\tfor (const segment of segments) {\n\t\tif (segment.length === 0) continue;\n\t\toriginalInputChars += segment.length;\n\t\tconst sanitized = sanitizeMemoryPayload(segment, {\n\t\t\tsource: \"session-digest\",\n\t\t\tcontentTier: \"summary\",\n\t\t\tmaxChars: DIGEST_SANITIZER_MAX_CHARS,\n\t\t\texternal: false,\n\t\t});\n\t\tmergeMemoryCategories(categories, sanitized.findings.categories);\n\t\tredactionCount += sanitized.findings.redactionCount;\n\t\tconst payload = typeof sanitized.payload === \"string\" ? sanitized.payload : \"\";\n\t\taccumulator.push(payload);\n\t}\n\n\tconst result = accumulator.result();\n\tconst findings: SanitizerFindingSummary = {\n\t\tsanitized: redactionCount > 0,\n\t\tdenied: false,\n\t\tcategories,\n\t\tredactionCount,\n\t\toriginalChars: originalInputChars,\n\t\tkeptChars: result.keptChars,\n\t\tdigest: createHash(\"sha256\").update(result.text).digest(\"hex\"),\n\t};\n\treturn { ...result, findings };\n}\n\n/**\n * Bound the first session message while redacting sanitizer-sensitive values.\n * Mirrors boundSessionFirstMessage() but sanitizes the source first.\n */\nexport function boundAndSanitizeFirstMessage(\n\ttext: string,\n\tmaxChars: number = DEFAULT_SESSION_FIRST_MESSAGE_MAX_CHARS,\n): SanitizedDigestResult {\n\tconst sanitized = sanitizeMemoryPayload(text, {\n\t\tsource: \"session-digest\",\n\t\tcontentTier: \"summary\",\n\t\tmaxChars: DIGEST_SANITIZER_MAX_CHARS,\n\t\texternal: false,\n\t});\n\tconst payload = typeof sanitized.payload === \"string\" ? sanitized.payload : \"\";\n\tconst bounded = boundSessionFirstMessage(payload, maxChars, false);\n\treturn {\n\t\ttext: bounded,\n\t\ttruncated: bounded.length < payload.length,\n\t\toriginalChars: text.length,\n\t\tkeptChars: bounded.length,\n\t\tfindings: { ...sanitized.findings, keptChars: bounded.length },\n\t};\n}\n"]}
|