@loom-framework/core 0.1.0-alpha.84 → 0.1.0-alpha.86

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 (305) hide show
  1. package/builtin-skills/antd/SKILL.md +266 -0
  2. package/builtin-skills/antv-g2-chart/SKILL.md +1067 -0
  3. package/builtin-skills/antv-g2-chart/references/animations/g2-animation-intro.md +176 -0
  4. package/builtin-skills/antv-g2-chart/references/animations/g2-animation-keyframe.md +149 -0
  5. package/builtin-skills/antv-g2-chart/references/animations/g2-animation-types.md +253 -0
  6. package/builtin-skills/antv-g2-chart/references/components/g2-comp-annotation.md +237 -0
  7. package/builtin-skills/antv-g2-chart/references/components/g2-comp-axis-config.md +648 -0
  8. package/builtin-skills/antv-g2-chart/references/components/g2-comp-axis-radar.md +219 -0
  9. package/builtin-skills/antv-g2-chart/references/components/g2-comp-label-config.md +174 -0
  10. package/builtin-skills/antv-g2-chart/references/components/g2-comp-legend-category.md +278 -0
  11. package/builtin-skills/antv-g2-chart/references/components/g2-comp-legend-config.md +363 -0
  12. package/builtin-skills/antv-g2-chart/references/components/g2-comp-legend-continuous.md +264 -0
  13. package/builtin-skills/antv-g2-chart/references/components/g2-comp-scrollbar.md +276 -0
  14. package/builtin-skills/antv-g2-chart/references/components/g2-comp-slider.md +333 -0
  15. package/builtin-skills/antv-g2-chart/references/components/g2-comp-title.md +149 -0
  16. package/builtin-skills/antv-g2-chart/references/components/g2-comp-tooltip-config.md +358 -0
  17. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-facet-circle.md +97 -0
  18. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-facet-rect.md +241 -0
  19. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-geo-map.md +210 -0
  20. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-geoview.md +143 -0
  21. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-repeat-matrix.md +171 -0
  22. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-space-flex.md +142 -0
  23. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-space-layer.md +149 -0
  24. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-timing-keyframe.md +91 -0
  25. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-view.md +309 -0
  26. package/builtin-skills/antv-g2-chart/references/concepts/g2-concept-chart-selection.md +235 -0
  27. package/builtin-skills/antv-g2-chart/references/concepts/g2-concept-color-theory.md +287 -0
  28. package/builtin-skills/antv-g2-chart/references/concepts/g2-concept-visual-channels.md +180 -0
  29. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-cartesian.md +131 -0
  30. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-fisheye.md +131 -0
  31. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-helix.md +141 -0
  32. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-parallel.md +129 -0
  33. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-polar.md +143 -0
  34. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-radial.md +214 -0
  35. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-theta.md +171 -0
  36. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-transpose.md +195 -0
  37. package/builtin-skills/antv-g2-chart/references/core/g2-core-chart-init.md +266 -0
  38. package/builtin-skills/antv-g2-chart/references/core/g2-core-encode-channel.md +197 -0
  39. package/builtin-skills/antv-g2-chart/references/core/g2-core-view-composition.md +224 -0
  40. package/builtin-skills/antv-g2-chart/references/data/g2-data-ema.md +190 -0
  41. package/builtin-skills/antv-g2-chart/references/data/g2-data-fetch.md +167 -0
  42. package/builtin-skills/antv-g2-chart/references/data/g2-data-filter.md +212 -0
  43. package/builtin-skills/antv-g2-chart/references/data/g2-data-fold.md +260 -0
  44. package/builtin-skills/antv-g2-chart/references/data/g2-data-format-tabular.md +280 -0
  45. package/builtin-skills/antv-g2-chart/references/data/g2-data-kde.md +426 -0
  46. package/builtin-skills/antv-g2-chart/references/data/g2-data-log.md +140 -0
  47. package/builtin-skills/antv-g2-chart/references/data/g2-data-slice.md +147 -0
  48. package/builtin-skills/antv-g2-chart/references/data/g2-data-sort.md +251 -0
  49. package/builtin-skills/antv-g2-chart/references/data/g2-data-sortby.md +183 -0
  50. package/builtin-skills/antv-g2-chart/references/data/g2-data-transform-patterns.md +394 -0
  51. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-adaptive-filter.md +118 -0
  52. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush-axis.md +112 -0
  53. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush-filter.md +122 -0
  54. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush-x-y-highlight.md +127 -0
  55. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush-xy.md +118 -0
  56. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush.md +184 -0
  57. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brushx-filter.md +170 -0
  58. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brushx-highlight.md +186 -0
  59. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brushy-filter.md +170 -0
  60. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brushy-highlight.md +185 -0
  61. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-chart-index.md +127 -0
  62. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-drilldown.md +149 -0
  63. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-highlight-by.md +125 -0
  64. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-highlight.md +235 -0
  65. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-hover-scale.md +109 -0
  66. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-point-move.md +152 -0
  67. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-select-by.md +133 -0
  68. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-select.md +249 -0
  69. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-fisheye.md +117 -0
  70. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-legend-filter.md +130 -0
  71. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-legend-highlight.md +130 -0
  72. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-poptip.md +105 -0
  73. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-scrollbar-filter.md +144 -0
  74. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-slider-filter.md +231 -0
  75. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-slider-wheel.md +138 -0
  76. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-tooltip.md +192 -0
  77. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-treemap-drilldown.md +152 -0
  78. package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-contrast-reverse.md +170 -0
  79. package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-exceed-adjust.md +146 -0
  80. package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-overflow-hide.md +185 -0
  81. package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-overflow-stroke.md +147 -0
  82. package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-overlap-dodge-y.md +225 -0
  83. package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-overlap-hide.md +213 -0
  84. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-arc-diagram.md +196 -0
  85. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-arc-donut.md +148 -0
  86. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-arc-pie.md +212 -0
  87. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-area-basic.md +168 -0
  88. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-area-stacked.md +150 -0
  89. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-beeswarm.md +134 -0
  90. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-bi-directional-bar.md +297 -0
  91. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-box-boxplot.md +163 -0
  92. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-boxplot.md +340 -0
  93. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-bullet.md +203 -0
  94. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-cell-heatmap.md +370 -0
  95. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-chord.md +341 -0
  96. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-connector.md +126 -0
  97. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-contourline.md +243 -0
  98. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-density.md +457 -0
  99. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-distribution-curve.md +298 -0
  100. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-funnel.md +329 -0
  101. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-gantt.md +208 -0
  102. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-gauge.md +247 -0
  103. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-heatmap.md +130 -0
  104. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-histogram.md +186 -0
  105. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-image.md +129 -0
  106. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-interval-basic.md +528 -0
  107. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-interval-grouped.md +161 -0
  108. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-interval-normalized.md +147 -0
  109. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-interval-stacked.md +183 -0
  110. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-k-chart.md +237 -0
  111. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-line-basic.md +353 -0
  112. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-line-multi.md +156 -0
  113. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-linex-liney.md +176 -0
  114. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-link.md +134 -0
  115. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-liquid.md +125 -0
  116. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-mosaic.md +257 -0
  117. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-pack.md +424 -0
  118. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-parallel.md +195 -0
  119. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-partition.md +275 -0
  120. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-path.md +135 -0
  121. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-point-bubble.md +138 -0
  122. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-point-scatter.md +177 -0
  123. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-polygon.md +130 -0
  124. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-radar.md +231 -0
  125. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-radial-bar.md +226 -0
  126. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-range-rangey.md +253 -0
  127. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-rangex.md +293 -0
  128. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-rect.md +115 -0
  129. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-regression-curve.md +276 -0
  130. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-rose.md +182 -0
  131. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-sankey.md +217 -0
  132. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-shape.md +160 -0
  133. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-spiral.md +257 -0
  134. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-sunburst.md +327 -0
  135. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-text.md +309 -0
  136. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-tree.md +235 -0
  137. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-treemap.md +426 -0
  138. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-vector.md +108 -0
  139. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-venn.md +204 -0
  140. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-violin.md +307 -0
  141. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-wordcloud.md +155 -0
  142. package/builtin-skills/antv-g2-chart/references/palette/g2-palette-category10.md +196 -0
  143. package/builtin-skills/antv-g2-chart/references/palette/g2-palette-category20.md +238 -0
  144. package/builtin-skills/antv-g2-chart/references/patterns/g2-pattern-performance.md +181 -0
  145. package/builtin-skills/antv-g2-chart/references/patterns/g2-pattern-responsive.md +232 -0
  146. package/builtin-skills/antv-g2-chart/references/patterns/g2-pattern-v4-to-v5.md +223 -0
  147. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-band.md +127 -0
  148. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-linear.md +259 -0
  149. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-log.md +226 -0
  150. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-ordinal.md +135 -0
  151. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-point.md +242 -0
  152. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-pow-sqrt.md +124 -0
  153. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-quantile-quantize.md +119 -0
  154. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-sequential.md +267 -0
  155. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-threshold.md +133 -0
  156. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-time.md +159 -0
  157. package/builtin-skills/antv-g2-chart/references/themes/g2-theme-builtin.md +192 -0
  158. package/builtin-skills/antv-g2-chart/references/themes/g2-theme-custom.md +183 -0
  159. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-bin.md +153 -0
  160. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-binx.md +133 -0
  161. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-diffy.md +130 -0
  162. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-dodgex.md +90 -0
  163. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-flexx.md +115 -0
  164. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-group.md +233 -0
  165. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-groupcolor.md +182 -0
  166. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-groupx.md +265 -0
  167. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-groupy.md +167 -0
  168. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-jitter.md +149 -0
  169. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-jitterx.md +177 -0
  170. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-jittery.md +177 -0
  171. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-normalizey.md +83 -0
  172. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-pack.md +164 -0
  173. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-sample.md +143 -0
  174. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-select.md +147 -0
  175. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-selectx.md +179 -0
  176. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-selecty.md +179 -0
  177. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-sort-color.md +115 -0
  178. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-sortx.md +285 -0
  179. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-sorty.md +117 -0
  180. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-stack-enter.md +158 -0
  181. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-stacky.md +218 -0
  182. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-symmetryy.md +122 -0
  183. package/builtin-skills/chart-visualization/SKILL.md +101 -0
  184. package/{templates/loom-skill → builtin-skills/loom}/SKILL.md +20 -9
  185. package/{templates/loom-skill → builtin-skills/loom}/references/README.md +3 -3
  186. package/dist/capability-generator.d.ts +1 -1
  187. package/dist/capability-generator.js +3 -3
  188. package/dist/capability-generator.js.map +1 -1
  189. package/dist/cli/commands/generate-dashboard.d.ts.map +1 -1
  190. package/dist/cli/commands/generate-dashboard.js +12 -6
  191. package/dist/cli/commands/generate-dashboard.js.map +1 -1
  192. package/dist/cli/commands/generate-page.d.ts.map +1 -1
  193. package/dist/cli/commands/generate-page.js +1 -163
  194. package/dist/cli/commands/generate-page.js.map +1 -1
  195. package/dist/cli/commands/init.d.ts.map +1 -1
  196. package/dist/cli/commands/init.js +57 -295
  197. package/dist/cli/commands/init.js.map +1 -1
  198. package/dist/cli/generators/capability-generator.d.ts +35 -0
  199. package/dist/cli/generators/capability-generator.d.ts.map +1 -0
  200. package/dist/cli/generators/capability-generator.js +115 -0
  201. package/dist/cli/generators/capability-generator.js.map +1 -0
  202. package/dist/cli/helpers/column-template.d.ts +18 -0
  203. package/dist/cli/helpers/column-template.d.ts.map +1 -0
  204. package/dist/cli/helpers/column-template.js +151 -0
  205. package/dist/cli/helpers/column-template.js.map +1 -0
  206. package/dist/cli/helpers/field-template.d.ts +4 -0
  207. package/dist/cli/helpers/field-template.d.ts.map +1 -1
  208. package/dist/cli/helpers/field-template.js +4 -3
  209. package/dist/cli/helpers/field-template.js.map +1 -1
  210. package/dist/cli/templates/backend-entry.d.ts +5 -0
  211. package/dist/cli/templates/backend-entry.d.ts.map +1 -0
  212. package/dist/cli/templates/backend-entry.js +17 -0
  213. package/dist/cli/templates/backend-entry.js.map +1 -0
  214. package/dist/cli/templates/frontend-entry.d.ts +11 -0
  215. package/dist/cli/templates/frontend-entry.d.ts.map +1 -0
  216. package/dist/cli/templates/frontend-entry.js +77 -0
  217. package/dist/cli/templates/frontend-entry.js.map +1 -0
  218. package/dist/cli/templates/gitignore.d.ts +5 -0
  219. package/dist/cli/templates/gitignore.d.ts.map +1 -0
  220. package/dist/cli/templates/gitignore.js +13 -0
  221. package/dist/cli/templates/gitignore.js.map +1 -0
  222. package/dist/cli/templates/index.d.ts +12 -0
  223. package/dist/cli/templates/index.d.ts.map +1 -0
  224. package/dist/cli/templates/index.js +12 -0
  225. package/dist/cli/templates/index.js.map +1 -0
  226. package/dist/cli/templates/loom-config.d.ts +10 -0
  227. package/dist/cli/templates/loom-config.d.ts.map +1 -0
  228. package/dist/cli/templates/loom-config.js +31 -0
  229. package/dist/cli/templates/loom-config.js.map +1 -0
  230. package/dist/cli/templates/package-json.d.ts +9 -0
  231. package/dist/cli/templates/package-json.d.ts.map +1 -0
  232. package/dist/cli/templates/package-json.js +40 -0
  233. package/dist/cli/templates/package-json.js.map +1 -0
  234. package/dist/cli/templates/readme.d.ts +9 -0
  235. package/dist/cli/templates/readme.d.ts.map +1 -0
  236. package/dist/cli/templates/readme.js +47 -0
  237. package/dist/cli/templates/readme.js.map +1 -0
  238. package/dist/cli/templates/tsconfig.d.ts +6 -0
  239. package/dist/cli/templates/tsconfig.d.ts.map +1 -0
  240. package/dist/cli/templates/tsconfig.js +41 -0
  241. package/dist/cli/templates/tsconfig.js.map +1 -0
  242. package/dist/cli/templates/vite-config.d.ts +5 -0
  243. package/dist/cli/templates/vite-config.d.ts.map +1 -0
  244. package/dist/cli/templates/vite-config.js +24 -0
  245. package/dist/cli/templates/vite-config.js.map +1 -0
  246. package/dist/commands.d.ts +1 -5
  247. package/dist/commands.d.ts.map +1 -1
  248. package/dist/commands.js +0 -11
  249. package/dist/commands.js.map +1 -1
  250. package/dist/config.d.ts +15 -122
  251. package/dist/config.d.ts.map +1 -1
  252. package/dist/config.js +2 -52
  253. package/dist/config.js.map +1 -1
  254. package/dist/dashboard-config.d.ts +117 -0
  255. package/dist/dashboard-config.d.ts.map +1 -0
  256. package/dist/dashboard-config.js +59 -0
  257. package/dist/dashboard-config.js.map +1 -0
  258. package/dist/index.d.ts +2 -2
  259. package/dist/index.d.ts.map +1 -1
  260. package/dist/index.js +1 -1
  261. package/dist/index.js.map +1 -1
  262. package/dist/server-bin.js +30 -62
  263. package/dist/server-bin.js.map +1 -1
  264. package/dist/types/adapter.d.ts +28 -0
  265. package/dist/types/adapter.d.ts.map +1 -0
  266. package/dist/types/adapter.js +5 -0
  267. package/dist/types/adapter.js.map +1 -0
  268. package/dist/types/ai.d.ts +52 -0
  269. package/dist/types/ai.d.ts.map +1 -0
  270. package/dist/types/ai.js +5 -0
  271. package/dist/types/ai.js.map +1 -0
  272. package/dist/types/chat.d.ts +46 -0
  273. package/dist/types/chat.d.ts.map +1 -0
  274. package/dist/types/chat.js +5 -0
  275. package/dist/types/chat.js.map +1 -0
  276. package/dist/types/command.d.ts +25 -0
  277. package/dist/types/command.d.ts.map +1 -0
  278. package/dist/types/command.js +5 -0
  279. package/dist/types/command.js.map +1 -0
  280. package/dist/types/config.d.ts +30 -0
  281. package/dist/types/config.d.ts.map +1 -0
  282. package/dist/types/config.js +5 -0
  283. package/dist/types/config.js.map +1 -0
  284. package/dist/types/dashboard.d.ts +42 -0
  285. package/dist/types/dashboard.d.ts.map +1 -0
  286. package/dist/types/dashboard.js +5 -0
  287. package/dist/types/dashboard.js.map +1 -0
  288. package/dist/types/index.d.ts +14 -0
  289. package/dist/types/index.d.ts.map +1 -0
  290. package/dist/types/index.js +8 -0
  291. package/dist/types/index.js.map +1 -0
  292. package/dist/types/model.d.ts +59 -0
  293. package/dist/types/model.d.ts.map +1 -0
  294. package/dist/types/model.js +5 -0
  295. package/dist/types/model.js.map +1 -0
  296. package/dist/types.d.ts +4 -250
  297. package/dist/types.d.ts.map +1 -1
  298. package/dist/types.js +4 -3
  299. package/dist/types.js.map +1 -1
  300. package/package.json +2 -2
  301. /package/{templates → builtin-skills}/app-skill/SKILL.md +0 -0
  302. /package/{templates → builtin-skills}/app-skill/references/data-semantics.md +0 -0
  303. /package/{templates → builtin-skills}/app-skill/references/models.md +0 -0
  304. /package/{templates/loom-skill → builtin-skills/loom}/references/dashboard.md +0 -0
  305. /package/{templates/loom-skill → builtin-skills/loom}/references/data-model.md +0 -0
