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,156 @@
1
+ /**
2
+ * Correction Propagation Protocol
3
+ *
4
+ * When a memory is corrected, updates propagate across all tiers:
5
+ * daily log, working memory, and session memory. Old claims are marked
6
+ * [superseded] with date and reason, preserving the audit trail.
7
+ *
8
+ * Inspired by Total Recall's correction gate.
9
+ */
10
+ import Database from 'better-sqlite3';
11
+ import { existsSync } from 'fs';
12
+ import { ensureDailyLogSchema } from './daily-log.js';
13
+ /**
14
+ * Ensure the superseded tracking table exists.
15
+ */
16
+ export function ensureSupersededSchema(db) {
17
+ db.exec(`
18
+ CREATE TABLE IF NOT EXISTS superseded_entries (
19
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
20
+ tier TEXT NOT NULL,
21
+ original_entry_id INTEGER,
22
+ original_content TEXT NOT NULL,
23
+ corrected_content TEXT NOT NULL,
24
+ superseded_date TEXT NOT NULL,
25
+ reason TEXT NOT NULL DEFAULT 'correction'
26
+ );
27
+ CREATE INDEX IF NOT EXISTS idx_superseded_date ON superseded_entries(superseded_date);
28
+ `);
29
+ }
30
+ /**
31
+ * Propagate a correction across all memory tiers.
32
+ *
33
+ * @param dbPath Path to the SQLite database
34
+ * @param searchContent Content to find and correct (fuzzy match)
35
+ * @param correctedContent The corrected version
36
+ * @param reason Why the correction was made
37
+ */
38
+ export function propagateCorrection(dbPath, searchContent, correctedContent, reason = 'user correction') {
39
+ if (!existsSync(dbPath)) {
40
+ return { originalFound: false, tiersUpdated: [], supersededCount: 0 };
41
+ }
42
+ const db = new Database(dbPath);
43
+ ensureSupersededSchema(db);
44
+ ensureDailyLogSchema(db);
45
+ const result = {
46
+ originalFound: false,
47
+ tiersUpdated: [],
48
+ supersededCount: 0,
49
+ };
50
+ const now = new Date().toISOString();
51
+ const today = now.split('T')[0];
52
+ const searchLower = searchContent.toLowerCase();
53
+ try {
54
+ // 1. Search in memories (working memory / L1)
55
+ const memRows = db.prepare(`
56
+ SELECT id, content FROM memories
57
+ WHERE LOWER(content) LIKE ?
58
+ ORDER BY id DESC
59
+ LIMIT 5
60
+ `).all(`%${searchLower}%`);
61
+ for (const row of memRows) {
62
+ result.originalFound = true;
63
+ result.originalId = result.originalId || row.id;
64
+ result.originalContent = result.originalContent || row.content;
65
+ // Record superseded entry
66
+ db.prepare(`
67
+ INSERT INTO superseded_entries (tier, original_entry_id, original_content, corrected_content, superseded_date, reason)
68
+ VALUES ('memories', ?, ?, ?, ?, ?)
69
+ `).run(row.id, row.content, correctedContent, now, reason);
70
+ // Update the memory in-place (prepend [corrected] marker)
71
+ db.prepare(`
72
+ UPDATE memories SET content = ? WHERE id = ?
73
+ `).run(`[corrected ${today}] ${correctedContent}`, row.id);
74
+ result.supersededCount++;
75
+ }
76
+ if (memRows.length > 0) {
77
+ result.tiersUpdated.push('memories');
78
+ }
79
+ // 2. Search in session_memories (L2)
80
+ const sessRows = db.prepare(`
81
+ SELECT id, content FROM session_memories
82
+ WHERE LOWER(content) LIKE ?
83
+ ORDER BY id DESC
84
+ LIMIT 5
85
+ `).all(`%${searchLower}%`);
86
+ for (const row of sessRows) {
87
+ result.originalFound = true;
88
+ db.prepare(`
89
+ INSERT INTO superseded_entries (tier, original_entry_id, original_content, corrected_content, superseded_date, reason)
90
+ VALUES ('session_memories', ?, ?, ?, ?, ?)
91
+ `).run(row.id, row.content, correctedContent, now, reason);
92
+ db.prepare(`
93
+ UPDATE session_memories SET content = ? WHERE id = ?
94
+ `).run(`[corrected ${today}] ${correctedContent}`, row.id);
95
+ result.supersededCount++;
96
+ }
97
+ if (sessRows.length > 0) {
98
+ result.tiersUpdated.push('session_memories');
99
+ }
100
+ // 3. Always write the correction to the daily log
101
+ db.prepare(`
102
+ INSERT INTO daily_log (date, timestamp, content, type, gate_score)
103
+ VALUES (?, ?, ?, 'correction', 1.0)
104
+ `).run(today, now, `[CORRECTION] ${reason}: ${correctedContent}`);
105
+ result.tiersUpdated.push('daily_log');
106
+ // 4. Write corrected version as new working memory entry
107
+ const insertResult = db.prepare(`
108
+ INSERT INTO memories (timestamp, type, content, project_id, importance)
109
+ VALUES (?, 'observation', ?, 'default', 8)
110
+ `).run(now, correctedContent);
111
+ result.correctedEntryId = Number(insertResult.lastInsertRowid);
112
+ // Update FTS if available
113
+ try {
114
+ db.prepare(`
115
+ INSERT INTO memories_fts(rowid, content, type)
116
+ VALUES (?, ?, 'observation')
117
+ `).run(result.correctedEntryId, correctedContent);
118
+ }
119
+ catch {
120
+ // FTS not available
121
+ }
122
+ }
123
+ finally {
124
+ db.close();
125
+ }
126
+ return result;
127
+ }
128
+ /**
129
+ * Get the superseded history for audit trail.
130
+ */
131
+ export function getSupersededHistory(dbPath, limit = 20) {
132
+ if (!existsSync(dbPath))
133
+ return [];
134
+ const db = new Database(dbPath);
135
+ ensureSupersededSchema(db);
136
+ try {
137
+ const rows = db.prepare(`
138
+ SELECT id, tier, original_entry_id, original_content, superseded_date, reason
139
+ FROM superseded_entries
140
+ ORDER BY id DESC
141
+ LIMIT ?
142
+ `).all(limit);
143
+ return rows.map(r => ({
144
+ id: r.id,
145
+ tier: r.tier,
146
+ originalContent: r.original_content,
147
+ supersededDate: r.superseded_date,
148
+ supersededBy: '', // Would need to join with corrected content
149
+ reason: r.reason,
150
+ }));
151
+ }
152
+ finally {
153
+ db.close();
154
+ }
155
+ }
156
+ //# sourceMappingURL=correction-propagator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"correction-propagator.js","sourceRoot":"","sources":["../../src/memory/correction-propagator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Daily Log - Staging area for memory writes.
3
+ *
4
+ * All memories land here first. Promotion to working/semantic memory
5
+ * is a separate step controlled by the user via `uap memory promote`.
6
+ * Inspired by Total Recall's "daily log first, promote later" pattern.
7
+ */
8
+ import Database from 'better-sqlite3';
9
+ export interface DailyLogEntry {
10
+ id: number;
11
+ date: string;
12
+ timestamp: string;
13
+ content: string;
14
+ type: string;
15
+ promoted: boolean;
16
+ promotedTo?: string;
17
+ gateScore: number;
18
+ }
19
+ export interface PromotionCandidate {
20
+ entry: DailyLogEntry;
21
+ suggestedTier: 'working' | 'semantic';
22
+ reason: string;
23
+ }
24
+ export declare function ensureDailyLogSchema(db: Database.Database): void;
25
+ export declare class DailyLog {
26
+ private db;
27
+ constructor(dbPath: string);
28
+ /**
29
+ * Write an entry to today's daily log.
30
+ */
31
+ write(content: string, type?: string, gateScore?: number): number;
32
+ /**
33
+ * Get entries for a specific date (default: today).
34
+ */
35
+ getByDate(date?: string): DailyLogEntry[];
36
+ /**
37
+ * Get unpromoted entries across all dates (candidates for promotion).
38
+ */
39
+ getUnpromoted(limit?: number): DailyLogEntry[];
40
+ /**
41
+ * Get promotion candidates - entries scored high enough to promote.
42
+ */
43
+ getPromotionCandidates(minScore?: number): PromotionCandidate[];
44
+ /**
45
+ * Mark an entry as promoted.
46
+ */
47
+ markPromoted(id: number, tier: string): void;
48
+ /**
49
+ * Archive old entries (>30 days) by marking them.
50
+ */
51
+ archiveOld(daysOld?: number): number;
52
+ /**
53
+ * Get log statistics.
54
+ */
55
+ getStats(): {
56
+ total: number;
57
+ unpromoted: number;
58
+ promoted: number;
59
+ todayCount: number;
60
+ };
61
+ /**
62
+ * Get recent entries across dates.
63
+ */
64
+ getRecent(limit?: number): DailyLogEntry[];
65
+ close(): void;
66
+ }
67
+ //# sourceMappingURL=daily-log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daily-log.d.ts","sourceRoot":"","sources":["../../src/memory/daily-log.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAItC,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,aAAa,CAAC;IACrB,aAAa,EAAE,SAAS,GAAG,UAAU,CAAC;IACtC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAehE;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,EAAE,CAAoB;gBAElB,MAAM,EAAE,MAAM;IAS1B;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAsB,EAAE,SAAS,GAAE,MAAU,GAAG,MAAM;IAanF;;OAEG;IACH,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,aAAa,EAAE;IAYzC;;OAEG;IACH,aAAa,CAAC,KAAK,GAAE,MAAW,GAAG,aAAa,EAAE;IAYlD;;OAEG;IACH,sBAAsB,CAAC,QAAQ,GAAE,MAAY,GAAG,kBAAkB,EAAE;IAapE;;OAEG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAO5C;;OAEG;IACH,UAAU,CAAC,OAAO,GAAE,MAAW,GAAG,MAAM;IAYxC;;OAEG;IACH,QAAQ,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IAQvF;;OAEG;IACH,SAAS,CAAC,KAAK,GAAE,MAAW,GAAG,aAAa,EAAE;IAW9C,KAAK,IAAI,IAAI;CAGd"}
@@ -0,0 +1,143 @@
1
+ /**
2
+ * Daily Log - Staging area for memory writes.
3
+ *
4
+ * All memories land here first. Promotion to working/semantic memory
5
+ * is a separate step controlled by the user via `uap memory promote`.
6
+ * Inspired by Total Recall's "daily log first, promote later" pattern.
7
+ */
8
+ import Database from 'better-sqlite3';
9
+ import { existsSync, mkdirSync } from 'fs';
10
+ import { dirname } from 'path';
11
+ export function ensureDailyLogSchema(db) {
12
+ db.exec(`
13
+ CREATE TABLE IF NOT EXISTS daily_log (
14
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
15
+ date TEXT NOT NULL,
16
+ timestamp TEXT NOT NULL,
17
+ content TEXT NOT NULL,
18
+ type TEXT NOT NULL DEFAULT 'observation',
19
+ promoted INTEGER NOT NULL DEFAULT 0,
20
+ promoted_to TEXT,
21
+ gate_score REAL NOT NULL DEFAULT 0
22
+ );
23
+ CREATE INDEX IF NOT EXISTS idx_daily_log_date ON daily_log(date);
24
+ CREATE INDEX IF NOT EXISTS idx_daily_log_promoted ON daily_log(promoted);
25
+ `);
26
+ }
27
+ export class DailyLog {
28
+ db;
29
+ constructor(dbPath) {
30
+ const dir = dirname(dbPath);
31
+ if (!existsSync(dir)) {
32
+ mkdirSync(dir, { recursive: true });
33
+ }
34
+ this.db = new Database(dbPath);
35
+ ensureDailyLogSchema(this.db);
36
+ }
37
+ /**
38
+ * Write an entry to today's daily log.
39
+ */
40
+ write(content, type = 'observation', gateScore = 0) {
41
+ const now = new Date();
42
+ const date = now.toISOString().split('T')[0];
43
+ const timestamp = now.toISOString();
44
+ const stmt = this.db.prepare(`
45
+ INSERT INTO daily_log (date, timestamp, content, type, gate_score)
46
+ VALUES (?, ?, ?, ?, ?)
47
+ `);
48
+ const result = stmt.run(date, timestamp, content, type, gateScore);
49
+ return Number(result.lastInsertRowid);
50
+ }
51
+ /**
52
+ * Get entries for a specific date (default: today).
53
+ */
54
+ getByDate(date) {
55
+ const d = date || new Date().toISOString().split('T')[0];
56
+ const stmt = this.db.prepare(`
57
+ SELECT id, date, timestamp, content, type,
58
+ promoted, promoted_to as promotedTo, gate_score as gateScore
59
+ FROM daily_log
60
+ WHERE date = ?
61
+ ORDER BY id DESC
62
+ `);
63
+ return stmt.all(d);
64
+ }
65
+ /**
66
+ * Get unpromoted entries across all dates (candidates for promotion).
67
+ */
68
+ getUnpromoted(limit = 50) {
69
+ const stmt = this.db.prepare(`
70
+ SELECT id, date, timestamp, content, type,
71
+ promoted, promoted_to as promotedTo, gate_score as gateScore
72
+ FROM daily_log
73
+ WHERE promoted = 0
74
+ ORDER BY gate_score DESC, id DESC
75
+ LIMIT ?
76
+ `);
77
+ return stmt.all(limit);
78
+ }
79
+ /**
80
+ * Get promotion candidates - entries scored high enough to promote.
81
+ */
82
+ getPromotionCandidates(minScore = 0.3) {
83
+ const entries = this.getUnpromoted();
84
+ return entries
85
+ .filter(e => e.gateScore >= minScore)
86
+ .map(e => ({
87
+ entry: e,
88
+ suggestedTier: e.gateScore >= 0.6 ? 'working' : 'semantic',
89
+ reason: e.gateScore >= 0.6
90
+ ? 'High gate score - likely behavior-changing or commitment'
91
+ : 'Moderate gate score - durable fact or decision',
92
+ }));
93
+ }
94
+ /**
95
+ * Mark an entry as promoted.
96
+ */
97
+ markPromoted(id, tier) {
98
+ const stmt = this.db.prepare(`
99
+ UPDATE daily_log SET promoted = 1, promoted_to = ? WHERE id = ?
100
+ `);
101
+ stmt.run(tier, id);
102
+ }
103
+ /**
104
+ * Archive old entries (>30 days) by marking them.
105
+ */
106
+ archiveOld(daysOld = 30) {
107
+ const cutoff = new Date();
108
+ cutoff.setDate(cutoff.getDate() - daysOld);
109
+ const cutoffDate = cutoff.toISOString().split('T')[0];
110
+ const stmt = this.db.prepare(`
111
+ DELETE FROM daily_log WHERE date < ? AND promoted = 1
112
+ `);
113
+ const result = stmt.run(cutoffDate);
114
+ return result.changes;
115
+ }
116
+ /**
117
+ * Get log statistics.
118
+ */
119
+ getStats() {
120
+ const total = this.db.prepare('SELECT COUNT(*) as c FROM daily_log').get().c;
121
+ const unpromoted = this.db.prepare('SELECT COUNT(*) as c FROM daily_log WHERE promoted = 0').get().c;
122
+ const today = new Date().toISOString().split('T')[0];
123
+ const todayCount = this.db.prepare('SELECT COUNT(*) as c FROM daily_log WHERE date = ?').get(today).c;
124
+ return { total, unpromoted, promoted: total - unpromoted, todayCount };
125
+ }
126
+ /**
127
+ * Get recent entries across dates.
128
+ */
129
+ getRecent(limit = 20) {
130
+ const stmt = this.db.prepare(`
131
+ SELECT id, date, timestamp, content, type,
132
+ promoted, promoted_to as promotedTo, gate_score as gateScore
133
+ FROM daily_log
134
+ ORDER BY id DESC
135
+ LIMIT ?
136
+ `);
137
+ return stmt.all(limit);
138
+ }
139
+ close() {
140
+ this.db.close();
141
+ }
142
+ }
143
+ //# sourceMappingURL=daily-log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daily-log.js","sourceRoot":"","sources":["../../src/memory/daily-log.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Dynamic Memory Retrieval System for UAP
3
+ *
4
+ * Retrieves relevant memories based on task content, not static context.
5
+ * Implements semantic search with fallback to keyword matching.
6
+ *
7
+ * Features:
8
+ * - Adaptive retrieval depth based on query complexity
9
+ * - Context budget management to prevent overflow
10
+ * - Speculative prefetch for common patterns
11
+ */
12
+ import { type TaskClassification } from './task-classifier.js';
13
+ import { type ContextDecision, type TaskMetadata } from './adaptive-context.js';
14
+ /**
15
+ * Query complexity levels for adaptive retrieval
16
+ */
17
+ export type QueryComplexity = 'simple' | 'moderate' | 'complex';
18
+ /**
19
+ * Retrieval depth configuration
20
+ */
21
+ export interface RetrievalDepthConfig {
22
+ simple: {
23
+ shortTerm: number;
24
+ sessionMem: number;
25
+ longTerm: number;
26
+ patterns: number;
27
+ };
28
+ moderate: {
29
+ shortTerm: number;
30
+ sessionMem: number;
31
+ longTerm: number;
32
+ patterns: number;
33
+ };
34
+ complex: {
35
+ shortTerm: number;
36
+ sessionMem: number;
37
+ longTerm: number;
38
+ patterns: number;
39
+ };
40
+ }
41
+ /**
42
+ * Measure query complexity to determine retrieval depth
43
+ * Based on SimpleMem's adaptive query-aware retrieval
44
+ */
45
+ export declare function measureQueryComplexity(query: string): QueryComplexity;
46
+ /**
47
+ * Get retrieval limits based on query complexity
48
+ */
49
+ export declare function getRetrievalDepth(complexity: QueryComplexity, config?: RetrievalDepthConfig): {
50
+ shortTerm: number;
51
+ sessionMem: number;
52
+ longTerm: number;
53
+ patterns: number;
54
+ };
55
+ export interface RetrievedMemory {
56
+ content: string;
57
+ type: 'lesson' | 'gotcha' | 'pattern' | 'context' | 'example';
58
+ relevance: number;
59
+ source: string;
60
+ }
61
+ export interface DynamicMemoryContext {
62
+ classification: TaskClassification;
63
+ relevantMemories: RetrievedMemory[];
64
+ patterns: string[];
65
+ gotchas: string[];
66
+ projectContext: string;
67
+ formattedContext: string;
68
+ queryComplexity: QueryComplexity;
69
+ tokenBudget: {
70
+ used: number;
71
+ remaining: number;
72
+ total: number;
73
+ };
74
+ compressionStats?: {
75
+ ratio: number;
76
+ sourceTokens: number;
77
+ compressedTokens: number;
78
+ };
79
+ contextDecision?: ContextDecision;
80
+ }
81
+ /**
82
+ * Main function to retrieve task-specific memory context
83
+ * Now with adaptive retrieval depth and context budget management
84
+ */
85
+ export declare function retrieveDynamicMemoryContext(taskInstruction: string, projectRoot?: string, options?: {
86
+ maxTokens?: number;
87
+ useSemanticCompression?: boolean;
88
+ taskMetadata?: TaskMetadata;
89
+ }): Promise<DynamicMemoryContext>;
90
+ /**
91
+ * OPTIMIZATION 10: Automatic knowledge bootstrapping feedback loop
92
+ *
93
+ * Call this after each task completes to:
94
+ * 1. Update adaptive context historical data
95
+ * 2. Update model router fingerprints
96
+ * 3. Record knowledge outcomes for domain knowledge improvement
97
+ * 4. Extract and persist new learnings from agent output
98
+ *
99
+ * This closes the feedback loop so each benchmark run improves future accuracy.
100
+ */
101
+ export interface TaskOutcome {
102
+ instruction: string;
103
+ success: boolean;
104
+ durationMs: number;
105
+ modelId?: string;
106
+ agentOutput?: string;
107
+ projectRoot?: string;
108
+ }
109
+ export declare function recordTaskFeedback(outcome: TaskOutcome): void;
110
+ //# sourceMappingURL=dynamic-retrieval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic-retrieval.d.ts","sourceRoot":"","sources":["../../src/memory/dynamic-retrieval.ts"],"names":[],"mappings":"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"}