claudia-orchestrator 0.1.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 (296) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +109 -0
  3. package/dist/cli-parser.d.ts +11 -0
  4. package/dist/cli-parser.d.ts.map +1 -0
  5. package/dist/cli-parser.js +57 -0
  6. package/dist/cli-parser.js.map +1 -0
  7. package/dist/cui-server.d.ts +69 -0
  8. package/dist/cui-server.d.ts.map +1 -0
  9. package/dist/cui-server.js +705 -0
  10. package/dist/cui-server.js.map +1 -0
  11. package/dist/mcp-server/claudia-tools.d.ts +15 -0
  12. package/dist/mcp-server/claudia-tools.d.ts.map +1 -0
  13. package/dist/mcp-server/claudia-tools.js +366 -0
  14. package/dist/mcp-server/claudia-tools.js.map +1 -0
  15. package/dist/mcp-server/index.d.ts +3 -0
  16. package/dist/mcp-server/index.d.ts.map +1 -0
  17. package/dist/mcp-server/index.js +176 -0
  18. package/dist/mcp-server/index.js.map +1 -0
  19. package/dist/middleware/auth.d.ts +18 -0
  20. package/dist/middleware/auth.d.ts.map +1 -0
  21. package/dist/middleware/auth.js +136 -0
  22. package/dist/middleware/auth.js.map +1 -0
  23. package/dist/middleware/cors-setup.d.ts +7 -0
  24. package/dist/middleware/cors-setup.d.ts.map +1 -0
  25. package/dist/middleware/cors-setup.js +8 -0
  26. package/dist/middleware/cors-setup.js.map +1 -0
  27. package/dist/middleware/error-handler.d.ts +4 -0
  28. package/dist/middleware/error-handler.d.ts.map +1 -0
  29. package/dist/middleware/error-handler.js +27 -0
  30. package/dist/middleware/error-handler.js.map +1 -0
  31. package/dist/middleware/query-parser.d.ts +11 -0
  32. package/dist/middleware/query-parser.d.ts.map +1 -0
  33. package/dist/middleware/query-parser.js +68 -0
  34. package/dist/middleware/query-parser.js.map +1 -0
  35. package/dist/middleware/request-logger.d.ts +4 -0
  36. package/dist/middleware/request-logger.d.ts.map +1 -0
  37. package/dist/middleware/request-logger.js +29 -0
  38. package/dist/middleware/request-logger.js.map +1 -0
  39. package/dist/process-daemon/index.d.ts +14 -0
  40. package/dist/process-daemon/index.d.ts.map +1 -0
  41. package/dist/process-daemon/index.js +51 -0
  42. package/dist/process-daemon/index.js.map +1 -0
  43. package/dist/process-daemon/process-daemon.d.ts +78 -0
  44. package/dist/process-daemon/process-daemon.d.ts.map +1 -0
  45. package/dist/process-daemon/process-daemon.js +568 -0
  46. package/dist/process-daemon/process-daemon.js.map +1 -0
  47. package/dist/process-daemon/process-manager-client.d.ts +108 -0
  48. package/dist/process-daemon/process-manager-client.d.ts.map +1 -0
  49. package/dist/process-daemon/process-manager-client.js +314 -0
  50. package/dist/process-daemon/process-manager-client.js.map +1 -0
  51. package/dist/process-daemon/process-manager-interface.d.ts +47 -0
  52. package/dist/process-daemon/process-manager-interface.d.ts.map +1 -0
  53. package/dist/process-daemon/process-manager-interface.js +8 -0
  54. package/dist/process-daemon/process-manager-interface.js.map +1 -0
  55. package/dist/process-daemon/test-daemon.d.ts +12 -0
  56. package/dist/process-daemon/test-daemon.d.ts.map +1 -0
  57. package/dist/process-daemon/test-daemon.js +81 -0
  58. package/dist/process-daemon/test-daemon.js.map +1 -0
  59. package/dist/process-daemon/types.d.ts +85 -0
  60. package/dist/process-daemon/types.d.ts.map +1 -0
  61. package/dist/process-daemon/types.js +8 -0
  62. package/dist/process-daemon/types.js.map +1 -0
  63. package/dist/routes/claudia.routes.d.ts +10 -0
  64. package/dist/routes/claudia.routes.d.ts.map +1 -0
  65. package/dist/routes/claudia.routes.js +123 -0
  66. package/dist/routes/claudia.routes.js.map +1 -0
  67. package/dist/routes/config.routes.d.ts +4 -0
  68. package/dist/routes/config.routes.d.ts.map +1 -0
  69. package/dist/routes/config.routes.js +27 -0
  70. package/dist/routes/config.routes.js.map +1 -0
  71. package/dist/routes/conversation.routes.d.ts +8 -0
  72. package/dist/routes/conversation.routes.d.ts.map +1 -0
  73. package/dist/routes/conversation.routes.js +870 -0
  74. package/dist/routes/conversation.routes.js.map +1 -0
  75. package/dist/routes/filesystem.routes.d.ts +4 -0
  76. package/dist/routes/filesystem.routes.d.ts.map +1 -0
  77. package/dist/routes/filesystem.routes.js +86 -0
  78. package/dist/routes/filesystem.routes.js.map +1 -0
  79. package/dist/routes/gemini.routes.d.ts +4 -0
  80. package/dist/routes/gemini.routes.d.ts.map +1 -0
  81. package/dist/routes/gemini.routes.js +93 -0
  82. package/dist/routes/gemini.routes.js.map +1 -0
  83. package/dist/routes/insights.routes.d.ts +17 -0
  84. package/dist/routes/insights.routes.d.ts.map +1 -0
  85. package/dist/routes/insights.routes.js +417 -0
  86. package/dist/routes/insights.routes.js.map +1 -0
  87. package/dist/routes/license.routes.d.ts +3 -0
  88. package/dist/routes/license.routes.d.ts.map +1 -0
  89. package/dist/routes/license.routes.js +111 -0
  90. package/dist/routes/license.routes.js.map +1 -0
  91. package/dist/routes/log.routes.d.ts +3 -0
  92. package/dist/routes/log.routes.d.ts.map +1 -0
  93. package/dist/routes/log.routes.js +65 -0
  94. package/dist/routes/log.routes.js.map +1 -0
  95. package/dist/routes/notifications.routes.d.ts +4 -0
  96. package/dist/routes/notifications.routes.d.ts.map +1 -0
  97. package/dist/routes/notifications.routes.js +71 -0
  98. package/dist/routes/notifications.routes.js.map +1 -0
  99. package/dist/routes/permission.routes.d.ts +4 -0
  100. package/dist/routes/permission.routes.d.ts.map +1 -0
  101. package/dist/routes/permission.routes.js +116 -0
  102. package/dist/routes/permission.routes.js.map +1 -0
  103. package/dist/routes/question.routes.d.ts +8 -0
  104. package/dist/routes/question.routes.d.ts.map +1 -0
  105. package/dist/routes/question.routes.js +82 -0
  106. package/dist/routes/question.routes.js.map +1 -0
  107. package/dist/routes/streaming.routes.d.ts +4 -0
  108. package/dist/routes/streaming.routes.d.ts.map +1 -0
  109. package/dist/routes/streaming.routes.js +28 -0
  110. package/dist/routes/streaming.routes.js.map +1 -0
  111. package/dist/routes/system.routes.d.ts +5 -0
  112. package/dist/routes/system.routes.d.ts.map +1 -0
  113. package/dist/routes/system.routes.js +103 -0
  114. package/dist/routes/system.routes.js.map +1 -0
  115. package/dist/routes/working-directories.routes.d.ts +4 -0
  116. package/dist/routes/working-directories.routes.d.ts.map +1 -0
  117. package/dist/routes/working-directories.routes.js +25 -0
  118. package/dist/routes/working-directories.routes.js.map +1 -0
  119. package/dist/server.d.ts +3 -0
  120. package/dist/server.d.ts.map +1 -0
  121. package/dist/server.js +34 -0
  122. package/dist/server.js.map +1 -0
  123. package/dist/services/ToolMetricsService.d.ts +53 -0
  124. package/dist/services/ToolMetricsService.d.ts.map +1 -0
  125. package/dist/services/ToolMetricsService.js +230 -0
  126. package/dist/services/ToolMetricsService.js.map +1 -0
  127. package/dist/services/anthropic-service.d.ts +186 -0
  128. package/dist/services/anthropic-service.d.ts.map +1 -0
  129. package/dist/services/anthropic-service.js +1132 -0
  130. package/dist/services/anthropic-service.js.map +1 -0
  131. package/dist/services/claude-history-reader.d.ts +126 -0
  132. package/dist/services/claude-history-reader.d.ts.map +1 -0
  133. package/dist/services/claude-history-reader.js +717 -0
  134. package/dist/services/claude-history-reader.js.map +1 -0
  135. package/dist/services/claude-process-manager.d.ts +108 -0
  136. package/dist/services/claude-process-manager.d.ts.map +1 -0
  137. package/dist/services/claude-process-manager.js +909 -0
  138. package/dist/services/claude-process-manager.js.map +1 -0
  139. package/dist/services/claude-router-service.d.ts +19 -0
  140. package/dist/services/claude-router-service.d.ts.map +1 -0
  141. package/dist/services/claude-router-service.js +160 -0
  142. package/dist/services/claude-router-service.js.map +1 -0
  143. package/dist/services/claudia-service.d.ts +77 -0
  144. package/dist/services/claudia-service.d.ts.map +1 -0
  145. package/dist/services/claudia-service.js +194 -0
  146. package/dist/services/claudia-service.js.map +1 -0
  147. package/dist/services/commands-service.d.ts +18 -0
  148. package/dist/services/commands-service.d.ts.map +1 -0
  149. package/dist/services/commands-service.js +76 -0
  150. package/dist/services/commands-service.js.map +1 -0
  151. package/dist/services/config-service.d.ts +68 -0
  152. package/dist/services/config-service.d.ts.map +1 -0
  153. package/dist/services/config-service.js +429 -0
  154. package/dist/services/config-service.js.map +1 -0
  155. package/dist/services/conversation-cache.d.ts +86 -0
  156. package/dist/services/conversation-cache.d.ts.map +1 -0
  157. package/dist/services/conversation-cache.js +235 -0
  158. package/dist/services/conversation-cache.js.map +1 -0
  159. package/dist/services/conversation-status-manager.d.ts +98 -0
  160. package/dist/services/conversation-status-manager.d.ts.map +1 -0
  161. package/dist/services/conversation-status-manager.js +295 -0
  162. package/dist/services/conversation-status-manager.js.map +1 -0
  163. package/dist/services/cost-tracker.d.ts +87 -0
  164. package/dist/services/cost-tracker.d.ts.map +1 -0
  165. package/dist/services/cost-tracker.js +335 -0
  166. package/dist/services/cost-tracker.js.map +1 -0
  167. package/dist/services/file-system-service.d.ts +61 -0
  168. package/dist/services/file-system-service.d.ts.map +1 -0
  169. package/dist/services/file-system-service.js +348 -0
  170. package/dist/services/file-system-service.js.map +1 -0
  171. package/dist/services/gemini-service.d.ts +72 -0
  172. package/dist/services/gemini-service.d.ts.map +1 -0
  173. package/dist/services/gemini-service.js +431 -0
  174. package/dist/services/gemini-service.js.map +1 -0
  175. package/dist/services/insight-queue.d.ts +99 -0
  176. package/dist/services/insight-queue.d.ts.map +1 -0
  177. package/dist/services/insight-queue.js +277 -0
  178. package/dist/services/insight-queue.js.map +1 -0
  179. package/dist/services/insights-service.d.ts +102 -0
  180. package/dist/services/insights-service.d.ts.map +1 -0
  181. package/dist/services/insights-service.js +1152 -0
  182. package/dist/services/insights-service.js.map +1 -0
  183. package/dist/services/json-lines-parser.d.ts +19 -0
  184. package/dist/services/json-lines-parser.d.ts.map +1 -0
  185. package/dist/services/json-lines-parser.js +56 -0
  186. package/dist/services/json-lines-parser.js.map +1 -0
  187. package/dist/services/license-service.d.ts +69 -0
  188. package/dist/services/license-service.d.ts.map +1 -0
  189. package/dist/services/license-service.js +330 -0
  190. package/dist/services/license-service.js.map +1 -0
  191. package/dist/services/log-formatter.d.ts +5 -0
  192. package/dist/services/log-formatter.d.ts.map +1 -0
  193. package/dist/services/log-formatter.js +77 -0
  194. package/dist/services/log-formatter.js.map +1 -0
  195. package/dist/services/log-stream-buffer.d.ts +11 -0
  196. package/dist/services/log-stream-buffer.d.ts.map +1 -0
  197. package/dist/services/log-stream-buffer.js +36 -0
  198. package/dist/services/log-stream-buffer.js.map +1 -0
  199. package/dist/services/logger.d.ts +71 -0
  200. package/dist/services/logger.d.ts.map +1 -0
  201. package/dist/services/logger.js +215 -0
  202. package/dist/services/logger.js.map +1 -0
  203. package/dist/services/mcp-config-generator.d.ts +32 -0
  204. package/dist/services/mcp-config-generator.d.ts.map +1 -0
  205. package/dist/services/mcp-config-generator.js +126 -0
  206. package/dist/services/mcp-config-generator.js.map +1 -0
  207. package/dist/services/message-filter.d.ts +22 -0
  208. package/dist/services/message-filter.d.ts.map +1 -0
  209. package/dist/services/message-filter.js +57 -0
  210. package/dist/services/message-filter.js.map +1 -0
  211. package/dist/services/notification-service.d.ts +45 -0
  212. package/dist/services/notification-service.d.ts.map +1 -0
  213. package/dist/services/notification-service.js +184 -0
  214. package/dist/services/notification-service.js.map +1 -0
  215. package/dist/services/permission-tracker.d.ts +67 -0
  216. package/dist/services/permission-tracker.d.ts.map +1 -0
  217. package/dist/services/permission-tracker.js +161 -0
  218. package/dist/services/permission-tracker.js.map +1 -0
  219. package/dist/services/process-manager-factory.d.ts +81 -0
  220. package/dist/services/process-manager-factory.d.ts.map +1 -0
  221. package/dist/services/process-manager-factory.js +211 -0
  222. package/dist/services/process-manager-factory.js.map +1 -0
  223. package/dist/services/question-tracker.d.ts +47 -0
  224. package/dist/services/question-tracker.d.ts.map +1 -0
  225. package/dist/services/question-tracker.js +105 -0
  226. package/dist/services/question-tracker.js.map +1 -0
  227. package/dist/services/session-activity-watcher.d.ts +33 -0
  228. package/dist/services/session-activity-watcher.d.ts.map +1 -0
  229. package/dist/services/session-activity-watcher.js +194 -0
  230. package/dist/services/session-activity-watcher.js.map +1 -0
  231. package/dist/services/session-info-service.d.ts +228 -0
  232. package/dist/services/session-info-service.d.ts.map +1 -0
  233. package/dist/services/session-info-service.js +920 -0
  234. package/dist/services/session-info-service.js.map +1 -0
  235. package/dist/services/session-insights-service.d.ts +119 -0
  236. package/dist/services/session-insights-service.d.ts.map +1 -0
  237. package/dist/services/session-insights-service.js +889 -0
  238. package/dist/services/session-insights-service.js.map +1 -0
  239. package/dist/services/stream-manager.d.ts +62 -0
  240. package/dist/services/stream-manager.d.ts.map +1 -0
  241. package/dist/services/stream-manager.js +239 -0
  242. package/dist/services/stream-manager.js.map +1 -0
  243. package/dist/services/web-push-service.d.ts +48 -0
  244. package/dist/services/web-push-service.d.ts.map +1 -0
  245. package/dist/services/web-push-service.js +186 -0
  246. package/dist/services/web-push-service.js.map +1 -0
  247. package/dist/services/working-directories-service.d.ts +19 -0
  248. package/dist/services/working-directories-service.d.ts.map +1 -0
  249. package/dist/services/working-directories-service.js +103 -0
  250. package/dist/services/working-directories-service.js.map +1 -0
  251. package/dist/types/config.d.ts +111 -0
  252. package/dist/types/config.d.ts.map +1 -0
  253. package/dist/types/config.js +14 -0
  254. package/dist/types/config.js.map +1 -0
  255. package/dist/types/express.d.ts +5 -0
  256. package/dist/types/express.d.ts.map +1 -0
  257. package/dist/types/express.js +2 -0
  258. package/dist/types/express.js.map +1 -0
  259. package/dist/types/index.d.ts +325 -0
  260. package/dist/types/index.d.ts.map +1 -0
  261. package/dist/types/index.js +18 -0
  262. package/dist/types/index.js.map +1 -0
  263. package/dist/types/insights.d.ts +99 -0
  264. package/dist/types/insights.d.ts.map +1 -0
  265. package/dist/types/insights.js +7 -0
  266. package/dist/types/insights.js.map +1 -0
  267. package/dist/types/license.d.ts +70 -0
  268. package/dist/types/license.d.ts.map +1 -0
  269. package/dist/types/license.js +5 -0
  270. package/dist/types/license.js.map +1 -0
  271. package/dist/types/router-config.d.ts +13 -0
  272. package/dist/types/router-config.d.ts.map +1 -0
  273. package/dist/types/router-config.js +2 -0
  274. package/dist/types/router-config.js.map +1 -0
  275. package/dist/utils/constants.d.ts +26 -0
  276. package/dist/utils/constants.d.ts.map +1 -0
  277. package/dist/utils/constants.js +28 -0
  278. package/dist/utils/constants.js.map +1 -0
  279. package/dist/utils/machine-id.d.ts +7 -0
  280. package/dist/utils/machine-id.d.ts.map +1 -0
  281. package/dist/utils/machine-id.js +76 -0
  282. package/dist/utils/machine-id.js.map +1 -0
  283. package/dist/utils/server-startup.d.ts +13 -0
  284. package/dist/utils/server-startup.d.ts.map +1 -0
  285. package/dist/utils/server-startup.js +20 -0
  286. package/dist/utils/server-startup.js.map +1 -0
  287. package/dist/web/assets/main-DAc2rjJ2.css +1 -0
  288. package/dist/web/assets/main-DvlZ02mT.js +137 -0
  289. package/dist/web/favicon.png +0 -0
  290. package/dist/web/favicon.svg +22 -0
  291. package/dist/web/icon-192x192.png +0 -0
  292. package/dist/web/icon-512x512.png +0 -0
  293. package/dist/web/index.html +36 -0
  294. package/dist/web/manifest.json +61 -0
  295. package/package.json +174 -0
  296. package/scripts/postinstall.js +30 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cui-server.js","sourceRoot":"","sources":["../src/cui-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Claudia Orchestrator MCP Tools Server