@@ -0,0 +1,41 @@
1
+ /**
2
+ * tsconfig.json and frontend/tsconfig.json templates
3
+ */
4
+ export function createTsconfig() {
5
+ return {
6
+ compilerOptions: {
7
+ target: 'ES2022',
8
+ module: 'Node16',
9
+ moduleResolution: 'Node16',
10
+ strict: true,
11
+ esModuleInterop: true,
12
+ skipLibCheck: true,
13
+ forceConsistentCasingInFileNames: true,
14
+ resolveJsonModule: true,
15
+ declaration: true,
16
+ sourceMap: true,
17
+ },
18
+ exclude: ['node_modules', 'dist', 'frontend'],
19
+ };
20
+ }
21
+ export function createFrontendTsconfig() {
22
+ return `{
23
+ "compilerOptions": {
24
+ "target": "ES2022",
25
+ "lib": ["ES2022", "DOM", "DOM.Iterable"],
26
+ "module": "ESNext",
27
+ "moduleResolution": "bundler",
28
+ "jsx": "react-jsx",
29
+ "strict": true,
30
+ "esModuleInterop": true,
31
+ "skipLibCheck": true,
32
+ "forceConsistentCasingInFileNames": true,
33
+ "resolveJsonModule": true,
34
+ "isolatedModules": true,
35
+ "noEmit": true
36
+ },
37
+ "include": ["src"]
38
+ }
39
+ `;
40
+ }
41
+ //# sourceMappingURL=tsconfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tsconfig.js","sourceRoot":"","sources":["../../../src/cli/templates/tsconfig.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,UAAU,cAAc;IAC5B,OAAO;QACL,eAAe,EAAE;YACf,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,QAAQ;YAChB,gBAAgB,EAAE,QAAQ;YAC1B,MAAM,EAAE,IAAI;YACZ,eAAe,EAAE,IAAI;YACrB,YAAY,EAAE,IAAI;YAClB,gCAAgC,EAAE,IAAI;YACtC,iBAAiB,EAAE,IAAI;YACvB,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,IAAI;SAChB;QACD,OAAO,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO;;;;;;;;;;;;;;;;;CAiBR,CAAC;AACF,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * vite.config.ts template
3
+ */
4
+ export declare function createViteConfig(): string;
5
+ //# sourceMappingURL=vite-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite-config.d.ts","sourceRoot":"","sources":["../../../src/cli/templates/vite-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,wBAAgB,gBAAgB,IAAI,MAAM,CAmBzC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * vite.config.ts template
3
+ */
4
+ export function createViteConfig() {
5
+ return `import { defineConfig } from 'vite';
6
+ import react from '@vitejs/plugin-react';
7
+
8
+ export default defineConfig({
9
+ plugins: [react()],
10
+ root: 'frontend',
11
+ build: {
12
+ outDir: '../dist/frontend',
13
+ emptyOutDir: true,
14
+ },
15
+ server: {
16
+ port: 5173,
17
+ proxy: {
18
+ '/api': 'http://localhost:3000',
19
+ },
20
+ },
21
+ });
22
+ `;
23
+ }
24
+ //# sourceMappingURL=vite-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite-config.js","sourceRoot":"","sources":["../../../src/cli/templates/vite-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,UAAU,gBAAgB;IAC9B,OAAO;;;;;;;;;;;;;;;;;CAiBR,CAAC;AACF,CAAC"}
@@ -4,7 +4,7 @@
4
4
  * defineCommand() - Type-safe command registration
