feat(coding-agent): added toggle for launch tool
- Added a configuration setting `launch.enabled` to control the availability of the project-scoped launch tool. - Integrated the setting into the bash tool and tool registry to conditionally enable or disable the launch functionality. - Updated documentation and settings schema to include the new toggle.
This commit is contained in:
+2
-1
@@ -451,7 +451,7 @@ tools:
|
||||
| `tools.artifactTailBytes` | number | `20` | KB of tail kept inline on spill. |
|
||||
| `tools.artifactTailLines` | number | `500` | Max tail lines kept inline on spill. |
|
||||
|
||||
Individual built-in tools are toggled by their own keys, e.g. `bash.enabled`, `eval.py`, `eval.js`, `glob.enabled`, `grep.enabled`, `fetch.enabled`, `browser.enabled`, `astEdit.enabled`, `astGrep.enabled`, `web_search.enabled`, `inspect_image.enabled`.
|
||||
Individual built-in tools are toggled by their own keys, e.g. `bash.enabled`, `launch.enabled`, `eval.py`, `eval.js`, `glob.enabled`, `grep.enabled`, `fetch.enabled`, `browser.enabled`, `astEdit.enabled`, `astGrep.enabled`, `web_search.enabled`, `inspect_image.enabled`.
|
||||
|
||||
### Shell, eval, and LSP
|
||||
|
||||
@@ -481,6 +481,7 @@ lsp:
|
||||
| Key | Type | Default | Notes |
|
||||
|---|---|---|---|
|
||||
| `bash.enabled` | boolean | `true` | Enable the bash tool. |
|
||||
| `launch.enabled` | boolean | `true` | Enable the launch tool for shared long-running project processes. |
|
||||
| `bash.autoBackground.enabled` | boolean | `false` | Auto-background long-running commands. |
|
||||
| `bash.autoBackground.thresholdMs` | number | `60000` | Threshold before auto-backgrounding. |
|
||||
| `eval.py` | boolean | `true` | Python eval backend. `PI_PY=0` disables for the process. |
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
- Added a compact session-only model picker (Alt+P) for quick model switching without changing roles
|
||||
- Added `@` search to the Alt+P / `/switch` picker: it lists configured Ctrl+P quick roles in matching segment colors and applies the selected role's model and thinking for the current session.
|
||||
- Redesigned Agent Hub entries as two-line cards: identity (status glyph, name, agent type, parent when nested) on the left, active model + reasoning level and age right-aligned, with the task description on its own line; dropped the redundant `sub · of Main` noise
|
||||
- Added a project-scoped `launch` tool for shared long-running services and debuggers, with readiness probes, bounded logs, PTY input, restart policies, and automatic teardown after the last omp instance exits.
|
||||
- Added a project-scoped `launch` tool for shared long-running services and debuggers, with readiness probes, bounded logs, PTY input, restart policies, and automatic teardown after the last omp instance exits. Gated behind the `launch.enabled` setting (default on); when disabled the tool is withdrawn and the bash prompt drops its "use launch" guidance.
|
||||
- Added `detached` `launch` starts for standalone services that survive every omp instance and broker shutdown, then reconnect to the next broker for logs and explicit stop.
|
||||
|
||||
### Changed
|
||||
|
||||
@@ -3549,6 +3549,17 @@ export const SETTINGS_SCHEMA = {
|
||||
},
|
||||
},
|
||||
|
||||
"launch.enabled": {
|
||||
type: "boolean",
|
||||
default: true,
|
||||
ui: {
|
||||
tab: "tools",
|
||||
group: "Available Tools",
|
||||
label: "Launch",
|
||||
description: "Enable the launch tool for supervising shared long-running project processes",
|
||||
},
|
||||
},
|
||||
|
||||
"speechgen.enabled": {
|
||||
type: "boolean",
|
||||
default: false,
|
||||
|
||||
@@ -397,7 +397,7 @@ export class BashTool implements AgentTool<typeof bashSchemaBase | typeof bashSc
|
||||
hasGrep: isToolActive("grep", this.session.settings.get("grep.enabled")),
|
||||
hasGlob: isToolActive("glob", this.session.settings.get("glob.enabled")),
|
||||
hasRead: isToolActive("read", true),
|
||||
hasLaunch: isToolActive("launch", true),
|
||||
hasLaunch: isToolActive("launch", this.session.settings.get("launch.enabled")),
|
||||
hasEval: isToolActive(
|
||||
"eval",
|
||||
evalBackends.python || evalBackends.js || evalBackends.ruby || evalBackends.julia,
|
||||
|
||||
@@ -609,6 +609,7 @@ export async function createTools(session: ToolSession, toolNames?: string[]): P
|
||||
if (name === "goal") return goalEnabled && goalModeActive;
|
||||
if (name === "lsp") return enableLsp && session.settings.get("lsp.enabled");
|
||||
if (name === "bash") return session.settings.get("bash.enabled");
|
||||
if (name === "launch") return session.settings.get("launch.enabled");
|
||||
if (name === "eval") return allowEval;
|
||||
if (name === "debug") return session.settings.get("debug.enabled");
|
||||
if (name === "todo") return !includeYield && session.settings.get("todo.enabled");
|
||||
|
||||
@@ -237,6 +237,7 @@ describe("createTools", () => {
|
||||
"astGrep.enabled": false,
|
||||
"astEdit.enabled": false,
|
||||
"bash.enabled": false,
|
||||
"launch.enabled": false,
|
||||
"web_search.enabled": false,
|
||||
"browser.enabled": false,
|
||||
"inspect_image.enabled": false,
|
||||
@@ -246,6 +247,7 @@ describe("createTools", () => {
|
||||
const names = tools.map(t => t.name);
|
||||
|
||||
expect(names).not.toContain("bash");
|
||||
expect(names).not.toContain("launch");
|
||||
expect(names).not.toContain("glob");
|
||||
expect(names).not.toContain("grep");
|
||||
expect(names).not.toContain("ast_grep");
|
||||
|
||||
Reference in New Issue
Block a user