@cat-factory/app 0.302.2 → 0.303.1

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 (328) hide show
  1. package/README.md +99 -14
  2. package/app/app.config.ts +19 -10
  3. package/app/assets/css/main.css +13 -13
  4. package/app/assets/css/prose.css +22 -22
  5. package/app/assets/css/tokens.css +298 -0
  6. package/app/components/assistant/AssistantModal.vue +22 -22
  7. package/app/components/auth/AuthGate.vue +1 -1
  8. package/app/components/auth/BackendMisconfiguredScreen.vue +10 -10
  9. package/app/components/auth/LoginScreen.vue +34 -36
  10. package/app/components/auth/ResetPasswordScreen.vue +12 -12
  11. package/app/components/auth/UserMenu.vue +4 -4
  12. package/app/components/binaryCandidates/BinaryCandidatesWindow.vue +27 -25
  13. package/app/components/binaryOutput/BinaryOutputReport.vue +15 -15
  14. package/app/components/binaryOutput/StoredAssetView.vue +5 -5
  15. package/app/components/board/AddTaskModal.vue +17 -20
  16. package/app/components/board/AgentFailureCard.vue +11 -11
  17. package/app/components/board/AgentFailureHistory.vue +2 -2
  18. package/app/components/board/BoardCanvas.vue +6 -5
  19. package/app/components/board/CreateInitiativeModal.vue +8 -10
  20. package/app/components/board/DependencyConnectOverlay.vue +1 -1
  21. package/app/components/board/FailureHistoryList.vue +7 -7
  22. package/app/components/board/RecurringPipelineModal.vue +17 -17
  23. package/app/components/board/ReviewFrictionDialog.vue +6 -6
  24. package/app/components/board/StepExecutionHistory.vue +13 -13
  25. package/app/components/board/TaskDependencyEdges.vue +8 -8
  26. package/app/components/board/nodes/AgentChip.vue +10 -10
  27. package/app/components/board/nodes/BlockNode.vue +29 -29
  28. package/app/components/board/nodes/DecisionBadge.vue +2 -2
  29. package/app/components/board/nodes/EpicNode.vue +14 -10
  30. package/app/components/board/nodes/FrameSwimlanes.vue +7 -9
  31. package/app/components/board/nodes/InitiativeCard.vue +8 -8
  32. package/app/components/board/nodes/LaneGroup.vue +1 -1
  33. package/app/components/board/nodes/LaneTask.vue +2 -2
  34. package/app/components/board/nodes/ResizeGrips.vue +4 -4
  35. package/app/components/board/nodes/TaskCard.vue +18 -18
  36. package/app/components/board/nodes/TaskLane.vue +5 -5
  37. package/app/components/board/nodes/TaskPipelineMini.vue +18 -18
  38. package/app/components/bootstrap/AdoptionReviewModal.vue +29 -26
  39. package/app/components/bootstrap/BootstrapModal.vue +21 -23
  40. package/app/components/bootstrap/BootstrapRunSteps.vue +1 -1
  41. package/app/components/brainstorm/BrainstormWindow.vue +30 -33
  42. package/app/components/bugFishing/BugFishingWindow.vue +49 -49
  43. package/app/components/clarity/ClarityReviewWindow.vue +30 -30
  44. package/app/components/common/AsyncViewError.vue +5 -5
  45. package/app/components/common/ClarificationItem.vue +8 -13
  46. package/app/components/common/ConfirmDialog.vue +4 -2
  47. package/app/components/common/DescriptorFields.vue +1 -1
  48. package/app/components/common/EmptyState.vue +3 -3
  49. package/app/components/common/InterviewGateNotice.vue +7 -7
  50. package/app/components/common/KeyboardShortcutsHelp.vue +1 -1
  51. package/app/components/common/MarkdownProse.vue +14 -13
  52. package/app/components/consensus/ConsensusSessionWindow.vue +26 -26
  53. package/app/components/context/ContextAttachmentFields.vue +17 -17
  54. package/app/components/docs/DocInterviewWindow.vue +14 -14
  55. package/app/components/documents/ContextDocumentPicker.vue +17 -17
  56. package/app/components/documents/DocumentImportModal.vue +7 -7
  57. package/app/components/documents/DocumentSourceConnectModal.vue +3 -3
  58. package/app/components/documents/DocumentSyncState.vue +5 -5
  59. package/app/components/documents/DocumentTemplatesModal.vue +15 -15
  60. package/app/components/documents/RepoContextDocPicker.vue +5 -5
  61. package/app/components/documents/SpawnPreviewModal.vue +12 -12
  62. package/app/components/documents/StartFromDesignModal.vue +11 -11
  63. package/app/components/documents/TaskContextDocs.vue +5 -5
  64. package/app/components/environments/EnvSetupStepper.vue +6 -6
  65. package/app/components/environments/EnvironmentStatusPanel.vue +17 -17
  66. package/app/components/environments/steps/EnvPickStep.vue +3 -3
  67. package/app/components/environments/steps/EnvPreflightStep.vue +9 -9
  68. package/app/components/environments/steps/EnvReviewStep.vue +25 -22
  69. package/app/components/environments/steps/EnvSaveStep.vue +7 -5
  70. package/app/components/environments/steps/JourneyStepNav.vue +1 -1
  71. package/app/components/focus/BlockFocusView.vue +17 -19
  72. package/app/components/followUp/FollowUpWindow.vue +23 -23
  73. package/app/components/forkDecision/ForkDecisionWindow.vue +37 -39
  74. package/app/components/foundational/FoundationalContractSummary.vue +7 -7
  75. package/app/components/foundational/FoundationalServiceCatalogList.vue +11 -11
  76. package/app/components/foundational/FoundationalServiceManager.vue +1 -1
  77. package/app/components/foundational/FoundationalServiceRegistry.vue +13 -13
  78. package/app/components/foundational/FoundationalServiceSources.vue +13 -13
  79. package/app/components/foundational/FoundationalSuppressions.vue +7 -7
  80. package/app/components/foundational/ServiceCatalogConnection.vue +10 -10
  81. package/app/components/fragments/FragmentLibraryManager.vue +41 -44
  82. package/app/components/fragments/FragmentSelector.vue +13 -13
  83. package/app/components/fragments/GitHubDocUrlImport.vue +1 -1
  84. package/app/components/gates/GateFailingCheckList.vue +5 -5
  85. package/app/components/gates/GateResultView.vue +50 -47
  86. package/app/components/github/AddServiceFromRepoModal.vue +14 -14
  87. package/app/components/github/BranchProtectionPreflight.vue +13 -13
  88. package/app/components/github/GitHubConnect.vue +7 -7
  89. package/app/components/github/GitHubOnboarding.vue +7 -7
  90. package/app/components/github/GitHubPanel.vue +37 -40
  91. package/app/components/github/RepoTreeBrowser.vue +18 -18
  92. package/app/components/humanTest/HumanTestWindow.vue +30 -33
  93. package/app/components/initiative/InitiativePlanNotice.vue +5 -5
  94. package/app/components/initiative/InitiativePlanReview.vue +27 -29
  95. package/app/components/initiative/InitiativePlanningWindow.vue +10 -10
  96. package/app/components/initiative/InitiativeTrackerWindow.vue +71 -65
  97. package/app/components/inputGate/InputGateNotice.vue +2 -4
  98. package/app/components/judge/JudgeResultView.vue +30 -32
  99. package/app/components/kaizen/KaizenPanel.vue +40 -36
  100. package/app/components/kaizen/KaizenStepStatus.vue +21 -21
  101. package/app/components/layout/AccountAuditLog.vue +10 -10
  102. package/app/components/layout/AccountDeploymentSettings.vue +20 -20
  103. package/app/components/layout/AccountFailureKindRules.vue +13 -13
  104. package/app/components/layout/AccountFoundationalSettings.vue +1 -1
  105. package/app/components/layout/AccountFragmentSettings.vue +1 -1
  106. package/app/components/layout/AccountModelPolicySettings.vue +9 -9
  107. package/app/components/layout/AccountPlatformAlertSettings.vue +11 -11
  108. package/app/components/layout/AccountRiskPolicySettings.vue +2 -2
  109. package/app/components/layout/AccountRunCredentialSettings.vue +5 -5
  110. package/app/components/layout/AccountSkillSettings.vue +1 -1
  111. package/app/components/layout/AccountTeamSettings.vue +23 -15
  112. package/app/components/layout/AiProvidersBanner.vue +11 -8
  113. package/app/components/layout/AppearanceSwitcher.vue +108 -0
  114. package/app/components/layout/BoardSwitcher.vue +8 -11
  115. package/app/components/layout/BoardToolbar.vue +3 -3
  116. package/app/components/layout/CommandBar.vue +7 -9
  117. package/app/components/layout/ConnectionStatusBanner.vue +2 -2
  118. package/app/components/layout/DefaultTestEnvBanner.vue +5 -5
  119. package/app/components/layout/GitHubPatBanner.vue +5 -5
  120. package/app/components/layout/GitHubPatPermissionsBanner.vue +16 -10
  121. package/app/components/layout/InfraSetupBanner.vue +6 -6
  122. package/app/components/layout/IntegrationsHub.vue +15 -15
  123. package/app/components/layout/LanguageSwitcher.vue +5 -5
  124. package/app/components/layout/ModelProvidersHub.vue +13 -16
  125. package/app/components/layout/NotificationsInbox.vue +10 -10
  126. package/app/components/layout/PersonalSetupModal.vue +8 -8
  127. package/app/components/layout/ProviderConfigBanner.vue +4 -4
  128. package/app/components/layout/RolePrompt.vue +7 -7
  129. package/app/components/layout/SideBar.vue +6 -4
  130. package/app/components/layout/SpendWarningBanner.vue +17 -14
  131. package/app/components/layout/TranslationWarningBanner.vue +4 -4
  132. package/app/components/layout/UiModeSwitcher.vue +13 -13
  133. package/app/components/layout/UiRoleSwitcher.vue +8 -8
  134. package/app/components/layout/WorkspaceMembersSettings.vue +15 -11
  135. package/app/components/media/ArtifactLightbox.vue +13 -13
  136. package/app/components/media/ImageCompare.vue +31 -24
  137. package/app/components/merge/MergeEffortChips.vue +2 -2
  138. package/app/components/notifications/NotificationSettingsPanel.vue +14 -12
  139. package/app/components/observability/OutcomeFilterChips.vue +6 -6
  140. package/app/components/observability/RunFailureSummary.vue +28 -25
  141. package/app/components/observability/StepMetricsBar.vue +26 -28
  142. package/app/components/observability/StepModelActivity.vue +2 -2
  143. package/app/components/observability/ToolCallList.vue +24 -24
  144. package/app/components/outcome/OutcomeSummaryWindow.vue +47 -47
  145. package/app/components/palettes/AgentPalette.vue +8 -8
  146. package/app/components/palettes/AgentTierSelect.vue +1 -1
  147. package/app/components/palettes/PipelinePurposeSelect.vue +1 -1
  148. package/app/components/panels/AgentStepDetail.vue +52 -51
  149. package/app/components/panels/AttemptEntryHeader.vue +4 -6
  150. package/app/components/panels/DecisionModal.vue +7 -7
  151. package/app/components/panels/GenericStructuredResultView.vue +7 -7
  152. package/app/components/panels/InspectorPanel.vue +17 -17
  153. package/app/components/panels/MergerResultView.vue +19 -19
  154. package/app/components/panels/ObservabilityPanel.vue +115 -123
  155. package/app/components/panels/OperatorDashboardPanel.vue +89 -97
  156. package/app/components/panels/ReportsPanel.vue +69 -66
  157. package/app/components/panels/ReportsSpendBreakdown.vue +9 -9
  158. package/app/components/panels/ResultWindowShell.vue +38 -38
  159. package/app/components/panels/RunDetailLoadState.vue +2 -2
  160. package/app/components/panels/StepContainerStatus.vue +9 -9
  161. package/app/components/panels/StepDelegatedStatus.logic.spec.ts +135 -0
  162. package/app/components/panels/StepDelegatedStatus.logic.ts +160 -0
  163. package/app/components/panels/StepDelegatedStatus.vue +181 -0
  164. package/app/components/panels/StepEffortReport.vue +16 -15
  165. package/app/components/panels/StepFragmentAdherence.vue +14 -10
  166. package/app/components/panels/StepMetadataCard.vue +74 -45
  167. package/app/components/panels/StepReproductionReport.vue +25 -21
  168. package/app/components/panels/StepRunMeta.vue +20 -20
  169. package/app/components/panels/StepTestReport.logic.spec.ts +8 -3
  170. package/app/components/panels/StepTestReport.logic.ts +4 -4
  171. package/app/components/panels/StepTestReport.vue +28 -28
  172. package/app/components/panels/StepToolServers.vue +14 -11
  173. package/app/components/panels/StepValidationReport.vue +7 -7
  174. package/app/components/panels/inspector/ContainerSummary.vue +9 -9
  175. package/app/components/panels/inspector/DocReferenceRepos.vue +3 -3
  176. package/app/components/panels/inspector/EnvProbeReport.vue +24 -27
  177. package/app/components/panels/inspector/EpicChildren.vue +8 -12
  178. package/app/components/panels/inspector/FrontendBindingsResolved.vue +11 -11
  179. package/app/components/panels/inspector/FrontendConfig.vue +37 -41
  180. package/app/components/panels/inspector/InitiativeInspector.vue +3 -3
  181. package/app/components/panels/inspector/InspectorSection.vue +6 -6
  182. package/app/components/panels/inspector/RecurringScheduleSettings.vue +16 -19
  183. package/app/components/panels/inspector/ServiceConnections.vue +2 -2
  184. package/app/components/panels/inspector/ServiceReleaseHealthConfig.vue +2 -2
  185. package/app/components/panels/inspector/ServiceSelfTests.vue +21 -17
  186. package/app/components/panels/inspector/ServiceTestConfig.vue +51 -59
  187. package/app/components/panels/inspector/ServiceTestSecrets.vue +5 -5
  188. package/app/components/panels/inspector/ServiceTestingContext.vue +3 -3
  189. package/app/components/panels/inspector/ServiceValidationConfig.vue +2 -2
  190. package/app/components/panels/inspector/TaskAgentConfig.vue +3 -3
  191. package/app/components/panels/inspector/TaskAprioriBranches.vue +8 -5
  192. package/app/components/panels/inspector/TaskDependencies.vue +1 -1
  193. package/app/components/panels/inspector/TaskEstimateBadge.vue +11 -11
  194. package/app/components/panels/inspector/TaskExecution.vue +17 -17
  195. package/app/components/panels/inspector/TaskReviewTarget.vue +2 -2
  196. package/app/components/panels/inspector/TaskRunSettings.vue +35 -37
  197. package/app/components/panels/inspector/TaskStructure.vue +3 -3
  198. package/app/components/pipeline/AgentKindIcon.vue +1 -1
  199. package/app/components/pipeline/AgentPromptEditor.vue +17 -17
  200. package/app/components/pipeline/BinaryOutputStepPicker.vue +42 -56
  201. package/app/components/pipeline/EstimateThresholdFields.vue +4 -4
  202. package/app/components/pipeline/GateConfigFields.vue +13 -10
  203. package/app/components/pipeline/IterationCapPrompt.vue +4 -2
  204. package/app/components/pipeline/PipelineBuilder.vue +47 -55
  205. package/app/components/pipeline/PipelineHealthModal.vue +27 -29
  206. package/app/components/pipeline/PipelinePicker.vue +10 -10
  207. package/app/components/pipeline/PipelinePreview.vue +10 -10
  208. package/app/components/pipeline/PipelineProgress.vue +64 -67
  209. package/app/components/prReview/PrReviewPhaseBadge.vue +7 -7
  210. package/app/components/prReview/PrReviewWindow.vue +75 -77
  211. package/app/components/providers/AiPresetMismatchDialog.vue +5 -5
  212. package/app/components/providers/AiProviderOnboardingModal.vue +9 -9
  213. package/app/components/providers/ApiKeysSection.vue +13 -13
  214. package/app/components/providers/PersonalCredentialModal.vue +2 -2
  215. package/app/components/providers/PersonalSubscriptionSection.vue +10 -10
  216. package/app/components/providers/SignInRequiredNotice.vue +1 -1
  217. package/app/components/providers/VendorCredentialsModal.vue +10 -10
  218. package/app/components/provisioning/ProvisioningLogsDrawer.vue +13 -13
  219. package/app/components/ralph/RalphLoopResultView.vue +28 -30
  220. package/app/components/recurring/RecurrenceEditor.vue +2 -2
  221. package/app/components/requirements/RequirementsReviewWindow.vue +51 -58
  222. package/app/components/riskPolicy/RiskPolicyPicker.vue +12 -15
  223. package/app/components/riskPolicy/RiskPolicyPreview.vue +14 -14
  224. package/app/components/sandbox/SandboxPanel.vue +58 -59
  225. package/app/components/settings/AccountSettingsPanel.vue +1 -1
  226. package/app/components/settings/ApiTokensPanel.vue +10 -10
  227. package/app/components/settings/BudgetSettings.vue +18 -22
  228. package/app/components/settings/CapabilityCredentialsPanel.vue +15 -15
  229. package/app/components/settings/CloudflareHandlerSection.vue +20 -20
  230. package/app/components/settings/ComposeEnvironmentSetupSection.vue +13 -13
  231. package/app/components/settings/ConnectionTestVerdict.vue +3 -3
  232. package/app/components/settings/ConnectionWarnings.vue +1 -1
  233. package/app/components/settings/ConsensusGroupsSection.vue +27 -35
  234. package/app/components/settings/CustomManifestTypeEditor.vue +10 -10
  235. package/app/components/settings/DefaultProvisionTypeSection.vue +6 -6
  236. package/app/components/settings/InfraHandlersConfigurator.vue +24 -22
  237. package/app/components/settings/InfrastructureBackendPicker.vue +6 -6
  238. package/app/components/settings/InfrastructureWindow.vue +5 -5
  239. package/app/components/settings/IssueTrackerPanel.vue +29 -23
  240. package/app/components/settings/KubernetesEngineForm.vue +11 -11
  241. package/app/components/settings/KubernetesEnvironmentForm.vue +4 -4
  242. package/app/components/settings/LocalContainerPoolSettings.vue +6 -11
  243. package/app/components/settings/LocalModelEndpointsPanel.vue +20 -18
  244. package/app/components/settings/McpAuthorizeScreen.vue +13 -15
  245. package/app/components/settings/McpOAuthCallbackScreen.vue +16 -10
  246. package/app/components/settings/MergeClassRulesEditor.vue +6 -9
  247. package/app/components/settings/MergeRolePolicyEditor.vue +16 -16
  248. package/app/components/settings/ModelConfigurationPanel.vue +23 -30
  249. package/app/components/settings/ModelPresetHealthModal.vue +15 -13
  250. package/app/components/settings/ObservabilityConnectionPanel.vue +4 -4
  251. package/app/components/settings/OpenRouterCatalogPanel.vue +26 -19
  252. package/app/components/settings/PackageRegistriesPanel.vue +8 -8
  253. package/app/components/settings/ProviderConnectionTab.vue +8 -11
  254. package/app/components/settings/ProviderManifestEditor.vue +9 -9
  255. package/app/components/settings/ProviderPreferenceEditor.vue +8 -8
  256. package/app/components/settings/RiskPolicyCreateForm.vue +10 -10
  257. package/app/components/settings/RiskPolicyEditorRow.vue +14 -14
  258. package/app/components/settings/RiskPolicyHealthModal.vue +15 -13
  259. package/app/components/settings/RiskPolicyInheritedRow.vue +1 -1
  260. package/app/components/settings/RiskPolicyPanel.vue +10 -15
  261. package/app/components/settings/ServiceFragmentDefaultsPanel.vue +7 -7
  262. package/app/components/settings/SharedStacksPanel.vue +9 -12
  263. package/app/components/settings/TaskSourceCard.vue +4 -4
  264. package/app/components/settings/TaskTypeSuppressionsPanel.vue +6 -6
  265. package/app/components/settings/ToolServerChecklist.vue +36 -29
  266. package/app/components/settings/UsageSettings.vue +15 -15
  267. package/app/components/settings/UserSecretsSection.vue +9 -12
  268. package/app/components/settings/WorkspaceMetadataSettings.vue +5 -5
  269. package/app/components/settings/WorkspaceSettingsPanel.vue +47 -47
  270. package/app/components/skills/ReviewSkillQueue.vue +10 -10
  271. package/app/components/skills/SkillLibraryManager.vue +23 -20
  272. package/app/components/slack/SlackPanel.vue +13 -17
  273. package/app/components/spec/ServiceSpecWindow.vue +45 -42
  274. package/app/components/tasks/BugHuntModal.vue +24 -27
  275. package/app/components/tasks/ContextIssuePicker.vue +11 -11
  276. package/app/components/tasks/TaskContextIssues.vue +3 -3
  277. package/app/components/tasks/TaskImportModal.vue +7 -7
  278. package/app/components/tasks/TaskSourceConnectModal.vue +10 -8
  279. package/app/components/testing/TestReportWindow.vue +99 -82
  280. package/app/components/theme/ThemeImportModal.vue +115 -0
  281. package/app/components/tutorial/TutorialCatalogue.vue +9 -9
  282. package/app/components/tutorial/TutorialNudge.vue +5 -5
  283. package/app/components/tutorial/TutorialOverlay.vue +12 -12
  284. package/app/components/tutorial/TutorialPrompt.vue +6 -9
  285. package/app/components/vcs/GitLabConnect.vue +4 -4
  286. package/app/components/vcs/VcsConnectSurfaces.vue +2 -2
  287. package/app/components/visualConfirm/VisualConfirmationWindow.vue +36 -36
  288. package/app/composables/api/client.ts +6 -1
  289. package/app/composables/usePipelineErrorToast.ts +17 -0
  290. package/app/modular/agent-kinds.ts +24 -0
  291. package/app/pages/index.vue +5 -5
  292. package/app/plugins/theme.client.ts +125 -0
  293. package/app/spa-loading-template.html +52 -14
  294. package/app/stores/agents.ts +1 -1
  295. package/app/stores/theme.spec.ts +56 -0
  296. package/app/stores/theme.ts +87 -0
  297. package/app/types/domain.ts +19 -0
  298. package/app/types/execution.ts +4 -0
  299. package/app/utils/agentOutput.ts +1 -1
  300. package/app/utils/binaryOutput.ts +6 -6
  301. package/app/utils/bootstrapSteps.ts +14 -14
  302. package/app/utils/catalog.ts +87 -83
  303. package/app/utils/colorTint.ts +10 -0
  304. package/app/utils/failureKinds.ts +1 -0
  305. package/app/utils/observability.ts +3 -3
  306. package/app/utils/pipelineRender.ts +13 -17
  307. package/app/utils/swimlanes.ts +4 -4
  308. package/app/utils/theme/bootPalette.spec.ts +54 -0
  309. package/app/utils/theme/bootPalette.ts +108 -0
  310. package/app/utils/theme/builtins.spec.ts +38 -0
  311. package/app/utils/theme/builtins.ts +55 -0
  312. package/app/utils/theme/css.ts +162 -0
  313. package/app/utils/theme/doc.ts +353 -0
  314. package/app/utils/theme/link.ts +93 -0
  315. package/app/utils/theme/presets.ts +509 -0
  316. package/app/utils/theme/theme.spec.ts +224 -0
  317. package/i18n/locales/de.json +61 -4
  318. package/i18n/locales/en.json +70 -4
  319. package/i18n/locales/es.json +61 -4
  320. package/i18n/locales/fr.json +61 -4
  321. package/i18n/locales/he.json +61 -4
  322. package/i18n/locales/it.json +61 -4
  323. package/i18n/locales/ja.json +61 -4
  324. package/i18n/locales/pl.json +61 -4
  325. package/i18n/locales/tr.json +61 -4
  326. package/i18n/locales/uk.json +61 -4
  327. package/nuxt.config.ts +37 -11
  328. package/package.json +10 -9
