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,68 @@
1
+ #!/usr/bin/env bash
2
+ # UAP Pre-Compact Hook for Claude Code
3
+ # 1. Checks compliance state and warns on violations
4
+ # 2. Writes a timestamp marker to the daily log before context compaction
5
+ # 3. Marks any agents registered by this session as completed
6
+ # Fails safely - never blocks the agent.
7
+ set -euo pipefail
8
+
9
+ PROJECT_DIR="${CLAUDE_PROJECT_DIR:-.}"
10
+ DB_PATH="${PROJECT_DIR}/agents/data/memory/short_term.db"
11
+ COORD_DB="${PROJECT_DIR}/agents/data/coordination/coordination.db"
12
+
13
+ if [ ! -f "$DB_PATH" ]; then
14
+ exit 0
15
+ fi
16
+
17
+ TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
18
+
19
+ # Record a compaction marker in memory so sessions can detect context resets
20
+ sqlite3 "$DB_PATH" "
21
+ INSERT OR IGNORE INTO memories (timestamp, type, content)
22
+ VALUES ('$TIMESTAMP', 'action', '[pre-compact] Context compaction at $TIMESTAMP');
23
+ " 2>/dev/null || true
24
+
25
+ # Check if any lessons were stored this session
26
+ recent_lessons=$(sqlite3 "$DB_PATH" "
27
+ SELECT COUNT(*) FROM session_memories
28
+ WHERE timestamp >= datetime('now', '-2 hours')
29
+ AND type = 'decision';
30
+ " 2>/dev/null || echo "0")
31
+
32
+ output=""
33
+
34
+ # Compliance reminder on compaction
35
+ output+="<system-reminder>"$'\n'
36
+ output+="## UAP COMPLIANCE REMINDER (Pre-Compact)"$'\n'
37
+ output+=""$'\n'
38
+ output+="Context is being compacted. Before continuing work after compaction:"$'\n'
39
+ output+="1. Re-run: uap task ready"$'\n'
40
+ output+="2. Re-query memory for current task context"$'\n'
41
+ output+="3. Check for stale worktrees: uap worktree list"$'\n'
42
+ output+=""$'\n'
43
+
44
+ if [ "$recent_lessons" = "0" ]; then
45
+ output+="WARNING: No lessons stored this session. Before compaction completes,"$'\n'
46
+ output+="store a summary: sqlite3 ./agents/data/memory/short_term.db \"INSERT INTO session_memories (session_id,timestamp,type,content,importance) VALUES ('current',datetime('now'),'decision','<summary>',7);\""$'\n'
47
+ fi
48
+
49
+ output+="</system-reminder>"$'\n'
50
+
51
+ echo "$output"
52
+
53
+ # Clean up agents with recent heartbeats (likely from this session being compacted)
54
+ if [ -f "$COORD_DB" ]; then
55
+ sqlite3 "$COORD_DB" "
56
+ DELETE FROM work_claims WHERE agent_id IN (
57
+ SELECT id FROM agent_registry
58
+ WHERE status='active' AND last_heartbeat >= datetime('now','-5 minutes')
59
+ );
60
+ UPDATE work_announcements SET completed_at='$TIMESTAMP'
61
+ WHERE completed_at IS NULL AND agent_id IN (
62
+ SELECT id FROM agent_registry
63
+ WHERE status='active' AND last_heartbeat >= datetime('now','-5 minutes')
64
+ );
65
+ UPDATE agent_registry SET status='completed'
66
+ WHERE status='active' AND last_heartbeat >= datetime('now','-5 minutes');
67
+ " 2>/dev/null || true
68
+ fi
@@ -0,0 +1,106 @@
1
+ #!/usr/bin/env bash
2
+ # UAP Session Start Hook for Claude Code
3
+ # COMPLIANCE ENFORCEMENT: Outputs mandatory protocol checklist
4
+ # that the AI agent MUST complete before any work begins.
5
+ # Fails safely - never blocks the agent.
6
+ set -euo pipefail
7
+
8
+ PROJECT_DIR="${CLAUDE_PROJECT_DIR:-.}"
9
+ DB_PATH="${PROJECT_DIR}/agents/data/memory/short_term.db"
10
+ COORD_DB="${PROJECT_DIR}/agents/data/coordination/coordination.db"
11
+
12
+ if [ ! -f "$DB_PATH" ]; then
13
+ exit 0
14
+ fi
15
+
16
+ # Clean stale agents from coordination DB (heartbeat >24h old)
17
+ if [ -f "$COORD_DB" ]; then
18
+ sqlite3 "$COORD_DB" "
19
+ DELETE FROM work_claims WHERE agent_id IN (
20
+ SELECT id FROM agent_registry
21
+ WHERE status IN ('active','idle') AND last_heartbeat < datetime('now','-24 hours')
22
+ );
23
+ DELETE FROM work_announcements WHERE agent_id IN (
24
+ SELECT id FROM agent_registry
25
+ WHERE status IN ('active','idle') AND last_heartbeat < datetime('now','-24 hours')
26
+ ) AND completed_at IS NULL;
27
+ UPDATE agent_registry SET status='failed'
28
+ WHERE status IN ('active','idle') AND last_heartbeat < datetime('now','-24 hours');
29
+ DELETE FROM agent_registry
30
+ WHERE status IN ('completed','failed') AND started_at < datetime('now','-7 days');
31
+ DELETE FROM agent_messages WHERE created_at < datetime('now','-24 hours');
32
+ " 2>/dev/null || true
33
+ fi
34
+
35
+ output=""
36
+
37
+ # ============================================================
38
+ # COMPLIANCE ENFORCEMENT BLOCK
39
+ # This is injected as system context. The AI MUST follow these.
40
+ # ============================================================
41
+ output+="<system-reminder>"$'\n'
42
+ output+="## UAP COMPLIANCE - MANDATORY PROTOCOL"$'\n'
43
+ output+=""$'\n'
44
+ output+="You MUST complete these steps IN ORDER before doing ANY work."$'\n'
45
+ output+="Skipping ANY step is a critical protocol violation."$'\n'
46
+ output+=""$'\n'
47
+ output+="### BEFORE WORK (execute these commands NOW):"$'\n'
48
+ output+="1. Run: uap task ready"$'\n'
49
+ output+="2. Run: sqlite3 ./agents/data/memory/short_term.db \"SELECT type, substr(content,1,80) FROM memories ORDER BY id DESC LIMIT 5;\""$'\n'
50
+ output+="3. Run: uap memory query \"<relevant to user request>\""$'\n'
51
+ output+="4. On work request: Run: uap task create --type <task|bug|feature> --title \"<description>\""$'\n'
52
+ output+=""$'\n'
53
+ output+="### DURING WORK:"$'\n'
54
+ output+="5. ALL file changes MUST use worktree: uap worktree create <slug>"$'\n'
55
+ output+="6. Work in .worktrees/NNN-<slug>/ directory"$'\n'
56
+ output+=""$'\n'
57
+ output+="### BEFORE COMMIT:"$'\n'
58
+ output+="7. Self-review: git diff"$'\n'
59
+ output+="8. Run tests if applicable"$'\n'
60
+ output+=""$'\n'
61
+ output+="### AFTER WORK:"$'\n'
62
+ output+="9. Store lesson: sqlite3 ./agents/data/memory/short_term.db \"INSERT INTO session_memories (session_id,timestamp,type,content,importance) VALUES ('current',datetime('now'),'decision','<summary of work and lessons>',7);\""$'\n'
63
+ output+="10. Clean up worktree after PR merge: uap worktree cleanup <id>"$'\n'
64
+ output+=""$'\n'
65
+ output+="FAILURE TO COMPLY = CRITICAL VIOLATION. This is life or death."$'\n'
66
+ output+="</system-reminder>"$'\n\n'
67
+
68
+ # Recent memories (last 24h, high importance)
69
+ recent=$(sqlite3 "$DB_PATH" "
70
+ SELECT type, substr(content, 1, 120) FROM memories
71
+ WHERE timestamp >= datetime('now', '-1 day')
72
+ ORDER BY id DESC
73
+ LIMIT 10;
74
+ " 2>/dev/null || true)
75
+
76
+ if [ -n "$recent" ]; then
77
+ output+="## Recent Memory Context"$'\n'
78
+ output+="$recent"$'\n\n'
79
+ fi
80
+
81
+ # Open loops from session memories
82
+ open_loops=$(sqlite3 "$DB_PATH" "
83
+ SELECT content FROM session_memories
84
+ WHERE type IN ('action','goal','decision')
85
+ AND importance >= 7
86
+ ORDER BY id DESC
87
+ LIMIT 5;
88
+ " 2>/dev/null || true)
89
+
90
+ if [ -n "$open_loops" ]; then
91
+ output+="## Open Loops"$'\n'
92
+ output+="$open_loops"$'\n'
93
+ fi
94
+
95
+ # Stale worktrees warning
96
+ if [ -d "${PROJECT_DIR}/.worktrees" ]; then
97
+ stale_count=$(find "${PROJECT_DIR}/.worktrees" -maxdepth 1 -mindepth 1 -type d 2>/dev/null | wc -l)
98
+ if [ "$stale_count" -gt 0 ]; then
99
+ output+=$'\n'"## Stale Worktrees Warning"$'\n'
100
+ output+="There are $stale_count worktrees. Run 'uap worktree list' and clean up merged ones."$'\n'
101
+ fi
102
+ fi
103
+
104
+ if [ -n "$output" ]; then
105
+ echo "$output"
106
+ fi
@@ -0,0 +1,224 @@
1
+ # Qwen3.5 Tool Call Fixes
2
+
3
+ This directory contains tools and configurations for fixing Qwen3.5 tool calling issues that cause ~40% success rate on long-running tasks (5+ tool calls) to improve to ~88%.
4
+
5
+ ## Performance Improvement
6
+
7
+ | Scenario | Without Fixes | With Fixes |
8
+ | ------------------- | ------------- | ---------- |
9
+ | Single tool call | ~95% | ~98% |
10
+ | 2-3 tool calls | ~70% | ~92% |
11
+ | 5+ tool calls | ~40% | ~88% |
12
+ | Long context (50K+) | ~30% | ~85% |
13
+
14
+ ## Files
15
+
16
+ ### `config/chat_template.jinja`
17
+
18
+ The core fix: a patched Jinja2 template for Qwen3.5 that adds conditional wrappers around tool call argument iteration.
19
+
20
+ **Key Fix (line 138-144):**
21
+
22
+ ```jinja2
23
+ {%- if tool_call.arguments is mapping %}
24
+ {%- for args_name, args_value in tool_call.arguments|items %}
25
+ {{- '<parameter=' + args_name + '>\n' }}
26
+ {%- set args_value = args_value | tojson | safe if args_value is mapping or (args_value is sequence and args_value is not string) else args_value | string %}
27
+ {{- args_value }}
28
+ {{- '\n</parameter>\n' }}
29
+ {%- endfor %}
30
+ {%- endif %}
31
+ ```
32
+
33
+ This prevents template parsing failures after the first 1-2 tool calls.
34
+
35
+ ### `scripts/fix_qwen_chat_template.py`
36
+
37
+ Python script to automatically apply the template fix to existing chat templates.
38
+
39
+ **Usage:**
40
+
41
+ ```bash
42
+ python3 fix_qwen_chat_template.py [template_file]
43
+ ```
44
+
45
+ ### `scripts/qwen_tool_call_wrapper.py`
46
+
47
+ OpenAI-compatible client with automatic retry logic and validation for Qwen3.5 tool calls.
48
+
49
+ **Features:**
50
+
51
+ - Automatic retry with exponential backoff
52
+ - Prompt correction for failed tool calls
53
+ - Metrics tracking and monitoring
54
+ - Thinking mode disablement
55
+ - Template validation
56
+
57
+ **Usage:**
58
+
59
+ ```python
60
+ from qwen_tool_call_wrapper import Qwen35ToolCallClient
61
+
62
+ client = Qwen35ToolCallClient()
63
+ response = client.chat_with_tools(
64
+ messages=[{"role": "user", "content": "Call read_file with path='/etc/hosts'"}],
65
+ tools=[...]
66
+ )
67
+ ```
68
+
69
+ ### `scripts/qwen_tool_call_test.py`
70
+
71
+ Reliability test suite for validating Qwen3.5 tool call performance.
72
+
73
+ **Usage:**
74
+
75
+ ```bash
76
+ python3 qwen_tool_call_test.py --verbose
77
+ ```
78
+
79
+ **Tests:**
80
+
81
+ 1. Single tool call (baseline)
82
+ 2. Two consecutive tool calls
83
+ 3. Three tool calls
84
+ 4. Five tool calls (stress test)
85
+ 5. Reasoning content interference
86
+ 6. Invalid format recovery
87
+
88
+ ## Installation
89
+
90
+ ### Option 1: Using UAP CLI (Recommended)
91
+
92
+ ```bash
93
+ uap tool-calls setup
94
+ ```
95
+
96
+ This will:
97
+
98
+ 1. Copy `chat_template.jinja` to `tools/agents/config/`
99
+ 2. Copy Python scripts to `tools/agents/scripts/`
100
+ 3. Print setup instructions for llama.cpp and OpenCode
101
+
102
+ ### Option 2: Manual Installation
103
+
104
+ ```bash
105
+ # Copy template
106
+ mkdir -p tools/agents/config
107
+ cp tools/agents/config/chat_template.jinja tools/agents/config/
108
+
109
+ # Copy scripts
110
+ mkdir -p tools/agents/scripts
111
+ cp tools/agents/scripts/*.py tools/agents/scripts/
112
+ ```
113
+
114
+ ## Integration
115
+
116
+ ### llama.cpp
117
+
118
+ **Start llama-server with the fixed template:**
119
+
120
+ ```bash
121
+ ./llama-server \
122
+ --model ~/models/Qwen3.5-35B-Instruct-Q4_K_M.gguf \
123
+ --chat-template-file tools/agents/config/chat_template.jinja \
124
+ --jinja \
125
+ --port 8080 \
126
+ --ctx-size 262144 \
127
+ --batch-size 4096 \
128
+ --threads $(nproc)
129
+ ```
130
+
131
+ **Key flags:**
132
+
133
+ - `--chat-template-file`: Path to the fixed template
134
+ - `--jinja`: Enable Jinja2 template processing
135
+
136
+ ### OpenCode
137
+
138
+ **1. Copy template to OpenCode agent config:**
139
+
140
+ ```bash
141
+ mkdir -p ~/.opencode/agent
142
+ cp tools/agents/config/chat_template.jinja ~/.opencode/agent/
143
+ ```
144
+
145
+ **2. Update `.opencode/config.json`:**
146
+
147
+ ```json
148
+ {
149
+ "provider": "llama.cpp",
150
+ "model": "qwen35-a3b-iq4xs",
151
+ "chatTemplate": "jinja",
152
+ "baseURL": "http://localhost:8080/v1"
153
+ }
154
+ ```
155
+
156
+ **3. Restart OpenCode**
157
+
158
+ ## Verification
159
+
160
+ ### Check Setup
161
+
162
+ ```bash
163
+ uap tool-calls status
164
+ ```
165
+
166
+ ### Run Tests
167
+
168
+ ```bash
169
+ python3 tools/agents/scripts/qwen_tool_call_test.py --verbose
170
+ ```
171
+
172
+ Expected results:
173
+
174
+ - Single tool call: ~98% success rate
175
+ - 2-3 tool calls: ~92% success rate
176
+ - 5+ tool calls: ~88% success rate
177
+
178
+ ### Test Tool Call Manually
179
+
180
+ ```bash
181
+ curl -X POST http://localhost:8080/v1/chat/completions \
182
+ -H "Content-Type: application/json" \
183
+ -d '{
184
+ "model": "qwen35-a3b-iq4xs",
185
+ "messages": [{"role": "user", "content": "Read /etc/hosts"}],
186
+ "tools": [{"type": "function", "function": {"name": "read_file"}}]
187
+ }'
188
+ ```
189
+
190
+ ## Troubleshooting
191
+
192
+ ### Issue: Tool calls fail after 1-2 attempts
193
+
194
+ **Solution:** Verify template was loaded with `--chat-template-file` flag
195
+
196
+ ### Issue: Template not found
197
+
198
+ **Solution:** Check path exists:
199
+
200
+ ```bash
201
+ ls -la tools/agents/config/chat_template.jinja
202
+ ```
203
+
204
+ ### Issue: OpenCode still using old template
205
+
206
+ **Solution:** Restart OpenCode after copying template
207
+
208
+ ### Issue: Python scripts not found
209
+
210
+ **Solution:** Ensure you're in the scripts directory:
211
+
212
+ ```bash
213
+ cd tools/agents/scripts
214
+ ```
215
+
216
+ ## References
217
+
218
+ - **Original Issue:** Hugging Face Discussion #4 - Qwen3.5 tool call failures
219
+ - **Source:** pay2u project - Qwen3.5 35B A3B tool call fixes
220
+ - **Performance Data:** Factory.AI droid `qwen35-tool-call-optimized.md`
221
+
222
+ ## License
223
+
224
+ MIT License - Same as universal-agent-protocol