@workflow-code/cli 0.1.4-20260816001 → 0.1.4-20260821001

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.
@@ -2363,6 +2363,9 @@ var common = {
2363
2363
  workflow: "Workflow",
2364
2364
  runTarget: "Run target",
2365
2365
  projectType: "Project type",
2366
+ projectTypeWorkflow: "Workflow",
2367
+ projectTypeConversation: "Conversation",
2368
+ projectTypeKanban: "Kanban",
2366
2369
  iconSource: "Icon source",
2367
2370
  themeColor: "Theme color",
2368
2371
  notLoggedIn: "Not signed in",
@@ -2960,8 +2963,8 @@ var common = {
2960
2963
  create: "New schedule",
2961
2964
  unavailableTitle: "Schedules are unavailable",
2962
2965
  partialUnavailableTitle: "Some schedule information is unavailable",
2963
- noOnlineVersionTitle: "No schedulable online version",
2964
- noOnlineVersionDescription: "Server schedules must target an exact online published version; latest and draft are not accepted.",
2966
+ noOnlineVersionTitle: "No schedulable Server version",
2967
+ noOnlineVersionDescription: "Server schedules must target an exact online version released for Server execution; latest, draft, and Desktop-only versions are not accepted.",
2965
2968
  presetsTitle: "Suggested schedules",
2966
2969
  desktopPresetsDescription: "Suggestions are not enabled automatically. A schedule is created only after you confirm its parameters.",
2967
2970
  serverPresetsDescription: "Presets are not enabled automatically. A schedule is created only after you confirm the version, entrypoint, and parameters.",
@@ -3512,8 +3515,29 @@ var desktop = {
3512
3515
  defaultExample: "Default example: ",
3513
3516
  defaultProjectDirectory: "Documents/workflow-projects (default)",
3514
3517
  directoryName: "Directory name",
3518
+ defaultProjectName: "Default name",
3519
+ defaultProjectNamePlaceholder: "Enter the default project name",
3520
+ defaultProjectNameRequired: "Enter a default project name.",
3515
3521
  displayName: "Display name",
3516
3522
  displayNamePlaceholder: "Enter a display name",
3523
+ localizedProjectNames: "Localized names",
3524
+ projectNameZhCN: "Chinese (Simplified)",
3525
+ projectNameEn: "English",
3526
+ optionalProjectNamePlaceholder: "Optional name",
3527
+ projectDeclarations: "Project declarations",
3528
+ projectDeclarationMultilingual: "Multilingual",
3529
+ projectDeclarationMultiplatform: "Multiplatform",
3530
+ extendedProjectDeclarations: "Extended project declarations",
3531
+ projectPlatformSupport: "Display platforms",
3532
+ projectPlatformMode: "Project platform mode",
3533
+ projectPlatformAgnostic: "Platform agnostic",
3534
+ projectPlatformSpecific: "Specific platforms",
3535
+ projectPlatformMacos: "macOS",
3536
+ projectPlatformWindows: "Windows",
3537
+ projectPlatformWeb: "Web",
3538
+ extendedProjectPlatforms: "Extended project platforms",
3539
+ selectAtLeastOneProjectPlatform: "Select at least one project platform.",
3540
+ notSet: "Not set",
3517
3541
  done: "Done",
3518
3542
  downloadProjectDescription: "Keeps the project UUID and server binding while creating an editable local copy.",
3519
3543
  downloadingSource: "Downloading source...",
@@ -3549,9 +3573,11 @@ var desktop = {
3549
3573
  localUuid: "Local UUID",
3550
3574
  localizeWritesSourceOnly: "Only writes a source snapshot; dependencies are not installed.",
3551
3575
  loginRequiredToCreateCloudApp: "Please sign in to an account before creating a cloud app.",
3552
- minifySource: "Minify source",
3553
- minifySourceOffDescription: "The version keeps an original source snapshot.",
3554
- minifySourceOnDescription: "The version does not keep the original TS/JS source.",
3576
+ projectInfoBoundServerLoginRequired: "Connect and sign in to {{serverUrl}} before saving information for this bound project.",
3577
+ desktopPlatformDownloadUnsupported: "This operating system does not have a compatible Desktop download target.",
3578
+ retainOriginalSource: "Retain original source",
3579
+ retainOriginalSourceOffDescription: "The version keeps only the Server runtime and does not provide an original-source download.",
3580
+ retainOriginalSourceOnDescription: "The version also retains an original TS/JS source snapshot.",
3555
3581
  newProjectDescription: "Choose a project type and example; optionally specify a local save location.",
3556
3582
  newProjectNamePlaceholder: "My Workflow",
3557
3583
  noWorkflowSelected: "No workflow selected",
@@ -3583,9 +3609,22 @@ var desktop = {
3583
3609
  projectType: "Project type",
3584
3610
  projectUuid: "Project UUID",
3585
3611
  publishNewVersion: "Publish new version",
3612
+ releaseExecutionTargets: "Release targets",
3613
+ releaseExecutionTargetsDescription: "Choose Server execution and local execution on this device for the immutable version.",
3614
+ serverCloudExecution: "Server cloud execution",
3615
+ serverCloudExecutionDescription: "Prepare a Server runtime for runs, Embed, Webhook, and schedules.",
3616
+ kanbanServerExecutionDisabled: "Kanban is statically hosted and does not use the Server executor.",
3617
+ desktopTargetMacos: "macOS local execution",
3618
+ desktopTargetWindows: "Windows local execution",
3619
+ desktopTargetCurrentDeviceDescription: "Allow this version to be downloaded to the current {{platform}} Desktop and run locally.",
3620
+ desktopTargetUnavailableOnCurrentDevice: "Publish this target from the {{platform}} Desktop.",
3621
+ publishDesktopTargetMismatch: "Desktop can publish only the local execution target for its current operating system.",
3622
+ selectAtLeastOneExecutionTarget: "Enable Server execution or local execution on this device.",
3623
+ desktopTargetsRequireSourceDescription: "Local execution requires original source, so this release retains it. Removing the local target restores the previous source choice.",
3586
3624
  readingVersionPublishSettings: "Reading publish settings for {{version}}",
3587
3625
  checkingPreviousPublishSettings: "Checking previous publish settings",
3588
3626
  loadedVersionPublishSettings: "Loaded publish settings from {{version}}",
3627
+ previousDesktopTargetsNotInherited: "Desktop targets for other operating systems were not inherited. Publish those targets on their matching operating systems.",
3589
3628
  projectGroupSourceSnapshotDescription: "The project group retains source snapshots for the root Kanban and included Workflows. Users with source download access can retrieve them.",
3590
3629
  kanbanSourceSnapshotDescription: "Kanban versions always retain source and static artifacts. Users with source download access can retrieve them.",
3591
3630
  referencedProjects: "Referenced projects",
@@ -4112,7 +4151,9 @@ var desktop = {
4112
4151
  profileSaveFailedFallback: "Failed to save.",
4113
4152
  profileSaveFailedRetry: "Failed to save. Check your network connection and try again.",
4114
4153
  personalInfo: "Personal information",
4115
- personalInfoDescription: "Manage your avatar, account profile, session lifetime, and sign-in state on this device.",
4154
+ personalInfoDescription: "Manage your account profile and review local and cloud project totals.",
4155
+ editAccountProfile: "Edit profile",
4156
+ editAccountProfileDescription: "Update your avatar, display name, and email address.",
4116
4157
  avatarAlt: "{{name}} avatar",
4117
4158
  displayNameNotSet: "No display name set",
4118
4159
  accountId: "Account ID",
@@ -4126,6 +4167,12 @@ var desktop = {
4126
4167
  email: "Email",
4127
4168
  emailPlaceholder: "user@example.com",
4128
4169
  saveChanges: "Save changes",
4170
+ projectOverview: "Project overview",
4171
+ projectOverviewDescription: "Summarizes projects stored on this device and cloud projects available to the current account.",
4172
+ localProjects: "Local projects",
4173
+ localProjectStatisticsDescription: "Stored on this device",
4174
+ cloudProjectStatisticsDescription: "Available to this account",
4175
+ projectTypeBreakdown: "Project totals by type",
4129
4176
  sessionCredentials: "Session and credentials",
4130
4177
  sessionCredentialsDescription: "View the login credential status and expiry date for this device.",
4131
4178
  loginStatus: "Sign-in status",
@@ -4152,7 +4199,9 @@ var desktop = {
4152
4199
  builtinProjectsDesktopOnly: "Built-in projects can only be installed and managed in Desktop.",
4153
4200
  builtinProjects: "Built-in projects",
4154
4201
  builtinProjectsDevModeDescription: "In development mode, built-in projects in the repository are loaded automatically and take effect as soon as the source is saved.",
4155
- builtinProjectsInstallDescription: "Large runtimes are downloaded, verified, and atomically installed for the current platform; no local Node or pnpm is required.",
4202
+ builtinProjectsInstallDescription: "Large runtimes are downloaded, verified, and atomically installed for the current platform. Downloads can be paused or cancelled, and no local Node or pnpm is required.",
4203
+ refreshBuiltinProjects: "Check built-in project updates",
4204
+ loadingBuiltinProjects: "Loading built-in projects",
4156
4205
  listSeparator: ", ",
4157
4206
  builtinDependencies: "Dependencies: {{dependencies}}",
4158
4207
  removeDependentFirst: "Please remove {{name}} first",
@@ -4161,13 +4210,27 @@ var desktop = {
4161
4210
  builtinInstalling: "Installing",
4162
4211
  builtinUpdate: "Update",
4163
4212
  builtinInstall: "Install",
4213
+ builtinPauseDownload: "Pause",
4214
+ builtinResumeDownload: "Resume",
4215
+ builtinCancelDownload: "Cancel download",
4216
+ builtinCancellingDownload: "Cancelling",
4217
+ builtinDownloadControlFailedDetails: "Unable to {{action}} the built-in project download: {{detail}}",
4164
4218
  devSourceLoaded: "Dev source {{version}} \xB7 auto-loaded",
4165
4219
  installedVersion: "Installed {{version}}",
4166
4220
  updateAvailable: "Update available {{version}}",
4221
+ updateAvailableFrom: "Installed {{installedVersion}} \xB7 update {{version}} available",
4167
4222
  downloadingStatus: "Downloading",
4168
4223
  downloadingStatusProgress: "Downloading {{progress}}%",
4224
+ downloadPausedStatus: "Download paused",
4225
+ downloadPausedStatusProgress: "Download paused at {{progress}}%",
4226
+ builtinDownloadProgressAria: "{{name}} download progress: {{progress}}%",
4227
+ builtinDownloadTransfer: "{{downloaded}} / {{total}}",
4228
+ builtinDownloadSpeed: "{{speed}}/s",
4229
+ builtinDownloadSpeedPending: "Calculating speed",
4169
4230
  installingStatus: "Installing",
4170
4231
  installingStatusProgress: "Installing {{progress}}%",
4232
+ builtinInstallingDescription: "Verifying the archive and registering the project",
4233
+ builtinInstallingProgressAria: "Installing {{name}}",
4171
4234
  checkingBuiltinUpdates: "Checking for updates",
4172
4235
  installedVersionOffline: "Installed {{version}} (updates temporarily unavailable)",
4173
4236
  installationFailed: "Installation failed",
@@ -4327,8 +4390,10 @@ var desktop = {
4327
4390
  leaveWorkspaceTitle: "Leave the current workspace?",
4328
4391
  loadingLabelFallback: "Loading {{label}}",
4329
4392
  openDesktopSettings: "Open Desktop settings",
4330
- projectInfoLocalDescription: "Edit the project display name, type, and card icon. Saving writes back to the local package.json.",
4393
+ projectInfoLocalDescription: "Edit project information and preview the README. Saving writes back to the local package.json and syncs a bound cloud app.",
4331
4394
  projectInfoTitle: "Project info",
4395
+ projectReadmeMissing: "No README.md was found in the project root.",
4396
+ projectReadmeTitle: "README preview",
4332
4397
  projectOpeningDetail: "Loading project files and workspace state.",
4333
4398
  projectOpeningTitle: "Opening project",
4334
4399
  projectWorkspaceAria: "Project workspace",
@@ -5126,6 +5191,17 @@ var serverWeb = {
5126
5191
  projectListUploaderFallback: "Uploader not recorded",
5127
5192
  projectListViewLogs: "View logs",
5128
5193
  projectListVisible: "Showing {{visible}} / {{total}}",
5194
+ projectDeclarationMultilingual: "Multilingual",
5195
+ projectDeclarationMultiplatform: "Multiplatform",
5196
+ projectExecutionDesktopOnly: "Desktop only",
5197
+ projectExecutionPreparing: "Not published",
5198
+ projectExecutionServerRunnable: "Server runnable",
5199
+ projectExecutionStaticWeb: "Static Web",
5200
+ projectExecutionTargetUnavailable: "No compatible online release is available for this Server entry.",
5201
+ projectPlatformAgnostic: "Platform agnostic",
5202
+ projectPlatformMacos: "macOS",
5203
+ projectPlatformWeb: "Web",
5204
+ projectPlatformWindows: "Windows",
5129
5205
  projectSettingsAcceptNewRuns: "Accept new runs",
5130
5206
  projectSettingsAcceptNewRunsDescription: "Disabling pauses new run entries but does not delete history.",
5131
5207
  projectSettingsAccessPolicy: "Access policy",
@@ -5137,6 +5213,17 @@ var serverWeb = {
5137
5213
  projectSettingsBaselineNoLatest: "None",
5138
5214
  projectSettingsBaselineUpdatedAt: "Updated",
5139
5215
  projectSettingsBaselineWorkflowId: "Workflow ID",
5216
+ projectSettingsDeclarations: "Declarations",
5217
+ projectSettingsDefaultName: "Default name",
5218
+ projectSettingsDisplayPlatforms: "Display platforms",
5219
+ projectSettingsEnglishName: "English name",
5220
+ projectSettingsExecutionAvailability: "Release availability",
5221
+ projectSettingsLocalizedNames: "Localized names",
5222
+ projectSettingsNoDeclarations: "No declarations",
5223
+ projectSettingsProjectInfo: "Project information",
5224
+ projectSettingsProjectInfoDescription: "Names, declarations and display platforms come from package.json and do not verify the implementation.",
5225
+ projectSettingsUnspecifiedName: "Not specified",
5226
+ projectSettingsChineseName: "Chinese name",
5140
5227
  projectSettingsConcurrency: "Concurrency limit",
5141
5228
  projectSettingsConcurrencyControlDescription: "Use the stepper buttons to save concurrency capacity instantly and avoid flooding the run queue with large batches.",
5142
5229
  projectSettingsConcurrencyHint: "{{total}} running now",
@@ -5716,6 +5803,7 @@ var serverWeb = {
5716
5803
  versionsHeaderPublishedAt: "Published",
5717
5804
  versionsHeaderReleaseLog: "Release log",
5718
5805
  versionsHeaderStatus: "Status",
5806
+ versionsHeaderTargets: "Release targets",
5719
5807
  versionsHeaderUploader: "Uploader",
5720
5808
  versionsHeaderVersion: "Version",
5721
5809
  versionsHealthLabelHighRisk: "High risk",
@@ -5846,6 +5934,11 @@ var serverWeb = {
5846
5934
  versionsVersionStatusManualOnline: "Manually online",
5847
5935
  versionsVersionStatusOnline: "Online",
5848
5936
  versionsVersionStatusPreparing: "Preparing",
5937
+ versionsTargetMacos: "macOS",
5938
+ versionsTargetServer: "Server",
5939
+ versionsTargetStaticWeb: "Static Web",
5940
+ versionsTargetWindows: "Windows",
5941
+ versionsTargetNone: "No executor",
5849
5942
  versionsViewStatsTitle: "View run stats for version {{version}}",
5850
5943
  webhookAddMapping: "Add mapping",
5851
5944
  webhookBodyFilter: "Body filter",
@@ -6216,7 +6309,13 @@ var server = {
6216
6309
  entrypointResumeLocked: "entrypointId cannot be changed when resuming a waiting run.",
6217
6310
  archiveUnsupportedType: 'Archive entry "{{path}}" uses unsupported type "{{type}}". Only regular files and directories are allowed.',
6218
6311
  kanbanDataSourceUnauthorized: 'Kanban data source "{{sourceId}}" is not authorized for sharing.',
6219
- workflowOwnedByAnotherAccount: 'Workflow "{{workflowId}}" already exists and is owned by another account.'
6312
+ workflowOwnedByAnotherAccount: 'Workflow "{{workflowId}}" already exists and is owned by another account.',
6313
+ workflowVersionServerDisabled: 'Workflow "{{workflowId}}" version "{{version}}" is not enabled for Server execution. Download it on a supported Desktop platform instead.',
6314
+ workflowDraftServerDisabled: 'Workflow "{{workflowId}}" draft is not enabled for Server execution.',
6315
+ workflowServerLatestUnavailable: 'Workflow "{{workflowId}}" has no online version available for Server execution.',
6316
+ workflowDesktopLatestUnavailable: 'Workflow "{{workflowId}}" has no online version available for {{platform}} Desktop download.',
6317
+ workflowDesktopVersionUnsupported: 'Workflow "{{workflowId}}" version "{{version}}" is not released for {{platform}} Desktop.',
6318
+ workflowRuntimeArtifactUnavailable: 'Workflow "{{workflowId}}" version "{{version}}" does not have a Server runtime artifact.'
6220
6319
  };
6221
6320
 
6222
6321
  // .shared/i18n/resources/en/cli.ts
@@ -6269,10 +6368,10 @@ var cli = {
6269
6368
  " status",
6270
6369
  " health",
6271
6370
  " pack <workflow> [--path <workflow-dir>] [--output <file.tgz>] [--project-group] [--dependency <alias>=<path>]",
6272
- " upload <workflow> [--path <workflow-dir>] [--file <archive>] [--release-log <text>] [--source-mode bundled|source] [--no-wait] [--create] [--project-group] [--publish-group] [--dependency <alias>=<path>] [--grant-data-access <alias>]",
6371
+ " upload <workflow> [--path <workflow-dir>] [--file <archive>] [--release-log <text>] [--source-mode bundled|source] [--server-runtime|--no-server-runtime] [--desktop-platform macos|windows] [--no-wait] [--create] [--project-group] [--publish-group] [--dependency <alias>=<path>] [--grant-data-access <alias>]",
6273
6372
  " preparation <workflow-id> <job-id>",
6274
6373
  " download <workflow> [--target draft|latest|version] [--path <dir>]",
6275
- " publish <workflow> [--release-log <text>] [--source-mode bundled|source] [--project-group] [--dependency <alias>=<path>] [--grant-data-access <alias>]",
6374
+ " publish <workflow> [--release-log <text>] [--source-mode bundled|source] [--server-runtime|--no-server-runtime] [--desktop-platform macos|windows] [--project-group] [--dependency <alias>=<path>] [--grant-data-access <alias>]",
6276
6375
  " publish --deployment <id>",
6277
6376
  " run <workflow> [...args] [--target draft|latest|version] [--entrypoint <id>]",
6278
6377
  " debug-node <workflow> <node> [...args] [--target draft|latest|version] [--entrypoint <id>]",
@@ -6283,7 +6382,9 @@ var cli = {
6283
6382
  "",
6284
6383
  "Options:",
6285
6384
  " --server <url> Defaults to WORKFLOW_SERVER_URL, saved CLI auth, or http://localhost:7125",
6286
- " --token <token> Optional manual override. Defaults to WORKFLOW_SERVER_ADMIN_KEY or saved CLI auth API key"
6385
+ " --token <token> Optional manual override. Defaults to WORKFLOW_SERVER_ADMIN_KEY or saved CLI auth API key",
6386
+ " --server-runtime / --no-server-runtime Enable or disable Server execution for this release",
6387
+ " --desktop-platform <macos|windows> Add a downloadable Desktop target; may be repeated"
6287
6388
  ].join("\n"),
6288
6389
  invalidLocale: 'Unsupported locale "{{value}}". Expected "zh-CN" or "en".',
6289
6390
  duplicateLocale: "--locale may only be specified once.",
@@ -6311,6 +6412,11 @@ var cli = {
6311
6412
  invalidBase64Content: 'Invalid base64 content for workflow file "{{path}}".',
6312
6413
  versionOptionUnsupported: "--version is no longer supported. Publish versions are managed by the system.",
6313
6414
  invalidSourceMode: '--source-mode must be "bundled" or "source".',
6415
+ workspaceDownloadPlatformUnsupported: "workspace download is only supported on macOS and Windows; current platform is {{platform}}.",
6416
+ serverRuntimeOptionsConflict: "--server-runtime and --no-server-runtime cannot be combined.",
6417
+ invalidDesktopPlatform: 'Unsupported --desktop-platform "{{platform}}". Expected macos or windows.',
6418
+ executionTargetCommandUnsupported: "Execution target options are only supported by upload and publish.",
6419
+ desktopPlatformRequiresSource: "--desktop-platform cannot be combined with --source-mode bundled; Desktop releases require source mode.",
6314
6420
  noWaitReleaseLogConflict: "--no-wait cannot be combined with --release-log because publishing requires a prepared draft.",
6315
6421
  notLoggedIn: "Not logged in. Run: workspace login --server <url> or pass --token / WORKFLOW_SERVER_ADMIN_KEY.",
6316
6422
  missingPositional: "Missing {{name}}.",
@@ -6535,7 +6641,7 @@ var common2 = {
6535
6641
  defaultConversation: "\u9ED8\u8BA4\u8BDD\u9898",
6536
6642
  messageCount: "{{count}} \u6761\u6D88\u606F",
6537
6643
  notProvided: "\u672A\u63D0\u4F9B",
6538
- projectKind: "{{type}} \u9879\u76EE",
6644
+ projectKind: "{{type}}\u9879\u76EE",
6539
6645
  customImage: "\u81EA\u5B9A\u4E49\u56FE\u7247",
6540
6646
  lucideIcon: "Lucide: {{name}}",
6541
6647
  defaultWorkflowIcon: "\u9ED8\u8BA4 Workflow \u56FE\u6807",
@@ -6553,6 +6659,9 @@ var common2 = {
6553
6659
  workflow: "\u5DE5\u4F5C\u6D41",
6554
6660
  runTarget: "\u8FD0\u884C\u76EE\u6807",
6555
6661
  projectType: "\u9879\u76EE\u7C7B\u578B",
6662
+ projectTypeWorkflow: "\u5DE5\u4F5C\u6D41",
6663
+ projectTypeConversation: "\u5BF9\u8BDD",
6664
+ projectTypeKanban: "\u770B\u677F",
6556
6665
  iconSource: "\u56FE\u6807\u6765\u6E90",
6557
6666
  themeColor: "\u4E3B\u9898\u8272",
6558
6667
  notLoggedIn: "\u672A\u767B\u5F55",
@@ -7150,8 +7259,8 @@ var common2 = {
7150
7259
  create: "\u65B0\u5EFA\u8BA1\u5212",
7151
7260
  unavailableTitle: "\u5B9A\u65F6\u4EFB\u52A1\u6682\u4E0D\u53EF\u7528",
7152
7261
  partialUnavailableTitle: "\u90E8\u5206\u5B9A\u65F6\u4EFB\u52A1\u4FE1\u606F\u6682\u4E0D\u53EF\u7528",
7153
- noOnlineVersionTitle: "\u6CA1\u6709\u53EF\u8C03\u5EA6\u7684\u5728\u7EBF\u7248\u672C",
7154
- noOnlineVersionDescription: "Server \u8BA1\u5212\u53EA\u80FD\u56FA\u5B9A\u5230\u7CBE\u786E\u5728\u7EBF\u53D1\u5E03\u7248\u672C\uFF0C\u4E0D\u63A5\u53D7 latest \u6216 draft\u3002",
7262
+ noOnlineVersionTitle: "\u6CA1\u6709\u53EF\u8C03\u5EA6\u7684 Server \u7248\u672C",
7263
+ noOnlineVersionDescription: "Server \u8BA1\u5212\u53EA\u80FD\u56FA\u5B9A\u5230\u5DF2\u4E0A\u7EBF\u4E14\u652F\u6301 Server \u6267\u884C\u7684\u7CBE\u786E\u7248\u672C\uFF0C\u4E0D\u63A5\u53D7 latest\u3001draft \u6216\u4EC5\u672C\u5730\u7248\u672C\u3002",
7155
7264
  presetsTitle: "\u9879\u76EE\u5EFA\u8BAE\u8BA1\u5212",
7156
7265
  desktopPresetsDescription: "\u5EFA\u8BAE\u4E0D\u4F1A\u81EA\u52A8\u542F\u7528\uFF0C\u786E\u8BA4\u53C2\u6570\u540E\u624D\u4F1A\u521B\u5EFA\u3002",
7157
7266
  serverPresetsDescription: "\u9884\u8BBE\u4E0D\u4F1A\u81EA\u52A8\u542F\u7528\uFF0C\u786E\u8BA4\u7248\u672C\u3001\u5165\u53E3\u548C\u53C2\u6570\u540E\u624D\u4F1A\u521B\u5EFA\u3002",
@@ -7702,8 +7811,29 @@ var desktop2 = {
7702
7811
  defaultExample: "\u9ED8\u8BA4\u793A\u4F8B\uFF1A",
7703
7812
  defaultProjectDirectory: "\u6587\u7A3F/workflow-projects\uFF08\u9ED8\u8BA4\uFF09",
7704
7813
  directoryName: "\u76EE\u5F55\u540D\u79F0",
7814
+ defaultProjectName: "\u9ED8\u8BA4\u540D\u79F0",
7815
+ defaultProjectNamePlaceholder: "\u8BF7\u8F93\u5165\u9879\u76EE\u9ED8\u8BA4\u540D\u79F0",
7816
+ defaultProjectNameRequired: "\u8BF7\u8F93\u5165\u9879\u76EE\u9ED8\u8BA4\u540D\u79F0\u3002",
7705
7817
  displayName: "\u663E\u793A\u540D\u79F0",
7706
7818
  displayNamePlaceholder: "\u8BF7\u8F93\u5165\u663E\u793A\u540D",
7819
+ localizedProjectNames: "\u672C\u5730\u5316\u540D\u79F0",
7820
+ projectNameZhCN: "\u7B80\u4F53\u4E2D\u6587",
7821
+ projectNameEn: "\u82F1\u6587",
7822
+ optionalProjectNamePlaceholder: "\u9009\u586B\u540D\u79F0",
7823
+ projectDeclarations: "\u9879\u76EE\u58F0\u660E",
7824
+ projectDeclarationMultilingual: "\u652F\u6301\u591A\u8BED\u8A00",
7825
+ projectDeclarationMultiplatform: "\u652F\u6301\u591A\u5E73\u53F0",
7826
+ extendedProjectDeclarations: "\u6269\u5C55\u9879\u76EE\u58F0\u660E",
7827
+ projectPlatformSupport: "\u5C55\u793A\u5E73\u53F0",
7828
+ projectPlatformMode: "\u9879\u76EE\u5E73\u53F0\u6A21\u5F0F",
7829
+ projectPlatformAgnostic: "\u5E73\u53F0\u65E0\u5173",
7830
+ projectPlatformSpecific: "\u6307\u5B9A\u5E73\u53F0",
7831
+ projectPlatformMacos: "macOS",
7832
+ projectPlatformWindows: "Windows",
7833
+ projectPlatformWeb: "Web",
7834
+ extendedProjectPlatforms: "\u6269\u5C55\u9879\u76EE\u5E73\u53F0",
7835
+ selectAtLeastOneProjectPlatform: "\u8BF7\u81F3\u5C11\u9009\u62E9\u4E00\u4E2A\u9879\u76EE\u5E73\u53F0\u3002",
7836
+ notSet: "\u672A\u8BBE\u7F6E",
7707
7837
  done: "\u5B8C\u6210",
7708
7838
  downloadProjectDescription: "\u4FDD\u7559\u9879\u76EE UUID \u548C\u670D\u52A1\u5668\u5173\u8054\uFF0C\u5728\u672C\u673A\u521B\u5EFA\u53EF\u7F16\u8F91\u526F\u672C\u3002",
7709
7839
  downloadingSource: "\u6B63\u5728\u4E0B\u8F7D\u6E90\u7801...",
@@ -7739,9 +7869,11 @@ var desktop2 = {
7739
7869
  localUuid: "\u672C\u5730 UUID",
7740
7870
  localizeWritesSourceOnly: "\u53EA\u5199\u5165\u6E90\u7801\u5FEB\u7167\uFF0C\u4E0D\u4F1A\u5B89\u88C5\u4F9D\u8D56\u3002",
7741
7871
  loginRequiredToCreateCloudApp: "\u8BF7\u5148\u767B\u5F55\u8D26\u53F7\uFF0C\u518D\u521B\u5EFA\u4E91\u7AEF\u5E94\u7528\u3002",
7742
- minifySource: "\u538B\u7F29\u6E90\u7801",
7743
- minifySourceOffDescription: "\u7248\u672C\u4FDD\u7559\u539F\u59CB\u6E90\u7801\u5FEB\u7167\u3002",
7744
- minifySourceOnDescription: "\u7248\u672C\u4E0D\u4FDD\u7559\u539F\u59CB TS/JS \u6E90\u7801\u3002",
7872
+ projectInfoBoundServerLoginRequired: "\u8BF7\u8FDE\u63A5\u5E76\u767B\u5F55 {{serverUrl}}\uFF0C\u518D\u4FDD\u5B58\u5DF2\u7ED1\u5B9A\u9879\u76EE\u7684\u4FE1\u606F\u3002",
7873
+ desktopPlatformDownloadUnsupported: "\u5F53\u524D\u64CD\u4F5C\u7CFB\u7EDF\u6CA1\u6709\u517C\u5BB9\u7684 Desktop \u4E0B\u8F7D\u76EE\u6807\u3002",
7874
+ retainOriginalSource: "\u4FDD\u7559\u539F\u59CB\u6E90\u7801",
7875
+ retainOriginalSourceOffDescription: "\u7248\u672C\u53EA\u4FDD\u7559 Server runtime\uFF0C\u4E0D\u63D0\u4F9B\u539F\u59CB\u6E90\u7801\u4E0B\u8F7D\u3002",
7876
+ retainOriginalSourceOnDescription: "\u7248\u672C\u540C\u65F6\u4FDD\u7559\u539F\u59CB TS/JS \u6E90\u7801\u5FEB\u7167\u3002",
7745
7877
  newProjectDescription: "\u9009\u62E9\u9879\u76EE\u7C7B\u578B\u548C\u793A\u4F8B\uFF0C\u53EF\u6309\u9700\u6307\u5B9A\u672C\u673A\u5B58\u653E\u4F4D\u7F6E\u3002",
7746
7878
  newProjectNamePlaceholder: "My Workflow",
7747
7879
  noWorkflowSelected: "\u672A\u9009\u62E9 workflow",
@@ -7767,15 +7899,28 @@ var desktop2 = {
7767
7899
  projectEnvVariables: "\u9879\u76EE\u73AF\u5883\u53D8\u91CF",
7768
7900
  projectIcon: "\u9879\u76EE\u56FE\u6807",
7769
7901
  projectId: "\u9879\u76EE ID",
7770
- projectKind: "{{type}} \u9879\u76EE",
7902
+ projectKind: "{{type}}\u9879\u76EE",
7771
7903
  projectName: "\u9879\u76EE\u540D",
7772
7904
  projectNamePlaceholder: "\u9879\u76EE\u540D\u79F0",
7773
7905
  projectType: "\u9879\u76EE\u7C7B\u578B",
7774
7906
  projectUuid: "\u9879\u76EE UUID",
7775
7907
  publishNewVersion: "\u53D1\u5E03\u65B0\u7248\u672C",
7908
+ releaseExecutionTargets: "\u53D1\u884C\u76EE\u6807",
7909
+ releaseExecutionTargetsDescription: "\u9009\u62E9\u6B64\u4E0D\u53EF\u53D8\u7248\u672C\u7684 Server \u6267\u884C\u4E0E\u5F53\u524D\u8BBE\u5907\u672C\u5730\u8FD0\u884C\u80FD\u529B\u3002",
7910
+ serverCloudExecution: "Server \u4E91\u7AEF\u6267\u884C",
7911
+ serverCloudExecutionDescription: "\u4E3A\u8FD0\u884C\u3001Embed\u3001Webhook \u548C\u8BA1\u5212\u4EFB\u52A1\u51C6\u5907 Server runtime\u3002",
7912
+ kanbanServerExecutionDisabled: "Kanban \u4F7F\u7528\u9759\u6001\u6258\u7BA1\uFF0C\u4E0D\u8FDB\u5165 Server executor\u3002",
7913
+ desktopTargetMacos: "macOS \u672C\u5730\u8FD0\u884C",
7914
+ desktopTargetWindows: "Windows \u672C\u5730\u8FD0\u884C",
7915
+ desktopTargetCurrentDeviceDescription: "\u5141\u8BB8\u6B64\u7248\u672C\u4E0B\u8F7D\u5230\u5F53\u524D {{platform}} Desktop \u5E76\u5728\u672C\u5730\u8FD0\u884C\u3002",
7916
+ desktopTargetUnavailableOnCurrentDevice: "\u9700\u8981\u5728 {{platform}} Desktop \u4E0A\u53D1\u5E03\u3002",
7917
+ publishDesktopTargetMismatch: "Desktop \u53EA\u80FD\u53D1\u5E03\u5F53\u524D\u64CD\u4F5C\u7CFB\u7EDF\u5BF9\u5E94\u7684\u672C\u5730\u8FD0\u884C\u76EE\u6807\u3002",
7918
+ selectAtLeastOneExecutionTarget: "\u8BF7\u542F\u7528 Server \u6267\u884C\u6216\u5F53\u524D\u8BBE\u5907\u672C\u5730\u8FD0\u884C\u3002",
7919
+ desktopTargetsRequireSourceDescription: "\u672C\u5730\u8FD0\u884C\u9700\u8981\u539F\u59CB\u6E90\u7801\uFF0C\u672C\u6B21\u53D1\u5E03\u56FA\u5B9A\u4FDD\u7559\uFF1B\u53D6\u6D88\u672C\u5730\u76EE\u6807\u540E\u6062\u590D\u4E4B\u524D\u7684\u6E90\u7801\u9009\u62E9\u3002",
7776
7920
  readingVersionPublishSettings: "\u6B63\u5728\u8BFB\u53D6 {{version}} \u7684\u53D1\u5E03\u8BBE\u7F6E",
7777
7921
  checkingPreviousPublishSettings: "\u6B63\u5728\u68C0\u67E5\u4E0A\u6B21\u53D1\u5E03\u8BBE\u7F6E",
7778
7922
  loadedVersionPublishSettings: "\u5DF2\u8BFB\u53D6 {{version}} \u7684\u53D1\u5E03\u8BBE\u7F6E",
7923
+ previousDesktopTargetsNotInherited: "\u4E0A\u4E2A\u7248\u672C\u7684\u5F02\u5E73\u53F0 Desktop \u76EE\u6807\u672A\u7EE7\u627F\uFF1B\u8BF7\u5728\u5BF9\u5E94\u64CD\u4F5C\u7CFB\u7EDF\u53D1\u5E03\u8BE5\u76EE\u6807\u3002",
7779
7924
  projectGroupSourceSnapshotDescription: "\u9879\u76EE\u7EC4\u4F1A\u4FDD\u7559\u6839 Kanban \u4E0E included Workflow \u7684\u6E90\u7801\u5FEB\u7167\uFF0C\u6709\u6E90\u7801\u4E0B\u8F7D\u6743\u9650\u7684\u7528\u6237\u53EF\u83B7\u53D6\u3002",
7780
7925
  kanbanSourceSnapshotDescription: "Kanban \u7248\u672C\u56FA\u5B9A\u4FDD\u7559\u6E90\u7801\u4E0E\u9759\u6001\u4EA7\u7269\uFF0C\u6709\u6E90\u7801\u4E0B\u8F7D\u6743\u9650\u7684\u7528\u6237\u53EF\u83B7\u53D6\u3002",
7781
7926
  referencedProjects: "\u5F15\u7528\u9879\u76EE",
@@ -8302,7 +8447,9 @@ var desktop2 = {
8302
8447
  profileSaveFailedFallback: "\u4FDD\u5B58\u5931\u8D25\u3002",
8303
8448
  profileSaveFailedRetry: "\u4FDD\u5B58\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u8FDE\u63A5\u540E\u91CD\u8BD5\u3002",
8304
8449
  personalInfo: "\u4E2A\u4EBA\u4FE1\u606F",
8305
- personalInfoDescription: "\u7BA1\u7406\u5934\u50CF\u3001\u8D26\u53F7\u8D44\u6599\u3001\u4F1A\u8BDD\u671F\u9650\u548C\u5F53\u524D\u8BBE\u5907\u7684\u767B\u5F55\u72B6\u6001\u3002",
8450
+ personalInfoDescription: "\u7BA1\u7406\u8D26\u53F7\u8D44\u6599\uFF0C\u67E5\u770B\u5F53\u524D\u8BBE\u5907\u548C\u4E91\u7AEF\u9879\u76EE\u6982\u89C8\u3002",
8451
+ editAccountProfile: "\u7F16\u8F91\u4E2A\u4EBA\u8D44\u6599",
8452
+ editAccountProfileDescription: "\u66F4\u65B0\u5934\u50CF\u3001\u663E\u793A\u540D\u79F0\u548C\u90AE\u7BB1\u3002",
8306
8453
  avatarAlt: "{{name}} \u5934\u50CF",
8307
8454
  displayNameNotSet: "\u672A\u8BBE\u7F6E\u663E\u793A\u540D\u79F0",
8308
8455
  accountId: "\u8D26\u53F7 ID",
@@ -8316,6 +8463,12 @@ var desktop2 = {
8316
8463
  email: "\u90AE\u7BB1",
8317
8464
  emailPlaceholder: "user@example.com",
8318
8465
  saveChanges: "\u4FDD\u5B58\u4FEE\u6539",
8466
+ projectOverview: "\u9879\u76EE\u6982\u89C8",
8467
+ projectOverviewDescription: "\u6C47\u603B\u5F53\u524D\u8BBE\u5907\u4E2D\u7684\u672C\u5730\u9879\u76EE\u548C\u5F53\u524D\u8D26\u53F7\u53EF\u8BBF\u95EE\u7684\u4E91\u7AEF\u9879\u76EE\u3002",
8468
+ localProjects: "\u672C\u5730\u9879\u76EE",
8469
+ localProjectStatisticsDescription: "\u4FDD\u5B58\u5728\u5F53\u524D\u8BBE\u5907",
8470
+ cloudProjectStatisticsDescription: "\u5F53\u524D\u8D26\u53F7\u53EF\u8BBF\u95EE",
8471
+ projectTypeBreakdown: "\u6309\u9879\u76EE\u7C7B\u578B\u7EDF\u8BA1",
8319
8472
  sessionCredentials: "\u4F1A\u8BDD\u4E0E\u51ED\u8BC1",
8320
8473
  sessionCredentialsDescription: "\u67E5\u770B\u5F53\u524D\u8BBE\u5907\u7684\u767B\u5F55\u51ED\u8BC1\u72B6\u6001\u4E0E\u5230\u671F\u65E5\u3002",
8321
8474
  loginStatus: "\u767B\u5F55\u72B6\u6001",
@@ -8342,7 +8495,9 @@ var desktop2 = {
8342
8495
  builtinProjectsDesktopOnly: "\u5185\u7F6E\u9879\u76EE\u4EC5\u53EF\u5728 Desktop \u4E2D\u5B89\u88C5\u548C\u7BA1\u7406\u3002",
8343
8496
  builtinProjects: "\u5185\u7F6E\u9879\u76EE",
8344
8497
  builtinProjectsDevModeDescription: "\u5F00\u53D1\u6A21\u5F0F\u4F1A\u81EA\u52A8\u52A0\u8F7D\u4ED3\u5E93\u4E2D\u7684\u5185\u7F6E\u9879\u76EE\uFF0C\u6E90\u7801\u4FDD\u5B58\u540E\u76F4\u63A5\u751F\u6548\u3002",
8345
- builtinProjectsInstallDescription: "\u5927\u578B\u8FD0\u884C\u65F6\u6309\u5F53\u524D\u5E73\u53F0\u4E0B\u8F7D\u3001\u6821\u9A8C\u5E76\u539F\u5B50\u5B89\u88C5\uFF0C\u4E0D\u9700\u8981\u672C\u673A Node \u6216 pnpm\u3002",
8498
+ builtinProjectsInstallDescription: "\u5927\u578B\u8FD0\u884C\u65F6\u6309\u5F53\u524D\u5E73\u53F0\u4E0B\u8F7D\u3001\u6821\u9A8C\u5E76\u539F\u5B50\u5B89\u88C5\uFF1B\u4E0B\u8F7D\u53EF\u6682\u505C\u6216\u53D6\u6D88\uFF0C\u4E0D\u9700\u8981\u672C\u673A Node \u6216 pnpm\u3002",
8499
+ refreshBuiltinProjects: "\u68C0\u67E5\u5185\u7F6E\u9879\u76EE\u66F4\u65B0",
8500
+ loadingBuiltinProjects: "\u6B63\u5728\u52A0\u8F7D\u5185\u7F6E\u9879\u76EE",
8346
8501
  listSeparator: "\u3001",
8347
8502
  builtinDependencies: "\u4F9D\u8D56\uFF1A{{dependencies}}",
8348
8503
  removeDependentFirst: "\u8BF7\u5148\u79FB\u9664 {{name}}",
@@ -8351,13 +8506,27 @@ var desktop2 = {
8351
8506
  builtinInstalling: "\u6B63\u5728\u5B89\u88C5",
8352
8507
  builtinUpdate: "\u66F4\u65B0",
8353
8508
  builtinInstall: "\u5B89\u88C5",
8509
+ builtinPauseDownload: "\u6682\u505C",
8510
+ builtinResumeDownload: "\u7EE7\u7EED",
8511
+ builtinCancelDownload: "\u53D6\u6D88\u4E0B\u8F7D",
8512
+ builtinCancellingDownload: "\u6B63\u5728\u53D6\u6D88",
8513
+ builtinDownloadControlFailedDetails: "\u65E0\u6CD5{{action}}\u5185\u7F6E\u9879\u76EE\u4E0B\u8F7D\uFF1A{{detail}}",
8354
8514
  devSourceLoaded: "\u5F00\u53D1\u6E90\u7801 {{version}} \xB7 \u5DF2\u81EA\u52A8\u52A0\u8F7D",
8355
8515
  installedVersion: "\u5DF2\u5B89\u88C5 {{version}}",
8356
8516
  updateAvailable: "\u6709\u66F4\u65B0 {{version}}",
8517
+ updateAvailableFrom: "\u5DF2\u5B89\u88C5 {{installedVersion}} \xB7 \u53EF\u66F4\u65B0\u81F3 {{version}}",
8357
8518
  downloadingStatus: "\u4E0B\u8F7D\u4E2D",
8358
8519
  downloadingStatusProgress: "\u4E0B\u8F7D\u4E2D {{progress}}%",
8520
+ downloadPausedStatus: "\u4E0B\u8F7D\u5DF2\u6682\u505C",
8521
+ downloadPausedStatusProgress: "\u4E0B\u8F7D\u5DF2\u6682\u505C\uFF0C\u5F53\u524D {{progress}}%",
8522
+ builtinDownloadProgressAria: "{{name}} \u4E0B\u8F7D\u8FDB\u5EA6 {{progress}}%",
8523
+ builtinDownloadTransfer: "{{downloaded}} / {{total}}",
8524
+ builtinDownloadSpeed: "{{speed}}/\u79D2",
8525
+ builtinDownloadSpeedPending: "\u6B63\u5728\u8BA1\u7B97\u901F\u5EA6",
8359
8526
  installingStatus: "\u5B89\u88C5\u4E2D",
8360
8527
  installingStatusProgress: "\u5B89\u88C5\u4E2D {{progress}}%",
8528
+ builtinInstallingDescription: "\u6B63\u5728\u6821\u9A8C\u8D44\u6E90\u5E76\u6CE8\u518C\u9879\u76EE",
8529
+ builtinInstallingProgressAria: "\u6B63\u5728\u5B89\u88C5 {{name}}",
8361
8530
  checkingBuiltinUpdates: "\u6B63\u5728\u68C0\u67E5\u66F4\u65B0",
8362
8531
  installedVersionOffline: "\u5DF2\u5B89\u88C5 {{version}}\uFF08\u6682\u65F6\u65E0\u6CD5\u68C0\u67E5\u66F4\u65B0\uFF09",
8363
8532
  installationFailed: "\u5B89\u88C5\u5931\u8D25",
@@ -8517,8 +8686,10 @@ var desktop2 = {
8517
8686
  leaveWorkspaceTitle: "\u79BB\u5F00\u5F53\u524D\u5DE5\u4F5C\u533A\uFF1F",
8518
8687
  loadingLabelFallback: "\u6B63\u5728\u52A0\u8F7D{{label}}",
8519
8688
  openDesktopSettings: "\u6253\u5F00 Desktop \u8BBE\u7F6E",
8520
- projectInfoLocalDescription: "\u7F16\u8F91\u9879\u76EE\u663E\u793A\u540D\u3001\u7C7B\u578B\u548C\u5361\u7247\u56FE\u6807\uFF0C\u4FDD\u5B58\u540E\u4F1A\u5199\u56DE\u672C\u5730 package.json\u3002",
8689
+ projectInfoLocalDescription: "\u7F16\u8F91\u9879\u76EE\u4FE1\u606F\u5E76\u9884\u89C8 README\uFF1B\u4FDD\u5B58\u540E\u5199\u56DE\u672C\u5730 package.json\uFF0C\u5E76\u540C\u6B65\u5DF2\u7ED1\u5B9A\u7684\u4E91\u7AEF\u5E94\u7528\u3002",
8521
8690
  projectInfoTitle: "\u9879\u76EE\u4FE1\u606F",
8691
+ projectReadmeMissing: "\u9879\u76EE\u6839\u76EE\u5F55\u4E2D\u6CA1\u6709 README.md\u3002",
8692
+ projectReadmeTitle: "README \u9884\u89C8",
8522
8693
  projectOpeningDetail: "\u6B63\u5728\u52A0\u8F7D\u9879\u76EE\u6587\u4EF6\u548C\u5DE5\u4F5C\u533A\u72B6\u6001\u3002",
8523
8694
  projectOpeningTitle: "\u6B63\u5728\u6253\u5F00\u9879\u76EE",
8524
8695
  projectWorkspaceAria: "\u9879\u76EE\u5DE5\u4F5C\u533A",
@@ -9316,6 +9487,17 @@ var serverWeb2 = {
9316
9487
  projectListUploaderFallback: "\u672A\u8BB0\u5F55\u4E0A\u4F20\u7528\u6237",
9317
9488
  projectListViewLogs: "\u67E5\u770B\u65E5\u5FD7",
9318
9489
  projectListVisible: "\u663E\u793A {{visible}} / {{total}}",
9490
+ projectDeclarationMultilingual: "\u652F\u6301\u591A\u8BED\u8A00",
9491
+ projectDeclarationMultiplatform: "\u652F\u6301\u591A\u5E73\u53F0",
9492
+ projectExecutionDesktopOnly: "\u4EC5\u672C\u5730\u8FD0\u884C",
9493
+ projectExecutionPreparing: "\u5C1A\u672A\u53D1\u5E03",
9494
+ projectExecutionServerRunnable: "Server \u53EF\u8FD0\u884C",
9495
+ projectExecutionStaticWeb: "\u9759\u6001 Web",
9496
+ projectExecutionTargetUnavailable: "\u5F53\u524D\u6CA1\u6709\u53EF\u4F9B\u8BE5 Server \u5165\u53E3\u4F7F\u7528\u7684\u517C\u5BB9\u5728\u7EBF\u7248\u672C\u3002",
9497
+ projectPlatformAgnostic: "\u5E73\u53F0\u65E0\u5173",
9498
+ projectPlatformMacos: "macOS",
9499
+ projectPlatformWeb: "Web",
9500
+ projectPlatformWindows: "Windows",
9319
9501
  projectSettingsAcceptNewRuns: "\u63A5\u6536\u65B0\u4EFB\u52A1",
9320
9502
  projectSettingsAcceptNewRunsDescription: "\u5173\u95ED\u540E\u4F1A\u6682\u505C\u65B0\u7684\u8FD0\u884C\u5165\u53E3\uFF0C\u4F46\u4E0D\u4F1A\u5220\u9664\u5386\u53F2\u8BB0\u5F55\u3002",
9321
9503
  projectSettingsAccessPolicy: "\u8BBF\u95EE\u7B56\u7565",
@@ -9327,6 +9509,17 @@ var serverWeb2 = {
9327
9509
  projectSettingsBaselineNoLatest: "\u6682\u65E0",
9328
9510
  projectSettingsBaselineUpdatedAt: "\u66F4\u65B0\u65F6\u95F4",
9329
9511
  projectSettingsBaselineWorkflowId: "Workflow ID",
9512
+ projectSettingsDeclarations: "\u9879\u76EE\u58F0\u660E",
9513
+ projectSettingsDefaultName: "\u9ED8\u8BA4\u540D\u79F0",
9514
+ projectSettingsDisplayPlatforms: "\u5C55\u793A\u5E73\u53F0",
9515
+ projectSettingsEnglishName: "\u82F1\u6587\u540D\u79F0",
9516
+ projectSettingsExecutionAvailability: "\u53D1\u884C\u53EF\u7528\u6027",
9517
+ projectSettingsLocalizedNames: "\u672C\u5730\u5316\u540D\u79F0",
9518
+ projectSettingsNoDeclarations: "\u65E0\u58F0\u660E",
9519
+ projectSettingsProjectInfo: "\u9879\u76EE\u4FE1\u606F",
9520
+ projectSettingsProjectInfoDescription: "\u540D\u79F0\u3001\u58F0\u660E\u548C\u5C55\u793A\u5E73\u53F0\u6765\u81EA package.json\uFF0C\u4EC5\u7528\u4E8E\u5C55\u793A\uFF0C\u4E0D\u6821\u9A8C\u5B9E\u9645\u5B9E\u73B0\u3002",
9521
+ projectSettingsUnspecifiedName: "\u672A\u586B\u5199",
9522
+ projectSettingsChineseName: "\u4E2D\u6587\u540D\u79F0",
9330
9523
  projectSettingsConcurrency: "\u5E76\u53D1\u4E0A\u9650",
9331
9524
  projectSettingsConcurrencyControlDescription: "\u4F7F\u7528\u6B65\u8FDB\u6309\u94AE\u5373\u65F6\u4FDD\u5B58\u5E76\u53D1\u5BB9\u91CF\uFF0C\u907F\u514D\u5927\u6279\u91CF\u8BF7\u6C42\u538B\u6EE1\u8FD0\u884C\u961F\u5217\u3002",
9332
9525
  projectSettingsConcurrencyHint: "\u5F53\u524D {{total}} \u4E2A\u8FD0\u884C\u4E2D",
@@ -9906,6 +10099,7 @@ var serverWeb2 = {
9906
10099
  versionsHeaderPublishedAt: "\u53D1\u5E03\u65F6\u95F4",
9907
10100
  versionsHeaderReleaseLog: "\u53D1\u5E03\u65E5\u5FD7",
9908
10101
  versionsHeaderStatus: "\u72B6\u6001",
10102
+ versionsHeaderTargets: "\u53D1\u884C\u76EE\u6807",
9909
10103
  versionsHeaderUploader: "\u4E0A\u4F20\u7528\u6237",
9910
10104
  versionsHeaderVersion: "\u7248\u672C",
9911
10105
  versionsHealthLabelHighRisk: "\u9AD8\u98CE\u9669",
@@ -10036,6 +10230,11 @@ var serverWeb2 = {
10036
10230
  versionsVersionStatusManualOnline: "\u624B\u52A8\u4E0A\u7EBF",
10037
10231
  versionsVersionStatusOnline: "\u5728\u7EBF",
10038
10232
  versionsVersionStatusPreparing: "\u51C6\u5907\u4E2D",
10233
+ versionsTargetMacos: "macOS",
10234
+ versionsTargetServer: "Server",
10235
+ versionsTargetStaticWeb: "\u9759\u6001 Web",
10236
+ versionsTargetWindows: "Windows",
10237
+ versionsTargetNone: "\u65E0\u6267\u884C\u76EE\u6807",
10039
10238
  versionsViewStatsTitle: "\u67E5\u770B\u7248\u672C {{version}} \u7684\u8FD0\u884C\u7EDF\u8BA1",
10040
10239
  webhookAddMapping: "\u6DFB\u52A0\u6620\u5C04",
10041
10240
  webhookBodyFilter: "Body \u8FC7\u6EE4",
@@ -10406,7 +10605,13 @@ var server2 = {
10406
10605
  entrypointResumeLocked: "\u6062\u590D\u7B49\u5F85\u4E2D\u7684 Run \u65F6\u4E0D\u80FD\u66F4\u6539\u5165\u53E3\u3002",
10407
10606
  archiveUnsupportedType: "\u5F52\u6863\u6761\u76EE\u201C{{path}}\u201D\u4F7F\u7528\u4E86\u4E0D\u652F\u6301\u7684\u7C7B\u578B\u201C{{type}}\u201D\uFF0C\u53EA\u5141\u8BB8\u666E\u901A\u6587\u4EF6\u548C\u76EE\u5F55\u3002",
10408
10607
  kanbanDataSourceUnauthorized: "Kanban \u6570\u636E\u6E90\u201C{{sourceId}}\u201D\u672A\u83B7\u5171\u4EAB\u6388\u6743\u3002",
10409
- workflowOwnedByAnotherAccount: "Workflow\u201C{{workflowId}}\u201D\u5DF2\u5B58\u5728\u4E14\u5F52\u5176\u5B83\u8D26\u53F7\u6240\u6709\u3002"
10608
+ workflowOwnedByAnotherAccount: "Workflow\u201C{{workflowId}}\u201D\u5DF2\u5B58\u5728\u4E14\u5F52\u5176\u5B83\u8D26\u53F7\u6240\u6709\u3002",
10609
+ workflowVersionServerDisabled: "Workflow\u201C{{workflowId}}\u201D\u7248\u672C\u201C{{version}}\u201D\u4E0D\u652F\u6301 Server \u6267\u884C\uFF0C\u8BF7\u5728\u53D7\u652F\u6301\u7684 Desktop \u5E73\u53F0\u4E0B\u8F7D\u540E\u8FD0\u884C\u3002",
10610
+ workflowDraftServerDisabled: "Workflow\u201C{{workflowId}}\u201D\u8349\u7A3F\u672A\u542F\u7528 Server \u6267\u884C\u3002",
10611
+ workflowServerLatestUnavailable: "Workflow\u201C{{workflowId}}\u201D\u6CA1\u6709\u53EF\u5728 Server \u6267\u884C\u7684\u5728\u7EBF\u7248\u672C\u3002",
10612
+ workflowDesktopLatestUnavailable: "Workflow\u201C{{workflowId}}\u201D\u6CA1\u6709\u53EF\u4F9B {{platform}} Desktop \u4E0B\u8F7D\u7684\u5728\u7EBF\u7248\u672C\u3002",
10613
+ workflowDesktopVersionUnsupported: "Workflow\u201C{{workflowId}}\u201D\u7248\u672C\u201C{{version}}\u201D\u672A\u53D1\u884C\u5230 {{platform}} Desktop\u3002",
10614
+ workflowRuntimeArtifactUnavailable: "Workflow\u201C{{workflowId}}\u201D\u7248\u672C\u201C{{version}}\u201D\u7F3A\u5C11 Server runtime \u4EA7\u7269\u3002"
10410
10615
  };
10411
10616
 
10412
10617
  // .shared/i18n/resources/zh/cli.ts
@@ -10459,10 +10664,10 @@ var cli2 = {
10459
10664
  " status",
10460
10665
  " health",
10461
10666
  " pack <workflow> [--path <workflow-dir>] [--output <file.tgz>] [--project-group] [--dependency <alias>=<path>]",
10462
- " upload <workflow> [--path <workflow-dir>] [--file <archive>] [--release-log <text>] [--source-mode bundled|source] [--no-wait] [--create] [--project-group] [--publish-group] [--dependency <alias>=<path>] [--grant-data-access <alias>]",
10667
+ " upload <workflow> [--path <workflow-dir>] [--file <archive>] [--release-log <text>] [--source-mode bundled|source] [--server-runtime|--no-server-runtime] [--desktop-platform macos|windows] [--no-wait] [--create] [--project-group] [--publish-group] [--dependency <alias>=<path>] [--grant-data-access <alias>]",
10463
10668
  " preparation <workflow-id> <job-id>",
10464
10669
  " download <workflow> [--target draft|latest|version] [--path <dir>]",
10465
- " publish <workflow> [--release-log <text>] [--source-mode bundled|source] [--project-group] [--dependency <alias>=<path>] [--grant-data-access <alias>]",
10670
+ " publish <workflow> [--release-log <text>] [--source-mode bundled|source] [--server-runtime|--no-server-runtime] [--desktop-platform macos|windows] [--project-group] [--dependency <alias>=<path>] [--grant-data-access <alias>]",
10466
10671
  " publish --deployment <id>",
10467
10672
  " run <workflow> [...args] [--target draft|latest|version] [--entrypoint <id>]",
10468
10673
  " debug-node <workflow> <node> [...args] [--target draft|latest|version] [--entrypoint <id>]",
@@ -10473,7 +10678,9 @@ var cli2 = {
10473
10678
  "",
10474
10679
  "\u9009\u9879\uFF1A",
10475
10680
  " --server <url> \u9ED8\u8BA4\u8BFB\u53D6 WORKFLOW_SERVER_URL\u3001\u5DF2\u4FDD\u5B58\u7684 CLI \u8BA4\u8BC1\u6216 http://localhost:7125",
10476
- " --token <token> \u53EF\u9009\u7684\u624B\u52A8\u8986\u76D6\u503C\uFF0C\u9ED8\u8BA4\u8BFB\u53D6 WORKFLOW_SERVER_ADMIN_KEY \u6216\u5DF2\u4FDD\u5B58\u7684 CLI API key"
10681
+ " --token <token> \u53EF\u9009\u7684\u624B\u52A8\u8986\u76D6\u503C\uFF0C\u9ED8\u8BA4\u8BFB\u53D6 WORKFLOW_SERVER_ADMIN_KEY \u6216\u5DF2\u4FDD\u5B58\u7684 CLI API key",
10682
+ " --server-runtime / --no-server-runtime \u4E3A\u672C\u6B21\u53D1\u884C\u542F\u7528\u6216\u5173\u95ED Server \u6267\u884C",
10683
+ " --desktop-platform <macos|windows> \u589E\u52A0\u53EF\u4E0B\u8F7D\u7684 Desktop \u76EE\u6807\uFF0C\u53EF\u91CD\u590D\u6307\u5B9A"
10477
10684
  ].join("\n"),
10478
10685
  invalidLocale: "\u4E0D\u652F\u6301\u8BED\u8A00 {{value}}\uFF0C\u53EA\u80FD\u4F7F\u7528 zh-CN \u6216 en\u3002",
10479
10686
  duplicateLocale: "--locale \u53EA\u80FD\u6307\u5B9A\u4E00\u6B21\u3002",
@@ -10501,6 +10708,11 @@ var cli2 = {
10501
10708
  invalidBase64Content: 'Workflow \u6587\u4EF6 "{{path}}" \u7684 base64 \u5185\u5BB9\u65E0\u6548\u3002',
10502
10709
  versionOptionUnsupported: "\u4E0D\u518D\u652F\u6301 --version\uFF0C\u53D1\u5E03\u7248\u672C\u7531\u7CFB\u7EDF\u7BA1\u7406\u3002",
10503
10710
  invalidSourceMode: "--source-mode \u53EA\u80FD\u662F bundled \u6216 source\u3002",
10711
+ workspaceDownloadPlatformUnsupported: "workspace download \u4EC5\u652F\u6301 macOS \u548C Windows\uFF0C\u5F53\u524D\u5E73\u53F0\u4E3A {{platform}}\u3002",
10712
+ serverRuntimeOptionsConflict: "--server-runtime \u4E0E --no-server-runtime \u4E0D\u80FD\u540C\u65F6\u4F7F\u7528\u3002",
10713
+ invalidDesktopPlatform: "\u4E0D\u652F\u6301 --desktop-platform {{platform}}\uFF0C\u53EA\u80FD\u4F7F\u7528 macos \u6216 windows\u3002",
10714
+ executionTargetCommandUnsupported: "\u53D1\u884C\u76EE\u6807\u53C2\u6570\u4EC5\u652F\u6301 upload \u548C publish \u547D\u4EE4\u3002",
10715
+ desktopPlatformRequiresSource: "--desktop-platform \u4E0D\u80FD\u4E0E --source-mode bundled \u540C\u65F6\u4F7F\u7528\uFF1BDesktop \u53D1\u884C\u5FC5\u987B\u4FDD\u7559\u6E90\u7801\u3002",
10504
10716
  noWaitReleaseLogConflict: "--no-wait \u4E0D\u80FD\u4E0E --release-log \u540C\u65F6\u4F7F\u7528\uFF0C\u56E0\u4E3A\u53D1\u5E03\u524D\u5FC5\u987B\u5B8C\u6210\u8349\u7A3F\u51C6\u5907\u3002",
10505
10717
  notLoggedIn: "\u5C1A\u672A\u767B\u5F55\u3002\u8BF7\u8FD0\u884C workspace login --server <url>\uFF0C\u6216\u4F20\u5165 --token / WORKFLOW_SERVER_ADMIN_KEY\u3002",
10506
10718
  missingPositional: "\u7F3A\u5C11 {{name}}\u3002",
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  i18n,
4
4
  prepareCliInvocation,
5
5
  translateWorkflowCodeError
6
- } from "./chunk-3ZXXRODP.js";
6
+ } from "./chunk-LZ6SH7S3.js";
7
7
 
8
8
  // src/index.ts
9
9
  import path from "path";
@@ -12,7 +12,7 @@ async function main(argv = process.argv.slice(2)) {
12
12
  const prepared = prepareCliInvocation(argv);
13
13
  argv = prepared.argv;
14
14
  if (argv[0] === "workspace") {
15
- const workspaceCli = await import("./workspace-HHW34WVB.js");
15
+ const workspaceCli = await import("./workspace-L67SKOPW.js");
16
16
  await workspaceCli.main(argv.slice(1), { localeInitialized: true });
17
17
  return typeof process.exitCode === "number" ? process.exitCode : 0;
18
18
  }
@@ -23,7 +23,7 @@ async function main(argv = process.argv.slice(2)) {
23
23
  }
24
24
  const { register } = await import("tsx/esm/api");
25
25
  register();
26
- const localCli = await import("./local-K4KPED46.js");
26
+ const localCli = await import("./local-MPY5EGDA.js");
27
27
  return localCli.main(argv, { localeInitialized: true });
28
28
  }
29
29
  function formatHelp() {
@@ -3,7 +3,7 @@ import {
3
3
  i18n,
4
4
  prepareCliInvocation,
5
5
  translateWorkflowCodeError
6
- } from "./chunk-3ZXXRODP.js";
6
+ } from "./chunk-LZ6SH7S3.js";
7
7
 
8
8
  // src/local.ts
9
9
  import path from "path";
@@ -6,7 +6,7 @@ import {
6
6
  i18n,
7
7
  prepareCliInvocation,
8
8
  translateWorkflowCodeError
9
- } from "./chunk-3ZXXRODP.js";
9
+ } from "./chunk-LZ6SH7S3.js";
10
10
 
11
11
  // node_modules/.pnpm/ignore@7.0.6/node_modules/ignore/index.js
12
12
  var require_ignore = __commonJS({
@@ -587,6 +587,50 @@ function isWorkflowUuid(value) {
587
587
  return WORKFLOW_UUID_PATTERN.test(value.trim());
588
588
  }
589
589
 
590
+ // .shared/project-types/index.ts
591
+ var WORKFLOW_PROJECT_TYPE_DEFINITIONS = [
592
+ {
593
+ id: "workflow",
594
+ label: "Workflow",
595
+ labelKey: "projectTypeWorkflow",
596
+ defaultIcon: "workflow",
597
+ defaultIconBackgroundColor: "#2563eb",
598
+ hasExecutor: true
599
+ },
600
+ {
601
+ id: "conversation",
602
+ label: "Conversation",
603
+ labelKey: "projectTypeConversation",
604
+ defaultIcon: "message-circle",
605
+ defaultIconBackgroundColor: "#0f766e",
606
+ hasExecutor: true
607
+ },
608
+ {
609
+ id: "kanban",
610
+ label: "Kanban",
611
+ labelKey: "projectTypeKanban",
612
+ defaultIcon: "boxes",
613
+ defaultIconBackgroundColor: "#b45309",
614
+ hasExecutor: false
615
+ }
616
+ ];
617
+ var WORKFLOW_PROJECT_TYPES = WORKFLOW_PROJECT_TYPE_DEFINITIONS.map((definition) => definition.id);
618
+ var WORKFLOW_EXECUTOR_PROJECT_TYPES = WORKFLOW_PROJECT_TYPE_DEFINITIONS.filter((definition) => definition.hasExecutor).map((definition) => definition.id);
619
+ var WORKFLOW_PROJECT_TYPE_DEFINITIONS_BY_ID = Object.fromEntries(
620
+ WORKFLOW_PROJECT_TYPE_DEFINITIONS.map((definition) => [definition.id, definition])
621
+ );
622
+
623
+ // .shared/execution-targets/index.ts
624
+ var WORKFLOW_DESKTOP_EXECUTION_PLATFORMS = ["macos", "windows"];
625
+ function isWorkflowDesktopExecutionPlatform(value) {
626
+ return typeof value === "string" && WORKFLOW_DESKTOP_EXECUTION_PLATFORMS.includes(value);
627
+ }
628
+ function mapNodePlatformToWorkflowDesktopPlatform(platform) {
629
+ if (platform === "darwin") return "macos";
630
+ if (platform === "win32") return "windows";
631
+ return void 0;
632
+ }
633
+
590
634
  // .shared/project-upload/node.ts
591
635
  import { copyFile, lstat, mkdir, readFile, readdir } from "fs/promises";
592
636
  import path2 from "path";
@@ -1167,11 +1211,13 @@ async function commandUpload(parsed) {
1167
1211
  throw new Error(i18n.t("workflowIdRequired", { ns: "cli" }));
1168
1212
  }
1169
1213
  const archivePath = parsed.options.file ? path4.resolve(parsed.options.file) : await packWorkflow(workflowArg, parsed.options.output, parsed.options.path);
1214
+ const executionTargets = resolveRequestedExecutionTargets(parsed.options, packageContext.projectType);
1170
1215
  const uploadResult = await uploadPackage({
1171
1216
  workflowId,
1172
1217
  archivePath,
1173
1218
  server: parsed.options.server,
1174
- token: parsed.options.token
1219
+ token: parsed.options.token,
1220
+ executionTargets
1175
1221
  });
1176
1222
  if (uploadResult.errCode !== 0 || uploadResult.data === void 0) {
1177
1223
  printApiResponse(uploadResult);
@@ -1201,7 +1247,8 @@ async function commandUpload(parsed) {
1201
1247
  method: "POST",
1202
1248
  body: {
1203
1249
  releaseLog: parsed.options.releaseLog,
1204
- sourceMode: parsed.options.sourceMode ?? "bundled"
1250
+ sourceMode: resolveRequestedSourceMode(parsed.options, executionTargets),
1251
+ executionTargets
1205
1252
  }
1206
1253
  });
1207
1254
  printApiResponse(publishResult);
@@ -1265,7 +1312,8 @@ async function commandProjectGroupUpload(parsed, workflowArg, forcePublish = fal
1265
1312
  deploymentId: planned.data.id,
1266
1313
  archivePath: packed.archivePath,
1267
1314
  server: parsed.options.server,
1268
- token: parsed.options.token
1315
+ token: parsed.options.token,
1316
+ executionTargets: resolveRequestedExecutionTargets(parsed.options, rootContext.projectType)
1269
1317
  });
1270
1318
  if (prepared.errCode !== 0 || prepared.data === void 0) {
1271
1319
  printApiResponse(prepared);
@@ -1369,11 +1417,18 @@ async function commandDownload(parsed) {
1369
1417
  const workflowArg = requirePositional(parsed, 0, "workflow");
1370
1418
  const workflowId = await resolveRemoteWorkflowId(parsed);
1371
1419
  const target = parsed.options.target ?? "latest";
1420
+ const platform = mapNodePlatformToWorkflowDesktopPlatform(process.platform);
1421
+ if (platform === void 0) {
1422
+ throw new Error(i18n.t("workspaceDownloadPlatformUnsupported", {
1423
+ ns: "cli",
1424
+ platform: process.platform
1425
+ }));
1426
+ }
1372
1427
  if (target !== "draft") {
1373
1428
  const result2 = await fetchApi({
1374
1429
  server: parsed.options.server,
1375
1430
  token: parsed.options.token,
1376
- path: `/api/workflows/${encodeURIComponent(workflowId)}/project-group-download?target=${encodeURIComponent(target)}`
1431
+ path: `/api/workflows/${encodeURIComponent(workflowId)}/project-group-download?target=${encodeURIComponent(target)}&platform=${platform}`
1377
1432
  });
1378
1433
  assertApiOk(result2);
1379
1434
  if (result2.errCode !== 0 || result2.data === void 0) {
@@ -1438,6 +1493,12 @@ async function commandPublish(parsed) {
1438
1493
  return;
1439
1494
  }
1440
1495
  const workflowId = await resolveRemoteWorkflowId(parsed);
1496
+ const projectType = parsed.options.serverRuntime === void 0 && parsed.options.desktopPlatforms.length > 0 ? await readRemoteWorkflowProjectType({
1497
+ workflowId,
1498
+ server: parsed.options.server,
1499
+ token: parsed.options.token
1500
+ }) : void 0;
1501
+ const executionTargets = resolveRequestedExecutionTargets(parsed.options, projectType);
1441
1502
  const publishResult = await fetchApi({
1442
1503
  server: parsed.options.server,
1443
1504
  token: parsed.options.token,
@@ -1445,12 +1506,22 @@ async function commandPublish(parsed) {
1445
1506
  method: "POST",
1446
1507
  body: {
1447
1508
  releaseLog: parsed.options.releaseLog,
1448
- sourceMode: parsed.options.sourceMode ?? "bundled"
1509
+ sourceMode: resolveRequestedSourceMode(parsed.options, executionTargets),
1510
+ executionTargets
1449
1511
  }
1450
1512
  });
1451
1513
  printApiResponse(publishResult);
1452
1514
  assertApiOk(publishResult);
1453
1515
  }
1516
+ async function readRemoteWorkflowProjectType(options) {
1517
+ const response = await fetchApi({
1518
+ server: options.server,
1519
+ token: options.token,
1520
+ path: "/api/workflows"
1521
+ });
1522
+ assertApiOk(response);
1523
+ return response.data?.find((workflow) => workflow.id === options.workflowId)?.projectType;
1524
+ }
1454
1525
  async function materializeProjectGroupDownload(download, rootTargetDir) {
1455
1526
  if (!isWorkflowUuid(download.rootProjectId)) {
1456
1527
  throw new Error(i18n.t("projectGroupDownloadInvalidRootId", { ns: "cli" }));
@@ -1895,8 +1966,15 @@ async function packProjectGroup(options) {
1895
1966
  async function uploadProjectGroupPackage(options) {
1896
1967
  const archiveBuffer = await readFile3(options.archivePath);
1897
1968
  const archiveName = path4.basename(options.archivePath);
1969
+ const query = new URLSearchParams({ fileName: archiveName });
1970
+ if (options.executionTargets !== void 0) {
1971
+ query.set("serverRuntime", String(options.executionTargets.server));
1972
+ for (const platform of options.executionTargets.desktop) {
1973
+ query.append("desktopPlatform", platform);
1974
+ }
1975
+ }
1898
1976
  const response = await fetch(
1899
- `${trimTrailingSlash(options.server)}/api/deployments/${encodeURIComponent(options.deploymentId)}/package?fileName=${encodeURIComponent(archiveName)}`,
1977
+ `${trimTrailingSlash(options.server)}/api/deployments/${encodeURIComponent(options.deploymentId)}/package?${query.toString()}`,
1900
1978
  {
1901
1979
  method: "POST",
1902
1980
  headers: {
@@ -1998,8 +2076,15 @@ async function writeWorkflowPackageId(packageJsonPath, workflowId) {
1998
2076
  async function uploadPackage(options) {
1999
2077
  const archiveBuffer = await readFile3(options.archivePath);
2000
2078
  const archiveName = path4.basename(options.archivePath);
2079
+ const query = new URLSearchParams({ fileName: archiveName });
2080
+ if (options.executionTargets !== void 0) {
2081
+ query.set("serverRuntime", String(options.executionTargets.server));
2082
+ for (const platform of options.executionTargets.desktop) {
2083
+ query.append("desktopPlatform", platform);
2084
+ }
2085
+ }
2001
2086
  const response = await fetch(
2002
- `${trimTrailingSlash(options.server)}/api/workflows/${encodeURIComponent(options.workflowId)}/package?fileName=${encodeURIComponent(archiveName)}`,
2087
+ `${trimTrailingSlash(options.server)}/api/workflows/${encodeURIComponent(options.workflowId)}/package?${query.toString()}`,
2003
2088
  {
2004
2089
  method: "POST",
2005
2090
  headers: {
@@ -2204,7 +2289,8 @@ function parseArgs(argv) {
2204
2289
  server: process.env.WORKFLOW_SERVER_URL ?? authConfig.serverUrl ?? DEFAULT_SERVER_URL,
2205
2290
  token: process.env.WORKFLOW_SERVER_ADMIN_KEY ?? authConfig.apiKey ?? "",
2206
2291
  dependencies: [],
2207
- dataGrants: []
2292
+ dataGrants: [],
2293
+ desktopPlatforms: []
2208
2294
  };
2209
2295
  for (let index = 0; index < rest.length; index += 1) {
2210
2296
  const arg = rest[index];
@@ -2245,6 +2331,26 @@ function parseArgs(argv) {
2245
2331
  case "--no-wait":
2246
2332
  options.noWait = true;
2247
2333
  break;
2334
+ case "--server-runtime":
2335
+ if (options.serverRuntime === false) {
2336
+ throw new Error(i18n.t("serverRuntimeOptionsConflict", { ns: "cli" }));
2337
+ }
2338
+ options.serverRuntime = true;
2339
+ break;
2340
+ case "--no-server-runtime":
2341
+ if (options.serverRuntime === true) {
2342
+ throw new Error(i18n.t("serverRuntimeOptionsConflict", { ns: "cli" }));
2343
+ }
2344
+ options.serverRuntime = false;
2345
+ break;
2346
+ case "--desktop-platform": {
2347
+ const value = requireValue(rest, index += 1, "--desktop-platform");
2348
+ if (!isWorkflowDesktopExecutionPlatform(value)) {
2349
+ throw new Error(i18n.t("invalidDesktopPlatform", { ns: "cli", platform: value }));
2350
+ }
2351
+ if (!options.desktopPlatforms.includes(value)) options.desktopPlatforms.push(value);
2352
+ break;
2353
+ }
2248
2354
  case "--dependency":
2249
2355
  options.dependencies.push(requireValue(rest, index += 1, "--dependency"));
2250
2356
  break;
@@ -2297,7 +2403,14 @@ function parseArgs(argv) {
2297
2403
  if (options.projectGroup === true && command !== "pack" && command !== "upload" && command !== "publish") {
2298
2404
  throw new Error(i18n.t("projectGroupCommandUnsupported", { ns: "cli" }));
2299
2405
  }
2300
- if (options.deployment !== void 0 && (options.projectGroup === true || options.dependencies.length > 0 || options.dataGrants.length > 0 || options.path !== void 0 || options.file !== void 0 || options.output !== void 0 || options.create === true || options.releaseLog !== void 0 || options.sourceMode !== void 0)) {
2406
+ const hasExecutionTargetOptions = options.serverRuntime !== void 0 || options.desktopPlatforms.length > 0;
2407
+ if (hasExecutionTargetOptions && command !== "upload" && command !== "publish") {
2408
+ throw new Error(i18n.t("executionTargetCommandUnsupported", { ns: "cli" }));
2409
+ }
2410
+ if (options.sourceMode === "bundled" && options.desktopPlatforms.length > 0) {
2411
+ throw new Error(i18n.t("desktopPlatformRequiresSource", { ns: "cli" }));
2412
+ }
2413
+ if (options.deployment !== void 0 && (options.projectGroup === true || options.dependencies.length > 0 || options.dataGrants.length > 0 || options.path !== void 0 || options.file !== void 0 || options.output !== void 0 || options.create === true || options.releaseLog !== void 0 || options.sourceMode !== void 0 || hasExecutionTargetOptions)) {
2301
2414
  throw new Error(i18n.t("deploymentOptionsConflict", { ns: "cli" }));
2302
2415
  }
2303
2416
  return {
@@ -2306,6 +2419,16 @@ function parseArgs(argv) {
2306
2419
  options
2307
2420
  };
2308
2421
  }
2422
+ function resolveRequestedExecutionTargets(options, projectType) {
2423
+ if (options.serverRuntime === void 0 && options.desktopPlatforms.length === 0) return void 0;
2424
+ return {
2425
+ server: options.serverRuntime ?? projectType !== "kanban",
2426
+ desktop: [...options.desktopPlatforms]
2427
+ };
2428
+ }
2429
+ function resolveRequestedSourceMode(options, executionTargets) {
2430
+ return (executionTargets?.desktop.length ?? 0) > 0 ? "source" : options.sourceMode;
2431
+ }
2309
2432
  function requireLogin(parsed) {
2310
2433
  if (parsed.options.server.trim() === "" || parsed.options.token.trim() === "") {
2311
2434
  throw new Error(i18n.t("notLoggedIn", { ns: "cli" }));
@@ -2477,6 +2600,7 @@ export {
2477
2600
  resolveExplicitDataGrants,
2478
2601
  resolveRemoteWorkflowId,
2479
2602
  resolveRepoRoot,
2603
+ resolveRequestedExecutionTargets,
2480
2604
  shouldUseProjectGroupUpload,
2481
2605
  stageWorkflowWithLocalDependencies,
2482
2606
  waitForDeviceToken,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@workflow-code/cli",
3
- "version": "0.1.4-20260816001",
3
+ "version": "0.1.4-20260821001",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "workflow-code": "./dist/index.js"
@@ -18,7 +18,7 @@
18
18
  "tsx": "^4.21.0"
19
19
  },
20
20
  "peerDependencies": {
21
- "workflow-code": "0.1.4-20260816002"
21
+ "workflow-code": "0.1.4-20260821001"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@types/node": "^25.6.0",
@@ -27,11 +27,12 @@
27
27
  "tsup": "^8.5.1",
28
28
  "typescript": "^6.0.3",
29
29
  "vitest": "^4.1.7",
30
- "workflow-code": "0.1.4-20260816002",
31
- "@workflow-code/i18n": "0.1.0",
30
+ "workflow-code": "0.1.4-20260821001",
32
31
  "@workflow-code/auth-config": "0.1.0",
33
- "@workflow-code/workflow-ids": "0.1.0",
34
- "@workflow-code/project-upload": "0.1.0"
32
+ "@workflow-code/execution-targets": "0.1.0",
33
+ "@workflow-code/i18n": "0.1.0",
34
+ "@workflow-code/project-upload": "0.1.0",
35
+ "@workflow-code/workflow-ids": "0.1.0"
35
36
  },
36
37
  "scripts": {
37
38
  "bootstrap": "node scripts/bootstrap.mjs",