@weavelogic/knowledge-graph-agent 0.2.0 → 0.3.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 (585) hide show
  1. package/README.md +686 -304
  2. package/dist/_virtual/_commonjsHelpers.js +7 -0
  3. package/dist/_virtual/_commonjsHelpers.js.map +1 -0
  4. package/dist/_virtual/additionalItems.js +5 -0
  5. package/dist/_virtual/additionalItems.js.map +1 -0
  6. package/dist/_virtual/additionalProperties.js +5 -0
  7. package/dist/_virtual/additionalProperties.js.map +1 -0
  8. package/dist/_virtual/ajv.js +6 -0
  9. package/dist/_virtual/ajv.js.map +1 -0
  10. package/dist/_virtual/ajv2.js +5 -0
  11. package/dist/_virtual/ajv2.js.map +1 -0
  12. package/dist/_virtual/allOf.js +5 -0
  13. package/dist/_virtual/allOf.js.map +1 -0
  14. package/dist/_virtual/anyOf.js +5 -0
  15. package/dist/_virtual/anyOf.js.map +1 -0
  16. package/dist/_virtual/applicability.js +5 -0
  17. package/dist/_virtual/applicability.js.map +1 -0
  18. package/dist/_virtual/boolSchema.js +5 -0
  19. package/dist/_virtual/boolSchema.js.map +1 -0
  20. package/dist/_virtual/code.js +5 -0
  21. package/dist/_virtual/code.js.map +1 -0
  22. package/dist/_virtual/code2.js +5 -0
  23. package/dist/_virtual/code2.js.map +1 -0
  24. package/dist/_virtual/const.js +5 -0
  25. package/dist/_virtual/const.js.map +1 -0
  26. package/dist/_virtual/contains.js +5 -0
  27. package/dist/_virtual/contains.js.map +1 -0
  28. package/dist/_virtual/core.js +5 -0
  29. package/dist/_virtual/core.js.map +1 -0
  30. package/dist/_virtual/dataType.js +5 -0
  31. package/dist/_virtual/dataType.js.map +1 -0
  32. package/dist/_virtual/defaults.js +5 -0
  33. package/dist/_virtual/defaults.js.map +1 -0
  34. package/dist/_virtual/dependencies.js +5 -0
  35. package/dist/_virtual/dependencies.js.map +1 -0
  36. package/dist/_virtual/draft7.js +5 -0
  37. package/dist/_virtual/draft7.js.map +1 -0
  38. package/dist/_virtual/enum.js +5 -0
  39. package/dist/_virtual/enum.js.map +1 -0
  40. package/dist/_virtual/equal.js +5 -0
  41. package/dist/_virtual/equal.js.map +1 -0
  42. package/dist/_virtual/errors.js +5 -0
  43. package/dist/_virtual/errors.js.map +1 -0
  44. package/dist/_virtual/format.js +5 -0
  45. package/dist/_virtual/format.js.map +1 -0
  46. package/dist/_virtual/formats.js +5 -0
  47. package/dist/_virtual/formats.js.map +1 -0
  48. package/dist/_virtual/id.js +5 -0
  49. package/dist/_virtual/id.js.map +1 -0
  50. package/dist/_virtual/if.js +5 -0
  51. package/dist/_virtual/if.js.map +1 -0
  52. package/dist/_virtual/index.js +8 -0
  53. package/dist/_virtual/index.js.map +1 -0
  54. package/dist/_virtual/index10.js +5 -0
  55. package/dist/_virtual/index10.js.map +1 -0
  56. package/dist/_virtual/index11.js +5 -0
  57. package/dist/_virtual/index11.js.map +1 -0
  58. package/dist/_virtual/index12.js +5 -0
  59. package/dist/_virtual/index12.js.map +1 -0
  60. package/dist/_virtual/index2.js +5 -0
  61. package/dist/_virtual/index2.js.map +1 -0
  62. package/dist/_virtual/index3.js +5 -0
  63. package/dist/_virtual/index3.js.map +1 -0
  64. package/dist/_virtual/index4.js +5 -0
  65. package/dist/_virtual/index4.js.map +1 -0
  66. package/dist/_virtual/index5.js +5 -0
  67. package/dist/_virtual/index5.js.map +1 -0
  68. package/dist/_virtual/index6.js +5 -0
  69. package/dist/_virtual/index6.js.map +1 -0
  70. package/dist/_virtual/index7.js +5 -0
  71. package/dist/_virtual/index7.js.map +1 -0
  72. package/dist/_virtual/index8.js +5 -0
  73. package/dist/_virtual/index8.js.map +1 -0
  74. package/dist/_virtual/index9.js +5 -0
  75. package/dist/_virtual/index9.js.map +1 -0
  76. package/dist/_virtual/items.js +5 -0
  77. package/dist/_virtual/items.js.map +1 -0
  78. package/dist/_virtual/items2020.js +5 -0
  79. package/dist/_virtual/items2020.js.map +1 -0
  80. package/dist/_virtual/keyword.js +5 -0
  81. package/dist/_virtual/keyword.js.map +1 -0
  82. package/dist/_virtual/limit.js +5 -0
  83. package/dist/_virtual/limit.js.map +1 -0
  84. package/dist/_virtual/limitItems.js +5 -0
  85. package/dist/_virtual/limitItems.js.map +1 -0
  86. package/dist/_virtual/limitLength.js +5 -0
  87. package/dist/_virtual/limitLength.js.map +1 -0
  88. package/dist/_virtual/limitNumber.js +5 -0
  89. package/dist/_virtual/limitNumber.js.map +1 -0
  90. package/dist/_virtual/limitProperties.js +5 -0
  91. package/dist/_virtual/limitProperties.js.map +1 -0
  92. package/dist/_virtual/metadata.js +5 -0
  93. package/dist/_virtual/metadata.js.map +1 -0
  94. package/dist/_virtual/multipleOf.js +5 -0
  95. package/dist/_virtual/multipleOf.js.map +1 -0
  96. package/dist/_virtual/names.js +5 -0
  97. package/dist/_virtual/names.js.map +1 -0
  98. package/dist/_virtual/not.js +5 -0
  99. package/dist/_virtual/not.js.map +1 -0
  100. package/dist/_virtual/oneOf.js +5 -0
  101. package/dist/_virtual/oneOf.js.map +1 -0
  102. package/dist/_virtual/pattern.js +5 -0
  103. package/dist/_virtual/pattern.js.map +1 -0
  104. package/dist/_virtual/patternProperties.js +5 -0
  105. package/dist/_virtual/patternProperties.js.map +1 -0
  106. package/dist/_virtual/prefixItems.js +5 -0
  107. package/dist/_virtual/prefixItems.js.map +1 -0
  108. package/dist/_virtual/properties.js +5 -0
  109. package/dist/_virtual/properties.js.map +1 -0
  110. package/dist/_virtual/propertyNames.js +5 -0
  111. package/dist/_virtual/propertyNames.js.map +1 -0
  112. package/dist/_virtual/ref.js +5 -0
  113. package/dist/_virtual/ref.js.map +1 -0
  114. package/dist/_virtual/ref_error.js +5 -0
  115. package/dist/_virtual/ref_error.js.map +1 -0
  116. package/dist/_virtual/required.js +5 -0
  117. package/dist/_virtual/required.js.map +1 -0
  118. package/dist/_virtual/resolve.js +5 -0
  119. package/dist/_virtual/resolve.js.map +1 -0
  120. package/dist/_virtual/rules.js +5 -0
  121. package/dist/_virtual/rules.js.map +1 -0
  122. package/dist/_virtual/scope.js +5 -0
  123. package/dist/_virtual/scope.js.map +1 -0
  124. package/dist/_virtual/subschema.js +5 -0
  125. package/dist/_virtual/subschema.js.map +1 -0
  126. package/dist/_virtual/thenElse.js +5 -0
  127. package/dist/_virtual/thenElse.js.map +1 -0
  128. package/dist/_virtual/types.js +5 -0
  129. package/dist/_virtual/types.js.map +1 -0
  130. package/dist/_virtual/ucs2length.js +5 -0
  131. package/dist/_virtual/ucs2length.js.map +1 -0
  132. package/dist/_virtual/uniqueItems.js +5 -0
  133. package/dist/_virtual/uniqueItems.js.map +1 -0
  134. package/dist/_virtual/uri.js +5 -0
  135. package/dist/_virtual/uri.js.map +1 -0
  136. package/dist/_virtual/util.js +5 -0
  137. package/dist/_virtual/util.js.map +1 -0
  138. package/dist/_virtual/validation_error.js +5 -0
  139. package/dist/_virtual/validation_error.js.map +1 -0
  140. package/dist/agents/analyst-agent.d.ts +230 -0
  141. package/dist/agents/analyst-agent.d.ts.map +1 -0
  142. package/dist/agents/analyst-agent.js +793 -0
  143. package/dist/agents/analyst-agent.js.map +1 -0
  144. package/dist/agents/architect-agent.d.ts +248 -0
  145. package/dist/agents/architect-agent.d.ts.map +1 -0
  146. package/dist/agents/architect-agent.js +685 -0
  147. package/dist/agents/architect-agent.js.map +1 -0
  148. package/dist/agents/base-agent.d.ts +169 -0
  149. package/dist/agents/base-agent.d.ts.map +1 -0
  150. package/dist/agents/base-agent.js +441 -0
  151. package/dist/agents/base-agent.js.map +1 -0
  152. package/dist/agents/coder-agent.d.ts +191 -0
  153. package/dist/agents/coder-agent.d.ts.map +1 -0
  154. package/dist/agents/coder-agent.js +1008 -0
  155. package/dist/agents/coder-agent.js.map +1 -0
  156. package/dist/agents/index.d.ts +18 -0
  157. package/dist/agents/index.d.ts.map +1 -0
  158. package/dist/agents/index.js +40 -0
  159. package/dist/agents/index.js.map +1 -0
  160. package/dist/agents/registry.d.ts +213 -0
  161. package/dist/agents/registry.d.ts.map +1 -0
  162. package/dist/agents/registry.js +419 -0
  163. package/dist/agents/registry.js.map +1 -0
  164. package/dist/agents/researcher-agent.d.ts +226 -0
  165. package/dist/agents/researcher-agent.d.ts.map +1 -0
  166. package/dist/agents/researcher-agent.js +572 -0
  167. package/dist/agents/researcher-agent.js.map +1 -0
  168. package/dist/agents/rules-engine.d.ts +320 -0
  169. package/dist/agents/rules-engine.d.ts.map +1 -0
  170. package/dist/agents/rules-engine.js +552 -0
  171. package/dist/agents/rules-engine.js.map +1 -0
  172. package/dist/agents/tester-agent.d.ts +219 -0
  173. package/dist/agents/tester-agent.d.ts.map +1 -0
  174. package/dist/agents/tester-agent.js +683 -0
  175. package/dist/agents/tester-agent.js.map +1 -0
  176. package/dist/agents/types.d.ts +425 -0
  177. package/dist/agents/types.d.ts.map +1 -0
  178. package/dist/agents/types.js +57 -0
  179. package/dist/agents/types.js.map +1 -0
  180. package/dist/caching/index.d.ts +55 -0
  181. package/dist/caching/index.d.ts.map +1 -0
  182. package/dist/caching/index.js +206 -0
  183. package/dist/caching/index.js.map +1 -0
  184. package/dist/caching/lru-cache.d.ts +254 -0
  185. package/dist/caching/lru-cache.d.ts.map +1 -0
  186. package/dist/caching/types.d.ts +95 -0
  187. package/dist/caching/types.d.ts.map +1 -0
  188. package/dist/chunking/chunker.d.ts +94 -0
  189. package/dist/chunking/chunker.d.ts.map +1 -0
  190. package/dist/chunking/index.d.ts +125 -0
  191. package/dist/chunking/index.d.ts.map +1 -0
  192. package/dist/chunking/index.js +283 -0
  193. package/dist/chunking/index.js.map +1 -0
  194. package/dist/chunking/types.d.ts +92 -0
  195. package/dist/chunking/types.d.ts.map +1 -0
  196. package/dist/cli/commands/commit.d.ts +11 -0
  197. package/dist/cli/commands/commit.d.ts.map +1 -0
  198. package/dist/cli/commands/commit.js +379 -0
  199. package/dist/cli/commands/commit.js.map +1 -0
  200. package/dist/cli/commands/config.d.ts +8 -0
  201. package/dist/cli/commands/config.d.ts.map +1 -0
  202. package/dist/cli/commands/config.js +107 -0
  203. package/dist/cli/commands/config.js.map +1 -0
  204. package/dist/cli/commands/cultivate.d.ts +16 -0
  205. package/dist/cli/commands/cultivate.d.ts.map +1 -0
  206. package/dist/cli/commands/cultivate.js +254 -0
  207. package/dist/cli/commands/cultivate.js.map +1 -0
  208. package/dist/cli/commands/diagnostics.d.ts +8 -0
  209. package/dist/cli/commands/diagnostics.d.ts.map +1 -0
  210. package/dist/cli/commands/diagnostics.js +140 -0
  211. package/dist/cli/commands/diagnostics.js.map +1 -0
  212. package/dist/cli/commands/generate.d.ts +13 -0
  213. package/dist/cli/commands/generate.d.ts.map +1 -0
  214. package/dist/cli/commands/init-primitives.d.ts +19 -0
  215. package/dist/cli/commands/init-primitives.d.ts.map +1 -0
  216. package/dist/cli/commands/init-primitives.js +208 -0
  217. package/dist/cli/commands/init-primitives.js.map +1 -0
  218. package/dist/cli/commands/sop.d.ts +14 -0
  219. package/dist/cli/commands/sop.d.ts.map +1 -0
  220. package/dist/cli/commands/sop.js +598 -0
  221. package/dist/cli/commands/sop.js.map +1 -0
  222. package/dist/cli/index.d.ts.map +1 -1
  223. package/dist/cli/index.js +40 -1
  224. package/dist/cli/index.js.map +1 -1
  225. package/dist/config/index.d.ts +153 -0
  226. package/dist/config/index.d.ts.map +1 -0
  227. package/dist/config/index.js +141 -0
  228. package/dist/config/index.js.map +1 -0
  229. package/dist/config/manager.d.ts +136 -0
  230. package/dist/config/manager.d.ts.map +1 -0
  231. package/dist/config/types.d.ts +127 -0
  232. package/dist/config/types.d.ts.map +1 -0
  233. package/dist/core/cache.d.ts +185 -0
  234. package/dist/core/cache.d.ts.map +1 -0
  235. package/dist/core/cache.js +435 -0
  236. package/dist/core/cache.js.map +1 -0
  237. package/dist/cultivation/deep-analyzer.d.ts +129 -0
  238. package/dist/cultivation/deep-analyzer.d.ts.map +1 -0
  239. package/dist/cultivation/deep-analyzer.js +322 -0
  240. package/dist/cultivation/deep-analyzer.js.map +1 -0
  241. package/dist/cultivation/index.d.ts +13 -0
  242. package/dist/cultivation/index.d.ts.map +1 -0
  243. package/dist/cultivation/seed-generator.d.ts +92 -0
  244. package/dist/cultivation/seed-generator.d.ts.map +1 -0
  245. package/dist/cultivation/seed-generator.js +1033 -0
  246. package/dist/cultivation/seed-generator.js.map +1 -0
  247. package/dist/cultivation/types.d.ts +230 -0
  248. package/dist/cultivation/types.d.ts.map +1 -0
  249. package/dist/generators/claude-md.d.ts +7 -0
  250. package/dist/generators/claude-md.d.ts.map +1 -1
  251. package/dist/generators/claude-md.js.map +1 -1
  252. package/dist/generators/docs-init.d.ts +6 -0
  253. package/dist/generators/docs-init.d.ts.map +1 -1
  254. package/dist/generators/docs-init.js.map +1 -1
  255. package/dist/health/checks.d.ts +135 -0
  256. package/dist/health/checks.d.ts.map +1 -0
  257. package/dist/health/index.d.ts +119 -0
  258. package/dist/health/index.d.ts.map +1 -0
  259. package/dist/health/index.js +191 -0
  260. package/dist/health/index.js.map +1 -0
  261. package/dist/health/monitor.d.ts +146 -0
  262. package/dist/health/monitor.d.ts.map +1 -0
  263. package/dist/health/types.d.ts +135 -0
  264. package/dist/health/types.d.ts.map +1 -0
  265. package/dist/index.d.ts +30 -0
  266. package/dist/index.d.ts.map +1 -1
  267. package/dist/index.js +173 -1
  268. package/dist/index.js.map +1 -1
  269. package/dist/integrations/auto-commit.d.ts +175 -0
  270. package/dist/integrations/auto-commit.d.ts.map +1 -0
  271. package/dist/integrations/auto-commit.js +399 -0
  272. package/dist/integrations/auto-commit.js.map +1 -0
  273. package/dist/integrations/git.d.ts +299 -0
  274. package/dist/integrations/git.d.ts.map +1 -0
  275. package/dist/integrations/git.js +465 -0
  276. package/dist/integrations/git.js.map +1 -0
  277. package/dist/mcp-server/bin.d.ts +11 -0
  278. package/dist/mcp-server/bin.d.ts.map +1 -0
  279. package/dist/mcp-server/handlers/index.d.ts +57 -0
  280. package/dist/mcp-server/handlers/index.d.ts.map +1 -0
  281. package/dist/mcp-server/handlers/index.js +235 -0
  282. package/dist/mcp-server/handlers/index.js.map +1 -0
  283. package/dist/mcp-server/index.d.ts +28 -0
  284. package/dist/mcp-server/index.d.ts.map +1 -0
  285. package/dist/mcp-server/server.d.ts +133 -0
  286. package/dist/mcp-server/server.d.ts.map +1 -0
  287. package/dist/mcp-server/server.js +280 -0
  288. package/dist/mcp-server/server.js.map +1 -0
  289. package/dist/mcp-server/tools/agents/index.d.ts +10 -0
  290. package/dist/mcp-server/tools/agents/index.d.ts.map +1 -0
  291. package/dist/mcp-server/tools/agents/list.d.ts +19 -0
  292. package/dist/mcp-server/tools/agents/list.d.ts.map +1 -0
  293. package/dist/mcp-server/tools/agents/spawn.d.ts +19 -0
  294. package/dist/mcp-server/tools/agents/spawn.d.ts.map +1 -0
  295. package/dist/mcp-server/tools/graph/generate.d.ts +21 -0
  296. package/dist/mcp-server/tools/graph/generate.d.ts.map +1 -0
  297. package/dist/mcp-server/tools/graph/index.d.ts +11 -0
  298. package/dist/mcp-server/tools/graph/index.d.ts.map +1 -0
  299. package/dist/mcp-server/tools/graph/query.d.ts +22 -0
  300. package/dist/mcp-server/tools/graph/query.d.ts.map +1 -0
  301. package/dist/mcp-server/tools/graph/stats.d.ts +22 -0
  302. package/dist/mcp-server/tools/graph/stats.d.ts.map +1 -0
  303. package/dist/mcp-server/tools/health.d.ts +21 -0
  304. package/dist/mcp-server/tools/health.d.ts.map +1 -0
  305. package/dist/mcp-server/tools/index.d.ts +13 -0
  306. package/dist/mcp-server/tools/index.d.ts.map +1 -0
  307. package/dist/mcp-server/tools/registry.d.ts +90 -0
  308. package/dist/mcp-server/tools/registry.d.ts.map +1 -0
  309. package/dist/mcp-server/tools/registry.js +663 -0
  310. package/dist/mcp-server/tools/registry.js.map +1 -0
  311. package/dist/mcp-server/tools/search/index.d.ts +10 -0
  312. package/dist/mcp-server/tools/search/index.d.ts.map +1 -0
  313. package/dist/mcp-server/tools/search/nodes.d.ts +22 -0
  314. package/dist/mcp-server/tools/search/nodes.d.ts.map +1 -0
  315. package/dist/mcp-server/tools/search/tags.d.ts +22 -0
  316. package/dist/mcp-server/tools/search/tags.d.ts.map +1 -0
  317. package/dist/mcp-server/types/index.d.ts +286 -0
  318. package/dist/mcp-server/types/index.d.ts.map +1 -0
  319. package/dist/memory/index.d.ts +10 -0
  320. package/dist/memory/index.d.ts.map +1 -0
  321. package/dist/memory/vault-sync.d.ts +212 -0
  322. package/dist/memory/vault-sync.d.ts.map +1 -0
  323. package/dist/memory/vault-sync.js +463 -0
  324. package/dist/memory/vault-sync.js.map +1 -0
  325. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js +296 -0
  326. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js.map +1 -0
  327. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js +71 -0
  328. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js.map +1 -0
  329. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js +26 -0
  330. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js.map +1 -0
  331. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js +407 -0
  332. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js.map +1 -0
  333. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js +1332 -0
  334. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js.map +1 -0
  335. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js +71 -0
  336. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js.map +1 -0
  337. package/dist/node_modules/ajv/dist/ajv.js +84 -0
  338. package/dist/node_modules/ajv/dist/ajv.js.map +1 -0
  339. package/dist/node_modules/ajv/dist/compile/codegen/code.js +160 -0
  340. package/dist/node_modules/ajv/dist/compile/codegen/code.js.map +1 -0
  341. package/dist/node_modules/ajv/dist/compile/codegen/index.js +728 -0
  342. package/dist/node_modules/ajv/dist/compile/codegen/index.js.map +1 -0
  343. package/dist/node_modules/ajv/dist/compile/codegen/scope.js +152 -0
  344. package/dist/node_modules/ajv/dist/compile/codegen/scope.js.map +1 -0
  345. package/dist/node_modules/ajv/dist/compile/errors.js +131 -0
  346. package/dist/node_modules/ajv/dist/compile/errors.js.map +1 -0
  347. package/dist/node_modules/ajv/dist/compile/index.js +234 -0
  348. package/dist/node_modules/ajv/dist/compile/index.js.map +1 -0
  349. package/dist/node_modules/ajv/dist/compile/names.js +44 -0
  350. package/dist/node_modules/ajv/dist/compile/names.js.map +1 -0
  351. package/dist/node_modules/ajv/dist/compile/ref_error.js +22 -0
  352. package/dist/node_modules/ajv/dist/compile/ref_error.js.map +1 -0
  353. package/dist/node_modules/ajv/dist/compile/resolve.js +163 -0
  354. package/dist/node_modules/ajv/dist/compile/resolve.js.map +1 -0
  355. package/dist/node_modules/ajv/dist/compile/rules.js +35 -0
  356. package/dist/node_modules/ajv/dist/compile/rules.js.map +1 -0
  357. package/dist/node_modules/ajv/dist/compile/util.js +173 -0
  358. package/dist/node_modules/ajv/dist/compile/util.js.map +1 -0
  359. package/dist/node_modules/ajv/dist/compile/validate/applicability.js +27 -0
  360. package/dist/node_modules/ajv/dist/compile/validate/applicability.js.map +1 -0
  361. package/dist/node_modules/ajv/dist/compile/validate/boolSchema.js +58 -0
  362. package/dist/node_modules/ajv/dist/compile/validate/boolSchema.js.map +1 -0
  363. package/dist/node_modules/ajv/dist/compile/validate/dataType.js +193 -0
  364. package/dist/node_modules/ajv/dist/compile/validate/dataType.js.map +1 -0
  365. package/dist/node_modules/ajv/dist/compile/validate/defaults.js +43 -0
  366. package/dist/node_modules/ajv/dist/compile/validate/defaults.js.map +1 -0
  367. package/dist/node_modules/ajv/dist/compile/validate/index.js +522 -0
  368. package/dist/node_modules/ajv/dist/compile/validate/index.js.map +1 -0
  369. package/dist/node_modules/ajv/dist/compile/validate/keyword.js +126 -0
  370. package/dist/node_modules/ajv/dist/compile/validate/keyword.js.map +1 -0
  371. package/dist/node_modules/ajv/dist/compile/validate/subschema.js +89 -0
  372. package/dist/node_modules/ajv/dist/compile/validate/subschema.js.map +1 -0
  373. package/dist/node_modules/ajv/dist/core.js +628 -0
  374. package/dist/node_modules/ajv/dist/core.js.map +1 -0
  375. package/dist/node_modules/ajv/dist/refs/data.json.js +24 -0
  376. package/dist/node_modules/ajv/dist/refs/data.json.js.map +1 -0
  377. package/dist/node_modules/ajv/dist/refs/json-schema-draft-07.json.js +25 -0
  378. package/dist/node_modules/ajv/dist/refs/json-schema-draft-07.json.js.map +1 -0
  379. package/dist/node_modules/ajv/dist/runtime/equal.js +16 -0
  380. package/dist/node_modules/ajv/dist/runtime/equal.js.map +1 -0
  381. package/dist/node_modules/ajv/dist/runtime/ucs2length.js +30 -0
  382. package/dist/node_modules/ajv/dist/runtime/ucs2length.js.map +1 -0
  383. package/dist/node_modules/ajv/dist/runtime/uri.js +16 -0
  384. package/dist/node_modules/ajv/dist/runtime/uri.js.map +1 -0
  385. package/dist/node_modules/ajv/dist/runtime/validation_error.js +20 -0
  386. package/dist/node_modules/ajv/dist/runtime/validation_error.js.map +1 -0
  387. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +59 -0
  388. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js.map +1 -0
  389. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +114 -0
  390. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js.map +1 -0
  391. package/dist/node_modules/ajv/dist/vocabularies/applicator/allOf.js +32 -0
  392. package/dist/node_modules/ajv/dist/vocabularies/applicator/allOf.js.map +1 -0
  393. package/dist/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +22 -0
  394. package/dist/node_modules/ajv/dist/vocabularies/applicator/anyOf.js.map +1 -0
  395. package/dist/node_modules/ajv/dist/vocabularies/applicator/contains.js +100 -0
  396. package/dist/node_modules/ajv/dist/vocabularies/applicator/contains.js.map +1 -0
  397. package/dist/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +103 -0
  398. package/dist/node_modules/ajv/dist/vocabularies/applicator/dependencies.js.map +1 -0
  399. package/dist/node_modules/ajv/dist/vocabularies/applicator/if.js +75 -0
  400. package/dist/node_modules/ajv/dist/vocabularies/applicator/if.js.map +1 -0
  401. package/dist/node_modules/ajv/dist/vocabularies/applicator/index.js +68 -0
  402. package/dist/node_modules/ajv/dist/vocabularies/applicator/index.js.map +1 -0
  403. package/dist/node_modules/ajv/dist/vocabularies/applicator/items.js +64 -0
  404. package/dist/node_modules/ajv/dist/vocabularies/applicator/items.js.map +1 -0
  405. package/dist/node_modules/ajv/dist/vocabularies/applicator/items2020.js +43 -0
  406. package/dist/node_modules/ajv/dist/vocabularies/applicator/items2020.js.map +1 -0
  407. package/dist/node_modules/ajv/dist/vocabularies/applicator/not.js +36 -0
  408. package/dist/node_modules/ajv/dist/vocabularies/applicator/not.js.map +1 -0
  409. package/dist/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +64 -0
  410. package/dist/node_modules/ajv/dist/vocabularies/applicator/oneOf.js.map +1 -0
  411. package/dist/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +81 -0
  412. package/dist/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js.map +1 -0
  413. package/dist/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +22 -0
  414. package/dist/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js.map +1 -0
  415. package/dist/node_modules/ajv/dist/vocabularies/applicator/properties.js +66 -0
  416. package/dist/node_modules/ajv/dist/vocabularies/applicator/properties.js.map +1 -0
  417. package/dist/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +49 -0
  418. package/dist/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js.map +1 -0
  419. package/dist/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +23 -0
  420. package/dist/node_modules/ajv/dist/vocabularies/applicator/thenElse.js.map +1 -0
  421. package/dist/node_modules/ajv/dist/vocabularies/code.js +140 -0
  422. package/dist/node_modules/ajv/dist/vocabularies/code.js.map +1 -0
  423. package/dist/node_modules/ajv/dist/vocabularies/core/id.js +19 -0
  424. package/dist/node_modules/ajv/dist/vocabularies/core/id.js.map +1 -0
  425. package/dist/node_modules/ajv/dist/vocabularies/core/index.js +27 -0
  426. package/dist/node_modules/ajv/dist/vocabularies/core/index.js.map +1 -0
  427. package/dist/node_modules/ajv/dist/vocabularies/core/ref.js +132 -0
  428. package/dist/node_modules/ajv/dist/vocabularies/core/ref.js.map +1 -0
  429. package/dist/node_modules/ajv/dist/vocabularies/discriminator/index.js +114 -0
  430. package/dist/node_modules/ajv/dist/vocabularies/discriminator/index.js.map +1 -0
  431. package/dist/node_modules/ajv/dist/vocabularies/discriminator/types.js +18 -0
  432. package/dist/node_modules/ajv/dist/vocabularies/discriminator/types.js.map +1 -0
  433. package/dist/node_modules/ajv/dist/vocabularies/draft7.js +31 -0
  434. package/dist/node_modules/ajv/dist/vocabularies/draft7.js.map +1 -0
  435. package/dist/node_modules/ajv/dist/vocabularies/format/format.js +95 -0
  436. package/dist/node_modules/ajv/dist/vocabularies/format/format.js.map +1 -0
  437. package/dist/node_modules/ajv/dist/vocabularies/format/index.js +16 -0
  438. package/dist/node_modules/ajv/dist/vocabularies/format/index.js.map +1 -0
  439. package/dist/node_modules/ajv/dist/vocabularies/metadata.js +27 -0
  440. package/dist/node_modules/ajv/dist/vocabularies/metadata.js.map +1 -0
  441. package/dist/node_modules/ajv/dist/vocabularies/validation/const.js +36 -0
  442. package/dist/node_modules/ajv/dist/vocabularies/validation/const.js.map +1 -0
  443. package/dist/node_modules/ajv/dist/vocabularies/validation/enum.js +56 -0
  444. package/dist/node_modules/ajv/dist/vocabularies/validation/enum.js.map +1 -0
  445. package/dist/node_modules/ajv/dist/vocabularies/validation/index.js +52 -0
  446. package/dist/node_modules/ajv/dist/vocabularies/validation/index.js.map +1 -0
  447. package/dist/node_modules/ajv/dist/vocabularies/validation/limitItems.js +34 -0
  448. package/dist/node_modules/ajv/dist/vocabularies/validation/limitItems.js.map +1 -0
  449. package/dist/node_modules/ajv/dist/vocabularies/validation/limitLength.js +39 -0
  450. package/dist/node_modules/ajv/dist/vocabularies/validation/limitLength.js.map +1 -0
  451. package/dist/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +37 -0
  452. package/dist/node_modules/ajv/dist/vocabularies/validation/limitNumber.js.map +1 -0
  453. package/dist/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +34 -0
  454. package/dist/node_modules/ajv/dist/vocabularies/validation/limitProperties.js.map +1 -0
  455. package/dist/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +33 -0
  456. package/dist/node_modules/ajv/dist/vocabularies/validation/multipleOf.js.map +1 -0
  457. package/dist/node_modules/ajv/dist/vocabularies/validation/pattern.js +34 -0
  458. package/dist/node_modules/ajv/dist/vocabularies/validation/pattern.js.map +1 -0
  459. package/dist/node_modules/ajv/dist/vocabularies/validation/required.js +89 -0
  460. package/dist/node_modules/ajv/dist/vocabularies/validation/required.js.map +1 -0
  461. package/dist/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +75 -0
  462. package/dist/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js.map +1 -0
  463. package/dist/node_modules/ajv-formats/dist/formats.js +209 -0
  464. package/dist/node_modules/ajv-formats/dist/formats.js.map +1 -0
  465. package/dist/node_modules/ajv-formats/dist/index.js +51 -0
  466. package/dist/node_modules/ajv-formats/dist/index.js.map +1 -0
  467. package/dist/node_modules/ajv-formats/dist/limit.js +80 -0
  468. package/dist/node_modules/ajv-formats/dist/limit.js.map +1 -0
  469. package/dist/node_modules/fast-deep-equal/index.js +39 -0
  470. package/dist/node_modules/fast-deep-equal/index.js.map +1 -0
  471. package/dist/node_modules/fast-uri/index.js +261 -0
  472. package/dist/node_modules/fast-uri/index.js.map +1 -0
  473. package/dist/node_modules/fast-uri/lib/schemes.js +215 -0
  474. package/dist/node_modules/fast-uri/lib/schemes.js.map +1 -0
  475. package/dist/node_modules/fast-uri/lib/utils.js +261 -0
  476. package/dist/node_modules/fast-uri/lib/utils.js.map +1 -0
  477. package/dist/node_modules/json-schema-traverse/index.js +92 -0
  478. package/dist/node_modules/json-schema-traverse/index.js.map +1 -0
  479. package/dist/node_modules/zod/v4/classic/errors.js +37 -0
  480. package/dist/node_modules/zod/v4/classic/errors.js.map +1 -0
  481. package/dist/node_modules/zod/v4/classic/iso.js +43 -0
  482. package/dist/node_modules/zod/v4/classic/iso.js.map +1 -0
  483. package/dist/node_modules/zod/v4/classic/parse.js +13 -0
  484. package/dist/node_modules/zod/v4/classic/parse.js.map +1 -0
  485. package/dist/node_modules/zod/v4/classic/schemas.js +688 -0
  486. package/dist/node_modules/zod/v4/classic/schemas.js.map +1 -0
  487. package/dist/node_modules/zod/v4/core/api.js +492 -0
  488. package/dist/node_modules/zod/v4/core/api.js.map +1 -0
  489. package/dist/node_modules/zod/v4/core/checks.js +405 -0
  490. package/dist/node_modules/zod/v4/core/checks.js.map +1 -0
  491. package/dist/node_modules/zod/v4/core/core.js +58 -0
  492. package/dist/node_modules/zod/v4/core/core.js.map +1 -0
  493. package/dist/node_modules/zod/v4/core/doc.js +38 -0
  494. package/dist/node_modules/zod/v4/core/doc.js.map +1 -0
  495. package/dist/node_modules/zod/v4/core/errors.js +82 -0
  496. package/dist/node_modules/zod/v4/core/errors.js.map +1 -0
  497. package/dist/node_modules/zod/v4/core/parse.js +60 -0
  498. package/dist/node_modules/zod/v4/core/parse.js.map +1 -0
  499. package/dist/node_modules/zod/v4/core/regexes.js +87 -0
  500. package/dist/node_modules/zod/v4/core/regexes.js.map +1 -0
  501. package/dist/node_modules/zod/v4/core/registries.js +52 -0
  502. package/dist/node_modules/zod/v4/core/registries.js.map +1 -0
  503. package/dist/node_modules/zod/v4/core/schemas.js +1283 -0
  504. package/dist/node_modules/zod/v4/core/schemas.js.map +1 -0
  505. package/dist/node_modules/zod/v4/core/util.js +341 -0
  506. package/dist/node_modules/zod/v4/core/util.js.map +1 -0
  507. package/dist/node_modules/zod/v4/core/versions.js +9 -0
  508. package/dist/node_modules/zod/v4/core/versions.js.map +1 -0
  509. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js +2 -0
  510. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js.map +1 -0
  511. package/dist/reasoning/index.d.ts +74 -0
  512. package/dist/reasoning/index.d.ts.map +1 -0
  513. package/dist/reasoning/index.js +124 -0
  514. package/dist/reasoning/index.js.map +1 -0
  515. package/dist/reasoning/tracker.d.ts +210 -0
  516. package/dist/reasoning/tracker.d.ts.map +1 -0
  517. package/dist/reasoning/types.d.ts +146 -0
  518. package/dist/reasoning/types.d.ts.map +1 -0
  519. package/dist/recovery/backup.d.ts +110 -0
  520. package/dist/recovery/backup.d.ts.map +1 -0
  521. package/dist/recovery/index.d.ts +70 -0
  522. package/dist/recovery/index.d.ts.map +1 -0
  523. package/dist/recovery/index.js +186 -0
  524. package/dist/recovery/index.js.map +1 -0
  525. package/dist/recovery/integrity.d.ts +74 -0
  526. package/dist/recovery/integrity.d.ts.map +1 -0
  527. package/dist/recovery/types.d.ts +94 -0
  528. package/dist/recovery/types.d.ts.map +1 -0
  529. package/dist/services/index.d.ts +130 -0
  530. package/dist/services/index.d.ts.map +1 -0
  531. package/dist/services/index.js +134 -0
  532. package/dist/services/index.js.map +1 -0
  533. package/dist/services/manager.d.ts +140 -0
  534. package/dist/services/manager.d.ts.map +1 -0
  535. package/dist/services/types.d.ts +106 -0
  536. package/dist/services/types.d.ts.map +1 -0
  537. package/dist/services/watchers.d.ts +95 -0
  538. package/dist/services/watchers.d.ts.map +1 -0
  539. package/dist/sops/compliance-checker.d.ts +83 -0
  540. package/dist/sops/compliance-checker.d.ts.map +1 -0
  541. package/dist/sops/compliance-checker.js +399 -0
  542. package/dist/sops/compliance-checker.js.map +1 -0
  543. package/dist/sops/gap-analyzer.d.ts +124 -0
  544. package/dist/sops/gap-analyzer.d.ts.map +1 -0
  545. package/dist/sops/gap-analyzer.js +313 -0
  546. package/dist/sops/gap-analyzer.js.map +1 -0
  547. package/dist/sops/index.d.ts +14 -0
  548. package/dist/sops/index.d.ts.map +1 -0
  549. package/dist/sops/overlay-manager.d.ts +115 -0
  550. package/dist/sops/overlay-manager.d.ts.map +1 -0
  551. package/dist/sops/overlay-manager.js +394 -0
  552. package/dist/sops/overlay-manager.js.map +1 -0
  553. package/dist/sops/registry.d.ts +73 -0
  554. package/dist/sops/registry.d.ts.map +1 -0
  555. package/dist/sops/registry.js +919 -0
  556. package/dist/sops/registry.js.map +1 -0
  557. package/dist/sops/types.d.ts +377 -0
  558. package/dist/sops/types.d.ts.map +1 -0
  559. package/dist/sops/types.js +46 -0
  560. package/dist/sops/types.js.map +1 -0
  561. package/dist/utils/error-recovery.d.ts +230 -0
  562. package/dist/utils/error-recovery.d.ts.map +1 -0
  563. package/dist/utils/error-recovery.js +228 -0
  564. package/dist/utils/error-recovery.js.map +1 -0
  565. package/dist/utils/error-taxonomy.d.ts +149 -0
  566. package/dist/utils/error-taxonomy.d.ts.map +1 -0
  567. package/dist/utils/error-taxonomy.js +260 -0
  568. package/dist/utils/error-taxonomy.js.map +1 -0
  569. package/dist/utils/index.d.ts +11 -0
  570. package/dist/utils/index.d.ts.map +1 -0
  571. package/dist/utils/logger.d.ts +139 -0
  572. package/dist/utils/logger.d.ts.map +1 -0
  573. package/dist/utils/logger.js +311 -0
  574. package/dist/utils/logger.js.map +1 -0
  575. package/dist/workflows/index.d.ts +11 -0
  576. package/dist/workflows/index.d.ts.map +1 -0
  577. package/dist/workflows/registry.d.ts +118 -0
  578. package/dist/workflows/registry.d.ts.map +1 -0
  579. package/dist/workflows/registry.js +575 -0
  580. package/dist/workflows/registry.js.map +1 -0
  581. package/dist/workflows/types.d.ts +322 -0
  582. package/dist/workflows/types.d.ts.map +1 -0
  583. package/dist/workflows/types.js +16 -0
  584. package/dist/workflows/types.js.map +1 -0
  585. package/package.json +1 -1
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Advanced Caching Module
3
+ *
4
+ * Provides configurable caching with multiple eviction policies.
5
+ */
6
+ export type EvictionPolicy = 'lru' | 'lfu' | 'fifo' | 'ttl';
7
+ export interface CacheEntry<T> {
8
+ key: string;
9
+ value: T;
10
+ createdAt: number;
11
+ accessedAt: number;
12
+ accessCount: number;
13
+ ttl?: number;
14
+ size: number;
15
+ }
16
+ export interface CacheConfig {
17
+ maxSize?: number;
18
+ maxEntries?: number;
19
+ defaultTtl?: number;
20
+ evictionPolicy?: EvictionPolicy;
21
+ enableStats?: boolean;
22
+ }
23
+ export interface CacheStats {
24
+ hits: number;
25
+ misses: number;
26
+ hitRate: number;
27
+ entryCount: number;
28
+ currentSize: number;
29
+ evictions: number;
30
+ }
31
+ export declare class AdvancedCache<T = unknown> {
32
+ private cache;
33
+ private config;
34
+ private stats;
35
+ constructor(config?: CacheConfig);
36
+ get(key: string): T | undefined;
37
+ set(key: string, value: T, ttl?: number): void;
38
+ delete(key: string): boolean;
39
+ has(key: string): boolean;
40
+ clear(): void;
41
+ getStats(): CacheStats;
42
+ keys(): string[];
43
+ size(): number;
44
+ prune(): number;
45
+ private shouldEvict;
46
+ private evictOne;
47
+ private findLRU;
48
+ private findLFU;
49
+ private findFIFO;
50
+ private findOldestTTL;
51
+ private estimateSize;
52
+ private updateHitRate;
53
+ }
54
+ export declare function createAdvancedCache<T = unknown>(config?: CacheConfig): AdvancedCache<T>;
55
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/caching/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;AAE5D,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,CAAC,CAAC;IACT,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD,qBAAa,aAAa,CAAC,CAAC,GAAG,OAAO;IACpC,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,KAAK,CAOX;gBAEU,MAAM,GAAE,WAAgB;IAUpC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IA8B/B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IA2B9C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAW5B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAUzB,KAAK,IAAI,IAAI;IAMb,QAAQ,IAAI,UAAU;IAItB,IAAI,IAAI,MAAM,EAAE;IAIhB,IAAI,IAAI,MAAM;IAId,KAAK,IAAI,MAAM;IAcf,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,QAAQ;IA0BhB,OAAO,CAAC,OAAO;IAaf,OAAO,CAAC,OAAO;IAaf,OAAO,CAAC,QAAQ;IAahB,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,aAAa;CAItB;AAED,wBAAgB,mBAAmB,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAEvF"}
@@ -0,0 +1,206 @@
1
+ class AdvancedCache {
2
+ cache = /* @__PURE__ */ new Map();
3
+ config;
4
+ stats = {
5
+ hits: 0,
6
+ misses: 0,
7
+ hitRate: 0,
8
+ entryCount: 0,
9
+ currentSize: 0,
10
+ evictions: 0
11
+ };
12
+ constructor(config = {}) {
13
+ this.config = {
14
+ maxSize: config.maxSize || 100 * 1024 * 1024,
15
+ maxEntries: config.maxEntries || 1e4,
16
+ defaultTtl: config.defaultTtl || 36e5,
17
+ evictionPolicy: config.evictionPolicy || "lru",
18
+ enableStats: config.enableStats ?? true
19
+ };
20
+ }
21
+ get(key) {
22
+ const entry = this.cache.get(key);
23
+ if (!entry) {
24
+ if (this.config.enableStats) {
25
+ this.stats.misses++;
26
+ this.updateHitRate();
27
+ }
28
+ return void 0;
29
+ }
30
+ if (entry.ttl && Date.now() - entry.createdAt > entry.ttl) {
31
+ this.delete(key);
32
+ if (this.config.enableStats) {
33
+ this.stats.misses++;
34
+ this.updateHitRate();
35
+ }
36
+ return void 0;
37
+ }
38
+ entry.accessedAt = Date.now();
39
+ entry.accessCount++;
40
+ if (this.config.enableStats) {
41
+ this.stats.hits++;
42
+ this.updateHitRate();
43
+ }
44
+ return entry.value;
45
+ }
46
+ set(key, value, ttl) {
47
+ const size = this.estimateSize(value);
48
+ while (this.shouldEvict(size)) {
49
+ this.evictOne();
50
+ }
51
+ const entry = {
52
+ key,
53
+ value,
54
+ createdAt: Date.now(),
55
+ accessedAt: Date.now(),
56
+ accessCount: 1,
57
+ ttl: ttl || this.config.defaultTtl,
58
+ size
59
+ };
60
+ const existing = this.cache.get(key);
61
+ if (existing) {
62
+ this.stats.currentSize -= existing.size;
63
+ }
64
+ this.stats.currentSize += size;
65
+ this.cache.set(key, entry);
66
+ this.stats.entryCount = this.cache.size;
67
+ }
68
+ delete(key) {
69
+ const entry = this.cache.get(key);
70
+ if (entry) {
71
+ this.stats.currentSize -= entry.size;
72
+ this.cache.delete(key);
73
+ this.stats.entryCount = this.cache.size;
74
+ return true;
75
+ }
76
+ return false;
77
+ }
78
+ has(key) {
79
+ const entry = this.cache.get(key);
80
+ if (!entry) return false;
81
+ if (entry.ttl && Date.now() - entry.createdAt > entry.ttl) {
82
+ this.delete(key);
83
+ return false;
84
+ }
85
+ return true;
86
+ }
87
+ clear() {
88
+ this.cache.clear();
89
+ this.stats.currentSize = 0;
90
+ this.stats.entryCount = 0;
91
+ }
92
+ getStats() {
93
+ return { ...this.stats };
94
+ }
95
+ keys() {
96
+ return Array.from(this.cache.keys());
97
+ }
98
+ size() {
99
+ return this.cache.size;
100
+ }
101
+ prune() {
102
+ let pruned = 0;
103
+ const now = Date.now();
104
+ for (const [key, entry] of this.cache) {
105
+ if (entry.ttl && now - entry.createdAt > entry.ttl) {
106
+ this.delete(key);
107
+ pruned++;
108
+ }
109
+ }
110
+ return pruned;
111
+ }
112
+ shouldEvict(newSize) {
113
+ if (this.cache.size >= this.config.maxEntries) return true;
114
+ if (this.stats.currentSize + newSize > this.config.maxSize) return true;
115
+ return false;
116
+ }
117
+ evictOne() {
118
+ if (this.cache.size === 0) return;
119
+ let keyToEvict = null;
120
+ switch (this.config.evictionPolicy) {
121
+ case "lru":
122
+ keyToEvict = this.findLRU();
123
+ break;
124
+ case "lfu":
125
+ keyToEvict = this.findLFU();
126
+ break;
127
+ case "fifo":
128
+ keyToEvict = this.findFIFO();
129
+ break;
130
+ case "ttl":
131
+ keyToEvict = this.findOldestTTL();
132
+ break;
133
+ }
134
+ if (keyToEvict) {
135
+ this.delete(keyToEvict);
136
+ this.stats.evictions++;
137
+ }
138
+ }
139
+ findLRU() {
140
+ let oldest = null;
141
+ let oldestKey = null;
142
+ for (const [key, entry] of this.cache) {
143
+ if (!oldest || entry.accessedAt < oldest.accessedAt) {
144
+ oldest = entry;
145
+ oldestKey = key;
146
+ }
147
+ }
148
+ return oldestKey;
149
+ }
150
+ findLFU() {
151
+ let least = null;
152
+ let leastKey = null;
153
+ for (const [key, entry] of this.cache) {
154
+ if (!least || entry.accessCount < least.accessCount) {
155
+ least = entry;
156
+ leastKey = key;
157
+ }
158
+ }
159
+ return leastKey;
160
+ }
161
+ findFIFO() {
162
+ let oldest = null;
163
+ let oldestKey = null;
164
+ for (const [key, entry] of this.cache) {
165
+ if (!oldest || entry.createdAt < oldest.createdAt) {
166
+ oldest = entry;
167
+ oldestKey = key;
168
+ }
169
+ }
170
+ return oldestKey;
171
+ }
172
+ findOldestTTL() {
173
+ let closestKey = null;
174
+ let closestExpiry = Infinity;
175
+ const now = Date.now();
176
+ for (const [key, entry] of this.cache) {
177
+ if (entry.ttl) {
178
+ const expiry = entry.createdAt + entry.ttl - now;
179
+ if (expiry < closestExpiry) {
180
+ closestKey = key;
181
+ closestExpiry = expiry;
182
+ }
183
+ }
184
+ }
185
+ return closestKey || this.findLRU();
186
+ }
187
+ estimateSize(value) {
188
+ try {
189
+ return JSON.stringify(value).length * 2;
190
+ } catch {
191
+ return 1024;
192
+ }
193
+ }
194
+ updateHitRate() {
195
+ const total = this.stats.hits + this.stats.misses;
196
+ this.stats.hitRate = total > 0 ? this.stats.hits / total : 0;
197
+ }
198
+ }
199
+ function createAdvancedCache(config) {
200
+ return new AdvancedCache(config);
201
+ }
202
+ export {
203
+ AdvancedCache,
204
+ createAdvancedCache
205
+ };
206
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/caching/index.ts"],"sourcesContent":["/**\n * Advanced Caching Module\n *\n * Provides configurable caching with multiple eviction policies.\n */\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type EvictionPolicy = 'lru' | 'lfu' | 'fifo' | 'ttl';\n\nexport interface CacheEntry<T> {\n key: string;\n value: T;\n createdAt: number;\n accessedAt: number;\n accessCount: number;\n ttl?: number;\n size: number;\n}\n\nexport interface CacheConfig {\n maxSize?: number;\n maxEntries?: number;\n defaultTtl?: number;\n evictionPolicy?: EvictionPolicy;\n enableStats?: boolean;\n}\n\nexport interface CacheStats {\n hits: number;\n misses: number;\n hitRate: number;\n entryCount: number;\n currentSize: number;\n evictions: number;\n}\n\n// ============================================================================\n// Advanced Cache Implementation\n// ============================================================================\n\nexport class AdvancedCache<T = unknown> {\n private cache: Map<string, CacheEntry<T>> = new Map();\n private config: Required<CacheConfig>;\n private stats: CacheStats = {\n hits: 0,\n misses: 0,\n hitRate: 0,\n entryCount: 0,\n currentSize: 0,\n evictions: 0,\n };\n\n constructor(config: CacheConfig = {}) {\n this.config = {\n maxSize: config.maxSize || 100 * 1024 * 1024,\n maxEntries: config.maxEntries || 10000,\n defaultTtl: config.defaultTtl || 3600000,\n evictionPolicy: config.evictionPolicy || 'lru',\n enableStats: config.enableStats ?? true,\n };\n }\n\n get(key: string): T | undefined {\n const entry = this.cache.get(key);\n if (!entry) {\n if (this.config.enableStats) {\n this.stats.misses++;\n this.updateHitRate();\n }\n return undefined;\n }\n\n if (entry.ttl && Date.now() - entry.createdAt > entry.ttl) {\n this.delete(key);\n if (this.config.enableStats) {\n this.stats.misses++;\n this.updateHitRate();\n }\n return undefined;\n }\n\n entry.accessedAt = Date.now();\n entry.accessCount++;\n\n if (this.config.enableStats) {\n this.stats.hits++;\n this.updateHitRate();\n }\n\n return entry.value;\n }\n\n set(key: string, value: T, ttl?: number): void {\n const size = this.estimateSize(value);\n\n while (this.shouldEvict(size)) {\n this.evictOne();\n }\n\n const entry: CacheEntry<T> = {\n key,\n value,\n createdAt: Date.now(),\n accessedAt: Date.now(),\n accessCount: 1,\n ttl: ttl || this.config.defaultTtl,\n size,\n };\n\n const existing = this.cache.get(key);\n if (existing) {\n this.stats.currentSize -= existing.size;\n }\n this.stats.currentSize += size;\n\n this.cache.set(key, entry);\n this.stats.entryCount = this.cache.size;\n }\n\n delete(key: string): boolean {\n const entry = this.cache.get(key);\n if (entry) {\n this.stats.currentSize -= entry.size;\n this.cache.delete(key);\n this.stats.entryCount = this.cache.size;\n return true;\n }\n return false;\n }\n\n has(key: string): boolean {\n const entry = this.cache.get(key);\n if (!entry) return false;\n if (entry.ttl && Date.now() - entry.createdAt > entry.ttl) {\n this.delete(key);\n return false;\n }\n return true;\n }\n\n clear(): void {\n this.cache.clear();\n this.stats.currentSize = 0;\n this.stats.entryCount = 0;\n }\n\n getStats(): CacheStats {\n return { ...this.stats };\n }\n\n keys(): string[] {\n return Array.from(this.cache.keys());\n }\n\n size(): number {\n return this.cache.size;\n }\n\n prune(): number {\n let pruned = 0;\n const now = Date.now();\n\n for (const [key, entry] of this.cache) {\n if (entry.ttl && now - entry.createdAt > entry.ttl) {\n this.delete(key);\n pruned++;\n }\n }\n\n return pruned;\n }\n\n private shouldEvict(newSize: number): boolean {\n if (this.cache.size >= this.config.maxEntries) return true;\n if (this.stats.currentSize + newSize > this.config.maxSize) return true;\n return false;\n }\n\n private evictOne(): void {\n if (this.cache.size === 0) return;\n\n let keyToEvict: string | null = null;\n\n switch (this.config.evictionPolicy) {\n case 'lru':\n keyToEvict = this.findLRU();\n break;\n case 'lfu':\n keyToEvict = this.findLFU();\n break;\n case 'fifo':\n keyToEvict = this.findFIFO();\n break;\n case 'ttl':\n keyToEvict = this.findOldestTTL();\n break;\n }\n\n if (keyToEvict) {\n this.delete(keyToEvict);\n this.stats.evictions++;\n }\n }\n\n private findLRU(): string | null {\n let oldest: CacheEntry<T> | null = null;\n let oldestKey: string | null = null;\n\n for (const [key, entry] of this.cache) {\n if (!oldest || entry.accessedAt < oldest.accessedAt) {\n oldest = entry;\n oldestKey = key;\n }\n }\n return oldestKey;\n }\n\n private findLFU(): string | null {\n let least: CacheEntry<T> | null = null;\n let leastKey: string | null = null;\n\n for (const [key, entry] of this.cache) {\n if (!least || entry.accessCount < least.accessCount) {\n least = entry;\n leastKey = key;\n }\n }\n return leastKey;\n }\n\n private findFIFO(): string | null {\n let oldest: CacheEntry<T> | null = null;\n let oldestKey: string | null = null;\n\n for (const [key, entry] of this.cache) {\n if (!oldest || entry.createdAt < oldest.createdAt) {\n oldest = entry;\n oldestKey = key;\n }\n }\n return oldestKey;\n }\n\n private findOldestTTL(): string | null {\n let closest: CacheEntry<T> | null = null;\n let closestKey: string | null = null;\n let closestExpiry = Infinity;\n const now = Date.now();\n\n for (const [key, entry] of this.cache) {\n if (entry.ttl) {\n const expiry = entry.createdAt + entry.ttl - now;\n if (expiry < closestExpiry) {\n closest = entry;\n closestKey = key;\n closestExpiry = expiry;\n }\n }\n }\n return closestKey || this.findLRU();\n }\n\n private estimateSize(value: T): number {\n try {\n return JSON.stringify(value).length * 2;\n } catch {\n return 1024;\n }\n }\n\n private updateHitRate(): void {\n const total = this.stats.hits + this.stats.misses;\n this.stats.hitRate = total > 0 ? this.stats.hits / total : 0;\n }\n}\n\nexport function createAdvancedCache<T = unknown>(config?: CacheConfig): AdvancedCache<T> {\n return new AdvancedCache<T>(config);\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,254 @@
1
+ /**
2
+ * LRU Cache Implementation
3
+ *
4
+ * Advanced cache implementation supporting multiple eviction policies,
5
+ * TTL management, tag-based operations, and comprehensive statistics.
6
+ *
7
+ * @module caching/lru-cache
8
+ */
9
+ import { EventEmitter } from 'events';
10
+ import type { CacheConfig, CacheStats, EvictionPolicy, CacheSetOptions } from './types.js';
11
+ /**
12
+ * Cache event types emitted by AdvancedCache
13
+ */
14
+ export interface CacheEvents<T> {
15
+ set: (key: string, value: T) => void;
16
+ get: (key: string, value: T | undefined) => void;
17
+ delete: (key: string) => void;
18
+ evict: (key: string) => void;
19
+ clear: () => void;
20
+ expire: (key: string) => void;
21
+ }
22
+ /**
23
+ * Advanced Cache with multiple eviction policies
24
+ *
25
+ * Features:
26
+ * - LRU, LFU, FIFO, and TTL-based eviction policies
27
+ * - Tag-based grouping and batch operations
28
+ * - Automatic TTL expiration with periodic cleanup
29
+ * - Comprehensive statistics and monitoring
30
+ * - Event emission for cache operations
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * const cache = new AdvancedCache<User>({
35
+ * maxSize: 50 * 1024 * 1024, // 50MB
36
+ * maxEntries: 1000,
37
+ * defaultTTL: 300000, // 5 minutes
38
+ * evictionPolicy: 'lru',
39
+ * onEvict: (key, value) => console.log(`Evicted: ${key}`)
40
+ * });
41
+ *
42
+ * cache.set('user:123', userData, { tags: ['user', 'active'] });
43
+ * const user = cache.get<User>('user:123');
44
+ *
45
+ * // Delete all entries with 'user' tag
46
+ * cache.deleteByTag('user');
47
+ * ```
48
+ */
49
+ export declare class AdvancedCache<T = any> extends EventEmitter {
50
+ private cache;
51
+ private config;
52
+ private stats;
53
+ private cleanupTimer?;
54
+ /**
55
+ * Create a new AdvancedCache instance
56
+ *
57
+ * @param config - Partial cache configuration (defaults will be applied)
58
+ */
59
+ constructor(config?: Partial<CacheConfig>);
60
+ /**
61
+ * Get a value from the cache
62
+ *
63
+ * @param key - The cache key to retrieve
64
+ * @returns The cached value or undefined if not found/expired
65
+ */
66
+ get<V extends T>(key: string): V | undefined;
67
+ /**
68
+ * Set a value in the cache
69
+ *
70
+ * @param key - The cache key
71
+ * @param value - The value to cache
72
+ * @param options - Optional settings for TTL and tags
73
+ */
74
+ set(key: string, value: T, options?: CacheSetOptions): void;
75
+ /**
76
+ * Check if a key exists in the cache and is not expired
77
+ *
78
+ * @param key - The cache key to check
79
+ * @returns True if key exists and is not expired
80
+ */
81
+ has(key: string): boolean;
82
+ /**
83
+ * Delete an entry from the cache
84
+ *
85
+ * @param key - The cache key to delete
86
+ * @returns True if the entry was deleted
87
+ */
88
+ delete(key: string): boolean;
89
+ /**
90
+ * Clear all entries from the cache
91
+ */
92
+ clear(): void;
93
+ /**
94
+ * Get all entries with a specific tag
95
+ *
96
+ * @param tag - The tag to filter by
97
+ * @returns Array of values with the specified tag
98
+ */
99
+ getByTag(tag: string): T[];
100
+ /**
101
+ * Get all keys with a specific tag
102
+ *
103
+ * @param tag - The tag to filter by
104
+ * @returns Array of keys with the specified tag
105
+ */
106
+ getKeysByTag(tag: string): string[];
107
+ /**
108
+ * Delete all entries with a specific tag
109
+ *
110
+ * @param tag - The tag to filter by
111
+ * @returns Number of entries deleted
112
+ */
113
+ deleteByTag(tag: string): number;
114
+ /**
115
+ * Get all unique tags in the cache
116
+ *
117
+ * @returns Set of all tags
118
+ */
119
+ getTags(): Set<string>;
120
+ /**
121
+ * Get cache statistics
122
+ *
123
+ * @returns Current cache statistics
124
+ */
125
+ getStats(): CacheStats;
126
+ /**
127
+ * Reset statistics counters
128
+ */
129
+ resetStats(): void;
130
+ /**
131
+ * Get the current eviction policy
132
+ */
133
+ getEvictionPolicy(): EvictionPolicy;
134
+ /**
135
+ * Change the eviction policy
136
+ *
137
+ * @param policy - The new eviction policy
138
+ */
139
+ setEvictionPolicy(policy: EvictionPolicy): void;
140
+ /**
141
+ * Get all keys in the cache
142
+ *
143
+ * @returns Array of all cache keys
144
+ */
145
+ keys(): string[];
146
+ /**
147
+ * Get all values in the cache
148
+ *
149
+ * @returns Array of all cached values
150
+ */
151
+ values(): T[];
152
+ /**
153
+ * Get all entries in the cache
154
+ *
155
+ * @returns Array of [key, value] pairs
156
+ */
157
+ entries(): [string, T][];
158
+ /**
159
+ * Get the number of entries in the cache
160
+ */
161
+ get size(): number;
162
+ /**
163
+ * Update the TTL for an existing entry
164
+ *
165
+ * @param key - The cache key
166
+ * @param ttl - New TTL in milliseconds
167
+ * @returns True if the entry was updated
168
+ */
169
+ touch(key: string, ttl?: number): boolean;
170
+ /**
171
+ * Get or set a value using a factory function
172
+ *
173
+ * @param key - The cache key
174
+ * @param factory - Function to create value if not cached
175
+ * @param options - Optional settings for TTL and tags
176
+ * @returns The cached or newly created value
177
+ */
178
+ getOrSet<V extends T>(key: string, factory: () => V | Promise<V>, options?: CacheSetOptions): Promise<V>;
179
+ /**
180
+ * Get or set a value synchronously using a factory function
181
+ *
182
+ * @param key - The cache key
183
+ * @param factory - Function to create value if not cached
184
+ * @param options - Optional settings for TTL and tags
185
+ * @returns The cached or newly created value
186
+ */
187
+ getOrSetSync<V extends T>(key: string, factory: () => V, options?: CacheSetOptions): V;
188
+ /**
189
+ * Check if an entry is expired
190
+ */
191
+ private isExpired;
192
+ /**
193
+ * Check if eviction is needed for a new entry of given size
194
+ */
195
+ private needsEviction;
196
+ /**
197
+ * Evict one entry based on the eviction policy
198
+ *
199
+ * @returns True if an entry was evicted
200
+ */
201
+ private evictOne;
202
+ /**
203
+ * Select a candidate for eviction based on policy
204
+ */
205
+ private selectEvictionCandidate;
206
+ /**
207
+ * Compare two entries for eviction (returns true if entry should be evicted over candidate)
208
+ */
209
+ private compareForEviction;
210
+ /**
211
+ * Estimate the size of a value in bytes
212
+ */
213
+ private estimateSize;
214
+ /**
215
+ * Record access time for statistics
216
+ */
217
+ private recordAccessTime;
218
+ /**
219
+ * Start periodic cleanup of expired entries
220
+ */
221
+ private startCleanup;
222
+ /**
223
+ * Destroy the cache and release resources
224
+ */
225
+ destroy(): void;
226
+ }
227
+ /**
228
+ * Create a new AdvancedCache instance
229
+ *
230
+ * @param config - Partial cache configuration
231
+ * @returns A new AdvancedCache instance
232
+ *
233
+ * @example
234
+ * ```typescript
235
+ * const cache = createAdvancedCache<string>({
236
+ * maxEntries: 1000,
237
+ * evictionPolicy: 'lfu'
238
+ * });
239
+ * ```
240
+ */
241
+ export declare function createAdvancedCache<T = any>(config?: Partial<CacheConfig>): AdvancedCache<T>;
242
+ /**
243
+ * Create a cache with preloaded entries
244
+ *
245
+ * @param entries - Initial entries to populate the cache
246
+ * @param config - Partial cache configuration
247
+ * @returns A new AdvancedCache instance with preloaded entries
248
+ */
249
+ export declare function createPreloadedCache<T = any>(entries: Array<{
250
+ key: string;
251
+ value: T;
252
+ options?: CacheSetOptions;
253
+ }>, config?: Partial<CacheConfig>): AdvancedCache<T>;
254
+ //# sourceMappingURL=lru-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lru-cache.d.ts","sourceRoot":"","sources":["../../src/caching/lru-cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Advanced Caching Types
3
+ *
4
+ * Type definitions for the advanced caching system supporting multiple
5
+ * eviction policies, TTL management, and comprehensive cache statistics.
6
+ *
7
+ * @module caching/types
8
+ */
9
+ /**
10
+ * Eviction policy for cache entries when capacity is reached
11
+ *
12
+ * - lru: Least Recently Used - evicts entries that haven't been accessed recently
13
+ * - lfu: Least Frequently Used - evicts entries with lowest access count
14
+ * - fifo: First In First Out - evicts oldest entries first
15
+ * - ttl: Time To Live - evicts entries closest to expiration
16
+ */
17
+ export type EvictionPolicy = 'lru' | 'lfu' | 'fifo' | 'ttl';
18
+ /**
19
+ * Cache entry storing value with metadata for eviction decisions
20
+ */
21
+ export interface CacheEntry<T> {
22
+ /** Unique key for the cache entry */
23
+ key: string;
24
+ /** The cached value */
25
+ value: T;
26
+ /** Estimated size of the entry in bytes */
27
+ size: number;
28
+ /** Unix timestamp when entry was created */
29
+ createdAt: number;
30
+ /** Unix timestamp when entry was last accessed */
31
+ accessedAt: number;
32
+ /** Number of times entry has been accessed */
33
+ accessCount: number;
34
+ /** Time-to-live in milliseconds (optional) */
35
+ ttl?: number;
36
+ /** Optional tags for grouping and batch operations */
37
+ tags?: string[];
38
+ }
39
+ /**
40
+ * Configuration options for the cache
41
+ */
42
+ export interface CacheConfig {
43
+ /** Maximum total size of cache in bytes */
44
+ maxSize: number;
45
+ /** Maximum number of entries in cache */
46
+ maxEntries: number;
47
+ /** Default TTL for entries in milliseconds */
48
+ defaultTTL: number;
49
+ /** Policy used for evicting entries when cache is full */
50
+ evictionPolicy: EvictionPolicy;
51
+ /** Optional callback when an entry is evicted */
52
+ onEvict?: (key: string, value: any) => void;
53
+ }
54
+ /**
55
+ * Cache statistics for monitoring and diagnostics
56
+ */
57
+ export interface CacheStats {
58
+ /** Current number of entries in cache */
59
+ entries: number;
60
+ /** Current total size of all entries in bytes */
61
+ size: number;
62
+ /** Total number of cache hits */
63
+ hits: number;
64
+ /** Total number of cache misses */
65
+ misses: number;
66
+ /** Hit rate as a ratio (0-1) */
67
+ hitRate: number;
68
+ /** Total number of evictions */
69
+ evictions: number;
70
+ /** Average access time in milliseconds */
71
+ avgAccessTime: number;
72
+ }
73
+ /**
74
+ * Options for cache set operations
75
+ */
76
+ export interface CacheSetOptions {
77
+ /** TTL override for this entry in milliseconds */
78
+ ttl?: number;
79
+ /** Tags for grouping entries */
80
+ tags?: string[];
81
+ }
82
+ /**
83
+ * Result of a cache operation with timing information
84
+ */
85
+ export interface CacheOperationResult<T> {
86
+ /** Whether the operation succeeded */
87
+ success: boolean;
88
+ /** The value if operation was successful */
89
+ value?: T;
90
+ /** Time taken for the operation in milliseconds */
91
+ duration: number;
92
+ /** Whether the result came from cache */
93
+ fromCache: boolean;
94
+ }
95
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/caching/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,qCAAqC;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,uBAAuB;IACvB,KAAK,EAAE,CAAC,CAAC;IACT,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,cAAc,EAAE,cAAc,CAAC;IAC/B,iDAAiD;IACjD,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACrC,sCAAsC;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,SAAS,EAAE,OAAO,CAAC;CACpB"}