universal-agent-protocol 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (415) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +462 -0
  3. package/dist/analyzers/index.d.ts +3 -0
  4. package/dist/analyzers/index.d.ts.map +1 -0
  5. package/dist/analyzers/index.js +656 -0
  6. package/dist/analyzers/index.js.map +1 -0
  7. package/dist/bin/cli.d.ts +3 -0
  8. package/dist/bin/cli.d.ts.map +1 -0
  9. package/dist/bin/cli.js +506 -0
  10. package/dist/bin/cli.js.map +1 -0
  11. package/dist/bin/tool-calls.d.ts +3 -0
  12. package/dist/bin/tool-calls.d.ts.map +1 -0
  13. package/dist/bin/tool-calls.js +4 -0
  14. package/dist/bin/tool-calls.js.map +1 -0
  15. package/dist/cli/agent.d.ts +20 -0
  16. package/dist/cli/agent.d.ts.map +1 -0
  17. package/dist/cli/agent.js +434 -0
  18. package/dist/cli/agent.js.map +1 -0
  19. package/dist/cli/analyze.d.ts +7 -0
  20. package/dist/cli/analyze.d.ts.map +1 -0
  21. package/dist/cli/analyze.js +103 -0
  22. package/dist/cli/analyze.js.map +1 -0
  23. package/dist/cli/coord.d.ts +7 -0
  24. package/dist/cli/coord.d.ts.map +1 -0
  25. package/dist/cli/coord.js +138 -0
  26. package/dist/cli/coord.js.map +1 -0
  27. package/dist/cli/dashboard.d.ts +8 -0
  28. package/dist/cli/dashboard.d.ts.map +1 -0
  29. package/dist/cli/dashboard.js +704 -0
  30. package/dist/cli/dashboard.js.map +1 -0
  31. package/dist/cli/deploy.d.ts +19 -0
  32. package/dist/cli/deploy.d.ts.map +1 -0
  33. package/dist/cli/deploy.js +267 -0
  34. package/dist/cli/deploy.js.map +1 -0
  35. package/dist/cli/droids.d.ts +9 -0
  36. package/dist/cli/droids.d.ts.map +1 -0
  37. package/dist/cli/droids.js +227 -0
  38. package/dist/cli/droids.js.map +1 -0
  39. package/dist/cli/generate.d.ts +17 -0
  40. package/dist/cli/generate.d.ts.map +1 -0
  41. package/dist/cli/generate.js +432 -0
  42. package/dist/cli/generate.js.map +1 -0
  43. package/dist/cli/hooks.d.ts +9 -0
  44. package/dist/cli/hooks.d.ts.map +1 -0
  45. package/dist/cli/hooks.js +374 -0
  46. package/dist/cli/hooks.js.map +1 -0
  47. package/dist/cli/init.d.ts +11 -0
  48. package/dist/cli/init.d.ts.map +1 -0
  49. package/dist/cli/init.js +316 -0
  50. package/dist/cli/init.js.map +1 -0
  51. package/dist/cli/mcp-router.d.ts +16 -0
  52. package/dist/cli/mcp-router.d.ts.map +1 -0
  53. package/dist/cli/mcp-router.js +143 -0
  54. package/dist/cli/mcp-router.js.map +1 -0
  55. package/dist/cli/memory.d.ts +24 -0
  56. package/dist/cli/memory.d.ts.map +1 -0
  57. package/dist/cli/memory.js +877 -0
  58. package/dist/cli/memory.js.map +1 -0
  59. package/dist/cli/model.d.ts +15 -0
  60. package/dist/cli/model.d.ts.map +1 -0
  61. package/dist/cli/model.js +270 -0
  62. package/dist/cli/model.js.map +1 -0
  63. package/dist/cli/patterns.d.ts +26 -0
  64. package/dist/cli/patterns.d.ts.map +1 -0
  65. package/dist/cli/patterns.js +587 -0
  66. package/dist/cli/patterns.js.map +1 -0
  67. package/dist/cli/setup-mcp-router.d.ts +8 -0
  68. package/dist/cli/setup-mcp-router.d.ts.map +1 -0
  69. package/dist/cli/setup-mcp-router.js +163 -0
  70. package/dist/cli/setup-mcp-router.js.map +1 -0
  71. package/dist/cli/setup.d.ts +13 -0
  72. package/dist/cli/setup.d.ts.map +1 -0
  73. package/dist/cli/setup.js +146 -0
  74. package/dist/cli/setup.js.map +1 -0
  75. package/dist/cli/sync.d.ts +7 -0
  76. package/dist/cli/sync.d.ts.map +1 -0
  77. package/dist/cli/sync.js +26 -0
  78. package/dist/cli/sync.js.map +1 -0
  79. package/dist/cli/task.d.ts +33 -0
  80. package/dist/cli/task.d.ts.map +1 -0
  81. package/dist/cli/task.js +616 -0
  82. package/dist/cli/task.js.map +1 -0
  83. package/dist/cli/tool-calls.d.ts +8 -0
  84. package/dist/cli/tool-calls.d.ts.map +1 -0
  85. package/dist/cli/tool-calls.js +239 -0
  86. package/dist/cli/tool-calls.js.map +1 -0
  87. package/dist/cli/update.d.ts +10 -0
  88. package/dist/cli/update.d.ts.map +1 -0
  89. package/dist/cli/update.js +300 -0
  90. package/dist/cli/update.js.map +1 -0
  91. package/dist/cli/visualize.d.ts +77 -0
  92. package/dist/cli/visualize.d.ts.map +1 -0
  93. package/dist/cli/visualize.js +287 -0
  94. package/dist/cli/visualize.js.map +1 -0
  95. package/dist/cli/worktree.d.ts +9 -0
  96. package/dist/cli/worktree.d.ts.map +1 -0
  97. package/dist/cli/worktree.js +175 -0
  98. package/dist/cli/worktree.js.map +1 -0
  99. package/dist/coordination/capability-router.d.ts +79 -0
  100. package/dist/coordination/capability-router.d.ts.map +1 -0
  101. package/dist/coordination/capability-router.js +324 -0
  102. package/dist/coordination/capability-router.js.map +1 -0
  103. package/dist/coordination/database.d.ts +13 -0
  104. package/dist/coordination/database.d.ts.map +1 -0
  105. package/dist/coordination/database.js +131 -0
  106. package/dist/coordination/database.js.map +1 -0
  107. package/dist/coordination/deploy-batcher.d.ts +101 -0
  108. package/dist/coordination/deploy-batcher.d.ts.map +1 -0
  109. package/dist/coordination/deploy-batcher.js +565 -0
  110. package/dist/coordination/deploy-batcher.js.map +1 -0
  111. package/dist/coordination/index.d.ts +5 -0
  112. package/dist/coordination/index.d.ts.map +1 -0
  113. package/dist/coordination/index.js +5 -0
  114. package/dist/coordination/index.js.map +1 -0
  115. package/dist/coordination/service.d.ts +81 -0
  116. package/dist/coordination/service.d.ts.map +1 -0
  117. package/dist/coordination/service.js +603 -0
  118. package/dist/coordination/service.js.map +1 -0
  119. package/dist/generators/claude-md.d.ts +3 -0
  120. package/dist/generators/claude-md.d.ts.map +1 -0
  121. package/dist/generators/claude-md.js +977 -0
  122. package/dist/generators/claude-md.js.map +1 -0
  123. package/dist/generators/template-loader.d.ts +105 -0
  124. package/dist/generators/template-loader.d.ts.map +1 -0
  125. package/dist/generators/template-loader.js +291 -0
  126. package/dist/generators/template-loader.js.map +1 -0
  127. package/dist/index.d.ts +47 -0
  128. package/dist/index.d.ts.map +1 -0
  129. package/dist/index.js +59 -0
  130. package/dist/index.js.map +1 -0
  131. package/dist/mcp-router/config/parser.d.ts +9 -0
  132. package/dist/mcp-router/config/parser.d.ts.map +1 -0
  133. package/dist/mcp-router/config/parser.js +174 -0
  134. package/dist/mcp-router/config/parser.js.map +1 -0
  135. package/dist/mcp-router/executor/client.d.ts +31 -0
  136. package/dist/mcp-router/executor/client.d.ts.map +1 -0
  137. package/dist/mcp-router/executor/client.js +187 -0
  138. package/dist/mcp-router/executor/client.js.map +1 -0
  139. package/dist/mcp-router/index.d.ts +22 -0
  140. package/dist/mcp-router/index.d.ts.map +1 -0
  141. package/dist/mcp-router/index.js +18 -0
  142. package/dist/mcp-router/index.js.map +1 -0
  143. package/dist/mcp-router/output-compressor.d.ts +26 -0
  144. package/dist/mcp-router/output-compressor.d.ts.map +1 -0
  145. package/dist/mcp-router/output-compressor.js +236 -0
  146. package/dist/mcp-router/output-compressor.js.map +1 -0
  147. package/dist/mcp-router/search/fuzzy.d.ts +26 -0
  148. package/dist/mcp-router/search/fuzzy.d.ts.map +1 -0
  149. package/dist/mcp-router/search/fuzzy.js +94 -0
  150. package/dist/mcp-router/search/fuzzy.js.map +1 -0
  151. package/dist/mcp-router/server.d.ts +50 -0
  152. package/dist/mcp-router/server.d.ts.map +1 -0
  153. package/dist/mcp-router/server.js +229 -0
  154. package/dist/mcp-router/server.js.map +1 -0
  155. package/dist/mcp-router/session-stats.d.ts +37 -0
  156. package/dist/mcp-router/session-stats.d.ts.map +1 -0
  157. package/dist/mcp-router/session-stats.js +56 -0
  158. package/dist/mcp-router/session-stats.js.map +1 -0
  159. package/dist/mcp-router/tools/discover.d.ts +37 -0
  160. package/dist/mcp-router/tools/discover.d.ts.map +1 -0
  161. package/dist/mcp-router/tools/discover.js +65 -0
  162. package/dist/mcp-router/tools/discover.js.map +1 -0
  163. package/dist/mcp-router/tools/execute.d.ts +43 -0
  164. package/dist/mcp-router/tools/execute.d.ts.map +1 -0
  165. package/dist/mcp-router/tools/execute.js +103 -0
  166. package/dist/mcp-router/tools/execute.js.map +1 -0
  167. package/dist/mcp-router/types.d.ts +62 -0
  168. package/dist/mcp-router/types.d.ts.map +1 -0
  169. package/dist/mcp-router/types.js +6 -0
  170. package/dist/mcp-router/types.js.map +1 -0
  171. package/dist/memory/adaptive-context.d.ts +146 -0
  172. package/dist/memory/adaptive-context.d.ts.map +1 -0
  173. package/dist/memory/adaptive-context.js +1022 -0
  174. package/dist/memory/adaptive-context.js.map +1 -0
  175. package/dist/memory/agent-scoped-memory.d.ts +67 -0
  176. package/dist/memory/agent-scoped-memory.d.ts.map +1 -0
  177. package/dist/memory/agent-scoped-memory.js +126 -0
  178. package/dist/memory/agent-scoped-memory.js.map +1 -0
  179. package/dist/memory/backends/base.d.ts +18 -0
  180. package/dist/memory/backends/base.d.ts.map +1 -0
  181. package/dist/memory/backends/base.js +2 -0
  182. package/dist/memory/backends/base.js.map +1 -0
  183. package/dist/memory/backends/factory.d.ts +4 -0
  184. package/dist/memory/backends/factory.d.ts.map +1 -0
  185. package/dist/memory/backends/factory.js +53 -0
  186. package/dist/memory/backends/factory.js.map +1 -0
  187. package/dist/memory/backends/github.d.ts +22 -0
  188. package/dist/memory/backends/github.d.ts.map +1 -0
  189. package/dist/memory/backends/github.js +118 -0
  190. package/dist/memory/backends/github.js.map +1 -0
  191. package/dist/memory/backends/qdrant-cloud.d.ts +32 -0
  192. package/dist/memory/backends/qdrant-cloud.d.ts.map +1 -0
  193. package/dist/memory/backends/qdrant-cloud.js +168 -0
  194. package/dist/memory/backends/qdrant-cloud.js.map +1 -0
  195. package/dist/memory/context-compressor.d.ts +74 -0
  196. package/dist/memory/context-compressor.d.ts.map +1 -0
  197. package/dist/memory/context-compressor.js +289 -0
  198. package/dist/memory/context-compressor.js.map +1 -0
  199. package/dist/memory/correction-propagator.d.ts +44 -0
  200. package/dist/memory/correction-propagator.d.ts.map +1 -0
  201. package/dist/memory/correction-propagator.js +156 -0
  202. package/dist/memory/correction-propagator.js.map +1 -0
  203. package/dist/memory/daily-log.d.ts +67 -0
  204. package/dist/memory/daily-log.d.ts.map +1 -0
  205. package/dist/memory/daily-log.js +143 -0
  206. package/dist/memory/daily-log.js.map +1 -0
  207. package/dist/memory/dynamic-retrieval.d.ts +110 -0
  208. package/dist/memory/dynamic-retrieval.d.ts.map +1 -0
  209. package/dist/memory/dynamic-retrieval.js +688 -0
  210. package/dist/memory/dynamic-retrieval.js.map +1 -0
  211. package/dist/memory/embeddings.d.ts +116 -0
  212. package/dist/memory/embeddings.d.ts.map +1 -0
  213. package/dist/memory/embeddings.js +461 -0
  214. package/dist/memory/embeddings.js.map +1 -0
  215. package/dist/memory/hierarchical-memory.d.ts +141 -0
  216. package/dist/memory/hierarchical-memory.d.ts.map +1 -0
  217. package/dist/memory/hierarchical-memory.js +477 -0
  218. package/dist/memory/hierarchical-memory.js.map +1 -0
  219. package/dist/memory/memory-consolidator.d.ts +124 -0
  220. package/dist/memory/memory-consolidator.d.ts.map +1 -0
  221. package/dist/memory/memory-consolidator.js +514 -0
  222. package/dist/memory/memory-consolidator.js.map +1 -0
  223. package/dist/memory/memory-maintenance.d.ts +39 -0
  224. package/dist/memory/memory-maintenance.d.ts.map +1 -0
  225. package/dist/memory/memory-maintenance.js +305 -0
  226. package/dist/memory/memory-maintenance.js.map +1 -0
  227. package/dist/memory/model-router.d.ts +102 -0
  228. package/dist/memory/model-router.d.ts.map +1 -0
  229. package/dist/memory/model-router.js +448 -0
  230. package/dist/memory/model-router.js.map +1 -0
  231. package/dist/memory/multi-view-memory.d.ts +134 -0
  232. package/dist/memory/multi-view-memory.d.ts.map +1 -0
  233. package/dist/memory/multi-view-memory.js +420 -0
  234. package/dist/memory/multi-view-memory.js.map +1 -0
  235. package/dist/memory/prepopulate.d.ts +76 -0
  236. package/dist/memory/prepopulate.d.ts.map +1 -0
  237. package/dist/memory/prepopulate.js +815 -0
  238. package/dist/memory/prepopulate.js.map +1 -0
  239. package/dist/memory/semantic-compression.d.ts +77 -0
  240. package/dist/memory/semantic-compression.d.ts.map +1 -0
  241. package/dist/memory/semantic-compression.js +348 -0
  242. package/dist/memory/semantic-compression.js.map +1 -0
  243. package/dist/memory/serverless-qdrant.d.ts +102 -0
  244. package/dist/memory/serverless-qdrant.d.ts.map +1 -0
  245. package/dist/memory/serverless-qdrant.js +369 -0
  246. package/dist/memory/serverless-qdrant.js.map +1 -0
  247. package/dist/memory/short-term/factory.d.ts +26 -0
  248. package/dist/memory/short-term/factory.d.ts.map +1 -0
  249. package/dist/memory/short-term/factory.js +28 -0
  250. package/dist/memory/short-term/factory.js.map +1 -0
  251. package/dist/memory/short-term/indexeddb.d.ts +25 -0
  252. package/dist/memory/short-term/indexeddb.d.ts.map +1 -0
  253. package/dist/memory/short-term/indexeddb.js +64 -0
  254. package/dist/memory/short-term/indexeddb.js.map +1 -0
  255. package/dist/memory/short-term/schema.d.ts +6 -0
  256. package/dist/memory/short-term/schema.d.ts.map +1 -0
  257. package/dist/memory/short-term/schema.js +119 -0
  258. package/dist/memory/short-term/schema.js.map +1 -0
  259. package/dist/memory/short-term/sqlite.d.ts +50 -0
  260. package/dist/memory/short-term/sqlite.d.ts.map +1 -0
  261. package/dist/memory/short-term/sqlite.js +221 -0
  262. package/dist/memory/short-term/sqlite.js.map +1 -0
  263. package/dist/memory/speculative-cache.d.ts +111 -0
  264. package/dist/memory/speculative-cache.d.ts.map +1 -0
  265. package/dist/memory/speculative-cache.js +409 -0
  266. package/dist/memory/speculative-cache.js.map +1 -0
  267. package/dist/memory/task-classifier.d.ts +34 -0
  268. package/dist/memory/task-classifier.d.ts.map +1 -0
  269. package/dist/memory/task-classifier.js +300 -0
  270. package/dist/memory/task-classifier.js.map +1 -0
  271. package/dist/memory/terminal-bench-knowledge.d.ts +48 -0
  272. package/dist/memory/terminal-bench-knowledge.d.ts.map +1 -0
  273. package/dist/memory/terminal-bench-knowledge.js +399 -0
  274. package/dist/memory/terminal-bench-knowledge.js.map +1 -0
  275. package/dist/memory/write-gate.d.ts +39 -0
  276. package/dist/memory/write-gate.d.ts.map +1 -0
  277. package/dist/memory/write-gate.js +190 -0
  278. package/dist/memory/write-gate.js.map +1 -0
  279. package/dist/models/executor.d.ts +130 -0
  280. package/dist/models/executor.d.ts.map +1 -0
  281. package/dist/models/executor.js +383 -0
  282. package/dist/models/executor.js.map +1 -0
  283. package/dist/models/index.d.ts +15 -0
  284. package/dist/models/index.d.ts.map +1 -0
  285. package/dist/models/index.js +17 -0
  286. package/dist/models/index.js.map +1 -0
  287. package/dist/models/planner.d.ts +71 -0
  288. package/dist/models/planner.d.ts.map +1 -0
  289. package/dist/models/planner.js +344 -0
  290. package/dist/models/planner.js.map +1 -0
  291. package/dist/models/router.d.ts +75 -0
  292. package/dist/models/router.d.ts.map +1 -0
  293. package/dist/models/router.js +344 -0
  294. package/dist/models/router.js.map +1 -0
  295. package/dist/models/types.d.ts +370 -0
  296. package/dist/models/types.d.ts.map +1 -0
  297. package/dist/models/types.js +181 -0
  298. package/dist/models/types.js.map +1 -0
  299. package/dist/tasks/coordination.d.ts +74 -0
  300. package/dist/tasks/coordination.d.ts.map +1 -0
  301. package/dist/tasks/coordination.js +237 -0
  302. package/dist/tasks/coordination.js.map +1 -0
  303. package/dist/tasks/database.d.ts +14 -0
  304. package/dist/tasks/database.d.ts.map +1 -0
  305. package/dist/tasks/database.js +128 -0
  306. package/dist/tasks/database.js.map +1 -0
  307. package/dist/tasks/index.d.ts +5 -0
  308. package/dist/tasks/index.d.ts.map +1 -0
  309. package/dist/tasks/index.js +5 -0
  310. package/dist/tasks/index.js.map +1 -0
  311. package/dist/tasks/service.d.ts +39 -0
  312. package/dist/tasks/service.d.ts.map +1 -0
  313. package/dist/tasks/service.js +582 -0
  314. package/dist/tasks/service.js.map +1 -0
  315. package/dist/tasks/types.d.ts +224 -0
  316. package/dist/tasks/types.d.ts.map +1 -0
  317. package/dist/tasks/types.js +64 -0
  318. package/dist/tasks/types.js.map +1 -0
  319. package/dist/types/analysis.d.ts +82 -0
  320. package/dist/types/analysis.d.ts.map +1 -0
  321. package/dist/types/analysis.js +2 -0
  322. package/dist/types/analysis.js.map +1 -0
  323. package/dist/types/config.d.ts +3023 -0
  324. package/dist/types/config.d.ts.map +1 -0
  325. package/dist/types/config.js +292 -0
  326. package/dist/types/config.js.map +1 -0
  327. package/dist/types/coordination.d.ts +240 -0
  328. package/dist/types/coordination.d.ts.map +1 -0
  329. package/dist/types/coordination.js +43 -0
  330. package/dist/types/coordination.js.map +1 -0
  331. package/dist/types/index.d.ts +4 -0
  332. package/dist/types/index.d.ts.map +1 -0
  333. package/dist/types/index.js +4 -0
  334. package/dist/types/index.js.map +1 -0
  335. package/dist/utils/calculate-average.d.ts +15 -0
  336. package/dist/utils/calculate-average.d.ts.map +1 -0
  337. package/dist/utils/calculate-average.js +21 -0
  338. package/dist/utils/calculate-average.js.map +1 -0
  339. package/dist/utils/config-manager.d.ts +30 -0
  340. package/dist/utils/config-manager.d.ts.map +1 -0
  341. package/dist/utils/config-manager.js +41 -0
  342. package/dist/utils/config-manager.js.map +1 -0
  343. package/dist/utils/dijkstra.d.ts +17 -0
  344. package/dist/utils/dijkstra.d.ts.map +1 -0
  345. package/dist/utils/dijkstra.js +91 -0
  346. package/dist/utils/dijkstra.js.map +1 -0
  347. package/dist/utils/fetch-with-retry.d.ts +5 -0
  348. package/dist/utils/fetch-with-retry.d.ts.map +1 -0
  349. package/dist/utils/fetch-with-retry.js +61 -0
  350. package/dist/utils/fetch-with-retry.js.map +1 -0
  351. package/dist/utils/merge-claude-md.d.ts +28 -0
  352. package/dist/utils/merge-claude-md.d.ts.map +1 -0
  353. package/dist/utils/merge-claude-md.js +342 -0
  354. package/dist/utils/merge-claude-md.js.map +1 -0
  355. package/dist/utils/order-processor-refactored.d.ts +126 -0
  356. package/dist/utils/order-processor-refactored.d.ts.map +1 -0
  357. package/dist/utils/order-processor-refactored.js +165 -0
  358. package/dist/utils/order-processor-refactored.js.map +1 -0
  359. package/dist/utils/order-processor-strategy.d.ts +72 -0
  360. package/dist/utils/order-processor-strategy.d.ts.map +1 -0
  361. package/dist/utils/order-processor-strategy.js +158 -0
  362. package/dist/utils/order-processor-strategy.js.map +1 -0
  363. package/dist/utils/order-processor.d.ts +242 -0
  364. package/dist/utils/order-processor.d.ts.map +1 -0
  365. package/dist/utils/order-processor.js +370 -0
  366. package/dist/utils/order-processor.js.map +1 -0
  367. package/dist/utils/rate-limiter-simple.d.ts +58 -0
  368. package/dist/utils/rate-limiter-simple.d.ts.map +1 -0
  369. package/dist/utils/rate-limiter-simple.js +100 -0
  370. package/dist/utils/rate-limiter-simple.js.map +1 -0
  371. package/dist/utils/rate-limiter.d.ts +62 -0
  372. package/dist/utils/rate-limiter.d.ts.map +1 -0
  373. package/dist/utils/rate-limiter.js +150 -0
  374. package/dist/utils/rate-limiter.js.map +1 -0
  375. package/dist/utils/string-similarity.d.ts +37 -0
  376. package/dist/utils/string-similarity.d.ts.map +1 -0
  377. package/dist/utils/string-similarity.js +114 -0
  378. package/dist/utils/string-similarity.js.map +1 -0
  379. package/dist/utils/validate-json.d.ts +51 -0
  380. package/dist/utils/validate-json.d.ts.map +1 -0
  381. package/dist/utils/validate-json.js +99 -0
  382. package/dist/utils/validate-json.js.map +1 -0
  383. package/package.json +96 -0
  384. package/templates/CLAUDE.template.md +11 -0
  385. package/templates/CLAUDE_ARCHITECTURE.template.md +103 -0
  386. package/templates/CLAUDE_CODING.template.md +125 -0
  387. package/templates/CLAUDE_DROIDS.template.md +109 -0
  388. package/templates/CLAUDE_MEMORY.template.md +130 -0
  389. package/templates/CLAUDE_WORKFLOWS.template.md +136 -0
  390. package/templates/PROJECT.template.md +209 -0
  391. package/templates/SCHEMA.md +57 -0
  392. package/templates/archive/CLAUDE.template.root-v6.md +762 -0
  393. package/templates/archive/CLAUDE.template.v6.md +762 -0
  394. package/templates/hooks/pre-compact.sh +68 -0
  395. package/templates/hooks/session-start.sh +106 -0
  396. package/tools/agents/README.md +224 -0
  397. package/tools/agents/UAP/README.md +351 -0
  398. package/tools/agents/UAP/__init__.py +9 -0
  399. package/tools/agents/UAP/cli.py +675 -0
  400. package/tools/agents/UAP/version.py +2 -0
  401. package/tools/agents/benchmarks/benchmark_memory_systems.py +637 -0
  402. package/tools/agents/benchmarks/results/benchmark_20260106_064817.json +170 -0
  403. package/tools/agents/benchmarks/results/benchmark_20260106_064817.md +51 -0
  404. package/tools/agents/config/chat_template.jinja +172 -0
  405. package/tools/agents/docker-compose.qdrant.yml +24 -0
  406. package/tools/agents/migrations/apply.py +256 -0
  407. package/tools/agents/scripts/fix_qwen_chat_template.py +314 -0
  408. package/tools/agents/scripts/init_qdrant.py +151 -0
  409. package/tools/agents/scripts/memory_migration.py +518 -0
  410. package/tools/agents/scripts/migrate_memory_to_qdrant.py +113 -0
  411. package/tools/agents/scripts/query_memory.py +189 -0
  412. package/tools/agents/scripts/qwen_tool_call_test.py +419 -0
  413. package/tools/agents/scripts/qwen_tool_call_wrapper.py +517 -0
  414. package/tools/agents/scripts/start-services.sh +96 -0
  415. package/tools/agents/tests/test_uap_compliance.py +257 -0