@@ -636,7 +636,9 @@
636
636
  "service_catalog_filter_missing": "Bu bağlantının varlık filtresi okunamadı, dolayısıyla aktarılacak bir şey yok. Geri getirmek için servis kataloğu bağlantısını yeniden kaydedin.",
637
637
  "service_catalog_response_too_large": "Geliştirici portalı, bu platformun tek bir yanıtta tutacağından daha fazla veri döndürdü. Servis kataloğu ayarlarını açıp servis sınırını düşürün ya da arayüz tanımlarının aktarımını kapatın, sonra yeniden aktarın.",
638
638
  "assistant_generation_failed": "Asistanın model sağlayıcısı yanıt vermedi. Doğru yapılandırılmış durumda ve burada kurulacak bir şey yok: isteği birazdan yeniden deneyin.",
639
- "assistant_reply_unreadable": "Asistanın modeli, bu platformun karar olarak uygulayamayacağı bir yanıt verdi. Yeniden ifade etmek nadiren işe yarar: model ayarlarından asistan için başka bir model seçin."
639
+ "assistant_reply_unreadable": "Asistanın modeli, bu platformun karar olarak uygulayamayacağı bir yanıt verdi. Yeniden ifade etmek nadiren işe yarar: model ayarlarından asistan için başka bir model seçin.",
640
+ "delegated_executor_failed": "Dış yürütücü bu adımı başlatamadı. Sorun bu kurulumda değil, işi yapan sistemde: onun kendi günlüklerine bakıp yeniden deneyin.",
641
+ "delegated_work_branch_unprepared": "Platform, bu adımın yürütücüsünün gönderildiği çalışma dalını hazırlayamadı, bu yüzden hiçbir şey başlatılmadı. Ya depo bağlantısının bu dala yazma izni yok ya da görev henüz var olmayan bir dalı belirtiyor: ayrıntılar hangisi olduğunu söylüyor."
640
642
  }
