@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.
Files changed (240) hide show
  1. package/README.md +194 -0
  2. package/dist/api/client.d.ts +53 -0
  3. package/dist/api/client.d.ts.map +1 -0
  4. package/dist/api/client.js +271 -0
  5. package/dist/api/client.js.map +1 -0
  6. package/dist/api/index.d.ts +6 -0
  7. package/dist/api/index.d.ts.map +1 -0
  8. package/dist/api/index.js +7 -0
  9. package/dist/api/index.js.map +1 -0
  10. package/dist/api/stream.d.ts +98 -0
  11. package/dist/api/stream.d.ts.map +1 -0
  12. package/dist/api/stream.js +202 -0
  13. package/dist/api/stream.js.map +1 -0
  14. package/dist/api/types.d.ts +1353 -0
  15. package/dist/api/types.d.ts.map +1 -0
  16. package/dist/api/types.js +143 -0
  17. package/dist/api/types.js.map +1 -0
  18. package/dist/bash.txt +28 -0
  19. package/dist/bus/bus.d.ts +21 -0
  20. package/dist/bus/bus.d.ts.map +1 -0
  21. package/dist/bus/bus.js +22 -0
  22. package/dist/bus/bus.js.map +1 -0
  23. package/dist/bus/events.d.ts +100 -0
  24. package/dist/bus/events.d.ts.map +1 -0
  25. package/dist/bus/events.js +45 -0
  26. package/dist/bus/events.js.map +1 -0
  27. package/dist/bus/index.d.ts +3 -0
  28. package/dist/bus/index.d.ts.map +1 -0
  29. package/dist/bus/index.js +3 -0
  30. package/dist/bus/index.js.map +1 -0
  31. package/dist/file-edit.txt +21 -0
  32. package/dist/file-read.txt +18 -0
  33. package/dist/file-write.txt +16 -0
  34. package/dist/glob.txt +19 -0
  35. package/dist/global.d.ts +8 -0
  36. package/dist/global.d.ts.map +1 -0
  37. package/dist/global.js +14 -0
  38. package/dist/global.js.map +1 -0
  39. package/dist/grep.txt +20 -0
  40. package/dist/highlights-eq9cgrbb.scm +604 -0
  41. package/dist/highlights-ghv9g403.scm +205 -0
  42. package/dist/highlights-hk7bwhj4.scm +284 -0
  43. package/dist/highlights-r812a2qc.scm +150 -0
  44. package/dist/highlights-x6tmsnaa.scm +115 -0
  45. package/dist/index.d.ts +2 -0
  46. package/dist/index.d.ts.map +1 -0
  47. package/dist/index.js +62122 -0
  48. package/dist/index.js.map +1 -0
  49. package/dist/index.jsx +5 -0
  50. package/dist/index.jsx.map +1 -0
  51. package/dist/injections-73j83es3.scm +27 -0
  52. package/dist/input/at-refs.d.ts +42 -0
  53. package/dist/input/at-refs.d.ts.map +1 -0
  54. package/dist/input/at-refs.js +154 -0
  55. package/dist/input/at-refs.js.map +1 -0
  56. package/dist/input/history.d.ts +26 -0
  57. package/dist/input/history.d.ts.map +1 -0
  58. package/dist/input/history.js +109 -0
  59. package/dist/input/history.js.map +1 -0
  60. package/dist/input/index.d.ts +5 -0
  61. package/dist/input/index.d.ts.map +1 -0
  62. package/dist/input/index.js +5 -0
  63. package/dist/input/index.js.map +1 -0
  64. package/dist/input/paste.d.ts +19 -0
  65. package/dist/input/paste.d.ts.map +1 -0
  66. package/dist/input/paste.js +75 -0
  67. package/dist/input/paste.js.map +1 -0
  68. package/dist/input/shortcuts.d.ts +6 -0
  69. package/dist/input/shortcuts.d.ts.map +1 -0
  70. package/dist/input/shortcuts.js +84 -0
  71. package/dist/input/shortcuts.js.map +1 -0
  72. package/dist/mcp/index.d.ts +3 -0
  73. package/dist/mcp/index.d.ts.map +1 -0
  74. package/dist/mcp/index.js +3 -0
  75. package/dist/mcp/index.js.map +1 -0
  76. package/dist/mcp/manager.d.ts +51 -0
  77. package/dist/mcp/manager.d.ts.map +1 -0
  78. package/dist/mcp/manager.js +158 -0
  79. package/dist/mcp/manager.js.map +1 -0
  80. package/dist/mcp/types.d.ts +18 -0
  81. package/dist/mcp/types.d.ts.map +1 -0
  82. package/dist/mcp/types.js +5 -0
  83. package/dist/mcp/types.js.map +1 -0
  84. package/dist/session/todo.d.ts +24 -0
  85. package/dist/session/todo.d.ts.map +1 -0
  86. package/dist/session/todo.js +39 -0
  87. package/dist/session/todo.js.map +1 -0
  88. package/dist/storage/index.d.ts +2 -0
  89. package/dist/storage/index.d.ts.map +1 -0
  90. package/dist/storage/index.js +2 -0
  91. package/dist/storage/index.js.map +1 -0
  92. package/dist/storage/storage.d.ts +13 -0
  93. package/dist/storage/storage.d.ts.map +1 -0
  94. package/dist/storage/storage.js +84 -0
  95. package/dist/storage/storage.js.map +1 -0
  96. package/dist/task.txt +26 -0
  97. package/dist/todo-read.txt +14 -0
  98. package/dist/todo-write.txt +166 -0
  99. package/dist/tools/bash.d.ts +22 -0
  100. package/dist/tools/bash.d.ts.map +1 -0
  101. package/dist/tools/bash.js +70 -0
  102. package/dist/tools/bash.js.map +1 -0
  103. package/dist/tools/file-edit.d.ts +22 -0
  104. package/dist/tools/file-edit.d.ts.map +1 -0
  105. package/dist/tools/file-edit.js +67 -0
  106. package/dist/tools/file-edit.js.map +1 -0
  107. package/dist/tools/file-read.d.ts +19 -0
  108. package/dist/tools/file-read.d.ts.map +1 -0
  109. package/dist/tools/file-read.js +70 -0
  110. package/dist/tools/file-read.js.map +1 -0
  111. package/dist/tools/file-write.d.ts +16 -0
  112. package/dist/tools/file-write.d.ts.map +1 -0
  113. package/dist/tools/file-write.js +45 -0
  114. package/dist/tools/file-write.js.map +1 -0
  115. package/dist/tools/glob.d.ts +16 -0
  116. package/dist/tools/glob.d.ts.map +1 -0
  117. package/dist/tools/glob.js +45 -0
  118. package/dist/tools/glob.js.map +1 -0
  119. package/dist/tools/grep.d.ts +19 -0
  120. package/dist/tools/grep.d.ts.map +1 -0
  121. package/dist/tools/grep.js +65 -0
  122. package/dist/tools/grep.js.map +1 -0
  123. package/dist/tools/index.d.ts +11 -0
  124. package/dist/tools/index.d.ts.map +1 -0
  125. package/dist/tools/index.js +11 -0
  126. package/dist/tools/index.js.map +1 -0
  127. package/dist/tools/registry.d.ts +22 -0
  128. package/dist/tools/registry.d.ts.map +1 -0
  129. package/dist/tools/registry.js +75 -0
  130. package/dist/tools/registry.js.map +1 -0
  131. package/dist/tools/task.d.ts +19 -0
  132. package/dist/tools/task.d.ts.map +1 -0
  133. package/dist/tools/task.js +51 -0
  134. package/dist/tools/task.js.map +1 -0
  135. package/dist/tools/todo-read.d.ts +7 -0
  136. package/dist/tools/todo-read.d.ts.map +1 -0
  137. package/dist/tools/todo-read.js +56 -0
  138. package/dist/tools/todo-read.js.map +1 -0
  139. package/dist/tools/todo-write.d.ts +38 -0
  140. package/dist/tools/todo-write.d.ts.map +1 -0
  141. package/dist/tools/todo-write.js +40 -0
  142. package/dist/tools/todo-write.js.map +1 -0
  143. package/dist/tree-sitter-javascript-nd0q4pe9.wasm +0 -0
  144. package/dist/tree-sitter-markdown-411r6y9b.wasm +0 -0
  145. package/dist/tree-sitter-markdown_inline-j5349f42.wasm +0 -0
  146. package/dist/tree-sitter-typescript-zxjzwt75.wasm +0 -0
  147. package/dist/tree-sitter-zig-e78zbjpm.wasm +0 -0
  148. package/dist/ui/App.d.ts +6 -0
  149. package/dist/ui/App.d.ts.map +1 -0
  150. package/dist/ui/App.jsx +37 -0
  151. package/dist/ui/App.jsx.map +1 -0
  152. package/dist/ui/components/Autocomplete.d.ts +24 -0
  153. package/dist/ui/components/Autocomplete.d.ts.map +1 -0
  154. package/dist/ui/components/Autocomplete.jsx +67 -0
  155. package/dist/ui/components/Autocomplete.jsx.map +1 -0
  156. package/dist/ui/components/ChatView.d.ts +14 -0
  157. package/dist/ui/components/ChatView.d.ts.map +1 -0
  158. package/dist/ui/components/ChatView.jsx +11 -0
  159. package/dist/ui/components/ChatView.jsx.map +1 -0
  160. package/dist/ui/components/InputArea.d.ts +18 -0
  161. package/dist/ui/components/InputArea.d.ts.map +1 -0
  162. package/dist/ui/components/InputArea.jsx +35 -0
  163. package/dist/ui/components/InputArea.jsx.map +1 -0
  164. package/dist/ui/components/MessageBlock.d.ts +21 -0
  165. package/dist/ui/components/MessageBlock.d.ts.map +1 -0
  166. package/dist/ui/components/MessageBlock.jsx +94 -0
  167. package/dist/ui/components/MessageBlock.jsx.map +1 -0
  168. package/dist/ui/components/Overlay.d.ts +28 -0
  169. package/dist/ui/components/Overlay.d.ts.map +1 -0
  170. package/dist/ui/components/Overlay.jsx +102 -0
  171. package/dist/ui/components/Overlay.jsx.map +1 -0
  172. package/dist/ui/components/ProgressBar.d.ts +9 -0
  173. package/dist/ui/components/ProgressBar.d.ts.map +1 -0
  174. package/dist/ui/components/ProgressBar.jsx +17 -0
  175. package/dist/ui/components/ProgressBar.jsx.map +1 -0
  176. package/dist/ui/components/Sidebar.d.ts +22 -0
  177. package/dist/ui/components/Sidebar.d.ts.map +1 -0
  178. package/dist/ui/components/Sidebar.jsx +96 -0
  179. package/dist/ui/components/Sidebar.jsx.map +1 -0
  180. package/dist/ui/components/StatusLine.d.ts +6 -0
  181. package/dist/ui/components/StatusLine.d.ts.map +1 -0
  182. package/dist/ui/components/StatusLine.jsx +32 -0
  183. package/dist/ui/components/StatusLine.jsx.map +1 -0
  184. package/dist/ui/components/ThinkingBlock.d.ts +15 -0
  185. package/dist/ui/components/ThinkingBlock.d.ts.map +1 -0
  186. package/dist/ui/components/ThinkingBlock.jsx +33 -0
  187. package/dist/ui/components/ThinkingBlock.jsx.map +1 -0
  188. package/dist/ui/components/TodoItem.d.ts +22 -0
  189. package/dist/ui/components/TodoItem.d.ts.map +1 -0
  190. package/dist/ui/components/TodoItem.jsx +11 -0
  191. package/dist/ui/components/TodoItem.jsx.map +1 -0
  192. package/dist/ui/components/ToolBlock.d.ts +27 -0
  193. package/dist/ui/components/ToolBlock.d.ts.map +1 -0
  194. package/dist/ui/components/ToolBlock.jsx +76 -0
  195. package/dist/ui/components/ToolBlock.jsx.map +1 -0
  196. package/dist/ui/components/index.d.ts +12 -0
  197. package/dist/ui/components/index.d.ts.map +1 -0
  198. package/dist/ui/components/index.js +12 -0
  199. package/dist/ui/components/index.js.map +1 -0
  200. package/dist/ui/context/index.d.ts +4 -0
  201. package/dist/ui/context/index.d.ts.map +1 -0
  202. package/dist/ui/context/index.js +4 -0
  203. package/dist/ui/context/index.js.map +1 -0
  204. package/dist/ui/context/mode.d.ts +24 -0
  205. package/dist/ui/context/mode.d.ts.map +1 -0
  206. package/dist/ui/context/mode.jsx +53 -0
  207. package/dist/ui/context/mode.jsx.map +1 -0
  208. package/dist/ui/context/session.d.ts +43 -0
  209. package/dist/ui/context/session.d.ts.map +1 -0
  210. package/dist/ui/context/session.jsx +63 -0
  211. package/dist/ui/context/session.jsx.map +1 -0
  212. package/dist/ui/context/todo.d.ts +32 -0
  213. package/dist/ui/context/todo.d.ts.map +1 -0
  214. package/dist/ui/context/todo.jsx +75 -0
  215. package/dist/ui/context/todo.jsx.map +1 -0
  216. package/dist/ui/design.d.ts +182 -0
  217. package/dist/ui/design.d.ts.map +1 -0
  218. package/dist/ui/design.js +189 -0
  219. package/dist/ui/design.js.map +1 -0
  220. package/dist/ui/index.d.ts +4 -0
  221. package/dist/ui/index.d.ts.map +1 -0
  222. package/dist/ui/index.js +3 -0
  223. package/dist/ui/index.js.map +1 -0
  224. package/dist/util/config.d.ts +22 -0
  225. package/dist/util/config.d.ts.map +1 -0
  226. package/dist/util/config.js +55 -0
  227. package/dist/util/config.js.map +1 -0
  228. package/dist/util/instructions.d.ts +39 -0
  229. package/dist/util/instructions.d.ts.map +1 -0
  230. package/dist/util/instructions.js +96 -0
  231. package/dist/util/instructions.js.map +1 -0
  232. package/dist/util/lock.d.ts +18 -0
  233. package/dist/util/lock.d.ts.map +1 -0
  234. package/dist/util/lock.js +65 -0
  235. package/dist/util/lock.js.map +1 -0
  236. package/dist/util/logger.d.ts +8 -0
  237. package/dist/util/logger.d.ts.map +1 -0
  238. package/dist/util/logger.js +81 -0
  239. package/dist/util/logger.js.map +1 -0
  240. 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,5 @@
1
+ /**
2
+ * MCP Server Types
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -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,2 @@
1
+ export * from "./storage";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -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,2 @@
1
+ export * from "./storage";
2
+ //# sourceMappingURL=index.js.map
@@ -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