@planu/cli 0.27.0 → 0.29.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 (273) hide show
  1. package/dist/config/model-routing-rules.json +98 -0
  2. package/dist/config/tool-groups.json +140 -0
  3. package/dist/engine/ai-cost-estimator/core.d.ts +1 -1
  4. package/dist/engine/ai-cost-estimator/core.d.ts.map +1 -1
  5. package/dist/engine/ai-cost-estimator/core.js +3 -167
  6. package/dist/engine/ai-cost-estimator/core.js.map +1 -1
  7. package/dist/engine/ai-cost-estimator/recommender.d.ts +8 -0
  8. package/dist/engine/ai-cost-estimator/recommender.d.ts.map +1 -0
  9. package/dist/engine/ai-cost-estimator/recommender.js +94 -0
  10. package/dist/engine/ai-cost-estimator/recommender.js.map +1 -0
  11. package/dist/engine/ai-cost-estimator/spec-loader.d.ts +13 -0
  12. package/dist/engine/ai-cost-estimator/spec-loader.d.ts.map +1 -0
  13. package/dist/engine/ai-cost-estimator/spec-loader.js +102 -0
  14. package/dist/engine/ai-cost-estimator/spec-loader.js.map +1 -0
  15. package/dist/engine/code-transforms/transform-engine.d.ts +7 -0
  16. package/dist/engine/code-transforms/transform-engine.d.ts.map +1 -0
  17. package/dist/engine/code-transforms/transform-engine.js +67 -0
  18. package/dist/engine/code-transforms/transform-engine.js.map +1 -0
  19. package/dist/engine/code-transforms/typescript/add-error-handling.d.ts +6 -0
  20. package/dist/engine/code-transforms/typescript/add-error-handling.d.ts.map +1 -0
  21. package/dist/engine/code-transforms/typescript/add-error-handling.js +92 -0
  22. package/dist/engine/code-transforms/typescript/add-error-handling.js.map +1 -0
  23. package/dist/engine/code-transforms/typescript/add-jsdoc.d.ts +6 -0
  24. package/dist/engine/code-transforms/typescript/add-jsdoc.d.ts.map +1 -0
  25. package/dist/engine/code-transforms/typescript/add-jsdoc.js +83 -0
  26. package/dist/engine/code-transforms/typescript/add-jsdoc.js.map +1 -0
  27. package/dist/engine/code-transforms/typescript/add-types.d.ts +3 -0
  28. package/dist/engine/code-transforms/typescript/add-types.d.ts.map +1 -0
  29. package/dist/engine/code-transforms/typescript/add-types.js +182 -0
  30. package/dist/engine/code-transforms/typescript/add-types.js.map +1 -0
  31. package/dist/engine/code-transforms/typescript/ast-utils.d.ts +38 -0
  32. package/dist/engine/code-transforms/typescript/ast-utils.d.ts.map +1 -0
  33. package/dist/engine/code-transforms/typescript/ast-utils.js +90 -0
  34. package/dist/engine/code-transforms/typescript/ast-utils.js.map +1 -0
  35. package/dist/engine/code-transforms/typescript/extract-interface.d.ts +6 -0
  36. package/dist/engine/code-transforms/typescript/extract-interface.d.ts.map +1 -0
  37. package/dist/engine/code-transforms/typescript/extract-interface.js +103 -0
  38. package/dist/engine/code-transforms/typescript/extract-interface.js.map +1 -0
  39. package/dist/engine/code-transforms/typescript/modernize-syntax.d.ts +3 -0
  40. package/dist/engine/code-transforms/typescript/modernize-syntax.d.ts.map +1 -0
  41. package/dist/engine/code-transforms/typescript/modernize-syntax.js +213 -0
  42. package/dist/engine/code-transforms/typescript/modernize-syntax.js.map +1 -0
  43. package/dist/engine/code-transforms/typescript/rename-symbol.d.ts +8 -0
  44. package/dist/engine/code-transforms/typescript/rename-symbol.d.ts.map +1 -0
  45. package/dist/engine/code-transforms/typescript/rename-symbol.js +40 -0
  46. package/dist/engine/code-transforms/typescript/rename-symbol.js.map +1 -0
  47. package/dist/engine/focus-tracker.d.ts.map +1 -1
  48. package/dist/engine/focus-tracker.js +1 -0
  49. package/dist/engine/focus-tracker.js.map +1 -1
  50. package/dist/engine/mermaid/core.d.ts +18 -0
  51. package/dist/engine/mermaid/core.d.ts.map +1 -0
  52. package/dist/engine/mermaid/core.js +88 -0
  53. package/dist/engine/mermaid/core.js.map +1 -0
  54. package/dist/engine/mermaid/diagram-generators.d.ts +22 -0
  55. package/dist/engine/mermaid/diagram-generators.d.ts.map +1 -0
  56. package/dist/engine/mermaid/diagram-generators.js +139 -0
  57. package/dist/engine/mermaid/diagram-generators.js.map +1 -0
  58. package/dist/engine/mermaid/helpers.d.ts +8 -0
  59. package/dist/engine/mermaid/helpers.d.ts.map +1 -0
  60. package/dist/engine/mermaid/helpers.js +61 -0
  61. package/dist/engine/mermaid/helpers.js.map +1 -0
  62. package/dist/engine/mermaid-generator.d.ts +2 -37
  63. package/dist/engine/mermaid-generator.d.ts.map +1 -1
  64. package/dist/engine/mermaid-generator.js +4 -276
  65. package/dist/engine/mermaid-generator.js.map +1 -1
  66. package/dist/engine/model-router/complexity-analyzer.d.ts +26 -0
  67. package/dist/engine/model-router/complexity-analyzer.d.ts.map +1 -0
  68. package/dist/engine/model-router/complexity-analyzer.js +182 -0
  69. package/dist/engine/model-router/complexity-analyzer.js.map +1 -0
  70. package/dist/engine/model-router/cost-estimator.d.ts +6 -0
  71. package/dist/engine/model-router/cost-estimator.d.ts.map +1 -0
  72. package/dist/engine/model-router/cost-estimator.js +60 -0
  73. package/dist/engine/model-router/cost-estimator.js.map +1 -0
  74. package/dist/engine/model-router/historical-learner.d.ts +26 -0
  75. package/dist/engine/model-router/historical-learner.d.ts.map +1 -0
  76. package/dist/engine/model-router/historical-learner.js +91 -0
  77. package/dist/engine/model-router/historical-learner.js.map +1 -0
  78. package/dist/engine/model-router/rules-engine.d.ts +13 -0
  79. package/dist/engine/model-router/rules-engine.d.ts.map +1 -0
  80. package/dist/engine/model-router/rules-engine.js +142 -0
  81. package/dist/engine/model-router/rules-engine.js.map +1 -0
  82. package/dist/engine/planu-config-writer.d.ts +2 -2
  83. package/dist/engine/planu-config-writer.d.ts.map +1 -1
  84. package/dist/engine/planu-config-writer.js +4 -6
  85. package/dist/engine/planu-config-writer.js.map +1 -1
  86. package/dist/engine/spec-coverage/criteria-mapper.d.ts +1 -2
  87. package/dist/engine/spec-coverage/criteria-mapper.d.ts.map +1 -1
  88. package/dist/engine/spec-coverage/criteria-mapper.js +4 -203
  89. package/dist/engine/spec-coverage/criteria-mapper.js.map +1 -1
  90. package/dist/engine/spec-coverage/keyword-extractor.d.ts +10 -0
  91. package/dist/engine/spec-coverage/keyword-extractor.d.ts.map +1 -0
  92. package/dist/engine/spec-coverage/keyword-extractor.js +147 -0
  93. package/dist/engine/spec-coverage/keyword-extractor.js.map +1 -0
  94. package/dist/engine/spec-coverage/test-matchers.d.ts +9 -0
  95. package/dist/engine/spec-coverage/test-matchers.d.ts.map +1 -0
  96. package/dist/engine/spec-coverage/test-matchers.js +59 -0
  97. package/dist/engine/spec-coverage/test-matchers.js.map +1 -0
  98. package/dist/engine/spec-migrator.d.ts +17 -0
  99. package/dist/engine/spec-migrator.d.ts.map +1 -0
  100. package/dist/engine/spec-migrator.js +119 -0
  101. package/dist/engine/spec-migrator.js.map +1 -0
  102. package/dist/engine/spec-templates/catalog-extra.d.ts +1 -1
  103. package/dist/engine/spec-templates/catalog-extra.d.ts.map +1 -1
  104. package/dist/engine/spec-templates/catalog-extra.js +8 -363
  105. package/dist/engine/spec-templates/catalog-extra.js.map +1 -1
  106. package/dist/engine/spec-templates/catalog.d.ts.map +1 -1
  107. package/dist/engine/spec-templates/catalog.js +10 -381
  108. package/dist/engine/spec-templates/catalog.js.map +1 -1
  109. package/dist/engine/spec-templates/templates-api-ui.d.ts +6 -0
  110. package/dist/engine/spec-templates/templates-api-ui.d.ts.map +1 -0
  111. package/dist/engine/spec-templates/templates-api-ui.js +188 -0
  112. package/dist/engine/spec-templates/templates-api-ui.js.map +1 -0
  113. package/dist/engine/spec-templates/templates-auth-crud.d.ts +6 -0
  114. package/dist/engine/spec-templates/templates-auth-crud.d.ts.map +1 -0
  115. package/dist/engine/spec-templates/templates-auth-crud.js +198 -0
  116. package/dist/engine/spec-templates/templates-auth-crud.js.map +1 -0
  117. package/dist/engine/spec-templates/templates-data-security.d.ts +6 -0
  118. package/dist/engine/spec-templates/templates-data-security.d.ts.map +1 -0
  119. package/dist/engine/spec-templates/templates-data-security.js +172 -0
  120. package/dist/engine/spec-templates/templates-data-security.js.map +1 -0
  121. package/dist/engine/spec-templates/templates-perf-integration.d.ts +6 -0
  122. package/dist/engine/spec-templates/templates-perf-integration.d.ts.map +1 -0
  123. package/dist/engine/spec-templates/templates-perf-integration.js +199 -0
  124. package/dist/engine/spec-templates/templates-perf-integration.js.map +1 -0
  125. package/dist/engine/tool-groups/context-analyzer.d.ts +11 -0
  126. package/dist/engine/tool-groups/context-analyzer.d.ts.map +1 -0
  127. package/dist/engine/tool-groups/context-analyzer.js +40 -0
  128. package/dist/engine/tool-groups/context-analyzer.js.map +1 -0
  129. package/dist/engine/tool-groups/group-manager.d.ts +35 -0
  130. package/dist/engine/tool-groups/group-manager.d.ts.map +1 -0
  131. package/dist/engine/tool-groups/group-manager.js +201 -0
  132. package/dist/engine/tool-groups/group-manager.js.map +1 -0
  133. package/dist/engine/vector-store/hnsw.d.ts +37 -0
  134. package/dist/engine/vector-store/hnsw.d.ts.map +1 -0
  135. package/dist/engine/vector-store/hnsw.js +294 -0
  136. package/dist/engine/vector-store/hnsw.js.map +1 -0
  137. package/dist/engine/vector-store/similarity.d.ts +21 -0
  138. package/dist/engine/vector-store/similarity.d.ts.map +1 -0
  139. package/dist/engine/vector-store/similarity.js +86 -0
  140. package/dist/engine/vector-store/similarity.js.map +1 -0
  141. package/dist/engine/vector-store/tfidf.d.ts +35 -0
  142. package/dist/engine/vector-store/tfidf.d.ts.map +1 -0
  143. package/dist/engine/vector-store/tfidf.js +255 -0
  144. package/dist/engine/vector-store/tfidf.js.map +1 -0
  145. package/dist/engine/web-fetcher/registry-loader.d.ts.map +1 -1
  146. package/dist/engine/web-fetcher/registry-loader.js +2 -0
  147. package/dist/engine/web-fetcher/registry-loader.js.map +1 -1
  148. package/dist/index.js +19 -0
  149. package/dist/index.js.map +1 -1
  150. package/dist/storage/vector-store/backend-factory.d.ts +9 -0
  151. package/dist/storage/vector-store/backend-factory.d.ts.map +1 -0
  152. package/dist/storage/vector-store/backend-factory.js +33 -0
  153. package/dist/storage/vector-store/backend-factory.js.map +1 -0
  154. package/dist/storage/vector-store/json-fallback.d.ts +21 -0
  155. package/dist/storage/vector-store/json-fallback.d.ts.map +1 -0
  156. package/dist/storage/vector-store/json-fallback.js +85 -0
  157. package/dist/storage/vector-store/json-fallback.js.map +1 -0
  158. package/dist/storage/vector-store/migrator.d.ts +10 -0
  159. package/dist/storage/vector-store/migrator.d.ts.map +1 -0
  160. package/dist/storage/vector-store/migrator.js +139 -0
  161. package/dist/storage/vector-store/migrator.js.map +1 -0
  162. package/dist/storage/vector-store/sqlite-adapter.d.ts +28 -0
  163. package/dist/storage/vector-store/sqlite-adapter.d.ts.map +1 -0
  164. package/dist/storage/vector-store/sqlite-adapter.js +142 -0
  165. package/dist/storage/vector-store/sqlite-adapter.js.map +1 -0
  166. package/dist/tools/create-spec/constitution-validator.d.ts +4 -0
  167. package/dist/tools/create-spec/constitution-validator.d.ts.map +1 -0
  168. package/dist/tools/create-spec/constitution-validator.js +37 -0
  169. package/dist/tools/create-spec/constitution-validator.js.map +1 -0
  170. package/dist/tools/create-spec/post-creation.d.ts +11 -0
  171. package/dist/tools/create-spec/post-creation.d.ts.map +1 -0
  172. package/dist/tools/create-spec/post-creation.js +48 -0
  173. package/dist/tools/create-spec/post-creation.js.map +1 -0
  174. package/dist/tools/create-spec/spec-builder.d.ts +14 -0
  175. package/dist/tools/create-spec/spec-builder.d.ts.map +1 -0
  176. package/dist/tools/create-spec/spec-builder.js +131 -0
  177. package/dist/tools/create-spec/spec-builder.js.map +1 -0
  178. package/dist/tools/create-spec.d.ts.map +1 -1
  179. package/dist/tools/create-spec.js +42 -172
  180. package/dist/tools/create-spec.js.map +1 -1
  181. package/dist/tools/data-governance/audit-handler.d.ts.map +1 -1
  182. package/dist/tools/data-governance/audit-handler.js +1 -0
  183. package/dist/tools/data-governance/audit-handler.js.map +1 -1
  184. package/dist/tools/design-schema.d.ts.map +1 -1
  185. package/dist/tools/design-schema.js +1 -0
  186. package/dist/tools/design-schema.js.map +1 -1
  187. package/dist/tools/init-project/handler.d.ts.map +1 -1
  188. package/dist/tools/init-project/handler.js +48 -14
  189. package/dist/tools/init-project/handler.js.map +1 -1
  190. package/dist/tools/recommend-model-handler.d.ts +8 -0
  191. package/dist/tools/recommend-model-handler.d.ts.map +1 -0
  192. package/dist/tools/recommend-model-handler.js +65 -0
  193. package/dist/tools/recommend-model-handler.js.map +1 -0
  194. package/dist/tools/register-ai-cost-tools.js +1 -1
  195. package/dist/tools/register-ai-cost-tools.js.map +1 -1
  196. package/dist/tools/register-model-tools.d.ts +3 -0
  197. package/dist/tools/register-model-tools.d.ts.map +1 -0
  198. package/dist/tools/register-model-tools.js +50 -0
  199. package/dist/tools/register-model-tools.js.map +1 -0
  200. package/dist/tools/register-search-tools.d.ts +7 -0
  201. package/dist/tools/register-search-tools.d.ts.map +1 -0
  202. package/dist/tools/register-search-tools.js +34 -0
  203. package/dist/tools/register-search-tools.js.map +1 -0
  204. package/dist/tools/register-spec-tools/core-spec-tools.d.ts.map +1 -1
  205. package/dist/tools/register-spec-tools/core-spec-tools.js +0 -4
  206. package/dist/tools/register-spec-tools/core-spec-tools.js.map +1 -1
  207. package/dist/tools/register-tool-groups.d.ts +7 -0
  208. package/dist/tools/register-tool-groups.d.ts.map +1 -0
  209. package/dist/tools/register-tool-groups.js +39 -0
  210. package/dist/tools/register-tool-groups.js.map +1 -0
  211. package/dist/tools/register-transform-tools.d.ts +3 -0
  212. package/dist/tools/register-transform-tools.d.ts.map +1 -0
  213. package/dist/tools/register-transform-tools.js +29 -0
  214. package/dist/tools/register-transform-tools.js.map +1 -0
  215. package/dist/tools/semantic-search-handler.d.ts +7 -0
  216. package/dist/tools/semantic-search-handler.d.ts.map +1 -0
  217. package/dist/tools/semantic-search-handler.js +72 -0
  218. package/dist/tools/semantic-search-handler.js.map +1 -0
  219. package/dist/tools/suggest-tooling/orchestration-generator.js +1 -1
  220. package/dist/tools/suggest-tooling/orchestration-generator.js.map +1 -1
  221. package/dist/tools/tool-group-handler.d.ts +9 -0
  222. package/dist/tools/tool-group-handler.d.ts.map +1 -0
  223. package/dist/tools/tool-group-handler.js +82 -0
  224. package/dist/tools/tool-group-handler.js.map +1 -0
  225. package/dist/tools/transform-code-handler.d.ts +7 -0
  226. package/dist/tools/transform-code-handler.d.ts.map +1 -0
  227. package/dist/tools/transform-code-handler.js +58 -0
  228. package/dist/tools/transform-code-handler.js.map +1 -0
  229. package/dist/types/advanced-framework.d.ts +47 -0
  230. package/dist/types/advanced-framework.d.ts.map +1 -0
  231. package/dist/types/advanced-framework.js +3 -0
  232. package/dist/types/advanced-framework.js.map +1 -0
  233. package/dist/types/code-transforms.d.ts +114 -0
  234. package/dist/types/code-transforms.d.ts.map +1 -0
  235. package/dist/types/code-transforms.js +11 -0
  236. package/dist/types/code-transforms.js.map +1 -0
  237. package/dist/types/css-framework.d.ts +110 -0
  238. package/dist/types/css-framework.d.ts.map +1 -0
  239. package/dist/types/css-framework.js +3 -0
  240. package/dist/types/css-framework.js.map +1 -0
  241. package/dist/types/dashboard.d.ts +77 -0
  242. package/dist/types/dashboard.d.ts.map +1 -0
  243. package/dist/types/dashboard.js +2 -0
  244. package/dist/types/dashboard.js.map +1 -0
  245. package/dist/types/index.d.ts +4 -0
  246. package/dist/types/index.d.ts.map +1 -1
  247. package/dist/types/index.js +4 -0
  248. package/dist/types/index.js.map +1 -1
  249. package/dist/types/model-routing.d.ts +127 -0
  250. package/dist/types/model-routing.d.ts.map +1 -0
  251. package/dist/types/model-routing.js +3 -0
  252. package/dist/types/model-routing.js.map +1 -0
  253. package/dist/types/project/inputs.d.ts +0 -1
  254. package/dist/types/project/inputs.d.ts.map +1 -1
  255. package/dist/types/spec/core.d.ts +28 -1
  256. package/dist/types/spec/core.d.ts.map +1 -1
  257. package/dist/types/spec/inputs.d.ts +9 -6
  258. package/dist/types/spec/inputs.d.ts.map +1 -1
  259. package/dist/types/tool-groups.d.ts +57 -0
  260. package/dist/types/tool-groups.d.ts.map +1 -0
  261. package/dist/types/tool-groups.js +3 -0
  262. package/dist/types/tool-groups.js.map +1 -0
  263. package/dist/types/ui.d.ts +3 -231
  264. package/dist/types/ui.d.ts.map +1 -1
  265. package/dist/types/ui.js +7 -1
  266. package/dist/types/ui.js.map +1 -1
  267. package/dist/types/vector-store.d.ts +137 -0
  268. package/dist/types/vector-store.d.ts.map +1 -0
  269. package/dist/types/vector-store.js +3 -0
  270. package/dist/types/vector-store.js.map +1 -0
  271. package/package.json +1 -1
  272. package/src/config/model-routing-rules.json +98 -0
  273. package/src/config/tool-groups.json +140 -0
