@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.
- package/builtin-skills/antd/SKILL.md +266 -0
- package/builtin-skills/antv-g2-chart/SKILL.md +1067 -0
- package/builtin-skills/antv-g2-chart/references/animations/g2-animation-intro.md +176 -0
- package/builtin-skills/antv-g2-chart/references/animations/g2-animation-keyframe.md +149 -0
- package/builtin-skills/antv-g2-chart/references/animations/g2-animation-types.md +253 -0
- package/builtin-skills/antv-g2-chart/references/components/g2-comp-annotation.md +237 -0
- package/builtin-skills/antv-g2-chart/references/components/g2-comp-axis-config.md +648 -0
- package/builtin-skills/antv-g2-chart/references/components/g2-comp-axis-radar.md +219 -0
- package/builtin-skills/antv-g2-chart/references/components/g2-comp-label-config.md +174 -0
- package/builtin-skills/antv-g2-chart/references/components/g2-comp-legend-category.md +278 -0
- package/builtin-skills/antv-g2-chart/references/components/g2-comp-legend-config.md +363 -0
- package/builtin-skills/antv-g2-chart/references/components/g2-comp-legend-continuous.md +264 -0
- package/builtin-skills/antv-g2-chart/references/components/g2-comp-scrollbar.md +276 -0
- package/builtin-skills/antv-g2-chart/references/components/g2-comp-slider.md +333 -0
- package/builtin-skills/antv-g2-chart/references/components/g2-comp-title.md +149 -0
- package/builtin-skills/antv-g2-chart/references/components/g2-comp-tooltip-config.md +358 -0
- package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-facet-circle.md +97 -0
- package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-facet-rect.md +241 -0
- package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-geo-map.md +210 -0
- package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-geoview.md +143 -0
- package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-repeat-matrix.md +171 -0
- package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-space-flex.md +142 -0
- package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-space-layer.md +149 -0
- package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-timing-keyframe.md +91 -0
- package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-view.md +309 -0
- package/builtin-skills/antv-g2-chart/references/concepts/g2-concept-chart-selection.md +235 -0
- package/builtin-skills/antv-g2-chart/references/concepts/g2-concept-color-theory.md +287 -0
- package/builtin-skills/antv-g2-chart/references/concepts/g2-concept-visual-channels.md +180 -0
- package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-cartesian.md +131 -0
- package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-fisheye.md +131 -0
- package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-helix.md +141 -0
- package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-parallel.md +129 -0
- package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-polar.md +143 -0
- package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-radial.md +214 -0
- package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-theta.md +171 -0
- package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-transpose.md +195 -0
- package/builtin-skills/antv-g2-chart/references/core/g2-core-chart-init.md +266 -0
- package/builtin-skills/antv-g2-chart/references/core/g2-core-encode-channel.md +197 -0
- package/builtin-skills/antv-g2-chart/references/core/g2-core-view-composition.md +224 -0
- package/builtin-skills/antv-g2-chart/references/data/g2-data-ema.md +190 -0
- package/builtin-skills/antv-g2-chart/references/data/g2-data-fetch.md +167 -0
- package/builtin-skills/antv-g2-chart/references/data/g2-data-filter.md +212 -0
- package/builtin-skills/antv-g2-chart/references/data/g2-data-fold.md +260 -0
- package/builtin-skills/antv-g2-chart/references/data/g2-data-format-tabular.md +280 -0
- package/builtin-skills/antv-g2-chart/references/data/g2-data-kde.md +426 -0
- package/builtin-skills/antv-g2-chart/references/data/g2-data-log.md +140 -0
- package/builtin-skills/antv-g2-chart/references/data/g2-data-slice.md +147 -0
- package/builtin-skills/antv-g2-chart/references/data/g2-data-sort.md +251 -0
- package/builtin-skills/antv-g2-chart/references/data/g2-data-sortby.md +183 -0
- package/builtin-skills/antv-g2-chart/references/data/g2-data-transform-patterns.md +394 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-adaptive-filter.md +118 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush-axis.md +112 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush-filter.md +122 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush-x-y-highlight.md +127 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush-xy.md +118 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush.md +184 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brushx-filter.md +170 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brushx-highlight.md +186 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brushy-filter.md +170 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brushy-highlight.md +185 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-chart-index.md +127 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-drilldown.md +149 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-highlight-by.md +125 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-highlight.md +235 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-hover-scale.md +109 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-point-move.md +152 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-select-by.md +133 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-select.md +249 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-fisheye.md +117 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-legend-filter.md +130 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-legend-highlight.md +130 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-poptip.md +105 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-scrollbar-filter.md +144 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-slider-filter.md +231 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-slider-wheel.md +138 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-tooltip.md +192 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-treemap-drilldown.md +152 -0
- package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-contrast-reverse.md +170 -0
- package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-exceed-adjust.md +146 -0
- package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-overflow-hide.md +185 -0
- package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-overflow-stroke.md +147 -0
- package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-overlap-dodge-y.md +225 -0
- package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-overlap-hide.md +213 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-arc-diagram.md +196 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-arc-donut.md +148 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-arc-pie.md +212 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-area-basic.md +168 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-area-stacked.md +150 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-beeswarm.md +134 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-bi-directional-bar.md +297 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-box-boxplot.md +163 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-boxplot.md +340 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-bullet.md +203 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-cell-heatmap.md +370 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-chord.md +341 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-connector.md +126 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-contourline.md +243 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-density.md +457 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-distribution-curve.md +298 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-funnel.md +329 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-gantt.md +208 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-gauge.md +247 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-heatmap.md +130 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-histogram.md +186 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-image.md +129 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-interval-basic.md +528 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-interval-grouped.md +161 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-interval-normalized.md +147 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-interval-stacked.md +183 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-k-chart.md +237 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-line-basic.md +353 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-line-multi.md +156 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-linex-liney.md +176 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-link.md +134 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-liquid.md +125 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-mosaic.md +257 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-pack.md +424 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-parallel.md +195 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-partition.md +275 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-path.md +135 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-point-bubble.md +138 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-point-scatter.md +177 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-polygon.md +130 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-radar.md +231 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-radial-bar.md +226 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-range-rangey.md +253 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-rangex.md +293 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-rect.md +115 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-regression-curve.md +276 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-rose.md +182 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-sankey.md +217 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-shape.md +160 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-spiral.md +257 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-sunburst.md +327 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-text.md +309 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-tree.md +235 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-treemap.md +426 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-vector.md +108 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-venn.md +204 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-violin.md +307 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-wordcloud.md +155 -0
- package/builtin-skills/antv-g2-chart/references/palette/g2-palette-category10.md +196 -0
- package/builtin-skills/antv-g2-chart/references/palette/g2-palette-category20.md +238 -0
- package/builtin-skills/antv-g2-chart/references/patterns/g2-pattern-performance.md +181 -0
- package/builtin-skills/antv-g2-chart/references/patterns/g2-pattern-responsive.md +232 -0
- package/builtin-skills/antv-g2-chart/references/patterns/g2-pattern-v4-to-v5.md +223 -0
- package/builtin-skills/antv-g2-chart/references/scales/g2-scale-band.md +127 -0
- package/builtin-skills/antv-g2-chart/references/scales/g2-scale-linear.md +259 -0
- package/builtin-skills/antv-g2-chart/references/scales/g2-scale-log.md +226 -0
- package/builtin-skills/antv-g2-chart/references/scales/g2-scale-ordinal.md +135 -0
- package/builtin-skills/antv-g2-chart/references/scales/g2-scale-point.md +242 -0
- package/builtin-skills/antv-g2-chart/references/scales/g2-scale-pow-sqrt.md +124 -0
- package/builtin-skills/antv-g2-chart/references/scales/g2-scale-quantile-quantize.md +119 -0
- package/builtin-skills/antv-g2-chart/references/scales/g2-scale-sequential.md +267 -0
- package/builtin-skills/antv-g2-chart/references/scales/g2-scale-threshold.md +133 -0
- package/builtin-skills/antv-g2-chart/references/scales/g2-scale-time.md +159 -0
- package/builtin-skills/antv-g2-chart/references/themes/g2-theme-builtin.md +192 -0
- package/builtin-skills/antv-g2-chart/references/themes/g2-theme-custom.md +183 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-bin.md +153 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-binx.md +133 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-diffy.md +130 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-dodgex.md +90 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-flexx.md +115 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-group.md +233 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-groupcolor.md +182 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-groupx.md +265 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-groupy.md +167 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-jitter.md +149 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-jitterx.md +177 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-jittery.md +177 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-normalizey.md +83 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-pack.md +164 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-sample.md +143 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-select.md +147 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-selectx.md +179 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-selecty.md +179 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-sort-color.md +115 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-sortx.md +285 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-sorty.md +117 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-stack-enter.md +158 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-stacky.md +218 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-symmetryy.md +122 -0
- package/builtin-skills/app-skill/SKILL.md +32 -0
- package/builtin-skills/app-skill/references/auth.md +164 -0
- package/builtin-skills/app-skill/references/data-semantics.md +44 -0
- package/builtin-skills/app-skill/references/models.md +33 -0
- package/builtin-skills/chart-visualization/SKILL.md +101 -0
- package/builtin-skills/loom/SKILL.md +263 -0
- package/builtin-skills/loom/references/README.md +285 -0
- package/builtin-skills/loom/references/dashboard.md +257 -0
- package/builtin-skills/loom/references/data-model.md +196 -0
- package/builtin-skills/yuque-reader/SKILL.md +43 -0
- package/builtin-skills/yuque-reader/references/config.md +52 -0
- package/builtin-skills/yuque-reader/scripts/fetch_doc.py +121 -0
- package/dist/adapter-base.d.ts +31 -0
- package/dist/adapter-base.d.ts.map +1 -0
- package/dist/adapter-base.js +69 -0
- package/dist/adapter-base.js.map +1 -0
- package/dist/adapter-factory.d.ts +8 -0
- package/dist/adapter-factory.d.ts.map +1 -0
- package/dist/adapter-factory.js +25 -0
- package/dist/adapter-factory.js.map +1 -0
- package/dist/adapter-filesystem.d.ts +25 -11
- package/dist/adapter-filesystem.d.ts.map +1 -1
- package/dist/adapter-filesystem.js +230 -52
- package/dist/adapter-filesystem.js.map +1 -1
- package/dist/adapter-sqlite.d.ts +9 -23
- package/dist/adapter-sqlite.d.ts.map +1 -1
- package/dist/adapter-sqlite.js +94 -55
- package/dist/adapter-sqlite.js.map +1 -1
- package/dist/adapters/base.d.ts +31 -0
- package/dist/adapters/base.d.ts.map +1 -0
- package/dist/adapters/base.js +69 -0
- package/dist/adapters/base.js.map +1 -0
- package/dist/adapters/factory.d.ts +8 -0
- package/dist/adapters/factory.d.ts.map +1 -0
- package/dist/adapters/factory.js +25 -0
- package/dist/adapters/factory.js.map +1 -0
- package/dist/adapters/filesystem.d.ts +46 -0
- package/dist/adapters/filesystem.d.ts.map +1 -0
- package/dist/adapters/filesystem.js +321 -0
- package/dist/adapters/filesystem.js.map +1 -0
- package/dist/adapters/index.d.ts +10 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +8 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/sqlite.d.ts +37 -0
- package/dist/adapters/sqlite.d.ts.map +1 -0
- package/dist/adapters/sqlite.js +264 -0
- package/dist/adapters/sqlite.js.map +1 -0
- package/dist/backend/ai/button-resolver.d.ts +18 -0
- package/dist/backend/ai/button-resolver.d.ts.map +1 -0
- package/dist/backend/ai/button-resolver.js +58 -0
- package/dist/backend/ai/button-resolver.js.map +1 -0
- package/dist/backend/ai/content-blocks.d.ts +18 -0
- package/dist/backend/ai/content-blocks.d.ts.map +1 -0
- package/dist/backend/ai/content-blocks.js +66 -0
- package/dist/backend/ai/content-blocks.js.map +1 -0
- package/dist/backend/ai/engine.d.ts +60 -0
- package/dist/backend/ai/engine.d.ts.map +1 -0
- package/dist/backend/ai/engine.js +206 -0
- package/dist/backend/ai/engine.js.map +1 -0
- package/dist/backend/ai/index.d.ts +11 -0
- package/dist/backend/ai/index.d.ts.map +1 -0
- package/dist/backend/ai/index.js +8 -0
- package/dist/backend/ai/index.js.map +1 -0
- package/dist/backend/ai/output-parser.d.ts +36 -0
- package/dist/backend/ai/output-parser.d.ts.map +1 -0
- package/dist/backend/ai/output-parser.js +264 -0
- package/dist/backend/ai/output-parser.js.map +1 -0
- package/dist/backend/ai/session-manager.d.ts +103 -0
- package/dist/backend/ai/session-manager.d.ts.map +1 -0
- package/dist/backend/ai/session-manager.js +299 -0
- package/dist/backend/ai/session-manager.js.map +1 -0
- package/dist/backend/auth/jwt.d.ts +16 -0
- package/dist/backend/auth/jwt.d.ts.map +1 -0
- package/dist/backend/auth/jwt.js +57 -0
- package/dist/backend/auth/jwt.js.map +1 -0
- package/dist/backend/auth/password.d.ts +10 -0
- package/dist/backend/auth/password.d.ts.map +1 -0
- package/dist/backend/auth/password.js +19 -0
- package/dist/backend/auth/password.js.map +1 -0
- package/dist/backend/auth/rbac.d.ts +34 -0
- package/dist/backend/auth/rbac.d.ts.map +1 -0
- package/dist/backend/auth/rbac.js +124 -0
- package/dist/backend/auth/rbac.js.map +1 -0
- package/dist/backend/auth/service-token.d.ts +11 -0
- package/dist/backend/auth/service-token.d.ts.map +1 -0
- package/dist/backend/auth/service-token.js +13 -0
- package/dist/backend/auth/service-token.js.map +1 -0
- package/dist/backend/auth/token-store.d.ts +27 -0
- package/dist/backend/auth/token-store.d.ts.map +1 -0
- package/dist/backend/auth/token-store.js +84 -0
- package/dist/backend/auth/token-store.js.map +1 -0
- package/dist/backend/auth/user-store.d.ts +41 -0
- package/dist/backend/auth/user-store.d.ts.map +1 -0
- package/dist/backend/auth/user-store.js +112 -0
- package/dist/backend/auth/user-store.js.map +1 -0
- package/dist/backend/index.d.ts +67 -0
- package/dist/backend/index.d.ts.map +1 -0
- package/dist/backend/index.js +200 -0
- package/dist/backend/index.js.map +1 -0
- package/dist/backend/observe/index.d.ts +6 -0
- package/dist/backend/observe/index.d.ts.map +1 -0
- package/dist/backend/observe/index.js +5 -0
- package/dist/backend/observe/index.js.map +1 -0
- package/dist/backend/observe/logger.d.ts +24 -0
- package/dist/backend/observe/logger.d.ts.map +1 -0
- package/dist/backend/observe/logger.js +63 -0
- package/dist/backend/observe/logger.js.map +1 -0
- package/dist/backend/observe/types.d.ts +26 -0
- package/dist/backend/observe/types.d.ts.map +1 -0
- package/dist/backend/observe/types.js +7 -0
- package/dist/backend/observe/types.js.map +1 -0
- package/dist/backend/routes/ai-config.d.ts +13 -0
- package/dist/backend/routes/ai-config.d.ts.map +1 -0
- package/dist/backend/routes/ai-config.js +170 -0
- package/dist/backend/routes/ai-config.js.map +1 -0
- package/dist/backend/routes/auth-routes.d.ts +26 -0
- package/dist/backend/routes/auth-routes.d.ts.map +1 -0
- package/dist/backend/routes/auth-routes.js +301 -0
- package/dist/backend/routes/auth-routes.js.map +1 -0
- package/dist/backend/routes/chat-sse.d.ts +17 -0
- package/dist/backend/routes/chat-sse.d.ts.map +1 -0
- package/dist/backend/routes/chat-sse.js +60 -0
- package/dist/backend/routes/chat-sse.js.map +1 -0
- package/dist/backend/routes/chat.d.ts +27 -0
- package/dist/backend/routes/chat.d.ts.map +1 -0
- package/dist/backend/routes/chat.js +257 -0
- package/dist/backend/routes/chat.js.map +1 -0
- package/dist/backend/routes/data.d.ts +15 -0
- package/dist/backend/routes/data.d.ts.map +1 -0
- package/dist/backend/routes/data.js +365 -0
- package/dist/backend/routes/data.js.map +1 -0
- package/dist/backend/routes/health.d.ts +7 -0
- package/dist/backend/routes/health.d.ts.map +1 -0
- package/dist/backend/routes/health.js +15 -0
- package/dist/backend/routes/health.js.map +1 -0
- package/dist/backend/routes/index.d.ts +16 -0
- package/dist/backend/routes/index.d.ts.map +1 -0
- package/dist/backend/routes/index.js +12 -0
- package/dist/backend/routes/index.js.map +1 -0
- package/dist/backend/routes/session-routes.d.ts +20 -0
- package/dist/backend/routes/session-routes.d.ts.map +1 -0
- package/dist/backend/routes/session-routes.js +94 -0
- package/dist/backend/routes/session-routes.js.map +1 -0
- package/dist/backend/routes/skill-archive.d.ts +13 -0
- package/dist/backend/routes/skill-archive.d.ts.map +1 -0
- package/dist/backend/routes/skill-archive.js +84 -0
- package/dist/backend/routes/skill-archive.js.map +1 -0
- package/dist/backend/routes/skill-parser.d.ts +41 -0
- package/dist/backend/routes/skill-parser.d.ts.map +1 -0
- package/dist/backend/routes/skill-parser.js +184 -0
- package/dist/backend/routes/skill-parser.js.map +1 -0
- package/dist/backend/routes/skill-service.d.ts +113 -0
- package/dist/backend/routes/skill-service.d.ts.map +1 -0
- package/dist/backend/routes/skill-service.js +265 -0
- package/dist/backend/routes/skill-service.js.map +1 -0
- package/dist/backend/routes/skills.d.ts +16 -0
- package/dist/backend/routes/skills.d.ts.map +1 -0
- package/dist/backend/routes/skills.js +164 -0
- package/dist/backend/routes/skills.js.map +1 -0
- package/dist/backend/routes/upload.d.ts +24 -0
- package/dist/backend/routes/upload.d.ts.map +1 -0
- package/dist/backend/routes/upload.js +99 -0
- package/dist/backend/routes/upload.js.map +1 -0
- package/dist/backend/services/skill-archive.d.ts +13 -0
- package/dist/backend/services/skill-archive.d.ts.map +1 -0
- package/dist/backend/services/skill-archive.js +84 -0
- package/dist/backend/services/skill-archive.js.map +1 -0
- package/dist/backend/services/skill-parser.d.ts +41 -0
- package/dist/backend/services/skill-parser.d.ts.map +1 -0
- package/dist/backend/services/skill-parser.js +184 -0
- package/dist/backend/services/skill-parser.js.map +1 -0
- package/dist/backend/services/skill-service.d.ts +113 -0
- package/dist/backend/services/skill-service.d.ts.map +1 -0
- package/dist/backend/services/skill-service.js +265 -0
- package/dist/backend/services/skill-service.js.map +1 -0
- package/dist/bin.d.ts +8 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +12 -0
- package/dist/bin.js.map +1 -0
- package/dist/capability-generator.d.ts +21 -6
- package/dist/capability-generator.d.ts.map +1 -1
- package/dist/capability-generator.js +88 -261
- package/dist/capability-generator.js.map +1 -1
- package/dist/cli/commands/auth.d.ts +11 -0
- package/dist/cli/commands/auth.d.ts.map +1 -0
- package/dist/cli/commands/auth.js +203 -0
- package/dist/cli/commands/auth.js.map +1 -0
- package/dist/cli/commands/build.d.ts +11 -0
- package/dist/cli/commands/build.d.ts.map +1 -0
- package/dist/cli/commands/build.js +170 -0
- package/dist/cli/commands/build.js.map +1 -0
- package/dist/cli/commands/data.d.ts +16 -0
- package/dist/cli/commands/data.d.ts.map +1 -0
- package/dist/cli/commands/data.js +302 -0
- package/dist/cli/commands/data.js.map +1 -0
- package/dist/cli/commands/dev.d.ts +8 -0
- package/dist/cli/commands/dev.d.ts.map +1 -0
- package/dist/cli/commands/dev.js +97 -0
- package/dist/cli/commands/dev.js.map +1 -0
- package/dist/cli/commands/generate-capabilities.d.ts +8 -0
- package/dist/cli/commands/generate-capabilities.d.ts.map +1 -0
- package/dist/cli/commands/generate-capabilities.js +41 -0
- package/dist/cli/commands/generate-capabilities.js.map +1 -0
- package/dist/cli/commands/generate-cli-command.d.ts +8 -0
- package/dist/cli/commands/generate-cli-command.d.ts.map +1 -0
- package/dist/cli/commands/generate-cli-command.js +64 -0
- package/dist/cli/commands/generate-cli-command.js.map +1 -0
- package/dist/cli/commands/generate-dashboard.d.ts +9 -0
- package/dist/cli/commands/generate-dashboard.d.ts.map +1 -0
- package/dist/cli/commands/generate-dashboard.js +113 -0
- package/dist/cli/commands/generate-dashboard.js.map +1 -0
- package/dist/cli/commands/generate-page.d.ts +9 -0
- package/dist/cli/commands/generate-page.d.ts.map +1 -0
- package/dist/cli/commands/generate-page.js +105 -0
- package/dist/cli/commands/generate-page.js.map +1 -0
- package/dist/cli/commands/generate-skill.d.ts +8 -0
- package/dist/cli/commands/generate-skill.d.ts.map +1 -0
- package/dist/cli/commands/generate-skill.js +75 -0
- package/dist/cli/commands/generate-skill.js.map +1 -0
- package/dist/cli/commands/generate-system-settings.d.ts +9 -0
- package/dist/cli/commands/generate-system-settings.d.ts.map +1 -0
- package/dist/cli/commands/generate-system-settings.js +96 -0
- package/dist/cli/commands/generate-system-settings.js.map +1 -0
- package/dist/cli/commands/generate.d.ts +6 -0
- package/dist/cli/commands/generate.d.ts.map +1 -0
- package/dist/cli/commands/generate.js +21 -0
- package/dist/cli/commands/generate.js.map +1 -0
- package/dist/cli/commands/init.d.ts +8 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +374 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/observe.d.ts +9 -0
- package/dist/cli/commands/observe.d.ts.map +1 -0
- package/dist/cli/commands/observe.js +142 -0
- package/dist/cli/commands/observe.js.map +1 -0
- package/dist/cli/commands/role.d.ts +9 -0
- package/dist/cli/commands/role.d.ts.map +1 -0
- package/dist/cli/commands/role.js +81 -0
- package/dist/cli/commands/role.js.map +1 -0
- package/dist/cli/commands/serve.d.ts +12 -0
- package/dist/cli/commands/serve.d.ts.map +1 -0
- package/dist/cli/commands/serve.js +43 -0
- package/dist/cli/commands/serve.js.map +1 -0
- package/dist/cli/commands/skill.d.ts +9 -0
- package/dist/cli/commands/skill.d.ts.map +1 -0
- package/dist/cli/commands/skill.js +186 -0
- package/dist/cli/commands/skill.js.map +1 -0
- package/dist/cli/commands/user-cmd.d.ts +9 -0
- package/dist/cli/commands/user-cmd.d.ts.map +1 -0
- package/dist/cli/commands/user-cmd.js +204 -0
- package/dist/cli/commands/user-cmd.js.map +1 -0
- package/dist/cli/framework.d.ts +28 -0
- package/dist/cli/framework.d.ts.map +1 -0
- package/dist/cli/framework.js +29 -0
- package/dist/cli/framework.js.map +1 -0
- package/dist/cli/generators/capability-generator.d.ts +35 -0
- package/dist/cli/generators/capability-generator.d.ts.map +1 -0
- package/dist/cli/generators/capability-generator.js +176 -0
- package/dist/cli/generators/capability-generator.js.map +1 -0
- package/dist/cli/helpers/app-tsx-wiring.d.ts +33 -0
- package/dist/cli/helpers/app-tsx-wiring.d.ts.map +1 -0
- package/dist/cli/helpers/app-tsx-wiring.js +448 -0
- package/dist/cli/helpers/app-tsx-wiring.js.map +1 -0
- package/dist/cli/helpers/backup.d.ts +16 -0
- package/dist/cli/helpers/backup.d.ts.map +1 -0
- package/dist/cli/helpers/backup.js +34 -0
- package/dist/cli/helpers/backup.js.map +1 -0
- package/dist/cli/helpers/column-template.d.ts +20 -0
- package/dist/cli/helpers/column-template.d.ts.map +1 -0
- package/dist/cli/helpers/column-template.js +158 -0
- package/dist/cli/helpers/column-template.js.map +1 -0
- package/dist/cli/helpers/duration.d.ts +5 -0
- package/dist/cli/helpers/duration.d.ts.map +1 -0
- package/dist/cli/helpers/duration.js +5 -0
- package/dist/cli/helpers/duration.js.map +1 -0
- package/dist/cli/helpers/field-template.d.ts +14 -0
- package/dist/cli/helpers/field-template.d.ts.map +1 -0
- package/dist/cli/helpers/field-template.js +113 -0
- package/dist/cli/helpers/field-template.js.map +1 -0
- package/dist/cli/helpers/i18n-template.d.ts +21 -0
- package/dist/cli/helpers/i18n-template.d.ts.map +1 -0
- package/dist/cli/helpers/i18n-template.js +69 -0
- package/dist/cli/helpers/i18n-template.js.map +1 -0
- package/dist/cli/helpers/naming.d.ts +11 -0
- package/dist/cli/helpers/naming.d.ts.map +1 -0
- package/dist/cli/helpers/naming.js +21 -0
- package/dist/cli/helpers/naming.js.map +1 -0
- package/dist/cli/index.d.ts +9 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +39 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/lib/credentials.d.ts +27 -0
- package/dist/cli/lib/credentials.d.ts.map +1 -0
- package/dist/cli/lib/credentials.js +112 -0
- package/dist/cli/lib/credentials.js.map +1 -0
- package/dist/cli/templates/auth-wiring.d.ts +17 -0
- package/dist/cli/templates/auth-wiring.d.ts.map +1 -0
- package/dist/cli/templates/auth-wiring.js +31 -0
- package/dist/cli/templates/auth-wiring.js.map +1 -0
- package/dist/cli/templates/backend-entry.d.ts +5 -0
- package/dist/cli/templates/backend-entry.d.ts.map +1 -0
- package/dist/cli/templates/backend-entry.js +17 -0
- package/dist/cli/templates/backend-entry.js.map +1 -0
- package/dist/cli/templates/claude-md.d.ts +20 -0
- package/dist/cli/templates/claude-md.d.ts.map +1 -0
- package/dist/cli/templates/claude-md.js +123 -0
- package/dist/cli/templates/claude-md.js.map +1 -0
- package/dist/cli/templates/crud-page.d.ts +14 -0
- package/dist/cli/templates/crud-page.d.ts.map +1 -0
- package/dist/cli/templates/crud-page.js +430 -0
- package/dist/cli/templates/crud-page.js.map +1 -0
- package/dist/cli/templates/dashboard-page.d.ts +11 -0
- package/dist/cli/templates/dashboard-page.d.ts.map +1 -0
- package/dist/cli/templates/dashboard-page.js +464 -0
- package/dist/cli/templates/dashboard-page.js.map +1 -0
- package/dist/cli/templates/frontend-entry.d.ts +11 -0
- package/dist/cli/templates/frontend-entry.d.ts.map +1 -0
- package/dist/cli/templates/frontend-entry.js +94 -0
- package/dist/cli/templates/frontend-entry.js.map +1 -0
- package/dist/cli/templates/gitignore.d.ts +5 -0
- package/dist/cli/templates/gitignore.d.ts.map +1 -0
- package/dist/cli/templates/gitignore.js +13 -0
- package/dist/cli/templates/gitignore.js.map +1 -0
- package/dist/cli/templates/index.d.ts +19 -0
- package/dist/cli/templates/index.d.ts.map +1 -0
- package/dist/cli/templates/index.js +19 -0
- package/dist/cli/templates/index.js.map +1 -0
- package/dist/cli/templates/login-page.d.ts +5 -0
- package/dist/cli/templates/login-page.d.ts.map +1 -0
- package/dist/cli/templates/login-page.js +13 -0
- package/dist/cli/templates/login-page.js.map +1 -0
- package/dist/cli/templates/loom-config.d.ts +13 -0
- package/dist/cli/templates/loom-config.d.ts.map +1 -0
- package/dist/cli/templates/loom-config.js +63 -0
- package/dist/cli/templates/loom-config.js.map +1 -0
- package/dist/cli/templates/model-management-page.d.ts +9 -0
- package/dist/cli/templates/model-management-page.d.ts.map +1 -0
- package/dist/cli/templates/model-management-page.js +299 -0
- package/dist/cli/templates/model-management-page.js.map +1 -0
- package/dist/cli/templates/package-json.d.ts +9 -0
- package/dist/cli/templates/package-json.d.ts.map +1 -0
- package/dist/cli/templates/package-json.js +41 -0
- package/dist/cli/templates/package-json.js.map +1 -0
- package/dist/cli/templates/readme.d.ts +9 -0
- package/dist/cli/templates/readme.d.ts.map +1 -0
- package/dist/cli/templates/readme.js +47 -0
- package/dist/cli/templates/readme.js.map +1 -0
- package/dist/cli/templates/skill-management-page.d.ts +9 -0
- package/dist/cli/templates/skill-management-page.d.ts.map +1 -0
- package/dist/cli/templates/skill-management-page.js +476 -0
- package/dist/cli/templates/skill-management-page.js.map +1 -0
- package/dist/cli/templates/system-settings-page.d.ts +10 -0
- package/dist/cli/templates/system-settings-page.d.ts.map +1 -0
- package/dist/cli/templates/system-settings-page.js +768 -0
- package/dist/cli/templates/system-settings-page.js.map +1 -0
- package/dist/cli/templates/tsconfig.d.ts +6 -0
- package/dist/cli/templates/tsconfig.d.ts.map +1 -0
- package/dist/cli/templates/tsconfig.js +41 -0
- package/dist/cli/templates/tsconfig.js.map +1 -0
- package/dist/cli/templates/user-management-page.d.ts +9 -0
- package/dist/cli/templates/user-management-page.d.ts.map +1 -0
- package/dist/cli/templates/user-management-page.js +236 -0
- package/dist/cli/templates/user-management-page.js.map +1 -0
- package/dist/cli/templates/vite-config.d.ts +5 -0
- package/dist/cli/templates/vite-config.d.ts.map +1 -0
- package/dist/cli/templates/vite-config.js +24 -0
- package/dist/cli/templates/vite-config.js.map +1 -0
- package/dist/cli/utils.d.ts +10 -0
- package/dist/cli/utils.d.ts.map +1 -0
- package/dist/cli/utils.js +31 -0
- package/dist/cli/utils.js.map +1 -0
- package/dist/commands.d.ts +1 -5
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +0 -11
- package/dist/commands.js.map +1 -1
- package/dist/config.d.ts +694 -76
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +79 -15
- package/dist/config.js.map +1 -1
- package/dist/dashboard-config.d.ts +149 -0
- package/dist/dashboard-config.d.ts.map +1 -0
- package/dist/dashboard-config.js +40 -0
- package/dist/dashboard-config.js.map +1 -0
- package/dist/index.d.ts +15 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -5
- package/dist/index.js.map +1 -1
- package/dist/server-bin.d.ts +12 -0
- package/dist/server-bin.d.ts.map +1 -0
- package/dist/server-bin.js +43 -0
- package/dist/server-bin.js.map +1 -0
- package/dist/types/adapter.d.ts +30 -0
- package/dist/types/adapter.d.ts.map +1 -0
- package/dist/types/adapter.js +5 -0
- package/dist/types/adapter.js.map +1 -0
- package/dist/types/ai.d.ts +68 -0
- package/dist/types/ai.d.ts.map +1 -0
- package/dist/types/ai.js +5 -0
- package/dist/types/ai.js.map +1 -0
- package/dist/types/auth.d.ts +64 -0
- package/dist/types/auth.d.ts.map +1 -0
- package/dist/types/auth.js +5 -0
- package/dist/types/auth.js.map +1 -0
- package/dist/types/chat.d.ts +47 -0
- package/dist/types/chat.d.ts.map +1 -0
- package/dist/types/chat.js +8 -0
- package/dist/types/chat.js.map +1 -0
- package/dist/types/command.d.ts +25 -0
- package/dist/types/command.d.ts.map +1 -0
- package/dist/types/command.js +5 -0
- package/dist/types/command.js.map +1 -0
- package/dist/types/config.d.ts +61 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +5 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/dashboard.d.ts +59 -0
- package/dist/types/dashboard.d.ts.map +1 -0
- package/dist/types/dashboard.js +5 -0
- package/dist/types/dashboard.js.map +1 -0
- package/dist/types/index.d.ts +17 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/locale.d.ts +21 -0
- package/dist/types/locale.d.ts.map +1 -0
- package/dist/types/locale.js +36 -0
- package/dist/types/locale.js.map +1 -0
- package/dist/types/model.d.ts +69 -0
- package/dist/types/model.d.ts.map +1 -0
- package/dist/types/model.js +5 -0
- package/dist/types/model.js.map +1 -0
- package/dist/types.d.ts +4 -199
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +4 -3
- package/dist/types.js.map +1 -1
- package/dist/utils/duration.d.ts +8 -0
- package/dist/utils/duration.d.ts.map +1 -0
- package/dist/utils/duration.js +22 -0
- package/dist/utils/duration.js.map +1 -0
- package/dist/utils/id.d.ts +7 -0
- package/dist/utils/id.d.ts.map +1 -0
- package/dist/utils/id.js +9 -0
- package/dist/utils/id.js.map +1 -0
- 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 图片格式输出:``
|
|
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"**:在项目目录下运行命令
|