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,160 +0,0 @@
1
- /**
2
- * Activation page validators — PRI-CR6
3
- *
4
- * Runtime validators for activation and lifecycle API responses.
5
- * All API responses are treated as `unknown` and validated with runtime type guards.
6
- * No `as` casts to bypass validation (ERR-001/005).
7
- * Required fields fail loud when missing or malformed (ERR-009/010).
8
- * Array elements validated individually (ERR-005/007).
9
- * `Object.hasOwn()` used for untrusted keys (ERR-013).
10
- * Degraded states include a reason (ERR-002).
11
- */
12
- // ── Type guard helpers ───────────────────────────────────────────────────────
13
- /** Type guard: is this a non-null object with own properties (not inherited)? */
14
- export function isRecord(value) {
15
- return typeof value === "object" && value !== null && !Array.isArray(value);
16
- }
17
- const VALID_ACTIVATION_STATUSES = new Set(["active", "inactive", "deactivated", "suspended_by_flag"]);
18
- // ── Activation validators ────────────────────────────────────────────────────
19
- export function validateActivationRecord(raw) {
20
- if (!isRecord(raw))
21
- return null;
22
- if (!Object.hasOwn(raw, "activationId") ||
23
- !Object.hasOwn(raw, "artifactId") ||
24
- !Object.hasOwn(raw, "principleId") ||
25
- !Object.hasOwn(raw, "channel") ||
26
- !Object.hasOwn(raw, "action") ||
27
- !Object.hasOwn(raw, "targetRef") ||
28
- !Object.hasOwn(raw, "activatedAt") ||
29
- !Object.hasOwn(raw, "status")) {
30
- return null;
31
- }
32
- const { activationId, artifactId, principleId, channel, action, targetRef, activatedAt, status } = raw;
33
- if (typeof activationId !== "string" ||
34
- activationId.length === 0 ||
35
- typeof artifactId !== "string" ||
36
- typeof principleId !== "string" ||
37
- typeof channel !== "string" ||
38
- typeof action !== "string" ||
39
- typeof targetRef !== "string" ||
40
- (activatedAt !== null && typeof activatedAt !== "string") ||
41
- typeof status !== "string" ||
42
- !VALID_ACTIVATION_STATUSES.has(status)) {
43
- return null;
44
- }
45
- // Narrow status from string to union type via const assertion
46
- const narrowStatus = status;
47
- return {
48
- activationId: activationId,
49
- artifactId: artifactId,
50
- principleId: principleId,
51
- channel: channel,
52
- action: action,
53
- targetRef: targetRef,
54
- activatedAt: activatedAt,
55
- status: narrowStatus,
56
- ...(Object.hasOwn(raw, "enforcement") && (raw.enforcement === "eligible" || raw.enforcement === "safety_isolated") ? { enforcement: raw.enforcement } : {}),
57
- ...(Object.hasOwn(raw, "legacyDecisionUnknown") && raw.legacyDecisionUnknown === true ? { legacyDecisionUnknown: true } : {}),
58
- ...(Object.hasOwn(raw, "ownerReviewDueAt") && typeof raw.ownerReviewDueAt === "string" ? { ownerReviewDueAt: raw.ownerReviewDueAt } : {}),
59
- };
60
- }
61
- export function validateActivationsData(raw) {
62
- if (!isRecord(raw))
63
- return null;
64
- if (!Object.hasOwn(raw, "activations") || !Object.hasOwn(raw, "status")) {
65
- return null;
66
- }
67
- const { activations, status } = raw;
68
- if (!Array.isArray(activations) || typeof status !== "string") {
69
- return null;
70
- }
71
- // Fail loud: any invalid record rejects the entire payload (ERR-009)
72
- const validatedRecords = [];
73
- for (const record of activations) {
74
- const validated = validateActivationRecord(record);
75
- if (validated === null)
76
- return null;
77
- validatedRecords.push(validated);
78
- }
79
- const result = { activations: validatedRecords, status };
80
- if (Object.hasOwn(raw, "reason") && typeof raw.reason === "string")
81
- result.reason = raw.reason;
82
- if (Object.hasOwn(raw, "nextAction") && typeof raw.nextAction === "string")
83
- result.nextAction = raw.nextAction;
84
- return result;
85
- }
86
- // ── Lifecycle validators ─────────────────────────────────────────────────────
87
- export function validateLifecycleRuleMetric(raw) {
88
- if (!isRecord(raw))
89
- return null;
90
- if (!Object.hasOwn(raw, "ruleId") ||
91
- !Object.hasOwn(raw, "triggered") ||
92
- !Object.hasOwn(raw, "lastTriggeredAt")) {
93
- return null;
94
- }
95
- const { ruleId, triggered, lastTriggeredAt } = raw;
96
- if (typeof ruleId !== "string" ||
97
- typeof triggered !== "number" ||
98
- (lastTriggeredAt !== null && typeof lastTriggeredAt !== "string")) {
99
- return null;
100
- }
101
- return {
102
- ruleId,
103
- triggered,
104
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion -- TS cannot narrow from Record<string, unknown> without assertion
105
- lastTriggeredAt: lastTriggeredAt,
106
- };
107
- }
108
- export function validateLifecycleAdherence(raw) {
109
- if (!isRecord(raw))
110
- return null;
111
- if (!Object.hasOwn(raw, "insufficientData") ||
112
- !Object.hasOwn(raw, "rate") ||
113
- !Object.hasOwn(raw, "note")) {
114
- return null;
115
- }
116
- const { insufficientData, rate, note } = raw;
117
- if (typeof insufficientData !== "boolean" ||
118
- (rate !== null && typeof rate !== "number") ||
119
- typeof note !== "string") {
120
- return null;
121
- }
122
- return {
123
- insufficientData,
124
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion -- TS cannot narrow from Record<string, unknown> without assertion
125
- rate: rate,
126
- note,
127
- };
128
- }
129
- export function validateLifecycleMetricsData(raw) {
130
- if (!isRecord(raw))
131
- return null;
132
- if (!Object.hasOwn(raw, "principleId") ||
133
- !Object.hasOwn(raw, "adherence") ||
134
- !Object.hasOwn(raw, "ruleMetrics")) {
135
- return null;
136
- }
137
- const { principleId, adherence, ruleMetrics } = raw;
138
- if (typeof principleId !== "string" || !Array.isArray(ruleMetrics)) {
139
- return null;
140
- }
141
- const validatedAdherence = validateLifecycleAdherence(adherence);
142
- if (validatedAdherence === null)
143
- return null;
144
- const validatedRules = [];
145
- for (const r of ruleMetrics) {
146
- const validated = validateLifecycleRuleMetric(r);
147
- if (validated === null)
148
- return null;
149
- validatedRules.push(validated);
150
- }
151
- return {
152
- principleId,
153
- adherence: validatedAdherence,
154
- ruleMetrics: validatedRules,
155
- };
156
- }
157
- // ── Channel helpers ──────────────────────────────────────────────────────────
158
- export function isReversibleChannel(channel) {
159
- return channel === "prompt" || channel === "defer_archive";
160
- }
@@ -1,31 +0,0 @@
1
- import type { AgentMeta } from "../../utils/agent-metadata.js";
2
- import type { RedactedAgentSummary, RedactedRuntimeProfileSummary } from "../../api.js";
3
- /**
4
- * AgentCard — 三层渐进式披露代理卡片 + 核心代理内联确认
5
- *
6
- * L1(折叠态):状态点 + 显示名 + agent.name + 角色一句话 + 开关 + 展开箭头
7
- * L2(展开态):详细说明段落 + impact-box + 技术细节 toggle + profile-row
8
- * L3(嵌套折叠):技术细节 grid
9
- *
10
- * 核心代理(isCore=true)关闭时显示内联确认条(不弹模态)。
11
- *
12
- * rc 合规:
13
- * - rc-1: agent/profiles 由父组件已验证;meta 是静态数据
14
- * - rc-2: 无 as 绕过
15
- * - rc-8: 无 JSON 序列化
16
- *
17
- * 品牌约束(PRI-CR1 B.4.4):
18
- * - 禁止 translateY / scale hover(rotate 仅用于箭头朝向,允许)
19
- * - 无硬编码十六进制色值
20
- */
21
- export type AgentLocale = "zh-CN" | "en";
22
- interface AgentCardProps {
23
- agent: RedactedAgentSummary;
24
- meta: AgentMeta;
25
- profiles: RedactedRuntimeProfileSummary[];
26
- onBindingChange: (agentName: string, runtimeProfile: string, enabled: boolean) => void;
27
- saving: string | null;
28
- locale: AgentLocale;
29
- }
30
- export declare function AgentCard({ agent, meta, profiles, onBindingChange, saving, locale, }: AgentCardProps): import("react").JSX.Element;
31
- export {};
@@ -1,212 +0,0 @@
1
- import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useState, useEffect } from "react";
3
- import { useTranslation } from "react-i18next";
4
- import { useNavigate } from "react-router-dom";
5
- import { ChevronRight } from "lucide-react";
6
- import { cn } from "../../../lib/utils.js";
7
- import { fetchAgentReadiness } from "../../api.js";
8
- /** 状态点样式:ready / notready / off
9
- *
10
- * 接受 readiness + enabled 而非整个 agent 对象,以便 L1 状态点可以使用
11
- * 动态获取的 readiness(fetchAgentReadiness)替换静态悲观值。
12
- */
13
- function statusDotClasses(readiness, enabled) {
14
- const base = "w-2 h-2 rounded-full border-2 shrink-0";
15
- if (!enabled) {
16
- return cn(base, "border-ink-4 bg-surface opacity-50");
17
- }
18
- switch (readiness) {
19
- case "ready":
20
- return cn(base, "border-green bg-green");
21
- case "not_ready":
22
- return cn(base, "border-amber bg-surface");
23
- case "needs_setup":
24
- return cn(base, "border-amber bg-surface");
25
- default:
26
- return cn(base, "border-ink-4 bg-surface");
27
- }
28
- }
29
- /** impact-box 左边框色 */
30
- function impactBorderClass(level) {
31
- switch (level) {
32
- case "danger":
33
- return "border-l-danger";
34
- case "green":
35
- return "border-l-green";
36
- default:
37
- return "border-l-amber";
38
- }
39
- }
40
- /** impact label 色 */
41
- function impactLabelClass(level) {
42
- switch (level) {
43
- case "danger":
44
- return "text-danger";
45
- case "green":
46
- return "text-green";
47
- default:
48
- return "text-ink-4";
49
- }
50
- }
51
- /**
52
- * 渲染含反引号 code 片段的文本。
53
- * 输入示例:'`DiagnosticianContextPayload`(pain 信号上下文)'
54
- * 输出:[<code>DiagnosticianContextPayload</code>, "(pain 信号上下文)"]
55
- */
56
- function renderTextWithCode(text) {
57
- const parts = text.split("`");
58
- const nodes = [];
59
- for (let i = 0; i < parts.length; i++) {
60
- const part = parts[i];
61
- if (part === undefined)
62
- continue;
63
- if (i % 2 === 0) {
64
- if (part.length > 0) {
65
- nodes.push(part);
66
- }
67
- }
68
- else {
69
- // Odd index = content between backticks = code
70
- nodes.push(_jsx("code", { className: "font-mono text-[11px] text-ink-2 bg-paper-2 px-[5px] py-[1px] rounded-[2px]", children: part }, `code-${i}`));
71
- }
72
- }
73
- return nodes;
74
- }
75
- export function AgentCard({ agent, meta, profiles, onBindingChange, saving, locale, }) {
76
- const { t } = useTranslation();
77
- const navigate = useNavigate();
78
- const isSaving = saving === agent.name;
79
- // L2 / L3 / confirm 状态
80
- const [isOpen, setIsOpen] = useState(false);
81
- const [showTechDetail, setShowTechDetail] = useState(false);
82
- const [confirming, setConfirming] = useState(false);
83
- // 动态 readiness:L2 展开时,若静态 readiness 为 'unknown'(悲观值),
84
- // 调用 /api/v1/config/readiness/:agentName 获取实时探测结果替换静态值。
85
- // 仅在 agent.enabled && agent.readiness === 'unknown' 时发起请求。
86
- const [dynamicReadiness, setDynamicReadiness] = useState(null);
87
- const [readinessLoading, setReadinessLoading] = useState(false);
88
- const [readinessFetched, setReadinessFetched] = useState(false);
89
- useEffect(() => {
90
- if (!isOpen)
91
- return;
92
- if (readinessFetched)
93
- return;
94
- if (!agent.enabled)
95
- return;
96
- if (agent.readiness !== "unknown")
97
- return;
98
- let cancelled = false;
99
- setReadinessFetched(true);
100
- setReadinessLoading(true);
101
- fetchAgentReadiness(agent.name).then((result) => {
102
- if (cancelled)
103
- return;
104
- setReadinessLoading(false);
105
- if (result.success && result.data) {
106
- setDynamicReadiness(result.data.readiness);
107
- }
108
- // rc-9: 调用失败时不静默吞错——result.error 已由 request() 提取;
109
- // 此处 fallback 到静态 agent.readiness('unknown'),状态点保持 amber。
110
- // loading 指示器消失即告知用户探测已结束但未获得确定结果。
111
- });
112
- return () => {
113
- cancelled = true;
114
- };
115
- }, [isOpen, readinessFetched, agent.enabled, agent.readiness, agent.name]);
116
- // 有效 readiness:静态值为 'unknown' 且已获取动态值时使用动态值;
117
- // 否则使用静态值(父组件 re-fetch 后若不再是 'unknown' 则自动优先)。
118
- const effectiveReadiness = agent.readiness === "unknown" && dynamicReadiness !== null
119
- ? dynamicReadiness
120
- : agent.readiness;
121
- // locale 决定取 Zh 还是 En 字段
122
- const isZh = locale === "zh-CN";
123
- const displayName = isZh ? meta.displayNameZh : meta.displayNameEn;
124
- const role = isZh ? meta.roleZh : meta.roleEn;
125
- const detail = isZh ? meta.detailZh : meta.detailEn;
126
- const impact = isZh ? meta.impactZh : meta.impactEn;
127
- const techDetail = isZh ? meta.techDetailZh : meta.techDetailEn;
128
- const mvpNote = isZh ? meta.mvpNoteZh : meta.mvpNoteEn;
129
- const actionLinkText = isZh ? meta.action?.linkTextZh : meta.action?.linkTextEn;
130
- // 段落用 \n\n 分隔
131
- const detailParagraphs = detail.split("\n\n").filter((p) => p.length > 0);
132
- // 头部点击:toggle isOpen(但点击 toggle 按钮 / confirm-bar / tech-toggle / action-row 不触发)
133
- const handleHeadClick = (e) => {
134
- const target = e.target;
135
- if (target.closest("[data-agent-toggle]") ||
136
- target.closest("[data-confirm-bar]") ||
137
- target.closest("[data-tech-toggle]") ||
138
- target.closest("[data-action-row]")) {
139
- return;
140
- }
141
- setIsOpen((prev) => !prev);
142
- };
143
- // toggle 按钮点击
144
- const handleToggleClick = (e) => {
145
- e.stopPropagation();
146
- if (agent.enabled) {
147
- // 当前 on → 要关
148
- if (meta.isCore) {
149
- // 核心代理:显示内联确认 + 自动展开
150
- setConfirming(true);
151
- setIsOpen(true);
152
- }
153
- else {
154
- // 非核心代理:直接关
155
- onBindingChange(agent.name, agent.runtimeProfileId, false);
156
- }
157
- }
158
- else {
159
- // 当前 off → 要开
160
- onBindingChange(agent.name, agent.runtimeProfileId, true);
161
- }
162
- };
163
- // 确认停用
164
- const handleConfirmOff = (e) => {
165
- e.stopPropagation();
166
- onBindingChange(agent.name, agent.runtimeProfileId, false);
167
- setConfirming(false);
168
- };
169
- // 取消确认
170
- const handleCancelConfirm = (e) => {
171
- e.stopPropagation();
172
- setConfirming(false);
173
- };
174
- // tech-toggle 点击
175
- const handleTechToggleClick = (e) => {
176
- e.stopPropagation();
177
- setShowTechDetail((prev) => !prev);
178
- };
179
- // profile select 变更
180
- const handleProfileChange = (e) => {
181
- onBindingChange(agent.name, e.target.value, agent.enabled);
182
- };
183
- return (_jsxs("div", { "data-agent-card": agent.name, className: cn("bg-surface border border-line-2 rounded-[4px] mb-[6px] overflow-hidden transition-colors hover:border-line", !meta.isCore && "border-dashed", !agent.enabled && "opacity-72"), children: [_jsxs("div", { className: "px-[16px] py-[12px] cursor-pointer flex items-center gap-[12px]", onClick: handleHeadClick, role: "button", tabIndex: 0, "aria-expanded": isOpen, onKeyDown: (e) => {
184
- if (e.key === "Enter" || e.key === " ") {
185
- e.preventDefault();
186
- setIsOpen((prev) => !prev);
187
- }
188
- }, children: [_jsx("div", { className: statusDotClasses(effectiveReadiness, agent.enabled), "aria-hidden": "true" }), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsxs("div", { className: cn("text-[14px] font-semibold tracking-[-0.005em] flex items-center gap-[8px]", agent.enabled ? "text-ink" : "text-ink-3"), children: [_jsx("span", { children: displayName }), _jsx("span", { className: "font-mono text-[11.5px] text-ink-4 font-normal", children: agent.name })] }), _jsx("div", { className: "text-[12.5px] text-ink-3 mt-[2px] leading-[1.5]", children: role })] }), _jsx("button", { type: "button", "data-agent-toggle": true, onClick: handleToggleClick, disabled: isSaving, "aria-label": agent.enabled
189
- ? t("pages.controlCenter.agentDisabled")
190
- : t("pages.controlCenter.agentEnabled"), className: cn("rounded-[3px] px-[14px] py-[6px] text-[12.5px] font-medium transition-colors disabled:opacity-50", agent.enabled
191
- ? "border border-gov bg-gov text-paper hover:bg-gov-2"
192
- : "border border-line bg-surface text-ink hover:border-line-2"), children: isSaving
193
- ? t("pages.controlCenter.saving")
194
- : agent.enabled
195
- ? t("pages.controlCenter.on")
196
- : t("pages.controlCenter.off") }), _jsx(ChevronRight, { className: cn("w-[14px] h-[14px] text-ink-4 transition-transform shrink-0", isOpen && "rotate-90"), "aria-hidden": "true" })] }), isOpen && (_jsxs("div", { className: "px-[16px] pb-[14px] border-t border-line-2 bg-panel", children: [_jsx("div", { className: "pt-[14px] text-[13px] text-ink-3 leading-[1.62]", children: detailParagraphs.map((para, i) => (_jsx("p", { className: i > 0 ? "mt-2" : undefined, children: renderTextWithCode(para) }, i))) }), mvpNote && (_jsx("div", { className: "mt-3 text-[12px] text-ink-4 font-mono italic", children: mvpNote })), _jsxs("div", { className: cn("mt-[12px] px-[12px] py-[10px] border border-line-2 border-l-[2.5px] rounded-[4px] bg-paper-2 text-[12.5px] text-ink-3 leading-[1.55]", impactBorderClass(meta.impactLevel)), children: [_jsx("span", { className: cn("block mb-[3px] text-[10px] font-mono uppercase tracking-[0.08em] font-medium", impactLabelClass(meta.impactLevel)), children: t("pages.controlCenter.impact.label") }), impact] }), meta.action && actionLinkText && (_jsx("div", { "data-action-row": true, className: "mt-[12px] pt-[12px] border-t border-line-2", children: _jsxs("button", { type: "button", onClick: (e) => {
197
- e.stopPropagation();
198
- navigate(meta.action.to);
199
- }, className: "flex items-center gap-[6px] text-[12px] text-gov hover:text-gov-2 transition-colors font-medium", children: [_jsx("span", { children: actionLinkText }), _jsx(ChevronRight, { className: "w-[12px] h-[12px]", "aria-hidden": "true" })] }) })), Object.keys(techDetail).length > 0 && (_jsxs(_Fragment, { children: [_jsxs("div", { "data-tech-toggle": true, className: "mt-[12px] pt-[12px] border-t border-line-2 flex items-center gap-[6px] cursor-pointer text-[11px] text-ink-4 font-mono uppercase tracking-[0.04em] hover:text-ink-2 transition-colors", onClick: handleTechToggleClick, role: "button", tabIndex: 0, "aria-expanded": showTechDetail, onKeyDown: (e) => {
200
- if (e.key === "Enter" || e.key === " ") {
201
- e.preventDefault();
202
- e.stopPropagation();
203
- setShowTechDetail((prev) => !prev);
204
- }
205
- }, children: [_jsx(ChevronRight, { className: cn("w-[12px] h-[12px] transition-transform", showTechDetail && "rotate-90"), "aria-hidden": "true" }), t("pages.controlCenter.techDetail")] }), showTechDetail && (_jsx("div", { className: "mt-2 grid grid-cols-[72px_1fr] gap-x-[14px] gap-y-[6px] text-[12px] leading-[1.55]", children: Object.entries(techDetail).map(([k, v]) => (_jsxs("div", { className: "contents", children: [_jsx("div", { className: "text-ink-4 font-mono text-[10.5px] uppercase tracking-[0.04em] pt-px", children: k }), _jsx("div", { className: "text-ink-3", children: renderTextWithCode(v) })] }, k))) }))] })), _jsxs("div", { className: "mt-[12px] pt-[12px] border-t border-line-2 flex items-center gap-[10px] text-[12px] flex-wrap", children: [_jsx("span", { className: "text-ink-4 font-mono text-[10.5px] uppercase tracking-[0.04em]", children: t("pages.controlCenter.profileLabelShort") }), _jsx("select", { value: agent.runtimeProfileId, onChange: handleProfileChange, disabled: isSaving, className: "font-mono text-[11px] text-ink-2 bg-surface border border-line-2 rounded-[3px] px-2 py-1 cursor-pointer focus:outline-none focus:border-gov disabled:opacity-50", "aria-label": t("pages.controlCenter.profileLabel"), children: profiles.map((p) => (_jsx("option", { value: p.id, children: p.label }, p.id))) }), readinessLoading && (_jsx("span", { className: "text-[10.5px] text-ink-4 font-mono animate-pulse", children: t("pages.controlCenter.readinessChecking") })), _jsx("button", { type: "button", "data-manage-profiles": true, onClick: (e) => {
206
- e.stopPropagation();
207
- const el = document.getElementById("runtime-profile-manager");
208
- if (el) {
209
- el.scrollIntoView({ behavior: "smooth", block: "start" });
210
- }
211
- }, className: "ml-auto text-[11px] text-ink-4 hover:text-ink-2 transition-colors px-[8px] py-[3px] border border-line-2 rounded-[3px] focus-visible:outline-2 focus-visible:outline-gov focus-visible:outline-offset-2", "aria-label": t("pages.controlCenter.manageProfiles"), children: t("pages.controlCenter.manageProfiles") })] }), confirming && (_jsxs("div", { "data-confirm-bar": true, className: "mt-[10px] px-[12px] py-[10px] border border-danger rounded-[4px] bg-danger/10 text-[12px] text-ink-2 leading-[1.55]", children: [_jsx("div", { children: impact }), _jsxs("div", { className: "mt-2 flex gap-[8px]", children: [_jsx("button", { type: "button", onClick: handleConfirmOff, className: "text-[11.5px] px-[12px] py-[4px] rounded-[3px] border border-transparent bg-danger text-paper font-medium hover:opacity-90 transition-opacity focus-visible:outline-2 focus-visible:outline-gov focus-visible:outline-offset-2", children: t("pages.controlCenter.impact.confirmAck") }), _jsx("button", { type: "button", onClick: handleCancelConfirm, className: "text-[11.5px] px-[12px] py-[4px] rounded-[3px] border border-line bg-transparent text-ink-3 hover:border-line-2 transition-colors focus-visible:outline-2 focus-visible:outline-gov focus-visible:outline-offset-2", children: t("pages.controlCenter.impact.confirmCancel") })] })] }))] }))] }));
212
- }
@@ -1,26 +0,0 @@
1
- import { type AgentGroupMeta } from "../../utils/agent-metadata.js";
2
- import type { RedactedAgentSummary, RedactedRuntimeProfileSummary } from "../../api.js";
3
- import { type AgentLocale } from "./AgentCard.js";
4
- /**
5
- * AgentGroup — 依赖分组容器
6
- *
7
- * 渲染 group header(名称 + 标签 + 提示)+ 该组所有 AgentCard。
8
- * 标签样式按 GroupTag(must/recommend/optional/independent)区分。
9
- *
10
- * rc 合规:
11
- * - rc-2/rc-5: 父组件已用 groupAgentsByDependency 过滤未知代理,本组件用
12
- * isKnownAgentName 类型守卫二次校验 agent.name 后取 meta(防御性,不静默)
13
- * - rc-9: 若 agents 为空数组,渲染 group header 但显示空状态提示
14
- *
15
- * 品牌约束:无 translateY / scale hover,无硬编码色值
16
- */
17
- interface AgentGroupProps {
18
- groupMeta: AgentGroupMeta;
19
- agents: RedactedAgentSummary[];
20
- profiles: RedactedRuntimeProfileSummary[];
21
- onBindingChange: (agentName: string, runtimeProfile: string, enabled: boolean) => void;
22
- saving: string | null;
23
- locale: AgentLocale;
24
- }
25
- export declare function AgentGroup({ groupMeta, agents, profiles, onBindingChange, saving, locale, }: AgentGroupProps): import("react").JSX.Element;
26
- export {};
@@ -1,38 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useTranslation } from "react-i18next";
3
- import { cn } from "../../../lib/utils.js";
4
- import { AGENT_METADATA, } from "../../utils/agent-metadata.js";
5
- import { isKnownAgentName } from "../../utils/control-center-helpers.js";
6
- import { AgentCard } from "./AgentCard.js";
7
- /** gtag 样式按 GroupTag 区分 */
8
- function gtagClasses(tag) {
9
- const base = "text-[10px] font-mono px-[7px] py-[2px] rounded-[2px] tracking-[0.02em] font-medium border border-transparent";
10
- switch (tag) {
11
- case "must":
12
- return cn(base, "bg-danger/10 text-danger border-danger/22");
13
- case "recommend":
14
- return cn(base, "bg-amber/10 text-amber border-amber/22");
15
- case "optional":
16
- return cn(base, "bg-paper-2 text-ink-4 border-line-2");
17
- case "independent":
18
- return cn(base, "bg-green/10 text-green border-green/22");
19
- default:
20
- return base;
21
- }
22
- }
23
- export function AgentGroup({ groupMeta, agents, profiles, onBindingChange, saving, locale, }) {
24
- const { t } = useTranslation();
25
- const isZh = locale === "zh-CN";
26
- const groupName = isZh ? groupMeta.labelZh : groupMeta.labelEn;
27
- const groupTagLabel = isZh ? groupMeta.tagLabelZh : groupMeta.tagLabelEn;
28
- const groupHint = isZh ? groupMeta.hintZh : groupMeta.hintEn;
29
- // rc-2/rc-5: 先用类型守卫缩窄 agent.name,避免 as 绕过;
30
- // 空状态判断基于过滤后的 knownAgents,避免"全部未知时仍渲染 group header 但无卡片"
31
- // 用对象级类型谓词让 TS 在后续 map 中正确缩窄 agent.name(Array.filter 对
32
- // 子属性的 string 谓词不会传播到元素类型)
33
- const knownAgents = agents.filter((agent) => isKnownAgentName(agent.name));
34
- return (_jsxs("div", { className: "mb-[20px]", children: [_jsxs("div", { className: "px-[14px] py-[9px] bg-paper-2 border border-line-2 rounded-[4px] flex items-center gap-[10px] mb-[8px]", children: [_jsx("span", { className: "text-[12.5px] font-semibold text-ink-2", children: groupName }), _jsx("span", { className: gtagClasses(groupMeta.tag), children: groupTagLabel }), _jsx("span", { className: "ml-auto text-[11px] text-ink-4 font-mono leading-[1.4] max-w-[32ch] text-right", children: groupHint })] }), knownAgents.length === 0 ? (_jsx("div", { className: "py-2 px-4 text-[12.5px] text-ink-4 italic", children: "\u2014" })) : (knownAgents.map((agent) => {
35
- const meta = AGENT_METADATA[agent.name];
36
- return (_jsx(AgentCard, { agent: agent, meta: meta, profiles: profiles, onBindingChange: onBindingChange, saving: saving, locale: locale }, agent.name));
37
- }))] }));
38
- }
@@ -1 +0,0 @@
1
- export declare function ControlCenterPage(): import("react").JSX.Element;