@loom-framework/core 0.1.0-alpha.18 → 0.1.0-alpha.181

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (810) hide show
  1. package/builtin-skills/antd/SKILL.md +266 -0
  2. package/builtin-skills/antv-g2-chart/SKILL.md +1067 -0
  3. package/builtin-skills/antv-g2-chart/references/animations/g2-animation-intro.md +176 -0
  4. package/builtin-skills/antv-g2-chart/references/animations/g2-animation-keyframe.md +149 -0
  5. package/builtin-skills/antv-g2-chart/references/animations/g2-animation-types.md +253 -0
  6. package/builtin-skills/antv-g2-chart/references/components/g2-comp-annotation.md +237 -0
  7. package/builtin-skills/antv-g2-chart/references/components/g2-comp-axis-config.md +648 -0
  8. package/builtin-skills/antv-g2-chart/references/components/g2-comp-axis-radar.md +219 -0
  9. package/builtin-skills/antv-g2-chart/references/components/g2-comp-label-config.md +174 -0
  10. package/builtin-skills/antv-g2-chart/references/components/g2-comp-legend-category.md +278 -0
  11. package/builtin-skills/antv-g2-chart/references/components/g2-comp-legend-config.md +363 -0
  12. package/builtin-skills/antv-g2-chart/references/components/g2-comp-legend-continuous.md +264 -0
  13. package/builtin-skills/antv-g2-chart/references/components/g2-comp-scrollbar.md +276 -0
  14. package/builtin-skills/antv-g2-chart/references/components/g2-comp-slider.md +333 -0
  15. package/builtin-skills/antv-g2-chart/references/components/g2-comp-title.md +149 -0
  16. package/builtin-skills/antv-g2-chart/references/components/g2-comp-tooltip-config.md +358 -0
  17. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-facet-circle.md +97 -0
  18. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-facet-rect.md +241 -0
  19. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-geo-map.md +210 -0
  20. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-geoview.md +143 -0
  21. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-repeat-matrix.md +171 -0
  22. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-space-flex.md +142 -0
  23. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-space-layer.md +149 -0
  24. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-timing-keyframe.md +91 -0
  25. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-view.md +309 -0
  26. package/builtin-skills/antv-g2-chart/references/concepts/g2-concept-chart-selection.md +235 -0
  27. package/builtin-skills/antv-g2-chart/references/concepts/g2-concept-color-theory.md +287 -0
  28. package/builtin-skills/antv-g2-chart/references/concepts/g2-concept-visual-channels.md +180 -0
  29. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-cartesian.md +131 -0
  30. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-fisheye.md +131 -0
  31. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-helix.md +141 -0
  32. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-parallel.md +129 -0
  33. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-polar.md +143 -0
  34. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-radial.md +214 -0
  35. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-theta.md +171 -0
  36. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-transpose.md +195 -0
  37. package/builtin-skills/antv-g2-chart/references/core/g2-core-chart-init.md +266 -0
  38. package/builtin-skills/antv-g2-chart/references/core/g2-core-encode-channel.md +197 -0
  39. package/builtin-skills/antv-g2-chart/references/core/g2-core-view-composition.md +224 -0
  40. package/builtin-skills/antv-g2-chart/references/data/g2-data-ema.md +190 -0
  41. package/builtin-skills/antv-g2-chart/references/data/g2-data-fetch.md +167 -0
  42. package/builtin-skills/antv-g2-chart/references/data/g2-data-filter.md +212 -0
  43. package/builtin-skills/antv-g2-chart/references/data/g2-data-fold.md +260 -0
  44. package/builtin-skills/antv-g2-chart/references/data/g2-data-format-tabular.md +280 -0
  45. package/builtin-skills/antv-g2-chart/references/data/g2-data-kde.md +426 -0
  46. package/builtin-skills/antv-g2-chart/references/data/g2-data-log.md +140 -0
  47. package/builtin-skills/antv-g2-chart/references/data/g2-data-slice.md +147 -0
  48. package/builtin-skills/antv-g2-chart/references/data/g2-data-sort.md +251 -0
  49. package/builtin-skills/antv-g2-chart/references/data/g2-data-sortby.md +183 -0
  50. package/builtin-skills/antv-g2-chart/references/data/g2-data-transform-patterns.md +394 -0
  51. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-adaptive-filter.md +118 -0
  52. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush-axis.md +112 -0
  53. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush-filter.md +122 -0
  54. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush-x-y-highlight.md +127 -0
  55. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush-xy.md +118 -0
  56. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush.md +184 -0
  57. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brushx-filter.md +170 -0
  58. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brushx-highlight.md +186 -0
  59. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brushy-filter.md +170 -0
  60. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brushy-highlight.md +185 -0
  61. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-chart-index.md +127 -0
  62. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-drilldown.md +149 -0
  63. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-highlight-by.md +125 -0
  64. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-highlight.md +235 -0
  65. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-hover-scale.md +109 -0
  66. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-point-move.md +152 -0
  67. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-select-by.md +133 -0
  68. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-select.md +249 -0
  69. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-fisheye.md +117 -0
  70. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-legend-filter.md +130 -0
  71. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-legend-highlight.md +130 -0
  72. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-poptip.md +105 -0
  73. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-scrollbar-filter.md +144 -0
  74. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-slider-filter.md +231 -0
  75. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-slider-wheel.md +138 -0
  76. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-tooltip.md +192 -0
  77. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-treemap-drilldown.md +152 -0
  78. package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-contrast-reverse.md +170 -0
  79. package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-exceed-adjust.md +146 -0
  80. package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-overflow-hide.md +185 -0
  81. package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-overflow-stroke.md +147 -0
  82. package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-overlap-dodge-y.md +225 -0
  83. package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-overlap-hide.md +213 -0
  84. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-arc-diagram.md +196 -0
  85. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-arc-donut.md +148 -0
  86. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-arc-pie.md +212 -0
  87. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-area-basic.md +168 -0
  88. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-area-stacked.md +150 -0
  89. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-beeswarm.md +134 -0
  90. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-bi-directional-bar.md +297 -0
  91. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-box-boxplot.md +163 -0
  92. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-boxplot.md +340 -0
  93. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-bullet.md +203 -0
  94. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-cell-heatmap.md +370 -0
  95. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-chord.md +341 -0
  96. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-connector.md +126 -0
  97. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-contourline.md +243 -0
  98. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-density.md +457 -0
  99. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-distribution-curve.md +298 -0
  100. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-funnel.md +329 -0
  101. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-gantt.md +208 -0
  102. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-gauge.md +247 -0
  103. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-heatmap.md +130 -0
  104. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-histogram.md +186 -0
  105. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-image.md +129 -0
  106. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-interval-basic.md +528 -0
  107. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-interval-grouped.md +161 -0
  108. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-interval-normalized.md +147 -0
  109. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-interval-stacked.md +183 -0
  110. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-k-chart.md +237 -0
  111. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-line-basic.md +353 -0
  112. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-line-multi.md +156 -0
  113. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-linex-liney.md +176 -0
  114. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-link.md +134 -0
  115. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-liquid.md +125 -0
  116. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-mosaic.md +257 -0
  117. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-pack.md +424 -0
  118. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-parallel.md +195 -0
  119. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-partition.md +275 -0
  120. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-path.md +135 -0
  121. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-point-bubble.md +138 -0
  122. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-point-scatter.md +177 -0
  123. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-polygon.md +130 -0
  124. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-radar.md +231 -0
  125. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-radial-bar.md +226 -0
  126. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-range-rangey.md +253 -0
  127. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-rangex.md +293 -0
  128. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-rect.md +115 -0
  129. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-regression-curve.md +276 -0
  130. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-rose.md +182 -0
  131. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-sankey.md +217 -0
  132. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-shape.md +160 -0
  133. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-spiral.md +257 -0
  134. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-sunburst.md +327 -0
  135. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-text.md +309 -0
  136. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-tree.md +235 -0
  137. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-treemap.md +426 -0
  138. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-vector.md +108 -0
  139. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-venn.md +204 -0
  140. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-violin.md +307 -0
  141. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-wordcloud.md +155 -0
  142. package/builtin-skills/antv-g2-chart/references/palette/g2-palette-category10.md +196 -0
  143. package/builtin-skills/antv-g2-chart/references/palette/g2-palette-category20.md +238 -0
  144. package/builtin-skills/antv-g2-chart/references/patterns/g2-pattern-performance.md +181 -0
  145. package/builtin-skills/antv-g2-chart/references/patterns/g2-pattern-responsive.md +232 -0
  146. package/builtin-skills/antv-g2-chart/references/patterns/g2-pattern-v4-to-v5.md +223 -0
  147. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-band.md +127 -0
  148. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-linear.md +259 -0
  149. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-log.md +226 -0
  150. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-ordinal.md +135 -0
  151. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-point.md +242 -0
  152. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-pow-sqrt.md +124 -0
  153. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-quantile-quantize.md +119 -0
  154. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-sequential.md +267 -0
  155. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-threshold.md +133 -0
  156. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-time.md +159 -0
  157. package/builtin-skills/antv-g2-chart/references/themes/g2-theme-builtin.md +192 -0
  158. package/builtin-skills/antv-g2-chart/references/themes/g2-theme-custom.md +183 -0
  159. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-bin.md +153 -0
  160. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-binx.md +133 -0
  161. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-diffy.md +130 -0
  162. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-dodgex.md +90 -0
  163. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-flexx.md +115 -0
  164. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-group.md +233 -0
  165. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-groupcolor.md +182 -0
  166. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-groupx.md +265 -0
  167. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-groupy.md +167 -0
  168. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-jitter.md +149 -0
  169. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-jitterx.md +177 -0
  170. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-jittery.md +177 -0
  171. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-normalizey.md +83 -0
  172. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-pack.md +164 -0
  173. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-sample.md +143 -0
  174. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-select.md +147 -0
  175. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-selectx.md +179 -0
  176. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-selecty.md +179 -0
  177. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-sort-color.md +115 -0
  178. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-sortx.md +285 -0
  179. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-sorty.md +117 -0
  180. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-stack-enter.md +158 -0
  181. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-stacky.md +218 -0
  182. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-symmetryy.md +122 -0
  183. package/builtin-skills/app-skill/SKILL.md +47 -0
  184. package/builtin-skills/app-skill/references/auth.md +180 -0
  185. package/builtin-skills/app-skill/references/data-semantics.md +44 -0
  186. package/builtin-skills/app-skill/references/events.md +337 -0
  187. package/builtin-skills/app-skill/references/evolution.md +90 -0
  188. package/builtin-skills/app-skill/references/model.md +124 -0
  189. package/builtin-skills/app-skill/references/models.md +45 -0
  190. package/builtin-skills/app-skill/references/notification.md +123 -0
  191. package/builtin-skills/app-skill/references/process-builder.md +420 -0
  192. package/builtin-skills/app-skill/references/process.md +447 -0
  193. package/builtin-skills/chart-visualization/SKILL.md +101 -0
  194. package/builtin-skills/loom/SKILL.md +308 -0
  195. package/builtin-skills/loom/references/README.md +285 -0
  196. package/builtin-skills/loom/references/dashboard.md +259 -0
  197. package/builtin-skills/loom/references/data-model.md +306 -0
  198. package/builtin-skills/loom/references/eject.md +111 -0
  199. package/builtin-skills/yuque-reader/SKILL.md +43 -0
  200. package/builtin-skills/yuque-reader/references/config.md +52 -0
  201. package/builtin-skills/yuque-reader/scripts/fetch_doc.py +121 -0
  202. package/dist/adapter-base.d.ts +31 -0
  203. package/dist/adapter-base.d.ts.map +1 -0
  204. package/dist/adapter-base.js +69 -0
  205. package/dist/adapter-base.js.map +1 -0
  206. package/dist/adapter-factory.d.ts +8 -0
  207. package/dist/adapter-factory.d.ts.map +1 -0
  208. package/dist/adapter-factory.js +25 -0
  209. package/dist/adapter-factory.js.map +1 -0
  210. package/dist/adapter-filesystem.d.ts +25 -11
  211. package/dist/adapter-filesystem.d.ts.map +1 -1
  212. package/dist/adapter-filesystem.js +230 -52
  213. package/dist/adapter-filesystem.js.map +1 -1
  214. package/dist/adapter-sqlite.d.ts +9 -23
  215. package/dist/adapter-sqlite.d.ts.map +1 -1
  216. package/dist/adapter-sqlite.js +94 -55
  217. package/dist/adapter-sqlite.js.map +1 -1
  218. package/dist/adapters/base.d.ts +31 -0
  219. package/dist/adapters/base.d.ts.map +1 -0
  220. package/dist/adapters/base.js +69 -0
  221. package/dist/adapters/base.js.map +1 -0
  222. package/dist/adapters/factory.d.ts +8 -0
  223. package/dist/adapters/factory.d.ts.map +1 -0
  224. package/dist/adapters/factory.js +25 -0
  225. package/dist/adapters/factory.js.map +1 -0
  226. package/dist/adapters/filesystem.d.ts +46 -0
  227. package/dist/adapters/filesystem.d.ts.map +1 -0
  228. package/dist/adapters/filesystem.js +321 -0
  229. package/dist/adapters/filesystem.js.map +1 -0
  230. package/dist/adapters/index.d.ts +10 -0
  231. package/dist/adapters/index.d.ts.map +1 -0
  232. package/dist/adapters/index.js +8 -0
  233. package/dist/adapters/index.js.map +1 -0
  234. package/dist/adapters/sqlite.d.ts +37 -0
  235. package/dist/adapters/sqlite.d.ts.map +1 -0
  236. package/dist/adapters/sqlite.js +264 -0
  237. package/dist/adapters/sqlite.js.map +1 -0
  238. package/dist/backend/ai/button-resolver.d.ts +18 -0
  239. package/dist/backend/ai/button-resolver.d.ts.map +1 -0
  240. package/dist/backend/ai/button-resolver.js +58 -0
  241. package/dist/backend/ai/button-resolver.js.map +1 -0
  242. package/dist/backend/ai/content-blocks.d.ts +18 -0
  243. package/dist/backend/ai/content-blocks.d.ts.map +1 -0
  244. package/dist/backend/ai/content-blocks.js +66 -0
  245. package/dist/backend/ai/content-blocks.js.map +1 -0
  246. package/dist/backend/ai/engine.d.ts +65 -0
  247. package/dist/backend/ai/engine.d.ts.map +1 -0
  248. package/dist/backend/ai/engine.js +238 -0
  249. package/dist/backend/ai/engine.js.map +1 -0
  250. package/dist/backend/ai/index.d.ts +11 -0
  251. package/dist/backend/ai/index.d.ts.map +1 -0
  252. package/dist/backend/ai/index.js +8 -0
  253. package/dist/backend/ai/index.js.map +1 -0
  254. package/dist/backend/ai/output-parser.d.ts +36 -0
  255. package/dist/backend/ai/output-parser.d.ts.map +1 -0
  256. package/dist/backend/ai/output-parser.js +264 -0
  257. package/dist/backend/ai/output-parser.js.map +1 -0
  258. package/dist/backend/ai/session-manager.d.ts +106 -0
  259. package/dist/backend/ai/session-manager.d.ts.map +1 -0
  260. package/dist/backend/ai/session-manager.js +304 -0
  261. package/dist/backend/ai/session-manager.js.map +1 -0
  262. package/dist/backend/auth/jwt.d.ts +16 -0
  263. package/dist/backend/auth/jwt.d.ts.map +1 -0
  264. package/dist/backend/auth/jwt.js +57 -0
  265. package/dist/backend/auth/jwt.js.map +1 -0
  266. package/dist/backend/auth/password.d.ts +10 -0
  267. package/dist/backend/auth/password.d.ts.map +1 -0
  268. package/dist/backend/auth/password.js +19 -0
  269. package/dist/backend/auth/password.js.map +1 -0
  270. package/dist/backend/auth/rbac.d.ts +36 -0
  271. package/dist/backend/auth/rbac.d.ts.map +1 -0
  272. package/dist/backend/auth/rbac.js +130 -0
  273. package/dist/backend/auth/rbac.js.map +1 -0
  274. package/dist/backend/auth/request-context.d.ts +15 -0
  275. package/dist/backend/auth/request-context.d.ts.map +1 -0
  276. package/dist/backend/auth/request-context.js +17 -0
  277. package/dist/backend/auth/request-context.js.map +1 -0
  278. package/dist/backend/auth/service-token.d.ts +11 -0
  279. package/dist/backend/auth/service-token.d.ts.map +1 -0
  280. package/dist/backend/auth/service-token.js +13 -0
  281. package/dist/backend/auth/service-token.js.map +1 -0
  282. package/dist/backend/auth/token-store.d.ts +28 -0
  283. package/dist/backend/auth/token-store.d.ts.map +1 -0
  284. package/dist/backend/auth/token-store.js +84 -0
  285. package/dist/backend/auth/token-store.js.map +1 -0
  286. package/dist/backend/auth/user-store.d.ts +42 -0
  287. package/dist/backend/auth/user-store.d.ts.map +1 -0
  288. package/dist/backend/auth/user-store.js +112 -0
  289. package/dist/backend/auth/user-store.js.map +1 -0
  290. package/dist/backend/events/event-bus.d.ts +39 -0
  291. package/dist/backend/events/event-bus.d.ts.map +1 -0
  292. package/dist/backend/events/event-bus.js +182 -0
  293. package/dist/backend/events/event-bus.js.map +1 -0
  294. package/dist/backend/events/event-emitting-adapter.d.ts +31 -0
  295. package/dist/backend/events/event-emitting-adapter.d.ts.map +1 -0
  296. package/dist/backend/events/event-emitting-adapter.js +70 -0
  297. package/dist/backend/events/event-emitting-adapter.js.map +1 -0
  298. package/dist/backend/events/event-registry.d.ts +24 -0
  299. package/dist/backend/events/event-registry.d.ts.map +1 -0
  300. package/dist/backend/events/event-registry.js +22 -0
  301. package/dist/backend/events/event-registry.js.map +1 -0
  302. package/dist/backend/events/index.d.ts +7 -0
  303. package/dist/backend/events/index.d.ts.map +1 -0
  304. package/dist/backend/events/index.js +7 -0
  305. package/dist/backend/events/index.js.map +1 -0
  306. package/dist/backend/events/subscription-service.d.ts +46 -0
  307. package/dist/backend/events/subscription-service.d.ts.map +1 -0
  308. package/dist/backend/events/subscription-service.js +209 -0
  309. package/dist/backend/events/subscription-service.js.map +1 -0
  310. package/dist/backend/index.d.ts +93 -0
  311. package/dist/backend/index.d.ts.map +1 -0
  312. package/dist/backend/index.js +474 -0
  313. package/dist/backend/index.js.map +1 -0
  314. package/dist/backend/lifecycle/index.d.ts +2 -0
  315. package/dist/backend/lifecycle/index.d.ts.map +1 -0
  316. package/dist/backend/lifecycle/index.js +2 -0
  317. package/dist/backend/lifecycle/index.js.map +1 -0
  318. package/dist/backend/lifecycle/manager.d.ts +69 -0
  319. package/dist/backend/lifecycle/manager.d.ts.map +1 -0
  320. package/dist/backend/lifecycle/manager.js +612 -0
  321. package/dist/backend/lifecycle/manager.js.map +1 -0
  322. package/dist/backend/loom-paths.d.ts +30 -0
  323. package/dist/backend/loom-paths.d.ts.map +1 -0
  324. package/dist/backend/loom-paths.js +49 -0
  325. package/dist/backend/loom-paths.js.map +1 -0
  326. package/dist/backend/notifications/interpolate.d.ts +6 -0
  327. package/dist/backend/notifications/interpolate.d.ts.map +1 -0
  328. package/dist/backend/notifications/interpolate.js +11 -0
  329. package/dist/backend/notifications/interpolate.js.map +1 -0
  330. package/dist/backend/notifications/notification-storage.d.ts +27 -0
  331. package/dist/backend/notifications/notification-storage.d.ts.map +1 -0
  332. package/dist/backend/notifications/notification-storage.js +160 -0
  333. package/dist/backend/notifications/notification-storage.js.map +1 -0
  334. package/dist/backend/observe/index.d.ts +6 -0
  335. package/dist/backend/observe/index.d.ts.map +1 -0
  336. package/dist/backend/observe/index.js +5 -0
  337. package/dist/backend/observe/index.js.map +1 -0
  338. package/dist/backend/observe/logger.d.ts +26 -0
  339. package/dist/backend/observe/logger.d.ts.map +1 -0
  340. package/dist/backend/observe/logger.js +68 -0
  341. package/dist/backend/observe/logger.js.map +1 -0
  342. package/dist/backend/observe/types.d.ts +26 -0
  343. package/dist/backend/observe/types.d.ts.map +1 -0
  344. package/dist/backend/observe/types.js +7 -0
  345. package/dist/backend/observe/types.js.map +1 -0
  346. package/dist/backend/process/engine.d.ts +127 -0
  347. package/dist/backend/process/engine.d.ts.map +1 -0
  348. package/dist/backend/process/engine.js +662 -0
  349. package/dist/backend/process/engine.js.map +1 -0
  350. package/dist/backend/process/index.d.ts +7 -0
  351. package/dist/backend/process/index.d.ts.map +1 -0
  352. package/dist/backend/process/index.js +6 -0
  353. package/dist/backend/process/index.js.map +1 -0
  354. package/dist/backend/process/logger.d.ts +38 -0
  355. package/dist/backend/process/logger.d.ts.map +1 -0
  356. package/dist/backend/process/logger.js +198 -0
  357. package/dist/backend/process/logger.js.map +1 -0
  358. package/dist/backend/process/metrics-store.d.ts +32 -0
  359. package/dist/backend/process/metrics-store.d.ts.map +1 -0
  360. package/dist/backend/process/metrics-store.js +108 -0
  361. package/dist/backend/process/metrics-store.js.map +1 -0
  362. package/dist/backend/process/migrate.d.ts +12 -0
  363. package/dist/backend/process/migrate.d.ts.map +1 -0
  364. package/dist/backend/process/migrate.js +145 -0
  365. package/dist/backend/process/migrate.js.map +1 -0
  366. package/dist/backend/process/queue.d.ts +33 -0
  367. package/dist/backend/process/queue.d.ts.map +1 -0
  368. package/dist/backend/process/queue.js +94 -0
  369. package/dist/backend/process/queue.js.map +1 -0
  370. package/dist/backend/process/registry.d.ts +64 -0
  371. package/dist/backend/process/registry.d.ts.map +1 -0
  372. package/dist/backend/process/registry.js +273 -0
  373. package/dist/backend/process/registry.js.map +1 -0
  374. package/dist/backend/process/trigger.d.ts +39 -0
  375. package/dist/backend/process/trigger.d.ts.map +1 -0
  376. package/dist/backend/process/trigger.js +162 -0
  377. package/dist/backend/process/trigger.js.map +1 -0
  378. package/dist/backend/routes/ai-config.d.ts +18 -0
  379. package/dist/backend/routes/ai-config.d.ts.map +1 -0
  380. package/dist/backend/routes/ai-config.js +227 -0
  381. package/dist/backend/routes/ai-config.js.map +1 -0
  382. package/dist/backend/routes/auth-routes.d.ts +33 -0
  383. package/dist/backend/routes/auth-routes.d.ts.map +1 -0
  384. package/dist/backend/routes/auth-routes.js +528 -0
  385. package/dist/backend/routes/auth-routes.js.map +1 -0
  386. package/dist/backend/routes/chat-sse.d.ts +17 -0
  387. package/dist/backend/routes/chat-sse.d.ts.map +1 -0
  388. package/dist/backend/routes/chat-sse.js +60 -0
  389. package/dist/backend/routes/chat-sse.js.map +1 -0
  390. package/dist/backend/routes/chat.d.ts +30 -0
  391. package/dist/backend/routes/chat.d.ts.map +1 -0
  392. package/dist/backend/routes/chat.js +258 -0
  393. package/dist/backend/routes/chat.js.map +1 -0
  394. package/dist/backend/routes/config-writer.d.ts +94 -0
  395. package/dist/backend/routes/config-writer.d.ts.map +1 -0
  396. package/dist/backend/routes/config-writer.js +522 -0
  397. package/dist/backend/routes/config-writer.js.map +1 -0
  398. package/dist/backend/routes/data.d.ts +16 -0
  399. package/dist/backend/routes/data.d.ts.map +1 -0
  400. package/dist/backend/routes/data.js +371 -0
  401. package/dist/backend/routes/data.js.map +1 -0
  402. package/dist/backend/routes/event-routes.d.ts +22 -0
  403. package/dist/backend/routes/event-routes.d.ts.map +1 -0
  404. package/dist/backend/routes/event-routes.js +129 -0
  405. package/dist/backend/routes/event-routes.js.map +1 -0
  406. package/dist/backend/routes/health.d.ts +7 -0
  407. package/dist/backend/routes/health.d.ts.map +1 -0
  408. package/dist/backend/routes/health.js +15 -0
  409. package/dist/backend/routes/health.js.map +1 -0
  410. package/dist/backend/routes/index.d.ts +24 -0
  411. package/dist/backend/routes/index.d.ts.map +1 -0
  412. package/dist/backend/routes/index.js +16 -0
  413. package/dist/backend/routes/index.js.map +1 -0
  414. package/dist/backend/routes/lifecycle-routes.d.ts +10 -0
  415. package/dist/backend/routes/lifecycle-routes.d.ts.map +1 -0
  416. package/dist/backend/routes/lifecycle-routes.js +54 -0
  417. package/dist/backend/routes/lifecycle-routes.js.map +1 -0
  418. package/dist/backend/routes/notification-routes.d.ts +22 -0
  419. package/dist/backend/routes/notification-routes.d.ts.map +1 -0
  420. package/dist/backend/routes/notification-routes.js +129 -0
  421. package/dist/backend/routes/notification-routes.js.map +1 -0
  422. package/dist/backend/routes/process-routes.d.ts +22 -0
  423. package/dist/backend/routes/process-routes.d.ts.map +1 -0
  424. package/dist/backend/routes/process-routes.js +444 -0
  425. package/dist/backend/routes/process-routes.js.map +1 -0
  426. package/dist/backend/routes/session-routes.d.ts +22 -0
  427. package/dist/backend/routes/session-routes.d.ts.map +1 -0
  428. package/dist/backend/routes/session-routes.js +97 -0
  429. package/dist/backend/routes/session-routes.js.map +1 -0
  430. package/dist/backend/routes/skill-archive.d.ts +13 -0
  431. package/dist/backend/routes/skill-archive.d.ts.map +1 -0
  432. package/dist/backend/routes/skill-archive.js +84 -0
  433. package/dist/backend/routes/skill-archive.js.map +1 -0
  434. package/dist/backend/routes/skill-parser.d.ts +41 -0
  435. package/dist/backend/routes/skill-parser.d.ts.map +1 -0
  436. package/dist/backend/routes/skill-parser.js +184 -0
  437. package/dist/backend/routes/skill-parser.js.map +1 -0
  438. package/dist/backend/routes/skill-service.d.ts +113 -0
  439. package/dist/backend/routes/skill-service.d.ts.map +1 -0
  440. package/dist/backend/routes/skill-service.js +265 -0
  441. package/dist/backend/routes/skill-service.js.map +1 -0
  442. package/dist/backend/routes/skills.d.ts +18 -0
  443. package/dist/backend/routes/skills.d.ts.map +1 -0
  444. package/dist/backend/routes/skills.js +168 -0
  445. package/dist/backend/routes/skills.js.map +1 -0
  446. package/dist/backend/routes/upload.d.ts +25 -0
  447. package/dist/backend/routes/upload.d.ts.map +1 -0
  448. package/dist/backend/routes/upload.js +100 -0
  449. package/dist/backend/routes/upload.js.map +1 -0
  450. package/dist/backend/services/skill-archive.d.ts +13 -0
  451. package/dist/backend/services/skill-archive.d.ts.map +1 -0
  452. package/dist/backend/services/skill-archive.js +84 -0
  453. package/dist/backend/services/skill-archive.js.map +1 -0
  454. package/dist/backend/services/skill-parser.d.ts +41 -0
  455. package/dist/backend/services/skill-parser.d.ts.map +1 -0
  456. package/dist/backend/services/skill-parser.js +184 -0
  457. package/dist/backend/services/skill-parser.js.map +1 -0
  458. package/dist/backend/services/skill-service.d.ts +113 -0
  459. package/dist/backend/services/skill-service.d.ts.map +1 -0
  460. package/dist/backend/services/skill-service.js +265 -0
  461. package/dist/backend/services/skill-service.js.map +1 -0
  462. package/dist/bin.d.ts +8 -0
  463. package/dist/bin.d.ts.map +1 -0
  464. package/dist/bin.js +12 -0
  465. package/dist/bin.js.map +1 -0
  466. package/dist/capability-generator.d.ts +21 -6
  467. package/dist/capability-generator.d.ts.map +1 -1
  468. package/dist/capability-generator.js +88 -261
  469. package/dist/capability-generator.js.map +1 -1
  470. package/dist/cli/commands/auth.d.ts +11 -0
  471. package/dist/cli/commands/auth.d.ts.map +1 -0
  472. package/dist/cli/commands/auth.js +211 -0
  473. package/dist/cli/commands/auth.js.map +1 -0
  474. package/dist/cli/commands/build.d.ts +11 -0
  475. package/dist/cli/commands/build.d.ts.map +1 -0
  476. package/dist/cli/commands/build.js +170 -0
  477. package/dist/cli/commands/build.js.map +1 -0
  478. package/dist/cli/commands/data.d.ts +15 -0
  479. package/dist/cli/commands/data.d.ts.map +1 -0
  480. package/dist/cli/commands/data.js +214 -0
  481. package/dist/cli/commands/data.js.map +1 -0
  482. package/dist/cli/commands/dev.d.ts +8 -0
  483. package/dist/cli/commands/dev.d.ts.map +1 -0
  484. package/dist/cli/commands/dev.js +114 -0
  485. package/dist/cli/commands/dev.js.map +1 -0
  486. package/dist/cli/commands/eject.d.ts +12 -0
  487. package/dist/cli/commands/eject.d.ts.map +1 -0
  488. package/dist/cli/commands/eject.js +280 -0
  489. package/dist/cli/commands/eject.js.map +1 -0
  490. package/dist/cli/commands/event.d.ts +12 -0
  491. package/dist/cli/commands/event.d.ts.map +1 -0
  492. package/dist/cli/commands/event.js +332 -0
  493. package/dist/cli/commands/event.js.map +1 -0
  494. package/dist/cli/commands/generate-capabilities.d.ts +8 -0
  495. package/dist/cli/commands/generate-capabilities.d.ts.map +1 -0
  496. package/dist/cli/commands/generate-capabilities.js +41 -0
  497. package/dist/cli/commands/generate-capabilities.js.map +1 -0
  498. package/dist/cli/commands/generate-cli-command.d.ts +8 -0
  499. package/dist/cli/commands/generate-cli-command.d.ts.map +1 -0
  500. package/dist/cli/commands/generate-cli-command.js +64 -0
  501. package/dist/cli/commands/generate-cli-command.js.map +1 -0
  502. package/dist/cli/commands/generate-dashboard.d.ts +9 -0
  503. package/dist/cli/commands/generate-dashboard.d.ts.map +1 -0
  504. package/dist/cli/commands/generate-dashboard.js +113 -0
  505. package/dist/cli/commands/generate-dashboard.js.map +1 -0
  506. package/dist/cli/commands/generate-notification.d.ts +9 -0
  507. package/dist/cli/commands/generate-notification.d.ts.map +1 -0
  508. package/dist/cli/commands/generate-notification.js +24 -0
  509. package/dist/cli/commands/generate-notification.js.map +1 -0
  510. package/dist/cli/commands/generate-page.d.ts +9 -0
  511. package/dist/cli/commands/generate-page.d.ts.map +1 -0
  512. package/dist/cli/commands/generate-page.js +105 -0
  513. package/dist/cli/commands/generate-page.js.map +1 -0
  514. package/dist/cli/commands/generate-skill.d.ts +8 -0
  515. package/dist/cli/commands/generate-skill.d.ts.map +1 -0
  516. package/dist/cli/commands/generate-skill.js +75 -0
  517. package/dist/cli/commands/generate-skill.js.map +1 -0
  518. package/dist/cli/commands/generate-system-settings.d.ts +10 -0
  519. package/dist/cli/commands/generate-system-settings.d.ts.map +1 -0
  520. package/dist/cli/commands/generate-system-settings.js +56 -0
  521. package/dist/cli/commands/generate-system-settings.js.map +1 -0
  522. package/dist/cli/commands/generate.d.ts +6 -0
  523. package/dist/cli/commands/generate.d.ts.map +1 -0
  524. package/dist/cli/commands/generate.js +21 -0
  525. package/dist/cli/commands/generate.js.map +1 -0
  526. package/dist/cli/commands/init.d.ts +8 -0
  527. package/dist/cli/commands/init.d.ts.map +1 -0
  528. package/dist/cli/commands/init.js +384 -0
  529. package/dist/cli/commands/init.js.map +1 -0
  530. package/dist/cli/commands/lifecycle.d.ts +8 -0
  531. package/dist/cli/commands/lifecycle.d.ts.map +1 -0
  532. package/dist/cli/commands/lifecycle.js +166 -0
  533. package/dist/cli/commands/lifecycle.js.map +1 -0
  534. package/dist/cli/commands/model.d.ts +9 -0
  535. package/dist/cli/commands/model.d.ts.map +1 -0
  536. package/dist/cli/commands/model.js +218 -0
  537. package/dist/cli/commands/model.js.map +1 -0
  538. package/dist/cli/commands/notification.d.ts +8 -0
  539. package/dist/cli/commands/notification.d.ts.map +1 -0
  540. package/dist/cli/commands/notification.js +179 -0
  541. package/dist/cli/commands/notification.js.map +1 -0
  542. package/dist/cli/commands/observe.d.ts +9 -0
  543. package/dist/cli/commands/observe.d.ts.map +1 -0
  544. package/dist/cli/commands/observe.js +142 -0
  545. package/dist/cli/commands/observe.js.map +1 -0
  546. package/dist/cli/commands/process.d.ts +8 -0
  547. package/dist/cli/commands/process.d.ts.map +1 -0
  548. package/dist/cli/commands/process.js +599 -0
  549. package/dist/cli/commands/process.js.map +1 -0
  550. package/dist/cli/commands/role.d.ts +12 -0
  551. package/dist/cli/commands/role.d.ts.map +1 -0
  552. package/dist/cli/commands/role.js +208 -0
  553. package/dist/cli/commands/role.js.map +1 -0
  554. package/dist/cli/commands/serve.d.ts +12 -0
  555. package/dist/cli/commands/serve.d.ts.map +1 -0
  556. package/dist/cli/commands/serve.js +43 -0
  557. package/dist/cli/commands/serve.js.map +1 -0
  558. package/dist/cli/commands/skill.d.ts +9 -0
  559. package/dist/cli/commands/skill.d.ts.map +1 -0
  560. package/dist/cli/commands/skill.js +186 -0
  561. package/dist/cli/commands/skill.js.map +1 -0
  562. package/dist/cli/commands/user-cmd.d.ts +9 -0
  563. package/dist/cli/commands/user-cmd.d.ts.map +1 -0
  564. package/dist/cli/commands/user-cmd.js +195 -0
  565. package/dist/cli/commands/user-cmd.js.map +1 -0
  566. package/dist/cli/framework.d.ts +28 -0
  567. package/dist/cli/framework.d.ts.map +1 -0
  568. package/dist/cli/framework.js +29 -0
  569. package/dist/cli/framework.js.map +1 -0
  570. package/dist/cli/generators/capability-generator.d.ts +35 -0
  571. package/dist/cli/generators/capability-generator.d.ts.map +1 -0
  572. package/dist/cli/generators/capability-generator.js +365 -0
  573. package/dist/cli/generators/capability-generator.js.map +1 -0
  574. package/dist/cli/helpers/app-tsx-utils.d.ts +12 -0
  575. package/dist/cli/helpers/app-tsx-utils.d.ts.map +1 -0
  576. package/dist/cli/helpers/app-tsx-utils.js +22 -0
  577. package/dist/cli/helpers/app-tsx-utils.js.map +1 -0
  578. package/dist/cli/helpers/app-tsx-wiring-engine.d.ts +70 -0
  579. package/dist/cli/helpers/app-tsx-wiring-engine.d.ts.map +1 -0
  580. package/dist/cli/helpers/app-tsx-wiring-engine.js +535 -0
  581. package/dist/cli/helpers/app-tsx-wiring-engine.js.map +1 -0
  582. package/dist/cli/helpers/app-tsx-wiring.d.ts +19 -0
  583. package/dist/cli/helpers/app-tsx-wiring.d.ts.map +1 -0
  584. package/dist/cli/helpers/app-tsx-wiring.js +145 -0
  585. package/dist/cli/helpers/app-tsx-wiring.js.map +1 -0
  586. package/dist/cli/helpers/auth-client.d.ts +19 -0
  587. package/dist/cli/helpers/auth-client.d.ts.map +1 -0
  588. package/dist/cli/helpers/auth-client.js +42 -0
  589. package/dist/cli/helpers/auth-client.js.map +1 -0
  590. package/dist/cli/helpers/backup.d.ts +16 -0
  591. package/dist/cli/helpers/backup.d.ts.map +1 -0
  592. package/dist/cli/helpers/backup.js +34 -0
  593. package/dist/cli/helpers/backup.js.map +1 -0
  594. package/dist/cli/helpers/column-template.d.ts +20 -0
  595. package/dist/cli/helpers/column-template.d.ts.map +1 -0
  596. package/dist/cli/helpers/column-template.js +165 -0
  597. package/dist/cli/helpers/column-template.js.map +1 -0
  598. package/dist/cli/helpers/duration.d.ts +5 -0
  599. package/dist/cli/helpers/duration.d.ts.map +1 -0
  600. package/dist/cli/helpers/duration.js +5 -0
  601. package/dist/cli/helpers/duration.js.map +1 -0
  602. package/dist/cli/helpers/field-template.d.ts +14 -0
  603. package/dist/cli/helpers/field-template.d.ts.map +1 -0
  604. package/dist/cli/helpers/field-template.js +117 -0
  605. package/dist/cli/helpers/field-template.js.map +1 -0
  606. package/dist/cli/helpers/i18n-template.d.ts +21 -0
  607. package/dist/cli/helpers/i18n-template.d.ts.map +1 -0
  608. package/dist/cli/helpers/i18n-template.js +69 -0
  609. package/dist/cli/helpers/i18n-template.js.map +1 -0
  610. package/dist/cli/helpers/naming.d.ts +11 -0
  611. package/dist/cli/helpers/naming.d.ts.map +1 -0
  612. package/dist/cli/helpers/naming.js +21 -0
  613. package/dist/cli/helpers/naming.js.map +1 -0
  614. package/dist/cli/helpers/system-page-config.d.ts +27 -0
  615. package/dist/cli/helpers/system-page-config.d.ts.map +1 -0
  616. package/dist/cli/helpers/system-page-config.js +82 -0
  617. package/dist/cli/helpers/system-page-config.js.map +1 -0
  618. package/dist/cli/index.d.ts +9 -0
  619. package/dist/cli/index.d.ts.map +1 -0
  620. package/dist/cli/index.js +51 -0
  621. package/dist/cli/index.js.map +1 -0
  622. package/dist/cli/lib/credentials.d.ts +27 -0
  623. package/dist/cli/lib/credentials.d.ts.map +1 -0
  624. package/dist/cli/lib/credentials.js +112 -0
  625. package/dist/cli/lib/credentials.js.map +1 -0
  626. package/dist/cli/templates/auth-wiring.d.ts +17 -0
  627. package/dist/cli/templates/auth-wiring.d.ts.map +1 -0
  628. package/dist/cli/templates/auth-wiring.js +31 -0
  629. package/dist/cli/templates/auth-wiring.js.map +1 -0
  630. package/dist/cli/templates/backend-entry.d.ts +5 -0
  631. package/dist/cli/templates/backend-entry.d.ts.map +1 -0
  632. package/dist/cli/templates/backend-entry.js +17 -0
  633. package/dist/cli/templates/backend-entry.js.map +1 -0
  634. package/dist/cli/templates/claude-md.d.ts +20 -0
  635. package/dist/cli/templates/claude-md.d.ts.map +1 -0
  636. package/dist/cli/templates/claude-md.js +123 -0
  637. package/dist/cli/templates/claude-md.js.map +1 -0
  638. package/dist/cli/templates/crud-page.d.ts +14 -0
  639. package/dist/cli/templates/crud-page.d.ts.map +1 -0
  640. package/dist/cli/templates/crud-page.js +436 -0
  641. package/dist/cli/templates/crud-page.js.map +1 -0
  642. package/dist/cli/templates/dashboard-page.d.ts +11 -0
  643. package/dist/cli/templates/dashboard-page.d.ts.map +1 -0
  644. package/dist/cli/templates/dashboard-page.js +606 -0
  645. package/dist/cli/templates/dashboard-page.js.map +1 -0
  646. package/dist/cli/templates/event-management-page.d.ts +8 -0
  647. package/dist/cli/templates/event-management-page.d.ts.map +1 -0
  648. package/dist/cli/templates/event-management-page.js +598 -0
  649. package/dist/cli/templates/event-management-page.js.map +1 -0
  650. package/dist/cli/templates/frontend-entry.d.ts +11 -0
  651. package/dist/cli/templates/frontend-entry.d.ts.map +1 -0
  652. package/dist/cli/templates/frontend-entry.js +94 -0
  653. package/dist/cli/templates/frontend-entry.js.map +1 -0
  654. package/dist/cli/templates/gitignore.d.ts +5 -0
  655. package/dist/cli/templates/gitignore.d.ts.map +1 -0
  656. package/dist/cli/templates/gitignore.js +13 -0
  657. package/dist/cli/templates/gitignore.js.map +1 -0
  658. package/dist/cli/templates/index.d.ts +21 -0
  659. package/dist/cli/templates/index.d.ts.map +1 -0
  660. package/dist/cli/templates/index.js +21 -0
  661. package/dist/cli/templates/index.js.map +1 -0
  662. package/dist/cli/templates/login-page.d.ts +8 -0
  663. package/dist/cli/templates/login-page.d.ts.map +1 -0
  664. package/dist/cli/templates/login-page.js +67 -0
  665. package/dist/cli/templates/login-page.js.map +1 -0
  666. package/dist/cli/templates/loom-config.d.ts +15 -0
  667. package/dist/cli/templates/loom-config.d.ts.map +1 -0
  668. package/dist/cli/templates/loom-config.js +91 -0
  669. package/dist/cli/templates/loom-config.js.map +1 -0
  670. package/dist/cli/templates/model-management-page.d.ts +8 -0
  671. package/dist/cli/templates/model-management-page.d.ts.map +1 -0
  672. package/dist/cli/templates/model-management-page.js +373 -0
  673. package/dist/cli/templates/model-management-page.js.map +1 -0
  674. package/dist/cli/templates/notification-center-page.d.ts +8 -0
  675. package/dist/cli/templates/notification-center-page.d.ts.map +1 -0
  676. package/dist/cli/templates/notification-center-page.js +240 -0
  677. package/dist/cli/templates/notification-center-page.js.map +1 -0
  678. package/dist/cli/templates/notification-detail-page.d.ts +8 -0
  679. package/dist/cli/templates/notification-detail-page.d.ts.map +1 -0
  680. package/dist/cli/templates/notification-detail-page.js +87 -0
  681. package/dist/cli/templates/notification-detail-page.js.map +1 -0
  682. package/dist/cli/templates/package-json.d.ts +9 -0
  683. package/dist/cli/templates/package-json.d.ts.map +1 -0
  684. package/dist/cli/templates/package-json.js +41 -0
  685. package/dist/cli/templates/package-json.js.map +1 -0
  686. package/dist/cli/templates/process-management-page.d.ts +8 -0
  687. package/dist/cli/templates/process-management-page.d.ts.map +1 -0
  688. package/dist/cli/templates/process-management-page.js +520 -0
  689. package/dist/cli/templates/process-management-page.js.map +1 -0
  690. package/dist/cli/templates/readme.d.ts +9 -0
  691. package/dist/cli/templates/readme.d.ts.map +1 -0
  692. package/dist/cli/templates/readme.js +47 -0
  693. package/dist/cli/templates/readme.js.map +1 -0
  694. package/dist/cli/templates/skill-management-page.d.ts +8 -0
  695. package/dist/cli/templates/skill-management-page.d.ts.map +1 -0
  696. package/dist/cli/templates/skill-management-page.js +476 -0
  697. package/dist/cli/templates/skill-management-page.js.map +1 -0
  698. package/dist/cli/templates/system-settings-page.d.ts +10 -0
  699. package/dist/cli/templates/system-settings-page.d.ts.map +1 -0
  700. package/dist/cli/templates/system-settings-page.js +768 -0
  701. package/dist/cli/templates/system-settings-page.js.map +1 -0
  702. package/dist/cli/templates/tsconfig.d.ts +6 -0
  703. package/dist/cli/templates/tsconfig.d.ts.map +1 -0
  704. package/dist/cli/templates/tsconfig.js +41 -0
  705. package/dist/cli/templates/tsconfig.js.map +1 -0
  706. package/dist/cli/templates/user-management-page.d.ts +8 -0
  707. package/dist/cli/templates/user-management-page.d.ts.map +1 -0
  708. package/dist/cli/templates/user-management-page.js +497 -0
  709. package/dist/cli/templates/user-management-page.js.map +1 -0
  710. package/dist/cli/templates/vite-config.d.ts +9 -0
  711. package/dist/cli/templates/vite-config.d.ts.map +1 -0
  712. package/dist/cli/templates/vite-config.js +26 -0
  713. package/dist/cli/templates/vite-config.js.map +1 -0
  714. package/dist/cli/utils.d.ts +10 -0
  715. package/dist/cli/utils.d.ts.map +1 -0
  716. package/dist/cli/utils.js +31 -0
  717. package/dist/cli/utils.js.map +1 -0
  718. package/dist/commands.d.ts +1 -5
  719. package/dist/commands.d.ts.map +1 -1
  720. package/dist/commands.js +0 -11
  721. package/dist/commands.js.map +1 -1
  722. package/dist/config.d.ts +1635 -95
  723. package/dist/config.d.ts.map +1 -1
  724. package/dist/config.js +180 -16
  725. package/dist/config.js.map +1 -1
  726. package/dist/dashboard-config.d.ts +149 -0
  727. package/dist/dashboard-config.d.ts.map +1 -0
  728. package/dist/dashboard-config.js +40 -0
  729. package/dist/dashboard-config.js.map +1 -0
  730. package/dist/index.d.ts +24 -9
  731. package/dist/index.d.ts.map +1 -1
  732. package/dist/index.js +20 -5
  733. package/dist/index.js.map +1 -1
  734. package/dist/server-bin.d.ts +12 -0
  735. package/dist/server-bin.d.ts.map +1 -0
  736. package/dist/server-bin.js +43 -0
  737. package/dist/server-bin.js.map +1 -0
  738. package/dist/system-prompt.d.ts +20 -0
  739. package/dist/system-prompt.d.ts.map +1 -0
  740. package/dist/system-prompt.js +140 -0
  741. package/dist/system-prompt.js.map +1 -0
  742. package/dist/types/adapter.d.ts +30 -0
  743. package/dist/types/adapter.d.ts.map +1 -0
  744. package/dist/types/adapter.js +5 -0
  745. package/dist/types/adapter.js.map +1 -0
  746. package/dist/types/ai.d.ts +78 -0
  747. package/dist/types/ai.d.ts.map +1 -0
  748. package/dist/types/ai.js +5 -0
  749. package/dist/types/ai.js.map +1 -0
  750. package/dist/types/auth.d.ts +62 -0
  751. package/dist/types/auth.d.ts.map +1 -0
  752. package/dist/types/auth.js +5 -0
  753. package/dist/types/auth.js.map +1 -0
  754. package/dist/types/chat.d.ts +47 -0
  755. package/dist/types/chat.d.ts.map +1 -0
  756. package/dist/types/chat.js +8 -0
  757. package/dist/types/chat.js.map +1 -0
  758. package/dist/types/command.d.ts +25 -0
  759. package/dist/types/command.d.ts.map +1 -0
  760. package/dist/types/command.js +5 -0
  761. package/dist/types/command.js.map +1 -0
  762. package/dist/types/config.d.ts +69 -0
  763. package/dist/types/config.d.ts.map +1 -0
  764. package/dist/types/config.js +5 -0
  765. package/dist/types/config.js.map +1 -0
  766. package/dist/types/dashboard.d.ts +59 -0
  767. package/dist/types/dashboard.d.ts.map +1 -0
  768. package/dist/types/dashboard.js +5 -0
  769. package/dist/types/dashboard.js.map +1 -0
  770. package/dist/types/event.d.ts +109 -0
  771. package/dist/types/event.d.ts.map +1 -0
  772. package/dist/types/event.js +38 -0
  773. package/dist/types/event.js.map +1 -0
  774. package/dist/types/index.d.ts +22 -0
  775. package/dist/types/index.d.ts.map +1 -0
  776. package/dist/types/index.js +9 -0
  777. package/dist/types/index.js.map +1 -0
  778. package/dist/types/lifecycle.d.ts +71 -0
  779. package/dist/types/lifecycle.d.ts.map +1 -0
  780. package/dist/types/lifecycle.js +10 -0
  781. package/dist/types/lifecycle.js.map +1 -0
  782. package/dist/types/locale.d.ts +21 -0
  783. package/dist/types/locale.d.ts.map +1 -0
  784. package/dist/types/locale.js +36 -0
  785. package/dist/types/locale.js.map +1 -0
  786. package/dist/types/model.d.ts +71 -0
  787. package/dist/types/model.d.ts.map +1 -0
  788. package/dist/types/model.js +5 -0
  789. package/dist/types/model.js.map +1 -0
  790. package/dist/types/notification.d.ts +33 -0
  791. package/dist/types/notification.d.ts.map +1 -0
  792. package/dist/types/notification.js +5 -0
  793. package/dist/types/notification.js.map +1 -0
  794. package/dist/types/process.d.ts +229 -0
  795. package/dist/types/process.d.ts.map +1 -0
  796. package/dist/types/process.js +5 -0
  797. package/dist/types/process.js.map +1 -0
  798. package/dist/types.d.ts +4 -199
  799. package/dist/types.d.ts.map +1 -1
  800. package/dist/types.js +4 -3
  801. package/dist/types.js.map +1 -1
  802. package/dist/utils/duration.d.ts +8 -0
  803. package/dist/utils/duration.d.ts.map +1 -0
  804. package/dist/utils/duration.js +22 -0
  805. package/dist/utils/duration.js.map +1 -0
  806. package/dist/utils/id.d.ts +7 -0
  807. package/dist/utils/id.d.ts.map +1 -0
  808. package/dist/utils/id.js +9 -0
  809. package/dist/utils/id.js.map +1 -0
  810. package/package.json +30 -5
