causantic 0.7.1 → 0.8.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 (131) hide show
  1. package/README.md +5 -4
  2. package/config.schema.json +46 -0
  3. package/dist/cli/commands/init/api-key.d.ts +2 -0
  4. package/dist/cli/commands/init/api-key.d.ts.map +1 -0
  5. package/dist/cli/commands/init/api-key.js +26 -0
  6. package/dist/cli/commands/init/api-key.js.map +1 -0
  7. package/dist/cli/commands/init/encryption.d.ts +2 -0
  8. package/dist/cli/commands/init/encryption.d.ts.map +1 -0
  9. package/dist/cli/commands/init/encryption.js +104 -0
  10. package/dist/cli/commands/init/encryption.js.map +1 -0
  11. package/dist/cli/commands/init/health.d.ts +2 -0
  12. package/dist/cli/commands/init/health.d.ts.map +1 -0
  13. package/dist/cli/commands/init/health.js +15 -0
  14. package/dist/cli/commands/init/health.js.map +1 -0
  15. package/dist/cli/commands/init/hooks.d.ts +2 -0
  16. package/dist/cli/commands/init/hooks.d.ts.map +1 -0
  17. package/dist/cli/commands/init/hooks.js +92 -0
  18. package/dist/cli/commands/init/hooks.js.map +1 -0
  19. package/dist/cli/commands/init/index.d.ts +3 -0
  20. package/dist/cli/commands/init/index.d.ts.map +1 -0
  21. package/dist/cli/commands/init/index.js +95 -0
  22. package/dist/cli/commands/init/index.js.map +1 -0
  23. package/dist/cli/commands/init/ingest.d.ts +2 -0
  24. package/dist/cli/commands/init/ingest.d.ts.map +1 -0
  25. package/dist/cli/commands/init/ingest.js +171 -0
  26. package/dist/cli/commands/init/ingest.js.map +1 -0
  27. package/dist/cli/commands/init/mcp-config.d.ts +9 -0
  28. package/dist/cli/commands/init/mcp-config.d.ts.map +1 -0
  29. package/dist/cli/commands/init/mcp-config.js +191 -0
  30. package/dist/cli/commands/init/mcp-config.js.map +1 -0
  31. package/dist/cli/commands/init/shared.d.ts +9 -0
  32. package/dist/cli/commands/init/shared.d.ts.map +1 -0
  33. package/dist/cli/commands/init/shared.js +58 -0
  34. package/dist/cli/commands/init/shared.js.map +1 -0
  35. package/dist/cli/commands/init/skills.d.ts +2 -0
  36. package/dist/cli/commands/init/skills.d.ts.map +1 -0
  37. package/dist/cli/commands/init/skills.js +68 -0
  38. package/dist/cli/commands/init/skills.js.map +1 -0
  39. package/dist/cli/commands/reindex.d.ts +8 -0
  40. package/dist/cli/commands/reindex.d.ts.map +1 -0
  41. package/dist/cli/commands/reindex.js +143 -0
  42. package/dist/cli/commands/reindex.js.map +1 -0
  43. package/dist/cli/index.js +4 -7
  44. package/dist/cli/index.js.map +1 -1
  45. package/dist/cli/skill-templates.d.ts.map +1 -1
  46. package/dist/cli/skill-templates.js +800 -317
  47. package/dist/cli/skill-templates.js.map +1 -1
  48. package/dist/clusters/cluster-manager.d.ts +23 -0
  49. package/dist/clusters/cluster-manager.d.ts.map +1 -1
  50. package/dist/clusters/cluster-manager.js +134 -0
  51. package/dist/clusters/cluster-manager.js.map +1 -1
  52. package/dist/clusters/hdbscan-model-store.d.ts +37 -0
  53. package/dist/clusters/hdbscan-model-store.d.ts.map +1 -0
  54. package/dist/clusters/hdbscan-model-store.js +73 -0
  55. package/dist/clusters/hdbscan-model-store.js.map +1 -0
  56. package/dist/config/loader.d.ts +8 -0
  57. package/dist/config/loader.d.ts.map +1 -1
  58. package/dist/config/loader.js +38 -0
  59. package/dist/config/loader.js.map +1 -1
  60. package/dist/config/memory-config.d.ts +6 -0
  61. package/dist/config/memory-config.d.ts.map +1 -1
  62. package/dist/config/memory-config.js +6 -0
  63. package/dist/config/memory-config.js.map +1 -1
  64. package/dist/dashboard/client/assets/index-Bv5lFW-1.js +17 -0
  65. package/dist/dashboard/client/assets/index-DTriNsi9.css +1 -0
  66. package/dist/dashboard/client/index.html +2 -2
  67. package/dist/ingest/ingest-session.d.ts.map +1 -1
  68. package/dist/ingest/ingest-session.js +165 -217
  69. package/dist/ingest/ingest-session.js.map +1 -1
  70. package/dist/maintenance/scheduler.d.ts.map +1 -1
  71. package/dist/maintenance/scheduler.js +17 -6
  72. package/dist/maintenance/scheduler.js.map +1 -1
  73. package/dist/maintenance/tasks/update-clusters.d.ts +9 -0
  74. package/dist/maintenance/tasks/update-clusters.d.ts.map +1 -1
  75. package/dist/maintenance/tasks/update-clusters.js +26 -7
  76. package/dist/maintenance/tasks/update-clusters.js.map +1 -1
  77. package/dist/mcp/server.d.ts.map +1 -1
  78. package/dist/mcp/server.js +1 -6
  79. package/dist/mcp/server.js.map +1 -1
  80. package/dist/mcp/services.d.ts +27 -0
  81. package/dist/mcp/services.d.ts.map +1 -0
  82. package/dist/mcp/services.js +99 -0
  83. package/dist/mcp/services.js.map +1 -0
  84. package/dist/mcp/tools.d.ts.map +1 -1
  85. package/dist/mcp/tools.js +39 -102
  86. package/dist/mcp/tools.js.map +1 -1
  87. package/dist/models/embedder.d.ts.map +1 -1
  88. package/dist/models/embedder.js +2 -0
  89. package/dist/models/embedder.js.map +1 -1
  90. package/dist/retrieval/chain-assembler.js +2 -6
  91. package/dist/retrieval/chain-assembler.js.map +1 -1
  92. package/dist/retrieval/chain-walker.d.ts +12 -6
  93. package/dist/retrieval/chain-walker.d.ts.map +1 -1
  94. package/dist/retrieval/chain-walker.js +121 -84
  95. package/dist/retrieval/chain-walker.js.map +1 -1
  96. package/dist/retrieval/cluster-expander.d.ts +1 -1
  97. package/dist/retrieval/cluster-expander.d.ts.map +1 -1
  98. package/dist/retrieval/cluster-expander.js +13 -1
  99. package/dist/retrieval/cluster-expander.js.map +1 -1
  100. package/dist/retrieval/formatting.d.ts +13 -0
  101. package/dist/retrieval/formatting.d.ts.map +1 -0
  102. package/dist/retrieval/formatting.js +27 -0
  103. package/dist/retrieval/formatting.js.map +1 -0
  104. package/dist/retrieval/search-assembler.d.ts.map +1 -1
  105. package/dist/retrieval/search-assembler.js +21 -15
  106. package/dist/retrieval/search-assembler.js.map +1 -1
  107. package/dist/storage/feedback-store.d.ts +34 -0
  108. package/dist/storage/feedback-store.d.ts.map +1 -0
  109. package/dist/storage/feedback-store.js +67 -0
  110. package/dist/storage/feedback-store.js.map +1 -0
  111. package/dist/storage/migrations.d.ts.map +1 -1
  112. package/dist/storage/migrations.js +68 -0
  113. package/dist/storage/migrations.js.map +1 -1
  114. package/dist/storage/schema.sql +24 -2
  115. package/dist/storage/vector-store.d.ts +20 -0
  116. package/dist/storage/vector-store.d.ts.map +1 -1
  117. package/dist/storage/vector-store.js +66 -26
  118. package/dist/storage/vector-store.js.map +1 -1
  119. package/dist/utils/version.d.ts +2 -0
  120. package/dist/utils/version.d.ts.map +1 -0
  121. package/dist/utils/version.js +7 -0
  122. package/dist/utils/version.js.map +1 -0
  123. package/package.json +8 -7
  124. package/src/dashboard/client/package-lock.json +179 -880
  125. package/src/dashboard/client/package.json +3 -3
  126. package/dist/cli/commands/init.d.ts +0 -3
  127. package/dist/cli/commands/init.d.ts.map +0 -1
  128. package/dist/cli/commands/init.js +0 -781
  129. package/dist/cli/commands/init.js.map +0 -1
  130. package/dist/dashboard/client/assets/index-BmZeW-Jd.css +0 -1
  131. package/dist/dashboard/client/assets/index-Br0W1mEc.js +0 -166
