@cloudbase/cli 2.11.0-beta.0 → 2.11.0
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/bin/ccr +2 -0
- package/bin/cloudbase +2 -0
- package/bin/cloudbase-mcp +2 -0
- package/bin/tcb +2 -0
- package/dist/standalone/cli.js +235287 -162247
- package/package.json +15 -132
- package/.augment-guidelines +0 -119
- package/.claude/settings.local.json +0 -6
- package/.clinerules/cloudbase-rules.mdc +0 -119
- package/.cursor/rules/cloudbase-rules.mdc +0 -119
- package/.editorconfig +0 -10
- package/.eslintignore +0 -8
- package/.eslintrc +0 -35
- package/.mcp.json +0 -11
- package/.prettierignore +0 -1
- package/.prettierrc.js +0 -29
- package/.vscode/launch.json +0 -26
- package/.yarnrc.yml +0 -1
- package/CLAUDE.md +0 -119
- package/LICENSE +0 -6
- package/bin/ccr.js +0 -3
- package/bin/cloudbase.js +0 -7
- package/bin/tcb.js +0 -339
- package/changelog.md +0 -6
- package/cloudbase-cli-2.7.8.tgz +0 -0
- package/cloudbaserc.json +0 -13
- package/jest.config.js +0 -17
- package/lib/auth/index.js +0 -18
- package/lib/auth/login.js +0 -97
- package/lib/auth/logout.js +0 -9
- package/lib/commands/account/index.js +0 -18
- package/lib/commands/account/login.js +0 -239
- package/lib/commands/account/logout.js +0 -45
- package/lib/commands/ag/base.js +0 -203
- package/lib/commands/ag/create.js +0 -301
- package/lib/commands/ag/debug/index.html +0 -699
- package/lib/commands/ag/delete.js +0 -200
- package/lib/commands/ag/deploy.js +0 -185
- package/lib/commands/ag/detail.js +0 -113
- package/lib/commands/ag/index.js +0 -22
- package/lib/commands/ag/list.js +0 -155
- package/lib/commands/ag/run.js +0 -644
- package/lib/commands/ai/index.js +0 -181
- package/lib/commands/cloudfunction/base.js +0 -348
- package/lib/commands/cloudfunction/index.js +0 -17
- package/lib/commands/cloudrun/base.js +0 -1015
- package/lib/commands/cloudrun/cloudrun-run-ui/index.html +0 -193
- package/lib/commands/cloudrun/index.js +0 -17
- package/lib/commands/common.js +0 -210
- package/lib/commands/config/delete.js +0 -61
- package/lib/commands/config/get.js +0 -58
- package/lib/commands/config/index.js +0 -21
- package/lib/commands/config/interface.js +0 -25
- package/lib/commands/config/list.js +0 -61
- package/lib/commands/config/set.js +0 -78
- package/lib/commands/constants.js +0 -11
- package/lib/commands/db/base.js +0 -377
- package/lib/commands/db/index.js +0 -17
- package/lib/commands/env/base.js +0 -116
- package/lib/commands/env/domain.js +0 -207
- package/lib/commands/env/index.js +0 -19
- package/lib/commands/env/login.js +0 -256
- package/lib/commands/framework/index.js +0 -179
- package/lib/commands/fun/base.js +0 -413
- package/lib/commands/fun/index.js +0 -17
- package/lib/commands/functions/alias/getRoute.js +0 -88
- package/lib/commands/functions/alias/index.js +0 -18
- package/lib/commands/functions/alias/setRoute.js +0 -90
- package/lib/commands/functions/code-download.js +0 -112
- package/lib/commands/functions/code-update.js +0 -85
- package/lib/commands/functions/concurrency/delete.js +0 -60
- package/lib/commands/functions/concurrency/index.js +0 -19
- package/lib/commands/functions/concurrency/list.js +0 -71
- package/lib/commands/functions/concurrency/set.js +0 -62
- package/lib/commands/functions/config-update.js +0 -92
- package/lib/commands/functions/copy.js +0 -71
- package/lib/commands/functions/delete.js +0 -91
- package/lib/commands/functions/deploy.js +0 -313
- package/lib/commands/functions/detail.js +0 -155
- package/lib/commands/functions/index.js +0 -33
- package/lib/commands/functions/invoke.js +0 -134
- package/lib/commands/functions/layer/bind.js +0 -188
- package/lib/commands/functions/layer/common.js +0 -13
- package/lib/commands/functions/layer/create.js +0 -82
- package/lib/commands/functions/layer/delete.js +0 -86
- package/lib/commands/functions/layer/download.js +0 -106
- package/lib/commands/functions/layer/index.js +0 -23
- package/lib/commands/functions/layer/list.js +0 -99
- package/lib/commands/functions/layer/sort.js +0 -92
- package/lib/commands/functions/list.js +0 -81
- package/lib/commands/functions/log.js +0 -148
- package/lib/commands/functions/run.js +0 -247
- package/lib/commands/functions/trigger-create.js +0 -88
- package/lib/commands/functions/trigger-delete.js +0 -110
- package/lib/commands/functions/version/index.js +0 -18
- package/lib/commands/functions/version/list.js +0 -86
- package/lib/commands/functions/version/publish.js +0 -60
- package/lib/commands/gateway/create.js +0 -114
- package/lib/commands/gateway/delete.js +0 -100
- package/lib/commands/gateway/domain.js +0 -187
- package/lib/commands/gateway/index.js +0 -21
- package/lib/commands/gateway/list.js +0 -96
- package/lib/commands/gateway/switch.js +0 -131
- package/lib/commands/helpers/index.js +0 -19
- package/lib/commands/helpers/init.js +0 -372
- package/lib/commands/helpers/new.js +0 -119
- package/lib/commands/helpers/open.js +0 -79
- package/lib/commands/hosting/hosting.js +0 -357
- package/lib/commands/hosting/index.js +0 -17
- package/lib/commands/index.js +0 -39
- package/lib/commands/lowcode/app.js +0 -385
- package/lib/commands/lowcode/comps.js +0 -382
- package/lib/commands/lowcode/index.js +0 -18
- package/lib/commands/lowcode/utils.js +0 -72
- package/lib/commands/pull/index.js +0 -17
- package/lib/commands/pull/pull.js +0 -94
- package/lib/commands/run/delete.js +0 -91
- package/lib/commands/run/image/common.js +0 -13
- package/lib/commands/run/image/delete.js +0 -84
- package/lib/commands/run/image/download.js +0 -79
- package/lib/commands/run/image/index.js +0 -21
- package/lib/commands/run/image/list.js +0 -97
- package/lib/commands/run/image/upload.js +0 -107
- package/lib/commands/run/index.js +0 -21
- package/lib/commands/run/list.js +0 -93
- package/lib/commands/run/service/config.js +0 -102
- package/lib/commands/run/service/deploy.js +0 -144
- package/lib/commands/run/service/index.js +0 -20
- package/lib/commands/run/service/list.js +0 -105
- package/lib/commands/run/service/update.js +0 -130
- package/lib/commands/run/standalonegateway/common.js +0 -13
- package/lib/commands/run/standalonegateway/create.js +0 -99
- package/lib/commands/run/standalonegateway/destroy.js +0 -75
- package/lib/commands/run/standalonegateway/index.js +0 -21
- package/lib/commands/run/standalonegateway/list.js +0 -71
- package/lib/commands/run/standalonegateway/package.js +0 -80
- package/lib/commands/run/standalonegateway/turn.js +0 -80
- package/lib/commands/run/version/common.js +0 -13
- package/lib/commands/run/version/create.js +0 -322
- package/lib/commands/run/version/delete.js +0 -83
- package/lib/commands/run/version/index.js +0 -21
- package/lib/commands/run/version/list.js +0 -102
- package/lib/commands/run/version/modify.js +0 -135
- package/lib/commands/run/version/update.js +0 -346
- package/lib/commands/runf/base.js +0 -432
- package/lib/commands/runf/index.js +0 -17
- package/lib/commands/self-update.js +0 -121
- package/lib/commands/smart.js +0 -111
- package/lib/commands/storage/index.js +0 -17
- package/lib/commands/storage/storage.js +0 -488
- package/lib/commands/third/index.js +0 -17
- package/lib/commands/third/thirdAttach.js +0 -67
- package/lib/commands/utils.js +0 -167
- package/lib/completion/index.js +0 -15
- package/lib/constant.js +0 -142
- package/lib/db/index.js +0 -66
- package/lib/decorators/captureError.js +0 -19
- package/lib/decorators/constants.js +0 -15
- package/lib/decorators/deprecate.js +0 -18
- package/lib/decorators/guard.js +0 -24
- package/lib/decorators/index.js +0 -25
- package/lib/decorators/injectParams.js +0 -47
- package/lib/decorators/params/common.js +0 -19
- package/lib/decorators/params/index.js +0 -25
- package/lib/env/domain.js +0 -27
- package/lib/env/index.js +0 -61
- package/lib/env/login.js +0 -63
- package/lib/error.js +0 -17
- package/lib/function/alias.js +0 -41
- package/lib/function/base.js +0 -238
- package/lib/function/code.js +0 -17
- package/lib/function/concurrency.js +0 -55
- package/lib/function/create.js +0 -62
- package/lib/function/delete.js +0 -40
- package/lib/function/index.js +0 -27
- package/lib/function/layer/attach.js +0 -50
- package/lib/function/layer/create.js +0 -52
- package/lib/function/layer/delete.js +0 -13
- package/lib/function/layer/download.js +0 -26
- package/lib/function/layer/index.js +0 -23
- package/lib/function/layer/list.js +0 -23
- package/lib/function/layer/sort.js +0 -14
- package/lib/function/trigger.js +0 -89
- package/lib/function/update.js +0 -33
- package/lib/function/version.js +0 -39
- package/lib/function/vpc.js +0 -22
- package/lib/gateway/index.js +0 -109
- package/lib/help.js +0 -44
- package/lib/hosting.js +0 -213
- package/lib/i18n/index.js +0 -73
- package/lib/index.js +0 -13
- package/lib/logger.js +0 -19
- package/lib/run/delete.js +0 -13
- package/lib/run/image/build.js +0 -28
- package/lib/run/image/delete.js +0 -13
- package/lib/run/image/index.js +0 -20
- package/lib/run/image/info.js +0 -20
- package/lib/run/image/list.js +0 -21
- package/lib/run/index.js +0 -23
- package/lib/run/list.js +0 -28
- package/lib/run/repo.js +0 -22
- package/lib/run/service/common.js +0 -258
- package/lib/run/service/config.js +0 -57
- package/lib/run/service/deployPackage.js +0 -72
- package/lib/run/service/index.js +0 -22
- package/lib/run/service/list.js +0 -25
- package/lib/run/service/showLogs.js +0 -96
- package/lib/run/service/update.js +0 -71
- package/lib/run/standalonegateway/create.js +0 -23
- package/lib/run/standalonegateway/destroy.js +0 -19
- package/lib/run/standalonegateway/index.js +0 -21
- package/lib/run/standalonegateway/list.js +0 -39
- package/lib/run/standalonegateway/package/index.js +0 -17
- package/lib/run/standalonegateway/package/list.js +0 -23
- package/lib/run/standalonegateway/turn/index.js +0 -18
- package/lib/run/standalonegateway/turn/off.js +0 -19
- package/lib/run/standalonegateway/turn/on.js +0 -19
- package/lib/run/version/create.js +0 -60
- package/lib/run/version/delete.js +0 -14
- package/lib/run/version/index.js +0 -22
- package/lib/run/version/list.js +0 -15
- package/lib/run/version/modify.js +0 -15
- package/lib/run/version/repo.js +0 -24
- package/lib/run/version/update.js +0 -50
- package/lib/storage.js +0 -94
- package/lib/third/index.js +0 -14
- package/lib/types.js +0 -12
- package/lib/utils/ai/banner.js +0 -91
- package/lib/utils/ai/claudeWindows.js +0 -64
- package/lib/utils/ai/config.js +0 -253
- package/lib/utils/ai/const.js +0 -178
- package/lib/utils/ai/ensureFiles.js +0 -16
- package/lib/utils/ai/env.js +0 -26
- package/lib/utils/ai/envLocalManager.js +0 -128
- package/lib/utils/ai/nodeVersion.js +0 -19
- package/lib/utils/ai/router.js +0 -1228
- package/lib/utils/ai/setup.js +0 -671
- package/lib/utils/auth.js +0 -17
- package/lib/utils/checkTcbrEnv.js +0 -65
- package/lib/utils/cli-table.js +0 -24
- package/lib/utils/commonParamsCheck.js +0 -49
- package/lib/utils/config.js +0 -50
- package/lib/utils/debug-logger.js +0 -31
- package/lib/utils/dts.js +0 -139
- package/lib/utils/env.js +0 -201
- package/lib/utils/fs/del.js +0 -11
- package/lib/utils/fs/index.js +0 -94
- package/lib/utils/function-packer.js +0 -74
- package/lib/utils/index.js +0 -38
- package/lib/utils/log.js +0 -74
- package/lib/utils/mcp-config-modifier.js +0 -220
- package/lib/utils/net/cloud-api-request.js +0 -56
- package/lib/utils/net/credential.js +0 -48
- package/lib/utils/net/http-request.js +0 -91
- package/lib/utils/net/index.js +0 -21
- package/lib/utils/net/manager-service.js +0 -38
- package/lib/utils/net/proxy.js +0 -9
- package/lib/utils/notice.js +0 -26
- package/lib/utils/output/highlight.js +0 -11
- package/lib/utils/output/index.js +0 -19
- package/lib/utils/output/link.js +0 -16
- package/lib/utils/output/loading.js +0 -59
- package/lib/utils/parallel.js +0 -54
- package/lib/utils/platform/index.js +0 -19
- package/lib/utils/platform/mac.js +0 -26
- package/lib/utils/platform/os.js +0 -59
- package/lib/utils/platform/port.js +0 -15
- package/lib/utils/progress-bar.js +0 -44
- package/lib/utils/prompt/index.js +0 -17
- package/lib/utils/prompt/select.js +0 -45
- package/lib/utils/report.js +0 -73
- package/lib/utils/reporter/agree.js +0 -20
- package/lib/utils/reporter/download.js +0 -26
- package/lib/utils/reporter/index.js +0 -19
- package/lib/utils/reporter/usage.js +0 -21
- package/lib/utils/store/auth.js +0 -46
- package/lib/utils/store/common.js +0 -8
- package/lib/utils/store/config.js +0 -35
- package/lib/utils/store/db.js +0 -65
- package/lib/utils/store/index.js +0 -21
- package/lib/utils/store/usage.js +0 -9
- package/lib/utils/tcbrApi/callTcbrApi.js +0 -30
- package/lib/utils/tcbrApi/index.js +0 -17
- package/lib/utils/template-manager.js +0 -431
- package/lib/utils/template.js +0 -116
- package/lib/utils/tools/common.js +0 -63
- package/lib/utils/tools/encoding.js +0 -13
- package/lib/utils/tools/index.js +0 -20
- package/lib/utils/tools/object.js +0 -28
- package/lib/utils/tools/time.js +0 -38
- package/lib/utils/tools/uid.js +0 -25
- package/lib/utils/url.js +0 -25
- package/lib/utils/validator.js +0 -72
- package/locales/README.md +0 -160
- package/locales/i18next-scanner.config.js +0 -206
- package/locales/index.js +0 -5
- package/locales/langs/en.json +0 -1235
- package/locales/langs/zh.json +0 -1235
- package/locales/mapping.json +0 -1235
- package/patches/@musistudio+claude-code-router+1.0.36.patch +0 -40
- package/post-install.js +0 -63
- package/rules/cloudbase-platform.mdc +0 -44
- package/rules/database.mdc +0 -25
- package/rules/miniprogram-development.mdc +0 -61
- package/rules/ui-design.mdc +0 -24
- package/rules/web-development.mdc +0 -44
- package/rules/workflows.mdc +0 -30
- package/runtime/nodejs/bootstrap.js +0 -255
- package/runtime/nodejs/runtime.js +0 -183
- package/specs/ag-command/design.md +0 -421
- package/specs/ag-command/doc.md +0 -204
- package/specs/ag-command/requirements.md +0 -173
- package/specs/ag-command/summary.md +0 -174
- package/specs/ag-command/tasks.md +0 -197
- package/specs/ag-command/usage-guide.md +0 -420
- package/specs/ai-cli-bootstrap/QWEN.md +0 -196
- package/specs/ai-cli-bootstrap/design.md +0 -185
- package/specs/ai-cli-bootstrap/requirements.md +0 -51
- package/specs/ai-cli-bootstrap/tasks.md +0 -70
- package/specs/ai-cli-bootstrap/technical-docs.md +0 -421
- package/specs/cli-install-upgrade/design.md +0 -207
- package/specs/cli-install-upgrade/requirements.md +0 -315
- package/specs/cli-install-upgrade/tasks.md +0 -120
- package/specs/codebuddy-integration/design.md +0 -152
- package/specs/codebuddy-integration/requirements.md +0 -85
- package/specs/codebuddy-integration/tasks.md +0 -159
- package/specs/mcp-global-bin/design.md +0 -57
- package/specs/mcp-global-bin/requirements.md +0 -43
- package/specs/mcp-global-bin/tasks.md +0 -54
- package/specs/ssl-fix/design.md +0 -93
- package/specs/ssl-fix/requirements.md +0 -47
- package/specs/ssl-fix/tasks.md +0 -65
- package/specs/tcb-pull-cnb-support/design.md +0 -137
- package/specs/tcb-pull-cnb-support/requirements.md +0 -56
- package/specs/tcb-pull-cnb-support/tasks.md +0 -101
- package/specs/tcb-pull-mcp-integration/design.md +0 -153
- package/specs/tcb-pull-mcp-integration/implementation-summary.md +0 -127
- package/specs/tcb-pull-mcp-integration/requirements.md +0 -68
- package/specs/tcb-pull-mcp-integration/tasks.md +0 -125
- package/specs/template-pull-command/design.md +0 -135
- package/specs/template-pull-command/implementation-summary.md +0 -160
- package/specs/template-pull-command/requirements.md +0 -73
- package/specs/template-pull-command/tasks.md +0 -101
- package/templates/html/loginFail.html +0 -90
- package/templates/html/loginSuccess.html +0 -86
- package/templates/server/node/_gitignore +0 -54
- package/templates/server/node/cloudbaserc.json +0 -10
- package/templates/server/node/index.js +0 -6
- package/templates/server/node/package.json +0 -9
- package/test-mcp-integration.js +0 -68
- package/tsconfig.json +0 -20
- package/tsconfig.test.json +0 -13
- package/types/auth/index.d.ts +0 -2
- package/types/auth/login.d.ts +0 -25
- package/types/auth/logout.d.ts +0 -1
- package/types/commands/account/index.d.ts +0 -2
- package/types/commands/account/login.d.ts +0 -15
- package/types/commands/account/logout.d.ts +0 -12
- package/types/commands/ag/base.d.ts +0 -44
- package/types/commands/ag/create.d.ts +0 -25
- package/types/commands/ag/delete.d.ts +0 -32
- package/types/commands/ag/deploy.d.ts +0 -31
- package/types/commands/ag/detail.d.ts +0 -28
- package/types/commands/ag/index.d.ts +0 -6
- package/types/commands/ag/list.d.ts +0 -35
- package/types/commands/ag/run.d.ts +0 -52
- package/types/commands/ai/index.d.ts +0 -23
- package/types/commands/cloudfunction/base.d.ts +0 -43
- package/types/commands/cloudfunction/index.d.ts +0 -1
- package/types/commands/cloudrun/base.d.ts +0 -170
- package/types/commands/cloudrun/index.d.ts +0 -1
- package/types/commands/common.d.ts +0 -38
- package/types/commands/config/delete.d.ts +0 -13
- package/types/commands/config/get.d.ts +0 -13
- package/types/commands/config/index.d.ts +0 -5
- package/types/commands/config/interface.d.ts +0 -17
- package/types/commands/config/list.d.ts +0 -13
- package/types/commands/config/set.d.ts +0 -13
- package/types/commands/constants.d.ts +0 -8
- package/types/commands/db/base.d.ts +0 -44
- package/types/commands/db/index.d.ts +0 -1
- package/types/commands/env/base.d.ts +0 -27
- package/types/commands/env/domain.d.ts +0 -53
- package/types/commands/env/index.d.ts +0 -3
- package/types/commands/env/login.d.ts +0 -47
- package/types/commands/framework/index.d.ts +0 -42
- package/types/commands/fun/base.d.ts +0 -43
- package/types/commands/fun/index.d.ts +0 -1
- package/types/commands/functions/alias/getRoute.d.ts +0 -13
- package/types/commands/functions/alias/index.d.ts +0 -2
- package/types/commands/functions/alias/setRoute.d.ts +0 -13
- package/types/commands/functions/code-download.d.ts +0 -18
- package/types/commands/functions/code-update.d.ts +0 -18
- package/types/commands/functions/concurrency/delete.d.ts +0 -13
- package/types/commands/functions/concurrency/index.d.ts +0 -3
- package/types/commands/functions/concurrency/list.d.ts +0 -13
- package/types/commands/functions/concurrency/set.d.ts +0 -13
- package/types/commands/functions/config-update.d.ts +0 -19
- package/types/commands/functions/copy.d.ts +0 -15
- package/types/commands/functions/delete.d.ts +0 -14
- package/types/commands/functions/deploy.d.ts +0 -22
- package/types/commands/functions/detail.d.ts +0 -16
- package/types/commands/functions/index.d.ts +0 -17
- package/types/commands/functions/invoke.d.ts +0 -15
- package/types/commands/functions/layer/bind.d.ts +0 -35
- package/types/commands/functions/layer/common.d.ts +0 -8
- package/types/commands/functions/layer/create.d.ts +0 -18
- package/types/commands/functions/layer/delete.d.ts +0 -18
- package/types/commands/functions/layer/download.d.ts +0 -18
- package/types/commands/functions/layer/index.d.ts +0 -7
- package/types/commands/functions/layer/list.d.ts +0 -19
- package/types/commands/functions/layer/sort.d.ts +0 -18
- package/types/commands/functions/list.d.ts +0 -14
- package/types/commands/functions/log.d.ts +0 -15
- package/types/commands/functions/run.d.ts +0 -17
- package/types/commands/functions/trigger-create.d.ts +0 -18
- package/types/commands/functions/trigger-delete.d.ts +0 -18
- package/types/commands/functions/version/index.d.ts +0 -2
- package/types/commands/functions/version/list.d.ts +0 -13
- package/types/commands/functions/version/publish.d.ts +0 -13
- package/types/commands/gateway/create.d.ts +0 -14
- package/types/commands/gateway/delete.d.ts +0 -14
- package/types/commands/gateway/domain.d.ts +0 -47
- package/types/commands/gateway/index.d.ts +0 -5
- package/types/commands/gateway/list.d.ts +0 -15
- package/types/commands/gateway/switch.d.ts +0 -31
- package/types/commands/helpers/index.d.ts +0 -3
- package/types/commands/helpers/init.d.ts +0 -22
- package/types/commands/helpers/new.d.ts +0 -17
- package/types/commands/helpers/open.d.ts +0 -11
- package/types/commands/hosting/hosting.d.ts +0 -66
- package/types/commands/hosting/index.d.ts +0 -1
- package/types/commands/index.d.ts +0 -23
- package/types/commands/lowcode/app.d.ts +0 -81
- package/types/commands/lowcode/comps.d.ts +0 -77
- package/types/commands/lowcode/index.d.ts +0 -2
- package/types/commands/lowcode/utils.d.ts +0 -9
- package/types/commands/pull/index.d.ts +0 -1
- package/types/commands/pull/pull.d.ts +0 -16
- package/types/commands/run/delete.d.ts +0 -13
- package/types/commands/run/image/common.d.ts +0 -8
- package/types/commands/run/image/delete.d.ts +0 -17
- package/types/commands/run/image/download.d.ts +0 -17
- package/types/commands/run/image/index.d.ts +0 -5
- package/types/commands/run/image/list.d.ts +0 -17
- package/types/commands/run/image/upload.d.ts +0 -17
- package/types/commands/run/index.d.ts +0 -5
- package/types/commands/run/list.d.ts +0 -13
- package/types/commands/run/service/config.d.ts +0 -14
- package/types/commands/run/service/deploy.d.ts +0 -13
- package/types/commands/run/service/index.d.ts +0 -4
- package/types/commands/run/service/list.d.ts +0 -13
- package/types/commands/run/service/update.d.ts +0 -13
- package/types/commands/run/standalonegateway/common.d.ts +0 -8
- package/types/commands/run/standalonegateway/create.d.ts +0 -17
- package/types/commands/run/standalonegateway/destroy.d.ts +0 -17
- package/types/commands/run/standalonegateway/index.d.ts +0 -5
- package/types/commands/run/standalonegateway/list.d.ts +0 -17
- package/types/commands/run/standalonegateway/package.d.ts +0 -17
- package/types/commands/run/standalonegateway/turn.d.ts +0 -17
- package/types/commands/run/version/common.d.ts +0 -8
- package/types/commands/run/version/create.d.ts +0 -17
- package/types/commands/run/version/delete.d.ts +0 -17
- package/types/commands/run/version/index.d.ts +0 -5
- package/types/commands/run/version/list.d.ts +0 -17
- package/types/commands/run/version/modify.d.ts +0 -17
- package/types/commands/run/version/update.d.ts +0 -17
- package/types/commands/runf/base.d.ts +0 -43
- package/types/commands/runf/index.d.ts +0 -1
- package/types/commands/self-update.d.ts +0 -24
- package/types/commands/smart.d.ts +0 -1
- package/types/commands/storage/index.d.ts +0 -1
- package/types/commands/storage/storage.d.ts +0 -106
- package/types/commands/third/index.d.ts +0 -1
- package/types/commands/third/thirdAttach.d.ts +0 -15
- package/types/commands/utils.d.ts +0 -28
- package/types/completion/index.d.ts +0 -4
- package/types/constant.d.ts +0 -71
- package/types/db/index.d.ts +0 -24
- package/types/decorators/captureError.d.ts +0 -1
- package/types/decorators/constants.d.ts +0 -11
- package/types/decorators/deprecate.d.ts +0 -4
- package/types/decorators/guard.d.ts +0 -5
- package/types/decorators/index.d.ts +0 -7
- package/types/decorators/injectParams.d.ts +0 -1
- package/types/decorators/params/common.d.ts +0 -4
- package/types/decorators/params/index.d.ts +0 -8
- package/types/env/domain.d.ts +0 -11
- package/types/env/index.d.ts +0 -12
- package/types/env/login.d.ts +0 -16
- package/types/error.d.ts +0 -20
- package/types/function/alias.d.ts +0 -3
- package/types/function/base.d.ts +0 -32
- package/types/function/code.d.ts +0 -8
- package/types/function/concurrency.d.ts +0 -4
- package/types/function/create.d.ts +0 -3
- package/types/function/delete.d.ts +0 -8
- package/types/function/index.d.ts +0 -11
- package/types/function/layer/attach.d.ts +0 -9
- package/types/function/layer/create.d.ts +0 -8
- package/types/function/layer/delete.d.ts +0 -5
- package/types/function/layer/download.d.ts +0 -7
- package/types/function/layer/index.d.ts +0 -7
- package/types/function/layer/list.d.ts +0 -10
- package/types/function/layer/sort.d.ts +0 -10
- package/types/function/trigger.d.ts +0 -5
- package/types/function/update.d.ts +0 -2
- package/types/function/version.d.ts +0 -3
- package/types/function/vpc.d.ts +0 -2
- package/types/gateway/index.d.ts +0 -18
- package/types/help.d.ts +0 -1
- package/types/hosting.d.ts +0 -35
- package/types/i18n/index.d.ts +0 -3
- package/types/index.d.ts +0 -4
- package/types/logger.d.ts +0 -3
- package/types/run/delete.d.ts +0 -2
- package/types/run/image/build.d.ts +0 -10
- package/types/run/image/delete.d.ts +0 -2
- package/types/run/image/index.d.ts +0 -4
- package/types/run/image/info.d.ts +0 -1
- package/types/run/image/list.d.ts +0 -3
- package/types/run/index.d.ts +0 -7
- package/types/run/list.d.ts +0 -2
- package/types/run/repo.d.ts +0 -5
- package/types/run/service/common.d.ts +0 -42
- package/types/run/service/config.d.ts +0 -23
- package/types/run/service/deployPackage.d.ts +0 -11
- package/types/run/service/index.d.ts +0 -6
- package/types/run/service/list.d.ts +0 -2
- package/types/run/service/showLogs.d.ts +0 -2
- package/types/run/service/update.d.ts +0 -3
- package/types/run/standalonegateway/create.d.ts +0 -2
- package/types/run/standalonegateway/destroy.d.ts +0 -2
- package/types/run/standalonegateway/index.d.ts +0 -5
- package/types/run/standalonegateway/list.d.ts +0 -2
- package/types/run/standalonegateway/package/index.d.ts +0 -1
- package/types/run/standalonegateway/package/list.d.ts +0 -2
- package/types/run/standalonegateway/turn/index.d.ts +0 -2
- package/types/run/standalonegateway/turn/off.d.ts +0 -2
- package/types/run/standalonegateway/turn/on.d.ts +0 -2
- package/types/run/version/create.d.ts +0 -10
- package/types/run/version/delete.d.ts +0 -2
- package/types/run/version/index.d.ts +0 -6
- package/types/run/version/list.d.ts +0 -2
- package/types/run/version/modify.d.ts +0 -2
- package/types/run/version/repo.d.ts +0 -10
- package/types/run/version/update.d.ts +0 -6
- package/types/storage.d.ts +0 -34
- package/types/third/index.d.ts +0 -1
- package/types/types.d.ts +0 -590
- package/types/utils/ai/banner.d.ts +0 -2
- package/types/utils/ai/claudeWindows.d.ts +0 -2
- package/types/utils/ai/config.d.ts +0 -89
- package/types/utils/ai/const.d.ts +0 -401
- package/types/utils/ai/ensureFiles.d.ts +0 -1
- package/types/utils/ai/env.d.ts +0 -2
- package/types/utils/ai/envLocalManager.d.ts +0 -23
- package/types/utils/ai/nodeVersion.d.ts +0 -2
- package/types/utils/ai/router.d.ts +0 -55
- package/types/utils/ai/setup.d.ts +0 -26
- package/types/utils/auth.d.ts +0 -3
- package/types/utils/checkTcbrEnv.d.ts +0 -3
- package/types/utils/cli-table.d.ts +0 -2
- package/types/utils/commonParamsCheck.d.ts +0 -3
- package/types/utils/config.d.ts +0 -27
- package/types/utils/debug-logger.d.ts +0 -1
- package/types/utils/dts.d.ts +0 -6
- package/types/utils/env.d.ts +0 -5
- package/types/utils/fs/del.d.ts +0 -1
- package/types/utils/fs/index.d.ts +0 -7
- package/types/utils/function-packer.d.ts +0 -18
- package/types/utils/index.d.ts +0 -22
- package/types/utils/log.d.ts +0 -22
- package/types/utils/mcp-config-modifier.d.ts +0 -7
- package/types/utils/net/cloud-api-request.d.ts +0 -9
- package/types/utils/net/credential.d.ts +0 -5
- package/types/utils/net/http-request.d.ts +0 -8
- package/types/utils/net/index.d.ts +0 -5
- package/types/utils/net/manager-service.d.ts +0 -4
- package/types/utils/net/proxy.d.ts +0 -1
- package/types/utils/notice.d.ts +0 -1
- package/types/utils/output/highlight.d.ts +0 -1
- package/types/utils/output/index.d.ts +0 -3
- package/types/utils/output/link.d.ts +0 -1
- package/types/utils/output/loading.d.ts +0 -18
- package/types/utils/parallel.d.ts +0 -11
- package/types/utils/platform/index.d.ts +0 -3
- package/types/utils/platform/mac.d.ts +0 -2
- package/types/utils/platform/os.d.ts +0 -2
- package/types/utils/platform/port.d.ts +0 -1
- package/types/utils/progress-bar.d.ts +0 -1
- package/types/utils/prompt/index.d.ts +0 -1
- package/types/utils/prompt/select.d.ts +0 -4
- package/types/utils/report.d.ts +0 -16
- package/types/utils/reporter/agree.d.ts +0 -1
- package/types/utils/reporter/download.d.ts +0 -1
- package/types/utils/reporter/index.d.ts +0 -3
- package/types/utils/reporter/usage.d.ts +0 -1
- package/types/utils/store/auth.d.ts +0 -8
- package/types/utils/store/common.d.ts +0 -2
- package/types/utils/store/config.d.ts +0 -8
- package/types/utils/store/db.d.ts +0 -17
- package/types/utils/store/index.d.ts +0 -5
- package/types/utils/store/usage.d.ts +0 -2
- package/types/utils/tcbrApi/callTcbrApi.d.ts +0 -1
- package/types/utils/tcbrApi/index.d.ts +0 -1
- package/types/utils/template-manager.d.ts +0 -27
- package/types/utils/template.d.ts +0 -8
- package/types/utils/tools/common.d.ts +0 -1
- package/types/utils/tools/encoding.d.ts +0 -1
- package/types/utils/tools/index.d.ts +0 -4
- package/types/utils/tools/object.d.ts +0 -1
- package/types/utils/tools/time.d.ts +0 -2
- package/types/utils/tools/uid.d.ts +0 -2
- package/types/utils/url.d.ts +0 -18
- package/types/utils/validator.d.ts +0 -9
package/lib/commands/ag/run.js
DELETED
|
@@ -1,644 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
22
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
-
};
|
|
24
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
|
-
if (mod && mod.__esModule) return mod;
|
|
26
|
-
var result = {};
|
|
27
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
28
|
-
__setModuleDefault(result, mod);
|
|
29
|
-
return result;
|
|
30
|
-
};
|
|
31
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
32
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
33
|
-
};
|
|
34
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
35
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
36
|
-
};
|
|
37
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
38
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
39
|
-
};
|
|
40
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
-
exports.AgentRunCommand = void 0;
|
|
42
|
-
const path_1 = __importDefault(require("path"));
|
|
43
|
-
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
44
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
45
|
-
const open_1 = __importDefault(require("open"));
|
|
46
|
-
const execa_1 = __importDefault(require("execa"));
|
|
47
|
-
const dotenv = __importStar(require("dotenv"));
|
|
48
|
-
const express_1 = __importDefault(require("express"));
|
|
49
|
-
const http_1 = require("http");
|
|
50
|
-
const common_1 = require("../common");
|
|
51
|
-
const decorators_1 = require("../../decorators");
|
|
52
|
-
const base_1 = require("./base");
|
|
53
|
-
const utils_1 = require("../utils");
|
|
54
|
-
const constants_1 = require("../constants");
|
|
55
|
-
const i18n_1 = require("../../i18n");
|
|
56
|
-
let AgentRunCommand = class AgentRunCommand extends common_1.Command {
|
|
57
|
-
get options() {
|
|
58
|
-
return {
|
|
59
|
-
cmd: 'ag',
|
|
60
|
-
childCmd: 'run <agentName>',
|
|
61
|
-
allowUnknownOption: true,
|
|
62
|
-
options: [
|
|
63
|
-
{
|
|
64
|
-
flags: '-e, --envId <envId>',
|
|
65
|
-
desc: (0, i18n_1.t)('环境 ID')
|
|
66
|
-
},
|
|
67
|
-
{
|
|
68
|
-
flags: '--extendedContext <extendedContext>',
|
|
69
|
-
desc: (0, i18n_1.t)('扩展上下文,示例:--extendedContext \'{"a":1,"b":2}\'')
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
flags: '--port <port>',
|
|
73
|
-
desc: (0, i18n_1.t)('监听的端口,默认为 3000'),
|
|
74
|
-
defaultValue: 3000
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
flags: '--dry-run',
|
|
78
|
-
desc: (0, i18n_1.t)('是否不启动服务,只验证代码可以正常加载,默认为 false')
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
flags: '--open-debug-panel',
|
|
82
|
-
desc: (0, i18n_1.t)('是否打开调试面板,默认为 true'),
|
|
83
|
-
defaultValue: 'false'
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
flags: '--entryPath <entryPath>',
|
|
87
|
-
desc: (0, i18n_1.t)('指定 Agent 服务启动的入口文件路径')
|
|
88
|
-
},
|
|
89
|
-
{
|
|
90
|
-
flags: '--web',
|
|
91
|
-
desc: (0, i18n_1.t)('同时启动前端项目(如果存在 client 目录)')
|
|
92
|
-
}
|
|
93
|
-
],
|
|
94
|
-
requiredEnvId: false,
|
|
95
|
-
autoRunLogin: true,
|
|
96
|
-
desc: (0, i18n_1.t)('本地运行 Agent 进行调试')
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
async execute(ctx, envId, log, params, options) {
|
|
100
|
-
const agentName = params[0];
|
|
101
|
-
const { extendedContext, port = 9000, dryRun, openDebugPanel = 'false', entryPath, web: enableWeb = 'false' } = options;
|
|
102
|
-
const workDir = process.cwd();
|
|
103
|
-
const cloudbaseConfig = await (0, base_1.getCloudbaseConfig)(workDir);
|
|
104
|
-
if (!envId) {
|
|
105
|
-
if (cloudbaseConfig.envId) {
|
|
106
|
-
envId = cloudbaseConfig.envId;
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
109
|
-
envId = await this.selectEnv();
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
log.info((0, i18n_1.t)(`当前环境:${envId}`));
|
|
113
|
-
let agentConfig;
|
|
114
|
-
try {
|
|
115
|
-
agentConfig = await (0, base_1.getAgentConfig)(agentName, workDir);
|
|
116
|
-
}
|
|
117
|
-
catch (error) {
|
|
118
|
-
throw new base_1.AgentError((0, i18n_1.t)(`未找到 Agent 配置,请先运行 tcb ag create ${agentName}`));
|
|
119
|
-
}
|
|
120
|
-
log.info((0, i18n_1.t)(`当前 Agent:${agentConfig.name}`));
|
|
121
|
-
const agentRoot = path_1.default.join(workDir, cloudbaseConfig.agentRoot);
|
|
122
|
-
const agentDir = path_1.default.join(agentRoot, agentName);
|
|
123
|
-
await this.setupEnvironment(envId, agentConfig, extendedContext, ctx, options);
|
|
124
|
-
console.log(chalk_1.default.green((0, i18n_1.t)('正在启动 Agent 本地调试服务...')));
|
|
125
|
-
await this.startNormal({
|
|
126
|
-
workDir: agentDir,
|
|
127
|
-
agentName,
|
|
128
|
-
port,
|
|
129
|
-
openDebugPanel: openDebugPanel !== 'false',
|
|
130
|
-
dryRun,
|
|
131
|
-
log,
|
|
132
|
-
entryPath,
|
|
133
|
-
enableWeb: enableWeb !== 'false'
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
async selectEnv() {
|
|
137
|
-
return (0, utils_1.selectEnv)({ source: [constants_1.EnvSource.MINIAPP, constants_1.EnvSource.QCLOUD] });
|
|
138
|
-
}
|
|
139
|
-
async setupEnvironment(envId, agentConfig, extendedContext, ctx, options) {
|
|
140
|
-
const credential = await (0, utils_1.getCredential)(ctx, options);
|
|
141
|
-
process.env.CLOUDBASE_ENV_ID = envId;
|
|
142
|
-
process.env.AGENT_NAME = agentConfig.name;
|
|
143
|
-
if (agentConfig.environment) {
|
|
144
|
-
Object.entries(agentConfig.environment).forEach(([key, value]) => {
|
|
145
|
-
process.env[key] = String(value);
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
const extendedContextObj = {
|
|
149
|
-
tmpSecret: {
|
|
150
|
-
secretId: credential.secretId,
|
|
151
|
-
secretKey: credential.secretKey,
|
|
152
|
-
token: credential.token
|
|
153
|
-
},
|
|
154
|
-
source: 'local_dev',
|
|
155
|
-
envId,
|
|
156
|
-
agentName: agentConfig.name,
|
|
157
|
-
accessToken: `Bearer ${await (0, utils_1.fetchAccessToken)({
|
|
158
|
-
envId,
|
|
159
|
-
secretId: credential.secretId,
|
|
160
|
-
secretKey: credential.secretKey,
|
|
161
|
-
token: credential.token
|
|
162
|
-
})}`
|
|
163
|
-
};
|
|
164
|
-
if (extendedContext) {
|
|
165
|
-
try {
|
|
166
|
-
const userContext = JSON.parse(extendedContext);
|
|
167
|
-
Object.assign(extendedContextObj, userContext);
|
|
168
|
-
}
|
|
169
|
-
catch (error) {
|
|
170
|
-
throw new base_1.AgentError((0, i18n_1.t)('扩展上下文格式错误,请提供有效的 JSON 字符串'));
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
process.env.EXTENDED_CONTEXT = JSON.stringify(extendedContextObj);
|
|
174
|
-
process.env.STATIC_SERVE_ROOT = __dirname;
|
|
175
|
-
process.env.ENABLE_CORS = 'true';
|
|
176
|
-
process.env.ALLOWED_ORIGINS = '*';
|
|
177
|
-
process.env.CLOUDBASE_RUNTIME = 'agent';
|
|
178
|
-
}
|
|
179
|
-
async startNormal(options) {
|
|
180
|
-
const { workDir, agentName, port, openDebugPanel, dryRun, log, entryPath, enableWeb } = options;
|
|
181
|
-
if (dryRun) {
|
|
182
|
-
log.info((0, i18n_1.t)('代码验证模式,不启动服务'));
|
|
183
|
-
return;
|
|
184
|
-
}
|
|
185
|
-
const agentServicePromise = this.startAgentService(workDir, agentName, port, log, entryPath);
|
|
186
|
-
if (openDebugPanel) {
|
|
187
|
-
this.startDebugPanelAfterAgentReady(agentName, port, log);
|
|
188
|
-
}
|
|
189
|
-
if (enableWeb) {
|
|
190
|
-
this.startWebProjectAfterAgentReady(workDir, port, log);
|
|
191
|
-
}
|
|
192
|
-
await agentServicePromise;
|
|
193
|
-
}
|
|
194
|
-
async startDebugPanelAfterAgentReady(agentName, agentPort, log) {
|
|
195
|
-
setTimeout(async () => {
|
|
196
|
-
try {
|
|
197
|
-
const agentUrl = `http://127.0.0.1:${agentPort}`;
|
|
198
|
-
await this.waitForService(agentUrl, 30000);
|
|
199
|
-
log.info((0, i18n_1.t)('Agent 服务已就绪,正在启动调试面板...'));
|
|
200
|
-
const debugPort = await this.startDebugPanelServer(agentName, agentPort, log);
|
|
201
|
-
await this.openDebugPanel(agentName, agentPort, debugPort, log);
|
|
202
|
-
}
|
|
203
|
-
catch (error) {
|
|
204
|
-
log.warn((0, i18n_1.t)('启动调试面板失败:{{error}}', { error: error.message }));
|
|
205
|
-
log.info((0, i18n_1.t)('Agent 服务仍在正常运行,可以手动访问:http://127.0.0.1:{{port}}', { port: agentPort }));
|
|
206
|
-
}
|
|
207
|
-
}, 1000);
|
|
208
|
-
}
|
|
209
|
-
async startWebProjectAfterAgentReady(workDir, agentPort, log) {
|
|
210
|
-
setTimeout(async () => {
|
|
211
|
-
try {
|
|
212
|
-
const clientDir = path_1.default.join(workDir, 'client');
|
|
213
|
-
if (!await fs_extra_1.default.pathExists(clientDir)) {
|
|
214
|
-
log.warn((0, i18n_1.t)('未找到前端项目目录 (client),跳过前端启动'));
|
|
215
|
-
return;
|
|
216
|
-
}
|
|
217
|
-
const agentUrl = `http://127.0.0.1:${agentPort}`;
|
|
218
|
-
await this.waitForService(agentUrl, 30000);
|
|
219
|
-
log.info((0, i18n_1.t)('Agent 服务已就绪,正在启动前端项目...'));
|
|
220
|
-
await this.startWebProject(clientDir, agentPort, log);
|
|
221
|
-
}
|
|
222
|
-
catch (error) {
|
|
223
|
-
log.warn((0, i18n_1.t)(`启动前端项目失败:${error.message}`));
|
|
224
|
-
log.info((0, i18n_1.t)(`Agent 服务仍在正常运行,可以手动访问:http://127.0.0.1:${agentPort}`));
|
|
225
|
-
}
|
|
226
|
-
}, 1000);
|
|
227
|
-
}
|
|
228
|
-
async startWebProject(clientDir, agentPort, log) {
|
|
229
|
-
const packageJsonPath = path_1.default.join(clientDir, 'package.json');
|
|
230
|
-
if (!await fs_extra_1.default.pathExists(packageJsonPath)) {
|
|
231
|
-
throw new Error((0, i18n_1.t)('前端项目缺少 package.json 文件'));
|
|
232
|
-
}
|
|
233
|
-
let packageJson;
|
|
234
|
-
try {
|
|
235
|
-
packageJson = await fs_extra_1.default.readJson(packageJsonPath);
|
|
236
|
-
}
|
|
237
|
-
catch (error) {
|
|
238
|
-
throw new Error((0, i18n_1.t)(`读取前端项目 package.json 失败:${error.message}`));
|
|
239
|
-
}
|
|
240
|
-
const scripts = packageJson.scripts || {};
|
|
241
|
-
let startScript = 'dev';
|
|
242
|
-
if (!scripts.dev && scripts.start) {
|
|
243
|
-
startScript = 'start';
|
|
244
|
-
}
|
|
245
|
-
else if (!scripts.dev && !scripts.start) {
|
|
246
|
-
throw new Error((0, i18n_1.t)('前端项目缺少 dev 或 start 脚本'));
|
|
247
|
-
}
|
|
248
|
-
log.info((0, i18n_1.t)('正在安装前端项目依赖...'));
|
|
249
|
-
const nodeModulesPath = path_1.default.join(clientDir, 'node_modules');
|
|
250
|
-
if (!await fs_extra_1.default.pathExists(nodeModulesPath)) {
|
|
251
|
-
try {
|
|
252
|
-
await (0, execa_1.default)('npm', ['install'], {
|
|
253
|
-
cwd: clientDir,
|
|
254
|
-
stdio: 'inherit'
|
|
255
|
-
});
|
|
256
|
-
log.info((0, i18n_1.t)('前端项目依赖安装完成'));
|
|
257
|
-
}
|
|
258
|
-
catch (error) {
|
|
259
|
-
throw new Error((0, i18n_1.t)(`安装前端项目依赖失败:${error.message}`));
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
log.info((0, i18n_1.t)('正在启动前端项目...'));
|
|
263
|
-
const env = {
|
|
264
|
-
...process.env,
|
|
265
|
-
VITE_TS_AGENT_SERVER_URL: `http://127.0.0.1:${agentPort}`,
|
|
266
|
-
VITE_PYTHON_AGENT_SERVER_URL: `http://127.0.0.1:${agentPort}`,
|
|
267
|
-
};
|
|
268
|
-
const child = (0, execa_1.default)('npm', ['run', startScript], {
|
|
269
|
-
cwd: clientDir,
|
|
270
|
-
stdio: 'inherit',
|
|
271
|
-
env
|
|
272
|
-
});
|
|
273
|
-
child.on('exit', (code, signal) => {
|
|
274
|
-
if (code !== null) {
|
|
275
|
-
log.info((0, i18n_1.t)(`前端项目已退出,退出码:${code}`));
|
|
276
|
-
}
|
|
277
|
-
else if (signal) {
|
|
278
|
-
log.info((0, i18n_1.t)(`前端项目被信号终止:${signal}`));
|
|
279
|
-
}
|
|
280
|
-
});
|
|
281
|
-
child.on('error', (error) => {
|
|
282
|
-
log.error((0, i18n_1.t)(`前端项目启动失败:${error.message}`));
|
|
283
|
-
});
|
|
284
|
-
log.info((0, i18n_1.t)('前端项目已启动'));
|
|
285
|
-
log.info((0, i18n_1.t)('前端访问地址通常为:http://localhost:3000 或 http://localhost:5173'));
|
|
286
|
-
log.info((0, i18n_1.t)(`Agent API 地址:http://127.0.0.1:${agentPort}`));
|
|
287
|
-
}
|
|
288
|
-
async startDebugPanelServer(agentName, agentPort, log) {
|
|
289
|
-
const debugApp = (0, express_1.default)();
|
|
290
|
-
const debugPort = await this.findAvailablePort(agentPort + 1000);
|
|
291
|
-
debugApp.use((req, res, next) => {
|
|
292
|
-
res.header('Access-Control-Allow-Origin', '*');
|
|
293
|
-
res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
|
|
294
|
-
res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, Authorization');
|
|
295
|
-
if (req.method === 'OPTIONS') {
|
|
296
|
-
res.sendStatus(200);
|
|
297
|
-
}
|
|
298
|
-
else {
|
|
299
|
-
next();
|
|
300
|
-
}
|
|
301
|
-
});
|
|
302
|
-
const staticPath = path_1.default.join(__dirname, './debug');
|
|
303
|
-
debugApp.use(express_1.default.static(staticPath));
|
|
304
|
-
const server = (0, http_1.createServer)(debugApp);
|
|
305
|
-
return new Promise((resolve, reject) => {
|
|
306
|
-
server.listen(debugPort, '127.0.0.1', () => {
|
|
307
|
-
log.info((0, i18n_1.t)(`调试面板服务器已启动,端口:${debugPort}`));
|
|
308
|
-
resolve(debugPort);
|
|
309
|
-
});
|
|
310
|
-
server.on('error', (error) => {
|
|
311
|
-
reject(new base_1.AgentError((0, i18n_1.t)(`启动调试面板服务器失败:${error.message}`)));
|
|
312
|
-
});
|
|
313
|
-
});
|
|
314
|
-
}
|
|
315
|
-
async findAvailablePort(startPort) {
|
|
316
|
-
const net = await Promise.resolve().then(() => __importStar(require('net')));
|
|
317
|
-
return new Promise((resolve, reject) => {
|
|
318
|
-
const server = net.createServer();
|
|
319
|
-
server.listen(startPort, '127.0.0.1', () => {
|
|
320
|
-
var _a;
|
|
321
|
-
const port = (_a = server.address()) === null || _a === void 0 ? void 0 : _a.port;
|
|
322
|
-
server.close(() => resolve(port));
|
|
323
|
-
});
|
|
324
|
-
server.on('error', () => {
|
|
325
|
-
this.findAvailablePort(startPort + 1).then(resolve).catch(reject);
|
|
326
|
-
});
|
|
327
|
-
});
|
|
328
|
-
}
|
|
329
|
-
async openDebugPanel(agentName, agentPort, debugPort, log) {
|
|
330
|
-
const debugUrl = `http://127.0.0.1:${debugPort}/?agentName=${agentName}&agentPort=${agentPort}`;
|
|
331
|
-
log.info((0, i18n_1.t)(`调试面板地址:${debugUrl}`));
|
|
332
|
-
console.log(chalk_1.default.green((0, i18n_1.t)(`🚀 Agent 调试面板:${debugUrl}`)));
|
|
333
|
-
console.log(chalk_1.default.gray((0, i18n_1.t)(`Agent 服务地址:http://127.0.0.1:${agentPort}`)));
|
|
334
|
-
try {
|
|
335
|
-
await this.waitForService(debugUrl);
|
|
336
|
-
await (0, open_1.default)(debugUrl, { wait: false });
|
|
337
|
-
console.log(chalk_1.default.green((0, i18n_1.t)('已自动打开 Agent 调试面板')));
|
|
338
|
-
}
|
|
339
|
-
catch (error) {
|
|
340
|
-
log.warn((0, i18n_1.t)(`无法自动打开调试面板,请手动访问:${debugUrl}`));
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
async waitForService(url, timeout = 10000) {
|
|
344
|
-
const startTime = Date.now();
|
|
345
|
-
const { default: fetch } = await Promise.resolve().then(() => __importStar(require('node-fetch')));
|
|
346
|
-
while (Date.now() - startTime < timeout) {
|
|
347
|
-
try {
|
|
348
|
-
const response = await fetch(url, {
|
|
349
|
-
timeout: 2000,
|
|
350
|
-
method: 'GET'
|
|
351
|
-
});
|
|
352
|
-
if (response.status < 500) {
|
|
353
|
-
return;
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
catch (error) {
|
|
357
|
-
}
|
|
358
|
-
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
359
|
-
}
|
|
360
|
-
throw new Error((0, i18n_1.t)('等待服务就绪超时'));
|
|
361
|
-
}
|
|
362
|
-
async startAgentService(workDir, agentName, port, log, customEntryPath) {
|
|
363
|
-
let entryPath;
|
|
364
|
-
if (customEntryPath) {
|
|
365
|
-
await this.validateCustomEntryPath(customEntryPath, workDir);
|
|
366
|
-
entryPath = customEntryPath;
|
|
367
|
-
log.info((0, i18n_1.t)(`使用自定义入口文件:${entryPath}`));
|
|
368
|
-
}
|
|
369
|
-
else {
|
|
370
|
-
entryPath = await this.getEntryPath(workDir);
|
|
371
|
-
log.info((0, i18n_1.t)(`使用默认入口文件:${entryPath}`));
|
|
372
|
-
}
|
|
373
|
-
process.env.PORT = String(port);
|
|
374
|
-
try {
|
|
375
|
-
const language = await this.detectLanguage(entryPath, workDir);
|
|
376
|
-
log.info((0, i18n_1.t)(`检测到项目语言:${language}`));
|
|
377
|
-
if (language === 'python') {
|
|
378
|
-
await this.startWithPython(entryPath, port, log, workDir);
|
|
379
|
-
}
|
|
380
|
-
else {
|
|
381
|
-
await this.startWithNode(entryPath, port, log, workDir);
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
catch (error) {
|
|
385
|
-
throw new base_1.AgentError((0, i18n_1.t)('启动 Agent 服务失败:{{error}}', { error: error.message }));
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
async detectLanguage(entryPath, workDir) {
|
|
389
|
-
const ext = path_1.default.extname(entryPath).toLowerCase();
|
|
390
|
-
if (['.py'].includes(ext)) {
|
|
391
|
-
return 'python';
|
|
392
|
-
}
|
|
393
|
-
if (['.js', '.ts', '.mjs', '.cjs'].includes(ext)) {
|
|
394
|
-
return 'node';
|
|
395
|
-
}
|
|
396
|
-
const packageJsonPath = path_1.default.join(workDir, 'package.json');
|
|
397
|
-
const requirementsPath = path_1.default.join(workDir, 'requirements.txt');
|
|
398
|
-
const setupPyPath = path_1.default.join(workDir, 'setup.py');
|
|
399
|
-
const pyprojectPath = path_1.default.join(workDir, 'pyproject.toml');
|
|
400
|
-
const hasPythonConfig = await Promise.all([
|
|
401
|
-
fs_extra_1.default.pathExists(requirementsPath),
|
|
402
|
-
fs_extra_1.default.pathExists(setupPyPath),
|
|
403
|
-
fs_extra_1.default.pathExists(pyprojectPath)
|
|
404
|
-
]);
|
|
405
|
-
const hasNodeConfig = await fs_extra_1.default.pathExists(packageJsonPath);
|
|
406
|
-
if (hasPythonConfig.some(exists => exists)) {
|
|
407
|
-
return 'python';
|
|
408
|
-
}
|
|
409
|
-
if (hasNodeConfig) {
|
|
410
|
-
return 'node';
|
|
411
|
-
}
|
|
412
|
-
return 'node';
|
|
413
|
-
}
|
|
414
|
-
async validateCustomEntryPath(entryPath, workDir) {
|
|
415
|
-
try {
|
|
416
|
-
const fullPath = path_1.default.isAbsolute(entryPath) ? entryPath : path_1.default.resolve(workDir, entryPath);
|
|
417
|
-
if (!(await fs_extra_1.default.pathExists(fullPath))) {
|
|
418
|
-
throw new base_1.AgentError((0, i18n_1.t)(`指定的入口文件不存在:${entryPath}`));
|
|
419
|
-
}
|
|
420
|
-
const ext = path_1.default.extname(fullPath).toLowerCase();
|
|
421
|
-
if (!['.js', '.ts', '.mjs', '.cjs', '.py'].includes(ext)) {
|
|
422
|
-
throw new base_1.AgentError((0, i18n_1.t)(`入口文件必须是 JavaScript、TypeScript 或 Python 文件:${entryPath}`));
|
|
423
|
-
}
|
|
424
|
-
}
|
|
425
|
-
catch (error) {
|
|
426
|
-
if (error instanceof base_1.AgentError) {
|
|
427
|
-
throw error;
|
|
428
|
-
}
|
|
429
|
-
throw new base_1.AgentError((0, i18n_1.t)(`验证入口文件失败:${error.message}`));
|
|
430
|
-
}
|
|
431
|
-
}
|
|
432
|
-
async getPythonEntryPath(workDir) {
|
|
433
|
-
const commonEntryFiles = [
|
|
434
|
-
'main.py',
|
|
435
|
-
'app.py',
|
|
436
|
-
'server.py',
|
|
437
|
-
'run.py',
|
|
438
|
-
'index.py',
|
|
439
|
-
'src/main.py',
|
|
440
|
-
'src/app.py'
|
|
441
|
-
];
|
|
442
|
-
for (const entryFile of commonEntryFiles) {
|
|
443
|
-
const fullPath = path_1.default.join(workDir, entryFile);
|
|
444
|
-
if (await fs_extra_1.default.pathExists(fullPath)) {
|
|
445
|
-
return entryFile;
|
|
446
|
-
}
|
|
447
|
-
}
|
|
448
|
-
throw new base_1.AgentError((0, i18n_1.t)(`未找到 Python 入口文件,请确保存在以下文件之一:${commonEntryFiles.join(', ')}`));
|
|
449
|
-
}
|
|
450
|
-
async getEntryPath(workDir) {
|
|
451
|
-
const language = await this.detectLanguage('', workDir);
|
|
452
|
-
if (language === 'python') {
|
|
453
|
-
return await this.getPythonEntryPath(workDir);
|
|
454
|
-
}
|
|
455
|
-
try {
|
|
456
|
-
const packageJsonPath = path_1.default.join(workDir, 'package.json');
|
|
457
|
-
if (!(await fs_extra_1.default.pathExists(packageJsonPath))) {
|
|
458
|
-
throw new base_1.AgentError((0, i18n_1.t)('未找到 package.json 文件'));
|
|
459
|
-
}
|
|
460
|
-
const packageJson = await fs_extra_1.default.readJSON(packageJsonPath);
|
|
461
|
-
if (!packageJson.main) {
|
|
462
|
-
throw new base_1.AgentError((0, i18n_1.t)('package.json 中未配置 main 字段'));
|
|
463
|
-
}
|
|
464
|
-
const mainFile = path_1.default.resolve(workDir, packageJson.main);
|
|
465
|
-
if (!(await fs_extra_1.default.pathExists(mainFile))) {
|
|
466
|
-
throw new base_1.AgentError((0, i18n_1.t)(`main 字段指向的文件不存在:${packageJson.main}`));
|
|
467
|
-
}
|
|
468
|
-
return packageJson.main;
|
|
469
|
-
}
|
|
470
|
-
catch (error) {
|
|
471
|
-
if (error instanceof base_1.AgentError) {
|
|
472
|
-
throw error;
|
|
473
|
-
}
|
|
474
|
-
throw new base_1.AgentError((0, i18n_1.t)(`读取 package.json 失败:${error.message}`));
|
|
475
|
-
}
|
|
476
|
-
}
|
|
477
|
-
async startWithPython(entryPath, port, log, agentDir) {
|
|
478
|
-
log.info((0, i18n_1.t)('使用 Python 启动服务...'));
|
|
479
|
-
console.log('entryPath', entryPath);
|
|
480
|
-
console.log('agentDir', agentDir);
|
|
481
|
-
await this.checkPythonAvailable();
|
|
482
|
-
const envVars = await this.loadEnvFile(agentDir, log);
|
|
483
|
-
console.log('process.env', envVars);
|
|
484
|
-
log.info((0, i18n_1.t)('Agent 服务启动中...'));
|
|
485
|
-
let pythonCommand = 'python3';
|
|
486
|
-
try {
|
|
487
|
-
await (0, execa_1.default)('which', ['python3'], { stdio: 'pipe' });
|
|
488
|
-
}
|
|
489
|
-
catch {
|
|
490
|
-
try {
|
|
491
|
-
await (0, execa_1.default)('which', ['python'], { stdio: 'pipe' });
|
|
492
|
-
pythonCommand = 'python';
|
|
493
|
-
}
|
|
494
|
-
catch {
|
|
495
|
-
throw new base_1.AgentError((0, i18n_1.t)('未找到 Python 解释器,请确保已安装 Python'));
|
|
496
|
-
}
|
|
497
|
-
}
|
|
498
|
-
const child = (0, execa_1.default)(pythonCommand, [entryPath], {
|
|
499
|
-
cwd: agentDir,
|
|
500
|
-
stdio: 'inherit',
|
|
501
|
-
env: {
|
|
502
|
-
...process.env,
|
|
503
|
-
...envVars,
|
|
504
|
-
PORT: String(port),
|
|
505
|
-
PYTHONPATH: agentDir,
|
|
506
|
-
PYTHONUNBUFFERED: '1'
|
|
507
|
-
}
|
|
508
|
-
});
|
|
509
|
-
let isExiting = false;
|
|
510
|
-
const handleExit = () => {
|
|
511
|
-
if (isExiting)
|
|
512
|
-
return;
|
|
513
|
-
isExiting = true;
|
|
514
|
-
log.info((0, i18n_1.t)('正在关闭 Agent 服务...'));
|
|
515
|
-
child.kill('SIGTERM');
|
|
516
|
-
};
|
|
517
|
-
process.on('SIGINT', handleExit);
|
|
518
|
-
process.on('SIGTERM', handleExit);
|
|
519
|
-
child.on('exit', (code, signal) => {
|
|
520
|
-
if (code !== null) {
|
|
521
|
-
log.info((0, i18n_1.t)(`Agent 服务已退出,退出码:${code}`));
|
|
522
|
-
}
|
|
523
|
-
else if (signal) {
|
|
524
|
-
log.info((0, i18n_1.t)(`Agent 服务被信号终止:${signal}`));
|
|
525
|
-
}
|
|
526
|
-
process.removeListener('SIGINT', handleExit);
|
|
527
|
-
process.removeListener('SIGTERM', handleExit);
|
|
528
|
-
if (isExiting) {
|
|
529
|
-
process.exit(0);
|
|
530
|
-
}
|
|
531
|
-
});
|
|
532
|
-
try {
|
|
533
|
-
await child;
|
|
534
|
-
}
|
|
535
|
-
catch (error) {
|
|
536
|
-
log.error((0, i18n_1.t)(`Agent 服务启动失败:${error.message}`));
|
|
537
|
-
process.exit(1);
|
|
538
|
-
}
|
|
539
|
-
}
|
|
540
|
-
async checkPythonAvailable() {
|
|
541
|
-
try {
|
|
542
|
-
const result = await (0, execa_1.default)('python3', ['--version'], { stdio: 'pipe' });
|
|
543
|
-
console.log(`Python version: ${result.stdout}`);
|
|
544
|
-
return;
|
|
545
|
-
}
|
|
546
|
-
catch {
|
|
547
|
-
try {
|
|
548
|
-
const result = await (0, execa_1.default)('python', ['--version'], { stdio: 'pipe' });
|
|
549
|
-
console.log(`Python version: ${result.stdout}`);
|
|
550
|
-
return;
|
|
551
|
-
}
|
|
552
|
-
catch {
|
|
553
|
-
throw new base_1.AgentError((0, i18n_1.t)('未找到 Python 解释器,请确保已安装 Python 3.7+'));
|
|
554
|
-
}
|
|
555
|
-
}
|
|
556
|
-
}
|
|
557
|
-
async startWithNode(entryPath, port, log, agentDir) {
|
|
558
|
-
log.info((0, i18n_1.t)('使用 Node.js 启动服务...'));
|
|
559
|
-
console.log('entryPath', entryPath);
|
|
560
|
-
console.log('agentDir', agentDir);
|
|
561
|
-
const envVars = await this.loadEnvFile(agentDir, log);
|
|
562
|
-
console.log('process.env', envVars);
|
|
563
|
-
log.info((0, i18n_1.t)('Agent 服务启动中...'));
|
|
564
|
-
const child = (0, execa_1.default)('node', [entryPath], {
|
|
565
|
-
cwd: agentDir,
|
|
566
|
-
stdio: 'inherit',
|
|
567
|
-
env: {
|
|
568
|
-
...process.env,
|
|
569
|
-
...envVars,
|
|
570
|
-
PORT: String(port)
|
|
571
|
-
}
|
|
572
|
-
});
|
|
573
|
-
let isExiting = false;
|
|
574
|
-
const handleExit = () => {
|
|
575
|
-
if (isExiting)
|
|
576
|
-
return;
|
|
577
|
-
isExiting = true;
|
|
578
|
-
log.info((0, i18n_1.t)('正在关闭 Agent 服务...'));
|
|
579
|
-
child.kill('SIGTERM');
|
|
580
|
-
};
|
|
581
|
-
process.on('SIGINT', handleExit);
|
|
582
|
-
process.on('SIGTERM', handleExit);
|
|
583
|
-
child.on('exit', (code, signal) => {
|
|
584
|
-
if (code !== null) {
|
|
585
|
-
log.info((0, i18n_1.t)(`Agent 服务已退出,退出码:${code}`));
|
|
586
|
-
}
|
|
587
|
-
else if (signal) {
|
|
588
|
-
log.info((0, i18n_1.t)(`Agent 服务被信号终止:${signal}`));
|
|
589
|
-
}
|
|
590
|
-
process.removeListener('SIGINT', handleExit);
|
|
591
|
-
process.removeListener('SIGTERM', handleExit);
|
|
592
|
-
if (isExiting) {
|
|
593
|
-
process.exit(0);
|
|
594
|
-
}
|
|
595
|
-
});
|
|
596
|
-
try {
|
|
597
|
-
await child;
|
|
598
|
-
}
|
|
599
|
-
catch (error) {
|
|
600
|
-
log.error((0, i18n_1.t)(`Agent 服务启动失败:${error.message}`));
|
|
601
|
-
process.exit(1);
|
|
602
|
-
}
|
|
603
|
-
}
|
|
604
|
-
async loadEnvFile(agentDir, log) {
|
|
605
|
-
const envFiles = ['.env', '.env.local', '.env.development'];
|
|
606
|
-
const envVars = {};
|
|
607
|
-
for (const envFileName of envFiles) {
|
|
608
|
-
const envFilePath = path_1.default.join(agentDir, envFileName);
|
|
609
|
-
if (await fs_extra_1.default.pathExists(envFilePath)) {
|
|
610
|
-
try {
|
|
611
|
-
const result = dotenv.config({ path: envFilePath });
|
|
612
|
-
if (result.error) {
|
|
613
|
-
log.warn((0, i18n_1.t)(`解析环境变量文件失败:${envFileName} - ${result.error.message}`));
|
|
614
|
-
continue;
|
|
615
|
-
}
|
|
616
|
-
if (result.parsed) {
|
|
617
|
-
Object.assign(envVars, result.parsed);
|
|
618
|
-
log.info((0, i18n_1.t)(`加载环境变量文件:${envFileName}`));
|
|
619
|
-
console.log((0, i18n_1.t)(`加载了 ${Object.keys(result.parsed).length} 个环境变量从 ${envFileName}`));
|
|
620
|
-
}
|
|
621
|
-
}
|
|
622
|
-
catch (error) {
|
|
623
|
-
log.warn((0, i18n_1.t)(`读取环境变量文件失败:${envFileName} - ${error.message}`));
|
|
624
|
-
}
|
|
625
|
-
}
|
|
626
|
-
}
|
|
627
|
-
return envVars;
|
|
628
|
-
}
|
|
629
|
-
};
|
|
630
|
-
__decorate([
|
|
631
|
-
(0, decorators_1.InjectParams)(),
|
|
632
|
-
__param(0, (0, decorators_1.CmdContext)()),
|
|
633
|
-
__param(1, (0, decorators_1.EnvId)()),
|
|
634
|
-
__param(2, (0, decorators_1.Log)()),
|
|
635
|
-
__param(3, (0, decorators_1.ArgsParams)()),
|
|
636
|
-
__param(4, (0, decorators_1.ArgsOptions)()),
|
|
637
|
-
__metadata("design:type", Function),
|
|
638
|
-
__metadata("design:paramtypes", [Object, String, decorators_1.Logger, Array, Object]),
|
|
639
|
-
__metadata("design:returntype", Promise)
|
|
640
|
-
], AgentRunCommand.prototype, "execute", null);
|
|
641
|
-
AgentRunCommand = __decorate([
|
|
642
|
-
(0, common_1.ICommand)()
|
|
643
|
-
], AgentRunCommand);
|
|
644
|
-
exports.AgentRunCommand = AgentRunCommand;
|