@nexusclawhq/cli 0.3.14 → 0.3.16

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