641
643
  },
642
644
  "reason": {
@@ -720,7 +722,10 @@
720
722
  "expedition_settled": "Bu sefer zaten tamamlandı",
721
723
  "not_awaiting_triage": "Bu sefer triyaj beklemiyor",
722
724
  "already_addressed": "Bazı bulguların zaten bir düzeltme görevi var",
723
- "no_host_frame": "Bu sefer bir hizmetin altında değil"
725
+ "no_host_frame": "Bu sefer bir hizmetin altında değil",
726
+ "delegated_executor_unwired": "Dış yürütücü kayıtlı değil",
727
+ "delegated_step_async_only": "Bu adım beklenmez, yoklanır",
728
+ "delegated_claim_missing": "Bu adımın kontrol edilecek harici işi yok"
724
729
  },
725
730
  "description": {
726
731
  "dependencies_unmet": "Bu görev henüz tamamlanmamış başka görevlere bağlı. Onları tamamla veya engelini kaldır, ardından yeniden başlat.",
@@ -774,7 +779,10 @@
774
779
  "expedition_settled": "Çalıştırma hata avı adımını çoktan geçti, dolayısıyla işaretlenecek veya yok sayılacak bir şey kalmadı. Neyin bulduğunu ve hangi bulgulara müdahale edildiğini görmek için çalıştırmayı yenileyin.",
775
780
  "not_awaiting_triage": "Ya hâlâ başka bir açıyı tarıyor ya da çoktan bitirilmiş. Nerede olduğunu görmek için çalıştırmayı yenileyin.",
776
781
  "already_addressed": "Daha önce onlar için bir düzeltme görevi oluşturulmuştu, bu yüzden yeniden bir şey oluşturulmadı. Mevcut göreve ulaşmak için bulguyu açın.",
777
- "no_host_frame": "Bir düzeltme görevinin altında yaşayacağı bir hizmete ve düzeltilecek bir depoya ihtiyacı var. Sefer görevini bir hizmet çerçevesinin altına taşıyıp yeniden deneyin."
782
+ "no_host_frame": "Bir düzeltme görevinin altında yaşayacağı bir hizmete ve düzeltilecek bir depoya ihtiyacı var. Sefer görevini bir hizmet çerçevesinin altına taşıyıp yeniden deneyin.",
783
+ "delegated_executor_unwired": "Bu hattın bir adımı, bu kurulumun kaydetmediği bir dış yürütücüde çalışıyor; dolayısıyla işin gönderileceği bir yer yok. Yürütücüyü kodda kaydedin ya da adımı burada çalışan biriyle değiştirin.",
784
+ "delegated_step_async_only": "Bu adım harici bir yürütücüde çalışır ve saatler sürebilir; bu yüzden tek bir istek içinde çalıştırılmak yerine gönderilip ardından yoklanır. Çalıştırmayı panodan başlatın; buraya kendi kodunuzdan geldiyseniz adımı asenkron yoldan sürün.",
785
+ "delegated_claim_missing": "Çalıştırmanın harici yürütücüye ne gönderdiğine dair kaydı eksik, dolayısıyla yoklanacak bir şey yok. Yürütücünün kendisinde bir sorun yok. Çalıştırmayı yeniden yükleyin ve adım hâlâ takılıysa yeniden çalıştırın."
778
786
  },
