universal-agent-protocol 0.5.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 (415) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +462 -0
  3. package/dist/analyzers/index.d.ts +3 -0
  4. package/dist/analyzers/index.d.ts.map +1 -0
  5. package/dist/analyzers/index.js +656 -0
  6. package/dist/analyzers/index.js.map +1 -0
  7. package/dist/bin/cli.d.ts +3 -0
  8. package/dist/bin/cli.d.ts.map +1 -0
  9. package/dist/bin/cli.js +506 -0
  10. package/dist/bin/cli.js.map +1 -0
  11. package/dist/bin/tool-calls.d.ts +3 -0
  12. package/dist/bin/tool-calls.d.ts.map +1 -0
  13. package/dist/bin/tool-calls.js +4 -0
  14. package/dist/bin/tool-calls.js.map +1 -0
  15. package/dist/cli/agent.d.ts +20 -0
  16. package/dist/cli/agent.d.ts.map +1 -0
  17. package/dist/cli/agent.js +434 -0
  18. package/dist/cli/agent.js.map +1 -0
  19. package/dist/cli/analyze.d.ts +7 -0
  20. package/dist/cli/analyze.d.ts.map +1 -0
  21. package/dist/cli/analyze.js +103 -0
  22. package/dist/cli/analyze.js.map +1 -0
  23. package/dist/cli/coord.d.ts +7 -0
  24. package/dist/cli/coord.d.ts.map +1 -0
  25. package/dist/cli/coord.js +138 -0
  26. package/dist/cli/coord.js.map +1 -0
  27. package/dist/cli/dashboard.d.ts +8 -0
  28. package/dist/cli/dashboard.d.ts.map +1 -0
  29. package/dist/cli/dashboard.js +704 -0
  30. package/dist/cli/dashboard.js.map +1 -0
  31. package/dist/cli/deploy.d.ts +19 -0
  32. package/dist/cli/deploy.d.ts.map +1 -0
  33. package/dist/cli/deploy.js +267 -0
  34. package/dist/cli/deploy.js.map +1 -0
  35. package/dist/cli/droids.d.ts +9 -0
  36. package/dist/cli/droids.d.ts.map +1 -0
  37. package/dist/cli/droids.js +227 -0
  38. package/dist/cli/droids.js.map +1 -0
  39. package/dist/cli/generate.d.ts +17 -0
  40. package/dist/cli/generate.d.ts.map +1 -0
  41. package/dist/cli/generate.js +432 -0
  42. package/dist/cli/generate.js.map +1 -0
  43. package/dist/cli/hooks.d.ts +9 -0
  44. package/dist/cli/hooks.d.ts.map +1 -0
  45. package/dist/cli/hooks.js +374 -0
  46. package/dist/cli/hooks.js.map +1 -0
  47. package/dist/cli/init.d.ts +11 -0
  48. package/dist/cli/init.d.ts.map +1 -0
  49. package/dist/cli/init.js +316 -0
  50. package/dist/cli/init.js.map +1 -0
  51. package/dist/cli/mcp-router.d.ts +16 -0
  52. package/dist/cli/mcp-router.d.ts.map +1 -0
  53. package/dist/cli/mcp-router.js +143 -0
  54. package/dist/cli/mcp-router.js.map +1 -0
  55. package/dist/cli/memory.d.ts +24 -0
  56. package/dist/cli/memory.d.ts.map +1 -0
  57. package/dist/cli/memory.js +877 -0
  58. package/dist/cli/memory.js.map +1 -0
  59. package/dist/cli/model.d.ts +15 -0
  60. package/dist/cli/model.d.ts.map +1 -0
  61. package/dist/cli/model.js +270 -0
  62. package/dist/cli/model.js.map +1 -0
  63. package/dist/cli/patterns.d.ts +26 -0
  64. package/dist/cli/patterns.d.ts.map +1 -0
  65. package/dist/cli/patterns.js +587 -0
  66. package/dist/cli/patterns.js.map +1 -0
  67. package/dist/cli/setup-mcp-router.d.ts +8 -0
  68. package/dist/cli/setup-mcp-router.d.ts.map +1 -0
  69. package/dist/cli/setup-mcp-router.js +163 -0
  70. package/dist/cli/setup-mcp-router.js.map +1 -0
  71. package/dist/cli/setup.d.ts +13 -0
  72. package/dist/cli/setup.d.ts.map +1 -0
  73. package/dist/cli/setup.js +146 -0
  74. package/dist/cli/setup.js.map +1 -0
  75. package/dist/cli/sync.d.ts +7 -0
  76. package/dist/cli/sync.d.ts.map +1 -0
  77. package/dist/cli/sync.js +26 -0
  78. package/dist/cli/sync.js.map +1 -0
  79. package/dist/cli/task.d.ts +33 -0
  80. package/dist/cli/task.d.ts.map +1 -0
  81. package/dist/cli/task.js +616 -0
  82. package/dist/cli/task.js.map +1 -0
  83. package/dist/cli/tool-calls.d.ts +8 -0
  84. package/dist/cli/tool-calls.d.ts.map +1 -0
  85. package/dist/cli/tool-calls.js +239 -0
  86. package/dist/cli/tool-calls.js.map +1 -0
  87. package/dist/cli/update.d.ts +10 -0
  88. package/dist/cli/update.d.ts.map +1 -0
  89. package/dist/cli/update.js +300 -0
  90. package/dist/cli/update.js.map +1 -0
  91. package/dist/cli/visualize.d.ts +77 -0
  92. package/dist/cli/visualize.d.ts.map +1 -0
  93. package/dist/cli/visualize.js +287 -0
  94. package/dist/cli/visualize.js.map +1 -0
  95. package/dist/cli/worktree.d.ts +9 -0
  96. package/dist/cli/worktree.d.ts.map +1 -0
  97. package/dist/cli/worktree.js +175 -0
  98. package/dist/cli/worktree.js.map +1 -0
  99. package/dist/coordination/capability-router.d.ts +79 -0
  100. package/dist/coordination/capability-router.d.ts.map +1 -0
  101. package/dist/coordination/capability-router.js +324 -0
  102. package/dist/coordination/capability-router.js.map +1 -0
  103. package/dist/coordination/database.d.ts +13 -0
  104. package/dist/coordination/database.d.ts.map +1 -0
  105. package/dist/coordination/database.js +131 -0
  106. package/dist/coordination/database.js.map +1 -0
  107. package/dist/coordination/deploy-batcher.d.ts +101 -0
  108. package/dist/coordination/deploy-batcher.d.ts.map +1 -0
  109. package/dist/coordination/deploy-batcher.js +565 -0
  110. package/dist/coordination/deploy-batcher.js.map +1 -0
  111. package/dist/coordination/index.d.ts +5 -0
  112. package/dist/coordination/index.d.ts.map +1 -0
  113. package/dist/coordination/index.js +5 -0
  114. package/dist/coordination/index.js.map +1 -0
  115. package/dist/coordination/service.d.ts +81 -0
  116. package/dist/coordination/service.d.ts.map +1 -0
  117. package/dist/coordination/service.js +603 -0
  118. package/dist/coordination/service.js.map +1 -0
  119. package/dist/generators/claude-md.d.ts +3 -0
  120. package/dist/generators/claude-md.d.ts.map +1 -0
  121. package/dist/generators/claude-md.js +977 -0
  122. package/dist/generators/claude-md.js.map +1 -0
  123. package/dist/generators/template-loader.d.ts +105 -0
  124. package/dist/generators/template-loader.d.ts.map +1 -0
  125. package/dist/generators/template-loader.js +291 -0
  126. package/dist/generators/template-loader.js.map +1 -0
  127. package/dist/index.d.ts +47 -0
  128. package/dist/index.d.ts.map +1 -0
  129. package/dist/index.js +59 -0
  130. package/dist/index.js.map +1 -0
  131. package/dist/mcp-router/config/parser.d.ts +9 -0
  132. package/dist/mcp-router/config/parser.d.ts.map +1 -0
  133. package/dist/mcp-router/config/parser.js +174 -0
  134. package/dist/mcp-router/config/parser.js.map +1 -0
  135. package/dist/mcp-router/executor/client.d.ts +31 -0
  136. package/dist/mcp-router/executor/client.d.ts.map +1 -0
  137. package/dist/mcp-router/executor/client.js +187 -0
  138. package/dist/mcp-router/executor/client.js.map +1 -0
  139. package/dist/mcp-router/index.d.ts +22 -0
  140. package/dist/mcp-router/index.d.ts.map +1 -0
  141. package/dist/mcp-router/index.js +18 -0
  142. package/dist/mcp-router/index.js.map +1 -0
  143. package/dist/mcp-router/output-compressor.d.ts +26 -0
  144. package/dist/mcp-router/output-compressor.d.ts.map +1 -0
  145. package/dist/mcp-router/output-compressor.js +236 -0
  146. package/dist/mcp-router/output-compressor.js.map +1 -0
  147. package/dist/mcp-router/search/fuzzy.d.ts +26 -0
  148. package/dist/mcp-router/search/fuzzy.d.ts.map +1 -0
  149. package/dist/mcp-router/search/fuzzy.js +94 -0
  150. package/dist/mcp-router/search/fuzzy.js.map +1 -0
  151. package/dist/mcp-router/server.d.ts +50 -0
  152. package/dist/mcp-router/server.d.ts.map +1 -0
  153. package/dist/mcp-router/server.js +229 -0
  154. package/dist/mcp-router/server.js.map +1 -0
  155. package/dist/mcp-router/session-stats.d.ts +37 -0
  156. package/dist/mcp-router/session-stats.d.ts.map +1 -0
  157. package/dist/mcp-router/session-stats.js +56 -0
  158. package/dist/mcp-router/session-stats.js.map +1 -0
  159. package/dist/mcp-router/tools/discover.d.ts +37 -0
  160. package/dist/mcp-router/tools/discover.d.ts.map +1 -0
  161. package/dist/mcp-router/tools/discover.js +65 -0
  162. package/dist/mcp-router/tools/discover.js.map +1 -0
  163. package/dist/mcp-router/tools/execute.d.ts +43 -0
  164. package/dist/mcp-router/tools/execute.d.ts.map +1 -0
  165. package/dist/mcp-router/tools/execute.js +103 -0
  166. package/dist/mcp-router/tools/execute.js.map +1 -0
  167. package/dist/mcp-router/types.d.ts +62 -0
  168. package/dist/mcp-router/types.d.ts.map +1 -0
  169. package/dist/mcp-router/types.js +6 -0
  170. package/dist/mcp-router/types.js.map +1 -0
  171. package/dist/memory/adaptive-context.d.ts +146 -0
  172. package/dist/memory/adaptive-context.d.ts.map +1 -0
  173. package/dist/memory/adaptive-context.js +1022 -0
  174. package/dist/memory/adaptive-context.js.map +1 -0
  175. package/dist/memory/agent-scoped-memory.d.ts +67 -0
  176. package/dist/memory/agent-scoped-memory.d.ts.map +1 -0
  177. package/dist/memory/agent-scoped-memory.js +126 -0
  178. package/dist/memory/agent-scoped-memory.js.map +1 -0
  179. package/dist/memory/backends/base.d.ts +18 -0
  180. package/dist/memory/backends/base.d.ts.map +1 -0
  181. package/dist/memory/backends/base.js +2 -0
  182. package/dist/memory/backends/base.js.map +1 -0
  183. package/dist/memory/backends/factory.d.ts +4 -0
  184. package/dist/memory/backends/factory.d.ts.map +1 -0
  185. package/dist/memory/backends/factory.js +53 -0
  186. package/dist/memory/backends/factory.js.map +1 -0
  187. package/dist/memory/backends/github.d.ts +22 -0
  188. package/dist/memory/backends/github.d.ts.map +1 -0
  189. package/dist/memory/backends/github.js +118 -0
  190. package/dist/memory/backends/github.js.map +1 -0
  191. package/dist/memory/backends/qdrant-cloud.d.ts +32 -0
  192. package/dist/memory/backends/qdrant-cloud.d.ts.map +1 -0
  193. package/dist/memory/backends/qdrant-cloud.js +168 -0
  194. package/dist/memory/backends/qdrant-cloud.js.map +1 -0
  195. package/dist/memory/context-compressor.d.ts +74 -0
  196. package/dist/memory/context-compressor.d.ts.map +1 -0
  197. package/dist/memory/context-compressor.js +289 -0
  198. package/dist/memory/context-compressor.js.map +1 -0
  199. package/dist/memory/correction-propagator.d.ts +44 -0
  200. package/dist/memory/correction-propagator.d.ts.map +1 -0
  201. package/dist/memory/correction-propagator.js +156 -0
  202. package/dist/memory/correction-propagator.js.map +1 -0
  203. package/dist/memory/daily-log.d.ts +67 -0
  204. package/dist/memory/daily-log.d.ts.map +1 -0
  205. package/dist/memory/daily-log.js +143 -0
  206. package/dist/memory/daily-log.js.map +1 -0
  207. package/dist/memory/dynamic-retrieval.d.ts +110 -0
  208. package/dist/memory/dynamic-retrieval.d.ts.map +1 -0
  209. package/dist/memory/dynamic-retrieval.js +688 -0
  210. package/dist/memory/dynamic-retrieval.js.map +1 -0
  211. package/dist/memory/embeddings.d.ts +116 -0
  212. package/dist/memory/embeddings.d.ts.map +1 -0
  213. package/dist/memory/embeddings.js +461 -0
  214. package/dist/memory/embeddings.js.map +1 -0
  215. package/dist/memory/hierarchical-memory.d.ts +141 -0
  216. package/dist/memory/hierarchical-memory.d.ts.map +1 -0
  217. package/dist/memory/hierarchical-memory.js +477 -0
  218. package/dist/memory/hierarchical-memory.js.map +1 -0
  219. package/dist/memory/memory-consolidator.d.ts +124 -0
  220. package/dist/memory/memory-consolidator.d.ts.map +1 -0
  221. package/dist/memory/memory-consolidator.js +514 -0
  222. package/dist/memory/memory-consolidator.js.map +1 -0
  223. package/dist/memory/memory-maintenance.d.ts +39 -0
  224. package/dist/memory/memory-maintenance.d.ts.map +1 -0
  225. package/dist/memory/memory-maintenance.js +305 -0
  226. package/dist/memory/memory-maintenance.js.map +1 -0
  227. package/dist/memory/model-router.d.ts +102 -0
  228. package/dist/memory/model-router.d.ts.map +1 -0
  229. package/dist/memory/model-router.js +448 -0
  230. package/dist/memory/model-router.js.map +1 -0
  231. package/dist/memory/multi-view-memory.d.ts +134 -0
  232. package/dist/memory/multi-view-memory.d.ts.map +1 -0
  233. package/dist/memory/multi-view-memory.js +420 -0
  234. package/dist/memory/multi-view-memory.js.map +1 -0
  235. package/dist/memory/prepopulate.d.ts +76 -0
  236. package/dist/memory/prepopulate.d.ts.map +1 -0
  237. package/dist/memory/prepopulate.js +815 -0
  238. package/dist/memory/prepopulate.js.map +1 -0
  239. package/dist/memory/semantic-compression.d.ts +77 -0
  240. package/dist/memory/semantic-compression.d.ts.map +1 -0
  241. package/dist/memory/semantic-compression.js +348 -0
  242. package/dist/memory/semantic-compression.js.map +1 -0
  243. package/dist/memory/serverless-qdrant.d.ts +102 -0
  244. package/dist/memory/serverless-qdrant.d.ts.map +1 -0
  245. package/dist/memory/serverless-qdrant.js +369 -0
  246. package/dist/memory/serverless-qdrant.js.map +1 -0
  247. package/dist/memory/short-term/factory.d.ts +26 -0
  248. package/dist/memory/short-term/factory.d.ts.map +1 -0
  249. package/dist/memory/short-term/factory.js +28 -0
  250. package/dist/memory/short-term/factory.js.map +1 -0
  251. package/dist/memory/short-term/indexeddb.d.ts +25 -0
  252. package/dist/memory/short-term/indexeddb.d.ts.map +1 -0
  253. package/dist/memory/short-term/indexeddb.js +64 -0
  254. package/dist/memory/short-term/indexeddb.js.map +1 -0
  255. package/dist/memory/short-term/schema.d.ts +6 -0
  256. package/dist/memory/short-term/schema.d.ts.map +1 -0
  257. package/dist/memory/short-term/schema.js +119 -0
  258. package/dist/memory/short-term/schema.js.map +1 -0
  259. package/dist/memory/short-term/sqlite.d.ts +50 -0
  260. package/dist/memory/short-term/sqlite.d.ts.map +1 -0
  261. package/dist/memory/short-term/sqlite.js +221 -0
  262. package/dist/memory/short-term/sqlite.js.map +1 -0
  263. package/dist/memory/speculative-cache.d.ts +111 -0
  264. package/dist/memory/speculative-cache.d.ts.map +1 -0
  265. package/dist/memory/speculative-cache.js +409 -0
  266. package/dist/memory/speculative-cache.js.map +1 -0
  267. package/dist/memory/task-classifier.d.ts +34 -0
  268. package/dist/memory/task-classifier.d.ts.map +1 -0
  269. package/dist/memory/task-classifier.js +300 -0
  270. package/dist/memory/task-classifier.js.map +1 -0
  271. package/dist/memory/terminal-bench-knowledge.d.ts +48 -0
  272. package/dist/memory/terminal-bench-knowledge.d.ts.map +1 -0
  273. package/dist/memory/terminal-bench-knowledge.js +399 -0
  274. package/dist/memory/terminal-bench-knowledge.js.map +1 -0
  275. package/dist/memory/write-gate.d.ts +39 -0
  276. package/dist/memory/write-gate.d.ts.map +1 -0
  277. package/dist/memory/write-gate.js +190 -0
  278. package/dist/memory/write-gate.js.map +1 -0
  279. package/dist/models/executor.d.ts +130 -0
  280. package/dist/models/executor.d.ts.map +1 -0
  281. package/dist/models/executor.js +383 -0
  282. package/dist/models/executor.js.map +1 -0
  283. package/dist/models/index.d.ts +15 -0
  284. package/dist/models/index.d.ts.map +1 -0
  285. package/dist/models/index.js +17 -0
  286. package/dist/models/index.js.map +1 -0
  287. package/dist/models/planner.d.ts +71 -0
  288. package/dist/models/planner.d.ts.map +1 -0
  289. package/dist/models/planner.js +344 -0
  290. package/dist/models/planner.js.map +1 -0
  291. package/dist/models/router.d.ts +75 -0
  292. package/dist/models/router.d.ts.map +1 -0
  293. package/dist/models/router.js +344 -0
  294. package/dist/models/router.js.map +1 -0
  295. package/dist/models/types.d.ts +370 -0
  296. package/dist/models/types.d.ts.map +1 -0
  297. package/dist/models/types.js +181 -0
  298. package/dist/models/types.js.map +1 -0
  299. package/dist/tasks/coordination.d.ts +74 -0
  300. package/dist/tasks/coordination.d.ts.map +1 -0
  301. package/dist/tasks/coordination.js +237 -0
  302. package/dist/tasks/coordination.js.map +1 -0
  303. package/dist/tasks/database.d.ts +14 -0
  304. package/dist/tasks/database.d.ts.map +1 -0
  305. package/dist/tasks/database.js +128 -0
  306. package/dist/tasks/database.js.map +1 -0
  307. package/dist/tasks/index.d.ts +5 -0
  308. package/dist/tasks/index.d.ts.map +1 -0
  309. package/dist/tasks/index.js +5 -0
  310. package/dist/tasks/index.js.map +1 -0
  311. package/dist/tasks/service.d.ts +39 -0
  312. package/dist/tasks/service.d.ts.map +1 -0
  313. package/dist/tasks/service.js +582 -0
  314. package/dist/tasks/service.js.map +1 -0
  315. package/dist/tasks/types.d.ts +224 -0
  316. package/dist/tasks/types.d.ts.map +1 -0
  317. package/dist/tasks/types.js +64 -0
  318. package/dist/tasks/types.js.map +1 -0
  319. package/dist/types/analysis.d.ts +82 -0
  320. package/dist/types/analysis.d.ts.map +1 -0
  321. package/dist/types/analysis.js +2 -0
  322. package/dist/types/analysis.js.map +1 -0
  323. package/dist/types/config.d.ts +3023 -0
  324. package/dist/types/config.d.ts.map +1 -0
  325. package/dist/types/config.js +292 -0
  326. package/dist/types/config.js.map +1 -0
  327. package/dist/types/coordination.d.ts +240 -0
  328. package/dist/types/coordination.d.ts.map +1 -0
  329. package/dist/types/coordination.js +43 -0
  330. package/dist/types/coordination.js.map +1 -0
  331. package/dist/types/index.d.ts +4 -0
  332. package/dist/types/index.d.ts.map +1 -0
  333. package/dist/types/index.js +4 -0
  334. package/dist/types/index.js.map +1 -0
  335. package/dist/utils/calculate-average.d.ts +15 -0
  336. package/dist/utils/calculate-average.d.ts.map +1 -0
  337. package/dist/utils/calculate-average.js +21 -0
  338. package/dist/utils/calculate-average.js.map +1 -0
  339. package/dist/utils/config-manager.d.ts +30 -0
  340. package/dist/utils/config-manager.d.ts.map +1 -0
  341. package/dist/utils/config-manager.js +41 -0
  342. package/dist/utils/config-manager.js.map +1 -0
  343. package/dist/utils/dijkstra.d.ts +17 -0
  344. package/dist/utils/dijkstra.d.ts.map +1 -0
  345. package/dist/utils/dijkstra.js +91 -0
  346. package/dist/utils/dijkstra.js.map +1 -0
  347. package/dist/utils/fetch-with-retry.d.ts +5 -0
  348. package/dist/utils/fetch-with-retry.d.ts.map +1 -0
  349. package/dist/utils/fetch-with-retry.js +61 -0
  350. package/dist/utils/fetch-with-retry.js.map +1 -0
  351. package/dist/utils/merge-claude-md.d.ts +28 -0
  352. package/dist/utils/merge-claude-md.d.ts.map +1 -0
  353. package/dist/utils/merge-claude-md.js +342 -0
  354. package/dist/utils/merge-claude-md.js.map +1 -0
  355. package/dist/utils/order-processor-refactored.d.ts +126 -0
  356. package/dist/utils/order-processor-refactored.d.ts.map +1 -0
  357. package/dist/utils/order-processor-refactored.js +165 -0
  358. package/dist/utils/order-processor-refactored.js.map +1 -0
  359. package/dist/utils/order-processor-strategy.d.ts +72 -0
  360. package/dist/utils/order-processor-strategy.d.ts.map +1 -0
  361. package/dist/utils/order-processor-strategy.js +158 -0
  362. package/dist/utils/order-processor-strategy.js.map +1 -0
  363. package/dist/utils/order-processor.d.ts +242 -0
  364. package/dist/utils/order-processor.d.ts.map +1 -0
  365. package/dist/utils/order-processor.js +370 -0
  366. package/dist/utils/order-processor.js.map +1 -0
  367. package/dist/utils/rate-limiter-simple.d.ts +58 -0
  368. package/dist/utils/rate-limiter-simple.d.ts.map +1 -0
  369. package/dist/utils/rate-limiter-simple.js +100 -0
  370. package/dist/utils/rate-limiter-simple.js.map +1 -0
  371. package/dist/utils/rate-limiter.d.ts +62 -0
  372. package/dist/utils/rate-limiter.d.ts.map +1 -0
  373. package/dist/utils/rate-limiter.js +150 -0
  374. package/dist/utils/rate-limiter.js.map +1 -0
  375. package/dist/utils/string-similarity.d.ts +37 -0
  376. package/dist/utils/string-similarity.d.ts.map +1 -0
  377. package/dist/utils/string-similarity.js +114 -0
  378. package/dist/utils/string-similarity.js.map +1 -0
  379. package/dist/utils/validate-json.d.ts +51 -0
  380. package/dist/utils/validate-json.d.ts.map +1 -0
  381. package/dist/utils/validate-json.js +99 -0
  382. package/dist/utils/validate-json.js.map +1 -0
  383. package/package.json +96 -0
  384. package/templates/CLAUDE.template.md +11 -0
  385. package/templates/CLAUDE_ARCHITECTURE.template.md +103 -0
  386. package/templates/CLAUDE_CODING.template.md +125 -0
  387. package/templates/CLAUDE_DROIDS.template.md +109 -0
  388. package/templates/CLAUDE_MEMORY.template.md +130 -0
  389. package/templates/CLAUDE_WORKFLOWS.template.md +136 -0
  390. package/templates/PROJECT.template.md +209 -0
  391. package/templates/SCHEMA.md +57 -0
  392. package/templates/archive/CLAUDE.template.root-v6.md +762 -0
  393. package/templates/archive/CLAUDE.template.v6.md +762 -0
  394. package/templates/hooks/pre-compact.sh +68 -0
  395. package/templates/hooks/session-start.sh +106 -0
  396. package/tools/agents/README.md +224 -0
  397. package/tools/agents/UAP/README.md +351 -0
  398. package/tools/agents/UAP/__init__.py +9 -0
  399. package/tools/agents/UAP/cli.py +675 -0
  400. package/tools/agents/UAP/version.py +2 -0
  401. package/tools/agents/benchmarks/benchmark_memory_systems.py +637 -0
  402. package/tools/agents/benchmarks/results/benchmark_20260106_064817.json +170 -0
  403. package/tools/agents/benchmarks/results/benchmark_20260106_064817.md +51 -0
  404. package/tools/agents/config/chat_template.jinja +172 -0
  405. package/tools/agents/docker-compose.qdrant.yml +24 -0
  406. package/tools/agents/migrations/apply.py +256 -0
  407. package/tools/agents/scripts/fix_qwen_chat_template.py +314 -0
  408. package/tools/agents/scripts/init_qdrant.py +151 -0
  409. package/tools/agents/scripts/memory_migration.py +518 -0
  410. package/tools/agents/scripts/migrate_memory_to_qdrant.py +113 -0
  411. package/tools/agents/scripts/query_memory.py +189 -0
  412. package/tools/agents/scripts/qwen_tool_call_test.py +419 -0
  413. package/tools/agents/scripts/qwen_tool_call_wrapper.py +517 -0
  414. package/tools/agents/scripts/start-services.sh +96 -0
  415. package/tools/agents/tests/test_uap_compliance.py +257 -0