5
5
  * Auto-discovery from cli/commands/ directory
6
6
  */
7
- import type { CommandDefinition, CommandContext, LoomConfig, DataAdapter } from './types.js';
7
+ import type { CommandDefinition } from './types.js';
8
8
  /**
9
9
  * Define a CLI command with type safety
10
10
  *
@@ -25,8 +25,4 @@ import type { CommandDefinition, CommandContext, LoomConfig, DataAdapter } from
25
25
  * ```
26
26
  */
27
27
  export declare function defineCommand(command: CommandDefinition): CommandDefinition;
28
- /**
29
- * Context factory for command execution
30
- */
31
- export declare function createCommandContext(config: LoomConfig, configPath: string, projectRoot: string, dataAdapter: DataAdapter): CommandContext;
32
28
  //# sourceMappingURL=commands.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE7F;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,iBAAiB,CAE3E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,WAAW,GACvB,cAAc,CAOhB"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,iBAAiB,CAE3E"}
package/dist/commands.js CHANGED
@@ -26,15 +26,4 @@
26
26
  export function defineCommand(command) {
27
27
  return command;
28
28
  }
29
- /**
30
- * Context factory for command execution
31
- */
32
- export function createCommandContext(config, configPath, projectRoot, dataAdapter) {
33
- return {
34
- config,
35
- configPath,
36
- projectRoot,
37
- getDataAdapter: () => dataAdapter,
38
- };
39
- }
40
29
  //# sourceMappingURL=commands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,aAAa,CAAC,OAA0B;IACtD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAkB,EAClB,UAAkB,EAClB,WAAmB,EACnB,WAAwB;IAExB,OAAO;QACL,MAAM;QACN,UAAU;QACV,WAAW;QACX,cAAc,EAAE,GAAG,EAAE,CAAC,WAAW;KAClC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,aAAa,CAAC,OAA0B;IACtD,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/dist/config.d.ts CHANGED
