@loom-framework/core 0.1.0-alpha.18 → 0.1.0-alpha.180
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 +48 -0
- package/builtin-skills/app-skill/references/auth.md +180 -0
- package/builtin-skills/app-skill/references/data-semantics.md +44 -0
- package/builtin-skills/app-skill/references/events.md +119 -0
- package/builtin-skills/app-skill/references/evolution.md +90 -0
- package/builtin-skills/app-skill/references/model.md +124 -0
- package/builtin-skills/app-skill/references/models.md +45 -0
- package/builtin-skills/app-skill/references/notification.md +123 -0
- package/builtin-skills/app-skill/references/process-builder.md +444 -0
- package/builtin-skills/app-skill/references/process-metrics.md +93 -0
- package/builtin-skills/app-skill/references/process.md +336 -0
- package/builtin-skills/chart-visualization/SKILL.md +101 -0
- package/builtin-skills/loom/SKILL.md +301 -0
- package/builtin-skills/loom/references/README.md +285 -0
- package/builtin-skills/loom/references/dashboard.md +259 -0
- package/builtin-skills/loom/references/data-model.md +290 -0
- package/builtin-skills/loom/references/eject.md +111 -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 +65 -0
- package/dist/backend/ai/engine.d.ts.map +1 -0
- package/dist/backend/ai/engine.js +238 -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 +106 -0
- package/dist/backend/ai/session-manager.d.ts.map +1 -0
- package/dist/backend/ai/session-manager.js +304 -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 +36 -0
- package/dist/backend/auth/rbac.d.ts.map +1 -0
- package/dist/backend/auth/rbac.js +130 -0
- package/dist/backend/auth/rbac.js.map +1 -0
- package/dist/backend/auth/request-context.d.ts +15 -0
- package/dist/backend/auth/request-context.d.ts.map +1 -0
- package/dist/backend/auth/request-context.js +17 -0
- package/dist/backend/auth/request-context.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 +28 -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 +42 -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/events/event-bus.d.ts +39 -0
- package/dist/backend/events/event-bus.d.ts.map +1 -0
- package/dist/backend/events/event-bus.js +182 -0
- package/dist/backend/events/event-bus.js.map +1 -0
- package/dist/backend/events/event-emitting-adapter.d.ts +31 -0
- package/dist/backend/events/event-emitting-adapter.d.ts.map +1 -0
- package/dist/backend/events/event-emitting-adapter.js +70 -0
- package/dist/backend/events/event-emitting-adapter.js.map +1 -0
- package/dist/backend/events/event-registry.d.ts +24 -0
- package/dist/backend/events/event-registry.d.ts.map +1 -0
- package/dist/backend/events/event-registry.js +22 -0
- package/dist/backend/events/event-registry.js.map +1 -0
- package/dist/backend/events/index.d.ts +7 -0
- package/dist/backend/events/index.d.ts.map +1 -0
- package/dist/backend/events/index.js +7 -0
- package/dist/backend/events/index.js.map +1 -0
- package/dist/backend/index.d.ts +92 -0
- package/dist/backend/index.d.ts.map +1 -0
- package/dist/backend/index.js +460 -0
- package/dist/backend/index.js.map +1 -0
- package/dist/backend/lifecycle/index.d.ts +2 -0
- package/dist/backend/lifecycle/index.d.ts.map +1 -0
- package/dist/backend/lifecycle/index.js +2 -0
- package/dist/backend/lifecycle/index.js.map +1 -0
- package/dist/backend/lifecycle/manager.d.ts +67 -0
- package/dist/backend/lifecycle/manager.d.ts.map +1 -0
- package/dist/backend/lifecycle/manager.js +606 -0
- package/dist/backend/lifecycle/manager.js.map +1 -0
- package/dist/backend/loom-paths.d.ts +28 -0
- package/dist/backend/loom-paths.d.ts.map +1 -0
- package/dist/backend/loom-paths.js +45 -0
- package/dist/backend/loom-paths.js.map +1 -0
- package/dist/backend/notifications/interpolate.d.ts +6 -0
- package/dist/backend/notifications/interpolate.d.ts.map +1 -0
- package/dist/backend/notifications/interpolate.js +11 -0
- package/dist/backend/notifications/interpolate.js.map +1 -0
- package/dist/backend/notifications/notification-storage.d.ts +27 -0
- package/dist/backend/notifications/notification-storage.d.ts.map +1 -0
- package/dist/backend/notifications/notification-storage.js +160 -0
- package/dist/backend/notifications/notification-storage.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 +26 -0
- package/dist/backend/observe/logger.d.ts.map +1 -0
- package/dist/backend/observe/logger.js +68 -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/process/engine.d.ts +113 -0
- package/dist/backend/process/engine.d.ts.map +1 -0
- package/dist/backend/process/engine.js +606 -0
- package/dist/backend/process/engine.js.map +1 -0
- package/dist/backend/process/index.d.ts +7 -0
- package/dist/backend/process/index.d.ts.map +1 -0
- package/dist/backend/process/index.js +6 -0
- package/dist/backend/process/index.js.map +1 -0
- package/dist/backend/process/logger.d.ts +38 -0
- package/dist/backend/process/logger.d.ts.map +1 -0
- package/dist/backend/process/logger.js +198 -0
- package/dist/backend/process/logger.js.map +1 -0
- package/dist/backend/process/metrics-store.d.ts +32 -0
- package/dist/backend/process/metrics-store.d.ts.map +1 -0
- package/dist/backend/process/metrics-store.js +108 -0
- package/dist/backend/process/metrics-store.js.map +1 -0
- package/dist/backend/process/migrate.d.ts +12 -0
- package/dist/backend/process/migrate.d.ts.map +1 -0
- package/dist/backend/process/migrate.js +145 -0
- package/dist/backend/process/migrate.js.map +1 -0
- package/dist/backend/process/queue.d.ts +33 -0
- package/dist/backend/process/queue.d.ts.map +1 -0
- package/dist/backend/process/queue.js +94 -0
- package/dist/backend/process/queue.js.map +1 -0
- package/dist/backend/process/registry.d.ts +29 -0
- package/dist/backend/process/registry.d.ts.map +1 -0
- package/dist/backend/process/registry.js +105 -0
- package/dist/backend/process/registry.js.map +1 -0
- package/dist/backend/process/trigger.d.ts +29 -0
- package/dist/backend/process/trigger.d.ts.map +1 -0
- package/dist/backend/process/trigger.js +108 -0
- package/dist/backend/process/trigger.js.map +1 -0
- package/dist/backend/routes/ai-config.d.ts +18 -0
- package/dist/backend/routes/ai-config.d.ts.map +1 -0
- package/dist/backend/routes/ai-config.js +295 -0
- package/dist/backend/routes/ai-config.js.map +1 -0
- package/dist/backend/routes/auth-routes.d.ts +33 -0
- package/dist/backend/routes/auth-routes.d.ts.map +1 -0
- package/dist/backend/routes/auth-routes.js +528 -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 +30 -0
- package/dist/backend/routes/chat.d.ts.map +1 -0
- package/dist/backend/routes/chat.js +258 -0
- package/dist/backend/routes/chat.js.map +1 -0
- package/dist/backend/routes/data.d.ts +16 -0
- package/dist/backend/routes/data.d.ts.map +1 -0
- package/dist/backend/routes/data.js +371 -0
- package/dist/backend/routes/data.js.map +1 -0
- package/dist/backend/routes/event-routes.d.ts +15 -0
- package/dist/backend/routes/event-routes.d.ts.map +1 -0
- package/dist/backend/routes/event-routes.js +35 -0
- package/dist/backend/routes/event-routes.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 +24 -0
- package/dist/backend/routes/index.d.ts.map +1 -0
- package/dist/backend/routes/index.js +16 -0
- package/dist/backend/routes/index.js.map +1 -0
- package/dist/backend/routes/lifecycle-routes.d.ts +10 -0
- package/dist/backend/routes/lifecycle-routes.d.ts.map +1 -0
- package/dist/backend/routes/lifecycle-routes.js +54 -0
- package/dist/backend/routes/lifecycle-routes.js.map +1 -0
- package/dist/backend/routes/notification-routes.d.ts +22 -0
- package/dist/backend/routes/notification-routes.d.ts.map +1 -0
- package/dist/backend/routes/notification-routes.js +129 -0
- package/dist/backend/routes/notification-routes.js.map +1 -0
- package/dist/backend/routes/process-routes.d.ts +19 -0
- package/dist/backend/routes/process-routes.d.ts.map +1 -0
- package/dist/backend/routes/process-routes.js +373 -0
- package/dist/backend/routes/process-routes.js.map +1 -0
- package/dist/backend/routes/session-routes.d.ts +22 -0
- package/dist/backend/routes/session-routes.d.ts.map +1 -0
- package/dist/backend/routes/session-routes.js +97 -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 +18 -0
- package/dist/backend/routes/skills.d.ts.map +1 -0
- package/dist/backend/routes/skills.js +168 -0
- package/dist/backend/routes/skills.js.map +1 -0
- package/dist/backend/routes/upload.d.ts +25 -0
- package/dist/backend/routes/upload.d.ts.map +1 -0
- package/dist/backend/routes/upload.js +100 -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 +211 -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 +15 -0
- package/dist/cli/commands/data.d.ts.map +1 -0
- package/dist/cli/commands/data.js +214 -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 +114 -0
- package/dist/cli/commands/dev.js.map +1 -0
- package/dist/cli/commands/eject.d.ts +12 -0
- package/dist/cli/commands/eject.d.ts.map +1 -0
- package/dist/cli/commands/eject.js +280 -0
- package/dist/cli/commands/eject.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-notification.d.ts +9 -0
- package/dist/cli/commands/generate-notification.d.ts.map +1 -0
- package/dist/cli/commands/generate-notification.js +24 -0
- package/dist/cli/commands/generate-notification.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 +10 -0
- package/dist/cli/commands/generate-system-settings.d.ts.map +1 -0
- package/dist/cli/commands/generate-system-settings.js +56 -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 +384 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/lifecycle.d.ts +8 -0
- package/dist/cli/commands/lifecycle.d.ts.map +1 -0
- package/dist/cli/commands/lifecycle.js +166 -0
- package/dist/cli/commands/lifecycle.js.map +1 -0
- package/dist/cli/commands/model.d.ts +9 -0
- package/dist/cli/commands/model.d.ts.map +1 -0
- package/dist/cli/commands/model.js +218 -0
- package/dist/cli/commands/model.js.map +1 -0
- package/dist/cli/commands/notification.d.ts +8 -0
- package/dist/cli/commands/notification.d.ts.map +1 -0
- package/dist/cli/commands/notification.js +179 -0
- package/dist/cli/commands/notification.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/process.d.ts +8 -0
- package/dist/cli/commands/process.d.ts.map +1 -0
- package/dist/cli/commands/process.js +561 -0
- package/dist/cli/commands/process.js.map +1 -0
- package/dist/cli/commands/role.d.ts +12 -0
- package/dist/cli/commands/role.d.ts.map +1 -0
- package/dist/cli/commands/role.js +208 -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 +195 -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 +369 -0
- package/dist/cli/generators/capability-generator.js.map +1 -0
- package/dist/cli/helpers/app-tsx-utils.d.ts +12 -0
- package/dist/cli/helpers/app-tsx-utils.d.ts.map +1 -0
- package/dist/cli/helpers/app-tsx-utils.js +22 -0
- package/dist/cli/helpers/app-tsx-utils.js.map +1 -0
- package/dist/cli/helpers/app-tsx-wiring-engine.d.ts +70 -0
- package/dist/cli/helpers/app-tsx-wiring-engine.d.ts.map +1 -0
- package/dist/cli/helpers/app-tsx-wiring-engine.js +535 -0
- package/dist/cli/helpers/app-tsx-wiring-engine.js.map +1 -0
- package/dist/cli/helpers/app-tsx-wiring.d.ts +19 -0
- package/dist/cli/helpers/app-tsx-wiring.d.ts.map +1 -0
- package/dist/cli/helpers/app-tsx-wiring.js +145 -0
- package/dist/cli/helpers/app-tsx-wiring.js.map +1 -0
- package/dist/cli/helpers/auth-client.d.ts +19 -0
- package/dist/cli/helpers/auth-client.d.ts.map +1 -0
- package/dist/cli/helpers/auth-client.js +42 -0
- package/dist/cli/helpers/auth-client.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 +165 -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 +117 -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/helpers/system-page-config.d.ts +27 -0
- package/dist/cli/helpers/system-page-config.d.ts.map +1 -0
- package/dist/cli/helpers/system-page-config.js +73 -0
- package/dist/cli/helpers/system-page-config.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 +49 -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 +436 -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 +606 -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 +21 -0
- package/dist/cli/templates/index.d.ts.map +1 -0
- package/dist/cli/templates/index.js +21 -0
- package/dist/cli/templates/index.js.map +1 -0
- package/dist/cli/templates/login-page.d.ts +8 -0
- package/dist/cli/templates/login-page.d.ts.map +1 -0
- package/dist/cli/templates/login-page.js +67 -0
- package/dist/cli/templates/login-page.js.map +1 -0
- package/dist/cli/templates/loom-config.d.ts +15 -0
- package/dist/cli/templates/loom-config.d.ts.map +1 -0
- package/dist/cli/templates/loom-config.js +91 -0
- package/dist/cli/templates/loom-config.js.map +1 -0
- package/dist/cli/templates/model-management-page.d.ts +8 -0
- package/dist/cli/templates/model-management-page.d.ts.map +1 -0
- package/dist/cli/templates/model-management-page.js +373 -0
- package/dist/cli/templates/model-management-page.js.map +1 -0
- package/dist/cli/templates/notification-center-page.d.ts +8 -0
- package/dist/cli/templates/notification-center-page.d.ts.map +1 -0
- package/dist/cli/templates/notification-center-page.js +240 -0
- package/dist/cli/templates/notification-center-page.js.map +1 -0
- package/dist/cli/templates/notification-detail-page.d.ts +8 -0
- package/dist/cli/templates/notification-detail-page.d.ts.map +1 -0
- package/dist/cli/templates/notification-detail-page.js +87 -0
- package/dist/cli/templates/notification-detail-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/process-management-page.d.ts +8 -0
- package/dist/cli/templates/process-management-page.d.ts.map +1 -0
- package/dist/cli/templates/process-management-page.js +520 -0
- package/dist/cli/templates/process-management-page.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 +8 -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 +8 -0
- package/dist/cli/templates/user-management-page.d.ts.map +1 -0
- package/dist/cli/templates/user-management-page.js +497 -0
- package/dist/cli/templates/user-management-page.js.map +1 -0
- package/dist/cli/templates/vite-config.d.ts +9 -0
- package/dist/cli/templates/vite-config.d.ts.map +1 -0
- package/dist/cli/templates/vite-config.js +26 -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 +1320 -96
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +161 -16
- 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 +23 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -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/system-prompt.d.ts +20 -0
- package/dist/system-prompt.d.ts.map +1 -0
- package/dist/system-prompt.js +140 -0
- package/dist/system-prompt.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 +78 -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 +62 -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 +69 -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/event.d.ts +103 -0
- package/dist/types/event.d.ts.map +1 -0
- package/dist/types/event.js +38 -0
- package/dist/types/event.js.map +1 -0
- package/dist/types/index.d.ts +22 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +9 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/lifecycle.d.ts +71 -0
- package/dist/types/lifecycle.d.ts.map +1 -0
- package/dist/types/lifecycle.js +10 -0
- package/dist/types/lifecycle.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 +71 -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/notification.d.ts +33 -0
- package/dist/types/notification.d.ts.map +1 -0
- package/dist/types/notification.js +5 -0
- package/dist/types/notification.js.map +1 -0
- package/dist/types/process.d.ts +191 -0
- package/dist/types/process.d.ts.map +1 -0
- package/dist/types/process.js +5 -0
- package/dist/types/process.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 +30 -5
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# Notification Commands Reference
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Loom provides a built-in notification system for persistent server-side notifications. Notifications are user-scoped and support CRUD operations via both HTTP API and CLI.
|
|
6
|
+
|
|
7
|
+
## CLI Commands
|
|
8
|
+
|
|
9
|
+
### List notifications
|
|
10
|
+
```bash
|
|
11
|
+
loom notification list [--unread] [--limit 20] [--offset 0] --token <TOKEN>
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
### Mark as read
|
|
15
|
+
```bash
|
|
16
|
+
loom notification read <id> --token <TOKEN>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Mark all as read
|
|
20
|
+
```bash
|
|
21
|
+
loom notification read-all --token <TOKEN>
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Delete notification
|
|
25
|
+
```bash
|
|
26
|
+
loom notification delete <id> --token <TOKEN>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Clear all notifications
|
|
30
|
+
```bash
|
|
31
|
+
loom notification clear --token <TOKEN>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Send notification (admin only)
|
|
35
|
+
```bash
|
|
36
|
+
loom notification send --userId <userId> --type <type> --title <title> [--description DESC] --token <TOKEN>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## HTTP API
|
|
40
|
+
|
|
41
|
+
| Method | Path | Auth | Permission | Description |
|
|
42
|
+
|--------|------|------|------------|-------------|
|
|
43
|
+
| GET | `/api/v1/notifications` | Required | Own only | List (paginated) |
|
|
44
|
+
| GET | `/api/v1/notifications/unread-count` | Required | Own only | Unread count |
|
|
45
|
+
| PUT | `/api/v1/notifications/:id/read` | Required | Own only | Mark read |
|
|
46
|
+
| PUT | `/api/v1/notifications/read-all` | Required | Own only | Mark all read |
|
|
47
|
+
| DELETE | `/api/v1/notifications/:id` | Required | Own only | Delete single |
|
|
48
|
+
| DELETE | `/api/v1/notifications` | Required | Own only | Clear all |
|
|
49
|
+
| POST | `/api/v1/notifications` | Required | Admin | Create notification |
|
|
50
|
+
|
|
51
|
+
## Notification Types
|
|
52
|
+
|
|
53
|
+
- `success` — Green, operation completed successfully
|
|
54
|
+
- `error` — Red, operation failed
|
|
55
|
+
- `warning` — Orange, attention needed
|
|
56
|
+
- `info` — Blue, informational
|
|
57
|
+
|
|
58
|
+
## Source Types
|
|
59
|
+
|
|
60
|
+
- `system` — Generated by Loom framework
|
|
61
|
+
- `event` — Generated by EventBus subscription
|
|
62
|
+
- `cli` — Created via CLI command
|
|
63
|
+
|
|
64
|
+
## EventBus notify Handler
|
|
65
|
+
|
|
66
|
+
Configure automatic notification generation from events in `loom.config.ts`:
|
|
67
|
+
|
|
68
|
+
```typescript
|
|
69
|
+
export default defineConfig({
|
|
70
|
+
events: {
|
|
71
|
+
subscriptions: [
|
|
72
|
+
{
|
|
73
|
+
pattern: 'data:create:orders',
|
|
74
|
+
handler: 'notify',
|
|
75
|
+
config: {
|
|
76
|
+
type: 'success',
|
|
77
|
+
title: 'New Order Created',
|
|
78
|
+
description: 'Order {{id}} created in orders model',
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
pattern: 'user:login',
|
|
83
|
+
handler: 'notify',
|
|
84
|
+
config: {
|
|
85
|
+
type: 'info',
|
|
86
|
+
title: 'User Logged In',
|
|
87
|
+
broadcastAll: true,
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
],
|
|
91
|
+
},
|
|
92
|
+
});
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Config Options
|
|
96
|
+
|
|
97
|
+
| Field | Type | Required | Description |
|
|
98
|
+
|-------|------|----------|-------------|
|
|
99
|
+
| `type` | `'success' \| 'error' \| 'warning' \| 'info'` | Yes | Notification severity |
|
|
100
|
+
| `title` | `string` | Yes | Notification title (supports `{{var}}` interpolation) |
|
|
101
|
+
| `description` | `string` | No | Notification body (supports `{{var}}` interpolation) |
|
|
102
|
+
| `broadcastAll` | `boolean` | No | Broadcast to all users when event has no userId (default: false) |
|
|
103
|
+
|
|
104
|
+
### Interpolation
|
|
105
|
+
|
|
106
|
+
Title and description support `{{var}}` interpolation from event payload:
|
|
107
|
+
- `{{id}}` — Record ID
|
|
108
|
+
- `{{model}}` — Model name
|
|
109
|
+
- Any field from the event payload
|
|
110
|
+
|
|
111
|
+
Missing variables are replaced with empty string.
|
|
112
|
+
|
|
113
|
+
### Behavior
|
|
114
|
+
|
|
115
|
+
- If event has `userId`: notification sent to that user only
|
|
116
|
+
- If event has no `userId` and `broadcastAll: true`: sent to all users (capped at 100)
|
|
117
|
+
- If event has no `userId` and `broadcastAll: false` (default): notification is skipped
|
|
118
|
+
|
|
119
|
+
## Permissions
|
|
120
|
+
|
|
121
|
+
- Users can only read/modify their own notifications
|
|
122
|
+
- Only admin users can create notifications for other users via POST API or `loom notification send`
|
|
123
|
+
- Notifications are auto-pruned after 30 days or when exceeding 500 items
|
|
@@ -0,0 +1,444 @@
|
|
|
1
|
+
# Process Builder Guide
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
This guide helps AI assistants create Processes for users. When a user says "I want to automate X" or "run Y every day", use this guide to build a process definition.
|
|
6
|
+
|
|
7
|
+
## Lightweight vs Full Decision
|
|
8
|
+
|
|
9
|
+
### Use Lightweight (`--prompt`) when:
|
|
10
|
+
- Single, simple task
|
|
11
|
+
- No reference files needed
|
|
12
|
+
- Prompt fits in a few sentences
|
|
13
|
+
- No metrics dashboard needed
|
|
14
|
+
|
|
15
|
+
### Use Full (`--process`) when:
|
|
16
|
+
- Multi-step workflow with decision points
|
|
17
|
+
- Reference documentation needed (API docs, data schemas, style guides)
|
|
18
|
+
- Metrics dashboard desired
|
|
19
|
+
- Process may evolve over time (Evolution section)
|
|
20
|
+
|
|
21
|
+
## Step-by-Step Creation
|
|
22
|
+
|
|
23
|
+
### 1. Analyze the Request
|
|
24
|
+
|
|
25
|
+
Identify:
|
|
26
|
+
- **What** the process should do
|
|
27
|
+
- **When** it should run (schedule or event trigger)
|
|
28
|
+
- **Who** owns it (username for service token)
|
|
29
|
+
- **Which model** should run it (use `loom model list` to see available models; fast for simple tasks, max for complex reasoning; omit to use global default)
|
|
30
|
+
- **Complexity** (lightweight vs full)
|
|
31
|
+
|
|
32
|
+
### 2. Choose Trigger
|
|
33
|
+
|
|
34
|
+
| Need | Use | Example |
|
|
35
|
+
|------|-----|---------|
|
|
36
|
+
| Periodic schedule | `--cron` | `0 9 * * 1-5` (weekdays 9am) |
|
|
37
|
+
| On data change | `--on-event` | `data:create:tasks` |
|
|
38
|
+
| On user action | `--on-event` | `user:created` |
|
|
39
|
+
| External data source | `--source` | `--source "bash feeders/my-feeder.sh"` |
|
|
40
|
+
| Manual only | Neither | Just `loom process run` |
|
|
41
|
+
|
|
42
|
+
### 3. Create the Process
|
|
43
|
+
|
|
44
|
+
For lightweight:
|
|
45
|
+
```bash
|
|
46
|
+
loom process add --name "task-summary" \
|
|
47
|
+
--cron "0 9 * * *" \
|
|
48
|
+
--prompt "Read all tasks created yesterday, summarize key themes, and post a digest" \
|
|
49
|
+
--owner admin \
|
|
50
|
+
--model "claude-sonnet-4-6"
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
For full:
|
|
54
|
+
```bash
|
|
55
|
+
# Step 1: Generate scaffold
|
|
56
|
+
loom process generate weekly-report --description "Weekly analytics report"
|
|
57
|
+
|
|
58
|
+
# Step 2: Edit PROCESS.md with detailed flow
|
|
59
|
+
# (AI should write the PROCESS.md content)
|
|
60
|
+
|
|
61
|
+
# Step 3: Add reference files if needed
|
|
62
|
+
# If this process requires additional context, create the references directory
|
|
63
|
+
# and add files that the AI agent will need during execution:
|
|
64
|
+
mkdir -p .loom/processes/weekly-report/references
|
|
65
|
+
# Then add reference files such as:
|
|
66
|
+
# - Skill references (CLI command usage, API docs)
|
|
67
|
+
# - Domain knowledge (data schemas, business rules)
|
|
68
|
+
# - Scripts or tools (data transforms, query templates)
|
|
69
|
+
# Only create the directory when reference files are actually needed.
|
|
70
|
+
# Skip this step if no additional context is required.
|
|
71
|
+
|
|
72
|
+
# Step 4: Register the process
|
|
73
|
+
loom process add --name "weekly-report" \
|
|
74
|
+
--cron "0 9 * * 1" \
|
|
75
|
+
--process "weekly-report" \
|
|
76
|
+
--owner admin
|
|
77
|
+
|
|
78
|
+
# Step 5: Initialize metrics view config (if PROCESS.md has ## Metrics section)
|
|
79
|
+
# Design the view config based on ## Metrics section (see "Initializing Metrics Visualization" below)
|
|
80
|
+
# Then write it using metrics-set-view-config:
|
|
81
|
+
loom process metrics-set-view-config weekly-report --config @./view-config.json
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Event-triggered process with Feeder source
|
|
85
|
+
|
|
86
|
+
When the process needs a persistent data source (e.g., DingTalk messages, webhooks), use `--source` to declare a Feeder script:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
# Step 1: Generate scaffold (if full mode)
|
|
90
|
+
loom process generate ingest --description "AI semantic router for incoming messages"
|
|
91
|
+
|
|
92
|
+
# Step 2: Edit PROCESS.md with routing logic
|
|
93
|
+
# ...
|
|
94
|
+
|
|
95
|
+
# Step 3: Register with Feeder source
|
|
96
|
+
loom process add --name "ingest" \
|
|
97
|
+
--on-event "dingtalk:mention" \
|
|
98
|
+
--source "bash examples/feeders/dingtalk-mention.sh" \
|
|
99
|
+
--process "ingest" \
|
|
100
|
+
--owner admin
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**When to use `--source`:**
|
|
104
|
+
- Process needs a persistent external data source (DingTalk, Git webhook, scanner, etc.)
|
|
105
|
+
- The Feeder should run as long as the Loom instance is running
|
|
106
|
+
- You want auto-restart and backoff for the Feeder
|
|
107
|
+
|
|
108
|
+
**Feeder script requirements:**
|
|
109
|
+
- Trap SIGTERM/SIGINT and exit 0 for graceful shutdown
|
|
110
|
+
- Use `$LOOM_SERVER_URL` instead of hardcoded URLs
|
|
111
|
+
- Exit code 0 = normal stop (no restart); non-zero = crash (auto-restart)
|
|
112
|
+
- Write data to `POST $LOOM_SERVER_URL/api/v1/events/notify`
|
|
113
|
+
|
|
114
|
+
**Cleanup:** Removing the process with `loom process remove` automatically stops the Feeder if no other process subscribes to the same event pattern.
|
|
115
|
+
|
|
116
|
+
### 4. Verify
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
loom process status <name>
|
|
120
|
+
loom process run <name> # manual test
|
|
121
|
+
loom process logs <name> # check result
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## PROCESS.md Best Practices
|
|
125
|
+
|
|
126
|
+
### Structure
|
|
127
|
+
|
|
128
|
+
```markdown
|
|
129
|
+
# Process: <name>
|
|
130
|
+
|
|
131
|
+
## Description
|
|
132
|
+
What this process does and why.
|
|
133
|
+
|
|
134
|
+
## Trigger
|
|
135
|
+
When it runs and what triggers it.
|
|
136
|
+
|
|
137
|
+
## Flow
|
|
138
|
+
Step-by-step instructions:
|
|
139
|
+
1. Read data from <model>
|
|
140
|
+
2. Analyze <something>
|
|
141
|
+
3. Write results to <model>
|
|
142
|
+
4. Send notification with execution result via `loom notification send`
|
|
143
|
+
|
|
144
|
+
## Decision Points
|
|
145
|
+
Key decisions the AI should make:
|
|
146
|
+
- If X, do Y
|
|
147
|
+
- If Z, skip to step N
|
|
148
|
+
|
|
149
|
+
## Metrics
|
|
150
|
+
How success is measured:
|
|
151
|
+
- Execution time < N seconds
|
|
152
|
+
- Error rate < X%
|
|
153
|
+
- Output quality: <criteria>
|
|
154
|
+
|
|
155
|
+
## Evolution
|
|
156
|
+
How this process should improve:
|
|
157
|
+
- After N runs, review and optimize prompt
|
|
158
|
+
- Track common errors and add handling
|
|
159
|
+
|
|
160
|
+
## References
|
|
161
|
+
_List files in the `references/` directory that support this process:_
|
|
162
|
+
- _Skill references (e.g., CLI command usage, API docs)_
|
|
163
|
+
- _Domain knowledge (e.g., data schemas, business rules)_
|
|
164
|
+
- _Scripts or tools (e.g., data transforms, query templates)_
|
|
165
|
+
_Only create the `references/` directory and add files when needed._
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Tips
|
|
169
|
+
- Be specific in Flow steps — AI follows them literally
|
|
170
|
+
- Include data model names and field names
|
|
171
|
+
- Reference CLI commands: `loom data list <model>`, `loom data create <model>`
|
|
172
|
+
- Use `loom data` commands for data operations, not direct file I/O
|
|
173
|
+
- Include error handling in Decision Points
|
|
174
|
+
- Add a notification step at the end of Flow to send execution results to yourself: `loom notification send --userId <owner> --type success --title "Process completed" --description "Summary of results" --token $LOOM_TOKEN`
|
|
175
|
+
- If your process needs strong reasoning, specify a max-level model via `--model` when creating it. Fast models are best for simple data aggregations.
|
|
176
|
+
|
|
177
|
+
## Metrics Definition
|
|
178
|
+
|
|
179
|
+
When defining `## Metrics` in PROCESS.md, follow these guidelines so the system can properly track and visualize them:
|
|
180
|
+
|
|
181
|
+
### Format
|
|
182
|
+
|
|
183
|
+
Each metric should include:
|
|
184
|
+
- **Name**: A clear, concise identifier (e.g., "错题 review 率")
|
|
185
|
+
- **Meaning**: What this metric measures and why it matters
|
|
186
|
+
- **Direction**: Whether the metric should increase, decrease, or approach a target
|
|
187
|
+
- `increasing` = higher is better (e.g., success rate)
|
|
188
|
+
- `decreasing` = lower is better (e.g., error count)
|
|
189
|
+
- `target` = should approach a specific value (e.g., 100% coverage)
|
|
190
|
+
- **Target** (optional): The goal value
|
|
191
|
+
- **Unit** (optional): Measurement unit (e.g., "%", "条", "次")
|
|
192
|
+
- **Chart** (optional): Suggested chart type for visualization
|
|
193
|
+
|
|
194
|
+
### Example
|
|
195
|
+
|
|
196
|
+
```markdown
|
|
197
|
+
## Metrics
|
|
198
|
+
|
|
199
|
+
- **错题 review 率**: 每次触发后,是否成功将错题写入 review_plans。方向:趋近目标值。目标:100%。单位:%。图表:gauge。
|
|
200
|
+
- **错题重复出现率**: 统计相同错误模式的错题数量趋势。方向:越低越好。单位:条。图表:line。
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### Initializing Metrics Visualization
|
|
204
|
+
|
|
205
|
+
After registering a full process with `--process`, you MUST initialize the metrics view configuration so the Process Management page can render charts for each metric. This is a two-step process:
|
|
206
|
+
|
|
207
|
+
#### Step 1: Design the view config based on ## Metrics
|
|
208
|
+
|
|
209
|
+
Analyze each metric in the `## Metrics` section and generate a `ProcessMetricsViewConfig` JSON. The config has two parts:
|
|
210
|
+
|
|
211
|
+
- **`metrics[]`**: Metric card definitions (shown as number + trend + target)
|
|
212
|
+
- **`charts[]`**: G2 v5 chart specs (one independent chart per metric, filtered by `metricName`)
|
|
213
|
+
|
|
214
|
+
**ProcessMetricsViewConfig Schema:**
|
|
215
|
+
|
|
216
|
+
```typescript
|
|
217
|
+
{
|
|
218
|
+
version: 1,
|
|
219
|
+
metrics: ProcessMetricView[], // Metric card definitions
|
|
220
|
+
charts: ProcessMetricChartSpec[] // Chart specs with metric binding
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
// ProcessMetricView:
|
|
224
|
+
{
|
|
225
|
+
metricName: string; // Must match the exact name used in metrics-report
|
|
226
|
+
title: LocaleString; // Display title for the card (i18n)
|
|
227
|
+
description?: LocaleString; // Optional tooltip description (i18n)
|
|
228
|
+
chartType: string; // 'line' | 'bar' | 'area' | 'gauge' | 'number'
|
|
229
|
+
direction?: 'increasing' | 'decreasing' | 'target';
|
|
230
|
+
target?: number; // Goal value (shown on card)
|
|
231
|
+
unit?: string; // Unit label (e.g., "%", "条", "次")
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
// ProcessMetricChartSpec:
|
|
235
|
+
{
|
|
236
|
+
metricName?: string; // Filter snapshots for this metric
|
|
237
|
+
title?: LocaleString; // Chart title (i18n)
|
|
238
|
+
type: string; // G2 chart type: 'line' | 'interval' | 'area' | 'cell'
|
|
239
|
+
encode?: Record<string, unknown>; // G2 encode config
|
|
240
|
+
scale?: Record<string, unknown>; // G2 scale config
|
|
241
|
+
coordinate?: Record<string, unknown>; // G2 coordinate config
|
|
242
|
+
transform?: Record<string, unknown>[];// G2 transform config
|
|
243
|
+
style?: Record<string, unknown>; // G2 style config
|
|
244
|
+
legend?: Record<string, unknown> | boolean;
|
|
245
|
+
labels?: Record<string, unknown>[];
|
|
246
|
+
interval?: 'minute' | 'hour' | 'day' | 'week' | 'month'; // Date truncation for timestamp field
|
|
247
|
+
aggregate?: 'count' | 'sum' | 'avg'; // Aggregate function when interval is set (default: 'avg')
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
// LocaleString is either a plain string or { "zh-CN": "...", "en-US": "..." }
|
|
251
|
+
type LocaleString = string | { "zh-CN": string; "en-US": string };
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
**Chart type selection guide:**
|
|
255
|
+
|
|
256
|
+
| Metric direction + unit | chartType | Has chart? | Reasoning |
|
|
257
|
+
|------------------------|-----------|-----------|-----------|
|
|
258
|
+
| `target` + `%` unit | `gauge` | No (card only) | Percentage target → card shows current vs target |
|
|
259
|
+
| `target` + non-`%` unit | `number` | No (card only) | Numeric target → card is sufficient |
|
|
260
|
+
| `increasing` / `decreasing` + `%` | `line` | Yes | Track trend over time |
|
|
261
|
+
| `increasing` / `decreasing` + count unit | `bar` | Yes | Compare across runs |
|
|
262
|
+
|
|
263
|
+
**Chart spec design rules:**
|
|
264
|
+
|
|
265
|
+
1. **Each metric gets its own independent chart** — never mix different metrics in one chart. Different metrics have different units and scales, combining them makes the chart unreadable.
|
|
266
|
+
2. **Every chart MUST include `metricName`** — the frontend uses this field to filter `metricSnapshots` for that specific metric. Without it, all data would be mixed.
|
|
267
|
+
3. **Chart data fields** reference `ProcessMetricSnapshot` properties: `timestamp`, `value`, `metricName`, `dimensions`, `target`, `unit`. The frontend injects filtered snapshots as `data`.
|
|
268
|
+
4. **Title each chart** — add a `title` field (use LocaleString format for i18n support).
|
|
269
|
+
|
|
270
|
+
**Chart spec templates by type:**
|
|
271
|
+
|
|
272
|
+
```jsonc
|
|
273
|
+
// line chart — time series trend (with date aggregation)
|
|
274
|
+
{
|
|
275
|
+
"metricName": "错题重复出现率",
|
|
276
|
+
"title": { "zh-CN": "错题重复出现率趋势", "en-US": "Repeat Error Rate Trend" },
|
|
277
|
+
"type": "line",
|
|
278
|
+
"interval": "month",
|
|
279
|
+
"aggregate": "avg",
|
|
280
|
+
"encode": { "x": "name", "y": "value" },
|
|
281
|
+
"scale": { "y": { "nice": true } }
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
// bar chart — per-run comparison
|
|
285
|
+
{
|
|
286
|
+
"metricName": "新增错题数",
|
|
287
|
+
"title": { "zh-CN": "每次执行新增错题数", "en-US": "New Errors Per Run" },
|
|
288
|
+
"type": "interval",
|
|
289
|
+
"encode": { "x": "runId", "y": "value" },
|
|
290
|
+
"scale": { "y": { "nice": true } }
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
// area chart — cumulative trend (with date aggregation)
|
|
294
|
+
{
|
|
295
|
+
"metricName": "review 完成数",
|
|
296
|
+
"title": { "zh-CN": "Review 完成趋势", "en-US": "Review Completion Trend" },
|
|
297
|
+
"type": "area",
|
|
298
|
+
"interval": "month",
|
|
299
|
+
"aggregate": "avg",
|
|
300
|
+
"encode": { "x": "name", "y": "value" },
|
|
301
|
+
"scale": { "y": { "nice": true } }
|
|
302
|
+
}
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
5. **gauge and number types do NOT need a chart entry** — they only appear as metric cards (showing latest value, trend arrow, and target).
|
|
306
|
+
6. **When `interval` is set**, the frontend automatically aggregates snapshots by truncated date (minute/hour/day/week/month). Use `encode: { "x": "name", "y": "value" }` for interval-mode charts. When `interval` is omitted, raw snapshots are passed through to G2 directly (use `encode: { "x": "timestamp", "y": "value" }` for time series without aggregation).
|
|
307
|
+
|
|
308
|
+
#### Step 2: Write the view config
|
|
309
|
+
|
|
310
|
+
Use `loom process metrics-set-view-config` to write the configuration:
|
|
311
|
+
|
|
312
|
+
```bash
|
|
313
|
+
# From JSON string
|
|
314
|
+
loom process metrics-set-view-config <name> --config '{
|
|
315
|
+
"version": 1,
|
|
316
|
+
"metrics": [
|
|
317
|
+
{
|
|
318
|
+
"metricName": "错题 review 率",
|
|
319
|
+
"title": { "zh-CN": "错题 Review 率", "en-US": "Review Rate" },
|
|
320
|
+
"description": { "zh-CN": "每次触发后成功写入 review_plans 的比率", "en-US": "Ratio of successful review plan creation after trigger" },
|
|
321
|
+
"chartType": "gauge",
|
|
322
|
+
"direction": "target",
|
|
323
|
+
"target": 1,
|
|
324
|
+
"unit": "%"
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
"metricName": "错题重复出现率",
|
|
328
|
+
"title": { "zh-CN": "错题重复出现率", "en-US": "Repeat Error Rate" },
|
|
329
|
+
"description": { "zh-CN": "相同错误模式的错题数量趋势", "en-US": "Trend of repeated error patterns" },
|
|
330
|
+
"chartType": "line",
|
|
331
|
+
"direction": "decreasing",
|
|
332
|
+
"unit": "条"
|
|
333
|
+
}
|
|
334
|
+
],
|
|
335
|
+
"charts": [
|
|
336
|
+
{
|
|
337
|
+
"metricName": "错题重复出现率",
|
|
338
|
+
"title": { "zh-CN": "错题重复出现率趋势", "en-US": "Repeat Error Rate Trend" },
|
|
339
|
+
"type": "line",
|
|
340
|
+
"interval": "month",
|
|
341
|
+
"aggregate": "avg",
|
|
342
|
+
"encode": { "x": "name", "y": "value" },
|
|
343
|
+
"scale": { "y": { "nice": true } }
|
|
344
|
+
}
|
|
345
|
+
]
|
|
346
|
+
}'
|
|
347
|
+
|
|
348
|
+
# Or from a file
|
|
349
|
+
loom process metrics-set-view-config <name> --config @./view-config.json
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
Note: The server must be running when using this command (it calls the API).
|
|
353
|
+
|
|
354
|
+
### Complete example — error-pattern-analysis process
|
|
355
|
+
|
|
356
|
+
PROCESS.md `## Metrics` section:
|
|
357
|
+
|
|
358
|
+
```markdown
|
|
359
|
+
## Metrics
|
|
360
|
+
|
|
361
|
+
- **错题 review 率**: 每次触发后,是否成功将错题写入 review_plans。方向:趋近目标值。目标:100%。单位:%。图表:gauge。
|
|
362
|
+
- **错题重复出现率**: 统计相同错误模式的错题数量趋势。方向:越低越好。单位:条。图表:line。
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
Corresponding view config:
|
|
366
|
+
|
|
367
|
+
```json
|
|
368
|
+
{
|
|
369
|
+
"version": 1,
|
|
370
|
+
"metrics": [
|
|
371
|
+
{
|
|
372
|
+
"metricName": "错题 review 率",
|
|
373
|
+
"title": { "zh-CN": "错题 Review 率", "en-US": "Review Rate" },
|
|
374
|
+
"description": { "zh-CN": "每次触发后成功写入 review_plans 的比率", "en-US": "Ratio of successful review plan creation after trigger" },
|
|
375
|
+
"chartType": "gauge",
|
|
376
|
+
"direction": "target",
|
|
377
|
+
"target": 1,
|
|
378
|
+
"unit": "%"
|
|
379
|
+
},
|
|
380
|
+
{
|
|
381
|
+
"metricName": "错题重复出现率",
|
|
382
|
+
"title": { "zh-CN": "错题重复出现率", "en-US": "Repeat Error Rate" },
|
|
383
|
+
"description": { "zh-CN": "相同错误模式的错题数量趋势", "en-US": "Trend of repeated error patterns" },
|
|
384
|
+
"chartType": "line",
|
|
385
|
+
"direction": "decreasing",
|
|
386
|
+
"unit": "条"
|
|
387
|
+
}
|
|
388
|
+
],
|
|
389
|
+
"charts": [
|
|
390
|
+
{
|
|
391
|
+
"metricName": "错题重复出现率",
|
|
392
|
+
"title": { "zh-CN": "错题重复出现率趋势", "en-US": "Repeat Error Rate Trend" },
|
|
393
|
+
"type": "line",
|
|
394
|
+
"interval": "month",
|
|
395
|
+
"aggregate": "avg",
|
|
396
|
+
"encode": { "x": "name", "y": "value" },
|
|
397
|
+
"scale": { "y": { "nice": true } }
|
|
398
|
+
}
|
|
399
|
+
]
|
|
400
|
+
}
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
Note: "错题 review 率" has `chartType: "gauge"` which only renders as a metric card (latest value + target + trend). It does NOT need a chart entry in `charts[]`.
|
|
404
|
+
|
|
405
|
+
### Reporting metrics during execution
|
|
406
|
+
|
|
407
|
+
When a process's PROCESS.md has a `## Metrics` section, the system automatically injects a Metrics Protocol into the AI prompt. The agent MUST call `loom process metrics-report` for each metric after computing its value:
|
|
408
|
+
|
|
409
|
+
```bash
|
|
410
|
+
loom process metrics-report <process-name> \
|
|
411
|
+
--metric-name "错题 review 率" \
|
|
412
|
+
--value 0.95 \
|
|
413
|
+
--target 1 \
|
|
414
|
+
--unit "%" \
|
|
415
|
+
--run-id $LOOM_RUN_ID
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
Key points:
|
|
419
|
+
- `--metric-name` MUST exactly match the name used in the view config (including `metrics[]` entries)
|
|
420
|
+
- `--run-id` is automatically available via the `$LOOM_RUN_ID` environment variable
|
|
421
|
+
- `--dimensions` is optional for dimensional breakdown (e.g., `--dimensions '{"subject":"数学"}'`)
|
|
422
|
+
- Report each metric as soon as it's computed, don't batch at the end
|
|
423
|
+
|
|
424
|
+
## Common Cron Patterns
|
|
425
|
+
|
|
426
|
+
| Pattern | Schedule |
|
|
427
|
+
|---------|----------|
|
|
428
|
+
| `*/5 * * * *` | Every 5 minutes |
|
|
429
|
+
| `*/15 * * * *` | Every 15 minutes |
|
|
430
|
+
| `0 * * * *` | Every hour |
|
|
431
|
+
| `0 9 * * *` | Daily at 9 AM |
|
|
432
|
+
| `0 9 * * 1-5` | Weekdays at 9 AM |
|
|
433
|
+
| `0 9 * * 1` | Every Monday at 9 AM |
|
|
434
|
+
| `0 0 1 * *` | First of every month |
|
|
435
|
+
|
|
436
|
+
## Common Event Patterns
|
|
437
|
+
|
|
438
|
+
| Pattern | When |
|
|
439
|
+
|---------|------|
|
|
440
|
+
| `data:create:<model>` | New record created |
|
|
441
|
+
| `data:update:<model>` | Record updated |
|
|
442
|
+
| `data:delete:<model>` | Record deleted |
|
|
443
|
+
| `user:created` | New user registered |
|
|
444
|
+
| `process:completed:<name>` | Another process finished |
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Process Metrics Reference
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Process metrics allow you to define dashboard widgets for monitoring process execution. Metrics are served via the `/api/v1/processes/:name/metrics` endpoint and configured per-process.
|
|
6
|
+
|
|
7
|
+
## Metrics Config
|
|
8
|
+
|
|
9
|
+
Define metrics using DashboardWidget schema in `--metrics-config <path>` JSON file or via the API.
|
|
10
|
+
|
|
11
|
+
### Example: metrics-config.json
|
|
12
|
+
|
|
13
|
+
```json
|
|
14
|
+
[
|
|
15
|
+
{
|
|
16
|
+
"type": "stat",
|
|
17
|
+
"title": { "zh-CN": "成功率", "en-US": "Success Rate" },
|
|
18
|
+
"model": "__process_metrics",
|
|
19
|
+
"aggregate": "sum",
|
|
20
|
+
"field": "completedRuns",
|
|
21
|
+
"color": "#52c41a"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"type": "stat",
|
|
25
|
+
"title": { "zh-CN": "失败次数", "en-US": "Failures" },
|
|
26
|
+
"model": "__process_metrics",
|
|
27
|
+
"aggregate": "sum",
|
|
28
|
+
"field": "failedRuns",
|
|
29
|
+
"color": "#ff4d4f"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"type": "line",
|
|
33
|
+
"title": { "zh-CN": "执行趋势", "en-US": "Execution Trend" },
|
|
34
|
+
"model": "__process_metrics",
|
|
35
|
+
"aggregate": "sum",
|
|
36
|
+
"field": "totalRuns",
|
|
37
|
+
"groupBy": "date",
|
|
38
|
+
"dateInterval": "day"
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Available Widget Types
|
|
44
|
+
|
|
45
|
+
| Type | Description | Required Fields |
|
|
46
|
+
|------|-------------|-----------------|
|
|
47
|
+
| `stat` | Single number display | `title`, `model`, `aggregate`, `field` |
|
|
48
|
+
| `line` | Line chart | `title`, `model`, `aggregate`, `field`, `groupBy`, `dateInterval` |
|
|
49
|
+
| `bar` | Bar chart | `title`, `model`, `aggregate`, `field`, `groupBy` |
|
|
50
|
+
| `pie` | Pie chart | `title`, `model`, `field`, `groupBy` |
|
|
51
|
+
| `gauge` | Gauge display | `title`, `model`, `field`, `min`, `max` |
|
|
52
|
+
| `table` | Table view | `title`, `model`, `columns` |
|
|
53
|
+
|
|
54
|
+
### Available Metrics Fields
|
|
55
|
+
|
|
56
|
+
From `ProcessMetricsAggregate`:
|
|
57
|
+
|
|
58
|
+
| Field | Type | Description |
|
|
59
|
+
|-------|------|-------------|
|
|
60
|
+
| `date` | string | Date (YYYY-MM-DD) |
|
|
61
|
+
| `totalRuns` | number | Total executions |
|
|
62
|
+
| `completedRuns` | number | Successful executions |
|
|
63
|
+
| `failedRuns` | number | Failed executions |
|
|
64
|
+
| `timeoutRuns` | number | Timed out executions |
|
|
65
|
+
| `avgDurationMs` | number | Average duration in ms |
|
|
66
|
+
| `lastRunAt` | string\|null | Last execution timestamp |
|
|
67
|
+
| `lastStatus` | string\|null | Last execution status |
|
|
68
|
+
|
|
69
|
+
### Setting Metrics Config
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# During process creation
|
|
73
|
+
loom process add --name "health-check" \
|
|
74
|
+
--cron "*/30 * * * *" \
|
|
75
|
+
--prompt "Check system health" \
|
|
76
|
+
--metrics-config ./health-metrics.json \
|
|
77
|
+
--owner admin
|
|
78
|
+
|
|
79
|
+
# Or create the JSON file first
|
|
80
|
+
echo '[
|
|
81
|
+
{"type":"stat","title":{"zh-CN":"成功率","en-US":"Success Rate"},"model":"__process_metrics","aggregate":"sum","field":"completedRuns"},
|
|
82
|
+
{"type":"stat","title":{"zh-CN":"平均耗时","en-US":"Avg Duration"},"model":"__process_metrics","aggregate":"avg","field":"avgDurationMs"}
|
|
83
|
+
]' > health-metrics.json
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### API Endpoints
|
|
87
|
+
|
|
88
|
+
| Endpoint | Method | Description |
|
|
89
|
+
|----------|--------|-------------|
|
|
90
|
+
| `/api/v1/processes/:name/metrics` | GET | Get aggregated metrics data |
|
|
91
|
+
| `/api/v1/processes/:name/metrics-config` | GET | Get widget configuration |
|
|
92
|
+
|
|
93
|
+
The frontend ProcessManagementPage Metrics tab fetches both endpoints and renders the configured widgets dynamically.
|