wave-agent-sdk 0.6.4 → 0.7.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/dist/agent.d.ts +8 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +49 -240
- package/dist/constants/tools.d.ts +0 -2
- package/dist/constants/tools.d.ts.map +1 -1
- package/dist/constants/tools.js +0 -2
- package/dist/core/plugin.d.ts +86 -0
- package/dist/core/plugin.d.ts.map +1 -0
- package/dist/core/plugin.js +164 -0
- package/dist/index.d.ts +1 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -5
- package/dist/managers/MemoryRuleManager.d.ts +3 -1
- package/dist/managers/MemoryRuleManager.d.ts.map +1 -1
- package/dist/managers/MemoryRuleManager.js +2 -1
- package/dist/managers/aiManager.d.ts +13 -23
- package/dist/managers/aiManager.d.ts.map +1 -1
- package/dist/managers/aiManager.js +59 -32
- package/dist/managers/backgroundTaskManager.d.ts +3 -1
- package/dist/managers/backgroundTaskManager.d.ts.map +1 -1
- package/dist/managers/backgroundTaskManager.js +2 -1
- package/dist/managers/bashManager.d.ts +4 -4
- package/dist/managers/bashManager.d.ts.map +1 -1
- package/dist/managers/bashManager.js +5 -2
- package/dist/managers/foregroundTaskManager.d.ts +3 -0
- package/dist/managers/foregroundTaskManager.d.ts.map +1 -1
- package/dist/managers/foregroundTaskManager.js +2 -1
- package/dist/managers/hookManager.d.ts +3 -3
- package/dist/managers/hookManager.d.ts.map +1 -1
- package/dist/managers/hookManager.js +20 -19
- package/dist/managers/liveConfigManager.d.ts +6 -13
- package/dist/managers/liveConfigManager.d.ts.map +1 -1
- package/dist/managers/liveConfigManager.js +50 -45
- package/dist/managers/lspManager.d.ts +4 -5
- package/dist/managers/lspManager.d.ts.map +1 -1
- package/dist/managers/lspManager.js +13 -12
- package/dist/managers/mcpManager.d.ts +3 -2
- package/dist/managers/mcpManager.d.ts.map +1 -1
- package/dist/managers/mcpManager.js +16 -15
- package/dist/managers/messageManager.d.ts +5 -7
- package/dist/managers/messageManager.d.ts.map +1 -1
- package/dist/managers/messageManager.js +12 -7
- package/dist/managers/permissionManager.d.ts +6 -4
- package/dist/managers/permissionManager.d.ts.map +1 -1
- package/dist/managers/permissionManager.js +39 -63
- package/dist/managers/planManager.d.ts +4 -6
- package/dist/managers/planManager.d.ts.map +1 -1
- package/dist/managers/planManager.js +18 -4
- package/dist/managers/pluginManager.d.ts +10 -22
- package/dist/managers/pluginManager.d.ts.map +1 -1
- package/dist/managers/pluginManager.js +27 -14
- package/dist/managers/reversionManager.d.ts +4 -3
- package/dist/managers/reversionManager.d.ts.map +1 -1
- package/dist/managers/reversionManager.js +5 -2
- package/dist/managers/skillManager.d.ts +3 -2
- package/dist/managers/skillManager.d.ts.map +1 -1
- package/dist/managers/skillManager.js +15 -14
- package/dist/managers/slashCommandManager.d.ts +9 -16
- package/dist/managers/slashCommandManager.d.ts.map +1 -1
- package/dist/managers/slashCommandManager.js +21 -10
- package/dist/managers/subagentManager.d.ts +7 -17
- package/dist/managers/subagentManager.d.ts.map +1 -1
- package/dist/managers/subagentManager.js +41 -34
- package/dist/managers/toolManager.d.ts +15 -38
- package/dist/managers/toolManager.d.ts.map +1 -1
- package/dist/managers/toolManager.js +66 -56
- package/dist/prompts/index.d.ts +6 -3
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +8 -16
- package/dist/services/MarketplaceService.d.ts.map +1 -1
- package/dist/services/MarketplaceService.js +13 -0
- package/dist/services/aiService.d.ts +4 -0
- package/dist/services/aiService.d.ts.map +1 -1
- package/dist/services/aiService.js +47 -7
- package/dist/services/configurationService.d.ts.map +1 -1
- package/dist/services/configurationService.js +30 -11
- package/dist/services/taskManager.d.ts +3 -1
- package/dist/services/taskManager.d.ts.map +1 -1
- package/dist/services/taskManager.js +2 -1
- package/dist/tools/bashTool.js +2 -2
- package/dist/tools/editTool.d.ts.map +1 -1
- package/dist/tools/editTool.js +9 -1
- package/dist/tools/readTool.d.ts.map +1 -1
- package/dist/tools/readTool.js +2 -2
- package/dist/tools/skillTool.d.ts +2 -4
- package/dist/tools/skillTool.d.ts.map +1 -1
- package/dist/tools/skillTool.js +61 -61
- package/dist/tools/taskOutputTool.js +1 -1
- package/dist/tools/taskTool.d.ts +2 -4
- package/dist/tools/taskTool.d.ts.map +1 -1
- package/dist/tools/taskTool.js +192 -187
- package/dist/tools/types.d.ts +11 -1
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/writeTool.d.ts.map +1 -1
- package/dist/tools/writeTool.js +4 -2
- package/dist/types/marketplace.d.ts +8 -0
- package/dist/types/marketplace.d.ts.map +1 -1
- package/dist/types/permissions.d.ts +1 -1
- package/dist/types/permissions.d.ts.map +1 -1
- package/dist/types/permissions.js +1 -3
- package/dist/types/skills.d.ts +0 -2
- package/dist/types/skills.d.ts.map +1 -1
- package/dist/types/tools.d.ts +0 -15
- package/dist/types/tools.d.ts.map +1 -1
- package/dist/utils/container.d.ts +31 -0
- package/dist/utils/container.d.ts.map +1 -0
- package/dist/utils/container.js +79 -0
- package/dist/utils/containerSetup.d.ts +26 -0
- package/dist/utils/containerSetup.d.ts.map +1 -0
- package/dist/utils/containerSetup.js +165 -0
- package/dist/utils/editUtils.d.ts +0 -3
- package/dist/utils/editUtils.d.ts.map +1 -1
- package/dist/utils/editUtils.js +4 -3
- package/dist/utils/hookMatcher.d.ts +1 -1
- package/dist/utils/hookMatcher.d.ts.map +1 -1
- package/dist/utils/hookMatcher.js +2 -2
- package/dist/utils/openaiClient.js +2 -2
- package/dist/utils/stringUtils.d.ts +6 -0
- package/dist/utils/stringUtils.d.ts.map +1 -1
- package/dist/utils/stringUtils.js +8 -0
- package/package.json +1 -1
- package/src/agent.ts +60 -282
- package/src/constants/tools.ts +0 -2
- package/src/core/plugin.ts +224 -0
- package/src/index.ts +1 -6
- package/src/managers/MemoryRuleManager.ts +6 -1
- package/src/managers/aiManager.ts +83 -58
- package/src/managers/backgroundTaskManager.ts +5 -1
- package/src/managers/bashManager.ts +9 -4
- package/src/managers/foregroundTaskManager.ts +3 -0
- package/src/managers/hookManager.ts +21 -23
- package/src/managers/liveConfigManager.ts +57 -53
- package/src/managers/lspManager.ts +14 -19
- package/src/managers/mcpManager.ts +20 -20
- package/src/managers/messageManager.ts +19 -12
- package/src/managers/permissionManager.ts +45 -70
- package/src/managers/planManager.ts +26 -7
- package/src/managers/pluginManager.ts +37 -33
- package/src/managers/reversionManager.ts +5 -3
- package/src/managers/skillManager.ts +19 -20
- package/src/managers/slashCommandManager.ts +30 -25
- package/src/managers/subagentManager.ts +53 -53
- package/src/managers/toolManager.ts +91 -90
- package/src/prompts/index.ts +12 -24
- package/src/services/MarketplaceService.ts +13 -0
- package/src/services/aiService.ts +61 -15
- package/src/services/configurationService.ts +34 -13
- package/src/services/taskManager.ts +5 -1
- package/src/tools/bashTool.ts +2 -2
- package/src/tools/editTool.ts +9 -1
- package/src/tools/readTool.ts +2 -2
- package/src/tools/skillTool.ts +75 -71
- package/src/tools/taskOutputTool.ts +1 -1
- package/src/tools/taskTool.ts +224 -225
- package/src/tools/types.ts +12 -1
- package/src/tools/writeTool.ts +4 -2
- package/src/types/marketplace.ts +9 -0
- package/src/types/permissions.ts +0 -4
- package/src/types/skills.ts +0 -3
- package/src/types/tools.ts +0 -17
- package/src/utils/container.ts +92 -0
- package/src/utils/containerSetup.ts +256 -0
- package/src/utils/editUtils.ts +4 -3
- package/src/utils/hookMatcher.ts +2 -2
- package/src/utils/openaiClient.ts +2 -2
- package/src/utils/stringUtils.ts +9 -0
- package/dist/tools/deleteFileTool.d.ts +0 -6
- package/dist/tools/deleteFileTool.d.ts.map +0 -1
- package/dist/tools/deleteFileTool.js +0 -100
- package/dist/tools/multiEditTool.d.ts +0 -6
- package/dist/tools/multiEditTool.d.ts.map +0 -1
- package/dist/tools/multiEditTool.js +0 -246
- package/src/tools/deleteFileTool.ts +0 -127
- package/src/tools/multiEditTool.ts +0 -306
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { spawn } from "child_process";
|
|
2
2
|
import { join, isAbsolute, extname } from "path";
|
|
3
3
|
import { promises as fs } from "fs";
|
|
4
|
+
import { logger } from "../utils/globalLogger.js";
|
|
4
5
|
export class LspManager {
|
|
5
|
-
constructor(
|
|
6
|
+
constructor(container) {
|
|
7
|
+
this.container = container;
|
|
6
8
|
this.processes = new Map();
|
|
7
9
|
this.workdir = "";
|
|
8
10
|
this.config = {};
|
|
9
|
-
this.logger = options.logger;
|
|
10
11
|
}
|
|
11
12
|
async initialize(workdir) {
|
|
12
13
|
this.workdir = workdir;
|
|
@@ -14,7 +15,7 @@ export class LspManager {
|
|
|
14
15
|
}
|
|
15
16
|
registerServer(language, config) {
|
|
16
17
|
this.config[language] = config;
|
|
17
|
-
|
|
18
|
+
logger?.debug(`Registered LSP server for ${language}`);
|
|
18
19
|
}
|
|
19
20
|
async loadConfig() {
|
|
20
21
|
const lspJsonPath = join(this.workdir, ".lsp.json");
|
|
@@ -22,11 +23,11 @@ export class LspManager {
|
|
|
22
23
|
const content = await fs.readFile(lspJsonPath, "utf-8");
|
|
23
24
|
const newConfig = JSON.parse(content);
|
|
24
25
|
this.config = { ...this.config, ...newConfig };
|
|
25
|
-
|
|
26
|
+
logger?.debug(`Loaded LSP config from ${lspJsonPath}`);
|
|
26
27
|
}
|
|
27
28
|
catch (error) {
|
|
28
29
|
if (error.code !== "ENOENT") {
|
|
29
|
-
|
|
30
|
+
logger?.error(`Failed to load .lsp.json: ${error}`);
|
|
30
31
|
}
|
|
31
32
|
}
|
|
32
33
|
}
|
|
@@ -53,7 +54,7 @@ export class LspManager {
|
|
|
53
54
|
return lspProc || null;
|
|
54
55
|
}
|
|
55
56
|
async startServer(language, config) {
|
|
56
|
-
|
|
57
|
+
logger?.info(`Starting LSP server for ${language}: ${config.command} ${config.args?.join(" ") || ""}`);
|
|
57
58
|
try {
|
|
58
59
|
const proc = spawn(config.command, config.args || [], {
|
|
59
60
|
cwd: config.workspaceFolder || this.workdir,
|
|
@@ -96,7 +97,7 @@ export class LspManager {
|
|
|
96
97
|
this.handleMessage(lspProc, message);
|
|
97
98
|
}
|
|
98
99
|
catch (e) {
|
|
99
|
-
|
|
100
|
+
logger?.error(`Failed to parse LSP message: ${e}`);
|
|
100
101
|
}
|
|
101
102
|
}
|
|
102
103
|
else {
|
|
@@ -105,10 +106,10 @@ export class LspManager {
|
|
|
105
106
|
}
|
|
106
107
|
});
|
|
107
108
|
proc.stderr.on("data", (data) => {
|
|
108
|
-
|
|
109
|
+
logger?.debug(`LSP [${language}] stderr: ${data}`);
|
|
109
110
|
});
|
|
110
111
|
proc.on("close", (code) => {
|
|
111
|
-
|
|
112
|
+
logger?.info(`LSP server for ${language} exited with code ${code}`);
|
|
112
113
|
this.processes.delete(language);
|
|
113
114
|
});
|
|
114
115
|
// Initialize
|
|
@@ -123,7 +124,7 @@ export class LspManager {
|
|
|
123
124
|
return lspProc;
|
|
124
125
|
}
|
|
125
126
|
catch (error) {
|
|
126
|
-
|
|
127
|
+
logger?.error(`Failed to start LSP server for ${language}: ${error}`);
|
|
127
128
|
return null;
|
|
128
129
|
}
|
|
129
130
|
}
|
|
@@ -212,7 +213,7 @@ export class LspManager {
|
|
|
212
213
|
lspProc.openedFiles.add(absolutePath);
|
|
213
214
|
}
|
|
214
215
|
catch (error) {
|
|
215
|
-
|
|
216
|
+
logger?.error(`Failed to read file for LSP didOpen: ${error}`);
|
|
216
217
|
}
|
|
217
218
|
}
|
|
218
219
|
try {
|
|
@@ -315,7 +316,7 @@ export class LspManager {
|
|
|
315
316
|
}
|
|
316
317
|
}
|
|
317
318
|
catch (error) {
|
|
318
|
-
|
|
319
|
+
logger?.debug(`Failed to gracefully shutdown LSP for ${language}: ${error}`);
|
|
319
320
|
}
|
|
320
321
|
finally {
|
|
321
322
|
if (!lspProc.process.killed) {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ChatCompletionFunctionTool } from "openai/resources.js";
|
|
2
2
|
import type { ToolPlugin, ToolResult, ToolContext } from "../tools/types.js";
|
|
3
|
+
import { Container } from "../utils/container.js";
|
|
3
4
|
import type { Logger, McpServerConfig, McpConfig, McpTool, McpServerStatus } from "../types/index.js";
|
|
4
5
|
export interface McpManagerCallbacks {
|
|
5
6
|
onServersChange?: (servers: McpServerStatus[]) => void;
|
|
@@ -9,14 +10,14 @@ export interface McpManagerOptions {
|
|
|
9
10
|
logger?: Logger;
|
|
10
11
|
}
|
|
11
12
|
export declare class McpManager {
|
|
13
|
+
private container;
|
|
12
14
|
private config;
|
|
13
15
|
private servers;
|
|
14
16
|
private connections;
|
|
15
17
|
private configPath;
|
|
16
18
|
private workdir;
|
|
17
19
|
private callbacks;
|
|
18
|
-
|
|
19
|
-
constructor(options?: McpManagerOptions);
|
|
20
|
+
constructor(container: Container, options?: McpManagerOptions);
|
|
20
21
|
/**
|
|
21
22
|
* Initialize MCP manager with working directory and optionally auto-connect
|
|
22
23
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcpManager.d.ts","sourceRoot":"","sources":["../../src/managers/mcpManager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAEjE,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,KAAK,EACV,MAAM,EACN,eAAe,EACf,SAAS,EACT,OAAO,EACP,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAQ3B,MAAM,WAAW,mBAAmB;IAClC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,IAAI,CAAC;CACxD;
|
|
1
|
+
{"version":3,"file":"mcpManager.d.ts","sourceRoot":"","sources":["../../src/managers/mcpManager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAEjE,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EACV,MAAM,EACN,eAAe,EACf,SAAS,EACT,OAAO,EACP,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAQ3B,MAAM,WAAW,mBAAmB;IAClC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,IAAI,CAAC;CACxD;AAID,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,UAAU;IASnB,OAAO,CAAC,SAAS;IARnB,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,OAAO,CAA2C;IAC1D,OAAO,CAAC,WAAW,CAAyC;IAC5D,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,SAAS,CAAsB;gBAG7B,SAAS,EAAE,SAAS,EAC5B,OAAO,GAAE,iBAAsB;IAKjC;;OAEG;IACG,UAAU,CACd,OAAO,EAAE,MAAM,EACf,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,IAAI,CAAC;IAwCV,kBAAkB,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAO/C,UAAU,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IA0CvC,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAWrD,SAAS,IAAI,SAAS,GAAG,IAAI;IAI7B,aAAa,IAAI,eAAe,EAAE;IAIlC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAIpD,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI;IASzE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO;IAyBzD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAgB7B,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA4F7C,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA2BtD,oBAAoB,IAAI,OAAO,EAAE;IAW3B,cAAc,CAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACtD,CAAC;YAqCY,uBAAuB;IA8D/B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAS9B;;OAEG;IACH,iBAAiB,IAAI,UAAU,EAAE;IA0BjC;;OAEG;IACH,iBAAiB,IAAI,0BAA0B,EAAE;IAIjD;;OAEG;IACG,wBAAwB,CAC5B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC;IActB;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAcjC"}
|
|
@@ -3,15 +3,16 @@ import { join } from "path";
|
|
|
3
3
|
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
|
|
4
4
|
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
|
|
5
5
|
import { createMcpToolPlugin, findToolServer } from "../utils/mcpUtils.js";
|
|
6
|
+
import { logger } from "../utils/globalLogger.js";
|
|
6
7
|
export class McpManager {
|
|
7
|
-
constructor(options = {}) {
|
|
8
|
+
constructor(container, options = {}) {
|
|
9
|
+
this.container = container;
|
|
8
10
|
this.config = null;
|
|
9
11
|
this.servers = new Map();
|
|
10
12
|
this.connections = new Map();
|
|
11
13
|
this.configPath = "";
|
|
12
14
|
this.workdir = "";
|
|
13
15
|
this.callbacks = options.callbacks || {};
|
|
14
|
-
this.logger = options.logger;
|
|
15
16
|
}
|
|
16
17
|
/**
|
|
17
18
|
* Initialize MCP manager with working directory and optionally auto-connect
|
|
@@ -20,30 +21,30 @@ export class McpManager {
|
|
|
20
21
|
this.configPath = join(workdir, ".mcp.json");
|
|
21
22
|
this.workdir = workdir;
|
|
22
23
|
if (autoConnect) {
|
|
23
|
-
|
|
24
|
+
logger?.debug("Initializing MCP servers...");
|
|
24
25
|
// Ensure MCP configuration is loaded
|
|
25
26
|
const config = await this.ensureConfigLoaded();
|
|
26
27
|
if (config && config.mcpServers) {
|
|
27
28
|
// Connect to all configured servers
|
|
28
29
|
const connectionPromises = Object.keys(config.mcpServers).map(async (serverName) => {
|
|
29
30
|
try {
|
|
30
|
-
|
|
31
|
+
logger?.debug(`Connecting to MCP server: ${serverName}`);
|
|
31
32
|
const success = await this.connectServer(serverName);
|
|
32
33
|
if (success) {
|
|
33
|
-
|
|
34
|
+
logger?.debug(`Successfully connected to MCP server: ${serverName}`);
|
|
34
35
|
}
|
|
35
36
|
else {
|
|
36
|
-
|
|
37
|
+
logger?.warn(`Failed to connect to MCP server: ${serverName}`);
|
|
37
38
|
}
|
|
38
39
|
}
|
|
39
40
|
catch {
|
|
40
|
-
|
|
41
|
+
logger?.error(`Error connecting to MCP server ${serverName}`);
|
|
41
42
|
}
|
|
42
43
|
});
|
|
43
44
|
// Wait for all connection attempts to complete
|
|
44
45
|
await Promise.all(connectionPromises);
|
|
45
46
|
}
|
|
46
|
-
|
|
47
|
+
logger?.debug("MCP servers initialization completed");
|
|
47
48
|
// Trigger state change callback after initialization
|
|
48
49
|
this.callbacks.onServersChange?.(this.getAllServers());
|
|
49
50
|
}
|
|
@@ -56,7 +57,7 @@ export class McpManager {
|
|
|
56
57
|
}
|
|
57
58
|
async loadConfig() {
|
|
58
59
|
if (!this.configPath) {
|
|
59
|
-
|
|
60
|
+
logger?.warn("MCP config path not set. Call initialize() first.");
|
|
60
61
|
return null;
|
|
61
62
|
}
|
|
62
63
|
try {
|
|
@@ -88,7 +89,7 @@ export class McpManager {
|
|
|
88
89
|
catch (error) {
|
|
89
90
|
// Only log error if it's not a "file not found" error
|
|
90
91
|
if (error.code !== "ENOENT") {
|
|
91
|
-
|
|
92
|
+
logger?.error("Failed to load .mcp.json:", error);
|
|
92
93
|
}
|
|
93
94
|
return null;
|
|
94
95
|
}
|
|
@@ -100,7 +101,7 @@ export class McpManager {
|
|
|
100
101
|
return true;
|
|
101
102
|
}
|
|
102
103
|
catch (error) {
|
|
103
|
-
|
|
104
|
+
logger?.error("Failed to save .mcp.json:", error);
|
|
104
105
|
return false;
|
|
105
106
|
}
|
|
106
107
|
}
|
|
@@ -181,14 +182,14 @@ export class McpManager {
|
|
|
181
182
|
});
|
|
182
183
|
// Handle transport errors
|
|
183
184
|
transport.onerror = (error) => {
|
|
184
|
-
|
|
185
|
+
logger?.error(`MCP Server ${name} transport error:`, error);
|
|
185
186
|
this.updateServerStatus(name, {
|
|
186
187
|
status: "error",
|
|
187
188
|
error: error.message,
|
|
188
189
|
});
|
|
189
190
|
};
|
|
190
191
|
transport.onclose = () => {
|
|
191
|
-
|
|
192
|
+
logger?.debug(`MCP Server ${name} transport closed`);
|
|
192
193
|
this.connections.delete(name);
|
|
193
194
|
this.updateServerStatus(name, {
|
|
194
195
|
status: "disconnected",
|
|
@@ -223,7 +224,7 @@ export class McpManager {
|
|
|
223
224
|
return true;
|
|
224
225
|
}
|
|
225
226
|
catch (error) {
|
|
226
|
-
|
|
227
|
+
logger?.error(`Failed to connect to MCP server ${name}:`, error);
|
|
227
228
|
// updateServerStatus will trigger the callback
|
|
228
229
|
this.updateServerStatus(name, {
|
|
229
230
|
status: "error",
|
|
@@ -251,7 +252,7 @@ export class McpManager {
|
|
|
251
252
|
return true;
|
|
252
253
|
}
|
|
253
254
|
catch (error) {
|
|
254
|
-
|
|
255
|
+
logger?.error(`Error disconnecting from MCP server ${name}:`, error);
|
|
255
256
|
return false;
|
|
256
257
|
}
|
|
257
258
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { UserMessageParams, type AgentToolBlockUpdateParams } from "../utils/messageOperations.js";
|
|
2
|
-
import type {
|
|
2
|
+
import type { Message, Usage, SlashCommand } from "../types/index.js";
|
|
3
3
|
import { SessionData } from "../services/session.js";
|
|
4
4
|
import { ChatCompletionMessageFunctionToolCall } from "openai/resources.js";
|
|
5
|
-
import
|
|
5
|
+
import { Container } from "../utils/container.js";
|
|
6
6
|
export interface MessageManagerCallbacks {
|
|
7
7
|
onMessagesChange?: (messages: Message[]) => void;
|
|
8
8
|
onSessionIdChange?: (sessionId: string) => void;
|
|
@@ -28,12 +28,11 @@ export interface MessageManagerCallbacks {
|
|
|
28
28
|
export interface MessageManagerOptions {
|
|
29
29
|
callbacks: MessageManagerCallbacks;
|
|
30
30
|
workdir: string;
|
|
31
|
-
logger?: Logger;
|
|
32
31
|
sessionType?: "main" | "subagent";
|
|
33
32
|
subagentType?: string;
|
|
34
|
-
memoryRuleManager?: MemoryRuleManager;
|
|
35
33
|
}
|
|
36
34
|
export declare class MessageManager {
|
|
35
|
+
private container;
|
|
37
36
|
private sessionId;
|
|
38
37
|
private rootSessionId;
|
|
39
38
|
private parentSessionId?;
|
|
@@ -41,15 +40,14 @@ export declare class MessageManager {
|
|
|
41
40
|
private latestTotalTokens;
|
|
42
41
|
private workdir;
|
|
43
42
|
private encodedWorkdir;
|
|
44
|
-
private logger?;
|
|
45
43
|
private callbacks;
|
|
46
44
|
private transcriptPath;
|
|
47
45
|
private savedMessageCount;
|
|
48
46
|
private filesInContext;
|
|
49
|
-
private memoryRuleManager?;
|
|
50
47
|
private sessionType;
|
|
51
48
|
private subagentType?;
|
|
52
|
-
constructor(options: MessageManagerOptions);
|
|
49
|
+
constructor(container: Container, options: MessageManagerOptions);
|
|
50
|
+
private get memoryRuleManager();
|
|
53
51
|
getSessionId(): string;
|
|
54
52
|
getRootSessionId(): string;
|
|
55
53
|
getParentSessionId(): string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messageManager.d.ts","sourceRoot":"","sources":["../../src/managers/messageManager.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,iBAAiB,EACjB,KAAK,0BAA0B,EAChC,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"messageManager.d.ts","sourceRoot":"","sources":["../../src/managers/messageManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,10 @@ import { addAssistantMessageToMessages, updateToolBlockInMessage, addErrorBlockT
|
|
|
2
2
|
import { join } from "path";
|
|
3
3
|
import { appendMessages, createSession, generateSessionId, SESSION_DIR, } from "../services/session.js";
|
|
4
4
|
import { pathEncoder } from "../utils/pathEncoder.js";
|
|
5
|
+
import { logger } from "../utils/globalLogger.js";
|
|
5
6
|
export class MessageManager {
|
|
6
|
-
constructor(options) {
|
|
7
|
+
constructor(container, options) {
|
|
8
|
+
this.container = container;
|
|
7
9
|
this.filesInContext = new Set(); // Track files mentioned in the conversation
|
|
8
10
|
this.sessionId = generateSessionId();
|
|
9
11
|
this.rootSessionId = this.sessionId;
|
|
@@ -12,14 +14,17 @@ export class MessageManager {
|
|
|
12
14
|
this.workdir = options.workdir;
|
|
13
15
|
this.encodedWorkdir = pathEncoder.encodeSync(this.workdir); // Cache encoded workdir
|
|
14
16
|
this.callbacks = options.callbacks;
|
|
15
|
-
this.logger = options.logger;
|
|
16
17
|
this.savedMessageCount = 0; // Initialize saved message count tracker
|
|
17
18
|
this.sessionType = options.sessionType || "main";
|
|
18
19
|
this.subagentType = options.subagentType;
|
|
19
|
-
this.memoryRuleManager = options.memoryRuleManager;
|
|
20
20
|
// Compute and cache the transcript path
|
|
21
21
|
this.transcriptPath = this.computeTranscriptPath();
|
|
22
22
|
}
|
|
23
|
+
get memoryRuleManager() {
|
|
24
|
+
return this.container.has("MemoryRuleManager")
|
|
25
|
+
? this.container.get("MemoryRuleManager")
|
|
26
|
+
: undefined;
|
|
27
|
+
}
|
|
23
28
|
// Getter methods
|
|
24
29
|
getSessionId() {
|
|
25
30
|
return this.sessionId;
|
|
@@ -61,7 +66,7 @@ export class MessageManager {
|
|
|
61
66
|
const filesInContext = this.getFilesInContext();
|
|
62
67
|
const activeRules = this.memoryRuleManager.getActiveRules(filesInContext);
|
|
63
68
|
if (activeRules.length > 0) {
|
|
64
|
-
|
|
69
|
+
logger?.debug(`Active modular rules (${activeRules.length}): ${activeRules.map((r) => r.id).join(", ")}`);
|
|
65
70
|
if (combined) {
|
|
66
71
|
combined += "\n\n";
|
|
67
72
|
}
|
|
@@ -99,7 +104,7 @@ export class MessageManager {
|
|
|
99
104
|
await createSession(this.sessionId, this.workdir, this.sessionType);
|
|
100
105
|
}
|
|
101
106
|
catch (error) {
|
|
102
|
-
|
|
107
|
+
logger?.error("Failed to create session:", error);
|
|
103
108
|
}
|
|
104
109
|
}
|
|
105
110
|
setMessages(messages) {
|
|
@@ -130,7 +135,7 @@ export class MessageManager {
|
|
|
130
135
|
this.savedMessageCount = this.messages.length;
|
|
131
136
|
}
|
|
132
137
|
catch (error) {
|
|
133
|
-
|
|
138
|
+
logger?.error("Failed to save session:", error);
|
|
134
139
|
}
|
|
135
140
|
}
|
|
136
141
|
setlatestTotalTokens(latestTotalTokens) {
|
|
@@ -506,7 +511,7 @@ export class MessageManager {
|
|
|
506
511
|
await writeFile(this.transcriptPath, content, "utf8");
|
|
507
512
|
}
|
|
508
513
|
catch (error) {
|
|
509
|
-
|
|
514
|
+
logger?.error("Failed to rewrite session file:", error);
|
|
510
515
|
}
|
|
511
516
|
}
|
|
512
517
|
/**
|
|
@@ -7,9 +7,8 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import type { PermissionDecision, ToolPermissionContext, PermissionCallback, PermissionMode } from "../types/permissions.js";
|
|
9
9
|
import type { Logger } from "../types/index.js";
|
|
10
|
+
import { Container } from "../utils/container.js";
|
|
10
11
|
export interface PermissionManagerOptions {
|
|
11
|
-
/** Logger for debugging permission decisions */
|
|
12
|
-
logger?: Logger;
|
|
13
12
|
/** Configured default permission mode from settings */
|
|
14
13
|
configuredDefaultMode?: PermissionMode;
|
|
15
14
|
/** Allowed rules from settings */
|
|
@@ -22,9 +21,11 @@ export interface PermissionManagerOptions {
|
|
|
22
21
|
workdir?: string;
|
|
23
22
|
/** Path to the current plan file */
|
|
24
23
|
planFilePath?: string;
|
|
24
|
+
/** Optional logger */
|
|
25
|
+
logger?: Logger;
|
|
25
26
|
}
|
|
26
27
|
export declare class PermissionManager {
|
|
27
|
-
private
|
|
28
|
+
private container;
|
|
28
29
|
private configuredDefaultMode?;
|
|
29
30
|
private allowedRules;
|
|
30
31
|
private deniedRules;
|
|
@@ -33,7 +34,8 @@ export declare class PermissionManager {
|
|
|
33
34
|
private workdir?;
|
|
34
35
|
private planFilePath?;
|
|
35
36
|
private onConfiguredDefaultModeChange?;
|
|
36
|
-
|
|
37
|
+
private _logger?;
|
|
38
|
+
constructor(container: Container, options?: PermissionManagerOptions);
|
|
37
39
|
/**
|
|
38
40
|
* Set a callback to be notified when the effective permission mode changes due to configuration updates
|
|
39
41
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissionManager.d.ts","sourceRoot":"","sources":["../../src/managers/permissionManager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACf,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"permissionManager.d.ts","sourceRoot":"","sources":["../../src/managers/permissionManager.ts"],"names":[],"mappings":"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"}
|