@miller-tech/uap 1.0.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 (660) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +888 -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 +684 -0
  6. package/dist/analyzers/index.js.map +1 -0
  7. package/dist/benchmarks/agents/naive-agent.d.ts +60 -0
  8. package/dist/benchmarks/agents/naive-agent.d.ts.map +1 -0
  9. package/dist/benchmarks/agents/naive-agent.js +144 -0
  10. package/dist/benchmarks/agents/naive-agent.js.map +1 -0
  11. package/dist/benchmarks/agents/uap-agent.d.ts +167 -0
  12. package/dist/benchmarks/agents/uap-agent.d.ts.map +1 -0
  13. package/dist/benchmarks/agents/uap-agent.js +437 -0
  14. package/dist/benchmarks/agents/uap-agent.js.map +1 -0
  15. package/dist/benchmarks/benchmark.d.ts +328 -0
  16. package/dist/benchmarks/benchmark.d.ts.map +1 -0
  17. package/dist/benchmarks/benchmark.js +112 -0
  18. package/dist/benchmarks/benchmark.js.map +1 -0
  19. package/dist/benchmarks/execution-verifier.d.ts +41 -0
  20. package/dist/benchmarks/execution-verifier.d.ts.map +1 -0
  21. package/dist/benchmarks/execution-verifier.js +340 -0
  22. package/dist/benchmarks/execution-verifier.js.map +1 -0
  23. package/dist/benchmarks/hierarchical-prompting.d.ts +37 -0
  24. package/dist/benchmarks/hierarchical-prompting.d.ts.map +1 -0
  25. package/dist/benchmarks/hierarchical-prompting.js +246 -0
  26. package/dist/benchmarks/hierarchical-prompting.js.map +1 -0
  27. package/dist/benchmarks/improved-benchmark.d.ts +89 -0
  28. package/dist/benchmarks/improved-benchmark.d.ts.map +1 -0
  29. package/dist/benchmarks/improved-benchmark.js +585 -0
  30. package/dist/benchmarks/improved-benchmark.js.map +1 -0
  31. package/dist/benchmarks/index.d.ts +11 -0
  32. package/dist/benchmarks/index.d.ts.map +1 -0
  33. package/dist/benchmarks/index.js +11 -0
  34. package/dist/benchmarks/index.js.map +1 -0
  35. package/dist/benchmarks/model-integration.d.ts +111 -0
  36. package/dist/benchmarks/model-integration.d.ts.map +1 -0
  37. package/dist/benchmarks/model-integration.js +904 -0
  38. package/dist/benchmarks/model-integration.js.map +1 -0
  39. package/dist/benchmarks/multi-turn-agent.d.ts +44 -0
  40. package/dist/benchmarks/multi-turn-agent.d.ts.map +1 -0
  41. package/dist/benchmarks/multi-turn-agent.js +254 -0
  42. package/dist/benchmarks/multi-turn-agent.js.map +1 -0
  43. package/dist/benchmarks/multi-turn-loop.d.ts +57 -0
  44. package/dist/benchmarks/multi-turn-loop.d.ts.map +1 -0
  45. package/dist/benchmarks/multi-turn-loop.js +167 -0
  46. package/dist/benchmarks/multi-turn-loop.js.map +1 -0
  47. package/dist/benchmarks/tasks.d.ts +19 -0
  48. package/dist/benchmarks/tasks.d.ts.map +1 -0
  49. package/dist/benchmarks/tasks.js +435 -0
  50. package/dist/benchmarks/tasks.js.map +1 -0
  51. package/dist/bin/cli.d.ts +3 -0
  52. package/dist/bin/cli.d.ts.map +1 -0
  53. package/dist/bin/cli.js +546 -0
  54. package/dist/bin/cli.js.map +1 -0
  55. package/dist/bin/llama-server-optimize.d.ts +18 -0
  56. package/dist/bin/llama-server-optimize.d.ts.map +1 -0
  57. package/dist/bin/llama-server-optimize.js +708 -0
  58. package/dist/bin/llama-server-optimize.js.map +1 -0
  59. package/dist/bin/policy.d.ts +3 -0
  60. package/dist/bin/policy.d.ts.map +1 -0
  61. package/dist/bin/policy.js +143 -0
  62. package/dist/bin/policy.js.map +1 -0
  63. package/dist/bin/tool-calls.d.ts +3 -0
  64. package/dist/bin/tool-calls.d.ts.map +1 -0
  65. package/dist/bin/tool-calls.js +4 -0
  66. package/dist/bin/tool-calls.js.map +1 -0
  67. package/dist/browser/index.d.ts +2 -0
  68. package/dist/browser/index.d.ts.map +1 -0
  69. package/dist/browser/index.js +2 -0
  70. package/dist/browser/index.js.map +1 -0
  71. package/dist/browser/web-browser.d.ts +30 -0
  72. package/dist/browser/web-browser.d.ts.map +1 -0
  73. package/dist/browser/web-browser.js +93 -0
  74. package/dist/browser/web-browser.js.map +1 -0
  75. package/dist/cli/agent.d.ts +20 -0
  76. package/dist/cli/agent.d.ts.map +1 -0
  77. package/dist/cli/agent.js +474 -0
  78. package/dist/cli/agent.js.map +1 -0
  79. package/dist/cli/analyze.d.ts +7 -0
  80. package/dist/cli/analyze.d.ts.map +1 -0
  81. package/dist/cli/analyze.js +103 -0
  82. package/dist/cli/analyze.js.map +1 -0
  83. package/dist/cli/completion-gates.d.ts +51 -0
  84. package/dist/cli/completion-gates.d.ts.map +1 -0
  85. package/dist/cli/completion-gates.js +201 -0
  86. package/dist/cli/completion-gates.js.map +1 -0
  87. package/dist/cli/compliance.d.ts +8 -0
  88. package/dist/cli/compliance.d.ts.map +1 -0
  89. package/dist/cli/compliance.js +509 -0
  90. package/dist/cli/compliance.js.map +1 -0
  91. package/dist/cli/coord.d.ts +7 -0
  92. package/dist/cli/coord.d.ts.map +1 -0
  93. package/dist/cli/coord.js +138 -0
  94. package/dist/cli/coord.js.map +1 -0
  95. package/dist/cli/dashboard.d.ts +21 -0
  96. package/dist/cli/dashboard.d.ts.map +1 -0
  97. package/dist/cli/dashboard.js +1508 -0
  98. package/dist/cli/dashboard.js.map +1 -0
  99. package/dist/cli/deploy.d.ts +19 -0
  100. package/dist/cli/deploy.d.ts.map +1 -0
  101. package/dist/cli/deploy.js +387 -0
  102. package/dist/cli/deploy.js.map +1 -0
  103. package/dist/cli/droids.d.ts +9 -0
  104. package/dist/cli/droids.d.ts.map +1 -0
  105. package/dist/cli/droids.js +227 -0
  106. package/dist/cli/droids.js.map +1 -0
  107. package/dist/cli/generate.d.ts +17 -0
  108. package/dist/cli/generate.d.ts.map +1 -0
  109. package/dist/cli/generate.js +432 -0
  110. package/dist/cli/generate.js.map +1 -0
  111. package/dist/cli/hooks.d.ts +9 -0
  112. package/dist/cli/hooks.d.ts.map +1 -0
  113. package/dist/cli/hooks.js +464 -0
  114. package/dist/cli/hooks.js.map +1 -0
  115. package/dist/cli/init.d.ts +12 -0
  116. package/dist/cli/init.d.ts.map +1 -0
  117. package/dist/cli/init.js +364 -0
  118. package/dist/cli/init.js.map +1 -0
  119. package/dist/cli/mcp-router.d.ts +16 -0
  120. package/dist/cli/mcp-router.d.ts.map +1 -0
  121. package/dist/cli/mcp-router.js +143 -0
  122. package/dist/cli/mcp-router.js.map +1 -0
  123. package/dist/cli/memory.d.ts +24 -0
  124. package/dist/cli/memory.d.ts.map +1 -0
  125. package/dist/cli/memory.js +885 -0
  126. package/dist/cli/memory.js.map +1 -0
  127. package/dist/cli/model.d.ts +15 -0
  128. package/dist/cli/model.d.ts.map +1 -0
  129. package/dist/cli/model.js +290 -0
  130. package/dist/cli/model.js.map +1 -0
  131. package/dist/cli/patterns.d.ts +26 -0
  132. package/dist/cli/patterns.d.ts.map +1 -0
  133. package/dist/cli/patterns.js +862 -0
  134. package/dist/cli/patterns.js.map +1 -0
  135. package/dist/cli/rtk-validation.d.ts +9 -0
  136. package/dist/cli/rtk-validation.d.ts.map +1 -0
  137. package/dist/cli/rtk-validation.js +9 -0
  138. package/dist/cli/rtk-validation.js.map +1 -0
  139. package/dist/cli/rtk.d.ts +34 -0
  140. package/dist/cli/rtk.d.ts.map +1 -0
  141. package/dist/cli/rtk.js +401 -0
  142. package/dist/cli/rtk.js.map +1 -0
  143. package/dist/cli/schema-diff.d.ts +7 -0
  144. package/dist/cli/schema-diff.d.ts.map +1 -0
  145. package/dist/cli/schema-diff.js +11 -0
  146. package/dist/cli/schema-diff.js.map +1 -0
  147. package/dist/cli/setup-mcp-router.d.ts +8 -0
  148. package/dist/cli/setup-mcp-router.d.ts.map +1 -0
  149. package/dist/cli/setup-mcp-router.js +163 -0
  150. package/dist/cli/setup-mcp-router.js.map +1 -0
  151. package/dist/cli/setup-wizard.d.ts +2 -0
  152. package/dist/cli/setup-wizard.d.ts.map +1 -0
  153. package/dist/cli/setup-wizard.js +806 -0
  154. package/dist/cli/setup-wizard.js.map +1 -0
  155. package/dist/cli/setup.d.ts +15 -0
  156. package/dist/cli/setup.d.ts.map +1 -0
  157. package/dist/cli/setup.js +154 -0
  158. package/dist/cli/setup.js.map +1 -0
  159. package/dist/cli/sync.d.ts +8 -0
  160. package/dist/cli/sync.d.ts.map +1 -0
  161. package/dist/cli/sync.js +395 -0
  162. package/dist/cli/sync.js.map +1 -0
  163. package/dist/cli/task.d.ts +33 -0
  164. package/dist/cli/task.d.ts.map +1 -0
  165. package/dist/cli/task.js +672 -0
  166. package/dist/cli/task.js.map +1 -0
  167. package/dist/cli/tool-calls.d.ts +20 -0
  168. package/dist/cli/tool-calls.d.ts.map +1 -0
  169. package/dist/cli/tool-calls.js +605 -0
  170. package/dist/cli/tool-calls.js.map +1 -0
  171. package/dist/cli/uap.d.ts +10 -0
  172. package/dist/cli/uap.d.ts.map +1 -0
  173. package/dist/cli/uap.js +398 -0
  174. package/dist/cli/uap.js.map +1 -0
  175. package/dist/cli/update.d.ts +10 -0
  176. package/dist/cli/update.d.ts.map +1 -0
  177. package/dist/cli/update.js +300 -0
  178. package/dist/cli/update.js.map +1 -0
  179. package/dist/cli/visualize.d.ts +77 -0
  180. package/dist/cli/visualize.d.ts.map +1 -0
  181. package/dist/cli/visualize.js +287 -0
  182. package/dist/cli/visualize.js.map +1 -0
  183. package/dist/cli/worktree.d.ts +9 -0
  184. package/dist/cli/worktree.d.ts.map +1 -0
  185. package/dist/cli/worktree.js +213 -0
  186. package/dist/cli/worktree.js.map +1 -0
  187. package/dist/coordination/adaptive-patterns.d.ts +65 -0
  188. package/dist/coordination/adaptive-patterns.d.ts.map +1 -0
  189. package/dist/coordination/adaptive-patterns.js +108 -0
  190. package/dist/coordination/adaptive-patterns.js.map +1 -0
  191. package/dist/coordination/auto-agent.d.ts +82 -0
  192. package/dist/coordination/auto-agent.d.ts.map +1 -0
  193. package/dist/coordination/auto-agent.js +145 -0
  194. package/dist/coordination/auto-agent.js.map +1 -0
  195. package/dist/coordination/capability-router.d.ts +79 -0
  196. package/dist/coordination/capability-router.d.ts.map +1 -0
  197. package/dist/coordination/capability-router.js +334 -0
  198. package/dist/coordination/capability-router.js.map +1 -0
  199. package/dist/coordination/database.d.ts +13 -0
  200. package/dist/coordination/database.d.ts.map +1 -0
  201. package/dist/coordination/database.js +136 -0
  202. package/dist/coordination/database.js.map +1 -0
  203. package/dist/coordination/deploy-batcher.d.ts +122 -0
  204. package/dist/coordination/deploy-batcher.d.ts.map +1 -0
  205. package/dist/coordination/deploy-batcher.js +718 -0
  206. package/dist/coordination/deploy-batcher.js.map +1 -0
  207. package/dist/coordination/droid-validator.d.ts +59 -0
  208. package/dist/coordination/droid-validator.d.ts.map +1 -0
  209. package/dist/coordination/droid-validator.js +142 -0
  210. package/dist/coordination/droid-validator.js.map +1 -0
  211. package/dist/coordination/index.d.ts +10 -0
  212. package/dist/coordination/index.d.ts.map +1 -0
  213. package/dist/coordination/index.js +10 -0
  214. package/dist/coordination/index.js.map +1 -0
  215. package/dist/coordination/pattern-router.d.ts +50 -0
  216. package/dist/coordination/pattern-router.d.ts.map +1 -0
  217. package/dist/coordination/pattern-router.js +118 -0
  218. package/dist/coordination/pattern-router.js.map +1 -0
  219. package/dist/coordination/service.d.ts +81 -0
  220. package/dist/coordination/service.d.ts.map +1 -0
  221. package/dist/coordination/service.js +619 -0
  222. package/dist/coordination/service.js.map +1 -0
  223. package/dist/coordination/worktree-enforcer.d.ts +22 -0
  224. package/dist/coordination/worktree-enforcer.d.ts.map +1 -0
  225. package/dist/coordination/worktree-enforcer.js +71 -0
  226. package/dist/coordination/worktree-enforcer.js.map +1 -0
  227. package/dist/generators/claude-md.d.ts +3 -0
  228. package/dist/generators/claude-md.d.ts.map +1 -0
  229. package/dist/generators/claude-md.js +1020 -0
  230. package/dist/generators/claude-md.js.map +1 -0
  231. package/dist/generators/template-loader.d.ts +105 -0
  232. package/dist/generators/template-loader.d.ts.map +1 -0
  233. package/dist/generators/template-loader.js +291 -0
  234. package/dist/generators/template-loader.js.map +1 -0
  235. package/dist/index.d.ts +49 -0
  236. package/dist/index.d.ts.map +1 -0
  237. package/dist/index.js +63 -0
  238. package/dist/index.js.map +1 -0
  239. package/dist/mcp-router/config/parser.d.ts +9 -0
  240. package/dist/mcp-router/config/parser.d.ts.map +1 -0
  241. package/dist/mcp-router/config/parser.js +174 -0
  242. package/dist/mcp-router/config/parser.js.map +1 -0
  243. package/dist/mcp-router/executor/client.d.ts +31 -0
  244. package/dist/mcp-router/executor/client.d.ts.map +1 -0
  245. package/dist/mcp-router/executor/client.js +189 -0
  246. package/dist/mcp-router/executor/client.js.map +1 -0
  247. package/dist/mcp-router/index.d.ts +22 -0
  248. package/dist/mcp-router/index.d.ts.map +1 -0
  249. package/dist/mcp-router/index.js +18 -0
  250. package/dist/mcp-router/index.js.map +1 -0
  251. package/dist/mcp-router/output-compressor.d.ts +26 -0
  252. package/dist/mcp-router/output-compressor.d.ts.map +1 -0
  253. package/dist/mcp-router/output-compressor.js +236 -0
  254. package/dist/mcp-router/output-compressor.js.map +1 -0
  255. package/dist/mcp-router/search/fuzzy.d.ts +26 -0
  256. package/dist/mcp-router/search/fuzzy.d.ts.map +1 -0
  257. package/dist/mcp-router/search/fuzzy.js +94 -0
  258. package/dist/mcp-router/search/fuzzy.js.map +1 -0
  259. package/dist/mcp-router/server.d.ts +50 -0
  260. package/dist/mcp-router/server.d.ts.map +1 -0
  261. package/dist/mcp-router/server.js +229 -0
  262. package/dist/mcp-router/server.js.map +1 -0
  263. package/dist/mcp-router/session-stats.d.ts +37 -0
  264. package/dist/mcp-router/session-stats.d.ts.map +1 -0
  265. package/dist/mcp-router/session-stats.js +56 -0
  266. package/dist/mcp-router/session-stats.js.map +1 -0
  267. package/dist/mcp-router/tools/discover.d.ts +37 -0
  268. package/dist/mcp-router/tools/discover.d.ts.map +1 -0
  269. package/dist/mcp-router/tools/discover.js +65 -0
  270. package/dist/mcp-router/tools/discover.js.map +1 -0
  271. package/dist/mcp-router/tools/execute.d.ts +43 -0
  272. package/dist/mcp-router/tools/execute.d.ts.map +1 -0
  273. package/dist/mcp-router/tools/execute.js +144 -0
  274. package/dist/mcp-router/tools/execute.js.map +1 -0
  275. package/dist/mcp-router/types.d.ts +62 -0
  276. package/dist/mcp-router/types.d.ts.map +1 -0
  277. package/dist/mcp-router/types.js +6 -0
  278. package/dist/mcp-router/types.js.map +1 -0
  279. package/dist/memory/adaptive-context.d.ts +149 -0
  280. package/dist/memory/adaptive-context.d.ts.map +1 -0
  281. package/dist/memory/adaptive-context.js +1095 -0
  282. package/dist/memory/adaptive-context.js.map +1 -0
  283. package/dist/memory/agent-scoped-memory.d.ts +67 -0
  284. package/dist/memory/agent-scoped-memory.d.ts.map +1 -0
  285. package/dist/memory/agent-scoped-memory.js +126 -0
  286. package/dist/memory/agent-scoped-memory.js.map +1 -0
  287. package/dist/memory/ambiguity-detector.d.ts +54 -0
  288. package/dist/memory/ambiguity-detector.d.ts.map +1 -0
  289. package/dist/memory/ambiguity-detector.js +401 -0
  290. package/dist/memory/ambiguity-detector.js.map +1 -0
  291. package/dist/memory/backends/base.d.ts +18 -0
  292. package/dist/memory/backends/base.d.ts.map +1 -0
  293. package/dist/memory/backends/base.js +2 -0
  294. package/dist/memory/backends/base.js.map +1 -0
  295. package/dist/memory/backends/factory.d.ts +4 -0
  296. package/dist/memory/backends/factory.d.ts.map +1 -0
  297. package/dist/memory/backends/factory.js +53 -0
  298. package/dist/memory/backends/factory.js.map +1 -0
  299. package/dist/memory/backends/github.d.ts +27 -0
  300. package/dist/memory/backends/github.d.ts.map +1 -0
  301. package/dist/memory/backends/github.js +134 -0
  302. package/dist/memory/backends/github.js.map +1 -0
  303. package/dist/memory/backends/qdrant-cloud.d.ts +32 -0
  304. package/dist/memory/backends/qdrant-cloud.d.ts.map +1 -0
  305. package/dist/memory/backends/qdrant-cloud.js +167 -0
  306. package/dist/memory/backends/qdrant-cloud.js.map +1 -0
  307. package/dist/memory/context-compressor.d.ts +116 -0
  308. package/dist/memory/context-compressor.d.ts.map +1 -0
  309. package/dist/memory/context-compressor.js +430 -0
  310. package/dist/memory/context-compressor.js.map +1 -0
  311. package/dist/memory/context-pruner.d.ts +55 -0
  312. package/dist/memory/context-pruner.d.ts.map +1 -0
  313. package/dist/memory/context-pruner.js +85 -0
  314. package/dist/memory/context-pruner.js.map +1 -0
  315. package/dist/memory/correction-propagator.d.ts +44 -0
  316. package/dist/memory/correction-propagator.d.ts.map +1 -0
  317. package/dist/memory/correction-propagator.js +156 -0
  318. package/dist/memory/correction-propagator.js.map +1 -0
  319. package/dist/memory/daily-log.d.ts +67 -0
  320. package/dist/memory/daily-log.d.ts.map +1 -0
  321. package/dist/memory/daily-log.js +143 -0
  322. package/dist/memory/daily-log.js.map +1 -0
  323. package/dist/memory/dynamic-retrieval.d.ts +112 -0
  324. package/dist/memory/dynamic-retrieval.d.ts.map +1 -0
  325. package/dist/memory/dynamic-retrieval.js +908 -0
  326. package/dist/memory/dynamic-retrieval.js.map +1 -0
  327. package/dist/memory/embeddings.d.ts +172 -0
  328. package/dist/memory/embeddings.d.ts.map +1 -0
  329. package/dist/memory/embeddings.js +780 -0
  330. package/dist/memory/embeddings.js.map +1 -0
  331. package/dist/memory/generic-uap-patterns.d.ts +7 -0
  332. package/dist/memory/generic-uap-patterns.d.ts.map +1 -0
  333. package/dist/memory/generic-uap-patterns.js +43 -0
  334. package/dist/memory/generic-uap-patterns.js.map +1 -0
  335. package/dist/memory/hierarchical-memory.d.ts +141 -0
  336. package/dist/memory/hierarchical-memory.d.ts.map +1 -0
  337. package/dist/memory/hierarchical-memory.js +485 -0
  338. package/dist/memory/hierarchical-memory.js.map +1 -0
  339. package/dist/memory/knowledge-graph.d.ts +98 -0
  340. package/dist/memory/knowledge-graph.d.ts.map +1 -0
  341. package/dist/memory/knowledge-graph.js +275 -0
  342. package/dist/memory/knowledge-graph.js.map +1 -0
  343. package/dist/memory/memory-consolidator.d.ts +124 -0
  344. package/dist/memory/memory-consolidator.d.ts.map +1 -0
  345. package/dist/memory/memory-consolidator.js +514 -0
  346. package/dist/memory/memory-consolidator.js.map +1 -0
  347. package/dist/memory/memory-maintenance.d.ts +39 -0
  348. package/dist/memory/memory-maintenance.d.ts.map +1 -0
  349. package/dist/memory/memory-maintenance.js +336 -0
  350. package/dist/memory/memory-maintenance.js.map +1 -0
  351. package/dist/memory/model-router.d.ts +105 -0
  352. package/dist/memory/model-router.d.ts.map +1 -0
  353. package/dist/memory/model-router.js +474 -0
  354. package/dist/memory/model-router.js.map +1 -0
  355. package/dist/memory/multi-view-memory.d.ts +134 -0
  356. package/dist/memory/multi-view-memory.d.ts.map +1 -0
  357. package/dist/memory/multi-view-memory.js +430 -0
  358. package/dist/memory/multi-view-memory.js.map +1 -0
  359. package/dist/memory/predictive-memory.d.ts +79 -0
  360. package/dist/memory/predictive-memory.d.ts.map +1 -0
  361. package/dist/memory/predictive-memory.js +294 -0
  362. package/dist/memory/predictive-memory.js.map +1 -0
  363. package/dist/memory/prepopulate.d.ts +76 -0
  364. package/dist/memory/prepopulate.d.ts.map +1 -0
  365. package/dist/memory/prepopulate.js +832 -0
  366. package/dist/memory/prepopulate.js.map +1 -0
  367. package/dist/memory/semantic-compression.d.ts +77 -0
  368. package/dist/memory/semantic-compression.d.ts.map +1 -0
  369. package/dist/memory/semantic-compression.js +359 -0
  370. package/dist/memory/semantic-compression.js.map +1 -0
  371. package/dist/memory/serverless-qdrant.d.ts +102 -0
  372. package/dist/memory/serverless-qdrant.d.ts.map +1 -0
  373. package/dist/memory/serverless-qdrant.js +369 -0
  374. package/dist/memory/serverless-qdrant.js.map +1 -0
  375. package/dist/memory/short-term/factory.d.ts +26 -0
  376. package/dist/memory/short-term/factory.d.ts.map +1 -0
  377. package/dist/memory/short-term/factory.js +28 -0
  378. package/dist/memory/short-term/factory.js.map +1 -0
  379. package/dist/memory/short-term/indexeddb.d.ts +25 -0
  380. package/dist/memory/short-term/indexeddb.d.ts.map +1 -0
  381. package/dist/memory/short-term/indexeddb.js +64 -0
  382. package/dist/memory/short-term/indexeddb.js.map +1 -0
  383. package/dist/memory/short-term/schema.d.ts +6 -0
  384. package/dist/memory/short-term/schema.d.ts.map +1 -0
  385. package/dist/memory/short-term/schema.js +141 -0
  386. package/dist/memory/short-term/schema.js.map +1 -0
  387. package/dist/memory/short-term/sqlite.d.ts +64 -0
  388. package/dist/memory/short-term/sqlite.d.ts.map +1 -0
  389. package/dist/memory/short-term/sqlite.js +274 -0
  390. package/dist/memory/short-term/sqlite.js.map +1 -0
  391. package/dist/memory/speculative-cache.d.ts +111 -0
  392. package/dist/memory/speculative-cache.d.ts.map +1 -0
  393. package/dist/memory/speculative-cache.js +457 -0
  394. package/dist/memory/speculative-cache.js.map +1 -0
  395. package/dist/memory/task-classifier.d.ts +40 -0
  396. package/dist/memory/task-classifier.d.ts.map +1 -0
  397. package/dist/memory/task-classifier.js +342 -0
  398. package/dist/memory/task-classifier.js.map +1 -0
  399. package/dist/memory/terminal-bench-knowledge.d.ts +48 -0
  400. package/dist/memory/terminal-bench-knowledge.d.ts.map +1 -0
  401. package/dist/memory/terminal-bench-knowledge.js +622 -0
  402. package/dist/memory/terminal-bench-knowledge.js.map +1 -0
  403. package/dist/memory/write-gate.d.ts +39 -0
  404. package/dist/memory/write-gate.d.ts.map +1 -0
  405. package/dist/memory/write-gate.js +190 -0
  406. package/dist/memory/write-gate.js.map +1 -0
  407. package/dist/models/api-client.d.ts +46 -0
  408. package/dist/models/api-client.d.ts.map +1 -0
  409. package/dist/models/api-client.js +182 -0
  410. package/dist/models/api-client.js.map +1 -0
  411. package/dist/models/execution-profiles.d.ts +64 -0
  412. package/dist/models/execution-profiles.d.ts.map +1 -0
  413. package/dist/models/execution-profiles.js +403 -0
  414. package/dist/models/execution-profiles.js.map +1 -0
  415. package/dist/models/executor.d.ts +130 -0
  416. package/dist/models/executor.d.ts.map +1 -0
  417. package/dist/models/executor.js +382 -0
  418. package/dist/models/executor.js.map +1 -0
  419. package/dist/models/index.d.ts +19 -0
  420. package/dist/models/index.d.ts.map +1 -0
  421. package/dist/models/index.js +23 -0
  422. package/dist/models/index.js.map +1 -0
  423. package/dist/models/plan-validator.d.ts +37 -0
  424. package/dist/models/plan-validator.d.ts.map +1 -0
  425. package/dist/models/plan-validator.js +179 -0
  426. package/dist/models/plan-validator.js.map +1 -0
  427. package/dist/models/planner.d.ts +73 -0
  428. package/dist/models/planner.d.ts.map +1 -0
  429. package/dist/models/planner.js +375 -0
  430. package/dist/models/planner.js.map +1 -0
  431. package/dist/models/router.d.ts +96 -0
  432. package/dist/models/router.d.ts.map +1 -0
  433. package/dist/models/router.js +523 -0
  434. package/dist/models/router.js.map +1 -0
  435. package/dist/models/types.d.ts +370 -0
  436. package/dist/models/types.d.ts.map +1 -0
  437. package/dist/models/types.js +232 -0
  438. package/dist/models/types.js.map +1 -0
  439. package/dist/models/unified-router.d.ts +152 -0
  440. package/dist/models/unified-router.d.ts.map +1 -0
  441. package/dist/models/unified-router.js +313 -0
  442. package/dist/models/unified-router.js.map +1 -0
  443. package/dist/policies/convert-policy-to-claude.d.ts +3 -0
  444. package/dist/policies/convert-policy-to-claude.d.ts.map +1 -0
  445. package/dist/policies/convert-policy-to-claude.js +87 -0
  446. package/dist/policies/convert-policy-to-claude.js.map +1 -0
  447. package/dist/policies/database-manager.d.ts +27 -0
  448. package/dist/policies/database-manager.d.ts.map +1 -0
  449. package/dist/policies/database-manager.js +198 -0
  450. package/dist/policies/database-manager.js.map +1 -0
  451. package/dist/policies/enforced-tool-router.d.ts +53 -0
  452. package/dist/policies/enforced-tool-router.d.ts.map +1 -0
  453. package/dist/policies/enforced-tool-router.js +80 -0
  454. package/dist/policies/enforced-tool-router.js.map +1 -0
  455. package/dist/policies/index.d.ts +10 -0
  456. package/dist/policies/index.d.ts.map +1 -0
  457. package/dist/policies/index.js +8 -0
  458. package/dist/policies/index.js.map +1 -0
  459. package/dist/policies/policy-gate.d.ts +59 -0
  460. package/dist/policies/policy-gate.d.ts.map +1 -0
  461. package/dist/policies/policy-gate.js +171 -0
  462. package/dist/policies/policy-gate.js.map +1 -0
  463. package/dist/policies/policy-memory.d.ts +18 -0
  464. package/dist/policies/policy-memory.d.ts.map +1 -0
  465. package/dist/policies/policy-memory.js +126 -0
  466. package/dist/policies/policy-memory.js.map +1 -0
  467. package/dist/policies/policy-tools.d.ts +11 -0
  468. package/dist/policies/policy-tools.d.ts.map +1 -0
  469. package/dist/policies/policy-tools.js +66 -0
  470. package/dist/policies/policy-tools.js.map +1 -0
  471. package/dist/policies/schemas/policy.d.ts +69 -0
  472. package/dist/policies/schemas/policy.d.ts.map +1 -0
  473. package/dist/policies/schemas/policy.js +31 -0
  474. package/dist/policies/schemas/policy.js.map +1 -0
  475. package/dist/tasks/coordination.d.ts +83 -0
  476. package/dist/tasks/coordination.d.ts.map +1 -0
  477. package/dist/tasks/coordination.js +291 -0
  478. package/dist/tasks/coordination.js.map +1 -0
  479. package/dist/tasks/database.d.ts +19 -0
  480. package/dist/tasks/database.d.ts.map +1 -0
  481. package/dist/tasks/database.js +149 -0
  482. package/dist/tasks/database.js.map +1 -0
  483. package/dist/tasks/decoder-gate.d.ts +64 -0
  484. package/dist/tasks/decoder-gate.d.ts.map +1 -0
  485. package/dist/tasks/decoder-gate.js +268 -0
  486. package/dist/tasks/decoder-gate.js.map +1 -0
  487. package/dist/tasks/index.d.ts +6 -0
  488. package/dist/tasks/index.d.ts.map +1 -0
  489. package/dist/tasks/index.js +6 -0
  490. package/dist/tasks/index.js.map +1 -0
  491. package/dist/tasks/service.d.ts +40 -0
  492. package/dist/tasks/service.d.ts.map +1 -0
  493. package/dist/tasks/service.js +671 -0
  494. package/dist/tasks/service.js.map +1 -0
  495. package/dist/tasks/types.d.ts +238 -0
  496. package/dist/tasks/types.d.ts.map +1 -0
  497. package/dist/tasks/types.js +74 -0
  498. package/dist/tasks/types.js.map +1 -0
  499. package/dist/telemetry/index.d.ts +2 -0
  500. package/dist/telemetry/index.d.ts.map +1 -0
  501. package/dist/telemetry/index.js +2 -0
  502. package/dist/telemetry/index.js.map +1 -0
  503. package/dist/telemetry/session-telemetry.d.ts +56 -0
  504. package/dist/telemetry/session-telemetry.d.ts.map +1 -0
  505. package/dist/telemetry/session-telemetry.js +807 -0
  506. package/dist/telemetry/session-telemetry.js.map +1 -0
  507. package/dist/types/analysis.d.ts +82 -0
  508. package/dist/types/analysis.d.ts.map +1 -0
  509. package/dist/types/analysis.js +2 -0
  510. package/dist/types/analysis.js.map +1 -0
  511. package/dist/types/config.d.ts +3324 -0
  512. package/dist/types/config.d.ts.map +1 -0
  513. package/dist/types/config.js +418 -0
  514. package/dist/types/config.js.map +1 -0
  515. package/dist/types/coordination.d.ts +240 -0
  516. package/dist/types/coordination.d.ts.map +1 -0
  517. package/dist/types/coordination.js +43 -0
  518. package/dist/types/coordination.js.map +1 -0
  519. package/dist/types/index.d.ts +4 -0
  520. package/dist/types/index.d.ts.map +1 -0
  521. package/dist/types/index.js +4 -0
  522. package/dist/types/index.js.map +1 -0
  523. package/dist/uap-droids-strict.d.ts +59 -0
  524. package/dist/uap-droids-strict.d.ts.map +1 -0
  525. package/dist/uap-droids-strict.js +200 -0
  526. package/dist/uap-droids-strict.js.map +1 -0
  527. package/dist/utils/config-manager.d.ts +30 -0
  528. package/dist/utils/config-manager.d.ts.map +1 -0
  529. package/dist/utils/config-manager.js +41 -0
  530. package/dist/utils/config-manager.js.map +1 -0
  531. package/dist/utils/fetch-with-retry.d.ts +5 -0
  532. package/dist/utils/fetch-with-retry.d.ts.map +1 -0
  533. package/dist/utils/fetch-with-retry.js +61 -0
  534. package/dist/utils/fetch-with-retry.js.map +1 -0
  535. package/dist/utils/merge-claude-md.d.ts +28 -0
  536. package/dist/utils/merge-claude-md.d.ts.map +1 -0
  537. package/dist/utils/merge-claude-md.js +342 -0
  538. package/dist/utils/merge-claude-md.js.map +1 -0
  539. package/dist/utils/rate-limiter.d.ts +58 -0
  540. package/dist/utils/rate-limiter.d.ts.map +1 -0
  541. package/dist/utils/rate-limiter.js +100 -0
  542. package/dist/utils/rate-limiter.js.map +1 -0
  543. package/dist/utils/string-similarity.d.ts +37 -0
  544. package/dist/utils/string-similarity.d.ts.map +1 -0
  545. package/dist/utils/string-similarity.js +114 -0
  546. package/dist/utils/string-similarity.js.map +1 -0
  547. package/dist/utils/validate-json.d.ts +51 -0
  548. package/dist/utils/validate-json.d.ts.map +1 -0
  549. package/dist/utils/validate-json.js +94 -0
  550. package/dist/utils/validate-json.js.map +1 -0
  551. package/docs/INDEX.md +66 -0
  552. package/docs/architecture/MULTI_MODEL.md +224 -0
  553. package/docs/architecture/SYSTEM_ANALYSIS.md +1117 -0
  554. package/docs/architecture/UAP_COMPLIANCE.md +217 -0
  555. package/docs/architecture/UAP_PROTOCOL.md +339 -0
  556. package/docs/architecture/UAP_STRICT_DROIDS.md +172 -0
  557. package/docs/archive/BALLS_MODE_SELF_ANALYSIS.md +260 -0
  558. package/docs/archive/FAILING_TASKS_SOLUTION_PLAN.md +668 -0
  559. package/docs/archive/JINJA2-SYSTEM-MESSAGE-FIX.md +209 -0
  560. package/docs/archive/NPM-PUBLISH-V0.9.1.md +240 -0
  561. package/docs/archive/OPTIMIZATION_OPTIONS.md +334 -0
  562. package/docs/archive/SETUP_IMPROVEMENTS.md +213 -0
  563. package/docs/archive/UAP_GENERIC_OPTIMIZATION_PLAN.md +270 -0
  564. package/docs/archive/UAP_V103_PATTERN_DESIGN.md +315 -0
  565. package/docs/archive/UAP_V104_COMPLIANCE_DESIGN.md +223 -0
  566. package/docs/archive/changelog/2026-03-10_uap-100-compliance.md +77 -0
  567. package/docs/archive/changelog/2026-03-10_uap-full-system-verification.md +109 -0
  568. package/docs/benchmarks/ACCURACY_ANALYSIS.md +471 -0
  569. package/docs/benchmarks/TOKEN_OPTIMIZATION.md +572 -0
  570. package/docs/benchmarks/VALIDATION_PLAN.md +568 -0
  571. package/docs/benchmarks/VALIDATION_RESULTS.md +161 -0
  572. package/docs/deployment/DEPLOYMENT.md +895 -0
  573. package/docs/deployment/DEPLOYMENT_STRATEGIES.md +518 -0
  574. package/docs/deployment/DEPLOY_BATCHER_ANALYSIS.md +856 -0
  575. package/docs/deployment/DEPLOY_BATCHING.md +273 -0
  576. package/docs/deployment/DEPLOY_BUCKETING_ANALYSIS.md +420 -0
  577. package/docs/deployment/QWEN35_LLAMA_CPP.md +265 -0
  578. package/docs/getting-started/INTEGRATION.md +449 -0
  579. package/docs/getting-started/OVERVIEW.md +344 -0
  580. package/docs/getting-started/SETUP.md +203 -0
  581. package/docs/integrations/MCP_ROUTER_SETUP.md +445 -0
  582. package/docs/integrations/RTK_INTEGRATION.md +468 -0
  583. package/docs/operations/TROUBLESHOOTING.md +660 -0
  584. package/docs/reference/API_REFERENCE.md +903 -0
  585. package/docs/reference/FEATURES.md +472 -0
  586. package/docs/reference/HARNESS-MATRIX.md +318 -0
  587. package/docs/reference/UAP_CLI_REFERENCE.md +600 -0
  588. package/docs/research/BEHAVIORAL_PATTERNS.md +228 -0
  589. package/docs/research/DOMAIN_STRATEGIES.md +316 -0
  590. package/docs/research/MEMORY_SYSTEMS_COMPARISON.md +812 -0
  591. package/docs/research/PATTERN_ANALYSIS_2026-01-18.md +436 -0
  592. package/docs/research/PERFORMANCE_ANALYSIS_2026-01-18.md +209 -0
  593. package/docs/research/PERFORMANCE_TEST_PLAN.md +383 -0
  594. package/docs/research/TERMINAL_BENCH_LEARNINGS.md +217 -0
  595. package/package.json +113 -0
  596. package/scripts/README.md +161 -0
  597. package/templates/CLAUDE.template.md +10 -0
  598. package/templates/CLAUDE_ARCHITECTURE.template.md +103 -0
  599. package/templates/CLAUDE_CODING.template.md +127 -0
  600. package/templates/CLAUDE_DROIDS.template.md +109 -0
  601. package/templates/CLAUDE_MEMORY.template.md +131 -0
  602. package/templates/CLAUDE_WORKFLOWS.template.md +139 -0
  603. package/templates/PROJECT.template.md +209 -0
  604. package/templates/SCHEMA.md +57 -0
  605. package/templates/archive/CLAUDE.template.root-v6.md +534 -0
  606. package/templates/archive/CLAUDE.template.v6.md +534 -0
  607. package/templates/hooks/forgecode/pre-compact.sh +68 -0
  608. package/templates/hooks/forgecode/session-start.sh +169 -0
  609. package/templates/hooks/forgecode.plugin.sh +128 -0
  610. package/templates/hooks/pre-compact.sh +74 -0
  611. package/templates/hooks/session-start.sh +366 -0
  612. package/tools/agents/README.md +224 -0
  613. package/tools/agents/UAP/README.md +386 -0
  614. package/tools/agents/UAP/__init__.py +9 -0
  615. package/tools/agents/UAP/cli.py +901 -0
  616. package/tools/agents/UAP/compliance_verify.sh +108 -0
  617. package/tools/agents/UAP/full_verification.sh +126 -0
  618. package/tools/agents/UAP/version.py +32 -0
  619. package/tools/agents/benchmarks/benchmark_memory_systems.py +730 -0
  620. package/tools/agents/benchmarks/results/benchmark_20260106_064817.json +170 -0
  621. package/tools/agents/benchmarks/results/benchmark_20260106_064817.md +51 -0
  622. package/tools/agents/config/chat_template.jinja +77 -0
  623. package/tools/agents/config/tool-call-schema.json +19 -0
  624. package/tools/agents/config/tool-call.gbnf +58 -0
  625. package/tools/agents/docker/Dockerfile.python +52 -0
  626. package/tools/agents/docker/Dockerfile.ubuntu +55 -0
  627. package/tools/agents/docker-compose.qdrant.yml +24 -0
  628. package/tools/agents/install-opencode-local.sh.j2 +135 -0
  629. package/tools/agents/migrations/apply.py +256 -0
  630. package/tools/agents/opencode_uap_agent.py +1505 -0
  631. package/tools/agents/plugin/README.md +91 -0
  632. package/tools/agents/plugin/index.ts +46 -0
  633. package/tools/agents/plugin/pre-compact.sh +68 -0
  634. package/tools/agents/plugin/session-start.sh +175 -0
  635. package/tools/agents/plugin/uap-commands.ts +45 -0
  636. package/tools/agents/plugin/uap-droids.ts +54 -0
  637. package/tools/agents/plugin/uap-patterns.ts +54 -0
  638. package/tools/agents/plugin/uap-skills.ts +52 -0
  639. package/tools/agents/plugins/uap-enforce.ts +314 -0
  640. package/tools/agents/scripts/__pycache__/tool_call_wrapper.cpython-313.pyc +0 -0
  641. package/tools/agents/scripts/chat_template_verifier.py +343 -0
  642. package/tools/agents/scripts/fix-qwen-template.js +38 -0
  643. package/tools/agents/scripts/fix_qwen_chat_template.py +316 -0
  644. package/tools/agents/scripts/generate_lora_training_data.py +412 -0
  645. package/tools/agents/scripts/init_qdrant.py +151 -0
  646. package/tools/agents/scripts/memory_migration.py +560 -0
  647. package/tools/agents/scripts/migrate_memory_to_qdrant.py +110 -0
  648. package/tools/agents/scripts/prepare_lora.sh +512 -0
  649. package/tools/agents/scripts/query_memory.py +200 -0
  650. package/tools/agents/scripts/qwen-tool-call-test.js +38 -0
  651. package/tools/agents/scripts/qwen-tool-call-wrapper.js +38 -0
  652. package/tools/agents/scripts/qwen_tool_call_test.py +464 -0
  653. package/tools/agents/scripts/qwen_tool_call_wrapper.py +686 -0
  654. package/tools/agents/scripts/start-services.sh +96 -0
  655. package/tools/agents/scripts/tool-choice-proxy.cjs +296 -0
  656. package/tools/agents/scripts/tool_call_test.py +656 -0
  657. package/tools/agents/scripts/tool_call_wrapper.py +799 -0
  658. package/tools/agents/tests/test_uap_compliance.py +257 -0
  659. package/tools/agents/uap_agent.py +122 -0
  660. package/tools/agents/uap_agent_install.sh +12 -0