779
787
  "action": {
780
788
  "connectGitHub": "GitHub'ı bağla",
@@ -1586,7 +1594,24 @@
1586
1594
  "promptVariant": "İstem varyantı",
1587
1595
  "promptVariantAdditionOnly": "Bu varyantın yalnızca eklentisi uygulandı. Bu ajan için çalışma alanı istemi, temel metnini değiştirdi.",
1588
1596
  "promptVariantSuperseded": "Bu varyant uygulanmadı. Bu ajan için çalışma alanı istemi öncelik kazandı.",
1589
- "promptVariantWithdrawn": "Bu varyant artık kayıtlı değil, bu nedenle adım varsayılan istemle çalıştı."
1597
+ "promptVariantWithdrawn": "Bu varyant artık kayıtlı değil, bu nedenle adım varsayılan istemle çalıştı.",
1598
+ "delegated": {
1599
+ "status": {
1600
+ "cancelled": "İptal edildi",
1601
+ "done": "Dışarıda tamamlandı",
1602
+ "failed": "Dışarıda başarısız oldu",
1603
+ "running": "Dışarıda çalışıyor",
1604
+ "starting": "Dışarıda başlatılıyor",
1605
+ "unrecognised": "Tanınmayan durum ({status})"
1606
+ },
1607
+ "run": "Dış çalıştırma",
1608
+ "branch": "Dal",
1609
+ "copyUrl": "Dış çalıştırma bağlantısını kopyala",
1610
+ "openRun": "Çalıştırmayı aç",
1611
+ "noOutcome": "Sonuç kaydedilmedi",
1612
+ "earlierAttempts": "Önceki denemeler",
1613
+ "usageNotReported": "{executor} token kullanımını bildirmiyor; bu adım yukarıdaki toplamlarda yok."
1614
+ }
1590
1615
  },