@@ -0,0 +1,58 @@
1
+ // tools/transform-code-handler.ts — Handler for transform_code MCP tool (AC-09).
2
+ // Synchronous handler that wraps the transform engine.
3
+ import { TRANSFORM_INTENTS, } from '../types/index.js';
4
+ import { executeTransform } from '../engine/code-transforms/transform-engine.js';
5
+ /**
6
+ * Handle transform_code tool invocation.
7
+ * Validates input, delegates to executeTransform, and formats the response.
8
+ */
9
+ export function handleTransformCode(args) {
10
+ // Validate intent
11
+ if (!TRANSFORM_INTENTS.includes(args.intent)) {
12
+ return {
13
+ content: [
14
+ {
15
+ type: 'text',
16
+ text: `Invalid intent '${args.intent}'. Valid intents: ${TRANSFORM_INTENTS.join(', ')}`,
17
+ },
18
+ ],
19
+ isError: true,
20
+ };
21
+ }
22
+ const result = executeTransform({
23
+ source: args.source,
24
+ intent: args.intent,
25
+ options: args.options ?? {},
26
+ });
27
+ if (!result.success) {
28
+ return {
29
+ content: [
30
+ {
31
+ type: 'text',
32
+ /* v8 ignore next 1 -- defensive: executeTransform always sets error when !success */
33
+ text: `Transform failed: ${result.error ?? 'Unknown error'}`,
34
+ },
35
+ ],
36
+ isError: true,
37
+ };
38
+ }
39
+ const summary = [
40
+ `## Transform: ${args.intent}`,
41
+ '',
42
+ `**Changes:** ${String(result.changes.length)}`,
43
+ `**Duration:** ${result.durationMs.toFixed(2)}ms`,
44
+ '',
45
+ ];
46
+ if (result.changes.length > 0) {
47
+ summary.push('### Changes');
48
+ for (const change of result.changes) {
49
+ summary.push(`- Line ${String(change.line)}: ${change.description}`);
50
+ }
51
+ summary.push('');
52
+ }
53
+ summary.push('### Transformed Code', '```typescript', result.transformed, '```');
54
+ return {
55
+ content: [{ type: 'text', text: summary.join('\n') }],
56
+ };
57
+ }
58
+ //# sourceMappingURL=transform-code-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform-code-handler.js","sourceRoot":"","sources":["../../src/tools/transform-code-handler.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,uDAAuD;AAEvD,OAAO,EAIL,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AAEjF;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAwB;IAC1D,kBAAkB;IAClB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAyB,CAAC,EAAE,CAAC;QAChE,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,mBAAmB,IAAI,CAAC,MAAM,qBAAqB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;iBACxF;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,gBAAgB,CAAC;QAC9B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM,EAAE,IAAI,CAAC,MAAyB;QACtC,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;KAC5B,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,qFAAqF;oBACrF,IAAI,EAAE,qBAAqB,MAAM,CAAC,KAAK,IAAI,eAAe,EAAE;iBAC7D;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG;QACd,iBAAiB,IAAI,CAAC,MAAM,EAAE;QAC9B,EAAE;QACF,gBAAgB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QAC/C,iBAAiB,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;QACjD,EAAE;KACH,CAAC;IAEF,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC5B,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,eAAe,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAEjF,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;KACtD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,47 @@
1
+ /** Modern frontend frameworks (Islands, server-centric, resumability, signals) */
2
+ export type ModernFramework = 'astro' | 'fresh' | 'htmx' | 'qwik' | 'solid-start' | 'tanstack-start' | 'remix-v7';
3
+ /** Frontend architecture paradigm */
4
+ export type FrontendArchitecture = 'islands' | 'htmx' | 'spa' | 'ssr' | 'micro-frontend' | 'resumability';
5
+ /** Legacy frontend frameworks still common in production */
6
+ export type LegacyFramework = 'jquery' | 'backbone' | 'knockout' | 'ember' | 'extjs' | 'angularjs-1';
7
+ /** Micro-frontend orchestration strategy */
8
+ export type MicroFrontendStrategy = 'module-federation' | 'single-spa' | 'nx-mfe';
9
+ /** Enterprise design system */
10
+ export type EnterpriseDesignSystem = 'carbon' | 'polaris' | 'fluent-ui' | 'radix-ui' | 'arco-design' | 'ark-ui' | 'naive-ui' | 'vuetify' | 'quasar';
11
+ /** CSS-in-JS zero-runtime and modern CSS approaches */
12
+ export type CSSInJSApproach = 'vanilla-extract' | 'panda-css' | 'stylex' | 'unocss' | 'open-props' | 'css-layers';
13
+ /** Modern state management libraries */
14
+ export type StateManagementLib = 'tanstack-query' | 'zustand' | 'jotai' | 'xstate' | 'signals' | 'nanostores';
15
+ /** Detected advanced framework with category and metadata */
16
+ export interface AdvancedFrameworkDetection {
17
+ modernFramework: ModernFramework | null;
18
+ architecture: FrontendArchitecture | null;
19
+ legacyFrameworks: LegacyFramework[];
20
+ microFrontend: MicroFrontendStrategy | null;
21
+ enterpriseDesignSystem: EnterpriseDesignSystem | null;
22
+ cssInJS: CSSInJSApproach | null;
23
+ stateManagement: StateManagementLib[];
24
+ antDesignVersion: '4' | '5' | null;
25
+ signals: string[];
26
+ }
27
+ /** Internal: result of modern framework detection with architecture paradigm */
28
+ export interface ModernFrameworkResult {
29
+ framework: ModernFramework | null;
30
+ architecture: FrontendArchitecture | null;
31
+ }
32
+ /** Internal: parsed package.json structure for dependency analysis */
33
+ export interface PackageJsonDeps {
34
+ dependencies?: Record<string, string>;
35
+ devDependencies?: Record<string, string>;
36
+ }
37
+ /** Contract hints generated from advanced framework detection */
38
+ export interface AdvancedFrameworkHints {
39
+ architectureParadigm?: string;
40
+ hydrationNotes?: string;
41
+ stateStrategyNotes?: string;
42
+ legacyRisks?: string[];
43
+ designSystemTokens?: string[];
44
+ cssPatterns?: string[];
45
+ migrationCriteria?: string;
46
+ }
47
+ //# sourceMappingURL=advanced-framework.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advanced-framework.d.ts","sourceRoot":"","sources":["../../src/types/advanced-framework.ts"],"names":[],"mappings":"AAEA,kFAAkF;AAClF,MAAM,MAAM,eAAe,GACvB,OAAO,GACP,OAAO,GACP,MAAM,GACN,MAAM,GACN,aAAa,GACb,gBAAgB,GAChB,UAAU,CAAC;AAEf,qCAAqC;AACrC,MAAM,MAAM,oBAAoB,GAC5B,SAAS,GACT,MAAM,GACN,KAAK,GACL,KAAK,GACL,gBAAgB,GAChB,cAAc,CAAC;AAEnB,4DAA4D;AAC5D,MAAM,MAAM,eAAe,GACvB,QAAQ,GACR,UAAU,GACV,UAAU,GACV,OAAO,GACP,OAAO,GACP,aAAa,CAAC;AAElB,4CAA4C;AAC5C,MAAM,MAAM,qBAAqB,GAAG,mBAAmB,GAAG,YAAY,GAAG,QAAQ,CAAC;AAElF,+BAA+B;AAC/B,MAAM,MAAM,sBAAsB,GAC9B,QAAQ,GACR,SAAS,GACT,WAAW,GACX,UAAU,GACV,aAAa,GACb,QAAQ,GACR,UAAU,GACV,SAAS,GACT,QAAQ,CAAC;AAEb,uDAAuD;AACvD,MAAM,MAAM,eAAe,GACvB,iBAAiB,GACjB,WAAW,GACX,QAAQ,GACR,QAAQ,GACR,YAAY,GACZ,YAAY,CAAC;AAEjB,wCAAwC;AACxC,MAAM,MAAM,kBAAkB,GAC1B,gBAAgB,GAChB,SAAS,GACT,OAAO,GACP,QAAQ,GACR,SAAS,GACT,YAAY,CAAC;AAEjB,6DAA6D;AAC7D,MAAM,WAAW,0BAA0B;IACzC,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,YAAY,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC1C,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,aAAa,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC5C,sBAAsB,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACtD,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IAChC,eAAe,EAAE,kBAAkB,EAAE,CAAC;IACtC,gBAAgB,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;IACnC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,gFAAgF;AAChF,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,eAAe,GAAG,IAAI,CAAC;IAClC,YAAY,EAAE,oBAAoB,GAAG,IAAI,CAAC;CAC3C;AAED,sEAAsE;AACtE,MAAM,WAAW,eAAe;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAED,iEAAiE;AACjE,MAAM,WAAW,sBAAsB;IACrC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B"}
@@ -0,0 +1,3 @@
1
+ // Planu — Advanced framework detection types (SPEC-017b)
2
+ export {};
3
+ //# sourceMappingURL=advanced-framework.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advanced-framework.js","sourceRoot":"","sources":["../../src/types/advanced-framework.ts"],"names":[],"mappings":"AAAA,yDAAyD"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Supported transform intents — each maps to a specific AST transformation.
3
+ */
4
+ export type TransformIntent = 'rename-symbol' | 'add-types' | 'add-error-handling' | 'modernize-syntax' | 'extract-interface' | 'add-jsdoc';
5
+ export declare const TRANSFORM_INTENTS: readonly TransformIntent[];
6
+ export interface RenameSymbolOptions {
7
+ readonly oldName: string;
8
+ readonly newName: string;
9
+ }
10
+ export interface AddTypesOptions {
11
+ readonly inferFromUsage?: boolean;
12
+ }
13
+ export interface AddErrorHandlingOptions {
14
+ readonly style?: 'rethrow' | 'return-null' | 'log-and-rethrow';
15
+ }
16
+ export interface ModernizeSyntaxOptions {
17
+ readonly varToConst?: boolean;
18
+ readonly requireToImport?: boolean;
19
+ readonly moduleExportsToExport?: boolean;
20
+ readonly templateLiterals?: boolean;
21
+ }
22
+ export interface ExtractInterfaceOptions {
23
+ readonly className: string;
24
+ readonly interfaceName?: string;
25
+ }
26
+ export interface AddJSDocOptions {
27
+ readonly includeParams?: boolean;
28
+ readonly includeReturns?: boolean;
29
+ readonly includeThrows?: boolean;
30
+ }
31
+ /**
32
+ * Union of all per-intent option types.
33
+ */
34
+ export type TransformOptions = RenameSymbolOptions | AddTypesOptions | AddErrorHandlingOptions | ModernizeSyntaxOptions | ExtractInterfaceOptions | AddJSDocOptions;
35
+ export interface TransformRequest {
36
+ readonly source: string;
37
+ readonly intent: TransformIntent;
38
+ readonly options: TransformOptions;
39
+ readonly fileName?: string;
40
+ }
41
+ export interface TransformChange {
42
+ readonly line: number;
43
+ readonly description: string;
44
+ }
45
+ export interface TransformResult {
46
+ readonly success: boolean;
47
+ readonly transformed: string;
48
+ readonly changes: TransformChange[];
49
+ readonly durationMs: number;
50
+ readonly error?: string;
51
+ }
52
+ export interface WrapTarget {
53
+ readonly name: string;
54
+ readonly bodyStart: number;
55
+ readonly bodyEnd: number;
56
+ readonly line: number;
57
+ }
58
+ export interface DocInsertion {
59
+ readonly position: number;
60
+ readonly text: string;
61
+ readonly line: number;
62
+ readonly name: string;
63
+ }
64
+ export interface TypeReplacement {
65
+ readonly position: number;
66
+ readonly length: number;
67
+ readonly newText: string;
68
+ readonly line: number;
69
+ readonly description: string;
70
+ }
71
+ export interface RenameResult {
72
+ readonly transformed: string;
73
+ readonly changes: TransformChange[];
74
+ }
75
+ export interface AddTypesResult {
76
+ readonly transformed: string;
77
+ readonly changes: TransformChange[];
78
+ }
79
+ export interface ErrorHandlingResult {
80
+ readonly transformed: string;
81
+ readonly changes: TransformChange[];
82
+ }
83
+ export interface AddJSDocResult {
84
+ readonly transformed: string;
85
+ readonly changes: TransformChange[];
86
+ }
87
+ export interface ExtractResult {
88
+ readonly transformed: string;
89
+ readonly changes: TransformChange[];
90
+ }
91
+ export interface ModernizeResult {
92
+ readonly transformed: string;
93
+ readonly changes: TransformChange[];
94
+ }
95
+ export interface MemberInfo {
96
+ readonly name: string;
97
+ readonly signature: string;
98
+ }
99
+ export interface TextReplacement {
100
+ readonly start: number;
101
+ readonly end: number;
102
+ readonly text: string;
103
+ readonly line: number;
104
+ }
105
+ export interface DispatchResult {
106
+ readonly transformed: string;
107
+ readonly changes: TransformChange[];
108
+ }
109
+ export interface TransformCodeInput {
110
+ readonly source: string;
111
+ readonly intent: string;
112
+ readonly options?: Record<string, unknown>;
113
+ }
114
+ //# sourceMappingURL=code-transforms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-transforms.d.ts","sourceRoot":"","sources":["../../src/types/code-transforms.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ // types/code-transforms.ts — SPEC-077 Code Transforms types.
2
+ // All types for the deterministic TypeScript Compiler API transform system.
3
+ export const TRANSFORM_INTENTS = [
4
+ 'rename-symbol',
5
+ 'add-types',
6
+ 'add-error-handling',
7
+ 'modernize-syntax',
8
+ 'extract-interface',
9
+ 'add-jsdoc',
10
+ ];
11
+ //# sourceMappingURL=code-transforms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-transforms.js","sourceRoot":"","sources":["../../src/types/code-transforms.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,4EAA4E;AAa5E,MAAM,CAAC,MAAM,iBAAiB,GAA+B;IAC3D,eAAe;IACf,WAAW;IACX,oBAAoB;IACpB,kBAAkB;IAClB,mBAAmB;IACnB,WAAW;CACH,CAAC"}
@@ -0,0 +1,110 @@
1
+ /** Supported CSS frameworks for styling contract generation */
2
+ export type CSSFramework = 'tailwind' | 'bootstrap' | 'css-modules' | 'styled-components' | 'sass' | 'material-ui' | 'chakra-ui' | 'shadcn-ui' | 'ant-design' | 'css-pure' | 'flutter-styles' | 'react-native-styles';
3
+ /** Detected CSS framework with confidence score */
4
+ export interface CSSFrameworkDetection {
5
+ framework: CSSFramework | null;
6
+ confidence: 'high' | 'medium' | 'low';
7
+ signals: string[];
8
+ multipleDetected: string[];
9
+ warning?: string;
10
+ }
11
+ /** Styling contract adapted to detected CSS framework */
12
+ export interface StylingContract {
13
+ framework: CSSFramework | null;
14
+ classes?: string[];
15
+ components?: string[];
16
+ tokens?: Record<string, string>;
17
+ breakpoints?: Record<string, string>;
18
+ darkMode?: string;
19
+ responsive?: string;
20
+ conventions?: string[];
21
+ themeTokens?: string[];
22
+ plugins?: string[];
23
+ customProperties?: string[];
24
+ }
25
+ /** UX principle with category, rules, examples, and applicable contexts */
26
+ export interface UXPrinciple {
27
+ category: string;
28
+ title: string;
29
+ rules: string[];
30
+ examples?: string[];
31
+ applicableTo?: string[];
32
+ }
33
+ /** Result of style consistency audit */
34
+ export interface StyleAuditResult {
35
+ warnings: string[];
36
+ suggestions: string[];
37
+ mixedFrameworks: string[];
38
+ inlineStyleCount: number;
39
+ importantCount: number;
40
+ score: number;
41
+ }
42
+ /** WCAG accessibility level */
43
+ export type A11yLevel = 'AA' | 'AAA';
44
+ /** A11y contrast requirements per level */
45
+ export interface A11yContrastRatios {
46
+ level: A11yLevel;
47
+ normalText: number;
48
+ largeText: number;
49
+ }
50
+ /** Accessibility contract per component */
51
+ export interface ComponentA11yContract {
52
+ component: string;
53
+ requirements: string[];
54
+ }
55
+ /** Full accessibility contract for a UI spec */
56
+ export interface A11yContract {
57
+ level: A11yLevel;
58
+ contrastRatios: A11yContrastRatios;
59
+ componentContracts: ComponentA11yContract[];
60
+ ariaLiveRegions: string[];
61
+ keyboardPatterns: string[];
62
+ skipNavLink: boolean;
63
+ manualTestingNote: string;
64
+ }
65
+ /** Config entry for a UI framework from ui-frameworks.json */
66
+ export interface UIFrameworkConfig {
67
+ name: string;
68
+ packageNames: string[];
69
+ configFiles?: string[];
70
+ conventions?: string[];
71
+ components?: string[];
72
+ breakpoints?: Record<string, string>;
73
+ darkMode?: string;
74
+ responsive?: string;
75
+ plugins?: string[];
76
+ importSignals?: string[];
77
+ }
78
+ /** UX principle config entry from ux-principles.json */
79
+ export interface UXPrincipleConfig {
80
+ category: string;
81
+ title: string;
82
+ rules: string[];
83
+ examples?: string[];
84
+ applicableTo?: string[];
85
+ }
86
+ /** Root structure of ux-principles.json */
87
+ export interface UXPrinciplesFile {
88
+ _description?: string;
89
+ principles: UXPrincipleConfig[];
90
+ }
91
+ /** Root structure of ui-frameworks.json */
92
+ export interface UIFrameworksFile {
93
+ _description?: string;
94
+ [key: string]: UIFrameworkConfig | string | undefined;
95
+ }
96
+ /** Framework catalog as a plain lookup map (typed without string union issues) */
97
+ export type UIFrameworkCatalog = Partial<Record<CSSFramework, UIFrameworkConfig>>;
98
+ /** Signals record for CSS framework detection engine (internal use) */
99
+ export interface CSSFrameworkSignals {
100
+ packageNames: string[];
101
+ configFiles: string[];
102
+ importPatterns: RegExp[];
103
+ }
104
+ /** Raw JSON structure of ux-principles.json for parsing */
105
+ export interface UXPrinciplesRaw {
106
+ principles: UXPrincipleConfig[];
107
+ }
108
+ /** Raw JSON structure of ui-frameworks.json for parsing (all keys are UIFrameworkConfig) */
109
+ export type UIFrameworksRaw = Record<string, UIFrameworkConfig>;
110
+ //# sourceMappingURL=css-framework.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"css-framework.d.ts","sourceRoot":"","sources":["../../src/types/css-framework.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ // Planu — CSS Framework Detection + Styling Contracts + UX Principles + A11y types (SPEC-017a)
2
+ export {};
3
+ //# sourceMappingURL=css-framework.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"css-framework.js","sourceRoot":"","sources":["../../src/types/css-framework.ts"],"names":[],"mappings":"AAAA,+FAA+F"}
@@ -0,0 +1,77 @@
1
+ import type { SpecStatus } from './common.js';
2
+ /** State of the dashboard HTTP server (singleton in memory) */
3
+ export interface DashboardServerState {
4
+ port: number;
5
+ isRunning: boolean;
6
+ startedAt: Date | null;
7
+ }
8
+ /** Summary of a project for dashboard display */
9
+ export interface DashboardProjectSummary {
10
+ id: string;
11
+ name: string;
12
+ path: string;
13
+ stack: string;
14
+ lastActivity: string;
15
+ specCount: number;
16
+ doneCount: number;
17
+ specs: DashboardSpecCard[];
18
+ }
19
+ /** Card data for a single spec in the dashboard */
20
+ export interface DashboardSpecCard {
21
+ id: string;
22
+ title: string;
23
+ status: SpecStatus;
24
+ criteriaTotal: number;
25
+ criteriaImplemented: number;
26
+ progressPercent: number;
27
+ }
28
+ /** Health metrics for a project displayed in the health panel */
29
+ export interface ProjectHealthMetrics {
30
+ totalSpecs: number;
31
+ donePercent: number;
32
+ pendingApproval: number;
33
+ activeImplementation: number;
34
+ totalEstimation: number | null;
35
+ }
36
+ /** Usage stats panel data read from data/global/ (SPEC-064) */
37
+ export interface DashboardUsageStats {
38
+ tier: string;
39
+ callsToday: number;
40
+ dailyLimit: number | null;
41
+ trialDaysLeft: number | null;
42
+ isAvailable: boolean;
43
+ }
44
+ /** Raw structure of project.json files read by data-loader */
45
+ export interface RawProjectJson {
46
+ name?: string;
47
+ path?: string;
48
+ stack?: string;
49
+ language?: string;
50
+ framework?: string;
51
+ updatedAt?: string;
52
+ createdAt?: string;
53
+ }
54
+ /** Raw structure of spec.json files read by data-loader */
55
+ export interface RawSpecJson {
56
+ id?: string;
57
+ title?: string;
58
+ status?: string;
59
+ estimation?: {
60
+ totalDays?: number;
61
+ totalPoints?: number;
62
+ };
63
+ }
64
+ /** Raw structure of usage.json file read by data-loader */
65
+ export interface RawUsageJson {
66
+ tier?: string;
67
+ callsToday?: number;
68
+ dailyLimit?: number | null;
69
+ trialDaysLeft?: number | null;
70
+ }
71
+ /** Input for start_dashboard MCP tool */
72
+ export interface StartDashboardInput {
73
+ port?: number;
74
+ }
75
+ /** Input for stop_dashboard MCP tool */
76
+ export type StopDashboardInput = Record<string, never>;
77
+ //# sourceMappingURL=dashboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/types/dashboard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,+DAA+D;AAC/D,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;CACxB;AAED,iDAAiD;AACjD,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,iBAAiB,EAAE,CAAC;CAC5B;AAED,mDAAmD;AACnD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,iEAAiE;AACjE,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,+DAA+D;AAC/D,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,8DAA8D;AAC9D,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,2DAA2D;AAC3D,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3D;AAED,2DAA2D;AAC3D,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,yCAAyC;AACzC,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wCAAwC;AACxC,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dashboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/types/dashboard.ts"],"names":[],"mappings":""}
@@ -53,4 +53,8 @@ export * from './webhook.js';
53
53
  export * from './ci.js';
