@intrect/openswarm 0.2.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 (437) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +544 -0
  3. package/config.example.yaml +107 -0
  4. package/dist/adapters/base.d.ts +8 -0
  5. package/dist/adapters/base.d.ts.map +1 -0
  6. package/dist/adapters/base.js +104 -0
  7. package/dist/adapters/base.js.map +1 -0
  8. package/dist/adapters/claude.d.ts +13 -0
  9. package/dist/adapters/claude.d.ts.map +1 -0
  10. package/dist/adapters/claude.js +318 -0
  11. package/dist/adapters/claude.js.map +1 -0
  12. package/dist/adapters/codex.d.ts +14 -0
  13. package/dist/adapters/codex.d.ts.map +1 -0
  14. package/dist/adapters/codex.js +366 -0
  15. package/dist/adapters/codex.js.map +1 -0
  16. package/dist/adapters/cryptoQuantAdapter.d.ts +85 -0
  17. package/dist/adapters/cryptoQuantAdapter.d.ts.map +1 -0
  18. package/dist/adapters/cryptoQuantAdapter.js +238 -0
  19. package/dist/adapters/cryptoQuantAdapter.js.map +1 -0
  20. package/dist/adapters/index.d.ts +17 -0
  21. package/dist/adapters/index.d.ts.map +1 -0
  22. package/dist/adapters/index.js +47 -0
  23. package/dist/adapters/index.js.map +1 -0
  24. package/dist/adapters/processRegistry.d.ts +38 -0
  25. package/dist/adapters/processRegistry.d.ts.map +1 -0
  26. package/dist/adapters/processRegistry.js +147 -0
  27. package/dist/adapters/processRegistry.js.map +1 -0
  28. package/dist/adapters/streamBuffer.d.ts +59 -0
  29. package/dist/adapters/streamBuffer.d.ts.map +1 -0
  30. package/dist/adapters/streamBuffer.js +123 -0
  31. package/dist/adapters/streamBuffer.js.map +1 -0
  32. package/dist/adapters/types.d.ts +65 -0
  33. package/dist/adapters/types.d.ts.map +1 -0
  34. package/dist/adapters/types.js +6 -0
  35. package/dist/adapters/types.js.map +1 -0
  36. package/dist/agents/agentBus.d.ts +160 -0
  37. package/dist/agents/agentBus.d.ts.map +1 -0
  38. package/dist/agents/agentBus.js +350 -0
  39. package/dist/agents/agentBus.js.map +1 -0
  40. package/dist/agents/agentPair.d.ts +210 -0
  41. package/dist/agents/agentPair.d.ts.map +1 -0
  42. package/dist/agents/agentPair.js +420 -0
  43. package/dist/agents/agentPair.js.map +1 -0
  44. package/dist/agents/auditor.d.ts +27 -0
  45. package/dist/agents/auditor.d.ts.map +1 -0
  46. package/dist/agents/auditor.js +237 -0
  47. package/dist/agents/auditor.js.map +1 -0
  48. package/dist/agents/cliStreamParser.d.ts +18 -0
  49. package/dist/agents/cliStreamParser.d.ts.map +1 -0
  50. package/dist/agents/cliStreamParser.js +156 -0
  51. package/dist/agents/cliStreamParser.js.map +1 -0
  52. package/dist/agents/documenter.d.ts +31 -0
  53. package/dist/agents/documenter.d.ts.map +1 -0
  54. package/dist/agents/documenter.js +285 -0
  55. package/dist/agents/documenter.js.map +1 -0
  56. package/dist/agents/index.d.ts +10 -0
  57. package/dist/agents/index.d.ts.map +1 -0
  58. package/dist/agents/index.js +10 -0
  59. package/dist/agents/index.js.map +1 -0
  60. package/dist/agents/pairMetrics.d.ts +63 -0
  61. package/dist/agents/pairMetrics.d.ts.map +1 -0
  62. package/dist/agents/pairMetrics.js +231 -0
  63. package/dist/agents/pairMetrics.js.map +1 -0
  64. package/dist/agents/pairPipeline.d.ts +155 -0
  65. package/dist/agents/pairPipeline.d.ts.map +1 -0
  66. package/dist/agents/pairPipeline.js +793 -0
  67. package/dist/agents/pairPipeline.js.map +1 -0
  68. package/dist/agents/pairWebhook.d.ts +59 -0
  69. package/dist/agents/pairWebhook.d.ts.map +1 -0
  70. package/dist/agents/pairWebhook.js +242 -0
  71. package/dist/agents/pairWebhook.js.map +1 -0
  72. package/dist/agents/pipelineFormat.d.ts +11 -0
  73. package/dist/agents/pipelineFormat.d.ts.map +1 -0
  74. package/dist/agents/pipelineFormat.js +164 -0
  75. package/dist/agents/pipelineFormat.js.map +1 -0
  76. package/dist/agents/pipelineGuards.d.ts +23 -0
  77. package/dist/agents/pipelineGuards.d.ts.map +1 -0
  78. package/dist/agents/pipelineGuards.js +175 -0
  79. package/dist/agents/pipelineGuards.js.map +1 -0
  80. package/dist/agents/reviewer.d.ts +37 -0
  81. package/dist/agents/reviewer.d.ts.map +1 -0
  82. package/dist/agents/reviewer.js +213 -0
  83. package/dist/agents/reviewer.js.map +1 -0
  84. package/dist/agents/skillDocumenter.d.ts +23 -0
  85. package/dist/agents/skillDocumenter.d.ts.map +1 -0
  86. package/dist/agents/skillDocumenter.js +218 -0
  87. package/dist/agents/skillDocumenter.js.map +1 -0
  88. package/dist/agents/tester.d.ts +37 -0
  89. package/dist/agents/tester.d.ts.map +1 -0
  90. package/dist/agents/tester.js +308 -0
  91. package/dist/agents/tester.js.map +1 -0
  92. package/dist/agents/worker.d.ts +30 -0
  93. package/dist/agents/worker.d.ts.map +1 -0
  94. package/dist/agents/worker.js +128 -0
  95. package/dist/agents/worker.js.map +1 -0
  96. package/dist/automation/autonomousRunner.d.ts +123 -0
  97. package/dist/automation/autonomousRunner.d.ts.map +1 -0
  98. package/dist/automation/autonomousRunner.js +1082 -0
  99. package/dist/automation/autonomousRunner.js.map +1 -0
  100. package/dist/automation/ciWorker.d.ts +51 -0
  101. package/dist/automation/ciWorker.d.ts.map +1 -0
  102. package/dist/automation/ciWorker.js +282 -0
  103. package/dist/automation/ciWorker.js.map +1 -0
  104. package/dist/automation/conflictResolver.d.ts +29 -0
  105. package/dist/automation/conflictResolver.d.ts.map +1 -0
  106. package/dist/automation/conflictResolver.js +261 -0
  107. package/dist/automation/conflictResolver.js.map +1 -0
  108. package/dist/automation/dailyReporter.d.ts +26 -0
  109. package/dist/automation/dailyReporter.d.ts.map +1 -0
  110. package/dist/automation/dailyReporter.js +132 -0
  111. package/dist/automation/dailyReporter.js.map +1 -0
  112. package/dist/automation/index.d.ts +7 -0
  113. package/dist/automation/index.d.ts.map +1 -0
  114. package/dist/automation/index.js +7 -0
  115. package/dist/automation/index.js.map +1 -0
  116. package/dist/automation/longRunningMonitor.d.ts +26 -0
  117. package/dist/automation/longRunningMonitor.d.ts.map +1 -0
  118. package/dist/automation/longRunningMonitor.js +231 -0
  119. package/dist/automation/longRunningMonitor.js.map +1 -0
  120. package/dist/automation/prOwnership.d.ts +18 -0
  121. package/dist/automation/prOwnership.d.ts.map +1 -0
  122. package/dist/automation/prOwnership.js +61 -0
  123. package/dist/automation/prOwnership.js.map +1 -0
  124. package/dist/automation/prProcessor.d.ts +62 -0
  125. package/dist/automation/prProcessor.d.ts.map +1 -0
  126. package/dist/automation/prProcessor.js +700 -0
  127. package/dist/automation/prProcessor.js.map +1 -0
  128. package/dist/automation/runnerExecution.d.ts +49 -0
  129. package/dist/automation/runnerExecution.d.ts.map +1 -0
  130. package/dist/automation/runnerExecution.js +663 -0
  131. package/dist/automation/runnerExecution.js.map +1 -0
  132. package/dist/automation/runnerState.d.ts +170 -0
  133. package/dist/automation/runnerState.d.ts.map +1 -0
  134. package/dist/automation/runnerState.js +495 -0
  135. package/dist/automation/runnerState.js.map +1 -0
  136. package/dist/automation/runnerTypes.d.ts +46 -0
  137. package/dist/automation/runnerTypes.d.ts.map +1 -0
  138. package/dist/automation/runnerTypes.js +5 -0
  139. package/dist/automation/runnerTypes.js.map +1 -0
  140. package/dist/automation/scheduler.d.ts +75 -0
  141. package/dist/automation/scheduler.d.ts.map +1 -0
  142. package/dist/automation/scheduler.js +394 -0
  143. package/dist/automation/scheduler.js.map +1 -0
  144. package/dist/cli/promptHandler.d.ts +13 -0
  145. package/dist/cli/promptHandler.d.ts.map +1 -0
  146. package/dist/cli/promptHandler.js +189 -0
  147. package/dist/cli/promptHandler.js.map +1 -0
  148. package/dist/cli.d.ts +3 -0
  149. package/dist/cli.d.ts.map +1 -0
  150. package/dist/cli.js +138 -0
  151. package/dist/cli.js.map +1 -0
  152. package/dist/core/config.d.ts +308 -0
  153. package/dist/core/config.d.ts.map +1 -0
  154. package/dist/core/config.js +529 -0
  155. package/dist/core/config.js.map +1 -0
  156. package/dist/core/eventHub.d.ts +194 -0
  157. package/dist/core/eventHub.d.ts.map +1 -0
  158. package/dist/core/eventHub.js +136 -0
  159. package/dist/core/eventHub.js.map +1 -0
  160. package/dist/core/index.d.ts +6 -0
  161. package/dist/core/index.d.ts.map +1 -0
  162. package/dist/core/index.js +6 -0
  163. package/dist/core/index.js.map +1 -0
  164. package/dist/core/service.d.ts +27 -0
  165. package/dist/core/service.d.ts.map +1 -0
  166. package/dist/core/service.js +438 -0
  167. package/dist/core/service.js.map +1 -0
  168. package/dist/core/traceCollector.d.ts +105 -0
  169. package/dist/core/traceCollector.d.ts.map +1 -0
  170. package/dist/core/traceCollector.js +141 -0
  171. package/dist/core/traceCollector.js.map +1 -0
  172. package/dist/core/types.d.ts +413 -0
  173. package/dist/core/types.d.ts.map +1 -0
  174. package/dist/core/types.js +5 -0
  175. package/dist/core/types.js.map +1 -0
  176. package/dist/discord/discordCore.d.ts +104 -0
  177. package/dist/discord/discordCore.d.ts.map +1 -0
  178. package/dist/discord/discordCore.js +698 -0
  179. package/dist/discord/discordCore.js.map +1 -0
  180. package/dist/discord/discordHandlers.d.ts +86 -0
  181. package/dist/discord/discordHandlers.d.ts.map +1 -0
  182. package/dist/discord/discordHandlers.js +849 -0
  183. package/dist/discord/discordHandlers.js.map +1 -0
  184. package/dist/discord/discordPair.d.ts +6 -0
  185. package/dist/discord/discordPair.d.ts.map +1 -0
  186. package/dist/discord/discordPair.js +567 -0
  187. package/dist/discord/discordPair.js.map +1 -0
  188. package/dist/discord/index.d.ts +4 -0
  189. package/dist/discord/index.d.ts.map +1 -0
  190. package/dist/discord/index.js +11 -0
  191. package/dist/discord/index.js.map +1 -0
  192. package/dist/github/github.d.ts +236 -0
  193. package/dist/github/github.d.ts.map +1 -0
  194. package/dist/github/github.js +535 -0
  195. package/dist/github/github.js.map +1 -0
  196. package/dist/github/index.d.ts +2 -0
  197. package/dist/github/index.d.ts.map +1 -0
  198. package/dist/github/index.js +2 -0
  199. package/dist/github/index.js.map +1 -0
  200. package/dist/index.d.ts +3 -0
  201. package/dist/index.d.ts.map +1 -0
  202. package/dist/index.js +60 -0
  203. package/dist/index.js.map +1 -0
  204. package/dist/knowledge/analyzer.d.ts +36 -0
  205. package/dist/knowledge/analyzer.d.ts.map +1 -0
  206. package/dist/knowledge/analyzer.js +170 -0
  207. package/dist/knowledge/analyzer.js.map +1 -0
  208. package/dist/knowledge/gitInfo.d.ts +10 -0
  209. package/dist/knowledge/gitInfo.d.ts.map +1 -0
  210. package/dist/knowledge/gitInfo.js +134 -0
  211. package/dist/knowledge/gitInfo.js.map +1 -0
  212. package/dist/knowledge/graph.d.ts +45 -0
  213. package/dist/knowledge/graph.d.ts.map +1 -0
  214. package/dist/knowledge/graph.js +262 -0
  215. package/dist/knowledge/graph.js.map +1 -0
  216. package/dist/knowledge/graphqlExporter.d.ts +64 -0
  217. package/dist/knowledge/graphqlExporter.d.ts.map +1 -0
  218. package/dist/knowledge/graphqlExporter.js +333 -0
  219. package/dist/knowledge/graphqlExporter.js.map +1 -0
  220. package/dist/knowledge/index.d.ts +58 -0
  221. package/dist/knowledge/index.d.ts.map +1 -0
  222. package/dist/knowledge/index.js +212 -0
  223. package/dist/knowledge/index.js.map +1 -0
  224. package/dist/knowledge/repository.d.ts +64 -0
  225. package/dist/knowledge/repository.d.ts.map +1 -0
  226. package/dist/knowledge/repository.js +250 -0
  227. package/dist/knowledge/repository.js.map +1 -0
  228. package/dist/knowledge/riskOnAnalyzer.d.ts +79 -0
  229. package/dist/knowledge/riskOnAnalyzer.d.ts.map +1 -0
  230. package/dist/knowledge/riskOnAnalyzer.js +243 -0
  231. package/dist/knowledge/riskOnAnalyzer.js.map +1 -0
  232. package/dist/knowledge/scanner.d.ts +14 -0
  233. package/dist/knowledge/scanner.d.ts.map +1 -0
  234. package/dist/knowledge/scanner.js +350 -0
  235. package/dist/knowledge/scanner.js.map +1 -0
  236. package/dist/knowledge/store.d.ts +23 -0
  237. package/dist/knowledge/store.d.ts.map +1 -0
  238. package/dist/knowledge/store.js +86 -0
  239. package/dist/knowledge/store.js.map +1 -0
  240. package/dist/knowledge/types.d.ts +288 -0
  241. package/dist/knowledge/types.d.ts.map +1 -0
  242. package/dist/knowledge/types.js +111 -0
  243. package/dist/knowledge/types.js.map +1 -0
  244. package/dist/linear/index.d.ts +3 -0
  245. package/dist/linear/index.d.ts.map +1 -0
  246. package/dist/linear/index.js +3 -0
  247. package/dist/linear/index.js.map +1 -0
  248. package/dist/linear/linear.d.ts +160 -0
  249. package/dist/linear/linear.d.ts.map +1 -0
  250. package/dist/linear/linear.js +983 -0
  251. package/dist/linear/linear.js.map +1 -0
  252. package/dist/linear/projectUpdater.d.ts +23 -0
  253. package/dist/linear/projectUpdater.d.ts.map +1 -0
  254. package/dist/linear/projectUpdater.js +347 -0
  255. package/dist/linear/projectUpdater.js.map +1 -0
  256. package/dist/locale/en.d.ts +3 -0
  257. package/dist/locale/en.d.ts.map +1 -0
  258. package/dist/locale/en.js +436 -0
  259. package/dist/locale/en.js.map +1 -0
  260. package/dist/locale/index.d.ts +28 -0
  261. package/dist/locale/index.d.ts.map +1 -0
  262. package/dist/locale/index.js +89 -0
  263. package/dist/locale/index.js.map +1 -0
  264. package/dist/locale/ko.d.ts +3 -0
  265. package/dist/locale/ko.d.ts.map +1 -0
  266. package/dist/locale/ko.js +436 -0
  267. package/dist/locale/ko.js.map +1 -0
  268. package/dist/locale/prompts/en.d.ts +3 -0
  269. package/dist/locale/prompts/en.d.ts.map +1 -0
  270. package/dist/locale/prompts/en.js +278 -0
  271. package/dist/locale/prompts/en.js.map +1 -0
  272. package/dist/locale/prompts/ko.d.ts +3 -0
  273. package/dist/locale/prompts/ko.d.ts.map +1 -0
  274. package/dist/locale/prompts/ko.js +279 -0
  275. package/dist/locale/prompts/ko.js.map +1 -0
  276. package/dist/locale/types.d.ts +407 -0
  277. package/dist/locale/types.d.ts.map +1 -0
  278. package/dist/locale/types.js +5 -0
  279. package/dist/locale/types.js.map +1 -0
  280. package/dist/memory/codex.d.ts +93 -0
  281. package/dist/memory/codex.d.ts.map +1 -0
  282. package/dist/memory/codex.js +366 -0
  283. package/dist/memory/codex.js.map +1 -0
  284. package/dist/memory/compaction.d.ts +21 -0
  285. package/dist/memory/compaction.d.ts.map +1 -0
  286. package/dist/memory/compaction.js +205 -0
  287. package/dist/memory/compaction.js.map +1 -0
  288. package/dist/memory/index.d.ts +13 -0
  289. package/dist/memory/index.d.ts.map +1 -0
  290. package/dist/memory/index.js +13 -0
  291. package/dist/memory/index.js.map +1 -0
  292. package/dist/memory/memoryCore.d.ts +178 -0
  293. package/dist/memory/memoryCore.d.ts.map +1 -0
  294. package/dist/memory/memoryCore.js +623 -0
  295. package/dist/memory/memoryCore.js.map +1 -0
  296. package/dist/memory/memoryOps.d.ts +90 -0
  297. package/dist/memory/memoryOps.d.ts.map +1 -0
  298. package/dist/memory/memoryOps.js +606 -0
  299. package/dist/memory/memoryOps.js.map +1 -0
  300. package/dist/orchestration/conflictDetector.d.ts +15 -0
  301. package/dist/orchestration/conflictDetector.d.ts.map +1 -0
  302. package/dist/orchestration/conflictDetector.js +130 -0
  303. package/dist/orchestration/conflictDetector.js.map +1 -0
  304. package/dist/orchestration/decisionEngine.d.ts +177 -0
  305. package/dist/orchestration/decisionEngine.d.ts.map +1 -0
  306. package/dist/orchestration/decisionEngine.js +496 -0
  307. package/dist/orchestration/decisionEngine.js.map +1 -0
  308. package/dist/orchestration/index.d.ts +5 -0
  309. package/dist/orchestration/index.d.ts.map +1 -0
  310. package/dist/orchestration/index.js +5 -0
  311. package/dist/orchestration/index.js.map +1 -0
  312. package/dist/orchestration/taskParser.d.ts +67 -0
  313. package/dist/orchestration/taskParser.d.ts.map +1 -0
  314. package/dist/orchestration/taskParser.js +542 -0
  315. package/dist/orchestration/taskParser.js.map +1 -0
  316. package/dist/orchestration/taskScheduler.d.ts +141 -0
  317. package/dist/orchestration/taskScheduler.d.ts.map +1 -0
  318. package/dist/orchestration/taskScheduler.js +317 -0
  319. package/dist/orchestration/taskScheduler.js.map +1 -0
  320. package/dist/orchestration/workflow.d.ts +145 -0
  321. package/dist/orchestration/workflow.d.ts.map +1 -0
  322. package/dist/orchestration/workflow.js +301 -0
  323. package/dist/orchestration/workflow.js.map +1 -0
  324. package/dist/runners/cliRunner.d.ts +11 -0
  325. package/dist/runners/cliRunner.d.ts.map +1 -0
  326. package/dist/runners/cliRunner.js +194 -0
  327. package/dist/runners/cliRunner.js.map +1 -0
  328. package/dist/support/apiCache.d.ts +85 -0
  329. package/dist/support/apiCache.d.ts.map +1 -0
  330. package/dist/support/apiCache.js +163 -0
  331. package/dist/support/apiCache.js.map +1 -0
  332. package/dist/support/chat.d.ts +3 -0
  333. package/dist/support/chat.d.ts.map +1 -0
  334. package/dist/support/chat.js +304 -0
  335. package/dist/support/chat.js.map +1 -0
  336. package/dist/support/chatBackend.d.ts +25 -0
  337. package/dist/support/chatBackend.d.ts.map +1 -0
  338. package/dist/support/chatBackend.js +235 -0
  339. package/dist/support/chatBackend.js.map +1 -0
  340. package/dist/support/chatMemory.d.ts +71 -0
  341. package/dist/support/chatMemory.d.ts.map +1 -0
  342. package/dist/support/chatMemory.js +119 -0
  343. package/dist/support/chatMemory.js.map +1 -0
  344. package/dist/support/chatTui.d.ts +3 -0
  345. package/dist/support/chatTui.d.ts.map +1 -0
  346. package/dist/support/chatTui.js +998 -0
  347. package/dist/support/chatTui.js.map +1 -0
  348. package/dist/support/costTracker.d.ts +29 -0
  349. package/dist/support/costTracker.d.ts.map +1 -0
  350. package/dist/support/costTracker.js +113 -0
  351. package/dist/support/costTracker.js.map +1 -0
  352. package/dist/support/dashboardHtml.d.ts +3 -0
  353. package/dist/support/dashboardHtml.d.ts.map +1 -0
  354. package/dist/support/dashboardHtml.js +2070 -0
  355. package/dist/support/dashboardHtml.js.map +1 -0
  356. package/dist/support/delete-beliefs.d.ts +2 -0
  357. package/dist/support/delete-beliefs.d.ts.map +1 -0
  358. package/dist/support/delete-beliefs.js +34 -0
  359. package/dist/support/delete-beliefs.js.map +1 -0
  360. package/dist/support/dev.d.ts +55 -0
  361. package/dist/support/dev.d.ts.map +1 -0
  362. package/dist/support/dev.js +298 -0
  363. package/dist/support/dev.js.map +1 -0
  364. package/dist/support/editParser.d.ts +37 -0
  365. package/dist/support/editParser.d.ts.map +1 -0
  366. package/dist/support/editParser.js +365 -0
  367. package/dist/support/editParser.js.map +1 -0
  368. package/dist/support/gitStatus.d.ts +21 -0
  369. package/dist/support/gitStatus.d.ts.map +1 -0
  370. package/dist/support/gitStatus.js +108 -0
  371. package/dist/support/gitStatus.js.map +1 -0
  372. package/dist/support/gitTracker.d.ts +30 -0
  373. package/dist/support/gitTracker.d.ts.map +1 -0
  374. package/dist/support/gitTracker.js +143 -0
  375. package/dist/support/gitTracker.js.map +1 -0
  376. package/dist/support/index.d.ts +13 -0
  377. package/dist/support/index.d.ts.map +1 -0
  378. package/dist/support/index.js +13 -0
  379. package/dist/support/index.js.map +1 -0
  380. package/dist/support/planner.d.ts +58 -0
  381. package/dist/support/planner.d.ts.map +1 -0
  382. package/dist/support/planner.js +395 -0
  383. package/dist/support/planner.js.map +1 -0
  384. package/dist/support/projectMapper.d.ts +46 -0
  385. package/dist/support/projectMapper.d.ts.map +1 -0
  386. package/dist/support/projectMapper.js +259 -0
  387. package/dist/support/projectMapper.js.map +1 -0
  388. package/dist/support/quotaTracker.d.ts +29 -0
  389. package/dist/support/quotaTracker.d.ts.map +1 -0
  390. package/dist/support/quotaTracker.js +89 -0
  391. package/dist/support/quotaTracker.js.map +1 -0
  392. package/dist/support/rateLimiter.d.ts +101 -0
  393. package/dist/support/rateLimiter.d.ts.map +1 -0
  394. package/dist/support/rateLimiter.js +219 -0
  395. package/dist/support/rateLimiter.js.map +1 -0
  396. package/dist/support/rollback.d.ts +61 -0
  397. package/dist/support/rollback.d.ts.map +1 -0
  398. package/dist/support/rollback.js +328 -0
  399. package/dist/support/rollback.js.map +1 -0
  400. package/dist/support/stuckDetector.d.ts +68 -0
  401. package/dist/support/stuckDetector.d.ts.map +1 -0
  402. package/dist/support/stuckDetector.js +174 -0
  403. package/dist/support/stuckDetector.js.map +1 -0
  404. package/dist/support/timeWindow.d.ts +60 -0
  405. package/dist/support/timeWindow.d.ts.map +1 -0
  406. package/dist/support/timeWindow.js +236 -0
  407. package/dist/support/timeWindow.js.map +1 -0
  408. package/dist/support/web.d.ts +11 -0
  409. package/dist/support/web.d.ts.map +1 -0
  410. package/dist/support/web.js +938 -0
  411. package/dist/support/web.js.map +1 -0
  412. package/dist/support/workflowLinear.d.ts +99 -0
  413. package/dist/support/workflowLinear.d.ts.map +1 -0
  414. package/dist/support/workflowLinear.js +257 -0
  415. package/dist/support/workflowLinear.js.map +1 -0
  416. package/dist/support/worktreeManager.d.ts +20 -0
  417. package/dist/support/worktreeManager.d.ts.map +1 -0
  418. package/dist/support/worktreeManager.js +144 -0
  419. package/dist/support/worktreeManager.js.map +1 -0
  420. package/dist/taskState/store.d.ts +101 -0
  421. package/dist/taskState/store.d.ts.map +1 -0
  422. package/dist/taskState/store.js +346 -0
  423. package/dist/taskState/store.js.map +1 -0
  424. package/package.json +70 -0
  425. package/templates/AGENTS.md +432 -0
  426. package/templates/BOOT.md +25 -0
  427. package/templates/BOOTSTRAP.md +50 -0
  428. package/templates/CHANGELOG_AUDIT.md +74 -0
  429. package/templates/HEARTBEAT.md +86 -0
  430. package/templates/IDENTITY.md +27 -0
  431. package/templates/ISSUE_ANALYSIS.md +31 -0
  432. package/templates/PR_LAND.md +75 -0
  433. package/templates/PR_REVIEW.md +97 -0
  434. package/templates/SOUL.dev.md +52 -0
  435. package/templates/SOUL.md +81 -0
  436. package/templates/TOOLS.md +52 -0
  437. package/templates/USER.md +22 -0
