refactor(lsp): clean up lsp_servers references and update prompts to use PascalCase
- Remove dead lsp_servers function from tools.ts - Update utils.ts to reference LspServers (OpenCode built-in) - Update AGENTS.md: 7 tools → 3 tools - Update init-deep.ts prompts to use PascalCase OpenCode tools - Update refactor.ts prompts to use PascalCase OpenCode tools
This commit is contained in:
parent
f888da8848
commit
9363324e0e
@ -114,19 +114,19 @@ If \`--create-new\`: Read all existing first (preserve context) → then delete
|
|||||||
|
|
||||||
#### 3. LSP Codemap (if available)
|
#### 3. LSP Codemap (if available)
|
||||||
\`\`\`
|
\`\`\`
|
||||||
lsp_servers() # Check availability
|
LspServers() # Check availability
|
||||||
|
|
||||||
# Entry points (parallel)
|
# Entry points (parallel)
|
||||||
lsp_symbols(filePath="src/index.ts", scope="document")
|
LspDocumentSymbols(filePath="src/index.ts")
|
||||||
lsp_symbols(filePath="main.py", scope="document")
|
LspDocumentSymbols(filePath="main.py")
|
||||||
|
|
||||||
# Key symbols (parallel)
|
# Key symbols (parallel)
|
||||||
lsp_symbols(filePath=".", scope="workspace", query="class")
|
LspWorkspaceSymbols(filePath=".", query="class")
|
||||||
lsp_symbols(filePath=".", scope="workspace", query="interface")
|
LspWorkspaceSymbols(filePath=".", query="interface")
|
||||||
lsp_symbols(filePath=".", scope="workspace", query="function")
|
LspWorkspaceSymbols(filePath=".", query="function")
|
||||||
|
|
||||||
# Centrality for top exports
|
# Centrality for top exports
|
||||||
lsp_find_references(filePath="...", line=X, character=Y)
|
LspFindReferences(filePath="...", line=X, character=Y)
|
||||||
\`\`\`
|
\`\`\`
|
||||||
|
|
||||||
**LSP Fallback**: If unavailable, rely on explore agents + AST-grep.
|
**LSP Fallback**: If unavailable, rely on explore agents + AST-grep.
|
||||||
|
|||||||
@ -149,14 +149,14 @@ While background agents are running, use direct tools:
|
|||||||
|
|
||||||
\`\`\`typescript
|
\`\`\`typescript
|
||||||
// Find definition(s)
|
// Find definition(s)
|
||||||
lsp_goto_definition(filePath, line, character) // Where is it defined?
|
LspGotoDefinition(filePath, line, character) // Where is it defined?
|
||||||
|
|
||||||
// Find ALL usages across workspace
|
// Find ALL usages across workspace
|
||||||
lsp_find_references(filePath, line, character, includeDeclaration=true)
|
LspFindReferences(filePath, line, character, includeDeclaration=true)
|
||||||
|
|
||||||
// Get file structure (scope='document') or search symbols (scope='workspace')
|
// Get file structure
|
||||||
lsp_symbols(filePath, scope="document") // Hierarchical outline
|
LspDocumentSymbols(filePath) // Hierarchical outline
|
||||||
lsp_symbols(filePath, scope="workspace", query="[target_symbol]") // Search by name
|
LspWorkspaceSymbols(filePath, query="[target_symbol]") // Search by name
|
||||||
|
|
||||||
// Get current diagnostics
|
// Get current diagnostics
|
||||||
lsp_diagnostics(filePath) // Errors, warnings before we start
|
lsp_diagnostics(filePath) // Errors, warnings before we start
|
||||||
@ -587,9 +587,9 @@ If any of these occur, **STOP and consult user**:
|
|||||||
You already know these tools. Use them intelligently:
|
You already know these tools. Use them intelligently:
|
||||||
|
|
||||||
## LSP Tools
|
## LSP Tools
|
||||||
Leverage the full LSP toolset (\`lsp_*\`) for precision analysis. Key patterns:
|
Leverage LSP tools for precision analysis. Key patterns:
|
||||||
- **Understand before changing**: \`lsp_goto_definition\` to grasp context
|
- **Understand before changing**: \`LspGotoDefinition\` to grasp context
|
||||||
- **Impact analysis**: \`lsp_find_references\` to map all usages before modification
|
- **Impact analysis**: \`LspFindReferences\` to map all usages before modification
|
||||||
- **Safe refactoring**: \`lsp_prepare_rename\` → \`lsp_rename\` for symbol renames
|
- **Safe refactoring**: \`lsp_prepare_rename\` → \`lsp_rename\` for symbol renames
|
||||||
- **Continuous verification**: \`lsp_diagnostics\` after every change
|
- **Continuous verification**: \`lsp_diagnostics\` after every change
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
# TOOLS KNOWLEDGE BASE
|
# TOOLS KNOWLEDGE BASE
|
||||||
|
|
||||||
## OVERVIEW
|
## OVERVIEW
|
||||||
Custom tools extending agent capabilities: LSP (7 tools), AST-aware search/replace, background tasks, and multimodal analysis.
|
Custom tools extending agent capabilities: LSP (3 tools), AST-aware search/replace, background tasks, and multimodal analysis.
|
||||||
|
|
||||||
## STRUCTURE
|
## STRUCTURE
|
||||||
```
|
```
|
||||||
@ -30,7 +30,7 @@ tools/
|
|||||||
## TOOL CATEGORIES
|
## TOOL CATEGORIES
|
||||||
| Category | Tools | Purpose |
|
| Category | Tools | Purpose |
|
||||||
|----------|-------|---------|
|
|----------|-------|---------|
|
||||||
| LSP | lsp_goto_definition, lsp_find_references, lsp_symbols, lsp_diagnostics, lsp_rename, etc. | IDE-grade code intelligence (7 tools) |
|
| LSP | lsp_diagnostics, lsp_prepare_rename, lsp_rename | IDE-grade code intelligence (3 tools) |
|
||||||
| AST | ast_grep_search, ast_grep_replace | Structural pattern matching/rewriting |
|
| AST | ast_grep_search, ast_grep_replace | Structural pattern matching/rewriting |
|
||||||
| Search | grep, glob | Timeout-safe file and content search |
|
| Search | grep, glob | Timeout-safe file and content search |
|
||||||
| Session | session_list, session_read, session_search, session_info | History navigation and retrieval |
|
| Session | session_list, session_read, session_search, session_info | History navigation and retrieval |
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
import { tool, type ToolDefinition } from "@opencode-ai/plugin/tool"
|
import { tool, type ToolDefinition } from "@opencode-ai/plugin/tool"
|
||||||
import { getAllServers } from "./config"
|
|
||||||
import {
|
import {
|
||||||
DEFAULT_MAX_DIAGNOSTICS,
|
DEFAULT_MAX_DIAGNOSTICS,
|
||||||
} from "./constants"
|
} from "./constants"
|
||||||
@ -68,28 +67,6 @@ export const lsp_diagnostics: ToolDefinition = tool({
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
export const lsp_servers: ToolDefinition = tool({
|
|
||||||
description: "List available LSP servers and installation status.",
|
|
||||||
args: {},
|
|
||||||
execute: async (_args, context) => {
|
|
||||||
try {
|
|
||||||
const servers = getAllServers()
|
|
||||||
const lines = servers.map((s) => {
|
|
||||||
if (s.disabled) {
|
|
||||||
return `${s.id} [disabled] - ${s.extensions.join(", ")}`
|
|
||||||
}
|
|
||||||
const status = s.installed ? "[installed]" : "[not installed]"
|
|
||||||
return `${s.id} ${status} - ${s.extensions.join(", ")}`
|
|
||||||
})
|
|
||||||
const output = lines.join("\n")
|
|
||||||
return output
|
|
||||||
} catch (e) {
|
|
||||||
const output = `Error: ${e instanceof Error ? e.message : String(e)}`
|
|
||||||
return output
|
|
||||||
}
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
export const lsp_prepare_rename: ToolDefinition = tool({
|
export const lsp_prepare_rename: ToolDefinition = tool({
|
||||||
description: "Check if rename is valid. Use BEFORE lsp_rename.",
|
description: "Check if rename is valid. Use BEFORE lsp_rename.",
|
||||||
args: {
|
args: {
|
||||||
|
|||||||
@ -55,7 +55,7 @@ export function formatServerLookupError(result: Exclude<ServerLookupResult, { st
|
|||||||
`Supported extensions: ${server.extensions.join(", ")}`,
|
`Supported extensions: ${server.extensions.join(", ")}`,
|
||||||
``,
|
``,
|
||||||
`After installation, the server will be available automatically.`,
|
`After installation, the server will be available automatically.`,
|
||||||
`Run 'lsp_servers' tool to verify installation status.`,
|
`Run 'LspServers' tool to verify installation status.`,
|
||||||
].join("\n")
|
].join("\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user