@loom-framework/core 0.1.0-alpha.16 → 0.1.0-alpha.160

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 (757) 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 +48 -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 +119 -0
  187. package/builtin-skills/app-skill/references/evolution.md +90 -0
  188. package/builtin-skills/app-skill/references/models.md +45 -0
  189. package/builtin-skills/app-skill/references/notification.md +123 -0
  190. package/builtin-skills/app-skill/references/process-builder.md +383 -0
  191. package/builtin-skills/app-skill/references/process-metrics.md +93 -0
  192. package/builtin-skills/app-skill/references/process.md +294 -0
  193. package/builtin-skills/chart-visualization/SKILL.md +101 -0
  194. package/builtin-skills/loom/SKILL.md +265 -0
  195. package/builtin-skills/loom/references/README.md +285 -0
  196. package/builtin-skills/loom/references/dashboard.md +257 -0
  197. package/builtin-skills/loom/references/data-model.md +196 -0
  198. package/builtin-skills/yuque-reader/SKILL.md +43 -0
  199. package/builtin-skills/yuque-reader/references/config.md +52 -0
  200. package/builtin-skills/yuque-reader/scripts/fetch_doc.py +121 -0
  201. package/dist/adapter-base.d.ts +31 -0
  202. package/dist/adapter-base.d.ts.map +1 -0
  203. package/dist/adapter-base.js +69 -0
  204. package/dist/adapter-base.js.map +1 -0
  205. package/dist/adapter-factory.d.ts +8 -0
  206. package/dist/adapter-factory.d.ts.map +1 -0
  207. package/dist/adapter-factory.js +25 -0
  208. package/dist/adapter-factory.js.map +1 -0
  209. package/dist/adapter-filesystem.d.ts +25 -11
  210. package/dist/adapter-filesystem.d.ts.map +1 -1
  211. package/dist/adapter-filesystem.js +230 -52
  212. package/dist/adapter-filesystem.js.map +1 -1
  213. package/dist/adapter-sqlite.d.ts +9 -23
  214. package/dist/adapter-sqlite.d.ts.map +1 -1
  215. package/dist/adapter-sqlite.js +94 -55
  216. package/dist/adapter-sqlite.js.map +1 -1
  217. package/dist/adapters/base.d.ts +31 -0
  218. package/dist/adapters/base.d.ts.map +1 -0
  219. package/dist/adapters/base.js +69 -0
  220. package/dist/adapters/base.js.map +1 -0
  221. package/dist/adapters/factory.d.ts +8 -0
  222. package/dist/adapters/factory.d.ts.map +1 -0
  223. package/dist/adapters/factory.js +25 -0
  224. package/dist/adapters/factory.js.map +1 -0
  225. package/dist/adapters/filesystem.d.ts +46 -0
  226. package/dist/adapters/filesystem.d.ts.map +1 -0
  227. package/dist/adapters/filesystem.js +321 -0
  228. package/dist/adapters/filesystem.js.map +1 -0
  229. package/dist/adapters/index.d.ts +10 -0
  230. package/dist/adapters/index.d.ts.map +1 -0
  231. package/dist/adapters/index.js +8 -0
  232. package/dist/adapters/index.js.map +1 -0
  233. package/dist/adapters/sqlite.d.ts +37 -0
  234. package/dist/adapters/sqlite.d.ts.map +1 -0
  235. package/dist/adapters/sqlite.js +264 -0
  236. package/dist/adapters/sqlite.js.map +1 -0
  237. package/dist/backend/ai/button-resolver.d.ts +18 -0
  238. package/dist/backend/ai/button-resolver.d.ts.map +1 -0
  239. package/dist/backend/ai/button-resolver.js +58 -0
  240. package/dist/backend/ai/button-resolver.js.map +1 -0
  241. package/dist/backend/ai/content-blocks.d.ts +18 -0
  242. package/dist/backend/ai/content-blocks.d.ts.map +1 -0
  243. package/dist/backend/ai/content-blocks.js +66 -0
  244. package/dist/backend/ai/content-blocks.js.map +1 -0
  245. package/dist/backend/ai/engine.d.ts +65 -0
  246. package/dist/backend/ai/engine.d.ts.map +1 -0
  247. package/dist/backend/ai/engine.js +237 -0
  248. package/dist/backend/ai/engine.js.map +1 -0
  249. package/dist/backend/ai/index.d.ts +11 -0
  250. package/dist/backend/ai/index.d.ts.map +1 -0
  251. package/dist/backend/ai/index.js +8 -0
  252. package/dist/backend/ai/index.js.map +1 -0
  253. package/dist/backend/ai/output-parser.d.ts +36 -0
  254. package/dist/backend/ai/output-parser.d.ts.map +1 -0
  255. package/dist/backend/ai/output-parser.js +264 -0
  256. package/dist/backend/ai/output-parser.js.map +1 -0
  257. package/dist/backend/ai/session-manager.d.ts +106 -0
  258. package/dist/backend/ai/session-manager.d.ts.map +1 -0
  259. package/dist/backend/ai/session-manager.js +304 -0
  260. package/dist/backend/ai/session-manager.js.map +1 -0
  261. package/dist/backend/auth/jwt.d.ts +16 -0
  262. package/dist/backend/auth/jwt.d.ts.map +1 -0
  263. package/dist/backend/auth/jwt.js +57 -0
  264. package/dist/backend/auth/jwt.js.map +1 -0
  265. package/dist/backend/auth/password.d.ts +10 -0
  266. package/dist/backend/auth/password.d.ts.map +1 -0
  267. package/dist/backend/auth/password.js +19 -0
  268. package/dist/backend/auth/password.js.map +1 -0
  269. package/dist/backend/auth/rbac.d.ts +36 -0
  270. package/dist/backend/auth/rbac.d.ts.map +1 -0
  271. package/dist/backend/auth/rbac.js +129 -0
  272. package/dist/backend/auth/rbac.js.map +1 -0
  273. package/dist/backend/auth/request-context.d.ts +15 -0
  274. package/dist/backend/auth/request-context.d.ts.map +1 -0
  275. package/dist/backend/auth/request-context.js +17 -0
  276. package/dist/backend/auth/request-context.js.map +1 -0
  277. package/dist/backend/auth/service-token.d.ts +11 -0
  278. package/dist/backend/auth/service-token.d.ts.map +1 -0
  279. package/dist/backend/auth/service-token.js +13 -0
  280. package/dist/backend/auth/service-token.js.map +1 -0
  281. package/dist/backend/auth/token-store.d.ts +28 -0
  282. package/dist/backend/auth/token-store.d.ts.map +1 -0
  283. package/dist/backend/auth/token-store.js +84 -0
  284. package/dist/backend/auth/token-store.js.map +1 -0
  285. package/dist/backend/auth/user-store.d.ts +42 -0
  286. package/dist/backend/auth/user-store.d.ts.map +1 -0
  287. package/dist/backend/auth/user-store.js +112 -0
  288. package/dist/backend/auth/user-store.js.map +1 -0
  289. package/dist/backend/events/event-bus.d.ts +39 -0
  290. package/dist/backend/events/event-bus.d.ts.map +1 -0
  291. package/dist/backend/events/event-bus.js +182 -0
  292. package/dist/backend/events/event-bus.js.map +1 -0
  293. package/dist/backend/events/event-emitting-adapter.d.ts +31 -0
  294. package/dist/backend/events/event-emitting-adapter.d.ts.map +1 -0
  295. package/dist/backend/events/event-emitting-adapter.js +70 -0
  296. package/dist/backend/events/event-emitting-adapter.js.map +1 -0
  297. package/dist/backend/events/event-registry.d.ts +24 -0
  298. package/dist/backend/events/event-registry.d.ts.map +1 -0
  299. package/dist/backend/events/event-registry.js +22 -0
  300. package/dist/backend/events/event-registry.js.map +1 -0
  301. package/dist/backend/events/index.d.ts +7 -0
  302. package/dist/backend/events/index.d.ts.map +1 -0
  303. package/dist/backend/events/index.js +7 -0
  304. package/dist/backend/events/index.js.map +1 -0
  305. package/dist/backend/index.d.ts +88 -0
  306. package/dist/backend/index.d.ts.map +1 -0
  307. package/dist/backend/index.js +422 -0
  308. package/dist/backend/index.js.map +1 -0
  309. package/dist/backend/loom-paths.d.ts +28 -0
  310. package/dist/backend/loom-paths.d.ts.map +1 -0
  311. package/dist/backend/loom-paths.js +45 -0
  312. package/dist/backend/loom-paths.js.map +1 -0
  313. package/dist/backend/notifications/interpolate.d.ts +6 -0
  314. package/dist/backend/notifications/interpolate.d.ts.map +1 -0
  315. package/dist/backend/notifications/interpolate.js +11 -0
  316. package/dist/backend/notifications/interpolate.js.map +1 -0
  317. package/dist/backend/notifications/notification-storage.d.ts +27 -0
  318. package/dist/backend/notifications/notification-storage.d.ts.map +1 -0
  319. package/dist/backend/notifications/notification-storage.js +160 -0
  320. package/dist/backend/notifications/notification-storage.js.map +1 -0
  321. package/dist/backend/observe/index.d.ts +6 -0
  322. package/dist/backend/observe/index.d.ts.map +1 -0
  323. package/dist/backend/observe/index.js +5 -0
  324. package/dist/backend/observe/index.js.map +1 -0
  325. package/dist/backend/observe/logger.d.ts +26 -0
  326. package/dist/backend/observe/logger.d.ts.map +1 -0
  327. package/dist/backend/observe/logger.js +68 -0
  328. package/dist/backend/observe/logger.js.map +1 -0
  329. package/dist/backend/observe/types.d.ts +26 -0
  330. package/dist/backend/observe/types.d.ts.map +1 -0
  331. package/dist/backend/observe/types.js +7 -0
  332. package/dist/backend/observe/types.js.map +1 -0
  333. package/dist/backend/process/engine.d.ts +105 -0
  334. package/dist/backend/process/engine.d.ts.map +1 -0
  335. package/dist/backend/process/engine.js +589 -0
  336. package/dist/backend/process/engine.js.map +1 -0
  337. package/dist/backend/process/index.d.ts +7 -0
  338. package/dist/backend/process/index.d.ts.map +1 -0
  339. package/dist/backend/process/index.js +6 -0
  340. package/dist/backend/process/index.js.map +1 -0
  341. package/dist/backend/process/logger.d.ts +32 -0
  342. package/dist/backend/process/logger.d.ts.map +1 -0
  343. package/dist/backend/process/logger.js +148 -0
  344. package/dist/backend/process/logger.js.map +1 -0
  345. package/dist/backend/process/metrics-store.d.ts +32 -0
  346. package/dist/backend/process/metrics-store.d.ts.map +1 -0
  347. package/dist/backend/process/metrics-store.js +108 -0
  348. package/dist/backend/process/metrics-store.js.map +1 -0
  349. package/dist/backend/process/migrate.d.ts +12 -0
  350. package/dist/backend/process/migrate.d.ts.map +1 -0
  351. package/dist/backend/process/migrate.js +145 -0
  352. package/dist/backend/process/migrate.js.map +1 -0
  353. package/dist/backend/process/queue.d.ts +33 -0
  354. package/dist/backend/process/queue.d.ts.map +1 -0
  355. package/dist/backend/process/queue.js +94 -0
  356. package/dist/backend/process/queue.js.map +1 -0
  357. package/dist/backend/process/registry.d.ts +29 -0
  358. package/dist/backend/process/registry.d.ts.map +1 -0
  359. package/dist/backend/process/registry.js +105 -0
  360. package/dist/backend/process/registry.js.map +1 -0
  361. package/dist/backend/process/trigger.d.ts +29 -0
  362. package/dist/backend/process/trigger.d.ts.map +1 -0
  363. package/dist/backend/process/trigger.js +108 -0
  364. package/dist/backend/process/trigger.js.map +1 -0
  365. package/dist/backend/routes/ai-config.d.ts +15 -0
  366. package/dist/backend/routes/ai-config.d.ts.map +1 -0
  367. package/dist/backend/routes/ai-config.js +171 -0
  368. package/dist/backend/routes/ai-config.js.map +1 -0
  369. package/dist/backend/routes/auth-routes.d.ts +33 -0
  370. package/dist/backend/routes/auth-routes.d.ts.map +1 -0
  371. package/dist/backend/routes/auth-routes.js +528 -0
  372. package/dist/backend/routes/auth-routes.js.map +1 -0
  373. package/dist/backend/routes/chat-sse.d.ts +17 -0
  374. package/dist/backend/routes/chat-sse.d.ts.map +1 -0
  375. package/dist/backend/routes/chat-sse.js +60 -0
  376. package/dist/backend/routes/chat-sse.js.map +1 -0
  377. package/dist/backend/routes/chat.d.ts +30 -0
  378. package/dist/backend/routes/chat.d.ts.map +1 -0
  379. package/dist/backend/routes/chat.js +258 -0
  380. package/dist/backend/routes/chat.js.map +1 -0
  381. package/dist/backend/routes/data.d.ts +16 -0
  382. package/dist/backend/routes/data.d.ts.map +1 -0
  383. package/dist/backend/routes/data.js +371 -0
  384. package/dist/backend/routes/data.js.map +1 -0
  385. package/dist/backend/routes/event-routes.d.ts +15 -0
  386. package/dist/backend/routes/event-routes.d.ts.map +1 -0
  387. package/dist/backend/routes/event-routes.js +35 -0
  388. package/dist/backend/routes/event-routes.js.map +1 -0
  389. package/dist/backend/routes/health.d.ts +7 -0
  390. package/dist/backend/routes/health.d.ts.map +1 -0
  391. package/dist/backend/routes/health.js +15 -0
  392. package/dist/backend/routes/health.js.map +1 -0
  393. package/dist/backend/routes/index.d.ts +22 -0
  394. package/dist/backend/routes/index.d.ts.map +1 -0
  395. package/dist/backend/routes/index.js +15 -0
  396. package/dist/backend/routes/index.js.map +1 -0
  397. package/dist/backend/routes/notification-routes.d.ts +22 -0
  398. package/dist/backend/routes/notification-routes.d.ts.map +1 -0
  399. package/dist/backend/routes/notification-routes.js +128 -0
  400. package/dist/backend/routes/notification-routes.js.map +1 -0
  401. package/dist/backend/routes/process-routes.d.ts +17 -0
  402. package/dist/backend/routes/process-routes.d.ts.map +1 -0
  403. package/dist/backend/routes/process-routes.js +303 -0
  404. package/dist/backend/routes/process-routes.js.map +1 -0
  405. package/dist/backend/routes/session-routes.d.ts +22 -0
  406. package/dist/backend/routes/session-routes.d.ts.map +1 -0
  407. package/dist/backend/routes/session-routes.js +97 -0
  408. package/dist/backend/routes/session-routes.js.map +1 -0
  409. package/dist/backend/routes/skill-archive.d.ts +13 -0
  410. package/dist/backend/routes/skill-archive.d.ts.map +1 -0
  411. package/dist/backend/routes/skill-archive.js +84 -0
  412. package/dist/backend/routes/skill-archive.js.map +1 -0
  413. package/dist/backend/routes/skill-parser.d.ts +41 -0
  414. package/dist/backend/routes/skill-parser.d.ts.map +1 -0
  415. package/dist/backend/routes/skill-parser.js +184 -0
  416. package/dist/backend/routes/skill-parser.js.map +1 -0
  417. package/dist/backend/routes/skill-service.d.ts +113 -0
  418. package/dist/backend/routes/skill-service.d.ts.map +1 -0
  419. package/dist/backend/routes/skill-service.js +265 -0
  420. package/dist/backend/routes/skill-service.js.map +1 -0
  421. package/dist/backend/routes/skills.d.ts +18 -0
  422. package/dist/backend/routes/skills.d.ts.map +1 -0
  423. package/dist/backend/routes/skills.js +168 -0
  424. package/dist/backend/routes/skills.js.map +1 -0
  425. package/dist/backend/routes/upload.d.ts +25 -0
  426. package/dist/backend/routes/upload.d.ts.map +1 -0
  427. package/dist/backend/routes/upload.js +100 -0
  428. package/dist/backend/routes/upload.js.map +1 -0
  429. package/dist/backend/services/skill-archive.d.ts +13 -0
  430. package/dist/backend/services/skill-archive.d.ts.map +1 -0
  431. package/dist/backend/services/skill-archive.js +84 -0
  432. package/dist/backend/services/skill-archive.js.map +1 -0
  433. package/dist/backend/services/skill-parser.d.ts +41 -0
  434. package/dist/backend/services/skill-parser.d.ts.map +1 -0
  435. package/dist/backend/services/skill-parser.js +184 -0
  436. package/dist/backend/services/skill-parser.js.map +1 -0
  437. package/dist/backend/services/skill-service.d.ts +113 -0
  438. package/dist/backend/services/skill-service.d.ts.map +1 -0
  439. package/dist/backend/services/skill-service.js +265 -0
  440. package/dist/backend/services/skill-service.js.map +1 -0
  441. package/dist/bin.d.ts +8 -0
  442. package/dist/bin.d.ts.map +1 -0
  443. package/dist/bin.js +12 -0
  444. package/dist/bin.js.map +1 -0
  445. package/dist/capability-generator.d.ts +21 -6
  446. package/dist/capability-generator.d.ts.map +1 -1
  447. package/dist/capability-generator.js +88 -261
  448. package/dist/capability-generator.js.map +1 -1
  449. package/dist/cli/commands/auth.d.ts +11 -0
  450. package/dist/cli/commands/auth.d.ts.map +1 -0
  451. package/dist/cli/commands/auth.js +211 -0
  452. package/dist/cli/commands/auth.js.map +1 -0
  453. package/dist/cli/commands/build.d.ts +11 -0
  454. package/dist/cli/commands/build.d.ts.map +1 -0
  455. package/dist/cli/commands/build.js +170 -0
  456. package/dist/cli/commands/build.js.map +1 -0
  457. package/dist/cli/commands/data.d.ts +15 -0
  458. package/dist/cli/commands/data.d.ts.map +1 -0
  459. package/dist/cli/commands/data.js +214 -0
  460. package/dist/cli/commands/data.js.map +1 -0
  461. package/dist/cli/commands/dev.d.ts +8 -0
  462. package/dist/cli/commands/dev.d.ts.map +1 -0
  463. package/dist/cli/commands/dev.js +97 -0
  464. package/dist/cli/commands/dev.js.map +1 -0
  465. package/dist/cli/commands/eject.d.ts +12 -0
  466. package/dist/cli/commands/eject.d.ts.map +1 -0
  467. package/dist/cli/commands/eject.js +451 -0
  468. package/dist/cli/commands/eject.js.map +1 -0
  469. package/dist/cli/commands/generate-capabilities.d.ts +8 -0
  470. package/dist/cli/commands/generate-capabilities.d.ts.map +1 -0
  471. package/dist/cli/commands/generate-capabilities.js +41 -0
  472. package/dist/cli/commands/generate-capabilities.js.map +1 -0
  473. package/dist/cli/commands/generate-cli-command.d.ts +8 -0
  474. package/dist/cli/commands/generate-cli-command.d.ts.map +1 -0
  475. package/dist/cli/commands/generate-cli-command.js +64 -0
  476. package/dist/cli/commands/generate-cli-command.js.map +1 -0
  477. package/dist/cli/commands/generate-dashboard.d.ts +9 -0
  478. package/dist/cli/commands/generate-dashboard.d.ts.map +1 -0
  479. package/dist/cli/commands/generate-dashboard.js +113 -0
  480. package/dist/cli/commands/generate-dashboard.js.map +1 -0
  481. package/dist/cli/commands/generate-notification.d.ts +9 -0
  482. package/dist/cli/commands/generate-notification.d.ts.map +1 -0
  483. package/dist/cli/commands/generate-notification.js +24 -0
  484. package/dist/cli/commands/generate-notification.js.map +1 -0
  485. package/dist/cli/commands/generate-page.d.ts +9 -0
  486. package/dist/cli/commands/generate-page.d.ts.map +1 -0
  487. package/dist/cli/commands/generate-page.js +105 -0
  488. package/dist/cli/commands/generate-page.js.map +1 -0
  489. package/dist/cli/commands/generate-skill.d.ts +8 -0
  490. package/dist/cli/commands/generate-skill.d.ts.map +1 -0
  491. package/dist/cli/commands/generate-skill.js +75 -0
  492. package/dist/cli/commands/generate-skill.js.map +1 -0
  493. package/dist/cli/commands/generate-system-settings.d.ts +10 -0
  494. package/dist/cli/commands/generate-system-settings.d.ts.map +1 -0
  495. package/dist/cli/commands/generate-system-settings.js +227 -0
  496. package/dist/cli/commands/generate-system-settings.js.map +1 -0
  497. package/dist/cli/commands/generate.d.ts +6 -0
  498. package/dist/cli/commands/generate.d.ts.map +1 -0
  499. package/dist/cli/commands/generate.js +21 -0
  500. package/dist/cli/commands/generate.js.map +1 -0
  501. package/dist/cli/commands/init.d.ts +8 -0
  502. package/dist/cli/commands/init.d.ts.map +1 -0
  503. package/dist/cli/commands/init.js +388 -0
  504. package/dist/cli/commands/init.js.map +1 -0
  505. package/dist/cli/commands/notification.d.ts +8 -0
  506. package/dist/cli/commands/notification.d.ts.map +1 -0
  507. package/dist/cli/commands/notification.js +175 -0
  508. package/dist/cli/commands/notification.js.map +1 -0
  509. package/dist/cli/commands/observe.d.ts +9 -0
  510. package/dist/cli/commands/observe.d.ts.map +1 -0
  511. package/dist/cli/commands/observe.js +142 -0
  512. package/dist/cli/commands/observe.js.map +1 -0
  513. package/dist/cli/commands/process.d.ts +8 -0
  514. package/dist/cli/commands/process.d.ts.map +1 -0
  515. package/dist/cli/commands/process.js +538 -0
  516. package/dist/cli/commands/process.js.map +1 -0
  517. package/dist/cli/commands/role.d.ts +12 -0
  518. package/dist/cli/commands/role.d.ts.map +1 -0
  519. package/dist/cli/commands/role.js +208 -0
  520. package/dist/cli/commands/role.js.map +1 -0
  521. package/dist/cli/commands/serve.d.ts +12 -0
  522. package/dist/cli/commands/serve.d.ts.map +1 -0
  523. package/dist/cli/commands/serve.js +43 -0
  524. package/dist/cli/commands/serve.js.map +1 -0
  525. package/dist/cli/commands/skill.d.ts +9 -0
  526. package/dist/cli/commands/skill.d.ts.map +1 -0
  527. package/dist/cli/commands/skill.js +186 -0
  528. package/dist/cli/commands/skill.js.map +1 -0
  529. package/dist/cli/commands/user-cmd.d.ts +9 -0
  530. package/dist/cli/commands/user-cmd.d.ts.map +1 -0
  531. package/dist/cli/commands/user-cmd.js +195 -0
  532. package/dist/cli/commands/user-cmd.js.map +1 -0
  533. package/dist/cli/framework.d.ts +28 -0
  534. package/dist/cli/framework.d.ts.map +1 -0
  535. package/dist/cli/framework.js +29 -0
  536. package/dist/cli/framework.js.map +1 -0
  537. package/dist/cli/generators/capability-generator.d.ts +35 -0
  538. package/dist/cli/generators/capability-generator.d.ts.map +1 -0
  539. package/dist/cli/generators/capability-generator.js +380 -0
  540. package/dist/cli/generators/capability-generator.js.map +1 -0
  541. package/dist/cli/helpers/app-tsx-wiring.d.ts +52 -0
  542. package/dist/cli/helpers/app-tsx-wiring.d.ts.map +1 -0
  543. package/dist/cli/helpers/app-tsx-wiring.js +732 -0
  544. package/dist/cli/helpers/app-tsx-wiring.js.map +1 -0
  545. package/dist/cli/helpers/auth-client.d.ts +19 -0
  546. package/dist/cli/helpers/auth-client.d.ts.map +1 -0
  547. package/dist/cli/helpers/auth-client.js +42 -0
  548. package/dist/cli/helpers/auth-client.js.map +1 -0
  549. package/dist/cli/helpers/backup.d.ts +16 -0
  550. package/dist/cli/helpers/backup.d.ts.map +1 -0
  551. package/dist/cli/helpers/backup.js +34 -0
  552. package/dist/cli/helpers/backup.js.map +1 -0
  553. package/dist/cli/helpers/column-template.d.ts +20 -0
  554. package/dist/cli/helpers/column-template.d.ts.map +1 -0
  555. package/dist/cli/helpers/column-template.js +158 -0
  556. package/dist/cli/helpers/column-template.js.map +1 -0
  557. package/dist/cli/helpers/duration.d.ts +5 -0
  558. package/dist/cli/helpers/duration.d.ts.map +1 -0
  559. package/dist/cli/helpers/duration.js +5 -0
  560. package/dist/cli/helpers/duration.js.map +1 -0
  561. package/dist/cli/helpers/field-template.d.ts +14 -0
  562. package/dist/cli/helpers/field-template.d.ts.map +1 -0
  563. package/dist/cli/helpers/field-template.js +113 -0
  564. package/dist/cli/helpers/field-template.js.map +1 -0
  565. package/dist/cli/helpers/i18n-template.d.ts +21 -0
  566. package/dist/cli/helpers/i18n-template.d.ts.map +1 -0
  567. package/dist/cli/helpers/i18n-template.js +69 -0
  568. package/dist/cli/helpers/i18n-template.js.map +1 -0
  569. package/dist/cli/helpers/naming.d.ts +11 -0
  570. package/dist/cli/helpers/naming.d.ts.map +1 -0
  571. package/dist/cli/helpers/naming.js +21 -0
  572. package/dist/cli/helpers/naming.js.map +1 -0
  573. package/dist/cli/index.d.ts +9 -0
  574. package/dist/cli/index.d.ts.map +1 -0
  575. package/dist/cli/index.js +45 -0
  576. package/dist/cli/index.js.map +1 -0
  577. package/dist/cli/lib/credentials.d.ts +27 -0
  578. package/dist/cli/lib/credentials.d.ts.map +1 -0
  579. package/dist/cli/lib/credentials.js +112 -0
  580. package/dist/cli/lib/credentials.js.map +1 -0
  581. package/dist/cli/templates/auth-wiring.d.ts +17 -0
  582. package/dist/cli/templates/auth-wiring.d.ts.map +1 -0
  583. package/dist/cli/templates/auth-wiring.js +31 -0
  584. package/dist/cli/templates/auth-wiring.js.map +1 -0
  585. package/dist/cli/templates/backend-entry.d.ts +5 -0
  586. package/dist/cli/templates/backend-entry.d.ts.map +1 -0
  587. package/dist/cli/templates/backend-entry.js +17 -0
  588. package/dist/cli/templates/backend-entry.js.map +1 -0
  589. package/dist/cli/templates/claude-md.d.ts +20 -0
  590. package/dist/cli/templates/claude-md.d.ts.map +1 -0
  591. package/dist/cli/templates/claude-md.js +123 -0
  592. package/dist/cli/templates/claude-md.js.map +1 -0
  593. package/dist/cli/templates/crud-page.d.ts +14 -0
  594. package/dist/cli/templates/crud-page.d.ts.map +1 -0
  595. package/dist/cli/templates/crud-page.js +430 -0
  596. package/dist/cli/templates/crud-page.js.map +1 -0
  597. package/dist/cli/templates/dashboard-page.d.ts +11 -0
  598. package/dist/cli/templates/dashboard-page.d.ts.map +1 -0
  599. package/dist/cli/templates/dashboard-page.js +464 -0
  600. package/dist/cli/templates/dashboard-page.js.map +1 -0
  601. package/dist/cli/templates/frontend-entry.d.ts +11 -0
  602. package/dist/cli/templates/frontend-entry.d.ts.map +1 -0
  603. package/dist/cli/templates/frontend-entry.js +94 -0
  604. package/dist/cli/templates/frontend-entry.js.map +1 -0
  605. package/dist/cli/templates/gitignore.d.ts +5 -0
  606. package/dist/cli/templates/gitignore.d.ts.map +1 -0
  607. package/dist/cli/templates/gitignore.js +13 -0
  608. package/dist/cli/templates/gitignore.js.map +1 -0
  609. package/dist/cli/templates/index.d.ts +21 -0
  610. package/dist/cli/templates/index.d.ts.map +1 -0
  611. package/dist/cli/templates/index.js +21 -0
  612. package/dist/cli/templates/index.js.map +1 -0
  613. package/dist/cli/templates/login-page.d.ts +9 -0
  614. package/dist/cli/templates/login-page.d.ts.map +1 -0
  615. package/dist/cli/templates/login-page.js +75 -0
  616. package/dist/cli/templates/login-page.js.map +1 -0
  617. package/dist/cli/templates/loom-config.d.ts +13 -0
  618. package/dist/cli/templates/loom-config.d.ts.map +1 -0
  619. package/dist/cli/templates/loom-config.js +61 -0
  620. package/dist/cli/templates/loom-config.js.map +1 -0
  621. package/dist/cli/templates/model-management-page.d.ts +9 -0
  622. package/dist/cli/templates/model-management-page.d.ts.map +1 -0
  623. package/dist/cli/templates/model-management-page.js +299 -0
  624. package/dist/cli/templates/model-management-page.js.map +1 -0
  625. package/dist/cli/templates/notification-center-page.d.ts +9 -0
  626. package/dist/cli/templates/notification-center-page.d.ts.map +1 -0
  627. package/dist/cli/templates/notification-center-page.js +258 -0
  628. package/dist/cli/templates/notification-center-page.js.map +1 -0
  629. package/dist/cli/templates/notification-detail-page.d.ts +9 -0
  630. package/dist/cli/templates/notification-detail-page.d.ts.map +1 -0
  631. package/dist/cli/templates/notification-detail-page.js +102 -0
  632. package/dist/cli/templates/notification-detail-page.js.map +1 -0
  633. package/dist/cli/templates/package-json.d.ts +9 -0
  634. package/dist/cli/templates/package-json.d.ts.map +1 -0
  635. package/dist/cli/templates/package-json.js +41 -0
  636. package/dist/cli/templates/package-json.js.map +1 -0
  637. package/dist/cli/templates/process-management-page.d.ts +8 -0
  638. package/dist/cli/templates/process-management-page.d.ts.map +1 -0
  639. package/dist/cli/templates/process-management-page.js +902 -0
  640. package/dist/cli/templates/process-management-page.js.map +1 -0
  641. package/dist/cli/templates/readme.d.ts +9 -0
  642. package/dist/cli/templates/readme.d.ts.map +1 -0
  643. package/dist/cli/templates/readme.js +47 -0
  644. package/dist/cli/templates/readme.js.map +1 -0
  645. package/dist/cli/templates/skill-management-page.d.ts +9 -0
  646. package/dist/cli/templates/skill-management-page.d.ts.map +1 -0
  647. package/dist/cli/templates/skill-management-page.js +476 -0
  648. package/dist/cli/templates/skill-management-page.js.map +1 -0
  649. package/dist/cli/templates/system-settings-page.d.ts +10 -0
  650. package/dist/cli/templates/system-settings-page.d.ts.map +1 -0
  651. package/dist/cli/templates/system-settings-page.js +768 -0
  652. package/dist/cli/templates/system-settings-page.js.map +1 -0
  653. package/dist/cli/templates/tsconfig.d.ts +6 -0
  654. package/dist/cli/templates/tsconfig.d.ts.map +1 -0
  655. package/dist/cli/templates/tsconfig.js +41 -0
  656. package/dist/cli/templates/tsconfig.js.map +1 -0
  657. package/dist/cli/templates/user-management-page.d.ts +10 -0
  658. package/dist/cli/templates/user-management-page.d.ts.map +1 -0
  659. package/dist/cli/templates/user-management-page.js +495 -0
  660. package/dist/cli/templates/user-management-page.js.map +1 -0
  661. package/dist/cli/templates/vite-config.d.ts +5 -0
  662. package/dist/cli/templates/vite-config.d.ts.map +1 -0
  663. package/dist/cli/templates/vite-config.js +24 -0
  664. package/dist/cli/templates/vite-config.js.map +1 -0
  665. package/dist/cli/utils.d.ts +10 -0
  666. package/dist/cli/utils.d.ts.map +1 -0
  667. package/dist/cli/utils.js +31 -0
  668. package/dist/cli/utils.js.map +1 -0
  669. package/dist/commands.d.ts +1 -5
  670. package/dist/commands.d.ts.map +1 -1
  671. package/dist/commands.js +0 -11
  672. package/dist/commands.js.map +1 -1
  673. package/dist/config.d.ts +1175 -93
  674. package/dist/config.d.ts.map +1 -1
  675. package/dist/config.js +136 -15
  676. package/dist/config.js.map +1 -1
  677. package/dist/dashboard-config.d.ts +149 -0
  678. package/dist/dashboard-config.d.ts.map +1 -0
  679. package/dist/dashboard-config.js +40 -0
  680. package/dist/dashboard-config.js.map +1 -0
  681. package/dist/index.d.ts +23 -9
  682. package/dist/index.d.ts.map +1 -1
  683. package/dist/index.js +20 -5
  684. package/dist/index.js.map +1 -1
  685. package/dist/server-bin.d.ts +12 -0
  686. package/dist/server-bin.d.ts.map +1 -0
  687. package/dist/server-bin.js +43 -0
  688. package/dist/server-bin.js.map +1 -0
  689. package/dist/system-prompt.d.ts +20 -0
  690. package/dist/system-prompt.d.ts.map +1 -0
  691. package/dist/system-prompt.js +140 -0
  692. package/dist/system-prompt.js.map +1 -0
  693. package/dist/types/adapter.d.ts +30 -0
  694. package/dist/types/adapter.d.ts.map +1 -0
  695. package/dist/types/adapter.js +5 -0
  696. package/dist/types/adapter.js.map +1 -0
  697. package/dist/types/ai.d.ts +74 -0
  698. package/dist/types/ai.d.ts.map +1 -0
  699. package/dist/types/ai.js +5 -0
  700. package/dist/types/ai.js.map +1 -0
  701. package/dist/types/auth.d.ts +62 -0
  702. package/dist/types/auth.d.ts.map +1 -0
  703. package/dist/types/auth.js +5 -0
  704. package/dist/types/auth.js.map +1 -0
  705. package/dist/types/chat.d.ts +47 -0
  706. package/dist/types/chat.d.ts.map +1 -0
  707. package/dist/types/chat.js +8 -0
  708. package/dist/types/chat.js.map +1 -0
  709. package/dist/types/command.d.ts +25 -0
  710. package/dist/types/command.d.ts.map +1 -0
  711. package/dist/types/command.js +5 -0
  712. package/dist/types/command.js.map +1 -0
  713. package/dist/types/config.d.ts +65 -0
  714. package/dist/types/config.d.ts.map +1 -0
  715. package/dist/types/config.js +5 -0
  716. package/dist/types/config.js.map +1 -0
  717. package/dist/types/dashboard.d.ts +59 -0
  718. package/dist/types/dashboard.d.ts.map +1 -0
  719. package/dist/types/dashboard.js +5 -0
  720. package/dist/types/dashboard.js.map +1 -0
  721. package/dist/types/event.d.ts +101 -0
  722. package/dist/types/event.d.ts.map +1 -0
  723. package/dist/types/event.js +38 -0
  724. package/dist/types/event.js.map +1 -0
  725. package/dist/types/index.d.ts +21 -0
  726. package/dist/types/index.d.ts.map +1 -0
  727. package/dist/types/index.js +9 -0
  728. package/dist/types/index.js.map +1 -0
  729. package/dist/types/locale.d.ts +21 -0
  730. package/dist/types/locale.d.ts.map +1 -0
  731. package/dist/types/locale.js +36 -0
  732. package/dist/types/locale.js.map +1 -0
  733. package/dist/types/model.d.ts +69 -0
  734. package/dist/types/model.d.ts.map +1 -0
  735. package/dist/types/model.js +5 -0
  736. package/dist/types/model.js.map +1 -0
  737. package/dist/types/notification.d.ts +31 -0
  738. package/dist/types/notification.d.ts.map +1 -0
  739. package/dist/types/notification.js +5 -0
  740. package/dist/types/notification.js.map +1 -0
  741. package/dist/types/process.d.ts +148 -0
  742. package/dist/types/process.d.ts.map +1 -0
  743. package/dist/types/process.js +5 -0
  744. package/dist/types/process.js.map +1 -0
  745. package/dist/types.d.ts +4 -199
  746. package/dist/types.d.ts.map +1 -1
  747. package/dist/types.js +4 -3
  748. package/dist/types.js.map +1 -1
  749. package/dist/utils/duration.d.ts +8 -0
  750. package/dist/utils/duration.d.ts.map +1 -0
  751. package/dist/utils/duration.js +22 -0
  752. package/dist/utils/duration.js.map +1 -0
  753. package/dist/utils/id.d.ts +7 -0
  754. package/dist/utils/id.d.ts.map +1 -0
  755. package/dist/utils/id.js +9 -0
  756. package/dist/utils/id.js.map +1 -0
  757. package/package.json +24 -3
