spine-framework 0.3.145 → 0.4.1
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/.env.example +76 -0
- package/.framework/.spine-manifest.json +19 -0
- package/.framework/cli/commands/agents.ts +61 -33
- package/.framework/cli/commands/auth.ts +60 -28
- package/.framework/cli/commands/create-app.ts +212 -80
- package/.framework/cli/commands/dev.ts +184 -68
- package/.framework/cli/commands/doctor.ts +324 -152
- package/.framework/cli/commands/generate.ts +119 -68
- package/.framework/cli/commands/init.ts +141 -242
- package/.framework/cli/commands/install-app.ts +1336 -314
- package/.framework/cli/commands/items.ts +31 -29
- package/.framework/cli/commands/migrate.ts +299 -156
- package/.framework/cli/commands/migrations.ts +62 -30
- package/.framework/cli/commands/pipelines.ts +31 -29
- package/.framework/cli/commands/status.ts +105 -45
- package/.framework/cli/commands/system.ts +47 -42
- package/.framework/cli/commands/test.ts +161 -102
- package/.framework/cli/commands/upgrade.ts +260 -0
- package/.framework/cli/commands/validate-app.ts +517 -161
- package/.framework/cli/context.ts +117 -85
- package/.framework/cli/env-loader.ts +74 -43
- package/.framework/cli/index.ts +70 -46
- package/.framework/cli/lib/project-files.ts +404 -0
- package/.framework/docs/guides/testing-guide.md +1 -1
- package/.framework/docs/runtime-types.md +72 -72
- package/.framework/functions/_shared/access.ts +84 -0
- package/.framework/functions/_shared/agent-runner.ts +5067 -1026
- package/.framework/functions/_shared/app-manifest.ts +214 -94
- package/.framework/functions/_shared/ast.ts +214 -0
- package/.framework/functions/_shared/audit.ts +91 -55
- package/.framework/functions/_shared/cil.ts +368 -127
- package/.framework/functions/_shared/db.ts +337 -68
- package/.framework/functions/_shared/funnel.ts +228 -0
- package/.framework/functions/_shared/geo.ts +105 -0
- package/.framework/functions/_shared/hash-api-key.ts +94 -17
- package/.framework/functions/_shared/index.ts +22 -224
- package/.framework/functions/_shared/kb.ts +832 -58
- package/.framework/functions/_shared/llm.ts +118 -18
- package/.framework/functions/_shared/logging.ts +317 -19
- package/.framework/functions/_shared/middleware.ts +701 -131
- package/.framework/functions/_shared/notify.ts +70 -0
- package/.framework/functions/_shared/outcomes.ts +34 -19
- package/.framework/functions/_shared/permissions.ts +501 -315
- package/.framework/functions/_shared/pipeline-runner.ts +704 -155
- package/.framework/functions/_shared/principal.ts +436 -263
- package/.framework/functions/_shared/rate-limit.ts +233 -0
- package/.framework/functions/_shared/resolve-credentials.ts +86 -19
- package/.framework/functions/_shared/resolve-ids.ts +203 -139
- package/.framework/functions/_shared/retry-deliveries.ts +51 -16
- package/.framework/functions/_shared/schema-utils.ts +602 -521
- package/.framework/functions/_shared/security.ts +345 -0
- package/.framework/functions/_shared/testing.ts +197 -172
- package/.framework/functions/_shared/tracing.ts +351 -21
- package/.framework/functions/_shared/trigger-engine.ts +425 -136
- package/.framework/functions/_shared/webhook-registration.ts +71 -70
- package/.framework/functions/_shared/webhook-registry.ts +126 -83
- package/.framework/functions/account-nodes.ts +30 -30
- package/.framework/functions/adapters/generic-webhook-inbound.ts +49 -16
- package/.framework/functions/adapters/generic-webhook-outbound.ts +17 -17
- package/.framework/functions/adapters/openai-outbound.ts +15 -16
- package/.framework/functions/admin-data.ts +596 -173
- package/.framework/functions/admin-funnel.ts +64 -60
- package/.framework/functions/admin-install-funnel.ts +84 -66
- package/.framework/functions/admin-signals.ts +69 -51
- package/.framework/functions/ai-agents.ts +431 -106
- package/.framework/functions/ai-interactions.ts +186 -112
- package/.framework/functions/api-keys.ts +107 -107
- package/.framework/functions/apps.ts +154 -136
- package/.framework/functions/auth.ts +83 -65
- package/.framework/functions/cil-agent-ingest.ts +189 -232
- package/.framework/functions/cil-agent.ts +433 -177
- package/.framework/functions/cil-callmap.ts +642 -430
- package/.framework/functions/cil-config.ts +139 -135
- package/.framework/functions/cil-context.ts +214 -127
- package/.framework/functions/cil-doc.ts +587 -458
- package/.framework/functions/cil-embeddings.ts +453 -364
- package/.framework/functions/cil-graph.ts +427 -142
- package/.framework/functions/cil-ingest.ts +1418 -1154
- package/.framework/functions/cil-pipeline.ts +276 -21
- package/.framework/functions/cil-project.ts +659 -132
- package/.framework/functions/cil-validate.ts +198 -164
- package/.framework/functions/debug-auth.ts +57 -55
- package/.framework/functions/deliveries.ts +80 -21
- package/.framework/functions/embeddings.ts +1023 -318
- package/.framework/functions/eval-harness.ts +146 -108
- package/.framework/functions/integration-outbound.ts +205 -75
- package/.framework/functions/integration-routes.ts +128 -23
- package/.framework/functions/integrations.ts +125 -100
- package/.framework/functions/invites.ts +1095 -460
- package/.framework/functions/item-progress.ts +158 -102
- package/.framework/functions/kb.ts +34 -10
- package/.framework/functions/logs.ts +133 -133
- package/.framework/functions/observability.ts +152 -122
- package/.framework/functions/pipeline-executions.ts +147 -132
- package/.framework/functions/pipelines.ts +134 -119
- package/.framework/functions/prompt-configs.ts +96 -80
- package/.framework/functions/roles.ts +112 -82
- package/.framework/functions/security.ts +450 -0
- package/.framework/functions/system-cron.ts +117 -80
- package/.framework/functions/system.ts +158 -98
- package/.framework/functions/tests.ts +29 -29
- package/.framework/functions/timers.ts +94 -95
- package/.framework/functions/trigger-scheduler.ts +10 -0
- package/.framework/functions/triggers.ts +179 -149
- package/.framework/functions/types.ts +137 -125
- package/.framework/mcp/index.ts +133 -0
- package/.framework/mcp/load-env.ts +60 -0
- package/.framework/mcp/shared/app-manifest.ts +275 -0
- package/.framework/mcp/shared/db.ts +477 -0
- package/.framework/mcp/shared/kb.ts +118 -0
- package/.framework/mcp/tools/architect.ts +431 -0
- package/.framework/mcp/tools/cil/context.ts +345 -0
- package/.framework/mcp/tools/cil/graph.ts +242 -0
- package/.framework/mcp/tools/cil/ingest.ts +1217 -0
- package/.framework/mcp/tools/cil/pipeline-orchestrator.ts +693 -0
- package/.framework/mcp/tools/cil/pipeline.ts +767 -0
- package/.framework/mcp/tools/cil/project.ts +791 -0
- package/.framework/mcp/tools/cil/retrieval.ts +336 -0
- package/.framework/mcp/tools/cil/search-core.ts +454 -0
- package/.framework/mcp/tools/cil/search.ts +97 -0
- package/.framework/mcp/tools/cil/suggest.ts +186 -0
- package/.framework/mcp/tools/cil/validate.ts +1369 -0
- package/.framework/mcp/tools/kb/delete.ts +139 -0
- package/.framework/mcp/tools/kb/index.ts +52 -0
- package/.framework/mcp/tools/kb/ingest.ts +84 -0
- package/.framework/mcp/tools/kb/list-types.ts +102 -0
- package/.framework/mcp/tools/kb/publish.ts +100 -0
- package/.framework/mcp/tools/kb/reindex.ts +86 -0
- package/.framework/mcp/tools/kb/revoke.ts +85 -0
- package/.framework/mcp/tools/kb/search.ts +101 -0
- package/.framework/mcp/tools/kb/upsert.ts +125 -0
- package/.framework/mcp/tools/observability.ts +510 -0
- package/.framework/migrations/001_core_schema.sql +15 -0
- package/.framework/migrations/002_core_rls_and_functions.sql +15 -0
- package/.framework/migrations/003_core_system_data.sql +16 -1
- package/.framework/migrations/004_core_rpc_and_broker.sql +17 -1
- package/.framework/migrations/005_core_observability.sql +17 -1
- package/.framework/migrations/006_security_hardening_rls.sql +15 -0
- package/.framework/migrations/007_kb_article_list.sql +17 -1
- package/.framework/migrations/008_items_target.sql +15 -0
- package/.framework/migrations/009_roles_slug_unique.sql +15 -0
- package/.framework/migrations/010_auth_user_trigger.sql +15 -0
- package/.framework/migrations/011_spine_system_account.sql +16 -0
- package/.framework/migrations/012_service_role_grants.sql +16 -0
- package/.framework/migrations/013_get_account_apps_role_filter.sql +15 -0
- package/.framework/migrations/014_apps_required_roles.sql +16 -0
- package/.framework/migrations/015_types_kind_slug_unique.sql +15 -0
- package/.framework/migrations/016_cil_types.sql +281 -0
- package/.framework/migrations/017_cil_stable_ids.sql +37 -0
- package/.framework/migrations/018_runtime_tables.sql +129 -0
- package/.framework/migrations/019_agent_prompt_columns.sql +56 -0
- package/.framework/migrations/020_schema_reconciliation.sql +67 -0
- package/.framework/migrations/021_kb_embedding_lifecycle.sql +31 -0
- package/.framework/migrations/032_cil_status_migration.sql +73 -0
- package/.framework/migrations/033_cil_versioning.sql +73 -0
- package/.framework/migrations/034_match_embeddings_knn.sql +115 -0
- package/.framework/migrations/035_rate_limits.sql +55 -0
- package/.framework/migrations/036_demo_record_flags.sql +72 -0
- package/.framework/migrations/037_kb_types_canonical.sql +244 -0
- package/.framework/migrations/038_drop_demo_record_flags.sql +38 -0
- package/.framework/migrations/042_registration_hierarchy.sql +309 -0
- package/.framework/migrations/043_policy_actor_cleanup.sql +39 -0
- package/.framework/migrations/044_match_embeddings_filtered_knn.sql +151 -0
- package/.framework/migrations/045_security_critical_rls.sql +139 -0
- package/.framework/migrations/046_security_missing_rls.sql +79 -0
- package/.framework/migrations/047_people_updated_by.sql +27 -0
- package/.framework/migrations/048_watcher_last_seen_at.sql +24 -0
- package/.framework/migrations/049_security_blocklist.sql +148 -0
- package/.framework/migrations/050_notifications.sql +49 -0
- package/.framework/migrations/051_message_agent_fields.sql +74 -0
- package/.framework/migrations/052_registration_security.sql +421 -0
- package/.framework/migrations/053_builtin_action_seeds.sql +66 -0
- package/.framework/migrations/054_kb_ingest_lease.sql +157 -0
- package/.framework/migrations/055_type_id_drift_reconciliation.sql +33 -0
- package/.framework/migrations/056_slug_column_reconciliation.sql +38 -0
- package/.framework/migrations/057_pipelines_slug_identity.sql +14 -0
- package/.framework/migrations/058_account_data_field_declarations.sql +53 -0
- package/.framework/migrations/059_registration_placement_fixes.sql +269 -0
- package/.framework/migrations/060_account_person_record_permissions.sql +38 -0
- package/.framework/migrations/061_fk_dedup.sql +32 -0
- package/.framework/public/spine-logo.svg +10 -3
- package/.framework/scripts/app-install-cli.ts +190 -93
- package/.framework/scripts/assemble-frontend.sh +127 -44
- package/.framework/scripts/assemble-functions.sh +128 -30
- package/.framework/scripts/boundary-check.sh +6 -2
- package/.framework/scripts/build-manifest.sh +24 -68
- package/.framework/scripts/check-core-integrity.sh +15 -76
- package/.framework/scripts/checksum-manifest.mts +343 -0
- package/.framework/scripts/cil-migrate-markers.ts +403 -0
- package/.framework/scripts/fix-cil-markers.mjs +176 -0
- package/.framework/scripts/verify-integrity.sh +21 -57
- package/.framework/scripts/verify-manifest.mts +305 -0
- package/.framework/seeds/types/funnel_signal_use.json +74 -21
- package/.framework/seeds/types/spine_instance.json +73 -21
- package/.framework/src/App.tsx +118 -72
- package/.framework/src/apps/admin/index.tsx +855 -58
- package/.framework/src/components/AppWrapper.tsx +43 -45
- package/.framework/src/components/CustomAppLoader.tsx +160 -116
- package/.framework/src/components/admin/AdminListPage.tsx +46 -44
- package/.framework/src/components/admin/AdminSidebar.tsx +57 -47
- package/.framework/src/components/admin/AdminStatsCard.tsx +46 -44
- package/.framework/src/components/admin/PageInstructions.tsx +98 -2
- package/.framework/src/components/admin/SortableTableHeader.tsx +44 -45
- package/.framework/src/components/app-shell/GenericAppShell.tsx +64 -65
- package/.framework/src/components/app-shell/GenericDetailPage.tsx +44 -47
- package/.framework/src/components/app-shell/GenericListPage.tsx +45 -49
- package/.framework/src/components/app-sidebar.tsx +42 -45
- package/.framework/src/components/auth/ProtectedRoute.tsx +48 -41
- package/.framework/src/components/auth/TurnstileWidget.tsx +27 -0
- package/.framework/src/components/kb/KBArticleEditor.tsx +231 -22
- package/.framework/src/components/kb/KBArticleList.tsx +251 -10
- package/.framework/src/components/layout/AppShell.tsx +51 -45
- package/.framework/src/components/layout/Header.tsx +42 -43
- package/.framework/src/components/layout/Layout.tsx +46 -46
- package/.framework/src/components/layout/Sidebar.tsx +196 -96
- package/.framework/src/components/runtime/DataDetailHeader.tsx +55 -30
- package/.framework/src/components/runtime/DataDetailPage.tsx +31 -269
- package/.framework/src/components/runtime/DataFilters.tsx +49 -74
- package/.framework/src/components/runtime/DataHeader.tsx +53 -32
- package/.framework/src/components/runtime/DataListPage.tsx +51 -155
- package/.framework/src/components/runtime/DataStats.tsx +66 -44
- package/.framework/src/components/runtime/DataTable.tsx +49 -149
- package/.framework/src/components/runtime/SchemaDetailForm.tsx +45 -75
- package/.framework/src/components/runtime/index.ts +119 -16
- package/.framework/src/components/search-form.tsx +46 -29
- package/.framework/src/components/shared/AgentView.tsx +65 -48
- package/.framework/src/components/shared/FieldRenderer.tsx +144 -50
- package/.framework/src/components/shared/InviteManager.tsx +207 -97
- package/.framework/src/components/shared/MemberList.tsx +97 -0
- package/.framework/src/components/shared/SchemaFields.tsx +107 -86
- package/.framework/src/components/ui/DataTable.tsx +80 -68
- package/.framework/src/components/ui/Form.tsx +157 -146
- package/.framework/src/components/ui/ItemCard.tsx +74 -67
- package/.framework/src/components/ui/ItemListView.tsx +73 -68
- package/.framework/src/components/ui/LoadingSpinner.tsx +43 -48
- package/.framework/src/components/ui/Modal.tsx +78 -68
- package/.framework/src/components/ui/RichTextEditor.tsx +89 -69
- package/.framework/src/components/ui/accordion.tsx +85 -86
- package/.framework/src/components/ui/alert-dialog.tsx +197 -184
- package/.framework/src/components/ui/alert.tsx +105 -94
- package/.framework/src/components/ui/aspect-ratio.tsx +57 -43
- package/.framework/src/components/ui/avatar.tsx +122 -107
- package/.framework/src/components/ui/badge.tsx +60 -55
- package/.framework/src/components/ui/breadcrumb.tsx +127 -128
- package/.framework/src/components/ui/button-group.tsx +86 -72
- package/.framework/src/components/ui/button.tsx +71 -50
- package/.framework/src/components/ui/calendar.tsx +72 -57
- package/.framework/src/components/ui/card.tsx +136 -129
- package/.framework/src/components/ui/carousel.tsx +226 -107
- package/.framework/src/components/ui/chart.tsx +252 -147
- package/.framework/src/components/ui/checkbox.tsx +43 -44
- package/.framework/src/components/ui/collapsible.tsx +86 -71
- package/.framework/src/components/ui/combobox.tsx +282 -249
- package/.framework/src/components/ui/command.tsx +158 -146
- package/.framework/src/components/ui/context-menu.tsx +239 -240
- package/.framework/src/components/ui/dialog.tsx +174 -157
- package/.framework/src/components/ui/direction.tsx +72 -56
- package/.framework/src/components/ui/drawer.tsx +168 -169
- package/.framework/src/components/ui/dropdown-menu.tsx +254 -223
- package/.framework/src/components/ui/empty.tsx +131 -120
- package/.framework/src/components/ui/field.tsx +205 -173
- package/.framework/src/components/ui/hover-card.tsx +71 -72
- package/.framework/src/components/ui/input-group.tsx +148 -133
- package/.framework/src/components/ui/input-otp.tsx +99 -86
- package/.framework/src/components/ui/input.tsx +43 -41
- package/.framework/src/components/ui/item.tsx +207 -185
- package/.framework/src/components/ui/kbd.tsx +57 -56
- package/.framework/src/components/ui/label.tsx +45 -41
- package/.framework/src/components/ui/menubar.tsx +268 -236
- package/.framework/src/components/ui/native-select.tsx +85 -86
- package/.framework/src/components/ui/navigation-menu.tsx +166 -156
- package/.framework/src/components/ui/pagination.tsx +131 -141
- package/.framework/src/components/ui/popover.tsx +125 -128
- package/.framework/src/components/ui/progress.tsx +47 -44
- package/.framework/src/components/ui/radio-group.tsx +60 -55
- package/.framework/src/components/ui/resizable.tsx +85 -72
- package/.framework/src/components/ui/scroll-area.tsx +57 -58
- package/.framework/src/components/ui/select.tsx +182 -169
- package/.framework/src/components/ui/separator.tsx +42 -43
- package/.framework/src/components/ui/sheet.tsx +170 -159
- package/.framework/src/components/ui/sidebar.tsx +395 -398
- package/.framework/src/components/ui/skeleton.tsx +42 -43
- package/.framework/src/components/ui/slider.tsx +61 -44
- package/.framework/src/components/ui/sonner.tsx +44 -44
- package/.framework/src/components/ui/spinner.tsx +47 -42
- package/.framework/src/components/ui/switch.tsx +56 -42
- package/.framework/src/components/ui/table-primitives.tsx +272 -132
- package/.framework/src/components/ui/table.tsx +140 -142
- package/.framework/src/components/ui/tabs.tsx +110 -93
- package/.framework/src/components/ui/textarea.tsx +43 -44
- package/.framework/src/components/ui/toggle-group.tsx +87 -71
- package/.framework/src/components/ui/toggle.tsx +56 -56
- package/.framework/src/components/ui/tooltip.tsx +99 -85
- package/.framework/src/contexts/AppContext.tsx +166 -114
- package/.framework/src/contexts/AuthContext.tsx +232 -137
- package/.framework/src/hooks/use-mobile.ts +43 -44
- package/.framework/src/hooks/useApi.ts +185 -172
- package/.framework/src/hooks/useAppPath.ts +31 -29
- package/.framework/src/hooks/useApps.ts +77 -42
- package/.framework/src/hooks/useEntityList.ts +66 -29
- package/.framework/src/hooks/useEntityRecord.ts +76 -32
- package/.framework/src/hooks/useForm.ts +62 -30
- package/.framework/src/hooks/useListSchema.ts +60 -43
- package/.framework/src/hooks/useSchemaRecord.ts +115 -95
- package/.framework/src/lib/api.ts +258 -134
- package/.framework/src/lib/registration.ts +181 -0
- package/.framework/src/lib/supabase.ts +118 -81
- package/.framework/src/lib/utils.ts +266 -266
- package/.framework/src/main.tsx +43 -44
- package/.framework/src/pages/DashboardPage.tsx +44 -43
- package/.framework/src/pages/NoAppPage.tsx +50 -0
- package/.framework/src/pages/NotFoundPage.tsx +32 -29
- package/.framework/src/pages/SetupPage.tsx +34 -33
- package/.framework/src/pages/admin/AIAgentDetailPage.tsx +69 -58
- package/.framework/src/pages/admin/AIAgentsPage.tsx +43 -40
- package/.framework/src/pages/admin/APIKeyDetailPage.tsx +63 -55
- package/.framework/src/pages/admin/APIKeysPage.tsx +44 -42
- package/.framework/src/pages/admin/AlertsConfigPage.tsx +117 -94
- package/.framework/src/pages/admin/AppDetailPage.tsx +48 -42
- package/.framework/src/pages/admin/AppsPage.tsx +45 -42
- package/.framework/src/pages/admin/DeliveriesPage.tsx +49 -17
- package/.framework/src/pages/admin/DesignedPage.tsx +31 -30
- package/.framework/src/pages/admin/EmbeddingDetailPage.tsx +58 -0
- package/.framework/src/pages/admin/EmbeddingsPage.tsx +49 -0
- package/.framework/src/pages/admin/ExtendedShadcnTestPage.tsx +31 -29
- package/.framework/src/pages/admin/IncrementalShadcnTestPage.tsx +46 -29
- package/.framework/src/pages/admin/IntegratedDashboard.tsx +32 -29
- package/.framework/src/pages/admin/IntegrationDetailPage.tsx +68 -55
- package/.framework/src/pages/admin/IntegrationsPage.tsx +45 -42
- package/.framework/src/pages/admin/InvitesPage.tsx +60 -44
- package/.framework/src/pages/admin/LogsPage.tsx +87 -137
- package/.framework/src/pages/admin/MinimalShadcnTestPage.tsx +31 -29
- package/.framework/src/pages/admin/ObservabilityDashboard.tsx +150 -89
- package/.framework/src/pages/admin/PipelineDetailPage.tsx +77 -104
- package/.framework/src/pages/admin/PipelineExecutionsPage.tsx +44 -43
- package/.framework/src/pages/admin/PipelinesPage.tsx +59 -145
- package/.framework/src/pages/admin/PromptConfigDetailPage.tsx +53 -42
- package/.framework/src/pages/admin/PromptConfigsPage.tsx +47 -117
- package/.framework/src/pages/admin/ProperlyDesignedPage.tsx +31 -44
- package/.framework/src/pages/admin/RoleDetailPage.tsx +49 -92
- package/.framework/src/pages/admin/RolesPage.tsx +47 -164
- package/.framework/src/pages/admin/SecurityPage.tsx +310 -0
- package/.framework/src/pages/admin/SelectTestPage.tsx +30 -32
- package/.framework/src/pages/admin/ShadcnTestPage.tsx +37 -44
- package/.framework/src/pages/admin/SimpleDashboard.tsx +32 -44
- package/.framework/src/pages/admin/TestRunDetailPage.tsx +97 -44
- package/.framework/src/pages/admin/TestingDashboard.tsx +126 -71
- package/.framework/src/pages/admin/TimerDetailPage.tsx +67 -55
- package/.framework/src/pages/admin/TimersPage.tsx +44 -42
- package/.framework/src/pages/admin/TriggerDetailPage.tsx +47 -42
- package/.framework/src/pages/admin/TriggersPage.tsx +58 -57
- package/.framework/src/pages/admin/TypeDetailPage.tsx +91 -55
- package/.framework/src/pages/admin/TypesPage.tsx +45 -42
- package/.framework/src/pages/admin/cil/CILAgentPage.tsx +258 -128
- package/.framework/src/pages/admin/cil/CILChunkDetailPage.tsx +127 -123
- package/.framework/src/pages/admin/cil/CILDashboardPage.tsx +308 -235
- package/.framework/src/pages/admin/cil/CILFileListPage.tsx +159 -110
- package/.framework/src/pages/admin/cil/CILFileSelectPage.tsx +432 -0
- package/.framework/src/pages/admin/cil/CILGraphPage.tsx +200 -178
- package/.framework/src/pages/admin/cil/CILIngestionPage.tsx +286 -239
- package/.framework/src/pages/admin/cil/CILProjectsPage.tsx +211 -90
- package/.framework/src/pages/admin/cil/CILSearchPage.tsx +156 -143
- package/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx +379 -0
- package/.framework/src/pages/admin/cil/CILVersionsPage.tsx +337 -0
- package/.framework/src/pages/admin/cil/FlexiblePipelinePage.tsx +219 -214
- package/.framework/src/pages/admin/kb/KBAdminPage.tsx +64 -0
- package/.framework/src/pages/auth/AuthConfirmPage.tsx +135 -65
- package/.framework/src/pages/auth/ForgotPasswordPage.tsx +39 -31
- package/.framework/src/pages/auth/LoginPage.tsx +38 -32
- package/.framework/src/pages/auth/PendingApprovalPage.tsx +31 -28
- package/.framework/src/pages/auth/RegisterPage.tsx +429 -155
- package/.framework/src/pages/spine-framework/APIPage.tsx +33 -30
- package/.framework/src/pages/spine-framework/CLIPage.tsx +32 -30
- package/.framework/src/types/auth.ts +101 -93
- package/.framework/src/types/types.ts +283 -262
- package/.framework/templates/project.json +87 -0
- package/.framework/templates/spine.config.neutral.json +7 -0
- package/.framework/tests/api/api-surface.test.ts +381 -0
- package/.framework/tests/fixtures/seed.ts +427 -0
- package/.framework/tests/fixtures/teardown.ts +228 -0
- package/.framework/tests/reporter.ts +351 -0
- package/.framework/tests/setup.ts +135 -0
- package/.framework/tests/ui/ui-sweep.ts +278 -0
- package/.framework/tests/unit/admin-data-logger.test.ts +310 -0
- package/.framework/tests/unit/agent-runner.test.ts +2389 -0
- package/.framework/tests/unit/ai-interactions.test.ts +81 -0
- package/.framework/tests/unit/app-manifest.test.ts +359 -0
- package/.framework/tests/unit/assembly-scripts.test.ts +172 -0
- package/.framework/tests/unit/cil-determinism.test.ts +85 -0
- package/.framework/tests/unit/core-isolation.test.ts +153 -0
- package/.framework/tests/unit/funnel-signals.test.ts +135 -0
- package/.framework/tests/unit/install-app.test.ts +1759 -0
- package/.framework/tests/unit/invites-security.test.ts +572 -0
- package/.framework/tests/unit/kb-ingest-lease.test.ts +287 -0
- package/.framework/tests/unit/kb-search.test.ts +119 -0
- package/.framework/tests/unit/migrate.test.ts +509 -0
- package/.framework/tests/unit/notify.test.ts +136 -0
- package/.framework/tests/unit/permissions.test.ts +269 -0
- package/.framework/tests/unit/pipeline-runner.test.ts +755 -0
- package/.framework/tests/unit/principal-cache.test.ts +138 -0
- package/.framework/tests/unit/retrieval-golden.test.ts +520 -0
- package/.framework/tests/unit/runtime-isolation.test.ts +642 -0
- package/.framework/tests/unit/schema-utils.test.ts +225 -0
- package/.framework/tests/unit/trigger-engine.test.ts +513 -0
- package/.framework/tests/unit/validate-app.test.ts +527 -0
- package/README.md +34 -3
- package/bin/spine-framework.cjs +1 -0
- package/config/tailwind.config.cjs +7 -0
- package/config/tsconfig.functions.json +42 -0
- package/config/tsconfig.json +37 -9
- package/config/vite.config.ts +31 -2
- package/netlify.toml +31 -3
- package/package.json +46 -29
- package/scripts/assemble-frontend.sh +127 -44
- package/scripts/assemble-functions.sh +127 -29
- package/scripts/boundary-check.sh +6 -2
- package/scripts/build-manifest.sh +24 -68
- package/scripts/checksum-manifest.mts +345 -0
- package/scripts/dev-clean.sh +86 -0
- package/scripts/dev-netlify.sh +49 -0
- package/scripts/netlify-dev-wrapper.sh +2 -0
- package/scripts/verify-install.ts +358 -0
- package/scripts/verify-integrity.sh +21 -57
- package/scripts/verify-manifest.mts +305 -0
- package/templates/project/gitignore +45 -0
- package/{config → templates/project}/package-lock.json +22335 -9366
- package/vitest.config.ts +46 -0
- package/.framework/public/spine.config.json +0 -91
- package/config/deno.lock +0 -108
- package/config/tsconfig.node.tsbuildinfo +0 -1
- package/config/tsconfig.tsbuildinfo +0 -1
- package/config/vite.config.d.ts +0 -2
- package/custom/.devin/AGENT.md +0 -357
- package/custom/.devin/skills/install-app/SKILL.md +0 -39
- package/custom/.devin/skills/spine-workbench-discovery/SKILL.md +0 -39
- package/custom/.devin/skills/spine-workbench-idea/SKILL.md +0 -36
- package/custom/.devin/skills/spine-workbench-implement/SKILL.md +0 -46
- package/custom/.devin/skills/spine-workbench-initiative/SKILL.md +0 -28
- package/custom/.devin/skills/spine-workbench-plan/SKILL.md +0 -38
- package/custom/.devin/workflows/app-install.yaml +0 -83
- package/custom/README.md +0 -79
- package/docs/README.md +0 -15
- package/scripts/app-install-cli.ts +0 -286
- package/scripts/check-core-integrity.sh +0 -82
- package/scripts/ingest-chunks.cjs +0 -202
- package/scripts/kb-chunk-parser.cjs +0 -312
- package/scripts/kb-chunk-parser.ts +0 -330
- package/scripts/kb-ingest-docs.ts +0 -203
- package/scripts/load-test-app-install.ts +0 -484
- package/scripts/test-login.js +0 -33
- package/spine.config.json +0 -91
|
@@ -1,23 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
// CIL[
|
|
7
|
-
// CIL[DOC-
|
|
8
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Import all required modules for PipelineDetailPage component"]
|
|
9
|
-
// CIL[DOC-CONTEXT module="PipelineDetailPage" layer="ui" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\"\\\"]"]
|
|
10
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="React hooks, UI components, utilities" errors="Import errors" side_effects="Module loading"]
|
|
11
|
-
// CIL[DOC-MICRO logic_summary="Imports React, router, UI components, icons, and utility functions" notable_decisions="[]"]
|
|
12
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/PipelineDetailPage.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/pages/admin/PipelineDetailPage.tsx"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Top-level module imports for the pipeline detail admin page"]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Load React, routing, UI primitives, and admin-specific dependencies used by the component"]
|
|
4
|
+
// CIL[DOC-CONTEXT module="admin-pipeline" layer="pages" related_files=".framework/src/components/admin/PageInstructions.tsx,.framework/src/components/ui/alert.tsx,.framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/card.tsx,.framework/src/components/ui/checkbox.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/select.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/textarea.tsx,.framework/src/lib/api.ts,.framework/src/lib/utils.ts"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Imports hooks, router, API client, UI components, icons, utilities, and PageInstructions" notable_decisions="[]"]
|
|
7
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
13
8
|
// CIL[DOC-STABILITY stability="stable"]
|
|
14
|
-
// CIL[DOC-AUDIENCE audience="developer"]
|
|
15
|
-
|
|
16
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
17
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
18
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
19
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
20
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
9
|
+
// CIL[DOC-AUDIENCE audience="admin-ui-developer"]
|
|
10
|
+
|
|
21
11
|
import { useState, useEffect } from 'react'
|
|
22
12
|
import { useParams, useNavigate } from 'react-router-dom'
|
|
23
13
|
import { apiFetch } from '../../lib/api'
|
|
@@ -34,21 +24,22 @@ import { Badge } from '../../components/ui/badge'
|
|
|
34
24
|
import { ArrowLeft, Play, Pause, AlertCircle } from 'lucide-react'
|
|
35
25
|
import { formatDateTime } from '../../lib/utils'
|
|
36
26
|
import { PageInstructions } from '../../components/admin/PageInstructions'
|
|
37
|
-
// CIL[
|
|
38
|
-
// CIL[
|
|
39
|
-
// CIL[DOC-
|
|
40
|
-
// CIL[DOC-
|
|
41
|
-
// CIL[DOC-CONTEXT module="PipelineDetailPage" layer="types" related_files="[\".framework/src/pages/admin/IntegrationsPage.tsx\",\".framework/functions/_shared/schema-utils.ts\",\".framework/functions/_shared/principal.ts\",\"custom/apps/cortex/functions/custom_cil-embeddings.ts\",\"\\\"]"]
|
|
42
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Pipeline interface" errors="Type errors" side_effects="Type system"]
|
|
43
|
-
// CIL[DOC-MICRO logic_summary="Defines structure for pipeline configuration with steps and execution data" notable_decisions="[]"]
|
|
44
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
45
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
46
|
-
// CIL[DOC-VECTOR type="context" content="Layer: types. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/IntegrationsPage.tsx, .framework/functions/_shared/schema-utils.ts, .framework/functions/_shared/principal.ts, custom/apps/cortex/functions/custom_cil-embeddings.ts, \."]
|
|
47
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
48
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
49
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
27
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Top-level module imports for the pipeline detail admin page'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx"]
|
|
28
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
29
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
30
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
50
31
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
51
32
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
33
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/PipelineDetailPage.tsx:module_header:module_header"]
|
|
34
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/PipelineDetailPage.tsx:pipeline:interface" type="interface" identity="pipeline" parent="~/.framework/src/pages/admin/PipelineDetailPage.tsx"]
|
|
35
|
+
// CIL[DOC-MACRO purpose="TypeScript shape of a pipeline record"]
|
|
36
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Define the Pipeline data structure used by forms and API responses"]
|
|
37
|
+
// CIL[DOC-CONTEXT module="admin-pipeline" layer="pages" related_files=".framework/src/components/admin/PageInstructions.tsx,.framework/src/components/ui/alert.tsx,.framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/card.tsx,.framework/src/components/ui/checkbox.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/select.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/textarea.tsx,.framework/src/lib/api.ts,.framework/src/lib/utils.ts,.framework/src/pages/admin/PipelineDetailPage.tsx"]
|
|
38
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Pipeline type" errors="none" side_effects="none"]
|
|
39
|
+
// CIL[DOC-MICRO logic_summary="Describes id, name, description, trigger_type, stages, config, metadata, is_active and timestamps" notable_decisions="[]"]
|
|
40
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
41
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
42
|
+
|
|
52
43
|
interface Pipeline {
|
|
53
44
|
id: string
|
|
54
45
|
name: string
|
|
@@ -63,27 +54,43 @@ interface Pipeline {
|
|
|
63
54
|
created_at: string
|
|
64
55
|
updated_at: string
|
|
65
56
|
}
|
|
66
|
-
// CIL[
|
|
67
|
-
// CIL[
|
|
68
|
-
// CIL[DOC-
|
|
69
|
-
// CIL[DOC-
|
|
70
|
-
// CIL[DOC-CONTEXT module="PipelineDetailPage" layer="constants" related_files="[\".framework/src/pages/admin/RolesPage.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\"\\\"]"]
|
|
71
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="status and trigger arrays" errors="none" side_effects="none"]
|
|
72
|
-
// CIL[DOC-MICRO logic_summary="Defines dropdown options for pipeline status and trigger types" notable_decisions="[]"]
|
|
73
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
74
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
75
|
-
// CIL[DOC-VECTOR type="context" content="Layer: constants. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/RolesPage.tsx, custom/apps/portal/pages/ContentPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/src/pages/admin/IntegrationsPage.tsx, \."]
|
|
76
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
77
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
78
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
57
|
+
// CIL[DOC-VECTOR type="context" content="purpose='TypeScript shape of a pipeline record'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx"]
|
|
58
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
59
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
60
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
79
61
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
80
62
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
63
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/PipelineDetailPage.tsx:pipeline:interface"]
|
|
64
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/PipelineDetailPage.tsx:statuses:constant" type="constant" identity="statuses" parent="~/.framework/src/pages/admin/PipelineDetailPage.tsx"]
|
|
65
|
+
// CIL[DOC-MACRO purpose="Selectable pipeline status options for UI dropdowns"]
|
|
66
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide value/label pairs for pipeline status rendering"]
|
|
67
|
+
// CIL[DOC-CONTEXT module="admin-pipeline" layer="pages" related_files=".framework/src/components/admin/PageInstructions.tsx,.framework/src/components/ui/alert.tsx,.framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/card.tsx,.framework/src/components/ui/checkbox.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/select.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/textarea.tsx,.framework/src/lib/api.ts,.framework/src/lib/utils.ts,.framework/src/pages/admin/PipelineDetailPage.tsx"]
|
|
68
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="STATUSES array" errors="none" side_effects="none"]
|
|
69
|
+
// CIL[DOC-MICRO logic_summary="Constant array mapping draft, active, paused, and archived to display labels" notable_decisions="[]"]
|
|
70
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
71
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
72
|
+
|
|
81
73
|
const STATUSES = [
|
|
82
74
|
{ value: 'draft', label: 'Draft' },
|
|
83
75
|
{ value: 'active', label: 'Active' },
|
|
84
76
|
{ value: 'paused', label: 'Paused' },
|
|
85
77
|
{ value: 'archived', label: 'Archived' }
|
|
86
78
|
]
|
|
79
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Selectable pipeline status options for UI dropdowns'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx"]
|
|
80
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
81
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
82
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
83
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
84
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
85
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/PipelineDetailPage.tsx:statuses:constant"]
|
|
86
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/PipelineDetailPage.tsx:trigger_types:constant" type="constant" identity="trigger_types" parent="~/.framework/src/pages/admin/PipelineDetailPage.tsx"]
|
|
87
|
+
// CIL[DOC-MACRO purpose="Selectable pipeline trigger type options"]
|
|
88
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide value/label pairs for trigger type rendering"]
|
|
89
|
+
// CIL[DOC-CONTEXT module="admin-pipeline" layer="pages" related_files=".framework/src/components/admin/PageInstructions.tsx,.framework/src/components/ui/alert.tsx,.framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/card.tsx,.framework/src/components/ui/checkbox.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/select.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/textarea.tsx,.framework/src/lib/api.ts,.framework/src/lib/utils.ts,.framework/src/pages/admin/PipelineDetailPage.tsx"]
|
|
90
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="TRIGGER_TYPES array" errors="none" side_effects="none"]
|
|
91
|
+
// CIL[DOC-MICRO logic_summary="Constant array mapping manual, scheduled, webhook, and event to display labels" notable_decisions="[]"]
|
|
92
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
93
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
87
94
|
|
|
88
95
|
const TRIGGER_TYPES = [
|
|
89
96
|
{ value: 'manual', label: 'Manual' },
|
|
@@ -91,21 +98,22 @@ const TRIGGER_TYPES = [
|
|
|
91
98
|
{ value: 'webhook', label: 'Webhook' },
|
|
92
99
|
{ value: 'event', label: 'Event' }
|
|
93
100
|
]
|
|
94
|
-
// CIL[
|
|
95
|
-
// CIL[
|
|
96
|
-
// CIL[DOC-
|
|
97
|
-
// CIL[DOC-
|
|
98
|
-
// CIL[DOC-CONTEXT module="PipelineDetailPage" layer="ui" related_files="[\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/functions/_shared/schema-utils.ts\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/functions/_shared/principal.ts\",\"\\\"]"]
|
|
99
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="JSX structure" errors="Render errors" side_effects="DOM updates"]
|
|
100
|
-
// CIL[DOC-MICRO logic_summary="Renders loading states, error states, and pipeline form with all fields" notable_decisions="[]"]
|
|
101
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
102
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
103
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/schema-utils.ts, custom/apps/portal/pages/ContentPage.tsx, .framework/functions/_shared/principal.ts, \."]
|
|
104
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
105
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
106
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
101
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Selectable pipeline trigger type options'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx"]
|
|
102
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
103
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
104
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
107
105
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
108
106
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
107
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/PipelineDetailPage.tsx:trigger_types:constant"]
|
|
108
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/PipelineDetailPage.tsx:pipelinedetailpage:component" type="component" identity="pipelinedetailpage" parent="~/.framework/src/pages/admin/PipelineDetailPage.tsx"]
|
|
109
|
+
// CIL[DOC-MACRO purpose="Admin page for viewing, creating, and editing a pipeline"]
|
|
110
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render pipeline form, load/save pipeline data, toggle activation, and display stage list"]
|
|
111
|
+
// CIL[DOC-CONTEXT module="admin-pipeline" layer="pages" related_files=".framework/src/components/admin/PageInstructions.tsx,.framework/src/components/ui/alert.tsx,.framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/card.tsx,.framework/src/components/ui/checkbox.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/select.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/textarea.tsx,.framework/src/lib/api.ts,.framework/src/lib/utils.ts,.framework/src/pages/admin/PipelineDetailPage.tsx"]
|
|
112
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="React element" errors="Network or JSON parse errors" side_effects="Calls /api/pipelines, navigates, updates local state"]
|
|
113
|
+
// CIL[DOC-MICRO logic_summary="Fetches pipeline by URL id, manages form state, parses JSON fields, saves via API, and renders editable detail UI" notable_decisions="[]"]
|
|
114
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
115
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
116
|
+
|
|
109
117
|
export function PipelineDetailPage() {
|
|
110
118
|
const { id } = useParams<{ id: string }>()
|
|
111
119
|
const navigate = useNavigate()
|
|
@@ -125,25 +133,13 @@ export function PipelineDetailPage() {
|
|
|
125
133
|
is_active: true
|
|
126
134
|
})
|
|
127
135
|
|
|
128
|
-
// CIL[BEGIN chunk_id="pipelinedetailpage_hooks_1783666257" type="hooks" identity="useEffect" parent="pipelinedetailpage_function_pipelinedetailpage_1783666257"]
|
|
129
|
-
// CIL[DOC-MACRO purpose="Fetch pipeline data and manage form state"]
|
|
130
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Handle useEffect"]
|
|
131
|
-
// CIL[DOC-CONTEXT module="useEffect" layer="unknown" related_files="[]"]
|
|
132
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
|
|
133
|
-
// CIL[DOC-MICRO logic_summary="Implements useEffect" notable_decisions="[]"]
|
|
134
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
135
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
136
|
-
// CIL[DOC-VECTOR type="context" content="Layer: unknown. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
137
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
138
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
139
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
140
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
141
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
142
136
|
useEffect(() => {
|
|
143
137
|
if (isCreateMode) {
|
|
144
138
|
setLoading(false)
|
|
145
139
|
return
|
|
146
140
|
}
|
|
141
|
+
|
|
142
|
+
|
|
147
143
|
setLoading(true)
|
|
148
144
|
const fetchPipeline = async () => {
|
|
149
145
|
try {
|
|
@@ -170,22 +166,7 @@ export function PipelineDetailPage() {
|
|
|
170
166
|
}
|
|
171
167
|
fetchPipeline()
|
|
172
168
|
}, [id, isCreateMode])
|
|
173
|
-
// CIL[END chunk_id="pipelinedetailpage_hooks_1783666257"]
|
|
174
169
|
|
|
175
|
-
// CIL[BEGIN chunk_id="pipelinedetailpage_handlers_1783666257" type="event_handlers" identity="handleSave" parent="pipelinedetailpage_function_pipelinedetailpage_1783666257"]
|
|
176
|
-
// CIL[DOC-MACRO purpose="Handle form submission and pipeline status toggle"]
|
|
177
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Handle handleSave"]
|
|
178
|
-
// CIL[DOC-CONTEXT module="handleSave" layer="unknown" related_files="[]"]
|
|
179
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
|
|
180
|
-
// CIL[DOC-MICRO logic_summary="Implements handleSave" notable_decisions="[]"]
|
|
181
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
182
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
183
|
-
// CIL[DOC-VECTOR type="context" content="Layer: unknown. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
184
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
185
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
186
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
187
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
188
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
189
170
|
const handleSave = async () => {
|
|
190
171
|
try {
|
|
191
172
|
let parsedConfig = {}
|
|
@@ -230,22 +211,7 @@ export function PipelineDetailPage() {
|
|
|
230
211
|
setError(err instanceof Error ? err.message : 'Failed to update status')
|
|
231
212
|
}
|
|
232
213
|
}
|
|
233
|
-
// CIL[END chunk_id="pipelinedetailpage_handlers_1783666257"]
|
|
234
214
|
|
|
235
|
-
// CIL[BEGIN chunk_id="pipelinedetailpage_render_1783666257" type="render_logic" identity="return" parent="pipelinedetailpage_function_pipelinedetailpage_1783666257"]
|
|
236
|
-
// CIL[DOC-MACRO purpose="Render the complete pipeline detail interface"]
|
|
237
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Handle return"]
|
|
238
|
-
// CIL[DOC-CONTEXT module="return" layer="unknown" related_files="[]"]
|
|
239
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
|
|
240
|
-
// CIL[DOC-MICRO logic_summary="Implements return" notable_decisions="[]"]
|
|
241
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
242
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
243
|
-
// CIL[DOC-VECTOR type="context" content="Layer: unknown. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
244
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
245
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
246
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
247
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
248
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
249
215
|
if (loading) return (
|
|
250
216
|
<div className="space-y-6">
|
|
251
217
|
<Skeleton className="h-8 w-48" />
|
|
@@ -296,6 +262,7 @@ export function PipelineDetailPage() {
|
|
|
296
262
|
</ul> },
|
|
297
263
|
{ title: 'Downstream impact', content: <ul className="list-disc pl-4 space-y-1">
|
|
298
264
|
<li>The runner uses the stages array to execute steps in order.</li>
|
|
265
|
+
|
|
299
266
|
<li>Triggers and timers reference pipelines by ID; changing the trigger type may require re-linking triggers or timers.</li>
|
|
300
267
|
</ul> },
|
|
301
268
|
{ title: 'How to create, save, and validate', content: <ol className="list-decimal pl-4 space-y-1">
|
|
@@ -304,6 +271,7 @@ export function PipelineDetailPage() {
|
|
|
304
271
|
<li>Click Create to save, or Edit then Save for existing pipelines. Use the Activate/Pause button to toggle is_active.</li>
|
|
305
272
|
</ol> },
|
|
306
273
|
{ title: 'Common mistakes', content: <ul className="list-disc pl-4 space-y-1">
|
|
274
|
+
|
|
307
275
|
<li>Setting trigger type to scheduled but not linking a timer.</li>
|
|
308
276
|
<li>Pasting a non-array value into Stages (it must be a JSON array).</li>
|
|
309
277
|
<li>Expecting to edit step order here; the JSON stages field is the source of truth.</li>
|
|
@@ -351,5 +319,10 @@ export function PipelineDetailPage() {
|
|
|
351
319
|
</div>
|
|
352
320
|
)
|
|
353
321
|
}
|
|
354
|
-
// CIL[
|
|
355
|
-
// CIL[
|
|
322
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Admin page for viewing, creating, and editing a pipeline'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx"]
|
|
323
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
324
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
325
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
326
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
327
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
328
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/PipelineDetailPage.tsx:pipelinedetailpage:component"]
|
|
@@ -1,23 +1,16 @@
|
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/PipelineExecutionsPage.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/pages/admin/PipelineExecutionsPage.tsx"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Provides the admin UI page for monitoring and managing pipeline execution runs"]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Renders a sortable, filterable list of pipeline executions with status, duration, and trigger metadata; handles search, status filtering, sorting, and navigation to execution detail"]
|
|
4
|
+
// CIL[DOC-CONTEXT module="PipelineExecutionsPage" layer="pages" related_files=".framework/src/components/admin/AdminListPage.tsx,.framework/src/components/admin/SortableTableHeader.tsx,.framework/src/components/ui/LoadingSpinner.tsx,.framework/src/components/ui/button.tsx,.framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="searchTerm, selectedStatus, sortKey, sortDirection, pipeline execution data from useApi, stats data from useApi" outputs="JSX admin list page with filtered/sorted execution rows and status stats" errors="Network errors bubble through useApi; component renders loading/error states" side_effects="Mutates window.location on row click to navigate to execution detail"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Fetches execution list and stats via useApi, filters by search term and status, sorts by selected key/direction, formats duration and status badges, renders AdminListPage with table" notable_decisions="[]"]
|
|
7
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
8
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
9
|
+
// CIL[DOC-AUDIENCE audience="admin"]
|
|
1
10
|
|
|
2
11
|
|
|
3
12
|
|
|
4
13
|
|
|
5
|
-
|
|
6
|
-
// CIL[BEGIN chunk_id="pipelineexecutionspage_module_header_1783666257" type="module_header" identity="imports" parent="none"]
|
|
7
|
-
// CIL[DOC-MACRO purpose="Import React dependencies and UI components"]
|
|
8
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Import all required modules for PipelineExecutionsPage component"]
|
|
9
|
-
// CIL[DOC-CONTEXT module="PipelineExecutionsPage" layer="ui" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\"\\\"]"]
|
|
10
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="React hooks, UI components, utilities" errors="Import errors" side_effects="Module loading"]
|
|
11
|
-
// CIL[DOC-MICRO logic_summary="Imports React, icons, UI components, and utility functions" notable_decisions="[]"]
|
|
12
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
13
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
14
|
-
// CIL[DOC-AUDIENCE audience="developer"]
|
|
15
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/components/ui/dialog.tsx, .framework/src/components/ui/table-primitives.tsx, \."]
|
|
16
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
17
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
18
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
19
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
20
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
21
14
|
import React, { useState } from 'react'
|
|
22
15
|
import { Play, CheckCircle, XCircle, Clock, RefreshCw, Zap } from 'lucide-react';
|
|
23
16
|
import { LoadingSpinner } from '../../components/ui/LoadingSpinner'
|
|
@@ -27,21 +20,22 @@ import { SortableTableHeader } from '../../components/admin/SortableTableHeader'
|
|
|
27
20
|
import { formatDateTime } from '../../lib/utils'
|
|
28
21
|
import { useApi } from '../../hooks/useApi'
|
|
29
22
|
import { apiFetch } from '../../lib/api'
|
|
30
|
-
|
|
31
|
-
// CIL[
|
|
32
|
-
// CIL[DOC-
|
|
33
|
-
// CIL[DOC-
|
|
34
|
-
// CIL[DOC-
|
|
35
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="PipelineExecution interface" errors="Type errors" side_effects="Type system"]
|
|
36
|
-
// CIL[DOC-MICRO logic_summary="Defines structure for pipeline execution tracking with status and metadata" notable_decisions="[]"]
|
|
37
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
38
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
39
|
-
// CIL[DOC-VECTOR type="context" content="Layer: types. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/IntegrationsPage.tsx, .framework/functions/_shared/schema-utils.ts, .framework/functions/_shared/principal.ts, custom/apps/cortex/functions/custom_cil-embeddings.ts, \."]
|
|
40
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
41
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
42
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
23
|
+
|
|
24
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Provides the admin UI page for monitoring and managing pipeline execution runs'; No verified external callers; imports: .framework/src/components/ui/LoadingSpinner.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/admin/AdminListPage.tsx"]
|
|
25
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
26
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
27
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
43
28
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
44
29
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
30
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/PipelineExecutionsPage.tsx:module_header:module_header"]
|
|
31
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/PipelineExecutionsPage.tsx:PipelineExecution:interface" type="interface" identity="PipelineExecution" parent="~/.framework/src/pages/admin/PipelineExecutionsPage.tsx"]
|
|
32
|
+
// CIL[DOC-MACRO purpose="Defines the shape of a pipeline execution record"]
|
|
33
|
+
// CIL[DOC-RESPONSIBILITY responsibility="TypeScript interface for pipeline execution data consumed and rendered by PipelineExecutionsPage"]
|
|
34
|
+
// CIL[DOC-CONTEXT module="PipelineExecution" layer="types" related_files=".framework/src/components/admin/AdminListPage.tsx,.framework/src/components/admin/SortableTableHeader.tsx,.framework/src/components/ui/LoadingSpinner.tsx,.framework/src/components/ui/button.tsx,.framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts,.framework/src/pages/admin/PipelineExecutionsPage.tsx"]
|
|
35
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="typed interface" errors="none" side_effects="none"]
|
|
36
|
+
// CIL[DOC-MICRO logic_summary="Describes execution status, timing, trigger/result payloads, and optional related pipeline and person objects" notable_decisions="[]"]
|
|
37
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
38
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
45
39
|
interface PipelineExecution {
|
|
46
40
|
id: string
|
|
47
41
|
pipeline_id: string
|
|
@@ -65,21 +59,22 @@ interface PipelineExecution {
|
|
|
65
59
|
}
|
|
66
60
|
created_at: string
|
|
67
61
|
}
|
|
68
|
-
// CIL[
|
|
69
|
-
// CIL[
|
|
70
|
-
// CIL[DOC-
|
|
71
|
-
// CIL[DOC-
|
|
72
|
-
// CIL[DOC-CONTEXT module="PipelineExecutionsPage" layer="ui" related_files="[\".framework/src/components/ui/dialog.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\"custom/apps/cortex/functions/custom_cil-embeddings.ts\",\"custom/apps/portal/pages/ContentPage.tsx\",\"\\\"]"]
|
|
73
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="JSX element" errors="Render errors" side_effects="API calls, navigation"]
|
|
74
|
-
// CIL[DOC-MICRO logic_summary="Main component that displays pipeline executions with filtering and sorting" notable_decisions="[]"]
|
|
75
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
76
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
77
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/ui/dialog.tsx, .framework/src/components/ui/table-primitives.tsx, custom/apps/cortex/functions/custom_cil-embeddings.ts, custom/apps/portal/pages/ContentPage.tsx, \."]
|
|
78
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
79
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
80
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
62
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Defines the shape of a pipeline execution record'; No verified external callers; imports: .framework/src/components/ui/LoadingSpinner.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/admin/AdminListPage.tsx"]
|
|
63
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
64
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
65
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
81
66
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
82
67
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
68
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/PipelineExecutionsPage.tsx:PipelineExecution:interface"]
|
|
69
|
+
|
|
70
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/PipelineExecutionsPage.tsx:PipelineExecutionsPage:component" type="component" identity="PipelineExecutionsPage" parent="~/.framework/src/pages/admin/PipelineExecutionsPage.tsx"]
|
|
71
|
+
// CIL[DOC-MACRO purpose="React component that renders the pipeline executions admin list page"]
|
|
72
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Fetches and displays pipeline executions, supports filtering/sorting, and links to individual execution detail"]
|
|
73
|
+
// CIL[DOC-CONTEXT module="PipelineExecutionsPage" layer="pages" related_files=".framework/src/components/admin/AdminListPage.tsx,.framework/src/components/admin/SortableTableHeader.tsx,.framework/src/components/ui/LoadingSpinner.tsx,.framework/src/components/ui/button.tsx,.framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts,.framework/src/pages/admin/PipelineExecutionsPage.tsx"]
|
|
74
|
+
// CIL[DOC-CONTRACT inputs="none (UI state only)" outputs="JSX for the pipeline executions page" errors="Renders error from useApi; row navigation uses window.location" side_effects="Navigates on row click, re-fetches data on refetch"]
|
|
75
|
+
// CIL[DOC-MICRO logic_summary="Uses local state for search, status filter, and sort; fetches executions and stats; filters and sorts the list; renders status badges and durations" notable_decisions="[]"]
|
|
76
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
77
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
83
78
|
export function PipelineExecutionsPage() {
|
|
84
79
|
const [searchTerm, setSearchTerm] = useState('')
|
|
85
80
|
const [selectedStatus, setSelectedStatus] = useState('all')
|
|
@@ -309,4 +304,10 @@ export function PipelineExecutionsPage() {
|
|
|
309
304
|
</AdminListPage>
|
|
310
305
|
)
|
|
311
306
|
}
|
|
312
|
-
// CIL[
|
|
307
|
+
// CIL[DOC-VECTOR type="context" content="purpose='React component that renders the pipeline executions admin list page'; No verified external callers; imports: .framework/src/components/ui/LoadingSpinner.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/admin/AdminListPage.tsx"]
|
|
308
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
309
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
310
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
311
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
312
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
313
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/PipelineExecutionsPage.tsx:PipelineExecutionsPage:component"]
|