1591
1616
  "stepDetail": {
1592
1617
  "contents": "İçerik",
@@ -2006,6 +2031,7 @@
2006
2031
  "timeout": "Zaman aşımı",
2007
2032
  "agent": "Aracı",
2008
2033
  "job_failed": "İş başarısız",
2034
+ "delegated_failed": "Harici yürütücü başarısız",
2009
2035
  "rejected": "Reddedildi",
2010
2036
  "companion_rejected": "Yardımcı reddedildi",
2011
2037
  "stalled": "Takıldı",
@@ -8566,5 +8592,36 @@
8566
8592
  "territories": {
8567
8593
  "heading": "Bölgeler"
8568
8594
  }
8595
+ },
8596
+ "appearance": {
8597
+ "switcher": "Görünüm",
8598
+ "mode": {
8599
+ "system": "Sistem",
8600
+ "light": "Açık",
8601
+ "dark": "Koyu"
8602
+ },
8603
+ "theme": {
8604
+ "section": "Tema",
8605
+ "import": "Nuxt UI teması içe aktar…",
8606
+ "remove": "Bu temayı kaldır"
8607
+ },
8608
+ "import": {
8609
+ "title": "Tema içe aktar",
8610
+ "description": "Nuxt UI tema düzenleyicisinde bir tema oluşturun, paylaşım bağlantısını kopyalayın ve buraya yapıştırın. Tema yalnızca bu tarayıcıda saklanır.",
8611
+ "linkLabel": "Paylaşım bağlantısı",
8612
+ "linkPlaceholder": "https://ui.nuxt.com/theme?doc=…",
8613
+ "nameLabel": "Ad",
8614
+ "namePlaceholder": "Temam",
8615
+ "nameTaken": "“{typed}” adlı bir tema zaten var. Bu tema “{name}” olarak kaydedilecek.",
8616
+ "fontNote": "Temanın belirttiği yazı tipi yalnızca bu cihaz veya bu kurulum sağlıyorsa kullanılır; aksi halde tarayıcı varsayılan yazı tipine döner.",
8617
+ "submit": "İçe aktar",
8618
+ "cancel": "İptal",
8619
+ "error": {
8620
+ "notALink": "ui.nuxt.com/theme adresindeki paylaşım bağlantısını (veya temanın JSON'unu) yapıştırın.",
8621
+ "malformed": "Bu bağlantı okunabilir bir tema içermiyor. Düzenleyiciden yeniden kopyalayın.",
8622
+ "presetShorthand": "Bu bağlantı, bu uygulamanın tanımadığı bir Nuxt UI düzenleyici ön ayarını adlandırıyor. Bağlantının tüm temayı taşıması için düzenleyicide herhangi bir ayarı değiştirin ve yeniden kopyalayın.",
8623
+ "unsupportedVersion": "Bu tema, bu uygulamanın anladığından daha yeni bir düzenleyici biçimiyle oluşturulmuş."
8624
+ }
8625
+ }
8569
8626
  }
