@nghyane/arcane 0.1.12 → 0.1.14
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 +28 -0
- package/package.json +21 -70
- package/scripts/format-prompts.ts +1 -3
- package/src/cli/args.ts +2 -7
- package/src/cli/config-cli.ts +1 -1
- package/src/cli/plugin-cli.ts +1 -1
- package/src/cli/setup-cli.ts +1 -1
- package/src/cli/update-cli.ts +1 -1
- package/src/cli/web-search-cli.ts +1 -1
- package/src/cli.ts +0 -1
- package/src/commands/config.ts +1 -1
- package/src/commands/grep.ts +1 -1
- package/src/commands/jupyter.ts +1 -1
- package/src/commands/plugin.ts +1 -1
- package/src/commands/setup.ts +1 -1
- package/src/commands/shell.ts +1 -1
- package/src/commands/ssh.ts +1 -1
- package/src/commands/stats.ts +1 -1
- package/src/commands/update.ts +1 -1
- package/src/config/model-registry.ts +3 -4
- package/src/config/model-resolver.ts +36 -9
- package/src/config/prompt-templates.ts +1 -9
- package/src/config/settings-schema.ts +32 -88
- package/src/config/settings.ts +3 -4
- package/src/debug/index.ts +1 -1
- package/src/debug/log-formatting.ts +1 -1
- package/src/debug/log-viewer.ts +2 -2
- package/src/discovery/helpers.ts +13 -3
- package/src/exa/company.ts +2 -7
- package/src/exa/index.ts +1 -35
- package/src/exa/linkedin.ts +2 -7
- package/src/exa/mcp-client.ts +21 -11
- package/src/exa/render.ts +30 -190
- package/src/exa/researcher.ts +2 -12
- package/src/exa/search.ts +5 -25
- package/src/exa/types.ts +3 -3
- package/src/exec/bash-executor.ts +2 -1
- package/src/exec/non-interactive-env.ts +43 -0
- package/src/export/html/index.ts +1 -1
- package/src/extensibility/custom-tools/loader.ts +1 -1
- package/src/extensibility/custom-tools/types.ts +5 -1
- package/src/extensibility/custom-tools/wrapper.ts +1 -1
- package/src/extensibility/extensions/runner.ts +1 -1
- package/src/extensibility/extensions/types.ts +1 -1
- package/src/extensibility/extensions/wrapper.ts +7 -15
- package/src/extensibility/hooks/runner.ts +1 -1
- package/src/extensibility/hooks/types.ts +1 -1
- package/src/extensibility/plugins/doctor.ts +1 -1
- package/src/index.ts +13 -13
- package/src/lsp/index.ts +77 -24
- package/src/lsp/render.ts +34 -583
- package/src/lsp/types.ts +3 -3
- package/src/lsp/utils.ts +1 -1
- package/src/main.ts +1 -1
- package/src/mcp/tool-bridge.ts +1 -24
- package/src/modes/components/assistant-message.ts +7 -7
- package/src/modes/components/bash-execution.ts +48 -113
- package/src/modes/components/bordered-loader.ts +1 -1
- package/src/modes/components/branch-summary-message.ts +13 -10
- package/src/modes/components/compaction-summary-message.ts +14 -13
- package/src/modes/components/context-group.ts +106 -0
- package/src/modes/components/custom-message.ts +4 -5
- package/src/modes/components/diff.ts +2 -2
- package/src/modes/components/dynamic-border.ts +1 -1
- package/src/modes/components/extensions/extension-dashboard.ts +2 -2
- package/src/modes/components/extensions/extension-list.ts +1 -1
- package/src/modes/components/extensions/inspector-panel.ts +8 -3
- package/src/modes/components/footer.ts +2 -2
- package/src/modes/components/history-search.ts +1 -1
- package/src/modes/components/hook-editor.ts +1 -1
- package/src/modes/components/hook-input.ts +1 -1
- package/src/modes/components/hook-message.ts +4 -5
- package/src/modes/components/hook-selector.ts +1 -1
- package/src/modes/components/index.ts +0 -2
- package/src/modes/components/keybinding-hints.ts +1 -1
- package/src/modes/components/login-dialog.ts +1 -1
- package/src/modes/components/mcp-add-wizard.ts +1 -1
- package/src/modes/components/model-selector.ts +1 -1
- package/src/modes/components/oauth-selector.ts +1 -1
- package/src/modes/components/plugin-settings.ts +1 -1
- package/src/modes/components/python-execution.ts +49 -92
- package/src/modes/components/queue-mode-selector.ts +1 -1
- package/src/modes/components/session-selector.ts +1 -1
- package/src/modes/components/settings-defs.ts +5 -10
- package/src/modes/components/settings-selector.ts +1 -1
- package/src/modes/components/show-images-selector.ts +1 -1
- package/src/modes/components/skill-message.ts +4 -4
- package/src/modes/components/status-line/segments.ts +2 -2
- package/src/modes/components/status-line/separators.ts +1 -1
- package/src/modes/components/status-line-segment-editor.ts +1 -1
- package/src/modes/components/status-line.ts +1 -1
- package/src/modes/components/theme-selector.ts +1 -1
- package/src/modes/components/thinking-selector.ts +1 -1
- package/src/modes/components/todo-display.ts +2 -4
- package/src/modes/components/todo-reminder.ts +4 -4
- package/src/modes/components/tool-execution.ts +118 -440
- package/src/modes/components/tool-image-display.ts +107 -0
- package/src/modes/components/tree-selector.ts +2 -2
- package/src/modes/components/ttsr-notification.ts +4 -17
- package/src/modes/components/user-message-selector.ts +1 -1
- package/src/modes/components/user-message.ts +9 -10
- package/src/modes/components/welcome.ts +1 -1
- package/src/modes/controllers/command-controller.ts +1 -1
- package/src/modes/controllers/event-controller.ts +58 -187
- package/src/modes/controllers/extension-ui-controller.ts +1 -1
- package/src/modes/controllers/input-controller.ts +3 -1
- package/src/modes/controllers/mcp-command-controller.ts +1 -1
- package/src/modes/controllers/selector-controller.ts +3 -26
- package/src/modes/controllers/ssh-command-controller.ts +1 -1
- package/src/modes/interactive-mode.ts +3 -7
- package/src/modes/print-mode.ts +5 -5
- package/src/modes/rpc/rpc-mode.ts +1 -1
- package/src/modes/types.ts +1 -2
- package/src/modes/utils/ui-helpers.ts +34 -32
- package/src/patch/edit-tool.ts +742 -0
- package/src/patch/index.ts +32 -898
- package/src/patch/schemas.ts +208 -0
- package/src/patch/shared.ts +83 -151
- package/src/prompts/agents/explore.md +22 -37
- package/src/prompts/agents/frontmatter.md +1 -1
- package/src/prompts/agents/init.md +2 -2
- package/src/prompts/agents/librarian.md +30 -21
- package/src/prompts/agents/oracle.md +9 -2
- package/src/prompts/agents/reviewer.md +15 -49
- package/src/prompts/agents/task.md +17 -9
- package/src/prompts/compaction/branch-summary-context.md +1 -1
- package/src/prompts/compaction/branch-summary-preamble.md +1 -1
- package/src/prompts/compaction/branch-summary.md +4 -1
- package/src/prompts/compaction/compaction-short-summary.md +1 -1
- package/src/prompts/compaction/compaction-summary-context.md +1 -1
- package/src/prompts/compaction/compaction-summary.md +4 -1
- package/src/prompts/compaction/compaction-turn-prefix.md +1 -1
- package/src/prompts/compaction/compaction-update-summary.md +1 -1
- package/src/prompts/memories/consolidation.md +1 -1
- package/src/prompts/memories/read_path.md +1 -1
- package/src/prompts/memories/stage_one_input.md +1 -1
- package/src/prompts/memories/stage_one_system.md +1 -1
- package/src/prompts/review-request.md +1 -1
- package/src/prompts/system/agent-creation-architect.md +1 -1
- package/src/prompts/system/agent-creation-user.md +1 -1
- package/src/prompts/system/custom-system-prompt.md +1 -1
- package/src/prompts/system/file-operations.md +1 -1
- package/src/prompts/system/subagent-system-prompt.md +2 -2
- package/src/prompts/system/summarization-system.md +1 -1
- package/src/prompts/system/system-prompt.md +163 -178
- package/src/prompts/system/title-system.md +1 -1
- package/src/prompts/system/ttsr-interrupt.md +1 -1
- package/src/prompts/system/verification-reminder.md +6 -0
- package/src/prompts/system/web-search.md +1 -1
- package/src/sdk.ts +0 -9
- package/src/session/agent-session.ts +244 -1459
- package/src/session/auth-storage.ts +5 -0
- package/src/session/model-controller.ts +406 -0
- package/src/session/retry-utils.ts +71 -0
- package/src/session/session-manager.ts +22 -186
- package/src/session/session-types.ts +312 -0
- package/src/session/stats.ts +387 -0
- package/src/session/streaming-edit.ts +258 -0
- package/src/session/ttsr.ts +213 -0
- package/src/slash-commands/builtin-registry.ts +0 -8
- package/src/ssh/connection-manager.ts +1 -0
- package/src/stt/recorder.ts +2 -2
- package/src/system-prompt.ts +1 -14
- package/src/task/agents.ts +7 -33
- package/src/task/executor.ts +50 -438
- package/src/task/index.ts +104 -71
- package/src/task/progress-tracker.ts +390 -0
- package/src/task/render.ts +371 -187
- package/src/task/subprocess-tool-registry.ts +1 -1
- package/src/task/types.ts +14 -47
- package/src/tools/ask.ts +31 -42
- package/src/tools/bash-interactive.ts +4 -47
- package/src/tools/bash-interceptor.ts +2 -2
- package/src/tools/bash-normalize.ts +1 -1
- package/src/tools/bash-skill-urls.ts +2 -2
- package/src/tools/bash.ts +87 -136
- package/src/tools/browser.ts +54 -84
- package/src/tools/create-tools.ts +186 -0
- package/src/tools/default-renderer.ts +104 -0
- package/src/tools/explore.ts +11 -10
- package/src/tools/fetch.ts +24 -114
- package/src/tools/find.ts +48 -132
- package/src/tools/gemini-image.ts +5 -15
- package/src/tools/github.ts +450 -0
- package/src/tools/grep.ts +43 -179
- package/src/tools/index.ts +35 -198
- package/src/tools/json-tree.ts +3 -3
- package/src/tools/librarian.ts +18 -18
- package/src/tools/list-limit.ts +2 -2
- package/src/tools/notebook.ts +35 -87
- package/src/tools/oracle.ts +25 -25
- package/src/tools/output-meta.ts +89 -4
- package/src/tools/output-utils.ts +2 -2
- package/src/tools/python.ts +86 -637
- package/src/tools/read.ts +36 -119
- package/src/tools/reviewer-tool.ts +19 -21
- package/src/tools/search-code.ts +128 -0
- package/src/tools/ssh.ts +67 -126
- package/src/tools/subagent-tool.ts +197 -123
- package/src/tools/todo-write.ts +15 -31
- package/src/tools/tool-errors.ts +0 -30
- package/src/tools/undo-edit.ts +30 -67
- package/src/tools/write.ts +78 -127
- package/src/tui/code-cell.ts +4 -4
- package/src/tui/file-list.ts +2 -2
- package/src/tui/output-block.ts +1 -1
- package/src/tui/status-line.ts +1 -1
- package/src/tui/tree-list.ts +2 -2
- package/src/tui/types.ts +1 -1
- package/src/tui/utils.ts +1 -1
- package/src/{tools → ui}/render-utils.ts +87 -126
- package/src/utils/external-editor.ts +4 -4
- package/src/utils/file-mentions.ts +1 -1
- package/src/utils/index.ts +30 -0
- package/src/utils/tools-manager.ts +9 -19
- package/src/web/github-client.ts +290 -0
- package/src/web/scrapers/github.ts +11 -62
- package/src/web/search/auth.ts +1 -3
- package/src/web/search/index.ts +85 -49
- package/src/web/search/provider.ts +11 -16
- package/src/web/search/providers/grep.ts +160 -0
- package/src/web/search/render.ts +48 -235
- package/src/web/search/types.ts +1 -1
- package/src/commands/commit.ts +0 -36
- package/src/commit/agentic/agent.ts +0 -311
- package/src/commit/agentic/fallback.ts +0 -96
- package/src/commit/agentic/index.ts +0 -359
- package/src/commit/agentic/prompts/analyze-file.md +0 -22
- package/src/commit/agentic/prompts/session-user.md +0 -25
- package/src/commit/agentic/prompts/split-confirm.md +0 -1
- package/src/commit/agentic/prompts/system.md +0 -38
- package/src/commit/agentic/state.ts +0 -69
- package/src/commit/agentic/tools/analyze-file.ts +0 -118
- package/src/commit/agentic/tools/git-file-diff.ts +0 -194
- package/src/commit/agentic/tools/git-hunk.ts +0 -50
- package/src/commit/agentic/tools/git-overview.ts +0 -84
- package/src/commit/agentic/tools/index.ts +0 -56
- package/src/commit/agentic/tools/propose-changelog.ts +0 -128
- package/src/commit/agentic/tools/propose-commit.ts +0 -154
- package/src/commit/agentic/tools/recent-commits.ts +0 -81
- package/src/commit/agentic/tools/split-commit.ts +0 -280
- package/src/commit/agentic/topo-sort.ts +0 -44
- package/src/commit/agentic/trivial.ts +0 -51
- package/src/commit/agentic/validation.ts +0 -200
- package/src/commit/analysis/conventional.ts +0 -165
- package/src/commit/analysis/index.ts +0 -4
- package/src/commit/analysis/scope.ts +0 -242
- package/src/commit/analysis/summary.ts +0 -112
- package/src/commit/analysis/validation.ts +0 -66
- package/src/commit/changelog/detect.ts +0 -37
- package/src/commit/changelog/generate.ts +0 -110
- package/src/commit/changelog/index.ts +0 -234
- package/src/commit/changelog/parse.ts +0 -44
- package/src/commit/cli.ts +0 -93
- package/src/commit/git/diff.ts +0 -148
- package/src/commit/git/errors.ts +0 -9
- package/src/commit/git/index.ts +0 -211
- package/src/commit/git/operations.ts +0 -54
- package/src/commit/index.ts +0 -5
- package/src/commit/map-reduce/index.ts +0 -64
- package/src/commit/map-reduce/map-phase.ts +0 -178
- package/src/commit/map-reduce/reduce-phase.ts +0 -145
- package/src/commit/map-reduce/utils.ts +0 -9
- package/src/commit/message.ts +0 -11
- package/src/commit/model-selection.ts +0 -69
- package/src/commit/pipeline.ts +0 -243
- package/src/commit/prompts/analysis-system.md +0 -148
- package/src/commit/prompts/analysis-user.md +0 -38
- package/src/commit/prompts/changelog-system.md +0 -50
- package/src/commit/prompts/changelog-user.md +0 -18
- package/src/commit/prompts/file-observer-system.md +0 -24
- package/src/commit/prompts/file-observer-user.md +0 -8
- package/src/commit/prompts/reduce-system.md +0 -50
- package/src/commit/prompts/reduce-user.md +0 -17
- package/src/commit/prompts/summary-retry.md +0 -3
- package/src/commit/prompts/summary-system.md +0 -38
- package/src/commit/prompts/summary-user.md +0 -13
- package/src/commit/prompts/types-description.md +0 -2
- package/src/commit/types.ts +0 -109
- package/src/commit/utils/exclusions.ts +0 -42
- package/src/mcp/render.ts +0 -123
- package/src/modes/components/agent-dashboard.ts +0 -1130
- package/src/modes/components/codemode-group.ts +0 -369
- package/src/modes/components/read-tool-group.ts +0 -119
- package/src/modes/components/visual-truncate.ts +0 -63
- package/src/prompts/system/subagent-user-prompt.md +0 -8
- package/src/prompts/tools/ask.md +0 -44
- package/src/prompts/tools/bash.md +0 -24
- package/src/prompts/tools/browser.md +0 -33
- package/src/prompts/tools/calculator.md +0 -12
- package/src/prompts/tools/explore.md +0 -29
- package/src/prompts/tools/fetch.md +0 -16
- package/src/prompts/tools/find.md +0 -18
- package/src/prompts/tools/gemini-image.md +0 -23
- package/src/prompts/tools/grep.md +0 -28
- package/src/prompts/tools/hashline.md +0 -232
- package/src/prompts/tools/librarian.md +0 -24
- package/src/prompts/tools/lsp.md +0 -28
- package/src/prompts/tools/oracle.md +0 -26
- package/src/prompts/tools/patch.md +0 -74
- package/src/prompts/tools/python.md +0 -66
- package/src/prompts/tools/read.md +0 -36
- package/src/prompts/tools/replace.md +0 -38
- package/src/prompts/tools/reviewer.md +0 -41
- package/src/prompts/tools/ssh.md +0 -51
- package/src/prompts/tools/task-summary.md +0 -28
- package/src/prompts/tools/task.md +0 -146
- package/src/prompts/tools/todo-write.md +0 -65
- package/src/prompts/tools/undo-edit.md +0 -7
- package/src/prompts/tools/web-search.md +0 -19
- package/src/prompts/tools/write.md +0 -18
- package/src/task/batch.ts +0 -102
- package/src/task/discovery.ts +0 -126
- package/src/task/parallel.ts +0 -84
- package/src/task/template.ts +0 -32
- package/src/tools/calculator.ts +0 -537
- package/src/tools/jtd-to-typescript.ts +0 -198
- package/src/tools/renderers.ts +0 -60
- package/src/tools/tool-result.ts +0 -86
- /package/src/{modes/theme → theme}/dark.json +0 -0
- /package/src/{modes/theme → theme}/defaults/dark-catppuccin.json +0 -0
- /package/src/{modes/theme → theme}/defaults/dark-dracula.json +0 -0
- /package/src/{modes/theme → theme}/defaults/dark-gruvbox.json +0 -0
- /package/src/{modes/theme → theme}/defaults/dark-solarized.json +0 -0
- /package/src/{modes/theme → theme}/defaults/dark-tokyo-night.json +0 -0
- /package/src/{modes/theme → theme}/defaults/index.ts +0 -0
- /package/src/{modes/theme → theme}/defaults/light-catppuccin.json +0 -0
- /package/src/{modes/theme → theme}/defaults/light-github.json +0 -0
- /package/src/{modes/theme → theme}/defaults/light-solarized.json +0 -0
- /package/src/{modes/theme → theme}/light.json +0 -0
- /package/src/{modes/theme → theme}/mermaid-cache.ts +0 -0
- /package/src/{modes/theme → theme}/theme-schema.json +0 -0
- /package/src/{modes/theme → theme}/theme.ts +0 -0
package/src/lsp/index.ts
CHANGED
|
@@ -3,9 +3,7 @@ import path from "node:path";
|
|
|
3
3
|
import type { AgentTool, AgentToolContext, AgentToolResult, AgentToolUpdateCallback } from "@nghyane/arcane-agent";
|
|
4
4
|
import { logger, once, untilAborted } from "@nghyane/arcane-utils";
|
|
5
5
|
import type { BunFile } from "bun";
|
|
6
|
-
import {
|
|
7
|
-
import { type Theme, theme } from "../modes/theme/theme";
|
|
8
|
-
import lspDescription from "../prompts/tools/lsp.md" with { type: "text" };
|
|
6
|
+
import { type Theme, theme } from "../theme/theme";
|
|
9
7
|
import type { ToolSession } from "../tools";
|
|
10
8
|
import { resolveToCwd } from "../tools/path-utils";
|
|
11
9
|
import { ToolAbortError, throwIfAborted } from "../tools/tool-errors";
|
|
@@ -112,7 +110,10 @@ export async function warmupLspServers(cwd: string, options?: LspWarmupOptions):
|
|
|
112
110
|
});
|
|
113
111
|
} else {
|
|
114
112
|
const errorMsg = result.reason?.message ?? String(result.reason);
|
|
115
|
-
logger.warn("LSP server failed to start", {
|
|
113
|
+
logger.warn("LSP server failed to start", {
|
|
114
|
+
server: name,
|
|
115
|
+
error: errorMsg,
|
|
116
|
+
});
|
|
116
117
|
servers.push({
|
|
117
118
|
name,
|
|
118
119
|
status: "error",
|
|
@@ -286,22 +287,38 @@ interface ProjectType {
|
|
|
286
287
|
function detectProjectType(cwd: string): ProjectType {
|
|
287
288
|
// Check for Rust (Cargo.toml)
|
|
288
289
|
if (fs.existsSync(path.join(cwd, "Cargo.toml"))) {
|
|
289
|
-
return {
|
|
290
|
+
return {
|
|
291
|
+
type: "rust",
|
|
292
|
+
command: ["cargo", "check", "--message-format=short"],
|
|
293
|
+
description: "Rust (cargo check)",
|
|
294
|
+
};
|
|
290
295
|
}
|
|
291
296
|
|
|
292
297
|
// Check for TypeScript (tsconfig.json)
|
|
293
298
|
if (fs.existsSync(path.join(cwd, "tsconfig.json"))) {
|
|
294
|
-
return {
|
|
299
|
+
return {
|
|
300
|
+
type: "typescript",
|
|
301
|
+
command: ["npx", "tsc", "--noEmit"],
|
|
302
|
+
description: "TypeScript (tsc --noEmit)",
|
|
303
|
+
};
|
|
295
304
|
}
|
|
296
305
|
|
|
297
306
|
// Check for Go (go.mod)
|
|
298
307
|
if (fs.existsSync(path.join(cwd, "go.mod"))) {
|
|
299
|
-
return {
|
|
308
|
+
return {
|
|
309
|
+
type: "go",
|
|
310
|
+
command: ["go", "build", "./..."],
|
|
311
|
+
description: "Go (go build)",
|
|
312
|
+
};
|
|
300
313
|
}
|
|
301
314
|
|
|
302
315
|
// Check for Python (pyproject.toml or pyrightconfig.json)
|
|
303
316
|
if (fs.existsSync(path.join(cwd, "pyproject.toml")) || fs.existsSync(path.join(cwd, "pyrightconfig.json"))) {
|
|
304
|
-
return {
|
|
317
|
+
return {
|
|
318
|
+
type: "python",
|
|
319
|
+
command: ["pyright"],
|
|
320
|
+
description: "Python (pyright)",
|
|
321
|
+
};
|
|
305
322
|
}
|
|
306
323
|
|
|
307
324
|
return { type: "unknown", description: "Unknown project type" };
|
|
@@ -344,14 +361,20 @@ async function runWorkspaceDiagnostics(
|
|
|
344
361
|
// Limit output length
|
|
345
362
|
const lines = combined.split("\n");
|
|
346
363
|
if (lines.length > 50) {
|
|
347
|
-
return {
|
|
364
|
+
return {
|
|
365
|
+
output: `${lines.slice(0, 50).join("\n")}\n... and ${lines.length - 50} more lines`,
|
|
366
|
+
projectType,
|
|
367
|
+
};
|
|
348
368
|
}
|
|
349
369
|
return { output: combined, projectType };
|
|
350
370
|
} catch (e) {
|
|
351
371
|
if (signal?.aborted) {
|
|
352
372
|
throw new ToolAbortError();
|
|
353
373
|
}
|
|
354
|
-
return {
|
|
374
|
+
return {
|
|
375
|
+
output: `Failed to run ${projectType.command.join(" ")}: ${e}`,
|
|
376
|
+
projectType,
|
|
377
|
+
};
|
|
355
378
|
} finally {
|
|
356
379
|
signal?.removeEventListener("abort", abortHandler);
|
|
357
380
|
}
|
|
@@ -639,7 +662,10 @@ export async function flushLspWritethroughBatch(
|
|
|
639
662
|
return flushWritethroughBatch(Array.from(state.entries.values()), cwd, state.options, signal);
|
|
640
663
|
}
|
|
641
664
|
|
|
642
|
-
function summarizeDiagnosticMessages(messages: string[]): {
|
|
665
|
+
function summarizeDiagnosticMessages(messages: string[]): {
|
|
666
|
+
summary: string;
|
|
667
|
+
errored: boolean;
|
|
668
|
+
} {
|
|
643
669
|
const counts = { error: 0, warning: 0, info: 0, hint: 0 };
|
|
644
670
|
for (const message of messages) {
|
|
645
671
|
const match = message.match(/\[(error|warning|info|hint)\]/i);
|
|
@@ -864,16 +890,13 @@ export function createLspWritethrough(cwd: string, options?: WritethroughOptions
|
|
|
864
890
|
export class LspTool implements AgentTool<typeof lspSchema, LspToolDetails, Theme> {
|
|
865
891
|
readonly name = "lsp";
|
|
866
892
|
readonly label = "LSP";
|
|
867
|
-
readonly description
|
|
893
|
+
readonly description =
|
|
894
|
+
"Run LSP operations: diagnostics, go-to-definition, references, hover, symbols, rename. Output is shown to the user, so do not repeat or summarize the results.";
|
|
868
895
|
readonly parameters = lspSchema;
|
|
869
896
|
readonly renderCall = renderCall;
|
|
870
897
|
readonly renderResult = renderResult;
|
|
871
|
-
readonly mergeCallAndResult = true;
|
|
872
|
-
readonly inline = true;
|
|
873
898
|
|
|
874
|
-
constructor(private readonly session: ToolSession) {
|
|
875
|
-
this.description = renderPromptTemplate(lspDescription);
|
|
876
|
-
}
|
|
899
|
+
constructor(private readonly session: ToolSession) {}
|
|
877
900
|
|
|
878
901
|
static createIf(session: ToolSession): LspTool | null {
|
|
879
902
|
return session.enableLsp === false ? null : new LspTool(session);
|
|
@@ -988,7 +1011,11 @@ export class LspTool implements AgentTool<typeof lspSchema, LspToolDetails, Them
|
|
|
988
1011
|
if (uniqueDiagnostics.length === 0) {
|
|
989
1012
|
return {
|
|
990
1013
|
content: [{ type: "text", text: "No diagnostics" }],
|
|
991
|
-
details: {
|
|
1014
|
+
details: {
|
|
1015
|
+
action,
|
|
1016
|
+
serverName: Array.from(allServerNames).join(", "),
|
|
1017
|
+
success: true,
|
|
1018
|
+
},
|
|
992
1019
|
};
|
|
993
1020
|
}
|
|
994
1021
|
|
|
@@ -997,7 +1024,11 @@ export class LspTool implements AgentTool<typeof lspSchema, LspToolDetails, Them
|
|
|
997
1024
|
const output = `${summary}:\n${formatted.map(f => ` ${f}`).join("\n")}`;
|
|
998
1025
|
return {
|
|
999
1026
|
content: [{ type: "text", text: output }],
|
|
1000
|
-
details: {
|
|
1027
|
+
details: {
|
|
1028
|
+
action,
|
|
1029
|
+
serverName: Array.from(allServerNames).join(", "),
|
|
1030
|
+
success: true,
|
|
1031
|
+
},
|
|
1001
1032
|
};
|
|
1002
1033
|
}
|
|
1003
1034
|
|
|
@@ -1014,7 +1045,11 @@ export class LspTool implements AgentTool<typeof lspSchema, LspToolDetails, Them
|
|
|
1014
1045
|
|
|
1015
1046
|
return {
|
|
1016
1047
|
content: [{ type: "text", text: results.join("\n") }],
|
|
1017
|
-
details: {
|
|
1048
|
+
details: {
|
|
1049
|
+
action,
|
|
1050
|
+
serverName: Array.from(allServerNames).join(", "),
|
|
1051
|
+
success: true,
|
|
1052
|
+
},
|
|
1018
1053
|
};
|
|
1019
1054
|
}
|
|
1020
1055
|
|
|
@@ -1022,7 +1057,12 @@ export class LspTool implements AgentTool<typeof lspSchema, LspToolDetails, Them
|
|
|
1022
1057
|
|
|
1023
1058
|
if (requiresFile) {
|
|
1024
1059
|
return {
|
|
1025
|
-
content: [
|
|
1060
|
+
content: [
|
|
1061
|
+
{
|
|
1062
|
+
type: "text",
|
|
1063
|
+
text: "Error: file parameter required for this action",
|
|
1064
|
+
},
|
|
1065
|
+
],
|
|
1026
1066
|
details: { action, success: false },
|
|
1027
1067
|
};
|
|
1028
1068
|
}
|
|
@@ -1081,7 +1121,12 @@ export class LspTool implements AgentTool<typeof lspSchema, LspToolDetails, Them
|
|
|
1081
1121
|
if ("targetUri" in loc) {
|
|
1082
1122
|
// Use targetSelectionRange (the precise identifier range) with fallback to targetRange
|
|
1083
1123
|
const link = loc as LocationLink;
|
|
1084
|
-
return [
|
|
1124
|
+
return [
|
|
1125
|
+
{
|
|
1126
|
+
uri: link.targetUri,
|
|
1127
|
+
range: link.targetSelectionRange ?? link.targetRange,
|
|
1128
|
+
},
|
|
1129
|
+
];
|
|
1085
1130
|
}
|
|
1086
1131
|
return [];
|
|
1087
1132
|
});
|
|
@@ -1143,7 +1188,10 @@ export class LspTool implements AgentTool<typeof lspSchema, LspToolDetails, Them
|
|
|
1143
1188
|
if (!query) {
|
|
1144
1189
|
return {
|
|
1145
1190
|
content: [
|
|
1146
|
-
{
|
|
1191
|
+
{
|
|
1192
|
+
type: "text",
|
|
1193
|
+
text: "Error: query parameter required for workspace symbol search",
|
|
1194
|
+
},
|
|
1147
1195
|
],
|
|
1148
1196
|
details: { action, serverName, success: false },
|
|
1149
1197
|
};
|
|
@@ -1191,7 +1239,12 @@ export class LspTool implements AgentTool<typeof lspSchema, LspToolDetails, Them
|
|
|
1191
1239
|
case "rename": {
|
|
1192
1240
|
if (!new_name) {
|
|
1193
1241
|
return {
|
|
1194
|
-
content: [
|
|
1242
|
+
content: [
|
|
1243
|
+
{
|
|
1244
|
+
type: "text",
|
|
1245
|
+
text: "Error: new_name parameter required for rename",
|
|
1246
|
+
},
|
|
1247
|
+
],
|
|
1195
1248
|
details: { action, serverName, success: false },
|
|
1196
1249
|
};
|
|
1197
1250
|
}
|