@miller-tech/uap 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (660) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +888 -0
  3. package/dist/analyzers/index.d.ts +3 -0
  4. package/dist/analyzers/index.d.ts.map +1 -0
  5. package/dist/analyzers/index.js +684 -0
  6. package/dist/analyzers/index.js.map +1 -0
  7. package/dist/benchmarks/agents/naive-agent.d.ts +60 -0
  8. package/dist/benchmarks/agents/naive-agent.d.ts.map +1 -0
  9. package/dist/benchmarks/agents/naive-agent.js +144 -0
  10. package/dist/benchmarks/agents/naive-agent.js.map +1 -0
  11. package/dist/benchmarks/agents/uap-agent.d.ts +167 -0
  12. package/dist/benchmarks/agents/uap-agent.d.ts.map +1 -0
  13. package/dist/benchmarks/agents/uap-agent.js +437 -0
  14. package/dist/benchmarks/agents/uap-agent.js.map +1 -0
  15. package/dist/benchmarks/benchmark.d.ts +328 -0
  16. package/dist/benchmarks/benchmark.d.ts.map +1 -0
  17. package/dist/benchmarks/benchmark.js +112 -0
  18. package/dist/benchmarks/benchmark.js.map +1 -0
  19. package/dist/benchmarks/execution-verifier.d.ts +41 -0
  20. package/dist/benchmarks/execution-verifier.d.ts.map +1 -0
  21. package/dist/benchmarks/execution-verifier.js +340 -0
  22. package/dist/benchmarks/execution-verifier.js.map +1 -0
  23. package/dist/benchmarks/hierarchical-prompting.d.ts +37 -0
  24. package/dist/benchmarks/hierarchical-prompting.d.ts.map +1 -0
  25. package/dist/benchmarks/hierarchical-prompting.js +246 -0
  26. package/dist/benchmarks/hierarchical-prompting.js.map +1 -0
  27. package/dist/benchmarks/improved-benchmark.d.ts +89 -0
  28. package/dist/benchmarks/improved-benchmark.d.ts.map +1 -0
  29. package/dist/benchmarks/improved-benchmark.js +585 -0
  30. package/dist/benchmarks/improved-benchmark.js.map +1 -0
  31. package/dist/benchmarks/index.d.ts +11 -0
  32. package/dist/benchmarks/index.d.ts.map +1 -0
  33. package/dist/benchmarks/index.js +11 -0
  34. package/dist/benchmarks/index.js.map +1 -0
  35. package/dist/benchmarks/model-integration.d.ts +111 -0
  36. package/dist/benchmarks/model-integration.d.ts.map +1 -0
  37. package/dist/benchmarks/model-integration.js +904 -0
  38. package/dist/benchmarks/model-integration.js.map +1 -0
  39. package/dist/benchmarks/multi-turn-agent.d.ts +44 -0
  40. package/dist/benchmarks/multi-turn-agent.d.ts.map +1 -0
  41. package/dist/benchmarks/multi-turn-agent.js +254 -0
  42. package/dist/benchmarks/multi-turn-agent.js.map +1 -0
  43. package/dist/benchmarks/multi-turn-loop.d.ts +57 -0
  44. package/dist/benchmarks/multi-turn-loop.d.ts.map +1 -0
  45. package/dist/benchmarks/multi-turn-loop.js +167 -0
  46. package/dist/benchmarks/multi-turn-loop.js.map +1 -0
  47. package/dist/benchmarks/tasks.d.ts +19 -0
  48. package/dist/benchmarks/tasks.d.ts.map +1 -0
  49. package/dist/benchmarks/tasks.js +435 -0
  50. package/dist/benchmarks/tasks.js.map +1 -0
  51. package/dist/bin/cli.d.ts +3 -0
  52. package/dist/bin/cli.d.ts.map +1 -0
  53. package/dist/bin/cli.js +546 -0
  54. package/dist/bin/cli.js.map +1 -0
  55. package/dist/bin/llama-server-optimize.d.ts +18 -0
  56. package/dist/bin/llama-server-optimize.d.ts.map +1 -0
  57. package/dist/bin/llama-server-optimize.js +708 -0
  58. package/dist/bin/llama-server-optimize.js.map +1 -0
  59. package/dist/bin/policy.d.ts +3 -0
  60. package/dist/bin/policy.d.ts.map +1 -0
  61. package/dist/bin/policy.js +143 -0
  62. package/dist/bin/policy.js.map +1 -0
  63. package/dist/bin/tool-calls.d.ts +3 -0
  64. package/dist/bin/tool-calls.d.ts.map +1 -0
  65. package/dist/bin/tool-calls.js +4 -0
  66. package/dist/bin/tool-calls.js.map +1 -0
  67. package/dist/browser/index.d.ts +2 -0
  68. package/dist/browser/index.d.ts.map +1 -0
  69. package/dist/browser/index.js +2 -0
  70. package/dist/browser/index.js.map +1 -0
  71. package/dist/browser/web-browser.d.ts +30 -0
  72. package/dist/browser/web-browser.d.ts.map +1 -0
  73. package/dist/browser/web-browser.js +93 -0
  74. package/dist/browser/web-browser.js.map +1 -0
  75. package/dist/cli/agent.d.ts +20 -0
  76. package/dist/cli/agent.d.ts.map +1 -0
  77. package/dist/cli/agent.js +474 -0
  78. package/dist/cli/agent.js.map +1 -0
  79. package/dist/cli/analyze.d.ts +7 -0
  80. package/dist/cli/analyze.d.ts.map +1 -0
  81. package/dist/cli/analyze.js +103 -0
  82. package/dist/cli/analyze.js.map +1 -0
  83. package/dist/cli/completion-gates.d.ts +51 -0
  84. package/dist/cli/completion-gates.d.ts.map +1 -0
  85. package/dist/cli/completion-gates.js +201 -0
  86. package/dist/cli/completion-gates.js.map +1 -0
  87. package/dist/cli/compliance.d.ts +8 -0
  88. package/dist/cli/compliance.d.ts.map +1 -0
  89. package/dist/cli/compliance.js +509 -0
  90. package/dist/cli/compliance.js.map +1 -0
  91. package/dist/cli/coord.d.ts +7 -0
  92. package/dist/cli/coord.d.ts.map +1 -0
  93. package/dist/cli/coord.js +138 -0
  94. package/dist/cli/coord.js.map +1 -0
  95. package/dist/cli/dashboard.d.ts +21 -0
  96. package/dist/cli/dashboard.d.ts.map +1 -0
  97. package/dist/cli/dashboard.js +1508 -0
  98. package/dist/cli/dashboard.js.map +1 -0
  99. package/dist/cli/deploy.d.ts +19 -0
  100. package/dist/cli/deploy.d.ts.map +1 -0
  101. package/dist/cli/deploy.js +387 -0
  102. package/dist/cli/deploy.js.map +1 -0
  103. package/dist/cli/droids.d.ts +9 -0
  104. package/dist/cli/droids.d.ts.map +1 -0
  105. package/dist/cli/droids.js +227 -0
  106. package/dist/cli/droids.js.map +1 -0
  107. package/dist/cli/generate.d.ts +17 -0
  108. package/dist/cli/generate.d.ts.map +1 -0
  109. package/dist/cli/generate.js +432 -0
  110. package/dist/cli/generate.js.map +1 -0
  111. package/dist/cli/hooks.d.ts +9 -0
  112. package/dist/cli/hooks.d.ts.map +1 -0
  113. package/dist/cli/hooks.js +464 -0
  114. package/dist/cli/hooks.js.map +1 -0
  115. package/dist/cli/init.d.ts +12 -0
  116. package/dist/cli/init.d.ts.map +1 -0
  117. package/dist/cli/init.js +364 -0
  118. package/dist/cli/init.js.map +1 -0
  119. package/dist/cli/mcp-router.d.ts +16 -0
  120. package/dist/cli/mcp-router.d.ts.map +1 -0
  121. package/dist/cli/mcp-router.js +143 -0
  122. package/dist/cli/mcp-router.js.map +1 -0
  123. package/dist/cli/memory.d.ts +24 -0
  124. package/dist/cli/memory.d.ts.map +1 -0
  125. package/dist/cli/memory.js +885 -0
  126. package/dist/cli/memory.js.map +1 -0
  127. package/dist/cli/model.d.ts +15 -0
  128. package/dist/cli/model.d.ts.map +1 -0
  129. package/dist/cli/model.js +290 -0
  130. package/dist/cli/model.js.map +1 -0
  131. package/dist/cli/patterns.d.ts +26 -0
  132. package/dist/cli/patterns.d.ts.map +1 -0
  133. package/dist/cli/patterns.js +862 -0
  134. package/dist/cli/patterns.js.map +1 -0
  135. package/dist/cli/rtk-validation.d.ts +9 -0
  136. package/dist/cli/rtk-validation.d.ts.map +1 -0
  137. package/dist/cli/rtk-validation.js +9 -0
  138. package/dist/cli/rtk-validation.js.map +1 -0
  139. package/dist/cli/rtk.d.ts +34 -0
  140. package/dist/cli/rtk.d.ts.map +1 -0
  141. package/dist/cli/rtk.js +401 -0
  142. package/dist/cli/rtk.js.map +1 -0
  143. package/dist/cli/schema-diff.d.ts +7 -0
  144. package/dist/cli/schema-diff.d.ts.map +1 -0
  145. package/dist/cli/schema-diff.js +11 -0
  146. package/dist/cli/schema-diff.js.map +1 -0
  147. package/dist/cli/setup-mcp-router.d.ts +8 -0
  148. package/dist/cli/setup-mcp-router.d.ts.map +1 -0
  149. package/dist/cli/setup-mcp-router.js +163 -0
  150. package/dist/cli/setup-mcp-router.js.map +1 -0
  151. package/dist/cli/setup-wizard.d.ts +2 -0
  152. package/dist/cli/setup-wizard.d.ts.map +1 -0
  153. package/dist/cli/setup-wizard.js +806 -0
  154. package/dist/cli/setup-wizard.js.map +1 -0
  155. package/dist/cli/setup.d.ts +15 -0
  156. package/dist/cli/setup.d.ts.map +1 -0
  157. package/dist/cli/setup.js +154 -0
  158. package/dist/cli/setup.js.map +1 -0
  159. package/dist/cli/sync.d.ts +8 -0
  160. package/dist/cli/sync.d.ts.map +1 -0
  161. package/dist/cli/sync.js +395 -0
  162. package/dist/cli/sync.js.map +1 -0
  163. package/dist/cli/task.d.ts +33 -0
  164. package/dist/cli/task.d.ts.map +1 -0
  165. package/dist/cli/task.js +672 -0
  166. package/dist/cli/task.js.map +1 -0
  167. package/dist/cli/tool-calls.d.ts +20 -0
  168. package/dist/cli/tool-calls.d.ts.map +1 -0
  169. package/dist/cli/tool-calls.js +605 -0
  170. package/dist/cli/tool-calls.js.map +1 -0
  171. package/dist/cli/uap.d.ts +10 -0
  172. package/dist/cli/uap.d.ts.map +1 -0
  173. package/dist/cli/uap.js +398 -0
  174. package/dist/cli/uap.js.map +1 -0
  175. package/dist/cli/update.d.ts +10 -0
  176. package/dist/cli/update.d.ts.map +1 -0
  177. package/dist/cli/update.js +300 -0
  178. package/dist/cli/update.js.map +1 -0
  179. package/dist/cli/visualize.d.ts +77 -0
  180. package/dist/cli/visualize.d.ts.map +1 -0
  181. package/dist/cli/visualize.js +287 -0
  182. package/dist/cli/visualize.js.map +1 -0
  183. package/dist/cli/worktree.d.ts +9 -0
  184. package/dist/cli/worktree.d.ts.map +1 -0
  185. package/dist/cli/worktree.js +213 -0
  186. package/dist/cli/worktree.js.map +1 -0
  187. package/dist/coordination/adaptive-patterns.d.ts +65 -0
  188. package/dist/coordination/adaptive-patterns.d.ts.map +1 -0
  189. package/dist/coordination/adaptive-patterns.js +108 -0
  190. package/dist/coordination/adaptive-patterns.js.map +1 -0
  191. package/dist/coordination/auto-agent.d.ts +82 -0
  192. package/dist/coordination/auto-agent.d.ts.map +1 -0
  193. package/dist/coordination/auto-agent.js +145 -0
  194. package/dist/coordination/auto-agent.js.map +1 -0
  195. package/dist/coordination/capability-router.d.ts +79 -0
  196. package/dist/coordination/capability-router.d.ts.map +1 -0
  197. package/dist/coordination/capability-router.js +334 -0
  198. package/dist/coordination/capability-router.js.map +1 -0
  199. package/dist/coordination/database.d.ts +13 -0
  200. package/dist/coordination/database.d.ts.map +1 -0
  201. package/dist/coordination/database.js +136 -0
  202. package/dist/coordination/database.js.map +1 -0
  203. package/dist/coordination/deploy-batcher.d.ts +122 -0
  204. package/dist/coordination/deploy-batcher.d.ts.map +1 -0
  205. package/dist/coordination/deploy-batcher.js +718 -0
  206. package/dist/coordination/deploy-batcher.js.map +1 -0
  207. package/dist/coordination/droid-validator.d.ts +59 -0
  208. package/dist/coordination/droid-validator.d.ts.map +1 -0
  209. package/dist/coordination/droid-validator.js +142 -0
  210. package/dist/coordination/droid-validator.js.map +1 -0
  211. package/dist/coordination/index.d.ts +10 -0
  212. package/dist/coordination/index.d.ts.map +1 -0
  213. package/dist/coordination/index.js +10 -0
  214. package/dist/coordination/index.js.map +1 -0
  215. package/dist/coordination/pattern-router.d.ts +50 -0
  216. package/dist/coordination/pattern-router.d.ts.map +1 -0
  217. package/dist/coordination/pattern-router.js +118 -0
  218. package/dist/coordination/pattern-router.js.map +1 -0
  219. package/dist/coordination/service.d.ts +81 -0
  220. package/dist/coordination/service.d.ts.map +1 -0
  221. package/dist/coordination/service.js +619 -0
  222. package/dist/coordination/service.js.map +1 -0
  223. package/dist/coordination/worktree-enforcer.d.ts +22 -0
  224. package/dist/coordination/worktree-enforcer.d.ts.map +1 -0
  225. package/dist/coordination/worktree-enforcer.js +71 -0
  226. package/dist/coordination/worktree-enforcer.js.map +1 -0
  227. package/dist/generators/claude-md.d.ts +3 -0
  228. package/dist/generators/claude-md.d.ts.map +1 -0
  229. package/dist/generators/claude-md.js +1020 -0
  230. package/dist/generators/claude-md.js.map +1 -0
  231. package/dist/generators/template-loader.d.ts +105 -0
  232. package/dist/generators/template-loader.d.ts.map +1 -0
  233. package/dist/generators/template-loader.js +291 -0
  234. package/dist/generators/template-loader.js.map +1 -0
  235. package/dist/index.d.ts +49 -0
  236. package/dist/index.d.ts.map +1 -0
  237. package/dist/index.js +63 -0
  238. package/dist/index.js.map +1 -0
  239. package/dist/mcp-router/config/parser.d.ts +9 -0
  240. package/dist/mcp-router/config/parser.d.ts.map +1 -0
  241. package/dist/mcp-router/config/parser.js +174 -0
  242. package/dist/mcp-router/config/parser.js.map +1 -0
  243. package/dist/mcp-router/executor/client.d.ts +31 -0
  244. package/dist/mcp-router/executor/client.d.ts.map +1 -0
  245. package/dist/mcp-router/executor/client.js +189 -0
  246. package/dist/mcp-router/executor/client.js.map +1 -0
  247. package/dist/mcp-router/index.d.ts +22 -0
  248. package/dist/mcp-router/index.d.ts.map +1 -0
  249. package/dist/mcp-router/index.js +18 -0
  250. package/dist/mcp-router/index.js.map +1 -0
  251. package/dist/mcp-router/output-compressor.d.ts +26 -0
  252. package/dist/mcp-router/output-compressor.d.ts.map +1 -0
  253. package/dist/mcp-router/output-compressor.js +236 -0
  254. package/dist/mcp-router/output-compressor.js.map +1 -0
  255. package/dist/mcp-router/search/fuzzy.d.ts +26 -0
  256. package/dist/mcp-router/search/fuzzy.d.ts.map +1 -0
  257. package/dist/mcp-router/search/fuzzy.js +94 -0
  258. package/dist/mcp-router/search/fuzzy.js.map +1 -0
  259. package/dist/mcp-router/server.d.ts +50 -0
  260. package/dist/mcp-router/server.d.ts.map +1 -0
  261. package/dist/mcp-router/server.js +229 -0
  262. package/dist/mcp-router/server.js.map +1 -0
  263. package/dist/mcp-router/session-stats.d.ts +37 -0
  264. package/dist/mcp-router/session-stats.d.ts.map +1 -0
  265. package/dist/mcp-router/session-stats.js +56 -0
  266. package/dist/mcp-router/session-stats.js.map +1 -0
  267. package/dist/mcp-router/tools/discover.d.ts +37 -0
  268. package/dist/mcp-router/tools/discover.d.ts.map +1 -0
  269. package/dist/mcp-router/tools/discover.js +65 -0
  270. package/dist/mcp-router/tools/discover.js.map +1 -0
  271. package/dist/mcp-router/tools/execute.d.ts +43 -0
  272. package/dist/mcp-router/tools/execute.d.ts.map +1 -0
  273. package/dist/mcp-router/tools/execute.js +144 -0
  274. package/dist/mcp-router/tools/execute.js.map +1 -0
  275. package/dist/mcp-router/types.d.ts +62 -0
  276. package/dist/mcp-router/types.d.ts.map +1 -0
  277. package/dist/mcp-router/types.js +6 -0
  278. package/dist/mcp-router/types.js.map +1 -0
  279. package/dist/memory/adaptive-context.d.ts +149 -0
  280. package/dist/memory/adaptive-context.d.ts.map +1 -0
  281. package/dist/memory/adaptive-context.js +1095 -0
  282. package/dist/memory/adaptive-context.js.map +1 -0
  283. package/dist/memory/agent-scoped-memory.d.ts +67 -0
  284. package/dist/memory/agent-scoped-memory.d.ts.map +1 -0
  285. package/dist/memory/agent-scoped-memory.js +126 -0
  286. package/dist/memory/agent-scoped-memory.js.map +1 -0
  287. package/dist/memory/ambiguity-detector.d.ts +54 -0
  288. package/dist/memory/ambiguity-detector.d.ts.map +1 -0
  289. package/dist/memory/ambiguity-detector.js +401 -0
  290. package/dist/memory/ambiguity-detector.js.map +1 -0
  291. package/dist/memory/backends/base.d.ts +18 -0
  292. package/dist/memory/backends/base.d.ts.map +1 -0
  293. package/dist/memory/backends/base.js +2 -0
  294. package/dist/memory/backends/base.js.map +1 -0
  295. package/dist/memory/backends/factory.d.ts +4 -0
  296. package/dist/memory/backends/factory.d.ts.map +1 -0
  297. package/dist/memory/backends/factory.js +53 -0
  298. package/dist/memory/backends/factory.js.map +1 -0
  299. package/dist/memory/backends/github.d.ts +27 -0
  300. package/dist/memory/backends/github.d.ts.map +1 -0
  301. package/dist/memory/backends/github.js +134 -0
  302. package/dist/memory/backends/github.js.map +1 -0
  303. package/dist/memory/backends/qdrant-cloud.d.ts +32 -0
  304. package/dist/memory/backends/qdrant-cloud.d.ts.map +1 -0
  305. package/dist/memory/backends/qdrant-cloud.js +167 -0
  306. package/dist/memory/backends/qdrant-cloud.js.map +1 -0
  307. package/dist/memory/context-compressor.d.ts +116 -0
  308. package/dist/memory/context-compressor.d.ts.map +1 -0
  309. package/dist/memory/context-compressor.js +430 -0
  310. package/dist/memory/context-compressor.js.map +1 -0
  311. package/dist/memory/context-pruner.d.ts +55 -0
  312. package/dist/memory/context-pruner.d.ts.map +1 -0
  313. package/dist/memory/context-pruner.js +85 -0
  314. package/dist/memory/context-pruner.js.map +1 -0
  315. package/dist/memory/correction-propagator.d.ts +44 -0
  316. package/dist/memory/correction-propagator.d.ts.map +1 -0
  317. package/dist/memory/correction-propagator.js +156 -0
  318. package/dist/memory/correction-propagator.js.map +1 -0
  319. package/dist/memory/daily-log.d.ts +67 -0
  320. package/dist/memory/daily-log.d.ts.map +1 -0
  321. package/dist/memory/daily-log.js +143 -0
  322. package/dist/memory/daily-log.js.map +1 -0
  323. package/dist/memory/dynamic-retrieval.d.ts +112 -0
  324. package/dist/memory/dynamic-retrieval.d.ts.map +1 -0
  325. package/dist/memory/dynamic-retrieval.js +908 -0
  326. package/dist/memory/dynamic-retrieval.js.map +1 -0
  327. package/dist/memory/embeddings.d.ts +172 -0
  328. package/dist/memory/embeddings.d.ts.map +1 -0
  329. package/dist/memory/embeddings.js +780 -0
  330. package/dist/memory/embeddings.js.map +1 -0
  331. package/dist/memory/generic-uap-patterns.d.ts +7 -0
  332. package/dist/memory/generic-uap-patterns.d.ts.map +1 -0
  333. package/dist/memory/generic-uap-patterns.js +43 -0
  334. package/dist/memory/generic-uap-patterns.js.map +1 -0
  335. package/dist/memory/hierarchical-memory.d.ts +141 -0
  336. package/dist/memory/hierarchical-memory.d.ts.map +1 -0
  337. package/dist/memory/hierarchical-memory.js +485 -0
  338. package/dist/memory/hierarchical-memory.js.map +1 -0
  339. package/dist/memory/knowledge-graph.d.ts +98 -0
  340. package/dist/memory/knowledge-graph.d.ts.map +1 -0
  341. package/dist/memory/knowledge-graph.js +275 -0
  342. package/dist/memory/knowledge-graph.js.map +1 -0
  343. package/dist/memory/memory-consolidator.d.ts +124 -0
  344. package/dist/memory/memory-consolidator.d.ts.map +1 -0
  345. package/dist/memory/memory-consolidator.js +514 -0
  346. package/dist/memory/memory-consolidator.js.map +1 -0
  347. package/dist/memory/memory-maintenance.d.ts +39 -0
  348. package/dist/memory/memory-maintenance.d.ts.map +1 -0
  349. package/dist/memory/memory-maintenance.js +336 -0
  350. package/dist/memory/memory-maintenance.js.map +1 -0
  351. package/dist/memory/model-router.d.ts +105 -0
  352. package/dist/memory/model-router.d.ts.map +1 -0
  353. package/dist/memory/model-router.js +474 -0
  354. package/dist/memory/model-router.js.map +1 -0
  355. package/dist/memory/multi-view-memory.d.ts +134 -0
  356. package/dist/memory/multi-view-memory.d.ts.map +1 -0
  357. package/dist/memory/multi-view-memory.js +430 -0
  358. package/dist/memory/multi-view-memory.js.map +1 -0
  359. package/dist/memory/predictive-memory.d.ts +79 -0
  360. package/dist/memory/predictive-memory.d.ts.map +1 -0
  361. package/dist/memory/predictive-memory.js +294 -0
  362. package/dist/memory/predictive-memory.js.map +1 -0
  363. package/dist/memory/prepopulate.d.ts +76 -0
  364. package/dist/memory/prepopulate.d.ts.map +1 -0
  365. package/dist/memory/prepopulate.js +832 -0
  366. package/dist/memory/prepopulate.js.map +1 -0
  367. package/dist/memory/semantic-compression.d.ts +77 -0
  368. package/dist/memory/semantic-compression.d.ts.map +1 -0
  369. package/dist/memory/semantic-compression.js +359 -0
  370. package/dist/memory/semantic-compression.js.map +1 -0
  371. package/dist/memory/serverless-qdrant.d.ts +102 -0
  372. package/dist/memory/serverless-qdrant.d.ts.map +1 -0
  373. package/dist/memory/serverless-qdrant.js +369 -0
  374. package/dist/memory/serverless-qdrant.js.map +1 -0
  375. package/dist/memory/short-term/factory.d.ts +26 -0
  376. package/dist/memory/short-term/factory.d.ts.map +1 -0
  377. package/dist/memory/short-term/factory.js +28 -0
  378. package/dist/memory/short-term/factory.js.map +1 -0
  379. package/dist/memory/short-term/indexeddb.d.ts +25 -0
  380. package/dist/memory/short-term/indexeddb.d.ts.map +1 -0
  381. package/dist/memory/short-term/indexeddb.js +64 -0
  382. package/dist/memory/short-term/indexeddb.js.map +1 -0
  383. package/dist/memory/short-term/schema.d.ts +6 -0
  384. package/dist/memory/short-term/schema.d.ts.map +1 -0
  385. package/dist/memory/short-term/schema.js +141 -0
  386. package/dist/memory/short-term/schema.js.map +1 -0
  387. package/dist/memory/short-term/sqlite.d.ts +64 -0
  388. package/dist/memory/short-term/sqlite.d.ts.map +1 -0
  389. package/dist/memory/short-term/sqlite.js +274 -0
  390. package/dist/memory/short-term/sqlite.js.map +1 -0
  391. package/dist/memory/speculative-cache.d.ts +111 -0
  392. package/dist/memory/speculative-cache.d.ts.map +1 -0
  393. package/dist/memory/speculative-cache.js +457 -0
  394. package/dist/memory/speculative-cache.js.map +1 -0
  395. package/dist/memory/task-classifier.d.ts +40 -0
  396. package/dist/memory/task-classifier.d.ts.map +1 -0
  397. package/dist/memory/task-classifier.js +342 -0
  398. package/dist/memory/task-classifier.js.map +1 -0
  399. package/dist/memory/terminal-bench-knowledge.d.ts +48 -0
  400. package/dist/memory/terminal-bench-knowledge.d.ts.map +1 -0
  401. package/dist/memory/terminal-bench-knowledge.js +622 -0
  402. package/dist/memory/terminal-bench-knowledge.js.map +1 -0
  403. package/dist/memory/write-gate.d.ts +39 -0
  404. package/dist/memory/write-gate.d.ts.map +1 -0
  405. package/dist/memory/write-gate.js +190 -0
  406. package/dist/memory/write-gate.js.map +1 -0
  407. package/dist/models/api-client.d.ts +46 -0
  408. package/dist/models/api-client.d.ts.map +1 -0
  409. package/dist/models/api-client.js +182 -0
  410. package/dist/models/api-client.js.map +1 -0
  411. package/dist/models/execution-profiles.d.ts +64 -0
  412. package/dist/models/execution-profiles.d.ts.map +1 -0
  413. package/dist/models/execution-profiles.js +403 -0
  414. package/dist/models/execution-profiles.js.map +1 -0
  415. package/dist/models/executor.d.ts +130 -0
  416. package/dist/models/executor.d.ts.map +1 -0
  417. package/dist/models/executor.js +382 -0
  418. package/dist/models/executor.js.map +1 -0
  419. package/dist/models/index.d.ts +19 -0
  420. package/dist/models/index.d.ts.map +1 -0
  421. package/dist/models/index.js +23 -0
  422. package/dist/models/index.js.map +1 -0
  423. package/dist/models/plan-validator.d.ts +37 -0
  424. package/dist/models/plan-validator.d.ts.map +1 -0
  425. package/dist/models/plan-validator.js +179 -0
  426. package/dist/models/plan-validator.js.map +1 -0
  427. package/dist/models/planner.d.ts +73 -0
  428. package/dist/models/planner.d.ts.map +1 -0
  429. package/dist/models/planner.js +375 -0
  430. package/dist/models/planner.js.map +1 -0
  431. package/dist/models/router.d.ts +96 -0
  432. package/dist/models/router.d.ts.map +1 -0
  433. package/dist/models/router.js +523 -0
  434. package/dist/models/router.js.map +1 -0
  435. package/dist/models/types.d.ts +370 -0
  436. package/dist/models/types.d.ts.map +1 -0
  437. package/dist/models/types.js +232 -0
  438. package/dist/models/types.js.map +1 -0
  439. package/dist/models/unified-router.d.ts +152 -0
  440. package/dist/models/unified-router.d.ts.map +1 -0
  441. package/dist/models/unified-router.js +313 -0
  442. package/dist/models/unified-router.js.map +1 -0
  443. package/dist/policies/convert-policy-to-claude.d.ts +3 -0
  444. package/dist/policies/convert-policy-to-claude.d.ts.map +1 -0
  445. package/dist/policies/convert-policy-to-claude.js +87 -0
  446. package/dist/policies/convert-policy-to-claude.js.map +1 -0
  447. package/dist/policies/database-manager.d.ts +27 -0
  448. package/dist/policies/database-manager.d.ts.map +1 -0
  449. package/dist/policies/database-manager.js +198 -0
  450. package/dist/policies/database-manager.js.map +1 -0
  451. package/dist/policies/enforced-tool-router.d.ts +53 -0
  452. package/dist/policies/enforced-tool-router.d.ts.map +1 -0
  453. package/dist/policies/enforced-tool-router.js +80 -0
  454. package/dist/policies/enforced-tool-router.js.map +1 -0
  455. package/dist/policies/index.d.ts +10 -0
  456. package/dist/policies/index.d.ts.map +1 -0
  457. package/dist/policies/index.js +8 -0
  458. package/dist/policies/index.js.map +1 -0
  459. package/dist/policies/policy-gate.d.ts +59 -0
  460. package/dist/policies/policy-gate.d.ts.map +1 -0
  461. package/dist/policies/policy-gate.js +171 -0
  462. package/dist/policies/policy-gate.js.map +1 -0
  463. package/dist/policies/policy-memory.d.ts +18 -0
  464. package/dist/policies/policy-memory.d.ts.map +1 -0
  465. package/dist/policies/policy-memory.js +126 -0
  466. package/dist/policies/policy-memory.js.map +1 -0
  467. package/dist/policies/policy-tools.d.ts +11 -0
  468. package/dist/policies/policy-tools.d.ts.map +1 -0
  469. package/dist/policies/policy-tools.js +66 -0
  470. package/dist/policies/policy-tools.js.map +1 -0
  471. package/dist/policies/schemas/policy.d.ts +69 -0
  472. package/dist/policies/schemas/policy.d.ts.map +1 -0
  473. package/dist/policies/schemas/policy.js +31 -0
  474. package/dist/policies/schemas/policy.js.map +1 -0
  475. package/dist/tasks/coordination.d.ts +83 -0
  476. package/dist/tasks/coordination.d.ts.map +1 -0
  477. package/dist/tasks/coordination.js +291 -0
  478. package/dist/tasks/coordination.js.map +1 -0
  479. package/dist/tasks/database.d.ts +19 -0
  480. package/dist/tasks/database.d.ts.map +1 -0
  481. package/dist/tasks/database.js +149 -0
  482. package/dist/tasks/database.js.map +1 -0
  483. package/dist/tasks/decoder-gate.d.ts +64 -0
  484. package/dist/tasks/decoder-gate.d.ts.map +1 -0
  485. package/dist/tasks/decoder-gate.js +268 -0
  486. package/dist/tasks/decoder-gate.js.map +1 -0
  487. package/dist/tasks/index.d.ts +6 -0
  488. package/dist/tasks/index.d.ts.map +1 -0
  489. package/dist/tasks/index.js +6 -0
  490. package/dist/tasks/index.js.map +1 -0
  491. package/dist/tasks/service.d.ts +40 -0
  492. package/dist/tasks/service.d.ts.map +1 -0
  493. package/dist/tasks/service.js +671 -0
  494. package/dist/tasks/service.js.map +1 -0
  495. package/dist/tasks/types.d.ts +238 -0
  496. package/dist/tasks/types.d.ts.map +1 -0
  497. package/dist/tasks/types.js +74 -0
  498. package/dist/tasks/types.js.map +1 -0
  499. package/dist/telemetry/index.d.ts +2 -0
  500. package/dist/telemetry/index.d.ts.map +1 -0
  501. package/dist/telemetry/index.js +2 -0
  502. package/dist/telemetry/index.js.map +1 -0
  503. package/dist/telemetry/session-telemetry.d.ts +56 -0
  504. package/dist/telemetry/session-telemetry.d.ts.map +1 -0
  505. package/dist/telemetry/session-telemetry.js +807 -0
  506. package/dist/telemetry/session-telemetry.js.map +1 -0
  507. package/dist/types/analysis.d.ts +82 -0
  508. package/dist/types/analysis.d.ts.map +1 -0
  509. package/dist/types/analysis.js +2 -0
  510. package/dist/types/analysis.js.map +1 -0
  511. package/dist/types/config.d.ts +3324 -0
  512. package/dist/types/config.d.ts.map +1 -0
  513. package/dist/types/config.js +418 -0
  514. package/dist/types/config.js.map +1 -0
  515. package/dist/types/coordination.d.ts +240 -0
  516. package/dist/types/coordination.d.ts.map +1 -0
  517. package/dist/types/coordination.js +43 -0
  518. package/dist/types/coordination.js.map +1 -0
  519. package/dist/types/index.d.ts +4 -0
  520. package/dist/types/index.d.ts.map +1 -0
  521. package/dist/types/index.js +4 -0
  522. package/dist/types/index.js.map +1 -0
  523. package/dist/uap-droids-strict.d.ts +59 -0
  524. package/dist/uap-droids-strict.d.ts.map +1 -0
  525. package/dist/uap-droids-strict.js +200 -0
  526. package/dist/uap-droids-strict.js.map +1 -0
  527. package/dist/utils/config-manager.d.ts +30 -0
  528. package/dist/utils/config-manager.d.ts.map +1 -0
  529. package/dist/utils/config-manager.js +41 -0
  530. package/dist/utils/config-manager.js.map +1 -0
  531. package/dist/utils/fetch-with-retry.d.ts +5 -0
  532. package/dist/utils/fetch-with-retry.d.ts.map +1 -0
  533. package/dist/utils/fetch-with-retry.js +61 -0
  534. package/dist/utils/fetch-with-retry.js.map +1 -0
  535. package/dist/utils/merge-claude-md.d.ts +28 -0
  536. package/dist/utils/merge-claude-md.d.ts.map +1 -0
  537. package/dist/utils/merge-claude-md.js +342 -0
  538. package/dist/utils/merge-claude-md.js.map +1 -0
  539. package/dist/utils/rate-limiter.d.ts +58 -0
  540. package/dist/utils/rate-limiter.d.ts.map +1 -0
  541. package/dist/utils/rate-limiter.js +100 -0
  542. package/dist/utils/rate-limiter.js.map +1 -0
  543. package/dist/utils/string-similarity.d.ts +37 -0
  544. package/dist/utils/string-similarity.d.ts.map +1 -0
  545. package/dist/utils/string-similarity.js +114 -0
  546. package/dist/utils/string-similarity.js.map +1 -0
  547. package/dist/utils/validate-json.d.ts +51 -0
  548. package/dist/utils/validate-json.d.ts.map +1 -0
  549. package/dist/utils/validate-json.js +94 -0
  550. package/dist/utils/validate-json.js.map +1 -0
  551. package/docs/INDEX.md +66 -0
  552. package/docs/architecture/MULTI_MODEL.md +224 -0
  553. package/docs/architecture/SYSTEM_ANALYSIS.md +1117 -0
  554. package/docs/architecture/UAP_COMPLIANCE.md +217 -0
  555. package/docs/architecture/UAP_PROTOCOL.md +339 -0
  556. package/docs/architecture/UAP_STRICT_DROIDS.md +172 -0
  557. package/docs/archive/BALLS_MODE_SELF_ANALYSIS.md +260 -0
  558. package/docs/archive/FAILING_TASKS_SOLUTION_PLAN.md +668 -0
  559. package/docs/archive/JINJA2-SYSTEM-MESSAGE-FIX.md +209 -0
  560. package/docs/archive/NPM-PUBLISH-V0.9.1.md +240 -0
  561. package/docs/archive/OPTIMIZATION_OPTIONS.md +334 -0
  562. package/docs/archive/SETUP_IMPROVEMENTS.md +213 -0
  563. package/docs/archive/UAP_GENERIC_OPTIMIZATION_PLAN.md +270 -0
  564. package/docs/archive/UAP_V103_PATTERN_DESIGN.md +315 -0
  565. package/docs/archive/UAP_V104_COMPLIANCE_DESIGN.md +223 -0
  566. package/docs/archive/changelog/2026-03-10_uap-100-compliance.md +77 -0
  567. package/docs/archive/changelog/2026-03-10_uap-full-system-verification.md +109 -0
  568. package/docs/benchmarks/ACCURACY_ANALYSIS.md +471 -0
  569. package/docs/benchmarks/TOKEN_OPTIMIZATION.md +572 -0
  570. package/docs/benchmarks/VALIDATION_PLAN.md +568 -0
  571. package/docs/benchmarks/VALIDATION_RESULTS.md +161 -0
  572. package/docs/deployment/DEPLOYMENT.md +895 -0
  573. package/docs/deployment/DEPLOYMENT_STRATEGIES.md +518 -0
  574. package/docs/deployment/DEPLOY_BATCHER_ANALYSIS.md +856 -0
  575. package/docs/deployment/DEPLOY_BATCHING.md +273 -0
  576. package/docs/deployment/DEPLOY_BUCKETING_ANALYSIS.md +420 -0
  577. package/docs/deployment/QWEN35_LLAMA_CPP.md +265 -0
  578. package/docs/getting-started/INTEGRATION.md +449 -0
  579. package/docs/getting-started/OVERVIEW.md +344 -0
  580. package/docs/getting-started/SETUP.md +203 -0
  581. package/docs/integrations/MCP_ROUTER_SETUP.md +445 -0
  582. package/docs/integrations/RTK_INTEGRATION.md +468 -0
  583. package/docs/operations/TROUBLESHOOTING.md +660 -0
  584. package/docs/reference/API_REFERENCE.md +903 -0
  585. package/docs/reference/FEATURES.md +472 -0
  586. package/docs/reference/HARNESS-MATRIX.md +318 -0
  587. package/docs/reference/UAP_CLI_REFERENCE.md +600 -0
  588. package/docs/research/BEHAVIORAL_PATTERNS.md +228 -0
  589. package/docs/research/DOMAIN_STRATEGIES.md +316 -0
  590. package/docs/research/MEMORY_SYSTEMS_COMPARISON.md +812 -0
  591. package/docs/research/PATTERN_ANALYSIS_2026-01-18.md +436 -0
  592. package/docs/research/PERFORMANCE_ANALYSIS_2026-01-18.md +209 -0
  593. package/docs/research/PERFORMANCE_TEST_PLAN.md +383 -0
  594. package/docs/research/TERMINAL_BENCH_LEARNINGS.md +217 -0
  595. package/package.json +113 -0
  596. package/scripts/README.md +161 -0
  597. package/templates/CLAUDE.template.md +10 -0
  598. package/templates/CLAUDE_ARCHITECTURE.template.md +103 -0
  599. package/templates/CLAUDE_CODING.template.md +127 -0
  600. package/templates/CLAUDE_DROIDS.template.md +109 -0
  601. package/templates/CLAUDE_MEMORY.template.md +131 -0
  602. package/templates/CLAUDE_WORKFLOWS.template.md +139 -0
  603. package/templates/PROJECT.template.md +209 -0
  604. package/templates/SCHEMA.md +57 -0
  605. package/templates/archive/CLAUDE.template.root-v6.md +534 -0
  606. package/templates/archive/CLAUDE.template.v6.md +534 -0
  607. package/templates/hooks/forgecode/pre-compact.sh +68 -0
  608. package/templates/hooks/forgecode/session-start.sh +169 -0
  609. package/templates/hooks/forgecode.plugin.sh +128 -0
  610. package/templates/hooks/pre-compact.sh +74 -0
  611. package/templates/hooks/session-start.sh +366 -0
  612. package/tools/agents/README.md +224 -0
  613. package/tools/agents/UAP/README.md +386 -0
  614. package/tools/agents/UAP/__init__.py +9 -0
  615. package/tools/agents/UAP/cli.py +901 -0
  616. package/tools/agents/UAP/compliance_verify.sh +108 -0
  617. package/tools/agents/UAP/full_verification.sh +126 -0
  618. package/tools/agents/UAP/version.py +32 -0
  619. package/tools/agents/benchmarks/benchmark_memory_systems.py +730 -0
  620. package/tools/agents/benchmarks/results/benchmark_20260106_064817.json +170 -0
  621. package/tools/agents/benchmarks/results/benchmark_20260106_064817.md +51 -0
  622. package/tools/agents/config/chat_template.jinja +77 -0
  623. package/tools/agents/config/tool-call-schema.json +19 -0
  624. package/tools/agents/config/tool-call.gbnf +58 -0
  625. package/tools/agents/docker/Dockerfile.python +52 -0
  626. package/tools/agents/docker/Dockerfile.ubuntu +55 -0
  627. package/tools/agents/docker-compose.qdrant.yml +24 -0
  628. package/tools/agents/install-opencode-local.sh.j2 +135 -0
  629. package/tools/agents/migrations/apply.py +256 -0
  630. package/tools/agents/opencode_uap_agent.py +1505 -0
  631. package/tools/agents/plugin/README.md +91 -0
  632. package/tools/agents/plugin/index.ts +46 -0
  633. package/tools/agents/plugin/pre-compact.sh +68 -0
  634. package/tools/agents/plugin/session-start.sh +175 -0
  635. package/tools/agents/plugin/uap-commands.ts +45 -0
  636. package/tools/agents/plugin/uap-droids.ts +54 -0
  637. package/tools/agents/plugin/uap-patterns.ts +54 -0
  638. package/tools/agents/plugin/uap-skills.ts +52 -0
  639. package/tools/agents/plugins/uap-enforce.ts +314 -0
  640. package/tools/agents/scripts/__pycache__/tool_call_wrapper.cpython-313.pyc +0 -0
  641. package/tools/agents/scripts/chat_template_verifier.py +343 -0
  642. package/tools/agents/scripts/fix-qwen-template.js +38 -0
  643. package/tools/agents/scripts/fix_qwen_chat_template.py +316 -0
  644. package/tools/agents/scripts/generate_lora_training_data.py +412 -0
  645. package/tools/agents/scripts/init_qdrant.py +151 -0
  646. package/tools/agents/scripts/memory_migration.py +560 -0
  647. package/tools/agents/scripts/migrate_memory_to_qdrant.py +110 -0
  648. package/tools/agents/scripts/prepare_lora.sh +512 -0
  649. package/tools/agents/scripts/query_memory.py +200 -0
  650. package/tools/agents/scripts/qwen-tool-call-test.js +38 -0
  651. package/tools/agents/scripts/qwen-tool-call-wrapper.js +38 -0
  652. package/tools/agents/scripts/qwen_tool_call_test.py +464 -0
  653. package/tools/agents/scripts/qwen_tool_call_wrapper.py +686 -0
  654. package/tools/agents/scripts/start-services.sh +96 -0
  655. package/tools/agents/scripts/tool-choice-proxy.cjs +296 -0
  656. package/tools/agents/scripts/tool_call_test.py +656 -0
  657. package/tools/agents/scripts/tool_call_wrapper.py +799 -0
  658. package/tools/agents/tests/test_uap_compliance.py +257 -0
  659. package/tools/agents/uap_agent.py +122 -0
  660. package/tools/agents/uap_agent_install.sh +12 -0
