@nexusclawhq/cli 0.3.47 → 0.3.49

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.
Files changed (23) hide show
  1. package/dist/build-info.json +4 -4
  2. package/dist/nexus-cli/node_modules/@nexusclaw/shared/dist/locales/en-US.d.ts +335 -15
  3. package/dist/nexus-cli/node_modules/@nexusclaw/shared/dist/locales/en-US.js +350 -30
  4. package/dist/nexus-cli/node_modules/@nexusclaw/shared/dist/locales/en-US.js.map +1 -1
  5. package/dist/nexus-cli/node_modules/@nexusclaw/shared/dist/locales/index.d.ts +670 -30
  6. package/dist/nexus-cli/node_modules/@nexusclaw/shared/dist/locales/zh-CN.d.ts +335 -15
  7. package/dist/nexus-cli/node_modules/@nexusclaw/shared/dist/locales/zh-CN.js +350 -30
  8. package/dist/nexus-cli/node_modules/@nexusclaw/shared/dist/locales/zh-CN.js.map +1 -1
  9. package/dist/nexus-cli/src/commands/org/login-jwt.d.ts +8 -0
  10. package/dist/nexus-cli/src/commands/org/login-jwt.js +33 -2
  11. package/dist/nexus-cli/src/commands/org/login-jwt.js.map +1 -1
  12. package/dist/nexus-cli/src/commands/org/login-jwt.test.js +20 -0
  13. package/dist/nexus-cli/src/commands/org/login-jwt.test.js.map +1 -1
  14. package/dist/nexus-cli/src/services/workforce-observe-remote.d.ts +2 -1
  15. package/dist/nexus-cli/src/services/workforce-observe-remote.js +12 -5
  16. package/dist/nexus-cli/src/services/workforce-observe-remote.js.map +1 -1
  17. package/dist/nexus-cli/src/services/workforce-observe-remote.test.js +5 -0
  18. package/dist/nexus-cli/src/services/workforce-observe-remote.test.js.map +1 -1
  19. package/dist/nexus-cli/src/services/workforce-test-remote.d.ts +1 -1
  20. package/dist/nexus-cli/src/services/workforce-test-remote.js +1 -1
  21. package/dist/nexus-cli/src/services/workforce-test-remote.test.js +2 -2
  22. package/dist/tsconfig.tsbuildinfo +1 -1
  23. package/package.json +1 -1
