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.
- package/README.md +83 -237
- package/bin/ctx-mode-wrapper.mjs +3 -3
- package/bin/install.ts +6 -1
- package/package.json +12 -23
- package/skills/planning/SKILL.md +2 -4
- package/skills/release/SKILL.md +5 -2
- package/src/bootstrap.ts +16 -33
- package/src/commands/commit.ts +44 -0
- package/src/commands/config.ts +0 -27
- package/src/commands/context.ts +117 -0
- package/src/commands/doctor.ts +1 -2
- package/src/commands/fix-pr.ts +16 -42
- package/src/commands/mcp.ts +121 -3
- package/src/commands/plan.ts +5 -1
- package/src/commands/release.ts +385 -48
- package/src/commands/review.ts +1 -1
- package/src/commands/status.ts +9 -26
- package/src/commands/supi.ts +2 -5
- package/src/config/defaults.ts +0 -19
- package/src/config/model-config.ts +0 -19
- package/src/context/analyzer.ts +316 -0
- package/src/deps/registry.ts +2 -4
- package/src/fix-pr/bot-detector.ts +41 -0
- package/src/fix-pr/scripts/fetch-pr-comments.sh +2 -2
- package/src/fix-pr/types.ts +1 -0
- package/src/git/commit-msg-hook.ts +21 -0
- package/src/git/commit-msg.ts +53 -0
- package/src/git/commit.ts +677 -0
- package/src/git/conventions.ts +215 -0
- package/src/git/status.ts +27 -0
- package/src/global.d.ts +5 -0
- package/src/index.ts +1 -7
- package/src/mcp/config.ts +80 -1
- package/src/mcp/docs.ts +1 -1
- package/src/mcp/types.ts +14 -0
- package/src/planning/approval-flow.ts +174 -0
- package/src/planning/plan-writer-prompt.ts +6 -5
- package/src/planning/prompt-builder.ts +4 -3
- package/src/platform/detect.ts +4 -6
- package/src/platform/omp.ts +16 -15
- package/src/platform/test-utils.ts +18 -17
- package/src/platform/types.ts +7 -6
- package/src/release/changelog.ts +30 -20
- package/src/release/commit-types.ts +35 -0
- package/src/release/executor.ts +65 -26
- package/src/release/prompt.ts +1 -1
- package/src/release/version.ts +27 -0
- package/src/storage/plans.ts +2 -12
- package/src/types.ts +7 -55
- package/bin/.omp/SYSTEM.md +0 -77
- package/bin/.omp/supipowers/sessions/events.db +0 -0
- package/bin/.omp/supipowers/sessions/events.db-shm +0 -0
- package/bin/.omp/supipowers/sessions/events.db-wal +0 -0
- package/src/commands/run.ts +0 -511
- package/src/orchestrator/agent-grid.ts +0 -439
- package/src/orchestrator/agent-prompts.ts +0 -290
- package/src/orchestrator/batch-scheduler.ts +0 -59
- package/src/orchestrator/conflict-resolver.ts +0 -39
- package/src/orchestrator/dispatcher.ts +0 -666
- package/src/orchestrator/progress-renderer.ts +0 -281
- package/src/orchestrator/prompts.ts +0 -149
- package/src/orchestrator/result-collector.ts +0 -72
- package/src/orchestrator/run-progress.ts +0 -95
- package/src/platform/pi.ts +0 -61
- package/src/storage/runs.ts +0 -126
- package/src/types/bun-sqlite.d.ts +0 -24
- package/src/visual/scripts/node_modules/.package-lock.json +0 -869
- package/src/visual/scripts/node_modules/accepts/HISTORY.md +0 -243
- package/src/visual/scripts/node_modules/accepts/LICENSE +0 -23
- package/src/visual/scripts/node_modules/accepts/README.md +0 -140
- package/src/visual/scripts/node_modules/accepts/index.js +0 -238
- package/src/visual/scripts/node_modules/accepts/package.json +0 -47
- package/src/visual/scripts/node_modules/array-flatten/LICENSE +0 -21
- package/src/visual/scripts/node_modules/array-flatten/README.md +0 -43
- package/src/visual/scripts/node_modules/array-flatten/array-flatten.js +0 -64
- package/src/visual/scripts/node_modules/array-flatten/package.json +0 -39
- package/src/visual/scripts/node_modules/body-parser/HISTORY.md +0 -680
- package/src/visual/scripts/node_modules/body-parser/LICENSE +0 -23
- package/src/visual/scripts/node_modules/body-parser/README.md +0 -476
- package/src/visual/scripts/node_modules/body-parser/index.js +0 -156
- package/src/visual/scripts/node_modules/body-parser/lib/read.js +0 -205
- package/src/visual/scripts/node_modules/body-parser/lib/types/json.js +0 -247
- package/src/visual/scripts/node_modules/body-parser/lib/types/raw.js +0 -101
- package/src/visual/scripts/node_modules/body-parser/lib/types/text.js +0 -121
- package/src/visual/scripts/node_modules/body-parser/lib/types/urlencoded.js +0 -300
- package/src/visual/scripts/node_modules/body-parser/package.json +0 -55
- package/src/visual/scripts/node_modules/bytes/History.md +0 -97
- package/src/visual/scripts/node_modules/bytes/LICENSE +0 -23
- package/src/visual/scripts/node_modules/bytes/Readme.md +0 -152
- package/src/visual/scripts/node_modules/bytes/index.js +0 -170
- package/src/visual/scripts/node_modules/bytes/package.json +0 -42
- package/src/visual/scripts/node_modules/call-bind-apply-helpers/.eslintrc +0 -17
- package/src/visual/scripts/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +0 -12
- package/src/visual/scripts/node_modules/call-bind-apply-helpers/.nycrc +0 -9
- package/src/visual/scripts/node_modules/call-bind-apply-helpers/CHANGELOG.md +0 -30
- package/src/visual/scripts/node_modules/call-bind-apply-helpers/LICENSE +0 -21
- package/src/visual/scripts/node_modules/call-bind-apply-helpers/README.md +0 -62
- package/src/visual/scripts/node_modules/call-bind-apply-helpers/actualApply.d.ts +0 -1
- package/src/visual/scripts/node_modules/call-bind-apply-helpers/actualApply.js +0 -10
- package/src/visual/scripts/node_modules/call-bind-apply-helpers/applyBind.d.ts +0 -19
- package/src/visual/scripts/node_modules/call-bind-apply-helpers/applyBind.js +0 -10
- package/src/visual/scripts/node_modules/call-bind-apply-helpers/functionApply.d.ts +0 -1
- package/src/visual/scripts/node_modules/call-bind-apply-helpers/functionApply.js +0 -4
- package/src/visual/scripts/node_modules/call-bind-apply-helpers/functionCall.d.ts +0 -1
- package/src/visual/scripts/node_modules/call-bind-apply-helpers/functionCall.js +0 -4
- package/src/visual/scripts/node_modules/call-bind-apply-helpers/index.d.ts +0 -64
- package/src/visual/scripts/node_modules/call-bind-apply-helpers/index.js +0 -15
- package/src/visual/scripts/node_modules/call-bind-apply-helpers/package.json +0 -85
- package/src/visual/scripts/node_modules/call-bind-apply-helpers/reflectApply.d.ts +0 -3
- package/src/visual/scripts/node_modules/call-bind-apply-helpers/reflectApply.js +0 -4
- package/src/visual/scripts/node_modules/call-bind-apply-helpers/test/index.js +0 -63
- package/src/visual/scripts/node_modules/call-bind-apply-helpers/tsconfig.json +0 -9
- package/src/visual/scripts/node_modules/call-bound/.eslintrc +0 -13
- package/src/visual/scripts/node_modules/call-bound/.github/FUNDING.yml +0 -12
- package/src/visual/scripts/node_modules/call-bound/.nycrc +0 -9
- package/src/visual/scripts/node_modules/call-bound/CHANGELOG.md +0 -42
- package/src/visual/scripts/node_modules/call-bound/LICENSE +0 -21
- package/src/visual/scripts/node_modules/call-bound/README.md +0 -53
- package/src/visual/scripts/node_modules/call-bound/index.d.ts +0 -94
- package/src/visual/scripts/node_modules/call-bound/index.js +0 -19
- package/src/visual/scripts/node_modules/call-bound/package.json +0 -99
- package/src/visual/scripts/node_modules/call-bound/test/index.js +0 -61
- package/src/visual/scripts/node_modules/call-bound/tsconfig.json +0 -10
- package/src/visual/scripts/node_modules/chokidar/LICENSE +0 -21
- package/src/visual/scripts/node_modules/chokidar/README.md +0 -305
- package/src/visual/scripts/node_modules/chokidar/esm/handler.d.ts +0 -90
- package/src/visual/scripts/node_modules/chokidar/esm/handler.js +0 -629
- package/src/visual/scripts/node_modules/chokidar/esm/index.d.ts +0 -215
- package/src/visual/scripts/node_modules/chokidar/esm/index.js +0 -798
- package/src/visual/scripts/node_modules/chokidar/esm/package.json +0 -1
- package/src/visual/scripts/node_modules/chokidar/handler.d.ts +0 -90
- package/src/visual/scripts/node_modules/chokidar/handler.js +0 -635
- package/src/visual/scripts/node_modules/chokidar/index.d.ts +0 -215
- package/src/visual/scripts/node_modules/chokidar/index.js +0 -804
- package/src/visual/scripts/node_modules/chokidar/package.json +0 -69
- package/src/visual/scripts/node_modules/content-disposition/HISTORY.md +0 -60
- package/src/visual/scripts/node_modules/content-disposition/LICENSE +0 -22
- package/src/visual/scripts/node_modules/content-disposition/README.md +0 -142
- package/src/visual/scripts/node_modules/content-disposition/index.js +0 -458
- package/src/visual/scripts/node_modules/content-disposition/package.json +0 -44
- package/src/visual/scripts/node_modules/content-type/HISTORY.md +0 -29
- package/src/visual/scripts/node_modules/content-type/LICENSE +0 -22
- package/src/visual/scripts/node_modules/content-type/README.md +0 -94
- package/src/visual/scripts/node_modules/content-type/index.js +0 -225
- package/src/visual/scripts/node_modules/content-type/package.json +0 -42
- package/src/visual/scripts/node_modules/cookie/LICENSE +0 -24
- package/src/visual/scripts/node_modules/cookie/README.md +0 -317
- package/src/visual/scripts/node_modules/cookie/SECURITY.md +0 -25
- package/src/visual/scripts/node_modules/cookie/index.js +0 -335
- package/src/visual/scripts/node_modules/cookie/package.json +0 -44
- package/src/visual/scripts/node_modules/cookie-signature/History.md +0 -42
- package/src/visual/scripts/node_modules/cookie-signature/Readme.md +0 -42
- package/src/visual/scripts/node_modules/cookie-signature/index.js +0 -51
- package/src/visual/scripts/node_modules/cookie-signature/package.json +0 -18
- package/src/visual/scripts/node_modules/debug/.coveralls.yml +0 -1
- package/src/visual/scripts/node_modules/debug/.eslintrc +0 -11
- package/src/visual/scripts/node_modules/debug/.travis.yml +0 -14
- package/src/visual/scripts/node_modules/debug/CHANGELOG.md +0 -362
- package/src/visual/scripts/node_modules/debug/LICENSE +0 -19
- package/src/visual/scripts/node_modules/debug/Makefile +0 -50
- package/src/visual/scripts/node_modules/debug/README.md +0 -312
- package/src/visual/scripts/node_modules/debug/component.json +0 -19
- package/src/visual/scripts/node_modules/debug/karma.conf.js +0 -70
- package/src/visual/scripts/node_modules/debug/node.js +0 -1
- package/src/visual/scripts/node_modules/debug/package.json +0 -49
- package/src/visual/scripts/node_modules/debug/src/browser.js +0 -185
- package/src/visual/scripts/node_modules/debug/src/debug.js +0 -202
- package/src/visual/scripts/node_modules/debug/src/index.js +0 -10
- package/src/visual/scripts/node_modules/debug/src/inspector-log.js +0 -15
- package/src/visual/scripts/node_modules/debug/src/node.js +0 -248
- package/src/visual/scripts/node_modules/depd/History.md +0 -103
- package/src/visual/scripts/node_modules/depd/LICENSE +0 -22
- package/src/visual/scripts/node_modules/depd/Readme.md +0 -280
- package/src/visual/scripts/node_modules/depd/index.js +0 -538
- package/src/visual/scripts/node_modules/depd/lib/browser/index.js +0 -77
- package/src/visual/scripts/node_modules/depd/package.json +0 -45
- package/src/visual/scripts/node_modules/destroy/LICENSE +0 -23
- package/src/visual/scripts/node_modules/destroy/README.md +0 -63
- package/src/visual/scripts/node_modules/destroy/index.js +0 -209
- package/src/visual/scripts/node_modules/destroy/package.json +0 -48
- package/src/visual/scripts/node_modules/dunder-proto/.eslintrc +0 -5
- package/src/visual/scripts/node_modules/dunder-proto/.github/FUNDING.yml +0 -12
- package/src/visual/scripts/node_modules/dunder-proto/.nycrc +0 -13
- package/src/visual/scripts/node_modules/dunder-proto/CHANGELOG.md +0 -24
- package/src/visual/scripts/node_modules/dunder-proto/LICENSE +0 -21
- package/src/visual/scripts/node_modules/dunder-proto/README.md +0 -54
- package/src/visual/scripts/node_modules/dunder-proto/get.d.ts +0 -5
- package/src/visual/scripts/node_modules/dunder-proto/get.js +0 -30
- package/src/visual/scripts/node_modules/dunder-proto/package.json +0 -76
- package/src/visual/scripts/node_modules/dunder-proto/set.d.ts +0 -5
- package/src/visual/scripts/node_modules/dunder-proto/set.js +0 -35
- package/src/visual/scripts/node_modules/dunder-proto/test/get.js +0 -34
- package/src/visual/scripts/node_modules/dunder-proto/test/index.js +0 -4
- package/src/visual/scripts/node_modules/dunder-proto/test/set.js +0 -50
- package/src/visual/scripts/node_modules/dunder-proto/tsconfig.json +0 -9
- package/src/visual/scripts/node_modules/ee-first/LICENSE +0 -22
- package/src/visual/scripts/node_modules/ee-first/README.md +0 -80
- package/src/visual/scripts/node_modules/ee-first/index.js +0 -95
- package/src/visual/scripts/node_modules/ee-first/package.json +0 -29
- package/src/visual/scripts/node_modules/encodeurl/LICENSE +0 -22
- package/src/visual/scripts/node_modules/encodeurl/README.md +0 -109
- package/src/visual/scripts/node_modules/encodeurl/index.js +0 -60
- package/src/visual/scripts/node_modules/encodeurl/package.json +0 -40
- package/src/visual/scripts/node_modules/es-define-property/.eslintrc +0 -13
- package/src/visual/scripts/node_modules/es-define-property/.github/FUNDING.yml +0 -12
- package/src/visual/scripts/node_modules/es-define-property/.nycrc +0 -9
- package/src/visual/scripts/node_modules/es-define-property/CHANGELOG.md +0 -29
- package/src/visual/scripts/node_modules/es-define-property/LICENSE +0 -21
- package/src/visual/scripts/node_modules/es-define-property/README.md +0 -49
- package/src/visual/scripts/node_modules/es-define-property/index.d.ts +0 -3
- package/src/visual/scripts/node_modules/es-define-property/index.js +0 -14
- package/src/visual/scripts/node_modules/es-define-property/package.json +0 -81
- package/src/visual/scripts/node_modules/es-define-property/test/index.js +0 -56
- package/src/visual/scripts/node_modules/es-define-property/tsconfig.json +0 -10
- package/src/visual/scripts/node_modules/es-errors/.eslintrc +0 -5
- package/src/visual/scripts/node_modules/es-errors/.github/FUNDING.yml +0 -12
- package/src/visual/scripts/node_modules/es-errors/CHANGELOG.md +0 -40
- package/src/visual/scripts/node_modules/es-errors/LICENSE +0 -21
- package/src/visual/scripts/node_modules/es-errors/README.md +0 -55
- package/src/visual/scripts/node_modules/es-errors/eval.d.ts +0 -3
- package/src/visual/scripts/node_modules/es-errors/eval.js +0 -4
- package/src/visual/scripts/node_modules/es-errors/index.d.ts +0 -3
- package/src/visual/scripts/node_modules/es-errors/index.js +0 -4
- package/src/visual/scripts/node_modules/es-errors/package.json +0 -80
- package/src/visual/scripts/node_modules/es-errors/range.d.ts +0 -3
- package/src/visual/scripts/node_modules/es-errors/range.js +0 -4
- package/src/visual/scripts/node_modules/es-errors/ref.d.ts +0 -3
- package/src/visual/scripts/node_modules/es-errors/ref.js +0 -4
- package/src/visual/scripts/node_modules/es-errors/syntax.d.ts +0 -3
- package/src/visual/scripts/node_modules/es-errors/syntax.js +0 -4
- package/src/visual/scripts/node_modules/es-errors/test/index.js +0 -19
- package/src/visual/scripts/node_modules/es-errors/tsconfig.json +0 -49
- package/src/visual/scripts/node_modules/es-errors/type.d.ts +0 -3
- package/src/visual/scripts/node_modules/es-errors/type.js +0 -4
- package/src/visual/scripts/node_modules/es-errors/uri.d.ts +0 -3
- package/src/visual/scripts/node_modules/es-errors/uri.js +0 -4
- package/src/visual/scripts/node_modules/es-object-atoms/.eslintrc +0 -16
- package/src/visual/scripts/node_modules/es-object-atoms/.github/FUNDING.yml +0 -12
- package/src/visual/scripts/node_modules/es-object-atoms/CHANGELOG.md +0 -37
- package/src/visual/scripts/node_modules/es-object-atoms/LICENSE +0 -21
- package/src/visual/scripts/node_modules/es-object-atoms/README.md +0 -63
- package/src/visual/scripts/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +0 -3
- package/src/visual/scripts/node_modules/es-object-atoms/RequireObjectCoercible.js +0 -11
- package/src/visual/scripts/node_modules/es-object-atoms/ToObject.d.ts +0 -7
- package/src/visual/scripts/node_modules/es-object-atoms/ToObject.js +0 -10
- package/src/visual/scripts/node_modules/es-object-atoms/index.d.ts +0 -3
- package/src/visual/scripts/node_modules/es-object-atoms/index.js +0 -4
- package/src/visual/scripts/node_modules/es-object-atoms/isObject.d.ts +0 -3
- package/src/visual/scripts/node_modules/es-object-atoms/isObject.js +0 -6
- package/src/visual/scripts/node_modules/es-object-atoms/package.json +0 -80
- package/src/visual/scripts/node_modules/es-object-atoms/test/index.js +0 -38
- package/src/visual/scripts/node_modules/es-object-atoms/tsconfig.json +0 -6
- package/src/visual/scripts/node_modules/escape-html/LICENSE +0 -24
- package/src/visual/scripts/node_modules/escape-html/Readme.md +0 -43
- package/src/visual/scripts/node_modules/escape-html/index.js +0 -78
- package/src/visual/scripts/node_modules/escape-html/package.json +0 -24
- package/src/visual/scripts/node_modules/etag/HISTORY.md +0 -83
- package/src/visual/scripts/node_modules/etag/LICENSE +0 -22
- package/src/visual/scripts/node_modules/etag/README.md +0 -159
- package/src/visual/scripts/node_modules/etag/index.js +0 -131
- package/src/visual/scripts/node_modules/etag/package.json +0 -47
- package/src/visual/scripts/node_modules/express/History.md +0 -3667
- package/src/visual/scripts/node_modules/express/LICENSE +0 -24
- package/src/visual/scripts/node_modules/express/Readme.md +0 -260
- package/src/visual/scripts/node_modules/express/index.js +0 -11
- package/src/visual/scripts/node_modules/express/lib/application.js +0 -661
- package/src/visual/scripts/node_modules/express/lib/express.js +0 -116
- package/src/visual/scripts/node_modules/express/lib/middleware/init.js +0 -43
- package/src/visual/scripts/node_modules/express/lib/middleware/query.js +0 -47
- package/src/visual/scripts/node_modules/express/lib/request.js +0 -525
- package/src/visual/scripts/node_modules/express/lib/response.js +0 -1179
- package/src/visual/scripts/node_modules/express/lib/router/index.js +0 -673
- package/src/visual/scripts/node_modules/express/lib/router/layer.js +0 -181
- package/src/visual/scripts/node_modules/express/lib/router/route.js +0 -230
- package/src/visual/scripts/node_modules/express/lib/utils.js +0 -303
- package/src/visual/scripts/node_modules/express/lib/view.js +0 -182
- package/src/visual/scripts/node_modules/express/package.json +0 -102
- package/src/visual/scripts/node_modules/finalhandler/HISTORY.md +0 -216
- package/src/visual/scripts/node_modules/finalhandler/LICENSE +0 -22
- package/src/visual/scripts/node_modules/finalhandler/README.md +0 -147
- package/src/visual/scripts/node_modules/finalhandler/SECURITY.md +0 -25
- package/src/visual/scripts/node_modules/finalhandler/index.js +0 -341
- package/src/visual/scripts/node_modules/finalhandler/package.json +0 -47
- package/src/visual/scripts/node_modules/forwarded/HISTORY.md +0 -21
- package/src/visual/scripts/node_modules/forwarded/LICENSE +0 -22
- package/src/visual/scripts/node_modules/forwarded/README.md +0 -57
- package/src/visual/scripts/node_modules/forwarded/index.js +0 -90
- package/src/visual/scripts/node_modules/forwarded/package.json +0 -45
- package/src/visual/scripts/node_modules/fresh/HISTORY.md +0 -70
- package/src/visual/scripts/node_modules/fresh/LICENSE +0 -23
- package/src/visual/scripts/node_modules/fresh/README.md +0 -119
- package/src/visual/scripts/node_modules/fresh/index.js +0 -137
- package/src/visual/scripts/node_modules/fresh/package.json +0 -46
- package/src/visual/scripts/node_modules/function-bind/.eslintrc +0 -21
- package/src/visual/scripts/node_modules/function-bind/.github/FUNDING.yml +0 -12
- package/src/visual/scripts/node_modules/function-bind/.github/SECURITY.md +0 -3
- package/src/visual/scripts/node_modules/function-bind/.nycrc +0 -13
- package/src/visual/scripts/node_modules/function-bind/CHANGELOG.md +0 -136
- package/src/visual/scripts/node_modules/function-bind/LICENSE +0 -20
- package/src/visual/scripts/node_modules/function-bind/README.md +0 -46
- package/src/visual/scripts/node_modules/function-bind/implementation.js +0 -84
- package/src/visual/scripts/node_modules/function-bind/index.js +0 -5
- package/src/visual/scripts/node_modules/function-bind/package.json +0 -87
- package/src/visual/scripts/node_modules/function-bind/test/.eslintrc +0 -9
- package/src/visual/scripts/node_modules/function-bind/test/index.js +0 -252
- package/src/visual/scripts/node_modules/get-intrinsic/.eslintrc +0 -42
- package/src/visual/scripts/node_modules/get-intrinsic/.github/FUNDING.yml +0 -12
- package/src/visual/scripts/node_modules/get-intrinsic/.nycrc +0 -9
- package/src/visual/scripts/node_modules/get-intrinsic/CHANGELOG.md +0 -186
- package/src/visual/scripts/node_modules/get-intrinsic/LICENSE +0 -21
- package/src/visual/scripts/node_modules/get-intrinsic/README.md +0 -71
- package/src/visual/scripts/node_modules/get-intrinsic/index.js +0 -378
- package/src/visual/scripts/node_modules/get-intrinsic/package.json +0 -97
- package/src/visual/scripts/node_modules/get-intrinsic/test/GetIntrinsic.js +0 -274
- package/src/visual/scripts/node_modules/get-proto/.eslintrc +0 -10
- package/src/visual/scripts/node_modules/get-proto/.github/FUNDING.yml +0 -12
- package/src/visual/scripts/node_modules/get-proto/.nycrc +0 -9
- package/src/visual/scripts/node_modules/get-proto/CHANGELOG.md +0 -21
- package/src/visual/scripts/node_modules/get-proto/LICENSE +0 -21
- package/src/visual/scripts/node_modules/get-proto/Object.getPrototypeOf.d.ts +0 -5
- package/src/visual/scripts/node_modules/get-proto/Object.getPrototypeOf.js +0 -6
- package/src/visual/scripts/node_modules/get-proto/README.md +0 -50
- package/src/visual/scripts/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +0 -3
- package/src/visual/scripts/node_modules/get-proto/Reflect.getPrototypeOf.js +0 -4
- package/src/visual/scripts/node_modules/get-proto/index.d.ts +0 -5
- package/src/visual/scripts/node_modules/get-proto/index.js +0 -27
- package/src/visual/scripts/node_modules/get-proto/package.json +0 -81
- package/src/visual/scripts/node_modules/get-proto/test/index.js +0 -68
- package/src/visual/scripts/node_modules/get-proto/tsconfig.json +0 -9
- package/src/visual/scripts/node_modules/gopd/.eslintrc +0 -16
- package/src/visual/scripts/node_modules/gopd/.github/FUNDING.yml +0 -12
- package/src/visual/scripts/node_modules/gopd/CHANGELOG.md +0 -45
- package/src/visual/scripts/node_modules/gopd/LICENSE +0 -21
- package/src/visual/scripts/node_modules/gopd/README.md +0 -40
- package/src/visual/scripts/node_modules/gopd/gOPD.d.ts +0 -1
- package/src/visual/scripts/node_modules/gopd/gOPD.js +0 -4
- package/src/visual/scripts/node_modules/gopd/index.d.ts +0 -5
- package/src/visual/scripts/node_modules/gopd/index.js +0 -15
- package/src/visual/scripts/node_modules/gopd/package.json +0 -77
- package/src/visual/scripts/node_modules/gopd/test/index.js +0 -36
- package/src/visual/scripts/node_modules/gopd/tsconfig.json +0 -9
- package/src/visual/scripts/node_modules/has-symbols/.eslintrc +0 -11
- package/src/visual/scripts/node_modules/has-symbols/.github/FUNDING.yml +0 -12
- package/src/visual/scripts/node_modules/has-symbols/.nycrc +0 -9
- package/src/visual/scripts/node_modules/has-symbols/CHANGELOG.md +0 -91
- package/src/visual/scripts/node_modules/has-symbols/LICENSE +0 -21
- package/src/visual/scripts/node_modules/has-symbols/README.md +0 -46
- package/src/visual/scripts/node_modules/has-symbols/index.d.ts +0 -3
- package/src/visual/scripts/node_modules/has-symbols/index.js +0 -14
- package/src/visual/scripts/node_modules/has-symbols/package.json +0 -111
- package/src/visual/scripts/node_modules/has-symbols/shams.d.ts +0 -3
- package/src/visual/scripts/node_modules/has-symbols/shams.js +0 -45
- package/src/visual/scripts/node_modules/has-symbols/test/index.js +0 -22
- package/src/visual/scripts/node_modules/has-symbols/test/shams/core-js.js +0 -29
- package/src/visual/scripts/node_modules/has-symbols/test/shams/get-own-property-symbols.js +0 -29
- package/src/visual/scripts/node_modules/has-symbols/test/tests.js +0 -58
- package/src/visual/scripts/node_modules/has-symbols/tsconfig.json +0 -10
- package/src/visual/scripts/node_modules/hasown/.eslintrc +0 -5
- package/src/visual/scripts/node_modules/hasown/.github/FUNDING.yml +0 -12
- package/src/visual/scripts/node_modules/hasown/.nycrc +0 -13
- package/src/visual/scripts/node_modules/hasown/CHANGELOG.md +0 -40
- package/src/visual/scripts/node_modules/hasown/LICENSE +0 -21
- package/src/visual/scripts/node_modules/hasown/README.md +0 -40
- package/src/visual/scripts/node_modules/hasown/index.d.ts +0 -3
- package/src/visual/scripts/node_modules/hasown/index.js +0 -8
- package/src/visual/scripts/node_modules/hasown/package.json +0 -92
- package/src/visual/scripts/node_modules/hasown/tsconfig.json +0 -6
- package/src/visual/scripts/node_modules/http-errors/HISTORY.md +0 -186
- package/src/visual/scripts/node_modules/http-errors/LICENSE +0 -23
- package/src/visual/scripts/node_modules/http-errors/README.md +0 -169
- package/src/visual/scripts/node_modules/http-errors/index.js +0 -290
- package/src/visual/scripts/node_modules/http-errors/package.json +0 -54
- package/src/visual/scripts/node_modules/iconv-lite/Changelog.md +0 -162
- package/src/visual/scripts/node_modules/iconv-lite/LICENSE +0 -21
- package/src/visual/scripts/node_modules/iconv-lite/README.md +0 -156
- package/src/visual/scripts/node_modules/iconv-lite/encodings/dbcs-codec.js +0 -555
- package/src/visual/scripts/node_modules/iconv-lite/encodings/dbcs-data.js +0 -176
- package/src/visual/scripts/node_modules/iconv-lite/encodings/index.js +0 -22
- package/src/visual/scripts/node_modules/iconv-lite/encodings/internal.js +0 -188
- package/src/visual/scripts/node_modules/iconv-lite/encodings/sbcs-codec.js +0 -72
- package/src/visual/scripts/node_modules/iconv-lite/encodings/sbcs-data-generated.js +0 -451
- package/src/visual/scripts/node_modules/iconv-lite/encodings/sbcs-data.js +0 -174
- package/src/visual/scripts/node_modules/iconv-lite/encodings/tables/big5-added.json +0 -122
- package/src/visual/scripts/node_modules/iconv-lite/encodings/tables/cp936.json +0 -264
- package/src/visual/scripts/node_modules/iconv-lite/encodings/tables/cp949.json +0 -273
- package/src/visual/scripts/node_modules/iconv-lite/encodings/tables/cp950.json +0 -177
- package/src/visual/scripts/node_modules/iconv-lite/encodings/tables/eucjp.json +0 -182
- package/src/visual/scripts/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +0 -1
- package/src/visual/scripts/node_modules/iconv-lite/encodings/tables/gbk-added.json +0 -55
- package/src/visual/scripts/node_modules/iconv-lite/encodings/tables/shiftjis.json +0 -125
- package/src/visual/scripts/node_modules/iconv-lite/encodings/utf16.js +0 -177
- package/src/visual/scripts/node_modules/iconv-lite/encodings/utf7.js +0 -290
- package/src/visual/scripts/node_modules/iconv-lite/lib/bom-handling.js +0 -52
- package/src/visual/scripts/node_modules/iconv-lite/lib/extend-node.js +0 -217
- package/src/visual/scripts/node_modules/iconv-lite/lib/index.d.ts +0 -24
- package/src/visual/scripts/node_modules/iconv-lite/lib/index.js +0 -153
- package/src/visual/scripts/node_modules/iconv-lite/lib/streams.js +0 -121
- package/src/visual/scripts/node_modules/iconv-lite/package.json +0 -46
- package/src/visual/scripts/node_modules/inherits/LICENSE +0 -16
- package/src/visual/scripts/node_modules/inherits/README.md +0 -42
- package/src/visual/scripts/node_modules/inherits/inherits.js +0 -9
- package/src/visual/scripts/node_modules/inherits/inherits_browser.js +0 -27
- package/src/visual/scripts/node_modules/inherits/package.json +0 -29
- package/src/visual/scripts/node_modules/ipaddr.js/LICENSE +0 -19
- package/src/visual/scripts/node_modules/ipaddr.js/README.md +0 -233
- package/src/visual/scripts/node_modules/ipaddr.js/ipaddr.min.js +0 -1
- package/src/visual/scripts/node_modules/ipaddr.js/lib/ipaddr.js +0 -673
- package/src/visual/scripts/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +0 -68
- package/src/visual/scripts/node_modules/ipaddr.js/package.json +0 -35
- package/src/visual/scripts/node_modules/math-intrinsics/.eslintrc +0 -16
- package/src/visual/scripts/node_modules/math-intrinsics/.github/FUNDING.yml +0 -12
- package/src/visual/scripts/node_modules/math-intrinsics/CHANGELOG.md +0 -24
- package/src/visual/scripts/node_modules/math-intrinsics/LICENSE +0 -21
- package/src/visual/scripts/node_modules/math-intrinsics/README.md +0 -50
- package/src/visual/scripts/node_modules/math-intrinsics/abs.d.ts +0 -1
- package/src/visual/scripts/node_modules/math-intrinsics/abs.js +0 -4
- package/src/visual/scripts/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +0 -3
- package/src/visual/scripts/node_modules/math-intrinsics/constants/maxArrayLength.js +0 -4
- package/src/visual/scripts/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +0 -3
- package/src/visual/scripts/node_modules/math-intrinsics/constants/maxSafeInteger.js +0 -5
- package/src/visual/scripts/node_modules/math-intrinsics/constants/maxValue.d.ts +0 -3
- package/src/visual/scripts/node_modules/math-intrinsics/constants/maxValue.js +0 -5
- package/src/visual/scripts/node_modules/math-intrinsics/floor.d.ts +0 -1
- package/src/visual/scripts/node_modules/math-intrinsics/floor.js +0 -4
- package/src/visual/scripts/node_modules/math-intrinsics/isFinite.d.ts +0 -3
- package/src/visual/scripts/node_modules/math-intrinsics/isFinite.js +0 -12
- package/src/visual/scripts/node_modules/math-intrinsics/isInteger.d.ts +0 -3
- package/src/visual/scripts/node_modules/math-intrinsics/isInteger.js +0 -16
- package/src/visual/scripts/node_modules/math-intrinsics/isNaN.d.ts +0 -1
- package/src/visual/scripts/node_modules/math-intrinsics/isNaN.js +0 -6
- package/src/visual/scripts/node_modules/math-intrinsics/isNegativeZero.d.ts +0 -3
- package/src/visual/scripts/node_modules/math-intrinsics/isNegativeZero.js +0 -6
- package/src/visual/scripts/node_modules/math-intrinsics/max.d.ts +0 -1
- package/src/visual/scripts/node_modules/math-intrinsics/max.js +0 -4
- package/src/visual/scripts/node_modules/math-intrinsics/min.d.ts +0 -1
- package/src/visual/scripts/node_modules/math-intrinsics/min.js +0 -4
- package/src/visual/scripts/node_modules/math-intrinsics/mod.d.ts +0 -3
- package/src/visual/scripts/node_modules/math-intrinsics/mod.js +0 -9
- package/src/visual/scripts/node_modules/math-intrinsics/package.json +0 -86
- package/src/visual/scripts/node_modules/math-intrinsics/pow.d.ts +0 -1
- package/src/visual/scripts/node_modules/math-intrinsics/pow.js +0 -4
- package/src/visual/scripts/node_modules/math-intrinsics/round.d.ts +0 -1
- package/src/visual/scripts/node_modules/math-intrinsics/round.js +0 -4
- package/src/visual/scripts/node_modules/math-intrinsics/sign.d.ts +0 -3
- package/src/visual/scripts/node_modules/math-intrinsics/sign.js +0 -11
- package/src/visual/scripts/node_modules/math-intrinsics/test/index.js +0 -192
- package/src/visual/scripts/node_modules/math-intrinsics/tsconfig.json +0 -3
- package/src/visual/scripts/node_modules/media-typer/HISTORY.md +0 -22
- package/src/visual/scripts/node_modules/media-typer/LICENSE +0 -22
- package/src/visual/scripts/node_modules/media-typer/README.md +0 -81
- package/src/visual/scripts/node_modules/media-typer/index.js +0 -270
- package/src/visual/scripts/node_modules/media-typer/package.json +0 -26
- package/src/visual/scripts/node_modules/merge-descriptors/HISTORY.md +0 -21
- package/src/visual/scripts/node_modules/merge-descriptors/LICENSE +0 -23
- package/src/visual/scripts/node_modules/merge-descriptors/README.md +0 -49
- package/src/visual/scripts/node_modules/merge-descriptors/index.js +0 -60
- package/src/visual/scripts/node_modules/merge-descriptors/package.json +0 -39
- package/src/visual/scripts/node_modules/methods/HISTORY.md +0 -29
- package/src/visual/scripts/node_modules/methods/LICENSE +0 -24
- package/src/visual/scripts/node_modules/methods/README.md +0 -51
- package/src/visual/scripts/node_modules/methods/index.js +0 -69
- package/src/visual/scripts/node_modules/methods/package.json +0 -36
- package/src/visual/scripts/node_modules/mime/CHANGELOG.md +0 -164
- package/src/visual/scripts/node_modules/mime/LICENSE +0 -21
- package/src/visual/scripts/node_modules/mime/README.md +0 -90
- package/src/visual/scripts/node_modules/mime/cli.js +0 -8
- package/src/visual/scripts/node_modules/mime/mime.js +0 -108
- package/src/visual/scripts/node_modules/mime/package.json +0 -44
- package/src/visual/scripts/node_modules/mime/src/build.js +0 -53
- package/src/visual/scripts/node_modules/mime/src/test.js +0 -60
- package/src/visual/scripts/node_modules/mime/types.json +0 -1
- package/src/visual/scripts/node_modules/mime-db/HISTORY.md +0 -507
- package/src/visual/scripts/node_modules/mime-db/LICENSE +0 -23
- package/src/visual/scripts/node_modules/mime-db/README.md +0 -100
- package/src/visual/scripts/node_modules/mime-db/db.json +0 -8519
- package/src/visual/scripts/node_modules/mime-db/index.js +0 -12
- package/src/visual/scripts/node_modules/mime-db/package.json +0 -60
- package/src/visual/scripts/node_modules/mime-types/HISTORY.md +0 -397
- package/src/visual/scripts/node_modules/mime-types/LICENSE +0 -23
- package/src/visual/scripts/node_modules/mime-types/README.md +0 -113
- package/src/visual/scripts/node_modules/mime-types/index.js +0 -188
- package/src/visual/scripts/node_modules/mime-types/package.json +0 -44
- package/src/visual/scripts/node_modules/ms/index.js +0 -152
- package/src/visual/scripts/node_modules/ms/license.md +0 -21
- package/src/visual/scripts/node_modules/ms/package.json +0 -37
- package/src/visual/scripts/node_modules/ms/readme.md +0 -51
- package/src/visual/scripts/node_modules/negotiator/HISTORY.md +0 -108
- package/src/visual/scripts/node_modules/negotiator/LICENSE +0 -24
- package/src/visual/scripts/node_modules/negotiator/README.md +0 -203
- package/src/visual/scripts/node_modules/negotiator/index.js +0 -82
- package/src/visual/scripts/node_modules/negotiator/lib/charset.js +0 -169
- package/src/visual/scripts/node_modules/negotiator/lib/encoding.js +0 -184
- package/src/visual/scripts/node_modules/negotiator/lib/language.js +0 -179
- package/src/visual/scripts/node_modules/negotiator/lib/mediaType.js +0 -294
- package/src/visual/scripts/node_modules/negotiator/package.json +0 -42
- package/src/visual/scripts/node_modules/object-inspect/.eslintrc +0 -53
- package/src/visual/scripts/node_modules/object-inspect/.github/FUNDING.yml +0 -12
- package/src/visual/scripts/node_modules/object-inspect/.nycrc +0 -13
- package/src/visual/scripts/node_modules/object-inspect/CHANGELOG.md +0 -424
- package/src/visual/scripts/node_modules/object-inspect/LICENSE +0 -21
- package/src/visual/scripts/node_modules/object-inspect/example/all.js +0 -23
- package/src/visual/scripts/node_modules/object-inspect/example/circular.js +0 -6
- package/src/visual/scripts/node_modules/object-inspect/example/fn.js +0 -5
- package/src/visual/scripts/node_modules/object-inspect/example/inspect.js +0 -10
- package/src/visual/scripts/node_modules/object-inspect/index.js +0 -544
- package/src/visual/scripts/node_modules/object-inspect/package-support.json +0 -20
- package/src/visual/scripts/node_modules/object-inspect/package.json +0 -105
- package/src/visual/scripts/node_modules/object-inspect/readme.markdown +0 -84
- package/src/visual/scripts/node_modules/object-inspect/test/bigint.js +0 -58
- package/src/visual/scripts/node_modules/object-inspect/test/browser/dom.js +0 -15
- package/src/visual/scripts/node_modules/object-inspect/test/circular.js +0 -16
- package/src/visual/scripts/node_modules/object-inspect/test/deep.js +0 -12
- package/src/visual/scripts/node_modules/object-inspect/test/element.js +0 -53
- package/src/visual/scripts/node_modules/object-inspect/test/err.js +0 -48
- package/src/visual/scripts/node_modules/object-inspect/test/fakes.js +0 -29
- package/src/visual/scripts/node_modules/object-inspect/test/fn.js +0 -76
- package/src/visual/scripts/node_modules/object-inspect/test/global.js +0 -17
- package/src/visual/scripts/node_modules/object-inspect/test/has.js +0 -15
- package/src/visual/scripts/node_modules/object-inspect/test/holes.js +0 -15
- package/src/visual/scripts/node_modules/object-inspect/test/indent-option.js +0 -271
- package/src/visual/scripts/node_modules/object-inspect/test/inspect.js +0 -139
- package/src/visual/scripts/node_modules/object-inspect/test/lowbyte.js +0 -12
- package/src/visual/scripts/node_modules/object-inspect/test/number.js +0 -58
- package/src/visual/scripts/node_modules/object-inspect/test/quoteStyle.js +0 -26
- package/src/visual/scripts/node_modules/object-inspect/test/toStringTag.js +0 -40
- package/src/visual/scripts/node_modules/object-inspect/test/undef.js +0 -12
- package/src/visual/scripts/node_modules/object-inspect/test/values.js +0 -261
- package/src/visual/scripts/node_modules/object-inspect/test-core-js.js +0 -26
- package/src/visual/scripts/node_modules/object-inspect/util.inspect.js +0 -1
- package/src/visual/scripts/node_modules/on-finished/HISTORY.md +0 -98
- package/src/visual/scripts/node_modules/on-finished/LICENSE +0 -23
- package/src/visual/scripts/node_modules/on-finished/README.md +0 -162
- package/src/visual/scripts/node_modules/on-finished/index.js +0 -234
- package/src/visual/scripts/node_modules/on-finished/package.json +0 -39
- package/src/visual/scripts/node_modules/parseurl/HISTORY.md +0 -58
- package/src/visual/scripts/node_modules/parseurl/LICENSE +0 -24
- package/src/visual/scripts/node_modules/parseurl/README.md +0 -133
- package/src/visual/scripts/node_modules/parseurl/index.js +0 -158
- package/src/visual/scripts/node_modules/parseurl/package.json +0 -40
- package/src/visual/scripts/node_modules/path-to-regexp/LICENSE +0 -21
- package/src/visual/scripts/node_modules/path-to-regexp/Readme.md +0 -35
- package/src/visual/scripts/node_modules/path-to-regexp/index.js +0 -156
- package/src/visual/scripts/node_modules/path-to-regexp/package.json +0 -30
- package/src/visual/scripts/node_modules/proxy-addr/HISTORY.md +0 -161
- package/src/visual/scripts/node_modules/proxy-addr/LICENSE +0 -22
- package/src/visual/scripts/node_modules/proxy-addr/README.md +0 -139
- package/src/visual/scripts/node_modules/proxy-addr/index.js +0 -327
- package/src/visual/scripts/node_modules/proxy-addr/package.json +0 -47
- package/src/visual/scripts/node_modules/qs/.editorconfig +0 -46
- package/src/visual/scripts/node_modules/qs/.github/FUNDING.yml +0 -12
- package/src/visual/scripts/node_modules/qs/.github/SECURITY.md +0 -11
- package/src/visual/scripts/node_modules/qs/.github/THREAT_MODEL.md +0 -78
- package/src/visual/scripts/node_modules/qs/.nycrc +0 -13
- package/src/visual/scripts/node_modules/qs/CHANGELOG.md +0 -644
- package/src/visual/scripts/node_modules/qs/LICENSE.md +0 -29
- package/src/visual/scripts/node_modules/qs/README.md +0 -740
- package/src/visual/scripts/node_modules/qs/dist/qs.js +0 -141
- package/src/visual/scripts/node_modules/qs/eslint.config.mjs +0 -56
- package/src/visual/scripts/node_modules/qs/lib/formats.js +0 -23
- package/src/visual/scripts/node_modules/qs/lib/index.js +0 -11
- package/src/visual/scripts/node_modules/qs/lib/parse.js +0 -371
- package/src/visual/scripts/node_modules/qs/lib/stringify.js +0 -356
- package/src/visual/scripts/node_modules/qs/lib/utils.js +0 -340
- package/src/visual/scripts/node_modules/qs/package.json +0 -94
- package/src/visual/scripts/node_modules/qs/test/empty-keys-cases.js +0 -267
- package/src/visual/scripts/node_modules/qs/test/parse.js +0 -1512
- package/src/visual/scripts/node_modules/qs/test/stringify.js +0 -1310
- package/src/visual/scripts/node_modules/qs/test/utils.js +0 -397
- package/src/visual/scripts/node_modules/range-parser/HISTORY.md +0 -56
- package/src/visual/scripts/node_modules/range-parser/LICENSE +0 -23
- package/src/visual/scripts/node_modules/range-parser/README.md +0 -84
- package/src/visual/scripts/node_modules/range-parser/index.js +0 -162
- package/src/visual/scripts/node_modules/range-parser/package.json +0 -44
- package/src/visual/scripts/node_modules/raw-body/LICENSE +0 -22
- package/src/visual/scripts/node_modules/raw-body/README.md +0 -223
- package/src/visual/scripts/node_modules/raw-body/index.d.ts +0 -87
- package/src/visual/scripts/node_modules/raw-body/index.js +0 -336
- package/src/visual/scripts/node_modules/raw-body/package.json +0 -47
- package/src/visual/scripts/node_modules/readdirp/LICENSE +0 -21
- package/src/visual/scripts/node_modules/readdirp/README.md +0 -120
- package/src/visual/scripts/node_modules/readdirp/esm/index.d.ts +0 -108
- package/src/visual/scripts/node_modules/readdirp/esm/index.js +0 -257
- package/src/visual/scripts/node_modules/readdirp/esm/package.json +0 -1
- package/src/visual/scripts/node_modules/readdirp/index.d.ts +0 -108
- package/src/visual/scripts/node_modules/readdirp/index.js +0 -263
- package/src/visual/scripts/node_modules/readdirp/package.json +0 -70
- package/src/visual/scripts/node_modules/safe-buffer/LICENSE +0 -21
- package/src/visual/scripts/node_modules/safe-buffer/README.md +0 -584
- package/src/visual/scripts/node_modules/safe-buffer/index.d.ts +0 -187
- package/src/visual/scripts/node_modules/safe-buffer/index.js +0 -65
- package/src/visual/scripts/node_modules/safe-buffer/package.json +0 -51
- package/src/visual/scripts/node_modules/safer-buffer/LICENSE +0 -21
- package/src/visual/scripts/node_modules/safer-buffer/Porting-Buffer.md +0 -268
- package/src/visual/scripts/node_modules/safer-buffer/Readme.md +0 -156
- package/src/visual/scripts/node_modules/safer-buffer/dangerous.js +0 -58
- package/src/visual/scripts/node_modules/safer-buffer/package.json +0 -34
- package/src/visual/scripts/node_modules/safer-buffer/safer.js +0 -77
- package/src/visual/scripts/node_modules/safer-buffer/tests.js +0 -406
- package/src/visual/scripts/node_modules/send/HISTORY.md +0 -538
- package/src/visual/scripts/node_modules/send/LICENSE +0 -23
- package/src/visual/scripts/node_modules/send/README.md +0 -327
- package/src/visual/scripts/node_modules/send/SECURITY.md +0 -24
- package/src/visual/scripts/node_modules/send/index.js +0 -1142
- package/src/visual/scripts/node_modules/send/node_modules/ms/index.js +0 -162
- package/src/visual/scripts/node_modules/send/node_modules/ms/license.md +0 -21
- package/src/visual/scripts/node_modules/send/node_modules/ms/package.json +0 -38
- package/src/visual/scripts/node_modules/send/node_modules/ms/readme.md +0 -59
- package/src/visual/scripts/node_modules/send/package.json +0 -62
- package/src/visual/scripts/node_modules/serve-static/HISTORY.md +0 -493
- package/src/visual/scripts/node_modules/serve-static/LICENSE +0 -25
- package/src/visual/scripts/node_modules/serve-static/README.md +0 -257
- package/src/visual/scripts/node_modules/serve-static/index.js +0 -209
- package/src/visual/scripts/node_modules/serve-static/package.json +0 -42
- package/src/visual/scripts/node_modules/setprototypeof/LICENSE +0 -13
- package/src/visual/scripts/node_modules/setprototypeof/README.md +0 -31
- package/src/visual/scripts/node_modules/setprototypeof/index.d.ts +0 -2
- package/src/visual/scripts/node_modules/setprototypeof/index.js +0 -17
- package/src/visual/scripts/node_modules/setprototypeof/package.json +0 -38
- package/src/visual/scripts/node_modules/setprototypeof/test/index.js +0 -24
- package/src/visual/scripts/node_modules/side-channel/.editorconfig +0 -9
- package/src/visual/scripts/node_modules/side-channel/.eslintrc +0 -12
- package/src/visual/scripts/node_modules/side-channel/.github/FUNDING.yml +0 -12
- package/src/visual/scripts/node_modules/side-channel/.nycrc +0 -13
- package/src/visual/scripts/node_modules/side-channel/CHANGELOG.md +0 -110
- package/src/visual/scripts/node_modules/side-channel/LICENSE +0 -21
- package/src/visual/scripts/node_modules/side-channel/README.md +0 -61
- package/src/visual/scripts/node_modules/side-channel/index.d.ts +0 -14
- package/src/visual/scripts/node_modules/side-channel/index.js +0 -43
- package/src/visual/scripts/node_modules/side-channel/package.json +0 -85
- package/src/visual/scripts/node_modules/side-channel/test/index.js +0 -104
- package/src/visual/scripts/node_modules/side-channel/tsconfig.json +0 -9
- package/src/visual/scripts/node_modules/side-channel-list/.editorconfig +0 -9
- package/src/visual/scripts/node_modules/side-channel-list/.eslintrc +0 -11
- package/src/visual/scripts/node_modules/side-channel-list/.github/FUNDING.yml +0 -12
- package/src/visual/scripts/node_modules/side-channel-list/.nycrc +0 -13
- package/src/visual/scripts/node_modules/side-channel-list/CHANGELOG.md +0 -15
- package/src/visual/scripts/node_modules/side-channel-list/LICENSE +0 -21
- package/src/visual/scripts/node_modules/side-channel-list/README.md +0 -62
- package/src/visual/scripts/node_modules/side-channel-list/index.d.ts +0 -13
- package/src/visual/scripts/node_modules/side-channel-list/index.js +0 -113
- package/src/visual/scripts/node_modules/side-channel-list/list.d.ts +0 -14
- package/src/visual/scripts/node_modules/side-channel-list/package.json +0 -77
- package/src/visual/scripts/node_modules/side-channel-list/test/index.js +0 -104
- package/src/visual/scripts/node_modules/side-channel-list/tsconfig.json +0 -9
- package/src/visual/scripts/node_modules/side-channel-map/.editorconfig +0 -9
- package/src/visual/scripts/node_modules/side-channel-map/.eslintrc +0 -11
- package/src/visual/scripts/node_modules/side-channel-map/.github/FUNDING.yml +0 -12
- package/src/visual/scripts/node_modules/side-channel-map/.nycrc +0 -13
- package/src/visual/scripts/node_modules/side-channel-map/CHANGELOG.md +0 -22
- package/src/visual/scripts/node_modules/side-channel-map/LICENSE +0 -21
- package/src/visual/scripts/node_modules/side-channel-map/README.md +0 -62
- package/src/visual/scripts/node_modules/side-channel-map/index.d.ts +0 -15
- package/src/visual/scripts/node_modules/side-channel-map/index.js +0 -68
- package/src/visual/scripts/node_modules/side-channel-map/package.json +0 -80
- package/src/visual/scripts/node_modules/side-channel-map/test/index.js +0 -114
- package/src/visual/scripts/node_modules/side-channel-map/tsconfig.json +0 -9
- package/src/visual/scripts/node_modules/side-channel-weakmap/.editorconfig +0 -9
- package/src/visual/scripts/node_modules/side-channel-weakmap/.eslintrc +0 -12
- package/src/visual/scripts/node_modules/side-channel-weakmap/.github/FUNDING.yml +0 -12
- package/src/visual/scripts/node_modules/side-channel-weakmap/.nycrc +0 -13
- package/src/visual/scripts/node_modules/side-channel-weakmap/CHANGELOG.md +0 -28
- package/src/visual/scripts/node_modules/side-channel-weakmap/LICENSE +0 -21
- package/src/visual/scripts/node_modules/side-channel-weakmap/README.md +0 -62
- package/src/visual/scripts/node_modules/side-channel-weakmap/index.d.ts +0 -15
- package/src/visual/scripts/node_modules/side-channel-weakmap/index.js +0 -84
- package/src/visual/scripts/node_modules/side-channel-weakmap/package.json +0 -87
- package/src/visual/scripts/node_modules/side-channel-weakmap/test/index.js +0 -114
- package/src/visual/scripts/node_modules/side-channel-weakmap/tsconfig.json +0 -9
- package/src/visual/scripts/node_modules/statuses/HISTORY.md +0 -87
- package/src/visual/scripts/node_modules/statuses/LICENSE +0 -23
- package/src/visual/scripts/node_modules/statuses/README.md +0 -139
- package/src/visual/scripts/node_modules/statuses/codes.json +0 -65
- package/src/visual/scripts/node_modules/statuses/index.js +0 -146
- package/src/visual/scripts/node_modules/statuses/package.json +0 -49
- package/src/visual/scripts/node_modules/toidentifier/HISTORY.md +0 -9
- package/src/visual/scripts/node_modules/toidentifier/LICENSE +0 -21
- package/src/visual/scripts/node_modules/toidentifier/README.md +0 -61
- package/src/visual/scripts/node_modules/toidentifier/index.js +0 -32
- package/src/visual/scripts/node_modules/toidentifier/package.json +0 -38
- package/src/visual/scripts/node_modules/type-is/HISTORY.md +0 -259
- package/src/visual/scripts/node_modules/type-is/LICENSE +0 -23
- package/src/visual/scripts/node_modules/type-is/README.md +0 -170
- package/src/visual/scripts/node_modules/type-is/index.js +0 -266
- package/src/visual/scripts/node_modules/type-is/package.json +0 -45
- package/src/visual/scripts/node_modules/unpipe/HISTORY.md +0 -4
- package/src/visual/scripts/node_modules/unpipe/LICENSE +0 -22
- package/src/visual/scripts/node_modules/unpipe/README.md +0 -43
- package/src/visual/scripts/node_modules/unpipe/index.js +0 -69
- package/src/visual/scripts/node_modules/unpipe/package.json +0 -27
- package/src/visual/scripts/node_modules/utils-merge/LICENSE +0 -20
- package/src/visual/scripts/node_modules/utils-merge/README.md +0 -34
- package/src/visual/scripts/node_modules/utils-merge/index.js +0 -23
- package/src/visual/scripts/node_modules/utils-merge/package.json +0 -40
- package/src/visual/scripts/node_modules/vary/HISTORY.md +0 -39
- package/src/visual/scripts/node_modules/vary/LICENSE +0 -22
- package/src/visual/scripts/node_modules/vary/README.md +0 -101
- package/src/visual/scripts/node_modules/vary/index.js +0 -149
- package/src/visual/scripts/node_modules/vary/package.json +0 -43
- package/src/visual/scripts/node_modules/ws/LICENSE +0 -20
- package/src/visual/scripts/node_modules/ws/README.md +0 -548
- package/src/visual/scripts/node_modules/ws/browser.js +0 -8
- package/src/visual/scripts/node_modules/ws/index.js +0 -22
- package/src/visual/scripts/node_modules/ws/lib/buffer-util.js +0 -131
- package/src/visual/scripts/node_modules/ws/lib/constants.js +0 -19
- package/src/visual/scripts/node_modules/ws/lib/event-target.js +0 -292
- package/src/visual/scripts/node_modules/ws/lib/extension.js +0 -203
- package/src/visual/scripts/node_modules/ws/lib/limiter.js +0 -55
- package/src/visual/scripts/node_modules/ws/lib/permessage-deflate.js +0 -528
- package/src/visual/scripts/node_modules/ws/lib/receiver.js +0 -706
- package/src/visual/scripts/node_modules/ws/lib/sender.js +0 -602
- package/src/visual/scripts/node_modules/ws/lib/stream.js +0 -161
- package/src/visual/scripts/node_modules/ws/lib/subprotocol.js +0 -62
- package/src/visual/scripts/node_modules/ws/lib/validation.js +0 -152
- package/src/visual/scripts/node_modules/ws/lib/websocket-server.js +0 -554
- package/src/visual/scripts/node_modules/ws/lib/websocket.js +0 -1393
- package/src/visual/scripts/node_modules/ws/package.json +0 -70
- package/src/visual/scripts/node_modules/ws/wrapper.mjs +0 -21
- package/src/visual/scripts/package-lock.json +0 -878
package/src/commands/release.ts
CHANGED
|
@@ -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(
|
|
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)
|
|
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
|
-
//
|
|
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
|
-
//
|
|
56
|
-
|
|
57
|
-
|
|
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
|
-
|
|
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
|
-
|
|
67
|
-
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
|
|
140
|
-
|
|
141
|
-
|
|
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
|
];
|
package/src/commands/review.ts
CHANGED
|
@@ -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
|
|
package/src/commands/status.ts
CHANGED
|
@@ -1,34 +1,17 @@
|
|
|
1
1
|
import type { Platform, PlatformContext } from "../platform/types.js";
|
|
2
|
-
import {
|
|
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
|
|
13
|
-
const
|
|
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
|
-
`
|
|
24
|
-
`
|
|
25
|
-
`
|
|
26
|
-
|
|
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: "
|
|
26
|
+
description: "Show project plans and configuration",
|
|
44
27
|
async handler(_args: string | undefined, ctx: any) {
|
|
45
28
|
handleStatus(platform, ctx);
|
|
46
29
|
},
|
package/src/commands/supi.ts
CHANGED
|
@@ -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 —
|
|
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
|
|
package/src/config/defaults.ts
CHANGED
|
@@ -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
|
};
|