@cjhyy/code-shell 0.3.0 → 0.5.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +75 -0
- package/dist/cli.js +2 -0
- package/dist/index.d.ts +1 -68
- package/dist/index.js +1 -1
- package/package.json +25 -73
- package/dist/agent/coordinator.d.ts +0 -49
- package/dist/anthropic-DJXVKFMJ.js +0 -1
- package/dist/arena/arena.d.ts +0 -43
- package/dist/arena/context/context-tools.d.ts +0 -16
- package/dist/arena/detect-mode.d.ts +0 -20
- package/dist/arena/digest-builder.d.ts +0 -25
- package/dist/arena/index.d.ts +0 -29
- package/dist/arena/index.js +0 -1
- package/dist/arena/iterate/convergence.d.ts +0 -25
- package/dist/arena/iterate/formats/index.d.ts +0 -22
- package/dist/arena/iterate/index.d.ts +0 -11
- package/dist/arena/iterate/iterative-arena.d.ts +0 -23
- package/dist/arena/iterate/parse.d.ts +0 -42
- package/dist/arena/iterate/phases/argue.d.ts +0 -22
- package/dist/arena/iterate/phases/revise.d.ts +0 -16
- package/dist/arena/iterate/phases/tournament.d.ts +0 -34
- package/dist/arena/iterate/tools/web-tools.d.ts +0 -13
- package/dist/arena/iterate/types.d.ts +0 -152
- package/dist/arena/ledger.d.ts +0 -47
- package/dist/arena/lenses/architecture.d.ts +0 -5
- package/dist/arena/lenses/engineering.d.ts +0 -5
- package/dist/arena/lenses/general.d.ts +0 -5
- package/dist/arena/lenses/index.d.ts +0 -16
- package/dist/arena/lenses/product.d.ts +0 -5
- package/dist/arena/model-presets.d.ts +0 -23
- package/dist/arena/phases/adjudication.d.ts +0 -24
- package/dist/arena/phases/build-consensus.d.ts +0 -29
- package/dist/arena/phases/claim-registry.d.ts +0 -26
- package/dist/arena/phases/cross-review.d.ts +0 -45
- package/dist/arena/phases/debate-rounds.d.ts +0 -27
- package/dist/arena/phases/participant-research.d.ts +0 -38
- package/dist/arena/phases/planning-detail-expansion.d.ts +0 -38
- package/dist/arena/planner.d.ts +0 -27
- package/dist/arena/providers/docs.d.ts +0 -6
- package/dist/arena/providers/git.d.ts +0 -8
- package/dist/arena/providers/index.d.ts +0 -32
- package/dist/arena/providers/none.d.ts +0 -7
- package/dist/arena/providers/repo.d.ts +0 -6
- package/dist/arena/render/session.d.ts +0 -17
- package/dist/arena/render/terminal.d.ts +0 -33
- package/dist/arena/strategies/discussion.d.ts +0 -25
- package/dist/arena/strategies/index.d.ts +0 -15
- package/dist/arena/strategies/language-wrapper.d.ts +0 -17
- package/dist/arena/strategies/lens-wrapper.d.ts +0 -16
- package/dist/arena/strategies/planning.d.ts +0 -30
- package/dist/arena/strategies/review.d.ts +0 -26
- package/dist/arena/strategies/utils.d.ts +0 -39
- package/dist/arena/tools/selector.d.ts +0 -17
- package/dist/arena/transitions.d.ts +0 -48
- package/dist/arena/types.d.ts +0 -508
- package/dist/arena-MRBATZFD.js +0 -3
- package/dist/bootstrap/setup.d.ts +0 -14
- package/dist/bootstrap/state.d.ts +0 -160
- package/dist/bwrap-PVZMLHZR.js +0 -2
- package/dist/chunk-2OD6VR4N.js +0 -2
- package/dist/chunk-3QP5BQ3L.js +0 -1
- package/dist/chunk-5QIVXFCT.js +0 -1
- package/dist/chunk-AFMP73YP.js +0 -2
- package/dist/chunk-D3TVASD2.js +0 -4
- package/dist/chunk-DI26OUIU.js +0 -2
- package/dist/chunk-FU7AHZNN.js +0 -1
- package/dist/chunk-FZXY554D.js +0 -2
- package/dist/chunk-GGVAOPI7.js +0 -1
- package/dist/chunk-GKAQH2DG.js +0 -2
- package/dist/chunk-GYNO4R7R.js +0 -2
- package/dist/chunk-K4HILJ6G.js +0 -251
- package/dist/chunk-M7VU4YVY.js +0 -49
- package/dist/chunk-MLCTC53I.js +0 -1
- package/dist/chunk-O5HFCH2U.js +0 -1
- package/dist/chunk-OWBYLMDD.js +0 -1
- package/dist/chunk-P6JSTIFM.js +0 -1
- package/dist/chunk-QTWU7UNA.js +0 -5
- package/dist/chunk-SKIX2M5Z.js +0 -4
- package/dist/chunk-SNFAPSLA.js +0 -1
- package/dist/chunk-SV7H4FKT.js +0 -3
- package/dist/chunk-T222K6IV.js +0 -18
- package/dist/chunk-TKJA6W36.js +0 -3
- package/dist/chunk-WI6FSWGU.js +0 -1
- package/dist/chunk-WONQHE4P.js +0 -641
- package/dist/chunk-X2S7ASQ2.js +0 -1
- package/dist/chunk-Z5HKHAO7.js +0 -336
- package/dist/cli/commands/arena.d.ts +0 -29
- package/dist/cli/commands/builtin/advanced-commands.d.ts +0 -5
- package/dist/cli/commands/builtin/core-commands.d.ts +0 -5
- package/dist/cli/commands/builtin/export-md.d.ts +0 -19
- package/dist/cli/commands/builtin/extra-commands.d.ts +0 -6
- package/dist/cli/commands/builtin/git-commands.d.ts +0 -5
- package/dist/cli/commands/builtin/init/detect.d.ts +0 -25
- package/dist/cli/commands/builtin/init/index.d.ts +0 -19
- package/dist/cli/commands/builtin/more-commands.d.ts +0 -5
- package/dist/cli/commands/builtin/permissions-command.d.ts +0 -5
- package/dist/cli/commands/builtin/plugin-commands-registration.d.ts +0 -12
- package/dist/cli/commands/builtin/plugin-handler.d.ts +0 -6
- package/dist/cli/commands/builtin/utility-commands.d.ts +0 -5
- package/dist/cli/commands/registry.d.ts +0 -79
- package/dist/cli/commands/repl.d.ts +0 -21
- package/dist/cli/commands/run.d.ts +0 -21
- package/dist/cli/commands/runs.d.ts +0 -14
- package/dist/cli/cost-tracker.d.ts +0 -63
- package/dist/cli/exit.d.ts +0 -12
- package/dist/cli/input/ndjson-reader.d.ts +0 -31
- package/dist/cli/input-compiler.d.ts +0 -5
- package/dist/cli/main.d.ts +0 -5
- package/dist/cli/main.js +0 -415
- package/dist/cli/migrate-models.d.ts +0 -45
- package/dist/cli/onboarding.d.ts +0 -189
- package/dist/cli/output/renderer.d.ts +0 -28
- package/dist/cli/output/terminal-ui.d.ts +0 -50
- package/dist/cli/updater.d.ts +0 -65
- package/dist/client-base-GSFXPP2Y.js +0 -1
- package/dist/compaction-L3Y6NG4N.js +0 -1
- package/dist/context/compaction.d.ts +0 -116
- package/dist/context/manager.d.ts +0 -145
- package/dist/context/token-counter.d.ts +0 -27
- package/dist/context/tool-result-storage.d.ts +0 -96
- package/dist/cron/scheduler.d.ts +0 -34
- package/dist/data/openrouter-models.d.ts +0 -35
- package/dist/data/openrouter-sync.d.ts +0 -16
- package/dist/data/static-catalogs.d.ts +0 -25
- package/dist/devtools-FBX4HVVY.js +0 -1
- package/dist/engine/cost-store.d.ts +0 -22
- package/dist/engine/engine.d.ts +0 -236
- package/dist/engine/model-facade.d.ts +0 -24
- package/dist/engine/query.d.ts +0 -50
- package/dist/engine/streaming-tool-queue.d.ts +0 -34
- package/dist/engine/token-budget.d.ts +0 -22
- package/dist/engine/tool-summary.d.ts +0 -13
- package/dist/engine/turn-loop.d.ts +0 -122
- package/dist/engine/turn-state.d.ts +0 -20
- package/dist/exceptions.d.ts +0 -44
- package/dist/export-md-U72T7NW7.js +0 -22
- package/dist/file-history-7FQFEQOL.js +0 -1
- package/dist/git/utils.d.ts +0 -35
- package/dist/git/worktree.d.ts +0 -36
- package/dist/hooks/events.d.ts +0 -114
- package/dist/hooks/inject.d.ts +0 -19
- package/dist/hooks/registry.d.ts +0 -15
- package/dist/hooks/shell-runner.d.ts +0 -45
- package/dist/llm/api-key-sanitize.d.ts +0 -22
- package/dist/llm/capabilities/index.d.ts +0 -20
- package/dist/llm/capabilities/rules.d.ts +0 -26
- package/dist/llm/capabilities/types.d.ts +0 -108
- package/dist/llm/client-base.d.ts +0 -29
- package/dist/llm/client-factory.d.ts +0 -10
- package/dist/llm/model-cache.d.ts +0 -21
- package/dist/llm/model-fetcher.d.ts +0 -29
- package/dist/llm/model-pool.d.ts +0 -84
- package/dist/llm/provider-catalog.d.ts +0 -32
- package/dist/llm/provider-kinds.d.ts +0 -21
- package/dist/llm/providers/anthropic.d.ts +0 -19
- package/dist/llm/providers/openai.d.ts +0 -64
- package/dist/llm/retry.d.ts +0 -12
- package/dist/llm/stream-watchdog.d.ts +0 -42
- package/dist/llm/token-counter.d.ts +0 -17
- package/dist/llm/types.d.ts +0 -37
- package/dist/logging/logger.d.ts +0 -102
- package/dist/logging/session-recorder.d.ts +0 -90
- package/dist/lsp/client.d.ts +0 -41
- package/dist/lsp/manager.d.ts +0 -40
- package/dist/lsp/servers.d.ts +0 -16
- package/dist/manager-4XKLZHKE.js +0 -1
- package/dist/mcp-manager-3JGHEJO3.js +0 -1
- package/dist/memory-BNI4WEWL.js +0 -1
- package/dist/model-cache-HEDXI7UJ.js +0 -1
- package/dist/model-fetcher-X5W5EASG.js +0 -1
- package/dist/native-ts/yoga-layout/enums.d.ts +0 -117
- package/dist/native-ts/yoga-layout/index.d.ts +0 -270
- package/dist/off-7SDVMMXW.js +0 -1
- package/dist/openai-OQ6LLN5J.js +0 -1
- package/dist/openrouter-models-ZT4R2AE3.js +0 -1
- package/dist/openrouter-sync-ARMVWY7S.js +0 -1
- package/dist/plugin-handler-GJISMH5Q.js +0 -11
- package/dist/plugins/gitOps.d.ts +0 -23
- package/dist/plugins/installedPlugins.d.ts +0 -15
- package/dist/plugins/knownMarketplaces.d.ts +0 -10
- package/dist/plugins/loadPluginHooks.d.ts +0 -52
- package/dist/plugins/marketplaceManager.d.ts +0 -49
- package/dist/plugins/parseMarketplaceInput.d.ts +0 -16
- package/dist/plugins/pluginCommandHook.d.ts +0 -54
- package/dist/plugins/pluginCommandsLoader.d.ts +0 -25
- package/dist/plugins/pluginInstaller.d.ts +0 -36
- package/dist/plugins/schemas.d.ts +0 -9
- package/dist/plugins/types.d.ts +0 -75
- package/dist/plugins/varRewrite.d.ts +0 -42
- package/dist/preset/index.d.ts +0 -60
- package/dist/product/define.d.ts +0 -60
- package/dist/product/index.d.ts +0 -5
- package/dist/product/index.js +0 -1
- package/dist/product/types.d.ts +0 -111
- package/dist/prompt/composer.d.ts +0 -42
- package/dist/prompt/instruction-scanner.d.ts +0 -54
- package/dist/prompt/section-cache.d.ts +0 -15
- package/dist/prompt/section-loader.d.ts +0 -26
- package/dist/protocol/client.d.ts +0 -64
- package/dist/protocol/helpers.d.ts +0 -42
- package/dist/protocol/index.d.ts +0 -4
- package/dist/protocol/server.d.ts +0 -51
- package/dist/protocol/transport.d.ts +0 -36
- package/dist/protocol/types.d.ts +0 -192
- package/dist/react-compiler-runtime-shim.d.ts +0 -1
- package/dist/remote/bridge.d.ts +0 -37
- package/dist/render/Ansi.d.ts +0 -10
- package/dist/render/bidi.d.ts +0 -15
- package/dist/render/clearTerminal.d.ts +0 -19
- package/dist/render/colorize.d.ts +0 -16
- package/dist/render/components/AlternateScreen.d.ts +0 -21
- package/dist/render/components/App.d.ts +0 -71
- package/dist/render/components/AppContext.d.ts +0 -11
- package/dist/render/components/Box.d.ts +0 -49
- package/dist/render/components/Button.d.ts +0 -36
- package/dist/render/components/ClockContext.d.ts +0 -9
- package/dist/render/components/CursorDeclarationContext.d.ts +0 -22
- package/dist/render/components/ErrorOverview.d.ts +0 -5
- package/dist/render/components/Link.d.ts +0 -7
- package/dist/render/components/Newline.d.ts +0 -12
- package/dist/render/components/NoSelect.d.ts +0 -19
- package/dist/render/components/RawAnsi.d.ts +0 -16
- package/dist/render/components/ScrollBox.d.ts +0 -78
- package/dist/render/components/Spacer.d.ts +0 -5
- package/dist/render/components/Static.d.ts +0 -23
- package/dist/render/components/StdinContext.d.ts +0 -27
- package/dist/render/components/TerminalFocusContext.d.ts +0 -10
- package/dist/render/components/TerminalSizeContext.d.ts +0 -5
- package/dist/render/components/Text.d.ts +0 -55
- package/dist/render/constants.d.ts +0 -1
- package/dist/render/cursor.d.ts +0 -8
- package/dist/render/devtools.d.ts +0 -9
- package/dist/render/dom.d.ts +0 -77
- package/dist/render/events/click-event.d.ts +0 -31
- package/dist/render/events/dispatcher.d.ts +0 -40
- package/dist/render/events/emitter.d.ts +0 -5
- package/dist/render/events/event-handlers.d.ts +0 -46
- package/dist/render/events/event.d.ts +0 -5
- package/dist/render/events/focus-event.d.ts +0 -13
- package/dist/render/events/input-event.d.ts +0 -30
- package/dist/render/events/keyboard-event.d.ts +0 -19
- package/dist/render/events/paste-event.d.ts +0 -8
- package/dist/render/events/resize-event.d.ts +0 -9
- package/dist/render/events/terminal-event.d.ts +0 -54
- package/dist/render/events/terminal-focus-event.d.ts +0 -13
- package/dist/render/focus.d.ts +0 -43
- package/dist/render/frame.d.ts +0 -95
- package/dist/render/get-max-width.d.ts +0 -17
- package/dist/render/hit-test.d.ts +0 -33
- package/dist/render/hooks/use-animation-frame.d.ts +0 -26
- package/dist/render/hooks/use-app.d.ts +0 -5
- package/dist/render/hooks/use-declared-cursor.d.ts +0 -26
- package/dist/render/hooks/use-input.d.ts +0 -37
- package/dist/render/hooks/use-interval.d.ts +0 -18
- package/dist/render/hooks/use-search-highlight.d.ts +0 -30
- package/dist/render/hooks/use-selection.d.ts +0 -39
- package/dist/render/hooks/use-stdin.d.ts +0 -5
- package/dist/render/hooks/use-tab-status.d.ts +0 -13
- package/dist/render/hooks/use-terminal-focus.d.ts +0 -10
- package/dist/render/hooks/use-terminal-title.d.ts +0 -12
- package/dist/render/hooks/use-terminal-viewport.d.ts +0 -29
- package/dist/render/index.d.ts +0 -30
- package/dist/render/ink.d.ts +0 -391
- package/dist/render/instances.d.ts +0 -3
- package/dist/render/layout/engine.d.ts +0 -2
- package/dist/render/layout/geometry.d.ts +0 -30
- package/dist/render/layout/node.d.ts +0 -125
- package/dist/render/layout/yoga.d.ts +0 -56
- package/dist/render/line-width-cache.d.ts +0 -1
- package/dist/render/log-update.d.ts +0 -28
- package/dist/render/measure-element.d.ts +0 -16
- package/dist/render/measure-text.d.ts +0 -6
- package/dist/render/node-cache.d.ts +0 -20
- package/dist/render/optimizer.d.ts +0 -15
- package/dist/render/output.d.ts +0 -119
- package/dist/render/parse-keypress.d.ts +0 -111
- package/dist/render/reconciler.d.ts +0 -11
- package/dist/render/render-border.d.ts +0 -24
- package/dist/render/render-node-to-output.d.ts +0 -45
- package/dist/render/render-to-screen.d.ts +0 -46
- package/dist/render/renderer.d.ts +0 -14
- package/dist/render/root.d.ts +0 -74
- package/dist/render/screen.d.ts +0 -269
- package/dist/render/searchHighlight.d.ts +0 -20
- package/dist/render/selection.d.ts +0 -229
- package/dist/render/squash-text-nodes.d.ts +0 -22
- package/dist/render/stringWidth.d.ts +0 -1
- package/dist/render/styles.d.ts +0 -306
- package/dist/render/supports-hyperlinks.d.ts +0 -13
- package/dist/render/tabstops.d.ts +0 -1
- package/dist/render/terminal-focus-state.d.ts +0 -6
- package/dist/render/terminal-querier.d.ts +0 -129
- package/dist/render/terminal.d.ts +0 -46
- package/dist/render/termio/ansi.d.ts +0 -65
- package/dist/render/termio/csi.d.ts +0 -165
- package/dist/render/termio/dec.d.ts +0 -37
- package/dist/render/termio/esc.d.ts +0 -12
- package/dist/render/termio/osc.d.ts +0 -173
- package/dist/render/termio/parser.d.ts +0 -35
- package/dist/render/termio/sgr.d.ts +0 -8
- package/dist/render/termio/tokenize.d.ts +0 -45
- package/dist/render/termio/types.d.ts +0 -190
- package/dist/render/termio.d.ts +0 -24
- package/dist/render/useTerminalNotification.d.ts +0 -28
- package/dist/render/warn.d.ts +0 -1
- package/dist/render/widest-line.d.ts +0 -1
- package/dist/render/wrap-text.d.ts +0 -2
- package/dist/render/wrapAnsi.d.ts +0 -7
- package/dist/run/ArtifactTracker.d.ts +0 -38
- package/dist/run/CheckpointWriter.d.ts +0 -53
- package/dist/run/EngineRunner.d.ts +0 -72
- package/dist/run/Evaluator.d.ts +0 -56
- package/dist/run/FileRunStore.d.ts +0 -39
- package/dist/run/Heartbeat.d.ts +0 -54
- package/dist/run/RunApprovalBackend.d.ts +0 -53
- package/dist/run/RunLock.d.ts +0 -40
- package/dist/run/RunManager.d.ts +0 -82
- package/dist/run/RunQueue.d.ts +0 -27
- package/dist/run/RunStore.d.ts +0 -25
- package/dist/run/factory.d.ts +0 -63
- package/dist/run/index.d.ts +0 -17
- package/dist/run/index.js +0 -1
- package/dist/run/types.d.ts +0 -136
- package/dist/seatbelt-L54CNI2Y.js +0 -37
- package/dist/services/analytics.d.ts +0 -29
- package/dist/services/auto-dream.d.ts +0 -35
- package/dist/services/diagnostics.d.ts +0 -41
- package/dist/services/extract-memories.d.ts +0 -27
- package/dist/services/index.d.ts +0 -11
- package/dist/services/memory-orchestrator.d.ts +0 -39
- package/dist/services/notifier.d.ts +0 -25
- package/dist/services/oauth.d.ts +0 -27
- package/dist/services/session-memory.d.ts +0 -37
- package/dist/session/file-history.d.ts +0 -41
- package/dist/session/memory.d.ts +0 -65
- package/dist/session/session-manager.d.ts +0 -28
- package/dist/session/transcript.d.ts +0 -39
- package/dist/session-manager-AGWS5SMJ.js +0 -1
- package/dist/settings/manager.d.ts +0 -36
- package/dist/settings/schema.d.ts +0 -1123
- package/dist/skills/frontmatter.d.ts +0 -13
- package/dist/skills/index.d.ts +0 -7
- package/dist/skills/scanner.d.ts +0 -20
- package/dist/tool-summary-HJX6RHG4.js +0 -2
- package/dist/tool-system/builtin/agent-notifications.d.ts +0 -55
- package/dist/tool-system/builtin/agent-registry.d.ts +0 -67
- package/dist/tool-system/builtin/agent-transcript-translator.d.ts +0 -22
- package/dist/tool-system/builtin/agent.d.ts +0 -16
- package/dist/tool-system/builtin/apply-patch/applier.d.ts +0 -26
- package/dist/tool-system/builtin/apply-patch/index.d.ts +0 -19
- package/dist/tool-system/builtin/apply-patch/parser.d.ts +0 -17
- package/dist/tool-system/builtin/apply-patch/seek-sequence.d.ts +0 -18
- package/dist/tool-system/builtin/apply-patch/types.d.ts +0 -49
- package/dist/tool-system/builtin/arena.d.ts +0 -31
- package/dist/tool-system/builtin/ask-user.d.ts +0 -20
- package/dist/tool-system/builtin/bash.d.ts +0 -12
- package/dist/tool-system/builtin/brief.d.ts +0 -6
- package/dist/tool-system/builtin/config.d.ts +0 -6
- package/dist/tool-system/builtin/cron.d.ts +0 -10
- package/dist/tool-system/builtin/edit.d.ts +0 -6
- package/dist/tool-system/builtin/file-cache.d.ts +0 -11
- package/dist/tool-system/builtin/glob.d.ts +0 -6
- package/dist/tool-system/builtin/grep.d.ts +0 -6
- package/dist/tool-system/builtin/index.d.ts +0 -20
- package/dist/tool-system/builtin/lsp.d.ts +0 -6
- package/dist/tool-system/builtin/mcp-tools.d.ts +0 -10
- package/dist/tool-system/builtin/notebook-edit.d.ts +0 -6
- package/dist/tool-system/builtin/plan.d.ts +0 -18
- package/dist/tool-system/builtin/powershell.d.ts +0 -6
- package/dist/tool-system/builtin/read.d.ts +0 -6
- package/dist/tool-system/builtin/remote-trigger.d.ts +0 -6
- package/dist/tool-system/builtin/repl.d.ts +0 -6
- package/dist/tool-system/builtin/send-message.d.ts +0 -6
- package/dist/tool-system/builtin/skill-prompt.d.ts +0 -7
- package/dist/tool-system/builtin/skill.d.ts +0 -8
- package/dist/tool-system/builtin/sleep.d.ts +0 -6
- package/dist/tool-system/builtin/task.d.ts +0 -51
- package/dist/tool-system/builtin/tool-search.d.ts +0 -11
- package/dist/tool-system/builtin/web-fetch.d.ts +0 -6
- package/dist/tool-system/builtin/web-search.d.ts +0 -6
- package/dist/tool-system/builtin/worktree.d.ts +0 -10
- package/dist/tool-system/builtin/write.d.ts +0 -6
- package/dist/tool-system/context.d.ts +0 -133
- package/dist/tool-system/executor.d.ts +0 -49
- package/dist/tool-system/investigation-guard.d.ts +0 -46
- package/dist/tool-system/mcp-manager.d.ts +0 -50
- package/dist/tool-system/permission.d.ts +0 -104
- package/dist/tool-system/registry.d.ts +0 -32
- package/dist/tool-system/sandbox/bwrap.d.ts +0 -13
- package/dist/tool-system/sandbox/index.d.ts +0 -78
- package/dist/tool-system/sandbox/off.d.ts +0 -2
- package/dist/tool-system/sandbox/seatbelt.d.ts +0 -18
- package/dist/tool-system/task-guard.d.ts +0 -30
- package/dist/tool-system/validation.d.ts +0 -5
- package/dist/types.d.ts +0 -356
- package/dist/ui/App.d.ts +0 -14
- package/dist/ui/components/AgentBlock.d.ts +0 -35
- package/dist/ui/components/AgentDock.d.ts +0 -36
- package/dist/ui/components/AskUserPrompt.d.ts +0 -14
- package/dist/ui/components/BabyHand.d.ts +0 -1
- package/dist/ui/components/Banner.d.ts +0 -8
- package/dist/ui/components/CodeBlock.d.ts +0 -7
- package/dist/ui/components/CommandInput.d.ts +0 -24
- package/dist/ui/components/ContextUsageBar.d.ts +0 -7
- package/dist/ui/components/DiffLine.d.ts +0 -33
- package/dist/ui/components/DiffView.d.ts +0 -6
- package/dist/ui/components/DogLogo.d.ts +0 -1
- package/dist/ui/components/FullscreenLayout.d.ts +0 -51
- package/dist/ui/components/KunHead.d.ts +0 -1
- package/dist/ui/components/KunLogo.d.ts +0 -1
- package/dist/ui/components/MessageContent.d.ts +0 -26
- package/dist/ui/components/MessageRow.d.ts +0 -54
- package/dist/ui/components/ModelManager.d.ts +0 -68
- package/dist/ui/components/ModelSelector.d.ts +0 -10
- package/dist/ui/components/OnboardingPrompt.d.ts +0 -16
- package/dist/ui/components/PermissionDialog.d.ts +0 -8
- package/dist/ui/components/PermissionPrompt.d.ts +0 -11
- package/dist/ui/components/ProviderModelFlow.d.ts +0 -58
- package/dist/ui/components/ScrollView.d.ts +0 -34
- package/dist/ui/components/SessionPicker.d.ts +0 -16
- package/dist/ui/components/Spinner.d.ts +0 -8
- package/dist/ui/components/SpinnerWithVerb.d.ts +0 -19
- package/dist/ui/components/StatusLine.d.ts +0 -28
- package/dist/ui/components/StructuredDiff.d.ts +0 -8
- package/dist/ui/components/TaskList.d.ts +0 -6
- package/dist/ui/components/TextInput.d.ts +0 -17
- package/dist/ui/components/ThemedBox.d.ts +0 -19
- package/dist/ui/components/ThemedText.d.ts +0 -26
- package/dist/ui/components/ToolCall.d.ts +0 -28
- package/dist/ui/components/UpdateBanner.d.ts +0 -1
- package/dist/ui/components/VirtualMessageList.d.ts +0 -43
- package/dist/ui/components/WelcomeTips.d.ts +0 -5
- package/dist/ui/dev-seed.d.ts +0 -1
- package/dist/ui/fullscreen-mode.d.ts +0 -9
- package/dist/ui/hooks/useCostSummary.d.ts +0 -1
- package/dist/ui/hooks/useVirtualScroll.d.ts +0 -101
- package/dist/ui/index.d.ts +0 -12
- package/dist/ui/input-history.d.ts +0 -61
- package/dist/ui/onboarding-runner.d.ts +0 -2
- package/dist/ui/perf-probes.d.ts +0 -22
- package/dist/ui/query-guard.d.ts +0 -35
- package/dist/ui/slice-anchor.d.ts +0 -44
- package/dist/ui/store.d.ts +0 -108
- package/dist/ui/terminal-renderer.d.ts +0 -45
- package/dist/ui/theme.d.ts +0 -36
- package/dist/ui/vim-mode.d.ts +0 -25
- package/dist/updater-OCNU2K2Z.js +0 -1
- package/dist/utils/debug.d.ts +0 -41
- package/dist/utils/earlyInput.d.ts +0 -43
- package/dist/utils/env.d.ts +0 -24
- package/dist/utils/envUtils.d.ts +0 -51
- package/dist/utils/execFileNoThrow.d.ts +0 -39
- package/dist/utils/format.d.ts +0 -44
- package/dist/utils/fullscreen.d.ts +0 -47
- package/dist/utils/intl.d.ts +0 -22
- package/dist/utils/lockfile.d.ts +0 -15
- package/dist/utils/semver.d.ts +0 -6
- package/dist/utils/sliceAnsi.d.ts +0 -12
- package/dist/utils/systemTheme.d.ts +0 -40
- package/dist/utils/task-sanitizer.d.ts +0 -6
- package/dist/utils/theme.d.ts +0 -91
- package/dist/utils/toolDisplay.d.ts +0 -31
- package/dist/utils/truncate.d.ts +0 -40
- package/dist/voice/index.d.ts +0 -35
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Built-in Task management tools — TaskCreate, TaskList, TaskUpdate, TaskStop.
|
|
3
|
-
*
|
|
4
|
-
* Provides an in-memory task list that the agent uses to track progress
|
|
5
|
-
* on complex multi-step work. Tasks are displayed in the terminal UI
|
|
6
|
-
* so the user can see what the agent is doing.
|
|
7
|
-
*/
|
|
8
|
-
import type { ToolDefinition, StreamCallback } from "../../types.js";
|
|
9
|
-
export type TaskStatus = "pending" | "in_progress" | "completed" | "stopped";
|
|
10
|
-
export interface Task {
|
|
11
|
-
id: string;
|
|
12
|
-
subject: string;
|
|
13
|
-
description: string;
|
|
14
|
-
activeForm?: string;
|
|
15
|
-
status: TaskStatus;
|
|
16
|
-
createdAt: number;
|
|
17
|
-
updatedAt: number;
|
|
18
|
-
blockedBy: string[];
|
|
19
|
-
blocks: string[];
|
|
20
|
-
}
|
|
21
|
-
declare class TaskManager {
|
|
22
|
-
private tasks;
|
|
23
|
-
private nextId;
|
|
24
|
-
private onUpdate?;
|
|
25
|
-
reset(): void;
|
|
26
|
-
setStreamCallback(cb?: StreamCallback): void;
|
|
27
|
-
create(subject: string, description: string, activeForm?: string): Task;
|
|
28
|
-
get(id: string): Task | undefined;
|
|
29
|
-
list(): Task[];
|
|
30
|
-
update(id: string, updates: Partial<Pick<Task, "subject" | "description" | "activeForm" | "status">> & {
|
|
31
|
-
addBlockedBy?: string[];
|
|
32
|
-
addBlocks?: string[];
|
|
33
|
-
}): Task | undefined;
|
|
34
|
-
stop(id: string): Task | undefined;
|
|
35
|
-
delete(id: string): boolean;
|
|
36
|
-
private emitUpdate;
|
|
37
|
-
}
|
|
38
|
-
export declare const taskManager: TaskManager;
|
|
39
|
-
export declare const taskCreateToolDef: ToolDefinition;
|
|
40
|
-
export declare const taskListToolDef: ToolDefinition;
|
|
41
|
-
export declare const taskUpdateToolDef: ToolDefinition;
|
|
42
|
-
export declare const taskStopToolDef: ToolDefinition;
|
|
43
|
-
export declare function taskCreateTool(args: Record<string, unknown>): Promise<string>;
|
|
44
|
-
export declare function taskListTool(_args: Record<string, unknown>): Promise<string>;
|
|
45
|
-
export declare function taskUpdateTool(args: Record<string, unknown>): Promise<string>;
|
|
46
|
-
export declare function taskStopTool(args: Record<string, unknown>): Promise<string>;
|
|
47
|
-
export declare const taskGetToolDef: ToolDefinition;
|
|
48
|
-
export declare function taskGetTool(args: Record<string, unknown>): Promise<string>;
|
|
49
|
-
export declare const taskOutputToolDef: ToolDefinition;
|
|
50
|
-
export declare function taskOutputTool(args: Record<string, unknown>): Promise<string>;
|
|
51
|
-
export {};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Built-in ToolSearch tool — deferred tool schema discovery.
|
|
3
|
-
*
|
|
4
|
-
* MCP tools are initially registered with name-only (deferred).
|
|
5
|
-
* The model uses ToolSearch to discover full schemas on demand,
|
|
6
|
-
* saving context by not loading all MCP tool schemas upfront.
|
|
7
|
-
*/
|
|
8
|
-
import type { ToolDefinition } from "../../types.js";
|
|
9
|
-
import type { ToolContext } from "../context.js";
|
|
10
|
-
export declare const toolSearchToolDef: ToolDefinition;
|
|
11
|
-
export declare function toolSearchTool(args: Record<string, unknown>, ctx?: ToolContext): Promise<string>;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Built-in WebFetch tool — fetch a URL and extract readable text content.
|
|
3
|
-
*/
|
|
4
|
-
import type { ToolDefinition } from "../../types.js";
|
|
5
|
-
export declare const webFetchToolDef: ToolDefinition;
|
|
6
|
-
export declare function webFetchTool(args: Record<string, unknown>): Promise<string>;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Built-in WebSearch tool — search the web via Serper, Tavily, or SearXNG.
|
|
3
|
-
*/
|
|
4
|
-
import type { ToolDefinition } from "../../types.js";
|
|
5
|
-
export declare const webSearchToolDef: ToolDefinition;
|
|
6
|
-
export declare function webSearchTool(args: Record<string, unknown>): Promise<string>;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* EnterWorktree / ExitWorktree tools — create and manage isolated git worktrees.
|
|
3
|
-
*/
|
|
4
|
-
import type { ToolDefinition } from "../../types.js";
|
|
5
|
-
import { type WorktreeSession } from "../../git/worktree.js";
|
|
6
|
-
export declare function getActiveWorktree(): WorktreeSession | undefined;
|
|
7
|
-
export declare const enterWorktreeToolDef: ToolDefinition;
|
|
8
|
-
export declare function enterWorktreeTool(args: Record<string, unknown>): Promise<string>;
|
|
9
|
-
export declare const exitWorktreeToolDef: ToolDefinition;
|
|
10
|
-
export declare function exitWorktreeTool(args: Record<string, unknown>): Promise<string>;
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ToolContext — runtime services injected into every tool execution.
|
|
3
|
-
*
|
|
4
|
-
* Replaces the legacy module-level singletons (`setAskUserFn`,
|
|
5
|
-
* `setArenaLLMConfig`, `setSubAgentConfig`, `setToolSearchRegistry`).
|
|
6
|
-
*
|
|
7
|
-
* Each Engine instance builds its own ToolContext when run() starts and
|
|
8
|
-
* passes it through ToolExecutor → ToolRegistry → executor function.
|
|
9
|
-
* That makes concurrent Engine instances safe: tools never see another
|
|
10
|
-
* Engine's askUser handler or LLM credentials.
|
|
11
|
-
*
|
|
12
|
-
* Tools that don't need any context (Read/Write/Bash/...) just ignore
|
|
13
|
-
* the second argument; the type is purely additive.
|
|
14
|
-
*/
|
|
15
|
-
import type { LLMConfig, StreamCallback } from "../types.js";
|
|
16
|
-
import type { ModelPool } from "../llm/model-pool.js";
|
|
17
|
-
import type { ToolRegistry } from "./registry.js";
|
|
18
|
-
import type { AgentPresetName } from "../preset/index.js";
|
|
19
|
-
import type { SandboxBackend } from "./sandbox/index.js";
|
|
20
|
-
import type { HookRegistry } from "../hooks/registry.js";
|
|
21
|
-
/** One choice in a multiple-choice AskUserQuestion. */
|
|
22
|
-
export interface AskUserChoice {
|
|
23
|
-
label: string;
|
|
24
|
-
description: string;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Optional rendering hints / multiple-choice options carried alongside the
|
|
28
|
-
* question. Implementations may ignore unknown fields — they're additive.
|
|
29
|
-
*/
|
|
30
|
-
export interface AskUserOptions {
|
|
31
|
-
/** Short chip-style label (≤12 chars) shown above the question. */
|
|
32
|
-
header?: string;
|
|
33
|
-
/** Multiple-choice options. When omitted, the UI falls back to free-text. */
|
|
34
|
-
options?: AskUserChoice[];
|
|
35
|
-
/** Allow the user to pick more than one option. Defaults to false. */
|
|
36
|
-
multiSelect?: boolean;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Function the host UI / server uses to ask the user a question.
|
|
40
|
-
*
|
|
41
|
-
* Second argument is optional for backwards compatibility — callers that
|
|
42
|
-
* only need free text can omit it; backends that don't support options
|
|
43
|
-
* should ignore the field and prompt for free text.
|
|
44
|
-
*
|
|
45
|
-
* Return value:
|
|
46
|
-
* - Free-text mode: the user's typed answer (or "(user declined to answer)").
|
|
47
|
-
* - Multiple-choice mode: the selected label, or comma-separated labels for
|
|
48
|
-
* multiSelect, or "Other: <typed>" when the user picks the implicit
|
|
49
|
-
* Other... entry.
|
|
50
|
-
*/
|
|
51
|
-
export type AskUserFn = (question: string, opts?: AskUserOptions) => Promise<string>;
|
|
52
|
-
/** Spawn a sub-agent. Returns the produced text or throws. */
|
|
53
|
-
export interface SubAgentSpawnRequest {
|
|
54
|
-
agentId: string;
|
|
55
|
-
description: string;
|
|
56
|
-
prompt: string;
|
|
57
|
-
maxTurns: number;
|
|
58
|
-
signal: AbortSignal;
|
|
59
|
-
/**
|
|
60
|
-
* Per-call override for where the spawned child Engine's stream events go.
|
|
61
|
-
* Defaults to `spawner.parentStream` (the parent UI). Background sub-agents
|
|
62
|
-
* pass a transcriptSink here so per-event detail is captured in the agent's
|
|
63
|
-
* transcript instead of leaking into the main feed; the main feed still
|
|
64
|
-
* gets `agent_start` / `agent_end` markers via `spawner.parentStream`.
|
|
65
|
-
*/
|
|
66
|
-
streamOverride?: StreamCallback;
|
|
67
|
-
}
|
|
68
|
-
export interface SubAgentSpawner {
|
|
69
|
-
/** Run a sub-agent synchronously and return its text output. */
|
|
70
|
-
spawn(req: SubAgentSpawnRequest): Promise<string>;
|
|
71
|
-
/** Stream callback to forward sub-agent events back to the parent UI. */
|
|
72
|
-
parentStream?: StreamCallback;
|
|
73
|
-
/** Static config used to describe what the spawned engine looks like. */
|
|
74
|
-
describe(): {
|
|
75
|
-
cwd: string;
|
|
76
|
-
preset?: AgentPresetName;
|
|
77
|
-
permissionMode: string;
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* The full context object handed to every tool invocation.
|
|
82
|
-
*
|
|
83
|
-
* Optional fields are filled in by Engine.run(); some headless paths may
|
|
84
|
-
* leave them undefined (e.g. running without UI → no askUser).
|
|
85
|
-
*/
|
|
86
|
-
export interface ToolContext {
|
|
87
|
-
/** Active working directory for this Engine. */
|
|
88
|
-
cwd: string;
|
|
89
|
-
/** LLM credentials/endpoint for tools that need to make their own calls. */
|
|
90
|
-
llmConfig: LLMConfig;
|
|
91
|
-
/** Active model pool (Arena reads this to pick participants). */
|
|
92
|
-
modelPool?: ModelPool;
|
|
93
|
-
/** Tool registry (ToolSearch reads this to enumerate available tools). */
|
|
94
|
-
toolRegistry: ToolRegistry;
|
|
95
|
-
/** UI-backed AskUserQuestion handler. Undefined → headless mode. */
|
|
96
|
-
askUser?: AskUserFn;
|
|
97
|
-
/** Sub-agent spawner (Agent tool). Undefined → Agent tool unavailable. */
|
|
98
|
-
subAgentSpawner?: SubAgentSpawner;
|
|
99
|
-
/**
|
|
100
|
-
* True when this Engine is itself a sub-agent. Set from EngineConfig.
|
|
101
|
-
* The Agent tool refuses to spawn when this is true — runtime check
|
|
102
|
-
* layered on top of the tool-list strip in Engine.spawn so a registry
|
|
103
|
-
* regression can't leak nested spawns.
|
|
104
|
-
*/
|
|
105
|
-
isSubAgent?: boolean;
|
|
106
|
-
/**
|
|
107
|
-
* Active sandbox backend for the Bash tool. Undefined falls back to "off"
|
|
108
|
-
* (plain spawn). Headless runs default to an OS-level sandbox; the REPL
|
|
109
|
-
* defaults to off because a human is in the loop to approve commands.
|
|
110
|
-
*/
|
|
111
|
-
sandbox?: SandboxBackend;
|
|
112
|
-
/** Optional cancellation signal for the whole turn. */
|
|
113
|
-
signal?: AbortSignal;
|
|
114
|
-
/**
|
|
115
|
-
* Engine-owned HookRegistry. Tools that emit lifecycle hooks
|
|
116
|
-
* (notification, file_changed for non-Write/Edit paths, custom
|
|
117
|
-
* tool-defined events) use this. Undefined for legacy callers /
|
|
118
|
-
* standalone tests; tools must tolerate absence.
|
|
119
|
-
*/
|
|
120
|
-
hooks?: HookRegistry;
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Per-Engine container that produces a fresh ToolContext on demand.
|
|
124
|
-
* Engine creates one of these in run() and passes it to ToolExecutor.
|
|
125
|
-
*/
|
|
126
|
-
export declare class ServiceContainer {
|
|
127
|
-
private readonly base;
|
|
128
|
-
constructor(base: ToolContext);
|
|
129
|
-
/** Snapshot of the context at this moment. */
|
|
130
|
-
get(): ToolContext;
|
|
131
|
-
/** Create a derived context with overridden fields (e.g. per-call signal). */
|
|
132
|
-
withSignal(signal: AbortSignal): ToolContext;
|
|
133
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tool executor — orchestrates permission checks, hooks, and execution.
|
|
3
|
-
*/
|
|
4
|
-
import type { ToolCall, ToolResult, Message } from "../types.js";
|
|
5
|
-
import type { HookRegistry } from "../hooks/registry.js";
|
|
6
|
-
import { ToolRegistry } from "./registry.js";
|
|
7
|
-
import { PermissionClassifier } from "./permission.js";
|
|
8
|
-
import { logger as rootLogger } from "../logging/logger.js";
|
|
9
|
-
import type { ToolContext } from "./context.js";
|
|
10
|
-
import type { InvestigationGuard } from "./investigation-guard.js";
|
|
11
|
-
import type { TaskGuard } from "./task-guard.js";
|
|
12
|
-
type Logger = typeof rootLogger;
|
|
13
|
-
export declare class ToolExecutor {
|
|
14
|
-
private readonly registry;
|
|
15
|
-
private readonly permission;
|
|
16
|
-
private readonly hooks;
|
|
17
|
-
private signal?;
|
|
18
|
-
/** Per-Engine ToolContext injected for every tool call. */
|
|
19
|
-
private toolCtx?;
|
|
20
|
-
/**
|
|
21
|
-
* Turn-scoped logger set by TurnLoop at the top of each iteration.
|
|
22
|
-
* Falls back to the root logger so executor calls outside the turn loop
|
|
23
|
-
* (tests, ad-hoc tool runs) still write log lines, just without turn tags.
|
|
24
|
-
*/
|
|
25
|
-
private log;
|
|
26
|
-
private guard?;
|
|
27
|
-
private taskGuard?;
|
|
28
|
-
constructor(registry: ToolRegistry, permission: PermissionClassifier, hooks: HookRegistry);
|
|
29
|
-
setInvestigationGuard(guard: InvestigationGuard | undefined): void;
|
|
30
|
-
getInvestigationGuard(): InvestigationGuard | undefined;
|
|
31
|
-
setTaskGuard(guard: TaskGuard | undefined): void;
|
|
32
|
-
getTaskGuard(): TaskGuard | undefined;
|
|
33
|
-
/** Set the abort signal for cascading cancellation. */
|
|
34
|
-
setSignal(signal?: AbortSignal): void;
|
|
35
|
-
/** Set the per-Engine ToolContext (askUser, llmConfig, modelPool, etc.). */
|
|
36
|
-
setContext(ctx: ToolContext | undefined): void;
|
|
37
|
-
/** Inject a turn-scoped logger so tool-execution lines carry turn/turnId. */
|
|
38
|
-
setLogger(log: Logger): void;
|
|
39
|
-
/** Check if a tool is safe for concurrent execution (read-only). */
|
|
40
|
-
isConcurrencySafe(toolName: string): boolean;
|
|
41
|
-
executeSingle(callIn: ToolCall): Promise<ToolResult>;
|
|
42
|
-
private isReadOnlyBashCommand;
|
|
43
|
-
executeAll(calls: ToolCall[]): Promise<ToolResult[]>;
|
|
44
|
-
/**
|
|
45
|
-
* Convert tool results into Message entries for the transcript.
|
|
46
|
-
*/
|
|
47
|
-
resultsToMessages(toolCalls: ToolCall[], results: ToolResult[]): Message[];
|
|
48
|
-
}
|
|
49
|
-
export {};
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Investigation Guard — runtime enforcement of read budgets.
|
|
3
|
-
*
|
|
4
|
-
* Background: prompt rules in coding.md ("never re-read the same file",
|
|
5
|
-
* "after ~3 read-only calls, change strategy") describe a behavior the model
|
|
6
|
-
* frequently violates under context pressure. This module turns those soft
|
|
7
|
-
* rules into in-loop reminders/blocks delivered through tool results.
|
|
8
|
-
*
|
|
9
|
-
* Three independent counters share one guard instance per Engine:
|
|
10
|
-
* A) dedupe — same Read offset hit ≥2 times → reminder; ≥3 times → block
|
|
11
|
-
* B) read-budget — N consecutive read-only tools with no side-effecting
|
|
12
|
-
* tool in between → reminder on the next read
|
|
13
|
-
* C) silent turns — N consecutive turns of only read-only tools with no
|
|
14
|
-
* text output → injected into the *next* turn's user
|
|
15
|
-
* message by turn-loop (the guard just tracks state).
|
|
16
|
-
*
|
|
17
|
-
* Everything decays naturally on any write/Bash/AskUser tool (state reset).
|
|
18
|
-
*/
|
|
19
|
-
import type { ToolCall, ToolResult } from "../types.js";
|
|
20
|
-
export interface GuardDecision {
|
|
21
|
-
block?: string;
|
|
22
|
-
prepend?: string;
|
|
23
|
-
}
|
|
24
|
-
export declare class InvestigationGuard {
|
|
25
|
-
private readHistory;
|
|
26
|
-
private consecutiveReads;
|
|
27
|
-
private silentTurns;
|
|
28
|
-
private turnHasText;
|
|
29
|
-
private turnHasSideEffect;
|
|
30
|
-
private lastReminderSilent;
|
|
31
|
-
/**
|
|
32
|
-
* Soft mode replaces hard blocks (3rd-read dedupe) with a stronger
|
|
33
|
-
* reminder. Used in headless runs (`code-shell run …`) where there is
|
|
34
|
-
* no human to retry the task, so an unattended automation should not
|
|
35
|
-
* be killed by the guard — it should still get the signal to change
|
|
36
|
-
* strategy, but the tool call goes through.
|
|
37
|
-
*/
|
|
38
|
-
private softMode;
|
|
39
|
-
setSoftMode(soft: boolean): void;
|
|
40
|
-
preToolCheck(call: ToolCall): GuardDecision | undefined;
|
|
41
|
-
noteText(text: string | undefined): void;
|
|
42
|
-
noteToolResult(_call: ToolCall, _result: ToolResult): void;
|
|
43
|
-
turnEnded(turnNumber: number): string | undefined;
|
|
44
|
-
private isMutatingTool;
|
|
45
|
-
private buildKey;
|
|
46
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MCP Server Manager — connects to external MCP servers and registers their tools.
|
|
3
|
-
*
|
|
4
|
-
* Supports stdio and streamable-http transports.
|
|
5
|
-
*/
|
|
6
|
-
import type { MCPServerConfig } from "../types.js";
|
|
7
|
-
import { ToolRegistry } from "./registry.js";
|
|
8
|
-
export declare class MCPManager {
|
|
9
|
-
private readonly toolRegistry;
|
|
10
|
-
private static instance;
|
|
11
|
-
private connections;
|
|
12
|
-
constructor(toolRegistry: ToolRegistry);
|
|
13
|
-
static getInstance(): MCPManager;
|
|
14
|
-
/**
|
|
15
|
-
* Connect to all configured MCP servers and register their tools.
|
|
16
|
-
*/
|
|
17
|
-
connectAll(servers: Record<string, MCPServerConfig>): Promise<void>;
|
|
18
|
-
/**
|
|
19
|
-
* Connect to a single MCP server.
|
|
20
|
-
*/
|
|
21
|
-
connect(name: string, config: MCPServerConfig): Promise<void>;
|
|
22
|
-
/**
|
|
23
|
-
* Discover tools from an MCP server and register them.
|
|
24
|
-
*/
|
|
25
|
-
private discoverTools;
|
|
26
|
-
/**
|
|
27
|
-
* Disconnect all MCP servers.
|
|
28
|
-
*/
|
|
29
|
-
disconnectAll(): Promise<void>;
|
|
30
|
-
/**
|
|
31
|
-
* List connected servers.
|
|
32
|
-
*/
|
|
33
|
-
listServers(): string[];
|
|
34
|
-
/**
|
|
35
|
-
* Call a tool on a specific MCP server.
|
|
36
|
-
*/
|
|
37
|
-
callTool(serverName: string, toolName: string, args: Record<string, unknown>): Promise<unknown>;
|
|
38
|
-
/**
|
|
39
|
-
* List resources from MCP servers.
|
|
40
|
-
*/
|
|
41
|
-
listResources(serverName?: string): Promise<Array<{
|
|
42
|
-
uri: string;
|
|
43
|
-
name: string;
|
|
44
|
-
description?: string;
|
|
45
|
-
}>>;
|
|
46
|
-
/**
|
|
47
|
-
* Read a resource from an MCP server.
|
|
48
|
-
*/
|
|
49
|
-
readResource(serverName: string, uri: string): Promise<string>;
|
|
50
|
-
}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Permission system — classifier + approval backend.
|
|
3
|
-
*/
|
|
4
|
-
import type { PermissionDecision, PermissionMode, PermissionRule, ApprovalRequest, ApprovalResult } from "../types.js";
|
|
5
|
-
import { logger as rootPermLogger } from "../logging/logger.js";
|
|
6
|
-
export interface ApprovalBackend {
|
|
7
|
-
requestApproval(request: ApprovalRequest): Promise<ApprovalResult>;
|
|
8
|
-
}
|
|
9
|
-
export declare class HeadlessApprovalBackend implements ApprovalBackend {
|
|
10
|
-
private readonly mode;
|
|
11
|
-
constructor(mode: "approve-all" | "deny-all" | "approve-read-only");
|
|
12
|
-
requestApproval(req: ApprovalRequest): Promise<ApprovalResult>;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Auto approval backend — uses fast-path heuristics to auto-approve safe operations.
|
|
16
|
-
* Falls back to a delegate backend for uncertain cases.
|
|
17
|
-
*/
|
|
18
|
-
export declare class AutoApprovalBackend implements ApprovalBackend {
|
|
19
|
-
private readonly delegate?;
|
|
20
|
-
constructor(delegate?: ApprovalBackend | undefined);
|
|
21
|
-
requestApproval(req: ApprovalRequest): Promise<ApprovalResult>;
|
|
22
|
-
private isSafeOperation;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Interactive approval backend — prompts the user via a callback.
|
|
26
|
-
*
|
|
27
|
-
* Stores "always allow" decisions at two scopes:
|
|
28
|
-
* - session: in-memory map, lost when the process exits
|
|
29
|
-
* - project: persisted to <cwd>/.code-shell/settings.local.json so the
|
|
30
|
-
* same project remembers the rule across REPL restarts
|
|
31
|
-
*
|
|
32
|
-
* The classifier reads project rules from settings on session start (see
|
|
33
|
-
* Engine.buildPermissionConfig), so persisted rules become "auto-allow"
|
|
34
|
-
* the next time the user opens the project.
|
|
35
|
-
*/
|
|
36
|
-
export declare class InteractiveApprovalBackend implements ApprovalBackend {
|
|
37
|
-
private sessionRules;
|
|
38
|
-
private promptFn;
|
|
39
|
-
private cwd;
|
|
40
|
-
private savedProjectRules;
|
|
41
|
-
private onProjectRules;
|
|
42
|
-
setPromptFn(fn: (request: ApprovalRequest) => Promise<ApprovalResult>): void;
|
|
43
|
-
/** Inject the project root so persistence writes to the right settings file. */
|
|
44
|
-
setCwd(cwd: string): void;
|
|
45
|
-
/**
|
|
46
|
-
* Inject a callback fired when the user approves "for this project". The
|
|
47
|
-
* callback receives the *full* accumulated list of project rules saved in
|
|
48
|
-
* this session, so the classifier can be reconfigured without losing
|
|
49
|
-
* earlier approvals.
|
|
50
|
-
*/
|
|
51
|
-
setOnProjectRules(fn: (rules: PermissionRule[]) => void): void;
|
|
52
|
-
requestApproval(req: ApprovalRequest): Promise<ApprovalResult>;
|
|
53
|
-
}
|
|
54
|
-
export declare function getInteractiveApprovalBackend(): InteractiveApprovalBackend;
|
|
55
|
-
export declare function setInteractiveApprovalFn(fn: (request: ApprovalRequest) => Promise<ApprovalResult>): void;
|
|
56
|
-
type BashSafetyLevel = "safe-read" | "safe-write" | "unsafe" | "dangerous";
|
|
57
|
-
export declare function classifyBashCommand(command: string): BashSafetyLevel;
|
|
58
|
-
export declare class DenialTracker {
|
|
59
|
-
private denials;
|
|
60
|
-
private readonly periodMs;
|
|
61
|
-
private readonly maxDenials;
|
|
62
|
-
constructor(opts?: {
|
|
63
|
-
periodMs?: number;
|
|
64
|
-
maxDenials?: number;
|
|
65
|
-
});
|
|
66
|
-
record(toolName: string): void;
|
|
67
|
-
recordSuccess(toolName: string): void;
|
|
68
|
-
shouldWarn(toolName: string): boolean;
|
|
69
|
-
getWarningMessage(toolName: string): string;
|
|
70
|
-
clear(): void;
|
|
71
|
-
}
|
|
72
|
-
export declare function setRuntimeBypass(enabled: boolean): void;
|
|
73
|
-
export declare function isRuntimeBypass(): boolean;
|
|
74
|
-
export declare class PermissionClassifier {
|
|
75
|
-
private rules;
|
|
76
|
-
private defaultMode;
|
|
77
|
-
private approvalBackend;
|
|
78
|
-
private denialTracker;
|
|
79
|
-
/**
|
|
80
|
-
* Turn-scoped logger so permission events (ask/decision/auto-deny) are
|
|
81
|
-
* tagged with the current turn/turnId. Falls back to the root logger so
|
|
82
|
-
* tests and ad-hoc usages still write log lines.
|
|
83
|
-
*/
|
|
84
|
-
private log;
|
|
85
|
-
constructor(rules: PermissionRule[], defaultMode?: PermissionMode, approvalBackend?: ApprovalBackend);
|
|
86
|
-
setLogger(log: typeof rootPermLogger): void;
|
|
87
|
-
/** Replace mode + backend in place so live tool execution sees the change. */
|
|
88
|
-
reconfigure(mode: PermissionMode, approvalBackend: ApprovalBackend, rules?: PermissionRule[]): void;
|
|
89
|
-
getMode(): PermissionMode;
|
|
90
|
-
classify(toolName: string, args: Record<string, unknown>): PermissionDecision;
|
|
91
|
-
handleAsk(toolName: string, args: Record<string, unknown>, reason?: string): Promise<boolean>;
|
|
92
|
-
/** Get denial warning message if the model keeps getting denied. */
|
|
93
|
-
getDenialWarning(toolName: string): string | undefined;
|
|
94
|
-
private matchesRule;
|
|
95
|
-
private isDangerousCommand;
|
|
96
|
-
private assessRisk;
|
|
97
|
-
/**
|
|
98
|
-
* Short, human-friendly subtitle. The UI shows this under the tool title;
|
|
99
|
-
* full args (command bodies, diffs, etc.) come from the args field, so this
|
|
100
|
-
* stays compact — no truncation here, just a label.
|
|
101
|
-
*/
|
|
102
|
-
private describeToolCall;
|
|
103
|
-
}
|
|
104
|
-
export {};
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Unified tool registry — built-in tools + MCP tools.
|
|
3
|
-
*/
|
|
4
|
-
import type { RegisteredTool, ToolDefinition, ToolResult } from "../types.js";
|
|
5
|
-
import { type BuiltinToolFn } from "./builtin/index.js";
|
|
6
|
-
import type { ToolContext } from "./context.js";
|
|
7
|
-
/**
|
|
8
|
-
* Default execution timeout for any tool that does not declare its own
|
|
9
|
-
* timeoutMs at registration time. Tools that need to run longer (Agent,
|
|
10
|
-
* Arena, Bash, custom long-running tools) should set timeoutMs explicitly.
|
|
11
|
-
*/
|
|
12
|
-
export declare const DEFAULT_TOOL_TIMEOUT_MS = 120000;
|
|
13
|
-
export interface ToolRegistryOptions {
|
|
14
|
-
builtinTools?: readonly string[];
|
|
15
|
-
}
|
|
16
|
-
export declare class ToolRegistry {
|
|
17
|
-
private tools;
|
|
18
|
-
private builtinExecutors;
|
|
19
|
-
constructor(options?: ToolRegistryOptions);
|
|
20
|
-
private registerBuiltins;
|
|
21
|
-
registerTool(tool: RegisteredTool, executor?: BuiltinToolFn): void;
|
|
22
|
-
getToolDefinitions(): ToolDefinition[];
|
|
23
|
-
getTool(name: string): RegisteredTool | undefined;
|
|
24
|
-
hasTool(name: string): boolean;
|
|
25
|
-
executeTool(name: string, args: Record<string, unknown>, options?: {
|
|
26
|
-
timeoutMs?: number;
|
|
27
|
-
signal?: AbortSignal;
|
|
28
|
-
ctx?: ToolContext;
|
|
29
|
-
}): Promise<ToolResult>;
|
|
30
|
-
listTools(): string[];
|
|
31
|
-
listToolsDetailed(): RegisteredTool[];
|
|
32
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Linux bubblewrap backend.
|
|
3
|
-
*
|
|
4
|
-
* bwrap creates a fresh mount namespace, then bind-mounts only what we tell
|
|
5
|
-
* it. We bind / read-only and overlay writableRoots as read-write. PID,
|
|
6
|
-
* IPC, UTS, cgroup namespaces are unshared. Network is shared unless
|
|
7
|
-
* config.network === "deny".
|
|
8
|
-
*
|
|
9
|
-
* Sensitive directories listed in deniedReads are shadowed with a tmpfs so
|
|
10
|
-
* the inner process literally cannot see them even though `/` is mounted.
|
|
11
|
-
*/
|
|
12
|
-
import type { SandboxBackend, SandboxConfig } from "./index.js";
|
|
13
|
-
export declare function createBwrapBackend(config: SandboxConfig): SandboxBackend;
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Sandbox backends for shell command execution.
|
|
3
|
-
*
|
|
4
|
-
* We wrap Bash-tool commands in an OS-level sandbox so a misbehaving (or
|
|
5
|
-
* prompt-injected) model can't reach beyond the workspace. The sandbox runs
|
|
6
|
-
* the user's command inside an isolated process tree with restricted file
|
|
7
|
-
* and (optionally) network access. The Engine itself is NOT sandboxed; only
|
|
8
|
-
* the spawned shell is. File-editing tools (Edit/Write) keep going through
|
|
9
|
-
* the application-layer permission gate.
|
|
10
|
-
*
|
|
11
|
-
* Backends are platform-specific:
|
|
12
|
-
* - "seatbelt" macOS sandbox-exec, built into macOS, zero install
|
|
13
|
-
* - "bwrap" Linux bubblewrap, requires `apt install bubblewrap`
|
|
14
|
-
* - "off" passthrough, no sandboxing (current behavior)
|
|
15
|
-
*
|
|
16
|
-
* "auto" picks per platform at startup; falls back to "off" with a warning
|
|
17
|
-
* when no sandbox is available.
|
|
18
|
-
*/
|
|
19
|
-
export type SandboxMode = "off" | "auto" | "seatbelt" | "bwrap";
|
|
20
|
-
export type SandboxNetworkPolicy = "allow" | "deny";
|
|
21
|
-
export interface SandboxConfig {
|
|
22
|
-
mode: SandboxMode;
|
|
23
|
-
writableRoots: string[];
|
|
24
|
-
deniedReads: string[];
|
|
25
|
-
network: SandboxNetworkPolicy;
|
|
26
|
-
}
|
|
27
|
-
export interface SandboxBackend {
|
|
28
|
-
/** Resolved backend name — "off" means no sandboxing. */
|
|
29
|
-
name: "off" | "seatbelt" | "bwrap";
|
|
30
|
-
/**
|
|
31
|
-
* Decide the binary + argv that should actually be spawned to run `command`
|
|
32
|
-
* under this sandbox. The shell still interprets `command`; we only swap
|
|
33
|
-
* the outer process.
|
|
34
|
-
*/
|
|
35
|
-
wrap(command: string, opts: {
|
|
36
|
-
cwd: string;
|
|
37
|
-
shell: string;
|
|
38
|
-
}): {
|
|
39
|
-
file: string;
|
|
40
|
-
args: string[];
|
|
41
|
-
/**
|
|
42
|
-
* Optional callback the Bash tool calls after the child process exits.
|
|
43
|
-
* Backends that allocate per-command resources (e.g. seatbelt writes a
|
|
44
|
-
* profile file to a fresh temp dir) hang their cleanup here so a long
|
|
45
|
-
* session doesn't leak hundreds of temp dirs in /tmp.
|
|
46
|
-
*/
|
|
47
|
-
cleanup?: () => void;
|
|
48
|
-
};
|
|
49
|
-
/**
|
|
50
|
-
* If `stderr` looks like a sandbox denial, return a short hint string that
|
|
51
|
-
* the Bash tool will append to its result so the model understands why.
|
|
52
|
-
*/
|
|
53
|
-
hintForBlockedOutput?(stderr: string): string | undefined;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Detect which sandbox mechanisms are available on the current host. Used by
|
|
57
|
-
* "auto" mode and surfaced to the user via /sandbox status if desired.
|
|
58
|
-
*/
|
|
59
|
-
export declare function detectSandboxCapabilities(): {
|
|
60
|
-
seatbelt: boolean;
|
|
61
|
-
bwrap: boolean;
|
|
62
|
-
};
|
|
63
|
-
/**
|
|
64
|
-
* Expand `~` and `${workspace}` placeholders against the live cwd and home.
|
|
65
|
-
*/
|
|
66
|
-
export declare function expandPath(p: string, cwd: string): string;
|
|
67
|
-
export declare function expandConfig(config: SandboxConfig, cwd: string): SandboxConfig;
|
|
68
|
-
export declare function defaultSandboxConfig(mode?: SandboxMode): SandboxConfig;
|
|
69
|
-
/**
|
|
70
|
-
* Resolve the active backend given user config + the current host.
|
|
71
|
-
*
|
|
72
|
-
* "off" → off backend
|
|
73
|
-
* "seatbelt" → seatbelt if available, else throws (explicit choice)
|
|
74
|
-
* "bwrap" → bwrap if available, else throws
|
|
75
|
-
* "auto" → seatbelt on macOS, bwrap on Linux with bwrap installed,
|
|
76
|
-
* else off + console warning
|
|
77
|
-
*/
|
|
78
|
-
export declare function resolveSandboxBackend(config: SandboxConfig, cwd: string): Promise<SandboxBackend>;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* macOS Seatbelt backend.
|
|
3
|
-
*
|
|
4
|
-
* Builds a sandbox-exec profile that:
|
|
5
|
-
* - Allows reading most of the filesystem (denying everything breaks tooling)
|
|
6
|
-
* - Denies reads of sensitive credential directories
|
|
7
|
-
* - Restricts writes to the workspace + writableRoots
|
|
8
|
-
* - Optionally denies outbound network
|
|
9
|
-
*
|
|
10
|
-
* The profile is written to a fresh temp file per command (cheap; users can
|
|
11
|
-
* have arbitrary writableRoots so we can't cache). The spawned process and
|
|
12
|
-
* its entire subprocess tree inherit the profile via XNU's sandbox framework.
|
|
13
|
-
*
|
|
14
|
-
* sandbox-exec is technically deprecated by Apple but remains the only
|
|
15
|
-
* working OS-level sandbox on macOS and is what Codex CLI / Cursor use today.
|
|
16
|
-
*/
|
|
17
|
-
import type { SandboxBackend, SandboxConfig } from "./index.js";
|
|
18
|
-
export declare function createSeatbeltBackend(config: SandboxConfig): SandboxBackend;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TaskGuard — nudges the model to update stale in_progress tasks.
|
|
3
|
-
*
|
|
4
|
-
* Background: TaskCreate is sticky in the model's working memory only for the
|
|
5
|
-
* first few turns. After enough intervening tool_results (Read/Edit/Bash) the
|
|
6
|
-
* "I have an open task" signal gets diluted and the model finishes its work
|
|
7
|
-
* without ever calling TaskUpdate(status="completed") — so the UI spinner runs
|
|
8
|
-
* forever on a task that the model considers done.
|
|
9
|
-
*
|
|
10
|
-
* Same shape as InvestigationGuard.turnEnded: turn-loop polls at the end of
|
|
11
|
-
* each turn; if anything is in_progress and hasn't been touched in N turns,
|
|
12
|
-
* we emit a <system-reminder> that lands at the top of the next turn.
|
|
13
|
-
*
|
|
14
|
-
* Re-nag policy: don't fire more than once per (task, threshold) pair. A task
|
|
15
|
-
* stale at turn 5 fires once; if the model still ignores it, we wait for it
|
|
16
|
-
* to cross the next threshold (8, 11, …) before firing again. This keeps the
|
|
17
|
-
* reminder from drowning out everything else when the model is genuinely
|
|
18
|
-
* stuck on something unrelated.
|
|
19
|
-
*/
|
|
20
|
-
import type { Task } from "./builtin/task.js";
|
|
21
|
-
export declare class TaskGuard {
|
|
22
|
-
private taskListSource;
|
|
23
|
-
/** Last turn we nagged about a given task id. */
|
|
24
|
-
private lastNagTurn;
|
|
25
|
-
/** Turn the task was first observed in_progress (model-time, not wall-clock). */
|
|
26
|
-
private inProgressSince;
|
|
27
|
-
constructor(taskListSource: () => Task[]);
|
|
28
|
-
turnEnded(turnNumber: number): string | undefined;
|
|
29
|
-
reset(): void;
|
|
30
|
-
}
|