@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,265 @@
1
+ # Qwen3.5 llama.cpp Deployment Guide
2
+
3
+ How to run Qwen3.5 35B A3B with the official Qwen3 chat template, LoRA adapters, and structured tool call output via llama.cpp.
4
+
5
+ ## Prerequisites
6
+
7
+ - [llama.cpp](https://github.com/ggml-org/llama.cpp) built with CUDA/Metal support
8
+ - Qwen3.5 35B A3B GGUF model (e.g. `qwen3.5-a3b-iq4xs.gguf`)
9
+ - (Optional) Draft model for speculative decoding: `Qwen3.5-0.8B-Q8_0.gguf`
10
+ - (Optional) LoRA adapter GGUF for improved tool call reliability
11
+
12
+ ## Quick Start
13
+
14
+ ```bash
15
+ llama-server \
16
+ --model /path/to/qwen3.5-a3b-iq4xs.gguf \
17
+ --chat-template-file chat_template.jinja \
18
+ --n-predict 4096 \
19
+ --temp 0.6 --top-p 0.9 --top-k 20 --min-p 0.05 \
20
+ --repeat-penalty 1.05 \
21
+ --threads 8 --ctx-size 131072 --batch-size 8 \
22
+ --gpu-layers 35 --mlock --flash-attn
23
+ ```
24
+
25
+ ## Configuration Files
26
+
27
+ | File | Purpose |
28
+ | ------------------------------------------- | ------------------------------------------------------------------- |
29
+ | `chat_template.jinja` | Official Qwen3 chat template with native tool descriptions |
30
+ | `tools/agents/config/tool-call.gbnf` | GBNF grammar for per-request use (do NOT use with `--grammar-file`) |
31
+ | `tools/agents/config/tool-call-schema.json` | JSON Schema for the tool call payload |
32
+ | `config/qwen35-settings.json` | Full model settings, optimization config |
33
+ | `config/lora-finetune.yaml` | LoRA training configuration (axolotl/unsloth compatible) |
34
+
35
+ ## Important: Do NOT Use `--grammar-file`
36
+
37
+ The `--grammar-file` flag applies a GBNF grammar **globally to every completion**. This breaks normal chat because the grammar forces `<tool_call>` output even when no tools are provided.
38
+
39
+ llama.cpp's **differential autoparser** handles tool calls automatically:
40
+
41
+ 1. It analyzes the Jinja template to discover `<tool_call>`/`</tool_call>` markers
42
+ 2. It generates PEG grammar rules with **lazy activation** (`grammar_lazy = true`)
43
+ 3. When `tool_choice == "auto"`, the model generates freely until it emits `<tool_call>`, at which point the grammar activates to constrain the JSON payload
44
+ 4. After `</tool_call>`, the grammar allows another `<tool_call>` for parallel calls
45
+ 5. Plain chat (no tools) is unconstrained
46
+
47
+ The GBNF file is kept in the repo for per-request use via the `grammar` field in API payloads, but should never be a server startup flag.
48
+
49
+ ## Server Configurations
50
+
51
+ ### Basic (no LoRA, no speculative decoding)
52
+
53
+ ```bash
54
+ llama-server \
55
+ --model /path/to/qwen3.5-a3b-iq4xs.gguf \
56
+ --chat-template-file chat_template.jinja \
57
+ --n-predict 4096 \
58
+ --temp 0.6 --top-p 0.9 --top-k 20 --min-p 0.05 \
59
+ --repeat-penalty 1.05 \
60
+ --threads 8 --ctx-size 131072 --batch-size 8 \
61
+ --gpu-layers 35 --mlock --flash-attn
62
+ ```
63
+
64
+ ### With LoRA Adapter
65
+
66
+ ```bash
67
+ llama-server \
68
+ --model /path/to/qwen3.5-a3b-iq4xs.gguf \
69
+ --lora /path/to/qwen35-tool-call-lora/adapter.gguf \
70
+ --lora-scale 1.0 \
71
+ --chat-template-file chat_template.jinja \
72
+ --n-predict 4096 \
73
+ --temp 0.6 --top-p 0.9 --top-k 20 --min-p 0.05 \
74
+ --repeat-penalty 1.05 \
75
+ --threads 8 --ctx-size 131072 --batch-size 8 \
76
+ --gpu-layers 35 --mlock --flash-attn
77
+ ```
78
+
79
+ ### Full Setup (LoRA + Speculative Decoding)
80
+
81
+ ```bash
82
+ llama-server \
83
+ --model /path/to/qwen3.5-a3b-iq4xs.gguf \
84
+ --lora /path/to/qwen35-tool-call-lora/adapter.gguf \
85
+ --lora-scale 1.0 \
86
+ --chat-template-file chat_template.jinja \
87
+ --draft-model /path/to/Qwen3.5-0.8B-Q8_0.gguf \
88
+ --draft-max 16 --draft-p-min 0.75 \
89
+ --n-predict 4096 \
90
+ --temp 0.6 --top-p 0.9 --top-k 20 --min-p 0.05 \
91
+ --repeat-penalty 1.05 \
92
+ --threads 8 --ctx-size 131072 --batch-size 8 \
93
+ --gpu-layers 35 --mlock --flash-attn
94
+ ```
95
+
96
+ ## Key Parameters
97
+
98
+ ### Chat Template & Tool Calls
99
+
100
+ | Flag | Value | Purpose |
101
+ | ---------------------- | --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
102
+ | `--chat-template-file` | `chat_template.jinja` | Official Qwen3 template with native `tools` block. llama.cpp's autoparser discovers `<tool_call>` markers and generates lazy grammar + triggers automatically. |
103
+
104
+ ### LoRA
105
+
106
+ | Flag | Value | Purpose |
107
+ | -------------- | ---------------------- | ------------------------------------------------------------------------------------------------------ |
108
+ | `--lora` | Path to `adapter.gguf` | Loads LoRA adapter at runtime (no model merge needed). Improves tool call format adherence by ~15-20%. |
109
+ | `--lora-scale` | `0.0` - `1.0` | Adapter strength. Use `1.0` for full effect, `0.5`-`0.8` to blend with base model behavior. |
110
+
111
+ ### Speculative Decoding
112
+
113
+ | Flag | Value | Purpose |
114
+ | --------------- | -------------------------------- | ----------------------------------------------------------------------- |
115
+ | `--draft-model` | Path to `Qwen3.5-0.8B-Q8_0.gguf` | Small draft model proposes tokens verified by the main model. |
116
+ | `--draft-max` | `16` | Max tokens to draft per iteration. Higher = more throughput, more VRAM. |
117
+ | `--draft-p-min` | `0.75` | Minimum acceptance probability. Lower = more aggressive drafting. |
118
+
119
+ ### Sampling
120
+
121
+ | Flag | Value | Purpose |
122
+ | ------------------ | ------ | ------------------------------------------------- |
123
+ | `--temp` | `0.6` | Low temperature for deterministic tool calls. |
124
+ | `--top-p` | `0.9` | Nucleus sampling threshold. |
125
+ | `--top-k` | `20` | Limits token candidates per step. |
126
+ | `--min-p` | `0.05` | Filters tokens below 5% of top token probability. |
127
+ | `--repeat-penalty` | `1.05` | Mild repetition penalty. |
128
+
129
+ ### Performance
130
+
131
+ | Flag | Value | Purpose |
132
+ | -------------- | -------- | ------------------------------------------------- |
133
+ | `--flash-attn` | (flag) | 1.5-2x speed on long context. |
134
+ | `--gpu-layers` | `35` | Layers offloaded to GPU. Increase if VRAM allows. |
135
+ | `--ctx-size` | `131072` | Full 128K context window. |
136
+ | `--mlock` | (flag) | Prevents OS from swapping model to disk. |
137
+
138
+ ## VRAM Estimates
139
+
140
+ | Component | VRAM |
141
+ | ------------------- | ---------- |
142
+ | Main model (IQ4_XS) | ~17 GB |
143
+ | Draft model (Q8_0) | ~0.8 GB |
144
+ | KV cache (128K ctx) | ~2-3 GB |
145
+ | LoRA adapter | ~50 MB |
146
+ | **Total** | **~20 GB** |
147
+
148
+ ## Tool Call Format
149
+
150
+ The model emits tool calls in the official Qwen3 format:
151
+
152
+ ```
153
+ <tool_call>
154
+ {"name": "read_file", "arguments": {"path": "/etc/hosts"}}
155
+ </tool_call>
156
+ ```
157
+
158
+ Multiple tool calls in a single turn:
159
+
160
+ ```
161
+ <tool_call>
162
+ {"name": "read_file", "arguments": {"path": "/etc/hosts"}}
163
+ </tool_call>
164
+ <tool_call>
165
+ {"name": "list_dir", "arguments": {"path": "/tmp"}}
166
+ </tool_call>
167
+ ```
168
+
169
+ llama.cpp's autoparser handles stop behavior structurally via PEG grammar rules, not stop sequences. No explicit `</tool_call>` stop sequence is needed at the server level.
170
+
171
+ ## LoRA Training Pipeline
172
+
173
+ ### 1. Generate Training Data
174
+
175
+ ```bash
176
+ python3 tools/agents/scripts/generate_lora_training_data.py -n 500
177
+ ```
178
+
179
+ Produces `tool_call_training_data.jsonl` with ChatML-formatted examples using the official `<tool_call>` format.
180
+
181
+ ### 2. Fine-Tune
182
+
183
+ Using axolotl:
184
+
185
+ ```bash
186
+ accelerate launch -m axolotl.cli.train config/lora-finetune.yaml
187
+ ```
188
+
189
+ Using unsloth (faster, less VRAM):
190
+
191
+ ```bash
192
+ unsloth train --config config/lora-finetune.yaml
193
+ ```
194
+
195
+ Training config highlights (`config/lora-finetune.yaml`):
196
+
197
+ - LoRA rank 16, alpha 32
198
+ - Targets all linear layers (q/k/v/o/gate/up/down projections)
199
+ - 3 epochs, cosine LR schedule, 2e-4 learning rate
200
+ - BF16 + gradient checkpointing + flash attention
201
+
202
+ ### 3. Convert to GGUF
203
+
204
+ ```bash
205
+ python3 convert_lora_to_gguf.py \
206
+ --base Qwen/Qwen3.5-35B-A3B \
207
+ --lora output/qwen35-tool-call-lora \
208
+ --output adapter.gguf
209
+ ```
210
+
211
+ ### 4. Load at Runtime
212
+
213
+ ```bash
214
+ llama-server --model base.gguf --lora adapter.gguf --lora-scale 1.0
215
+ ```
216
+
217
+ ## Quantization Options
218
+
219
+ | Quant | VRAM | Accuracy | Tool Call Reliability |
220
+ | ------ | ----- | -------- | --------------------- |
221
+ | IQ4_XS | 17 GB | 96% | 94% |
222
+ | Q4_K_M | 20 GB | 95% | 95% |
223
+ | Q5_K_M | 24 GB | 97% | 97% |
224
+ | Q6_K | 28 GB | 98% | 98% |
225
+
226
+ ## Troubleshooting
227
+
228
+ ### "Template supports tool calls but does not natively describe tools"
229
+
230
+ This warning means llama.cpp detected `tool_calls` handling but no `tools` variable access in the template. The `chat_template.jinja` in this repo resolves this by including a `{%- if tools %}` block that renders tool descriptions in `<tools></tools>` XML tags.
231
+
232
+ Verify the template is loaded:
233
+
234
+ ```bash
235
+ llama-server --chat-template-file chat_template.jinja --verbose
236
+ ```
237
+
238
+ ### LoRA not taking effect
239
+
240
+ - Ensure the adapter was converted to GGUF format (not safetensors/PyTorch)
241
+ - Check `--lora-scale` is not `0.0`
242
+ - Verify the adapter was trained against the same base model architecture
243
+
244
+ ### Grammar rejecting valid output
245
+
246
+ If using the GBNF grammar via per-request `grammar` field and it's too restrictive, the model may produce truncated output. Check `tools/agents/config/tool-call.gbnf` allows the argument types your tools use (strings, numbers, objects, arrays, booleans, null are all supported).
247
+
248
+ ### Model only outputs tool calls, never plain text
249
+
250
+ You are likely using `--grammar-file` on the server command line. This forces ALL output into `<tool_call>` format. Remove `--grammar-file` from the startup command and let the autoparser handle tool call detection lazily.
251
+
252
+ ### Multi-tool calls truncated to single call
253
+
254
+ Two possible causes:
255
+
256
+ 1. `--grammar-file` is set globally and the stop sequence `</tool_call>` terminates after the first call. Remove `--grammar-file`.
257
+ 2. The client is not passing `parallel_tool_calls: true` in the request. Add it to enable multiple tool calls per turn.
258
+
259
+ ## Related Files
260
+
261
+ - `tools/agents/scripts/qwen_tool_call_wrapper.py` - Python wrapper with retry logic and format validation
262
+ - `tools/agents/scripts/fix_qwen_chat_template.py` - Template verifier/fixer (detects format, validates Jinja2)
263
+ - `tools/agents/scripts/qwen_tool_call_test.py` - Test suite using OpenAI-compatible API
264
+ - `src/cli/tool-calls.ts` - CLI command for template management
265
+ - `src/bin/llama-server-optimize.ts` - llama-server startup optimizer
@@ -0,0 +1,449 @@
1
+ # UAP Integration Guide
2
+
3
+ **Version:** 1.0.0
4
+ **Last Updated:** 2026-03-13
5
+ **Status:** ✅ Production Ready
6
+
7
+ ---
8
+
9
+ ## Executive Summary
10
+
11
+ This guide provides integration instructions for all supported platforms, including opencode, ForgeCode, Claude Code, and VSCode.
12
+
13
+ ---
14
+
15
+ ## 1. opencode Integration
16
+
17
+ ### 1.1 Overview
18
+
19
+ **opencode** is the recommended platform for UAP, providing:
20
+
21
+ - Persistent sessions across restarts
22
+ - Plugin architecture for Pattern RAG
23
+ - Local LLM support (llama.cpp)
24
+ - Built-in tooling (file operations, bash, search)
25
+
26
+ ### 1.2 Setup
27
+
28
+ ```bash
29
+ # Install opencode
30
+ npm install -g opencode
31
+
32
+ # Configure local LLM (optional)
33
+ cat > ~/.opencode/config.json << 'EOF'
34
+ {
35
+ "provider": {
36
+ "llama.cpp": {
37
+ "name": "llama-server (local)",
38
+ "options": {
39
+ "baseURL": "http://localhost:8080/v1",
40
+ "apiKey": "sk-qwen35b"
41
+ },
42
+ "models": {
43
+ "qwen35-a3b-iq4xs": {
44
+ "name": "Qwen3.5 35B A3B (IQ4_XS)",
45
+ "limit": {
46
+ "context": 262144,
47
+ "output": 16384
48
+ }
49
+ }
50
+ }
51
+ }
52
+ },
53
+ "model": "llama.cpp/qwen35-a3b-iq4xs"
54
+ }
55
+ EOF
56
+
57
+ # Initialize UAP in your project
58
+ cd your-project
59
+ uap init
60
+ ```
61
+
62
+ ### 1.3 Plugin Configuration
63
+
64
+ UAP plugins automatically load in opencode for:
65
+
66
+ - **Pattern RAG** - Context-aware pattern injection (~12K tokens saved)
67
+ - **Session hooks** - Pre-execution setup, memory preservation
68
+ - **Agent coordination** - Multi-agent workflows without conflicts
69
+
70
+ ### 1.4 Usage
71
+
72
+ ```bash
73
+ # Start opencode with UAP
74
+ opencode
75
+
76
+ # UAP features available:
77
+ # - Pattern RAG auto-injection
78
+ # - Memory persistence
79
+ # - Worktree isolation
80
+ # - Compliance enforcement
81
+ ```
82
+
83
+ ---
84
+
85
+ ## 2. ForgeCode Integration
86
+
87
+ ### 2.1 Overview
88
+
89
+ **ForgeCode** is the world's #1 coding agent (TermBench 2.0, 78.4% accuracy), providing:
90
+
91
+ - ZSH-native invocation (type `:` to invoke)
92
+ - Multi-agent modes (FORGE, MUSE, SAGE)
93
+ - Model flexibility (mix models mid-session)
94
+ - Context engine with RAG-powered memory
95
+
96
+ ### 2.2 Setup
97
+
98
+ ```bash
99
+ # Install UAP in your project
100
+ cd your-project
101
+ uap init
102
+
103
+ # Install hooks for ForgeCode integration
104
+ uap hooks install forgecode
105
+ ```
106
+
107
+ This creates:
108
+
109
+ - `.forge/hooks/session-start.sh` - Injects recent memory before `:` command
110
+ - `.forge/forgecode.plugin.sh` - ZSH plugin with environment injection
111
+ - `.forge/settings.local.json` - UAP integration configuration
112
+ - Updates `~/.zshrc` to source the plugin automatically
113
+
114
+ ### 2.3 Usage
115
+
116
+ ```bash
117
+ # In your ZSH session, type : to invoke ForgeCode
118
+ cd ~/projects/my-app && :
119
+ : fix login bug in auth middleware
120
+ ```
121
+
122
+ UAP will:
123
+
124
+ 1. Load recent memory context from `agents/data/memory/short_term.db`
125
+ 2. Check for stale worktrees and open loops
126
+ 3. Inject as environment variables (`UAP_CONTEXT`, `UAP_OPEN_LOOPS`)
127
+ 4. ForgeCode reads these for enhanced context-aware responses
128
+ 5. On completion, saves lessons back to UAP memory
129
+
130
+ ### 2.4 Verification
131
+
132
+ ```bash
133
+ # Check hook status for all platforms including forgecode
134
+ uap hooks status -t forgecode
135
+ ```
136
+
137
+ ---
138
+
139
+ ## 3. Claude Code Integration
140
+
141
+ ### 3.1 Overview
142
+
143
+ **Claude Code** is Anthropic's desktop app with full UAP support:
144
+
145
+ - Full UAP integration
146
+ - CLAUDE.md for context
147
+ - Persistent memory across sessions
148
+ - Built-in tooling
149
+
150
+ ### 3.2 Setup
151
+
152
+ ```bash
153
+ # Install UAP in your project
154
+ cd your-project
155
+ uap init
156
+
157
+ # CLAUDE.md automatically generated with:
158
+ # - Project structure
159
+ # - UAP commands
160
+ # - Pattern references
161
+ # - Memory system docs
162
+ ```
163
+
164
+ ### 3.3 Usage
165
+
166
+ ```bash
167
+ # Open project in Claude Code
168
+ claude-code
169
+
170
+ # UAP features available:
171
+ # - CLAUDE.md context injection
172
+ # - Pattern Router auto-selection
173
+ # - Memory persistence
174
+ # - Worktree isolation
175
+ ```
176
+
177
+ ---
178
+
179
+ ## 4. VSCode Integration
180
+
181
+ ### 4.1 Overview
182
+
183
+ **VSCode** with Claude Code extension provides:
184
+
185
+ - IDE integration
186
+ - Full UAP support
187
+ - File system access
188
+ - Terminal integration
189
+
190
+ ### 4.2 Setup
191
+
192
+ ```bash
193
+ # Install UAP in your project
194
+ cd your-project
195
+ uap init
196
+
197
+ # Install VSCode extensions:
198
+ # - Claude Code extension
199
+ # - UAP syntax highlighting (optional)
200
+ ```
201
+
202
+ ### 4.3 Usage
203
+
204
+ ```bash
205
+ # Open project in VSCode
206
+ code your-project
207
+
208
+ # Use Claude Code extension:
209
+ # - UAP features available
210
+ # - File operations
211
+ # - Terminal commands
212
+ # - Memory queries
213
+ ```
214
+
215
+ ---
216
+
217
+ ## 5. claude.ai Integration
218
+
219
+ ### 5.1 Overview
220
+
221
+ **claude.ai** is Anthropic's web version with limited UAP support:
222
+
223
+ - Web-based interface
224
+ - Limited tooling
225
+ - No persistent memory
226
+ - Reduced functionality
227
+
228
+ ### 5.2 Setup
229
+
230
+ ```bash
231
+ # Initialize UAP (for reference)
232
+ cd your-project
233
+ uap init
234
+
235
+ # Note: Web version has limited UAP support
236
+ # Consider using Claude Code or opencode for full features
237
+ ```
238
+
239
+ ### 5.3 Limitations
240
+
241
+ - ❌ No persistent memory
242
+ - ❌ No worktree isolation
243
+ - ❌ No hook enforcement
244
+ - ⚠️ Limited tooling
245
+ - ⚠️ No Pattern RAG
246
+
247
+ ---
248
+
249
+ ## 6. Integration Comparison
250
+
251
+ Every platform listed above ships as a stateless code editor. UAP closes the gap. Here is what it adds and why:
252
+
253
+ - **4-layer persistent memory** -- agents retain lessons across sessions instead of starting from zero
254
+ - **Write gate** -- 5-criteria quality filter prevents memory pollution
255
+ - **22 battle-tested patterns** -- Terminal-Bench 2.0 workflows eliminate 37% of common agent failures
256
+ - **Pattern RAG** -- on-demand retrieval saves ~12K tokens per session
257
+ - **Worktree isolation** -- parallel agents never corrupt each other's git state
258
+ - **Multi-agent coordination** -- heartbeats, overlap detection, and conflict risk let multiple agents share a repo safely
259
+ - **Deploy batching** -- squashed commits and serialized pushes prevent deploy storms
260
+ - **Policy enforcement** -- audit-trailed rules ensure agents follow project standards
261
+ - **Task DAG** -- dependency-aware tracking with cycle detection and JSONL sync
262
+ - **MCP Router** -- 98% system prompt token reduction (from ~12K to ~200)
263
+ - **RTK** -- 60-90% output token savings via Rust-based compression
264
+ - **12-gate compliance** -- automated protocol verification catches drift before it ships
265
+
266
+ > Full 15-harness matrix with per-harness integration details: **[HARNESS-MATRIX.md](../reference/HARNESS-MATRIX.md)**
267
+
268
+ ### Baseline: What Platforms Provide Natively
269
+
270
+ | Feature | opencode | ForgeCode | Claude Code | VSCode | Cursor | claude.ai |
271
+ | ---------------------------- | :--------: | :-------: | :---------: | :-----: | :----------: | :-------: |
272
+ | File system + terminal | Yes | Yes | Yes | Yes | Yes | -- |
273
+ | Context file | -- | -- | CLAUDE.md | -- | .cursorrules | -- |
274
+ | Native hooks | Plugin API | ZSH hooks | Yes | -- | hooks.json | -- |
275
+ | MCP support | Config | -- | Native | Via ext | Native | -- |
276
+ | Persistent sessions | Yes | ZSH env | Yes | Limited | Limited | -- |
277
+ | Local LLM support | Native | Yes | -- | Via ext | Yes | -- |
278
+ | **Persistent memory** | -- | -- | -- | -- | -- | -- |
279
+ | **Pattern library** | -- | -- | -- | -- | -- | -- |
280
+ | **Multi-agent coordination** | -- | -- | -- | -- | -- | -- |
281
+ | **Policy enforcement** | -- | -- | -- | -- | -- | -- |
282
+
283
+ The bottom four rows are empty across every column. No platform provides them. This is the gap UAP fills.
284
+
285
+ ### With UAP: What Every Platform Gains
286
+
287
+ | Capability | Why It Matters | opencode | ForgeCode | Claude Code | VSCode | Cursor | claude.ai |
288
+ | ------------------------ | ------------------------------------- | :------: | :-------: | :---------: | :-----: | :-----: | :-------: |
289
+ | 4-layer memory (L1-L4) | Agents remember across sessions | Yes | Yes | Yes | Yes | Yes | -- |
290
+ | Write gate + tiering | Only high-value knowledge stored | Yes | Yes | Yes | Yes | Yes | -- |
291
+ | 22 patterns + RAG | Proven workflows, ~12K token savings | Yes | Yes | Yes | Yes | Yes | -- |
292
+ | Worktree isolation | Parallel agents, zero conflicts | Yes | Yes | Yes | Yes | Yes | -- |
293
+ | Multi-agent coordination | Heartbeats, overlap detection, claims | Yes | Yes | Yes | Yes | Yes | -- |
294
+ | Deploy batching | No push races, squashed commits | Yes | Yes | Yes | Yes | Yes | -- |
295
+ | Policy engine | Audit-trailed rule enforcement | Yes | Yes | Yes | Yes | Yes | -- |
296
+ | Task DAG | Dependency-aware work tracking | Yes | Yes | Yes | Yes | Yes | -- |
297
+ | MCP Router | 98% system prompt token reduction | Yes | Yes | Yes | Yes | Yes | -- |
298
+ | RTK compression | 60-90% output token savings | Yes | Yes | Yes | Yes | Yes | -- |
299
+ | 12-gate compliance | Automated protocol verification | Yes | Yes | Yes | Yes | Yes | -- |
300
+ | 20+ CLI commands | Full management + dashboard | Yes | Yes | Yes | Yes | Yes | -- |
301
+ | **Recommended** | | Yes | Yes | Yes | Partial | Partial | -- |
302
+
303
+ ### Integration Tiers
304
+
305
+ | Tier | Harnesses | What You Get |
306
+ | ---------------------- | -------------------------------------------- | ----------------------------------------------------------------------- |
307
+ | **T1 -- First-Class** | Claude Code, Factory.AI, OpenCode, ForgeCode | Native hooks, dedicated config dir, `uap sync`, context file generation |
308
+ | **T2 -- IDE-Based** | Cursor, VSCode, Cline | Platform-specific hooks, MCP config paths |
309
+ | **T3 -- CLI/Terminal** | Windsurf, Codex CLI, Aider, Zed AI, Continue | Mapped to T1/T2 via CLAUDE.md or .cursorrules |
310
+ | **T4 -- Additional** | GitHub Copilot, JetBrains AI, SWE-agent | Piggybacks on T2 infrastructure |
311
+
312
+ All tiers receive identical UAP features. The difference is integration depth, not capability.
313
+
314
+ ---
315
+
316
+ ## 7. Platform-Specific Features
317
+
318
+ ### 7.1 opencode
319
+
320
+ **Unique Features:**
321
+
322
+ - Plugin architecture
323
+ - Persistent sessions
324
+ - Local LLM optimization
325
+ - Built-in tooling
326
+
327
+ **Configuration:**
328
+
329
+ ```json
330
+ {
331
+ "provider": {
332
+ "llama.cpp": {
333
+ "name": "llama-server (local)",
334
+ "options": {
335
+ "baseURL": "http://localhost:8080/v1"
336
+ }
337
+ }
338
+ }
339
+ }
340
+ ```
341
+
342
+ ### 7.2 ForgeCode
343
+
344
+ **Unique Features:**
345
+
346
+ - ZSH-native (`:` command)
347
+ - Multi-agent modes
348
+ - Environment variable injection
349
+ - Oh My Zsh integration
350
+
351
+ **Configuration:**
352
+
353
+ ```json
354
+ {
355
+ "forge": {
356
+ "enabled": true,
357
+ "uamIntegration": true,
358
+ "memoryInjection": true
359
+ }
360
+ }
361
+ ```
362
+
363
+ ### 7.3 Claude Code
364
+
365
+ **Unique Features:**
366
+
367
+ - Desktop app
368
+ - CLAUDE.md context
369
+ - Full tooling
370
+ - Persistent sessions
371
+
372
+ **Configuration:**
373
+
374
+ ```json
375
+ {
376
+ "claudeCode": {
377
+ "enabled": true,
378
+ "claudeMd": true,
379
+ "fullUAP": true
380
+ }
381
+ }
382
+ ```
383
+
384
+ ---
385
+
386
+ ## 8. Quick Start Examples
387
+
388
+ ### 8.1 opencode (Recommended)
389
+
390
+ ```bash
391
+ # Install and configure
392
+ npm install -g opencode
393
+ uap init
394
+ opencode
395
+
396
+ # UAP features available immediately
397
+ ```
398
+
399
+ ### 8.2 ForgeCode
400
+
401
+ ```bash
402
+ # Install and configure
403
+ uap init
404
+ uap hooks install forgecode
405
+
406
+ # Use in ZSH
407
+ cd project && :
408
+ : fix bug
409
+ ```
410
+
411
+ ### 8.3 Claude Code
412
+
413
+ ```bash
414
+ # Install and configure
415
+ uap init
416
+
417
+ # Open in Claude Code
418
+ claude-code
419
+ ```
420
+
421
+ ---
422
+
423
+ ## 9. Troubleshooting
424
+
425
+ ### 9.1 Common Issues
426
+
427
+ **Issue:** "Memory not persisting"
428
+ **Solution:** Check `agents/data/memory/short_term.db` exists
429
+
430
+ **Issue:** "Pattern RAG not working"
431
+ **Solution:** Run `python agents/scripts/index_patterns_to_qdrant.py`
432
+
433
+ **Issue:** "ForgeCode : command not found"
434
+ **Solution:** Restart ZSH or source `~/.zshrc`
435
+
436
+ **Issue:** "opencode plugin not loading"
437
+ **Solution:** Check `opencode.json` configuration
438
+
439
+ ### 9.2 Getting Help
440
+
441
+ - Documentation: `docs/` directory
442
+ - Issues: GitHub repository issues
443
+ - Community: Join UAP Discord
444
+
445
+ ---
446
+
447
+ **Last Updated:** 2026-03-13
448
+ **Version:** 1.0.0
449
+ **Status:** ✅ Production Ready