@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,261 @@
1
+ // ============================================
2
+ // OpenSwarm - Self-Healing PR Conflict Resolver
3
+ // Detects and auto-resolves merge conflicts on bot-owned PRs
4
+ // ============================================
5
+ import { execFile } from 'node:child_process';
6
+ import { promisify } from 'node:util';
7
+ import { getPRBaseBranch, commentOnPR } from '../github/github.js';
8
+ import { isOwnedPR, getOwnedPRsForRepo } from './prOwnership.js';
9
+ import { runWorker } from '../agents/worker.js';
10
+ import { broadcastEvent } from '../core/eventHub.js';
11
+ import { reportEvent } from '../discord/index.js';
12
+ const execFileAsync = promisify(execFile);
13
+ /** Safe git execution (no shell) */
14
+ async function gitExec(cwd, ...args) {
15
+ const { stdout } = await execFileAsync('git', args, { cwd });
16
+ return stdout;
17
+ }
18
+ // ConflictResolver
19
+ export class ConflictResolver {
20
+ config;
21
+ attempts = new Map();
22
+ constructor(config) {
23
+ this.config = config;
24
+ }
25
+ /** Whether resolver is enabled */
26
+ isEnabled() {
27
+ return this.config.enabled;
28
+ }
29
+ /** Whether cascade checks are enabled */
30
+ cascadeEnabled() {
31
+ return this.config.cascadeCheck;
32
+ }
33
+ /**
34
+ * Check if we can resolve conflicts for this PR
35
+ * - Ownership check (auto mode: bot-created only, all mode: any PR)
36
+ * - Attempt limit check
37
+ */
38
+ async canResolve(pr) {
39
+ // Ownership check
40
+ if (this.config.ownershipMode === 'auto') {
41
+ const owned = await isOwnedPR(pr.repo, pr.number);
42
+ if (!owned) {
43
+ console.log(`[ConflictResolver] ${pr.repo}#${pr.number}: not owned, skipping`);
44
+ return false;
45
+ }
46
+ }
47
+ // Attempt limit
48
+ const key = `${pr.repo}#${pr.number}`;
49
+ const existing = this.attempts.get(key);
50
+ if (existing && existing.attempts >= this.config.maxResolutionAttempts) {
51
+ console.log(`[ConflictResolver] ${key}: max attempts reached (${existing.attempts}/${this.config.maxResolutionAttempts})`);
52
+ return false;
53
+ }
54
+ return true;
55
+ }
56
+ /**
57
+ * Resolve merge conflicts for a PR
58
+ * @returns true if conflicts were resolved successfully
59
+ */
60
+ async resolve(pr, projectPath) {
61
+ const key = `${pr.repo}#${pr.number}`;
62
+ console.log(`[ConflictResolver] Resolving conflicts for ${key}...`);
63
+ // Track attempt
64
+ const existing = this.attempts.get(key) || { repo: pr.repo, prNumber: pr.number, attempts: 0 };
65
+ existing.attempts++;
66
+ existing.lastAttempt = new Date().toISOString();
67
+ this.attempts.set(key, existing);
68
+ // Broadcast event
69
+ broadcastEvent({
70
+ type: 'conflict:detected',
71
+ data: { repo: pr.repo, prNumber: pr.number, branch: pr.branch },
72
+ });
73
+ await reportEvent({
74
+ type: 'pr_conflict_detected',
75
+ session: 'conflict-resolver',
76
+ message: `**${pr.repo}#${pr.number}** "${pr.title}" has merge conflicts (attempt ${existing.attempts}/${this.config.maxResolutionAttempts})`,
77
+ timestamp: Date.now(),
78
+ url: pr.url,
79
+ });
80
+ // Save current branch for restoration
81
+ let originalBranch = 'main';
82
+ try {
83
+ originalBranch = (await gitExec(projectPath, 'rev-parse', '--abbrev-ref', 'HEAD')).trim();
84
+ }
85
+ catch {
86
+ // fallback to main
87
+ }
88
+ try {
89
+ // 1. Get base branch
90
+ const baseBranch = await getPRBaseBranch(pr.repo, pr.number);
91
+ console.log(`[ConflictResolver] ${key}: base=${baseBranch}, head=${pr.branch}`);
92
+ broadcastEvent({
93
+ type: 'conflict:resolving',
94
+ data: { repo: pr.repo, prNumber: pr.number, branch: pr.branch, attempt: existing.attempts },
95
+ });
96
+ await reportEvent({
97
+ type: 'pr_conflict_resolving',
98
+ session: 'conflict-resolver',
99
+ message: `**${pr.repo}#${pr.number}** resolving conflicts (attempt ${existing.attempts})...`,
100
+ timestamp: Date.now(),
101
+ url: pr.url,
102
+ });
103
+ // 2. Fetch latest
104
+ await gitExec(projectPath, 'fetch', 'origin');
105
+ // 3. Checkout PR branch
106
+ await gitExec(projectPath, 'checkout', pr.branch);
107
+ await gitExec(projectPath, 'pull', 'origin', pr.branch);
108
+ // 4. Try merge
109
+ let autoMerged = false;
110
+ try {
111
+ await gitExec(projectPath, 'merge', `origin/${baseBranch}`, '--no-edit');
112
+ autoMerged = true;
113
+ console.log(`[ConflictResolver] ${key}: auto-merge succeeded`);
114
+ }
115
+ catch {
116
+ // Merge conflicts exist — proceed to manual resolution
117
+ console.log(`[ConflictResolver] ${key}: auto-merge failed, resolving manually...`);
118
+ }
119
+ if (!autoMerged) {
120
+ // 5. Get conflicted files
121
+ const conflictOutput = await gitExec(projectPath, 'diff', '--name-only', '--diff-filter=U');
122
+ const conflictedFiles = conflictOutput.trim().split('\n').filter(Boolean);
123
+ if (conflictedFiles.length === 0) {
124
+ // No actual conflicts (maybe already resolved)
125
+ console.log(`[ConflictResolver] ${key}: no conflicted files found, aborting merge`);
126
+ await gitExec(projectPath, 'merge', '--abort').catch(() => { });
127
+ return false;
128
+ }
129
+ console.log(`[ConflictResolver] ${key}: ${conflictedFiles.length} conflicted files: ${conflictedFiles.join(', ')}`);
130
+ // 6. Spawn worker to resolve conflicts
131
+ const workerResult = await runWorker({
132
+ taskTitle: `Resolve merge conflicts: ${pr.title}`,
133
+ taskDescription: [
134
+ `## Merge Conflict Resolution`,
135
+ ``,
136
+ `**PR:** #${pr.number} - ${pr.title}`,
137
+ `**Branch:** ${pr.branch} ← ${baseBranch}`,
138
+ ``,
139
+ `## Conflicted Files`,
140
+ conflictedFiles.map((f) => `- ${f}`).join('\n'),
141
+ ``,
142
+ `## Instructions`,
143
+ `1. Open each conflicted file and resolve the merge conflict markers (<<<<<<< HEAD, =======, >>>>>>> ...)`,
144
+ `2. Keep BOTH sides' changes where possible. When the same line was modified by both sides, prefer the HEAD (PR branch) version.`,
145
+ `3. After resolving each file, run \`git add <file>\` for each resolved file.`,
146
+ `4. Do NOT run git commit — only resolve conflicts and stage files.`,
147
+ `5. Do NOT modify any files that are not in the conflicted files list.`,
148
+ `6. Ensure the resolved code compiles and makes logical sense.`,
149
+ ].join('\n'),
150
+ projectPath,
151
+ model: this.config.workerModel,
152
+ timeoutMs: this.config.workerTimeoutMs || 300_000,
153
+ });
154
+ if (!workerResult.success) {
155
+ console.log(`[ConflictResolver] ${key}: worker failed - ${workerResult.error}`);
156
+ await gitExec(projectPath, 'merge', '--abort').catch(() => { });
157
+ await this.reportFailure(pr, `Worker failed: ${workerResult.error || 'unknown error'}`);
158
+ return false;
159
+ }
160
+ // 7. Verify all conflicts are resolved
161
+ const remaining = await gitExec(projectPath, 'diff', '--name-only', '--diff-filter=U').catch(() => '');
162
+ if (remaining.trim()) {
163
+ console.log(`[ConflictResolver] ${key}: unresolved files remain: ${remaining.trim()}`);
164
+ await gitExec(projectPath, 'merge', '--abort').catch(() => { });
165
+ await this.reportFailure(pr, `Unresolved conflicts remain: ${remaining.trim()}`);
166
+ return false;
167
+ }
168
+ // 8. Commit the merge
169
+ await gitExec(projectPath, 'commit', '-m', `chore: resolve merge conflicts with ${baseBranch}\n\n🤖 Auto-resolved by OpenSwarm ConflictResolver`);
170
+ console.log(`[ConflictResolver] ${key}: merge committed`);
171
+ }
172
+ // 9. Push
173
+ await gitExec(projectPath, 'push', 'origin', pr.branch);
174
+ console.log(`[ConflictResolver] ${key}: pushed to origin`);
175
+ // 10. Report success
176
+ const filesResolved = autoMerged ? 0 : (await gitExec(projectPath, 'diff', '--name-only', 'HEAD~1')).trim().split('\n').filter(Boolean).length;
177
+ broadcastEvent({
178
+ type: 'conflict:resolved',
179
+ data: { repo: pr.repo, prNumber: pr.number, branch: pr.branch, filesResolved },
180
+ });
181
+ await commentOnPR(pr.repo, pr.number, [
182
+ `## ✅ Merge conflicts resolved`,
183
+ '',
184
+ autoMerged
185
+ ? 'Conflicts were automatically resolved by Git.'
186
+ : `Resolved ${filesResolved} conflicted file(s) using AI-assisted merge.`,
187
+ '',
188
+ `Attempt: ${existing.attempts}/${this.config.maxResolutionAttempts}`,
189
+ '',
190
+ '🤖 *OpenSwarm ConflictResolver*',
191
+ ].join('\n'));
192
+ await reportEvent({
193
+ type: 'pr_conflict_resolved',
194
+ session: 'conflict-resolver',
195
+ message: `**${pr.repo}#${pr.number}** "${pr.title}" conflicts resolved${autoMerged ? ' (auto-merge)' : ` (${filesResolved} files)`}`,
196
+ timestamp: Date.now(),
197
+ url: pr.url,
198
+ });
199
+ return true;
200
+ }
201
+ catch (err) {
202
+ const errorMsg = err instanceof Error ? err.message : String(err);
203
+ console.error(`[ConflictResolver] ${key} error:`, errorMsg);
204
+ // Abort any pending merge
205
+ await gitExec(projectPath, 'merge', '--abort').catch(() => { });
206
+ await this.reportFailure(pr, errorMsg);
207
+ return false;
208
+ }
209
+ finally {
210
+ // Always restore original branch
211
+ try {
212
+ await gitExec(projectPath, 'checkout', originalBranch);
213
+ }
214
+ catch (restoreErr) {
215
+ console.error(`[ConflictResolver] Failed to restore branch ${originalBranch}:`, restoreErr);
216
+ }
217
+ }
218
+ }
219
+ /**
220
+ * Check other owned PRs in the same repo for cascading conflicts
221
+ */
222
+ async checkCascade(repo) {
223
+ if (!this.config.cascadeCheck)
224
+ return;
225
+ const ownedPRs = await getOwnedPRsForRepo(repo);
226
+ if (ownedPRs.length <= 1)
227
+ return;
228
+ console.log(`[ConflictResolver] Cascade check: ${repo} has ${ownedPRs.length} owned PRs`);
229
+ // Cascade check is informational — actual resolution happens in the next processPRs cycle
230
+ }
231
+ /** Report failure via events and PR comment */
232
+ async reportFailure(pr, reason) {
233
+ const key = `${pr.repo}#${pr.number}`;
234
+ const attempt = this.attempts.get(key);
235
+ broadcastEvent({
236
+ type: 'conflict:failed',
237
+ data: { repo: pr.repo, prNumber: pr.number, branch: pr.branch, reason },
238
+ });
239
+ const isMaxAttempts = attempt && attempt.attempts >= this.config.maxResolutionAttempts;
240
+ await commentOnPR(pr.repo, pr.number, [
241
+ `## ⚠️ Conflict resolution failed`,
242
+ '',
243
+ `**Reason:** ${reason}`,
244
+ `**Attempt:** ${attempt?.attempts ?? '?'}/${this.config.maxResolutionAttempts}`,
245
+ '',
246
+ isMaxAttempts
247
+ ? '❌ Max attempts reached. Manual intervention required.'
248
+ : '🔄 Will retry on next check cycle.',
249
+ '',
250
+ '🤖 *OpenSwarm ConflictResolver*',
251
+ ].join('\n'));
252
+ await reportEvent({
253
+ type: 'pr_conflict_failed',
254
+ session: 'conflict-resolver',
255
+ message: `**${pr.repo}#${pr.number}** "${pr.title}" conflict resolution failed: ${reason}${isMaxAttempts ? ' (MAX ATTEMPTS - escalation needed)' : ''}`,
256
+ timestamp: Date.now(),
257
+ url: pr.url,
258
+ });
259
+ }
260
+ }
261
+ //# sourceMappingURL=conflictResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conflictResolver.js","sourceRoot":"","sources":["../../src/automation/conflictResolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { LinearClient } from '@linear/sdk';
2
+ export interface DailyReporterConfig {
3
+ schedule: string;
4
+ enabled: boolean;
5
+ }
6
+ export declare function setLinearClient(client: LinearClient): void;
7
+ export declare function setDailyReporterDiscord(reporter: (content: any) => Promise<void>): void;
8
+ export declare function setTeamId(id: string): void;
9
+ /**
10
+ * Set project path mapping for knowledge graph metrics
11
+ * Called by autonomousRunner when project paths are resolved
12
+ */
13
+ export declare function registerProjectPath(projectId: string, projectPath: string): void;
14
+ /**
15
+ * Start daily reporter with cron schedule
16
+ */
17
+ export declare function startDailyReporter(config: DailyReporterConfig): void;
18
+ /**
19
+ * Stop daily reporter
20
+ */
21
+ export declare function stopDailyReporter(): void;
22
+ /**
23
+ * Manually trigger daily reports (for testing)
24
+ */
25
+ export declare function generateDailyReports(): Promise<void>;
26
+ //# sourceMappingURL=dailyReporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dailyReporter.d.ts","sourceRoot":"","sources":["../../src/automation/dailyReporter.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAU3C,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAE1D;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAEvF;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAEhF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAkBpE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAMxC;AAED;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAuD1D"}
@@ -0,0 +1,132 @@
1
+ // ============================================
2
+ // OpenSwarm - Daily Status Report Scheduler
3
+ // Consolidates Linear Status Updates to once daily at 6 PM
4
+ // ============================================
5
+ import { Cron } from 'croner';
6
+ import { postStatusUpdate } from '../linear/index.js';
7
+ let cronJob = null;
8
+ let linearClient = null;
9
+ let discordReporter = null;
10
+ let teamId = null;
11
+ // Project path mapping (projectId → projectPath) for knowledge graph metrics
12
+ let projectPathMapping = new Map();
13
+ export function setLinearClient(client) {
14
+ linearClient = client;
15
+ }
16
+ export function setDailyReporterDiscord(reporter) {
17
+ discordReporter = reporter;
18
+ }
19
+ export function setTeamId(id) {
20
+ teamId = id;
21
+ }
22
+ /**
23
+ * Set project path mapping for knowledge graph metrics
24
+ * Called by autonomousRunner when project paths are resolved
25
+ */
26
+ export function registerProjectPath(projectId, projectPath) {
27
+ projectPathMapping.set(projectId, projectPath);
28
+ }
29
+ /**
30
+ * Start daily reporter with cron schedule
31
+ */
32
+ export function startDailyReporter(config) {
33
+ if (!config.enabled) {
34
+ console.log('[DailyReporter] Disabled in configuration');
35
+ return;
36
+ }
37
+ if (cronJob) {
38
+ console.log('[DailyReporter] Already running');
39
+ return;
40
+ }
41
+ const schedule = config.schedule || '0 18 * * *'; // Default: 6 PM daily
42
+ cronJob = new Cron(schedule, async () => {
43
+ await generateDailyReports();
44
+ });
45
+ console.log(`[DailyReporter] Started with schedule: ${schedule}`);
46
+ }
47
+ /**
48
+ * Stop daily reporter
49
+ */
50
+ export function stopDailyReporter() {
51
+ if (cronJob) {
52
+ cronJob.stop();
53
+ cronJob = null;
54
+ console.log('[DailyReporter] Stopped');
55
+ }
56
+ }
57
+ /**
58
+ * Manually trigger daily reports (for testing)
59
+ */
60
+ export async function generateDailyReports() {
61
+ if (!linearClient) {
62
+ console.warn('[DailyReporter] LinearClient not set, skipping reports');
63
+ return;
64
+ }
65
+ if (!teamId) {
66
+ console.warn('[DailyReporter] Team ID not set, skipping reports');
67
+ return;
68
+ }
69
+ console.log('[DailyReporter] Generating daily reports...');
70
+ try {
71
+ // Fetch all active projects from Linear
72
+ const team = await linearClient.team(teamId);
73
+ if (!team) {
74
+ console.warn('[DailyReporter] Team not found');
75
+ return;
76
+ }
77
+ const projects = await team.projects({ first: 50 });
78
+ const activeProjects = projects.nodes.filter(p => p.state !== 'canceled');
79
+ if (activeProjects.length === 0) {
80
+ console.log('[DailyReporter] No active projects found');
81
+ return;
82
+ }
83
+ console.log(`[DailyReporter] Found ${activeProjects.length} active projects`);
84
+ // Generate status update for each project
85
+ let successCount = 0;
86
+ let failCount = 0;
87
+ for (const project of activeProjects) {
88
+ try {
89
+ const projectPath = projectPathMapping.get(project.id);
90
+ await postStatusUpdate(project.id, project.name, projectPath);
91
+ successCount++;
92
+ }
93
+ catch (err) {
94
+ console.error(`[DailyReporter] Failed to post update for "${project.name}":`, err);
95
+ failCount++;
96
+ }
97
+ }
98
+ console.log(`[DailyReporter] Reports completed: ${successCount} success, ${failCount} failed`);
99
+ // Send summary to Discord
100
+ if (discordReporter && successCount > 0) {
101
+ await sendDiscordSummary(activeProjects.length, successCount, failCount);
102
+ }
103
+ }
104
+ catch (error) {
105
+ console.error('[DailyReporter] Failed to generate reports:', error);
106
+ }
107
+ }
108
+ /**
109
+ * Send daily report summary to Discord
110
+ */
111
+ async function sendDiscordSummary(totalProjects, successCount, failCount) {
112
+ if (!discordReporter)
113
+ return;
114
+ const now = new Date();
115
+ const dateStr = now.toLocaleDateString('ko-KR', {
116
+ year: 'numeric',
117
+ month: 'long',
118
+ day: 'numeric',
119
+ });
120
+ const message = `📊 **Daily Status Reports Generated** (${dateStr})\n\n` +
121
+ `✅ Projects updated: ${successCount}/${totalProjects}\n` +
122
+ (failCount > 0 ? `❌ Failed: ${failCount}\n` : '') +
123
+ `\nAll project Status Updates have been posted to Linear.`;
124
+ try {
125
+ await discordReporter(message);
126
+ console.log('[DailyReporter] Discord summary sent');
127
+ }
128
+ catch (err) {
129
+ console.error('[DailyReporter] Failed to send Discord summary:', err);
130
+ }
131
+ }
132
+ //# sourceMappingURL=dailyReporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dailyReporter.js","sourceRoot":"","sources":["../../src/automation/dailyReporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export * from './autonomousRunner.js';
2
+ export * from './runnerExecution.js';
3
+ export * from './scheduler.js';
4
+ export * from './prProcessor.js';
5
+ export * from './ciWorker.js';
6
+ export * from './dailyReporter.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/automation/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from './autonomousRunner.js';
2
+ export * from './runnerExecution.js';
3
+ export * from './scheduler.js';
4
+ export * from './prProcessor.js';
5
+ export * from './ciWorker.js';
6
+ export * from './dailyReporter.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/automation/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { LongRunningMonitorConfig, LongRunningMonitor } from '../core/types.js';
2
+ /**
3
+ * Load monitors from config + persisted file at service startup
4
+ */
5
+ export declare function initMonitors(configs?: LongRunningMonitorConfig[]): void;
6
+ /**
7
+ * Register a monitor
8
+ */
9
+ export declare function registerMonitor(config: LongRunningMonitorConfig): LongRunningMonitor;
10
+ /**
11
+ * Unregister a monitor
12
+ */
13
+ export declare function unregisterMonitor(id: string): boolean;
14
+ /**
15
+ * Check all active monitors (called from heartbeat)
16
+ */
17
+ export declare function checkAllMonitors(): Promise<number>;
18
+ /**
19
+ * Get list of active monitors
20
+ */
21
+ export declare function getActiveMonitors(): LongRunningMonitor[];
22
+ /**
23
+ * Get a specific monitor by ID
24
+ */
25
+ export declare function getMonitor(id: string): LongRunningMonitor | undefined;
26
+ //# sourceMappingURL=longRunningMonitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"longRunningMonitor.d.ts","sourceRoot":"","sources":["../../src/automation/longRunningMonitor.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,wBAAwB,EACxB,kBAAkB,EAGnB,MAAM,kBAAkB,CAAC;AAqI1B;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,wBAAwB,EAAE,GAAG,IAAI,CAcvE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,wBAAwB,GAAG,kBAAkB,CAsBpF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAOrD;AAED;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,CAoExD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,kBAAkB,EAAE,CAExD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAErE"}