@cat-factory/app 0.302.2 → 0.303.0
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.
- package/README.md +16 -0
- package/app/app.config.ts +19 -10
- package/app/assets/css/main.css +13 -13
- package/app/assets/css/prose.css +22 -22
- package/app/assets/css/tokens.css +298 -0
- package/app/components/assistant/AssistantModal.vue +22 -22
- package/app/components/auth/AuthGate.vue +1 -1
- package/app/components/auth/BackendMisconfiguredScreen.vue +10 -10
- package/app/components/auth/LoginScreen.vue +34 -36
- package/app/components/auth/ResetPasswordScreen.vue +12 -12
- package/app/components/auth/UserMenu.vue +4 -4
- package/app/components/binaryCandidates/BinaryCandidatesWindow.vue +27 -25
- package/app/components/binaryOutput/BinaryOutputReport.vue +15 -15
- package/app/components/binaryOutput/StoredAssetView.vue +5 -5
- package/app/components/board/AddTaskModal.vue +17 -20
- package/app/components/board/AgentFailureCard.vue +11 -11
- package/app/components/board/AgentFailureHistory.vue +2 -2
- package/app/components/board/BoardCanvas.vue +6 -5
- package/app/components/board/CreateInitiativeModal.vue +8 -10
- package/app/components/board/DependencyConnectOverlay.vue +1 -1
- package/app/components/board/FailureHistoryList.vue +7 -7
- package/app/components/board/RecurringPipelineModal.vue +17 -17
- package/app/components/board/ReviewFrictionDialog.vue +6 -6
- package/app/components/board/StepExecutionHistory.vue +13 -13
- package/app/components/board/TaskDependencyEdges.vue +8 -8
- package/app/components/board/nodes/AgentChip.vue +10 -10
- package/app/components/board/nodes/BlockNode.vue +29 -29
- package/app/components/board/nodes/DecisionBadge.vue +2 -2
- package/app/components/board/nodes/EpicNode.vue +14 -10
- package/app/components/board/nodes/FrameSwimlanes.vue +7 -9
- package/app/components/board/nodes/InitiativeCard.vue +8 -8
- package/app/components/board/nodes/LaneGroup.vue +1 -1
- package/app/components/board/nodes/LaneTask.vue +2 -2
- package/app/components/board/nodes/ResizeGrips.vue +4 -4
- package/app/components/board/nodes/TaskCard.vue +18 -18
- package/app/components/board/nodes/TaskLane.vue +5 -5
- package/app/components/board/nodes/TaskPipelineMini.vue +18 -18
- package/app/components/bootstrap/AdoptionReviewModal.vue +29 -26
- package/app/components/bootstrap/BootstrapModal.vue +21 -23
- package/app/components/bootstrap/BootstrapRunSteps.vue +1 -1
- package/app/components/brainstorm/BrainstormWindow.vue +30 -33
- package/app/components/bugFishing/BugFishingWindow.vue +49 -49
- package/app/components/clarity/ClarityReviewWindow.vue +30 -30
- package/app/components/common/AsyncViewError.vue +5 -5
- package/app/components/common/ClarificationItem.vue +8 -13
- package/app/components/common/ConfirmDialog.vue +4 -2
- package/app/components/common/DescriptorFields.vue +1 -1
- package/app/components/common/EmptyState.vue +3 -3
- package/app/components/common/InterviewGateNotice.vue +7 -7
- package/app/components/common/KeyboardShortcutsHelp.vue +1 -1
- package/app/components/common/MarkdownProse.vue +14 -13
- package/app/components/consensus/ConsensusSessionWindow.vue +26 -26
- package/app/components/context/ContextAttachmentFields.vue +17 -17
- package/app/components/docs/DocInterviewWindow.vue +14 -14
- package/app/components/documents/ContextDocumentPicker.vue +17 -17
- package/app/components/documents/DocumentImportModal.vue +7 -7
- package/app/components/documents/DocumentSourceConnectModal.vue +3 -3
- package/app/components/documents/DocumentSyncState.vue +5 -5
- package/app/components/documents/DocumentTemplatesModal.vue +15 -15
- package/app/components/documents/RepoContextDocPicker.vue +5 -5
- package/app/components/documents/SpawnPreviewModal.vue +12 -12
- package/app/components/documents/StartFromDesignModal.vue +11 -11
- package/app/components/documents/TaskContextDocs.vue +5 -5
- package/app/components/environments/EnvSetupStepper.vue +6 -6
- package/app/components/environments/EnvironmentStatusPanel.vue +17 -17
- package/app/components/environments/steps/EnvPickStep.vue +3 -3
- package/app/components/environments/steps/EnvPreflightStep.vue +9 -9
- package/app/components/environments/steps/EnvReviewStep.vue +25 -22
- package/app/components/environments/steps/EnvSaveStep.vue +7 -5
- package/app/components/environments/steps/JourneyStepNav.vue +1 -1
- package/app/components/focus/BlockFocusView.vue +17 -19
- package/app/components/followUp/FollowUpWindow.vue +23 -23
- package/app/components/forkDecision/ForkDecisionWindow.vue +37 -39
- package/app/components/foundational/FoundationalContractSummary.vue +7 -7
- package/app/components/foundational/FoundationalServiceCatalogList.vue +11 -11
- package/app/components/foundational/FoundationalServiceManager.vue +1 -1
- package/app/components/foundational/FoundationalServiceRegistry.vue +13 -13
- package/app/components/foundational/FoundationalServiceSources.vue +13 -13
- package/app/components/foundational/FoundationalSuppressions.vue +7 -7
- package/app/components/foundational/ServiceCatalogConnection.vue +10 -10
- package/app/components/fragments/FragmentLibraryManager.vue +41 -44
- package/app/components/fragments/FragmentSelector.vue +13 -13
- package/app/components/fragments/GitHubDocUrlImport.vue +1 -1
- package/app/components/gates/GateFailingCheckList.vue +5 -5
- package/app/components/gates/GateResultView.vue +50 -47
- package/app/components/github/AddServiceFromRepoModal.vue +14 -14
- package/app/components/github/BranchProtectionPreflight.vue +13 -13
- package/app/components/github/GitHubConnect.vue +7 -7
- package/app/components/github/GitHubOnboarding.vue +7 -7
- package/app/components/github/GitHubPanel.vue +37 -40
- package/app/components/github/RepoTreeBrowser.vue +18 -18
- package/app/components/humanTest/HumanTestWindow.vue +30 -33
- package/app/components/initiative/InitiativePlanNotice.vue +5 -5
- package/app/components/initiative/InitiativePlanReview.vue +27 -29
- package/app/components/initiative/InitiativePlanningWindow.vue +10 -10
- package/app/components/initiative/InitiativeTrackerWindow.vue +71 -65
- package/app/components/inputGate/InputGateNotice.vue +2 -4
- package/app/components/judge/JudgeResultView.vue +30 -32
- package/app/components/kaizen/KaizenPanel.vue +40 -36
- package/app/components/kaizen/KaizenStepStatus.vue +21 -21
- package/app/components/layout/AccountAuditLog.vue +10 -10
- package/app/components/layout/AccountDeploymentSettings.vue +20 -20
- package/app/components/layout/AccountFailureKindRules.vue +13 -13
- package/app/components/layout/AccountFoundationalSettings.vue +1 -1
- package/app/components/layout/AccountFragmentSettings.vue +1 -1
- package/app/components/layout/AccountModelPolicySettings.vue +9 -9
- package/app/components/layout/AccountPlatformAlertSettings.vue +11 -11
- package/app/components/layout/AccountRiskPolicySettings.vue +2 -2
- package/app/components/layout/AccountRunCredentialSettings.vue +5 -5
- package/app/components/layout/AccountSkillSettings.vue +1 -1
- package/app/components/layout/AccountTeamSettings.vue +23 -15
- package/app/components/layout/AiProvidersBanner.vue +11 -8
- package/app/components/layout/AppearanceSwitcher.vue +108 -0
- package/app/components/layout/BoardSwitcher.vue +8 -11
- package/app/components/layout/BoardToolbar.vue +3 -3
- package/app/components/layout/CommandBar.vue +7 -9
- package/app/components/layout/ConnectionStatusBanner.vue +2 -2
- package/app/components/layout/DefaultTestEnvBanner.vue +5 -5
- package/app/components/layout/GitHubPatBanner.vue +5 -5
- package/app/components/layout/GitHubPatPermissionsBanner.vue +16 -10
- package/app/components/layout/InfraSetupBanner.vue +6 -6
- package/app/components/layout/IntegrationsHub.vue +15 -15
- package/app/components/layout/LanguageSwitcher.vue +5 -5
- package/app/components/layout/ModelProvidersHub.vue +13 -16
- package/app/components/layout/NotificationsInbox.vue +10 -10
- package/app/components/layout/PersonalSetupModal.vue +8 -8
- package/app/components/layout/ProviderConfigBanner.vue +4 -4
- package/app/components/layout/RolePrompt.vue +7 -7
- package/app/components/layout/SideBar.vue +6 -4
- package/app/components/layout/SpendWarningBanner.vue +17 -14
- package/app/components/layout/TranslationWarningBanner.vue +4 -4
- package/app/components/layout/UiModeSwitcher.vue +13 -13
- package/app/components/layout/UiRoleSwitcher.vue +8 -8
- package/app/components/layout/WorkspaceMembersSettings.vue +15 -11
- package/app/components/media/ArtifactLightbox.vue +13 -13
- package/app/components/media/ImageCompare.vue +31 -24
- package/app/components/merge/MergeEffortChips.vue +2 -2
- package/app/components/notifications/NotificationSettingsPanel.vue +14 -12
- package/app/components/observability/OutcomeFilterChips.vue +6 -6
- package/app/components/observability/RunFailureSummary.vue +28 -25
- package/app/components/observability/StepMetricsBar.vue +26 -28
- package/app/components/observability/StepModelActivity.vue +2 -2
- package/app/components/observability/ToolCallList.vue +24 -24
- package/app/components/outcome/OutcomeSummaryWindow.vue +47 -47
- package/app/components/palettes/AgentPalette.vue +8 -8
- package/app/components/palettes/AgentTierSelect.vue +1 -1
- package/app/components/palettes/PipelinePurposeSelect.vue +1 -1
- package/app/components/panels/AgentStepDetail.vue +52 -51
- package/app/components/panels/AttemptEntryHeader.vue +4 -6
- package/app/components/panels/DecisionModal.vue +7 -7
- package/app/components/panels/GenericStructuredResultView.vue +7 -7
- package/app/components/panels/InspectorPanel.vue +17 -17
- package/app/components/panels/MergerResultView.vue +19 -19
- package/app/components/panels/ObservabilityPanel.vue +115 -123
- package/app/components/panels/OperatorDashboardPanel.vue +89 -97
- package/app/components/panels/ReportsPanel.vue +69 -66
- package/app/components/panels/ReportsSpendBreakdown.vue +9 -9
- package/app/components/panels/ResultWindowShell.vue +38 -38
- package/app/components/panels/RunDetailLoadState.vue +2 -2
- package/app/components/panels/StepContainerStatus.vue +9 -9
- package/app/components/panels/StepDelegatedStatus.logic.spec.ts +135 -0
- package/app/components/panels/StepDelegatedStatus.logic.ts +160 -0
- package/app/components/panels/StepDelegatedStatus.vue +181 -0
- package/app/components/panels/StepEffortReport.vue +16 -15
- package/app/components/panels/StepFragmentAdherence.vue +14 -10
- package/app/components/panels/StepMetadataCard.vue +74 -45
- package/app/components/panels/StepReproductionReport.vue +25 -21
- package/app/components/panels/StepRunMeta.vue +20 -20
- package/app/components/panels/StepTestReport.logic.spec.ts +8 -3
- package/app/components/panels/StepTestReport.logic.ts +4 -4
- package/app/components/panels/StepTestReport.vue +28 -28
- package/app/components/panels/StepToolServers.vue +14 -11
- package/app/components/panels/StepValidationReport.vue +7 -7
- package/app/components/panels/inspector/ContainerSummary.vue +9 -9
- package/app/components/panels/inspector/DocReferenceRepos.vue +3 -3
- package/app/components/panels/inspector/EnvProbeReport.vue +24 -27
- package/app/components/panels/inspector/EpicChildren.vue +8 -12
- package/app/components/panels/inspector/FrontendBindingsResolved.vue +11 -11
- package/app/components/panels/inspector/FrontendConfig.vue +37 -41
- package/app/components/panels/inspector/InitiativeInspector.vue +3 -3
- package/app/components/panels/inspector/InspectorSection.vue +6 -6
- package/app/components/panels/inspector/RecurringScheduleSettings.vue +16 -19
- package/app/components/panels/inspector/ServiceConnections.vue +2 -2
- package/app/components/panels/inspector/ServiceReleaseHealthConfig.vue +2 -2
- package/app/components/panels/inspector/ServiceSelfTests.vue +21 -17
- package/app/components/panels/inspector/ServiceTestConfig.vue +51 -59
- package/app/components/panels/inspector/ServiceTestSecrets.vue +5 -5
- package/app/components/panels/inspector/ServiceTestingContext.vue +3 -3
- package/app/components/panels/inspector/ServiceValidationConfig.vue +2 -2
- package/app/components/panels/inspector/TaskAgentConfig.vue +3 -3
- package/app/components/panels/inspector/TaskAprioriBranches.vue +8 -5
- package/app/components/panels/inspector/TaskDependencies.vue +1 -1
- package/app/components/panels/inspector/TaskEstimateBadge.vue +11 -11
- package/app/components/panels/inspector/TaskExecution.vue +17 -17
- package/app/components/panels/inspector/TaskReviewTarget.vue +2 -2
- package/app/components/panels/inspector/TaskRunSettings.vue +35 -37
- package/app/components/panels/inspector/TaskStructure.vue +3 -3
- package/app/components/pipeline/AgentKindIcon.vue +1 -1
- package/app/components/pipeline/AgentPromptEditor.vue +17 -17
- package/app/components/pipeline/BinaryOutputStepPicker.vue +42 -56
- package/app/components/pipeline/EstimateThresholdFields.vue +4 -4
- package/app/components/pipeline/GateConfigFields.vue +13 -10
- package/app/components/pipeline/IterationCapPrompt.vue +4 -2
- package/app/components/pipeline/PipelineBuilder.vue +47 -55
- package/app/components/pipeline/PipelineHealthModal.vue +27 -29
- package/app/components/pipeline/PipelinePicker.vue +10 -10
- package/app/components/pipeline/PipelinePreview.vue +10 -10
- package/app/components/pipeline/PipelineProgress.vue +64 -67
- package/app/components/prReview/PrReviewPhaseBadge.vue +7 -7
- package/app/components/prReview/PrReviewWindow.vue +75 -77
- package/app/components/providers/AiPresetMismatchDialog.vue +5 -5
- package/app/components/providers/AiProviderOnboardingModal.vue +9 -9
- package/app/components/providers/ApiKeysSection.vue +13 -13
- package/app/components/providers/PersonalCredentialModal.vue +2 -2
- package/app/components/providers/PersonalSubscriptionSection.vue +10 -10
- package/app/components/providers/SignInRequiredNotice.vue +1 -1
- package/app/components/providers/VendorCredentialsModal.vue +10 -10
- package/app/components/provisioning/ProvisioningLogsDrawer.vue +13 -13
- package/app/components/ralph/RalphLoopResultView.vue +28 -30
- package/app/components/recurring/RecurrenceEditor.vue +2 -2
- package/app/components/requirements/RequirementsReviewWindow.vue +51 -58
- package/app/components/riskPolicy/RiskPolicyPicker.vue +12 -15
- package/app/components/riskPolicy/RiskPolicyPreview.vue +14 -14
- package/app/components/sandbox/SandboxPanel.vue +58 -59
- package/app/components/settings/AccountSettingsPanel.vue +1 -1
- package/app/components/settings/ApiTokensPanel.vue +10 -10
- package/app/components/settings/BudgetSettings.vue +18 -22
- package/app/components/settings/CapabilityCredentialsPanel.vue +15 -15
- package/app/components/settings/CloudflareHandlerSection.vue +20 -20
- package/app/components/settings/ComposeEnvironmentSetupSection.vue +13 -13
- package/app/components/settings/ConnectionTestVerdict.vue +3 -3
- package/app/components/settings/ConnectionWarnings.vue +1 -1
- package/app/components/settings/ConsensusGroupsSection.vue +27 -35
- package/app/components/settings/CustomManifestTypeEditor.vue +10 -10
- package/app/components/settings/DefaultProvisionTypeSection.vue +6 -6
- package/app/components/settings/InfraHandlersConfigurator.vue +24 -22
- package/app/components/settings/InfrastructureBackendPicker.vue +6 -6
- package/app/components/settings/InfrastructureWindow.vue +5 -5
- package/app/components/settings/IssueTrackerPanel.vue +29 -23
- package/app/components/settings/KubernetesEngineForm.vue +11 -11
- package/app/components/settings/KubernetesEnvironmentForm.vue +4 -4
- package/app/components/settings/LocalContainerPoolSettings.vue +6 -11
- package/app/components/settings/LocalModelEndpointsPanel.vue +20 -18
- package/app/components/settings/McpAuthorizeScreen.vue +13 -15
- package/app/components/settings/McpOAuthCallbackScreen.vue +16 -10
- package/app/components/settings/MergeClassRulesEditor.vue +6 -9
- package/app/components/settings/MergeRolePolicyEditor.vue +16 -16
- package/app/components/settings/ModelConfigurationPanel.vue +23 -30
- package/app/components/settings/ModelPresetHealthModal.vue +15 -13
- package/app/components/settings/ObservabilityConnectionPanel.vue +4 -4
- package/app/components/settings/OpenRouterCatalogPanel.vue +23 -19
- package/app/components/settings/PackageRegistriesPanel.vue +8 -8
- package/app/components/settings/ProviderConnectionTab.vue +8 -11
- package/app/components/settings/ProviderManifestEditor.vue +9 -9
- package/app/components/settings/ProviderPreferenceEditor.vue +8 -8
- package/app/components/settings/RiskPolicyCreateForm.vue +10 -10
- package/app/components/settings/RiskPolicyEditorRow.vue +14 -14
- package/app/components/settings/RiskPolicyHealthModal.vue +15 -13
- package/app/components/settings/RiskPolicyInheritedRow.vue +1 -1
- package/app/components/settings/RiskPolicyPanel.vue +10 -15
- package/app/components/settings/ServiceFragmentDefaultsPanel.vue +7 -7
- package/app/components/settings/SharedStacksPanel.vue +9 -12
- package/app/components/settings/TaskSourceCard.vue +4 -4
- package/app/components/settings/TaskTypeSuppressionsPanel.vue +6 -6
- package/app/components/settings/ToolServerChecklist.vue +36 -29
- package/app/components/settings/UsageSettings.vue +15 -15
- package/app/components/settings/UserSecretsSection.vue +9 -12
- package/app/components/settings/WorkspaceMetadataSettings.vue +5 -5
- package/app/components/settings/WorkspaceSettingsPanel.vue +47 -47
- package/app/components/skills/ReviewSkillQueue.vue +10 -10
- package/app/components/skills/SkillLibraryManager.vue +23 -20
- package/app/components/slack/SlackPanel.vue +13 -17
- package/app/components/spec/ServiceSpecWindow.vue +45 -42
- package/app/components/tasks/BugHuntModal.vue +24 -27
- package/app/components/tasks/ContextIssuePicker.vue +11 -11
- package/app/components/tasks/TaskContextIssues.vue +3 -3
- package/app/components/tasks/TaskImportModal.vue +7 -7
- package/app/components/tasks/TaskSourceConnectModal.vue +10 -8
- package/app/components/testing/TestReportWindow.vue +99 -82
- package/app/components/theme/ThemeImportModal.vue +115 -0
- package/app/components/tutorial/TutorialCatalogue.vue +9 -9
- package/app/components/tutorial/TutorialNudge.vue +5 -5
- package/app/components/tutorial/TutorialOverlay.vue +12 -12
- package/app/components/tutorial/TutorialPrompt.vue +6 -9
- package/app/components/vcs/GitLabConnect.vue +4 -4
- package/app/components/vcs/VcsConnectSurfaces.vue +2 -2
- package/app/components/visualConfirm/VisualConfirmationWindow.vue +36 -36
- package/app/composables/api/client.ts +6 -1
- package/app/composables/usePipelineErrorToast.ts +17 -0
- package/app/modular/agent-kinds.ts +24 -0
- package/app/pages/index.vue +5 -5
- package/app/plugins/theme.client.ts +125 -0
- package/app/spa-loading-template.html +52 -14
- package/app/stores/agents.ts +1 -1
- package/app/stores/theme.spec.ts +56 -0
- package/app/stores/theme.ts +87 -0
- package/app/types/domain.ts +19 -0
- package/app/types/execution.ts +4 -0
- package/app/utils/agentOutput.ts +1 -1
- package/app/utils/binaryOutput.ts +6 -6
- package/app/utils/bootstrapSteps.ts +14 -14
- package/app/utils/catalog.ts +87 -83
- package/app/utils/colorTint.ts +10 -0
- package/app/utils/failureKinds.ts +1 -0
- package/app/utils/observability.ts +3 -3
- package/app/utils/pipelineRender.ts +13 -17
- package/app/utils/swimlanes.ts +4 -4
- package/app/utils/theme/bootPalette.spec.ts +54 -0
- package/app/utils/theme/bootPalette.ts +108 -0
- package/app/utils/theme/builtins.spec.ts +38 -0
- package/app/utils/theme/builtins.ts +55 -0
- package/app/utils/theme/css.ts +162 -0
- package/app/utils/theme/doc.ts +353 -0
- package/app/utils/theme/link.ts +93 -0
- package/app/utils/theme/presets.ts +509 -0
- package/app/utils/theme/theme.spec.ts +224 -0
- package/i18n/locales/de.json +61 -4
- package/i18n/locales/en.json +70 -4
- package/i18n/locales/es.json +61 -4
- package/i18n/locales/fr.json +61 -4
- package/i18n/locales/he.json +61 -4
- package/i18n/locales/it.json +61 -4
- package/i18n/locales/ja.json +61 -4
- package/i18n/locales/pl.json +61 -4
- package/i18n/locales/tr.json +61 -4
- package/i18n/locales/uk.json +61 -4
- package/nuxt.config.ts +37 -11
- package/package.json +9 -8
|
@@ -143,17 +143,17 @@ async function remove() {
|
|
|
143
143
|
</script>
|
|
144
144
|
|
|
145
145
|
<template>
|
|
146
|
-
<section class="space-y-2 rounded-lg border border-
|
|
147
|
-
<h3 class="text-sm font-semibold text-
|
|
146
|
+
<section class="space-y-2 rounded-lg border border-muted bg-default/40 p-3">
|
|
147
|
+
<h3 class="text-sm font-semibold text-default">
|
|
148
148
|
{{ t('inspector.testConfig.provisionTypes.cloudflare') }}
|
|
149
149
|
</h3>
|
|
150
|
-
<p class="text-[11px] text-
|
|
150
|
+
<p class="text-[11px] text-muted">
|
|
151
151
|
{{ t('settings.infrastructure.cloudflare.intro') }}
|
|
152
152
|
</p>
|
|
153
153
|
|
|
154
154
|
<div
|
|
155
155
|
v-if="handler && !editing"
|
|
156
|
-
class="space-y-2 rounded-md border border-
|
|
156
|
+
class="space-y-2 rounded-md border border-app-success-500/30 bg-app-success-500/5 p-2.5"
|
|
157
157
|
data-testid="cloudflare-handler-connected"
|
|
158
158
|
>
|
|
159
159
|
<div class="flex items-start justify-between gap-2">
|
|
@@ -162,7 +162,7 @@ async function remove() {
|
|
|
162
162
|
disabled
|
|
163
163
|
size="lg"
|
|
164
164
|
:label="t('settings.infrastructure.handler.connectionEstablished')"
|
|
165
|
-
:ui="{ label: 'text-[13px] font-semibold text-
|
|
165
|
+
:ui="{ label: 'text-[13px] font-semibold text-app-success-300' }"
|
|
166
166
|
/>
|
|
167
167
|
<div class="flex items-center gap-1">
|
|
168
168
|
<UButton
|
|
@@ -185,31 +185,31 @@ async function remove() {
|
|
|
185
185
|
/>
|
|
186
186
|
</div>
|
|
187
187
|
</div>
|
|
188
|
-
<p class="pl-7 text-[11px] text-
|
|
188
|
+
<p class="pl-7 text-[11px] text-toned">
|
|
189
189
|
{{ t('settings.infrastructure.cloudflare.connectedAs', { subdomain: workersSubdomain }) }}
|
|
190
190
|
</p>
|
|
191
191
|
</div>
|
|
192
192
|
|
|
193
193
|
<div v-else class="space-y-2" data-testid="cloudflare-handler-form">
|
|
194
194
|
<div class="space-y-1">
|
|
195
|
-
<label class="text-[11px] text-
|
|
195
|
+
<label class="text-[11px] text-muted">{{
|
|
196
196
|
t('settings.infrastructure.cloudflare.label')
|
|
197
197
|
}}</label>
|
|
198
198
|
<UInput v-model="label" size="xs" />
|
|
199
199
|
</div>
|
|
200
200
|
|
|
201
201
|
<div class="space-y-1">
|
|
202
|
-
<label class="text-[11px] text-
|
|
202
|
+
<label class="text-[11px] text-muted">{{
|
|
203
203
|
t('settings.infrastructure.cloudflare.subdomain')
|
|
204
204
|
}}</label>
|
|
205
205
|
<UInput v-model="workersSubdomain" size="xs" placeholder="my-account" />
|
|
206
|
-
<p class="text-[11px] text-
|
|
206
|
+
<p class="text-[11px] text-dimmed">
|
|
207
207
|
{{ t('settings.infrastructure.cloudflare.subdomainHint') }}
|
|
208
208
|
</p>
|
|
209
209
|
</div>
|
|
210
210
|
|
|
211
211
|
<div class="space-y-1">
|
|
212
|
-
<label class="text-[11px] text-
|
|
212
|
+
<label class="text-[11px] text-muted">{{
|
|
213
213
|
t('settings.infrastructure.cloudflare.token')
|
|
214
214
|
}}</label>
|
|
215
215
|
<UInput
|
|
@@ -222,28 +222,28 @@ async function remove() {
|
|
|
222
222
|
: t('settings.infrastructure.cloudflare.tokenPlaceholder')
|
|
223
223
|
"
|
|
224
224
|
/>
|
|
225
|
-
<p class="text-[11px] text-
|
|
225
|
+
<p class="text-[11px] text-dimmed">
|
|
226
226
|
{{ t('settings.infrastructure.cloudflare.tokenHint') }}
|
|
227
227
|
</p>
|
|
228
228
|
</div>
|
|
229
229
|
|
|
230
230
|
<div class="space-y-1">
|
|
231
|
-
<label class="text-[11px] text-
|
|
231
|
+
<label class="text-[11px] text-muted">{{
|
|
232
232
|
t('settings.infrastructure.cloudflare.repo')
|
|
233
233
|
}}</label>
|
|
234
234
|
<UInput v-model="repo" size="xs" placeholder="owner/repo" />
|
|
235
|
-
<p class="text-[11px] text-
|
|
235
|
+
<p class="text-[11px] text-dimmed">
|
|
236
236
|
{{ t('settings.infrastructure.cloudflare.repoHint') }}
|
|
237
237
|
</p>
|
|
238
238
|
</div>
|
|
239
239
|
|
|
240
|
-
<details class="rounded-md border border-
|
|
241
|
-
<summary class="cursor-pointer text-[11px] text-
|
|
240
|
+
<details class="rounded-md border border-muted/70 p-2">
|
|
241
|
+
<summary class="cursor-pointer text-[11px] text-muted">
|
|
242
242
|
{{ t('settings.infrastructure.cloudflare.advanced') }}
|
|
243
243
|
</summary>
|
|
244
244
|
<div class="mt-2 space-y-2">
|
|
245
245
|
<div class="space-y-1">
|
|
246
|
-
<label class="text-[11px] text-
|
|
246
|
+
<label class="text-[11px] text-muted">{{
|
|
247
247
|
t('settings.infrastructure.cloudflare.workerTemplate')
|
|
248
248
|
}}</label>
|
|
249
249
|
<!-- The placeholder is a FORMAT EXAMPLE containing vue-i18n metacharacters, so it
|
|
@@ -255,16 +255,16 @@ async function remove() {
|
|
|
255
255
|
/>
|
|
256
256
|
</div>
|
|
257
257
|
<div class="space-y-1">
|
|
258
|
-
<label class="text-[11px] text-
|
|
258
|
+
<label class="text-[11px] text-muted">{{
|
|
259
259
|
t('settings.infrastructure.cloudflare.environmentTemplate')
|
|
260
260
|
}}</label>
|
|
261
261
|
<UInput v-model="environmentNameTemplate" size="xs" placeholder="pr-{{pullNumber}}" />
|
|
262
262
|
</div>
|
|
263
|
-
<p class="text-[11px] text-
|
|
263
|
+
<p class="text-[11px] text-dimmed">
|
|
264
264
|
{{ t('settings.infrastructure.cloudflare.templateHint') }}
|
|
265
265
|
</p>
|
|
266
266
|
<div class="space-y-1">
|
|
267
|
-
<label class="text-[11px] text-
|
|
267
|
+
<label class="text-[11px] text-muted">{{
|
|
268
268
|
t('settings.infrastructure.cloudflare.apiBaseUrl')
|
|
269
269
|
}}</label>
|
|
270
270
|
<UInput v-model="apiBaseUrl" size="xs" placeholder="https://api.github.com" />
|
|
@@ -301,7 +301,7 @@ async function remove() {
|
|
|
301
301
|
<p
|
|
302
302
|
v-if="testResult"
|
|
303
303
|
class="text-[11px]"
|
|
304
|
-
:class="testResult.ok ? 'text-
|
|
304
|
+
:class="testResult.ok ? 'text-app-success-300' : 'text-app-error-300'"
|
|
305
305
|
>
|
|
306
306
|
{{ testResult.message }}
|
|
307
307
|
</p>
|
|
@@ -44,42 +44,42 @@ function start() {
|
|
|
44
44
|
<template>
|
|
45
45
|
<section class="space-y-3" data-testid="compose-env-setup-section">
|
|
46
46
|
<div>
|
|
47
|
-
<h3 class="text-sm font-semibold text-
|
|
47
|
+
<h3 class="text-sm font-semibold text-default">
|
|
48
48
|
{{ t('settings.composeEnvSetup.title') }}
|
|
49
49
|
</h3>
|
|
50
|
-
<p class="mt-1 text-xs leading-relaxed text-
|
|
50
|
+
<p class="mt-1 text-xs leading-relaxed text-muted">
|
|
51
51
|
{{ t('settings.composeEnvSetup.lead') }}
|
|
52
52
|
</p>
|
|
53
53
|
</div>
|
|
54
54
|
|
|
55
|
-
<div class="rounded border border-
|
|
56
|
-
<p class="text-[11px] font-medium uppercase tracking-wide text-
|
|
55
|
+
<div class="rounded border border-default bg-default/40 p-3">
|
|
56
|
+
<p class="text-[11px] font-medium uppercase tracking-wide text-muted">
|
|
57
57
|
{{ t('settings.composeEnvSetup.how.title') }}
|
|
58
58
|
</p>
|
|
59
|
-
<ol class="mt-2 list-decimal space-y-1 ps-4 text-[11px] leading-relaxed text-
|
|
59
|
+
<ol class="mt-2 list-decimal space-y-1 ps-4 text-[11px] leading-relaxed text-muted">
|
|
60
60
|
<li v-for="(step, i) in steps" :key="`how-${i}`">{{ step }}</li>
|
|
61
61
|
</ol>
|
|
62
|
-
<p class="mt-2 text-[11px] leading-relaxed text-
|
|
62
|
+
<p class="mt-2 text-[11px] leading-relaxed text-dimmed">
|
|
63
63
|
{{ t('settings.composeEnvSetup.how.outcome') }}
|
|
64
64
|
</p>
|
|
65
65
|
</div>
|
|
66
66
|
|
|
67
67
|
<div class="grid gap-2 sm:grid-cols-2">
|
|
68
|
-
<div class="rounded border border-
|
|
69
|
-
<p class="flex items-center gap-1.5 text-[11px] font-medium text-
|
|
68
|
+
<div class="rounded border border-app-success-900/50 bg-app-success-950/20 p-3">
|
|
69
|
+
<p class="flex items-center gap-1.5 text-[11px] font-medium text-app-success-200/90">
|
|
70
70
|
<UIcon name="i-lucide-check" class="h-3.5 w-3.5 shrink-0" />
|
|
71
71
|
{{ t('settings.composeEnvSetup.needed.title') }}
|
|
72
72
|
</p>
|
|
73
|
-
<ul class="mt-1.5 list-disc space-y-1 ps-4 text-[11px] leading-relaxed text-
|
|
73
|
+
<ul class="mt-1.5 list-disc space-y-1 ps-4 text-[11px] leading-relaxed text-muted">
|
|
74
74
|
<li v-for="(item, i) in needed" :key="`need-${i}`">{{ item }}</li>
|
|
75
75
|
</ul>
|
|
76
76
|
</div>
|
|
77
|
-
<div class="rounded border border-
|
|
78
|
-
<p class="flex items-center gap-1.5 text-[11px] font-medium text-
|
|
77
|
+
<div class="rounded border border-default bg-default/40 p-3">
|
|
78
|
+
<p class="flex items-center gap-1.5 text-[11px] font-medium text-toned">
|
|
79
79
|
<UIcon name="i-lucide-minus" class="h-3.5 w-3.5 shrink-0" />
|
|
80
80
|
{{ t('settings.composeEnvSetup.notNeeded.title') }}
|
|
81
81
|
</p>
|
|
82
|
-
<ul class="mt-1.5 list-disc space-y-1 ps-4 text-[11px] leading-relaxed text-
|
|
82
|
+
<ul class="mt-1.5 list-disc space-y-1 ps-4 text-[11px] leading-relaxed text-muted">
|
|
83
83
|
<li v-for="(item, i) in notNeeded" :key="`skip-${i}`">{{ item }}</li>
|
|
84
84
|
</ul>
|
|
85
85
|
</div>
|
|
@@ -96,7 +96,7 @@ function start() {
|
|
|
96
96
|
>
|
|
97
97
|
{{ t('settings.composeEnvSetup.start') }}
|
|
98
98
|
</UButton>
|
|
99
|
-
<span class="text-[11px] text-
|
|
99
|
+
<span class="text-[11px] text-dimmed">{{ t('settings.composeEnvSetup.rerunHint') }}</span>
|
|
100
100
|
</div>
|
|
101
101
|
</section>
|
|
102
102
|
</template>
|
|
@@ -50,13 +50,13 @@ const detail = computed(() => (causeKey.value ? (props.result?.message ?? '') :
|
|
|
50
50
|
<template>
|
|
51
51
|
<p
|
|
52
52
|
v-if="result?.ok"
|
|
53
|
-
class="text-xs text-
|
|
53
|
+
class="text-xs text-app-success-400 break-words"
|
|
54
54
|
data-testid="connection-test-result"
|
|
55
55
|
>
|
|
56
56
|
{{ result.message ?? t('settings.providerConnection.test.ok') }}
|
|
57
57
|
</p>
|
|
58
58
|
<div v-else-if="result" class="space-y-0.5" data-testid="connection-test-result">
|
|
59
|
-
<p class="text-xs text-
|
|
60
|
-
<p v-if="detail" class="text-[11px] text-
|
|
59
|
+
<p class="text-xs text-app-error-400 break-words">{{ headline }}</p>
|
|
60
|
+
<p v-if="detail" class="text-[11px] text-muted break-words">{{ detail }}</p>
|
|
61
61
|
</div>
|
|
62
62
|
</template>
|
|
@@ -35,7 +35,7 @@ const copy = (warning: ConnectionWarning): string => {
|
|
|
35
35
|
<template>
|
|
36
36
|
<div
|
|
37
37
|
v-if="warnings?.length"
|
|
38
|
-
class="rounded-md border border-
|
|
38
|
+
class="rounded-md border border-app-warning-500/40 bg-app-warning-950/40 px-3 py-2 text-xs text-app-warning-200"
|
|
39
39
|
data-testid="connection-warnings"
|
|
40
40
|
>
|
|
41
41
|
<p class="font-semibold">
|
|
@@ -208,13 +208,13 @@ async function remove(group: ConsensusGroup) {
|
|
|
208
208
|
</script>
|
|
209
209
|
|
|
210
210
|
<template>
|
|
211
|
-
<section v-if="visible" class="space-y-3 border-t border-
|
|
211
|
+
<section v-if="visible" class="space-y-3 border-t border-default pt-5">
|
|
212
212
|
<div class="flex items-start justify-between gap-3">
|
|
213
213
|
<div class="min-w-0">
|
|
214
|
-
<h2 class="text-sm font-semibold text-
|
|
214
|
+
<h2 class="text-sm font-semibold text-app-100">
|
|
215
215
|
{{ t('settings.consensusGroups.title') }}
|
|
216
216
|
</h2>
|
|
217
|
-
<p class="mt-1 text-xs leading-relaxed text-
|
|
217
|
+
<p class="mt-1 text-xs leading-relaxed text-dimmed">
|
|
218
218
|
{{ t('settings.consensusGroups.intro') }}
|
|
219
219
|
</p>
|
|
220
220
|
</div>
|
|
@@ -238,11 +238,11 @@ async function remove(group: ConsensusGroup) {
|
|
|
238
238
|
<div
|
|
239
239
|
v-for="g in groups.groups"
|
|
240
240
|
:key="g.id"
|
|
241
|
-
class="rounded-xl border border-
|
|
241
|
+
class="rounded-xl border border-default bg-default/50 p-3"
|
|
242
242
|
data-testid="consensus-group-row"
|
|
243
243
|
>
|
|
244
244
|
<div class="flex items-center gap-2">
|
|
245
|
-
<span class="truncate text-sm font-semibold text-
|
|
245
|
+
<span class="truncate text-sm font-semibold text-app-100">{{ g.name }}</span>
|
|
246
246
|
<UBadge color="neutral" variant="subtle" size="xs">{{ barLabel(g) }}</UBadge>
|
|
247
247
|
<div class="ms-auto flex items-center gap-1">
|
|
248
248
|
<UButton
|
|
@@ -264,8 +264,8 @@ async function remove(group: ConsensusGroup) {
|
|
|
264
264
|
/>
|
|
265
265
|
</div>
|
|
266
266
|
</div>
|
|
267
|
-
<p v-if="g.description" class="mt-1 text-[11px] text-
|
|
268
|
-
<div class="mt-1.5 text-[11px] text-
|
|
267
|
+
<p v-if="g.description" class="mt-1 text-[11px] text-muted">{{ g.description }}</p>
|
|
268
|
+
<div class="mt-1.5 text-[11px] text-muted">
|
|
269
269
|
{{ t(`pipeline.builder.strategyOption.${g.strategy}`) }}
|
|
270
270
|
·
|
|
271
271
|
{{
|
|
@@ -278,18 +278,16 @@ async function remove(group: ConsensusGroup) {
|
|
|
278
278
|
</div>
|
|
279
279
|
</div>
|
|
280
280
|
</div>
|
|
281
|
-
<p v-else class="py-4 text-center text-sm text-
|
|
281
|
+
<p v-else class="py-4 text-center text-sm text-dimmed">
|
|
282
282
|
{{ t('settings.consensusGroups.list.empty') }}
|
|
283
283
|
</p>
|
|
284
284
|
</template>
|
|
285
285
|
|
|
286
286
|
<!-- ===== editor ===== -->
|
|
287
|
-
<div v-else class="space-y-4 rounded-xl border border-
|
|
287
|
+
<div v-else class="space-y-4 rounded-xl border border-default bg-default/50 p-4">
|
|
288
288
|
<div class="grid gap-3 sm:grid-cols-2">
|
|
289
289
|
<div>
|
|
290
|
-
<label
|
|
291
|
-
class="mb-1 block text-[11px] font-semibold uppercase tracking-wide text-slate-400"
|
|
292
|
-
>
|
|
290
|
+
<label class="mb-1 block text-[11px] font-semibold uppercase tracking-wide text-muted">
|
|
293
291
|
{{ t('settings.consensusGroups.editor.nameLabel') }}
|
|
294
292
|
</label>
|
|
295
293
|
<UInput
|
|
@@ -300,14 +298,12 @@ async function remove(group: ConsensusGroup) {
|
|
|
300
298
|
/>
|
|
301
299
|
</div>
|
|
302
300
|
<div>
|
|
303
|
-
<label
|
|
304
|
-
class="mb-1 block text-[11px] font-semibold uppercase tracking-wide text-slate-400"
|
|
305
|
-
>
|
|
301
|
+
<label class="mb-1 block text-[11px] font-semibold uppercase tracking-wide text-muted">
|
|
306
302
|
{{ t('settings.consensusGroups.editor.strategyLabel') }}
|
|
307
303
|
</label>
|
|
308
304
|
<select
|
|
309
305
|
v-model="editor.strategy"
|
|
310
|
-
class="w-full rounded border border-
|
|
306
|
+
class="w-full rounded border border-muted bg-default px-2 py-1.5 text-sm text-app-100"
|
|
311
307
|
>
|
|
312
308
|
<option v-for="s in STRATEGIES" :key="s.value" :value="s.value">{{ s.label }}</option>
|
|
313
309
|
</select>
|
|
@@ -315,7 +311,7 @@ async function remove(group: ConsensusGroup) {
|
|
|
315
311
|
</div>
|
|
316
312
|
|
|
317
313
|
<div>
|
|
318
|
-
<label class="mb-1 block text-[11px] font-semibold uppercase tracking-wide text-
|
|
314
|
+
<label class="mb-1 block text-[11px] font-semibold uppercase tracking-wide text-muted">
|
|
319
315
|
{{ t('settings.consensusGroups.editor.descriptionLabel') }}
|
|
320
316
|
</label>
|
|
321
317
|
<UInput
|
|
@@ -329,7 +325,7 @@ async function remove(group: ConsensusGroup) {
|
|
|
329
325
|
<!-- participants -->
|
|
330
326
|
<div class="space-y-2">
|
|
331
327
|
<div class="flex items-center justify-between">
|
|
332
|
-
<span class="text-[11px] font-semibold uppercase tracking-wide text-
|
|
328
|
+
<span class="text-[11px] font-semibold uppercase tracking-wide text-muted">
|
|
333
329
|
{{ t('settings.consensusGroups.editor.participantsLabel') }}
|
|
334
330
|
</span>
|
|
335
331
|
<UButton
|
|
@@ -341,7 +337,7 @@ async function remove(group: ConsensusGroup) {
|
|
|
341
337
|
@click="addParticipant"
|
|
342
338
|
/>
|
|
343
339
|
</div>
|
|
344
|
-
<p class="text-[11px] text-
|
|
340
|
+
<p class="text-[11px] text-dimmed">
|
|
345
341
|
{{ t('settings.consensusGroups.editor.participantsHint') }}
|
|
346
342
|
</p>
|
|
347
343
|
<div
|
|
@@ -363,7 +359,7 @@ async function remove(group: ConsensusGroup) {
|
|
|
363
359
|
/>
|
|
364
360
|
<select
|
|
365
361
|
v-model="p.modelId"
|
|
366
|
-
class="w-44 rounded border border-
|
|
362
|
+
class="w-44 rounded border border-muted bg-default px-1.5 py-1 text-xs text-toned"
|
|
367
363
|
>
|
|
368
364
|
<option :value="undefined">{{ t('settings.consensusGroups.editor.stepModel') }}</option>
|
|
369
365
|
<option v-for="m in selectableModelIds" :key="m.id" :value="m.id">{{ m.label }}</option>
|
|
@@ -382,23 +378,19 @@ async function remove(group: ConsensusGroup) {
|
|
|
382
378
|
|
|
383
379
|
<div class="grid gap-3 sm:grid-cols-2">
|
|
384
380
|
<div>
|
|
385
|
-
<label
|
|
386
|
-
class="mb-1 block text-[11px] font-semibold uppercase tracking-wide text-slate-400"
|
|
387
|
-
>
|
|
381
|
+
<label class="mb-1 block text-[11px] font-semibold uppercase tracking-wide text-muted">
|
|
388
382
|
{{ t('settings.consensusGroups.editor.synthesizerLabel') }}
|
|
389
383
|
</label>
|
|
390
384
|
<select
|
|
391
385
|
v-model="editor.synthesizerModelId"
|
|
392
|
-
class="w-full rounded border border-
|
|
386
|
+
class="w-full rounded border border-muted bg-default px-2 py-1.5 text-sm text-app-100"
|
|
393
387
|
>
|
|
394
388
|
<option value="">{{ t('settings.consensusGroups.editor.stepModel') }}</option>
|
|
395
389
|
<option v-for="m in selectableModelIds" :key="m.id" :value="m.id">{{ m.label }}</option>
|
|
396
390
|
</select>
|
|
397
391
|
</div>
|
|
398
392
|
<div v-if="editor.strategy === 'debate'">
|
|
399
|
-
<label
|
|
400
|
-
class="mb-1 block text-[11px] font-semibold uppercase tracking-wide text-slate-400"
|
|
401
|
-
>
|
|
393
|
+
<label class="mb-1 block text-[11px] font-semibold uppercase tracking-wide text-muted">
|
|
402
394
|
{{ t('pipeline.builder.rounds') }}
|
|
403
395
|
</label>
|
|
404
396
|
<UInput v-model.number="editor.rounds" type="number" min="1" max="5" size="sm" />
|
|
@@ -406,17 +398,17 @@ async function remove(group: ConsensusGroup) {
|
|
|
406
398
|
</div>
|
|
407
399
|
|
|
408
400
|
<!-- the estimate bar -->
|
|
409
|
-
<div class="space-y-2 rounded-lg border border-
|
|
410
|
-
<label class="flex items-center gap-2 text-xs text-
|
|
411
|
-
<input v-model="editor.gated" type="checkbox" class="accent-
|
|
401
|
+
<div class="space-y-2 rounded-lg border border-default bg-app-950/40 p-3">
|
|
402
|
+
<label class="flex items-center gap-2 text-xs text-toned">
|
|
403
|
+
<input v-model="editor.gated" type="checkbox" class="accent-app-success-500" />
|
|
412
404
|
{{ t('settings.consensusGroups.editor.gatedLabel') }}
|
|
413
405
|
</label>
|
|
414
|
-
<p class="text-[11px] text-
|
|
406
|
+
<p class="text-[11px] text-dimmed">
|
|
415
407
|
{{ t('settings.consensusGroups.editor.gatedHint') }}
|
|
416
408
|
</p>
|
|
417
409
|
<div v-if="editor.gated" class="flex flex-wrap items-center gap-3 text-xs">
|
|
418
410
|
<label
|
|
419
|
-
class="flex items-center gap-1.5 text-
|
|
411
|
+
class="flex items-center gap-1.5 text-muted"
|
|
420
412
|
:title="t('pipeline.builder.riskThresholdHint')"
|
|
421
413
|
>
|
|
422
414
|
{{ t('pipeline.builder.riskThreshold') }}
|
|
@@ -431,7 +423,7 @@ async function remove(group: ConsensusGroup) {
|
|
|
431
423
|
/>
|
|
432
424
|
</label>
|
|
433
425
|
<label
|
|
434
|
-
class="flex items-center gap-1.5 text-
|
|
426
|
+
class="flex items-center gap-1.5 text-muted"
|
|
435
427
|
:title="t('pipeline.builder.impactThresholdHint')"
|
|
436
428
|
>
|
|
437
429
|
{{ t('pipeline.builder.impactThreshold') }}
|
|
@@ -446,7 +438,7 @@ async function remove(group: ConsensusGroup) {
|
|
|
446
438
|
/>
|
|
447
439
|
</label>
|
|
448
440
|
<label
|
|
449
|
-
class="flex items-center gap-1.5 text-
|
|
441
|
+
class="flex items-center gap-1.5 text-muted"
|
|
450
442
|
:title="t('pipeline.builder.complexityThresholdHint')"
|
|
451
443
|
>
|
|
452
444
|
{{ t('settings.consensusGroups.editor.complexityThreshold') }}
|
|
@@ -461,7 +453,7 @@ async function remove(group: ConsensusGroup) {
|
|
|
461
453
|
/>
|
|
462
454
|
</label>
|
|
463
455
|
</div>
|
|
464
|
-
<p v-if="gatingIncomplete" class="text-[11px] text-
|
|
456
|
+
<p v-if="gatingIncomplete" class="text-[11px] text-app-warning-400">
|
|
465
457
|
{{ t('settings.consensusGroups.editor.gatingIncomplete') }}
|
|
466
458
|
</p>
|
|
467
459
|
</div>
|
|
@@ -90,12 +90,12 @@ async function remove(type: CustomManifestType) {
|
|
|
90
90
|
</script>
|
|
91
91
|
|
|
92
92
|
<template>
|
|
93
|
-
<section class="space-y-3 rounded-lg border border-
|
|
93
|
+
<section class="space-y-3 rounded-lg border border-muted bg-default/40 p-3">
|
|
94
94
|
<div>
|
|
95
|
-
<h3 class="text-sm font-semibold text-
|
|
95
|
+
<h3 class="text-sm font-semibold text-default">
|
|
96
96
|
{{ t('settings.infrastructure.customType.title') }}
|
|
97
97
|
</h3>
|
|
98
|
-
<p class="text-[11px] text-
|
|
98
|
+
<p class="text-[11px] text-dimmed">{{ t('settings.infrastructure.customType.hint') }}</p>
|
|
99
99
|
</div>
|
|
100
100
|
|
|
101
101
|
<!-- The catalog: registered (read-only) + workspace (editable). -->
|
|
@@ -103,11 +103,11 @@ async function remove(type: CustomManifestType) {
|
|
|
103
103
|
<li
|
|
104
104
|
v-for="type in infra.customTypes"
|
|
105
105
|
:key="type.manifestId"
|
|
106
|
-
class="flex items-start justify-between gap-2 rounded-md border border-
|
|
106
|
+
class="flex items-start justify-between gap-2 rounded-md border border-default bg-default/50 px-2.5 py-1.5"
|
|
107
107
|
>
|
|
108
108
|
<div class="min-w-0">
|
|
109
109
|
<div class="flex items-center gap-1.5">
|
|
110
|
-
<span class="truncate text-[13px] text-
|
|
110
|
+
<span class="truncate text-[13px] text-default">{{ type.label }}</span>
|
|
111
111
|
<UBadge
|
|
112
112
|
:color="type.source === 'workspace' ? 'primary' : 'neutral'"
|
|
113
113
|
variant="subtle"
|
|
@@ -116,8 +116,8 @@ async function remove(type: CustomManifestType) {
|
|
|
116
116
|
{{ t(`settings.infrastructure.customType.source.${type.source}`) }}
|
|
117
117
|
</UBadge>
|
|
118
118
|
</div>
|
|
119
|
-
<code class="text-[11px] text-
|
|
120
|
-
<p v-if="type.description" class="text-[11px] text-
|
|
119
|
+
<code class="text-[11px] text-dimmed">{{ type.manifestId }}</code>
|
|
120
|
+
<p v-if="type.description" class="text-[11px] text-muted">{{ type.description }}</p>
|
|
121
121
|
</div>
|
|
122
122
|
<div v-if="type.source === 'workspace'" class="flex shrink-0 items-center gap-0.5">
|
|
123
123
|
<UButton
|
|
@@ -139,13 +139,13 @@ async function remove(type: CustomManifestType) {
|
|
|
139
139
|
</div>
|
|
140
140
|
</li>
|
|
141
141
|
</ul>
|
|
142
|
-
<p v-else class="text-[11px] text-
|
|
142
|
+
<p v-else class="text-[11px] text-dimmed">
|
|
143
143
|
{{ t('settings.infrastructure.customType.empty') }}
|
|
144
144
|
</p>
|
|
145
145
|
|
|
146
146
|
<!-- Add / edit a workspace-defined type. -->
|
|
147
|
-
<div class="space-y-2 border-t border-
|
|
148
|
-
<p class="text-[11px] font-semibold uppercase tracking-wide text-
|
|
147
|
+
<div class="space-y-2 border-t border-default pt-3">
|
|
148
|
+
<p class="text-[11px] font-semibold uppercase tracking-wide text-muted">
|
|
149
149
|
{{
|
|
150
150
|
editing
|
|
151
151
|
? t('settings.infrastructure.customType.editTitle', { id: draft.manifestId })
|
|
@@ -102,10 +102,10 @@ async function save() {
|
|
|
102
102
|
<template>
|
|
103
103
|
<section class="space-y-3" data-testid="default-provision-section">
|
|
104
104
|
<div>
|
|
105
|
-
<h3 class="text-sm font-semibold text-
|
|
105
|
+
<h3 class="text-sm font-semibold text-default">
|
|
106
106
|
{{ t('settings.defaultProvision.title') }}
|
|
107
107
|
</h3>
|
|
108
|
-
<p class="mt-1 text-[11px] leading-snug text-
|
|
108
|
+
<p class="mt-1 text-[11px] leading-snug text-dimmed">
|
|
109
109
|
{{ t('settings.defaultProvision.hint') }}
|
|
110
110
|
</p>
|
|
111
111
|
</div>
|
|
@@ -125,7 +125,7 @@ async function save() {
|
|
|
125
125
|
</div>
|
|
126
126
|
|
|
127
127
|
<div v-if="selection.type === 'custom'" class="space-y-1">
|
|
128
|
-
<label class="text-[11px] text-
|
|
128
|
+
<label class="text-[11px] text-muted">
|
|
129
129
|
{{ t('inspector.testConfig.customManifestId') }}
|
|
130
130
|
</label>
|
|
131
131
|
<USelect
|
|
@@ -138,7 +138,7 @@ async function save() {
|
|
|
138
138
|
:placeholder="t('inspector.testConfig.customManifestIdPlaceholder')"
|
|
139
139
|
@update:model-value="(v: string) => setManifestId(v)"
|
|
140
140
|
/>
|
|
141
|
-
<p v-else class="text-[11px] leading-snug text-
|
|
141
|
+
<p v-else class="text-[11px] leading-snug text-app-warning-300/80">
|
|
142
142
|
{{ t('inspector.testConfig.customNoTypes') }}
|
|
143
143
|
</p>
|
|
144
144
|
</div>
|
|
@@ -147,7 +147,7 @@ async function save() {
|
|
|
147
147
|
the workspace still has nothing stored. -->
|
|
148
148
|
<p
|
|
149
149
|
v-if="unset && selection.type"
|
|
150
|
-
class="text-[11px] leading-snug text-
|
|
150
|
+
class="text-[11px] leading-snug text-app-warning-300/80"
|
|
151
151
|
data-testid="default-provision-suggestion-hint"
|
|
152
152
|
>
|
|
153
153
|
{{ t('settings.defaultProvision.suggestionHint') }}
|
|
@@ -165,7 +165,7 @@ async function save() {
|
|
|
165
165
|
>
|
|
166
166
|
{{ t('settings.defaultProvision.save') }}
|
|
167
167
|
</UButton>
|
|
168
|
-
<span v-if="!unset && !dirty" class="text-[11px] text-
|
|
168
|
+
<span v-if="!unset && !dirty" class="text-[11px] text-dimmed">
|
|
169
169
|
{{ t('settings.defaultProvision.savedState') }}
|
|
170
170
|
</span>
|
|
171
171
|
</div>
|