@workflow-code/cli 0.2.0 → 0.2.3-20260901001

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.
@@ -1,29 +1,4 @@
1
1
  #!/usr/bin/env node
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __commonJS = (cb, mod) => function __require() {
9
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key) && key !== except)
15
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
- // If the importer is in node compatibility mode or this is not an ESM
21
- // file that has been converted to a CommonJS file using a Babel-
22
- // compatible transform (i.e. "__esModule" has not been set), then set
23
- // "default" to the CommonJS "module.exports" for node compatibility.
24
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
- mod
26
- ));
27
2
 
28
3
  // node_modules/.pnpm/i18next@24.2.3_typescript@6.0.3/node_modules/i18next/dist/esm/i18next.js
29
4
  var isString = (obj) => typeof obj === "string";
@@ -2305,6 +2280,10 @@ var common = {
2305
2280
  advancedOptions: "Advanced options",
2306
2281
  advancedInputs: "Advanced inputs",
2307
2282
  closeAdvancedOptions: "Close advanced options",
2283
+ quickOptions: "Quick options",
2284
+ quickOptionsSummary: "Quick options: {{summary}}",
2285
+ resetQuickOptions: "Reset to defaults",
2286
+ backToQuickOptions: "Back to quick options: {{name}}",
2308
2287
  close: "Close",
2309
2288
  booleanYes: "Yes",
2310
2289
  booleanNo: "No",
@@ -2914,37 +2893,36 @@ var common = {
2914
2893
  },
2915
2894
  projectDependencies: {
2916
2895
  validation: {
2917
- duplicateSelection: 'Duplicate dependency selection "{{sourceId}}".',
2918
- unknownSelection: 'Unknown dependency selection "{{sourceId}}".',
2896
+ duplicateSelection: 'Duplicate dependency selection "{{alias}}".',
2897
+ unknownSelection: 'Unknown dependency selection "{{alias}}".',
2919
2898
  lockArray: "Project dependency lock must be an array.",
2920
- duplicateSourceId: 'Project dependency sourceId "{{sourceId}}" is duplicated.',
2899
+ duplicateAlias: 'Project dependency alias "{{alias}}" is duplicated.',
2900
+ duplicateDependencyProjectId: 'Project dependency projectId "{{projectId}}" is duplicated.',
2921
2901
  manifestVersion: "Project group manifest version must be {{version}}.",
2922
2902
  manifestProjects: "Project group manifest projects must be a non-empty array.",
2923
2903
  projectObject: "Project group {{field}} must be an object.",
2924
2904
  projectRole: "Project group {{field}} is invalid.",
2925
2905
  archiveFormat: "Project group {{field}} must be a tar.gz archive.",
2926
- rootSourceIdForbidden: "Project group {{field}} is not allowed for the root project.",
2906
+ rootAliasForbidden: "Project group {{field}} is not allowed for the root project.",
2927
2907
  duplicateProjectId: 'Project group projectId "{{projectId}}" is duplicated.',
2928
2908
  duplicateArchivePath: 'Project group archivePath "{{path}}" is duplicated.',
2929
2909
  rootCount: "Project group manifest must contain exactly one matching root project.",
2930
- selfReference: 'Project group dependency "{{sourceId}}" cannot reference the root Kanban project.',
2931
- includedArchiveMissing: 'Included dependency "{{sourceId}}" has no project archive.',
2910
+ selfReference: 'Project group dependency "{{alias}}" cannot reference the root project.',
2911
+ includedArchiveMissing: 'Included dependency "{{alias}}" has no project archive.',
2932
2912
  dependencyNotIncluded: 'Dependency project "{{projectId}}" is not marked included.',
2933
- includedNotPublished: 'Included dependency "{{sourceId}}" was not published.',
2913
+ includedNotPublished: 'Included dependency "{{alias}}" was not published.',
2934
2914
  lockObject: "{{field}} must be an object.",
2935
- lockSourceId: "{{field}} is invalid.",
2936
- lockKind: "{{field}} is invalid.",
2915
+ lockAlias: "{{field}} is invalid.",
2937
2916
  lockDelivery: "{{field}} is invalid.",
2938
- keyPrefixesArray: "{{field}} must be a non-empty array.",
2939
- keyPrefixesDuplicate: "{{field}} must not contain duplicates.",
2940
- externalPinned: 'External dependency "{{sourceId}}" cannot pin a version or source hash.',
2941
- includedPinRequired: 'Included dependency "{{sourceId}}" must pin version and sourceHash.',
2942
- includedVersionInvalid: 'Included dependency "{{sourceId}}" has an invalid version.',
2943
- includedHashInvalid: 'Included dependency "{{sourceId}}" has an invalid sourceHash.',
2917
+ externalPinned: 'External dependency "{{alias}}" cannot pin a version or source hash.',
2918
+ includedPinRequired: 'Included dependency "{{alias}}" must pin version and sourceHash.',
2919
+ includedVersionInvalid: 'Included dependency "{{alias}}" has an invalid version.',
2920
+ includedHashInvalid: 'Included dependency "{{alias}}" has an invalid sourceHash.',
2944
2921
  unsafePath: "Project group {{field}} is unsafe.",
2945
2922
  uuidRequired: "Project group {{field}} must be a UUID.",
2946
2923
  nonEmptyString: "{{field}} must be a non-empty string.",
2947
- optionalNonEmptyString: "{{field}} must be a non-empty string when provided."
2924
+ optionalNonEmptyString: "{{field}} must be a non-empty string when provided.",
2925
+ unsupportedField: "{{field}} is not supported."
2948
2926
  }
2949
2927
  },
2950
2928
  schedule: {
@@ -3195,10 +3173,10 @@ var common = {
3195
3173
  close: "Hide Logs"
3196
3174
  }
3197
3175
  },
3198
- kanbanRevisionSubscriptionInterrupted: "The data source update subscription was interrupted. Reconnecting.",
3199
- kanbanRevisionSubscriptionUnavailable: "The data source update subscription is temporarily unavailable. The last result remains visible.",
3200
- kanbanRevisionTargetChangedReconnect: "The data source version changed. Reconnecting.",
3201
- kanbanRevisionTargetChangedRefresh: "The data source version changed. Refresh the page.",
3176
+ kanbanRevisionSubscriptionInterrupted: "The related project update subscription was interrupted. Reconnecting.",
3177
+ kanbanRevisionSubscriptionUnavailable: "The related project update subscription is temporarily unavailable. The last result remains visible.",
3178
+ kanbanRevisionTargetChangedReconnect: "The related project version changed. Reconnecting.",
3179
+ kanbanRevisionTargetChangedRefresh: "The related project version changed. Refresh the page.",
3202
3180
  listSeparator: ", ",
3203
3181
  quotedValue: " \u201C{{value}}\u201D",
3204
3182
  previewAssistantMessage: "I will continue from this conversation and support **Markdown**.",
@@ -3257,6 +3235,14 @@ var desktop = {
3257
3235
  localeEn: "English",
3258
3236
  localeEnDetail: "Display the interface in English",
3259
3237
  allTypes: "All types",
3238
+ homeWorkspaceViewMode: "Workspace view",
3239
+ homeListView: "List view",
3240
+ homeGraphView: "Graph view",
3241
+ homeProjectGraph: "Project relationship graph",
3242
+ homeProjectGraphControls: "Project relationship graph zoom controls",
3243
+ homeProjectGraphZoomIn: "Zoom in",
3244
+ homeProjectGraphZoomOut: "Zoom out",
3245
+ homeProjectGraphFitView: "Fit graph to view",
3260
3246
  desktopCloudRunRecordsLabel: "Desktop cloud run records",
3261
3247
  desktopStatus: "Desktop status",
3262
3248
  archiveImportedAs: "{{archiveName}} imported as {{workflowName}}",
@@ -3636,26 +3622,33 @@ var desktop = {
3636
3622
  projectNamePlaceholder: "Project name",
3637
3623
  projectType: "Project type",
3638
3624
  projectUuid: "Project UUID",
3639
- assistantLinkedProjects: "Developer assistant links",
3640
- manageAssistantLinks: "Manage links",
3641
- assistantLinksDialogTitle: "Linked workspaces",
3642
- assistantLinksDialogDescription: "Manage local projects and folders that the developer assistant can update together.",
3643
- assistantLinksDirectCount: "{{count}} direct",
3644
- assistantLinksRecursiveCount: "{{count}} recursively accessible",
3645
- assistantLinksWarningCount: "{{count}} unavailable",
3646
- assistantAutomaticLinks: "Automatic links",
3647
- assistantManualLinks: "Manual links",
3648
- assistantLinkSearchPlaceholder: "Search local projects and folders",
3649
- assistantNoAutomaticLinks: "No automatically linked projects",
3650
- assistantNoManualCandidates: "No local projects or folders available to link",
3651
- assistantLinkUnavailable: "Unavailable",
3652
- assistantLinkAutomatic: "Automatic",
3653
- assistantLinksLoading: "Loading linked projects...",
3654
- assistantLinkWarningNotImported: "{{project}} is not imported",
3655
- assistantLinkWarningPathUnavailable: "{{project}} has an unavailable directory",
3656
- assistantLinkWarningNotEditable: "{{project}} is not editable",
3657
- assistantLinkWarningManifestInvalid: "{{project}} has an invalid automatic link declaration",
3658
- assistantLinkWarningFolderNotRegistered: "{{folder}} is not registered or is unavailable",
3625
+ relatedResources: "Related resources",
3626
+ manageRelatedResources: "Manage related resources",
3627
+ relatedResourcesDialogTitle: "Related resources",
3628
+ relatedResourcesDialogDescription: "Manage general related projects and local folders used only by the developer assistant.",
3629
+ relatedResourcesDirectCount: "{{count}} direct",
3630
+ relatedResourcesRecursiveCount: "{{count}} recursively accessible",
3631
+ relatedResourcesWarningCount: "{{count}} unavailable",
3632
+ relatedResourcesSearchPlaceholder: "Search local projects and folders",
3633
+ relatedResourcesLoading: "Loading related resources...",
3634
+ relatedResourcesEmpty: "No local projects available to relate",
3635
+ relatedProjects: "Related projects",
3636
+ relatedProjectAlias: "Alias",
3637
+ relatedProjectConfirmed: "Confirmed",
3638
+ relatedProjectPending: "Pending",
3639
+ relatedProjectUuidRequired: "A related project's package.json.id must be a UUID.",
3640
+ relatedResourceUnavailable: "Unavailable",
3641
+ assistantRelatedFolders: "Assistant folders",
3642
+ assistantFoldersOnly: "Developer assistant only",
3643
+ assistantFolderAvailable: "Available",
3644
+ grantToRelatedProject: "Allow the other project to access this project",
3645
+ grantFromRelatedProject: "This project accesses the other project",
3646
+ readAccess: "Read",
3647
+ writeAccess: "Write",
3648
+ accessModeNone: "None",
3649
+ accessModeAll: "All keys",
3650
+ accessModePrefixes: "Prefixes",
3651
+ accessPrefixesPlaceholder: "For example: data., cache.",
3659
3652
  publishNewVersion: "Publish new version",
3660
3653
  releaseExecutionTargets: "Release targets",
3661
3654
  releaseExecutionTargetsDescription: "Choose Server execution and local execution on this device for the immutable version.",
@@ -3675,31 +3668,22 @@ var desktop = {
3675
3668
  previousDesktopTargetsNotInherited: "Desktop targets for other operating systems were not inherited. Publish those targets on their matching operating systems.",
3676
3669
  projectGroupSourceSnapshotDescription: "The project group retains source snapshots for the root Kanban and included Workflows. Users with source download access can retrieve them.",
3677
3670
  kanbanSourceSnapshotDescription: "Kanban versions always retain source and static artifacts. Users with source download access can retrieve them.",
3678
- referencedProjects: "Referenced projects",
3679
- dependencyDeliveryDescription: "Source delivery and data authorization are independent. Neither uploads local KV data, schedules, run records, or environment variables.",
3680
- checkingDependenciesAndPreviousSettings: "Checking source projects and previous publish settings",
3671
+ referencedProjects: "Related projects",
3672
+ dependencyDeliveryDescription: "Only relationships confirmed by both projects can enter a project group. Project groups do not upload KV data, schedules, run records, or environment variables.",
3673
+ checkingDependenciesAndPreviousSettings: "Checking related projects and previous publish settings",
3681
3674
  dependencyServerMissing: "Project is not on the Server",
3682
- dependencyNotDownloaded: "Source project is not downloaded",
3683
- dependencyDataNotAuthorized: "Project exists on the Server, but data access is not authorized",
3675
+ dependencyNotDownloaded: "Related project is not downloaded",
3676
+ dependencyRelationshipPending: "Relationship is pending confirmation",
3684
3677
  dependencyDataInitialized: "Server data is initialized",
3685
3678
  dependencyDataNotInitialized: "Project is deployed, but Server data is not initialized",
3686
3679
  sourceDownloadLabel: "Source download: ",
3687
- dataGrantManagementLabel: "Data grant management: ",
3688
3680
  allowed: "Allowed",
3689
3681
  notAuthorized: "Not authorized",
3690
- validateOnPublish: "Validate during publish",
3691
3682
  includeSourceWithGroup: "Include source with group",
3692
- localDependencyNotDownloaded: "Local source project is not downloaded",
3693
- cannotManageServerDependency: "The current account cannot manage the Server source project",
3683
+ localDependencyNotDownloaded: "Local related project is not downloaded",
3694
3684
  publishDependencyAsSource: "Publish in source mode and lock the exact version",
3695
3685
  includeSourceWithGroupAria: "Include source with group for {{name}}",
3696
- authorizeDataRead: "Authorize data read",
3697
- dependencyKvPrefixesAuthorized: "The Server has authorized the current KV key prefixes",
3698
- cannotManageDependencyGrant: "The current account cannot manage authorization for the source project",
3699
- dependencyMustExistBeforeGrant: "Include the source with the group or create the source project on the Server first",
3700
- authorizeDeclaredKvPrefixes: "Authorize only the declared KV key prefixes",
3701
- authorizeDataReadAria: "Authorize data read for {{name}}",
3702
- unresolvedDependenciesBlockPublish: "{{count}} source projects are still not downloaded, uploaded, or authorized. This version cannot be published.",
3686
+ unresolvedDependenciesBlockPublish: "{{count}} confirmed related projects are still not downloaded or uploaded. This version cannot be published.",
3703
3687
  publishProgress: "Publish progress",
3704
3688
  publishProgressValue: "{{percent}}% \xB7 {{message}}",
3705
3689
  publishResult: "Publish result",
@@ -3785,7 +3769,6 @@ var desktop = {
3785
3769
  fixSuggestionAddId: ", add",
3786
3770
  fixSuggestionEnsureId: "and make sure it matches the folder / workflow id.",
3787
3771
  fixSuggestionPrefix: "Suggestion: open",
3788
- globalScope: "Global",
3789
3772
  hideConversationList: "Hide conversation list",
3790
3773
  hideDiagnostic: "Hide {{label}}",
3791
3774
  hideFileList: "Hide file list",
@@ -3809,7 +3792,6 @@ var desktop = {
3809
3792
  kvScopeFilterAriaLabel: "Filter KV scope",
3810
3793
  kvSearchAriaLabel: "Search KV data",
3811
3794
  kvSearchPlaceholder: "Search key or summary",
3812
- kvServerGlobalDetailUnavailable: "Server project details do not include global KV.",
3813
3795
  kvUnavailableTitle: "KV data is currently unavailable",
3814
3796
  kvValueTooLarge: "Value content is large",
3815
3797
  kvValueTooLargeDescription: "The current value is about {{size}}. To avoid blocking the UI, only the list summary is shown here.",
@@ -3885,7 +3867,7 @@ var desktop = {
3885
3867
  viewKVDetail: "View KV details",
3886
3868
  workflowConfigInvalidEditable: "Workflow configuration is invalid, but the source is still editable.",
3887
3869
  workflowExitedWith: "Workflow exited with {{code}}.",
3888
- workflowScope: "Workflow",
3870
+ projectScope: "Project",
3889
3871
  authStatusMissingServerTitle: "No remote server bound",
3890
3872
  authStatusMissingServerDetail: "Desktop is currently using the local workspace only. Bind a Workflow Server before publishing, pulling, or running remotely.",
3891
3873
  authStatusMissingServerBadge: "Not bound",
@@ -3983,6 +3965,20 @@ var desktop = {
3983
3965
  activityFilesLabel: "Files",
3984
3966
  activityInfoDescription: "View and edit project info",
3985
3967
  activityInfoLabel: "Info",
3968
+ mcpWorkspaceTitle: "MCP",
3969
+ mcpWorkspaceDescription: "AI clients start this local Workflow on demand through standard stdio MCP",
3970
+ mcpTransportLabel: "Transport",
3971
+ mcpServerNameLabel: "Server name",
3972
+ mcpToolsLabel: "Tools",
3973
+ mcpNoTools: "No Workflow entrypoints are available as MCP tools.",
3974
+ mcpJsonLabel: "Client configuration",
3975
+ mcpCopyJson: "Copy connection",
3976
+ mcpRefresh: "Refresh MCP connection",
3977
+ mcpLoading: "Loading MCP connection",
3978
+ mcpLoadFailed: "MCP connection unavailable",
3979
+ mcpLoadFailedDescription: "Refresh after confirming that the local Workflow and its entrypoints are valid.",
3980
+ activityOpenaiDescription: "Manage OpenAI Responses access for this Conversation project",
3981
+ activityOpenaiLabel: "OpenAI API",
3986
3982
  activityKnowledgeDescription: "Manage local or server knowledge base documents",
3987
3983
  activityKnowledgeLabel: "Knowledge base",
3988
3984
  activityKvDescription: "View local or server KV data",
@@ -3995,6 +3991,62 @@ var desktop = {
3995
3991
  activitySchedulesLabel: "Schedules",
3996
3992
  activityTerminalDescription: "Open the workspace terminal",
3997
3993
  activityTerminalLabel: "Terminal",
3994
+ openaiAccessTitle: "OpenAI API",
3995
+ openaiAccessDescription: "Use this Conversation project through the OpenAI Responses protocol.",
3996
+ openaiAccessRefresh: "Refresh OpenAI API access",
3997
+ openaiAccessLoading: "Loading OpenAI API access",
3998
+ openaiAccessStatusHeading: "Service status",
3999
+ openaiAccessAdapterEnabled: "Adapter enabled",
4000
+ openaiAccessAdapterDisabled: "Adapter not enabled",
4001
+ openaiAccessGatewayRunning: "Desktop proxy running",
4002
+ openaiAccessGatewayStopped: "Desktop proxy stopped",
4003
+ openaiAccessServerReady: "Server API ready",
4004
+ openaiAccessServerUnavailable: "Server API unavailable",
4005
+ openaiAccessGatewayError: "Desktop proxy error: {{message}}",
4006
+ openaiAccessGatewayUnavailable: "The Desktop proxy is unavailable. Resolve the local port error, then refresh.",
4007
+ openaiAccessAuthRequired: "Sign in before creating or using a project API key.",
4008
+ openaiAccessModelDiscoveryFailed: "No available model could be loaded for the current account. Check System AI settings.",
4009
+ openaiAccessAdapterRequiredTitle: "Project adapter required",
4010
+ openaiAccessAdapterRequiredDescription: "This Conversation project has not declared conversation.openai. Add the adapter in the project, then refresh this page.",
4011
+ openaiAccessReadDocs: "Read integration guide",
4012
+ openaiAccessEndpointsHeading: "Endpoints",
4013
+ openaiAccessDesktopProxyBase: "Desktop base URL",
4014
+ openaiAccessResponsesEndpoint: "Responses endpoint",
4015
+ openaiAccessServerBase: "Server direct base URL",
4016
+ openaiAccessServerDirectUnavailable: "A Server direct URL is available when viewing the cloud copy of this project.",
4017
+ openaiAccessCopyValue: "Copy {{label}}",
4018
+ openaiAccessKeyHeading: "Project API key",
4019
+ openaiAccessKeySecurity: "This key is bound to the current user and project. Store it as a secret and never commit it to source control.",
4020
+ openaiAccessNoKey: "No active project key",
4021
+ openaiAccessKeyPrefix: "Key prefix",
4022
+ openaiAccessKeyCreated: "Created",
4023
+ openaiAccessKeyLastUsed: "Last used",
4024
+ openaiAccessNeverUsed: "Never used",
4025
+ openaiAccessCreateKey: "Create key",
4026
+ openaiAccessRotateKey: "Rotate key",
4027
+ openaiAccessRevokeKey: "Revoke key",
4028
+ openaiAccessRotateTitle: "Rotate the project API key?",
4029
+ openaiAccessRotateDescription: "The current key will stop working immediately. Existing Responses and Conversations resources are not deleted.",
4030
+ openaiAccessRotateConfirm: "Rotate key",
4031
+ openaiAccessRevokeTitle: "Revoke the project API key?",
4032
+ openaiAccessRevokeDescription: "The current key will stop working immediately. Create a new key before the next API call.",
4033
+ openaiAccessRevokeConfirm: "Revoke key",
4034
+ openaiAccessOperationFailed: "OpenAI API access operation failed: {{message}}",
4035
+ openaiAccessSecretTitle: "Save this key now",
4036
+ openaiAccessSecretDescription: "The complete key is shown only after creation or rotation. It cannot be retrieved again.",
4037
+ openaiAccessSecretSaved: "I saved it",
4038
+ openaiAccessCopySecret: "Copy complete API key",
4039
+ openaiAccessModelsHeading: "Model",
4040
+ openaiAccessModelLabel: "Model used by the examples",
4041
+ openaiAccessNoModels: "No model is currently available to this account. Configure an enabled provider before calling the API.",
4042
+ openaiAccessExamplesHeading: "Request examples",
4043
+ openaiAccessExamplesDescription: "Set OPENAI_API_KEY to the complete project key before running an example.",
4044
+ openaiAccessExampleCurl: "curl",
4045
+ openaiAccessExampleNode: "Node.js",
4046
+ openaiAccessExamplePython: "Python",
4047
+ openaiAccessCopyExample: "Copy {{language}} example",
4048
+ openaiAccessCopied: "Copied",
4049
+ openaiAccessCopyFailed: "Copy failed",
3998
4050
  desktopNoLongerClonesToServer: "Desktop no longer clones to the server. Use Publish to host the current local project.",
3999
4051
  desktopOnlyClonesLocal: "Desktop only clones local projects.",
4000
4052
  backToReview: "Back to review",
@@ -4464,13 +4516,8 @@ var desktop = {
4464
4516
  selectProjectToEditInfo: "Select a project to edit its info.",
4465
4517
  settingsAria: "Settings: open Desktop settings",
4466
4518
  workspaceRailAria: "Workspace views",
4467
- dataSourceAuthorizationRequired: "Data source{{source}} is not authorized for this Kanban. Enable \u2018Grant data access\u2019 in publish settings. If the option is unavailable, ask an administrator of the source Workflow to grant access to the declared KV prefixes.",
4468
4519
  dependencyStatusLoadFailed: "Unable to load referenced project status.",
4469
- kanbanDataSourcePackageMissing: "The Kanban project is missing package.json, so its data source declaration cannot be read.",
4470
- kanbanDataSourcePackageMustBeUtf8: "The Kanban project's package.json must be UTF-8 text.",
4471
- kanbanDataSourceReadFailed: "Unable to read the Kanban data source declaration: {{details}}",
4472
- kanbanDataSourceSelfReference: "Data source \u201C{{sourceId}}\u201D cannot reference the current Kanban project itself.",
4473
- kanbanMissingDataSources: "Source projects not downloaded: {{sources}}. Download the referenced Workflows, then retry.",
4520
+ kanbanMissingRelatedProjects: "Related projects are unavailable: {{aliases}}. Confirm both manifests and import the projects, then retry.",
4474
4521
  previousPublishDependenciesLoadFailed: "Unable to load the referenced project settings from the previous publish.",
4475
4522
  previousPublishedVersionMissing: "The latest published version {{version}} was not found in the version list.",
4476
4523
  previousPublishSettingsLoadFailed: "Unable to load the previous publish settings.",
@@ -4480,7 +4527,7 @@ var desktop = {
4480
4527
  projectGroupTargetDirectoryInvalid: "Project-group target directory name \u201C{{directoryName}}\u201D is invalid.",
4481
4528
  projectGroupDisplayNameRequired: "The project display name must not be empty.",
4482
4529
  projectGroupServerUrlInvalid: "Workflow Server URL \u201C{{serverUrl}}\u201D must be a valid HTTP(S) URL.",
4483
- projectGroupSourceIdInvalidOrDuplicated: "Project-group source ID \u201C{{projectId}}\u201D is invalid or duplicated.",
4530
+ projectGroupProjectIdInvalidOrDuplicated: "Project-group project ID \u201C{{projectId}}\u201D is invalid or duplicated.",
4484
4531
  projectGroupFilePathInvalid: "Project-group file path \u201C{{filePath}}\u201D is invalid.",
4485
4532
  projectGroupDuplicateFilePath: "Project-group source contains the duplicated file path \u201C{{filePath}}\u201D.",
4486
4533
  projectGroupForbiddenHostData: "Project-group source contains forbidden host data at \u201C{{filePath}}\u201D.",
@@ -4488,13 +4535,13 @@ var desktop = {
4488
4535
  projectGroupProjectTypeMismatch: "Project \u201C{{projectId}}\u201D has type \u201C{{actualProjectType}}\u201D; its project-group role requires \u201C{{expectedProjectType}}\u201D.",
4489
4536
  projectGroupSourceContentInvalid: "Project \u201C{{projectId}}\u201D contains invalid source content.",
4490
4537
  projectGroupSourceHashMismatch: "Project \u201C{{projectId}}\u201D source content does not match its locked hash.",
4491
- projectGroupRootSourceIdForbidden: "The project-group root project cannot have a dependency source ID.",
4538
+ projectGroupRootAliasForbidden: "The project-group root project cannot have a related-project alias.",
4492
4539
  projectGroupRootVersionMismatch: "The root project version is {{actualVersion}}, but the download plan requires {{expectedVersion}}.",
4493
4540
  projectGroupUndeclaredPinnedDependency: "Dependency project \u201C{{projectId}}\u201D is not declared with the downloaded version and source hash.",
4494
4541
  projectGroupRootPackageMustBeUtf8: "The project-group root package.json must be UTF-8 text.",
4495
- projectGroupRootDataSourcesInvalid: "The root Kanban data source configuration is invalid.",
4496
- projectGroupDependencyLockMismatch: "The project-group dependency lock does not match the root Kanban data sources.",
4497
- projectGroupSelfReference: "The root Kanban cannot reference itself as a Workflow data source.",
4542
+ projectGroupRootRelatedProjectsInvalid: "The root Kanban related-project declaration is invalid.",
4543
+ projectGroupDependencyLockMismatch: "The project-group dependency lock does not match the root project's related projects.",
4544
+ projectGroupSelfReference: "The root project cannot reference itself as a related project.",
4498
4545
  projectGroupUndeclaredDependency: "Dependency project \u201C{{projectId}}\u201D is not declared by the project group.",
4499
4546
  projectGroupExistingProjectTypeMismatch: "Existing local project \u201C{{projectId}}\u201D has type \u201C{{actualProjectType}}\u201D; the project group requires \u201C{{expectedProjectType}}\u201D.",
4500
4547
  projectGroupCopyMissingIncludedSource: "Copying a project group requires source for every included dependency.",
@@ -4556,6 +4603,20 @@ var serverWeb = {
4556
4603
  accountAvatarLabel: "Avatar",
4557
4604
  accountAvatarUpload: "Upload avatar",
4558
4605
  accountCurrentIdentity: "Current identity",
4606
+ accountInviteAccept: "Set password and sign in",
4607
+ accountInviteAcceptedDescription: "This invitation has already been accepted. Ask an administrator for a new invitation if you cannot sign in.",
4608
+ accountInviteConfirmPasswordLabel: "Confirm password",
4609
+ accountInviteDescription: "Set the initial password for {{email}} to activate this Workflow account.",
4610
+ accountInviteExpiredDescription: "This invitation has expired. Ask an administrator to generate a new invitation.",
4611
+ accountInviteExpiresAt: "This single-use link expires {{expiresAt}}.",
4612
+ accountInviteInvalidDescription: "This invitation link is invalid or no longer exists.",
4613
+ accountInvitePasswordMismatch: "The passwords do not match.",
4614
+ accountInvitePasswordDescription: "Use at least 8 characters. The password is stored only as a salted scrypt hash.",
4615
+ accountInviteReading: "Reading account invitation\u2026",
4616
+ accountInviteSubmitting: "Activating account",
4617
+ accountInviteSuccessDescription: "Your account is active and the browser session has been created.",
4618
+ accountInviteSuccessTitle: "Account activated",
4619
+ accountInviteTitle: "Activate your account",
4559
4620
  accountDisplayNameFieldDescription: "Updates sync to the web session, device authorize and API Key ownership.",
4560
4621
  accountDisplayNameLabel: "Display name",
4561
4622
  accountDisplayNamePlaceholder: "Enter a display name",
@@ -4690,8 +4751,6 @@ var serverWeb = {
4690
4751
  busyLoadAiConfig: "Loading AI config",
4691
4752
  busyLoadAiUsage: "Loading AI usage",
4692
4753
  busyLoadAudit: "Loading audit log",
4693
- busyLoadGlobalKv: "Loading Global KV",
4694
- busyLoadGlobalKvPage: "Switching Global KV page",
4695
4754
  busyLoadLogs: "Loading run logs",
4696
4755
  busyLoadOrders: "Loading orders",
4697
4756
  busyLoadProjectDetail: "Loading project details",
@@ -4738,17 +4797,49 @@ var serverWeb = {
4738
4797
  confirmActionCancel: "Cancel",
4739
4798
  confirmActionConfirm: "Confirm",
4740
4799
  detailNavEmbed: "Embed",
4741
- detailNavDependencies: "Dependencies & access",
4800
+ detailNavRelatedProjects: "Related projects",
4742
4801
  detailNavEnv: "Environment",
4743
4802
  detailNavKnowledge: "Knowledge base",
4744
4803
  detailNavKv: "KV data",
4745
4804
  detailNavLogs: "Run logs",
4805
+ detailNavMcp: "MCP",
4746
4806
  detailNavMembers: "Members",
4747
4807
  detailNavOverview: "Overview",
4748
4808
  detailNavSchedules: "Schedules",
4749
4809
  detailNavSettings: "Settings",
4750
4810
  detailNavVersions: "Versions",
4751
4811
  detailNavWebhook: "Webhook",
4812
+ mcpApiKeySettings: "API Key settings",
4813
+ mcpAuthHeaderDescription: "Replace the placeholder with an account API Key or administrator Key. Browser cookies are not accepted.",
4814
+ mcpAuthHeaderLabel: "Authorization header",
4815
+ mcpClientConfigDescription: "Generic MCP client configuration. Keep the API Key in your client's secret storage.",
4816
+ mcpClientConfigLabel: "Client JSON",
4817
+ mcpConnectionDescription: "Connect an MCP client to the selected immutable Workflow target over standard Streamable HTTP.",
4818
+ mcpConnectionTitle: "MCP connection",
4819
+ mcpCopied: "Copied",
4820
+ mcpCopyAuthHeader: "Copy authorization header",
4821
+ mcpCopyClientConfig: "Copy client JSON",
4822
+ mcpCopyFailed: "Copy failed, retry",
4823
+ mcpCopyUrl: "Copy Streamable HTTP URL",
4824
+ mcpEmptyDescription: "Add an entrypoint to this Workflow target, then reconnect the MCP client.",
4825
+ mcpEmptyTitle: "No MCP tools",
4826
+ mcpLoadFailedDescription: "Unable to load the Workflow tool catalog for this target.",
4827
+ mcpLoadFailedTitle: "Tool catalog unavailable",
4828
+ mcpLoadingDescription: "Loading MCP tool catalog",
4829
+ mcpProjectTypeUnsupported: "Only Workflow projects can be exposed through MCP.",
4830
+ mcpServerNameLabel: "Server name",
4831
+ mcpTargetDraft: "draft (current draft)",
4832
+ mcpTargetLabel: "Target",
4833
+ mcpTargetLatest: "latest (current runnable release)",
4834
+ mcpToolsCount: "{{count}} tools",
4835
+ mcpToolsDescription: "Each Workflow entrypoint is exposed as one MCP tool. The catalog remains fixed for the session.",
4836
+ mcpToolsTitle: "Tools",
4837
+ mcpTransportLabel: "Transport",
4838
+ mcpTransportValue: "Streamable HTTP",
4839
+ mcpUnavailableDescription: "This project has no successfully built draft or server-runnable release. Build a draft or publish a Server-compatible version before connecting.",
4840
+ mcpUnavailableTitle: "MCP unavailable on Server",
4841
+ mcpUrlDescription: "POST carries MCP messages, GET opens SSE, and DELETE closes the bound session.",
4842
+ mcpUrlLabel: "Streamable HTTP URL",
4752
4843
  deviceApprove: "Approve login",
4753
4844
  deviceCardDescription: "The device flow must be explicitly approved by a web session before CLI / App can exchange it for an API Key.",
4754
4845
  deviceDeny: "Deny",
@@ -4819,52 +4910,44 @@ var serverWeb = {
4819
4910
  formatDurationUnknown: "Unknown",
4820
4911
  formatTimeUnknown: "Unknown time",
4821
4912
  formatUnknownTime: "Unknown time",
4822
- globalKvClear: "Clear",
4823
- globalKvCopyFailed: "The current browser does not allow copying. Please select the text manually.",
4824
- globalKvCopyJson: "Copy JSON",
4825
- globalKvCopyJsonCopied: "JSON copied",
4826
- globalKvCopyKey: "Copy Key",
4827
- globalKvCopySummary: "Copy summary",
4828
- globalKvCopySummaryCopied: "Summary copied",
4829
- globalKvDetailLoadingAria: "Loading KV details",
4830
- globalKvDetailLoadingText: "Loading the full value\u2026",
4831
- globalKvDetailTitle: "KV details",
4832
- globalKvDetailTooLarge: "The full value is large; only the list summary is shown to avoid the browser stalling while loading and formatting big JSON.",
4833
- globalKvEmptyDescription: "Adjust the search term, type or link filter and try again.",
4834
- globalKvEmptyTitle: "No matching KV records",
4835
- globalKvFilterLinkStateAria: "Link state",
4836
- globalKvFilterLinkStateOptions: "All link states",
4837
- globalKvFilterLinkedState: "Linked to logs",
4838
- globalKvFilterRunId: "runId",
4839
- globalKvFilterSearch: "Search Key...",
4840
- globalKvFilterUnlinkedState: "Not linked to logs",
4841
- globalKvFilterValueTypeAria: "Value type",
4842
- globalKvHeaderConversation: "Conversation",
4843
- globalKvHeaderKey: "Key",
4844
- globalKvHeaderLastWriter: "Last writer",
4845
- globalKvHeaderOperations: "Actions",
4846
- globalKvHeaderProject: "Project",
4847
- globalKvHeaderUpdatedAt: "Updated",
4848
- globalKvHeaderValue: "Value",
4849
- globalKvLinkStateAll: "All link states",
4850
- globalKvLinkedRunNotLinked: "No linked log",
4851
- globalKvLinkedRunView: "View linked log",
4852
- globalKvLoadJson: "Load JSON",
4853
- globalKvLoadJsonLoading: "Loading",
4854
- globalKvLoadJsonRetry: "Retry loading JSON",
4855
- globalKvMetaLastRun: "Last run",
4856
- globalKvMetaUnlinked: "Not linked",
4857
- globalKvNotRecorded: "Not recorded",
4858
- globalKvPageDescription: "A read-only troubleshooting view of cross-project shared cache and platform-level state. {{total}} records total.",
4859
- globalKvPageTitle: "Global KV",
4860
- globalKvRefresh: "Refresh",
4861
- globalKvScopeConversation: "conversation",
4862
- globalKvScopeWorkflow: "workflow",
4863
- globalKvStatLinked: "Linked to logs (this page)",
4864
- globalKvStatStructured: "Structured values (this page)",
4865
- globalKvStatTotal: "Records (matching filters)",
4866
- globalKvValueTypeAll: "All types",
4867
- globalKvViewDetail: "View KV details",
4913
+ projectKvClear: "Clear",
4914
+ projectKvCopyFailed: "The current browser does not allow copying. Please select the text manually.",
4915
+ projectKvCopyJson: "Copy JSON",
4916
+ projectKvCopyJsonCopied: "JSON copied",
4917
+ projectKvCopyKey: "Copy Key",
4918
+ projectKvCopySummary: "Copy summary",
4919
+ projectKvCopySummaryCopied: "Summary copied",
4920
+ projectKvDetailLoadingAria: "Loading KV details",
4921
+ projectKvDetailLoadingText: "Loading the full value\u2026",
4922
+ projectKvDetailTitle: "KV details",
4923
+ projectKvDetailTooLarge: "The full value is large; only the list summary is shown to avoid the browser stalling while loading and formatting big JSON.",
4924
+ projectKvEmptyDescription: "Adjust the search term, type or link filter and try again.",
4925
+ projectKvEmptyTitle: "No matching KV records",
4926
+ projectKvFilterLinkStateAria: "Link state",
4927
+ projectKvFilterLinkedState: "Linked to logs",
4928
+ projectKvFilterRunId: "runId",
4929
+ projectKvFilterSearch: "Search Key...",
4930
+ projectKvFilterUnlinkedState: "Not linked to logs",
4931
+ projectKvFilterValueTypeAria: "Value type",
4932
+ projectKvHeaderConversation: "Conversation",
4933
+ projectKvHeaderKey: "Key",
4934
+ projectKvHeaderLastWriter: "Last writer",
4935
+ projectKvHeaderOperations: "Actions",
4936
+ projectKvHeaderProject: "Project",
4937
+ projectKvHeaderUpdatedAt: "Updated",
4938
+ projectKvHeaderValue: "Value",
4939
+ projectKvLinkStateAll: "All link states",
4940
+ projectKvLinkedRunNotLinked: "No linked log",
4941
+ projectKvLinkedRunView: "View linked log",
4942
+ projectKvLoadJson: "Load JSON",
4943
+ projectKvLoadJsonLoading: "Loading",
4944
+ projectKvLoadJsonRetry: "Retry loading JSON",
4945
+ projectKvMetaLastRun: "Last run",
4946
+ projectKvMetaUnlinked: "Not linked",
4947
+ projectKvNotRecorded: "Not recorded",
4948
+ projectKvRefresh: "Refresh",
4949
+ projectKvValueTypeAll: "All types",
4950
+ projectKvViewDetail: "View KV details",
4868
4951
  inviteAcceptAndJoin: "Accept invitation and join",
4869
4952
  inviteAcceptFailed: "Failed to accept the invitation.",
4870
4953
  inviteAlreadyAccepted: "This invitation has already been accepted.",
@@ -4990,6 +5073,7 @@ var serverWeb = {
4990
5073
  logsSourceDesktop: "Desktop",
4991
5074
  logsSourceEmbed: "Embed",
4992
5075
  logsSourceExternalApi: "External API",
5076
+ logsSourceMcp: "MCP",
4993
5077
  logsSourceSchedule: "Schedule",
4994
5078
  logsSourceUnknown: "Not recorded",
4995
5079
  logsSourceUserSession: "User session",
@@ -5148,7 +5232,6 @@ var serverWeb = {
5148
5232
  membersUserSource: "User source",
5149
5233
  membersVisible: "{{page}} rows on this page / {{total}} filtered",
5150
5234
  navAdminCenter: "Admin center",
5151
- navGlobalKv: "Global KV data",
5152
5235
  navProjects: "Project workbench",
5153
5236
  navSettings: "Settings",
5154
5237
  overviewAccessAcceptTasks: "Accept tasks",
@@ -6104,7 +6187,7 @@ var serverWeb = {
6104
6187
  navEnterAdminCenter: "Enter admin center",
6105
6188
  busyResetEmbedToken: "Resetting Embed Token",
6106
6189
  busyResetWebhookSecret: "Resetting Webhook Secret",
6107
- projectKvDetailScopeError: "Project KV details only support the workflow / conversation scope.",
6190
+ projectKvDetailScopeError: "Project KV details only support the project / conversation scope.",
6108
6191
  filePickerChoose: "Choose file",
6109
6192
  tableLoadingRows: "Loading table rows",
6110
6193
  selectPlaceholder: "Select",
@@ -6125,7 +6208,7 @@ var serverWeb = {
6125
6208
  embedTabResetTokenDescription: "After reset, the old Token is immediately invalid, and links already embedded in external pages or shared before can no longer be accessed.",
6126
6209
  embedTabResetTokenAction: "Reset Token",
6127
6210
  embedTabPublicUrlDetail: "Public URL:",
6128
- globalKvFilterScopeAria: "Scope",
6211
+ projectKvFilterScopeAria: "Scope",
6129
6212
  overviewQueueDonutAria: "Run state summary queue occupancy chart",
6130
6213
  overviewCapacityBarsAria: "Concurrency capacity bar chart",
6131
6214
  overviewAccessBarsAria: "Access state bar chart",
@@ -6167,38 +6250,16 @@ var serverWeb = {
6167
6250
  webhookRunHeaderEntrypoint: "Workflow entrypoint",
6168
6251
  webhookSaveConfirmDetailsEntrypoint: "Workflow entrypoint:",
6169
6252
  versionsDayRunCount: "{{day}} / {{total}} runs",
6170
- dependenciesAddGrant: "Add data access grant",
6171
- dependenciesAddGrantDialogDescription: "Search for and select a consumer project, then limit the KV key prefixes it can read.",
6172
- dependenciesAddGrantDialogTitle: "Add data access grant",
6173
6253
  dependenciesApproveRequest: "Approve",
6174
- dependenciesConsumerProjectAria: "Consumer project",
6175
- dependenciesConsumerProjectCreateDescription: "Search by project name or type. Only available projects that have not been granted access are shown.",
6176
- dependenciesConsumerProjectEditDescription: "The consumer project is fixed by the original grant. To change it, revoke this grant and create a new one.",
6177
- dependenciesConsumerProjectLabel: "Consumer project",
6178
- dependenciesConsumerProjectPlaceholder: "Search for and select a consumer project",
6179
- dependenciesConsumerProjectsUnavailableTitle: "Consumer projects unavailable",
6180
- dependenciesCurrentConsumerProject: "current consumer project",
6181
- dependenciesDataAuthorized: "Authorized",
6182
- dependenciesDataAwaitingGrant: "Awaiting grant",
6183
- dependenciesDataGrantsDescription: "Allow signed-in users of a consumer project to read only the specified KV prefixes from this project, without exposing other project content.",
6184
- dependenciesDataGrantsTitle: "Data access grants",
6185
6254
  dependenciesDataInitialized: "Data available",
6186
- dependenciesDataUnauthorized: "Unauthorized",
6187
6255
  dependenciesDataUninitialized: "Not initialized",
6188
6256
  dependenciesDeliveryExternal: "External dependency",
6189
6257
  dependenciesDeliveryIncluded: "Included with group",
6190
- dependenciesEditGrantDialogDescription: "Update the KV key prefixes that {{name}} can read.",
6191
- dependenciesEditGrantDialogTitle: "Edit data access grant",
6192
- dependenciesEditGrantLabel: "Edit data access grant for {{name}}",
6193
- dependenciesEmptyDescription: "The selected exact version does not declare any workflow-kv data sources.",
6258
+ dependenciesEmptyDescription: "The selected exact version has no dependencies generated from confirmed related projects.",
6194
6259
  dependenciesEmptyTitle: "No referenced projects",
6195
- dependenciesGrantFieldsRequired: "Select a consumer project and enter at least one allowed key prefix.",
6196
6260
  dependenciesHeaderActions: "Actions",
6197
- dependenciesHeaderAllowedPrefixes: "Allowed prefixes",
6198
6261
  dependenciesHeaderAuthorizedUser: "Authorized user",
6199
6262
  dependenciesHeaderCapability: "Capability",
6200
- dependenciesHeaderConsumerProject: "Consumer project",
6201
- dependenciesHeaderDataGrant: "Data access",
6202
6263
  dependenciesHeaderDelivery: "Delivery",
6203
6264
  dependenciesHeaderExactVersion: "Exact version",
6204
6265
  dependenciesHeaderGrantedAt: "Granted",
@@ -6209,47 +6270,23 @@ var serverWeb = {
6209
6270
  dependenciesHeaderSourcePermission: "Source access",
6210
6271
  dependenciesHeaderSubmittedAt: "Submitted",
6211
6272
  dependenciesHeaderUpdatedAt: "Updated",
6212
- dependenciesKeyPrefixesDescription: "Enter one prefix per line. The final read scope is still limited by the consumer project's exact-version data source declaration.",
6213
- dependenciesKeyPrefixesLabel: "Allowed key prefixes",
6214
- dependenciesLoadDataGrantsFailed: "Unable to load data access grants.",
6215
- dependenciesLoadGrantableProjectsFailed: "Unable to load projects available for grants.",
6216
- dependenciesLoadPermissionsFailed: "Unable to load project permissions.",
6217
6273
  dependenciesLoadSourceRequestsFailed: "Unable to load source access requests.",
6218
6274
  dependenciesLoadStatusFailed: "Unable to load project dependency status.",
6219
- dependenciesLoadingDataGrants: "Loading data access grants",
6220
- dependenciesManagementUnavailableTitle: "Management permissions unavailable",
6221
- dependenciesNoDataGrantsDescription: "This project has not exposed any KV prefixes to other projects.",
6222
- dependenciesNoDataGrantsTitle: "No data access grants",
6223
- dependenciesNoGrantableConsumer: "No consumer projects are available for a grant",
6224
- dependenciesNoMatchingProjects: "No matching projects",
6225
6275
  dependenciesNoPendingRequestsDescription: "Requests submitted through a short-lived access link appear here.",
6226
6276
  dependenciesNoPendingRequestsTitle: "No pending requests",
6227
6277
  dependenciesNoSourceGrantsDescription: "Existing source permissions held by project members are not repeated in this table.",
6228
6278
  dependenciesNoSourceGrantsTitle: "No additional source grants",
6229
- dependenciesNotReadyDescription: "A source project is missing or its data prefixes have not been authorized, so this version cannot be published for sharing.",
6279
+ dependenciesNotReadyDescription: "A source project is missing, the relationship is unconfirmed, or included source is unavailable, so this version cannot be published for sharing.",
6230
6280
  dependenciesNotReadyTitle: "Dependencies for this version are not ready",
6231
- dependenciesOpenProjectName: "Open {{name}}",
6232
6281
  dependenciesOpenSourceProject: "Open source project",
6233
6282
  dependenciesPageDescription: "Review this project's references and manage data access and source delivery permissions. Host data is never transferred with a project group.",
6234
- dependenciesProjectNameUnavailable: "Name unavailable",
6235
- dependenciesProjectUnavailable: "Project unavailable",
6236
6283
  dependenciesRejectRequest: "Reject",
6237
6284
  dependenciesRequestSourceAccessLabel: "Request source access",
6238
6285
  dependenciesRequestSourceAccessTitle: "Request permission to download the source project",
6239
- dependenciesRevokeGrantConfirmDescription: "After revocation, open Studio and Embed data subscriptions are revalidated and stop reading this project.",
6240
- dependenciesRevokeGrantConfirmLabel: "Revoke grant",
6241
- dependenciesRevokeGrantConfirmTitle: "Revoke data access grant",
6242
- dependenciesRevokeGrantLabel: "Revoke data access grant for {{name}}",
6243
6286
  dependenciesRevokeSourceAccessConfirmDescription: "After revocation, this user can no longer download this project as an included dependency. Files already downloaded locally are not deleted.",
6244
6287
  dependenciesRevokeSourceAccessConfirmLabel: "Revoke access",
6245
6288
  dependenciesRevokeSourceAccessConfirmTitle: "Revoke source download access",
6246
6289
  dependenciesRevokeSourceAccessLabel: "Revoke source access",
6247
- dependenciesSaveChanges: "Save changes",
6248
- dependenciesSaveGrant: "Save grant",
6249
- dependenciesSaveGrantFailed: "Failed to save the data access grant.",
6250
- dependenciesSearchConsumerProjectAria: "Search consumer projects",
6251
- dependenciesSearchProjectPlaceholder: "Search project name or type",
6252
- dependenciesSelectedConsumerUnavailable: "The selected consumer project is no longer available. Select another project.",
6253
6290
  dependenciesServerDataUninitializedDescription: "Run the source Workflow's sync entrypoint on the Server. Local KV data is not uploaded automatically.",
6254
6291
  dependenciesServerDataUninitializedTitle: "Project deployed, but Server data is not initialized",
6255
6292
  dependenciesSourceCodeMissing: "Source missing",
@@ -6265,8 +6302,63 @@ var serverWeb = {
6265
6302
  dependenciesVersionCardDescription: "The dependency catalog comes from the selected exact version's dependency lock and does not follow changes to the source project's latest version.",
6266
6303
  dependenciesVersionCardTitle: "Dependencies for the current project version",
6267
6304
  dependenciesVersionUnlocked: "Not pinned",
6268
- projectSettingsDependenciesEntryDescription: "Review exact dependency locks, KV data grants, and source access requests.",
6269
- projectSettingsDependenciesEntryMeta: "Project-group delivery and data access are independent",
6305
+ relatedProjectsAccessAll: "All keys",
6306
+ relatedProjectsAccessNone: "No access",
6307
+ relatedProjectsAccessPrefixes: "Selected prefixes",
6308
+ relatedProjectsAdd: "Add related project",
6309
+ relatedProjectsAddTitle: "Add related project",
6310
+ relatedProjectsAlias: "Alias in this project",
6311
+ relatedProjectsAliasDescription: "This project uses the alias to access the other project. Use lowercase letters, digits, underscores, and hyphens only.",
6312
+ relatedProjectsAliasInvalid: "Both aliases must start with a lowercase letter, be at most 64 characters, and contain only lowercase letters, digits, underscores, and hyphens.",
6313
+ relatedProjectsAwaitingConfirmation: "Awaiting confirmation",
6314
+ relatedProjectsCardDescription: "Relationships are written to both project declarations. KV access is granted only when both declarations agree.",
6315
+ relatedProjectsCardTitle: "Project relationships",
6316
+ relatedProjectsConfirmed: "Confirmed",
6317
+ relatedProjectsEdit: "Edit relationship with {{name}}",
6318
+ relatedProjectsEditTitle: "Edit related project",
6319
+ relatedProjectsEditorDescription: "Set the alias on each side and the read/write rules each project grants to the other for its own KV data.",
6320
+ relatedProjectsEmptyDescription: "After a relationship is added, each project can use its alias to access the other project's explicitly authorized KV data.",
6321
+ relatedProjectsEmptyTitle: "No related projects",
6322
+ relatedProjectsGrantInboundDescription: "The KV range the other project allows this project to access.",
6323
+ relatedProjectsGrantInboundTitle: "Granted to this project",
6324
+ relatedProjectsGrantOutboundDescription: "The KV range this project allows the other project to access.",
6325
+ relatedProjectsGrantOutboundTitle: "Granted to the other project",
6326
+ relatedProjectsHeaderAlias: "Alias",
6327
+ relatedProjectsHeaderInbound: "Their grant",
6328
+ relatedProjectsHeaderOutbound: "This project's grant",
6329
+ relatedProjectsHeaderProject: "Related project",
6330
+ relatedProjectsHeaderStatus: "Status",
6331
+ relatedProjectsLoadFailed: "Unable to load related projects.",
6332
+ relatedProjectsNoMatches: "No matching projects",
6333
+ relatedProjectsOpen: "Open {{name}}",
6334
+ relatedProjectsPageDescription: "Manage general project relationships, KV access in both directions, and version dependencies generated from confirmed relationships.",
6335
+ relatedProjectsPending: "Pending",
6336
+ relatedProjectsPrefixCount: "{{count}} prefixes",
6337
+ relatedProjectsPrefixesAria: "{{label}} key prefixes",
6338
+ relatedProjectsPrefixesDescription: "In prefixes mode, enter one non-empty prefix per line. Other modes ignore this field.",
6339
+ relatedProjectsPrefixesRequired: "Prefixes mode requires at least one non-empty, unique prefix.",
6340
+ relatedProjectsProjectUnavailable: "Project unavailable",
6341
+ relatedProjectsRead: "Read",
6342
+ relatedProjectsReadShort: "Read",
6343
+ relatedProjectsRemove: "Remove relationship with {{name}}",
6344
+ relatedProjectsRemoveConfirmDescription: "Removing it immediately revokes the relationship and related KV access on both sides. Downloaded source files are not deleted.",
6345
+ relatedProjectsRemoveConfirmLabel: "Remove relationship",
6346
+ relatedProjectsRemoveConfirmTitle: "Remove related project",
6347
+ relatedProjectsSave: "Save relationship",
6348
+ relatedProjectsSaveFailed: "Failed to save the related project.",
6349
+ relatedProjectsSearchAria: "Search related target projects",
6350
+ relatedProjectsSearchPlaceholder: "Search project name or type",
6351
+ relatedProjectsTargetAlias: "Alias in the other project",
6352
+ relatedProjectsTargetAliasDescription: "The other project uses this alias to access the current project.",
6353
+ relatedProjectsTargetPlaceholder: "Search for and select a project",
6354
+ relatedProjectsTargetProject: "Target project",
6355
+ relatedProjectsTargetProjectAria: "Target related project",
6356
+ relatedProjectsTargetRequired: "Select a valid target project other than the current project.",
6357
+ relatedProjectsUnavailableTitle: "Related projects unavailable",
6358
+ relatedProjectsWrite: "Write",
6359
+ relatedProjectsWriteShort: "Write",
6360
+ projectSettingsDependenciesEntryDescription: "Manage general related projects, KV access in both directions, exact dependency locks, and source access requests.",
6361
+ projectSettingsDependenciesEntryMeta: "Pending relationships grant no KV access and are excluded from included dependency groups",
6270
6362
  sourceAccessBackToProjects: "Back to project workbench",
6271
6363
  sourceAccessCheckingLink: "Checking access request link",
6272
6364
  sourceAccessCurrentStatus: "Current status: {{status}}",
@@ -6324,6 +6416,20 @@ var server = {
6324
6416
  terminalNotEnabled: "Remote terminal is not enabled. Set WORKFLOW_SERVER_TERMINAL_ENABLED=1.",
6325
6417
  requestBodyTooLarge: "Request body is too large.",
6326
6418
  sub2apiProxyBodyTooLarge: "The Sub2API LLM proxy request body exceeds the 50 MiB limit.",
6419
+ mcpSessionMissingOrExpired: "MCP session does not exist or has expired.",
6420
+ mcpSessionIdRequired: "A valid MCP session ID is required.",
6421
+ mcpProjectTypeUnsupported: 'Project type "{{projectType}}" cannot be exposed through MCP.',
6422
+ mcpTargetChanged: "The MCP session target changed. Reconnect before calling tools.",
6423
+ mcpBearerRequired: "MCP requires an Authorization: Bearer API key.",
6424
+ mcpBearerKeyRequired: "MCP only accepts an account API key or administrator key.",
6425
+ mcpDraftChanged: "The Workflow draft changed. Reconnect before calling tools again.",
6426
+ mcpSessionCredentialMismatch: "MCP session belongs to a different credential.",
6427
+ mcpSessionProjectMismatch: "MCP session belongs to a different project.",
6428
+ mcpSessionTargetMismatch: "MCP session belongs to a different target.",
6429
+ mcpRunSessionMismatch: "The MCP session does not own this workflow run.",
6430
+ mcpTargetSingleString: "MCP target must be a single string.",
6431
+ mcpTargetInvalid: "MCP target must be latest, draft, or an exact semantic version.",
6432
+ mcpSessionHeaderInvalid: "MCP session ID header is invalid.",
6327
6433
  scheduleDeleteActive: "A workflow schedule cannot be deleted while a trigger is active.",
6328
6434
  scheduleExactVersionRequired: "Server workflow schedules require an exact published version.",
6329
6435
  schedulerStopping: "The workflow scheduler is stopping.",
@@ -6332,7 +6438,11 @@ var server = {
6332
6438
  schedulePostgresStorageRequired: "Workflow scheduling requires PostgreSQL storage.",
6333
6439
  scheduleTargetChanged: "The workflow schedule target no longer resolves exactly.",
6334
6440
  scheduleUpdateActive: "A workflow schedule cannot be updated while a trigger is active.",
6335
- kanbanDataSourceUnavailable: "Kanban data source is unavailable.",
6441
+ kanbanRelatedProjectUnavailable: "Kanban related project is unavailable.",
6442
+ relatedProjectMissing: "Related project does not exist.",
6443
+ relatedProjectKVAccessDenied: "Related project KV access is not granted for this key.",
6444
+ relatedProjectUnavailable: "Related project is unavailable or awaiting confirmation.",
6445
+ relatedProjectGrantInvalid: "Related project grant is invalid.",
6336
6446
  scheduleUserRequired: "A user account is required to manage workflow schedules.",
6337
6447
  scheduleServerUnavailable: "Workflow scheduling is not available on this server.",
6338
6448
  sourceAccessStatusInvalid: 'status must be "approved" or "rejected".',
@@ -6344,15 +6454,13 @@ var server = {
6344
6454
  projectGroupRootArchiveType: "The project-group root archive must contain a Kanban project.",
6345
6455
  projectGroupPreviousLockMismatch: "The previously published Kanban root has a different dependency lock.",
6346
6456
  projectGroupImmutableDownload: "Project groups can only download immutable published versions.",
6347
- dataGrantSourceType: "A data-source grant source must be an existing Workflow project.",
6348
- dataGrantConsumerType: "A data-source grant consumer must be an existing Kanban project.",
6349
6457
  sourceAccessReasonLength: "Access request reason must contain 2 to 1000 characters.",
6350
6458
  sourceAccessLinkInvalid: "Project source access request link is invalid or expired.",
6351
6459
  projectGroupRootMissing: "Project-group root is missing.",
6352
6460
  projectGroupDraftChanged: "Project-group dependency manifest no longer matches the root Kanban draft.",
6353
6461
  projectDependencyStorageUnavailable: "Project dependency delivery requires PostgreSQL storage.",
6354
- dependencyLocksKanbanOnly: "Only Kanban projects can publish data-source dependency locks.",
6355
- dependencyLockDeclarationMismatch: "Published dependency lock does not match the Kanban data-source declaration.",
6462
+ projectDependencyLockInvalid: "Project dependency lock is invalid.",
6463
+ dependencyLockRelatedProjectsMismatch: "Published dependency lock does not match confirmed related projects.",
6356
6464
  schedulesWorkflowOnly: "Workflow schedules can only target Workflow projects.",
6357
6465
  conversationEntrypointForbidden: "Conversation projects do not accept entrypointId.",
6358
6466
  targetBuildRequired: "Target is not built successfully.",
@@ -6361,8 +6469,6 @@ var server = {
6361
6469
  archiveInspectFailed: "Failed to inspect tar.gz package.",
6362
6470
  archiveEntryLimit: "Archive contains too many entries.",
6363
6471
  archiveExpandedSizeLimit: "Archive expanded size exceeds the 512 MB limit.",
6364
- dataGrantPrefixCount: "Data-source grants require 1 to 32 key prefixes.",
6365
- dataGrantPrefixDuplicates: "Data-source grant keyPrefixes must not contain duplicates.",
6366
6472
  accountCreateDeploymentRequired: "A user account is required to create a project deployment.",
6367
6473
  accountViewSourceRequestRequired: "A user account is required to view a project source access request.",
6368
6474
  accountRequestSourceAccessRequired: "A user account is required to request project source access.",
@@ -6389,17 +6495,14 @@ var server = {
6389
6495
  workflowReservationUnavailable: 'Workflow "{{workflowId}}" version reservation is unavailable.',
6390
6496
  workflowReservationChanged: 'Workflow "{{workflowId}}" version reservation changed.',
6391
6497
  workflowDraftChanged: 'Workflow "{{workflowId}}" draft changed after deployment preparation.',
6392
- dependencyLockSourceMismatch: 'Published dependency lock "{{sourceId}}" does not match the Kanban data-source declaration.',
6498
+ dependencyLockRelatedProjectMismatch: 'Published dependency lock "{{alias}}" does not match a confirmed related project.',
6393
6499
  versionDependencyLockInvalid: 'Workflow "{{workflowId}}" version "{{version}}" has an invalid dependency lock.',
6394
6500
  projectNotExecutable: 'Project "{{projectName}}" is not executable.',
6395
6501
  archiveEntrySizeInvalid: 'Archive entry "{{path}}" has an invalid size.',
6396
6502
  scheduleIdInvalid: 'Invalid workflow schedule id "{{scheduleId}}".',
6397
- dataGrantPrefixType: "Data-source grant keyPrefixes[{{index}}] must be a string.",
6398
- dataGrantPrefixInvalid: "Data-source grant keyPrefixes[{{index}}] is invalid.",
6399
6503
  unknownEntrypoint: 'Entrypoint "{{entrypointId}}" does not exist for Workflow "{{workflowId}}".',
6400
6504
  entrypointResumeLocked: "entrypointId cannot be changed when resuming a waiting run.",
6401
6505
  archiveUnsupportedType: 'Archive entry "{{path}}" uses unsupported type "{{type}}". Only regular files and directories are allowed.',
6402
- kanbanDataSourceUnauthorized: 'Kanban data source "{{sourceId}}" is not authorized for sharing.',
6403
6506
  workflowOwnedByAnotherAccount: 'Workflow "{{workflowId}}" already exists and is owned by another account.',
6404
6507
  workflowVersionServerDisabled: 'Workflow "{{workflowId}}" version "{{version}}" is not enabled for Server execution. Download it on a supported Desktop platform instead.',
6405
6508
  workflowDraftServerDisabled: 'Workflow "{{workflowId}}" draft is not enabled for Server execution.',
@@ -6413,7 +6516,7 @@ var server = {
6413
6516
  var cli = {
6414
6517
  rootHelp: [
6415
6518
  "Usage:",
6416
- " workflow-code [--locale <zh-CN|en>] <run|json|structure|resolve-params> [workflow-dir] [args]",
6519
+ " workflow-code [--locale <zh-CN|en>] <run|json|structure|resolve-params|mcp> [workflow-dir] [args]",
6417
6520
  " workflow-code [--locale <zh-CN|en>] workspace <command> [args]",
6418
6521
  "",
6419
6522
  "Local commands:",
@@ -6421,6 +6524,7 @@ var cli = {
6421
6524
  " json Run locally and print the JSON report",
6422
6525
  " structure Inspect workflow structure",
6423
6526
  " resolve-params Resolve dynamic workflow parameters",
6527
+ " mcp Expose workflow entrypoints through stdio MCP",
6424
6528
  "",
6425
6529
  "Workspace commands:",
6426
6530
  " login, logout, status, health, pack, upload, preparation,",
@@ -6431,10 +6535,24 @@ var cli = {
6431
6535
  "",
6432
6536
  "Run `workflow-code workspace --help` for workspace command details."
6433
6537
  ].join("\n"),
6538
+ mcpHelp: [
6539
+ "Usage:",
6540
+ " workflow-code mcp <workflow-dir> [options]",
6541
+ "",
6542
+ "Options:",
6543
+ " --data-dir <absolute-dir> Root for local workflow data",
6544
+ " --file-store-dir <absolute-dir> Managed input file store",
6545
+ " --kv-store-dir <absolute-dir> Workflow KV store",
6546
+ " --persistent-value-store-dir <dir> Persistent value store",
6547
+ " --file-create-store-dir <absolute-dir> Generated file store",
6548
+ " --desktop-config-dir <absolute-dir> Desktop saved-auth directory",
6549
+ " --auth-dir <absolute-dir> CLI saved-auth directory",
6550
+ " --related-project <alias>=<absolute-project-dir> Repeatable related project binding"
6551
+ ].join("\n"),
6434
6552
  localHelp: [
6435
6553
  "Usage:",
6436
- " workflow-code [--locale <zh-CN|en>] run [workflow-dir] [--] [...args]",
6437
- " workflow-code [--locale <zh-CN|en>] json [workflow-dir] [--] [...args]",
6554
+ " workflow-code [--locale <zh-CN|en>] run [workflow-dir] [--related-project <alias>=<absolute-project-dir>] [--] [...args]",
6555
+ " workflow-code [--locale <zh-CN|en>] json [workflow-dir] [--related-project <alias>=<absolute-project-dir>] [--] [...args]",
6438
6556
  " workflow-code json [workflow-dir] --conversation-id <id> [--] [...args]",
6439
6557
  " workflow-code structure [workflow-dir]",
6440
6558
  " workflow-code resolve-params [workflow-dir] < request.json",
@@ -6445,7 +6563,10 @@ var cli = {
6445
6563
  " workflow-code json . -- --target aliyun --dry-run",
6446
6564
  " workflow-code json . --run-id <id> --resolved-user-inputs-json <json> -- [...args]",
6447
6565
  " workflow-code structure .",
6448
- " workflow-code resolve-params . < request.json"
6566
+ " workflow-code resolve-params . < request.json",
6567
+ "",
6568
+ "Options:",
6569
+ " --related-project <alias>=<absolute-project-dir> Bind one declared related project; repeatable"
6449
6570
  ].join("\n"),
6450
6571
  workspaceHelp: [
6451
6572
  "Usage: workflow-code [--locale <zh-CN|en>] workspace <command> [args]",
@@ -6459,10 +6580,10 @@ var cli = {
6459
6580
  " status",
6460
6581
  " health",
6461
6582
  " pack <workflow> [--path <workflow-dir>] [--output <file.tgz>] [--project-group] [--dependency <alias>=<path>]",
6462
- " 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>]",
6583
+ " 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>]",
6463
6584
  " preparation <workflow-id> <job-id>",
6464
6585
  " download <workflow> [--target draft|latest|version] [--path <dir>]",
6465
- " 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>]",
6586
+ " publish <workflow> [--release-log <text>] [--source-mode bundled|source] [--server-runtime|--no-server-runtime] [--desktop-platform macos|windows] [--project-group] [--dependency <alias>=<path>]",
6466
6587
  " publish --deployment <id>",
6467
6588
  " run <workflow> [...args] [--target draft|latest|version] [--entrypoint <id>]",
6468
6589
  " debug-node <workflow> <node> [...args] [--target draft|latest|version] [--entrypoint <id>]",
@@ -6488,10 +6609,12 @@ var cli = {
6488
6609
  invalidResolvedInput: "Invalid resolved user input item.",
6489
6610
  loginRequiresServer: "login requires --server.",
6490
6611
  deviceLoginPrompt: "Open the verification page to approve this login:\n{{url}}\nUser code: {{code}}",
6491
- workflowIdRequired: "Workflow package.json must include a UUID id. Use `workflow-code workspace upload <workflow> --create` after login to create and bind a server project.",
6612
+ workflowIdRequired: "Workflow package.json must declare a UUID id first; --create only creates or reuses that UUID and never assigns or writes back an id.",
6492
6613
  archiveCreateFailed: "Failed to create archive: {{details}}",
6493
6614
  workflowNotBound: 'Workflow "{{workflow}}" is not bound to a server UUID. Create or bind it first with `workflow-code workspace upload {{workflow}} --create`.',
6494
6615
  projectCreationFailed: "Workflow project creation failed.",
6616
+ projectInfoDataStorageRequired: "Workflow package.json must declare workflowCode.projectInfo.dataStorage.mode.",
6617
+ projectCreationIdMismatch: "Server returned a project UUID that does not match package.json.id.",
6495
6618
  packageMustBeObject: 'Workflow package "{{path}}" must contain a JSON object.',
6496
6619
  packageReadFailed: 'Unable to read workflow package "{{path}}".',
6497
6620
  packageStringRequired: 'Workflow package.json must include string "{{key}}".',
@@ -6514,16 +6637,13 @@ var cli = {
6514
6637
  forbiddenBlocked: "403: Your account has been blocked from running this project.",
6515
6638
  forbiddenNoPermission: "403: Your account does not have permission to run this project.",
6516
6639
  forbiddenFallback: "403: {{message}}",
6517
- dependencyMustBeWorkflow: "Dependency {{sourceId}} must be a Workflow project.",
6518
6640
  dependencyOptionCommandUnsupported: "--dependency is only supported by pack, upload, and publish.",
6519
- dependencyPackageIdMismatch: "Dependency {{sourceId}} package id must match declared projectId {{projectId}}.",
6641
+ dependencyPackageIdMismatch: "Dependency {{alias}} package id must match related projectId {{projectId}}.",
6520
6642
  dependencyProjectPathConflict: "Project {{projectId}} is mapped to multiple dependency paths.",
6521
6643
  deploymentCommandUnsupported: "--deployment is only supported by publish.",
6522
6644
  deploymentOptionsConflict: "--deployment cannot be combined with project-group creation or single-project publish options.",
6523
- duplicateDependencySource: "Duplicate --dependency source id {{sourceId}}.",
6524
- duplicateGrantDataAccessSource: "Duplicate --grant-data-access source id {{sourceId}}.",
6525
- grantDataAccessCommandUnsupported: "--grant-data-access is only supported by upload and publish.",
6526
- invalidDependencyOption: "Invalid --dependency {{option}}; expected <source-id>=<project-path>.",
6645
+ duplicateDependencySource: "Duplicate --dependency alias {{alias}}.",
6646
+ invalidDependencyOption: "Invalid --dependency {{option}}; expected <alias>=<project-path>.",
6527
6647
  noWaitCommandUnsupported: "--no-wait is only supported by upload.",
6528
6648
  noWaitProjectGroupUnsupported: "--no-wait is not supported by project-group upload.",
6529
6649
  projectGroupArchiveCreateFailed: "Failed to create project-group archive: {{details}}",
@@ -6540,9 +6660,8 @@ var cli = {
6540
6660
  projectGroupDownloadRootCountInvalid: "Server project-group download must contain exactly one matching root project.",
6541
6661
  projectGroupDownloadRootPackageInvalidJson: "Server project-group root package.json is invalid JSON.",
6542
6662
  projectGroupDownloadRootPackageUtf8: "Server project-group root package.json must be UTF-8 text.",
6543
- projectGroupDownloadRootSourceIdForbidden: "Server project-group root project cannot have a dependency source id.",
6663
+ projectGroupDownloadRootAliasForbidden: "Server project-group root project cannot have a related-project alias.",
6544
6664
  projectGroupDownloadRootVersionMismatch: "Server project-group root version does not match its download plan.",
6545
- projectGroupDownloadSelfReference: "Server project-group data source {{sourceId}} cannot reference the root Kanban project.",
6546
6665
  projectGroupDownloadSourceHashMismatch: "Server project-group {{role}} project {{projectId}} source hash does not match its files.",
6547
6666
  projectGroupDownloadUndeclaredDependency: "Server project-group download contains undeclared dependency project {{projectId}}.",
6548
6667
  projectGroupDownloadedPackageIdMismatch: "Downloaded project package id does not match {{projectId}}.",
@@ -6550,11 +6669,11 @@ var cli = {
6550
6669
  projectGroupRequiredPathForbidden: "Project-group required path {{path}} is forbidden host data.",
6551
6670
  projectGroupRootIdRequired: "Project-group root package.json must contain a UUID id.",
6552
6671
  projectGroupRootMustBeKanban: "A project-group root must be a Kanban project.",
6553
- projectGroupSelfReference: "Kanban data source {{sourceId}} cannot reference the project-group root itself.",
6672
+ projectGroupRelatedProjectPending: "Related project {{alias}} is not confirmed by both project manifests and cannot be included.",
6554
6673
  projectGroupUploadFileUnsupported: "Project-group upload does not accept --file; use --path and --dependency so the manifest can be verified.",
6555
6674
  projectGroupUploadRootIdRequired: "Project-group upload requires the root package.json to contain a UUID id or --create.",
6556
6675
  publishGroupCommandUnsupported: "--publish-group is only supported by upload.",
6557
- unknownGrantDataAccessSource: "Unknown --grant-data-access source id {{sourceId}}."
6676
+ unknownWorkspaceOption: "Unknown workspace option: {{option}}"
6558
6677
  };
6559
6678
 
6560
6679
  // .shared/i18n/resources/en/permissions.ts
@@ -6692,6 +6811,10 @@ var common2 = {
6692
6811
  advancedOptions: "\u9AD8\u7EA7\u9009\u9879",
6693
6812
  advancedInputs: "\u9AD8\u7EA7\u8F93\u5165",
6694
6813
  closeAdvancedOptions: "\u6536\u8D77\u9AD8\u7EA7\u9009\u9879",
6814
+ quickOptions: "\u5FEB\u6377\u9009\u9879",
6815
+ quickOptionsSummary: "\u5FEB\u6377\u9009\u9879\uFF1A{{summary}}",
6816
+ resetQuickOptions: "\u91CD\u7F6E\u4E3A\u9ED8\u8BA4\u503C",
6817
+ backToQuickOptions: "\u8FD4\u56DE\u5FEB\u6377\u9009\u9879\uFF1A{{name}}",
6695
6818
  close: "\u5173\u95ED",
6696
6819
  booleanYes: "\u662F",
6697
6820
  booleanNo: "\u5426",
@@ -7301,37 +7424,36 @@ var common2 = {
7301
7424
  },
7302
7425
  projectDependencies: {
7303
7426
  validation: {
7304
- duplicateSelection: "\u4F9D\u8D56\u9009\u62E9\u201C{{sourceId}}\u201D\u91CD\u590D\u3002",
7305
- unknownSelection: "\u672A\u77E5\u7684\u4F9D\u8D56\u9009\u62E9\u201C{{sourceId}}\u201D\u3002",
7427
+ duplicateSelection: "\u4F9D\u8D56\u9009\u62E9\u201C{{alias}}\u201D\u91CD\u590D\u3002",
7428
+ unknownSelection: "\u672A\u77E5\u7684\u4F9D\u8D56\u9009\u62E9\u201C{{alias}}\u201D\u3002",
7306
7429
  lockArray: "\u9879\u76EE\u4F9D\u8D56\u9501\u5FC5\u987B\u662F\u6570\u7EC4\u3002",
7307
- duplicateSourceId: "\u9879\u76EE\u4F9D\u8D56 sourceId\u201C{{sourceId}}\u201D\u91CD\u590D\u3002",
7430
+ duplicateAlias: "\u9879\u76EE\u4F9D\u8D56 alias\u201C{{alias}}\u201D\u91CD\u590D\u3002",
7431
+ duplicateDependencyProjectId: "\u9879\u76EE\u4F9D\u8D56 projectId\u201C{{projectId}}\u201D\u91CD\u590D\u3002",
7308
7432
  manifestVersion: "\u9879\u76EE\u7EC4\u6E05\u5355\u7248\u672C\u5FC5\u987B\u662F {{version}}\u3002",
7309
7433
  manifestProjects: "\u9879\u76EE\u7EC4\u6E05\u5355\u7684 projects \u5FC5\u987B\u662F\u975E\u7A7A\u6570\u7EC4\u3002",
7310
7434
  projectObject: "\u9879\u76EE\u7EC4 {{field}} \u5FC5\u987B\u662F\u5BF9\u8C61\u3002",
7311
7435
  projectRole: "\u9879\u76EE\u7EC4 {{field}} \u65E0\u6548\u3002",
7312
7436
  archiveFormat: "\u9879\u76EE\u7EC4 {{field}} \u5FC5\u987B\u662F tar.gz \u5F52\u6863\u3002",
7313
- rootSourceIdForbidden: "\u6839\u9879\u76EE\u4E0D\u80FD\u8BBE\u7F6E\u9879\u76EE\u7EC4 {{field}}\u3002",
7437
+ rootAliasForbidden: "\u6839\u9879\u76EE\u4E0D\u80FD\u8BBE\u7F6E\u9879\u76EE\u7EC4 {{field}}\u3002",
7314
7438
  duplicateProjectId: "\u9879\u76EE\u7EC4 projectId\u201C{{projectId}}\u201D\u91CD\u590D\u3002",
7315
7439
  duplicateArchivePath: "\u9879\u76EE\u7EC4 archivePath\u201C{{path}}\u201D\u91CD\u590D\u3002",
7316
7440
  rootCount: "\u9879\u76EE\u7EC4\u6E05\u5355\u5FC5\u987B\u5305\u542B\u4E14\u4EC5\u5305\u542B\u4E00\u4E2A\u5339\u914D\u7684\u6839\u9879\u76EE\u3002",
7317
- selfReference: "\u9879\u76EE\u7EC4\u4F9D\u8D56\u201C{{sourceId}}\u201D\u4E0D\u80FD\u5F15\u7528\u6839 Kanban \u9879\u76EE\u81EA\u8EAB\u3002",
7318
- includedArchiveMissing: "included \u4F9D\u8D56\u201C{{sourceId}}\u201D\u7F3A\u5C11\u9879\u76EE\u5F52\u6863\u3002",
7441
+ selfReference: "\u9879\u76EE\u7EC4\u4F9D\u8D56\u201C{{alias}}\u201D\u4E0D\u80FD\u5F15\u7528\u6839\u9879\u76EE\u81EA\u8EAB\u3002",
7442
+ includedArchiveMissing: "included \u4F9D\u8D56\u201C{{alias}}\u201D\u7F3A\u5C11\u9879\u76EE\u5F52\u6863\u3002",
7319
7443
  dependencyNotIncluded: "\u4F9D\u8D56\u9879\u76EE\u201C{{projectId}}\u201D\u672A\u6807\u8BB0\u4E3A included\u3002",
7320
- includedNotPublished: "included \u4F9D\u8D56\u201C{{sourceId}}\u201D\u5C1A\u672A\u53D1\u5E03\u3002",
7444
+ includedNotPublished: "included \u4F9D\u8D56\u201C{{alias}}\u201D\u5C1A\u672A\u53D1\u5E03\u3002",
7321
7445
  lockObject: "{{field}} \u5FC5\u987B\u662F\u5BF9\u8C61\u3002",
7322
- lockSourceId: "{{field}} \u65E0\u6548\u3002",
7323
- lockKind: "{{field}} \u65E0\u6548\u3002",
7446
+ lockAlias: "{{field}} \u65E0\u6548\u3002",
7324
7447
  lockDelivery: "{{field}} \u65E0\u6548\u3002",
7325
- keyPrefixesArray: "{{field}} \u5FC5\u987B\u662F\u975E\u7A7A\u6570\u7EC4\u3002",
7326
- keyPrefixesDuplicate: "{{field}} \u4E0D\u80FD\u5305\u542B\u91CD\u590D\u9879\u3002",
7327
- externalPinned: "external \u4F9D\u8D56\u201C{{sourceId}}\u201D\u4E0D\u80FD\u56FA\u5B9A\u7248\u672C\u6216\u6E90\u7801\u54C8\u5E0C\u3002",
7328
- includedPinRequired: "included \u4F9D\u8D56\u201C{{sourceId}}\u201D\u5FC5\u987B\u56FA\u5B9A version \u548C sourceHash\u3002",
7329
- includedVersionInvalid: "included \u4F9D\u8D56\u201C{{sourceId}}\u201D\u7684\u7248\u672C\u65E0\u6548\u3002",
7330
- includedHashInvalid: "included \u4F9D\u8D56\u201C{{sourceId}}\u201D\u7684 sourceHash \u65E0\u6548\u3002",
7448
+ externalPinned: "external \u4F9D\u8D56\u201C{{alias}}\u201D\u4E0D\u80FD\u56FA\u5B9A\u7248\u672C\u6216\u6E90\u7801\u54C8\u5E0C\u3002",
7449
+ includedPinRequired: "included \u4F9D\u8D56\u201C{{alias}}\u201D\u5FC5\u987B\u56FA\u5B9A version \u548C sourceHash\u3002",
7450
+ includedVersionInvalid: "included \u4F9D\u8D56\u201C{{alias}}\u201D\u7684\u7248\u672C\u65E0\u6548\u3002",
7451
+ includedHashInvalid: "included \u4F9D\u8D56\u201C{{alias}}\u201D\u7684 sourceHash \u65E0\u6548\u3002",
7331
7452
  unsafePath: "\u9879\u76EE\u7EC4 {{field}} \u8DEF\u5F84\u4E0D\u5B89\u5168\u3002",
7332
7453
  uuidRequired: "\u9879\u76EE\u7EC4 {{field}} \u5FC5\u987B\u662F UUID\u3002",
7333
7454
  nonEmptyString: "{{field}} \u5FC5\u987B\u662F\u975E\u7A7A\u5B57\u7B26\u4E32\u3002",
7334
- optionalNonEmptyString: "\u63D0\u4F9B {{field}} \u65F6\u5FC5\u987B\u4F7F\u7528\u975E\u7A7A\u5B57\u7B26\u4E32\u3002"
7455
+ optionalNonEmptyString: "\u63D0\u4F9B {{field}} \u65F6\u5FC5\u987B\u4F7F\u7528\u975E\u7A7A\u5B57\u7B26\u4E32\u3002",
7456
+ unsupportedField: "\u4E0D\u652F\u6301 {{field}}\u3002"
7335
7457
  }
7336
7458
  },
7337
7459
  schedule: {
@@ -7582,10 +7704,10 @@ var common2 = {
7582
7704
  close: "\u6536\u8D77\u65E5\u5FD7"
7583
7705
  }
7584
7706
  },
7585
- kanbanRevisionSubscriptionInterrupted: "\u6570\u636E\u6E90\u66F4\u65B0\u8BA2\u9605\u5DF2\u4E2D\u65AD\uFF0C\u6B63\u5728\u91CD\u8FDE\u3002",
7586
- kanbanRevisionSubscriptionUnavailable: "\u6570\u636E\u6E90\u66F4\u65B0\u8BA2\u9605\u6682\u4E0D\u53EF\u7528\uFF0C\u4ECD\u4FDD\u7559\u4E0A\u6B21\u7ED3\u679C\u3002",
7587
- kanbanRevisionTargetChangedReconnect: "\u6570\u636E\u6E90\u7248\u672C\u5DF2\u53D8\u5316\uFF0C\u6B63\u5728\u91CD\u65B0\u8FDE\u63A5\u3002",
7588
- kanbanRevisionTargetChangedRefresh: "\u6570\u636E\u6E90\u7248\u672C\u5DF2\u53D8\u5316\uFF0C\u8BF7\u5237\u65B0\u9875\u9762\u3002",
7707
+ kanbanRevisionSubscriptionInterrupted: "\u5173\u8054\u9879\u76EE\u66F4\u65B0\u8BA2\u9605\u5DF2\u4E2D\u65AD\uFF0C\u6B63\u5728\u91CD\u8FDE\u3002",
7708
+ kanbanRevisionSubscriptionUnavailable: "\u5173\u8054\u9879\u76EE\u66F4\u65B0\u8BA2\u9605\u6682\u4E0D\u53EF\u7528\uFF0C\u4ECD\u4FDD\u7559\u4E0A\u6B21\u7ED3\u679C\u3002",
7709
+ kanbanRevisionTargetChangedReconnect: "\u5173\u8054\u9879\u76EE\u7248\u672C\u5DF2\u53D8\u5316\uFF0C\u6B63\u5728\u91CD\u65B0\u8FDE\u63A5\u3002",
7710
+ kanbanRevisionTargetChangedRefresh: "\u5173\u8054\u9879\u76EE\u7248\u672C\u5DF2\u53D8\u5316\uFF0C\u8BF7\u5237\u65B0\u9875\u9762\u3002",
7589
7711
  listSeparator: "\u3001",
7590
7712
  quotedValue: "\u201C{{value}}\u201D",
7591
7713
  previewAssistantMessage: "\u6211\u4F1A\u57FA\u4E8E\u8FD9\u4E2A\u4F1A\u8BDD\u7EE7\u7EED\u56DE\u7B54\uFF0C\u652F\u6301 **Markdown**\u3002",
@@ -7644,6 +7766,14 @@ var desktop2 = {
7644
7766
  localeEn: "English",
7645
7767
  localeEnDetail: "\u4EE5\u82F1\u6587\u663E\u793A\u754C\u9762",
7646
7768
  allTypes: "\u5168\u90E8\u7C7B\u578B",
7769
+ homeWorkspaceViewMode: "\u5DE5\u4F5C\u533A\u5C55\u793A\u65B9\u5F0F",
7770
+ homeListView: "\u5217\u8868\u89C6\u56FE",
7771
+ homeGraphView: "\u56FE\u89C6\u56FE",
7772
+ homeProjectGraph: "\u9879\u76EE\u5173\u8054\u56FE",
7773
+ homeProjectGraphControls: "\u9879\u76EE\u5173\u8054\u56FE\u7F29\u653E\u63A7\u5236",
7774
+ homeProjectGraphZoomIn: "\u653E\u5927",
7775
+ homeProjectGraphZoomOut: "\u7F29\u5C0F",
7776
+ homeProjectGraphFitView: "\u9002\u5E94\u753B\u5E03",
7647
7777
  desktopCloudRunRecordsLabel: "Desktop \u4E91\u7AEF\u8FD0\u884C\u8BB0\u5F55",
7648
7778
  desktopStatus: "Desktop \u72B6\u6001",
7649
7779
  archiveImportedAs: "{{archiveName}} \u5DF2\u5BFC\u5165\u4E3A {{workflowName}}",
@@ -8023,26 +8153,33 @@ var desktop2 = {
8023
8153
  projectNamePlaceholder: "\u9879\u76EE\u540D\u79F0",
8024
8154
  projectType: "\u9879\u76EE\u7C7B\u578B",
8025
8155
  projectUuid: "\u9879\u76EE UUID",
8026
- assistantLinkedProjects: "\u5C0F\u52A9\u624B\u5173\u8054\u9879\u76EE",
8027
- manageAssistantLinks: "\u7BA1\u7406\u5173\u8054",
8028
- assistantLinksDialogTitle: "\u5173\u8054\u5DE5\u4F5C\u533A",
8029
- assistantLinksDialogDescription: "\u7BA1\u7406\u5C0F\u52A9\u624B\u53EF\u4EE5\u8054\u52A8\u4FEE\u6539\u7684\u672C\u5730\u9879\u76EE\u548C\u666E\u901A\u6587\u4EF6\u5939\u3002",
8030
- assistantLinksDirectCount: "{{count}} \u4E2A\u76F4\u63A5\u5173\u8054",
8031
- assistantLinksRecursiveCount: "{{count}} \u4E2A\u9012\u5F52\u53EF\u8BBF\u95EE",
8032
- assistantLinksWarningCount: "{{count}} \u4E2A\u5931\u6548\u9879",
8033
- assistantAutomaticLinks: "\u81EA\u52A8\u5173\u8054",
8034
- assistantManualLinks: "\u624B\u52A8\u5173\u8054",
8035
- assistantLinkSearchPlaceholder: "\u641C\u7D22\u672C\u5730\u9879\u76EE\u548C\u666E\u901A\u6587\u4EF6\u5939",
8036
- assistantNoAutomaticLinks: "\u6CA1\u6709\u81EA\u52A8\u5173\u8054\u9879\u76EE",
8037
- assistantNoManualCandidates: "\u6CA1\u6709\u53EF\u5173\u8054\u7684\u672C\u5730\u9879\u76EE\u6216\u666E\u901A\u6587\u4EF6\u5939",
8038
- assistantLinkUnavailable: "\u4E0D\u53EF\u7528",
8039
- assistantLinkAutomatic: "\u81EA\u52A8",
8040
- assistantLinksLoading: "\u6B63\u5728\u8BFB\u53D6\u5173\u8054\u9879\u76EE...",
8041
- assistantLinkWarningNotImported: "{{project}} \u672A\u5BFC\u5165",
8042
- assistantLinkWarningPathUnavailable: "{{project}} \u7684\u76EE\u5F55\u4E0D\u53EF\u7528",
8043
- assistantLinkWarningNotEditable: "{{project}} \u4E0D\u53EF\u7F16\u8F91",
8044
- assistantLinkWarningManifestInvalid: "{{project}} \u7684\u81EA\u52A8\u5173\u8054\u58F0\u660E\u65E0\u6548",
8045
- assistantLinkWarningFolderNotRegistered: "{{folder}} \u672A\u6CE8\u518C\u6216\u5F53\u524D\u4E0D\u53EF\u7528",
8156
+ relatedResources: "\u5173\u8054\u8D44\u6E90",
8157
+ manageRelatedResources: "\u7BA1\u7406\u5173\u8054\u8D44\u6E90",
8158
+ relatedResourcesDialogTitle: "\u5173\u8054\u8D44\u6E90",
8159
+ relatedResourcesDialogDescription: "\u7BA1\u7406\u901A\u7528\u5173\u8054\u9879\u76EE\u53CA\u53EA\u4F9B\u5C0F\u52A9\u624B\u4F7F\u7528\u7684\u672C\u5730\u6587\u4EF6\u5939\u3002",
8160
+ relatedResourcesDirectCount: "{{count}} \u4E2A\u76F4\u63A5\u5173\u8054",
8161
+ relatedResourcesRecursiveCount: "{{count}} \u4E2A\u9012\u5F52\u53EF\u8BBF\u95EE",
8162
+ relatedResourcesWarningCount: "{{count}} \u4E2A\u5931\u6548\u9879",
8163
+ relatedResourcesSearchPlaceholder: "\u641C\u7D22\u672C\u5730\u9879\u76EE\u548C\u6587\u4EF6\u5939",
8164
+ relatedResourcesLoading: "\u6B63\u5728\u8BFB\u53D6\u5173\u8054\u8D44\u6E90...",
8165
+ relatedResourcesEmpty: "\u6CA1\u6709\u53EF\u5173\u8054\u7684\u672C\u5730\u9879\u76EE",
8166
+ relatedProjects: "\u5173\u8054\u9879\u76EE",
8167
+ relatedProjectAlias: "Alias",
8168
+ relatedProjectConfirmed: "\u5DF2\u786E\u8BA4",
8169
+ relatedProjectPending: "\u5F85\u786E\u8BA4",
8170
+ relatedProjectUuidRequired: "\u5173\u8054\u9879\u76EE\u7684 package.json.id \u5FC5\u987B\u662F UUID\u3002",
8171
+ relatedResourceUnavailable: "\u4E0D\u53EF\u7528",
8172
+ assistantRelatedFolders: "\u5C0F\u52A9\u624B\u6587\u4EF6\u5939",
8173
+ assistantFoldersOnly: "\u4EC5\u4F9B\u5C0F\u52A9\u624B\u4F7F\u7528",
8174
+ assistantFolderAvailable: "\u53EF\u7528",
8175
+ grantToRelatedProject: "\u5141\u8BB8\u5BF9\u65B9\u8BBF\u95EE\u672C\u9879\u76EE",
8176
+ grantFromRelatedProject: "\u672C\u9879\u76EE\u8BBF\u95EE\u5BF9\u65B9",
8177
+ readAccess: "\u8BFB\u53D6",
8178
+ writeAccess: "\u5199\u5165",
8179
+ accessModeNone: "\u7981\u6B62",
8180
+ accessModeAll: "\u5168\u90E8 key",
8181
+ accessModePrefixes: "\u6307\u5B9A\u524D\u7F00",
8182
+ accessPrefixesPlaceholder: "\u4F8B\u5982 data., cache.",
8046
8183
  publishNewVersion: "\u53D1\u5E03\u65B0\u7248\u672C",
8047
8184
  releaseExecutionTargets: "\u53D1\u884C\u76EE\u6807",
8048
8185
  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",
@@ -8062,31 +8199,22 @@ var desktop2 = {
8062
8199
  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",
8063
8200
  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",
8064
8201
  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",
8065
- referencedProjects: "\u5F15\u7528\u9879\u76EE",
8066
- dependencyDeliveryDescription: "\u6E90\u7801\u4EA4\u4ED8\u548C\u6570\u636E\u6388\u6743\u76F8\u4E92\u72EC\u7ACB\uFF1B\u4E24\u8005\u90FD\u4E0D\u4F1A\u4E0A\u4F20\u672C\u5730 KV\u3001\u8BA1\u5212\u3001\u8FD0\u884C\u8BB0\u5F55\u6216\u73AF\u5883\u53D8\u91CF\u3002",
8067
- checkingDependenciesAndPreviousSettings: "\u6B63\u5728\u68C0\u67E5\u6765\u6E90\u9879\u76EE\u4E0E\u4E0A\u6B21\u53D1\u5E03\u8BBE\u7F6E",
8202
+ referencedProjects: "\u5173\u8054\u9879\u76EE",
8203
+ dependencyDeliveryDescription: "\u53EA\u6709\u53CC\u65B9\u5DF2\u786E\u8BA4\u7684\u5173\u8054\u9879\u76EE\u53EF\u8FDB\u5165\u9879\u76EE\u7EC4\uFF1B\u9879\u76EE\u7EC4\u4E0D\u4F1A\u4E0A\u4F20 KV\u3001\u8BA1\u5212\u3001\u8FD0\u884C\u8BB0\u5F55\u6216\u73AF\u5883\u53D8\u91CF\u3002",
8204
+ checkingDependenciesAndPreviousSettings: "\u6B63\u5728\u68C0\u67E5\u5173\u8054\u9879\u76EE\u4E0E\u4E0A\u6B21\u53D1\u5E03\u8BBE\u7F6E",
8068
8205
  dependencyServerMissing: "Server \u5C1A\u65E0\u9879\u76EE",
8069
- dependencyNotDownloaded: "\u6765\u6E90\u9879\u76EE\u672A\u4E0B\u8F7D",
8070
- dependencyDataNotAuthorized: "Server \u5DF2\u6709\u9879\u76EE\uFF0C\u5C1A\u672A\u6388\u6743\u6570\u636E",
8206
+ dependencyNotDownloaded: "\u5173\u8054\u9879\u76EE\u672A\u4E0B\u8F7D",
8207
+ dependencyRelationshipPending: "\u53CC\u65B9\u5173\u7CFB\u5F85\u786E\u8BA4",
8071
8208
  dependencyDataInitialized: "Server \u6570\u636E\u5DF2\u521D\u59CB\u5316",
8072
8209
  dependencyDataNotInitialized: "\u9879\u76EE\u5DF2\u90E8\u7F72\uFF0CServer \u6570\u636E\u5C1A\u672A\u521D\u59CB\u5316",
8073
8210
  sourceDownloadLabel: "\u6E90\u7801\u4E0B\u8F7D\uFF1A",
8074
- dataGrantManagementLabel: "\u6570\u636E\u6388\u6743\u7BA1\u7406\uFF1A",
8075
8211
  allowed: "\u5141\u8BB8",
8076
8212
  notAuthorized: "\u672A\u6388\u6743",
8077
- validateOnPublish: "\u53D1\u5E03\u65F6\u6821\u9A8C",
8078
8213
  includeSourceWithGroup: "\u968F\u7EC4\u4E0A\u4F20\u6E90\u7801",
8079
- localDependencyNotDownloaded: "\u672C\u5730\u6765\u6E90\u9879\u76EE\u672A\u4E0B\u8F7D",
8080
- cannotManageServerDependency: "\u5F53\u524D\u8D26\u53F7\u4E0D\u80FD\u7BA1\u7406 Server \u6765\u6E90\u9879\u76EE",
8214
+ localDependencyNotDownloaded: "\u672C\u5730\u5173\u8054\u9879\u76EE\u672A\u4E0B\u8F7D",
8081
8215
  publishDependencyAsSource: "\u4EE5 source \u6A21\u5F0F\u53D1\u5E03\u5E76\u9501\u5B9A\u7CBE\u786E\u7248\u672C",
8082
8216
  includeSourceWithGroupAria: "\u968F\u7EC4\u4E0A\u4F20\u6E90\u7801 {{name}}",
8083
- authorizeDataRead: "\u6388\u6743\u8BFB\u53D6\u6570\u636E",
8084
- dependencyKvPrefixesAuthorized: "Server \u5DF2\u6388\u6743\u5F53\u524D KV key \u524D\u7F00",
8085
- cannotManageDependencyGrant: "\u5F53\u524D\u8D26\u53F7\u4E0D\u80FD\u7BA1\u7406\u6765\u6E90\u9879\u76EE\u6388\u6743",
8086
- dependencyMustExistBeforeGrant: "\u9700\u5148\u968F\u7EC4\u4E0A\u4F20\u6216\u5728 Server \u521B\u5EFA\u6765\u6E90\u9879\u76EE",
8087
- authorizeDeclaredKvPrefixes: "\u4EC5\u6388\u6743\u58F0\u660E\u4E2D\u7684 KV key \u524D\u7F00",
8088
- authorizeDataReadAria: "\u6388\u6743\u8BFB\u53D6\u6570\u636E {{name}}",
8089
- unresolvedDependenciesBlockPublish: "\u4ECD\u6709 {{count}} \u4E2A\u6765\u6E90\u9879\u76EE\u672A\u4E0B\u8F7D\u3001\u672A\u4E0A\u4F20\u6216\u672A\u6388\u6743\uFF0C\u5F53\u524D\u7248\u672C\u4E0D\u80FD\u53D1\u5E03\u3002",
8217
+ unresolvedDependenciesBlockPublish: "\u4ECD\u6709 {{count}} \u4E2A\u5DF2\u786E\u8BA4\u5173\u8054\u9879\u76EE\u672A\u4E0B\u8F7D\u6216\u672A\u4E0A\u4F20\uFF0C\u5F53\u524D\u7248\u672C\u4E0D\u80FD\u53D1\u5E03\u3002",
8090
8218
  publishProgress: "\u53D1\u5E03\u8FDB\u5EA6",
8091
8219
  publishProgressValue: "{{percent}}% \xB7 {{message}}",
8092
8220
  publishResult: "\u53D1\u5E03\u7ED3\u679C",
@@ -8172,7 +8300,6 @@ var desktop2 = {
8172
8300
  fixSuggestionAddId: "\uFF0C\u6DFB\u52A0",
8173
8301
  fixSuggestionEnsureId: "\u5E76\u786E\u4FDD\u5B83\u548C\u6587\u4EF6\u5939 / workflow id \u4E00\u81F4\u3002",
8174
8302
  fixSuggestionPrefix: "\u4FEE\u590D\u5EFA\u8BAE\uFF1A\u6253\u5F00",
8175
- globalScope: "\u5168\u5C40",
8176
8303
  hideConversationList: "\u9690\u85CF\u4F1A\u8BDD\u5217\u8868",
8177
8304
  hideDiagnostic: "\u6536\u8D77{{label}}",
8178
8305
  hideFileList: "\u9690\u85CF\u6587\u4EF6\u5217\u8868",
@@ -8196,7 +8323,6 @@ var desktop2 = {
8196
8323
  kvScopeFilterAriaLabel: "\u7B5B\u9009 KV \u4F5C\u7528\u57DF",
8197
8324
  kvSearchAriaLabel: "\u641C\u7D22 KV \u6570\u636E",
8198
8325
  kvSearchPlaceholder: "\u641C\u7D22\u952E\u6216\u6458\u8981",
8199
- kvServerGlobalDetailUnavailable: "\u670D\u52A1\u5668\u9879\u76EE\u8BE6\u60C5\u4E0D\u5305\u542B\u5168\u5C40 KV\u3002",
8200
8326
  kvUnavailableTitle: "KV \u6570\u636E\u6682\u4E0D\u53EF\u7528",
8201
8327
  kvValueTooLarge: "\u503C\u5185\u5BB9\u8F83\u5927",
8202
8328
  kvValueTooLargeDescription: "\u5F53\u524D\u503C\u7EA6 {{size}}\u3002\u4E3A\u907F\u514D\u963B\u585E\u754C\u9762\uFF0C\u6B64\u5904\u53EA\u5C55\u793A\u5217\u8868\u6458\u8981\u3002",
@@ -8272,7 +8398,7 @@ var desktop2 = {
8272
8398
  viewKVDetail: "\u67E5\u770B KV \u8BE6\u60C5",
8273
8399
  workflowConfigInvalidEditable: "Workflow \u914D\u7F6E\u65E0\u6548\uFF0C\u4F46\u6E90\u7801\u4ECD\u53EF\u7F16\u8F91\u3002",
8274
8400
  workflowExitedWith: "Workflow exited with {{code}}.",
8275
- workflowScope: "\u9879\u76EE",
8401
+ projectScope: "\u9879\u76EE",
8276
8402
  authStatusMissingServerTitle: "\u672A\u7ED1\u5B9A\u8FDC\u7A0B\u670D\u52A1\u5668",
8277
8403
  authStatusMissingServerDetail: "\u5F53\u524D Desktop \u4EC5\u4F7F\u7528\u672C\u5730\u5DE5\u4F5C\u533A\uFF0C\u8FDC\u7A0B\u53D1\u5E03\u3001\u62C9\u53D6\u548C\u8FD0\u884C\u524D\u9700\u8981\u5148\u7ED1\u5B9A Workflow Server\u3002",
8278
8404
  authStatusMissingServerBadge: "\u672A\u7ED1\u5B9A",
@@ -8370,6 +8496,20 @@ var desktop2 = {
8370
8496
  activityFilesLabel: "\u6587\u4EF6",
8371
8497
  activityInfoDescription: "\u67E5\u770B\u548C\u7F16\u8F91\u9879\u76EE\u4FE1\u606F",
8372
8498
  activityInfoLabel: "\u4FE1\u606F",
8499
+ mcpWorkspaceTitle: "MCP",
8500
+ mcpWorkspaceDescription: "AI \u5BA2\u6237\u7AEF\u901A\u8FC7\u6807\u51C6 stdio MCP \u6309\u9700\u542F\u52A8\u5F53\u524D\u672C\u5730 Workflow",
8501
+ mcpTransportLabel: "\u4F20\u8F93\u65B9\u5F0F",
8502
+ mcpServerNameLabel: "\u670D\u52A1\u5668\u540D\u79F0",
8503
+ mcpToolsLabel: "\u5DE5\u5177",
8504
+ mcpNoTools: "\u5F53\u524D\u6CA1\u6709\u53EF\u4F5C\u4E3A MCP \u5DE5\u5177\u4F7F\u7528\u7684 Workflow entrypoint\u3002",
8505
+ mcpJsonLabel: "\u5BA2\u6237\u7AEF\u914D\u7F6E",
8506
+ mcpCopyJson: "\u590D\u5236\u8FDE\u63A5\u914D\u7F6E",
8507
+ mcpRefresh: "\u5237\u65B0 MCP \u8FDE\u63A5",
8508
+ mcpLoading: "\u6B63\u5728\u52A0\u8F7D MCP \u8FDE\u63A5",
8509
+ mcpLoadFailed: "MCP \u8FDE\u63A5\u4E0D\u53EF\u7528",
8510
+ mcpLoadFailedDescription: "\u8BF7\u786E\u8BA4\u672C\u5730 Workflow \u4E0E entrypoint \u6709\u6548\u540E\u5237\u65B0\u3002",
8511
+ activityOpenaiDescription: "\u7BA1\u7406\u6B64 Conversation \u9879\u76EE\u7684 OpenAI Responses \u8C03\u7528\u6743\u9650",
8512
+ activityOpenaiLabel: "OpenAI API",
8373
8513
  activityKnowledgeDescription: "\u7BA1\u7406\u672C\u5730\u6216\u670D\u52A1\u5668\u77E5\u8BC6\u5E93\u6587\u6863",
8374
8514
  activityKnowledgeLabel: "\u77E5\u8BC6\u5E93",
8375
8515
  activityKvDescription: "\u67E5\u770B\u672C\u5730\u6216\u670D\u52A1\u5668 KV \u6570\u636E",
@@ -8382,6 +8522,62 @@ var desktop2 = {
8382
8522
  activitySchedulesLabel: "\u5B9A\u65F6",
8383
8523
  activityTerminalDescription: "\u6253\u5F00\u5DE5\u4F5C\u533A\u7EC8\u7AEF",
8384
8524
  activityTerminalLabel: "\u7EC8\u7AEF",
8525
+ openaiAccessTitle: "OpenAI API",
8526
+ openaiAccessDescription: "\u901A\u8FC7 OpenAI Responses \u534F\u8BAE\u8C03\u7528\u6B64 Conversation \u9879\u76EE\u3002",
8527
+ openaiAccessRefresh: "\u5237\u65B0 OpenAI API \u63A5\u5165\u72B6\u6001",
8528
+ openaiAccessLoading: "\u6B63\u5728\u52A0\u8F7D OpenAI API \u63A5\u5165\u72B6\u6001",
8529
+ openaiAccessStatusHeading: "\u670D\u52A1\u72B6\u6001",
8530
+ openaiAccessAdapterEnabled: "\u9002\u914D\u5668\u5DF2\u542F\u7528",
8531
+ openaiAccessAdapterDisabled: "\u9002\u914D\u5668\u672A\u542F\u7528",
8532
+ openaiAccessGatewayRunning: "Desktop \u4EE3\u7406\u8FD0\u884C\u4E2D",
8533
+ openaiAccessGatewayStopped: "Desktop \u4EE3\u7406\u5DF2\u505C\u7528",
8534
+ openaiAccessServerReady: "Server API \u53EF\u7528",
8535
+ openaiAccessServerUnavailable: "Server API \u4E0D\u53EF\u7528",
8536
+ openaiAccessGatewayError: "Desktop \u4EE3\u7406\u9519\u8BEF\uFF1A{{message}}",
8537
+ openaiAccessGatewayUnavailable: "Desktop \u4EE3\u7406\u5F53\u524D\u4E0D\u53EF\u7528\u3002\u8BF7\u5148\u5904\u7406\u672C\u5730\u7AEF\u53E3\u9519\u8BEF\uFF0C\u518D\u5237\u65B0\u3002",
8538
+ openaiAccessAuthRequired: "\u521B\u5EFA\u6216\u4F7F\u7528\u9879\u76EE API Key \u524D\u9700\u8981\u5148\u767B\u5F55\u3002",
8539
+ openaiAccessModelDiscoveryFailed: "\u5F53\u524D\u8D26\u53F7\u6CA1\u6709\u53EF\u7528\u6A21\u578B\u3002\u8BF7\u68C0\u67E5\u201C\u7CFB\u7EDF AI \u914D\u7F6E\u201D\u3002",
8540
+ openaiAccessAdapterRequiredTitle: "\u9879\u76EE\u9700\u8981\u63A5\u5165\u9002\u914D\u5668",
8541
+ openaiAccessAdapterRequiredDescription: "\u6B64 Conversation \u9879\u76EE\u5C1A\u672A\u58F0\u660E conversation.openai\u3002\u8BF7\u5728\u9879\u76EE\u4E2D\u589E\u52A0\u9002\u914D\u5668\uFF0C\u7136\u540E\u5237\u65B0\u6B64\u9875\u9762\u3002",
8542
+ openaiAccessReadDocs: "\u67E5\u770B\u63A5\u5165\u6307\u5357",
8543
+ openaiAccessEndpointsHeading: "\u8C03\u7528\u5730\u5740",
8544
+ openaiAccessDesktopProxyBase: "Desktop Base URL",
8545
+ openaiAccessResponsesEndpoint: "Responses \u5730\u5740",
8546
+ openaiAccessServerBase: "Server \u76F4\u8FDE Base URL",
8547
+ openaiAccessServerDirectUnavailable: "\u67E5\u770B\u6B64\u9879\u76EE\u7684\u4E91\u7AEF\u526F\u672C\u65F6\u4F1A\u663E\u793A Server \u76F4\u8FDE\u5730\u5740\u3002",
8548
+ openaiAccessCopyValue: "\u590D\u5236{{label}}",
8549
+ openaiAccessKeyHeading: "\u9879\u76EE API Key",
8550
+ openaiAccessKeySecurity: "\u6B64 Key \u7ED1\u5B9A\u5F53\u524D\u7528\u6237\u548C\u9879\u76EE\u3002\u8BF7\u6309\u5BC6\u94A5\u4FDD\u5B58\uFF0C\u5207\u52FF\u63D0\u4EA4\u5230\u6E90\u7801\u4ED3\u5E93\u3002",
8551
+ openaiAccessNoKey: "\u5F53\u524D\u6CA1\u6709\u6709\u6548\u7684\u9879\u76EE Key",
8552
+ openaiAccessKeyPrefix: "Key \u524D\u7F00",
8553
+ openaiAccessKeyCreated: "\u521B\u5EFA\u65F6\u95F4",
8554
+ openaiAccessKeyLastUsed: "\u6700\u8FD1\u4F7F\u7528",
8555
+ openaiAccessNeverUsed: "\u5C1A\u672A\u4F7F\u7528",
8556
+ openaiAccessCreateKey: "\u521B\u5EFA Key",
8557
+ openaiAccessRotateKey: "\u8F6E\u6362 Key",
8558
+ openaiAccessRevokeKey: "\u540A\u9500 Key",
8559
+ openaiAccessRotateTitle: "\u8F6E\u6362\u9879\u76EE API Key\uFF1F",
8560
+ openaiAccessRotateDescription: "\u5F53\u524D Key \u4F1A\u7ACB\u5373\u5931\u6548\uFF0C\u5DF2\u6709 Responses \u548C Conversations \u8D44\u6E90\u4E0D\u4F1A\u88AB\u5220\u9664\u3002",
8561
+ openaiAccessRotateConfirm: "\u8F6E\u6362 Key",
8562
+ openaiAccessRevokeTitle: "\u540A\u9500\u9879\u76EE API Key\uFF1F",
8563
+ openaiAccessRevokeDescription: "\u5F53\u524D Key \u4F1A\u7ACB\u5373\u5931\u6548\u3002\u4E0B\u6B21\u8C03\u7528\u524D\u9700\u8981\u91CD\u65B0\u521B\u5EFA Key\u3002",
8564
+ openaiAccessRevokeConfirm: "\u540A\u9500 Key",
8565
+ openaiAccessOperationFailed: "OpenAI API \u63A5\u5165\u64CD\u4F5C\u5931\u8D25\uFF1A{{message}}",
8566
+ openaiAccessSecretTitle: "\u8BF7\u7ACB\u5373\u4FDD\u5B58\u6B64 Key",
8567
+ openaiAccessSecretDescription: "\u5B8C\u6574 Key \u53EA\u5728\u521B\u5EFA\u6216\u8F6E\u6362\u540E\u663E\u793A\u4E00\u6B21\uFF0C\u4E4B\u540E\u65E0\u6CD5\u518D\u6B21\u8BFB\u53D6\u3002",
8568
+ openaiAccessSecretSaved: "\u6211\u5DF2\u4FDD\u5B58",
8569
+ openaiAccessCopySecret: "\u590D\u5236\u5B8C\u6574 API Key",
8570
+ openaiAccessModelsHeading: "\u6A21\u578B",
8571
+ openaiAccessModelLabel: "\u793A\u4F8B\u4F7F\u7528\u7684\u6A21\u578B",
8572
+ openaiAccessNoModels: "\u5F53\u524D\u8D26\u53F7\u6CA1\u6709\u53EF\u7528\u6A21\u578B\u3002\u8C03\u7528 API \u524D\u8BF7\u5148\u914D\u7F6E\u5E76\u542F\u7528 Provider\u3002",
8573
+ openaiAccessExamplesHeading: "\u8C03\u7528\u793A\u4F8B",
8574
+ openaiAccessExamplesDescription: "\u8FD0\u884C\u793A\u4F8B\u524D\uFF0C\u8BF7\u628A OPENAI_API_KEY \u8BBE\u7F6E\u4E3A\u5B8C\u6574\u7684\u9879\u76EE Key\u3002",
8575
+ openaiAccessExampleCurl: "curl",
8576
+ openaiAccessExampleNode: "Node.js",
8577
+ openaiAccessExamplePython: "Python",
8578
+ openaiAccessCopyExample: "\u590D\u5236 {{language}} \u793A\u4F8B",
8579
+ openaiAccessCopied: "\u5DF2\u590D\u5236",
8580
+ openaiAccessCopyFailed: "\u590D\u5236\u5931\u8D25",
8385
8581
  desktopNoLongerClonesToServer: "Desktop \u4E0D\u518D\u514B\u9686\u5230\u670D\u52A1\u5668\uFF0C\u8BF7\u4F7F\u7528 Publish \u6258\u7BA1\u5F53\u524D\u672C\u5730\u9879\u76EE\u3002",
8386
8582
  desktopOnlyClonesLocal: "Desktop \u53EA\u514B\u9686\u672C\u5730\u9879\u76EE\u3002",
8387
8583
  backToReview: "\u8FD4\u56DE\u68C0\u67E5",
@@ -8851,13 +9047,8 @@ var desktop2 = {
8851
9047
  selectProjectToEditInfo: "\u8BF7\u9009\u62E9\u4E00\u4E2A\u9879\u76EE\u540E\u7F16\u8F91\u4FE1\u606F\u3002",
8852
9048
  settingsAria: "\u8BBE\u7F6E\uFF1A\u6253\u5F00 Desktop \u8BBE\u7F6E",
8853
9049
  workspaceRailAria: "\u5DE5\u4F5C\u533A\u89C6\u56FE",
8854
- dataSourceAuthorizationRequired: "\u6570\u636E\u6E90{{source}}\u5C1A\u672A\u6388\u6743\u7ED9\u5F53\u524D\u770B\u677F\u3002\u8BF7\u5728\u53D1\u5E03\u8BBE\u7F6E\u4E2D\u52FE\u9009\u201C\u6388\u6743\u8BFB\u53D6\u6570\u636E\u201D\uFF1B\u5982\u679C\u8BE5\u9009\u9879\u4E0D\u53EF\u7528\uFF0C\u8BF7\u8BA9\u6765\u6E90 Workflow \u7684\u7BA1\u7406\u5458\u6388\u4E88\u58F0\u660E\u4E2D\u7684 KV \u524D\u7F00\u8BFB\u53D6\u6743\u9650\u3002",
8855
9050
  dependencyStatusLoadFailed: "\u65E0\u6CD5\u8BFB\u53D6\u5F15\u7528\u9879\u76EE\u72B6\u6001\u3002",
8856
- kanbanDataSourcePackageMissing: "Kanban \u9879\u76EE\u7F3A\u5C11 package.json\uFF0C\u65E0\u6CD5\u8BFB\u53D6\u6570\u636E\u6E90\u58F0\u660E\u3002",
8857
- kanbanDataSourcePackageMustBeUtf8: "Kanban \u9879\u76EE\u7684 package.json \u5FC5\u987B\u662F UTF-8 \u6587\u672C\u3002",
8858
- kanbanDataSourceReadFailed: "\u65E0\u6CD5\u8BFB\u53D6 Kanban \u6570\u636E\u6E90\u58F0\u660E\uFF1A{{details}}",
8859
- kanbanDataSourceSelfReference: "\u6570\u636E\u6E90\u201C{{sourceId}}\u201D\u4E0D\u80FD\u5F15\u7528\u5F53\u524D Kanban \u81EA\u8EAB\u3002",
8860
- kanbanMissingDataSources: "\u6765\u6E90\u9879\u76EE\u672A\u4E0B\u8F7D\uFF1A{{sources}}\u3002\u4E0B\u8F7D\u5F15\u7528 Workflow \u540E\u70B9\u51FB\u91CD\u8BD5\u3002",
9051
+ kanbanMissingRelatedProjects: "\u5173\u8054\u9879\u76EE\u4E0D\u53EF\u7528\uFF1A{{aliases}}\u3002\u786E\u8BA4\u53CC\u65B9\u5173\u7CFB\u5E76\u5BFC\u5165\u9879\u76EE\u540E\u91CD\u8BD5\u3002",
8861
9052
  previousPublishDependenciesLoadFailed: "\u65E0\u6CD5\u8BFB\u53D6\u4E0A\u6B21\u53D1\u5E03\u7684\u5F15\u7528\u9879\u76EE\u8BBE\u7F6E\u3002",
8862
9053
  previousPublishedVersionMissing: "\u65E0\u6CD5\u5728\u7248\u672C\u5217\u8868\u4E2D\u627E\u5230\u6700\u8FD1\u53D1\u5E03\u7248\u672C {{version}}\u3002",
8863
9054
  previousPublishSettingsLoadFailed: "\u65E0\u6CD5\u8BFB\u53D6\u4E0A\u6B21\u53D1\u5E03\u8BBE\u7F6E\u3002",
@@ -8867,7 +9058,7 @@ var desktop2 = {
8867
9058
  projectGroupTargetDirectoryInvalid: "\u9879\u76EE\u7EC4\u76EE\u6807\u76EE\u5F55\u540D\u201C{{directoryName}}\u201D\u65E0\u6548\u3002",
8868
9059
  projectGroupDisplayNameRequired: "\u9879\u76EE\u663E\u793A\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A\u3002",
8869
9060
  projectGroupServerUrlInvalid: "Workflow Server \u5730\u5740\u201C{{serverUrl}}\u201D\u5FC5\u987B\u662F\u6709\u6548\u7684 HTTP(S) URL\u3002",
8870
- projectGroupSourceIdInvalidOrDuplicated: "\u9879\u76EE\u7EC4\u6765\u6E90\u9879\u76EE ID\u201C{{projectId}}\u201D\u65E0\u6548\u6216\u91CD\u590D\u3002",
9061
+ projectGroupProjectIdInvalidOrDuplicated: "\u9879\u76EE\u7EC4\u9879\u76EE ID\u201C{{projectId}}\u201D\u65E0\u6548\u6216\u91CD\u590D\u3002",
8871
9062
  projectGroupFilePathInvalid: "\u9879\u76EE\u7EC4\u6587\u4EF6\u8DEF\u5F84\u201C{{filePath}}\u201D\u65E0\u6548\u3002",
8872
9063
  projectGroupDuplicateFilePath: "\u9879\u76EE\u7EC4\u6E90\u7801\u5305\u542B\u91CD\u590D\u6587\u4EF6\u8DEF\u5F84\u201C{{filePath}}\u201D\u3002",
8873
9064
  projectGroupForbiddenHostData: "\u9879\u76EE\u7EC4\u6E90\u7801\u5728\u201C{{filePath}}\u201D\u5305\u542B\u7981\u6B62\u4F20\u8F93\u7684\u5BBF\u4E3B\u6570\u636E\u3002",
@@ -8875,13 +9066,13 @@ var desktop2 = {
8875
9066
  projectGroupProjectTypeMismatch: "\u9879\u76EE\u201C{{projectId}}\u201D\u7684\u7C7B\u578B\u4E3A\u201C{{actualProjectType}}\u201D\uFF0C\u5176\u9879\u76EE\u7EC4\u89D2\u8272\u8981\u6C42\u7C7B\u578B\u4E3A\u201C{{expectedProjectType}}\u201D\u3002",
8876
9067
  projectGroupSourceContentInvalid: "\u9879\u76EE\u201C{{projectId}}\u201D\u5305\u542B\u65E0\u6548\u6E90\u7801\u5185\u5BB9\u3002",
8877
9068
  projectGroupSourceHashMismatch: "\u9879\u76EE\u201C{{projectId}}\u201D\u7684\u6E90\u7801\u5185\u5BB9\u4E0E\u9501\u5B9A\u54C8\u5E0C\u4E0D\u4E00\u81F4\u3002",
8878
- projectGroupRootSourceIdForbidden: "\u9879\u76EE\u7EC4\u6839\u9879\u76EE\u4E0D\u80FD\u5305\u542B\u4F9D\u8D56\u6570\u636E\u6E90 ID\u3002",
9069
+ projectGroupRootAliasForbidden: "\u9879\u76EE\u7EC4\u6839\u9879\u76EE\u4E0D\u80FD\u5305\u542B\u5173\u8054\u9879\u76EE alias\u3002",
8879
9070
  projectGroupRootVersionMismatch: "\u6839\u9879\u76EE\u7248\u672C\u4E3A {{actualVersion}}\uFF0C\u4F46\u4E0B\u8F7D\u8BA1\u5212\u8981\u6C42 {{expectedVersion}}\u3002",
8880
9071
  projectGroupUndeclaredPinnedDependency: "\u4F9D\u8D56\u9879\u76EE\u201C{{projectId}}\u201D\u672A\u6309\u4E0B\u8F7D\u7248\u672C\u548C\u6E90\u7801\u54C8\u5E0C\u8FDB\u884C\u58F0\u660E\u3002",
8881
9072
  projectGroupRootPackageMustBeUtf8: "\u9879\u76EE\u7EC4\u6839\u9879\u76EE\u7684 package.json \u5FC5\u987B\u662F UTF-8 \u6587\u672C\u3002",
8882
- projectGroupRootDataSourcesInvalid: "\u6839 Kanban \u7684\u6570\u636E\u6E90\u914D\u7F6E\u65E0\u6548\u3002",
8883
- projectGroupDependencyLockMismatch: "\u9879\u76EE\u7EC4\u4F9D\u8D56\u9501\u4E0E\u6839 Kanban \u6570\u636E\u6E90\u4E0D\u4E00\u81F4\u3002",
8884
- projectGroupSelfReference: "\u6839 Kanban \u4E0D\u80FD\u628A\u81EA\u8EAB\u5F15\u7528\u4E3A Workflow \u6570\u636E\u6E90\u3002",
9073
+ projectGroupRootRelatedProjectsInvalid: "\u6839 Kanban \u7684\u5173\u8054\u9879\u76EE\u58F0\u660E\u65E0\u6548\u3002",
9074
+ projectGroupDependencyLockMismatch: "\u9879\u76EE\u7EC4\u4F9D\u8D56\u9501\u4E0E\u6839\u9879\u76EE\u7684\u5173\u8054\u9879\u76EE\u4E0D\u4E00\u81F4\u3002",
9075
+ projectGroupSelfReference: "\u6839\u9879\u76EE\u4E0D\u80FD\u628A\u81EA\u8EAB\u58F0\u660E\u4E3A\u5173\u8054\u9879\u76EE\u3002",
8885
9076
  projectGroupUndeclaredDependency: "\u4F9D\u8D56\u9879\u76EE\u201C{{projectId}}\u201D\u672A\u5728\u9879\u76EE\u7EC4\u4E2D\u58F0\u660E\u3002",
8886
9077
  projectGroupExistingProjectTypeMismatch: "\u5DF2\u6709\u672C\u5730\u9879\u76EE\u201C{{projectId}}\u201D\u7684\u7C7B\u578B\u4E3A\u201C{{actualProjectType}}\u201D\uFF0C\u9879\u76EE\u7EC4\u8981\u6C42\u7C7B\u578B\u4E3A\u201C{{expectedProjectType}}\u201D\u3002",
8887
9078
  projectGroupCopyMissingIncludedSource: "\u590D\u5236\u9879\u76EE\u7EC4\u9700\u8981\u63D0\u4F9B\u6BCF\u4E2A included \u4F9D\u8D56\u7684\u6E90\u7801\u3002",
@@ -8943,6 +9134,20 @@ var serverWeb2 = {
8943
9134
  accountAvatarLabel: "\u5934\u50CF",
8944
9135
  accountAvatarUpload: "\u4E0A\u4F20\u5934\u50CF",
8945
9136
  accountCurrentIdentity: "\u5F53\u524D\u8EAB\u4EFD",
9137
+ accountInviteAccept: "\u8BBE\u7F6E\u5BC6\u7801\u5E76\u767B\u5F55",
9138
+ accountInviteAcceptedDescription: "\u8BE5\u9080\u8BF7\u5DF2\u88AB\u63A5\u53D7\u3002\u5982\u65E0\u6CD5\u767B\u5F55\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u91CD\u65B0\u751F\u6210\u9080\u8BF7\u3002",
9139
+ accountInviteConfirmPasswordLabel: "\u786E\u8BA4\u5BC6\u7801",
9140
+ accountInviteDescription: "\u4E3A {{email}} \u8BBE\u7F6E\u521D\u59CB\u5BC6\u7801\u5E76\u6FC0\u6D3B Workflow \u8D26\u53F7\u3002",
9141
+ accountInviteExpiredDescription: "\u8BE5\u9080\u8BF7\u5DF2\u8FC7\u671F\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u91CD\u65B0\u751F\u6210\u9080\u8BF7\u3002",
9142
+ accountInviteExpiresAt: "\u8BE5\u4E00\u6B21\u6027\u94FE\u63A5\u5C06\u5728 {{expiresAt}} \u8FC7\u671F\u3002",
9143
+ accountInviteInvalidDescription: "\u8BE5\u9080\u8BF7\u94FE\u63A5\u65E0\u6548\u6216\u5DF2\u4E0D\u5B58\u5728\u3002",
9144
+ accountInvitePasswordMismatch: "\u4E24\u6B21\u8F93\u5165\u7684\u5BC6\u7801\u4E0D\u4E00\u81F4\u3002",
9145
+ accountInvitePasswordDescription: "\u81F3\u5C11\u8F93\u5165 8 \u4E2A\u5B57\u7B26\uFF0C\u5BC6\u7801\u4EC5\u4EE5\u5E26\u968F\u673A\u76D0\u7684 scrypt \u54C8\u5E0C\u4FDD\u5B58\u3002",
9146
+ accountInviteReading: "\u6B63\u5728\u8BFB\u53D6\u8D26\u53F7\u9080\u8BF7\u2026",
9147
+ accountInviteSubmitting: "\u6B63\u5728\u6FC0\u6D3B\u8D26\u53F7",
9148
+ accountInviteSuccessDescription: "\u8D26\u53F7\u5DF2\u6FC0\u6D3B\uFF0C\u5E76\u5DF2\u5EFA\u7ACB\u6D4F\u89C8\u5668\u767B\u5F55\u4F1A\u8BDD\u3002",
9149
+ accountInviteSuccessTitle: "\u8D26\u53F7\u5DF2\u6FC0\u6D3B",
9150
+ accountInviteTitle: "\u6FC0\u6D3B\u4F60\u7684\u8D26\u53F7",
8946
9151
  accountDisplayNameFieldDescription: "\u66F4\u65B0\u540E\u4F1A\u540C\u6B65\u5230 Web \u4F1A\u8BDD\u3001device authorize \u548C API Key \u5F52\u5C5E\u4FE1\u606F\u3002",
8947
9152
  accountDisplayNameLabel: "\u663E\u793A\u540D\u79F0",
8948
9153
  accountDisplayNamePlaceholder: "\u8F93\u5165\u5C55\u793A\u540D\u79F0",
@@ -9077,8 +9282,6 @@ var serverWeb2 = {
9077
9282
  busyLoadAiConfig: "\u52A0\u8F7D AI \u914D\u7F6E",
9078
9283
  busyLoadAiUsage: "\u52A0\u8F7D AI \u7528\u91CF",
9079
9284
  busyLoadAudit: "\u52A0\u8F7D\u5BA1\u8BA1\u65E5\u5FD7",
9080
- busyLoadGlobalKv: "\u52A0\u8F7D Global KV",
9081
- busyLoadGlobalKvPage: "\u5207\u6362 Global KV \u5206\u9875",
9082
9285
  busyLoadLogs: "\u52A0\u8F7D\u6267\u884C\u8BB0\u5F55",
9083
9286
  busyLoadOrders: "\u52A0\u8F7D\u8BA2\u5355",
9084
9287
  busyLoadProjectDetail: "\u52A0\u8F7D\u9879\u76EE\u8BE6\u60C5",
@@ -9125,17 +9328,49 @@ var serverWeb2 = {
9125
9328
  confirmActionCancel: "\u53D6\u6D88",
9126
9329
  confirmActionConfirm: "\u786E\u8BA4",
9127
9330
  detailNavEmbed: "Embed",
9128
- detailNavDependencies: "\u4F9D\u8D56\u4E0E\u6743\u9650",
9331
+ detailNavRelatedProjects: "\u5173\u8054\u9879\u76EE",
9129
9332
  detailNavEnv: "\u73AF\u5883\u53D8\u91CF",
9130
9333
  detailNavKnowledge: "\u77E5\u8BC6\u5E93",
9131
9334
  detailNavKv: "KV \u6570\u636E",
9132
9335
  detailNavLogs: "\u6267\u884C\u65E5\u5FD7",
9336
+ detailNavMcp: "MCP",
9133
9337
  detailNavMembers: "\u6210\u5458",
9134
9338
  detailNavOverview: "\u6982\u89C8",
9135
9339
  detailNavSchedules: "\u5B9A\u65F6\u4EFB\u52A1",
9136
9340
  detailNavSettings: "\u8BBE\u7F6E",
9137
9341
  detailNavVersions: "\u7248\u672C",
9138
9342
  detailNavWebhook: "Webhook",
9343
+ mcpApiKeySettings: "API Key \u8BBE\u7F6E",
9344
+ mcpAuthHeaderDescription: "\u5C06\u5360\u4F4D\u7B26\u66FF\u6362\u4E3A\u8D26\u6237 API Key \u6216\u7BA1\u7406\u5458 Key\uFF1B\u6D4F\u89C8\u5668 Cookie \u4E0D\u53EF\u7528\u4E8E MCP\u3002",
9345
+ mcpAuthHeaderLabel: "\u9274\u6743\u8BF7\u6C42\u5934",
9346
+ mcpClientConfigDescription: "\u901A\u7528 MCP \u5BA2\u6237\u7AEF\u914D\u7F6E\uFF1B\u8BF7\u5C06 API Key \u4FDD\u5B58\u5728\u5BA2\u6237\u7AEF\u7684\u5BC6\u94A5\u5B58\u50A8\u4E2D\u3002",
9347
+ mcpClientConfigLabel: "\u5BA2\u6237\u7AEF JSON",
9348
+ mcpConnectionDescription: "\u901A\u8FC7\u6807\u51C6 Streamable HTTP \u5C06 MCP \u5BA2\u6237\u7AEF\u8FDE\u63A5\u5230\u9009\u5B9A\u4E14\u56FA\u5B9A\u7684 Workflow \u76EE\u6807\u3002",
9349
+ mcpConnectionTitle: "MCP \u8FDE\u63A5",
9350
+ mcpCopied: "\u5DF2\u590D\u5236",
9351
+ mcpCopyAuthHeader: "\u590D\u5236\u9274\u6743\u8BF7\u6C42\u5934",
9352
+ mcpCopyClientConfig: "\u590D\u5236\u5BA2\u6237\u7AEF JSON",
9353
+ mcpCopyFailed: "\u590D\u5236\u5931\u8D25\uFF0C\u91CD\u8BD5",
9354
+ mcpCopyUrl: "\u590D\u5236 Streamable HTTP URL",
9355
+ mcpEmptyDescription: "\u8BF7\u4E3A\u5F53\u524D Workflow \u76EE\u6807\u589E\u52A0 entrypoint\uFF0C\u7136\u540E\u91CD\u65B0\u8FDE\u63A5 MCP \u5BA2\u6237\u7AEF\u3002",
9356
+ mcpEmptyTitle: "\u6CA1\u6709 MCP tools",
9357
+ mcpLoadFailedDescription: "\u65E0\u6CD5\u52A0\u8F7D\u5F53\u524D\u76EE\u6807\u7684 Workflow tool \u6E05\u5355\u3002",
9358
+ mcpLoadFailedTitle: "Tool \u6E05\u5355\u4E0D\u53EF\u7528",
9359
+ mcpLoadingDescription: "\u6B63\u5728\u52A0\u8F7D MCP tool \u6E05\u5355",
9360
+ mcpProjectTypeUnsupported: "\u53EA\u6709 Workflow \u9879\u76EE\u53EF\u4EE5\u901A\u8FC7 MCP \u66B4\u9732\u3002",
9361
+ mcpServerNameLabel: "Server \u540D\u79F0",
9362
+ mcpTargetDraft: "draft\uFF08\u5F53\u524D\u8349\u7A3F\uFF09",
9363
+ mcpTargetLabel: "\u76EE\u6807",
9364
+ mcpTargetLatest: "latest\uFF08\u5F53\u524D\u53EF\u6267\u884C\u7248\u672C\uFF09",
9365
+ mcpToolsCount: "{{count}} \u4E2A tools",
9366
+ mcpToolsDescription: "\u6BCF\u4E2A Workflow entrypoint \u5BF9\u5E94\u4E00\u4E2A MCP tool\uFF1B\u540C\u4E00\u4F1A\u8BDD\u5185\u6E05\u5355\u4FDD\u6301\u56FA\u5B9A\u3002",
9367
+ mcpToolsTitle: "Tools",
9368
+ mcpTransportLabel: "Transport",
9369
+ mcpTransportValue: "Streamable HTTP",
9370
+ mcpUnavailableDescription: "\u5F53\u524D\u9879\u76EE\u6CA1\u6709\u6784\u5EFA\u6210\u529F\u7684 draft \u6216\u53EF\u5728 Server \u6267\u884C\u7684\u7248\u672C\u3002\u8BF7\u5148\u6784\u5EFA\u8349\u7A3F\u6216\u53D1\u5E03\u517C\u5BB9 Server \u7684\u7248\u672C\u3002",
9371
+ mcpUnavailableTitle: "Server MCP \u6682\u4E0D\u53EF\u7528",
9372
+ mcpUrlDescription: "POST \u627F\u8F7D MCP \u6D88\u606F\uFF0CGET \u5EFA\u7ACB SSE\uFF0CDELETE \u5173\u95ED\u5DF2\u7ED1\u5B9A\u7684\u4F1A\u8BDD\u3002",
9373
+ mcpUrlLabel: "Streamable HTTP URL",
9139
9374
  deviceApprove: "\u6279\u51C6\u767B\u5F55",
9140
9375
  deviceCardDescription: "device flow \u9700\u8981\u7531 Web \u4F1A\u8BDD\u663E\u5F0F\u6279\u51C6\uFF0CCLI / App \u624D\u80FD\u6362\u53D6 API Key\u3002",
9141
9376
  deviceDeny: "\u62D2\u7EDD",
@@ -9206,52 +9441,44 @@ var serverWeb2 = {
9206
9441
  formatDurationUnknown: "\u672A\u77E5",
9207
9442
  formatTimeUnknown: "\u672A\u77E5\u65F6\u95F4",
9208
9443
  formatUnknownTime: "\u672A\u77E5\u65F6\u95F4",
9209
- globalKvClear: "\u6E05\u7A7A",
9210
- globalKvCopyFailed: "\u5F53\u524D\u6D4F\u89C8\u5668\u4E0D\u5141\u8BB8\u590D\u5236\uFF0C\u8BF7\u624B\u52A8\u9009\u4E2D\u6587\u672C\u590D\u5236\u3002",
9211
- globalKvCopyJson: "\u590D\u5236 JSON",
9212
- globalKvCopyJsonCopied: "JSON \u5DF2\u590D\u5236",
9213
- globalKvCopyKey: "\u590D\u5236 Key",
9214
- globalKvCopySummary: "\u590D\u5236\u6458\u8981",
9215
- globalKvCopySummaryCopied: "\u6458\u8981\u5DF2\u590D\u5236",
9216
- globalKvDetailLoadingAria: "\u6B63\u5728\u52A0\u8F7D KV \u8BE6\u60C5",
9217
- globalKvDetailLoadingText: "\u6B63\u5728\u52A0\u8F7D\u5B8C\u6574\u503C\u2026",
9218
- globalKvDetailTitle: "KV \u8BE6\u60C5",
9219
- globalKvDetailTooLarge: "\u5B8C\u6574\u503C\u8F83\u5927\uFF0C\u5F53\u524D\u4EC5\u5C55\u793A\u5217\u8868\u6458\u8981\uFF0C\u907F\u514D\u6D4F\u89C8\u5668\u5728\u52A0\u8F7D\u548C\u683C\u5F0F\u5316\u5927 JSON \u65F6\u5361\u987F\u3002",
9220
- globalKvEmptyDescription: "\u8C03\u6574\u641C\u7D22\u8BCD\u3001\u7C7B\u578B\u6216\u5173\u8054\u6761\u4EF6\u540E\u91CD\u8BD5\u3002",
9221
- globalKvEmptyTitle: "\u6CA1\u6709\u5339\u914D\u7684 KV \u8BB0\u5F55",
9222
- globalKvFilterLinkStateAria: "\u5173\u8054\u72B6\u6001",
9223
- globalKvFilterLinkStateOptions: "\u5168\u90E8\u5173\u8054",
9224
- globalKvFilterLinkedState: "\u5DF2\u5173\u8054\u65E5\u5FD7",
9225
- globalKvFilterRunId: "runId",
9226
- globalKvFilterSearch: "\u641C\u7D22 Key...",
9227
- globalKvFilterUnlinkedState: "\u672A\u5173\u8054\u65E5\u5FD7",
9228
- globalKvFilterValueTypeAria: "\u503C\u7C7B\u578B",
9229
- globalKvHeaderConversation: "Conversation",
9230
- globalKvHeaderKey: "Key",
9231
- globalKvHeaderLastWriter: "Last writer",
9232
- globalKvHeaderOperations: "\u64CD\u4F5C",
9233
- globalKvHeaderProject: "\u9879\u76EE",
9234
- globalKvHeaderUpdatedAt: "\u66F4\u65B0\u65F6\u95F4",
9235
- globalKvHeaderValue: "\u503C",
9236
- globalKvLinkStateAll: "\u5168\u90E8\u5173\u8054",
9237
- globalKvLinkedRunNotLinked: "\u65E0\u5173\u8054\u65E5\u5FD7",
9238
- globalKvLinkedRunView: "\u67E5\u770B\u5173\u8054\u65E5\u5FD7",
9239
- globalKvLoadJson: "\u52A0\u8F7D JSON",
9240
- globalKvLoadJsonLoading: "\u52A0\u8F7D\u4E2D",
9241
- globalKvLoadJsonRetry: "\u91CD\u8BD5\u52A0\u8F7D JSON",
9242
- globalKvMetaLastRun: "\u6700\u540E\u6267\u884C",
9243
- globalKvMetaUnlinked: "\u672A\u5173\u8054",
9244
- globalKvNotRecorded: "\u672A\u8BB0\u5F55",
9245
- globalKvPageDescription: "\u8DE8\u9879\u76EE\u5171\u4EAB\u7F13\u5B58\u4E0E\u5E73\u53F0\u7EA7\u72B6\u6001\u7684\u53EA\u8BFB\u6392\u67E5\u89C6\u56FE\u3002\u5171 {{total}} \u6761\u8BB0\u5F55\u3002",
9246
- globalKvPageTitle: "\u5168\u5C40 KV",
9247
- globalKvRefresh: "\u5237\u65B0",
9248
- globalKvScopeConversation: "conversation",
9249
- globalKvScopeWorkflow: "workflow",
9250
- globalKvStatLinked: "\u5DF2\u5173\u8054\u65E5\u5FD7 (\u672C\u9875)",
9251
- globalKvStatStructured: "\u7ED3\u6784\u5316\u503C (\u672C\u9875)",
9252
- globalKvStatTotal: "\u8BB0\u5F55\u603B\u6570 (\u5339\u914D\u8FC7\u6EE4)",
9253
- globalKvValueTypeAll: "\u5168\u90E8\u7C7B\u578B",
9254
- globalKvViewDetail: "\u67E5\u770B KV \u8BE6\u60C5",
9444
+ projectKvClear: "\u6E05\u7A7A",
9445
+ projectKvCopyFailed: "\u5F53\u524D\u6D4F\u89C8\u5668\u4E0D\u5141\u8BB8\u590D\u5236\uFF0C\u8BF7\u624B\u52A8\u9009\u4E2D\u6587\u672C\u590D\u5236\u3002",
9446
+ projectKvCopyJson: "\u590D\u5236 JSON",
9447
+ projectKvCopyJsonCopied: "JSON \u5DF2\u590D\u5236",
9448
+ projectKvCopyKey: "\u590D\u5236 Key",
9449
+ projectKvCopySummary: "\u590D\u5236\u6458\u8981",
9450
+ projectKvCopySummaryCopied: "\u6458\u8981\u5DF2\u590D\u5236",
9451
+ projectKvDetailLoadingAria: "\u6B63\u5728\u52A0\u8F7D KV \u8BE6\u60C5",
9452
+ projectKvDetailLoadingText: "\u6B63\u5728\u52A0\u8F7D\u5B8C\u6574\u503C\u2026",
9453
+ projectKvDetailTitle: "KV \u8BE6\u60C5",
9454
+ projectKvDetailTooLarge: "\u5B8C\u6574\u503C\u8F83\u5927\uFF0C\u5F53\u524D\u4EC5\u5C55\u793A\u5217\u8868\u6458\u8981\uFF0C\u907F\u514D\u6D4F\u89C8\u5668\u5728\u52A0\u8F7D\u548C\u683C\u5F0F\u5316\u5927 JSON \u65F6\u5361\u987F\u3002",
9455
+ projectKvEmptyDescription: "\u8C03\u6574\u641C\u7D22\u8BCD\u3001\u7C7B\u578B\u6216\u5173\u8054\u6761\u4EF6\u540E\u91CD\u8BD5\u3002",
9456
+ projectKvEmptyTitle: "\u6CA1\u6709\u5339\u914D\u7684 KV \u8BB0\u5F55",
9457
+ projectKvFilterLinkStateAria: "\u5173\u8054\u72B6\u6001",
9458
+ projectKvFilterLinkedState: "\u5DF2\u5173\u8054\u65E5\u5FD7",
9459
+ projectKvFilterRunId: "runId",
9460
+ projectKvFilterSearch: "\u641C\u7D22 Key...",
9461
+ projectKvFilterUnlinkedState: "\u672A\u5173\u8054\u65E5\u5FD7",
9462
+ projectKvFilterValueTypeAria: "\u503C\u7C7B\u578B",
9463
+ projectKvHeaderConversation: "Conversation",
9464
+ projectKvHeaderKey: "Key",
9465
+ projectKvHeaderLastWriter: "Last writer",
9466
+ projectKvHeaderOperations: "\u64CD\u4F5C",
9467
+ projectKvHeaderProject: "\u9879\u76EE",
9468
+ projectKvHeaderUpdatedAt: "\u66F4\u65B0\u65F6\u95F4",
9469
+ projectKvHeaderValue: "\u503C",
9470
+ projectKvLinkStateAll: "\u5168\u90E8\u5173\u8054",
9471
+ projectKvLinkedRunNotLinked: "\u65E0\u5173\u8054\u65E5\u5FD7",
9472
+ projectKvLinkedRunView: "\u67E5\u770B\u5173\u8054\u65E5\u5FD7",
9473
+ projectKvLoadJson: "\u52A0\u8F7D JSON",
9474
+ projectKvLoadJsonLoading: "\u52A0\u8F7D\u4E2D",
9475
+ projectKvLoadJsonRetry: "\u91CD\u8BD5\u52A0\u8F7D JSON",
9476
+ projectKvMetaLastRun: "\u6700\u540E\u6267\u884C",
9477
+ projectKvMetaUnlinked: "\u672A\u5173\u8054",
9478
+ projectKvNotRecorded: "\u672A\u8BB0\u5F55",
9479
+ projectKvRefresh: "\u5237\u65B0",
9480
+ projectKvValueTypeAll: "\u5168\u90E8\u7C7B\u578B",
9481
+ projectKvViewDetail: "\u67E5\u770B KV \u8BE6\u60C5",
9255
9482
  inviteAcceptAndJoin: "\u63A5\u53D7\u9080\u8BF7\u5E76\u52A0\u5165",
9256
9483
  inviteAcceptFailed: "\u63A5\u53D7\u9080\u8BF7\u5931\u8D25\u3002",
9257
9484
  inviteAlreadyAccepted: "\u8BE5\u9080\u8BF7\u5DF2\u88AB\u63A5\u53D7\u3002",
@@ -9377,6 +9604,7 @@ var serverWeb2 = {
9377
9604
  logsSourceDesktop: "Desktop",
9378
9605
  logsSourceEmbed: "Embed",
9379
9606
  logsSourceExternalApi: "\u5916\u90E8 API",
9607
+ logsSourceMcp: "MCP",
9380
9608
  logsSourceSchedule: "\u5B9A\u65F6\u4EFB\u52A1",
9381
9609
  logsSourceUnknown: "\u672A\u8BB0\u5F55",
9382
9610
  logsSourceUserSession: "\u7528\u6237\u4F1A\u8BDD",
@@ -9535,7 +9763,6 @@ var serverWeb2 = {
9535
9763
  membersUserSource: "\u7528\u6237\u6765\u6E90",
9536
9764
  membersVisible: "\u5F53\u524D\u9875 {{page}} \u6761 / \u7B5B\u9009 {{total}} \u6761",
9537
9765
  navAdminCenter: "\u7BA1\u7406\u4E2D\u5FC3",
9538
- navGlobalKv: "\u5168\u5C40 KV \u6570\u636E",
9539
9766
  navProjects: "\u9879\u76EE\u5DE5\u4F5C\u53F0",
9540
9767
  navSettings: "\u8BBE\u7F6E",
9541
9768
  overviewAccessAcceptTasks: "\u63A5\u6536\u4EFB\u52A1",
@@ -10491,7 +10718,7 @@ var serverWeb2 = {
10491
10718
  navEnterAdminCenter: "\u8FDB\u5165\u7BA1\u7406\u5458\u540E\u53F0",
10492
10719
  busyResetEmbedToken: "\u91CD\u7F6E Embed Token",
10493
10720
  busyResetWebhookSecret: "\u91CD\u7F6E Webhook Secret",
10494
- projectKvDetailScopeError: "\u9879\u76EE KV \u8BE6\u60C5\u53EA\u652F\u6301 workflow / conversation scope\u3002",
10721
+ projectKvDetailScopeError: "\u9879\u76EE KV \u8BE6\u60C5\u53EA\u652F\u6301 project / conversation scope\u3002",
10495
10722
  filePickerChoose: "\u9009\u62E9\u6587\u4EF6",
10496
10723
  tableLoadingRows: "\u6B63\u5728\u52A0\u8F7D\u8868\u683C",
10497
10724
  selectPlaceholder: "\u9009\u62E9",
@@ -10512,7 +10739,7 @@ var serverWeb2 = {
10512
10739
  embedTabResetTokenDescription: "\u91CD\u7F6E\u540E\u65E7 Token \u4F1A\u7ACB\u5373\u5931\u6548\uFF0C\u5DF2\u7ECF\u5D4C\u5165\u5230\u5916\u90E8\u9875\u9762\u6216\u5206\u4EAB\u51FA\u53BB\u7684\u65E7\u94FE\u63A5\u5C06\u65E0\u6CD5\u7EE7\u7EED\u8BBF\u95EE\u3002",
10513
10740
  embedTabResetTokenAction: "\u91CD\u7F6E Token",
10514
10741
  embedTabPublicUrlDetail: "\u516C\u5F00 URL\uFF1A",
10515
- globalKvFilterScopeAria: "\u8303\u56F4",
10742
+ projectKvFilterScopeAria: "\u8303\u56F4",
10516
10743
  overviewQueueDonutAria: "\u8FD0\u884C\u6001\u6458\u8981\u961F\u5217\u5360\u7528\u56FE",
10517
10744
  overviewCapacityBarsAria: "\u5E76\u53D1\u5BB9\u91CF\u67F1\u72B6\u56FE",
10518
10745
  overviewAccessBarsAria: "\u63A5\u5165\u72B6\u6001\u6761\u5F62\u56FE",
@@ -10554,38 +10781,16 @@ var serverWeb2 = {
10554
10781
  webhookRunHeaderEntrypoint: "Workflow \u5165\u53E3",
10555
10782
  webhookSaveConfirmDetailsEntrypoint: "Workflow \u5165\u53E3\uFF1A",
10556
10783
  versionsDayRunCount: "{{day}} / {{total}} \u6B21",
10557
- dependenciesAddGrant: "\u65B0\u589E\u6570\u636E\u8BBF\u95EE\u6388\u6743",
10558
- dependenciesAddGrantDialogDescription: "\u641C\u7D22\u5E76\u9009\u62E9\u4F7F\u7528\u65B9\u9879\u76EE\uFF0C\u518D\u9650\u5B9A\u8BE5\u9879\u76EE\u53EF\u4EE5\u8BFB\u53D6\u7684 KV key \u524D\u7F00\u3002",
10559
- dependenciesAddGrantDialogTitle: "\u65B0\u589E\u6570\u636E\u6388\u6743",
10560
10784
  dependenciesApproveRequest: "\u6279\u51C6",
10561
- dependenciesConsumerProjectAria: "\u4F7F\u7528\u65B9\u9879\u76EE",
10562
- dependenciesConsumerProjectCreateDescription: "\u53EF\u6309\u9879\u76EE\u540D\u79F0\u6216\u7C7B\u578B\u641C\u7D22\uFF1B\u5217\u8868\u53EA\u663E\u793A\u5C1A\u672A\u6388\u6743\u7684\u53EF\u7528\u9879\u76EE\u3002",
10563
- dependenciesConsumerProjectEditDescription: "\u4F7F\u7528\u65B9\u9879\u76EE\u7531\u539F\u6388\u6743\u56FA\u5B9A\uFF1B\u5982\u9700\u66F4\u6362\uFF0C\u8BF7\u64A4\u9500\u540E\u91CD\u65B0\u65B0\u589E\u6388\u6743\u3002",
10564
- dependenciesConsumerProjectLabel: "\u4F7F\u7528\u65B9\u9879\u76EE",
10565
- dependenciesConsumerProjectPlaceholder: "\u641C\u7D22\u5E76\u9009\u62E9\u4F7F\u7528\u65B9\u9879\u76EE",
10566
- dependenciesConsumerProjectsUnavailableTitle: "\u4F7F\u7528\u65B9\u9879\u76EE\u4E0D\u53EF\u7528",
10567
- dependenciesCurrentConsumerProject: "\u5F53\u524D\u4F7F\u7528\u65B9\u9879\u76EE",
10568
- dependenciesDataAuthorized: "\u5DF2\u6388\u6743",
10569
- dependenciesDataAwaitingGrant: "\u5F85\u6388\u6743",
10570
- dependenciesDataGrantsDescription: "\u5141\u8BB8\u4F7F\u7528\u65B9\u9879\u76EE\u7684\u767B\u5F55\u8BBF\u95EE\u8005\u53EA\u8BFB\u5F53\u524D\u9879\u76EE\u7684\u6307\u5B9A KV \u524D\u7F00\uFF0C\u4E0D\u4F1A\u540C\u65F6\u5F00\u653E\u5F53\u524D\u9879\u76EE\u7684\u5176\u5B83\u5185\u5BB9\u3002",
10571
- dependenciesDataGrantsTitle: "\u6570\u636E\u8BBF\u95EE\u6388\u6743",
10572
10785
  dependenciesDataInitialized: "\u5DF2\u6709\u6570\u636E",
10573
- dependenciesDataUnauthorized: "\u672A\u6388\u6743",
10574
10786
  dependenciesDataUninitialized: "\u672A\u521D\u59CB\u5316",
10575
10787
  dependenciesDeliveryExternal: "\u5916\u90E8\u4F9D\u8D56",
10576
10788
  dependenciesDeliveryIncluded: "\u968F\u7EC4\u4EA4\u4ED8",
10577
- dependenciesEditGrantDialogDescription: "\u66F4\u65B0 {{name}} \u53EF\u4EE5\u8BFB\u53D6\u7684 KV key \u524D\u7F00\u3002",
10578
- dependenciesEditGrantDialogTitle: "\u7F16\u8F91\u6570\u636E\u6388\u6743",
10579
- dependenciesEditGrantLabel: "\u7F16\u8F91 {{name}} \u7684\u6570\u636E\u6388\u6743",
10580
- dependenciesEmptyDescription: "\u5F53\u524D\u7CBE\u786E\u7248\u672C\u672A\u58F0\u660E workflow-kv \u6570\u636E\u6E90\u3002",
10789
+ dependenciesEmptyDescription: "\u5F53\u524D\u7CBE\u786E\u7248\u672C\u6CA1\u6709\u7531\u5DF2\u786E\u8BA4\u5173\u8054\u9879\u76EE\u751F\u6210\u7684\u4F9D\u8D56\u3002",
10581
10790
  dependenciesEmptyTitle: "\u6CA1\u6709\u5F15\u7528\u9879\u76EE",
10582
- dependenciesGrantFieldsRequired: "\u8BF7\u9009\u62E9\u4F7F\u7528\u65B9\u9879\u76EE\uFF0C\u5E76\u81F3\u5C11\u586B\u5199\u4E00\u4E2A\u5141\u8BB8\u7684 key \u524D\u7F00\u3002",
10583
10791
  dependenciesHeaderActions: "\u64CD\u4F5C",
10584
- dependenciesHeaderAllowedPrefixes: "\u5141\u8BB8\u524D\u7F00",
10585
10792
  dependenciesHeaderAuthorizedUser: "\u5DF2\u6388\u6743\u7528\u6237",
10586
10793
  dependenciesHeaderCapability: "\u80FD\u529B",
10587
- dependenciesHeaderConsumerProject: "\u4F7F\u7528\u65B9\u9879\u76EE",
10588
- dependenciesHeaderDataGrant: "\u6570\u636E\u6388\u6743",
10589
10794
  dependenciesHeaderDelivery: "\u4EA4\u4ED8",
10590
10795
  dependenciesHeaderExactVersion: "\u7CBE\u786E\u7248\u672C",
10591
10796
  dependenciesHeaderGrantedAt: "\u6388\u6743\u65F6\u95F4",
@@ -10596,47 +10801,23 @@ var serverWeb2 = {
10596
10801
  dependenciesHeaderSourcePermission: "\u6E90\u7801\u6743\u9650",
10597
10802
  dependenciesHeaderSubmittedAt: "\u63D0\u4EA4\u65F6\u95F4",
10598
10803
  dependenciesHeaderUpdatedAt: "\u66F4\u65B0\u65F6\u95F4",
10599
- dependenciesKeyPrefixesDescription: "\u6BCF\u884C\u4E00\u4E2A\u524D\u7F00\u3002\u6700\u7EC8\u8BFB\u53D6\u8303\u56F4\u4ECD\u53D7\u4F7F\u7528\u65B9\u9879\u76EE\u7CBE\u786E\u7248\u672C\u7684\u6570\u636E\u6E90\u58F0\u660E\u9650\u5236\u3002",
10600
- dependenciesKeyPrefixesLabel: "\u5141\u8BB8\u7684 key \u524D\u7F00",
10601
- dependenciesLoadDataGrantsFailed: "\u65E0\u6CD5\u8BFB\u53D6\u6570\u636E\u6388\u6743\u3002",
10602
- dependenciesLoadGrantableProjectsFailed: "\u65E0\u6CD5\u8BFB\u53D6\u53EF\u6388\u6743\u9879\u76EE\u3002",
10603
- dependenciesLoadPermissionsFailed: "\u65E0\u6CD5\u8BFB\u53D6\u9879\u76EE\u6743\u9650\u3002",
10604
10804
  dependenciesLoadSourceRequestsFailed: "\u65E0\u6CD5\u8BFB\u53D6\u6E90\u7801\u8BBF\u95EE\u7533\u8BF7\u3002",
10605
10805
  dependenciesLoadStatusFailed: "\u65E0\u6CD5\u8BFB\u53D6\u9879\u76EE\u4F9D\u8D56\u72B6\u6001\u3002",
10606
- dependenciesLoadingDataGrants: "\u6B63\u5728\u52A0\u8F7D\u6570\u636E\u6388\u6743",
10607
- dependenciesManagementUnavailableTitle: "\u7BA1\u7406\u6743\u9650\u4E0D\u53EF\u7528",
10608
- dependenciesNoDataGrantsDescription: "\u5F53\u524D\u9879\u76EE\u5C1A\u672A\u5411\u5176\u5B83\u9879\u76EE\u5F00\u653E KV \u524D\u7F00\u3002",
10609
- dependenciesNoDataGrantsTitle: "\u6CA1\u6709\u6570\u636E\u6388\u6743",
10610
- dependenciesNoGrantableConsumer: "\u6CA1\u6709\u53EF\u6388\u6743\u7684\u4F7F\u7528\u65B9\u9879\u76EE",
10611
- dependenciesNoMatchingProjects: "\u6CA1\u6709\u5339\u914D\u9879\u76EE",
10612
10806
  dependenciesNoPendingRequestsDescription: "\u4E0B\u8F7D\u8005\u901A\u8FC7\u77ED\u671F\u7533\u8BF7\u94FE\u63A5\u63D0\u4EA4\u540E\u4F1A\u663E\u793A\u5728\u8FD9\u91CC\u3002",
10613
10807
  dependenciesNoPendingRequestsTitle: "\u6CA1\u6709\u5F85\u5BA1\u6279\u7533\u8BF7",
10614
10808
  dependenciesNoSourceGrantsDescription: "\u9879\u76EE\u6210\u5458\u7684\u73B0\u6709\u6E90\u7801\u6743\u9650\u4E0D\u5728\u6B64\u8868\u91CD\u590D\u663E\u793A\u3002",
10615
10809
  dependenciesNoSourceGrantsTitle: "\u6CA1\u6709\u989D\u5916\u6E90\u7801\u6388\u6743",
10616
- dependenciesNotReadyDescription: "\u6765\u6E90\u9879\u76EE\u7F3A\u5931\u6216\u6570\u636E\u524D\u7F00\u5C1A\u672A\u6388\u6743\uFF0C\u4E0D\u80FD\u53D1\u5E03\u4E3A\u53EF\u5206\u4EAB\u7248\u672C\u3002",
10810
+ dependenciesNotReadyDescription: "\u6765\u6E90\u9879\u76EE\u7F3A\u5931\u3001\u5173\u7CFB\u672A\u786E\u8BA4\u6216 included \u6E90\u7801\u4E0D\u53EF\u7528\uFF0C\u4E0D\u80FD\u53D1\u5E03\u4E3A\u53EF\u5206\u4EAB\u7248\u672C\u3002",
10617
10811
  dependenciesNotReadyTitle: "\u5F53\u524D\u7248\u672C\u4F9D\u8D56\u672A\u5C31\u7EEA",
10618
- dependenciesOpenProjectName: "\u6253\u5F00 {{name}}",
10619
10812
  dependenciesOpenSourceProject: "\u6253\u5F00\u6765\u6E90\u9879\u76EE",
10620
10813
  dependenciesPageDescription: "\u67E5\u770B\u5F53\u524D\u9879\u76EE\u7684\u5F15\u7528\u5173\u7CFB\uFF0C\u7BA1\u7406\u6570\u636E\u8BBF\u95EE\u4E0E\u6E90\u7801\u4EA4\u4ED8\u6743\u9650\u3002\u5BBF\u4E3B\u6570\u636E\u4E0D\u4F1A\u968F\u9879\u76EE\u7EC4\u4F20\u8F93\u3002",
10621
- dependenciesProjectNameUnavailable: "\u540D\u79F0\u4E0D\u53EF\u8BFB\u53D6",
10622
- dependenciesProjectUnavailable: "\u9879\u76EE\u4E0D\u53EF\u7528",
10623
10814
  dependenciesRejectRequest: "\u62D2\u7EDD",
10624
10815
  dependenciesRequestSourceAccessLabel: "\u7533\u8BF7\u6E90\u7801\u6743\u9650",
10625
10816
  dependenciesRequestSourceAccessTitle: "\u7533\u8BF7\u4E0B\u8F7D\u6765\u6E90\u9879\u76EE\u6E90\u7801",
10626
- dependenciesRevokeGrantConfirmDescription: "\u64A4\u9500\u540E\uFF0C\u5DF2\u6253\u5F00\u7684 Studio \u4E0E Embed \u6570\u636E\u8BA2\u9605\u4F1A\u91CD\u65B0\u6821\u9A8C\u5E76\u505C\u6B62\u8BFB\u53D6\u5F53\u524D\u9879\u76EE\u3002",
10627
- dependenciesRevokeGrantConfirmLabel: "\u64A4\u9500\u6388\u6743",
10628
- dependenciesRevokeGrantConfirmTitle: "\u64A4\u9500\u6570\u636E\u8BBF\u95EE\u6388\u6743",
10629
- dependenciesRevokeGrantLabel: "\u64A4\u9500 {{name}} \u7684\u6570\u636E\u6388\u6743",
10630
10817
  dependenciesRevokeSourceAccessConfirmDescription: "\u64A4\u9500\u540E\uFF0C\u8BE5\u7528\u6237\u4E0D\u80FD\u7EE7\u7EED\u4E0B\u8F7D\u6B64\u9879\u76EE\u4F5C\u4E3A included \u4F9D\u8D56\uFF1B\u5DF2\u7ECF\u4E0B\u8F7D\u7684\u672C\u5730\u6587\u4EF6\u4E0D\u4F1A\u88AB\u5220\u9664\u3002",
10631
10818
  dependenciesRevokeSourceAccessConfirmLabel: "\u64A4\u9500\u6743\u9650",
10632
10819
  dependenciesRevokeSourceAccessConfirmTitle: "\u64A4\u9500\u6E90\u7801\u4E0B\u8F7D\u6743\u9650",
10633
10820
  dependenciesRevokeSourceAccessLabel: "\u64A4\u9500\u6E90\u7801\u6743\u9650",
10634
- dependenciesSaveChanges: "\u4FDD\u5B58\u4FEE\u6539",
10635
- dependenciesSaveGrant: "\u4FDD\u5B58\u6388\u6743",
10636
- dependenciesSaveGrantFailed: "\u4FDD\u5B58\u6570\u636E\u6388\u6743\u5931\u8D25\u3002",
10637
- dependenciesSearchConsumerProjectAria: "\u641C\u7D22\u4F7F\u7528\u65B9\u9879\u76EE",
10638
- dependenciesSearchProjectPlaceholder: "\u641C\u7D22\u9879\u76EE\u540D\u79F0\u6216\u7C7B\u578B",
10639
- dependenciesSelectedConsumerUnavailable: "\u6240\u9009\u4F7F\u7528\u65B9\u9879\u76EE\u5DF2\u4E0D\u53EF\u7528\uFF0C\u8BF7\u91CD\u65B0\u9009\u62E9\u3002",
10640
10821
  dependenciesServerDataUninitializedDescription: "\u8BF7\u5728 Server \u4E0A\u8FD0\u884C\u6765\u6E90 Workflow \u7684\u540C\u6B65\u5165\u53E3\uFF1B\u672C\u5730 KV \u4E0D\u4F1A\u81EA\u52A8\u4E0A\u4F20\u3002",
10641
10822
  dependenciesServerDataUninitializedTitle: "\u9879\u76EE\u5DF2\u90E8\u7F72\uFF0CServer \u6570\u636E\u5C1A\u672A\u521D\u59CB\u5316",
10642
10823
  dependenciesSourceCodeMissing: "\u6E90\u7801\u7F3A\u5931",
@@ -10652,8 +10833,63 @@ var serverWeb2 = {
10652
10833
  dependenciesVersionCardDescription: "\u4F9D\u8D56\u76EE\u5F55\u6765\u81EA\u6240\u9009\u7CBE\u786E\u7248\u672C\u7684 dependency lock\uFF0C\u4E0D\u8DDF\u968F\u6765\u6E90\u9879\u76EE latest \u53D8\u5316\u3002",
10653
10834
  dependenciesVersionCardTitle: "\u5F53\u524D\u9879\u76EE\u7248\u672C\u4F9D\u8D56",
10654
10835
  dependenciesVersionUnlocked: "\u4E0D\u9501\u5B9A",
10655
- projectSettingsDependenciesEntryDescription: "\u68C0\u67E5\u7CBE\u786E\u4F9D\u8D56\u9501\u3001KV \u6570\u636E\u6388\u6743\u548C\u6E90\u7801\u8BBF\u95EE\u7533\u8BF7\u3002",
10656
- projectSettingsDependenciesEntryMeta: "\u9879\u76EE\u7EC4\u4EA4\u4ED8\u4E0E\u6570\u636E\u8BBF\u95EE\u76F8\u4E92\u72EC\u7ACB",
10836
+ relatedProjectsAccessAll: "\u5168\u90E8 key",
10837
+ relatedProjectsAccessNone: "\u4E0D\u5141\u8BB8",
10838
+ relatedProjectsAccessPrefixes: "\u6307\u5B9A\u524D\u7F00",
10839
+ relatedProjectsAdd: "\u6DFB\u52A0\u5173\u8054\u9879\u76EE",
10840
+ relatedProjectsAddTitle: "\u6DFB\u52A0\u5173\u8054\u9879\u76EE",
10841
+ relatedProjectsAlias: "\u5F53\u524D\u9879\u76EE alias",
10842
+ relatedProjectsAliasDescription: "\u5F53\u524D\u9879\u76EE\u901A\u8FC7\u8FD9\u4E2A alias \u8BBF\u95EE\u5BF9\u65B9\uFF1B\u4EC5\u652F\u6301\u5C0F\u5199\u5B57\u6BCD\u3001\u6570\u5B57\u3001\u4E0B\u5212\u7EBF\u548C\u8FDE\u5B57\u7B26\u3002",
10843
+ relatedProjectsAliasInvalid: "\u53CC\u65B9 alias \u5FC5\u987B\u4EE5\u5C0F\u5199\u5B57\u6BCD\u5F00\u5934\uFF0C\u957F\u5EA6\u4E0D\u8D85\u8FC7 64\uFF0C\u5E76\u4E14\u53EA\u80FD\u5305\u542B\u5C0F\u5199\u5B57\u6BCD\u3001\u6570\u5B57\u3001\u4E0B\u5212\u7EBF\u548C\u8FDE\u5B57\u7B26\u3002",
10844
+ relatedProjectsAwaitingConfirmation: "\u5F85\u5BF9\u65B9\u786E\u8BA4",
10845
+ relatedProjectsCardDescription: "\u5173\u7CFB\u5199\u5165\u53CC\u65B9\u9879\u76EE\u58F0\u660E\uFF1B\u53EA\u6709\u53CC\u65B9\u58F0\u660E\u4E00\u81F4\u65F6\u624D\u6388\u4E88 KV \u6743\u9650\u3002",
10846
+ relatedProjectsCardTitle: "\u9879\u76EE\u5173\u7CFB",
10847
+ relatedProjectsConfirmed: "\u5DF2\u786E\u8BA4",
10848
+ relatedProjectsEdit: "\u7F16\u8F91\u4E0E {{name}} \u7684\u5173\u7CFB",
10849
+ relatedProjectsEditTitle: "\u7F16\u8F91\u5173\u8054\u9879\u76EE",
10850
+ relatedProjectsEditorDescription: "\u5206\u522B\u8BBE\u7F6E\u53CC\u65B9 alias\uFF0C\u4EE5\u53CA\u53CC\u65B9\u5141\u8BB8\u5BF9\u65B9\u8BBF\u95EE\u81EA\u8EAB\u9879\u76EE KV \u7684\u8BFB\u5199\u89C4\u5219\u3002",
10851
+ relatedProjectsEmptyDescription: "\u6DFB\u52A0\u5173\u8054\u540E\uFF0C\u53CC\u65B9\u53EF\u6309\u5404\u81EA alias \u8BBF\u95EE\u5BF9\u65B9\u660E\u786E\u6388\u6743\u7684\u9879\u76EE KV\u3002",
10852
+ relatedProjectsEmptyTitle: "\u6CA1\u6709\u5173\u8054\u9879\u76EE",
10853
+ relatedProjectsGrantInboundDescription: "\u5BF9\u65B9\u9879\u76EE\u5141\u8BB8\u5F53\u524D\u9879\u76EE\u8BBF\u95EE\u5176 KV \u7684\u8303\u56F4\u3002",
10854
+ relatedProjectsGrantInboundTitle: "\u5BF9\u65B9\u6388\u4E88\u5F53\u524D\u9879\u76EE",
10855
+ relatedProjectsGrantOutboundDescription: "\u5F53\u524D\u9879\u76EE\u5141\u8BB8\u5BF9\u65B9\u9879\u76EE\u8BBF\u95EE\u81EA\u8EAB KV \u7684\u8303\u56F4\u3002",
10856
+ relatedProjectsGrantOutboundTitle: "\u5F53\u524D\u9879\u76EE\u6388\u4E88\u5BF9\u65B9",
10857
+ relatedProjectsHeaderAlias: "Alias",
10858
+ relatedProjectsHeaderInbound: "\u5BF9\u65B9\u6388\u6743",
10859
+ relatedProjectsHeaderOutbound: "\u5F53\u524D\u9879\u76EE\u6388\u6743",
10860
+ relatedProjectsHeaderProject: "\u5173\u8054\u9879\u76EE",
10861
+ relatedProjectsHeaderStatus: "\u72B6\u6001",
10862
+ relatedProjectsLoadFailed: "\u65E0\u6CD5\u8BFB\u53D6\u5173\u8054\u9879\u76EE\u3002",
10863
+ relatedProjectsNoMatches: "\u6CA1\u6709\u5339\u914D\u9879\u76EE",
10864
+ relatedProjectsOpen: "\u6253\u5F00 {{name}}",
10865
+ relatedProjectsPageDescription: "\u7BA1\u7406\u901A\u7528\u9879\u76EE\u5173\u7CFB\u3001\u53CC\u65B9 KV \u8BBF\u95EE\u89C4\u5219\uFF0C\u4EE5\u53CA\u7531\u5DF2\u786E\u8BA4\u5173\u7CFB\u751F\u6210\u7684\u7248\u672C\u4F9D\u8D56\u3002",
10866
+ relatedProjectsPending: "\u5F85\u786E\u8BA4",
10867
+ relatedProjectsPrefixCount: "{{count}} \u4E2A\u524D\u7F00",
10868
+ relatedProjectsPrefixesAria: "{{label}} key \u524D\u7F00",
10869
+ relatedProjectsPrefixesDescription: "prefixes \u6A21\u5F0F\u6BCF\u884C\u586B\u5199\u4E00\u4E2A\u975E\u7A7A\u524D\u7F00\uFF1B\u5176\u5B83\u6A21\u5F0F\u4F1A\u5FFD\u7565\u6B64\u5B57\u6BB5\u3002",
10870
+ relatedProjectsPrefixesRequired: "prefixes \u6A21\u5F0F\u81F3\u5C11\u9700\u8981\u4E00\u4E2A\u975E\u7A7A\u4E14\u4E0D\u91CD\u590D\u7684\u524D\u7F00\u3002",
10871
+ relatedProjectsProjectUnavailable: "\u9879\u76EE\u4E0D\u53EF\u7528",
10872
+ relatedProjectsRead: "\u8BFB\u53D6",
10873
+ relatedProjectsReadShort: "\u8BFB",
10874
+ relatedProjectsRemove: "\u79FB\u9664\u4E0E {{name}} \u7684\u5173\u7CFB",
10875
+ relatedProjectsRemoveConfirmDescription: "\u79FB\u9664\u540E\u53CC\u65B9\u5173\u7CFB\u4E0E\u5173\u8054 KV \u6743\u9650\u7ACB\u5373\u5931\u6548\uFF1B\u5DF2\u4E0B\u8F7D\u7684\u6E90\u7801\u4E0D\u4F1A\u88AB\u5220\u9664\u3002",
10876
+ relatedProjectsRemoveConfirmLabel: "\u79FB\u9664\u5173\u8054",
10877
+ relatedProjectsRemoveConfirmTitle: "\u79FB\u9664\u5173\u8054\u9879\u76EE",
10878
+ relatedProjectsSave: "\u4FDD\u5B58\u5173\u8054",
10879
+ relatedProjectsSaveFailed: "\u4FDD\u5B58\u5173\u8054\u9879\u76EE\u5931\u8D25\u3002",
10880
+ relatedProjectsSearchAria: "\u641C\u7D22\u5173\u8054\u76EE\u6807\u9879\u76EE",
10881
+ relatedProjectsSearchPlaceholder: "\u641C\u7D22\u9879\u76EE\u540D\u79F0\u6216\u7C7B\u578B",
10882
+ relatedProjectsTargetAlias: "\u5BF9\u65B9\u9879\u76EE alias",
10883
+ relatedProjectsTargetAliasDescription: "\u5BF9\u65B9\u9879\u76EE\u901A\u8FC7\u8FD9\u4E2A alias \u8BBF\u95EE\u5F53\u524D\u9879\u76EE\u3002",
10884
+ relatedProjectsTargetPlaceholder: "\u641C\u7D22\u5E76\u9009\u62E9\u9879\u76EE",
10885
+ relatedProjectsTargetProject: "\u76EE\u6807\u9879\u76EE",
10886
+ relatedProjectsTargetProjectAria: "\u76EE\u6807\u5173\u8054\u9879\u76EE",
10887
+ relatedProjectsTargetRequired: "\u8BF7\u9009\u62E9\u4E0D\u662F\u5F53\u524D\u9879\u76EE\u7684\u6709\u6548\u76EE\u6807\u9879\u76EE\u3002",
10888
+ relatedProjectsUnavailableTitle: "\u5173\u8054\u9879\u76EE\u4E0D\u53EF\u7528",
10889
+ relatedProjectsWrite: "\u5199\u5165",
10890
+ relatedProjectsWriteShort: "\u5199",
10891
+ projectSettingsDependenciesEntryDescription: "\u7BA1\u7406\u901A\u7528\u5173\u8054\u9879\u76EE\u3001\u53CC\u65B9 KV \u6743\u9650\u3001\u7CBE\u786E\u4F9D\u8D56\u9501\u548C\u6E90\u7801\u8BBF\u95EE\u7533\u8BF7\u3002",
10892
+ projectSettingsDependenciesEntryMeta: "\u5F85\u786E\u8BA4\u5173\u7CFB\u4E0D\u6388\u4E88 KV \u6743\u9650\uFF0C\u4E5F\u4E0D\u8FDB\u5165 included \u4F9D\u8D56\u7EC4",
10657
10893
  sourceAccessBackToProjects: "\u8FD4\u56DE\u9879\u76EE\u5DE5\u4F5C\u53F0",
10658
10894
  sourceAccessCheckingLink: "\u6B63\u5728\u6821\u9A8C\u7533\u8BF7\u94FE\u63A5",
10659
10895
  sourceAccessCurrentStatus: "\u5F53\u524D\u72B6\u6001\uFF1A{{status}}",
@@ -10711,6 +10947,20 @@ var server2 = {
10711
10947
  terminalNotEnabled: "\u670D\u52A1\u5668\u672A\u542F\u7528\u8FDC\u7A0B\u7EC8\u7AEF\u3002\u8BF7\u8BBE\u7F6E WORKFLOW_SERVER_TERMINAL_ENABLED=1\u3002",
10712
10948
  requestBodyTooLarge: "\u8BF7\u6C42\u4F53\u8FC7\u5927\u3002",
10713
10949
  sub2apiProxyBodyTooLarge: "Sub2API LLM \u4EE3\u7406\u8BF7\u6C42\u4F53\u8D85\u8FC7 50 MiB \u9650\u5236\u3002",
10950
+ mcpSessionMissingOrExpired: "MCP \u4F1A\u8BDD\u4E0D\u5B58\u5728\u6216\u5DF2\u8FC7\u671F\u3002",
10951
+ mcpSessionIdRequired: "\u5FC5\u987B\u63D0\u4F9B\u6709\u6548\u7684 MCP \u4F1A\u8BDD ID\u3002",
10952
+ mcpProjectTypeUnsupported: "\u9879\u76EE\u7C7B\u578B\u201C{{projectType}}\u201D\u4E0D\u80FD\u901A\u8FC7 MCP \u66B4\u9732\u3002",
10953
+ mcpTargetChanged: "MCP \u4F1A\u8BDD\u76EE\u6807\u5DF2\u53D8\u5316\uFF0C\u8BF7\u91CD\u65B0\u8FDE\u63A5\u540E\u518D\u8C03\u7528\u5DE5\u5177\u3002",
10954
+ mcpBearerRequired: "MCP \u9700\u8981 Authorization: Bearer API Key\u3002",
10955
+ mcpBearerKeyRequired: "MCP \u53EA\u63A5\u53D7\u8D26\u6237 API Key \u6216\u7BA1\u7406\u5458 Key\u3002",
10956
+ mcpDraftChanged: "Workflow \u8349\u7A3F\u5DF2\u53D8\u5316\uFF0C\u8BF7\u91CD\u65B0\u8FDE\u63A5\u540E\u518D\u8C03\u7528\u5DE5\u5177\u3002",
10957
+ mcpSessionCredentialMismatch: "MCP \u4F1A\u8BDD\u5C5E\u4E8E\u5176\u5B83\u51ED\u636E\u3002",
10958
+ mcpSessionProjectMismatch: "MCP \u4F1A\u8BDD\u5C5E\u4E8E\u5176\u5B83\u9879\u76EE\u3002",
10959
+ mcpSessionTargetMismatch: "MCP \u4F1A\u8BDD\u5C5E\u4E8E\u5176\u5B83\u76EE\u6807\u3002",
10960
+ mcpRunSessionMismatch: "MCP \u4F1A\u8BDD\u4E0D\u62E5\u6709\u6B64 Workflow \u8FD0\u884C\u3002",
10961
+ mcpTargetSingleString: "MCP target \u5FC5\u987B\u662F\u5355\u4E2A\u5B57\u7B26\u4E32\u3002",
10962
+ mcpTargetInvalid: "MCP target \u5FC5\u987B\u662F latest\u3001draft \u6216\u7CBE\u786E\u8BED\u4E49\u7248\u672C\u3002",
10963
+ mcpSessionHeaderInvalid: "MCP \u4F1A\u8BDD ID \u8BF7\u6C42\u5934\u65E0\u6548\u3002",
10714
10964
  scheduleDeleteActive: "\u5B9A\u65F6\u4EFB\u52A1\u5B58\u5728\u6D3B\u8DC3\u89E6\u53D1\u65F6\u4E0D\u80FD\u5220\u9664\u3002",
10715
10965
  scheduleExactVersionRequired: "Server \u5B9A\u65F6\u4EFB\u52A1\u5FC5\u987B\u4F7F\u7528\u7CBE\u786E\u7684\u5DF2\u53D1\u5E03\u7248\u672C\u3002",
10716
10966
  schedulerStopping: "\u5B9A\u65F6\u4EFB\u52A1\u8C03\u5EA6\u5668\u6B63\u5728\u505C\u6B62\u3002",
@@ -10719,7 +10969,11 @@ var server2 = {
10719
10969
  schedulePostgresStorageRequired: "\u5B9A\u65F6\u4EFB\u52A1\u9700\u8981 PostgreSQL \u5B58\u50A8\u3002",
10720
10970
  scheduleTargetChanged: "\u5B9A\u65F6\u4EFB\u52A1\u76EE\u6807\u5DF2\u65E0\u6CD5\u7CBE\u786E\u89E3\u6790\u3002",
10721
10971
  scheduleUpdateActive: "\u5B9A\u65F6\u4EFB\u52A1\u5B58\u5728\u6D3B\u8DC3\u89E6\u53D1\u65F6\u4E0D\u80FD\u66F4\u65B0\u3002",
10722
- kanbanDataSourceUnavailable: "Kanban \u6570\u636E\u6E90\u6682\u4E0D\u53EF\u7528\u3002",
10972
+ kanbanRelatedProjectUnavailable: "Kanban \u5173\u8054\u9879\u76EE\u6682\u4E0D\u53EF\u7528\u3002",
10973
+ relatedProjectMissing: "\u5173\u8054\u9879\u76EE\u4E0D\u5B58\u5728\u3002",
10974
+ relatedProjectKVAccessDenied: "\u5173\u8054\u9879\u76EE\u672A\u6388\u6743\u8BBF\u95EE\u6B64 KV \u952E\u3002",
10975
+ relatedProjectUnavailable: "\u5173\u8054\u9879\u76EE\u4E0D\u53EF\u7528\u6216\u4ECD\u5F85\u786E\u8BA4\u3002",
10976
+ relatedProjectGrantInvalid: "\u5173\u8054\u9879\u76EE\u6388\u6743\u65E0\u6548\u3002",
10723
10977
  scheduleUserRequired: "\u7BA1\u7406 Workflow \u5B9A\u65F6\u4EFB\u52A1\u9700\u8981\u7528\u6237\u8D26\u53F7\u3002",
10724
10978
  scheduleServerUnavailable: "\u5F53\u524D Server \u4E0D\u652F\u6301 Workflow \u5B9A\u65F6\u4EFB\u52A1\u3002",
10725
10979
  sourceAccessStatusInvalid: 'status \u5FC5\u987B\u662F "approved" \u6216 "rejected"\u3002',
@@ -10731,15 +10985,13 @@ var server2 = {
10731
10985
  projectGroupRootArchiveType: "\u9879\u76EE\u7EC4\u6839\u5F52\u6863\u5FC5\u987B\u5305\u542B Kanban \u9879\u76EE\u3002",
10732
10986
  projectGroupPreviousLockMismatch: "\u4E4B\u524D\u53D1\u5E03\u7684 Kanban \u6839\u9879\u76EE\u4F7F\u7528\u4E86\u4E0D\u540C\u7684\u4F9D\u8D56\u9501\u3002",
10733
10987
  projectGroupImmutableDownload: "\u9879\u76EE\u7EC4\u53EA\u80FD\u4E0B\u8F7D\u4E0D\u53EF\u53D8\u7684\u5DF2\u53D1\u5E03\u7248\u672C\u3002",
10734
- dataGrantSourceType: "\u6570\u636E\u6388\u6743\u6765\u6E90\u5FC5\u987B\u662F\u5DF2\u5B58\u5728\u7684 Workflow \u9879\u76EE\u3002",
10735
- dataGrantConsumerType: "\u6570\u636E\u6388\u6743\u4F7F\u7528\u65B9\u5FC5\u987B\u662F\u5DF2\u5B58\u5728\u7684 Kanban \u9879\u76EE\u3002",
10736
10988
  sourceAccessReasonLength: "\u6E90\u7801\u8BBF\u95EE\u7533\u8BF7\u539F\u56E0\u5FC5\u987B\u5305\u542B 2 \u5230 1000 \u4E2A\u5B57\u7B26\u3002",
10737
10989
  sourceAccessLinkInvalid: "\u9879\u76EE\u6E90\u7801\u8BBF\u95EE\u7533\u8BF7\u94FE\u63A5\u65E0\u6548\u6216\u5DF2\u8FC7\u671F\u3002",
10738
10990
  projectGroupRootMissing: "\u7F3A\u5C11\u9879\u76EE\u7EC4\u6839\u9879\u76EE\u3002",
10739
10991
  projectGroupDraftChanged: "\u9879\u76EE\u7EC4\u4F9D\u8D56\u6E05\u5355\u5DF2\u4E0E Kanban \u6839\u8349\u7A3F\u4E0D\u4E00\u81F4\u3002",
10740
10992
  projectDependencyStorageUnavailable: "\u9879\u76EE\u4F9D\u8D56\u4EA4\u4ED8\u9700\u8981 PostgreSQL \u5B58\u50A8\u3002",
10741
- dependencyLocksKanbanOnly: "\u53EA\u6709 Kanban \u9879\u76EE\u53EF\u4EE5\u53D1\u5E03\u6570\u636E\u6E90\u4F9D\u8D56\u9501\u3002",
10742
- dependencyLockDeclarationMismatch: "\u53D1\u5E03\u7684\u4F9D\u8D56\u9501\u4E0E Kanban \u6570\u636E\u6E90\u58F0\u660E\u4E0D\u4E00\u81F4\u3002",
10993
+ projectDependencyLockInvalid: "\u9879\u76EE\u4F9D\u8D56\u9501\u65E0\u6548\u3002",
10994
+ dependencyLockRelatedProjectsMismatch: "\u53D1\u5E03\u7684\u4F9D\u8D56\u9501\u4E0E\u5DF2\u786E\u8BA4\u7684\u5173\u8054\u9879\u76EE\u4E0D\u4E00\u81F4\u3002",
10743
10995
  schedulesWorkflowOnly: "\u5B9A\u65F6\u4EFB\u52A1\u53EA\u80FD\u4EE5 Workflow \u9879\u76EE\u4E3A\u76EE\u6807\u3002",
10744
10996
  conversationEntrypointForbidden: "Conversation \u9879\u76EE\u4E0D\u63A5\u53D7 entrypointId\u3002",
10745
10997
  targetBuildRequired: "\u76EE\u6807\u5C1A\u672A\u6210\u529F\u6784\u5EFA\u3002",
@@ -10748,8 +11000,6 @@ var server2 = {
10748
11000
  archiveInspectFailed: "\u68C0\u67E5 tar.gz \u5305\u5931\u8D25\u3002",
10749
11001
  archiveEntryLimit: "\u5F52\u6863\u5305\u542B\u7684\u6761\u76EE\u8FC7\u591A\u3002",
10750
11002
  archiveExpandedSizeLimit: "\u5F52\u6863\u89E3\u538B\u540E\u7684\u5927\u5C0F\u8D85\u8FC7 512 MB \u9650\u5236\u3002",
10751
- dataGrantPrefixCount: "\u6570\u636E\u6388\u6743\u5FC5\u987B\u5305\u542B 1 \u5230 32 \u4E2A key \u524D\u7F00\u3002",
10752
- dataGrantPrefixDuplicates: "\u6570\u636E\u6388\u6743 keyPrefixes \u4E0D\u80FD\u5305\u542B\u91CD\u590D\u9879\u3002",
10753
11003
  accountCreateDeploymentRequired: "\u521B\u5EFA\u9879\u76EE\u90E8\u7F72\u9700\u8981\u7528\u6237\u8D26\u53F7\u3002",
10754
11004
  accountViewSourceRequestRequired: "\u67E5\u770B\u9879\u76EE\u6E90\u7801\u8BBF\u95EE\u7533\u8BF7\u9700\u8981\u7528\u6237\u8D26\u53F7\u3002",
10755
11005
  accountRequestSourceAccessRequired: "\u7533\u8BF7\u9879\u76EE\u6E90\u7801\u8BBF\u95EE\u9700\u8981\u7528\u6237\u8D26\u53F7\u3002",
@@ -10776,17 +11026,14 @@ var server2 = {
10776
11026
  workflowReservationUnavailable: "Workflow\u201C{{workflowId}}\u201D\u6682\u65F6\u65E0\u6CD5\u9884\u7559\u7248\u672C\u3002",
10777
11027
  workflowReservationChanged: "Workflow\u201C{{workflowId}}\u201D\u7684\u7248\u672C\u9884\u7559\u5DF2\u53D8\u5316\u3002",
10778
11028
  workflowDraftChanged: "Workflow\u201C{{workflowId}}\u201D\u7684\u8349\u7A3F\u5728\u90E8\u7F72\u51C6\u5907\u540E\u53D1\u751F\u4E86\u53D8\u5316\u3002",
10779
- dependencyLockSourceMismatch: "\u53D1\u5E03\u7684\u4F9D\u8D56\u9501\u201C{{sourceId}}\u201D\u4E0E Kanban \u6570\u636E\u6E90\u58F0\u660E\u4E0D\u4E00\u81F4\u3002",
11029
+ dependencyLockRelatedProjectMismatch: "\u53D1\u5E03\u7684\u4F9D\u8D56\u9501\u201C{{alias}}\u201D\u4E0E\u5DF2\u786E\u8BA4\u7684\u5173\u8054\u9879\u76EE\u4E0D\u4E00\u81F4\u3002",
10780
11030
  versionDependencyLockInvalid: "Workflow\u201C{{workflowId}}\u201D\u7248\u672C\u201C{{version}}\u201D\u7684\u4F9D\u8D56\u9501\u65E0\u6548\u3002",
10781
11031
  projectNotExecutable: "\u9879\u76EE\u201C{{projectName}}\u201D\u4E0D\u53EF\u6267\u884C\u3002",
10782
11032
  archiveEntrySizeInvalid: "\u5F52\u6863\u6761\u76EE\u201C{{path}}\u201D\u7684\u5927\u5C0F\u65E0\u6548\u3002",
10783
11033
  scheduleIdInvalid: "Workflow \u5B9A\u65F6\u4EFB\u52A1 ID\u201C{{scheduleId}}\u201D\u65E0\u6548\u3002",
10784
- dataGrantPrefixType: "\u6570\u636E\u6388\u6743 keyPrefixes[{{index}}] \u5FC5\u987B\u662F\u5B57\u7B26\u4E32\u3002",
10785
- dataGrantPrefixInvalid: "\u6570\u636E\u6388\u6743 keyPrefixes[{{index}}] \u65E0\u6548\u3002",
10786
11034
  unknownEntrypoint: "Workflow\u201C{{workflowId}}\u201D\u4E2D\u4E0D\u5B58\u5728\u5165\u53E3\u201C{{entrypointId}}\u201D\u3002",
10787
11035
  entrypointResumeLocked: "\u6062\u590D\u7B49\u5F85\u4E2D\u7684 Run \u65F6\u4E0D\u80FD\u66F4\u6539\u5165\u53E3\u3002",
10788
11036
  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",
10789
- kanbanDataSourceUnauthorized: "Kanban \u6570\u636E\u6E90\u201C{{sourceId}}\u201D\u672A\u83B7\u5171\u4EAB\u6388\u6743\u3002",
10790
11037
  workflowOwnedByAnotherAccount: "Workflow\u201C{{workflowId}}\u201D\u5DF2\u5B58\u5728\u4E14\u5F52\u5176\u5B83\u8D26\u53F7\u6240\u6709\u3002",
10791
11038
  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",
10792
11039
  workflowDraftServerDisabled: "Workflow\u201C{{workflowId}}\u201D\u8349\u7A3F\u672A\u542F\u7528 Server \u6267\u884C\u3002",
@@ -10800,7 +11047,7 @@ var server2 = {
10800
11047
  var cli2 = {
10801
11048
  rootHelp: [
10802
11049
  "\u7528\u6CD5\uFF1A",
10803
- " workflow-code [--locale <zh-CN|en>] <run|json|structure|resolve-params> [workflow-dir] [args]",
11050
+ " workflow-code [--locale <zh-CN|en>] <run|json|structure|resolve-params|mcp> [workflow-dir] [args]",
10804
11051
  " workflow-code [--locale <zh-CN|en>] workspace <command> [args]",
10805
11052
  "",
10806
11053
  "\u672C\u5730\u547D\u4EE4\uFF1A",
@@ -10808,6 +11055,7 @@ var cli2 = {
10808
11055
  " json \u5728\u672C\u5730\u8FD0\u884C\u5E76\u8F93\u51FA JSON \u62A5\u544A",
10809
11056
  " structure \u67E5\u770B workflow \u7ED3\u6784",
10810
11057
  " resolve-params \u89E3\u6790\u52A8\u6001 workflow \u53C2\u6570",
11058
+ " mcp \u901A\u8FC7 stdio MCP \u66B4\u9732 workflow entrypoint",
10811
11059
  "",
10812
11060
  "\u5DE5\u4F5C\u533A\u547D\u4EE4\uFF1A",
10813
11061
  " login, logout, status, health, pack, upload, preparation,",
@@ -10818,10 +11066,24 @@ var cli2 = {
10818
11066
  "",
10819
11067
  "\u8FD0\u884C `workflow-code workspace --help` \u67E5\u770B\u5DE5\u4F5C\u533A\u547D\u4EE4\u8BE6\u60C5\u3002"
10820
11068
  ].join("\n"),
11069
+ mcpHelp: [
11070
+ "\u7528\u6CD5\uFF1A",
11071
+ " workflow-code mcp <workflow-dir> [\u9009\u9879]",
11072
+ "",
11073
+ "\u9009\u9879\uFF1A",
11074
+ " --data-dir <\u7EDD\u5BF9\u76EE\u5F55> \u672C\u5730 workflow \u6570\u636E\u6839\u76EE\u5F55",
11075
+ " --file-store-dir <\u7EDD\u5BF9\u76EE\u5F55> \u6258\u7BA1\u8F93\u5165\u6587\u4EF6\u76EE\u5F55",
11076
+ " --kv-store-dir <\u7EDD\u5BF9\u76EE\u5F55> Workflow KV \u76EE\u5F55",
11077
+ " --persistent-value-store-dir <\u7EDD\u5BF9\u76EE\u5F55> \u6301\u4E45\u503C\u76EE\u5F55",
11078
+ " --file-create-store-dir <\u7EDD\u5BF9\u76EE\u5F55> \u751F\u6210\u6587\u4EF6\u76EE\u5F55",
11079
+ " --desktop-config-dir <\u7EDD\u5BF9\u76EE\u5F55> Desktop \u5DF2\u4FDD\u5B58\u8BA4\u8BC1\u76EE\u5F55",
11080
+ " --auth-dir <\u7EDD\u5BF9\u76EE\u5F55> CLI \u5DF2\u4FDD\u5B58\u8BA4\u8BC1\u76EE\u5F55",
11081
+ " --related-project <alias>=<\u7EDD\u5BF9\u9879\u76EE\u76EE\u5F55> \u53EF\u91CD\u590D\u7684\u5173\u8054\u9879\u76EE\u7ED1\u5B9A"
11082
+ ].join("\n"),
10821
11083
  localHelp: [
10822
11084
  "\u7528\u6CD5\uFF1A",
10823
- " workflow-code [--locale <zh-CN|en>] run [workflow-dir] [--] [...args]",
10824
- " workflow-code [--locale <zh-CN|en>] json [workflow-dir] [--] [...args]",
11085
+ " workflow-code [--locale <zh-CN|en>] run [workflow-dir] [--related-project <alias>=<\u7EDD\u5BF9\u9879\u76EE\u76EE\u5F55>] [--] [...args]",
11086
+ " workflow-code [--locale <zh-CN|en>] json [workflow-dir] [--related-project <alias>=<\u7EDD\u5BF9\u9879\u76EE\u76EE\u5F55>] [--] [...args]",
10825
11087
  " workflow-code json [workflow-dir] --conversation-id <id> [--] [...args]",
10826
11088
  " workflow-code structure [workflow-dir]",
10827
11089
  " workflow-code resolve-params [workflow-dir] < request.json",
@@ -10832,7 +11094,10 @@ var cli2 = {
10832
11094
  " workflow-code json . -- --target aliyun --dry-run",
10833
11095
  " workflow-code json . --run-id <id> --resolved-user-inputs-json <json> -- [...args]",
10834
11096
  " workflow-code structure .",
10835
- " workflow-code resolve-params . < request.json"
11097
+ " workflow-code resolve-params . < request.json",
11098
+ "",
11099
+ "\u9009\u9879\uFF1A",
11100
+ " --related-project <alias>=<\u7EDD\u5BF9\u9879\u76EE\u76EE\u5F55> \u7ED1\u5B9A\u4E00\u4E2A\u5DF2\u58F0\u660E\u7684\u5173\u8054\u9879\u76EE\uFF0C\u53EF\u91CD\u590D\u6307\u5B9A"
10836
11101
  ].join("\n"),
10837
11102
  workspaceHelp: [
10838
11103
  "\u7528\u6CD5\uFF1Aworkflow-code [--locale <zh-CN|en>] workspace <command> [args]",
@@ -10846,10 +11111,10 @@ var cli2 = {
10846
11111
  " status",
10847
11112
  " health",
10848
11113
  " pack <workflow> [--path <workflow-dir>] [--output <file.tgz>] [--project-group] [--dependency <alias>=<path>]",
10849
- " 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>]",
11114
+ " 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>]",
10850
11115
  " preparation <workflow-id> <job-id>",
10851
11116
  " download <workflow> [--target draft|latest|version] [--path <dir>]",
10852
- " 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>]",
11117
+ " publish <workflow> [--release-log <text>] [--source-mode bundled|source] [--server-runtime|--no-server-runtime] [--desktop-platform macos|windows] [--project-group] [--dependency <alias>=<path>]",
10853
11118
  " publish --deployment <id>",
10854
11119
  " run <workflow> [...args] [--target draft|latest|version] [--entrypoint <id>]",
10855
11120
  " debug-node <workflow> <node> [...args] [--target draft|latest|version] [--entrypoint <id>]",
@@ -10875,10 +11140,12 @@ var cli2 = {
10875
11140
  invalidResolvedInput: "\u7528\u6237\u8F93\u5165\u6062\u590D\u9879\u65E0\u6548\u3002",
10876
11141
  loginRequiresServer: "login \u547D\u4EE4\u9700\u8981 --server\u3002",
10877
11142
  deviceLoginPrompt: "\u8BF7\u6253\u5F00\u9A8C\u8BC1\u9875\u9762\u6279\u51C6\u672C\u6B21\u767B\u5F55\uFF1A\n{{url}}\n\u7528\u6237\u4EE3\u7801\uFF1A{{code}}",
10878
- workflowIdRequired: "Workflow package.json \u5FC5\u987B\u5305\u542B UUID \u683C\u5F0F\u7684 id\u3002\u767B\u5F55\u540E\u8BF7\u8FD0\u884C `workflow-code workspace upload <workflow> --create` \u521B\u5EFA\u5E76\u7ED1\u5B9A\u670D\u52A1\u7AEF\u9879\u76EE\u3002",
11143
+ workflowIdRequired: "Workflow package.json \u5FC5\u987B\u9884\u5148\u5305\u542B UUID \u683C\u5F0F\u7684 id\uFF1B--create \u53EA\u6309\u8BE5 UUID \u521B\u5EFA\u6216\u590D\u7528\u670D\u52A1\u7AEF\u9879\u76EE\uFF0C\u4E0D\u4F1A\u5206\u914D\u6216\u56DE\u5199 id\u3002",
10879
11144
  archiveCreateFailed: "\u521B\u5EFA\u5F52\u6863\u5931\u8D25\uFF1A{{details}}",
10880
11145
  workflowNotBound: 'Workflow "{{workflow}}" \u5C1A\u672A\u7ED1\u5B9A\u670D\u52A1\u7AEF UUID\u3002\u8BF7\u5148\u8FD0\u884C `workflow-code workspace upload {{workflow}} --create` \u521B\u5EFA\u6216\u7ED1\u5B9A\u3002',
10881
11146
  projectCreationFailed: "\u521B\u5EFA Workflow \u9879\u76EE\u5931\u8D25\u3002",
11147
+ projectInfoDataStorageRequired: "Workflow package.json \u5FC5\u987B\u58F0\u660E workflowCode.projectInfo.dataStorage.mode\u3002",
11148
+ projectCreationIdMismatch: "Server \u8FD4\u56DE\u7684\u9879\u76EE UUID \u4E0E package.json.id \u4E0D\u4E00\u81F4\u3002",
10882
11149
  packageMustBeObject: 'Workflow \u5305 "{{path}}" \u5FC5\u987B\u5305\u542B JSON \u5BF9\u8C61\u3002',
10883
11150
  packageReadFailed: '\u65E0\u6CD5\u8BFB\u53D6 Workflow \u5305 "{{path}}"\u3002',
10884
11151
  packageStringRequired: 'Workflow package.json \u5FC5\u987B\u5305\u542B\u5B57\u7B26\u4E32\u5B57\u6BB5 "{{key}}"\u3002',
@@ -10901,16 +11168,13 @@ var cli2 = {
10901
11168
  forbiddenBlocked: "403: \u5F53\u524D\u8D26\u53F7\u5DF2\u88AB\u8BE5\u9879\u76EE\u7981\u6B62\u8FD0\u884C\u3002",
10902
11169
  forbiddenNoPermission: "403: \u5F53\u524D\u8D26\u53F7\u5BF9\u8BE5\u9879\u76EE\u6CA1\u6709\u8DB3\u591F\u6743\u9650\u3002",
10903
11170
  forbiddenFallback: "403: {{message}}",
10904
- dependencyMustBeWorkflow: "\u4F9D\u8D56 {{sourceId}} \u5FC5\u987B\u662F Workflow \u9879\u76EE\u3002",
10905
11171
  dependencyOptionCommandUnsupported: "--dependency \u4EC5\u652F\u6301 pack\u3001upload \u548C publish \u547D\u4EE4\u3002",
10906
- dependencyPackageIdMismatch: "\u4F9D\u8D56 {{sourceId}} \u7684 package id \u5FC5\u987B\u4E0E\u58F0\u660E\u7684 projectId {{projectId}} \u4E00\u81F4\u3002",
11172
+ dependencyPackageIdMismatch: "\u4F9D\u8D56 {{alias}} \u7684 package id \u5FC5\u987B\u4E0E\u5173\u8054\u9879\u76EE projectId {{projectId}} \u4E00\u81F4\u3002",
10907
11173
  dependencyProjectPathConflict: "\u9879\u76EE {{projectId}} \u88AB\u6620\u5C04\u5230\u4E86\u591A\u4E2A\u4F9D\u8D56\u8DEF\u5F84\u3002",
10908
11174
  deploymentCommandUnsupported: "--deployment \u4EC5\u652F\u6301 publish \u547D\u4EE4\u3002",
10909
11175
  deploymentOptionsConflict: "--deployment \u4E0D\u80FD\u4E0E\u9879\u76EE\u7EC4\u521B\u5EFA\u53C2\u6570\u6216\u5355\u9879\u76EE\u53D1\u5E03\u53C2\u6570\u540C\u65F6\u4F7F\u7528\u3002",
10910
- duplicateDependencySource: "--dependency \u7684\u6570\u636E\u6E90 id {{sourceId}} \u91CD\u590D\u3002",
10911
- duplicateGrantDataAccessSource: "--grant-data-access \u7684\u6570\u636E\u6E90 id {{sourceId}} \u91CD\u590D\u3002",
10912
- grantDataAccessCommandUnsupported: "--grant-data-access \u4EC5\u652F\u6301 upload \u548C publish \u547D\u4EE4\u3002",
10913
- invalidDependencyOption: "--dependency {{option}} \u65E0\u6548\uFF0C\u683C\u5F0F\u5E94\u4E3A <source-id>=<project-path>\u3002",
11176
+ duplicateDependencySource: "--dependency \u7684 alias {{alias}} \u91CD\u590D\u3002",
11177
+ invalidDependencyOption: "--dependency {{option}} \u65E0\u6548\uFF0C\u683C\u5F0F\u5E94\u4E3A <alias>=<project-path>\u3002",
10914
11178
  noWaitCommandUnsupported: "--no-wait \u4EC5\u652F\u6301 upload \u547D\u4EE4\u3002",
10915
11179
  noWaitProjectGroupUnsupported: "\u9879\u76EE\u7EC4\u4E0A\u4F20\u4E0D\u652F\u6301 --no-wait\u3002",
10916
11180
  projectGroupArchiveCreateFailed: "\u521B\u5EFA\u9879\u76EE\u7EC4\u5F52\u6863\u5931\u8D25\uFF1A{{details}}",
@@ -10927,9 +11191,8 @@ var cli2 = {
10927
11191
  projectGroupDownloadRootCountInvalid: "\u670D\u52A1\u5668\u9879\u76EE\u7EC4\u4E0B\u8F7D\u7ED3\u679C\u5FC5\u987B\u5305\u542B\u4E14\u53EA\u5305\u542B\u4E00\u4E2A\u5339\u914D\u7684\u6839\u9879\u76EE\u3002",
10928
11192
  projectGroupDownloadRootPackageInvalidJson: "\u670D\u52A1\u5668\u9879\u76EE\u7EC4\u6839\u9879\u76EE\u7684 package.json \u4E0D\u662F\u6709\u6548 JSON\u3002",
10929
11193
  projectGroupDownloadRootPackageUtf8: "\u670D\u52A1\u5668\u9879\u76EE\u7EC4\u6839\u9879\u76EE\u7684 package.json \u5FC5\u987B\u662F UTF-8 \u6587\u672C\u3002",
10930
- projectGroupDownloadRootSourceIdForbidden: "\u670D\u52A1\u5668\u9879\u76EE\u7EC4\u7684\u6839\u9879\u76EE\u4E0D\u80FD\u5305\u542B\u4F9D\u8D56\u6570\u636E\u6E90 id\u3002",
11194
+ projectGroupDownloadRootAliasForbidden: "\u670D\u52A1\u5668\u9879\u76EE\u7EC4\u7684\u6839\u9879\u76EE\u4E0D\u80FD\u5305\u542B\u5173\u8054\u9879\u76EE alias\u3002",
10931
11195
  projectGroupDownloadRootVersionMismatch: "\u670D\u52A1\u5668\u9879\u76EE\u7EC4\u6839\u7248\u672C\u4E0E\u4E0B\u8F7D\u8BA1\u5212\u4E0D\u4E00\u81F4\u3002",
10932
- projectGroupDownloadSelfReference: "\u670D\u52A1\u5668\u9879\u76EE\u7EC4\u6570\u636E\u6E90 {{sourceId}} \u4E0D\u80FD\u5F15\u7528\u6839 Kanban \u9879\u76EE\u81EA\u8EAB\u3002",
10933
11196
  projectGroupDownloadSourceHashMismatch: "\u670D\u52A1\u5668\u9879\u76EE\u7EC4 {{role}} \u9879\u76EE {{projectId}} \u7684\u6E90\u7801\u54C8\u5E0C\u4E0E\u6587\u4EF6\u4E0D\u4E00\u81F4\u3002",
10934
11197
  projectGroupDownloadUndeclaredDependency: "\u670D\u52A1\u5668\u9879\u76EE\u7EC4\u4E0B\u8F7D\u7ED3\u679C\u5305\u542B\u672A\u58F0\u660E\u7684\u4F9D\u8D56\u9879\u76EE {{projectId}}\u3002",
10935
11198
  projectGroupDownloadedPackageIdMismatch: "\u5DF2\u4E0B\u8F7D\u9879\u76EE\u7684 package id \u4E0E {{projectId}} \u4E0D\u4E00\u81F4\u3002",
@@ -10937,11 +11200,11 @@ var cli2 = {
10937
11200
  projectGroupRequiredPathForbidden: "\u9879\u76EE\u7EC4\u5FC5\u9700\u8DEF\u5F84 {{path}} \u5C5E\u4E8E\u7981\u6B62\u4F20\u8F93\u7684\u5BBF\u4E3B\u6570\u636E\u3002",
10938
11201
  projectGroupRootIdRequired: "\u9879\u76EE\u7EC4\u6839\u9879\u76EE\u7684 package.json \u5FC5\u987B\u5305\u542B UUID \u683C\u5F0F\u7684 id\u3002",
10939
11202
  projectGroupRootMustBeKanban: "\u9879\u76EE\u7EC4\u6839\u9879\u76EE\u5FC5\u987B\u662F Kanban \u9879\u76EE\u3002",
10940
- projectGroupSelfReference: "Kanban \u6570\u636E\u6E90 {{sourceId}} \u4E0D\u80FD\u5F15\u7528\u9879\u76EE\u7EC4\u6839\u9879\u76EE\u81EA\u8EAB\u3002",
11203
+ projectGroupRelatedProjectPending: "\u5173\u8054\u9879\u76EE {{alias}} \u5C1A\u672A\u7531\u53CC\u65B9\u9879\u76EE\u6E05\u5355\u786E\u8BA4\uFF0C\u4E0D\u80FD\u4F5C\u4E3A included \u4F9D\u8D56\u3002",
10941
11204
  projectGroupUploadFileUnsupported: "\u9879\u76EE\u7EC4\u4E0A\u4F20\u4E0D\u63A5\u53D7 --file\uFF1B\u8BF7\u4F7F\u7528 --path \u548C --dependency\uFF0C\u4EE5\u4FBF\u6821\u9A8C\u6E05\u5355\u3002",
10942
11205
  projectGroupUploadRootIdRequired: "\u9879\u76EE\u7EC4\u4E0A\u4F20\u8981\u6C42\u6839 package.json \u5305\u542B UUID \u683C\u5F0F\u7684 id\uFF0C\u6216\u4F7F\u7528 --create\u3002",
10943
11206
  publishGroupCommandUnsupported: "--publish-group \u4EC5\u652F\u6301 upload \u547D\u4EE4\u3002",
10944
- unknownGrantDataAccessSource: "\u672A\u77E5\u7684 --grant-data-access \u6570\u636E\u6E90 id {{sourceId}}\u3002"
11207
+ unknownWorkspaceOption: "\u672A\u77E5\u7684 workspace \u9009\u9879\uFF1A{{option}}"
10945
11208
  };
10946
11209
 
10947
11210
  // .shared/i18n/resources/zh/permissions.ts
@@ -11185,66 +11448,11 @@ function readErrorMessage(value) {
11185
11448
  return visit(value);
11186
11449
  }
11187
11450
 
11188
- // src/locale.ts
11189
- import { WORKFLOW_RUNTIME_LOCALE_ENV } from "workflow-code";
11190
- function prepareCliInvocation(argv) {
11191
- initI18n({ preference: resolveSystemLocalePreference() });
11192
- const extracted = extractLocaleOption(argv);
11193
- const requestedLocale = extracted.locale ?? readEnvironmentLocale();
11194
- if (requestedLocale !== void 0) {
11195
- if (!isSupportedLocale(requestedLocale)) {
11196
- throw new Error(i18n.t("invalidLocale", {
11197
- ns: "cli",
11198
- value: requestedLocale
11199
- }));
11200
- }
11201
- initI18n({ preference: requestedLocale });
11202
- }
11203
- const locale = normalizeLocale(i18n.language);
11204
- process.env[WORKFLOW_RUNTIME_LOCALE_ENV] = locale;
11205
- return {
11206
- argv: extracted.argv,
11207
- locale
11208
- };
11209
- }
11210
- function extractLocaleOption(argv) {
11211
- const filtered = [];
11212
- let locale;
11213
- for (let index = 0; index < argv.length; index += 1) {
11214
- const arg = argv[index];
11215
- if (arg === "--") {
11216
- filtered.push(...argv.slice(index));
11217
- break;
11218
- }
11219
- if (arg === "--locale" || arg.startsWith("--locale=")) {
11220
- if (locale !== void 0) {
11221
- throw new Error(i18n.t("duplicateLocale", { ns: "cli" }));
11222
- }
11223
- const value = arg === "--locale" ? argv[++index] : arg.slice("--locale=".length);
11224
- if (value === void 0 || value.trim() === "") {
11225
- throw new Error(i18n.t("missingOptionValue", { ns: "cli", name: "--locale" }));
11226
- }
11227
- locale = value;
11228
- continue;
11229
- }
11230
- filtered.push(arg);
11231
- }
11232
- return { argv: filtered, locale };
11233
- }
11234
- function readEnvironmentLocale() {
11235
- const value = process.env.WORKFLOW_CODE_LOCALE?.trim();
11236
- return value === "" ? void 0 : value;
11237
- }
11238
- function resolveSystemLocalePreference() {
11239
- const systemLocale = process.env.LC_ALL ?? process.env.LANG;
11240
- return systemLocale?.trim() ? normalizeLocale(systemLocale) : "system";
11241
- }
11242
-
11243
11451
  export {
11244
- __commonJS,
11245
- __toESM,
11452
+ isSupportedLocale,
11246
11453
  i18n,
11454
+ normalizeLocale,
11455
+ initI18n,
11247
11456
  getCurrentLocale,
11248
- translateWorkflowCodeError,
11249
- prepareCliInvocation
11457
+ translateWorkflowCodeError
11250
11458
  };