@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,401 @@
1
+ /**
2
+ * Ambiguity Detection & Resolution System for UAP
3
+ *
4
+ * Implements P37: Ambiguity Detection pattern.
5
+ * Scores task instructions for ambiguity and generates clarifying questions
6
+ * when the score exceeds configurable thresholds.
7
+ *
8
+ * Ambiguity Levels:
9
+ * - score >= 0.6: MUST ask clarifying questions before execution
10
+ * - score 0.3-0.6: State assumptions explicitly, proceed with caution
11
+ * - score < 0.3: Execute directly (task is clear)
12
+ */
13
+ // High ambiguity signals (weight: 0.3)
14
+ const HIGH_AMBIGUITY_PATTERNS = [
15
+ {
16
+ pattern: /\b(it|that|this|the thing|the module|the component|the service)\b(?!\s+(is|was|has|should|will|can|must)\s+(a|an|the)\s+\w+)/i,
17
+ type: 'pronoun',
18
+ questionTemplate: 'You mentioned "{match}" — which specific {entity} are you referring to?',
19
+ defaultTemplate: "I'll target the most recently modified {entity}",
20
+ },
21
+ {
22
+ pattern: /\b(similar to|like before|the usual way|as we did|same as|like last time)\b/i,
23
+ type: 'relative_ref',
24
+ questionTemplate: 'You said "{match}" — can you specify which prior implementation or approach?',
25
+ defaultTemplate: "I'll follow the most common pattern in the codebase",
26
+ },
27
+ {
28
+ pattern: /\b(optimize|improve|fix|update|change|refactor|clean up|enhance)\b(?!\s+(the|this|that|my|our|a|an)\s+\w+\s+(in|at|of|from)\s)/i,
29
+ type: 'unspecified_target',
30
+ questionTemplate: 'You want to {match} — which specific file, module, or component should I target?',
31
+ defaultTemplate: "I'll analyze the codebase to identify the highest-impact target",
32
+ },
33
+ {
34
+ pattern: /\b(update the code|change the config|modify the settings|fix the tests|update the docs)\b/i,
35
+ type: 'missing_scope',
36
+ questionTemplate: 'Should "{match}" apply to all instances or a specific subset?',
37
+ defaultTemplate: "I'll apply changes to the most relevant files based on context",
38
+ },
39
+ {
40
+ pattern: /\b(fast\s+and\s+thorough|simple\s+and\s+comprehensive|quick\s+but\s+complete|minimal\s+but\s+full)\b/i,
41
+ type: 'contradiction',
42
+ questionTemplate: '"{match}" may involve trade-offs. Which aspect takes priority?',
43
+ defaultTemplate: "I'll prioritize correctness over speed",
44
+ },
45
+ ];
46
+ // Medium ambiguity signals (weight: 0.2)
47
+ const MEDIUM_AMBIGUITY_PATTERNS = [
48
+ {
49
+ pattern: /\b(obviously|of course|naturally|clearly|surely|everyone knows)\b/i,
50
+ type: 'implicit_assumption',
51
+ questionTemplate: 'You said "{match}" — can you confirm the specific assumption being made?',
52
+ defaultTemplate: "I'll verify the assumption against the codebase before proceeding",
53
+ },
54
+ {
55
+ pattern: /\b(some|a few|several|many|a couple|a bunch|various|multiple)\b\s+\w+/i,
56
+ type: 'vague_quantifier',
57
+ questionTemplate: 'How many specifically? You mentioned "{match}"',
58
+ defaultTemplate: "I'll handle a reasonable number based on context",
59
+ },
60
+ {
61
+ pattern: /\b(output|return|produce|generate|create)\s+(the\s+)?(results?|data|output|response)\b(?!\s+(to|in|as|into)\s)/i,
62
+ type: 'underspecified_format',
63
+ questionTemplate: 'What format should the output be in? (JSON, text, file, stdout, etc.)',
64
+ defaultTemplate: "I'll output in the format most consistent with existing code",
65
+ },
66
+ {
67
+ pattern: /\b(make it work|get it working|make sure it runs|should be good)\b/i,
68
+ type: 'missing_criteria',
69
+ questionTemplate: 'What specific success criteria should I verify? How do I know it\'s "working"?',
70
+ defaultTemplate: "I'll verify by running existing tests and checking for errors",
71
+ },
72
+ ];
73
+ // Low ambiguity signals (weight: 0.1)
74
+ const LOW_AMBIGUITY_PATTERNS = [
75
+ {
76
+ pattern: /\b(handle|deal with)\s+(errors?|exceptions?|failures?|edge cases?)\b/i,
77
+ type: 'error_handling',
78
+ },
79
+ {
80
+ pattern: /\b(style|format|convention|naming)\b/i,
81
+ type: 'style_unspecified',
82
+ },
83
+ {
84
+ pattern: /\b(edge case|corner case|boundary|limit|overflow|underflow)\b/i,
85
+ type: 'edge_case',
86
+ },
87
+ ];
88
+ /**
89
+ * Detect ambiguity in a task instruction and generate clarifying questions.
90
+ *
91
+ * @param instruction - The task instruction to analyze
92
+ * @param projectContext - Optional project context for resolving domain terms
93
+ * @returns AmbiguityResult with score, signals, questions, and assumptions
94
+ */
95
+ export function detectAmbiguity(instruction, projectContext) {
96
+ const signals = [];
97
+ let score = 0;
98
+ // Check high ambiguity patterns (0.3 each)
99
+ for (const { pattern, type, questionTemplate: _qt, defaultTemplate: _dt, } of HIGH_AMBIGUITY_PATTERNS) {
100
+ const match = instruction.match(pattern);
101
+ if (match) {
102
+ const weight = 0.3;
103
+ signals.push({
104
+ type,
105
+ weight,
106
+ match: match[0],
107
+ context: getMatchContext(instruction, match.index || 0),
108
+ });
109
+ score += weight;
110
+ }
111
+ }
112
+ // Check medium ambiguity patterns (0.2 each)
113
+ for (const { pattern, type } of MEDIUM_AMBIGUITY_PATTERNS) {
114
+ const match = instruction.match(pattern);
115
+ if (match) {
116
+ const weight = 0.2;
117
+ signals.push({
118
+ type,
119
+ weight,
120
+ match: match[0],
121
+ context: getMatchContext(instruction, match.index || 0),
122
+ });
123
+ score += weight;
124
+ }
125
+ }
126
+ // Check low ambiguity patterns (0.1 each)
127
+ for (const { pattern, type } of LOW_AMBIGUITY_PATTERNS) {
128
+ const match = instruction.match(pattern);
129
+ if (match) {
130
+ const weight = 0.1;
131
+ signals.push({
132
+ type,
133
+ weight,
134
+ match: match[0],
135
+ context: getMatchContext(instruction, match.index || 0),
136
+ });
137
+ score += weight;
138
+ }
139
+ }
140
+ // Structural ambiguity checks
141
+ score += checkStructuralAmbiguity(instruction, signals);
142
+ // Reduce ambiguity if project context resolves references
143
+ if (projectContext?.knownEntities) {
144
+ score = reduceWithContext(score, signals, projectContext.knownEntities);
145
+ }
146
+ // Cap score at 1.0
147
+ score = Math.min(1.0, score);
148
+ // Determine level
149
+ const level = score >= 0.6 ? 'high' : score >= 0.3 ? 'moderate' : 'clear';
150
+ // Generate questions for high/moderate ambiguity
151
+ const questions = generateQuestions(signals, instruction);
152
+ // Generate assumptions for moderate ambiguity
153
+ const assumptions = generateAssumptions(signals, instruction);
154
+ return {
155
+ score,
156
+ level,
157
+ signals,
158
+ questions: questions.slice(0, 5), // Max 5 questions per P37
159
+ assumptions,
160
+ shouldAsk: level === 'high',
161
+ };
162
+ }
163
+ /**
164
+ * Check structural ambiguity (instruction-level patterns)
165
+ */
166
+ function checkStructuralAmbiguity(instruction, signals) {
167
+ let additionalScore = 0;
168
+ // Very short instructions are often ambiguous
169
+ const wordCount = instruction.split(/\s+/).length;
170
+ if (wordCount <= 3) {
171
+ signals.push({
172
+ type: 'missing_scope',
173
+ weight: 0.3,
174
+ match: instruction,
175
+ context: 'Very short instruction — likely missing details',
176
+ });
177
+ additionalScore += 0.3;
178
+ }
179
+ // No file paths or specific identifiers
180
+ const hasSpecificTarget = /[\w./\\-]+\.(ts|js|py|json|yaml|sh|sql|md|css|html)/i.test(instruction) ||
181
+ /\b(src|lib|test|config|scripts?)\//i.test(instruction);
182
+ if (!hasSpecificTarget && wordCount > 5) {
183
+ // Only flag if instruction is long enough to potentially need a target
184
+ const hasAction = /\b(fix|add|update|create|implement|refactor|optimize|remove|delete|change)\b/i.test(instruction);
185
+ if (hasAction) {
186
+ signals.push({
187
+ type: 'unspecified_target',
188
+ weight: 0.15,
189
+ match: 'no specific file/path mentioned',
190
+ context: 'Action verb present but no target file or path specified',
191
+ });
192
+ additionalScore += 0.15;
193
+ }
194
+ }
195
+ // Multiple action verbs suggest compound task
196
+ const actionVerbs = instruction.match(/\b(fix|add|update|create|implement|refactor|optimize|remove|delete|change|configure|setup|install|deploy|test|verify)\b/gi);
197
+ if (actionVerbs && actionVerbs.length >= 3) {
198
+ signals.push({
199
+ type: 'missing_scope',
200
+ weight: 0.15,
201
+ match: `${actionVerbs.length} action verbs: ${actionVerbs.slice(0, 3).join(', ')}...`,
202
+ context: 'Multiple actions requested — may need prioritization',
203
+ });
204
+ additionalScore += 0.15;
205
+ }
206
+ return additionalScore;
207
+ }
208
+ /**
209
+ * Reduce ambiguity score when project context resolves references
210
+ */
211
+ function reduceWithContext(score, signals, knownEntities) {
212
+ let reduction = 0;
213
+ for (const signal of signals) {
214
+ // If a pronoun/reference matches a known entity, reduce its weight
215
+ if (signal.type === 'pronoun' || signal.type === 'relative_ref') {
216
+ const matchesEntity = knownEntities.some((entity) => signal.context.toLowerCase().includes(entity.toLowerCase()));
217
+ if (matchesEntity) {
218
+ reduction += signal.weight * 0.5; // Reduce by half
219
+ }
220
+ }
221
+ }
222
+ return Math.max(0, score - reduction);
223
+ }
224
+ /**
225
+ * Generate clarifying questions from ambiguity signals
226
+ */
227
+ function generateQuestions(signals, instruction) {
228
+ const questions = [];
229
+ // Sort signals by weight (highest first = most important questions)
230
+ const sortedSignals = [...signals].sort((a, b) => b.weight - a.weight);
231
+ for (const signal of sortedSignals) {
232
+ const question = generateQuestionForSignal(signal, instruction);
233
+ if (question) {
234
+ questions.push(question);
235
+ }
236
+ }
237
+ return questions;
238
+ }
239
+ /**
240
+ * Generate a single clarifying question for an ambiguity signal
241
+ */
242
+ function generateQuestionForSignal(signal, _instruction) {
243
+ const templates = {
244
+ pronoun: {
245
+ question: `You mentioned "${signal.match}" — which specific file, module, or component are you referring to?`,
246
+ default: "I'll target the most recently modified relevant file",
247
+ priority: 'blocking',
248
+ },
249
+ relative_ref: {
250
+ question: `You said "${signal.match}" — can you specify which prior implementation or approach you mean?`,
251
+ default: "I'll follow the most common pattern in the codebase",
252
+ priority: 'blocking',
253
+ },
254
+ unspecified_target: {
255
+ question: `You want to "${signal.match}" — which specific file or component should I target?`,
256
+ default: "I'll analyze the codebase to identify the highest-impact target",
257
+ priority: 'blocking',
258
+ },
259
+ missing_scope: {
260
+ question: `For "${signal.match}" — should this apply to all instances or a specific subset?`,
261
+ default: "I'll apply changes to the most relevant files based on context",
262
+ priority: 'important',
263
+ },
264
+ contradiction: {
265
+ question: `"${signal.match}" involves trade-offs. Which aspect takes priority?`,
266
+ default: "I'll prioritize correctness over speed",
267
+ priority: 'blocking',
268
+ },
269
+ implicit_assumption: {
270
+ question: `You said "${signal.match}" — can you confirm the specific assumption?`,
271
+ default: "I'll verify the assumption against the codebase",
272
+ priority: 'important',
273
+ },
274
+ vague_quantifier: {
275
+ question: `How many specifically? You mentioned "${signal.match}"`,
276
+ default: "I'll handle a reasonable number based on context",
277
+ priority: 'nice_to_know',
278
+ },
279
+ undefined_term: {
280
+ question: `Can you define "${signal.match}" in the context of this project?`,
281
+ default: "I'll use the standard industry definition",
282
+ priority: 'important',
283
+ },
284
+ missing_criteria: {
285
+ question: `What specific success criteria should I verify? How do I know "${signal.match}" is achieved?`,
286
+ default: "I'll verify by running existing tests and checking for errors",
287
+ priority: 'important',
288
+ },
289
+ underspecified_format: {
290
+ question: `What format should the output be in? (JSON, text, file, stdout, etc.)`,
291
+ default: "I'll output in the format most consistent with existing code",
292
+ priority: 'nice_to_know',
293
+ },
294
+ optional_unspecified: {
295
+ question: `Should I include optional parameters for "${signal.match}"?`,
296
+ default: "I'll use sensible defaults",
297
+ priority: 'nice_to_know',
298
+ },
299
+ style_unspecified: {
300
+ question: `Any specific style or formatting preferences for "${signal.match}"?`,
301
+ default: "I'll follow the existing project conventions",
302
+ priority: 'nice_to_know',
303
+ },
304
+ error_handling: {
305
+ question: `How should errors be handled for "${signal.match}"? (throw, log, retry, ignore)`,
306
+ default: "I'll throw errors for critical failures and log warnings for recoverable ones",
307
+ priority: 'nice_to_know',
308
+ },
309
+ edge_case: {
310
+ question: `Any specific edge cases to handle for "${signal.match}"?`,
311
+ default: "I'll handle common edge cases (null, empty, boundary values)",
312
+ priority: 'nice_to_know',
313
+ },
314
+ };
315
+ const template = templates[signal.type];
316
+ if (!template)
317
+ return null;
318
+ return {
319
+ question: template.question,
320
+ defaultAnswer: template.default,
321
+ priority: template.priority,
322
+ relatedSignal: signal,
323
+ };
324
+ }
325
+ /**
326
+ * Generate assumptions for moderate ambiguity (stated before proceeding)
327
+ */
328
+ function generateAssumptions(signals, _instruction) {
329
+ const assumptions = [];
330
+ for (const signal of signals) {
331
+ switch (signal.type) {
332
+ case 'unspecified_target':
333
+ assumptions.push(`Assuming the target is the most relevant file based on codebase analysis`);
334
+ break;
335
+ case 'missing_scope':
336
+ assumptions.push(`Assuming changes should apply to the primary implementation, not tests or docs`);
337
+ break;
338
+ case 'error_handling':
339
+ assumptions.push(`Assuming standard error handling: throw on critical, log on recoverable`);
340
+ break;
341
+ case 'style_unspecified':
342
+ assumptions.push(`Following existing project conventions for style and formatting`);
343
+ break;
344
+ case 'edge_case':
345
+ assumptions.push(`Handling standard edge cases: null/undefined, empty collections, boundary values`);
346
+ break;
347
+ case 'underspecified_format':
348
+ assumptions.push(`Using the output format most consistent with existing code patterns`);
349
+ break;
350
+ case 'missing_criteria':
351
+ assumptions.push(`Success criteria: existing tests pass, no new errors, linter clean`);
352
+ break;
353
+ }
354
+ }
355
+ return [...new Set(assumptions)]; // Deduplicate
356
+ }
357
+ /**
358
+ * Get surrounding context for a match
359
+ */
360
+ function getMatchContext(text, matchIndex) {
361
+ const start = Math.max(0, matchIndex - 30);
362
+ const end = Math.min(text.length, matchIndex + 50);
363
+ return text.slice(start, end).trim();
364
+ }
365
+ /**
366
+ * Format ambiguity result for injection into agent context
367
+ */
368
+ export function formatAmbiguityForContext(result) {
369
+ if (result.level === 'clear')
370
+ return '';
371
+ const sections = [];
372
+ if (result.level === 'high') {
373
+ sections.push('## AMBIGUITY DETECTED — Clarification Needed');
374
+ sections.push(`Ambiguity score: ${result.score.toFixed(2)} (threshold: 0.6)`);
375
+ sections.push('');
376
+ sections.push('### Questions to resolve before proceeding:');
377
+ for (const q of result.questions.filter((q) => q.priority === 'blocking')) {
378
+ sections.push(`- **${q.question}**`);
379
+ sections.push(` Default: ${q.defaultAnswer}`);
380
+ }
381
+ for (const q of result.questions.filter((q) => q.priority === 'important')) {
382
+ sections.push(`- ${q.question}`);
383
+ sections.push(` Default: ${q.defaultAnswer}`);
384
+ }
385
+ }
386
+ else if (result.level === 'moderate') {
387
+ sections.push('## Assumptions (Moderate Ambiguity)');
388
+ sections.push(`Ambiguity score: ${result.score.toFixed(2)}`);
389
+ sections.push('');
390
+ sections.push('Proceeding with these assumptions:');
391
+ for (const assumption of result.assumptions) {
392
+ sections.push(`- ${assumption}`);
393
+ }
394
+ }
395
+ return sections.join('\n');
396
+ }
397
+ export default {
398
+ detectAmbiguity,
399
+ formatAmbiguityForContext,
400
+ };
401
+ //# sourceMappingURL=ambiguity-detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ambiguity-detector.js","sourceRoot":"","sources":["../../src/memory/ambiguity-detector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export interface MemoryEntry {
2
+ id: string;
3
+ timestamp: string;
4
+ type: 'action' | 'observation' | 'thought' | 'goal' | 'lesson' | 'decision';
5
+ content: string;
6
+ embedding?: number[];
7
+ tags?: string[];
8
+ importance?: number;
9
+ metadata?: Record<string, unknown>;
10
+ }
11
+ export interface MemoryBackend {
12
+ isConfigured(): Promise<boolean>;
13
+ store(entry: MemoryEntry): Promise<void>;
14
+ query(query: string, limit?: number): Promise<MemoryEntry[]>;
15
+ getRecent(limit?: number): Promise<MemoryEntry[]>;
16
+ prune(olderThan: Date): Promise<number>;
17
+ }
18
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/memory/backends/base.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,QAAQ,GAAG,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC5E,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAE5B,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAGjC,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAGzC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAG7D,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAGlD,KAAK,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACzC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/memory/backends/base.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import type { AgentContextConfig } from '../../types/index.js';
2
+ import type { MemoryBackend } from './base.js';
3
+ export declare function createMemoryBackend(config: AgentContextConfig): Promise<MemoryBackend | null>;
4
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/memory/backends/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAI/C,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAuDnG"}
@@ -0,0 +1,53 @@
1
+ import { GitHubMemoryBackend } from './github.js';
2
+ import { QdrantCloudBackend } from './qdrant-cloud.js';
3
+ export async function createMemoryBackend(config) {
4
+ if (!config.memory?.longTerm?.enabled) {
5
+ return null;
6
+ }
7
+ const longTerm = config.memory.longTerm;
8
+ // Check GitHub backend (opt-in via config or env vars)
9
+ if (longTerm.github?.enabled) {
10
+ const token = longTerm.github.token || process.env.GITHUB_TOKEN;
11
+ const repo = longTerm.github.repo;
12
+ if (token && repo) {
13
+ try {
14
+ const backend = new GitHubMemoryBackend({
15
+ token,
16
+ repo,
17
+ path: longTerm.github.path || '.uap/memory',
18
+ branch: longTerm.github.branch || 'main',
19
+ });
20
+ if (await backend.isConfigured()) {
21
+ return backend;
22
+ }
23
+ }
24
+ catch (error) {
25
+ console.warn(`GitHub backend not available: ${error}`);
26
+ }
27
+ }
28
+ }
29
+ // Check Qdrant Cloud backend (opt-in via config or env vars)
30
+ if (longTerm.qdrantCloud?.enabled) {
31
+ const apiKey = longTerm.qdrantCloud.apiKey || process.env.QDRANT_API_KEY;
32
+ const url = longTerm.qdrantCloud.url || process.env.QDRANT_URL;
33
+ if (apiKey && url) {
34
+ try {
35
+ const backend = new QdrantCloudBackend({
36
+ url,
37
+ apiKey,
38
+ collection: longTerm.qdrantCloud.collection || 'agent_memory',
39
+ projectId: config.project?.name || process.cwd(),
40
+ });
41
+ if (await backend.isConfigured()) {
42
+ return backend;
43
+ }
44
+ }
45
+ catch (error) {
46
+ console.warn(`Qdrant Cloud backend not available: ${error}`);
47
+ }
48
+ }
49
+ }
50
+ // No configured backend found - gracefully return null
51
+ return null;
52
+ }
53
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/memory/backends/factory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAA0B;IAClE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;IAExC,uDAAuD;IACvD,IAAI,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QAChE,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;QAElC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC;oBACtC,KAAK;oBACL,IAAI;oBACJ,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,aAAa;oBAC3C,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM;iBACzC,CAAC,CAAC;gBAEH,IAAI,MAAM,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;oBACjC,OAAO,OAAO,CAAC;gBACjB,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,IAAI,QAAQ,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QACzE,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;QAE/D,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,IAAI,kBAAkB,CAAC;oBACrC,GAAG;oBACH,MAAM;oBACN,UAAU,EAAE,QAAQ,CAAC,WAAW,CAAC,UAAU,IAAI,cAAc;oBAC7D,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE;iBACjD,CAAC,CAAC;gBAEH,IAAI,MAAM,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;oBACjC,OAAO,OAAO,CAAC;gBACjB,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,uCAAuC,KAAK,EAAE,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;IACH,CAAC;IAED,uDAAuD;IACvD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { MemoryBackend, MemoryEntry } from './base.js';
2
+ interface GitHubMemoryBackendConfig {
3
+ token: string;
4
+ repo: string;
5
+ path: string;
6
+ branch: string;
7
+ }
8
+ export declare class GitHubMemoryBackend implements MemoryBackend {
9
+ private octokit;
10
+ private repo;
11
+ private owner;
12
+ private path;
13
+ private branch;
14
+ constructor(config: GitHubMemoryBackendConfig);
15
+ isConfigured(): Promise<boolean>;
16
+ store(entry: MemoryEntry): Promise<void>;
17
+ /**
18
+ * Query memories by substring match (case-insensitive).
19
+ * Note: This is NOT semantic search — it uses simple string containment.
20
+ * For semantic search, use QdrantCloudBackend instead.
21
+ */
22
+ query(query: string, limit?: number): Promise<MemoryEntry[]>;
23
+ getRecent(limit?: number): Promise<MemoryEntry[]>;
24
+ prune(olderThan: Date): Promise<number>;
25
+ }
26
+ export {};
27
+ //# sourceMappingURL=github.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../../src/memory/backends/github.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE5D,UAAU,yBAAyB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,mBAAoB,YAAW,aAAa;IACvD,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,yBAAyB;IAWvC,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAShC,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB9C;;;;OAIG;IACG,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAOxD,SAAS,CAAC,KAAK,SAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAoC7C,KAAK,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;CA4C9C"}