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,239 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * UAP Tool Call Setup - Qwen3.5 Tool Call Fixes
4
+ * Manages chat templates, wrapper scripts, and testing for Qwen3.5 tool calling
5
+ */
6
+ import { execSync } from 'child_process';
7
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
8
+ import { join } from 'path';
9
+ import chalk from 'chalk';
10
+ const UAM_ROOT = process.cwd();
11
+ const AGENTS_DIR = join(UAM_ROOT, 'tools', 'agents');
12
+ const CONFIG_DIR = join(AGENTS_DIR, 'config');
13
+ const SCRIPTS_DIR = join(AGENTS_DIR, 'scripts');
14
+ function ensureDir(dir) {
15
+ if (!existsSync(dir)) {
16
+ mkdirSync(dir, { recursive: true });
17
+ console.log(chalk.green(`✓ Created directory: ${dir}`));
18
+ }
19
+ }
20
+ async function setup() {
21
+ console.log(chalk.cyan('\n🔧 Setting up Qwen3.5 Tool Call Fixes...\n'));
22
+ // Ensure directories exist
23
+ ensureDir(CONFIG_DIR);
24
+ ensureDir(SCRIPTS_DIR);
25
+ // Copy chat template if not exists
26
+ const templateSrc = join(UAM_ROOT, 'tools', 'agents', 'config', 'chat_template.jinja');
27
+ const templateDest = join(CONFIG_DIR, 'chat_template.jinja');
28
+ if (existsSync(templateSrc) && !existsSync(templateDest)) {
29
+ writeFileSync(templateDest, readFileSync(templateSrc));
30
+ console.log(chalk.green(`✓ Copied chat template: ${templateDest}`));
31
+ }
32
+ else if (!existsSync(templateDest)) {
33
+ console.log(chalk.yellow('⚠ Chat template not found in tools/agents/config'));
34
+ }
35
+ // Copy Python scripts if needed
36
+ const pythonScripts = [
37
+ 'fix_qwen_chat_template.py',
38
+ 'qwen_tool_call_wrapper.py',
39
+ 'qwen_tool_call_test.py',
40
+ ];
41
+ for (const script of pythonScripts) {
42
+ const src = join(UAM_ROOT, 'tools', 'agents', 'scripts', script);
43
+ const dest = join(SCRIPTS_DIR, script);
44
+ if (existsSync(src) && !existsSync(dest)) {
45
+ writeFileSync(dest, readFileSync(src));
46
+ console.log(chalk.green(`✓ Copied script: ${script}`));
47
+ }
48
+ else if (!existsSync(dest)) {
49
+ console.log(chalk.yellow(`⚠ Script not found: ${script}`));
50
+ }
51
+ }
52
+ // Make scripts executable
53
+ try {
54
+ execSync(`chmod +x ${SCRIPTS_DIR}/*.py`, { stdio: 'ignore' });
55
+ console.log(chalk.green('✓ Made Python scripts executable'));
56
+ }
57
+ catch (err) {
58
+ console.log(chalk.yellow('⚠ Could not make scripts executable'));
59
+ }
60
+ // Print summary
61
+ console.log('\n' + chalk.cyan('=').repeat(70));
62
+ console.log(chalk.bold('Qwen3.5 Tool Call Setup Complete!'));
63
+ console.log(chalk.cyan('=').repeat(70) + '\n');
64
+ console.log(chalk.bold('Installed Components:'));
65
+ console.log(` • Chat template: ${templateDest}`);
66
+ console.log(` • Python scripts: ${SCRIPTS_DIR}/`);
67
+ if (existsSync(templateDest)) {
68
+ const stat = await import('fs').then(m => m.statSync(templateDest));
69
+ console.log(` - Size: ${stat.size} bytes`);
70
+ }
71
+ console.log('\n' + chalk.bold('Python Scripts Available:'));
72
+ console.log(' • qwen_tool_call_test.py - Run reliability tests');
73
+ console.log(' • qwen_tool_call_wrapper.py - Apply wrapper fixes');
74
+ console.log(' • fix_qwen_chat_template.py - Fix existing templates\n');
75
+ console.log(chalk.bold('Performance Improvements:'));
76
+ console.log(' • Single tool call: ~95% → ~98%');
77
+ console.log(' • 2-3 tool calls: ~70% → ~92%');
78
+ console.log(' • 5+ tool calls: ~40% → ~88%');
79
+ console.log(' • Long context (50K+): ~30% → ~85%\n');
80
+ console.log(chalk.bold('Next Steps:'));
81
+ console.log(' 1. Test the setup: uap tool-calls test');
82
+ console.log(' 2. Check status: uap tool-calls status');
83
+ console.log(' 3. Apply fixes: uap tool-calls fix\n');
84
+ }
85
+ async function test() {
86
+ console.log(chalk.cyan('\n🧪 Running Qwen3.5 Tool Call Tests...\n'));
87
+ const testScript = join(SCRIPTS_DIR, 'qwen_tool_call_test.py');
88
+ if (!existsSync(testScript)) {
89
+ console.error(chalk.red(`❌ Test script not found: ${testScript}`));
90
+ console.log(chalk.yellow('Run: uap tool-calls setup\n'));
91
+ process.exit(1);
92
+ }
93
+ try {
94
+ execSync(`python3 "${testScript}" --verbose`, {
95
+ cwd: SCRIPTS_DIR,
96
+ stdio: 'inherit',
97
+ });
98
+ }
99
+ catch (err) {
100
+ console.log(chalk.yellow('\n⚠ Test completed with some failures'));
101
+ console.log('Review the output above for details.\n');
102
+ }
103
+ }
104
+ async function status() {
105
+ console.log(chalk.cyan('\n' + '='.repeat(70)));
106
+ console.log(chalk.bold('Qwen3.5 Tool Call Configuration Status'));
107
+ console.log(chalk.cyan('='.repeat(70) + '\n'));
108
+ // Check template
109
+ const templatePath = join(CONFIG_DIR, 'chat_template.jinja');
110
+ if (existsSync(templatePath)) {
111
+ const fs = await import('fs');
112
+ const stat = fs.statSync(templatePath);
113
+ console.log(chalk.green(`✓ Chat template: ${templatePath}`));
114
+ console.log(` Modified: ${stat.mtime.toISOString()}`);
115
+ console.log(` Size: ${stat.size} bytes`);
116
+ }
117
+ else {
118
+ console.log(chalk.yellow(`✗ Chat template not found: ${templatePath}`));
119
+ console.log(' Run: uap tool-calls setup\n');
120
+ }
121
+ // Check Python scripts
122
+ const pythonScripts = [
123
+ 'fix_qwen_chat_template.py',
124
+ 'qwen_tool_call_wrapper.py',
125
+ 'qwen_tool_call_test.py',
126
+ ];
127
+ console.log(chalk.bold('\nPython Scripts:'));
128
+ for (const script of pythonScripts) {
129
+ const scriptPath = join(SCRIPTS_DIR, script);
130
+ if (existsSync(scriptPath)) {
131
+ const fs = await import('fs');
132
+ const stat = fs.statSync(scriptPath);
133
+ console.log(chalk.green(` ✓ ${script} (${stat.size} bytes)`));
134
+ }
135
+ else {
136
+ console.log(chalk.yellow(` ✗ ${script} - not found`));
137
+ }
138
+ }
139
+ // Check for Python
140
+ try {
141
+ execSync('python3 --version', { stdio: 'pipe' });
142
+ console.log(chalk.green('\n✓ Python 3 available'));
143
+ }
144
+ catch {
145
+ console.log(chalk.yellow('\n⚠ Python 3 not found in PATH'));
146
+ }
147
+ console.log('\n' + '='.repeat(70));
148
+ }
149
+ async function fix() {
150
+ console.log(chalk.cyan('\n🔧 Applying Template Fixes...\n'));
151
+ const fixScript = join(SCRIPTS_DIR, 'fix_qwen_chat_template.py');
152
+ if (!existsSync(fixScript)) {
153
+ console.error(chalk.red(`❌ Fix script not found: ${fixScript}`));
154
+ console.log(chalk.yellow('Run: uap tool-calls setup\n'));
155
+ process.exit(1);
156
+ }
157
+ try {
158
+ execSync(`python3 "${fixScript}"`, {
159
+ cwd: SCRIPTS_DIR,
160
+ stdio: 'inherit',
161
+ });
162
+ }
163
+ catch (err) {
164
+ console.log(chalk.yellow('\n⚠ Fix script completed\n'));
165
+ }
166
+ }
167
+ // Main CLI handler
168
+ const command = process.argv[2];
169
+ switch (command) {
170
+ case 'setup':
171
+ await setup();
172
+ break;
173
+ case 'test':
174
+ await test();
175
+ break;
176
+ case 'status':
177
+ await status();
178
+ break;
179
+ case 'fix':
180
+ await fix();
181
+ break;
182
+ case undefined:
183
+ case 'help':
184
+ default:
185
+ console.log(`
186
+ ${chalk.cyan('UAP Tool Call Setup - Qwen3.5 Tool Call Fixes')}
187
+
188
+ Usage:
189
+ ${chalk.bold('uap tool-calls <command> [options]')}
190
+
191
+ Commands:
192
+ ${chalk.bold('setup')} Install chat templates and Python scripts
193
+ ${chalk.bold('test')} Run reliability test suite
194
+ ${chalk.bold('status')} Check current configuration
195
+ ${chalk.bold('fix')} Apply template fixes to existing templates
196
+ ${chalk.bold('help')} Show this help message
197
+
198
+ Performance Improvement:
199
+ Single tool call: ~95% → ~98%
200
+ 2-3 tool calls: ~70% → ~92%
201
+ 5+ tool calls: ~40% → ~88%
202
+ Long context (50K+): ~30% → ~85%
203
+
204
+ Examples:
205
+ ${chalk.gray('uap tool-calls setup')}
206
+ ${chalk.gray('uap tool-calls test --verbose')}
207
+ ${chalk.gray('uap tool-calls status')}
208
+ ${chalk.gray('uap tool-calls fix')}
209
+ `);
210
+ }
211
+ export { toolCallsCommand };
212
+ async function toolCallsCommand() {
213
+ console.log(`
214
+ ${chalk.cyan('UAP Tool Call Setup - Qwen3.5 Tool Call Fixes')}
215
+
216
+ Usage:
217
+ ${chalk.bold('uap tool-calls <command> [options]')}
218
+
219
+ Commands:
220
+ ${chalk.bold('setup')} Install chat templates and Python scripts
221
+ ${chalk.bold('test')} Run reliability test suite
222
+ ${chalk.bold('status')} Check current configuration
223
+ ${chalk.bold('fix')} Apply template fixes to existing templates
224
+ ${chalk.bold('help')} Show this help message
225
+
226
+ Performance Improvement:
227
+ Single tool call: ~95% → ~98%
228
+ 2-3 tool calls: ~70% → ~92%
229
+ 5+ tool calls: ~40% → ~88%
230
+ Long context (50K+): ~30% → ~85%
231
+
232
+ Examples:
233
+ ${chalk.gray('uap tool-calls setup')}
234
+ ${chalk.gray('uap tool-calls test --verbose')}
235
+ ${chalk.gray('uap tool-calls status')}
236
+ ${chalk.gray('uap tool-calls fix')}
237
+ `);
238
+ }
239
+ //# sourceMappingURL=tool-calls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-calls.js","sourceRoot":"","sources":["../../src/cli/tool-calls.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ interface UpdateOptions {
2
+ dryRun?: boolean;
3
+ skipMemory?: boolean;
4
+ skipQdrant?: boolean;
5
+ verbose?: boolean;
6
+ pipelineOnly?: boolean;
7
+ }
8
+ export declare function updateCommand(options: UpdateOptions): Promise<void>;
9
+ export {};
10
+ //# sourceMappingURL=update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/cli/update.ts"],"names":[],"mappings":"AAeA,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA2KzE"}
@@ -0,0 +1,300 @@
1
+ import chalk from 'chalk';
2
+ import ora from 'ora';
3
+ import { existsSync, readFileSync, writeFileSync, copyFileSync, mkdirSync } from 'fs';
4
+ import { join } from 'path';
5
+ import { createHash } from 'node:crypto';
6
+ import { analyzeProject } from '../analyzers/index.js';
7
+ import { generateClaudeMd } from '../generators/claude-md.js';
8
+ import { mergeClaudeMd, validateMerge } from '../utils/merge-claude-md.js';
9
+ import { AgentContextConfigSchema } from '../types/index.js';
10
+ import { initializeMemoryDatabase } from '../memory/short-term/schema.js';
11
+ import { getEmbeddingService } from '../memory/embeddings.js';
12
+ import { getMemoryConsolidator } from '../memory/memory-consolidator.js';
13
+ export async function updateCommand(options) {
14
+ const cwd = process.cwd();
15
+ const configPath = join(cwd, '.uap.json');
16
+ const claudeMdPath = join(cwd, 'CLAUDE.md');
17
+ const agentMdPath = join(cwd, 'AGENT.md');
18
+ console.log(chalk.bold('\n🔄 UAP Update - Preserving All Customizations\n'));
19
+ // Check for existing config
20
+ if (!existsSync(configPath)) {
21
+ console.log(chalk.yellow('No .uap.json found. Run `uap init` first.'));
22
+ return;
23
+ }
24
+ // Load config
25
+ let config;
26
+ try {
27
+ const raw = JSON.parse(readFileSync(configPath, 'utf-8'));
28
+ config = AgentContextConfigSchema.parse(raw);
29
+ }
30
+ catch (error) {
31
+ console.error(chalk.red('Invalid .uap.json configuration'));
32
+ console.error(error);
33
+ return;
34
+ }
35
+ // Analyze project
36
+ const spinner = ora('Analyzing project structure...').start();
37
+ let analysis;
38
+ try {
39
+ analysis = await analyzeProject(cwd);
40
+ spinner.succeed(`Analyzed: ${analysis.projectName}`);
41
+ }
42
+ catch (error) {
43
+ spinner.fail('Failed to analyze project');
44
+ console.error(chalk.red(error));
45
+ return;
46
+ }
47
+ // Find existing CLAUDE.md or AGENT.md
48
+ let existingPath = null;
49
+ let existingContent = null;
50
+ if (existsSync(claudeMdPath)) {
51
+ existingPath = claudeMdPath;
52
+ existingContent = readFileSync(claudeMdPath, 'utf-8');
53
+ }
54
+ else if (existsSync(agentMdPath)) {
55
+ existingPath = agentMdPath;
56
+ existingContent = readFileSync(agentMdPath, 'utf-8');
57
+ }
58
+ if (!existingContent) {
59
+ console.log(chalk.yellow('No CLAUDE.md or AGENT.md found. Run `uap generate` instead.'));
60
+ return;
61
+ }
62
+ // Create backup before update
63
+ const backupPath = existingPath + '.backup.' + new Date().toISOString().replace(/[:.]/g, '-');
64
+ if (options.dryRun) {
65
+ console.log(chalk.dim(`Would create backup at: ${backupPath}`));
66
+ }
67
+ else {
68
+ copyFileSync(existingPath, backupPath);
69
+ console.log(chalk.dim(`Created backup: ${backupPath}`));
70
+ }
71
+ // Apply --pipeline-only flag to config if provided
72
+ const effectiveConfig = options.pipelineOnly
73
+ ? {
74
+ ...config,
75
+ template: {
76
+ extends: config.template?.extends ?? 'default',
77
+ sections: {
78
+ memorySystem: config.template?.sections?.memorySystem ?? true,
79
+ browserUsage: config.template?.sections?.browserUsage ?? true,
80
+ decisionLoop: config.template?.sections?.decisionLoop ?? true,
81
+ worktreeWorkflow: config.template?.sections?.worktreeWorkflow ?? true,
82
+ troubleshooting: config.template?.sections?.troubleshooting ?? true,
83
+ augmentedCapabilities: config.template?.sections?.augmentedCapabilities ?? true,
84
+ pipelineOnly: true,
85
+ benchmark: false,
86
+ },
87
+ },
88
+ }
89
+ : config;
90
+ // Generate new content from latest template
91
+ const genSpinner = ora('Generating updated content from latest template...').start();
92
+ let newContent;
93
+ try {
94
+ newContent = await generateClaudeMd(analysis, effectiveConfig);
95
+ genSpinner.succeed('Generated updated content');
96
+ }
97
+ catch (error) {
98
+ genSpinner.fail('Failed to generate new content');
99
+ console.error(chalk.red(error));
100
+ return;
101
+ }
102
+ // Merge: New template structure + existing user content
103
+ const mergeSpinner = ora('Merging with existing content (preserving all customizations)...').start();
104
+ let mergedContent;
105
+ try {
106
+ mergedContent = mergeClaudeMd(existingContent, newContent);
107
+ mergeSpinner.succeed('Merged content');
108
+ }
109
+ catch (error) {
110
+ mergeSpinner.fail('Failed to merge content');
111
+ console.error(chalk.red(error));
112
+ return;
113
+ }
114
+ // Validate merge
115
+ const validation = validateMerge(existingContent, mergedContent);
116
+ if (!validation.valid) {
117
+ console.log(chalk.yellow('\n Merge validation warnings:'));
118
+ for (const warning of validation.warnings) {
119
+ console.log(chalk.dim(` - ${warning}`));
120
+ }
121
+ }
122
+ // Show diff summary
123
+ const existingLines = existingContent.split('\n').length;
124
+ const newLines = newContent.split('\n').length;
125
+ const mergedLines = mergedContent.split('\n').length;
126
+ console.log(chalk.bold('\n📊 Update Summary:\n'));
127
+ console.log(chalk.dim(` Existing file: ${existingLines} lines`));
128
+ console.log(chalk.dim(` New template: ${newLines} lines`));
129
+ console.log(chalk.dim(` Merged result: ${mergedLines} lines`));
130
+ // Count preserved sections
131
+ const existingSections = (existingContent.match(/^## /gm) || []).length;
132
+ const mergedSections = (mergedContent.match(/^## /gm) || []).length;
133
+ console.log(chalk.dim(` Sections: ${existingSections} → ${mergedSections}`));
134
+ if (options.dryRun) {
135
+ console.log(chalk.yellow('\n --dry-run: No changes made\n'));
136
+ // Show preview
137
+ console.log(chalk.dim('--- Preview (first 50 lines) ---\n'));
138
+ console.log(mergedContent.split('\n').slice(0, 50).join('\n'));
139
+ console.log(chalk.dim('\n... [truncated] ...'));
140
+ return;
141
+ }
142
+ // Write merged content
143
+ writeFileSync(existingPath, mergedContent);
144
+ console.log(chalk.green(`\n✅ Updated ${existingPath}\n`));
145
+ // Update memory system
146
+ if (!options.skipMemory) {
147
+ await updateMemorySystem(cwd, config, options);
148
+ }
149
+ // Update Qdrant if available
150
+ if (!options.skipQdrant) {
151
+ await updateQdrantCollection(cwd, config, options);
152
+ }
153
+ // Summary
154
+ console.log(chalk.bold('\n📋 Update Summary:\n'));
155
+ console.log('CLAUDE.md:');
156
+ console.log(' • All custom sections preserved');
157
+ console.log(' • Template structure updated');
158
+ console.log(' • Code Field cognitive environment (v9.0)');
159
+ console.log('');
160
+ console.log('Memory System:');
161
+ console.log(' • SQLite database schema updated');
162
+ console.log(' • Embedding service initialized');
163
+ console.log(' • Background consolidation ready');
164
+ console.log('');
165
+ console.log(chalk.dim(`Backup saved at: ${backupPath}`));
166
+ console.log(chalk.dim('If something looks wrong, restore from backup.'));
167
+ }
168
+ /**
169
+ * Update memory system - SQLite schema, embeddings, consolidator
170
+ */
171
+ async function updateMemorySystem(cwd, config, options) {
172
+ const memSpinner = ora('Updating memory system...').start();
173
+ try {
174
+ // Ensure directories exist
175
+ const memoryDir = join(cwd, 'agents/data/memory');
176
+ if (!existsSync(memoryDir)) {
177
+ mkdirSync(memoryDir, { recursive: true });
178
+ }
179
+ // Initialize/update SQLite database
180
+ const dbPath = config.memory?.shortTerm?.path || './agents/data/memory/short_term.db';
181
+ const fullDbPath = join(cwd, dbPath);
182
+ initializeMemoryDatabase(fullDbPath);
183
+ // Initialize embedding service
184
+ const embeddingService = getEmbeddingService();
185
+ await embeddingService.initialize();
186
+ if (options.verbose) {
187
+ console.log(chalk.dim(` Embedding provider: ${embeddingService.getProviderName()}`));
188
+ console.log(chalk.dim(` Dimensions: ${embeddingService.getDimensions()}`));
189
+ }
190
+ // Initialize consolidator
191
+ const consolidator = getMemoryConsolidator();
192
+ consolidator.initialize(fullDbPath);
193
+ memSpinner.succeed('Memory system updated');
194
+ if (options.verbose) {
195
+ const stats = consolidator.getStats();
196
+ console.log(chalk.dim(` Total memories: ${stats.totalMemories}`));
197
+ console.log(chalk.dim(` Session memories: ${stats.totalSessionMemories}`));
198
+ console.log(chalk.dim(` Lessons extracted: ${stats.totalLessons}`));
199
+ }
200
+ }
201
+ catch (error) {
202
+ memSpinner.warn('Memory system update had issues');
203
+ if (options.verbose) {
204
+ console.error(chalk.dim(` ${error}`));
205
+ }
206
+ }
207
+ }
208
+ /**
209
+ * Generate a safe collection name from project ID (matches qdrant-cloud.ts)
210
+ */
211
+ function getProjectCollectionName(base, projectPath) {
212
+ const hash = createHash('sha256').update(projectPath).digest('hex').slice(0, 8);
213
+ const projectName = projectPath
214
+ .split(/[/\\]/).pop() || projectPath
215
+ .replace(/[^a-zA-Z0-9_-]/g, '_')
216
+ .slice(0, 32);
217
+ return `${base}_${projectName}_${hash}`;
218
+ }
219
+ /**
220
+ * Update Qdrant collection - handle dimension migration if needed
221
+ * Collections are project-scoped for data isolation
222
+ */
223
+ async function updateQdrantCollection(cwd, config, options) {
224
+ const qdrantSpinner = ora('Checking Qdrant collection...').start();
225
+ try {
226
+ // Check if Qdrant is running
227
+ const endpoint = config.memory?.longTerm?.endpoint || 'localhost:6333';
228
+ const url = endpoint.startsWith('http') ? endpoint : `http://${endpoint}`;
229
+ const response = await fetch(`${url}/collections`, {
230
+ signal: AbortSignal.timeout(3000),
231
+ });
232
+ if (!response.ok) {
233
+ qdrantSpinner.info('Qdrant not available (optional)');
234
+ return;
235
+ }
236
+ const data = await response.json();
237
+ const baseCollection = config.memory?.longTerm?.collection || 'agent_memory';
238
+ const projectId = config.project?.name || cwd;
239
+ // Generate project-scoped collection name
240
+ const collection = getProjectCollectionName(baseCollection, projectId);
241
+ if (options.verbose) {
242
+ console.log(chalk.dim(` Project-scoped collection: ${collection}`));
243
+ }
244
+ // Check collection dimensions
245
+ const collectionExists = data.result.collections.some(c => c.name === collection);
246
+ if (collectionExists) {
247
+ const collectionInfo = await fetch(`${url}/collections/${collection}`);
248
+ const info = await collectionInfo.json();
249
+ const currentSize = info.result?.config?.params?.vectors?.size;
250
+ // Get expected dimensions from embedding service
251
+ const embeddingService = getEmbeddingService();
252
+ await embeddingService.initialize();
253
+ const expectedSize = embeddingService.getDimensions();
254
+ if (currentSize && currentSize !== expectedSize) {
255
+ qdrantSpinner.text = `Migrating collection (${currentSize} → ${expectedSize} dimensions)...`;
256
+ // Create new collection with correct dimensions
257
+ const newCollection = `${collection}_v${expectedSize}`;
258
+ const newExists = data.result.collections.some(c => c.name === newCollection);
259
+ if (!newExists) {
260
+ await fetch(`${url}/collections/${newCollection}`, {
261
+ method: 'PUT',
262
+ headers: { 'Content-Type': 'application/json' },
263
+ body: JSON.stringify({
264
+ vectors: { size: expectedSize, distance: 'Cosine' },
265
+ }),
266
+ });
267
+ qdrantSpinner.succeed(`Created new collection: ${newCollection} (${expectedSize} dims)`);
268
+ console.log(chalk.dim(` Old collection ${collection} preserved for reference`));
269
+ }
270
+ else {
271
+ qdrantSpinner.succeed(`Collection ${newCollection} already exists with correct dimensions`);
272
+ }
273
+ }
274
+ else {
275
+ qdrantSpinner.succeed(`Qdrant collection OK (${currentSize} dimensions)`);
276
+ }
277
+ }
278
+ else {
279
+ // Create collection with correct dimensions
280
+ const embeddingService = getEmbeddingService();
281
+ await embeddingService.initialize();
282
+ const expectedSize = embeddingService.getDimensions();
283
+ await fetch(`${url}/collections/${collection}`, {
284
+ method: 'PUT',
285
+ headers: { 'Content-Type': 'application/json' },
286
+ body: JSON.stringify({
287
+ vectors: { size: expectedSize, distance: 'Cosine' },
288
+ }),
289
+ });
290
+ qdrantSpinner.succeed(`Created Qdrant collection: ${collection} (${expectedSize} dims)`);
291
+ }
292
+ }
293
+ catch (error) {
294
+ qdrantSpinner.info('Qdrant not available (run `uap memory start` to enable)');
295
+ if (options.verbose) {
296
+ console.log(chalk.dim(` ${error}`));
297
+ }
298
+ }
299
+ }
300
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/cli/update.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ export interface BarSegment {
2
+ value: number;
3
+ color: (text: string) => string;
4
+ label?: string;
5
+ }
6
+ export interface TableColumn {
7
+ key: string;
8
+ header: string;
9
+ width?: number;
10
+ align?: 'left' | 'right' | 'center';
11
+ color?: (text: string) => string;
12
+ }
13
+ export interface SparklineOptions {
14
+ width?: number;
15
+ min?: number;
16
+ max?: number;
17
+ color?: (text: string) => string;
18
+ }
19
+ export interface TreeNode {
20
+ label: string;
21
+ children?: TreeNode[];
22
+ status?: string;
23
+ meta?: string;
24
+ }
25
+ export declare function progressBar(current: number, total: number, width?: number, options?: {
26
+ filled?: (text: string) => string;
27
+ empty?: (text: string) => string;
28
+ showPercent?: boolean;
29
+ showCount?: boolean;
30
+ label?: string;
31
+ }): string;
32
+ export declare function stackedBar(segments: BarSegment[], total: number, width?: number): string;
33
+ export declare function stackedBarLegend(segments: BarSegment[]): string;
34
+ export declare function horizontalBarChart(data: Array<{
35
+ label: string;
36
+ value: number;
37
+ color?: (text: string) => string;
38
+ }>, options?: {
39
+ maxWidth?: number;
40
+ maxLabelWidth?: number;
41
+ }): string[];
42
+ export declare function sparkline(values: number[], options?: SparklineOptions): string;
43
+ export declare function table(rows: Record<string, unknown>[], columns: TableColumn[]): string[];
44
+ export declare function tree(node: TreeNode, prefix?: string, isLast?: boolean): string[];
45
+ export declare function box(title: string, content: string[], options?: {
46
+ width?: number;
47
+ borderColor?: (text: string) => string;
48
+ }): string[];
49
+ export declare function sectionHeader(title: string, width?: number): string;
50
+ export declare function keyValue(pairs: Array<[string, string | number]>, options?: {
51
+ keyWidth?: number;
52
+ indent?: number;
53
+ }): string[];
54
+ export declare function percentage(value: number, total: number): string;
55
+ export declare function trend(current: number, previous: number): string;
56
+ export declare function miniGauge(value: number, max: number, width?: number): string;
57
+ export declare function statusBadge(status: string): string;
58
+ export declare function divider(width?: number, char?: string): string;
59
+ export declare function bulletList(items: Array<{
60
+ text: string;
61
+ status?: 'ok' | 'warn' | 'error' | 'info';
62
+ }>, indent?: number): string[];
63
+ export declare function columns(left: string[], right: string[], options?: {
64
+ gap?: number;
65
+ leftWidth?: number;
66
+ }): string[];
67
+ export declare function inlineProgressSummary(stats: {
68
+ total: number;
69
+ byStatus: Record<string, number>;
70
+ blocked: number;
71
+ ready: number;
72
+ }): string[];
73
+ export declare function heatmapRow(label: string, values: number[], options?: {
74
+ max?: number;
75
+ labelWidth?: number;
76
+ }): string;
77
+ //# sourceMappingURL=visualize.d.ts.map