@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 @@
1
+ {"version":3,"file":"discordHandlers.js","sourceRoot":"","sources":["../../src/discord/discordHandlers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Message } from 'discord.js';
2
+ /**
3
+ * !pair command handler
4
+ */
5
+ export declare function handlePair(msg: Message, args: string[]): Promise<void>;
6
+ //# sourceMappingURL=discordPair.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discordPair.d.ts","sourceRoot":"","sources":["../../src/discord/discordPair.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,OAAO,EAIR,MAAM,YAAY,CAAC;AAcpB;;GAEG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA8C5E"}
@@ -0,0 +1,567 @@
1
+ // ============================================
2
+ // OpenSwarm - Discord Pair System
3
+ //
4
+ // Worker/Reviewer pair session management.
5
+ import { EmbedBuilder, ChannelType, } from 'discord.js';
6
+ import * as linear from '../linear/index.js';
7
+ import * as dev from '../support/dev.js';
8
+ import * as agentPair from '../agents/agentPair.js';
9
+ import * as worker from '../agents/worker.js';
10
+ import * as reviewer from '../agents/reviewer.js';
11
+ import * as pairMetrics from '../agents/pairMetrics.js';
12
+ import * as pairWebhook from '../agents/pairWebhook.js';
13
+ import { pairModeConfig, } from './discordCore.js';
14
+ import { t, getDateLocale } from '../locale/index.js';
15
+ /**
16
+ * !pair command handler
17
+ */
18
+ export async function handlePair(msg, args) {
19
+ const subCommand = args[0];
20
+ // !pair or !pair status - Current status
21
+ if (!subCommand || subCommand === 'status') {
22
+ await handlePairStatus(msg);
23
+ return;
24
+ }
25
+ // !pair start [taskId] - Start pair session
26
+ if (subCommand === 'start') {
27
+ const taskId = args[1];
28
+ await handlePairStart(msg, taskId);
29
+ return;
30
+ }
31
+ // !pair stop [sessionId] - Stop pair session
32
+ if (subCommand === 'stop') {
33
+ const sessionId = args[1];
34
+ await handlePairStop(msg, sessionId);
35
+ return;
36
+ }
37
+ // !pair history [n] - View history
38
+ if (subCommand === 'history') {
39
+ const limit = parseInt(args[1]) || 5;
40
+ await handlePairHistory(msg, limit);
41
+ return;
42
+ }
43
+ // !pair run <taskId> <project> - Direct pair execution
44
+ if (subCommand === 'run') {
45
+ const taskId = args[1];
46
+ const project = args[2] || '~/dev';
47
+ await handlePairRun(msg, taskId, project);
48
+ return;
49
+ }
50
+ // !pair stats - View statistics
51
+ if (subCommand === 'stats') {
52
+ await handlePairStats(msg);
53
+ return;
54
+ }
55
+ // Help
56
+ await msg.reply(t('discord.pair.helpText'));
57
+ }
58
+ /**
59
+ * !pair stats - View statistics
60
+ */
61
+ async function handlePairStats(msg) {
62
+ try {
63
+ const summary = await pairMetrics.getSummary();
64
+ const daily = await pairMetrics.getDailyMetrics(7);
65
+ const embed = new EmbedBuilder()
66
+ .setTitle(t('discord.pair.stats.title'))
67
+ .setColor(0x5865F2)
68
+ .setTimestamp();
69
+ // Overall summary
70
+ embed.addFields({
71
+ name: '📈 Overall Stats',
72
+ value: [
73
+ t('discord.pair.stats.totalSessions', { n: summary.totalSessions }),
74
+ t('discord.pair.stats.successRate', { n: summary.successRate }),
75
+ t('discord.pair.stats.firstAttemptRate', { n: summary.firstAttemptSuccessRate }),
76
+ ].join('\n'),
77
+ inline: true,
78
+ }, {
79
+ name: '📋 Result Distribution',
80
+ value: [
81
+ `✅ ${t('discord.pair.stats.approved', { n: summary.approved })}`,
82
+ `❌ ${t('discord.pair.stats.rejected', { n: summary.rejected })}`,
83
+ `💥 ${t('discord.pair.stats.failed', { n: summary.failed })}`,
84
+ `🚫 ${t('discord.pair.stats.cancelled', { n: summary.cancelled })}`,
85
+ ].join('\n'),
86
+ inline: true,
87
+ }, {
88
+ name: '⏱️ Average Metrics',
89
+ value: [
90
+ t('discord.pair.stats.avgAttempts', { n: summary.avgAttempts }),
91
+ t('discord.pair.stats.avgDuration', { duration: formatDuration(summary.avgDurationMs) }),
92
+ t('discord.pair.stats.avgFiles', { n: summary.avgFilesChanged }),
93
+ ].join('\n'),
94
+ inline: true,
95
+ });
96
+ // Daily statistics
97
+ if (daily.length > 0) {
98
+ const dailyLines = daily.map(d => {
99
+ const rate = d.sessions > 0 ? Math.round((d.approved / d.sessions) * 100) : 0;
100
+ return `**${d.date}**: ${d.sessions} sessions (✅${d.approved} ❌${d.rejected} 💥${d.failed}) ${rate}%`;
101
+ });
102
+ embed.addFields({
103
+ name: t('discord.pair.stats.dailyTitle'),
104
+ value: dailyLines.join('\n') || t('discord.pair.stats.noData'),
105
+ inline: false,
106
+ });
107
+ }
108
+ await msg.reply({ embeds: [embed] });
109
+ }
110
+ catch (err) {
111
+ await msg.reply(`❌ ${t('discord.errors.statsQueryFailed', { error: err instanceof Error ? err.message : String(err) })}`);
112
+ }
113
+ }
114
+ /**
115
+ * Format duration (ms -> human-readable)
116
+ */
117
+ function formatDuration(ms) {
118
+ if (ms < 1000)
119
+ return `${ms}ms`;
120
+ if (ms < 60000)
121
+ return t('common.duration.seconds', { n: Math.round(ms / 1000) });
122
+ if (ms < 3600000)
123
+ return t('common.duration.minutes', { n: Math.round(ms / 60000) });
124
+ return t('common.duration.hours', { n: Math.round(ms / 3600000) });
125
+ }
126
+ /**
127
+ * !pair status - Current pair session status
128
+ */
129
+ async function handlePairStatus(msg) {
130
+ const sessions = agentPair.getActiveSessions();
131
+ if (sessions.length === 0) {
132
+ await msg.reply(t('discord.pair.noActiveSessions'));
133
+ return;
134
+ }
135
+ const embed = new EmbedBuilder()
136
+ .setTitle(t('discord.pair.activeSessionsTitle'))
137
+ .setColor(0x00AE86)
138
+ .setTimestamp();
139
+ for (const session of sessions) {
140
+ embed.addFields({
141
+ name: `${session.id}: ${session.taskTitle.slice(0, 50)}`,
142
+ value: agentPair.formatSessionSummary(session),
143
+ inline: false,
144
+ });
145
+ }
146
+ await msg.reply({ embeds: [embed] });
147
+ }
148
+ /**
149
+ * !pair start [taskId] - Start pair session
150
+ */
151
+ async function handlePairStart(msg, taskId) {
152
+ // Fetch task from Linear
153
+ let task = null;
154
+ if (taskId) {
155
+ // Look up specific issue
156
+ try {
157
+ task = await linear.getIssue(taskId);
158
+ }
159
+ catch {
160
+ await msg.reply(`❌ ${t('discord.errors.issueNotFound', { id: taskId || '' })}`);
161
+ return;
162
+ }
163
+ }
164
+ else {
165
+ // Select first pending issue
166
+ try {
167
+ const issues = await linear.getMyIssues({ slim: true, timeoutMs: 30000 });
168
+ if (issues.length === 0) {
169
+ await msg.reply(`❌ ${t('discord.pair.noPendingIssues')}`);
170
+ return;
171
+ }
172
+ task = issues[0];
173
+ }
174
+ catch (err) {
175
+ await msg.reply(`❌ ${t('discord.errors.linearFetchFailed', { error: err instanceof Error ? err.message : String(err) })}`);
176
+ return;
177
+ }
178
+ }
179
+ // Determine project path
180
+ const projectPath = task.project?.name
181
+ ? dev.resolveRepoPath(task.project.name) || '~/dev'
182
+ : '~/dev';
183
+ await startPairSession(msg, {
184
+ taskId: task.identifier || task.id,
185
+ taskTitle: task.title,
186
+ taskDescription: task.description || '',
187
+ projectPath,
188
+ });
189
+ }
190
+ /**
191
+ * !pair run <taskId> [project] - Direct pair execution
192
+ */
193
+ async function handlePairRun(msg, taskId, project) {
194
+ if (!taskId) {
195
+ await msg.reply(t('discord.pair.usage'));
196
+ return;
197
+ }
198
+ // Verify project path
199
+ const projectPath = dev.resolveRepoPath(project) || project;
200
+ // Fetch issue info from Linear
201
+ let taskTitle = taskId;
202
+ let taskDescription = '';
203
+ try {
204
+ const issue = await linear.getIssue(taskId);
205
+ if (issue) {
206
+ taskTitle = issue.title;
207
+ taskDescription = issue.description || '';
208
+ }
209
+ }
210
+ catch {
211
+ // Continue even if Linear lookup fails (use taskId as title)
212
+ }
213
+ await startPairSession(msg, {
214
+ taskId,
215
+ taskTitle,
216
+ taskDescription,
217
+ projectPath,
218
+ });
219
+ }
220
+ /**
221
+ * Start and run pair session
222
+ */
223
+ async function startPairSession(msg, options) {
224
+ const channel = msg.channel;
225
+ // Apply defaults from pairModeConfig
226
+ const sessionOptions = {
227
+ ...options,
228
+ webhookUrl: options.webhookUrl ?? pairModeConfig?.webhookUrl,
229
+ maxAttempts: options.maxAttempts ?? pairModeConfig?.maxAttempts,
230
+ };
231
+ // 1. Create session
232
+ const session = agentPair.createPairSession(sessionOptions);
233
+ // 2. Create Discord thread
234
+ let thread;
235
+ try {
236
+ thread = await channel.threads.create({
237
+ name: `[${session.id}] ${options.taskTitle.slice(0, 50)}`,
238
+ autoArchiveDuration: 1440, // 24 hours
239
+ type: ChannelType.PublicThread,
240
+ });
241
+ agentPair.setSessionThreadId(session.id, thread.id);
242
+ }
243
+ catch (err) {
244
+ await msg.reply(`❌ ${t('discord.errors.threadCreateFailed', { error: err instanceof Error ? err.message : String(err) })}`);
245
+ agentPair.cancelSession(session.id);
246
+ return;
247
+ }
248
+ // 3. Start message
249
+ const startEmbed = new EmbedBuilder()
250
+ .setTitle(`📋 ${t('discord.pair.taskStartTitle', { title: options.taskTitle.slice(0, 80) })}`)
251
+ .setColor(0x00AE86)
252
+ .addFields({ name: 'Session ID', value: session.id, inline: true }, { name: 'Task', value: options.taskId, inline: true }, { name: 'Project', value: options.projectPath, inline: true })
253
+ .setTimestamp();
254
+ await thread.send({ embeds: [startEmbed] });
255
+ agentPair.addMessage(session.id, 'system', t('discord.pair.sessionStartMsg'));
256
+ // 4. Start Worker/Reviewer loop (async)
257
+ runPairLoop(session.id, thread).catch((err) => {
258
+ console.error('[Pair] Loop error:', err);
259
+ thread.send(`❌ ${t('discord.pair.loopError', { error: err instanceof Error ? err.message : String(err) })}`);
260
+ agentPair.updateSessionStatus(session.id, 'failed');
261
+ });
262
+ // 5. Notify main channel
263
+ await msg.reply(`👥 ${t('discord.pair.sessionStarted', { thread: String(thread) })}`);
264
+ }
265
+ /**
266
+ * Run Worker/Reviewer loop
267
+ */
268
+ async function runPairLoop(sessionId, thread) {
269
+ let session = agentPair.getPairSession(sessionId);
270
+ if (!session)
271
+ return;
272
+ // Log pair session start in Linear
273
+ try {
274
+ await linear.logPairStart(session.taskId, sessionId, session.projectPath);
275
+ }
276
+ catch (err) {
277
+ console.error('[Pair] Linear logPairStart failed:', err);
278
+ }
279
+ // Save last Worker result (for statistics)
280
+ let lastWorkerResult = null;
281
+ while (agentPair.canRetry(sessionId)) {
282
+ session = agentPair.getPairSession(sessionId);
283
+ if (!session)
284
+ break;
285
+ // Check for cancellation
286
+ if (session.status === 'cancelled') {
287
+ await thread.send(`🚫 ${t('discord.pair.sessionCancelled')}`);
288
+ return;
289
+ }
290
+ // === Worker Execution ===
291
+ agentPair.updateSessionStatus(sessionId, 'working');
292
+ await thread.send(t('discord.pair.workerStarting', { attempt: session.worker.attempts + 1, max: session.worker.maxAttempts }));
293
+ const previousFeedback = session.reviewer.feedback
294
+ ? reviewer.buildRevisionPrompt(session.reviewer.feedback)
295
+ : undefined;
296
+ const workerResult = await worker.runWorker({
297
+ taskTitle: session.taskTitle,
298
+ taskDescription: session.taskDescription,
299
+ projectPath: session.projectPath,
300
+ previousFeedback,
301
+ timeoutMs: 300000, // 5 minutes
302
+ issueIdentifier: session.taskId,
303
+ });
304
+ lastWorkerResult = workerResult;
305
+ agentPair.saveWorkerResult(sessionId, workerResult);
306
+ await thread.send(worker.formatWorkReport(workerResult, {
307
+ issueIdentifier: session.taskId,
308
+ projectPath: session.projectPath,
309
+ }));
310
+ // On Worker failure, retry or exit
311
+ if (!workerResult.success) {
312
+ if (!agentPair.canRetry(sessionId)) {
313
+ agentPair.updateSessionStatus(sessionId, 'failed');
314
+ await thread.send(t('discord.pair.maxAttemptsExceeded'));
315
+ // Log failure in Linear
316
+ try {
317
+ await linear.logPairFailed(session.taskId, sessionId, 'max_attempts', `Worker failed after max attempts (${session.worker.maxAttempts}) exceeded`);
318
+ }
319
+ catch (err) {
320
+ console.error('[Pair] Linear logPairFailed failed:', err);
321
+ }
322
+ // Send final summary
323
+ await sendFinalSummary(thread, session, 'failed');
324
+ return;
325
+ }
326
+ continue;
327
+ }
328
+ // === Reviewer Execution ===
329
+ agentPair.updateSessionStatus(sessionId, 'reviewing');
330
+ await thread.send(t('discord.pair.reviewerStarting'));
331
+ // Log review start in Linear
332
+ try {
333
+ await linear.logPairReview(session.taskId, sessionId, session.worker.attempts);
334
+ }
335
+ catch (err) {
336
+ console.error('[Pair] Linear logPairReview failed:', err);
337
+ }
338
+ const reviewResult = await reviewer.runReviewer({
339
+ taskTitle: session.taskTitle,
340
+ taskDescription: session.taskDescription,
341
+ workerResult,
342
+ projectPath: session.projectPath,
343
+ timeoutMs: 180000, // 3 minutes
344
+ });
345
+ agentPair.saveReviewerResult(sessionId, reviewResult);
346
+ await thread.send(reviewer.formatReviewFeedback(reviewResult));
347
+ // === Decision Processing ===
348
+ if (reviewResult.decision === 'approve') {
349
+ agentPair.updateSessionStatus(sessionId, 'approved');
350
+ await thread.send(t('discord.pair.workApproved'));
351
+ // Log completion in Linear
352
+ try {
353
+ const duration = Math.round((Date.now() - session.startedAt) / 1000);
354
+ await linear.logPairComplete(session.taskId, sessionId, {
355
+ attempts: session.worker.attempts,
356
+ duration,
357
+ filesChanged: lastWorkerResult?.filesChanged || [],
358
+ });
359
+ }
360
+ catch (err) {
361
+ console.error('[Pair] Linear logPairComplete failed:', err);
362
+ }
363
+ // Send final summary
364
+ await sendFinalSummary(thread, session, 'approved');
365
+ return;
366
+ }
367
+ if (reviewResult.decision === 'reject') {
368
+ agentPair.updateSessionStatus(sessionId, 'rejected');
369
+ await thread.send(t('discord.pair.workRejected'));
370
+ // Log rejection in Linear
371
+ try {
372
+ await linear.logPairFailed(session.taskId, sessionId, 'rejected', `Feedback: ${reviewResult.feedback}\nIssues: ${reviewResult.issues?.join(', ') || 'none'}`);
373
+ }
374
+ catch (err) {
375
+ console.error('[Pair] Linear logPairFailed failed:', err);
376
+ }
377
+ // Send final summary
378
+ await sendFinalSummary(thread, session, 'rejected');
379
+ return;
380
+ }
381
+ // revise: Worker will fix in next loop iteration
382
+ if (!agentPair.canRetry(sessionId)) {
383
+ agentPair.updateSessionStatus(sessionId, 'failed');
384
+ await thread.send(t('discord.pair.maxAttemptsEnd'));
385
+ try {
386
+ await linear.logPairFailed(session.taskId, sessionId, 'max_attempts', `Max attempts (${session.worker.maxAttempts}) exceeded`);
387
+ }
388
+ catch (err) {
389
+ console.error('[Pair] Linear logPairFailed failed:', err);
390
+ }
391
+ await sendFinalSummary(thread, session, 'failed');
392
+ return;
393
+ }
394
+ // Log revision request in Linear
395
+ try {
396
+ await linear.logPairRevision(session.taskId, sessionId, reviewResult.feedback, reviewResult.issues || []);
397
+ }
398
+ catch (err) {
399
+ console.error('[Pair] Linear logPairRevision failed:', err);
400
+ }
401
+ agentPair.updateSessionStatus(sessionId, 'revising');
402
+ await thread.send(t('discord.pair.revisionNeeded'));
403
+ }
404
+ // Max attempts exceeded
405
+ session = agentPair.getPairSession(sessionId);
406
+ if (session) {
407
+ agentPair.updateSessionStatus(sessionId, 'failed');
408
+ await thread.send(t('discord.pair.maxAttemptsEnd'));
409
+ try {
410
+ await linear.logPairFailed(session.taskId, sessionId, 'max_attempts', `Max attempts (${session.worker.maxAttempts}) exceeded`);
411
+ }
412
+ catch (err) {
413
+ console.error('[Pair] Linear logPairFailed failed:', err);
414
+ }
415
+ await sendFinalSummary(thread, session, 'failed');
416
+ }
417
+ }
418
+ /**
419
+ * Send final summary Embed
420
+ */
421
+ async function sendFinalSummary(thread, session, result) {
422
+ const finishedAt = Date.now();
423
+ const durationMs = finishedAt - session.startedAt;
424
+ const duration = Math.round(durationMs / 1000);
425
+ const durationStr = duration < 60
426
+ ? t('common.duration.seconds', { n: duration })
427
+ : `${Math.floor(duration / 60)}m ${duration % 60}s`;
428
+ // Record metrics
429
+ try {
430
+ await pairMetrics.recordSession({
431
+ sessionId: session.id,
432
+ taskId: session.taskId,
433
+ taskTitle: session.taskTitle,
434
+ result,
435
+ attempts: session.worker.attempts,
436
+ maxAttempts: session.worker.maxAttempts,
437
+ durationMs,
438
+ filesChanged: session.worker.result?.filesChanged.length || 0,
439
+ startedAt: session.startedAt,
440
+ finishedAt,
441
+ });
442
+ }
443
+ catch (err) {
444
+ console.error('[Pair] Metrics recording failed:', err);
445
+ }
446
+ // Webhook notification
447
+ if (session.webhookUrl && pairWebhook.isValidWebhookUrl(session.webhookUrl)) {
448
+ try {
449
+ const webhookFn = {
450
+ approved: pairWebhook.notifyPairApproved,
451
+ rejected: pairWebhook.notifyPairRejected,
452
+ failed: pairWebhook.notifyPairFailed,
453
+ cancelled: pairWebhook.notifyPairCancelled,
454
+ }[result];
455
+ const webhookResult = await webhookFn(session.webhookUrl, session);
456
+ if (!webhookResult.success) {
457
+ console.error('[Pair] Webhook notification failed:', webhookResult.error);
458
+ }
459
+ }
460
+ catch (err) {
461
+ console.error('[Pair] Webhook notification error:', err);
462
+ }
463
+ }
464
+ // Color and emoji by result
465
+ const config = {
466
+ approved: { color: 0x00FF00, emoji: '✅', title: t('discord.pair.summary.completed') },
467
+ rejected: { color: 0xFF0000, emoji: '❌', title: t('discord.pair.summary.rejected') },
468
+ failed: { color: 0xFF6600, emoji: '💥', title: t('discord.pair.summary.failed') },
469
+ cancelled: { color: 0x808080, emoji: '🚫', title: t('discord.pair.summary.cancelled') },
470
+ }[result];
471
+ // Changed files list
472
+ const filesChanged = session.worker.result?.filesChanged || [];
473
+ const filesStr = filesChanged.length > 0
474
+ ? filesChanged.slice(0, 10).map(f => `\`${f}\``).join(', ')
475
+ : t('discord.pair.summary.noFiles');
476
+ // Executed commands (unused but for future expansion)
477
+ const _commands = session.worker.result?.commands || [];
478
+ // Create Embed
479
+ const embed = new EmbedBuilder()
480
+ .setTitle(`${config.emoji} ${config.title}: ${session.taskTitle.slice(0, 60)}`)
481
+ .setColor(config.color)
482
+ .addFields({ name: t('discord.pair.summary.statsLabel'), value: [
483
+ t('discord.pair.summary.attempts', { n: session.worker.attempts, max: session.worker.maxAttempts }),
484
+ t('discord.pair.summary.duration', { duration: durationStr }),
485
+ t('discord.pair.summary.filesChanged', { n: filesChanged.length }),
486
+ ].join('\n'), inline: false }, { name: t('discord.pair.summary.filesLabel'), value: filesStr.slice(0, 1000) || t('discord.pair.summary.noFiles'), inline: false })
487
+ .setFooter({ text: `Session: ${session.id} | Task: ${session.taskId}` })
488
+ .setTimestamp();
489
+ // Add reviewer feedback if available
490
+ if (session.reviewer.feedback) {
491
+ const feedback = session.reviewer.feedback;
492
+ const feedbackStr = [
493
+ t('discord.pair.summary.decisionLabel', { decision: feedback.decision.toUpperCase() }),
494
+ t('discord.pair.summary.feedbackLabel', { feedback: feedback.feedback.slice(0, 200) }),
495
+ ].join('\n');
496
+ embed.addFields({ name: t('discord.pair.summary.reviewerFeedback'), value: feedbackStr, inline: false });
497
+ }
498
+ await thread.send({ embeds: [embed] });
499
+ // Discussion summary (if messages exist)
500
+ if (session.messages.length > 0) {
501
+ const discussionSummary = formatDiscussionSummary(session);
502
+ if (discussionSummary.length <= 2000) {
503
+ await thread.send(`📜 ${t('discord.pair.summary.discussionSummary', { count: session.messages.length })}\n${discussionSummary}`);
504
+ }
505
+ else {
506
+ // Split if too long
507
+ await thread.send(`📜 ${t('discord.pair.summary.discussionSummary', { count: session.messages.length })}`);
508
+ await thread.send(`\`\`\`\n${discussionSummary.slice(0, 1900)}\n...\n\`\`\``);
509
+ }
510
+ }
511
+ }
512
+ /**
513
+ * Format discussion summary
514
+ */
515
+ function formatDiscussionSummary(session) {
516
+ return session.messages.map((msg, _idx) => {
517
+ const roleEmoji = { worker: '🔨', reviewer: '🔍', system: '⚙️' }[msg.role];
518
+ const time = new Date(msg.timestamp).toLocaleTimeString(getDateLocale(), {
519
+ hour: '2-digit',
520
+ minute: '2-digit',
521
+ });
522
+ const content = msg.content.slice(0, 200) + (msg.content.length > 200 ? '...' : '');
523
+ return `[${time}] ${roleEmoji} ${msg.role}: ${content}`;
524
+ }).join('\n');
525
+ }
526
+ /**
527
+ * !pair stop [sessionId] - Stop pair session
528
+ */
529
+ async function handlePairStop(msg, sessionId) {
530
+ const sessions = agentPair.getActiveSessions();
531
+ if (sessions.length === 0) {
532
+ await msg.reply(t('discord.pair.noActiveSessions'));
533
+ return;
534
+ }
535
+ // If sessionId not specified, use most recent session
536
+ const targetId = sessionId || sessions[0].id;
537
+ const success = agentPair.cancelSession(targetId);
538
+ if (success) {
539
+ await msg.reply(`🚫 ${t('discord.pair.cancelledMsg', { id: targetId })}`);
540
+ }
541
+ else {
542
+ await msg.reply(`❌ ${t('discord.pair.cancelNotFound', { id: targetId })}`);
543
+ }
544
+ }
545
+ /**
546
+ * !pair history [n] - View history
547
+ */
548
+ async function handlePairHistory(msg, limit) {
549
+ const history = agentPair.getSessionHistory(limit);
550
+ if (history.length === 0) {
551
+ await msg.reply(t('discord.pair.noHistory'));
552
+ return;
553
+ }
554
+ const embed = new EmbedBuilder()
555
+ .setTitle(t('discord.pair.historyTitle'))
556
+ .setColor(0x9b59b6)
557
+ .setTimestamp();
558
+ for (const session of history) {
559
+ embed.addFields({
560
+ name: `${session.id}: ${session.taskTitle.slice(0, 40)}`,
561
+ value: agentPair.formatSessionSummary(session),
562
+ inline: false,
563
+ });
564
+ }
565
+ await msg.reply({ embeds: [embed] });
566
+ }
567
+ //# sourceMappingURL=discordPair.js.map