8570
8627
  }
@@ -636,7 +636,9 @@
636
636
  "service_catalog_filter_missing": "Не вдалося прочитати фільтр сутностей цього підключення, тож імпортувати нічого. Збережіть підключення каталогу сервісів повторно, щоб відновити його.",
637
637
  "service_catalog_response_too_large": "Портал розробника повернув більше даних, ніж ця платформа приймає в одній відповіді. Відкрийте налаштування каталогу сервісів і знизьте ліміт сервісів або вимкніть імпорт визначень інтерфейсів, а тоді імпортуйте ще раз.",
638
638
  "assistant_generation_failed": "Постачальник моделей асистента не відповів. Його налаштовано правильно, і тут нічого не потрібно змінювати: повторіть запит за мить.",
639
- "assistant_reply_unreadable": "Модель асистента відповіла тим, що ця платформа не може виконати як рішення. Переформулювання майже не допомагає: виберіть іншу модель для асистента в налаштуваннях моделей."
639
+ "assistant_reply_unreadable": "Модель асистента відповіла тим, що ця платформа не може виконати як рішення. Переформулювання майже не допомагає: виберіть іншу модель для асистента в налаштуваннях моделей.",
640
+ "delegated_executor_failed": "Зовнішній виконавець не зміг розпочати цей крок. Проблема в системі, яка виконує роботу, а не в цьому розгортанні: перегляньте її власні журнали й повторіть спробу.",
641
+ "delegated_work_branch_unprepared": "Платформа не змогла підготувати робочу гілку, на яку відправляється виконавець цього кроку, тому нічого не запущено. Або з’єднання з репозиторієм не має права запису в неї, або завдання називає гілку, якої ще немає: подробиці вказують, що саме."
640
642
  }
641
643
  },
642
644
  "reason": {
@@ -720,7 +722,10 @@
720
722
  "expedition_settled": "Ця експедиція вже завершена",
721
723
  "not_awaiting_triage": "Ця експедиція не очікує сортування",
722
724
  "already_addressed": "Деякі знахідки вже мають задачу виправлення",
723
- "no_host_frame": "Ця експедиція не належить жодному сервісу"
725
+ "no_host_frame": "Ця експедиція не належить жодному сервісу",
726
+ "delegated_executor_unwired": "Зовнішній виконавець не зареєстрований",
727
+ "delegated_step_async_only": "Цей крок опитується, а не очікується",
728
+ "delegated_claim_missing": "У цього кроку немає зовнішньої роботи для перевірки"
724
729
  },
