@nexusclawhq/cli 0.3.14 → 0.3.15

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 (37) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/build-info.json +4 -4
  3. package/dist/nexus-cli/node_modules/@nexusclaw/shared/dist/index.d.ts +1 -0
  4. package/dist/nexus-cli/node_modules/@nexusclaw/shared/dist/index.js +1 -0
  5. package/dist/nexus-cli/node_modules/@nexusclaw/shared/dist/index.js.map +1 -1
  6. package/dist/nexus-cli/node_modules/@nexusclaw/shared/dist/locales/en-US.d.ts +488 -0
  7. package/dist/nexus-cli/node_modules/@nexusclaw/shared/dist/locales/en-US.js +499 -11
  8. package/dist/nexus-cli/node_modules/@nexusclaw/shared/dist/locales/en-US.js.map +1 -1
  9. package/dist/nexus-cli/node_modules/@nexusclaw/shared/dist/locales/index.d.ts +976 -0
  10. package/dist/nexus-cli/node_modules/@nexusclaw/shared/dist/locales/zh-CN.d.ts +488 -0
  11. package/dist/nexus-cli/node_modules/@nexusclaw/shared/dist/locales/zh-CN.js +558 -70
  12. package/dist/nexus-cli/node_modules/@nexusclaw/shared/dist/locales/zh-CN.js.map +1 -1
  13. package/dist/nexus-cli/node_modules/@nexusclaw/shared/dist/platform-admin-route-readiness/index.js +59 -57
  14. package/dist/nexus-cli/node_modules/@nexusclaw/shared/dist/platform-admin-route-readiness/index.js.map +1 -1
  15. package/dist/nexus-cli/node_modules/@nexusclaw/shared/dist/workspace-regional-settings.d.ts +15 -0
  16. package/dist/nexus-cli/node_modules/@nexusclaw/shared/dist/workspace-regional-settings.js +30 -0
  17. package/dist/nexus-cli/node_modules/@nexusclaw/shared/dist/workspace-regional-settings.js.map +1 -0
  18. package/dist/nexus-cli/node_modules/@nexusclaw/shared/package.json +4 -0
  19. package/dist/nexus-cli/src/cli.js +0 -0
  20. package/dist/nexus-cli/src/services/__env-probe.test.d.ts +1 -0
  21. package/dist/nexus-cli/src/services/__env-probe.test.js +13 -0
  22. package/dist/nexus-cli/src/services/__env-probe.test.js.map +1 -0
  23. package/dist/nexus-cli/src/services/ai-authoring-context-v2.pack.e2e.test.d.ts +1 -0
  24. package/dist/nexus-cli/src/services/ai-authoring-context-v2.pack.e2e.test.js +132 -0
  25. package/dist/nexus-cli/src/services/ai-authoring-context-v2.pack.e2e.test.js.map +1 -0
  26. package/dist/nexus-cli/src/services/api-client.js +7 -1
  27. package/dist/nexus-cli/src/services/api-client.js.map +1 -1
  28. package/dist/nexus-cli/src/services/step-up-helper.test.js +12 -1
  29. package/dist/nexus-cli/src/services/step-up-helper.test.js.map +1 -1
  30. package/dist/nexus-cli/src/services/workforce-test-remote.d.ts +1 -1
  31. package/dist/nexus-cli/src/services/workforce-test-remote.js +1 -1
  32. package/dist/nexus-cli/src/services/workforce-test-remote.test.js +1 -1
  33. package/dist/nexus-cli/src/templates/project/templates/drill-code-extension-page/src/components/drill-code-extension-page/index.js +70 -0
  34. package/dist/nexus-cli/src/templates/project/templates/drill-code-extension-page/src/metadata/drill-code-extension-page.manifest.json +63 -0
  35. package/dist/nexus-cli/src/templates/project/templates/drill-code-extension-page/src/tests/drill-code-extension-page.assertions.json +13 -0
  36. package/dist/tsconfig.tsbuildinfo +1 -1
  37. package/package.json +1 -1
