@spenceriam/impulse 0.15.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/README.md +194 -0
- package/dist/api/client.d.ts +53 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/api/client.js +271 -0
- package/dist/api/client.js.map +1 -0
- package/dist/api/index.d.ts +6 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +7 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/stream.d.ts +98 -0
- package/dist/api/stream.d.ts.map +1 -0
- package/dist/api/stream.js +202 -0
- package/dist/api/stream.js.map +1 -0
- package/dist/api/types.d.ts +1353 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +143 -0
- package/dist/api/types.js.map +1 -0
- package/dist/bash.txt +28 -0
- package/dist/bus/bus.d.ts +21 -0
- package/dist/bus/bus.d.ts.map +1 -0
- package/dist/bus/bus.js +22 -0
- package/dist/bus/bus.js.map +1 -0
- package/dist/bus/events.d.ts +100 -0
- package/dist/bus/events.d.ts.map +1 -0
- package/dist/bus/events.js +45 -0
- package/dist/bus/events.js.map +1 -0
- package/dist/bus/index.d.ts +3 -0
- package/dist/bus/index.d.ts.map +1 -0
- package/dist/bus/index.js +3 -0
- package/dist/bus/index.js.map +1 -0
- package/dist/file-edit.txt +21 -0
- package/dist/file-read.txt +18 -0
- package/dist/file-write.txt +16 -0
- package/dist/glob.txt +19 -0
- package/dist/global.d.ts +8 -0
- package/dist/global.d.ts.map +1 -0
- package/dist/global.js +14 -0
- package/dist/global.js.map +1 -0
- package/dist/grep.txt +20 -0
- package/dist/highlights-eq9cgrbb.scm +604 -0
- package/dist/highlights-ghv9g403.scm +205 -0
- package/dist/highlights-hk7bwhj4.scm +284 -0
- package/dist/highlights-r812a2qc.scm +150 -0
- package/dist/highlights-x6tmsnaa.scm +115 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +62122 -0
- package/dist/index.js.map +1 -0
- package/dist/index.jsx +5 -0
- package/dist/index.jsx.map +1 -0
- package/dist/injections-73j83es3.scm +27 -0
- package/dist/input/at-refs.d.ts +42 -0
- package/dist/input/at-refs.d.ts.map +1 -0
- package/dist/input/at-refs.js +154 -0
- package/dist/input/at-refs.js.map +1 -0
- package/dist/input/history.d.ts +26 -0
- package/dist/input/history.d.ts.map +1 -0
- package/dist/input/history.js +109 -0
- package/dist/input/history.js.map +1 -0
- package/dist/input/index.d.ts +5 -0
- package/dist/input/index.d.ts.map +1 -0
- package/dist/input/index.js +5 -0
- package/dist/input/index.js.map +1 -0
- package/dist/input/paste.d.ts +19 -0
- package/dist/input/paste.d.ts.map +1 -0
- package/dist/input/paste.js +75 -0
- package/dist/input/paste.js.map +1 -0
- package/dist/input/shortcuts.d.ts +6 -0
- package/dist/input/shortcuts.d.ts.map +1 -0
- package/dist/input/shortcuts.js +84 -0
- package/dist/input/shortcuts.js.map +1 -0
- package/dist/mcp/index.d.ts +3 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +3 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/manager.d.ts +51 -0
- package/dist/mcp/manager.d.ts.map +1 -0
- package/dist/mcp/manager.js +158 -0
- package/dist/mcp/manager.js.map +1 -0
- package/dist/mcp/types.d.ts +18 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +5 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/session/todo.d.ts +24 -0
- package/dist/session/todo.d.ts.map +1 -0
- package/dist/session/todo.js +39 -0
- package/dist/session/todo.js.map +1 -0
- package/dist/storage/index.d.ts +2 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +2 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/storage.d.ts +13 -0
- package/dist/storage/storage.d.ts.map +1 -0
- package/dist/storage/storage.js +84 -0
- package/dist/storage/storage.js.map +1 -0
- package/dist/task.txt +26 -0
- package/dist/todo-read.txt +14 -0
- package/dist/todo-write.txt +166 -0
- package/dist/tools/bash.d.ts +22 -0
- package/dist/tools/bash.d.ts.map +1 -0
- package/dist/tools/bash.js +70 -0
- package/dist/tools/bash.js.map +1 -0
- package/dist/tools/file-edit.d.ts +22 -0
- package/dist/tools/file-edit.d.ts.map +1 -0
- package/dist/tools/file-edit.js +67 -0
- package/dist/tools/file-edit.js.map +1 -0
- package/dist/tools/file-read.d.ts +19 -0
- package/dist/tools/file-read.d.ts.map +1 -0
- package/dist/tools/file-read.js +70 -0
- package/dist/tools/file-read.js.map +1 -0
- package/dist/tools/file-write.d.ts +16 -0
- package/dist/tools/file-write.d.ts.map +1 -0
- package/dist/tools/file-write.js +45 -0
- package/dist/tools/file-write.js.map +1 -0
- package/dist/tools/glob.d.ts +16 -0
- package/dist/tools/glob.d.ts.map +1 -0
- package/dist/tools/glob.js +45 -0
- package/dist/tools/glob.js.map +1 -0
- package/dist/tools/grep.d.ts +19 -0
- package/dist/tools/grep.d.ts.map +1 -0
- package/dist/tools/grep.js +65 -0
- package/dist/tools/grep.js.map +1 -0
- package/dist/tools/index.d.ts +11 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +11 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/registry.d.ts +22 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +75 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/task.d.ts +19 -0
- package/dist/tools/task.d.ts.map +1 -0
- package/dist/tools/task.js +51 -0
- package/dist/tools/task.js.map +1 -0
- package/dist/tools/todo-read.d.ts +7 -0
- package/dist/tools/todo-read.d.ts.map +1 -0
- package/dist/tools/todo-read.js +56 -0
- package/dist/tools/todo-read.js.map +1 -0
- package/dist/tools/todo-write.d.ts +38 -0
- package/dist/tools/todo-write.d.ts.map +1 -0
- package/dist/tools/todo-write.js +40 -0
- package/dist/tools/todo-write.js.map +1 -0
- package/dist/tree-sitter-javascript-nd0q4pe9.wasm +0 -0
- package/dist/tree-sitter-markdown-411r6y9b.wasm +0 -0
- package/dist/tree-sitter-markdown_inline-j5349f42.wasm +0 -0
- package/dist/tree-sitter-typescript-zxjzwt75.wasm +0 -0
- package/dist/tree-sitter-zig-e78zbjpm.wasm +0 -0
- package/dist/ui/App.d.ts +6 -0
- package/dist/ui/App.d.ts.map +1 -0
- package/dist/ui/App.jsx +37 -0
- package/dist/ui/App.jsx.map +1 -0
- package/dist/ui/components/Autocomplete.d.ts +24 -0
- package/dist/ui/components/Autocomplete.d.ts.map +1 -0
- package/dist/ui/components/Autocomplete.jsx +67 -0
- package/dist/ui/components/Autocomplete.jsx.map +1 -0
- package/dist/ui/components/ChatView.d.ts +14 -0
- package/dist/ui/components/ChatView.d.ts.map +1 -0
- package/dist/ui/components/ChatView.jsx +11 -0
- package/dist/ui/components/ChatView.jsx.map +1 -0
- package/dist/ui/components/InputArea.d.ts +18 -0
- package/dist/ui/components/InputArea.d.ts.map +1 -0
- package/dist/ui/components/InputArea.jsx +35 -0
- package/dist/ui/components/InputArea.jsx.map +1 -0
- package/dist/ui/components/MessageBlock.d.ts +21 -0
- package/dist/ui/components/MessageBlock.d.ts.map +1 -0
- package/dist/ui/components/MessageBlock.jsx +94 -0
- package/dist/ui/components/MessageBlock.jsx.map +1 -0
- package/dist/ui/components/Overlay.d.ts +28 -0
- package/dist/ui/components/Overlay.d.ts.map +1 -0
- package/dist/ui/components/Overlay.jsx +102 -0
- package/dist/ui/components/Overlay.jsx.map +1 -0
- package/dist/ui/components/ProgressBar.d.ts +9 -0
- package/dist/ui/components/ProgressBar.d.ts.map +1 -0
- package/dist/ui/components/ProgressBar.jsx +17 -0
- package/dist/ui/components/ProgressBar.jsx.map +1 -0
- package/dist/ui/components/Sidebar.d.ts +22 -0
- package/dist/ui/components/Sidebar.d.ts.map +1 -0
- package/dist/ui/components/Sidebar.jsx +96 -0
- package/dist/ui/components/Sidebar.jsx.map +1 -0
- package/dist/ui/components/StatusLine.d.ts +6 -0
- package/dist/ui/components/StatusLine.d.ts.map +1 -0
- package/dist/ui/components/StatusLine.jsx +32 -0
- package/dist/ui/components/StatusLine.jsx.map +1 -0
- package/dist/ui/components/ThinkingBlock.d.ts +15 -0
- package/dist/ui/components/ThinkingBlock.d.ts.map +1 -0
- package/dist/ui/components/ThinkingBlock.jsx +33 -0
- package/dist/ui/components/ThinkingBlock.jsx.map +1 -0
- package/dist/ui/components/TodoItem.d.ts +22 -0
- package/dist/ui/components/TodoItem.d.ts.map +1 -0
- package/dist/ui/components/TodoItem.jsx +11 -0
- package/dist/ui/components/TodoItem.jsx.map +1 -0
- package/dist/ui/components/ToolBlock.d.ts +27 -0
- package/dist/ui/components/ToolBlock.d.ts.map +1 -0
- package/dist/ui/components/ToolBlock.jsx +76 -0
- package/dist/ui/components/ToolBlock.jsx.map +1 -0
- package/dist/ui/components/index.d.ts +12 -0
- package/dist/ui/components/index.d.ts.map +1 -0
- package/dist/ui/components/index.js +12 -0
- package/dist/ui/components/index.js.map +1 -0
- package/dist/ui/context/index.d.ts +4 -0
- package/dist/ui/context/index.d.ts.map +1 -0
- package/dist/ui/context/index.js +4 -0
- package/dist/ui/context/index.js.map +1 -0
- package/dist/ui/context/mode.d.ts +24 -0
- package/dist/ui/context/mode.d.ts.map +1 -0
- package/dist/ui/context/mode.jsx +53 -0
- package/dist/ui/context/mode.jsx.map +1 -0
- package/dist/ui/context/session.d.ts +43 -0
- package/dist/ui/context/session.d.ts.map +1 -0
- package/dist/ui/context/session.jsx +63 -0
- package/dist/ui/context/session.jsx.map +1 -0
- package/dist/ui/context/todo.d.ts +32 -0
- package/dist/ui/context/todo.d.ts.map +1 -0
- package/dist/ui/context/todo.jsx +75 -0
- package/dist/ui/context/todo.jsx.map +1 -0
- package/dist/ui/design.d.ts +182 -0
- package/dist/ui/design.d.ts.map +1 -0
- package/dist/ui/design.js +189 -0
- package/dist/ui/design.js.map +1 -0
- package/dist/ui/index.d.ts +4 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +3 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/util/config.d.ts +22 -0
- package/dist/util/config.d.ts.map +1 -0
- package/dist/util/config.js +55 -0
- package/dist/util/config.js.map +1 -0
- package/dist/util/instructions.d.ts +39 -0
- package/dist/util/instructions.d.ts.map +1 -0
- package/dist/util/instructions.js +96 -0
- package/dist/util/instructions.js.map +1 -0
- package/dist/util/lock.d.ts +18 -0
- package/dist/util/lock.d.ts.map +1 -0
- package/dist/util/lock.js +65 -0
- package/dist/util/lock.js.map +1 -0
- package/dist/util/logger.d.ts +8 -0
- package/dist/util/logger.d.ts.map +1 -0
- package/dist/util/logger.js +81 -0
- package/dist/util/logger.js.map +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { MCPServer, MCPServerName } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* MCP Manager
|
|
4
|
+
* Manages all 4 MCP servers with single API key configuration
|
|
5
|
+
*/
|
|
6
|
+
export declare class MCPManager {
|
|
7
|
+
private servers;
|
|
8
|
+
private initialized;
|
|
9
|
+
constructor();
|
|
10
|
+
/**
|
|
11
|
+
* Initialize all MCP servers on startup
|
|
12
|
+
*/
|
|
13
|
+
private initialize;
|
|
14
|
+
/**
|
|
15
|
+
* Initialize a single MCP server
|
|
16
|
+
*/
|
|
17
|
+
private initializeServer;
|
|
18
|
+
/**
|
|
19
|
+
* Initialize HTTP-based MCP server
|
|
20
|
+
*/
|
|
21
|
+
private initializeHTTPServer;
|
|
22
|
+
/**
|
|
23
|
+
* Initialize stdio-based MCP server
|
|
24
|
+
*/
|
|
25
|
+
private initializeStdioServer;
|
|
26
|
+
/**
|
|
27
|
+
* Get server status by name
|
|
28
|
+
*/
|
|
29
|
+
getServer(name: MCPServerName): MCPServer | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* Get all servers
|
|
32
|
+
*/
|
|
33
|
+
getAllServers(): MCPServer[];
|
|
34
|
+
/**
|
|
35
|
+
* Get connected servers
|
|
36
|
+
*/
|
|
37
|
+
getConnectedServers(): MCPServer[];
|
|
38
|
+
/**
|
|
39
|
+
* Get connection status summary
|
|
40
|
+
*/
|
|
41
|
+
getConnectionSummary(): {
|
|
42
|
+
total: number;
|
|
43
|
+
connected: number;
|
|
44
|
+
failed: number;
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Singleton MCP Manager instance
|
|
49
|
+
*/
|
|
50
|
+
export declare const mcpManager: MCPManager;
|
|
51
|
+
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/mcp/manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAmB,aAAa,EAAE,MAAM,SAAS,CAAC;AAEpE;;;GAGG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAA4C;IAC3D,OAAO,CAAC,WAAW,CAAS;;IAM5B;;OAEG;YACW,UAAU;IA6CxB;;OAEG;YACW,gBAAgB;IA2B9B;;OAEG;YACW,oBAAoB;IAoBlC;;OAEG;YACW,qBAAqB;IAyBnC;;OAEG;IACI,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,GAAG,SAAS;IAI5D;;OAEG;IACI,aAAa,IAAI,SAAS,EAAE;IAInC;;OAEG;IACI,mBAAmB,IAAI,SAAS,EAAE;IAMzC;;OAEG;IACI,oBAAoB,IAAI;QAC7B,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KAChB;CAQF;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,YAAmB,CAAC"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { load } from "../util/config";
|
|
2
|
+
/**
|
|
3
|
+
* MCP Manager
|
|
4
|
+
* Manages all 4 MCP servers with single API key configuration
|
|
5
|
+
*/
|
|
6
|
+
export class MCPManager {
|
|
7
|
+
servers = new Map();
|
|
8
|
+
initialized = false;
|
|
9
|
+
constructor() {
|
|
10
|
+
this.initialize();
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Initialize all MCP servers on startup
|
|
14
|
+
*/
|
|
15
|
+
async initialize() {
|
|
16
|
+
if (this.initialized) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
const config = await load();
|
|
20
|
+
const apiKey = config.apiKey;
|
|
21
|
+
if (!apiKey) {
|
|
22
|
+
console.error("MCP Manager: No API key configured");
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
// Define all 4 MCP server configurations
|
|
26
|
+
const serverConfigs = [
|
|
27
|
+
{
|
|
28
|
+
name: "vision",
|
|
29
|
+
type: "stdio",
|
|
30
|
+
executable: "mcp-server-vision",
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: "web-search",
|
|
34
|
+
type: "http",
|
|
35
|
+
url: "https://api.z.ai/mcp/web-search",
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: "web-reader",
|
|
39
|
+
type: "http",
|
|
40
|
+
url: "https://api.z.ai/mcp/web-reader",
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: "zread",
|
|
44
|
+
type: "http",
|
|
45
|
+
url: "https://api.z.ai/mcp/zread",
|
|
46
|
+
},
|
|
47
|
+
];
|
|
48
|
+
// Initialize each server
|
|
49
|
+
for (const serverConfig of serverConfigs) {
|
|
50
|
+
await this.initializeServer(serverConfig, apiKey);
|
|
51
|
+
}
|
|
52
|
+
this.initialized = true;
|
|
53
|
+
console.log("MCP Manager: All servers initialized");
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Initialize a single MCP server
|
|
57
|
+
*/
|
|
58
|
+
async initializeServer(config, apiKey) {
|
|
59
|
+
const server = {
|
|
60
|
+
config,
|
|
61
|
+
status: "connected",
|
|
62
|
+
tools: [],
|
|
63
|
+
};
|
|
64
|
+
try {
|
|
65
|
+
// Different initialization based on server type
|
|
66
|
+
if (config.type === "http") {
|
|
67
|
+
await this.initializeHTTPServer(server, apiKey);
|
|
68
|
+
}
|
|
69
|
+
else if (config.type === "stdio") {
|
|
70
|
+
await this.initializeStdioServer(server, apiKey);
|
|
71
|
+
}
|
|
72
|
+
this.servers.set(config.name, server);
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
server.status = "failed";
|
|
76
|
+
server.error = error instanceof Error ? error.message : String(error);
|
|
77
|
+
this.servers.set(config.name, server);
|
|
78
|
+
console.error(`MCP Manager: Failed to initialize ${config.name}:`, error);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Initialize HTTP-based MCP server
|
|
83
|
+
*/
|
|
84
|
+
async initializeHTTPServer(server, _apiKey) {
|
|
85
|
+
const { url } = server.config;
|
|
86
|
+
if (!url) {
|
|
87
|
+
throw new Error("HTTP server requires URL");
|
|
88
|
+
}
|
|
89
|
+
// TODO: Implement actual HTTP connection
|
|
90
|
+
// For now, just mark as connected with mock tools
|
|
91
|
+
if (server.config.name === "web-search") {
|
|
92
|
+
server.tools = ["webSearchPrime"];
|
|
93
|
+
}
|
|
94
|
+
else if (server.config.name === "web-reader") {
|
|
95
|
+
server.tools = ["webReader"];
|
|
96
|
+
}
|
|
97
|
+
else if (server.config.name === "zread") {
|
|
98
|
+
server.tools = ["search_doc", "get_repo_structure", "read_file"];
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Initialize stdio-based MCP server
|
|
103
|
+
*/
|
|
104
|
+
async initializeStdioServer(server, _apiKey) {
|
|
105
|
+
const { executable } = server.config;
|
|
106
|
+
if (!executable) {
|
|
107
|
+
throw new Error("stdio server requires executable");
|
|
108
|
+
}
|
|
109
|
+
// TODO: Implement actual stdio process spawning
|
|
110
|
+
// For now, just mark as connected with mock tools
|
|
111
|
+
if (server.config.name === "vision") {
|
|
112
|
+
server.tools = [
|
|
113
|
+
"ui_to_artifact",
|
|
114
|
+
"extract_text_from_screenshot",
|
|
115
|
+
"diagnose_error_screenshot",
|
|
116
|
+
"understand_technical_diagram",
|
|
117
|
+
"analyze_data_visualization",
|
|
118
|
+
"ui_diff_check",
|
|
119
|
+
"image_analysis",
|
|
120
|
+
"video_analysis",
|
|
121
|
+
];
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Get server status by name
|
|
126
|
+
*/
|
|
127
|
+
getServer(name) {
|
|
128
|
+
return this.servers.get(name);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Get all servers
|
|
132
|
+
*/
|
|
133
|
+
getAllServers() {
|
|
134
|
+
return Array.from(this.servers.values());
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Get connected servers
|
|
138
|
+
*/
|
|
139
|
+
getConnectedServers() {
|
|
140
|
+
return this.getAllServers().filter((server) => server.status === "connected");
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Get connection status summary
|
|
144
|
+
*/
|
|
145
|
+
getConnectionSummary() {
|
|
146
|
+
const servers = this.getAllServers();
|
|
147
|
+
return {
|
|
148
|
+
total: servers.length,
|
|
149
|
+
connected: servers.filter((s) => s.status === "connected").length,
|
|
150
|
+
failed: servers.filter((s) => s.status === "failed").length,
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Singleton MCP Manager instance
|
|
156
|
+
*/
|
|
157
|
+
export const mcpManager = new MCPManager();
|
|
158
|
+
//# sourceMappingURL=manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/mcp/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Server Types
|
|
3
|
+
*/
|
|
4
|
+
export type MCPServerName = "vision" | "web-search" | "web-reader" | "zread";
|
|
5
|
+
export type MCPConnectionStatus = "connected" | "failed" | "disabled";
|
|
6
|
+
export interface MCPServerConfig {
|
|
7
|
+
name: MCPServerName;
|
|
8
|
+
type: "stdio" | "http";
|
|
9
|
+
url?: string;
|
|
10
|
+
executable?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface MCPServer {
|
|
13
|
+
config: MCPServerConfig;
|
|
14
|
+
status: MCPConnectionStatus;
|
|
15
|
+
error?: string;
|
|
16
|
+
tools: string[];
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/mcp/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,YAAY,GAAG,YAAY,GAAG,OAAO,CAAC;AAE7E,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEtE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/mcp/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const TodoSchema: z.ZodObject<{
|
|
3
|
+
id: z.ZodString;
|
|
4
|
+
content: z.ZodString;
|
|
5
|
+
status: z.ZodEnum<["pending", "in_progress", "completed", "cancelled"]>;
|
|
6
|
+
priority: z.ZodEnum<["high", "medium", "low"]>;
|
|
7
|
+
}, "strip", z.ZodTypeAny, {
|
|
8
|
+
status: "pending" | "in_progress" | "completed" | "cancelled";
|
|
9
|
+
id: string;
|
|
10
|
+
content: string;
|
|
11
|
+
priority: "low" | "high" | "medium";
|
|
12
|
+
}, {
|
|
13
|
+
status: "pending" | "in_progress" | "completed" | "cancelled";
|
|
14
|
+
id: string;
|
|
15
|
+
content: string;
|
|
16
|
+
priority: "low" | "high" | "medium";
|
|
17
|
+
}>;
|
|
18
|
+
export type Todo = z.infer<typeof TodoSchema>;
|
|
19
|
+
export declare namespace Todo {
|
|
20
|
+
function get(): Promise<Todo[]>;
|
|
21
|
+
function update(todos: Todo[]): Promise<void>;
|
|
22
|
+
function create(content: string, priority?: "high" | "medium" | "low"): Todo;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=todo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"todo.d.ts","sourceRoot":"","sources":["../../src/session/todo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;EAKrB,CAAC;AAEH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAE9C,yBAAiB,IAAI,CAAC;IAGpB,SAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAO3C;IAED,SAAsB,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAMzD;IAED,SAAgB,MAAM,CACpB,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAM,GAAG,QAAQ,GAAG,KAAgB,GAC7C,IAAI,CAON;CACF"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { Storage } from "../storage";
|
|
3
|
+
export const TodoSchema = z.object({
|
|
4
|
+
id: z.string(),
|
|
5
|
+
content: z.string(),
|
|
6
|
+
status: z.enum(["pending", "in_progress", "completed", "cancelled"]),
|
|
7
|
+
priority: z.enum(["high", "medium", "low"]),
|
|
8
|
+
});
|
|
9
|
+
export var Todo;
|
|
10
|
+
(function (Todo) {
|
|
11
|
+
const sessionID = "default";
|
|
12
|
+
async function get() {
|
|
13
|
+
try {
|
|
14
|
+
const data = await Storage.read(["todo", sessionID]);
|
|
15
|
+
return data ?? [];
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return [];
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
Todo.get = get;
|
|
22
|
+
async function update(todos) {
|
|
23
|
+
await Storage.write(["todo", sessionID], todos);
|
|
24
|
+
const { TodoEvents } = await import("../bus/events");
|
|
25
|
+
const { Bus } = await import("../bus");
|
|
26
|
+
Bus.publish(TodoEvents.Updated, { sessionID, todos });
|
|
27
|
+
}
|
|
28
|
+
Todo.update = update;
|
|
29
|
+
function create(content, priority = "medium") {
|
|
30
|
+
return {
|
|
31
|
+
id: crypto.randomUUID(),
|
|
32
|
+
content,
|
|
33
|
+
status: "pending",
|
|
34
|
+
priority,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
Todo.create = create;
|
|
38
|
+
})(Todo || (Todo = {}));
|
|
39
|
+
//# sourceMappingURL=todo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"todo.js","sourceRoot":"","sources":["../../src/session/todo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IACpE,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;CAC5C,CAAC,CAAC;AAIH,MAAM,KAAW,IAAI,CA+BpB;AA/BD,WAAiB,IAAI;IACnB,MAAM,SAAS,GAAG,SAAS,CAAC;IAErB,KAAK,UAAU,GAAG;QACvB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;YAC7D,OAAO,IAAI,IAAI,EAAE,CAAC;QACpB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAPqB,QAAG,MAOxB,CAAA;IAEM,KAAK,UAAU,MAAM,CAAC,KAAa;QACxC,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;QAEhD,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QACrD,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,CAAC;IANqB,WAAM,SAM3B,CAAA;IAED,SAAgB,MAAM,CACpB,OAAe,EACf,WAAsC,QAAQ;QAE9C,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;YACvB,OAAO;YACP,MAAM,EAAE,SAAS;YACjB,QAAQ;SACT,CAAC;IACJ,CAAC;IAVe,WAAM,SAUrB,CAAA;AACH,CAAC,EA/BgB,IAAI,KAAJ,IAAI,QA+BpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
declare class NotFoundErrorImpl extends Error {
|
|
2
|
+
constructor(message: string);
|
|
3
|
+
}
|
|
4
|
+
export declare namespace Storage {
|
|
5
|
+
const NotFoundError: typeof NotFoundErrorImpl;
|
|
6
|
+
function read<T>(key: string[]): Promise<T>;
|
|
7
|
+
function write<T>(key: string[], content: T): Promise<void>;
|
|
8
|
+
function update<T>(key: string[], fn: (draft: T) => void): Promise<T>;
|
|
9
|
+
function remove(key: string[]): Promise<void>;
|
|
10
|
+
function list(prefix: string[]): Promise<string[][]>;
|
|
11
|
+
}
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/storage/storage.ts"],"names":[],"mappings":"AAIA,cAAM,iBAAkB,SAAQ,KAAK;gBACvB,OAAO,EAAE,MAAM;CAI5B;AAED,yBAAiB,OAAO,CAAC;IAChB,MAAM,aAAa,0BAAoB,CAAC;IAO/C,SAAsB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAavD;IAED,SAAsB,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAMvE;IAED,SAAsB,MAAM,CAAC,CAAC,EAC5B,GAAG,EAAE,MAAM,EAAE,EACb,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GACrB,OAAO,CAAC,CAAC,CAAC,CAKZ;IAED,SAAsB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGzD;IAED,SAAsB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAgChE;CACF"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { Global } from "../global";
|
|
2
|
+
import fs from "fs/promises";
|
|
3
|
+
import path from "path";
|
|
4
|
+
class NotFoundErrorImpl extends Error {
|
|
5
|
+
constructor(message) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.name = "NotFoundError";
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export var Storage;
|
|
11
|
+
(function (Storage) {
|
|
12
|
+
Storage.NotFoundError = NotFoundErrorImpl;
|
|
13
|
+
function keyToPath(key) {
|
|
14
|
+
const storageDir = path.join(Global.Path.data, "storage");
|
|
15
|
+
return path.join(storageDir, ...key) + ".json";
|
|
16
|
+
}
|
|
17
|
+
async function read(key) {
|
|
18
|
+
const target = keyToPath(key);
|
|
19
|
+
try {
|
|
20
|
+
const content = await fs.readFile(target, "utf-8");
|
|
21
|
+
return JSON.parse(content);
|
|
22
|
+
}
|
|
23
|
+
catch (e) {
|
|
24
|
+
const error = e;
|
|
25
|
+
if (error.code === "ENOENT") {
|
|
26
|
+
throw new Storage.NotFoundError(`Resource not found: ${target}`);
|
|
27
|
+
}
|
|
28
|
+
throw error;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
Storage.read = read;
|
|
32
|
+
async function write(key, content) {
|
|
33
|
+
const target = keyToPath(key);
|
|
34
|
+
const dir = path.dirname(target);
|
|
35
|
+
await fs.mkdir(dir, { recursive: true });
|
|
36
|
+
await fs.writeFile(target, JSON.stringify(content, null, 2), "utf-8");
|
|
37
|
+
}
|
|
38
|
+
Storage.write = write;
|
|
39
|
+
async function update(key, fn) {
|
|
40
|
+
const current = await read(key);
|
|
41
|
+
fn(current);
|
|
42
|
+
await write(key, current);
|
|
43
|
+
return current;
|
|
44
|
+
}
|
|
45
|
+
Storage.update = update;
|
|
46
|
+
async function remove(key) {
|
|
47
|
+
const target = keyToPath(key);
|
|
48
|
+
await fs.unlink(target);
|
|
49
|
+
}
|
|
50
|
+
Storage.remove = remove;
|
|
51
|
+
async function list(prefix) {
|
|
52
|
+
const storageDir = path.join(Global.Path.data, "storage");
|
|
53
|
+
const prefixPath = path.join(storageDir, ...prefix);
|
|
54
|
+
const keys = [];
|
|
55
|
+
const walkDir = async (dirPath, currentKey) => {
|
|
56
|
+
try {
|
|
57
|
+
const entries = await fs.readdir(dirPath, { withFileTypes: true });
|
|
58
|
+
for (const entry of entries) {
|
|
59
|
+
if (entry.name.startsWith("."))
|
|
60
|
+
continue;
|
|
61
|
+
const entryPath = path.join(dirPath, entry.name);
|
|
62
|
+
const newKey = [...currentKey, entry.name];
|
|
63
|
+
if (entry.isDirectory()) {
|
|
64
|
+
await walkDir(entryPath, newKey);
|
|
65
|
+
}
|
|
66
|
+
else if (entry.isFile() && entry.name.endsWith(".json")) {
|
|
67
|
+
const keyWithoutJson = [...newKey];
|
|
68
|
+
keyWithoutJson[keyWithoutJson.length - 1] = entry.name.slice(0, -5);
|
|
69
|
+
keys.push(keyWithoutJson);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
catch (e) {
|
|
74
|
+
if (e.code !== "ENOENT") {
|
|
75
|
+
throw e;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
await walkDir(prefixPath, prefix);
|
|
80
|
+
return keys;
|
|
81
|
+
}
|
|
82
|
+
Storage.list = list;
|
|
83
|
+
})(Storage || (Storage = {}));
|
|
84
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/storage/storage.ts"],"names":[],"mappings":"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"}
|
package/dist/task.txt
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
Launch a subagent to handle complex, multistep tasks autonomously.
|
|
2
|
+
|
|
3
|
+
Available Agents:
|
|
4
|
+
- explore: Fast agent for searching codebases. Use for finding files, searching code, answering questions about the codebase.
|
|
5
|
+
- general: General-purpose agent for complex multi-step tasks. Use for executing multiple units of work in parallel.
|
|
6
|
+
|
|
7
|
+
Parameters:
|
|
8
|
+
- prompt (required): The task for the agent to perform
|
|
9
|
+
- description (required): A short (3-5 words) description of the task
|
|
10
|
+
- subagent_type (required): The type of agent to use ("explore" or "general")
|
|
11
|
+
|
|
12
|
+
When to Use:
|
|
13
|
+
- Open-ended exploration that may require multiple search rounds
|
|
14
|
+
- Complex tasks that can be parallelized
|
|
15
|
+
- Research tasks that need autonomous decision-making
|
|
16
|
+
|
|
17
|
+
When NOT to Use:
|
|
18
|
+
- Reading a specific known file (use Read instead)
|
|
19
|
+
- Searching for a specific class/function (use Glob instead)
|
|
20
|
+
- Simple searches in 2-3 files (use Read instead)
|
|
21
|
+
|
|
22
|
+
Usage Notes:
|
|
23
|
+
- Launch multiple agents concurrently when tasks are independent
|
|
24
|
+
- Each agent invocation is stateless
|
|
25
|
+
- The agent's result is not visible to the user - summarize it in your response
|
|
26
|
+
- Clearly tell the agent whether to write code or just research
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
Use this tool to read the current to-do list for the session. This tool should be used proactively and frequently to ensure that you are aware of the status of the current task list. You should make use of this tool as often as possible, especially in the following situations:
|
|
2
|
+
|
|
3
|
+
- At the beginning of conversations to see what's pending
|
|
4
|
+
- Before starting new tasks to prioritize work
|
|
5
|
+
- When the user asks about previous tasks or plans
|
|
6
|
+
- Whenever you're uncertain about what to do next
|
|
7
|
+
- After completing tasks to update your understanding of remaining work
|
|
8
|
+
- After every few messages to ensure you're on track
|
|
9
|
+
|
|
10
|
+
Usage:
|
|
11
|
+
- This tool takes no parameters. Leave the input empty.
|
|
12
|
+
- Returns a list of todo items with their status, priority, and content
|
|
13
|
+
- Use this information to track progress and plan next steps
|
|
14
|
+
- If no todos exist yet, an empty list will be returned
|