@@ -0,0 +1,324 @@
1
+ /**
2
+ * Default capability mappings for UAP droids and skills.
3
+ */
4
+ export const DEFAULT_CAPABILITY_MAPPINGS = [
5
+ {
6
+ capability: 'typescript',
7
+ droids: ['typescript-node-expert', 'javascript-pro'],
8
+ skills: ['typescript-node-expert'],
9
+ filePatterns: ['*.ts', '*.tsx', '*.mts', '*.cts'],
10
+ taskTypes: ['task', 'feature', 'bug'],
11
+ priority: 10,
12
+ },
13
+ {
14
+ capability: 'javascript',
15
+ droids: ['javascript-pro'],
16
+ skills: [],
17
+ filePatterns: ['*.js', '*.jsx', '*.mjs', '*.cjs'],
18
+ taskTypes: ['task', 'feature', 'bug'],
19
+ priority: 8,
20
+ },
21
+ {
22
+ capability: 'cli',
23
+ droids: ['cli-design-expert'],
24
+ skills: ['cli-design-expert'],
25
+ filePatterns: ['**/cli/**', '**/bin/**', '**/commands/**'],
26
+ taskTypes: ['task', 'feature'],
27
+ priority: 9,
28
+ },
29
+ {
30
+ capability: 'security',
31
+ droids: ['security-auditor', 'security-code-reviewer'],
32
+ skills: [],
33
+ filePatterns: ['**/auth/**', '**/security/**', '*.key', '*.pem'],
34
+ taskTypes: ['bug', 'task'],
35
+ priority: 10,
36
+ },
37
+ {
38
+ capability: 'performance',
39
+ droids: ['performance-optimizer', 'performance-reviewer'],
40
+ skills: [],
41
+ filePatterns: ['**/perf/**', '**/benchmark/**'],
42
+ taskTypes: ['task', 'chore'],
43
+ priority: 8,
44
+ },
45
+ {
46
+ capability: 'documentation',
47
+ droids: ['documentation-expert', 'documentation-accuracy-reviewer'],
48
+ skills: [],
49
+ filePatterns: ['*.md', '**/docs/**', 'README*', 'CHANGELOG*'],
50
+ taskTypes: ['task', 'chore'],
51
+ priority: 6,
52
+ },
53
+ {
54
+ capability: 'code-review',
55
+ droids: ['code-quality-guardian', 'code-quality-reviewer'],
56
+ skills: [],
57
+ filePatterns: ['*'],
58
+ taskTypes: ['task', 'chore'],
59
+ priority: 7,
60
+ },
61
+ {
62
+ capability: 'testing',
63
+ droids: ['test-coverage-reviewer', 'test-plan-writer'],
64
+ skills: [],
65
+ filePatterns: ['*.test.*', '*.spec.*', '**/tests/**', '**/__tests__/**'],
66
+ taskTypes: ['task', 'bug'],
67
+ priority: 8,
68
+ },
69
+ {
70
+ capability: 'infrastructure',
71
+ droids: [],
72
+ skills: [],
73
+ filePatterns: ['*.tf', '**/terraform/**', '**/k8s/**', '**/helm/**', 'Dockerfile*', 'docker-compose*'],
74
+ taskTypes: ['task', 'chore'],
75
+ priority: 9,
76
+ },
77
+ {
78
+ capability: 'python',
79
+ droids: ['python-pro'],
80
+ skills: [],
81
+ filePatterns: ['*.py', '**/python/**'],
82
+ taskTypes: ['task', 'feature', 'bug'],
83
+ priority: 10,
84
+ },
85
+ {
86
+ capability: 'rust',
87
+ droids: ['rust-pro'],
88
+ skills: [],
89
+ filePatterns: ['*.rs', 'Cargo.toml'],
90
+ taskTypes: ['task', 'feature', 'bug'],
91
+ priority: 10,
92
+ },
93
+ {
94
+ capability: 'go',
95
+ droids: ['go-pro'],
96
+ skills: [],
97
+ filePatterns: ['*.go', 'go.mod', 'go.sum'],
98
+ taskTypes: ['task', 'feature', 'bug'],
99
+ priority: 10,
100
+ },
101
+ ];
102
+ /**
103
+ * Capability-based router for intelligent task and agent routing.
104
+ */
105
+ export class CapabilityRouter {
106
+ mappings;
107
+ constructor(customMappings) {
108
+ this.mappings = customMappings || DEFAULT_CAPABILITY_MAPPINGS;
109
+ }
110
+ /**
111
+ * Route a task to the best droids/skills based on task content and affected files.
112
+ */
113
+ routeTask(task, affectedFiles) {
114
+ const matchedCapabilities = [];
115
+ const droidScores = new Map();
116
+ const skillScores = new Map();
117
+ const reasons = [];
118
+ // Match by file patterns
119
+ if (affectedFiles && affectedFiles.length > 0) {
120
+ for (const mapping of this.mappings) {
121
+ for (const pattern of mapping.filePatterns) {
122
+ const matches = this.matchesPattern(affectedFiles, pattern);
123
+ if (matches.length > 0) {
124
+ matchedCapabilities.push(mapping.capability);
125
+ for (const droid of mapping.droids) {
126
+ const current = droidScores.get(droid) || 0;
127
+ droidScores.set(droid, current + mapping.priority);
128
+ }
129
+ for (const skill of mapping.skills) {
130
+ const current = skillScores.get(skill) || 0;
131
+ skillScores.set(skill, current + mapping.priority);
132
+ }
133
+ reasons.push(`Files ${matches.slice(0, 2).join(', ')} match ${mapping.capability}`);
134
+ break; // Only count each mapping once per task
135
+ }
136
+ }
137
+ }
138
+ }
139
+ // Match by task type
140
+ for (const mapping of this.mappings) {
141
+ if (mapping.taskTypes.includes(task.type)) {
142
+ // Boost score slightly for type match
143
+ for (const droid of mapping.droids) {
144
+ const current = droidScores.get(droid) || 0;
145
+ droidScores.set(droid, current + 1);
146
+ }
147
+ }
148
+ }
149
+ // Match by task title/labels keywords
150
+ const keywords = this.extractKeywords(task);
151
+ for (const mapping of this.mappings) {
152
+ if (keywords.some(kw => kw.includes(mapping.capability) || mapping.capability.includes(kw))) {
153
+ if (!matchedCapabilities.includes(mapping.capability)) {
154
+ matchedCapabilities.push(mapping.capability);
155
+ }
156
+ for (const droid of mapping.droids) {
157
+ const current = droidScores.get(droid) || 0;
158
+ droidScores.set(droid, current + mapping.priority / 2);
159
+ }
160
+ reasons.push(`Keywords match ${mapping.capability}`);
161
+ }
162
+ }
163
+ // Sort by score and take top recommendations
164
+ const sortedDroids = [...droidScores.entries()]
165
+ .sort((a, b) => b[1] - a[1])
166
+ .map(([droid]) => droid);
167
+ const sortedSkills = [...skillScores.entries()]
168
+ .sort((a, b) => b[1] - a[1])
169
+ .map(([skill]) => skill);
170
+ // Calculate confidence
171
+ const maxPossibleScore = this.mappings.reduce((sum, m) => sum + m.priority, 0);
172
+ const actualScore = [...droidScores.values()].reduce((sum, s) => sum + s, 0);
173
+ const confidence = Math.min(1, actualScore / (maxPossibleScore / 2));
174
+ return {
175
+ recommendedDroids: sortedDroids.slice(0, 3),
176
+ recommendedSkills: sortedSkills.slice(0, 2),
177
+ matchedCapabilities: [...new Set(matchedCapabilities)],
178
+ confidence,
179
+ reasoning: reasons.length > 0 ? reasons.join('; ') : 'No specific matches, using general routing',
180
+ };
181
+ }
182
+ /**
183
+ * Find the best agent for a task based on capabilities.
184
+ */
185
+ findBestAgent(task, availableAgents, affectedFiles) {
186
+ if (availableAgents.length === 0)
187
+ return null;
188
+ const routing = this.routeTask(task, affectedFiles);
189
+ const agentMatches = [];
190
+ for (const agent of availableAgents) {
191
+ const agentCapabilities = (agent.capabilities || []);
192
+ const matchedCapabilities = agentCapabilities.filter(cap => routing.matchedCapabilities.includes(cap));
193
+ let score = matchedCapabilities.length * 10;
194
+ // Boost for agents with recommended droids in their name
195
+ if (routing.recommendedDroids.some(d => agent.name.includes(d))) {
196
+ score += 20;
197
+ }
198
+ // Boost for idle agents
199
+ if (agent.status === 'idle') {
200
+ score += 5;
201
+ }
202
+ // Penalty for agents with current tasks
203
+ if (agent.currentTask) {
204
+ score -= 10;
205
+ }
206
+ agentMatches.push({
207
+ agent,
208
+ matchedCapabilities,
209
+ score,
210
+ });
211
+ }
212
+ // Sort by score descending
213
+ agentMatches.sort((a, b) => b.score - a.score);
214
+ return agentMatches[0] || null;
215
+ }
216
+ /**
217
+ * Route files to appropriate capabilities.
218
+ */
219
+ routeFiles(files) {
220
+ const result = new Map();
221
+ for (const mapping of this.mappings) {
222
+ for (const pattern of mapping.filePatterns) {
223
+ const matches = this.matchesPattern(files, pattern);
224
+ if (matches.length > 0) {
225
+ const existing = result.get(mapping.capability) || [];
226
+ result.set(mapping.capability, [...new Set([...existing, ...matches])]);
227
+ }
228
+ }
229
+ }
230
+ return result;
231
+ }
232
+ /**
233
+ * Get recommended parallel review droids for a set of files.
234
+ */
235
+ getParallelReviewDroids(files) {
236
+ const routing = this.routeFiles(files);
237
+ const droids = new Set();
238
+ // Always include quality and security for any code change
239
+ droids.add('code-quality-guardian');
240
+ droids.add('security-auditor');
241
+ // Add capability-specific droids
242
+ for (const [capability] of routing) {
243
+ const mapping = this.mappings.find(m => m.capability === capability);
244
+ if (mapping) {
245
+ for (const droid of mapping.droids) {
246
+ droids.add(droid);
247
+ }
248
+ }
249
+ }
250
+ // Add documentation reviewer if docs changed
251
+ if (routing.has('documentation')) {
252
+ droids.add('documentation-expert');
253
+ }
254
+ // Add performance reviewer for performance-critical areas
255
+ if (routing.has('performance') || routing.has('database')) {
256
+ droids.add('performance-optimizer');
257
+ }
258
+ return [...droids];
259
+ }
260
+ /**
261
+ * Match files against a glob-like pattern.
262
+ */
263
+ matchesPattern(files, pattern) {
264
+ const regex = this.patternToRegex(pattern);
265
+ return files.filter(f => regex.test(f));
266
+ }
267
+ /**
268
+ * Convert glob pattern to regex.
269
+ */
270
+ patternToRegex(pattern) {
271
+ const escaped = pattern
272
+ .replace(/[.+^${}()|[\]\\]/g, '\\$&')
273
+ .replace(/\*\*/g, '{{GLOBSTAR}}')
274
+ .replace(/\*/g, '[^/]*')
275
+ .replace(/{{GLOBSTAR}}/g, '.*')
276
+ .replace(/\?/g, '.');
277
+ return new RegExp(`(^|/)${escaped}$`, 'i');
278
+ }
279
+ /**
280
+ * Extract keywords from task for matching.
281
+ */
282
+ extractKeywords(task) {
283
+ const keywords = [];
284
+ // From title
285
+ keywords.push(...task.title.toLowerCase().split(/\W+/).filter(w => w.length > 2));
286
+ // From labels
287
+ keywords.push(...task.labels.map(l => l.toLowerCase()));
288
+ // From type
289
+ keywords.push(task.type);
290
+ return keywords;
291
+ }
292
+ /**
293
+ * Add or update a capability mapping.
294
+ */
295
+ addMapping(mapping) {
296
+ const existingIndex = this.mappings.findIndex(m => m.capability === mapping.capability);
297
+ if (existingIndex >= 0) {
298
+ this.mappings[existingIndex] = mapping;
299
+ }
300
+ else {
301
+ this.mappings.push(mapping);
302
+ }
303
+ }
304
+ /**
305
+ * Get all registered mappings.
306
+ */
307
+ getMappings() {
308
+ return [...this.mappings];
309
+ }
310
+ }
311
+ /**
312
+ * Singleton instance for global capability routing.
313
+ */
314
+ let globalRouter = null;
315
+ export function getCapabilityRouter() {
316
+ if (!globalRouter) {
317
+ globalRouter = new CapabilityRouter();
318
+ }
319
+ return globalRouter;
320
+ }
321
+ export function setCapabilityRouter(router) {
322
+ globalRouter = router;
323
+ }
324
+ //# sourceMappingURL=capability-router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability-router.js","sourceRoot":"","sources":["../../src/coordination/capability-router.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import Database from 'better-sqlite3';
2
+ export declare class CoordinationDatabase {
3
+ private db;
4
+ private static instance;
5
+ private constructor();
6
+ static getInstance(dbPath: string): CoordinationDatabase;
7
+ static resetInstance(): void;
8
+ getDatabase(): Database.Database;
9
+ private initSchema;
10
+ close(): void;
11
+ }
12
+ export declare function getDefaultCoordinationDbPath(): string;
13
+ //# sourceMappingURL=database.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/coordination/database.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAItC,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAqC;IAE5D,OAAO;IAUP,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB;IAOxD,MAAM,CAAC,aAAa,IAAI,IAAI;IAO5B,WAAW,IAAI,QAAQ,CAAC,QAAQ;IAIhC,OAAO,CAAC,UAAU;IA+FlB,KAAK,IAAI,IAAI;CAGd;AAED,wBAAgB,4BAA4B,IAAI,MAAM,CAErD"}
@@ -0,0 +1,131 @@
1
+ import Database from 'better-sqlite3';
2
+ import { existsSync, mkdirSync } from 'fs';
3
+ import { dirname } from 'path';
4
+ export class CoordinationDatabase {
5
+ db;
6
+ static instance = null;
7
+ constructor(dbPath) {
8
+ const dir = dirname(dbPath);
9
+ if (!existsSync(dir)) {
10
+ mkdirSync(dir, { recursive: true });
11
+ }
12
+ this.db = new Database(dbPath);
13
+ this.initSchema();
14
+ }
15
+ static getInstance(dbPath) {
16
+ if (!CoordinationDatabase.instance) {
17
+ CoordinationDatabase.instance = new CoordinationDatabase(dbPath);
18
+ }
19
+ return CoordinationDatabase.instance;
20
+ }
21
+ static resetInstance() {
22
+ if (CoordinationDatabase.instance) {
23
+ CoordinationDatabase.instance.close();
24
+ CoordinationDatabase.instance = null;
25
+ }
26
+ }
27
+ getDatabase() {
28
+ return this.db;
29
+ }
30
+ initSchema() {
31
+ this.db.exec(`
32
+ -- Agent registry for tracking active agents
33
+ CREATE TABLE IF NOT EXISTS agent_registry (
34
+ id TEXT PRIMARY KEY,
35
+ name TEXT NOT NULL,
36
+ session_id TEXT NOT NULL,
37
+ status TEXT NOT NULL CHECK(status IN ('active', 'idle', 'completed', 'failed')),
38
+ current_task TEXT,
39
+ worktree_branch TEXT,
40
+ started_at TEXT NOT NULL,
41
+ last_heartbeat TEXT NOT NULL,
42
+ capabilities TEXT
43
+ );
44
+ CREATE INDEX IF NOT EXISTS idx_agent_registry_session ON agent_registry(session_id);
45
+ CREATE INDEX IF NOT EXISTS idx_agent_registry_status ON agent_registry(status);
46
+
47
+ -- Message bus for inter-agent communication
48
+ CREATE TABLE IF NOT EXISTS agent_messages (
49
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
50
+ channel TEXT NOT NULL,
51
+ from_agent TEXT,
52
+ to_agent TEXT,
53
+ type TEXT NOT NULL CHECK(type IN ('request', 'response', 'notification', 'claim', 'release')),
54
+ payload TEXT NOT NULL,
55
+ priority INTEGER DEFAULT 5,
56
+ created_at TEXT NOT NULL,
57
+ read_at TEXT,
58
+ expires_at TEXT
59
+ );
60
+ CREATE INDEX IF NOT EXISTS idx_messages_channel ON agent_messages(channel);
61
+ CREATE INDEX IF NOT EXISTS idx_messages_to_agent ON agent_messages(to_agent);
62
+ CREATE INDEX IF NOT EXISTS idx_messages_created ON agent_messages(created_at);
63
+
64
+ -- Work announcements (informational - for coordination, NOT locking)
65
+ -- Agents announce what they're working on so others can optimize velocity
66
+ CREATE TABLE IF NOT EXISTS work_announcements (
67
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
68
+ agent_id TEXT NOT NULL,
69
+ agent_name TEXT,
70
+ worktree_branch TEXT,
71
+ intent_type TEXT NOT NULL CHECK(intent_type IN ('editing', 'reviewing', 'refactoring', 'testing', 'documenting')),
72
+ resource TEXT NOT NULL,
73
+ description TEXT,
74
+ files_affected TEXT,
75
+ estimated_completion TEXT,
76
+ announced_at TEXT NOT NULL,
77
+ completed_at TEXT,
78
+ FOREIGN KEY (agent_id) REFERENCES agent_registry(id)
79
+ );
80
+ CREATE INDEX IF NOT EXISTS idx_announcements_agent ON work_announcements(agent_id);
81
+ CREATE INDEX IF NOT EXISTS idx_announcements_resource ON work_announcements(resource);
82
+ CREATE INDEX IF NOT EXISTS idx_announcements_active ON work_announcements(completed_at) WHERE completed_at IS NULL;
83
+
84
+ -- Legacy work_claims table (for backward compatibility, maps to announcements)
85
+ CREATE TABLE IF NOT EXISTS work_claims (
86
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
87
+ resource TEXT NOT NULL,
88
+ agent_id TEXT NOT NULL,
89
+ claim_type TEXT NOT NULL CHECK(claim_type IN ('exclusive', 'shared')),
90
+ claimed_at TEXT NOT NULL,
91
+ expires_at TEXT,
92
+ FOREIGN KEY (agent_id) REFERENCES agent_registry(id)
93
+ );
94
+ CREATE INDEX IF NOT EXISTS idx_claims_agent ON work_claims(agent_id);
95
+
96
+ -- Deployment batching queue
97
+ CREATE TABLE IF NOT EXISTS deploy_queue (
98
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
99
+ agent_id TEXT NOT NULL,
100
+ action_type TEXT NOT NULL CHECK(action_type IN ('commit', 'push', 'merge', 'deploy', 'workflow')),
101
+ target TEXT NOT NULL,
102
+ payload TEXT,
103
+ status TEXT NOT NULL CHECK(status IN ('pending', 'batched', 'executing', 'completed', 'failed')),
104
+ batch_id TEXT,
105
+ queued_at TEXT NOT NULL,
106
+ execute_after TEXT,
107
+ priority INTEGER DEFAULT 5,
108
+ dependencies TEXT
109
+ );
110
+ CREATE INDEX IF NOT EXISTS idx_deploy_status ON deploy_queue(status);
111
+ CREATE INDEX IF NOT EXISTS idx_deploy_batch ON deploy_queue(batch_id);
112
+ CREATE INDEX IF NOT EXISTS idx_deploy_target ON deploy_queue(target);
113
+
114
+ -- Batch tracking
115
+ CREATE TABLE IF NOT EXISTS deploy_batches (
116
+ id TEXT PRIMARY KEY,
117
+ created_at TEXT NOT NULL,
118
+ executed_at TEXT,
119
+ status TEXT NOT NULL CHECK(status IN ('pending', 'executing', 'completed', 'failed')),
120
+ result TEXT
121
+ );
122
+ `);
123
+ }
124
+ close() {
125
+ this.db.close();
126
+ }
127
+ }
128
+ export function getDefaultCoordinationDbPath() {
129
+ return './agents/data/coordination/coordination.db';
130
+ }
131
+ //# sourceMappingURL=database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/coordination/database.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,MAAM,OAAO,oBAAoB;IACvB,EAAE,CAAoB;IACtB,MAAM,CAAC,QAAQ,GAAgC,IAAI,CAAC;IAE5D,YAAoB,MAAc;QAChC,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,MAAc;QAC/B,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,CAAC;YACnC,oBAAoB,CAAC,QAAQ,GAAG,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,oBAAoB,CAAC,QAAQ,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,aAAa;QAClB,IAAI,oBAAoB,CAAC,QAAQ,EAAE,CAAC;YAClC,oBAAoB,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtC,oBAAoB,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvC,CAAC;IACH,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAEO,UAAU;QAChB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA2FZ,CAAC,CAAC;IACL,CAAC;IAED,KAAK;QACH,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;;AAGH,MAAM,UAAU,4BAA4B;IAC1C,OAAO,4CAA4C,CAAC;AACtD,CAAC"}
@@ -0,0 +1,101 @@
1
+ import type { DeployBatch, BatchResult, DeployActionType } from '../types/coordination.js';
2
+ /**
3
+ * Dynamic batch window configuration based on action type.
4
+ * Optimizes for speed on time-sensitive operations while allowing
5
+ * batching for operations that benefit from grouping.
6
+ */
7
+ export interface DynamicBatchWindows {
8
+ commit: number;
9
+ push: number;
10
+ merge: number;
11
+ workflow: number;
12
+ deploy: number;
13
+ }
14
+ export interface DeployBatcherConfig {
15
+ dbPath?: string;
16
+ batchWindowMs?: number;
17
+ dynamicWindows?: Partial<DynamicBatchWindows>;
18
+ maxBatchSize?: number;
19
+ dryRun?: boolean;
20
+ parallelExecution?: boolean;
21
+ maxParallelActions?: number;
22
+ }
23
+ export declare class DeployBatcher {
24
+ private db;
25
+ private dynamicWindows;
26
+ private maxBatchSize;
27
+ private dryRun;
28
+ private parallelExecution;
29
+ private maxParallelActions;
30
+ constructor(config?: DeployBatcherConfig);
31
+ /**
32
+ * Get the batch window for a specific action type.
33
+ */
34
+ getBatchWindow(actionType: DeployActionType): number;
35
+ /**
36
+ * Update batch windows dynamically (useful for urgent operations).
37
+ */
38
+ setUrgentMode(urgent: boolean): void;
39
+ /**
40
+ * Queue a deploy action with type-specific batching delay.
41
+ */
42
+ queue(agentId: string, actionType: DeployActionType, target: string, payload?: Record<string, unknown>, options?: {
43
+ priority?: number;
44
+ dependencies?: string[];
45
+ urgent?: boolean;
46
+ }): Promise<number>;
47
+ /**
48
+ * Queue multiple actions atomically with optimized windows.
49
+ */
50
+ queueBulk(agentId: string, actions: Array<{
51
+ actionType: DeployActionType;
52
+ target: string;
53
+ payload?: Record<string, unknown>;
54
+ priority?: number;
55
+ }>): Promise<number[]>;
56
+ /**
57
+ * Synchronous queue for use in transactions.
58
+ */
59
+ private queueSync;
60
+ private findSimilarAction;
61
+ private canMerge;
62
+ private mergeActions;
63
+ private mergePayloads;
64
+ /**
65
+ * Create a batch from ready actions.
66
+ */
67
+ createBatch(): Promise<DeployBatch | null>;
68
+ private groupByTarget;
69
+ private squashActions;
70
+ private squashCommits;
71
+ /**
72
+ * Execute a batch with optional parallel execution for independent actions.
73
+ */
74
+ executeBatch(batchId: string): Promise<BatchResult>;
75
+ /**
76
+ * Categorize actions into parallel-safe and sequential groups.
77
+ */
78
+ private categorizeActions;
79
+ /**
80
+ * Execute actions in parallel with concurrency limit.
81
+ */
82
+ private executeParallel;
83
+ private executeAction;
84
+ private executeCommit;
85
+ private executePush;
86
+ private executeMerge;
87
+ private executeWorkflow;
88
+ private executeDeploy;
89
+ private updateActionStatus;
90
+ getBatch(batchId: string): DeployBatch | null;
91
+ getPendingBatches(): DeployBatch[];
92
+ /**
93
+ * Force flush all pending deploys immediately.
94
+ */
95
+ flushAll(): Promise<BatchResult[]>;
96
+ /**
97
+ * Get current batch window configuration.
98
+ */
99
+ getWindowConfig(): DynamicBatchWindows;
100
+ }
101
+ //# sourceMappingURL=deploy-batcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy-batcher.d.ts","sourceRoot":"","sources":["../../src/coordination/deploy-batcher.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAgB,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAgB,MAAM,0BAA0B,CAAC;AAGvH;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAUD,qBAAa,aAAa;IACxB,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,kBAAkB,CAAS;gBAEvB,MAAM,GAAE,mBAAwB;IA0B5C;;OAEG;IACH,cAAc,CAAC,UAAU,EAAE,gBAAgB,GAAG,MAAM;IAIpD;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAgBpC;;OAEG;IACG,KAAK,CACT,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,gBAAgB,EAC5B,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,OAAO,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GAC7E,OAAO,CAAC,MAAM,CAAC;IAiClB;;OAEG;IACG,SAAS,CACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,KAAK,CAAC;QACb,UAAU,EAAE,gBAAgB,CAAC;QAC7B,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC,GACD,OAAO,CAAC,MAAM,EAAE,CAAC;IAgBpB;;OAEG;IACH,OAAO,CAAC,SAAS;IA8BjB,OAAO,CAAC,iBAAiB;IAuBzB,OAAO,CAAC,QAAQ;YA0BF,YAAY;IAkB1B,OAAO,CAAC,aAAa;IAmBrB;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAoDhD,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,aAAa;IAmCrB,OAAO,CAAC,aAAa;IA4BrB;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAuFzD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAwBzB;;OAEG;YACW,eAAe;YAkCf,aAAa;YA6Bb,aAAa;YAab,WAAW;YAQX,YAAY;YAWZ,eAAe;YAef,aAAa;IAO3B,OAAO,CAAC,kBAAkB;IAO1B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAgC7C,iBAAiB,IAAI,WAAW,EAAE;IAWlC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAaxC;;OAEG;IACH,eAAe,IAAI,mBAAmB;CAGvC"}