@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/runlog.d.ts
ADDED
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calliope CLI - Run Logs (audit trail)
|
|
3
|
+
*
|
|
4
|
+
* Append-only JSONL trace of an agent session, written to
|
|
5
|
+
* `~/.calliope-cli/runs/<sessionId>.jsonl` (override with `audit.dir`).
|
|
6
|
+
*
|
|
7
|
+
* Every line is a self-describing event carrying a schema `v`ersion, a monotonic
|
|
8
|
+
* `seq`uence number, an ISO `ts`, the event `type`, a type-specific payload, and
|
|
9
|
+
* a tamper-evidence hash chain: `prev_hash` (the previous line's hash) and `hash`
|
|
10
|
+
* (sha256 of `prev_hash` + the canonical JSON of the line body). No signing keys
|
|
11
|
+
* are needed — any edit, reorder, insertion, or deletion breaks the chain at that
|
|
12
|
+
* line, which `verifyChain` reports. See docs/governance.md.
|
|
13
|
+
*
|
|
14
|
+
* Writes are buffered and appended asynchronously (ordered via an internal
|
|
15
|
+
* promise chain); fsync is not forced per line, so logging never blocks the agent
|
|
16
|
+
* loop. The hash chain is advanced synchronously so ordering is always correct.
|
|
17
|
+
*
|
|
18
|
+
* On by default: the audit trail is the point, and it is local disk. Disable with
|
|
19
|
+
* `audit.enabled = false`.
|
|
20
|
+
*/
|
|
21
|
+
/** Run-log schema version. Bump only for breaking payload changes. */
|
|
22
|
+
export declare const RUNLOG_SCHEMA_VERSION = 1;
|
|
23
|
+
export type RunLogEventType = 'run_start' | 'user_prompt' | 'assistant_message' | 'tool_call' | 'tool_result' | 'budget_event' | 'policy_event' | 'run_end';
|
|
24
|
+
/** The stable, on-disk shape of a run-log line. */
|
|
25
|
+
export interface RunLogLine {
|
|
26
|
+
v: number;
|
|
27
|
+
seq: number;
|
|
28
|
+
ts: string;
|
|
29
|
+
type: RunLogEventType;
|
|
30
|
+
prev_hash: string;
|
|
31
|
+
hash: string;
|
|
32
|
+
[key: string]: unknown;
|
|
33
|
+
}
|
|
34
|
+
export interface RunStartPayload {
|
|
35
|
+
session: string;
|
|
36
|
+
cwd: string;
|
|
37
|
+
provider: string;
|
|
38
|
+
model: string;
|
|
39
|
+
/** Config snapshot with credentials stripped (never contains apiKey/token values). */
|
|
40
|
+
config: Record<string, unknown>;
|
|
41
|
+
/** How the session was driven: e.g. 'headless', 'acp'. Omitted for the default TUI. */
|
|
42
|
+
mode?: string;
|
|
43
|
+
}
|
|
44
|
+
export interface AssistantMessagePayload {
|
|
45
|
+
content: string;
|
|
46
|
+
tokens: {
|
|
47
|
+
input: number;
|
|
48
|
+
output: number;
|
|
49
|
+
};
|
|
50
|
+
cost: number;
|
|
51
|
+
}
|
|
52
|
+
export interface ToolCallPayload {
|
|
53
|
+
id: string;
|
|
54
|
+
name: string;
|
|
55
|
+
/** Arguments after a redaction pass for obvious secrets. */
|
|
56
|
+
args: Record<string, unknown>;
|
|
57
|
+
}
|
|
58
|
+
export interface ToolResultPayload {
|
|
59
|
+
id: string;
|
|
60
|
+
result: string;
|
|
61
|
+
isError: boolean;
|
|
62
|
+
durationMs: number;
|
|
63
|
+
}
|
|
64
|
+
export interface BudgetEventPayload {
|
|
65
|
+
scope: 'run' | 'project';
|
|
66
|
+
kind: 'cost' | 'tokens';
|
|
67
|
+
spent: number;
|
|
68
|
+
cap: number;
|
|
69
|
+
message: string;
|
|
70
|
+
}
|
|
71
|
+
export interface PolicyEventPayload {
|
|
72
|
+
tool: string;
|
|
73
|
+
decision: 'allow' | 'deny';
|
|
74
|
+
source: string;
|
|
75
|
+
reason?: string;
|
|
76
|
+
durationMs: number;
|
|
77
|
+
}
|
|
78
|
+
export interface RunEndPayload {
|
|
79
|
+
totals: {
|
|
80
|
+
inputTokens: number;
|
|
81
|
+
outputTokens: number;
|
|
82
|
+
cost: number;
|
|
83
|
+
toolCalls: number;
|
|
84
|
+
durationMs: number;
|
|
85
|
+
};
|
|
86
|
+
exitReason: string;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Deep-copy `value`, replacing anything that looks like a secret with
|
|
90
|
+
* `[REDACTED]`. Keys matching {@link SECRET_KEY_RE} are stripped by key name
|
|
91
|
+
* (so an empty or oddly-formatted API key is still removed); string values
|
|
92
|
+
* matching a known secret format are masked in place. Structure is preserved so
|
|
93
|
+
* the trace stays readable and diffable.
|
|
94
|
+
*/
|
|
95
|
+
export declare function redactSecrets(value: unknown): unknown;
|
|
96
|
+
/**
|
|
97
|
+
* Deterministic JSON with object keys sorted recursively, so a line's canonical
|
|
98
|
+
* form is independent of key insertion order. Arrays keep their order.
|
|
99
|
+
*/
|
|
100
|
+
export declare function canonicalize(value: unknown): string;
|
|
101
|
+
export interface ChainVerification {
|
|
102
|
+
ok: boolean;
|
|
103
|
+
/** 1-based line number where the chain first breaks, if any. */
|
|
104
|
+
brokenAtLine?: number;
|
|
105
|
+
/** Human-readable reason for the break. */
|
|
106
|
+
reason?: string;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Recompute the hash chain over parsed lines and report the first break.
|
|
110
|
+
* A line breaks the chain if its `prev_hash` does not match the previous line's
|
|
111
|
+
* `hash`, or if its recomputed `hash` does not match its stored `hash`.
|
|
112
|
+
*/
|
|
113
|
+
export declare function verifyChain(lines: RunLogLine[]): ChainVerification;
|
|
114
|
+
export interface AuditSettings {
|
|
115
|
+
enabled: boolean;
|
|
116
|
+
dir: string;
|
|
117
|
+
retention: number;
|
|
118
|
+
}
|
|
119
|
+
/** Resolve audit settings from config, with optional explicit overrides. */
|
|
120
|
+
export declare function resolveAuditSettings(overrides?: Partial<AuditSettings>): AuditSettings;
|
|
121
|
+
/** Return the run-log file path for a session id under the given (or default) dir. */
|
|
122
|
+
export declare function runLogPath(sessionId: string, dir?: string): string;
|
|
123
|
+
/**
|
|
124
|
+
* Keep only the most recent `retention` run-log files in `dir` (by mtime),
|
|
125
|
+
* deleting the rest. Best-effort: a delete failure is ignored.
|
|
126
|
+
*/
|
|
127
|
+
export declare function rotateRuns(dir: string, retention: number): void;
|
|
128
|
+
/**
|
|
129
|
+
* Parse a run-log file into lines. Blank lines are skipped; an unparseable line
|
|
130
|
+
* throws (a corrupt trace should be visible, not silently truncated). Callers
|
|
131
|
+
* that want tolerance can catch.
|
|
132
|
+
*/
|
|
133
|
+
export declare function readRunLog(filePath: string): RunLogLine[];
|
|
134
|
+
export declare class RunLog {
|
|
135
|
+
readonly sessionId: string;
|
|
136
|
+
readonly filePath: string;
|
|
137
|
+
readonly enabled: boolean;
|
|
138
|
+
private seq;
|
|
139
|
+
private prevHash;
|
|
140
|
+
private writeTail;
|
|
141
|
+
private constructor();
|
|
142
|
+
/**
|
|
143
|
+
* Open (or reuse) the run log for a session. If a trace already exists on disk
|
|
144
|
+
* the hash chain is resumed from its last valid line. Multiple opens for the
|
|
145
|
+
* same file return the same instance so a session's turns share one chain.
|
|
146
|
+
*/
|
|
147
|
+
static open(sessionId: string, overrides?: Partial<AuditSettings>): RunLog;
|
|
148
|
+
/** Resume seq/prev_hash from the last valid line of an existing trace. */
|
|
149
|
+
private resumeChain;
|
|
150
|
+
/** Build the next line, advance the chain synchronously, enqueue the write. */
|
|
151
|
+
private append;
|
|
152
|
+
runStart(payload: RunStartPayload): void;
|
|
153
|
+
userPrompt(text: string): void;
|
|
154
|
+
assistantMessage(payload: AssistantMessagePayload): void;
|
|
155
|
+
toolCall(payload: ToolCallPayload): void;
|
|
156
|
+
toolResult(payload: ToolResultPayload, maxResultChars?: number): void;
|
|
157
|
+
budgetEvent(payload: BudgetEventPayload): void;
|
|
158
|
+
policyEvent(payload: PolicyEventPayload): void;
|
|
159
|
+
runEnd(payload: RunEndPayload): void;
|
|
160
|
+
/** Await all buffered writes. */
|
|
161
|
+
flush(): Promise<void>;
|
|
162
|
+
/** Flush and drop this instance from the shared cache. */
|
|
163
|
+
close(): Promise<void>;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Record a supply-chain integrity violation (#137) as a `policy_event` in a
|
|
167
|
+
* dedicated `security` audit trace. Called when an installed skill or plugin
|
|
168
|
+
* fails hash re-verification at load time: the artifact is refused AND the
|
|
169
|
+
* tamper is surfaced in the audit trail, so it is not lost to a transient
|
|
170
|
+
* console warning that scrolls away.
|
|
171
|
+
*
|
|
172
|
+
* `subject` identifies the artifact (e.g. `skill:foo`, `plugin:bar`). Self-gates
|
|
173
|
+
* on the audit setting: when audit is disabled the underlying RunLog no-ops, so
|
|
174
|
+
* "log a policy_event if audit is on" needs no extra branch at the call site.
|
|
175
|
+
* Never throws — auditing must never break the load path it observes.
|
|
176
|
+
*
|
|
177
|
+
* Returns the RunLog so callers/tests can await `.flush()`, or null if the
|
|
178
|
+
* trace could not be opened.
|
|
179
|
+
*/
|
|
180
|
+
export declare function auditIntegrityViolation(subject: string, reason: string, overrides?: Partial<AuditSettings>): RunLog | null;
|
|
181
|
+
/**
|
|
182
|
+
* Clear the in-memory instance cache (tests only). Does not touch disk.
|
|
183
|
+
*/
|
|
184
|
+
export declare function resetRunLogs(): void;
|
|
185
|
+
//# sourceMappingURL=runlog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runlog.d.ts","sourceRoot":"","sources":["../src/runlog.ts"],"names":[],"mappings":"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"}
|
package/dist/runlog.js
ADDED
|
@@ -0,0 +1,398 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calliope CLI - Run Logs (audit trail)
|
|
3
|
+
*
|
|
4
|
+
* Append-only JSONL trace of an agent session, written to
|
|
5
|
+
* `~/.calliope-cli/runs/<sessionId>.jsonl` (override with `audit.dir`).
|
|
6
|
+
*
|
|
7
|
+
* Every line is a self-describing event carrying a schema `v`ersion, a monotonic
|
|
8
|
+
* `seq`uence number, an ISO `ts`, the event `type`, a type-specific payload, and
|
|
9
|
+
* a tamper-evidence hash chain: `prev_hash` (the previous line's hash) and `hash`
|
|
10
|
+
* (sha256 of `prev_hash` + the canonical JSON of the line body). No signing keys
|
|
11
|
+
* are needed — any edit, reorder, insertion, or deletion breaks the chain at that
|
|
12
|
+
* line, which `verifyChain` reports. See docs/governance.md.
|
|
13
|
+
*
|
|
14
|
+
* Writes are buffered and appended asynchronously (ordered via an internal
|
|
15
|
+
* promise chain); fsync is not forced per line, so logging never blocks the agent
|
|
16
|
+
* loop. The hash chain is advanced synchronously so ordering is always correct.
|
|
17
|
+
*
|
|
18
|
+
* On by default: the audit trail is the point, and it is local disk. Disable with
|
|
19
|
+
* `audit.enabled = false`.
|
|
20
|
+
*/
|
|
21
|
+
import * as fs from 'fs';
|
|
22
|
+
import * as path from 'path';
|
|
23
|
+
import * as os from 'os';
|
|
24
|
+
import { createHash } from 'crypto';
|
|
25
|
+
import * as config from './config.js';
|
|
26
|
+
// ============================================================================
|
|
27
|
+
// Schema
|
|
28
|
+
// ============================================================================
|
|
29
|
+
/** Run-log schema version. Bump only for breaking payload changes. */
|
|
30
|
+
export const RUNLOG_SCHEMA_VERSION = 1;
|
|
31
|
+
// ============================================================================
|
|
32
|
+
// Redaction
|
|
33
|
+
// ============================================================================
|
|
34
|
+
/** Object keys whose values are always credentials — stripped wholesale. */
|
|
35
|
+
const SECRET_KEY_RE = /(api[-_]?key|token|secret|password|passwd|authorization|credential|access[-_]?key|private[-_]?key|client[-_]?secret|session[-_]?token|bearer)/i;
|
|
36
|
+
/** String values that look like well-known secret formats. */
|
|
37
|
+
const SECRET_VALUE_PATTERNS = [
|
|
38
|
+
/sk-ant-[A-Za-z0-9_-]{16,}/,
|
|
39
|
+
/sk-[A-Za-z0-9_-]{16,}/,
|
|
40
|
+
/AKIA[0-9A-Z]{16}/,
|
|
41
|
+
/gh[pousr]_[A-Za-z0-9]{16,}/,
|
|
42
|
+
/github_pat_[A-Za-z0-9_]{22,}/,
|
|
43
|
+
/xox[baprs]-[A-Za-z0-9-]{10,}/,
|
|
44
|
+
/\bBearer\s+[A-Za-z0-9._~+/-]{16,}=*/,
|
|
45
|
+
/-----BEGIN [A-Z ]*PRIVATE KEY-----/,
|
|
46
|
+
];
|
|
47
|
+
const REDACTED = '[REDACTED]';
|
|
48
|
+
function redactString(value) {
|
|
49
|
+
let out = value;
|
|
50
|
+
for (const pattern of SECRET_VALUE_PATTERNS) {
|
|
51
|
+
out = out.replace(new RegExp(pattern, 'g'), REDACTED);
|
|
52
|
+
}
|
|
53
|
+
return out;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Deep-copy `value`, replacing anything that looks like a secret with
|
|
57
|
+
* `[REDACTED]`. Keys matching {@link SECRET_KEY_RE} are stripped by key name
|
|
58
|
+
* (so an empty or oddly-formatted API key is still removed); string values
|
|
59
|
+
* matching a known secret format are masked in place. Structure is preserved so
|
|
60
|
+
* the trace stays readable and diffable.
|
|
61
|
+
*/
|
|
62
|
+
export function redactSecrets(value) {
|
|
63
|
+
if (typeof value === 'string')
|
|
64
|
+
return redactString(value);
|
|
65
|
+
if (value === null || typeof value !== 'object')
|
|
66
|
+
return value;
|
|
67
|
+
if (Array.isArray(value))
|
|
68
|
+
return value.map(redactSecrets);
|
|
69
|
+
const out = {};
|
|
70
|
+
for (const [key, val] of Object.entries(value)) {
|
|
71
|
+
if (SECRET_KEY_RE.test(key)) {
|
|
72
|
+
out[key] = REDACTED;
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
out[key] = redactSecrets(val);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return out;
|
|
79
|
+
}
|
|
80
|
+
// ============================================================================
|
|
81
|
+
// Hash chain
|
|
82
|
+
// ============================================================================
|
|
83
|
+
/**
|
|
84
|
+
* Deterministic JSON with object keys sorted recursively, so a line's canonical
|
|
85
|
+
* form is independent of key insertion order. Arrays keep their order.
|
|
86
|
+
*/
|
|
87
|
+
export function canonicalize(value) {
|
|
88
|
+
if (value === null || typeof value !== 'object') {
|
|
89
|
+
return JSON.stringify(value ?? null);
|
|
90
|
+
}
|
|
91
|
+
if (Array.isArray(value)) {
|
|
92
|
+
return '[' + value.map(canonicalize).join(',') + ']';
|
|
93
|
+
}
|
|
94
|
+
const keys = Object.keys(value).sort();
|
|
95
|
+
const parts = keys.map((k) => JSON.stringify(k) + ':' + canonicalize(value[k]));
|
|
96
|
+
return '{' + parts.join(',') + '}';
|
|
97
|
+
}
|
|
98
|
+
function hashBody(prevHash, body) {
|
|
99
|
+
return createHash('sha256').update(prevHash + canonicalize(body)).digest('hex');
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Recompute the hash chain over parsed lines and report the first break.
|
|
103
|
+
* A line breaks the chain if its `prev_hash` does not match the previous line's
|
|
104
|
+
* `hash`, or if its recomputed `hash` does not match its stored `hash`.
|
|
105
|
+
*/
|
|
106
|
+
export function verifyChain(lines) {
|
|
107
|
+
let prev = '';
|
|
108
|
+
for (let i = 0; i < lines.length; i++) {
|
|
109
|
+
const line = lines[i];
|
|
110
|
+
// Reconstruct the body (everything except the chain fields).
|
|
111
|
+
const { prev_hash, hash, ...body } = line;
|
|
112
|
+
if (prev_hash !== prev) {
|
|
113
|
+
return { ok: false, brokenAtLine: i + 1, reason: 'prev_hash mismatch' };
|
|
114
|
+
}
|
|
115
|
+
const expected = hashBody(prev_hash, body);
|
|
116
|
+
if (expected !== hash) {
|
|
117
|
+
return { ok: false, brokenAtLine: i + 1, reason: 'hash mismatch' };
|
|
118
|
+
}
|
|
119
|
+
prev = hash;
|
|
120
|
+
}
|
|
121
|
+
return { ok: true };
|
|
122
|
+
}
|
|
123
|
+
const DEFAULT_RUNS_DIR = path.join(os.homedir(), '.calliope-cli', 'runs');
|
|
124
|
+
const DEFAULT_RETENTION = 100;
|
|
125
|
+
/** Resolve audit settings from config, with optional explicit overrides. */
|
|
126
|
+
export function resolveAuditSettings(overrides = {}) {
|
|
127
|
+
let stored;
|
|
128
|
+
try {
|
|
129
|
+
stored = config.get('audit');
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
stored = undefined;
|
|
133
|
+
}
|
|
134
|
+
const enabled = overrides.enabled ?? stored?.enabled ?? true; // ON by default
|
|
135
|
+
const dir = overrides.dir ?? stored?.dir ?? DEFAULT_RUNS_DIR;
|
|
136
|
+
const retentionRaw = overrides.retention ?? stored?.retention ?? DEFAULT_RETENTION;
|
|
137
|
+
const retention = Number.isFinite(retentionRaw) && retentionRaw > 0
|
|
138
|
+
? Math.floor(retentionRaw)
|
|
139
|
+
: DEFAULT_RETENTION;
|
|
140
|
+
return { enabled, dir, retention };
|
|
141
|
+
}
|
|
142
|
+
/** Return the run-log file path for a session id under the given (or default) dir. */
|
|
143
|
+
export function runLogPath(sessionId, dir = DEFAULT_RUNS_DIR) {
|
|
144
|
+
// Session ids are internally generated (`session_<ts>_<rand>`), but guard
|
|
145
|
+
// against path traversal from any externally-supplied id all the same.
|
|
146
|
+
const safe = sessionId.replace(/[^A-Za-z0-9_.-]/g, '_');
|
|
147
|
+
return path.join(dir, `${safe}.jsonl`);
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Keep only the most recent `retention` run-log files in `dir` (by mtime),
|
|
151
|
+
* deleting the rest. Best-effort: a delete failure is ignored.
|
|
152
|
+
*/
|
|
153
|
+
export function rotateRuns(dir, retention) {
|
|
154
|
+
if (retention <= 0)
|
|
155
|
+
return;
|
|
156
|
+
let entries;
|
|
157
|
+
try {
|
|
158
|
+
entries = fs.readdirSync(dir).filter((f) => f.endsWith('.jsonl'));
|
|
159
|
+
}
|
|
160
|
+
catch {
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
if (entries.length <= retention)
|
|
164
|
+
return;
|
|
165
|
+
const withMtime = entries
|
|
166
|
+
.map((f) => {
|
|
167
|
+
const full = path.join(dir, f);
|
|
168
|
+
try {
|
|
169
|
+
return { full, mtime: fs.statSync(full).mtimeMs };
|
|
170
|
+
}
|
|
171
|
+
catch {
|
|
172
|
+
return { full, mtime: 0 };
|
|
173
|
+
}
|
|
174
|
+
})
|
|
175
|
+
.sort((a, b) => b.mtime - a.mtime); // newest first
|
|
176
|
+
for (const { full } of withMtime.slice(retention)) {
|
|
177
|
+
try {
|
|
178
|
+
fs.unlinkSync(full);
|
|
179
|
+
}
|
|
180
|
+
catch {
|
|
181
|
+
/* best effort */
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
// ============================================================================
|
|
186
|
+
// Reading
|
|
187
|
+
// ============================================================================
|
|
188
|
+
/**
|
|
189
|
+
* Parse a run-log file into lines. Blank lines are skipped; an unparseable line
|
|
190
|
+
* throws (a corrupt trace should be visible, not silently truncated). Callers
|
|
191
|
+
* that want tolerance can catch.
|
|
192
|
+
*/
|
|
193
|
+
export function readRunLog(filePath) {
|
|
194
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
195
|
+
const lines = [];
|
|
196
|
+
const rawLines = content.split('\n');
|
|
197
|
+
for (let i = 0; i < rawLines.length; i++) {
|
|
198
|
+
const raw = rawLines[i].trim();
|
|
199
|
+
if (!raw)
|
|
200
|
+
continue;
|
|
201
|
+
try {
|
|
202
|
+
lines.push(JSON.parse(raw));
|
|
203
|
+
}
|
|
204
|
+
catch {
|
|
205
|
+
throw new Error(`runlog: unparseable JSON on line ${i + 1} of ${filePath}`);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
return lines;
|
|
209
|
+
}
|
|
210
|
+
// ============================================================================
|
|
211
|
+
// RunLog (writer)
|
|
212
|
+
// ============================================================================
|
|
213
|
+
/** Per-file instance cache so multiple turns share one hash chain. */
|
|
214
|
+
const cache = new Map();
|
|
215
|
+
export class RunLog {
|
|
216
|
+
sessionId;
|
|
217
|
+
filePath;
|
|
218
|
+
enabled;
|
|
219
|
+
seq = 0;
|
|
220
|
+
prevHash = '';
|
|
221
|
+
writeTail = Promise.resolve();
|
|
222
|
+
constructor(sessionId, filePath, enabled) {
|
|
223
|
+
this.sessionId = sessionId;
|
|
224
|
+
this.filePath = filePath;
|
|
225
|
+
this.enabled = enabled;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Open (or reuse) the run log for a session. If a trace already exists on disk
|
|
229
|
+
* the hash chain is resumed from its last valid line. Multiple opens for the
|
|
230
|
+
* same file return the same instance so a session's turns share one chain.
|
|
231
|
+
*/
|
|
232
|
+
static open(sessionId, overrides = {}) {
|
|
233
|
+
const settings = resolveAuditSettings(overrides);
|
|
234
|
+
const filePath = runLogPath(sessionId, settings.dir);
|
|
235
|
+
const existing = cache.get(filePath);
|
|
236
|
+
if (existing)
|
|
237
|
+
return existing;
|
|
238
|
+
const log = new RunLog(sessionId, filePath, settings.enabled);
|
|
239
|
+
if (settings.enabled) {
|
|
240
|
+
try {
|
|
241
|
+
fs.mkdirSync(settings.dir, { recursive: true });
|
|
242
|
+
}
|
|
243
|
+
catch {
|
|
244
|
+
/* if the dir can't be made, writes below will no-op via the catch */
|
|
245
|
+
}
|
|
246
|
+
// Rotate old sessions before this new one lands (cheap: once per open).
|
|
247
|
+
if (!fs.existsSync(filePath)) {
|
|
248
|
+
rotateRuns(settings.dir, settings.retention);
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
log.resumeChain();
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
cache.set(filePath, log);
|
|
255
|
+
return log;
|
|
256
|
+
}
|
|
257
|
+
/** Resume seq/prev_hash from the last valid line of an existing trace. */
|
|
258
|
+
resumeChain() {
|
|
259
|
+
let lines;
|
|
260
|
+
try {
|
|
261
|
+
lines = readRunLog(this.filePath);
|
|
262
|
+
}
|
|
263
|
+
catch {
|
|
264
|
+
// Corrupt tail: fall back to a best-effort scan for the last valid line.
|
|
265
|
+
lines = [];
|
|
266
|
+
try {
|
|
267
|
+
const raw = fs.readFileSync(this.filePath, 'utf-8').split('\n');
|
|
268
|
+
for (const line of raw) {
|
|
269
|
+
const t = line.trim();
|
|
270
|
+
if (!t)
|
|
271
|
+
continue;
|
|
272
|
+
try {
|
|
273
|
+
lines.push(JSON.parse(t));
|
|
274
|
+
}
|
|
275
|
+
catch {
|
|
276
|
+
/* skip torn line */
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
catch {
|
|
281
|
+
return;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
const last = lines[lines.length - 1];
|
|
285
|
+
if (last && typeof last.hash === 'string' && typeof last.seq === 'number') {
|
|
286
|
+
this.prevHash = last.hash;
|
|
287
|
+
this.seq = last.seq + 1;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
/** Build the next line, advance the chain synchronously, enqueue the write. */
|
|
291
|
+
append(type, payload) {
|
|
292
|
+
if (!this.enabled)
|
|
293
|
+
return;
|
|
294
|
+
const body = {
|
|
295
|
+
v: RUNLOG_SCHEMA_VERSION,
|
|
296
|
+
seq: this.seq,
|
|
297
|
+
ts: new Date().toISOString(),
|
|
298
|
+
type,
|
|
299
|
+
...payload,
|
|
300
|
+
};
|
|
301
|
+
const hash = hashBody(this.prevHash, body);
|
|
302
|
+
const line = { ...body, prev_hash: this.prevHash, hash };
|
|
303
|
+
this.prevHash = hash;
|
|
304
|
+
this.seq += 1;
|
|
305
|
+
const text = JSON.stringify(line) + '\n';
|
|
306
|
+
this.writeTail = this.writeTail
|
|
307
|
+
.then(() => fs.promises.appendFile(this.filePath, text))
|
|
308
|
+
.catch(() => {
|
|
309
|
+
/* logging must never throw into the agent loop; drop on I/O error */
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
runStart(payload) {
|
|
313
|
+
this.append('run_start', {
|
|
314
|
+
...payload,
|
|
315
|
+
config: redactSecrets(payload.config),
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
userPrompt(text) {
|
|
319
|
+
this.append('user_prompt', { text });
|
|
320
|
+
}
|
|
321
|
+
assistantMessage(payload) {
|
|
322
|
+
this.append('assistant_message', { ...payload });
|
|
323
|
+
}
|
|
324
|
+
toolCall(payload) {
|
|
325
|
+
this.append('tool_call', {
|
|
326
|
+
id: payload.id,
|
|
327
|
+
name: payload.name,
|
|
328
|
+
args: redactSecrets(payload.args),
|
|
329
|
+
});
|
|
330
|
+
}
|
|
331
|
+
toolResult(payload, maxResultChars = 2000) {
|
|
332
|
+
const result = payload.result.length > maxResultChars
|
|
333
|
+
? payload.result.slice(0, maxResultChars) + `\n... [truncated ${payload.result.length - maxResultChars} chars]`
|
|
334
|
+
: payload.result;
|
|
335
|
+
this.append('tool_result', {
|
|
336
|
+
id: payload.id,
|
|
337
|
+
result,
|
|
338
|
+
isError: payload.isError,
|
|
339
|
+
durationMs: payload.durationMs,
|
|
340
|
+
});
|
|
341
|
+
}
|
|
342
|
+
budgetEvent(payload) {
|
|
343
|
+
this.append('budget_event', { ...payload });
|
|
344
|
+
}
|
|
345
|
+
policyEvent(payload) {
|
|
346
|
+
this.append('policy_event', { ...payload });
|
|
347
|
+
}
|
|
348
|
+
runEnd(payload) {
|
|
349
|
+
this.append('run_end', { ...payload });
|
|
350
|
+
}
|
|
351
|
+
/** Await all buffered writes. */
|
|
352
|
+
flush() {
|
|
353
|
+
return this.writeTail;
|
|
354
|
+
}
|
|
355
|
+
/** Flush and drop this instance from the shared cache. */
|
|
356
|
+
async close() {
|
|
357
|
+
await this.flush();
|
|
358
|
+
cache.delete(this.filePath);
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* Record a supply-chain integrity violation (#137) as a `policy_event` in a
|
|
363
|
+
* dedicated `security` audit trace. Called when an installed skill or plugin
|
|
364
|
+
* fails hash re-verification at load time: the artifact is refused AND the
|
|
365
|
+
* tamper is surfaced in the audit trail, so it is not lost to a transient
|
|
366
|
+
* console warning that scrolls away.
|
|
367
|
+
*
|
|
368
|
+
* `subject` identifies the artifact (e.g. `skill:foo`, `plugin:bar`). Self-gates
|
|
369
|
+
* on the audit setting: when audit is disabled the underlying RunLog no-ops, so
|
|
370
|
+
* "log a policy_event if audit is on" needs no extra branch at the call site.
|
|
371
|
+
* Never throws — auditing must never break the load path it observes.
|
|
372
|
+
*
|
|
373
|
+
* Returns the RunLog so callers/tests can await `.flush()`, or null if the
|
|
374
|
+
* trace could not be opened.
|
|
375
|
+
*/
|
|
376
|
+
export function auditIntegrityViolation(subject, reason, overrides = {}) {
|
|
377
|
+
try {
|
|
378
|
+
const log = RunLog.open('security', overrides);
|
|
379
|
+
log.policyEvent({
|
|
380
|
+
tool: subject,
|
|
381
|
+
decision: 'deny',
|
|
382
|
+
source: 'integrity',
|
|
383
|
+
reason,
|
|
384
|
+
durationMs: 0,
|
|
385
|
+
});
|
|
386
|
+
return log;
|
|
387
|
+
}
|
|
388
|
+
catch {
|
|
389
|
+
return null;
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
/**
|
|
393
|
+
* Clear the in-memory instance cache (tests only). Does not touch disk.
|
|
394
|
+
*/
|
|
395
|
+
export function resetRunLogs() {
|
|
396
|
+
cache.clear();
|
|
397
|
+
}
|
|
398
|
+
//# sourceMappingURL=runlog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runlog.js","sourceRoot":"","sources":["../src/runlog.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,4 +46,4 @@ export declare function executeUnsafe(language: Language, code: string, timeout?
|
|
|
46
46
|
* Execute code (with or without sandbox based on availability)
|
|
47
47
|
*/
|
|
48
48
|
export declare function execute(language: Language, code: string, config?: Partial<SandboxConfig>, cwd?: string): Promise<ExecutionResult>;
|
|
49
|
-
//# sourceMappingURL=
|
|
49
|
+
//# sourceMappingURL=docker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/sandbox/docker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC;AAiC3E;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAW3C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAOlD;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQjE;AAcD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,OAAO,CAAC,aAAa,CAAM,EACnC,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,eAAe,CAAC,CAoI1B;AAqFD;;GAEG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,MAAc,GACtB,OAAO,CAAC,eAAe,CAAC,CAyG1B;AAMD;;GAEG;AACH,wBAAsB,OAAO,CAC3B,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,OAAO,CAAC,aAAa,CAAM,EACnC,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,eAAe,CAAC,CAQ1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/sandbox/docker.ts"],"names":[],"mappings":"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"}
|