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":"index.js","sourceRoot":"","sources":["../../src/mcp-server/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { Request, Response, NextFunction } from 'express';
2
+ /**
3
+ * Clear all rate limit entries (for testing)
4
+ */
5
+ export declare function clearRateLimitStore(): void;
6
+ /**
7
+ * Creates authentication middleware for API endpoints
8
+ * @param tokenOverride - Optional token to use instead of config token
9
+ * @returns Express middleware function
10
+ */
11
+ export declare function createAuthMiddleware(tokenOverride?: string): (req: Request, res: Response, next: NextFunction) => void;
12
+ /**
13
+ * Authentication middleware for API endpoints
14
+ * Validates Bearer token against config
15
+ * Disabled in test environment unless ENABLE_AUTH_IN_TESTS is set
16
+ */
17
+ export declare function authMiddleware(req: Request, res: Response, next: NextFunction): void;
18
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/middleware/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAuB1D;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAmCD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,KAAK,IAAI,CAItH;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAEpF"}
@@ -0,0 +1,136 @@
1
+ import { ConfigService } from '../services/config-service.js';
2
+ import { createLogger } from '../services/logger.js';
3
+ const logger = createLogger('AuthMiddleware');
4
+ // Rate limiting storage (in-memory for simplicity)
5
+ const rateLimitStore = new Map();
6
+ const RATE_LIMIT_WINDOW = 1000; // 1 second
7
+ const MAX_ATTEMPTS = 10;
8
+ /**
9
+ * Clean up expired rate limit entries
10
+ */
11
+ function cleanupRateLimit() {
12
+ const now = Date.now();
13
+ for (const [ip, data] of rateLimitStore.entries()) {
14
+ if (now >= data.resetTime) {
15
+ rateLimitStore.delete(ip);
16
+ }
17
+ }
18
+ }
19
+ /**
20
+ * Clear all rate limit entries (for testing)
21
+ */
22
+ export function clearRateLimitStore() {
23
+ rateLimitStore.clear();
24
+ }
25
+ /**
26
+ * Check if IP has exceeded rate limit
27
+ */
28
+ function isRateLimited(ip) {
29
+ cleanupRateLimit();
30
+ const data = rateLimitStore.get(ip);
31
+ if (!data) {
32
+ return false;
33
+ }
34
+ return data.attempts >= MAX_ATTEMPTS && Date.now() < data.resetTime;
35
+ }
36
+ /**
37
+ * Record failed auth attempt
38
+ */
39
+ function recordFailedAttempt(ip) {
40
+ cleanupRateLimit();
41
+ const now = Date.now();
42
+ const data = rateLimitStore.get(ip);
43
+ if (!data || now >= data.resetTime) {
44
+ rateLimitStore.set(ip, {
45
+ attempts: 1,
46
+ resetTime: now + RATE_LIMIT_WINDOW
47
+ });
48
+ }
49
+ else {
50
+ data.attempts++;
51
+ }
52
+ }
53
+ /**
54
+ * Creates authentication middleware for API endpoints
55
+ * @param tokenOverride - Optional token to use instead of config token
56
+ * @returns Express middleware function
57
+ */
58
+ export function createAuthMiddleware(tokenOverride) {
59
+ return (req, res, next) => {
60
+ authMiddlewareImpl(req, res, next, tokenOverride);
61
+ };
62
+ }
63
+ /**
64
+ * Authentication middleware for API endpoints
65
+ * Validates Bearer token against config
66
+ * Disabled in test environment unless ENABLE_AUTH_IN_TESTS is set
67
+ */
68
+ export function authMiddleware(req, res, next) {
69
+ authMiddlewareImpl(req, res, next);
70
+ }
71
+ function authMiddlewareImpl(req, res, next, tokenOverride) {
72
+ // Skip auth in test environment unless explicitly enabled for auth tests
73
+ if (process.env.NODE_ENV === 'test' && !process.env.ENABLE_AUTH_IN_TESTS) {
74
+ next();
75
+ return;
76
+ }
77
+ const clientIp = req.ip || req.connection.remoteAddress || 'unknown';
78
+ // Check if request is from localhost
79
+ const isLocalhost = clientIp === '127.0.0.1' || clientIp === '::1' || clientIp === '::ffff:127.0.0.1';
80
+ // Tailscale Serve proxies requests locally and adds identity headers
81
+ // Only trust these headers when request comes from localhost (Tailscale's local proxy)
82
+ const tailscaleUser = req.headers['tailscale-user-login'];
83
+ if (isLocalhost && tailscaleUser) {
84
+ logger.debug('Tailscale Serve authenticated request', { user: tailscaleUser });
85
+ next();
86
+ return;
87
+ }
88
+ // Skip auth for localhost requests without Tailscale (direct local access)
89
+ if (isLocalhost) {
90
+ logger.debug('Localhost request, skipping auth', { ip: clientIp });
91
+ next();
92
+ return;
93
+ }
94
+ // Check rate limiting
95
+ if (isRateLimited(clientIp)) {
96
+ logger.warn('Rate limit exceeded', { ip: clientIp });
97
+ res.status(429).json({ error: 'Too many authentication attempts. Try again later.' });
98
+ return;
99
+ }
100
+ try {
101
+ // Extract Bearer token from Authorization header OR query parameter (for SSE which can't set headers)
102
+ const authHeader = req.headers.authorization;
103
+ const queryToken = req.query.token;
104
+ let token;
105
+ if (authHeader?.startsWith('Bearer ')) {
106
+ token = authHeader.substring(7); // Remove 'Bearer ' prefix
107
+ }
108
+ else if (queryToken) {
109
+ token = queryToken; // Fallback to query param for SSE connections
110
+ }
111
+ if (!token) {
112
+ recordFailedAttempt(clientIp);
113
+ logger.debug('Missing Authorization header and query token', { ip: clientIp });
114
+ res.status(401).json({ error: 'Unauthorized' });
115
+ return;
116
+ }
117
+ // Get expected token from config or use override
118
+ const expectedToken = tokenOverride ?? ConfigService.getInstance().getConfig().authToken;
119
+ // Validate token
120
+ if (token !== expectedToken) {
121
+ recordFailedAttempt(clientIp);
122
+ logger.warn('Invalid auth token', { ip: clientIp });
123
+ res.status(401).json({ error: 'Unauthorized' });
124
+ return;
125
+ }
126
+ // Token is valid, proceed
127
+ logger.debug('Authentication successful', { ip: clientIp });
128
+ next();
129
+ }
130
+ catch (error) {
131
+ recordFailedAttempt(clientIp);
132
+ logger.error('Authentication error', { error, ip: clientIp });
133
+ res.status(401).json({ error: 'Unauthorized' });
134
+ }
135
+ }
136
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/middleware/auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import cors from 'cors';
2
+ export declare function createCorsMiddleware(): (req: cors.CorsRequest, res: {
3
+ statusCode?: number | undefined;
4
+ setHeader(key: string, value: string): any;
5
+ end(): any;
6
+ }, next: (err?: any) => any) => void;
7
+ //# sourceMappingURL=cors-setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cors-setup.d.ts","sourceRoot":"","sources":["../../src/middleware/cors-setup.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,wBAAgB,oBAAoB;cAKgsC,CAAC;;;aAAmH,CAAC,uBAAx1C"}
@@ -0,0 +1,8 @@
1
+ import cors from 'cors';
2
+ export function createCorsMiddleware() {
3
+ return cors({
4
+ origin: true, // Allow all origins
5
+ credentials: true // Allow credentials
6
+ });
7
+ }
8
+ //# sourceMappingURL=cors-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cors-setup.js","sourceRoot":"","sources":["../../src/middleware/cors-setup.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,CAAC;QACV,MAAM,EAAE,IAAI,EAAE,oBAAoB;QAClC,WAAW,EAAE,IAAI,CAAC,oBAAoB;KACvC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Response, NextFunction } from 'express';
2
+ import { RequestWithRequestId } from '../types/express.js';
3
+ export declare function errorHandler(err: Error, req: RequestWithRequestId, res: Response, _next: NextFunction): void;
4
+ //# sourceMappingURL=error-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/middleware/error-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAI1D,wBAAgB,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAsB5G"}
@@ -0,0 +1,27 @@
1
+ import { CUIError } from '../types/index.js';
2
+ import { createLogger } from '../services/logger.js';
3
+ const logger = createLogger('ErrorHandler');
4
+ export function errorHandler(err, req, res, _next) {
5
+ const requestId = req.requestId || 'unknown';
6
+ if (err instanceof CUIError) {
7
+ logger.warn('CUIError in request', {
8
+ requestId,
9
+ code: err.code,
10
+ message: err.message,
11
+ statusCode: err.statusCode,
12
+ url: req.url,
13
+ method: req.method
14
+ });
15
+ res.status(err.statusCode).json({ error: err.message, code: err.code });
16
+ }
17
+ else {
18
+ logger.error('Unhandled error', err, {
19
+ requestId,
20
+ url: req.url,
21
+ method: req.method,
22
+ errorType: err.constructor.name
23
+ });
24
+ res.status(500).json({ error: 'Internal server error' });
25
+ }
26
+ }
27
+ //# sourceMappingURL=error-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../src/middleware/error-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,MAAM,MAAM,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;AAE5C,MAAM,UAAU,YAAY,CAAC,GAAU,EAAE,GAAyB,EAAE,GAAa,EAAE,KAAmB;IACpG,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,SAAS,CAAC;IAE7C,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;YACjC,SAAS;YACT,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,MAAM,EAAE,GAAG,CAAC,MAAM;SACnB,CAAC,CAAC;QACH,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,GAAG,EAAE;YACnC,SAAS;YACT,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI;SAChC,CAAC,CAAC;QACH,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { Request, Response, NextFunction } from 'express';
2
+ /**
3
+ * Middleware to parse and convert query parameters to their proper types
4
+ *
5
+ * This middleware automatically converts:
6
+ * - Numeric strings to numbers
7
+ * - Boolean strings ('true', 'false') to booleans
8
+ * - Preserves other types as-is
9
+ */
10
+ export declare function queryParser(req: Request, res: Response, next: NextFunction): void;
11
+ //# sourceMappingURL=query-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-parser.d.ts","sourceRoot":"","sources":["../../src/middleware/query-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE1D;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAqBjF"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Middleware to parse and convert query parameters to their proper types
3
+ *
4
+ * This middleware automatically converts:
5
+ * - Numeric strings to numbers
6
+ * - Boolean strings ('true', 'false') to booleans
7
+ * - Preserves other types as-is
8
+ */
9
+ export function queryParser(req, res, next) {
10
+ if (!req.query || typeof req.query !== 'object') {
11
+ return next();
12
+ }
13
+ // Create a new object to store converted values
14
+ const convertedQuery = {};
15
+ for (const [key, value] of Object.entries(req.query)) {
16
+ // Handle array values (e.g., ?key=1&key=2)
17
+ if (Array.isArray(value)) {
18
+ convertedQuery[key] = value.map(v => convertValue(v));
19
+ }
20
+ else {
21
+ convertedQuery[key] = convertValue(value);
22
+ }
23
+ }
24
+ // Replace the original query with converted values
25
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
26
+ req.query = convertedQuery; // Express query type expects string | string[], but we're converting to proper types
27
+ next();
28
+ }
29
+ /**
30
+ * Convert a single value to its appropriate type
31
+ */
32
+ function convertValue(value) {
33
+ // Handle null and undefined
34
+ if (value === null || value === undefined) {
35
+ return value;
36
+ }
37
+ // If already a number or boolean, return as-is
38
+ if (typeof value === 'number' || typeof value === 'boolean') {
39
+ return value;
40
+ }
41
+ // If not a string, convert to string
42
+ if (typeof value !== 'string') {
43
+ return String(value);
44
+ }
45
+ // Empty string remains empty string
46
+ if (value === '') {
47
+ return value;
48
+ }
49
+ // Boolean conversion
50
+ if (value.toLowerCase() === 'true') {
51
+ return true;
52
+ }
53
+ if (value.toLowerCase() === 'false') {
54
+ return false;
55
+ }
56
+ // Number conversion
57
+ // Check if it's a valid number (including decimals)
58
+ if (/^-?\d+(\.\d+)?$/.test(value)) {
59
+ const num = Number(value);
60
+ // Ensure the conversion didn't produce NaN or Infinity
61
+ if (!isNaN(num) && isFinite(num)) {
62
+ return num;
63
+ }
64
+ }
65
+ // Return original string if no conversion applied
66
+ return value;
67
+ }
68
+ //# sourceMappingURL=query-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-parser.js","sourceRoot":"","sources":["../../src/middleware/query-parser.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB;IACzE,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,gDAAgD;IAChD,MAAM,cAAc,GAAoH,EAAE,CAAC;IAE3I,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,2CAA2C;QAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,cAAc,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,cAAc,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,mDAAmD;IACnD,8DAA8D;IAC9D,GAAG,CAAC,KAAK,GAAG,cAAqB,CAAC,CAAC,qFAAqF;IACxH,IAAI,EAAE,CAAC;AACT,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,KAAc;IAClC,4BAA4B;IAC5B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,+CAA+C;IAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC5D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,qCAAqC;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,oCAAoC;IACpC,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QACjB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,qBAAqB;IACrB,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,oBAAoB;IACpB,oDAAoD;IACpD,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,uDAAuD;QACvD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IAED,kDAAkD;IAClD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Response, NextFunction } from 'express';
2
+ import { RequestWithRequestId } from '../types/express.js';
3
+ export declare function requestLogger(req: RequestWithRequestId, res: Response, next: NextFunction): void;
4
+ //# sourceMappingURL=request-logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-logger.d.ts","sourceRoot":"","sources":["../../src/middleware/request-logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,wBAAgB,aAAa,CAAC,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CA8BhG"}
@@ -0,0 +1,29 @@
1
+ export function requestLogger(req, res, next) {
2
+ const requestId = Math.random().toString(36).substring(7);
3
+ req.requestId = requestId;
4
+ // Commented out for now - keeping structure for future use
5
+ // logger.debug('Incoming request', {
6
+ // method: req.method,
7
+ // url: req.url,
8
+ // requestId,
9
+ // headers: {
10
+ // 'content-type': req.headers['content-type'],
11
+ // 'user-agent': req.headers['user-agent']
12
+ // },
13
+ // query: req.query,
14
+ // ip: req.ip
15
+ // });
16
+ // Log response when finished
17
+ res.on('finish', () => {
18
+ // logger.debug('Request completed', {
19
+ // requestId,
20
+ // method: req.method,
21
+ // url: req.url,
22
+ // statusCode: res.statusCode,
23
+ // duration: Date.now() - startTime,
24
+ // contentLength: res.get('content-length')
25
+ // });
26
+ });
27
+ next();
28
+ }
29
+ //# sourceMappingURL=request-logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-logger.js","sourceRoot":"","sources":["../../src/middleware/request-logger.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,aAAa,CAAC,GAAyB,EAAE,GAAa,EAAE,IAAkB;IACxF,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC1D,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;IAE1B,2DAA2D;IAC3D,sCAAsC;IACtC,yBAAyB;IACzB,kBAAkB;IAClB,eAAe;IACf,eAAe;IACf,mDAAmD;IACnD,8CAA8C;IAC9C,OAAO;IACP,sBAAsB;IACtB,eAAe;IACf,MAAM;IAEN,6BAA6B;IAC7B,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACpB,sCAAsC;QACtC,eAAe;QACf,wBAAwB;QACxB,kBAAkB;QAClB,gCAAgC;QAChC,sCAAsC;QACtC,6CAA6C;QAC7C,MAAM;IACR,CAAC,CAAC,CAAC;IAEH,IAAI,EAAE,CAAC;AACT,CAAC"}
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Process Daemon Entry Point
4
+ *
5
+ * Run this separately from the main cui-server. It manages Claude CLI processes
6
+ * and survives nodemon restarts of the web server.
7
+ *
8
+ * Usage:
9
+ * npx tsx src/process-daemon/index.ts
10
+ * # or after build:
11
+ * node dist/process-daemon/index.js
12
+ */
13
+ export {};
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/process-daemon/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;GAUG"}
@@ -0,0 +1,51 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Process Daemon Entry Point
4
+ *
5
+ * Run this separately from the main cui-server. It manages Claude CLI processes
6
+ * and survives nodemon restarts of the web server.
7
+ *
8
+ * Usage:
9
+ * npx tsx src/process-daemon/index.ts
10
+ * # or after build:
11
+ * node dist/process-daemon/index.js
12
+ */
13
+ import { ProcessDaemon } from './process-daemon.js';
14
+ import { DEFAULT_SOCKET_PATH } from './types.js';
15
+ const daemon = new ProcessDaemon({
16
+ socketPath: process.env.CUI_DAEMON_SOCKET || DEFAULT_SOCKET_PATH,
17
+ });
18
+ // Graceful shutdown handling
19
+ async function shutdown(signal) {
20
+ console.log(`\n[DAEMON] Received ${signal}, shutting down...`);
21
+ try {
22
+ await daemon.stop();
23
+ process.exit(0);
24
+ }
25
+ catch (error) {
26
+ console.error('[DAEMON] Error during shutdown:', error);
27
+ process.exit(1);
28
+ }
29
+ }
30
+ process.on('SIGINT', () => shutdown('SIGINT'));
31
+ process.on('SIGTERM', () => shutdown('SIGTERM'));
32
+ // Handle uncaught errors
33
+ process.on('uncaughtException', (error) => {
34
+ console.error('[DAEMON] Uncaught exception:', error);
35
+ shutdown('uncaughtException');
36
+ });
37
+ process.on('unhandledRejection', (reason) => {
38
+ console.error('[DAEMON] Unhandled rejection:', reason);
39
+ shutdown('unhandledRejection');
40
+ });
41
+ // Start the daemon
42
+ daemon
43
+ .start()
44
+ .then(() => {
45
+ console.log('[DAEMON] Process daemon is running. Press Ctrl+C to stop.');
46
+ })
47
+ .catch((error) => {
48
+ console.error('[DAEMON] Failed to start:', error);
49
+ process.exit(1);
50
+ });
51
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/process-daemon/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC;IAC/B,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,mBAAmB;CACjE,CAAC,CAAC;AAEH,6BAA6B;AAC7B,KAAK,UAAU,QAAQ,CAAC,MAAc;IACpC,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,oBAAoB,CAAC,CAAC;IAC/D,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;QACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AAEjD,yBAAyB;AACzB,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE;IACxC,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;IACrD,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,EAAE;IAC1C,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,MAAM,CAAC,CAAC;IACvD,QAAQ,CAAC,oBAAoB,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC;AAEH,mBAAmB;AACnB,MAAM;KACH,KAAK,EAAE;KACP,IAAI,CAAC,GAAG,EAAE;IACT,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;AAC3E,CAAC,CAAC;KACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;IAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Process Daemon - Long-running process that owns Claude CLI PTY processes
3
+ *
4
+ * This daemon runs independently of the web server and survives nodemon restarts.
5
+ * It communicates with cui-server via Unix socket IPC.
6
+ */
7
+ import { EventEmitter } from 'events';
8
+ import { DaemonConfig } from './types.js';
9
+ /**
10
+ * Process Daemon - owns and manages Claude CLI PTY processes
11
+ */
12
+ export declare class ProcessDaemon extends EventEmitter {
13
+ private processes;
14
+ private outputBuffers;
15
+ private timeouts;
16
+ private conversationConfigs;
17
+ private sessionIds;
18
+ private killedProcesses;
19
+ private ipcServer;
20
+ private connectedClients;
21
+ private socketPath;
22
+ private claudeExecutablePath;
23
+ private envOverrides;
24
+ private pendingSystemInits;
25
+ constructor(config?: DaemonConfig);
26
+ /**
27
+ * Find the Claude executable
28
+ */
29
+ private findClaudeExecutable;
30
+ /**
31
+ * Check if another daemon is already running by attempting to connect to the socket.
32
+ * Returns true if a daemon is actively listening, false if socket is stale or missing.
33
+ */
34
+ private isExistingDaemonRunning;
35
+ /**
36
+ * Start the IPC server
37
+ */
38
+ start(): Promise<void>;
39
+ /**
40
+ * Stop the daemon gracefully
41
+ */
42
+ stop(): Promise<void>;
43
+ /**
44
+ * Handle a new client connection
45
+ */
46
+ private handleClientConnection;
47
+ /**
48
+ * Handle an IPC request
49
+ */
50
+ private handleRequest;
51
+ /**
52
+ * Send a response to a specific client
53
+ */
54
+ private sendResponse;
55
+ /**
56
+ * Broadcast an event to all connected clients
57
+ */
58
+ private broadcastEvent;
59
+ private handleSpawn;
60
+ private handleStop;
61
+ private handleForceKill;
62
+ private handleWrite;
63
+ private handleSendQuestionAnswer;
64
+ private stopConversation;
65
+ private forceKillConversation;
66
+ private getActiveSessions;
67
+ private isSessionActive;
68
+ private cleanup;
69
+ private setupProcessHandlers;
70
+ private handleClaudeMessage;
71
+ private handleProcessClose;
72
+ private handleProcessError;
73
+ private buildBaseArgs;
74
+ private buildResumeArgs;
75
+ private buildStartArgs;
76
+ private waitForSystemInit;
77
+ }
78
+ //# sourceMappingURL=process-daemon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-daemon.d.ts","sourceRoot":"","sources":["../../src/process-daemon/process-daemon.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAQtC,OAAO,EAUL,YAAY,EAEb,MAAM,YAAY,CAAC;AAgCpB;;GAEG;AACH,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,QAAQ,CAA4C;IAC5D,OAAO,CAAC,mBAAmB,CAA8C;IACzE,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,eAAe,CAA0B;IAEjD,OAAO,CAAC,SAAS,CAA2B;IAC5C,OAAO,CAAC,gBAAgB,CAA8B;IACtD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,YAAY,CAAqC;IAGzD,OAAO,CAAC,kBAAkB,CAOZ;gBAEF,MAAM,GAAE,YAAkD;IAOtE;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA2B5B;;;OAGG;YACW,uBAAuB;IA4BrC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAoC5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiC3B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAoC9B;;OAEG;YACW,aAAa;IA6C3B;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACH,OAAO,CAAC,cAAc;YAeR,WAAW;YAiEX,UAAU;IAKxB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,wBAAwB;YAqBlB,gBAAgB;IAsC9B,OAAO,CAAC,qBAAqB;IAiB7B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,OAAO;IAkBf,OAAO,CAAC,oBAAoB;IA8B5B,OAAO,CAAC,mBAAmB;IAqB3B,OAAO,CAAC,kBAAkB;IAqB1B,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,cAAc;IAiDtB,OAAO,CAAC,iBAAiB;CAU1B"}