@@ -42,6 +42,8 @@ export interface MemoryConfig {
42
42
  /** 0 = pure diversity, 1 = pure relevance. Default: 0.7 */
43
43
  lambda: number;
44
44
  };
45
+ /** Relevance feedback weight for cluster expansion scoring. Default: 0.1 */
46
+ feedbackWeight: number;
45
47
  /** Recency boost configuration for time-decay scoring */
46
48
  recency: {
47
49
  /** Amplitude of the time-decay boost. Default: 0.3 */
@@ -49,6 +51,10 @@ export interface MemoryConfig {
49
51
  /** Half-life in hours for the decay function. Default: 48 */
50
52
  halfLifeHours: number;
51
53
  };
54
+ /** Ratio of new chunks that triggers a full recluster. Default: 0.3 (30%). */
55
+ incrementalClusterThreshold: number;
56
+ /** Embedding model ID (from model registry). Default: 'jina-small'. */
57
+ embeddingModel: string;
52
58
  /** Path to SQLite database file */
53
59
  dbPath: string;
54
60
  /** Path to LanceDB vector store directory */
@@ -1 +1 @@
1
- {"version":3,"file":"memory-config.d.ts","sourceRoot":"","sources":["../../src/config/memory-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,YAAY;IAE3B,kEAAkE;IAClE,gBAAgB,EAAE,MAAM,CAAC;IACzB,mCAAmC;IACnC,cAAc,EAAE,MAAM,CAAC;IAGvB,kCAAkC;IAClC,aAAa,EAAE,MAAM,CAAC;IAGtB,gDAAgD;IAChD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,4CAA4C;IAC5C,oBAAoB,EAAE,MAAM,CAAC;IAG7B,mDAAmD;IACnD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gDAAgD;IAChD,sBAAsB,EAAE,MAAM,CAAC;IAG/B,oDAAoD;IACpD,YAAY,EAAE;QACZ,iCAAiC;QACjC,IAAI,EAAE,MAAM,CAAC;QACb,uCAAuC;QACvC,YAAY,EAAE,MAAM,CAAC;QACrB,wCAAwC;QACxC,aAAa,EAAE,MAAM,CAAC;QACtB,wCAAwC;QACxC,kBAAkB,EAAE,MAAM,CAAC;KAC5B,CAAC;IAEF,2DAA2D;IAC3D,gBAAgB,EAAE;QAChB,kCAAkC;QAClC,WAAW,EAAE,MAAM,CAAC;QACpB,+BAA+B;QAC/B,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IAEF,+DAA+D;IAC/D,YAAY,EAAE;QACZ,2DAA2D;QAC3D,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF,yDAAyD;IACzD,OAAO,EAAE;QACP,sDAAsD;QACtD,WAAW,EAAE,MAAM,CAAC;QACpB,6DAA6D;QAC7D,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IAGF,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,YAsC5B,CAAC;AAEF;;GAEG;AACH,wBAAgB,SAAS,CAAC,SAAS,GAAE,OAAO,CAAC,YAAY,CAAM,GAAG,YAAY,CAE7E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMhD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE,CAuB7D"}
1
+ {"version":3,"file":"memory-config.d.ts","sourceRoot":"","sources":["../../src/config/memory-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,YAAY;IAE3B,kEAAkE;IAClE,gBAAgB,EAAE,MAAM,CAAC;IACzB,mCAAmC;IACnC,cAAc,EAAE,MAAM,CAAC;IAGvB,kCAAkC;IAClC,aAAa,EAAE,MAAM,CAAC;IAGtB,gDAAgD;IAChD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,4CAA4C;IAC5C,oBAAoB,EAAE,MAAM,CAAC;IAG7B,mDAAmD;IACnD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gDAAgD;IAChD,sBAAsB,EAAE,MAAM,CAAC;IAG/B,oDAAoD;IACpD,YAAY,EAAE;QACZ,iCAAiC;QACjC,IAAI,EAAE,MAAM,CAAC;QACb,uCAAuC;QACvC,YAAY,EAAE,MAAM,CAAC;QACrB,wCAAwC;QACxC,aAAa,EAAE,MAAM,CAAC;QACtB,wCAAwC;QACxC,kBAAkB,EAAE,MAAM,CAAC;KAC5B,CAAC;IAEF,2DAA2D;IAC3D,gBAAgB,EAAE;QAChB,kCAAkC;QAClC,WAAW,EAAE,MAAM,CAAC;QACpB,+BAA+B;QAC/B,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IAEF,+DAA+D;IAC/D,YAAY,EAAE;QACZ,2DAA2D;QAC3D,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF,4EAA4E;IAC5E,cAAc,EAAE,MAAM,CAAC;IAEvB,yDAAyD;IACzD,OAAO,EAAE;QACP,sDAAsD;QACtD,WAAW,EAAE,MAAM,CAAC;QACpB,6DAA6D;QAC7D,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IAGF,8EAA8E;IAC9E,2BAA2B,EAAE,MAAM,CAAC;IAGpC,uEAAuE;IACvE,cAAc,EAAE,MAAM,CAAC;IAGvB,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,YA+C5B,CAAC;AAEF;;GAEG;AACH,wBAAgB,SAAS,CAAC,SAAS,GAAE,OAAO,CAAC,YAAY,CAAM,GAAG,YAAY,CAE7E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMhD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE,CAuB7D"}
@@ -33,10 +33,16 @@ export const DEFAULT_CONFIG = {
33
33
  mmrReranking: {
34
34
  lambda: 0.7,
35
35
  },
36
+ // Relevance feedback
37
+ feedbackWeight: 0.1,
36
38
  recency: {
37
39
  decayFactor: 0.3,
38
40
  halfLifeHours: 48,
39
41
  },
42
+ // Clustering (incremental)
43
+ incrementalClusterThreshold: 0.3,
44
+ // Embedding
45
+ embeddingModel: 'jina-small',
40
46
  // Storage - defaults to ~/.causantic/
41
47
  dbPath: '~/.causantic/memory.db',
42
48
  vectorStorePath: '~/.causantic/vectors',
@@ -1 +1 @@
1
- {"version":3,"file":"memory-config.js","sourceRoot":"","sources":["../../src/config/memory-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAsEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAiB;IAC1C,aAAa;IACb,gBAAgB,EAAE,GAAG;IACrB,cAAc,EAAE,CAAC;IAEjB,gBAAgB;IAChB,aAAa,EAAE,EAAE,EAAE,kCAAkC;IAErD,cAAc;IACd,oBAAoB,EAAE,GAAG;IACzB,oBAAoB,EAAE,KAAK;IAE3B,cAAc;IACd,mBAAmB,EAAE,yBAAyB;IAC9C,sBAAsB,EAAE,EAAE,EAAE,qCAAqC;IAEjE,gBAAgB;IAChB,YAAY,EAAE;QACZ,IAAI,EAAE,EAAE;QACR,YAAY,EAAE,GAAG;QACjB,aAAa,EAAE,GAAG;QAClB,kBAAkB,EAAE,EAAE;KACvB;IACD,gBAAgB,EAAE;QAChB,WAAW,EAAE,CAAC;QACd,WAAW,EAAE,CAAC;KACf;IACD,YAAY,EAAE;QACZ,MAAM,EAAE,GAAG;KACZ;IACD,OAAO,EAAE;QACP,WAAW,EAAE,GAAG;QAChB,aAAa,EAAE,EAAE;KAClB;IAED,sCAAsC;IACtC,MAAM,EAAE,wBAAwB;IAChC,eAAe,EAAE,sBAAsB;CACxC,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,YAAmC,EAAE;IAC7D,OAAO,EAAE,GAAG,cAAc,EAAE,GAAG,SAAS,EAAE,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;QAC/D,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,MAAoB;IACjD,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,MAAM,CAAC,gBAAgB,IAAI,CAAC,IAAI,MAAM,CAAC,gBAAgB,IAAI,CAAC,EAAE,CAAC;QACjE,MAAM,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,MAAM,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,MAAM,CAAC,oBAAoB,GAAG,GAAG,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,MAAM,CAAC,oBAAoB,GAAG,GAAG,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,MAAM,CAAC,sBAAsB,GAAG,CAAC,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"memory-config.js","sourceRoot":"","sources":["../../src/config/memory-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAiFH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAiB;IAC1C,aAAa;IACb,gBAAgB,EAAE,GAAG;IACrB,cAAc,EAAE,CAAC;IAEjB,gBAAgB;IAChB,aAAa,EAAE,EAAE,EAAE,kCAAkC;IAErD,cAAc;IACd,oBAAoB,EAAE,GAAG;IACzB,oBAAoB,EAAE,KAAK;IAE3B,cAAc;IACd,mBAAmB,EAAE,yBAAyB;IAC9C,sBAAsB,EAAE,EAAE,EAAE,qCAAqC;IAEjE,gBAAgB;IAChB,YAAY,EAAE;QACZ,IAAI,EAAE,EAAE;QACR,YAAY,EAAE,GAAG;QACjB,aAAa,EAAE,GAAG;QAClB,kBAAkB,EAAE,EAAE;KACvB;IACD,gBAAgB,EAAE;QAChB,WAAW,EAAE,CAAC;QACd,WAAW,EAAE,CAAC;KACf;IACD,YAAY,EAAE;QACZ,MAAM,EAAE,GAAG;KACZ;IACD,qBAAqB;IACrB,cAAc,EAAE,GAAG;IAEnB,OAAO,EAAE;QACP,WAAW,EAAE,GAAG;QAChB,aAAa,EAAE,EAAE;KAClB;IAED,2BAA2B;IAC3B,2BAA2B,EAAE,GAAG;IAEhC,YAAY;IACZ,cAAc,EAAE,YAAY;IAE5B,sCAAsC;IACtC,MAAM,EAAE,wBAAwB;IAChC,eAAe,EAAE,sBAAsB;CACxC,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,YAAmC,EAAE;IAC7D,OAAO,EAAE,GAAG,cAAc,EAAE,GAAG,SAAS,EAAE,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;QAC/D,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,MAAoB;IACjD,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,MAAM,CAAC,gBAAgB,IAAI,CAAC,IAAI,MAAM,CAAC,gBAAgB,IAAI,CAAC,EAAE,CAAC;QACjE,MAAM,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,MAAM,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,MAAM,CAAC,oBAAoB,GAAG,GAAG,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,MAAM,CAAC,oBAAoB,GAAG,GAAG,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,MAAM,CAAC,sBAAsB,GAAG,CAAC,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}