create-principles-disciple 1.146.4 → 1.146.7

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 (350) hide show
  1. package/_release/product-identity.json +1 -1
  2. package/codex-adapter/package.json +1 -1
  3. package/core/dist/runtime-v2/evidence-triage/index.d.ts +1 -3
  4. package/core/dist/runtime-v2/evidence-triage/index.d.ts.map +1 -1
  5. package/core/dist/runtime-v2/evidence-triage/index.js +1 -2
  6. package/core/dist/runtime-v2/evidence-triage/index.js.map +1 -1
  7. package/core/dist/runtime-v2/evidence-triage/observation-resolver.d.ts +0 -19
  8. package/core/dist/runtime-v2/evidence-triage/observation-resolver.d.ts.map +1 -1
  9. package/core/dist/runtime-v2/evidence-triage/observation-resolver.js +0 -25
  10. package/core/dist/runtime-v2/evidence-triage/observation-resolver.js.map +1 -1
  11. package/core/dist/runtime-v2/index.d.ts +2 -2
  12. package/core/dist/runtime-v2/index.d.ts.map +1 -1
  13. package/core/dist/runtime-v2/index.js +1 -1
  14. package/core/dist/runtime-v2/index.js.map +1 -1
  15. package/core/dist/telemetry-event.d.ts +2 -2
  16. package/core/dist/telemetry-event.d.ts.map +1 -1
  17. package/core/dist/telemetry-event.js +4 -5
  18. package/core/dist/telemetry-event.js.map +1 -1
  19. package/core/dist/trajectory-store.d.ts.map +1 -1
  20. package/core/dist/trajectory-store.js +4 -44
  21. package/core/dist/trajectory-store.js.map +1 -1
  22. package/core/package.json +1 -1
  23. package/host-runtime/package.json +1 -1
  24. package/package.json +4 -4
  25. package/plugin/dist/bundle.js +460 -460
  26. package/plugin/dist/core/config.d.ts +0 -2
  27. package/plugin/dist/core/trajectory.d.ts +0 -6
  28. package/plugin/dist/hooks/llm.d.ts +0 -1
  29. package/plugin/dist/hooks/prompt-helpers.d.ts +2 -1
  30. package/plugin/dist/hooks/raw-observation-adapter.d.ts +6 -4
  31. package/plugin/dist/hooks/triage-adapter.d.ts +1 -1
  32. package/plugin/dist/openclaw.plugin.json +1 -1
  33. package/plugin/dist/rulehost-evidence.js +6 -6
  34. package/plugin/dist/templates/pain_settings.json +0 -2
  35. package/plugin/openclaw.plugin.json +1 -1
  36. package/plugin/package.json +1 -1
  37. package/plugin/templates/pain_settings.json +0 -2
  38. package/release-manager/package.json +4 -4
  39. package/workbuddy-adapter/package.json +1 -1
  40. package/console/dist/ui/App.d.ts +0 -1
  41. package/console/dist/ui/App.js +0 -172
  42. package/console/dist/ui/api.d.ts +0 -611
  43. package/console/dist/ui/api.js +0 -1094
  44. package/console/dist/ui/components/auth/login-form.d.ts +0 -4
  45. package/console/dist/ui/components/auth/login-form.js +0 -142
  46. package/console/dist/ui/components/auth/splash-screen.d.ts +0 -9
  47. package/console/dist/ui/components/auth/splash-screen.js +0 -22
  48. package/console/dist/ui/components/error-boundary.d.ts +0 -15
  49. package/console/dist/ui/components/error-boundary.js +0 -30
  50. package/console/dist/ui/components/focus/daily-thought-card.d.ts +0 -1
  51. package/console/dist/ui/components/focus/daily-thought-card.js +0 -41
  52. package/console/dist/ui/components/language-switcher.d.ts +0 -2
  53. package/console/dist/ui/components/language-switcher.js +0 -17
  54. package/console/dist/ui/components/layout/app-sidebar.d.ts +0 -27
  55. package/console/dist/ui/components/layout/app-sidebar.js +0 -128
  56. package/console/dist/ui/components/layout/page-loading.d.ts +0 -13
  57. package/console/dist/ui/components/layout/page-loading.js +0 -14
  58. package/console/dist/ui/components/layout/page-shell.d.ts +0 -12
  59. package/console/dist/ui/components/layout/page-shell.js +0 -11
  60. package/console/dist/ui/components/layout/section-title.d.ts +0 -10
  61. package/console/dist/ui/components/layout/section-title.js +0 -9
  62. package/console/dist/ui/components/notifications/NotificationProvider.d.ts +0 -14
  63. package/console/dist/ui/components/notifications/NotificationProvider.js +0 -136
  64. package/console/dist/ui/components/notifications/favicon-badge.d.ts +0 -3
  65. package/console/dist/ui/components/notifications/favicon-badge.js +0 -68
  66. package/console/dist/ui/components/notifications/notification-reducer.d.ts +0 -9
  67. package/console/dist/ui/components/notifications/notification-reducer.js +0 -9
  68. package/console/dist/ui/components/notifications/sound-storage.d.ts +0 -3
  69. package/console/dist/ui/components/notifications/sound-storage.js +0 -37
  70. package/console/dist/ui/components/notifications/useNotifications.d.ts +0 -1
  71. package/console/dist/ui/components/notifications/useNotifications.js +0 -9
  72. package/console/dist/ui/components/onboarding/CircuitDiagram.d.ts +0 -8
  73. package/console/dist/ui/components/onboarding/CircuitDiagram.js +0 -18
  74. package/console/dist/ui/components/onboarding/DemoResultView.d.ts +0 -22
  75. package/console/dist/ui/components/onboarding/DemoResultView.js +0 -33
  76. package/console/dist/ui/components/onboarding/SlashCommandsCard.d.ts +0 -16
  77. package/console/dist/ui/components/onboarding/SlashCommandsCard.js +0 -20
  78. package/console/dist/ui/components/onboarding/slashCommands.d.ts +0 -20
  79. package/console/dist/ui/components/onboarding/slashCommands.js +0 -22
  80. package/console/dist/ui/components/receipts/ReceiptCoverageDisclosure.d.ts +0 -6
  81. package/console/dist/ui/components/receipts/ReceiptCoverageDisclosure.js +0 -66
  82. package/console/dist/ui/components/theme-provider.d.ts +0 -14
  83. package/console/dist/ui/components/theme-provider.js +0 -40
  84. package/console/dist/ui/components/theme-toggle.d.ts +0 -2
  85. package/console/dist/ui/components/theme-toggle.js +0 -11
  86. package/console/dist/ui/components/ui/alert-dialog.d.ts +0 -20
  87. package/console/dist/ui/components/ui/alert-dialog.js +0 -26
  88. package/console/dist/ui/components/ui/badge.d.ts +0 -9
  89. package/console/dist/ui/components/ui/badge.js +0 -22
  90. package/console/dist/ui/components/ui/button.d.ts +0 -11
  91. package/console/dist/ui/components/ui/button.js +0 -34
  92. package/console/dist/ui/components/ui/card.d.ts +0 -8
  93. package/console/dist/ui/components/ui/card.js +0 -16
  94. package/console/dist/ui/components/ui/charts.d.ts +0 -51
  95. package/console/dist/ui/components/ui/charts.js +0 -72
  96. package/console/dist/ui/components/ui/dialog.d.ts +0 -19
  97. package/console/dist/ui/components/ui/dialog.js +0 -22
  98. package/console/dist/ui/components/ui/input.d.ts +0 -3
  99. package/console/dist/ui/components/ui/input.js +0 -8
  100. package/console/dist/ui/components/ui/markdown.d.ts +0 -24
  101. package/console/dist/ui/components/ui/markdown.js +0 -119
  102. package/console/dist/ui/components/ui/progress-bar.d.ts +0 -20
  103. package/console/dist/ui/components/ui/progress-bar.js +0 -38
  104. package/console/dist/ui/components/ui/select.d.ts +0 -13
  105. package/console/dist/ui/components/ui/select.js +0 -26
  106. package/console/dist/ui/components/ui/separator.d.ts +0 -3
  107. package/console/dist/ui/components/ui/separator.js +0 -6
  108. package/console/dist/ui/components/ui/sheet.d.ts +0 -25
  109. package/console/dist/ui/components/ui/sheet.js +0 -37
  110. package/console/dist/ui/components/ui/shiny-text.d.ts +0 -28
  111. package/console/dist/ui/components/ui/shiny-text.js +0 -46
  112. package/console/dist/ui/components/ui/skeleton.d.ts +0 -3
  113. package/console/dist/ui/components/ui/skeleton.js +0 -6
  114. package/console/dist/ui/components/ui/sonner.d.ts +0 -3
  115. package/console/dist/ui/components/ui/sonner.js +0 -13
  116. package/console/dist/ui/components/ui/tooltip.d.ts +0 -7
  117. package/console/dist/ui/components/ui/tooltip.js +0 -10
  118. package/console/dist/ui/data/daily-thoughts.d.ts +0 -15
  119. package/console/dist/ui/data/daily-thoughts.js +0 -164
  120. package/console/dist/ui/hooks/useNotificationSound.d.ts +0 -12
  121. package/console/dist/ui/hooks/useNotificationSound.js +0 -74
  122. package/console/dist/ui/i18n/en.json +0 -2399
  123. package/console/dist/ui/i18n/index.d.ts +0 -2
  124. package/console/dist/ui/i18n/index.js +0 -32
  125. package/console/dist/ui/i18n/zh-CN.json +0 -2399
  126. package/console/dist/ui/main.d.ts +0 -1
  127. package/console/dist/ui/main.js +0 -9
  128. package/console/dist/ui/pages/ReportProblemValidators.d.ts +0 -144
  129. package/console/dist/ui/pages/ReportProblemValidators.js +0 -418
  130. package/console/dist/ui/pages/activation/ActivationPage.d.ts +0 -1
  131. package/console/dist/ui/pages/activation/ActivationPage.js +0 -512
  132. package/console/dist/ui/pages/activation/ActivationValidators.d.ts +0 -20
  133. package/console/dist/ui/pages/activation/ActivationValidators.js +0 -160
  134. package/console/dist/ui/pages/control-center/AgentCard.d.ts +0 -31
  135. package/console/dist/ui/pages/control-center/AgentCard.js +0 -212
  136. package/console/dist/ui/pages/control-center/AgentGroup.d.ts +0 -26
  137. package/console/dist/ui/pages/control-center/AgentGroup.js +0 -38
  138. package/console/dist/ui/pages/control-center/ControlCenterPage.d.ts +0 -1
  139. package/console/dist/ui/pages/control-center/ControlCenterPage.js +0 -509
  140. package/console/dist/ui/pages/control-center/DesignGatePanel.d.ts +0 -1
  141. package/console/dist/ui/pages/control-center/DesignGatePanel.js +0 -137
  142. package/console/dist/ui/pages/control-center/RuntimeProfileManager.d.ts +0 -31
  143. package/console/dist/ui/pages/control-center/RuntimeProfileManager.js +0 -199
  144. package/console/dist/ui/pages/control-center/WorkflowDiagram.d.ts +0 -17
  145. package/console/dist/ui/pages/control-center/WorkflowDiagram.js +0 -55
  146. package/console/dist/ui/pages/debt/DebtPage.d.ts +0 -2
  147. package/console/dist/ui/pages/debt/DebtPage.js +0 -222
  148. package/console/dist/ui/pages/design-system/DesignSystemPage.d.ts +0 -2
  149. package/console/dist/ui/pages/design-system/DesignSystemPage.js +0 -30
  150. package/console/dist/ui/pages/examiner/ExaminerPage.d.ts +0 -15
  151. package/console/dist/ui/pages/examiner/ExaminerPage.js +0 -158
  152. package/console/dist/ui/pages/failed-tasks/FailedTasksPage.d.ts +0 -1
  153. package/console/dist/ui/pages/failed-tasks/FailedTasksPage.js +0 -421
  154. package/console/dist/ui/pages/focus/ApprovalSubjectReading.d.ts +0 -24
  155. package/console/dist/ui/pages/focus/ApprovalSubjectReading.js +0 -133
  156. package/console/dist/ui/pages/focus/FocusPage.d.ts +0 -123
  157. package/console/dist/ui/pages/focus/FocusPage.js +0 -567
  158. package/console/dist/ui/pages/focus/OwnerDecisionCard.d.ts +0 -9
  159. package/console/dist/ui/pages/focus/OwnerDecisionCard.js +0 -111
  160. package/console/dist/ui/pages/focus/OwnerWorkbench.d.ts +0 -19
  161. package/console/dist/ui/pages/focus/OwnerWorkbench.js +0 -75
  162. package/console/dist/ui/pages/focus/RuleCandidateBindingPanel.d.ts +0 -34
  163. package/console/dist/ui/pages/focus/RuleCandidateBindingPanel.js +0 -298
  164. package/console/dist/ui/pages/focus/focus-validation.d.ts +0 -40
  165. package/console/dist/ui/pages/focus/focus-validation.js +0 -211
  166. package/console/dist/ui/pages/intent/IntentOnboarding.d.ts +0 -67
  167. package/console/dist/ui/pages/intent/IntentOnboarding.js +0 -289
  168. package/console/dist/ui/pages/intent/IntentPage.d.ts +0 -1
  169. package/console/dist/ui/pages/intent/IntentPage.js +0 -252
  170. package/console/dist/ui/pages/pain/PainEvidenceValidators.d.ts +0 -59
  171. package/console/dist/ui/pages/pain/PainEvidenceValidators.js +0 -125
  172. package/console/dist/ui/pages/pain/PainPage.d.ts +0 -1
  173. package/console/dist/ui/pages/pain/PainPage.js +0 -420
  174. package/console/dist/ui/pages/pain/pain-card-helpers.d.ts +0 -175
  175. package/console/dist/ui/pages/pain/pain-card-helpers.js +0 -181
  176. package/console/dist/ui/pages/principles/CorePrinciplesPage.d.ts +0 -10
  177. package/console/dist/ui/pages/principles/CorePrinciplesPage.js +0 -59
  178. package/console/dist/ui/pages/principles/PrincipleDetailPage.d.ts +0 -60
  179. package/console/dist/ui/pages/principles/PrincipleDetailPage.js +0 -602
  180. package/console/dist/ui/pages/principles/PrinciplesPage.d.ts +0 -1
  181. package/console/dist/ui/pages/principles/PrinciplesPage.js +0 -327
  182. package/console/dist/ui/pages/principles/PrinciplesViewNav.d.ts +0 -8
  183. package/console/dist/ui/pages/principles/PrinciplesViewNav.js +0 -15
  184. package/console/dist/ui/pages/report-problem/ReportProblemPage.d.ts +0 -1
  185. package/console/dist/ui/pages/report-problem/ReportProblemPage.js +0 -467
  186. package/console/dist/ui/pages/settings/SettingsPage.d.ts +0 -4
  187. package/console/dist/ui/pages/settings/SettingsPage.js +0 -457
  188. package/console/dist/ui/pages/settings/UpdatePage.d.ts +0 -1
  189. package/console/dist/ui/pages/settings/UpdatePage.js +0 -215
  190. package/console/dist/ui/pages/welcome/WelcomePage.d.ts +0 -5
  191. package/console/dist/ui/pages/welcome/WelcomePage.js +0 -187
  192. package/console/dist/ui/utils/agent-metadata.d.ts +0 -71
  193. package/console/dist/ui/utils/agent-metadata.js +0 -284
  194. package/console/dist/ui/utils/approval-review.d.ts +0 -30
  195. package/console/dist/ui/utils/approval-review.js +0 -50
  196. package/console/dist/ui/utils/approval-warning-localization.d.ts +0 -34
  197. package/console/dist/ui/utils/approval-warning-localization.js +0 -148
  198. package/console/dist/ui/utils/attention-presentation.d.ts +0 -35
  199. package/console/dist/ui/utils/attention-presentation.js +0 -46
  200. package/console/dist/ui/utils/blocker-localization.d.ts +0 -23
  201. package/console/dist/ui/utils/blocker-localization.js +0 -36
  202. package/console/dist/ui/utils/control-center-helpers.d.ts +0 -79
  203. package/console/dist/ui/utils/control-center-helpers.js +0 -189
  204. package/console/dist/ui/utils/enum-labels.d.ts +0 -50
  205. package/console/dist/ui/utils/enum-labels.js +0 -171
  206. package/console/dist/ui/utils/format-date.d.ts +0 -11
  207. package/console/dist/ui/utils/format-date.js +0 -17
  208. package/console/dist/ui/utils/onboarding-state.d.ts +0 -25
  209. package/console/dist/ui/utils/onboarding-state.js +0 -77
  210. package/console/dist/ui/utils/reading-layout.d.ts +0 -20
  211. package/console/dist/ui/utils/reading-layout.js +0 -46
  212. package/console/dist/ui/utils/rule-binding-validators.d.ts +0 -13
  213. package/console/dist/ui/utils/rule-binding-validators.js +0 -188
  214. package/console/dist/ui/utils/runtime-mode.d.ts +0 -11
  215. package/console/dist/ui/utils/runtime-mode.js +0 -11
  216. package/console/dist/ui/utils/token-storage.d.ts +0 -22
  217. package/console/dist/ui/utils/token-storage.js +0 -47
  218. package/console/dist/ui/utils/validators.d.ts +0 -1178
  219. package/console/dist/ui/utils/validators.js +0 -3297
  220. package/core/dist/runtime-v2/evidence-triage/admission-events.d.ts +0 -126
  221. package/core/dist/runtime-v2/evidence-triage/admission-events.d.ts.map +0 -1
  222. package/core/dist/runtime-v2/evidence-triage/admission-events.js +0 -159
  223. package/core/dist/runtime-v2/evidence-triage/admission-events.js.map +0 -1
  224. package/plugin/dist/core/detection-funnel.d.ts +0 -47
  225. package/plugin/dist/core/detection-service.d.ts +0 -15
  226. package/release-manager/dist/bootstrap-entry.d.ts +0 -2
  227. package/release-manager/dist/bootstrap-entry.d.ts.map +0 -1
  228. package/release-manager/dist/bootstrap-entry.js.map +0 -1
  229. package/release-manager/dist/i18n.d.ts +0 -6
  230. package/release-manager/dist/i18n.d.ts.map +0 -1
  231. package/release-manager/dist/i18n.js.map +0 -1
  232. package/release-manager/dist/index.d.ts +0 -7
  233. package/release-manager/dist/index.d.ts.map +0 -1
  234. package/release-manager/dist/index.js +0 -656
  235. package/release-manager/dist/index.js.map +0 -1
  236. package/release-manager/dist/installer.d.ts +0 -629
  237. package/release-manager/dist/installer.d.ts.map +0 -1
  238. package/release-manager/dist/installer.js.map +0 -1
  239. package/release-manager/dist/installers/codex-host-installer.d.ts +0 -39
  240. package/release-manager/dist/installers/codex-host-installer.d.ts.map +0 -1
  241. package/release-manager/dist/installers/codex-host-installer.js.map +0 -1
  242. package/release-manager/dist/installers/index.d.ts +0 -51
  243. package/release-manager/dist/installers/index.d.ts.map +0 -1
  244. package/release-manager/dist/installers/index.js.map +0 -1
  245. package/release-manager/dist/installers/openclaw-host-installer.d.ts +0 -14
  246. package/release-manager/dist/installers/openclaw-host-installer.d.ts.map +0 -1
  247. package/release-manager/dist/installers/openclaw-host-installer.js.map +0 -1
  248. package/release-manager/dist/installers/workbuddy-host-installer.d.ts +0 -335
  249. package/release-manager/dist/installers/workbuddy-host-installer.d.ts.map +0 -1
  250. package/release-manager/dist/installers/workbuddy-host-installer.js.map +0 -1
  251. package/release-manager/dist/mvp-config.d.ts +0 -233
  252. package/release-manager/dist/mvp-config.d.ts.map +0 -1
  253. package/release-manager/dist/mvp-config.js.map +0 -1
  254. package/release-manager/dist/prompts.d.ts +0 -43
  255. package/release-manager/dist/prompts.d.ts.map +0 -1
  256. package/release-manager/dist/prompts.js +0 -268
  257. package/release-manager/dist/prompts.js.map +0 -1
  258. package/release-manager/dist/skill-language.d.ts +0 -32
  259. package/release-manager/dist/skill-language.d.ts.map +0 -1
  260. package/release-manager/dist/skill-language.js.map +0 -1
  261. package/release-manager/dist/uninstaller.d.ts +0 -68
  262. package/release-manager/dist/uninstaller.d.ts.map +0 -1
  263. package/release-manager/dist/uninstaller.js +0 -746
  264. package/release-manager/dist/uninstaller.js.map +0 -1
  265. package/release-manager/dist/update/apply-payload.d.ts +0 -143
  266. package/release-manager/dist/update/apply-payload.d.ts.map +0 -1
  267. package/release-manager/dist/update/apply-payload.js.map +0 -1
  268. package/release-manager/dist/update/atomic-file.d.ts +0 -35
  269. package/release-manager/dist/update/atomic-file.d.ts.map +0 -1
  270. package/release-manager/dist/update/atomic-file.js.map +0 -1
  271. package/release-manager/dist/update/bootstrap-executor.d.ts +0 -21
  272. package/release-manager/dist/update/bootstrap-executor.d.ts.map +0 -1
  273. package/release-manager/dist/update/bootstrap-executor.js.map +0 -1
  274. package/release-manager/dist/update/bootstrap-protocol.d.ts +0 -56
  275. package/release-manager/dist/update/bootstrap-protocol.d.ts.map +0 -1
  276. package/release-manager/dist/update/bootstrap-protocol.js.map +0 -1
  277. package/release-manager/dist/update/channel-metadata.d.ts +0 -28
  278. package/release-manager/dist/update/channel-metadata.d.ts.map +0 -1
  279. package/release-manager/dist/update/channel-metadata.js.map +0 -1
  280. package/release-manager/dist/update/channel-promotion.d.ts +0 -39
  281. package/release-manager/dist/update/channel-promotion.d.ts.map +0 -1
  282. package/release-manager/dist/update/channel-promotion.js +0 -55
  283. package/release-manager/dist/update/channel-promotion.js.map +0 -1
  284. package/release-manager/dist/update/console-surface.d.ts +0 -19
  285. package/release-manager/dist/update/console-surface.d.ts.map +0 -1
  286. package/release-manager/dist/update/console-surface.js.map +0 -1
  287. package/release-manager/dist/update/data-compatibility.d.ts +0 -35
  288. package/release-manager/dist/update/data-compatibility.d.ts.map +0 -1
  289. package/release-manager/dist/update/data-compatibility.js +0 -45
  290. package/release-manager/dist/update/data-compatibility.js.map +0 -1
  291. package/release-manager/dist/update/install-layout.d.ts +0 -105
  292. package/release-manager/dist/update/install-layout.d.ts.map +0 -1
  293. package/release-manager/dist/update/install-layout.js.map +0 -1
  294. package/release-manager/dist/update/product-identity.d.ts +0 -70
  295. package/release-manager/dist/update/product-identity.d.ts.map +0 -1
  296. package/release-manager/dist/update/product-identity.js.map +0 -1
  297. package/release-manager/dist/update/release-asset-manifest.d.ts +0 -31
  298. package/release-manager/dist/update/release-asset-manifest.d.ts.map +0 -1
  299. package/release-manager/dist/update/release-asset-manifest.js.map +0 -1
  300. package/release-manager/dist/update/release-identity.d.ts +0 -33
  301. package/release-manager/dist/update/release-identity.d.ts.map +0 -1
  302. package/release-manager/dist/update/release-identity.js.map +0 -1
  303. package/release-manager/dist/update/release-manager-authority.d.ts +0 -39
  304. package/release-manager/dist/update/release-manager-authority.d.ts.map +0 -1
  305. package/release-manager/dist/update/release-manager-authority.js.map +0 -1
  306. package/release-manager/dist/update/release-manager.d.ts +0 -156
  307. package/release-manager/dist/update/release-manager.d.ts.map +0 -1
  308. package/release-manager/dist/update/release-manager.js.map +0 -1
  309. package/release-manager/dist/update/release-metadata-publisher.d.ts +0 -199
  310. package/release-manager/dist/update/release-metadata-publisher.d.ts.map +0 -1
  311. package/release-manager/dist/update/release-metadata-publisher.js +0 -478
  312. package/release-manager/dist/update/release-metadata-publisher.js.map +0 -1
  313. package/release-manager/dist/update/release-metadata-source.d.ts +0 -85
  314. package/release-manager/dist/update/release-metadata-source.d.ts.map +0 -1
  315. package/release-manager/dist/update/release-metadata-source.js.map +0 -1
  316. package/release-manager/dist/update/release-metadata.d.ts +0 -60
  317. package/release-manager/dist/update/release-metadata.d.ts.map +0 -1
  318. package/release-manager/dist/update/release-metadata.js.map +0 -1
  319. package/release-manager/dist/update/release-policy.d.ts +0 -51
  320. package/release-manager/dist/update/release-policy.d.ts.map +0 -1
  321. package/release-manager/dist/update/release-policy.js.map +0 -1
  322. package/release-manager/dist/update/rollback-policy.d.ts +0 -56
  323. package/release-manager/dist/update/rollback-policy.d.ts.map +0 -1
  324. package/release-manager/dist/update/rollback-policy.js +0 -61
  325. package/release-manager/dist/update/rollback-policy.js.map +0 -1
  326. package/release-manager/dist/update/transaction-journal.d.ts +0 -212
  327. package/release-manager/dist/update/transaction-journal.d.ts.map +0 -1
  328. package/release-manager/dist/update/transaction-journal.js.map +0 -1
  329. package/release-manager/dist/update/trust-metadata.d.ts +0 -55
  330. package/release-manager/dist/update/trust-metadata.d.ts.map +0 -1
  331. package/release-manager/dist/update/trust-metadata.js.map +0 -1
  332. package/release-manager/dist/update/trust-root-provisioning.d.ts +0 -99
  333. package/release-manager/dist/update/trust-root-provisioning.d.ts.map +0 -1
  334. package/release-manager/dist/update/trust-root-provisioning.js.map +0 -1
  335. package/release-manager/dist/update/update-history.d.ts +0 -46
  336. package/release-manager/dist/update/update-history.d.ts.map +0 -1
  337. package/release-manager/dist/update/update-history.js +0 -123
  338. package/release-manager/dist/update/update-history.js.map +0 -1
  339. package/release-manager/dist/utils/config-file-io.d.ts +0 -34
  340. package/release-manager/dist/utils/config-file-io.d.ts.map +0 -1
  341. package/release-manager/dist/utils/config-file-io.js.map +0 -1
  342. package/release-manager/dist/utils/env.d.ts +0 -94
  343. package/release-manager/dist/utils/env.d.ts.map +0 -1
  344. package/release-manager/dist/utils/env.js.map +0 -1
  345. package/release-manager/dist/utils/logger.d.ts +0 -15
  346. package/release-manager/dist/utils/logger.d.ts.map +0 -1
  347. package/release-manager/dist/utils/logger.js.map +0 -1
  348. package/release-manager/dist/utils/workspace-divergence.d.ts +0 -36
  349. package/release-manager/dist/utils/workspace-divergence.d.ts.map +0 -1
  350. package/release-manager/dist/utils/workspace-divergence.js.map +0 -1
