@cat-factory/app 0.302.1 → 0.303.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -0
- package/app/app.config.ts +19 -10
- package/app/assets/css/main.css +13 -13
- package/app/assets/css/prose.css +22 -22
- package/app/assets/css/tokens.css +298 -0
- package/app/components/assistant/AssistantModal.vue +22 -22
- package/app/components/auth/AuthGate.vue +1 -1
- package/app/components/auth/BackendMisconfiguredScreen.vue +10 -10
- package/app/components/auth/LoginScreen.vue +34 -36
- package/app/components/auth/ResetPasswordScreen.vue +12 -12
- package/app/components/auth/UserMenu.vue +4 -4
- package/app/components/binaryCandidates/BinaryCandidatesWindow.vue +27 -25
- package/app/components/binaryOutput/BinaryOutputReport.vue +15 -15
- package/app/components/binaryOutput/StoredAssetView.vue +5 -5
- package/app/components/board/AddTaskModal.vue +17 -20
- package/app/components/board/AgentFailureCard.vue +11 -11
- package/app/components/board/AgentFailureHistory.vue +2 -2
- package/app/components/board/BoardCanvas.vue +6 -5
- package/app/components/board/CreateInitiativeModal.vue +8 -10
- package/app/components/board/DependencyConnectOverlay.vue +1 -1
- package/app/components/board/FailureHistoryList.vue +7 -7
- package/app/components/board/RecurringPipelineModal.vue +17 -17
- package/app/components/board/ReviewFrictionDialog.vue +6 -6
- package/app/components/board/StepExecutionHistory.vue +13 -13
- package/app/components/board/TaskDependencyEdges.vue +8 -8
- package/app/components/board/nodes/AgentChip.vue +10 -10
- package/app/components/board/nodes/BlockNode.vue +29 -29
- package/app/components/board/nodes/DecisionBadge.vue +2 -2
- package/app/components/board/nodes/EpicNode.vue +14 -10
- package/app/components/board/nodes/FrameSwimlanes.vue +7 -9
- package/app/components/board/nodes/InitiativeCard.vue +8 -8
- package/app/components/board/nodes/LaneGroup.vue +1 -1
- package/app/components/board/nodes/LaneTask.vue +2 -2
- package/app/components/board/nodes/ResizeGrips.vue +4 -4
- package/app/components/board/nodes/TaskCard.vue +18 -18
- package/app/components/board/nodes/TaskLane.vue +5 -5
- package/app/components/board/nodes/TaskPipelineMini.vue +18 -18
- package/app/components/bootstrap/AdoptionReviewModal.vue +29 -26
- package/app/components/bootstrap/BootstrapModal.vue +21 -23
- package/app/components/bootstrap/BootstrapRunSteps.vue +1 -1
- package/app/components/brainstorm/BrainstormWindow.vue +30 -33
- package/app/components/bugFishing/BugFishingWindow.vue +49 -49
- package/app/components/clarity/ClarityReviewWindow.vue +30 -30
- package/app/components/common/AsyncViewError.vue +5 -5
- package/app/components/common/ClarificationItem.vue +8 -13
- package/app/components/common/ConfirmDialog.vue +4 -2
- package/app/components/common/DescriptorFields.vue +1 -1
- package/app/components/common/EmptyState.vue +3 -3
- package/app/components/common/InterviewGateNotice.vue +7 -7
- package/app/components/common/KeyboardShortcutsHelp.vue +1 -1
- package/app/components/common/MarkdownProse.vue +14 -13
- package/app/components/consensus/ConsensusSessionWindow.vue +26 -26
- package/app/components/context/ContextAttachmentFields.vue +17 -17
- package/app/components/docs/DocInterviewWindow.vue +14 -14
- package/app/components/documents/ContextDocumentPicker.vue +17 -17
- package/app/components/documents/DocumentImportModal.vue +7 -7
- package/app/components/documents/DocumentSourceConnectModal.vue +3 -3
- package/app/components/documents/DocumentSyncState.vue +5 -5
- package/app/components/documents/DocumentTemplatesModal.vue +15 -15
- package/app/components/documents/RepoContextDocPicker.vue +5 -5
- package/app/components/documents/SpawnPreviewModal.vue +12 -12
- package/app/components/documents/StartFromDesignModal.vue +11 -11
- package/app/components/documents/TaskContextDocs.vue +5 -5
- package/app/components/environments/EnvSetupStepper.vue +6 -6
- package/app/components/environments/EnvironmentStatusPanel.vue +17 -17
- package/app/components/environments/steps/EnvPickStep.vue +3 -3
- package/app/components/environments/steps/EnvPreflightStep.vue +9 -9
- package/app/components/environments/steps/EnvReviewStep.vue +25 -22
- package/app/components/environments/steps/EnvSaveStep.vue +7 -5
- package/app/components/environments/steps/JourneyStepNav.vue +1 -1
- package/app/components/focus/BlockFocusView.vue +17 -19
- package/app/components/followUp/FollowUpWindow.vue +23 -23
- package/app/components/forkDecision/ForkDecisionWindow.vue +37 -39
- package/app/components/foundational/FoundationalContractSummary.vue +7 -7
- package/app/components/foundational/FoundationalServiceCatalogList.vue +11 -11
- package/app/components/foundational/FoundationalServiceManager.vue +1 -1
- package/app/components/foundational/FoundationalServiceRegistry.vue +13 -13
- package/app/components/foundational/FoundationalServiceSources.vue +13 -13
- package/app/components/foundational/FoundationalSuppressions.vue +7 -7
- package/app/components/foundational/ServiceCatalogConnection.vue +10 -10
- package/app/components/fragments/FragmentLibraryManager.vue +41 -44
- package/app/components/fragments/FragmentSelector.vue +13 -13
- package/app/components/fragments/GitHubDocUrlImport.vue +1 -1
- package/app/components/gates/GateFailingCheckList.vue +5 -5
- package/app/components/gates/GateResultView.vue +50 -47
- package/app/components/github/AddServiceFromRepoModal.vue +14 -14
- package/app/components/github/BranchProtectionPreflight.vue +13 -13
- package/app/components/github/GitHubConnect.vue +7 -7
- package/app/components/github/GitHubOnboarding.vue +7 -7
- package/app/components/github/GitHubPanel.vue +37 -40
- package/app/components/github/RepoTreeBrowser.vue +18 -18
- package/app/components/humanTest/HumanTestWindow.vue +30 -33
- package/app/components/initiative/InitiativePlanNotice.vue +5 -5
- package/app/components/initiative/InitiativePlanReview.vue +27 -29
- package/app/components/initiative/InitiativePlanningWindow.vue +10 -10
- package/app/components/initiative/InitiativeTrackerWindow.vue +71 -65
- package/app/components/inputGate/InputGateNotice.vue +2 -4
- package/app/components/judge/JudgeResultView.vue +30 -32
- package/app/components/kaizen/KaizenPanel.vue +40 -36
- package/app/components/kaizen/KaizenStepStatus.vue +21 -21
- package/app/components/layout/AccountAuditLog.vue +10 -10
- package/app/components/layout/AccountDeploymentSettings.vue +20 -20
- package/app/components/layout/AccountFailureKindRules.vue +13 -13
- package/app/components/layout/AccountFoundationalSettings.vue +1 -1
- package/app/components/layout/AccountFragmentSettings.vue +1 -1
- package/app/components/layout/AccountModelPolicySettings.vue +9 -9
- package/app/components/layout/AccountPlatformAlertSettings.vue +11 -11
- package/app/components/layout/AccountRiskPolicySettings.vue +2 -2
- package/app/components/layout/AccountRunCredentialSettings.vue +5 -5
- package/app/components/layout/AccountSkillSettings.vue +1 -1
- package/app/components/layout/AccountTeamSettings.vue +23 -15
- package/app/components/layout/AiProvidersBanner.vue +11 -8
- package/app/components/layout/AppearanceSwitcher.vue +108 -0
- package/app/components/layout/BoardSwitcher.vue +8 -11
- package/app/components/layout/BoardToolbar.vue +3 -3
- package/app/components/layout/CommandBar.vue +7 -9
- package/app/components/layout/ConnectionStatusBanner.vue +2 -2
- package/app/components/layout/DefaultTestEnvBanner.vue +5 -5
- package/app/components/layout/GitHubPatBanner.vue +5 -5
- package/app/components/layout/GitHubPatPermissionsBanner.vue +16 -10
- package/app/components/layout/InfraSetupBanner.vue +6 -6
- package/app/components/layout/IntegrationsHub.vue +15 -15
- package/app/components/layout/LanguageSwitcher.vue +5 -5
- package/app/components/layout/ModelProvidersHub.vue +13 -16
- package/app/components/layout/NotificationsInbox.vue +10 -10
- package/app/components/layout/PersonalSetupModal.vue +8 -8
- package/app/components/layout/ProviderConfigBanner.vue +4 -4
- package/app/components/layout/RolePrompt.vue +7 -7
- package/app/components/layout/SideBar.vue +6 -4
- package/app/components/layout/SpendWarningBanner.vue +17 -14
- package/app/components/layout/TranslationWarningBanner.vue +4 -4
- package/app/components/layout/UiModeSwitcher.vue +13 -13
- package/app/components/layout/UiRoleSwitcher.vue +8 -8
- package/app/components/layout/WorkspaceMembersSettings.vue +15 -11
- package/app/components/media/ArtifactLightbox.vue +13 -13
- package/app/components/media/ImageCompare.vue +31 -24
- package/app/components/merge/MergeEffortChips.vue +2 -2
- package/app/components/notifications/NotificationSettingsPanel.vue +14 -12
- package/app/components/observability/OutcomeFilterChips.vue +6 -6
- package/app/components/observability/RunFailureSummary.vue +28 -25
- package/app/components/observability/StepMetricsBar.vue +26 -28
- package/app/components/observability/StepModelActivity.vue +2 -2
- package/app/components/observability/ToolCallList.vue +24 -24
- package/app/components/outcome/OutcomeSummaryWindow.vue +47 -47
- package/app/components/palettes/AgentPalette.vue +8 -8
- package/app/components/palettes/AgentTierSelect.vue +1 -1
- package/app/components/palettes/PipelinePurposeSelect.vue +1 -1
- package/app/components/panels/AgentStepDetail.vue +52 -51
- package/app/components/panels/AttemptEntryHeader.vue +4 -6
- package/app/components/panels/DecisionModal.vue +7 -7
- package/app/components/panels/GenericStructuredResultView.vue +7 -7
- package/app/components/panels/InspectorPanel.vue +17 -17
- package/app/components/panels/MergerResultView.vue +19 -19
- package/app/components/panels/ObservabilityPanel.vue +115 -123
- package/app/components/panels/OperatorDashboardPanel.vue +89 -97
- package/app/components/panels/ReportsPanel.vue +69 -66
- package/app/components/panels/ReportsSpendBreakdown.vue +9 -9
- package/app/components/panels/ResultWindowShell.vue +38 -38
- package/app/components/panels/RunDetailLoadState.vue +2 -2
- package/app/components/panels/StepContainerStatus.vue +9 -9
- package/app/components/panels/StepDelegatedStatus.logic.spec.ts +135 -0
- package/app/components/panels/StepDelegatedStatus.logic.ts +160 -0
- package/app/components/panels/StepDelegatedStatus.vue +181 -0
- package/app/components/panels/StepEffortReport.vue +16 -15
- package/app/components/panels/StepFragmentAdherence.vue +14 -10
- package/app/components/panels/StepMetadataCard.vue +74 -45
- package/app/components/panels/StepReproductionReport.vue +25 -21
- package/app/components/panels/StepRunMeta.vue +20 -20
- package/app/components/panels/StepTestReport.logic.spec.ts +8 -3
- package/app/components/panels/StepTestReport.logic.ts +4 -4
- package/app/components/panels/StepTestReport.vue +28 -28
- package/app/components/panels/StepToolServers.vue +14 -11
- package/app/components/panels/StepValidationReport.vue +7 -7
- package/app/components/panels/inspector/ContainerSummary.vue +9 -9
- package/app/components/panels/inspector/DocReferenceRepos.vue +3 -3
- package/app/components/panels/inspector/EnvProbeReport.vue +24 -27
- package/app/components/panels/inspector/EpicChildren.vue +8 -12
- package/app/components/panels/inspector/FrontendBindingsResolved.vue +11 -11
- package/app/components/panels/inspector/FrontendConfig.vue +37 -41
- package/app/components/panels/inspector/InitiativeInspector.vue +3 -3
- package/app/components/panels/inspector/InspectorSection.vue +6 -6
- package/app/components/panels/inspector/RecurringScheduleSettings.vue +16 -19
- package/app/components/panels/inspector/ServiceConnections.vue +2 -2
- package/app/components/panels/inspector/ServiceReleaseHealthConfig.vue +2 -2
- package/app/components/panels/inspector/ServiceSelfTests.vue +21 -17
- package/app/components/panels/inspector/ServiceTestConfig.vue +51 -59
- package/app/components/panels/inspector/ServiceTestSecrets.vue +5 -5
- package/app/components/panels/inspector/ServiceTestingContext.vue +3 -3
- package/app/components/panels/inspector/ServiceValidationConfig.vue +2 -2
- package/app/components/panels/inspector/TaskAgentConfig.vue +3 -3
- package/app/components/panels/inspector/TaskAprioriBranches.vue +8 -5
- package/app/components/panels/inspector/TaskDependencies.vue +1 -1
- package/app/components/panels/inspector/TaskEstimateBadge.vue +11 -11
- package/app/components/panels/inspector/TaskExecution.vue +17 -17
- package/app/components/panels/inspector/TaskReviewTarget.vue +2 -2
- package/app/components/panels/inspector/TaskRunSettings.vue +35 -37
- package/app/components/panels/inspector/TaskStructure.vue +3 -3
- package/app/components/pipeline/AgentKindIcon.vue +1 -1
- package/app/components/pipeline/AgentPromptEditor.vue +17 -17
- package/app/components/pipeline/BinaryOutputStepPicker.vue +42 -56
- package/app/components/pipeline/EstimateThresholdFields.vue +4 -4
- package/app/components/pipeline/GateConfigFields.vue +13 -10
- package/app/components/pipeline/IterationCapPrompt.vue +4 -2
- package/app/components/pipeline/PipelineBuilder.vue +47 -55
- package/app/components/pipeline/PipelineHealthModal.vue +27 -29
- package/app/components/pipeline/PipelinePicker.vue +10 -10
- package/app/components/pipeline/PipelinePreview.vue +10 -10
- package/app/components/pipeline/PipelineProgress.vue +64 -67
- package/app/components/prReview/PrReviewPhaseBadge.vue +7 -7
- package/app/components/prReview/PrReviewWindow.vue +75 -77
- package/app/components/providers/AiPresetMismatchDialog.vue +5 -5
- package/app/components/providers/AiProviderOnboardingModal.vue +9 -9
- package/app/components/providers/ApiKeysSection.vue +13 -13
- package/app/components/providers/PersonalCredentialModal.vue +2 -2
- package/app/components/providers/PersonalSubscriptionSection.vue +10 -10
- package/app/components/providers/SignInRequiredNotice.vue +1 -1
- package/app/components/providers/VendorCredentialsModal.vue +10 -10
- package/app/components/provisioning/ProvisioningLogsDrawer.vue +13 -13
- package/app/components/ralph/RalphLoopResultView.vue +28 -30
- package/app/components/recurring/RecurrenceEditor.vue +2 -2
- package/app/components/requirements/RequirementsReviewWindow.vue +51 -58
- package/app/components/riskPolicy/RiskPolicyPicker.vue +12 -15
- package/app/components/riskPolicy/RiskPolicyPreview.vue +14 -14
- package/app/components/sandbox/SandboxPanel.vue +58 -59
- package/app/components/settings/AccountSettingsPanel.vue +1 -1
- package/app/components/settings/ApiTokensPanel.vue +10 -10
- package/app/components/settings/BudgetSettings.vue +18 -22
- package/app/components/settings/CapabilityCredentialsPanel.vue +15 -15
- package/app/components/settings/CloudflareHandlerSection.vue +20 -20
- package/app/components/settings/ComposeEnvironmentSetupSection.vue +13 -13
- package/app/components/settings/ConnectionTestVerdict.vue +3 -3
- package/app/components/settings/ConnectionWarnings.vue +1 -1
- package/app/components/settings/ConsensusGroupsSection.vue +27 -35
- package/app/components/settings/CustomManifestTypeEditor.vue +10 -10
- package/app/components/settings/DefaultProvisionTypeSection.vue +6 -6
- package/app/components/settings/InfraHandlersConfigurator.vue +24 -22
- package/app/components/settings/InfrastructureBackendPicker.vue +6 -6
- package/app/components/settings/InfrastructureWindow.vue +5 -5
- package/app/components/settings/IssueTrackerPanel.vue +29 -23
- package/app/components/settings/KubernetesEngineForm.vue +11 -11
- package/app/components/settings/KubernetesEnvironmentForm.vue +4 -4
- package/app/components/settings/LocalContainerPoolSettings.vue +6 -11
- package/app/components/settings/LocalModelEndpointsPanel.vue +20 -18
- package/app/components/settings/McpAuthorizeScreen.vue +13 -15
- package/app/components/settings/McpOAuthCallbackScreen.vue +16 -10
- package/app/components/settings/MergeClassRulesEditor.vue +6 -9
- package/app/components/settings/MergeRolePolicyEditor.vue +16 -16
- package/app/components/settings/ModelConfigurationPanel.vue +23 -30
- package/app/components/settings/ModelPresetHealthModal.vue +15 -13
- package/app/components/settings/ObservabilityConnectionPanel.vue +4 -4
- package/app/components/settings/OpenRouterCatalogPanel.vue +23 -19
- package/app/components/settings/PackageRegistriesPanel.vue +8 -8
- package/app/components/settings/ProviderConnectionTab.vue +8 -11
- package/app/components/settings/ProviderManifestEditor.vue +9 -9
- package/app/components/settings/ProviderPreferenceEditor.vue +8 -8
- package/app/components/settings/RiskPolicyCreateForm.vue +10 -10
- package/app/components/settings/RiskPolicyEditorRow.vue +14 -14
- package/app/components/settings/RiskPolicyHealthModal.vue +15 -13
- package/app/components/settings/RiskPolicyInheritedRow.vue +1 -1
- package/app/components/settings/RiskPolicyPanel.vue +10 -15
- package/app/components/settings/ServiceFragmentDefaultsPanel.vue +7 -7
- package/app/components/settings/SharedStacksPanel.vue +9 -12
- package/app/components/settings/TaskSourceCard.vue +4 -4
- package/app/components/settings/TaskTypeSuppressionsPanel.vue +6 -6
- package/app/components/settings/ToolServerChecklist.vue +36 -29
- package/app/components/settings/UsageSettings.vue +15 -15
- package/app/components/settings/UserSecretsSection.vue +9 -12
- package/app/components/settings/WorkspaceMetadataSettings.vue +5 -5
- package/app/components/settings/WorkspaceSettingsPanel.vue +47 -47
- package/app/components/skills/ReviewSkillQueue.vue +10 -10
- package/app/components/skills/SkillLibraryManager.vue +23 -20
- package/app/components/slack/SlackPanel.vue +13 -17
- package/app/components/spec/ServiceSpecWindow.vue +45 -42
- package/app/components/tasks/BugHuntModal.vue +24 -27
- package/app/components/tasks/ContextIssuePicker.vue +11 -11
- package/app/components/tasks/TaskContextIssues.vue +3 -3
- package/app/components/tasks/TaskImportModal.vue +7 -7
- package/app/components/tasks/TaskSourceConnectModal.vue +10 -8
- package/app/components/testing/TestReportWindow.vue +99 -82
- package/app/components/theme/ThemeImportModal.vue +115 -0
- package/app/components/tutorial/TutorialCatalogue.vue +9 -9
- package/app/components/tutorial/TutorialNudge.vue +5 -5
- package/app/components/tutorial/TutorialOverlay.vue +12 -12
- package/app/components/tutorial/TutorialPrompt.vue +6 -9
- package/app/components/vcs/GitLabConnect.vue +4 -4
- package/app/components/vcs/VcsConnectSurfaces.vue +2 -2
- package/app/components/visualConfirm/VisualConfirmationWindow.vue +36 -36
- package/app/composables/api/client.ts +6 -1
- package/app/composables/usePipelineErrorToast.ts +17 -0
- package/app/modular/agent-kinds.ts +24 -0
- package/app/pages/index.vue +5 -5
- package/app/plugins/theme.client.ts +125 -0
- package/app/spa-loading-template.html +52 -14
- package/app/stores/agents.ts +1 -1
- package/app/stores/theme.spec.ts +56 -0
- package/app/stores/theme.ts +87 -0
- package/app/types/domain.ts +19 -0
- package/app/types/execution.ts +4 -0
- package/app/utils/agentOutput.ts +1 -1
- package/app/utils/binaryOutput.ts +6 -6
- package/app/utils/bootstrapSteps.ts +14 -14
- package/app/utils/catalog.ts +87 -83
- package/app/utils/colorTint.ts +10 -0
- package/app/utils/failureKinds.ts +1 -0
- package/app/utils/observability.ts +3 -3
- package/app/utils/pipelineRender.ts +13 -17
- package/app/utils/swimlanes.ts +4 -4
- package/app/utils/theme/bootPalette.spec.ts +54 -0
- package/app/utils/theme/bootPalette.ts +108 -0
- package/app/utils/theme/builtins.spec.ts +38 -0
- package/app/utils/theme/builtins.ts +55 -0
- package/app/utils/theme/css.ts +162 -0
- package/app/utils/theme/doc.ts +353 -0
- package/app/utils/theme/link.ts +93 -0
- package/app/utils/theme/presets.ts +509 -0
- package/app/utils/theme/theme.spec.ts +224 -0
- package/i18n/locales/de.json +61 -4
- package/i18n/locales/en.json +70 -4
- package/i18n/locales/es.json +61 -4
- package/i18n/locales/fr.json +61 -4
- package/i18n/locales/he.json +61 -4
- package/i18n/locales/it.json +61 -4
- package/i18n/locales/ja.json +61 -4
- package/i18n/locales/pl.json +61 -4
- package/i18n/locales/tr.json +61 -4
- package/i18n/locales/uk.json +61 -4
- package/nuxt.config.ts +37 -11
- package/package.json +10 -9
package/app/utils/catalog.ts
CHANGED
|
@@ -39,7 +39,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
39
39
|
tier: 'basic',
|
|
40
40
|
label: 'Requirements Reviewer',
|
|
41
41
|
icon: 'i-lucide-clipboard-check',
|
|
42
|
-
color: '
|
|
42
|
+
color: 'var(--app-hue-amber)',
|
|
43
43
|
category: 'review',
|
|
44
44
|
// Settles the PRODUCT layer before anyone builds, which is every use-case except reviewing
|
|
45
45
|
// someone else's open pull request: there the requirements are already someone's shipped
|
|
@@ -56,7 +56,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
56
56
|
tier: 'basic',
|
|
57
57
|
label: 'Clarity Reviewer',
|
|
58
58
|
icon: 'i-lucide-bug',
|
|
59
|
-
color: '
|
|
59
|
+
color: 'var(--app-hue-amber)',
|
|
60
60
|
category: 'review',
|
|
61
61
|
// Triages a BUG REPORT for fixability, so it only makes sense where something gets fixed.
|
|
62
62
|
purposes: ['build'],
|
|
@@ -75,7 +75,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
75
75
|
tier: 'intermediate',
|
|
76
76
|
label: 'Bug Investigator',
|
|
77
77
|
icon: 'i-lucide-search-code',
|
|
78
|
-
color: '
|
|
78
|
+
color: 'var(--app-hue-sky)',
|
|
79
79
|
category: 'review',
|
|
80
80
|
// Traces a bug to its root cause in the code: a fixing pipeline's opening move, and nothing
|
|
81
81
|
// a document, review, spike or plan has any use for.
|
|
@@ -94,7 +94,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
94
94
|
tier: 'intermediate',
|
|
95
95
|
label: 'Bug Fisher',
|
|
96
96
|
icon: 'i-lucide-fish',
|
|
97
|
-
color: '
|
|
97
|
+
color: 'var(--app-hue-sky)',
|
|
98
98
|
category: 'review',
|
|
99
99
|
// Hunts for defects nobody reported: it belongs with the bug work rather than the build
|
|
100
100
|
// ladder, and with review because its product is findings.
|
|
@@ -113,7 +113,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
113
113
|
tier: 'basic',
|
|
114
114
|
label: 'PR Reviewer',
|
|
115
115
|
icon: 'i-lucide-clipboard-check',
|
|
116
|
-
color: '
|
|
116
|
+
color: 'var(--app-hue-indigo)',
|
|
117
117
|
category: 'review',
|
|
118
118
|
// Reviews an EXISTING open pull request, which is the whole of the review use-case, and is
|
|
119
119
|
// available to a build pipeline that wants a deep pass over the pull request it just opened.
|
|
@@ -133,7 +133,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
133
133
|
tier: 'intermediate',
|
|
134
134
|
label: 'Spike',
|
|
135
135
|
icon: 'i-lucide-flask-conical',
|
|
136
|
-
color: '
|
|
136
|
+
color: 'var(--app-hue-cyan)',
|
|
137
137
|
category: 'design',
|
|
138
138
|
description:
|
|
139
139
|
'Timeboxed read-only investigation that answers a research question against the context and codebase, and delivers a findings document (as a pull request by default; no code).',
|
|
@@ -144,7 +144,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
144
144
|
tier: 'intermediate',
|
|
145
145
|
label: 'Task Estimator',
|
|
146
146
|
icon: 'i-lucide-gauge',
|
|
147
|
-
color: '
|
|
147
|
+
color: 'var(--app-hue-yellow)',
|
|
148
148
|
category: 'review',
|
|
149
149
|
description:
|
|
150
150
|
'Triages the task after requirements are clarified — rates Complexity, Risk and Impact (0..1). Used to gate consensus and conditional companion steps, and shown as ratings on the task.',
|
|
@@ -158,7 +158,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
158
158
|
tier: 'advanced',
|
|
159
159
|
label: 'Task Reassessor',
|
|
160
160
|
icon: 'i-lucide-gauge-circle',
|
|
161
|
-
color: '
|
|
161
|
+
color: 'var(--app-hue-amber)',
|
|
162
162
|
category: 'review',
|
|
163
163
|
// Reads the pull request the run opened, so it only belongs where a pipeline ships code. A
|
|
164
164
|
// document, research, planning or review pipeline opens none, and the step would be offered
|
|
@@ -172,7 +172,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
172
172
|
tier: 'intermediate',
|
|
173
173
|
label: 'Requirements Brainstorm',
|
|
174
174
|
icon: 'i-lucide-lightbulb',
|
|
175
|
-
color: '
|
|
175
|
+
color: 'var(--app-hue-amber)',
|
|
176
176
|
category: 'design',
|
|
177
177
|
description:
|
|
178
178
|
'A structured dialogue that turns a rough idea into crisp requirements — proposing options with explicit trade-offs and letting you choose, before the requirements review.',
|
|
@@ -185,7 +185,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
185
185
|
tier: 'advanced',
|
|
186
186
|
label: 'Architecture Brainstorm',
|
|
187
187
|
icon: 'i-lucide-compass',
|
|
188
|
-
color: '
|
|
188
|
+
color: 'var(--app-hue-violet)',
|
|
189
189
|
category: 'design',
|
|
190
190
|
description:
|
|
191
191
|
'A structured dialogue that explores and finalizes a technical approach from the refined requirements — proposing options with explicit trade-offs and letting you converge, before the architect.',
|
|
@@ -201,7 +201,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
201
201
|
tier: 'intermediate',
|
|
202
202
|
label: 'Spec Writer',
|
|
203
203
|
icon: 'i-lucide-clipboard-list',
|
|
204
|
-
color: '
|
|
204
|
+
color: 'var(--app-hue-purple)',
|
|
205
205
|
category: 'design',
|
|
206
206
|
// Writes the in-repo spec the implementation is then built against.
|
|
207
207
|
purposes: ['build', 'planning'],
|
|
@@ -213,7 +213,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
213
213
|
tier: 'basic',
|
|
214
214
|
label: 'Architect',
|
|
215
215
|
icon: 'i-lucide-drafting-compass',
|
|
216
|
-
color: '
|
|
216
|
+
color: 'var(--app-hue-violet)',
|
|
217
217
|
category: 'design',
|
|
218
218
|
// Designs the shape of a CODE change, so it belongs wherever code is planned or written and
|
|
219
219
|
// nowhere a document is being authored.
|
|
@@ -228,7 +228,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
228
228
|
tier: 'intermediate',
|
|
229
229
|
label: 'Blueprinter',
|
|
230
230
|
icon: 'i-lucide-map',
|
|
231
|
-
color: '
|
|
231
|
+
color: 'var(--app-hue-cyan)',
|
|
232
232
|
category: 'design',
|
|
233
233
|
// Decomposes a repository into services and modules on the board.
|
|
234
234
|
purposes: ['build', 'planning'],
|
|
@@ -239,7 +239,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
239
239
|
tier: 'intermediate',
|
|
240
240
|
label: 'Researcher',
|
|
241
241
|
icon: 'i-lucide-telescope',
|
|
242
|
-
color: '
|
|
242
|
+
color: 'var(--app-hue-sky)',
|
|
243
243
|
category: 'design',
|
|
244
244
|
description: 'Investigates prior art, libraries and constraints.',
|
|
245
245
|
},
|
|
@@ -248,7 +248,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
248
248
|
tier: 'basic',
|
|
249
249
|
label: 'Coder',
|
|
250
250
|
icon: 'i-lucide-code-xml',
|
|
251
|
-
color: '
|
|
251
|
+
color: 'var(--app-hue-emerald)',
|
|
252
252
|
category: 'build',
|
|
253
253
|
description: 'Implements the block according to the design.',
|
|
254
254
|
},
|
|
@@ -257,7 +257,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
257
257
|
tier: 'advanced',
|
|
258
258
|
label: 'Integrator',
|
|
259
259
|
icon: 'i-lucide-plug-zap',
|
|
260
|
-
color: '
|
|
260
|
+
color: 'var(--app-hue-orange)',
|
|
261
261
|
category: 'build',
|
|
262
262
|
description: 'Wires the block into the surrounding system.',
|
|
263
263
|
},
|
|
@@ -266,7 +266,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
266
266
|
tier: 'advanced',
|
|
267
267
|
label: 'Mock Builder',
|
|
268
268
|
icon: 'i-lucide-server-cog',
|
|
269
|
-
color: '
|
|
269
|
+
color: 'var(--app-hue-rose)',
|
|
270
270
|
category: 'build',
|
|
271
271
|
description: 'Builds WireMock mocks for external services and wires them into local/CI runs.',
|
|
272
272
|
},
|
|
@@ -282,7 +282,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
282
282
|
tier: 'basic',
|
|
283
283
|
label: 'Deployer',
|
|
284
284
|
icon: 'i-lucide-cloud-upload',
|
|
285
|
-
color: '
|
|
285
|
+
color: 'var(--app-hue-emerald)',
|
|
286
286
|
category: 'test',
|
|
287
287
|
description:
|
|
288
288
|
'Provisions the ephemeral environment the tester and human-test gate run against (kubernetes / custom services); a no-op for docker-compose / infraless. Place it before the first step that needs the environment.',
|
|
@@ -292,7 +292,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
292
292
|
tier: 'basic',
|
|
293
293
|
label: 'API Tester',
|
|
294
294
|
icon: 'i-lucide-flask-conical',
|
|
295
|
-
color: '
|
|
295
|
+
color: 'var(--app-hue-amber)',
|
|
296
296
|
category: 'test',
|
|
297
297
|
description: 'Exercises the change against the mocks + spec scenarios and reports outcomes.',
|
|
298
298
|
// Opens the dedicated structured test-report window (scenarios → outcomes →
|
|
@@ -304,7 +304,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
304
304
|
tier: 'intermediate',
|
|
305
305
|
label: 'UI Tester',
|
|
306
306
|
icon: 'i-lucide-camera',
|
|
307
|
-
color: '
|
|
307
|
+
color: 'var(--app-hue-amber)',
|
|
308
308
|
category: 'test',
|
|
309
309
|
description:
|
|
310
310
|
'Drives a real browser through the new UI, captures a screenshot of each view, and reports outcomes.',
|
|
@@ -316,7 +316,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
316
316
|
tier: 'intermediate',
|
|
317
317
|
label: 'Acceptance Test Author',
|
|
318
318
|
icon: 'i-lucide-theater',
|
|
319
|
-
color: '
|
|
319
|
+
color: 'var(--app-hue-fuchsia)',
|
|
320
320
|
category: 'test',
|
|
321
321
|
description:
|
|
322
322
|
"Turns scenarios into runnable tests — Playwright for frontend, the project's own framework for backend; adds only new ones.",
|
|
@@ -326,7 +326,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
326
326
|
tier: 'intermediate',
|
|
327
327
|
label: 'Human Testing',
|
|
328
328
|
icon: 'i-lucide-user-check',
|
|
329
|
-
color: '
|
|
329
|
+
color: 'var(--app-hue-amber)',
|
|
330
330
|
category: 'test',
|
|
331
331
|
description:
|
|
332
332
|
'Spins up an ephemeral environment and pauses for a person to validate the change in a live URL — request a fix from findings, pull main + redeploy, or recreate/destroy the env — before the pipeline continues.',
|
|
@@ -347,7 +347,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
347
347
|
tier: 'basic',
|
|
348
348
|
label: 'Disposer',
|
|
349
349
|
icon: 'i-lucide-cloud-off',
|
|
350
|
-
color: '
|
|
350
|
+
color: 'var(--app-hue-emerald)',
|
|
351
351
|
category: 'test',
|
|
352
352
|
description:
|
|
353
353
|
'Reclaims the ephemeral environments this run provisioned, and confirms they are actually gone. Place it after the last step that needs the environment.',
|
|
@@ -357,7 +357,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
357
357
|
tier: 'advanced',
|
|
358
358
|
label: 'Visual Confirmation',
|
|
359
359
|
icon: 'i-lucide-image-play',
|
|
360
|
-
color: '
|
|
360
|
+
color: 'var(--app-hue-amber)',
|
|
361
361
|
category: 'test',
|
|
362
362
|
description:
|
|
363
363
|
'Pauses for a person to review the UI tester’s screenshots against the uploaded reference designs — approve, or request a fix from findings — before the pipeline continues.',
|
|
@@ -370,7 +370,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
370
370
|
tier: 'basic',
|
|
371
371
|
label: 'Documenter',
|
|
372
372
|
icon: 'i-lucide-book-open-text',
|
|
373
|
-
color: '
|
|
373
|
+
color: 'var(--app-hue-indigo)',
|
|
374
374
|
category: 'docs',
|
|
375
375
|
// WRITES documentation into the repository, which a pipeline that reviews someone else's
|
|
376
376
|
// pull request never does.
|
|
@@ -382,7 +382,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
382
382
|
tier: 'intermediate',
|
|
383
383
|
label: 'Domain Rules Documenter',
|
|
384
384
|
icon: 'i-lucide-scroll-text',
|
|
385
|
-
color: '
|
|
385
|
+
color: 'var(--app-hue-lime)',
|
|
386
386
|
category: 'docs',
|
|
387
387
|
// Writes domain-rule docs into the repository (see `documenter`).
|
|
388
388
|
purposes: ['build', 'document'],
|
|
@@ -394,7 +394,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
394
394
|
tier: 'advanced',
|
|
395
395
|
label: 'Domain Rules Reviewer',
|
|
396
396
|
icon: 'i-lucide-shield-alert',
|
|
397
|
-
color: '
|
|
397
|
+
color: 'var(--app-hue-red)',
|
|
398
398
|
category: 'docs',
|
|
399
399
|
// The review activity that groups under Documentation: it reads a change against the
|
|
400
400
|
// documented rules and reports violations, writing nothing.
|
|
@@ -420,7 +420,7 @@ export const COMPANION_ARCHETYPES: AgentArchetype[] = [
|
|
|
420
420
|
tier: 'basic',
|
|
421
421
|
label: 'Reviewer (companion)',
|
|
422
422
|
icon: 'i-lucide-scan-eye',
|
|
423
|
-
color: '
|
|
423
|
+
color: 'var(--app-hue-pink)',
|
|
424
424
|
description:
|
|
425
425
|
"Coder's companion: rates the change for quality/correctness and loops it back for automatic rework below the threshold.",
|
|
426
426
|
},
|
|
@@ -429,7 +429,7 @@ export const COMPANION_ARCHETYPES: AgentArchetype[] = [
|
|
|
429
429
|
tier: 'intermediate',
|
|
430
430
|
label: 'Architect Companion',
|
|
431
431
|
icon: 'i-lucide-bug-play',
|
|
432
|
-
color: '
|
|
432
|
+
color: 'var(--app-hue-purple)',
|
|
433
433
|
description:
|
|
434
434
|
"Challenges the architect's design for quality and completeness, looping it back for rework below the threshold before a human reviews it.",
|
|
435
435
|
},
|
|
@@ -438,7 +438,7 @@ export const COMPANION_ARCHETYPES: AgentArchetype[] = [
|
|
|
438
438
|
tier: 'intermediate',
|
|
439
439
|
label: 'Spec Reviewer',
|
|
440
440
|
icon: 'i-lucide-list-checks',
|
|
441
|
-
color: '
|
|
441
|
+
color: 'var(--app-hue-teal)',
|
|
442
442
|
description:
|
|
443
443
|
'Reviews the spec — especially acceptance-scenario coverage — rating it and looping the Spec Writer back for automatic rework below the threshold, instead of requiring a human review.',
|
|
444
444
|
},
|
|
@@ -447,7 +447,7 @@ export const COMPANION_ARCHETYPES: AgentArchetype[] = [
|
|
|
447
447
|
tier: 'intermediate',
|
|
448
448
|
label: 'Doc Reviewer',
|
|
449
449
|
icon: 'i-lucide-file-search',
|
|
450
|
-
color: '
|
|
450
|
+
color: 'var(--app-hue-indigo)',
|
|
451
451
|
description:
|
|
452
452
|
'Reviews the drafted document for completeness, clarity, accuracy and structure, looping the Doc Writer back for automatic rework below the threshold.',
|
|
453
453
|
},
|
|
@@ -635,7 +635,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
635
635
|
tier: 'advanced',
|
|
636
636
|
label: 'Challenge Investigator',
|
|
637
637
|
icon: 'i-lucide-gavel',
|
|
638
|
-
color: '
|
|
638
|
+
color: 'var(--app-hue-indigo)',
|
|
639
639
|
description:
|
|
640
640
|
'Re-examines a single challenged PR-review finding against the full source, then upholds ' +
|
|
641
641
|
'(strengthening it) or retracts it with a justification. Configurable separately from the reviewer.',
|
|
@@ -654,7 +654,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
654
654
|
tier: 'advanced',
|
|
655
655
|
label: 'Repo Bootstrapper',
|
|
656
656
|
icon: 'i-lucide-package-plus',
|
|
657
|
-
color: '
|
|
657
|
+
color: 'var(--app-hue-amber)',
|
|
658
658
|
description:
|
|
659
659
|
'Scaffolds a new repository from a reference architecture, or writes a new service into a monorepo and opens the pull request.',
|
|
660
660
|
},
|
|
@@ -663,7 +663,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
663
663
|
tier: 'advanced',
|
|
664
664
|
label: 'Adoption Advisor',
|
|
665
665
|
icon: 'i-lucide-scale',
|
|
666
|
-
color: '
|
|
666
|
+
color: 'var(--app-hue-amber)',
|
|
667
667
|
description:
|
|
668
668
|
'Reads a monorepo and the reference template and proposes what a new service should adopt from each. Its suggestion is the one a human settles before anything is written.',
|
|
669
669
|
},
|
|
@@ -676,7 +676,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
676
676
|
tier: 'advanced',
|
|
677
677
|
label: 'Initiative Interviewer',
|
|
678
678
|
icon: 'i-lucide-messages-square',
|
|
679
|
-
color: '
|
|
679
|
+
color: 'var(--app-hue-indigo)',
|
|
680
680
|
description:
|
|
681
681
|
'Interviews you on the goals, scope and constraints the codebase cannot answer, then synthesizes the agreed brief the planner builds on.',
|
|
682
682
|
// Opens the dedicated planning Q&A window (answer / continue / proceed) while parked.
|
|
@@ -687,7 +687,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
687
687
|
tier: 'advanced',
|
|
688
688
|
label: 'Initiative Analyst',
|
|
689
689
|
icon: 'i-lucide-microscope',
|
|
690
|
-
color: '
|
|
690
|
+
color: 'var(--app-hue-indigo)',
|
|
691
691
|
description:
|
|
692
692
|
'Explores the codebase first and writes an analysis (architecture, touch points, risks) that grounds both the interview and the plan. Makes no changes.',
|
|
693
693
|
resultView: 'initiative-tracker',
|
|
@@ -697,7 +697,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
697
697
|
tier: 'advanced',
|
|
698
698
|
label: 'Initiative Planner',
|
|
699
699
|
icon: 'i-lucide-milestone',
|
|
700
|
-
color: '
|
|
700
|
+
color: 'var(--app-hue-indigo)',
|
|
701
701
|
description:
|
|
702
702
|
"Explores the codebase and drafts the initiative's multi-phase plan (items, estimates, concurrency + pipeline policy) for approval.",
|
|
703
703
|
// Opens the dedicated tracker window (phases / items / policy) instead of the
|
|
@@ -709,7 +709,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
709
709
|
tier: 'advanced',
|
|
710
710
|
label: 'Initiative Committer',
|
|
711
711
|
icon: 'i-lucide-git-commit-horizontal',
|
|
712
|
-
color: '
|
|
712
|
+
color: 'var(--app-hue-indigo)',
|
|
713
713
|
description:
|
|
714
714
|
'Persists the approved plan and commits the in-repo tracker (docs/initiatives/<slug>/), arming the execution loop. Runs no model.',
|
|
715
715
|
resultView: 'initiative-tracker',
|
|
@@ -722,7 +722,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
722
722
|
tier: 'intermediate',
|
|
723
723
|
label: 'Analyst',
|
|
724
724
|
icon: 'i-lucide-search-code',
|
|
725
|
-
color: '
|
|
725
|
+
color: 'var(--app-hue-indigo)',
|
|
726
726
|
description:
|
|
727
727
|
'Audits the repository read-only and emits a prioritized findings report (drives the tech-debt pipeline).',
|
|
728
728
|
},
|
|
@@ -734,7 +734,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
734
734
|
tier: 'advanced',
|
|
735
735
|
label: 'Issue Tracker',
|
|
736
736
|
icon: 'i-lucide-ticket',
|
|
737
|
-
color: '
|
|
737
|
+
color: 'var(--app-hue-orange)',
|
|
738
738
|
description:
|
|
739
739
|
'Files a tracker ticket (GitHub issue / Jira) from the analysis before work starts.',
|
|
740
740
|
},
|
|
@@ -748,7 +748,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
748
748
|
tier: 'advanced',
|
|
749
749
|
label: 'Bug Intake',
|
|
750
750
|
icon: 'i-lucide-inbox',
|
|
751
|
-
color: '
|
|
751
|
+
color: 'var(--app-hue-orange)',
|
|
752
752
|
description:
|
|
753
753
|
'Pulls one matching open issue from the configured tracker board, marks it in-progress, and seeds the run from it.',
|
|
754
754
|
},
|
|
@@ -757,7 +757,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
757
757
|
tier: 'intermediate',
|
|
758
758
|
label: 'Conflicts Gate',
|
|
759
759
|
icon: 'i-lucide-git-merge',
|
|
760
|
-
color: '
|
|
760
|
+
color: 'var(--app-hue-orange)',
|
|
761
761
|
description: 'Ensures the PR is mergeable with its base, looping the resolver on conflicts.',
|
|
762
762
|
// Opens the dedicated gate window (verdict, attempts, conflict detail) instead of
|
|
763
763
|
// the generic prose step-detail panel. Shared with the CI gate.
|
|
@@ -768,7 +768,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
768
768
|
tier: 'intermediate',
|
|
769
769
|
label: 'Conflict Resolver',
|
|
770
770
|
icon: 'i-lucide-git-merge',
|
|
771
|
-
color: '
|
|
771
|
+
color: 'var(--app-hue-orange)',
|
|
772
772
|
description: 'Merges the base in and resolves conflicts on the PR branch.',
|
|
773
773
|
},
|
|
774
774
|
ci: {
|
|
@@ -776,7 +776,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
776
776
|
tier: 'basic',
|
|
777
777
|
label: 'CI Gate',
|
|
778
778
|
icon: 'i-lucide-shield-check',
|
|
779
|
-
color: '
|
|
779
|
+
color: 'var(--app-hue-sky)',
|
|
780
780
|
description: 'Gates the PR on green CI, looping the CI fixer on failure.',
|
|
781
781
|
// Opens the dedicated gate window (verdict, attempts, the failing checks) instead
|
|
782
782
|
// of the generic prose step-detail panel. Shared with the conflicts gate.
|
|
@@ -791,7 +791,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
791
791
|
tier: 'intermediate',
|
|
792
792
|
label: 'Doc Quality Gate',
|
|
793
793
|
icon: 'i-lucide-file-check-2',
|
|
794
|
-
color: '
|
|
794
|
+
color: 'var(--app-hue-indigo)',
|
|
795
795
|
description:
|
|
796
796
|
'Checks the drafted document for required sections, placeholders, links and heading structure, looping the doc fixer on problems.',
|
|
797
797
|
// Opens the dedicated gate window (verdict, attempts, the document findings).
|
|
@@ -802,7 +802,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
802
802
|
tier: 'basic',
|
|
803
803
|
label: 'CI Fixer',
|
|
804
804
|
icon: 'i-lucide-wrench',
|
|
805
|
-
color: '
|
|
805
|
+
color: 'var(--app-hue-sky)',
|
|
806
806
|
description: 'Fixes failing CI and pushes back to the PR branch.',
|
|
807
807
|
},
|
|
808
808
|
// The deployer's escalation, and the ci-fixer's shape one step earlier in the pipeline: never a
|
|
@@ -813,7 +813,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
813
813
|
tier: 'basic',
|
|
814
814
|
label: 'Deploy Fixer',
|
|
815
815
|
icon: 'i-lucide-server-cog',
|
|
816
|
-
color: '
|
|
816
|
+
color: 'var(--app-hue-sky)',
|
|
817
817
|
description:
|
|
818
818
|
'Repairs the deployment files a failed provision was rejected for and pushes back to the PR branch, then the environment is stood up again.',
|
|
819
819
|
},
|
|
@@ -822,7 +822,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
822
822
|
tier: 'basic',
|
|
823
823
|
label: 'Fixer',
|
|
824
824
|
icon: 'i-lucide-wrench',
|
|
825
|
-
color: '
|
|
825
|
+
color: 'var(--app-hue-amber)',
|
|
826
826
|
description:
|
|
827
827
|
"Tester's companion: fixes the bugs the tester found and pushes back, then the tester re-runs.",
|
|
828
828
|
},
|
|
@@ -831,7 +831,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
831
831
|
tier: 'basic',
|
|
832
832
|
label: 'Merger',
|
|
833
833
|
icon: 'i-lucide-git-pull-request',
|
|
834
|
-
color: '
|
|
834
|
+
color: 'var(--app-hue-lime)',
|
|
835
835
|
description: 'Scores the PR and auto-merges within the task thresholds, or asks for review.',
|
|
836
836
|
// The merger's verdict is structured (scores + the engine's auto-merge / review
|
|
837
837
|
// decision), so it opens a dedicated result view instead of the raw-JSON prose panel.
|
|
@@ -842,7 +842,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
842
842
|
tier: 'basic',
|
|
843
843
|
label: 'Human Review Gate',
|
|
844
844
|
icon: 'i-lucide-users',
|
|
845
|
-
color: '
|
|
845
|
+
color: 'var(--app-hue-purple)',
|
|
846
846
|
category: 'gates',
|
|
847
847
|
description:
|
|
848
848
|
'Waits for a human code review on the PR, looping the fixer to address comments; advances once approved with no unresolved threads.',
|
|
@@ -858,7 +858,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
858
858
|
tier: 'advanced',
|
|
859
859
|
label: 'Kaizen',
|
|
860
860
|
icon: 'i-lucide-sparkles',
|
|
861
|
-
color: '
|
|
861
|
+
color: 'var(--app-hue-teal)',
|
|
862
862
|
description:
|
|
863
863
|
'Grades each completed agent step (smooth vs chaotic) after a run and recommends prompt/model improvements.',
|
|
864
864
|
},
|
|
@@ -876,7 +876,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
876
876
|
tier: 'intermediate',
|
|
877
877
|
label: 'Assistant',
|
|
878
878
|
icon: 'i-lucide-sparkles',
|
|
879
|
-
color: '
|
|
879
|
+
color: 'var(--app-hue-sky)',
|
|
880
880
|
description:
|
|
881
881
|
'Routes a typed request to one action the platform performs on the board (declare a dependency, add a service from a repository, file a task from a tracker issue).',
|
|
882
882
|
},
|
|
@@ -894,7 +894,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
894
894
|
tier: 'intermediate',
|
|
895
895
|
label: 'Post-Release Health',
|
|
896
896
|
icon: 'i-lucide-activity',
|
|
897
|
-
color: '
|
|
897
|
+
color: 'var(--app-hue-rose)',
|
|
898
898
|
category: 'gates',
|
|
899
899
|
description:
|
|
900
900
|
'Watches the released PR’s Datadog monitors/SLOs after merge and escalates to the on-call agent on a regression.',
|
|
@@ -944,7 +944,7 @@ export const MODEL_CONFIGURABLE_SYSTEM_KINDS: AgentArchetype[] = [
|
|
|
944
944
|
const FALLBACK_AGENT_META: Omit<AgentArchetype, 'kind'> = {
|
|
945
945
|
label: 'Agent',
|
|
946
946
|
icon: 'i-lucide-bot',
|
|
947
|
-
color: '
|
|
947
|
+
color: 'var(--app-hue-slate)',
|
|
948
948
|
description: 'Agent step.',
|
|
949
949
|
}
|
|
950
950
|
|
|
@@ -1015,55 +1015,55 @@ export const TASK_TYPE_META: Record<string, TaskTypeMeta> = {
|
|
|
1015
1015
|
feature: {
|
|
1016
1016
|
taskType: 'feature',
|
|
1017
1017
|
icon: 'i-lucide-sparkles',
|
|
1018
|
-
color: '
|
|
1018
|
+
color: 'var(--app-hue-sky)',
|
|
1019
1019
|
labelKey: 'board.addTask.types.feature',
|
|
1020
1020
|
},
|
|
1021
1021
|
bug: {
|
|
1022
1022
|
taskType: 'bug',
|
|
1023
1023
|
icon: 'i-lucide-bug',
|
|
1024
|
-
color: '
|
|
1024
|
+
color: 'var(--app-hue-red)',
|
|
1025
1025
|
labelKey: 'board.addTask.types.bug',
|
|
1026
1026
|
},
|
|
1027
1027
|
'bug-fishing': {
|
|
1028
1028
|
taskType: 'bug-fishing',
|
|
1029
1029
|
icon: 'i-lucide-fish',
|
|
1030
|
-
color: '
|
|
1030
|
+
color: 'var(--app-hue-sky)',
|
|
1031
1031
|
labelKey: 'board.addTask.types.bugFishing',
|
|
1032
1032
|
},
|
|
1033
1033
|
document: {
|
|
1034
1034
|
taskType: 'document',
|
|
1035
1035
|
icon: 'i-lucide-file-text',
|
|
1036
|
-
color: '
|
|
1036
|
+
color: 'var(--app-hue-purple)',
|
|
1037
1037
|
labelKey: 'board.addTask.types.document',
|
|
1038
1038
|
},
|
|
1039
1039
|
spike: {
|
|
1040
1040
|
taskType: 'spike',
|
|
1041
1041
|
icon: 'i-lucide-flask-conical',
|
|
1042
|
-
color: '
|
|
1042
|
+
color: 'var(--app-hue-amber)',
|
|
1043
1043
|
labelKey: 'board.addTask.types.spike',
|
|
1044
1044
|
},
|
|
1045
1045
|
review: {
|
|
1046
1046
|
taskType: 'review',
|
|
1047
1047
|
icon: 'i-lucide-clipboard-check',
|
|
1048
|
-
color: '
|
|
1048
|
+
color: 'var(--app-hue-emerald)',
|
|
1049
1049
|
labelKey: 'board.addTask.types.review',
|
|
1050
1050
|
},
|
|
1051
1051
|
ralph: {
|
|
1052
1052
|
taskType: 'ralph',
|
|
1053
1053
|
icon: 'i-lucide-infinity',
|
|
1054
|
-
color: '
|
|
1054
|
+
color: 'var(--app-hue-violet)',
|
|
1055
1055
|
labelKey: 'board.addTask.types.ralph',
|
|
1056
1056
|
},
|
|
1057
1057
|
media: {
|
|
1058
1058
|
taskType: 'media',
|
|
1059
1059
|
icon: 'i-lucide-image-plus',
|
|
1060
|
-
color: '
|
|
1060
|
+
color: 'var(--app-hue-pink)',
|
|
1061
1061
|
labelKey: 'board.addTask.types.media',
|
|
1062
1062
|
},
|
|
1063
1063
|
recurring: {
|
|
1064
1064
|
taskType: 'recurring',
|
|
1065
1065
|
icon: 'i-lucide-repeat',
|
|
1066
|
-
color: '
|
|
1066
|
+
color: 'var(--app-hue-slate)',
|
|
1067
1067
|
labelKey: 'board.addTask.types.recurring',
|
|
1068
1068
|
},
|
|
1069
1069
|
}
|
|
@@ -1119,28 +1119,32 @@ type BlockTypeMeta = { label: string; icon: string; accent: string }
|
|
|
1119
1119
|
|
|
1120
1120
|
/** Visual metadata for each architecture block type. */
|
|
1121
1121
|
export const BLOCK_TYPE_META: Record<BlockType, BlockTypeMeta> = {
|
|
1122
|
-
frontend: { label: 'Frontend', icon: 'i-lucide-monitor', accent: '
|
|
1123
|
-
service: { label: 'Service', icon: 'i-lucide-server', accent: '
|
|
1124
|
-
library: { label: 'Library', icon: 'i-lucide-package', accent: '
|
|
1125
|
-
document: {
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1122
|
+
frontend: { label: 'Frontend', icon: 'i-lucide-monitor', accent: 'var(--app-hue-blue)' },
|
|
1123
|
+
service: { label: 'Service', icon: 'i-lucide-server', accent: 'var(--app-hue-violet)' },
|
|
1124
|
+
library: { label: 'Library', icon: 'i-lucide-package', accent: 'var(--app-hue-pink)' },
|
|
1125
|
+
document: {
|
|
1126
|
+
label: 'Document repository',
|
|
1127
|
+
icon: 'i-lucide-book-text',
|
|
1128
|
+
accent: 'var(--app-hue-purple)',
|
|
1129
|
+
},
|
|
1130
|
+
api: { label: 'API', icon: 'i-lucide-route', accent: 'var(--app-hue-cyan)' },
|
|
1131
|
+
database: { label: 'Database', icon: 'i-lucide-database', accent: 'var(--app-hue-emerald)' },
|
|
1132
|
+
queue: { label: 'Queue', icon: 'i-lucide-list-ordered', accent: 'var(--app-hue-amber)' },
|
|
1129
1133
|
integration: {
|
|
1130
1134
|
label: 'Integration',
|
|
1131
1135
|
icon: 'i-lucide-workflow',
|
|
1132
|
-
accent: '
|
|
1136
|
+
accent: 'var(--app-hue-orange)',
|
|
1133
1137
|
},
|
|
1134
1138
|
// Not user-creatable, but still emitted by the backend (the seeded third-party
|
|
1135
1139
|
// service and the environments integration), so they need display metadata.
|
|
1136
|
-
external: { label: 'External', icon: 'i-lucide-globe', accent: '
|
|
1137
|
-
environment: { label: 'Environment', icon: 'i-lucide-box', accent: '
|
|
1140
|
+
external: { label: 'External', icon: 'i-lucide-globe', accent: 'var(--app-hue-slate)' },
|
|
1141
|
+
environment: { label: 'Environment', icon: 'i-lucide-box', accent: 'var(--app-hue-teal)' },
|
|
1138
1142
|
}
|
|
1139
1143
|
|
|
1140
1144
|
const FALLBACK_BLOCK_TYPE_META: BlockTypeMeta = {
|
|
1141
1145
|
label: 'Block',
|
|
1142
1146
|
icon: 'i-lucide-box',
|
|
1143
|
-
accent: '
|
|
1147
|
+
accent: 'var(--app-hue-slate)',
|
|
1144
1148
|
}
|
|
1145
1149
|
|
|
1146
1150
|
/**
|
|
@@ -1158,19 +1162,19 @@ export const STATUS_META: Record<
|
|
|
1158
1162
|
> = {
|
|
1159
1163
|
planned: {
|
|
1160
1164
|
label: 'Planned',
|
|
1161
|
-
color: '
|
|
1165
|
+
color: 'var(--ui-text-muted)',
|
|
1162
1166
|
chip: 'neutral',
|
|
1163
1167
|
icon: 'i-lucide-circle-dashed',
|
|
1164
1168
|
},
|
|
1165
1169
|
ready: {
|
|
1166
1170
|
label: 'Ready',
|
|
1167
|
-
color: '
|
|
1171
|
+
color: 'var(--ui-info)',
|
|
1168
1172
|
chip: 'info',
|
|
1169
1173
|
icon: 'i-lucide-circle-play',
|
|
1170
1174
|
},
|
|
1171
1175
|
in_progress: {
|
|
1172
1176
|
label: 'In progress',
|
|
1173
|
-
color: '
|
|
1177
|
+
color: 'var(--ui-primary)',
|
|
1174
1178
|
chip: 'primary',
|
|
1175
1179
|
icon: 'i-lucide-loader',
|
|
1176
1180
|
},
|
|
@@ -1180,26 +1184,26 @@ export const STATUS_META: Record<
|
|
|
1180
1184
|
// specific reason (TaskCard, the inspector) show the precise label/action;
|
|
1181
1185
|
// this fallback must NOT imply a decision is the only thing it can be.
|
|
1182
1186
|
label: 'Needs attention',
|
|
1183
|
-
color: '
|
|
1187
|
+
color: 'var(--ui-warning)',
|
|
1184
1188
|
chip: 'warning',
|
|
1185
1189
|
icon: 'i-lucide-alert-triangle',
|
|
1186
1190
|
},
|
|
1187
1191
|
pr_ready: {
|
|
1188
1192
|
label: 'PR ready',
|
|
1189
|
-
color: '
|
|
1193
|
+
color: 'var(--ui-success)',
|
|
1190
1194
|
chip: 'success',
|
|
1191
1195
|
icon: 'i-lucide-git-pull-request',
|
|
1192
1196
|
},
|
|
1193
1197
|
done: {
|
|
1194
1198
|
label: 'Done',
|
|
1195
|
-
color: '
|
|
1199
|
+
color: 'var(--ui-text-muted)',
|
|
1196
1200
|
chip: 'success',
|
|
1197
1201
|
icon: 'i-lucide-circle-check',
|
|
1198
1202
|
},
|
|
1199
1203
|
}
|
|
1200
1204
|
|
|
1201
1205
|
/** Visual metadata for module sub-frames. */
|
|
1202
|
-
export const MODULE_META = { icon: 'i-lucide-package', color: '
|
|
1206
|
+
export const MODULE_META = { icon: 'i-lucide-package', color: 'var(--app-hue-violet)' }
|
|
1203
1207
|
|
|
1204
1208
|
/**
|
|
1205
1209
|
* Display metadata for the future-looking Follow-up companion — a per-`coder`-step toggle
|
|
@@ -1211,7 +1215,7 @@ export const MODULE_META = { icon: 'i-lucide-package', color: '#a78bfa' }
|
|
|
1211
1215
|
export const FOLLOW_UP_COMPANION_META = {
|
|
1212
1216
|
label: 'Follow-up companion',
|
|
1213
1217
|
icon: 'i-lucide-compass',
|
|
1214
|
-
color: '
|
|
1218
|
+
color: 'var(--app-hue-pink)',
|
|
1215
1219
|
}
|
|
1216
1220
|
|
|
1217
1221
|
/**
|
|
@@ -1222,5 +1226,5 @@ export const FOLLOW_UP_COMPANION_META = {
|
|
|
1222
1226
|
export const FORK_DECISION_META = {
|
|
1223
1227
|
label: 'Implementation-fork decision',
|
|
1224
1228
|
icon: 'i-lucide-git-fork',
|
|
1225
|
-
color: '
|
|
1229
|
+
color: 'var(--app-hue-violet)',
|
|
1226
1230
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A translucent fill of a colour, for the icon tiles and badges that sit a category colour behind
|
|
3
|
+
* its own glyph. The colour is a CSS value, never parsed: identity colours are `var(--app-hue-*)`
|
|
4
|
+
* tokens (`utils/catalog.ts`) and a deployment-registered kind may still send a hex, and
|
|
5
|
+
* `color-mix` reads both. `percent` is the fill's opacity (the old `+ '22'` hex-alpha suffix was
|
|
6
|
+
* 34/255, about 13%).
|
|
7
|
+
*/
|
|
8
|
+
export function tint(color: string, percent = 13): string {
|
|
9
|
+
return `color-mix(in srgb, ${color} ${percent}%, transparent)`
|
|
10
|
+
}
|
|
@@ -30,6 +30,7 @@ export const FAILURE_KIND_KEYS: Record<AgentFailureKind, string> = {
|
|
|
30
30
|
timeout: 'platformObservability.failureKind.timeout',
|
|
31
31
|
agent: 'platformObservability.failureKind.agent',
|
|
32
32
|
job_failed: 'platformObservability.failureKind.job_failed',
|
|
33
|
+
delegated_failed: 'platformObservability.failureKind.delegated_failed',
|
|
33
34
|
rejected: 'platformObservability.failureKind.rejected',
|
|
34
35
|
companion_rejected: 'platformObservability.failureKind.companion_rejected',
|
|
35
36
|
stalled: 'platformObservability.failureKind.stalled',
|