@@ -0,0 +1,170 @@
1
+ [
2
+ {
3
+ "name": "SQLite",
4
+ "operation": "INSERT (single)",
5
+ "samples": 100,
6
+ "mean_ms": 1.1429446772672236,
7
+ "median_ms": 1.1120839626528323,
8
+ "p95_ms": 1.3595609925687313,
9
+ "p99_ms": 1.5702530508860946,
10
+ "min_ms": 1.0651589836925268,
11
+ "max_ms": 1.5702530508860946,
12
+ "ops_per_sec": 874.932986600013
13
+ },
14
+ {
15
+ "name": "SQLite",
16
+ "operation": "SELECT recent (LIMIT 50)",
17
+ "samples": 100,
18
+ "mean_ms": 0.1497111632488668,
19
+ "median_ms": 0.14744600048288703,
20
+ "p95_ms": 0.16588205471634865,
21
+ "p99_ms": 0.19576202612370253,
22
+ "min_ms": 0.1444709487259388,
23
+ "max_ms": 0.19576202612370253,
24
+ "ops_per_sec": 6679.528622309127
25
+ },
26
+ {
27
+ "name": "SQLite",
28
+ "operation": "SELECT by type",
29
+ "samples": 100,
30
+ "mean_ms": 0.1452046213671565,
31
+ "median_ms": 0.14327099779620767,
32
+ "p95_ms": 0.159741030074656,
33
+ "p99_ms": 0.20464195404201746,
34
+ "min_ms": 0.14055101200938225,
35
+ "max_ms": 0.20464195404201746,
36
+ "ops_per_sec": 6886.833150244264
37
+ },
38
+ {
39
+ "name": "SQLite",
40
+ "operation": "LIKE search",
41
+ "samples": 100,
42
+ "mean_ms": 0.13849956914782524,
43
+ "median_ms": 0.13719149865210056,
44
+ "p95_ms": 0.14585198368877172,
45
+ "p99_ms": 0.19792199600487947,
46
+ "min_ms": 0.1340809976682067,
47
+ "max_ms": 0.19792199600487947,
48
+ "ops_per_sec": 7220.239067550213
49
+ },
50
+ {
51
+ "name": "SQLite",
52
+ "operation": "Graph query (1-hop)",
53
+ "samples": 100,
54
+ "mean_ms": 0.1656885934062302,
55
+ "median_ms": 0.16310601495206356,
56
+ "p95_ms": 0.18141092732548714,
57
+ "p99_ms": 0.23385195527225733,
58
+ "min_ms": 0.15984103083610535,
59
+ "max_ms": 0.23385195527225733,
60
+ "ops_per_sec": 6035.41848863567
61
+ },
62
+ {
63
+ "name": "Qdrant",
64
+ "operation": "INSERT (single + embed)",
65
+ "samples": 50,
66
+ "mean_ms": 7.81712032854557,
67
+ "median_ms": 4.746215010527521,
68
+ "p95_ms": 5.6189680472016335,
69
+ "p99_ms": 156.39470203313977,
70
+ "min_ms": 4.38071705866605,
71
+ "max_ms": 156.39470203313977,
72
+ "ops_per_sec": 127.92434527946648
73
+ },
74
+ {
75
+ "name": "Qdrant",
76
+ "operation": "Semantic search (top-5)",
77
+ "samples": 100,
78
+ "mean_ms": 1.2219337350688875,
79
+ "median_ms": 1.1123394942842424,
80
+ "p95_ms": 1.682064961642027,
81
+ "p99_ms": 2.7543739415705204,
82
+ "min_ms": 0.9932080283761024,
83
+ "max_ms": 2.7543739415705204,
84
+ "ops_per_sec": 818.3749832748698
85
+ },
86
+ {
87
+ "name": "Qdrant",
88
+ "operation": "Filtered search",
89
+ "samples": 100,
90
+ "mean_ms": 1.2450160249136388,
91
+ "median_ms": 1.2208950356580317,
92
+ "p95_ms": 1.2983810156583786,
93
+ "p99_ms": 3.2460070215165615,
94
+ "min_ms": 1.1418990325182676,
95
+ "max_ms": 3.2460070215165615,
96
+ "ops_per_sec": 803.202513051481
97
+ },
98
+ {
99
+ "name": "Embedding",
100
+ "operation": "Generate (all-MiniLM-L6-v2)",
101
+ "samples": 100,
102
+ "mean_ms": 3.2829831482376903,
103
+ "median_ms": 3.2453580060973763,
104
+ "p95_ms": 3.575409995391965,
105
+ "p99_ms": 4.24535502679646,
106
+ "min_ms": 3.1607369892299175,
107
+ "max_ms": 4.24535502679646,
108
+ "ops_per_sec": 304.601015249439
109
+ },
110
+ {
111
+ "name": "Consolidation",
112
+ "operation": "Simple extraction",
113
+ "samples": 100,
114
+ "mean_ms": 0.04601658787578344,
115
+ "median_ms": 0.04540046211332083,
116
+ "p95_ms": 0.04780001472681761,
117
+ "p99_ms": 0.07955997716635466,
118
+ "min_ms": 0.04478008486330509,
119
+ "max_ms": 0.07955997716635466,
120
+ "ops_per_sec": 21731.293999880792
121
+ },
122
+ {
123
+ "name": "Consolidation",
124
+ "operation": "Semantic dedup",
125
+ "samples": 20,
126
+ "mean_ms": 33.511918887961656,
127
+ "median_ms": 32.87853847723454,
128
+ "p95_ms": 38.731466978788376,
129
+ "p99_ms": 38.731466978788376,
130
+ "min_ms": 31.861560069955885,
131
+ "max_ms": 38.731466978788376,
132
+ "ops_per_sec": 29.840129517597564
133
+ },
134
+ {
135
+ "name": "SQLite@100",
136
+ "operation": "SELECT recent",
137
+ "samples": 50,
138
+ "mean_ms": 0.15139207243919373,
139
+ "median_ms": 0.14865596313029528,
140
+ "p95_ms": 0.1651509664952755,
141
+ "p99_ms": 0.2013719640672207,
142
+ "min_ms": 0.14511204790323973,
143
+ "max_ms": 0.2013719640672207,
144
+ "ops_per_sec": 6605.365683210709
145
+ },
146
+ {
147
+ "name": "SQLite@1000",
148
+ "operation": "SELECT recent",
149
+ "samples": 50,
150
+ "mean_ms": 0.16931103775277734,
151
+ "median_ms": 0.16216648509725928,
152
+ "p95_ms": 0.19682198762893677,
153
+ "p99_ms": 0.24656206369400024,
154
+ "min_ms": 0.15751097816973925,
155
+ "max_ms": 0.24656206369400024,
156
+ "ops_per_sec": 5906.289473342952
157
+ },
158
+ {
159
+ "name": "SQLite@5000",
160
+ "operation": "SELECT recent",
161
+ "samples": 50,
162
+ "mean_ms": 0.16595820896327496,
163
+ "median_ms": 0.16168103320524096,
164
+ "p95_ms": 0.18208206165581942,
165
+ "p99_ms": 0.2518820110708475,
166
+ "min_ms": 0.15775102656334639,
167
+ "max_ms": 0.2518820110708475,
168
+ "ops_per_sec": 6025.613353186349
169
+ }
170
+ ]
@@ -0,0 +1,51 @@
1
+ # Memory Systems Benchmark Report
2
+
3
+ **Generated:** 2026-01-06T06:48:17.656637Z
4
+ **System:** UAP Memory Implementation
5
+
6
+ ## Summary
7
+
8
+ | System | Operation | Mean (ms) | P95 (ms) | Ops/sec |
9
+ | ------------- | --------------------------- | --------- | -------- | ------- |
10
+ | SQLite | INSERT (single) | 1.143 | 1.360 | 875 |
11
+ | SQLite | SELECT recent (LIMIT 50) | 0.150 | 0.166 | 6680 |
12
+ | SQLite | SELECT by type | 0.145 | 0.160 | 6887 |
13
+ | SQLite | LIKE search | 0.138 | 0.146 | 7220 |
14
+ | SQLite | Graph query (1-hop) | 0.166 | 0.181 | 6035 |
15
+ | Qdrant | INSERT (single + embed) | 7.817 | 5.619 | 128 |
16
+ | Qdrant | Semantic search (top-5) | 1.222 | 1.682 | 818 |
17
+ | Qdrant | Filtered search | 1.245 | 1.298 | 803 |
18
+ | Embedding | Generate (all-MiniLM-L6-v2) | 3.283 | 3.575 | 305 |
19
+ | Consolidation | Simple extraction | 0.046 | 0.048 | 21731 |
20
+ | Consolidation | Semantic dedup | 33.512 | 38.731 | 30 |
21
+ | SQLite@100 | SELECT recent | 0.151 | 0.165 | 6605 |
22
+ | SQLite@1000 | SELECT recent | 0.169 | 0.197 | 5906 |
23
+ | SQLite@5000 | SELECT recent | 0.166 | 0.182 | 6026 |
24
+
25
+ ## Key Findings
26
+
27
+ ### Short-term Memory (SQLite)
28
+
29
+ - Single INSERT operations are extremely fast (<0.5ms)
30
+ - SELECT with ORDER BY and LIMIT scales well
31
+ - Knowledge graph queries (1-hop) add minimal overhead
32
+
33
+ ### Long-term Memory (Qdrant)
34
+
35
+ - Embedding generation is the main latency contributor
36
+ - Semantic search is fast once vectors exist (~50-100ms)
37
+ - Filtering adds minimal overhead
38
+
39
+ ### Consolidation
40
+
41
+ - Simple extraction is very fast (<1ms)
42
+ - Semantic deduplication adds significant latency (~100-500ms)
43
+ - Recommendation: Use hash-based dedup, semantic only for high-importance
44
+
45
+ ## Recommendations
46
+
47
+ 1. **Keep SQLite for short-term**: Performance is excellent
48
+ 2. **Batch Qdrant operations**: Reduce per-operation overhead
49
+ 3. **Cache embeddings**: Avoid regenerating for known content
50
+ 4. **Use hybrid dedup**: Hash first, semantic for borderline cases
51
+ 5. **Add session memory layer**: Low overhead, high value
@@ -0,0 +1,77 @@
1
+ {#- UAP Chat Template - ChatML format with tool calling support -#}
2
+ {#- Compatible with llama.cpp / vLLM / OpenAI-compatible servers -#}
3
+ {#- Uses ChatML (<|im_start|>/<|im_end|>) with <tool_call> format -#}
4
+ {#- Works with: Qwen3, Qwen3.5, and other ChatML-compatible models -#}
5
+ {%- if tools %}
6
+ {{- '<|im_start|>system\n' }}
7
+ {%- if messages[0].role == 'system' %}
8
+ {{- messages[0].content + '\n\n' }}
9
+ {%- endif %}
10
+ {{- "# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>" }}
11
+ {%- for tool in tools %}
12
+ {{- "\n" }}
13
+ {{- tool | tojson }}
14
+ {%- endfor %}
15
+ {{- "\n</tools>\n\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\n<tool_call>\n{\"name\": <function-name>, \"arguments\": <args-json-object>}\n</tool_call><|im_end|>\n" }}
16
+ {%- else %}
17
+ {%- if messages[0].role == 'system' %}
18
+ {{- '<|im_start|>system\n' + messages[0].content | trim + '<|im_end|>\n' }}
19
+ {%- endif %}
20
+ {%- endif %}
21
+
22
+ {%- for message in messages %}
23
+ {#- User message or non-first system message -#}
24
+ {%- if (message.role == 'user') or (message.role == 'system' and not loop.first) %}
25
+ {{- '<|im_start|>' + message.role + '\n' + message.content | trim + '<|im_end|>\n' }}
26
+
27
+ {#- Assistant message -#}
28
+ {%- elif message.role == 'assistant' %}
29
+ {{- '<|im_start|>assistant' }}
30
+ {%- if message.content is defined and message.content %}
31
+ {{- '\n' + message.content | trim }}
32
+ {%- endif %}
33
+ {%- if message.tool_calls is defined and message.tool_calls %}
34
+ {%- for tool_call in message.tool_calls %}
35
+ {%- if tool_call.function is defined %}
36
+ {%- set tc = tool_call.function %}
37
+ {%- else %}
38
+ {%- set tc = tool_call %}
39
+ {%- endif %}
40
+ {%- if (loop.first and message.content is defined and message.content) or (not loop.first) %}
41
+ {{- '\n' }}
42
+ {%- endif %}
43
+ {{- '<tool_call>\n{"name": "' }}
44
+ {{- tc.name }}
45
+ {{- '", "arguments": ' }}
46
+ {%- if tc.arguments is string %}
47
+ {{- tc.arguments }}
48
+ {%- else %}
49
+ {{- tc.arguments | tojson }}
50
+ {%- endif %}
51
+ {{- '}\n</tool_call>' }}
52
+ {%- endfor %}
53
+ {%- endif %}
54
+ {{- '<|im_end|>\n' }}
55
+
56
+ {#- Tool response (grouped under user role per Qwen3 spec) -#}
57
+ {%- elif message.role == 'tool' %}
58
+ {%- if loop.first or (messages[loop.index0 - 1].role != 'tool') %}
59
+ {{- '<|im_start|>user' }}
60
+ {%- endif %}
61
+ {{- '\n<tool_response>\n' }}
62
+ {{- message.content | trim }}
63
+ {{- '\n</tool_response>' }}
64
+ {%- if loop.last or (messages[loop.index0 + 1].role != 'tool') %}
65
+ {{- '<|im_end|>\n' }}
66
+ {%- endif %}
67
+
68
+ {%- endif %}
69
+ {%- endfor %}
70
+
71
+ {#- Generation prompt for assistant turn -#}
72
+ {%- if add_generation_prompt is defined and add_generation_prompt %}
73
+ {{- '<|im_start|>assistant\n' }}
74
+ {%- if enable_thinking is defined and enable_thinking is false %}
75
+ {{- '<think>\n\n</think>\n\n' }}
76
+ {%- endif %}
77
+ {%- endif %}
@@ -0,0 +1,19 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "Qwen3.5 Tool Call Output Schema",
4
+ "description": "JSON Schema for constraining tool call output via llama.cpp --json-schema flag. Matches the official Qwen3 <tool_call> format.",
5
+ "type": "object",
6
+ "properties": {
7
+ "name": {
8
+ "type": "string",
9
+ "pattern": "^[a-zA-Z][a-zA-Z0-9_-]*$",
10
+ "description": "The tool/function name to call"
11
+ },
12
+ "arguments": {
13
+ "type": "object",
14
+ "description": "Key-value arguments for the function call"
15
+ }
16
+ },
17
+ "required": ["name", "arguments"],
18
+ "additionalProperties": false
19
+ }
@@ -0,0 +1,58 @@
1
+ # GBNF Grammar for Qwen3.5 Tool Call Structured Output
2
+ # Constrains model output to valid tool call format
3
+ #
4
+ # WARNING: Do NOT use this with --grammar-file on server startup.
5
+ # Global grammar forces ALL output into <tool_call> format, breaking plain chat.
6
+ # llama.cpp's autoparser handles tool calls lazily via the chat template.
7
+ #
8
+ # Use this grammar for per-request enforcement only, via the "grammar" field
9
+ # in individual API payloads when strict format adherence is needed.
10
+ #
11
+ # Matches the official Qwen3 chat template format:
12
+ # <tool_call>
13
+ # {"name": "function_name", "arguments": {"key": "value"}}
14
+ # </tool_call>
15
+
16
+ root ::= ws tool-calls ws
17
+
18
+ # One or more tool calls (supports multi-tool in single turn)
19
+ tool-calls ::= tool-call (ws tool-call)*
20
+
21
+ # Single tool call block
22
+ tool-call ::= "<tool_call>" ws "{\"name\":" ws json-string ws "," ws "\"arguments\":" ws json-object ws "}" ws "</tool_call>"
23
+
24
+ # JSON object (the arguments)
25
+ json-object ::= "{" ws json-members? ws "}"
26
+
27
+ json-members ::= json-pair (ws "," ws json-pair)*
28
+
29
+ json-pair ::= json-string ws ":" ws json-value
30
+
31
+ json-value ::= json-string | json-number | json-object | json-array | json-bool | json-null
32
+
33
+ json-string ::= "\"" json-chars "\"" | "\"\""
34
+
35
+ json-chars ::= json-char+
36
+
37
+ json-char ::= [^"\\] | "\\" json-escape
38
+
39
+ json-escape ::= ["\\/bfnrt] | "u" [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F]
40
+
41
+ json-number ::= "-"? json-int json-frac? json-exp?
42
+
43
+ json-int ::= "0" | [1-9] [0-9]*
44
+
45
+ json-frac ::= "." [0-9]+
46
+
47
+ json-exp ::= [eE] [+-]? [0-9]+
48
+
49
+ json-array ::= "[" ws json-array-items? ws "]"
50
+
51
+ json-array-items ::= json-value (ws "," ws json-value)*
52
+
53
+ json-bool ::= "true" | "false"
54
+
55
+ json-null ::= "null"
56
+
57
+ # Whitespace
58
+ ws ::= [ \t\n\r]*
@@ -0,0 +1,52 @@
1
+ # Layer 2: Agent toolchain for python:3.13-slim-bookworm tasks
2
+ # Contains: nvm, Node 22, opencode, @ai-sdk/openai-compatible, apt/pip deps
3
+ # Does NOT contain UAP -- that is Layer 3, installed at runtime for easy upgrades
4
+ #
5
+ # Rebuild this image when: opencode version changes, new system deps needed
6
+ # Do NOT rebuild for UAP version changes -- just update UAP_VERSION in install script
7
+ FROM python:3.13-slim-bookworm
8
+
9
+ ENV DEBIAN_FRONTEND=noninteractive
10
+ ENV NVM_DIR=/root/.nvm
11
+ ENV NODE_VERSION=22
12
+
13
+ # System dependencies
14
+ RUN apt-get update && apt-get install -y --no-install-recommends \
15
+ curl git build-essential \
16
+ jq netcat-openbsd xxd \
17
+ tesseract-ocr tesseract-ocr-eng \
18
+ poppler-utils imagemagick ffmpeg \
19
+ libsm6 libxext6 file \
20
+ sqlite3 libsqlite3-dev \
21
+ ca-certificates \
22
+ tmux \
23
+ && rm -rf /var/lib/apt/lists/*
24
+
25
+ # Python packages
26
+ RUN pip install --no-cache-dir \
27
+ numpy pillow pytesseract opencv-python-headless \
28
+ python-chess \
29
+ 2>/dev/null || true
30
+
31
+ # Install nvm + Node 22
32
+ RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash \
33
+ && . "$NVM_DIR/nvm.sh" \
34
+ && nvm install $NODE_VERSION \
35
+ && nvm alias default $NODE_VERSION \
36
+ && nvm use default
37
+
38
+ # Make node/npm available in PATH for non-interactive shells
39
+ ENV PATH="/root/.nvm/versions/node/v${NODE_VERSION}/bin:${PATH}"
40
+
41
+ # Install opencode + AI SDK provider (Layer 2 -- toolchain)
42
+ RUN . "$NVM_DIR/nvm.sh" \
43
+ && npm i -g opencode-ai@latest \
44
+ && npm i -g @ai-sdk/openai-compatible
45
+
46
+ # Create installed-agent directory for harbor
47
+ RUN mkdir -p /installed-agent
48
+
49
+ # Marker: toolchain version (Layer 2). UAP version is separate (Layer 3).
50
+ RUN echo "toolchain-1.0" > /installed-agent/.toolchain-version
51
+
52
+ WORKDIR /app
@@ -0,0 +1,55 @@
1
+ # Layer 2: Agent toolchain for ubuntu:24.04 tasks
2
+ # Contains: nvm, Node 22, opencode, @ai-sdk/openai-compatible, apt/pip deps
3
+ # Does NOT contain UAP -- that is Layer 3, installed at runtime for easy upgrades
4
+ #
5
+ # Rebuild this image when: opencode version changes, new system deps needed
6
+ # Do NOT rebuild for UAP version changes -- just update UAP_VERSION in install script
7
+ FROM ubuntu:24.04
8
+
9
+ ENV DEBIAN_FRONTEND=noninteractive
10
+ ENV NVM_DIR=/root/.nvm
11
+ ENV NODE_VERSION=22
12
+
13
+ # System dependencies (superset of all task needs)
14
+ RUN apt-get update && apt-get install -y --no-install-recommends \
15
+ curl git build-essential python3-pip python3-dev python3-venv python3-full \
16
+ jq netcat-openbsd xxd \
17
+ tesseract-ocr tesseract-ocr-eng \
18
+ poppler-utils imagemagick ffmpeg \
19
+ libsm6 libxext6 file \
20
+ p7zip-full hashcat john \
21
+ sqlite3 libsqlite3-dev \
22
+ stockfish \
23
+ ca-certificates \
24
+ tmux \
25
+ perl libcompress-raw-lzma-perl \
26
+ && rm -rf /var/lib/apt/lists/*
27
+
28
+ # Python packages (superset of all task needs)
29
+ RUN pip install --break-system-packages --no-cache-dir \
30
+ numpy pillow pytesseract opencv-python-headless \
31
+ python-chess \
32
+ 2>/dev/null || true
33
+
34
+ # Install nvm + Node 22
35
+ RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash \
36
+ && . "$NVM_DIR/nvm.sh" \
37
+ && nvm install $NODE_VERSION \
38
+ && nvm alias default $NODE_VERSION \
39
+ && nvm use default
40
+
41
+ # Make node/npm available in PATH for non-interactive shells
42
+ ENV PATH="/root/.nvm/versions/node/v${NODE_VERSION}/bin:${PATH}"
43
+
44
+ # Install opencode + AI SDK provider (Layer 2 -- toolchain)
45
+ RUN . "$NVM_DIR/nvm.sh" \
46
+ && npm i -g opencode-ai@latest \
47
+ && npm i -g @ai-sdk/openai-compatible
48
+
49
+ # Create installed-agent directory for harbor
50
+ RUN mkdir -p /installed-agent
51
+
52
+ # Marker: toolchain version (Layer 2). UAP version is separate (Layer 3).
53
+ RUN echo "toolchain-1.0" > /installed-agent/.toolchain-version
54
+
55
+ WORKDIR /app
@@ -0,0 +1,24 @@
1
+ version: '3.8'
2
+
3
+ services:
4
+ qdrant:
5
+ image: qdrant/qdrant:latest
6
+ container_name: uap-qdrant
7
+ ports:
8
+ - '6333:6333' # REST API
9
+ - '6334:6334' # gRPC
10
+ volumes:
11
+ - ./qdrant_storage:/qdrant/storage:z
12
+ environment:
13
+ - QDRANT__SERVICE__GRPC_PORT=6334
14
+ - QDRANT__REST__PORT=6333
15
+ - QDRANT__LOG_LEVEL=INFO
16
+ restart: unless-stopped
17
+ healthcheck:
18
+ test: ['CMD', 'curl', '-f', 'http://localhost:6333/healthz']
19
+ interval: 30s
20
+ timeout: 10s
21
+ retries: 3
22
+
23
+ volumes:
24
+ qdrant_storage:
@@ -0,0 +1,135 @@
1
+ #!/bin/bash
2
+ set -e
3
+
4
+ # ============================================================================
5
+ # 3-Layer Architecture:
6
+ # Layer 1: Task image (task data, base OS) -- from Dockerfile
7
+ # Layer 2: Toolchain (nvm, node, opencode, pip) -- pre-built in Docker image
8
+ # Layer 3: UAP (universal-agent-protocol) -- installed HERE at runtime
9
+ #
10
+ # To upgrade UAP: change UAP_VERSION below. No image rebuild needed.
11
+ # To upgrade toolchain: rebuild docker images (Dockerfile.ubuntu/python)
12
+ # ============================================================================
13
+
14
+ UAP_VERSION="1.0.0"
15
+
16
+ # ============================================================================
17
+ # Layer 2: Toolchain detection
18
+ # ============================================================================
19
+ if [ -f /installed-agent/.toolchain-version ]; then
20
+ TOOLCHAIN_VER=$(cat /installed-agent/.toolchain-version)
21
+ echo "=== Layer 2: Toolchain detected (${TOOLCHAIN_VER}) - skipping heavy install ==="
22
+
23
+ export NVM_DIR="$HOME/.nvm"
24
+ [ -s "$NVM_DIR/nvm.sh" ] && source "$NVM_DIR/nvm.sh"
25
+
26
+ echo " Node $(node -v 2>/dev/null || echo 'MISSING')"
27
+ echo " npm $(npm -v 2>/dev/null || echo 'MISSING')"
28
+ echo " opencode $(opencode --version 2>/dev/null || echo 'MISSING')"
29
+ else
30
+ echo "=== Layer 2: No toolchain found - full install ==="
31
+
32
+ # System dependencies
33
+ apt-get update
34
+ apt-get install -y curl git build-essential python3-pip jq netcat-openbsd xxd \
35
+ tesseract-ocr tesseract-ocr-eng poppler-utils imagemagick ffmpeg \
36
+ libsm6 libxext6 file tmux
37
+
38
+ # Python packages
39
+ pip install --break-system-packages numpy pillow pytesseract \
40
+ opencv-python-headless python-chess 2>/dev/null || true
41
+
42
+ # Node.js via nvm
43
+ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash
44
+ source "$HOME/.nvm/nvm.sh"
45
+ nvm install 22
46
+ echo " Node $(node -v), npm $(npm -v)"
47
+
48
+ # opencode + AI SDK
49
+ for attempt in 1 2 3; do
50
+ {% if version %}
51
+ npm i -g opencode-ai@{{ version }} && break
52
+ {% else %}
53
+ npm i -g opencode-ai@latest && break
54
+ {% endif %}
55
+ echo " npm install failed (attempt ${attempt}/3), retrying..."
56
+ sleep 15
57
+ done
58
+ npm i -g @ai-sdk/openai-compatible 2>/dev/null || true
59
+
60
+ echo " Layer 2 install complete"
61
+ fi
62
+
63
+ # ============================================================================
64
+ # Layer 3: UAP (always runs -- fast, ~3-5s)
65
+ # ============================================================================
66
+ echo "=== Layer 3: Installing UAP v${UAP_VERSION} ==="
67
+
68
+ export NVM_DIR="$HOME/.nvm"
69
+ [ -s "$NVM_DIR/nvm.sh" ] && source "$NVM_DIR/nvm.sh"
70
+
71
+ # Check if correct version already installed
72
+ CURRENT_UAP=$(uap --version 2>/dev/null || echo "none")
73
+ if [ "$CURRENT_UAP" = "$UAP_VERSION" ]; then
74
+ echo " UAP v${UAP_VERSION} already installed - skipping"
75
+ else
76
+ npm i -g universal-agent-protocol@${UAP_VERSION} 2>/dev/null || true
77
+ echo " UAP v${UAP_VERSION} installed"
78
+ fi
79
+
80
+ # Run UAP setup for this project
81
+ cd /app
82
+ uap install opencode 2>/dev/null || true
83
+ echo " UAP setup complete"
84
+
85
+ # ============================================================================
86
+ # Config injection
87
+ # ============================================================================
88
+
89
+ # Write opencode.json with custom llama.cpp provider
90
+ cat > /installed-agent/opencode.json << 'OPENCODE_EOF'
91
+ {{ opencode_config }}
92
+ OPENCODE_EOF
93
+
94
+ {% if claude_md is defined and claude_md %}
95
+ cat > /installed-agent/CLAUDE.md << 'CLAUDE_EOF'
96
+ {{ claude_md }}
97
+ CLAUDE_EOF
98
+ echo " CLAUDE.md written (UAP mode)"
99
+ {% else %}
100
+ echo " No CLAUDE.md (baseline mode)"
101
+ {% endif %}
102
+
103
+ # ============================================================================
104
+ # LLM endpoint connectivity check
105
+ # ============================================================================
106
+ LLM_ENDPOINT="{{ api_endpoint }}"
107
+ echo "=== Checking LLM endpoint: ${LLM_ENDPOINT} ==="
108
+
109
+ MAX_RETRIES=5
110
+ RETRY_DELAY=10
111
+ CONNECTED=false
112
+
113
+ for attempt in $(seq 1 $MAX_RETRIES); do
114
+ if python3 -c "import urllib.request; urllib.request.urlopen('${LLM_ENDPOINT}/models', timeout=10)" 2>/dev/null; then
115
+ echo " LLM reachable (attempt ${attempt}/${MAX_RETRIES})"
116
+ CONNECTED=true
117
+ break
118
+ fi
119
+ echo " LLM not reachable (attempt ${attempt}/${MAX_RETRIES}), retrying in ${RETRY_DELAY}s..."
120
+ sleep $RETRY_DELAY
121
+ done
122
+
123
+ if [ "$CONNECTED" = false ]; then
124
+ echo " WARNING: LLM endpoint not reachable after ${MAX_RETRIES} attempts"
125
+ fi
126
+
127
+ # ============================================================================
128
+ # Summary
129
+ # ============================================================================
130
+ source "$HOME/.nvm/nvm.sh"
131
+ echo "=== Install complete ==="
132
+ echo " Layer 2: toolchain $(cat /installed-agent/.toolchain-version 2>/dev/null || echo 'fresh')"
133
+ echo " Layer 3: UAP v$(uap --version 2>/dev/null || echo '?')"
134
+ echo " opencode $(opencode --version 2>/dev/null || echo '?')"
135
+ echo " API: {{ api_endpoint }}"