725
730
  "description": {
726
731
  "dependencies_unmet": "Це завдання залежить від інших, які ще не завершені. Заверши або розблокуй їх, а потім запусти його знову.",
@@ -774,7 +779,10 @@
774
779
  "expedition_settled": "Запуск уже пройшов крок полювання на помилки, тож позначати чи відхиляти нічого. Оновіть запуск, щоб побачити, що він знайшов і які висновки опрацьовано.",
775
780
  "not_awaiting_triage": "Він або ще проходить наступний кут, або вже завершений. Оновіть запуск, щоб побачити його стан.",
776
781
  "already_addressed": "Задачу виправлення для них створено раніше, тому нічого не створено повторно. Відкрийте знахідку, щоб перейти до наявної задачі.",
777
- "no_host_frame": "Задачі виправлення потрібен сервіс, у якому вона житиме, і репозиторій для виправлення. Перемістіть задачу експедиції під рамку сервісу і спробуйте ще раз."
782
+ "no_host_frame": "Задачі виправлення потрібен сервіс, у якому вона житиме, і репозиторій для виправлення. Перемістіть задачу експедиції під рамку сервісу і спробуйте ще раз.",
783
+ "delegated_executor_unwired": "Крок цього конвеєра виконується на зовнішньому виконавці, якого це розгортання не реєструє, тож роботу нікуди надіслати. Зареєструйте виконавця в коді або замініть крок на той, що виконується тут.",
784
+ "delegated_step_async_only": "Цей крок виконується на зовнішньому виконавці й може тривати годинами, тому його надсилають і потім опитують, а не виконують у межах одного запиту. Запустіть прогін з дошки; якщо ви потрапили сюди зі свого коду, керуйте кроком через асинхронний шлях.",
785
+ "delegated_claim_missing": "Запис про те, що прогін надіслав зовнішньому виконавцю, відсутній, тож немає чого опитувати. Із самим виконавцем усе гаразд. Перезавантажте прогін і запустіть крок повторно, якщо він і далі стоїть."
778
786
  },
779
787
  "action": {
780
788
  "connectGitHub": "Під'єднати GitHub",
@@ -1586,7 +1594,24 @@
1586
1594
  "promptVariant": "Варіант промпту",
1587
1595
  "promptVariantAdditionOnly": "Застосовано лише доповнення цього варіанта. Промпт робочого простору для цього агента замінив його базовий текст.",
1588
1596
  "promptVariantSuperseded": "Цей варіант не застосовано. Промпт робочого простору для цього агента мав пріоритет.",
1589
- "promptVariantWithdrawn": "Цей варіант більше не зареєстрований, тому крок виконано з вбудованим промптом."
1597
+ "promptVariantWithdrawn": "Цей варіант більше не зареєстрований, тому крок виконано з вбудованим промптом.",
1598
+ "delegated": {
1599
+ "status": {
1600
+ "cancelled": "Скасовано",
1601
+ "done": "Завершено ззовні",
1602
+ "failed": "Не вдалося ззовні",
1603
+ "running": "Виконується ззовні",
1604
+ "starting": "Запускається ззовні",
1605
+ "unrecognised": "Нерозпізнаний статус ({status})"
1606
+ },
1607
+ "run": "Зовнішнє виконання",
1608
+ "branch": "Гілка",
1609
+ "copyUrl": "Скопіювати посилання на зовнішнє виконання",
1610
+ "openRun": "Відкрити виконання",
1611
+ "noOutcome": "Результат не записано",
1612
+ "earlierAttempts": "Попередні спроби",
1613
+ "usageNotReported": "{executor} не повідомляє про витрату токенів, тож цього кроку немає в підсумках вище."
1614
+ }
1590
1615
  },
1591
1616
  "stepDetail": {
1592
1617
  "contents": "Зміст",
@@ -2006,6 +2031,7 @@
2006
2031
  "timeout": "Час вичерпано",
2007
2032
  "agent": "Агент",
2008
2033
  "job_failed": "Завдання не виконано",
2034
+ "delegated_failed": "Збій зовнішнього виконавця",
2009
2035
  "rejected": "Відхилено",
2010
2036
  "companion_rejected": "Компаньйона відхилено",
2011
2037
  "stalled": "Зупинено",
@@ -8566,5 +8592,36 @@
8566
8592
  "territories": {
8567
8593
  "heading": "Території"
8568
8594
  }
8595
+ },
8596
+ "appearance": {
8597
+ "switcher": "Вигляд",
8598
+ "mode": {
8599
+ "system": "Системний",
8600
+ "light": "Світлий",
8601
+ "dark": "Темний"
8602
+ },
8603
+ "theme": {
8604
+ "section": "Тема",
8605
+ "import": "Імпортувати тему Nuxt UI…",
8606
+ "remove": "Видалити цю тему"
8607
+ },
8608
+ "import": {
8609
+ "title": "Імпортувати тему",
8610
+ "description": "Створіть тему в редакторі тем Nuxt UI, скопіюйте її посилання для спільного доступу та вставте сюди. Тема зберігається лише в цьому браузері.",
8611
+ "linkLabel": "Посилання для спільного доступу",
8612
+ "linkPlaceholder": "https://ui.nuxt.com/theme?doc=…",
8613
+ "nameLabel": "Назва",
8614
+ "namePlaceholder": "Моя тема",
8615
+ "nameTaken": "Тема з назвою «{typed}» уже існує. Цю буде збережено як «{name}».",
8616
+ "fontNote": "Шрифт, зазначений у темі, використовується лише якщо його надає цей пристрій або це розгортання; інакше браузер застосує шрифт за замовчуванням.",
8617
+ "submit": "Імпортувати",
8618
+ "cancel": "Скасувати",
8619
+ "error": {
8620
+ "notALink": "Вставте посилання для спільного доступу з ui.nuxt.com/theme (або JSON теми).",
8621
+ "malformed": "Це посилання не містить придатної теми. Скопіюйте його ще раз з редактора.",
8622
+ "presetShorthand": "Це посилання називає пресет редактора Nuxt UI, якого цей застосунок не знає. Змініть будь-яке налаштування в редакторі, щоб посилання містило всю тему, і скопіюйте його ще раз.",
8623
+ "unsupportedVersion": "Цю тему створено в новішому форматі редактора, ніж розуміє цей застосунок."
8624
+ }
8625
+ }
8569
8626
  }
8570
8627
  }