@@ -1,509 +0,0 @@
1
- import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useState, useEffect, useCallback } from "react";
3
- import { useTranslation } from "react-i18next";
4
- import { toast } from "sonner";
5
- import { PageShell } from "../../components/layout/page-shell.js";
6
- import { PageLoading } from "../../components/layout/page-loading.js";
7
- import { SectionTitle } from "../../components/layout/section-title.js";
8
- import { fetchConfigSummary, fetchConfigCatalog, updateAgentBinding, updateDefaultRuntime, } from "../../api.js";
9
- import { computeOverallReadiness, groupAgentsByReadiness, groupAgentsByDependency, isKnownAgentName, redactDiagnosticsForCopy, } from "../../utils/control-center-helpers.js";
10
- import { enumLabel } from "../../utils/enum-labels.js";
11
- import { WorkflowDiagram } from "./WorkflowDiagram.js";
12
- import { AgentGroup } from "./AgentGroup.js";
13
- import { RuntimeProfileManager } from "./RuntimeProfileManager.js";
14
- import { DesignGatePanel } from "./DesignGatePanel.js";
15
- import { AGENT_GROUPS, AGENT_METADATA, } from "../../utils/agent-metadata.js";
16
- // ── Runtime validators (H section / ERR-001/005/009/013) ─────────────────────
17
- function validateSource(raw) {
18
- if (typeof raw !== "string")
19
- return null;
20
- switch (raw) {
21
- case "defaults": return "defaults";
22
- case "user_config": return "user_config";
23
- default: return null;
24
- }
25
- }
26
- /** Type guard: is this a non-null object with own properties (not inherited)? */
27
- function isRecord(value) {
28
- return typeof value === "object" && value !== null && !Array.isArray(value);
29
- }
30
- // Overall readiness → the plain-language sentence shown under the internal-agents heading.
31
- const CONFIG_READINESS_KEY = {
32
- ready: "pages.controlCenter.configReady",
33
- needs_setup: "pages.controlCenter.configNeedsSetup",
34
- not_ready: "pages.controlCenter.configNotReady",
35
- unknown: "pages.controlCenter.configUnknown",
36
- disabled: "pages.controlCenter.configDisabled",
37
- };
38
- function validateReadinessStatus(raw) {
39
- if (typeof raw !== "string")
40
- return null;
41
- switch (raw) {
42
- case "ready": return "ready";
43
- case "not_ready": return "not_ready";
44
- case "needs_setup": return "needs_setup";
45
- case "disabled": return "disabled";
46
- case "unknown": return "unknown";
47
- default: return null;
48
- }
49
- }
50
- function validateRedactedFeatureSummary(raw) {
51
- if (!isRecord(raw))
52
- return null;
53
- if (!Object.hasOwn(raw, "id") ||
54
- !Object.hasOwn(raw, "category") ||
55
- !Object.hasOwn(raw, "enabled")) {
56
- return null;
57
- }
58
- const id = raw.id;
59
- const category = raw.category;
60
- const enabled = raw.enabled;
61
- if (typeof id !== "string" ||
62
- id.length === 0 ||
63
- typeof category !== "string" ||
64
- typeof enabled !== "boolean") {
65
- return null;
66
- }
67
- return { id, category, enabled };
68
- }
69
- function validateRedactedRuntimeProfileSummary(raw) {
70
- if (!isRecord(raw))
71
- return null;
72
- if (!Object.hasOwn(raw, "id") ||
73
- !Object.hasOwn(raw, "type") ||
74
- !Object.hasOwn(raw, "label") ||
75
- !Object.hasOwn(raw, "readiness")) {
76
- return null;
77
- }
78
- const id = raw.id;
79
- const type = raw.type;
80
- const label = raw.label;
81
- const readiness = validateReadinessStatus(raw.readiness);
82
- if (typeof id !== "string" ||
83
- id.length === 0 ||
84
- typeof type !== "string" ||
85
- typeof label !== "string" ||
86
- readiness === null) {
87
- return null;
88
- }
89
- const apiKeyEnv = Object.hasOwn(raw, "apiKeyEnv") && typeof raw.apiKeyEnv === "string"
90
- ? raw.apiKeyEnv
91
- : undefined;
92
- // provider/model are optional (set by backend redactPdConfig for both
93
- // pi-ai and openclaw profiles). Aligns with
94
- // the canonical validator in validators.ts (EP-01: validate fields that
95
- // actually exist in the target type).
96
- const provider = Object.hasOwn(raw, "provider") && typeof raw.provider === "string"
97
- ? raw.provider
98
- : undefined;
99
- const model = Object.hasOwn(raw, "model") && typeof raw.model === "string"
100
- ? raw.model
101
- : undefined;
102
- return { id, type, label, apiKeyEnv, provider, model, readiness };
103
- }
104
- function validateRedactedAgentSummary(raw) {
105
- if (!isRecord(raw))
106
- return null;
107
- if (!Object.hasOwn(raw, "name") ||
108
- !Object.hasOwn(raw, "enabled") ||
109
- !Object.hasOwn(raw, "runtimeProfileId") ||
110
- !Object.hasOwn(raw, "runtimeProfileLabel") ||
111
- !Object.hasOwn(raw, "readiness")) {
112
- return null;
113
- }
114
- const name = raw.name;
115
- const enabled = raw.enabled;
116
- const runtimeProfileId = raw.runtimeProfileId;
117
- const runtimeProfileLabel = raw.runtimeProfileLabel;
118
- const readiness = validateReadinessStatus(raw.readiness);
119
- if (typeof name !== "string" ||
120
- name.length === 0 ||
121
- typeof enabled !== "boolean" ||
122
- typeof runtimeProfileId !== "string" ||
123
- typeof runtimeProfileLabel !== "string" ||
124
- readiness === null) {
125
- return null;
126
- }
127
- return { name, enabled, runtimeProfileId, runtimeProfileLabel, readiness };
128
- }
129
- function validateConfigError(raw) {
130
- if (!isRecord(raw))
131
- return null;
132
- if (!Object.hasOwn(raw, "path") ||
133
- !Object.hasOwn(raw, "reason") ||
134
- !Object.hasOwn(raw, "nextAction")) {
135
- return null;
136
- }
137
- const path = raw.path;
138
- const reason = raw.reason;
139
- const nextAction = raw.nextAction;
140
- if (typeof path !== "string" ||
141
- typeof reason !== "string" ||
142
- typeof nextAction !== "string") {
143
- return null;
144
- }
145
- return { path, reason, nextAction };
146
- }
147
- function validateConfigSummaryData(raw) {
148
- if (!isRecord(raw))
149
- return null;
150
- // Required fields check (ERR-009: fail loud on missing required fields)
151
- if (!Object.hasOwn(raw, "version") ||
152
- !Object.hasOwn(raw, "source") ||
153
- !Object.hasOwn(raw, "features") ||
154
- !Object.hasOwn(raw, "runtimeProfiles") ||
155
- !Object.hasOwn(raw, "defaultRuntime") ||
156
- !Object.hasOwn(raw, "agents") ||
157
- !Object.hasOwn(raw, "ui") ||
158
- !Object.hasOwn(raw, "warnings")) {
159
- return null;
160
- }
161
- const version = raw.version;
162
- const source = raw.source;
163
- const features = raw.features;
164
- const runtimeProfiles = raw.runtimeProfiles;
165
- const defaultRuntime = raw.defaultRuntime;
166
- const agents = raw.agents;
167
- const ui = raw.ui;
168
- const warnings = raw.warnings;
169
- if (typeof version !== "number" ||
170
- typeof source !== "string" ||
171
- validateSource(source) === null ||
172
- !Array.isArray(features) ||
173
- !Array.isArray(runtimeProfiles) ||
174
- typeof defaultRuntime !== "string" ||
175
- !Array.isArray(agents) ||
176
- !isRecord(ui) ||
177
- !Array.isArray(warnings)) {
178
- return null;
179
- }
180
- // Validate ui.diagnostics (ERR-009)
181
- if (!Object.hasOwn(ui, "diagnostics") ||
182
- !isRecord(ui.diagnostics)) {
183
- return null;
184
- }
185
- const uiDiag = ui.diagnostics;
186
- if (!Object.hasOwn(uiDiag, "mode") || typeof uiDiag.mode !== "string") {
187
- return null;
188
- }
189
- const uiDiagMode = uiDiag.mode;
190
- // Validate features array elements (ERR-005/ERR-007)
191
- const validatedFeatures = [];
192
- for (const f of features) {
193
- const validated = validateRedactedFeatureSummary(f);
194
- if (validated === null)
195
- return null;
196
- validatedFeatures.push(validated);
197
- }
198
- // Validate runtime profiles array elements
199
- const validatedProfiles = [];
200
- for (const p of runtimeProfiles) {
201
- const validated = validateRedactedRuntimeProfileSummary(p);
202
- if (validated === null)
203
- return null;
204
- validatedProfiles.push(validated);
205
- }
206
- // Validate agents array elements
207
- const validatedAgents = [];
208
- for (const a of agents) {
209
- const validated = validateRedactedAgentSummary(a);
210
- if (validated === null)
211
- return null;
212
- validatedAgents.push(validated);
213
- }
214
- // Validate warnings array elements (ERR-005)
215
- const validatedWarnings = [];
216
- for (const w of warnings) {
217
- if (typeof w !== "string")
218
- return null;
219
- validatedWarnings.push(w);
220
- }
221
- // Validate optional errors array
222
- let validatedErrors;
223
- if (Object.hasOwn(raw, "errors") && raw.errors !== undefined) {
224
- if (!Array.isArray(raw.errors))
225
- return null;
226
- validatedErrors = [];
227
- for (const e of raw.errors) {
228
- const validated = validateConfigError(e);
229
- if (validated === null)
230
- return null;
231
- validatedErrors.push(validated);
232
- }
233
- }
234
- const validatedSource = validateSource(source);
235
- if (validatedSource === null)
236
- return null;
237
- return {
238
- version,
239
- source: validatedSource,
240
- features: validatedFeatures,
241
- runtimeProfiles: validatedProfiles,
242
- defaultRuntime,
243
- agents: validatedAgents,
244
- ui: {
245
- diagnostics: {
246
- mode: uiDiagMode,
247
- },
248
- },
249
- warnings: validatedWarnings,
250
- errors: validatedErrors,
251
- };
252
- }
253
- function validateConfigCatalogData(raw) {
254
- if (!isRecord(raw))
255
- return null;
256
- if (!Object.hasOwn(raw, "profiles"))
257
- return null;
258
- const profiles = raw.profiles;
259
- if (!Array.isArray(profiles))
260
- return null;
261
- const validatedProfiles = [];
262
- for (const p of profiles) {
263
- const validated = validateRedactedRuntimeProfileSummary(p);
264
- if (validated === null)
265
- return null;
266
- validatedProfiles.push(validated);
267
- }
268
- // Validate optional errors array
269
- let validatedErrors;
270
- if (Object.hasOwn(raw, "errors") && raw.errors !== undefined) {
271
- if (!Array.isArray(raw.errors))
272
- return null;
273
- validatedErrors = [];
274
- for (const e of raw.errors) {
275
- const validated = validateConfigError(e);
276
- if (validated === null)
277
- return null;
278
- validatedErrors.push(validated);
279
- }
280
- }
281
- return { profiles: validatedProfiles, errors: validatedErrors };
282
- }
283
- // ── Readiness tag styling ────────────────────────────────────────────────────
284
- function readinessTagClasses(readiness) {
285
- const base = "inline-flex items-center border border-line rounded-[2px] px-[7px] py-1 font-mono text-[11px] text-ink-3 bg-surface/80 uppercase";
286
- switch (readiness) {
287
- case "ready":
288
- return base;
289
- case "needs_setup":
290
- return base.replace("border-line", "border-amber/35").replace("text-ink-3", "text-amber");
291
- case "not_ready":
292
- // SPEC-PD-UIUX-001 R5: bare `red` utilities have no matching theme token
293
- // (silently unstyled) — use the registered danger token.
294
- return base.replace("border-line", "border-danger/35").replace("text-ink-3", "text-danger");
295
- default:
296
- return base;
297
- }
298
- }
299
- // ── Sub-components ───────────────────────────────────────────────────────────
300
- /**
301
- * CompactStatusBar — 紧凑状态条(替代 OverallStatusCard)
302
- *
303
- * 取自原型 control-center.html 第 153-168 行。一行展示:
304
- * 已启用 N/M · 未就绪 N 项 · 核心管道 状态 · [需配置] pill
305
- *
306
- * 核心管道状态 = core_trio + code_chain 中已启用代理的就绪情况:
307
- * - paralyzed: core_trio 任一 disabled 或有 not_ready
308
- * - degraded: 有 needs_setup
309
- * - ok: 全 ready
310
- *
311
- * rc-2: 用 Object.hasOwn 守卫 agent.name 查 AGENT_METADATA(无 as 绕过)
312
- */
313
- function CompactStatusBar({ readiness, agents, }) {
314
- const { t } = useTranslation();
315
- const enabledCount = agents.filter((a) => a.enabled).length;
316
- const totalCount = agents.length;
317
- const notReadyCount = agents.filter((a) => a.enabled && a.readiness !== "ready").length;
318
- // 核心管道状态:core_trio + code_chain 中已启用代理
319
- // rc-2: 用 isKnownAgentName 类型守卫缩窄,不用 as 绕过
320
- const coreAgents = agents.filter((a) => {
321
- if (!isKnownAgentName(a.name))
322
- return false;
323
- const meta = AGENT_METADATA[a.name];
324
- return meta.group === "core_trio" || meta.group === "code_chain";
325
- });
326
- const enabledCoreAgents = coreAgents.filter((a) => a.enabled);
327
- const coreTrioAgents = coreAgents.filter((a) => {
328
- if (!isKnownAgentName(a.name))
329
- return false;
330
- const meta = AGENT_METADATA[a.name];
331
- return meta.group === "core_trio";
332
- });
333
- const codeChainAgents = coreAgents.filter((a) => {
334
- if (!isKnownAgentName(a.name))
335
- return false;
336
- const meta = AGENT_METADATA[a.name];
337
- return meta.group === "code_chain";
338
- });
339
- const coreTrioAnyDisabled = coreTrioAgents.some((a) => !a.enabled);
340
- const codeChainAnyDisabled = codeChainAgents.some((a) => !a.enabled);
341
- const coreAnyNotReady = enabledCoreAgents.some((a) => a.readiness === "not_ready");
342
- const coreAnyNeedsSetup = enabledCoreAgents.some((a) => a.readiness === "needs_setup");
343
- // 状态优先级(per AGENT_METADATA.impactZh):
344
- // - paralyzed: core_trio 任一 disabled 或 enabled 但 not_ready
345
- // (core_trio 是入口,关掉任何一个整个管道瘫痪)
346
- // - degraded: code_chain 任一 disabled(降级运行,非瘫痪)
347
- // 或 enabled 但 needs_setup
348
- // - ok: 全 ready
349
- //
350
- // needsConfig 标记仅用于 readiness 异常(not_ready / needs_setup),
351
- // 不用于主动 disabled — 主动 disable 是 owner 的有意决策,不是配置缺失。
352
- let corePipelineKey;
353
- const needsConfig = coreAnyNotReady || coreAnyNeedsSetup;
354
- if (coreTrioAnyDisabled || coreAnyNotReady) {
355
- corePipelineKey = "pages.controlCenter.status.corePipelineParalyzed";
356
- }
357
- else if (codeChainAnyDisabled || coreAnyNeedsSetup) {
358
- corePipelineKey = "pages.controlCenter.status.corePipelineDegraded";
359
- }
360
- else {
361
- corePipelineKey = "pages.controlCenter.status.corePipelineOk";
362
- }
363
- return (_jsxs("div", { className: "mt-5 px-[16px] py-[11px] bg-surface border border-line-2 rounded-[4px] flex items-center gap-[16px] text-[12.5px] text-ink-3 flex-wrap", children: [_jsxs("div", { className: "flex items-center gap-[6px]", children: [_jsx("span", { className: "text-ink-4 font-mono text-[11px] uppercase tracking-[0.04em]", children: t("pages.controlCenter.status.enabled") }), _jsxs("span", { className: "text-ink font-semibold", children: [_jsx("span", { className: "font-mono", children: enabledCount }), " /", " ", _jsx("span", { className: "font-mono", children: totalCount })] })] }), _jsxs("div", { className: "flex items-center gap-[6px]", children: [_jsx("span", { className: "text-ink-4 font-mono text-[11px] uppercase tracking-[0.04em]", children: t("pages.controlCenter.status.notReady") }), _jsx("span", { className: "text-ink font-semibold", children: _jsx("span", { className: "font-mono", children: notReadyCount }) })] }), _jsxs("div", { className: "flex items-center gap-[6px]", children: [_jsx("span", { className: "text-ink-4 font-mono text-[11px] uppercase tracking-[0.04em]", children: t("pages.controlCenter.status.corePipeline") }), _jsx("span", { className: "text-ink font-semibold", children: t(corePipelineKey) })] }), needsConfig && (_jsx("span", { className: "ml-auto px-[9px] py-[3px] rounded-[2px] text-[10.5px] font-mono tracking-[0.02em] font-medium border border-amber text-amber bg-amber/10", children: t("pages.controlCenter.status.needsConfig") }))] }));
364
- }
365
- function DefaultRuntimeSelector({ currentDefault, profiles, onDefaultChange, saving, }) {
366
- const { t } = useTranslation();
367
- return (_jsxs("div", { className: "bg-panel border border-line rounded-[6px] px-[18px] py-[14px]", children: [_jsx("p", { className: "text-ink-3 text-[13px] leading-relaxed mb-3", children: t("pages.controlCenter.defaultRuntimeDescription") }), _jsx("select", { value: currentDefault, onChange: (e) => {
368
- onDefaultChange(e.target.value);
369
- }, disabled: saving, className: "bg-surface border border-line rounded-[3px] px-3 py-[6px] text-[12.5px] text-ink focus:outline-none focus:border-gov disabled:opacity-50 min-w-[200px]", "aria-label": t("pages.controlCenter.defaultRuntime"), children: profiles.map((p) => (_jsxs("option", { value: p.id, children: [p.label, " \u2014 ", enumLabel('readiness', p.readiness, t)] }, p.id))) }), saving && (_jsx("span", { className: "ml-3 text-ink-3 text-[12px]", children: t("pages.controlCenter.saving") }))] }));
370
- }
371
- function AdvancedDiagnostics({ config, }) {
372
- const { t } = useTranslation();
373
- const [copied, setCopied] = useState(false);
374
- const diagnostics = {
375
- version: config.version,
376
- source: config.source,
377
- features: config.features,
378
- runtimeProfiles: config.runtimeProfiles,
379
- defaultRuntime: config.defaultRuntime,
380
- agents: config.agents,
381
- ui: config.ui,
382
- warnings: config.warnings,
383
- errors: config.errors,
384
- };
385
- const handleCopy = useCallback(() => {
386
- const text = redactDiagnosticsForCopy(diagnostics);
387
- navigator.clipboard.writeText(text).then(() => {
388
- setCopied(true);
389
- toast.success(t("pages.controlCenter.copyDiagnostics"));
390
- setTimeout(() => setCopied(false), 2000);
391
- }, () => {
392
- toast.error(t("pages.controlCenter.saveFailed"));
393
- });
394
- }, [diagnostics, t]);
395
- const grouped = groupAgentsByReadiness(diagnostics);
396
- return (_jsxs("details", { className: "group", children: [_jsx("summary", { className: "text-ink-3 text-[13px] cursor-pointer hover:text-ink-2 transition-colors focus-visible:outline-2 focus-visible:outline-gov focus-visible:outline-offset-2", children: t("pages.controlCenter.advancedDiagnostics") }), _jsxs("div", { className: "mt-4 space-y-5", children: [_jsxs("div", { children: [_jsx("h3", { className: "font-mono text-[11px] uppercase tracking-[0.1em] text-ink-3 mb-2", children: t("pages.controlCenter.features") }), _jsx("div", { className: "bg-surface/60 border border-line rounded-[6px] px-3 py-2", children: config.features.length === 0 ? (_jsx("span", { className: "text-ink-4 text-[13px]", children: "\u2014" })) : (_jsx("div", { className: "space-y-1", children: config.features.map((f) => (_jsxs("div", { className: "flex items-center gap-2 text-[13px]", children: [_jsx("span", { className: "text-ink-2", children: enumLabel('featureId', f.id, t) }), _jsx("span", { className: "text-ink-4", children: "\u00B7" }), _jsx("span", { className: "text-ink-3", children: enumLabel('featureCategory', f.category, t) }), _jsx("span", { className: "text-ink-4", children: "\u00B7" }), _jsx("span", { className: f.enabled ? "text-ink-2" : "text-ink-4 line-through", children: f.enabled
397
- ? t("pages.controlCenter.on")
398
- : t("pages.controlCenter.off") })] }, f.id))) })) })] }), _jsxs("div", { children: [_jsx("h3", { className: "font-mono text-[11px] uppercase tracking-[0.1em] text-ink-3 mb-2", children: t("pages.controlCenter.runtimeProfiles") }), _jsx("div", { className: "bg-surface/60 border border-line rounded-[6px] px-3 py-2", children: config.runtimeProfiles.length === 0 ? (_jsx("span", { className: "text-ink-4 text-[13px]", children: "\u2014" })) : (_jsx("div", { className: "space-y-1", children: config.runtimeProfiles.map((p) => (_jsxs("div", { className: "flex items-center gap-2 text-[13px]", children: [_jsx("span", { className: "text-ink-2", children: p.label }), _jsx("span", { className: "text-ink-4", children: "\u00B7" }), _jsx("span", { className: "text-ink-3", children: p.type }), _jsx("span", { className: readinessTagClasses(p.readiness), children: enumLabel('readiness', p.readiness, t) })] }, p.id))) })) })] }), config.warnings.length > 0 && (_jsxs("div", { children: [_jsx("h3", { className: "font-mono text-[11px] uppercase tracking-[0.1em] text-ink-3 mb-2", children: t("pages.controlCenter.warnings") }), _jsx("div", { className: "bg-surface/60 border border-amber/20 border-l-2 border-l-amber rounded-[6px] px-3 py-2", children: _jsx("ul", { className: "space-y-1", children: config.warnings.map((w, i) => (_jsx("li", { className: "text-ink-2 text-[13px]", children: w }, i))) }) })] })), config.errors && config.errors.length > 0 && (_jsxs("div", { children: [_jsx("h3", { className: "font-mono text-[11px] uppercase tracking-[0.1em] text-ink-3 mb-2", children: t("pages.controlCenter.configErrors") }), _jsx("div", { className: "bg-surface/60 border border-danger/20 border-l-2 border-l-danger rounded-[6px] px-3 py-2", children: _jsx("ul", { className: "space-y-2", children: config.errors.map((e, i) => (_jsxs("li", { className: "text-[13px]", children: [_jsx("span", { className: "text-ink font-medium", children: e.path }), _jsx("span", { className: "text-ink-4", children: " \u2014 " }), _jsx("span", { className: "text-ink-2", children: e.reason }), _jsxs("div", { className: "text-ink-3 text-[12px] mt-0.5", children: ["\u2192 ", e.nextAction] })] }, i))) }) })] })), _jsxs("div", { children: [_jsx("h3", { className: "font-mono text-[11px] uppercase tracking-[0.1em] text-ink-3 mb-2", children: t("pages.controlCenter.readinessLabel") }), _jsx("div", { className: "bg-surface/60 border border-line rounded-[6px] px-3 py-2 space-y-2", children: Object.keys(grouped).map((status) => {
399
- const validatedStatus = validateReadinessStatus(status);
400
- if (validatedStatus === null)
401
- return null;
402
- const agentsInGroup = grouped[validatedStatus];
403
- if (agentsInGroup.length === 0)
404
- return null;
405
- return (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: readinessTagClasses(validatedStatus), children: enumLabel('readiness', validatedStatus, t) }), _jsx("span", { className: "text-ink-3 text-[13px]", children: agentsInGroup.map((a) => a.name).join(", ") })] }, validatedStatus));
406
- }) })] }), _jsxs("div", { className: "flex items-center gap-3", children: [_jsx("button", { type: "button", onClick: handleCopy, className: "border border-line bg-surface text-ink rounded-[3px] px-[14px] py-[6px] text-[12.5px] font-medium hover:border-line-2 transition-colors focus-visible:outline-2 focus-visible:outline-gov focus-visible:outline-offset-2", children: copied ? "✓" : t("pages.controlCenter.copyDiagnostics") }), _jsx("span", { className: "text-ink-4 text-[12px]", children: t("pages.controlCenter.redactedNote") })] })] })] }));
407
- }
408
- export function ControlCenterPage() {
409
- const { t, i18n } = useTranslation();
410
- const [configData, setConfigData] = useState(null);
411
- const [catalogData, setCatalogData] = useState(null);
412
- const [loadingState, setLoadingState] = useState("loading");
413
- const [errorMessage, setErrorMessage] = useState(null);
414
- const [savingAgent, setSavingAgent] = useState(null);
415
- const [savingDefault, setSavingDefault] = useState(false);
416
- const loadData = useCallback(async () => {
417
- setLoadingState("loading");
418
- setErrorMessage(null);
419
- const [summaryResult, catalogResult] = await Promise.all([
420
- fetchConfigSummary(),
421
- fetchConfigCatalog(),
422
- ]);
423
- // Validate summary data (H section / ERR-001/005/009)
424
- if (!summaryResult.success) {
425
- setLoadingState("error");
426
- setErrorMessage(summaryResult.error);
427
- return;
428
- }
429
- const validatedSummary = validateConfigSummaryData(summaryResult.data);
430
- if (validatedSummary === null) {
431
- setLoadingState("error");
432
- setErrorMessage("Config summary data has unexpected shape");
433
- return;
434
- }
435
- setConfigData(validatedSummary);
436
- // Validate catalog data (ERR-002: degradation with reason)
437
- if (!catalogResult.success) {
438
- // Non-fatal: catalog is only needed for profile dropdowns
439
- setCatalogData(null);
440
- }
441
- else {
442
- const validatedCatalog = validateConfigCatalogData(catalogResult.data);
443
- setCatalogData(validatedCatalog);
444
- }
445
- setLoadingState("loaded");
446
- }, []);
447
- useEffect(() => {
448
- loadData();
449
- }, [loadData]);
450
- const handleBindingChange = useCallback(async (agentName, runtimeProfile, enabled) => {
451
- setSavingAgent(agentName);
452
- const result = await updateAgentBinding(agentName, runtimeProfile, enabled);
453
- setSavingAgent(null);
454
- if (!result.success) {
455
- toast.error(t("pages.controlCenter.saveFailed"));
456
- return;
457
- }
458
- // Refresh config data after successful update
459
- await loadData();
460
- }, [loadData, t]);
461
- const handleDefaultRuntimeChange = useCallback(async (profileId) => {
462
- setSavingDefault(true);
463
- const result = await updateDefaultRuntime(profileId);
464
- setSavingDefault(false);
465
- if (!result.success) {
466
- toast.error(t("pages.controlCenter.saveFailed"));
467
- return;
468
- }
469
- // Refresh config data after successful update
470
- await loadData();
471
- }, [loadData, t]);
472
- // ── Loading state ────────────────────────────────────────────────────────
473
- if (loadingState === "loading") {
474
- return (_jsx(PageShell, { children: _jsx(PageLoading, { cardCount: 3, label: t("common.loading") }) }));
475
- }
476
- // ── Error state (ERR-002: degradation with reason) ───────────────────────
477
- if (loadingState === "error") {
478
- return (_jsxs(PageShell, { children: [_jsx("div", { className: "font-mono text-[12px] tracking-[0.14em] text-ink-3 uppercase mb-3", children: t("pages.controlCenter.eyebrow") }), _jsx("h1", { className: "text-[29px] font-semibold tracking-tight text-ink mb-2", children: t("pages.controlCenter.title") }), _jsxs("div", { className: "mt-6 p-4 bg-panel border border-line rounded-[6px] text-ink-2 text-sm", children: [_jsx("p", { children: t("pages.controlCenter.loadError") }), errorMessage && (_jsx("p", { className: "mt-2 text-ink-4 text-[13px] font-mono", children: errorMessage }))] })] }));
479
- }
480
- // ── Loaded state ─────────────────────────────────────────────────────────
481
- if (configData === null) {
482
- return (_jsxs(PageShell, { children: [_jsx("div", { className: "font-mono text-[12px] tracking-[0.14em] text-ink-3 uppercase mb-3", children: t("pages.controlCenter.eyebrow") }), _jsx("h1", { className: "text-[29px] font-semibold tracking-tight text-ink mb-2", children: t("pages.controlCenter.title") }), _jsx("div", { className: "mt-6 p-4 bg-panel border border-line rounded-[6px] text-ink-2 text-sm", children: _jsx("p", { children: t("pages.controlCenter.loadError") }) })] }));
483
- }
484
- const diagnostics = {
485
- version: configData.version,
486
- source: configData.source,
487
- features: configData.features,
488
- runtimeProfiles: configData.runtimeProfiles,
489
- defaultRuntime: configData.defaultRuntime,
490
- agents: configData.agents,
491
- ui: configData.ui,
492
- warnings: configData.warnings,
493
- errors: configData.errors,
494
- };
495
- const overallReadiness = computeOverallReadiness(diagnostics);
496
- const availableProfiles = catalogData?.profiles ?? configData.runtimeProfiles;
497
- return (_jsx(PageShell, { children: _jsxs("div", { className: "animate-[pdFadeIn_400ms_ease-out]", children: [_jsx("div", { className: "font-mono text-[12px] tracking-[0.14em] text-ink-3 uppercase mb-3", children: t("pages.controlCenter.eyebrow") }), _jsx("h1", { className: "text-[29px] font-semibold tracking-tight text-ink mb-2", children: t("pages.controlCenter.title") }), _jsx("p", { className: "text-ink-3 text-[14px] max-w-[760px] leading-relaxed mb-7", children: t("pages.controlCenter.subtitle") }), _jsx(WorkflowDiagram, {}), _jsx(CompactStatusBar, { readiness: overallReadiness, agents: configData.agents }), _jsx(DesignGatePanel, {}), _jsxs("section", { className: "mt-8", "aria-labelledby": "section-agents", children: [_jsx(SectionTitle, { id: "section-agents", children: t("pages.controlCenter.internalAgents") }), _jsx("p", { className: "text-ink-3 text-[13px] leading-relaxed mb-3", children: t("pages.controlCenter.internalAgentsDescription") }), _jsx("p", { className: overallReadiness === "ready"
498
- ? "text-ink-4 text-[13px] leading-relaxed mb-3"
499
- : "text-amber text-[13px] leading-relaxed mb-3", children: t(CONFIG_READINESS_KEY[overallReadiness]) }), (() => {
500
- const { groups, unknown } = groupAgentsByDependency(configData.agents);
501
- const locale = i18n.language.startsWith("en")
502
- ? "en"
503
- : "zh-CN";
504
- return (_jsxs(_Fragment, { children: [AGENT_GROUPS.map((groupMeta) => (_jsx(AgentGroup, { groupMeta: groupMeta, agents: (groups[groupMeta.id] ?? []).filter((a) => a.name !== AGENT_METADATA.signalCollector.name), profiles: availableProfiles, onBindingChange: handleBindingChange, saving: savingAgent, locale: locale }, groupMeta.id))), unknown.length > 0 && (_jsx("div", { className: "mt-3 px-3 py-2 border border-amber/30 border-l-2 border-l-amber rounded-[4px] bg-amber/10 text-[12.5px] text-ink-3", children: t("pages.controlCenter.unknownAgentsWarning", {
505
- count: unknown.length,
506
- names: unknown.map((a) => a.name).join(", "),
507
- }) }))] }));
508
- })()] }), _jsxs("section", { className: "mt-8", "aria-labelledby": "section-default-runtime", children: [_jsx(SectionTitle, { id: "section-default-runtime", children: t("pages.controlCenter.defaultRuntime") }), _jsx(DefaultRuntimeSelector, { currentDefault: configData.defaultRuntime, profiles: availableProfiles, onDefaultChange: handleDefaultRuntimeChange, saving: savingDefault })] }), _jsxs("section", { className: "mt-8", "aria-labelledby": "section-runtime-profiles", children: [_jsx(SectionTitle, { id: "section-runtime-profiles", children: t("pages.controlCenter.profiles.sectionTitle") }), _jsx(RuntimeProfileManager, { profiles: availableProfiles, defaultRuntimeId: configData.defaultRuntime, onMutated: loadData })] }), _jsx("section", { className: "mt-8", "aria-labelledby": "section-diagnostics", children: _jsx(AdvancedDiagnostics, { config: configData }) }), _jsx("p", { className: "mt-10 pt-[18px] border-t border-line-2 text-ink-4 text-[12px] leading-[1.6] max-w-[60ch] font-mono", children: t("pages.controlCenter.footerNote") })] }) }));
509
- }
@@ -1 +0,0 @@
1
- export declare function DesignGatePanel(): import("react").JSX.Element;