@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,606 @@
1
+ /**
2
+ * Persistent Cognitive Memory Module v2.0 - Operations
3
+ *
4
+ * Revision, formatting, background cognition, stats, and legacy compat.
5
+ * Core types, save, search are in memoryCore.ts.
6
+ */
7
+ import { EMBEDDING_DIM, PERMANENT_EXPIRY, normalizeRecords, initDatabase, getEmbedding, getDb, getTable, setTable, searchMemory, calculateStability, calculateFreshness, logWork, } from './memoryCore.js';
8
+ // Memory Revision Loop (PRD Phase 3)
9
+ /**
10
+ * Revise existing belief with new information
11
+ * PRD: moving beyond append-only - revise existing beliefs
12
+ */
13
+ export async function reviseMemory(memoryId, newContent, options) {
14
+ try {
15
+ await initDatabase();
16
+ const table = getTable();
17
+ const db = getDb();
18
+ if (!table || !db)
19
+ return false;
20
+ // Find existing memory
21
+ const results = await table.search(Array.from({ length: EMBEDDING_DIM }, () => 0)).limit(10000).toArray();
22
+ const existing = results.find((r) => r.id === memoryId);
23
+ if (!existing) {
24
+ console.log(`[Memory] Revision failed: memory ${memoryId} not found`);
25
+ return false;
26
+ }
27
+ const now = Date.now();
28
+ const newRevisionCount = (existing.revisionCount ?? 0) + 1;
29
+ const age = now - existing.createdAt;
30
+ // Create revised record
31
+ const revised = {
32
+ ...existing,
33
+ content: newContent,
34
+ vector: await getEmbedding(newContent),
35
+ lastUpdated: now,
36
+ revisionCount: newRevisionCount,
37
+ confidence: options?.newConfidence ?? Math.max(0.3, (existing.confidence ?? 0.7) - 0.1),
38
+ stability: calculateStability(newRevisionCount, age),
39
+ metadata: JSON.stringify({
40
+ ...JSON.parse(existing.metadata || '{}'),
41
+ lastRevision: {
42
+ timestamp: now,
43
+ reason: options?.reason || 'manual revision',
44
+ previousContent: existing.content.slice(0, 200),
45
+ },
46
+ }),
47
+ };
48
+ // LanceDB doesn't support update, so we delete and re-add
49
+ // Create new table without the old record, then add revised
50
+ const allRecords = results.filter((r) => r.id !== memoryId);
51
+ allRecords.push(revised);
52
+ // Recreate table with updated data (normalization applied)
53
+ const tableName = 'cognitive_memory';
54
+ await db.dropTable(tableName);
55
+ const newTable = await db.createTable(tableName, normalizeRecords(allRecords));
56
+ setTable(newTable);
57
+ console.log(`[Memory] Revised ${memoryId} (rev: ${newRevisionCount}, stability: ${revised.stability})`);
58
+ return true;
59
+ }
60
+ catch (error) {
61
+ console.error('[Memory] Revision error:', error);
62
+ return false;
63
+ }
64
+ }
65
+ /**
66
+ * Find contradicting memories
67
+ * PRD: detect semantic conflicts
68
+ */
69
+ export async function findContradictions(content) {
70
+ try {
71
+ // Search for similar content
72
+ const similar = await searchMemory(content, {
73
+ minSimilarity: 0.6,
74
+ limit: 20,
75
+ });
76
+ // Contradiction detection heuristics
77
+ const contradictionKeywords = [
78
+ { positive: /항상|always|must|반드시/i, negative: /절대|never|금지|안됨/i },
79
+ { positive: /좋|effective|works|성공/i, negative: /나쁨|ineffective|fails|실패/i },
80
+ { positive: /사용|use|enable|활성/i, negative: /사용안함|disable|비활성/i },
81
+ ];
82
+ const contradictions = [];
83
+ for (const memory of similar) {
84
+ // Check for opposite sentiment patterns
85
+ for (const { positive, negative } of contradictionKeywords) {
86
+ const contentHasPositive = positive.test(content);
87
+ const contentHasNegative = negative.test(content);
88
+ const memoryHasPositive = positive.test(memory.content);
89
+ const memoryHasNegative = negative.test(memory.content);
90
+ // Contradiction: one has positive, other has negative
91
+ if ((contentHasPositive && memoryHasNegative) || (contentHasNegative && memoryHasPositive)) {
92
+ contradictions.push(memory);
93
+ break;
94
+ }
95
+ }
96
+ }
97
+ if (contradictions.length > 0) {
98
+ console.log(`[Memory] Found ${contradictions.length} potential contradictions`);
99
+ }
100
+ return contradictions;
101
+ }
102
+ catch (error) {
103
+ console.error('[Memory] Contradiction detection error:', error);
104
+ return [];
105
+ }
106
+ }
107
+ /**
108
+ * Mark memories as contradicting each other
109
+ */
110
+ export async function markContradiction(memoryId1, memoryId2) {
111
+ try {
112
+ await initDatabase();
113
+ const table = getTable();
114
+ const db = getDb();
115
+ if (!table || !db)
116
+ return false;
117
+ const results = await table.search(Array.from({ length: EMBEDDING_DIM }, () => 0)).limit(10000).toArray();
118
+ const memory1 = results.find((r) => r.id === memoryId1);
119
+ const memory2 = results.find((r) => r.id === memoryId2);
120
+ if (!memory1 || !memory2) {
121
+ console.log('[Memory] Cannot mark contradiction: one or both memories not found');
122
+ return false;
123
+ }
124
+ // Update contradicts arrays
125
+ const contradicts1 = JSON.parse(memory1.contradicts || '[]');
126
+ const contradicts2 = JSON.parse(memory2.contradicts || '[]');
127
+ if (!contradicts1.includes(memoryId2))
128
+ contradicts1.push(memoryId2);
129
+ if (!contradicts2.includes(memoryId1))
130
+ contradicts2.push(memoryId1);
131
+ memory1.contradicts = JSON.stringify(contradicts1);
132
+ memory2.contradicts = JSON.stringify(contradicts2);
133
+ // Lower importance for both (PRD: decrease importance on contradiction)
134
+ memory1.importance = Math.max(0.2, (memory1.importance ?? 0.5) - 0.15);
135
+ memory2.importance = Math.max(0.2, (memory2.importance ?? 0.5) - 0.15);
136
+ // Recreate table (normalization applied)
137
+ const tableName = 'cognitive_memory';
138
+ await db.dropTable(tableName);
139
+ const newTable = await db.createTable(tableName, normalizeRecords(results));
140
+ setTable(newTable);
141
+ console.log(`[Memory] Marked contradiction between ${memoryId1} and ${memoryId2}`);
142
+ return true;
143
+ }
144
+ catch (error) {
145
+ console.error('[Memory] Mark contradiction error:', error);
146
+ return false;
147
+ }
148
+ }
149
+ /**
150
+ * Reconcile contradicting beliefs (choose one, archive other)
151
+ */
152
+ export async function reconcileContradiction(keepId, archiveId, reason) {
153
+ try {
154
+ await initDatabase();
155
+ const table = getTable();
156
+ const db = getDb();
157
+ if (!table || !db)
158
+ return false;
159
+ const results = await table.search(Array.from({ length: EMBEDDING_DIM }, () => 0)).limit(10000).toArray();
160
+ const keepMemory = results.find((r) => r.id === keepId);
161
+ const archiveMemory = results.find((r) => r.id === archiveId);
162
+ if (!keepMemory || !archiveMemory) {
163
+ console.log('[Memory] Cannot reconcile: one or both memories not found');
164
+ return false;
165
+ }
166
+ // Boost kept memory
167
+ keepMemory.confidence = Math.min(1, (keepMemory.confidence ?? 0.7) + 0.1);
168
+ keepMemory.stability = 'high';
169
+ // Archive the other (set high decay, low importance)
170
+ archiveMemory.decay = 0.9;
171
+ archiveMemory.importance = 0.1;
172
+ archiveMemory.metadata = JSON.stringify({
173
+ ...JSON.parse(archiveMemory.metadata || '{}'),
174
+ archived: {
175
+ timestamp: Date.now(),
176
+ reason,
177
+ supersededBy: keepId,
178
+ },
179
+ });
180
+ // Recreate table (normalization applied)
181
+ const tableName = 'cognitive_memory';
182
+ await db.dropTable(tableName);
183
+ const newTable = await db.createTable(tableName, normalizeRecords(results));
184
+ setTable(newTable);
185
+ console.log(`[Memory] Reconciled: kept ${keepId}, archived ${archiveId}`);
186
+ return true;
187
+ }
188
+ catch (error) {
189
+ console.error('[Memory] Reconciliation error:', error);
190
+ return false;
191
+ }
192
+ }
193
+ /**
194
+ * Format memories as context (PRD v2.0 - Cognitive + Legacy)
195
+ */
196
+ export function formatMemoryContext(memories) {
197
+ if (memories.length === 0)
198
+ return '';
199
+ // Cognitive + Legacy types
200
+ const grouped = {
201
+ // Cognitive (PRD)
202
+ constraint: [],
203
+ user_model: [],
204
+ strategy: [],
205
+ belief: [],
206
+ system_pattern: [],
207
+ // Legacy
208
+ decision: [],
209
+ repomap: [],
210
+ journal: [],
211
+ fact: [],
212
+ };
213
+ for (const m of memories) {
214
+ if (grouped[m.type]) {
215
+ grouped[m.type].push(m);
216
+ }
217
+ }
218
+ const sections = [];
219
+ // PRD Cognitive Types (ordered by importance, highest first)
220
+ if (grouped.constraint.length > 0) {
221
+ const items = grouped.constraint.map(m => `- ⚠️ **${m.content.slice(0, 100)}** (importance: ${(m.importance * 100).toFixed(0)}%, stability: ${m.stability})`).join('\n');
222
+ sections.push(`### 🚫 Constraints (CRITICAL)\n${items}`);
223
+ }
224
+ if (grouped.user_model.length > 0) {
225
+ const items = grouped.user_model.map(m => `- **${m.content.slice(0, 100)}** (confidence: ${(m.confidence * 100).toFixed(0)}%)`).join('\n');
226
+ sections.push(`### 👤 User Preferences\n${items}`);
227
+ }
228
+ if (grouped.strategy.length > 0) {
229
+ const items = grouped.strategy.map(m => `- **${m.content.slice(0, 100)}** (verified: ${m.stability === 'high' ? '✓' : '△'})`).join('\n');
230
+ sections.push(`### 🎯 Verified Strategies\n${items}`);
231
+ }
232
+ if (grouped.belief.length > 0) {
233
+ const items = grouped.belief.map(m => `- ${m.content.slice(0, 100)} (rev: ${m.revisionCount}, decay: ${(m.decay * 100).toFixed(0)}%)`).join('\n');
234
+ sections.push(`### 💡 Beliefs\n${items}`);
235
+ }
236
+ if (grouped.system_pattern.length > 0) {
237
+ const items = grouped.system_pattern.map(m => `- **${m.content.slice(0, 100)}**`).join('\n');
238
+ sections.push(`### 🏗️ System Patterns\n${items}`);
239
+ }
240
+ // Legacy Types
241
+ if (grouped.decision.length > 0) {
242
+ const items = grouped.decision.map(m => `- **${m.title}** (${formatDate(m.createdAt)}, trust: ${(m.trust * 100).toFixed(0)}%)\n ${m.content.slice(0, 150)}...`).join('\n');
243
+ sections.push(`### 📋 Related Design Decisions (reference)\n${items}`);
244
+ }
245
+ if (grouped.fact.length > 0) {
246
+ const items = grouped.fact.map(m => `- **${m.title}**: ${m.content.slice(0, 100)}${m.content.length > 100 ? '...' : ''}`).join('\n');
247
+ sections.push(`### 📌 Related Facts (reference)\n${items}`);
248
+ }
249
+ if (grouped.repomap.length > 0) {
250
+ const items = grouped.repomap.map(m => `- **${m.repo}**: ${m.title}`).join('\n');
251
+ sections.push(`### 🗂️ Repository Structure (reference)\n${items}`);
252
+ }
253
+ if (grouped.journal.length > 0) {
254
+ const items = grouped.journal.map(m => `- [${formatDate(m.createdAt)}] **${m.title}** (freshness: ${(m.freshness * 100).toFixed(0)}%)`).join('\n');
255
+ sections.push(`### 📝 Recent Work Log (reference)\n${items}`);
256
+ }
257
+ if (sections.length === 0)
258
+ return '';
259
+ return `## 🧠 Cognitive Memory (PRD v2.0)\n\n${sections.join('\n\n')}\n\n---\n⚠️ The above information is for reference only. It may differ from the current state; verify directly if needed.`;
260
+ }
261
+ /**
262
+ * Format date
263
+ */
264
+ function formatDate(timestamp) {
265
+ return new Date(timestamp).toLocaleDateString('en-US', {
266
+ month: 'short',
267
+ day: 'numeric',
268
+ });
269
+ }
270
+ /**
271
+ * Clean up expired memories
272
+ */
273
+ export async function cleanupExpired() {
274
+ try {
275
+ await initDatabase();
276
+ const table = getTable();
277
+ const db = getDb();
278
+ if (!table || !db)
279
+ return 0;
280
+ const now = Date.now();
281
+ const results = await table.search(Array.from({ length: EMBEDDING_DIM }, () => 0)).limit(10000).toArray();
282
+ const expiredIds = results
283
+ .filter((r) => r.expiresAt < PERMANENT_EXPIRY && r.expiresAt < now)
284
+ .map((r) => r.id);
285
+ if (expiredIds.length > 0) {
286
+ // LanceDB doesn't support direct deletion, requires table replacement
287
+ // For now, just logging
288
+ console.log(`[Memory] Found ${expiredIds.length} expired records`);
289
+ }
290
+ return expiredIds.length;
291
+ }
292
+ catch (error) {
293
+ console.error('[Memory] Cleanup error:', error);
294
+ return 0;
295
+ }
296
+ }
297
+ // Background Cognition (PRD Phase 4)
298
+ // Decay and archive thresholds
299
+ const DECAY_INCREMENT = 0.03; // PRD: decay += 0.03 weekly if not accessed
300
+ const ARCHIVE_THRESHOLD = 0.7; // PRD: archive when threshold exceeded
301
+ const CONSOLIDATION_SIMILARITY = 0.85; // Duplicate detection threshold
302
+ /**
303
+ * Apply decay to all memories (Background Worker)
304
+ * PRD: Forgetting is a feature
305
+ */
306
+ export async function applyMemoryDecay(daysSinceLastRun = 7) {
307
+ try {
308
+ await initDatabase();
309
+ const table = getTable();
310
+ const db = getDb();
311
+ if (!table || !db)
312
+ return { decayed: 0, archived: 0 };
313
+ const results = await table.search(Array.from({ length: EMBEDDING_DIM }, () => 0)).limit(10000).toArray();
314
+ const now = Date.now();
315
+ let decayed = 0;
316
+ let archived = 0;
317
+ for (const r of results) {
318
+ if (r.id === 'init')
319
+ continue;
320
+ // Calculate days since last access
321
+ const lastAccess = r.lastAccessed ?? r.createdAt ?? now;
322
+ const daysSinceAccess = (now - lastAccess) / (24 * 60 * 60 * 1000);
323
+ // Apply decay if not accessed recently
324
+ if (daysSinceAccess > 7) {
325
+ const weeksNotAccessed = Math.floor(daysSinceAccess / 7);
326
+ const decayAmount = Math.min(DECAY_INCREMENT * weeksNotAccessed * (daysSinceLastRun / 7), 0.3);
327
+ r.decay = Math.min(1, (r.decay ?? 0) + decayAmount);
328
+ decayed++;
329
+ // Archive if decay exceeds threshold
330
+ if (r.decay >= ARCHIVE_THRESHOLD) {
331
+ r.metadata = JSON.stringify({
332
+ ...JSON.parse(r.metadata || '{}'),
333
+ archived: {
334
+ timestamp: now,
335
+ reason: 'decay_threshold_exceeded',
336
+ finalDecay: r.decay,
337
+ },
338
+ });
339
+ r.importance = 0.05; // Near zero but not deleted
340
+ archived++;
341
+ }
342
+ }
343
+ }
344
+ if (decayed > 0) {
345
+ // Recreate table (normalization applied)
346
+ const tableName = 'cognitive_memory';
347
+ await db.dropTable(tableName);
348
+ const newTable = await db.createTable(tableName, normalizeRecords(results));
349
+ setTable(newTable);
350
+ console.log(`[Memory] Decay applied: ${decayed} memories decayed, ${archived} archived`);
351
+ }
352
+ return { decayed, archived };
353
+ }
354
+ catch (error) {
355
+ console.error('[Memory] Decay error:', error);
356
+ return { decayed: 0, archived: 0 };
357
+ }
358
+ }
359
+ /**
360
+ * Consolidate duplicate/similar memories
361
+ * PRD: Memory Consolidation - merge duplicates
362
+ */
363
+ export async function consolidateMemories() {
364
+ try {
365
+ await initDatabase();
366
+ const table = getTable();
367
+ const db = getDb();
368
+ if (!table || !db)
369
+ return { merged: 0, groups: [] };
370
+ const results = await table.search(Array.from({ length: EMBEDDING_DIM }, () => 0)).limit(10000).toArray();
371
+ const validMemories = results.filter((r) => r.id !== 'init');
372
+ const merged = [];
373
+ const groups = [];
374
+ // Find similar memory groups
375
+ for (let i = 0; i < validMemories.length; i++) {
376
+ const m1 = validMemories[i];
377
+ if (merged.includes(m1.id))
378
+ continue;
379
+ const similarGroup = [m1];
380
+ for (let j = i + 1; j < validMemories.length; j++) {
381
+ const m2 = validMemories[j];
382
+ if (merged.includes(m2.id))
383
+ continue;
384
+ if (m1.type !== m2.type)
385
+ continue;
386
+ // Calculate cosine similarity
387
+ const similarity = cosineSimilarity(m1.vector, m2.vector);
388
+ if (similarity >= CONSOLIDATION_SIMILARITY) {
389
+ similarGroup.push(m2);
390
+ merged.push(m2.id);
391
+ }
392
+ }
393
+ // Merge if group has duplicates
394
+ if (similarGroup.length > 1) {
395
+ // Keep the one with highest importance * confidence
396
+ similarGroup.sort((a, b) => (b.importance ?? 0.5) * (b.confidence ?? 0.5) -
397
+ (a.importance ?? 0.5) * (a.confidence ?? 0.5));
398
+ const kept = similarGroup[0];
399
+ const toMerge = similarGroup.slice(1);
400
+ // Boost kept memory
401
+ kept.confidence = Math.min(1, (kept.confidence ?? 0.7) + 0.05 * toMerge.length);
402
+ kept.revisionCount = (kept.revisionCount ?? 0) + toMerge.length;
403
+ groups.push({
404
+ kept: kept.id,
405
+ merged: toMerge.map((m) => m.id),
406
+ });
407
+ console.log(`[Memory] Consolidated ${toMerge.length} duplicates into ${kept.id}`);
408
+ }
409
+ }
410
+ if (merged.length > 0) {
411
+ // Remove merged memories
412
+ const remainingRecords = results.filter((r) => !merged.includes(r.id));
413
+ // Recreate table (normalization applied)
414
+ const tableName = 'cognitive_memory';
415
+ await db.dropTable(tableName);
416
+ const newTable = await db.createTable(tableName, normalizeRecords(remainingRecords));
417
+ setTable(newTable);
418
+ console.log(`[Memory] Consolidation complete: ${merged.length} memories merged`);
419
+ }
420
+ return { merged: merged.length, groups };
421
+ }
422
+ catch (error) {
423
+ console.error('[Memory] Consolidation error:', error);
424
+ return { merged: 0, groups: [] };
425
+ }
426
+ }
427
+ /**
428
+ * Cosine similarity between two vectors
429
+ */
430
+ function cosineSimilarity(a, b) {
431
+ if (!a || !b || a.length !== b.length)
432
+ return 0;
433
+ let dotProduct = 0;
434
+ let normA = 0;
435
+ let normB = 0;
436
+ for (let i = 0; i < a.length; i++) {
437
+ dotProduct += a[i] * b[i];
438
+ normA += a[i] * a[i];
439
+ normB += b[i] * b[i];
440
+ }
441
+ const denominator = Math.sqrt(normA) * Math.sqrt(normB);
442
+ return denominator === 0 ? 0 : dotProduct / denominator;
443
+ }
444
+ /**
445
+ * Run all background cognitive tasks
446
+ * PRD: recommended interval of 6-12 hours
447
+ */
448
+ export async function runBackgroundCognition() {
449
+ console.log('[Memory] Starting background cognition tasks...');
450
+ // 1. Apply decay
451
+ const decayResult = await applyMemoryDecay();
452
+ // 2. Consolidate duplicates
453
+ const consolidationResult = await consolidateMemories();
454
+ // 3. Detect contradictions (log only, don't auto-resolve)
455
+ const _stats = await getMemoryStats(); // For future expansion
456
+ let contradictionCount = 0;
457
+ // Sample check for contradictions among high-importance beliefs
458
+ const highImportanceMemories = await searchMemory('', {
459
+ types: ['belief', 'strategy', 'constraint'],
460
+ minSimilarity: 0,
461
+ limit: 50,
462
+ });
463
+ for (const memory of highImportanceMemories) {
464
+ const contradictions = await findContradictions(memory.content);
465
+ if (contradictions.length > 0) {
466
+ contradictionCount += contradictions.length;
467
+ }
468
+ }
469
+ console.log('[Memory] Background cognition complete:', {
470
+ decayed: decayResult.decayed,
471
+ archived: decayResult.archived,
472
+ merged: consolidationResult.merged,
473
+ potentialContradictions: contradictionCount,
474
+ });
475
+ return {
476
+ decay: decayResult,
477
+ consolidation: { merged: consolidationResult.merged },
478
+ contradictions: contradictionCount,
479
+ };
480
+ }
481
+ // Default stats object with all memory types
482
+ const DEFAULT_BY_TYPE = {
483
+ // Cognitive types
484
+ belief: 0,
485
+ strategy: 0,
486
+ user_model: 0,
487
+ system_pattern: 0,
488
+ constraint: 0,
489
+ // Legacy types
490
+ decision: 0,
491
+ repomap: 0,
492
+ journal: 0,
493
+ fact: 0,
494
+ };
495
+ /**
496
+ * Memory statistics (PRD v2.0)
497
+ */
498
+ export async function getMemoryStats() {
499
+ try {
500
+ await initDatabase();
501
+ const table = getTable();
502
+ if (!table)
503
+ return { total: 0, byType: { ...DEFAULT_BY_TYPE }, byRepo: {}, avgImportance: 0, avgDecay: 0 };
504
+ const results = await table.search(Array.from({ length: EMBEDDING_DIM }, () => 0)).limit(10000).toArray();
505
+ const byType = { ...DEFAULT_BY_TYPE };
506
+ const byRepo = {};
507
+ let totalImportance = 0;
508
+ let totalDecay = 0;
509
+ let count = 0;
510
+ for (const r of results) {
511
+ if (r.id === 'init')
512
+ continue;
513
+ if (byType[r.type] !== undefined) {
514
+ byType[r.type]++;
515
+ }
516
+ byRepo[r.repo] = (byRepo[r.repo] || 0) + 1;
517
+ totalImportance += r.importance ?? 0.5;
518
+ totalDecay += r.decay ?? 0;
519
+ count++;
520
+ }
521
+ return {
522
+ total: count,
523
+ byType,
524
+ byRepo,
525
+ avgImportance: count > 0 ? totalImportance / count : 0,
526
+ avgDecay: count > 0 ? totalDecay / count : 0,
527
+ };
528
+ }
529
+ catch (error) {
530
+ console.error('[Memory] Stats error:', error);
531
+ return { total: 0, byType: { ...DEFAULT_BY_TYPE }, byRepo: {}, avgImportance: 0, avgDecay: 0 };
532
+ }
533
+ }
534
+ // Legacy compatibility functions (existing code support)
535
+ /**
536
+ * Save conversation (legacy compatible)
537
+ */
538
+ export async function saveConversation(channelId, userId, userName, content, response) {
539
+ await logWork('chat', // Unified repo for both Discord and Dashboard
540
+ `Chat with ${userName}`, `Q: ${content}\n\nA: ${response}`, undefined, channelId);
541
+ }
542
+ /**
543
+ * Get recent conversations (sorted by createdAt)
544
+ * - Chronological lookup, not semantic search
545
+ * - channelId is stored in the derivedFrom field (legacy: metadata.issueRef)
546
+ */
547
+ export async function getRecentConversations(channelId, limit = 10) {
548
+ try {
549
+ await initDatabase();
550
+ const table = getTable();
551
+ if (!table)
552
+ return [];
553
+ // Filter by journal type + chat repo, then sort by createdAt descending
554
+ const results = await table
555
+ .search(Array.from({ length: EMBEDDING_DIM }, () => 0)) // dummy vector for full scan
556
+ .limit(1000) // Sufficiently large number
557
+ .toArray();
558
+ // Filter: journal + chat (channelId matching is loose for legacy data compat)
559
+ const filtered = results
560
+ .filter((r) => {
561
+ if (r.type !== 'journal' || (r.repo !== 'chat' && r.repo !== 'discord'))
562
+ return false; // Support legacy 'discord' repo
563
+ // channelId matching: derivedFrom or metadata.issueRef
564
+ if (!channelId)
565
+ return true; // All
566
+ if (r.derivedFrom === channelId)
567
+ return true;
568
+ if (r.derivedFrom === 'unknown')
569
+ return true; // Include legacy data
570
+ // metadata.issueRef fallback
571
+ try {
572
+ const meta = typeof r.metadata === 'string' ? JSON.parse(r.metadata) : r.metadata;
573
+ if (meta?.issueRef === channelId)
574
+ return true;
575
+ }
576
+ catch { /* ignore */ }
577
+ return false;
578
+ })
579
+ .sort((a, b) => (b.createdAt || 0) - (a.createdAt || 0)) // Newest first
580
+ .slice(0, limit);
581
+ // Convert to MemorySearchResult format
582
+ return filtered.map((r) => ({
583
+ id: r.id,
584
+ type: r.type,
585
+ repo: r.repo,
586
+ title: r.title,
587
+ content: r.content,
588
+ metadata: typeof r.metadata === 'string' ? JSON.parse(r.metadata || '{}') : r.metadata,
589
+ trust: r.trust,
590
+ createdAt: r.createdAt,
591
+ score: 1.0, // Score is meaningless for chronological lookup
592
+ freshness: calculateFreshness(r.createdAt),
593
+ importance: r.importance,
594
+ confidence: r.confidence,
595
+ stability: r.stability,
596
+ revisionCount: r.revisionCount,
597
+ decay: r.decay,
598
+ similarityScore: 1.0,
599
+ }));
600
+ }
601
+ catch (error) {
602
+ console.error('[Memory] getRecentConversations error:', error);
603
+ return [];
604
+ }
605
+ }
606
+ //# sourceMappingURL=memoryOps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memoryOps.js","sourceRoot":"","sources":["../../src/memory/memoryOps.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { TaskItem } from './decisionEngine.js';
2
+ export interface ConflictGroup {
3
+ tasks: TaskItem[];
4
+ sharedModules: string[];
5
+ }
6
+ export interface ConflictDetectionResult {
7
+ safe: TaskItem[];
8
+ conflictGroups: ConflictGroup[];
9
+ }
10
+ /**
11
+ * Knowledge Graph를 사용하여 태스크 간 파일 영향 범위 겹침을 감지.
12
+ * 겹치는 태스크를 ConflictGroup으로 묶고, 각 그룹에서 최고 우선순위만 safe로 반환.
13
+ */
14
+ export declare function detectFileConflicts(tasks: TaskItem[], projectPath: string): Promise<ConflictDetectionResult>;
15
+ //# sourceMappingURL=conflictDetector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conflictDetector.d.ts","sourceRoot":"","sources":["../../src/orchestration/conflictDetector.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAMpD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,cAAc,EAAE,aAAa,EAAE,CAAC;CACjC;AA0CD;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,QAAQ,EAAE,EACjB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,uBAAuB,CAAC,CAmGlC"}