@@ -5,7 +5,7 @@
5
5
  * loadConfig() - Load and validate loom.config.ts
6
6
  */
7
7
  import { z } from 'zod';
8
- import type { LoomConfig, ModelSchema, DashboardConfig } from './types.js';
8
+ import type { LoomConfig, ModelSchema } from './types.js';
9
9
  declare const LoomConfigSchema: z.ZodObject<{
10
10
  project: z.ZodObject<{
11
11
  name: z.ZodString;
@@ -31,16 +31,16 @@ declare const LoomConfigSchema: z.ZodObject<{
31
31
  }, "strip", z.ZodTypeAny, {
32
32
  type: "string" | "number" | "boolean" | "date" | "string[]" | "number[]" | "json";
33
33
  name: string;
34
- required?: boolean | undefined;
35
34
  description?: string | undefined;
36
35
  default?: unknown;
36
+ required?: boolean | undefined;
37
37
  enum?: string[] | undefined;
38
38
  }, {
39
39
  type: "string" | "number" | "boolean" | "date" | "string[]" | "number[]" | "json";
40
40
  name: string;
41
- required?: boolean | undefined;
42
41
  description?: string | undefined;
43
42
  default?: unknown;
43
+ required?: boolean | undefined;
44
44
  enum?: string[] | undefined;
45
45
  }>, "many">;
46
46
  indexes: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -99,9 +99,9 @@ declare const LoomConfigSchema: z.ZodObject<{
99
99
  fields: {
100
100
  type: "string" | "number" | "boolean" | "date" | "string[]" | "number[]" | "json";
101
101
  name: string;
102
- required?: boolean | undefined;
103
102
  description?: string | undefined;
104
103
  default?: unknown;
104
+ required?: boolean | undefined;
105
105
  enum?: string[] | undefined;
106
106
  }[];
107
107
  description?: string | undefined;
@@ -124,9 +124,9 @@ declare const LoomConfigSchema: z.ZodObject<{
124
124
  fields: {
125
125
  type: "string" | "number" | "boolean" | "date" | "string[]" | "number[]" | "json";
126
126
  name: string;
127
- required?: boolean | undefined;
128
127
  description?: string | undefined;
129
128
  default?: unknown;
129
+ required?: boolean | undefined;
130
130
  enum?: string[] | undefined;
131
131
  }[];
132
132
  description?: string | undefined;
@@ -153,15 +153,14 @@ declare const LoomConfigSchema: z.ZodObject<{
153
153
  filename?: string | undefined;
154
154
  }>>;
155
155
  }, "strip", z.ZodTypeAny, {
156
- defaultAdapter: "filesystem" | "sqlite";
157
156
  models: {
158
157
  name: string;
159
158
  fields: {
160
159
  type: "string" | "number" | "boolean" | "date" | "string[]" | "number[]" | "json";
161
160
  name: string;
162
- required?: boolean | undefined;
163
161
  description?: string | undefined;
164
162
  default?: unknown;
163
+ required?: boolean | undefined;
165
164
  enum?: string[] | undefined;
166
165
  }[];
167
166
  description?: string | undefined;
@@ -180,19 +179,19 @@ declare const LoomConfigSchema: z.ZodObject<{
180
179
  } | undefined;
181
180
  } | undefined;
182
181
  }[];
182
+ defaultAdapter: "filesystem" | "sqlite";
183
183
  sqlite?: {
184
184
  filename?: string | undefined;
185
185
  } | undefined;
186
186
  }, {
187
- defaultAdapter: "filesystem" | "sqlite";
188
187
  models: {
189
188
  name: string;
190
189
  fields: {
191
190
  type: "string" | "number" | "boolean" | "date" | "string[]" | "number[]" | "json";
192
191
  name: string;
193
- required?: boolean | undefined;
194
192
  description?: string | undefined;
195
193
  default?: unknown;
194
+ required?: boolean | undefined;
196
195
  enum?: string[] | undefined;
197
196
  }[];
198
197
  description?: string | undefined;
@@ -211,6 +210,7 @@ declare const LoomConfigSchema: z.ZodObject<{
211
210
  } | undefined;
212
211
  } | undefined;
213
212
  }[];
213
+ defaultAdapter: "filesystem" | "sqlite";
214
214
  sqlite?: {
215
215
  filename?: string | undefined;
216
216
  } | undefined;
@@ -287,15 +287,14 @@ declare const LoomConfigSchema: z.ZodObject<{
287
287
  }>, "many">>;
288
288
  }, "strip", z.ZodTypeAny, {
289
289
  data: {
290
- defaultAdapter: "filesystem" | "sqlite";
291
290
  models: {
292
291
  name: string;
293
292
  fields: {
294
293
  type: "string" | "number" | "boolean" | "date" | "string[]" | "number[]" | "json";
295
294
  name: string;
296
- required?: boolean | undefined;
297
295
  description?: string | undefined;
298
296
  default?: unknown;
297
+ required?: boolean | undefined;
299
298
  enum?: string[] | undefined;
300
299
  }[];
301
300
  description?: string | undefined;
@@ -314,6 +313,7 @@ declare const LoomConfigSchema: z.ZodObject<{
314
313
  } | undefined;
315
314
  } | undefined;
316
315
  }[];
316
+ defaultAdapter: "filesystem" | "sqlite";
317
317
  sqlite?: {
318
318
  filename?: string | undefined;
319
319
  } | undefined;
@@ -346,15 +346,14 @@ declare const LoomConfigSchema: z.ZodObject<{
346
346
  }[] | undefined;
347
347
  }, {
348
348
  data: {
349
- defaultAdapter: "filesystem" | "sqlite";
350
349
  models: {
351
350
  name: string;
352
351
  fields: {
353
352
  type: "string" | "number" | "boolean" | "date" | "string[]" | "number[]" | "json";
354
353
  name: string;
355
- required?: boolean | undefined;
356
354
  description?: string | undefined;
357
355
  default?: unknown;
356
+ required?: boolean | undefined;
358
357
  enum?: string[] | undefined;
359
358
  }[];
360
359
  description?: string | undefined;
@@ -373,6 +372,7 @@ declare const LoomConfigSchema: z.ZodObject<{
373
372
  } | undefined;
374
373
  } | undefined;
375
374
  }[];
375
+ defaultAdapter: "filesystem" | "sqlite";
376
376
  sqlite?: {
377
377
  filename?: string | undefined;
378
378
  } | undefined;
@@ -447,113 +447,6 @@ export declare function getModelSchema(config: LoomConfig, modelName: string): M
447
447
  * Validate that all model names are unique
448
448
  */
449
449
  export declare function validateModelUniqueness(config: LoomConfig): string[];
450
- declare const DashboardConfigSchema: z.ZodObject<{
451
- name: z.ZodString;
452
- description: z.ZodOptional<z.ZodString>;
453
- models: z.ZodArray<z.ZodString, "many">;
454
- layout: z.ZodArray<z.ZodObject<{
455
- row: z.ZodArray<z.ZodObject<{
456
- type: z.ZodEnum<["stat", "pie", "ring", "bar", "line", "area", "scatter", "radar", "funnel", "treemap", "gauge", "liquid", "heatmap", "stacked_bar", "grouped_bar"]>;
457
- title: z.ZodString;
458
- model: z.ZodString;
459
- span: z.ZodOptional<z.ZodNumber>;
460
- groupBy: z.ZodOptional<z.ZodString>;
461
- crossGroupBy: z.ZodOptional<z.ZodString>;
462
- aggregate: z.ZodOptional<z.ZodEnum<["count", "sum", "avg", "min", "max", "ratio"]>>;
463
- field: z.ZodOptional<z.ZodString>;
464
- filter: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
465
- interval: z.ZodOptional<z.ZodEnum<["day", "week", "month"]>>;
466
- }, "strip", z.ZodTypeAny, {
467
- type: "stat" | "pie" | "ring" | "bar" | "line" | "area" | "scatter" | "radar" | "funnel" | "treemap" | "gauge" | "liquid" | "heatmap" | "stacked_bar" | "grouped_bar";
468
- title: string;
469
- model: string;
470
- filter?: Record<string, unknown> | undefined;
471
- field?: string | undefined;
472
- span?: number | undefined;
473
- groupBy?: string | undefined;
474
- crossGroupBy?: string | undefined;
475
- aggregate?: "count" | "sum" | "avg" | "min" | "max" | "ratio" | undefined;
476
- interval?: "day" | "week" | "month" | undefined;
477
- }, {
478
- type: "stat" | "pie" | "ring" | "bar" | "line" | "area" | "scatter" | "radar" | "funnel" | "treemap" | "gauge" | "liquid" | "heatmap" | "stacked_bar" | "grouped_bar";
479
- title: string;
480
- model: string;
481
- filter?: Record<string, unknown> | undefined;
482
- field?: string | undefined;
483
- span?: number | undefined;
484
- groupBy?: string | undefined;
485
- crossGroupBy?: string | undefined;
486
- aggregate?: "count" | "sum" | "avg" | "min" | "max" | "ratio" | undefined;
487
- interval?: "day" | "week" | "month" | undefined;
488
- }>, "many">;
489
- }, "strip", z.ZodTypeAny, {
490
- row: {
491
- type: "stat" | "pie" | "ring" | "bar" | "line" | "area" | "scatter" | "radar" | "funnel" | "treemap" | "gauge" | "liquid" | "heatmap" | "stacked_bar" | "grouped_bar";
492
- title: string;
493
- model: string;
494
- filter?: Record<string, unknown> | undefined;
495
- field?: string | undefined;
496
- span?: number | undefined;
497
- groupBy?: string | undefined;
498
- crossGroupBy?: string | undefined;
499
- aggregate?: "count" | "sum" | "avg" | "min" | "max" | "ratio" | undefined;
500
- interval?: "day" | "week" | "month" | undefined;
501
- }[];
502
- }, {
503
- row: {
504
- type: "stat" | "pie" | "ring" | "bar" | "line" | "area" | "scatter" | "radar" | "funnel" | "treemap" | "gauge" | "liquid" | "heatmap" | "stacked_bar" | "grouped_bar";
505
- title: string;
506
- model: string;
507
- filter?: Record<string, unknown> | undefined;
508
- field?: string | undefined;
509
- span?: number | undefined;
510
- groupBy?: string | undefined;
511
- crossGroupBy?: string | undefined;
512
- aggregate?: "count" | "sum" | "avg" | "min" | "max" | "ratio" | undefined;
513
- interval?: "day" | "week" | "month" | undefined;
514
- }[];
515
- }>, "many">;
516
- }, "strip", z.ZodTypeAny, {
517
- name: string;
518
- models: string[];
519
- layout: {
520
- row: {
521
- type: "stat" | "pie" | "ring" | "bar" | "line" | "area" | "scatter" | "radar" | "funnel" | "treemap" | "gauge" | "liquid" | "heatmap" | "stacked_bar" | "grouped_bar";
522
- title: string;
523
- model: string;
524
- filter?: Record<string, unknown> | undefined;
525
- field?: string | undefined;
526
- span?: number | undefined;
527
- groupBy?: string | undefined;
528
- crossGroupBy?: string | undefined;
529
- aggregate?: "count" | "sum" | "avg" | "min" | "max" | "ratio" | undefined;
530
- interval?: "day" | "week" | "month" | undefined;
531
- }[];
532
- }[];
533
- description?: string | undefined;
534
- }, {
535
- name: string;
536
- models: string[];
537
- layout: {
538
- row: {
539
- type: "stat" | "pie" | "ring" | "bar" | "line" | "area" | "scatter" | "radar" | "funnel" | "treemap" | "gauge" | "liquid" | "heatmap" | "stacked_bar" | "grouped_bar";
540
- title: string;
541
- model: string;
542
- filter?: Record<string, unknown> | undefined;
543
- field?: string | undefined;
544
- span?: number | undefined;
545
- groupBy?: string | undefined;
546
- crossGroupBy?: string | undefined;
547
- aggregate?: "count" | "sum" | "avg" | "min" | "max" | "ratio" | undefined;
548
- interval?: "day" | "week" | "month" | undefined;
549
- }[];
550
- }[];
551
- description?: string | undefined;
552
- }>;
553
- /**
554
- * Load dashboard.config.json from a project directory.
555
- * Returns the validated DashboardConfig, or null if no config file exists.
556
- */
557
- export declare function loadDashboardConfig(projectRoot: string): Promise<DashboardConfig | null>;
558
- export { LoomConfigSchema, DashboardConfigSchema };
450
+ export { LoomConfigSchema };
451
+ export { loadDashboardConfig, DashboardConfigSchema } from './dashboard-config.js';
559
452
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAmC,eAAe,EAAE,MAAM,YAAY,CAAC;AA8C5G,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BpB,CAAC;AAIH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAU3D;AAID;;;GAGG;AACH,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAqBzE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAoBnF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAE7F;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,EAAE,CAUpE;AAqBD,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKY,CAAC;AAExC;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CA0B9F;AAGD,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAmC,MAAM,YAAY,CAAC;AA8C3F,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BpB,CAAC;AAIH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAU3D;AAID;;;GAGG;AACH,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAqBzE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAoBnF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAE7F;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,EAAE,CAUpE;AAGD,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC"}
package/dist/config.js CHANGED
@@ -172,57 +172,7 @@ export function validateModelUniqueness(config) {
172
172
  }
173
173
  return errors;
174
174
  }
175
- // ── Dashboard Config Schema ──
176
- const DashboardWidgetSchema = z.object({
177
- type: z.enum(['stat', 'pie', 'ring', 'bar', 'line', 'area', 'scatter', 'radar', 'funnel', 'treemap', 'gauge', 'liquid', 'heatmap', 'stacked_bar', 'grouped_bar']),
178
- title: z.string(),
179
- model: z.string(),
180
- span: z.number().int().min(1).max(24).optional(),
181
- groupBy: z.string().optional(),
182
- crossGroupBy: z.string().optional(),
183
- aggregate: z.enum(['count', 'sum', 'avg', 'min', 'max', 'ratio']).optional(),
184
- field: z.string().optional(),
185
- filter: z.record(z.unknown()).optional(),
186
- interval: z.enum(['day', 'week', 'month']).optional(),
187
- });
188
- const DashboardLayoutRowSchema = z.object({
189
- row: z.array(DashboardWidgetSchema).min(1),
190
- });
191
- const DashboardConfigSchema = z.object({
192
- name: z.string().regex(/^[a-zA-Z][a-zA-Z0-9_]*$/, 'Dashboard name must start with a letter and contain only letters, digits, or underscores'),
193
- description: z.string().optional(),
194
- models: z.array(z.string()).min(1),
195
- layout: z.array(DashboardLayoutRowSchema).min(1),
196
- });
197
- /**
198
- * Load dashboard.config.json from a project directory.
199
- * Returns the validated DashboardConfig, or null if no config file exists.
200
- */
201
- export async function loadDashboardConfig(projectRoot) {
202
- const fs = await import('fs/promises');
203
- const path = await import('path');
204
- const configPath = path.resolve(projectRoot, 'dashboard.config.json');
205
- try {
206
- const raw = await fs.readFile(configPath, 'utf-8');
207
- const json = JSON.parse(raw);
208
- const result = DashboardConfigSchema.safeParse(json);
209
- if (!result.success) {
210
- const errors = result.error.issues.map((i) => ` ${i.path.join('.')}: ${i.message}`).join('\n');
211
- throw new Error(`Invalid dashboard.config.json:\n${errors}`);
212
- }
213
- return result.data;
214
- }
215
- catch (err) {
216
- if (err instanceof SyntaxError) {
217
- throw new Error(`dashboard.config.json is not valid JSON: ${err.message}`);
218
- }
219
- // File not found → return null (dashboard is optional)
220
- if (err.code === 'ENOENT') {
221
- return null;
222
- }
223
- throw err;
224
- }
225
- }
226
175
  // Re-export zod schemas for external validation
227
- export { LoomConfigSchema, DashboardConfigSchema };
176
+ export { LoomConfigSchema };
177
+ export { loadDashboardConfig, DashboardConfigSchema } from './dashboard-config.js';
228
178
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Dashboard Configuration
3
+ *
4
+ * Zod schemas and loader for dashboard.config.json
5
+ */
6
+ import { z } from 'zod';
7
+ import type { DashboardConfig } from './types.js';
8
+ declare const DashboardConfigSchema: z.ZodObject<{
9
+ name: z.ZodString;
10
+ description: z.ZodOptional<z.ZodString>;
11
+ models: z.ZodArray<z.ZodString, "many">;
12
+ layout: z.ZodArray<z.ZodObject<{
13
+ row: z.ZodArray<z.ZodObject<{
14
+ type: z.ZodEnum<["stat", "pie", "ring", "bar", "line", "area", "scatter", "radar", "funnel", "treemap", "gauge", "liquid", "heatmap", "stacked_bar", "grouped_bar"]>;
15
+ title: z.ZodString;
16
+ model: z.ZodString;
17
+ span: z.ZodOptional<z.ZodNumber>;
18
+ groupBy: z.ZodOptional<z.ZodString>;
19
+ crossGroupBy: z.ZodOptional<z.ZodString>;
20
+ aggregate: z.ZodOptional<z.ZodEnum<["count", "sum", "avg", "min", "max", "ratio"]>>;
21
+ field: z.ZodOptional<z.ZodString>;
22
+ filter: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
23
+ interval: z.ZodOptional<z.ZodEnum<["day", "week", "month"]>>;
24
+ }, "strip", z.ZodTypeAny, {
25
+ type: "stat" | "pie" | "ring" | "bar" | "line" | "area" | "scatter" | "radar" | "funnel" | "treemap" | "gauge" | "liquid" | "heatmap" | "stacked_bar" | "grouped_bar";
26
+ title: string;
27
+ model: string;
28
+ filter?: Record<string, unknown> | undefined;
29
+ field?: string | undefined;
30
+ span?: number | undefined;
31
+ groupBy?: string | undefined;
32
+ crossGroupBy?: string | undefined;
33
+ aggregate?: "count" | "sum" | "avg" | "min" | "max" | "ratio" | undefined;
34
+ interval?: "day" | "week" | "month" | undefined;
35
+ }, {
36
+ type: "stat" | "pie" | "ring" | "bar" | "line" | "area" | "scatter" | "radar" | "funnel" | "treemap" | "gauge" | "liquid" | "heatmap" | "stacked_bar" | "grouped_bar";
37
+ title: string;
38
+ model: string;
39
+ filter?: Record<string, unknown> | undefined;
40
+ field?: string | undefined;
41
+ span?: number | undefined;
42
+ groupBy?: string | undefined;
43
+ crossGroupBy?: string | undefined;
44
+ aggregate?: "count" | "sum" | "avg" | "min" | "max" | "ratio" | undefined;
45
+ interval?: "day" | "week" | "month" | undefined;
46
+ }>, "many">;
47
+ }, "strip", z.ZodTypeAny, {
48
+ row: {
49
+ type: "stat" | "pie" | "ring" | "bar" | "line" | "area" | "scatter" | "radar" | "funnel" | "treemap" | "gauge" | "liquid" | "heatmap" | "stacked_bar" | "grouped_bar";
50
+ title: string;
51
+ model: string;
52
+ filter?: Record<string, unknown> | undefined;
53
+ field?: string | undefined;
54
+ span?: number | undefined;
55
+ groupBy?: string | undefined;
56
+ crossGroupBy?: string | undefined;
57
+ aggregate?: "count" | "sum" | "avg" | "min" | "max" | "ratio" | undefined;
58
+ interval?: "day" | "week" | "month" | undefined;
59
+ }[];
60
+ }, {
61
+ row: {
62
+ type: "stat" | "pie" | "ring" | "bar" | "line" | "area" | "scatter" | "radar" | "funnel" | "treemap" | "gauge" | "liquid" | "heatmap" | "stacked_bar" | "grouped_bar";
63
+ title: string;
64
+ model: string;
65
+ filter?: Record<string, unknown> | undefined;
66
+ field?: string | undefined;
67
+ span?: number | undefined;
68
+ groupBy?: string | undefined;
69
+ crossGroupBy?: string | undefined;
70
+ aggregate?: "count" | "sum" | "avg" | "min" | "max" | "ratio" | undefined;
71
+ interval?: "day" | "week" | "month" | undefined;
72
+ }[];
73
+ }>, "many">;
74
+ }, "strip", z.ZodTypeAny, {
75
+ name: string;
76
+ models: string[];
77
+ layout: {
78
+ row: {
79
+ type: "stat" | "pie" | "ring" | "bar" | "line" | "area" | "scatter" | "radar" | "funnel" | "treemap" | "gauge" | "liquid" | "heatmap" | "stacked_bar" | "grouped_bar";
80
+ title: string;
81
+ model: string;
82
+ filter?: Record<string, unknown> | undefined;
83
+ field?: string | undefined;
84
+ span?: number | undefined;
85
+ groupBy?: string | undefined;
86
+ crossGroupBy?: string | undefined;
87
+ aggregate?: "count" | "sum" | "avg" | "min" | "max" | "ratio" | undefined;
88
+ interval?: "day" | "week" | "month" | undefined;
89
+ }[];
90
+ }[];
91
+ description?: string | undefined;
92
+ }, {
93
+ name: string;
94
+ models: string[];
95
+ layout: {
96
+ row: {
97
+ type: "stat" | "pie" | "ring" | "bar" | "line" | "area" | "scatter" | "radar" | "funnel" | "treemap" | "gauge" | "liquid" | "heatmap" | "stacked_bar" | "grouped_bar";
98
+ title: string;
99
+ model: string;
100
+ filter?: Record<string, unknown> | undefined;
101
+ field?: string | undefined;
102
+ span?: number | undefined;
103
+ groupBy?: string | undefined;
104
+ crossGroupBy?: string | undefined;
105
+ aggregate?: "count" | "sum" | "avg" | "min" | "max" | "ratio" | undefined;
106
+ interval?: "day" | "week" | "month" | undefined;
107
+ }[];
108
+ }[];
109
+ description?: string | undefined;
110
+ }>;
111
+ /**
112
+ * Load dashboard.config.json from a project directory.
113
+ * Returns the validated DashboardConfig, or null if no config file exists.
114
+ */
115
+ export declare function loadDashboardConfig(projectRoot: string): Promise<DashboardConfig | null>;
116
+ export { DashboardConfigSchema };
117
+ //# sourceMappingURL=dashboard-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-config.d.ts","sourceRoot":"","sources":["../src/dashboard-config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAqBlD,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKY,CAAC;AAExC;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CA0B9F;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAC"}