supipowers 1.1.0 → 1.2.2

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 (718) hide show
  1. package/README.md +83 -237
  2. package/bin/ctx-mode-wrapper.mjs +3 -3
  3. package/bin/install.ts +6 -1
  4. package/package.json +12 -23
  5. package/skills/planning/SKILL.md +2 -4
  6. package/skills/release/SKILL.md +5 -2
  7. package/src/bootstrap.ts +16 -33
  8. package/src/commands/commit.ts +44 -0
  9. package/src/commands/config.ts +0 -27
  10. package/src/commands/context.ts +117 -0
  11. package/src/commands/doctor.ts +1 -2
  12. package/src/commands/fix-pr.ts +16 -42
  13. package/src/commands/mcp.ts +121 -3
  14. package/src/commands/plan.ts +5 -1
  15. package/src/commands/release.ts +385 -48
  16. package/src/commands/review.ts +1 -1
  17. package/src/commands/status.ts +9 -26
  18. package/src/commands/supi.ts +2 -5
  19. package/src/config/defaults.ts +0 -19
  20. package/src/config/model-config.ts +0 -19
  21. package/src/context/analyzer.ts +316 -0
  22. package/src/deps/registry.ts +2 -4
  23. package/src/fix-pr/bot-detector.ts +41 -0
  24. package/src/fix-pr/scripts/fetch-pr-comments.sh +2 -2
  25. package/src/fix-pr/types.ts +1 -0
  26. package/src/git/commit-msg-hook.ts +21 -0
  27. package/src/git/commit-msg.ts +53 -0
  28. package/src/git/commit.ts +677 -0
  29. package/src/git/conventions.ts +215 -0
  30. package/src/git/status.ts +27 -0
  31. package/src/global.d.ts +5 -0
  32. package/src/index.ts +1 -7
  33. package/src/mcp/config.ts +80 -1
  34. package/src/mcp/docs.ts +1 -1
  35. package/src/mcp/types.ts +14 -0
  36. package/src/planning/approval-flow.ts +174 -0
  37. package/src/planning/plan-writer-prompt.ts +6 -5
  38. package/src/planning/prompt-builder.ts +4 -3
  39. package/src/platform/detect.ts +4 -6
  40. package/src/platform/omp.ts +16 -15
  41. package/src/platform/test-utils.ts +18 -17
  42. package/src/platform/types.ts +7 -6
  43. package/src/release/changelog.ts +30 -20
  44. package/src/release/commit-types.ts +35 -0
  45. package/src/release/executor.ts +65 -26
  46. package/src/release/prompt.ts +1 -1
  47. package/src/release/version.ts +27 -0
  48. package/src/storage/plans.ts +2 -12
  49. package/src/types.ts +7 -55
  50. package/bin/.omp/SYSTEM.md +0 -77
  51. package/bin/.omp/supipowers/sessions/events.db +0 -0
  52. package/bin/.omp/supipowers/sessions/events.db-shm +0 -0
  53. package/bin/.omp/supipowers/sessions/events.db-wal +0 -0
  54. package/src/commands/run.ts +0 -511
  55. package/src/orchestrator/agent-grid.ts +0 -439
  56. package/src/orchestrator/agent-prompts.ts +0 -290
  57. package/src/orchestrator/batch-scheduler.ts +0 -59
  58. package/src/orchestrator/conflict-resolver.ts +0 -39
  59. package/src/orchestrator/dispatcher.ts +0 -666
  60. package/src/orchestrator/progress-renderer.ts +0 -281
  61. package/src/orchestrator/prompts.ts +0 -149
  62. package/src/orchestrator/result-collector.ts +0 -72
  63. package/src/orchestrator/run-progress.ts +0 -95
  64. package/src/platform/pi.ts +0 -61
  65. package/src/storage/runs.ts +0 -126
  66. package/src/types/bun-sqlite.d.ts +0 -24
  67. package/src/visual/scripts/node_modules/.package-lock.json +0 -869
  68. package/src/visual/scripts/node_modules/accepts/HISTORY.md +0 -243
  69. package/src/visual/scripts/node_modules/accepts/LICENSE +0 -23
  70. package/src/visual/scripts/node_modules/accepts/README.md +0 -140
  71. package/src/visual/scripts/node_modules/accepts/index.js +0 -238
  72. package/src/visual/scripts/node_modules/accepts/package.json +0 -47
  73. package/src/visual/scripts/node_modules/array-flatten/LICENSE +0 -21
  74. package/src/visual/scripts/node_modules/array-flatten/README.md +0 -43
  75. package/src/visual/scripts/node_modules/array-flatten/array-flatten.js +0 -64
  76. package/src/visual/scripts/node_modules/array-flatten/package.json +0 -39
  77. package/src/visual/scripts/node_modules/body-parser/HISTORY.md +0 -680
  78. package/src/visual/scripts/node_modules/body-parser/LICENSE +0 -23
  79. package/src/visual/scripts/node_modules/body-parser/README.md +0 -476
  80. package/src/visual/scripts/node_modules/body-parser/index.js +0 -156
  81. package/src/visual/scripts/node_modules/body-parser/lib/read.js +0 -205
  82. package/src/visual/scripts/node_modules/body-parser/lib/types/json.js +0 -247
  83. package/src/visual/scripts/node_modules/body-parser/lib/types/raw.js +0 -101
  84. package/src/visual/scripts/node_modules/body-parser/lib/types/text.js +0 -121
  85. package/src/visual/scripts/node_modules/body-parser/lib/types/urlencoded.js +0 -300
  86. package/src/visual/scripts/node_modules/body-parser/package.json +0 -55
  87. package/src/visual/scripts/node_modules/bytes/History.md +0 -97
  88. package/src/visual/scripts/node_modules/bytes/LICENSE +0 -23
  89. package/src/visual/scripts/node_modules/bytes/Readme.md +0 -152
  90. package/src/visual/scripts/node_modules/bytes/index.js +0 -170
  91. package/src/visual/scripts/node_modules/bytes/package.json +0 -42
  92. package/src/visual/scripts/node_modules/call-bind-apply-helpers/.eslintrc +0 -17
  93. package/src/visual/scripts/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +0 -12
  94. package/src/visual/scripts/node_modules/call-bind-apply-helpers/.nycrc +0 -9
  95. package/src/visual/scripts/node_modules/call-bind-apply-helpers/CHANGELOG.md +0 -30
  96. package/src/visual/scripts/node_modules/call-bind-apply-helpers/LICENSE +0 -21
  97. package/src/visual/scripts/node_modules/call-bind-apply-helpers/README.md +0 -62
  98. package/src/visual/scripts/node_modules/call-bind-apply-helpers/actualApply.d.ts +0 -1
  99. package/src/visual/scripts/node_modules/call-bind-apply-helpers/actualApply.js +0 -10
  100. package/src/visual/scripts/node_modules/call-bind-apply-helpers/applyBind.d.ts +0 -19
  101. package/src/visual/scripts/node_modules/call-bind-apply-helpers/applyBind.js +0 -10
  102. package/src/visual/scripts/node_modules/call-bind-apply-helpers/functionApply.d.ts +0 -1
  103. package/src/visual/scripts/node_modules/call-bind-apply-helpers/functionApply.js +0 -4
  104. package/src/visual/scripts/node_modules/call-bind-apply-helpers/functionCall.d.ts +0 -1
  105. package/src/visual/scripts/node_modules/call-bind-apply-helpers/functionCall.js +0 -4
  106. package/src/visual/scripts/node_modules/call-bind-apply-helpers/index.d.ts +0 -64
  107. package/src/visual/scripts/node_modules/call-bind-apply-helpers/index.js +0 -15
  108. package/src/visual/scripts/node_modules/call-bind-apply-helpers/package.json +0 -85
  109. package/src/visual/scripts/node_modules/call-bind-apply-helpers/reflectApply.d.ts +0 -3
  110. package/src/visual/scripts/node_modules/call-bind-apply-helpers/reflectApply.js +0 -4
  111. package/src/visual/scripts/node_modules/call-bind-apply-helpers/test/index.js +0 -63
  112. package/src/visual/scripts/node_modules/call-bind-apply-helpers/tsconfig.json +0 -9
  113. package/src/visual/scripts/node_modules/call-bound/.eslintrc +0 -13
  114. package/src/visual/scripts/node_modules/call-bound/.github/FUNDING.yml +0 -12
  115. package/src/visual/scripts/node_modules/call-bound/.nycrc +0 -9
  116. package/src/visual/scripts/node_modules/call-bound/CHANGELOG.md +0 -42
  117. package/src/visual/scripts/node_modules/call-bound/LICENSE +0 -21
  118. package/src/visual/scripts/node_modules/call-bound/README.md +0 -53
  119. package/src/visual/scripts/node_modules/call-bound/index.d.ts +0 -94
  120. package/src/visual/scripts/node_modules/call-bound/index.js +0 -19
  121. package/src/visual/scripts/node_modules/call-bound/package.json +0 -99
  122. package/src/visual/scripts/node_modules/call-bound/test/index.js +0 -61
  123. package/src/visual/scripts/node_modules/call-bound/tsconfig.json +0 -10
  124. package/src/visual/scripts/node_modules/chokidar/LICENSE +0 -21
  125. package/src/visual/scripts/node_modules/chokidar/README.md +0 -305
  126. package/src/visual/scripts/node_modules/chokidar/esm/handler.d.ts +0 -90
  127. package/src/visual/scripts/node_modules/chokidar/esm/handler.js +0 -629
  128. package/src/visual/scripts/node_modules/chokidar/esm/index.d.ts +0 -215
  129. package/src/visual/scripts/node_modules/chokidar/esm/index.js +0 -798
  130. package/src/visual/scripts/node_modules/chokidar/esm/package.json +0 -1
  131. package/src/visual/scripts/node_modules/chokidar/handler.d.ts +0 -90
  132. package/src/visual/scripts/node_modules/chokidar/handler.js +0 -635
  133. package/src/visual/scripts/node_modules/chokidar/index.d.ts +0 -215
  134. package/src/visual/scripts/node_modules/chokidar/index.js +0 -804
  135. package/src/visual/scripts/node_modules/chokidar/package.json +0 -69
  136. package/src/visual/scripts/node_modules/content-disposition/HISTORY.md +0 -60
  137. package/src/visual/scripts/node_modules/content-disposition/LICENSE +0 -22
  138. package/src/visual/scripts/node_modules/content-disposition/README.md +0 -142
  139. package/src/visual/scripts/node_modules/content-disposition/index.js +0 -458
  140. package/src/visual/scripts/node_modules/content-disposition/package.json +0 -44
  141. package/src/visual/scripts/node_modules/content-type/HISTORY.md +0 -29
  142. package/src/visual/scripts/node_modules/content-type/LICENSE +0 -22
  143. package/src/visual/scripts/node_modules/content-type/README.md +0 -94
  144. package/src/visual/scripts/node_modules/content-type/index.js +0 -225
  145. package/src/visual/scripts/node_modules/content-type/package.json +0 -42
  146. package/src/visual/scripts/node_modules/cookie/LICENSE +0 -24
  147. package/src/visual/scripts/node_modules/cookie/README.md +0 -317
  148. package/src/visual/scripts/node_modules/cookie/SECURITY.md +0 -25
  149. package/src/visual/scripts/node_modules/cookie/index.js +0 -335
  150. package/src/visual/scripts/node_modules/cookie/package.json +0 -44
  151. package/src/visual/scripts/node_modules/cookie-signature/History.md +0 -42
  152. package/src/visual/scripts/node_modules/cookie-signature/Readme.md +0 -42
  153. package/src/visual/scripts/node_modules/cookie-signature/index.js +0 -51
  154. package/src/visual/scripts/node_modules/cookie-signature/package.json +0 -18
  155. package/src/visual/scripts/node_modules/debug/.coveralls.yml +0 -1
  156. package/src/visual/scripts/node_modules/debug/.eslintrc +0 -11
  157. package/src/visual/scripts/node_modules/debug/.travis.yml +0 -14
  158. package/src/visual/scripts/node_modules/debug/CHANGELOG.md +0 -362
  159. package/src/visual/scripts/node_modules/debug/LICENSE +0 -19
  160. package/src/visual/scripts/node_modules/debug/Makefile +0 -50
  161. package/src/visual/scripts/node_modules/debug/README.md +0 -312
  162. package/src/visual/scripts/node_modules/debug/component.json +0 -19
  163. package/src/visual/scripts/node_modules/debug/karma.conf.js +0 -70
  164. package/src/visual/scripts/node_modules/debug/node.js +0 -1
  165. package/src/visual/scripts/node_modules/debug/package.json +0 -49
  166. package/src/visual/scripts/node_modules/debug/src/browser.js +0 -185
  167. package/src/visual/scripts/node_modules/debug/src/debug.js +0 -202
  168. package/src/visual/scripts/node_modules/debug/src/index.js +0 -10
  169. package/src/visual/scripts/node_modules/debug/src/inspector-log.js +0 -15
  170. package/src/visual/scripts/node_modules/debug/src/node.js +0 -248
  171. package/src/visual/scripts/node_modules/depd/History.md +0 -103
  172. package/src/visual/scripts/node_modules/depd/LICENSE +0 -22
  173. package/src/visual/scripts/node_modules/depd/Readme.md +0 -280
  174. package/src/visual/scripts/node_modules/depd/index.js +0 -538
  175. package/src/visual/scripts/node_modules/depd/lib/browser/index.js +0 -77
  176. package/src/visual/scripts/node_modules/depd/package.json +0 -45
  177. package/src/visual/scripts/node_modules/destroy/LICENSE +0 -23
  178. package/src/visual/scripts/node_modules/destroy/README.md +0 -63
  179. package/src/visual/scripts/node_modules/destroy/index.js +0 -209
  180. package/src/visual/scripts/node_modules/destroy/package.json +0 -48
  181. package/src/visual/scripts/node_modules/dunder-proto/.eslintrc +0 -5
  182. package/src/visual/scripts/node_modules/dunder-proto/.github/FUNDING.yml +0 -12
  183. package/src/visual/scripts/node_modules/dunder-proto/.nycrc +0 -13
  184. package/src/visual/scripts/node_modules/dunder-proto/CHANGELOG.md +0 -24
  185. package/src/visual/scripts/node_modules/dunder-proto/LICENSE +0 -21
  186. package/src/visual/scripts/node_modules/dunder-proto/README.md +0 -54
  187. package/src/visual/scripts/node_modules/dunder-proto/get.d.ts +0 -5
  188. package/src/visual/scripts/node_modules/dunder-proto/get.js +0 -30
  189. package/src/visual/scripts/node_modules/dunder-proto/package.json +0 -76
  190. package/src/visual/scripts/node_modules/dunder-proto/set.d.ts +0 -5
  191. package/src/visual/scripts/node_modules/dunder-proto/set.js +0 -35
  192. package/src/visual/scripts/node_modules/dunder-proto/test/get.js +0 -34
  193. package/src/visual/scripts/node_modules/dunder-proto/test/index.js +0 -4
  194. package/src/visual/scripts/node_modules/dunder-proto/test/set.js +0 -50
  195. package/src/visual/scripts/node_modules/dunder-proto/tsconfig.json +0 -9
  196. package/src/visual/scripts/node_modules/ee-first/LICENSE +0 -22
  197. package/src/visual/scripts/node_modules/ee-first/README.md +0 -80
  198. package/src/visual/scripts/node_modules/ee-first/index.js +0 -95
  199. package/src/visual/scripts/node_modules/ee-first/package.json +0 -29
  200. package/src/visual/scripts/node_modules/encodeurl/LICENSE +0 -22
  201. package/src/visual/scripts/node_modules/encodeurl/README.md +0 -109
  202. package/src/visual/scripts/node_modules/encodeurl/index.js +0 -60
  203. package/src/visual/scripts/node_modules/encodeurl/package.json +0 -40
  204. package/src/visual/scripts/node_modules/es-define-property/.eslintrc +0 -13
  205. package/src/visual/scripts/node_modules/es-define-property/.github/FUNDING.yml +0 -12
  206. package/src/visual/scripts/node_modules/es-define-property/.nycrc +0 -9
  207. package/src/visual/scripts/node_modules/es-define-property/CHANGELOG.md +0 -29
  208. package/src/visual/scripts/node_modules/es-define-property/LICENSE +0 -21
  209. package/src/visual/scripts/node_modules/es-define-property/README.md +0 -49
  210. package/src/visual/scripts/node_modules/es-define-property/index.d.ts +0 -3
  211. package/src/visual/scripts/node_modules/es-define-property/index.js +0 -14
  212. package/src/visual/scripts/node_modules/es-define-property/package.json +0 -81
  213. package/src/visual/scripts/node_modules/es-define-property/test/index.js +0 -56
  214. package/src/visual/scripts/node_modules/es-define-property/tsconfig.json +0 -10
  215. package/src/visual/scripts/node_modules/es-errors/.eslintrc +0 -5
  216. package/src/visual/scripts/node_modules/es-errors/.github/FUNDING.yml +0 -12
  217. package/src/visual/scripts/node_modules/es-errors/CHANGELOG.md +0 -40
  218. package/src/visual/scripts/node_modules/es-errors/LICENSE +0 -21
  219. package/src/visual/scripts/node_modules/es-errors/README.md +0 -55
  220. package/src/visual/scripts/node_modules/es-errors/eval.d.ts +0 -3
  221. package/src/visual/scripts/node_modules/es-errors/eval.js +0 -4
  222. package/src/visual/scripts/node_modules/es-errors/index.d.ts +0 -3
  223. package/src/visual/scripts/node_modules/es-errors/index.js +0 -4
  224. package/src/visual/scripts/node_modules/es-errors/package.json +0 -80
  225. package/src/visual/scripts/node_modules/es-errors/range.d.ts +0 -3
  226. package/src/visual/scripts/node_modules/es-errors/range.js +0 -4
  227. package/src/visual/scripts/node_modules/es-errors/ref.d.ts +0 -3
  228. package/src/visual/scripts/node_modules/es-errors/ref.js +0 -4
  229. package/src/visual/scripts/node_modules/es-errors/syntax.d.ts +0 -3
  230. package/src/visual/scripts/node_modules/es-errors/syntax.js +0 -4
  231. package/src/visual/scripts/node_modules/es-errors/test/index.js +0 -19
  232. package/src/visual/scripts/node_modules/es-errors/tsconfig.json +0 -49
  233. package/src/visual/scripts/node_modules/es-errors/type.d.ts +0 -3
  234. package/src/visual/scripts/node_modules/es-errors/type.js +0 -4
  235. package/src/visual/scripts/node_modules/es-errors/uri.d.ts +0 -3
  236. package/src/visual/scripts/node_modules/es-errors/uri.js +0 -4
  237. package/src/visual/scripts/node_modules/es-object-atoms/.eslintrc +0 -16
  238. package/src/visual/scripts/node_modules/es-object-atoms/.github/FUNDING.yml +0 -12
  239. package/src/visual/scripts/node_modules/es-object-atoms/CHANGELOG.md +0 -37
  240. package/src/visual/scripts/node_modules/es-object-atoms/LICENSE +0 -21
  241. package/src/visual/scripts/node_modules/es-object-atoms/README.md +0 -63
  242. package/src/visual/scripts/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +0 -3
  243. package/src/visual/scripts/node_modules/es-object-atoms/RequireObjectCoercible.js +0 -11
  244. package/src/visual/scripts/node_modules/es-object-atoms/ToObject.d.ts +0 -7
  245. package/src/visual/scripts/node_modules/es-object-atoms/ToObject.js +0 -10
  246. package/src/visual/scripts/node_modules/es-object-atoms/index.d.ts +0 -3
  247. package/src/visual/scripts/node_modules/es-object-atoms/index.js +0 -4
  248. package/src/visual/scripts/node_modules/es-object-atoms/isObject.d.ts +0 -3
  249. package/src/visual/scripts/node_modules/es-object-atoms/isObject.js +0 -6
  250. package/src/visual/scripts/node_modules/es-object-atoms/package.json +0 -80
  251. package/src/visual/scripts/node_modules/es-object-atoms/test/index.js +0 -38
  252. package/src/visual/scripts/node_modules/es-object-atoms/tsconfig.json +0 -6
  253. package/src/visual/scripts/node_modules/escape-html/LICENSE +0 -24
  254. package/src/visual/scripts/node_modules/escape-html/Readme.md +0 -43
  255. package/src/visual/scripts/node_modules/escape-html/index.js +0 -78
  256. package/src/visual/scripts/node_modules/escape-html/package.json +0 -24
  257. package/src/visual/scripts/node_modules/etag/HISTORY.md +0 -83
  258. package/src/visual/scripts/node_modules/etag/LICENSE +0 -22
  259. package/src/visual/scripts/node_modules/etag/README.md +0 -159
  260. package/src/visual/scripts/node_modules/etag/index.js +0 -131
  261. package/src/visual/scripts/node_modules/etag/package.json +0 -47
  262. package/src/visual/scripts/node_modules/express/History.md +0 -3667
  263. package/src/visual/scripts/node_modules/express/LICENSE +0 -24
  264. package/src/visual/scripts/node_modules/express/Readme.md +0 -260
  265. package/src/visual/scripts/node_modules/express/index.js +0 -11
  266. package/src/visual/scripts/node_modules/express/lib/application.js +0 -661
  267. package/src/visual/scripts/node_modules/express/lib/express.js +0 -116
  268. package/src/visual/scripts/node_modules/express/lib/middleware/init.js +0 -43
  269. package/src/visual/scripts/node_modules/express/lib/middleware/query.js +0 -47
  270. package/src/visual/scripts/node_modules/express/lib/request.js +0 -525
  271. package/src/visual/scripts/node_modules/express/lib/response.js +0 -1179
  272. package/src/visual/scripts/node_modules/express/lib/router/index.js +0 -673
  273. package/src/visual/scripts/node_modules/express/lib/router/layer.js +0 -181
  274. package/src/visual/scripts/node_modules/express/lib/router/route.js +0 -230
  275. package/src/visual/scripts/node_modules/express/lib/utils.js +0 -303
  276. package/src/visual/scripts/node_modules/express/lib/view.js +0 -182
  277. package/src/visual/scripts/node_modules/express/package.json +0 -102
  278. package/src/visual/scripts/node_modules/finalhandler/HISTORY.md +0 -216
  279. package/src/visual/scripts/node_modules/finalhandler/LICENSE +0 -22
  280. package/src/visual/scripts/node_modules/finalhandler/README.md +0 -147
  281. package/src/visual/scripts/node_modules/finalhandler/SECURITY.md +0 -25
  282. package/src/visual/scripts/node_modules/finalhandler/index.js +0 -341
  283. package/src/visual/scripts/node_modules/finalhandler/package.json +0 -47
  284. package/src/visual/scripts/node_modules/forwarded/HISTORY.md +0 -21
  285. package/src/visual/scripts/node_modules/forwarded/LICENSE +0 -22
  286. package/src/visual/scripts/node_modules/forwarded/README.md +0 -57
  287. package/src/visual/scripts/node_modules/forwarded/index.js +0 -90
  288. package/src/visual/scripts/node_modules/forwarded/package.json +0 -45
  289. package/src/visual/scripts/node_modules/fresh/HISTORY.md +0 -70
  290. package/src/visual/scripts/node_modules/fresh/LICENSE +0 -23
  291. package/src/visual/scripts/node_modules/fresh/README.md +0 -119
  292. package/src/visual/scripts/node_modules/fresh/index.js +0 -137
  293. package/src/visual/scripts/node_modules/fresh/package.json +0 -46
  294. package/src/visual/scripts/node_modules/function-bind/.eslintrc +0 -21
  295. package/src/visual/scripts/node_modules/function-bind/.github/FUNDING.yml +0 -12
  296. package/src/visual/scripts/node_modules/function-bind/.github/SECURITY.md +0 -3
  297. package/src/visual/scripts/node_modules/function-bind/.nycrc +0 -13
  298. package/src/visual/scripts/node_modules/function-bind/CHANGELOG.md +0 -136
  299. package/src/visual/scripts/node_modules/function-bind/LICENSE +0 -20
  300. package/src/visual/scripts/node_modules/function-bind/README.md +0 -46
  301. package/src/visual/scripts/node_modules/function-bind/implementation.js +0 -84
  302. package/src/visual/scripts/node_modules/function-bind/index.js +0 -5
  303. package/src/visual/scripts/node_modules/function-bind/package.json +0 -87
  304. package/src/visual/scripts/node_modules/function-bind/test/.eslintrc +0 -9
  305. package/src/visual/scripts/node_modules/function-bind/test/index.js +0 -252
  306. package/src/visual/scripts/node_modules/get-intrinsic/.eslintrc +0 -42
  307. package/src/visual/scripts/node_modules/get-intrinsic/.github/FUNDING.yml +0 -12
  308. package/src/visual/scripts/node_modules/get-intrinsic/.nycrc +0 -9
  309. package/src/visual/scripts/node_modules/get-intrinsic/CHANGELOG.md +0 -186
  310. package/src/visual/scripts/node_modules/get-intrinsic/LICENSE +0 -21
  311. package/src/visual/scripts/node_modules/get-intrinsic/README.md +0 -71
  312. package/src/visual/scripts/node_modules/get-intrinsic/index.js +0 -378
  313. package/src/visual/scripts/node_modules/get-intrinsic/package.json +0 -97
  314. package/src/visual/scripts/node_modules/get-intrinsic/test/GetIntrinsic.js +0 -274
  315. package/src/visual/scripts/node_modules/get-proto/.eslintrc +0 -10
  316. package/src/visual/scripts/node_modules/get-proto/.github/FUNDING.yml +0 -12
  317. package/src/visual/scripts/node_modules/get-proto/.nycrc +0 -9
  318. package/src/visual/scripts/node_modules/get-proto/CHANGELOG.md +0 -21
  319. package/src/visual/scripts/node_modules/get-proto/LICENSE +0 -21
  320. package/src/visual/scripts/node_modules/get-proto/Object.getPrototypeOf.d.ts +0 -5
  321. package/src/visual/scripts/node_modules/get-proto/Object.getPrototypeOf.js +0 -6
  322. package/src/visual/scripts/node_modules/get-proto/README.md +0 -50
  323. package/src/visual/scripts/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +0 -3
  324. package/src/visual/scripts/node_modules/get-proto/Reflect.getPrototypeOf.js +0 -4
  325. package/src/visual/scripts/node_modules/get-proto/index.d.ts +0 -5
  326. package/src/visual/scripts/node_modules/get-proto/index.js +0 -27
  327. package/src/visual/scripts/node_modules/get-proto/package.json +0 -81
  328. package/src/visual/scripts/node_modules/get-proto/test/index.js +0 -68
  329. package/src/visual/scripts/node_modules/get-proto/tsconfig.json +0 -9
  330. package/src/visual/scripts/node_modules/gopd/.eslintrc +0 -16
  331. package/src/visual/scripts/node_modules/gopd/.github/FUNDING.yml +0 -12
  332. package/src/visual/scripts/node_modules/gopd/CHANGELOG.md +0 -45
  333. package/src/visual/scripts/node_modules/gopd/LICENSE +0 -21
  334. package/src/visual/scripts/node_modules/gopd/README.md +0 -40
  335. package/src/visual/scripts/node_modules/gopd/gOPD.d.ts +0 -1
  336. package/src/visual/scripts/node_modules/gopd/gOPD.js +0 -4
  337. package/src/visual/scripts/node_modules/gopd/index.d.ts +0 -5
  338. package/src/visual/scripts/node_modules/gopd/index.js +0 -15
  339. package/src/visual/scripts/node_modules/gopd/package.json +0 -77
  340. package/src/visual/scripts/node_modules/gopd/test/index.js +0 -36
  341. package/src/visual/scripts/node_modules/gopd/tsconfig.json +0 -9
  342. package/src/visual/scripts/node_modules/has-symbols/.eslintrc +0 -11
  343. package/src/visual/scripts/node_modules/has-symbols/.github/FUNDING.yml +0 -12
  344. package/src/visual/scripts/node_modules/has-symbols/.nycrc +0 -9
  345. package/src/visual/scripts/node_modules/has-symbols/CHANGELOG.md +0 -91
  346. package/src/visual/scripts/node_modules/has-symbols/LICENSE +0 -21
  347. package/src/visual/scripts/node_modules/has-symbols/README.md +0 -46
  348. package/src/visual/scripts/node_modules/has-symbols/index.d.ts +0 -3
  349. package/src/visual/scripts/node_modules/has-symbols/index.js +0 -14
  350. package/src/visual/scripts/node_modules/has-symbols/package.json +0 -111
  351. package/src/visual/scripts/node_modules/has-symbols/shams.d.ts +0 -3
  352. package/src/visual/scripts/node_modules/has-symbols/shams.js +0 -45
  353. package/src/visual/scripts/node_modules/has-symbols/test/index.js +0 -22
  354. package/src/visual/scripts/node_modules/has-symbols/test/shams/core-js.js +0 -29
  355. package/src/visual/scripts/node_modules/has-symbols/test/shams/get-own-property-symbols.js +0 -29
  356. package/src/visual/scripts/node_modules/has-symbols/test/tests.js +0 -58
  357. package/src/visual/scripts/node_modules/has-symbols/tsconfig.json +0 -10
  358. package/src/visual/scripts/node_modules/hasown/.eslintrc +0 -5
  359. package/src/visual/scripts/node_modules/hasown/.github/FUNDING.yml +0 -12
  360. package/src/visual/scripts/node_modules/hasown/.nycrc +0 -13
  361. package/src/visual/scripts/node_modules/hasown/CHANGELOG.md +0 -40
  362. package/src/visual/scripts/node_modules/hasown/LICENSE +0 -21
  363. package/src/visual/scripts/node_modules/hasown/README.md +0 -40
  364. package/src/visual/scripts/node_modules/hasown/index.d.ts +0 -3
  365. package/src/visual/scripts/node_modules/hasown/index.js +0 -8
  366. package/src/visual/scripts/node_modules/hasown/package.json +0 -92
  367. package/src/visual/scripts/node_modules/hasown/tsconfig.json +0 -6
  368. package/src/visual/scripts/node_modules/http-errors/HISTORY.md +0 -186
  369. package/src/visual/scripts/node_modules/http-errors/LICENSE +0 -23
  370. package/src/visual/scripts/node_modules/http-errors/README.md +0 -169
  371. package/src/visual/scripts/node_modules/http-errors/index.js +0 -290
  372. package/src/visual/scripts/node_modules/http-errors/package.json +0 -54
  373. package/src/visual/scripts/node_modules/iconv-lite/Changelog.md +0 -162
  374. package/src/visual/scripts/node_modules/iconv-lite/LICENSE +0 -21
  375. package/src/visual/scripts/node_modules/iconv-lite/README.md +0 -156
  376. package/src/visual/scripts/node_modules/iconv-lite/encodings/dbcs-codec.js +0 -555
  377. package/src/visual/scripts/node_modules/iconv-lite/encodings/dbcs-data.js +0 -176
  378. package/src/visual/scripts/node_modules/iconv-lite/encodings/index.js +0 -22
  379. package/src/visual/scripts/node_modules/iconv-lite/encodings/internal.js +0 -188
  380. package/src/visual/scripts/node_modules/iconv-lite/encodings/sbcs-codec.js +0 -72
  381. package/src/visual/scripts/node_modules/iconv-lite/encodings/sbcs-data-generated.js +0 -451
  382. package/src/visual/scripts/node_modules/iconv-lite/encodings/sbcs-data.js +0 -174
  383. package/src/visual/scripts/node_modules/iconv-lite/encodings/tables/big5-added.json +0 -122
  384. package/src/visual/scripts/node_modules/iconv-lite/encodings/tables/cp936.json +0 -264
  385. package/src/visual/scripts/node_modules/iconv-lite/encodings/tables/cp949.json +0 -273
  386. package/src/visual/scripts/node_modules/iconv-lite/encodings/tables/cp950.json +0 -177
  387. package/src/visual/scripts/node_modules/iconv-lite/encodings/tables/eucjp.json +0 -182
  388. package/src/visual/scripts/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +0 -1
  389. package/src/visual/scripts/node_modules/iconv-lite/encodings/tables/gbk-added.json +0 -55
  390. package/src/visual/scripts/node_modules/iconv-lite/encodings/tables/shiftjis.json +0 -125
  391. package/src/visual/scripts/node_modules/iconv-lite/encodings/utf16.js +0 -177
  392. package/src/visual/scripts/node_modules/iconv-lite/encodings/utf7.js +0 -290
  393. package/src/visual/scripts/node_modules/iconv-lite/lib/bom-handling.js +0 -52
  394. package/src/visual/scripts/node_modules/iconv-lite/lib/extend-node.js +0 -217
  395. package/src/visual/scripts/node_modules/iconv-lite/lib/index.d.ts +0 -24
  396. package/src/visual/scripts/node_modules/iconv-lite/lib/index.js +0 -153
  397. package/src/visual/scripts/node_modules/iconv-lite/lib/streams.js +0 -121
  398. package/src/visual/scripts/node_modules/iconv-lite/package.json +0 -46
  399. package/src/visual/scripts/node_modules/inherits/LICENSE +0 -16
  400. package/src/visual/scripts/node_modules/inherits/README.md +0 -42
  401. package/src/visual/scripts/node_modules/inherits/inherits.js +0 -9
  402. package/src/visual/scripts/node_modules/inherits/inherits_browser.js +0 -27
  403. package/src/visual/scripts/node_modules/inherits/package.json +0 -29
  404. package/src/visual/scripts/node_modules/ipaddr.js/LICENSE +0 -19
  405. package/src/visual/scripts/node_modules/ipaddr.js/README.md +0 -233
  406. package/src/visual/scripts/node_modules/ipaddr.js/ipaddr.min.js +0 -1
  407. package/src/visual/scripts/node_modules/ipaddr.js/lib/ipaddr.js +0 -673
  408. package/src/visual/scripts/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +0 -68
  409. package/src/visual/scripts/node_modules/ipaddr.js/package.json +0 -35
  410. package/src/visual/scripts/node_modules/math-intrinsics/.eslintrc +0 -16
  411. package/src/visual/scripts/node_modules/math-intrinsics/.github/FUNDING.yml +0 -12
  412. package/src/visual/scripts/node_modules/math-intrinsics/CHANGELOG.md +0 -24
  413. package/src/visual/scripts/node_modules/math-intrinsics/LICENSE +0 -21
  414. package/src/visual/scripts/node_modules/math-intrinsics/README.md +0 -50
  415. package/src/visual/scripts/node_modules/math-intrinsics/abs.d.ts +0 -1
  416. package/src/visual/scripts/node_modules/math-intrinsics/abs.js +0 -4
  417. package/src/visual/scripts/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +0 -3
  418. package/src/visual/scripts/node_modules/math-intrinsics/constants/maxArrayLength.js +0 -4
  419. package/src/visual/scripts/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +0 -3
  420. package/src/visual/scripts/node_modules/math-intrinsics/constants/maxSafeInteger.js +0 -5
  421. package/src/visual/scripts/node_modules/math-intrinsics/constants/maxValue.d.ts +0 -3
  422. package/src/visual/scripts/node_modules/math-intrinsics/constants/maxValue.js +0 -5
  423. package/src/visual/scripts/node_modules/math-intrinsics/floor.d.ts +0 -1
  424. package/src/visual/scripts/node_modules/math-intrinsics/floor.js +0 -4
  425. package/src/visual/scripts/node_modules/math-intrinsics/isFinite.d.ts +0 -3
  426. package/src/visual/scripts/node_modules/math-intrinsics/isFinite.js +0 -12
  427. package/src/visual/scripts/node_modules/math-intrinsics/isInteger.d.ts +0 -3
  428. package/src/visual/scripts/node_modules/math-intrinsics/isInteger.js +0 -16
  429. package/src/visual/scripts/node_modules/math-intrinsics/isNaN.d.ts +0 -1
  430. package/src/visual/scripts/node_modules/math-intrinsics/isNaN.js +0 -6
  431. package/src/visual/scripts/node_modules/math-intrinsics/isNegativeZero.d.ts +0 -3
  432. package/src/visual/scripts/node_modules/math-intrinsics/isNegativeZero.js +0 -6
  433. package/src/visual/scripts/node_modules/math-intrinsics/max.d.ts +0 -1
  434. package/src/visual/scripts/node_modules/math-intrinsics/max.js +0 -4
  435. package/src/visual/scripts/node_modules/math-intrinsics/min.d.ts +0 -1
  436. package/src/visual/scripts/node_modules/math-intrinsics/min.js +0 -4
  437. package/src/visual/scripts/node_modules/math-intrinsics/mod.d.ts +0 -3
  438. package/src/visual/scripts/node_modules/math-intrinsics/mod.js +0 -9
  439. package/src/visual/scripts/node_modules/math-intrinsics/package.json +0 -86
  440. package/src/visual/scripts/node_modules/math-intrinsics/pow.d.ts +0 -1
  441. package/src/visual/scripts/node_modules/math-intrinsics/pow.js +0 -4
  442. package/src/visual/scripts/node_modules/math-intrinsics/round.d.ts +0 -1
  443. package/src/visual/scripts/node_modules/math-intrinsics/round.js +0 -4
  444. package/src/visual/scripts/node_modules/math-intrinsics/sign.d.ts +0 -3
  445. package/src/visual/scripts/node_modules/math-intrinsics/sign.js +0 -11
  446. package/src/visual/scripts/node_modules/math-intrinsics/test/index.js +0 -192
  447. package/src/visual/scripts/node_modules/math-intrinsics/tsconfig.json +0 -3
  448. package/src/visual/scripts/node_modules/media-typer/HISTORY.md +0 -22
  449. package/src/visual/scripts/node_modules/media-typer/LICENSE +0 -22
  450. package/src/visual/scripts/node_modules/media-typer/README.md +0 -81
  451. package/src/visual/scripts/node_modules/media-typer/index.js +0 -270
  452. package/src/visual/scripts/node_modules/media-typer/package.json +0 -26
  453. package/src/visual/scripts/node_modules/merge-descriptors/HISTORY.md +0 -21
  454. package/src/visual/scripts/node_modules/merge-descriptors/LICENSE +0 -23
  455. package/src/visual/scripts/node_modules/merge-descriptors/README.md +0 -49
  456. package/src/visual/scripts/node_modules/merge-descriptors/index.js +0 -60
  457. package/src/visual/scripts/node_modules/merge-descriptors/package.json +0 -39
  458. package/src/visual/scripts/node_modules/methods/HISTORY.md +0 -29
  459. package/src/visual/scripts/node_modules/methods/LICENSE +0 -24
  460. package/src/visual/scripts/node_modules/methods/README.md +0 -51
  461. package/src/visual/scripts/node_modules/methods/index.js +0 -69
  462. package/src/visual/scripts/node_modules/methods/package.json +0 -36
  463. package/src/visual/scripts/node_modules/mime/CHANGELOG.md +0 -164
  464. package/src/visual/scripts/node_modules/mime/LICENSE +0 -21
  465. package/src/visual/scripts/node_modules/mime/README.md +0 -90
  466. package/src/visual/scripts/node_modules/mime/cli.js +0 -8
  467. package/src/visual/scripts/node_modules/mime/mime.js +0 -108
  468. package/src/visual/scripts/node_modules/mime/package.json +0 -44
  469. package/src/visual/scripts/node_modules/mime/src/build.js +0 -53
  470. package/src/visual/scripts/node_modules/mime/src/test.js +0 -60
  471. package/src/visual/scripts/node_modules/mime/types.json +0 -1
  472. package/src/visual/scripts/node_modules/mime-db/HISTORY.md +0 -507
  473. package/src/visual/scripts/node_modules/mime-db/LICENSE +0 -23
  474. package/src/visual/scripts/node_modules/mime-db/README.md +0 -100
  475. package/src/visual/scripts/node_modules/mime-db/db.json +0 -8519
  476. package/src/visual/scripts/node_modules/mime-db/index.js +0 -12
  477. package/src/visual/scripts/node_modules/mime-db/package.json +0 -60
  478. package/src/visual/scripts/node_modules/mime-types/HISTORY.md +0 -397
  479. package/src/visual/scripts/node_modules/mime-types/LICENSE +0 -23
  480. package/src/visual/scripts/node_modules/mime-types/README.md +0 -113
  481. package/src/visual/scripts/node_modules/mime-types/index.js +0 -188
  482. package/src/visual/scripts/node_modules/mime-types/package.json +0 -44
  483. package/src/visual/scripts/node_modules/ms/index.js +0 -152
  484. package/src/visual/scripts/node_modules/ms/license.md +0 -21
  485. package/src/visual/scripts/node_modules/ms/package.json +0 -37
  486. package/src/visual/scripts/node_modules/ms/readme.md +0 -51
  487. package/src/visual/scripts/node_modules/negotiator/HISTORY.md +0 -108
  488. package/src/visual/scripts/node_modules/negotiator/LICENSE +0 -24
  489. package/src/visual/scripts/node_modules/negotiator/README.md +0 -203
  490. package/src/visual/scripts/node_modules/negotiator/index.js +0 -82
  491. package/src/visual/scripts/node_modules/negotiator/lib/charset.js +0 -169
  492. package/src/visual/scripts/node_modules/negotiator/lib/encoding.js +0 -184
  493. package/src/visual/scripts/node_modules/negotiator/lib/language.js +0 -179
  494. package/src/visual/scripts/node_modules/negotiator/lib/mediaType.js +0 -294
  495. package/src/visual/scripts/node_modules/negotiator/package.json +0 -42
  496. package/src/visual/scripts/node_modules/object-inspect/.eslintrc +0 -53
  497. package/src/visual/scripts/node_modules/object-inspect/.github/FUNDING.yml +0 -12
  498. package/src/visual/scripts/node_modules/object-inspect/.nycrc +0 -13
  499. package/src/visual/scripts/node_modules/object-inspect/CHANGELOG.md +0 -424
  500. package/src/visual/scripts/node_modules/object-inspect/LICENSE +0 -21
  501. package/src/visual/scripts/node_modules/object-inspect/example/all.js +0 -23
  502. package/src/visual/scripts/node_modules/object-inspect/example/circular.js +0 -6
  503. package/src/visual/scripts/node_modules/object-inspect/example/fn.js +0 -5
  504. package/src/visual/scripts/node_modules/object-inspect/example/inspect.js +0 -10
  505. package/src/visual/scripts/node_modules/object-inspect/index.js +0 -544
  506. package/src/visual/scripts/node_modules/object-inspect/package-support.json +0 -20
  507. package/src/visual/scripts/node_modules/object-inspect/package.json +0 -105
  508. package/src/visual/scripts/node_modules/object-inspect/readme.markdown +0 -84
  509. package/src/visual/scripts/node_modules/object-inspect/test/bigint.js +0 -58
  510. package/src/visual/scripts/node_modules/object-inspect/test/browser/dom.js +0 -15
  511. package/src/visual/scripts/node_modules/object-inspect/test/circular.js +0 -16
  512. package/src/visual/scripts/node_modules/object-inspect/test/deep.js +0 -12
  513. package/src/visual/scripts/node_modules/object-inspect/test/element.js +0 -53
  514. package/src/visual/scripts/node_modules/object-inspect/test/err.js +0 -48
  515. package/src/visual/scripts/node_modules/object-inspect/test/fakes.js +0 -29
  516. package/src/visual/scripts/node_modules/object-inspect/test/fn.js +0 -76
  517. package/src/visual/scripts/node_modules/object-inspect/test/global.js +0 -17
  518. package/src/visual/scripts/node_modules/object-inspect/test/has.js +0 -15
  519. package/src/visual/scripts/node_modules/object-inspect/test/holes.js +0 -15
  520. package/src/visual/scripts/node_modules/object-inspect/test/indent-option.js +0 -271
  521. package/src/visual/scripts/node_modules/object-inspect/test/inspect.js +0 -139
  522. package/src/visual/scripts/node_modules/object-inspect/test/lowbyte.js +0 -12
  523. package/src/visual/scripts/node_modules/object-inspect/test/number.js +0 -58
  524. package/src/visual/scripts/node_modules/object-inspect/test/quoteStyle.js +0 -26
  525. package/src/visual/scripts/node_modules/object-inspect/test/toStringTag.js +0 -40
  526. package/src/visual/scripts/node_modules/object-inspect/test/undef.js +0 -12
  527. package/src/visual/scripts/node_modules/object-inspect/test/values.js +0 -261
  528. package/src/visual/scripts/node_modules/object-inspect/test-core-js.js +0 -26
  529. package/src/visual/scripts/node_modules/object-inspect/util.inspect.js +0 -1
  530. package/src/visual/scripts/node_modules/on-finished/HISTORY.md +0 -98
  531. package/src/visual/scripts/node_modules/on-finished/LICENSE +0 -23
  532. package/src/visual/scripts/node_modules/on-finished/README.md +0 -162
  533. package/src/visual/scripts/node_modules/on-finished/index.js +0 -234
  534. package/src/visual/scripts/node_modules/on-finished/package.json +0 -39
  535. package/src/visual/scripts/node_modules/parseurl/HISTORY.md +0 -58
  536. package/src/visual/scripts/node_modules/parseurl/LICENSE +0 -24
  537. package/src/visual/scripts/node_modules/parseurl/README.md +0 -133
  538. package/src/visual/scripts/node_modules/parseurl/index.js +0 -158
  539. package/src/visual/scripts/node_modules/parseurl/package.json +0 -40
  540. package/src/visual/scripts/node_modules/path-to-regexp/LICENSE +0 -21
  541. package/src/visual/scripts/node_modules/path-to-regexp/Readme.md +0 -35
  542. package/src/visual/scripts/node_modules/path-to-regexp/index.js +0 -156
  543. package/src/visual/scripts/node_modules/path-to-regexp/package.json +0 -30
  544. package/src/visual/scripts/node_modules/proxy-addr/HISTORY.md +0 -161
  545. package/src/visual/scripts/node_modules/proxy-addr/LICENSE +0 -22
  546. package/src/visual/scripts/node_modules/proxy-addr/README.md +0 -139
  547. package/src/visual/scripts/node_modules/proxy-addr/index.js +0 -327
  548. package/src/visual/scripts/node_modules/proxy-addr/package.json +0 -47
  549. package/src/visual/scripts/node_modules/qs/.editorconfig +0 -46
  550. package/src/visual/scripts/node_modules/qs/.github/FUNDING.yml +0 -12
  551. package/src/visual/scripts/node_modules/qs/.github/SECURITY.md +0 -11
  552. package/src/visual/scripts/node_modules/qs/.github/THREAT_MODEL.md +0 -78
  553. package/src/visual/scripts/node_modules/qs/.nycrc +0 -13
  554. package/src/visual/scripts/node_modules/qs/CHANGELOG.md +0 -644
  555. package/src/visual/scripts/node_modules/qs/LICENSE.md +0 -29
  556. package/src/visual/scripts/node_modules/qs/README.md +0 -740
  557. package/src/visual/scripts/node_modules/qs/dist/qs.js +0 -141
  558. package/src/visual/scripts/node_modules/qs/eslint.config.mjs +0 -56
  559. package/src/visual/scripts/node_modules/qs/lib/formats.js +0 -23
  560. package/src/visual/scripts/node_modules/qs/lib/index.js +0 -11
  561. package/src/visual/scripts/node_modules/qs/lib/parse.js +0 -371
  562. package/src/visual/scripts/node_modules/qs/lib/stringify.js +0 -356
  563. package/src/visual/scripts/node_modules/qs/lib/utils.js +0 -340
  564. package/src/visual/scripts/node_modules/qs/package.json +0 -94
  565. package/src/visual/scripts/node_modules/qs/test/empty-keys-cases.js +0 -267
  566. package/src/visual/scripts/node_modules/qs/test/parse.js +0 -1512
  567. package/src/visual/scripts/node_modules/qs/test/stringify.js +0 -1310
  568. package/src/visual/scripts/node_modules/qs/test/utils.js +0 -397
  569. package/src/visual/scripts/node_modules/range-parser/HISTORY.md +0 -56
  570. package/src/visual/scripts/node_modules/range-parser/LICENSE +0 -23
  571. package/src/visual/scripts/node_modules/range-parser/README.md +0 -84
  572. package/src/visual/scripts/node_modules/range-parser/index.js +0 -162
  573. package/src/visual/scripts/node_modules/range-parser/package.json +0 -44
  574. package/src/visual/scripts/node_modules/raw-body/LICENSE +0 -22
  575. package/src/visual/scripts/node_modules/raw-body/README.md +0 -223
  576. package/src/visual/scripts/node_modules/raw-body/index.d.ts +0 -87
  577. package/src/visual/scripts/node_modules/raw-body/index.js +0 -336
  578. package/src/visual/scripts/node_modules/raw-body/package.json +0 -47
  579. package/src/visual/scripts/node_modules/readdirp/LICENSE +0 -21
  580. package/src/visual/scripts/node_modules/readdirp/README.md +0 -120
  581. package/src/visual/scripts/node_modules/readdirp/esm/index.d.ts +0 -108
  582. package/src/visual/scripts/node_modules/readdirp/esm/index.js +0 -257
  583. package/src/visual/scripts/node_modules/readdirp/esm/package.json +0 -1
  584. package/src/visual/scripts/node_modules/readdirp/index.d.ts +0 -108
  585. package/src/visual/scripts/node_modules/readdirp/index.js +0 -263
  586. package/src/visual/scripts/node_modules/readdirp/package.json +0 -70
  587. package/src/visual/scripts/node_modules/safe-buffer/LICENSE +0 -21
  588. package/src/visual/scripts/node_modules/safe-buffer/README.md +0 -584
  589. package/src/visual/scripts/node_modules/safe-buffer/index.d.ts +0 -187
  590. package/src/visual/scripts/node_modules/safe-buffer/index.js +0 -65
  591. package/src/visual/scripts/node_modules/safe-buffer/package.json +0 -51
  592. package/src/visual/scripts/node_modules/safer-buffer/LICENSE +0 -21
  593. package/src/visual/scripts/node_modules/safer-buffer/Porting-Buffer.md +0 -268
  594. package/src/visual/scripts/node_modules/safer-buffer/Readme.md +0 -156
  595. package/src/visual/scripts/node_modules/safer-buffer/dangerous.js +0 -58
  596. package/src/visual/scripts/node_modules/safer-buffer/package.json +0 -34
  597. package/src/visual/scripts/node_modules/safer-buffer/safer.js +0 -77
  598. package/src/visual/scripts/node_modules/safer-buffer/tests.js +0 -406
  599. package/src/visual/scripts/node_modules/send/HISTORY.md +0 -538
  600. package/src/visual/scripts/node_modules/send/LICENSE +0 -23
  601. package/src/visual/scripts/node_modules/send/README.md +0 -327
  602. package/src/visual/scripts/node_modules/send/SECURITY.md +0 -24
  603. package/src/visual/scripts/node_modules/send/index.js +0 -1142
  604. package/src/visual/scripts/node_modules/send/node_modules/ms/index.js +0 -162
  605. package/src/visual/scripts/node_modules/send/node_modules/ms/license.md +0 -21
  606. package/src/visual/scripts/node_modules/send/node_modules/ms/package.json +0 -38
  607. package/src/visual/scripts/node_modules/send/node_modules/ms/readme.md +0 -59
  608. package/src/visual/scripts/node_modules/send/package.json +0 -62
  609. package/src/visual/scripts/node_modules/serve-static/HISTORY.md +0 -493
  610. package/src/visual/scripts/node_modules/serve-static/LICENSE +0 -25
  611. package/src/visual/scripts/node_modules/serve-static/README.md +0 -257
  612. package/src/visual/scripts/node_modules/serve-static/index.js +0 -209
  613. package/src/visual/scripts/node_modules/serve-static/package.json +0 -42
  614. package/src/visual/scripts/node_modules/setprototypeof/LICENSE +0 -13
  615. package/src/visual/scripts/node_modules/setprototypeof/README.md +0 -31
  616. package/src/visual/scripts/node_modules/setprototypeof/index.d.ts +0 -2
  617. package/src/visual/scripts/node_modules/setprototypeof/index.js +0 -17
  618. package/src/visual/scripts/node_modules/setprototypeof/package.json +0 -38
  619. package/src/visual/scripts/node_modules/setprototypeof/test/index.js +0 -24
  620. package/src/visual/scripts/node_modules/side-channel/.editorconfig +0 -9
  621. package/src/visual/scripts/node_modules/side-channel/.eslintrc +0 -12
  622. package/src/visual/scripts/node_modules/side-channel/.github/FUNDING.yml +0 -12
  623. package/src/visual/scripts/node_modules/side-channel/.nycrc +0 -13
  624. package/src/visual/scripts/node_modules/side-channel/CHANGELOG.md +0 -110
  625. package/src/visual/scripts/node_modules/side-channel/LICENSE +0 -21
  626. package/src/visual/scripts/node_modules/side-channel/README.md +0 -61
  627. package/src/visual/scripts/node_modules/side-channel/index.d.ts +0 -14
  628. package/src/visual/scripts/node_modules/side-channel/index.js +0 -43
  629. package/src/visual/scripts/node_modules/side-channel/package.json +0 -85
  630. package/src/visual/scripts/node_modules/side-channel/test/index.js +0 -104
  631. package/src/visual/scripts/node_modules/side-channel/tsconfig.json +0 -9
  632. package/src/visual/scripts/node_modules/side-channel-list/.editorconfig +0 -9
  633. package/src/visual/scripts/node_modules/side-channel-list/.eslintrc +0 -11
  634. package/src/visual/scripts/node_modules/side-channel-list/.github/FUNDING.yml +0 -12
  635. package/src/visual/scripts/node_modules/side-channel-list/.nycrc +0 -13
  636. package/src/visual/scripts/node_modules/side-channel-list/CHANGELOG.md +0 -15
  637. package/src/visual/scripts/node_modules/side-channel-list/LICENSE +0 -21
  638. package/src/visual/scripts/node_modules/side-channel-list/README.md +0 -62
  639. package/src/visual/scripts/node_modules/side-channel-list/index.d.ts +0 -13
  640. package/src/visual/scripts/node_modules/side-channel-list/index.js +0 -113
  641. package/src/visual/scripts/node_modules/side-channel-list/list.d.ts +0 -14
  642. package/src/visual/scripts/node_modules/side-channel-list/package.json +0 -77
  643. package/src/visual/scripts/node_modules/side-channel-list/test/index.js +0 -104
  644. package/src/visual/scripts/node_modules/side-channel-list/tsconfig.json +0 -9
  645. package/src/visual/scripts/node_modules/side-channel-map/.editorconfig +0 -9
  646. package/src/visual/scripts/node_modules/side-channel-map/.eslintrc +0 -11
  647. package/src/visual/scripts/node_modules/side-channel-map/.github/FUNDING.yml +0 -12
  648. package/src/visual/scripts/node_modules/side-channel-map/.nycrc +0 -13
  649. package/src/visual/scripts/node_modules/side-channel-map/CHANGELOG.md +0 -22
  650. package/src/visual/scripts/node_modules/side-channel-map/LICENSE +0 -21
  651. package/src/visual/scripts/node_modules/side-channel-map/README.md +0 -62
  652. package/src/visual/scripts/node_modules/side-channel-map/index.d.ts +0 -15
  653. package/src/visual/scripts/node_modules/side-channel-map/index.js +0 -68
  654. package/src/visual/scripts/node_modules/side-channel-map/package.json +0 -80
  655. package/src/visual/scripts/node_modules/side-channel-map/test/index.js +0 -114
  656. package/src/visual/scripts/node_modules/side-channel-map/tsconfig.json +0 -9
  657. package/src/visual/scripts/node_modules/side-channel-weakmap/.editorconfig +0 -9
  658. package/src/visual/scripts/node_modules/side-channel-weakmap/.eslintrc +0 -12
  659. package/src/visual/scripts/node_modules/side-channel-weakmap/.github/FUNDING.yml +0 -12
  660. package/src/visual/scripts/node_modules/side-channel-weakmap/.nycrc +0 -13
  661. package/src/visual/scripts/node_modules/side-channel-weakmap/CHANGELOG.md +0 -28
  662. package/src/visual/scripts/node_modules/side-channel-weakmap/LICENSE +0 -21
  663. package/src/visual/scripts/node_modules/side-channel-weakmap/README.md +0 -62
  664. package/src/visual/scripts/node_modules/side-channel-weakmap/index.d.ts +0 -15
  665. package/src/visual/scripts/node_modules/side-channel-weakmap/index.js +0 -84
  666. package/src/visual/scripts/node_modules/side-channel-weakmap/package.json +0 -87
  667. package/src/visual/scripts/node_modules/side-channel-weakmap/test/index.js +0 -114
  668. package/src/visual/scripts/node_modules/side-channel-weakmap/tsconfig.json +0 -9
  669. package/src/visual/scripts/node_modules/statuses/HISTORY.md +0 -87
  670. package/src/visual/scripts/node_modules/statuses/LICENSE +0 -23
  671. package/src/visual/scripts/node_modules/statuses/README.md +0 -139
  672. package/src/visual/scripts/node_modules/statuses/codes.json +0 -65
  673. package/src/visual/scripts/node_modules/statuses/index.js +0 -146
  674. package/src/visual/scripts/node_modules/statuses/package.json +0 -49
  675. package/src/visual/scripts/node_modules/toidentifier/HISTORY.md +0 -9
  676. package/src/visual/scripts/node_modules/toidentifier/LICENSE +0 -21
  677. package/src/visual/scripts/node_modules/toidentifier/README.md +0 -61
  678. package/src/visual/scripts/node_modules/toidentifier/index.js +0 -32
  679. package/src/visual/scripts/node_modules/toidentifier/package.json +0 -38
  680. package/src/visual/scripts/node_modules/type-is/HISTORY.md +0 -259
  681. package/src/visual/scripts/node_modules/type-is/LICENSE +0 -23
  682. package/src/visual/scripts/node_modules/type-is/README.md +0 -170
  683. package/src/visual/scripts/node_modules/type-is/index.js +0 -266
  684. package/src/visual/scripts/node_modules/type-is/package.json +0 -45
  685. package/src/visual/scripts/node_modules/unpipe/HISTORY.md +0 -4
  686. package/src/visual/scripts/node_modules/unpipe/LICENSE +0 -22
  687. package/src/visual/scripts/node_modules/unpipe/README.md +0 -43
  688. package/src/visual/scripts/node_modules/unpipe/index.js +0 -69
  689. package/src/visual/scripts/node_modules/unpipe/package.json +0 -27
  690. package/src/visual/scripts/node_modules/utils-merge/LICENSE +0 -20
  691. package/src/visual/scripts/node_modules/utils-merge/README.md +0 -34
  692. package/src/visual/scripts/node_modules/utils-merge/index.js +0 -23
  693. package/src/visual/scripts/node_modules/utils-merge/package.json +0 -40
  694. package/src/visual/scripts/node_modules/vary/HISTORY.md +0 -39
  695. package/src/visual/scripts/node_modules/vary/LICENSE +0 -22
  696. package/src/visual/scripts/node_modules/vary/README.md +0 -101
  697. package/src/visual/scripts/node_modules/vary/index.js +0 -149
  698. package/src/visual/scripts/node_modules/vary/package.json +0 -43
  699. package/src/visual/scripts/node_modules/ws/LICENSE +0 -20
  700. package/src/visual/scripts/node_modules/ws/README.md +0 -548
  701. package/src/visual/scripts/node_modules/ws/browser.js +0 -8
  702. package/src/visual/scripts/node_modules/ws/index.js +0 -22
  703. package/src/visual/scripts/node_modules/ws/lib/buffer-util.js +0 -131
  704. package/src/visual/scripts/node_modules/ws/lib/constants.js +0 -19
  705. package/src/visual/scripts/node_modules/ws/lib/event-target.js +0 -292
  706. package/src/visual/scripts/node_modules/ws/lib/extension.js +0 -203
  707. package/src/visual/scripts/node_modules/ws/lib/limiter.js +0 -55
  708. package/src/visual/scripts/node_modules/ws/lib/permessage-deflate.js +0 -528
  709. package/src/visual/scripts/node_modules/ws/lib/receiver.js +0 -706
  710. package/src/visual/scripts/node_modules/ws/lib/sender.js +0 -602
  711. package/src/visual/scripts/node_modules/ws/lib/stream.js +0 -161
  712. package/src/visual/scripts/node_modules/ws/lib/subprotocol.js +0 -62
  713. package/src/visual/scripts/node_modules/ws/lib/validation.js +0 -152
  714. package/src/visual/scripts/node_modules/ws/lib/websocket-server.js +0 -554
  715. package/src/visual/scripts/node_modules/ws/lib/websocket.js +0 -1393
  716. package/src/visual/scripts/node_modules/ws/package.json +0 -70
  717. package/src/visual/scripts/node_modules/ws/wrapper.mjs +0 -21
  718. package/src/visual/scripts/package-lock.json +0 -878
