@cat-factory/app 0.310.1 → 0.310.3
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 +23 -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 +2 -9
- 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/foundational/FoundationalServiceCatalogList.vue +2 -0
- package/app/components/foundational/FoundationalServiceRegistry.vue +9 -2
- package/app/components/foundational/FoundationalServiceSources.vue +2 -0
- package/app/components/foundational/FoundationalSuppressions.vue +1 -0
- package/app/components/fragments/FragmentLibraryManager.vue +4 -0
- 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 +3 -3
- package/app/components/guidedReview/GuidedReviewDraftCard.vue +17 -5
- package/app/components/guidedReview/GuidedReviewModal.vue +1 -0
- package/app/components/guidedReview/GuidedReviewOverview.vue +1 -0
- package/app/components/guidedReview/GuidedReviewPicker.vue +0 -1
- package/app/components/guidedReview/GuidedReviewThread.vue +0 -2
- package/app/components/humanTest/HumanTestWindow.vue +3 -3
- package/app/components/initiative/InitiativePlanDecision.vue +0 -1
- package/app/components/initiative/InitiativePlanReview.vue +0 -1
- package/app/components/initiative/InitiativePlanningWindow.vue +2 -3
- package/app/components/initiative/InitiativeTrackerWindow.vue +1 -1
- package/app/components/inputGate/InputGateNotice.vue +0 -1
- package/app/components/judge/JudgeResultView.vue +1 -1
- package/app/components/layout/AccountDeploymentSettings.vue +13 -43
- 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 +4 -4
- 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 +2 -5
- package/app/components/panels/DecisionModal.vue +0 -1
- package/app/components/panels/InspectorPanel.vue +1 -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 +2 -9
- 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 +1 -2
- package/app/components/panels/inspector/ServiceTestingContext.vue +0 -1
- package/app/components/panels/inspector/ServiceValidationConfig.vue +1 -2
- package/app/components/panels/inspector/TaskExecution.vue +1 -5
- 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 +2 -11
- package/app/components/pipeline/PipelineHealthModal.vue +2 -6
- 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/provisioning/ProvisioningLogsDrawer.vue +1 -0
- package/app/components/requirements/RequirementsReviewWindow.vue +0 -7
- package/app/components/sandbox/SandboxPanel.vue +1 -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 +2 -2
- 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 +2 -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/ToolServerChecklist.vue +1 -1
- 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/skills/SkillLibraryManager.vue +2 -0
- package/app/components/slack/SlackPanel.vue +1 -5
- 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 +2 -9
- package/app/components/testing/TestReportWindow.vue +2 -0
- 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 +1 -1
- package/app/pages/index.vue +1 -1
- package/package.json +1 -1
|
@@ -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"
|
|
@@ -259,7 +257,7 @@ async function saveMapping() {
|
|
|
259
257
|
</span>
|
|
260
258
|
<UButton
|
|
261
259
|
color="error"
|
|
262
|
-
variant="
|
|
260
|
+
variant="soft"
|
|
263
261
|
size="xs"
|
|
264
262
|
icon="i-lucide-unplug"
|
|
265
263
|
@click="disconnect"
|
|
@@ -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">
|
|
@@ -199,7 +193,7 @@ async function toggleEnabled(enabled: boolean) {
|
|
|
199
193
|
<UButton
|
|
200
194
|
v-if="connected"
|
|
201
195
|
color="error"
|
|
202
|
-
variant="
|
|
196
|
+
variant="soft"
|
|
203
197
|
icon="i-lucide-unplug"
|
|
204
198
|
@click="disconnect"
|
|
205
199
|
>
|
|
@@ -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"
|
|
@@ -438,6 +438,7 @@ const GROUP_STATUS_META: Record<ScenarioGroup['status'], { icon: string; text: s
|
|
|
438
438
|
</p>
|
|
439
439
|
<template v-if="infraSetup.logs">
|
|
440
440
|
<UButton
|
|
441
|
+
color="neutral"
|
|
441
442
|
:icon="showInfraSetupLogs ? 'i-lucide-chevron-up' : 'i-lucide-scroll-text'"
|
|
442
443
|
variant="ghost"
|
|
443
444
|
size="xs"
|
|
@@ -476,6 +477,7 @@ const GROUP_STATUS_META: Record<ScenarioGroup['status'], { icon: string; text: s
|
|
|
476
477
|
|
|
477
478
|
<div v-if="executionId">
|
|
478
479
|
<UButton
|
|
480
|
+
color="neutral"
|
|
479
481
|
:icon="showProvisioning ? 'i-lucide-chevron-up' : 'i-lucide-scroll-text'"
|
|
480
482
|
variant="ghost"
|
|
481
483
|
size="xs"
|
|
@@ -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
|
>
|
|
@@ -406,6 +406,7 @@ watch(pendingUpload, async (file) => {
|
|
|
406
406
|
{{ t('visualConfirm.requestFix.foldedHint') }}
|
|
407
407
|
</span>
|
|
408
408
|
<UButton
|
|
409
|
+
variant="soft"
|
|
409
410
|
size="sm"
|
|
410
411
|
color="warning"
|
|
411
412
|
icon="i-lucide-wrench"
|
|
@@ -490,7 +491,6 @@ watch(pendingUpload, async (file) => {
|
|
|
490
491
|
{{ t('visualConfirm.recapture') }}
|
|
491
492
|
</UButton>
|
|
492
493
|
<UButton
|
|
493
|
-
color="primary"
|
|
494
494
|
icon="i-lucide-circle-check"
|
|
495
495
|
:loading="busy"
|
|
496
496
|
:disabled="!canApprove || !access.canExecuteRuns.value"
|
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.3",
|
|
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",
|