@@ -0,0 +1,238 @@
1
+ // ============================================
2
+ // CryptoQuant API Adapter
3
+ // Stablecoin Exchange Flow Analysis
4
+ // USDC Netflow data integration for Risk-On signals
5
+ import * as https from 'https';
6
+ // CryptoQuantAdapter Class
7
+ export class CryptoQuantAdapter {
8
+ apiToken;
9
+ baseUrl;
10
+ cacheDir;
11
+ rateLimitPerDay;
12
+ dataWindow;
13
+ rateLimitState;
14
+ constructor(config) {
15
+ this.apiToken = config.apiToken;
16
+ this.baseUrl = config.baseUrl || 'https://api.cryptoquant.com/v1';
17
+ this.cacheDir = config.cacheDir || './cache/cryptoquant';
18
+ this.rateLimitPerDay = config.rateLimitPerDay || 50;
19
+ this.dataWindow = config.dataWindow || 7; // Default 7 days
20
+ this.rateLimitState = {
21
+ requestsToday: 0,
22
+ lastResetDate: new Date().toISOString().slice(0, 10),
23
+ };
24
+ }
25
+ /**
26
+ * Fetch USDC Netflow data from CryptoQuant
27
+ * @param exchange - Exchange name (e.g., "binance", "coinbase", "kraken")
28
+ * @param daysBack - Number of days back from today (default: 7)
29
+ */
30
+ async getUSDCNetflow(exchange, daysBack = 7) {
31
+ // Check rate limit
32
+ this.checkRateLimit();
33
+ const toDate = new Date();
34
+ const fromDate = new Date(toDate.getTime() - daysBack * 24 * 60 * 60 * 1000);
35
+ const fromStr = fromDate.toISOString().slice(0, 10).replace(/-/g, '');
36
+ const toStr = toDate.toISOString().slice(0, 10).replace(/-/g, '');
37
+ const params = {
38
+ token: 'usdc_eth', // USDC on Ethereum
39
+ exchange: exchange,
40
+ window: 'day',
41
+ from: fromStr,
42
+ to: toStr,
43
+ limit: daysBack,
44
+ };
45
+ const queryString = new URLSearchParams(params).toString();
46
+ const url = `${this.baseUrl}/stablecoin/exchange-flows/netflow?${queryString}`;
47
+ console.log(`[CryptoQuantAdapter] Fetching USDC Netflow: ${exchange} (${daysBack}d)`);
48
+ try {
49
+ const response = await this.makeRequest(url);
50
+ if (!response.data || !Array.isArray(response.data)) {
51
+ console.warn('[CryptoQuantAdapter] Unexpected response format:', response);
52
+ return [];
53
+ }
54
+ // Transform API response to USDCNetflowData
55
+ const data = response.data.map((item) => ({
56
+ timestamp: item.timestamp || Math.floor(new Date(item.date).getTime() / 1000),
57
+ date: item.date,
58
+ exchange: exchange,
59
+ netflow: item.netflow || (item.inflow - item.outflow),
60
+ inflow: item.inflow,
61
+ outflow: item.outflow,
62
+ token: 'usdc_eth',
63
+ }));
64
+ this.recordApiCall();
65
+ return data;
66
+ }
67
+ catch (err) {
68
+ console.error('[CryptoQuantAdapter] API error:', err);
69
+ throw err;
70
+ }
71
+ }
72
+ /**
73
+ * Fetch USDC Netflow from multiple exchanges
74
+ */
75
+ async getUSDCNetflowMultiExchange(exchanges = ['binance', 'coinbase', 'kraken'], daysBack = 7) {
76
+ const results = new Map();
77
+ for (const exchange of exchanges) {
78
+ try {
79
+ const data = await this.getUSDCNetflow(exchange, daysBack);
80
+ results.set(exchange, data);
81
+ }
82
+ catch (err) {
83
+ console.warn(`[CryptoQuantAdapter] Failed to fetch ${exchange}:`, err);
84
+ results.set(exchange, []);
85
+ }
86
+ }
87
+ return results;
88
+ }
89
+ /**
90
+ * Analyze USDC Netflow data for Risk-On signal
91
+ */
92
+ analyzeRiskOnSignal(data) {
93
+ if (data.length === 0) {
94
+ return {
95
+ score: 50,
96
+ trend: 'stable',
97
+ netflowTrend: 0,
98
+ cexInflowStrength: 0,
99
+ cexOutflowStrength: 0,
100
+ confidence: 0,
101
+ lastUpdated: Date.now(),
102
+ recommendation: '데이터 부족으로 신호를 분석할 수 없습니다.',
103
+ };
104
+ }
105
+ // Sort by timestamp
106
+ const sorted = [...data].sort((a, b) => a.timestamp - b.timestamp);
107
+ // Calculate netflow trend (recent vs older)
108
+ const recent = sorted.slice(-3);
109
+ const older = sorted.slice(0, Math.max(1, sorted.length - 3));
110
+ const recentNetflow = recent.reduce((sum, d) => sum + d.netflow, 0) / recent.length;
111
+ const olderNetflow = older.reduce((sum, d) => sum + d.netflow, 0) / older.length;
112
+ const netflowTrend = recentNetflow - olderNetflow;
113
+ const trend = netflowTrend > 100 ? 'increasing' : netflowTrend < -100 ? 'decreasing' : 'stable';
114
+ // Calculate inflow/outflow strength
115
+ const totalInflow = sorted.reduce((sum, d) => sum + d.inflow, 0);
116
+ const totalOutflow = sorted.reduce((sum, d) => sum + d.outflow, 0);
117
+ const totalFlow = totalInflow + totalOutflow;
118
+ const inflowRatio = totalFlow > 0 ? totalInflow / totalFlow : 0.5;
119
+ const outflowRatio = totalFlow > 0 ? totalOutflow / totalFlow : 0.5;
120
+ // Risk-On Score calculation
121
+ // 위험자산 선호: CEX inflow 증가 = 구매압 증가
122
+ // 위험자산 회피: CEX outflow 증가 = 판매압 증가
123
+ const inflowScore = Math.min(100, inflowRatio * 200); // 0-100
124
+ const outflowScore = Math.min(100, outflowRatio * 200); // 0-100
125
+ const trendScore = Math.min(100, Math.max(0, 50 + (netflowTrend / 1000) * 50)); // 0-100
126
+ const score = Math.round((inflowScore * 0.5 + trendScore * 0.5));
127
+ // Confidence based on data consistency
128
+ const variance = this.calculateVariance(sorted.map(d => d.netflow));
129
+ const confidence = Math.round(Math.max(0, Math.min(100, 100 - variance / 100)));
130
+ // Recommendation
131
+ let recommendation = '';
132
+ if (score > 65) {
133
+ recommendation = '🟢 위험자산 선호 신호 (Risk-On): CEX 유입이 강함';
134
+ }
135
+ else if (score < 35) {
136
+ recommendation = '🔴 위험자산 회피 신호 (Risk-Off): CEX 유출이 강함';
137
+ }
138
+ else {
139
+ recommendation = '🟡 중립: 명확한 신호 없음';
140
+ }
141
+ return {
142
+ score,
143
+ trend,
144
+ netflowTrend,
145
+ cexInflowStrength: Math.round(inflowScore),
146
+ cexOutflowStrength: Math.round(outflowScore),
147
+ confidence,
148
+ lastUpdated: Date.now(),
149
+ recommendation,
150
+ };
151
+ }
152
+ /**
153
+ * Private: Make HTTPS request
154
+ */
155
+ async makeRequest(url) {
156
+ return new Promise((resolve, reject) => {
157
+ https.get(url, {
158
+ headers: {
159
+ 'Authorization': `Bearer ${this.apiToken}`,
160
+ 'User-Agent': 'OpenSwarm/1.0',
161
+ },
162
+ }, (res) => {
163
+ let data = '';
164
+ res.on('data', (chunk) => {
165
+ data += chunk;
166
+ });
167
+ res.on('end', () => {
168
+ try {
169
+ const json = JSON.parse(data);
170
+ if (res.statusCode !== 200) {
171
+ reject(new Error(`CryptoQuant API error: ${res.statusCode} ${json.message || ''}`));
172
+ }
173
+ else {
174
+ resolve(json);
175
+ }
176
+ }
177
+ catch (err) {
178
+ reject(new Error(`Failed to parse CryptoQuant response: ${err}`));
179
+ }
180
+ });
181
+ }).on('error', reject);
182
+ });
183
+ }
184
+ /**
185
+ * Private: Check rate limit
186
+ */
187
+ checkRateLimit() {
188
+ const today = new Date().toISOString().slice(0, 10);
189
+ if (today !== this.rateLimitState.lastResetDate) {
190
+ this.rateLimitState.requestsToday = 0;
191
+ this.rateLimitState.lastResetDate = today;
192
+ }
193
+ if (this.rateLimitState.requestsToday >= this.rateLimitPerDay) {
194
+ throw new Error(`[CryptoQuantAdapter] Rate limit exceeded: ${this.rateLimitPerDay} requests/day`);
195
+ }
196
+ }
197
+ /**
198
+ * Private: Record API call
199
+ */
200
+ recordApiCall() {
201
+ this.rateLimitState.requestsToday++;
202
+ console.log(`[CryptoQuantAdapter] API calls today: ${this.rateLimitState.requestsToday}/${this.rateLimitPerDay}`);
203
+ }
204
+ /**
205
+ * Private: Calculate variance for confidence
206
+ */
207
+ calculateVariance(values) {
208
+ if (values.length === 0)
209
+ return 0;
210
+ const mean = values.reduce((a, b) => a + b) / values.length;
211
+ const squaredDiffs = values.map(v => Math.pow(v - mean, 2));
212
+ const variance = squaredDiffs.reduce((a, b) => a + b) / values.length;
213
+ return Math.sqrt(variance); // Return standard deviation
214
+ }
215
+ /**
216
+ * Get current rate limit status
217
+ */
218
+ getRateLimitStatus() {
219
+ return {
220
+ used: this.rateLimitState.requestsToday,
221
+ limit: this.rateLimitPerDay,
222
+ remaining: Math.max(0, this.rateLimitPerDay - this.rateLimitState.requestsToday),
223
+ };
224
+ }
225
+ }
226
+ // Singleton Instance
227
+ let adapterInstance = null;
228
+ export function initCryptoQuantAdapter(config) {
229
+ adapterInstance = new CryptoQuantAdapter(config);
230
+ return adapterInstance;
231
+ }
232
+ export function getCryptoQuantAdapter() {
233
+ if (!adapterInstance) {
234
+ throw new Error('CryptoQuantAdapter not initialized. Call initCryptoQuantAdapter() first.');
235
+ }
236
+ return adapterInstance;
237
+ }
238
+ //# sourceMappingURL=cryptoQuantAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cryptoQuantAdapter.js","sourceRoot":"","sources":["../../src/adapters/cryptoQuantAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export type { CliAdapter, CliRunOptions, CliRunResult, AdapterCapabilities, AdapterName, WorkerResult, ReviewResult, ProcessContext, } from './types.js';
2
+ export { spawnCli } from './base.js';
3
+ export { ClaudeCliAdapter } from './claude.js';
4
+ export { CodexCliAdapter } from './codex.js';
5
+ export { registerProcess, getProcess, getAllProcesses, killProcess, startHealthChecker, stopHealthChecker } from './processRegistry.js';
6
+ import type { AdapterName, CliAdapter } from './types.js';
7
+ /**
8
+ * Get an adapter by name. Defaults to 'claude'.
9
+ */
10
+ export declare function getAdapter(name?: string): CliAdapter;
11
+ export declare function setDefaultAdapter(name: AdapterName): void;
12
+ export declare function getDefaultAdapterName(): AdapterName;
13
+ /**
14
+ * List adapters that are currently installed and available.
15
+ */
16
+ export declare function listAvailableAdapters(): Promise<string[]>;
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAKA,YAAY,EACV,UAAU,EACV,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAIxI,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAS1D;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,GAAE,MAAuB,GAAG,UAAU,CAMpE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAKzD;AAED,wBAAgB,qBAAqB,IAAI,WAAW,CAEnD;AAED;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAQ/D"}
@@ -0,0 +1,47 @@
1
+ // ============================================
2
+ // OpenSwarm - CLI Adapter Registry
3
+ // Barrel exports + adapter lookup
4
+ // ============================================
5
+ export { spawnCli } from './base.js';
6
+ export { ClaudeCliAdapter } from './claude.js';
7
+ export { CodexCliAdapter } from './codex.js';
8
+ export { registerProcess, getProcess, getAllProcesses, killProcess, startHealthChecker, stopHealthChecker } from './processRegistry.js';
9
+ import { ClaudeCliAdapter } from './claude.js';
10
+ import { CodexCliAdapter } from './codex.js';
11
+ const adapters = {
12
+ claude: new ClaudeCliAdapter(),
13
+ codex: new CodexCliAdapter(),
14
+ };
15
+ let defaultAdapter = 'claude';
16
+ /**
17
+ * Get an adapter by name. Defaults to 'claude'.
18
+ */
19
+ export function getAdapter(name = defaultAdapter) {
20
+ const adapter = adapters[name];
21
+ if (!adapter) {
22
+ throw new Error(`Unknown adapter: "${name}". Available: ${Object.keys(adapters).join(', ')}`);
23
+ }
24
+ return adapter;
25
+ }
26
+ export function setDefaultAdapter(name) {
27
+ if (!adapters[name]) {
28
+ throw new Error(`Unknown adapter: "${name}". Available: ${Object.keys(adapters).join(', ')}`);
29
+ }
30
+ defaultAdapter = name;
31
+ }
32
+ export function getDefaultAdapterName() {
33
+ return defaultAdapter;
34
+ }
35
+ /**
36
+ * List adapters that are currently installed and available.
37
+ */
38
+ export async function listAvailableAdapters() {
39
+ const results = [];
40
+ for (const [name, adapter] of Object.entries(adapters)) {
41
+ if (await adapter.isAvailable()) {
42
+ results.push(name);
43
+ }
44
+ }
45
+ return results;
46
+ }
47
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,mCAAmC;AACnC,kCAAkC;AAClC,+CAA+C;AAa/C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAExI,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG7C,MAAM,QAAQ,GAA+B;IAC3C,MAAM,EAAE,IAAI,gBAAgB,EAAE;IAC9B,KAAK,EAAE,IAAI,eAAe,EAAE;CAC7B,CAAC;AAEF,IAAI,cAAc,GAAgB,QAAQ,CAAC;AAE3C;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe,cAAc;IACtD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,iBAAiB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChG,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAiB;IACjD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,iBAAiB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChG,CAAC;IACD,cAAc,GAAG,IAAI,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvD,IAAI,MAAM,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,38 @@
1
+ import type { ChildProcess } from 'node:child_process';
2
+ export interface ProcessInfo {
3
+ pid: number;
4
+ taskId: string;
5
+ stage: string;
6
+ model?: string;
7
+ projectPath: string;
8
+ spawnedAt: number;
9
+ lastActivityAt: number;
10
+ }
11
+ /**
12
+ * Register a spawned CLI process for tracking.
13
+ * Automatically hooks into stdout/stderr for activity tracking
14
+ * and proc.close for cleanup.
15
+ */
16
+ export declare function registerProcess(info: ProcessInfo, proc: ChildProcess): void;
17
+ /**
18
+ * Get a single process by PID
19
+ */
20
+ export declare function getProcess(pid: number): ProcessInfo | undefined;
21
+ /**
22
+ * Get all tracked processes
23
+ */
24
+ export declare function getAllProcesses(): ProcessInfo[];
25
+ /**
26
+ * Kill a tracked process. Sends SIGTERM first, then SIGKILL after 5s.
27
+ */
28
+ export declare function killProcess(pid: number, force?: boolean): Promise<boolean>;
29
+ /**
30
+ * Start periodic health checker that verifies processes are still alive.
31
+ * Removes stale entries from the registry.
32
+ */
33
+ export declare function startHealthChecker(intervalMs?: number): void;
34
+ /**
35
+ * Stop the health checker
36
+ */
37
+ export declare function stopHealthChecker(): void;
38
+ //# sourceMappingURL=processRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processRegistry.d.ts","sourceRoot":"","sources":["../../src/adapters/processRegistry.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKvD,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAWD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAiD3E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAE/D;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,WAAW,EAAE,CAE/C;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CA0B9E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,SAAQ,GAAG,IAAI,CAwB3D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAKxC"}
@@ -0,0 +1,147 @@
1
+ // ============================================
2
+ // OpenSwarm - Process Registry
3
+ // Global singleton for tracking spawned CLI processes
4
+ // ============================================
5
+ import { broadcastEvent } from '../core/eventHub.js';
6
+ // Registry (singleton)
7
+ const registry = new Map();
8
+ let healthCheckTimer = null;
9
+ // Throttle activity broadcasts: PID → last broadcast timestamp
10
+ const activityThrottle = new Map();
11
+ const ACTIVITY_THROTTLE_MS = 5000;
12
+ /**
13
+ * Register a spawned CLI process for tracking.
14
+ * Automatically hooks into stdout/stderr for activity tracking
15
+ * and proc.close for cleanup.
16
+ */
17
+ export function registerProcess(info, proc) {
18
+ registry.set(info.pid, info);
19
+ // Broadcast spawn event
20
+ broadcastEvent({
21
+ type: 'process:spawn',
22
+ data: {
23
+ pid: info.pid,
24
+ taskId: info.taskId,
25
+ stage: info.stage,
26
+ model: info.model,
27
+ projectPath: info.projectPath,
28
+ },
29
+ });
30
+ // Track activity from stdout/stderr
31
+ const updateActivity = () => {
32
+ const entry = registry.get(info.pid);
33
+ if (!entry)
34
+ return;
35
+ entry.lastActivityAt = Date.now();
36
+ // Throttled broadcast
37
+ const lastBroadcast = activityThrottle.get(info.pid) ?? 0;
38
+ if (Date.now() - lastBroadcast >= ACTIVITY_THROTTLE_MS) {
39
+ activityThrottle.set(info.pid, Date.now());
40
+ // Activity updates go through process:spawn (lightweight)
41
+ }
42
+ };
43
+ proc.stdout?.on('data', updateActivity);
44
+ proc.stderr?.on('data', updateActivity);
45
+ // Cleanup on close
46
+ proc.on('close', (code, signal) => {
47
+ const entry = registry.get(info.pid);
48
+ const durationMs = entry ? Date.now() - entry.spawnedAt : 0;
49
+ registry.delete(info.pid);
50
+ activityThrottle.delete(info.pid);
51
+ broadcastEvent({
52
+ type: 'process:exit',
53
+ data: {
54
+ pid: info.pid,
55
+ exitCode: code,
56
+ signal: signal,
57
+ durationMs,
58
+ },
59
+ });
60
+ });
61
+ }
62
+ /**
63
+ * Get a single process by PID
64
+ */
65
+ export function getProcess(pid) {
66
+ return registry.get(pid);
67
+ }
68
+ /**
69
+ * Get all tracked processes
70
+ */
71
+ export function getAllProcesses() {
72
+ return Array.from(registry.values());
73
+ }
74
+ /**
75
+ * Kill a tracked process. Sends SIGTERM first, then SIGKILL after 5s.
76
+ */
77
+ export async function killProcess(pid, force = false) {
78
+ const entry = registry.get(pid);
79
+ if (!entry)
80
+ return false;
81
+ try {
82
+ if (force) {
83
+ process.kill(pid, 'SIGKILL');
84
+ }
85
+ else {
86
+ process.kill(pid, 'SIGTERM');
87
+ // Escalate to SIGKILL after 5s if still alive
88
+ setTimeout(() => {
89
+ try {
90
+ process.kill(pid, 0); // Check if alive
91
+ process.kill(pid, 'SIGKILL');
92
+ }
93
+ catch {
94
+ // Already dead — good
95
+ }
96
+ }, 5000);
97
+ }
98
+ return true;
99
+ }
100
+ catch {
101
+ // Process already gone
102
+ registry.delete(pid);
103
+ activityThrottle.delete(pid);
104
+ return false;
105
+ }
106
+ }
107
+ /**
108
+ * Start periodic health checker that verifies processes are still alive.
109
+ * Removes stale entries from the registry.
110
+ */
111
+ export function startHealthChecker(intervalMs = 30000) {
112
+ if (healthCheckTimer)
113
+ return;
114
+ healthCheckTimer = setInterval(() => {
115
+ for (const [pid, info] of registry) {
116
+ try {
117
+ process.kill(pid, 0); // No-op signal — just checks if alive
118
+ }
119
+ catch {
120
+ // Process is dead but wasn't cleaned up
121
+ const durationMs = Date.now() - info.spawnedAt;
122
+ registry.delete(pid);
123
+ activityThrottle.delete(pid);
124
+ broadcastEvent({
125
+ type: 'process:exit',
126
+ data: {
127
+ pid,
128
+ exitCode: null,
129
+ signal: null,
130
+ durationMs,
131
+ },
132
+ });
133
+ console.log(`[ProcessRegistry] Removed stale process PID=${pid} (${info.stage})`);
134
+ }
135
+ }
136
+ }, intervalMs);
137
+ }
138
+ /**
139
+ * Stop the health checker
140
+ */
141
+ export function stopHealthChecker() {
142
+ if (healthCheckTimer) {
143
+ clearInterval(healthCheckTimer);
144
+ healthCheckTimer = null;
145
+ }
146
+ }
147
+ //# sourceMappingURL=processRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processRegistry.js","sourceRoot":"","sources":["../../src/adapters/processRegistry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Tracks raw vs filtered output sizes for cost reporting
3
+ */
4
+ export interface OutputSizeInfo {
5
+ rawBytes: number;
6
+ filteredBytes: number;
7
+ savingsPercent: number;
8
+ }
9
+ /**
10
+ * SmartStreamBuffer filters Claude CLI stream-json (NDJSON) output in real-time.
11
+ *
12
+ * Kept events:
13
+ * - type 'result' — preserved verbatim (contains cost, usage, final result text)
14
+ * - type 'assistant' — only text blocks extracted (tool_use blocks discarded)
15
+ *
16
+ * Discarded events:
17
+ * - tool_use content blocks (large file contents, command outputs)
18
+ * - tool_result events
19
+ * - system events
20
+ * - content_block_start / content_block_delta / content_block_stop
21
+ *
22
+ * The filtered output is compatible with:
23
+ * - extractResultFromStreamJson() — scans lines for type 'result'
24
+ * - extractCostFromStreamJson() — scans lines for type 'result'
25
+ * - extractWorkerFromText() — matches file/command patterns in text
26
+ */
27
+ export declare class SmartStreamBuffer {
28
+ private rawBytes;
29
+ private lineBuffer;
30
+ private resultEvents;
31
+ private textFragments;
32
+ /**
33
+ * Process a raw stdout chunk from the CLI process.
34
+ * Splits into NDJSON lines, filters, and accumulates.
35
+ */
36
+ processChunk(chunk: string): void;
37
+ /**
38
+ * Flush any remaining buffered line (call at end of stream).
39
+ */
40
+ flush(): void;
41
+ private processLine;
42
+ /**
43
+ * Build filtered stdout string compatible with downstream parsers.
44
+ *
45
+ * Output format:
46
+ * 1. All result events (verbatim NDJSON lines)
47
+ * 2. A synthetic assistant event containing all collected text fragments
48
+ *
49
+ * This ensures extractResultFromStreamJson() and extractCostFromStreamJson()
50
+ * find their result events, while extractWorkerFromText() can match patterns
51
+ * in the synthetic assistant text.
52
+ */
53
+ buildFilteredStdout(): string;
54
+ /**
55
+ * Get size tracking info for cost reporting.
56
+ */
57
+ getSizeInfo(): OutputSizeInfo;
58
+ }
59
+ //# sourceMappingURL=streamBuffer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamBuffer.d.ts","sourceRoot":"","sources":["../../src/adapters/streamBuffer.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,aAAa,CAAgB;IAErC;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAejC;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb,OAAO,CAAC,WAAW;IA0BnB;;;;;;;;;;OAUG;IACH,mBAAmB,IAAI,MAAM;IAwB7B;;OAEG;IACH,WAAW,IAAI,cAAc;CAa9B"}