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
|
@@ -0,0 +1,449 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool facade exposed to the OMK LLM.
|
|
3
|
+
*
|
|
4
|
+
* Design: the agent (LLM) is the planner. It calls these tools; the extension
|
|
5
|
+
* applies the full safety gate (risk → authorize → approve → profile lock →
|
|
6
|
+
* execute → redact → evidence) on every browser action. This keeps Algorithm 2's
|
|
7
|
+
* safety loop intact while matching OMK's tool-call agent model.
|
|
8
|
+
*
|
|
9
|
+
* Tools:
|
|
10
|
+
* aside_observe — R0 read-only browser observation
|
|
11
|
+
* aside_plan_action — propose an action without executing (pure helper)
|
|
12
|
+
* aside_execute_action — gate + execute one BrowserAction
|
|
13
|
+
* aside_verify — check success criteria against current observation
|
|
14
|
+
* aside_take_screenshot — R0, save frame to evidence dir with sha256
|
|
15
|
+
* aside_download_artifact — R1 download, hash file
|
|
16
|
+
* aside_start_task — observe → scripted plan → gate+execute loop
|
|
17
|
+
* aside_close_task — close the Aside MCP process
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
import { StringEnum, Type } from "omk-ai";
|
|
21
|
+
import type { ExtensionAPI, ExtensionContext } from "open-multi-agent-kit";
|
|
22
|
+
import { parseCriterionToAssertion, verifyAssertions } from "./assertions.ts";
|
|
23
|
+
import { hashFile, redactSecrets } from "./evidence.ts";
|
|
24
|
+
import type { AsideMcpClient } from "./mcp-client.ts";
|
|
25
|
+
import type { AsidePolicy } from "./policy.ts";
|
|
26
|
+
import { authorize } from "./risk-authorize.ts";
|
|
27
|
+
import { classifyRisk } from "./risk-classifier.ts";
|
|
28
|
+
import type { BrowserAction, BrowserClient, Evidence, McpCallResult, Observation, RiskLevel } from "./types.ts";
|
|
29
|
+
import { resolveOrigin } from "./url-origin.ts";
|
|
30
|
+
|
|
31
|
+
export interface AsideToolsDeps {
|
|
32
|
+
/** Lazily create (and memoize) the MCP client. */
|
|
33
|
+
getClient: () => AsideMcpClient;
|
|
34
|
+
policy: AsidePolicy;
|
|
35
|
+
evidenceDirectory: string;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/** Thin BrowserClient adapter over AsideMcpClient for the controller. */
|
|
39
|
+
class AsideBrowserClient implements BrowserClient {
|
|
40
|
+
private readonly client: AsideMcpClient;
|
|
41
|
+
|
|
42
|
+
constructor(client: AsideMcpClient) {
|
|
43
|
+
this.client = client;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
async observe(): Promise<Observation> {
|
|
47
|
+
const result = await this.client.callTool("observe", {});
|
|
48
|
+
const text = result.content.find((c) => c.type === "text")?.text ?? "";
|
|
49
|
+
let parsed: { url?: string; title?: string; text?: string } = {};
|
|
50
|
+
try {
|
|
51
|
+
parsed = JSON.parse(text);
|
|
52
|
+
} catch {
|
|
53
|
+
parsed = { text };
|
|
54
|
+
}
|
|
55
|
+
const observation: Observation = {
|
|
56
|
+
url: parsed.url ?? "(unknown)",
|
|
57
|
+
title: parsed.title,
|
|
58
|
+
text: parsed.text ?? text,
|
|
59
|
+
};
|
|
60
|
+
return observation;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
async execute(action: BrowserAction): Promise<{ ok: boolean; raw: McpCallResult; sideEffectKind?: string }> {
|
|
64
|
+
if (!action.asideTool) throw new Error(`action ${action.kind} has no asideTool mapping`);
|
|
65
|
+
try {
|
|
66
|
+
const result = await this.client.callTool(action.asideTool, action.asideArgs ?? {});
|
|
67
|
+
const ok = result.isError !== true;
|
|
68
|
+
return { ok, raw: result, sideEffectKind: ok && isMutatingKind(action.kind) ? action.kind : undefined };
|
|
69
|
+
} catch (error) {
|
|
70
|
+
return { ok: false, raw: { content: [{ type: "text", text: (error as Error).message }] } };
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
async listTools(): Promise<readonly Awaited<ReturnType<BrowserClient["listTools"]>>[number][]> {
|
|
75
|
+
return this.client.listTools();
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
async close(): Promise<void> {
|
|
79
|
+
await this.client.close();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
function isMutatingKind(kind: string): boolean {
|
|
84
|
+
const risk = classifyRisk({ kind, description: "" });
|
|
85
|
+
return risk === "R2" || risk === "R3";
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/** Map a facade action kind to an Aside MCP tool name + args. */
|
|
89
|
+
function mapToAsideTool(action: BrowserAction): BrowserAction {
|
|
90
|
+
const table: Readonly<Record<string, string>> = {
|
|
91
|
+
open_page: "navigate",
|
|
92
|
+
navigate: "navigate",
|
|
93
|
+
read_text: "read_text",
|
|
94
|
+
screenshot: "screenshot",
|
|
95
|
+
take_screenshot: "screenshot",
|
|
96
|
+
click_locator: "click",
|
|
97
|
+
click: "click",
|
|
98
|
+
fill_form: "fill",
|
|
99
|
+
type: "type",
|
|
100
|
+
submit: "submit",
|
|
101
|
+
download: "download",
|
|
102
|
+
};
|
|
103
|
+
const asideTool = action.asideTool ?? table[action.kind];
|
|
104
|
+
return { ...action, asideTool, asideArgs: action.asideArgs ?? buildArgs(action) };
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
function buildArgs(action: BrowserAction): Record<string, unknown> {
|
|
108
|
+
const args: Record<string, unknown> = {};
|
|
109
|
+
if (action.url) args.url = action.url;
|
|
110
|
+
if (action.description) args.description = action.description;
|
|
111
|
+
return args;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/** Ask the user to confirm an R2/approved action. In non-UI modes, deny. */
|
|
115
|
+
async function humanApprove(
|
|
116
|
+
ctx: ExtensionContext,
|
|
117
|
+
action: BrowserAction,
|
|
118
|
+
risk: RiskLevel,
|
|
119
|
+
origin?: string,
|
|
120
|
+
): Promise<boolean> {
|
|
121
|
+
if (!ctx.hasUI) return false;
|
|
122
|
+
const detail = `${risk} action on ${origin ?? "(unknown origin)"}\nkind: ${action.kind}\n${action.description}`;
|
|
123
|
+
return ctx.ui.confirm("Aside action approval", detail);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/** Register the Aside tool facade against the given OMK API + deps. */
|
|
127
|
+
export function registerAsideTools(omk: ExtensionAPI, deps: AsideToolsDeps): void {
|
|
128
|
+
const { policy, evidenceDirectory } = deps;
|
|
129
|
+
const browserClient = () => new AsideBrowserClient(deps.getClient());
|
|
130
|
+
|
|
131
|
+
const promptGuidelines = [
|
|
132
|
+
"Use aside_observe before aside_execute_action so actions target a known page state.",
|
|
133
|
+
"Never run aside_execute_action for payment, account deletion, credential export, or security setting changes — they are denied by policy.",
|
|
134
|
+
"aside_execute_action may prompt the user for approval on submit/send/publish actions; that is intended.",
|
|
135
|
+
"Only call aside_execute_action against origins listed in the Aside policy allowedOrigins.",
|
|
136
|
+
];
|
|
137
|
+
|
|
138
|
+
// aside_observe
|
|
139
|
+
omk.registerTool({
|
|
140
|
+
name: "aside_observe",
|
|
141
|
+
label: "Aside Observe",
|
|
142
|
+
description: "Read-only observation of the current Aside browser page (URL, title, text).",
|
|
143
|
+
promptSnippet: "Read the current Aside browser page state",
|
|
144
|
+
promptGuidelines,
|
|
145
|
+
parameters: Type.Object({}),
|
|
146
|
+
async execute(_id, _params, _signal) {
|
|
147
|
+
const client = browserClient();
|
|
148
|
+
const obs = await client.observe();
|
|
149
|
+
const safe = redactSecrets(obs);
|
|
150
|
+
return { content: [{ type: "text", text: JSON.stringify(safe) }], details: { observation: safe } };
|
|
151
|
+
},
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
// aside_execute_action
|
|
155
|
+
omk.registerTool({
|
|
156
|
+
name: "aside_execute_action",
|
|
157
|
+
label: "Aside Execute Action",
|
|
158
|
+
description:
|
|
159
|
+
"Gate and execute one browser action through Aside (risk classification, origin check, human approval for mutations, secret redaction).",
|
|
160
|
+
promptSnippet: "Run one gated browser action via Aside",
|
|
161
|
+
parameters: Type.Object({
|
|
162
|
+
kind: StringEnum([
|
|
163
|
+
"open_page",
|
|
164
|
+
"navigate",
|
|
165
|
+
"read_text",
|
|
166
|
+
"click_locator",
|
|
167
|
+
"click",
|
|
168
|
+
"fill_form",
|
|
169
|
+
"type",
|
|
170
|
+
"submit",
|
|
171
|
+
"send_message",
|
|
172
|
+
"download",
|
|
173
|
+
"screenshot",
|
|
174
|
+
] as const),
|
|
175
|
+
url: Type.Optional(Type.String({ description: "Target URL for navigation actions" })),
|
|
176
|
+
description: Type.String({ description: "Human-readable description of what the action does" }),
|
|
177
|
+
}),
|
|
178
|
+
async execute(_id, params, _signal, _onUpdate, ctx) {
|
|
179
|
+
const action: BrowserAction = mapToAsideTool({
|
|
180
|
+
kind: params.kind,
|
|
181
|
+
url: params.url,
|
|
182
|
+
description: params.description,
|
|
183
|
+
});
|
|
184
|
+
const client = browserClient();
|
|
185
|
+
const obs = await client.observe();
|
|
186
|
+
const targetOrigin = resolveOrigin(action.url ?? obs.url);
|
|
187
|
+
const risk = classifyRisk(action);
|
|
188
|
+
const decision = authorize({ ...action, url: action.url ?? obs.url }, risk, {
|
|
189
|
+
deniedActions: policy.deniedActions,
|
|
190
|
+
privilegedR3Actions: policy.privilegedR3Actions,
|
|
191
|
+
allowedOrigins: policy.allowedOrigins,
|
|
192
|
+
allowReadAnyOrigin: policy.allowReadAnyOrigin,
|
|
193
|
+
});
|
|
194
|
+
if (decision.decision === "deny") {
|
|
195
|
+
return blockedText(`denied: ${decision.reason}`);
|
|
196
|
+
}
|
|
197
|
+
if (decision.decision === "approve") {
|
|
198
|
+
const ok = await humanApprove(ctx, action, risk, targetOrigin);
|
|
199
|
+
if (!ok) return blockedText("denied: human approval denied");
|
|
200
|
+
}
|
|
201
|
+
const result = await client.execute(action);
|
|
202
|
+
const evidence = extractEvidence(result.raw, action.kind);
|
|
203
|
+
const safeEvidence = redactSecrets(evidence);
|
|
204
|
+
return {
|
|
205
|
+
content: [
|
|
206
|
+
{
|
|
207
|
+
type: "text",
|
|
208
|
+
text: JSON.stringify({ ok: result.ok, risk, origin: targetOrigin, evidence: safeEvidence }),
|
|
209
|
+
},
|
|
210
|
+
],
|
|
211
|
+
details: { ok: result.ok, risk, evidence: safeEvidence, sideEffect: result.sideEffectKind },
|
|
212
|
+
};
|
|
213
|
+
},
|
|
214
|
+
});
|
|
215
|
+
|
|
216
|
+
// aside_verify
|
|
217
|
+
omk.registerTool({
|
|
218
|
+
name: "aside_verify",
|
|
219
|
+
label: "Aside Verify",
|
|
220
|
+
description:
|
|
221
|
+
"Check typed success criteria against the current observation. Low-confidence token overlap is inconclusive by default.",
|
|
222
|
+
promptSnippet: "Verify typed success criteria against current page",
|
|
223
|
+
parameters: Type.Object({
|
|
224
|
+
criteria: Type.Array(Type.Object({ id: Type.String(), description: Type.String() })),
|
|
225
|
+
}),
|
|
226
|
+
async execute(_id, params) {
|
|
227
|
+
const client = browserClient();
|
|
228
|
+
const obs = await client.observe();
|
|
229
|
+
const assertions = params.criteria.map((criterion) => parseCriterionToAssertion(criterion));
|
|
230
|
+
const verification = verifyAssertions(assertions, obs);
|
|
231
|
+
const satisfied = verification.assertions
|
|
232
|
+
.filter((result) => result.status === "pass")
|
|
233
|
+
.map((result) => result.assertion.id);
|
|
234
|
+
return {
|
|
235
|
+
content: [
|
|
236
|
+
{
|
|
237
|
+
type: "text",
|
|
238
|
+
text: JSON.stringify({
|
|
239
|
+
status: verification.status,
|
|
240
|
+
confidence: verification.confidence,
|
|
241
|
+
satisfied,
|
|
242
|
+
url: obs.url,
|
|
243
|
+
}),
|
|
244
|
+
},
|
|
245
|
+
],
|
|
246
|
+
details: { verification, satisfied },
|
|
247
|
+
};
|
|
248
|
+
},
|
|
249
|
+
});
|
|
250
|
+
|
|
251
|
+
// aside_take_screenshot
|
|
252
|
+
omk.registerTool({
|
|
253
|
+
name: "aside_take_screenshot",
|
|
254
|
+
label: "Aside Screenshot",
|
|
255
|
+
description: "Capture a screenshot of the current page, save it to the evidence directory with a sha256 hash.",
|
|
256
|
+
promptSnippet: "Capture a screenshot of the current page",
|
|
257
|
+
parameters: Type.Object({}),
|
|
258
|
+
async execute() {
|
|
259
|
+
const client = browserClient();
|
|
260
|
+
const action = mapToAsideTool({ kind: "screenshot", description: "screenshot" });
|
|
261
|
+
const result = await client.execute(action);
|
|
262
|
+
const path = findFilePath(result.raw);
|
|
263
|
+
let sha: string | undefined;
|
|
264
|
+
if (path) {
|
|
265
|
+
try {
|
|
266
|
+
sha = await hashFile(path);
|
|
267
|
+
} catch {
|
|
268
|
+
// hash best-effort
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
const evidence: Evidence = { type: "screenshot", path: path ?? evidenceDirectory, sha256: sha };
|
|
272
|
+
return { content: [{ type: "text", text: JSON.stringify(evidence) }], details: { evidence } };
|
|
273
|
+
},
|
|
274
|
+
});
|
|
275
|
+
|
|
276
|
+
// aside_download_artifact
|
|
277
|
+
omk.registerTool({
|
|
278
|
+
name: "aside_download_artifact",
|
|
279
|
+
label: "Aside Download",
|
|
280
|
+
description: "Download a file via Aside (gated by origin policy) and hash it for evidence integrity.",
|
|
281
|
+
promptSnippet: "Download a file via Aside and hash it",
|
|
282
|
+
parameters: Type.Object({
|
|
283
|
+
url: Type.String(),
|
|
284
|
+
description: Type.String(),
|
|
285
|
+
}),
|
|
286
|
+
async execute(_id, params, _signal, _onUpdate, ctx) {
|
|
287
|
+
const action = mapToAsideTool({ kind: "download", url: params.url, description: params.description });
|
|
288
|
+
const client = browserClient();
|
|
289
|
+
const obs = await client.observe();
|
|
290
|
+
const risk = classifyRisk(action);
|
|
291
|
+
const decision = authorize({ ...action, url: action.url ?? obs.url }, risk, {
|
|
292
|
+
deniedActions: policy.deniedActions,
|
|
293
|
+
privilegedR3Actions: policy.privilegedR3Actions,
|
|
294
|
+
allowedOrigins: policy.allowedOrigins,
|
|
295
|
+
allowReadAnyOrigin: policy.allowReadAnyOrigin,
|
|
296
|
+
});
|
|
297
|
+
if (decision.decision === "deny") return blockedText(`denied: ${decision.reason}`);
|
|
298
|
+
if (decision.decision === "approve") {
|
|
299
|
+
const ok = await humanApprove(ctx, action, risk, resolveOrigin(params.url));
|
|
300
|
+
if (!ok) return blockedText("denied: human approval denied");
|
|
301
|
+
}
|
|
302
|
+
const result = await client.execute(action);
|
|
303
|
+
const path = findFilePath(result.raw);
|
|
304
|
+
const sha = path ? await hashFile(path).catch(() => undefined) : undefined;
|
|
305
|
+
return {
|
|
306
|
+
content: [{ type: "text", text: JSON.stringify({ ok: result.ok, path, sha256: sha }) }],
|
|
307
|
+
details: { ok: result.ok, path, sha256: sha },
|
|
308
|
+
};
|
|
309
|
+
},
|
|
310
|
+
});
|
|
311
|
+
|
|
312
|
+
// aside_plan_action (pure helper — no execution)
|
|
313
|
+
omk.registerTool({
|
|
314
|
+
name: "aside_plan_action",
|
|
315
|
+
label: "Aside Plan Action",
|
|
316
|
+
description:
|
|
317
|
+
"Propose a gated BrowserAction (with its risk band and authorization decision) WITHOUT executing. Use to preview before aside_execute_action.",
|
|
318
|
+
promptSnippet: "Preview a gated action and its risk/authorization",
|
|
319
|
+
parameters: Type.Object({
|
|
320
|
+
kind: StringEnum([
|
|
321
|
+
"open_page",
|
|
322
|
+
"click_locator",
|
|
323
|
+
"fill_form",
|
|
324
|
+
"submit",
|
|
325
|
+
"send_message",
|
|
326
|
+
"download",
|
|
327
|
+
"screenshot",
|
|
328
|
+
] as const),
|
|
329
|
+
url: Type.Optional(Type.String()),
|
|
330
|
+
description: Type.String(),
|
|
331
|
+
}),
|
|
332
|
+
async execute(_id, params) {
|
|
333
|
+
const action = mapToAsideTool({ kind: params.kind, url: params.url, description: params.description });
|
|
334
|
+
const risk = classifyRisk(action);
|
|
335
|
+
const decision = authorize(action, risk, {
|
|
336
|
+
deniedActions: policy.deniedActions,
|
|
337
|
+
privilegedR3Actions: policy.privilegedR3Actions,
|
|
338
|
+
allowedOrigins: policy.allowedOrigins,
|
|
339
|
+
allowReadAnyOrigin: policy.allowReadAnyOrigin,
|
|
340
|
+
});
|
|
341
|
+
return {
|
|
342
|
+
content: [{ type: "text", text: JSON.stringify({ risk, decision, mappedTool: action.asideTool }) }],
|
|
343
|
+
details: { risk, decision },
|
|
344
|
+
};
|
|
345
|
+
},
|
|
346
|
+
});
|
|
347
|
+
|
|
348
|
+
// aside_start_task — observe → scripted plan → gated execute loop
|
|
349
|
+
omk.registerTool({
|
|
350
|
+
name: "aside_start_task",
|
|
351
|
+
label: "Aside Start Task",
|
|
352
|
+
description:
|
|
353
|
+
"Run observe → [scripted plan] → gate+execute for each step against the Aside policy. Pass an explicit ordered plan; each step is risk-classified, origin-checked, and approval-gated.",
|
|
354
|
+
promptSnippet: "Run a gated multi-step Aside task from an explicit plan",
|
|
355
|
+
parameters: Type.Object({
|
|
356
|
+
goal: Type.String(),
|
|
357
|
+
steps: Type.Array(
|
|
358
|
+
Type.Object({
|
|
359
|
+
kind: StringEnum([
|
|
360
|
+
"open_page",
|
|
361
|
+
"click_locator",
|
|
362
|
+
"fill_form",
|
|
363
|
+
"submit",
|
|
364
|
+
"send_message",
|
|
365
|
+
"download",
|
|
366
|
+
"screenshot",
|
|
367
|
+
"read_text",
|
|
368
|
+
] as const),
|
|
369
|
+
url: Type.Optional(Type.String()),
|
|
370
|
+
description: Type.String(),
|
|
371
|
+
}),
|
|
372
|
+
),
|
|
373
|
+
}),
|
|
374
|
+
async execute(_id, params, _signal, _onUpdate, ctx) {
|
|
375
|
+
const client = browserClient();
|
|
376
|
+
const results: Array<Record<string, unknown>> = [];
|
|
377
|
+
for (const step of params.steps) {
|
|
378
|
+
const action = mapToAsideTool({ kind: step.kind, url: step.url, description: step.description });
|
|
379
|
+
const obs = await client.observe();
|
|
380
|
+
const risk = classifyRisk(action);
|
|
381
|
+
const decision = authorize({ ...action, url: action.url ?? obs.url }, risk, {
|
|
382
|
+
deniedActions: policy.deniedActions,
|
|
383
|
+
privilegedR3Actions: policy.privilegedR3Actions,
|
|
384
|
+
allowedOrigins: policy.allowedOrigins,
|
|
385
|
+
allowReadAnyOrigin: policy.allowReadAnyOrigin,
|
|
386
|
+
});
|
|
387
|
+
if (decision.decision === "deny") {
|
|
388
|
+
results.push({ kind: action.kind, denied: decision.reason });
|
|
389
|
+
break;
|
|
390
|
+
}
|
|
391
|
+
if (decision.decision === "approve") {
|
|
392
|
+
const ok = await humanApprove(ctx, action, risk, resolveOrigin(action.url ?? obs.url));
|
|
393
|
+
if (!ok) {
|
|
394
|
+
results.push({ kind: action.kind, denied: "human approval denied" });
|
|
395
|
+
break;
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
const result = await client.execute(action);
|
|
399
|
+
results.push({ kind: action.kind, ok: result.ok, sideEffect: result.sideEffectKind });
|
|
400
|
+
}
|
|
401
|
+
return {
|
|
402
|
+
content: [{ type: "text", text: JSON.stringify({ goal: params.goal, results }) }],
|
|
403
|
+
details: { results },
|
|
404
|
+
};
|
|
405
|
+
},
|
|
406
|
+
});
|
|
407
|
+
|
|
408
|
+
// aside_close_task
|
|
409
|
+
omk.registerTool({
|
|
410
|
+
name: "aside_close_task",
|
|
411
|
+
label: "Aside Close",
|
|
412
|
+
description: "Close the Aside MCP process (graceful). Call when the browser task is finished.",
|
|
413
|
+
promptSnippet: "Close the Aside MCP process",
|
|
414
|
+
parameters: Type.Object({}),
|
|
415
|
+
async execute() {
|
|
416
|
+
await deps.getClient().close();
|
|
417
|
+
return { content: [{ type: "text", text: "aside mcp closed" }], details: { closed: true } };
|
|
418
|
+
},
|
|
419
|
+
});
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
// ---- helpers --------------------------------------------------------------
|
|
423
|
+
|
|
424
|
+
function blockedText(reason: string): {
|
|
425
|
+
content: Array<{ type: "text"; text: string }>;
|
|
426
|
+
details: { blocked: boolean; reason: string };
|
|
427
|
+
} {
|
|
428
|
+
return { content: [{ type: "text", text: reason }], details: { blocked: true, reason } };
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
function extractEvidence(raw: McpCallResult, kind: string): Evidence[] {
|
|
432
|
+
const text = raw.content.find((c) => c.type === "text")?.text;
|
|
433
|
+
const evidence: Evidence[] = [];
|
|
434
|
+
if (text) evidence.push({ type: "dom_text", value: text.slice(0, 4000), source: kind });
|
|
435
|
+
const path = findFilePath(raw);
|
|
436
|
+
if (path) evidence.push({ type: "file", path });
|
|
437
|
+
return evidence;
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
function findFilePath(raw: McpCallResult): string | undefined {
|
|
441
|
+
const text = raw.content.find((c) => c.type === "text")?.text;
|
|
442
|
+
if (!text) return undefined;
|
|
443
|
+
try {
|
|
444
|
+
const parsed = JSON.parse(text) as { path?: string; file?: string; downloadedTo?: string };
|
|
445
|
+
return parsed.path ?? parsed.file ?? parsed.downloadedTo;
|
|
446
|
+
} catch {
|
|
447
|
+
return undefined;
|
|
448
|
+
}
|
|
449
|
+
}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared types for the OMK ↔ Aside computer-use bridge.
|
|
3
|
+
*
|
|
4
|
+
* Aside is a Chromium-based browser agent that exposes a CLI, an MCP server
|
|
5
|
+
* (`aside mcp`), and a deterministic REPL (`aside repl`). This extension does
|
|
6
|
+
* NOT speak raw CDP; it talks to `aside mcp` over JSON-RPC stdio and gates every
|
|
7
|
+
* browser action through an OMK-owned policy, risk classifier, and approval gate.
|
|
8
|
+
*
|
|
9
|
+
* Erasable TypeScript only (no enum / namespace / parameter properties).
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/** Risk band for a browser action. */
|
|
13
|
+
export type RiskLevel = "R0" | "R1" | "R2" | "R3";
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* R0 — read-only observation (navigate, read text, screenshot, DOM inspection).
|
|
17
|
+
* R1 — reversible local interaction (open tab, type a draft, change a filter).
|
|
18
|
+
* R2 — external mutation (submit, send, publish, create issue, change permission).
|
|
19
|
+
* R3 — critical mutation (payment, account deletion, security setting, credential linking).
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
/** Aside permission mode (Aside's own model; OMK applies a parallel policy). */
|
|
23
|
+
export type AsideMode = "readonly" | "guard" | "full" | "yolo";
|
|
24
|
+
|
|
25
|
+
/** High-level browser action the controller reasons about. */
|
|
26
|
+
export interface BrowserAction {
|
|
27
|
+
/** Facade verb, e.g. open_page, read_text, click_locator, fill_form, submit. */
|
|
28
|
+
readonly kind: string;
|
|
29
|
+
/** Target URL if known; may be empty for in-page actions. */
|
|
30
|
+
readonly url?: string;
|
|
31
|
+
/** Free-text description for audit/approval prompts. */
|
|
32
|
+
readonly description: string;
|
|
33
|
+
/** Underlying MCP tool name to delegate to (resolved by the adapter). */
|
|
34
|
+
readonly asideTool?: string;
|
|
35
|
+
/** Arguments to pass to the underlying MCP tool. */
|
|
36
|
+
readonly asideArgs?: Readonly<Record<string, unknown>>;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/** Selection confidence emitted by deterministic action-candidate scoring. */
|
|
40
|
+
export type ActionScoringConfidence = "selected" | "inspection_required";
|
|
41
|
+
|
|
42
|
+
/** Planner-proposed browser action plus bounded evidence/risk scoring inputs. */
|
|
43
|
+
export interface PlannedActionCandidate {
|
|
44
|
+
readonly action: BrowserAction;
|
|
45
|
+
readonly risk: RiskLevel;
|
|
46
|
+
readonly goalProgress: number;
|
|
47
|
+
readonly observationSupport: number;
|
|
48
|
+
readonly selectorCertainty: number;
|
|
49
|
+
readonly policyFit: number;
|
|
50
|
+
readonly reversibility: number;
|
|
51
|
+
readonly toolReliability: number;
|
|
52
|
+
readonly evidenceGain: number;
|
|
53
|
+
readonly ambiguityPenalty?: number;
|
|
54
|
+
readonly repeatPenalty?: number;
|
|
55
|
+
readonly riskPenalty?: number;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/** An observation snapshot returned by Aside; ALWAYS untrusted web content. */
|
|
59
|
+
export interface Observation {
|
|
60
|
+
readonly url: string;
|
|
61
|
+
readonly title?: string;
|
|
62
|
+
readonly text?: string;
|
|
63
|
+
readonly dom?: ReadonlyArray<{ selector: string; value: string }>;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/** A single piece of verifiable evidence for completion. */
|
|
67
|
+
export interface Evidence {
|
|
68
|
+
readonly type: "dom_text" | "screenshot" | "url" | "file" | "console" | "log";
|
|
69
|
+
readonly value?: string;
|
|
70
|
+
readonly path?: string;
|
|
71
|
+
readonly sha256?: string;
|
|
72
|
+
readonly source?: string;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/** A success predicate from the user goal; completion is evidence-gated. */
|
|
76
|
+
export interface SuccessCriterion {
|
|
77
|
+
readonly id: string;
|
|
78
|
+
readonly description: string;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/** Deterministic assertion categories derived from success criteria. */
|
|
82
|
+
export type AssertionKind =
|
|
83
|
+
| "element_value"
|
|
84
|
+
| "element_visible"
|
|
85
|
+
| "url"
|
|
86
|
+
| "title"
|
|
87
|
+
| "text"
|
|
88
|
+
| "negative_text_absent"
|
|
89
|
+
| "token_overlap";
|
|
90
|
+
|
|
91
|
+
/** A typed, verifiable success assertion. */
|
|
92
|
+
export interface SuccessAssertion {
|
|
93
|
+
readonly id: string;
|
|
94
|
+
readonly kind: AssertionKind;
|
|
95
|
+
readonly description: string;
|
|
96
|
+
readonly required: boolean;
|
|
97
|
+
readonly confidence: number;
|
|
98
|
+
readonly target?: string;
|
|
99
|
+
readonly expected?: string;
|
|
100
|
+
readonly tokens?: readonly string[];
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/** Verification status for assertions and assertion batches. */
|
|
104
|
+
export type AssertionVerificationStatus = "pass" | "fail" | "inconclusive";
|
|
105
|
+
|
|
106
|
+
/** Verification result for one assertion. */
|
|
107
|
+
export interface AssertionVerification {
|
|
108
|
+
readonly assertion: SuccessAssertion;
|
|
109
|
+
readonly status: AssertionVerificationStatus;
|
|
110
|
+
readonly confidence: number;
|
|
111
|
+
readonly reason: string;
|
|
112
|
+
readonly matchedValue?: string;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/** Verification result for a batch of assertions. */
|
|
116
|
+
export interface AssertionVerificationSummary {
|
|
117
|
+
readonly status: AssertionVerificationStatus;
|
|
118
|
+
readonly confidence: number;
|
|
119
|
+
readonly assertions: readonly AssertionVerification[];
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/** Stable summary of an element observed in Aside output. */
|
|
123
|
+
export interface ElementSummary {
|
|
124
|
+
readonly selector: string;
|
|
125
|
+
readonly value: string;
|
|
126
|
+
readonly fingerprint: string;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/** Deterministic quality signals for an observation snapshot. */
|
|
130
|
+
export interface ObservationSnapshotQuality {
|
|
131
|
+
readonly parse: number;
|
|
132
|
+
readonly freshness: number;
|
|
133
|
+
readonly elementCoverage: number;
|
|
134
|
+
readonly evidenceCoverage: number;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/** Deterministic snapshot of an Aside observation. */
|
|
138
|
+
export interface ObservationSnapshot {
|
|
139
|
+
readonly id: string;
|
|
140
|
+
readonly fingerprint: string;
|
|
141
|
+
readonly url: string;
|
|
142
|
+
readonly title?: string;
|
|
143
|
+
readonly textDigest: string;
|
|
144
|
+
readonly textLength: number;
|
|
145
|
+
readonly elements: readonly ElementSummary[];
|
|
146
|
+
readonly quality: ObservationSnapshotQuality;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/** External side effect an action may have produced. */
|
|
150
|
+
export interface SideEffect {
|
|
151
|
+
readonly kind: string;
|
|
152
|
+
readonly target: string;
|
|
153
|
+
readonly description: string;
|
|
154
|
+
readonly confirmed: boolean;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/** Authorization verdict for one action. */
|
|
158
|
+
export type AuthorizationDecision = "allow" | "approve" | "deny";
|
|
159
|
+
|
|
160
|
+
export interface Authorization {
|
|
161
|
+
readonly decision: AuthorizationDecision;
|
|
162
|
+
readonly reason: string;
|
|
163
|
+
readonly risk: RiskLevel;
|
|
164
|
+
readonly targetOrigin?: string;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/** Final task result. */
|
|
168
|
+
export type TaskStatus = "completed" | "blocked" | "failed" | "inspection_required" | "denied" | "max_steps_exceeded";
|
|
169
|
+
|
|
170
|
+
export interface TaskResult {
|
|
171
|
+
readonly status: TaskStatus;
|
|
172
|
+
readonly sessionId?: string;
|
|
173
|
+
readonly finalUrl?: string;
|
|
174
|
+
readonly summary: string;
|
|
175
|
+
readonly evidence: readonly Evidence[];
|
|
176
|
+
readonly sideEffects: readonly SideEffect[];
|
|
177
|
+
readonly uncertainties: readonly string[];
|
|
178
|
+
readonly stepsTaken: number;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/** MCP tool descriptor as returned by `tools/list`. */
|
|
182
|
+
export interface McpTool {
|
|
183
|
+
readonly name: string;
|
|
184
|
+
readonly description?: string;
|
|
185
|
+
readonly inputSchema: Readonly<Record<string, unknown>>;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/** MCP tool call result envelope. */
|
|
189
|
+
export interface McpCallResult {
|
|
190
|
+
readonly content: ReadonlyArray<{ type: string; text?: string; data?: string; mimeType?: string }>;
|
|
191
|
+
readonly isError?: boolean;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
/** Observer port injected into the controller (mockable for tests). */
|
|
195
|
+
export interface BrowserClient {
|
|
196
|
+
observe(): Promise<Observation>;
|
|
197
|
+
execute(action: BrowserAction): Promise<{ ok: boolean; raw: McpCallResult; sideEffectKind?: string }>;
|
|
198
|
+
listTools(): Promise<readonly McpTool[]>;
|
|
199
|
+
close(): Promise<void>;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/** Approval port injected into the controller (UI in prod, stub in tests). */
|
|
203
|
+
export type Approver = (action: BrowserAction, risk: RiskLevel, origin?: string) => Promise<boolean>;
|
|
204
|
+
|
|
205
|
+
/** Planner port: given goal + latest observation, choose the next action or signal done. */
|
|
206
|
+
export interface Planner {
|
|
207
|
+
nextAction(
|
|
208
|
+
goal: string,
|
|
209
|
+
observation: Observation,
|
|
210
|
+
evidence: readonly Evidence[],
|
|
211
|
+
): Promise<{
|
|
212
|
+
readonly action?: BrowserAction;
|
|
213
|
+
readonly candidates?: readonly PlannedActionCandidate[];
|
|
214
|
+
readonly done?: boolean;
|
|
215
|
+
readonly note?: string;
|
|
216
|
+
}>;
|
|
217
|
+
}
|