@calliopelabs/cli 2.3.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +45 -644
- package/dist/acp.d.ts +78 -0
- package/dist/acp.d.ts.map +1 -0
- package/dist/acp.js +572 -0
- package/dist/acp.js.map +1 -0
- package/dist/auto-compressor.d.ts.map +1 -1
- package/dist/auto-compressor.js +9 -5
- package/dist/auto-compressor.js.map +1 -1
- package/dist/bin.d.ts +9 -5
- package/dist/bin.d.ts.map +1 -1
- package/dist/bin.js +108 -76
- package/dist/bin.js.map +1 -1
- package/dist/budget.d.ts +64 -0
- package/dist/budget.d.ts.map +1 -0
- package/dist/budget.js +157 -0
- package/dist/budget.js.map +1 -0
- package/dist/checkpoint.d.ts +63 -30
- package/dist/checkpoint.d.ts.map +1 -1
- package/dist/checkpoint.js +249 -150
- package/dist/checkpoint.js.map +1 -1
- package/dist/circuit-breaker/breaker.js.map +1 -1
- package/dist/config.d.ts +86 -81
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +237 -305
- package/dist/config.js.map +1 -1
- package/dist/cost.d.ts +114 -0
- package/dist/cost.d.ts.map +1 -0
- package/dist/cost.js +499 -0
- package/dist/cost.js.map +1 -0
- package/dist/diff.d.ts.map +1 -1
- package/dist/diff.js +53 -11
- package/dist/diff.js.map +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +33 -6
- package/dist/errors.js.map +1 -1
- package/dist/files.js.map +1 -1
- package/dist/fleet.d.ts +30 -0
- package/dist/fleet.d.ts.map +1 -0
- package/dist/fleet.js +86 -0
- package/dist/fleet.js.map +1 -0
- package/dist/fuzzy-search.d.ts.map +1 -1
- package/dist/fuzzy-search.js +2 -1
- package/dist/fuzzy-search.js.map +1 -1
- package/dist/git-status.js.map +1 -1
- package/dist/headless.d.ts +1 -2
- package/dist/headless.d.ts.map +1 -1
- package/dist/headless.js +222 -26
- package/dist/headless.js.map +1 -1
- package/dist/hooks.d.ts +8 -2
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +97 -11
- package/dist/hooks.js.map +1 -1
- package/dist/hud/api.d.ts +3 -18
- package/dist/hud/api.d.ts.map +1 -1
- package/dist/hud/api.js +9 -352
- package/dist/hud/api.js.map +1 -1
- package/dist/hud/palettes.d.ts.map +1 -1
- package/dist/hud/palettes.js +0 -180
- package/dist/hud/palettes.js.map +1 -1
- package/dist/hud/skins.d.ts.map +1 -1
- package/dist/hud/skins.js +0 -263
- package/dist/hud/skins.js.map +1 -1
- package/dist/hud/types.d.ts +2 -5
- package/dist/hud/types.d.ts.map +1 -1
- package/dist/index.d.ts +1 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -4
- package/dist/index.js.map +1 -1
- package/dist/iteration-ledger.d.ts.map +1 -1
- package/dist/iteration-ledger.js +3 -2
- package/dist/iteration-ledger.js.map +1 -1
- package/dist/local-model.d.ts +150 -0
- package/dist/local-model.d.ts.map +1 -0
- package/dist/local-model.js +408 -0
- package/dist/local-model.js.map +1 -0
- package/dist/markdown.d.ts.map +1 -1
- package/dist/markdown.js +32 -10
- package/dist/markdown.js.map +1 -1
- package/dist/mcp.d.ts +35 -5
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +190 -13
- package/dist/mcp.js.map +1 -1
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +6 -4
- package/dist/memory.js.map +1 -1
- package/dist/model-detection.d.ts +14 -1
- package/dist/model-detection.d.ts.map +1 -1
- package/dist/model-detection.js +308 -115
- package/dist/model-detection.js.map +1 -1
- package/dist/parallel-tools.d.ts +9 -1
- package/dist/parallel-tools.d.ts.map +1 -1
- package/dist/parallel-tools.js +6 -5
- package/dist/parallel-tools.js.map +1 -1
- package/dist/plugins.d.ts +68 -0
- package/dist/plugins.d.ts.map +1 -1
- package/dist/plugins.js +201 -3
- package/dist/plugins.js.map +1 -1
- package/dist/policy.d.ts +43 -0
- package/dist/policy.d.ts.map +1 -0
- package/dist/policy.js +139 -0
- package/dist/policy.js.map +1 -0
- package/dist/project-config.d.ts +1 -2
- package/dist/project-config.d.ts.map +1 -1
- package/dist/project-config.js +0 -3
- package/dist/project-config.js.map +1 -1
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +36 -2
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/bedrock.d.ts.map +1 -1
- package/dist/providers/bedrock.js +83 -22
- package/dist/providers/bedrock.js.map +1 -1
- package/dist/providers/compat.d.ts +21 -0
- package/dist/providers/compat.d.ts.map +1 -1
- package/dist/providers/compat.js +176 -6
- package/dist/providers/compat.js.map +1 -1
- package/dist/providers/google.js.map +1 -1
- package/dist/providers/index.d.ts +19 -4
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +62 -9
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/ollama.d.ts +2 -2
- package/dist/providers/ollama.d.ts.map +1 -1
- package/dist/providers/ollama.js +26 -6
- package/dist/providers/ollama.js.map +1 -1
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +14 -10
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/types.d.ts +8 -0
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js +19 -10
- package/dist/providers/types.js.map +1 -1
- package/dist/replay.d.ts +37 -0
- package/dist/replay.d.ts.map +1 -0
- package/dist/replay.js +168 -0
- package/dist/replay.js.map +1 -0
- package/dist/risk.d.ts.map +1 -1
- package/dist/risk.js +15 -5
- package/dist/risk.js.map +1 -1
- package/dist/router.d.ts +133 -0
- package/dist/router.d.ts.map +1 -0
- package/dist/{model-router.js → router.js} +336 -10
- package/dist/router.js.map +1 -0
- package/dist/runlog.d.ts +185 -0
- package/dist/runlog.d.ts.map +1 -0
- package/dist/runlog.js +398 -0
- package/dist/runlog.js.map +1 -0
- package/dist/{sandbox.d.ts → sandbox/docker.d.ts} +1 -1
- package/dist/sandbox/docker.d.ts.map +1 -0
- package/dist/{sandbox.js → sandbox/docker.js} +1 -1
- package/dist/sandbox/docker.js.map +1 -0
- package/dist/sandbox/index.d.ts +36 -0
- package/dist/sandbox/index.d.ts.map +1 -0
- package/dist/sandbox/index.js +62 -0
- package/dist/sandbox/index.js.map +1 -0
- package/dist/{sandbox-native.d.ts → sandbox/native.d.ts} +2 -1
- package/dist/sandbox/native.d.ts.map +1 -0
- package/dist/{sandbox-native.js → sandbox/native.js} +38 -6
- package/dist/sandbox/native.js.map +1 -0
- package/dist/scope.d.ts +10 -0
- package/dist/scope.d.ts.map +1 -1
- package/dist/scope.js +76 -16
- package/dist/scope.js.map +1 -1
- package/dist/scuttlebot/client.d.ts +83 -0
- package/dist/scuttlebot/client.d.ts.map +1 -0
- package/dist/scuttlebot/client.js +350 -0
- package/dist/scuttlebot/client.js.map +1 -0
- package/dist/scuttlebot/config.d.ts +28 -0
- package/dist/scuttlebot/config.d.ts.map +1 -0
- package/dist/scuttlebot/config.js +91 -0
- package/dist/scuttlebot/config.js.map +1 -0
- package/dist/scuttlebot/http-client.d.ts +63 -0
- package/dist/scuttlebot/http-client.d.ts.map +1 -0
- package/dist/scuttlebot/http-client.js +124 -0
- package/dist/scuttlebot/http-client.js.map +1 -0
- package/dist/scuttlebot/index.d.ts +13 -0
- package/dist/scuttlebot/index.d.ts.map +1 -0
- package/dist/scuttlebot/index.js +10 -0
- package/dist/scuttlebot/index.js.map +1 -0
- package/dist/scuttlebot/irc-client.d.ts +124 -0
- package/dist/scuttlebot/irc-client.d.ts.map +1 -0
- package/dist/scuttlebot/irc-client.js +599 -0
- package/dist/scuttlebot/irc-client.js.map +1 -0
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +22 -54
- package/dist/setup.js.map +1 -1
- package/dist/skills.d.ts +58 -0
- package/dist/skills.d.ts.map +1 -1
- package/dist/skills.js +186 -16
- package/dist/skills.js.map +1 -1
- package/dist/storage.d.ts +0 -4
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +87 -8
- package/dist/storage.js.map +1 -1
- package/dist/streaming.d.ts +25 -0
- package/dist/streaming.d.ts.map +1 -1
- package/dist/streaming.js +59 -0
- package/dist/streaming.js.map +1 -1
- package/dist/styles.d.ts +6 -0
- package/dist/styles.d.ts.map +1 -1
- package/dist/styles.js +11 -0
- package/dist/styles.js.map +1 -1
- package/dist/summarization.js.map +1 -1
- package/dist/terminal-image.js +1 -1
- package/dist/terminal-image.js.map +1 -1
- package/dist/themes.d.ts +5 -4
- package/dist/themes.d.ts.map +1 -1
- package/dist/themes.js +35 -90
- package/dist/themes.js.map +1 -1
- package/dist/tools.d.ts +27 -3
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +352 -209
- package/dist/tools.js.map +1 -1
- package/dist/trust.d.ts +16 -3
- package/dist/trust.d.ts.map +1 -1
- package/dist/trust.js +23 -4
- package/dist/trust.js.map +1 -1
- package/dist/types.d.ts +4 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +34 -44
- package/dist/types.js.map +1 -1
- package/dist/ui/agent.d.ts +4 -7
- package/dist/ui/agent.d.ts.map +1 -1
- package/dist/ui/agent.js +354 -73
- package/dist/ui/agent.js.map +1 -1
- package/dist/ui/animations.d.ts +37 -0
- package/dist/ui/animations.d.ts.map +1 -0
- package/dist/ui/animations.js +227 -0
- package/dist/ui/animations.js.map +1 -0
- package/dist/ui/chat-input-keys.d.ts +42 -0
- package/dist/ui/chat-input-keys.d.ts.map +1 -0
- package/dist/ui/chat-input-keys.js +360 -0
- package/dist/ui/chat-input-keys.js.map +1 -0
- package/dist/ui/chat-input.d.ts +5 -2
- package/dist/ui/chat-input.d.ts.map +1 -1
- package/dist/ui/chat-input.js +54 -308
- package/dist/ui/chat-input.js.map +1 -1
- package/dist/ui/commands.d.ts +15 -45
- package/dist/ui/commands.d.ts.map +1 -1
- package/dist/ui/commands.js +461 -2636
- package/dist/ui/commands.js.map +1 -1
- package/dist/ui/completions.d.ts +1 -0
- package/dist/ui/completions.d.ts.map +1 -1
- package/dist/ui/completions.js +36 -107
- package/dist/ui/completions.js.map +1 -1
- package/dist/ui/components.d.ts +14 -6
- package/dist/ui/components.d.ts.map +1 -1
- package/dist/ui/components.js +17 -226
- package/dist/ui/components.js.map +1 -1
- package/dist/ui/context.js +6 -6
- package/dist/ui/context.js.map +1 -1
- package/dist/ui/debug-log.d.ts +11 -0
- package/dist/ui/debug-log.d.ts.map +1 -0
- package/dist/ui/debug-log.js +21 -0
- package/dist/ui/debug-log.js.map +1 -0
- package/dist/ui/error-boundary.d.ts.map +1 -1
- package/dist/ui/error-boundary.js.map +1 -1
- package/dist/ui/frame.d.ts.map +1 -1
- package/dist/ui/frame.js +1 -3
- package/dist/ui/frame.js.map +1 -1
- package/dist/ui/index.d.ts +11 -3
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +46 -887
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/input-utils.d.ts +20 -0
- package/dist/ui/input-utils.d.ts.map +1 -0
- package/dist/ui/input-utils.js +35 -0
- package/dist/ui/input-utils.js.map +1 -0
- package/dist/ui/messages.d.ts +8 -7
- package/dist/ui/messages.d.ts.map +1 -1
- package/dist/ui/messages.js +51 -35
- package/dist/ui/messages.js.map +1 -1
- package/dist/ui/modals/index.d.ts +11 -0
- package/dist/ui/modals/index.d.ts.map +1 -0
- package/dist/ui/modals/index.js +10 -0
- package/dist/ui/modals/index.js.map +1 -0
- package/dist/ui/{modals.d.ts → modals/prompts.d.ts} +5 -20
- package/dist/ui/modals/prompts.d.ts.map +1 -0
- package/dist/ui/{modals.js → modals/prompts.js} +14 -94
- package/dist/ui/modals/prompts.js.map +1 -0
- package/dist/ui/modals/selectors.d.ts +33 -0
- package/dist/ui/modals/selectors.d.ts.map +1 -0
- package/dist/ui/modals/selectors.js +111 -0
- package/dist/ui/modals/selectors.js.map +1 -0
- package/dist/ui/modals/setup.d.ts +17 -0
- package/dist/ui/modals/setup.d.ts.map +1 -0
- package/dist/ui/modals/setup.js +51 -0
- package/dist/ui/modals/setup.js.map +1 -0
- package/dist/ui/regions/input-region.d.ts +40 -0
- package/dist/ui/regions/input-region.d.ts.map +1 -0
- package/dist/ui/regions/input-region.js +116 -0
- package/dist/ui/regions/input-region.js.map +1 -0
- package/dist/ui/regions/modal-host.d.ts +41 -0
- package/dist/ui/regions/modal-host.d.ts.map +1 -0
- package/dist/ui/regions/modal-host.js +51 -0
- package/dist/ui/regions/modal-host.js.map +1 -0
- package/dist/ui/regions/render-probe.d.ts +22 -0
- package/dist/ui/regions/render-probe.d.ts.map +1 -0
- package/dist/ui/regions/render-probe.js +45 -0
- package/dist/ui/regions/render-probe.js.map +1 -0
- package/dist/ui/regions/static-scrollback.d.ts +39 -0
- package/dist/ui/regions/static-scrollback.d.ts.map +1 -0
- package/dist/ui/regions/static-scrollback.js +68 -0
- package/dist/ui/regions/static-scrollback.js.map +1 -0
- package/dist/ui/regions/status-region.d.ts +24 -0
- package/dist/ui/regions/status-region.d.ts.map +1 -0
- package/dist/ui/regions/status-region.js +17 -0
- package/dist/ui/regions/status-region.js.map +1 -0
- package/dist/ui/regions/transcript-region.d.ts +41 -0
- package/dist/ui/regions/transcript-region.d.ts.map +1 -0
- package/dist/ui/regions/transcript-region.js +52 -0
- package/dist/ui/regions/transcript-region.js.map +1 -0
- package/dist/ui/self-restart.d.ts +9 -0
- package/dist/ui/self-restart.d.ts.map +1 -0
- package/dist/ui/self-restart.js +24 -0
- package/dist/ui/self-restart.js.map +1 -0
- package/dist/ui/state/use-chat-controller.d.ts +23 -0
- package/dist/ui/state/use-chat-controller.d.ts.map +1 -0
- package/dist/ui/state/use-chat-controller.js +643 -0
- package/dist/ui/state/use-chat-controller.js.map +1 -0
- package/dist/ui/state/use-loop-state.d.ts +23 -0
- package/dist/ui/state/use-loop-state.d.ts.map +1 -0
- package/dist/ui/state/use-loop-state.js +39 -0
- package/dist/ui/state/use-loop-state.js.map +1 -0
- package/dist/ui/state/use-modal-state.d.ts +52 -0
- package/dist/ui/state/use-modal-state.d.ts.map +1 -0
- package/dist/ui/state/use-modal-state.js +44 -0
- package/dist/ui/state/use-modal-state.js.map +1 -0
- package/dist/ui/state/use-model-state.d.ts +29 -0
- package/dist/ui/state/use-model-state.d.ts.map +1 -0
- package/dist/ui/state/use-model-state.js +47 -0
- package/dist/ui/state/use-model-state.js.map +1 -0
- package/dist/ui/state/use-processing-state.d.ts +24 -0
- package/dist/ui/state/use-processing-state.d.ts.map +1 -0
- package/dist/ui/state/use-processing-state.js +46 -0
- package/dist/ui/state/use-processing-state.js.map +1 -0
- package/dist/ui/state/use-queue-state.d.ts +19 -0
- package/dist/ui/state/use-queue-state.d.ts.map +1 -0
- package/dist/ui/state/use-queue-state.js +30 -0
- package/dist/ui/state/use-queue-state.js.map +1 -0
- package/dist/ui/state/use-session-init.d.ts +22 -0
- package/dist/ui/state/use-session-init.d.ts.map +1 -0
- package/dist/ui/state/use-session-init.js +77 -0
- package/dist/ui/state/use-session-init.js.map +1 -0
- package/dist/ui/state/use-session-stats.d.ts +16 -0
- package/dist/ui/state/use-session-stats.d.ts.map +1 -0
- package/dist/ui/state/use-session-stats.js +18 -0
- package/dist/ui/state/use-session-stats.js.map +1 -0
- package/dist/ui/state/use-terminal-width.d.ts +8 -0
- package/dist/ui/state/use-terminal-width.d.ts.map +1 -0
- package/dist/ui/state/use-terminal-width.js +22 -0
- package/dist/ui/state/use-terminal-width.js.map +1 -0
- package/dist/ui/state/use-transcript-state.d.ts +21 -0
- package/dist/ui/state/use-transcript-state.d.ts.map +1 -0
- package/dist/ui/state/use-transcript-state.js +49 -0
- package/dist/ui/state/use-transcript-state.js.map +1 -0
- package/dist/ui/status-bar.d.ts +4 -1
- package/dist/ui/status-bar.d.ts.map +1 -1
- package/dist/ui/status-bar.js +13 -3
- package/dist/ui/status-bar.js.map +1 -1
- package/dist/ui/types.d.ts +3 -0
- package/dist/ui/types.d.ts.map +1 -1
- package/dist/version-check.d.ts.map +1 -1
- package/dist/version-check.js +10 -0
- package/dist/version-check.js.map +1 -1
- package/package.json +12 -8
- package/dist/agents/agent-config-loader.d.ts +0 -60
- package/dist/agents/agent-config-loader.d.ts.map +0 -1
- package/dist/agents/agent-config-loader.js +0 -402
- package/dist/agents/agent-config-loader.js.map +0 -1
- package/dist/agents/agent-config-presets.d.ts +0 -10
- package/dist/agents/agent-config-presets.d.ts.map +0 -1
- package/dist/agents/agent-config-presets.js +0 -940
- package/dist/agents/agent-config-presets.js.map +0 -1
- package/dist/agents/agent-config-types.d.ts +0 -145
- package/dist/agents/agent-config-types.d.ts.map +0 -1
- package/dist/agents/agent-config-types.js +0 -12
- package/dist/agents/agent-config-types.js.map +0 -1
- package/dist/agents/agent-detection.d.ts +0 -35
- package/dist/agents/agent-detection.d.ts.map +0 -1
- package/dist/agents/agent-detection.js +0 -110
- package/dist/agents/agent-detection.js.map +0 -1
- package/dist/agents/aggregator.d.ts +0 -19
- package/dist/agents/aggregator.d.ts.map +0 -1
- package/dist/agents/aggregator.js +0 -141
- package/dist/agents/aggregator.js.map +0 -1
- package/dist/agents/cli-backend.d.ts +0 -32
- package/dist/agents/cli-backend.d.ts.map +0 -1
- package/dist/agents/cli-backend.js +0 -271
- package/dist/agents/cli-backend.js.map +0 -1
- package/dist/agents/council-types.d.ts +0 -115
- package/dist/agents/council-types.d.ts.map +0 -1
- package/dist/agents/council-types.js +0 -81
- package/dist/agents/council-types.js.map +0 -1
- package/dist/agents/council.d.ts +0 -112
- package/dist/agents/council.d.ts.map +0 -1
- package/dist/agents/council.js +0 -722
- package/dist/agents/council.js.map +0 -1
- package/dist/agents/decomposer.d.ts +0 -33
- package/dist/agents/decomposer.d.ts.map +0 -1
- package/dist/agents/decomposer.js +0 -138
- package/dist/agents/decomposer.js.map +0 -1
- package/dist/agents/dynamic-tools.d.ts +0 -52
- package/dist/agents/dynamic-tools.d.ts.map +0 -1
- package/dist/agents/dynamic-tools.js +0 -395
- package/dist/agents/dynamic-tools.js.map +0 -1
- package/dist/agents/index.d.ts +0 -29
- package/dist/agents/index.d.ts.map +0 -1
- package/dist/agents/index.js +0 -29
- package/dist/agents/index.js.map +0 -1
- package/dist/agents/installer.d.ts +0 -39
- package/dist/agents/installer.d.ts.map +0 -1
- package/dist/agents/installer.js +0 -205
- package/dist/agents/installer.js.map +0 -1
- package/dist/agents/orchestrator.d.ts +0 -106
- package/dist/agents/orchestrator.d.ts.map +0 -1
- package/dist/agents/orchestrator.js +0 -363
- package/dist/agents/orchestrator.js.map +0 -1
- package/dist/agents/sdk-backend.d.ts +0 -63
- package/dist/agents/sdk-backend.d.ts.map +0 -1
- package/dist/agents/sdk-backend.js +0 -489
- package/dist/agents/sdk-backend.js.map +0 -1
- package/dist/agents/swarm-types.d.ts +0 -84
- package/dist/agents/swarm-types.d.ts.map +0 -1
- package/dist/agents/swarm-types.js +0 -20
- package/dist/agents/swarm-types.js.map +0 -1
- package/dist/agents/swarm.d.ts +0 -79
- package/dist/agents/swarm.d.ts.map +0 -1
- package/dist/agents/swarm.js +0 -375
- package/dist/agents/swarm.js.map +0 -1
- package/dist/agents/tools.d.ts +0 -26
- package/dist/agents/tools.d.ts.map +0 -1
- package/dist/agents/tools.js +0 -776
- package/dist/agents/tools.js.map +0 -1
- package/dist/agents/types.d.ts +0 -108
- package/dist/agents/types.d.ts.map +0 -1
- package/dist/agents/types.js +0 -43
- package/dist/agents/types.js.map +0 -1
- package/dist/api-server.d.ts +0 -36
- package/dist/api-server.d.ts.map +0 -1
- package/dist/api-server.js +0 -255
- package/dist/api-server.js.map +0 -1
- package/dist/auto-checkpoint.d.ts +0 -35
- package/dist/auto-checkpoint.d.ts.map +0 -1
- package/dist/auto-checkpoint.js +0 -143
- package/dist/auto-checkpoint.js.map +0 -1
- package/dist/background-jobs.d.ts +0 -45
- package/dist/background-jobs.d.ts.map +0 -1
- package/dist/background-jobs.js +0 -127
- package/dist/background-jobs.js.map +0 -1
- package/dist/branching.d.ts +0 -56
- package/dist/branching.d.ts.map +0 -1
- package/dist/branching.js +0 -211
- package/dist/branching.js.map +0 -1
- package/dist/cli/agent.d.ts +0 -9
- package/dist/cli/agent.d.ts.map +0 -1
- package/dist/cli/agent.js +0 -314
- package/dist/cli/agent.js.map +0 -1
- package/dist/cli/commands.d.ts +0 -12
- package/dist/cli/commands.d.ts.map +0 -1
- package/dist/cli/commands.js +0 -943
- package/dist/cli/commands.js.map +0 -1
- package/dist/cli/index.d.ts +0 -8
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js +0 -237
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/types.d.ts +0 -33
- package/dist/cli/types.d.ts.map +0 -1
- package/dist/cli/types.js +0 -21
- package/dist/cli/types.js.map +0 -1
- package/dist/companions.d.ts +0 -54
- package/dist/companions.d.ts.map +0 -1
- package/dist/companions.js +0 -440
- package/dist/companions.js.map +0 -1
- package/dist/completion.d.ts +0 -75
- package/dist/completion.d.ts.map +0 -1
- package/dist/completion.js +0 -234
- package/dist/completion.js.map +0 -1
- package/dist/file-watcher.d.ts +0 -91
- package/dist/file-watcher.d.ts.map +0 -1
- package/dist/file-watcher.js +0 -269
- package/dist/file-watcher.js.map +0 -1
- package/dist/hud/theme-packs/api.d.ts +0 -51
- package/dist/hud/theme-packs/api.d.ts.map +0 -1
- package/dist/hud/theme-packs/api.js +0 -145
- package/dist/hud/theme-packs/api.js.map +0 -1
- package/dist/hud/theme-packs/index.d.ts +0 -18
- package/dist/hud/theme-packs/index.d.ts.map +0 -1
- package/dist/hud/theme-packs/index.js +0 -38
- package/dist/hud/theme-packs/index.js.map +0 -1
- package/dist/hud/theme-packs/types.d.ts +0 -29
- package/dist/hud/theme-packs/types.d.ts.map +0 -1
- package/dist/hud/theme-packs/types.js +0 -9
- package/dist/hud/theme-packs/types.js.map +0 -1
- package/dist/idle-eviction.d.ts +0 -34
- package/dist/idle-eviction.d.ts.map +0 -1
- package/dist/idle-eviction.js +0 -78
- package/dist/idle-eviction.js.map +0 -1
- package/dist/keyboard.d.ts +0 -57
- package/dist/keyboard.d.ts.map +0 -1
- package/dist/keyboard.js +0 -265
- package/dist/keyboard.js.map +0 -1
- package/dist/model-router.d.ts +0 -67
- package/dist/model-router.d.ts.map +0 -1
- package/dist/model-router.js.map +0 -1
- package/dist/providers/openai-compat-shims.d.ts +0 -31
- package/dist/providers/openai-compat-shims.d.ts.map +0 -1
- package/dist/providers/openai-compat-shims.js +0 -179
- package/dist/providers/openai-compat-shims.js.map +0 -1
- package/dist/sandbox-native.d.ts.map +0 -1
- package/dist/sandbox-native.js.map +0 -1
- package/dist/sandbox.d.ts.map +0 -1
- package/dist/sandbox.js.map +0 -1
- package/dist/session-timeout.d.ts +0 -31
- package/dist/session-timeout.d.ts.map +0 -1
- package/dist/session-timeout.js +0 -100
- package/dist/session-timeout.js.map +0 -1
- package/dist/smart-router.d.ts +0 -73
- package/dist/smart-router.d.ts.map +0 -1
- package/dist/smart-router.js +0 -332
- package/dist/smart-router.js.map +0 -1
- package/dist/terminal-recording.d.ts +0 -55
- package/dist/terminal-recording.d.ts.map +0 -1
- package/dist/terminal-recording.js +0 -182
- package/dist/terminal-recording.js.map +0 -1
- package/dist/tmux.d.ts +0 -35
- package/dist/tmux.d.ts.map +0 -1
- package/dist/tmux.js +0 -106
- package/dist/tmux.js.map +0 -1
- package/dist/ui/modals.d.ts.map +0 -1
- package/dist/ui/modals.js.map +0 -1
- package/dist/ui/pack-picker.d.ts +0 -12
- package/dist/ui/pack-picker.d.ts.map +0 -1
- package/dist/ui/pack-picker.js +0 -101
- package/dist/ui/pack-picker.js.map +0 -1
- package/dist/ui/theme-picker.d.ts +0 -24
- package/dist/ui/theme-picker.d.ts.map +0 -1
- package/dist/ui/theme-picker.js +0 -190
- package/dist/ui/theme-picker.js.map +0 -1
package/dist/setup.js
CHANGED
|
@@ -93,7 +93,7 @@ export async function runSetup(force = false) {
|
|
|
93
93
|
message: 'Enter your Ollama base URL:',
|
|
94
94
|
default: 'http://localhost:11434',
|
|
95
95
|
});
|
|
96
|
-
config.
|
|
96
|
+
config.setProviderCred('ollama', { baseUrl });
|
|
97
97
|
}
|
|
98
98
|
else if (providerChoice === 'litellm' && needsKey) {
|
|
99
99
|
console.log();
|
|
@@ -102,7 +102,7 @@ export async function runSetup(force = false) {
|
|
|
102
102
|
message: 'Enter your LiteLLM proxy URL:',
|
|
103
103
|
default: 'http://localhost:4000',
|
|
104
104
|
});
|
|
105
|
-
config.
|
|
105
|
+
config.setProviderCred('litellm', { baseUrl });
|
|
106
106
|
const needsApiKey = await confirm({
|
|
107
107
|
message: 'Does your LiteLLM proxy require an API key?',
|
|
108
108
|
default: false,
|
|
@@ -113,7 +113,7 @@ export async function runSetup(force = false) {
|
|
|
113
113
|
mask: '*',
|
|
114
114
|
});
|
|
115
115
|
if (apiKey && apiKey.length > 0) {
|
|
116
|
-
config.
|
|
116
|
+
config.setProviderCred('litellm', { apiKey });
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
119
|
}
|
|
@@ -124,7 +124,7 @@ export async function runSetup(force = false) {
|
|
|
124
124
|
message: 'Enter your Bedrock gateway/proxy URL:',
|
|
125
125
|
default: 'http://localhost:8080',
|
|
126
126
|
});
|
|
127
|
-
config.
|
|
127
|
+
config.setProviderCred('bedrock', { baseUrl });
|
|
128
128
|
const needsApiKey = await confirm({
|
|
129
129
|
message: 'Does your Bedrock gateway require an API key?',
|
|
130
130
|
default: false,
|
|
@@ -135,7 +135,7 @@ export async function runSetup(force = false) {
|
|
|
135
135
|
mask: '*',
|
|
136
136
|
});
|
|
137
137
|
if (apiKey && apiKey.length > 0) {
|
|
138
|
-
config.
|
|
138
|
+
config.setProviderCred('bedrock', { apiKey });
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
141
|
}
|
|
@@ -144,11 +144,13 @@ export async function runSetup(force = false) {
|
|
|
144
144
|
console.log(c(' Any server that speaks the OpenAI chat completions API.', 'dim'));
|
|
145
145
|
console.log(c(' Examples: AnythingLLM (port 3001), LocalAI (8080), Jan (1337), LM Studio (1234), vLLM (8000)', 'dim'));
|
|
146
146
|
const baseUrl = await input({ message: 'Enter base URL:', default: 'http://localhost:1234/v1' });
|
|
147
|
-
config.
|
|
147
|
+
config.setProviderCred('openai-compat', { baseUrl });
|
|
148
148
|
const needsApiKey = await confirm({ message: 'Does this server require an API key?', default: false });
|
|
149
149
|
if (needsApiKey) {
|
|
150
150
|
const apiKey = await input({ message: 'Enter API key:' });
|
|
151
|
-
|
|
151
|
+
if (apiKey && apiKey.length > 0) {
|
|
152
|
+
config.setProviderCred('openai-compat', { apiKey });
|
|
153
|
+
}
|
|
152
154
|
}
|
|
153
155
|
}
|
|
154
156
|
else if (needsKey) {
|
|
@@ -195,42 +197,9 @@ export async function runSetup(force = false) {
|
|
|
195
197
|
return true;
|
|
196
198
|
},
|
|
197
199
|
});
|
|
198
|
-
// Store the key
|
|
199
|
-
|
|
200
|
-
anthropic: 'anthropicApiKey',
|
|
201
|
-
google: 'googleApiKey',
|
|
202
|
-
openai: 'openaiApiKey',
|
|
203
|
-
openrouter: 'openrouterApiKey',
|
|
204
|
-
together: 'togetherApiKey',
|
|
205
|
-
groq: 'groqApiKey',
|
|
206
|
-
fireworks: 'fireworksApiKey',
|
|
207
|
-
mistral: 'mistralApiKey',
|
|
208
|
-
ai21: 'ai21ApiKey',
|
|
209
|
-
huggingface: 'huggingfaceApiKey',
|
|
210
|
-
};
|
|
211
|
-
if (keyMap[providerChoice]) {
|
|
212
|
-
config.set(keyMap[providerChoice], apiKey);
|
|
213
|
-
}
|
|
200
|
+
// Store the key under the provider's nested credentials.
|
|
201
|
+
config.setProviderCred(providerChoice, { apiKey });
|
|
214
202
|
}
|
|
215
|
-
// Persona selection
|
|
216
|
-
console.log();
|
|
217
|
-
const personaChoice = await select({
|
|
218
|
-
message: 'Choose Calliope\'s personality:',
|
|
219
|
-
choices: [
|
|
220
|
-
{ value: 'calliope', name: 'Calliope (Recommended)', description: 'Clear, concise, and thorough' },
|
|
221
|
-
{ value: 'muse', name: 'Muse (Poetic)', description: 'Creative with artistic flair' },
|
|
222
|
-
{ value: 'minimal', name: 'Minimal', description: 'Extremely brief and efficient' },
|
|
223
|
-
],
|
|
224
|
-
default: 'calliope',
|
|
225
|
-
});
|
|
226
|
-
config.set('persona', personaChoice);
|
|
227
|
-
// Fancy output
|
|
228
|
-
console.log();
|
|
229
|
-
const fancyOutput = await confirm({
|
|
230
|
-
message: 'Enable fancy terminal output (colors, spinners, ASCII art)?',
|
|
231
|
-
default: true,
|
|
232
|
-
});
|
|
233
|
-
config.set('fancyOutput', fancyOutput);
|
|
234
203
|
// Optional: Additional providers
|
|
235
204
|
console.log();
|
|
236
205
|
const addMore = await confirm({
|
|
@@ -248,7 +217,6 @@ export async function runSetup(force = false) {
|
|
|
248
217
|
console.log(c(' Setup complete!', 'green'));
|
|
249
218
|
console.log();
|
|
250
219
|
console.log(` ${c('Provider:', 'dim')} ${c(providerChoice, 'cyan')}`);
|
|
251
|
-
console.log(` ${c('Persona:', 'dim')} ${c(personaChoice, 'magenta')}`);
|
|
252
220
|
console.log(` ${c('Config:', 'dim')} ${c(config.getConfigPath(), 'dim')}`);
|
|
253
221
|
console.log();
|
|
254
222
|
console.log(c(' Type your first message to begin, or /help for commands.', 'dim'));
|
|
@@ -261,22 +229,22 @@ export async function runSetup(force = false) {
|
|
|
261
229
|
*/
|
|
262
230
|
async function configureAdditionalProviders(existingEnvProviders) {
|
|
263
231
|
const providers = [
|
|
264
|
-
{ id: 'anthropic', name: 'Anthropic Claude', envKey: 'ANTHROPIC_API_KEY'
|
|
265
|
-
{ id: 'google', name: 'Google Gemini', envKey: 'GOOGLE_API_KEY'
|
|
266
|
-
{ id: 'openai', name: 'OpenAI GPT', envKey: 'OPENAI_API_KEY'
|
|
267
|
-
{ id: 'openrouter', name: 'OpenRouter', envKey: 'OPENROUTER_API_KEY'
|
|
268
|
-
{ id: 'together', name: 'Together AI', envKey: 'TOGETHER_API_KEY'
|
|
269
|
-
{ id: 'groq', name: 'Groq', envKey: 'GROQ_API_KEY'
|
|
270
|
-
{ id: 'mistral', name: 'Mistral AI', envKey: 'MISTRAL_API_KEY'
|
|
271
|
-
{ id: 'ai21', name: 'AI21 Labs', envKey: 'AI21_API_KEY'
|
|
272
|
-
{ id: 'huggingface', name: 'HuggingFace', envKey: 'HUGGINGFACE_API_KEY'
|
|
232
|
+
{ id: 'anthropic', name: 'Anthropic Claude', envKey: 'ANTHROPIC_API_KEY' },
|
|
233
|
+
{ id: 'google', name: 'Google Gemini', envKey: 'GOOGLE_API_KEY' },
|
|
234
|
+
{ id: 'openai', name: 'OpenAI GPT', envKey: 'OPENAI_API_KEY' },
|
|
235
|
+
{ id: 'openrouter', name: 'OpenRouter', envKey: 'OPENROUTER_API_KEY' },
|
|
236
|
+
{ id: 'together', name: 'Together AI', envKey: 'TOGETHER_API_KEY' },
|
|
237
|
+
{ id: 'groq', name: 'Groq', envKey: 'GROQ_API_KEY' },
|
|
238
|
+
{ id: 'mistral', name: 'Mistral AI', envKey: 'MISTRAL_API_KEY' },
|
|
239
|
+
{ id: 'ai21', name: 'AI21 Labs', envKey: 'AI21_API_KEY' },
|
|
240
|
+
{ id: 'huggingface', name: 'HuggingFace', envKey: 'HUGGINGFACE_API_KEY' },
|
|
273
241
|
];
|
|
274
242
|
for (const provider of providers) {
|
|
275
243
|
// Skip if already configured via env or selected as primary
|
|
276
244
|
if (existingEnvProviders.includes(provider.id)) {
|
|
277
245
|
continue;
|
|
278
246
|
}
|
|
279
|
-
const existing = config.
|
|
247
|
+
const existing = config.getProviderCred(provider.id).apiKey;
|
|
280
248
|
if (existing) {
|
|
281
249
|
continue;
|
|
282
250
|
}
|
|
@@ -290,7 +258,7 @@ async function configureAdditionalProviders(existingEnvProviders) {
|
|
|
290
258
|
mask: '*',
|
|
291
259
|
});
|
|
292
260
|
if (apiKey && apiKey.length > 10) {
|
|
293
|
-
config.
|
|
261
|
+
config.setProviderCred(provider.id, { apiKey });
|
|
294
262
|
console.log(c(` ✓ ${provider.name} configured`, 'green'));
|
|
295
263
|
}
|
|
296
264
|
}
|
package/dist/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|
package/dist/skills.d.ts
CHANGED
|
@@ -13,6 +13,13 @@ export interface SkillMetadata {
|
|
|
13
13
|
allowedTools?: string[];
|
|
14
14
|
[key: string]: string | string[] | Record<string, string> | undefined;
|
|
15
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Trust state of an installed skill relative to the sha256 pinned at install (#137).
|
|
18
|
+
* - `pinned` — on-disk SKILL.md matches the recorded hash.
|
|
19
|
+
* - `changed` — hash recorded but the file no longer matches (tampered/edited).
|
|
20
|
+
* - `unverified` — no hash recorded (legacy entry installed before pinning).
|
|
21
|
+
*/
|
|
22
|
+
export type SkillTrust = 'pinned' | 'changed' | 'unverified';
|
|
16
23
|
export interface Skill {
|
|
17
24
|
id: string;
|
|
18
25
|
path: string;
|
|
@@ -21,6 +28,19 @@ export interface Skill {
|
|
|
21
28
|
loaded: boolean;
|
|
22
29
|
source: 'local' | 'registry' | 'github';
|
|
23
30
|
sourceUrl?: string;
|
|
31
|
+
/** Short sha256 fingerprint pinned at install time, e.g. `sha256:1a2b3c4d5e6f` (#137). */
|
|
32
|
+
fingerprint?: string;
|
|
33
|
+
/** Trust state relative to the pinned hash (#137). */
|
|
34
|
+
trust?: SkillTrust;
|
|
35
|
+
}
|
|
36
|
+
/** Trust state + pinned fingerprint for an installed skill, for listing surfaces (#137). */
|
|
37
|
+
export interface SkillListing {
|
|
38
|
+
name: string;
|
|
39
|
+
description: string;
|
|
40
|
+
source: 'local' | 'registry' | 'github';
|
|
41
|
+
sourceUrl?: string;
|
|
42
|
+
trust: SkillTrust;
|
|
43
|
+
fingerprint?: string;
|
|
24
44
|
}
|
|
25
45
|
export interface SkillReference {
|
|
26
46
|
type: 'script' | 'reference' | 'asset';
|
|
@@ -28,6 +48,35 @@ export interface SkillReference {
|
|
|
28
48
|
path: string;
|
|
29
49
|
content?: string;
|
|
30
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* Confirmation request shown to the user before a network skill is installed (#137).
|
|
53
|
+
*/
|
|
54
|
+
export interface SkillInstallConfirmation {
|
|
55
|
+
name: string;
|
|
56
|
+
source: 'registry' | 'github';
|
|
57
|
+
sourceUrl: string;
|
|
58
|
+
description: string;
|
|
59
|
+
/**
|
|
60
|
+
* `first-install` for a name not yet in the registry; `content-changed` when
|
|
61
|
+
* re-installing over an existing pin whose hash differs — an explicit update
|
|
62
|
+
* that must be re-confirmed rather than silently re-pinned (#137).
|
|
63
|
+
*/
|
|
64
|
+
reason: 'first-install' | 'content-changed';
|
|
65
|
+
/** Short fingerprint of the incoming content (#137). */
|
|
66
|
+
fingerprint: string;
|
|
67
|
+
/** Previous pinned fingerprint, present only when reason is `content-changed` (#137). */
|
|
68
|
+
previousFingerprint?: string;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Reject skill names that could escape SKILLS_DIR via path traversal (#136).
|
|
72
|
+
* Mirrors the plugin loader guard in plugins.ts.
|
|
73
|
+
*/
|
|
74
|
+
export declare function assertSafeSkillName(name: string): void;
|
|
75
|
+
/**
|
|
76
|
+
* Register a confirmation handler invoked before installing a network skill (#137).
|
|
77
|
+
* Returning false aborts the install. Pass null to clear.
|
|
78
|
+
*/
|
|
79
|
+
export declare function setSkillInstallConfirmHandler(handler: ((info: SkillInstallConfirmation) => boolean | Promise<boolean>) | null): void;
|
|
31
80
|
/**
|
|
32
81
|
* Load a skill from a directory
|
|
33
82
|
*/
|
|
@@ -36,6 +85,15 @@ export declare function loadSkillFromDir(dir: string): Skill | null;
|
|
|
36
85
|
* Get all loaded skills
|
|
37
86
|
*/
|
|
38
87
|
export declare function getSkills(): Skill[];
|
|
88
|
+
/**
|
|
89
|
+
* List every installed skill with its trust state and pinned fingerprint (#137).
|
|
90
|
+
*
|
|
91
|
+
* Unlike getSkills (which returns only load-safe skills for the system prompt),
|
|
92
|
+
* this deliberately includes `changed` entries so the /skills surface can warn
|
|
93
|
+
* the user that content drifted. It does not read instructions or emit audit
|
|
94
|
+
* events — it is a pure inventory read.
|
|
95
|
+
*/
|
|
96
|
+
export declare function listSkills(): SkillListing[];
|
|
39
97
|
/**
|
|
40
98
|
* Get skill by name
|
|
41
99
|
*/
|
package/dist/skills.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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"}
|
package/dist/skills.js
CHANGED
|
@@ -8,9 +8,73 @@ import * as fs from 'fs';
|
|
|
8
8
|
import * as path from 'path';
|
|
9
9
|
import * as os from 'os';
|
|
10
10
|
import * as https from 'https';
|
|
11
|
+
import * as crypto from 'crypto';
|
|
12
|
+
import { auditIntegrityViolation } from './runlog.js';
|
|
11
13
|
// Skills storage directory
|
|
12
14
|
const SKILLS_DIR = path.join(os.homedir(), '.calliope-cli', 'skills');
|
|
13
15
|
// ============================================================================
|
|
16
|
+
// Security: name validation, path containment, trust gate (#136, #137)
|
|
17
|
+
// ============================================================================
|
|
18
|
+
/**
|
|
19
|
+
* Reject skill names that could escape SKILLS_DIR via path traversal (#136).
|
|
20
|
+
* Mirrors the plugin loader guard in plugins.ts.
|
|
21
|
+
*/
|
|
22
|
+
export function assertSafeSkillName(name) {
|
|
23
|
+
if (!name || name.includes('..') || name.includes('/') || name.includes('\\') || path.isAbsolute(name)) {
|
|
24
|
+
throw new Error(`Invalid skill name: ${name}`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Resolve a skill destination directory and confirm it stays inside SKILLS_DIR.
|
|
29
|
+
* Defense-in-depth on top of assertSafeSkillName (#136).
|
|
30
|
+
*/
|
|
31
|
+
function resolveSkillDir(name) {
|
|
32
|
+
assertSafeSkillName(name);
|
|
33
|
+
const destDir = path.join(SKILLS_DIR, name);
|
|
34
|
+
const root = path.resolve(SKILLS_DIR);
|
|
35
|
+
const resolved = path.resolve(destDir);
|
|
36
|
+
if (resolved !== root && !resolved.startsWith(root + path.sep)) {
|
|
37
|
+
throw new Error(`Invalid skill name: ${name}`);
|
|
38
|
+
}
|
|
39
|
+
return destDir;
|
|
40
|
+
}
|
|
41
|
+
function hashContent(content) {
|
|
42
|
+
return crypto.createHash('sha256').update(content).digest('hex');
|
|
43
|
+
}
|
|
44
|
+
/** Short, human-comparable fingerprint of a full sha256 hex digest (#137). */
|
|
45
|
+
function fingerprint(hash) {
|
|
46
|
+
return `sha256:${hash.slice(0, 12)}`;
|
|
47
|
+
}
|
|
48
|
+
/** sha256 of a skill directory's SKILL.md, or undefined if unreadable (#137). */
|
|
49
|
+
function hashSkillFile(skillDir) {
|
|
50
|
+
try {
|
|
51
|
+
return hashContent(fs.readFileSync(path.join(skillDir, 'SKILL.md'), 'utf-8'));
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/** Shared reason string for a load-time integrity refusal (#137). */
|
|
58
|
+
const MISMATCH_REASON = 'SKILL.md content changed since install — refusing to load (re-install to re-trust)';
|
|
59
|
+
// Optional confirmation handler for network installs (#137). When unset,
|
|
60
|
+
// installs proceed (backward-compatible). Wire an interactive prompt to gate.
|
|
61
|
+
let installConfirmHandler = null;
|
|
62
|
+
/**
|
|
63
|
+
* Register a confirmation handler invoked before installing a network skill (#137).
|
|
64
|
+
* Returning false aborts the install. Pass null to clear.
|
|
65
|
+
*/
|
|
66
|
+
export function setSkillInstallConfirmHandler(handler) {
|
|
67
|
+
installConfirmHandler = handler;
|
|
68
|
+
}
|
|
69
|
+
async function confirmInstall(info) {
|
|
70
|
+
if (!installConfirmHandler)
|
|
71
|
+
return;
|
|
72
|
+
const ok = await installConfirmHandler(info);
|
|
73
|
+
if (!ok) {
|
|
74
|
+
throw new Error(`Skill install declined: ${info.name}`);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
// ============================================================================
|
|
14
78
|
// Storage
|
|
15
79
|
// ============================================================================
|
|
16
80
|
function ensureSkillsDir() {
|
|
@@ -55,7 +119,8 @@ function parseSkillFile(content) {
|
|
|
55
119
|
if (!frontmatterMatch) {
|
|
56
120
|
return null;
|
|
57
121
|
}
|
|
58
|
-
const
|
|
122
|
+
const frontmatter = frontmatterMatch[1];
|
|
123
|
+
const instructions = frontmatterMatch[2];
|
|
59
124
|
// Simple YAML parsing (for the basic fields we need)
|
|
60
125
|
const metadata = {
|
|
61
126
|
name: '',
|
|
@@ -69,7 +134,8 @@ function parseSkillFile(content) {
|
|
|
69
134
|
// Simple key: value parsing
|
|
70
135
|
const match = line.match(/^(\w[\w-]*)\s*:\s*(.*)$/);
|
|
71
136
|
if (match && !inMultiline) {
|
|
72
|
-
const
|
|
137
|
+
const key = match[1];
|
|
138
|
+
const value = match[2];
|
|
73
139
|
currentKey = key;
|
|
74
140
|
if (value.startsWith('"') && value.endsWith('"')) {
|
|
75
141
|
metadata[key] = value.slice(1, -1);
|
|
@@ -94,7 +160,8 @@ function parseSkillFile(content) {
|
|
|
94
160
|
// Re-process this line
|
|
95
161
|
const newMatch = line.match(/^(\w[\w-]*)\s*:\s*(.*)$/);
|
|
96
162
|
if (newMatch) {
|
|
97
|
-
const
|
|
163
|
+
const key = newMatch[1];
|
|
164
|
+
const value = newMatch[2];
|
|
98
165
|
currentKey = key;
|
|
99
166
|
metadata[key] = value;
|
|
100
167
|
}
|
|
@@ -145,15 +212,68 @@ export function getSkills() {
|
|
|
145
212
|
const index = loadSkillsIndex();
|
|
146
213
|
const skills = [];
|
|
147
214
|
for (const [name, info] of Object.entries(index)) {
|
|
215
|
+
// Drop skills whose SKILL.md no longer matches the hash recorded at install
|
|
216
|
+
// time — do not silently elevate tampered content into the system prompt (#137).
|
|
217
|
+
if (info.hash && !verifySkillHash(info.path, info.hash)) {
|
|
218
|
+
console.warn(`Skill ${name}: SKILL.md hash mismatch — skipping (re-install to trust again)`);
|
|
219
|
+
auditIntegrityViolation(`skill:${name}`, MISMATCH_REASON);
|
|
220
|
+
continue;
|
|
221
|
+
}
|
|
148
222
|
const skill = loadSkillFromDir(info.path);
|
|
149
223
|
if (skill) {
|
|
150
224
|
skill.source = info.source;
|
|
151
225
|
skill.sourceUrl = info.sourceUrl;
|
|
226
|
+
skill.fingerprint = info.hash ? fingerprint(info.hash) : undefined;
|
|
227
|
+
skill.trust = info.hash ? 'pinned' : 'unverified';
|
|
152
228
|
skills.push(skill);
|
|
153
229
|
}
|
|
154
230
|
}
|
|
155
231
|
return skills;
|
|
156
232
|
}
|
|
233
|
+
/**
|
|
234
|
+
* List every installed skill with its trust state and pinned fingerprint (#137).
|
|
235
|
+
*
|
|
236
|
+
* Unlike getSkills (which returns only load-safe skills for the system prompt),
|
|
237
|
+
* this deliberately includes `changed` entries so the /skills surface can warn
|
|
238
|
+
* the user that content drifted. It does not read instructions or emit audit
|
|
239
|
+
* events — it is a pure inventory read.
|
|
240
|
+
*/
|
|
241
|
+
export function listSkills() {
|
|
242
|
+
ensureSkillsDir();
|
|
243
|
+
const index = loadSkillsIndex();
|
|
244
|
+
const out = [];
|
|
245
|
+
for (const [name, info] of Object.entries(index)) {
|
|
246
|
+
let trust;
|
|
247
|
+
if (!info.hash) {
|
|
248
|
+
trust = 'unverified';
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
trust = verifySkillHash(info.path, info.hash) ? 'pinned' : 'changed';
|
|
252
|
+
}
|
|
253
|
+
const skill = loadSkillFromDir(info.path);
|
|
254
|
+
out.push({
|
|
255
|
+
name,
|
|
256
|
+
description: skill?.metadata.description ?? '',
|
|
257
|
+
source: info.source,
|
|
258
|
+
sourceUrl: info.sourceUrl,
|
|
259
|
+
trust,
|
|
260
|
+
fingerprint: info.hash ? fingerprint(info.hash) : undefined,
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
return out;
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Re-verify a stored skill's SKILL.md against its recorded hash (TOFU — #137).
|
|
267
|
+
*/
|
|
268
|
+
function verifySkillHash(skillDir, expected) {
|
|
269
|
+
try {
|
|
270
|
+
const content = fs.readFileSync(path.join(skillDir, 'SKILL.md'), 'utf-8');
|
|
271
|
+
return hashContent(content) === expected;
|
|
272
|
+
}
|
|
273
|
+
catch {
|
|
274
|
+
return false;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
157
277
|
/**
|
|
158
278
|
* Get skill by name
|
|
159
279
|
*/
|
|
@@ -162,10 +282,18 @@ export function getSkill(name) {
|
|
|
162
282
|
const info = index[name];
|
|
163
283
|
if (!info)
|
|
164
284
|
return null;
|
|
285
|
+
// Refuse to surface tampered instructions on activation (#137).
|
|
286
|
+
if (info.hash && !verifySkillHash(info.path, info.hash)) {
|
|
287
|
+
console.warn(`Skill ${name}: SKILL.md hash mismatch — refusing to load (re-install to trust again)`);
|
|
288
|
+
auditIntegrityViolation(`skill:${name}`, MISMATCH_REASON);
|
|
289
|
+
return null;
|
|
290
|
+
}
|
|
165
291
|
const skill = loadSkillFromDir(info.path);
|
|
166
292
|
if (skill) {
|
|
167
293
|
skill.source = info.source;
|
|
168
294
|
skill.sourceUrl = info.sourceUrl;
|
|
295
|
+
skill.fingerprint = info.hash ? fingerprint(info.hash) : undefined;
|
|
296
|
+
skill.trust = info.hash ? 'pinned' : 'unverified';
|
|
169
297
|
}
|
|
170
298
|
return skill;
|
|
171
299
|
}
|
|
@@ -201,15 +329,20 @@ export function installLocalSkill(dir) {
|
|
|
201
329
|
if (!skill) {
|
|
202
330
|
return null;
|
|
203
331
|
}
|
|
332
|
+
// Reject path-traversal names (the name comes from SKILL.md content — #136).
|
|
333
|
+
const destDir = resolveSkillDir(skill.id);
|
|
204
334
|
ensureSkillsDir();
|
|
205
|
-
const destDir = path.join(SKILLS_DIR, skill.id);
|
|
206
335
|
// Copy skill directory
|
|
207
336
|
copyDir(dir, destDir);
|
|
337
|
+
// Pin the copied SKILL.md so later on-disk tampering is caught on load (#137).
|
|
338
|
+
const hash = hashSkillFile(destDir);
|
|
208
339
|
// Update index
|
|
209
340
|
const index = loadSkillsIndex();
|
|
210
|
-
index[skill.id] = { path: destDir, source: 'local' };
|
|
341
|
+
index[skill.id] = { path: destDir, source: 'local', hash };
|
|
211
342
|
saveSkillsIndex(index);
|
|
212
343
|
skill.path = destDir;
|
|
344
|
+
skill.fingerprint = hash ? fingerprint(hash) : undefined;
|
|
345
|
+
skill.trust = hash ? 'pinned' : 'unverified';
|
|
213
346
|
return skill;
|
|
214
347
|
}
|
|
215
348
|
/**
|
|
@@ -229,17 +362,34 @@ export async function installFromGithub(url) {
|
|
|
229
362
|
if (!parsed) {
|
|
230
363
|
throw new Error('Invalid SKILL.md');
|
|
231
364
|
}
|
|
365
|
+
// Reject path-traversal names from remote, attacker-controlled content (#136).
|
|
366
|
+
const destDir = resolveSkillDir(parsed.metadata.name);
|
|
367
|
+
// Pin the incoming content. If a differently-hashed pin already exists this is
|
|
368
|
+
// an explicit update, confirmed with the old→new fingerprint diff below — the
|
|
369
|
+
// registry entry is never re-pinned silently (#137).
|
|
370
|
+
const newHash = hashContent(content);
|
|
371
|
+
const index = loadSkillsIndex();
|
|
372
|
+
const existing = index[parsed.metadata.name];
|
|
373
|
+
const changed = !!(existing?.hash && existing.hash !== newHash);
|
|
374
|
+
// Require explicit confirmation before trusting network content (#137).
|
|
375
|
+
await confirmInstall({
|
|
376
|
+
name: parsed.metadata.name,
|
|
377
|
+
source: 'github',
|
|
378
|
+
sourceUrl: url,
|
|
379
|
+
description: parsed.metadata.description,
|
|
380
|
+
reason: changed ? 'content-changed' : 'first-install',
|
|
381
|
+
fingerprint: fingerprint(newHash),
|
|
382
|
+
previousFingerprint: existing?.hash ? fingerprint(existing.hash) : undefined,
|
|
383
|
+
});
|
|
232
384
|
ensureSkillsDir();
|
|
233
|
-
const destDir = path.join(SKILLS_DIR, parsed.metadata.name);
|
|
234
385
|
// Create skill directory
|
|
235
386
|
if (!fs.existsSync(destDir)) {
|
|
236
387
|
fs.mkdirSync(destDir, { recursive: true });
|
|
237
388
|
}
|
|
238
389
|
// Write SKILL.md
|
|
239
390
|
fs.writeFileSync(path.join(destDir, 'SKILL.md'), content);
|
|
240
|
-
// Update index
|
|
241
|
-
|
|
242
|
-
index[parsed.metadata.name] = { path: destDir, source: 'github', sourceUrl: url };
|
|
391
|
+
// Update index (record content hash for trust-on-first-use re-verification — #137)
|
|
392
|
+
index[parsed.metadata.name] = { path: destDir, source: 'github', sourceUrl: url, hash: newHash };
|
|
243
393
|
saveSkillsIndex(index);
|
|
244
394
|
return {
|
|
245
395
|
id: parsed.metadata.name,
|
|
@@ -249,6 +399,8 @@ export async function installFromGithub(url) {
|
|
|
249
399
|
loaded: true,
|
|
250
400
|
source: 'github',
|
|
251
401
|
sourceUrl: url,
|
|
402
|
+
fingerprint: fingerprint(newHash),
|
|
403
|
+
trust: 'pinned',
|
|
252
404
|
};
|
|
253
405
|
}
|
|
254
406
|
/**
|
|
@@ -264,18 +416,34 @@ export async function installFromRegistry(skillName) {
|
|
|
264
416
|
return installFromGithub(info.github);
|
|
265
417
|
}
|
|
266
418
|
else if (info.content) {
|
|
267
|
-
|
|
268
|
-
const destDir =
|
|
269
|
-
if (!fs.existsSync(destDir)) {
|
|
270
|
-
fs.mkdirSync(destDir, { recursive: true });
|
|
271
|
-
}
|
|
272
|
-
fs.writeFileSync(path.join(destDir, 'SKILL.md'), info.content);
|
|
419
|
+
// Reject path-traversal names before any filesystem use (#136).
|
|
420
|
+
const destDir = resolveSkillDir(skillName);
|
|
273
421
|
const parsed = parseSkillFile(info.content);
|
|
274
422
|
if (!parsed) {
|
|
275
423
|
throw new Error('Invalid skill content');
|
|
276
424
|
}
|
|
425
|
+
// Pin the incoming content; a differently-hashed existing pin is an
|
|
426
|
+
// explicit, re-confirmed update rather than a silent re-pin (#137).
|
|
427
|
+
const newHash = hashContent(info.content);
|
|
277
428
|
const index = loadSkillsIndex();
|
|
278
|
-
index[skillName]
|
|
429
|
+
const existing = index[skillName];
|
|
430
|
+
const changed = !!(existing?.hash && existing.hash !== newHash);
|
|
431
|
+
// Require explicit confirmation before trusting network content (#137).
|
|
432
|
+
await confirmInstall({
|
|
433
|
+
name: skillName,
|
|
434
|
+
source: 'registry',
|
|
435
|
+
sourceUrl: registryUrl,
|
|
436
|
+
description: parsed.metadata.description,
|
|
437
|
+
reason: changed ? 'content-changed' : 'first-install',
|
|
438
|
+
fingerprint: fingerprint(newHash),
|
|
439
|
+
previousFingerprint: existing?.hash ? fingerprint(existing.hash) : undefined,
|
|
440
|
+
});
|
|
441
|
+
ensureSkillsDir();
|
|
442
|
+
if (!fs.existsSync(destDir)) {
|
|
443
|
+
fs.mkdirSync(destDir, { recursive: true });
|
|
444
|
+
}
|
|
445
|
+
fs.writeFileSync(path.join(destDir, 'SKILL.md'), info.content);
|
|
446
|
+
index[skillName] = { path: destDir, source: 'registry', sourceUrl: registryUrl, hash: newHash };
|
|
279
447
|
saveSkillsIndex(index);
|
|
280
448
|
return {
|
|
281
449
|
id: skillName,
|
|
@@ -285,6 +453,8 @@ export async function installFromRegistry(skillName) {
|
|
|
285
453
|
loaded: true,
|
|
286
454
|
source: 'registry',
|
|
287
455
|
sourceUrl: registryUrl,
|
|
456
|
+
fingerprint: fingerprint(newHash),
|
|
457
|
+
trust: 'pinned',
|
|
288
458
|
};
|
|
289
459
|
}
|
|
290
460
|
throw new Error('Skill not found in registry');
|