Merge pull request #4129 from code-yeongyu/feature/stage-c-lsp-mcp
Extract LSP tools into Tier-1 MCP server via lsp-tools-mcp submodule
This commit is contained in:
@@ -60,7 +60,6 @@ const lookAt = isMultimodalLookerEnabled ? { look_at: createLookAt(ctx) } : {}
|
||||
const interactiveBashTool = interactiveBashEnabled ? { interactive_bash } : {}
|
||||
|
||||
const allTools = {
|
||||
...builtinTools, // 6 LSP
|
||||
...createGrepTools(ctx),
|
||||
...createGlobTools(ctx),
|
||||
...createAstGrepTools(ctx),
|
||||
@@ -74,6 +73,8 @@ const allTools = {
|
||||
...taskToolsRecord, // +4 conditional
|
||||
...hashlineToolsRecord, // +1 conditional
|
||||
}
|
||||
|
||||
// lsp_* tools are now supplied by built-in MCP server "lsp"
|
||||
```
|
||||
|
||||
## KEY PATTERNS
|
||||
|
||||
@@ -36,7 +36,6 @@ import { extractRetryAttempt, normalizeRetryStatusMessage } from "../shared/retr
|
||||
import { clearSessionModel, getSessionModel, setSessionModel } from "../shared/session-model-state";
|
||||
import { clearSessionPromptParams } from "../shared/session-prompt-params-state";
|
||||
import { deleteSessionTools } from "../shared/session-tools-store";
|
||||
import { lspManager } from "../tools";
|
||||
import { dispatchOpenClawEvent } from "../openclaw/runtime-dispatch";
|
||||
import { createTeamIdleWakeHint } from "../hooks/team-session-events/team-idle-wake-hint";
|
||||
import { buildTeamIdleWakeHintClient } from "./build-team-idle-wake-hint-client";
|
||||
@@ -713,7 +712,6 @@ export function createEventHandler(args: {
|
||||
}
|
||||
deleteSessionTools(sessionID);
|
||||
await managers.skillMcpManager.disconnectSession(sessionID);
|
||||
await lspManager.cleanupTempDirectoryClients();
|
||||
if (tmuxIntegrationEnabled) {
|
||||
await managers.tmuxSessionManager.onSessionDeleted({
|
||||
sessionID,
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
const { afterEach, describe, expect, test } = require("bun:test")
|
||||
const { createToolExecuteBeforeHandler } = require("./tool-execute-before")
|
||||
const { createToolRegistry } = require("./tool-registry")
|
||||
const { builtinTools } = require("../tools")
|
||||
const { resetStorageClient } = require("../tools/session-manager/storage")
|
||||
|
||||
describe("createToolExecuteBeforeHandler", () => {
|
||||
@@ -335,13 +334,16 @@ describe("createToolRegistry", () => {
|
||||
describe("#given max_tools is lower than or equal to builtin tool count", () => {
|
||||
describe("#when creating the tool registry", () => {
|
||||
test("#then it trims to the exact configured cap", () => {
|
||||
const baseline = createToolRegistry(createRegistryInput())
|
||||
const baselineToolCount = Object.keys(baseline.filteredTools).length
|
||||
|
||||
const result = createToolRegistry(
|
||||
createRegistryInput({
|
||||
experimental: { max_tools: Object.keys(builtinTools).length },
|
||||
experimental: { max_tools: baselineToolCount },
|
||||
}),
|
||||
)
|
||||
|
||||
expect(Object.keys(result.filteredTools)).toHaveLength(Object.keys(builtinTools).length)
|
||||
expect(Object.keys(result.filteredTools)).toHaveLength(baselineToolCount)
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
@@ -157,7 +157,6 @@ describe("team-mode tool registry wiring", () => {
|
||||
},
|
||||
availableCategories: [],
|
||||
toolFactories: {
|
||||
builtinTools: { bash: fakeTool, read: fakeTool },
|
||||
createBackgroundTools: mock(() => ({})),
|
||||
createCallOmoAgent: mock(() => fakeTool),
|
||||
createLookAt: mock(() => fakeTool),
|
||||
|
||||
@@ -46,7 +46,6 @@ const TEAM_TOOL_NAMES = [
|
||||
const { createToolRegistry, trimToolsToCap } = await import("./tool-registry")
|
||||
|
||||
const toolFactories: NonNullable<Parameters<typeof createToolRegistry>[0]["toolFactories"]> = {
|
||||
builtinTools: { bash: fakeTool, read: fakeTool },
|
||||
createBackgroundTools: mock(() => ({})),
|
||||
createCallOmoAgent: mock(() => fakeTool),
|
||||
createLookAt: mock(() => fakeTool),
|
||||
|
||||
@@ -25,7 +25,6 @@ import * as openclawRuntimeDispatch from "../openclaw/runtime-dispatch"
|
||||
import type { PluginContext, ToolsRecord } from "./types"
|
||||
|
||||
import {
|
||||
builtinTools,
|
||||
createBackgroundTools,
|
||||
createCallOmoAgent,
|
||||
createLookAt,
|
||||
@@ -53,7 +52,6 @@ import type { SkillContext } from "./skill-context"
|
||||
import { normalizeToolArgSchemas } from "./normalize-tool-arg-schemas"
|
||||
|
||||
type ToolRegistryFactories = {
|
||||
builtinTools: typeof builtinTools
|
||||
createBackgroundTools: typeof createBackgroundTools
|
||||
createCallOmoAgent: typeof createCallOmoAgent
|
||||
createLookAt: typeof createLookAt
|
||||
@@ -86,7 +84,6 @@ type ToolRegistryFactories = {
|
||||
}
|
||||
|
||||
const defaultToolRegistryFactories: ToolRegistryFactories = {
|
||||
builtinTools,
|
||||
createBackgroundTools,
|
||||
createCallOmoAgent,
|
||||
createLookAt,
|
||||
@@ -339,7 +336,6 @@ export function createToolRegistry(args: {
|
||||
: {}
|
||||
|
||||
const allTools: Record<string, ToolDefinition> = {
|
||||
...factories.builtinTools,
|
||||
...factories.createGrepTools(ctx),
|
||||
...factories.createGlobTools(ctx),
|
||||
...factories.createAstGrepTools(ctx),
|
||||
|
||||
Reference in New Issue
Block a user