open-multi-agent-kit 0.80.6 → 0.80.8
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 +4 -20
- package/README.md +66 -16
- 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 +7 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/config-selector.d.ts +1 -1
- package/dist/cli/config-selector.d.ts.map +1 -1
- package/dist/cli/config-selector.js +2 -2
- 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 -4
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +34 -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 +36 -8
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +294 -14
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-storage.d.ts +3 -3
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +4 -4
- package/dist/core/auth-storage.js.map +1 -1
- 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 +2 -1
- package/dist/core/bash-executor.js.map +1 -1
- package/dist/core/browser-use.d.ts +45 -0
- package/dist/core/browser-use.d.ts.map +1 -0
- package/dist/core/browser-use.js +70 -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 +11 -0
- package/dist/core/command-safety.d.ts.map +1 -0
- package/dist/core/command-safety.js +631 -0
- package/dist/core/command-safety.js.map +1 -0
- 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 +2 -8
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts +3 -84
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +11 -608
- 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 +4 -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 +108 -0
- package/dist/core/exact-cache-policy.d.ts.map +1 -0
- package/dist/core/exact-cache-policy.js +184 -0
- package/dist/core/exact-cache-policy.js.map +1 -0
- 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 +2 -4
- 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 +80 -0
- package/dist/core/extensions/builtin/command-safety-gate.d.ts.map +1 -0
- package/dist/core/extensions/builtin/command-safety-gate.js +159 -0
- package/dist/core/extensions/builtin/command-safety-gate.js.map +1 -0
- 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 +70 -0
- package/dist/core/extensions/builtin/todo-checklist.js.map +1 -0
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +50 -47
- 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 +13 -13
- 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/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 +25 -0
- package/dist/core/hook-inventory.d.ts.map +1 -0
- package/dist/core/hook-inventory.js +119 -0
- package/dist/core/hook-inventory.js.map +1 -0
- 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-access-policy.d.ts +41 -0
- package/dist/core/loadout-access-policy.d.ts.map +1 -0
- package/dist/core/loadout-access-policy.js +182 -0
- package/dist/core/loadout-access-policy.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 +106 -0
- package/dist/core/loadout-runtime.d.ts.map +1 -0
- package/dist/core/loadout-runtime.js +193 -0
- package/dist/core/loadout-runtime.js.map +1 -0
- 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 +149 -0
- package/dist/core/loadouts.d.ts.map +1 -0
- package/dist/core/loadouts.js +553 -0
- package/dist/core/loadouts.js.map +1 -0
- 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 +41 -0
- package/dist/core/mcp-inventory.d.ts.map +1 -1
- package/dist/core/mcp-inventory.js +57 -1
- package/dist/core/mcp-inventory.js.map +1 -1
- package/dist/core/mcp-presets.d.ts +98 -0
- package/dist/core/mcp-presets.d.ts.map +1 -0
- package/dist/core/mcp-presets.js +377 -0
- package/dist/core/mcp-presets.js.map +1 -0
- 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 -1
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +2 -2
- 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 +1 -1
- 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 +6 -0
- package/dist/core/package-gallery.d.ts.map +1 -0
- package/dist/core/package-gallery.js +6 -0
- package/dist/core/package-gallery.js.map +1 -0
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +10 -10
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/package-procurement.d.ts +268 -0
- package/dist/core/package-procurement.d.ts.map +1 -0
- package/dist/core/package-procurement.js +709 -0
- package/dist/core/package-procurement.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/read-anchors.d.ts +110 -0
- package/dist/core/read-anchors.d.ts.map +1 -0
- package/dist/core/read-anchors.js +193 -0
- package/dist/core/read-anchors.js.map +1 -0
- package/dist/core/recovery-checkpoint.d.ts +196 -0
- package/dist/core/recovery-checkpoint.d.ts.map +1 -0
- package/dist/core/recovery-checkpoint.js +382 -0
- package/dist/core/recovery-checkpoint.js.map +1 -0
- package/dist/core/resource-loader.d.ts +15 -21
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +62 -8
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/sandbox/backend.d.ts +25 -0
- package/dist/core/sandbox/backend.d.ts.map +1 -0
- package/dist/core/sandbox/backend.js +150 -0
- package/dist/core/sandbox/backend.js.map +1 -0
- package/dist/core/sandbox/env.d.ts +6 -0
- package/dist/core/sandbox/env.d.ts.map +1 -0
- package/dist/core/sandbox/env.js +46 -0
- package/dist/core/sandbox/env.js.map +1 -0
- package/dist/core/sandbox/path-resolver.d.ts +4 -0
- package/dist/core/sandbox/path-resolver.d.ts.map +1 -0
- package/dist/core/sandbox/path-resolver.js +44 -0
- package/dist/core/sandbox/path-resolver.js.map +1 -0
- package/dist/core/sandbox/policy.d.ts +87 -0
- package/dist/core/sandbox/policy.d.ts.map +1 -0
- package/dist/core/sandbox/policy.js +280 -0
- package/dist/core/sandbox/policy.js.map +1 -0
- package/dist/core/sandbox/spawn.d.ts +20 -0
- package/dist/core/sandbox/spawn.d.ts.map +1 -0
- package/dist/core/sandbox/spawn.js +80 -0
- package/dist/core/sandbox/spawn.js.map +1 -0
- 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 +15 -4
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +50 -4
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/semantic-cache-policy.d.ts +51 -0
- package/dist/core/semantic-cache-policy.d.ts.map +1 -0
- package/dist/core/semantic-cache-policy.js +228 -0
- package/dist/core/semantic-cache-policy.js.map +1 -0
- 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 +1 -1
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-manager.d.ts +1 -4
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +2 -7
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/skills.d.ts +1 -0
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +46 -5
- 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 +63 -24
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/telemetry.d.ts.map +1 -1
- package/dist/core/telemetry.js +1 -1
- package/dist/core/telemetry.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 +1 -5
- package/dist/core/timings.js.map +1 -1
- 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 +28 -4
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +55 -11
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/edit.d.ts +3 -2
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +4 -1
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/find.d.ts +1 -1
- package/dist/core/tools/find.d.ts.map +1 -1
- package/dist/core/tools/find.js +1 -1
- package/dist/core/tools/find.js.map +1 -1
- package/dist/core/tools/grep.d.ts +1 -1
- package/dist/core/tools/grep.d.ts.map +1 -1
- package/dist/core/tools/grep.js +1 -1
- package/dist/core/tools/grep.js.map +1 -1
- package/dist/core/tools/index.d.ts +1 -1
- 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 -1
- package/dist/core/tools/ls.d.ts.map +1 -1
- package/dist/core/tools/ls.js +1 -1
- package/dist/core/tools/ls.js.map +1 -1
- package/dist/core/tools/output-accumulator.d.ts.map +1 -1
- package/dist/core/tools/output-accumulator.js +1 -1
- package/dist/core/tools/output-accumulator.js.map +1 -1
- package/dist/core/tools/read.d.ts +2 -1
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js +6 -3
- 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 -1
- package/dist/core/tools/write.d.ts.map +1 -1
- package/dist/core/tools/write.js +4 -1
- 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/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 +6 -8
- 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 +28 -0
- package/dist/modes/interactive/components/control-panel-gradient-motion.d.ts.map +1 -0
- package/dist/modes/interactive/components/control-panel-gradient-motion.js +112 -0
- package/dist/modes/interactive/components/control-panel-gradient-motion.js.map +1 -0
- package/dist/modes/interactive/components/control-panel-gradient.d.ts +28 -0
- package/dist/modes/interactive/components/control-panel-gradient.d.ts.map +1 -0
- package/dist/modes/interactive/components/control-panel-gradient.js +128 -0
- package/dist/modes/interactive/components/control-panel-gradient.js.map +1 -0
- package/dist/modes/interactive/components/control-panel-layout.d.ts +23 -0
- package/dist/modes/interactive/components/control-panel-layout.d.ts.map +1 -0
- package/dist/modes/interactive/components/control-panel-layout.js +165 -0
- package/dist/modes/interactive/components/control-panel-layout.js.map +1 -0
- package/dist/modes/interactive/components/control-panel-runtime-status.d.ts +5 -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 +20 -0
- package/dist/modes/interactive/components/control-panel-runtime-status.js.map +1 -0
- package/dist/modes/interactive/components/control-panel.d.ts +24 -20
- package/dist/modes/interactive/components/control-panel.d.ts.map +1 -1
- package/dist/modes/interactive/components/control-panel.js +88 -69
- 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 +2 -2
- 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 +2 -2
- 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 +1 -1
- 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 +4 -4
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js +20 -42
- 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 -1
- package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/theme-selector.js +1 -1
- 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 +5 -8
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +79 -189
- 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 +22 -31
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/print-mode.d.ts +3 -3
- package/dist/modes/print-mode.d.ts.map +1 -1
- package/dist/modes/print-mode.js +2 -2
- 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-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 +3 -3
- 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/clipboard-image.d.ts.map +1 -1
- package/dist/utils/clipboard-image.js +1 -1
- package/dist/utils/clipboard-image.js.map +1 -1
- 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/omk-user-agent.d.ts +2 -0
- package/dist/utils/omk-user-agent.d.ts.map +1 -0
- package/dist/utils/{pi-user-agent.js → omk-user-agent.js} +2 -2
- package/dist/utils/omk-user-agent.js.map +1 -0
- package/dist/utils/tools-manager.d.ts.map +1 -1
- package/dist/utils/tools-manager.js +1 -1
- package/dist/utils/tools-manager.js.map +1 -1
- package/dist/utils/version-check.d.ts +5 -5
- package/dist/utils/version-check.d.ts.map +1 -1
- package/dist/utils/version-check.js +8 -11
- package/dist/utils/version-check.js.map +1 -1
- 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 +1 -1
- 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/examples/README.md +1 -1
- package/examples/extensions/README.md +12 -12
- 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/auto-commit-on-exit.ts +6 -6
- package/examples/extensions/bash-spawn-hook.ts +3 -3
- package/examples/extensions/bookmark.ts +5 -5
- package/examples/extensions/border-status-editor.ts +9 -9
- package/examples/extensions/built-in-tool-renderer.ts +7 -7
- package/examples/extensions/claude-rules.ts +4 -4
- package/examples/extensions/commands.ts +5 -5
- package/examples/extensions/confirm-destructive.ts +3 -3
- package/examples/extensions/custom-compaction.ts +4 -4
- package/examples/extensions/custom-footer.ts +4 -4
- package/examples/extensions/custom-header.ts +11 -11
- package/examples/extensions/custom-provider-anthropic/index.ts +5 -5
- 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 +4 -4
- 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/dirty-repo-guard.ts +7 -7
- package/examples/extensions/doom-overlay/README.md +2 -3
- 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_pi.c → doomgeneric_omk.c} +1 -1
- package/examples/extensions/doom-overlay/doom-component.ts +2 -2
- package/examples/extensions/doom-overlay/doom-keys.ts +1 -1
- package/examples/extensions/doom-overlay/index.ts +3 -3
- package/examples/extensions/dynamic-resources/dynamic.json +1 -1
- package/examples/extensions/dynamic-resources/index.ts +2 -2
- package/examples/extensions/dynamic-tools.ts +4 -4
- package/examples/extensions/event-bus.ts +8 -8
- package/examples/extensions/file-trigger.ts +3 -3
- package/examples/extensions/git-checkpoint.ts +7 -7
- package/examples/extensions/git-merge-and-resolve.ts +14 -14
- package/examples/extensions/github-issue-autocomplete.ts +7 -12
- package/examples/extensions/gondolin/index.ts +16 -16
- package/examples/extensions/gondolin/package-lock.json +2 -2
- package/examples/extensions/gondolin/package.json +1 -1
- package/examples/extensions/handoff.ts +4 -4
- package/examples/extensions/hello.ts +3 -3
- package/examples/extensions/hidden-thinking-label.ts +4 -4
- package/examples/extensions/inline-bash.ts +5 -5
- package/examples/extensions/input-transform-streaming.ts +5 -5
- package/examples/extensions/input-transform.ts +5 -5
- package/examples/extensions/interactive-shell.ts +3 -3
- package/examples/extensions/mac-system-theme.ts +5 -5
- package/examples/extensions/message-renderer.ts +5 -5
- package/examples/extensions/minimal-mode.ts +10 -10
- package/examples/extensions/modal-editor.ts +4 -4
- package/examples/extensions/model-status.ts +3 -3
- package/examples/extensions/notify.ts +5 -5
- package/examples/extensions/overlay-qa-tests.ts +22 -22
- package/examples/extensions/overlay-test.ts +4 -4
- package/examples/extensions/permission-gate.ts +2 -2
- package/examples/extensions/pirate.ts +4 -4
- package/examples/extensions/plan-mode/index.ts +25 -25
- package/examples/extensions/preset.ts +31 -31
- package/examples/extensions/prompt-customizer.ts +3 -3
- package/examples/extensions/protected-paths.ts +2 -2
- package/examples/extensions/provider-payload.ts +8 -5
- package/examples/extensions/qna.ts +3 -3
- package/examples/extensions/question.ts +3 -3
- package/examples/extensions/questionnaire.ts +3 -3
- package/examples/extensions/rainbow-editor.ts +3 -3
- package/examples/extensions/reload-runtime.ts +4 -4
- package/examples/extensions/rpc-demo.ts +10 -10
- package/examples/extensions/sandbox/index.ts +16 -16
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/send-user-message.ts +13 -13
- package/examples/extensions/session-name.ts +4 -4
- package/examples/extensions/shutdown-command.ts +10 -10
- package/examples/extensions/snake.ts +4 -4
- package/examples/extensions/space-invaders.ts +4 -4
- package/examples/extensions/ssh.ts +12 -12
- package/examples/extensions/status-line.ts +4 -4
- package/examples/extensions/structured-output.ts +3 -3
- package/examples/extensions/subagent/README.md +13 -13
- package/examples/extensions/subagent/agents.ts +1 -1
- package/examples/extensions/subagent/index.ts +13 -13
- package/examples/extensions/summarize.ts +4 -4
- package/examples/extensions/system-prompt-header.ts +3 -3
- package/examples/extensions/tic-tac-toe.ts +17 -17
- package/examples/extensions/timed-confirm.ts +4 -4
- package/examples/extensions/titlebar-spinner.ts +9 -9
- package/examples/extensions/todo.ts +7 -7
- package/examples/extensions/tool-override.ts +6 -6
- package/examples/extensions/tools.ts +11 -11
- package/examples/extensions/trigger-compact.ts +3 -3
- package/examples/extensions/truncated-tool.ts +4 -4
- package/examples/extensions/widget-placement.ts +2 -2
- package/examples/extensions/with-deps/index.ts +2 -2
- 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 +7 -7
- package/examples/extensions/working-message-test.ts +3 -3
- package/examples/rpc-extension-ui.ts +1 -9
- package/examples/sdk/01-minimal.ts +1 -1
- package/examples/sdk/02-custom-model.ts +1 -1
- package/examples/sdk/03-custom-prompt.ts +1 -1
- package/examples/sdk/04-skills.ts +1 -1
- package/examples/sdk/05-tools.ts +1 -1
- package/examples/sdk/06-extensions.ts +11 -11
- package/examples/sdk/08-prompt-templates.ts +1 -1
- package/examples/sdk/09-api-keys-and-oauth.ts +2 -2
- package/examples/sdk/12-full-control.ts +1 -1
- package/examples/sdk/README.md +3 -3
- package/npm-shrinkwrap.json +1805 -0
- package/package.json +8 -14
- package/dist/core/harness-control-events.d.ts +0 -79
- package/dist/core/harness-control-events.d.ts.map +0 -1
- package/dist/core/harness-control-events.js +0 -339
- package/dist/core/harness-control-events.js.map +0 -1
- package/dist/core/harness-control-replay.d.ts +0 -26
- package/dist/core/harness-control-replay.d.ts.map +0 -1
- package/dist/core/harness-control-replay.js +0 -155
- package/dist/core/harness-control-replay.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 -28
- package/dist/modes/interactive/components/mcp-selector.d.ts.map +0 -1
- package/dist/modes/interactive/components/mcp-selector.js +0 -138
- package/dist/modes/interactive/components/mcp-selector.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/utils/pi-user-agent.d.ts +0 -2
- package/dist/utils/pi-user-agent.d.ts.map +0 -1
- package/dist/utils/pi-user-agent.js.map +0 -1
|
@@ -14,20 +14,24 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
16
16
|
import { basename, dirname } from "node:path";
|
|
17
|
-
import { clampThinkingLevel, cleanupSessionResources, getSupportedThinkingLevels, isContextOverflow, modelsAreEqual, resetApiProviders, streamSimple, } from "
|
|
17
|
+
import { clampThinkingLevel, cleanupSessionResources, getSupportedThinkingLevels, isContextOverflow, modelsAreEqual, resetApiProviders, streamSimple, } from "omk-ai";
|
|
18
18
|
import { theme } from "../modes/interactive/theme/theme.js";
|
|
19
19
|
import { stripFrontmatter } from "../utils/frontmatter.js";
|
|
20
20
|
import { resolvePath } from "../utils/paths.js";
|
|
21
21
|
import { sleep } from "../utils/sleep.js";
|
|
22
22
|
import { formatNoApiKeyFoundMessage, formatNoModelSelectedMessage } from "./auth-guidance.js";
|
|
23
23
|
import { executeBashWithOperations } from "./bash-executor.js";
|
|
24
|
+
import { classifyShellCommand } from "./command-safety.js";
|
|
24
25
|
import { calculateContextTokens, collectEntriesForBranchSummary, compact, estimateContextTokens, estimateProjectedContextTokens, generateBranchSummary, prepareCompaction, shouldCompact, } from "./compaction/index.js";
|
|
25
26
|
import { DEFAULT_THINKING_LEVEL } from "./defaults.js";
|
|
26
27
|
import { exportSessionToHtml } from "./export-html/index.js";
|
|
27
28
|
import { createToolHtmlRenderer } from "./export-html/tool-renderer.js";
|
|
29
|
+
import { buildBlockedBashResult, evaluateCommandGate, isCommandSafetyAssumeYesEnabled, } from "./extensions/builtin/command-safety-gate.js";
|
|
28
30
|
import { ExtensionRunner, wrapRegisteredTools, } from "./extensions/index.js";
|
|
29
31
|
import { emitSessionShutdownEvent } from "./extensions/runner.js";
|
|
32
|
+
import { assertLoadoutAccess, decideLoadoutAccess } from "./loadout-access-policy.js";
|
|
30
33
|
import { expandPromptTemplate } from "./prompt-templates.js";
|
|
34
|
+
import { detectSandboxBackend } from "./sandbox/backend.js";
|
|
31
35
|
import { CURRENT_SESSION_VERSION, getLatestCompactionEntry } from "./session-manager.js";
|
|
32
36
|
import { createSyntheticSourceInfo } from "./source-info.js";
|
|
33
37
|
import { buildSystemPrompt } from "./system-prompt.js";
|
|
@@ -54,6 +58,26 @@ export function parseSkillBlock(text) {
|
|
|
54
58
|
// ============================================================================
|
|
55
59
|
/** Standard thinking levels */
|
|
56
60
|
const THINKING_LEVELS = ["off", "minimal", "low", "medium", "high"];
|
|
61
|
+
function normalizeToolNames(toolNames) {
|
|
62
|
+
return [...new Set(toolNames.map((name) => name.trim()).filter((name) => name !== ""))].sort();
|
|
63
|
+
}
|
|
64
|
+
function toolNameSetsEqual(left, right) {
|
|
65
|
+
const normalizedLeft = normalizeToolNames(left);
|
|
66
|
+
const normalizedRight = normalizeToolNames(right);
|
|
67
|
+
return (normalizedLeft.length === normalizedRight.length &&
|
|
68
|
+
normalizedLeft.every((toolName, index) => toolName === normalizedRight[index]));
|
|
69
|
+
}
|
|
70
|
+
function isSandboxDeniedError(error) {
|
|
71
|
+
return error instanceof Error && error.message.startsWith("sandbox: shell denied");
|
|
72
|
+
}
|
|
73
|
+
function buildSandboxDeniedBashResult(reason) {
|
|
74
|
+
return {
|
|
75
|
+
output: reason,
|
|
76
|
+
exitCode: 1,
|
|
77
|
+
cancelled: false,
|
|
78
|
+
truncated: false,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
57
81
|
// ============================================================================
|
|
58
82
|
// AgentSession Class
|
|
59
83
|
// ============================================================================
|
|
@@ -83,6 +107,8 @@ export class AgentSession {
|
|
|
83
107
|
// Bash execution state
|
|
84
108
|
_bashAbortController = undefined;
|
|
85
109
|
_pendingBashMessages = [];
|
|
110
|
+
_configuredBashSandboxPreflight = undefined;
|
|
111
|
+
_detectedBashSandboxBackend = undefined;
|
|
86
112
|
// Extension system
|
|
87
113
|
_extensionRunner;
|
|
88
114
|
_turnIndex = 0;
|
|
@@ -95,6 +121,7 @@ export class AgentSession {
|
|
|
95
121
|
_allowedToolNames;
|
|
96
122
|
_excludedToolNames;
|
|
97
123
|
_baseToolsOverride;
|
|
124
|
+
_loadoutAccessPolicy;
|
|
98
125
|
_sessionStartEvent;
|
|
99
126
|
_extensionUIContext;
|
|
100
127
|
_extensionMode = "print";
|
|
@@ -127,6 +154,8 @@ export class AgentSession {
|
|
|
127
154
|
this._allowedToolNames = config.allowedToolNames ? new Set(config.allowedToolNames) : undefined;
|
|
128
155
|
this._excludedToolNames = config.excludedToolNames ? new Set(config.excludedToolNames) : undefined;
|
|
129
156
|
this._baseToolsOverride = config.baseToolsOverride;
|
|
157
|
+
this._loadoutAccessPolicy = config.loadoutAccessPolicy;
|
|
158
|
+
this._configuredBashSandboxPreflight = config.bashSandboxPreflight;
|
|
130
159
|
this._sessionStartEvent = config.sessionStartEvent ?? { type: "session_start", reason: "startup" };
|
|
131
160
|
// Always subscribe to agent events for internal handling
|
|
132
161
|
// (session persistence, extensions, auto-compaction, retry logic)
|
|
@@ -141,6 +170,14 @@ export class AgentSession {
|
|
|
141
170
|
get modelRegistry() {
|
|
142
171
|
return this._modelRegistry;
|
|
143
172
|
}
|
|
173
|
+
_getBashSandboxPreflight(override) {
|
|
174
|
+
const preflight = override ?? this._configuredBashSandboxPreflight;
|
|
175
|
+
if (!preflight || preflight.policy.mode === "off" || preflight.backend) {
|
|
176
|
+
return preflight;
|
|
177
|
+
}
|
|
178
|
+
this._detectedBashSandboxBackend ??= detectSandboxBackend();
|
|
179
|
+
return { ...preflight, backend: this._detectedBashSandboxBackend };
|
|
180
|
+
}
|
|
144
181
|
async _getRequiredRequestAuth(model) {
|
|
145
182
|
const result = await this._modelRegistry.getApiKeyAndHeaders(model);
|
|
146
183
|
if (!result.ok) {
|
|
@@ -177,6 +214,9 @@ export class AgentSession {
|
|
|
177
214
|
*/
|
|
178
215
|
_installAgentToolHooks() {
|
|
179
216
|
this.agent.beforeToolCall = async ({ toolCall, args }) => {
|
|
217
|
+
if (this._loadoutAccessPolicy && !this._loadoutAccessPolicy.activeTools.includes(toolCall.name)) {
|
|
218
|
+
throw new Error(`loadout: inactive tool: ${toolCall.name}`);
|
|
219
|
+
}
|
|
180
220
|
const runner = this._extensionRunner;
|
|
181
221
|
if (!runner.hasHandlers("tool_call")) {
|
|
182
222
|
return undefined;
|
|
@@ -480,7 +520,7 @@ export class AgentSession {
|
|
|
480
520
|
catch {
|
|
481
521
|
// Dispose must succeed even if an abort hook throws.
|
|
482
522
|
}
|
|
483
|
-
this._extensionRunner.invalidate("This extension ctx is stale after session replacement or reload. Do not use a captured
|
|
523
|
+
this._extensionRunner.invalidate("This extension ctx is stale after session replacement or reload. Do not use a captured extension API or command ctx after ctx.newSession(), ctx.fork(), ctx.switchSession(), or ctx.reload(). For newSession, fork, and switchSession, move post-replacement work into withSession and use the ctx passed to withSession. For reload, do not use the old ctx after await ctx.reload().");
|
|
484
524
|
this._disconnectFromAgent();
|
|
485
525
|
this._eventListeners = [];
|
|
486
526
|
cleanupSessionResources(this.sessionId);
|
|
@@ -541,14 +581,23 @@ export class AgentSession {
|
|
|
541
581
|
* Changes take effect on the next agent turn.
|
|
542
582
|
*/
|
|
543
583
|
setActiveToolsByName(toolNames) {
|
|
584
|
+
const requestedToolNames = normalizeToolNames(toolNames);
|
|
585
|
+
const lockedToolNames = this._loadoutAccessPolicy?.activeTools;
|
|
586
|
+
if (lockedToolNames && !toolNameSetsEqual(requestedToolNames, lockedToolNames)) {
|
|
587
|
+
throw new Error(`loadout active tools are locked: expected ${lockedToolNames.join(", ") || "(none)"}, received ${requestedToolNames.join(", ") || "(none)"}`);
|
|
588
|
+
}
|
|
589
|
+
const desiredToolNames = lockedToolNames ? [...lockedToolNames] : toolNames;
|
|
544
590
|
const tools = [];
|
|
545
591
|
const validToolNames = [];
|
|
546
|
-
for (const name of
|
|
592
|
+
for (const name of desiredToolNames) {
|
|
547
593
|
const tool = this._toolRegistry.get(name);
|
|
548
594
|
if (tool) {
|
|
549
595
|
tools.push(tool);
|
|
550
596
|
validToolNames.push(name);
|
|
551
597
|
}
|
|
598
|
+
else if (lockedToolNames?.includes(name)) {
|
|
599
|
+
throw new Error(`loadout locked tool unavailable: ${name}`);
|
|
600
|
+
}
|
|
552
601
|
}
|
|
553
602
|
this.agent.state.tools = tools;
|
|
554
603
|
// Rebuild base system prompt with new tool set
|
|
@@ -619,6 +668,107 @@ export class AgentSession {
|
|
|
619
668
|
}
|
|
620
669
|
return Array.from(unique);
|
|
621
670
|
}
|
|
671
|
+
/**
|
|
672
|
+
* Extract the most recent user query text from conversation messages.
|
|
673
|
+
* Returns undefined when no user message exists or content is empty.
|
|
674
|
+
* Handles both string content and multimodal (array) content.
|
|
675
|
+
*/
|
|
676
|
+
_extractCurrentQuery() {
|
|
677
|
+
const messages = this.messages;
|
|
678
|
+
if (messages.length === 0) {
|
|
679
|
+
return undefined;
|
|
680
|
+
}
|
|
681
|
+
// Scan recent messages (last 3) for the most recent user message
|
|
682
|
+
const recent = messages.slice(-3);
|
|
683
|
+
for (let i = recent.length - 1; i >= 0; i--) {
|
|
684
|
+
const msg = recent[i];
|
|
685
|
+
if (!("role" in msg) || msg.role !== "user") {
|
|
686
|
+
continue;
|
|
687
|
+
}
|
|
688
|
+
const content = msg.content;
|
|
689
|
+
if (typeof content === "string") {
|
|
690
|
+
const trimmed = content.trim();
|
|
691
|
+
return trimmed.length > 0 ? trimmed : undefined;
|
|
692
|
+
}
|
|
693
|
+
if (Array.isArray(content)) {
|
|
694
|
+
const textParts = content
|
|
695
|
+
.filter((c) => "type" in c && c.type === "text")
|
|
696
|
+
.map((c) => c.text);
|
|
697
|
+
const joined = textParts.join("\n").trim();
|
|
698
|
+
return joined.length > 0 ? joined : undefined;
|
|
699
|
+
}
|
|
700
|
+
}
|
|
701
|
+
return undefined;
|
|
702
|
+
}
|
|
703
|
+
_getContextBudgetOptions() {
|
|
704
|
+
if (process.env.OMK_CONTEXT_GOVERNOR !== "1") {
|
|
705
|
+
return undefined;
|
|
706
|
+
}
|
|
707
|
+
const contextWindow = this.model?.contextWindow ?? 0;
|
|
708
|
+
// --- maxPromptTokens ---
|
|
709
|
+
// Priority 1: explicit env override (user knows best)
|
|
710
|
+
const envMaxPrompt = parsePositiveIntegerEnv("OMK_CONTEXT_GOVERNOR_MAX_PROMPT_TOKENS");
|
|
711
|
+
let maxPromptTokens;
|
|
712
|
+
let responseReserveTokens;
|
|
713
|
+
if (envMaxPrompt !== undefined) {
|
|
714
|
+
// User override — use as-is for prompt, derive response reserve normally
|
|
715
|
+
maxPromptTokens = envMaxPrompt;
|
|
716
|
+
responseReserveTokens =
|
|
717
|
+
parsePositiveIntegerEnv("OMK_CONTEXT_GOVERNOR_RESPONSE_RESERVE_TOKENS") ??
|
|
718
|
+
this._computeResponseReserve(contextWindow);
|
|
719
|
+
}
|
|
720
|
+
else if (contextWindow > 0) {
|
|
721
|
+
// Dynamic: derive from model contextWindow
|
|
722
|
+
const envPromptRatio = parsePositiveFloatEnv("OMK_CONTEXT_GOVERNOR_PROMPT_RATIO");
|
|
723
|
+
const envResponseRatio = parsePositiveFloatEnv("OMK_CONTEXT_GOVERNOR_RESPONSE_RATIO");
|
|
724
|
+
responseReserveTokens =
|
|
725
|
+
parsePositiveIntegerEnv("OMK_CONTEXT_GOVERNOR_RESPONSE_RESERVE_TOKENS") ??
|
|
726
|
+
this._computeResponseReserve(contextWindow, envResponseRatio);
|
|
727
|
+
const safetyMargin = Math.floor(contextWindow * SAFETY_MARGIN_RATIO);
|
|
728
|
+
if (envPromptRatio !== undefined && envPromptRatio > 0 && envPromptRatio < 1) {
|
|
729
|
+
maxPromptTokens = Math.floor(contextWindow * envPromptRatio);
|
|
730
|
+
}
|
|
731
|
+
else {
|
|
732
|
+
// Default: contextWindow minus reserves and safety margin
|
|
733
|
+
maxPromptTokens = contextWindow - responseReserveTokens - safetyMargin;
|
|
734
|
+
}
|
|
735
|
+
}
|
|
736
|
+
else {
|
|
737
|
+
// No model info — legacy fallback
|
|
738
|
+
maxPromptTokens = LEGACY_MAX_PROMPT_TOKENS;
|
|
739
|
+
responseReserveTokens =
|
|
740
|
+
parsePositiveIntegerEnv("OMK_CONTEXT_GOVERNOR_RESPONSE_RESERVE_TOKENS") ?? LEGACY_RESPONSE_RESERVE_TOKENS;
|
|
741
|
+
}
|
|
742
|
+
// Enforce floor
|
|
743
|
+
if (maxPromptTokens < MIN_PROMPT_TOKENS) {
|
|
744
|
+
maxPromptTokens = MIN_PROMPT_TOKENS;
|
|
745
|
+
}
|
|
746
|
+
// Ensure responseReserve does not exceed maxPromptTokens
|
|
747
|
+
if (responseReserveTokens >= maxPromptTokens) {
|
|
748
|
+
responseReserveTokens = Math.max(Math.floor(maxPromptTokens / 4), LEGACY_RESPONSE_RESERVE_TOKENS);
|
|
749
|
+
}
|
|
750
|
+
return {
|
|
751
|
+
maxPromptTokens,
|
|
752
|
+
responseReserveTokens,
|
|
753
|
+
modelId: this.model?.id ?? "unknown",
|
|
754
|
+
tokenizerMode: parseTokenizerModeEnv(process.env.OMK_CONTEXT_GOVERNOR_TOKENIZER),
|
|
755
|
+
activeSkillNames: parseCommaSeparatedEnv(process.env.OMK_CONTEXT_GOVERNOR_ACTIVE_SKILLS),
|
|
756
|
+
queryContext: this._extractCurrentQuery(),
|
|
757
|
+
};
|
|
758
|
+
}
|
|
759
|
+
/**
|
|
760
|
+
* Compute responseReserveTokens from contextWindow.
|
|
761
|
+
* Prefers the model's own maxTokens when available, otherwise uses a ratio.
|
|
762
|
+
*/
|
|
763
|
+
_computeResponseReserve(contextWindow, overrideRatio) {
|
|
764
|
+
// Prefer model's maxTokens (actual output limit) if available and reasonable
|
|
765
|
+
const modelMaxTokens = this.model?.maxTokens;
|
|
766
|
+
if (modelMaxTokens !== undefined && modelMaxTokens > 0 && modelMaxTokens < contextWindow) {
|
|
767
|
+
return modelMaxTokens;
|
|
768
|
+
}
|
|
769
|
+
const ratio = overrideRatio ?? RESPONSE_RESERVE_RATIO;
|
|
770
|
+
return Math.max(Math.floor(contextWindow * ratio), LEGACY_RESPONSE_RESERVE_TOKENS);
|
|
771
|
+
}
|
|
622
772
|
_rebuildSystemPrompt(toolNames) {
|
|
623
773
|
const validToolNames = toolNames.filter((name) => this._toolRegistry.has(name));
|
|
624
774
|
const toolSnippets = {};
|
|
@@ -647,6 +797,7 @@ export class AgentSession {
|
|
|
647
797
|
selectedTools: validToolNames,
|
|
648
798
|
toolSnippets,
|
|
649
799
|
promptGuidelines,
|
|
800
|
+
contextBudget: this._getContextBudgetOptions(),
|
|
650
801
|
};
|
|
651
802
|
return buildSystemPrompt(this._baseSystemPromptOptions);
|
|
652
803
|
}
|
|
@@ -691,7 +842,7 @@ export class AgentSession {
|
|
|
691
842
|
}
|
|
692
843
|
/**
|
|
693
844
|
* Send a prompt to the agent.
|
|
694
|
-
* - Handles extension commands (registered via
|
|
845
|
+
* - Handles extension commands (registered via omk.registerCommand) immediately, even during streaming
|
|
695
846
|
* - Expands file-based prompt templates by default
|
|
696
847
|
* - During streaming, queues via steer() or followUp() based on streamingBehavior option
|
|
697
848
|
* - Validates model and API key before sending (when not streaming)
|
|
@@ -704,7 +855,7 @@ export class AgentSession {
|
|
|
704
855
|
let messages;
|
|
705
856
|
try {
|
|
706
857
|
// Handle extension commands first (execute immediately, even during streaming)
|
|
707
|
-
// Extension commands manage their own LLM interaction via
|
|
858
|
+
// Extension commands manage their own LLM interaction via omk.sendMessage()
|
|
708
859
|
if (expandPromptTemplates && text.startsWith("/")) {
|
|
709
860
|
const handled = await this._tryExecuteExtensionCommand(text);
|
|
710
861
|
if (handled) {
|
|
@@ -1852,6 +2003,12 @@ export class AgentSession {
|
|
|
1852
2003
|
sourceInfo: createSyntheticSourceInfo(`<sdk:${definition.name}>`, { source: "sdk" }),
|
|
1853
2004
|
})),
|
|
1854
2005
|
].filter((tool) => isAllowedTool(tool.definition.name));
|
|
2006
|
+
if (this._loadoutAccessPolicy) {
|
|
2007
|
+
const shadowedBuiltins = normalizeToolNames(allCustomTools.map((tool) => tool.definition.name).filter((name) => this._baseToolDefinitions.has(name)));
|
|
2008
|
+
if (shadowedBuiltins.length > 0) {
|
|
2009
|
+
throw new Error(`loadout extension tool shadows builtin: ${shadowedBuiltins.join(", ")}`);
|
|
2010
|
+
}
|
|
2011
|
+
}
|
|
1855
2012
|
const definitionRegistry = new Map(Array.from(this._baseToolDefinitions.entries())
|
|
1856
2013
|
.filter(([name]) => isAllowedTool(name))
|
|
1857
2014
|
.map(([name, definition]) => [
|
|
@@ -1893,6 +2050,14 @@ export class AgentSession {
|
|
|
1893
2050
|
toolRegistry.set(tool.name, tool);
|
|
1894
2051
|
}
|
|
1895
2052
|
this._toolRegistry = toolRegistry;
|
|
2053
|
+
if (this._loadoutAccessPolicy) {
|
|
2054
|
+
const missingLockedTools = this._loadoutAccessPolicy.activeTools.filter((toolName) => !isAllowedTool(toolName) || !this._toolRegistry.has(toolName));
|
|
2055
|
+
if (missingLockedTools.length > 0) {
|
|
2056
|
+
throw new Error(`loadout locked tool unavailable: ${missingLockedTools.join(", ")}`);
|
|
2057
|
+
}
|
|
2058
|
+
this.setActiveToolsByName([...this._loadoutAccessPolicy.activeTools]);
|
|
2059
|
+
return;
|
|
2060
|
+
}
|
|
1896
2061
|
const nextActiveToolNames = (options?.activeToolNames ? [...options.activeToolNames] : [...previousActiveToolNames]).filter((name) => isAllowedTool(name));
|
|
1897
2062
|
if (allowedToolNames) {
|
|
1898
2063
|
for (const toolName of this._toolRegistry.keys()) {
|
|
@@ -1919,14 +2084,34 @@ export class AgentSession {
|
|
|
1919
2084
|
const autoResizeImages = this.settingsManager.getImageAutoResize();
|
|
1920
2085
|
const shellCommandPrefix = this.settingsManager.getShellCommandPrefix();
|
|
1921
2086
|
const shellPath = this.settingsManager.getShellPath();
|
|
2087
|
+
const loadoutAccessPolicy = this._loadoutAccessPolicy;
|
|
2088
|
+
const loadoutAccessGuard = loadoutAccessPolicy
|
|
2089
|
+
? (request) => decideLoadoutAccess(loadoutAccessPolicy, request)
|
|
2090
|
+
: undefined;
|
|
2091
|
+
const loadoutReadOptions = loadoutAccessGuard
|
|
2092
|
+
? {
|
|
2093
|
+
canReadPath: (path) => loadoutAccessGuard({ operation: "read", toolName: "read", path }).allowed,
|
|
2094
|
+
}
|
|
2095
|
+
: {};
|
|
2096
|
+
const loadoutWriteOptions = loadoutAccessGuard
|
|
2097
|
+
? {
|
|
2098
|
+
canWritePath: (path) => loadoutAccessGuard({ operation: "write", toolName: "write", path }).allowed,
|
|
2099
|
+
}
|
|
2100
|
+
: {};
|
|
1922
2101
|
const baseToolDefinitions = this._baseToolsOverride
|
|
1923
2102
|
? Object.fromEntries(Object.entries(this._baseToolsOverride).map(([name, tool]) => [
|
|
1924
2103
|
name,
|
|
1925
2104
|
createToolDefinitionFromAgentTool(tool),
|
|
1926
2105
|
]))
|
|
1927
2106
|
: createAllToolDefinitions(this._cwd, {
|
|
1928
|
-
read: { autoResizeImages },
|
|
1929
|
-
bash: {
|
|
2107
|
+
read: { autoResizeImages, ...loadoutReadOptions },
|
|
2108
|
+
bash: {
|
|
2109
|
+
commandPrefix: shellCommandPrefix,
|
|
2110
|
+
shellPath,
|
|
2111
|
+
...(loadoutAccessGuard ? { loadoutAccessGuard } : {}),
|
|
2112
|
+
},
|
|
2113
|
+
edit: loadoutWriteOptions,
|
|
2114
|
+
write: loadoutWriteOptions,
|
|
1930
2115
|
});
|
|
1931
2116
|
this._baseToolDefinitions = new Map(Object.entries(baseToolDefinitions).map(([name, tool]) => [name, tool]));
|
|
1932
2117
|
const extensionsResult = this._resourceLoader.getExtensions();
|
|
@@ -2073,20 +2258,64 @@ export class AgentSession {
|
|
|
2073
2258
|
* @param onChunk Optional streaming callback for output
|
|
2074
2259
|
* @param options.excludeFromContext If true, command output won't be sent to LLM (!! prefix)
|
|
2075
2260
|
* @param options.operations Custom BashOperations for remote execution
|
|
2261
|
+
* @param options.safetyGate When "headless", pre-classify the command and deny confirm/block-tier verdicts without interactive confirmation
|
|
2262
|
+
* @param options.sandboxPolicy Trusted sandbox preflight for local bash execution (never sourced from RPC payloads)
|
|
2076
2263
|
*/
|
|
2077
2264
|
async executeBash(command, onChunk, options) {
|
|
2078
|
-
this._bashAbortController = new AbortController();
|
|
2079
2265
|
// Apply command prefix if configured (e.g., "shopt -s expand_aliases" for alias support)
|
|
2080
2266
|
const prefix = this.settingsManager.getShellCommandPrefix();
|
|
2081
2267
|
const shellPath = this.settingsManager.getShellPath();
|
|
2082
2268
|
const resolvedCommand = prefix ? `${prefix}\n${command}` : command;
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
|
|
2086
|
-
|
|
2269
|
+
if (this._loadoutAccessPolicy) {
|
|
2270
|
+
assertLoadoutAccess((request) => decideLoadoutAccess(this._loadoutAccessPolicy, request), { operation: "execute", toolName: "bash", command: resolvedCommand });
|
|
2271
|
+
}
|
|
2272
|
+
// Non-negotiable safety floor for headless callers (RPC bash): hard-deny
|
|
2273
|
+
// block-tier commands and credential/secret file access before any shell is
|
|
2274
|
+
// spawned. This mirrors the §0.1 freedom safety floor behavior in omakit.
|
|
2275
|
+
if (options?.safetyGate === "headless") {
|
|
2276
|
+
const floorVerdict = classifyShellCommand(command);
|
|
2277
|
+
if (floorVerdict.risk === "block" || floorVerdict.rule.startsWith("secret.")) {
|
|
2278
|
+
throw new Error(`OMK §0.1 safety floor blocked bash: [${floorVerdict.rule}] ${floorVerdict.reason}`);
|
|
2279
|
+
}
|
|
2280
|
+
}
|
|
2281
|
+
// Command-safety parity for non-interactive callers (RPC bash). Interactive
|
|
2282
|
+
// `!`/`!!` bash is gated earlier through the user_bash extension event, which
|
|
2283
|
+
// keeps its prompt-based approval semantics, so it does not pass safetyGate and
|
|
2284
|
+
// is never double-prompted here. confirm/block-tier verdicts deny headlessly;
|
|
2285
|
+
// the EFFECTIVE command (after the shell command prefix) is classified.
|
|
2286
|
+
if (options?.safetyGate === "headless") {
|
|
2287
|
+
const decision = await evaluateCommandGate(resolvedCommand, {
|
|
2288
|
+
hasUI: false,
|
|
2289
|
+
headlessConfirmPolicy: isCommandSafetyAssumeYesEnabled() ? "allow" : "deny",
|
|
2087
2290
|
});
|
|
2088
|
-
|
|
2089
|
-
|
|
2291
|
+
if (decision?.deny) {
|
|
2292
|
+
const blocked = buildBlockedBashResult(decision.reason);
|
|
2293
|
+
this.recordBashResult(command, blocked, options);
|
|
2294
|
+
return blocked;
|
|
2295
|
+
}
|
|
2296
|
+
}
|
|
2297
|
+
this._bashAbortController = new AbortController();
|
|
2298
|
+
try {
|
|
2299
|
+
try {
|
|
2300
|
+
const result = await executeBashWithOperations(resolvedCommand, this.sessionManager.getCwd(), options?.operations ??
|
|
2301
|
+
createLocalBashOperations({
|
|
2302
|
+
shellPath,
|
|
2303
|
+
sandboxPolicy: this._getBashSandboxPreflight(options?.sandboxPolicy),
|
|
2304
|
+
}), {
|
|
2305
|
+
onChunk,
|
|
2306
|
+
signal: this._bashAbortController.signal,
|
|
2307
|
+
});
|
|
2308
|
+
this.recordBashResult(command, result, options);
|
|
2309
|
+
return result;
|
|
2310
|
+
}
|
|
2311
|
+
catch (error) {
|
|
2312
|
+
if (!isSandboxDeniedError(error)) {
|
|
2313
|
+
throw error;
|
|
2314
|
+
}
|
|
2315
|
+
const blocked = buildSandboxDeniedBashResult(error.message);
|
|
2316
|
+
this.recordBashResult(command, blocked, options);
|
|
2317
|
+
return blocked;
|
|
2318
|
+
}
|
|
2090
2319
|
}
|
|
2091
2320
|
finally {
|
|
2092
2321
|
this._bashAbortController = undefined;
|
|
@@ -2548,4 +2777,55 @@ export class AgentSession {
|
|
|
2548
2777
|
return this._extensionRunner;
|
|
2549
2778
|
}
|
|
2550
2779
|
}
|
|
2780
|
+
// ---------------------------------------------------------------------------
|
|
2781
|
+
// Context budget constants
|
|
2782
|
+
// ---------------------------------------------------------------------------
|
|
2783
|
+
/** Fraction of contextWindow reserved for model response generation. */
|
|
2784
|
+
const RESPONSE_RESERVE_RATIO = 0.2;
|
|
2785
|
+
/** Fraction of contextWindow held back as safety margin for token-count imprecision. */
|
|
2786
|
+
const SAFETY_MARGIN_RATIO = 0.1;
|
|
2787
|
+
// Default prompt budget = contextWindow - responseReserve - safetyMargin.
|
|
2788
|
+
// With the defaults above (0.2 + 0.1) this yields ~0.70 of contextWindow, but it
|
|
2789
|
+
// stays correct when responseReserve is overridden by model.maxTokens.
|
|
2790
|
+
/** Absolute floor for maxPromptTokens — below this the budget is meaningless. */
|
|
2791
|
+
const MIN_PROMPT_TOKENS = 4000;
|
|
2792
|
+
/** Legacy defaults when no model contextWindow is known. */
|
|
2793
|
+
const LEGACY_MAX_PROMPT_TOKENS = 60_000;
|
|
2794
|
+
const LEGACY_RESPONSE_RESERVE_TOKENS = 8_192;
|
|
2795
|
+
function parsePositiveIntegerEnv(name) {
|
|
2796
|
+
const raw = process.env[name];
|
|
2797
|
+
if (raw === undefined || raw.trim() === "") {
|
|
2798
|
+
return undefined;
|
|
2799
|
+
}
|
|
2800
|
+
const value = Number.parseInt(raw, 10);
|
|
2801
|
+
return Number.isFinite(value) && value > 0 ? value : undefined;
|
|
2802
|
+
}
|
|
2803
|
+
function parsePositiveFloatEnv(name) {
|
|
2804
|
+
const raw = process.env[name];
|
|
2805
|
+
if (raw === undefined || raw.trim() === "") {
|
|
2806
|
+
return undefined;
|
|
2807
|
+
}
|
|
2808
|
+
const value = Number.parseFloat(raw);
|
|
2809
|
+
return Number.isFinite(value) && value > 0 ? value : undefined;
|
|
2810
|
+
}
|
|
2811
|
+
function parseTokenizerModeEnv(value) {
|
|
2812
|
+
switch (value) {
|
|
2813
|
+
case "fallback":
|
|
2814
|
+
case "openai-js":
|
|
2815
|
+
case "openai-wasm":
|
|
2816
|
+
case "auto":
|
|
2817
|
+
return value;
|
|
2818
|
+
default:
|
|
2819
|
+
return "fallback";
|
|
2820
|
+
}
|
|
2821
|
+
}
|
|
2822
|
+
function parseCommaSeparatedEnv(value) {
|
|
2823
|
+
if (value === undefined || value.trim() === "") {
|
|
2824
|
+
return [];
|
|
2825
|
+
}
|
|
2826
|
+
return Array.from(new Set(value
|
|
2827
|
+
.split(",")
|
|
2828
|
+
.map((item) => item.trim())
|
|
2829
|
+
.filter((item) => item.length > 0)));
|
|
2830
|
+
}
|
|
2551
2831
|
//# sourceMappingURL=agent-session.js.map
|