@@ -5047,6 +5047,8 @@ const messages = {
5047
5047
  requestFailedWithStatus: "Request failed ({status})",
5048
5048
  serviceException: "Service error",
5049
5049
  // Conversation history / meeting replay (caller-scoped by userId+workspaceId)
5050
+ newConversation: "New conversation",
5051
+ restoringSession: "Restoring the last training conversation…",
5050
5052
  historyButton: "History",
5051
5053
  historyTitle: "Conversation history",
5052
5054
  historyEmpty: "No conversations yet",
@@ -7452,6 +7454,8 @@ const messages = {
7452
7454
  builderPreviewMenuCaption: "Task input and output",
7453
7455
  builderPreviewRun: "Preview run",
7454
7456
  builderPreviewWelcome: "Enter a real task and I will try it with the current AI employee configuration.",
7457
+ builderPreviewNewSession: "New conversation",
7458
+ builderPreviewRestoring: "Restoring the last conversation…",
7455
7459
  builderReadinessTitle: "Readiness",
7456
7460
  builderReadiness: {
7457
7461
  access: "Usage scope",
@@ -7460,6 +7464,9 @@ const messages = {
7460
7464
  knowledge: "Knowledge",
7461
7465
  sop: "SOP",
7462
7466
  test: "Test",
7467
+ loadFailed: "Failed to load the provider control plane",
7468
+ loadFailedDescription: "Provider configurations and organization policies could not be read. Please retry.",
7469
+ retry: "Retry",
7463
7470
  },
7464
7471
  builderReadinessMenuCaption: "Pre-publish check",
7465
7472
  builderReadinessStatus: {
@@ -11094,6 +11101,12 @@ const messages = {
11094
11101
  breadcrumbPlatformTools: "Platform Tools",
11095
11102
  breadcrumbExecutionLogs: "Execution Logs",
11096
11103
  breadcrumbLogDetail: "Log Detail",
11104
+ scopeRequired: "Execution log workspace is required",
11105
+ scopeRequiredDescription: "Platform execution log details require both a log ID and workspace to prevent cross-tenant reads.",
11106
+ loadFailed: "Execution log details failed to load",
11107
+ loadFailedDescription: "The execution log could not be loaded for this workspace. Try again later.",
11108
+ notFound: "Execution log not found",
11109
+ notFoundDescription: "The log does not exist or does not belong to the selected workspace.",
11097
11110
  },
11098
11111
  executionLogs: {
11099
11112
  statusSuccess: "Success",
@@ -11114,6 +11127,14 @@ const messages = {
11114
11127
  searchPlaceholder: "Search execution ID, user, object, or error message...",
11115
11128
  breadcrumbSettings: "Settings",
11116
11129
  breadcrumbPlatformTools: "Platform Tools",
11130
+ workspaceRequired: "Select a workspace first",
11131
+ workspaceRequiredDescription: "Platform execution audits require an explicit workspace and never fall back to the current workspace.",
11132
+ loadFailed: "Execution logs failed to load",
11133
+ loadFailedDescription: "Execution logs could not be loaded for the selected workspace. Try again later.",
11134
+ selectWorkspaceEmpty: "Select a workspace to view execution logs",
11135
+ noResults: "No execution logs match the current filters",
11136
+ errorTimeout: "Execution timed out",
11137
+ errorFailed: "Execution failed",
11117
11138
  },
11118
11139
  fieldHistoryDetail: {
11119
11140
  saveSuccess: "Field history tracking configuration saved",
@@ -11948,6 +11969,11 @@ const messages = {
11948
11969
  behaviorPolicyStudioTitle: "__EN_TODO__: 行为策略工作室",
11949
11970
  },
11950
11971
  queryMonitorDetail: {
11972
+ scopeRequired: "Workspace scope is required",
11973
+ scopeRequiredDescription: "Select a workspace from Query Monitor before opening a detail.",
11974
+ loadFailed: "Failed to load query detail",
11975
+ notFound: "The query record was not found in this workspace.",
11976
+ retry: "Retry",
11951
11977
  basicInfo: "Basic Info",
11952
11978
  queryId: "Query ID",
11953
11979
  executionTime: "Execution Time",
@@ -11965,6 +11991,8 @@ const messages = {
11965
11991
  backToList: "Back to List",
11966
11992
  },
11967
11993
  queryMonitor: {
11994
+ scopeRequired: "Select a workspace to view slow queries.",
11995
+ loadFailed: "Failed to load slow queries. Please retry.",
11968
11996
  colExecutionTime: "Execution Time",
11969
11997
  colSqlSummary: "SQL Summary",
11970
11998
  colQueryType: "Query Type",
@@ -13718,6 +13746,7 @@ const messages = {
13718
13746
  trialConsoleUi: {
13719
13747
  demoAccess: {
13720
13748
  page: {
13749
+ title: "Demo Access",
13721
13750
  subtitle: "Controlled demo provisioning console: request queue, approval decisions, environment pools, and assignment actions are all consolidated on one page.",
13722
13751
  refresh: "Refresh",
13723
13752
  loadError: "Failed to load Demo Access data",
@@ -13726,6 +13755,7 @@ const messages = {
13726
13755
  approvedAssignable: "Approved & Assignable",
13727
13756
  readyInstances: "Ready Instances",
13728
13757
  totalAvailableCapacity: "Total Available Capacity",
13758
+ invitations: "Invitations",
13729
13759
  },
13730
13760
  queue: {
13731
13761
  title: "Demo Request Queue",
@@ -13743,9 +13773,11 @@ const messages = {
13743
13773
  empty: "No environment instances yet. Click New to onboard resources.",
13744
13774
  },
13745
13775
  assignmentCard: {
13776
+ title: "Active Sessions / Assignments",
13746
13777
  empty: "No active assignments",
13747
13778
  },
13748
13779
  jobCard: {
13780
+ title: "Automation Jobs",
13749
13781
  empty: "No Demo Access automation jobs",
13750
13782
  },
13751
13783
  requestColumns: {
@@ -13756,6 +13788,9 @@ const messages = {
13756
13788
  status: "Status",
13757
13789
  recommended: "Recommendation",
13758
13790
  pendingScreening: "Pending screening",
13791
+ riskScore: "Risk {risk} / Score {score}",
13792
+ riskOnly: "Risk {risk}",
13793
+ invitation: "Invitation",
13759
13794
  actions: "Actions",
13760
13795
  },
13761
13796
  invitation: {
@@ -13768,6 +13803,7 @@ const messages = {
13768
13803
  },
13769
13804
  actions: {
13770
13805
  review: "Review",
13806
+ provision: "Provision",
13771
13807
  assign: "Assign",
13772
13808
  },
13773
13809
  poolColumns: {
@@ -13782,12 +13818,14 @@ const messages = {
13782
13818
  status: "Status",
13783
13819
  },
13784
13820
  assignmentColumns: {
13821
+ assignment: "Assignment",
13785
13822
  instancePool: "Instance / Pool",
13786
13823
  status: "Status",
13787
13824
  actions: "Actions",
13788
13825
  },
13789
13826
  assignmentActions: {
13790
13827
  expire: "Expire",
13828
+ markResetPending: "Mark reset pending",
13791
13829
  completeReset: "Complete reclaim",
13792
13830
  },
13793
13831
  jobColumns: {
@@ -13810,6 +13848,20 @@ const messages = {
13810
13848
  accessLevelLabel: "Access Level",
13811
13849
  decisionReasonLabel: "Review Notes",
13812
13850
  },
13851
+ options: {
13852
+ accessPublic: "Public",
13853
+ accessPrivate: "Private",
13854
+ accessInternal: "Internal",
13855
+ routePublicDemo: "Public Demo",
13856
+ routePrivateDemo: "Private Demo",
13857
+ routeMaterialOnly: "Material Only",
13858
+ invitationMagicLink: "Magic Link",
13859
+ invitationOtp: "OTP",
13860
+ poolPublicDemo: "Public Demo Pool",
13861
+ poolPrivatePresales: "Private Presales Pool",
13862
+ poolInternal: "Internal Pool",
13863
+ unknownPool: "Unknown Pool",
13864
+ },
13813
13865
  assignModal: {
13814
13866
  title: "Assign Demo Environment",
13815
13867
  instanceLabel: "Environment Instance",
@@ -13819,6 +13871,10 @@ const messages = {
13819
13871
  },
13820
13872
  poolModal: {
13821
13873
  title: "New Environment Pool",
13874
+ poolCodeLabel: "Pool Code",
13875
+ poolTypeLabel: "Pool Type",
13876
+ routeTypeLabel: "Route Type",
13877
+ accessLevelLabel: "Access Level",
13822
13878
  capacityLabel: "Capacity",
13823
13879
  industryScenarioLabel: "Industry Scenario",
13824
13880
  purposeLabel: "Purpose",
@@ -13829,6 +13885,7 @@ const messages = {
13829
13885
  title: "New Environment Instance",
13830
13886
  poolLabel: "Environment Pool",
13831
13887
  instanceCodeLabel: "Instance Code",
13888
+ environmentKeyLabel: "Environment Key",
13832
13889
  },
13833
13890
  toast: {
13834
13891
  reviewSaved: "Review decision saved",
@@ -18519,6 +18576,11 @@ const messages = {
18519
18576
  breadcrumbSettings: "Settings",
18520
18577
  breadcrumbPlatformTools: "Platform Tools",
18521
18578
  searchPlaceholder: "Search class name...",
18579
+ scopeRequired: "Select a workspace to view platform batch jobs.",
18580
+ loadFailed: "Failed to load batch jobs. Please retry.",
18581
+ detailScopeRequired: "The batch job workspace scope is missing.",
18582
+ detailNotFound: "The batch job was not found in this workspace.",
18583
+ retry: "Retry",
18522
18584
  colClassName: "Class Name",
18523
18585
  colType: "Type",
18524
18586
  colStatus: "Status",
@@ -18576,6 +18638,247 @@ const messages = {
18576
18638
  abortError: "Abort failed: {message}",
18577
18639
  },
18578
18640
  platformAdmin: {
18641
+ adminPanelUi: {
18642
+ common: {
18643
+ sectionOther: "Other",
18644
+ platformAdmin: "Platform Admin",
18645
+ adminPanel: "Admin Panel",
18646
+ systemOverview: "System Overview",
18647
+ configVariables: "Config Variables",
18648
+ healthStatus: "Health Status",
18649
+ queues: "Queues",
18650
+ worker: "Worker",
18651
+ loading: "Loading...",
18652
+ loadFailed: "Failed to load data",
18653
+ loadFailedDescription: "The current administration data could not be read. Please retry.",
18654
+ retry: "Retry",
18655
+ refresh: "Refresh",
18656
+ filter: "Filter",
18657
+ name: "Name",
18658
+ value: "Value",
18659
+ status: "Status",
18660
+ source: "Source",
18661
+ group: "Group",
18662
+ id: "ID",
18663
+ email: "Email",
18664
+ url: "URL",
18665
+ unknown: "Unknown",
18666
+ notFound: "Not Found",
18667
+ errorInfo: "Error Message",
18668
+ details: "Status Details",
18669
+ noDetails: "No details",
18670
+ operational: "Operational",
18671
+ normal: "Normal",
18672
+ outage: "Outage",
18673
+ search: "Search",
18674
+ cancel: "Cancel",
18675
+ reset: "Reset",
18676
+ },
18677
+ general: {
18678
+ about: "About",
18679
+ appVersionInfo: "Application version information",
18680
+ currentVersion: "Current Version",
18681
+ latestVersion: "Latest Version",
18682
+ latestVersionNotFound: "Latest version not found",
18683
+ featureFlagsAndImpersonation: "Feature Flags and User Impersonation",
18684
+ userImpersonation: "User Impersonation",
18685
+ featureFlagsAndImpersonationHint: "Find a user and manage workspace feature flags or impersonate the user",
18686
+ userImpersonationHint: "Find a user to impersonate",
18687
+ userIdentifierPlaceholder: "Enter user ID or email address",
18688
+ userInfo: "User Information",
18689
+ aboutThisUser: "About this user",
18690
+ fullName: "Full Name",
18691
+ workspaces: "Workspaces",
18692
+ userWorkspaces: "All workspaces this user belongs to",
18693
+ noWorkspaces: "This user has not joined any workspace",
18694
+ workspaceInfo: "Workspace Information",
18695
+ aboutThisWorkspace: "About this workspace",
18696
+ members: "Members",
18697
+ unnamed: "Unnamed",
18698
+ featureFlags: "Feature Flags",
18699
+ featureFlag: "Feature Flag",
18700
+ impersonate: "Impersonate",
18701
+ impersonationDisabled: "Impersonation disabled for this workspace",
18702
+ searchUserFirst: "Search for a user first",
18703
+ impersonationFailed: "Impersonation failed: {message}",
18704
+ searchFailed: "Search failed: {message}",
18705
+ updateFeatureFlagFailed: "Failed to update feature flag: {message}",
18706
+ },
18707
+ config: {
18708
+ allGroups: "All Groups",
18709
+ allSources: "All Sources",
18710
+ database: "Database",
18711
+ environment: "Environment",
18712
+ default: "Default",
18713
+ showHiddenGroups: "Show hidden groups",
18714
+ searchPlaceholder: "Search variables...",
18715
+ noVariables: "No config variables found",
18716
+ detailTitle: "Config Variable Detail",
18717
+ variableMissing: "Config variable not found",
18718
+ variableMissingDescription: 'Variable "{name}" does not exist',
18719
+ tagPlaceholder: "Type a value and press Enter",
18720
+ undefinedPlaceholder: "Undefined",
18721
+ databaseValuePlaceholder: "Enter the value to store in database",
18722
+ envOnlyMessage: "This variable can only be set through environment variables",
18723
+ databaseSourceMessage: "This variable currently uses a database value. Use Reset to restore the environment or default value.",
18724
+ changedMessage: "Value changed. Click Save to submit the update.",
18725
+ updated: "Config variable updated",
18726
+ updateFailed: "Update failed: {message}",
18727
+ resetTitle: "Reset Variable",
18728
+ resetConfirm1: "This will delete the database value and the system will use the environment or default value.",
18729
+ resetConfirm2: "Are you sure you want to reset this variable?",
18730
+ resetSuccess: "Config variable reset to default",
18731
+ resetFailed: "Reset failed: {message}",
18732
+ consumerLabel: "Runtime consumer: {consumer}",
18733
+ requiresRestartMessage: "This change requires a process restart to take effect.",
18734
+ noConsumerMessage: "No runtime consumer — this variable is environment-only.",
18735
+ },
18736
+ health: {
18737
+ systemHealthHint: "System operating status",
18738
+ noHealthData: "No health status data",
18739
+ detailTitle: "Health Status Detail",
18740
+ missing: "Health status not found",
18741
+ missingDescription: 'Indicator "{id}" does not exist',
18742
+ workerUnavailable: "Queue information is unavailable because Worker has stopped",
18743
+ noQueueInfo: "No queue information",
18744
+ },
18745
+ queue: {
18746
+ queueName: "Queue Name",
18747
+ jobStats: "Job Statistics",
18748
+ manageQueuesHint: "View and manage background job queues",
18749
+ workerUnavailableTitle: "Worker Service Unavailable",
18750
+ workerUnavailableDescription: "Queue information is unavailable because the Worker service has stopped. Check Worker service status.",
18751
+ noQueues: "No queue data",
18752
+ title: "Queue: {queueName}",
18753
+ waiting: "Waiting",
18754
+ active: "Active",
18755
+ failed: "Failed",
18756
+ completed: "Completed",
18757
+ delayed: "Delayed",
18758
+ paused: "Paused",
18759
+ waitingState: "Waiting",
18760
+ attempts: "Attempts",
18761
+ createdAt: "Created At",
18762
+ jobs: "Job List",
18763
+ data: "Data:",
18764
+ failedReason: "Failure Reason:",
18765
+ returnValue: "Return Value:",
18766
+ options: "Options:",
18767
+ retentionLoading: "Loading retention configuration...",
18768
+ retentionDescription: "Completed jobs retained for {completedAge}; failed jobs retained for {failedAge} (up to {count} each)",
18769
+ days: "{count} days",
18770
+ hours: "{count} hours",
18771
+ },
18772
+ cron: {
18773
+ title: "Cron Jobs",
18774
+ description: "Manage system scheduled job execution plans",
18775
+ noJobs: "No cron jobs",
18776
+ jobName: "Job Name",
18777
+ schedule: "Schedule",
18778
+ lastRun: "Last Run",
18779
+ nextRun: "Next Run",
18780
+ enabled: "Enabled",
18781
+ actions: "Actions",
18782
+ runNow: "Run Now",
18783
+ history: "Execution History",
18784
+ historyTitle: "Execution History - {name}",
18785
+ confirmRunNowTitle: "Run Now",
18786
+ confirmRunNowContent: 'Run "{name}" now?',
18787
+ operationFailed: "Operation failed",
18788
+ runFailed: "Run failed",
18789
+ notWired: "No awaitable manual execution handler is wired",
18790
+ readOnly: "Read only",
18791
+ jobEnabled: "{name} enabled",
18792
+ jobPaused: "{name} paused",
18793
+ jobTriggered: "{name} triggered",
18794
+ jobExecuted: "{name} execution completed",
18795
+ active: "Running",
18796
+ paused: "Paused",
18797
+ error: "Error",
18798
+ neverRun: "Never run",
18799
+ justNow: "Just now",
18800
+ minutesAgo: "{count} minutes ago",
18801
+ hoursAgo: "{count} hours ago",
18802
+ failed: "Failed",
18803
+ success: "Success",
18804
+ running: "Running",
18805
+ everyMinute: "Every minute",
18806
+ every5Minutes: "Every 5 minutes",
18807
+ every10Minutes: "Every 10 minutes",
18808
+ every15Minutes: "Every 15 minutes",
18809
+ every30Minutes: "Every 30 minutes",
18810
+ everyHour: "Every hour",
18811
+ every2Hours: "Every 2 hours",
18812
+ every6Hours: "Every 6 hours",
18813
+ every12Hours: "Every 12 hours",
18814
+ dailyMidnight: "Daily at midnight",
18815
+ weeklySundayMidnight: "Weekly Sunday at midnight",
18816
+ monthlyFirstMidnight: "Monthly on the 1st at midnight",
18817
+ startedAt: "Started At",
18818
+ executionId: "Execution Correlation ID",
18819
+ duration: "Duration",
18820
+ totalItems: "{total} items",
18821
+ },
18822
+ logs: {
18823
+ title: "Tenant Debug Logs",
18824
+ sectionMonitoring: "System Monitoring",
18825
+ description: "View tenant debug logs and error information",
18826
+ export: "Export",
18827
+ time: "Time",
18828
+ level: "Level",
18829
+ source: "Source",
18830
+ message: "Message",
18831
+ levelPlaceholder: "Log Level",
18832
+ sourcePlaceholder: "Source",
18833
+ searchPlaceholder: "Search messages...",
18834
+ noLogs: "No log data",
18835
+ },
18836
+ },
18837
+ adminPanel: "Admin Panel",
18838
+ adminHealth: {
18839
+ indicators: {
18840
+ database: {
18841
+ label: "Database",
18842
+ description: "PostgreSQL connectivity and core table counters.",
18843
+ error: "Database health check failed.",
18844
+ },
18845
+ redis: {
18846
+ label: "Redis",
18847
+ description: "Redis cache and queue backend connectivity.",
18848
+ error: "Redis health check failed.",
18849
+ },
18850
+ worker: {
18851
+ label: "Background Job Worker",
18852
+ description: "Worker and queue status for asynchronous platform jobs.",
18853
+ error: "The agent execution queue is not initialized.",
18854
+ },
18855
+ connectedAccount: {
18856
+ label: "Connected Accounts",
18857
+ description: "No real health checker is configured for external account integrations, so status is unknown.",
18858
+ },
18859
+ app: {
18860
+ label: "Backend Application",
18861
+ description: "Backend application process and core dependency status.",
18862
+ error: "One or more core services are unhealthy.",
18863
+ },
18864
+ },
18865
+ detailLabels: {
18866
+ configuredCheck: "Health-check configuration",
18867
+ status: "Probe status",
18868
+ waiting: "Waiting jobs",
18869
+ active: "Active jobs",
18870
+ completed: "Completed jobs",
18871
+ failed: "Failed jobs",
18872
+ delayed: "Delayed jobs",
18873
+ paused: "Paused jobs",
18874
+ workerCount: "Online workers",
18875
+ consumerActive: "Consumer online",
18876
+ },
18877
+ notConfigured: "Not configured",
18878
+ yes: "Yes",
18879
+ no: "No",
18880
+ technicalDetails: "Technical details",
18881
+ },
18579
18882
  ops: {
18580
18883
  common: {
18581
18884
  back: "Back",
@@ -18604,6 +18907,7 @@ const messages = {
18604
18907
  paymentStatus: "Payment Status",
18605
18908
  overdue: "Overdue",
18606
18909
  noMatches: "No matching records",
18910
+ retry: "Retry",
18607
18911
  },
18608
18912
  dashboard: {
18609
18913
  title: "Platform Overview",
@@ -18632,14 +18936,18 @@ const messages = {
18632
18936
  watch: "Watch",
18633
18937
  remainingDays: "Days Left",
18634
18938
  renewalStatus: "Status",
18635
- noTrend: "No 90-day health signals",
18939
+ noTrend: "No health observations in the last 90 days",
18940
+ insufficientTrend: "Only 1 observation day is available; at least 2 are required to show a trend",
18941
+ trendDescription: "Only tenants with a real usage observation on that day are counted; missing dates are not treated as zero usage.",
18636
18942
  trendAria: "90-day health signal trend",
18637
18943
  healthAlertTitle: "{workspaceName} health {riskLevel}",
18638
18944
  healthAlertDescription: "Expires in {days} days, weekly logins {loginFrequency}, usage {usageRatio}%.",
18639
18945
  renewalAlertTitle: "{workspaceName} renewal {renewalStatus}",
18640
18946
  renewalAlertDescription: "Current plan {plan}, {days} days left.",
18641
18947
  invoiceAlertTitle: "{workspaceName} has an overdue invoice",
18642
- invoiceAlertDescription: "Invoice amount ${amount}, status {status}.",
18948
+ invoiceAlertDescription: "Invoice amount {amount}, status {status}.",
18949
+ loadFailed: "Failed to load platform operations data",
18950
+ loadFailedDescription: "One or more subscription, renewal, or billing owners could not be read. Their metrics are not treated as zero; please retry.",
18643
18951
  },
18644
18952
  subscriptions: {
18645
18953
  create: "Create Subscription",
@@ -18650,6 +18958,10 @@ const messages = {
18650
18958
  active: "Active",
18651
18959
  trialing: "Trialing",
18652
18960
  canceled: "Canceled",
18961
+ statusFilter: "Filter by subscription status",
18962
+ planFilter: "Filter by plan",
18963
+ loadFailed: "Failed to load subscriptions",
18964
+ loadFailedDescription: "Subscriptions or the plan catalog could not be read. Summary metrics are not treated as zero.",
18653
18965
  },
18654
18966
  provision: {
18655
18967
  successTitle: "Subscription Provisioned",
@@ -18669,20 +18981,82 @@ const messages = {
18669
18981
  adminEmail: "Admin Email",
18670
18982
  billingCycle: "Billing Cycle",
18671
18983
  workspaceId: "Workspace ID",
18984
+ subscriptionId: "Subscription ID",
18985
+ catalogLoadFailed: "Failed to load the subscription catalog",
18986
+ catalogLoadFailedDescription: "Available plans and billing cycles could not be read. Resolve the issue and retry.",
18987
+ language: "Default Language",
18988
+ timezone: "Default Time Zone",
18989
+ dateFormat: "Date Format",
18990
+ timeFormat: "Time Format",
18991
+ numberFormat: "Number Format",
18992
+ currencyPosition: "Currency Symbol Position",
18993
+ fiscalYearStartMonth: "Fiscal Year Start Month",
18672
18994
  },
18673
18995
  tenantDetail: {
18674
18996
  updateSuccess: "Subscription updated",
18675
18997
  updateFailed: "Subscription update failed",
18676
- price: "Price",
18677
- currentStart: "Current Start",
18678
- currentEnd: "Current End",
18679
- extend: "Extend",
18680
- expiryDays: "Expiry Days",
18681
- loginPerWeek: "Login / Week",
18682
- usageRatio: "Usage Ratio",
18683
- token: "Token",
18998
+ title: "Customer Subscription Detail",
18999
+ description: "Review the customer subscription, health risks, resource usage, registration account, and formal invoices.",
19000
+ subscriptionSummary: "Subscription Summary",
19001
+ healthAndUsage: "Health and Resource Usage",
19002
+ price: "Subscription Amount",
19003
+ currentStart: "Current Period Start",
19004
+ currentEnd: "Current Period End",
19005
+ extend: "Extend To",
19006
+ expiryDays: "Days Until Expiry",
19007
+ loginPerWeek: "Logins per Week",
19008
+ usageRatio: "Overall Usage Ratio",
19009
+ token: "Token Usage",
18684
19010
  apiCalls: "API Calls",
18685
- storage: "Storage",
19011
+ storage: "File Storage",
19012
+ tokenUnit: "tokens",
19013
+ callUnit: "calls",
19014
+ noRiskReason: "No health-risk rule is currently triggered",
19015
+ measurementStatus: "Measurement Status",
19016
+ measured: "Measured",
19017
+ unknownMeasurement: "Some or all measurements are unknown",
19018
+ measuredTime: "Data Time",
19019
+ unavailableMeasurements: "Unavailable Measurements",
19020
+ measurementUnavailable: "This measurement is currently unavailable",
19021
+ quotaRemaining: "Remaining quota",
19022
+ quotaExceeded: "Quota reached or exceeded",
19023
+ increaseQuota: "Increase Quota",
19024
+ quotaResource: "Resource over quota",
19025
+ currentUsage: "Current usage",
19026
+ currentQuota: "Current quota",
19027
+ recommendedPlan: "Recommended upgrade",
19028
+ upgradePlan: "Upgrade Plan and Increase Quota",
19029
+ quotaUpgradeDescription: "Upgrading increases Token, API-call, and file-storage quotas together and is audited by the subscription owner. Current billing-period dates are preserved.",
19030
+ noHigherQuotaPlan: "Already on the highest plan",
19031
+ noHigherQuotaPlanDescription: "No higher automatic plan quota is available. Configure additional capacity through the enterprise contract workflow.",
19032
+ quotaIncreaseSuccess: "Quota increased",
19033
+ quotaIncreaseSuccessDescription: "The plan was upgraded and the latest resource quotas and risk state were refreshed.",
19034
+ quotaIncreaseFailed: "Failed to increase quota",
19035
+ activityTitle: "Daily Usage Activity — Last 90 Days",
19036
+ activityDescription: "Token and API activity use separate units and scales. Dates without observed activity are not filled with zeros. File storage currently provides only a point-in-time measurement.",
19037
+ activityDateRange: "{start} to {end}",
19038
+ noActivityRange: "No available date range",
19039
+ tokenActivity: "Daily Token Consumption",
19040
+ apiActivity: "Daily API Calls",
19041
+ periodTotal: "Period Total",
19042
+ latestObserved: "Latest Observation",
19043
+ insufficientTrendData: "Only one observed day is available, so no trend is drawn.",
19044
+ noActivityData: "No activity data is available for this period.",
19045
+ activityChartAria: "{metric}, range {range}, unit {unit}",
19046
+ measuredAt: "Measured {value}",
19047
+ storageSnapshot: "Current Storage Snapshot",
19048
+ storageSnapshotDescription: "Measured on {date}; no historical storage series is currently available.",
19049
+ storageUnavailable: "The file-storage measurement is currently unavailable.",
19050
+ subscriptionChange: "Subscription Change",
19051
+ subscriptionChangeDescription: "Change the plan or billing cycle, or extend the service period. The subscription owner records an audit entry when saved.",
19052
+ invoiceTitle: "Formal Invoices",
19053
+ invoiceDescription: "Only formal invoices for this customer are shown. Select a row to open the scoped invoice detail.",
19054
+ scopeRequired: "Customer workspace scope is missing",
19055
+ scopeRequiredDescription: "Open customer detail from the subscription list.",
19056
+ notFound: "Customer subscription not found",
19057
+ notFoundDescription: "This workspace has no manageable subscription, or it has been removed.",
19058
+ loadFailed: "Customer detail loaded incompletely",
19059
+ loadFailedDescription: "At least one of subscription, health, invoices, plan catalog, or registration account failed to load. Please retry.",
18686
19060
  },
18687
19061
  users: {
18688
19062
  title: "Registration Account",
@@ -18711,6 +19085,11 @@ const messages = {
18711
19085
  editProfile: "Edit Profile",
18712
19086
  email: "Admin Email",
18713
19087
  emailChangedSessionsRevoked: "Email updated; all of this user\u2019s sessions have been revoked and re-login is required",
19088
+ maintainRegistrationEmail: "Maintain Registration Email",
19089
+ saveRegistrationEmail: "Save Email",
19090
+ registrationEmailChangeWarning: "Future password-reset messages will be sent to the new address, and all current sessions for this account will be revoked.",
19091
+ registrationEmailInvalid: "Enter a valid registration email",
19092
+ registrationAccountActionUnavailable: "This legacy subscription has no trusted registration-account record. The platform will not guess from Org users; record the account ownership first.",
18714
19093
  saveSuccess: "User profile updated",
18715
19094
  saveFail: "Failed to update user profile",
18716
19095
  username: "Username",
@@ -18729,17 +19108,68 @@ const messages = {
18729
19108
  renewals: {
18730
19109
  invalidExtension: "Extension date must be later than the current period end",
18731
19110
  updateSuccess: "Subscription updated",
19111
+ updateFailed: "Subscription update failed. Check the input and try again.",
18732
19112
  days: "Days",
18733
19113
  renewal: "Renewal",
18734
19114
  lastPayment: "Last Payment",
18735
19115
  edit: "Edit",
19116
+ loadFailed: "Failed to load renewals",
19117
+ loadFailedDescription: "The renewal owner data could not be read. Please retry.",
18736
19118
  },
18737
19119
  billing: {
19120
+ title: "Customer billing overview",
19121
+ description: "Review formal invoice receivables, collections, and overdue balances by customer, invoice status, payment status, and billing date.",
19122
+ customer: "Customer",
19123
+ allCustomers: "All customers",
18738
19124
  invoiceStatus: "Invoice status",
19125
+ paymentStatus: "Payment status",
19126
+ billingDate: "Billing date",
19127
+ resetFilters: "Reset filters",
19128
+ exportAll: "Export all matching invoices",
19129
+ invoiceDetails: "Formal invoice details",
19130
+ mrr: "Monthly recurring revenue",
19131
+ outstandingAmount: "Outstanding amount",
19132
+ paidAmount: "Collected amount",
19133
+ overdueAmount: "Overdue amount",
19134
+ invoiceCount: "Total invoices",
19135
+ paidInvoices: "Paid invoices",
19136
+ overdueInvoices: "Overdue invoices",
19137
+ currency: "Currency",
19138
+ currencyUnknown: "Currency unavailable",
19139
+ sourceNote: "Only formal invoices generated by BillingService are included; internal observation invoices are excluded.",
19140
+ metricScope: "MRR follows the customer filter only; receivables, collections, overdue balances, and invoice counts apply all filters.",
19141
+ measuredAt: "Measured at",
18739
19142
  outstanding: "Outstanding",
18740
19143
  paid: "Paid",
18741
19144
  noInvoices: "No matching invoices",
19145
+ loadFailed: "Failed to load the customer billing overview",
19146
+ loadFailedDescription: "Invoice detail or billing summaries could not be read. Amounts are not treated as zero.",
19147
+ exportFailed: "Invoice export failed",
18742
19148
  period: "Period",
19149
+ workbenchTitle: "Collection Work Status",
19150
+ workbenchDescription: "Derived from formal invoices and payment-flow states. Internal observation invoices are excluded.",
19151
+ outstandingInvoices: "Outstanding Invoices",
19152
+ paymentFailures: "Payment Failures",
19153
+ transferReviews: "Transfers to Review",
19154
+ paymentsProcessing: "Payments Processing",
19155
+ workStates: {
19156
+ noInvoices: "No Formal Invoices",
19157
+ overdue: "Overdue — Immediate Follow-up",
19158
+ paymentFailed: "Payment Failure — Action Required",
19159
+ transferReview: "Bank Transfer Review Required",
19160
+ collectionInProgress: "Collection in Progress",
19161
+ settled: "Invoices Settled",
19162
+ unknown: "Billing State Unknown",
19163
+ },
19164
+ workReasons: {
19165
+ noFormalInvoices: "There are no formal invoices in the current filter scope.",
19166
+ overdueCollectionRequired: "Overdue invoices require priority collection follow-up.",
19167
+ paymentFailureRequiresAction: "A payment failed; review the payment channel or contact the customer.",
19168
+ bankTransferReviewRequired: "A customer submitted a bank-transfer reference for finance review.",
19169
+ paymentProcessing: "Some payment orders are still processing at the provider.",
19170
+ outstandingCollectionRequired: "Formal invoices remain unsettled.",
19171
+ allFormalInvoicesSettled: "All formal invoices in the current filter scope are settled.",
19172
+ },
18743
19173
  },
18744
19174
  invoiceDetail: {
18745
19175
  invoiceId: "Invoice ID",
@@ -18748,11 +19178,38 @@ const messages = {
18748
19178
  tokenCost: "Token Cost",
18749
19179
  storageCost: "Storage Cost",
18750
19180
  usageSubtotal: "Usage Subtotal",
19181
+ scopeRequired: "Invoice workspace is required",
19182
+ scopeRequiredDescription: "Invoice details require both an invoice ID and its workspace to prevent cross-customer reads.",
19183
+ loadFailed: "Invoice details failed to load",
19184
+ loadFailedDescription: "The invoice could not be loaded for this customer. Try again later.",
19185
+ notFound: "No invoice was found in this customer scope",
18751
19186
  },
18752
19187
  health: {
19188
+ title: "Tenant health details",
19189
+ description: "Health combines subscription expiry, weekly login activity, and resource usage. Select a tenant to view subscription details.",
19190
+ needsAttention: "Needs attention",
19191
+ all: "All",
19192
+ riskReason: "Risk reason",
19193
+ riskReasons: {
19194
+ subscriptionMissing: "No valid subscription found",
19195
+ subscriptionPastDue: "Subscription is past due",
19196
+ subscriptionUnpaid: "Subscription is unpaid",
19197
+ subscriptionExpired: "Subscription has expired",
19198
+ subscriptionExpiringSoon: "Subscription expires within 30 days",
19199
+ loginActivityLow: "Weekly login activity is below 3",
19200
+ loginActivityBelowHealthy: "Weekly login activity is below the healthy range",
19201
+ usageVeryLow: "Resource usage is below 10%",
19202
+ usageBelowHealthy: "Resource usage is below the healthy range",
19203
+ usageHigh: "Resource usage exceeds 80%",
19204
+ subscriptionNotActive: "Subscription is not active",
19205
+ measurementUnavailable: "Some health measurements are unavailable",
19206
+ healthThresholdNotMet: "Health criteria are not met",
19207
+ },
18753
19208
  expiryDays: "Expiry Days",
18754
19209
  loginPerWeek: "Login / Week",
18755
19210
  usage: "Usage",
19211
+ loadFailed: "Tenant health data failed to load",
19212
+ loadFailedDescription: "The complete workspace directory or health metrics could not be loaded. Statistics are hidden to avoid treating missing data as healthy.",
18756
19213
  },
18757
19214
  },
18758
19215
  impersonation: {
@@ -18804,6 +19261,11 @@ const messages = {
18804
19261
  issued: "Issued",
18805
19262
  paid: "Paid",
18806
19263
  overdue: "Overdue",
19264
+ expiringSoon: "Expiring Soon",
19265
+ renewed: "Renewed",
19266
+ disputed: "Disputed",
19267
+ transferPending: "Awaiting Bank Transfer",
19268
+ transferSubmitted: "Transfer submitted",
18807
19269
  void: "Void",
18808
19270
  queued: "Queued",
18809
19271
  preparing: "Preparing",
@@ -18868,6 +19330,18 @@ const messages = {
18868
19330
  quarterly: "Quarterly",
18869
19331
  yearly: "Yearly",
18870
19332
  },
19333
+ plan: {
19334
+ starter: "Starter",
19335
+ professional: "Professional",
19336
+ enterprise: "Enterprise",
19337
+ },
19338
+ measurement: {
19339
+ token: "Token Usage",
19340
+ api: "API Calls",
19341
+ file: "File Storage",
19342
+ login: "Login Activity",
19343
+ seat: "Seats",
19344
+ },
18871
19345
  providerKind: {
18872
19346
  openaiCompatible: "OpenAI Compatible",
18873
19347
  openai: "OpenAI",
@@ -18976,6 +19450,7 @@ const messages = {
18976
19450
  workbenchAria: "Provider operations workbench",
18977
19451
  recordsAria: "Provider records and policies",
18978
19452
  riskTitle: "Risk and safe next actions",
19453
+ noActiveRisk: "No provider risk currently requires action.",
18979
19454
  contractGuarded: "Contract guarded",
18980
19455
  maskedAuditView: "Masked audit view",
18981
19456
  providerConfigs: "Provider configs",
@@ -19076,6 +19551,8 @@ const messages = {
19076
19551
  testProvider: "Test provider capabilities",
19077
19552
  editProvider: "Edit provider",
19078
19553
  probeResults: "Capability test results",
19554
+ noWiredProbeTargets: "There are no wired capability targets to test. Configure an active model and select only capabilities marked WIRED by the runtime catalog.",
19555
+ noProbeResults: "No capability-test evidence was returned",
19079
19556
  result: "Result",
19080
19557
  passed: "Passed",
19081
19558
  failed: "Failed",
@@ -19145,6 +19622,8 @@ const messages = {
19145
19622
  notWired: "NOT_WIRED",
19146
19623
  capabilityCatalogTitle: "Runtime capability catalog",
19147
19624
  capabilityCatalogDescription: "Each capability is only executable when a real runtime consumer is wired. NOT_WIRED capabilities cannot be enabled on providers.",
19625
+ runtimeCatalogUnavailable: "Runtime capability catalog unavailable",
19626
+ invalidJson: "{field} contains invalid JSON",
19148
19627
  capabilityColumn: "Capability",
19149
19628
  wiringColumn: "Wiring",
19150
19629
  runtimeConsumerColumn: "Runtime consumer",
@@ -19166,6 +19645,9 @@ const messages = {
19166
19645
  },
19167
19646
  channelProviderControlPlane: {
19168
19647
  ui: {
19648
+ loadFailed: "Failed to load the channel provider control plane",
19649
+ loadFailedDescription: "Channel provider configurations and organization policies could not be read. Please retry.",
19650
+ retry: "Retry",
19169
19651
  capability: {
19170
19652
  send_email: "Send Email",
19171
19653
  receive_email: "Receive Email",
@@ -19238,6 +19720,12 @@ const messages = {
19238
19720
  webhookSecret: "Webhook secret",
19239
19721
  updated: "Updated",
19240
19722
  notWired: "NOT_WIRED",
19723
+ invalidJson: "{field} must contain valid JSON",
19724
+ configuredSecretRefHint: "Configured. Leave blank to retain the current SecretRef without reading or overwriting the credential.",
19725
+ optionalProviderSecretRefHint: "Leave blank when this provider does not require a credential.",
19726
+ optionalWebhookSecretRefHint: "Leave blank when this channel does not require webhook signature verification.",
19727
+ wiredCapabilitiesHint: "Only capabilities with a registered runtime consumer can be enabled.",
19728
+ notWiredCapabilitiesHint: "Providers without runtime wiring cannot enable delivery capabilities.",
19241
19729
  },
19242
19730
  },
19243
19731
  telephonyProviderControlPlane: {