@@ -772,6 +772,22 @@ const messages = {
772
772
  confidenceChipTooltip: "Evidence-strength tier preset by signal type. Actual release still requires the test, simulation, and approval gates.",
773
773
  riskChipTooltip: "Risk level: L0 is the lowest, increasing by level.",
774
774
  draftIntroHint: "This is a draft candidate auto-generated from real work evidence; it does not change any production artifact. It takes effect only after passing the test, simulation, and approval gates.",
775
+ changeSummary: "Proposed improvement",
776
+ changeReason: "Why handle this now",
777
+ releaseProgress: "Readiness progress",
778
+ nextStep: "Recommended next step",
779
+ viewAndHandle: "Review and act",
780
+ businessScope: "Affected scope",
781
+ technicalDetails: "Technical and audit details",
782
+ evidenceCount: "{count} work evidence item(s) cited",
783
+ evidenceIds: "Raw evidence IDs",
784
+ actionHintBehavior: "Move into draft, run a simulation, then complete approval.",
785
+ actionHintMaterialize: "Create a governed candidate before testing and approval.",
786
+ actionHintBlocked: "Blocked. Add evidence or resolve the release-gate issue first.",
787
+ stepDraft: "Draft",
788
+ stepSimulation: "Simulation",
789
+ stepApproval: "Approval",
790
+ stepPublish: "Publish",
775
791
  runSimulation: "Run simulation",
776
792
  runSimulationTooltip: "Run a real test suite simulation to check if it passes the release gate.",
777
793
  runSimulationSuccess: "Simulation completed",
@@ -1906,6 +1922,18 @@ const messages = {
1906
1922
  planStarterName: "Starter",
1907
1923
  planGrowthName: "Growth",
1908
1924
  planEnterpriseName: "Enterprise",
1925
+ planStarterFeature1: "2M tokens / month included",
1926
+ planStarterFeature2: "20 GB data storage",
1927
+ planStarterFeature3: "For small teams launching their first digital employees",
1928
+ planStarterFeature4: "Outcome attribution pilot with billing details",
1929
+ planGrowthFeature1: "10M tokens / month included",
1930
+ planGrowthFeature2: "100 GB data storage",
1931
+ planGrowthFeature3: "For multi-agent daily business operations",
1932
+ planGrowthFeature4: "Outcome attribution pilot with billing details",
1933
+ planEnterpriseFeature1: "50M tokens / month included",
1934
+ planEnterpriseFeature2: "1 TB data storage",
1935
+ planEnterpriseFeature3: "Custom token / storage / API quotas",
1936
+ planEnterpriseFeature4: "Enterprise governance, audit, and dedicated delivery",
1909
1937
  upgrade: "Upgrade",
1910
1938
  invoiceHistory: "Invoice History",
1911
1939
  invoicePeriod: "Period",
@@ -2683,6 +2711,7 @@ const messages = {
2683
2711
  aiKcUpdateOk: "Knowledge chunk updated",
2684
2712
  aiKcDeleteOk: "Deleted",
2685
2713
  aiKcDeleteConfirm: "Confirm delete?",
2714
+ aiKcDeleteFailed: "Delete failed. Please try again.",
2686
2715
  aiSopStatusDraft: "Draft",
2687
2716
  aiSopStatusReviewed: "Reviewed",
2688
2717
  aiSopStatusActive: "Active",
@@ -2953,7 +2982,7 @@ const messages = {
2953
2982
  webhooks: {
2954
2983
  dlq: "Dead Letter Queue",
2955
2984
  title: "Webhooks",
2956
- description: "Configure Webhook endpoints to receive asynchronous event notifications",
2985
+ description: "Configure Webhook endpoints to deliver asynchronous event notifications to external systems",
2957
2986
  create: "Create Webhook",
2958
2987
  healthMonitor: "Health Monitor",
2959
2988
  healthTotalWebhooks: "Total Webhooks",
@@ -2980,6 +3009,7 @@ const messages = {
2980
3009
  emptyHint: 'Click "Create Webhook" to configure your first endpoint',
2981
3010
  totalCount: "Total {total} Webhooks",
2982
3011
  actionTest: "Test",
3012
+ actionEdit: "Edit",
2983
3013
  actionDisable: "Disable",
2984
3014
  actionEnable: "Enable",
2985
3015
  actionDelete: "Delete",
@@ -2989,11 +3019,14 @@ const messages = {
2989
3019
  msgDeleted: "Webhook deleted",
2990
3020
  msgDeleteFailed: "Delete failed",
2991
3021
  msgCreated: "Webhook created",
3022
+ msgUpdated: "Webhook updated",
2992
3023
  msgCreateFailed: "Create failed",
3024
+ msgUpdateFailed: "Update failed",
2993
3025
  msgTesting: "Sending test request...",
2994
3026
  msgTestSent: "Test request sent",
2995
3027
  msgTestFailed: "Test failed",
2996
3028
  createTitle: "Create Webhook",
3029
+ editTitle: "Edit Webhook",
2997
3030
  fieldTargetUrl: "Target URL",
2998
3031
  fieldTargetUrlRequired: "Please enter Webhook URL",
2999
3032
  fieldTargetUrlInvalid: "Please enter a valid URL",
@@ -3004,6 +3037,7 @@ const messages = {
3004
3037
  fieldOperationsPlaceholder: "Select events to subscribe",
3005
3038
  btnCancel: "Cancel",
3006
3039
  btnCreate: "Create",
3040
+ btnSave: "Save",
3007
3041
  btnDelete: "Delete",
3008
3042
  deleteConfirmTitle: "Confirm Delete",
3009
3043
  deleteConfirmText: "Are you sure you want to delete this Webhook?",
@@ -4481,6 +4515,16 @@ const messages = {
4481
4515
  pickEmployee: "Choose an AI employee",
4482
4516
  searchEmployee: "Search AI employees",
4483
4517
  online: "Online · Voice/text/video available",
4518
+ selectEmployeeTitle: "Choose an AI employee to rehearse",
4519
+ selectEmployeeDescription: "Select an employee on the left, then use a real task to verify understanding, responses, and governed actions.",
4520
+ sessionGoalTitle: "Rehearsing: {name}",
4521
+ sessionGoalDescription: "Goal for this round: {description}. Give the employee a real task. The system will ask for confirmation before writes or sensitive actions.",
4522
+ defaultEmployeeGoal: "verify that this employee understands the task and produces a usable result",
4523
+ sessionResultTitle: "This round has produced a valid rehearsal result",
4524
+ sessionResultDescription: "Choose 'Finish and start a new rehearsal' to close this conversation and save its learning record for the employee. Use Test Center for standardized validation, or Executions to inspect real task activity.",
4525
+ finishAndStartNew: "Finish and start new rehearsal",
4526
+ openTestCenter: "Open Test Center",
4527
+ openExecutions: "View executions",
4484
4528
  modeVoice: "Voice/Text",
4485
4529
  modeVideo: "Video",
4486
4530
  servingCustomer: "Serving customer: {name} · Long-term memory loaded",
@@ -5099,6 +5143,9 @@ const messages = {
5099
5143
  commentLabel: "Comments",
5100
5144
  rejectReasonRequired: "Please provide a rejection reason",
5101
5145
  approveCommentPlaceholder: "Optional, add approval comments",
5146
+ statusNeedsConfirmation: "Status needs confirmation",
5147
+ valueListSummary: "Contains {count} items",
5148
+ valueObjectSummary: "Contains {count} fields",
5102
5149
  riskLevel: {
5103
5150
  critical: "Critical Risk",
5104
5151
  high: "High Risk",
@@ -6885,6 +6932,7 @@ const messages = {
6885
6932
  editInstruction: "Edit instruction",
6886
6933
  evidenceRequired: "Evidence required",
6887
6934
  executionHistory: "Execution history",
6935
+ externalConversations: "External channel conversations",
6888
6936
  executionIdentity: "Execution identity and authority",
6889
6937
  executionSteps: "Execution steps",
6890
6938
  executionStepsEmpty: "Waiting for tool call records.",
@@ -9468,6 +9516,7 @@ const messages = {
9468
9516
  colTest: "Test",
9469
9517
  testConnection: "Test Connection",
9470
9518
  testProviderAria: "Test Provider connection",
9519
+ noExecutableTestTarget: "The current model has no executable connection test capability",
9471
9520
  colActions: "Actions",
9472
9521
  systemProviderNoEdit: "Platform-provided Providers cannot be edited or deleted",
9473
9522
  confirmDeleteProvider: "Delete this Provider?",
@@ -12797,6 +12846,10 @@ const messages = {
12797
12846
  },
12798
12847
  },
12799
12848
  formulaFieldUi: {
12849
+ completion: {
12850
+ fieldsSection: "Fields",
12851
+ functionsSection: "Functions",
12852
+ },
12800
12853
  batchRecalculate: {
12801
12854
  title: "Batch Recalculate Formula Field",
12802
12855
  skip: "Skip",
@@ -12853,7 +12906,6 @@ const messages = {
12853
12906
  categoriesAriaLabel: "Formula function categories",
12854
12907
  categoryFunctionsAriaLabel: "{category} functions",
12855
12908
  },
12856
- completion: {},
12857
12909
  },
12858
12910
  navigationUi: {
12859
12911
  searchPlaceholder: "Search...",
@@ -17048,19 +17100,44 @@ const messages = {
17048
17100
  adminPanel: "Admin Panel",
17049
17101
  adminHealth: {
17050
17102
  indicators: {
17051
- database: {},
17052
- redis: {},
17103
+ database: {
17104
+ label: "Database",
17105
+ description: "Business database connectivity and core table health.",
17106
+ error: "Database connection issue; check the instance status and connection pool.",
17107
+ },
17108
+ redis: {
17109
+ label: "Redis Cache",
17110
+ description: "Redis status backing cache and queues.",
17111
+ error: "Redis connection issue; check the instance and network connectivity.",
17112
+ },
17053
17113
  worker: {
17054
17114
  label: "Background Job Worker",
17055
17115
  description: "Worker and queue status for asynchronous platform jobs.",
17056
17116
  error: "The agent execution queue is not initialized.",
17057
17117
  },
17058
- connectedAccount: {},
17118
+ connectedAccount: {
17119
+ label: "Connected Accounts",
17120
+ description: "Authorization status of external integration accounts (IM / email / telephony).",
17121
+ error: "A connected account has expired; reauthorize it.",
17122
+ },
17059
17123
  app: {
17060
- description: "Backend application process and core dependency status."
17124
+ label: "App Process",
17125
+ description: "Backend application process and core dependency status.",
17126
+ error: "Application health check failed; inspect the runtime logs.",
17061
17127
  },
17062
17128
  },
17063
- detailLabels: {},
17129
+ detailLabels: {
17130
+ configuredCheck: "Configured Check",
17131
+ status: "Status",
17132
+ waiting: "Waiting",
17133
+ active: "Active",
17134
+ completed: "Completed",
17135
+ failed: "Failed",
17136
+ delayed: "Delayed",
17137
+ paused: "Paused",
17138
+ workerCount: "Workers",
17139
+ consumerActive: "Consumer Active",
17140
+ },
17064
17141
  notConfigured: "Not configured",
17065
17142
  yes: "Yes",
17066
17143
  no: "No"
@@ -17601,6 +17678,24 @@ const messages = {
17601
17678
  searchPlaceholder: "Search platform admin...",
17602
17679
  noMatchingItems: "No matching platform admin items",
17603
17680
  menuPlatformAdminHome: "Platform Overview",
17681
+ sectionPlatformOperations: "Platform Operations",
17682
+ sectionProviderControlPlane: "Provider Control Plane",
17683
+ sectionSupportGovernance: "Support & Governance",
17684
+ sectionReleaseGovernance: "Release Governance",
17685
+ sectionPlatformInfrastructure: "Platform Infrastructure",
17686
+ menuOpsSubscriptions: "Subscriptions",
17687
+ menuOpsHealth: "Tenant Health",
17688
+ menuOpsBilling: "Billing Overview",
17689
+ menuOpsRenewals: "Renewals",
17690
+ menuAiProvider: "AI Provider",
17691
+ menuDemoAccess: "Demo Access",
17692
+ menuTenantExecutionAudit: "Execution Logs",
17693
+ menuPackagePromotions: "Package Promotions",
17694
+ menuPackageRollouts: "Staged Rollouts",
17695
+ menuAdminPanel: "Admin Panel",
17696
+ menuQueues: "Queues",
17697
+ menuCronJobs: "Cron Jobs",
17698
+ menuSystemLogs: "System Logs",
17604
17699
  providerControlPlaneUi: {
17605
17700
  family: {
17606
17701
  ai: "AI Provider Control Plane",
@@ -18507,6 +18602,82 @@ const messages = {
18507
18602
  sensitiveAllow: "Allow display",
18508
18603
  },
18509
18604
  imBotSetup: {
18605
+ testConnectivity: "Connectivity test",
18606
+ connectivityTestFailed: "Connectivity test request failed",
18607
+ connectivityOutcome: {
18608
+ PASS: "Connectivity passed",
18609
+ PARTIAL: "Partially passed",
18610
+ FAIL: "Connectivity failed",
18611
+ REDIRECT_REQUIRED: "Test in the owning module",
18612
+ },
18613
+ connectivityOutcomeDetail: {
18614
+ PASS: "Connectivity test passed",
18615
+ PARTIAL: "The base configuration is valid; an end-to-end test is still required",
18616
+ FAIL: "Connectivity test failed; check the configuration and network",
18617
+ REDIRECT_REQUIRED: "Open the owning module to complete the test",
18618
+ },
18619
+ connectivityCode: {
18620
+ FEISHU_TOKEN_OK: "Feishu App ID and App Secret are valid, and the token service is reachable",
18621
+ FEISHU_TOKEN_REJECTED: "Feishu rejected the configured App ID or App Secret",
18622
+ FEISHU_MESSAGE_DELIVERY_OK: "Feishu accepted the test message; the target returned HTTP {status}",
18623
+ FEISHU_MESSAGE_DELIVERY_REJECTED: "Feishu rejected the test message; check the chat_id, bot membership, and application permissions",
18624
+ FEISHU_TEST_INPUT_REQUIRED: "Enter both the Feishu chat_id and test content",
18625
+ FEISHU_TEST_INPUT_INVALID: "The chat_id or test content exceeds the allowed length",
18626
+ WECOM_TOKEN_OK: "WeCom application credentials are valid, and the token service is reachable",
18627
+ WECOM_TOKEN_REJECTED: "WeCom rejected the configured application credentials",
18628
+ WECOM_SMART_BOT_CALLBACK_VERIFICATION_REQUIRED: "Token and EncodingAESKey are saved. Save the callback URL in WeCom Smart Bot to complete verification",
18629
+ DINGTALK_TOKEN_OK: "DingTalk AppKey and AppSecret are valid, and the token service is reachable",
18630
+ DINGTALK_STREAM_CREDENTIALS_OK_RUNTIME_PENDING: "DingTalk credentials are valid. Send a real message to the robot to confirm the persistent Stream connection and reply path.",
18631
+ DINGTALK_TOKEN_REJECTED: "DingTalk rejected the configured AppKey or AppSecret",
18632
+ SLACK_CREDENTIALS_OK_ADAPTER_PENDING: "Slack credentials are valid, but the inbound runtime adapter is not connected yet",
18633
+ SLACK_CREDENTIALS_REJECTED: "Slack rejected the configured credentials",
18634
+ TEAMS_CREDENTIALS_OK_ADAPTER_PENDING: "Microsoft Teams credentials are valid, but the inbound runtime adapter is not connected yet",
18635
+ TEAMS_CREDENTIALS_REJECTED: "Microsoft rejected the configured Teams credentials",
18636
+ API_CREDENTIALS_SAVED_CLIENT_TEST_REQUIRED: "API credentials are saved; verify them with a client-originated request",
18637
+ API_CALLBACK_OK: "The API callback is reachable; invocation credentials still require a client test",
18638
+ API_CALLBACK_REJECTED: "The API callback rejected the test request",
18639
+ WEB_CHAT_WIDGET_TEST_REQUIRED: "Complete the end-to-end test in the Web Chat widget",
18640
+ TELEPHONY_TEST_REQUIRED: "Run the telephony provider connection test in Voice settings",
18641
+ WEBHOOK_DELIVERY_OK: "The test message was delivered successfully; the target returned HTTP {status}",
18642
+ WEBHOOK_HTTP_REJECTED: "The Webhook target returned HTTP {status} and did not accept the test message",
18643
+ WEBHOOK_PROVIDER_REJECTED: "The external provider rejected the test message; check the Webhook URL and provider security rules",
18644
+ CONNECTION_FAILED: "The Webhook target could not be reached; check the network and URL",
18645
+ TARGET_BLOCKED: "The Webhook target was blocked by the outbound security policy",
18646
+ CONFIG_INCOMPLETE: "Required channel configuration is incomplete",
18647
+ TEST_MESSAGE_REQUIRED: "Enter test content before sending",
18648
+ TEST_MESSAGE_TOO_LONG: "Test content must not exceed 2000 characters",
18649
+ },
18650
+ webhookTestTitle: "Have a digital employee send a Webhook test message",
18651
+ webhookTestDescription: "Choose an authorized digital employee. The employee generates the test message before the platform delivers it to the saved Webhook URL.",
18652
+ deliveryTestEmployeeLabel: "Digital employee generating the test message",
18653
+ deliveryTestEmployeePlaceholder: "Choose an authorized digital employee",
18654
+ deliveryTestGenerateAndSend: "Generate and send test message",
18655
+ deliveryTestScenarioLabel: "Message scenario",
18656
+ deliveryTestScenario: {
18657
+ welcome: {
18658
+ label: "Welcome message",
18659
+ prompt: "a short, warm welcome for a new customer",
18660
+ },
18661
+ event_reminder: {
18662
+ label: "Event reminder",
18663
+ prompt: "a reminder for an upcoming event with a concise call to action",
18664
+ },
18665
+ service_follow_up: {
18666
+ label: "Service follow-up",
18667
+ prompt: "a warm follow-up after customer service, inviting feedback",
18668
+ },
18669
+ },
18670
+ deliveryTestGenerationPrompt: "Generate a short, professional, natural business message for this scenario: {scenario}. Return only the message body with no explanation. Do not mention testing, Webhooks, or the system.",
18671
+ deliveryTestGenerationFailed: "The digital employee could not generate a test message. Please try again.",
18672
+ sendTestMessage: "Send test message",
18673
+ testCredentials: "Test credentials and platform connection",
18674
+ credentialTestTitle: "Test credentials and platform connection",
18675
+ credentialTestScopeTitle: "This test will not send a group message",
18676
+ credentialTestScopeDescription: "This application channel only verifies platform credentials and the token service. Sending a group message also requires a platform chat ID or recipient ID, which this channel does not currently store.",
18677
+ startCredentialTest: "Start test",
18678
+ feishuMessageTestTitle: "Have a digital employee send a Feishu group test message",
18679
+ feishuMessageTestDescription: "Enter the Feishu group chat_id and choose an authorized digital employee. The employee generates the message before delivery; the app bot must be in the group and have permission to send messages.",
18680
+ feishuChatIdPlaceholder: "Enter the Feishu group chat_id, for example oc_xxxxxxxxx",
18510
18681
  toolLabel: {
18511
18682
  recordQuery: "Query CRM",
18512
18683
  recordAggregate: "Aggregate CRM",
@@ -18522,22 +18693,22 @@ const messages = {
18522
18693
  label: "DingTalk",
18523
18694
  step1: "Sign in to the DingTalk Open Platform (open-dev.dingtalk.com) and create an enterprise-internal app under \"App Development\".",
18524
18695
  step2: "On the \"Credentials & Basic Info\" page, copy the AppKey (Client ID) and AppSecret (Client Secret).",
18525
- step3: "Enable the \"Robot\" capability and set the message receive URL to your workspace IM gateway callback address.",
18696
+ step3: "Enable the Robot capability. Choose Stream mode (recommended), or choose Callback and paste the workspace callback URL after saving.",
18526
18697
  step4: "Publish the app version, grant it to the organization, then paste the credentials below.",
18527
18698
  },
18528
18699
  feishu: {
18529
18700
  label: "Feishu",
18530
18701
  step1: "Sign in to open.feishu.cn and create a custom enterprise app in the Developer Console.",
18531
18702
  step2: "On the \"Credentials & Basic Info\" page, copy the App ID and App Secret.",
18532
- step3: "Enable the \"Bot\" capability, subscribe to message events, and configure the callback URL.",
18533
- step4: "Create and publish an app version, then paste the credentials below.",
18703
+ step3: "Under Events & Callbacks, choose \"Send events to developer server\", subscribe to message events, and configure the callback URL.",
18704
+ step4: "Copy the Encrypt Key and Verification Token from Encryption Strategy, enter them below, then create and publish an app version.",
18534
18705
  },
18535
18706
  wecom: {
18536
- label: "WeCom",
18537
- step1: "Sign in to the WeCom admin console (work.weixin.qq.com) and create a self-built app under \"App Management\".",
18538
- step2: "On the app detail page, copy the CorpId, AgentId, and Secret.",
18539
- step3: "On the \"Receive Messages\" page, configure the Token and EncodingAESKey, and set the callback URL to your workspace IM gateway address.",
18540
- note: "Callback verification requires the backend IM gateway to be online; if verification fails, confirm the workspace default IM gateway is enabled and retry.",
18707
+ label: "WeCom Smart Bot",
18708
+ step1: "Create a Smart Bot in the WeCom admin console, open API Configuration, and choose URL callback mode.",
18709
+ step2: "Enter the Token and EncodingAESKey below, save the channel, then copy the generated callback URL.",
18710
+ step3: "Enter that callback URL and the same Token and EncodingAESKey in WeCom, complete URL verification, and add the Smart Bot to the target group.",
18711
+ note: "This is Smart Bot URL callback mode. CorpId, AgentId, and application Secret are not required. WeCom performs a GET verification when saving.",
18541
18712
  },
18542
18713
  slack: {
18543
18714
  label: "Slack",
@@ -18563,6 +18734,11 @@ const messages = {
18563
18734
  step2: "Create a key and copy the API Key and Signing Secret.",
18564
18735
  step3: "Configure the Callback URL for event delivery, then paste the credentials below.",
18565
18736
  },
18737
+ webhook: {
18738
+ label: "Webhook",
18739
+ step1: "Copy the complete Webhook message delivery URL provided by the external platform into the field below.",
18740
+ note: "Webhook actively delivers messages to this URL. The URL already contains the external platform's authentication information, so no application credentials or additional parameters are required.",
18741
+ },
18566
18742
  phone_agent: {
18567
18743
  label: "Phone Agent",
18568
18744
  step1: "Open \"Platform Settings → Telephony\" and select the telephony provider.",
@@ -18571,10 +18747,13 @@ const messages = {
18571
18747
  },
18572
18748
  },
18573
18749
  field: {
18750
+ webhook: {
18751
+ webhookUrl: "Webhook URL",
18752
+ dingtalkSigningSecret: "DingTalk robot signing secret (when signing is enabled)",
18753
+ },
18574
18754
  wecom: {
18575
- corpId: "Corp ID",
18576
- agentId: "Agent ID",
18577
- secret: "Secret",
18755
+ token: "Token",
18756
+ aesKey: "EncodingAESKey",
18578
18757
  },
18579
18758
  },
18580
18759
  simNoReply: "(No reply)",
@@ -18594,8 +18773,8 @@ const messages = {
18594
18773
  add: "Add integration",
18595
18774
  title: "AI Access Center",
18596
18775
  subtitle: "Manage WeCom, Slack, Teams, Web Chat, API, Phone Agent, and future entry points, then route every request to the right AI employee.",
18597
- boundaryTitle: "Core capability: Smart Routing",
18598
- boundaryDescription: "Select the executor by source, group, requested employee, priority, and default dispatcher. Workspace IM callbacks, sessions, and security policies remain in Workspace Default IM Gateway under Platform Settings.",
18776
+ boundaryTitle: "External channels use an explicit employee whitelist",
18777
+ boundaryDescription: "Each channel may invoke only AI employees explicitly selected by an administrator. Employees outside the list remain internal-only. The list does not change an employee's identity, permissions, or data scope.",
18599
18778
  tabRobots: "Bot Management",
18600
18779
  tabGroups: "Group Bindings",
18601
18780
  tabRoutes: "Routing Rules",
@@ -18621,6 +18800,15 @@ const messages = {
18621
18800
  modePerAgent: "Bind a specific employee",
18622
18801
  modeDispatcher: "Dispatcher routing",
18623
18802
  modeSmart: "Smart Routing",
18803
+ explicitBindingRoute: "Explicit employee whitelist",
18804
+ boundEmployeeLabel: "AI employees allowed to serve externally",
18805
+ boundEmployeeHelp: "Select one or more employees. With multiple employees, the user must name one explicitly; the system does not guess or use a dispatcher fallback.",
18806
+ employeePlaceholder: "Select employees allowed to be invoked from this channel",
18807
+ employeeRequired: "Select at least one AI employee allowed to serve externally",
18808
+ employeeUnavailable: "Employee unavailable or removed from the whitelist",
18809
+ selectedEmployeeOverflow: "{count} more",
18810
+ selectedEmployeeCount: "{count} selected (complete list)",
18811
+ selectedEmployeeListAria: "Complete list of selected externally serving employees",
18624
18812
  priorityLabel: "Routing priority",
18625
18813
  priorityTip: "Higher values win when other match conditions are equal.",
18626
18814
  defaultDispatcherLabel: "Use as default dispatcher",
@@ -18630,40 +18818,134 @@ const messages = {
18630
18818
  copyCallbackUrl: "Copy callback URL",
18631
18819
  copyCallbackUrlAria: "Copy callback URL",
18632
18820
  callbackUrlCopied: "Callback URL copied. Paste it into the message-receive / callback URL field on the open platform.",
18821
+ callbackUrlCopyFailed: "The browser did not allow automatic copying. Retry from an HTTPS page.",
18822
+ connectionModeLabel: "Robot connection mode",
18823
+ connectionMode: {
18824
+ stream: "Stream delivery (recommended)",
18825
+ callback: "Callback URL",
18826
+ streamHelp: "NexusClaw opens a persistent connection to receive messages, so no public callback URL is required. The connection starts and reconnects automatically while the channel is enabled.",
18827
+ callbackHelp: "DingTalk delivers messages to a public HTTPS endpoint. After saving, copy the generated callback URL into the DingTalk console.",
18828
+ },
18829
+ dingtalkStreamReady: "Stream mode keeps a persistent backend connection and needs no callback URL. Make sure the DingTalk robot is also configured for Stream mode and published.",
18830
+ dingtalkStreamError: "The Stream connection is unhealthy. Check AppKey/AppSecret, the robot's Stream setting, and backend outbound network access.",
18831
+ dingtalkStreamStepTitle: "Confirm Stream connection",
18832
+ dingtalkStreamStepDescription: "Enable the channel, then send a message directly to the DingTalk robot",
18633
18833
  confirmDelete: "Delete this integration?",
18634
18834
  delete: "Delete",
18635
18835
  cancel: "Cancel",
18636
18836
  deleteChannelAria: "Delete integration",
18637
- simTitle: "Simulate Group Message - @ an AI employee to get a reply",
18638
- simHint: "Type it the way you would in a group (name which employee you want plus your question) -- see how it replies without a real connection, using the same engine, the same customer memory, and the same governance.",
18837
+ simTitle: "Channel service rehearsal",
18838
+ simHint: "Current channel: {channel}. Select an employee from the real binding list, then enter a practical question.",
18839
+ simNoChannel: "Select a configured external channel first.",
18840
+ simNoEmployees: "This channel has no available AI employee whitelist. Edit the channel configuration first.",
18639
18841
  simServing: "Serving customer",
18640
18842
  simToolsUsed: "Tools used",
18641
18843
  simThinking: "Employee is replying...",
18642
- simPh: "e.g. Sales Pioneer, status of the Acme Manufacturing deal",
18844
+ simPh: "Enter a practical business question for {employee}",
18643
18845
  simSend: "Send",
18644
18846
  editTitle: "Edit integration",
18645
18847
  addTitle: "Add integration",
18646
18848
  pickPlatform: "1. Choose an integration type",
18647
18849
  howTo: "2. Configure the external channel and obtain its credentials",
18850
+ webhookHowTo: "2. Prepare the external message delivery URL",
18648
18851
  openConsole: "Open",
18649
18852
  console: "open platform",
18650
18853
  fillIn: "3. Fill in the configuration",
18854
+ webhookFillIn: "3. Enter the Webhook delivery configuration",
18855
+ webhookUrlRequired: "Enter the external Webhook message delivery URL",
18856
+ credentialFieldRequired: "Enter {field}",
18857
+ webhookSetupTitle: "Configure proactive Webhook delivery",
18858
+ webhookSetupDescription: "Webhook lets explicitly authorized AI employees deliver messages to an external URL. It does not receive external messages, use a callback URL, or require callback verification.",
18859
+ webhookStepAdd: "Add Webhook",
18860
+ webhookStepAddDescription: "Choose the outbound Webhook delivery type",
18861
+ webhookStepUrl: "Enter delivery URL",
18862
+ webhookStepUrlDescription: "Enter the complete Webhook URL provided by the external platform",
18863
+ webhookStepEmployees: "Authorize AI employees",
18864
+ webhookStepEmployeesDescription: "Only explicitly authorized employees can proactively send messages",
18865
+ webhookConfigured: "Outbound Webhook delivery configured",
18866
+ webhookDisabled: "Outbound Webhook delivery paused",
18867
+ webhookDeliveryReady: "Authorized AI employees can proactively deliver messages to the external Webhook URL. No callback verification or inbound message reception is required.",
18868
+ webhookDeliveryPaused: "Message delivery is paused. Re-enable it to allow authorized AI employees to send messages to this URL.",
18869
+ webhookSendingEmployees: "AI employees allowed to send messages",
18870
+ webhookSendingEmployeesHelp: "Only AI employees explicitly authorized here can proactively send messages to this Webhook URL.",
18871
+ webhookDeliveryMode: "Delivery direction",
18872
+ webhookDeliveryModeValue: "Platform proactively delivers to external URL",
18873
+ webhookUrlConfigured: "Webhook URL",
18874
+ webhookUrlConfiguredValue: "Saved",
18875
+ webhookUrlMissing: "Not saved",
18876
+ pauseWebhookDelivery: "Pause message delivery",
18877
+ enableWebhookDelivery: "Enable message delivery",
18878
+ webhookChannelColumn: "Outbound Webhook",
18879
+ webhookSenderColumn: "Sender",
18880
+ webhookDeliveryColumn: "Can deliver messages",
18881
+ webhookDeliveryEnabled: "Proactive delivery enabled",
18882
+ webhookDeliveryPausedLabel: "Delivery paused",
18883
+ webhookConfigHeader: "Message delivery URL (the complete Webhook URL provided by the external platform)",
18884
+ flow: {
18885
+ inbound_callback: {
18886
+ title: "Inbound application callback channel",
18887
+ description: "WeCom Smart Bot, Feishu, and DingTalk have real inbound callbacks wired. Messages received by the external platform are dispatched only to explicitly selected AI employees.",
18888
+ howTo: "2. Configure the open-platform application and callback",
18889
+ configure: "3. Enter application credentials and service settings",
18890
+ employeesLabel: "AI employees allowed to serve externally",
18891
+ employeesHelp: "Inbound messages can invoke only AI employees explicitly selected here.",
18892
+ configHeader: "Open-platform application credentials (encrypted and never displayed again)",
18893
+ },
18894
+ inbound_adapter_pending: {
18895
+ title: "Inbound adapter not wired yet",
18896
+ description: "Slack and Teams configuration metadata can be saved, but this module does not yet have a live inbound message adapter. Saving does not mean production messages are reachable.",
18897
+ howTo: "2. Prepare the platform application configuration",
18898
+ configure: "3. Save the pending application configuration",
18899
+ employeesLabel: "AI employees planned for external service",
18900
+ employeesHelp: "This list becomes the inbound invocation boundary after the adapter is wired.",
18901
+ configHeader: "Platform application configuration (stored now; runtime wiring pending)",
18902
+ },
18903
+ embedded_web_chat: {
18904
+ title: "Embedded Web Chat integration",
18905
+ description: "Web Chat starts conversations from an embedded site component. It uses a site key, signing secret, and allowed origins rather than IM callback verification.",
18906
+ howTo: "2. Configure the Web Chat component",
18907
+ configure: "3. Enter site security settings",
18908
+ employeesLabel: "AI employees allowed to serve Web Chat",
18909
+ employeesHelp: "Web conversations can invoke only AI employees explicitly selected here.",
18910
+ configHeader: "Web component and allowed-origin settings",
18911
+ },
18912
+ authenticated_api: {
18913
+ title: "Authenticated API invocation",
18914
+ description: "API integration uses an API key and signing credentials to invoke platform capabilities. Callback URL is an optional event return target, not an inbound message callback.",
18915
+ howTo: "2. Create API invocation credentials",
18916
+ configure: "3. Enter API authentication and optional return settings",
18917
+ employeesLabel: "AI employees allowed for API invocation",
18918
+ employeesHelp: "API requests can invoke only AI employees explicitly authorized here.",
18919
+ configHeader: "API authentication credentials and optional event return URL",
18920
+ },
18921
+ outbound_webhook: {
18922
+ title: "Outbound Webhook message delivery",
18923
+ description: "Authorized AI employees proactively deliver messages to an external Webhook URL. It does not receive external messages or require callback verification.",
18924
+ howTo: "2. Prepare the external message delivery URL",
18925
+ configure: "3. Enter Webhook delivery settings",
18926
+ employeesLabel: "AI employees allowed to send messages",
18927
+ employeesHelp: "Only AI employees explicitly authorized here can send messages to this Webhook URL.",
18928
+ configHeader: "Complete Webhook URL provided by the external platform",
18929
+ },
18930
+ voice_channel: {
18931
+ title: "Phone Agent voice integration",
18932
+ description: "Phone Agent uses separate carrier, number, and compliance settings. Bind the AI employees allowed to answer or place calls here; operational settings remain owned by Telephony settings.",
18933
+ howTo: "2. Configure the voice provider and number",
18934
+ configure: "3. Enter agent account settings",
18935
+ employeesLabel: "AI employees allowed to answer or place calls",
18936
+ employeesHelp: "Phone tasks can invoke only AI employees explicitly authorized here.",
18937
+ configHeader: "Voice provider, number, and agent authentication settings",
18938
+ },
18939
+ },
18651
18940
  nameLabel: "Name",
18652
18941
  namePh: "e.g. Acme Robotics - Sales Group",
18653
18942
  groupLabel: "Target group (optional)",
18654
18943
  groupPh: "Group name or group ID -- can also be filled in later when connecting",
18655
18944
  routingLabel: "Routing mode",
18656
- routingTip: "Smart Routing matches source, group, employee, and priority. Dispatcher routing is the shared entry point. A specific-employee route always selects that employee.",
18657
18945
  credsHeader: "Credentials (copy and paste from the platform console above; stored encrypted and never displayed again)",
18658
18946
  keepSecret: "Already configured -- leave blank to keep unchanged",
18659
18947
  pastePh: "Paste this value",
18660
18948
  save: "Save",
18661
- simExample: {
18662
- salesPioneer: "Sales Pioneer, how should I follow up on the annual collaboration platform deal with Acme Manufacturing Group?",
18663
- serviceSteward: "Customer Service Steward, what's the status of the damage refund for order ORD-2024-0892?",
18664
- revenueAnalyst: "Revenue Analyst, what's this week's total pipeline value and weighted forecast?",
18665
- opsCoach: "Ops Coach, which areas should the team focus on this week?",
18666
- },
18667
18949
  },
18668
18950
  settingsRestPages: {
18669
18951
  sopDetail: {
@@ -19407,6 +19689,14 @@ const messages = {
19407
19689
  publishRequiresApproval: "Publishing requires approvalStatus approved or not_required; current approvalStatus is {approvalStatus}.",
19408
19690
  draftActionsLocked: "Draft actions are locked because the current releaseGateStatus is {releaseGateStatus}.",
19409
19691
  approvalActionUnavailable: "Approval action is unavailable because the current approvalStatus is {approvalStatus}.",
19692
+ agentChangeSummaryTitle: "Proposed improvements",
19693
+ agentChangeSummaryDescription: "This draft updates {count} employee behavior setting(s). You can simulate before publishing and roll back afterward.",
19694
+ agentPersonaLabel: "Role and communication style",
19695
+ agentPersonaHelp: "Changes the role, tone, and style the AI employee uses when collaborating with users.",
19696
+ agentInstructionsLabel: "Work instructions and approach",
19697
+ agentInstructionsHelp: "Changes the steps, priorities, and judgment the AI employee uses to complete work.",
19698
+ agentIdentityPolicyLabel: "Identity boundaries and constraints",
19699
+ agentIdentityPolicyHelp: "Clarifies what the AI employee may do, may not do, and when it must hand work to a person.",
19410
19700
  },
19411
19701
  table: {
19412
19702
  tabRecommendations: "Recommendations",
@@ -19527,6 +19817,14 @@ const messages = {
19527
19817
  operatingLoopTitle: "Autonomous Workforce Operating Loop",
19528
19818
  operatingLoopSubtitle: "Discover automation opportunities in real work, then connect evidence, tests, approvals, and learning into one digital workforce operating system.",
19529
19819
  operatingLoopAction: "Enter",
19820
+ operatingLoopActionByStage: {
19821
+ discover: "Review role gaps",
19822
+ hire: "Complete employee setup",
19823
+ prove: "Start evaluation",
19824
+ deploy: "Review deployment",
19825
+ learn: "Review learning evidence",
19826
+ improve: "Handle improvements",
19827
+ },
19530
19828
  operatingLoopStage: {
19531
19829
  discover: "Discover Work",
19532
19830
  hire: "Hire Agents",
@@ -19673,6 +19971,28 @@ const messages = {
19673
19971
  truncation: "Showing latest {shown} of {total}",
19674
19972
  composerOpen: "+ Generate blueprint",
19675
19973
  composerCancel: "Cancel",
19974
+ impact: "Impact",
19975
+ confidence: "Confidence",
19976
+ testCandidateCount: "{count} test candidate(s) are linked and will be checked by simulation and the release gate below.",
19977
+ nextStep: "Next step",
19978
+ noDraftTitle: "No actionable improvement draft yet",
19979
+ noDraftDescription: "This recommendation currently has evidence and an assessment, but it cannot be applied yet.",
19980
+ noDraftHowTitle: "How a draft is created",
19981
+ noDraftHowEvidence: "Keep using the relevant AI employee for similar work. The system automatically aggregates eligible, redacted evidence.",
19982
+ noDraftHowCandidate: "When the evidence volume, confidence, and target asset satisfy the rules, the system automatically creates a governed candidate draft; users do not create technical objects manually.",
19983
+ noDraftHowContinue: "After the draft is created, this page shows the Generate content, Simulate, and Submit for approval actions. To start immediately from a defined business goal, create a blueprint in Step 3, Blueprint drafts.",
19984
+ stageNavigation: "Learning improvement workflow",
19985
+ stageNumber: "Step {number}",
19986
+ selectItemHint: "Select an item on the left to see its details and the next available action.",
19987
+ evidenceOpenHint: "Select an evidence card on the left to inspect the source evidence.",
19988
+ cardNextStep: "Next",
19989
+ stageHint: {
19990
+ evidence: "Review what the system captured from real work.",
19991
+ recommendations: "Prioritize high-impact, uncertain, or gate-blocked recommendations.",
19992
+ blueprints: "Confirm the improvement goal, scope, and acceptance checks.",
19993
+ gate: "Check whether tests, approval, and rollback readiness are satisfied.",
19994
+ artifacts: "Review the draft artifacts produced by the workflow.",
19995
+ },
19676
19996
  column: {
19677
19997
  evidence: "Evidence",
19678
19998
  recommendations: "Recommendations",