lattice-orchestrator 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (440) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +58 -0
  3. package/config/logrotate.conf +15 -0
  4. package/dist/cli-parser.d.ts +11 -0
  5. package/dist/cli-parser.d.ts.map +1 -0
  6. package/dist/cli-parser.js +48 -0
  7. package/dist/cli-parser.js.map +1 -0
  8. package/dist/lattice-server.d.ts +70 -0
  9. package/dist/lattice-server.d.ts.map +1 -0
  10. package/dist/lattice-server.js +969 -0
  11. package/dist/lattice-server.js.map +1 -0
  12. package/dist/mcp-server/index.d.ts +3 -0
  13. package/dist/mcp-server/index.d.ts.map +1 -0
  14. package/dist/mcp-server/index.js +190 -0
  15. package/dist/mcp-server/index.js.map +1 -0
  16. package/dist/mcp-server/lattice-tools.d.ts +15 -0
  17. package/dist/mcp-server/lattice-tools.d.ts.map +1 -0
  18. package/dist/mcp-server/lattice-tools.js +366 -0
  19. package/dist/mcp-server/lattice-tools.js.map +1 -0
  20. package/dist/middleware/cors-setup.d.ts +7 -0
  21. package/dist/middleware/cors-setup.d.ts.map +1 -0
  22. package/dist/middleware/cors-setup.js +8 -0
  23. package/dist/middleware/cors-setup.js.map +1 -0
  24. package/dist/middleware/error-handler.d.ts +4 -0
  25. package/dist/middleware/error-handler.d.ts.map +1 -0
  26. package/dist/middleware/error-handler.js +27 -0
  27. package/dist/middleware/error-handler.js.map +1 -0
  28. package/dist/middleware/query-parser.d.ts +11 -0
  29. package/dist/middleware/query-parser.d.ts.map +1 -0
  30. package/dist/middleware/query-parser.js +68 -0
  31. package/dist/middleware/query-parser.js.map +1 -0
  32. package/dist/middleware/request-logger.d.ts +4 -0
  33. package/dist/middleware/request-logger.d.ts.map +1 -0
  34. package/dist/middleware/request-logger.js +6 -0
  35. package/dist/middleware/request-logger.js.map +1 -0
  36. package/dist/process-daemon/index.d.ts +14 -0
  37. package/dist/process-daemon/index.d.ts.map +1 -0
  38. package/dist/process-daemon/index.js +51 -0
  39. package/dist/process-daemon/index.js.map +1 -0
  40. package/dist/process-daemon/process-daemon.d.ts +101 -0
  41. package/dist/process-daemon/process-daemon.d.ts.map +1 -0
  42. package/dist/process-daemon/process-daemon.js +846 -0
  43. package/dist/process-daemon/process-daemon.js.map +1 -0
  44. package/dist/process-daemon/process-manager-client.d.ts +123 -0
  45. package/dist/process-daemon/process-manager-client.d.ts.map +1 -0
  46. package/dist/process-daemon/process-manager-client.js +329 -0
  47. package/dist/process-daemon/process-manager-client.js.map +1 -0
  48. package/dist/process-daemon/process-manager-interface.d.ts +61 -0
  49. package/dist/process-daemon/process-manager-interface.d.ts.map +1 -0
  50. package/dist/process-daemon/process-manager-interface.js +8 -0
  51. package/dist/process-daemon/process-manager-interface.js.map +1 -0
  52. package/dist/process-daemon/test-daemon.d.ts +12 -0
  53. package/dist/process-daemon/test-daemon.d.ts.map +1 -0
  54. package/dist/process-daemon/test-daemon.js +81 -0
  55. package/dist/process-daemon/test-daemon.js.map +1 -0
  56. package/dist/process-daemon/types.d.ts +97 -0
  57. package/dist/process-daemon/types.d.ts.map +1 -0
  58. package/dist/process-daemon/types.js +8 -0
  59. package/dist/process-daemon/types.js.map +1 -0
  60. package/dist/routes/analysis.routes.d.ts +13 -0
  61. package/dist/routes/analysis.routes.d.ts.map +1 -0
  62. package/dist/routes/analysis.routes.js +520 -0
  63. package/dist/routes/analysis.routes.js.map +1 -0
  64. package/dist/routes/config.routes.d.ts +4 -0
  65. package/dist/routes/config.routes.d.ts.map +1 -0
  66. package/dist/routes/config.routes.js +27 -0
  67. package/dist/routes/config.routes.js.map +1 -0
  68. package/dist/routes/conversation.routes.d.ts +43 -0
  69. package/dist/routes/conversation.routes.d.ts.map +1 -0
  70. package/dist/routes/conversation.routes.js +79 -0
  71. package/dist/routes/conversation.routes.js.map +1 -0
  72. package/dist/routes/filesystem.routes.d.ts +4 -0
  73. package/dist/routes/filesystem.routes.d.ts.map +1 -0
  74. package/dist/routes/filesystem.routes.js +86 -0
  75. package/dist/routes/filesystem.routes.js.map +1 -0
  76. package/dist/routes/insights.routes.d.ts +17 -0
  77. package/dist/routes/insights.routes.d.ts.map +1 -0
  78. package/dist/routes/insights.routes.js +633 -0
  79. package/dist/routes/insights.routes.js.map +1 -0
  80. package/dist/routes/lattice.routes.d.ts +10 -0
  81. package/dist/routes/lattice.routes.d.ts.map +1 -0
  82. package/dist/routes/lattice.routes.js +123 -0
  83. package/dist/routes/lattice.routes.js.map +1 -0
  84. package/dist/routes/license.routes.d.ts +3 -0
  85. package/dist/routes/license.routes.d.ts.map +1 -0
  86. package/dist/routes/license.routes.js +95 -0
  87. package/dist/routes/license.routes.js.map +1 -0
  88. package/dist/routes/log.routes.d.ts +3 -0
  89. package/dist/routes/log.routes.d.ts.map +1 -0
  90. package/dist/routes/log.routes.js +184 -0
  91. package/dist/routes/log.routes.js.map +1 -0
  92. package/dist/routes/pending-question.routes.d.ts +9 -0
  93. package/dist/routes/pending-question.routes.d.ts.map +1 -0
  94. package/dist/routes/pending-question.routes.js +162 -0
  95. package/dist/routes/pending-question.routes.js.map +1 -0
  96. package/dist/routes/permission.routes.d.ts +18 -0
  97. package/dist/routes/permission.routes.d.ts.map +1 -0
  98. package/dist/routes/permission.routes.js +370 -0
  99. package/dist/routes/permission.routes.js.map +1 -0
  100. package/dist/routes/process-events.routes.d.ts +9 -0
  101. package/dist/routes/process-events.routes.d.ts.map +1 -0
  102. package/dist/routes/process-events.routes.js +141 -0
  103. package/dist/routes/process-events.routes.js.map +1 -0
  104. package/dist/routes/prototype.routes.d.ts +9 -0
  105. package/dist/routes/prototype.routes.d.ts.map +1 -0
  106. package/dist/routes/prototype.routes.js +757 -0
  107. package/dist/routes/prototype.routes.js.map +1 -0
  108. package/dist/routes/question.routes.d.ts +8 -0
  109. package/dist/routes/question.routes.d.ts.map +1 -0
  110. package/dist/routes/question.routes.js +83 -0
  111. package/dist/routes/question.routes.js.map +1 -0
  112. package/dist/routes/session-control.routes.d.ts +29 -0
  113. package/dist/routes/session-control.routes.d.ts.map +1 -0
  114. package/dist/routes/session-control.routes.js +455 -0
  115. package/dist/routes/session-control.routes.js.map +1 -0
  116. package/dist/routes/session-lifecycle.routes.d.ts +21 -0
  117. package/dist/routes/session-lifecycle.routes.d.ts.map +1 -0
  118. package/dist/routes/session-lifecycle.routes.js +256 -0
  119. package/dist/routes/session-lifecycle.routes.js.map +1 -0
  120. package/dist/routes/session-query.routes.d.ts +25 -0
  121. package/dist/routes/session-query.routes.d.ts.map +1 -0
  122. package/dist/routes/session-query.routes.js +363 -0
  123. package/dist/routes/session-query.routes.js.map +1 -0
  124. package/dist/routes/session-stream.routes.d.ts +21 -0
  125. package/dist/routes/session-stream.routes.d.ts.map +1 -0
  126. package/dist/routes/session-stream.routes.js +235 -0
  127. package/dist/routes/session-stream.routes.js.map +1 -0
  128. package/dist/routes/streaming.routes.d.ts +4 -0
  129. package/dist/routes/streaming.routes.d.ts.map +1 -0
  130. package/dist/routes/streaming.routes.js +33 -0
  131. package/dist/routes/streaming.routes.js.map +1 -0
  132. package/dist/routes/system.routes.d.ts +7 -0
  133. package/dist/routes/system.routes.d.ts.map +1 -0
  134. package/dist/routes/system.routes.js +214 -0
  135. package/dist/routes/system.routes.js.map +1 -0
  136. package/dist/routes/walkthrough.routes.d.ts +19 -0
  137. package/dist/routes/walkthrough.routes.d.ts.map +1 -0
  138. package/dist/routes/walkthrough.routes.js +688 -0
  139. package/dist/routes/walkthrough.routes.js.map +1 -0
  140. package/dist/routes/working-directories.routes.d.ts +4 -0
  141. package/dist/routes/working-directories.routes.d.ts.map +1 -0
  142. package/dist/routes/working-directories.routes.js +25 -0
  143. package/dist/routes/working-directories.routes.js.map +1 -0
  144. package/dist/server.d.ts +3 -0
  145. package/dist/server.d.ts.map +1 -0
  146. package/dist/server.js +34 -0
  147. package/dist/server.js.map +1 -0
  148. package/dist/services/ToolMetricsService.d.ts +53 -0
  149. package/dist/services/ToolMetricsService.d.ts.map +1 -0
  150. package/dist/services/ToolMetricsService.js +230 -0
  151. package/dist/services/ToolMetricsService.js.map +1 -0
  152. package/dist/services/claude-router-service.d.ts +19 -0
  153. package/dist/services/claude-router-service.d.ts.map +1 -0
  154. package/dist/services/claude-router-service.js +160 -0
  155. package/dist/services/claude-router-service.js.map +1 -0
  156. package/dist/services/commands-service.d.ts +20 -0
  157. package/dist/services/commands-service.d.ts.map +1 -0
  158. package/dist/services/commands-service.js +115 -0
  159. package/dist/services/commands-service.js.map +1 -0
  160. package/dist/services/connection-debug-logger.d.ts +85 -0
  161. package/dist/services/connection-debug-logger.d.ts.map +1 -0
  162. package/dist/services/connection-debug-logger.js +221 -0
  163. package/dist/services/connection-debug-logger.js.map +1 -0
  164. package/dist/services/debug-log.d.ts +6 -0
  165. package/dist/services/debug-log.d.ts.map +1 -0
  166. package/dist/services/debug-log.js +27 -0
  167. package/dist/services/debug-log.js.map +1 -0
  168. package/dist/services/gemini-service.d.ts +35 -0
  169. package/dist/services/gemini-service.d.ts.map +1 -0
  170. package/dist/services/gemini-service.js +256 -0
  171. package/dist/services/gemini-service.js.map +1 -0
  172. package/dist/services/infrastructure/config-service.d.ts +79 -0
  173. package/dist/services/infrastructure/config-service.d.ts.map +1 -0
  174. package/dist/services/infrastructure/config-service.js +431 -0
  175. package/dist/services/infrastructure/config-service.js.map +1 -0
  176. package/dist/services/infrastructure/cost-tracker.d.ts +112 -0
  177. package/dist/services/infrastructure/cost-tracker.d.ts.map +1 -0
  178. package/dist/services/infrastructure/cost-tracker.js +423 -0
  179. package/dist/services/infrastructure/cost-tracker.js.map +1 -0
  180. package/dist/services/infrastructure/file-system-service.d.ts +61 -0
  181. package/dist/services/infrastructure/file-system-service.d.ts.map +1 -0
  182. package/dist/services/infrastructure/file-system-service.js +348 -0
  183. package/dist/services/infrastructure/file-system-service.js.map +1 -0
  184. package/dist/services/infrastructure/log-formatter.d.ts +5 -0
  185. package/dist/services/infrastructure/log-formatter.d.ts.map +1 -0
  186. package/dist/services/infrastructure/log-formatter.js +77 -0
  187. package/dist/services/infrastructure/log-formatter.js.map +1 -0
  188. package/dist/services/infrastructure/log-stream-buffer.d.ts +11 -0
  189. package/dist/services/infrastructure/log-stream-buffer.d.ts.map +1 -0
  190. package/dist/services/infrastructure/log-stream-buffer.js +36 -0
  191. package/dist/services/infrastructure/log-stream-buffer.js.map +1 -0
  192. package/dist/services/infrastructure/logger.d.ts +71 -0
  193. package/dist/services/infrastructure/logger.d.ts.map +1 -0
  194. package/dist/services/infrastructure/logger.js +215 -0
  195. package/dist/services/infrastructure/logger.js.map +1 -0
  196. package/dist/services/infrastructure/service-registry.d.ts +86 -0
  197. package/dist/services/infrastructure/service-registry.d.ts.map +1 -0
  198. package/dist/services/infrastructure/service-registry.js +162 -0
  199. package/dist/services/infrastructure/service-registry.js.map +1 -0
  200. package/dist/services/infrastructure/stream-manager.d.ts +87 -0
  201. package/dist/services/infrastructure/stream-manager.d.ts.map +1 -0
  202. package/dist/services/infrastructure/stream-manager.js +436 -0
  203. package/dist/services/infrastructure/stream-manager.js.map +1 -0
  204. package/dist/services/infrastructure/timing.d.ts +72 -0
  205. package/dist/services/infrastructure/timing.d.ts.map +1 -0
  206. package/dist/services/infrastructure/timing.js +115 -0
  207. package/dist/services/infrastructure/timing.js.map +1 -0
  208. package/dist/services/insights/anthropic-service.d.ts +224 -0
  209. package/dist/services/insights/anthropic-service.d.ts.map +1 -0
  210. package/dist/services/insights/anthropic-service.js +1062 -0
  211. package/dist/services/insights/anthropic-service.js.map +1 -0
  212. package/dist/services/insights/insight-audit-repository.d.ts +119 -0
  213. package/dist/services/insights/insight-audit-repository.d.ts.map +1 -0
  214. package/dist/services/insights/insight-audit-repository.js +242 -0
  215. package/dist/services/insights/insight-audit-repository.js.map +1 -0
  216. package/dist/services/insights/insight-queue.d.ts +99 -0
  217. package/dist/services/insights/insight-queue.d.ts.map +1 -0
  218. package/dist/services/insights/insight-queue.js +277 -0
  219. package/dist/services/insights/insight-queue.js.map +1 -0
  220. package/dist/services/insights/insights-computer.d.ts +132 -0
  221. package/dist/services/insights/insights-computer.d.ts.map +1 -0
  222. package/dist/services/insights/insights-computer.js +936 -0
  223. package/dist/services/insights/insights-computer.js.map +1 -0
  224. package/dist/services/insights/insights-coordinator.d.ts +165 -0
  225. package/dist/services/insights/insights-coordinator.d.ts.map +1 -0
  226. package/dist/services/insights/insights-coordinator.js +1678 -0
  227. package/dist/services/insights/insights-coordinator.js.map +1 -0
  228. package/dist/services/insights/insights-event-log.d.ts +196 -0
  229. package/dist/services/insights/insights-event-log.d.ts.map +1 -0
  230. package/dist/services/insights/insights-event-log.js +319 -0
  231. package/dist/services/insights/insights-event-log.js.map +1 -0
  232. package/dist/services/lattice-service.d.ts +77 -0
  233. package/dist/services/lattice-service.d.ts.map +1 -0
  234. package/dist/services/lattice-service.js +195 -0
  235. package/dist/services/lattice-service.js.map +1 -0
  236. package/dist/services/license-service.d.ts +69 -0
  237. package/dist/services/license-service.d.ts.map +1 -0
  238. package/dist/services/license-service.js +330 -0
  239. package/dist/services/license-service.js.map +1 -0
  240. package/dist/services/mcp-config-generator.d.ts +32 -0
  241. package/dist/services/mcp-config-generator.d.ts.map +1 -0
  242. package/dist/services/mcp-config-generator.js +126 -0
  243. package/dist/services/mcp-config-generator.js.map +1 -0
  244. package/dist/services/message-filter.d.ts +22 -0
  245. package/dist/services/message-filter.d.ts.map +1 -0
  246. package/dist/services/message-filter.js +57 -0
  247. package/dist/services/message-filter.js.map +1 -0
  248. package/dist/services/notification-service.d.ts +45 -0
  249. package/dist/services/notification-service.d.ts.map +1 -0
  250. package/dist/services/notification-service.js +184 -0
  251. package/dist/services/notification-service.js.map +1 -0
  252. package/dist/services/pending-question-service.d.ts +97 -0
  253. package/dist/services/pending-question-service.d.ts.map +1 -0
  254. package/dist/services/pending-question-service.js +223 -0
  255. package/dist/services/pending-question-service.js.map +1 -0
  256. package/dist/services/permission-event-log.d.ts +136 -0
  257. package/dist/services/permission-event-log.d.ts.map +1 -0
  258. package/dist/services/permission-event-log.js +252 -0
  259. package/dist/services/permission-event-log.js.map +1 -0
  260. package/dist/services/permission-pattern-matcher.d.ts +82 -0
  261. package/dist/services/permission-pattern-matcher.d.ts.map +1 -0
  262. package/dist/services/permission-pattern-matcher.js +294 -0
  263. package/dist/services/permission-pattern-matcher.js.map +1 -0
  264. package/dist/services/permission-tracker.d.ts +67 -0
  265. package/dist/services/permission-tracker.d.ts.map +1 -0
  266. package/dist/services/permission-tracker.js +162 -0
  267. package/dist/services/permission-tracker.js.map +1 -0
  268. package/dist/services/process/claude-process-manager.d.ts +142 -0
  269. package/dist/services/process/claude-process-manager.d.ts.map +1 -0
  270. package/dist/services/process/claude-process-manager.js +1218 -0
  271. package/dist/services/process/claude-process-manager.js.map +1 -0
  272. package/dist/services/process/conversation-status-manager.d.ts +110 -0
  273. package/dist/services/process/conversation-status-manager.d.ts.map +1 -0
  274. package/dist/services/process/conversation-status-manager.js +349 -0
  275. package/dist/services/process/conversation-status-manager.js.map +1 -0
  276. package/dist/services/process/json-lines-parser.d.ts +19 -0
  277. package/dist/services/process/json-lines-parser.d.ts.map +1 -0
  278. package/dist/services/process/json-lines-parser.js +59 -0
  279. package/dist/services/process/json-lines-parser.js.map +1 -0
  280. package/dist/services/process/process-event-log.d.ts +263 -0
  281. package/dist/services/process/process-event-log.d.ts.map +1 -0
  282. package/dist/services/process/process-event-log.js +509 -0
  283. package/dist/services/process/process-event-log.js.map +1 -0
  284. package/dist/services/process/process-manager-factory.d.ts +109 -0
  285. package/dist/services/process/process-manager-factory.d.ts.map +1 -0
  286. package/dist/services/process/process-manager-factory.js +338 -0
  287. package/dist/services/process/process-manager-factory.js.map +1 -0
  288. package/dist/services/question-tracker.d.ts +51 -0
  289. package/dist/services/question-tracker.d.ts.map +1 -0
  290. package/dist/services/question-tracker.js +111 -0
  291. package/dist/services/question-tracker.js.map +1 -0
  292. package/dist/services/sessions/claude-history-reader.d.ts +139 -0
  293. package/dist/services/sessions/claude-history-reader.d.ts.map +1 -0
  294. package/dist/services/sessions/claude-history-reader.js +864 -0
  295. package/dist/services/sessions/claude-history-reader.js.map +1 -0
  296. package/dist/services/sessions/conversation-cache.d.ts +98 -0
  297. package/dist/services/sessions/conversation-cache.d.ts.map +1 -0
  298. package/dist/services/sessions/conversation-cache.js +329 -0
  299. package/dist/services/sessions/conversation-cache.js.map +1 -0
  300. package/dist/services/sessions/session-activity-watcher.d.ts +67 -0
  301. package/dist/services/sessions/session-activity-watcher.d.ts.map +1 -0
  302. package/dist/services/sessions/session-activity-watcher.js +236 -0
  303. package/dist/services/sessions/session-activity-watcher.js.map +1 -0
  304. package/dist/services/sessions/session-analysis-service.d.ts +72 -0
  305. package/dist/services/sessions/session-analysis-service.d.ts.map +1 -0
  306. package/dist/services/sessions/session-analysis-service.js +373 -0
  307. package/dist/services/sessions/session-analysis-service.js.map +1 -0
  308. package/dist/services/sessions/session-branch-service.d.ts +76 -0
  309. package/dist/services/sessions/session-branch-service.d.ts.map +1 -0
  310. package/dist/services/sessions/session-branch-service.js +355 -0
  311. package/dist/services/sessions/session-branch-service.js.map +1 -0
  312. package/dist/services/sessions/session-info-service.d.ts +455 -0
  313. package/dist/services/sessions/session-info-service.d.ts.map +1 -0
  314. package/dist/services/sessions/session-info-service.js +1640 -0
  315. package/dist/services/sessions/session-info-service.js.map +1 -0
  316. package/dist/services/sessions/session-marks-repository.d.ts +78 -0
  317. package/dist/services/sessions/session-marks-repository.d.ts.map +1 -0
  318. package/dist/services/sessions/session-marks-repository.js +263 -0
  319. package/dist/services/sessions/session-marks-repository.js.map +1 -0
  320. package/dist/services/sessions/session-marks-service.d.ts +137 -0
  321. package/dist/services/sessions/session-marks-service.d.ts.map +1 -0
  322. package/dist/services/sessions/session-marks-service.js +562 -0
  323. package/dist/services/sessions/session-marks-service.js.map +1 -0
  324. package/dist/services/sessions/session-review-service.d.ts +98 -0
  325. package/dist/services/sessions/session-review-service.d.ts.map +1 -0
  326. package/dist/services/sessions/session-review-service.js +629 -0
  327. package/dist/services/sessions/session-review-service.js.map +1 -0
  328. package/dist/services/sessions/turn-capture-service.d.ts +83 -0
  329. package/dist/services/sessions/turn-capture-service.d.ts.map +1 -0
  330. package/dist/services/sessions/turn-capture-service.js +477 -0
  331. package/dist/services/sessions/turn-capture-service.js.map +1 -0
  332. package/dist/services/sessions/turn-repository.d.ts +48 -0
  333. package/dist/services/sessions/turn-repository.d.ts.map +1 -0
  334. package/dist/services/sessions/turn-repository.js +103 -0
  335. package/dist/services/sessions/turn-repository.js.map +1 -0
  336. package/dist/services/walkthrough-service.d.ts +226 -0
  337. package/dist/services/walkthrough-service.d.ts.map +1 -0
  338. package/dist/services/walkthrough-service.js +1112 -0
  339. package/dist/services/walkthrough-service.js.map +1 -0
  340. package/dist/services/walkthrough-skill-prompt.d.ts +34 -0
  341. package/dist/services/walkthrough-skill-prompt.d.ts.map +1 -0
  342. package/dist/services/walkthrough-skill-prompt.js +313 -0
  343. package/dist/services/walkthrough-skill-prompt.js.map +1 -0
  344. package/dist/services/web-push-service.d.ts +48 -0
  345. package/dist/services/web-push-service.d.ts.map +1 -0
  346. package/dist/services/web-push-service.js +186 -0
  347. package/dist/services/web-push-service.js.map +1 -0
  348. package/dist/services/working-directories-service.d.ts +19 -0
  349. package/dist/services/working-directories-service.d.ts.map +1 -0
  350. package/dist/services/working-directories-service.js +103 -0
  351. package/dist/services/working-directories-service.js.map +1 -0
  352. package/dist/types/config.d.ts +122 -0
  353. package/dist/types/config.d.ts.map +1 -0
  354. package/dist/types/config.js +21 -0
  355. package/dist/types/config.js.map +1 -0
  356. package/dist/types/express.d.ts +5 -0
  357. package/dist/types/express.d.ts.map +1 -0
  358. package/dist/types/express.js +2 -0
  359. package/dist/types/express.js.map +1 -0
  360. package/dist/types/index.d.ts +400 -0
  361. package/dist/types/index.d.ts.map +1 -0
  362. package/dist/types/index.js +41 -0
  363. package/dist/types/index.js.map +1 -0
  364. package/dist/types/insights.d.ts +176 -0
  365. package/dist/types/insights.d.ts.map +1 -0
  366. package/dist/types/insights.js +23 -0
  367. package/dist/types/insights.js.map +1 -0
  368. package/dist/types/license.d.ts +70 -0
  369. package/dist/types/license.d.ts.map +1 -0
  370. package/dist/types/license.js +5 -0
  371. package/dist/types/license.js.map +1 -0
  372. package/dist/types/router-config.d.ts +13 -0
  373. package/dist/types/router-config.d.ts.map +1 -0
  374. package/dist/types/router-config.js +2 -0
  375. package/dist/types/router-config.js.map +1 -0
  376. package/dist/utils/constants.d.ts +26 -0
  377. package/dist/utils/constants.d.ts.map +1 -0
  378. package/dist/utils/constants.js +28 -0
  379. package/dist/utils/constants.js.map +1 -0
  380. package/dist/utils/machine-id.d.ts +7 -0
  381. package/dist/utils/machine-id.d.ts.map +1 -0
  382. package/dist/utils/machine-id.js +76 -0
  383. package/dist/utils/machine-id.js.map +1 -0
  384. package/dist/utils/server-startup.d.ts +11 -0
  385. package/dist/utils/server-startup.d.ts.map +1 -0
  386. package/dist/utils/server-startup.js +9 -0
  387. package/dist/utils/server-startup.js.map +1 -0
  388. package/dist/utils/update-check.d.ts +13 -0
  389. package/dist/utils/update-check.d.ts.map +1 -0
  390. package/dist/utils/update-check.js +90 -0
  391. package/dist/utils/update-check.js.map +1 -0
  392. package/dist/web/assets/ArchivedCardPrototype-S9ifiasa.js +5 -0
  393. package/dist/web/assets/BannerGallery-B__rJV6F.js +1 -0
  394. package/dist/web/assets/BannerPrototype-DBKP9Uiu.js +52 -0
  395. package/dist/web/assets/CodeHikeExperiment-B8jjWAFy.js +15 -0
  396. package/dist/web/assets/ContextTooltipVariations-DzklAFam.js +1 -0
  397. package/dist/web/assets/FontShowcasePrototype-KIMEWeP2.js +13 -0
  398. package/dist/web/assets/GeometricGallery-DddlWhHK.js +1 -0
  399. package/dist/web/assets/HistoryWalkthroughPrototype-DeniRRdw.js +18 -0
  400. package/dist/web/assets/InlineWalkthroughPrototype-Csd5r_Hk.js +1 -0
  401. package/dist/web/assets/MarkButtonPrototype-CxhxE0RP.js +1 -0
  402. package/dist/web/assets/MenuStylesPrototype-D7neA6YM.js +1 -0
  403. package/dist/web/assets/MomentCardVariations-2GT7GyFn.js +1 -0
  404. package/dist/web/assets/MomentHeaderVariations-DhGEw4XC.js +1 -0
  405. package/dist/web/assets/NarrativeWalkthroughDemo-B5C566fu.js +389 -0
  406. package/dist/web/assets/OutcomeVariations-BrZfsVcs.js +1 -0
  407. package/dist/web/assets/PermissionPatternPickerPrototype-CBOhe2Me.js +1 -0
  408. package/dist/web/assets/PermissionPrototype-BcF-a5an.js +1 -0
  409. package/dist/web/assets/PipelineGallery-BJhyM0rx.js +1 -0
  410. package/dist/web/assets/ScopeHeaderPrototype-GD1HNfaO.js +1 -0
  411. package/dist/web/assets/ScopeHeaderStylesPrototype-aa4uNJJ1.js +1 -0
  412. package/dist/web/assets/ScrollycodingPrototype-CKW1bf72.js +70 -0
  413. package/dist/web/assets/SectionHeaderVariations-DM8vUwfj.js +1 -0
  414. package/dist/web/assets/SemanticGallery-CtQEo7St.js +1 -0
  415. package/dist/web/assets/SessionCardPrototype-CgHCIMHe.js +1 -0
  416. package/dist/web/assets/SessionSidebarVariations-DMQL3Azj.js +3 -0
  417. package/dist/web/assets/SessionStartPrototype-Cwsv01Rr.js +1 -0
  418. package/dist/web/assets/SmartMenuPrototype-Br37Qbs_.js +1 -0
  419. package/dist/web/assets/StyleGallery-rZgrploB.js +1 -0
  420. package/dist/web/assets/TimelineCardPrototype-lzPc5mhe.js +19 -0
  421. package/dist/web/assets/ToolbarPrototype-Dm4BNZra.js +1 -0
  422. package/dist/web/assets/TooltipExperiment-Dy8QzTIP.js +13 -0
  423. package/dist/web/assets/WalkthroughCTAPrototype-uHoovujd.js +1 -0
  424. package/dist/web/assets/WalkthroughHeaderVariations-Do7Di1g1.js +1 -0
  425. package/dist/web/assets/WalkthroughShowcase-sGmRoPoM.js +112 -0
  426. package/dist/web/assets/arrow-right-D46Nx1mC.js +1 -0
  427. package/dist/web/assets/brain-BXIZKtOZ.js +1 -0
  428. package/dist/web/assets/grid-3x3-Cb81B62m.js +1 -0
  429. package/dist/web/assets/main-B1fyog77.js +321 -0
  430. package/dist/web/assets/main-C2PK2Klg.css +1 -0
  431. package/dist/web/assets/semantic-variations-Bd-W7ea2.js +1 -0
  432. package/dist/web/assets/target-Cf92wDTW.js +1 -0
  433. package/dist/web/favicon.png +0 -0
  434. package/dist/web/favicon.svg +22 -0
  435. package/dist/web/icon-192x192.png +0 -0
  436. package/dist/web/icon-512x512.png +0 -0
  437. package/dist/web/index.html +45 -0
  438. package/dist/web/manifest.json +61 -0
  439. package/package.json +192 -0
  440. package/scripts/postinstall.js +60 -0
