@cat-factory/app 0.310.0 → 0.310.2
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 +17 -0
- package/app/app.config.ts +11 -0
- package/app/components/assistant/AssistantModal.vue +0 -1
- package/app/components/auth/BackendMisconfiguredScreen.vue +1 -1
- package/app/components/auth/LoginScreen.vue +2 -18
- package/app/components/auth/ResetPasswordScreen.vue +2 -3
- package/app/components/board/AddTaskModal.vue +0 -1
- package/app/components/board/BoardCanvas.vue +0 -2
- package/app/components/board/CreateInitiativeModal.vue +0 -1
- package/app/components/board/RecurringPipelineModal.vue +1 -7
- package/app/components/board/ReviewFrictionDialog.vue +1 -7
- package/app/components/board/nodes/InitiativeCard.vue +0 -4
- package/app/components/board/nodes/TaskCard.vue +1 -8
- package/app/components/bootstrap/AdoptionReviewModal.vue +0 -1
- package/app/components/bootstrap/BootstrapModal.vue +1 -7
- package/app/components/brainstorm/BrainstormWindow.vue +0 -5
- package/app/components/bugFishing/BugFishingWindow.vue +0 -2
- package/app/components/clarity/ClarityReviewWindow.vue +0 -4
- package/app/components/common/AsyncViewError.vue +1 -1
- package/app/components/common/ClarificationItem.vue +0 -2
- package/app/components/context/ContextAttachmentFields.vue +1 -1
- package/app/components/docs/DocInterviewWindow.vue +0 -1
- package/app/components/documents/DocumentImportModal.vue +0 -3
- package/app/components/documents/DocumentSourceConnectModal.vue +1 -8
- package/app/components/documents/DocumentTemplatesModal.vue +1 -7
- package/app/components/documents/SpawnPreviewModal.vue +0 -1
- package/app/components/documents/StartFromDesignModal.vue +0 -1
- package/app/components/environments/steps/EnvPreflightStep.vue +0 -2
- package/app/components/environments/steps/EnvReviewStep.vue +1 -4
- package/app/components/environments/steps/EnvSaveStep.vue +0 -1
- package/app/components/focus/BlockFocusView.vue +0 -2
- package/app/components/followUp/FollowUpWindow.vue +0 -2
- package/app/components/forkDecision/ForkDecisionWindow.vue +1 -2
- package/app/components/fragments/FragmentSelector.vue +0 -1
- package/app/components/gates/GateResultView.vue +0 -1
- package/app/components/github/AddServiceFromRepoModal.vue +0 -2
- package/app/components/github/GitHubConnect.vue +1 -2
- package/app/components/github/GitHubPanel.vue +0 -2
- package/app/components/github/RepoTreeBrowser.vue +0 -3
- package/app/components/guidedReview/GuidedReviewDraftCard.vue +1 -1
- package/app/components/guidedReview/GuidedReviewPicker.vue +0 -1
- package/app/components/guidedReview/GuidedReviewThread.vue +0 -2
- package/app/components/humanTest/HumanTestWindow.vue +0 -1
- package/app/components/initiative/InitiativePlanDecision.vue +0 -1
- package/app/components/initiative/InitiativePlanReview.vue +0 -1
- package/app/components/initiative/InitiativePlanningWindow.vue +1 -2
- package/app/components/initiative/InitiativeTrackerWindow.vue +1 -1
- package/app/components/inputGate/InputGateNotice.vue +0 -1
- package/app/components/judge/JudgeResultView.vue +0 -1
- package/app/components/layout/AccountDeploymentSettings.vue +5 -35
- package/app/components/layout/AccountModelPolicySettings.vue +0 -1
- package/app/components/layout/AccountPlatformAlertSettings.vue +0 -1
- package/app/components/layout/AccountRunCredentialSettings.vue +0 -1
- package/app/components/layout/AccountTeamSettings.vue +3 -3
- package/app/components/layout/AiProvidersBanner.vue +1 -7
- package/app/components/layout/BoardSwitcher.vue +1 -1
- package/app/components/layout/DefaultTestEnvBanner.vue +0 -1
- package/app/components/layout/GitHubPatBanner.vue +0 -1
- package/app/components/layout/GitHubPatPermissionsBanner.vue +0 -1
- package/app/components/layout/InfraSetupBanner.vue +0 -1
- package/app/components/layout/IntegrationsHub.vue +0 -2
- package/app/components/layout/ModelProvidersHub.vue +1 -6
- package/app/components/layout/ProviderConfigBanner.vue +0 -1
- package/app/components/layout/SideBar.vue +0 -1
- package/app/components/layout/SpendWarningBanner.vue +0 -1
- package/app/components/layout/WorkspaceMembersSettings.vue +0 -1
- package/app/components/notifications/NotificationSettingsPanel.vue +0 -1
- package/app/components/outcome/OutcomeSummaryWindow.vue +0 -3
- package/app/components/panels/AgentStepDetail.vue +0 -5
- package/app/components/panels/DecisionModal.vue +0 -1
- package/app/components/panels/inspector/ContainerSummary.vue +1 -1
- package/app/components/panels/inspector/FrontendConfig.vue +0 -4
- package/app/components/panels/inspector/InitiativeInspector.vue +1 -6
- package/app/components/panels/inspector/RecurringScheduleSettings.vue +1 -3
- package/app/components/panels/inspector/ServiceReleaseHealthConfig.vue +1 -8
- package/app/components/panels/inspector/ServiceSelfTests.vue +0 -2
- package/app/components/panels/inspector/ServiceTestConfig.vue +1 -4
- package/app/components/panels/inspector/ServiceTestSecrets.vue +0 -1
- package/app/components/panels/inspector/ServiceTestingContext.vue +0 -1
- package/app/components/panels/inspector/ServiceValidationConfig.vue +0 -1
- package/app/components/panels/inspector/TaskExecution.vue +0 -4
- package/app/components/panels/inspector/TaskReviewTarget.vue +0 -2
- package/app/components/panels/inspector/TaskRunSettings.vue +2 -14
- package/app/components/panels/inspector/TaskTypeFields.vue +0 -1
- package/app/components/pipeline/AgentPromptEditor.vue +0 -2
- package/app/components/pipeline/IterationCapPrompt.vue +0 -1
- package/app/components/pipeline/PipelineBuilder.vue +1 -10
- package/app/components/pipeline/PipelineHealthModal.vue +0 -4
- package/app/components/prReview/PrReviewWindow.vue +0 -4
- package/app/components/providers/AiPresetMismatchDialog.vue +1 -1
- package/app/components/providers/AiProviderOnboardingModal.vue +2 -8
- package/app/components/providers/VendorCredentialsModal.vue +1 -7
- package/app/components/requirements/RequirementsReviewWindow.vue +0 -7
- package/app/components/sandbox/SandboxPanel.vue +0 -3
- package/app/components/settings/BudgetSettings.vue +1 -9
- package/app/components/settings/ComposeEnvironmentSetupSection.vue +0 -1
- package/app/components/settings/ConsensusGroupsSection.vue +0 -1
- package/app/components/settings/CustomManifestTypeEditor.vue +1 -1
- package/app/components/settings/DefaultProvisionTypeSection.vue +0 -1
- package/app/components/settings/InfraHandlersConfigurator.vue +1 -1
- package/app/components/settings/IssueTrackerPanel.vue +1 -8
- package/app/components/settings/KubernetesEngineForm.vue +1 -7
- package/app/components/settings/KubernetesEnvironmentForm.vue +1 -7
- package/app/components/settings/LocalContainerPoolSettings.vue +1 -1
- package/app/components/settings/LocalModelEndpointsPanel.vue +0 -1
- package/app/components/settings/McpAuthorizeScreen.vue +0 -1
- package/app/components/settings/McpOAuthCallbackScreen.vue +1 -1
- package/app/components/settings/ModelConfigurationPanel.vue +3 -10
- package/app/components/settings/ModelPresetHealthModal.vue +0 -3
- package/app/components/settings/OpenRouterCatalogPanel.vue +1 -9
- package/app/components/settings/ProviderConnectionTab.vue +1 -7
- package/app/components/settings/ProviderManifestEditor.vue +0 -1
- package/app/components/settings/RiskPolicyCreateForm.vue +0 -1
- package/app/components/settings/RiskPolicyEditorRow.vue +1 -2
- package/app/components/settings/RiskPolicyHealthModal.vue +0 -3
- package/app/components/settings/ServiceFragmentDefaultsPanel.vue +0 -3
- package/app/components/settings/UserSecretsSection.vue +1 -7
- package/app/components/settings/WorkspaceMetadataSettings.vue +0 -1
- package/app/components/settings/WorkspaceSettingsPanel.vue +1 -7
- package/app/components/skills/ReviewSkillQueue.vue +0 -1
- package/app/components/slack/SlackPanel.vue +0 -4
- package/app/components/spec/ServiceSpecWindow.vue +0 -1
- package/app/components/tasks/BugHuntModal.vue +0 -3
- package/app/components/tasks/TaskImportModal.vue +0 -2
- package/app/components/tasks/TaskSourceConnectModal.vue +1 -8
- package/app/components/tutorial/TutorialCatalogue.vue +0 -1
- package/app/components/tutorial/TutorialNudge.vue +0 -1
- package/app/components/tutorial/TutorialOverlay.vue +0 -2
- package/app/components/tutorial/TutorialPrompt.vue +0 -1
- package/app/components/vcs/GitLabConnect.vue +0 -1
- package/app/components/visualConfirm/VisualConfirmationWindow.vue +0 -1
- package/app/pages/index.vue +1 -1
- package/package.json +2 -2
|
@@ -49,7 +49,7 @@ function control(action: 'pause' | 'resume' | 'cancel') {
|
|
|
49
49
|
<template>
|
|
50
50
|
<div class="space-y-3" data-testid="initiative-inspector">
|
|
51
51
|
<div class="flex items-center gap-2">
|
|
52
|
-
<UBadge
|
|
52
|
+
<UBadge variant="subtle" size="sm">
|
|
53
53
|
{{ t(INITIATIVE_STATUS_LABEL_KEYS[status]) }}
|
|
54
54
|
</UBadge>
|
|
55
55
|
<span v-if="progress" class="text-2xs text-muted">
|
|
@@ -70,7 +70,6 @@ function control(action: 'pause' | 'resume' | 'cancel') {
|
|
|
70
70
|
data-testid="initiative-review"
|
|
71
71
|
:data-attention="attention.kind"
|
|
72
72
|
color="warning"
|
|
73
|
-
variant="solid"
|
|
74
73
|
size="sm"
|
|
75
74
|
:icon="INITIATIVE_ATTENTION_ICONS[attention.kind]"
|
|
76
75
|
@click="attention.open()"
|
|
@@ -80,8 +79,6 @@ function control(action: 'pause' | 'resume' | 'cancel') {
|
|
|
80
79
|
<UButton
|
|
81
80
|
v-else-if="awaitingAnswers"
|
|
82
81
|
data-testid="initiative-answer-planning"
|
|
83
|
-
color="primary"
|
|
84
|
-
variant="solid"
|
|
85
82
|
size="sm"
|
|
86
83
|
icon="i-lucide-messages-square"
|
|
87
84
|
@click="openPlanning"
|
|
@@ -104,7 +101,6 @@ function control(action: 'pause' | 'resume' | 'cancel') {
|
|
|
104
101
|
</UButton>
|
|
105
102
|
<UButton
|
|
106
103
|
data-testid="initiative-run-planning"
|
|
107
|
-
color="primary"
|
|
108
104
|
variant="soft"
|
|
109
105
|
size="sm"
|
|
110
106
|
icon="i-lucide-play"
|
|
@@ -143,7 +139,6 @@ function control(action: 'pause' | 'resume' | 'cancel') {
|
|
|
143
139
|
<UButton
|
|
144
140
|
v-if="isPaused"
|
|
145
141
|
data-testid="initiative-resume"
|
|
146
|
-
color="primary"
|
|
147
142
|
variant="soft"
|
|
148
143
|
size="sm"
|
|
149
144
|
icon="i-lucide-play"
|
|
@@ -206,9 +206,7 @@ function fmtTime(ms: number) {
|
|
|
206
206
|
"
|
|
207
207
|
>{{ t('common.cancel') }}</UButton
|
|
208
208
|
>
|
|
209
|
-
<UButton size="xs"
|
|
210
|
-
t('common.save')
|
|
211
|
-
}}</UButton>
|
|
209
|
+
<UButton size="xs" :loading="busy" @click="saveEdit">{{ t('common.save') }}</UButton>
|
|
212
210
|
</div>
|
|
213
211
|
</template>
|
|
214
212
|
|
|
@@ -145,14 +145,7 @@ async function clear() {
|
|
|
145
145
|
<UInput v-model="draft.envTag" placeholder="prod" size="sm" class="w-full" />
|
|
146
146
|
</UFormField>
|
|
147
147
|
<div class="flex justify-end">
|
|
148
|
-
<UButton
|
|
149
|
-
color="primary"
|
|
150
|
-
variant="soft"
|
|
151
|
-
size="xs"
|
|
152
|
-
icon="i-lucide-save"
|
|
153
|
-
:loading="busy"
|
|
154
|
-
@click="save"
|
|
155
|
-
>
|
|
148
|
+
<UButton variant="soft" size="xs" icon="i-lucide-save" :loading="busy" @click="save">
|
|
156
149
|
{{ t('inspector.releaseHealth.saveMonitoring') }}
|
|
157
150
|
</UButton>
|
|
158
151
|
</div>
|
|
@@ -204,7 +204,6 @@ async function stop(mode: EnvironmentTestMode) {
|
|
|
204
204
|
v-if="!isRunning('provision')"
|
|
205
205
|
icon="i-lucide-flask-conical"
|
|
206
206
|
size="xs"
|
|
207
|
-
color="primary"
|
|
208
207
|
variant="soft"
|
|
209
208
|
data-testid="env-test-start"
|
|
210
209
|
:loading="starting.provision"
|
|
@@ -291,7 +290,6 @@ async function stop(mode: EnvironmentTestMode) {
|
|
|
291
290
|
v-if="!isRunning('agent-probe')"
|
|
292
291
|
icon="i-lucide-bot"
|
|
293
292
|
size="xs"
|
|
294
|
-
color="primary"
|
|
295
293
|
variant="soft"
|
|
296
294
|
data-testid="env-probe-start"
|
|
297
295
|
:loading="starting['agent-probe']"
|
|
@@ -467,7 +467,6 @@ function setSize(value: InstanceSize) {
|
|
|
467
467
|
<UButton
|
|
468
468
|
size="xs"
|
|
469
469
|
variant="soft"
|
|
470
|
-
color="primary"
|
|
471
470
|
icon="i-lucide-flask-conical"
|
|
472
471
|
data-testid="env-setup-nudge-open"
|
|
473
472
|
@click="ui.openEnvironmentSetup(props.block.id)"
|
|
@@ -484,7 +483,6 @@ function setSize(value: InstanceSize) {
|
|
|
484
483
|
<UButton
|
|
485
484
|
size="xs"
|
|
486
485
|
variant="soft"
|
|
487
|
-
color="primary"
|
|
488
486
|
icon="i-lucide-wand-sparkles"
|
|
489
487
|
:loading="detecting"
|
|
490
488
|
@click="detectFromRepo"
|
|
@@ -811,7 +809,6 @@ function setSize(value: InstanceSize) {
|
|
|
811
809
|
<UButton
|
|
812
810
|
size="xs"
|
|
813
811
|
variant="soft"
|
|
814
|
-
color="primary"
|
|
815
812
|
icon="i-lucide-file-cog"
|
|
816
813
|
:loading="generating"
|
|
817
814
|
:disabled="!customManifestPath && !selectedCustomType?.defaultManifestPath"
|
|
@@ -877,7 +874,7 @@ function setSize(value: InstanceSize) {
|
|
|
877
874
|
</template>
|
|
878
875
|
<template v-else>{{ t('inspector.testConfig.noFileSelected') }}</template>
|
|
879
876
|
</p>
|
|
880
|
-
<UButton size="xs"
|
|
877
|
+
<UButton size="xs" :disabled="!pickedPath" @click="applyPicked">
|
|
881
878
|
{{ t('inspector.testConfig.useThisFile') }}
|
|
882
879
|
</UButton>
|
|
883
880
|
</div>
|
|
@@ -496,7 +496,6 @@ async function mergePr() {
|
|
|
496
496
|
branch each is how the candidate park shipped with no button at all. -->
|
|
497
497
|
<UButton
|
|
498
498
|
v-else-if="s.approval && s.approval.status === 'pending' && redirectPark(s)"
|
|
499
|
-
color="primary"
|
|
500
499
|
variant="soft"
|
|
501
500
|
size="xs"
|
|
502
501
|
:icon="REDIRECT_PARK_PRESENTATION[redirectPark(s)!].icon"
|
|
@@ -514,7 +513,6 @@ async function mergePr() {
|
|
|
514
513
|
s.approval.status === 'pending' &&
|
|
515
514
|
s.prReview?.status === 'awaiting_selection'
|
|
516
515
|
"
|
|
517
|
-
color="primary"
|
|
518
516
|
variant="soft"
|
|
519
517
|
size="xs"
|
|
520
518
|
icon="i-lucide-clipboard-check"
|
|
@@ -630,7 +628,6 @@ async function mergePr() {
|
|
|
630
628
|
merged task whose run instance is long gone. -->
|
|
631
629
|
<UButton
|
|
632
630
|
v-if="outcomeReadable"
|
|
633
|
-
color="primary"
|
|
634
631
|
variant="soft"
|
|
635
632
|
size="sm"
|
|
636
633
|
icon="i-lucide-clipboard-check"
|
|
@@ -690,7 +687,6 @@ async function mergePr() {
|
|
|
690
687
|
<UButton
|
|
691
688
|
class="mt-2"
|
|
692
689
|
color="success"
|
|
693
|
-
variant="solid"
|
|
694
690
|
size="sm"
|
|
695
691
|
icon="i-lucide-git-merge"
|
|
696
692
|
block
|
|
@@ -133,7 +133,6 @@ function revert() {
|
|
|
133
133
|
</p>
|
|
134
134
|
<UButton
|
|
135
135
|
v-if="guidedTarget"
|
|
136
|
-
color="primary"
|
|
137
136
|
variant="soft"
|
|
138
137
|
size="sm"
|
|
139
138
|
icon="i-lucide-scan-search"
|
|
@@ -151,7 +150,6 @@ function revert() {
|
|
|
151
150
|
<div v-if="dirty" class="mt-2 flex items-center gap-2">
|
|
152
151
|
<UButton
|
|
153
152
|
size="xs"
|
|
154
|
-
color="primary"
|
|
155
153
|
variant="soft"
|
|
156
154
|
:loading="saving"
|
|
157
155
|
data-testid="inspector-review-skills-save"
|
|
@@ -305,13 +305,7 @@ const technicalLabel = computed(() => {
|
|
|
305
305
|
</PipelinePicker>
|
|
306
306
|
</div>
|
|
307
307
|
<div v-if="selectedPipeline" class="flex items-center gap-1">
|
|
308
|
-
<UBadge
|
|
309
|
-
color="primary"
|
|
310
|
-
variant="subtle"
|
|
311
|
-
size="sm"
|
|
312
|
-
class="cursor-pointer"
|
|
313
|
-
@click="setPipeline('')"
|
|
314
|
-
>
|
|
308
|
+
<UBadge variant="subtle" size="sm" class="cursor-pointer" @click="setPipeline('')">
|
|
315
309
|
{{ selectedPipeline.name }}<UIcon name="i-lucide-x" class="ms-0.5 h-3 w-3" />
|
|
316
310
|
</UBadge>
|
|
317
311
|
</div>
|
|
@@ -615,13 +609,7 @@ const technicalLabel = computed(() => {
|
|
|
615
609
|
</UDropdownMenu>
|
|
616
610
|
</div>
|
|
617
611
|
<div v-if="responsibleLabel" class="flex items-center gap-1">
|
|
618
|
-
<UBadge
|
|
619
|
-
color="primary"
|
|
620
|
-
variant="subtle"
|
|
621
|
-
size="sm"
|
|
622
|
-
class="cursor-pointer"
|
|
623
|
-
@click="setResponsible('')"
|
|
624
|
-
>
|
|
612
|
+
<UBadge variant="subtle" size="sm" class="cursor-pointer" @click="setResponsible('')">
|
|
625
613
|
{{ responsibleLabel }}<UIcon name="i-lucide-x" class="ms-0.5 h-3 w-3" />
|
|
626
614
|
</UBadge>
|
|
627
615
|
</div>
|
|
@@ -242,7 +242,6 @@ function revisionLabel(revision: AgentPromptRevision): string {
|
|
|
242
242
|
|
|
243
243
|
<div class="flex flex-wrap items-center gap-2">
|
|
244
244
|
<UButton
|
|
245
|
-
color="primary"
|
|
246
245
|
size="sm"
|
|
247
246
|
icon="i-lucide-save"
|
|
248
247
|
:loading="prompts.saving"
|
|
@@ -308,7 +307,6 @@ function revisionLabel(revision: AgentPromptRevision): string {
|
|
|
308
307
|
>
|
|
309
308
|
<UBadge
|
|
310
309
|
v-if="revision.revision === detail.revisions[0]?.revision"
|
|
311
|
-
color="primary"
|
|
312
310
|
variant="subtle"
|
|
313
311
|
size="sm"
|
|
314
312
|
>
|
|
@@ -41,7 +41,6 @@ const emit = defineEmits<{ resolve: [choice: IterationCapChoice] }>()
|
|
|
41
41
|
<p class="mt-1 text-xs text-app-warning-200/80">{{ detail }}</p>
|
|
42
42
|
<div class="mt-3 flex flex-wrap gap-2">
|
|
43
43
|
<UButton
|
|
44
|
-
color="primary"
|
|
45
44
|
variant="soft"
|
|
46
45
|
size="xs"
|
|
47
46
|
icon="i-lucide-rotate-cw"
|
|
@@ -428,13 +428,7 @@ const { toggleArchive, toggleDefault, edit, removePipeline, clone } = usePipelin
|
|
|
428
428
|
<SectionLabel as="h3">
|
|
429
429
|
{{ t('pipeline.builder.agentPalette') }}
|
|
430
430
|
</SectionLabel>
|
|
431
|
-
<UButton
|
|
432
|
-
color="primary"
|
|
433
|
-
variant="soft"
|
|
434
|
-
size="xs"
|
|
435
|
-
icon="i-lucide-plus"
|
|
436
|
-
@click="openAddAgent"
|
|
437
|
-
>
|
|
431
|
+
<UButton variant="soft" size="xs" icon="i-lucide-plus" @click="openAddAgent">
|
|
438
432
|
{{ t('pipeline.builder.addAgent') }}
|
|
439
433
|
</UButton>
|
|
440
434
|
</div>
|
|
@@ -1243,7 +1237,6 @@ const { toggleArchive, toggleDefault, edit, removePipeline, clone } = usePipelin
|
|
|
1243
1237
|
concealed-setting failure. -->
|
|
1244
1238
|
<UBadge
|
|
1245
1239
|
v-if="p.isDefault"
|
|
1246
|
-
color="primary"
|
|
1247
1240
|
variant="subtle"
|
|
1248
1241
|
size="xs"
|
|
1249
1242
|
class="shrink-0"
|
|
@@ -1396,7 +1389,6 @@ const { toggleArchive, toggleDefault, edit, removePipeline, clone } = usePipelin
|
|
|
1396
1389
|
{{ pipelines.editingId ? t('pipeline.builder.cancelEdit') : t('pipeline.builder.clear') }}
|
|
1397
1390
|
</UButton>
|
|
1398
1391
|
<UButton
|
|
1399
|
-
color="primary"
|
|
1400
1392
|
icon="i-lucide-save"
|
|
1401
1393
|
size="sm"
|
|
1402
1394
|
:disabled="pipelines.draft.length === 0 || stepsDisallowedByPurpose.length > 0"
|
|
@@ -1465,7 +1457,6 @@ const { toggleArchive, toggleDefault, edit, removePipeline, clone } = usePipelin
|
|
|
1465
1457
|
{{ t('common.cancel') }}
|
|
1466
1458
|
</UButton>
|
|
1467
1459
|
<UButton
|
|
1468
|
-
color="primary"
|
|
1469
1460
|
icon="i-lucide-plus"
|
|
1470
1461
|
size="sm"
|
|
1471
1462
|
:disabled="!newAgentName.trim()"
|
|
@@ -151,7 +151,6 @@ const reseedableCount = computed(
|
|
|
151
151
|
</div>
|
|
152
152
|
<UButton
|
|
153
153
|
size="xs"
|
|
154
|
-
color="primary"
|
|
155
154
|
variant="subtle"
|
|
156
155
|
icon="i-lucide-plus"
|
|
157
156
|
:loading="isBusy(p.id)"
|
|
@@ -207,7 +206,6 @@ const reseedableCount = computed(
|
|
|
207
206
|
<UButton
|
|
208
207
|
v-if="h.pipeline.builtin"
|
|
209
208
|
size="xs"
|
|
210
|
-
color="primary"
|
|
211
209
|
variant="subtle"
|
|
212
210
|
icon="i-lucide-rotate-ccw"
|
|
213
211
|
:loading="isBusy(h.pipeline.id)"
|
|
@@ -296,7 +294,6 @@ const reseedableCount = computed(
|
|
|
296
294
|
</div>
|
|
297
295
|
<UButton
|
|
298
296
|
size="xs"
|
|
299
|
-
color="primary"
|
|
300
297
|
variant="subtle"
|
|
301
298
|
icon="i-lucide-rotate-ccw"
|
|
302
299
|
:loading="isBusy(h.pipeline.id)"
|
|
@@ -315,7 +312,6 @@ const reseedableCount = computed(
|
|
|
315
312
|
<div class="flex w-full items-center justify-between gap-2">
|
|
316
313
|
<UButton
|
|
317
314
|
v-if="reseedableCount > 1"
|
|
318
|
-
color="primary"
|
|
319
315
|
variant="ghost"
|
|
320
316
|
icon="i-lucide-rotate-ccw"
|
|
321
317
|
:loading="anyBusy"
|
|
@@ -588,7 +588,6 @@ const { requestClose } = useUnsavedGuard({
|
|
|
588
588
|
{{ t('prReview.selectedCount', { count: activeSelectedIds.length }) }}
|
|
589
589
|
</span>
|
|
590
590
|
<UButton
|
|
591
|
-
color="primary"
|
|
592
591
|
variant="link"
|
|
593
592
|
class="p-0 text-2xs text-primary hover:underline"
|
|
594
593
|
@click="selectAll"
|
|
@@ -596,7 +595,6 @@ const { requestClose } = useUnsavedGuard({
|
|
|
596
595
|
{{ t('prReview.selectAll') }}
|
|
597
596
|
</UButton>
|
|
598
597
|
<UButton
|
|
599
|
-
color="primary"
|
|
600
598
|
variant="link"
|
|
601
599
|
class="p-0 text-2xs text-primary hover:underline"
|
|
602
600
|
@click="clearAll"
|
|
@@ -760,7 +758,6 @@ const { requestClose } = useUnsavedGuard({
|
|
|
760
758
|
class="mt-1.5 flex items-center gap-3 text-2xs"
|
|
761
759
|
>
|
|
762
760
|
<UButton
|
|
763
|
-
color="primary"
|
|
764
761
|
variant="link"
|
|
765
762
|
v-if="!isRetracted(f)"
|
|
766
763
|
data-testid="pr-review-finding-challenge"
|
|
@@ -880,7 +877,6 @@ const { requestClose } = useUnsavedGuard({
|
|
|
880
877
|
{{ postReport ? t('prReview.postReport.retry') : t('prReview.post') }}
|
|
881
878
|
</UButton>
|
|
882
879
|
<UButton
|
|
883
|
-
color="primary"
|
|
884
880
|
:loading="prReview.resolving"
|
|
885
881
|
:disabled="!canResolve || !hasSelection || !access.canExecuteRuns.value"
|
|
886
882
|
:title="access.canExecuteRuns.value ? undefined : t('access.noRunExecute')"
|
|
@@ -97,7 +97,7 @@ function go(action: () => void) {
|
|
|
97
97
|
>
|
|
98
98
|
{{ t('providers.presetMismatch.configureVendors') }}
|
|
99
99
|
</UButton>
|
|
100
|
-
<UButton
|
|
100
|
+
<UButton size="sm" icon="i-lucide-cpu" @click="go(ui.openModelConfig)">
|
|
101
101
|
{{ t('providers.presetMismatch.editPresets') }}
|
|
102
102
|
</UButton>
|
|
103
103
|
</div>
|
|
@@ -100,19 +100,13 @@ const routes = computed<Route[]>(() => [
|
|
|
100
100
|
<div class="min-w-0 flex-1">
|
|
101
101
|
<div class="flex items-center gap-2">
|
|
102
102
|
<p class="text-sm font-semibold text-app-100">{{ r.title }}</p>
|
|
103
|
-
<UBadge v-if="r.badge"
|
|
103
|
+
<UBadge v-if="r.badge" variant="subtle" size="sm">
|
|
104
104
|
{{ r.badge }}
|
|
105
105
|
</UBadge>
|
|
106
106
|
</div>
|
|
107
107
|
<p class="mt-0.5 text-sm leading-relaxed text-muted">{{ r.body }}</p>
|
|
108
108
|
</div>
|
|
109
|
-
<UButton
|
|
110
|
-
size="sm"
|
|
111
|
-
color="primary"
|
|
112
|
-
variant="subtle"
|
|
113
|
-
class="shrink-0"
|
|
114
|
-
@click="r.onSelect()"
|
|
115
|
-
>
|
|
109
|
+
<UButton size="sm" variant="subtle" class="shrink-0" @click="r.onSelect()">
|
|
116
110
|
{{ r.cta }}
|
|
117
111
|
</UButton>
|
|
118
112
|
</div>
|
|
@@ -206,13 +206,7 @@ function vendorLabel(v: SubscriptionVendor): string {
|
|
|
206
206
|
<p class="min-w-0 flex-1 text-sm text-toned">
|
|
207
207
|
{{ t('providers.vendorCredentials.personalCallout.text') }}
|
|
208
208
|
</p>
|
|
209
|
-
<UButton
|
|
210
|
-
size="xs"
|
|
211
|
-
color="primary"
|
|
212
|
-
variant="subtle"
|
|
213
|
-
class="shrink-0"
|
|
214
|
-
@click="activeTab = 'personal'"
|
|
215
|
-
>
|
|
209
|
+
<UButton size="xs" variant="subtle" class="shrink-0" @click="activeTab = 'personal'">
|
|
216
210
|
{{ t('providers.vendorCredentials.personalCallout.cta') }}
|
|
217
211
|
</UButton>
|
|
218
212
|
</div>
|
|
@@ -921,7 +921,6 @@ async function resolveExceeded(choice: 'extra-round' | 'proceed' | 'stop-reset')
|
|
|
921
921
|
v-if="autoDefaults.get(item.id)!.groundedInFragment"
|
|
922
922
|
size="xs"
|
|
923
923
|
variant="subtle"
|
|
924
|
-
color="primary"
|
|
925
924
|
>
|
|
926
925
|
{{
|
|
927
926
|
t('requirements.currentStandard', {
|
|
@@ -1027,7 +1026,6 @@ async function resolveExceeded(choice: 'extra-round' | 'proceed' | 'stop-reset')
|
|
|
1027
1026
|
</p>
|
|
1028
1027
|
<div class="mt-2 flex flex-wrap items-center gap-2">
|
|
1029
1028
|
<UButton
|
|
1030
|
-
color="primary"
|
|
1031
1029
|
variant="soft"
|
|
1032
1030
|
size="xs"
|
|
1033
1031
|
icon="i-lucide-check"
|
|
@@ -1231,7 +1229,6 @@ async function resolveExceeded(choice: 'extra-round' | 'proceed' | 'stop-reset')
|
|
|
1231
1229
|
class="border-t border-default pt-4"
|
|
1232
1230
|
>
|
|
1233
1231
|
<UButton
|
|
1234
|
-
color="primary"
|
|
1235
1232
|
variant="soft"
|
|
1236
1233
|
size="sm"
|
|
1237
1234
|
block
|
|
@@ -1255,7 +1252,6 @@ async function resolveExceeded(choice: 'extra-round' | 'proceed' | 'stop-reset')
|
|
|
1255
1252
|
<div v-if="review && status === 'ready'" class="space-y-2 border-t border-default pt-4">
|
|
1256
1253
|
<UButton
|
|
1257
1254
|
v-if="canProceed"
|
|
1258
|
-
color="primary"
|
|
1259
1255
|
size="sm"
|
|
1260
1256
|
block
|
|
1261
1257
|
icon="i-lucide-arrow-right"
|
|
@@ -1270,7 +1266,6 @@ async function resolveExceeded(choice: 'extra-round' | 'proceed' | 'stop-reset')
|
|
|
1270
1266
|
</UButton>
|
|
1271
1267
|
<UButton
|
|
1272
1268
|
v-else
|
|
1273
|
-
color="primary"
|
|
1274
1269
|
size="sm"
|
|
1275
1270
|
block
|
|
1276
1271
|
icon="i-lucide-wand-sparkles"
|
|
@@ -1296,7 +1291,6 @@ async function resolveExceeded(choice: 'extra-round' | 'proceed' | 'stop-reset')
|
|
|
1296
1291
|
<!-- action: merged (inspect → re-review / redo) -->
|
|
1297
1292
|
<div v-if="review && merged" class="space-y-2 border-t border-default pt-4">
|
|
1298
1293
|
<UButton
|
|
1299
|
-
color="primary"
|
|
1300
1294
|
size="sm"
|
|
1301
1295
|
block
|
|
1302
1296
|
icon="i-lucide-sparkles"
|
|
@@ -1333,7 +1327,6 @@ async function resolveExceeded(choice: 'extra-round' | 'proceed' | 'stop-reset')
|
|
|
1333
1327
|
:placeholder="t('requirements.redoPlaceholder')"
|
|
1334
1328
|
/>
|
|
1335
1329
|
<UButton
|
|
1336
|
-
color="primary"
|
|
1337
1330
|
variant="soft"
|
|
1338
1331
|
size="xs"
|
|
1339
1332
|
block
|
|
@@ -457,7 +457,6 @@ async function archive(prompt: SandboxPromptVersion) {
|
|
|
457
457
|
</span>
|
|
458
458
|
</span>
|
|
459
459
|
<UButton
|
|
460
|
-
color="primary"
|
|
461
460
|
icon="i-lucide-play"
|
|
462
461
|
size="sm"
|
|
463
462
|
:loading="store.launching"
|
|
@@ -632,7 +631,6 @@ async function archive(prompt: SandboxPromptVersion) {
|
|
|
632
631
|
<IconButton
|
|
633
632
|
v-if="canPromote(p)"
|
|
634
633
|
icon="i-lucide-rocket"
|
|
635
|
-
color="primary"
|
|
636
634
|
variant="ghost"
|
|
637
635
|
size="xs"
|
|
638
636
|
:loading="promoting === p.id"
|
|
@@ -674,7 +672,6 @@ async function archive(prompt: SandboxPromptVersion) {
|
|
|
674
672
|
{{ t('common.cancel') }}
|
|
675
673
|
</UButton>
|
|
676
674
|
<UButton
|
|
677
|
-
color="primary"
|
|
678
675
|
icon="i-lucide-save"
|
|
679
676
|
size="sm"
|
|
680
677
|
:loading="savingPrompt"
|
|
@@ -167,13 +167,7 @@ function saveUser() {
|
|
|
167
167
|
}}
|
|
168
168
|
</div>
|
|
169
169
|
<div class="flex justify-end">
|
|
170
|
-
<UButton
|
|
171
|
-
color="primary"
|
|
172
|
-
icon="i-lucide-save"
|
|
173
|
-
size="sm"
|
|
174
|
-
:loading="savingWorkspace"
|
|
175
|
-
@click="saveWorkspace"
|
|
176
|
-
>
|
|
170
|
+
<UButton icon="i-lucide-save" size="sm" :loading="savingWorkspace" @click="saveWorkspace">
|
|
177
171
|
{{ t('settings.workspaceSettings.budget.saveTier') }}
|
|
178
172
|
</UButton>
|
|
179
173
|
</div>
|
|
@@ -222,7 +216,6 @@ function saveUser() {
|
|
|
222
216
|
</p>
|
|
223
217
|
<div v-if="canEditAccount" class="flex justify-end">
|
|
224
218
|
<UButton
|
|
225
|
-
color="primary"
|
|
226
219
|
icon="i-lucide-save"
|
|
227
220
|
size="sm"
|
|
228
221
|
:loading="savingAccount"
|
|
@@ -273,7 +266,6 @@ function saveUser() {
|
|
|
273
266
|
</div>
|
|
274
267
|
<div class="flex justify-end">
|
|
275
268
|
<UButton
|
|
276
|
-
color="primary"
|
|
277
269
|
icon="i-lucide-save"
|
|
278
270
|
size="sm"
|
|
279
271
|
:loading="savingUser"
|
|
@@ -192,7 +192,7 @@ async function remove(type: CustomManifestType) {
|
|
|
192
192
|
<UButton v-if="editing" color="neutral" variant="ghost" size="sm" @click="startAdd">
|
|
193
193
|
{{ t('common.cancel') }}
|
|
194
194
|
</UButton>
|
|
195
|
-
<UButton
|
|
195
|
+
<UButton size="sm" :loading="busy" :disabled="!canSave" @click="save">
|
|
196
196
|
{{ editing ? t('common.save') : t('settings.infrastructure.customType.add') }}
|
|
197
197
|
</UButton>
|
|
198
198
|
</div>
|
|
@@ -527,7 +527,7 @@ function toastRemoved() {
|
|
|
527
527
|
class="h-3.5 w-3.5"
|
|
528
528
|
/>
|
|
529
529
|
{{ t('settings.infrastructure.handler.personalOverride') }}
|
|
530
|
-
<UBadge v-if="kubeUserHandler"
|
|
530
|
+
<UBadge v-if="kubeUserHandler" variant="subtle" size="sm">
|
|
531
531
|
{{ t('settings.infrastructure.handler.overrideActive') }}
|
|
532
532
|
</UBadge>
|
|
533
533
|
</SectionLabel>
|
|
@@ -437,14 +437,7 @@ async function checkSetup(source: TaskSourceKind) {
|
|
|
437
437
|
</section>
|
|
438
438
|
|
|
439
439
|
<div class="flex justify-end">
|
|
440
|
-
<UButton
|
|
441
|
-
color="primary"
|
|
442
|
-
icon="i-lucide-save"
|
|
443
|
-
size="sm"
|
|
444
|
-
:loading="saving"
|
|
445
|
-
:disabled="!canSave"
|
|
446
|
-
@click="save"
|
|
447
|
-
>
|
|
440
|
+
<UButton icon="i-lucide-save" size="sm" :loading="saving" :disabled="!canSave" @click="save">
|
|
448
441
|
{{ t('common.save') }}
|
|
449
442
|
</UButton>
|
|
450
443
|
</div>
|
|
@@ -604,13 +604,7 @@ async function copyAutoSetupCommand() {
|
|
|
604
604
|
<p v-if="connectBlockedReason" class="flex-1 text-left text-xs text-app-error-400">
|
|
605
605
|
{{ connectBlockedReason }}
|
|
606
606
|
</p>
|
|
607
|
-
<UButton
|
|
608
|
-
color="primary"
|
|
609
|
-
size="sm"
|
|
610
|
-
:loading="busy"
|
|
611
|
-
:disabled="!canSave"
|
|
612
|
-
@click="emit('save', buildPayload())"
|
|
613
|
-
>
|
|
607
|
+
<UButton size="sm" :loading="busy" :disabled="!canSave" @click="emit('save', buildPayload())">
|
|
614
608
|
{{ connected ? t('common.save') : t('settings.providerConnection.form.connect') }}
|
|
615
609
|
</UButton>
|
|
616
610
|
</div>
|
|
@@ -458,13 +458,7 @@ function optional(label: string): string {
|
|
|
458
458
|
<p v-if="connectBlockedReason" class="flex-1 text-left text-xs text-app-error-400">
|
|
459
459
|
{{ connectBlockedReason }}
|
|
460
460
|
</p>
|
|
461
|
-
<UButton
|
|
462
|
-
color="primary"
|
|
463
|
-
size="sm"
|
|
464
|
-
:loading="busy"
|
|
465
|
-
:disabled="!canSave"
|
|
466
|
-
@click="emit('save', buildPayload())"
|
|
467
|
-
>
|
|
461
|
+
<UButton size="sm" :loading="busy" :disabled="!canSave" @click="emit('save', buildPayload())">
|
|
468
462
|
{{
|
|
469
463
|
connection?.kind === 'kubernetes'
|
|
470
464
|
? t('common.save')
|
|
@@ -164,7 +164,7 @@ async function save() {
|
|
|
164
164
|
</section>
|
|
165
165
|
|
|
166
166
|
<div class="flex justify-end">
|
|
167
|
-
<UButton
|
|
167
|
+
<UButton icon="i-lucide-save" :loading="saving" @click="save">
|
|
168
168
|
{{ t('common.save') }}
|
|
169
169
|
</UButton>
|
|
170
170
|
</div>
|