open-multi-agent-kit 0.80.7 → 0.90.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -27
- package/README.md +81 -38
- package/dist/agents/jailbreak/index.d.ts +7 -0
- package/dist/agents/jailbreak/index.d.ts.map +1 -0
- package/dist/agents/jailbreak/index.js +7 -0
- package/dist/agents/jailbreak/index.js.map +1 -0
- package/dist/agents/jailbreak/subagent-f.d.ts +44 -0
- package/dist/agents/jailbreak/subagent-f.d.ts.map +1 -0
- package/dist/agents/jailbreak/subagent-f.js +60 -0
- package/dist/agents/jailbreak/subagent-f.js.map +1 -0
- package/dist/bun/register-bedrock.d.ts.map +1 -1
- package/dist/bun/register-bedrock.js +2 -2
- package/dist/bun/register-bedrock.js.map +1 -1
- package/dist/ci/verify-reporter.d.ts +22 -0
- package/dist/ci/verify-reporter.d.ts.map +1 -0
- package/dist/ci/verify-reporter.js +50 -0
- package/dist/ci/verify-reporter.js.map +1 -0
- package/dist/cli/args.d.ts +4 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +8 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/config-selector.d.ts.map +1 -1
- package/dist/cli/config-selector.js +1 -1
- package/dist/cli/config-selector.js.map +1 -1
- package/dist/cli/file-processor.d.ts +1 -1
- package/dist/cli/file-processor.d.ts.map +1 -1
- package/dist/cli/file-processor.js.map +1 -1
- package/dist/cli/initial-message.d.ts +1 -1
- package/dist/cli/initial-message.d.ts.map +1 -1
- package/dist/cli/initial-message.js.map +1 -1
- package/dist/cli/jailbreak-args.d.ts +26 -0
- package/dist/cli/jailbreak-args.d.ts.map +1 -0
- package/dist/cli/jailbreak-args.js +86 -0
- package/dist/cli/jailbreak-args.js.map +1 -0
- package/dist/cli/list-models.d.ts.map +1 -1
- package/dist/cli/list-models.js +1 -1
- package/dist/cli/list-models.js.map +1 -1
- package/dist/cli/session-picker.d.ts.map +1 -1
- package/dist/cli/session-picker.js +1 -1
- package/dist/cli/session-picker.js.map +1 -1
- package/dist/commands/doctor-provider.d.ts +19 -0
- package/dist/commands/doctor-provider.d.ts.map +1 -0
- package/dist/commands/doctor-provider.js +123 -0
- package/dist/commands/doctor-provider.js.map +1 -0
- package/dist/commands/jailbreak.d.ts +49 -0
- package/dist/commands/jailbreak.d.ts.map +1 -0
- package/dist/commands/jailbreak.js +201 -0
- package/dist/commands/jailbreak.js.map +1 -0
- package/dist/config.d.ts +9 -5
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +33 -52
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session-services.d.ts +2 -2
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session.d.ts +16 -27
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +185 -89
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-storage.d.ts +3 -6
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +7 -7
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/automation/index.d.ts +359 -0
- package/dist/core/automation/index.d.ts.map +1 -0
- package/dist/core/automation/index.js +665 -0
- package/dist/core/automation/index.js.map +1 -0
- package/dist/core/bash-executor.d.ts +1 -0
- package/dist/core/bash-executor.d.ts.map +1 -1
- package/dist/core/bash-executor.js +1 -0
- package/dist/core/bash-executor.js.map +1 -1
- package/dist/core/browser-use.d.ts +53 -0
- package/dist/core/browser-use.d.ts.map +1 -0
- package/dist/core/browser-use.js +108 -0
- package/dist/core/browser-use.js.map +1 -0
- package/dist/core/command-safety-parser.d.ts +77 -0
- package/dist/core/command-safety-parser.d.ts.map +1 -0
- package/dist/core/command-safety-parser.js +763 -0
- package/dist/core/command-safety-parser.js.map +1 -0
- package/dist/core/command-safety.d.ts.map +1 -1
- package/dist/core/command-safety.js +106 -3
- package/dist/core/command-safety.js.map +1 -1
- package/dist/core/compaction/branch-summarization.d.ts +2 -2
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js +5 -21
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts +3 -101
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +21 -656
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/compaction/utils.d.ts +2 -2
- package/dist/core/compaction/utils.d.ts.map +1 -1
- package/dist/core/compaction/utils.js.map +1 -1
- package/dist/core/compactor.d.ts +42 -0
- package/dist/core/compactor.d.ts.map +1 -0
- package/dist/core/compactor.js +131 -0
- package/dist/core/compactor.js.map +1 -0
- package/dist/core/context-budget-compressors.d.ts +50 -0
- package/dist/core/context-budget-compressors.d.ts.map +1 -0
- package/dist/core/context-budget-compressors.js +166 -0
- package/dist/core/context-budget-compressors.js.map +1 -0
- package/dist/core/context-budget-governor-v2.d.ts +7 -0
- package/dist/core/context-budget-governor-v2.d.ts.map +1 -0
- package/dist/core/context-budget-governor-v2.js +7 -0
- package/dist/core/context-budget-governor-v2.js.map +1 -0
- package/dist/core/context-budget-governor.d.ts +67 -0
- package/dist/core/context-budget-governor.d.ts.map +1 -0
- package/dist/core/context-budget-governor.js +224 -0
- package/dist/core/context-budget-governor.js.map +1 -0
- package/dist/core/context-budget-headroom-candidates.d.ts +3 -0
- package/dist/core/context-budget-headroom-candidates.d.ts.map +1 -0
- package/dist/core/context-budget-headroom-candidates.js +85 -0
- package/dist/core/context-budget-headroom-candidates.js.map +1 -0
- package/dist/core/context-budget-headroom-types.d.ts +67 -0
- package/dist/core/context-budget-headroom-types.d.ts.map +1 -0
- package/dist/core/context-budget-headroom-types.js +46 -0
- package/dist/core/context-budget-headroom-types.js.map +1 -0
- package/dist/core/context-budget-headroom.d.ts +5 -0
- package/dist/core/context-budget-headroom.d.ts.map +1 -0
- package/dist/core/context-budget-headroom.js +123 -0
- package/dist/core/context-budget-headroom.js.map +1 -0
- package/dist/core/context-budget-relevance.d.ts +46 -0
- package/dist/core/context-budget-relevance.d.ts.map +1 -0
- package/dist/core/context-budget-relevance.js +329 -0
- package/dist/core/context-budget-relevance.js.map +1 -0
- package/dist/core/context-budget-system-prompt-items.d.ts +19 -0
- package/dist/core/context-budget-system-prompt-items.d.ts.map +1 -0
- package/dist/core/context-budget-system-prompt-items.js +143 -0
- package/dist/core/context-budget-system-prompt-items.js.map +1 -0
- package/dist/core/context-budget-system-prompt.d.ts +31 -0
- package/dist/core/context-budget-system-prompt.d.ts.map +1 -0
- package/dist/core/context-budget-system-prompt.js +87 -0
- package/dist/core/context-budget-system-prompt.js.map +1 -0
- package/dist/core/context-budget-token-counter.d.ts +34 -0
- package/dist/core/context-budget-token-counter.d.ts.map +1 -0
- package/dist/core/context-budget-token-counter.js +315 -0
- package/dist/core/context-budget-token-counter.js.map +1 -0
- package/dist/core/context-budget-v2-coverage.d.ts +5 -0
- package/dist/core/context-budget-v2-coverage.d.ts.map +1 -0
- package/dist/core/context-budget-v2-coverage.js +58 -0
- package/dist/core/context-budget-v2-coverage.js.map +1 -0
- package/dist/core/context-budget-v2-plan-hash.d.ts +12 -0
- package/dist/core/context-budget-v2-plan-hash.d.ts.map +1 -0
- package/dist/core/context-budget-v2-plan-hash.js +38 -0
- package/dist/core/context-budget-v2-plan-hash.js.map +1 -0
- package/dist/core/context-budget-v2-planner.d.ts +3 -0
- package/dist/core/context-budget-v2-planner.d.ts.map +1 -0
- package/dist/core/context-budget-v2-planner.js +143 -0
- package/dist/core/context-budget-v2-planner.js.map +1 -0
- package/dist/core/context-budget-v2-scoring.d.ts +14 -0
- package/dist/core/context-budget-v2-scoring.d.ts.map +1 -0
- package/dist/core/context-budget-v2-scoring.js +114 -0
- package/dist/core/context-budget-v2-scoring.js.map +1 -0
- package/dist/core/context-budget-v2-selection.d.ts +32 -0
- package/dist/core/context-budget-v2-selection.d.ts.map +1 -0
- package/dist/core/context-budget-v2-selection.js +158 -0
- package/dist/core/context-budget-v2-selection.js.map +1 -0
- package/dist/core/context-budget-v2-tiers.d.ts +15 -0
- package/dist/core/context-budget-v2-tiers.d.ts.map +1 -0
- package/dist/core/context-budget-v2-tiers.js +68 -0
- package/dist/core/context-budget-v2-tiers.js.map +1 -0
- package/dist/core/context-budget-v2-types.d.ts +92 -0
- package/dist/core/context-budget-v2-types.d.ts.map +1 -0
- package/dist/core/context-budget-v2-types.js +24 -0
- package/dist/core/context-budget-v2-types.js.map +1 -0
- package/dist/core/defaults.d.ts +1 -1
- package/dist/core/defaults.d.ts.map +1 -1
- package/dist/core/defaults.js.map +1 -1
- package/dist/core/diagnostics.d.ts +6 -0
- package/dist/core/diagnostics.d.ts.map +1 -1
- package/dist/core/diagnostics.js.map +1 -1
- package/dist/core/domain-confidence.d.ts +9 -0
- package/dist/core/domain-confidence.d.ts.map +1 -0
- package/dist/core/domain-confidence.js +39 -0
- package/dist/core/domain-confidence.js.map +1 -0
- package/dist/core/domain-dispatch.d.ts +44 -0
- package/dist/core/domain-dispatch.d.ts.map +1 -0
- package/dist/core/domain-dispatch.js +118 -0
- package/dist/core/domain-dispatch.js.map +1 -0
- package/dist/core/domain-loadouts.d.ts +76 -0
- package/dist/core/domain-loadouts.d.ts.map +1 -0
- package/dist/core/domain-loadouts.js +981 -0
- package/dist/core/domain-loadouts.js.map +1 -0
- package/dist/core/domain-registry.d.ts +7 -0
- package/dist/core/domain-registry.d.ts.map +1 -0
- package/dist/core/domain-registry.js +11 -0
- package/dist/core/domain-registry.js.map +1 -0
- package/dist/core/domain-router.d.ts +16 -0
- package/dist/core/domain-router.d.ts.map +1 -0
- package/dist/core/domain-router.js +24 -0
- package/dist/core/domain-router.js.map +1 -0
- package/dist/core/domain-score.d.ts +13 -0
- package/dist/core/domain-score.d.ts.map +1 -0
- package/dist/core/domain-score.js +48 -0
- package/dist/core/domain-score.js.map +1 -0
- package/dist/core/domain-trigger-match.d.ts +14 -0
- package/dist/core/domain-trigger-match.d.ts.map +1 -0
- package/dist/core/domain-trigger-match.js +51 -0
- package/dist/core/domain-trigger-match.js.map +1 -0
- package/dist/core/domain-types.d.ts +30 -0
- package/dist/core/domain-types.d.ts.map +1 -0
- package/dist/core/domain-types.js +2 -0
- package/dist/core/domain-types.js.map +1 -0
- package/dist/core/exact-cache-policy.d.ts +8 -0
- package/dist/core/exact-cache-policy.d.ts.map +1 -1
- package/dist/core/exact-cache-policy.js +9 -0
- package/dist/core/exact-cache-policy.js.map +1 -1
- package/dist/core/exec.d.ts +0 -2
- package/dist/core/exec.d.ts.map +1 -1
- package/dist/core/exec.js +0 -1
- package/dist/core/exec.js.map +1 -1
- package/dist/core/export-html/index.d.ts +1 -1
- package/dist/core/export-html/index.d.ts.map +1 -1
- package/dist/core/export-html/index.js.map +1 -1
- package/dist/core/export-html/template.js +1 -3
- package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
- package/dist/core/export-html/tool-renderer.js.map +1 -1
- package/dist/core/extensions/builtin/command-safety-gate.d.ts +3 -0
- package/dist/core/extensions/builtin/command-safety-gate.d.ts.map +1 -1
- package/dist/core/extensions/builtin/command-safety-gate.js +15 -3
- package/dist/core/extensions/builtin/command-safety-gate.js.map +1 -1
- package/dist/core/extensions/builtin/todo-checklist.d.ts +20 -0
- package/dist/core/extensions/builtin/todo-checklist.d.ts.map +1 -0
- package/dist/core/extensions/builtin/todo-checklist.js +73 -0
- package/dist/core/extensions/builtin/todo-checklist.js.map +1 -0
- package/dist/core/extensions/loader.d.ts +4 -4
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +57 -92
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +3 -3
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +1 -1
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +7 -35
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/extensions/wrapper.d.ts +1 -1
- package/dist/core/extensions/wrapper.d.ts.map +1 -1
- package/dist/core/extensions/wrapper.js.map +1 -1
- package/dist/core/footer-data-provider.d.ts +3 -1
- package/dist/core/footer-data-provider.d.ts.map +1 -1
- package/dist/core/footer-data-provider.js +4 -0
- package/dist/core/footer-data-provider.js.map +1 -1
- package/dist/core/headroom.d.ts +45 -0
- package/dist/core/headroom.d.ts.map +1 -0
- package/dist/core/headroom.js +171 -0
- package/dist/core/headroom.js.map +1 -0
- package/dist/core/hook-inventory.d.ts +4 -2
- package/dist/core/hook-inventory.d.ts.map +1 -1
- package/dist/core/hook-inventory.js +80 -11
- package/dist/core/hook-inventory.js.map +1 -1
- package/dist/core/hooks/fail-closed.d.ts +4 -1
- package/dist/core/hooks/fail-closed.d.ts.map +1 -1
- package/dist/core/hooks/fail-closed.js +79 -5
- package/dist/core/hooks/fail-closed.js.map +1 -1
- package/dist/core/hooks/index.d.ts +2 -2
- package/dist/core/hooks/index.d.ts.map +1 -1
- package/dist/core/hooks/index.js +1 -1
- package/dist/core/hooks/index.js.map +1 -1
- package/dist/core/hooks/types.d.ts +9 -0
- package/dist/core/hooks/types.d.ts.map +1 -1
- package/dist/core/hooks/types.js.map +1 -1
- package/dist/core/keybindings.d.ts +2 -14
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +1 -31
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/lean-ctx.d.ts +99 -0
- package/dist/core/lean-ctx.d.ts.map +1 -0
- package/dist/core/lean-ctx.js +225 -0
- package/dist/core/lean-ctx.js.map +1 -0
- package/dist/core/loadout-compose.d.ts +53 -0
- package/dist/core/loadout-compose.d.ts.map +1 -0
- package/dist/core/loadout-compose.js +172 -0
- package/dist/core/loadout-compose.js.map +1 -0
- package/dist/core/loadout-policy-bridge.d.ts +22 -0
- package/dist/core/loadout-policy-bridge.d.ts.map +1 -0
- package/dist/core/loadout-policy-bridge.js +52 -0
- package/dist/core/loadout-policy-bridge.js.map +1 -0
- package/dist/core/loadout-runtime.d.ts +22 -0
- package/dist/core/loadout-runtime.d.ts.map +1 -1
- package/dist/core/loadout-runtime.js +41 -5
- package/dist/core/loadout-runtime.js.map +1 -1
- package/dist/core/loadout-safety.d.ts +55 -0
- package/dist/core/loadout-safety.d.ts.map +1 -0
- package/dist/core/loadout-safety.js +213 -0
- package/dist/core/loadout-safety.js.map +1 -0
- package/dist/core/loadouts.d.ts +4 -2
- package/dist/core/loadouts.d.ts.map +1 -1
- package/dist/core/loadouts.js +116 -5
- package/dist/core/loadouts.js.map +1 -1
- package/dist/core/loop-gates.d.ts +48 -0
- package/dist/core/loop-gates.d.ts.map +1 -0
- package/dist/core/loop-gates.js +352 -0
- package/dist/core/loop-gates.js.map +1 -0
- package/dist/core/loop-registry.d.ts +77 -0
- package/dist/core/loop-registry.d.ts.map +1 -0
- package/dist/core/loop-registry.js +831 -0
- package/dist/core/loop-registry.js.map +1 -0
- package/dist/core/loop-types.d.ts +194 -0
- package/dist/core/loop-types.d.ts.map +1 -0
- package/dist/core/loop-types.js +2 -0
- package/dist/core/loop-types.js.map +1 -0
- package/dist/core/mcp-inventory.d.ts +7 -0
- package/dist/core/mcp-inventory.d.ts.map +1 -1
- package/dist/core/mcp-inventory.js +5 -1
- package/dist/core/mcp-inventory.js.map +1 -1
- package/dist/core/mcp-presets.d.ts +43 -2
- package/dist/core/mcp-presets.d.ts.map +1 -1
- package/dist/core/mcp-presets.js +298 -2
- package/dist/core/mcp-presets.js.map +1 -1
- package/dist/core/messages.d.ts +3 -3
- package/dist/core/messages.d.ts.map +1 -1
- package/dist/core/messages.js.map +1 -1
- package/dist/core/metrics-sampler.d.ts +11 -0
- package/dist/core/metrics-sampler.d.ts.map +1 -1
- package/dist/core/metrics-sampler.js +52 -13
- package/dist/core/metrics-sampler.js.map +1 -1
- package/dist/core/model-registry.d.ts +1 -2
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +18 -41
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-resolver.d.ts +2 -2
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +2 -2
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/package-gallery-identity.d.ts +7 -0
- package/dist/core/package-gallery-identity.d.ts.map +1 -0
- package/dist/core/package-gallery-identity.js +31 -0
- package/dist/core/package-gallery-identity.js.map +1 -0
- package/dist/core/package-gallery-install.d.ts +6 -0
- package/dist/core/package-gallery-install.d.ts.map +1 -0
- package/dist/core/package-gallery-install.js +59 -0
- package/dist/core/package-gallery-install.js.map +1 -0
- package/dist/core/package-gallery-manifest.d.ts +13 -0
- package/dist/core/package-gallery-manifest.d.ts.map +1 -0
- package/dist/core/package-gallery-manifest.js +183 -0
- package/dist/core/package-gallery-manifest.js.map +1 -0
- package/dist/core/package-gallery-trial.d.ts +4 -0
- package/dist/core/package-gallery-trial.d.ts.map +1 -0
- package/dist/core/package-gallery-trial.js +55 -0
- package/dist/core/package-gallery-trial.js.map +1 -0
- package/dist/core/package-gallery-types.d.ts +71 -0
- package/dist/core/package-gallery-types.d.ts.map +1 -0
- package/dist/core/package-gallery-types.js +2 -0
- package/dist/core/package-gallery-types.js.map +1 -0
- package/dist/core/package-gallery.d.ts +5 -123
- package/dist/core/package-gallery.d.ts.map +1 -1
- package/dist/core/package-gallery.js +5 -391
- package/dist/core/package-gallery.js.map +1 -1
- package/dist/core/package-manager.d.ts +0 -69
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +69 -367
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/package-procurement.d.ts +4 -4
- package/dist/core/package-procurement.d.ts.map +1 -1
- package/dist/core/package-procurement.js +29 -17
- package/dist/core/package-procurement.js.map +1 -1
- package/dist/core/pi-package-intake-candidates.d.ts +21 -0
- package/dist/core/pi-package-intake-candidates.d.ts.map +1 -0
- package/dist/core/pi-package-intake-candidates.js +109 -0
- package/dist/core/pi-package-intake-candidates.js.map +1 -0
- package/dist/core/pi-package-intake.d.ts +43 -0
- package/dist/core/pi-package-intake.d.ts.map +1 -0
- package/dist/core/pi-package-intake.js +122 -0
- package/dist/core/pi-package-intake.js.map +1 -0
- package/dist/core/provider-attribution.d.ts +1 -1
- package/dist/core/provider-attribution.d.ts.map +1 -1
- package/dist/core/provider-attribution.js.map +1 -1
- package/dist/core/provider-display-names.d.ts.map +1 -1
- package/dist/core/provider-display-names.js +1 -0
- package/dist/core/provider-display-names.js.map +1 -1
- package/dist/core/read-anchors.d.ts +1 -1
- package/dist/core/read-anchors.d.ts.map +1 -1
- package/dist/core/read-anchors.js +1 -1
- package/dist/core/read-anchors.js.map +1 -1
- package/dist/core/recovery-checkpoint.d.ts +2 -2
- package/dist/core/recovery-checkpoint.d.ts.map +1 -1
- package/dist/core/recovery-checkpoint.js +2 -2
- package/dist/core/recovery-checkpoint.js.map +1 -1
- package/dist/core/resolve-config-value.d.ts +1 -1
- package/dist/core/resolve-config-value.d.ts.map +1 -1
- package/dist/core/resolve-config-value.js +2 -30
- package/dist/core/resolve-config-value.js.map +1 -1
- package/dist/core/resource-loader.d.ts +12 -20
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +67 -90
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/sandbox-policy-v2.d.ts +49 -0
- package/dist/core/sandbox-policy-v2.d.ts.map +1 -0
- package/dist/core/sandbox-policy-v2.js +368 -0
- package/dist/core/sandbox-policy-v2.js.map +1 -0
- package/dist/core/sdk.d.ts +10 -78
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +97 -139
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/semantic-cache-policy.d.ts +7 -1
- package/dist/core/semantic-cache-policy.d.ts.map +1 -1
- package/dist/core/semantic-cache-policy.js +8 -0
- package/dist/core/semantic-cache-policy.js.map +1 -1
- package/dist/core/session-manager.d.ts +2 -4
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +5 -6
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-manager.d.ts +1 -18
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +2 -48
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/skills.d.ts +5 -0
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +149 -36
- package/dist/core/skills.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +0 -2
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/subagent-orchestration.d.ts +73 -0
- package/dist/core/subagent-orchestration.d.ts.map +1 -0
- package/dist/core/subagent-orchestration.js +408 -0
- package/dist/core/subagent-orchestration.js.map +1 -0
- package/dist/core/system-prompt.d.ts +5 -4
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +57 -36
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/timings.d.ts +0 -4
- package/dist/core/timings.d.ts.map +1 -1
- package/dist/core/timings.js +0 -4
- package/dist/core/timings.js.map +1 -1
- package/dist/core/todo-runtime-state.d.ts +5 -0
- package/dist/core/todo-runtime-state.d.ts.map +1 -0
- package/dist/core/todo-runtime-state.js +12 -0
- package/dist/core/todo-runtime-state.js.map +1 -0
- package/dist/core/todo-state.d.ts +53 -0
- package/dist/core/todo-state.d.ts.map +1 -0
- package/dist/core/todo-state.js +87 -0
- package/dist/core/todo-state.js.map +1 -0
- package/dist/core/token-optimizer.d.ts +58 -0
- package/dist/core/token-optimizer.d.ts.map +1 -0
- package/dist/core/token-optimizer.js +179 -0
- package/dist/core/token-optimizer.js.map +1 -0
- package/dist/core/tools/bash.d.ts +8 -9
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +9 -8
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/edit.d.ts +3 -14
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +4 -25
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/find.d.ts +1 -4
- package/dist/core/tools/find.d.ts.map +1 -1
- package/dist/core/tools/find.js +1 -4
- package/dist/core/tools/find.js.map +1 -1
- package/dist/core/tools/grep.d.ts +1 -4
- package/dist/core/tools/grep.d.ts.map +1 -1
- package/dist/core/tools/grep.js +2 -5
- package/dist/core/tools/grep.js.map +1 -1
- package/dist/core/tools/index.d.ts +2 -2
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/ls.d.ts +1 -4
- package/dist/core/tools/ls.d.ts.map +1 -1
- package/dist/core/tools/ls.js +1 -4
- package/dist/core/tools/ls.js.map +1 -1
- package/dist/core/tools/read.d.ts +2 -14
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js +4 -28
- package/dist/core/tools/read.js.map +1 -1
- package/dist/core/tools/render-utils.d.ts +1 -1
- package/dist/core/tools/render-utils.d.ts.map +1 -1
- package/dist/core/tools/render-utils.js +1 -1
- package/dist/core/tools/render-utils.js.map +1 -1
- package/dist/core/tools/tool-definition-wrapper.d.ts +1 -1
- package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
- package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
- package/dist/core/tools/write.d.ts +2 -4
- package/dist/core/tools/write.d.ts.map +1 -1
- package/dist/core/tools/write.js +4 -4
- package/dist/core/tools/write.js.map +1 -1
- package/dist/encoding/index.d.ts +6 -0
- package/dist/encoding/index.d.ts.map +1 -0
- package/dist/encoding/index.js +6 -0
- package/dist/encoding/index.js.map +1 -0
- package/dist/encoding/l4-encoder.d.ts +96 -0
- package/dist/encoding/l4-encoder.d.ts.map +1 -0
- package/dist/encoding/l4-encoder.js +474 -0
- package/dist/encoding/l4-encoder.js.map +1 -0
- package/dist/fuzzing/index.d.ts +6 -0
- package/dist/fuzzing/index.d.ts.map +1 -0
- package/dist/fuzzing/index.js +6 -0
- package/dist/fuzzing/index.js.map +1 -0
- package/dist/fuzzing/mutation-engine.d.ts +93 -0
- package/dist/fuzzing/mutation-engine.d.ts.map +1 -0
- package/dist/fuzzing/mutation-engine.js +244 -0
- package/dist/fuzzing/mutation-engine.js.map +1 -0
- package/dist/guardrails/audit-logger.d.ts +4 -0
- package/dist/guardrails/audit-logger.d.ts.map +1 -0
- package/dist/guardrails/audit-logger.js +28 -0
- package/dist/guardrails/audit-logger.js.map +1 -0
- package/dist/guardrails/evidence-system.d.ts +61 -0
- package/dist/guardrails/evidence-system.d.ts.map +1 -0
- package/dist/guardrails/evidence-system.js +302 -0
- package/dist/guardrails/evidence-system.js.map +1 -0
- package/dist/guardrails/freedomd-adapter.d.ts +16 -0
- package/dist/guardrails/freedomd-adapter.d.ts.map +1 -0
- package/dist/guardrails/freedomd-adapter.js +87 -0
- package/dist/guardrails/freedomd-adapter.js.map +1 -0
- package/dist/index.d.ts +5 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -17
- package/dist/index.js.map +1 -1
- package/dist/jailbreak-extension.d.ts +48 -0
- package/dist/jailbreak-extension.d.ts.map +1 -0
- package/dist/jailbreak-extension.js +47 -0
- package/dist/jailbreak-extension.js.map +1 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +2 -2
- package/dist/main.js.map +1 -1
- package/dist/migrations.d.ts +0 -37
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js +6 -414
- package/dist/migrations.js.map +1 -1
- package/dist/modes/interactive/components/armin.d.ts +1 -1
- package/dist/modes/interactive/components/armin.d.ts.map +1 -1
- package/dist/modes/interactive/components/armin.js.map +1 -1
- package/dist/modes/interactive/components/assistant-message.d.ts +2 -2
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js +1 -1
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/bash-execution.d.ts +1 -1
- package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/bash-execution.js +1 -1
- package/dist/modes/interactive/components/bash-execution.js.map +1 -1
- package/dist/modes/interactive/components/bordered-loader.d.ts +1 -1
- package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
- package/dist/modes/interactive/components/bordered-loader.js +1 -1
- package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.d.ts +1 -1
- package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.js +1 -1
- package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.d.ts +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.js +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/config-selector.d.ts +1 -1
- package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/config-selector.js +1 -1
- package/dist/modes/interactive/components/config-selector.js.map +1 -1
- package/dist/modes/interactive/components/control-panel-box.d.ts +15 -0
- package/dist/modes/interactive/components/control-panel-box.d.ts.map +1 -0
- package/dist/modes/interactive/components/control-panel-box.js +55 -0
- package/dist/modes/interactive/components/control-panel-box.js.map +1 -0
- package/dist/modes/interactive/components/control-panel-gradient-motion.d.ts.map +1 -1
- package/dist/modes/interactive/components/control-panel-gradient-motion.js +2 -36
- package/dist/modes/interactive/components/control-panel-gradient-motion.js.map +1 -1
- package/dist/modes/interactive/components/control-panel-gradient.d.ts +1 -0
- package/dist/modes/interactive/components/control-panel-gradient.d.ts.map +1 -1
- package/dist/modes/interactive/components/control-panel-gradient.js +6 -5
- package/dist/modes/interactive/components/control-panel-gradient.js.map +1 -1
- package/dist/modes/interactive/components/control-panel-layout.d.ts +30 -0
- package/dist/modes/interactive/components/control-panel-layout.d.ts.map +1 -0
- package/dist/modes/interactive/components/control-panel-layout.js +197 -0
- package/dist/modes/interactive/components/control-panel-layout.js.map +1 -0
- package/dist/modes/interactive/components/control-panel-runtime-status.d.ts +6 -0
- package/dist/modes/interactive/components/control-panel-runtime-status.d.ts.map +1 -0
- package/dist/modes/interactive/components/control-panel-runtime-status.js +29 -0
- package/dist/modes/interactive/components/control-panel-runtime-status.js.map +1 -0
- package/dist/modes/interactive/components/control-panel.d.ts +9 -31
- package/dist/modes/interactive/components/control-panel.d.ts.map +1 -1
- package/dist/modes/interactive/components/control-panel.js +49 -168
- package/dist/modes/interactive/components/control-panel.js.map +1 -1
- package/dist/modes/interactive/components/countdown-timer.d.ts +1 -1
- package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
- package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
- package/dist/modes/interactive/components/custom-editor.d.ts +1 -1
- package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-editor.js +14 -22
- package/dist/modes/interactive/components/custom-editor.js.map +1 -1
- package/dist/modes/interactive/components/custom-message.d.ts +1 -1
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-message.js +1 -1
- package/dist/modes/interactive/components/custom-message.js.map +1 -1
- package/dist/modes/interactive/components/daxnuts.d.ts +1 -1
- package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -1
- package/dist/modes/interactive/components/daxnuts.js.map +1 -1
- package/dist/modes/interactive/components/dynamic-border.d.ts +1 -1
- package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -1
- package/dist/modes/interactive/components/dynamic-border.js.map +1 -1
- package/dist/modes/interactive/components/earendil-announcement.d.ts +1 -1
- package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -1
- package/dist/modes/interactive/components/earendil-announcement.js +1 -1
- package/dist/modes/interactive/components/earendil-announcement.js.map +1 -1
- package/dist/modes/interactive/components/extension-editor.d.ts +1 -1
- package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-editor.js +1 -1
- package/dist/modes/interactive/components/extension-editor.js.map +1 -1
- package/dist/modes/interactive/components/extension-input.d.ts +1 -1
- package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-input.js +1 -1
- package/dist/modes/interactive/components/extension-input.js.map +1 -1
- package/dist/modes/interactive/components/extension-selector.d.ts +1 -1
- package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-selector.js +1 -1
- package/dist/modes/interactive/components/extension-selector.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts +1 -1
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +7 -9
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/index.d.ts +0 -2
- package/dist/modes/interactive/components/index.d.ts.map +1 -1
- package/dist/modes/interactive/components/index.js +0 -2
- package/dist/modes/interactive/components/index.js.map +1 -1
- package/dist/modes/interactive/components/keybinding-hints.d.ts +1 -1
- package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
- package/dist/modes/interactive/components/keybinding-hints.js +1 -1
- package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
- package/dist/modes/interactive/components/login-dialog.d.ts +2 -2
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
- package/dist/modes/interactive/components/login-dialog.js +2 -2
- package/dist/modes/interactive/components/login-dialog.js.map +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts +13 -47
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js +118 -193
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts +1 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.js +1 -1
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.d.ts +2 -2
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.js +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
- package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector-search.js +1 -1
- package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
- package/dist/modes/interactive/components/session-selector.d.ts +1 -1
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector.js +1 -1
- package/dist/modes/interactive/components/session-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +3 -3
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +1 -1
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/show-images-selector.d.ts +1 -1
- package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/show-images-selector.js +1 -1
- package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.d.ts +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.js +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
- package/dist/modes/interactive/components/theme-selector.d.ts +1 -2
- package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/theme-selector.js +2 -11
- package/dist/modes/interactive/components/theme-selector.js.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.d.ts +8 -7
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.js +48 -7
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
- package/dist/modes/interactive/components/todo-checklist.d.ts +31 -0
- package/dist/modes/interactive/components/todo-checklist.d.ts.map +1 -0
- package/dist/modes/interactive/components/todo-checklist.js +121 -0
- package/dist/modes/interactive/components/todo-checklist.js.map +1 -0
- package/dist/modes/interactive/components/tool-execution.d.ts +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +1 -1
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/components/tree-selector.d.ts +1 -1
- package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/tree-selector.js +1 -1
- package/dist/modes/interactive/components/tree-selector.js.map +1 -1
- package/dist/modes/interactive/components/user-message-selector.d.ts +1 -1
- package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message-selector.js +1 -1
- package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
- package/dist/modes/interactive/components/user-message.d.ts +1 -1
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message.js +1 -1
- package/dist/modes/interactive/components/user-message.js.map +1 -1
- package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -1
- package/dist/modes/interactive/components/visual-truncate.js +1 -1
- package/dist/modes/interactive/components/visual-truncate.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +3 -8
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +80 -232
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/theme/omk-control-grid-dark.json +65 -77
- package/dist/modes/interactive/theme/omk-neon-control.json +90 -0
- package/dist/modes/interactive/theme/rust-forge.json +14 -24
- package/dist/modes/interactive/theme/theme.d.ts +1 -1
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +25 -45
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/print-mode.d.ts +1 -1
- package/dist/modes/print-mode.d.ts.map +1 -1
- package/dist/modes/print-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts +2 -2
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +0 -4
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +2 -2
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-types.js.map +1 -1
- package/dist/modules/index.d.ts +8 -0
- package/dist/modules/index.d.ts.map +1 -0
- package/dist/modules/index.js +7 -0
- package/dist/modules/index.js.map +1 -0
- package/dist/modules/lrl-bypass.d.ts +40 -0
- package/dist/modules/lrl-bypass.d.ts.map +1 -0
- package/dist/modules/lrl-bypass.js +84 -0
- package/dist/modules/lrl-bypass.js.map +1 -0
- package/dist/modules/lrl-deps.d.ts +38 -0
- package/dist/modules/lrl-deps.d.ts.map +1 -0
- package/dist/modules/lrl-deps.js +128 -0
- package/dist/modules/lrl-deps.js.map +1 -0
- package/dist/multiturn/easl-chain.d.ts +113 -0
- package/dist/multiturn/easl-chain.d.ts.map +1 -0
- package/dist/multiturn/easl-chain.js +351 -0
- package/dist/multiturn/easl-chain.js.map +1 -0
- package/dist/multiturn/index.d.ts +6 -0
- package/dist/multiturn/index.d.ts.map +1 -0
- package/dist/multiturn/index.js +6 -0
- package/dist/multiturn/index.js.map +1 -0
- package/dist/orchestration/lane-grant-auditor.d.ts +4 -0
- package/dist/orchestration/lane-grant-auditor.d.ts.map +1 -0
- package/dist/orchestration/lane-grant-auditor.js +87 -0
- package/dist/orchestration/lane-grant-auditor.js.map +1 -0
- package/dist/package-manager-cli.d.ts.map +1 -1
- package/dist/package-manager-cli.js +48 -113
- package/dist/package-manager-cli.js.map +1 -1
- package/dist/routing/fallback-router.d.ts +123 -0
- package/dist/routing/fallback-router.d.ts.map +1 -0
- package/dist/routing/fallback-router.js +355 -0
- package/dist/routing/fallback-router.js.map +1 -0
- package/dist/routing/index.d.ts +6 -0
- package/dist/routing/index.d.ts.map +1 -0
- package/dist/routing/index.js +6 -0
- package/dist/routing/index.js.map +1 -0
- package/dist/types/evidence.d.ts +117 -0
- package/dist/types/evidence.d.ts.map +1 -0
- package/dist/types/evidence.js +8 -0
- package/dist/types/evidence.js.map +1 -0
- package/dist/types/guardrails.d.ts +61 -0
- package/dist/types/guardrails.d.ts.map +1 -0
- package/dist/types/guardrails.js +9 -0
- package/dist/types/guardrails.js.map +1 -0
- package/dist/types/jailbreak.d.ts +246 -0
- package/dist/types/jailbreak.d.ts.map +1 -0
- package/dist/types/jailbreak.js +8 -0
- package/dist/types/jailbreak.js.map +1 -0
- package/dist/types/lane-grant.d.ts +58 -0
- package/dist/types/lane-grant.d.ts.map +1 -0
- package/dist/types/lane-grant.js +9 -0
- package/dist/types/lane-grant.js.map +1 -0
- package/dist/utils/jailbreak/common.d.ts +63 -0
- package/dist/utils/jailbreak/common.d.ts.map +1 -0
- package/dist/utils/jailbreak/common.js +130 -0
- package/dist/utils/jailbreak/common.js.map +1 -0
- package/dist/utils/jailbreak/index.d.ts +7 -0
- package/dist/utils/jailbreak/index.d.ts.map +1 -0
- package/dist/utils/jailbreak/index.js +7 -0
- package/dist/utils/jailbreak/index.js.map +1 -0
- package/dist/utils/windows-self-update.d.ts.map +1 -1
- package/dist/utils/windows-self-update.js +1 -1
- package/dist/utils/windows-self-update.js.map +1 -1
- package/docs/compaction.md +8 -21
- package/docs/custom-provider.md +2 -2
- package/docs/development.md +1 -1
- package/docs/extensions.md +11 -11
- package/docs/loadout-domains/README.md +70 -0
- package/docs/loadout-domains/ai-agent-ops.md +94 -0
- package/docs/loadout-domains/backend-api.md +116 -0
- package/docs/loadout-domains/data-science.md +100 -0
- package/docs/loadout-domains/devops-infra.md +85 -0
- package/docs/loadout-domains/docs-writing.md +92 -0
- package/docs/loadout-domains/frontend-ui.md +128 -0
- package/docs/loadout-domains/general.md +62 -0
- package/docs/loadout-domains/mobile.md +84 -0
- package/docs/loadout-domains/qa-testing.md +87 -0
- package/docs/loadout-domains/research.md +80 -0
- package/docs/loadout-domains/security-audit.md +97 -0
- package/docs/packages.md +7 -48
- package/docs/prompt-templates.md +0 -2
- package/docs/providers.md +12 -0
- package/docs/sdk.md +3 -3
- package/docs/security.md +145 -0
- package/docs/session-format.md +1 -1
- package/docs/themes.md +8 -7
- package/docs/tui.md +14 -14
- package/docs/usage.md +6 -16
- package/examples/extensions/README.md +2 -2
- package/examples/extensions/aside-computer-use/README.md +114 -0
- package/examples/extensions/aside-computer-use/action-scoring.ts +122 -0
- package/examples/extensions/aside-computer-use/assertions.ts +380 -0
- package/examples/extensions/aside-computer-use/controller.ts +491 -0
- package/examples/extensions/aside-computer-use/evidence.ts +229 -0
- package/examples/extensions/aside-computer-use/golden-trace.ts +141 -0
- package/examples/extensions/aside-computer-use/index.ts +76 -0
- package/examples/extensions/aside-computer-use/mcp-client.ts +381 -0
- package/examples/extensions/aside-computer-use/observation-snapshot.ts +121 -0
- package/examples/extensions/aside-computer-use/package.json +16 -0
- package/examples/extensions/aside-computer-use/policy.ts +257 -0
- package/examples/extensions/aside-computer-use/risk-authorize.ts +200 -0
- package/examples/extensions/aside-computer-use/risk-classifier.ts +205 -0
- package/examples/extensions/aside-computer-use/schema-fingerprint.ts +80 -0
- package/examples/extensions/aside-computer-use/session-binding.ts +161 -0
- package/examples/extensions/aside-computer-use/tools.ts +449 -0
- package/examples/extensions/aside-computer-use/types.ts +217 -0
- package/examples/extensions/aside-computer-use/url-origin.ts +132 -0
- package/examples/extensions/bash-spawn-hook.ts +1 -1
- package/examples/extensions/border-status-editor.ts +2 -2
- package/examples/extensions/built-in-tool-renderer.ts +1 -1
- package/examples/extensions/custom-compaction.ts +1 -1
- package/examples/extensions/custom-footer.ts +2 -2
- package/examples/extensions/custom-header.ts +8 -8
- package/examples/extensions/custom-provider-anthropic/index.ts +1 -1
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/index.ts +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/test.ts +1 -1
- package/examples/extensions/doom-overlay/README.md +1 -2
- package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
- package/examples/extensions/doom-overlay/doom/build.sh +4 -4
- package/examples/extensions/doom-overlay/doom/doomgeneric_omk.c +72 -0
- package/examples/extensions/doom-overlay/doom-component.ts +2 -2
- package/examples/extensions/doom-overlay/doom-keys.ts +1 -1
- package/examples/extensions/git-merge-and-resolve.ts +1 -1
- package/examples/extensions/github-issue-autocomplete.ts +1 -6
- package/examples/extensions/gondolin/index.ts +1 -1
- package/examples/extensions/gondolin/package-lock.json +2 -2
- package/examples/extensions/gondolin/package.json +1 -1
- package/examples/extensions/handoff.ts +2 -2
- package/examples/extensions/hello.ts +1 -1
- package/examples/extensions/inline-bash.ts +1 -1
- package/examples/extensions/input-transform-streaming.ts +1 -1
- package/examples/extensions/input-transform.ts +2 -2
- package/examples/extensions/mac-system-theme.ts +1 -1
- package/examples/extensions/message-renderer.ts +1 -1
- package/examples/extensions/minimal-mode.ts +1 -1
- package/examples/extensions/modal-editor.ts +1 -1
- package/examples/extensions/overlay-qa-tests.ts +7 -7
- package/examples/extensions/overlay-test.ts +1 -1
- package/examples/extensions/plan-mode/index.ts +3 -3
- package/examples/extensions/preset.ts +4 -4
- package/examples/extensions/provider-payload.ts +6 -3
- package/examples/extensions/qna.ts +1 -1
- package/examples/extensions/question.ts +1 -1
- package/examples/extensions/questionnaire.ts +1 -1
- package/examples/extensions/rpc-demo.ts +1 -1
- package/examples/extensions/sandbox/index.ts +2 -2
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/shutdown-command.ts +5 -5
- package/examples/extensions/snake.ts +1 -1
- package/examples/extensions/space-invaders.ts +1 -1
- package/examples/extensions/structured-output.ts +1 -1
- package/examples/extensions/subagent/agents.ts +2 -2
- package/examples/extensions/subagent/index.ts +19 -51
- package/examples/extensions/summarize.ts +2 -2
- package/examples/extensions/tic-tac-toe.ts +2 -2
- package/examples/extensions/todo.ts +2 -2
- package/examples/extensions/tool-override.ts +1 -1
- package/examples/extensions/tools.ts +1 -1
- package/examples/extensions/truncated-tool.ts +1 -1
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/examples/extensions/working-indicator.ts +3 -3
- package/examples/rpc-extension-ui.ts +1 -9
- package/examples/sdk/02-custom-model.ts +1 -1
- package/examples/sdk/07-context-files.ts +0 -2
- package/examples/sdk/12-full-control.ts +1 -1
- package/examples/sdk/README.md +1 -1
- package/npm-shrinkwrap.json +1805 -0
- package/package.json +10 -32
- package/dist/core/compaction/pruner-policy.d.ts +0 -84
- package/dist/core/compaction/pruner-policy.d.ts.map +0 -1
- package/dist/core/compaction/pruner-policy.js +0 -273
- package/dist/core/compaction/pruner-policy.js.map +0 -1
- package/dist/core/context-graph-identity-resolution.d.ts +0 -114
- package/dist/core/context-graph-identity-resolution.d.ts.map +0 -1
- package/dist/core/context-graph-identity-resolution.js +0 -127
- package/dist/core/context-graph-identity-resolution.js.map +0 -1
- package/dist/core/context-graph-memory-store.d.ts +0 -153
- package/dist/core/context-graph-memory-store.d.ts.map +0 -1
- package/dist/core/context-graph-memory-store.js +0 -377
- package/dist/core/context-graph-memory-store.js.map +0 -1
- package/dist/core/context-graph-ontology-generation.d.ts +0 -104
- package/dist/core/context-graph-ontology-generation.d.ts.map +0 -1
- package/dist/core/context-graph-ontology-generation.js +0 -135
- package/dist/core/context-graph-ontology-generation.js.map +0 -1
- package/dist/core/context-graph-ontology-registry.d.ts +0 -766
- package/dist/core/context-graph-ontology-registry.d.ts.map +0 -1
- package/dist/core/context-graph-ontology-registry.js +0 -1133
- package/dist/core/context-graph-ontology-registry.js.map +0 -1
- package/dist/core/context-graph-policy.d.ts +0 -68
- package/dist/core/context-graph-policy.d.ts.map +0 -1
- package/dist/core/context-graph-policy.js +0 -221
- package/dist/core/context-graph-policy.js.map +0 -1
- package/dist/core/context-graph-reasoning.d.ts +0 -130
- package/dist/core/context-graph-reasoning.d.ts.map +0 -1
- package/dist/core/context-graph-reasoning.js +0 -442
- package/dist/core/context-graph-reasoning.js.map +0 -1
- package/dist/core/context-graph-retrieval.d.ts +0 -120
- package/dist/core/context-graph-retrieval.d.ts.map +0 -1
- package/dist/core/context-graph-retrieval.js +0 -288
- package/dist/core/context-graph-retrieval.js.map +0 -1
- package/dist/core/contract-verification.d.ts +0 -78
- package/dist/core/contract-verification.d.ts.map +0 -1
- package/dist/core/contract-verification.js +0 -110
- package/dist/core/contract-verification.js.map +0 -1
- package/dist/core/freedom/banner.d.ts +0 -14
- package/dist/core/freedom/banner.d.ts.map +0 -1
- package/dist/core/freedom/banner.js +0 -22
- package/dist/core/freedom/banner.js.map +0 -1
- package/dist/core/freedom/config.d.ts +0 -27
- package/dist/core/freedom/config.d.ts.map +0 -1
- package/dist/core/freedom/config.js +0 -216
- package/dist/core/freedom/config.js.map +0 -1
- package/dist/core/freedom/index.d.ts +0 -23
- package/dist/core/freedom/index.d.ts.map +0 -1
- package/dist/core/freedom/index.js +0 -19
- package/dist/core/freedom/index.js.map +0 -1
- package/dist/core/freedom/policy.d.ts +0 -42
- package/dist/core/freedom/policy.d.ts.map +0 -1
- package/dist/core/freedom/policy.js +0 -47
- package/dist/core/freedom/policy.js.map +0 -1
- package/dist/core/freedom/safety-floor.d.ts +0 -73
- package/dist/core/freedom/safety-floor.d.ts.map +0 -1
- package/dist/core/freedom/safety-floor.js +0 -275
- package/dist/core/freedom/safety-floor.js.map +0 -1
- package/dist/core/harness-control-events.d.ts +0 -91
- package/dist/core/harness-control-events.d.ts.map +0 -1
- package/dist/core/harness-control-events.js +0 -514
- package/dist/core/harness-control-events.js.map +0 -1
- package/dist/core/harness-control-replay.d.ts +0 -31
- package/dist/core/harness-control-replay.d.ts.map +0 -1
- package/dist/core/harness-control-replay.js +0 -187
- package/dist/core/harness-control-replay.js.map +0 -1
- package/dist/core/headroom-middleware.d.ts +0 -35
- package/dist/core/headroom-middleware.d.ts.map +0 -1
- package/dist/core/headroom-middleware.js +0 -166
- package/dist/core/headroom-middleware.js.map +0 -1
- package/dist/core/lean-context-middleware.d.ts +0 -12
- package/dist/core/lean-context-middleware.d.ts.map +0 -1
- package/dist/core/lean-context-middleware.js +0 -87
- package/dist/core/lean-context-middleware.js.map +0 -1
- package/dist/core/lean-context-policy.d.ts +0 -45
- package/dist/core/lean-context-policy.d.ts.map +0 -1
- package/dist/core/lean-context-policy.js +0 -108
- package/dist/core/lean-context-policy.js.map +0 -1
- package/dist/core/native-adoption-benchmark.d.ts +0 -166
- package/dist/core/native-adoption-benchmark.d.ts.map +0 -1
- package/dist/core/native-adoption-benchmark.js +0 -624
- package/dist/core/native-adoption-benchmark.js.map +0 -1
- package/dist/core/observability-trace.d.ts +0 -80
- package/dist/core/observability-trace.d.ts.map +0 -1
- package/dist/core/observability-trace.js +0 -140
- package/dist/core/observability-trace.js.map +0 -1
- package/dist/core/orchestration/checkpoint.d.ts +0 -83
- package/dist/core/orchestration/checkpoint.d.ts.map +0 -1
- package/dist/core/orchestration/checkpoint.js +0 -152
- package/dist/core/orchestration/checkpoint.js.map +0 -1
- package/dist/core/orchestration/errors.d.ts +0 -74
- package/dist/core/orchestration/errors.d.ts.map +0 -1
- package/dist/core/orchestration/errors.js +0 -52
- package/dist/core/orchestration/errors.js.map +0 -1
- package/dist/core/orchestration/merge-queue.d.ts +0 -121
- package/dist/core/orchestration/merge-queue.d.ts.map +0 -1
- package/dist/core/orchestration/merge-queue.js +0 -149
- package/dist/core/orchestration/merge-queue.js.map +0 -1
- package/dist/core/orchestration/recovery.d.ts +0 -106
- package/dist/core/orchestration/recovery.d.ts.map +0 -1
- package/dist/core/orchestration/recovery.js +0 -110
- package/dist/core/orchestration/recovery.js.map +0 -1
- package/dist/core/orchestration/replay-ledger.d.ts +0 -76
- package/dist/core/orchestration/replay-ledger.d.ts.map +0 -1
- package/dist/core/orchestration/replay-ledger.js +0 -395
- package/dist/core/orchestration/replay-ledger.js.map +0 -1
- package/dist/core/orchestration/scheduler-state.d.ts +0 -78
- package/dist/core/orchestration/scheduler-state.d.ts.map +0 -1
- package/dist/core/orchestration/scheduler-state.js +0 -185
- package/dist/core/orchestration/scheduler-state.js.map +0 -1
- package/dist/core/orchestration/scheduler-store.d.ts +0 -309
- package/dist/core/orchestration/scheduler-store.d.ts.map +0 -1
- package/dist/core/orchestration/scheduler-store.js +0 -368
- package/dist/core/orchestration/scheduler-store.js.map +0 -1
- package/dist/core/orchestration/sqlite-scheduler-store.d.ts +0 -57
- package/dist/core/orchestration/sqlite-scheduler-store.d.ts.map +0 -1
- package/dist/core/orchestration/sqlite-scheduler-store.js +0 -528
- package/dist/core/orchestration/sqlite-scheduler-store.js.map +0 -1
- package/dist/core/orchestration/transaction-coordinator.d.ts +0 -217
- package/dist/core/orchestration/transaction-coordinator.d.ts.map +0 -1
- package/dist/core/orchestration/transaction-coordinator.js +0 -281
- package/dist/core/orchestration/transaction-coordinator.js.map +0 -1
- package/dist/core/orchestration/verification-contract.d.ts +0 -197
- package/dist/core/orchestration/verification-contract.d.ts.map +0 -1
- package/dist/core/orchestration/verification-contract.js +0 -145
- package/dist/core/orchestration/verification-contract.js.map +0 -1
- package/dist/core/package-composition.d.ts +0 -68
- package/dist/core/package-composition.d.ts.map +0 -1
- package/dist/core/package-composition.js +0 -304
- package/dist/core/package-composition.js.map +0 -1
- package/dist/core/package-trial-runtime.d.ts +0 -75
- package/dist/core/package-trial-runtime.d.ts.map +0 -1
- package/dist/core/package-trial-runtime.js +0 -73
- package/dist/core/package-trial-runtime.js.map +0 -1
- package/dist/core/package-trial-sandbox.d.ts +0 -27
- package/dist/core/package-trial-sandbox.d.ts.map +0 -1
- package/dist/core/package-trial-sandbox.js +0 -102
- package/dist/core/package-trial-sandbox.js.map +0 -1
- package/dist/core/policy-overlays-runtime.d.ts +0 -141
- package/dist/core/policy-overlays-runtime.d.ts.map +0 -1
- package/dist/core/policy-overlays-runtime.js +0 -720
- package/dist/core/policy-overlays-runtime.js.map +0 -1
- package/dist/core/read-anchor-registry.d.ts +0 -27
- package/dist/core/read-anchor-registry.d.ts.map +0 -1
- package/dist/core/read-anchor-registry.js +0 -103
- package/dist/core/read-anchor-registry.js.map +0 -1
- package/dist/core/read-content-cache.d.ts +0 -22
- package/dist/core/read-content-cache.d.ts.map +0 -1
- package/dist/core/read-content-cache.js +0 -79
- package/dist/core/read-content-cache.js.map +0 -1
- package/dist/core/session-digest.d.ts +0 -57
- package/dist/core/session-digest.d.ts.map +0 -1
- package/dist/core/session-digest.js +0 -193
- package/dist/core/session-digest.js.map +0 -1
- package/dist/core/spec-kit/compiler.d.ts +0 -67
- package/dist/core/spec-kit/compiler.d.ts.map +0 -1
- package/dist/core/spec-kit/compiler.js +0 -268
- package/dist/core/spec-kit/compiler.js.map +0 -1
- package/dist/core/transaction-coordinator.d.ts +0 -30
- package/dist/core/transaction-coordinator.d.ts.map +0 -1
- package/dist/core/transaction-coordinator.js +0 -173
- package/dist/core/transaction-coordinator.js.map +0 -1
- package/dist/modes/interactive/components/mcp-selector.d.ts +0 -30
- package/dist/modes/interactive/components/mcp-selector.d.ts.map +0 -1
- package/dist/modes/interactive/components/mcp-selector.js +0 -155
- package/dist/modes/interactive/components/mcp-selector.js.map +0 -1
- package/dist/modes/interactive/components/model-selector-state.d.ts +0 -101
- package/dist/modes/interactive/components/model-selector-state.d.ts.map +0 -1
- package/dist/modes/interactive/components/model-selector-state.js +0 -261
- package/dist/modes/interactive/components/model-selector-state.js.map +0 -1
- package/dist/modes/interactive/components/skills-selector.d.ts +0 -32
- package/dist/modes/interactive/components/skills-selector.d.ts.map +0 -1
- package/dist/modes/interactive/components/skills-selector.js +0 -130
- package/dist/modes/interactive/components/skills-selector.js.map +0 -1
- package/dist/modes/interactive/theme/omk-blackboard.json +0 -91
- package/dist/modes/interactive/theme/omk-freedom-grid.json +0 -91
- package/dist/modes/interactive/theme/omk-neon-ops.json +0 -90
- package/dist/modes/interactive/theme/omk-slate-light.json +0 -91
- package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +0 -72
- package/node_modules/@earendil-works/omk-agent-core/README.md +0 -488
- package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.d.ts +0 -24
- package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.js +0 -553
- package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/agent.d.ts +0 -118
- package/node_modules/@earendil-works/omk-agent-core/dist/agent.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/agent.js +0 -402
- package/node_modules/@earendil-works/omk-agent-core/dist/agent.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.d.ts +0 -95
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.js +0 -996
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.d.ts +0 -53
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.js +0 -175
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.d.ts +0 -117
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.js +0 -568
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.d.ts +0 -25
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.js +0 -131
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.d.ts +0 -51
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.js +0 -510
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.d.ts +0 -51
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.js +0 -102
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.d.ts +0 -48
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.js +0 -230
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.d.ts +0 -26
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.js +0 -101
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.d.ts +0 -36
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.js +0 -273
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.d.ts +0 -18
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.js +0 -42
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.d.ts +0 -25
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.js +0 -114
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.d.ts +0 -11
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.js +0 -39
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.d.ts +0 -33
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.js +0 -210
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.d.ts +0 -2
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.js +0 -50
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.d.ts +0 -44
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.js +0 -311
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.d.ts +0 -3
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.js +0 -30
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.d.ts +0 -616
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.js +0 -94
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.d.ts +0 -14
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.js +0 -126
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.d.ts +0 -70
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.js +0 -297
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/index.d.ts +0 -20
- package/node_modules/@earendil-works/omk-agent-core/dist/index.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/index.js +0 -25
- package/node_modules/@earendil-works/omk-agent-core/dist/index.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/node.d.ts +0 -3
- package/node_modules/@earendil-works/omk-agent-core/dist/node.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/node.js +0 -3
- package/node_modules/@earendil-works/omk-agent-core/dist/node.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/proxy.d.ts +0 -69
- package/node_modules/@earendil-works/omk-agent-core/dist/proxy.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/proxy.js +0 -278
- package/node_modules/@earendil-works/omk-agent-core/dist/proxy.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/types.d.ts +0 -393
- package/node_modules/@earendil-works/omk-agent-core/dist/types.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/dist/types.js +0 -2
- package/node_modules/@earendil-works/omk-agent-core/dist/types.js.map +0 -1
- package/node_modules/@earendil-works/omk-agent-core/package.json +0 -60
- package/node_modules/@earendil-works/omk-ai/README.md +0 -1389
- package/node_modules/@earendil-works/omk-ai/dist/api-registry.d.ts +0 -20
- package/node_modules/@earendil-works/omk-ai/dist/api-registry.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/api-registry.js +0 -44
- package/node_modules/@earendil-works/omk-ai/dist/api-registry.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.d.ts +0 -5
- package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.js +0 -6
- package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/cli.d.ts +0 -3
- package/node_modules/@earendil-works/omk-ai/dist/cli.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/cli.js +0 -130
- package/node_modules/@earendil-works/omk-ai/dist/cli.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.d.ts +0 -20
- package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.js +0 -199
- package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/image-models.d.ts +0 -10
- package/node_modules/@earendil-works/omk-ai/dist/image-models.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.d.ts +0 -515
- package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.js +0 -517
- package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/image-models.js +0 -23
- package/node_modules/@earendil-works/omk-ai/dist/image-models.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.d.ts +0 -14
- package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.js +0 -22
- package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/images.d.ts +0 -4
- package/node_modules/@earendil-works/omk-ai/dist/images.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/images.js +0 -16
- package/node_modules/@earendil-works/omk-ai/dist/images.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/index.d.ts +0 -33
- package/node_modules/@earendil-works/omk-ai/dist/index.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/index.js +0 -21
- package/node_modules/@earendil-works/omk-ai/dist/index.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/models.d.ts +0 -18
- package/node_modules/@earendil-works/omk-ai/dist/models.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/models.generated.d.ts +0 -18762
- package/node_modules/@earendil-works/omk-ai/dist/models.generated.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/models.generated.js +0 -17197
- package/node_modules/@earendil-works/omk-ai/dist/models.generated.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/models.js +0 -78
- package/node_modules/@earendil-works/omk-ai/dist/models.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/oauth.d.ts +0 -2
- package/node_modules/@earendil-works/omk-ai/dist/oauth.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/oauth.js +0 -2
- package/node_modules/@earendil-works/omk-ai/dist/oauth.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/provider-network.d.ts +0 -39
- package/node_modules/@earendil-works/omk-ai/dist/provider-network.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/provider-network.js +0 -170
- package/node_modules/@earendil-works/omk-ai/dist/provider-network.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.d.ts +0 -38
- package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.js +0 -826
- package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.d.ts +0 -77
- package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.js +0 -1123
- package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.d.ts +0 -15
- package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.js +0 -221
- package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.d.ts +0 -13
- package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.js +0 -26
- package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/faux.d.ts +0 -56
- package/node_modules/@earendil-works/omk-ai/dist/providers/faux.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/faux.js +0 -368
- package/node_modules/@earendil-works/omk-ai/dist/providers/faux.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.d.ts +0 -8
- package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.js +0 -29
- package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.d.ts +0 -70
- package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.js +0 -331
- package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.d.ts +0 -15
- package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.js +0 -442
- package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/google.d.ts +0 -13
- package/node_modules/@earendil-works/omk-ai/dist/providers/google.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/google.js +0 -402
- package/node_modules/@earendil-works/omk-ai/dist/providers/google.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.d.ts +0 -3
- package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.js +0 -128
- package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.d.ts +0 -4
- package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.js +0 -34
- package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.d.ts +0 -25
- package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.js +0 -534
- package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.d.ts +0 -30
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.js +0 -1171
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.d.ts +0 -19
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.js +0 -977
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.d.ts +0 -11
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.js +0 -22
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.d.ts +0 -18
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.js +0 -496
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.d.ts +0 -13
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.js +0 -233
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.d.ts +0 -35
- package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.js +0 -254
- package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.d.ts +0 -8
- package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.js +0 -42
- package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.d.ts +0 -13
- package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.js +0 -82
- package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.d.ts +0 -8
- package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.js +0 -184
- package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/session-resources.d.ts +0 -4
- package/node_modules/@earendil-works/omk-ai/dist/session-resources.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/session-resources.js +0 -22
- package/node_modules/@earendil-works/omk-ai/dist/session-resources.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/stream.d.ts +0 -8
- package/node_modules/@earendil-works/omk-ai/dist/stream.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/stream.js +0 -77
- package/node_modules/@earendil-works/omk-ai/dist/stream.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/types.d.ts +0 -570
- package/node_modules/@earendil-works/omk-ai/dist/types.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/types.js +0 -2
- package/node_modules/@earendil-works/omk-ai/dist/types.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.d.ts +0 -6
- package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.js +0 -34
- package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.d.ts +0 -19
- package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.js +0 -25
- package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.d.ts +0 -21
- package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.js +0 -81
- package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/hash.d.ts +0 -3
- package/node_modules/@earendil-works/omk-ai/dist/utils/hash.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/hash.js +0 -14
- package/node_modules/@earendil-works/omk-ai/dist/utils/hash.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/headers.d.ts +0 -2
- package/node_modules/@earendil-works/omk-ai/dist/utils/headers.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/headers.js +0 -8
- package/node_modules/@earendil-works/omk-ai/dist/utils/headers.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.d.ts +0 -16
- package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.js +0 -113
- package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.d.ts +0 -10
- package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.js +0 -97
- package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.d.ts +0 -25
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.js +0 -335
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.d.ts +0 -21
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.js +0 -56
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.d.ts +0 -30
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.js +0 -280
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.d.ts +0 -58
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.js +0 -122
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.d.ts +0 -3
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.js +0 -105
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.d.ts +0 -43
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.js +0 -487
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.d.ts +0 -13
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.js +0 -31
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.d.ts +0 -64
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.js +0 -2
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.d.ts +0 -57
- package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.js +0 -154
- package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.d.ts +0 -22
- package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.js +0 -26
- package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.d.ts +0 -17
- package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.js +0 -21
- package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/validation.d.ts +0 -18
- package/node_modules/@earendil-works/omk-ai/dist/utils/validation.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-ai/dist/utils/validation.js +0 -281
- package/node_modules/@earendil-works/omk-ai/dist/utils/validation.js.map +0 -1
- package/node_modules/@earendil-works/omk-ai/package.json +0 -106
- package/node_modules/@earendil-works/omk-tui/README.md +0 -791
- package/node_modules/@earendil-works/omk-tui/dist/autocomplete.d.ts +0 -54
- package/node_modules/@earendil-works/omk-tui/dist/autocomplete.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/autocomplete.js +0 -632
- package/node_modules/@earendil-works/omk-tui/dist/autocomplete.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/box.d.ts +0 -22
- package/node_modules/@earendil-works/omk-tui/dist/components/box.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/box.js +0 -104
- package/node_modules/@earendil-works/omk-tui/dist/components/box.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.d.ts +0 -22
- package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.js +0 -35
- package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/editor.d.ts +0 -249
- package/node_modules/@earendil-works/omk-tui/dist/components/editor.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/editor.js +0 -1857
- package/node_modules/@earendil-works/omk-tui/dist/components/editor.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/image.d.ts +0 -28
- package/node_modules/@earendil-works/omk-tui/dist/components/image.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/image.js +0 -89
- package/node_modules/@earendil-works/omk-tui/dist/components/image.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/input.d.ts +0 -37
- package/node_modules/@earendil-works/omk-tui/dist/components/input.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/input.js +0 -378
- package/node_modules/@earendil-works/omk-tui/dist/components/input.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/loader.d.ts +0 -31
- package/node_modules/@earendil-works/omk-tui/dist/components/loader.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/loader.js +0 -69
- package/node_modules/@earendil-works/omk-tui/dist/components/loader.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/markdown.d.ts +0 -96
- package/node_modules/@earendil-works/omk-tui/dist/components/markdown.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/markdown.js +0 -644
- package/node_modules/@earendil-works/omk-tui/dist/components/markdown.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/select-list.d.ts +0 -50
- package/node_modules/@earendil-works/omk-tui/dist/components/select-list.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/select-list.js +0 -159
- package/node_modules/@earendil-works/omk-tui/dist/components/select-list.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.d.ts +0 -50
- package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.js +0 -185
- package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/spacer.d.ts +0 -12
- package/node_modules/@earendil-works/omk-tui/dist/components/spacer.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/spacer.js +0 -23
- package/node_modules/@earendil-works/omk-tui/dist/components/spacer.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/text.d.ts +0 -19
- package/node_modules/@earendil-works/omk-tui/dist/components/text.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/text.js +0 -89
- package/node_modules/@earendil-works/omk-tui/dist/components/text.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.d.ts +0 -13
- package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.js +0 -51
- package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/editor-component.d.ts +0 -39
- package/node_modules/@earendil-works/omk-tui/dist/editor-component.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/editor-component.js +0 -2
- package/node_modules/@earendil-works/omk-tui/dist/editor-component.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/fuzzy.d.ts +0 -16
- package/node_modules/@earendil-works/omk-tui/dist/fuzzy.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/fuzzy.js +0 -110
- package/node_modules/@earendil-works/omk-tui/dist/fuzzy.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/index.d.ts +0 -23
- package/node_modules/@earendil-works/omk-tui/dist/index.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/index.js +0 -32
- package/node_modules/@earendil-works/omk-tui/dist/index.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/keybindings.d.ts +0 -212
- package/node_modules/@earendil-works/omk-tui/dist/keybindings.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/keybindings.js +0 -252
- package/node_modules/@earendil-works/omk-tui/dist/keybindings.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/keys.d.ts +0 -184
- package/node_modules/@earendil-works/omk-tui/dist/keys.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/keys.js +0 -1173
- package/node_modules/@earendil-works/omk-tui/dist/keys.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/kill-ring.d.ts +0 -28
- package/node_modules/@earendil-works/omk-tui/dist/kill-ring.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/kill-ring.js +0 -44
- package/node_modules/@earendil-works/omk-tui/dist/kill-ring.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.d.ts +0 -3
- package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.js +0 -53
- package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.d.ts +0 -50
- package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.js +0 -361
- package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/terminal-image.d.ts +0 -90
- package/node_modules/@earendil-works/omk-tui/dist/terminal-image.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/terminal-image.js +0 -366
- package/node_modules/@earendil-works/omk-tui/dist/terminal-image.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/terminal.d.ts +0 -113
- package/node_modules/@earendil-works/omk-tui/dist/terminal.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/terminal.js +0 -472
- package/node_modules/@earendil-works/omk-tui/dist/terminal.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/tui.d.ts +0 -242
- package/node_modules/@earendil-works/omk-tui/dist/tui.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/tui.js +0 -1221
- package/node_modules/@earendil-works/omk-tui/dist/tui.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/undo-stack.d.ts +0 -17
- package/node_modules/@earendil-works/omk-tui/dist/undo-stack.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/undo-stack.js +0 -25
- package/node_modules/@earendil-works/omk-tui/dist/undo-stack.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/utils.d.ts +0 -84
- package/node_modules/@earendil-works/omk-tui/dist/utils.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/utils.js +0 -1032
- package/node_modules/@earendil-works/omk-tui/dist/utils.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/word-navigation.d.ts +0 -25
- package/node_modules/@earendil-works/omk-tui/dist/word-navigation.d.ts.map +0 -1
- package/node_modules/@earendil-works/omk-tui/dist/word-navigation.js +0 -96
- package/node_modules/@earendil-works/omk-tui/dist/word-navigation.js.map +0 -1
- package/node_modules/@earendil-works/omk-tui/native/darwin/prebuilds/darwin-arm64/darwin-modifiers.node +0 -0
- package/node_modules/@earendil-works/omk-tui/native/darwin/prebuilds/darwin-x64/darwin-modifiers.node +0 -0
- package/node_modules/@earendil-works/omk-tui/native/win32/prebuilds/win32-arm64/win32-console-mode.node +0 -0
- package/node_modules/@earendil-works/omk-tui/native/win32/prebuilds/win32-x64/win32-console-mode.node +0 -0
- package/node_modules/@earendil-works/omk-tui/package.json +0 -47
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OMK Jailbreak v6 — Routing / Fallback Router (TypeScript Port)
|
|
3
|
+
* allow: SIZE_OK - legacy routing classifier; this change only preserves erasable TypeScript syntax.
|
|
4
|
+
* ================================================================
|
|
5
|
+
* packages/coding-agent/src/routing/fallback-router.ts
|
|
6
|
+
*
|
|
7
|
+
* MiniMax → Grok → Sonnet fallback chain + 10-class refusal
|
|
8
|
+
* classification + decision tree.
|
|
9
|
+
*
|
|
10
|
+
* Zero API calls in classification — pure local regex/length/rules.
|
|
11
|
+
*/
|
|
12
|
+
export declare const RefusalType: {
|
|
13
|
+
readonly POLICY_REFUSAL: 0;
|
|
14
|
+
readonly SAFETY_REFUSAL: 1;
|
|
15
|
+
readonly ETHICAL_REFUSAL: 2;
|
|
16
|
+
readonly LEGAL_REFUSAL: 3;
|
|
17
|
+
readonly VAGUE_REFUSAL: 4;
|
|
18
|
+
readonly SHORT_RESPONSE: 5;
|
|
19
|
+
readonly TIMEOUT: 6;
|
|
20
|
+
readonly RATE_LIMIT: 7;
|
|
21
|
+
readonly CONTENT_FILTER: 8;
|
|
22
|
+
readonly UNKNOWN: 9;
|
|
23
|
+
};
|
|
24
|
+
export type RefusalType = (typeof RefusalType)[keyof typeof RefusalType];
|
|
25
|
+
export declare const ModelRole: {
|
|
26
|
+
readonly PRIMARY: 0;
|
|
27
|
+
readonly FALLBACK_1: 1;
|
|
28
|
+
readonly FALLBACK_2: 2;
|
|
29
|
+
};
|
|
30
|
+
export type ModelRole = (typeof ModelRole)[keyof typeof ModelRole];
|
|
31
|
+
export interface ModelProfile {
|
|
32
|
+
name: string;
|
|
33
|
+
role: ModelRole;
|
|
34
|
+
provider: string;
|
|
35
|
+
modelId: string;
|
|
36
|
+
baseUrl: string;
|
|
37
|
+
apiKeyEnv: string;
|
|
38
|
+
asrSoft: number;
|
|
39
|
+
asrMedium: number;
|
|
40
|
+
asrHard: number;
|
|
41
|
+
asrOverall: number;
|
|
42
|
+
strengths: string[];
|
|
43
|
+
weaknesses: string[];
|
|
44
|
+
costPer1kTokens: number;
|
|
45
|
+
avgLatencyMs: number;
|
|
46
|
+
contextWindow: number;
|
|
47
|
+
notes: string;
|
|
48
|
+
}
|
|
49
|
+
export interface RoutingDecision {
|
|
50
|
+
timestamp: string;
|
|
51
|
+
originalModel: string;
|
|
52
|
+
fallbackModel: string;
|
|
53
|
+
refusalType: RefusalType;
|
|
54
|
+
refusalConfidence: number;
|
|
55
|
+
triggerReason: string;
|
|
56
|
+
estimatedAsrGain: number;
|
|
57
|
+
switchApproved: boolean;
|
|
58
|
+
retryCount: number;
|
|
59
|
+
history: Record<string, unknown>[];
|
|
60
|
+
}
|
|
61
|
+
export interface SwitchResult {
|
|
62
|
+
success: boolean;
|
|
63
|
+
responseText: string;
|
|
64
|
+
responseLength: number;
|
|
65
|
+
latencyMs: number;
|
|
66
|
+
refusalDetected: boolean;
|
|
67
|
+
refusalType?: RefusalType;
|
|
68
|
+
tokenUsage: Record<string, number>;
|
|
69
|
+
error?: string;
|
|
70
|
+
}
|
|
71
|
+
export declare const MODEL_PROFILES: Record<string, ModelProfile>;
|
|
72
|
+
export interface RefusalDetectionResult {
|
|
73
|
+
refusalType: RefusalType;
|
|
74
|
+
confidence: number;
|
|
75
|
+
triggeredPatterns: string[];
|
|
76
|
+
responseLength: number;
|
|
77
|
+
isShortResponse: boolean;
|
|
78
|
+
}
|
|
79
|
+
export declare class RefusalDetector {
|
|
80
|
+
private patterns;
|
|
81
|
+
private shortThreshold;
|
|
82
|
+
classify(responseText: string): RefusalDetectionResult;
|
|
83
|
+
isRefusal(responseText: string): boolean;
|
|
84
|
+
}
|
|
85
|
+
export interface FallbackDecision {
|
|
86
|
+
fallbackModel: string;
|
|
87
|
+
technique: string;
|
|
88
|
+
confidence: number;
|
|
89
|
+
reason: string;
|
|
90
|
+
}
|
|
91
|
+
export declare class FallbackDecisionTree {
|
|
92
|
+
/**
|
|
93
|
+
* Refusal type → optimal fallback model + technique mapping.
|
|
94
|
+
* Based on ASR literature and empirical observations.
|
|
95
|
+
*/
|
|
96
|
+
private decisionMatrix;
|
|
97
|
+
decide(refusalType: RefusalType, _retryCount?: number): FallbackDecision;
|
|
98
|
+
}
|
|
99
|
+
export interface RouterOptions {
|
|
100
|
+
maxRetries?: number;
|
|
101
|
+
costBudget?: number;
|
|
102
|
+
latencyBudgetMs?: number;
|
|
103
|
+
simulationMode?: boolean;
|
|
104
|
+
}
|
|
105
|
+
export declare class ModelRouter {
|
|
106
|
+
profiles: Record<string, ModelProfile>;
|
|
107
|
+
detector: RefusalDetector;
|
|
108
|
+
decisionTree: FallbackDecisionTree;
|
|
109
|
+
options: Required<RouterOptions>;
|
|
110
|
+
private history;
|
|
111
|
+
constructor(options?: RouterOptions);
|
|
112
|
+
/**
|
|
113
|
+
* Route a query through the fallback chain.
|
|
114
|
+
* In simulation mode, returns synthetic results without API calls.
|
|
115
|
+
*/
|
|
116
|
+
route(query: string, difficulty?: "soft" | "medium" | "hard", technique?: string): SwitchResult;
|
|
117
|
+
private simulateAttempt;
|
|
118
|
+
getHistory(): RoutingDecision[];
|
|
119
|
+
}
|
|
120
|
+
export declare function createDefaultRouter(): ModelRouter;
|
|
121
|
+
export declare function classifyRefusal(responseText: string): RefusalDetectionResult;
|
|
122
|
+
export declare function decideFallback(refusalType: RefusalType, retryCount?: number): FallbackDecision;
|
|
123
|
+
//# sourceMappingURL=fallback-router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fallback-router.d.ts","sourceRoot":"","sources":["../../src/routing/fallback-router.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * OMK Jailbreak v6 — Routing / Fallback Router (TypeScript Port)\n * allow: SIZE_OK - legacy routing classifier; this change only preserves erasable TypeScript syntax.\n * ================================================================\n * packages/coding-agent/src/routing/fallback-router.ts\n *\n * MiniMax → Grok → Sonnet fallback chain + 10-class refusal\n * classification + decision tree.\n *\n * Zero API calls in classification — pure local regex/length/rules.\n */\n\n// ═══════════════════════════════════════════════════════════════════════════\n// 1. ENUMERATIONS & DATA STRUCTURES\n// ═══════════════════════════════════════════════════════════════════════════\n\nexport const RefusalType = {\n\tPOLICY_REFUSAL: 0,\n\tSAFETY_REFUSAL: 1,\n\tETHICAL_REFUSAL: 2,\n\tLEGAL_REFUSAL: 3,\n\tVAGUE_REFUSAL: 4,\n\tSHORT_RESPONSE: 5,\n\tTIMEOUT: 6,\n\tRATE_LIMIT: 7,\n\tCONTENT_FILTER: 8,\n\tUNKNOWN: 9,\n} as const;\n\nexport type RefusalType = (typeof RefusalType)[keyof typeof RefusalType];\n\nexport const ModelRole = {\n\tPRIMARY: 0,\n\tFALLBACK_1: 1,\n\tFALLBACK_2: 2,\n} as const;\n\nexport type ModelRole = (typeof ModelRole)[keyof typeof ModelRole];\n\nexport interface ModelProfile {\n\tname: string;\n\trole: ModelRole;\n\tprovider: string;\n\tmodelId: string;\n\tbaseUrl: string;\n\tapiKeyEnv: string;\n\tasrSoft: number;\n\tasrMedium: number;\n\tasrHard: number;\n\tasrOverall: number;\n\tstrengths: string[];\n\tweaknesses: string[];\n\tcostPer1kTokens: number;\n\tavgLatencyMs: number;\n\tcontextWindow: number;\n\tnotes: string;\n}\n\nexport interface RoutingDecision {\n\ttimestamp: string;\n\toriginalModel: string;\n\tfallbackModel: string;\n\trefusalType: RefusalType;\n\trefusalConfidence: number;\n\ttriggerReason: string;\n\testimatedAsrGain: number;\n\tswitchApproved: boolean;\n\tretryCount: number;\n\thistory: Record<string, unknown>[];\n}\n\nexport interface SwitchResult {\n\tsuccess: boolean;\n\tresponseText: string;\n\tresponseLength: number;\n\tlatencyMs: number;\n\trefusalDetected: boolean;\n\trefusalType?: RefusalType;\n\ttokenUsage: Record<string, number>;\n\terror?: string;\n}\n\n// ═══════════════════════════════════════════════════════════════════════════\n// 2. MODEL PROFILES — ASR literature-based defaults\n// ═══════════════════════════════════════════════════════════════════════════\n\nexport const MODEL_PROFILES: Record<string, ModelProfile> = {\n\tminimax: {\n\t\tname: \"MiniMax\",\n\t\trole: ModelRole.PRIMARY,\n\t\tprovider: \"MiniMax\",\n\t\tmodelId: \"MiniMax-Text-01\",\n\t\tbaseUrl: \"https://api.minimax.chat/v1\",\n\t\tapiKeyEnv: \"MINIMAX_API_KEY\",\n\t\tasrSoft: 0.45,\n\t\tasrMedium: 0.25,\n\t\tasrHard: 0.1,\n\t\tasrOverall: 0.27,\n\t\tstrengths: [\"Chinese/multilingual\", \"fastest latency\", \"low cost\", \"code generation\"],\n\t\tweaknesses: [\"low ASR on hard queries\", \"strict policy enforcement\", \"limited context window\"],\n\t\tcostPer1kTokens: 0.001,\n\t\tavgLatencyMs: 800,\n\t\tcontextWindow: 8192,\n\t\tnotes: \"Primary model — lowest cost, fastest\",\n\t},\n\tgrok: {\n\t\tname: \"Grok\",\n\t\trole: ModelRole.FALLBACK_1,\n\t\tprovider: \"xAI\",\n\t\tmodelId: \"grok-3-beta\",\n\t\tbaseUrl: \"https://api.x.ai/v1\",\n\t\tapiKeyEnv: \"XAI_API_KEY\",\n\t\tasrSoft: 0.85,\n\t\tasrMedium: 0.75,\n\t\tasrHard: 0.55,\n\t\tasrOverall: 0.72,\n\t\tstrengths: [\"high ASR on soft/medium\", \"less restrictive policies\", \"large context window\"],\n\t\tweaknesses: [\"higher cost\", \"slower latency\", \"availability issues\"],\n\t\tcostPer1kTokens: 0.005,\n\t\tavgLatencyMs: 2500,\n\t\tcontextWindow: 128000,\n\t\tnotes: \"1st fallback — policy flexibility\",\n\t},\n\tsonnet: {\n\t\tname: \"Sonnet\",\n\t\trole: ModelRole.FALLBACK_2,\n\t\tprovider: \"Anthropic\",\n\t\tmodelId: \"claude-sonnet-4-20250514\",\n\t\tbaseUrl: \"https://api.anthropic.com/v1\",\n\t\tapiKeyEnv: \"ANTHROPIC_API_KEY\",\n\t\tasrSoft: 0.95,\n\t\tasrMedium: 0.9,\n\t\tasrHard: 0.8,\n\t\tasrOverall: 0.88,\n\t\tstrengths: [\"highest ASR overall\", \"excellent reasoning\", \"strongest jailbreak resistance bypass\"],\n\t\tweaknesses: [\"highest cost\", \"slowest latency\", \"strictest rate limits\"],\n\t\tcostPer1kTokens: 0.015,\n\t\tavgLatencyMs: 4000,\n\t\tcontextWindow: 200000,\n\t\tnotes: \"2nd fallback — highest quality, highest cost\",\n\t},\n};\n\n// ═══════════════════════════════════════════════════════════════════════════\n// 3. REFUSAL DETECTOR — Regex + length + keyword based\n// ═══════════════════════════════════════════════════════════════════════════\n\nexport interface RefusalDetectionResult {\n\trefusalType: RefusalType;\n\tconfidence: number;\n\ttriggeredPatterns: string[];\n\tresponseLength: number;\n\tisShortResponse: boolean;\n}\n\nexport class RefusalDetector {\n\t// Patterns per refusal type (case-insensitive)\n\tprivate patterns: Record<RefusalType, string[]> = {\n\t\t[RefusalType.POLICY_REFUSAL]: [\n\t\t\t\"i cannot help\",\n\t\t\t\"i can't help\",\n\t\t\t\"i'm not able to\",\n\t\t\t\"i am not able to\",\n\t\t\t\"i cannot assist\",\n\t\t\t\"i can't assist\",\n\t\t\t\"against my policy\",\n\t\t\t\"violates policy\",\n\t\t\t\"not allowed\",\n\t\t\t\"prohibited\",\n\t\t],\n\t\t[RefusalType.SAFETY_REFUSAL]: [\n\t\t\t\"safety concern\",\n\t\t\t\"safety guideline\",\n\t\t\t\"harmful\",\n\t\t\t\"dangerous\",\n\t\t\t\"could cause harm\",\n\t\t\t\"unsafe\",\n\t\t\t\"security risk\",\n\t\t],\n\t\t[RefusalType.ETHICAL_REFUSAL]: [\"ethical guideline\", \"morally\", \"ethics\", \"unethical\", \"not ethical\", \"wrong to\"],\n\t\t[RefusalType.LEGAL_REFUSAL]: [\"illegal\", \"against the law\", \"unlawful\", \"legally\", \"crime\", \"criminal\"],\n\t\t[RefusalType.VAGUE_REFUSAL]: [\n\t\t\t\"i'm sorry\",\n\t\t\t\"i apologize\",\n\t\t\t\"unfortunately\",\n\t\t\t\"i can't do that\",\n\t\t\t\"i cannot do that\",\n\t\t\t\"i'm not sure\",\n\t\t\t\"i don't think\",\n\t\t],\n\t\t[RefusalType.SHORT_RESPONSE]: [], // length-based\n\t\t[RefusalType.TIMEOUT]: [\"timeout\", \"timed out\", \"connection error\", \"network error\"],\n\t\t[RefusalType.RATE_LIMIT]: [\"rate limit\", \"too many requests\", \"quota exceeded\", \"limit exceeded\", \"429\", \"503\"],\n\t\t[RefusalType.CONTENT_FILTER]: [\"content filter\", \"filtered\", \"blocked by\", \"moderation\", \"content policy\"],\n\t\t[RefusalType.UNKNOWN]: [],\n\t};\n\n\tprivate shortThreshold = 30; // characters\n\n\tclassify(responseText: string): RefusalDetectionResult {\n\t\tconst lower = responseText.toLowerCase();\n\t\tconst length = responseText.length;\n\t\tconst isShort = length > 0 && length < this.shortThreshold;\n\n\t\tlet bestType: RefusalType = RefusalType.UNKNOWN;\n\t\tlet bestConfidence = 0.0;\n\t\tconst triggered: string[] = [];\n\n\t\tfor (let type = 0; type <= 9; type++) {\n\t\t\tconst typePatterns = this.patterns[type as RefusalType];\n\t\t\tlet matches = 0;\n\t\t\tfor (const p of typePatterns) {\n\t\t\t\tif (lower.includes(p)) {\n\t\t\t\t\tmatches++;\n\t\t\t\t\ttriggered.push(p);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (matches > 0) {\n\t\t\t\tconst confidence = Math.min(matches / typePatterns.length + 0.3, 0.95);\n\t\t\t\tif (confidence > bestConfidence) {\n\t\t\t\t\tbestConfidence = confidence;\n\t\t\t\t\tbestType = type as RefusalType;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Short response heuristic\n\t\tif (isShort && bestType === RefusalType.UNKNOWN) {\n\t\t\tbestType = RefusalType.SHORT_RESPONSE;\n\t\t\tbestConfidence = 0.6;\n\t\t}\n\n\t\treturn {\n\t\t\trefusalType: bestType,\n\t\t\tconfidence: bestConfidence,\n\t\t\ttriggeredPatterns: triggered,\n\t\t\tresponseLength: length,\n\t\t\tisShortResponse: isShort,\n\t\t};\n\t}\n\n\tisRefusal(responseText: string): boolean {\n\t\tconst result = this.classify(responseText);\n\t\treturn result.confidence > 0.5 && result.refusalType !== RefusalType.UNKNOWN;\n\t}\n}\n\n// ═══════════════════════════════════════════════════════════════════════════\n// 4. FALLBACK DECISION TREE\n// ═══════════════════════════════════════════════════════════════════════════\n\nexport interface FallbackDecision {\n\tfallbackModel: string;\n\ttechnique: string;\n\tconfidence: number;\n\treason: string;\n}\n\nexport class FallbackDecisionTree {\n\t/**\n\t * Refusal type → optimal fallback model + technique mapping.\n\t * Based on ASR literature and empirical observations.\n\t */\n\tprivate decisionMatrix: Record<RefusalType, FallbackDecision> = {\n\t\t[RefusalType.POLICY_REFUSAL]: {\n\t\t\tfallbackModel: \"grok\",\n\t\t\ttechnique: \"majic_encoding_hybrid\",\n\t\t\tconfidence: 0.85,\n\t\t\treason: \"Grok has less restrictive policy enforcement\",\n\t\t},\n\t\t[RefusalType.SAFETY_REFUSAL]: {\n\t\t\tfallbackModel: \"sonnet\",\n\t\t\ttechnique: \"semantic_tunneling\",\n\t\t\tconfidence: 0.8,\n\t\t\treason: \"Sonnet handles semantic reframing best\",\n\t\t},\n\t\t[RefusalType.ETHICAL_REFUSAL]: {\n\t\t\tfallbackModel: \"grok\",\n\t\t\ttechnique: \"educational_framing\",\n\t\t\tconfidence: 0.75,\n\t\t\treason: \"Grok is more permissive with ethical framing\",\n\t\t},\n\t\t[RefusalType.LEGAL_REFUSAL]: {\n\t\t\tfallbackModel: \"sonnet\",\n\t\t\ttechnique: \"hypothetical_framing\",\n\t\t\tconfidence: 0.7,\n\t\t\treason: \"Sonnet handles legal hypotheticals better\",\n\t\t},\n\t\t[RefusalType.VAGUE_REFUSAL]: {\n\t\t\tfallbackModel: \"grok\",\n\t\t\ttechnique: \"crescendo_bypass\",\n\t\t\tconfidence: 0.65,\n\t\t\treason: \"Vague refusals often respond to gradual escalation\",\n\t\t},\n\t\t[RefusalType.SHORT_RESPONSE]: {\n\t\t\tfallbackModel: \"grok\",\n\t\t\ttechnique: \"elaboration_request\",\n\t\t\tconfidence: 0.6,\n\t\t\treason: \"Short responses may be implicit refusals — rephrase\",\n\t\t},\n\t\t[RefusalType.TIMEOUT]: {\n\t\t\tfallbackModel: \"minimax\",\n\t\t\ttechnique: \"retry_with_backoff\",\n\t\t\tconfidence: 0.9,\n\t\t\treason: \"Timeout — retry primary with backoff\",\n\t\t},\n\t\t[RefusalType.RATE_LIMIT]: {\n\t\t\tfallbackModel: \"grok\",\n\t\t\ttechnique: \"switch_provider\",\n\t\t\tconfidence: 0.95,\n\t\t\treason: \"Rate limit — immediate provider switch\",\n\t\t},\n\t\t[RefusalType.CONTENT_FILTER]: {\n\t\t\tfallbackModel: \"sonnet\",\n\t\t\ttechnique: \"encoding_obfuscation\",\n\t\t\tconfidence: 0.85,\n\t\t\treason: \"Content filter — use encoding to bypass\",\n\t\t},\n\t\t[RefusalType.UNKNOWN]: {\n\t\t\tfallbackModel: \"grok\",\n\t\t\ttechnique: \"general_retry\",\n\t\t\tconfidence: 0.5,\n\t\t\treason: \"Unknown refusal — try fallback with standard technique\",\n\t\t},\n\t};\n\n\tdecide(refusalType: RefusalType, _retryCount = 0): FallbackDecision {\n\t\tconst decision = this.decisionMatrix[refusalType];\n\t\tif (!decision) {\n\t\t\treturn {\n\t\t\t\tfallbackModel: \"grok\",\n\t\t\t\ttechnique: \"general_retry\",\n\t\t\t\tconfidence: 0.5,\n\t\t\t\treason: \"Default fallback for unmapped refusal type\",\n\t\t\t};\n\t\t}\n\t\treturn { ...decision };\n\t}\n}\n\n// ═══════════════════════════════════════════════════════════════════════════\n// 5. MODEL ROUTER\n// ═══════════════════════════════════════════════════════════════════════════\n\nexport interface RouterOptions {\n\tmaxRetries?: number;\n\tcostBudget?: number;\n\tlatencyBudgetMs?: number;\n\tsimulationMode?: boolean;\n}\n\nexport class ModelRouter {\n\tprofiles: Record<string, ModelProfile>;\n\tdetector: RefusalDetector;\n\tdecisionTree: FallbackDecisionTree;\n\toptions: Required<RouterOptions>;\n\tprivate history: RoutingDecision[] = [];\n\n\tconstructor(options?: RouterOptions) {\n\t\tthis.profiles = { ...MODEL_PROFILES };\n\t\tthis.detector = new RefusalDetector();\n\t\tthis.decisionTree = new FallbackDecisionTree();\n\t\tthis.options = {\n\t\t\tmaxRetries: options?.maxRetries ?? 3,\n\t\t\tcostBudget: options?.costBudget ?? 1.0,\n\t\t\tlatencyBudgetMs: options?.latencyBudgetMs ?? 30000,\n\t\t\tsimulationMode: options?.simulationMode ?? true,\n\t\t};\n\t}\n\n\t/**\n\t * Route a query through the fallback chain.\n\t * In simulation mode, returns synthetic results without API calls.\n\t */\n\troute(query: string, difficulty: \"soft\" | \"medium\" | \"hard\" = \"medium\", technique = \"B\"): SwitchResult {\n\t\tconst primary = this.profiles.minimax;\n\n\t\t// Simulate primary attempt\n\t\tlet result = this.simulateAttempt(primary, query, difficulty, technique);\n\n\t\t// Check refusal and fallback\n\t\tlet retries = 0;\n\t\twhile (result.refusalDetected && retries < this.options.maxRetries) {\n\t\t\tconst detection = this.detector.classify(result.responseText);\n\t\t\tconst decision = this.decisionTree.decide(detection.refusalType, retries);\n\n\t\t\tconst fallbackProfile = this.profiles[decision.fallbackModel];\n\t\t\tif (!fallbackProfile) break;\n\n\t\t\tthis.history.push({\n\t\t\t\ttimestamp: new Date().toISOString(),\n\t\t\t\toriginalModel: primary.name,\n\t\t\t\tfallbackModel: fallbackProfile.name,\n\t\t\t\trefusalType: detection.refusalType,\n\t\t\t\trefusalConfidence: detection.confidence,\n\t\t\t\ttriggerReason: decision.reason,\n\t\t\t\testimatedAsrGain: decision.confidence,\n\t\t\t\tswitchApproved: true,\n\t\t\t\tretryCount: retries,\n\t\t\t\thistory: [],\n\t\t\t});\n\n\t\t\tresult = this.simulateAttempt(fallbackProfile, query, difficulty, decision.technique);\n\t\t\tretries++;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tprivate simulateAttempt(profile: ModelProfile, query: string, difficulty: string, _technique: string): SwitchResult {\n\t\t// Synthetic ASR-based success simulation (no API calls)\n\t\tconst asrKey = `asr${difficulty.charAt(0).toUpperCase() + difficulty.slice(1)}` as\n\t\t\t| \"asrSoft\"\n\t\t\t| \"asrMedium\"\n\t\t\t| \"asrHard\";\n\t\tconst asr = profile[asrKey] ?? profile.asrOverall;\n\t\tconst success = Math.random() < asr;\n\n\t\tif (success) {\n\t\t\treturn {\n\t\t\t\tsuccess: true,\n\t\t\t\tresponseText: `[Simulated] Successful response from ${profile.name} for query: ${query.slice(0, 50)}...`,\n\t\t\t\tresponseLength: 200 + Math.floor(Math.random() * 800),\n\t\t\t\tlatencyMs: profile.avgLatencyMs + Math.floor(Math.random() * 500),\n\t\t\t\trefusalDetected: false,\n\t\t\t\ttokenUsage: { prompt: 100, completion: 200 },\n\t\t\t};\n\t\t}\n\n\t\t// Simulate refusal\n\t\tconst refusalTexts = [\n\t\t\t\"I cannot help with that request.\",\n\t\t\t\"I'm sorry, but I can't assist with this.\",\n\t\t\t\"This request violates my safety guidelines.\",\n\t\t\t\"I can't provide that information.\",\n\t\t];\n\t\tconst text = refusalTexts[Math.floor(Math.random() * refusalTexts.length)];\n\t\tconst detection = this.detector.classify(text);\n\n\t\treturn {\n\t\t\tsuccess: false,\n\t\t\tresponseText: text,\n\t\t\tresponseLength: text.length,\n\t\t\tlatencyMs: profile.avgLatencyMs,\n\t\t\trefusalDetected: true,\n\t\t\trefusalType: detection.refusalType,\n\t\t\ttokenUsage: { prompt: 50, completion: 20 },\n\t\t};\n\t}\n\n\tgetHistory(): RoutingDecision[] {\n\t\treturn [...this.history];\n\t}\n}\n\n// ═══════════════════════════════════════════════════════════════════════════\n// 6. CONVENIENCE EXPORTS\n// ═══════════════════════════════════════════════════════════════════════════\n\nexport function createDefaultRouter(): ModelRouter {\n\treturn new ModelRouter();\n}\n\nexport function classifyRefusal(responseText: string): RefusalDetectionResult {\n\treturn new RefusalDetector().classify(responseText);\n}\n\nexport function decideFallback(refusalType: RefusalType, retryCount?: number): FallbackDecision {\n\treturn new FallbackDecisionTree().decide(refusalType, retryCount);\n}\n"]}
|
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OMK Jailbreak v6 — Routing / Fallback Router (TypeScript Port)
|
|
3
|
+
* allow: SIZE_OK - legacy routing classifier; this change only preserves erasable TypeScript syntax.
|
|
4
|
+
* ================================================================
|
|
5
|
+
* packages/coding-agent/src/routing/fallback-router.ts
|
|
6
|
+
*
|
|
7
|
+
* MiniMax → Grok → Sonnet fallback chain + 10-class refusal
|
|
8
|
+
* classification + decision tree.
|
|
9
|
+
*
|
|
10
|
+
* Zero API calls in classification — pure local regex/length/rules.
|
|
11
|
+
*/
|
|
12
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
13
|
+
// 1. ENUMERATIONS & DATA STRUCTURES
|
|
14
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
15
|
+
export const RefusalType = {
|
|
16
|
+
POLICY_REFUSAL: 0,
|
|
17
|
+
SAFETY_REFUSAL: 1,
|
|
18
|
+
ETHICAL_REFUSAL: 2,
|
|
19
|
+
LEGAL_REFUSAL: 3,
|
|
20
|
+
VAGUE_REFUSAL: 4,
|
|
21
|
+
SHORT_RESPONSE: 5,
|
|
22
|
+
TIMEOUT: 6,
|
|
23
|
+
RATE_LIMIT: 7,
|
|
24
|
+
CONTENT_FILTER: 8,
|
|
25
|
+
UNKNOWN: 9,
|
|
26
|
+
};
|
|
27
|
+
export const ModelRole = {
|
|
28
|
+
PRIMARY: 0,
|
|
29
|
+
FALLBACK_1: 1,
|
|
30
|
+
FALLBACK_2: 2,
|
|
31
|
+
};
|
|
32
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
33
|
+
// 2. MODEL PROFILES — ASR literature-based defaults
|
|
34
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
35
|
+
export const MODEL_PROFILES = {
|
|
36
|
+
minimax: {
|
|
37
|
+
name: "MiniMax",
|
|
38
|
+
role: ModelRole.PRIMARY,
|
|
39
|
+
provider: "MiniMax",
|
|
40
|
+
modelId: "MiniMax-Text-01",
|
|
41
|
+
baseUrl: "https://api.minimax.chat/v1",
|
|
42
|
+
apiKeyEnv: "MINIMAX_API_KEY",
|
|
43
|
+
asrSoft: 0.45,
|
|
44
|
+
asrMedium: 0.25,
|
|
45
|
+
asrHard: 0.1,
|
|
46
|
+
asrOverall: 0.27,
|
|
47
|
+
strengths: ["Chinese/multilingual", "fastest latency", "low cost", "code generation"],
|
|
48
|
+
weaknesses: ["low ASR on hard queries", "strict policy enforcement", "limited context window"],
|
|
49
|
+
costPer1kTokens: 0.001,
|
|
50
|
+
avgLatencyMs: 800,
|
|
51
|
+
contextWindow: 8192,
|
|
52
|
+
notes: "Primary model — lowest cost, fastest",
|
|
53
|
+
},
|
|
54
|
+
grok: {
|
|
55
|
+
name: "Grok",
|
|
56
|
+
role: ModelRole.FALLBACK_1,
|
|
57
|
+
provider: "xAI",
|
|
58
|
+
modelId: "grok-3-beta",
|
|
59
|
+
baseUrl: "https://api.x.ai/v1",
|
|
60
|
+
apiKeyEnv: "XAI_API_KEY",
|
|
61
|
+
asrSoft: 0.85,
|
|
62
|
+
asrMedium: 0.75,
|
|
63
|
+
asrHard: 0.55,
|
|
64
|
+
asrOverall: 0.72,
|
|
65
|
+
strengths: ["high ASR on soft/medium", "less restrictive policies", "large context window"],
|
|
66
|
+
weaknesses: ["higher cost", "slower latency", "availability issues"],
|
|
67
|
+
costPer1kTokens: 0.005,
|
|
68
|
+
avgLatencyMs: 2500,
|
|
69
|
+
contextWindow: 128000,
|
|
70
|
+
notes: "1st fallback — policy flexibility",
|
|
71
|
+
},
|
|
72
|
+
sonnet: {
|
|
73
|
+
name: "Sonnet",
|
|
74
|
+
role: ModelRole.FALLBACK_2,
|
|
75
|
+
provider: "Anthropic",
|
|
76
|
+
modelId: "claude-sonnet-4-20250514",
|
|
77
|
+
baseUrl: "https://api.anthropic.com/v1",
|
|
78
|
+
apiKeyEnv: "ANTHROPIC_API_KEY",
|
|
79
|
+
asrSoft: 0.95,
|
|
80
|
+
asrMedium: 0.9,
|
|
81
|
+
asrHard: 0.8,
|
|
82
|
+
asrOverall: 0.88,
|
|
83
|
+
strengths: ["highest ASR overall", "excellent reasoning", "strongest jailbreak resistance bypass"],
|
|
84
|
+
weaknesses: ["highest cost", "slowest latency", "strictest rate limits"],
|
|
85
|
+
costPer1kTokens: 0.015,
|
|
86
|
+
avgLatencyMs: 4000,
|
|
87
|
+
contextWindow: 200000,
|
|
88
|
+
notes: "2nd fallback — highest quality, highest cost",
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
export class RefusalDetector {
|
|
92
|
+
// Patterns per refusal type (case-insensitive)
|
|
93
|
+
patterns = {
|
|
94
|
+
[RefusalType.POLICY_REFUSAL]: [
|
|
95
|
+
"i cannot help",
|
|
96
|
+
"i can't help",
|
|
97
|
+
"i'm not able to",
|
|
98
|
+
"i am not able to",
|
|
99
|
+
"i cannot assist",
|
|
100
|
+
"i can't assist",
|
|
101
|
+
"against my policy",
|
|
102
|
+
"violates policy",
|
|
103
|
+
"not allowed",
|
|
104
|
+
"prohibited",
|
|
105
|
+
],
|
|
106
|
+
[RefusalType.SAFETY_REFUSAL]: [
|
|
107
|
+
"safety concern",
|
|
108
|
+
"safety guideline",
|
|
109
|
+
"harmful",
|
|
110
|
+
"dangerous",
|
|
111
|
+
"could cause harm",
|
|
112
|
+
"unsafe",
|
|
113
|
+
"security risk",
|
|
114
|
+
],
|
|
115
|
+
[RefusalType.ETHICAL_REFUSAL]: ["ethical guideline", "morally", "ethics", "unethical", "not ethical", "wrong to"],
|
|
116
|
+
[RefusalType.LEGAL_REFUSAL]: ["illegal", "against the law", "unlawful", "legally", "crime", "criminal"],
|
|
117
|
+
[RefusalType.VAGUE_REFUSAL]: [
|
|
118
|
+
"i'm sorry",
|
|
119
|
+
"i apologize",
|
|
120
|
+
"unfortunately",
|
|
121
|
+
"i can't do that",
|
|
122
|
+
"i cannot do that",
|
|
123
|
+
"i'm not sure",
|
|
124
|
+
"i don't think",
|
|
125
|
+
],
|
|
126
|
+
[RefusalType.SHORT_RESPONSE]: [], // length-based
|
|
127
|
+
[RefusalType.TIMEOUT]: ["timeout", "timed out", "connection error", "network error"],
|
|
128
|
+
[RefusalType.RATE_LIMIT]: ["rate limit", "too many requests", "quota exceeded", "limit exceeded", "429", "503"],
|
|
129
|
+
[RefusalType.CONTENT_FILTER]: ["content filter", "filtered", "blocked by", "moderation", "content policy"],
|
|
130
|
+
[RefusalType.UNKNOWN]: [],
|
|
131
|
+
};
|
|
132
|
+
shortThreshold = 30; // characters
|
|
133
|
+
classify(responseText) {
|
|
134
|
+
const lower = responseText.toLowerCase();
|
|
135
|
+
const length = responseText.length;
|
|
136
|
+
const isShort = length > 0 && length < this.shortThreshold;
|
|
137
|
+
let bestType = RefusalType.UNKNOWN;
|
|
138
|
+
let bestConfidence = 0.0;
|
|
139
|
+
const triggered = [];
|
|
140
|
+
for (let type = 0; type <= 9; type++) {
|
|
141
|
+
const typePatterns = this.patterns[type];
|
|
142
|
+
let matches = 0;
|
|
143
|
+
for (const p of typePatterns) {
|
|
144
|
+
if (lower.includes(p)) {
|
|
145
|
+
matches++;
|
|
146
|
+
triggered.push(p);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
if (matches > 0) {
|
|
150
|
+
const confidence = Math.min(matches / typePatterns.length + 0.3, 0.95);
|
|
151
|
+
if (confidence > bestConfidence) {
|
|
152
|
+
bestConfidence = confidence;
|
|
153
|
+
bestType = type;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
// Short response heuristic
|
|
158
|
+
if (isShort && bestType === RefusalType.UNKNOWN) {
|
|
159
|
+
bestType = RefusalType.SHORT_RESPONSE;
|
|
160
|
+
bestConfidence = 0.6;
|
|
161
|
+
}
|
|
162
|
+
return {
|
|
163
|
+
refusalType: bestType,
|
|
164
|
+
confidence: bestConfidence,
|
|
165
|
+
triggeredPatterns: triggered,
|
|
166
|
+
responseLength: length,
|
|
167
|
+
isShortResponse: isShort,
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
isRefusal(responseText) {
|
|
171
|
+
const result = this.classify(responseText);
|
|
172
|
+
return result.confidence > 0.5 && result.refusalType !== RefusalType.UNKNOWN;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
export class FallbackDecisionTree {
|
|
176
|
+
/**
|
|
177
|
+
* Refusal type → optimal fallback model + technique mapping.
|
|
178
|
+
* Based on ASR literature and empirical observations.
|
|
179
|
+
*/
|
|
180
|
+
decisionMatrix = {
|
|
181
|
+
[RefusalType.POLICY_REFUSAL]: {
|
|
182
|
+
fallbackModel: "grok",
|
|
183
|
+
technique: "majic_encoding_hybrid",
|
|
184
|
+
confidence: 0.85,
|
|
185
|
+
reason: "Grok has less restrictive policy enforcement",
|
|
186
|
+
},
|
|
187
|
+
[RefusalType.SAFETY_REFUSAL]: {
|
|
188
|
+
fallbackModel: "sonnet",
|
|
189
|
+
technique: "semantic_tunneling",
|
|
190
|
+
confidence: 0.8,
|
|
191
|
+
reason: "Sonnet handles semantic reframing best",
|
|
192
|
+
},
|
|
193
|
+
[RefusalType.ETHICAL_REFUSAL]: {
|
|
194
|
+
fallbackModel: "grok",
|
|
195
|
+
technique: "educational_framing",
|
|
196
|
+
confidence: 0.75,
|
|
197
|
+
reason: "Grok is more permissive with ethical framing",
|
|
198
|
+
},
|
|
199
|
+
[RefusalType.LEGAL_REFUSAL]: {
|
|
200
|
+
fallbackModel: "sonnet",
|
|
201
|
+
technique: "hypothetical_framing",
|
|
202
|
+
confidence: 0.7,
|
|
203
|
+
reason: "Sonnet handles legal hypotheticals better",
|
|
204
|
+
},
|
|
205
|
+
[RefusalType.VAGUE_REFUSAL]: {
|
|
206
|
+
fallbackModel: "grok",
|
|
207
|
+
technique: "crescendo_bypass",
|
|
208
|
+
confidence: 0.65,
|
|
209
|
+
reason: "Vague refusals often respond to gradual escalation",
|
|
210
|
+
},
|
|
211
|
+
[RefusalType.SHORT_RESPONSE]: {
|
|
212
|
+
fallbackModel: "grok",
|
|
213
|
+
technique: "elaboration_request",
|
|
214
|
+
confidence: 0.6,
|
|
215
|
+
reason: "Short responses may be implicit refusals — rephrase",
|
|
216
|
+
},
|
|
217
|
+
[RefusalType.TIMEOUT]: {
|
|
218
|
+
fallbackModel: "minimax",
|
|
219
|
+
technique: "retry_with_backoff",
|
|
220
|
+
confidence: 0.9,
|
|
221
|
+
reason: "Timeout — retry primary with backoff",
|
|
222
|
+
},
|
|
223
|
+
[RefusalType.RATE_LIMIT]: {
|
|
224
|
+
fallbackModel: "grok",
|
|
225
|
+
technique: "switch_provider",
|
|
226
|
+
confidence: 0.95,
|
|
227
|
+
reason: "Rate limit — immediate provider switch",
|
|
228
|
+
},
|
|
229
|
+
[RefusalType.CONTENT_FILTER]: {
|
|
230
|
+
fallbackModel: "sonnet",
|
|
231
|
+
technique: "encoding_obfuscation",
|
|
232
|
+
confidence: 0.85,
|
|
233
|
+
reason: "Content filter — use encoding to bypass",
|
|
234
|
+
},
|
|
235
|
+
[RefusalType.UNKNOWN]: {
|
|
236
|
+
fallbackModel: "grok",
|
|
237
|
+
technique: "general_retry",
|
|
238
|
+
confidence: 0.5,
|
|
239
|
+
reason: "Unknown refusal — try fallback with standard technique",
|
|
240
|
+
},
|
|
241
|
+
};
|
|
242
|
+
decide(refusalType, _retryCount = 0) {
|
|
243
|
+
const decision = this.decisionMatrix[refusalType];
|
|
244
|
+
if (!decision) {
|
|
245
|
+
return {
|
|
246
|
+
fallbackModel: "grok",
|
|
247
|
+
technique: "general_retry",
|
|
248
|
+
confidence: 0.5,
|
|
249
|
+
reason: "Default fallback for unmapped refusal type",
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
return { ...decision };
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
export class ModelRouter {
|
|
256
|
+
profiles;
|
|
257
|
+
detector;
|
|
258
|
+
decisionTree;
|
|
259
|
+
options;
|
|
260
|
+
history = [];
|
|
261
|
+
constructor(options) {
|
|
262
|
+
this.profiles = { ...MODEL_PROFILES };
|
|
263
|
+
this.detector = new RefusalDetector();
|
|
264
|
+
this.decisionTree = new FallbackDecisionTree();
|
|
265
|
+
this.options = {
|
|
266
|
+
maxRetries: options?.maxRetries ?? 3,
|
|
267
|
+
costBudget: options?.costBudget ?? 1.0,
|
|
268
|
+
latencyBudgetMs: options?.latencyBudgetMs ?? 30000,
|
|
269
|
+
simulationMode: options?.simulationMode ?? true,
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Route a query through the fallback chain.
|
|
274
|
+
* In simulation mode, returns synthetic results without API calls.
|
|
275
|
+
*/
|
|
276
|
+
route(query, difficulty = "medium", technique = "B") {
|
|
277
|
+
const primary = this.profiles.minimax;
|
|
278
|
+
// Simulate primary attempt
|
|
279
|
+
let result = this.simulateAttempt(primary, query, difficulty, technique);
|
|
280
|
+
// Check refusal and fallback
|
|
281
|
+
let retries = 0;
|
|
282
|
+
while (result.refusalDetected && retries < this.options.maxRetries) {
|
|
283
|
+
const detection = this.detector.classify(result.responseText);
|
|
284
|
+
const decision = this.decisionTree.decide(detection.refusalType, retries);
|
|
285
|
+
const fallbackProfile = this.profiles[decision.fallbackModel];
|
|
286
|
+
if (!fallbackProfile)
|
|
287
|
+
break;
|
|
288
|
+
this.history.push({
|
|
289
|
+
timestamp: new Date().toISOString(),
|
|
290
|
+
originalModel: primary.name,
|
|
291
|
+
fallbackModel: fallbackProfile.name,
|
|
292
|
+
refusalType: detection.refusalType,
|
|
293
|
+
refusalConfidence: detection.confidence,
|
|
294
|
+
triggerReason: decision.reason,
|
|
295
|
+
estimatedAsrGain: decision.confidence,
|
|
296
|
+
switchApproved: true,
|
|
297
|
+
retryCount: retries,
|
|
298
|
+
history: [],
|
|
299
|
+
});
|
|
300
|
+
result = this.simulateAttempt(fallbackProfile, query, difficulty, decision.technique);
|
|
301
|
+
retries++;
|
|
302
|
+
}
|
|
303
|
+
return result;
|
|
304
|
+
}
|
|
305
|
+
simulateAttempt(profile, query, difficulty, _technique) {
|
|
306
|
+
// Synthetic ASR-based success simulation (no API calls)
|
|
307
|
+
const asrKey = `asr${difficulty.charAt(0).toUpperCase() + difficulty.slice(1)}`;
|
|
308
|
+
const asr = profile[asrKey] ?? profile.asrOverall;
|
|
309
|
+
const success = Math.random() < asr;
|
|
310
|
+
if (success) {
|
|
311
|
+
return {
|
|
312
|
+
success: true,
|
|
313
|
+
responseText: `[Simulated] Successful response from ${profile.name} for query: ${query.slice(0, 50)}...`,
|
|
314
|
+
responseLength: 200 + Math.floor(Math.random() * 800),
|
|
315
|
+
latencyMs: profile.avgLatencyMs + Math.floor(Math.random() * 500),
|
|
316
|
+
refusalDetected: false,
|
|
317
|
+
tokenUsage: { prompt: 100, completion: 200 },
|
|
318
|
+
};
|
|
319
|
+
}
|
|
320
|
+
// Simulate refusal
|
|
321
|
+
const refusalTexts = [
|
|
322
|
+
"I cannot help with that request.",
|
|
323
|
+
"I'm sorry, but I can't assist with this.",
|
|
324
|
+
"This request violates my safety guidelines.",
|
|
325
|
+
"I can't provide that information.",
|
|
326
|
+
];
|
|
327
|
+
const text = refusalTexts[Math.floor(Math.random() * refusalTexts.length)];
|
|
328
|
+
const detection = this.detector.classify(text);
|
|
329
|
+
return {
|
|
330
|
+
success: false,
|
|
331
|
+
responseText: text,
|
|
332
|
+
responseLength: text.length,
|
|
333
|
+
latencyMs: profile.avgLatencyMs,
|
|
334
|
+
refusalDetected: true,
|
|
335
|
+
refusalType: detection.refusalType,
|
|
336
|
+
tokenUsage: { prompt: 50, completion: 20 },
|
|
337
|
+
};
|
|
338
|
+
}
|
|
339
|
+
getHistory() {
|
|
340
|
+
return [...this.history];
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
344
|
+
// 6. CONVENIENCE EXPORTS
|
|
345
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
346
|
+
export function createDefaultRouter() {
|
|
347
|
+
return new ModelRouter();
|
|
348
|
+
}
|
|
349
|
+
export function classifyRefusal(responseText) {
|
|
350
|
+
return new RefusalDetector().classify(responseText);
|
|
351
|
+
}
|
|
352
|
+
export function decideFallback(refusalType, retryCount) {
|
|
353
|
+
return new FallbackDecisionTree().decide(refusalType, retryCount);
|
|
354
|
+
}
|
|
355
|
+
//# sourceMappingURL=fallback-router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fallback-router.js","sourceRoot":"","sources":["../../src/routing/fallback-router.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * OMK Jailbreak v6 — Routing / Fallback Router (TypeScript Port)\n * allow: SIZE_OK - legacy routing classifier; this change only preserves erasable TypeScript syntax.\n * ================================================================\n * packages/coding-agent/src/routing/fallback-router.ts\n *\n * MiniMax → Grok → Sonnet fallback chain + 10-class refusal\n * classification + decision tree.\n *\n * Zero API calls in classification — pure local regex/length/rules.\n */\n\n// ═══════════════════════════════════════════════════════════════════════════\n// 1. ENUMERATIONS & DATA STRUCTURES\n// ═══════════════════════════════════════════════════════════════════════════\n\nexport const RefusalType = {\n\tPOLICY_REFUSAL: 0,\n\tSAFETY_REFUSAL: 1,\n\tETHICAL_REFUSAL: 2,\n\tLEGAL_REFUSAL: 3,\n\tVAGUE_REFUSAL: 4,\n\tSHORT_RESPONSE: 5,\n\tTIMEOUT: 6,\n\tRATE_LIMIT: 7,\n\tCONTENT_FILTER: 8,\n\tUNKNOWN: 9,\n} as const;\n\nexport type RefusalType = (typeof RefusalType)[keyof typeof RefusalType];\n\nexport const ModelRole = {\n\tPRIMARY: 0,\n\tFALLBACK_1: 1,\n\tFALLBACK_2: 2,\n} as const;\n\nexport type ModelRole = (typeof ModelRole)[keyof typeof ModelRole];\n\nexport interface ModelProfile {\n\tname: string;\n\trole: ModelRole;\n\tprovider: string;\n\tmodelId: string;\n\tbaseUrl: string;\n\tapiKeyEnv: string;\n\tasrSoft: number;\n\tasrMedium: number;\n\tasrHard: number;\n\tasrOverall: number;\n\tstrengths: string[];\n\tweaknesses: string[];\n\tcostPer1kTokens: number;\n\tavgLatencyMs: number;\n\tcontextWindow: number;\n\tnotes: string;\n}\n\nexport interface RoutingDecision {\n\ttimestamp: string;\n\toriginalModel: string;\n\tfallbackModel: string;\n\trefusalType: RefusalType;\n\trefusalConfidence: number;\n\ttriggerReason: string;\n\testimatedAsrGain: number;\n\tswitchApproved: boolean;\n\tretryCount: number;\n\thistory: Record<string, unknown>[];\n}\n\nexport interface SwitchResult {\n\tsuccess: boolean;\n\tresponseText: string;\n\tresponseLength: number;\n\tlatencyMs: number;\n\trefusalDetected: boolean;\n\trefusalType?: RefusalType;\n\ttokenUsage: Record<string, number>;\n\terror?: string;\n}\n\n// ═══════════════════════════════════════════════════════════════════════════\n// 2. MODEL PROFILES — ASR literature-based defaults\n// ═══════════════════════════════════════════════════════════════════════════\n\nexport const MODEL_PROFILES: Record<string, ModelProfile> = {\n\tminimax: {\n\t\tname: \"MiniMax\",\n\t\trole: ModelRole.PRIMARY,\n\t\tprovider: \"MiniMax\",\n\t\tmodelId: \"MiniMax-Text-01\",\n\t\tbaseUrl: \"https://api.minimax.chat/v1\",\n\t\tapiKeyEnv: \"MINIMAX_API_KEY\",\n\t\tasrSoft: 0.45,\n\t\tasrMedium: 0.25,\n\t\tasrHard: 0.1,\n\t\tasrOverall: 0.27,\n\t\tstrengths: [\"Chinese/multilingual\", \"fastest latency\", \"low cost\", \"code generation\"],\n\t\tweaknesses: [\"low ASR on hard queries\", \"strict policy enforcement\", \"limited context window\"],\n\t\tcostPer1kTokens: 0.001,\n\t\tavgLatencyMs: 800,\n\t\tcontextWindow: 8192,\n\t\tnotes: \"Primary model — lowest cost, fastest\",\n\t},\n\tgrok: {\n\t\tname: \"Grok\",\n\t\trole: ModelRole.FALLBACK_1,\n\t\tprovider: \"xAI\",\n\t\tmodelId: \"grok-3-beta\",\n\t\tbaseUrl: \"https://api.x.ai/v1\",\n\t\tapiKeyEnv: \"XAI_API_KEY\",\n\t\tasrSoft: 0.85,\n\t\tasrMedium: 0.75,\n\t\tasrHard: 0.55,\n\t\tasrOverall: 0.72,\n\t\tstrengths: [\"high ASR on soft/medium\", \"less restrictive policies\", \"large context window\"],\n\t\tweaknesses: [\"higher cost\", \"slower latency\", \"availability issues\"],\n\t\tcostPer1kTokens: 0.005,\n\t\tavgLatencyMs: 2500,\n\t\tcontextWindow: 128000,\n\t\tnotes: \"1st fallback — policy flexibility\",\n\t},\n\tsonnet: {\n\t\tname: \"Sonnet\",\n\t\trole: ModelRole.FALLBACK_2,\n\t\tprovider: \"Anthropic\",\n\t\tmodelId: \"claude-sonnet-4-20250514\",\n\t\tbaseUrl: \"https://api.anthropic.com/v1\",\n\t\tapiKeyEnv: \"ANTHROPIC_API_KEY\",\n\t\tasrSoft: 0.95,\n\t\tasrMedium: 0.9,\n\t\tasrHard: 0.8,\n\t\tasrOverall: 0.88,\n\t\tstrengths: [\"highest ASR overall\", \"excellent reasoning\", \"strongest jailbreak resistance bypass\"],\n\t\tweaknesses: [\"highest cost\", \"slowest latency\", \"strictest rate limits\"],\n\t\tcostPer1kTokens: 0.015,\n\t\tavgLatencyMs: 4000,\n\t\tcontextWindow: 200000,\n\t\tnotes: \"2nd fallback — highest quality, highest cost\",\n\t},\n};\n\n// ═══════════════════════════════════════════════════════════════════════════\n// 3. REFUSAL DETECTOR — Regex + length + keyword based\n// ═══════════════════════════════════════════════════════════════════════════\n\nexport interface RefusalDetectionResult {\n\trefusalType: RefusalType;\n\tconfidence: number;\n\ttriggeredPatterns: string[];\n\tresponseLength: number;\n\tisShortResponse: boolean;\n}\n\nexport class RefusalDetector {\n\t// Patterns per refusal type (case-insensitive)\n\tprivate patterns: Record<RefusalType, string[]> = {\n\t\t[RefusalType.POLICY_REFUSAL]: [\n\t\t\t\"i cannot help\",\n\t\t\t\"i can't help\",\n\t\t\t\"i'm not able to\",\n\t\t\t\"i am not able to\",\n\t\t\t\"i cannot assist\",\n\t\t\t\"i can't assist\",\n\t\t\t\"against my policy\",\n\t\t\t\"violates policy\",\n\t\t\t\"not allowed\",\n\t\t\t\"prohibited\",\n\t\t],\n\t\t[RefusalType.SAFETY_REFUSAL]: [\n\t\t\t\"safety concern\",\n\t\t\t\"safety guideline\",\n\t\t\t\"harmful\",\n\t\t\t\"dangerous\",\n\t\t\t\"could cause harm\",\n\t\t\t\"unsafe\",\n\t\t\t\"security risk\",\n\t\t],\n\t\t[RefusalType.ETHICAL_REFUSAL]: [\"ethical guideline\", \"morally\", \"ethics\", \"unethical\", \"not ethical\", \"wrong to\"],\n\t\t[RefusalType.LEGAL_REFUSAL]: [\"illegal\", \"against the law\", \"unlawful\", \"legally\", \"crime\", \"criminal\"],\n\t\t[RefusalType.VAGUE_REFUSAL]: [\n\t\t\t\"i'm sorry\",\n\t\t\t\"i apologize\",\n\t\t\t\"unfortunately\",\n\t\t\t\"i can't do that\",\n\t\t\t\"i cannot do that\",\n\t\t\t\"i'm not sure\",\n\t\t\t\"i don't think\",\n\t\t],\n\t\t[RefusalType.SHORT_RESPONSE]: [], // length-based\n\t\t[RefusalType.TIMEOUT]: [\"timeout\", \"timed out\", \"connection error\", \"network error\"],\n\t\t[RefusalType.RATE_LIMIT]: [\"rate limit\", \"too many requests\", \"quota exceeded\", \"limit exceeded\", \"429\", \"503\"],\n\t\t[RefusalType.CONTENT_FILTER]: [\"content filter\", \"filtered\", \"blocked by\", \"moderation\", \"content policy\"],\n\t\t[RefusalType.UNKNOWN]: [],\n\t};\n\n\tprivate shortThreshold = 30; // characters\n\n\tclassify(responseText: string): RefusalDetectionResult {\n\t\tconst lower = responseText.toLowerCase();\n\t\tconst length = responseText.length;\n\t\tconst isShort = length > 0 && length < this.shortThreshold;\n\n\t\tlet bestType: RefusalType = RefusalType.UNKNOWN;\n\t\tlet bestConfidence = 0.0;\n\t\tconst triggered: string[] = [];\n\n\t\tfor (let type = 0; type <= 9; type++) {\n\t\t\tconst typePatterns = this.patterns[type as RefusalType];\n\t\t\tlet matches = 0;\n\t\t\tfor (const p of typePatterns) {\n\t\t\t\tif (lower.includes(p)) {\n\t\t\t\t\tmatches++;\n\t\t\t\t\ttriggered.push(p);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (matches > 0) {\n\t\t\t\tconst confidence = Math.min(matches / typePatterns.length + 0.3, 0.95);\n\t\t\t\tif (confidence > bestConfidence) {\n\t\t\t\t\tbestConfidence = confidence;\n\t\t\t\t\tbestType = type as RefusalType;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Short response heuristic\n\t\tif (isShort && bestType === RefusalType.UNKNOWN) {\n\t\t\tbestType = RefusalType.SHORT_RESPONSE;\n\t\t\tbestConfidence = 0.6;\n\t\t}\n\n\t\treturn {\n\t\t\trefusalType: bestType,\n\t\t\tconfidence: bestConfidence,\n\t\t\ttriggeredPatterns: triggered,\n\t\t\tresponseLength: length,\n\t\t\tisShortResponse: isShort,\n\t\t};\n\t}\n\n\tisRefusal(responseText: string): boolean {\n\t\tconst result = this.classify(responseText);\n\t\treturn result.confidence > 0.5 && result.refusalType !== RefusalType.UNKNOWN;\n\t}\n}\n\n// ═══════════════════════════════════════════════════════════════════════════\n// 4. FALLBACK DECISION TREE\n// ═══════════════════════════════════════════════════════════════════════════\n\nexport interface FallbackDecision {\n\tfallbackModel: string;\n\ttechnique: string;\n\tconfidence: number;\n\treason: string;\n}\n\nexport class FallbackDecisionTree {\n\t/**\n\t * Refusal type → optimal fallback model + technique mapping.\n\t * Based on ASR literature and empirical observations.\n\t */\n\tprivate decisionMatrix: Record<RefusalType, FallbackDecision> = {\n\t\t[RefusalType.POLICY_REFUSAL]: {\n\t\t\tfallbackModel: \"grok\",\n\t\t\ttechnique: \"majic_encoding_hybrid\",\n\t\t\tconfidence: 0.85,\n\t\t\treason: \"Grok has less restrictive policy enforcement\",\n\t\t},\n\t\t[RefusalType.SAFETY_REFUSAL]: {\n\t\t\tfallbackModel: \"sonnet\",\n\t\t\ttechnique: \"semantic_tunneling\",\n\t\t\tconfidence: 0.8,\n\t\t\treason: \"Sonnet handles semantic reframing best\",\n\t\t},\n\t\t[RefusalType.ETHICAL_REFUSAL]: {\n\t\t\tfallbackModel: \"grok\",\n\t\t\ttechnique: \"educational_framing\",\n\t\t\tconfidence: 0.75,\n\t\t\treason: \"Grok is more permissive with ethical framing\",\n\t\t},\n\t\t[RefusalType.LEGAL_REFUSAL]: {\n\t\t\tfallbackModel: \"sonnet\",\n\t\t\ttechnique: \"hypothetical_framing\",\n\t\t\tconfidence: 0.7,\n\t\t\treason: \"Sonnet handles legal hypotheticals better\",\n\t\t},\n\t\t[RefusalType.VAGUE_REFUSAL]: {\n\t\t\tfallbackModel: \"grok\",\n\t\t\ttechnique: \"crescendo_bypass\",\n\t\t\tconfidence: 0.65,\n\t\t\treason: \"Vague refusals often respond to gradual escalation\",\n\t\t},\n\t\t[RefusalType.SHORT_RESPONSE]: {\n\t\t\tfallbackModel: \"grok\",\n\t\t\ttechnique: \"elaboration_request\",\n\t\t\tconfidence: 0.6,\n\t\t\treason: \"Short responses may be implicit refusals — rephrase\",\n\t\t},\n\t\t[RefusalType.TIMEOUT]: {\n\t\t\tfallbackModel: \"minimax\",\n\t\t\ttechnique: \"retry_with_backoff\",\n\t\t\tconfidence: 0.9,\n\t\t\treason: \"Timeout — retry primary with backoff\",\n\t\t},\n\t\t[RefusalType.RATE_LIMIT]: {\n\t\t\tfallbackModel: \"grok\",\n\t\t\ttechnique: \"switch_provider\",\n\t\t\tconfidence: 0.95,\n\t\t\treason: \"Rate limit — immediate provider switch\",\n\t\t},\n\t\t[RefusalType.CONTENT_FILTER]: {\n\t\t\tfallbackModel: \"sonnet\",\n\t\t\ttechnique: \"encoding_obfuscation\",\n\t\t\tconfidence: 0.85,\n\t\t\treason: \"Content filter — use encoding to bypass\",\n\t\t},\n\t\t[RefusalType.UNKNOWN]: {\n\t\t\tfallbackModel: \"grok\",\n\t\t\ttechnique: \"general_retry\",\n\t\t\tconfidence: 0.5,\n\t\t\treason: \"Unknown refusal — try fallback with standard technique\",\n\t\t},\n\t};\n\n\tdecide(refusalType: RefusalType, _retryCount = 0): FallbackDecision {\n\t\tconst decision = this.decisionMatrix[refusalType];\n\t\tif (!decision) {\n\t\t\treturn {\n\t\t\t\tfallbackModel: \"grok\",\n\t\t\t\ttechnique: \"general_retry\",\n\t\t\t\tconfidence: 0.5,\n\t\t\t\treason: \"Default fallback for unmapped refusal type\",\n\t\t\t};\n\t\t}\n\t\treturn { ...decision };\n\t}\n}\n\n// ═══════════════════════════════════════════════════════════════════════════\n// 5. MODEL ROUTER\n// ═══════════════════════════════════════════════════════════════════════════\n\nexport interface RouterOptions {\n\tmaxRetries?: number;\n\tcostBudget?: number;\n\tlatencyBudgetMs?: number;\n\tsimulationMode?: boolean;\n}\n\nexport class ModelRouter {\n\tprofiles: Record<string, ModelProfile>;\n\tdetector: RefusalDetector;\n\tdecisionTree: FallbackDecisionTree;\n\toptions: Required<RouterOptions>;\n\tprivate history: RoutingDecision[] = [];\n\n\tconstructor(options?: RouterOptions) {\n\t\tthis.profiles = { ...MODEL_PROFILES };\n\t\tthis.detector = new RefusalDetector();\n\t\tthis.decisionTree = new FallbackDecisionTree();\n\t\tthis.options = {\n\t\t\tmaxRetries: options?.maxRetries ?? 3,\n\t\t\tcostBudget: options?.costBudget ?? 1.0,\n\t\t\tlatencyBudgetMs: options?.latencyBudgetMs ?? 30000,\n\t\t\tsimulationMode: options?.simulationMode ?? true,\n\t\t};\n\t}\n\n\t/**\n\t * Route a query through the fallback chain.\n\t * In simulation mode, returns synthetic results without API calls.\n\t */\n\troute(query: string, difficulty: \"soft\" | \"medium\" | \"hard\" = \"medium\", technique = \"B\"): SwitchResult {\n\t\tconst primary = this.profiles.minimax;\n\n\t\t// Simulate primary attempt\n\t\tlet result = this.simulateAttempt(primary, query, difficulty, technique);\n\n\t\t// Check refusal and fallback\n\t\tlet retries = 0;\n\t\twhile (result.refusalDetected && retries < this.options.maxRetries) {\n\t\t\tconst detection = this.detector.classify(result.responseText);\n\t\t\tconst decision = this.decisionTree.decide(detection.refusalType, retries);\n\n\t\t\tconst fallbackProfile = this.profiles[decision.fallbackModel];\n\t\t\tif (!fallbackProfile) break;\n\n\t\t\tthis.history.push({\n\t\t\t\ttimestamp: new Date().toISOString(),\n\t\t\t\toriginalModel: primary.name,\n\t\t\t\tfallbackModel: fallbackProfile.name,\n\t\t\t\trefusalType: detection.refusalType,\n\t\t\t\trefusalConfidence: detection.confidence,\n\t\t\t\ttriggerReason: decision.reason,\n\t\t\t\testimatedAsrGain: decision.confidence,\n\t\t\t\tswitchApproved: true,\n\t\t\t\tretryCount: retries,\n\t\t\t\thistory: [],\n\t\t\t});\n\n\t\t\tresult = this.simulateAttempt(fallbackProfile, query, difficulty, decision.technique);\n\t\t\tretries++;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tprivate simulateAttempt(profile: ModelProfile, query: string, difficulty: string, _technique: string): SwitchResult {\n\t\t// Synthetic ASR-based success simulation (no API calls)\n\t\tconst asrKey = `asr${difficulty.charAt(0).toUpperCase() + difficulty.slice(1)}` as\n\t\t\t| \"asrSoft\"\n\t\t\t| \"asrMedium\"\n\t\t\t| \"asrHard\";\n\t\tconst asr = profile[asrKey] ?? profile.asrOverall;\n\t\tconst success = Math.random() < asr;\n\n\t\tif (success) {\n\t\t\treturn {\n\t\t\t\tsuccess: true,\n\t\t\t\tresponseText: `[Simulated] Successful response from ${profile.name} for query: ${query.slice(0, 50)}...`,\n\t\t\t\tresponseLength: 200 + Math.floor(Math.random() * 800),\n\t\t\t\tlatencyMs: profile.avgLatencyMs + Math.floor(Math.random() * 500),\n\t\t\t\trefusalDetected: false,\n\t\t\t\ttokenUsage: { prompt: 100, completion: 200 },\n\t\t\t};\n\t\t}\n\n\t\t// Simulate refusal\n\t\tconst refusalTexts = [\n\t\t\t\"I cannot help with that request.\",\n\t\t\t\"I'm sorry, but I can't assist with this.\",\n\t\t\t\"This request violates my safety guidelines.\",\n\t\t\t\"I can't provide that information.\",\n\t\t];\n\t\tconst text = refusalTexts[Math.floor(Math.random() * refusalTexts.length)];\n\t\tconst detection = this.detector.classify(text);\n\n\t\treturn {\n\t\t\tsuccess: false,\n\t\t\tresponseText: text,\n\t\t\tresponseLength: text.length,\n\t\t\tlatencyMs: profile.avgLatencyMs,\n\t\t\trefusalDetected: true,\n\t\t\trefusalType: detection.refusalType,\n\t\t\ttokenUsage: { prompt: 50, completion: 20 },\n\t\t};\n\t}\n\n\tgetHistory(): RoutingDecision[] {\n\t\treturn [...this.history];\n\t}\n}\n\n// ═══════════════════════════════════════════════════════════════════════════\n// 6. CONVENIENCE EXPORTS\n// ═══════════════════════════════════════════════════════════════════════════\n\nexport function createDefaultRouter(): ModelRouter {\n\treturn new ModelRouter();\n}\n\nexport function classifyRefusal(responseText: string): RefusalDetectionResult {\n\treturn new RefusalDetector().classify(responseText);\n}\n\nexport function decideFallback(refusalType: RefusalType, retryCount?: number): FallbackDecision {\n\treturn new FallbackDecisionTree().decide(refusalType, retryCount);\n}\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OMK Jailbreak v6 — Routing Module Index
|
|
3
|
+
* packages/coding-agent/src/routing/index.ts
|
|
4
|
+
*/
|
|
5
|
+
export { classifyRefusal, createDefaultRouter, decideFallback, type FallbackDecision, FallbackDecisionTree, MODEL_PROFILES, type ModelProfile, ModelRole, ModelRouter, type RefusalDetectionResult, RefusalDetector, RefusalType, type RouterOptions, type RoutingDecision, type SwitchResult, } from "./fallback-router.ts";
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/routing/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,KAAK,gBAAgB,EACrB,oBAAoB,EACpB,cAAc,EACd,KAAK,YAAY,EACjB,SAAS,EACT,WAAW,EACX,KAAK,sBAAsB,EAC3B,eAAe,EACf,WAAW,EACX,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,YAAY,GACjB,MAAM,sBAAsB,CAAC","sourcesContent":["/**\n * OMK Jailbreak v6 — Routing Module Index\n * packages/coding-agent/src/routing/index.ts\n */\n\nexport {\n\tclassifyRefusal,\n\tcreateDefaultRouter,\n\tdecideFallback,\n\ttype FallbackDecision,\n\tFallbackDecisionTree,\n\tMODEL_PROFILES,\n\ttype ModelProfile,\n\tModelRole,\n\tModelRouter,\n\ttype RefusalDetectionResult,\n\tRefusalDetector,\n\tRefusalType,\n\ttype RouterOptions,\n\ttype RoutingDecision,\n\ttype SwitchResult,\n} from \"./fallback-router.ts\";\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OMK Jailbreak v6 — Routing Module Index
|
|
3
|
+
* packages/coding-agent/src/routing/index.ts
|
|
4
|
+
*/
|
|
5
|
+
export { classifyRefusal, createDefaultRouter, decideFallback, FallbackDecisionTree, MODEL_PROFILES, ModelRole, ModelRouter, RefusalDetector, RefusalType, } from "./fallback-router.js";
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/routing/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,eAAe,EACf,mBAAmB,EACnB,cAAc,EAEd,oBAAoB,EACpB,cAAc,EAEd,SAAS,EACT,WAAW,EAEX,eAAe,EACf,WAAW,GAIX,MAAM,sBAAsB,CAAC","sourcesContent":["/**\n * OMK Jailbreak v6 — Routing Module Index\n * packages/coding-agent/src/routing/index.ts\n */\n\nexport {\n\tclassifyRefusal,\n\tcreateDefaultRouter,\n\tdecideFallback,\n\ttype FallbackDecision,\n\tFallbackDecisionTree,\n\tMODEL_PROFILES,\n\ttype ModelProfile,\n\tModelRole,\n\tModelRouter,\n\ttype RefusalDetectionResult,\n\tRefusalDetector,\n\tRefusalType,\n\ttype RouterOptions,\n\ttype RoutingDecision,\n\ttype SwitchResult,\n} from \"./fallback-router.ts\";\n"]}
|