open-multi-agent-kit 0.80.6 → 0.80.7
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 +11 -1
- package/README.md +22 -14
- package/dist/cli/config-selector.d.ts +1 -1
- package/dist/cli/config-selector.d.ts.map +1 -1
- package/dist/cli/config-selector.js +1 -1
- package/dist/cli/config-selector.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +9 -8
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session.d.ts +45 -6
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +197 -13
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-storage.d.ts +4 -1
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +5 -5
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/bash-executor.d.ts.map +1 -1
- package/dist/core/bash-executor.js +1 -1
- package/dist/core/bash-executor.js.map +1 -1
- package/dist/core/command-safety.d.ts +11 -0
- package/dist/core/command-safety.d.ts.map +1 -0
- package/dist/core/command-safety.js +528 -0
- package/dist/core/command-safety.js.map +1 -0
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js +14 -4
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts +18 -1
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +80 -42
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/compaction/pruner-policy.d.ts +84 -0
- package/dist/core/compaction/pruner-policy.d.ts.map +1 -0
- package/dist/core/compaction/pruner-policy.js +273 -0
- package/dist/core/compaction/pruner-policy.js.map +1 -0
- package/dist/core/context-graph-identity-resolution.d.ts +114 -0
- package/dist/core/context-graph-identity-resolution.d.ts.map +1 -0
- package/dist/core/context-graph-identity-resolution.js +127 -0
- package/dist/core/context-graph-identity-resolution.js.map +1 -0
- package/dist/core/context-graph-memory-store.d.ts +153 -0
- package/dist/core/context-graph-memory-store.d.ts.map +1 -0
- package/dist/core/context-graph-memory-store.js +377 -0
- package/dist/core/context-graph-memory-store.js.map +1 -0
- package/dist/core/context-graph-ontology-generation.d.ts +104 -0
- package/dist/core/context-graph-ontology-generation.d.ts.map +1 -0
- package/dist/core/context-graph-ontology-generation.js +135 -0
- package/dist/core/context-graph-ontology-generation.js.map +1 -0
- package/dist/core/context-graph-ontology-registry.d.ts +766 -0
- package/dist/core/context-graph-ontology-registry.d.ts.map +1 -0
- package/dist/core/context-graph-ontology-registry.js +1133 -0
- package/dist/core/context-graph-ontology-registry.js.map +1 -0
- package/dist/core/context-graph-policy.d.ts +68 -0
- package/dist/core/context-graph-policy.d.ts.map +1 -0
- package/dist/core/context-graph-policy.js +221 -0
- package/dist/core/context-graph-policy.js.map +1 -0
- package/dist/core/context-graph-reasoning.d.ts +130 -0
- package/dist/core/context-graph-reasoning.d.ts.map +1 -0
- package/dist/core/context-graph-reasoning.js +442 -0
- package/dist/core/context-graph-reasoning.js.map +1 -0
- package/dist/core/context-graph-retrieval.d.ts +120 -0
- package/dist/core/context-graph-retrieval.d.ts.map +1 -0
- package/dist/core/context-graph-retrieval.js +288 -0
- package/dist/core/context-graph-retrieval.js.map +1 -0
- package/dist/core/contract-verification.d.ts +78 -0
- package/dist/core/contract-verification.d.ts.map +1 -0
- package/dist/core/contract-verification.js +110 -0
- package/dist/core/contract-verification.js.map +1 -0
- package/dist/core/exact-cache-policy.d.ts +100 -0
- package/dist/core/exact-cache-policy.d.ts.map +1 -0
- package/dist/core/exact-cache-policy.js +175 -0
- package/dist/core/exact-cache-policy.js.map +1 -0
- package/dist/core/exec.d.ts +2 -0
- package/dist/core/exec.d.ts.map +1 -1
- package/dist/core/exec.js +1 -0
- package/dist/core/exec.js.map +1 -1
- package/dist/core/export-html/template.js +2 -2
- package/dist/core/extensions/builtin/command-safety-gate.d.ts +77 -0
- package/dist/core/extensions/builtin/command-safety-gate.d.ts.map +1 -0
- package/dist/core/extensions/builtin/command-safety-gate.js +147 -0
- package/dist/core/extensions/builtin/command-safety-gate.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 +94 -56
- package/dist/core/extensions/loader.js.map +1 -1
- 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 +38 -10
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/freedom/banner.d.ts +14 -0
- package/dist/core/freedom/banner.d.ts.map +1 -0
- package/dist/core/freedom/banner.js +22 -0
- package/dist/core/freedom/banner.js.map +1 -0
- package/dist/core/freedom/config.d.ts +27 -0
- package/dist/core/freedom/config.d.ts.map +1 -0
- package/dist/core/freedom/config.js +216 -0
- package/dist/core/freedom/config.js.map +1 -0
- package/dist/core/freedom/index.d.ts +23 -0
- package/dist/core/freedom/index.d.ts.map +1 -0
- package/dist/core/freedom/index.js +19 -0
- package/dist/core/freedom/index.js.map +1 -0
- package/dist/core/freedom/policy.d.ts +42 -0
- package/dist/core/freedom/policy.d.ts.map +1 -0
- package/dist/core/freedom/policy.js +47 -0
- package/dist/core/freedom/policy.js.map +1 -0
- package/dist/core/freedom/safety-floor.d.ts +73 -0
- package/dist/core/freedom/safety-floor.d.ts.map +1 -0
- package/dist/core/freedom/safety-floor.js +275 -0
- package/dist/core/freedom/safety-floor.js.map +1 -0
- package/dist/core/harness-control-events.d.ts +13 -1
- package/dist/core/harness-control-events.d.ts.map +1 -1
- package/dist/core/harness-control-events.js +216 -41
- package/dist/core/harness-control-events.js.map +1 -1
- package/dist/core/harness-control-replay.d.ts +7 -2
- package/dist/core/harness-control-replay.d.ts.map +1 -1
- package/dist/core/harness-control-replay.js +36 -4
- package/dist/core/harness-control-replay.js.map +1 -1
- package/dist/core/headroom-middleware.d.ts +35 -0
- package/dist/core/headroom-middleware.d.ts.map +1 -0
- package/dist/core/headroom-middleware.js +166 -0
- package/dist/core/headroom-middleware.js.map +1 -0
- package/dist/core/hook-inventory.d.ts +23 -0
- package/dist/core/hook-inventory.d.ts.map +1 -0
- package/dist/core/hook-inventory.js +50 -0
- package/dist/core/hook-inventory.js.map +1 -0
- package/dist/core/lean-context-middleware.d.ts +12 -0
- package/dist/core/lean-context-middleware.d.ts.map +1 -0
- package/dist/core/lean-context-middleware.js +87 -0
- package/dist/core/lean-context-middleware.js.map +1 -0
- package/dist/core/lean-context-policy.d.ts +45 -0
- package/dist/core/lean-context-policy.d.ts.map +1 -0
- package/dist/core/lean-context-policy.js +108 -0
- package/dist/core/lean-context-policy.js.map +1 -0
- package/dist/core/loadout-access-policy.d.ts +41 -0
- package/dist/core/loadout-access-policy.d.ts.map +1 -0
- package/dist/core/loadout-access-policy.js +182 -0
- package/dist/core/loadout-access-policy.js.map +1 -0
- package/dist/core/loadout-runtime.d.ts +84 -0
- package/dist/core/loadout-runtime.d.ts.map +1 -0
- package/dist/core/loadout-runtime.js +157 -0
- package/dist/core/loadout-runtime.js.map +1 -0
- package/dist/core/loadouts.d.ts +147 -0
- package/dist/core/loadouts.d.ts.map +1 -0
- package/dist/core/loadouts.js +442 -0
- package/dist/core/loadouts.js.map +1 -0
- package/dist/core/mcp-inventory.d.ts +34 -0
- package/dist/core/mcp-inventory.d.ts.map +1 -1
- package/dist/core/mcp-inventory.js +53 -1
- package/dist/core/mcp-inventory.js.map +1 -1
- package/dist/core/mcp-presets.d.ts +57 -0
- package/dist/core/mcp-presets.d.ts.map +1 -0
- package/dist/core/mcp-presets.js +81 -0
- package/dist/core/mcp-presets.js.map +1 -0
- package/dist/core/model-registry.d.ts +1 -0
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +40 -17
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +1 -0
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/native-adoption-benchmark.d.ts +166 -0
- package/dist/core/native-adoption-benchmark.d.ts.map +1 -0
- package/dist/core/native-adoption-benchmark.js +624 -0
- package/dist/core/native-adoption-benchmark.js.map +1 -0
- package/dist/core/observability-trace.d.ts +80 -0
- package/dist/core/observability-trace.d.ts.map +1 -0
- package/dist/core/observability-trace.js +140 -0
- package/dist/core/observability-trace.js.map +1 -0
- package/dist/core/orchestration/checkpoint.d.ts +83 -0
- package/dist/core/orchestration/checkpoint.d.ts.map +1 -0
- package/dist/core/orchestration/checkpoint.js +152 -0
- package/dist/core/orchestration/checkpoint.js.map +1 -0
- package/dist/core/orchestration/errors.d.ts +74 -0
- package/dist/core/orchestration/errors.d.ts.map +1 -0
- package/dist/core/orchestration/errors.js +52 -0
- package/dist/core/orchestration/errors.js.map +1 -0
- package/dist/core/orchestration/merge-queue.d.ts +121 -0
- package/dist/core/orchestration/merge-queue.d.ts.map +1 -0
- package/dist/core/orchestration/merge-queue.js +149 -0
- package/dist/core/orchestration/merge-queue.js.map +1 -0
- package/dist/core/orchestration/recovery.d.ts +106 -0
- package/dist/core/orchestration/recovery.d.ts.map +1 -0
- package/dist/core/orchestration/recovery.js +110 -0
- package/dist/core/orchestration/recovery.js.map +1 -0
- package/dist/core/orchestration/replay-ledger.d.ts +76 -0
- package/dist/core/orchestration/replay-ledger.d.ts.map +1 -0
- package/dist/core/orchestration/replay-ledger.js +395 -0
- package/dist/core/orchestration/replay-ledger.js.map +1 -0
- package/dist/core/orchestration/scheduler-state.d.ts +78 -0
- package/dist/core/orchestration/scheduler-state.d.ts.map +1 -0
- package/dist/core/orchestration/scheduler-state.js +185 -0
- package/dist/core/orchestration/scheduler-state.js.map +1 -0
- package/dist/core/orchestration/scheduler-store.d.ts +309 -0
- package/dist/core/orchestration/scheduler-store.d.ts.map +1 -0
- package/dist/core/orchestration/scheduler-store.js +368 -0
- package/dist/core/orchestration/scheduler-store.js.map +1 -0
- package/dist/core/orchestration/sqlite-scheduler-store.d.ts +57 -0
- package/dist/core/orchestration/sqlite-scheduler-store.d.ts.map +1 -0
- package/dist/core/orchestration/sqlite-scheduler-store.js +528 -0
- package/dist/core/orchestration/sqlite-scheduler-store.js.map +1 -0
- package/dist/core/orchestration/transaction-coordinator.d.ts +217 -0
- package/dist/core/orchestration/transaction-coordinator.d.ts.map +1 -0
- package/dist/core/orchestration/transaction-coordinator.js +281 -0
- package/dist/core/orchestration/transaction-coordinator.js.map +1 -0
- package/dist/core/orchestration/verification-contract.d.ts +197 -0
- package/dist/core/orchestration/verification-contract.d.ts.map +1 -0
- package/dist/core/orchestration/verification-contract.js +145 -0
- package/dist/core/orchestration/verification-contract.js.map +1 -0
- package/dist/core/package-composition.d.ts +68 -0
- package/dist/core/package-composition.d.ts.map +1 -0
- package/dist/core/package-composition.js +304 -0
- package/dist/core/package-composition.js.map +1 -0
- package/dist/core/package-gallery.d.ts +124 -0
- package/dist/core/package-gallery.d.ts.map +1 -0
- package/dist/core/package-gallery.js +392 -0
- package/dist/core/package-gallery.js.map +1 -0
- package/dist/core/package-manager.d.ts +69 -0
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +367 -69
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/package-procurement.d.ts +268 -0
- package/dist/core/package-procurement.d.ts.map +1 -0
- package/dist/core/package-procurement.js +697 -0
- package/dist/core/package-procurement.js.map +1 -0
- package/dist/core/package-trial-runtime.d.ts +75 -0
- package/dist/core/package-trial-runtime.d.ts.map +1 -0
- package/dist/core/package-trial-runtime.js +73 -0
- package/dist/core/package-trial-runtime.js.map +1 -0
- package/dist/core/package-trial-sandbox.d.ts +27 -0
- package/dist/core/package-trial-sandbox.d.ts.map +1 -0
- package/dist/core/package-trial-sandbox.js +102 -0
- package/dist/core/package-trial-sandbox.js.map +1 -0
- package/dist/core/policy-overlays-runtime.d.ts +141 -0
- package/dist/core/policy-overlays-runtime.d.ts.map +1 -0
- package/dist/core/policy-overlays-runtime.js +720 -0
- package/dist/core/policy-overlays-runtime.js.map +1 -0
- package/dist/core/read-anchor-registry.d.ts +27 -0
- package/dist/core/read-anchor-registry.d.ts.map +1 -0
- package/dist/core/read-anchor-registry.js +103 -0
- package/dist/core/read-anchor-registry.js.map +1 -0
- package/dist/core/read-anchors.d.ts +110 -0
- package/dist/core/read-anchors.d.ts.map +1 -0
- package/dist/core/read-anchors.js +193 -0
- package/dist/core/read-anchors.js.map +1 -0
- package/dist/core/read-content-cache.d.ts +22 -0
- package/dist/core/read-content-cache.d.ts.map +1 -0
- package/dist/core/read-content-cache.js +79 -0
- package/dist/core/read-content-cache.js.map +1 -0
- package/dist/core/recovery-checkpoint.d.ts +196 -0
- package/dist/core/recovery-checkpoint.d.ts.map +1 -0
- package/dist/core/recovery-checkpoint.js +382 -0
- package/dist/core/recovery-checkpoint.js.map +1 -0
- package/dist/core/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 +30 -2
- package/dist/core/resolve-config-value.js.map +1 -1
- package/dist/core/resource-loader.d.ts +23 -21
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +93 -15
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/sandbox/backend.d.ts +25 -0
- package/dist/core/sandbox/backend.d.ts.map +1 -0
- package/dist/core/sandbox/backend.js +150 -0
- package/dist/core/sandbox/backend.js.map +1 -0
- package/dist/core/sandbox/env.d.ts +6 -0
- package/dist/core/sandbox/env.d.ts.map +1 -0
- package/dist/core/sandbox/env.js +46 -0
- package/dist/core/sandbox/env.js.map +1 -0
- package/dist/core/sandbox/path-resolver.d.ts +4 -0
- package/dist/core/sandbox/path-resolver.d.ts.map +1 -0
- package/dist/core/sandbox/path-resolver.js +44 -0
- package/dist/core/sandbox/path-resolver.js.map +1 -0
- package/dist/core/sandbox/policy.d.ts +87 -0
- package/dist/core/sandbox/policy.d.ts.map +1 -0
- package/dist/core/sandbox/policy.js +280 -0
- package/dist/core/sandbox/policy.js.map +1 -0
- package/dist/core/sandbox/spawn.d.ts +20 -0
- package/dist/core/sandbox/spawn.d.ts.map +1 -0
- package/dist/core/sandbox/spawn.js +80 -0
- package/dist/core/sandbox/spawn.js.map +1 -0
- package/dist/core/sdk.d.ts +83 -4
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +143 -55
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/semantic-cache-policy.d.ts +45 -0
- package/dist/core/semantic-cache-policy.d.ts.map +1 -0
- package/dist/core/semantic-cache-policy.js +220 -0
- package/dist/core/semantic-cache-policy.js.map +1 -0
- package/dist/core/session-digest.d.ts +57 -0
- package/dist/core/session-digest.d.ts.map +1 -0
- package/dist/core/session-digest.js +193 -0
- package/dist/core/session-digest.js.map +1 -0
- package/dist/core/session-manager.d.ts +2 -2
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +5 -4
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-manager.d.ts +14 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +43 -2
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +25 -7
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/telemetry.d.ts.map +1 -1
- package/dist/core/telemetry.js +1 -1
- package/dist/core/telemetry.js.map +1 -1
- package/dist/core/timings.d.ts +1 -1
- package/dist/core/timings.d.ts.map +1 -1
- package/dist/core/timings.js +2 -2
- package/dist/core/timings.js.map +1 -1
- package/dist/core/tools/bash.d.ts +28 -3
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +53 -10
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/edit.d.ts +12 -0
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +24 -0
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/find.d.ts +3 -0
- package/dist/core/tools/find.d.ts.map +1 -1
- package/dist/core/tools/find.js +3 -0
- package/dist/core/tools/find.js.map +1 -1
- package/dist/core/tools/grep.d.ts +3 -0
- package/dist/core/tools/grep.d.ts.map +1 -1
- package/dist/core/tools/grep.js +4 -1
- package/dist/core/tools/grep.js.map +1 -1
- package/dist/core/tools/index.d.ts +1 -1
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/ls.d.ts +3 -0
- package/dist/core/tools/ls.d.ts.map +1 -1
- package/dist/core/tools/ls.js +3 -0
- package/dist/core/tools/ls.js.map +1 -1
- package/dist/core/tools/output-accumulator.d.ts.map +1 -1
- package/dist/core/tools/output-accumulator.js +1 -1
- package/dist/core/tools/output-accumulator.js.map +1 -1
- package/dist/core/tools/read.d.ts +13 -0
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js +29 -2
- package/dist/core/tools/read.js.map +1 -1
- package/dist/core/tools/write.d.ts +3 -0
- package/dist/core/tools/write.d.ts.map +1 -1
- package/dist/core/tools/write.js +3 -0
- package/dist/core/tools/write.js.map +1 -1
- package/dist/index.d.ts +19 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -2
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +4 -6
- package/dist/main.js.map +1 -1
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js +1 -1
- package/dist/migrations.js.map +1 -1
- package/dist/modes/interactive/components/control-panel-gradient-motion.d.ts +28 -0
- package/dist/modes/interactive/components/control-panel-gradient-motion.d.ts.map +1 -0
- package/dist/modes/interactive/components/control-panel-gradient-motion.js +146 -0
- package/dist/modes/interactive/components/control-panel-gradient-motion.js.map +1 -0
- package/dist/modes/interactive/components/control-panel-gradient.d.ts +27 -0
- package/dist/modes/interactive/components/control-panel-gradient.d.ts.map +1 -0
- package/dist/modes/interactive/components/control-panel-gradient.js +127 -0
- package/dist/modes/interactive/components/control-panel-gradient.js.map +1 -0
- package/dist/modes/interactive/components/control-panel.d.ts +28 -1
- package/dist/modes/interactive/components/control-panel.d.ts.map +1 -1
- package/dist/modes/interactive/components/control-panel.js +153 -3
- package/dist/modes/interactive/components/control-panel.js.map +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.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/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +8 -0
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/mcp-selector.d.ts +2 -0
- package/dist/modes/interactive/components/mcp-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/mcp-selector.js +18 -1
- package/dist/modes/interactive/components/mcp-selector.js.map +1 -1
- package/dist/modes/interactive/components/model-selector-state.d.ts +101 -0
- package/dist/modes/interactive/components/model-selector-state.d.ts.map +1 -0
- package/dist/modes/interactive/components/model-selector-state.js +261 -0
- package/dist/modes/interactive/components/model-selector-state.js.map +1 -0
- package/dist/modes/interactive/components/model-selector.d.ts +44 -10
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js +163 -110
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/theme-selector.d.ts +1 -0
- package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/theme-selector.js +10 -1
- package/dist/modes/interactive/components/theme-selector.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +4 -2
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +61 -13
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/theme/omk-blackboard.json +91 -0
- package/dist/modes/interactive/theme/omk-freedom-grid.json +91 -0
- package/dist/modes/interactive/theme/omk-neon-ops.json +90 -0
- package/dist/modes/interactive/theme/omk-slate-light.json +91 -0
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +14 -0
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/print-mode.d.ts +2 -2
- package/dist/modes/print-mode.d.ts.map +1 -1
- package/dist/modes/print-mode.js +2 -2
- package/dist/modes/print-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +4 -0
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/package-manager-cli.d.ts.map +1 -1
- package/dist/package-manager-cli.js +114 -49
- package/dist/package-manager-cli.js.map +1 -1
- package/dist/utils/clipboard-image.d.ts.map +1 -1
- package/dist/utils/clipboard-image.js +1 -1
- package/dist/utils/clipboard-image.js.map +1 -1
- package/dist/utils/omk-user-agent.d.ts +2 -0
- package/dist/utils/omk-user-agent.d.ts.map +1 -0
- package/dist/utils/{pi-user-agent.js → omk-user-agent.js} +2 -2
- package/dist/utils/omk-user-agent.js.map +1 -0
- package/dist/utils/tools-manager.d.ts.map +1 -1
- package/dist/utils/tools-manager.js +1 -1
- package/dist/utils/tools-manager.js.map +1 -1
- package/dist/utils/version-check.d.ts +5 -5
- package/dist/utils/version-check.d.ts.map +1 -1
- package/dist/utils/version-check.js +8 -11
- package/dist/utils/version-check.js.map +1 -1
- package/dist/utils/windows-self-update.d.ts.map +1 -1
- package/dist/utils/windows-self-update.js +1 -1
- package/dist/utils/windows-self-update.js.map +1 -1
- package/docs/packages.md +47 -6
- package/docs/prompt-templates.md +2 -0
- package/docs/usage.md +16 -6
- package/examples/README.md +1 -1
- package/examples/extensions/README.md +11 -11
- package/examples/extensions/auto-commit-on-exit.ts +6 -6
- package/examples/extensions/bash-spawn-hook.ts +4 -4
- package/examples/extensions/bookmark.ts +5 -5
- package/examples/extensions/border-status-editor.ts +7 -7
- package/examples/extensions/built-in-tool-renderer.ts +6 -6
- package/examples/extensions/claude-rules.ts +4 -4
- package/examples/extensions/commands.ts +5 -5
- package/examples/extensions/confirm-destructive.ts +3 -3
- package/examples/extensions/custom-compaction.ts +3 -3
- package/examples/extensions/custom-footer.ts +2 -2
- package/examples/extensions/custom-header.ts +5 -5
- package/examples/extensions/custom-provider-anthropic/index.ts +4 -4
- 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 +3 -3
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/dirty-repo-guard.ts +7 -7
- package/examples/extensions/doom-overlay/README.md +3 -3
- package/examples/extensions/doom-overlay/doom/build.sh +2 -2
- package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +1 -1
- package/examples/extensions/doom-overlay/index.ts +3 -3
- package/examples/extensions/dynamic-resources/dynamic.json +1 -1
- package/examples/extensions/dynamic-resources/index.ts +2 -2
- package/examples/extensions/dynamic-tools.ts +4 -4
- package/examples/extensions/event-bus.ts +8 -8
- package/examples/extensions/file-trigger.ts +3 -3
- package/examples/extensions/git-checkpoint.ts +7 -7
- package/examples/extensions/git-merge-and-resolve.ts +14 -14
- package/examples/extensions/github-issue-autocomplete.ts +6 -6
- package/examples/extensions/gondolin/index.ts +16 -16
- package/examples/extensions/gondolin/package-lock.json +2 -2
- package/examples/extensions/gondolin/package.json +1 -1
- package/examples/extensions/handoff.ts +2 -2
- package/examples/extensions/hello.ts +2 -2
- package/examples/extensions/hidden-thinking-label.ts +4 -4
- package/examples/extensions/inline-bash.ts +5 -5
- package/examples/extensions/input-transform-streaming.ts +5 -5
- package/examples/extensions/input-transform.ts +5 -5
- package/examples/extensions/interactive-shell.ts +3 -3
- package/examples/extensions/mac-system-theme.ts +5 -5
- package/examples/extensions/message-renderer.ts +4 -4
- package/examples/extensions/minimal-mode.ts +9 -9
- package/examples/extensions/modal-editor.ts +3 -3
- package/examples/extensions/model-status.ts +3 -3
- package/examples/extensions/notify.ts +5 -5
- package/examples/extensions/overlay-qa-tests.ts +20 -20
- package/examples/extensions/overlay-test.ts +3 -3
- package/examples/extensions/permission-gate.ts +2 -2
- package/examples/extensions/pirate.ts +4 -4
- package/examples/extensions/plan-mode/index.ts +22 -22
- package/examples/extensions/preset.ts +30 -30
- package/examples/extensions/prompt-customizer.ts +3 -3
- package/examples/extensions/protected-paths.ts +2 -2
- package/examples/extensions/provider-payload.ts +5 -5
- package/examples/extensions/qna.ts +2 -2
- package/examples/extensions/question.ts +2 -2
- package/examples/extensions/questionnaire.ts +2 -2
- package/examples/extensions/rainbow-editor.ts +3 -3
- package/examples/extensions/reload-runtime.ts +4 -4
- package/examples/extensions/rpc-demo.ts +10 -10
- package/examples/extensions/sandbox/index.ts +17 -17
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/send-user-message.ts +13 -13
- package/examples/extensions/session-name.ts +4 -4
- package/examples/extensions/shutdown-command.ts +10 -10
- package/examples/extensions/snake.ts +3 -3
- package/examples/extensions/space-invaders.ts +3 -3
- package/examples/extensions/ssh.ts +12 -12
- package/examples/extensions/status-line.ts +4 -4
- package/examples/extensions/structured-output.ts +2 -2
- package/examples/extensions/subagent/README.md +13 -13
- package/examples/extensions/subagent/agents.ts +2 -2
- package/examples/extensions/subagent/index.ts +53 -21
- package/examples/extensions/summarize.ts +2 -2
- package/examples/extensions/system-prompt-header.ts +3 -3
- package/examples/extensions/tic-tac-toe.ts +15 -15
- package/examples/extensions/timed-confirm.ts +4 -4
- package/examples/extensions/titlebar-spinner.ts +9 -9
- package/examples/extensions/todo.ts +5 -5
- package/examples/extensions/tool-override.ts +5 -5
- package/examples/extensions/tools.ts +10 -10
- package/examples/extensions/trigger-compact.ts +3 -3
- package/examples/extensions/truncated-tool.ts +3 -3
- package/examples/extensions/widget-placement.ts +2 -2
- package/examples/extensions/with-deps/index.ts +2 -2
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/examples/extensions/working-indicator.ts +7 -7
- package/examples/extensions/working-message-test.ts +3 -3
- package/examples/sdk/01-minimal.ts +1 -1
- package/examples/sdk/03-custom-prompt.ts +1 -1
- package/examples/sdk/04-skills.ts +1 -1
- package/examples/sdk/05-tools.ts +1 -1
- package/examples/sdk/06-extensions.ts +11 -11
- package/examples/sdk/07-context-files.ts +2 -0
- package/examples/sdk/08-prompt-templates.ts +1 -1
- package/examples/sdk/09-api-keys-and-oauth.ts +2 -2
- package/examples/sdk/README.md +2 -2
- package/node_modules/@earendil-works/omk-agent-core/README.md +488 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.d.ts +24 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.js +553 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.js.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/agent.d.ts +118 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/agent.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/agent.js +402 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/agent.js.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.d.ts +95 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.js +996 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.js.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.d.ts +53 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.js +175 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.js.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.d.ts +117 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.js +568 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.js.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.d.ts +25 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.js +131 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.js.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.d.ts +51 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.js +510 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.js.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.d.ts +51 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.js +102 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.js.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.d.ts +48 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.js +230 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.js.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.d.ts +26 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.js +101 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.js.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.d.ts +36 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.js +273 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.js.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.d.ts +18 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.js +42 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.js.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.d.ts +25 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.js +114 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.js.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.d.ts +11 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.js +39 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.js.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.d.ts +33 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.js +210 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.js.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.d.ts +2 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.js +50 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.js.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.d.ts +44 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.js +311 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.js.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.d.ts +3 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.js +30 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.js.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.d.ts +616 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.js +94 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.js.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.d.ts +14 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.js +126 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.js.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.d.ts +70 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.js +297 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.js.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/index.d.ts +20 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/index.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/index.js +25 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/index.js.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/node.d.ts +3 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/node.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/node.js +3 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/node.js.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/proxy.d.ts +69 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/proxy.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/proxy.js +278 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/proxy.js.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/types.d.ts +393 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/types.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/types.js +2 -0
- package/node_modules/@earendil-works/omk-agent-core/dist/types.js.map +1 -0
- package/node_modules/@earendil-works/omk-agent-core/package.json +60 -0
- package/node_modules/@earendil-works/omk-ai/README.md +1389 -0
- package/node_modules/@earendil-works/omk-ai/dist/api-registry.d.ts +20 -0
- package/node_modules/@earendil-works/omk-ai/dist/api-registry.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/api-registry.js +44 -0
- package/node_modules/@earendil-works/omk-ai/dist/api-registry.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.d.ts +5 -0
- package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.js +6 -0
- package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/cli.d.ts +3 -0
- package/node_modules/@earendil-works/omk-ai/dist/cli.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/cli.js +130 -0
- package/node_modules/@earendil-works/omk-ai/dist/cli.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.d.ts +20 -0
- package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.js +199 -0
- package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/image-models.d.ts +10 -0
- package/node_modules/@earendil-works/omk-ai/dist/image-models.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.d.ts +515 -0
- package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.js +517 -0
- package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/image-models.js +23 -0
- package/node_modules/@earendil-works/omk-ai/dist/image-models.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.d.ts +14 -0
- package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.js +22 -0
- package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/images.d.ts +4 -0
- package/node_modules/@earendil-works/omk-ai/dist/images.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/images.js +16 -0
- package/node_modules/@earendil-works/omk-ai/dist/images.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/index.d.ts +33 -0
- package/node_modules/@earendil-works/omk-ai/dist/index.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/index.js +21 -0
- package/node_modules/@earendil-works/omk-ai/dist/index.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/models.d.ts +18 -0
- package/node_modules/@earendil-works/omk-ai/dist/models.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/models.generated.d.ts +18762 -0
- package/node_modules/@earendil-works/omk-ai/dist/models.generated.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/models.generated.js +17197 -0
- package/node_modules/@earendil-works/omk-ai/dist/models.generated.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/models.js +78 -0
- package/node_modules/@earendil-works/omk-ai/dist/models.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/oauth.d.ts +2 -0
- package/node_modules/@earendil-works/omk-ai/dist/oauth.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/oauth.js +2 -0
- package/node_modules/@earendil-works/omk-ai/dist/oauth.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/provider-network.d.ts +39 -0
- package/node_modules/@earendil-works/omk-ai/dist/provider-network.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/provider-network.js +170 -0
- package/node_modules/@earendil-works/omk-ai/dist/provider-network.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.d.ts +38 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.js +826 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.d.ts +77 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.js +1123 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.d.ts +15 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.js +221 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.d.ts +13 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.js +26 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/faux.d.ts +56 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/faux.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/faux.js +368 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/faux.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.d.ts +8 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.js +29 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.d.ts +70 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.js +331 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.d.ts +15 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.js +442 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/google.d.ts +13 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/google.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/google.js +402 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/google.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.d.ts +3 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.js +128 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.d.ts +4 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.js +34 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.d.ts +25 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.js +534 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.d.ts +30 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.js +1171 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.d.ts +19 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.js +977 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.d.ts +11 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.js +22 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.d.ts +18 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.js +496 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.d.ts +13 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.js +233 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.d.ts +35 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.js +254 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.d.ts +8 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.js +42 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.d.ts +13 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.js +82 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.d.ts +8 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.js +184 -0
- package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/session-resources.d.ts +4 -0
- package/node_modules/@earendil-works/omk-ai/dist/session-resources.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/session-resources.js +22 -0
- package/node_modules/@earendil-works/omk-ai/dist/session-resources.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/stream.d.ts +8 -0
- package/node_modules/@earendil-works/omk-ai/dist/stream.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/stream.js +77 -0
- package/node_modules/@earendil-works/omk-ai/dist/stream.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/types.d.ts +570 -0
- package/node_modules/@earendil-works/omk-ai/dist/types.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/types.js +2 -0
- package/node_modules/@earendil-works/omk-ai/dist/types.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.d.ts +6 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.js +34 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.d.ts +19 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.js +25 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.d.ts +21 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.js +81 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/hash.d.ts +3 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/hash.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/hash.js +14 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/hash.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/headers.d.ts +2 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/headers.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/headers.js +8 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/headers.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.d.ts +16 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.js +113 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.d.ts +10 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.js +97 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.d.ts +25 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.js +335 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.d.ts +21 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.js +56 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.d.ts +30 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.js +280 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.d.ts +58 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.js +122 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.d.ts +3 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.js +105 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.d.ts +43 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.js +487 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.d.ts +13 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.js +31 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.d.ts +64 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.js +2 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.d.ts +57 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.js +154 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.d.ts +22 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.js +26 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.d.ts +17 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.js +21 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/validation.d.ts +18 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/validation.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/validation.js +281 -0
- package/node_modules/@earendil-works/omk-ai/dist/utils/validation.js.map +1 -0
- package/node_modules/@earendil-works/omk-ai/package.json +106 -0
- package/node_modules/@earendil-works/omk-tui/README.md +791 -0
- package/node_modules/@earendil-works/omk-tui/dist/autocomplete.d.ts +54 -0
- package/node_modules/@earendil-works/omk-tui/dist/autocomplete.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/autocomplete.js +632 -0
- package/node_modules/@earendil-works/omk-tui/dist/autocomplete.js.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/box.d.ts +22 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/box.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/box.js +104 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/box.js.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.d.ts +22 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.js +35 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.js.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/editor.d.ts +249 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/editor.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/editor.js +1857 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/editor.js.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/image.d.ts +28 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/image.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/image.js +89 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/image.js.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/input.d.ts +37 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/input.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/input.js +378 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/input.js.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/loader.d.ts +31 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/loader.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/loader.js +69 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/loader.js.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/markdown.d.ts +96 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/markdown.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/markdown.js +644 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/markdown.js.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/select-list.d.ts +50 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/select-list.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/select-list.js +159 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/select-list.js.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.d.ts +50 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.js +185 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.js.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/spacer.d.ts +12 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/spacer.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/spacer.js +23 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/spacer.js.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/text.d.ts +19 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/text.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/text.js +89 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/text.js.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.d.ts +13 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.js +51 -0
- package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.js.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/editor-component.d.ts +39 -0
- package/node_modules/@earendil-works/omk-tui/dist/editor-component.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/editor-component.js +2 -0
- package/node_modules/@earendil-works/omk-tui/dist/editor-component.js.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/fuzzy.d.ts +16 -0
- package/node_modules/@earendil-works/omk-tui/dist/fuzzy.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/fuzzy.js +110 -0
- package/node_modules/@earendil-works/omk-tui/dist/fuzzy.js.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/index.d.ts +23 -0
- package/node_modules/@earendil-works/omk-tui/dist/index.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/index.js +32 -0
- package/node_modules/@earendil-works/omk-tui/dist/index.js.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/keybindings.d.ts +212 -0
- package/node_modules/@earendil-works/omk-tui/dist/keybindings.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/keybindings.js +252 -0
- package/node_modules/@earendil-works/omk-tui/dist/keybindings.js.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/keys.d.ts +184 -0
- package/node_modules/@earendil-works/omk-tui/dist/keys.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/keys.js +1173 -0
- package/node_modules/@earendil-works/omk-tui/dist/keys.js.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/kill-ring.d.ts +28 -0
- package/node_modules/@earendil-works/omk-tui/dist/kill-ring.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/kill-ring.js +44 -0
- package/node_modules/@earendil-works/omk-tui/dist/kill-ring.js.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.d.ts +3 -0
- package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.js +53 -0
- package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.js.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.d.ts +50 -0
- package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.js +361 -0
- package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.js.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/terminal-image.d.ts +90 -0
- package/node_modules/@earendil-works/omk-tui/dist/terminal-image.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/terminal-image.js +366 -0
- package/node_modules/@earendil-works/omk-tui/dist/terminal-image.js.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/terminal.d.ts +113 -0
- package/node_modules/@earendil-works/omk-tui/dist/terminal.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/terminal.js +472 -0
- package/node_modules/@earendil-works/omk-tui/dist/terminal.js.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/tui.d.ts +242 -0
- package/node_modules/@earendil-works/omk-tui/dist/tui.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/tui.js +1221 -0
- package/node_modules/@earendil-works/omk-tui/dist/tui.js.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/undo-stack.d.ts +17 -0
- package/node_modules/@earendil-works/omk-tui/dist/undo-stack.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/undo-stack.js +25 -0
- package/node_modules/@earendil-works/omk-tui/dist/undo-stack.js.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/utils.d.ts +84 -0
- package/node_modules/@earendil-works/omk-tui/dist/utils.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/utils.js +1032 -0
- package/node_modules/@earendil-works/omk-tui/dist/utils.js.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/word-navigation.d.ts +25 -0
- package/node_modules/@earendil-works/omk-tui/dist/word-navigation.d.ts.map +1 -0
- package/node_modules/@earendil-works/omk-tui/dist/word-navigation.js +96 -0
- package/node_modules/@earendil-works/omk-tui/dist/word-navigation.js.map +1 -0
- 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 +47 -0
- package/package.json +22 -6
- package/dist/utils/pi-user-agent.d.ts +0 -2
- package/dist/utils/pi-user-agent.d.ts.map +0 -1
- package/dist/utils/pi-user-agent.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
|
-
import { chmodSync, existsSync, mkdirSync, readdirSync, readFileSync, rmSync, statSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { chmodSync, existsSync, mkdirSync, readdirSync, readFileSync, realpathSync, rmSync, statSync, writeFileSync, } from "node:fs";
|
|
3
3
|
import { homedir } from "node:os";
|
|
4
4
|
function getEnv() {
|
|
5
5
|
if (process.platform !== "linux" || Object.keys(process.env).length > 0) {
|
|
@@ -29,15 +29,95 @@ import { spawnProcess, spawnProcessSync } from "../utils/child-process.js";
|
|
|
29
29
|
import { parseGitUrl } from "../utils/git.js";
|
|
30
30
|
import { canonicalizePath, isLocalPath, markPathIgnoredByCloudSync, resolvePath } from "../utils/paths.js";
|
|
31
31
|
import { isStdoutTakenOver } from "./output-guard.js";
|
|
32
|
+
import { isPathInsideRootByRealpath, resolveManifestEntryInsideRoot } from "./package-gallery.js";
|
|
33
|
+
import { validateExactNpmVersion, validateGitRef } from "./package-procurement.js";
|
|
34
|
+
import { createTrialRuntimePlan } from "./package-trial-runtime.js";
|
|
32
35
|
const NETWORK_TIMEOUT_MS = 10000;
|
|
33
36
|
const UPDATE_CHECK_CONCURRENCY = 4;
|
|
34
37
|
const GIT_UPDATE_CONCURRENCY = 4;
|
|
35
38
|
function isOfflineModeEnabled() {
|
|
36
|
-
const value = process.env.OMK_OFFLINE
|
|
39
|
+
const value = process.env.OMK_OFFLINE;
|
|
37
40
|
if (!value)
|
|
38
41
|
return false;
|
|
39
42
|
return value === "1" || value.toLowerCase() === "true" || value.toLowerCase() === "yes";
|
|
40
43
|
}
|
|
44
|
+
export function buildGitDependencyInstallArgs(hasConfiguredNpmCommand, allowScripts = false) {
|
|
45
|
+
// Default (allowScripts=false) appends --ignore-scripts, leaving the historical arg vector byte-identical.
|
|
46
|
+
// Opt-in allowScripts simply omits --ignore-scripts so reviewed packages may run lifecycle scripts.
|
|
47
|
+
const scriptArgs = allowScripts ? [] : ["--ignore-scripts"];
|
|
48
|
+
if (hasConfiguredNpmCommand) {
|
|
49
|
+
return ["install", ...scriptArgs];
|
|
50
|
+
}
|
|
51
|
+
return ["install", "--omit=dev", ...scriptArgs];
|
|
52
|
+
}
|
|
53
|
+
export function buildNpmInstallArgs(packageManagerName, specs, installRoot, allowScripts = false) {
|
|
54
|
+
// Extension packages run inside OMK and resolve OMK APIs through loader aliases/virtual modules.
|
|
55
|
+
// Disable peer dependency resolution for managed installs (npm's --legacy-peer-deps, and
|
|
56
|
+
// equivalent bun/pnpm settings) so package managers do not install or solve host-provided
|
|
57
|
+
// @earendil-works/omk-* peers. Stale auto-installed legacy peers can otherwise block updates.
|
|
58
|
+
//
|
|
59
|
+
// Lifecycle scripts stay disabled by default (--ignore-scripts). allowScripts=true omits that flag
|
|
60
|
+
// for the whole install unit; npm/pnpm/bun cannot scope script execution to specific top-level specs.
|
|
61
|
+
const scriptArgs = allowScripts ? [] : ["--ignore-scripts"];
|
|
62
|
+
if (packageManagerName === "bun") {
|
|
63
|
+
return ["install", ...specs, "--cwd", installRoot, "--omit=peer", ...scriptArgs];
|
|
64
|
+
}
|
|
65
|
+
if (packageManagerName === "pnpm") {
|
|
66
|
+
return [
|
|
67
|
+
"install",
|
|
68
|
+
...specs,
|
|
69
|
+
"--prefix",
|
|
70
|
+
installRoot,
|
|
71
|
+
"--config.auto-install-peers=false",
|
|
72
|
+
"--config.strict-peer-dependencies=false",
|
|
73
|
+
"--config.strict-dep-builds=false",
|
|
74
|
+
...scriptArgs,
|
|
75
|
+
];
|
|
76
|
+
}
|
|
77
|
+
return ["install", ...specs, "--prefix", installRoot, "--legacy-peer-deps", ...scriptArgs];
|
|
78
|
+
}
|
|
79
|
+
// Entries that can never describe a real npm/git canonical key. Rejecting them keeps membership a strict
|
|
80
|
+
// exact-string match (no glob/minimatch/semver/override semantics) even if such junk lands in settings.
|
|
81
|
+
const ALLOW_SCRIPT_ENTRY_FORBIDDEN = /[*?\s\u0000-\u001f]/;
|
|
82
|
+
function isUsableAllowScriptEntry(entry) {
|
|
83
|
+
if (!entry)
|
|
84
|
+
return false;
|
|
85
|
+
if (ALLOW_SCRIPT_ENTRY_FORBIDDEN.test(entry))
|
|
86
|
+
return false;
|
|
87
|
+
// Filter-style override prefixes are not allowlist semantics.
|
|
88
|
+
if (entry.startsWith("!") || entry.startsWith("+") || entry.startsWith("-"))
|
|
89
|
+
return false;
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
function parseNpmPackageName(spec) {
|
|
93
|
+
const match = spec.match(/^(@?[^@]+(?:\/[^@]+)?)(?:@(.+))?$/);
|
|
94
|
+
return match?.[1] ?? spec;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Exact-match membership for npm install units. Returns true only when the install unit is non-empty and
|
|
98
|
+
* EVERY top-level spec is listed (by `npm:<name>` identity or `npm:<spec>`). Mixed/partial lists stay false
|
|
99
|
+
* so a single unlisted spec keeps the whole install fail-closed under --ignore-scripts.
|
|
100
|
+
*/
|
|
101
|
+
export function isNpmInstallAllowed(specs, allowList) {
|
|
102
|
+
if (specs.length === 0)
|
|
103
|
+
return false;
|
|
104
|
+
const allowed = new Set(allowList.filter(isUsableAllowScriptEntry));
|
|
105
|
+
if (allowed.size === 0)
|
|
106
|
+
return false;
|
|
107
|
+
return specs.every((spec) => {
|
|
108
|
+
const name = parseNpmPackageName(spec);
|
|
109
|
+
return allowed.has(`npm:${name}`) || allowed.has(`npm:${spec}`);
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
/** Exact-match membership for a git install unit by `git:<host>/<path>` identity or `...@<ref>` spec. */
|
|
113
|
+
export function isGitInstallAllowed(source, allowList) {
|
|
114
|
+
const allowed = new Set(allowList.filter(isUsableAllowScriptEntry));
|
|
115
|
+
if (allowed.size === 0)
|
|
116
|
+
return false;
|
|
117
|
+
const identity = `git:${source.host}/${source.path}`;
|
|
118
|
+
const spec = source.ref ? `${identity}@${source.ref}` : identity;
|
|
119
|
+
return allowed.has(identity) || allowed.has(spec);
|
|
120
|
+
}
|
|
41
121
|
/** Thrown when an `onMissing` callback explicitly requests aborting resolution. */
|
|
42
122
|
export class MissingSourceError extends Error {
|
|
43
123
|
constructor(source) {
|
|
@@ -74,6 +154,14 @@ const IGNORE_FILE_NAMES = [".gitignore", ".ignore", ".fdignore"];
|
|
|
74
154
|
function toPosixPath(p) {
|
|
75
155
|
return p.split(sep).join("/");
|
|
76
156
|
}
|
|
157
|
+
function realpathKey(path) {
|
|
158
|
+
try {
|
|
159
|
+
return realpathSync(path);
|
|
160
|
+
}
|
|
161
|
+
catch {
|
|
162
|
+
return resolve(path);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
77
165
|
function getHomeDir() {
|
|
78
166
|
return process.env.HOME || homedir();
|
|
79
167
|
}
|
|
@@ -146,10 +234,16 @@ function splitPatterns(entries) {
|
|
|
146
234
|
}
|
|
147
235
|
return { plain, patterns };
|
|
148
236
|
}
|
|
149
|
-
function collectFiles(dir, filePattern, skipNodeModules = true, ignoreMatcher, rootDir) {
|
|
237
|
+
function collectFiles(dir, filePattern, skipNodeModules = true, ignoreMatcher, rootDir, containmentRoot, seenDirs = new Set()) {
|
|
150
238
|
const files = [];
|
|
151
239
|
if (!existsSync(dir))
|
|
152
240
|
return files;
|
|
241
|
+
if (containmentRoot && !isPathInsideRootByRealpath(containmentRoot, dir))
|
|
242
|
+
return files;
|
|
243
|
+
const dirKey = realpathKey(dir);
|
|
244
|
+
if (seenDirs.has(dirKey))
|
|
245
|
+
return files;
|
|
246
|
+
seenDirs.add(dirKey);
|
|
153
247
|
const root = rootDir ?? dir;
|
|
154
248
|
const ig = ignoreMatcher ?? ignore();
|
|
155
249
|
addIgnoreRules(ig, dir, root);
|
|
@@ -161,6 +255,8 @@ function collectFiles(dir, filePattern, skipNodeModules = true, ignoreMatcher, r
|
|
|
161
255
|
if (skipNodeModules && entry.name === "node_modules")
|
|
162
256
|
continue;
|
|
163
257
|
const fullPath = join(dir, entry.name);
|
|
258
|
+
if (containmentRoot && !isPathInsideRootByRealpath(containmentRoot, fullPath))
|
|
259
|
+
continue;
|
|
164
260
|
let isDir = entry.isDirectory();
|
|
165
261
|
let isFile = entry.isFile();
|
|
166
262
|
if (entry.isSymbolicLink()) {
|
|
@@ -178,7 +274,7 @@ function collectFiles(dir, filePattern, skipNodeModules = true, ignoreMatcher, r
|
|
|
178
274
|
if (ig.ignores(ignorePath))
|
|
179
275
|
continue;
|
|
180
276
|
if (isDir) {
|
|
181
|
-
files.push(...collectFiles(fullPath, filePattern, skipNodeModules, ig, root));
|
|
277
|
+
files.push(...collectFiles(fullPath, filePattern, skipNodeModules, ig, root, containmentRoot, seenDirs));
|
|
182
278
|
}
|
|
183
279
|
else if (isFile && filePattern.test(entry.name)) {
|
|
184
280
|
files.push(fullPath);
|
|
@@ -190,10 +286,16 @@ function collectFiles(dir, filePattern, skipNodeModules = true, ignoreMatcher, r
|
|
|
190
286
|
}
|
|
191
287
|
return files;
|
|
192
288
|
}
|
|
193
|
-
function collectSkillEntries(dir, mode, ignoreMatcher, rootDir) {
|
|
289
|
+
function collectSkillEntries(dir, mode, ignoreMatcher, rootDir, containmentRoot, seenDirs = new Set()) {
|
|
194
290
|
const entries = [];
|
|
195
291
|
if (!existsSync(dir))
|
|
196
292
|
return entries;
|
|
293
|
+
if (containmentRoot && !isPathInsideRootByRealpath(containmentRoot, dir))
|
|
294
|
+
return entries;
|
|
295
|
+
const dirKey = realpathKey(dir);
|
|
296
|
+
if (seenDirs.has(dirKey))
|
|
297
|
+
return entries;
|
|
298
|
+
seenDirs.add(dirKey);
|
|
197
299
|
const root = rootDir ?? dir;
|
|
198
300
|
const ig = ignoreMatcher ?? ignore();
|
|
199
301
|
addIgnoreRules(ig, dir, root);
|
|
@@ -204,6 +306,8 @@ function collectSkillEntries(dir, mode, ignoreMatcher, rootDir) {
|
|
|
204
306
|
continue;
|
|
205
307
|
}
|
|
206
308
|
const fullPath = join(dir, entry.name);
|
|
309
|
+
if (containmentRoot && !isPathInsideRootByRealpath(containmentRoot, fullPath))
|
|
310
|
+
continue;
|
|
207
311
|
let isFile = entry.isFile();
|
|
208
312
|
if (entry.isSymbolicLink()) {
|
|
209
313
|
try {
|
|
@@ -225,6 +329,8 @@ function collectSkillEntries(dir, mode, ignoreMatcher, rootDir) {
|
|
|
225
329
|
if (entry.name === "node_modules")
|
|
226
330
|
continue;
|
|
227
331
|
const fullPath = join(dir, entry.name);
|
|
332
|
+
if (containmentRoot && !isPathInsideRootByRealpath(containmentRoot, fullPath))
|
|
333
|
+
continue;
|
|
228
334
|
let isDir = entry.isDirectory();
|
|
229
335
|
let isFile = entry.isFile();
|
|
230
336
|
if (entry.isSymbolicLink()) {
|
|
@@ -238,7 +344,7 @@ function collectSkillEntries(dir, mode, ignoreMatcher, rootDir) {
|
|
|
238
344
|
}
|
|
239
345
|
}
|
|
240
346
|
const relPath = toPosixPath(relative(root, fullPath));
|
|
241
|
-
if (mode === "
|
|
347
|
+
if (mode === "omk" && dir === root && isFile && entry.name.endsWith(".md") && !ig.ignores(relPath)) {
|
|
242
348
|
entries.push(fullPath);
|
|
243
349
|
continue;
|
|
244
350
|
}
|
|
@@ -246,7 +352,7 @@ function collectSkillEntries(dir, mode, ignoreMatcher, rootDir) {
|
|
|
246
352
|
continue;
|
|
247
353
|
if (ig.ignores(`${relPath}/`))
|
|
248
354
|
continue;
|
|
249
|
-
entries.push(...collectSkillEntries(fullPath, mode, ig, root));
|
|
355
|
+
entries.push(...collectSkillEntries(fullPath, mode, ig, root, containmentRoot, seenDirs));
|
|
250
356
|
}
|
|
251
357
|
}
|
|
252
358
|
catch {
|
|
@@ -370,16 +476,25 @@ function readOmkManifestFile(packageJsonPath) {
|
|
|
370
476
|
return null;
|
|
371
477
|
}
|
|
372
478
|
}
|
|
373
|
-
function resolveExtensionEntries(dir) {
|
|
479
|
+
function resolveExtensionEntries(dir, containmentRoot) {
|
|
480
|
+
if (containmentRoot && !isPathInsideRootByRealpath(containmentRoot, dir))
|
|
481
|
+
return null;
|
|
374
482
|
const packageJsonPath = join(dir, "package.json");
|
|
375
483
|
if (existsSync(packageJsonPath)) {
|
|
376
484
|
const manifest = readOmkManifestFile(packageJsonPath);
|
|
377
485
|
if (manifest?.extensions?.length) {
|
|
378
486
|
const entries = [];
|
|
379
487
|
for (const extPath of manifest.extensions) {
|
|
380
|
-
const resolvedExtPath =
|
|
381
|
-
|
|
382
|
-
|
|
488
|
+
const resolvedExtPath = containmentRoot
|
|
489
|
+
? resolveManifestEntryInsideRoot(containmentRoot, extPath, dir)
|
|
490
|
+
: extPath.trim()
|
|
491
|
+
? resolve(dir, extPath)
|
|
492
|
+
: undefined;
|
|
493
|
+
if (!resolvedExtPath)
|
|
494
|
+
continue;
|
|
495
|
+
const candidate = containmentRoot ? resolve(containmentRoot, resolvedExtPath) : resolvedExtPath;
|
|
496
|
+
if (existsSync(candidate) && (!containmentRoot || isPathInsideRootByRealpath(containmentRoot, candidate))) {
|
|
497
|
+
entries.push(candidate);
|
|
383
498
|
}
|
|
384
499
|
}
|
|
385
500
|
if (entries.length > 0) {
|
|
@@ -389,20 +504,26 @@ function resolveExtensionEntries(dir) {
|
|
|
389
504
|
}
|
|
390
505
|
const indexTs = join(dir, "index.ts");
|
|
391
506
|
const indexJs = join(dir, "index.js");
|
|
392
|
-
if (existsSync(indexTs)) {
|
|
507
|
+
if (existsSync(indexTs) && (!containmentRoot || isPathInsideRootByRealpath(containmentRoot, indexTs))) {
|
|
393
508
|
return [indexTs];
|
|
394
509
|
}
|
|
395
|
-
if (existsSync(indexJs)) {
|
|
510
|
+
if (existsSync(indexJs) && (!containmentRoot || isPathInsideRootByRealpath(containmentRoot, indexJs))) {
|
|
396
511
|
return [indexJs];
|
|
397
512
|
}
|
|
398
513
|
return null;
|
|
399
514
|
}
|
|
400
|
-
function collectAutoExtensionEntries(dir) {
|
|
515
|
+
function collectAutoExtensionEntries(dir, containmentRoot, seenDirs = new Set()) {
|
|
401
516
|
const entries = [];
|
|
402
517
|
if (!existsSync(dir))
|
|
403
518
|
return entries;
|
|
519
|
+
if (containmentRoot && !isPathInsideRootByRealpath(containmentRoot, dir))
|
|
520
|
+
return entries;
|
|
521
|
+
const dirKey = realpathKey(dir);
|
|
522
|
+
if (seenDirs.has(dirKey))
|
|
523
|
+
return entries;
|
|
524
|
+
seenDirs.add(dirKey);
|
|
404
525
|
// First check if this directory itself has explicit extension entries (package.json or index)
|
|
405
|
-
const rootEntries = resolveExtensionEntries(dir);
|
|
526
|
+
const rootEntries = resolveExtensionEntries(dir, containmentRoot);
|
|
406
527
|
if (rootEntries) {
|
|
407
528
|
return rootEntries;
|
|
408
529
|
}
|
|
@@ -417,6 +538,8 @@ function collectAutoExtensionEntries(dir) {
|
|
|
417
538
|
if (entry.name === "node_modules")
|
|
418
539
|
continue;
|
|
419
540
|
const fullPath = join(dir, entry.name);
|
|
541
|
+
if (containmentRoot && !isPathInsideRootByRealpath(containmentRoot, fullPath))
|
|
542
|
+
continue;
|
|
420
543
|
let isDir = entry.isDirectory();
|
|
421
544
|
let isFile = entry.isFile();
|
|
422
545
|
if (entry.isSymbolicLink()) {
|
|
@@ -437,7 +560,7 @@ function collectAutoExtensionEntries(dir) {
|
|
|
437
560
|
entries.push(fullPath);
|
|
438
561
|
}
|
|
439
562
|
else if (isDir) {
|
|
440
|
-
const resolvedEntries = resolveExtensionEntries(fullPath);
|
|
563
|
+
const resolvedEntries = resolveExtensionEntries(fullPath, containmentRoot);
|
|
441
564
|
if (resolvedEntries) {
|
|
442
565
|
entries.push(...resolvedEntries);
|
|
443
566
|
}
|
|
@@ -453,14 +576,14 @@ function collectAutoExtensionEntries(dir) {
|
|
|
453
576
|
* Collect resource files from a directory based on resource type.
|
|
454
577
|
* Extensions use smart discovery (index.ts in subdirs), others use recursive collection.
|
|
455
578
|
*/
|
|
456
|
-
function collectResourceFiles(dir, resourceType) {
|
|
579
|
+
function collectResourceFiles(dir, resourceType, containmentRoot) {
|
|
457
580
|
if (resourceType === "skills") {
|
|
458
|
-
return collectSkillEntries(dir, "
|
|
581
|
+
return collectSkillEntries(dir, "omk", undefined, undefined, containmentRoot);
|
|
459
582
|
}
|
|
460
583
|
if (resourceType === "extensions") {
|
|
461
|
-
return collectAutoExtensionEntries(dir);
|
|
584
|
+
return collectAutoExtensionEntries(dir, containmentRoot);
|
|
462
585
|
}
|
|
463
|
-
return collectFiles(dir, FILE_PATTERNS[resourceType]);
|
|
586
|
+
return collectFiles(dir, FILE_PATTERNS[resourceType], true, undefined, undefined, containmentRoot);
|
|
464
587
|
}
|
|
465
588
|
function matchesAnyPattern(filePath, patterns, baseDir) {
|
|
466
589
|
const rel = toPosixPath(relative(baseDir, filePath));
|
|
@@ -586,6 +709,8 @@ export class DefaultPackageManager {
|
|
|
586
709
|
cwd;
|
|
587
710
|
agentDir;
|
|
588
711
|
settingsManager;
|
|
712
|
+
trialRuntime;
|
|
713
|
+
trialCleanups = [];
|
|
589
714
|
globalNpmRoot;
|
|
590
715
|
globalNpmRootCommandKey;
|
|
591
716
|
progressCallback;
|
|
@@ -593,10 +718,18 @@ export class DefaultPackageManager {
|
|
|
593
718
|
this.cwd = resolvePath(options.cwd);
|
|
594
719
|
this.agentDir = resolvePath(options.agentDir);
|
|
595
720
|
this.settingsManager = options.settingsManager;
|
|
721
|
+
this.trialRuntime = options.trialRuntime;
|
|
596
722
|
}
|
|
597
723
|
setProgressCallback(callback) {
|
|
598
724
|
this.progressCallback = callback;
|
|
599
725
|
}
|
|
726
|
+
cleanupTemporaryTrialInstalls() {
|
|
727
|
+
const cleanups = this.trialCleanups;
|
|
728
|
+
this.trialCleanups = [];
|
|
729
|
+
for (const cleanup of cleanups) {
|
|
730
|
+
this.cleanupTrialInstall(cleanup, cleanup.installRoot);
|
|
731
|
+
}
|
|
732
|
+
}
|
|
600
733
|
addSourceToSettings(source, options) {
|
|
601
734
|
const scope = options?.local ? "project" : "user";
|
|
602
735
|
const currentSettings = scope === "project" ? this.settingsManager.getProjectSettings() : this.settingsManager.getGlobalSettings();
|
|
@@ -677,6 +810,29 @@ export class DefaultPackageManager {
|
|
|
677
810
|
throw error;
|
|
678
811
|
}
|
|
679
812
|
}
|
|
813
|
+
cleanupTrialInstall(plan, source) {
|
|
814
|
+
this.emitProgress({ type: "start", action: "remove", source, message: "Cleaning temporary trial install..." });
|
|
815
|
+
try {
|
|
816
|
+
const tempRoot = resolve(getExtensionTempFolder(this.agentDir));
|
|
817
|
+
const installRoot = resolve(plan.installRoot);
|
|
818
|
+
if (installRoot !== tempRoot && !installRoot.startsWith(`${tempRoot}${sep}`)) {
|
|
819
|
+
throw new Error(`Refusing to clean trial install outside temp root: ${installRoot}`);
|
|
820
|
+
}
|
|
821
|
+
for (const removePath of plan.removePaths) {
|
|
822
|
+
const resolvedRemovePath = resolve(removePath);
|
|
823
|
+
if (resolvedRemovePath !== installRoot) {
|
|
824
|
+
throw new Error(`Refusing to clean unexpected trial path: ${resolvedRemovePath}`);
|
|
825
|
+
}
|
|
826
|
+
rmSync(resolvedRemovePath, { recursive: plan.recursive, force: plan.force });
|
|
827
|
+
}
|
|
828
|
+
this.emitProgress({ type: "complete", action: "remove", source });
|
|
829
|
+
}
|
|
830
|
+
catch (error) {
|
|
831
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
832
|
+
this.emitProgress({ type: "error", action: "remove", source, message });
|
|
833
|
+
console.error(`Warning: failed to clean temporary trial install ${source}: ${message}`);
|
|
834
|
+
}
|
|
835
|
+
}
|
|
680
836
|
async resolve(onMissing) {
|
|
681
837
|
const accumulator = this.createAccumulator();
|
|
682
838
|
const globalSettings = this.settingsManager.getGlobalSettings();
|
|
@@ -747,6 +903,9 @@ export class DefaultPackageManager {
|
|
|
747
903
|
const parsed = this.parseSource(source);
|
|
748
904
|
const scope = options?.local ? "project" : "user";
|
|
749
905
|
await this.withProgress("install", source, `Installing ${source}...`, async () => {
|
|
906
|
+
// Procurement admission: enforce exact pinning before any install side effect. This is a pure
|
|
907
|
+
// gate (no fetch/clone/npm install). Local sources are exempt to preserve existing behavior.
|
|
908
|
+
this.assertInstallAdmission(parsed, source, options?.resolvedCommit);
|
|
750
909
|
if (parsed.type === "npm") {
|
|
751
910
|
await this.installNpm(parsed, scope, false);
|
|
752
911
|
return;
|
|
@@ -766,9 +925,42 @@ export class DefaultPackageManager {
|
|
|
766
925
|
});
|
|
767
926
|
}
|
|
768
927
|
async installAndPersist(source, options) {
|
|
928
|
+
// install() runs the procurement admission gate first; if it throws, settings are never mutated,
|
|
929
|
+
// so a non-pinned/non-local source can be neither installed nor persisted.
|
|
769
930
|
await this.install(source, options);
|
|
770
931
|
this.addSourceToSettings(source, options);
|
|
771
932
|
}
|
|
933
|
+
/**
|
|
934
|
+
* Procurement admission gate for explicit installs (and installAndPersist via install()).
|
|
935
|
+
*
|
|
936
|
+
* Pure check: no fetch, clone, npm install, or other dependency-install side effect. It reuses the
|
|
937
|
+
* native procurement validators (`validateExactNpmVersion`, `validateGitRef`) so the installer never
|
|
938
|
+
* runs against an unpinned, mutable, or range/dist-tag source. Rules:
|
|
939
|
+
* - non-local npm packages must carry an exact pinned version (no missing/range/wildcard/dist-tag);
|
|
940
|
+
* - git packages must use a full commit SHA, or a tag anchored to a reviewed resolved commit SHA
|
|
941
|
+
* supplied through `options.resolvedCommit`.
|
|
942
|
+
* Local sources are exempt so local development paths keep working unchanged.
|
|
943
|
+
*
|
|
944
|
+
* Only the explicit install/persist entry point is gated. resolve()'s auto-install of
|
|
945
|
+
* already-configured packages is intentionally left unchanged so existing settings keep loading.
|
|
946
|
+
*/
|
|
947
|
+
assertInstallAdmission(parsed, source, resolvedCommit) {
|
|
948
|
+
if (parsed.type === "local") {
|
|
949
|
+
return;
|
|
950
|
+
}
|
|
951
|
+
if (parsed.type === "npm") {
|
|
952
|
+
const { version } = this.parseNpmSpec(parsed.spec);
|
|
953
|
+
const verdict = validateExactNpmVersion(version);
|
|
954
|
+
if (!verdict.ok) {
|
|
955
|
+
throw new Error(`Refusing to install ${source}: non-local npm packages require an exact pinned version (e.g. npm:${parsed.name}@1.2.3). ${verdict.message}.`);
|
|
956
|
+
}
|
|
957
|
+
return;
|
|
958
|
+
}
|
|
959
|
+
const verdict = validateGitRef(parsed.ref, resolvedCommit);
|
|
960
|
+
if (!verdict.ok) {
|
|
961
|
+
throw new Error(`Refusing to install ${source}: git packages require a full commit SHA, or a reviewed resolved tag (pass options.resolvedCommit with the full SHA the tag points to). ${verdict.message}.`);
|
|
962
|
+
}
|
|
963
|
+
}
|
|
772
964
|
async remove(source, options) {
|
|
773
965
|
const parsed = this.parseSource(source);
|
|
774
966
|
const scope = options?.local ? "project" : "user";
|
|
@@ -900,7 +1092,10 @@ export class DefaultPackageManager {
|
|
|
900
1092
|
async installNpmBatch(specs, scope) {
|
|
901
1093
|
const installRoot = this.getNpmInstallRoot(scope, false);
|
|
902
1094
|
this.ensureNpmProject(installRoot);
|
|
903
|
-
|
|
1095
|
+
const allowScripts = this.shouldAllowNpmInstallScripts(specs);
|
|
1096
|
+
const unit = specs.length === 1 ? `npm:${parseNpmPackageName(specs[0])}` : `${scope} npm packages`;
|
|
1097
|
+
this.logInstallScriptDecision(unit, allowScripts);
|
|
1098
|
+
await this.runNpmCommand(this.getNpmInstallArgs(specs, installRoot, allowScripts));
|
|
904
1099
|
}
|
|
905
1100
|
async checkForAvailableUpdates() {
|
|
906
1101
|
if (isOfflineModeEnabled()) {
|
|
@@ -1064,8 +1259,12 @@ export class DefaultPackageManager {
|
|
|
1064
1259
|
}
|
|
1065
1260
|
}
|
|
1066
1261
|
async installParsedSource(parsed, scope) {
|
|
1262
|
+
if (scope === "temporary") {
|
|
1263
|
+
await this.installTemporaryTrialSource(parsed);
|
|
1264
|
+
return;
|
|
1265
|
+
}
|
|
1067
1266
|
if (parsed.type === "npm") {
|
|
1068
|
-
await this.installNpm(parsed, scope,
|
|
1267
|
+
await this.installNpm(parsed, scope, false);
|
|
1069
1268
|
return;
|
|
1070
1269
|
}
|
|
1071
1270
|
if (parsed.type === "git") {
|
|
@@ -1073,6 +1272,15 @@ export class DefaultPackageManager {
|
|
|
1073
1272
|
return;
|
|
1074
1273
|
}
|
|
1075
1274
|
}
|
|
1275
|
+
async installTemporaryTrialSource(parsed) {
|
|
1276
|
+
if (parsed.type === "npm") {
|
|
1277
|
+
await this.installTemporaryNpmTrial(parsed);
|
|
1278
|
+
return;
|
|
1279
|
+
}
|
|
1280
|
+
if (parsed.type === "git") {
|
|
1281
|
+
throw new Error("git temporary trial installs are deferred until package-trial-sandbox exposes shell-free git executor steps");
|
|
1282
|
+
}
|
|
1283
|
+
}
|
|
1076
1284
|
getPackageSourceString(pkg) {
|
|
1077
1285
|
return typeof pkg === "string" ? pkg : pkg.source;
|
|
1078
1286
|
}
|
|
@@ -1419,47 +1627,123 @@ export class DefaultPackageManager {
|
|
|
1419
1627
|
const packageManagerCommand = separatorIndex >= 0 ? commandParts[separatorIndex + 1] : npmCommand.command;
|
|
1420
1628
|
return packageManagerCommand ? basename(packageManagerCommand).replace(/\.(cmd|exe)$/i, "") : "";
|
|
1421
1629
|
}
|
|
1630
|
+
getTrialPackageManagerName() {
|
|
1631
|
+
const packageManagerName = this.getPackageManagerName();
|
|
1632
|
+
if (packageManagerName === "npm" || packageManagerName === "pnpm" || packageManagerName === "bun") {
|
|
1633
|
+
return packageManagerName;
|
|
1634
|
+
}
|
|
1635
|
+
throw new Error(`temporary npm trial installs do not support package manager: ${packageManagerName || "unknown"}`);
|
|
1636
|
+
}
|
|
1422
1637
|
async runNpmCommand(args, options) {
|
|
1423
1638
|
const npmCommand = this.getNpmCommand();
|
|
1424
1639
|
await this.runCommand(npmCommand.command, [...npmCommand.args, ...args], options);
|
|
1425
1640
|
}
|
|
1426
|
-
getGitDependencyInstallArgs() {
|
|
1641
|
+
getGitDependencyInstallArgs(allowScripts) {
|
|
1427
1642
|
const configuredCommand = this.settingsManager.getNpmCommand();
|
|
1428
|
-
|
|
1429
|
-
return ["install"];
|
|
1430
|
-
}
|
|
1431
|
-
return ["install", "--omit=dev"];
|
|
1643
|
+
return buildGitDependencyInstallArgs(Boolean(configuredCommand && configuredCommand.length > 0), allowScripts);
|
|
1432
1644
|
}
|
|
1433
1645
|
runNpmCommandSync(args) {
|
|
1434
1646
|
const npmCommand = this.getNpmCommand();
|
|
1435
1647
|
return this.runCommandSync(npmCommand.command, [...npmCommand.args, ...args]);
|
|
1436
1648
|
}
|
|
1437
|
-
getNpmInstallArgs(specs, installRoot) {
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1649
|
+
getNpmInstallArgs(specs, installRoot, allowScripts) {
|
|
1650
|
+
return buildNpmInstallArgs(this.getPackageManagerName(), specs, installRoot, allowScripts);
|
|
1651
|
+
}
|
|
1652
|
+
// Caller-side exact-match membership. The pure builders stay membership-agnostic; only here do we read the
|
|
1653
|
+
// configured allowlist and decide whether an install unit may run lifecycle scripts.
|
|
1654
|
+
shouldAllowNpmInstallScripts(specs) {
|
|
1655
|
+
return isNpmInstallAllowed(specs, this.settingsManager.getInstallAllowScripts());
|
|
1656
|
+
}
|
|
1657
|
+
shouldAllowGitInstallScripts(source) {
|
|
1658
|
+
return isGitInstallAllowed(source, this.settingsManager.getInstallAllowScripts());
|
|
1659
|
+
}
|
|
1660
|
+
logInstallScriptDecision(unit, allowScripts) {
|
|
1661
|
+
if (allowScripts) {
|
|
1662
|
+
console.error(`[omk install] lifecycle scripts enabled for ${unit} via install.allowScripts; dependency tree scripts may run.`);
|
|
1663
|
+
}
|
|
1664
|
+
else {
|
|
1665
|
+
console.error(`[omk install] lifecycle scripts disabled for ${unit} (default --ignore-scripts).`);
|
|
1666
|
+
}
|
|
1667
|
+
}
|
|
1668
|
+
/**
|
|
1669
|
+
* Validate a CLI `--allow-scripts <name>` value against an install source and return the canonical allowlist
|
|
1670
|
+
* entry to persist. Exact match only; an unrelated name yields `{ ok: false, expected }` so the CLI can abort
|
|
1671
|
+
* and print the manual settings example.
|
|
1672
|
+
*/
|
|
1673
|
+
resolveInstallAllowScriptEntry(source, requested) {
|
|
1674
|
+
const parsed = this.parseSource(source);
|
|
1675
|
+
const value = requested.trim();
|
|
1676
|
+
if (parsed.type === "npm") {
|
|
1677
|
+
const identity = `npm:${parsed.name}`;
|
|
1678
|
+
const spec = `npm:${parsed.spec}`;
|
|
1679
|
+
const accepted = new Set([identity, spec, parsed.name, parsed.spec]);
|
|
1680
|
+
if (accepted.has(value)) {
|
|
1681
|
+
return { ok: true, entry: parsed.pinned ? spec : identity };
|
|
1682
|
+
}
|
|
1683
|
+
return { ok: false, expected: parsed.pinned ? [identity, spec] : [identity] };
|
|
1684
|
+
}
|
|
1685
|
+
if (parsed.type === "git") {
|
|
1686
|
+
const identity = `git:${parsed.host}/${parsed.path}`;
|
|
1687
|
+
const spec = parsed.ref ? `${identity}@${parsed.ref}` : identity;
|
|
1688
|
+
const shorthand = `${parsed.host}/${parsed.path}`;
|
|
1689
|
+
const shorthandSpec = parsed.ref ? `${shorthand}@${parsed.ref}` : shorthand;
|
|
1690
|
+
const accepted = new Set([identity, spec, shorthand, shorthandSpec]);
|
|
1691
|
+
if (accepted.has(value)) {
|
|
1692
|
+
return { ok: true, entry: spec };
|
|
1693
|
+
}
|
|
1694
|
+
return { ok: false, expected: parsed.ref ? [identity, spec] : [identity] };
|
|
1695
|
+
}
|
|
1696
|
+
return { ok: false, expected: [] };
|
|
1697
|
+
}
|
|
1698
|
+
async installTemporaryNpmTrial(source) {
|
|
1699
|
+
const trial = this.trialRuntime;
|
|
1700
|
+
if (!trial) {
|
|
1701
|
+
throw new Error("temporary npm trial installs require PackageManagerOptions.trialRuntime");
|
|
1702
|
+
}
|
|
1703
|
+
if (trial.policy.mode === "off") {
|
|
1704
|
+
throw new Error("temporary npm trial installs require audit or enforce sandbox mode");
|
|
1705
|
+
}
|
|
1706
|
+
const installRoot = this.getTemporaryNpmInstallRoot(source);
|
|
1707
|
+
const npmCommand = this.getNpmCommand();
|
|
1708
|
+
const runtime = createTrialRuntimePlan({
|
|
1709
|
+
source: `npm:${source.spec}`,
|
|
1710
|
+
installRoot,
|
|
1711
|
+
packageManagerName: this.getTrialPackageManagerName(),
|
|
1712
|
+
packageManagerCommand: [npmCommand.command, ...npmCommand.args],
|
|
1713
|
+
policy: trial.policy,
|
|
1714
|
+
backend: trial.backend ?? { platform: "unsupported", backendAvailable: false },
|
|
1715
|
+
resolver: trial.resolver,
|
|
1716
|
+
env: trial.env?.() ?? getEnv(),
|
|
1717
|
+
});
|
|
1718
|
+
if (!runtime.ok) {
|
|
1719
|
+
throw new Error(`temporary npm trial install rejected: ${runtime.reason}`);
|
|
1720
|
+
}
|
|
1721
|
+
this.emitProgress({
|
|
1722
|
+
type: "progress",
|
|
1723
|
+
action: "install",
|
|
1724
|
+
source: `npm:${source.spec}`,
|
|
1725
|
+
message: `trial plan accepted: ${runtime.audit.sandboxRule}`,
|
|
1726
|
+
});
|
|
1727
|
+
try {
|
|
1728
|
+
this.ensureNpmProject(installRoot);
|
|
1729
|
+
await this.runCommand(runtime.executor.command, [...runtime.executor.args], {
|
|
1730
|
+
cwd: runtime.executor.cwd,
|
|
1731
|
+
env: runtime.executor.env,
|
|
1732
|
+
});
|
|
1733
|
+
trial.onAudit?.(runtime.audit);
|
|
1734
|
+
this.trialCleanups.push(runtime.cleanup);
|
|
1735
|
+
}
|
|
1736
|
+
catch (error) {
|
|
1737
|
+
this.cleanupTrialInstall(runtime.cleanup, `npm:${source.spec}`);
|
|
1738
|
+
throw error;
|
|
1739
|
+
}
|
|
1458
1740
|
}
|
|
1459
1741
|
async installNpm(source, scope, temporary) {
|
|
1460
1742
|
const installRoot = this.getNpmInstallRoot(scope, temporary);
|
|
1461
1743
|
this.ensureNpmProject(installRoot);
|
|
1462
|
-
|
|
1744
|
+
const allowScripts = this.shouldAllowNpmInstallScripts([source.spec]);
|
|
1745
|
+
this.logInstallScriptDecision(`npm:${source.name}`, allowScripts);
|
|
1746
|
+
await this.runNpmCommand(this.getNpmInstallArgs([source.spec], installRoot, allowScripts));
|
|
1463
1747
|
}
|
|
1464
1748
|
async uninstallNpm(source, scope) {
|
|
1465
1749
|
const installRoot = this.getNpmInstallRoot(scope, false);
|
|
@@ -1473,14 +1757,15 @@ export class DefaultPackageManager {
|
|
|
1473
1757
|
await this.runNpmCommand(["uninstall", source.name, "--prefix", installRoot]);
|
|
1474
1758
|
}
|
|
1475
1759
|
async installGit(source, scope) {
|
|
1760
|
+
const allowScripts = this.shouldAllowGitInstallScripts(source);
|
|
1476
1761
|
const targetDir = this.getGitInstallPath(source, scope);
|
|
1477
1762
|
if (existsSync(targetDir)) {
|
|
1478
1763
|
if (source.ref) {
|
|
1479
|
-
await this.ensureGitRef(targetDir, ["fetch", "origin", source.ref], "FETCH_HEAD");
|
|
1764
|
+
await this.ensureGitRef(targetDir, ["fetch", "origin", source.ref], "FETCH_HEAD", allowScripts);
|
|
1480
1765
|
return;
|
|
1481
1766
|
}
|
|
1482
1767
|
const target = await this.getLocalGitUpdateTarget(targetDir);
|
|
1483
|
-
await this.ensureGitRef(targetDir, target.fetchArgs, target.ref);
|
|
1768
|
+
await this.ensureGitRef(targetDir, target.fetchArgs, target.ref, allowScripts);
|
|
1484
1769
|
return;
|
|
1485
1770
|
}
|
|
1486
1771
|
const gitRoot = this.getGitInstallRoot(scope);
|
|
@@ -1494,7 +1779,8 @@ export class DefaultPackageManager {
|
|
|
1494
1779
|
}
|
|
1495
1780
|
const packageJsonPath = join(targetDir, "package.json");
|
|
1496
1781
|
if (existsSync(packageJsonPath)) {
|
|
1497
|
-
|
|
1782
|
+
this.logInstallScriptDecision(`git:${source.host}/${source.path}`, allowScripts);
|
|
1783
|
+
await this.runNpmCommand(this.getGitDependencyInstallArgs(allowScripts), { cwd: targetDir });
|
|
1498
1784
|
}
|
|
1499
1785
|
}
|
|
1500
1786
|
async updateGit(source, scope) {
|
|
@@ -1503,14 +1789,15 @@ export class DefaultPackageManager {
|
|
|
1503
1789
|
await this.installGit(source, scope);
|
|
1504
1790
|
return;
|
|
1505
1791
|
}
|
|
1792
|
+
const allowScripts = this.shouldAllowGitInstallScripts(source);
|
|
1506
1793
|
if (source.ref) {
|
|
1507
|
-
await this.ensureGitRef(targetDir, ["fetch", "origin", source.ref], "FETCH_HEAD");
|
|
1794
|
+
await this.ensureGitRef(targetDir, ["fetch", "origin", source.ref], "FETCH_HEAD", allowScripts);
|
|
1508
1795
|
return;
|
|
1509
1796
|
}
|
|
1510
1797
|
const target = await this.getLocalGitUpdateTarget(targetDir);
|
|
1511
|
-
await this.ensureGitRef(targetDir, target.fetchArgs, target.ref);
|
|
1798
|
+
await this.ensureGitRef(targetDir, target.fetchArgs, target.ref, allowScripts);
|
|
1512
1799
|
}
|
|
1513
|
-
async ensureGitRef(targetDir, fetchArgs, ref) {
|
|
1800
|
+
async ensureGitRef(targetDir, fetchArgs, ref, allowScripts) {
|
|
1514
1801
|
// Fetch only the ref we will reset to, avoiding unrelated branch/tag noise.
|
|
1515
1802
|
await this.runCommand("git", fetchArgs, { cwd: targetDir });
|
|
1516
1803
|
const localHead = await this.runCommandCapture("git", ["rev-parse", "HEAD"], {
|
|
@@ -1530,7 +1817,8 @@ export class DefaultPackageManager {
|
|
|
1530
1817
|
await this.runCommand("git", ["clean", "-fdx"], { cwd: targetDir });
|
|
1531
1818
|
const packageJsonPath = join(targetDir, "package.json");
|
|
1532
1819
|
if (existsSync(packageJsonPath)) {
|
|
1533
|
-
|
|
1820
|
+
this.logInstallScriptDecision(`git:${basename(targetDir)}`, allowScripts);
|
|
1821
|
+
await this.runNpmCommand(this.getGitDependencyInstallArgs(allowScripts), { cwd: targetDir });
|
|
1534
1822
|
}
|
|
1535
1823
|
}
|
|
1536
1824
|
async refreshTemporaryGitSource(source, sourceStr) {
|
|
@@ -1584,7 +1872,7 @@ export class DefaultPackageManager {
|
|
|
1584
1872
|
this.ensureGitIgnore(installRoot);
|
|
1585
1873
|
const packageJsonPath = join(installRoot, "package.json");
|
|
1586
1874
|
if (!existsSync(packageJsonPath)) {
|
|
1587
|
-
const pkgJson = { name: "
|
|
1875
|
+
const pkgJson = { name: "omk-extensions", private: true };
|
|
1588
1876
|
writeFileSync(packageJsonPath, JSON.stringify(pkgJson, null, 2), "utf-8");
|
|
1589
1877
|
}
|
|
1590
1878
|
}
|
|
@@ -1635,9 +1923,12 @@ export class DefaultPackageManager {
|
|
|
1635
1923
|
}
|
|
1636
1924
|
return undefined;
|
|
1637
1925
|
}
|
|
1926
|
+
getTemporaryNpmInstallRoot(source) {
|
|
1927
|
+
return this.getTemporaryDir("npm", source.spec);
|
|
1928
|
+
}
|
|
1638
1929
|
getManagedNpmInstallPath(source, scope) {
|
|
1639
1930
|
if (scope === "temporary") {
|
|
1640
|
-
return join(this.
|
|
1931
|
+
return join(this.getTemporaryNpmInstallRoot(source), "node_modules", source.name);
|
|
1641
1932
|
}
|
|
1642
1933
|
if (scope === "project") {
|
|
1643
1934
|
return join(this.cwd, CONFIG_DIR_NAME, "npm", "node_modules", source.name);
|
|
@@ -1737,7 +2028,7 @@ export class DefaultPackageManager {
|
|
|
1737
2028
|
const dir = join(packageRoot, resourceType);
|
|
1738
2029
|
if (existsSync(dir)) {
|
|
1739
2030
|
// Collect all files from the directory (all enabled by default)
|
|
1740
|
-
const files = collectResourceFiles(dir, resourceType);
|
|
2031
|
+
const files = collectResourceFiles(dir, resourceType, packageRoot);
|
|
1741
2032
|
for (const f of files) {
|
|
1742
2033
|
this.addResource(this.getTargetMap(accumulator, resourceType), f, metadata, true);
|
|
1743
2034
|
}
|
|
@@ -1756,7 +2047,7 @@ export class DefaultPackageManager {
|
|
|
1756
2047
|
const dir = join(packageRoot, resourceType);
|
|
1757
2048
|
if (existsSync(dir)) {
|
|
1758
2049
|
// Collect all files from the directory (all enabled by default)
|
|
1759
|
-
const files = collectResourceFiles(dir, resourceType);
|
|
2050
|
+
const files = collectResourceFiles(dir, resourceType, packageRoot);
|
|
1760
2051
|
for (const f of files) {
|
|
1761
2052
|
this.addResource(target, f, metadata, true);
|
|
1762
2053
|
}
|
|
@@ -1796,7 +2087,7 @@ export class DefaultPackageManager {
|
|
|
1796
2087
|
if (!existsSync(conventionDir)) {
|
|
1797
2088
|
return { allFiles: [], enabledByManifest: new Set() };
|
|
1798
2089
|
}
|
|
1799
|
-
const allFiles = collectResourceFiles(conventionDir, resourceType);
|
|
2090
|
+
const allFiles = collectResourceFiles(conventionDir, resourceType, packageRoot);
|
|
1800
2091
|
return { allFiles, enabledByManifest: new Set(allFiles) };
|
|
1801
2092
|
}
|
|
1802
2093
|
readOmkManifest(packageRoot) {
|
|
@@ -1826,7 +2117,10 @@ export class DefaultPackageManager {
|
|
|
1826
2117
|
}
|
|
1827
2118
|
}
|
|
1828
2119
|
collectFilesFromManifestEntries(entries, root, resourceType) {
|
|
1829
|
-
const sourceEntries = entries
|
|
2120
|
+
const sourceEntries = entries
|
|
2121
|
+
.filter((entry) => !isOverridePattern(entry))
|
|
2122
|
+
.map((entry) => resolveManifestEntryInsideRoot(root, entry))
|
|
2123
|
+
.filter((entry) => Boolean(entry));
|
|
1830
2124
|
const resolved = sourceEntries.flatMap((entry) => {
|
|
1831
2125
|
if (!hasGlobPattern(entry)) {
|
|
1832
2126
|
return [resolve(root, entry)];
|
|
@@ -1836,9 +2130,11 @@ export class DefaultPackageManager {
|
|
|
1836
2130
|
absolute: true,
|
|
1837
2131
|
dot: false,
|
|
1838
2132
|
nodir: false,
|
|
1839
|
-
})
|
|
2133
|
+
})
|
|
2134
|
+
.map((match) => resolve(match))
|
|
2135
|
+
.filter((match) => isPathInsideRootByRealpath(root, match));
|
|
1840
2136
|
});
|
|
1841
|
-
return this.collectFilesFromPaths(resolved, resourceType);
|
|
2137
|
+
return this.collectFilesFromPaths(resolved, resourceType, root);
|
|
1842
2138
|
}
|
|
1843
2139
|
resolveLocalEntries(entries, resourceType, target, metadata, baseDir) {
|
|
1844
2140
|
if (entries.length === 0)
|
|
@@ -1903,7 +2199,7 @@ export class DefaultPackageManager {
|
|
|
1903
2199
|
// Project extensions from .omk/
|
|
1904
2200
|
addResources("extensions", collectAutoExtensionEntries(projectDirs.extensions), projectMetadata, projectOverrides.extensions, projectBaseDir);
|
|
1905
2201
|
// Project skills from .omk/
|
|
1906
|
-
addResources("skills", collectAutoSkillEntries(projectDirs.skills, "
|
|
2202
|
+
addResources("skills", collectAutoSkillEntries(projectDirs.skills, "omk"), projectMetadata, projectOverrides.skills, projectBaseDir);
|
|
1907
2203
|
// Project skills from .agents/ (each with its own baseDir)
|
|
1908
2204
|
for (const agentsSkillsDir of projectAgentsSkillDirs) {
|
|
1909
2205
|
const agentsBaseDir = dirname(agentsSkillsDir); // the .agents directory
|
|
@@ -1918,7 +2214,7 @@ export class DefaultPackageManager {
|
|
|
1918
2214
|
// User extensions from ~/.omk/agent/
|
|
1919
2215
|
addResources("extensions", collectAutoExtensionEntries(userDirs.extensions), userMetadata, userOverrides.extensions, globalBaseDir);
|
|
1920
2216
|
// User skills from ~/.omk/agent/
|
|
1921
|
-
addResources("skills", collectAutoSkillEntries(userDirs.skills, "
|
|
2217
|
+
addResources("skills", collectAutoSkillEntries(userDirs.skills, "omk"), userMetadata, userOverrides.skills, globalBaseDir);
|
|
1922
2218
|
// User skills from ~/.agents/ (with its own baseDir)
|
|
1923
2219
|
const userAgentsBaseDir = dirname(userAgentsSkillsDir);
|
|
1924
2220
|
const userAgentsMetadata = {
|
|
@@ -1929,18 +2225,20 @@ export class DefaultPackageManager {
|
|
|
1929
2225
|
addResources("prompts", collectAutoPromptEntries(userDirs.prompts), userMetadata, userOverrides.prompts, globalBaseDir);
|
|
1930
2226
|
addResources("themes", collectAutoThemeEntries(userDirs.themes), userMetadata, userOverrides.themes, globalBaseDir);
|
|
1931
2227
|
}
|
|
1932
|
-
collectFilesFromPaths(paths, resourceType) {
|
|
2228
|
+
collectFilesFromPaths(paths, resourceType, containmentRoot) {
|
|
1933
2229
|
const files = [];
|
|
1934
2230
|
for (const p of paths) {
|
|
1935
2231
|
if (!existsSync(p))
|
|
1936
2232
|
continue;
|
|
2233
|
+
if (containmentRoot && !isPathInsideRootByRealpath(containmentRoot, p))
|
|
2234
|
+
continue;
|
|
1937
2235
|
try {
|
|
1938
2236
|
const stats = statSync(p);
|
|
1939
2237
|
if (stats.isFile()) {
|
|
1940
2238
|
files.push(p);
|
|
1941
2239
|
}
|
|
1942
2240
|
else if (stats.isDirectory()) {
|
|
1943
|
-
files.push(...collectResourceFiles(p, resourceType));
|
|
2241
|
+
files.push(...collectResourceFiles(p, resourceType, containmentRoot));
|
|
1944
2242
|
}
|
|
1945
2243
|
}
|
|
1946
2244
|
catch {
|
|
@@ -2003,7 +2301,7 @@ export class DefaultPackageManager {
|
|
|
2003
2301
|
};
|
|
2004
2302
|
}
|
|
2005
2303
|
spawnCommand(command, args, options) {
|
|
2006
|
-
const env = getEnv();
|
|
2304
|
+
const env = options?.env ?? getEnv();
|
|
2007
2305
|
return spawnProcess(command, args, {
|
|
2008
2306
|
cwd: options?.cwd,
|
|
2009
2307
|
stdio: isStdoutTakenOver() ? ["ignore", 2, 2] : "inherit",
|