@loom-framework/core 0.1.0-alpha.19 → 0.1.0-alpha.191
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 +47 -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 +365 -0
- package/builtin-skills/app-skill/references/evolution.md +90 -0
- package/builtin-skills/app-skill/references/feeder.md +184 -0
- package/builtin-skills/app-skill/references/model.md +124 -0
- package/builtin-skills/app-skill/references/models.md +59 -0
- package/builtin-skills/app-skill/references/notification.md +123 -0
- package/builtin-skills/app-skill/references/process-builder.md +420 -0
- package/builtin-skills/app-skill/references/process.md +458 -0
- package/builtin-skills/chart-visualization/SKILL.md +101 -0
- package/builtin-skills/loom/SKILL.md +308 -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 +306 -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 +22 -0
- package/dist/backend/events/event-registry.d.ts.map +1 -0
- package/dist/backend/events/event-registry.js +35 -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/events/subscription-service.d.ts +46 -0
- package/dist/backend/events/subscription-service.d.ts.map +1 -0
- package/dist/backend/events/subscription-service.js +220 -0
- package/dist/backend/events/subscription-service.js.map +1 -0
- package/dist/backend/index.d.ts +93 -0
- package/dist/backend/index.d.ts.map +1 -0
- package/dist/backend/index.js +481 -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 +73 -0
- package/dist/backend/lifecycle/manager.d.ts.map +1 -0
- package/dist/backend/lifecycle/manager.js +684 -0
- package/dist/backend/lifecycle/manager.js.map +1 -0
- package/dist/backend/loom-paths.d.ts +30 -0
- package/dist/backend/loom-paths.d.ts.map +1 -0
- package/dist/backend/loom-paths.js +49 -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 +127 -0
- package/dist/backend/process/engine.d.ts.map +1 -0
- package/dist/backend/process/engine.js +668 -0
- package/dist/backend/process/engine.js.map +1 -0
- package/dist/backend/process/index.d.ts +8 -0
- package/dist/backend/process/index.d.ts.map +1 -0
- package/dist/backend/process/index.js +7 -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/process-helpers.d.ts +13 -0
- package/dist/backend/process/process-helpers.d.ts.map +1 -0
- package/dist/backend/process/process-helpers.js +23 -0
- package/dist/backend/process/process-helpers.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 +64 -0
- package/dist/backend/process/registry.d.ts.map +1 -0
- package/dist/backend/process/registry.js +277 -0
- package/dist/backend/process/registry.js.map +1 -0
- package/dist/backend/process/trigger.d.ts +39 -0
- package/dist/backend/process/trigger.d.ts.map +1 -0
- package/dist/backend/process/trigger.js +162 -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 +227 -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/config-writer.d.ts +94 -0
- package/dist/backend/routes/config-writer.d.ts.map +1 -0
- package/dist/backend/routes/config-writer.js +538 -0
- package/dist/backend/routes/config-writer.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 +22 -0
- package/dist/backend/routes/event-routes.d.ts.map +1 -0
- package/dist/backend/routes/event-routes.js +153 -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 +22 -0
- package/dist/backend/routes/process-routes.d.ts.map +1 -0
- package/dist/backend/routes/process-routes.js +542 -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 +220 -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/event.d.ts +13 -0
- package/dist/cli/commands/event.d.ts.map +1 -0
- package/dist/cli/commands/event.js +379 -0
- package/dist/cli/commands/event.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 +630 -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 +371 -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 +82 -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 +51 -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 +613 -0
- package/dist/cli/templates/dashboard-page.js.map +1 -0
- package/dist/cli/templates/event-management-page.d.ts +8 -0
- package/dist/cli/templates/event-management-page.d.ts.map +1 -0
- package/dist/cli/templates/event-management-page.js +724 -0
- package/dist/cli/templates/event-management-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 +542 -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 +2010 -95
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +195 -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 +24 -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 +109 -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 +233 -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,111 @@
|
|
|
1
|
+
# System Page Eject — 定制化参考
|
|
2
|
+
|
|
3
|
+
系统管理页面默认以 npm 组件形式接入 App.tsx,不支持直接修改。Eject 机制将页面输出为本地 .tsx 文件,切换 import 来源,使页面可自由定制。
|
|
4
|
+
|
|
5
|
+
## 页面类型
|
|
6
|
+
|
|
7
|
+
| type | 组件名 | npmComponent | 接线方式 | 说明 |
|
|
8
|
+
|--------------|---------------------|---------------------------|---------------|-----------------------------------|
|
|
9
|
+
| model | ModelManagement | ModelManagementPage | sidebar-nav | 系统配置子菜单 |
|
|
10
|
+
| skill | SkillManagement | SkillManagementPage | sidebar-nav | 系统配置子菜单 |
|
|
11
|
+
| user | UserManagement | UserManagementPage | sidebar-nav | 自动接入 AuthProvider |
|
|
12
|
+
| login | Login | LoginPage | auth-fallback | AuthGuard 的 fallback,无导航入口 |
|
|
13
|
+
| process | ProcessManagement | ProcessManagementPage | sidebar-nav | 系统配置子菜单 |
|
|
14
|
+
| notification | NotificationCenter | NotificationCenterPage | skip-nav | 通知铃铛触发,无导航入口 |
|
|
15
|
+
|
|
16
|
+
notification eject 时同时生成 NotificationCenter + NotificationDetail 两个文件。
|
|
17
|
+
|
|
18
|
+
## 命令
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# eject: npm 组件 → 本地文件(可编辑)
|
|
22
|
+
loom eject system-settings <type>
|
|
23
|
+
|
|
24
|
+
# uneject: 本地文件 → npm 组件(已修改需 --force)
|
|
25
|
+
loom uneject system-settings <type> [--force]
|
|
26
|
+
|
|
27
|
+
# 接入 App.tsx(npm import 接线,init 时自动执行)
|
|
28
|
+
loom generate system-settings <type>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Eject/Uneject 对 App.tsx 的影响
|
|
32
|
+
|
|
33
|
+
### eject 前
|
|
34
|
+
|
|
35
|
+
```tsx
|
|
36
|
+
import { ModelManagementPage } from '@loom-framework/frontend-antd';
|
|
37
|
+
// ...
|
|
38
|
+
case 'model-management': return <ModelManagementPage />;
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### eject 后
|
|
42
|
+
|
|
43
|
+
```tsx
|
|
44
|
+
import ModelManagementPage from './components/pages/ModelManagement';
|
|
45
|
+
// ...
|
|
46
|
+
case 'model-management': return <ModelManagementPage />;
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
本地文件出现在 `frontend/src/components/pages/<PascalName>.tsx`。
|
|
50
|
+
|
|
51
|
+
### uneject 后
|
|
52
|
+
|
|
53
|
+
本地文件删除,import 恢复为 npm 路径。
|
|
54
|
+
|
|
55
|
+
## 定制化操作指南
|
|
56
|
+
|
|
57
|
+
### 修改页面布局或样式
|
|
58
|
+
|
|
59
|
+
1. 执行 `loom eject system-settings <type>`
|
|
60
|
+
2. 编辑 `frontend/src/components/pages/` 下的 .tsx 文件
|
|
61
|
+
3. 运行 `loom dev` 查看效果
|
|
62
|
+
|
|
63
|
+
### 使用框架子组件
|
|
64
|
+
|
|
65
|
+
eject 后的文件 import 来自 `@loom-framework/frontend-antd`,可直接使用框架子组件:
|
|
66
|
+
|
|
67
|
+
```tsx
|
|
68
|
+
import { ProcessTree, ProcessOverview, ProcessLogs, ProcessMetrics } from '@loom-framework/frontend-antd';
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
可用的 hook:`useData`, `useSchema`, `useLocale`, `useModels`, `useChartData`。
|
|
72
|
+
|
|
73
|
+
### 替换子组件
|
|
74
|
+
|
|
75
|
+
将 import 替换为自定义实现:
|
|
76
|
+
|
|
77
|
+
```tsx
|
|
78
|
+
// 替换前
|
|
79
|
+
import { ProcessTree } from '@loom-framework/frontend-antd';
|
|
80
|
+
// 替换后
|
|
81
|
+
import { MyCustomTree } from './MyCustomTree';
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### 添加自定义管理页面
|
|
85
|
+
|
|
86
|
+
内置的 6 种系统页面 type(model/skill/user/login/process/notification)由框架预定义,用户无法新增 type。如需框架未提供的管理页面,根据场景选择:
|
|
87
|
+
|
|
88
|
+
**数据驱动页面**(对应一个数据模型,需要增删改查)→ 在 `loom.config.ts` 中添加模型定义,然后 `loom generate page <Name> --model <model>` 生成 CRUD 页面 + API + 导航
|
|
89
|
+
|
|
90
|
+
**纯 UI 页面**(不对应数据模型,如审批流程、配置向导)→ 手动创建 `frontend/src/components/pages/MyPage.tsx`,然后在 App.tsx 中添加 import、导航项和路由
|
|
91
|
+
|
|
92
|
+
## 安全机制
|
|
93
|
+
|
|
94
|
+
- eject 时自动保存校验和到 `.loom/checksums/`
|
|
95
|
+
- uneject 时校验:未修改可直接删除,已修改需 `--force`
|
|
96
|
+
- 所有操作前自动备份到 `.loom/backup/`
|
|
97
|
+
|
|
98
|
+
## WiringMode 说明
|
|
99
|
+
|
|
100
|
+
- **sidebar-nav**: 添加到系统配置子菜单,有导航入口、switch case、breadcrumb
|
|
101
|
+
- **auth-fallback**: 作为 `<AuthGuard fallback={<Login />}>` 注入,无导航入口
|
|
102
|
+
- **skip-nav**: 无导航入口(通过其他 UI 触发),但有 switch case 和 breadcrumb
|
|
103
|
+
|
|
104
|
+
## 构建时模板生成
|
|
105
|
+
|
|
106
|
+
模板文件由 `pnpm build` 自动从 `frontend-antd/src/` 源码生成到 `templates/`。不需要手动运行 `pnpm generate-templates`(build 已自动调用)。
|
|
107
|
+
|
|
108
|
+
- import 路径自动从 relative 转换为 `@loom-framework/frontend-antd` barrel import
|
|
109
|
+
- `validateBarrelExports()` 自动校验模板中所有 import 在 `frontend-antd/src/index.ts` 中存在,缺失导出会导致构建失败
|
|
110
|
+
- `validateCompleteness()` 自动校验 `template-source-mappings.ts` 与 `SYSTEM_PAGE_CONFIG` 一致,不一致会报错退出
|
|
111
|
+
- 模板文件头部含版本号:`GENERATED by scripts/generate-templates.ts — v0.1.0-alpha.166 — DO NOT EDIT MANUALLY`
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: yuque-reader
|
|
3
|
+
description: "Read and extract content from Yuque (语雀) documents."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Yuque Reader
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Fetch content from Yuque documents via the internal SDL API. Returns document data including title, content, and metadata as JSON.
|
|
11
|
+
|
|
12
|
+
## Reading Documents
|
|
13
|
+
|
|
14
|
+
### Using the bundled script
|
|
15
|
+
|
|
16
|
+
Execute the fetch script for direct document retrieval:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
# Fetch and display document
|
|
20
|
+
python3 scripts/fetch_doc.py <yuque_url>
|
|
21
|
+
|
|
22
|
+
# Save to file
|
|
23
|
+
python3 scripts/fetch_doc.py <yuque_url> --output document.json
|
|
24
|
+
|
|
25
|
+
# Use token argument instead of environment variable
|
|
26
|
+
python3 scripts/fetch_doc.py <yuque_url> --token your_token_here
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Large content handling
|
|
30
|
+
|
|
31
|
+
When document content exceeds 20,000 characters, ALWAYS write the content to `/tmp/<sanitized_title>.txt` instead of displaying in the response. The filename should use a sanitized version of the document title (replace spaces with underscores, remove special characters).
|
|
32
|
+
|
|
33
|
+
When working with large saved files, use the Read tool with `offset` and `limit` parameters to read portions incrementally. This prevents flooding the context window and allows focused analysis of specific sections. Example: read first 100 lines to understand structure, then read relevant sections as needed.
|
|
34
|
+
|
|
35
|
+
## Authentication setup
|
|
36
|
+
|
|
37
|
+
See [references/config.md](references/config.md) for SDL_TOKEN configuration and API details.
|
|
38
|
+
|
|
39
|
+
## Resources
|
|
40
|
+
|
|
41
|
+
### scripts/fetch_doc.py
|
|
42
|
+
|
|
43
|
+
Python script for fetching Yuque documents directly. Can be executed standalone or called from within other scripts.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Yuque Reader Configuration
|
|
2
|
+
|
|
3
|
+
## Authentication
|
|
4
|
+
|
|
5
|
+
Requires `SDL_TOKEN` environment variable for API authentication. This token must be provisioned through the internal SDL platform.
|
|
6
|
+
|
|
7
|
+
API endpoint: `https://sdl.alipay.com/api/doc/getDocInfo.json`
|
|
8
|
+
|
|
9
|
+
### Setting SDL_TOKEN
|
|
10
|
+
|
|
11
|
+
Set token in environment (temporary, only for current session):
|
|
12
|
+
```bash
|
|
13
|
+
export SDL_TOKEN=your_token_here
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Set token permanently (recommended):
|
|
17
|
+
```bash
|
|
18
|
+
# For macOS/Linux with zsh (default on macOS):
|
|
19
|
+
echo 'export SDL_TOKEN=your_token_here' >> ~/.zshrc
|
|
20
|
+
source ~/.zshrc
|
|
21
|
+
|
|
22
|
+
# For macOS/Linux with bash:
|
|
23
|
+
echo 'export SDL_TOKEN=your_token_here' >> ~/.bash_profile
|
|
24
|
+
source ~/.bash_profile
|
|
25
|
+
|
|
26
|
+
# Or manually edit the shell config file and add:
|
|
27
|
+
# export SDL_TOKEN=your_token_here
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## API Request Format
|
|
31
|
+
|
|
32
|
+
```json
|
|
33
|
+
{
|
|
34
|
+
"url": "<yuque_document_url>",
|
|
35
|
+
"containContent": true,
|
|
36
|
+
"fromPlatform": "YUQUE"
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Response Format
|
|
41
|
+
|
|
42
|
+
```json
|
|
43
|
+
{
|
|
44
|
+
"success": true,
|
|
45
|
+
"data": {
|
|
46
|
+
"title": "Document Title",
|
|
47
|
+
"content": "Document content text...",
|
|
48
|
+
"url": "https://yuque.com/...",
|
|
49
|
+
"...": "additional metadata"
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
```
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Yuque Document Fetcher
|
|
4
|
+
|
|
5
|
+
Fetch Yuque document content via API. This script can be executed directly
|
|
6
|
+
and provides a simple interface for retrieving Yuque documents.
|
|
7
|
+
|
|
8
|
+
Usage:
|
|
9
|
+
python fetch_doc.py <yuque_url> --token <api_token>
|
|
10
|
+
|
|
11
|
+
Environment:
|
|
12
|
+
Set SDL_TOKEN environment variable or use --token argument.
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
import os
|
|
16
|
+
import sys
|
|
17
|
+
import json
|
|
18
|
+
import re
|
|
19
|
+
import random
|
|
20
|
+
import requests
|
|
21
|
+
from argparse import ArgumentParser
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def sanitize_filename(title: str) -> str:
|
|
25
|
+
"""Sanitize document title for use as filename.
|
|
26
|
+
|
|
27
|
+
Args:
|
|
28
|
+
title: Document title
|
|
29
|
+
|
|
30
|
+
Returns:
|
|
31
|
+
Sanitized filename (safe for filesystem)
|
|
32
|
+
"""
|
|
33
|
+
# Replace spaces with underscores, remove/special characters
|
|
34
|
+
sanitized = re.sub(r'[^\w\-_.]', '_', title)
|
|
35
|
+
sanitized = re.sub(r'_+', '_', sanitized).strip('_')
|
|
36
|
+
return sanitized if sanitized else 'document'
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def fetch_yuque_doc(url: str, token: str) -> dict:
|
|
40
|
+
"""Fetch Yuque document content.
|
|
41
|
+
|
|
42
|
+
Args:
|
|
43
|
+
url: Yuque document URL
|
|
44
|
+
token: API token for authentication
|
|
45
|
+
|
|
46
|
+
Returns:
|
|
47
|
+
Document data as dictionary
|
|
48
|
+
"""
|
|
49
|
+
headers = {
|
|
50
|
+
"Authorization": f"Bearer {token}",
|
|
51
|
+
"Content-Type": "application/json"
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
payload = {
|
|
55
|
+
"url": url,
|
|
56
|
+
"containContent": True,
|
|
57
|
+
"fromPlatform": "YUQUE"
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
# Note: This uses the internal SDL API endpoint
|
|
61
|
+
api_url = "https://sdl.alipay.com/api/doc/getDocInfo.json"
|
|
62
|
+
|
|
63
|
+
response = requests.post(api_url, headers=headers, json=payload)
|
|
64
|
+
response.raise_for_status()
|
|
65
|
+
|
|
66
|
+
data = response.json()
|
|
67
|
+
if data.get("success"):
|
|
68
|
+
return data.get("data", {})
|
|
69
|
+
else:
|
|
70
|
+
raise Exception(f"API error: {data.get('message', 'Unknown error')}")
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
def main():
|
|
74
|
+
parser = ArgumentParser(description="Fetch Yuque document content")
|
|
75
|
+
parser.add_argument("url", help="Yuque document URL")
|
|
76
|
+
parser.add_argument("--token", "-t", help="API token (default: SDL_TOKEN env var)")
|
|
77
|
+
parser.add_argument("--output", "-o", help="Output file path (default: stdout)")
|
|
78
|
+
|
|
79
|
+
args = parser.parse_args()
|
|
80
|
+
|
|
81
|
+
# Get token from argument or environment
|
|
82
|
+
token = args.token or os.getenv("SDL_TOKEN")
|
|
83
|
+
if not token:
|
|
84
|
+
print("Error: SDL_TOKEN environment variable or --token argument required", file=sys.stderr)
|
|
85
|
+
sys.exit(1)
|
|
86
|
+
|
|
87
|
+
try:
|
|
88
|
+
data = fetch_yuque_doc(args.url, token)
|
|
89
|
+
content = data.get("content", "")
|
|
90
|
+
title = data.get("title", "Document")
|
|
91
|
+
result = json.dumps(data, ensure_ascii=False, indent=2)
|
|
92
|
+
|
|
93
|
+
if args.output:
|
|
94
|
+
# User specified output - use it directly
|
|
95
|
+
with open(args.output, "w", encoding="utf-8") as f:
|
|
96
|
+
f.write(result)
|
|
97
|
+
print(f"Document saved to {args.output}")
|
|
98
|
+
elif len(content) > 20000:
|
|
99
|
+
# Large content: write only the content to /tmp
|
|
100
|
+
sanitized_title = sanitize_filename(title)
|
|
101
|
+
if title == "Document":
|
|
102
|
+
# Add random number when title is default fallback
|
|
103
|
+
sanitized_title = f"{sanitized_title}_{random.randint(1000, 9999)}"
|
|
104
|
+
output_path = f"/tmp/{sanitized_title}.txt"
|
|
105
|
+
with open(output_path, "w", encoding="utf-8") as f:
|
|
106
|
+
f.write(content)
|
|
107
|
+
print(f"Content too large ({len(content)} chars), saved to {output_path}")
|
|
108
|
+
# Print metadata without full content
|
|
109
|
+
metadata = {k: v for k, v in data.items() if k != "content"}
|
|
110
|
+
print(json.dumps(metadata, ensure_ascii=False, indent=2))
|
|
111
|
+
else:
|
|
112
|
+
# Normal output
|
|
113
|
+
print(result)
|
|
114
|
+
|
|
115
|
+
except Exception as e:
|
|
116
|
+
print(f"Error: {e}", file=sys.stderr)
|
|
117
|
+
sys.exit(1)
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
if __name__ == "__main__":
|
|
121
|
+
main()
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BaseAdapter - Shared logic for DataAdapter implementations
|
|
3
|
+
*
|
|
4
|
+
* Extracts common validation, ID generation, and schema management
|
|
5
|
+
* used by both FileSystemAdapter and SQLiteAdapter.
|
|
6
|
+
*/
|
|
7
|
+
import type { DataAdapter, DataRecord, ModelSchema, LoomConfig } from './types.js';
|
|
8
|
+
export declare abstract class BaseAdapter implements DataAdapter {
|
|
9
|
+
abstract readonly name: string;
|
|
10
|
+
protected schemas: Map<string, ModelSchema>;
|
|
11
|
+
protected config: LoomConfig;
|
|
12
|
+
constructor(config: LoomConfig);
|
|
13
|
+
abstract initialize(): Promise<void>;
|
|
14
|
+
abstract healthCheck(): Promise<boolean>;
|
|
15
|
+
abstract read(model: string, options?: import('./types.js').ReadOptions): Promise<DataRecord | DataRecord[] | null>;
|
|
16
|
+
abstract write(model: string, data: DataRecord): Promise<DataRecord>;
|
|
17
|
+
abstract update(model: string, id: string, data: DataRecord): Promise<DataRecord>;
|
|
18
|
+
abstract delete(model: string, id: string): Promise<void>;
|
|
19
|
+
/** Default count() — delegates to read(), overridden by adapters for efficiency */
|
|
20
|
+
count(model: string, options?: Omit<import('./types.js').ReadOptions, 'limit' | 'offset' | 'sort'>): Promise<number>;
|
|
21
|
+
getSchema(model: string): Promise<ModelSchema | undefined>;
|
|
22
|
+
listModels(): Promise<string[]>;
|
|
23
|
+
protected requireModel(model: string): void;
|
|
24
|
+
protected generateId(): string;
|
|
25
|
+
/**
|
|
26
|
+
* Validate required fields and apply defaults on a record.
|
|
27
|
+
* Returns the validated record with defaults applied.
|
|
28
|
+
*/
|
|
29
|
+
protected validateAndApplyDefaults(model: string, record: DataRecord, skipIdValidation?: boolean): DataRecord;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=adapter-base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter-base.d.ts","sourceRoot":"","sources":["../src/adapter-base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEnF,8BAAsB,WAAY,YAAW,WAAW;IACtD,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAa;IACxD,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC;gBAEjB,MAAM,EAAE,UAAU;IAO9B,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IACpC,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IACxC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,YAAY,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,GAAG,UAAU,EAAE,GAAG,IAAI,CAAC;IACnH,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACpE,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACjF,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAEzD,mFAAmF;IAC7E,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,YAAY,EAAE,WAAW,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAMpH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAI1D,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAMrC,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQ3C,SAAS,CAAC,UAAU,IAAI,MAAM;IAM9B;;;OAGG;IACH,SAAS,CAAC,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,UAAQ,GAAG,UAAU;CA2B5G"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BaseAdapter - Shared logic for DataAdapter implementations
|
|
3
|
+
*
|
|
4
|
+
* Extracts common validation, ID generation, and schema management
|
|
5
|
+
* used by both FileSystemAdapter and SQLiteAdapter.
|
|
6
|
+
*/
|
|
7
|
+
export class BaseAdapter {
|
|
8
|
+
schemas = new Map();
|
|
9
|
+
config;
|
|
10
|
+
constructor(config) {
|
|
11
|
+
this.config = config;
|
|
12
|
+
for (const model of config.data.models) {
|
|
13
|
+
this.schemas.set(model.name, model);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/** Default count() — delegates to read(), overridden by adapters for efficiency */
|
|
17
|
+
async count(model, options) {
|
|
18
|
+
const result = await this.read(model, { filter: options?.filter, id: options?.id });
|
|
19
|
+
if (Array.isArray(result))
|
|
20
|
+
return result.length;
|
|
21
|
+
return result ? 1 : 0;
|
|
22
|
+
}
|
|
23
|
+
async getSchema(model) {
|
|
24
|
+
return this.schemas.get(model);
|
|
25
|
+
}
|
|
26
|
+
async listModels() {
|
|
27
|
+
return Array.from(this.schemas.keys());
|
|
28
|
+
}
|
|
29
|
+
// ── Shared Helpers ──
|
|
30
|
+
requireModel(model) {
|
|
31
|
+
if (!this.schemas.has(model)) {
|
|
32
|
+
throw new Error(`Unknown model: ${model}. Available: ${Array.from(this.schemas.keys()).join(', ')}`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
generateId() {
|
|
36
|
+
const timestamp = Date.now().toString(36);
|
|
37
|
+
const random = Math.random().toString(36).substring(2, 10);
|
|
38
|
+
return `rec_${timestamp}_${random}`;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Validate required fields and apply defaults on a record.
|
|
42
|
+
* Returns the validated record with defaults applied.
|
|
43
|
+
*/
|
|
44
|
+
validateAndApplyDefaults(model, record, skipIdValidation = false) {
|
|
45
|
+
const schema = this.schemas.get(model);
|
|
46
|
+
// Apply default values for missing fields
|
|
47
|
+
for (const field of schema.fields) {
|
|
48
|
+
if (record[field.name] === undefined && field.default !== undefined) {
|
|
49
|
+
record[field.name] = field.default;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
// Validate required fields
|
|
53
|
+
for (const field of schema.fields) {
|
|
54
|
+
if (skipIdValidation && field.name === 'id')
|
|
55
|
+
continue;
|
|
56
|
+
if (field.required && record[field.name] === undefined) {
|
|
57
|
+
throw new Error(`Missing required field: ${field.name}`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// Validate enum constraints
|
|
61
|
+
for (const field of schema.fields) {
|
|
62
|
+
if (field.enum && record[field.name] !== undefined && !field.enum.includes(record[field.name])) {
|
|
63
|
+
throw new Error(`Invalid value for field '${field.name}': ${record[field.name]}. Allowed values: ${field.enum.join(', ')}`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return record;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=adapter-base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter-base.js","sourceRoot":"","sources":["../src/adapter-base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,OAAgB,WAAW;IAErB,OAAO,GAA6B,IAAI,GAAG,EAAE,CAAC;IAC9C,MAAM,CAAa;IAE7B,YAAY,MAAkB;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACvC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IASD,mFAAmF;IACnF,KAAK,CAAC,KAAK,CAAC,KAAa,EAAE,OAA6E;QACtG,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QACpF,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC,MAAM,CAAC;QAChD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAa;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,uBAAuB;IAEb,YAAY,CAAC,KAAa;QAClC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,kBAAkB,KAAK,gBAAgB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACpF,CAAC;QACJ,CAAC;IACH,CAAC;IAES,UAAU;QAClB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3D,OAAO,OAAO,SAAS,IAAI,MAAM,EAAE,CAAC;IACtC,CAAC;IAED;;;OAGG;IACO,wBAAwB,CAAC,KAAa,EAAE,MAAkB,EAAE,gBAAgB,GAAG,KAAK;QAC5F,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;QAExC,0CAA0C;QAC1C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBACpE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;YACrC,CAAC;QACH,CAAC;QAED,2BAA2B;QAC3B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,IAAI,gBAAgB,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI;gBAAE,SAAS;YACtD,IAAI,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBACvD,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,IAAI,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAW,CAAC,EAAE,CAAC;gBACzG,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,CAAC,IAAI,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9H,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adapter Factory
|
|
3
|
+
*
|
|
4
|
+
* Creates the appropriate DataAdapter based on LoomConfig.data.defaultAdapter.
|
|
5
|
+
*/
|
|
6
|
+
import type { LoomConfig, DataAdapter } from './types.js';
|
|
7
|
+
export declare function createAdapter(config: LoomConfig, projectRoot: string): DataAdapter;
|
|
8
|
+
//# sourceMappingURL=adapter-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter-factory.d.ts","sourceRoot":"","sources":["../src/adapter-factory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE1D,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,WAAW,CAgBlF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adapter Factory
|
|
3
|
+
*
|
|
4
|
+
* Creates the appropriate DataAdapter based on LoomConfig.data.defaultAdapter.
|
|
5
|
+
*/
|
|
6
|
+
import path from 'path';
|
|
7
|
+
import { FileSystemAdapter } from './adapter-filesystem.js';
|
|
8
|
+
import { SQLiteAdapter } from './adapter-sqlite.js';
|
|
9
|
+
export function createAdapter(config, projectRoot) {
|
|
10
|
+
const adapterType = config.data.defaultAdapter || 'filesystem';
|
|
11
|
+
switch (adapterType) {
|
|
12
|
+
case 'sqlite':
|
|
13
|
+
return new SQLiteAdapter({
|
|
14
|
+
dbPath: path.join(projectRoot, 'data', config.data.sqlite?.filename ?? 'loom.db'),
|
|
15
|
+
config,
|
|
16
|
+
});
|
|
17
|
+
case 'filesystem':
|
|
18
|
+
default:
|
|
19
|
+
return new FileSystemAdapter({
|
|
20
|
+
dataDir: path.join(projectRoot, 'data'),
|
|
21
|
+
config,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=adapter-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter-factory.js","sourceRoot":"","sources":["../src/adapter-factory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,MAAM,UAAU,aAAa,CAAC,MAAkB,EAAE,WAAmB;IACnE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,IAAI,YAAY,CAAC;IAE/D,QAAQ,WAAW,EAAE,CAAC;QACpB,KAAK,QAAQ;YACX,OAAO,IAAI,aAAa,CAAC;gBACvB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,IAAI,SAAS,CAAC;gBACjF,MAAM;aACP,CAAC,CAAC;QACL,KAAK,YAAY,CAAC;QAClB;YACE,OAAO,IAAI,iBAAiB,CAAC;gBAC3B,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC;gBACvC,MAAM;aACP,CAAC,CAAC;IACP,CAAC;AACH,CAAC"}
|
|
@@ -3,30 +3,44 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Stores data as JSON files, organized by model.
|
|
5
5
|
* Default adapter for development and small deployments.
|
|
6
|
+
* Supports date-pattern sub-directories (e.g. 'YYYY-MM') for time-partitioned data.
|
|
6
7
|
*/
|
|
7
|
-
import type {
|
|
8
|
+
import type { DataRecord, ReadOptions, LoomConfig } from './types.js';
|
|
9
|
+
import { BaseAdapter } from './adapter-base.js';
|
|
8
10
|
export interface FileSystemAdapterOptions {
|
|
9
11
|
dataDir: string;
|
|
10
12
|
config: LoomConfig;
|
|
11
13
|
}
|
|
12
|
-
export declare class FileSystemAdapter
|
|
14
|
+
export declare class FileSystemAdapter extends BaseAdapter {
|
|
13
15
|
readonly name = "filesystem";
|
|
14
16
|
private dataDir;
|
|
15
|
-
private config;
|
|
16
|
-
private schemas;
|
|
17
17
|
constructor(options: FileSystemAdapterOptions);
|
|
18
18
|
initialize(): Promise<void>;
|
|
19
19
|
healthCheck(): Promise<boolean>;
|
|
20
|
-
read(model: string, options?: ReadOptions): Promise<
|
|
21
|
-
write(model: string, data:
|
|
22
|
-
update(model: string, id: string, data:
|
|
20
|
+
read(model: string, options?: ReadOptions): Promise<DataRecord | DataRecord[] | null>;
|
|
21
|
+
write(model: string, data: DataRecord): Promise<DataRecord>;
|
|
22
|
+
update(model: string, id: string, data: DataRecord): Promise<DataRecord>;
|
|
23
23
|
delete(model: string, id: string): Promise<void>;
|
|
24
|
-
|
|
25
|
-
listModels(): Promise<string[]>;
|
|
26
|
-
private requireModel;
|
|
24
|
+
count(model: string, options?: Omit<ReadOptions, 'limit' | 'offset' | 'sort'>): Promise<number>;
|
|
27
25
|
private getModelDir;
|
|
26
|
+
/** Get datePattern for a model, if configured */
|
|
27
|
+
private getDatePattern;
|
|
28
|
+
/**
|
|
29
|
+
* Get record file path.
|
|
30
|
+
* When datePattern is set, records are stored in date-partitioned sub-directories.
|
|
31
|
+
* The date is derived from the first date field in the record data.
|
|
32
|
+
*/
|
|
28
33
|
private getRecordPath;
|
|
34
|
+
/**
|
|
35
|
+
* Find a record's actual file path by searching date-partitioned sub-directories.
|
|
36
|
+
* Returns null if not found.
|
|
37
|
+
*/
|
|
38
|
+
private findRecordPath;
|
|
39
|
+
/**
|
|
40
|
+
* Collect all .json file paths from a directory.
|
|
41
|
+
* When recursive is true, also scans immediate sub-directories (for date-partitioned data).
|
|
42
|
+
*/
|
|
43
|
+
private collectJsonFiles;
|
|
29
44
|
private matchesFilter;
|
|
30
|
-
private generateId;
|
|
31
45
|
}
|
|
32
46
|
//# sourceMappingURL=adapter-filesystem.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter-filesystem.d.ts","sourceRoot":"","sources":["../src/adapter-filesystem.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"adapter-filesystem.d.ts","sourceRoot":"","sources":["../src/adapter-filesystem.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAsBhD,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,qBAAa,iBAAkB,SAAQ,WAAW;IAChD,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE,wBAAwB;IAKvC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAU3B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAS/B,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,GAAG,UAAU,EAAE,GAAG,IAAI,CAAC;IAmErF,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAc3D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAsBxE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAchD,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAyCrG,OAAO,CAAC,WAAW;IAOnB,iDAAiD;IACjD,OAAO,CAAC,cAAc;IAKtB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAsBrB;;;OAGG;YACW,cAAc;IAiC5B;;;OAGG;YACW,gBAAgB;IA6B9B,OAAO,CAAC,aAAa;CAoBtB"}
|