@loom-framework/core 0.1.0-alpha.15 → 0.1.0-alpha.150

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 (627) 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/app-skill/SKILL.md +32 -0
  184. package/builtin-skills/app-skill/references/auth.md +164 -0
  185. package/builtin-skills/app-skill/references/data-semantics.md +44 -0
  186. package/builtin-skills/app-skill/references/models.md +33 -0
  187. package/builtin-skills/chart-visualization/SKILL.md +101 -0
  188. package/builtin-skills/loom/SKILL.md +263 -0
  189. package/builtin-skills/loom/references/README.md +285 -0
  190. package/builtin-skills/loom/references/dashboard.md +257 -0
  191. package/builtin-skills/loom/references/data-model.md +196 -0
  192. package/builtin-skills/yuque-reader/SKILL.md +43 -0
  193. package/builtin-skills/yuque-reader/references/config.md +52 -0
  194. package/builtin-skills/yuque-reader/scripts/fetch_doc.py +121 -0
  195. package/dist/adapter-base.d.ts +31 -0
  196. package/dist/adapter-base.d.ts.map +1 -0
  197. package/dist/adapter-base.js +69 -0
  198. package/dist/adapter-base.js.map +1 -0
  199. package/dist/adapter-factory.d.ts +8 -0
  200. package/dist/adapter-factory.d.ts.map +1 -0
  201. package/dist/adapter-factory.js +25 -0
  202. package/dist/adapter-factory.js.map +1 -0
  203. package/dist/adapter-filesystem.d.ts +25 -11
  204. package/dist/adapter-filesystem.d.ts.map +1 -1
  205. package/dist/adapter-filesystem.js +230 -52
  206. package/dist/adapter-filesystem.js.map +1 -1
  207. package/dist/adapter-sqlite.d.ts +9 -23
  208. package/dist/adapter-sqlite.d.ts.map +1 -1
  209. package/dist/adapter-sqlite.js +94 -55
  210. package/dist/adapter-sqlite.js.map +1 -1
  211. package/dist/adapters/base.d.ts +31 -0
  212. package/dist/adapters/base.d.ts.map +1 -0
  213. package/dist/adapters/base.js +69 -0
  214. package/dist/adapters/base.js.map +1 -0
  215. package/dist/adapters/factory.d.ts +8 -0
  216. package/dist/adapters/factory.d.ts.map +1 -0
  217. package/dist/adapters/factory.js +25 -0
  218. package/dist/adapters/factory.js.map +1 -0
  219. package/dist/adapters/filesystem.d.ts +46 -0
  220. package/dist/adapters/filesystem.d.ts.map +1 -0
  221. package/dist/adapters/filesystem.js +321 -0
  222. package/dist/adapters/filesystem.js.map +1 -0
  223. package/dist/adapters/index.d.ts +10 -0
  224. package/dist/adapters/index.d.ts.map +1 -0
  225. package/dist/adapters/index.js +8 -0
  226. package/dist/adapters/index.js.map +1 -0
  227. package/dist/adapters/sqlite.d.ts +37 -0
  228. package/dist/adapters/sqlite.d.ts.map +1 -0
  229. package/dist/adapters/sqlite.js +264 -0
  230. package/dist/adapters/sqlite.js.map +1 -0
  231. package/dist/backend/ai/button-resolver.d.ts +18 -0
  232. package/dist/backend/ai/button-resolver.d.ts.map +1 -0
  233. package/dist/backend/ai/button-resolver.js +58 -0
  234. package/dist/backend/ai/button-resolver.js.map +1 -0
  235. package/dist/backend/ai/content-blocks.d.ts +18 -0
  236. package/dist/backend/ai/content-blocks.d.ts.map +1 -0
  237. package/dist/backend/ai/content-blocks.js +66 -0
  238. package/dist/backend/ai/content-blocks.js.map +1 -0
  239. package/dist/backend/ai/engine.d.ts +60 -0
  240. package/dist/backend/ai/engine.d.ts.map +1 -0
  241. package/dist/backend/ai/engine.js +206 -0
  242. package/dist/backend/ai/engine.js.map +1 -0
  243. package/dist/backend/ai/index.d.ts +11 -0
  244. package/dist/backend/ai/index.d.ts.map +1 -0
  245. package/dist/backend/ai/index.js +8 -0
  246. package/dist/backend/ai/index.js.map +1 -0
  247. package/dist/backend/ai/output-parser.d.ts +36 -0
  248. package/dist/backend/ai/output-parser.d.ts.map +1 -0
  249. package/dist/backend/ai/output-parser.js +264 -0
  250. package/dist/backend/ai/output-parser.js.map +1 -0
  251. package/dist/backend/ai/session-manager.d.ts +103 -0
  252. package/dist/backend/ai/session-manager.d.ts.map +1 -0
  253. package/dist/backend/ai/session-manager.js +299 -0
  254. package/dist/backend/ai/session-manager.js.map +1 -0
  255. package/dist/backend/auth/jwt.d.ts +16 -0
  256. package/dist/backend/auth/jwt.d.ts.map +1 -0
  257. package/dist/backend/auth/jwt.js +57 -0
  258. package/dist/backend/auth/jwt.js.map +1 -0
  259. package/dist/backend/auth/password.d.ts +10 -0
  260. package/dist/backend/auth/password.d.ts.map +1 -0
  261. package/dist/backend/auth/password.js +19 -0
  262. package/dist/backend/auth/password.js.map +1 -0
  263. package/dist/backend/auth/rbac.d.ts +34 -0
  264. package/dist/backend/auth/rbac.d.ts.map +1 -0
  265. package/dist/backend/auth/rbac.js +124 -0
  266. package/dist/backend/auth/rbac.js.map +1 -0
  267. package/dist/backend/auth/service-token.d.ts +11 -0
  268. package/dist/backend/auth/service-token.d.ts.map +1 -0
  269. package/dist/backend/auth/service-token.js +13 -0
  270. package/dist/backend/auth/service-token.js.map +1 -0
  271. package/dist/backend/auth/token-store.d.ts +27 -0
  272. package/dist/backend/auth/token-store.d.ts.map +1 -0
  273. package/dist/backend/auth/token-store.js +84 -0
  274. package/dist/backend/auth/token-store.js.map +1 -0
  275. package/dist/backend/auth/user-store.d.ts +41 -0
  276. package/dist/backend/auth/user-store.d.ts.map +1 -0
  277. package/dist/backend/auth/user-store.js +112 -0
  278. package/dist/backend/auth/user-store.js.map +1 -0
  279. package/dist/backend/index.d.ts +67 -0
  280. package/dist/backend/index.d.ts.map +1 -0
  281. package/dist/backend/index.js +200 -0
  282. package/dist/backend/index.js.map +1 -0
  283. package/dist/backend/observe/index.d.ts +6 -0
  284. package/dist/backend/observe/index.d.ts.map +1 -0
  285. package/dist/backend/observe/index.js +5 -0
  286. package/dist/backend/observe/index.js.map +1 -0
  287. package/dist/backend/observe/logger.d.ts +24 -0
  288. package/dist/backend/observe/logger.d.ts.map +1 -0
  289. package/dist/backend/observe/logger.js +63 -0
  290. package/dist/backend/observe/logger.js.map +1 -0
  291. package/dist/backend/observe/types.d.ts +26 -0
  292. package/dist/backend/observe/types.d.ts.map +1 -0
  293. package/dist/backend/observe/types.js +7 -0
  294. package/dist/backend/observe/types.js.map +1 -0
  295. package/dist/backend/routes/ai-config.d.ts +13 -0
  296. package/dist/backend/routes/ai-config.d.ts.map +1 -0
  297. package/dist/backend/routes/ai-config.js +170 -0
  298. package/dist/backend/routes/ai-config.js.map +1 -0
  299. package/dist/backend/routes/auth-routes.d.ts +26 -0
  300. package/dist/backend/routes/auth-routes.d.ts.map +1 -0
  301. package/dist/backend/routes/auth-routes.js +301 -0
  302. package/dist/backend/routes/auth-routes.js.map +1 -0
  303. package/dist/backend/routes/chat-sse.d.ts +17 -0
  304. package/dist/backend/routes/chat-sse.d.ts.map +1 -0
  305. package/dist/backend/routes/chat-sse.js +60 -0
  306. package/dist/backend/routes/chat-sse.js.map +1 -0
  307. package/dist/backend/routes/chat.d.ts +27 -0
  308. package/dist/backend/routes/chat.d.ts.map +1 -0
  309. package/dist/backend/routes/chat.js +257 -0
  310. package/dist/backend/routes/chat.js.map +1 -0
  311. package/dist/backend/routes/data.d.ts +15 -0
  312. package/dist/backend/routes/data.d.ts.map +1 -0
  313. package/dist/backend/routes/data.js +365 -0
  314. package/dist/backend/routes/data.js.map +1 -0
  315. package/dist/backend/routes/health.d.ts +7 -0
  316. package/dist/backend/routes/health.d.ts.map +1 -0
  317. package/dist/backend/routes/health.js +15 -0
  318. package/dist/backend/routes/health.js.map +1 -0
  319. package/dist/backend/routes/index.d.ts +16 -0
  320. package/dist/backend/routes/index.d.ts.map +1 -0
  321. package/dist/backend/routes/index.js +12 -0
  322. package/dist/backend/routes/index.js.map +1 -0
  323. package/dist/backend/routes/session-routes.d.ts +20 -0
  324. package/dist/backend/routes/session-routes.d.ts.map +1 -0
  325. package/dist/backend/routes/session-routes.js +94 -0
  326. package/dist/backend/routes/session-routes.js.map +1 -0
  327. package/dist/backend/routes/skill-archive.d.ts +13 -0
  328. package/dist/backend/routes/skill-archive.d.ts.map +1 -0
  329. package/dist/backend/routes/skill-archive.js +84 -0
  330. package/dist/backend/routes/skill-archive.js.map +1 -0
  331. package/dist/backend/routes/skill-parser.d.ts +41 -0
  332. package/dist/backend/routes/skill-parser.d.ts.map +1 -0
  333. package/dist/backend/routes/skill-parser.js +184 -0
  334. package/dist/backend/routes/skill-parser.js.map +1 -0
  335. package/dist/backend/routes/skill-service.d.ts +113 -0
  336. package/dist/backend/routes/skill-service.d.ts.map +1 -0
  337. package/dist/backend/routes/skill-service.js +265 -0
  338. package/dist/backend/routes/skill-service.js.map +1 -0
  339. package/dist/backend/routes/skills.d.ts +16 -0
  340. package/dist/backend/routes/skills.d.ts.map +1 -0
  341. package/dist/backend/routes/skills.js +164 -0
  342. package/dist/backend/routes/skills.js.map +1 -0
  343. package/dist/backend/routes/upload.d.ts +24 -0
  344. package/dist/backend/routes/upload.d.ts.map +1 -0
  345. package/dist/backend/routes/upload.js +99 -0
  346. package/dist/backend/routes/upload.js.map +1 -0
  347. package/dist/backend/services/skill-archive.d.ts +13 -0
  348. package/dist/backend/services/skill-archive.d.ts.map +1 -0
  349. package/dist/backend/services/skill-archive.js +84 -0
  350. package/dist/backend/services/skill-archive.js.map +1 -0
  351. package/dist/backend/services/skill-parser.d.ts +41 -0
  352. package/dist/backend/services/skill-parser.d.ts.map +1 -0
  353. package/dist/backend/services/skill-parser.js +184 -0
  354. package/dist/backend/services/skill-parser.js.map +1 -0
  355. package/dist/backend/services/skill-service.d.ts +113 -0
  356. package/dist/backend/services/skill-service.d.ts.map +1 -0
  357. package/dist/backend/services/skill-service.js +265 -0
  358. package/dist/backend/services/skill-service.js.map +1 -0
  359. package/dist/bin.d.ts +8 -0
  360. package/dist/bin.d.ts.map +1 -0
  361. package/dist/bin.js +12 -0
  362. package/dist/bin.js.map +1 -0
  363. package/dist/capability-generator.d.ts +21 -6
  364. package/dist/capability-generator.d.ts.map +1 -1
  365. package/dist/capability-generator.js +88 -261
  366. package/dist/capability-generator.js.map +1 -1
  367. package/dist/cli/commands/auth.d.ts +11 -0
  368. package/dist/cli/commands/auth.d.ts.map +1 -0
  369. package/dist/cli/commands/auth.js +203 -0
  370. package/dist/cli/commands/auth.js.map +1 -0
  371. package/dist/cli/commands/build.d.ts +11 -0
  372. package/dist/cli/commands/build.d.ts.map +1 -0
  373. package/dist/cli/commands/build.js +170 -0
  374. package/dist/cli/commands/build.js.map +1 -0
  375. package/dist/cli/commands/data.d.ts +16 -0
  376. package/dist/cli/commands/data.d.ts.map +1 -0
  377. package/dist/cli/commands/data.js +302 -0
  378. package/dist/cli/commands/data.js.map +1 -0
  379. package/dist/cli/commands/dev.d.ts +8 -0
  380. package/dist/cli/commands/dev.d.ts.map +1 -0
  381. package/dist/cli/commands/dev.js +97 -0
  382. package/dist/cli/commands/dev.js.map +1 -0
  383. package/dist/cli/commands/generate-capabilities.d.ts +8 -0
  384. package/dist/cli/commands/generate-capabilities.d.ts.map +1 -0
  385. package/dist/cli/commands/generate-capabilities.js +41 -0
  386. package/dist/cli/commands/generate-capabilities.js.map +1 -0
  387. package/dist/cli/commands/generate-cli-command.d.ts +8 -0
  388. package/dist/cli/commands/generate-cli-command.d.ts.map +1 -0
  389. package/dist/cli/commands/generate-cli-command.js +64 -0
  390. package/dist/cli/commands/generate-cli-command.js.map +1 -0
  391. package/dist/cli/commands/generate-dashboard.d.ts +9 -0
  392. package/dist/cli/commands/generate-dashboard.d.ts.map +1 -0
  393. package/dist/cli/commands/generate-dashboard.js +113 -0
  394. package/dist/cli/commands/generate-dashboard.js.map +1 -0
  395. package/dist/cli/commands/generate-page.d.ts +9 -0
  396. package/dist/cli/commands/generate-page.d.ts.map +1 -0
  397. package/dist/cli/commands/generate-page.js +105 -0
  398. package/dist/cli/commands/generate-page.js.map +1 -0
  399. package/dist/cli/commands/generate-skill.d.ts +8 -0
  400. package/dist/cli/commands/generate-skill.d.ts.map +1 -0
  401. package/dist/cli/commands/generate-skill.js +75 -0
  402. package/dist/cli/commands/generate-skill.js.map +1 -0
  403. package/dist/cli/commands/generate-system-settings.d.ts +9 -0
  404. package/dist/cli/commands/generate-system-settings.d.ts.map +1 -0
  405. package/dist/cli/commands/generate-system-settings.js +96 -0
  406. package/dist/cli/commands/generate-system-settings.js.map +1 -0
  407. package/dist/cli/commands/generate.d.ts +6 -0
  408. package/dist/cli/commands/generate.d.ts.map +1 -0
  409. package/dist/cli/commands/generate.js +21 -0
  410. package/dist/cli/commands/generate.js.map +1 -0
  411. package/dist/cli/commands/init.d.ts +8 -0
  412. package/dist/cli/commands/init.d.ts.map +1 -0
  413. package/dist/cli/commands/init.js +374 -0
  414. package/dist/cli/commands/init.js.map +1 -0
  415. package/dist/cli/commands/observe.d.ts +9 -0
  416. package/dist/cli/commands/observe.d.ts.map +1 -0
  417. package/dist/cli/commands/observe.js +142 -0
  418. package/dist/cli/commands/observe.js.map +1 -0
  419. package/dist/cli/commands/role.d.ts +9 -0
  420. package/dist/cli/commands/role.d.ts.map +1 -0
  421. package/dist/cli/commands/role.js +81 -0
  422. package/dist/cli/commands/role.js.map +1 -0
  423. package/dist/cli/commands/serve.d.ts +12 -0
  424. package/dist/cli/commands/serve.d.ts.map +1 -0
  425. package/dist/cli/commands/serve.js +43 -0
  426. package/dist/cli/commands/serve.js.map +1 -0
  427. package/dist/cli/commands/skill.d.ts +9 -0
  428. package/dist/cli/commands/skill.d.ts.map +1 -0
  429. package/dist/cli/commands/skill.js +186 -0
  430. package/dist/cli/commands/skill.js.map +1 -0
  431. package/dist/cli/commands/user-cmd.d.ts +9 -0
  432. package/dist/cli/commands/user-cmd.d.ts.map +1 -0
  433. package/dist/cli/commands/user-cmd.js +204 -0
  434. package/dist/cli/commands/user-cmd.js.map +1 -0
  435. package/dist/cli/framework.d.ts +28 -0
  436. package/dist/cli/framework.d.ts.map +1 -0
  437. package/dist/cli/framework.js +29 -0
  438. package/dist/cli/framework.js.map +1 -0
  439. package/dist/cli/generators/capability-generator.d.ts +35 -0
  440. package/dist/cli/generators/capability-generator.d.ts.map +1 -0
  441. package/dist/cli/generators/capability-generator.js +176 -0
  442. package/dist/cli/generators/capability-generator.js.map +1 -0
  443. package/dist/cli/helpers/app-tsx-wiring.d.ts +33 -0
  444. package/dist/cli/helpers/app-tsx-wiring.d.ts.map +1 -0
  445. package/dist/cli/helpers/app-tsx-wiring.js +448 -0
  446. package/dist/cli/helpers/app-tsx-wiring.js.map +1 -0
  447. package/dist/cli/helpers/backup.d.ts +16 -0
  448. package/dist/cli/helpers/backup.d.ts.map +1 -0
  449. package/dist/cli/helpers/backup.js +34 -0
  450. package/dist/cli/helpers/backup.js.map +1 -0
  451. package/dist/cli/helpers/column-template.d.ts +20 -0
  452. package/dist/cli/helpers/column-template.d.ts.map +1 -0
  453. package/dist/cli/helpers/column-template.js +158 -0
  454. package/dist/cli/helpers/column-template.js.map +1 -0
  455. package/dist/cli/helpers/duration.d.ts +5 -0
  456. package/dist/cli/helpers/duration.d.ts.map +1 -0
  457. package/dist/cli/helpers/duration.js +5 -0
  458. package/dist/cli/helpers/duration.js.map +1 -0
  459. package/dist/cli/helpers/field-template.d.ts +14 -0
  460. package/dist/cli/helpers/field-template.d.ts.map +1 -0
  461. package/dist/cli/helpers/field-template.js +113 -0
  462. package/dist/cli/helpers/field-template.js.map +1 -0
  463. package/dist/cli/helpers/i18n-template.d.ts +21 -0
  464. package/dist/cli/helpers/i18n-template.d.ts.map +1 -0
  465. package/dist/cli/helpers/i18n-template.js +69 -0
  466. package/dist/cli/helpers/i18n-template.js.map +1 -0
  467. package/dist/cli/helpers/naming.d.ts +11 -0
  468. package/dist/cli/helpers/naming.d.ts.map +1 -0
  469. package/dist/cli/helpers/naming.js +21 -0
  470. package/dist/cli/helpers/naming.js.map +1 -0
  471. package/dist/cli/index.d.ts +9 -0
  472. package/dist/cli/index.d.ts.map +1 -0
  473. package/dist/cli/index.js +39 -0
  474. package/dist/cli/index.js.map +1 -0
  475. package/dist/cli/lib/credentials.d.ts +27 -0
  476. package/dist/cli/lib/credentials.d.ts.map +1 -0
  477. package/dist/cli/lib/credentials.js +112 -0
  478. package/dist/cli/lib/credentials.js.map +1 -0
  479. package/dist/cli/templates/auth-wiring.d.ts +17 -0
  480. package/dist/cli/templates/auth-wiring.d.ts.map +1 -0
  481. package/dist/cli/templates/auth-wiring.js +31 -0
  482. package/dist/cli/templates/auth-wiring.js.map +1 -0
  483. package/dist/cli/templates/backend-entry.d.ts +5 -0
  484. package/dist/cli/templates/backend-entry.d.ts.map +1 -0
  485. package/dist/cli/templates/backend-entry.js +17 -0
  486. package/dist/cli/templates/backend-entry.js.map +1 -0
  487. package/dist/cli/templates/claude-md.d.ts +20 -0
  488. package/dist/cli/templates/claude-md.d.ts.map +1 -0
  489. package/dist/cli/templates/claude-md.js +123 -0
  490. package/dist/cli/templates/claude-md.js.map +1 -0
  491. package/dist/cli/templates/crud-page.d.ts +14 -0
  492. package/dist/cli/templates/crud-page.d.ts.map +1 -0
  493. package/dist/cli/templates/crud-page.js +430 -0
  494. package/dist/cli/templates/crud-page.js.map +1 -0
  495. package/dist/cli/templates/dashboard-page.d.ts +11 -0
  496. package/dist/cli/templates/dashboard-page.d.ts.map +1 -0
  497. package/dist/cli/templates/dashboard-page.js +464 -0
  498. package/dist/cli/templates/dashboard-page.js.map +1 -0
  499. package/dist/cli/templates/frontend-entry.d.ts +11 -0
  500. package/dist/cli/templates/frontend-entry.d.ts.map +1 -0
  501. package/dist/cli/templates/frontend-entry.js +94 -0
  502. package/dist/cli/templates/frontend-entry.js.map +1 -0
  503. package/dist/cli/templates/gitignore.d.ts +5 -0
  504. package/dist/cli/templates/gitignore.d.ts.map +1 -0
  505. package/dist/cli/templates/gitignore.js +13 -0
  506. package/dist/cli/templates/gitignore.js.map +1 -0
  507. package/dist/cli/templates/index.d.ts +19 -0
  508. package/dist/cli/templates/index.d.ts.map +1 -0
  509. package/dist/cli/templates/index.js +19 -0
  510. package/dist/cli/templates/index.js.map +1 -0
  511. package/dist/cli/templates/login-page.d.ts +5 -0
  512. package/dist/cli/templates/login-page.d.ts.map +1 -0
  513. package/dist/cli/templates/login-page.js +13 -0
  514. package/dist/cli/templates/login-page.js.map +1 -0
  515. package/dist/cli/templates/loom-config.d.ts +13 -0
  516. package/dist/cli/templates/loom-config.d.ts.map +1 -0
  517. package/dist/cli/templates/loom-config.js +63 -0
  518. package/dist/cli/templates/loom-config.js.map +1 -0
  519. package/dist/cli/templates/model-management-page.d.ts +9 -0
  520. package/dist/cli/templates/model-management-page.d.ts.map +1 -0
  521. package/dist/cli/templates/model-management-page.js +299 -0
  522. package/dist/cli/templates/model-management-page.js.map +1 -0
  523. package/dist/cli/templates/package-json.d.ts +9 -0
  524. package/dist/cli/templates/package-json.d.ts.map +1 -0
  525. package/dist/cli/templates/package-json.js +41 -0
  526. package/dist/cli/templates/package-json.js.map +1 -0
  527. package/dist/cli/templates/readme.d.ts +9 -0
  528. package/dist/cli/templates/readme.d.ts.map +1 -0
  529. package/dist/cli/templates/readme.js +47 -0
  530. package/dist/cli/templates/readme.js.map +1 -0
  531. package/dist/cli/templates/skill-management-page.d.ts +9 -0
  532. package/dist/cli/templates/skill-management-page.d.ts.map +1 -0
  533. package/dist/cli/templates/skill-management-page.js +476 -0
  534. package/dist/cli/templates/skill-management-page.js.map +1 -0
  535. package/dist/cli/templates/system-settings-page.d.ts +10 -0
  536. package/dist/cli/templates/system-settings-page.d.ts.map +1 -0
  537. package/dist/cli/templates/system-settings-page.js +768 -0
  538. package/dist/cli/templates/system-settings-page.js.map +1 -0
  539. package/dist/cli/templates/tsconfig.d.ts +6 -0
  540. package/dist/cli/templates/tsconfig.d.ts.map +1 -0
  541. package/dist/cli/templates/tsconfig.js +41 -0
  542. package/dist/cli/templates/tsconfig.js.map +1 -0
  543. package/dist/cli/templates/user-management-page.d.ts +9 -0
  544. package/dist/cli/templates/user-management-page.d.ts.map +1 -0
  545. package/dist/cli/templates/user-management-page.js +236 -0
  546. package/dist/cli/templates/user-management-page.js.map +1 -0
  547. package/dist/cli/templates/vite-config.d.ts +5 -0
  548. package/dist/cli/templates/vite-config.d.ts.map +1 -0
  549. package/dist/cli/templates/vite-config.js +24 -0
  550. package/dist/cli/templates/vite-config.js.map +1 -0
  551. package/dist/cli/utils.d.ts +10 -0
  552. package/dist/cli/utils.d.ts.map +1 -0
  553. package/dist/cli/utils.js +31 -0
  554. package/dist/cli/utils.js.map +1 -0
  555. package/dist/commands.d.ts +1 -5
  556. package/dist/commands.d.ts.map +1 -1
  557. package/dist/commands.js +0 -11
  558. package/dist/commands.js.map +1 -1
  559. package/dist/config.d.ts +694 -76
  560. package/dist/config.d.ts.map +1 -1
  561. package/dist/config.js +79 -15
  562. package/dist/config.js.map +1 -1
  563. package/dist/dashboard-config.d.ts +149 -0
  564. package/dist/dashboard-config.d.ts.map +1 -0
  565. package/dist/dashboard-config.js +40 -0
  566. package/dist/dashboard-config.js.map +1 -0
  567. package/dist/index.d.ts +15 -9
  568. package/dist/index.d.ts.map +1 -1
  569. package/dist/index.js +13 -5
  570. package/dist/index.js.map +1 -1
  571. package/dist/server-bin.d.ts +12 -0
  572. package/dist/server-bin.d.ts.map +1 -0
  573. package/dist/server-bin.js +43 -0
  574. package/dist/server-bin.js.map +1 -0
  575. package/dist/types/adapter.d.ts +30 -0
  576. package/dist/types/adapter.d.ts.map +1 -0
  577. package/dist/types/adapter.js +5 -0
  578. package/dist/types/adapter.js.map +1 -0
  579. package/dist/types/ai.d.ts +68 -0
  580. package/dist/types/ai.d.ts.map +1 -0
  581. package/dist/types/ai.js +5 -0
  582. package/dist/types/ai.js.map +1 -0
  583. package/dist/types/auth.d.ts +64 -0
  584. package/dist/types/auth.d.ts.map +1 -0
  585. package/dist/types/auth.js +5 -0
  586. package/dist/types/auth.js.map +1 -0
  587. package/dist/types/chat.d.ts +47 -0
  588. package/dist/types/chat.d.ts.map +1 -0
  589. package/dist/types/chat.js +8 -0
  590. package/dist/types/chat.js.map +1 -0
  591. package/dist/types/command.d.ts +25 -0
  592. package/dist/types/command.d.ts.map +1 -0
  593. package/dist/types/command.js +5 -0
  594. package/dist/types/command.js.map +1 -0
  595. package/dist/types/config.d.ts +61 -0
  596. package/dist/types/config.d.ts.map +1 -0
  597. package/dist/types/config.js +5 -0
  598. package/dist/types/config.js.map +1 -0
  599. package/dist/types/dashboard.d.ts +59 -0
  600. package/dist/types/dashboard.d.ts.map +1 -0
  601. package/dist/types/dashboard.js +5 -0
  602. package/dist/types/dashboard.js.map +1 -0
  603. package/dist/types/index.d.ts +17 -0
  604. package/dist/types/index.d.ts.map +1 -0
  605. package/dist/types/index.js +8 -0
  606. package/dist/types/index.js.map +1 -0
  607. package/dist/types/locale.d.ts +21 -0
  608. package/dist/types/locale.d.ts.map +1 -0
  609. package/dist/types/locale.js +36 -0
  610. package/dist/types/locale.js.map +1 -0
  611. package/dist/types/model.d.ts +69 -0
  612. package/dist/types/model.d.ts.map +1 -0
  613. package/dist/types/model.js +5 -0
  614. package/dist/types/model.js.map +1 -0
  615. package/dist/types.d.ts +4 -199
  616. package/dist/types.d.ts.map +1 -1
  617. package/dist/types.js +4 -3
  618. package/dist/types.js.map +1 -1
  619. package/dist/utils/duration.d.ts +8 -0
  620. package/dist/utils/duration.d.ts.map +1 -0
  621. package/dist/utils/duration.js +22 -0
  622. package/dist/utils/duration.js.map +1 -0
  623. package/dist/utils/id.d.ts +7 -0
  624. package/dist/utils/id.d.ts.map +1 -0
  625. package/dist/utils/id.js +9 -0
  626. package/dist/utils/id.js.map +1 -0
  627. package/package.json +22 -3