@@ -0,0 +1,448 @@
1
+ /**
2
+ * Model Routing Intelligence for UAP
3
+ *
4
+ * Routes tasks to the optimal model based on:
5
+ * - Task classification and difficulty
6
+ * - Model capability fingerprints (benchmarked data)
7
+ * - Latency/accuracy/cost tradeoffs
8
+ * - Fallback chains for resilience
9
+ * - OPT 8: Persistent fingerprint data from SQLite
10
+ *
11
+ * Based on BENCHMARK_ANALYSIS.md and MODEL_BENCHMARK_RESULTS.md data.
12
+ */
13
+ import Database from 'better-sqlite3';
14
+ import { existsSync, mkdirSync } from 'fs';
15
+ import { dirname, join } from 'path';
16
+ import { fileURLToPath } from 'url';
17
+ import { classifyTask } from './task-classifier.js';
18
+ const __filename = fileURLToPath(import.meta.url);
19
+ const __dirname = dirname(__filename);
20
+ const DEFAULT_CONFIG = {
21
+ preferLatency: false,
22
+ preferAccuracy: true,
23
+ maxCostPerTask: 0.05,
24
+ maxLatencyMs: 120000,
25
+ availableModels: ['glm-4.7', 'gpt-5.2', 'claude-opus-4.5', 'gpt-5.2-codex'],
26
+ };
27
+ // OPTIMIZATION 5: Pre-seeded with benchmark data for per-category routing
28
+ const MODEL_FINGERPRINTS = {
29
+ 'glm-4.7': {
30
+ id: 'glm-4.7',
31
+ strengths: ['speed', 'simple-code', 'patterns', 'typescript', 'bug-detection'],
32
+ weaknesses: ['complex-algorithms', 'long-context', 'multi-step-code', 'context-awareness'],
33
+ avgLatencyMs: 11373,
34
+ successRate: 0.625,
35
+ costPerTask: 0.001,
36
+ maxComplexity: 'medium',
37
+ bestCategories: ['coding', 'testing', 'debugging'],
38
+ categoryStats: {
39
+ coding: { attempts: 8, successes: 5 },
40
+ testing: { attempts: 5, successes: 4 },
41
+ debugging: { attempts: 4, successes: 3 },
42
+ security: { attempts: 4, successes: 2 },
43
+ 'file-ops': { attempts: 3, successes: 1 },
44
+ sysadmin: { attempts: 3, successes: 1 },
45
+ },
46
+ },
47
+ 'gpt-5.2': {
48
+ id: 'gpt-5.2',
49
+ strengths: ['balance', 'consistency', 'general-purpose', 'algorithm', 'multi-step'],
50
+ weaknesses: ['refactoring', 'latency-sensitive'],
51
+ avgLatencyMs: 21286,
52
+ successRate: 0.875,
53
+ costPerTask: 0.005,
54
+ maxComplexity: 'hard',
55
+ bestCategories: ['coding', 'security', 'file-ops', 'debugging'],
56
+ categoryStats: {
57
+ coding: { attempts: 8, successes: 7 },
58
+ security: { attempts: 6, successes: 5 },
59
+ 'file-ops': { attempts: 5, successes: 4 },
60
+ debugging: { attempts: 5, successes: 5 },
61
+ sysadmin: { attempts: 4, successes: 3 },
62
+ 'ml-training': { attempts: 3, successes: 2 },
63
+ 'constraint-satisfaction': { attempts: 3, successes: 3 },
64
+ },
65
+ },
66
+ 'claude-opus-4.5': {
67
+ id: 'claude-opus-4.5',
68
+ strengths: ['accuracy', 'complex-reasoning', 'edge-cases', 'error-handling', 'refactoring'],
69
+ weaknesses: ['latency', 'cost'],
70
+ avgLatencyMs: 26359,
71
+ successRate: 0.875,
72
+ costPerTask: 0.02,
73
+ maxComplexity: 'hard',
74
+ bestCategories: ['security', 'coding', 'sysadmin', 'debugging'],
75
+ categoryStats: {
76
+ security: { attempts: 8, successes: 7 },
77
+ coding: { attempts: 8, successes: 7 },
78
+ sysadmin: { attempts: 5, successes: 5 },
79
+ debugging: { attempts: 5, successes: 4 },
80
+ 'file-ops': { attempts: 5, successes: 4 },
81
+ 'ml-training': { attempts: 3, successes: 2 },
82
+ 'constraint-satisfaction': { attempts: 3, successes: 2 },
83
+ },
84
+ },
85
+ 'gpt-5.2-codex': {
86
+ id: 'gpt-5.2-codex',
87
+ strengths: ['code-specific', 'syntax-accuracy', 'context-awareness', 'all-difficulties'],
88
+ weaknesses: ['latency', 'cost', 'non-code-tasks'],
89
+ avgLatencyMs: 102399,
90
+ successRate: 1.0,
91
+ costPerTask: 0.01,
92
+ maxComplexity: 'hard',
93
+ bestCategories: ['coding', 'testing'],
94
+ categoryStats: {
95
+ coding: { attempts: 8, successes: 8 },
96
+ testing: { attempts: 5, successes: 5 },
97
+ security: { attempts: 3, successes: 3 },
98
+ 'file-ops': { attempts: 3, successes: 2 },
99
+ },
100
+ },
101
+ };
102
+ const COMPLEXITY_RANK = { easy: 1, medium: 2, hard: 3 };
103
+ // OPT 8: SQLite-backed fingerprint persistence
104
+ let fingerprintDb = null;
105
+ function getFingerprintDb() {
106
+ if (fingerprintDb)
107
+ return fingerprintDb;
108
+ const dbDir = join(__dirname, '../../agents/data/memory');
109
+ if (!existsSync(dbDir)) {
110
+ mkdirSync(dbDir, { recursive: true });
111
+ }
112
+ const dbPath = join(dbDir, 'model_fingerprints.db');
113
+ fingerprintDb = new Database(dbPath);
114
+ fingerprintDb.pragma('journal_mode = WAL');
115
+ // Create schema
116
+ fingerprintDb.exec(`
117
+ CREATE TABLE IF NOT EXISTS fingerprint_updates (
118
+ model_id TEXT NOT NULL,
119
+ avg_latency_ms REAL,
120
+ success_rate REAL,
121
+ updated_at INTEGER,
122
+ PRIMARY KEY (model_id)
123
+ );
124
+
125
+ CREATE TABLE IF NOT EXISTS category_stats (
126
+ model_id TEXT NOT NULL,
127
+ category TEXT NOT NULL,
128
+ attempts INTEGER DEFAULT 0,
129
+ successes INTEGER DEFAULT 0,
130
+ updated_at INTEGER,
131
+ PRIMARY KEY (model_id, category)
132
+ );
133
+
134
+ CREATE INDEX IF NOT EXISTS idx_category_stats_model ON category_stats(model_id);
135
+ `);
136
+ return fingerprintDb;
137
+ }
138
+ /**
139
+ * OPT 8: Load persisted fingerprint data on module init
140
+ */
141
+ function loadPersistedFingerprints() {
142
+ try {
143
+ const db = getFingerprintDb();
144
+ // Load global updates
145
+ const updates = db.prepare('SELECT * FROM fingerprint_updates').all();
146
+ for (const update of updates) {
147
+ const fp = MODEL_FINGERPRINTS[update.model_id];
148
+ if (fp) {
149
+ // Blend persisted data with defaults (70% persisted, 30% default)
150
+ fp.avgLatencyMs = fp.avgLatencyMs * 0.3 + update.avg_latency_ms * 0.7;
151
+ fp.successRate = fp.successRate * 0.3 + update.success_rate * 0.7;
152
+ }
153
+ }
154
+ // Load category stats
155
+ const categoryData = db.prepare('SELECT * FROM category_stats').all();
156
+ for (const cat of categoryData) {
157
+ const fp = MODEL_FINGERPRINTS[cat.model_id];
158
+ if (fp) {
159
+ if (!fp.categoryStats)
160
+ fp.categoryStats = {};
161
+ // Merge with existing stats
162
+ const existing = fp.categoryStats[cat.category] || { attempts: 0, successes: 0 };
163
+ fp.categoryStats[cat.category] = {
164
+ attempts: existing.attempts + cat.attempts,
165
+ successes: existing.successes + cat.successes,
166
+ };
167
+ }
168
+ }
169
+ }
170
+ catch (err) {
171
+ // Silently fail - fingerprints will use defaults
172
+ console.warn('Failed to load persisted fingerprints:', err);
173
+ }
174
+ }
175
+ /**
176
+ * OPT 8: Persist fingerprint updates to SQLite
177
+ */
178
+ function persistFingerprintUpdate(modelId) {
179
+ try {
180
+ const db = getFingerprintDb();
181
+ const fp = MODEL_FINGERPRINTS[modelId];
182
+ if (!fp)
183
+ return;
184
+ db.prepare(`
185
+ INSERT OR REPLACE INTO fingerprint_updates (model_id, avg_latency_ms, success_rate, updated_at)
186
+ VALUES (?, ?, ?, ?)
187
+ `).run(modelId, fp.avgLatencyMs, fp.successRate, Date.now());
188
+ }
189
+ catch (err) {
190
+ console.warn('Failed to persist fingerprint update:', err);
191
+ }
192
+ }
193
+ /**
194
+ * OPT 8: Persist category stats to SQLite
195
+ */
196
+ function persistCategoryStats(modelId, category) {
197
+ try {
198
+ const db = getFingerprintDb();
199
+ const fp = MODEL_FINGERPRINTS[modelId];
200
+ const stats = fp?.categoryStats?.[category];
201
+ if (!stats)
202
+ return;
203
+ db.prepare(`
204
+ INSERT OR REPLACE INTO category_stats (model_id, category, attempts, successes, updated_at)
205
+ VALUES (?, ?, ?, ?, ?)
206
+ `).run(modelId, category, stats.attempts, stats.successes, Date.now());
207
+ }
208
+ catch (err) {
209
+ console.warn('Failed to persist category stats:', err);
210
+ }
211
+ }
212
+ // Initialize on module load
213
+ loadPersistedFingerprints();
214
+ /**
215
+ * Failure handlers for model-specific known issues
216
+ */
217
+ const FAILURE_HANDLERS = {
218
+ 'gpt-5.2-codex:permission_denied': {
219
+ action: 'add_context',
220
+ context: 'Do not attempt file operations. Return code only.',
221
+ fallbackModel: 'gpt-5.2',
222
+ },
223
+ 'glm-4.7:timeout': {
224
+ action: 'reduce_context',
225
+ fallbackModel: 'gpt-5.2',
226
+ },
227
+ 'glm-4.7:context_overflow': {
228
+ action: 'reduce_context',
229
+ fallbackModel: 'gpt-5.2',
230
+ },
231
+ };
232
+ /**
233
+ * OPTIMIZATION 5: Enhanced per-category scoring with confidence weighting
234
+ * Score a model for a given task using category-specific success rates
235
+ */
236
+ function scoreModel(model, classification, difficulty, config) {
237
+ let score = 0;
238
+ // Category match bonus - INCREASED weight for proven categories
239
+ if (model.bestCategories.includes(classification.category)) {
240
+ score += 40; // Increased from 30
241
+ }
242
+ // Complexity match
243
+ if (COMPLEXITY_RANK[model.maxComplexity] >= COMPLEXITY_RANK[difficulty]) {
244
+ score += 20;
245
+ }
246
+ else {
247
+ score -= 50; // Penalty for difficulty exceeding capability
248
+ }
249
+ // OPTIMIZATION 5: Use per-category success rate with confidence weighting
250
+ // If we have enough data (>=3 attempts), weight category rate 2x higher than global
251
+ const categoryRate = getCategorySuccessRate(model, classification.category);
252
+ const categoryAttempts = model.categoryStats?.[classification.category]?.attempts || 0;
253
+ let effectiveSuccessRate;
254
+ if (categoryRate !== null && categoryAttempts >= 3) {
255
+ // Blend category and global rates, weighted by sample size confidence
256
+ const confidence = Math.min(categoryAttempts / 10, 1); // Max confidence at 10 samples
257
+ effectiveSuccessRate = categoryRate * confidence + model.successRate * (1 - confidence);
258
+ // Bonus for having category-specific data
259
+ score += 10;
260
+ }
261
+ else {
262
+ effectiveSuccessRate = model.successRate;
263
+ }
264
+ // Success rate (0-30 points) - INCREASED from 25
265
+ score += effectiveSuccessRate * 30;
266
+ // Latency preference (0-15 points)
267
+ if (config.preferLatency) {
268
+ const latencyScore = Math.max(0, 1 - (model.avgLatencyMs / 120000));
269
+ score += latencyScore * 15;
270
+ }
271
+ // Accuracy preference bonus
272
+ if (config.preferAccuracy) {
273
+ score += effectiveSuccessRate * 10;
274
+ }
275
+ // Cost constraint
276
+ if (model.costPerTask > config.maxCostPerTask) {
277
+ score -= 20;
278
+ }
279
+ // Latency constraint
280
+ if (model.avgLatencyMs > config.maxLatencyMs) {
281
+ score -= 30;
282
+ }
283
+ // Keyword match with model strengths - INCREASED weight
284
+ const taskKeywords = classification.keywords.map(k => k.toLowerCase());
285
+ for (const strength of model.strengths) {
286
+ if (taskKeywords.some(kw => strength.includes(kw) || kw.includes(strength))) {
287
+ score += 8; // Increased from 5
288
+ }
289
+ }
290
+ return score;
291
+ }
292
+ /**
293
+ * Get per-category success rate if enough data exists (>=3 attempts)
294
+ * Returns null if not enough data, allowing fallback to global rate
295
+ */
296
+ function getCategorySuccessRate(model, category) {
297
+ const stats = model.categoryStats?.[category];
298
+ if (!stats || stats.attempts < 3)
299
+ return null;
300
+ return stats.successes / stats.attempts;
301
+ }
302
+ /**
303
+ * Route a task to the best model
304
+ */
305
+ export function routeTask(instruction, difficulty = 'medium', config = {}) {
306
+ const cfg = { ...DEFAULT_CONFIG, ...config };
307
+ const classification = classifyTask(instruction);
308
+ // Score all available models
309
+ const scored = cfg.availableModels
310
+ .filter(id => MODEL_FINGERPRINTS[id])
311
+ .map(id => ({
312
+ id,
313
+ fingerprint: MODEL_FINGERPRINTS[id],
314
+ score: scoreModel(MODEL_FINGERPRINTS[id], classification, difficulty, cfg),
315
+ }))
316
+ .sort((a, b) => b.score - a.score);
317
+ if (scored.length === 0) {
318
+ return {
319
+ primary: 'gpt-5.2',
320
+ fallback: ['claude-opus-4.5'],
321
+ reason: 'No available models matched, defaulting to GPT 5.2',
322
+ estimatedLatencyMs: 21286,
323
+ estimatedSuccessRate: 0.875,
324
+ estimatedCost: 0.005,
325
+ };
326
+ }
327
+ const primary = scored[0];
328
+ const fallbacks = scored.slice(1).map(s => s.id);
329
+ return {
330
+ primary: primary.id,
331
+ fallback: fallbacks,
332
+ reason: `${primary.id} selected for ${classification.category}/${difficulty} task (score: ${primary.score.toFixed(0)})`,
333
+ estimatedLatencyMs: primary.fingerprint.avgLatencyMs,
334
+ estimatedSuccessRate: primary.fingerprint.successRate,
335
+ estimatedCost: primary.fingerprint.costPerTask,
336
+ };
337
+ }
338
+ /**
339
+ * Get failure handler for a model-specific error
340
+ */
341
+ export function getFailureHandler(modelId, errorType) {
342
+ return FAILURE_HANDLERS[`${modelId}:${errorType}`] || null;
343
+ }
344
+ /**
345
+ * Get model fingerprint
346
+ */
347
+ export function getModelFingerprint(modelId) {
348
+ return MODEL_FINGERPRINTS[modelId] || null;
349
+ }
350
+ /**
351
+ * Get all model fingerprints
352
+ */
353
+ export function getAllModelFingerprints() {
354
+ return { ...MODEL_FINGERPRINTS };
355
+ }
356
+ /**
357
+ * Update model fingerprint with new benchmark data
358
+ */
359
+ export function updateModelFingerprint(modelId, updates) {
360
+ const fp = MODEL_FINGERPRINTS[modelId];
361
+ if (!fp)
362
+ return;
363
+ if (updates.avgLatencyMs !== undefined) {
364
+ // Exponential moving average
365
+ fp.avgLatencyMs = fp.avgLatencyMs * 0.7 + updates.avgLatencyMs * 0.3;
366
+ }
367
+ if (updates.successRate !== undefined) {
368
+ fp.successRate = fp.successRate * 0.7 + updates.successRate * 0.3;
369
+ }
370
+ if (updates.costPerTask !== undefined) {
371
+ fp.costPerTask = updates.costPerTask;
372
+ }
373
+ }
374
+ /**
375
+ * Record task outcome to update model fingerprints (feedback loop)
376
+ * Call this after each task completes to improve future routing decisions
377
+ * OPT 8: Now persists to SQLite for cross-session learning
378
+ */
379
+ export function recordTaskOutcome(modelId, success, latencyMs, taskCategory) {
380
+ const fp = MODEL_FINGERPRINTS[modelId];
381
+ if (!fp)
382
+ return;
383
+ // Update global success rate using exponential moving average
384
+ const newSuccessRate = success ? 1.0 : 0.0;
385
+ fp.successRate = fp.successRate * 0.9 + newSuccessRate * 0.1;
386
+ // Update latency using exponential moving average
387
+ fp.avgLatencyMs = fp.avgLatencyMs * 0.8 + latencyMs * 0.2;
388
+ // OPT 8: Persist global fingerprint update
389
+ persistFingerprintUpdate(modelId);
390
+ // Update per-category stats if category provided
391
+ if (taskCategory) {
392
+ if (!fp.categoryStats)
393
+ fp.categoryStats = {};
394
+ if (!fp.categoryStats[taskCategory]) {
395
+ fp.categoryStats[taskCategory] = { attempts: 0, successes: 0 };
396
+ }
397
+ fp.categoryStats[taskCategory].attempts++;
398
+ if (success) {
399
+ fp.categoryStats[taskCategory].successes++;
400
+ }
401
+ // OPT 8: Persist category stats
402
+ persistCategoryStats(modelId, taskCategory);
403
+ }
404
+ }
405
+ /**
406
+ * Get routing recommendation with explanation
407
+ */
408
+ export function explainRouting(instruction, difficulty = 'medium') {
409
+ const decision = routeTask(instruction, difficulty);
410
+ const fingerprint = MODEL_FINGERPRINTS[decision.primary];
411
+ const lines = [
412
+ `Primary Model: ${decision.primary}`,
413
+ `Reason: ${decision.reason}`,
414
+ `Expected Latency: ${(decision.estimatedLatencyMs / 1000).toFixed(1)}s`,
415
+ `Expected Success: ${(decision.estimatedSuccessRate * 100).toFixed(0)}%`,
416
+ `Strengths: ${fingerprint?.strengths.slice(0, 3).join(', ') || 'N/A'}`,
417
+ `Fallbacks: ${decision.fallback.join(' -> ') || 'None'}`,
418
+ ];
419
+ return lines.join('\n');
420
+ }
421
+ /**
422
+ * OPT 8: Close fingerprint database connection
423
+ */
424
+ export function closeFingerprintDb() {
425
+ if (fingerprintDb) {
426
+ fingerprintDb.close();
427
+ fingerprintDb = null;
428
+ }
429
+ }
430
+ /**
431
+ * OPT 8: Force reload fingerprints from database
432
+ */
433
+ export function reloadFingerprints() {
434
+ loadPersistedFingerprints();
435
+ }
436
+ export const ModelRouter = {
437
+ routeTask,
438
+ getFailureHandler,
439
+ getModelFingerprint,
440
+ getAllModelFingerprints,
441
+ updateModelFingerprint,
442
+ recordTaskOutcome,
443
+ explainRouting,
444
+ closeFingerprintDb,
445
+ reloadFingerprints,
446
+ };
447
+ export default ModelRouter;
448
+ //# sourceMappingURL=model-router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-router.js","sourceRoot":"","sources":["../../src/memory/model-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,YAAY,EAA2B,MAAM,sBAAsB,CAAC;AAE7E,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAsCtC,MAAM,cAAc,GAAkB;IACpC,aAAa,EAAE,KAAK;IACpB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,YAAY,EAAE,MAAM;IACpB,eAAe,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,eAAe,CAAC;CAC5E,CAAC;AAEF,0EAA0E;AAC1E,MAAM,kBAAkB,GAAsC;IAC5D,SAAS,EAAE;QACT,EAAE,EAAE,SAAS;QACb,SAAS,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,CAAC;QAC9E,UAAU,EAAE,CAAC,oBAAoB,EAAE,cAAc,EAAE,iBAAiB,EAAE,mBAAmB,CAAC;QAC1F,YAAY,EAAE,KAAK;QACnB,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,KAAK;QAClB,aAAa,EAAE,QAAQ;QACvB,cAAc,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC;QAClD,aAAa,EAAE;YACb,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;YACrC,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;YACtC,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;YACxC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;YACvC,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;YACzC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;SACxC;KACF;IACD,SAAS,EAAE;QACT,EAAE,EAAE,SAAS;QACb,SAAS,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,CAAC;QACnF,UAAU,EAAE,CAAC,aAAa,EAAE,mBAAmB,CAAC;QAChD,YAAY,EAAE,KAAK;QACnB,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,KAAK;QAClB,aAAa,EAAE,MAAM;QACrB,cAAc,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC;QAC/D,aAAa,EAAE;YACb,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;YACrC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;YACvC,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;YACzC,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;YACxC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;YACvC,aAAa,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;YAC5C,yBAAyB,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;SACzD;KACF;IACD,iBAAiB,EAAE;QACjB,EAAE,EAAE,iBAAiB;QACrB,SAAS,EAAE,CAAC,UAAU,EAAE,mBAAmB,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,CAAC;QAC3F,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;QAC/B,YAAY,EAAE,KAAK;QACnB,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,IAAI;QACjB,aAAa,EAAE,MAAM;QACrB,cAAc,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC;QAC/D,aAAa,EAAE;YACb,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;YACvC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;YACrC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;YACvC,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;YACxC,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;YACzC,aAAa,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;YAC5C,yBAAyB,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;SACzD;KACF;IACD,eAAe,EAAE;QACf,EAAE,EAAE,eAAe;QACnB,SAAS,EAAE,CAAC,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,kBAAkB,CAAC;QACxF,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,CAAC;QACjD,YAAY,EAAE,MAAM;QACpB,WAAW,EAAE,GAAG;QAChB,WAAW,EAAE,IAAI;QACjB,aAAa,EAAE,MAAM;QACrB,cAAc,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;QACrC,aAAa,EAAE;YACb,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;YACrC,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;YACtC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;YACvC,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;SAC1C;KACF;CACF,CAAC;AAEF,MAAM,eAAe,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAExD,+CAA+C;AAC/C,IAAI,aAAa,GAA6B,IAAI,CAAC;AAEnD,SAAS,gBAAgB;IACvB,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC;IAExC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAC;IAC1D,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,SAAS,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;IACpD,aAAa,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrC,aAAa,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAE3C,gBAAgB;IAChB,aAAa,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;GAmBlB,CAAC,CAAC;IAEH,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB;IAChC,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAAC;QAE9B,sBAAsB;QACtB,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,GAAG,EAIjE,CAAC;QAEH,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,EAAE,GAAG,kBAAkB,CAAC,MAAM,CAAC,QAAmB,CAAC,CAAC;YAC1D,IAAI,EAAE,EAAE,CAAC;gBACP,kEAAkE;gBAClE,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,YAAY,GAAG,GAAG,GAAG,MAAM,CAAC,cAAc,GAAG,GAAG,CAAC;gBACtE,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW,GAAG,GAAG,GAAG,MAAM,CAAC,YAAY,GAAG,GAAG,CAAC;YACpE,CAAC;QACH,CAAC;QAED,sBAAsB;QACtB,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,GAAG,EAKjE,CAAC;QAEH,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,MAAM,EAAE,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAmB,CAAC,CAAC;YACvD,IAAI,EAAE,EAAE,CAAC;gBACP,IAAI,CAAC,EAAE,CAAC,aAAa;oBAAE,EAAE,CAAC,aAAa,GAAG,EAAE,CAAC;gBAC7C,4BAA4B;gBAC5B,MAAM,QAAQ,GAAG,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;gBACjF,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG;oBAC/B,QAAQ,EAAE,QAAQ,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ;oBAC1C,SAAS,EAAE,QAAQ,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS;iBAC9C,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,iDAAiD;QACjD,OAAO,CAAC,IAAI,CAAC,wCAAwC,EAAE,GAAG,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,wBAAwB,CAAC,OAAgB;IAChD,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAAC;QAC9B,MAAM,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,EAAE;YAAE,OAAO;QAEhB,EAAE,CAAC,OAAO,CAAC;;;KAGV,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,OAAgB,EAAE,QAAgB;IAC9D,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAAC;QAC9B,MAAM,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,EAAE,EAAE,aAAa,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,EAAE,CAAC,OAAO,CAAC;;;KAGV,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACzE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED,4BAA4B;AAC5B,yBAAyB,EAAE,CAAC;AAE5B;;GAEG;AACH,MAAM,gBAAgB,GAIjB;IACH,iCAAiC,EAAE;QACjC,MAAM,EAAE,aAAa;QACrB,OAAO,EAAE,mDAAmD;QAC5D,aAAa,EAAE,SAAS;KACzB;IACD,iBAAiB,EAAE;QACjB,MAAM,EAAE,gBAAgB;QACxB,aAAa,EAAE,SAAS;KACzB;IACD,0BAA0B,EAAE;QAC1B,MAAM,EAAE,gBAAgB;QACxB,aAAa,EAAE,SAAS;KACzB;CACF,CAAC;AAEF;;;GAGG;AACH,SAAS,UAAU,CACjB,KAAuB,EACvB,cAAkC,EAClC,UAAsC,EACtC,MAAqB;IAErB,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,gEAAgE;IAChE,IAAI,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3D,KAAK,IAAI,EAAE,CAAC,CAAC,oBAAoB;IACnC,CAAC;IAED,mBAAmB;IACnB,IAAI,eAAe,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;QACxE,KAAK,IAAI,EAAE,CAAC;IACd,CAAC;SAAM,CAAC;QACN,KAAK,IAAI,EAAE,CAAC,CAAC,8CAA8C;IAC7D,CAAC;IAED,0EAA0E;IAC1E,oFAAoF;IACpF,MAAM,YAAY,GAAG,sBAAsB,CAAC,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC5E,MAAM,gBAAgB,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC;IAEvF,IAAI,oBAA4B,CAAC;IACjC,IAAI,YAAY,KAAK,IAAI,IAAI,gBAAgB,IAAI,CAAC,EAAE,CAAC;QACnD,sEAAsE;QACtE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,+BAA+B;QACtF,oBAAoB,GAAG,YAAY,GAAG,UAAU,GAAG,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;QACxF,0CAA0C;QAC1C,KAAK,IAAI,EAAE,CAAC;IACd,CAAC;SAAM,CAAC;QACN,oBAAoB,GAAG,KAAK,CAAC,WAAW,CAAC;IAC3C,CAAC;IAED,iDAAiD;IACjD,KAAK,IAAI,oBAAoB,GAAG,EAAE,CAAC;IAEnC,mCAAmC;IACnC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC;QACpE,KAAK,IAAI,YAAY,GAAG,EAAE,CAAC;IAC7B,CAAC;IAED,4BAA4B;IAC5B,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAC1B,KAAK,IAAI,oBAAoB,GAAG,EAAE,CAAC;IACrC,CAAC;IAED,kBAAkB;IAClB,IAAI,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;QAC9C,KAAK,IAAI,EAAE,CAAC;IACd,CAAC;IAED,qBAAqB;IACrB,IAAI,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QAC7C,KAAK,IAAI,EAAE,CAAC;IACd,CAAC;IAED,wDAAwD;IACxD,MAAM,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IACvE,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACvC,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YAC5E,KAAK,IAAI,CAAC,CAAC,CAAC,mBAAmB;QACjC,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,sBAAsB,CAAC,KAAuB,EAAE,QAAgB;IACvE,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,OAAO,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CACvB,WAAmB,EACnB,aAAyC,QAAQ,EACjD,SAAiC,EAAE;IAEnC,MAAM,GAAG,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;IAC7C,MAAM,cAAc,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IAEjD,6BAA6B;IAC7B,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe;SAC/B,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;SACpC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACV,EAAE;QACF,WAAW,EAAE,kBAAkB,CAAC,EAAE,CAAC;QACnC,KAAK,EAAE,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,CAAC;KAC3E,CAAC,CAAC;SACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAErC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,CAAC,iBAAiB,CAAC;YAC7B,MAAM,EAAE,oDAAoD;YAC5D,kBAAkB,EAAE,KAAK;YACzB,oBAAoB,EAAE,KAAK;YAC3B,aAAa,EAAE,KAAK;SACrB,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1B,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAEjD,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,EAAE;QACnB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,iBAAiB,cAAc,CAAC,QAAQ,IAAI,UAAU,iBAAiB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;QACvH,kBAAkB,EAAE,OAAO,CAAC,WAAW,CAAC,YAAY;QACpD,oBAAoB,EAAE,OAAO,CAAC,WAAW,CAAC,WAAW;QACrD,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC,WAAW;KAC/C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAgB,EAAE,SAAiB;IACnE,OAAO,gBAAgB,CAAC,GAAG,OAAO,IAAI,SAAS,EAAE,CAAC,IAAI,IAAI,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO,kBAAkB,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO,EAAE,GAAG,kBAAkB,EAAE,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAAgB,EAChB,OAAwF;IAExF,MAAM,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,CAAC,EAAE;QAAE,OAAO;IAEhB,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACvC,6BAA6B;QAC7B,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,YAAY,GAAG,GAAG,GAAG,OAAO,CAAC,YAAY,GAAG,GAAG,CAAC;IACvE,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACtC,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW,GAAG,GAAG,GAAG,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC;IACpE,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACtC,EAAE,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IACvC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAgB,EAChB,OAAgB,EAChB,SAAiB,EACjB,YAAqB;IAErB,MAAM,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,CAAC,EAAE;QAAE,OAAO;IAEhB,8DAA8D;IAC9D,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAC3C,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW,GAAG,GAAG,GAAG,cAAc,GAAG,GAAG,CAAC;IAE7D,kDAAkD;IAClD,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,YAAY,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,CAAC;IAE1D,2CAA2C;IAC3C,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAElC,iDAAiD;IACjD,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC,EAAE,CAAC,aAAa;YAAE,EAAE,CAAC,aAAa,GAAG,EAAE,CAAC;QAC7C,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;YACpC,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QACjE,CAAC;QACD,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC1C,IAAI,OAAO,EAAE,CAAC;YACZ,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC;QAC7C,CAAC;QAED,gCAAgC;QAChC,oBAAoB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,WAAmB,EAAE,aAAyC,QAAQ;IACnG,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAEzD,MAAM,KAAK,GAAG;QACZ,kBAAkB,QAAQ,CAAC,OAAO,EAAE;QACpC,WAAW,QAAQ,CAAC,MAAM,EAAE;QAC5B,qBAAqB,CAAC,QAAQ,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;QACvE,qBAAqB,CAAC,QAAQ,CAAC,oBAAoB,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;QACxE,cAAc,WAAW,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE;QACtE,cAAc,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,EAAE;KACzD,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,IAAI,aAAa,EAAE,CAAC;QAClB,aAAa,CAAC,KAAK,EAAE,CAAC;QACtB,aAAa,GAAG,IAAI,CAAC;IACvB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,yBAAyB,EAAE,CAAC;AAC9B,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,SAAS;IACT,iBAAiB;IACjB,mBAAmB;IACnB,uBAAuB;IACvB,sBAAsB;IACtB,iBAAiB;IACjB,cAAc;IACd,kBAAkB;IAClB,kBAAkB;CACnB,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Multi-View Memory System for UAP
3
+ *
4
+ * Implements:
5
+ * 1. Multi-view indexing (entity, temporal, semantic type views)
6
+ * 2. ENGRAM-style memory typing (episodic, semantic, procedural)
7
+ * 3. Async embedding generation
8
+ * 4. Speculative cache integration with task classifier
9
+ *
10
+ * Based on SimpleMem (2026) and ENGRAM (2025) research
11
+ */
12
+ /**
13
+ * ENGRAM-style memory types
14
+ */
15
+ export type ENGRAMMemoryType = 'episodic' | 'semantic' | 'procedural';
16
+ /**
17
+ * Multi-view indexed memory entry
18
+ */
19
+ export interface MultiViewMemory {
20
+ id: string;
21
+ content: string;
22
+ memoryType: ENGRAMMemoryType;
23
+ entities: string[];
24
+ temporalBucket: string;
25
+ semanticType: string;
26
+ embedding?: number[];
27
+ embeddingPending?: boolean;
28
+ importance: number;
29
+ accessCount: number;
30
+ lastAccessed: Date;
31
+ qualityScore: number;
32
+ }
33
+ /**
34
+ * Multi-view index structure
35
+ */
36
+ export interface MultiViewIndex {
37
+ byEntity: Map<string, Set<string>>;
38
+ byTemporal: Map<string, Set<string>>;
39
+ bySemanticType: Map<string, Set<string>>;
40
+ byENGRAMType: Map<ENGRAMMemoryType, Set<string>>;
41
+ }
42
+ /**
43
+ * Classify memory into ENGRAM type
44
+ */
45
+ export declare function classifyENGRAMType(content: string, context?: {
46
+ type?: string;
47
+ }): ENGRAMMemoryType;
48
+ /**
49
+ * Extract temporal bucket from content/timestamp
50
+ */
51
+ export declare function extractTemporalBucket(content: string, timestamp?: string): string;
52
+ /**
53
+ * Multi-View Memory Manager
54
+ */
55
+ export declare class MultiViewMemoryManager {
56
+ private memories;
57
+ private index;
58
+ private embeddingQueue;
59
+ private isProcessingEmbeddings;
60
+ /**
61
+ * Add memory with multi-view indexing
62
+ */
63
+ add(content: string, options?: {
64
+ id?: string;
65
+ semanticType?: string;
66
+ entities?: string[];
67
+ timestamp?: string;
68
+ importance?: number;
69
+ generateEmbedding?: boolean;
70
+ }): Promise<MultiViewMemory>;
71
+ /**
72
+ * Index memory in all views
73
+ */
74
+ private indexMemory;
75
+ /**
76
+ * Query by entity
77
+ */
78
+ queryByEntity(entity: string): MultiViewMemory[];
79
+ /**
80
+ * Query by ENGRAM type
81
+ */
82
+ queryByENGRAMType(type: ENGRAMMemoryType): MultiViewMemory[];
83
+ /**
84
+ * Query by temporal bucket
85
+ */
86
+ queryByTemporal(bucket: string): MultiViewMemory[];
87
+ /**
88
+ * Smart query using task classification to select best view
89
+ */
90
+ smartQuery(query: string, limit?: number): Promise<MultiViewMemory[]>;
91
+ /**
92
+ * Get retrieval strategy based on task classification
93
+ */
94
+ private getRetrievalStrategy;
95
+ /**
96
+ * Execute a single strategy step
97
+ */
98
+ private executeStrategyStep;
99
+ /**
100
+ * Semantic search using embeddings
101
+ */
102
+ semanticSearch(query: string, limit?: number): Promise<MultiViewMemory[]>;
103
+ /**
104
+ * Process embedding queue asynchronously
105
+ */
106
+ private processEmbeddingQueue;
107
+ /**
108
+ * Extract entities from content
109
+ */
110
+ private extractEntities;
111
+ /**
112
+ * Record memory access
113
+ */
114
+ recordAccess(memoryId: string): void;
115
+ /**
116
+ * Get statistics
117
+ */
118
+ getStats(): {
119
+ totalMemories: number;
120
+ byENGRAMType: Record<ENGRAMMemoryType, number>;
121
+ pendingEmbeddings: number;
122
+ entitiesIndexed: number;
123
+ };
124
+ /**
125
+ * Export all memories
126
+ */
127
+ export(): MultiViewMemory[];
128
+ /**
129
+ * Import memories
130
+ */
131
+ import(memories: MultiViewMemory[]): Promise<void>;
132
+ }
133
+ export declare function getMultiViewMemoryManager(): MultiViewMemoryManager;
134
+ //# sourceMappingURL=multi-view-memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-view-memory.d.ts","sourceRoot":"","sources":["../../src/memory/multi-view-memory.ts"],"names":[],"mappings":"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"}