54
54
  export * from './spec-templates.js';
55
55
  export * from './registry.js';
56
+ export * from './tool-groups.js';
57
+ export * from './code-transforms.js';
58
+ export * from './model-routing.js';
59
+ export * from './vector-store.js';
56
60
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC"}
@@ -54,4 +54,8 @@ export * from './webhook.js';
54
54
  export * from './ci.js';
55
55
  export * from './spec-templates.js';
56
56
  export * from './registry.js';
57
+ export * from './tool-groups.js';
58
+ export * from './code-transforms.js';
59
+ export * from './model-routing.js';
60
+ export * from './vector-store.js';
57
61
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,127 @@
1
+ import type { ModelTier } from './multi-agent.js';
2
+ export type { ModelTier } from './multi-agent.js';
3
+ /** Task type classification for routing decisions. */
4
+ export type TaskType = 'search' | 'generation' | 'architecture' | 'debugging' | 'refactor';
5
+ /** Operator for evaluating a routing rule condition. */
6
+ export type RuleOperator = 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'between';
7
+ /** Raw + normalised complexity signals extracted from a spec or task. */
8
+ export interface ComplexitySignals {
9
+ criteriaCount: number;
10
+ fileCount: number;
11
+ dependencyDepth: number;
12
+ crossLayerCount: number;
13
+ hasNewTypes: boolean;
14
+ hasDBChanges: boolean;
15
+ hasSecurityImplications: boolean;
16
+ estimatedHours: number;
17
+ isReadOnly: boolean;
18
+ taskType: TaskType;
19
+ /** Overall complexity score in the range [0, 1], computed from all signals. */
20
+ overallScore: number;
21
+ }
22
+ /** Normalised (0-1) representation of every numeric signal. */
23
+ export interface NormalisedSignals {
24
+ criteriaCount: number;
25
+ fileCount: number;
26
+ dependencyDepth: number;
27
+ crossLayerCount: number;
28
+ estimatedHours: number;
29
+ hasNewTypes: number;
30
+ hasDBChanges: number;
31
+ hasSecurityImplications: number;
32
+ isReadOnly: number;
33
+ }
34
+ /** Estimated token and USD cost for a model tier. */
35
+ export interface CostEstimate {
36
+ estimatedTokens: number;
37
+ estimatedUSD: number;
38
+ breakdown: {
39
+ input: number;
40
+ output: number;
41
+ };
42
+ }
43
+ /** An alternative model recommendation with its cost. */
44
+ export interface AlternativeModel {
45
+ model: ModelTier;
46
+ confidence: number;
47
+ costEstimate: CostEstimate;
48
+ }
49
+ /** Full recommendation returned by the model router. */
50
+ export interface ModelRoutingRecommendation {
51
+ model: ModelTier;
52
+ confidence: number;
53
+ reasoning: string[];
54
+ costEstimate: CostEstimate;
55
+ alternatives: AlternativeModel[];
56
+ }
57
+ /** Recorded outcome of using a specific model on a task. */
58
+ export interface ModelOutcome {
59
+ taskSignature: string;
60
+ modelUsed: ModelTier;
61
+ success: boolean;
62
+ durationMs: number;
63
+ tokensUsed: number;
64
+ qualityScore?: number;
65
+ timestamp: string;
66
+ }
67
+ /** Single condition within a routing rule. */
68
+ export interface RuleCondition {
69
+ signal: string;
70
+ operator: RuleOperator;
71
+ value: number | boolean | string | [number, number];
72
+ }
73
+ /** A deterministic routing rule loaded from config. */
74
+ export interface RoutingRule {
75
+ id: string;
76
+ name: string;
77
+ conditions: RuleCondition[];
78
+ result: ModelTier;
79
+ weight: number;
80
+ }
81
+ /** Shape of the model-routing-rules.json config file. */
82
+ export interface RoutingRulesConfig {
83
+ version: string;
84
+ rules: RoutingRule[];
85
+ }
86
+ /** Input accepted by the recommend_model MCP tool. */
87
+ export interface RecommendModelInput {
88
+ specId?: string;
89
+ taskDescription?: string;
90
+ signals?: Partial<ComplexitySignals>;
91
+ }
92
+ /** Pricing entry from the ai-model-pricing.json config. */
93
+ export interface PricingEntry {
94
+ id: string;
95
+ inputPricePerMillion: number;
96
+ outputPricePerMillion: number;
97
+ }
98
+ /** Partial signals that can be provided directly by the user. */
99
+ export type PartialSignals = Partial<ComplexitySignals>;
100
+ /** Result of evaluating a single routing rule against signals. */
101
+ export interface RuleMatch {
102
+ rule: RoutingRule;
103
+ /** Fraction of conditions that matched (0-1). */
104
+ matchRatio: number;
105
+ /** Effective confidence = matchRatio * rule.weight. */
106
+ confidence: number;
107
+ }
108
+ /** Output of the rules engine evaluation. */
109
+ export interface RulesEngineResult {
110
+ model: ModelTier;
111
+ confidence: number;
112
+ reasoning: string[];
113
+ alternatives: {
114
+ model: ModelTier;
115
+ confidence: number;
116
+ }[];
117
+ }
118
+ /** Outcome-based tier suggestion for a task signature. */
119
+ export interface HistoricalAdjustment {
120
+ /** Adjusted model tier (may differ from rules engine by at most 1). */
121
+ adjustedModel: ModelTier;
122
+ /** Reason for the adjustment. */
123
+ reason: string;
124
+ /** Whether any adjustment was made. */
125
+ adjusted: boolean;
126
+ }
127
+ //# sourceMappingURL=model-routing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-routing.d.ts","sourceRoot":"","sources":["../../src/types/model-routing.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlD,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,sDAAsD;AACtD,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,YAAY,GAAG,cAAc,GAAG,WAAW,GAAG,UAAU,CAAC;AAE3F,wDAAwD;AACxD,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,SAAS,CAAC;AAE1E,yEAAyE;AACzE,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,uBAAuB,EAAE,OAAO,CAAC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,+EAA+E;IAC/E,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,+DAA+D;AAC/D,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qDAAqD;AACrD,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9C;AAED,yDAAyD;AACzD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,wDAAwD;AACxD,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,gBAAgB,EAAE,CAAC;CAClC;AAED,4DAA4D;AAC5D,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,8CAA8C;AAC9C,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrD;AAED,uDAAuD;AACvD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,yDAAyD;AACzD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,sDAAsD;AACtD,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACtC;AAED,2DAA2D;AAC3D,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,iEAAiE;AACjE,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAExD,kEAAkE;AAClE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,WAAW,CAAC;IAClB,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,6CAA6C;AAC7C,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE;QAAE,KAAK,EAAE,SAAS,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC1D;AAED,0DAA0D;AAC1D,MAAM,WAAW,oBAAoB;IACnC,uEAAuE;IACvE,aAAa,EAAE,SAAS,CAAC;IACzB,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,QAAQ,EAAE,OAAO,CAAC;CACnB"}