@@ -0,0 +1,856 @@
1
+ # DeployBatcher Feature Analysis
2
+
3
+ > Comprehensive analysis of the `DeployBatcher` class - a multi-agent deployment optimization system designed to reduce CI/CD pipeline minutes through intelligent batching, squashing, and parallel execution.
4
+
5
+ ## Table of Contents
6
+
7
+ 1. [Overview](#overview)
8
+ 2. [Architecture](#architecture)
9
+ 3. [Type System](#type-system)
10
+ 4. [Class Diagram](#class-diagram)
11
+ 5. [Core Features](#core-features)
12
+ 6. [Data Flow](#data-flow)
13
+ 7. [State Management](#state-management)
14
+ 8. [CI/CD Optimization Strategies](#cicd-optimization-strategies)
15
+ 9. [CLI Integration](#cli-integration)
16
+ 10. [Usage Examples](#usage-examples)
17
+ 11. [Performance Characteristics](#performance-characteristics)
18
+
19
+ ---
20
+
21
+ ## Overview
22
+
23
+ The `DeployBatcher` is a SQLite-backed deployment coordination system that optimizes CI/CD pipeline usage in multi-agent environments. It addresses a critical problem: when multiple AI agents work in parallel, they can trigger redundant CI/CD runs, consuming expensive pipeline minutes.
24
+
25
+ ### Key Problem Solved
26
+
27
+ ```
28
+ Without DeployBatcher:
29
+ Agent A commits → CI Run 1 (5 min)
30
+ Agent B commits → CI Run 2 (5 min)
31
+ Agent C commits → CI Run 3 (5 min)
32
+ Agent A pushes → CI Run 4 (5 min)
33
+ Total: 4 runs × 5 min = 20 CI minutes
34
+
35
+ With DeployBatcher:
36
+ Agent A, B, C queue commits → Batched → Single squashed commit
37
+ Single push → CI Run 1 (5 min)
38
+ Total: 1 run × 5 min = 5 CI minutes (75% reduction)
39
+ ```
40
+
41
+ ---
42
+
43
+ ## Architecture
44
+
45
+ ```mermaid
46
+ graph TB
47
+ subgraph "Multi-Agent Environment"
48
+ A1[Agent 1]
49
+ A2[Agent 2]
50
+ A3[Agent N]
51
+ end
52
+
53
+ subgraph "DeployBatcher Core"
54
+ Q[Queue Layer]
55
+ B[Batch Creator]
56
+ S[Squash Engine]
57
+ E[Executor]
58
+ end
59
+
60
+ subgraph "Storage"
61
+ DB[(SQLite DB)]
62
+ DQ[deploy_queue]
63
+ DBT[deploy_batches]
64
+ end
65
+
66
+ subgraph "Execution Targets"
67
+ GIT[Git Operations]
68
+ GH[GitHub CLI]
69
+ DEPLOY[Deploy Scripts]
70
+ end
71
+
72
+ A1 --> Q
73
+ A2 --> Q
74
+ A3 --> Q
75
+
76
+ Q --> DB
77
+ DB --> DQ
78
+ DB --> DBT
79
+
80
+ Q --> B
81
+ B --> S
82
+ S --> E
83
+
84
+ E --> GIT
85
+ E --> GH
86
+ E --> DEPLOY
87
+
88
+ style Q fill:#e1f5fe
89
+ style B fill:#fff3e0
90
+ style S fill:#f3e5f5
91
+ style E fill:#e8f5e9
92
+ ```
93
+
94
+ ---
95
+
96
+ ## Type System
97
+
98
+ ### Core Types (from `types/coordination.ts`)
99
+
100
+ ```typescript
101
+ // Action types that can be batched
102
+ type DeployActionType = 'commit' | 'push' | 'merge' | 'deploy' | 'workflow';
103
+
104
+ // Status lifecycle
105
+ type DeployStatus = 'pending' | 'batched' | 'executing' | 'completed' | 'failed';
106
+
107
+ // Single deploy action
108
+ interface DeployAction {
109
+ id: number;
110
+ agentId: string;
111
+ actionType: DeployActionType;
112
+ target: string;
113
+ payload?: Record<string, unknown>;
114
+ status: DeployStatus;
115
+ batchId?: string;
116
+ queuedAt: string;
117
+ executeAfter?: string;
118
+ priority: number;
119
+ dependencies?: string[];
120
+ }
121
+
122
+ // Grouped batch
123
+ interface DeployBatch {
124
+ id: string; // UUID
125
+ actions: DeployAction[];
126
+ createdAt: string;
127
+ status: DeployStatus;
128
+ }
129
+
130
+ // Execution result
131
+ interface BatchResult {
132
+ batchId: string;
133
+ success: boolean;
134
+ executedActions: number;
135
+ failedActions: number;
136
+ errors?: string[];
137
+ duration: number; // milliseconds
138
+ }
139
+ ```
140
+
141
+ ### Configuration Interfaces
142
+
143
+ ```typescript
144
+ // Dynamic window configuration (per action type)
145
+ interface DynamicBatchWindows {
146
+ commit: number; // Default: 30000ms (30s)
147
+ push: number; // Default: 5000ms (5s)
148
+ merge: number; // Default: 10000ms (10s)
149
+ workflow: number; // Default: 5000ms (5s)
150
+ deploy: number; // Default: 60000ms (60s)
151
+ }
152
+
153
+ // Batcher configuration
154
+ interface DeployBatcherConfig {
155
+ dbPath?: string;
156
+ batchWindowMs?: number; // Legacy single window
157
+ dynamicWindows?: Partial<DynamicBatchWindows>;
158
+ maxBatchSize?: number; // Default: 20
159
+ dryRun?: boolean;
160
+ parallelExecution?: boolean; // Default: true
161
+ maxParallelActions?: number; // Default: 5
162
+ }
163
+ ```
164
+
165
+ ---
166
+
167
+ ## Class Diagram
168
+
169
+ ```mermaid
170
+ classDiagram
171
+ class DeployBatcher {
172
+ -db: Database
173
+ -dynamicWindows: DynamicBatchWindows
174
+ -maxBatchSize: number
175
+ -dryRun: boolean
176
+ -parallelExecution: boolean
177
+ -maxParallelActions: number
178
+
179
+ +constructor(config?: DeployBatcherConfig)
180
+ +getBatchWindow(actionType): number
181
+ +setUrgentMode(urgent: boolean): void
182
+ +queue(agentId, actionType, target, payload?, options?): Promise~number~
183
+ +queueBulk(agentId, actions): Promise~number[]~
184
+ +createBatch(): Promise~DeployBatch|null~
185
+ +executeBatch(batchId): Promise~BatchResult~
186
+ +getBatch(batchId): DeployBatch|null
187
+ +getPendingBatches(): DeployBatch[]
188
+ +flushAll(): Promise~BatchResult[]~
189
+ +getWindowConfig(): DynamicBatchWindows
190
+
191
+ -queueSync(agentId, actionType, target, payload?, options?): number
192
+ -findSimilarAction(actionType, target): DeployAction|null
193
+ -canMerge(existing, incoming): boolean
194
+ -mergeActions(existingId, newPayload?): Promise~void~
195
+ -mergePayloads(existing, incoming): Record
196
+ -groupByTarget(actions): Map
197
+ -squashActions(grouped): DeployAction[]
198
+ -squashCommits(commits): DeployAction
199
+ -categorizeActions(actions): {sequential, parallel}
200
+ -executeParallel(actions): Promise~Array~
201
+ -executeAction(action): Promise~void~
202
+ -executeCommit(target, payload): Promise~void~
203
+ -executePush(target, payload): Promise~void~
204
+ -executeMerge(target, payload): Promise~void~
205
+ -executeWorkflow(target, payload): Promise~void~
206
+ -executeDeploy(target, payload): Promise~void~
207
+ -updateActionStatus(actionId, status): void
208
+ }
209
+
210
+ class CoordinationDatabase {
211
+ -db: Database
212
+ -instance: CoordinationDatabase$
213
+
214
+ +getInstance(dbPath): CoordinationDatabase$
215
+ +resetInstance(): void$
216
+ +getDatabase(): Database
217
+ +close(): void
218
+ -initSchema(): void
219
+ }
220
+
221
+ class DeployAction {
222
+ <<interface>>
223
+ +id: number
224
+ +agentId: string
225
+ +actionType: DeployActionType
226
+ +target: string
227
+ +payload?: Record
228
+ +status: DeployStatus
229
+ +batchId?: string
230
+ +queuedAt: string
231
+ +executeAfter?: string
232
+ +priority: number
233
+ +dependencies?: string[]
234
+ }
235
+
236
+ class DeployBatch {
237
+ <<interface>>
238
+ +id: string
239
+ +actions: DeployAction[]
240
+ +createdAt: string
241
+ +status: DeployStatus
242
+ }
243
+
244
+ class BatchResult {
245
+ <<interface>>
246
+ +batchId: string
247
+ +success: boolean
248
+ +executedActions: number
249
+ +failedActions: number
250
+ +errors?: string[]
251
+ +duration: number
252
+ }
253
+
254
+ class DynamicBatchWindows {
255
+ <<interface>>
256
+ +commit: number
257
+ +push: number
258
+ +merge: number
259
+ +workflow: number
260
+ +deploy: number
261
+ }
262
+
263
+ DeployBatcher --> CoordinationDatabase : uses
264
+ DeployBatcher --> DeployAction : manages
265
+ DeployBatcher --> DeployBatch : creates
266
+ DeployBatcher --> BatchResult : returns
267
+ DeployBatcher --> DynamicBatchWindows : configures
268
+ DeployBatch --> DeployAction : contains
269
+ ```
270
+
271
+ ---
272
+
273
+ ## Core Features
274
+
275
+ ### 1. Dynamic Batch Windows
276
+
277
+ Different action types have different time-sensitivity requirements:
278
+
279
+ | Action Type | Window | Rationale |
280
+ |-------------|--------|-----------|
281
+ | `push` | 5s | PRs need fast feedback |
282
+ | `workflow` | 5s | CI triggers should be responsive |
283
+ | `merge` | 10s | Moderate safety buffer |
284
+ | `commit` | 30s | Allows squashing multiple commits |
285
+ | `deploy` | 60s | Safety buffer for production |
286
+
287
+ ```mermaid
288
+ gantt
289
+ title Batch Window Timeline
290
+ dateFormat X
291
+ axisFormat %s
292
+
293
+ section Push Actions
294
+ Window (5s) :0, 5
295
+
296
+ section Workflow Actions
297
+ Window (5s) :0, 5
298
+
299
+ section Merge Actions
300
+ Window (10s) :0, 10
301
+
302
+ section Commit Actions
303
+ Window (30s) :0, 30
304
+
305
+ section Deploy Actions
306
+ Window (60s) :0, 60
307
+ ```
308
+
309
+ ### 2. Action Merging & Deduplication
310
+
311
+ The batcher intelligently merges similar pending actions:
312
+
313
+ ```mermaid
314
+ flowchart LR
315
+ subgraph "Incoming Actions"
316
+ C1[Commit: file1.ts]
317
+ C2[Commit: file2.ts]
318
+ C3[Commit: file3.ts]
319
+ P1[Push: main]
320
+ P2[Push: main]
321
+ W1[Workflow: test.yml]
322
+ W2[Workflow: test.yml]
323
+ end
324
+
325
+ subgraph "Merge Logic"
326
+ MC[canMerge]
327
+ MP[mergePayloads]
328
+ end
329
+
330
+ subgraph "Result"
331
+ SC[Squashed Commit:\nfile1, file2, file3]
332
+ SP[Single Push: main]
333
+ SW[Single Workflow: test.yml]
334
+ end
335
+
336
+ C1 --> MC
337
+ C2 --> MC
338
+ C3 --> MC
339
+ MC --> MP
340
+ MP --> SC
341
+
342
+ P1 --> MC
343
+ P2 --> MC
344
+ MC --> SP
345
+
346
+ W1 --> MC
347
+ W2 --> MC
348
+ MC --> SW
349
+ ```
350
+
351
+ ### 3. Commit Squashing
352
+
353
+ Multiple commits to the same target are squashed into one:
354
+
355
+ ```typescript
356
+ // Input: 3 separate commits
357
+ [
358
+ { message: "fix: typo in auth", files: ["src/auth.ts"] },
359
+ { message: "feat: add logging", files: ["src/logger.ts"] },
360
+ { message: "test: add auth tests", files: ["test/auth.test.ts"] }
361
+ ]
362
+
363
+ // Output: Single squashed commit
364
+ {
365
+ message: "Squashed 3 commits:\n\n1. fix: typo in auth\n2. feat: add logging\n3. test: add auth tests",
366
+ files: ["src/auth.ts", "src/logger.ts", "test/auth.test.ts"],
367
+ squashedFrom: [1, 2, 3]
368
+ }
369
+ ```
370
+
371
+ ### 4. Parallel Execution
372
+
373
+ Actions are categorized for parallel vs sequential execution:
374
+
375
+ ```mermaid
376
+ flowchart TB
377
+ subgraph "Action Pool"
378
+ A1[Commit]
379
+ A2[Push]
380
+ A3[Workflow 1]
381
+ A4[Workflow 2]
382
+ A5[Workflow 3]
383
+ A6[Deploy]
384
+ end
385
+
386
+ subgraph "Categorization"
387
+ CAT{categorizeActions}
388
+ end
389
+
390
+ subgraph "Sequential Queue"
391
+ S1[Commit]
392
+ S2[Push]
393
+ S3[Deploy]
394
+ end
395
+
396
+ subgraph "Parallel Pool"
397
+ P1[Workflow 1]
398
+ P2[Workflow 2]
399
+ P3[Workflow 3]
400
+ end
401
+
402
+ A1 --> CAT
403
+ A2 --> CAT
404
+ A3 --> CAT
405
+ A4 --> CAT
406
+ A5 --> CAT
407
+ A6 --> CAT
408
+
409
+ CAT --> S1
410
+ CAT --> S2
411
+ CAT --> S3
412
+ CAT --> P1
413
+ CAT --> P2
414
+ CAT --> P3
415
+
416
+ S1 --> |"order matters"| S2
417
+ S2 --> S3
418
+
419
+ P1 --> |"concurrent"| DONE[Complete]
420
+ P2 --> |"concurrent"| DONE
421
+ P3 --> |"concurrent"| DONE
422
+ ```
423
+
424
+ **Parallel-safe types**: `workflow` (no state dependencies)
425
+ **Sequential types**: `commit`, `push`, `merge`, `deploy` (state-dependent)
426
+
427
+ ### 5. Urgent Mode
428
+
429
+ For time-critical operations, urgent mode reduces all windows:
430
+
431
+ ```typescript
432
+ // Normal mode
433
+ { commit: 30000, push: 5000, merge: 10000, workflow: 5000, deploy: 60000 }
434
+
435
+ // Urgent mode
436
+ { commit: 2000, push: 1000, merge: 2000, workflow: 1000, deploy: 5000 }
437
+ ```
438
+
439
+ ---
440
+
441
+ ## Data Flow
442
+
443
+ ### Queue → Batch → Execute Flow
444
+
445
+ ```mermaid
446
+ sequenceDiagram
447
+ participant A1 as Agent 1
448
+ participant A2 as Agent 2
449
+ participant Q as queue()
450
+ participant DB as SQLite
451
+ participant CB as createBatch()
452
+ participant EB as executeBatch()
453
+ participant GIT as Git/GitHub
454
+
455
+ Note over A1,A2: Multiple agents queue actions
456
+
457
+ A1->>Q: queue(commit, main, {files})
458
+ Q->>DB: INSERT INTO deploy_queue
459
+ Q-->>A1: action_id: 1
460
+
461
+ A2->>Q: queue(commit, main, {files})
462
+ Q->>DB: findSimilarAction()
463
+ DB-->>Q: existing action found
464
+ Q->>DB: mergeActions()
465
+ Q-->>A2: action_id: 1 (merged)
466
+
467
+ A1->>Q: queue(push, main)
468
+ Q->>DB: INSERT INTO deploy_queue
469
+ Q-->>A1: action_id: 2
470
+
471
+ Note over CB: Time window expires
472
+
473
+ rect rgb(255, 243, 224)
474
+ CB->>DB: SELECT pending WHERE execute_after <= now
475
+ DB-->>CB: [action 1, action 2]
476
+ CB->>CB: groupByTarget()
477
+ CB->>CB: squashActions()
478
+ CB->>DB: UPDATE status='batched', INSERT batch
479
+ CB-->>EB: DeployBatch
480
+ end
481
+
482
+ rect rgb(232, 245, 233)
483
+ EB->>EB: categorizeActions()
484
+ EB->>DB: UPDATE status='executing'
485
+
486
+ par Parallel Execution
487
+ EB->>GIT: executeAction(workflow)
488
+ and
489
+ EB->>GIT: executeAction(workflow)
490
+ end
491
+
492
+ loop Sequential Execution
493
+ EB->>GIT: executeCommit()
494
+ EB->>GIT: executePush()
495
+ end
496
+
497
+ EB->>DB: UPDATE status='completed'
498
+ EB-->>A1: BatchResult
499
+ end
500
+ ```
501
+
502
+ ---
503
+
504
+ ## State Management
505
+
506
+ ### Action Status Lifecycle
507
+
508
+ ```mermaid
509
+ stateDiagram-v2
510
+ [*] --> pending: queue()
511
+
512
+ pending --> pending: mergeActions()
513
+ pending --> batched: createBatch()
514
+
515
+ batched --> executing: executeBatch()
516
+
517
+ executing --> completed: success
518
+ executing --> failed: error
519
+
520
+ completed --> [*]
521
+ failed --> [*]
522
+
523
+ note right of pending
524
+ Actions wait in queue
525
+ until executeAfter time
526
+ end note
527
+
528
+ note right of batched
529
+ Actions grouped into
530
+ batch, ready for execution
531
+ end note
532
+
533
+ note right of executing
534
+ Parallel/sequential
535
+ execution in progress
536
+ end note
537
+ ```
538
+
539
+ ### Batch Status Lifecycle
540
+
541
+ ```mermaid
542
+ stateDiagram-v2
543
+ [*] --> pending: createBatch()
544
+
545
+ pending --> executing: executeBatch() starts
546
+
547
+ executing --> completed: all actions succeed
548
+ executing --> completed: partial success (some failed)
549
+ executing --> failed: all actions failed
550
+
551
+ completed --> [*]
552
+ failed --> [*]
553
+ ```
554
+
555
+ ---
556
+
557
+ ## CI/CD Optimization Strategies
558
+
559
+ ### Strategy 1: Commit Squashing
560
+
561
+ **Problem**: N commits = N CI runs
562
+ **Solution**: Squash commits within window into single commit
563
+
564
+ ```mermaid
565
+ flowchart LR
566
+ subgraph "Without Squashing"
567
+ C1A[Commit 1] --> CI1[CI Run 1]
568
+ C2A[Commit 2] --> CI2[CI Run 2]
569
+ C3A[Commit 3] --> CI3[CI Run 3]
570
+ end
571
+
572
+ subgraph "With Squashing"
573
+ C1B[Commit 1] --> SQ[Squash]
574
+ C2B[Commit 2] --> SQ
575
+ C3B[Commit 3] --> SQ
576
+ SQ --> CIS[CI Run 1]
577
+ end
578
+
579
+ style CI1 fill:#ffcdd2
580
+ style CI2 fill:#ffcdd2
581
+ style CI3 fill:#ffcdd2
582
+ style CIS fill:#c8e6c9
583
+ ```
584
+
585
+ **Savings**: ~67% reduction (3 runs → 1 run)
586
+
587
+ ### Strategy 2: Push Deduplication
588
+
589
+ **Problem**: Multiple agents push to same branch
590
+ **Solution**: Merge push requests, execute once
591
+
592
+ ```mermaid
593
+ flowchart LR
594
+ subgraph "Without Dedup"
595
+ P1A[Push Agent 1] --> CI1[CI Run 1]
596
+ P2A[Push Agent 2] --> CI2[CI Run 2]
597
+ end
598
+
599
+ subgraph "With Dedup"
600
+ P1B[Push Agent 1] --> MERGE[Merge]
601
+ P2B[Push Agent 2] --> MERGE
602
+ MERGE --> CIS[CI Run 1]
603
+ end
604
+
605
+ style CI1 fill:#ffcdd2
606
+ style CI2 fill:#ffcdd2
607
+ style CIS fill:#c8e6c9
608
+ ```
609
+
610
+ ### Strategy 3: Workflow Trigger Batching
611
+
612
+ **Problem**: Redundant workflow dispatches
613
+ **Solution**: Deduplicate identical workflow triggers
614
+
615
+ ### Strategy 4: Time-Window Batching
616
+
617
+ **Problem**: Rapid-fire actions trigger multiple pipelines
618
+ **Solution**: Delay execution to collect related actions
619
+
620
+ ```mermaid
621
+ gantt
622
+ title Action Batching Timeline
623
+ dateFormat X
624
+ axisFormat %s
625
+
626
+ section Without Batching
627
+ Action 1 :a1, 0, 1
628
+ CI Run 1 :crit, ci1, 1, 6
629
+ Action 2 :a2, 3, 1
630
+ CI Run 2 :crit, ci2, 4, 9
631
+ Action 3 :a3, 5, 1
632
+ CI Run 3 :crit, ci3, 6, 11
633
+
634
+ section With Batching (30s window)
635
+ Action 1 :a1b, 0, 1
636
+ Action 2 :a2b, 3, 1
637
+ Action 3 :a3b, 5, 1
638
+ Window :active, w, 0, 30
639
+ Batch CI :done, bci, 30, 35
640
+ ```
641
+
642
+ ---
643
+
644
+ ## CLI Integration
645
+
646
+ The `DeployBatcher` is exposed through the CLI:
647
+
648
+ ```bash
649
+ # Queue a commit
650
+ uam deploy queue --agent-id <id> --action-type commit --target main \
651
+ --message "feat: new feature" --files "src/feature.ts"
652
+
653
+ # Queue a push
654
+ uam deploy queue --agent-id <id> --action-type push --target main
655
+
656
+ # Queue a workflow trigger
657
+ uam deploy queue --agent-id <id> --action-type workflow --target test.yml \
658
+ --ref main --inputs '{"env":"staging"}'
659
+
660
+ # View status
661
+ uam deploy status
662
+
663
+ # Create batch manually
664
+ uam deploy batch
665
+
666
+ # Execute specific batch
667
+ uam deploy execute --batch-id <uuid>
668
+
669
+ # Flush all pending
670
+ uam deploy flush
671
+ ```
672
+
673
+ ### CLI Command Flow
674
+
675
+ ```mermaid
676
+ flowchart TB
677
+ subgraph "CLI Commands"
678
+ QC[uam deploy queue]
679
+ BC[uam deploy batch]
680
+ EC[uam deploy execute]
681
+ SC[uam deploy status]
682
+ FC[uam deploy flush]
683
+ end
684
+
685
+ subgraph "DeployBatcher Methods"
686
+ Q[queue]
687
+ CB[createBatch]
688
+ EB[executeBatch]
689
+ GB[getBatch/getPendingBatches]
690
+ FA[flushAll]
691
+ end
692
+
693
+ QC --> Q
694
+ BC --> CB
695
+ EC --> EB
696
+ SC --> GB
697
+ FC --> FA
698
+ ```
699
+
700
+ ---
701
+
702
+ ## Usage Examples
703
+
704
+ ### Example 1: Multi-Agent Commit Batching
705
+
706
+ ```typescript
707
+ import { DeployBatcher } from './coordination/deploy-batcher.js';
708
+
709
+ const batcher = new DeployBatcher({
710
+ dynamicWindows: { commit: 30000 }, // 30s window
711
+ parallelExecution: true,
712
+ });
713
+
714
+ // Agent 1 commits
715
+ await batcher.queue('agent-1', 'commit', 'main', {
716
+ message: 'feat: add user auth',
717
+ files: ['src/auth.ts', 'src/user.ts']
718
+ });
719
+
720
+ // Agent 2 commits (within window - will be merged)
721
+ await batcher.queue('agent-2', 'commit', 'main', {
722
+ message: 'feat: add logging',
723
+ files: ['src/logger.ts']
724
+ });
725
+
726
+ // After 30s, create and execute batch
727
+ const batch = await batcher.createBatch();
728
+ const result = await batcher.executeBatch(batch.id);
729
+
730
+ console.log(result);
731
+ // {
732
+ // batchId: 'uuid',
733
+ // success: true,
734
+ // executedActions: 1, // Squashed into single commit
735
+ // failedActions: 0,
736
+ // duration: 1234
737
+ // }
738
+ ```
739
+
740
+ ### Example 2: Urgent Deployment
741
+
742
+ ```typescript
743
+ const batcher = new DeployBatcher();
744
+
745
+ // Enable urgent mode for critical fix
746
+ batcher.setUrgentMode(true);
747
+
748
+ // Queue with minimal delay
749
+ await batcher.queue('agent-1', 'commit', 'main', {
750
+ message: 'hotfix: critical security patch',
751
+ files: ['src/security.ts']
752
+ }, { urgent: true });
753
+
754
+ await batcher.queue('agent-1', 'push', 'main', {}, { urgent: true });
755
+
756
+ // Immediately flush
757
+ const results = await batcher.flushAll();
758
+
759
+ // Restore normal mode
760
+ batcher.setUrgentMode(false);
761
+ ```
762
+
763
+ ### Example 3: Bulk Queue with Transaction
764
+
765
+ ```typescript
766
+ const batcher = new DeployBatcher();
767
+
768
+ // Queue multiple actions atomically
769
+ const ids = await batcher.queueBulk('agent-1', [
770
+ { actionType: 'commit', target: 'main', payload: { message: 'feat: A' } },
771
+ { actionType: 'commit', target: 'main', payload: { message: 'feat: B' } },
772
+ { actionType: 'push', target: 'main' },
773
+ { actionType: 'workflow', target: 'deploy.yml', payload: { ref: 'main' } },
774
+ ]);
775
+
776
+ console.log(`Queued ${ids.length} actions`);
777
+ ```
778
+
779
+ ---
780
+
781
+ ## Performance Characteristics
782
+
783
+ ### Time Complexity
784
+
785
+ | Operation | Complexity | Notes |
786
+ |-----------|------------|-------|
787
+ | `queue()` | O(1) | Single INSERT |
788
+ | `queueBulk()` | O(n) | Transaction with n INSERTs |
789
+ | `createBatch()` | O(n log n) | SELECT + grouping + squashing |
790
+ | `executeBatch()` | O(n) sequential, O(n/p) parallel | p = maxParallelActions |
791
+ | `flushAll()` | O(b × n) | b batches, n actions each |
792
+
793
+ ### Space Complexity
794
+
795
+ | Storage | Size |
796
+ |---------|------|
797
+ | Per action | ~500 bytes (JSON payload) |
798
+ | Per batch | ~100 bytes + action references |
799
+ | SQLite overhead | ~4KB per page |
800
+
801
+ ### Recommended Limits
802
+
803
+ | Parameter | Default | Max Recommended |
804
+ |-----------|---------|-----------------|
805
+ | `maxBatchSize` | 20 | 100 |
806
+ | `maxParallelActions` | 5 | 10 |
807
+ | Queue depth | - | 1000 actions |
808
+
809
+ ---
810
+
811
+ ## Database Schema
812
+
813
+ ```mermaid
814
+ erDiagram
815
+ deploy_queue {
816
+ INTEGER id PK
817
+ TEXT agent_id
818
+ TEXT action_type
819
+ TEXT target
820
+ TEXT payload
821
+ TEXT status
822
+ TEXT batch_id FK
823
+ TEXT queued_at
824
+ TEXT execute_after
825
+ INTEGER priority
826
+ TEXT dependencies
827
+ }
828
+
829
+ deploy_batches {
830
+ TEXT id PK
831
+ TEXT created_at
832
+ TEXT executed_at
833
+ TEXT status
834
+ TEXT result
835
+ }
836
+
837
+ deploy_queue }o--|| deploy_batches : "belongs to"
838
+ ```
839
+
840
+ ---
841
+
842
+ ## Summary
843
+
844
+ The `DeployBatcher` provides a comprehensive solution for optimizing CI/CD pipeline usage in multi-agent environments:
845
+
846
+ | Feature | Benefit |
847
+ |---------|---------|
848
+ | Dynamic batch windows | Balances speed vs batching per action type |
849
+ | Commit squashing | Reduces N commits to 1 CI run |
850
+ | Action merging | Deduplicates redundant operations |
851
+ | Parallel execution | Faster batch completion |
852
+ | Urgent mode | Fast path for critical operations |
853
+ | SQLite persistence | Survives agent restarts |
854
+ | CLI integration | Easy manual control |
855
+
856
+ **Typical CI/CD savings**: 50-80% reduction in pipeline minutes for multi-agent workflows.