@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
|
@@ -246,7 +246,6 @@ function hasRecordedAnswer(item: FollowUpItem): boolean {
|
|
|
246
246
|
<div class="flex flex-wrap items-center gap-2">
|
|
247
247
|
<UButton
|
|
248
248
|
size="xs"
|
|
249
|
-
color="primary"
|
|
250
249
|
:loading="followUps.isActing(item.id)"
|
|
251
250
|
:disabled="!(drafts[item.id] ?? '').trim() || !access.canExecuteRuns.value"
|
|
252
251
|
:title="access.canExecuteRuns.value ? undefined : t('access.noRunExecute')"
|
|
@@ -287,7 +286,6 @@ function hasRecordedAnswer(item: FollowUpItem): boolean {
|
|
|
287
286
|
<div v-else class="flex flex-wrap items-center gap-2">
|
|
288
287
|
<UButton
|
|
289
288
|
size="xs"
|
|
290
|
-
color="primary"
|
|
291
289
|
icon="i-lucide-ticket"
|
|
292
290
|
:loading="followUps.isActing(item.id)"
|
|
293
291
|
:disabled="!access.canExecuteRuns.value"
|
|
@@ -238,7 +238,7 @@ const { requestClose } = useUnsavedGuard({
|
|
|
238
238
|
<template #label="{ item }">
|
|
239
239
|
<span class="flex items-center gap-2">
|
|
240
240
|
<span class="min-w-0 flex-1 text-sm font-medium text-app-100">{{ item.label }}</span>
|
|
241
|
-
<UBadge v-if="item.fork?.recommended"
|
|
241
|
+
<UBadge v-if="item.fork?.recommended" variant="subtle" size="sm">
|
|
242
242
|
{{ t('forkDecision.recommended') }}
|
|
243
243
|
</UBadge>
|
|
244
244
|
</span>
|
|
@@ -382,7 +382,6 @@ const { requestClose } = useUnsavedGuard({
|
|
|
382
382
|
</UButton>
|
|
383
383
|
<UButton
|
|
384
384
|
data-testid="fork-option-choose"
|
|
385
|
-
color="primary"
|
|
386
385
|
size="sm"
|
|
387
386
|
icon="i-lucide-check"
|
|
388
387
|
:loading="forkDecision.choosing"
|
|
@@ -597,7 +597,6 @@ function done() {
|
|
|
597
597
|
|
|
598
598
|
<div class="flex justify-end">
|
|
599
599
|
<UButton
|
|
600
|
-
color="primary"
|
|
601
600
|
icon="i-lucide-plus"
|
|
602
601
|
size="sm"
|
|
603
602
|
:loading="adding"
|
|
@@ -675,7 +674,6 @@ function done() {
|
|
|
675
674
|
</UButton>
|
|
676
675
|
<UButton
|
|
677
676
|
v-if="!isMonorepo && !configuredBlock"
|
|
678
|
-
color="primary"
|
|
679
677
|
icon="i-lucide-plus"
|
|
680
678
|
:loading="adding"
|
|
681
679
|
:disabled="!canAdd"
|
|
@@ -151,7 +151,6 @@ async function connectManually() {
|
|
|
151
151
|
<UButton
|
|
152
152
|
v-else
|
|
153
153
|
size="xs"
|
|
154
|
-
color="primary"
|
|
155
154
|
variant="subtle"
|
|
156
155
|
icon="i-lucide-plug"
|
|
157
156
|
:loading="connectingId === inst.installationId"
|
|
@@ -164,7 +163,7 @@ async function connectManually() {
|
|
|
164
163
|
</section>
|
|
165
164
|
|
|
166
165
|
<USeparator :label="t('github.connect.or')" />
|
|
167
|
-
<UButton
|
|
166
|
+
<UButton icon="i-lucide-github" :loading="installing" @click="install">
|
|
168
167
|
{{ t('github.connect.installApp') }}
|
|
169
168
|
</UButton>
|
|
170
169
|
|
|
@@ -453,7 +453,6 @@ async function merge(pr: GitHubPullRequest) {
|
|
|
453
453
|
{{ t('common.cancel') }}
|
|
454
454
|
</UButton>
|
|
455
455
|
<UButton
|
|
456
|
-
color="primary"
|
|
457
456
|
size="sm"
|
|
458
457
|
icon="i-lucide-save"
|
|
459
458
|
:loading="github.savingRepos"
|
|
@@ -625,7 +624,6 @@ async function merge(pr: GitHubPullRequest) {
|
|
|
625
624
|
</div>
|
|
626
625
|
<div class="flex justify-end">
|
|
627
626
|
<UButton
|
|
628
|
-
color="primary"
|
|
629
627
|
icon="i-lucide-git-pull-request"
|
|
630
628
|
:loading="openingPr"
|
|
631
629
|
:disabled="!canOpenPr"
|
|
@@ -207,7 +207,6 @@ watch(
|
|
|
207
207
|
class="flex items-center justify-between gap-2 px-3 py-1.5"
|
|
208
208
|
>
|
|
209
209
|
<UButton
|
|
210
|
-
color="primary"
|
|
211
210
|
variant="ghost"
|
|
212
211
|
class="flex items-center gap-2 truncate p-0 text-sm text-default hover:bg-transparent hover:text-primary"
|
|
213
212
|
@click="browseTo(entry.path)"
|
|
@@ -258,7 +257,6 @@ watch(
|
|
|
258
257
|
@update:model-value="toggleAllFiles"
|
|
259
258
|
/>
|
|
260
259
|
<UButton
|
|
261
|
-
color="primary"
|
|
262
260
|
variant="ghost"
|
|
263
261
|
class="p-0 text-xs text-muted hover:bg-transparent hover:text-primary"
|
|
264
262
|
@click="toggleAllFiles"
|
|
@@ -285,7 +283,6 @@ watch(
|
|
|
285
283
|
@update:model-value="pick(entry.path)"
|
|
286
284
|
/>
|
|
287
285
|
<UButton
|
|
288
|
-
color="primary"
|
|
289
286
|
variant="ghost"
|
|
290
287
|
class="flex items-center gap-2 truncate p-0 text-sm hover:bg-transparent hover:text-primary"
|
|
291
288
|
:class="isPicked(entry.path) ? 'text-primary' : 'text-toned'"
|
|
@@ -111,7 +111,7 @@ async function discard(): Promise<void> {
|
|
|
111
111
|
]"
|
|
112
112
|
:aria-label="t('guidedReview.drafts.sideLabel')"
|
|
113
113
|
/>
|
|
114
|
-
<UButton size="sm"
|
|
114
|
+
<UButton size="sm" :loading="saving" @click="save">
|
|
115
115
|
{{ t('guidedReview.drafts.save') }}
|
|
116
116
|
</UButton>
|
|
117
117
|
<UButton size="sm" variant="ghost" :disabled="saving" @click="editing = false">
|
|
@@ -196,7 +196,6 @@ async function draftComments(): Promise<void> {
|
|
|
196
196
|
/>
|
|
197
197
|
<div class="flex flex-wrap items-center gap-2">
|
|
198
198
|
<UButton
|
|
199
|
-
color="primary"
|
|
200
199
|
icon="i-lucide-upload"
|
|
201
200
|
:loading="posting"
|
|
202
201
|
:disabled="!toPost.length"
|
|
@@ -242,7 +241,6 @@ async function draftComments(): Promise<void> {
|
|
|
242
241
|
data-testid="guided-review-deep"
|
|
243
242
|
/>
|
|
244
243
|
<UButton
|
|
245
|
-
color="primary"
|
|
246
244
|
icon="i-lucide-send"
|
|
247
245
|
:loading="sending"
|
|
248
246
|
:disabled="!canSend"
|
|
@@ -114,7 +114,6 @@ const disabledTitle = computed(() => (props.canExecute ? undefined : t('access.n
|
|
|
114
114
|
/>
|
|
115
115
|
<div class="mt-2 flex flex-wrap items-center gap-2">
|
|
116
116
|
<UButton
|
|
117
|
-
color="primary"
|
|
118
117
|
size="xs"
|
|
119
118
|
icon="i-lucide-check"
|
|
120
119
|
data-testid="initiative-plan-approve"
|
|
@@ -204,7 +204,7 @@ async function onDiscard() {
|
|
|
204
204
|
@close="close"
|
|
205
205
|
>
|
|
206
206
|
<template v-if="initiative" #header-extras>
|
|
207
|
-
<UBadge
|
|
207
|
+
<UBadge variant="subtle" size="sm">
|
|
208
208
|
{{ t(INITIATIVE_STATUS_LABEL_KEYS[initiative.status]) }}
|
|
209
209
|
</UBadge>
|
|
210
210
|
</template>
|
|
@@ -383,7 +383,6 @@ async function onDiscard() {
|
|
|
383
383
|
{{ t('initiative.planning.proceed') }}
|
|
384
384
|
</UButton>
|
|
385
385
|
<UButton
|
|
386
|
-
color="primary"
|
|
387
386
|
size="sm"
|
|
388
387
|
:loading="resuming"
|
|
389
388
|
:disabled="unanswered > 0 || resetting"
|
|
@@ -329,7 +329,7 @@ const { requestClose } = useUnsavedGuard({
|
|
|
329
329
|
{{ t('initiative.card.progress', { done: progress.settled, total: progress.total }) }}
|
|
330
330
|
</span>
|
|
331
331
|
</div>
|
|
332
|
-
<UBadge v-if="initiative"
|
|
332
|
+
<UBadge v-if="initiative" variant="subtle" size="sm">
|
|
333
333
|
{{ t(INITIATIVE_STATUS_LABEL_KEYS[initiative.status]) }}
|
|
334
334
|
</UBadge>
|
|
335
335
|
</template>
|
|
@@ -479,13 +479,7 @@ async function clearWeb() {
|
|
|
479
479
|
/>
|
|
480
480
|
</div>
|
|
481
481
|
<div class="flex gap-2">
|
|
482
|
-
<UButton
|
|
483
|
-
color="primary"
|
|
484
|
-
size="xs"
|
|
485
|
-
icon="i-lucide-save"
|
|
486
|
-
:loading="savingSlack"
|
|
487
|
-
@click="saveSlack"
|
|
488
|
-
>
|
|
482
|
+
<UButton size="xs" icon="i-lucide-save" :loading="savingSlack" @click="saveSlack">
|
|
489
483
|
{{ t('common.save') }}
|
|
490
484
|
</UButton>
|
|
491
485
|
<UButton
|
|
@@ -540,13 +534,7 @@ async function clearWeb() {
|
|
|
540
534
|
/>
|
|
541
535
|
</div>
|
|
542
536
|
<div class="flex gap-2">
|
|
543
|
-
<UButton
|
|
544
|
-
color="primary"
|
|
545
|
-
size="xs"
|
|
546
|
-
icon="i-lucide-save"
|
|
547
|
-
:loading="savingLinear"
|
|
548
|
-
@click="saveLinear"
|
|
549
|
-
>
|
|
537
|
+
<UButton size="xs" icon="i-lucide-save" :loading="savingLinear" @click="saveLinear">
|
|
550
538
|
{{ t('common.save') }}
|
|
551
539
|
</UButton>
|
|
552
540
|
<UButton
|
|
@@ -601,13 +589,7 @@ async function clearWeb() {
|
|
|
601
589
|
/>
|
|
602
590
|
</div>
|
|
603
591
|
<div class="flex gap-2">
|
|
604
|
-
<UButton
|
|
605
|
-
color="primary"
|
|
606
|
-
size="xs"
|
|
607
|
-
icon="i-lucide-save"
|
|
608
|
-
:loading="savingFigma"
|
|
609
|
-
@click="saveFigma"
|
|
610
|
-
>
|
|
592
|
+
<UButton size="xs" icon="i-lucide-save" :loading="savingFigma" @click="saveFigma">
|
|
611
593
|
{{ t('common.save') }}
|
|
612
594
|
</UButton>
|
|
613
595
|
<UButton
|
|
@@ -658,13 +640,7 @@ async function clearWeb() {
|
|
|
658
640
|
/>
|
|
659
641
|
</div>
|
|
660
642
|
<div class="flex gap-2">
|
|
661
|
-
<UButton
|
|
662
|
-
color="primary"
|
|
663
|
-
size="xs"
|
|
664
|
-
icon="i-lucide-save"
|
|
665
|
-
:loading="savingWeb"
|
|
666
|
-
@click="saveWeb"
|
|
667
|
-
>
|
|
643
|
+
<UButton size="xs" icon="i-lucide-save" :loading="savingWeb" @click="saveWeb">
|
|
668
644
|
{{ t('common.save') }}
|
|
669
645
|
</UButton>
|
|
670
646
|
<UButton
|
|
@@ -795,13 +771,7 @@ async function clearWeb() {
|
|
|
795
771
|
</template>
|
|
796
772
|
|
|
797
773
|
<div class="flex gap-2">
|
|
798
|
-
<UButton
|
|
799
|
-
color="primary"
|
|
800
|
-
size="xs"
|
|
801
|
-
icon="i-lucide-save"
|
|
802
|
-
:loading="savingStorage"
|
|
803
|
-
@click="saveStorage"
|
|
804
|
-
>
|
|
774
|
+
<UButton size="xs" icon="i-lucide-save" :loading="savingStorage" @click="saveStorage">
|
|
805
775
|
{{ t('common.save') }}
|
|
806
776
|
</UButton>
|
|
807
777
|
</div>
|
|
@@ -214,7 +214,7 @@ async function disconnectEmail() {
|
|
|
214
214
|
:placeholder="t('layout.accountTeam.org.namePlaceholder')"
|
|
215
215
|
class="flex-1"
|
|
216
216
|
/>
|
|
217
|
-
<UButton type="submit"
|
|
217
|
+
<UButton type="submit" :loading="busy" icon="i-lucide-plus">
|
|
218
218
|
{{ t('layout.accountTeam.org.create') }}
|
|
219
219
|
</UButton>
|
|
220
220
|
</UForm>
|
|
@@ -280,7 +280,7 @@ async function disconnectEmail() {
|
|
|
280
280
|
class="flex-1"
|
|
281
281
|
/>
|
|
282
282
|
<USelect v-model="inviteRoles" multiple :items="ROLE_ITEMS" class="w-44" />
|
|
283
|
-
<UButton type="submit"
|
|
283
|
+
<UButton type="submit" :loading="busy" icon="i-lucide-send">
|
|
284
284
|
{{ t('layout.accountTeam.invite.submit') }}
|
|
285
285
|
</UButton>
|
|
286
286
|
</UForm>
|
|
@@ -345,7 +345,7 @@ async function disconnectEmail() {
|
|
|
345
345
|
:placeholder="t('layout.accountTeam.email.apiKeyPlaceholder')"
|
|
346
346
|
class="w-full"
|
|
347
347
|
/>
|
|
348
|
-
<UButton type="submit"
|
|
348
|
+
<UButton type="submit" :loading="busy">
|
|
349
349
|
{{ t('layout.accountTeam.email.connect') }}
|
|
350
350
|
</UButton>
|
|
351
351
|
</UForm>
|
|
@@ -47,12 +47,7 @@ const show = computed(() => showSetup.value || showPreset.value)
|
|
|
47
47
|
{{ t('layout.aiProvidersBanner.setup.body') }}
|
|
48
48
|
</p>
|
|
49
49
|
<div class="mt-4">
|
|
50
|
-
<UButton
|
|
51
|
-
color="warning"
|
|
52
|
-
variant="solid"
|
|
53
|
-
icon="i-lucide-settings"
|
|
54
|
-
@click="ui.openAiProviderSetup()"
|
|
55
|
-
>
|
|
50
|
+
<UButton color="warning" icon="i-lucide-settings" @click="ui.openAiProviderSetup()">
|
|
56
51
|
{{ t('layout.aiProvidersBanner.setup.action') }}
|
|
57
52
|
</UButton>
|
|
58
53
|
</div>
|
|
@@ -92,7 +87,6 @@ const show = computed(() => showSetup.value || showPreset.value)
|
|
|
92
87
|
<UButton
|
|
93
88
|
size="sm"
|
|
94
89
|
color="warning"
|
|
95
|
-
variant="solid"
|
|
96
90
|
icon="i-lucide-cpu"
|
|
97
91
|
@click="ui.openAiPresetMismatch()"
|
|
98
92
|
>
|
|
@@ -339,7 +339,7 @@ async function submitPrompt() {
|
|
|
339
339
|
>
|
|
340
340
|
{{ t('common.cancel') }}
|
|
341
341
|
</UButton>
|
|
342
|
-
<UButton type="submit"
|
|
342
|
+
<UButton type="submit" :loading="busy">
|
|
343
343
|
{{ prompt ? promptMeta[prompt].cta : '' }}
|
|
344
344
|
</UButton>
|
|
345
345
|
</div>
|
|
@@ -265,7 +265,6 @@ function dismissMenu(card: AreaCard): DropdownMenuItem[][] {
|
|
|
265
265
|
<div class="mt-4">
|
|
266
266
|
<UButton
|
|
267
267
|
:color="card.kind === 'outage' ? 'error' : 'warning'"
|
|
268
|
-
variant="solid"
|
|
269
268
|
icon="i-lucide-settings"
|
|
270
269
|
:data-testid="`infra-setup-configure-${card.area}`"
|
|
271
270
|
@click="AREA_META[card.area].onConfigure()"
|
|
@@ -400,7 +400,6 @@ const filteredGroups = computed<IntegrationGroup[]>(() => {
|
|
|
400
400
|
v-for="item in recommendedActions"
|
|
401
401
|
:key="`rec:${item.key}`"
|
|
402
402
|
size="xs"
|
|
403
|
-
color="primary"
|
|
404
403
|
variant="soft"
|
|
405
404
|
:icon="item.icon"
|
|
406
405
|
@click="item.onClick()"
|
|
@@ -450,7 +449,6 @@ const filteredGroups = computed<IntegrationGroup[]>(() => {
|
|
|
450
449
|
}}</span>
|
|
451
450
|
<UBadge
|
|
452
451
|
v-if="!anyConnected && item.recommended && !item.connected"
|
|
453
|
-
color="primary"
|
|
454
452
|
variant="subtle"
|
|
455
453
|
size="sm"
|
|
456
454
|
>
|
|
@@ -225,12 +225,7 @@ const filteredGroups = computed<ProviderGroup[]>(() => {
|
|
|
225
225
|
<span v-else class="text-2xs text-dimmed">{{
|
|
226
226
|
t('layout.modelProvidersHub.status.notConnected')
|
|
227
227
|
}}</span>
|
|
228
|
-
<UBadge
|
|
229
|
-
v-if="!anyConnected && item.recommended"
|
|
230
|
-
color="primary"
|
|
231
|
-
variant="subtle"
|
|
232
|
-
size="sm"
|
|
233
|
-
>
|
|
228
|
+
<UBadge v-if="!anyConnected && item.recommended" variant="subtle" size="sm">
|
|
234
229
|
{{ t('layout.modelProvidersHub.status.recommended') }}
|
|
235
230
|
</UBadge>
|
|
236
231
|
</div>
|
|
@@ -234,7 +234,6 @@ function memberLabel(userId: string, name?: string | null, email?: string | null
|
|
|
234
234
|
<USelect v-model="addRole" :items="ROLE_ITEMS" value-key="value" class="w-32" />
|
|
235
235
|
<UButton
|
|
236
236
|
type="submit"
|
|
237
|
-
color="primary"
|
|
238
237
|
icon="i-lucide-user-plus"
|
|
239
238
|
:loading="busy"
|
|
240
239
|
:disabled="!addUserId"
|
|
@@ -427,7 +427,6 @@ function openTestReport() {
|
|
|
427
427
|
<UBadge
|
|
428
428
|
:color="DISPOSITION_COLOR[disposition]"
|
|
429
429
|
variant="subtle"
|
|
430
|
-
size="md"
|
|
431
430
|
data-testid="outcome-disposition"
|
|
432
431
|
:data-disposition="disposition"
|
|
433
432
|
>
|
|
@@ -535,7 +534,6 @@ function openTestReport() {
|
|
|
535
534
|
<UBadge
|
|
536
535
|
v-if="outcome.requirements.regressions > 0"
|
|
537
536
|
color="error"
|
|
538
|
-
variant="solid"
|
|
539
537
|
size="sm"
|
|
540
538
|
icon="i-lucide-triangle-alert"
|
|
541
539
|
data-testid="outcome-regressions"
|
|
@@ -780,7 +778,6 @@ function openTestReport() {
|
|
|
780
778
|
target="_blank"
|
|
781
779
|
rel="noopener"
|
|
782
780
|
external
|
|
783
|
-
color="primary"
|
|
784
781
|
variant="soft"
|
|
785
782
|
size="xs"
|
|
786
783
|
class="mt-1.5"
|
|
@@ -614,7 +614,6 @@ async function copyOutput() {
|
|
|
614
614
|
</p>
|
|
615
615
|
<UButton
|
|
616
616
|
class="mt-3"
|
|
617
|
-
color="primary"
|
|
618
617
|
size="sm"
|
|
619
618
|
:icon="parkPresentation.icon"
|
|
620
619
|
data-testid="dedicated-park-open"
|
|
@@ -899,7 +898,6 @@ async function copyOutput() {
|
|
|
899
898
|
{{ t('common.cancel') }}
|
|
900
899
|
</UButton>
|
|
901
900
|
<UButton
|
|
902
|
-
color="primary"
|
|
903
901
|
size="xs"
|
|
904
902
|
data-testid="step-review-comment-add"
|
|
905
903
|
:disabled="!draftBody.trim()"
|
|
@@ -962,7 +960,6 @@ async function copyOutput() {
|
|
|
962
960
|
class="space-y-2 border-t border-default px-4 pt-3 pb-[calc(0.75rem+env(safe-area-inset-bottom))]"
|
|
963
961
|
>
|
|
964
962
|
<UButton
|
|
965
|
-
color="primary"
|
|
966
963
|
size="sm"
|
|
967
964
|
icon="i-lucide-check"
|
|
968
965
|
block
|
|
@@ -988,7 +985,6 @@ async function copyOutput() {
|
|
|
988
985
|
class="space-y-2 border-t border-default px-4 pt-3 pb-[calc(0.75rem+env(safe-area-inset-bottom))]"
|
|
989
986
|
>
|
|
990
987
|
<UButton
|
|
991
|
-
color="primary"
|
|
992
988
|
data-testid="step-approve"
|
|
993
989
|
size="sm"
|
|
994
990
|
icon="i-lucide-check"
|
|
@@ -1001,7 +997,6 @@ async function copyOutput() {
|
|
|
1001
997
|
</UButton>
|
|
1002
998
|
<UButton
|
|
1003
999
|
v-if="proposalEditableNow"
|
|
1004
|
-
color="primary"
|
|
1005
1000
|
variant="soft"
|
|
1006
1001
|
size="sm"
|
|
1007
1002
|
icon="i-lucide-pencil"
|
|
@@ -60,7 +60,7 @@ function addTask() {
|
|
|
60
60
|
>
|
|
61
61
|
<template #actions>
|
|
62
62
|
<ReviewDebtBadge />
|
|
63
|
-
<UButton size="xs" variant="soft"
|
|
63
|
+
<UButton size="xs" variant="soft" icon="i-lucide-plus" @click="addTask">
|
|
64
64
|
{{ t('inspector.container.addTask') }}
|
|
65
65
|
</UButton>
|
|
66
66
|
</template>
|
|
@@ -238,7 +238,6 @@ onUnmounted(() => preview.stopPolling(props.block.id))
|
|
|
238
238
|
<UButton
|
|
239
239
|
size="xs"
|
|
240
240
|
variant="soft"
|
|
241
|
-
color="primary"
|
|
242
241
|
icon="i-lucide-wand-sparkles"
|
|
243
242
|
:loading="detecting"
|
|
244
243
|
data-testid="frontend-detect-button"
|
|
@@ -285,7 +284,6 @@ onUnmounted(() => preview.stopPolling(props.block.id))
|
|
|
285
284
|
<UButton
|
|
286
285
|
size="xs"
|
|
287
286
|
variant="soft"
|
|
288
|
-
color="primary"
|
|
289
287
|
icon="i-lucide-check"
|
|
290
288
|
data-testid="frontend-detect-apply"
|
|
291
289
|
@click="applyDetection"
|
|
@@ -627,7 +625,6 @@ onUnmounted(() => preview.stopPolling(props.block.id))
|
|
|
627
625
|
rel="noopener"
|
|
628
626
|
size="xs"
|
|
629
627
|
variant="soft"
|
|
630
|
-
color="primary"
|
|
631
628
|
trailing-icon="i-lucide-external-link"
|
|
632
629
|
data-testid="preview-url"
|
|
633
630
|
>
|
|
@@ -640,7 +637,6 @@ onUnmounted(() => preview.stopPolling(props.block.id))
|
|
|
640
637
|
v-if="previewStatus === 'stopped' || previewStatus === 'failed'"
|
|
641
638
|
size="xs"
|
|
642
639
|
variant="soft"
|
|
643
|
-
color="primary"
|
|
644
640
|
icon="i-lucide-play"
|
|
645
641
|
:loading="previewBusy"
|
|
646
642
|
data-testid="preview-start"
|