@@ -0,0 +1,44 @@
1
+ # 数据语义引导
2
+
3
+ > 本文件由 `loom generate capabilities` 自动生成。请勿手动编辑 — 重新生成时将被覆盖。
4
+
5
+ 生成 `loom data` CLI 命令时,阅读 `loom.config.ts` 获取数据模型定义,并遵循以下规则生成贴合业务的输出。
6
+
7
+ 注:本文中的"数据模型"指 loom.config.ts 中定义的数据结构(如 wrong_questions、review_plans),而非大语言模型。
8
+
9
+ ## 示例数据生成
10
+
11
+ 构造 write 命令的 `--data` JSON 时:
12
+
13
+ - 根据字段名、类型、描述和枚举值生成**贴合业务的真实值**。
14
+ 例如名为 `questionContent`、描述为"题目内容"的字段,应填真实题目如 `"3+5=?"`,而非 `"value"`。
15
+ - 遵守 **FieldType**:`number` → 不加引号的数字(`1`),`boolean` → 不加引号的布尔值(`false`),
16
+ `date` → ISO 日期字符串(`"2026-01-15"`),`string[]` → JSON 数组(`["标签1"]`),`json` → JSON 对象(`{}`)。
17
+ - 有 **enum** 时必须使用枚举值 — 这是该字段唯一切合法的取值。
18
+ - write 命令只需包含**必填字段**,可选字段可省略。
19
+ - update 命令只需传入**要变更的字段**。
20
+
21
+ ## 筛选条件选择
22
+
23
+ 构造 read 命令的 `--filter` JSON 时:
24
+
25
+ - **优先使用 enum 和 boolean 字段**做筛选 — 它们能产生最有意义的分区
26
+ (如 `{"subject": "数学"}`、`{"mastered": false}`)。
27
+ - 选择**业务含义最丰富的筛选条件**,而非按字母序取第一个字段。
28
+ - 可组合多个筛选:`{"subject": "数学", "mastered": false}`。
29
+ - 数据量大时使用 `--limit` 避免输出过多。
30
+
31
+ ## 跨数据模型关联
32
+
33
+ 当字段名以 `Id` 结尾(如 `wrongQuestionId`)时,通常引用的是另一个数据模型的记录。
34
+
35
+ - 查询关联记录:`loom data read <目标数据模型> --id <值>`。
36
+ - 查询指向某条记录的所有关联:`loom data read <数据模型> --filter '{"<外键字段>": "<id>"}'`。
37
+ - 常见命名模式:`parentId` → 自引用,`<数据模型名>Id` → 引用该数据模型。
38
+
39
+ <!-- MODEL_NAMES -->
40
+
41
+ ## AI 按钮校验
42
+
43
+ 执行 AI 按钮操作前,验证 prompt 中所有 `{{var}}` 占位符是否对应目标数据模型上的实际字段。
44
+ 如果变量引用了不存在的字段,告知用户并建议添加该字段或更新 prompt。
@@ -0,0 +1,33 @@
1
+ # 数据模型与 CLI 参考
2
+
3
+ > 本文件由 `loom generate capabilities` 自动生成。请勿手动编辑 — 重新生成时将被覆盖。
4
+
5
+ ## 数据模型
6
+
7
+ <!-- DATA_MODELS -->
8
+
9
+ ## CLI 命令
10
+
11
+ 所有数据操作使用 `loom data` CLI 命令,需在项目根目录下执行。
12
+
13
+ | 命令 | 说明 |
14
+ |------|------|
15
+ | `loom data read <model> [--id <id>] [--filter <json>] [--limit <n>]` | 读取记录 |
16
+ | `loom data write <model> --data '<json>'` | 创建记录 |
17
+ | `loom data update <model> --id <id> --data '<json>'` | 更新记录 |
18
+ | `loom data delete <model> --id <id>` | 删除记录 |
19
+ | `loom data schema [model]` | 查看数据模型结构 |
20
+
21
+ <!-- AI_BUTTONS -->
22
+
23
+ <!-- AUTH_ROLES -->
24
+
25
+ ## 操作规范
26
+
27
+ 1. 所有数据操作必须使用 `loom data` CLI 命令,不要直接访问文件或数据库。
28
+ 2. 命令在项目根目录下执行。
29
+ 3. 执行删除等不可逆操作前,需与用户确认。
30
+ 4. 创建/更新时确保必填字段齐全。不确定时用 `loom data schema <model>` 查看。
31
+ 5. `update` 只需传入要修改的字段,未指定的字段保持不变。
32
+ 6. CLI 输出格式为 JSON — 解析输出以理解数据结构。
33
+ 7. 数据变更后,告知用户页面会自动刷新。
@@ -0,0 +1,101 @@
1
+ ---
2
+ name: chart-visualization
3
+ description: 将数据可视化为图表。当用户需要生成柱状图、折线图、饼图、散点图、雷达图、桑基图、思维导图、流程图等图表时调用此技能,通过 curl 工具调用 AntV API 生成图表图片
4
+ ---
5
+
6
+ 请根据用户输入的内容,将数据可视化为图表。
7
+
8
+ ## 步骤
9
+ 1. 分析用户数据和需求,选择最合适的图表类型
10
+ 2. 构造符合规范的 JSON 请求体
11
+ 3. 使用 curl 工具调用 API 生成图表图片
12
+ 4. 将返回的图片 URL 以 Markdown 图片格式输出
13
+
14
+ ## 图表选择指南
15
+
16
+ 根据用户的数据特征和需求,选择最合适的图表类型:
17
+
18
+ - **时间序列**:用 `line`(趋势)或 `area`(累计趋势);两个不同量纲用 `dual-axes`
19
+ - **比较类**:用 `bar`(横向分类对比)或 `column`(纵向分类对比);频率分布用 `histogram`
20
+ - **占比类**:用 `pie`(比例构成)或 `treemap`(层级占比)
21
+ - **关系与流程**:用 `scatter`(相关性)、`sankey`(流向)或 `venn`(集合重叠)
22
+ - **层级与树形**:用 `organization-chart` 或 `mind-map`
23
+ - **专用类型**:
24
+ - `radar`:多维度对比
25
+ - `funnel`:流程阶段转化
26
+ - `liquid`:百分比/进度
27
+ - `word-cloud`:文本词频
28
+ - `boxplot` / `violin`:统计分布
29
+ - `network-graph`:复杂节点关系
30
+ - `fishbone-diagram`:因果分析
31
+ - `flow-diagram`:流程图
32
+ - `spreadsheet`:结构化数据表或透视表
33
+
34
+ ## API 接口
35
+
36
+ POST https://antv-studio.alipay.com/api/gpt-vis
37
+
38
+ 请求体为 JSON,必须包含 `type` 和 `source: "chart-visualization-skills"` 字段。
39
+
40
+ 示例:
41
+ ```bash
42
+ curl -X POST https://antv-studio.alipay.com/api/gpt-vis \
43
+ -H "Content-Type: application/json" \
44
+ -d '{"type":"line","source":"chart-visualization-skills","data":[{"time":"2025-01","value":100}],"title":"示例图表"}'
45
+ ```
46
+
47
+ 返回示例:
48
+ ```json
49
+ {"success":true,"resultObj":"https://..."}
50
+ ```
51
+
52
+ 将 `resultObj` 中的 URL 以 Markdown 图片格式输出:`![图表](URL)`
53
+
54
+ ## 支持的图表类型
55
+
56
+ | 分类 | 图表类型 |
57
+ |------|---------|
58
+ | 比较类 | 条形图(bar)、柱状图(column)、瀑布图(waterfall)、双轴图(dual-axes) |
59
+ | 趋势类 | 面积图(area)、折线图(line)、散点图(scatter) |
60
+ | 分布类 | 箱线图(boxplot)、直方图(histogram)、小提琴图(violin)、漏斗图(funnel) |
61
+ | 占比类 | 饼图(pie)、水波图(liquid)、词云(word-cloud) |
62
+ | 层级类 | 组织架构图(organization-chart)、思维导图(mind-map)、矩形树图(treemap)、桑基图(sankey) |
63
+ | 关系类 | 关系图(network-graph)、韦恩图(venn) |
64
+ | 流程类 | 流程图(flow-diagram)、鱼骨图(fishbone-diagram) |
65
+ | 多维类 | 雷达图(radar) |
66
+ | 表格类 | 表格/透视表(spreadsheet) |
67
+
68
+ ## 通用可选参数
69
+
70
+ | 参数 | 类型 | 默认值 | 说明 |
71
+ |------|------|--------|------|
72
+ | theme | string | "default" | 主题:"default" / "academy" / "dark" |
73
+ | width | number | 600 | 图表宽度 |
74
+ | height | number | 400 | 图表高度 |
75
+ | title | string | "" | 图表标题 |
76
+ | style.texture | string | "default" | 纹理:"default" / "rough"(手绘风格) |
77
+
78
+ 带坐标轴的图表还支持:axisXTitle、axisYTitle。
79
+
80
+ ## 各图表 data 格式
81
+
82
+ - **area / line**: `{time: string, value: number, group?: string}[]`,可选 stack: boolean
83
+ - **bar**: `{category: string, value: number, group?: string}[]`,可选 group / stack (默认 stack: true)
84
+ - **column**: `{category: string, value: number, group?: string}[]`,可选 group (默认 true) / stack
85
+ - **scatter**: `{x: number, y: number, group?: string}[]`
86
+ - **pie**: `{category: string, value: number}[]`,可选 innerRadius: number (0-1)
87
+ - **radar**: `{name: string, value: number, group?: string}[]`
88
+ - **funnel**: `{category: string, value: number}[]`
89
+ - **waterfall**: `{category: string, value?: number, isTotal?: boolean, isIntermediateTotal?: boolean}[]`
90
+ - **dual-axes**: categories: string[], series: {type: "column"|"line", data: number[], axisYTitle?: string}[]
91
+ - **histogram**: `number[]`,可选 binNumber: number
92
+ - **boxplot / violin**: `{category: string, value: number, group?: string}[]`
93
+ - **liquid**: percent: number (0-1),可选 shape: "circle"|"rect"|"pin"|"triangle"
94
+ - **word-cloud**: `{text: string, value: number}[]`
95
+ - **sankey**: `{source: string, target: string, value: number}[]`,可选 nodeAlign
96
+ - **treemap**: `{name: string, value: number, children?: ...}[]` (最深 3 层)
97
+ - **venn**: `{sets: string[], value: number, label?: string}[]`
98
+ - **network-graph / flow-diagram**: `{nodes: {name: string}[], edges: {source: string, target: string, name?: string}[]}`
99
+ - **fishbone-diagram / mind-map**: `{name: string, children?: ...}` (最深 3 层)
100
+ - **organization-chart**: `{name: string, description?: string, children?: ...}` (最深 3 层),可选 orient: "horizontal"|"vertical"
101
+ - **spreadsheet**: `Record<string, string | number>[]`,可选 rows / columns / values(透视表字段)
@@ -0,0 +1,263 @@
1
+ ---
2
+ name: Loom
3
+ description: |
4
+ Use this skill when the user asks to "create a new loom project", "用loom开发一个系统",
5
+ "开发一个AI平台应用", "为系统添加页面", "为项目配置 AI 按钮功能",
6
+ "添加功能", "新增功能", "添加管理", "新增管理", "添加页面", "新增页面",
7
+ "生成页面", "添加数据模型", "新增数据模型", or any Loom framework task.
8
+ Loom is an AI-Native full-stack framework.
9
+ version: 0.1.0
10
+ ---
11
+
12
+ # Loom - AI 平台开发框架
13
+
14
+ ## 概览
15
+
16
+ Loom 是**配置驱动的 AI 平台开发框架**——你描述需求,AI 通过本 Skill 执行 loom 命令来构建应用。
17
+
18
+ 典型使用方式:
19
+
20
+ 1. **用自然语言描述需求** — 告诉 Claude Code(或其它支持Skill的 Agent) 你要做什么(如"用 loom 开发一个错题管理平台"),Claude Code 会调用本 Skill 读取配置、生成页面、启动服务
21
+ 2. **对话迭代** — 通过Claude Code 或 创建的项目 AI 对话面板改需求、加字段、调样式,AI 理解 loom 的工作方式,知道何时改配置、何时跑命令、何时直接改代码
22
+ 3. **日常运营** — 通过 AI 对话面板或 `loom data` CLI 查看、创建、更新数据
23
+
24
+ 核心能力:`loom generate page` 生成 CRUD 页面,`loom generate capabilities` 生成应用 Skill(让 AI 理解项目业务),`loom generate dashboard` 生成数据概览。后端 API 由 `loom dev` 根据配置动态注册,无需手动编写。生成的页面自带 AI 助手,支持流式对话和多会话。
25
+
26
+ 完整使用手册见 `references/README.md`。
27
+
28
+ ## 开发流程
29
+
30
+ **重要:** 始终在项目目录下运行命令(不是 loom monorepo 根目录)。
31
+
32
+ ### 1. 创建项目
33
+
34
+ ```bash
35
+ npx -p @loom-framework/core loom init <name> --description <desc> --adapter <filesystem|sqlite>
36
+ ```
37
+
38
+ 项目初始化时自动创建 `CLAUDE.md`(项目根目录),Claude Code 会自动加载此文件作为 system prompt 上下文,提升 AI 对话效果。自动生成系统管理页面(模型管理、技能管理),并以子菜单形式接入导航。同时自动安装以下内置 Skill:
39
+
40
+ | Skill | 触发场景 | 说明 |
41
+ |-------|---------|------|
42
+ | **antd** | 开发前端页面、丰富 UI 功能 | 通过 `@ant-design/cli` 查询组件 API、语义化样式、示例;编写前端代码前先用此 Skill 确认用法 |
43
+ | **antv-g2-chart** | 添加自定义可视化图表 | 生成 G2 v5 Spec 代码;配合 `useChartData` / `DashboardChart`,详见 `references/dashboard.md` |
44
+ | **chart-visualization** | 对话中快速生成图表 | 通过 API 生成图表图片返回 Markdown 链接,适合快速展示数据分析结果 |
45
+
46
+ ### 2. 编辑配置
47
+
48
+ 编辑 `loom.config.ts`,定义数据模型(`data.models`)和 AI 按钮(`aiButtons`),Schema 见下方。高级选项见 `references/data-model.md`。
49
+
50
+ ### 3. 生成页面
51
+
52
+ ```bash
53
+ loom generate page <Name> --model <model-name>
54
+ ```
55
+
56
+ 此命令自动生成:CRUD 页面(含 AI 按钮)、App.tsx 路由接线。后端 API 由 `loom dev` 启动时动态注册。模型立即可通过 `loom data` CLI 和 AI 对话使用。
57
+
58
+ ### 4. 生成并完善应用 Skill
59
+
60
+ ```bash
61
+ loom generate capabilities
62
+ ```
63
+
64
+ 此命令读取 `loom.config.ts`,在 `.claude/skills/<项目名>/` 下生成以下文件:
65
+
66
+ | 文件 | 说明 | 覆盖策略 |
67
+ |------|------|---------|
68
+ | `SKILL.md` | Skill 主文档(含 TODO 模板) | 仅首次创建,不覆盖。若需重建:删除整个 skill 目录后重新执行 |
69
+ | `references/models.md` | 数据模型字段表 + AI 按钮定义 + CLI 语法 | 每次重新生成 |
70
+ | `references/data-semantics.md` | 语义引导(示例数据、筛选规则、跨模型关联) | 每次重新生成 |
71
+ | `references/auth.md` | 认证鉴权命令参考(`--token`/`LOOM_TOKEN` 用法、权限模型) | Auth 启用时每次重新生成 |
72
+
73
+ 每次修改数据模型或 AI 按钮后,重新运行此命令即可更新 `references/` 下的自动生成内容,`SKILL.md` 中手动补充的内容不会被覆盖。
74
+
75
+ 首次生成后,需要补充 `SKILL.md` 主文档中的 TODO 内容,AI 对话时才能正确理解项目业务语义:
76
+
77
+ 1. **frontmatter `description`**:写入用户在 AI 对话中会说的触发短语。格式参考:
78
+ ```
79
+ This skill should be used when the user asks to "创建XXX", "查看XXX", "删除XXX",
80
+ or any request about managing XXX in the <项目名> project.
81
+ ```
82
+ 2. **Overview 部分**:用 2-3 句话描述项目做什么、有哪些数据、用户如何与数据交互
83
+ 3. **Usage Scenarios 部分**:列出 5-10 个典型用户请求,格式为 `- "用户说的话" → 对应的 CLI 命令`
84
+
85
+ 如需添加自定义 Skill:
86
+ - `loom generate skill <name>` — 创建脚手架,然后编辑 `.claude/skills/<name>/SKILL.md`
87
+ - 或直接复制一个已有的 Skill 目录到 `.claude/skills/` 下
88
+
89
+ ### 5. 生成 Dashboard(数据概览)
90
+
91
+ Dashboard 配置在 `loom.config.ts` 的 `dashboards` 字段中定义。设计原则和配置 Schema 详见 `references/dashboard.md`。
92
+
93
+ ```bash
94
+ loom generate dashboard <name>
95
+ ```
96
+
97
+ 此命令从 `loom.config.ts` 的 `dashboards` 字段读取配置,自动生成 Dashboard 页面并接线 App.tsx。
98
+
99
+ ### 5.5 启用认证鉴权(可选)
100
+
101
+ 当用户需要多用户支持、权限控制时,帮助用户在 `loom.config.ts` 中添加 `auth` 配置:
102
+
103
+ 1. **询问需求**:是否需要登录功能?有哪些角色?每个角色能做什么?
104
+ 2. **编辑配置**:在 `loom.config.ts` 中添加 `auth` 字段(Schema 见上方)。至少定义一个 `admin` 角色
105
+ 3. **设置密钥**:`secret` 推荐 `env:JWT_SECRET`,不要硬编码。提醒用户设置环境变量 `export JWT_SECRET=your-secret`
106
+ 4. **重启后端**:auth 配置需要重启后端生效(**必须先询问用户**)
107
+ 5. **首次登录**:默认创建 admin 用户(密码 `admin123`),**提醒用户立即修改密码**
108
+ 6. **生成 app-skill**:`loom generate capabilities` 更新 Skill 中的 auth.md
109
+
110
+ 启用后自动获得:登录页 + 路由守卫 + RBAC 权限控制 + 用户管理页 + CLI `--token`/`LOOM_TOKEN` 鉴权。
111
+
112
+ ### 重启服务前必须询问用户
113
+
114
+ 修改 `loom.config.ts` 后如果需要重启后端服务(如增删 AI 按钮、修改 enum 值、新增模型等场景),**必须先询问用户是否可以重启**,得到确认后再执行 `loom dev` 或停止/重启服务。不要自动重启,因为用户可能正在使用页面或调试中。
115
+
116
+ ### 6. 启动开发
117
+
118
+ ```bash
119
+ loom dev
120
+ ```
121
+
122
+ - 前端:http://localhost:5173
123
+ - 后端:http://localhost:3000
124
+
125
+ ### 迭代:修改配置后的处理
126
+
127
+ 不同类型的配置变更,处理方式不同:
128
+
129
+ | 变更类型 | 需要改页面吗 | 怎么做 |
130
+ |---------|------------|--------|
131
+ | 增删 AI 按钮 | 不需要 | 改配置 → `loom generate capabilities` 更新 Skill → 重启后端,按钮自动出现/消失 |
132
+ | 修改 enum 值 | 不需要 | 改配置 → `loom generate capabilities` 更新 Skill → 重启后端,筛选和下拉自动更新 |
133
+ | 新增数据模型 | 需要生成新页面 | 改配置 → `loom generate capabilities` + `loom generate page <Name> --model <model>` → 重启后端 |
134
+ | 新增/删除字段 | 需要 | 改配置 → `--force` 重建(默认,最快)或 AI 增量更新(有定制时保留修改)→ `loom generate capabilities` 更新 Skill → 更新CLAUDE.md |
135
+
136
+ **`--force` 重建(默认)**:字段变更时直接 `--force` 重建页面,是最快最干净的方式,页面与配置立即同步。`--force` 会自动将旧页面备份到 `.loom/backup/<时间戳>/` 目录,如需恢复直接复制回来即可。
137
+
138
+ **AI 增量更新(有定制时)**:如果用户说"保留我的定制"或明确表示页面有手动修改过,才让 AI 增量更新。告诉 AI 你改了什么(如"我在配置里加了一个学期字段"),AI 会精确添加新字段的列和表单项,保留定制代码。如果AI进行了定制化开发,务必将定制化开发内容更新到CLAUDE.md,使得后续新启动会话时Claude Code可掌握项目定制化情况。
139
+
140
+ ```bash
141
+ # 只改了 AI 按钮或 enum → 重启后端即可
142
+ # 加了新字段 → --force 重建(默认)
143
+ # 加了新字段,要保留页面定制 → 让 AI 增量更新
144
+ loom generate page <Name> --model <model-name> --force
145
+ ```
146
+
147
+ **恢复备份**:`--force` 覆盖的文件自动备份到项目 `.loom/backup/<时间戳>/` 目录(每次 --force 生成独立时间戳目录,同一天多次执行互不影响),如需恢复:`cp .loom/backup/<时间戳>/XXX.tsx frontend/src/components/pages/XXX.tsx`
148
+
149
+ ### 内置 Skill 使用原则
150
+
151
+ - 涉及前端页面开发 → 先用 `/antd` 查询组件 API,不要凭记忆写代码
152
+ - 需要在 Dashboard 追加图表 → 参考 `references/dashboard.md` + `/antv-g2-chart` 生成代码
153
+ - 对话中需展示数据可视化 → 用 `/chart-visualization` 生成图片
154
+
155
+ ### CLI 命令速查
156
+
157
+ | 命令 | 说明 |
158
+ |------|------|
159
+ | `loom dev` | 启动开发环境(`--backend-only` `--frontend-only`) |
160
+ | `loom build` | 生产构建 |
161
+ | `loom generate page <name> --model <model>` | 生成 CRUD 页面(含 aiButtons 则自动集成 AI 按钮) |
162
+ | `loom generate page <name> --model <model> --force` | 重建页面(默认方式,自动备份旧文件到 `.loom/backup/`) |
163
+ | `loom generate capabilities` | 生成应用 Skill(`references/models.md` + `references/data-semantics.md`,`SKILL.md` 仅首次创建不覆盖) |
164
+ | `loom generate dashboard <name>` | 从 loom.config.ts dashboards 生成 Dashboard 页面 |
165
+ | `loom generate dashboard <name> --force` | 重建 Dashboard 页面(自动备份旧文件到 `.loom/backup/`) |
166
+ | `loom generate system-settings <model\|skill\|user>` | 生成系统管理页面(模型管理、技能管理或用户管理),首次调用创建子菜单,后续调用追加子页面 |
167
+ | `loom generate system-settings <model\|skill\|user> --force` | 重建系统管理页面(自动备份旧文件到 `.loom/backup/`) |
168
+ | `loom generate skill <name>` | 生成自定义 Skill 脚架 |
169
+
170
+ ## loom.config.ts Schema(核心)
171
+
172
+ ```typescript
173
+ import { defineConfig } from '@loom-framework/core';
174
+
175
+ export default defineConfig({
176
+ project: {
177
+ name: 'my-app', // 必填
178
+ description: { 'zh-CN': '我的应用', 'en-US': 'My App' }, // 可选,支持多语言
179
+ },
180
+ data: {
181
+ defaultAdapter: 'filesystem', // 'filesystem' | 'sqlite'
182
+ models: [{
183
+ name: 'items', // 将作为 React 组件名生成页面,字母开头,字母/数字/下划线
184
+ description: { 'zh-CN': '数据项', 'en-US': 'Items' }, // 可选:支持多语言
185
+ fields: [{
186
+ name: 'status', // 字母/下划线开头,字母数字下划线
187
+ type: 'string', // 'string' | 'number' | 'boolean' | 'date' | 'string[]' | 'number[]' | 'json'
188
+ required: true, // 可选,默认 false
189
+ description: { 'zh-CN': '状态', 'en-US': 'Status' }, // 可选:支持多语言
190
+ default: 'active', // 可选:写入时自动填充
191
+ enum: ['active', 'inactive'], // 可选:限制可选值(存储值,不随语言变化)
192
+ enumLabels: { // 可选:enum 值的多语言显示标签
193
+ active: { 'zh-CN': '激活', 'en-US': 'Active' },
194
+ inactive: { 'zh-CN': '停用', 'en-US': 'Inactive' },
195
+ },
196
+ }],
197
+ }],
198
+ },
199
+ aiButtons: [{ // 可选
200
+ id: 'summarize', // 必填:唯一标识
201
+ label: { 'zh-CN': '总结', 'en-US': 'Summarize' }, // 必填:支持多语言
202
+ prompt: '请总结以下内容', // 必填:支持 {{var}} 引用当前行字段值
203
+ },
204
+ {
205
+ id: 'analyze', // 带变量的示例
206
+ label: { 'zh-CN': '分析', 'en-US': 'Analyze' },
207
+ prompt: '分析{{questionContent}},错误答案:{{wrongAnswer}}',
208
+ placement: 'wrong_questions', // 可选:限制按钮只出现在指定模型页面,逗号分隔多个模型名;省略则出现在所有页面
209
+ }],
210
+ dashboards: [{ // 可选:Dashboard 定义,完整配置见 references/dashboard.md
211
+ name: 'overview', // 必填:唯一标识,同命名规则
212
+ description: { 'zh-CN': '数据概览', 'en-US': 'Overview' }, // 可选
213
+ models: ['items'], // 必填:关联的数据模型
214
+ defaultDateField: 'createdAt', // 可选:启用日期范围筛选
215
+ filterDimensions: [], // 可选:启用下拉筛选,见 references/dashboard.md
216
+ layout: [{ row: [{ type: 'stat', title: { 'zh-CN': '总数', 'en-US': 'Total' }, model: 'items', aggregate: 'count', span: 6 }] }],
217
+ }],
218
+ auth: { // 可选:认证与鉴权,启用后生成登录页、用户管理、RBAC 权限控制
219
+ provider: 'builtin', // 'builtin' — 内置认证
220
+ secret: 'env:JWT_SECRET', // JWT 签名密钥,推荐用 env: 引用环境变量,不要硬编码
221
+ accessTokenTtl: 3600, // 可选,access token 有效期(秒),默认 3600(1h)
222
+ refreshTokenTtl: 604800, // 可选,refresh token 有效期(秒),默认 604800(7d)
223
+ roles: [ // 角色定义,至少一个 admin 角色
224
+ { role: 'admin', permissions: [{ model: '*', level: 'admin' }] },
225
+ { role: 'viewer', permissions: [{ model: '*', level: 'read' }] },
226
+ ],
227
+ permissions: { // 可选:默认权限和行为配置
228
+ defaults: {
229
+ read: 'read', // 未显式配置的模型默认读权限
230
+ write: 'write', // 未显式配置的模型默认写权限
231
+ readIncludesAiButtons: false, // read 权限是否可见 AI 按钮
232
+ writeExcludesDelete: false, // write 权限是否排除删除操作
233
+ },
234
+ },
235
+ },
236
+ });
237
+ ```
238
+
239
+ ### 多语言(i18n)
240
+
241
+ 所有面向用户的展示字段均支持 `LocaleString` 格式:`string | Record<string, string>`。
242
+
243
+ - **简单写法**:`description: '科目'` — 所有语言显示相同文本
244
+ - **多语言写法**:`description: { 'zh-CN': '科目', 'en-US': 'Subject' }` — 切换语言时自动翻译
245
+ - **enum 值**:`enum` 始终是存储值(不分语言),显示文本通过 `enumLabels` 翻译
246
+ - **回退规则**:请求的 locale → `'zh-CN'` → 第一个可用值
247
+
248
+ 支持的 LocaleString 字段:`project.description`、`ModelSchema.description`、`FieldDefinition.description`、`AIButtonConfig.label`、`DashboardConfig.description`、`DashboardWidget.title`、`RelationConfig.label`
249
+
250
+ 生成页面会自动通过 `registerMessages()` 注册 i18n key,并使用 `t()` 调用引用,无需手动处理。
251
+
252
+ 高级配置(`ai.claudeCode`、`server`、按模型 `adapters`、`indexes`)见 `references/data-model.md`。
253
+
254
+ ## API 路由格式
255
+
256
+ 后端 REST API 路径为 `/api/v1/data/<model-name>`,支持:`GET`(列表)、`GET /:id`(单条)、`POST`(创建)、`PUT /:id`(更新)、`DELETE /:id`(删除)、`GET /schema`(模型 Schema + AI 按钮)。
257
+ AI 相关:`POST /api/v1/chat`(SSE 流式对话)、`GET /api/v1/sessions`(会话列表)。
258
+ 前端通过 `useData('<model-name>')` 自动访问,无需手动拼接。`useSchema('<model-name>')` 获取模型字段和 AI 按钮定义,自动根据当前 locale 请求服务端 resolved 数据。`filterOptions(schema, fieldName)` 和 `selectOptions(schema, fieldName)` 将 enum 值转为 antd 组件格式(使用 resolved 的 enumLabels)。`enumLabel(schema, fieldName, value)` 获取单个 enum 值的显示标签。
259
+
260
+ ## 常见问题
261
+
262
+ - **better-sqlite3 加载失败**:Node.js 版本缺少预编译包。修复:(1) `cd node_modules/better-sqlite3 && npx node-gyp rebuild`,或 (2) 将 `defaultAdapter` 改为 `'filesystem'`
263
+ - **`loom` 命令报错 "No loom.config.ts found"**:在项目目录下运行命令