@@ -0,0 +1,70 @@
1
+ /**
2
+ * License types for Claudia
3
+ */
4
+ export type LicenseTier = 'free' | 'beta' | 'pro';
5
+ /**
6
+ * JWT payload for license tokens
7
+ */
8
+ export interface LicenseTokenPayload {
9
+ /** Email address */
10
+ email: string;
11
+ /** License tier */
12
+ tier: LicenseTier;
13
+ /** Issued at (Unix timestamp) */
14
+ iat: number;
15
+ /** Expiration (Unix timestamp), undefined for lifetime */
16
+ exp?: number;
17
+ }
18
+ export interface License {
19
+ /**
20
+ * JWT token string
21
+ */
22
+ token: string;
23
+ /**
24
+ * Decoded email from token
25
+ */
26
+ email: string;
27
+ /**
28
+ * License tier from token
29
+ */
30
+ tier: LicenseTier;
31
+ /**
32
+ * Expiration date (ISO 8601)
33
+ * null for lifetime licenses
34
+ */
35
+ expiresAt: string | null;
36
+ /**
37
+ * When this license was activated locally
38
+ */
39
+ activatedAt: string;
40
+ }
41
+ export interface LicenseValidationResult {
42
+ /**
43
+ * Whether the license is valid
44
+ */
45
+ valid: boolean;
46
+ /**
47
+ * The license tier (free if no valid license)
48
+ */
49
+ tier: LicenseTier;
50
+ /**
51
+ * License details (null if free tier)
52
+ */
53
+ license: License | null;
54
+ /**
55
+ * Validation error message (if invalid)
56
+ */
57
+ error?: string;
58
+ }
59
+ export interface LicenseLimits {
60
+ /**
61
+ * Maximum concurrent sessions
62
+ * null = unlimited
63
+ */
64
+ maxSessions: number | null;
65
+ /**
66
+ * Whether insights are enabled
67
+ */
68
+ insightsEnabled: boolean;
69
+ }
70
+ //# sourceMappingURL=license.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"license.d.ts","sourceRoot":"","sources":["../../src/types/license.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB;IACnB,IAAI,EAAE,WAAW,CAAC;IAClB,iCAAiC;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,0DAA0D;IAC1D,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,EAAE,WAAW,CAAC;IAElB;;;OAGG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,KAAK,EAAE,OAAO,CAAC;IAEf;;OAEG;IACH,IAAI,EAAE,WAAW,CAAC;IAElB;;OAEG;IACH,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAExB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;OAEG;IACH,eAAe,EAAE,OAAO,CAAC;CAC1B"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * License types for Claudia
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=license.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"license.js","sourceRoot":"","sources":["../../src/types/license.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,13 @@
1
+ export interface RouterProvider {
2
+ name: string;
3
+ api_base_url: string;
4
+ api_key: string;
5
+ models: string[];
6
+ transformer?: Record<string, unknown>;
7
+ }
8
+ export interface RouterConfiguration {
9
+ enabled: boolean;
10
+ providers: RouterProvider[];
11
+ rules: Record<string, string>;
12
+ }
13
+ //# sourceMappingURL=router-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router-config.d.ts","sourceRoot":"","sources":["../../src/types/router-config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,cAAc,EAAE,CAAC;IAE5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=router-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router-config.js","sourceRoot":"","sources":["../../src/types/router-config.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Application branding constants
3
+ * Change these to rebrand the entire application
4
+ */
5
+ export declare const APP_NAME = "lattice";
6
+ export declare const APP_DISPLAY_NAME = "Lattice";
7
+ /**
8
+ * Config directory: ~/.lattice/
9
+ * Contains: config.json, session-info.db, license.json, etc.
10
+ */
11
+ export declare const CONFIG_DIR_NAME = ".lattice";
12
+ export declare const CONFIG_DIR: string;
13
+ /**
14
+ * Socket path for daemon IPC
15
+ */
16
+ export declare const DAEMON_SOCKET_PATH = "/tmp/lattice-daemon.sock";
17
+ /**
18
+ * Notification topic prefix for ntfy.sh
19
+ */
20
+ export declare const NOTIFICATION_TOPIC_PREFIX = "lattice";
21
+ /**
22
+ * MCP server names
23
+ */
24
+ export declare const MCP_PERMISSIONS_SERVER_NAME = "lattice-permissions";
25
+ export declare const MCP_ORCHESTRATOR_SERVER_NAME = "lattice-orchestrator";
26
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,eAAO,MAAM,QAAQ,YAAY,CAAC;AAClC,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAE1C;;;GAGG;AACH,eAAO,MAAM,eAAe,aAAiB,CAAC;AAC9C,eAAO,MAAM,UAAU,QAA2C,CAAC;AAEnE;;GAEG;AACH,eAAO,MAAM,kBAAkB,6BAAiC,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,yBAAyB,YAAW,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,2BAA2B,wBAA4B,CAAC;AACrE,eAAO,MAAM,4BAA4B,yBAA6B,CAAC"}
@@ -0,0 +1,28 @@
1
+ import path from 'path';
2
+ import os from 'os';
3
+ /**
4
+ * Application branding constants
5
+ * Change these to rebrand the entire application
6
+ */
7
+ export const APP_NAME = 'lattice';
8
+ export const APP_DISPLAY_NAME = 'Lattice';
9
+ /**
10
+ * Config directory: ~/.lattice/
11
+ * Contains: config.json, session-info.db, license.json, etc.
12
+ */
13
+ export const CONFIG_DIR_NAME = `.${APP_NAME}`;
14
+ export const CONFIG_DIR = path.join(os.homedir(), CONFIG_DIR_NAME);
15
+ /**
16
+ * Socket path for daemon IPC
17
+ */
18
+ export const DAEMON_SOCKET_PATH = `/tmp/${APP_NAME}-daemon.sock`;
19
+ /**
20
+ * Notification topic prefix for ntfy.sh
21
+ */
22
+ export const NOTIFICATION_TOPIC_PREFIX = APP_NAME;
23
+ /**
24
+ * MCP server names
25
+ */
26
+ export const MCP_PERMISSIONS_SERVER_NAME = `${APP_NAME}-permissions`;
27
+ export const MCP_ORCHESTRATOR_SERVER_NAME = `${APP_NAME}-orchestrator`;
28
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,SAAS,CAAC;AAClC,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAE1C;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,QAAQ,EAAE,CAAC;AAC9C,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC;AAEnE;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,QAAQ,cAAc,CAAC;AAEjE;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,QAAQ,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,QAAQ,cAAc,CAAC;AACrE,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,QAAQ,eAAe,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Generate a machine ID based on hostname and MAC address
3
+ * Format: {hostname}-{16char_hash}
4
+ * Example: "wenbomacbook-a1b2c3d4e5f6g7h8"
5
+ */
6
+ export declare function generateMachineId(): Promise<string>;
7
+ //# sourceMappingURL=machine-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"machine-id.d.ts","sourceRoot":"","sources":["../../src/utils/machine-id.ts"],"names":[],"mappings":"AA0DA;;;;GAIG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAkBzD"}
@@ -0,0 +1,76 @@
1
+ import os from 'os';
2
+ import crypto from 'crypto';
3
+ import { exec } from 'child_process';
4
+ import { promisify } from 'util';
5
+ const execAsync = promisify(exec);
6
+ /**
7
+ * Get the primary network interface MAC address
8
+ * On macOS, this is typically en0
9
+ * On Linux, this is typically eth0, eno1, or enp0s*
10
+ */
11
+ async function getPrimaryMacAddress() {
12
+ try {
13
+ // Platform-specific commands to get MAC address
14
+ let command;
15
+ const platform = os.platform();
16
+ if (platform === 'darwin') {
17
+ // macOS: Get en0 MAC address (primary network interface)
18
+ command = 'ifconfig en0 | grep ether | awk \'{print $2}\'';
19
+ }
20
+ else if (platform === 'linux') {
21
+ // Linux: Try common interface names
22
+ command = 'ip link show | grep -E "eno1|eth0|enp0s[0-9]+" -A1 | grep link/ether | head -1 | awk \'{print $2}\'';
23
+ }
24
+ else if (platform === 'win32') {
25
+ // Windows: Get first physical adapter MAC
26
+ command = 'wmic nic where "PhysicalAdapter=TRUE" get MACAddress | findstr /r "[0-9A-F][0-9A-F]:[0-9A-F][0-9A-F]" | head -1';
27
+ }
28
+ else {
29
+ throw new Error(`Unsupported platform: ${platform}`);
30
+ }
31
+ const { stdout } = await execAsync(command);
32
+ const mac = stdout.trim();
33
+ if (!mac) {
34
+ throw new Error('No MAC address found');
35
+ }
36
+ return mac;
37
+ }
38
+ catch (_error) {
39
+ // Fallback: Use os.networkInterfaces()
40
+ const interfaces = os.networkInterfaces();
41
+ for (const name of Object.keys(interfaces)) {
42
+ const iface = interfaces[name];
43
+ if (!iface)
44
+ continue;
45
+ for (const info of iface) {
46
+ // Skip internal (loopback) interfaces
47
+ if (!info.internal && info.mac && info.mac !== '00:00:00:00:00:00') {
48
+ return info.mac;
49
+ }
50
+ }
51
+ }
52
+ throw new Error('Unable to determine MAC address');
53
+ }
54
+ }
55
+ /**
56
+ * Generate a machine ID based on hostname and MAC address
57
+ * Format: {hostname}-{16char_hash}
58
+ * Example: "wenbomacbook-a1b2c3d4e5f6g7h8"
59
+ */
60
+ export async function generateMachineId() {
61
+ // Get hostname (lowercase) and sanitize it
62
+ // Remove dots and other special characters, keeping only alphanumeric and hyphens
63
+ const hostname = os.hostname()
64
+ .toLowerCase()
65
+ .replace(/[^a-z0-9-]/g, '');
66
+ // Get MAC address
67
+ const macAddress = await getPrimaryMacAddress();
68
+ // Generate SHA256 hash of MAC address
69
+ const hash = crypto
70
+ .createHash('sha256')
71
+ .update(macAddress.toLowerCase())
72
+ .digest('hex')
73
+ .substring(0, 16); // Take first 16 characters
74
+ return `${hostname}-${hash}`;
75
+ }
76
+ //# sourceMappingURL=machine-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"machine-id.js","sourceRoot":"","sources":["../../src/utils/machine-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC;;;;GAIG;AACH,KAAK,UAAU,oBAAoB;IACjC,IAAI,CAAC;QACH,gDAAgD;QAChD,IAAI,OAAe,CAAC;QACpB,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QAE/B,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,yDAAyD;YACzD,OAAO,GAAG,gDAAgD,CAAC;QAC7D,CAAC;aAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YAChC,oCAAoC;YACpC,OAAO,GAAG,qGAAqG,CAAC;QAClH,CAAC;aAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YAChC,0CAA0C;YAC1C,OAAO,GAAG,iHAAiH,CAAC;QAC9H,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAE1B,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,uCAAuC;QACvC,MAAM,UAAU,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC;QAC1C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3C,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,CAAC,KAAK;gBAAE,SAAS;YAErB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,sCAAsC;gBACtC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,mBAAmB,EAAE,CAAC;oBACnE,OAAO,IAAI,CAAC,GAAG,CAAC;gBAClB,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,2CAA2C;IAC3C,kFAAkF;IAClF,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE;SAC3B,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IAE9B,kBAAkB;IAClB,MAAM,UAAU,GAAG,MAAM,oBAAoB,EAAE,CAAC;IAEhD,sCAAsC;IACtC,MAAM,IAAI,GAAG,MAAM;SAChB,UAAU,CAAC,QAAQ,CAAC;SACpB,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;SAChC,MAAM,CAAC,KAAK,CAAC;SACb,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,2BAA2B;IAEhD,OAAO,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { Logger } from '../services/infrastructure/logger.js';
2
+ export interface ServerStartupOptions {
3
+ host: string;
4
+ port: number;
5
+ logger: Logger;
6
+ }
7
+ /**
8
+ * Display server startup information
9
+ */
10
+ export declare function displayServerStartup(options: ServerStartupOptions): void;
11
+ //# sourceMappingURL=server-startup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-startup.d.ts","sourceRoot":"","sources":["../../src/utils/server-startup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sCAAsC,CAAC;AAE9D,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAIxE"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Display server startup information
3
+ */
4
+ export function displayServerStartup(options) {
5
+ const { host, port, logger } = options;
6
+ const serverUrl = `http://${host}:${port}`;
7
+ logger.info(`🚀 Server listening on ${serverUrl}`);
8
+ }
9
+ //# sourceMappingURL=server-startup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-startup.js","sourceRoot":"","sources":["../../src/utils/server-startup.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAA6B;IAChE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACvC,MAAM,SAAS,GAAG,UAAU,IAAI,IAAI,IAAI,EAAE,CAAC;IAC3C,MAAM,CAAC,IAAI,CAAC,0BAA0B,SAAS,EAAE,CAAC,CAAC;AACrD,CAAC"}
@@ -0,0 +1,13 @@
1
+ export interface UpdateInfo {
2
+ currentVersion: string;
3
+ latestVersion: string;
4
+ hasUpdate: boolean;
5
+ releaseUrl: string;
6
+ changelogUrl: string;
7
+ }
8
+ export declare function checkForUpdates(): Promise<UpdateInfo>;
9
+ /**
10
+ * Log update availability on startup (non-blocking)
11
+ */
12
+ export declare function checkForUpdatesOnStartup(): void;
13
+ //# sourceMappingURL=update-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-check.d.ts","sourceRoot":"","sources":["../../src/utils/update-check.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,UAAU;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAmCD,wBAAsB,eAAe,IAAI,OAAO,CAAC,UAAU,CAAC,CA+C3D;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAS/C"}
@@ -0,0 +1,90 @@
1
+ import { createRequire } from 'module';
2
+ import { createLogger } from '../services/infrastructure/logger.js';
3
+ const require = createRequire(import.meta.url);
4
+ const logger = createLogger('UpdateCheck');
5
+ const PACKAGE_NAME = 'claudia-orchestrator';
6
+ const GITHUB_RELEASES_URL = 'https://github.com/Liggi/claudia-orchestrator/releases';
7
+ const CHANGELOG_URL = 'https://github.com/Liggi/claudia-orchestrator/blob/main/CHANGELOG.md';
8
+ // Cache the result for 1 hour to avoid hammering npm on every request
9
+ let cachedResult = null;
10
+ let cacheTime = 0;
11
+ const CACHE_TTL = 60 * 60 * 1000; // 1 hour
12
+ function getCurrentVersion() {
13
+ try {
14
+ // Navigate up from dist/utils to find package.json
15
+ const pkg = require('../../package.json');
16
+ return pkg.version;
17
+ }
18
+ catch {
19
+ return 'unknown';
20
+ }
21
+ }
22
+ function compareVersions(current, latest) {
23
+ // Simple semver comparison - returns true if latest > current
24
+ const currentParts = current.split('.').map(Number);
25
+ const latestParts = latest.split('.').map(Number);
26
+ for (let i = 0; i < 3; i++) {
27
+ const c = currentParts[i] || 0;
28
+ const l = latestParts[i] || 0;
29
+ if (l > c)
30
+ return true;
31
+ if (l < c)
32
+ return false;
33
+ }
34
+ return false;
35
+ }
36
+ export async function checkForUpdates() {
37
+ const now = Date.now();
38
+ // Return cached result if still valid
39
+ if (cachedResult && (now - cacheTime) < CACHE_TTL) {
40
+ return cachedResult;
41
+ }
42
+ const currentVersion = getCurrentVersion();
43
+ try {
44
+ const response = await fetch(`https://registry.npmjs.org/${PACKAGE_NAME}/latest`, {
45
+ headers: { 'Accept': 'application/json' },
46
+ signal: AbortSignal.timeout(5000) // 5 second timeout
47
+ });
48
+ if (!response.ok) {
49
+ throw new Error(`npm registry returned ${response.status}`);
50
+ }
51
+ const data = await response.json();
52
+ const latestVersion = data.version;
53
+ cachedResult = {
54
+ currentVersion,
55
+ latestVersion,
56
+ hasUpdate: compareVersions(currentVersion, latestVersion),
57
+ releaseUrl: GITHUB_RELEASES_URL,
58
+ changelogUrl: CHANGELOG_URL
59
+ };
60
+ cacheTime = now;
61
+ return cachedResult;
62
+ }
63
+ catch (error) {
64
+ logger.debug('Failed to check for updates', {
65
+ error: error instanceof Error ? error.message : String(error)
66
+ });
67
+ // Return a safe default on error
68
+ return {
69
+ currentVersion,
70
+ latestVersion: currentVersion,
71
+ hasUpdate: false,
72
+ releaseUrl: GITHUB_RELEASES_URL,
73
+ changelogUrl: CHANGELOG_URL
74
+ };
75
+ }
76
+ }
77
+ /**
78
+ * Log update availability on startup (non-blocking)
79
+ */
80
+ export function checkForUpdatesOnStartup() {
81
+ checkForUpdates().then(info => {
82
+ if (info.hasUpdate) {
83
+ logger.info(`Update available: ${info.currentVersion} → ${info.latestVersion}`);
84
+ logger.info(`See what's new: ${info.releaseUrl}`);
85
+ }
86
+ }).catch(() => {
87
+ // Silently ignore - startup shouldn't fail due to update check
88
+ });
89
+ }
90
+ //# sourceMappingURL=update-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-check.js","sourceRoot":"","sources":["../../src/utils/update-check.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import{r as p,j as e,g as u,A as g,h as x,i as l,k as h}from"./main-B1fyog77.js";const d=[{sessionId:"abc123def456",insights:{purpose:"Implement pagination for archived sessions",description:"Adding infinite scroll and reusing SessionCard component",theme:"ui",tags:{complexity:"moderate"}},sessionInfo:{customName:null,identity_image:null},workingDirectory:"/home/jason/claudia",updatedAt:new Date(Date.now()-7200*1e3).toISOString(),createdAt:new Date(Date.now()-300*60*1e3).toISOString()},{sessionId:"xyz789ghi012",insights:{purpose:"Fix SSE reconnection bug in activity stream",description:"Investigating why clients disconnect after server restart",theme:"infra",tags:{complexity:"gnarly"}},sessionInfo:{customName:"SSE Bug Hunt",identity_image:null},workingDirectory:"/home/jason/claudia",updatedAt:new Date(Date.now()-1440*60*1e3).toISOString(),createdAt:new Date(Date.now()-1560*60*1e3).toISOString()},{sessionId:"mno345pqr678",insights:{purpose:"Add voice transcription via Gemini API",description:"Integrating Gemini for audio input in the composer",theme:"feature",tags:{complexity:"routine"}},sessionInfo:{customName:null,identity_image:null},workingDirectory:"/home/jason/claudia",updatedAt:new Date(Date.now()-4320*60*1e3).toISOString(),createdAt:new Date(Date.now()-4320*60*1e3).toISOString()},{sessionId:"stu901vwx234",insights:{purpose:"Refactor insights computation pipeline",description:"Breaking apart the monolithic InsightsComputer into focused services",theme:"refactor",tags:{complexity:"gnarly"}},sessionInfo:{customName:"Insights Refactor",identity_image:null},workingDirectory:"/home/jason/claudia",updatedAt:new Date(Date.now()-10080*60*1e3).toISOString(),createdAt:new Date(Date.now()-11520*60*1e3).toISOString()},{sessionId:"yzab567cdef8",insights:{purpose:"Debug memory leak in session polling",description:null,theme:"bugfix",tags:{complexity:"moderate"}},sessionInfo:{customName:null,identity_image:null},workingDirectory:"/home/jason/claudia",updatedAt:new Date(Date.now()-336*60*60*1e3).toISOString(),createdAt:new Date(Date.now()-336*60*60*1e3).toISOString()},{sessionId:"ghij901klmn2",insights:{purpose:"CK3 motto generation pipeline",description:"Generating culturally-appropriate house mottos for all CK3 cultures",theme:"project",tags:{complexity:"moderate"}},sessionInfo:{customName:"CK3 Mottos",identity_image:null},workingDirectory:"/mnt/c/Users/jason/Documents/ck3-motto-ideation",updatedAt:new Date(Date.now()-720*60*60*1e3).toISOString(),createdAt:new Date(Date.now()-840*60*60*1e3).toISOString()}];function c(s){const n=Date.now()-new Date(s).getTime(),t=Math.floor(n/6e4),r=Math.floor(t/60),o=Math.floor(r/24);return t<60?`${t}m ago`:r<24?`${r}h ago`:o<7?`${o}d ago`:o<30?`${Math.floor(o/7)}w ago`:new Date(s).toLocaleDateString()}function m(s){switch(s){case"ui":return"text-cyan-400 bg-cyan-500/10 border-cyan-500/30";case"infra":return"text-purple-400 bg-purple-500/10 border-purple-500/30";case"feature":return"text-emerald-400 bg-emerald-500/10 border-emerald-500/30";case"refactor":return"text-amber-400 bg-amber-500/10 border-amber-500/30";case"bugfix":return"text-rose-400 bg-rose-500/10 border-rose-500/30";case"project":return"text-blue-400 bg-blue-500/10 border-blue-500/30";default:return"text-muted-foreground/70 bg-muted/30 border-border/30"}}function f({session:s,onRestore:n}){const{insights:t,sessionInfo:r,workingDirectory:o,updatedAt:i,sessionId:a}=s;return e.jsxs("div",{className:"flex items-center gap-4 p-3 rounded-md bg-card/30 border border-border/20 hover:border-rose-500/30 transition-all",children:[e.jsx("div",{className:"w-14 h-10 rounded-sm flex-shrink-0 bg-gradient-to-br from-muted/20 via-muted/10 to-muted/20 border border-border/20"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h3",{className:"text-sm font-mono font-medium text-foreground/90 truncate",children:r?.customName||t?.purpose||a.slice(0,8)}),e.jsxs("div",{className:"flex items-center gap-2 mt-1 text-[10px] font-mono text-muted-foreground/40",children:[e.jsx(x,{size:10}),e.jsx("span",{children:c(i)}),o&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-muted-foreground/20",children:"•"}),e.jsx("span",{className:"truncate max-w-[150px]",children:o.split("/").slice(-2).join("/")})]})]})]}),t?.theme&&e.jsx("span",{className:`text-[9px] px-1.5 py-0.5 rounded border font-display uppercase tracking-wider ${m(t.theme)}`,children:t.theme}),e.jsx("button",{onClick:n,className:"p-1.5 rounded-sm text-muted-foreground/40 hover:text-emerald-400 hover:bg-emerald-500/10 transition-all",title:"Restore",children:e.jsx(l,{size:14})})]})}function b({session:s,onRestore:n}){const{insights:t,sessionInfo:r,workingDirectory:o,updatedAt:i,sessionId:a}=s;return e.jsxs("div",{className:"rounded-lg border border-border/20 overflow-hidden bg-card/30 hover:border-rose-500/30 hover:shadow-[2px_2px_0_rgba(244,63,94,0.2)] hover:translate-x-[-1px] hover:translate-y-[-1px] transition-all group",children:[e.jsx("div",{className:"h-10 bg-gradient-to-r from-muted/10 via-muted/20 to-muted/10 relative",children:t?.theme&&e.jsx("span",{className:`absolute top-1.5 right-1.5 text-[8px] px-1 py-0.5 rounded border font-display uppercase tracking-wider ${m(t.theme)}`,children:t.theme})}),e.jsxs("div",{className:"p-3",children:[e.jsx("h3",{className:"text-sm font-mono font-medium text-foreground/90 group-hover:text-rose-400 truncate transition-colors",children:r?.customName||t?.purpose||a.slice(0,8)}),t?.description&&e.jsx("p",{className:"text-[11px] text-muted-foreground/40 line-clamp-2 mt-1",children:t.description}),e.jsxs("div",{className:"flex items-center justify-between mt-2",children:[e.jsxs("div",{className:"flex items-center gap-1.5 text-[10px] font-mono text-muted-foreground/30",children:[e.jsx(x,{size:10}),e.jsx("span",{children:c(i)})]}),e.jsxs("button",{onClick:n,className:"flex items-center gap-1 px-2 py-1 rounded-sm text-[10px] font-mono text-muted-foreground/40 hover:text-emerald-400 hover:bg-emerald-500/10 transition-all",children:[e.jsx(l,{size:10}),e.jsx("span",{children:"Restore"})]})]})]})]})}function j({session:s,onRestore:n}){const{insights:t,sessionInfo:r,updatedAt:o,sessionId:i}=s;return e.jsxs("div",{className:"flex items-center gap-3 px-3 py-2 rounded-sm hover:bg-muted/20 transition-all group",children:[e.jsx("span",{className:"text-[10px] font-mono text-muted-foreground/30 w-12 flex-shrink-0",children:c(o)}),e.jsx("h3",{className:"flex-1 text-sm font-mono text-foreground/70 group-hover:text-rose-400 truncate transition-colors",children:r?.customName||t?.purpose||i.slice(0,8)}),t?.theme&&e.jsx("span",{className:`text-[8px] px-1 py-0.5 rounded font-display uppercase ${m(t.theme)}`,children:t.theme}),e.jsx("button",{onClick:n,className:"opacity-0 group-hover:opacity-100 p-1 rounded-sm text-muted-foreground/40 hover:text-emerald-400 transition-all",children:e.jsx(l,{size:12})})]})}function v({session:s,onRestore:n}){const{insights:t,sessionInfo:r,updatedAt:o,sessionId:i}=s;return e.jsxs("div",{className:"p-2.5 rounded-md border border-border/20 bg-card/30 hover:border-rose-500/30 transition-all group",children:[e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsx("h3",{className:"text-xs font-mono font-medium text-foreground/80 group-hover:text-rose-400 line-clamp-2 transition-colors",children:r?.customName||t?.purpose||i.slice(0,8)}),e.jsx("button",{onClick:n,className:"opacity-0 group-hover:opacity-100 p-0.5 rounded-sm text-muted-foreground/40 hover:text-emerald-400 transition-all flex-shrink-0",children:e.jsx(l,{size:10})})]}),e.jsxs("div",{className:"flex items-center gap-2 mt-2",children:[t?.theme&&e.jsx("span",{className:`text-[8px] px-1 py-0.5 rounded font-display uppercase ${m(t.theme)}`,children:t.theme}),e.jsx("span",{className:"text-[9px] font-mono text-muted-foreground/30 ml-auto",children:c(o)})]})]})}function N({session:s,onRestore:n}){const{insights:t,sessionInfo:r,workingDirectory:o,updatedAt:i,sessionId:a}=s;return e.jsxs("div",{className:"flex gap-3 group",children:[e.jsxs("div",{className:"flex flex-col items-center",children:[e.jsx("div",{className:"w-2 h-2 rounded-full bg-rose-500/40 group-hover:bg-rose-400 transition-colors"}),e.jsx("div",{className:"w-px flex-1 bg-border/30"})]}),e.jsxs("div",{className:"flex-1 pb-6",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx("span",{className:"text-[10px] font-mono text-muted-foreground/40",children:c(i)}),t?.theme&&e.jsx("span",{className:`text-[8px] px-1 py-0.5 rounded border font-display uppercase ${m(t.theme)}`,children:t.theme})]}),e.jsx("h3",{className:"text-sm font-mono font-medium text-foreground/80 group-hover:text-rose-400 transition-colors",children:r?.customName||t?.purpose||a.slice(0,8)}),t?.description&&e.jsx("p",{className:"text-[11px] text-muted-foreground/40 mt-1 line-clamp-1",children:t.description}),o&&e.jsxs("div",{className:"flex items-center gap-1 mt-1.5 text-[10px] text-muted-foreground/30",children:[e.jsx(h,{size:10}),e.jsx("span",{className:"truncate",children:o.split("/").slice(-2).join("/")})]}),e.jsxs("button",{onClick:n,className:"mt-2 flex items-center gap-1 px-2 py-1 rounded-sm text-[10px] font-mono text-muted-foreground/40 hover:text-emerald-400 hover:bg-emerald-500/10 transition-all",children:[e.jsx(l,{size:10}),e.jsx("span",{children:"Restore"})]})]})]})}function y(){const[s,n]=p.useState("row"),t=()=>{console.log("Restore clicked")};return e.jsxs("div",{className:"min-h-dvh bg-background text-foreground",children:[e.jsx("div",{className:"fixed inset-0 bg-[linear-gradient(rgba(0,255,255,0.02)_1px,transparent_1px),linear-gradient(90deg,rgba(0,255,255,0.02)_1px,transparent_1px)] bg-[size:24px_24px] pointer-events-none"}),e.jsx("header",{className:"relative border-b border-border/30 bg-card/80 backdrop-blur-md sticky top-0 z-10",children:e.jsx("div",{className:"max-w-4xl mx-auto px-6 py-4 flex items-center justify-between",children:e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx(u,{to:"/dev",className:"p-2 -ml-2 rounded-sm text-muted-foreground hover:text-cyan-400 hover:bg-cyan-500/10 transition-all",children:e.jsx(g,{size:18})}),e.jsxs("div",{children:[e.jsx("h1",{className:"text-lg font-mono font-bold tracking-wider text-rose-400",children:"ARCHIVED CARD VARIATIONS"}),e.jsx("p",{className:"text-[10px] font-display uppercase tracking-wider text-muted-foreground/50",children:"Exploring layouts for archived session display"})]})]})})}),e.jsx("div",{className:"relative max-w-4xl mx-auto px-6 py-4 border-b border-border/20",children:e.jsx("div",{className:"flex items-center gap-2 flex-wrap",children:["row","grid","compact","mini","timeline"].map(r=>e.jsx("button",{onClick:()=>n(r),className:`
2
+ px-3 py-1.5 rounded-sm text-xs font-display font-bold uppercase tracking-wider
3
+ transition-all duration-100
4
+ ${s===r?"bg-rose-500/20 text-rose-400 border border-rose-500/30":"text-muted-foreground hover:text-foreground border border-transparent hover:border-border/30"}
5
+ `,children:r},r))})}),e.jsxs("main",{className:"relative max-w-4xl mx-auto px-6 py-8",children:[s==="row"&&e.jsx("div",{className:"space-y-2 max-w-2xl",children:d.map(r=>e.jsx(f,{session:r,onRestore:t},r.sessionId))}),s==="grid"&&e.jsx("div",{className:"grid gap-3 grid-cols-1 sm:grid-cols-2",children:d.map(r=>e.jsx(b,{session:r,onRestore:t},r.sessionId))}),s==="compact"&&e.jsx("div",{className:"max-w-2xl border border-border/20 rounded-md divide-y divide-border/10",children:d.map(r=>e.jsx(j,{session:r,onRestore:t},r.sessionId))}),s==="mini"&&e.jsx("div",{className:"grid gap-2 grid-cols-2 sm:grid-cols-3 lg:grid-cols-4",children:d.map(r=>e.jsx(v,{session:r,onRestore:t},r.sessionId))}),s==="timeline"&&e.jsx("div",{className:"max-w-xl ml-4",children:d.map(r=>e.jsx(N,{session:r,onRestore:t},r.sessionId))})]})]})}export{y as ArchivedCardPrototype,y as default};