@workflow-code/cli 0.2.4-20260922002 → 0.2.4-20260929001

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.
@@ -4,7 +4,7 @@ import {
4
4
  initI18n,
5
5
  isSupportedLocale,
6
6
  normalizeLocale
7
- } from "./chunk-BBQ4K7IP.js";
7
+ } from "./chunk-SGW3CIWG.js";
8
8
 
9
9
  // src/locale.ts
10
10
  import { WORKFLOW_RUNTIME_LOCALE_ENV } from "workflow-code";
@@ -2564,7 +2564,7 @@ var common = {
2564
2564
  deleteConfigurationWarning: "This removes the saved parameter values for this configuration and cannot be undone.",
2565
2565
  deleteConfiguration: "Delete configuration",
2566
2566
  knowledgeLoadFailedFallback: "Failed to load knowledge base documents.",
2567
- knowledgeLoadMoreFailed: "Failed to load more knowledge base documents.",
2567
+ knowledgeLoadPageFailed: "Failed to load that page of knowledge base documents.",
2568
2568
  knowledgeSearchFailed: "Failed to search knowledge base documents.",
2569
2569
  knowledgeSearchLoadMoreFailed: "Failed to load more search results.",
2570
2570
  knowledgeOperationFailed: "Knowledge base operation failed.",
@@ -2575,6 +2575,8 @@ var common = {
2575
2575
  loadingDocument: "Loading document",
2576
2576
  selectOrNewDocument: "Select or create a document",
2577
2577
  viewKnowledgeBaseInfo: "View knowledge base info",
2578
+ refreshKnowledgeBase: "Refresh knowledge base",
2579
+ refreshingKnowledgeBase: "Refreshing knowledge base",
2578
2580
  edit: "Edit",
2579
2581
  preview: "Preview",
2580
2582
  newDocument: "New document",
@@ -2596,14 +2598,16 @@ var common = {
2596
2598
  knowledgeBaseInfo: "Knowledge base info",
2597
2599
  knowledgeBaseInfoDescription: "The current project's knowledge base documents are isolated from other projects.",
2598
2600
  knowledgeDocumentList: "Knowledge base document list",
2601
+ knowledgeDocuments: "Knowledge documents",
2599
2602
  loadingKnowledgeBase: "Loading knowledge base",
2600
2603
  knowledgeLoadFailed: "Failed to load knowledge base documents",
2601
2604
  noDocuments: "No documents yet",
2602
2605
  noDocumentsDescription: "Your first Markdown document will appear here.",
2603
- loadingMoreDocuments: "Loading more documents",
2604
- scrollForMoreDocuments: "Scroll down to load more documents",
2605
- loadedCount: "Loaded {{count}} / {{total}}",
2606
- allDocumentsLoaded: "All {{count}} documents loaded",
2606
+ knowledgeDocumentPagination: "Knowledge base document pages",
2607
+ knowledgeDocumentActions: "Document actions",
2608
+ previousPage: "Previous",
2609
+ nextPage: "Next",
2610
+ pageIndicator: "Page {{current}} of {{total}}",
2607
2611
  searchResults: "Search results",
2608
2612
  noSearchMatches: "No matches",
2609
2613
  searchedDocumentsCount: "Searched {{count}} documents.",
@@ -3292,7 +3296,7 @@ var desktop = {
3292
3296
  homeProjectGraphZoomIn: "Zoom in",
3293
3297
  homeProjectGraphZoomOut: "Zoom out",
3294
3298
  homeProjectGraphFitView: "Fit graph to view",
3295
- desktopCloudRunRecordsLabel: "Desktop cloud run records",
3299
+ desktopCloudRunRecordsLabel: "Cloud run records",
3296
3300
  desktopStatus: "Desktop status",
3297
3301
  archiveImportedAs: "{{archiveName}} imported as {{workflowName}}",
3298
3302
  assistantTaskOwner: "Assistant \xB7 {{name}}",
@@ -3389,7 +3393,7 @@ var desktop = {
3389
3393
  loginToCreateCloudApp: "Sign in to create a cloud app",
3390
3394
  loginToViewCloudProjects: "Sign in to view cloud projects",
3391
3395
  loginToViewCloudProjectsDescription: "Sign in to view the server projects accessible to your account.",
3392
- loginToViewCloudRunRecords: "Sign in to view cloud records run through Desktop.",
3396
+ loginToViewCloudRunRecords: "Sign in to view cloud run records.",
3393
3397
  modeLocal: "Local",
3394
3398
  modeRemote: "Remote",
3395
3399
  modeWeb: "Web",
@@ -3400,7 +3404,7 @@ var desktop = {
3400
3404
  nextPage: "Next page",
3401
3405
  noCloudProjects: "No cloud projects yet",
3402
3406
  noCloudProjectsDescription: "The current account has no accessible cloud projects yet.",
3403
- noCloudRunRecords: "No cloud records run through Desktop yet.",
3407
+ noCloudRunRecords: "No cloud run records yet.",
3404
3408
  noLocalProjects: "No local projects yet",
3405
3409
  noLocalProjectsDescription: "Create a new project or import a local folder.",
3406
3410
  noLocalRunRecords: "No local run records yet. They will appear here after you run a workflow.",
@@ -3524,8 +3528,11 @@ var desktop = {
3524
3528
  save: "Save",
3525
3529
  saveLocalCodeTitle: "Save local code",
3526
3530
  saving: "Saving",
3531
+ searchKnowledgeDocuments: "Search knowledge documents",
3527
3532
  searchProject: "Search projects",
3528
3533
  searchProjectPlaceholder: "Search project name or ID",
3534
+ searchRecentTasks: "Search recent tasks",
3535
+ searchRecentTasksPlaceholder: "Search task names or projects",
3529
3536
  searchWorkspace: "Search workspaces",
3530
3537
  searchWorkspacePlaceholder: "Search workspace name or path",
3531
3538
  searchServerVersionPlaceholder: "Search server versions...",
@@ -3553,6 +3560,7 @@ var desktop = {
3553
3560
  cloneProjectDescription: `Copies the source of "{{name}}" and lets you set the copy's name and an optional location.`,
3554
3561
  cloningProject: "Cloning...",
3555
3562
  close: "Close",
3563
+ closeRailSearch: "Close search",
3556
3564
  cloudAppCreated: "Cloud app created",
3557
3565
  cloudAppNotCreated: "No cloud app created yet",
3558
3566
  cloudAppUploadsMetadataOnly: "Only the name, type and card info are uploaded, never the project source.",
@@ -3751,8 +3759,6 @@ var desktop = {
3751
3759
  releaseExecutionTargetsDescription: "Choose Server execution and local execution on this device for the immutable version.",
3752
3760
  serverCloudExecution: "Server cloud execution",
3753
3761
  serverCloudExecutionDescription: "Prepare a Server runtime for runs, Webhook, and schedules.",
3754
- webExecution: "Web execution",
3755
- webExecutionDescription: "Mark this version as loadable from the Web entry point and launchable to the Web. Web runs are hosted by Desktop, which must be online.",
3756
3762
  kanbanServerExecutionDisabled: "Kanban is statically hosted and does not use the Server executor.",
3757
3763
  desktopTargetMacos: "macOS local execution",
3758
3764
  desktopTargetWindows: "Windows local execution",
@@ -3871,6 +3877,7 @@ var desktop = {
3871
3877
  hideConversationList: "Hide conversation list",
3872
3878
  hideDiagnostic: "Hide {{label}}",
3873
3879
  hideFileList: "Hide file list",
3880
+ hideKnowledgeRail: "Hide knowledge list",
3874
3881
  hideTaskList: "Hide task list",
3875
3882
  hideWorkflow: "Hide workflow",
3876
3883
  historyRunResult: "History run result",
@@ -3962,6 +3969,7 @@ var desktop = {
3962
3969
  selectProjectLoadFile: "Select a workspace and load files",
3963
3970
  showConversationHistory: "Show conversation history",
3964
3971
  showDiagnostic: "Show {{label}}",
3972
+ showKnowledgeRail: "Show knowledge list",
3965
3973
  showRunHistory: "Show run history",
3966
3974
  summaryColumn: "Summary",
3967
3975
  terminal: "Terminal",
@@ -4531,19 +4539,6 @@ var desktop = {
4531
4539
  localProjectAccessRiskSchedules: "Local schedules keep firing in the background once configured.",
4532
4540
  localProjectsDisabledScopeHint: "Local projects are turned off. Enable them in Settings to show them here.",
4533
4541
  localProjectsGateRunRefused: 'Local project "{{projectName}}" cannot run while local projects are disabled in Settings.',
4534
- runToWebTitle: "Run {{projectName}} on the Web",
4535
- runToWebMenuItem: "Run on the Web",
4536
- runToWebDescription: "Desktop hosts this run and serves the page. Keep Desktop running while the browser is using it.",
4537
- runToWebStarting: "Preparing the Web session\u2026",
4538
- runToWebPublicLinkHint: "Open this link in any browser. Anyone who has it can watch this run until the session ends.",
4539
- runToWebRelayPending: "Desktop is not connected to the relay yet, so this link will not open for anyone else. It keeps trying in the background.",
4540
- runToWebRelayIdentity: "Relay identity",
4541
- runToWebLinkHint: "Open this link in a browser on this machine. It carries a single-use token and stops working once used.",
4542
- runToWebOpen: "Open in browser",
4543
- runToWebCopy: "Copy link",
4544
- runToWebUnavailable: "The Desktop Web session could not be started.",
4545
- runToWebLocalProjectsDisabled: "Local projects are turned off",
4546
- runToWebLocalProjectsDisabledHint: "Turn local projects on in Settings before launching one to the Web.",
4547
4542
  desktopUpdate: "Desktop update",
4548
4543
  desktopVersionLine: "Workflow Code Desktop {{version}}",
4549
4544
  availableVersionLabel: "Version {{version}}",
@@ -4834,12 +4829,144 @@ var serverWeb = {
4834
4829
  accountThemeLightDescription: "Best for daytime browsing and bright-background workflows.",
4835
4830
  accountThemeSystem: "Follow system",
4836
4831
  accountThemeSystemDescription: "Automatically matches the system light or dark preference.",
4832
+ adminTabAiModels: "AI model attributes",
4837
4833
  adminTabAudit: "Audit log",
4838
4834
  adminTabRunner: "Runner",
4839
4835
  adminTabRoles: "Role management",
4840
4836
  adminTabSub2ApiSubscriptions: "Subscription config",
4841
4837
  adminTabSub2ApiUserSubscriptions: "User subscriptions",
4842
4838
  adminTabUsers: "User management",
4839
+ aiModelAddModel: "Add model manually",
4840
+ aiModelBindingAuto: "Auto match",
4841
+ aiModelBindingCatalog: "Manual binding",
4842
+ aiModelBindingCatalogValue: "{{providerId}} / {{modelId}}",
4843
+ aiModelBindingDescription: "Auto match looks the model id up in the catalogue; manual binding pins one catalogue entry; unbound ignores the catalogue entirely.",
4844
+ aiModelBindingLabel: "Catalogue binding",
4845
+ aiModelBindingPickerClear: "Clear binding",
4846
+ aiModelBindingPickerDescription: "Search the synced pi.dev catalogue and pick the entry this model should use.",
4847
+ aiModelBindingPickerEmptyDescription: "Try another keyword or provider, or sync the catalogue first.",
4848
+ aiModelBindingPickerEmptyTitle: "No matching catalogue entries",
4849
+ aiModelBindingPickerErrorTitle: "Failed to load the catalogue",
4850
+ aiModelBindingPickerLoading: "Loading catalogue entries",
4851
+ aiModelBindingPickerPaginationLabel: "Catalogue entry pagination",
4852
+ aiModelBindingPickerRetry: "Load again",
4853
+ aiModelBindingPickerSearch: "Search",
4854
+ aiModelBindingPickerSearchPlaceholder: "Search model id or name",
4855
+ aiModelBindingPickerSelected: "Selected",
4856
+ aiModelBindingPickerSet: "Select",
4857
+ aiModelBindingPickerTitle: "Pick a catalogue entry",
4858
+ aiModelBindingPickerTrigger: "Pick catalogue entry",
4859
+ aiModelBindingRequired: "Pick a catalogue entry, or switch the binding mode.",
4860
+ aiModelBindingUnbound: "Unbound",
4861
+ aiModelCapabilitiesDescription: "Each capability is inherit, yes or no. Inherit keeps looking further down the precedence order.",
4862
+ aiModelCapabilitiesLabel: "Capabilities",
4863
+ aiModelCapabilityUndeclared: "Not declared",
4864
+ aiModelCapabilityReasoning: "Reasoning",
4865
+ aiModelCapabilityToolCalling: "Tool calling",
4866
+ aiModelCapabilityVision: "Vision",
4867
+ aiModelCapabilityWebSearch: "Web search",
4868
+ aiModelCatalogMatchesWarning: "{{matches}} catalogue entries share this model id; an id-only match picks one deterministically.",
4869
+ aiModelCatalogMatchesShort: "\xD7{{matches}} names",
4870
+ aiModelClearFilters: "Clear filters",
4871
+ aiModelContextWindowLabel: "Context window",
4872
+ aiModelCostCacheRead: "Cache read",
4873
+ aiModelCostCacheWrite: "Cache write",
4874
+ aiModelCostDescription: "Per million tokens. Saved only when all four fields are filled; leaving them empty inherits.",
4875
+ aiModelCostIncomplete: "Fill all four prices, or none of them.",
4876
+ aiModelCostInput: "Input",
4877
+ aiModelCostLabel: "Price (per million tokens)",
4878
+ aiModelCostOutput: "Output",
4879
+ aiModelDescription: "Attributes resolve in the order manual override \u2192 catalogue entry (auto matched or manually bound) \u2192 Cherry Studio registry \u2192 nothing. Every field left empty keeps inheriting.",
4880
+ aiModelDialogCreateDescription: "Saving writes a new manual override.",
4881
+ aiModelDialogCreateTitle: "Add model attributes",
4882
+ aiModelDialogDescription: "Saving writes a manual override for {{modelId}}.",
4883
+ aiModelDialogEditTitle: "Edit model attributes",
4884
+ aiModelDialogLegendSr: "Edit the manual override of a model",
4885
+ aiModelDisplayNameDescription: "Leave empty to use the catalogue or registry name.",
4886
+ aiModelDisplayNameLabel: "Display name",
4887
+ aiModelDisplayNamePlaceholder: "e.g. GPT-5.6 Terra",
4888
+ aiModelEditLabel: "Edit {{id}}",
4889
+ aiModelEmptyDescription: "No model is in use yet. Add one manually to pre-configure a model nothing exposes yet.",
4890
+ aiModelEmptyErrorDescription: "Check the Server AI model catalogue config and try again.",
4891
+ aiModelEmptyErrorTitle: "Failed to fetch model attributes",
4892
+ aiModelEmptyRetry: "Fetch again",
4893
+ aiModelEmptyTitle: "No models yet",
4894
+ aiModelErrorTitle: "Unable to fetch AI model attributes",
4895
+ aiModelFooter: "{{overrides}} models carry a manual override. Everything else falls back to the catalogue or the Cherry Studio registry.",
4896
+ aiModelHeaderActions: "Actions",
4897
+ aiModelHeaderBinding: "Catalogue binding",
4898
+ aiModelHeaderCapabilities: "Capabilities",
4899
+ aiModelHeaderContextWindow: "Context window",
4900
+ aiModelHeaderMaxTokens: "Max output",
4901
+ aiModelHeaderModelId: "Model ID",
4902
+ aiModelHeaderName: "Name",
4903
+ aiModelHeaderProvider: "Provider",
4904
+ aiModelHeaderSource: "Source",
4905
+ aiModelHeaderUpdatedAt: "Updated",
4906
+ aiModelInputDescription: "Which modalities this model accepts. Leaving both unchecked inherits.",
4907
+ aiModelInputImage: "Image",
4908
+ aiModelInputLabel: "Input modalities",
4909
+ aiModelInputText: "Text",
4910
+ aiModelLegendSr: "Select the AI model attribute catalogue",
4911
+ aiModelMaxTokensLabel: "Max output tokens",
4912
+ aiModelModelIdDescription: "The model id upstream actually returns. It cannot change once the row exists.",
4913
+ aiModelModelIdLabel: "Model ID",
4914
+ aiModelModelIdRequired: "Enter a model ID.",
4915
+ aiModelNoMatchDescription: "Try another keyword or clear the source filter.",
4916
+ aiModelNoMatchTitle: "No matching models",
4917
+ aiModelPaginationLabel: "AI model attribute pagination",
4918
+ aiModelPanelAria: "AI model attribute catalogue",
4919
+ aiModelPrecedence: "Precedence: manual override \u2192 catalogue entry \u2192 Cherry Studio registry \u2192 nothing.",
4920
+ aiModelRawApply: "Apply JSON",
4921
+ aiModelRawDescription: "This textarea edits the same override object as the fields above. Applying validates the keys and types first.",
4922
+ aiModelRawParseError: "Invalid JSON: {{message}}",
4923
+ aiModelRawShapeError: "The override must be a JSON object.",
4924
+ aiModelRawToggle: "Raw JSON override",
4925
+ aiModelRawUnknownKey: "Unsupported attribute: {{key}}",
4926
+ aiModelRawValueInvalid: "Unsupported value for {{key}}.",
4927
+ aiModelResetAction: "Delete override (restore catalogue)",
4928
+ aiModelResetConfirmDescription: "Deleting the override makes {{modelId}} fall back to the catalogue or registry values.",
4929
+ aiModelResetConfirmLabel: "Delete override",
4930
+ aiModelResetConfirmTitle: "Delete model override",
4931
+ aiModelResetToast: "Override deleted",
4932
+ aiModelSavedToast: "Model attributes saved",
4933
+ aiModelSearchPlaceholder: "Search model id",
4934
+ aiModelSourceAll: "All sources",
4935
+ aiModelSourceCatalog: "Catalogue",
4936
+ aiModelSourceFilterAria: "Source filter",
4937
+ aiModelSourceNone: "Not found",
4938
+ aiModelSourceOverride: "Manual override",
4939
+ aiModelSourceRegistry: "Cherry Studio registry",
4940
+ aiModelSyncButton: "Sync from pi.dev",
4941
+ aiModelSyncEntryCount: "{{entries}} entries",
4942
+ aiModelSyncErrorTitle: "The last sync failed",
4943
+ aiModelSyncFailed: "Sync failed: {{message}}",
4944
+ aiModelSyncFetchedAt: "fetched {{date}}",
4945
+ aiModelSyncHeader: "pi.dev catalogue",
4946
+ aiModelSyncLastAttempt: "last attempt {{date}}",
4947
+ aiModelSyncLoadedAt: " \xB7 loaded {{date}}",
4948
+ aiModelSyncNever: "not recorded",
4949
+ aiModelSyncNotModified: "The catalogue is already up to date.",
4950
+ aiModelSyncOverrides: "{{overrides}} overrides",
4951
+ aiModelSyncRevision: "revision {{revision}}",
4952
+ aiModelSyncRevisionNone: "never synced",
4953
+ aiModelSyncSucceeded: "Catalogue updated to revision {{revision}}.",
4954
+ aiModelTableAria: "AI model attributes, horizontally scrollable",
4955
+ aiModelTableLoading: "Loading model attributes",
4956
+ aiModelThinkingCustomPlaceholder: "Upstream value",
4957
+ aiModelThinkingDescription: 'Map each thinking level to an upstream value. "Unsupported" writes null; "Inherit" writes nothing.',
4958
+ aiModelThinkingLabel: "Thinking level map",
4959
+ aiModelThinkingUnsupported: "Unsupported",
4960
+ aiModelTitle: "AI model attributes",
4961
+ aiModelTokenDescription: "Leave empty to inherit the catalogue or registry value.",
4962
+ aiModelTokenInheritPlaceholder: "Inherit",
4963
+ aiModelTokenInvalid: "Context window and max output must be positive integers.",
4964
+ aiModelTristateInherit: "Inherit",
4965
+ aiModelTristateNo: "No",
4966
+ aiModelTristateYes: "Yes",
4967
+ aiModelUpdatedUnknown: "Not recorded",
4968
+ aiModelValueUnknown: "Unknown",
4969
+ aiModelVisible: "Showing {{visible}} of {{total}}",
4843
4970
  appBreadcrumbProjectDetail: "Project details",
4844
4971
  appBreadcrumbSub2Api: "Sub2API",
4845
4972
  appCheckingSession: "Checking sign-in status",
@@ -6427,7 +6554,6 @@ var serverWeb = {
6427
6554
  versionsVersionStatusPreparing: "Preparing",
6428
6555
  versionsTargetMacos: "macOS",
6429
6556
  versionsTargetServer: "Server",
6430
- versionsTargetWeb: "Web",
6431
6557
  versionsTargetStaticWeb: "Static Web",
6432
6558
  versionsTargetWindows: "Windows",
6433
6559
  versionsTargetNone: "No executor",
@@ -7029,10 +7155,10 @@ var cli = {
7029
7155
  " status",
7030
7156
  " health",
7031
7157
  " pack <workflow> [--path <workflow-dir>] [--output <file.tgz>] [--project-group] [--dependency <alias>=<path>]",
7032
- " upload <workflow> [--path <workflow-dir>] [--file <archive>] [--release-log <text>] [--source-mode bundled|source] [--server-runtime|--no-server-runtime] [--web-runtime|--no-web-runtime] [--desktop-platform macos|windows] [--no-wait] [--create] [--project-group] [--publish-group] [--dependency <alias>=<path>]",
7158
+ " 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>]",
7033
7159
  " preparation <workflow-id> <job-id>",
7034
7160
  " download <workflow> [--target draft|latest|version] [--path <dir>]",
7035
- " publish <workflow> [--release-log <text>] [--source-mode bundled|source] [--server-runtime|--no-server-runtime] [--web-runtime|--no-web-runtime] [--desktop-platform macos|windows] [--project-group] [--dependency <alias>=<path>]",
7161
+ " publish <workflow> [--release-log <text>] [--source-mode bundled|source] [--server-runtime|--no-server-runtime] [--desktop-platform macos|windows] [--project-group] [--dependency <alias>=<path>]",
7036
7162
  " publish --deployment <id>",
7037
7163
  " run <workflow> [...args] [--target draft|latest|version] [--entrypoint <id>]",
7038
7164
  " debug-node <workflow> <node> [...args] [--target draft|latest|version] [--entrypoint <id>]",
@@ -7045,7 +7171,6 @@ var cli = {
7045
7171
  " --server <url> Defaults to WORKFLOW_SERVER_URL, saved CLI auth, or http://localhost:7125",
7046
7172
  " --token <token> Optional manual override. Defaults to WORKFLOW_SERVER_ADMIN_KEY or saved CLI auth API key",
7047
7173
  " --server-runtime / --no-server-runtime Enable or disable Server execution for this release",
7048
- " --web-runtime / --no-web-runtime Mark this version loadable from the Web entry point and launchable to the Web; requires retained source",
7049
7174
  " --desktop-platform <macos|windows> Add a downloadable Desktop target; may be repeated"
7050
7175
  ].join("\n"),
7051
7176
  invalidLocale: 'Unsupported locale "{{value}}". Expected "zh-CN" or "en".',
@@ -7076,11 +7201,10 @@ var cli = {
7076
7201
  unsupportedWorkflowEncoding: 'Unsupported encoding for workflow file "{{path}}".',
7077
7202
  invalidBase64Content: 'Invalid base64 content for workflow file "{{path}}".',
7078
7203
  versionOptionUnsupported: "--version is no longer supported. Publish versions are managed by the system.",
7204
+ webRuntimeOptionRemoved: "--web-runtime / --no-web-runtime are no longer supported. The Web version is now a hosted build of the Desktop renderer running on the Server, so a version no longer declares a Web target.",
7079
7205
  invalidSourceMode: '--source-mode must be "bundled" or "source".',
7080
7206
  workspaceDownloadPlatformUnsupported: "workspace download is only supported on macOS and Windows; current platform is {{platform}}.",
7081
7207
  serverRuntimeOptionsConflict: "--server-runtime and --no-server-runtime cannot be combined.",
7082
- webRuntimeOptionsConflict: "--web-runtime and --no-web-runtime cannot be combined.",
7083
- webRuntimeRequiresSource: "--web-runtime cannot be combined with --source-mode bundled; Web releases require source mode.",
7084
7208
  invalidDesktopPlatform: 'Unsupported --desktop-platform "{{platform}}". Expected macos or windows.',
7085
7209
  executionTargetCommandUnsupported: "Execution target options are only supported by upload and publish.",
7086
7210
  desktopPlatformRequiresSource: "--desktop-platform cannot be combined with --source-mode bundled; Desktop releases require source mode.",
@@ -7548,7 +7672,7 @@ var common2 = {
7548
7672
  deleteConfigurationWarning: "\u6B64\u64CD\u4F5C\u4F1A\u79FB\u9664\u8BE5\u914D\u7F6E\u4FDD\u5B58\u7684\u53C2\u6570\u503C\uFF0C\u65E0\u6CD5\u64A4\u9500\u3002",
7549
7673
  deleteConfiguration: "\u5220\u9664\u914D\u7F6E",
7550
7674
  knowledgeLoadFailedFallback: "\u52A0\u8F7D\u77E5\u8BC6\u5E93\u6587\u6863\u5931\u8D25\u3002",
7551
- knowledgeLoadMoreFailed: "\u52A0\u8F7D\u66F4\u591A\u77E5\u8BC6\u5E93\u6587\u6863\u5931\u8D25\u3002",
7675
+ knowledgeLoadPageFailed: "\u52A0\u8F7D\u8BE5\u9875\u77E5\u8BC6\u5E93\u6587\u6863\u5931\u8D25\u3002",
7552
7676
  knowledgeSearchFailed: "\u641C\u7D22\u77E5\u8BC6\u5E93\u6587\u6863\u5931\u8D25\u3002",
7553
7677
  knowledgeSearchLoadMoreFailed: "\u52A0\u8F7D\u66F4\u591A\u641C\u7D22\u7ED3\u679C\u5931\u8D25\u3002",
7554
7678
  knowledgeOperationFailed: "\u77E5\u8BC6\u5E93\u64CD\u4F5C\u5931\u8D25\u3002",
@@ -7559,6 +7683,8 @@ var common2 = {
7559
7683
  loadingDocument: "\u6B63\u5728\u52A0\u8F7D\u6587\u6863",
7560
7684
  selectOrNewDocument: "\u9009\u62E9\u6216\u65B0\u5EFA\u6587\u6863",
7561
7685
  viewKnowledgeBaseInfo: "\u67E5\u770B\u77E5\u8BC6\u5E93\u4FE1\u606F",
7686
+ refreshKnowledgeBase: "\u5237\u65B0\u77E5\u8BC6\u5E93",
7687
+ refreshingKnowledgeBase: "\u6B63\u5728\u5237\u65B0\u77E5\u8BC6\u5E93",
7562
7688
  edit: "\u7F16\u8F91",
7563
7689
  preview: "\u9884\u89C8",
7564
7690
  newDocument: "\u65B0\u5EFA\u6587\u6863",
@@ -7580,14 +7706,16 @@ var common2 = {
7580
7706
  knowledgeBaseInfo: "\u77E5\u8BC6\u5E93\u4FE1\u606F",
7581
7707
  knowledgeBaseInfoDescription: "\u5F53\u524D\u9879\u76EE\u7684\u77E5\u8BC6\u5E93\u6587\u6863\u4E0E\u5176\u5B83\u9879\u76EE\u76F8\u4E92\u9694\u79BB\u3002",
7582
7708
  knowledgeDocumentList: "\u77E5\u8BC6\u5E93\u6587\u6863\u5217\u8868",
7709
+ knowledgeDocuments: "\u77E5\u8BC6\u5E93\u6587\u6863",
7583
7710
  loadingKnowledgeBase: "\u6B63\u5728\u52A0\u8F7D\u77E5\u8BC6\u5E93",
7584
7711
  knowledgeLoadFailed: "\u52A0\u8F7D\u77E5\u8BC6\u5E93\u6587\u6863\u5931\u8D25",
7585
7712
  noDocuments: "\u6682\u65E0\u6587\u6863",
7586
7713
  noDocumentsDescription: "\u65B0\u5EFA\u7B2C\u4E00\u7BC7 markdown \u6587\u6863\u540E\u4F1A\u663E\u793A\u5728\u8FD9\u91CC\u3002",
7587
- loadingMoreDocuments: "\u6B63\u5728\u52A0\u8F7D\u66F4\u591A\u6587\u6863",
7588
- scrollForMoreDocuments: "\u7EE7\u7EED\u5411\u4E0B\u6EDA\u52A8\u52A0\u8F7D\u66F4\u591A\u6587\u6863",
7589
- loadedCount: "\u5DF2\u52A0\u8F7D {{count}} / {{total}}",
7590
- allDocumentsLoaded: "\u5DF2\u5168\u90E8\u52A0\u8F7D {{count}} \u7BC7\u6587\u6863",
7714
+ knowledgeDocumentPagination: "\u77E5\u8BC6\u5E93\u6587\u6863\u5206\u9875",
7715
+ knowledgeDocumentActions: "\u6587\u6863\u64CD\u4F5C",
7716
+ previousPage: "\u4E0A\u4E00\u9875",
7717
+ nextPage: "\u4E0B\u4E00\u9875",
7718
+ pageIndicator: "\u7B2C {{current}} / {{total}} \u9875",
7591
7719
  searchResults: "\u67E5\u627E\u7ED3\u679C",
7592
7720
  noSearchMatches: "\u6CA1\u6709\u5339\u914D",
7593
7721
  searchedDocumentsCount: "\u5DF2\u67E5\u627E {{count}} \u7BC7\u6587\u6863\u3002",
@@ -8276,7 +8404,7 @@ var desktop2 = {
8276
8404
  homeProjectGraphZoomIn: "\u653E\u5927",
8277
8405
  homeProjectGraphZoomOut: "\u7F29\u5C0F",
8278
8406
  homeProjectGraphFitView: "\u9002\u5E94\u753B\u5E03",
8279
- desktopCloudRunRecordsLabel: "Desktop \u4E91\u7AEF\u8FD0\u884C\u8BB0\u5F55",
8407
+ desktopCloudRunRecordsLabel: "\u4E91\u7AEF\u8FD0\u884C\u8BB0\u5F55",
8280
8408
  desktopStatus: "Desktop \u72B6\u6001",
8281
8409
  archiveImportedAs: "{{archiveName}} \u5DF2\u5BFC\u5165\u4E3A {{workflowName}}",
8282
8410
  assistantTaskOwner: "\u5C0F\u52A9\u624B \xB7 {{name}}",
@@ -8373,7 +8501,7 @@ var desktop2 = {
8373
8501
  loginToCreateCloudApp: "\u767B\u5F55\u540E\u521B\u5EFA\u4E91\u7AEF\u5E94\u7528",
8374
8502
  loginToViewCloudProjects: "\u767B\u5F55\u67E5\u770B\u4E91\u7AEF\u9879\u76EE",
8375
8503
  loginToViewCloudProjectsDescription: "\u767B\u5F55\u540E\u67E5\u770B\u5F53\u524D\u8D26\u53F7\u53EF\u4EE5\u8BBF\u95EE\u7684\u670D\u52A1\u5668\u9879\u76EE\u3002",
8376
- loginToViewCloudRunRecords: "\u767B\u5F55\u540E\u53EF\u67E5\u770B\u901A\u8FC7 Desktop \u8FD0\u884C\u7684\u4E91\u7AEF\u8BB0\u5F55\u3002",
8504
+ loginToViewCloudRunRecords: "\u767B\u5F55\u540E\u53EF\u67E5\u770B\u4E91\u7AEF\u8FD0\u884C\u8BB0\u5F55\u3002",
8377
8505
  modeLocal: "\u672C\u5730",
8378
8506
  modeRemote: "\u8FDC\u7A0B",
8379
8507
  modeWeb: "\u7F51\u9875",
@@ -8384,7 +8512,7 @@ var desktop2 = {
8384
8512
  nextPage: "\u4E0B\u4E00\u9875",
8385
8513
  noCloudProjects: "\u6682\u65E0\u4E91\u7AEF\u9879\u76EE",
8386
8514
  noCloudProjectsDescription: "\u5F53\u524D\u8D26\u53F7\u8FD8\u6CA1\u6709\u53EF\u8BBF\u95EE\u7684\u4E91\u7AEF\u9879\u76EE\u3002",
8387
- noCloudRunRecords: "\u8FD8\u6CA1\u6709\u901A\u8FC7 Desktop \u8FD0\u884C\u7684\u4E91\u7AEF\u8BB0\u5F55\u3002",
8515
+ noCloudRunRecords: "\u8FD8\u6CA1\u6709\u4E91\u7AEF\u8FD0\u884C\u8BB0\u5F55\u3002",
8388
8516
  noLocalProjects: "\u6682\u65E0\u672C\u5730\u9879\u76EE",
8389
8517
  noLocalProjectsDescription: "\u65B0\u5EFA\u9879\u76EE\uFF0C\u6216\u5BFC\u5165\u672C\u5730\u6587\u4EF6\u5939\u3002",
8390
8518
  noLocalRunRecords: "\u8FD8\u6CA1\u6709\u672C\u5730\u8FD0\u884C\u8BB0\u5F55\u3002\u8FD0\u884C workflow \u540E\u4F1A\u51FA\u73B0\u5728\u8FD9\u91CC\u3002",
@@ -8508,8 +8636,11 @@ var desktop2 = {
8508
8636
  save: "\u4FDD\u5B58",
8509
8637
  saveLocalCodeTitle: "\u4FDD\u5B58\u672C\u5730\u4EE3\u7801",
8510
8638
  saving: "\u6B63\u5728\u4FDD\u5B58...",
8639
+ searchKnowledgeDocuments: "\u641C\u7D22\u77E5\u8BC6\u5E93\u6587\u6863",
8511
8640
  searchProject: "\u641C\u7D22\u9879\u76EE",
8512
8641
  searchProjectPlaceholder: "\u641C\u7D22\u9879\u76EE\u540D\u79F0\u6216 ID",
8642
+ searchRecentTasks: "\u641C\u7D22\u6700\u8FD1\u4EFB\u52A1",
8643
+ searchRecentTasksPlaceholder: "\u641C\u7D22\u4EFB\u52A1\u540D\u79F0\u6216\u9879\u76EE",
8513
8644
  searchWorkspace: "\u641C\u7D22\u5DE5\u4F5C\u533A",
8514
8645
  searchWorkspacePlaceholder: "\u641C\u7D22\u5DE5\u4F5C\u533A\u540D\u79F0\u6216\u8DEF\u5F84",
8515
8646
  searchServerVersionPlaceholder: "\u641C\u7D22\u670D\u52A1\u5668\u7248\u672C...",
@@ -8537,6 +8668,7 @@ var desktop2 = {
8537
8668
  cloneProjectDescription: "\u590D\u5236\u201C{{name}}\u201D\u7684\u6E90\u7801\uFF0C\u5E76\u4E3A\u526F\u672C\u8BBE\u7F6E\u9879\u76EE\u540D\u79F0\u548C\u53EF\u9009\u5B58\u653E\u4F4D\u7F6E\u3002",
8538
8669
  cloningProject: "\u6B63\u5728\u514B\u9686...",
8539
8670
  close: "\u5173\u95ED",
8671
+ closeRailSearch: "\u5173\u95ED\u641C\u7D22",
8540
8672
  cloudAppCreated: "\u5DF2\u521B\u5EFA\u4E91\u7AEF\u5E94\u7528",
8541
8673
  cloudAppNotCreated: "\u5C1A\u672A\u521B\u5EFA\u4E91\u7AEF\u5E94\u7528",
8542
8674
  cloudAppUploadsMetadataOnly: "\u53EA\u4E0A\u4F20\u540D\u79F0\u3001\u7C7B\u578B\u548C\u5361\u7247\u4FE1\u606F\uFF0C\u4E0D\u4E0A\u4F20\u9879\u76EE\u6E90\u7801\u3002",
@@ -8735,8 +8867,6 @@ var desktop2 = {
8735
8867
  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",
8736
8868
  serverCloudExecution: "Server \u4E91\u7AEF\u6267\u884C",
8737
8869
  serverCloudExecutionDescription: "\u4E3A\u8FD0\u884C\u3001Webhook \u548C\u8BA1\u5212\u4EFB\u52A1\u51C6\u5907 Server runtime\u3002",
8738
- webExecution: "Web \u6267\u884C",
8739
- webExecutionDescription: "\u628A\u8BE5\u7248\u672C\u6807\u8BB0\u4E3A\u53EF\u7531 Web \u5165\u53E3\u52A0\u8F7D\u3001\u5E76\u53EF\u542F\u52A8\u5230 Web\uFF1BWeb \u8FD0\u884C\u7531 Desktop \u5BBF\u4E3B\u6267\u884C\uFF0C\u9700\u8981 Desktop \u5728\u7EBF\u3002",
8740
8870
  kanbanServerExecutionDisabled: "Kanban \u4F7F\u7528\u9759\u6001\u6258\u7BA1\uFF0C\u4E0D\u8FDB\u5165 Server executor\u3002",
8741
8871
  desktopTargetMacos: "macOS \u672C\u5730\u8FD0\u884C",
8742
8872
  desktopTargetWindows: "Windows \u672C\u5730\u8FD0\u884C",
@@ -8855,6 +8985,7 @@ var desktop2 = {
8855
8985
  hideConversationList: "\u9690\u85CF\u4F1A\u8BDD\u5217\u8868",
8856
8986
  hideDiagnostic: "\u6536\u8D77{{label}}",
8857
8987
  hideFileList: "\u9690\u85CF\u6587\u4EF6\u5217\u8868",
8988
+ hideKnowledgeRail: "\u9690\u85CF\u77E5\u8BC6\u5E93\u5217\u8868",
8858
8989
  hideTaskList: "\u9690\u85CF\u4EFB\u52A1\u5217\u8868",
8859
8990
  hideWorkflow: "\u9690\u85CF workflow",
8860
8991
  historyRunResult: "\u5386\u53F2\u6267\u884C\u7ED3\u679C",
@@ -8946,6 +9077,7 @@ var desktop2 = {
8946
9077
  selectProjectLoadFile: "\u9009\u62E9\u5DE5\u4F5C\u533A\u5E76\u52A0\u8F7D\u6587\u4EF6",
8947
9078
  showConversationHistory: "\u663E\u793A\u5BF9\u8BDD\u5386\u53F2",
8948
9079
  showDiagnostic: "\u663E\u793A{{label}}",
9080
+ showKnowledgeRail: "\u663E\u793A\u77E5\u8BC6\u5E93\u5217\u8868",
8949
9081
  showRunHistory: "\u663E\u793A\u5386\u53F2\u6267\u884C",
8950
9082
  summaryColumn: "\u6458\u8981",
8951
9083
  terminal: "\u7EC8\u7AEF",
@@ -9515,19 +9647,6 @@ var desktop2 = {
9515
9647
  localProjectAccessRiskSchedules: "\u672C\u5730\u5B9A\u65F6\u4EFB\u52A1\u914D\u7F6E\u540E\u4F1A\u6301\u7EED\u5728\u540E\u53F0\u89E6\u53D1\u3002",
9516
9648
  localProjectsDisabledScopeHint: "\u672C\u5730\u9879\u76EE\u5DF2\u5173\u95ED\uFF1B\u8BF7\u5148\u5728\u8BBE\u7F6E\u4E2D\u5F00\u542F\uFF0C\u624D\u80FD\u5728\u6B64\u663E\u793A\u3002",
9517
9649
  localProjectsGateRunRefused: "\u672C\u5730\u9879\u76EE\u201C{{projectName}}\u201D\u5728\u8BBE\u7F6E\u4E2D\u5F00\u542F\u672C\u5730\u9879\u76EE\u4E4B\u524D\u65E0\u6CD5\u8FD0\u884C\u3002",
9518
- runToWebTitle: "\u5728 Web \u4E0A\u8FD0\u884C {{projectName}}",
9519
- runToWebMenuItem: "\u542F\u52A8\u5230 Web",
9520
- runToWebDescription: "\u8BE5\u8FD0\u884C\u7531 Desktop \u5BBF\u4E3B\u6267\u884C\u5E76\u63D0\u4F9B\u9875\u9762\uFF1B\u6D4F\u89C8\u5668\u4F7F\u7528\u671F\u95F4\u8BF7\u4FDD\u6301 Desktop \u8FD0\u884C\u3002",
9521
- runToWebStarting: "\u6B63\u5728\u51C6\u5907 Web \u4F1A\u8BDD\u2026",
9522
- runToWebPublicLinkHint: "\u53EF\u5728\u4EFB\u610F\u6D4F\u89C8\u5668\u4E2D\u6253\u5F00\u6B64\u94FE\u63A5\u3002\u62FF\u5230\u94FE\u63A5\u7684\u4EBA\u90FD\u53EF\u4EE5\u89C2\u770B\u8FD9\u6B21\u8FD0\u884C\uFF0C\u76F4\u5230\u4F1A\u8BDD\u7ED3\u675F\u3002",
9523
- runToWebRelayPending: "Desktop \u5C1A\u672A\u8FDE\u63A5\u5230\u4E2D\u7EE7\uFF0C\u8FD9\u4E2A\u94FE\u63A5\u5728\u5176\u5B83\u8BBE\u5907\u4E0A\u8FD8\u6253\u4E0D\u5F00\u3002Desktop \u4F1A\u5728\u540E\u53F0\u7EE7\u7EED\u91CD\u8BD5\u3002",
9524
- runToWebRelayIdentity: "\u4E2D\u7EE7\u8EAB\u4EFD",
9525
- runToWebLinkHint: "\u8BF7\u5728\u672C\u673A\u6D4F\u89C8\u5668\u4E2D\u6253\u5F00\u6B64\u94FE\u63A5\u3002\u94FE\u63A5\u643A\u5E26\u4E00\u6B21\u6027\u4EE4\u724C\uFF0C\u4F7F\u7528\u540E\u5373\u5931\u6548\u3002",
9526
- runToWebOpen: "\u5728\u6D4F\u89C8\u5668\u4E2D\u6253\u5F00",
9527
- runToWebCopy: "\u590D\u5236\u94FE\u63A5",
9528
- runToWebUnavailable: "\u65E0\u6CD5\u542F\u52A8 Desktop Web \u4F1A\u8BDD\u3002",
9529
- runToWebLocalProjectsDisabled: "\u672C\u5730\u9879\u76EE\u5DF2\u5173\u95ED",
9530
- runToWebLocalProjectsDisabledHint: "\u8BF7\u5148\u5728\u8BBE\u7F6E\u4E2D\u5F00\u542F\u672C\u5730\u9879\u76EE\uFF0C\u518D\u628A\u9879\u76EE\u542F\u52A8\u5230 Web\u3002",
9531
9650
  desktopUpdate: "Desktop \u66F4\u65B0",
9532
9651
  desktopVersionLine: "Workflow Code Desktop {{version}}",
9533
9652
  availableVersionLabel: "\u7248\u672C {{version}}",
@@ -9818,12 +9937,144 @@ var serverWeb2 = {
9818
9937
  accountThemeLightDescription: "\u9002\u5408\u65E5\u95F4\u6D4F\u89C8\u548C\u4EAE\u80CC\u666F\u5DE5\u4F5C\u6D41\u3002",
9819
9938
  accountThemeSystem: "\u8DDF\u968F\u7CFB\u7EDF",
9820
9939
  accountThemeSystemDescription: "\u81EA\u52A8\u5339\u914D\u7CFB\u7EDF\u6D45\u8272\u6216\u6DF1\u8272\u504F\u597D\u3002",
9940
+ adminTabAiModels: "AI \u6A21\u578B\u5C5E\u6027",
9821
9941
  adminTabAudit: "\u5BA1\u8BA1\u65E5\u5FD7",
9822
9942
  adminTabRunner: "Runner",
9823
9943
  adminTabRoles: "\u89D2\u8272\u7BA1\u7406",
9824
9944
  adminTabSub2ApiSubscriptions: "\u8BA2\u9605\u914D\u7F6E",
9825
9945
  adminTabSub2ApiUserSubscriptions: "\u7528\u6237\u8BA2\u9605",
9826
9946
  adminTabUsers: "\u7528\u6237\u7BA1\u7406",
9947
+ aiModelAddModel: "\u624B\u52A8\u6DFB\u52A0\u6A21\u578B",
9948
+ aiModelBindingAuto: "\u81EA\u52A8\u5339\u914D",
9949
+ aiModelBindingCatalog: "\u624B\u52A8\u7ED1\u5B9A",
9950
+ aiModelBindingCatalogValue: "{{providerId}} / {{modelId}}",
9951
+ aiModelBindingDescription: "\u81EA\u52A8\u5339\u914D\u6309\u6A21\u578B ID \u67E5\u627E\u76EE\u5F55\u6761\u76EE\uFF1B\u624B\u52A8\u7ED1\u5B9A\u56FA\u5B9A\u5230\u4E00\u4E2A\u76EE\u5F55\u6761\u76EE\uFF1B\u4E0D\u7ED1\u5B9A\u5219\u5B8C\u5168\u5FFD\u7565\u76EE\u5F55\u3002",
9952
+ aiModelBindingLabel: "\u76EE\u5F55\u7ED1\u5B9A",
9953
+ aiModelBindingPickerClear: "\u6E05\u9664\u7ED1\u5B9A",
9954
+ aiModelBindingPickerDescription: "\u5728\u5DF2\u540C\u6B65\u7684 pi.dev \u76EE\u5F55\u4E2D\u641C\u7D22\uFF0C\u5E76\u9009\u62E9\u8BE5\u6A21\u578B\u5E94\u4F7F\u7528\u7684\u6761\u76EE\u3002",
9955
+ aiModelBindingPickerEmptyDescription: "\u6362\u4E00\u4E2A\u5173\u952E\u8BCD\u6216\u63D0\u4F9B\u65B9\uFF0C\u6216\u5148\u540C\u6B65\u76EE\u5F55\u3002",
9956
+ aiModelBindingPickerEmptyTitle: "\u6CA1\u6709\u5339\u914D\u7684\u76EE\u5F55\u6761\u76EE",
9957
+ aiModelBindingPickerErrorTitle: "\u76EE\u5F55\u52A0\u8F7D\u5931\u8D25",
9958
+ aiModelBindingPickerLoading: "\u6B63\u5728\u52A0\u8F7D\u76EE\u5F55\u6761\u76EE",
9959
+ aiModelBindingPickerPaginationLabel: "\u76EE\u5F55\u6761\u76EE\u5206\u9875",
9960
+ aiModelBindingPickerRetry: "\u91CD\u65B0\u52A0\u8F7D",
9961
+ aiModelBindingPickerSearch: "\u641C\u7D22",
9962
+ aiModelBindingPickerSearchPlaceholder: "\u641C\u7D22\u6A21\u578B ID \u6216\u540D\u79F0",
9963
+ aiModelBindingPickerSelected: "\u5DF2\u9009\u62E9",
9964
+ aiModelBindingPickerSet: "\u9009\u62E9",
9965
+ aiModelBindingPickerTitle: "\u9009\u62E9\u76EE\u5F55\u6761\u76EE",
9966
+ aiModelBindingPickerTrigger: "\u9009\u62E9\u76EE\u5F55\u6761\u76EE",
9967
+ aiModelBindingRequired: "\u8BF7\u9009\u62E9\u76EE\u5F55\u6761\u76EE\uFF0C\u6216\u6539\u7528\u5176\u4ED6\u7ED1\u5B9A\u6A21\u5F0F\u3002",
9968
+ aiModelBindingUnbound: "\u4E0D\u7ED1\u5B9A",
9969
+ aiModelCapabilitiesDescription: "\u6BCF\u9879\u53EF\u9009\u7EE7\u627F\u3001\u662F\u6216\u5426\uFF1B\u7EE7\u627F\u8868\u793A\u7EE7\u7EED\u6CBF\u4F18\u5148\u7EA7\u5411\u4E0B\u67E5\u627E\u3002",
9970
+ aiModelCapabilitiesLabel: "\u80FD\u529B",
9971
+ aiModelCapabilityUndeclared: "\u672A\u58F0\u660E",
9972
+ aiModelCapabilityReasoning: "\u63A8\u7406",
9973
+ aiModelCapabilityToolCalling: "\u5DE5\u5177\u8C03\u7528",
9974
+ aiModelCapabilityVision: "\u89C6\u89C9",
9975
+ aiModelCapabilityWebSearch: "\u8054\u7F51\u68C0\u7D22",
9976
+ aiModelCatalogMatchesWarning: "\u6709 {{matches}} \u4E2A\u76EE\u5F55\u6761\u76EE\u5171\u7528\u8BE5\u6A21\u578B ID\uFF0C\u4EC5\u6309 ID \u5339\u914D\u65F6\u4F1A\u56FA\u5B9A\u9009\u4E2D\u5176\u4E2D\u4E00\u4E2A\u3002",
9977
+ aiModelCatalogMatchesShort: "\u540C\u540D \xD7{{matches}}",
9978
+ aiModelClearFilters: "\u6E05\u9664\u7B5B\u9009",
9979
+ aiModelContextWindowLabel: "\u4E0A\u4E0B\u6587\u7A97\u53E3",
9980
+ aiModelCostCacheRead: "\u7F13\u5B58\u8BFB\u53D6",
9981
+ aiModelCostCacheWrite: "\u7F13\u5B58\u5199\u5165",
9982
+ aiModelCostDescription: "\u5355\u4F4D\u4E3A\u6BCF\u767E\u4E07 token\u3002\u56DB\u9879\u5168\u90E8\u586B\u5199\u540E\u624D\u4F1A\u4FDD\u5B58\uFF0C\u5168\u90E8\u7559\u7A7A\u8868\u793A\u7EE7\u627F\u3002",
9983
+ aiModelCostIncomplete: "\u4EF7\u683C\u9700\u8981\u56DB\u9879\u5168\u90E8\u586B\u5199\uFF0C\u6216\u5168\u90E8\u7559\u7A7A\u3002",
9984
+ aiModelCostInput: "\u8F93\u5165",
9985
+ aiModelCostLabel: "\u4EF7\u683C\uFF08\u6BCF\u767E\u4E07 token\uFF09",
9986
+ aiModelCostOutput: "\u8F93\u51FA",
9987
+ aiModelDescription: "\u5C5E\u6027\u6309\u300C\u4EBA\u5DE5\u8986\u76D6 \u2192 \u76EE\u5F55\u6761\u76EE\uFF08\u81EA\u52A8\u5339\u914D\u6216\u624B\u52A8\u7ED1\u5B9A\uFF09\u2192 Cherry Studio \u6CE8\u518C\u8868 \u2192 \u7A7A\u300D\u7684\u987A\u5E8F\u89E3\u6790\uFF0C\u7559\u7A7A\u7684\u5B57\u6BB5\u4F1A\u7EE7\u7EED\u5411\u4E0B\u7EE7\u627F\u3002",
9988
+ aiModelDialogCreateDescription: "\u4FDD\u5B58\u540E\u4F1A\u5199\u5165\u4E00\u6761\u65B0\u7684\u4EBA\u5DE5\u8986\u76D6\u3002",
9989
+ aiModelDialogCreateTitle: "\u6DFB\u52A0\u6A21\u578B\u5C5E\u6027",
9990
+ aiModelDialogDescription: "\u4FDD\u5B58\u540E\u4F1A\u4E3A {{modelId}} \u5199\u5165\u4E00\u6761\u4EBA\u5DE5\u8986\u76D6\u3002",
9991
+ aiModelDialogEditTitle: "\u7F16\u8F91\u6A21\u578B\u5C5E\u6027",
9992
+ aiModelDialogLegendSr: "\u7F16\u8F91\u8BE5\u6A21\u578B\u7684\u4EBA\u5DE5\u8986\u76D6",
9993
+ aiModelDisplayNameDescription: "\u7559\u7A7A\u65F6\u4F7F\u7528\u76EE\u5F55\u6216\u6CE8\u518C\u8868\u4E2D\u7684\u540D\u79F0\u3002",
9994
+ aiModelDisplayNameLabel: "\u663E\u793A\u540D\u79F0",
9995
+ aiModelDisplayNamePlaceholder: "\u4F8B\u5982\uFF1AGPT-5.6 Terra",
9996
+ aiModelEditLabel: "\u7F16\u8F91 {{id}}",
9997
+ aiModelEmptyDescription: "\u5F53\u524D\u6CA1\u6709\u6B63\u5728\u4F7F\u7528\u7684\u6A21\u578B\u3002\u53EF\u4EE5\u624B\u52A8\u6DFB\u52A0\uFF0C\u63D0\u524D\u914D\u7F6E\u5C1A\u672A\u88AB\u4EFB\u4F55\u6765\u6E90\u66B4\u9732\u7684\u6A21\u578B\u3002",
9998
+ aiModelEmptyErrorDescription: "\u8BF7\u68C0\u67E5 Server \u7684 AI \u6A21\u578B\u76EE\u5F55\u914D\u7F6E\u540E\u91CD\u8BD5\u3002",
9999
+ aiModelEmptyErrorTitle: "\u65E0\u6CD5\u83B7\u53D6\u6A21\u578B\u5C5E\u6027",
10000
+ aiModelEmptyRetry: "\u91CD\u65B0\u83B7\u53D6",
10001
+ aiModelEmptyTitle: "\u6682\u65E0\u6A21\u578B",
10002
+ aiModelErrorTitle: "\u65E0\u6CD5\u83B7\u53D6 AI \u6A21\u578B\u5C5E\u6027",
10003
+ aiModelFooter: "{{overrides}} \u4E2A\u6A21\u578B\u5B58\u5728\u4EBA\u5DE5\u8986\u76D6\uFF0C\u5176\u4F59\u4ECD\u56DE\u843D\u5230\u76EE\u5F55\u6216 Cherry Studio \u6CE8\u518C\u8868\u3002",
10004
+ aiModelHeaderActions: "\u64CD\u4F5C",
10005
+ aiModelHeaderBinding: "\u76EE\u5F55\u7ED1\u5B9A",
10006
+ aiModelHeaderCapabilities: "\u6A21\u578B\u80FD\u529B",
10007
+ aiModelHeaderContextWindow: "\u4E0A\u4E0B\u6587\u7A97\u53E3",
10008
+ aiModelHeaderMaxTokens: "\u6700\u5927\u8F93\u51FA",
10009
+ aiModelHeaderModelId: "\u6A21\u578B ID",
10010
+ aiModelHeaderName: "\u540D\u79F0",
10011
+ aiModelHeaderProvider: "\u63D0\u4F9B\u65B9",
10012
+ aiModelHeaderSource: "\u6765\u6E90",
10013
+ aiModelHeaderUpdatedAt: "\u66F4\u65B0\u65F6\u95F4",
10014
+ aiModelInputDescription: "\u8BE5\u6A21\u578B\u63A5\u53D7\u7684\u6A21\u6001\uFF1B\u4E24\u9879\u90FD\u4E0D\u52FE\u9009\u8868\u793A\u7EE7\u627F\u3002",
10015
+ aiModelInputImage: "\u56FE\u7247",
10016
+ aiModelInputLabel: "\u8F93\u5165\u6A21\u6001",
10017
+ aiModelInputText: "\u6587\u672C",
10018
+ aiModelLegendSr: "\u9009\u62E9 AI \u6A21\u578B\u5C5E\u6027\u76EE\u5F55",
10019
+ aiModelMaxTokensLabel: "\u6700\u5927\u8F93\u51FA token",
10020
+ aiModelModelIdDescription: "\u4E0A\u6E38\u5B9E\u9645\u8FD4\u56DE\u7684\u6A21\u578B ID\uFF1B\u884C\u521B\u5EFA\u540E\u4E0D\u53EF\u4FEE\u6539\u3002",
10021
+ aiModelModelIdLabel: "\u6A21\u578B ID",
10022
+ aiModelModelIdRequired: "\u8BF7\u586B\u5199\u6A21\u578B ID\u3002",
10023
+ aiModelNoMatchDescription: "\u6362\u4E00\u4E2A\u5173\u952E\u8BCD\uFF0C\u6216\u6E05\u9664\u6765\u6E90\u7B5B\u9009\u3002",
10024
+ aiModelNoMatchTitle: "\u6CA1\u6709\u5339\u914D\u7684\u6A21\u578B",
10025
+ aiModelPaginationLabel: "AI \u6A21\u578B\u5C5E\u6027\u5206\u9875",
10026
+ aiModelPanelAria: "AI \u6A21\u578B\u5C5E\u6027\u76EE\u5F55",
10027
+ aiModelPrecedence: "\u4F18\u5148\u7EA7\uFF1A\u4EBA\u5DE5\u8986\u76D6 \u2192 \u76EE\u5F55\u6761\u76EE \u2192 Cherry Studio \u6CE8\u518C\u8868 \u2192 \u7A7A\u3002",
10028
+ aiModelRawApply: "\u5E94\u7528 JSON",
10029
+ aiModelRawDescription: "\u8BE5\u6587\u672C\u6846\u4E0E\u4E0A\u65B9\u5B57\u6BB5\u7F16\u8F91\u540C\u4E00\u4E2A\u8986\u76D6\u5BF9\u8C61\uFF1B\u5E94\u7528\u524D\u4F1A\u5148\u6821\u9A8C\u952E\u540D\u4E0E\u7C7B\u578B\u3002",
10030
+ aiModelRawParseError: "JSON \u89E3\u6790\u5931\u8D25\uFF1A{{message}}",
10031
+ aiModelRawShapeError: "\u8986\u76D6\u5185\u5BB9\u5FC5\u987B\u662F JSON \u5BF9\u8C61\u3002",
10032
+ aiModelRawToggle: "\u539F\u59CB JSON \u8986\u76D6",
10033
+ aiModelRawUnknownKey: "\u4E0D\u652F\u6301\u7684\u5C5E\u6027\uFF1A{{key}}",
10034
+ aiModelRawValueInvalid: "{{key}} \u7684\u53D6\u503C\u4E0D\u88AB\u652F\u6301\u3002",
10035
+ aiModelResetAction: "\u5220\u9664\u8986\u76D6\uFF08\u6062\u590D\u76EE\u5F55\u503C\uFF09",
10036
+ aiModelResetConfirmDescription: "\u5220\u9664\u8986\u76D6\u540E\uFF0C{{modelId}} \u5C06\u56DE\u843D\u5230\u76EE\u5F55\u6216\u6CE8\u518C\u8868\u7684\u503C\u3002",
10037
+ aiModelResetConfirmLabel: "\u5220\u9664\u8986\u76D6",
10038
+ aiModelResetConfirmTitle: "\u5220\u9664\u6A21\u578B\u8986\u76D6",
10039
+ aiModelResetToast: "\u5DF2\u5220\u9664\u8986\u76D6",
10040
+ aiModelSavedToast: "\u6A21\u578B\u5C5E\u6027\u5DF2\u4FDD\u5B58",
10041
+ aiModelSearchPlaceholder: "\u641C\u7D22\u6A21\u578B ID",
10042
+ aiModelSourceAll: "\u5168\u90E8\u6765\u6E90",
10043
+ aiModelSourceCatalog: "\u76EE\u5F55\u6761\u76EE",
10044
+ aiModelSourceFilterAria: "\u6765\u6E90\u7B5B\u9009",
10045
+ aiModelSourceNone: "\u672A\u6536\u5F55",
10046
+ aiModelSourceOverride: "\u4EBA\u5DE5\u8986\u76D6",
10047
+ aiModelSourceRegistry: "Cherry Studio \u6CE8\u518C\u8868",
10048
+ aiModelSyncButton: "\u4ECE pi.dev \u540C\u6B65",
10049
+ aiModelSyncEntryCount: "{{entries}} \u4E2A\u6761\u76EE",
10050
+ aiModelSyncErrorTitle: "\u6700\u8FD1\u4E00\u6B21\u540C\u6B65\u5931\u8D25",
10051
+ aiModelSyncFailed: "\u540C\u6B65\u5931\u8D25\uFF1A{{message}}",
10052
+ aiModelSyncFetchedAt: "\u62C9\u53D6\u4E8E {{date}}",
10053
+ aiModelSyncHeader: "pi.dev \u76EE\u5F55",
10054
+ aiModelSyncLastAttempt: "\u6700\u8FD1\u5C1D\u8BD5 {{date}}",
10055
+ aiModelSyncLoadedAt: " \xB7 \u8F7D\u5165\u4E8E {{date}}",
10056
+ aiModelSyncNever: "\u672A\u8BB0\u5F55",
10057
+ aiModelSyncNotModified: "\u76EE\u5F55\u5DF2\u662F\u6700\u65B0\u3002",
10058
+ aiModelSyncOverrides: "{{overrides}} \u6761\u8986\u76D6",
10059
+ aiModelSyncRevision: "\u7248\u672C {{revision}}",
10060
+ aiModelSyncRevisionNone: "\u5C1A\u672A\u540C\u6B65",
10061
+ aiModelSyncSucceeded: "\u76EE\u5F55\u5DF2\u66F4\u65B0\u5230\u7248\u672C {{revision}}\u3002",
10062
+ aiModelTableAria: "AI \u6A21\u578B\u5C5E\u6027\u8868\u683C\uFF0C\u53EF\u6A2A\u5411\u6EDA\u52A8",
10063
+ aiModelTableLoading: "\u6B63\u5728\u52A0\u8F7D\u6A21\u578B\u5C5E\u6027",
10064
+ aiModelThinkingCustomPlaceholder: "\u4E0A\u6E38\u53C2\u6570\u540D",
10065
+ aiModelThinkingDescription: "\u4E3A\u6BCF\u4E2A\u601D\u8003\u7B49\u7EA7\u6307\u5B9A\u4E0A\u6E38\u53D6\u503C\uFF1B\u300C\u4E0D\u652F\u6301\u300D\u5199\u5165 null\uFF0C\u300C\u7EE7\u627F\u300D\u4E0D\u5199\u5165\u3002",
10066
+ aiModelThinkingLabel: "\u601D\u8003\u7B49\u7EA7\u6620\u5C04",
10067
+ aiModelThinkingUnsupported: "\u4E0D\u652F\u6301",
10068
+ aiModelTitle: "AI \u6A21\u578B\u5C5E\u6027",
10069
+ aiModelTokenDescription: "\u7559\u7A7A\u8868\u793A\u7EE7\u627F\u76EE\u5F55\u6216\u6CE8\u518C\u8868\u7684\u6570\u503C\u3002",
10070
+ aiModelTokenInheritPlaceholder: "\u7EE7\u627F",
10071
+ aiModelTokenInvalid: "\u4E0A\u4E0B\u6587\u7A97\u53E3\u4E0E\u6700\u5927\u8F93\u51FA\u5FC5\u987B\u662F\u6B63\u6574\u6570\u3002",
10072
+ aiModelTristateInherit: "\u7EE7\u627F",
10073
+ aiModelTristateNo: "\u5426",
10074
+ aiModelTristateYes: "\u662F",
10075
+ aiModelUpdatedUnknown: "\u672A\u8BB0\u5F55",
10076
+ aiModelValueUnknown: "\u672A\u77E5",
10077
+ aiModelVisible: "\u663E\u793A {{visible}} / {{total}}",
9827
10078
  appBreadcrumbProjectDetail: "\u9879\u76EE\u8BE6\u60C5",
9828
10079
  appBreadcrumbSub2Api: "Sub2API",
9829
10080
  appCheckingSession: "\u6B63\u5728\u68C0\u67E5\u767B\u5F55\u72B6\u6001",
@@ -11411,7 +11662,6 @@ var serverWeb2 = {
11411
11662
  versionsVersionStatusPreparing: "\u51C6\u5907\u4E2D",
11412
11663
  versionsTargetMacos: "macOS",
11413
11664
  versionsTargetServer: "Server",
11414
- versionsTargetWeb: "Web",
11415
11665
  versionsTargetStaticWeb: "\u9759\u6001 Web",
11416
11666
  versionsTargetWindows: "Windows",
11417
11667
  versionsTargetNone: "\u65E0\u6267\u884C\u76EE\u6807",
@@ -12013,10 +12263,10 @@ var cli2 = {
12013
12263
  " status",
12014
12264
  " health",
12015
12265
  " pack <workflow> [--path <workflow-dir>] [--output <file.tgz>] [--project-group] [--dependency <alias>=<path>]",
12016
- " upload <workflow> [--path <workflow-dir>] [--file <archive>] [--release-log <text>] [--source-mode bundled|source] [--server-runtime|--no-server-runtime] [--web-runtime|--no-web-runtime] [--desktop-platform macos|windows] [--no-wait] [--create] [--project-group] [--publish-group] [--dependency <alias>=<path>]",
12266
+ " 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>]",
12017
12267
  " preparation <workflow-id> <job-id>",
12018
12268
  " download <workflow> [--target draft|latest|version] [--path <dir>]",
12019
- " publish <workflow> [--release-log <text>] [--source-mode bundled|source] [--server-runtime|--no-server-runtime] [--web-runtime|--no-web-runtime] [--desktop-platform macos|windows] [--project-group] [--dependency <alias>=<path>]",
12269
+ " publish <workflow> [--release-log <text>] [--source-mode bundled|source] [--server-runtime|--no-server-runtime] [--desktop-platform macos|windows] [--project-group] [--dependency <alias>=<path>]",
12020
12270
  " publish --deployment <id>",
12021
12271
  " run <workflow> [...args] [--target draft|latest|version] [--entrypoint <id>]",
12022
12272
  " debug-node <workflow> <node> [...args] [--target draft|latest|version] [--entrypoint <id>]",
@@ -12029,7 +12279,6 @@ var cli2 = {
12029
12279
  " --server <url> \u9ED8\u8BA4\u8BFB\u53D6 WORKFLOW_SERVER_URL\u3001\u5DF2\u4FDD\u5B58\u7684 CLI \u8BA4\u8BC1\u6216 http://localhost:7125",
12030
12280
  " --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",
12031
12281
  " --server-runtime / --no-server-runtime \u4E3A\u672C\u6B21\u53D1\u884C\u542F\u7528\u6216\u5173\u95ED Server \u6267\u884C",
12032
- " --web-runtime / --no-web-runtime \u58F0\u660E\u8BE5\u7248\u672C\u53EF\u7531 Web \u5165\u53E3\u52A0\u8F7D\u5E76\u542F\u52A8\u5230 Web\uFF0C\u9700\u8981\u4FDD\u7559\u6E90\u7801",
12033
12282
  " --desktop-platform <macos|windows> \u589E\u52A0\u53EF\u4E0B\u8F7D\u7684 Desktop \u76EE\u6807\uFF0C\u53EF\u91CD\u590D\u6307\u5B9A"
12034
12283
  ].join("\n"),
12035
12284
  invalidLocale: "\u4E0D\u652F\u6301\u8BED\u8A00 {{value}}\uFF0C\u53EA\u80FD\u4F7F\u7528 zh-CN \u6216 en\u3002",
@@ -12060,11 +12309,10 @@ var cli2 = {
12060
12309
  unsupportedWorkflowEncoding: 'Workflow \u6587\u4EF6 "{{path}}" \u4F7F\u7528\u4E86\u4E0D\u652F\u6301\u7684\u7F16\u7801\u3002',
12061
12310
  invalidBase64Content: 'Workflow \u6587\u4EF6 "{{path}}" \u7684 base64 \u5185\u5BB9\u65E0\u6548\u3002',
12062
12311
  versionOptionUnsupported: "\u4E0D\u518D\u652F\u6301 --version\uFF0C\u53D1\u5E03\u7248\u672C\u7531\u7CFB\u7EDF\u7BA1\u7406\u3002",
12312
+ webRuntimeOptionRemoved: "\u4E0D\u518D\u652F\u6301 --web-runtime / --no-web-runtime\uFF1AWeb \u7248\u73B0\u5728\u662F Desktop \u6E32\u67D3\u5C42\u7684\u6258\u7BA1\u6784\u5EFA\uFF0C\u8FD0\u884C\u7531 Server \u6267\u884C\uFF0C\u7248\u672C\u4E0D\u518D\u9700\u8981\u5355\u72EC\u58F0\u660E Web \u53D1\u884C\u76EE\u6807\u3002",
12063
12313
  invalidSourceMode: "--source-mode \u53EA\u80FD\u662F bundled \u6216 source\u3002",
12064
12314
  workspaceDownloadPlatformUnsupported: "workspace download \u4EC5\u652F\u6301 macOS \u548C Windows\uFF0C\u5F53\u524D\u5E73\u53F0\u4E3A {{platform}}\u3002",
12065
12315
  serverRuntimeOptionsConflict: "--server-runtime \u4E0E --no-server-runtime \u4E0D\u80FD\u540C\u65F6\u4F7F\u7528\u3002",
12066
- webRuntimeOptionsConflict: "--web-runtime \u4E0E --no-web-runtime \u4E0D\u80FD\u540C\u65F6\u4F7F\u7528\u3002",
12067
- webRuntimeRequiresSource: "--web-runtime \u4E0D\u80FD\u4E0E --source-mode bundled \u540C\u65F6\u4F7F\u7528\uFF1BWeb \u53D1\u884C\u5FC5\u987B\u4FDD\u7559\u6E90\u7801\u3002",
12068
12316
  invalidDesktopPlatform: "\u4E0D\u652F\u6301 --desktop-platform {{platform}}\uFF0C\u53EA\u80FD\u4F7F\u7528 macos \u6216 windows\u3002",
12069
12317
  executionTargetCommandUnsupported: "\u53D1\u884C\u76EE\u6807\u53C2\u6570\u4EC5\u652F\u6301 upload \u548C publish \u547D\u4EE4\u3002",
12070
12318
  desktopPlatformRequiresSource: "--desktop-platform \u4E0D\u80FD\u4E0E --source-mode bundled \u540C\u65F6\u4F7F\u7528\uFF1BDesktop \u53D1\u884C\u5FC5\u987B\u4FDD\u7559\u6E90\u7801\u3002",
@@ -110,14 +110,18 @@ function createCliRelatedProjectRuntime(options) {
110
110
  projectId: currentTarget.projectId,
111
111
  source
112
112
  });
113
- const runner = location === "local" ? createLocalProjectRunner({
113
+ const runner = createLocalProjectRunner({
114
114
  projectDir: currentTarget.projectDir,
115
- // The roots settled above, not the raw options: the relation and
116
- // the target's own run have to land on the same store, defaults
115
+ // Where the target keeps its data decides which store its own run
116
+ // uses: a project that lives on the server runs against the server,
117
+ // exactly as it would if its author started it here.
118
+ location,
119
+ // The roots settled above, not the raw options: the relation and the
120
+ // target's own run have to land on the same store, defaults
117
121
  // included, or one side writes what the other cannot see.
118
122
  kvStoreDir: localKvStoreDir,
119
123
  persistentValueStoreDir: localPersistentValueStoreDir
120
- }) : void 0;
124
+ });
121
125
  return {
122
126
  projectId: currentTarget.projectId,
123
127
  grant: access.grant,
@@ -155,7 +159,7 @@ function createLocalProjectRunner(options) {
155
159
  workflowDir: projectDir,
156
160
  entrypointId,
157
161
  args: [...args],
158
- storage: {
162
+ storage: options.location === "server" ? { host: "server" } : {
159
163
  host: "local",
160
164
  local: {
161
165
  kvStoreDir: options.kvStoreDir,
package/dist/index.js CHANGED
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  prepareCliInvocation
4
- } from "./chunk-TD4BZWNE.js";
4
+ } from "./chunk-PCNMKSS4.js";
5
5
  import {
6
6
  i18n,
7
7
  translateWorkflowCodeError
8
- } from "./chunk-BBQ4K7IP.js";
8
+ } from "./chunk-SGW3CIWG.js";
9
9
  import "./chunk-NSPRIPOP.js";
10
10
 
11
11
  // src/index.ts
@@ -24,12 +24,12 @@ async function main(argv = process.argv.slice(2)) {
24
24
  const prepared = prepareCliInvocation(argv);
25
25
  argv = prepared.argv;
26
26
  if (argv[0] === "workspace") {
27
- const workspaceCli = await import("./workspace-66Z2Y5OB.js");
27
+ const workspaceCli = await import("./workspace-I4I5VJI3.js");
28
28
  await workspaceCli.main(argv.slice(1), { localeInitialized: true });
29
29
  return typeof process.exitCode === "number" ? process.exitCode : 0;
30
30
  }
31
31
  if (argv[0] === "mcp") {
32
- const mcpCli = await import("./mcp-S6ZW7BDA.js");
32
+ const mcpCli = await import("./mcp-O6PS2QTB.js");
33
33
  return mcpCli.main(argv.slice(1));
34
34
  }
35
35
  if (argv.length === 0 || argv[0] === "help" || argv[0] === "--help" || argv[0] === "-h") {
@@ -39,7 +39,7 @@ async function main(argv = process.argv.slice(2)) {
39
39
  }
40
40
  const { register } = await import("tsx/esm/api");
41
41
  register();
42
- const localCli = await import("./local-UWHFTRXA.js");
42
+ const localCli = await import("./local-ISDXTMSA.js");
43
43
  return localCli.main(argv, { localeInitialized: true });
44
44
  }
45
45
  function formatHelp() {
@@ -1,18 +1,18 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  prepareCliInvocation
4
- } from "./chunk-TD4BZWNE.js";
4
+ } from "./chunk-PCNMKSS4.js";
5
5
  import {
6
6
  createCliRelatedProjectRuntime,
7
7
  parseCliRelatedProjectSpec
8
- } from "./chunk-C7SXLSPA.js";
8
+ } from "./chunk-VMFPUXPG.js";
9
9
  import {
10
10
  readWorkflowProjectInfo
11
11
  } from "./chunk-PI54SAI5.js";
12
12
  import {
13
13
  i18n,
14
14
  translateWorkflowCodeError
15
- } from "./chunk-BBQ4K7IP.js";
15
+ } from "./chunk-SGW3CIWG.js";
16
16
  import {
17
17
  __commonJS,
18
18
  __toESM
@@ -7,13 +7,13 @@ import {
7
7
  } from "./chunk-PGM3IPWA.js";
8
8
  import {
9
9
  parseCliRelatedProjectSpec
10
- } from "./chunk-C7SXLSPA.js";
10
+ } from "./chunk-VMFPUXPG.js";
11
11
  import {
12
12
  assertWorkflowUuid
13
13
  } from "./chunk-PI54SAI5.js";
14
14
  import {
15
15
  i18n
16
- } from "./chunk-BBQ4K7IP.js";
16
+ } from "./chunk-SGW3CIWG.js";
17
17
  import {
18
18
  __commonJS,
19
19
  __export,
@@ -8,7 +8,7 @@ import {
8
8
  } from "./chunk-PGM3IPWA.js";
9
9
  import {
10
10
  prepareCliInvocation
11
- } from "./chunk-TD4BZWNE.js";
11
+ } from "./chunk-PCNMKSS4.js";
12
12
  import {
13
13
  isWorkflowUuid,
14
14
  readWorkflowProjectInfo,
@@ -18,7 +18,7 @@ import {
18
18
  getCurrentLocale,
19
19
  i18n,
20
20
  translateWorkflowCodeError
21
- } from "./chunk-BBQ4K7IP.js";
21
+ } from "./chunk-SGW3CIWG.js";
22
22
  import {
23
23
  __commonJS,
24
24
  __toESM
@@ -1058,7 +1058,7 @@ async function main(argv = process.argv.slice(2), options = {}) {
1058
1058
  await commandLogout();
1059
1059
  return;
1060
1060
  case "status":
1061
- await commandStatus();
1061
+ await commandStatus(parsed);
1062
1062
  return;
1063
1063
  case "pack":
1064
1064
  await commandPack(parsed);
@@ -1161,7 +1161,7 @@ async function commandLogout() {
1161
1161
  await clearCliAuthConfig();
1162
1162
  printApiResponse({ errCode: 0, errMessage: "", data: { loggedIn: false } });
1163
1163
  }
1164
- async function commandStatus() {
1164
+ async function commandStatus(parsed) {
1165
1165
  const authConfig = await readCliAuthConfig();
1166
1166
  printApiResponse({
1167
1167
  errCode: 0,
@@ -1172,7 +1172,8 @@ async function commandStatus() {
1172
1172
  user: authConfig.user,
1173
1173
  expiresAt: authConfig.expiresAt,
1174
1174
  expiringSoon: isWorkflowAuthExpiringSoon(authConfig.expiresAt),
1175
- source: authConfig.source ?? null
1175
+ source: authConfig.source ?? null,
1176
+ effective: parsed.effective
1176
1177
  }
1177
1178
  });
1178
1179
  }
@@ -1970,7 +1971,6 @@ async function uploadProjectGroupPackage(options) {
1970
1971
  const query = new URLSearchParams({ fileName: archiveName });
1971
1972
  if (options.executionTargets !== void 0) {
1972
1973
  query.set("serverRuntime", String(options.executionTargets.server));
1973
- query.set("webRuntime", String(options.executionTargets.web));
1974
1974
  for (const platform of options.executionTargets.desktop) {
1975
1975
  query.append("desktopPlatform", platform);
1976
1976
  }
@@ -2119,7 +2119,6 @@ async function uploadPackage(options) {
2119
2119
  const query = new URLSearchParams({ fileName: archiveName });
2120
2120
  if (options.executionTargets !== void 0) {
2121
2121
  query.set("serverRuntime", String(options.executionTargets.server));
2122
- query.set("webRuntime", String(options.executionTargets.web));
2123
2122
  for (const platform of options.executionTargets.desktop) {
2124
2123
  query.append("desktopPlatform", platform);
2125
2124
  }
@@ -2326,12 +2325,19 @@ function parseArgs(argv) {
2326
2325
  const [command = "", ...rest] = argv;
2327
2326
  const positional = [];
2328
2327
  const authConfig = readCliAuthConfigSync();
2328
+ const envServer = process.env.WORKFLOW_SERVER_URL;
2329
+ const envToken = process.env.WORKFLOW_SERVER_ADMIN_KEY;
2329
2330
  const options = {
2330
- server: process.env.WORKFLOW_SERVER_URL ?? authConfig.serverUrl ?? DEFAULT_SERVER_URL,
2331
- token: process.env.WORKFLOW_SERVER_ADMIN_KEY ?? authConfig.apiKey ?? "",
2331
+ server: envServer ?? authConfig.serverUrl ?? DEFAULT_SERVER_URL,
2332
+ token: envToken ?? authConfig.apiKey ?? "",
2332
2333
  dependencies: [],
2333
2334
  desktopPlatforms: []
2334
2335
  };
2336
+ const effective = {
2337
+ serverUrl: options.server,
2338
+ serverSource: envServer !== void 0 ? "env" : authConfig.serverUrl.trim() !== "" ? "file" : "default",
2339
+ tokenSource: envToken !== void 0 ? "env" : authConfig.apiKey.trim() !== "" ? "file" : "none"
2340
+ };
2335
2341
  for (let index = 0; index < rest.length; index += 1) {
2336
2342
  const arg = rest[index];
2337
2343
  if (arg === "--") {
@@ -2341,9 +2347,12 @@ function parseArgs(argv) {
2341
2347
  switch (arg) {
2342
2348
  case "--server":
2343
2349
  options.server = requireValue(rest, index += 1, "--server");
2350
+ effective.serverUrl = options.server;
2351
+ effective.serverSource = "flag";
2344
2352
  break;
2345
2353
  case "--token":
2346
2354
  options.token = requireValue(rest, index += 1, "--token");
2355
+ effective.tokenSource = "flag";
2347
2356
  break;
2348
2357
  case "--target":
2349
2358
  options.target = requireValue(rest, index += 1, "--target");
@@ -2383,18 +2392,6 @@ function parseArgs(argv) {
2383
2392
  }
2384
2393
  options.serverRuntime = false;
2385
2394
  break;
2386
- case "--web-runtime":
2387
- if (options.webRuntime === false) {
2388
- throw new Error(i18n.t("webRuntimeOptionsConflict", { ns: "cli" }));
2389
- }
2390
- options.webRuntime = true;
2391
- break;
2392
- case "--no-web-runtime":
2393
- if (options.webRuntime === true) {
2394
- throw new Error(i18n.t("webRuntimeOptionsConflict", { ns: "cli" }));
2395
- }
2396
- options.webRuntime = false;
2397
- break;
2398
2395
  case "--desktop-platform": {
2399
2396
  const value = requireValue(rest, index += 1, "--desktop-platform");
2400
2397
  if (!isWorkflowDesktopExecutionPlatform(value)) {
@@ -2425,6 +2422,13 @@ function parseArgs(argv) {
2425
2422
  options.sourceMode = value;
2426
2423
  break;
2427
2424
  }
2425
+ // Removed options are named rather than falling through to `positional`:
2426
+ // an unknown flag would otherwise be read as the workflow name, and a
2427
+ // script that still passes it would fail with "workflow not found"
2428
+ // instead of saying what changed.
2429
+ case "--web-runtime":
2430
+ case "--no-web-runtime":
2431
+ throw new Error(i18n.t("webRuntimeOptionRemoved", { ns: "cli" }));
2428
2432
  default:
2429
2433
  positional.push(arg);
2430
2434
  break;
@@ -2451,37 +2455,34 @@ function parseArgs(argv) {
2451
2455
  if (options.projectGroup === true && command !== "pack" && command !== "upload" && command !== "publish") {
2452
2456
  throw new Error(i18n.t("projectGroupCommandUnsupported", { ns: "cli" }));
2453
2457
  }
2454
- const hasExecutionTargetOptions = options.serverRuntime !== void 0 || options.webRuntime !== void 0 || options.desktopPlatforms.length > 0;
2458
+ const hasExecutionTargetOptions = options.serverRuntime !== void 0 || options.desktopPlatforms.length > 0;
2455
2459
  if (hasExecutionTargetOptions && command !== "upload" && command !== "publish") {
2456
2460
  throw new Error(i18n.t("executionTargetCommandUnsupported", { ns: "cli" }));
2457
2461
  }
2458
2462
  if (options.sourceMode === "bundled" && options.desktopPlatforms.length > 0) {
2459
2463
  throw new Error(i18n.t("desktopPlatformRequiresSource", { ns: "cli" }));
2460
2464
  }
2461
- if (options.sourceMode === "bundled" && options.webRuntime === true) {
2462
- throw new Error(i18n.t("webRuntimeRequiresSource", { ns: "cli" }));
2463
- }
2464
2465
  if (options.deployment !== void 0 && (options.projectGroup === true || options.dependencies.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)) {
2465
2466
  throw new Error(i18n.t("deploymentOptionsConflict", { ns: "cli" }));
2466
2467
  }
2467
2468
  return {
2468
2469
  command,
2469
2470
  positional,
2470
- options
2471
+ options,
2472
+ effective: { ...effective, serverUrl: options.server }
2471
2473
  };
2472
2474
  }
2473
2475
  function resolveRequestedExecutionTargets(options, projectType) {
2474
- if (options.serverRuntime === void 0 && options.webRuntime === void 0 && options.desktopPlatforms.length === 0) {
2476
+ if (options.serverRuntime === void 0 && options.desktopPlatforms.length === 0) {
2475
2477
  return void 0;
2476
2478
  }
2477
2479
  return {
2478
2480
  server: options.serverRuntime ?? projectType !== "kanban",
2479
- web: options.webRuntime ?? false,
2480
2481
  desktop: [...options.desktopPlatforms]
2481
2482
  };
2482
2483
  }
2483
2484
  function resolveRequestedSourceMode(options, executionTargets) {
2484
- return (executionTargets?.desktop.length ?? 0) > 0 || executionTargets?.web === true ? "source" : options.sourceMode;
2485
+ return (executionTargets?.desktop.length ?? 0) > 0 ? "source" : options.sourceMode;
2485
2486
  }
2486
2487
  function requireLogin(parsed) {
2487
2488
  if (parsed.options.server.trim() === "" || parsed.options.token.trim() === "") {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@workflow-code/cli",
3
- "version": "0.2.4-20260922002",
3
+ "version": "0.2.4-20260929001",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "workflow-code": "./dist/index.js"
@@ -20,7 +20,7 @@
20
20
  "zod": "4.4.3"
21
21
  },
22
22
  "peerDependencies": {
23
- "workflow-code": "0.2.4-20260922010"
23
+ "workflow-code": "0.2.4-20260929001"
24
24
  },
25
25
  "devDependencies": {
26
26
  "@types/node": "^25.6.0",
@@ -29,15 +29,15 @@
29
29
  "tsup": "^8.5.1",
30
30
  "typescript": "^6.0.3",
31
31
  "vitest": "^4.1.7",
32
- "workflow-code": "0.2.4-20260922010",
32
+ "workflow-code": "0.2.4-20260929001",
33
33
  "@workflow-code/auth-config": "0.1.0",
34
- "@workflow-code/openai-responses": "0.1.0",
35
34
  "@workflow-code/execution-targets": "0.1.0",
35
+ "@workflow-code/i18n": "0.1.0",
36
+ "@workflow-code/openai-responses": "0.1.0",
36
37
  "@workflow-code/project-dependencies": "0.1.0",
37
38
  "@workflow-code/project-info": "0.1.0",
38
- "@workflow-code/i18n": "0.1.0",
39
- "@workflow-code/project-upload": "0.1.0",
40
39
  "@workflow-code/runtime-compatibility": "0.1.0",
40
+ "@workflow-code/project-upload": "0.1.0",
41
41
  "@workflow-code/workflow-ids": "0.1.0",
42
42
  "@workflow-code/workflow-mcp": "0.1.0"
43
43
  },