4
+ *
5
+ * Provides tools for Claudia to manage CUI sessions:
6
+ * - list_sessions: List all active and recent sessions
7
+ * - get_session_details: Get conversation history for a session
8
+ * - get_session_insights: Get AI insights for a session
9
+ * - start_session: Spawn a new Claude session
10
+ * - stop_session: Terminate a running session
11
+ * - archive_session: Archive/unarchive a session
12
+ * - rename_session: Set a custom name for a session
13
+ */
14
+ export {};
15
+ //# sourceMappingURL=claudia-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claudia-tools.d.ts","sourceRoot":"","sources":["../../src/mcp-server/claudia-tools.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;GAWG"}
@@ -0,0 +1,366 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Claudia Orchestrator MCP Tools Server
4
+ *
5
+ * Provides tools for Claudia to manage CUI sessions:
6
+ * - list_sessions: List all active and recent sessions
7
+ * - get_session_details: Get conversation history for a session
8
+ * - get_session_insights: Get AI insights for a session
9
+ * - start_session: Spawn a new Claude session
10
+ * - stop_session: Terminate a running session
11
+ * - archive_session: Archive/unarchive a session
12
+ * - rename_session: Set a custom name for a session
13
+ */
14
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
15
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
16
+ import { CallToolRequestSchema, ListToolsRequestSchema, McpError, ErrorCode } from '@modelcontextprotocol/sdk/types.js';
17
+ import fetch from 'node-fetch';
18
+ // Get Claudia server URL from environment
19
+ const CLAUDIA_SERVER_URL = process.env.CLAUDIA_SERVER_URL || process.env.CLAUDIA_SERVER_URL || `http://localhost:${process.env.CLAUDIA_SERVER_PORT || process.env.CUI_SERVER_PORT || '3001'}`;
20
+ // Log to stderr so it doesn't interfere with MCP stdio
21
+ const log = (level, message, data) => {
22
+ const timestamp = new Date().toISOString();
23
+ console.error(JSON.stringify({ timestamp, level, message, ...data }));
24
+ };
25
+ // Create MCP server
26
+ const server = new Server({
27
+ name: 'claudia-orchestrator',
28
+ version: '1.0.0'
29
+ }, {
30
+ capabilities: {
31
+ tools: {}
32
+ }
33
+ });
34
+ // Define orchestrator tools
35
+ server.setRequestHandler(ListToolsRequestSchema, async () => ({
36
+ tools: [
37
+ {
38
+ name: 'list_sessions',
39
+ description: 'List all Claudia sessions with their status, working directory, and summary. Use this to get an overview of what sessions exist.',
40
+ inputSchema: {
41
+ type: 'object',
42
+ properties: {
43
+ limit: {
44
+ type: 'number',
45
+ description: 'Maximum number of sessions to return (default: 20)'
46
+ },
47
+ archived: {
48
+ type: 'boolean',
49
+ description: 'Include archived sessions (default: false)'
50
+ }
51
+ }
52
+ }
53
+ },
54
+ {
55
+ name: 'get_session_details',
56
+ description: 'Get the full conversation history for a specific session. Use this to understand what a session has been working on.',
57
+ inputSchema: {
58
+ type: 'object',
59
+ properties: {
60
+ sessionId: {
61
+ type: 'string',
62
+ description: 'The Claude session ID (not streamingId)'
63
+ }
64
+ },
65
+ required: ['sessionId']
66
+ }
67
+ },
68
+ {
69
+ name: 'get_session_insights',
70
+ description: 'Get AI-generated insights for a session including progress, current task, theme, and milestones.',
71
+ inputSchema: {
72
+ type: 'object',
73
+ properties: {
74
+ sessionId: {
75
+ type: 'string',
76
+ description: 'The Claude session ID'
77
+ }
78
+ },
79
+ required: ['sessionId']
80
+ }
81
+ },
82
+ {
83
+ name: 'start_session',
84
+ description: 'Start a new Claudia session in a specified directory with an initial prompt.',
85
+ inputSchema: {
86
+ type: 'object',
87
+ properties: {
88
+ workingDirectory: {
89
+ type: 'string',
90
+ description: 'The directory where the session should run'
91
+ },
92
+ initialPrompt: {
93
+ type: 'string',
94
+ description: 'The first message to send to the new session'
95
+ },
96
+ model: {
97
+ type: 'string',
98
+ description: 'Model to use (e.g., claude-sonnet-4-20250514). Optional.'
99
+ }
100
+ },
101
+ required: ['workingDirectory', 'initialPrompt']
102
+ }
103
+ },
104
+ {
105
+ name: 'stop_session',
106
+ description: 'Stop a running Claudia session. Use with caution - confirm with the user before stopping.',
107
+ inputSchema: {
108
+ type: 'object',
109
+ properties: {
110
+ streamingId: {
111
+ type: 'string',
112
+ description: 'The Claudia streaming ID (not Claude session ID). Get this from list_sessions.'
113
+ }
114
+ },
115
+ required: ['streamingId']
116
+ }
117
+ },
118
+ {
119
+ name: 'archive_session',
120
+ description: 'Archive or unarchive a session. Archived sessions are hidden by default.',
121
+ inputSchema: {
122
+ type: 'object',
123
+ properties: {
124
+ sessionId: {
125
+ type: 'string',
126
+ description: 'The Claude session ID'
127
+ },
128
+ archived: {
129
+ type: 'boolean',
130
+ description: 'true to archive, false to unarchive'
131
+ }
132
+ },
133
+ required: ['sessionId', 'archived']
134
+ }
135
+ },
136
+ {
137
+ name: 'rename_session',
138
+ description: 'Set a custom name for a session. Use meaningful names that describe what the session is working on.',
139
+ inputSchema: {
140
+ type: 'object',
141
+ properties: {
142
+ sessionId: {
143
+ type: 'string',
144
+ description: 'The Claude session ID'
145
+ },
146
+ customName: {
147
+ type: 'string',
148
+ description: 'The new name for the session'
149
+ }
150
+ },
151
+ required: ['sessionId', 'customName']
152
+ }
153
+ }
154
+ ]
155
+ }));
156
+ // Handle tool calls
157
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
158
+ const { name, arguments: args } = request.params;
159
+ log('info', 'Tool called', { tool: name, args });
160
+ try {
161
+ switch (name) {
162
+ case 'list_sessions': {
163
+ const { limit = 20, archived = false } = args || {};
164
+ const response = await fetch(`${CLAUDIA_SERVER_URL}/api/conversations?limit=${limit}&archived=${archived}`, {
165
+ method: 'GET',
166
+ headers: { 'Content-Type': 'application/json' }
167
+ });
168
+ if (!response.ok) {
169
+ throw new Error(`Failed to list sessions: ${response.status}`);
170
+ }
171
+ const data = (await response.json());
172
+ // Format sessions for readability
173
+ const formatted = data.conversations.map((c) => ({
174
+ sessionId: c.sessionId,
175
+ projectPath: c.projectPath,
176
+ status: c.status,
177
+ streamingId: c.streamingId || null,
178
+ summary: c.summary || c.insights?.context?.mission || 'No summary',
179
+ theme: c.insights?.theme || null
180
+ }));
181
+ return {
182
+ content: [
183
+ {
184
+ type: 'text',
185
+ text: JSON.stringify({
186
+ total: data.total,
187
+ sessions: formatted
188
+ }, null, 2)
189
+ }
190
+ ]
191
+ };
192
+ }
193
+ case 'get_session_details': {
194
+ const { sessionId } = args;
195
+ if (!sessionId) {
196
+ throw new McpError(ErrorCode.InvalidParams, 'sessionId is required');
197
+ }
198
+ const response = await fetch(`${CLAUDIA_SERVER_URL}/api/conversations/${sessionId}`, {
199
+ method: 'GET',
200
+ headers: { 'Content-Type': 'application/json' }
201
+ });
202
+ if (!response.ok) {
203
+ if (response.status === 404) {
204
+ throw new McpError(ErrorCode.InvalidParams, `Session not found: ${sessionId}`);
205
+ }
206
+ throw new Error(`Failed to get session details: ${response.status}`);
207
+ }
208
+ const data = await response.json();
209
+ return {
210
+ content: [
211
+ {
212
+ type: 'text',
213
+ text: JSON.stringify(data, null, 2)
214
+ }
215
+ ]
216
+ };
217
+ }
218
+ case 'get_session_insights': {
219
+ const { sessionId } = args;
220
+ if (!sessionId) {
221
+ throw new McpError(ErrorCode.InvalidParams, 'sessionId is required');
222
+ }
223
+ const response = await fetch(`${CLAUDIA_SERVER_URL}/api/conversations/${sessionId}/insights`, {
224
+ method: 'GET',
225
+ headers: { 'Content-Type': 'application/json' }
226
+ });
227
+ if (!response.ok) {
228
+ if (response.status === 404) {
229
+ throw new McpError(ErrorCode.InvalidParams, `Session not found: ${sessionId}`);
230
+ }
231
+ throw new Error(`Failed to get insights: ${response.status}`);
232
+ }
233
+ const data = await response.json();
234
+ return {
235
+ content: [
236
+ {
237
+ type: 'text',
238
+ text: JSON.stringify(data, null, 2)
239
+ }
240
+ ]
241
+ };
242
+ }
243
+ case 'start_session': {
244
+ const { workingDirectory, initialPrompt, model } = args;
245
+ if (!workingDirectory || !initialPrompt) {
246
+ throw new McpError(ErrorCode.InvalidParams, 'workingDirectory and initialPrompt are required');
247
+ }
248
+ const response = await fetch(`${CLAUDIA_SERVER_URL}/api/conversations/start`, {
249
+ method: 'POST',
250
+ headers: { 'Content-Type': 'application/json' },
251
+ body: JSON.stringify({
252
+ workingDirectory,
253
+ initialPrompt,
254
+ model
255
+ })
256
+ });
257
+ if (!response.ok) {
258
+ const errorText = await response.text();
259
+ throw new Error(`Failed to start session: ${errorText}`);
260
+ }
261
+ const data = (await response.json());
262
+ return {
263
+ content: [
264
+ {
265
+ type: 'text',
266
+ text: `Session started successfully!\n\nstreamingId: ${data.streamingId}\nsessionId: ${data.sessionId}\nmodel: ${data.model}\nworkingDirectory: ${workingDirectory}`
267
+ }
268
+ ]
269
+ };
270
+ }
271
+ case 'stop_session': {
272
+ const { streamingId } = args;
273
+ if (!streamingId) {
274
+ throw new McpError(ErrorCode.InvalidParams, 'streamingId is required');
275
+ }
276
+ const response = await fetch(`${CLAUDIA_SERVER_URL}/api/conversations/${streamingId}/stop`, {
277
+ method: 'POST',
278
+ headers: { 'Content-Type': 'application/json' }
279
+ });
280
+ if (!response.ok) {
281
+ throw new Error(`Failed to stop session: ${response.status}`);
282
+ }
283
+ const data = (await response.json());
284
+ return {
285
+ content: [
286
+ {
287
+ type: 'text',
288
+ text: data.success
289
+ ? `Session ${streamingId} stopped successfully`
290
+ : `Failed to stop session ${streamingId}`
291
+ }
292
+ ]
293
+ };
294
+ }
295
+ case 'archive_session': {
296
+ const { sessionId, archived } = args;
297
+ if (!sessionId || archived === undefined) {
298
+ throw new McpError(ErrorCode.InvalidParams, 'sessionId and archived are required');
299
+ }
300
+ const response = await fetch(`${CLAUDIA_SERVER_URL}/api/conversations/${sessionId}/update`, {
301
+ method: 'PUT',
302
+ headers: { 'Content-Type': 'application/json' },
303
+ body: JSON.stringify({ archived })
304
+ });
305
+ if (!response.ok) {
306
+ throw new Error(`Failed to update session: ${response.status}`);
307
+ }
308
+ return {
309
+ content: [
310
+ {
311
+ type: 'text',
312
+ text: archived
313
+ ? `Session ${sessionId} archived`
314
+ : `Session ${sessionId} unarchived`
315
+ }
316
+ ]
317
+ };
318
+ }
319
+ case 'rename_session': {
320
+ const { sessionId, customName } = args;
321
+ if (!sessionId || !customName) {
322
+ throw new McpError(ErrorCode.InvalidParams, 'sessionId and customName are required');
323
+ }
324
+ const response = await fetch(`${CLAUDIA_SERVER_URL}/api/conversations/${sessionId}/update`, {
325
+ method: 'PUT',
326
+ headers: { 'Content-Type': 'application/json' },
327
+ body: JSON.stringify({ customName })
328
+ });
329
+ if (!response.ok) {
330
+ throw new Error(`Failed to rename session: ${response.status}`);
331
+ }
332
+ return {
333
+ content: [
334
+ {
335
+ type: 'text',
336
+ text: `Session ${sessionId} renamed to "${customName}"`
337
+ }
338
+ ]
339
+ };
340
+ }
341
+ default:
342
+ throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${name}`);
343
+ }
344
+ }
345
+ catch (error) {
346
+ log('error', 'Tool execution failed', {
347
+ tool: name,
348
+ error: error instanceof Error ? error.message : String(error)
349
+ });
350
+ if (error instanceof McpError) {
351
+ throw error;
352
+ }
353
+ throw new McpError(ErrorCode.InternalError, `Tool execution failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
354
+ }
355
+ });
356
+ // Start the server
357
+ async function main() {
358
+ const transport = new StdioServerTransport();
359
+ await server.connect(transport);
360
+ log('info', 'Claudia Orchestrator MCP server started', { serverUrl: CLAUDIA_SERVER_URL });
361
+ }
362
+ main().catch((error) => {
363
+ log('error', 'MCP server error', { error: String(error) });
364
+ process.exit(1);
365
+ });
366
+ //# sourceMappingURL=claudia-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claudia-tools.js","sourceRoot":"","sources":["../../src/mcp-server/claudia-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp-server/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,176 @@
1
+ #!/usr/bin/env node
2
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
3
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
+ import { CallToolRequestSchema, ListToolsRequestSchema, McpError, ErrorCode } from '@modelcontextprotocol/sdk/types.js';
5
+ import fetch from 'node-fetch';
6
+ import { logger } from '../services/logger.js';
7
+ // Get CUI server URL from environment
8
+ const CUI_SERVER_URL = process.env.CUI_SERVER_URL || `http://localhost:${process.env.CUI_SERVER_PORT || '3001'}`;
9
+ // Get CUI streaming ID from environment (passed by ClaudeProcessManager)
10
+ const CUI_STREAMING_ID = process.env.CUI_STREAMING_ID;
11
+ // Create MCP server
12
+ const server = new Server({
13
+ name: 'claudia-permissions',
14
+ version: '1.0.0',
15
+ }, {
16
+ capabilities: {
17
+ tools: {},
18
+ },
19
+ });
20
+ // Define the approval_prompt tool
21
+ server.setRequestHandler(ListToolsRequestSchema, async () => ({
22
+ tools: [{
23
+ name: 'approval_prompt',
24
+ description: 'Request approval for tool usage from CUI',
25
+ inputSchema: {
26
+ type: 'object',
27
+ properties: {
28
+ tool_name: {
29
+ type: 'string',
30
+ description: 'The tool requesting permission',
31
+ },
32
+ input: {
33
+ type: 'object',
34
+ description: 'The input for the tool',
35
+ },
36
+ },
37
+ required: ['tool_name', 'input'],
38
+ },
39
+ }],
40
+ }));
41
+ // Handle tool calls
42
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
43
+ if (request.params.name !== 'approval_prompt') {
44
+ throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${request.params.name}`);
45
+ }
46
+ const { tool_name, input } = request.params.arguments;
47
+ try {
48
+ // Log the permission request
49
+ logger.debug('MCP Permission request received', { tool_name, input, streamingId: CUI_STREAMING_ID });
50
+ // Send the permission request to CUI server
51
+ const response = await fetch(`${CUI_SERVER_URL}/api/permissions/notify`, {
52
+ method: 'POST',
53
+ headers: {
54
+ 'Content-Type': 'application/json',
55
+ },
56
+ body: JSON.stringify({
57
+ toolName: tool_name,
58
+ toolInput: input,
59
+ streamingId: CUI_STREAMING_ID || 'unknown', // Include the streaming ID from environment
60
+ }),
61
+ });
62
+ if (!response.ok) {
63
+ const errorText = await response.text();
64
+ logger.error('Failed to notify CUI server', { status: response.status, error: errorText });
65
+ throw new Error(`Failed to notify CUI server: ${errorText}`);
66
+ }
67
+ // Get the permission request ID from the notification response
68
+ const notificationData = await response.json();
69
+ const permissionRequestId = notificationData.id;
70
+ logger.debug('Permission request created', { permissionRequestId, streamingId: CUI_STREAMING_ID });
71
+ // Poll for permission decision
72
+ const POLL_INTERVAL = 1000; // 1 second
73
+ const TIMEOUT = 60 * 60 * 1000; // 1 hour
74
+ const startTime = Date.now();
75
+ while (true) {
76
+ // Check timeout
77
+ if (Date.now() - startTime > TIMEOUT) {
78
+ logger.warn('Permission request timed out', { tool_name, permissionRequestId });
79
+ const timeoutResponse = {
80
+ behavior: 'deny',
81
+ message: 'Permission request timed out after 10 minutes after user did not respond',
82
+ };
83
+ return {
84
+ content: [{
85
+ type: 'text',
86
+ text: JSON.stringify(timeoutResponse),
87
+ }],
88
+ };
89
+ }
90
+ // Poll for permission status
91
+ const pollResponse = await fetch(`${CUI_SERVER_URL}/api/permissions?streamingId=${CUI_STREAMING_ID}&status=pending`, {
92
+ method: 'GET',
93
+ headers: {
94
+ 'Content-Type': 'application/json',
95
+ },
96
+ });
97
+ if (!pollResponse.ok) {
98
+ logger.error('Failed to poll permission status', { status: pollResponse.status });
99
+ throw new Error(`Failed to poll permission status: ${pollResponse.status}`);
100
+ }
101
+ const { permissions } = await pollResponse.json();
102
+ const permission = permissions.find((p) => p.id === permissionRequestId);
103
+ if (!permission) {
104
+ // Permission has been processed (no longer pending)
105
+ // Fetch all permissions to find our specific one
106
+ const allPermissionsResponse = await fetch(`${CUI_SERVER_URL}/api/permissions?streamingId=${CUI_STREAMING_ID}`, {
107
+ method: 'GET',
108
+ headers: {
109
+ 'Content-Type': 'application/json',
110
+ },
111
+ });
112
+ if (!allPermissionsResponse.ok) {
113
+ logger.error('Failed to fetch all permissions', { status: allPermissionsResponse.status });
114
+ throw new Error(`Failed to fetch all permissions: ${allPermissionsResponse.status}`);
115
+ }
116
+ const { permissions: allPermissions } = await allPermissionsResponse.json();
117
+ const processedPermission = allPermissions.find((p) => p.id === permissionRequestId);
118
+ if (processedPermission) {
119
+ if (processedPermission.status === 'approved') {
120
+ logger.debug('Permission approved', { tool_name, permissionRequestId });
121
+ const approvalResponse = {
122
+ behavior: 'allow',
123
+ updatedInput: processedPermission.modifiedInput || input,
124
+ };
125
+ return {
126
+ content: [{
127
+ type: 'text',
128
+ text: JSON.stringify(approvalResponse),
129
+ }],
130
+ };
131
+ }
132
+ else if (processedPermission.status === 'denied') {
133
+ logger.debug('Permission denied', { tool_name, permissionRequestId });
134
+ const denyResponse = {
135
+ behavior: 'deny',
136
+ message: processedPermission.denyReason || 'The user doesnt want to proceed with this tool use.The tool use was rejected(eg.if it was a file edit, the new_string was NOT written to the file).STOP what you are doing and wait for the user to tell you how to proceed.',
137
+ };
138
+ return {
139
+ content: [{
140
+ type: 'text',
141
+ text: JSON.stringify(denyResponse),
142
+ }],
143
+ };
144
+ }
145
+ }
146
+ }
147
+ // Wait before next poll
148
+ await new Promise(resolve => setTimeout(resolve, POLL_INTERVAL));
149
+ }
150
+ }
151
+ catch (error) {
152
+ logger.error('Error processing permission request', { error });
153
+ // Return a deny response on error
154
+ const denyResponse = {
155
+ behavior: 'deny',
156
+ message: `Permission denied due to error: ${error instanceof Error ? error.message : 'Unknown error'}`,
157
+ };
158
+ return {
159
+ content: [{
160
+ type: 'text',
161
+ text: JSON.stringify(denyResponse),
162
+ }],
163
+ };
164
+ }
165
+ });
166
+ // Start the server
167
+ async function main() {
168
+ const transport = new StdioServerTransport();
169
+ await server.connect(transport);
170
+ logger.info('MCP Permission server started', { cuiServerUrl: CUI_SERVER_URL });
171
+ }
172
+ main().catch((error) => {
173
+ logger.error('MCP server error', { error });
174
+ process.exit(1);
175
+ });
176
+ //# sourceMappingURL=index.js.map