agent-nuvira 1.14.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 (379) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +891 -0
  3. package/dist/agent-sdk/src/agent.d.ts +118 -0
  4. package/dist/agent-sdk/src/agent.d.ts.map +1 -0
  5. package/dist/agent-sdk/src/agent.js +88 -0
  6. package/dist/agent-sdk/src/agent.js.map +1 -0
  7. package/dist/agent-sdk/src/index.d.ts +33 -0
  8. package/dist/agent-sdk/src/index.d.ts.map +1 -0
  9. package/dist/agent-sdk/src/index.js +32 -0
  10. package/dist/agent-sdk/src/index.js.map +1 -0
  11. package/dist/agent-sdk/src/register.d.ts +70 -0
  12. package/dist/agent-sdk/src/register.d.ts.map +1 -0
  13. package/dist/agent-sdk/src/register.js +181 -0
  14. package/dist/agent-sdk/src/register.js.map +1 -0
  15. package/dist/agent-sdk/src/scaffold.d.ts +50 -0
  16. package/dist/agent-sdk/src/scaffold.d.ts.map +1 -0
  17. package/dist/agent-sdk/src/scaffold.js +291 -0
  18. package/dist/agent-sdk/src/scaffold.js.map +1 -0
  19. package/dist/agent-sdk/src/testing.d.ts +187 -0
  20. package/dist/agent-sdk/src/testing.d.ts.map +1 -0
  21. package/dist/agent-sdk/src/testing.js +243 -0
  22. package/dist/agent-sdk/src/testing.js.map +1 -0
  23. package/dist/agent-sdk/src/types.d.ts +202 -0
  24. package/dist/agent-sdk/src/types.d.ts.map +1 -0
  25. package/dist/agent-sdk/src/types.js +11 -0
  26. package/dist/agent-sdk/src/types.js.map +1 -0
  27. package/dist/agents/agent.d.ts +132 -0
  28. package/dist/agents/agent.d.ts.map +1 -0
  29. package/dist/agents/agent.js +19 -0
  30. package/dist/agents/agent.js.map +1 -0
  31. package/dist/agents/agents/context-gatherer.d.ts +42 -0
  32. package/dist/agents/agents/context-gatherer.d.ts.map +1 -0
  33. package/dist/agents/agents/context-gatherer.js +366 -0
  34. package/dist/agents/agents/context-gatherer.js.map +1 -0
  35. package/dist/agents/agents/debugger.d.ts +58 -0
  36. package/dist/agents/agents/debugger.d.ts.map +1 -0
  37. package/dist/agents/agents/debugger.js +257 -0
  38. package/dist/agents/agents/debugger.js.map +1 -0
  39. package/dist/agents/agents/git-agent.d.ts +34 -0
  40. package/dist/agents/agents/git-agent.d.ts.map +1 -0
  41. package/dist/agents/agents/git-agent.js +200 -0
  42. package/dist/agents/agents/git-agent.js.map +1 -0
  43. package/dist/agents/agents/github-release-agent.d.ts +65 -0
  44. package/dist/agents/agents/github-release-agent.d.ts.map +1 -0
  45. package/dist/agents/agents/github-release-agent.js +439 -0
  46. package/dist/agents/agents/github-release-agent.js.map +1 -0
  47. package/dist/agents/agents/package-agent.d.ts +33 -0
  48. package/dist/agents/agents/package-agent.d.ts.map +1 -0
  49. package/dist/agents/agents/package-agent.js +233 -0
  50. package/dist/agents/agents/package-agent.js.map +1 -0
  51. package/dist/agents/agents/planner.d.ts +26 -0
  52. package/dist/agents/agents/planner.d.ts.map +1 -0
  53. package/dist/agents/agents/planner.js +222 -0
  54. package/dist/agents/agents/planner.js.map +1 -0
  55. package/dist/agents/agents/reviewer.d.ts +34 -0
  56. package/dist/agents/agents/reviewer.d.ts.map +1 -0
  57. package/dist/agents/agents/reviewer.js +159 -0
  58. package/dist/agents/agents/reviewer.js.map +1 -0
  59. package/dist/agents/agents/runner.d.ts +73 -0
  60. package/dist/agents/agents/runner.d.ts.map +1 -0
  61. package/dist/agents/agents/runner.js +299 -0
  62. package/dist/agents/agents/runner.js.map +1 -0
  63. package/dist/agents/agents/security-agent.d.ts +33 -0
  64. package/dist/agents/agents/security-agent.d.ts.map +1 -0
  65. package/dist/agents/agents/security-agent.js +184 -0
  66. package/dist/agents/agents/security-agent.js.map +1 -0
  67. package/dist/agents/agents/tester.d.ts +96 -0
  68. package/dist/agents/agents/tester.d.ts.map +1 -0
  69. package/dist/agents/agents/tester.js +410 -0
  70. package/dist/agents/agents/tester.js.map +1 -0
  71. package/dist/agents/agents/writer.d.ts +51 -0
  72. package/dist/agents/agents/writer.d.ts.map +1 -0
  73. package/dist/agents/agents/writer.js +384 -0
  74. package/dist/agents/agents/writer.js.map +1 -0
  75. package/dist/agents/context-vault.d.ts +49 -0
  76. package/dist/agents/context-vault.d.ts.map +1 -0
  77. package/dist/agents/context-vault.js +134 -0
  78. package/dist/agents/context-vault.js.map +1 -0
  79. package/dist/agents/orchestrator.d.ts +97 -0
  80. package/dist/agents/orchestrator.d.ts.map +1 -0
  81. package/dist/agents/orchestrator.js +696 -0
  82. package/dist/agents/orchestrator.js.map +1 -0
  83. package/dist/agents/utils/file-tree.d.ts +28 -0
  84. package/dist/agents/utils/file-tree.d.ts.map +1 -0
  85. package/dist/agents/utils/file-tree.js +93 -0
  86. package/dist/agents/utils/file-tree.js.map +1 -0
  87. package/dist/cli/agent.d.ts +25 -0
  88. package/dist/cli/agent.d.ts.map +1 -0
  89. package/dist/cli/agent.js +374 -0
  90. package/dist/cli/agent.js.map +1 -0
  91. package/dist/cli/benchmark.d.ts +24 -0
  92. package/dist/cli/benchmark.d.ts.map +1 -0
  93. package/dist/cli/benchmark.js +235 -0
  94. package/dist/cli/benchmark.js.map +1 -0
  95. package/dist/cli/cache.d.ts +12 -0
  96. package/dist/cli/cache.d.ts.map +1 -0
  97. package/dist/cli/cache.js +58 -0
  98. package/dist/cli/cache.js.map +1 -0
  99. package/dist/cli/chat.d.ts +37 -0
  100. package/dist/cli/chat.d.ts.map +1 -0
  101. package/dist/cli/chat.js +393 -0
  102. package/dist/cli/chat.js.map +1 -0
  103. package/dist/cli/commands.d.ts +24 -0
  104. package/dist/cli/commands.d.ts.map +1 -0
  105. package/dist/cli/commands.js +18 -0
  106. package/dist/cli/commands.js.map +1 -0
  107. package/dist/cli/config.d.ts +19 -0
  108. package/dist/cli/config.d.ts.map +1 -0
  109. package/dist/cli/config.js +162 -0
  110. package/dist/cli/config.js.map +1 -0
  111. package/dist/cli/dashboard.d.ts +34 -0
  112. package/dist/cli/dashboard.d.ts.map +1 -0
  113. package/dist/cli/dashboard.js +126 -0
  114. package/dist/cli/dashboard.js.map +1 -0
  115. package/dist/cli/doctor.d.ts +68 -0
  116. package/dist/cli/doctor.d.ts.map +1 -0
  117. package/dist/cli/doctor.js +585 -0
  118. package/dist/cli/doctor.js.map +1 -0
  119. package/dist/cli/edit.d.ts +11 -0
  120. package/dist/cli/edit.d.ts.map +1 -0
  121. package/dist/cli/edit.js +86 -0
  122. package/dist/cli/edit.js.map +1 -0
  123. package/dist/cli/execute.d.ts +25 -0
  124. package/dist/cli/execute.d.ts.map +1 -0
  125. package/dist/cli/execute.js +186 -0
  126. package/dist/cli/execute.js.map +1 -0
  127. package/dist/cli/federation.d.ts +31 -0
  128. package/dist/cli/federation.d.ts.map +1 -0
  129. package/dist/cli/federation.js +387 -0
  130. package/dist/cli/federation.js.map +1 -0
  131. package/dist/cli/history.d.ts +22 -0
  132. package/dist/cli/history.d.ts.map +1 -0
  133. package/dist/cli/history.js +140 -0
  134. package/dist/cli/history.js.map +1 -0
  135. package/dist/cli/init.d.ts +49 -0
  136. package/dist/cli/init.d.ts.map +1 -0
  137. package/dist/cli/init.js +423 -0
  138. package/dist/cli/init.js.map +1 -0
  139. package/dist/cli/learn.d.ts +31 -0
  140. package/dist/cli/learn.d.ts.map +1 -0
  141. package/dist/cli/learn.js +320 -0
  142. package/dist/cli/learn.js.map +1 -0
  143. package/dist/cli/memory.d.ts +38 -0
  144. package/dist/cli/memory.d.ts.map +1 -0
  145. package/dist/cli/memory.js +295 -0
  146. package/dist/cli/memory.js.map +1 -0
  147. package/dist/cli/model-picker.d.ts +18 -0
  148. package/dist/cli/model-picker.d.ts.map +1 -0
  149. package/dist/cli/model-picker.js +225 -0
  150. package/dist/cli/model-picker.js.map +1 -0
  151. package/dist/cli/models.d.ts +11 -0
  152. package/dist/cli/models.d.ts.map +1 -0
  153. package/dist/cli/models.js +132 -0
  154. package/dist/cli/models.js.map +1 -0
  155. package/dist/cli/plan.d.ts +11 -0
  156. package/dist/cli/plan.d.ts.map +1 -0
  157. package/dist/cli/plan.js +94 -0
  158. package/dist/cli/plan.js.map +1 -0
  159. package/dist/cli/plugins.d.ts +15 -0
  160. package/dist/cli/plugins.d.ts.map +1 -0
  161. package/dist/cli/plugins.js +123 -0
  162. package/dist/cli/plugins.js.map +1 -0
  163. package/dist/cli/router.d.ts +20 -0
  164. package/dist/cli/router.d.ts.map +1 -0
  165. package/dist/cli/router.js +142 -0
  166. package/dist/cli/router.js.map +1 -0
  167. package/dist/cli/run.d.ts +22 -0
  168. package/dist/cli/run.d.ts.map +1 -0
  169. package/dist/cli/run.js +110 -0
  170. package/dist/cli/run.js.map +1 -0
  171. package/dist/cli/sandbox.d.ts +27 -0
  172. package/dist/cli/sandbox.d.ts.map +1 -0
  173. package/dist/cli/sandbox.js +264 -0
  174. package/dist/cli/sandbox.js.map +1 -0
  175. package/dist/cli/sdk.d.ts +27 -0
  176. package/dist/cli/sdk.d.ts.map +1 -0
  177. package/dist/cli/sdk.js +204 -0
  178. package/dist/cli/sdk.js.map +1 -0
  179. package/dist/cli/stats.d.ts +18 -0
  180. package/dist/cli/stats.d.ts.map +1 -0
  181. package/dist/cli/stats.js +78 -0
  182. package/dist/cli/stats.js.map +1 -0
  183. package/dist/cli/team.d.ts +42 -0
  184. package/dist/cli/team.d.ts.map +1 -0
  185. package/dist/cli/team.js +473 -0
  186. package/dist/cli/team.js.map +1 -0
  187. package/dist/cli/workflow.d.ts +27 -0
  188. package/dist/cli/workflow.d.ts.map +1 -0
  189. package/dist/cli/workflow.js +347 -0
  190. package/dist/cli/workflow.js.map +1 -0
  191. package/dist/config/manager.d.ts +37 -0
  192. package/dist/config/manager.d.ts.map +1 -0
  193. package/dist/config/manager.js +147 -0
  194. package/dist/config/manager.js.map +1 -0
  195. package/dist/config/types.d.ts +53 -0
  196. package/dist/config/types.d.ts.map +1 -0
  197. package/dist/config/types.js +2 -0
  198. package/dist/config/types.js.map +1 -0
  199. package/dist/context/cache.d.ts +27 -0
  200. package/dist/context/cache.d.ts.map +1 -0
  201. package/dist/context/cache.js +116 -0
  202. package/dist/context/cache.js.map +1 -0
  203. package/dist/context/history.d.ts +87 -0
  204. package/dist/context/history.d.ts.map +1 -0
  205. package/dist/context/history.js +249 -0
  206. package/dist/context/history.js.map +1 -0
  207. package/dist/context/parser.d.ts +61 -0
  208. package/dist/context/parser.d.ts.map +1 -0
  209. package/dist/context/parser.js +194 -0
  210. package/dist/context/parser.js.map +1 -0
  211. package/dist/federation/client.d.ts +49 -0
  212. package/dist/federation/client.d.ts.map +1 -0
  213. package/dist/federation/client.js +239 -0
  214. package/dist/federation/client.js.map +1 -0
  215. package/dist/federation/protocol.d.ts +155 -0
  216. package/dist/federation/protocol.d.ts.map +1 -0
  217. package/dist/federation/protocol.js +57 -0
  218. package/dist/federation/protocol.js.map +1 -0
  219. package/dist/federation/server.d.ts +25 -0
  220. package/dist/federation/server.d.ts.map +1 -0
  221. package/dist/federation/server.js +401 -0
  222. package/dist/federation/server.js.map +1 -0
  223. package/dist/index.d.ts +67 -0
  224. package/dist/index.d.ts.map +1 -0
  225. package/dist/index.js +93 -0
  226. package/dist/index.js.map +1 -0
  227. package/dist/inference/factory.d.ts +20 -0
  228. package/dist/inference/factory.d.ts.map +1 -0
  229. package/dist/inference/factory.js +46 -0
  230. package/dist/inference/factory.js.map +1 -0
  231. package/dist/inference/gemini-adapter.d.ts +17 -0
  232. package/dist/inference/gemini-adapter.d.ts.map +1 -0
  233. package/dist/inference/gemini-adapter.js +176 -0
  234. package/dist/inference/gemini-adapter.js.map +1 -0
  235. package/dist/inference/groq-adapter.d.ts +17 -0
  236. package/dist/inference/groq-adapter.d.ts.map +1 -0
  237. package/dist/inference/groq-adapter.js +103 -0
  238. package/dist/inference/groq-adapter.js.map +1 -0
  239. package/dist/inference/interface.d.ts +49 -0
  240. package/dist/inference/interface.d.ts.map +1 -0
  241. package/dist/inference/interface.js +2 -0
  242. package/dist/inference/interface.js.map +1 -0
  243. package/dist/inference/local-adapter.d.ts +35 -0
  244. package/dist/inference/local-adapter.d.ts.map +1 -0
  245. package/dist/inference/local-adapter.js +311 -0
  246. package/dist/inference/local-adapter.js.map +1 -0
  247. package/dist/inference/model-catalog.d.ts +53 -0
  248. package/dist/inference/model-catalog.d.ts.map +1 -0
  249. package/dist/inference/model-catalog.js +306 -0
  250. package/dist/inference/model-catalog.js.map +1 -0
  251. package/dist/inference/nim-adapter.d.ts +17 -0
  252. package/dist/inference/nim-adapter.d.ts.map +1 -0
  253. package/dist/inference/nim-adapter.js +103 -0
  254. package/dist/inference/nim-adapter.js.map +1 -0
  255. package/dist/inference/openrouter-adapter.d.ts +17 -0
  256. package/dist/inference/openrouter-adapter.d.ts.map +1 -0
  257. package/dist/inference/openrouter-adapter.js +105 -0
  258. package/dist/inference/openrouter-adapter.js.map +1 -0
  259. package/dist/inference/sse.d.ts +20 -0
  260. package/dist/inference/sse.d.ts.map +1 -0
  261. package/dist/inference/sse.js +91 -0
  262. package/dist/inference/sse.js.map +1 -0
  263. package/dist/learning/agent-stats.d.ts +109 -0
  264. package/dist/learning/agent-stats.d.ts.map +1 -0
  265. package/dist/learning/agent-stats.js +240 -0
  266. package/dist/learning/agent-stats.js.map +1 -0
  267. package/dist/learning/benchmark.d.ts +161 -0
  268. package/dist/learning/benchmark.d.ts.map +1 -0
  269. package/dist/learning/benchmark.js +589 -0
  270. package/dist/learning/benchmark.js.map +1 -0
  271. package/dist/learning/cost-tracker.d.ts +101 -0
  272. package/dist/learning/cost-tracker.d.ts.map +1 -0
  273. package/dist/learning/cost-tracker.js +224 -0
  274. package/dist/learning/cost-tracker.js.map +1 -0
  275. package/dist/learning/feedback.d.ts +88 -0
  276. package/dist/learning/feedback.d.ts.map +1 -0
  277. package/dist/learning/feedback.js +169 -0
  278. package/dist/learning/feedback.js.map +1 -0
  279. package/dist/learning/hybrid-router.d.ts +201 -0
  280. package/dist/learning/hybrid-router.d.ts.map +1 -0
  281. package/dist/learning/hybrid-router.js +450 -0
  282. package/dist/learning/hybrid-router.js.map +1 -0
  283. package/dist/learning/model-compare.d.ts +76 -0
  284. package/dist/learning/model-compare.d.ts.map +1 -0
  285. package/dist/learning/model-compare.js +252 -0
  286. package/dist/learning/model-compare.js.map +1 -0
  287. package/dist/learning/model-router.d.ts +68 -0
  288. package/dist/learning/model-router.d.ts.map +1 -0
  289. package/dist/learning/model-router.js +140 -0
  290. package/dist/learning/model-router.js.map +1 -0
  291. package/dist/learning/pattern-extractor.d.ts +99 -0
  292. package/dist/learning/pattern-extractor.d.ts.map +1 -0
  293. package/dist/learning/pattern-extractor.js +310 -0
  294. package/dist/learning/pattern-extractor.js.map +1 -0
  295. package/dist/learning/scorer.d.ts +51 -0
  296. package/dist/learning/scorer.d.ts.map +1 -0
  297. package/dist/learning/scorer.js +64 -0
  298. package/dist/learning/scorer.js.map +1 -0
  299. package/dist/learning/self-improver.d.ts +48 -0
  300. package/dist/learning/self-improver.d.ts.map +1 -0
  301. package/dist/learning/self-improver.js +161 -0
  302. package/dist/learning/self-improver.js.map +1 -0
  303. package/dist/memory/embedder.d.ts +65 -0
  304. package/dist/memory/embedder.d.ts.map +1 -0
  305. package/dist/memory/embedder.js +424 -0
  306. package/dist/memory/embedder.js.map +1 -0
  307. package/dist/memory/memory-integration.d.ts +56 -0
  308. package/dist/memory/memory-integration.d.ts.map +1 -0
  309. package/dist/memory/memory-integration.js +95 -0
  310. package/dist/memory/memory-integration.js.map +1 -0
  311. package/dist/memory/trajectory-store.d.ts +149 -0
  312. package/dist/memory/trajectory-store.d.ts.map +1 -0
  313. package/dist/memory/trajectory-store.js +476 -0
  314. package/dist/memory/trajectory-store.js.map +1 -0
  315. package/dist/memory/vector-store.d.ts +78 -0
  316. package/dist/memory/vector-store.d.ts.map +1 -0
  317. package/dist/memory/vector-store.js +186 -0
  318. package/dist/memory/vector-store.js.map +1 -0
  319. package/dist/plugins/agent-plugin.d.ts +73 -0
  320. package/dist/plugins/agent-plugin.d.ts.map +1 -0
  321. package/dist/plugins/agent-plugin.js +199 -0
  322. package/dist/plugins/agent-plugin.js.map +1 -0
  323. package/dist/plugins/registry.d.ts +61 -0
  324. package/dist/plugins/registry.d.ts.map +1 -0
  325. package/dist/plugins/registry.js +67 -0
  326. package/dist/plugins/registry.js.map +1 -0
  327. package/dist/sandbox/images.d.ts +31 -0
  328. package/dist/sandbox/images.d.ts.map +1 -0
  329. package/dist/sandbox/images.js +129 -0
  330. package/dist/sandbox/images.js.map +1 -0
  331. package/dist/sandbox/manager.d.ts +134 -0
  332. package/dist/sandbox/manager.d.ts.map +1 -0
  333. package/dist/sandbox/manager.js +470 -0
  334. package/dist/sandbox/manager.js.map +1 -0
  335. package/dist/sandbox/types.d.ts +113 -0
  336. package/dist/sandbox/types.d.ts.map +1 -0
  337. package/dist/sandbox/types.js +107 -0
  338. package/dist/sandbox/types.js.map +1 -0
  339. package/dist/security/scanner.d.ts +53 -0
  340. package/dist/security/scanner.d.ts.map +1 -0
  341. package/dist/security/scanner.js +271 -0
  342. package/dist/security/scanner.js.map +1 -0
  343. package/dist/team/config.d.ts +50 -0
  344. package/dist/team/config.d.ts.map +1 -0
  345. package/dist/team/config.js +108 -0
  346. package/dist/team/config.js.map +1 -0
  347. package/dist/team/memory.d.ts +63 -0
  348. package/dist/team/memory.d.ts.map +1 -0
  349. package/dist/team/memory.js +282 -0
  350. package/dist/team/memory.js.map +1 -0
  351. package/dist/team/review.d.ts +123 -0
  352. package/dist/team/review.d.ts.map +1 -0
  353. package/dist/team/review.js +293 -0
  354. package/dist/team/review.js.map +1 -0
  355. package/dist/utils/env.d.ts +19 -0
  356. package/dist/utils/env.d.ts.map +1 -0
  357. package/dist/utils/env.js +250 -0
  358. package/dist/utils/env.js.map +1 -0
  359. package/dist/utils/logger.d.ts +11 -0
  360. package/dist/utils/logger.d.ts.map +1 -0
  361. package/dist/utils/logger.js +45 -0
  362. package/dist/utils/logger.js.map +1 -0
  363. package/dist/web-dashboard/server.d.ts +59 -0
  364. package/dist/web-dashboard/server.d.ts.map +1 -0
  365. package/dist/web-dashboard/server.js +418 -0
  366. package/dist/web-dashboard/server.js.map +1 -0
  367. package/dist/workflow/registry.d.ts +127 -0
  368. package/dist/workflow/registry.d.ts.map +1 -0
  369. package/dist/workflow/registry.js +482 -0
  370. package/dist/workflow/registry.js.map +1 -0
  371. package/dist/workflow/templates.d.ts +93 -0
  372. package/dist/workflow/templates.d.ts.map +1 -0
  373. package/dist/workflow/templates.js +481 -0
  374. package/dist/workflow/templates.js.map +1 -0
  375. package/package.json +78 -0
  376. package/src/web-dashboard/public/assets/index-B08nDkSB.css +1 -0
  377. package/src/web-dashboard/public/assets/index-BKL8YOFD.js +135 -0
  378. package/src/web-dashboard/public/assets/index-BKL8YOFD.js.map +1 -0
  379. package/src/web-dashboard/public/index.html +13 -0
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Context cache for inference results.
3
+ * Uses a simple JSON file — no native dependencies, works everywhere.
4
+ */
5
+ export declare class InferenceCache {
6
+ /**
7
+ * Get cached response if available and not expired
8
+ */
9
+ get(prompt: string, model: string, provider: string): Promise<string | null>;
10
+ /**
11
+ * Store a response in the cache
12
+ */
13
+ set(prompt: string, response: string, model: string, provider: string, ttl?: number): Promise<void>;
14
+ /**
15
+ * Clear all cache entries
16
+ */
17
+ clear(): Promise<void>;
18
+ /**
19
+ * Get cache statistics
20
+ */
21
+ stats(): Promise<{
22
+ total: number;
23
+ providers: Record<string, number>;
24
+ }>;
25
+ }
26
+ export declare function getCache(): InferenceCache;
27
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/context/cache.ts"],"names":[],"mappings":"AAkEA;;;GAGG;AACH,qBAAa,cAAc;IACzB;;OAEG;IACG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAkBlF;;OAEG;IACG,GAAG,CACP,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,GAAG,GAAE,MAAa,GACjB,OAAO,CAAC,IAAI,CAAC;IAgBhB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;CAa7E;AAKD,wBAAgB,QAAQ,IAAI,cAAc,CAKzC"}
@@ -0,0 +1,116 @@
1
+ import { readFileSync, writeFileSync, mkdirSync, existsSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { homedir } from 'node:os';
4
+ import { createHash } from 'node:crypto';
5
+ const CACHE_DIR = join(homedir(), '.buff');
6
+ const CACHE_PATH = join(CACHE_DIR, 'cache.json');
7
+ function ensureDir() {
8
+ if (!existsSync(CACHE_DIR)) {
9
+ mkdirSync(CACHE_DIR, { recursive: true });
10
+ }
11
+ }
12
+ function readCache() {
13
+ try {
14
+ ensureDir();
15
+ if (!existsSync(CACHE_PATH)) {
16
+ return { entries: {} };
17
+ }
18
+ const raw = readFileSync(CACHE_PATH, 'utf-8');
19
+ return JSON.parse(raw);
20
+ }
21
+ catch {
22
+ return { entries: {} };
23
+ }
24
+ }
25
+ function writeCache(data) {
26
+ ensureDir();
27
+ writeFileSync(CACHE_PATH, JSON.stringify(data, null, 2), 'utf-8');
28
+ }
29
+ /**
30
+ * Remove expired entries from the cache data in-place
31
+ */
32
+ function pruneExpired(data) {
33
+ const now = Math.floor(Date.now() / 1000);
34
+ for (const [key, entry] of Object.entries(data.entries)) {
35
+ if (entry.createdAt + entry.ttl < now) {
36
+ delete data.entries[key];
37
+ }
38
+ }
39
+ }
40
+ /**
41
+ * Generate a cache key from the prompt and options
42
+ */
43
+ function generateKey(prompt, model, provider) {
44
+ const hash = createHash('sha256')
45
+ .update(`${provider}:${model}:${prompt}`)
46
+ .digest('hex');
47
+ return hash;
48
+ }
49
+ /**
50
+ * Context cache for inference results.
51
+ * Uses a simple JSON file — no native dependencies, works everywhere.
52
+ */
53
+ export class InferenceCache {
54
+ /**
55
+ * Get cached response if available and not expired
56
+ */
57
+ async get(prompt, model, provider) {
58
+ const data = readCache();
59
+ const key = generateKey(prompt, model, provider);
60
+ const entry = data.entries[key];
61
+ if (!entry)
62
+ return null;
63
+ const now = Math.floor(Date.now() / 1000);
64
+ if (entry.createdAt + entry.ttl < now) {
65
+ // Expired — remove it
66
+ delete data.entries[key];
67
+ writeCache(data);
68
+ return null;
69
+ }
70
+ return entry.response;
71
+ }
72
+ /**
73
+ * Store a response in the cache
74
+ */
75
+ async set(prompt, response, model, provider, ttl = 3600) {
76
+ const data = readCache();
77
+ pruneExpired(data); // Clean up expired entries before writing
78
+ const key = generateKey(prompt, model, provider);
79
+ data.entries[key] = {
80
+ response,
81
+ model,
82
+ provider,
83
+ createdAt: Math.floor(Date.now() / 1000),
84
+ ttl,
85
+ };
86
+ writeCache(data);
87
+ }
88
+ /**
89
+ * Clear all cache entries
90
+ */
91
+ async clear() {
92
+ writeCache({ entries: {} });
93
+ }
94
+ /**
95
+ * Get cache statistics
96
+ */
97
+ async stats() {
98
+ const data = readCache();
99
+ pruneExpired(data);
100
+ const total = Object.keys(data.entries).length;
101
+ const providers = {};
102
+ for (const entry of Object.values(data.entries)) {
103
+ providers[entry.provider] = (providers[entry.provider] || 0) + 1;
104
+ }
105
+ return { total, providers };
106
+ }
107
+ }
108
+ // Singleton instance
109
+ let cacheInstance = null;
110
+ export function getCache() {
111
+ if (!cacheInstance) {
112
+ cacheInstance = new InferenceCache();
113
+ }
114
+ return cacheInstance;
115
+ }
116
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/context/cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * ChatHistory — Stores and retrieves chat conversation history.
3
+ *
4
+ * History is stored in a JSON file at ~/.buff/memory/history.json
5
+ * and supports keyword search for retrieving past conversations.
6
+ *
7
+ * Features:
8
+ * - Store chat sessions with messages
9
+ * - Keyword search across all past conversations
10
+ * - Configurable retention period (default: 30 days)
11
+ * - Automatic cleanup of old entries
12
+ */
13
+ export interface HistoryMessage {
14
+ /** Role: 'user' or 'assistant' */
15
+ role: 'user' | 'assistant';
16
+ /** Message content */
17
+ content: string;
18
+ /** Timestamp when message was sent */
19
+ timestamp: number;
20
+ }
21
+ export interface HistorySession {
22
+ /** Unique session ID */
23
+ id: string;
24
+ /** Provider used */
25
+ provider: string;
26
+ /** Model used */
27
+ model: string;
28
+ /** When the session started */
29
+ startedAt: number;
30
+ /** When the session ended */
31
+ endedAt: number;
32
+ /** Messages in the session */
33
+ messages: HistoryMessage[];
34
+ /** Summary of the session (generated from first user message) */
35
+ summary: string;
36
+ /** Tags for categorizing sessions */
37
+ tags: string[];
38
+ }
39
+ /**
40
+ * Manages chat conversation history with search capabilities.
41
+ */
42
+ export declare class ChatHistory {
43
+ /**
44
+ * Store a completed chat session.
45
+ */
46
+ storeSession(messages: HistoryMessage[], provider: string, model: string): string;
47
+ /**
48
+ * Get a specific session by ID.
49
+ */
50
+ getSession(id: string): HistorySession | null;
51
+ /**
52
+ * Search sessions by keyword in message content.
53
+ * Performs case-insensitive substring matching on all messages.
54
+ *
55
+ * @param query Search keyword or phrase
56
+ * @param limit Maximum results to return
57
+ * @returns Matching sessions sorted by relevance
58
+ */
59
+ search(query: string, limit?: number): HistorySession[];
60
+ /**
61
+ * Get all sessions, sorted by recency.
62
+ */
63
+ getAllSessions(limit?: number): HistorySession[];
64
+ /**
65
+ * Get recent sessions (last N days).
66
+ */
67
+ getRecentSessions(days?: number): HistorySession[];
68
+ /**
69
+ * Get total number of stored sessions.
70
+ */
71
+ count(): number;
72
+ /**
73
+ * Clear all history.
74
+ */
75
+ clear(): void;
76
+ /**
77
+ * Delete sessions older than the specified retention period.
78
+ */
79
+ prune(retentionDays?: number): number;
80
+ /**
81
+ * Format a search result for display.
82
+ */
83
+ formatSessionSummary(session: HistorySession): string;
84
+ private pruneIfNeeded;
85
+ }
86
+ export declare function getChatHistory(): ChatHistory;
87
+ //# sourceMappingURL=history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/context/history.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAQH,MAAM,WAAW,cAAc;IAC7B,kCAAkC;IAClC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAwFD;;GAEG;AACH,qBAAa,WAAW;IACtB;;OAEG;IACH,YAAY,CACV,QAAQ,EAAE,cAAc,EAAE,EAC1B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,MAAM;IA2BT;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAK7C;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,cAAc,EAAE;IAyC3D;;OAEG;IACH,cAAc,CAAC,KAAK,GAAE,MAAW,GAAG,cAAc,EAAE;IAOpD;;OAEG;IACH,iBAAiB,CAAC,IAAI,GAAE,MAAU,GAAG,cAAc,EAAE;IAQrD;;OAEG;IACH,KAAK,IAAI,MAAM;IAKf;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,KAAK,CAAC,aAAa,GAAE,MAA+B,GAAG,MAAM;IAmB7D;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM;IAgBrD,OAAO,CAAC,aAAa;CActB;AAKD,wBAAgB,cAAc,IAAI,WAAW,CAK5C"}
@@ -0,0 +1,249 @@
1
+ /**
2
+ * ChatHistory — Stores and retrieves chat conversation history.
3
+ *
4
+ * History is stored in a JSON file at ~/.buff/memory/history.json
5
+ * and supports keyword search for retrieving past conversations.
6
+ *
7
+ * Features:
8
+ * - Store chat sessions with messages
9
+ * - Keyword search across all past conversations
10
+ * - Configurable retention period (default: 30 days)
11
+ * - Automatic cleanup of old entries
12
+ */
13
+ import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'node:fs';
14
+ import { join } from 'node:path';
15
+ import { homedir } from 'node:os';
16
+ // ─── Constants ──────────────────────────────────────────────────────────────
17
+ const MEMORY_DIR = join(homedir(), '.buff', 'memory');
18
+ const HISTORY_PATH = join(MEMORY_DIR, 'history.json');
19
+ const CURRENT_VERSION = 1;
20
+ /** Default retention period in days */
21
+ const DEFAULT_RETENTION_DAYS = 30;
22
+ /** Maximum sessions to keep */
23
+ const MAX_SESSIONS = 500;
24
+ // ─── Helpers ────────────────────────────────────────────────────────────────
25
+ function ensureDir() {
26
+ if (!existsSync(MEMORY_DIR)) {
27
+ mkdirSync(MEMORY_DIR, { recursive: true });
28
+ }
29
+ }
30
+ function readHistory() {
31
+ try {
32
+ ensureDir();
33
+ if (!existsSync(HISTORY_PATH)) {
34
+ return { sessions: {}, version: CURRENT_VERSION };
35
+ }
36
+ const raw = readFileSync(HISTORY_PATH, 'utf-8');
37
+ return JSON.parse(raw);
38
+ }
39
+ catch {
40
+ return { sessions: {}, version: CURRENT_VERSION };
41
+ }
42
+ }
43
+ function writeHistory(data) {
44
+ ensureDir();
45
+ writeFileSync(HISTORY_PATH, JSON.stringify(data, null, 2), 'utf-8');
46
+ }
47
+ function generateSessionId() {
48
+ return `session-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
49
+ }
50
+ /**
51
+ * Extract a summary from the first user message.
52
+ */
53
+ function generateSummary(messages) {
54
+ const firstUserMsg = messages.find((m) => m.role === 'user');
55
+ if (!firstUserMsg)
56
+ return 'Empty session';
57
+ const text = firstUserMsg.content.slice(0, 120);
58
+ return text.length < firstUserMsg.content.length ? text + '...' : text;
59
+ }
60
+ /**
61
+ * Extract tags from messages for better search.
62
+ * Simple keyword-based tagging.
63
+ */
64
+ function extractTags(messages) {
65
+ const content = messages.map((m) => m.content.toLowerCase()).join(' ');
66
+ const tags = [];
67
+ const keywordTags = {
68
+ 'code': ['create', 'write', 'implement', 'code', 'function', 'class', 'file'],
69
+ 'debug': ['debug', 'fix', 'bug', 'error', 'issue', 'broken'],
70
+ 'refactor': ['refactor', 'improve', 'optimize', 'clean', 'restructure'],
71
+ 'explain': ['explain', 'what is', 'how does', 'why', 'describe', 'tell me about'],
72
+ 'architecture': ['architecture', 'design', 'plan', 'structure', 'pattern'],
73
+ 'test': ['test', 'testing', 'spec', 'assert', 'verify'],
74
+ 'config': ['config', 'setup', 'install', 'configure', 'deploy'],
75
+ };
76
+ for (const [tag, keywords] of Object.entries(keywordTags)) {
77
+ if (keywords.some((kw) => content.includes(kw))) {
78
+ tags.push(tag);
79
+ }
80
+ }
81
+ return tags.slice(0, 5); // Max 5 tags
82
+ }
83
+ // ─── ChatHistory ────────────────────────────────────────────────────────────
84
+ /**
85
+ * Manages chat conversation history with search capabilities.
86
+ */
87
+ export class ChatHistory {
88
+ /**
89
+ * Store a completed chat session.
90
+ */
91
+ storeSession(messages, provider, model) {
92
+ if (messages.length === 0)
93
+ return '';
94
+ const data = readHistory();
95
+ this.pruneIfNeeded(data);
96
+ const id = generateSessionId();
97
+ const startedAt = messages[0]?.timestamp || Date.now();
98
+ const endedAt = messages[messages.length - 1]?.timestamp || Date.now();
99
+ const session = {
100
+ id,
101
+ provider,
102
+ model,
103
+ startedAt,
104
+ endedAt,
105
+ messages,
106
+ summary: generateSummary(messages),
107
+ tags: extractTags(messages),
108
+ };
109
+ data.sessions[id] = session;
110
+ writeHistory(data);
111
+ return id;
112
+ }
113
+ /**
114
+ * Get a specific session by ID.
115
+ */
116
+ getSession(id) {
117
+ const data = readHistory();
118
+ return data.sessions[id] || null;
119
+ }
120
+ /**
121
+ * Search sessions by keyword in message content.
122
+ * Performs case-insensitive substring matching on all messages.
123
+ *
124
+ * @param query Search keyword or phrase
125
+ * @param limit Maximum results to return
126
+ * @returns Matching sessions sorted by relevance
127
+ */
128
+ search(query, limit = 10) {
129
+ const data = readHistory();
130
+ const q = query.toLowerCase();
131
+ const scored = Object.values(data.sessions)
132
+ .map((session) => {
133
+ let score = 0;
134
+ // Score based on summary match
135
+ if (session.summary.toLowerCase().includes(q)) {
136
+ score += 5;
137
+ }
138
+ // Score based on tag matches
139
+ if (session.tags.some((t) => t.includes(q))) {
140
+ score += 3;
141
+ }
142
+ // Score based on message content matches
143
+ for (const msg of session.messages) {
144
+ const content = msg.content.toLowerCase();
145
+ if (content.includes(q)) {
146
+ // More weight for user messages and exact matches
147
+ score += msg.role === 'user' ? 2 : 1;
148
+ // Bonus for early messages (more relevant to the topic)
149
+ const idx = session.messages.indexOf(msg);
150
+ if (idx < 3)
151
+ score += 0.5;
152
+ }
153
+ }
154
+ return { session, score };
155
+ })
156
+ .filter((s) => s.score > 0)
157
+ .sort((a, b) => b.score - a.score)
158
+ .slice(0, limit)
159
+ .map((s) => s.session);
160
+ return scored;
161
+ }
162
+ /**
163
+ * Get all sessions, sorted by recency.
164
+ */
165
+ getAllSessions(limit = 50) {
166
+ const data = readHistory();
167
+ return Object.values(data.sessions)
168
+ .sort((a, b) => b.startedAt - a.startedAt)
169
+ .slice(0, limit);
170
+ }
171
+ /**
172
+ * Get recent sessions (last N days).
173
+ */
174
+ getRecentSessions(days = 7) {
175
+ const cutoff = Date.now() - days * 24 * 60 * 60 * 1000;
176
+ const data = readHistory();
177
+ return Object.values(data.sessions)
178
+ .filter((s) => s.startedAt >= cutoff)
179
+ .sort((a, b) => b.startedAt - a.startedAt);
180
+ }
181
+ /**
182
+ * Get total number of stored sessions.
183
+ */
184
+ count() {
185
+ const data = readHistory();
186
+ return Object.keys(data.sessions).length;
187
+ }
188
+ /**
189
+ * Clear all history.
190
+ */
191
+ clear() {
192
+ writeHistory({ sessions: {}, version: CURRENT_VERSION });
193
+ }
194
+ /**
195
+ * Delete sessions older than the specified retention period.
196
+ */
197
+ prune(retentionDays = DEFAULT_RETENTION_DAYS) {
198
+ const cutoff = Date.now() - retentionDays * 24 * 60 * 60 * 1000;
199
+ const data = readHistory();
200
+ let removed = 0;
201
+ for (const [id, session] of Object.entries(data.sessions)) {
202
+ if (session.startedAt < cutoff) {
203
+ delete data.sessions[id];
204
+ removed++;
205
+ }
206
+ }
207
+ if (removed > 0) {
208
+ writeHistory(data);
209
+ }
210
+ return removed;
211
+ }
212
+ /**
213
+ * Format a search result for display.
214
+ */
215
+ formatSessionSummary(session) {
216
+ const date = new Date(session.startedAt).toLocaleDateString('en-US', {
217
+ month: 'short',
218
+ day: 'numeric',
219
+ hour: '2-digit',
220
+ minute: '2-digit',
221
+ });
222
+ const msgCount = session.messages.length;
223
+ const tags = session.tags.length > 0 ? ` [${session.tags.join(', ')}]` : '';
224
+ return ` 📝 ${session.id.slice(0, 20).padEnd(22)} ${date.padEnd(20)} ${String(msgCount).padStart(3)} msgs ${session.summary.slice(0, 60).padEnd(62)}${tags}`;
225
+ }
226
+ // ── Private ────────────────────────────────────────────────────────────
227
+ pruneIfNeeded(data) {
228
+ const entries = Object.keys(data.sessions);
229
+ if (entries.length < MAX_SESSIONS)
230
+ return;
231
+ // Remove oldest sessions
232
+ const sorted = entries
233
+ .map((id) => ({ id, session: data.sessions[id] }))
234
+ .sort((a, b) => a.session.startedAt - b.session.startedAt);
235
+ const toRemove = sorted.slice(0, entries.length - MAX_SESSIONS + 10);
236
+ for (const { id } of toRemove) {
237
+ delete data.sessions[id];
238
+ }
239
+ }
240
+ }
241
+ // Singleton instance
242
+ let historyInstance = null;
243
+ export function getChatHistory() {
244
+ if (!historyInstance) {
245
+ historyInstance = new ChatHistory();
246
+ }
247
+ return historyInstance;
248
+ }
249
+ //# sourceMappingURL=history.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/context/history.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Represents a parsed file context chunk
3
+ */
4
+ export interface ContextChunk {
5
+ filePath: string;
6
+ content: string;
7
+ priority: number;
8
+ tokenCount: number;
9
+ }
10
+ /**
11
+ * Options for context parsing
12
+ */
13
+ export interface ContextParserOptions {
14
+ /** Maximum total tokens (approximate) to include */
15
+ maxTokens?: number;
16
+ /** File patterns to prioritize (e.g., ['index.ts', 'main.go']) */
17
+ priorityPatterns?: string[];
18
+ /** File extensions to include */
19
+ includeExtensions?: string[];
20
+ /** Files/directories to ignore */
21
+ ignorePatterns?: string[];
22
+ /** Whether to include .gitignore'd files */
23
+ includeGitIgnored?: boolean;
24
+ }
25
+ /**
26
+ * Multi-file context parser
27
+ * Reads files, chunks content, and prioritizes important files
28
+ */
29
+ export declare class ContextParser {
30
+ private options;
31
+ constructor(options?: ContextParserOptions);
32
+ /**
33
+ * Parse context from a list of file paths
34
+ */
35
+ parseFromFiles(filePaths: string[]): ContextChunk[];
36
+ /**
37
+ * Parse context from a directory, recursively finding relevant files
38
+ */
39
+ parseFromDirectory(dirPath: string): Promise<ContextChunk[]>;
40
+ /**
41
+ * Recursively walk a directory
42
+ */
43
+ private walkDirectory;
44
+ /**
45
+ * Parse a single string of context text
46
+ */
47
+ parseFromString(text: string, label?: string): ContextChunk[];
48
+ /**
49
+ * Split text into chunks that fit within token limits
50
+ */
51
+ private chunkText;
52
+ /**
53
+ * Prune chunks to fit within token limits, prioritizing by priority
54
+ */
55
+ private pruneToTokenLimit;
56
+ /**
57
+ * Format chunks into a single prompt-ready string
58
+ */
59
+ static formatContext(chunks: ContextChunk[]): string;
60
+ }
61
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/context/parser.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,iCAAiC;IACjC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,kCAAkC;IAClC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,4CAA4C;IAC5C,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAoBD;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAiC;gBAEpC,OAAO,CAAC,EAAE,oBAAoB;IAI1C;;OAEG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE;IA4BnD;;OAEG;IACG,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAMlE;;OAEG;YACW,aAAa;IAsC3B;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAgB,GAAG,YAAY,EAAE;IAkBtE;;OAEG;IACH,OAAO,CAAC,SAAS;IAoCjB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA+BzB;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM;CASrD"}