@@ -3,10 +3,16 @@ import type { ReleaseChannel, BumpType } from "../types.js";
3
3
  import { loadConfig, updateConfig } from "../config/loader.js";
4
4
  import { detectChannels } from "../release/detector.js";
5
5
  import { parseConventionalCommits, buildChangelogMarkdown, summarizeChanges } from "../release/changelog.js";
6
- import { getCurrentVersion, suggestBump, bumpVersion } from "../release/version.js";
7
- import { executeRelease } from "../release/executor.js";
6
+ import { getCurrentVersion, suggestBump, bumpVersion, isVersionReleased } from "../release/version.js";
7
+ import { executeRelease, type ReleaseProgressFn } from "../release/executor.js";
8
8
  import { buildPolishPrompt } from "../release/prompt.js";
9
9
  import { notifyInfo, notifySuccess, notifyError } from "../notifications/renderer.js";
10
+ import { analyzeAndCommit } from "../git/commit.js";
11
+ import { getWorkingTreeStatus } from "../git/status.js";
12
+
13
+ const SPINNER_FRAMES = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
14
+ const STATUS_KEY = "supi-release";
15
+ const WIDGET_KEY = "supi-release";
10
16
 
11
17
  const BUMP_OPTIONS = [
12
18
  "patch — bug fixes only",
@@ -14,28 +20,271 @@ const BUMP_OPTIONS = [
14
20
  "major — breaking changes",
15
21
  ];
16
22
 
23
+ /**
24
+ * Returns true when re-running supi:release should skip the confirmation
25
+ * dialog and proceed directly to execution.
26
+ *
27
+ * This is the resume path: the version in package.json hasn't been tagged yet
28
+ * AND all channels are already configured — the user staged the release
29
+ * deliberately when they bumped the version, so no new decisions are needed.
30
+ * Dry-run is excluded because it is exploratory by intent; the user explicitly
31
+ * wants to preview and confirm before anything happens.
32
+ */
33
+ export function isInProgressRelease(opts: {
34
+ skipBump: boolean;
35
+ channelsWerePreConfigured: boolean;
36
+ isDryRun: boolean;
37
+ }): boolean {
38
+ return opts.skipBump && opts.channelsWerePreConfigured && !opts.isDryRun;
39
+ }
40
+
41
+ // ── Release progress tracker ────────────────────────────────────
42
+
43
+ interface ReleaseStep {
44
+ label: string;
45
+ status: "pending" | "active" | "done" | "error" | "skipped";
46
+ detail?: string;
47
+ }
48
+
49
+ function createReleaseProgress(ctx: any) {
50
+ const steps: ReleaseStep[] = [
51
+ { label: "Check working tree", status: "pending" },
52
+ { label: "Detect channels", status: "pending" },
53
+ { label: "Analyze commits", status: "pending" },
54
+ { label: "Select version", status: "pending" },
55
+ { label: "Build changelog", status: "pending" },
56
+ { label: "Execute release", status: "pending" },
57
+ { label: "Publish channels", status: "pending" },
58
+ ];
59
+
60
+ let frame = 0;
61
+ let statusDetail = "";
62
+ let timer: ReturnType<typeof setInterval> | null = null;
63
+
64
+ function icon(step: ReleaseStep): string {
65
+ switch (step.status) {
66
+ case "done": return "✓";
67
+ case "active": return SPINNER_FRAMES[frame % SPINNER_FRAMES.length];
68
+ case "error": return "✗";
69
+ case "skipped": return "–";
70
+ default: return "○";
71
+ }
72
+ }
73
+
74
+ function renderWidget(): string[] {
75
+ const lines: string[] = ["┌─ supi:release ─────────────────────┐"];
76
+ for (const step of steps) {
77
+ const mark = icon(step);
78
+ const detail = step.detail ? ` (${step.detail})` : "";
79
+ lines.push(`│ ${mark} ${step.label}${detail}`);
80
+ }
81
+ lines.push("└─────────────────────────────────────┘");
82
+ return lines;
83
+ }
84
+
85
+ function refresh() {
86
+ frame++;
87
+ ctx.ui.setWidget?.(WIDGET_KEY, renderWidget());
88
+ if (statusDetail) {
89
+ ctx.ui.setStatus?.(STATUS_KEY, `${SPINNER_FRAMES[frame % SPINNER_FRAMES.length]} ${statusDetail}`);
90
+ }
91
+ }
92
+
93
+ function startTimer() {
94
+ if (!timer) {
95
+ timer = setInterval(refresh, 80);
96
+ }
97
+ }
98
+
99
+ function stopTimer() {
100
+ if (timer) {
101
+ clearInterval(timer);
102
+ timer = null;
103
+ }
104
+ }
105
+
106
+ return {
107
+ activate(stepIndex: number, detail?: string) {
108
+ const step = steps[stepIndex];
109
+ if (step) {
110
+ step.status = "active";
111
+ step.detail = detail;
112
+ }
113
+ statusDetail = detail ?? step?.label ?? "";
114
+ startTimer();
115
+ refresh();
116
+ },
117
+
118
+ complete(stepIndex: number, detail?: string) {
119
+ const step = steps[stepIndex];
120
+ if (step) {
121
+ step.status = "done";
122
+ if (detail !== undefined) step.detail = detail;
123
+ }
124
+ refresh();
125
+ },
126
+
127
+ fail(stepIndex: number, detail?: string) {
128
+ const step = steps[stepIndex];
129
+ if (step) {
130
+ step.status = "error";
131
+ if (detail !== undefined) step.detail = detail;
132
+ }
133
+ refresh();
134
+ },
135
+
136
+ skip(stepIndex: number, detail?: string) {
137
+ const step = steps[stepIndex];
138
+ if (step) {
139
+ step.status = "skipped";
140
+ if (detail !== undefined) step.detail = detail;
141
+ }
142
+ refresh();
143
+ },
144
+
145
+ /** Build an onProgress callback for executeRelease. */
146
+ executorProgress(): ReleaseProgressFn {
147
+ return (step, status, detail) => {
148
+ // Map executor steps to sub-detail on "Execute release" (index 5)
149
+ // or "Publish channels" (index 6)
150
+ const isPublish = step.startsWith("publish-");
151
+ const idx = isPublish ? 6 : 5;
152
+ if (status === "active") this.activate(idx, detail);
153
+ else if (status === "done") {
154
+ // Don't mark the overall step done from individual sub-steps
155
+ const s = steps[idx];
156
+ if (s) { s.detail = detail; }
157
+ refresh();
158
+ } else if (status === "error") this.fail(idx, detail);
159
+ };
160
+ },
161
+
162
+ dispose() {
163
+ stopTimer();
164
+ ctx.ui.setStatus?.(STATUS_KEY, undefined);
165
+ ctx.ui.setWidget?.(WIDGET_KEY, undefined);
166
+ },
167
+ };
168
+ }
169
+
170
+ /**
171
+ * Register the command for autocomplete and /help listing.
172
+ * Actual execution goes through handleRelease via the TUI dispatch.
173
+ */
17
174
  export function registerReleaseCommand(platform: Platform): void {
18
175
  platform.registerCommand("supi:release", {
19
176
  description: "Release automation — version bump, changelog, publish",
20
- async handler(args: string | undefined, ctx: any) {
177
+ async handler() {
178
+ // No-op: execution is handled by the TUI input interceptor.
179
+ // This registration exists only for autocomplete and /help.
180
+ },
181
+ });
182
+ }
183
+
184
+ /**
185
+ * TUI-only handler — called from the input event dispatcher in bootstrap.ts.
186
+ * Runs the full release flow without triggering the outer LLM session.
187
+ */
188
+ export function handleRelease(platform: Platform, ctx: any, args?: string): void {
189
+ if (!ctx.hasUI) {
190
+ ctx.ui.notify("Release requires interactive mode", "warning");
191
+ return;
192
+ }
193
+
194
+ const progress = createReleaseProgress(ctx);
195
+
196
+ void (async () => {
197
+ try {
21
198
  const isPolish = args?.includes("--polish") ?? false;
22
199
  const isDryRun = args?.includes("--dry-run") ?? false;
23
200
  const config = loadConfig(platform.paths, ctx.cwd);
24
201
 
202
+ // 0. Check for uncommitted changes
203
+ progress.activate(0, "Checking working tree");
204
+ let didStash = false;
205
+ const treeStatus = await getWorkingTreeStatus(platform.exec.bind(platform), ctx.cwd);
206
+ if (treeStatus.dirty) {
207
+ progress.complete(0, `${treeStatus.files.length} files changed`);
208
+ const filePreview = treeStatus.files.slice(0, 8).join(", ");
209
+ const extra = treeStatus.files.length > 8 ? ` (+${treeStatus.files.length - 8} more)` : "";
210
+
211
+ const action = await ctx.ui.select(
212
+ `Uncommitted changes detected (${treeStatus.files.length} files)`,
213
+ [
214
+ "commit — commit changes with AI-generated message",
215
+ "stash \u2014 stash changes and continue",
216
+ "abort \u2014 cancel release",
217
+ ],
218
+ { helpText: `Files: ${filePreview}${extra}` },
219
+ );
220
+
221
+ if (!action || action.startsWith("abort")) {
222
+ progress.dispose();
223
+ return;
224
+ }
225
+
226
+ if (action.startsWith("commit")) {
227
+ // commit.ts has its own progress widget; dispose ours temporarily
228
+ progress.dispose();
229
+ const commitResult = await analyzeAndCommit(platform, ctx);
230
+ if (!commitResult) {
231
+ notifyError(ctx, "Commit failed or cancelled", "Aborting release.");
232
+ return;
233
+ }
234
+ // Verify tree is now clean
235
+ const afterStatus = await getWorkingTreeStatus(platform.exec.bind(platform), ctx.cwd);
236
+ if (afterStatus.dirty) {
237
+ notifyError(ctx, "Still uncommitted changes", "Not all changes were committed. Aborting release.");
238
+ return;
239
+ }
240
+ // Re-create progress after commit's widget has disposed
241
+ // (reactivate shows state from where we left off)
242
+ progress.complete(0, "Committed");
243
+ } else if (action.startsWith("stash")) {
244
+ progress.activate(0, "Stashing changes");
245
+ const stashResult = await platform.exec("git", ["stash", "push", "-m", "supi:release auto-stash"], { cwd: ctx.cwd });
246
+ if (stashResult.code !== 0) {
247
+ progress.fail(0, stashResult.stderr || "stash failed");
248
+ progress.dispose();
249
+ notifyError(ctx, "git stash failed", stashResult.stderr || "Non-zero exit");
250
+ return;
251
+ }
252
+ didStash = true;
253
+ progress.complete(0, "Stashed");
254
+ }
255
+ } else {
256
+ progress.complete(0, "Clean");
257
+ }
258
+
25
259
  // 1. Ensure channels are configured (or detect + ask)
260
+ progress.activate(1, "Detecting channels");
26
261
  let channels = config.release.channels;
262
+ // Track whether channels were already set in config before any interactive
263
+ // setup. This distinguishes "user already decided" from "just configured now",
264
+ // which determines whether we can auto-continue without a confirmation prompt.
265
+ const channelsWerePreConfigured = config.release.channels.length > 0;
266
+
27
267
  if (channels.length === 0) {
268
+ progress.complete(1, "Awaiting selection");
28
269
  channels = await setupChannels(platform, ctx);
29
- if (channels.length === 0) return;
270
+ if (channels.length === 0) {
271
+ progress.dispose();
272
+ return;
273
+ }
30
274
  }
275
+ progress.complete(1, channels.join(", "));
31
276
 
32
- // 2. Get last tag
277
+ // 2. Get last tag + current version + check if bump is needed
278
+ progress.activate(2, "Parsing git history");
33
279
  const lastTag = await getLastTag(platform, ctx.cwd);
34
-
35
- // 3. Get current version
36
280
  const currentVersion = getCurrentVersion(ctx.cwd);
281
+ const alreadyReleased = await isVersionReleased(
282
+ platform.exec.bind(platform),
283
+ ctx.cwd,
284
+ currentVersion,
285
+ );
37
286
 
38
- // 4. Parse commits since last tag
287
+ // 3. Parse commits since last tag
39
288
  const sinceArg = lastTag ? `${lastTag}..HEAD` : "HEAD~50..HEAD";
40
289
  let gitLogOutput: string;
41
290
  try {
@@ -51,26 +300,50 @@ export function registerReleaseCommand(platform: Platform): void {
51
300
 
52
301
  const commits = parseConventionalCommits(gitLogOutput);
53
302
  const summary = summarizeChanges(commits);
303
+ const commitCount = commits.features.length + commits.fixes.length + commits.breaking.length + commits.improvements.length + commits.maintenance.length + commits.other.length;
304
+ progress.complete(2, `${commitCount} commits since ${lastTag ?? "start"}`);
54
305
 
55
- // 5. Suggest bump UI select to confirm/override
56
- const suggested = suggestBump(commits);
57
- const bumpChoice = await ctx.ui.select(
58
- `Version bump (${summary})`,
59
- BUMP_OPTIONS,
60
- { helpText: `Suggested: ${suggested}` },
61
- );
62
- if (!bumpChoice) return;
306
+ // 4. Version resolution — skip bump when local version is unreleased
307
+ let nextVersion: string;
308
+ let skipBump: boolean;
63
309
 
64
- const bump = bumpChoice.split(" ")[0] as BumpType;
310
+ if (!alreadyReleased && currentVersion !== "0.0.0") {
311
+ // Local version hasn't been tagged yet — use it as-is
312
+ nextVersion = currentVersion;
313
+ skipBump = true;
314
+ progress.skip(3, `v${currentVersion} (already set, not yet released)`);
315
+ notifyInfo(ctx, `Using v${currentVersion}`, "Version not yet released — skipping bump");
316
+ } else {
317
+ // Version already released — ask for bump
318
+ progress.activate(3, "Awaiting version selection");
319
+ const suggested = suggestBump(commits);
320
+ const bumpChoice = await ctx.ui.select(
321
+ `Version bump (${summary})`,
322
+ BUMP_OPTIONS,
323
+ { helpText: `Current: ${currentVersion} (released) | Suggested: ${suggested}` },
324
+ );
325
+ if (!bumpChoice) {
326
+ progress.dispose();
327
+ return;
328
+ }
65
329
 
66
- // 6. Compute next version
67
- const nextVersion = bumpVersion(currentVersion, bump);
330
+ const bump = bumpChoice.split(" \u2014 ")[0] as BumpType;
331
+ nextVersion = bumpVersion(currentVersion, bump);
332
+ skipBump = false;
333
+ progress.complete(3, `${currentVersion} → ${nextVersion} (${bump})`);
334
+ }
68
335
 
69
- // 7. Build changelog
336
+ // 5. Build changelog
337
+ progress.activate(4, "Generating changelog");
70
338
  const changelog = buildChangelogMarkdown(commits, nextVersion);
339
+ progress.complete(4, `${commitCount} entries`);
71
340
 
72
- // 8. Polish mode → steer prompt to LLM, then return
341
+ // 6. Polish mode → steer prompt to LLM, then return
73
342
  if (isPolish) {
343
+ progress.skip(5, "Polish mode");
344
+ progress.skip(6, "Polish mode");
345
+ progress.dispose();
346
+
74
347
  const releaseCommands = buildReleaseCommands(nextVersion, channels);
75
348
  const prompt = buildPolishPrompt({
76
349
  changelog,
@@ -93,26 +366,47 @@ export function registerReleaseCommand(platform: Platform): void {
93
366
  return;
94
367
  }
95
368
 
96
- // 9. Confirm via UI
97
- const confirmLabel = isDryRun ? `[DRY RUN] Ship v${nextVersion}?` : `Ship v${nextVersion}?`;
98
- const confirmDetail = [
99
- `${currentVersion} ${nextVersion}`,
100
- `Channels: ${channels.join(", ")}`,
101
- `Changes: ${summary}`,
102
- "",
103
- changelog,
104
- ].join("\n");
105
-
106
- const confirmed = ctx.ui.confirm
107
- ? await ctx.ui.confirm(confirmLabel, confirmDetail)
108
- : (await ctx.ui.select(confirmLabel, ["Yes — publish", "No — abort"])) === "Yes — publish";
109
-
110
- if (!confirmed) {
111
- notifyInfo(ctx, "Release cancelled", "No changes were made");
112
- return;
369
+ // 7. Confirm via UI — skipped when resuming a staged unreleased release.
370
+ // When skipBump is true the user already decided on the version; when
371
+ // channels were pre-configured there's nothing left to decide. Asking
372
+ // again is friction without benefit. Dry-run always asks because the
373
+ // user explicitly opted into preview mode.
374
+ const isResume = isInProgressRelease({ skipBump, channelsWerePreConfigured, isDryRun });
375
+
376
+ if (isResume) {
377
+ notifyInfo(
378
+ ctx,
379
+ `Resuming release v${nextVersion}`,
380
+ "Version staged and channels configured — proceeding without confirmation",
381
+ );
382
+ } else {
383
+ const confirmLabel = isDryRun ? `[DRY RUN] Ship v${nextVersion}?` : `Ship v${nextVersion}?`;
384
+ // When skipBump=true, currentVersion === nextVersion — avoid the
385
+ // misleading "0.5.0 → 0.5.0" display.
386
+ const versionLine = skipBump
387
+ ? `v${nextVersion} (staged, not yet released)`
388
+ : `${currentVersion} → ${nextVersion}`;
389
+ const confirmDetail = [
390
+ versionLine,
391
+ `Channels: ${channels.join(", ")}`,
392
+ `Changes: ${summary}`,
393
+ "",
394
+ changelog,
395
+ ].join("\n");
396
+
397
+ const confirmed = ctx.ui.confirm
398
+ ? await ctx.ui.confirm(confirmLabel, confirmDetail)
399
+ : (await ctx.ui.select(confirmLabel, ["Yes \u2014 publish", "No \u2014 abort"])) === "Yes \u2014 publish";
400
+
401
+ if (!confirmed) {
402
+ progress.dispose();
403
+ notifyInfo(ctx, "Release cancelled", "No changes were made");
404
+ return;
405
+ }
113
406
  }
114
407
 
115
- // 10. Execute release
408
+ // 8. Execute release
409
+ progress.activate(5, "Starting release execution");
116
410
  try {
117
411
  const result = await executeRelease({
118
412
  exec: platform.exec.bind(platform),
@@ -121,9 +415,39 @@ export function registerReleaseCommand(platform: Platform): void {
121
415
  changelog,
122
416
  channels,
123
417
  dryRun: isDryRun,
418
+ skipBump,
419
+ onProgress: progress.executorProgress(),
124
420
  });
125
421
 
126
- // Report result
422
+ // Mark execution steps based on result
423
+ if (result.tagCreated && result.pushed) {
424
+ progress.complete(5, "Tag + push complete");
425
+ } else if (result.error) {
426
+ progress.fail(5, result.error);
427
+ } else {
428
+ progress.fail(5, `Tag: ${result.tagCreated ? "✓" : "✗"} | Push: ${result.pushed ? "✓" : "✗"}`);
429
+ }
430
+
431
+ // Mark channel publishing
432
+ if (result.channels.length > 0) {
433
+ const allOk = result.channels.every((c) => c.success);
434
+ if (allOk) {
435
+ progress.complete(6, result.channels.map((c) => c.channel).join(", "));
436
+ } else {
437
+ const failedChannels = result.channels.filter((c) => !c.success);
438
+ progress.fail(6, failedChannels.map((c) => `${c.channel}: ${c.error ?? "failed"}`).join("; "));
439
+ }
440
+ } else if (result.error) {
441
+ progress.skip(6, "Skipped (release failed)");
442
+ } else {
443
+ progress.complete(6, "No channels");
444
+ }
445
+
446
+ // Give the user a moment to see the final widget state
447
+ await new Promise((r) => setTimeout(r, 1500));
448
+ progress.dispose();
449
+
450
+ // Final notification
127
451
  const channelSummary = result.channels
128
452
  .map((c) => `${c.channel}: ${c.success ? "✓" : `✗ ${c.error ?? "failed"}`}`)
129
453
  .join(", ");
@@ -136,21 +460,34 @@ export function registerReleaseCommand(platform: Platform): void {
136
460
  `Tag: ${result.tagCreated ? "✓" : "✗"} | Push: ${result.pushed ? "✓" : "✗"} | ${channelSummary}`,
137
461
  );
138
462
  } else {
139
- notifyError(
140
- ctx,
141
- `Release v${nextVersion} failed`,
142
- `Tag: ${result.tagCreated ? "✓" : "✗"} | Push: ${result.pushed ? "✓" : "✗"}`,
143
- );
463
+ // Include the error detail so the user knows WHY it failed
464
+ const detail = result.error
465
+ ? result.error
466
+ : `Tag: ${result.tagCreated ? "✓" : "✗"} | Push: ${result.pushed ? "✓" : "✗"}`;
467
+ notifyError(ctx, `Release v${nextVersion} failed`, detail);
144
468
  }
145
469
  } catch (err) {
470
+ progress.fail(5, err instanceof Error ? err.message : "Unknown error");
471
+ await new Promise((r) => setTimeout(r, 1500));
472
+ progress.dispose();
146
473
  notifyError(
147
474
  ctx,
148
475
  "Release failed",
149
476
  err instanceof Error ? err.message : String(err),
150
477
  );
478
+ } finally {
479
+ if (didStash) {
480
+ const popResult = await platform.exec("git", ["stash", "pop"], { cwd: ctx.cwd });
481
+ if (popResult.code !== 0) {
482
+ notifyError(ctx, "Stash pop failed", "Run 'git stash pop' manually to recover your changes");
483
+ }
484
+ }
151
485
  }
152
- },
153
- });
486
+ } catch (err) {
487
+ progress.dispose();
488
+ notifyError(ctx, "Release error", err instanceof Error ? err.message : String(err));
489
+ }
490
+ })();
154
491
  }
155
492
 
156
493
  async function getLastTag(platform: Platform, cwd: string): Promise<string | null> {
@@ -204,7 +541,7 @@ function buildReleaseCommands(
204
541
  ): string[] {
205
542
  const commands: string[] = [
206
543
  `git add -A`,
207
- `git commit -m "release: v${version}"`,
544
+ `git commit -m "chore(release): v${version}"`,
208
545
  `git tag -a v${version} -m "Release v${version}"`,
209
546
  `git push origin HEAD --follow-tags`,
210
547
  ];
@@ -100,7 +100,7 @@ export function registerReviewCommand(platform: Platform): void {
100
100
  const modelConfig = loadModelConfig(platform.paths, ctx.cwd);
101
101
  const bridge = createModelBridge(platform);
102
102
  const resolved = resolveModelForAction("review", modelRegistry, modelConfig, bridge);
103
- if (resolved.source !== "main" && platform.setModel) {
103
+ if (resolved.source !== "main" && platform.setModel && resolved.model) {
104
104
  platform.setModel(resolved.model);
105
105
  }
106
106
 
@@ -1,34 +1,17 @@
1
1
  import type { Platform, PlatformContext } from "../platform/types.js";
2
- import { findActiveRun, loadAllAgentResults } from "../storage/runs.js";
2
+ import { listPlans } from "../storage/plans.js";
3
+ import { loadConfig } from "../config/loader.js";
3
4
 
4
5
  export function handleStatus(platform: Platform, ctx: PlatformContext): void {
5
- const activeRun = findActiveRun(platform.paths, ctx.cwd);
6
- if (!activeRun) {
7
- ctx.ui.notify("No active runs — use /supi:run to execute a plan", "info");
8
- return;
9
- }
10
-
11
6
  void (async () => {
12
- const results = loadAllAgentResults(platform.paths, ctx.cwd, activeRun.id);
13
- const totalTasks = activeRun.batches.reduce(
14
- (sum, b) => sum + b.taskIds.length,
15
- 0
16
- );
17
- const doneCount = results.filter((r) => r.status === "done").length;
18
- const concernCount = results.filter((r) => r.status === "done_with_concerns").length;
19
- const blockedCount = results.filter((r) => r.status === "blocked").length;
20
- const currentBatch = activeRun.batches.find((b) => b.status !== "completed");
7
+ const plans = listPlans(platform.paths, ctx.cwd);
8
+ const config = loadConfig(platform.paths, ctx.cwd);
21
9
 
22
10
  const options = [
23
- `Run: ${activeRun.id}`,
24
- `Status: ${activeRun.status}`,
25
- `Plan: ${activeRun.planRef}`,
26
- `Profile: ${activeRun.profile}`,
27
- `Progress: ${results.length}/${totalTasks} tasks`,
28
- ` Done: ${doneCount}`,
29
- ` With concerns: ${concernCount}`,
30
- ` Blocked: ${blockedCount}`,
31
- `Batch: ${currentBatch ? `#${currentBatch.index} (${currentBatch.status})` : "all complete"}`,
11
+ `Profile: ${config.defaultProfile}`,
12
+ `Plans: ${plans.length === 0 ? "none" : ""}`,
13
+ ...plans.map((p) => ` · ${p}`),
14
+ "",
32
15
  "Close",
33
16
  ];
34
17
 
@@ -40,7 +23,7 @@ export function handleStatus(platform: Platform, ctx: PlatformContext): void {
40
23
 
41
24
  export function registerStatusCommand(platform: Platform): void {
42
25
  platform.registerCommand("supi:status", {
43
- description: "Check on running sub-agents and task progress",
26
+ description: "Show project plans and configuration",
44
27
  async handler(_args: string | undefined, ctx: any) {
45
28
  handleStatus(platform, ctx);
46
29
  },
@@ -1,33 +1,30 @@
1
1
  import type { Platform, PlatformContext } from "../platform/types.js";
2
2
  import { loadConfig } from "../config/loader.js";
3
- import { findActiveRun } from "../storage/runs.js";
4
3
  import { loadLatestReport } from "../storage/reports.js";
5
4
  import { listPlans } from "../storage/plans.js";
6
5
 
7
6
  export function handleSupi(platform: Platform, ctx: PlatformContext): void {
8
7
  void (async () => {
9
8
  const config = loadConfig(platform.paths, ctx.cwd);
10
- const activeRun = findActiveRun(platform.paths, ctx.cwd);
11
9
  const latestReport = loadLatestReport(platform.paths, ctx.cwd);
12
10
  const plans = listPlans(platform.paths, ctx.cwd);
13
11
 
14
12
  const commands = [
15
13
  "/supi:plan — Start collaborative planning",
16
- "/supi:run — Execute a plan with sub-agents",
17
14
  "/supi:review — Run quality gates",
18
15
  "/supi:qa — E2E product testing with Playwright",
19
16
  "/supi:fix-pr — Fix PR review comments",
20
17
  "/supi:release — Release automation",
21
18
  "/supi:config — Manage configuration",
22
- "/supi:status — Check running tasks",
19
+ "/supi:status — Show project status",
23
20
  "/supi:doctor — Run health checks",
24
21
  "/supi:update — Update to latest version",
22
+ "/supi:context — Show context breakdown",
25
23
  ];
26
24
 
27
25
  const status = [
28
26
  `Profile: ${config.defaultProfile}`,
29
27
  `Plans: ${plans.length}`,
30
- `Active run: ${activeRun ? activeRun.id : "none"}`,
31
28
  `Last review: ${latestReport ? `${latestReport.timestamp.slice(0, 10)} (${latestReport.passed ? "passed" : "failed"})` : "none"}`,
32
29
  ];
33
30
 
@@ -4,13 +4,6 @@ import type { SupipowersConfig, Profile } from "../types.js";
4
4
  export const DEFAULT_CONFIG: SupipowersConfig = {
5
5
  version: "1.0.0",
6
6
  defaultProfile: "thorough",
7
- orchestration: {
8
- maxParallelAgents: 3,
9
- maxFixRetries: 2,
10
- maxNestingDepth: 2,
11
- modelPreference: "auto",
12
- taskTimeout: 600_000, // 10 minutes
13
- },
14
7
  lsp: {
15
8
  setupGuide: true,
16
9
  },
@@ -51,10 +44,6 @@ export const BUILTIN_PROFILES: Record<string, Profile> = {
51
44
  testSuite: false,
52
45
  e2e: false,
53
46
  },
54
- orchestration: {
55
- reviewAfterEachBatch: false,
56
- finalReview: false,
57
- },
58
47
  },
59
48
  thorough: {
60
49
  name: "thorough",
@@ -65,10 +54,6 @@ export const BUILTIN_PROFILES: Record<string, Profile> = {
65
54
  testSuite: false,
66
55
  e2e: false,
67
56
  },
68
- orchestration: {
69
- reviewAfterEachBatch: true,
70
- finalReview: true,
71
- },
72
57
  },
73
58
  "full-regression": {
74
59
  name: "full-regression",
@@ -79,9 +64,5 @@ export const BUILTIN_PROFILES: Record<string, Profile> = {
79
64
  testSuite: true,
80
65
  e2e: true,
81
66
  },
82
- orchestration: {
83
- reviewAfterEachBatch: true,
84
- finalReview: true,
85
- },
86
67
  },
87
68
  };