@@ -0,0 +1,280 @@
1
+ /**
2
+ * loom eject system-settings <type>
3
+ * loom uneject system-settings <type>
4
+ *
5
+ * Eject: npm import -> local file (for customization)
6
+ * Uneject: local file -> npm import (revert customization)
7
+ *
8
+ * Supported types: model, skill, user, login, process, notification
9
+ */
10
+ import chalk from 'chalk';
11
+ import { promises as fs } from 'fs';
12
+ import { readFileSync } from 'node:fs';
13
+ import path from 'path';
14
+ import crypto from 'crypto';
15
+ import { resolveProjectRoot } from '../utils.js';
16
+ import * as templates from '../templates/index.js';
17
+ import { backupFile } from '../helpers/backup.js';
18
+ import { SYSTEM_PAGE_CONFIG, VALID_SYSTEM_PAGE_TYPES } from '../helpers/system-page-config.js';
19
+ import { wireAppTsx } from '../helpers/app-tsx-wiring-engine.js';
20
+ /**
21
+ * Derive template function name from SystemPageConfig.
22
+ * Convention: pascalName → camelCase(pascalName) + "Template"
23
+ * e.g., ModelManagement → modelManagementPageTemplate
24
+ * NotificationDetail → notificationDetailPageTemplate
25
+ */
26
+ function deriveTemplateFunctionName(pascalName) {
27
+ const camelCase = pascalName.charAt(0).toLowerCase() + pascalName.slice(1);
28
+ return `${camelCase}PageTemplate`;
29
+ }
30
+ /** Get template function for a config entry using naming convention. */
31
+ function getTemplateFn(config) {
32
+ const fnName = config.templateFunctionName ?? deriveTemplateFunctionName(config.pascalName);
33
+ const fn = templates[fnName];
34
+ if (typeof fn === 'function')
35
+ return fn;
36
+ return undefined;
37
+ }
38
+ /** Check version alignment between generated template and installed frontend-antd. */
39
+ function checkTemplateVersion(pascalName, templateContent) {
40
+ const headerMatch = templateContent.match(/GENERATED by scripts\/generate-templates\.ts — v([\d.]+-(?:alpha|beta|rc)?\.\d+)/);
41
+ if (!headerMatch)
42
+ return;
43
+ const templateVersion = headerMatch[1];
44
+ try {
45
+ // Read installed frontend-antd version from node_modules
46
+ const pkgPath = require.resolve('@loom-framework/frontend-antd/package.json');
47
+ const pkg = JSON.parse(require('fs').readFileSync(pkgPath, 'utf-8'));
48
+ const installedVersion = pkg.version;
49
+ if (installedVersion && installedVersion !== templateVersion) {
50
+ console.log(chalk.yellow(` ⚠ Template for "${pascalName}" was generated for v${templateVersion}, but installed frontend-antd is v${installedVersion}. Ejected code may differ from npm version.`));
51
+ console.log(chalk.dim(` Run "pnpm build" in the framework repo to regenerate templates, or update frontend-antd.`));
52
+ }
53
+ }
54
+ catch {
55
+ // frontend-antd not installed (monorepo dev mode) — skip check
56
+ }
57
+ }
58
+ function parsePageType(type) {
59
+ if (VALID_SYSTEM_PAGE_TYPES.includes(type))
60
+ return type;
61
+ return null;
62
+ }
63
+ function checksum(content) {
64
+ return crypto.createHash('sha256').update(content).digest('hex').slice(0, 16);
65
+ }
66
+ async function saveChecksum(projectRoot, pascalName, content) {
67
+ const checksumDir = path.join(projectRoot, '.loom', 'checksums');
68
+ await fs.mkdir(checksumDir, { recursive: true });
69
+ await fs.writeFile(path.join(checksumDir, `${pascalName}.checksum`), checksum(content), 'utf-8');
70
+ }
71
+ async function readChecksum(projectRoot, pascalName) {
72
+ try {
73
+ return await fs.readFile(path.join(projectRoot, '.loom', 'checksums', `${pascalName}.checksum`), 'utf-8');
74
+ }
75
+ catch {
76
+ return null;
77
+ }
78
+ }
79
+ async function deleteChecksum(projectRoot, pascalName) {
80
+ try {
81
+ await fs.unlink(path.join(projectRoot, '.loom', 'checksums', `${pascalName}.checksum`));
82
+ }
83
+ catch { /* ignore */ }
84
+ }
85
+ /**
86
+ * Post-wiring verification: check App.tsx invariants after eject/uneject.
87
+ * Outputs yellow warnings for inconsistencies but does not block the operation.
88
+ */
89
+ function verifyAppTsxWiring(projectRoot, config, action) {
90
+ const appTsxPath = path.join(projectRoot, 'frontend', 'src', 'App.tsx');
91
+ try {
92
+ const content = readFileSync(appTsxPath, 'utf-8');
93
+ // Check 1: No duplicate imports of the same component name
94
+ const localImportRegex = new RegExp(`import\\s+${config.pascalName}\\s+from\\s+['"]\\.\\/components\\/pages\\/`, 'g');
95
+ const npmImportRegex = new RegExp(`import\\s+\\{[^}]*${config.npmComponent}[^}]*\\}\\s+from\\s+['"]@loom-framework\\/frontend-antd['"]`, 'g');
96
+ const localMatches = content.match(localImportRegex) ?? [];
97
+ const npmMatches = content.match(npmImportRegex) ?? [];
98
+ if (localMatches.length > 1) {
99
+ console.log(chalk.yellow(` ⚠ Duplicate local import for "${config.pascalName}" found in App.tsx`));
100
+ }
101
+ if (npmMatches.length > 1) {
102
+ console.log(chalk.yellow(` ⚠ Duplicate npm import for "${config.npmComponent}" found in App.tsx`));
103
+ }
104
+ // Check 2: After eject, local import should exist and npm import should not contain the component
105
+ // After uneject, npm import should exist and local import should not
106
+ if (action === 'eject') {
107
+ if (localMatches.length === 0) {
108
+ console.log(chalk.yellow(` ⚠ Expected local import for "${config.pascalName}" not found in App.tsx after eject`));
109
+ }
110
+ }
111
+ else {
112
+ if (npmMatches.length === 0) {
113
+ console.log(chalk.yellow(` ⚠ Expected npm import for "${config.npmComponent}" not found in App.tsx after uneject`));
114
+ }
115
+ }
116
+ }
117
+ catch {
118
+ // App.tsx may not exist or be readable — skip verification
119
+ }
120
+ }
121
+ /** Write a local page file from template and save its checksum. */
122
+ async function writeLocalPage(projectRoot, pageDir, pascalName, fileName, templateFn, force) {
123
+ const pagePath = path.join(pageDir, fileName);
124
+ // Check if local file already exists
125
+ try {
126
+ await fs.access(pagePath);
127
+ if (!force) {
128
+ console.error(chalk.red(`Local file already exists: ${path.relative(projectRoot, pagePath)}`));
129
+ console.error(chalk.yellow('Use --force to overwrite.'));
130
+ process.exit(1);
131
+ }
132
+ console.log(chalk.yellow(`Overwriting existing local file "${pascalName}"`));
133
+ const backupPath = await backupFile(projectRoot, pagePath);
134
+ if (backupPath)
135
+ console.log(chalk.dim(` Backup: ${path.relative(projectRoot, backupPath)}`));
136
+ }
137
+ catch {
138
+ // File does not exist, proceed
139
+ }
140
+ const templateContent = templateFn();
141
+ // Check version alignment between template and installed frontend-antd
142
+ checkTemplateVersion(pascalName, templateContent);
143
+ await fs.mkdir(pageDir, { recursive: true });
144
+ await fs.writeFile(pagePath, templateContent, 'utf-8');
145
+ await saveChecksum(projectRoot, pascalName, templateContent);
146
+ console.log(chalk.green(' ✓'), `Local file created: ${path.relative(projectRoot, pagePath)}`);
147
+ }
148
+ /** Delete a local page file after checksum verification. */
149
+ async function deleteLocalPage(projectRoot, pageDir, pascalName, fileName, force) {
150
+ const pagePath = path.join(pageDir, fileName);
151
+ // Confirm local file exists
152
+ try {
153
+ await fs.access(pagePath);
154
+ }
155
+ catch {
156
+ console.error(chalk.red(`No local file found: ${path.relative(projectRoot, pagePath)}`));
157
+ console.error(chalk.yellow('This page is already using the npm import.'));
158
+ process.exit(1);
159
+ }
160
+ // Check if modified (compare checksum)
161
+ const currentContent = await fs.readFile(pagePath, 'utf-8');
162
+ const savedChecksum = await readChecksum(projectRoot, pascalName);
163
+ if (savedChecksum !== null && checksum(currentContent) !== savedChecksum && !force) {
164
+ console.error(chalk.yellow(`Local file "${pascalName}" has been modified since eject.`));
165
+ console.error(chalk.yellow('Use --force to delete the modified file (changes will be lost).'));
166
+ console.error(chalk.dim('Tip: Copy your customizations before unejecting, then apply them to a new eject.'));
167
+ process.exit(1);
168
+ }
169
+ // Backup before deletion
170
+ const backupPath = await backupFile(projectRoot, pagePath);
171
+ if (backupPath)
172
+ console.log(chalk.dim(` Backup: ${path.relative(projectRoot, backupPath)}`));
173
+ // Delete local file
174
+ await fs.unlink(pagePath);
175
+ await deleteChecksum(projectRoot, pascalName);
176
+ console.log(chalk.green(' ✓'), `Local file removed: ${path.relative(projectRoot, pagePath)}`);
177
+ }
178
+ // ── Register commands ──
179
+ export function registerEjectCommand(program) {
180
+ const ejectCmd = program
181
+ .command('eject')
182
+ .description('Eject framework-managed files for local customization');
183
+ ejectCmd
184
+ .command('system-settings <type>')
185
+ .description('Eject a system settings page from npm import to local file')
186
+ .option('--force', 'Overwrite existing local file')
187
+ .action(async (type, cmdOptions) => {
188
+ const pageType = parsePageType(type);
189
+ if (!pageType) {
190
+ console.error(chalk.red(`Invalid type "${type}". Use: ${VALID_SYSTEM_PAGE_TYPES.join(', ')}.`));
191
+ process.exit(1);
192
+ }
193
+ const config = SYSTEM_PAGE_CONFIG[pageType];
194
+ try {
195
+ const projectRoot = await resolveProjectRoot();
196
+ const pageDir = path.join(projectRoot, 'frontend', 'src', 'components', 'pages');
197
+ const appTsxPath = path.join(projectRoot, 'frontend', 'src', 'App.tsx');
198
+ // Backup App.tsx before modification
199
+ const appBackup = await backupFile(projectRoot, appTsxPath);
200
+ if (appBackup)
201
+ console.log(chalk.dim(` App.tsx backup: ${path.relative(projectRoot, appBackup)}`));
202
+ // Write main page file from template
203
+ const mainTemplateFn = getTemplateFn(config);
204
+ if (mainTemplateFn) {
205
+ await writeLocalPage(projectRoot, pageDir, config.pascalName, config.fileName, mainTemplateFn, cmdOptions.force);
206
+ }
207
+ // Write extra files (e.g., NotificationDetail for notification type)
208
+ if (config.extraFiles) {
209
+ for (const extra of config.extraFiles) {
210
+ const extraTemplateFn = getTemplateFn(extra);
211
+ if (extraTemplateFn) {
212
+ await writeLocalPage(projectRoot, pageDir, extra.pascalName, extra.fileName, extraTemplateFn, cmdOptions.force);
213
+ }
214
+ }
215
+ }
216
+ // Wire App.tsx using the engine
217
+ const result = await wireAppTsx({ projectRoot, pageConfig: config, action: 'eject', force: cmdOptions.force });
218
+ if (result.modified) {
219
+ console.log(chalk.green(' ✓'), 'App.tsx switched to local import');
220
+ }
221
+ // Post-wiring verification
222
+ verifyAppTsxWiring(projectRoot, config, 'eject');
223
+ console.log();
224
+ console.log(chalk.cyan(` "${config.pascalName}" is now ejected. Edit the local file to customize.`));
225
+ console.log(chalk.dim(` Run "loom uneject system-settings ${type}" to revert to npm import.`));
226
+ }
227
+ catch (err) {
228
+ const message = err instanceof Error ? err.message : String(err);
229
+ console.error(chalk.red('Eject failed:'), message);
230
+ process.exit(1);
231
+ }
232
+ });
233
+ const unejectCmd = program
234
+ .command('uneject')
235
+ .description('Revert ejected files back to npm imports');
236
+ unejectCmd
237
+ .command('system-settings <type>')
238
+ .description('Revert an ejected system settings page back to npm import')
239
+ .option('--force', 'Delete local file even if it has been modified')
240
+ .action(async (type, cmdOptions) => {
241
+ const pageType = parsePageType(type);
242
+ if (!pageType) {
243
+ console.error(chalk.red(`Invalid type "${type}". Use: ${VALID_SYSTEM_PAGE_TYPES.join(', ')}.`));
244
+ process.exit(1);
245
+ }
246
+ const config = SYSTEM_PAGE_CONFIG[pageType];
247
+ try {
248
+ const projectRoot = await resolveProjectRoot();
249
+ const pageDir = path.join(projectRoot, 'frontend', 'src', 'components', 'pages');
250
+ // Delete main page file
251
+ await deleteLocalPage(projectRoot, pageDir, config.pascalName, config.fileName, cmdOptions.force);
252
+ // Delete extra files
253
+ if (config.extraFiles) {
254
+ for (const extra of config.extraFiles) {
255
+ await deleteLocalPage(projectRoot, pageDir, extra.pascalName, extra.fileName, cmdOptions.force);
256
+ }
257
+ }
258
+ // Wire App.tsx using the engine
259
+ const appTsxPath = path.join(projectRoot, 'frontend', 'src', 'App.tsx');
260
+ const appBackup = await backupFile(projectRoot, appTsxPath);
261
+ if (appBackup)
262
+ console.log(chalk.dim(` App.tsx backup: ${path.relative(projectRoot, appBackup)}`));
263
+ const result = await wireAppTsx({ projectRoot, pageConfig: config, action: 'uneject', force: cmdOptions.force });
264
+ if (result.modified) {
265
+ console.log(chalk.green(' ✓'), 'App.tsx switched back to npm import');
266
+ }
267
+ // Post-wiring verification
268
+ verifyAppTsxWiring(projectRoot, config, 'uneject');
269
+ console.log();
270
+ console.log(chalk.cyan(` "${config.pascalName}" is now using npm import from @loom-framework/frontend-antd.`));
271
+ console.log(chalk.dim(` Run "loom eject system-settings ${type}" to customize again.`));
272
+ }
273
+ catch (err) {
274
+ const message = err instanceof Error ? err.message : String(err);
275
+ console.error(chalk.red('Uneject failed:'), message);
276
+ process.exit(1);
277
+ }
278
+ });
279
+ }
280
+ //# sourceMappingURL=eject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eject.js","sourceRoot":"","sources":["../../../src/cli/commands/eject.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Event CLI Commands
3
+ *
4
+ * loom event list — List all event subscriptions
5
+ * loom event subscribe — Add an event subscription
6
+ * loom event unsubscribe <id> — Remove an event subscription by ID
7
+ * loom event update <id> — Update an event subscription
8
+ * loom event test — Emit a test event
9
+ */
10
+ import { Command } from 'commander';
11
+ export declare function registerEventCommand(program: Command): void;
12
+ //# sourceMappingURL=event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/event.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2CpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiQ3D"}
@@ -0,0 +1,332 @@
1
+ /**
2
+ * Event CLI Commands
3
+ *
4
+ * loom event list — List all event subscriptions
5
+ * loom event subscribe — Add an event subscription
6
+ * loom event unsubscribe <id> — Remove an event subscription by ID
7
+ * loom event update <id> — Update an event subscription
8
+ * loom event test — Emit a test event
9
+ */
10
+ import chalk from 'chalk';
11
+ import { resolveToken, resolveServer, requireToken, CliAuthError } from '../helpers/auth-client.js';
12
+ /** Handle CliAuthError in catch blocks */
13
+ function handleAuthError(err) {
14
+ if (err instanceof CliAuthError) {
15
+ console.error(chalk.red(err.message));
16
+ process.exit(1);
17
+ }
18
+ }
19
+ async function fetchApi(path, options = {}) {
20
+ const baseUrl = resolveServer(options.server).replace(/\/$/, '');
21
+ const headers = {};
22
+ if (options.body) {
23
+ headers['Content-Type'] = 'application/json';
24
+ }
25
+ if (options.token) {
26
+ headers['Authorization'] = `Bearer ${options.token}`;
27
+ }
28
+ const response = await fetch(`${baseUrl}${path}`, {
29
+ method: options.method ?? 'GET',
30
+ headers,
31
+ body: options.body ? JSON.stringify(options.body) : undefined,
32
+ });
33
+ if (response.status === 401)
34
+ throw new Error('Authentication failed. Token may be expired.');
35
+ if (response.status === 403) {
36
+ const data = await response.json();
37
+ throw new Error(`Permission denied: ${data.error || 'Insufficient permissions'}${data.required ? ` (required: ${data.required}, actual: ${data.actual})` : ''}`);
38
+ }
39
+ const data = await response.json();
40
+ if (!response.ok) {
41
+ throw new Error(data.error ?? `HTTP ${response.status}`);
42
+ }
43
+ return data;
44
+ }
45
+ export function registerEventCommand(program) {
46
+ const eventCmd = program.command('event').description('Event subscription management');
47
+ // loom event list
48
+ eventCmd.command('list')
49
+ .option('--token <token>', 'Auth token')
50
+ .option('--server <url>', 'Server URL')
51
+ .action(async (opts) => {
52
+ try {
53
+ const token = resolveToken(opts.token);
54
+ const result = await fetchApi('/api/v1/events/subscriptions', {
55
+ token: token ?? undefined,
56
+ server: opts.server,
57
+ });
58
+ if (result.subscriptions.length === 0) {
59
+ console.log('No event subscriptions found.');
60
+ return;
61
+ }
62
+ console.log(chalk.bold('Event Subscriptions:'));
63
+ for (const sub of result.subscriptions) {
64
+ const handler = sub.handler;
65
+ const pattern = sub.pattern;
66
+ const config = sub.config;
67
+ const id = sub.id;
68
+ const active = sub.active;
69
+ const handlerColor = handler === 'process' ? chalk.cyan : handler === 'webhook' ? chalk.magenta : handler === 'notify' ? chalk.green : chalk.gray;
70
+ const statusTag = active !== undefined ? (active ? chalk.green('●') : chalk.red('○')) : '';
71
+ let line = ` ${chalk.dim(id ? id.substring(0, 16) : '???')} ${pattern} → ${handlerColor(handler)}`;
72
+ if (statusTag)
73
+ line += ` ${statusTag}`;
74
+ if (handler === 'process' && config.process) {
75
+ line += ` (${config.process})`;
76
+ if (config.filter)
77
+ line += chalk.dim(` filter: ${JSON.stringify(config.filter)}`);
78
+ if (config.debounceMs)
79
+ line += chalk.dim(` debounce: ${config.debounceMs}ms`);
80
+ }
81
+ else if (handler === 'webhook' && config.url) {
82
+ line += ` → ${config.url}`;
83
+ }
84
+ else if (handler === 'notify') {
85
+ const title = config.title;
86
+ if (title)
87
+ line += ` "${title}"`;
88
+ }
89
+ else if (handler === 'log' && config.level) {
90
+ line += ` (${config.level})`;
91
+ }
92
+ console.log(line);
93
+ }
94
+ }
95
+ catch (err) {
96
+ handleAuthError(err);
97
+ console.error(chalk.red(`Error: ${err instanceof Error ? err.message : String(err)}`));
98
+ process.exit(1);
99
+ }
100
+ });
101
+ // loom event subscribe <pattern>
102
+ eventCmd.command('subscribe <pattern>')
103
+ .requiredOption('--handler <type>', 'Handler type: process | webhook | log | notify')
104
+ .option('--process <name>', 'Process name (required when handler=process)')
105
+ .option('--url <url>', 'Webhook URL (required when handler=webhook)')
106
+ .option('--method <method>', 'HTTP method for webhook (default: POST)')
107
+ .option('--headers <json>', 'Webhook headers as JSON')
108
+ .option('--level <level>', 'Log level for handler=log (info|debug|warn)')
109
+ .option('--title <title>', 'Notification title template (handler=notify)')
110
+ .option('--description <text>', 'Notification description template (handler=notify)')
111
+ .option('--filter <json>', 'Event payload filter as JSON (handler=process)')
112
+ .option('--debounce <ms>', 'Debounce window in ms (default: 0, no debounce)', '0')
113
+ .option('--token <token>', 'Auth token')
114
+ .option('--server <url>', 'Server URL')
115
+ .action(async (pattern, opts) => {
116
+ const validHandlers = ['process', 'webhook', 'log', 'notify'];
117
+ if (!validHandlers.includes(opts.handler)) {
118
+ console.error(chalk.red(`Error: --handler must be one of: ${validHandlers.join(', ')}`));
119
+ process.exit(1);
120
+ }
121
+ const config = {};
122
+ if (opts.handler === 'process') {
123
+ if (!opts.process) {
124
+ console.error(chalk.red('Error: --process is required when handler=process'));
125
+ process.exit(1);
126
+ }
127
+ config.process = opts.process;
128
+ if (opts.filter) {
129
+ try {
130
+ config.filter = JSON.parse(opts.filter);
131
+ }
132
+ catch {
133
+ console.error(chalk.red('Error: --filter must be valid JSON'));
134
+ process.exit(1);
135
+ }
136
+ }
137
+ if (opts.debounce)
138
+ config.debounceMs = parseInt(opts.debounce, 10);
139
+ }
140
+ else if (opts.handler === 'webhook') {
141
+ if (!opts.url) {
142
+ console.error(chalk.red('Error: --url is required when handler=webhook'));
143
+ process.exit(1);
144
+ }
145
+ config.url = opts.url;
146
+ if (opts.method)
147
+ config.method = opts.method;
148
+ if (opts.headers) {
149
+ try {
150
+ config.headers = JSON.parse(opts.headers);
151
+ }
152
+ catch {
153
+ console.error(chalk.red('Error: --headers must be valid JSON'));
154
+ process.exit(1);
155
+ }
156
+ }
157
+ }
158
+ else if (opts.handler === 'log') {
159
+ if (opts.level)
160
+ config.level = opts.level;
161
+ }
162
+ else if (opts.handler === 'notify') {
163
+ if (opts.title)
164
+ config.title = opts.title;
165
+ if (opts.description)
166
+ config.description = opts.description;
167
+ }
168
+ try {
169
+ const token = requireToken(opts.token);
170
+ const result = await fetchApi('/api/v1/events/subscriptions', {
171
+ method: 'POST',
172
+ body: { pattern, handler: opts.handler, config },
173
+ token,
174
+ server: opts.server,
175
+ });
176
+ console.log(chalk.green(`Subscription created: ${result.id} ${pattern} → ${opts.handler}`));
177
+ }
178
+ catch (err) {
179
+ handleAuthError(err);
180
+ console.error(chalk.red(`Error: ${err instanceof Error ? err.message : String(err)}`));
181
+ process.exit(1);
182
+ }
183
+ });
184
+ // loom event update <id>
185
+ eventCmd.command('update <id>')
186
+ .option('--pattern <pattern>', 'New event pattern')
187
+ .option('--handler <type>', 'New handler type: process | webhook | log | notify')
188
+ // Process handler options
189
+ .option('--process <name>', 'Process name (handler=process)')
190
+ .option('--filter <json>', 'Event payload filter as JSON (handler=process)')
191
+ .option('--debounce <ms>', 'Debounce window in ms (handler=process)')
192
+ // Webhook handler options
193
+ .option('--url <url>', 'Webhook URL (handler=webhook)')
194
+ .option('--method <method>', 'HTTP method for webhook')
195
+ .option('--headers <json>', 'Webhook headers as JSON')
196
+ // Log handler options
197
+ .option('--level <level>', 'Log level (handler=log)')
198
+ // Notify handler options
199
+ .option('--title <title>', 'Notification title (handler=notify)')
200
+ .option('--description <text>', 'Notification description (handler=notify)')
201
+ .option('--token <token>', 'Auth token')
202
+ .option('--server <url>', 'Server URL')
203
+ .action(async (id, opts) => {
204
+ const body = {};
205
+ if (opts.pattern)
206
+ body.pattern = opts.pattern;
207
+ if (opts.handler) {
208
+ const validHandlers = ['process', 'webhook', 'log', 'notify'];
209
+ if (!validHandlers.includes(opts.handler)) {
210
+ console.error(chalk.red(`Error: --handler must be one of: ${validHandlers.join(', ')}`));
211
+ process.exit(1);
212
+ }
213
+ body.handler = opts.handler;
214
+ }
215
+ // Build config if any handler-specific option is provided
216
+ const config = {};
217
+ if (opts.process)
218
+ config.process = opts.process;
219
+ if (opts.filter) {
220
+ try {
221
+ config.filter = JSON.parse(opts.filter);
222
+ }
223
+ catch {
224
+ console.error(chalk.red('Error: --filter must be valid JSON'));
225
+ process.exit(1);
226
+ }
227
+ }
228
+ if (opts.debounce)
229
+ config.debounceMs = parseInt(opts.debounce, 10);
230
+ if (opts.url)
231
+ config.url = opts.url;
232
+ if (opts.method)
233
+ config.method = opts.method;
234
+ if (opts.headers) {
235
+ try {
236
+ config.headers = JSON.parse(opts.headers);
237
+ }
238
+ catch {
239
+ console.error(chalk.red('Error: --headers must be valid JSON'));
240
+ process.exit(1);
241
+ }
242
+ }
243
+ if (opts.level)
244
+ config.level = opts.level;
245
+ if (opts.title)
246
+ config.title = opts.title;
247
+ if (opts.description)
248
+ config.description = opts.description;
249
+ if (Object.keys(config).length > 0)
250
+ body.config = config;
251
+ if (Object.keys(body).length === 0) {
252
+ console.error(chalk.red('Error: At least one update field is required'));
253
+ process.exit(1);
254
+ }
255
+ try {
256
+ const token = requireToken(opts.token);
257
+ const result = await fetchApi(`/api/v1/events/subscriptions/${id}`, {
258
+ method: 'PUT',
259
+ body,
260
+ token,
261
+ server: opts.server,
262
+ });
263
+ console.log(chalk.green(`Subscription updated: ${result.id}`));
264
+ }
265
+ catch (err) {
266
+ handleAuthError(err);
267
+ console.error(chalk.red(`Error: ${err instanceof Error ? err.message : String(err)}`));
268
+ process.exit(1);
269
+ }
270
+ });
271
+ // loom event unsubscribe <id>
272
+ eventCmd.command('unsubscribe <id>')
273
+ .option('--token <token>', 'Auth token')
274
+ .option('--server <url>', 'Server URL')
275
+ .action(async (id, opts) => {
276
+ try {
277
+ const token = requireToken(opts.token);
278
+ const result = await fetchApi(`/api/v1/events/subscriptions/${id}`, {
279
+ method: 'DELETE',
280
+ token,
281
+ server: opts.server,
282
+ });
283
+ const removed = result.removed;
284
+ console.log(chalk.green(`Subscription removed: ${id} ${removed.pattern} → ${removed.handler}`));
285
+ }
286
+ catch (err) {
287
+ handleAuthError(err);
288
+ console.error(chalk.red(`Error: ${err instanceof Error ? err.message : String(err)}`));
289
+ process.exit(1);
290
+ }
291
+ });
292
+ // loom event test <pattern>
293
+ eventCmd.command('test <pattern>')
294
+ .option('--payload <json>', 'Event payload as JSON', '{}')
295
+ .option('--token <token>', 'Auth token')
296
+ .option('--server <url>', 'Server URL')
297
+ .action(async (pattern, opts) => {
298
+ let payload = {};
299
+ if (opts.payload) {
300
+ try {
301
+ payload = JSON.parse(opts.payload);
302
+ }
303
+ catch {
304
+ console.error(chalk.red('Error: --payload must be valid JSON'));
305
+ process.exit(1);
306
+ }
307
+ }
308
+ try {
309
+ const token = resolveToken(opts.token) ?? process.env.LOOM_TOKEN;
310
+ if (!token) {
311
+ console.error(chalk.red('Error: Auth token required (--token or LOOM_TOKEN env)'));
312
+ process.exit(1);
313
+ }
314
+ await fetchApi('/api/v1/events/test', {
315
+ method: 'POST',
316
+ body: { pattern, payload },
317
+ token,
318
+ server: opts.server,
319
+ });
320
+ console.log(chalk.green(`Test event emitted: ${pattern}`));
321
+ if (Object.keys(payload).length > 0) {
322
+ console.log(` Payload: ${JSON.stringify(payload)}`);
323
+ }
324
+ }
325
+ catch (err) {
326
+ handleAuthError(err);
327
+ console.error(chalk.red(`Error: ${err instanceof Error ? err.message : String(err)}`));
328
+ process.exit(1);
329
+ }
330
+ });
331
+ }
332
+ //# sourceMappingURL=event.js.map