@@ -0,0 +1,902 @@
1
+ /**
2
+ * ProcessManagementPage Template
3
+ *
4
+ * Follows SkillManagementPage patterns: flex column layout, breadcrumb,
5
+ * theme tokens, showLine/blockNode tree, i18n, Card wrapper.
6
+ */
7
+ export function processManagementPageTemplate() {
8
+ return `import React, { useState, useEffect, useCallback, useMemo, useContext, useRef } from 'react';
9
+ import {
10
+ Card,
11
+ Tree,
12
+ Tabs,
13
+ Table,
14
+ Tag,
15
+ Button,
16
+ Modal,
17
+ Spin,
18
+ Segmented,
19
+ Dropdown,
20
+ Flex,
21
+ Breadcrumb,
22
+ Space,
23
+ Descriptions,
24
+ Tooltip,
25
+ Timeline,
26
+ Empty,
27
+ message,
28
+ Typography,
29
+ theme,
30
+ } from 'antd';
31
+ import {
32
+ PlayCircleOutlined,
33
+ PauseCircleOutlined,
34
+ DeleteOutlined,
35
+ ReloadOutlined,
36
+ PlusOutlined,
37
+ FileTextOutlined,
38
+ FolderOutlined,
39
+ ClockCircleOutlined,
40
+ ThunderboltOutlined,
41
+ CalendarOutlined,
42
+ ExclamationCircleOutlined,
43
+ MoreOutlined,
44
+ HomeOutlined,
45
+ EyeOutlined,
46
+ CodeOutlined,
47
+ MessageOutlined,
48
+ } from '@ant-design/icons';
49
+ import {
50
+ useLocale, useLoomTheme, useAppShell, registerMessages,
51
+ SkillFileViewer,
52
+ fetchProcesses, fetchProcess,
53
+ fetchProcessLogs, fetchProcessMetrics, fetchProcessMetricsConfig,
54
+ fetchProcessMetricsSnapshots, fetchProcessMetricsViewConfig,
55
+ fetchProcessFiles, fetchProcessFileContent,
56
+ runProcess, pauseProcess, resumeProcess, deleteProcess,
57
+ getFileIcon,
58
+ AIContext,
59
+ } from '@loom-framework/frontend-antd';
60
+ import type {
61
+ ProcessInfo, ProcessLogEntry, ProcessMetricsAggregate, FileContent,
62
+ ProcessMetricSnapshot, ProcessMetricsViewConfig,
63
+ } from '@loom-framework/frontend-antd';
64
+ import { DashboardChart } from '@loom-framework/frontend-antd';
65
+
66
+ const { Text } = Typography;
67
+
68
+ interface ProcessTreeNode {
69
+ key: string;
70
+ title: string;
71
+ icon: React.ReactNode;
72
+ isLeaf: boolean;
73
+ isFile?: boolean;
74
+ isDir?: boolean;
75
+ isProcess?: boolean;
76
+ filePath?: string;
77
+ processName?: string;
78
+ children?: ProcessTreeNode[];
79
+ }
80
+
81
+ registerMessages('zh-CN', {
82
+ 'process.title': '过程管理',
83
+ 'process.create': '创建过程',
84
+ 'process.createDisabledHint': '过程创建比较复杂,在 AI 对话框输入「我要创建一个 xxx 过程」,让 Loom 帮助你吧!^_^',
85
+ 'process.delete': '删除',
86
+ 'process.run': '立即执行',
87
+ 'process.pause': '暂停',
88
+ 'process.resume': '恢复',
89
+ 'process.overview': '概览',
90
+ 'process.logs': '日志',
91
+ 'process.metrics': '指标',
92
+ 'process.name': '名称',
93
+ 'process.status': '状态',
94
+ 'process.trigger': '触发器',
95
+ 'process.owner': '负责人',
96
+ 'process.mode': '模式',
97
+ 'process.modeLightweight': '轻量',
98
+ 'process.modeFull': '完整',
99
+ 'process.statusIdle': '空闲',
100
+ 'process.statusRunning': '运行中',
101
+ 'process.statusBusy': '繁忙',
102
+ 'process.statusPaused': '已暂停',
103
+ 'process.statusError': '错误',
104
+ 'process.noProcesses': '暂无过程',
105
+ 'process.noMetrics': '未配置指标',
106
+ 'process.noLogs': '暂无执行日志',
107
+ 'process.queue': '执行队列',
108
+ 'process.queueRunning': '运行中',
109
+ 'process.queueQueued': '等待中',
110
+ 'process.cron': '定时触发',
111
+ 'process.event': '事件触发',
112
+ 'process.manual': '手动触发',
113
+ 'process.lastRun': '上次执行',
114
+ 'process.nextRun': '下次执行',
115
+ 'process.duration': '耗时',
116
+ 'process.confirmDelete': '确认删除',
117
+ 'process.confirmDeleteContent': '确定要删除过程「{name}」吗?',
118
+ 'process.processNotFound': '未找到 PROCESS.md,请先运行 loom process generate',
119
+ 'process.createViaAI': '使用 AI 创建过程',
120
+ 'process.refresh': '刷新',
121
+ 'process.more': '更多',
122
+ 'process.prompt': '提示词',
123
+ 'process.description': '描述',
124
+ 'process.runTriggered': '已触发执行,Run ID: {runId}',
125
+ 'process.runFailed': '执行触发失败',
126
+ 'process.pauseFailed': '暂停失败',
127
+ 'process.resumeFailed': '恢复失败',
128
+ 'process.deleteFailed': '删除失败',
129
+ 'process.loadFailed': '加载过程列表失败',
130
+ 'process.loadDetailFailed': '加载过程详情失败',
131
+ 'process.processDetail': '过程详情',
132
+ 'process.selectToView': '选择左侧过程或文件以查看详情',
133
+ 'process.preview': '预览',
134
+ 'process.source': '源码',
135
+ 'process.colDate': '日期',
136
+ 'process.colTotal': '总执行',
137
+ 'process.colCompleted': '成功',
138
+ 'process.colFailed': '失败',
139
+ 'process.colTimeout': '超时',
140
+ 'process.colAvgDuration': '平均耗时',
141
+ 'process.colRunId': '执行 ID',
142
+ 'process.colTriggerType': '触发类型',
143
+ 'process.colResult': '结果',
144
+ 'process.colTime': '时间',
145
+ 'process.viewSession': '查看 AI 会话',
146
+ 'process.businessMetrics': '业务指标',
147
+ 'process.operationalMetrics': '运行统计',
148
+ 'process.noBusinessMetrics': '暂无业务指标数据',
149
+ 'process.metricValue': '指标值',
150
+ 'process.metricTarget': '目标',
151
+ 'process.metricTrend': '趋势',
152
+ });
153
+
154
+ registerMessages('en-US', {
155
+ 'process.title': 'Process Management',
156
+ 'process.create': 'Create Process',
157
+ 'process.createDisabledHint': 'Process creation is complex. Type "I want to create a xxx process" in the AI chat and let Loom help you! ^_^',
158
+ 'process.delete': 'Delete',
159
+ 'process.run': 'Run Now',
160
+ 'process.pause': 'Pause',
161
+ 'process.resume': 'Resume',
162
+ 'process.overview': 'Overview',
163
+ 'process.logs': 'Logs',
164
+ 'process.metrics': 'Metrics',
165
+ 'process.name': 'Name',
166
+ 'process.status': 'Status',
167
+ 'process.trigger': 'Trigger',
168
+ 'process.owner': 'Owner',
169
+ 'process.mode': 'Mode',
170
+ 'process.modeLightweight': 'Lightweight',
171
+ 'process.modeFull': 'Full',
172
+ 'process.statusIdle': 'Idle',
173
+ 'process.statusRunning': 'Running',
174
+ 'process.statusBusy': 'Busy',
175
+ 'process.statusPaused': 'Paused',
176
+ 'process.statusError': 'Error',
177
+ 'process.noProcesses': 'No processes',
178
+ 'process.noMetrics': 'No metrics configured',
179
+ 'process.noLogs': 'No execution logs',
180
+ 'process.queue': 'Execution Queue',
181
+ 'process.queueRunning': 'Running',
182
+ 'process.queueQueued': 'Queued',
183
+ 'process.cron': 'Cron Trigger',
184
+ 'process.event': 'Event Trigger',
185
+ 'process.manual': 'Manual Trigger',
186
+ 'process.lastRun': 'Last Run',
187
+ 'process.nextRun': 'Next Run',
188
+ 'process.duration': 'Duration',
189
+ 'process.confirmDelete': 'Confirm Delete',
190
+ 'process.confirmDeleteContent': 'Are you sure you want to delete process "{name}"?',
191
+ 'process.processNotFound': 'PROCESS.md not found. Run loom process generate first',
192
+ 'process.createViaAI': 'Create Process with AI',
193
+ 'process.refresh': 'Refresh',
194
+ 'process.more': 'More',
195
+ 'process.prompt': 'Prompt',
196
+ 'process.description': 'Description',
197
+ 'process.runTriggered': 'Process triggered. Run ID: {runId}',
198
+ 'process.runFailed': 'Failed to trigger process',
199
+ 'process.pauseFailed': 'Failed to pause',
200
+ 'process.resumeFailed': 'Failed to resume',
201
+ 'process.deleteFailed': 'Failed to delete',
202
+ 'process.loadFailed': 'Failed to load processes',
203
+ 'process.loadDetailFailed': 'Failed to load process detail',
204
+ 'process.processDetail': 'Process Details',
205
+ 'process.selectToView': 'Select a process or file to view details',
206
+ 'process.preview': 'Preview',
207
+ 'process.source': 'Source',
208
+ 'process.colDate': 'Date',
209
+ 'process.colTotal': 'Total',
210
+ 'process.colCompleted': 'Completed',
211
+ 'process.colFailed': 'Failed',
212
+ 'process.colTimeout': 'Timeout',
213
+ 'process.colAvgDuration': 'Avg Duration',
214
+ 'process.colRunId': 'Run ID',
215
+ 'process.colTriggerType': 'Trigger',
216
+ 'process.colResult': 'Result',
217
+ 'process.colTime': 'Time',
218
+ 'process.viewSession': 'View AI Session',
219
+ 'process.businessMetrics': 'Business Metrics',
220
+ 'process.operationalMetrics': 'Operational Metrics',
221
+ 'process.noBusinessMetrics': 'No business metrics data',
222
+ 'process.metricValue': 'Value',
223
+ 'process.metricTarget': 'Target',
224
+ 'process.metricTrend': 'Trend',
225
+ });
226
+
227
+ const STATUS_COLORS: Record<string, string> = {
228
+ idle: 'default',
229
+ running: 'processing',
230
+ busy: 'orange',
231
+ paused: 'warning',
232
+ error: 'error',
233
+ };
234
+
235
+ const STATUS_ICONS: Record<string, React.ReactNode> = {
236
+ idle: <ClockCircleOutlined />,
237
+ running: <PlayCircleOutlined />,
238
+ busy: <ThunderboltOutlined />,
239
+ paused: <PauseCircleOutlined />,
240
+ error: <ExclamationCircleOutlined />,
241
+ };
242
+
243
+ const TRIGGER_ICONS: Record<string, React.ReactNode> = {
244
+ cron: <CalendarOutlined />,
245
+ event: <ThunderboltOutlined />,
246
+ manual: <PlayCircleOutlined />,
247
+ };
248
+
249
+ export default function ProcessManagementPage(): React.ReactElement {
250
+ const { mode } = useLoomTheme();
251
+ const { t } = useLocale();
252
+ const { breadcrumbs, onNavClick } = useAppShell();
253
+ const { token } = theme.useToken();
254
+ const aiContext = useContext(AIContext);
255
+
256
+ const [processes, setProcesses] = useState<ProcessInfo[]>([]);
257
+ const [treeData, setTreeData] = useState<ProcessTreeNode[]>([]);
258
+ const [selectedKeys, setSelectedKeys] = useState<React.Key[]>([]);
259
+ const [expandedKeys, setExpandedKeys] = useState<React.Key[]>([]);
260
+ const [selectedProcess, setSelectedProcess] = useState<(ProcessInfo & { status?: string }) | null>(null);
261
+ const [fileContent, setFileContent] = useState<FileContent | null>(null);
262
+ const [processMdContent, setProcessMdContent] = useState<FileContent | null>(null);
263
+ const [loading, setLoading] = useState(false);
264
+ const [viewMode, setViewMode] = useState<'preview' | 'source'>('preview');
265
+ const [activeTab, setActiveTab] = useState('overview');
266
+ const [logs, setLogs] = useState<ProcessLogEntry[]>([]);
267
+ const [metrics, setMetrics] = useState<ProcessMetricsAggregate[]>([]);
268
+ const [metricsConfig, setMetricsConfig] = useState<Record<string, unknown>[]>([]);
269
+ const [metricSnapshots, setMetricSnapshots] = useState<ProcessMetricSnapshot[]>([]);
270
+ const [metricsViewConfig, setMetricsViewConfig] = useState<ProcessMetricsViewConfig | null>(null);
271
+ const [executing, setExecuting] = useState(false);
272
+
273
+ const buildTreeData = useCallback((processList: ProcessInfo[]): ProcessTreeNode[] => {
274
+ return processList.map((proc) => {
275
+ const children: ProcessTreeNode[] = [];
276
+
277
+ if (proc.hasProcessFile) {
278
+ children.push({
279
+ key: \`\${proc.name}/PROCESS.md\`,
280
+ title: 'PROCESS.md',
281
+ icon: <FileTextOutlined style={{ color: token.colorPrimary }} />,
282
+ isLeaf: true,
283
+ isFile: true,
284
+ filePath: 'PROCESS.md',
285
+ processName: proc.name,
286
+ });
287
+ children.push({
288
+ key: \`\${proc.name}/references\`,
289
+ title: 'references/',
290
+ icon: <FolderOutlined style={{ color: token.colorWarning }} />,
291
+ isLeaf: false,
292
+ isFile: false,
293
+ isDir: true,
294
+ filePath: 'references',
295
+ children: [],
296
+ processName: proc.name,
297
+ });
298
+ }
299
+
300
+ return {
301
+ key: proc.name,
302
+ title: proc.name,
303
+ icon: proc.hasProcessFile ? <FolderOutlined /> : <ThunderboltOutlined style={{ color: token.colorWarning }} />,
304
+ isLeaf: false,
305
+ isFile: false,
306
+ isProcess: true,
307
+ children,
308
+ processName: proc.name,
309
+ };
310
+ });
311
+ }, [token]);
312
+
313
+ const loadProcesses = useCallback(async () => {
314
+ setLoading(true);
315
+ try {
316
+ const result = await fetchProcesses();
317
+ const list = result.data ?? [];
318
+ setProcesses(list);
319
+ setTreeData(buildTreeData(list));
320
+ setExpandedKeys(list.map((p) => p.name));
321
+ } catch {
322
+ // error handled silently
323
+ } finally {
324
+ setLoading(false);
325
+ }
326
+ }, [buildTreeData]);
327
+
328
+ useEffect(() => { loadProcesses(); }, [loadProcesses]);
329
+
330
+ // Auto-refresh every 5 seconds, pause when tab is hidden
331
+ const pollRef = useRef<ReturnType<typeof setInterval> | null>(null);
332
+ useEffect(() => {
333
+ const poll = () => {
334
+ if (document.visibilityState === 'visible') {
335
+ loadProcesses();
336
+ }
337
+ };
338
+ pollRef.current = setInterval(poll, 5000);
339
+ const handleVisibility = () => {
340
+ if (document.visibilityState === 'visible') {
341
+ poll(); // Immediate refresh when tab becomes visible
342
+ }
343
+ };
344
+ document.addEventListener('visibilitychange', handleVisibility);
345
+ return () => {
346
+ if (pollRef.current) clearInterval(pollRef.current);
347
+ document.removeEventListener('visibilitychange', handleVisibility);
348
+ };
349
+ }, [loadProcesses]);
350
+
351
+ const loadDirChildren = useCallback(async (processName: string, dirName: string): Promise<ProcessTreeNode[]> => {
352
+ const data = await fetchProcessFiles(processName);
353
+ const dirFiles = data.filter((f) => f.path.startsWith(\`\${dirName}/\`) && !f.isDirectory);
354
+
355
+ const dirChildren: ProcessTreeNode[] = [];
356
+ for (const f of dirFiles) {
357
+ const relativePath = f.path.slice(dirName.length + 1);
358
+ const parts = relativePath.split('/');
359
+
360
+ let currentLevel = dirChildren;
361
+ for (let i = 0; i < parts.length; i++) {
362
+ const part = parts[i]!;
363
+ const isLast = i === parts.length - 1;
364
+ const partialPath = \`\${dirName}/\${parts.slice(0, i + 1).join('/')}\`;
365
+
366
+ if (isLast) {
367
+ currentLevel.push({
368
+ key: \`\${processName}/\${f.path}\`,
369
+ title: part,
370
+ icon: getFileIcon(part, { primary: token.colorPrimary, warning: token.colorWarning, success: token.colorSuccess }),
371
+ isLeaf: true,
372
+ isFile: true,
373
+ filePath: f.path,
374
+ processName,
375
+ });
376
+ } else {
377
+ let dirNode = currentLevel.find((n) => n.isDir && n.filePath === partialPath);
378
+ if (!dirNode) {
379
+ dirNode = {
380
+ key: \`\${processName}/\${partialPath}\`,
381
+ title: \`\${part}/\`,
382
+ icon: <FolderOutlined style={{ color: token.colorWarning }} />,
383
+ isLeaf: false,
384
+ isFile: false,
385
+ isDir: true,
386
+ filePath: partialPath,
387
+ children: [],
388
+ processName,
389
+ };
390
+ currentLevel.push(dirNode);
391
+ }
392
+ currentLevel = dirNode.children!;
393
+ }
394
+ }
395
+ }
396
+ return dirChildren;
397
+ }, [token]);
398
+
399
+ const handleTreeExpand = useCallback(
400
+ async (keys: React.Key[], info: { node: ProcessTreeNode; expanded: boolean }) => {
401
+ setExpandedKeys(keys);
402
+ if (!info.expanded) return;
403
+ const node = info.node;
404
+ if (node.processName && node.isDir) {
405
+ if (node.children && node.children.length > 0) return;
406
+ const dirName = node.filePath || node.title.replace(/\\/$/, '');
407
+ const dirChildren = await loadDirChildren(node.processName, dirName);
408
+
409
+ const updateNode = (nodes: ProcessTreeNode[]): ProcessTreeNode[] =>
410
+ nodes.map((n) => {
411
+ if (n.key === node.key) {
412
+ return { ...n, children: dirChildren };
413
+ }
414
+ if (n.children) {
415
+ return { ...n, children: updateNode(n.children) };
416
+ }
417
+ return n;
418
+ });
419
+
420
+ setTreeData((prev) => updateNode(prev));
421
+ }
422
+ },
423
+ [loadDirChildren],
424
+ );
425
+
426
+ const selectProcess = useCallback(async (name: string) => {
427
+ try {
428
+ const data = await fetchProcess(name);
429
+ setSelectedProcess(data);
430
+ setFileContent(null);
431
+ setProcessMdContent(null);
432
+ setLogs([]);
433
+ setMetrics([]);
434
+ setMetricsConfig([]);
435
+ setMetricSnapshots([]);
436
+ setMetricsViewConfig(null);
437
+ setActiveTab('overview');
438
+ if (data.hasProcessFile) {
439
+ try {
440
+ const mdContent = await fetchProcessFileContent(name, 'PROCESS.md');
441
+ setProcessMdContent({ content: mdContent, path: 'PROCESS.md' });
442
+ } catch { /* ignore */ }
443
+ }
444
+ } catch {
445
+ // error handled silently
446
+ }
447
+ }, []);
448
+
449
+ const handleTreeSelect = useCallback(
450
+ async (keys: React.Key[], info: { node: ProcessTreeNode }) => {
451
+ setSelectedKeys(keys);
452
+ if (keys.length === 0) {
453
+ setSelectedProcess(null);
454
+ setFileContent(null);
455
+ return;
456
+ }
457
+ const node = info.node;
458
+
459
+ if (node.isFile && node.processName && node.filePath) {
460
+ setLoading(true);
461
+ try {
462
+ if (node.filePath === 'PROCESS.md') {
463
+ await selectProcess(node.processName);
464
+ } else {
465
+ const content = await fetchProcessFileContent(node.processName, node.filePath);
466
+ setFileContent({ content, path: node.filePath });
467
+ setSelectedProcess(null);
468
+ setProcessMdContent(null);
469
+ }
470
+ } catch {
471
+ // error handled silently
472
+ } finally {
473
+ setLoading(false);
474
+ }
475
+ } else if (node.isProcess && node.processName) {
476
+ await selectProcess(node.processName);
477
+ }
478
+ },
479
+ [selectProcess],
480
+ );
481
+
482
+ const handleRun = useCallback(async () => {
483
+ if (!selectedProcess) return;
484
+ setExecuting(true);
485
+ try {
486
+ const result = await runProcess(selectedProcess.name);
487
+ message.success(t('process.runTriggered', { runId: result.runId }));
488
+ // Immediate refresh to show Running status
489
+ await loadProcesses();
490
+ selectProcess(selectedProcess.name);
491
+ } catch {
492
+ message.error(t('process.runFailed'));
493
+ } finally {
494
+ setExecuting(false);
495
+ }
496
+ }, [selectedProcess, loadProcesses, selectProcess, t]);
497
+
498
+ const handlePause = useCallback(async () => {
499
+ if (!selectedProcess) return;
500
+ try {
501
+ await pauseProcess(selectedProcess.name);
502
+ loadProcesses();
503
+ selectProcess(selectedProcess.name);
504
+ } catch {
505
+ message.error(t('process.pauseFailed'));
506
+ }
507
+ }, [selectedProcess, loadProcesses, selectProcess]);
508
+
509
+ const handleResume = useCallback(async () => {
510
+ if (!selectedProcess) return;
511
+ try {
512
+ await resumeProcess(selectedProcess.name);
513
+ loadProcesses();
514
+ selectProcess(selectedProcess.name);
515
+ } catch {
516
+ message.error(t('process.resumeFailed'));
517
+ }
518
+ }, [selectedProcess, loadProcesses, selectProcess]);
519
+
520
+ const handleDelete = useCallback(
521
+ async (processName: string) => {
522
+ try {
523
+ await deleteProcess(processName);
524
+ setSelectedProcess(null);
525
+ setFileContent(null);
526
+ setSelectedKeys([]);
527
+ loadProcesses();
528
+ } catch {
529
+ message.error(t('process.deleteFailed'));
530
+ }
531
+ },
532
+ [loadProcesses, t],
533
+ );
534
+
535
+ const loadLogs = useCallback(async () => {
536
+ if (!selectedProcess) return;
537
+ try {
538
+ const data = await fetchProcessLogs(selectedProcess.name, 50);
539
+ setLogs(data);
540
+ } catch { /* ignore */ }
541
+ }, [selectedProcess]);
542
+
543
+ const loadMetrics = useCallback(async () => {
544
+ if (!selectedProcess) return;
545
+ try {
546
+ const [m, c, snapshots, viewConfig] = await Promise.all([
547
+ fetchProcessMetrics(selectedProcess.name),
548
+ fetchProcessMetricsConfig(selectedProcess.name),
549
+ fetchProcessMetricsSnapshots(selectedProcess.name),
550
+ fetchProcessMetricsViewConfig(selectedProcess.name),
551
+ ]);
552
+ setMetrics(m);
553
+ setMetricsConfig(c);
554
+ setMetricSnapshots(snapshots);
555
+ setMetricsViewConfig(viewConfig);
556
+ } catch { /* ignore */ }
557
+ }, [selectedProcess]);
558
+
559
+ const handleTabChange = useCallback((key: string) => {
560
+ setActiveTab(key);
561
+ if (key === 'logs') loadLogs();
562
+ if (key === 'metrics') loadMetrics();
563
+ }, [loadLogs, loadMetrics]);
564
+
565
+ const rightTitle = useMemo(() => {
566
+ if (selectedProcess) return \`\${selectedProcess.name}\`;
567
+ if (fileContent) return fileContent.path;
568
+ return t('process.processDetail');
569
+ }, [selectedProcess, fileContent, t]);
570
+
571
+ // Build status tag for tree node
572
+ const getStatusColor = useCallback((proc: ProcessInfo) => {
573
+ const status = proc.status ?? 'idle';
574
+ return STATUS_COLORS[status] ?? 'default';
575
+ }, []);
576
+
577
+ return (
578
+ <div style={{ display: 'flex', flexDirection: 'column', flex: 1, minHeight: 0 }}>
579
+ <Flex justify="space-between" align="center" style={{ marginBottom: 12 }}>
580
+ <Breadcrumb items={[{ title: <HomeOutlined onClick={() => onNavClick?.('')} style={{ cursor: 'pointer' }} /> }, ...(breadcrumbs || []).map(b => ({ title: b.path ? <a onClick={() => onNavClick?.(b.path!)}>{b.title}</a> : b.title }))]} />
581
+ <Space>
582
+ <Button icon={<ReloadOutlined />} onClick={loadProcesses} loading={loading}>
583
+ {t('process.refresh')}
584
+ </Button>
585
+ <Tooltip title={t('process.createDisabledHint')}>
586
+ <Button type="primary" icon={<PlusOutlined />} disabled>
587
+ {t('process.create')}
588
+ </Button>
589
+ </Tooltip>
590
+ <Dropdown
591
+ menu={{
592
+ items: selectedProcess
593
+ ? [
594
+ {
595
+ key: 'delete',
596
+ label: t('process.delete'),
597
+ icon: <DeleteOutlined />,
598
+ danger: true,
599
+ onClick: () => {
600
+ Modal.confirm({
601
+ title: t('process.confirmDelete'),
602
+ content: t('process.confirmDeleteContent', { name: selectedProcess.name }),
603
+ okType: 'danger',
604
+ onOk: () => handleDelete(selectedProcess.name),
605
+ });
606
+ },
607
+ },
608
+ ]
609
+ : [],
610
+ }}
611
+ >
612
+ <Button icon={<MoreOutlined />} disabled={!selectedProcess}>
613
+ {t('process.more')}
614
+ </Button>
615
+ </Dropdown>
616
+ </Space>
617
+ </Flex>
618
+
619
+ <Spin spinning={loading && !selectedProcess && !fileContent}>
620
+ <div style={{ display: 'flex', height: '100%', padding: 16, gap: 16, overflow: 'hidden' }}>
621
+ <div style={{ width: 300, minWidth: 240, maxWidth: 500, overflow: 'auto', flexShrink: 0 }}>
622
+ <Tree<ProcessTreeNode>
623
+ treeData={treeData as unknown as any}
624
+ selectedKeys={selectedKeys}
625
+ expandedKeys={expandedKeys}
626
+ showLine={{ showLeafIcon: false }}
627
+ blockNode
628
+ onSelect={handleTreeSelect}
629
+ onExpand={handleTreeExpand}
630
+ style={{ fontSize: 14 }}
631
+ titleRender={(node: any) => (
632
+ <Flex align="center" gap={4}>
633
+ {node.icon}
634
+ <span>{node.title}</span>
635
+ {node.isProcess && (() => {
636
+ const proc = processes.find(p => p.name === node.processName);
637
+ if (!proc) return null;
638
+ const status = proc.status ?? 'idle';
639
+ const statusLabel = status === 'running' ? t('process.statusRunning')
640
+ : status === 'busy' ? t('process.statusBusy')
641
+ : status === 'paused' ? t('process.statusPaused')
642
+ : status === 'error' ? t('process.statusError')
643
+ : t('process.statusIdle');
644
+ return (
645
+ <Tag color={STATUS_COLORS[status]} icon={STATUS_ICONS[status]} style={{ fontSize: 11, lineHeight: '16px', padding: '0 4px', marginRight: 0 }}>
646
+ {statusLabel}
647
+ </Tag>
648
+ );
649
+ })()}
650
+ </Flex>
651
+ )}
652
+ />
653
+ </div>
654
+
655
+ <div style={{ flex: 1, display: 'flex', flexDirection: 'column', overflow: 'hidden', minHeight: 0 }}>
656
+ <Card
657
+ size="small"
658
+ style={{ flex: 1, display: 'flex', flexDirection: 'column', minHeight: 0 }}
659
+ styles={{ body: { padding: 16, flex: 1, overflow: 'auto', minHeight: 0 } }}
660
+ title={
661
+ <Flex align="center" gap="small">
662
+ <span>{rightTitle}</span>
663
+ {((fileContent && !selectedProcess) || (selectedProcess && processMdContent)) && (
664
+ <Segmented
665
+ size="small"
666
+ options={[
667
+ { label: t('process.preview'), value: 'preview', icon: <EyeOutlined /> },
668
+ { label: t('process.source'), value: 'source', icon: <CodeOutlined /> },
669
+ ]}
670
+ value={viewMode}
671
+ onChange={(v) => setViewMode(v as 'preview' | 'source')}
672
+ />
673
+ )}
674
+ </Flex>
675
+ }
676
+ >
677
+ {selectedProcess ? (
678
+ <Tabs
679
+ activeKey={activeTab}
680
+ onChange={handleTabChange}
681
+ items={[
682
+ {
683
+ key: 'overview',
684
+ label: t('process.overview'),
685
+ children: (
686
+ <Space direction="vertical" style={{ width: '100%' }} size="middle">
687
+ <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>
688
+ <Space>
689
+ <Tag color={STATUS_COLORS[selectedProcess.status ?? 'idle']} icon={STATUS_ICONS[selectedProcess.status ?? 'idle']}>
690
+ {(() => {
691
+ const s = selectedProcess.status ?? 'idle';
692
+ return s === 'running' ? t('process.statusRunning')
693
+ : s === 'busy' ? t('process.statusBusy')
694
+ : s === 'paused' ? t('process.statusPaused')
695
+ : s === 'error' ? t('process.statusError')
696
+ : t('process.statusIdle');
697
+ })()}
698
+ </Tag>
699
+ <Tag>{selectedProcess.hasProcessFile ? t('process.modeFull') : t('process.modeLightweight')}</Tag>
700
+ </Space>
701
+ <Space>
702
+ <Tooltip title={selectedProcess.paused ? t('process.resume') : t('process.pause')}>
703
+ <Button icon={selectedProcess.paused ? <PlayCircleOutlined /> : <PauseCircleOutlined />}
704
+ onClick={selectedProcess.paused ? handleResume : handlePause} />
705
+ </Tooltip>
706
+ <Tooltip title={t('process.run')}>
707
+ <Button type="primary" icon={<PlayCircleOutlined />} onClick={handleRun} loading={executing} />
708
+ </Tooltip>
709
+ </Space>
710
+ </div>
711
+
712
+ <Descriptions bordered column={2} size="small"
713
+ styles={{ label: { width: 120, fontWeight: 500, backgroundColor: token.colorFillQuaternary } }}
714
+ items={[
715
+ { key: 'trigger', label: t('process.trigger'), children: (
716
+ <Space>
717
+ {selectedProcess.cron && <Tag icon={<CalendarOutlined />}>{selectedProcess.cron}</Tag>}
718
+ {selectedProcess.onEvent && <Tag icon={<ThunderboltOutlined />}>{selectedProcess.onEvent}</Tag>}
719
+ {!selectedProcess.cron && !selectedProcess.onEvent && <Tag>{t('process.manual')}</Tag>}
720
+ </Space>
721
+ )},
722
+ { key: 'owner', label: t('process.owner'), children: selectedProcess.owner },
723
+ ...(selectedProcess.description ? [{ key: 'desc', label: t('process.description'), children: selectedProcess.description }] : []),
724
+ ...(selectedProcess.prompt ? [{ key: 'prompt', label: t('process.prompt'), children: <Text code style={{ whiteSpace: 'pre-wrap', fontSize: 12, maxWidth: 400, display: 'inline-block' }}>{selectedProcess.prompt}</Text> }] : []),
725
+ ]}
726
+ />
727
+
728
+ {selectedProcess.hasProcessFile && processMdContent && (
729
+ <SkillFileViewer
730
+ skillDetail={null}
731
+ fileContent={processMdContent}
732
+ viewMode={viewMode}
733
+ onViewModeChange={setViewMode}
734
+ mode={mode}
735
+ token={token}
736
+ t={t}
737
+ />
738
+ )}
739
+ </Space>
740
+ ),
741
+ },
742
+ {
743
+ key: 'logs',
744
+ label: t('process.logs'),
745
+ children: (
746
+ <Space direction="vertical" style={{ width: '100%' }}>
747
+ <Button icon={<ReloadOutlined />} onClick={loadLogs} size="small">
748
+ {t('process.refresh')}
749
+ </Button>
750
+ {logs.length === 0 ? (
751
+ <Empty description={t('process.noLogs')} />
752
+ ) : (
753
+ <Timeline
754
+ items={logs.map(log => ({
755
+ color: log.status === 'completed' ? 'green' : log.status === 'failed' ? 'red' : log.status === 'timeout' ? 'orange' : 'blue',
756
+ content: (
757
+ <div>
758
+ <Space>
759
+ <Tooltip title={log.runId}>
760
+ <Text strong>{log.runId.slice(0, 12)}</Text>
761
+ </Tooltip>
762
+ <Tag icon={TRIGGER_ICONS[log.triggerType]}>{log.triggerType}</Tag>
763
+ <Tag color={log.status === 'completed' ? 'success' : 'error'}>{log.status}</Tag>
764
+ {log.sessionId && aiContext?.switchToSession && (
765
+ <Tooltip title={t('process.viewSession')}>
766
+ <Button type="link" size="small" icon={<MessageOutlined />} onClick={() => aiContext.switchToSession!(log.sessionId)} />
767
+ </Tooltip>
768
+ )}
769
+ </Space>
770
+ <div>
771
+ <Text type="secondary">{new Date(log.startedAt).toLocaleString()}</Text>
772
+ {log.durationMs > 0 && <Text type="secondary"> · {(log.durationMs / 1000).toFixed(1)}s</Text>}
773
+ </div>
774
+ {log.error && <Text type="danger" style={{ fontSize: 12 }}>{log.error}</Text>}
775
+ </div>
776
+ ),
777
+ }))}
778
+ />
779
+ )}
780
+ </Space>
781
+ ),
782
+ },
783
+ ...(selectedProcess.hasProcessFile ? [{
784
+ key: 'metrics',
785
+ label: t('process.metrics'),
786
+ children: (
787
+ <Space direction="vertical" style={{ width: '100%' }} size="large">
788
+ {/* Business Metrics — agent-reported */}
789
+ {metricsViewConfig && metricsViewConfig.metrics.length > 0 && (
790
+ <div>
791
+ <Text strong style={{ fontSize: 14, marginBottom: 8, display: 'block' }}>{t('process.businessMetrics')}</Text>
792
+ <div style={{ display: 'grid', gridTemplateColumns: \`repeat(auto-fill, minmax(200px, 1fr))\`, gap: 12, marginBottom: 16 }}>
793
+ {metricsViewConfig.metrics.map((m) => {
794
+ const latestSnapshot = [...metricSnapshots].filter(s => s.metricName === m.metricName).sort((a, b) => b.timestamp.localeCompare(a.timestamp))[0];
795
+ const trend = (() => {
796
+ const ms = metricSnapshots.filter(s => s.metricName === m.metricName).sort((a, b) => a.timestamp.localeCompare(b.timestamp));
797
+ if (ms.length < 2) return null;
798
+ const diff = ms[ms.length - 1]!.value - ms[0]!.value;
799
+ if (diff === 0) return { color: 'default', label: '→' };
800
+ const good = m.direction === 'decreasing' ? diff < 0 : m.direction === 'increasing' ? diff > 0 : true;
801
+ return { color: good ? 'success' : 'error', label: diff > 0 ? '↑' : '↓' };
802
+ })();
803
+ return (
804
+ <Card key={m.metricName} size="small">
805
+ <div style={{ fontSize: 12, color: token.colorTextSecondary }}>{m.title}</div>
806
+ <div style={{ fontSize: 24, fontWeight: 600, marginTop: 4 }}>
807
+ {latestSnapshot ? \`\${latestSnapshot.value}\${latestSnapshot.unit ?? m.unit ?? ''}\` : '-'}
808
+ {trend && <Tag color={trend.color} style={{ marginLeft: 6, fontSize: 12 }}>{trend.label}</Tag>}
809
+ </div>
810
+ {m.target !== undefined && <div style={{ fontSize: 11, color: token.colorTextTertiary }}>Target: {m.target}{m.unit ?? ''}</div>}
811
+ </Card>
812
+ );
813
+ })}
814
+ </div>
815
+ {metricsViewConfig.charts.length > 0 && metricSnapshots.length > 0 && (
816
+ <div style={{ display: 'flex', flexDirection: 'column', gap: 12 }}>
817
+ {metricsViewConfig.charts.map((chart, i) => {
818
+ const chartMetricName = (chart as Record<string, unknown>).metricName as string | undefined;
819
+ const chartTitle = (chart as Record<string, unknown>).title as string | undefined;
820
+ const filteredSnapshots = chartMetricName
821
+ ? metricSnapshots
822
+ .filter(s => s.metricName === chartMetricName)
823
+ .sort((a, b) => a.timestamp.localeCompare(b.timestamp))
824
+ : metricSnapshots;
825
+ const { metricName: _mn, title: _t, ...chartSpec } = chart as Record<string, unknown>;
826
+ return (
827
+ <Card key={i} size="small" {...(chartTitle ? { title: chartTitle } : {})}>
828
+ <DashboardChart spec={{ ...chartSpec, data: filteredSnapshots }} />
829
+ </Card>
830
+ );
831
+ })}
832
+ </div>
833
+ )}
834
+ </div>
835
+ )}
836
+ {!metricsViewConfig && metricSnapshots.length > 0 && (
837
+ <div>
838
+ <Text strong style={{ fontSize: 14, marginBottom: 8, display: 'block' }}>{t('process.businessMetrics')}</Text>
839
+ <Text type="secondary">{t('process.noBusinessMetrics')}</Text>
840
+ </div>
841
+ )}
842
+ {/* Operational Metrics — system aggregates */}
843
+ <div>
844
+ <Text strong style={{ fontSize: 14, marginBottom: 8, display: 'block' }}>{t('process.operationalMetrics')}</Text>
845
+ {metricsConfig.length === 0 && metrics.length === 0 ? (
846
+ <Empty description={t('process.noMetrics')} />
847
+ ) : (
848
+ <>
849
+ {metricsConfig.map((widget, i) => (
850
+ <DashboardChart key={\`op-\${i}\`} spec={{ ...widget, data: metrics }} />
851
+ ))}
852
+ {metrics.length > 0 && (
853
+ <Table
854
+ dataSource={metrics}
855
+ rowKey="date"
856
+ size="small"
857
+ pagination={{ pageSize: 7 }}
858
+ columns={[
859
+ { title: t('process.colDate'), dataIndex: 'date', key: 'date' },
860
+ { title: t('process.colTotal'), dataIndex: 'totalRuns', key: 'totalRuns' },
861
+ { title: t('process.colCompleted'), dataIndex: 'completedRuns', key: 'completedRuns' },
862
+ { title: t('process.colFailed'), dataIndex: 'failedRuns', key: 'failedRuns' },
863
+ { title: t('process.colTimeout'), dataIndex: 'timeoutRuns', key: 'timeoutRuns' },
864
+ { title: t('process.colAvgDuration'), dataIndex: 'avgDurationMs', key: 'avgDurationMs', render: (ms: number) => \`\${(ms / 1000).toFixed(1)}s\` },
865
+ ]}
866
+ />
867
+ )}
868
+ </>
869
+ )}
870
+ </div>
871
+ </Space>
872
+ ),
873
+ }] : []),
874
+ ]}
875
+ />
876
+ ) : fileContent ? (
877
+ <SkillFileViewer
878
+ skillDetail={null}
879
+ fileContent={fileContent}
880
+ viewMode={viewMode}
881
+ onViewModeChange={setViewMode}
882
+ mode={mode}
883
+ token={token}
884
+ t={t}
885
+ />
886
+ ) : (
887
+ <Empty
888
+ image={Empty.PRESENTED_IMAGE_SIMPLE}
889
+ description={t('process.selectToView')}
890
+ style={{ marginTop: 120 }}
891
+ />
892
+ )}
893
+ </Card>
894
+ </div>
895
+ </div>
896
+ </Spin>
897
+ </div>
898
+ );
899
+ }
900
+ `;
901
+ }
902
+ //# sourceMappingURL=process-management-page.js.map