@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
|
@@ -86,7 +86,7 @@ function backToApp() {
|
|
|
86
86
|
<p class="mb-6 text-sm text-muted">
|
|
87
87
|
{{ t('settings.toolServers.oauth.callback.doneHint') }}
|
|
88
88
|
</p>
|
|
89
|
-
<UButton block
|
|
89
|
+
<UButton block @click="backToApp">
|
|
90
90
|
{{ t('settings.toolServers.oauth.callback.back') }}
|
|
91
91
|
</UButton>
|
|
92
92
|
</template>
|
|
@@ -365,13 +365,7 @@ async function save() {
|
|
|
365
365
|
</template>
|
|
366
366
|
</i18n-t>
|
|
367
367
|
</p>
|
|
368
|
-
<UButton
|
|
369
|
-
icon="i-lucide-plus"
|
|
370
|
-
color="primary"
|
|
371
|
-
size="sm"
|
|
372
|
-
class="shrink-0"
|
|
373
|
-
@click="startCreate"
|
|
374
|
-
>
|
|
368
|
+
<UButton icon="i-lucide-plus" size="sm" class="shrink-0" @click="startCreate">
|
|
375
369
|
{{ t('settings.modelConfiguration.list.newPreset') }}
|
|
376
370
|
</UButton>
|
|
377
371
|
</div>
|
|
@@ -388,7 +382,7 @@ async function save() {
|
|
|
388
382
|
>
|
|
389
383
|
<div class="flex items-center gap-2">
|
|
390
384
|
<span class="truncate text-sm font-semibold text-app-100">{{ p.name }}</span>
|
|
391
|
-
<UBadge v-if="p.isDefault"
|
|
385
|
+
<UBadge v-if="p.isDefault" variant="subtle" size="xs">
|
|
392
386
|
{{ t('settings.modelConfiguration.list.default') }}
|
|
393
387
|
</UBadge>
|
|
394
388
|
<div class="ms-auto flex items-center gap-1">
|
|
@@ -483,7 +477,6 @@ async function save() {
|
|
|
483
477
|
>
|
|
484
478
|
<UButton
|
|
485
479
|
size="sm"
|
|
486
|
-
color="primary"
|
|
487
480
|
variant="subtle"
|
|
488
481
|
trailing-icon="i-lucide-chevron-down"
|
|
489
482
|
class="w-full justify-between"
|
|
@@ -576,7 +569,7 @@ async function save() {
|
|
|
576
569
|
>
|
|
577
570
|
{{ t('common.cancel') }}
|
|
578
571
|
</UButton>
|
|
579
|
-
<UButton
|
|
572
|
+
<UButton size="sm" :loading="busy" @click="save">
|
|
580
573
|
{{
|
|
581
574
|
editor.id
|
|
582
575
|
? t('settings.modelConfiguration.editor.saveChanges')
|
|
@@ -87,7 +87,6 @@ const reseedableCount = computed(
|
|
|
87
87
|
</div>
|
|
88
88
|
<UButton
|
|
89
89
|
size="xs"
|
|
90
|
-
color="primary"
|
|
91
90
|
variant="subtle"
|
|
92
91
|
icon="i-lucide-plus"
|
|
93
92
|
:loading="isBusy(i.id)"
|
|
@@ -130,7 +129,6 @@ const reseedableCount = computed(
|
|
|
130
129
|
</div>
|
|
131
130
|
<UButton
|
|
132
131
|
size="xs"
|
|
133
|
-
color="primary"
|
|
134
132
|
variant="subtle"
|
|
135
133
|
icon="i-lucide-rotate-ccw"
|
|
136
134
|
:loading="isBusy(i.id)"
|
|
@@ -149,7 +147,6 @@ const reseedableCount = computed(
|
|
|
149
147
|
<div class="flex w-full items-center justify-between gap-2">
|
|
150
148
|
<UButton
|
|
151
149
|
v-if="reseedableCount > 1"
|
|
152
|
-
color="primary"
|
|
153
150
|
variant="ghost"
|
|
154
151
|
icon="i-lucide-rotate-ccw"
|
|
155
152
|
:loading="anyBusy"
|
|
@@ -332,7 +332,6 @@ function manageKeys() {
|
|
|
332
332
|
</UButton>
|
|
333
333
|
<UButton
|
|
334
334
|
v-if="recommendedAvailable.length"
|
|
335
|
-
color="primary"
|
|
336
335
|
variant="soft"
|
|
337
336
|
size="sm"
|
|
338
337
|
icon="i-lucide-sparkles"
|
|
@@ -397,14 +396,7 @@ function manageKeys() {
|
|
|
397
396
|
<span class="text-xs text-dimmed">{{
|
|
398
397
|
t('settings.openRouterCatalog.enabledCount', { count: selectedCount }, selectedCount)
|
|
399
398
|
}}</span>
|
|
400
|
-
<UButton
|
|
401
|
-
color="primary"
|
|
402
|
-
variant="soft"
|
|
403
|
-
size="sm"
|
|
404
|
-
icon="i-lucide-save"
|
|
405
|
-
:loading="busy"
|
|
406
|
-
@click="save()"
|
|
407
|
-
>
|
|
399
|
+
<UButton variant="soft" size="sm" icon="i-lucide-save" :loading="busy" @click="save()">
|
|
408
400
|
{{ t('common.save') }}
|
|
409
401
|
</UButton>
|
|
410
402
|
</div>
|
|
@@ -506,13 +506,7 @@ function fieldHelp(key: string): string | undefined {
|
|
|
506
506
|
<ConnectionWarnings :warnings="testResult?.warnings" />
|
|
507
507
|
|
|
508
508
|
<div class="flex justify-end">
|
|
509
|
-
<UButton
|
|
510
|
-
color="primary"
|
|
511
|
-
size="sm"
|
|
512
|
-
:loading="busy"
|
|
513
|
-
:disabled="!canSave"
|
|
514
|
-
@click="saveNative()"
|
|
515
|
-
>
|
|
509
|
+
<UButton size="sm" :loading="busy" :disabled="!canSave" @click="saveNative()">
|
|
516
510
|
{{ connection ? t('common.save') : t('settings.providerConnection.form.connect') }}
|
|
517
511
|
</UButton>
|
|
518
512
|
</div>
|
|
@@ -130,7 +130,7 @@ const deleteBlocked = computed(
|
|
|
130
130
|
>
|
|
131
131
|
{{ t('settings.riskPolicy.makeUnattendedDefaultShort') }}
|
|
132
132
|
</UButton>
|
|
133
|
-
<UBadge v-if="policy.isDefault"
|
|
133
|
+
<UBadge v-if="policy.isDefault" variant="subtle" size="sm">
|
|
134
134
|
{{ t('settings.riskPolicy.default') }}
|
|
135
135
|
</UBadge>
|
|
136
136
|
<UButton
|
|
@@ -314,7 +314,6 @@ const deleteBlocked = computed(
|
|
|
314
314
|
"
|
|
315
315
|
/>
|
|
316
316
|
<UButton
|
|
317
|
-
color="primary"
|
|
318
317
|
variant="soft"
|
|
319
318
|
size="xs"
|
|
320
319
|
icon="i-lucide-save"
|
|
@@ -78,7 +78,6 @@ const reseedableCount = computed(
|
|
|
78
78
|
</div>
|
|
79
79
|
<UButton
|
|
80
80
|
size="xs"
|
|
81
|
-
color="primary"
|
|
82
81
|
variant="subtle"
|
|
83
82
|
icon="i-lucide-plus"
|
|
84
83
|
:loading="isBusy(i.id)"
|
|
@@ -121,7 +120,6 @@ const reseedableCount = computed(
|
|
|
121
120
|
</div>
|
|
122
121
|
<UButton
|
|
123
122
|
size="xs"
|
|
124
|
-
color="primary"
|
|
125
123
|
variant="subtle"
|
|
126
124
|
icon="i-lucide-rotate-ccw"
|
|
127
125
|
:loading="isBusy(i.id)"
|
|
@@ -140,7 +138,6 @@ const reseedableCount = computed(
|
|
|
140
138
|
<div class="flex w-full items-center justify-between gap-2">
|
|
141
139
|
<UButton
|
|
142
140
|
v-if="reseedableCount > 1"
|
|
143
|
-
color="primary"
|
|
144
141
|
variant="ghost"
|
|
145
142
|
icon="i-lucide-rotate-ccw"
|
|
146
143
|
:loading="anyBusy"
|
|
@@ -81,7 +81,6 @@ function remove(id: string) {
|
|
|
81
81
|
<UBadge
|
|
82
82
|
v-for="f in selected"
|
|
83
83
|
:key="f.id"
|
|
84
|
-
color="primary"
|
|
85
84
|
variant="subtle"
|
|
86
85
|
size="sm"
|
|
87
86
|
class="cursor-pointer"
|
|
@@ -100,7 +99,6 @@ function remove(id: string) {
|
|
|
100
99
|
{{ t('settings.serviceFragmentDefaults.footer.question') }}
|
|
101
100
|
</span>
|
|
102
101
|
<UButton
|
|
103
|
-
color="primary"
|
|
104
102
|
variant="link"
|
|
105
103
|
class="p-0 text-2xs font-medium text-primary hover:underline"
|
|
106
104
|
@click="ui.openFragmentLibrary()"
|
|
@@ -108,7 +106,6 @@ function remove(id: string) {
|
|
|
108
106
|
{{ t('settings.serviceFragmentDefaults.footer.manageBoard') }}
|
|
109
107
|
</UButton>
|
|
110
108
|
<UButton
|
|
111
|
-
color="primary"
|
|
112
109
|
variant="link"
|
|
113
110
|
class="p-0 text-2xs font-medium text-primary hover:underline"
|
|
114
111
|
@click="ui.openAccountSettings('fragments')"
|
|
@@ -242,13 +242,7 @@ async function remove() {
|
|
|
242
242
|
/>
|
|
243
243
|
|
|
244
244
|
<div class="flex justify-end">
|
|
245
|
-
<UButton
|
|
246
|
-
color="primary"
|
|
247
|
-
size="sm"
|
|
248
|
-
:loading="busy"
|
|
249
|
-
:disabled="!buildPayload()"
|
|
250
|
-
@click="save()"
|
|
251
|
-
>
|
|
245
|
+
<UButton size="sm" :loading="busy" :disabled="!buildPayload()" @click="save()">
|
|
252
246
|
{{ status ? t('common.save') : t('settings.userSecrets.addToken') }}
|
|
253
247
|
</UButton>
|
|
254
248
|
</div>
|
|
@@ -706,13 +706,7 @@ async function save() {
|
|
|
706
706
|
</section>
|
|
707
707
|
|
|
708
708
|
<div class="flex justify-end">
|
|
709
|
-
<UButton
|
|
710
|
-
color="primary"
|
|
711
|
-
icon="i-lucide-save"
|
|
712
|
-
size="sm"
|
|
713
|
-
:loading="saving"
|
|
714
|
-
@click="save"
|
|
715
|
-
>
|
|
709
|
+
<UButton icon="i-lucide-save" size="sm" :loading="saving" @click="save">
|
|
716
710
|
{{ t('common.save') }}
|
|
717
711
|
</UButton>
|
|
718
712
|
</div>
|
|
@@ -219,7 +219,6 @@ async function saveMapping() {
|
|
|
219
219
|
<div v-if="!slack.connected" class="space-y-3 rounded-lg border border-muted p-3">
|
|
220
220
|
<UButton
|
|
221
221
|
v-if="slack.oauthEnabled"
|
|
222
|
-
color="primary"
|
|
223
222
|
icon="i-lucide-slack"
|
|
224
223
|
:loading="connectingOAuth"
|
|
225
224
|
@click="connectViaOAuth"
|
|
@@ -233,7 +232,6 @@ async function saveMapping() {
|
|
|
233
232
|
<div class="flex gap-2">
|
|
234
233
|
<SecretInput v-model="tokenInput" size="sm" class="flex-1" placeholder="xoxb-…" />
|
|
235
234
|
<UButton
|
|
236
|
-
color="primary"
|
|
237
235
|
variant="soft"
|
|
238
236
|
size="sm"
|
|
239
237
|
:loading="slack.connecting"
|
|
@@ -302,7 +300,6 @@ async function saveMapping() {
|
|
|
302
300
|
|
|
303
301
|
<div class="flex justify-end">
|
|
304
302
|
<UButton
|
|
305
|
-
color="primary"
|
|
306
303
|
variant="soft"
|
|
307
304
|
size="xs"
|
|
308
305
|
icon="i-lucide-save"
|
|
@@ -365,7 +362,6 @@ async function saveMapping() {
|
|
|
365
362
|
{{ t('slack.members.add') }}
|
|
366
363
|
</UButton>
|
|
367
364
|
<UButton
|
|
368
|
-
color="primary"
|
|
369
365
|
variant="soft"
|
|
370
366
|
size="xs"
|
|
371
367
|
icon="i-lucide-save"
|
|
@@ -345,7 +345,6 @@ const STATUS_KEYS: Record<BugHuntAnalysisStatus, string> = {
|
|
|
345
345
|
<UButton
|
|
346
346
|
v-for="choice in addableSources"
|
|
347
347
|
:key="choice.source"
|
|
348
|
-
color="primary"
|
|
349
348
|
variant="soft"
|
|
350
349
|
:icon="choice.icon"
|
|
351
350
|
@click="addSource(choice.source)"
|
|
@@ -479,7 +478,6 @@ const STATUS_KEYS: Record<BugHuntAnalysisStatus, string> = {
|
|
|
479
478
|
|
|
480
479
|
<div class="flex items-center gap-2">
|
|
481
480
|
<UButton
|
|
482
|
-
color="primary"
|
|
483
481
|
icon="i-lucide-radar"
|
|
484
482
|
:loading="hunt.hunting"
|
|
485
483
|
:disabled="!canHunt"
|
|
@@ -565,7 +563,6 @@ const STATUS_KEYS: Record<BugHuntAnalysisStatus, string> = {
|
|
|
565
563
|
{{ t('bugHunt.recommended') }}
|
|
566
564
|
</UBadge>
|
|
567
565
|
<UButton
|
|
568
|
-
color="primary"
|
|
569
566
|
variant="soft"
|
|
570
567
|
icon="i-lucide-play"
|
|
571
568
|
size="xs"
|
|
@@ -133,7 +133,6 @@ async function doSpawnEpic() {
|
|
|
133
133
|
<UButton
|
|
134
134
|
v-for="choice in addableSources"
|
|
135
135
|
:key="choice.source"
|
|
136
|
-
color="primary"
|
|
137
136
|
variant="soft"
|
|
138
137
|
:icon="choice.icon"
|
|
139
138
|
@click="ui.openTaskConnect(choice.source)"
|
|
@@ -197,7 +196,6 @@ async function doSpawnEpic() {
|
|
|
197
196
|
/>
|
|
198
197
|
</UFormField>
|
|
199
198
|
<UButton
|
|
200
|
-
color="primary"
|
|
201
199
|
variant="soft"
|
|
202
200
|
icon="i-lucide-layers"
|
|
203
201
|
:loading="importing"
|
|
@@ -140,13 +140,7 @@ async function toggleEnabled(enabled: boolean) {
|
|
|
140
140
|
<div v-else-if="!connected" class="space-y-3">
|
|
141
141
|
<!-- OAuth source (Linear): the redirect button, with the manual key form below. -->
|
|
142
142
|
<template v-if="oauth">
|
|
143
|
-
<UButton
|
|
144
|
-
block
|
|
145
|
-
color="primary"
|
|
146
|
-
icon="i-lucide-plug"
|
|
147
|
-
:loading="oauthStarting"
|
|
148
|
-
@click="startOAuth"
|
|
149
|
-
>
|
|
143
|
+
<UButton block icon="i-lucide-plug" :loading="oauthStarting" @click="startOAuth">
|
|
150
144
|
{{ t('tasks.connect.oauthButton', { label: descriptor.label }) }}
|
|
151
145
|
</UButton>
|
|
152
146
|
<p class="text-center text-2xs text-dimmed">
|
|
@@ -208,7 +202,6 @@ async function toggleEnabled(enabled: boolean) {
|
|
|
208
202
|
<div v-else />
|
|
209
203
|
<UButton
|
|
210
204
|
v-if="!credentialless"
|
|
211
|
-
color="primary"
|
|
212
205
|
icon="i-lucide-plug"
|
|
213
206
|
:loading="saving"
|
|
214
207
|
:disabled="!canSubmit"
|
|
@@ -118,7 +118,6 @@ const statusColor = (row: TutorialCatalogueRow) =>
|
|
|
118
118
|
</div>
|
|
119
119
|
<UButton
|
|
120
120
|
size="sm"
|
|
121
|
-
color="primary"
|
|
122
121
|
:variant="row.state === 'completed' ? 'soft' : 'solid'"
|
|
123
122
|
:disabled="!row.startable"
|
|
124
123
|
:data-testid="`tutorial-catalogue-start-${row.tour.id}`"
|
|
@@ -636,7 +636,6 @@ onUnmounted(() => {
|
|
|
636
636
|
<p class="mt-0.5 text-xs text-muted">{{ t(nextTour.descriptionKey) }}</p>
|
|
637
637
|
<UButton
|
|
638
638
|
size="xs"
|
|
639
|
-
color="primary"
|
|
640
639
|
variant="soft"
|
|
641
640
|
class="mt-2"
|
|
642
641
|
data-testid="tutorial-next-tour-start"
|
|
@@ -671,7 +670,6 @@ onUnmounted(() => {
|
|
|
671
670
|
<UButton
|
|
672
671
|
v-if="step.advanceOn !== 'target-click' || isLast"
|
|
673
672
|
size="xs"
|
|
674
|
-
color="primary"
|
|
675
673
|
data-testid="tutorial-next"
|
|
676
674
|
@click="advance('nav-control')"
|
|
677
675
|
>
|
package/app/pages/index.vue
CHANGED
|
@@ -560,7 +560,7 @@ watch(
|
|
|
560
560
|
<UIcon name="i-lucide-plug-zap" class="mx-auto mb-3 h-10 w-10 text-app-warning-400" />
|
|
561
561
|
<h1 class="mb-1 text-lg font-semibold">{{ $t('app.backendUnreachable') }}</h1>
|
|
562
562
|
<p class="mb-4 text-sm text-muted">{{ workspace.error }}</p>
|
|
563
|
-
<UButton
|
|
563
|
+
<UButton icon="i-lucide-rotate-ccw" @click="workspace.init()">
|
|
564
564
|
{{ $t('common.retry') }}
|
|
565
565
|
</UButton>
|
|
566
566
|
</div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/app",
|
|
3
|
-
"version": "0.310.
|
|
3
|
+
"version": "0.310.2",
|
|
4
4
|
"description": "Reusable Nuxt layer for the Agent Architecture Board SPA (components, stores, composables, pages). Consume it from a thin deployment app via `extends: ['@cat-factory/app']` and point it at your backend with NUXT_PUBLIC_API_BASE. See deploy/frontend for an example.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"access": "public"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@cat-factory/contracts": "0.
|
|
21
|
+
"@cat-factory/contracts": "0.364.0",
|
|
22
22
|
"@modular-frontend/core": "0.6.0",
|
|
23
23
|
"@modular-vue/core": "^1.5.0",
|
|
24
24
|
"@modular-vue/journeys": "^1.4.0",
|