@pentoshi/clai 4.8.4 → 4.10.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 +91 -4
- package/dist/agent/compaction-executor.d.ts +3 -5
- package/dist/agent/compaction-executor.js +165 -28
- package/dist/agent/compaction-executor.js.map +1 -1
- package/dist/agent/finalize-gate.js +0 -9
- package/dist/agent/finalize-gate.js.map +1 -1
- package/dist/agent/plan-mode-reminders.js +5 -5
- package/dist/agent/plan-mode-reminders.js.map +1 -1
- package/dist/agent/plan-tool.d.ts +1 -0
- package/dist/agent/plan-tool.js +50 -21
- package/dist/agent/plan-tool.js.map +1 -1
- package/dist/agent/reliability-policy.d.ts +9 -0
- package/dist/agent/reliability-policy.js +36 -1
- package/dist/agent/reliability-policy.js.map +1 -1
- package/dist/agent/runner.d.ts +4 -0
- package/dist/agent/runner.js +193 -116
- package/dist/agent/runner.js.map +1 -1
- package/dist/agent/task-analyzer.d.ts +8 -18
- package/dist/agent/task-analyzer.js +75 -182
- package/dist/agent/task-analyzer.js.map +1 -1
- package/dist/agent/task-evidence.js +10 -0
- package/dist/agent/task-evidence.js.map +1 -1
- package/dist/agent/tool-call-parser.js +14 -13
- package/dist/agent/tool-call-parser.js.map +1 -1
- package/dist/app/adapters/current-agent-adapter.d.ts +5 -1
- package/dist/app/adapters/current-agent-adapter.js +2 -1
- package/dist/app/adapters/current-agent-adapter.js.map +1 -1
- package/dist/app/commands/catalog.js +10 -0
- package/dist/app/commands/catalog.js.map +1 -1
- package/dist/app/commands/registry.js +1 -0
- package/dist/app/commands/registry.js.map +1 -1
- package/dist/app/controllers/session-compact-helper.js +3 -6
- package/dist/app/controllers/session-compact-helper.js.map +1 -1
- package/dist/app/ports/transcript-item.d.ts +4 -0
- package/dist/classic/app/ClassicApp.js +1 -1
- package/dist/classic/app/ClassicApp.js.map +1 -1
- package/dist/classic/app/action-handlers.js +4 -0
- package/dist/classic/app/action-handlers.js.map +1 -1
- package/dist/classic/app/app-wiring.js +1 -0
- package/dist/classic/app/app-wiring.js.map +1 -1
- package/dist/classic/app/wiring-lifecycle.js +1 -0
- package/dist/classic/app/wiring-lifecycle.js.map +1 -1
- package/dist/classic/blocks/compacted-lines.js +3 -0
- package/dist/classic/blocks/compacted-lines.js.map +1 -1
- package/dist/classic/blocks/thinking-lines.js +11 -2
- package/dist/classic/blocks/thinking-lines.js.map +1 -1
- package/dist/classic/bootstrap/start-classic.d.ts +1 -0
- package/dist/classic/bootstrap/start-classic.js +16 -0
- package/dist/classic/bootstrap/start-classic.js.map +1 -1
- package/dist/classic/chrome/Composer.d.ts +6 -0
- package/dist/classic/chrome/Composer.js +2 -3
- package/dist/classic/chrome/Composer.js.map +1 -1
- package/dist/classic/chrome/composer-controller.d.ts +6 -1
- package/dist/classic/chrome/composer-controller.js +18 -8
- package/dist/classic/chrome/composer-controller.js.map +1 -1
- package/dist/classic/chrome/editor-view.d.ts +2 -1
- package/dist/classic/chrome/editor-view.js +1 -1
- package/dist/classic/chrome/editor-view.js.map +1 -1
- package/dist/classic/chrome/status-rows.js +3 -2
- package/dist/classic/chrome/status-rows.js.map +1 -1
- package/dist/classic/panels/TextEditorPanel.d.ts +3 -0
- package/dist/classic/panels/TextEditorPanel.js +7 -0
- package/dist/classic/panels/TextEditorPanel.js.map +1 -0
- package/dist/classic/panels/panel-controller.js +28 -1
- package/dist/classic/panels/panel-controller.js.map +1 -1
- package/dist/classic/panels/panel-effect.d.ts +3 -0
- package/dist/classic/panels/panel-effect.js.map +1 -1
- package/dist/classic/panels/panel-effects.js +3 -0
- package/dist/classic/panels/panel-effects.js.map +1 -1
- package/dist/classic/panels/panel-host.js +3 -0
- package/dist/classic/panels/panel-host.js.map +1 -1
- package/dist/classic/panels/panel-types.d.ts +2 -0
- package/dist/classic/panels/secret-panel.d.ts +1 -1
- package/dist/classic/panels/secret-panel.js +4 -2
- package/dist/classic/panels/secret-panel.js.map +1 -1
- package/dist/classic/panels/text-editor-panel.d.ts +33 -0
- package/dist/classic/panels/text-editor-panel.js +101 -0
- package/dist/classic/panels/text-editor-panel.js.map +1 -0
- package/dist/index.js +60 -7
- package/dist/index.js.map +1 -1
- package/dist/interactive-session/transport-node-pty.d.ts +10 -1
- package/dist/interactive-session/transport-node-pty.js +36 -12
- package/dist/interactive-session/transport-node-pty.js.map +1 -1
- package/dist/llm/adapters/anthropic-tools.d.ts +2 -1
- package/dist/llm/adapters/anthropic-tools.js +55 -4
- package/dist/llm/adapters/anthropic-tools.js.map +1 -1
- package/dist/llm/anthropic.js +1 -1
- package/dist/llm/anthropic.js.map +1 -1
- package/dist/llm/aws-mantle.js +2 -0
- package/dist/llm/aws-mantle.js.map +1 -1
- package/dist/llm/meta.js +62 -68
- package/dist/llm/meta.js.map +1 -1
- package/dist/llm/operation-ledger.js +6 -2
- package/dist/llm/operation-ledger.js.map +1 -1
- package/dist/llm/provider.js +7 -7
- package/dist/llm/request-plan.js +7 -2
- package/dist/llm/request-plan.js.map +1 -1
- package/dist/llm/tool-protocol.d.ts +1 -0
- package/dist/llm/tool-protocol.js +7 -0
- package/dist/llm/tool-protocol.js.map +1 -1
- package/dist/mcp/client.d.ts +27 -0
- package/dist/mcp/client.js +119 -0
- package/dist/mcp/client.js.map +1 -0
- package/dist/mcp/config-file.d.ts +35 -0
- package/dist/mcp/config-file.js +217 -0
- package/dist/mcp/config-file.js.map +1 -0
- package/dist/mcp/discovery.d.ts +4 -0
- package/dist/mcp/discovery.js +409 -0
- package/dist/mcp/discovery.js.map +1 -0
- package/dist/mcp/format.d.ts +17 -0
- package/dist/mcp/format.js +122 -0
- package/dist/mcp/format.js.map +1 -0
- package/dist/mcp/index.d.ts +15 -0
- package/dist/mcp/index.js +16 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/jsonrpc.d.ts +40 -0
- package/dist/mcp/jsonrpc.js +175 -0
- package/dist/mcp/jsonrpc.js.map +1 -0
- package/dist/mcp/manager.d.ts +36 -0
- package/dist/mcp/manager.js +300 -0
- package/dist/mcp/manager.js.map +1 -0
- package/dist/mcp/mentions.d.ts +9 -0
- package/dist/mcp/mentions.js +44 -0
- package/dist/mcp/mentions.js.map +1 -0
- package/dist/mcp/names.d.ts +15 -0
- package/dist/mcp/names.js +59 -0
- package/dist/mcp/names.js.map +1 -0
- package/dist/mcp/results.d.ts +6 -0
- package/dist/mcp/results.js +182 -0
- package/dist/mcp/results.js.map +1 -0
- package/dist/mcp/runtime.d.ts +107 -0
- package/dist/mcp/runtime.js +505 -0
- package/dist/mcp/runtime.js.map +1 -0
- package/dist/mcp/substitution.d.ts +13 -0
- package/dist/mcp/substitution.js +74 -0
- package/dist/mcp/substitution.js.map +1 -0
- package/dist/mcp/transport-http.d.ts +53 -0
- package/dist/mcp/transport-http.js +433 -0
- package/dist/mcp/transport-http.js.map +1 -0
- package/dist/mcp/transport-stdio.d.ts +39 -0
- package/dist/mcp/transport-stdio.js +268 -0
- package/dist/mcp/transport-stdio.js.map +1 -0
- package/dist/mcp/transport.d.ts +20 -0
- package/dist/mcp/transport.js +44 -0
- package/dist/mcp/transport.js.map +1 -0
- package/dist/mcp/types.d.ts +179 -0
- package/dist/mcp/types.js +30 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/mcp/validation.d.ts +16 -0
- package/dist/mcp/validation.js +222 -0
- package/dist/mcp/validation.js.map +1 -0
- package/dist/modes/agent.d.ts +2 -0
- package/dist/modes/agent.js.map +1 -1
- package/dist/noninteractive/start-noninteractive.js +4 -0
- package/dist/noninteractive/start-noninteractive.js.map +1 -1
- package/dist/prompts/embedded.js +2 -2
- package/dist/prompts/embedded.js.map +1 -1
- package/dist/prompts/index.d.ts +3 -0
- package/dist/prompts/index.js +70 -55
- package/dist/prompts/index.js.map +1 -1
- package/dist/prompts/system.agent.md +34 -10
- package/dist/prompts/system.ask.md +8 -0
- package/dist/safety/classifier.js +4 -0
- package/dist/safety/classifier.js.map +1 -1
- package/dist/session-runtime/binding.d.ts +5 -0
- package/dist/session-runtime/binding.js +28 -0
- package/dist/session-runtime/binding.js.map +1 -0
- package/dist/session-runtime/child-bridge.d.ts +31 -0
- package/dist/session-runtime/child-bridge.js +169 -0
- package/dist/session-runtime/child-bridge.js.map +1 -0
- package/dist/session-runtime/client.d.ts +8 -0
- package/dist/session-runtime/client.js +448 -0
- package/dist/session-runtime/client.js.map +1 -0
- package/dist/session-runtime/discovery.d.ts +6 -0
- package/dist/session-runtime/discovery.js +100 -0
- package/dist/session-runtime/discovery.js.map +1 -0
- package/dist/session-runtime/host.d.ts +77 -0
- package/dist/session-runtime/host.js +758 -0
- package/dist/session-runtime/host.js.map +1 -0
- package/dist/session-runtime/launch.d.ts +11 -0
- package/dist/session-runtime/launch.js +68 -0
- package/dist/session-runtime/launch.js.map +1 -0
- package/dist/session-runtime/paths.d.ts +8 -0
- package/dist/session-runtime/paths.js +92 -0
- package/dist/session-runtime/paths.js.map +1 -0
- package/dist/session-runtime/protocol.d.ts +22 -0
- package/dist/session-runtime/protocol.js +149 -0
- package/dist/session-runtime/protocol.js.map +1 -0
- package/dist/session-runtime/replay-buffer.d.ts +12 -0
- package/dist/session-runtime/replay-buffer.js +50 -0
- package/dist/session-runtime/replay-buffer.js.map +1 -0
- package/dist/session-runtime/store.d.ts +14 -0
- package/dist/session-runtime/store.js +143 -0
- package/dist/session-runtime/store.js.map +1 -0
- package/dist/session-runtime/types.d.ts +102 -0
- package/dist/session-runtime/types.js +2 -0
- package/dist/session-runtime/types.js.map +1 -0
- package/dist/store/logs.js +17 -6
- package/dist/store/logs.js.map +1 -1
- package/dist/store/plan.d.ts +2 -0
- package/dist/store/plan.js.map +1 -1
- package/dist/store/session-workspace.js +2 -1
- package/dist/store/session-workspace.js.map +1 -1
- package/dist/tools/definitions.js +18 -0
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/external-tools.d.ts +30 -0
- package/dist/tools/external-tools.js +52 -0
- package/dist/tools/external-tools.js.map +1 -0
- package/dist/tools/registry.js +36 -5
- package/dist/tools/registry.js.map +1 -1
- package/dist/tui-v2/bootstrap/start-tui-v2.d.ts +1 -0
- package/dist/tui-v2/bootstrap/start-tui-v2.js +16 -0
- package/dist/tui-v2/bootstrap/start-tui-v2.js.map +1 -1
- package/dist/tui-v2/components/completion/completion-menu.d.ts +4 -6
- package/dist/tui-v2/components/completion/completion-menu.js +34 -16
- package/dist/tui-v2/components/completion/completion-menu.js.map +1 -1
- package/dist/tui-v2/components/composer/composer-input-box.js +3 -1
- package/dist/tui-v2/components/composer/composer-input-box.js.map +1 -1
- package/dist/tui-v2/components/modal/secret-modal.js +6 -4
- package/dist/tui-v2/components/modal/secret-modal.js.map +1 -1
- package/dist/tui-v2/components/modal/text-editor-modal.d.ts +19 -0
- package/dist/tui-v2/components/modal/text-editor-modal.js +85 -0
- package/dist/tui-v2/components/modal/text-editor-modal.js.map +1 -0
- package/dist/tui-v2/components/overlay/overlay-host.js +2 -1
- package/dist/tui-v2/components/overlay/overlay-host.js.map +1 -1
- package/dist/tui-v2/components/transcript/compacted-row.js +12 -3
- package/dist/tui-v2/components/transcript/compacted-row.js.map +1 -1
- package/dist/tui-v2/components/transcript/thinking-block.d.ts +9 -1
- package/dist/tui-v2/components/transcript/thinking-block.js +253 -49
- package/dist/tui-v2/components/transcript/thinking-block.js.map +1 -1
- package/dist/tui-v2/components/transcript/thinking-presentation.d.ts +46 -0
- package/dist/tui-v2/components/transcript/thinking-presentation.js +84 -0
- package/dist/tui-v2/components/transcript/thinking-presentation.js.map +1 -0
- package/dist/tui-v2/components/transcript/transcript-row.d.ts +2 -0
- package/dist/tui-v2/components/transcript/transcript-row.js +7 -2
- package/dist/tui-v2/components/transcript/transcript-row.js.map +1 -1
- package/dist/tui-v2/components/transcript/transcript-view.js +195 -83
- package/dist/tui-v2/components/transcript/transcript-view.js.map +1 -1
- package/dist/tui-v2/composer/composer-editor.js +54 -39
- package/dist/tui-v2/composer/composer-editor.js.map +1 -1
- package/dist/tui-v2/composer/composer-highlight.d.ts +20 -0
- package/dist/tui-v2/composer/composer-highlight.js +97 -0
- package/dist/tui-v2/composer/composer-highlight.js.map +1 -0
- package/dist/tui-v2/composer/textarea-keybindings.d.ts +5 -0
- package/dist/tui-v2/composer/textarea-keybindings.js +12 -0
- package/dist/tui-v2/composer/textarea-keybindings.js.map +1 -1
- package/dist/ui/mentions.js +4 -1
- package/dist/ui/mentions.js.map +1 -1
- package/dist/ui-core/actions/action-id.d.ts +1 -1
- package/dist/ui-core/actions/action-id.js +1 -0
- package/dist/ui-core/actions/action-id.js.map +1 -1
- package/dist/ui-core/actions/format-shortcuts.js +5 -0
- package/dist/ui-core/actions/format-shortcuts.js.map +1 -1
- package/dist/ui-core/actions/keymap.js +3 -0
- package/dist/ui-core/actions/keymap.js.map +1 -1
- package/dist/ui-core/bootstrap/composition-root.d.ts +7 -0
- package/dist/ui-core/bootstrap/composition-root.js +7 -1
- package/dist/ui-core/bootstrap/composition-root.js.map +1 -1
- package/dist/ui-core/commands/command-handlers.js +5 -2
- package/dist/ui-core/commands/command-handlers.js.map +1 -1
- package/dist/ui-core/commands/config-commands.d.ts +1 -0
- package/dist/ui-core/commands/config-commands.js +6 -0
- package/dist/ui-core/commands/config-commands.js.map +1 -1
- package/dist/ui-core/commands/mcp-commands.d.ts +3 -0
- package/dist/ui-core/commands/mcp-commands.js +310 -0
- package/dist/ui-core/commands/mcp-commands.js.map +1 -0
- package/dist/ui-core/commands/picker-commands.d.ts +1 -1
- package/dist/ui-core/commands/picker-commands.js +70 -27
- package/dist/ui-core/commands/picker-commands.js.map +1 -1
- package/dist/ui-core/commands/session-commands.js +1 -0
- package/dist/ui-core/commands/session-commands.js.map +1 -1
- package/dist/ui-core/composer/completion-viewport.d.ts +40 -0
- package/dist/ui-core/composer/completion-viewport.js +105 -0
- package/dist/ui-core/composer/completion-viewport.js.map +1 -0
- package/dist/ui-core/controllers/overlay-controller.d.ts +24 -3
- package/dist/ui-core/controllers/overlay-controller.js +35 -4
- package/dist/ui-core/controllers/overlay-controller.js.map +1 -1
- package/dist/ui-core/rendering/artifact-pager-source.d.ts +1 -0
- package/dist/ui-core/rendering/artifact-pager-source.js +67 -1
- package/dist/ui-core/rendering/artifact-pager-source.js.map +1 -1
- package/dist/ui-core/rendering/duration.d.ts +3 -1
- package/dist/ui-core/rendering/duration.js +14 -0
- package/dist/ui-core/rendering/duration.js.map +1 -1
- package/dist/ui-core/rendering/exit-summary.js +4 -4
- package/dist/ui-core/rendering/format-help.js +4 -0
- package/dist/ui-core/rendering/format-help.js.map +1 -1
- package/dist/ui-core/rendering/intro-header.js +4 -4
- package/dist/ui-core/rendering/open-tool-output.js +90 -32
- package/dist/ui-core/rendering/open-tool-output.js.map +1 -1
- package/dist/ui-core/rendering/theme.d.ts +5 -3
- package/dist/ui-core/rendering/theme.js +8 -4
- package/dist/ui-core/rendering/theme.js.map +1 -1
- package/dist/ui-core/rendering/wordmark.d.ts +2 -2
- package/dist/ui-core/rendering/wordmark.js +62 -62
- package/dist/ui-core/rendering/wordmark.js.map +1 -1
- package/dist/ui-core/state/thinking-copy.d.ts +13 -0
- package/dist/ui-core/state/thinking-copy.js +33 -0
- package/dist/ui-core/state/thinking-copy.js.map +1 -0
- package/dist/ui-core/state/transcript-hydrate.js +20 -0
- package/dist/ui-core/state/transcript-hydrate.js.map +1 -1
- package/dist/ui-core/state/transcript-reducer.js +140 -62
- package/dist/ui-core/state/transcript-reducer.js.map +1 -1
- package/dist/ui-core/state/transcript-store.d.ts +10 -0
- package/dist/ui-core/state/transcript-store.js +235 -31
- package/dist/ui-core/state/transcript-store.js.map +1 -1
- package/dist/ui-core/state/transcript-types.d.ts +10 -0
- package/dist/ui-core/state/transcript-types.js +1 -0
- package/dist/ui-core/state/transcript-types.js.map +1 -1
- package/dist/ui-core/state/transcript-window.d.ts +32 -0
- package/dist/ui-core/state/transcript-window.js +63 -0
- package/dist/ui-core/state/transcript-window.js.map +1 -0
- package/dist/version.generated.d.ts +2 -2
- package/dist/version.generated.js +2 -2
- package/dist/version.generated.js.map +1 -1
- package/package.json +1 -1
- package/dist/tui-v2/composer/skill-highlight.d.ts +0 -3
- package/dist/tui-v2/composer/skill-highlight.js +0 -63
- package/dist/tui-v2/composer/skill-highlight.js.map +0 -1
package/README.md
CHANGED
|
@@ -19,8 +19,10 @@ Two things make it practical for everyday use:
|
|
|
19
19
|
- **Scope-based pentesting.** Opt-in engagement scope with authorized/excluded targets, allowed phases, rate and concurrency ceilings, redirect and DNS-rebinding escape detection, and out-of-scope flagging — designed for authorized pentests and bug-bounty programs.
|
|
20
20
|
- **Real building & debugging.** Scaffolds apps, edits code surgically, installs packages, runs builds/tests, starts dev servers as background jobs, and probes them before reporting success.
|
|
21
21
|
- **Durable plans.** `plan.create` / `task.update` drive a live checklist that survives context compaction and reloads with `/history` — the agent works task-by-task and won't fake completion.
|
|
22
|
+
- **Durable agent sessions.** Interactive sessions run behind an authenticated local PTY broker, so an agent keeps working after `/minimise`, an SSH disconnect, or switching to another history session; `clai --resume <id>` reattaches to the same live UI and output stream.
|
|
22
23
|
- **Persistent interactive terminals.** Conversation-owned PTY or pipe sessions keep REPLs such as Python, Metasploit, Meterpreter, database consoles, and debuggers open across model turns. The agent can send follow-up input, read incremental output, resize, interrupt, and close them without losing state.
|
|
23
24
|
- **Native + text tool calling.** Uses provider-native function calling where available, with a text-fence fallback (`toolCalling: auto|native|text`).
|
|
25
|
+
- **MCP, explicitly controlled.** Discovers local stdio and remote HTTP/SSE servers from project and compatible inherited configs. MCP tools are off by default; `/mcp` inspects and adds servers, and picking one drops an editable `@mcp:<server>` token into your prompt — stack as many as you need, delete one with backspace, or switch the whole session on with `/mcp all`.
|
|
24
26
|
- **Safety gate you control.** Every action is classified safe / confirm / block; deletes always confirm with a preview; destructive patterns are blocked.
|
|
25
27
|
|
|
26
28
|
---
|
|
@@ -435,7 +437,7 @@ You own authorization; clai still gates risk on every action:
|
|
|
435
437
|
|
|
436
438
|
## Terminal UI
|
|
437
439
|
|
|
438
|
-
The old line REPL has been removed — there are only full surfaces now. An OpenTUI full-screen console is selected for a sufficiently large interactive POSIX terminal. The classic Ink UI is selected on Windows, on smaller terminals, or with `--classic`; non-TTY prompts use the noninteractive stream renderer. In the classic UI, mouse reporting is on by default so wheel swipes scroll the live tail and panels instead of being misread as prompt-history keys; native text selection stays one modifier away (Shift/Option/Fn), and `CLAI_CLASSIC_MOUSE=0` turns mouse reporting off. The interactive surfaces provide streaming chat, nested tool cards (including `tool.batch` sub-calls), file diffs, a live plan pane, pickers, history, and secure masked key prompts.
|
|
440
|
+
The old line REPL has been removed — there are only full surfaces now. An OpenTUI full-screen console is selected for a sufficiently large interactive POSIX terminal. The classic Ink UI is selected on Windows, on smaller terminals, or with `--classic`; non-TTY prompts use the noninteractive stream renderer. In the classic UI, mouse reporting is on by default so wheel swipes scroll the live tail and panels instead of being misread as prompt-history keys; native text selection stays one modifier away (Shift/Option/Fn), and `CLAI_CLASSIC_MOUSE=0` turns mouse reporting off. The interactive surfaces provide streaming chat, nested tool cards (including `tool.batch` sub-calls), file diffs, a live plan pane, pickers, history, and secure masked key prompts. MCP tools stay off by default; picking a server with `/mcp` inserts an aqua `@mcp:<server>` token into the prompt you are typing — several tokens can coexist, backspace deletes one like any other text, and `all` / `off` add no token. MCP counts never appear in status bars.
|
|
439
441
|
|
|
440
442
|
| Action | Key |
|
|
441
443
|
|--------|-----|
|
|
@@ -446,15 +448,38 @@ The old line REPL has been removed — there are only full surfaces now. An Open
|
|
|
446
448
|
| Plan pane / plan detail | `Ctrl+H` / `Ctrl+P` |
|
|
447
449
|
| Background jobs | `Ctrl+J` |
|
|
448
450
|
| Expand thinking / tool output | `Ctrl+T` / `Ctrl+O` |
|
|
451
|
+
| Copy the focused thinking block | `c` |
|
|
449
452
|
| Search transcript | `Ctrl+R` |
|
|
450
453
|
| Copy selection | `Ctrl+Shift+C` |
|
|
451
454
|
| Commands / file mentions | `/` · `@` |
|
|
452
|
-
|
|
|
455
|
+
| MCP servers / project config | `/mcp` |
|
|
456
|
+
| Command help / shortcut reference | `Ctrl+G` / `/shortcuts` |
|
|
457
|
+
|
|
458
|
+
Completed thinking collapses to one clickable `✦ Thought for 3.2s` line; clicking it (or `Ctrl+T`) opens the reasoning in a card that scrolls internally when the reasoning is long. Clicking a card focuses it — the border turns violet and the wheel scrolls that card instead of the chat, even at its first and last row — while an unfocused card dims, shows `click to focus`, and leaves the wheel to the transcript. Moving the pointer out or clicking elsewhere releases it, and `c` copies the focused block's full reasoning and then releases it.
|
|
453
459
|
|
|
454
460
|
Tool cards show the command/input clearly, with a live elapsed timer next to the command name while they run (the final duration stays visible afterwards), and keep long scan tails in an expandable OUTPUT pager (search, copy, export). File writes show a diff preview. When the agent finishes each prompt — naturally or aborted — a `✻ Worked for 1m16s` row is appended under the response, and it is restored when the session is resumed from `/history`. The status line names what the agent is actually doing right now — `responding` while streaming, `compacting` during auto or manual context compaction — instead of holding the last tool name. Prompts typed while the agent is busy are queued and run automatically in order once the turn settles; the queue pauses only when the previous turn was cancelled, errored, or stopped by the loop guard. Compaction cards preserve session memory without dropping the plan, and `/history` restores full sessions — prompts, tool results, and the matching plan — even after an abort or autosave.
|
|
455
461
|
|
|
456
462
|
On exit, both interactive surfaces leave the alternate screen and print a sign-off card on the normal terminal: the wordmark beside a labelled block — session title, folder, elapsed time and message count, reasoning/cache token notes, and the command that reopens the session — followed by the same per-provider/model token table `/usage` shows. Resuming is `clai --resume <id>` (a unique id prefix is enough, and `-c/--continue` picks the newest session for the current directory). Sessions that were never persisted (`--no-history`, private mode, or nothing sent) say so instead of offering a resume command. The card is borderless and reflows down to very narrow terminals: the wordmark drops from six rows to four, then the block stacks beneath it, and labels give way before the resume command is ever shortened.
|
|
457
463
|
|
|
464
|
+
### Background sessions, minimise, and SSH reattach
|
|
465
|
+
|
|
466
|
+
Normal persistent interactive launches use a per-session local PTY broker. The UI and agent run inside that broker-owned terminal, while the shell process you interact with is a disposable client. This keeps the exact same live UI, pending confirmation, queue, tools, MCP connections, and terminal subprocesses alive when the client goes away.
|
|
467
|
+
|
|
468
|
+
- `/minimise` (also `/minimize`) detaches immediately and returns the shell prompt without cancelling the current turn. It prints the session id and the exact `clai --resume <id>` command.
|
|
469
|
+
- An SSH or terminal disconnect has the same detach behavior. SSH into the VM again as the same OS user and run `clai --resume <id>`; `clai -c` prefers the newest live session in the current directory.
|
|
470
|
+
- `/history` marks running, attached, and detached sessions. Selecting another session attaches or starts its own runtime instead of loading over a running agent, so the outgoing agent continues independently.
|
|
471
|
+
- One terminal controls a session at a time. Attaching from another terminal safely transfers control and releases the old terminal; this prevents duplicate keystrokes while still allowing cross-computer SSH takeover.
|
|
472
|
+
- The broker stores only bounded terminal replay (2 MiB), uses an authenticated user-only Unix socket or Windows named pipe, and keeps runtime metadata/locks user-readable only. It never opens a TCP port.
|
|
473
|
+
- A detached runtime stays alive while a turn, compaction, queued prompt, or responder job is active. Once truly idle and detached, it exits after 30 minutes by default; the saved session still resumes normally without keeping idle processes forever.
|
|
474
|
+
- `--no-history`, private mode, non-TTY/one-shot runs, and systems without a usable PTY retain the existing direct foreground behavior. `/minimise` reports that background detach is unavailable instead of partially detaching.
|
|
475
|
+
|
|
476
|
+
Optional controls:
|
|
477
|
+
|
|
478
|
+
```sh
|
|
479
|
+
CLAI_SESSION_RUNTIME_IDLE_MS=1800000 # detached idle lifetime (1 minute–24 hours)
|
|
480
|
+
CLAI_DISABLE_SESSION_RUNTIME=1 # force legacy direct foreground ownership
|
|
481
|
+
```
|
|
482
|
+
|
|
458
483
|
---
|
|
459
484
|
|
|
460
485
|
## Slash commands
|
|
@@ -468,6 +493,7 @@ On exit, both interactive surfaces leave the alternate screen and print a sign-o
|
|
|
468
493
|
| `/effort [level]` · `/reasoning [level]` | Thinking / reasoning effort |
|
|
469
494
|
| `/freeonly [on\|off]` · `/fallback [on\|off]` | Free-only filter · cross-provider fallback |
|
|
470
495
|
| `/search [provider]` · `/search-provider` | Choose web-search backend |
|
|
496
|
+
| `/mcp [server\|all\|off\|list\|status\|tools\|locations\|refresh]` | Browse and select MCP servers; add/reconnect servers and inspect project/inherited configuration |
|
|
471
497
|
| `/scope [show\|add\|new\|clear]` | Engagement scope |
|
|
472
498
|
| `/output [last\|id\|list]` | Open full tool output (also `Ctrl+O`) |
|
|
473
499
|
| `/jobs` | Background jobs (also `Ctrl+J`) |
|
|
@@ -477,6 +503,7 @@ On exit, both interactive surfaces leave the alternate screen and print a sign-o
|
|
|
477
503
|
| `/cwd <path>` | Change working directory |
|
|
478
504
|
| `/think` · `/thinking` | Show thinking from the last response |
|
|
479
505
|
| `/privacy [...]` | Private mode · clear history/logs/artifacts |
|
|
506
|
+
| `/minimise` · `/minimize` | Detach this terminal while the live session continues in the background |
|
|
480
507
|
| `/update` · `/help` · `/shortcuts` · `/exit` | Housekeeping |
|
|
481
508
|
|
|
482
509
|
---
|
|
@@ -490,7 +517,7 @@ clai [prompt...] # interactive UI, or one-shot with a prom
|
|
|
490
517
|
--show-thinking --verbose --quiet # one-shot stream controls
|
|
491
518
|
--tui --classic
|
|
492
519
|
--ui <tui|v2|opentui|classic|legacy|ink> # aliases; ignored with a prompt
|
|
493
|
-
--resume <sessionId> -c/--continue # reopen
|
|
520
|
+
--resume <sessionId> -c/--continue # reattach live or reopen saved session; ignored with a prompt
|
|
494
521
|
|
|
495
522
|
clai set <provider> [key] # --from-env <VAR> | --stdin | --url <url> (repeatable) | --skip-ping
|
|
496
523
|
clai unset <provider> # remove all keys for a provider (--url = endpoint URLs instead)
|
|
@@ -524,6 +551,65 @@ enabled with `CLAI_SHOW_THINKING=1`.
|
|
|
524
551
|
|
|
525
552
|
---
|
|
526
553
|
|
|
554
|
+
## Model Context Protocol (MCP)
|
|
555
|
+
|
|
556
|
+
clai can discover and call tools from local or remote MCP servers. MCP tools are **off by default** and are not sent to the model until a prompt mentions a server or the session is switched on with `/mcp all`. Run `/mcp` to discover configured servers and open the shared picker in Classic or OpenTUI. Picking a server inserts an aqua `@mcp:<server>` token into the composer text, exactly like a `skill:` mention: it is ordinary editable text, so backspace removes it, and several tokens select several servers for that prompt. `all` and `off` insert no token.
|
|
557
|
+
|
|
558
|
+
### Project configuration
|
|
559
|
+
|
|
560
|
+
The native project file is `.clai/mcp.json`. It accepts JSON or JSONC and the common `servers` / `mcpServers` shapes. A minimal configuration can mix stdio and Streamable HTTP servers:
|
|
561
|
+
|
|
562
|
+
```json
|
|
563
|
+
{
|
|
564
|
+
"servers": {
|
|
565
|
+
"local": {
|
|
566
|
+
"command": "my-mcp-server",
|
|
567
|
+
"args": ["--root", "${workspaceFolder}"],
|
|
568
|
+
"env": {
|
|
569
|
+
"MCP_TOKEN": "${env:MCP_TOKEN}"
|
|
570
|
+
}
|
|
571
|
+
},
|
|
572
|
+
"remote": {
|
|
573
|
+
"url": "https://mcp.example.com/mcp",
|
|
574
|
+
"headers": {
|
|
575
|
+
"Authorization": "Bearer ${env:MCP_TOKEN}"
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
```
|
|
581
|
+
|
|
582
|
+
A `command` entry uses stdio. A `url` entry uses Streamable HTTP by default; set `"type": "sse"` for a legacy SSE endpoint. `${workspaceFolder}`, `${env:NAME}` / `${env.NAME}`, and compatible `${input:name}` substitutions are resolved at discovery time, and resolved secret values are redacted from diagnostics.
|
|
583
|
+
|
|
584
|
+
The picker can add one server without hand-editing the file: choose **+ add MCP server** and a full multiline editor opens — visible caret, arrow-key and word/line navigation, mid-text edits, selection, and multi-line paste. `Enter` inserts a newline, `Ctrl+S` saves, `Esc` cancels. If the JSON does not validate, the editor reopens with your text intact and the parse error in the header, so a long paste is never retyped. You can also supply the fragment inline:
|
|
585
|
+
|
|
586
|
+
```text
|
|
587
|
+
/mcp add {"name":"docs","command":"docs-server","args":[]}
|
|
588
|
+
```
|
|
589
|
+
|
|
590
|
+
The add flow accepts one named object or a one-entry `servers` / `mcpServers` fragment, validates it, then atomically merges it into the current project `.clai/mcp.json` with deterministic server ordering and restrictive permissions. Existing unrelated metadata is preserved.
|
|
591
|
+
|
|
592
|
+
clai also inherits compatible configuration from `CLAI_MCP_CONFIG` (an OS-delimited file list), ancestor `.clai/mcp.json` and `.mcp.json` files, repository `.github/mcp.json` and `.vscode/mcp.json`, clai user config, and supported Copilot, Claude, and VS Code user locations. Higher-precedence definitions deterministically shadow inherited servers with the same name. `/mcp locations` shows the exact project target and inherited paths for the current workspace.
|
|
593
|
+
|
|
594
|
+
### Select and inspect servers
|
|
595
|
+
|
|
596
|
+
```text
|
|
597
|
+
/mcp # picker: add, off, all, or one server
|
|
598
|
+
/mcp docs # drop @mcp:docs into the prompt (repeat for more servers)
|
|
599
|
+
/mcp all # expose tools from every live server
|
|
600
|
+
/mcp off # default: expose no MCP tools
|
|
601
|
+
/mcp list # sources, transports, state, selection, and catalog
|
|
602
|
+
/mcp status # live, failed, and invalid server details
|
|
603
|
+
/mcp tools [server] # canonical mcp.<server>.<tool> names
|
|
604
|
+
/mcp locations # project and inherited configuration paths
|
|
605
|
+
/mcp refresh # rediscover configs and live tools
|
|
606
|
+
/mcp reconnect docs # restart one server connection
|
|
607
|
+
```
|
|
608
|
+
|
|
609
|
+
Static built-in tools always remain first; selected MCP definitions are appended in deterministic order as `mcp.<server>.<tool>`. A tool explicitly annotated read-only can run under the normal safe/parallel policy. Unmarked, mutating, or destructive MCP tools require the usual confirmation, and ask mode exposes only safe tools. Server descriptions and results are treated as untrusted data, secrets are redacted, response sizes and lifecycles are bounded, and HTTP credentials are never forwarded through redirects.
|
|
610
|
+
|
|
611
|
+
---
|
|
612
|
+
|
|
527
613
|
## Built-in tools
|
|
528
614
|
|
|
529
615
|
| Group | Tools |
|
|
@@ -575,7 +661,7 @@ Search-provider keys are multi-key and rotate just like model providers.
|
|
|
575
661
|
|
|
576
662
|
## Per-project context
|
|
577
663
|
|
|
578
|
-
Drop a `.clai/context.md` in a repo and its contents are injected every turn — lab topology, in-scope hosts, stack assumptions, coding conventions, or anything the agent should always know for that project.
|
|
664
|
+
Drop a `.clai/context.md` in a repo and its contents are injected every turn — lab topology, in-scope hosts, stack assumptions, coding conventions, or anything the agent should always know for that project. Project-scoped MCP servers belong in `.clai/mcp.json`; use `/mcp locations` to see that target plus every inherited compatible source.
|
|
579
665
|
|
|
580
666
|
---
|
|
581
667
|
|
|
@@ -647,6 +733,7 @@ clai/
|
|
|
647
733
|
│ ├─ index.ts # CLI entry + subcommands
|
|
648
734
|
│ ├─ agent/ # loop, plans, compaction, resume orientation, tool parsing
|
|
649
735
|
│ ├─ llm/ # 18 providers, streaming, native tools, key rotation + fallback
|
|
736
|
+
│ ├─ mcp/ # discovery, validation, transports, lifecycle, and tool dispatch
|
|
650
737
|
│ ├─ tools/ # fs, shell, net, http, web, pentest, batch, plan
|
|
651
738
|
│ ├─ safety/ # risk classifier + engagement (scope) policy
|
|
652
739
|
│ ├─ store/ # config, history, keys, plans, scope
|
|
@@ -30,11 +30,9 @@ export interface CompactionSummaryExecution {
|
|
|
30
30
|
readonly onToken?: ((text: string, replace?: boolean) => void) | undefined;
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
* strict prefix of this request, so APC providers serve it entirely from
|
|
37
|
-
* cache and only the tail + instruction bill as fresh input.
|
|
33
|
+
* Cache-preserving compaction history: the last successful request's text and
|
|
34
|
+
* protocol timeline, any appended history, then the compaction instruction.
|
|
35
|
+
* Binary image payloads are deliberately omitted from this text operation.
|
|
38
36
|
*/
|
|
39
37
|
export declare function buildCompactionReplayMessages(baseRequest: SuccessfulRequestSnapshot, history: readonly ChatMessage[], userPrompt: string): ChatMessage[];
|
|
40
38
|
export interface CompactionReplayPlan {
|
|
@@ -18,6 +18,128 @@ const COMPACTION_ERROR_RETRY_DELAY_MS = 1_500;
|
|
|
18
18
|
* summary runs, so the plan must leave room for them.
|
|
19
19
|
*/
|
|
20
20
|
const REPLAY_PLAN_SLACK_TOKENS = 4_096;
|
|
21
|
+
const COMPACTION_THINKING = {
|
|
22
|
+
enabled: false,
|
|
23
|
+
effort: "low",
|
|
24
|
+
};
|
|
25
|
+
function cloneTextOnlyMessage(message) {
|
|
26
|
+
const clone = structuredClone(message);
|
|
27
|
+
delete clone.images;
|
|
28
|
+
return clone;
|
|
29
|
+
}
|
|
30
|
+
function cloneCompatibilityMessage(message) {
|
|
31
|
+
const clone = cloneTextOnlyMessage(message);
|
|
32
|
+
delete clone.reasoningBlock;
|
|
33
|
+
delete clone.reasoningArtifacts;
|
|
34
|
+
return clone;
|
|
35
|
+
}
|
|
36
|
+
function errorStatus(error) {
|
|
37
|
+
if (!error || typeof error !== "object" || !("status" in error)) {
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
const status = Number(error.status);
|
|
41
|
+
return Number.isFinite(status) ? status : undefined;
|
|
42
|
+
}
|
|
43
|
+
function errorText(error) {
|
|
44
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
45
|
+
const body = error && typeof error === "object" && "body" in error
|
|
46
|
+
? String(error.body ?? "")
|
|
47
|
+
: "";
|
|
48
|
+
return `${message}\n${body}`.trim();
|
|
49
|
+
}
|
|
50
|
+
function isRequestShapeRejection(error, signal) {
|
|
51
|
+
if (streamAlreadyEmitted(error) || isAbortError(error, signal))
|
|
52
|
+
return false;
|
|
53
|
+
const status = errorStatus(error);
|
|
54
|
+
if (status !== 400 && status !== 422)
|
|
55
|
+
return false;
|
|
56
|
+
const text = errorText(error);
|
|
57
|
+
return !/context length|maximum context|context window|prompt too long|too many tokens|model (?:is )?not found|unknown model|content policy|safety policy|moderation|unauthori[sz]ed|api key/i.test(text);
|
|
58
|
+
}
|
|
59
|
+
const REJECTABLE_WIRE_FIELDS = [
|
|
60
|
+
"chat_template_kwargs",
|
|
61
|
+
"enable_thinking",
|
|
62
|
+
"reasoning_effort",
|
|
63
|
+
"reasoning_budget",
|
|
64
|
+
"reasoning_content",
|
|
65
|
+
"parallel_tool_calls",
|
|
66
|
+
"tool_choice",
|
|
67
|
+
"stream_options",
|
|
68
|
+
"max_completion_tokens",
|
|
69
|
+
"max_tokens",
|
|
70
|
+
"temperature",
|
|
71
|
+
"top_p",
|
|
72
|
+
"image_url",
|
|
73
|
+
"images",
|
|
74
|
+
"tools",
|
|
75
|
+
"thinking",
|
|
76
|
+
"reasoning",
|
|
77
|
+
];
|
|
78
|
+
function rejectedWireField(error) {
|
|
79
|
+
const text = errorText(error)
|
|
80
|
+
.toLowerCase()
|
|
81
|
+
.replace(/\(e\.g\.\s*images? on a text-only model\)/g, "");
|
|
82
|
+
const rejection = "not support|unsupported|unknown|unrecognized|not allowed|does not accept|extra inputs are not permitted|invalid(?: request)?(?: argument| parameter| field| value)?";
|
|
83
|
+
for (const field of REJECTABLE_WIRE_FIELDS) {
|
|
84
|
+
const escaped = field.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
85
|
+
if (new RegExp(`(?:${escaped}).{0,80}(?:${rejection})`, "i").test(text) ||
|
|
86
|
+
new RegExp(`(?:${rejection}).{0,80}(?:${escaped})`, "i").test(text)) {
|
|
87
|
+
return field;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
92
|
+
function compactionCompatibilityRequest(request) {
|
|
93
|
+
const removed = [];
|
|
94
|
+
if (request.thinking !== undefined || request.forceReasoningReplay) {
|
|
95
|
+
removed.push("reasoning controls");
|
|
96
|
+
}
|
|
97
|
+
if (request.tools?.length ||
|
|
98
|
+
request.toolChoice !== undefined ||
|
|
99
|
+
request.parallelToolCalls !== undefined) {
|
|
100
|
+
removed.push("tool controls");
|
|
101
|
+
}
|
|
102
|
+
let removedArtifacts = false;
|
|
103
|
+
const messages = request.messages.map((message) => {
|
|
104
|
+
if (message.reasoningBlock || message.reasoningArtifacts?.length) {
|
|
105
|
+
removedArtifacts = true;
|
|
106
|
+
}
|
|
107
|
+
return cloneCompatibilityMessage(message);
|
|
108
|
+
});
|
|
109
|
+
if (removedArtifacts)
|
|
110
|
+
removed.push("reasoning replay artifacts");
|
|
111
|
+
if (removed.length === 0)
|
|
112
|
+
return undefined;
|
|
113
|
+
const { thinking: _thinking, forceReasoningReplay: _forceReasoningReplay, tools: _tools, toolChoice: _toolChoice, parallelToolCalls: _parallelToolCalls, ...rest } = request;
|
|
114
|
+
return {
|
|
115
|
+
request: {
|
|
116
|
+
...rest,
|
|
117
|
+
messages,
|
|
118
|
+
},
|
|
119
|
+
removed,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
function requestRejectionError(input) {
|
|
123
|
+
const field = rejectedWireField(input.error);
|
|
124
|
+
const upstream = errorText(input.error).replace(/\s+/g, " ").trim();
|
|
125
|
+
const cappedUpstream = upstream.length > 600 ? `${upstream.slice(0, 600)}…` : upstream;
|
|
126
|
+
const retry = input.retried
|
|
127
|
+
? ` after one compatibility retry${input.removed?.length ? ` without ${input.removed.join(", ")}` : ""}`
|
|
128
|
+
: "";
|
|
129
|
+
const diagnosis = field
|
|
130
|
+
? `The provider identified \`${field}\` as the rejected field.`
|
|
131
|
+
: "No image payload was sent, and the provider did not identify which request field was invalid; any image example in its generic message is not evidence that this request contained an image.";
|
|
132
|
+
const wrapped = new Error(`compaction failed: the provider rejected the text-only summary request${retry}. ${diagnosis} The original context was retained.${cappedUpstream ? ` Provider response: ${cappedUpstream}` : ""}`, { cause: input.error });
|
|
133
|
+
const status = errorStatus(input.error);
|
|
134
|
+
if (status !== undefined) {
|
|
135
|
+
Object.defineProperty(wrapped, "status", {
|
|
136
|
+
configurable: true,
|
|
137
|
+
enumerable: true,
|
|
138
|
+
value: status,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
return wrapped;
|
|
142
|
+
}
|
|
21
143
|
/**
|
|
22
144
|
* A compaction failure worth one more admission. Retryable by default: the
|
|
23
145
|
* only failures excluded are ones a retry cannot fix — aborts, partial streams
|
|
@@ -69,7 +191,7 @@ function comparableMessage(message) {
|
|
|
69
191
|
const { images: _images, ...rest } = message;
|
|
70
192
|
return JSON.stringify(rest);
|
|
71
193
|
}
|
|
72
|
-
function missingHistoryTail(requestMessages, history) {
|
|
194
|
+
function missingHistoryTail(requestMessages, history, textOnly = true) {
|
|
73
195
|
let requestIndex = 0;
|
|
74
196
|
let matchedHistory = 0;
|
|
75
197
|
while (matchedHistory < history.length) {
|
|
@@ -86,18 +208,18 @@ function missingHistoryTail(requestMessages, history) {
|
|
|
86
208
|
requestIndex = found + 1;
|
|
87
209
|
matchedHistory += 1;
|
|
88
210
|
}
|
|
89
|
-
return history
|
|
211
|
+
return history
|
|
212
|
+
.slice(matchedHistory)
|
|
213
|
+
.map((message) => textOnly ? cloneTextOnlyMessage(message) : structuredClone(message));
|
|
90
214
|
}
|
|
91
215
|
/**
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
* strict prefix of this request, so APC providers serve it entirely from
|
|
96
|
-
* cache and only the tail + instruction bill as fresh input.
|
|
216
|
+
* Cache-preserving compaction history: the last successful request's text and
|
|
217
|
+
* protocol timeline, any appended history, then the compaction instruction.
|
|
218
|
+
* Binary image payloads are deliberately omitted from this text operation.
|
|
97
219
|
*/
|
|
98
220
|
export function buildCompactionReplayMessages(baseRequest, history, userPrompt) {
|
|
99
221
|
return [
|
|
100
|
-
...baseRequest.messages.map(
|
|
222
|
+
...baseRequest.messages.map(cloneTextOnlyMessage),
|
|
101
223
|
...missingHistoryTail(baseRequest.messages, history),
|
|
102
224
|
{ role: "user", content: userPrompt },
|
|
103
225
|
];
|
|
@@ -133,12 +255,9 @@ export function planCompactionReplay(input) {
|
|
|
133
255
|
}
|
|
134
256
|
const continuationMessages = [
|
|
135
257
|
...baseRequest.messages.map((message) => structuredClone(message)),
|
|
136
|
-
...
|
|
137
|
-
];
|
|
138
|
-
const messages = [
|
|
139
|
-
...continuationMessages,
|
|
140
|
-
{ role: "user", content: input.prompt },
|
|
258
|
+
...missingHistoryTail(baseRequest.messages, input.history, false),
|
|
141
259
|
];
|
|
260
|
+
const messages = buildCompactionReplayMessages(baseRequest, input.history, input.prompt);
|
|
142
261
|
const account = (candidateMessages, compactionRequest) => accountAssembledRequest({
|
|
143
262
|
provider: baseRequest.provider,
|
|
144
263
|
model: baseRequest.model,
|
|
@@ -175,7 +294,7 @@ export async function executeCompactionSummary(execution) {
|
|
|
175
294
|
}
|
|
176
295
|
return execution.sourceMessages
|
|
177
296
|
? [
|
|
178
|
-
...execution.sourceMessages,
|
|
297
|
+
...execution.sourceMessages.map(cloneTextOnlyMessage),
|
|
179
298
|
{ role: "user", content: userPrompt },
|
|
180
299
|
]
|
|
181
300
|
: [
|
|
@@ -210,16 +329,13 @@ export async function executeCompactionSummary(execution) {
|
|
|
210
329
|
}
|
|
211
330
|
: {
|
|
212
331
|
temperature: 0.1,
|
|
213
|
-
|
|
214
|
-
// for openai-style gateways (TokenRouter etc.) `effort:"none"` maps to
|
|
215
|
-
// the wire value `reasoning_effort:"none"`, which many models reject
|
|
216
|
-
// ("reasoning option not supported"). "low" with enabled:false maps to
|
|
217
|
-
// no reasoning knob on those gateways while still disabling default
|
|
218
|
-
// thinking on deepseek-style models via their own mapping.
|
|
219
|
-
thinking: { enabled: false, effort: "low" },
|
|
332
|
+
thinking: COMPACTION_THINKING,
|
|
220
333
|
...(execution.allowModelFallback ? { allowModelFallback: true } : {}),
|
|
221
334
|
...(execution.tools?.length
|
|
222
|
-
? {
|
|
335
|
+
? {
|
|
336
|
+
tools: execution.tools.map((tool) => structuredClone(tool)),
|
|
337
|
+
toolChoice: "none",
|
|
338
|
+
}
|
|
223
339
|
: {}),
|
|
224
340
|
}),
|
|
225
341
|
...(execution.signal ? { signal: execution.signal } : {}),
|
|
@@ -248,9 +364,6 @@ export async function executeCompactionSummary(execution) {
|
|
|
248
364
|
}
|
|
249
365
|
}
|
|
250
366
|
const runProviderAttempt = async (attemptRequest, replace = false) => {
|
|
251
|
-
// A pinned single dispatch is what makes the one-admission contract real:
|
|
252
|
-
// without it the router can still rotate keys, fall back to another
|
|
253
|
-
// provider, or retry a capability downgrade, each resending this prompt.
|
|
254
367
|
const routerOptions = {
|
|
255
368
|
maxRetries: 0,
|
|
256
369
|
singleDispatch: true,
|
|
@@ -290,9 +403,7 @@ export async function executeCompactionSummary(execution) {
|
|
|
290
403
|
signal?.addEventListener("abort", onAbort, { once: true });
|
|
291
404
|
});
|
|
292
405
|
};
|
|
293
|
-
|
|
294
|
-
// cache-hot, so the second admission only re-bills the small fresh tail.
|
|
295
|
-
const runAttempt = async (attemptRequest, replace = false) => {
|
|
406
|
+
const runTransientAttempt = async (attemptRequest, replace = false) => {
|
|
296
407
|
try {
|
|
297
408
|
return await runProviderAttempt(attemptRequest, replace);
|
|
298
409
|
}
|
|
@@ -305,6 +416,32 @@ export async function executeCompactionSummary(execution) {
|
|
|
305
416
|
return await runProviderAttempt(attemptRequest, replace);
|
|
306
417
|
}
|
|
307
418
|
};
|
|
419
|
+
const runAttempt = async (attemptRequest, replace = false) => {
|
|
420
|
+
try {
|
|
421
|
+
return await runTransientAttempt(attemptRequest, replace);
|
|
422
|
+
}
|
|
423
|
+
catch (error) {
|
|
424
|
+
if (!isRequestShapeRejection(error, execution.signal))
|
|
425
|
+
throw error;
|
|
426
|
+
const compatibility = compactionCompatibilityRequest(attemptRequest);
|
|
427
|
+
if (!compatibility) {
|
|
428
|
+
throw requestRejectionError({ error, retried: false });
|
|
429
|
+
}
|
|
430
|
+
try {
|
|
431
|
+
return await runTransientAttempt(compatibility.request);
|
|
432
|
+
}
|
|
433
|
+
catch (retryError) {
|
|
434
|
+
if (!isRequestShapeRejection(retryError, execution.signal)) {
|
|
435
|
+
throw retryError;
|
|
436
|
+
}
|
|
437
|
+
throw requestRejectionError({
|
|
438
|
+
error: retryError,
|
|
439
|
+
retried: true,
|
|
440
|
+
removed: compatibility.removed,
|
|
441
|
+
});
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
};
|
|
308
445
|
const first = await runAttempt(request);
|
|
309
446
|
if (first.toolCalls?.length) {
|
|
310
447
|
throw new Error("compaction failed: model returned tool calls instead of a summary — original context retained");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compaction-executor.js","sourceRoot":"","sources":["../../src/agent/compaction-executor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"compaction-executor.js","sourceRoot":"","sources":["../../src/agent/compaction-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -84,15 +84,6 @@ export function chooseFinalizeRecovery(input) {
|
|
|
84
84
|
cleaned.trim().length > 0) {
|
|
85
85
|
return recoveryForFailedProbe();
|
|
86
86
|
}
|
|
87
|
-
if (input.buildLike &&
|
|
88
|
-
!input.pentestLike &&
|
|
89
|
-
!input.pentestSession &&
|
|
90
|
-
input.sawFailedLocalHttpProbe &&
|
|
91
|
-
!input.sawLocalHttpProbe &&
|
|
92
|
-
budgetRemaining(recovery, "failedProbe") &&
|
|
93
|
-
cleaned.trim().length > 0) {
|
|
94
|
-
return recoveryForFailedProbe();
|
|
95
|
-
}
|
|
96
87
|
if ((input.pentestLike || input.pentestSession) &&
|
|
97
88
|
budgetRemaining(recovery, "shallowPentest") &&
|
|
98
89
|
looksLikeShallowPentestReport(cleaned, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"finalize-gate.js","sourceRoot":"","sources":["../../src/agent/finalize-gate.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"finalize-gate.js","sourceRoot":"","sources":["../../src/agent/finalize-gate.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,eAAe,EACf,6BAA6B,EAC7B,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,oBAAoB,EACpB,yBAAyB,GAG1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,oCAAoC,EACpC,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAqD/B,MAAM,UAAU,sBAAsB,CACpC,KAAwB;IAExB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAE1E,MAAM,YAAY,GAChB,CAAC,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,eAAe,CAAC;QAC9C,CAAC,KAAK,CAAC,gBAAgB;QACvB,eAAe,KAAK,CAAC;QACrB,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,iBAAiB,GACrB,CAAC,KAAK,CAAC,qBAAqB;QAC5B,oCAAoC,CAAC,OAAO,CAAC,CAAC;IAEhD,MAAM,2BAA2B,GAC/B,eAAe,KAAK,CAAC;QACrB,YAAY;QACZ,CAAC,CAAC,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,iBAAiB,CAAC;YAChD,CAAC,KAAK,CAAC,kBAAkB,CAAC;QAC5B,CAAC,KAAK,CAAC,YAAY;YACjB,KAAK,CAAC,eAAe;YACrB,CAAC,KAAK,CAAC,cAAc,IAAI,iBAAiB,CAAC,CAAC;QAC9C,CAAC,KAAK,CAAC,YAAY,IAAI,iBAAiB,CAAC;QACzC,CAAC,KAAK,CAAC,aAAa,IAAI,iBAAiB,CAAC,CAAC;IAC7C,IACE,KAAK,CAAC,WAAW;QACjB,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QACzB,2BAA2B,EAC3B,CAAC;QACD,IAAI,MAAkC,CAAC;QACvC,IAAI,iBAAiB,IAAI,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;YAC/D,MAAM,GAAG,yBAAyB,CAAC,aAAa,CAAC,CAAC;QACpD,CAAC;aAAM,IACL,eAAe,CAAC,QAAQ,EAAE,cAAc,CAAC;YACzC,KAAK,CAAC,eAAe;YACrB,KAAK,CAAC,YAAY,EAClB,CAAC;YACD,MAAM,GAAG,oBAAoB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAC5D,CAAC;aAAM,IACL,eAAe,CAAC,QAAQ,EAAE,cAAc,CAAC;YACzC,KAAK,CAAC,eAAe,EACrB,CAAC;YACD,MAAM,GAAG,oBAAoB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;QAC1D,CAAC;aAAM,IACL,eAAe,CAAC,QAAQ,EAAE,cAAc,CAAC;YACzC,KAAK,CAAC,iBAAiB,EACvB,CAAC;YACD,MAAM,GAAG,oBAAoB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QACtD,CAAC;aAAM,IACL,eAAe,CAAC,QAAQ,EAAE,cAAc,CAAC;YACzC,KAAK,CAAC,aAAa;YACnB,YAAY,EACZ,CAAC;YACD,MAAM,GAAG,oBAAoB,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;QACnE,CAAC;aAAM,IACL,eAAe,CAAC,QAAQ,EAAE,cAAc,CAAC;YACzC,KAAK,CAAC,aAAa,EACnB,CAAC;YACD,MAAM,GAAG,oBAAoB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,eAAe,CAAC,QAAQ,EAAE,cAAc,CAAC,EAAE,CAAC;YACrD,MAAM,GAAG,oBAAoB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;IAC5B,CAAC;IAED,IACE,KAAK,CAAC,UAAU;QAChB,CAAC,KAAK,CAAC,kBAAkB;QACzB,CAAC,KAAK,CAAC,kBAAkB;QACzB,eAAe,CAAC,QAAQ,EAAE,WAAW,CAAC,EACtC,CAAC;QACD,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;YACpC,OAAO,sBAAsB,CAAC,aAAa,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,IACE,KAAK,CAAC,SAAS;QACf,CAAC,KAAK,CAAC,WAAW;QAClB,CAAC,KAAK,CAAC,cAAc;QACrB,KAAK,CAAC,YAAY;QAClB,KAAK,CAAC,aAAa;QACnB,CAAC,KAAK,CAAC,mBAAmB;QAC1B,CAAC,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,uBAAuB,CAAC;QACtD,eAAe,GAAG,CAAC;QACnB,eAAe,CAAC,QAAQ,EAAE,aAAa,CAAC,EACxC,CAAC;QACD,OAAO,yBAAyB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACtD,CAAC;IAED,IACE,KAAK,CAAC,SAAS;QACf,CAAC,KAAK,CAAC,WAAW;QAClB,CAAC,KAAK,CAAC,cAAc;QACrB,KAAK,CAAC,uBAAuB;QAC7B,CAAC,KAAK,CAAC,iBAAiB;QACxB,eAAe,CAAC,QAAQ,EAAE,aAAa,CAAC;QACxC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EACzB,CAAC;QACD,OAAO,sBAAsB,EAAE,CAAC;IAClC,CAAC;IAED,IACE,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,cAAc,CAAC;QAC3C,eAAe,CAAC,QAAQ,EAAE,gBAAgB,CAAC;QAC3C,6BAA6B,CAAC,OAAO,EAAE;YACrC,eAAe;YACf,aAAa,EAAE,KAAK,CAAC,oBAAoB;SAC1C,CAAC,EACF,CAAC;QACD,OAAO,yBAAyB,EAAE,CAAC;IACrC,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -47,11 +47,11 @@ export function planModeResearchReminder(opts) {
|
|
|
47
47
|
? "workspace/stack context, constraints, and architecture facts"
|
|
48
48
|
: "context and discovery that will improve the plan";
|
|
49
49
|
return (`\n\n[plan-mode reminder · step ${step}] ` +
|
|
50
|
-
`This is
|
|
51
|
-
`
|
|
52
|
-
`
|
|
53
|
-
`
|
|
54
|
-
`When
|
|
50
|
+
`This is a calibration note, not a stop order or a demand to keep collecting data. ` +
|
|
51
|
+
`Reconcile what you know against the requested outcome, material ${domain}, and the decisions the plan must make. ` +
|
|
52
|
+
`Continue research where an unresolved uncertainty could change scope, architecture, priority, safety, or verification; avoid repeating low-yield work once those decisions are supported. ` +
|
|
53
|
+
`Represent important unresolved or untested surfaces explicitly in the plan rather than hiding them or researching forever. ` +
|
|
54
|
+
`When material coverage is mapped and plan-changing uncertainty is resolved, deliver one comprehensive plan.create with evidence, assumptions, risks, ordered outcome tasks, branch conditions, and verification, then await acceptance.`);
|
|
55
55
|
}
|
|
56
56
|
/** Append reminder suffix when the gate passes; otherwise return content unchanged. */
|
|
57
57
|
export function maybeAppendPlanModeReminder(toolContent, opts) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-mode-reminders.js","sourceRoot":"","sources":["../../src/agent/plan-mode-reminders.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,4DAA4D;AAC5D,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAC3C,qDAAqD;AACrD,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAE9C,kEAAkE;AAClE,MAAM,CAAC,MAAM,mBAAmB,GAAG,2BAA2B,CAAC;AAa/D,8EAA8E;AAC9E,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,wBAAwB;QAAE,OAAO,KAAK,CAAC;IAC5E,OAAO,CAAC,IAAI,GAAG,wBAAwB,CAAC,GAAG,2BAA2B,KAAK,CAAC,CAAC;AAC/E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAAC,IAAsB;IACjE,IAAI,CAAC,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,cAAc,CAAC;QAAE,OAAO,KAAK,CAAC;IAChE,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;QAAE,OAAO,KAAK,CAAC;IAClE,OAAO,IAAI,CAAC;AACd,CAAC;AAOD;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAA0B;IACjE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,MAAM,MAAM,GACV,IAAI,CAAC,QAAQ,KAAK,SAAS;QACzB,CAAC,CAAC,gEAAgE;QAClE,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ;YAC1B,CAAC,CAAC,8DAA8D;YAChE,CAAC,CAAC,kDAAkD,CAAC;IAE3D,OAAO,CACL,kCAAkC,IAAI,IAAI;QAC1C,
|
|
1
|
+
{"version":3,"file":"plan-mode-reminders.js","sourceRoot":"","sources":["../../src/agent/plan-mode-reminders.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,4DAA4D;AAC5D,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAC3C,qDAAqD;AACrD,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAE9C,kEAAkE;AAClE,MAAM,CAAC,MAAM,mBAAmB,GAAG,2BAA2B,CAAC;AAa/D,8EAA8E;AAC9E,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,wBAAwB;QAAE,OAAO,KAAK,CAAC;IAC5E,OAAO,CAAC,IAAI,GAAG,wBAAwB,CAAC,GAAG,2BAA2B,KAAK,CAAC,CAAC;AAC/E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAAC,IAAsB;IACjE,IAAI,CAAC,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,cAAc,CAAC;QAAE,OAAO,KAAK,CAAC;IAChE,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;QAAE,OAAO,KAAK,CAAC;IAClE,OAAO,IAAI,CAAC;AACd,CAAC;AAOD;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAA0B;IACjE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,MAAM,MAAM,GACV,IAAI,CAAC,QAAQ,KAAK,SAAS;QACzB,CAAC,CAAC,gEAAgE;QAClE,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ;YAC1B,CAAC,CAAC,8DAA8D;YAChE,CAAC,CAAC,kDAAkD,CAAC;IAE3D,OAAO,CACL,kCAAkC,IAAI,IAAI;QAC1C,oFAAoF;QACpF,mEAAmE,MAAM,0CAA0C;QACnH,4LAA4L;QAC5L,6HAA6H;QAC7H,yOAAyO,CAC1O,CAAC;AACJ,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,2BAA2B,CACzC,WAAmB,EACnB,IAA6C;IAE7C,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACnD,CAAC;IACD,MAAM,IAAI,GAAG,wBAAwB,CAAC;QACpC,IAAI,EAAE,IAAI,CAAC,cAAc;QACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACzD,CAAC"}
|
|
@@ -30,6 +30,7 @@ export interface NormalizedPlanTask {
|
|
|
30
30
|
dependencies: string[];
|
|
31
31
|
dependenciesSpecified: boolean;
|
|
32
32
|
resourceLocks: string[];
|
|
33
|
+
acceptanceCriteria?: string | undefined;
|
|
33
34
|
}
|
|
34
35
|
/** Full entries including model-supplied id/name aliases (X3). */
|
|
35
36
|
export declare function normalizePlanTaskEntries(args: Record<string, unknown>): NormalizedPlanTask[];
|