@workflow-code/cli 0.2.2-20260826002 → 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.",
@@ -4704,8 +4751,6 @@ var serverWeb = {
4704
4751
  busyLoadAiConfig: "Loading AI config",
4705
4752
  busyLoadAiUsage: "Loading AI usage",
4706
4753
  busyLoadAudit: "Loading audit log",
4707
- busyLoadGlobalKv: "Loading Global KV",
4708
- busyLoadGlobalKvPage: "Switching Global KV page",
4709
4754
  busyLoadLogs: "Loading run logs",
4710
4755
  busyLoadOrders: "Loading orders",
4711
4756
  busyLoadProjectDetail: "Loading project details",
@@ -4752,17 +4797,49 @@ var serverWeb = {
4752
4797
  confirmActionCancel: "Cancel",
4753
4798
  confirmActionConfirm: "Confirm",
4754
4799
  detailNavEmbed: "Embed",
4755
- detailNavDependencies: "Dependencies & access",
4800
+ detailNavRelatedProjects: "Related projects",
4756
4801
  detailNavEnv: "Environment",
4757
4802
  detailNavKnowledge: "Knowledge base",
4758
4803
  detailNavKv: "KV data",
4759
4804
  detailNavLogs: "Run logs",
4805
+ detailNavMcp: "MCP",
4760
4806
  detailNavMembers: "Members",
4761
4807
  detailNavOverview: "Overview",
4762
4808
  detailNavSchedules: "Schedules",
4763
4809
  detailNavSettings: "Settings",
4764
4810
  detailNavVersions: "Versions",
4765
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",
4766
4843
  deviceApprove: "Approve login",
4767
4844
  deviceCardDescription: "The device flow must be explicitly approved by a web session before CLI / App can exchange it for an API Key.",
4768
4845
  deviceDeny: "Deny",
@@ -4833,52 +4910,44 @@ var serverWeb = {
4833
4910
  formatDurationUnknown: "Unknown",
4834
4911
  formatTimeUnknown: "Unknown time",
4835
4912
  formatUnknownTime: "Unknown time",
4836
- globalKvClear: "Clear",
4837
- globalKvCopyFailed: "The current browser does not allow copying. Please select the text manually.",
4838
- globalKvCopyJson: "Copy JSON",
4839
- globalKvCopyJsonCopied: "JSON copied",
4840
- globalKvCopyKey: "Copy Key",
4841
- globalKvCopySummary: "Copy summary",
4842
- globalKvCopySummaryCopied: "Summary copied",
4843
- globalKvDetailLoadingAria: "Loading KV details",
4844
- globalKvDetailLoadingText: "Loading the full value\u2026",
4845
- globalKvDetailTitle: "KV details",
4846
- globalKvDetailTooLarge: "The full value is large; only the list summary is shown to avoid the browser stalling while loading and formatting big JSON.",
4847
- globalKvEmptyDescription: "Adjust the search term, type or link filter and try again.",
4848
- globalKvEmptyTitle: "No matching KV records",
4849
- globalKvFilterLinkStateAria: "Link state",
4850
- globalKvFilterLinkStateOptions: "All link states",
4851
- globalKvFilterLinkedState: "Linked to logs",
4852
- globalKvFilterRunId: "runId",
4853
- globalKvFilterSearch: "Search Key...",
4854
- globalKvFilterUnlinkedState: "Not linked to logs",
4855
- globalKvFilterValueTypeAria: "Value type",
4856
- globalKvHeaderConversation: "Conversation",
4857
- globalKvHeaderKey: "Key",
4858
- globalKvHeaderLastWriter: "Last writer",
4859
- globalKvHeaderOperations: "Actions",
4860
- globalKvHeaderProject: "Project",
4861
- globalKvHeaderUpdatedAt: "Updated",
4862
- globalKvHeaderValue: "Value",
4863
- globalKvLinkStateAll: "All link states",
4864
- globalKvLinkedRunNotLinked: "No linked log",
4865
- globalKvLinkedRunView: "View linked log",
4866
- globalKvLoadJson: "Load JSON",
4867
- globalKvLoadJsonLoading: "Loading",
4868
- globalKvLoadJsonRetry: "Retry loading JSON",
4869
- globalKvMetaLastRun: "Last run",
4870
- globalKvMetaUnlinked: "Not linked",
4871
- globalKvNotRecorded: "Not recorded",
4872
- globalKvPageDescription: "A read-only troubleshooting view of cross-project shared cache and platform-level state. {{total}} records total.",
4873
- globalKvPageTitle: "Global KV",
4874
- globalKvRefresh: "Refresh",
4875
- globalKvScopeConversation: "conversation",
4876
- globalKvScopeWorkflow: "workflow",
4877
- globalKvStatLinked: "Linked to logs (this page)",
4878
- globalKvStatStructured: "Structured values (this page)",
4879
- globalKvStatTotal: "Records (matching filters)",
4880
- globalKvValueTypeAll: "All types",
4881
- 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",
4882
4951
  inviteAcceptAndJoin: "Accept invitation and join",
4883
4952
  inviteAcceptFailed: "Failed to accept the invitation.",
4884
4953
  inviteAlreadyAccepted: "This invitation has already been accepted.",
@@ -5004,6 +5073,7 @@ var serverWeb = {
5004
5073
  logsSourceDesktop: "Desktop",
5005
5074
  logsSourceEmbed: "Embed",
5006
5075
  logsSourceExternalApi: "External API",
5076
+ logsSourceMcp: "MCP",
5007
5077
  logsSourceSchedule: "Schedule",
5008
5078
  logsSourceUnknown: "Not recorded",
5009
5079
  logsSourceUserSession: "User session",
@@ -5162,7 +5232,6 @@ var serverWeb = {
5162
5232
  membersUserSource: "User source",
5163
5233
  membersVisible: "{{page}} rows on this page / {{total}} filtered",
5164
5234
  navAdminCenter: "Admin center",
5165
- navGlobalKv: "Global KV data",
5166
5235
  navProjects: "Project workbench",
5167
5236
  navSettings: "Settings",
5168
5237
  overviewAccessAcceptTasks: "Accept tasks",
@@ -6118,7 +6187,7 @@ var serverWeb = {
6118
6187
  navEnterAdminCenter: "Enter admin center",
6119
6188
  busyResetEmbedToken: "Resetting Embed Token",
6120
6189
  busyResetWebhookSecret: "Resetting Webhook Secret",
6121
- projectKvDetailScopeError: "Project KV details only support the workflow / conversation scope.",
6190
+ projectKvDetailScopeError: "Project KV details only support the project / conversation scope.",
6122
6191
  filePickerChoose: "Choose file",
6123
6192
  tableLoadingRows: "Loading table rows",
6124
6193
  selectPlaceholder: "Select",
@@ -6139,7 +6208,7 @@ var serverWeb = {
6139
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.",
6140
6209
  embedTabResetTokenAction: "Reset Token",
6141
6210
  embedTabPublicUrlDetail: "Public URL:",
6142
- globalKvFilterScopeAria: "Scope",
6211
+ projectKvFilterScopeAria: "Scope",
6143
6212
  overviewQueueDonutAria: "Run state summary queue occupancy chart",
6144
6213
  overviewCapacityBarsAria: "Concurrency capacity bar chart",
6145
6214
  overviewAccessBarsAria: "Access state bar chart",
@@ -6181,38 +6250,16 @@ var serverWeb = {
6181
6250
  webhookRunHeaderEntrypoint: "Workflow entrypoint",
6182
6251
  webhookSaveConfirmDetailsEntrypoint: "Workflow entrypoint:",
6183
6252
  versionsDayRunCount: "{{day}} / {{total}} runs",
6184
- dependenciesAddGrant: "Add data access grant",
6185
- dependenciesAddGrantDialogDescription: "Search for and select a consumer project, then limit the KV key prefixes it can read.",
6186
- dependenciesAddGrantDialogTitle: "Add data access grant",
6187
6253
  dependenciesApproveRequest: "Approve",
6188
- dependenciesConsumerProjectAria: "Consumer project",
6189
- dependenciesConsumerProjectCreateDescription: "Search by project name or type. Only available projects that have not been granted access are shown.",
6190
- dependenciesConsumerProjectEditDescription: "The consumer project is fixed by the original grant. To change it, revoke this grant and create a new one.",
6191
- dependenciesConsumerProjectLabel: "Consumer project",
6192
- dependenciesConsumerProjectPlaceholder: "Search for and select a consumer project",
6193
- dependenciesConsumerProjectsUnavailableTitle: "Consumer projects unavailable",
6194
- dependenciesCurrentConsumerProject: "current consumer project",
6195
- dependenciesDataAuthorized: "Authorized",
6196
- dependenciesDataAwaitingGrant: "Awaiting grant",
6197
- dependenciesDataGrantsDescription: "Allow signed-in users of a consumer project to read only the specified KV prefixes from this project, without exposing other project content.",
6198
- dependenciesDataGrantsTitle: "Data access grants",
6199
6254
  dependenciesDataInitialized: "Data available",
6200
- dependenciesDataUnauthorized: "Unauthorized",
6201
6255
  dependenciesDataUninitialized: "Not initialized",
6202
6256
  dependenciesDeliveryExternal: "External dependency",
6203
6257
  dependenciesDeliveryIncluded: "Included with group",
6204
- dependenciesEditGrantDialogDescription: "Update the KV key prefixes that {{name}} can read.",
6205
- dependenciesEditGrantDialogTitle: "Edit data access grant",
6206
- dependenciesEditGrantLabel: "Edit data access grant for {{name}}",
6207
- 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.",
6208
6259
  dependenciesEmptyTitle: "No referenced projects",
6209
- dependenciesGrantFieldsRequired: "Select a consumer project and enter at least one allowed key prefix.",
6210
6260
  dependenciesHeaderActions: "Actions",
6211
- dependenciesHeaderAllowedPrefixes: "Allowed prefixes",
6212
6261
  dependenciesHeaderAuthorizedUser: "Authorized user",
6213
6262
  dependenciesHeaderCapability: "Capability",
6214
- dependenciesHeaderConsumerProject: "Consumer project",
6215
- dependenciesHeaderDataGrant: "Data access",
6216
6263
  dependenciesHeaderDelivery: "Delivery",
6217
6264
  dependenciesHeaderExactVersion: "Exact version",
6218
6265
  dependenciesHeaderGrantedAt: "Granted",
@@ -6223,47 +6270,23 @@ var serverWeb = {
6223
6270
  dependenciesHeaderSourcePermission: "Source access",
6224
6271
  dependenciesHeaderSubmittedAt: "Submitted",
6225
6272
  dependenciesHeaderUpdatedAt: "Updated",
6226
- dependenciesKeyPrefixesDescription: "Enter one prefix per line. The final read scope is still limited by the consumer project's exact-version data source declaration.",
6227
- dependenciesKeyPrefixesLabel: "Allowed key prefixes",
6228
- dependenciesLoadDataGrantsFailed: "Unable to load data access grants.",
6229
- dependenciesLoadGrantableProjectsFailed: "Unable to load projects available for grants.",
6230
- dependenciesLoadPermissionsFailed: "Unable to load project permissions.",
6231
6273
  dependenciesLoadSourceRequestsFailed: "Unable to load source access requests.",
6232
6274
  dependenciesLoadStatusFailed: "Unable to load project dependency status.",
6233
- dependenciesLoadingDataGrants: "Loading data access grants",
6234
- dependenciesManagementUnavailableTitle: "Management permissions unavailable",
6235
- dependenciesNoDataGrantsDescription: "This project has not exposed any KV prefixes to other projects.",
6236
- dependenciesNoDataGrantsTitle: "No data access grants",
6237
- dependenciesNoGrantableConsumer: "No consumer projects are available for a grant",
6238
- dependenciesNoMatchingProjects: "No matching projects",
6239
6275
  dependenciesNoPendingRequestsDescription: "Requests submitted through a short-lived access link appear here.",
6240
6276
  dependenciesNoPendingRequestsTitle: "No pending requests",
6241
6277
  dependenciesNoSourceGrantsDescription: "Existing source permissions held by project members are not repeated in this table.",
6242
6278
  dependenciesNoSourceGrantsTitle: "No additional source grants",
6243
- 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.",
6244
6280
  dependenciesNotReadyTitle: "Dependencies for this version are not ready",
6245
- dependenciesOpenProjectName: "Open {{name}}",
6246
6281
  dependenciesOpenSourceProject: "Open source project",
6247
6282
  dependenciesPageDescription: "Review this project's references and manage data access and source delivery permissions. Host data is never transferred with a project group.",
6248
- dependenciesProjectNameUnavailable: "Name unavailable",
6249
- dependenciesProjectUnavailable: "Project unavailable",
6250
6283
  dependenciesRejectRequest: "Reject",
6251
6284
  dependenciesRequestSourceAccessLabel: "Request source access",
6252
6285
  dependenciesRequestSourceAccessTitle: "Request permission to download the source project",
6253
- dependenciesRevokeGrantConfirmDescription: "After revocation, open Studio and Embed data subscriptions are revalidated and stop reading this project.",
6254
- dependenciesRevokeGrantConfirmLabel: "Revoke grant",
6255
- dependenciesRevokeGrantConfirmTitle: "Revoke data access grant",
6256
- dependenciesRevokeGrantLabel: "Revoke data access grant for {{name}}",
6257
6286
  dependenciesRevokeSourceAccessConfirmDescription: "After revocation, this user can no longer download this project as an included dependency. Files already downloaded locally are not deleted.",
6258
6287
  dependenciesRevokeSourceAccessConfirmLabel: "Revoke access",
6259
6288
  dependenciesRevokeSourceAccessConfirmTitle: "Revoke source download access",
6260
6289
  dependenciesRevokeSourceAccessLabel: "Revoke source access",
6261
- dependenciesSaveChanges: "Save changes",
6262
- dependenciesSaveGrant: "Save grant",
6263
- dependenciesSaveGrantFailed: "Failed to save the data access grant.",
6264
- dependenciesSearchConsumerProjectAria: "Search consumer projects",
6265
- dependenciesSearchProjectPlaceholder: "Search project name or type",
6266
- dependenciesSelectedConsumerUnavailable: "The selected consumer project is no longer available. Select another project.",
6267
6290
  dependenciesServerDataUninitializedDescription: "Run the source Workflow's sync entrypoint on the Server. Local KV data is not uploaded automatically.",
6268
6291
  dependenciesServerDataUninitializedTitle: "Project deployed, but Server data is not initialized",
6269
6292
  dependenciesSourceCodeMissing: "Source missing",
@@ -6279,8 +6302,63 @@ var serverWeb = {
6279
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.",
6280
6303
  dependenciesVersionCardTitle: "Dependencies for the current project version",
6281
6304
  dependenciesVersionUnlocked: "Not pinned",
6282
- projectSettingsDependenciesEntryDescription: "Review exact dependency locks, KV data grants, and source access requests.",
6283
- 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",
6284
6362
  sourceAccessBackToProjects: "Back to project workbench",
6285
6363
  sourceAccessCheckingLink: "Checking access request link",
6286
6364
  sourceAccessCurrentStatus: "Current status: {{status}}",
@@ -6338,6 +6416,20 @@ var server = {
6338
6416
  terminalNotEnabled: "Remote terminal is not enabled. Set WORKFLOW_SERVER_TERMINAL_ENABLED=1.",
6339
6417
  requestBodyTooLarge: "Request body is too large.",
6340
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.",
6341
6433
  scheduleDeleteActive: "A workflow schedule cannot be deleted while a trigger is active.",
6342
6434
  scheduleExactVersionRequired: "Server workflow schedules require an exact published version.",
6343
6435
  schedulerStopping: "The workflow scheduler is stopping.",
@@ -6346,7 +6438,11 @@ var server = {
6346
6438
  schedulePostgresStorageRequired: "Workflow scheduling requires PostgreSQL storage.",
6347
6439
  scheduleTargetChanged: "The workflow schedule target no longer resolves exactly.",
6348
6440
  scheduleUpdateActive: "A workflow schedule cannot be updated while a trigger is active.",
6349
- 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.",
6350
6446
  scheduleUserRequired: "A user account is required to manage workflow schedules.",
6351
6447
  scheduleServerUnavailable: "Workflow scheduling is not available on this server.",
6352
6448
  sourceAccessStatusInvalid: 'status must be "approved" or "rejected".',
@@ -6358,15 +6454,13 @@ var server = {
6358
6454
  projectGroupRootArchiveType: "The project-group root archive must contain a Kanban project.",
6359
6455
  projectGroupPreviousLockMismatch: "The previously published Kanban root has a different dependency lock.",
6360
6456
  projectGroupImmutableDownload: "Project groups can only download immutable published versions.",
6361
- dataGrantSourceType: "A data-source grant source must be an existing Workflow project.",
6362
- dataGrantConsumerType: "A data-source grant consumer must be an existing Kanban project.",
6363
6457
  sourceAccessReasonLength: "Access request reason must contain 2 to 1000 characters.",
6364
6458
  sourceAccessLinkInvalid: "Project source access request link is invalid or expired.",
6365
6459
  projectGroupRootMissing: "Project-group root is missing.",
6366
6460
  projectGroupDraftChanged: "Project-group dependency manifest no longer matches the root Kanban draft.",
6367
6461
  projectDependencyStorageUnavailable: "Project dependency delivery requires PostgreSQL storage.",
6368
- dependencyLocksKanbanOnly: "Only Kanban projects can publish data-source dependency locks.",
6369
- 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.",
6370
6464
  schedulesWorkflowOnly: "Workflow schedules can only target Workflow projects.",
6371
6465
  conversationEntrypointForbidden: "Conversation projects do not accept entrypointId.",
6372
6466
  targetBuildRequired: "Target is not built successfully.",
@@ -6375,8 +6469,6 @@ var server = {
6375
6469
  archiveInspectFailed: "Failed to inspect tar.gz package.",
6376
6470
  archiveEntryLimit: "Archive contains too many entries.",
6377
6471
  archiveExpandedSizeLimit: "Archive expanded size exceeds the 512 MB limit.",
6378
- dataGrantPrefixCount: "Data-source grants require 1 to 32 key prefixes.",
6379
- dataGrantPrefixDuplicates: "Data-source grant keyPrefixes must not contain duplicates.",
6380
6472
  accountCreateDeploymentRequired: "A user account is required to create a project deployment.",
6381
6473
  accountViewSourceRequestRequired: "A user account is required to view a project source access request.",
6382
6474
  accountRequestSourceAccessRequired: "A user account is required to request project source access.",
@@ -6403,17 +6495,14 @@ var server = {
6403
6495
  workflowReservationUnavailable: 'Workflow "{{workflowId}}" version reservation is unavailable.',
6404
6496
  workflowReservationChanged: 'Workflow "{{workflowId}}" version reservation changed.',
6405
6497
  workflowDraftChanged: 'Workflow "{{workflowId}}" draft changed after deployment preparation.',
6406
- 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.',
6407
6499
  versionDependencyLockInvalid: 'Workflow "{{workflowId}}" version "{{version}}" has an invalid dependency lock.',
6408
6500
  projectNotExecutable: 'Project "{{projectName}}" is not executable.',
6409
6501
  archiveEntrySizeInvalid: 'Archive entry "{{path}}" has an invalid size.',
6410
6502
  scheduleIdInvalid: 'Invalid workflow schedule id "{{scheduleId}}".',
6411
- dataGrantPrefixType: "Data-source grant keyPrefixes[{{index}}] must be a string.",
6412
- dataGrantPrefixInvalid: "Data-source grant keyPrefixes[{{index}}] is invalid.",
6413
6503
  unknownEntrypoint: 'Entrypoint "{{entrypointId}}" does not exist for Workflow "{{workflowId}}".',
6414
6504
  entrypointResumeLocked: "entrypointId cannot be changed when resuming a waiting run.",
6415
6505
  archiveUnsupportedType: 'Archive entry "{{path}}" uses unsupported type "{{type}}". Only regular files and directories are allowed.',
6416
- kanbanDataSourceUnauthorized: 'Kanban data source "{{sourceId}}" is not authorized for sharing.',
6417
6506
  workflowOwnedByAnotherAccount: 'Workflow "{{workflowId}}" already exists and is owned by another account.',
6418
6507
  workflowVersionServerDisabled: 'Workflow "{{workflowId}}" version "{{version}}" is not enabled for Server execution. Download it on a supported Desktop platform instead.',
6419
6508
  workflowDraftServerDisabled: 'Workflow "{{workflowId}}" draft is not enabled for Server execution.',
@@ -6427,7 +6516,7 @@ var server = {
6427
6516
  var cli = {
6428
6517
  rootHelp: [
6429
6518
  "Usage:",
6430
- " 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]",
6431
6520
  " workflow-code [--locale <zh-CN|en>] workspace <command> [args]",
6432
6521
  "",
6433
6522
  "Local commands:",
@@ -6435,6 +6524,7 @@ var cli = {
6435
6524
  " json Run locally and print the JSON report",
6436
6525
  " structure Inspect workflow structure",
6437
6526
  " resolve-params Resolve dynamic workflow parameters",
6527
+ " mcp Expose workflow entrypoints through stdio MCP",
6438
6528
  "",
6439
6529
  "Workspace commands:",
6440
6530
  " login, logout, status, health, pack, upload, preparation,",
@@ -6445,10 +6535,24 @@ var cli = {
6445
6535
  "",
6446
6536
  "Run `workflow-code workspace --help` for workspace command details."
6447
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"),
6448
6552
  localHelp: [
6449
6553
  "Usage:",
6450
- " workflow-code [--locale <zh-CN|en>] run [workflow-dir] [--] [...args]",
6451
- " 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]",
6452
6556
  " workflow-code json [workflow-dir] --conversation-id <id> [--] [...args]",
6453
6557
  " workflow-code structure [workflow-dir]",
6454
6558
  " workflow-code resolve-params [workflow-dir] < request.json",
@@ -6459,7 +6563,10 @@ var cli = {
6459
6563
  " workflow-code json . -- --target aliyun --dry-run",
6460
6564
  " workflow-code json . --run-id <id> --resolved-user-inputs-json <json> -- [...args]",
6461
6565
  " workflow-code structure .",
6462
- " 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"
6463
6570
  ].join("\n"),
6464
6571
  workspaceHelp: [
6465
6572
  "Usage: workflow-code [--locale <zh-CN|en>] workspace <command> [args]",
@@ -6473,10 +6580,10 @@ var cli = {
6473
6580
  " status",
6474
6581
  " health",
6475
6582
  " pack <workflow> [--path <workflow-dir>] [--output <file.tgz>] [--project-group] [--dependency <alias>=<path>]",
6476
- " 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>]",
6477
6584
  " preparation <workflow-id> <job-id>",
6478
6585
  " download <workflow> [--target draft|latest|version] [--path <dir>]",
6479
- " 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>]",
6480
6587
  " publish --deployment <id>",
6481
6588
  " run <workflow> [...args] [--target draft|latest|version] [--entrypoint <id>]",
6482
6589
  " debug-node <workflow> <node> [...args] [--target draft|latest|version] [--entrypoint <id>]",
@@ -6502,10 +6609,12 @@ var cli = {
6502
6609
  invalidResolvedInput: "Invalid resolved user input item.",
6503
6610
  loginRequiresServer: "login requires --server.",
6504
6611
  deviceLoginPrompt: "Open the verification page to approve this login:\n{{url}}\nUser code: {{code}}",
6505
- 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.",
6506
6613
  archiveCreateFailed: "Failed to create archive: {{details}}",
6507
6614
  workflowNotBound: 'Workflow "{{workflow}}" is not bound to a server UUID. Create or bind it first with `workflow-code workspace upload {{workflow}} --create`.',
6508
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.",
6509
6618
  packageMustBeObject: 'Workflow package "{{path}}" must contain a JSON object.',
6510
6619
  packageReadFailed: 'Unable to read workflow package "{{path}}".',
6511
6620
  packageStringRequired: 'Workflow package.json must include string "{{key}}".',
@@ -6528,16 +6637,13 @@ var cli = {
6528
6637
  forbiddenBlocked: "403: Your account has been blocked from running this project.",
6529
6638
  forbiddenNoPermission: "403: Your account does not have permission to run this project.",
6530
6639
  forbiddenFallback: "403: {{message}}",
6531
- dependencyMustBeWorkflow: "Dependency {{sourceId}} must be a Workflow project.",
6532
6640
  dependencyOptionCommandUnsupported: "--dependency is only supported by pack, upload, and publish.",
6533
- dependencyPackageIdMismatch: "Dependency {{sourceId}} package id must match declared projectId {{projectId}}.",
6641
+ dependencyPackageIdMismatch: "Dependency {{alias}} package id must match related projectId {{projectId}}.",
6534
6642
  dependencyProjectPathConflict: "Project {{projectId}} is mapped to multiple dependency paths.",
6535
6643
  deploymentCommandUnsupported: "--deployment is only supported by publish.",
6536
6644
  deploymentOptionsConflict: "--deployment cannot be combined with project-group creation or single-project publish options.",
6537
- duplicateDependencySource: "Duplicate --dependency source id {{sourceId}}.",
6538
- duplicateGrantDataAccessSource: "Duplicate --grant-data-access source id {{sourceId}}.",
6539
- grantDataAccessCommandUnsupported: "--grant-data-access is only supported by upload and publish.",
6540
- invalidDependencyOption: "Invalid --dependency {{option}}; expected <source-id>=<project-path>.",
6645
+ duplicateDependencySource: "Duplicate --dependency alias {{alias}}.",
6646
+ invalidDependencyOption: "Invalid --dependency {{option}}; expected <alias>=<project-path>.",
6541
6647
  noWaitCommandUnsupported: "--no-wait is only supported by upload.",
6542
6648
  noWaitProjectGroupUnsupported: "--no-wait is not supported by project-group upload.",
6543
6649
  projectGroupArchiveCreateFailed: "Failed to create project-group archive: {{details}}",
@@ -6554,9 +6660,8 @@ var cli = {
6554
6660
  projectGroupDownloadRootCountInvalid: "Server project-group download must contain exactly one matching root project.",
6555
6661
  projectGroupDownloadRootPackageInvalidJson: "Server project-group root package.json is invalid JSON.",
6556
6662
  projectGroupDownloadRootPackageUtf8: "Server project-group root package.json must be UTF-8 text.",
6557
- 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.",
6558
6664
  projectGroupDownloadRootVersionMismatch: "Server project-group root version does not match its download plan.",
6559
- projectGroupDownloadSelfReference: "Server project-group data source {{sourceId}} cannot reference the root Kanban project.",
6560
6665
  projectGroupDownloadSourceHashMismatch: "Server project-group {{role}} project {{projectId}} source hash does not match its files.",
6561
6666
  projectGroupDownloadUndeclaredDependency: "Server project-group download contains undeclared dependency project {{projectId}}.",
6562
6667
  projectGroupDownloadedPackageIdMismatch: "Downloaded project package id does not match {{projectId}}.",
@@ -6564,11 +6669,11 @@ var cli = {
6564
6669
  projectGroupRequiredPathForbidden: "Project-group required path {{path}} is forbidden host data.",
6565
6670
  projectGroupRootIdRequired: "Project-group root package.json must contain a UUID id.",
6566
6671
  projectGroupRootMustBeKanban: "A project-group root must be a Kanban project.",
6567
- 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.",
6568
6673
  projectGroupUploadFileUnsupported: "Project-group upload does not accept --file; use --path and --dependency so the manifest can be verified.",
6569
6674
  projectGroupUploadRootIdRequired: "Project-group upload requires the root package.json to contain a UUID id or --create.",
6570
6675
  publishGroupCommandUnsupported: "--publish-group is only supported by upload.",
6571
- unknownGrantDataAccessSource: "Unknown --grant-data-access source id {{sourceId}}."
6676
+ unknownWorkspaceOption: "Unknown workspace option: {{option}}"
6572
6677
  };
6573
6678
 
6574
6679
  // .shared/i18n/resources/en/permissions.ts
@@ -6706,6 +6811,10 @@ var common2 = {
6706
6811
  advancedOptions: "\u9AD8\u7EA7\u9009\u9879",
6707
6812
  advancedInputs: "\u9AD8\u7EA7\u8F93\u5165",
6708
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}}",
6709
6818
  close: "\u5173\u95ED",
6710
6819
  booleanYes: "\u662F",
6711
6820
  booleanNo: "\u5426",
@@ -7315,37 +7424,36 @@ var common2 = {
7315
7424
  },
7316
7425
  projectDependencies: {
7317
7426
  validation: {
7318
- duplicateSelection: "\u4F9D\u8D56\u9009\u62E9\u201C{{sourceId}}\u201D\u91CD\u590D\u3002",
7319
- 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",
7320
7429
  lockArray: "\u9879\u76EE\u4F9D\u8D56\u9501\u5FC5\u987B\u662F\u6570\u7EC4\u3002",
7321
- 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",
7322
7432
  manifestVersion: "\u9879\u76EE\u7EC4\u6E05\u5355\u7248\u672C\u5FC5\u987B\u662F {{version}}\u3002",
7323
7433
  manifestProjects: "\u9879\u76EE\u7EC4\u6E05\u5355\u7684 projects \u5FC5\u987B\u662F\u975E\u7A7A\u6570\u7EC4\u3002",
7324
7434
  projectObject: "\u9879\u76EE\u7EC4 {{field}} \u5FC5\u987B\u662F\u5BF9\u8C61\u3002",
7325
7435
  projectRole: "\u9879\u76EE\u7EC4 {{field}} \u65E0\u6548\u3002",
7326
7436
  archiveFormat: "\u9879\u76EE\u7EC4 {{field}} \u5FC5\u987B\u662F tar.gz \u5F52\u6863\u3002",
7327
- 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",
7328
7438
  duplicateProjectId: "\u9879\u76EE\u7EC4 projectId\u201C{{projectId}}\u201D\u91CD\u590D\u3002",
7329
7439
  duplicateArchivePath: "\u9879\u76EE\u7EC4 archivePath\u201C{{path}}\u201D\u91CD\u590D\u3002",
7330
7440
  rootCount: "\u9879\u76EE\u7EC4\u6E05\u5355\u5FC5\u987B\u5305\u542B\u4E14\u4EC5\u5305\u542B\u4E00\u4E2A\u5339\u914D\u7684\u6839\u9879\u76EE\u3002",
7331
- selfReference: "\u9879\u76EE\u7EC4\u4F9D\u8D56\u201C{{sourceId}}\u201D\u4E0D\u80FD\u5F15\u7528\u6839 Kanban \u9879\u76EE\u81EA\u8EAB\u3002",
7332
- 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",
7333
7443
  dependencyNotIncluded: "\u4F9D\u8D56\u9879\u76EE\u201C{{projectId}}\u201D\u672A\u6807\u8BB0\u4E3A included\u3002",
7334
- 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",
7335
7445
  lockObject: "{{field}} \u5FC5\u987B\u662F\u5BF9\u8C61\u3002",
7336
- lockSourceId: "{{field}} \u65E0\u6548\u3002",
7337
- lockKind: "{{field}} \u65E0\u6548\u3002",
7446
+ lockAlias: "{{field}} \u65E0\u6548\u3002",
7338
7447
  lockDelivery: "{{field}} \u65E0\u6548\u3002",
7339
- keyPrefixesArray: "{{field}} \u5FC5\u987B\u662F\u975E\u7A7A\u6570\u7EC4\u3002",
7340
- keyPrefixesDuplicate: "{{field}} \u4E0D\u80FD\u5305\u542B\u91CD\u590D\u9879\u3002",
7341
- externalPinned: "external \u4F9D\u8D56\u201C{{sourceId}}\u201D\u4E0D\u80FD\u56FA\u5B9A\u7248\u672C\u6216\u6E90\u7801\u54C8\u5E0C\u3002",
7342
- includedPinRequired: "included \u4F9D\u8D56\u201C{{sourceId}}\u201D\u5FC5\u987B\u56FA\u5B9A version \u548C sourceHash\u3002",
7343
- includedVersionInvalid: "included \u4F9D\u8D56\u201C{{sourceId}}\u201D\u7684\u7248\u672C\u65E0\u6548\u3002",
7344
- 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",
7345
7452
  unsafePath: "\u9879\u76EE\u7EC4 {{field}} \u8DEF\u5F84\u4E0D\u5B89\u5168\u3002",
7346
7453
  uuidRequired: "\u9879\u76EE\u7EC4 {{field}} \u5FC5\u987B\u662F UUID\u3002",
7347
7454
  nonEmptyString: "{{field}} \u5FC5\u987B\u662F\u975E\u7A7A\u5B57\u7B26\u4E32\u3002",
7348
- 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"
7349
7457
  }
7350
7458
  },
7351
7459
  schedule: {
@@ -7596,10 +7704,10 @@ var common2 = {
7596
7704
  close: "\u6536\u8D77\u65E5\u5FD7"
7597
7705
  }
7598
7706
  },
7599
- kanbanRevisionSubscriptionInterrupted: "\u6570\u636E\u6E90\u66F4\u65B0\u8BA2\u9605\u5DF2\u4E2D\u65AD\uFF0C\u6B63\u5728\u91CD\u8FDE\u3002",
7600
- kanbanRevisionSubscriptionUnavailable: "\u6570\u636E\u6E90\u66F4\u65B0\u8BA2\u9605\u6682\u4E0D\u53EF\u7528\uFF0C\u4ECD\u4FDD\u7559\u4E0A\u6B21\u7ED3\u679C\u3002",
7601
- kanbanRevisionTargetChangedReconnect: "\u6570\u636E\u6E90\u7248\u672C\u5DF2\u53D8\u5316\uFF0C\u6B63\u5728\u91CD\u65B0\u8FDE\u63A5\u3002",
7602
- 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",
7603
7711
  listSeparator: "\u3001",
7604
7712
  quotedValue: "\u201C{{value}}\u201D",
7605
7713
  previewAssistantMessage: "\u6211\u4F1A\u57FA\u4E8E\u8FD9\u4E2A\u4F1A\u8BDD\u7EE7\u7EED\u56DE\u7B54\uFF0C\u652F\u6301 **Markdown**\u3002",
@@ -7658,6 +7766,14 @@ var desktop2 = {
7658
7766
  localeEn: "English",
7659
7767
  localeEnDetail: "\u4EE5\u82F1\u6587\u663E\u793A\u754C\u9762",
7660
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",
7661
7777
  desktopCloudRunRecordsLabel: "Desktop \u4E91\u7AEF\u8FD0\u884C\u8BB0\u5F55",
7662
7778
  desktopStatus: "Desktop \u72B6\u6001",
7663
7779
  archiveImportedAs: "{{archiveName}} \u5DF2\u5BFC\u5165\u4E3A {{workflowName}}",
@@ -8037,26 +8153,33 @@ var desktop2 = {
8037
8153
  projectNamePlaceholder: "\u9879\u76EE\u540D\u79F0",
8038
8154
  projectType: "\u9879\u76EE\u7C7B\u578B",
8039
8155
  projectUuid: "\u9879\u76EE UUID",
8040
- assistantLinkedProjects: "\u5C0F\u52A9\u624B\u5173\u8054\u9879\u76EE",
8041
- manageAssistantLinks: "\u7BA1\u7406\u5173\u8054",
8042
- assistantLinksDialogTitle: "\u5173\u8054\u5DE5\u4F5C\u533A",
8043
- assistantLinksDialogDescription: "\u7BA1\u7406\u5C0F\u52A9\u624B\u53EF\u4EE5\u8054\u52A8\u4FEE\u6539\u7684\u672C\u5730\u9879\u76EE\u548C\u666E\u901A\u6587\u4EF6\u5939\u3002",
8044
- assistantLinksDirectCount: "{{count}} \u4E2A\u76F4\u63A5\u5173\u8054",
8045
- assistantLinksRecursiveCount: "{{count}} \u4E2A\u9012\u5F52\u53EF\u8BBF\u95EE",
8046
- assistantLinksWarningCount: "{{count}} \u4E2A\u5931\u6548\u9879",
8047
- assistantAutomaticLinks: "\u81EA\u52A8\u5173\u8054",
8048
- assistantManualLinks: "\u624B\u52A8\u5173\u8054",
8049
- assistantLinkSearchPlaceholder: "\u641C\u7D22\u672C\u5730\u9879\u76EE\u548C\u666E\u901A\u6587\u4EF6\u5939",
8050
- assistantNoAutomaticLinks: "\u6CA1\u6709\u81EA\u52A8\u5173\u8054\u9879\u76EE",
8051
- assistantNoManualCandidates: "\u6CA1\u6709\u53EF\u5173\u8054\u7684\u672C\u5730\u9879\u76EE\u6216\u666E\u901A\u6587\u4EF6\u5939",
8052
- assistantLinkUnavailable: "\u4E0D\u53EF\u7528",
8053
- assistantLinkAutomatic: "\u81EA\u52A8",
8054
- assistantLinksLoading: "\u6B63\u5728\u8BFB\u53D6\u5173\u8054\u9879\u76EE...",
8055
- assistantLinkWarningNotImported: "{{project}} \u672A\u5BFC\u5165",
8056
- assistantLinkWarningPathUnavailable: "{{project}} \u7684\u76EE\u5F55\u4E0D\u53EF\u7528",
8057
- assistantLinkWarningNotEditable: "{{project}} \u4E0D\u53EF\u7F16\u8F91",
8058
- assistantLinkWarningManifestInvalid: "{{project}} \u7684\u81EA\u52A8\u5173\u8054\u58F0\u660E\u65E0\u6548",
8059
- 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.",
8060
8183
  publishNewVersion: "\u53D1\u5E03\u65B0\u7248\u672C",
8061
8184
  releaseExecutionTargets: "\u53D1\u884C\u76EE\u6807",
8062
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",
@@ -8076,31 +8199,22 @@ var desktop2 = {
8076
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",
8077
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",
8078
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",
8079
- referencedProjects: "\u5F15\u7528\u9879\u76EE",
8080
- 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",
8081
- 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",
8082
8205
  dependencyServerMissing: "Server \u5C1A\u65E0\u9879\u76EE",
8083
- dependencyNotDownloaded: "\u6765\u6E90\u9879\u76EE\u672A\u4E0B\u8F7D",
8084
- 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",
8085
8208
  dependencyDataInitialized: "Server \u6570\u636E\u5DF2\u521D\u59CB\u5316",
8086
8209
  dependencyDataNotInitialized: "\u9879\u76EE\u5DF2\u90E8\u7F72\uFF0CServer \u6570\u636E\u5C1A\u672A\u521D\u59CB\u5316",
8087
8210
  sourceDownloadLabel: "\u6E90\u7801\u4E0B\u8F7D\uFF1A",
8088
- dataGrantManagementLabel: "\u6570\u636E\u6388\u6743\u7BA1\u7406\uFF1A",
8089
8211
  allowed: "\u5141\u8BB8",
8090
8212
  notAuthorized: "\u672A\u6388\u6743",
8091
- validateOnPublish: "\u53D1\u5E03\u65F6\u6821\u9A8C",
8092
8213
  includeSourceWithGroup: "\u968F\u7EC4\u4E0A\u4F20\u6E90\u7801",
8093
- localDependencyNotDownloaded: "\u672C\u5730\u6765\u6E90\u9879\u76EE\u672A\u4E0B\u8F7D",
8094
- 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",
8095
8215
  publishDependencyAsSource: "\u4EE5 source \u6A21\u5F0F\u53D1\u5E03\u5E76\u9501\u5B9A\u7CBE\u786E\u7248\u672C",
8096
8216
  includeSourceWithGroupAria: "\u968F\u7EC4\u4E0A\u4F20\u6E90\u7801 {{name}}",
8097
- authorizeDataRead: "\u6388\u6743\u8BFB\u53D6\u6570\u636E",
8098
- dependencyKvPrefixesAuthorized: "Server \u5DF2\u6388\u6743\u5F53\u524D KV key \u524D\u7F00",
8099
- cannotManageDependencyGrant: "\u5F53\u524D\u8D26\u53F7\u4E0D\u80FD\u7BA1\u7406\u6765\u6E90\u9879\u76EE\u6388\u6743",
8100
- dependencyMustExistBeforeGrant: "\u9700\u5148\u968F\u7EC4\u4E0A\u4F20\u6216\u5728 Server \u521B\u5EFA\u6765\u6E90\u9879\u76EE",
8101
- authorizeDeclaredKvPrefixes: "\u4EC5\u6388\u6743\u58F0\u660E\u4E2D\u7684 KV key \u524D\u7F00",
8102
- authorizeDataReadAria: "\u6388\u6743\u8BFB\u53D6\u6570\u636E {{name}}",
8103
- 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",
8104
8218
  publishProgress: "\u53D1\u5E03\u8FDB\u5EA6",
8105
8219
  publishProgressValue: "{{percent}}% \xB7 {{message}}",
8106
8220
  publishResult: "\u53D1\u5E03\u7ED3\u679C",
@@ -8186,7 +8300,6 @@ var desktop2 = {
8186
8300
  fixSuggestionAddId: "\uFF0C\u6DFB\u52A0",
8187
8301
  fixSuggestionEnsureId: "\u5E76\u786E\u4FDD\u5B83\u548C\u6587\u4EF6\u5939 / workflow id \u4E00\u81F4\u3002",
8188
8302
  fixSuggestionPrefix: "\u4FEE\u590D\u5EFA\u8BAE\uFF1A\u6253\u5F00",
8189
- globalScope: "\u5168\u5C40",
8190
8303
  hideConversationList: "\u9690\u85CF\u4F1A\u8BDD\u5217\u8868",
8191
8304
  hideDiagnostic: "\u6536\u8D77{{label}}",
8192
8305
  hideFileList: "\u9690\u85CF\u6587\u4EF6\u5217\u8868",
@@ -8210,7 +8323,6 @@ var desktop2 = {
8210
8323
  kvScopeFilterAriaLabel: "\u7B5B\u9009 KV \u4F5C\u7528\u57DF",
8211
8324
  kvSearchAriaLabel: "\u641C\u7D22 KV \u6570\u636E",
8212
8325
  kvSearchPlaceholder: "\u641C\u7D22\u952E\u6216\u6458\u8981",
8213
- kvServerGlobalDetailUnavailable: "\u670D\u52A1\u5668\u9879\u76EE\u8BE6\u60C5\u4E0D\u5305\u542B\u5168\u5C40 KV\u3002",
8214
8326
  kvUnavailableTitle: "KV \u6570\u636E\u6682\u4E0D\u53EF\u7528",
8215
8327
  kvValueTooLarge: "\u503C\u5185\u5BB9\u8F83\u5927",
8216
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",
@@ -8286,7 +8398,7 @@ var desktop2 = {
8286
8398
  viewKVDetail: "\u67E5\u770B KV \u8BE6\u60C5",
8287
8399
  workflowConfigInvalidEditable: "Workflow \u914D\u7F6E\u65E0\u6548\uFF0C\u4F46\u6E90\u7801\u4ECD\u53EF\u7F16\u8F91\u3002",
8288
8400
  workflowExitedWith: "Workflow exited with {{code}}.",
8289
- workflowScope: "\u9879\u76EE",
8401
+ projectScope: "\u9879\u76EE",
8290
8402
  authStatusMissingServerTitle: "\u672A\u7ED1\u5B9A\u8FDC\u7A0B\u670D\u52A1\u5668",
8291
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",
8292
8404
  authStatusMissingServerBadge: "\u672A\u7ED1\u5B9A",
@@ -8384,6 +8496,20 @@ var desktop2 = {
8384
8496
  activityFilesLabel: "\u6587\u4EF6",
8385
8497
  activityInfoDescription: "\u67E5\u770B\u548C\u7F16\u8F91\u9879\u76EE\u4FE1\u606F",
8386
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",
8387
8513
  activityKnowledgeDescription: "\u7BA1\u7406\u672C\u5730\u6216\u670D\u52A1\u5668\u77E5\u8BC6\u5E93\u6587\u6863",
8388
8514
  activityKnowledgeLabel: "\u77E5\u8BC6\u5E93",
8389
8515
  activityKvDescription: "\u67E5\u770B\u672C\u5730\u6216\u670D\u52A1\u5668 KV \u6570\u636E",
@@ -8396,6 +8522,62 @@ var desktop2 = {
8396
8522
  activitySchedulesLabel: "\u5B9A\u65F6",
8397
8523
  activityTerminalDescription: "\u6253\u5F00\u5DE5\u4F5C\u533A\u7EC8\u7AEF",
8398
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",
8399
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",
8400
8582
  desktopOnlyClonesLocal: "Desktop \u53EA\u514B\u9686\u672C\u5730\u9879\u76EE\u3002",
8401
8583
  backToReview: "\u8FD4\u56DE\u68C0\u67E5",
@@ -8865,13 +9047,8 @@ var desktop2 = {
8865
9047
  selectProjectToEditInfo: "\u8BF7\u9009\u62E9\u4E00\u4E2A\u9879\u76EE\u540E\u7F16\u8F91\u4FE1\u606F\u3002",
8866
9048
  settingsAria: "\u8BBE\u7F6E\uFF1A\u6253\u5F00 Desktop \u8BBE\u7F6E",
8867
9049
  workspaceRailAria: "\u5DE5\u4F5C\u533A\u89C6\u56FE",
8868
- 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",
8869
9050
  dependencyStatusLoadFailed: "\u65E0\u6CD5\u8BFB\u53D6\u5F15\u7528\u9879\u76EE\u72B6\u6001\u3002",
8870
- kanbanDataSourcePackageMissing: "Kanban \u9879\u76EE\u7F3A\u5C11 package.json\uFF0C\u65E0\u6CD5\u8BFB\u53D6\u6570\u636E\u6E90\u58F0\u660E\u3002",
8871
- kanbanDataSourcePackageMustBeUtf8: "Kanban \u9879\u76EE\u7684 package.json \u5FC5\u987B\u662F UTF-8 \u6587\u672C\u3002",
8872
- kanbanDataSourceReadFailed: "\u65E0\u6CD5\u8BFB\u53D6 Kanban \u6570\u636E\u6E90\u58F0\u660E\uFF1A{{details}}",
8873
- kanbanDataSourceSelfReference: "\u6570\u636E\u6E90\u201C{{sourceId}}\u201D\u4E0D\u80FD\u5F15\u7528\u5F53\u524D Kanban \u81EA\u8EAB\u3002",
8874
- 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",
8875
9052
  previousPublishDependenciesLoadFailed: "\u65E0\u6CD5\u8BFB\u53D6\u4E0A\u6B21\u53D1\u5E03\u7684\u5F15\u7528\u9879\u76EE\u8BBE\u7F6E\u3002",
8876
9053
  previousPublishedVersionMissing: "\u65E0\u6CD5\u5728\u7248\u672C\u5217\u8868\u4E2D\u627E\u5230\u6700\u8FD1\u53D1\u5E03\u7248\u672C {{version}}\u3002",
8877
9054
  previousPublishSettingsLoadFailed: "\u65E0\u6CD5\u8BFB\u53D6\u4E0A\u6B21\u53D1\u5E03\u8BBE\u7F6E\u3002",
@@ -8881,7 +9058,7 @@ var desktop2 = {
8881
9058
  projectGroupTargetDirectoryInvalid: "\u9879\u76EE\u7EC4\u76EE\u6807\u76EE\u5F55\u540D\u201C{{directoryName}}\u201D\u65E0\u6548\u3002",
8882
9059
  projectGroupDisplayNameRequired: "\u9879\u76EE\u663E\u793A\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A\u3002",
8883
9060
  projectGroupServerUrlInvalid: "Workflow Server \u5730\u5740\u201C{{serverUrl}}\u201D\u5FC5\u987B\u662F\u6709\u6548\u7684 HTTP(S) URL\u3002",
8884
- 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",
8885
9062
  projectGroupFilePathInvalid: "\u9879\u76EE\u7EC4\u6587\u4EF6\u8DEF\u5F84\u201C{{filePath}}\u201D\u65E0\u6548\u3002",
8886
9063
  projectGroupDuplicateFilePath: "\u9879\u76EE\u7EC4\u6E90\u7801\u5305\u542B\u91CD\u590D\u6587\u4EF6\u8DEF\u5F84\u201C{{filePath}}\u201D\u3002",
8887
9064
  projectGroupForbiddenHostData: "\u9879\u76EE\u7EC4\u6E90\u7801\u5728\u201C{{filePath}}\u201D\u5305\u542B\u7981\u6B62\u4F20\u8F93\u7684\u5BBF\u4E3B\u6570\u636E\u3002",
@@ -8889,13 +9066,13 @@ var desktop2 = {
8889
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",
8890
9067
  projectGroupSourceContentInvalid: "\u9879\u76EE\u201C{{projectId}}\u201D\u5305\u542B\u65E0\u6548\u6E90\u7801\u5185\u5BB9\u3002",
8891
9068
  projectGroupSourceHashMismatch: "\u9879\u76EE\u201C{{projectId}}\u201D\u7684\u6E90\u7801\u5185\u5BB9\u4E0E\u9501\u5B9A\u54C8\u5E0C\u4E0D\u4E00\u81F4\u3002",
8892
- 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",
8893
9070
  projectGroupRootVersionMismatch: "\u6839\u9879\u76EE\u7248\u672C\u4E3A {{actualVersion}}\uFF0C\u4F46\u4E0B\u8F7D\u8BA1\u5212\u8981\u6C42 {{expectedVersion}}\u3002",
8894
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",
8895
9072
  projectGroupRootPackageMustBeUtf8: "\u9879\u76EE\u7EC4\u6839\u9879\u76EE\u7684 package.json \u5FC5\u987B\u662F UTF-8 \u6587\u672C\u3002",
8896
- projectGroupRootDataSourcesInvalid: "\u6839 Kanban \u7684\u6570\u636E\u6E90\u914D\u7F6E\u65E0\u6548\u3002",
8897
- projectGroupDependencyLockMismatch: "\u9879\u76EE\u7EC4\u4F9D\u8D56\u9501\u4E0E\u6839 Kanban \u6570\u636E\u6E90\u4E0D\u4E00\u81F4\u3002",
8898
- 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",
8899
9076
  projectGroupUndeclaredDependency: "\u4F9D\u8D56\u9879\u76EE\u201C{{projectId}}\u201D\u672A\u5728\u9879\u76EE\u7EC4\u4E2D\u58F0\u660E\u3002",
8900
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",
8901
9078
  projectGroupCopyMissingIncludedSource: "\u590D\u5236\u9879\u76EE\u7EC4\u9700\u8981\u63D0\u4F9B\u6BCF\u4E2A included \u4F9D\u8D56\u7684\u6E90\u7801\u3002",
@@ -9105,8 +9282,6 @@ var serverWeb2 = {
9105
9282
  busyLoadAiConfig: "\u52A0\u8F7D AI \u914D\u7F6E",
9106
9283
  busyLoadAiUsage: "\u52A0\u8F7D AI \u7528\u91CF",
9107
9284
  busyLoadAudit: "\u52A0\u8F7D\u5BA1\u8BA1\u65E5\u5FD7",
9108
- busyLoadGlobalKv: "\u52A0\u8F7D Global KV",
9109
- busyLoadGlobalKvPage: "\u5207\u6362 Global KV \u5206\u9875",
9110
9285
  busyLoadLogs: "\u52A0\u8F7D\u6267\u884C\u8BB0\u5F55",
9111
9286
  busyLoadOrders: "\u52A0\u8F7D\u8BA2\u5355",
9112
9287
  busyLoadProjectDetail: "\u52A0\u8F7D\u9879\u76EE\u8BE6\u60C5",
@@ -9153,17 +9328,49 @@ var serverWeb2 = {
9153
9328
  confirmActionCancel: "\u53D6\u6D88",
9154
9329
  confirmActionConfirm: "\u786E\u8BA4",
9155
9330
  detailNavEmbed: "Embed",
9156
- detailNavDependencies: "\u4F9D\u8D56\u4E0E\u6743\u9650",
9331
+ detailNavRelatedProjects: "\u5173\u8054\u9879\u76EE",
9157
9332
  detailNavEnv: "\u73AF\u5883\u53D8\u91CF",
9158
9333
  detailNavKnowledge: "\u77E5\u8BC6\u5E93",
9159
9334
  detailNavKv: "KV \u6570\u636E",
9160
9335
  detailNavLogs: "\u6267\u884C\u65E5\u5FD7",
9336
+ detailNavMcp: "MCP",
9161
9337
  detailNavMembers: "\u6210\u5458",
9162
9338
  detailNavOverview: "\u6982\u89C8",
9163
9339
  detailNavSchedules: "\u5B9A\u65F6\u4EFB\u52A1",
9164
9340
  detailNavSettings: "\u8BBE\u7F6E",
9165
9341
  detailNavVersions: "\u7248\u672C",
9166
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",
9167
9374
  deviceApprove: "\u6279\u51C6\u767B\u5F55",
9168
9375
  deviceCardDescription: "device flow \u9700\u8981\u7531 Web \u4F1A\u8BDD\u663E\u5F0F\u6279\u51C6\uFF0CCLI / App \u624D\u80FD\u6362\u53D6 API Key\u3002",
9169
9376
  deviceDeny: "\u62D2\u7EDD",
@@ -9234,52 +9441,44 @@ var serverWeb2 = {
9234
9441
  formatDurationUnknown: "\u672A\u77E5",
9235
9442
  formatTimeUnknown: "\u672A\u77E5\u65F6\u95F4",
9236
9443
  formatUnknownTime: "\u672A\u77E5\u65F6\u95F4",
9237
- globalKvClear: "\u6E05\u7A7A",
9238
- globalKvCopyFailed: "\u5F53\u524D\u6D4F\u89C8\u5668\u4E0D\u5141\u8BB8\u590D\u5236\uFF0C\u8BF7\u624B\u52A8\u9009\u4E2D\u6587\u672C\u590D\u5236\u3002",
9239
- globalKvCopyJson: "\u590D\u5236 JSON",
9240
- globalKvCopyJsonCopied: "JSON \u5DF2\u590D\u5236",
9241
- globalKvCopyKey: "\u590D\u5236 Key",
9242
- globalKvCopySummary: "\u590D\u5236\u6458\u8981",
9243
- globalKvCopySummaryCopied: "\u6458\u8981\u5DF2\u590D\u5236",
9244
- globalKvDetailLoadingAria: "\u6B63\u5728\u52A0\u8F7D KV \u8BE6\u60C5",
9245
- globalKvDetailLoadingText: "\u6B63\u5728\u52A0\u8F7D\u5B8C\u6574\u503C\u2026",
9246
- globalKvDetailTitle: "KV \u8BE6\u60C5",
9247
- 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",
9248
- globalKvEmptyDescription: "\u8C03\u6574\u641C\u7D22\u8BCD\u3001\u7C7B\u578B\u6216\u5173\u8054\u6761\u4EF6\u540E\u91CD\u8BD5\u3002",
9249
- globalKvEmptyTitle: "\u6CA1\u6709\u5339\u914D\u7684 KV \u8BB0\u5F55",
9250
- globalKvFilterLinkStateAria: "\u5173\u8054\u72B6\u6001",
9251
- globalKvFilterLinkStateOptions: "\u5168\u90E8\u5173\u8054",
9252
- globalKvFilterLinkedState: "\u5DF2\u5173\u8054\u65E5\u5FD7",
9253
- globalKvFilterRunId: "runId",
9254
- globalKvFilterSearch: "\u641C\u7D22 Key...",
9255
- globalKvFilterUnlinkedState: "\u672A\u5173\u8054\u65E5\u5FD7",
9256
- globalKvFilterValueTypeAria: "\u503C\u7C7B\u578B",
9257
- globalKvHeaderConversation: "Conversation",
9258
- globalKvHeaderKey: "Key",
9259
- globalKvHeaderLastWriter: "Last writer",
9260
- globalKvHeaderOperations: "\u64CD\u4F5C",
9261
- globalKvHeaderProject: "\u9879\u76EE",
9262
- globalKvHeaderUpdatedAt: "\u66F4\u65B0\u65F6\u95F4",
9263
- globalKvHeaderValue: "\u503C",
9264
- globalKvLinkStateAll: "\u5168\u90E8\u5173\u8054",
9265
- globalKvLinkedRunNotLinked: "\u65E0\u5173\u8054\u65E5\u5FD7",
9266
- globalKvLinkedRunView: "\u67E5\u770B\u5173\u8054\u65E5\u5FD7",
9267
- globalKvLoadJson: "\u52A0\u8F7D JSON",
9268
- globalKvLoadJsonLoading: "\u52A0\u8F7D\u4E2D",
9269
- globalKvLoadJsonRetry: "\u91CD\u8BD5\u52A0\u8F7D JSON",
9270
- globalKvMetaLastRun: "\u6700\u540E\u6267\u884C",
9271
- globalKvMetaUnlinked: "\u672A\u5173\u8054",
9272
- globalKvNotRecorded: "\u672A\u8BB0\u5F55",
9273
- 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",
9274
- globalKvPageTitle: "\u5168\u5C40 KV",
9275
- globalKvRefresh: "\u5237\u65B0",
9276
- globalKvScopeConversation: "conversation",
9277
- globalKvScopeWorkflow: "workflow",
9278
- globalKvStatLinked: "\u5DF2\u5173\u8054\u65E5\u5FD7 (\u672C\u9875)",
9279
- globalKvStatStructured: "\u7ED3\u6784\u5316\u503C (\u672C\u9875)",
9280
- globalKvStatTotal: "\u8BB0\u5F55\u603B\u6570 (\u5339\u914D\u8FC7\u6EE4)",
9281
- globalKvValueTypeAll: "\u5168\u90E8\u7C7B\u578B",
9282
- 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",
9283
9482
  inviteAcceptAndJoin: "\u63A5\u53D7\u9080\u8BF7\u5E76\u52A0\u5165",
9284
9483
  inviteAcceptFailed: "\u63A5\u53D7\u9080\u8BF7\u5931\u8D25\u3002",
9285
9484
  inviteAlreadyAccepted: "\u8BE5\u9080\u8BF7\u5DF2\u88AB\u63A5\u53D7\u3002",
@@ -9405,6 +9604,7 @@ var serverWeb2 = {
9405
9604
  logsSourceDesktop: "Desktop",
9406
9605
  logsSourceEmbed: "Embed",
9407
9606
  logsSourceExternalApi: "\u5916\u90E8 API",
9607
+ logsSourceMcp: "MCP",
9408
9608
  logsSourceSchedule: "\u5B9A\u65F6\u4EFB\u52A1",
9409
9609
  logsSourceUnknown: "\u672A\u8BB0\u5F55",
9410
9610
  logsSourceUserSession: "\u7528\u6237\u4F1A\u8BDD",
@@ -9563,7 +9763,6 @@ var serverWeb2 = {
9563
9763
  membersUserSource: "\u7528\u6237\u6765\u6E90",
9564
9764
  membersVisible: "\u5F53\u524D\u9875 {{page}} \u6761 / \u7B5B\u9009 {{total}} \u6761",
9565
9765
  navAdminCenter: "\u7BA1\u7406\u4E2D\u5FC3",
9566
- navGlobalKv: "\u5168\u5C40 KV \u6570\u636E",
9567
9766
  navProjects: "\u9879\u76EE\u5DE5\u4F5C\u53F0",
9568
9767
  navSettings: "\u8BBE\u7F6E",
9569
9768
  overviewAccessAcceptTasks: "\u63A5\u6536\u4EFB\u52A1",
@@ -10519,7 +10718,7 @@ var serverWeb2 = {
10519
10718
  navEnterAdminCenter: "\u8FDB\u5165\u7BA1\u7406\u5458\u540E\u53F0",
10520
10719
  busyResetEmbedToken: "\u91CD\u7F6E Embed Token",
10521
10720
  busyResetWebhookSecret: "\u91CD\u7F6E Webhook Secret",
10522
- 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",
10523
10722
  filePickerChoose: "\u9009\u62E9\u6587\u4EF6",
10524
10723
  tableLoadingRows: "\u6B63\u5728\u52A0\u8F7D\u8868\u683C",
10525
10724
  selectPlaceholder: "\u9009\u62E9",
@@ -10540,7 +10739,7 @@ var serverWeb2 = {
10540
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",
10541
10740
  embedTabResetTokenAction: "\u91CD\u7F6E Token",
10542
10741
  embedTabPublicUrlDetail: "\u516C\u5F00 URL\uFF1A",
10543
- globalKvFilterScopeAria: "\u8303\u56F4",
10742
+ projectKvFilterScopeAria: "\u8303\u56F4",
10544
10743
  overviewQueueDonutAria: "\u8FD0\u884C\u6001\u6458\u8981\u961F\u5217\u5360\u7528\u56FE",
10545
10744
  overviewCapacityBarsAria: "\u5E76\u53D1\u5BB9\u91CF\u67F1\u72B6\u56FE",
10546
10745
  overviewAccessBarsAria: "\u63A5\u5165\u72B6\u6001\u6761\u5F62\u56FE",
@@ -10582,38 +10781,16 @@ var serverWeb2 = {
10582
10781
  webhookRunHeaderEntrypoint: "Workflow \u5165\u53E3",
10583
10782
  webhookSaveConfirmDetailsEntrypoint: "Workflow \u5165\u53E3\uFF1A",
10584
10783
  versionsDayRunCount: "{{day}} / {{total}} \u6B21",
10585
- dependenciesAddGrant: "\u65B0\u589E\u6570\u636E\u8BBF\u95EE\u6388\u6743",
10586
- 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",
10587
- dependenciesAddGrantDialogTitle: "\u65B0\u589E\u6570\u636E\u6388\u6743",
10588
10784
  dependenciesApproveRequest: "\u6279\u51C6",
10589
- dependenciesConsumerProjectAria: "\u4F7F\u7528\u65B9\u9879\u76EE",
10590
- 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",
10591
- 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",
10592
- dependenciesConsumerProjectLabel: "\u4F7F\u7528\u65B9\u9879\u76EE",
10593
- dependenciesConsumerProjectPlaceholder: "\u641C\u7D22\u5E76\u9009\u62E9\u4F7F\u7528\u65B9\u9879\u76EE",
10594
- dependenciesConsumerProjectsUnavailableTitle: "\u4F7F\u7528\u65B9\u9879\u76EE\u4E0D\u53EF\u7528",
10595
- dependenciesCurrentConsumerProject: "\u5F53\u524D\u4F7F\u7528\u65B9\u9879\u76EE",
10596
- dependenciesDataAuthorized: "\u5DF2\u6388\u6743",
10597
- dependenciesDataAwaitingGrant: "\u5F85\u6388\u6743",
10598
- 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",
10599
- dependenciesDataGrantsTitle: "\u6570\u636E\u8BBF\u95EE\u6388\u6743",
10600
10785
  dependenciesDataInitialized: "\u5DF2\u6709\u6570\u636E",
10601
- dependenciesDataUnauthorized: "\u672A\u6388\u6743",
10602
10786
  dependenciesDataUninitialized: "\u672A\u521D\u59CB\u5316",
10603
10787
  dependenciesDeliveryExternal: "\u5916\u90E8\u4F9D\u8D56",
10604
10788
  dependenciesDeliveryIncluded: "\u968F\u7EC4\u4EA4\u4ED8",
10605
- dependenciesEditGrantDialogDescription: "\u66F4\u65B0 {{name}} \u53EF\u4EE5\u8BFB\u53D6\u7684 KV key \u524D\u7F00\u3002",
10606
- dependenciesEditGrantDialogTitle: "\u7F16\u8F91\u6570\u636E\u6388\u6743",
10607
- dependenciesEditGrantLabel: "\u7F16\u8F91 {{name}} \u7684\u6570\u636E\u6388\u6743",
10608
- 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",
10609
10790
  dependenciesEmptyTitle: "\u6CA1\u6709\u5F15\u7528\u9879\u76EE",
10610
- dependenciesGrantFieldsRequired: "\u8BF7\u9009\u62E9\u4F7F\u7528\u65B9\u9879\u76EE\uFF0C\u5E76\u81F3\u5C11\u586B\u5199\u4E00\u4E2A\u5141\u8BB8\u7684 key \u524D\u7F00\u3002",
10611
10791
  dependenciesHeaderActions: "\u64CD\u4F5C",
10612
- dependenciesHeaderAllowedPrefixes: "\u5141\u8BB8\u524D\u7F00",
10613
10792
  dependenciesHeaderAuthorizedUser: "\u5DF2\u6388\u6743\u7528\u6237",
10614
10793
  dependenciesHeaderCapability: "\u80FD\u529B",
10615
- dependenciesHeaderConsumerProject: "\u4F7F\u7528\u65B9\u9879\u76EE",
10616
- dependenciesHeaderDataGrant: "\u6570\u636E\u6388\u6743",
10617
10794
  dependenciesHeaderDelivery: "\u4EA4\u4ED8",
10618
10795
  dependenciesHeaderExactVersion: "\u7CBE\u786E\u7248\u672C",
10619
10796
  dependenciesHeaderGrantedAt: "\u6388\u6743\u65F6\u95F4",
@@ -10624,47 +10801,23 @@ var serverWeb2 = {
10624
10801
  dependenciesHeaderSourcePermission: "\u6E90\u7801\u6743\u9650",
10625
10802
  dependenciesHeaderSubmittedAt: "\u63D0\u4EA4\u65F6\u95F4",
10626
10803
  dependenciesHeaderUpdatedAt: "\u66F4\u65B0\u65F6\u95F4",
10627
- 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",
10628
- dependenciesKeyPrefixesLabel: "\u5141\u8BB8\u7684 key \u524D\u7F00",
10629
- dependenciesLoadDataGrantsFailed: "\u65E0\u6CD5\u8BFB\u53D6\u6570\u636E\u6388\u6743\u3002",
10630
- dependenciesLoadGrantableProjectsFailed: "\u65E0\u6CD5\u8BFB\u53D6\u53EF\u6388\u6743\u9879\u76EE\u3002",
10631
- dependenciesLoadPermissionsFailed: "\u65E0\u6CD5\u8BFB\u53D6\u9879\u76EE\u6743\u9650\u3002",
10632
10804
  dependenciesLoadSourceRequestsFailed: "\u65E0\u6CD5\u8BFB\u53D6\u6E90\u7801\u8BBF\u95EE\u7533\u8BF7\u3002",
10633
10805
  dependenciesLoadStatusFailed: "\u65E0\u6CD5\u8BFB\u53D6\u9879\u76EE\u4F9D\u8D56\u72B6\u6001\u3002",
10634
- dependenciesLoadingDataGrants: "\u6B63\u5728\u52A0\u8F7D\u6570\u636E\u6388\u6743",
10635
- dependenciesManagementUnavailableTitle: "\u7BA1\u7406\u6743\u9650\u4E0D\u53EF\u7528",
10636
- dependenciesNoDataGrantsDescription: "\u5F53\u524D\u9879\u76EE\u5C1A\u672A\u5411\u5176\u5B83\u9879\u76EE\u5F00\u653E KV \u524D\u7F00\u3002",
10637
- dependenciesNoDataGrantsTitle: "\u6CA1\u6709\u6570\u636E\u6388\u6743",
10638
- dependenciesNoGrantableConsumer: "\u6CA1\u6709\u53EF\u6388\u6743\u7684\u4F7F\u7528\u65B9\u9879\u76EE",
10639
- dependenciesNoMatchingProjects: "\u6CA1\u6709\u5339\u914D\u9879\u76EE",
10640
10806
  dependenciesNoPendingRequestsDescription: "\u4E0B\u8F7D\u8005\u901A\u8FC7\u77ED\u671F\u7533\u8BF7\u94FE\u63A5\u63D0\u4EA4\u540E\u4F1A\u663E\u793A\u5728\u8FD9\u91CC\u3002",
10641
10807
  dependenciesNoPendingRequestsTitle: "\u6CA1\u6709\u5F85\u5BA1\u6279\u7533\u8BF7",
10642
10808
  dependenciesNoSourceGrantsDescription: "\u9879\u76EE\u6210\u5458\u7684\u73B0\u6709\u6E90\u7801\u6743\u9650\u4E0D\u5728\u6B64\u8868\u91CD\u590D\u663E\u793A\u3002",
10643
10809
  dependenciesNoSourceGrantsTitle: "\u6CA1\u6709\u989D\u5916\u6E90\u7801\u6388\u6743",
10644
- 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",
10645
10811
  dependenciesNotReadyTitle: "\u5F53\u524D\u7248\u672C\u4F9D\u8D56\u672A\u5C31\u7EEA",
10646
- dependenciesOpenProjectName: "\u6253\u5F00 {{name}}",
10647
10812
  dependenciesOpenSourceProject: "\u6253\u5F00\u6765\u6E90\u9879\u76EE",
10648
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",
10649
- dependenciesProjectNameUnavailable: "\u540D\u79F0\u4E0D\u53EF\u8BFB\u53D6",
10650
- dependenciesProjectUnavailable: "\u9879\u76EE\u4E0D\u53EF\u7528",
10651
10814
  dependenciesRejectRequest: "\u62D2\u7EDD",
10652
10815
  dependenciesRequestSourceAccessLabel: "\u7533\u8BF7\u6E90\u7801\u6743\u9650",
10653
10816
  dependenciesRequestSourceAccessTitle: "\u7533\u8BF7\u4E0B\u8F7D\u6765\u6E90\u9879\u76EE\u6E90\u7801",
10654
- 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",
10655
- dependenciesRevokeGrantConfirmLabel: "\u64A4\u9500\u6388\u6743",
10656
- dependenciesRevokeGrantConfirmTitle: "\u64A4\u9500\u6570\u636E\u8BBF\u95EE\u6388\u6743",
10657
- dependenciesRevokeGrantLabel: "\u64A4\u9500 {{name}} \u7684\u6570\u636E\u6388\u6743",
10658
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",
10659
10818
  dependenciesRevokeSourceAccessConfirmLabel: "\u64A4\u9500\u6743\u9650",
10660
10819
  dependenciesRevokeSourceAccessConfirmTitle: "\u64A4\u9500\u6E90\u7801\u4E0B\u8F7D\u6743\u9650",
10661
10820
  dependenciesRevokeSourceAccessLabel: "\u64A4\u9500\u6E90\u7801\u6743\u9650",
10662
- dependenciesSaveChanges: "\u4FDD\u5B58\u4FEE\u6539",
10663
- dependenciesSaveGrant: "\u4FDD\u5B58\u6388\u6743",
10664
- dependenciesSaveGrantFailed: "\u4FDD\u5B58\u6570\u636E\u6388\u6743\u5931\u8D25\u3002",
10665
- dependenciesSearchConsumerProjectAria: "\u641C\u7D22\u4F7F\u7528\u65B9\u9879\u76EE",
10666
- dependenciesSearchProjectPlaceholder: "\u641C\u7D22\u9879\u76EE\u540D\u79F0\u6216\u7C7B\u578B",
10667
- dependenciesSelectedConsumerUnavailable: "\u6240\u9009\u4F7F\u7528\u65B9\u9879\u76EE\u5DF2\u4E0D\u53EF\u7528\uFF0C\u8BF7\u91CD\u65B0\u9009\u62E9\u3002",
10668
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",
10669
10822
  dependenciesServerDataUninitializedTitle: "\u9879\u76EE\u5DF2\u90E8\u7F72\uFF0CServer \u6570\u636E\u5C1A\u672A\u521D\u59CB\u5316",
10670
10823
  dependenciesSourceCodeMissing: "\u6E90\u7801\u7F3A\u5931",
@@ -10680,8 +10833,63 @@ var serverWeb2 = {
10680
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",
10681
10834
  dependenciesVersionCardTitle: "\u5F53\u524D\u9879\u76EE\u7248\u672C\u4F9D\u8D56",
10682
10835
  dependenciesVersionUnlocked: "\u4E0D\u9501\u5B9A",
10683
- projectSettingsDependenciesEntryDescription: "\u68C0\u67E5\u7CBE\u786E\u4F9D\u8D56\u9501\u3001KV \u6570\u636E\u6388\u6743\u548C\u6E90\u7801\u8BBF\u95EE\u7533\u8BF7\u3002",
10684
- 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",
10685
10893
  sourceAccessBackToProjects: "\u8FD4\u56DE\u9879\u76EE\u5DE5\u4F5C\u53F0",
10686
10894
  sourceAccessCheckingLink: "\u6B63\u5728\u6821\u9A8C\u7533\u8BF7\u94FE\u63A5",
10687
10895
  sourceAccessCurrentStatus: "\u5F53\u524D\u72B6\u6001\uFF1A{{status}}",
@@ -10739,6 +10947,20 @@ var server2 = {
10739
10947
  terminalNotEnabled: "\u670D\u52A1\u5668\u672A\u542F\u7528\u8FDC\u7A0B\u7EC8\u7AEF\u3002\u8BF7\u8BBE\u7F6E WORKFLOW_SERVER_TERMINAL_ENABLED=1\u3002",
10740
10948
  requestBodyTooLarge: "\u8BF7\u6C42\u4F53\u8FC7\u5927\u3002",
10741
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",
10742
10964
  scheduleDeleteActive: "\u5B9A\u65F6\u4EFB\u52A1\u5B58\u5728\u6D3B\u8DC3\u89E6\u53D1\u65F6\u4E0D\u80FD\u5220\u9664\u3002",
10743
10965
  scheduleExactVersionRequired: "Server \u5B9A\u65F6\u4EFB\u52A1\u5FC5\u987B\u4F7F\u7528\u7CBE\u786E\u7684\u5DF2\u53D1\u5E03\u7248\u672C\u3002",
10744
10966
  schedulerStopping: "\u5B9A\u65F6\u4EFB\u52A1\u8C03\u5EA6\u5668\u6B63\u5728\u505C\u6B62\u3002",
@@ -10747,7 +10969,11 @@ var server2 = {
10747
10969
  schedulePostgresStorageRequired: "\u5B9A\u65F6\u4EFB\u52A1\u9700\u8981 PostgreSQL \u5B58\u50A8\u3002",
10748
10970
  scheduleTargetChanged: "\u5B9A\u65F6\u4EFB\u52A1\u76EE\u6807\u5DF2\u65E0\u6CD5\u7CBE\u786E\u89E3\u6790\u3002",
10749
10971
  scheduleUpdateActive: "\u5B9A\u65F6\u4EFB\u52A1\u5B58\u5728\u6D3B\u8DC3\u89E6\u53D1\u65F6\u4E0D\u80FD\u66F4\u65B0\u3002",
10750
- 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",
10751
10977
  scheduleUserRequired: "\u7BA1\u7406 Workflow \u5B9A\u65F6\u4EFB\u52A1\u9700\u8981\u7528\u6237\u8D26\u53F7\u3002",
10752
10978
  scheduleServerUnavailable: "\u5F53\u524D Server \u4E0D\u652F\u6301 Workflow \u5B9A\u65F6\u4EFB\u52A1\u3002",
10753
10979
  sourceAccessStatusInvalid: 'status \u5FC5\u987B\u662F "approved" \u6216 "rejected"\u3002',
@@ -10759,15 +10985,13 @@ var server2 = {
10759
10985
  projectGroupRootArchiveType: "\u9879\u76EE\u7EC4\u6839\u5F52\u6863\u5FC5\u987B\u5305\u542B Kanban \u9879\u76EE\u3002",
10760
10986
  projectGroupPreviousLockMismatch: "\u4E4B\u524D\u53D1\u5E03\u7684 Kanban \u6839\u9879\u76EE\u4F7F\u7528\u4E86\u4E0D\u540C\u7684\u4F9D\u8D56\u9501\u3002",
10761
10987
  projectGroupImmutableDownload: "\u9879\u76EE\u7EC4\u53EA\u80FD\u4E0B\u8F7D\u4E0D\u53EF\u53D8\u7684\u5DF2\u53D1\u5E03\u7248\u672C\u3002",
10762
- dataGrantSourceType: "\u6570\u636E\u6388\u6743\u6765\u6E90\u5FC5\u987B\u662F\u5DF2\u5B58\u5728\u7684 Workflow \u9879\u76EE\u3002",
10763
- dataGrantConsumerType: "\u6570\u636E\u6388\u6743\u4F7F\u7528\u65B9\u5FC5\u987B\u662F\u5DF2\u5B58\u5728\u7684 Kanban \u9879\u76EE\u3002",
10764
10988
  sourceAccessReasonLength: "\u6E90\u7801\u8BBF\u95EE\u7533\u8BF7\u539F\u56E0\u5FC5\u987B\u5305\u542B 2 \u5230 1000 \u4E2A\u5B57\u7B26\u3002",
10765
10989
  sourceAccessLinkInvalid: "\u9879\u76EE\u6E90\u7801\u8BBF\u95EE\u7533\u8BF7\u94FE\u63A5\u65E0\u6548\u6216\u5DF2\u8FC7\u671F\u3002",
10766
10990
  projectGroupRootMissing: "\u7F3A\u5C11\u9879\u76EE\u7EC4\u6839\u9879\u76EE\u3002",
10767
10991
  projectGroupDraftChanged: "\u9879\u76EE\u7EC4\u4F9D\u8D56\u6E05\u5355\u5DF2\u4E0E Kanban \u6839\u8349\u7A3F\u4E0D\u4E00\u81F4\u3002",
10768
10992
  projectDependencyStorageUnavailable: "\u9879\u76EE\u4F9D\u8D56\u4EA4\u4ED8\u9700\u8981 PostgreSQL \u5B58\u50A8\u3002",
10769
- dependencyLocksKanbanOnly: "\u53EA\u6709 Kanban \u9879\u76EE\u53EF\u4EE5\u53D1\u5E03\u6570\u636E\u6E90\u4F9D\u8D56\u9501\u3002",
10770
- 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",
10771
10995
  schedulesWorkflowOnly: "\u5B9A\u65F6\u4EFB\u52A1\u53EA\u80FD\u4EE5 Workflow \u9879\u76EE\u4E3A\u76EE\u6807\u3002",
10772
10996
  conversationEntrypointForbidden: "Conversation \u9879\u76EE\u4E0D\u63A5\u53D7 entrypointId\u3002",
10773
10997
  targetBuildRequired: "\u76EE\u6807\u5C1A\u672A\u6210\u529F\u6784\u5EFA\u3002",
@@ -10776,8 +11000,6 @@ var server2 = {
10776
11000
  archiveInspectFailed: "\u68C0\u67E5 tar.gz \u5305\u5931\u8D25\u3002",
10777
11001
  archiveEntryLimit: "\u5F52\u6863\u5305\u542B\u7684\u6761\u76EE\u8FC7\u591A\u3002",
10778
11002
  archiveExpandedSizeLimit: "\u5F52\u6863\u89E3\u538B\u540E\u7684\u5927\u5C0F\u8D85\u8FC7 512 MB \u9650\u5236\u3002",
10779
- dataGrantPrefixCount: "\u6570\u636E\u6388\u6743\u5FC5\u987B\u5305\u542B 1 \u5230 32 \u4E2A key \u524D\u7F00\u3002",
10780
- dataGrantPrefixDuplicates: "\u6570\u636E\u6388\u6743 keyPrefixes \u4E0D\u80FD\u5305\u542B\u91CD\u590D\u9879\u3002",
10781
11003
  accountCreateDeploymentRequired: "\u521B\u5EFA\u9879\u76EE\u90E8\u7F72\u9700\u8981\u7528\u6237\u8D26\u53F7\u3002",
10782
11004
  accountViewSourceRequestRequired: "\u67E5\u770B\u9879\u76EE\u6E90\u7801\u8BBF\u95EE\u7533\u8BF7\u9700\u8981\u7528\u6237\u8D26\u53F7\u3002",
10783
11005
  accountRequestSourceAccessRequired: "\u7533\u8BF7\u9879\u76EE\u6E90\u7801\u8BBF\u95EE\u9700\u8981\u7528\u6237\u8D26\u53F7\u3002",
@@ -10804,17 +11026,14 @@ var server2 = {
10804
11026
  workflowReservationUnavailable: "Workflow\u201C{{workflowId}}\u201D\u6682\u65F6\u65E0\u6CD5\u9884\u7559\u7248\u672C\u3002",
10805
11027
  workflowReservationChanged: "Workflow\u201C{{workflowId}}\u201D\u7684\u7248\u672C\u9884\u7559\u5DF2\u53D8\u5316\u3002",
10806
11028
  workflowDraftChanged: "Workflow\u201C{{workflowId}}\u201D\u7684\u8349\u7A3F\u5728\u90E8\u7F72\u51C6\u5907\u540E\u53D1\u751F\u4E86\u53D8\u5316\u3002",
10807
- 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",
10808
11030
  versionDependencyLockInvalid: "Workflow\u201C{{workflowId}}\u201D\u7248\u672C\u201C{{version}}\u201D\u7684\u4F9D\u8D56\u9501\u65E0\u6548\u3002",
10809
11031
  projectNotExecutable: "\u9879\u76EE\u201C{{projectName}}\u201D\u4E0D\u53EF\u6267\u884C\u3002",
10810
11032
  archiveEntrySizeInvalid: "\u5F52\u6863\u6761\u76EE\u201C{{path}}\u201D\u7684\u5927\u5C0F\u65E0\u6548\u3002",
10811
11033
  scheduleIdInvalid: "Workflow \u5B9A\u65F6\u4EFB\u52A1 ID\u201C{{scheduleId}}\u201D\u65E0\u6548\u3002",
10812
- dataGrantPrefixType: "\u6570\u636E\u6388\u6743 keyPrefixes[{{index}}] \u5FC5\u987B\u662F\u5B57\u7B26\u4E32\u3002",
10813
- dataGrantPrefixInvalid: "\u6570\u636E\u6388\u6743 keyPrefixes[{{index}}] \u65E0\u6548\u3002",
10814
11034
  unknownEntrypoint: "Workflow\u201C{{workflowId}}\u201D\u4E2D\u4E0D\u5B58\u5728\u5165\u53E3\u201C{{entrypointId}}\u201D\u3002",
10815
11035
  entrypointResumeLocked: "\u6062\u590D\u7B49\u5F85\u4E2D\u7684 Run \u65F6\u4E0D\u80FD\u66F4\u6539\u5165\u53E3\u3002",
10816
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",
10817
- kanbanDataSourceUnauthorized: "Kanban \u6570\u636E\u6E90\u201C{{sourceId}}\u201D\u672A\u83B7\u5171\u4EAB\u6388\u6743\u3002",
10818
11037
  workflowOwnedByAnotherAccount: "Workflow\u201C{{workflowId}}\u201D\u5DF2\u5B58\u5728\u4E14\u5F52\u5176\u5B83\u8D26\u53F7\u6240\u6709\u3002",
10819
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",
10820
11039
  workflowDraftServerDisabled: "Workflow\u201C{{workflowId}}\u201D\u8349\u7A3F\u672A\u542F\u7528 Server \u6267\u884C\u3002",
@@ -10828,7 +11047,7 @@ var server2 = {
10828
11047
  var cli2 = {
10829
11048
  rootHelp: [
10830
11049
  "\u7528\u6CD5\uFF1A",
10831
- " 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]",
10832
11051
  " workflow-code [--locale <zh-CN|en>] workspace <command> [args]",
10833
11052
  "",
10834
11053
  "\u672C\u5730\u547D\u4EE4\uFF1A",
@@ -10836,6 +11055,7 @@ var cli2 = {
10836
11055
  " json \u5728\u672C\u5730\u8FD0\u884C\u5E76\u8F93\u51FA JSON \u62A5\u544A",
10837
11056
  " structure \u67E5\u770B workflow \u7ED3\u6784",
10838
11057
  " resolve-params \u89E3\u6790\u52A8\u6001 workflow \u53C2\u6570",
11058
+ " mcp \u901A\u8FC7 stdio MCP \u66B4\u9732 workflow entrypoint",
10839
11059
  "",
10840
11060
  "\u5DE5\u4F5C\u533A\u547D\u4EE4\uFF1A",
10841
11061
  " login, logout, status, health, pack, upload, preparation,",
@@ -10846,10 +11066,24 @@ var cli2 = {
10846
11066
  "",
10847
11067
  "\u8FD0\u884C `workflow-code workspace --help` \u67E5\u770B\u5DE5\u4F5C\u533A\u547D\u4EE4\u8BE6\u60C5\u3002"
10848
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"),
10849
11083
  localHelp: [
10850
11084
  "\u7528\u6CD5\uFF1A",
10851
- " workflow-code [--locale <zh-CN|en>] run [workflow-dir] [--] [...args]",
10852
- " 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]",
10853
11087
  " workflow-code json [workflow-dir] --conversation-id <id> [--] [...args]",
10854
11088
  " workflow-code structure [workflow-dir]",
10855
11089
  " workflow-code resolve-params [workflow-dir] < request.json",
@@ -10860,7 +11094,10 @@ var cli2 = {
10860
11094
  " workflow-code json . -- --target aliyun --dry-run",
10861
11095
  " workflow-code json . --run-id <id> --resolved-user-inputs-json <json> -- [...args]",
10862
11096
  " workflow-code structure .",
10863
- " 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"
10864
11101
  ].join("\n"),
10865
11102
  workspaceHelp: [
10866
11103
  "\u7528\u6CD5\uFF1Aworkflow-code [--locale <zh-CN|en>] workspace <command> [args]",
@@ -10874,10 +11111,10 @@ var cli2 = {
10874
11111
  " status",
10875
11112
  " health",
10876
11113
  " pack <workflow> [--path <workflow-dir>] [--output <file.tgz>] [--project-group] [--dependency <alias>=<path>]",
10877
- " 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>]",
10878
11115
  " preparation <workflow-id> <job-id>",
10879
11116
  " download <workflow> [--target draft|latest|version] [--path <dir>]",
10880
- " 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>]",
10881
11118
  " publish --deployment <id>",
10882
11119
  " run <workflow> [...args] [--target draft|latest|version] [--entrypoint <id>]",
10883
11120
  " debug-node <workflow> <node> [...args] [--target draft|latest|version] [--entrypoint <id>]",
@@ -10903,10 +11140,12 @@ var cli2 = {
10903
11140
  invalidResolvedInput: "\u7528\u6237\u8F93\u5165\u6062\u590D\u9879\u65E0\u6548\u3002",
10904
11141
  loginRequiresServer: "login \u547D\u4EE4\u9700\u8981 --server\u3002",
10905
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}}",
10906
- 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",
10907
11144
  archiveCreateFailed: "\u521B\u5EFA\u5F52\u6863\u5931\u8D25\uFF1A{{details}}",
10908
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',
10909
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",
10910
11149
  packageMustBeObject: 'Workflow \u5305 "{{path}}" \u5FC5\u987B\u5305\u542B JSON \u5BF9\u8C61\u3002',
10911
11150
  packageReadFailed: '\u65E0\u6CD5\u8BFB\u53D6 Workflow \u5305 "{{path}}"\u3002',
10912
11151
  packageStringRequired: 'Workflow package.json \u5FC5\u987B\u5305\u542B\u5B57\u7B26\u4E32\u5B57\u6BB5 "{{key}}"\u3002',
@@ -10929,16 +11168,13 @@ var cli2 = {
10929
11168
  forbiddenBlocked: "403: \u5F53\u524D\u8D26\u53F7\u5DF2\u88AB\u8BE5\u9879\u76EE\u7981\u6B62\u8FD0\u884C\u3002",
10930
11169
  forbiddenNoPermission: "403: \u5F53\u524D\u8D26\u53F7\u5BF9\u8BE5\u9879\u76EE\u6CA1\u6709\u8DB3\u591F\u6743\u9650\u3002",
10931
11170
  forbiddenFallback: "403: {{message}}",
10932
- dependencyMustBeWorkflow: "\u4F9D\u8D56 {{sourceId}} \u5FC5\u987B\u662F Workflow \u9879\u76EE\u3002",
10933
11171
  dependencyOptionCommandUnsupported: "--dependency \u4EC5\u652F\u6301 pack\u3001upload \u548C publish \u547D\u4EE4\u3002",
10934
- 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",
10935
11173
  dependencyProjectPathConflict: "\u9879\u76EE {{projectId}} \u88AB\u6620\u5C04\u5230\u4E86\u591A\u4E2A\u4F9D\u8D56\u8DEF\u5F84\u3002",
10936
11174
  deploymentCommandUnsupported: "--deployment \u4EC5\u652F\u6301 publish \u547D\u4EE4\u3002",
10937
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",
10938
- duplicateDependencySource: "--dependency \u7684\u6570\u636E\u6E90 id {{sourceId}} \u91CD\u590D\u3002",
10939
- duplicateGrantDataAccessSource: "--grant-data-access \u7684\u6570\u636E\u6E90 id {{sourceId}} \u91CD\u590D\u3002",
10940
- grantDataAccessCommandUnsupported: "--grant-data-access \u4EC5\u652F\u6301 upload \u548C publish \u547D\u4EE4\u3002",
10941
- 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",
10942
11178
  noWaitCommandUnsupported: "--no-wait \u4EC5\u652F\u6301 upload \u547D\u4EE4\u3002",
10943
11179
  noWaitProjectGroupUnsupported: "\u9879\u76EE\u7EC4\u4E0A\u4F20\u4E0D\u652F\u6301 --no-wait\u3002",
10944
11180
  projectGroupArchiveCreateFailed: "\u521B\u5EFA\u9879\u76EE\u7EC4\u5F52\u6863\u5931\u8D25\uFF1A{{details}}",
@@ -10955,9 +11191,8 @@ var cli2 = {
10955
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",
10956
11192
  projectGroupDownloadRootPackageInvalidJson: "\u670D\u52A1\u5668\u9879\u76EE\u7EC4\u6839\u9879\u76EE\u7684 package.json \u4E0D\u662F\u6709\u6548 JSON\u3002",
10957
11193
  projectGroupDownloadRootPackageUtf8: "\u670D\u52A1\u5668\u9879\u76EE\u7EC4\u6839\u9879\u76EE\u7684 package.json \u5FC5\u987B\u662F UTF-8 \u6587\u672C\u3002",
10958
- 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",
10959
11195
  projectGroupDownloadRootVersionMismatch: "\u670D\u52A1\u5668\u9879\u76EE\u7EC4\u6839\u7248\u672C\u4E0E\u4E0B\u8F7D\u8BA1\u5212\u4E0D\u4E00\u81F4\u3002",
10960
- projectGroupDownloadSelfReference: "\u670D\u52A1\u5668\u9879\u76EE\u7EC4\u6570\u636E\u6E90 {{sourceId}} \u4E0D\u80FD\u5F15\u7528\u6839 Kanban \u9879\u76EE\u81EA\u8EAB\u3002",
10961
11196
  projectGroupDownloadSourceHashMismatch: "\u670D\u52A1\u5668\u9879\u76EE\u7EC4 {{role}} \u9879\u76EE {{projectId}} \u7684\u6E90\u7801\u54C8\u5E0C\u4E0E\u6587\u4EF6\u4E0D\u4E00\u81F4\u3002",
10962
11197
  projectGroupDownloadUndeclaredDependency: "\u670D\u52A1\u5668\u9879\u76EE\u7EC4\u4E0B\u8F7D\u7ED3\u679C\u5305\u542B\u672A\u58F0\u660E\u7684\u4F9D\u8D56\u9879\u76EE {{projectId}}\u3002",
10963
11198
  projectGroupDownloadedPackageIdMismatch: "\u5DF2\u4E0B\u8F7D\u9879\u76EE\u7684 package id \u4E0E {{projectId}} \u4E0D\u4E00\u81F4\u3002",
@@ -10965,11 +11200,11 @@ var cli2 = {
10965
11200
  projectGroupRequiredPathForbidden: "\u9879\u76EE\u7EC4\u5FC5\u9700\u8DEF\u5F84 {{path}} \u5C5E\u4E8E\u7981\u6B62\u4F20\u8F93\u7684\u5BBF\u4E3B\u6570\u636E\u3002",
10966
11201
  projectGroupRootIdRequired: "\u9879\u76EE\u7EC4\u6839\u9879\u76EE\u7684 package.json \u5FC5\u987B\u5305\u542B UUID \u683C\u5F0F\u7684 id\u3002",
10967
11202
  projectGroupRootMustBeKanban: "\u9879\u76EE\u7EC4\u6839\u9879\u76EE\u5FC5\u987B\u662F Kanban \u9879\u76EE\u3002",
10968
- 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",
10969
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",
10970
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",
10971
11206
  publishGroupCommandUnsupported: "--publish-group \u4EC5\u652F\u6301 upload \u547D\u4EE4\u3002",
10972
- unknownGrantDataAccessSource: "\u672A\u77E5\u7684 --grant-data-access \u6570\u636E\u6E90 id {{sourceId}}\u3002"
11207
+ unknownWorkspaceOption: "\u672A\u77E5\u7684 workspace \u9009\u9879\uFF1A{{option}}"
10973
11208
  };
10974
11209
 
10975
11210
  // .shared/i18n/resources/zh/permissions.ts
@@ -11213,66 +11448,11 @@ function readErrorMessage(value) {
11213
11448
  return visit(value);
11214
11449
  }
11215
11450
 
11216
- // src/locale.ts
11217
- import { WORKFLOW_RUNTIME_LOCALE_ENV } from "workflow-code";
11218
- function prepareCliInvocation(argv) {
11219
- initI18n({ preference: resolveSystemLocalePreference() });
11220
- const extracted = extractLocaleOption(argv);
11221
- const requestedLocale = extracted.locale ?? readEnvironmentLocale();
11222
- if (requestedLocale !== void 0) {
11223
- if (!isSupportedLocale(requestedLocale)) {
11224
- throw new Error(i18n.t("invalidLocale", {
11225
- ns: "cli",
11226
- value: requestedLocale
11227
- }));
11228
- }
11229
- initI18n({ preference: requestedLocale });
11230
- }
11231
- const locale = normalizeLocale(i18n.language);
11232
- process.env[WORKFLOW_RUNTIME_LOCALE_ENV] = locale;
11233
- return {
11234
- argv: extracted.argv,
11235
- locale
11236
- };
11237
- }
11238
- function extractLocaleOption(argv) {
11239
- const filtered = [];
11240
- let locale;
11241
- for (let index = 0; index < argv.length; index += 1) {
11242
- const arg = argv[index];
11243
- if (arg === "--") {
11244
- filtered.push(...argv.slice(index));
11245
- break;
11246
- }
11247
- if (arg === "--locale" || arg.startsWith("--locale=")) {
11248
- if (locale !== void 0) {
11249
- throw new Error(i18n.t("duplicateLocale", { ns: "cli" }));
11250
- }
11251
- const value = arg === "--locale" ? argv[++index] : arg.slice("--locale=".length);
11252
- if (value === void 0 || value.trim() === "") {
11253
- throw new Error(i18n.t("missingOptionValue", { ns: "cli", name: "--locale" }));
11254
- }
11255
- locale = value;
11256
- continue;
11257
- }
11258
- filtered.push(arg);
11259
- }
11260
- return { argv: filtered, locale };
11261
- }
11262
- function readEnvironmentLocale() {
11263
- const value = process.env.WORKFLOW_CODE_LOCALE?.trim();
11264
- return value === "" ? void 0 : value;
11265
- }
11266
- function resolveSystemLocalePreference() {
11267
- const systemLocale = process.env.LC_ALL ?? process.env.LANG;
11268
- return systemLocale?.trim() ? normalizeLocale(systemLocale) : "system";
11269
- }
11270
-
11271
11451
  export {
11272
- __commonJS,
11273
- __toESM,
11452
+ isSupportedLocale,
11274
11453
  i18n,
11454
+ normalizeLocale,
11455
+ initI18n,
11275
11456
  getCurrentLocale,
11276
- translateWorkflowCodeError,
11277
- prepareCliInvocation
11457
+ translateWorkflowCodeError
11278
11458
  };