package/nuxt.config.ts CHANGED
@@ -15,12 +15,12 @@ export default defineNuxtConfig({
15
15
  // Render as a pure client-side SPA that talks to the cat-factory backend.
16
16
  ssr: false,
17
17
 
18
- // The board is a single dark-themed surface (neutral is mapped to `slate` and
19
- // every component is hand-styled in slate). Pin Nuxt UI's color mode to dark so
20
- // its own chrome (modals, inputs, selects, dropdowns) matches instead of
21
- // following the visitor's system preference and rendering light/white overlays.
18
+ // Colour mode follows the visitor's system preference and the in-app appearance switcher
19
+ // (`AppearanceSwitcher`); `@nuxtjs/color-mode` (registered by Nuxt UI) persists the pick. Dark
20
+ // is the fallback for a browser that reports no preference, since the board was designed dark
21
+ // first. Every colour in the SPA is a theme token, so both modes render from the same markup.
22
22
  colorMode: {
23
- preference: 'dark',
23
+ preference: 'system',
24
24
  fallback: 'dark',
25
25
  },
26
26
 
@@ -37,7 +37,28 @@ export default defineNuxtConfig({
37
37
  },
38
38
  },
39
39
 
40
- modules: ['@nuxt/ui', '@pinia/nuxt', 'pinia-plugin-persistedstate/nuxt', '@nuxtjs/i18n'],
40
+ modules: [
41
+ '@nuxt/ui',
42
+ '@nuxt/fonts',
43
+ '@pinia/nuxt',
44
+ 'pinia-plugin-persistedstate/nuxt',
45
+ '@nuxtjs/i18n',
46
+ ],
47
+
48
+ // The faces the BUILT-IN themes name (`utils/theme/builtins.ts`), downloaded at build time and
49
+ // self-hosted under `/_fonts` so no visitor's browser calls a font CDN. `global: true` emits the
50
+ // `@font-face` rules whether or not a stylesheet at build time names the family, because the
51
+ // theme plugin sets `--font-sans` / `--font-mono` at RUNTIME from the active document, which the
52
+ // module's CSS scan cannot see. An IMPORTED theme's font is not listed here, so it renders only if
53
+ // the device or the deployment provides it (the import dialog says so); a deployment that wants
54
+ // one adds it to this list in its own config. `theme.builtins.spec.ts` pins that every built-in
55
+ // font is here.
56
+ fonts: {
57
+ families: [
58
+ { name: 'Geist', provider: 'google', global: true },
59
+ { name: 'Geist Mono', provider: 'google', global: true },
60
+ ],
61
+ },
41
62
 
42
63
  // i18n lives in THIS layer's `i18n/` dir (the v9+ `restructureDir` convention).
43
64
  // @nuxtjs/i18n is layer-aware: it scans `i18n/locales/` in every layer of the
@@ -129,11 +150,16 @@ export default defineNuxtConfig({
129
150
  name: 'viewport',
130
151
  content: 'width=device-width, initial-scale=1, viewport-fit=cover',
131
152
  },
132
- // Tint the mobile browser chrome / iOS Safari address bar to the board
133
- // surface so the app doesn't sit under a mismatched white bar. Matches
134
- // `--board-bg`. (Home-screen installability — manifest, standalone status
135
- // bar, touch icons — is deferred to the initiative's E2/A5-icons follow-up.)
136
- { name: 'theme-color', content: '#0b1020' },
153
+ // Tint the mobile browser chrome / iOS Safari address bar to the board canvas for the FIRST
154
+ // paint, one value per OS colour scheme (the default theme's `--app-bg-canvas`). The app's
155
+ // own mode and theme can differ from the OS, so the theme plugin overrides both entries
156
+ // with the live canvas colour once it runs: unhead dedupes a `theme-color` meta by name AND
157
+ // media, so the plugin's pair (same media, no key) lands on these two tags. The loading
158
+ // shell leaves them alone: a hand-edited tag stops matching unhead's hydration and is left
159
+ // behind as a duplicate. (Home-screen installability is deferred to the initiative's
160
+ // E2/A5-icons follow-up.)
161
+ { name: 'theme-color', content: '#020618', media: '(prefers-color-scheme: dark)' },
162
+ { name: 'theme-color', content: '#e2e8f0', media: '(prefers-color-scheme: light)' },
137
163
  ],
138
164
  },
139
165
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/app",
3
- "version": "0.302.2",
3
+ "version": "0.303.1",
4
4
  "description": "Reusable Nuxt layer for the Agent Architecture Board SPA (components, stores, composables, pages). Consume it from a thin deployment app via `extends: ['@cat-factory/app']` and point it at your backend with NUXT_PUBLIC_API_BASE. See deploy/frontend for an example.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -18,32 +18,33 @@
18
18
  "access": "public"
19
19
  },
20
20
  "dependencies": {
21
- "@cat-factory/contracts": "0.355.1",
21
+ "@cat-factory/contracts": "0.356.0",
22
22
  "@modular-frontend/core": "0.6.0",
23
23
  "@modular-vue/core": "^1.5.0",
24
24
  "@modular-vue/journeys": "^1.4.0",
25
25
  "@modular-vue/nuxt": "^0.4.1",
26
26
  "@modular-vue/runtime": "^1.4.1",
27
27
  "@modular-vue/vue": "^1.4.1",
28
- "@nuxt/ui": "^4.11.1",
28
+ "@nuxt/fonts": "^0.14.0",
29
+ "@nuxt/ui": "^4.11.2",
29
30
  "@nuxtjs/i18n": "^10.6.0",
30
31
  "@pinia/nuxt": "^1.0.2",
31
- "@toad-contracts/core": "0.4.0",
32
- "@toad-contracts/frontend-http-client": "0.3.2",
33
- "@toad-contracts/valibot": "0.5.0",
32
+ "@toad-contracts/core": "1.0.0",
33
+ "@toad-contracts/frontend-http-client": "1.0.0",
34
+ "@toad-contracts/valibot": "1.0.0",
34
35
  "@vue-flow/background": "^1.3.2",
35
36
  "@vue-flow/core": "^1.48.2",
36
37
  "@vue-flow/node-resizer": "^1.5.1",
37
- "@vueuse/core": "^14.4.0",
38
+ "@vueuse/core": "^15.0.0",
38
39
  "markdown-it": "^15.0.2",
39
40
  "pinia": "^4.0.3",
40
41
  "pinia-plugin-persistedstate": "^4.7.1",
41
42
  "valibot": "^1.5.0",
42
- "vue": "3.5.42",
43
+ "vue": "3.5.43",
43
44
  "wretch": "^3.0.9"
44
45
  },
45
46
  "devDependencies": {
46
- "@toad-contracts/testing": "0.3.2",
47
+ "@toad-contracts/testing": "1.0.0",
47
48
  "happy-dom": "^20.14.5",
48
49
  "msw": "^2.15.0",
49
50
  "nuxt": "^4.5.2",