spine-framework 0.3.145 → 0.4.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/.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 +5051 -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,22 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
// CIL[
|
|
6
|
-
// CIL[DOC-
|
|
7
|
-
// CIL[DOC-
|
|
8
|
-
// CIL[DOC-CONTEXT module="SelectTestPage" layer="frontend-page" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
|
|
9
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="React hooks and UI components" errors="none" side_effects="none"]
|
|
10
|
-
// CIL[DOC-MICRO logic_summary="Imports useState and shadcn Select components" notable_decisions="[]"]
|
|
11
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/SelectTestPage.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/pages/admin/SelectTestPage.tsx"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Import React and the shadcn UI primitives used by the Select component test page"]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Declare the module-level dependencies required to render the SelectTestPage component"]
|
|
4
|
+
// CIL[DOC-CONTEXT module=".framework/src/pages/admin/SelectTestPage.tsx" layer="presentation" related_files=".framework/src/components/ui/card.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/select.tsx"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="React hooks and shadcn UI card, select, and label primitives imported for use" errors="none" side_effects="none"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Load useState from React and import Card, Select, and Label components from the local shadcn UI component library" notable_decisions="[]"]
|
|
7
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
12
8
|
// CIL[DOC-STABILITY stability="stable"]
|
|
13
|
-
// CIL[DOC-AUDIENCE audience="
|
|
14
|
-
|
|
15
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
16
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
17
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
18
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
19
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
9
|
+
// CIL[DOC-AUDIENCE audience="admin UI feature and component testers"]
|
|
10
|
+
|
|
20
11
|
import { useState } from 'react'
|
|
21
12
|
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '../../components/ui/card'
|
|
22
13
|
import {
|
|
@@ -27,21 +18,22 @@ import {
|
|
|
27
18
|
SelectValue,
|
|
28
19
|
} from '../../components/ui/select'
|
|
29
20
|
import { Label } from '../../components/ui/label'
|
|
30
|
-
|
|
31
|
-
// CIL[
|
|
32
|
-
// CIL[DOC-
|
|
33
|
-
// CIL[DOC-
|
|
34
|
-
// CIL[DOC-
|
|
35
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Select component demo UI" errors="none" side_effects="Updates component state"]
|
|
36
|
-
// CIL[DOC-MICRO logic_summary="Manages selected value state and renders Select component" 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: frontend-page. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/components/ui/dialog.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
|
|
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."]
|
|
21
|
+
|
|
22
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Import React and the shadcn UI primitives used by the Select component test page'; No verified external callers; imports: .framework/src/components/ui/card.tsx,.framework/src/components/ui/select.tsx,.framework/src/components/ui/label.tsx"]
|
|
23
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
24
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
25
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
43
26
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
44
27
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
28
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/SelectTestPage.tsx:module_header:module_header"]
|
|
29
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/SelectTestPage.tsx:SelectTestPage:component" type="component" identity="SelectTestPage" parent="~/.framework/src/pages/admin/SelectTestPage.tsx"]
|
|
30
|
+
// CIL[DOC-MACRO purpose="Render a test page that demonstrates the shadcn Select component and tracks the chosen value"]
|
|
31
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Present a styled Select demo with options and display the current selection to the user"]
|
|
32
|
+
// CIL[DOC-CONTEXT module=".framework/src/pages/admin/SelectTestPage.tsx" layer="presentation" related_files=".framework/src/components/ui/card.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/select.tsx,.framework/src/pages/admin/SelectTestPage.tsx"]
|
|
33
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="JSX markup for the Select component demo page" errors="none" side_effects="none"]
|
|
34
|
+
// CIL[DOC-MICRO logic_summary="Maintain a local selected value with useState and render a Select control alongside a readout of the current value" notable_decisions="[]"]
|
|
35
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
36
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
45
37
|
export function SelectTestPage() {
|
|
46
38
|
const [selected, setSelected] = useState('')
|
|
47
39
|
|
|
@@ -83,4 +75,10 @@ export function SelectTestPage() {
|
|
|
83
75
|
</div>
|
|
84
76
|
)
|
|
85
77
|
}
|
|
86
|
-
// CIL[
|
|
78
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render a test page that demonstrates the shadcn Select component and tracks the chosen value'; No verified external callers; imports: .framework/src/components/ui/card.tsx,.framework/src/components/ui/select.tsx,.framework/src/components/ui/label.tsx"]
|
|
79
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
80
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
81
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
82
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
83
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
84
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/SelectTestPage.tsx:SelectTestPage:component"]
|
|
@@ -1,22 +1,16 @@
|
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/ShadcnTestPage.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/pages/admin/ShadcnTestPage.tsx"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Defines dependencies and module context for the admin shadcn/ui test page"]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Import and assemble shadcn/ui component library dependencies for the admin visual test page"]
|
|
4
|
+
// CIL[DOC-CONTEXT module="admin" layer="page" related_files=".framework/src/components/ui/accordion.tsx,.framework/src/components/ui/alert.tsx,.framework/src/components/ui/avatar.tsx,.framework/src/components/ui/badge.tsx,.framework/src/components/ui/breadcrumb.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/card.tsx,.framework/src/components/ui/checkbox.tsx,.framework/src/components/ui/dialog.tsx,.framework/src/components/ui/dropdown-menu.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/popover.tsx,.framework/src/components/ui/progress.tsx,.framework/src/components/ui/radio-group.tsx,.framework/src/components/ui/scroll-area.tsx,.framework/src/components/ui/select.tsx,.framework/src/components/ui/separator.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/slider.tsx,.framework/src/components/ui/switch.tsx,.framework/src/components/ui/table.tsx,.framework/src/components/ui/tabs.tsx,.framework/src/components/ui/textarea.tsx,.framework/src/components/ui/tooltip.tsx,.framework/src/lib/utils.ts"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="React component exports and side-effect-free UI page" errors="none" side_effects="none"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Top-level imports for all shadcn/ui primitives used by the test page" notable_decisions="[]"]
|
|
7
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
8
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
9
|
+
// CIL[DOC-AUDIENCE audience="developers"]
|
|
1
10
|
|
|
2
11
|
|
|
3
12
|
|
|
4
13
|
|
|
5
|
-
// CIL[BEGIN chunk_id="shadcntestpage_module_header_1783665503" type="module_header" identity="module_header" parent="none"]
|
|
6
|
-
// CIL[DOC-MACRO purpose="Import React hooks and comprehensive shadcn UI components"]
|
|
7
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Provide all necessary UI components for testing shadcn library"]
|
|
8
|
-
// CIL[DOC-CONTEXT module="ShadcnTestPage" layer="frontend-page" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
|
|
9
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="React hooks and 54+ UI components" errors="none" side_effects="none"]
|
|
10
|
-
// CIL[DOC-MICRO logic_summary="Imports useState and extensive shadcn component library" notable_decisions="[]"]
|
|
11
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
12
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
13
|
-
// CIL[DOC-AUDIENCE audience="developer"]
|
|
14
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-page. 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/pages/admin/RolesPage.tsx, \."]
|
|
15
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
16
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
17
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
18
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
19
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
20
14
|
import { useState } from 'react'
|
|
21
15
|
import {
|
|
22
16
|
Card,
|
|
@@ -119,21 +113,22 @@ import {
|
|
|
119
113
|
Info
|
|
120
114
|
} from 'lucide-react'
|
|
121
115
|
import { cn } from '../../lib/utils'
|
|
122
|
-
|
|
123
|
-
// CIL[
|
|
124
|
-
// CIL[DOC-
|
|
125
|
-
// CIL[DOC-
|
|
126
|
-
// CIL[DOC-
|
|
127
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Complete component showcase UI" errors="none" side_effects="none"]
|
|
128
|
-
// CIL[DOC-MICRO logic_summary="Renders cards, forms, interactive elements, and layout components" notable_decisions="[]"]
|
|
129
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
130
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
131
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-page. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/ui/dialog.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
|
|
132
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
133
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
134
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
116
|
+
|
|
117
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Defines dependencies and module context for the admin shadcn/ui test page'; No verified external callers; imports: .framework/src/components/ui/card.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx"]
|
|
118
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
119
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
120
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
135
121
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
136
122
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
123
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/ShadcnTestPage.tsx:module_header:module_header"]
|
|
124
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/ShadcnTestPage.tsx:ShadcnTestPage:component" type="component" identity="ShadcnTestPage" parent="~/.framework/src/pages/admin/ShadcnTestPage.tsx"]
|
|
125
|
+
// CIL[DOC-MACRO purpose="Renders a comprehensive visual test page demonstrating all installed shadcn/ui components in the admin panel"]
|
|
126
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Display b1a0RuGWG-preset-themed shadcn/ui components and verify installation"]
|
|
127
|
+
// CIL[DOC-CONTEXT module="admin" layer="component" related_files=".framework/src/components/ui/accordion.tsx,.framework/src/components/ui/alert.tsx,.framework/src/components/ui/avatar.tsx,.framework/src/components/ui/badge.tsx,.framework/src/components/ui/breadcrumb.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/card.tsx,.framework/src/components/ui/checkbox.tsx,.framework/src/components/ui/dialog.tsx,.framework/src/components/ui/dropdown-menu.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/popover.tsx,.framework/src/components/ui/progress.tsx,.framework/src/components/ui/radio-group.tsx,.framework/src/components/ui/scroll-area.tsx,.framework/src/components/ui/select.tsx,.framework/src/components/ui/separator.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/slider.tsx,.framework/src/components/ui/switch.tsx,.framework/src/components/ui/table.tsx,.framework/src/components/ui/tabs.tsx,.framework/src/components/ui/textarea.tsx,.framework/src/components/ui/tooltip.tsx,.framework/src/lib/utils.ts,.framework/src/pages/admin/ShadcnTestPage.tsx"]
|
|
128
|
+
// CIL[DOC-CONTRACT inputs="none (self-contained component)" outputs="Rendered JSX for the admin UI test page" errors="none" side_effects="Local component state for progress, slider value, and selected date"]
|
|
129
|
+
// CIL[DOC-MICRO logic_summary="Combines shadcn/ui primitives (card, form, table, tabs, dialog, accordion, avatar, skeleton, scroll area, radio group) into a responsive admin test layout with interactive progress and slider controls" notable_decisions="[]"]
|
|
130
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
131
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
137
132
|
export function ShadcnTestPage() {
|
|
138
133
|
const [date, setDate] = useState<Date>()
|
|
139
134
|
const [progress, setProgress] = useState(68)
|
|
@@ -144,20 +139,6 @@ export function ShadcnTestPage() {
|
|
|
144
139
|
return date.toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' })
|
|
145
140
|
}
|
|
146
141
|
|
|
147
|
-
// CIL[BEGIN chunk_id="shadcntestpage_return_1783665503" type="jsx" identity="return" parent="shadcntestpage_shadcntestpage_1783665503"]
|
|
148
|
-
// CIL[DOC-MACRO purpose="Render comprehensive shadcn component showcase with all UI elements"]
|
|
149
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Handle return"]
|
|
150
|
-
// CIL[DOC-CONTEXT module="ShadcnTestPage" layer="frontend-page" related_files="[\".framework/src/components/ui/dialog.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
|
|
151
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Complete component showcase UI" errors="none" side_effects="none"]
|
|
152
|
-
// CIL[DOC-MICRO logic_summary="Renders cards, forms, interactive elements, and layout components" notable_decisions="[]"]
|
|
153
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
154
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
155
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-page. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/ui/dialog.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
|
|
156
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
157
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
158
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
159
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
160
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
161
142
|
return (
|
|
162
143
|
<TooltipProvider>
|
|
163
144
|
<div className="flex-1 space-y-6 p-8 pt-6">
|
|
@@ -486,7 +467,12 @@ export function ShadcnTestPage() {
|
|
|
486
467
|
<DialogHeader>
|
|
487
468
|
<DialogTitle>Test Dialog</DialogTitle>
|
|
488
469
|
<DialogDescription>
|
|
470
|
+
|
|
471
|
+
|
|
472
|
+
|
|
473
|
+
|
|
489
474
|
This is a modal dialog using shadcn Dialog component.
|
|
475
|
+
|
|
490
476
|
</DialogDescription>
|
|
491
477
|
</DialogHeader>
|
|
492
478
|
<div className="space-y-4 py-4">
|
|
@@ -621,6 +607,13 @@ export function ShadcnTestPage() {
|
|
|
621
607
|
</div>
|
|
622
608
|
</TooltipProvider>
|
|
623
609
|
)
|
|
624
|
-
// CIL[END chunk_id="shadcntestpage_return_1783665503"]
|
|
625
610
|
}
|
|
626
|
-
// CIL[
|
|
611
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders a comprehensive visual test page demonstrating all installed shadcn/ui components in the admin panel'; No verified external callers; imports: .framework/src/components/ui/card.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx"]
|
|
612
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
613
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
614
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
615
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
616
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
617
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/ShadcnTestPage.tsx:ShadcnTestPage:component"]
|
|
618
|
+
|
|
619
|
+
|
|
@@ -1,22 +1,17 @@
|
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/SimpleDashboard.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/pages/admin/SimpleDashboard.tsx"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Top-level imports and page layout for the admin SimpleDashboard"]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Declare React hooks, UI components, and icons used by the SimpleDashboard page"]
|
|
4
|
+
// CIL[DOC-CONTEXT module="admin" layer="ui" related_files=".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/input.tsx,.framework/src/components/ui/select.tsx,.framework/src/components/ui/switch.tsx,.framework/src/components/ui/tabs.tsx"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Imports dependencies and establishes the module-level context for the admin dashboard component" notable_decisions="[]"]
|
|
7
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
8
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
9
|
+
// CIL[DOC-AUDIENCE audience="frontend-developers"]
|
|
10
|
+
|
|
1
11
|
|
|
2
12
|
|
|
3
13
|
|
|
4
14
|
|
|
5
|
-
// CIL[BEGIN chunk_id="simpledashboard_module_header_1783665503" type="module_header" identity="module_header" parent="none"]
|
|
6
|
-
// CIL[DOC-MACRO purpose="Import React hooks and UI components for simple dashboard"]
|
|
7
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Provide React state and dashboard UI components"]
|
|
8
|
-
// CIL[DOC-CONTEXT module="SimpleDashboard" layer="frontend-page" related_files="[\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/functions/_shared/principal.ts\",\"\\\"]"]
|
|
9
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="React hooks and UI components" errors="none" side_effects="none"]
|
|
10
|
-
// CIL[DOC-MICRO logic_summary="Imports useState and dashboard UI components" notable_decisions="[]"]
|
|
11
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
12
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
13
|
-
// CIL[DOC-AUDIENCE audience="developer"]
|
|
14
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-page. Direct callers: 0. Direct calls: 0. Related files: custom/apps/cortex/pages/operations/OperationsDashboard.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/components/ui/dialog.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/principal.ts, \."]
|
|
15
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
16
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
17
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
18
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
19
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
20
15
|
import { useState } from 'react'
|
|
21
16
|
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '../../components/ui/card'
|
|
22
17
|
import { Button } from '../../components/ui/button'
|
|
@@ -55,40 +50,27 @@ import {
|
|
|
55
50
|
Activity,
|
|
56
51
|
Settings
|
|
57
52
|
} from 'lucide-react'
|
|
58
|
-
|
|
59
|
-
// CIL[
|
|
60
|
-
// CIL[DOC-
|
|
61
|
-
// CIL[DOC-
|
|
62
|
-
// CIL[DOC-
|
|
63
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Complete dashboard UI" errors="none" side_effects="none"]
|
|
64
|
-
// CIL[DOC-MICRO logic_summary="Renders stats cards, search bar, and tabbed content sections" notable_decisions="[]"]
|
|
65
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
66
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
67
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-page. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/RolesPage.tsx, .framework/src/components/ui/dialog.tsx, .framework/functions/_shared/principal.ts, \."]
|
|
68
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
69
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
70
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
53
|
+
|
|
54
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Top-level imports and page layout for the admin SimpleDashboard'; No verified external callers; imports: .framework/src/components/ui/card.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx"]
|
|
55
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
56
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
57
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
71
58
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
72
59
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
60
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/SimpleDashboard.tsx:module_header:module_header"]
|
|
61
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/SimpleDashboard.tsx:SimpleDashboard:component" type="component" identity="SimpleDashboard" parent="~/.framework/src/pages/admin/SimpleDashboard.tsx"]
|
|
62
|
+
// CIL[DOC-MACRO purpose="Render the admin SimpleDashboard with tabs, stats, and settings"]
|
|
63
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide a self-contained dashboard page including search, filter, stats cards, tabbed content, quick actions, reports, and security preferences"]
|
|
64
|
+
// CIL[DOC-CONTEXT module="admin" layer="ui" related_files=".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/input.tsx,.framework/src/components/ui/select.tsx,.framework/src/components/ui/switch.tsx,.framework/src/components/ui/tabs.tsx,.framework/src/pages/admin/SimpleDashboard.tsx"]
|
|
65
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="JSX.Element" errors="none" side_effects="none"]
|
|
66
|
+
// CIL[DOC-MICRO logic_summary="Uses local state for selected tab, search query and notifications, renders a dashboard with header, search/filter bar, stats cards, tabbed panels for overview, analytics, reports and settings" notable_decisions="[]"]
|
|
67
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
68
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
73
69
|
export function SimpleDashboard() {
|
|
74
70
|
const [selectedTab, setSelectedTab] = useState('overview')
|
|
75
71
|
const [searchQuery, setSearchQuery] = useState('')
|
|
76
72
|
const [notifications, setNotifications] = useState(true)
|
|
77
73
|
|
|
78
|
-
// CIL[BEGIN chunk_id="simpledashboard_return_1783665503" type="jsx" identity="return" parent="simpledashboard_simpledashboard_1783665503"]
|
|
79
|
-
// CIL[DOC-MACRO purpose="Render simple dashboard with stats cards, search, and tabbed content"]
|
|
80
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Handle return"]
|
|
81
|
-
// CIL[DOC-CONTEXT module="SimpleDashboard" layer="frontend-page" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/functions/_shared/principal.ts\",\"\\\"]"]
|
|
82
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Complete dashboard UI" errors="none" side_effects="none"]
|
|
83
|
-
// CIL[DOC-MICRO logic_summary="Renders stats cards, search bar, and tabbed content sections" notable_decisions="[]"]
|
|
84
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
85
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
86
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-page. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/RolesPage.tsx, .framework/src/components/ui/dialog.tsx, .framework/functions/_shared/principal.ts, \."]
|
|
87
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
88
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
89
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
90
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
91
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
92
74
|
return (
|
|
93
75
|
<div className="space-y-6">
|
|
94
76
|
{/* Page Header */}
|
|
@@ -421,6 +403,12 @@ export function SimpleDashboard() {
|
|
|
421
403
|
</Tabs>
|
|
422
404
|
</div>
|
|
423
405
|
)
|
|
424
|
-
// CIL[END chunk_id="simpledashboard_return_1783665503"]
|
|
425
406
|
}
|
|
426
|
-
|
|
407
|
+
|
|
408
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render the admin SimpleDashboard with tabs, stats, and settings'; No verified external callers; imports: .framework/src/components/ui/card.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx"]
|
|
409
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
410
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
411
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
412
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
413
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
414
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/SimpleDashboard.tsx:SimpleDashboard:component"]
|
|
@@ -1,21 +1,16 @@
|
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/TestRunDetailPage.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/pages/admin/TestRunDetailPage.tsx"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Provides the admin test run detail page for creating, editing, and viewing test run records."]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Exports the TestRunDetailPage React component used under /spine-framework/admin/configs/test-runs/:id."]
|
|
4
|
+
// CIL[DOC-CONTEXT module="pages/admin" layer="presentation" related_files=".framework/src/components/ui/DataTable.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="Route param id from React Router; React component props none." outputs="Rendered TestRunDetailPage component for test run CRUD and results display." errors="May throw if JSON config parse fails; handles API and loading errors." side_effects="Navigates on cancel/save, calls /api/test-runs endpoints, updates component state."]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Defines TestRun interface, test type and status option lists, and a React page that fetches/creates/updates test runs and renders forms/result tables." notable_decisions="[]"]
|
|
7
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
8
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
9
|
+
// CIL[DOC-AUDIENCE audience="developers, UI maintainers"]
|
|
10
|
+
|
|
1
11
|
|
|
2
12
|
|
|
3
13
|
|
|
4
|
-
// CIL[BEGIN chunk_id="testrundetailpage_module_header_1783665503" type="module_header" identity="module_header" parent="none"]
|
|
5
|
-
// CIL[DOC-MACRO purpose="Import React hooks, router, UI components and define TestRun interface"]
|
|
6
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Provide React hooks, UI components, and test run data types"]
|
|
7
|
-
// CIL[DOC-CONTEXT module="TestRunDetailPage" layer="frontend-page" related_files="[\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/functions/_shared/schema-utils.ts\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\"\\\"]"]
|
|
8
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="React hooks, UI components, and TestRun interface" errors="none" side_effects="none"]
|
|
9
|
-
// CIL[DOC-MICRO logic_summary="Imports React hooks, UI components, and defines TestRun interface with constants" notable_decisions="[]"]
|
|
10
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
11
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
12
|
-
// CIL[DOC-AUDIENCE audience="developer"]
|
|
13
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-page. Direct callers: 0. Direct calls: 0. Related files: custom/apps/cortex/pages/operations/OperationsDashboard.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/components/ui/dialog.tsx, .framework/functions/_shared/schema-utils.ts, .framework/src/pages/admin/IntegrationsPage.tsx, \."]
|
|
14
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
15
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
16
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
17
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
18
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
19
14
|
import { useState, useEffect } from 'react'
|
|
20
15
|
import { useParams, useNavigate } from 'react-router-dom'
|
|
21
16
|
import { apiFetch } from '../../lib/api'
|
|
@@ -33,6 +28,23 @@ import { DataTable } from '../../components/ui/DataTable'
|
|
|
33
28
|
import { ArrowLeft, Beaker, AlertCircle } from 'lucide-react'
|
|
34
29
|
import { formatDateTime } from '../../lib/utils'
|
|
35
30
|
|
|
31
|
+
|
|
32
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Provides the admin test run detail page for creating, editing, and viewing test run records.'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx"]
|
|
33
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
34
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
35
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
36
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
37
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
38
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/TestRunDetailPage.tsx:module_header:module_header"]
|
|
39
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/TestRunDetailPage.tsx:TestRun:interface" type="interface" identity="TestRun" parent="~/.framework/src/pages/admin/TestRunDetailPage.tsx"]
|
|
40
|
+
// CIL[DOC-MACRO purpose="Defines the shape of a test run record consumed and produced by the detail page and API."]
|
|
41
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provides a TypeScript contract for test run data including status, results, and configuration."]
|
|
42
|
+
// CIL[DOC-CONTEXT module="pages/admin" layer="model" related_files=".framework/src/components/ui/DataTable.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/TestRunDetailPage.tsx"]
|
|
43
|
+
// CIL[DOC-CONTRACT inputs="Test run data from API response." outputs="Typed object with id, name, test_type, status, results, config, and timestamps." errors="Runtime validation depends on caller; no runtime checks." side_effects="None."]
|
|
44
|
+
// CIL[DOC-MICRO logic_summary="Declares a TypeScript interface with optional and required fields for test run records." notable_decisions="[]"]
|
|
45
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
46
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
47
|
+
|
|
36
48
|
interface TestRun {
|
|
37
49
|
id: string
|
|
38
50
|
name: string
|
|
@@ -47,6 +59,27 @@ interface TestRun {
|
|
|
47
59
|
created_at: string
|
|
48
60
|
updated_at: string
|
|
49
61
|
}
|
|
62
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Defines the shape of a test run record consumed and produced by the detail page and API.'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.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"]
|
|
66
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
67
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
68
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/TestRunDetailPage.tsx:TestRun:interface"]
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/TestRunDetailPage.tsx:test_types:constant" type="constant" identity="TEST_TYPES" parent="~/.framework/src/pages/admin/TestRunDetailPage.tsx"]
|
|
76
|
+
// CIL[DOC-MACRO purpose="Defines the selectable options for test run type."]
|
|
77
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Supplies test type labels for the create/edit form select control."]
|
|
78
|
+
// CIL[DOC-CONTEXT module="pages/admin" layer="presentation" related_files=".framework/src/components/ui/DataTable.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/TestRunDetailPage.tsx"]
|
|
79
|
+
// CIL[DOC-CONTRACT inputs="None." outputs="Array of value/label option objects." errors="None." side_effects="None."]
|
|
80
|
+
// CIL[DOC-MICRO logic_summary="Constant array mapping test type slugs to human-readable labels." notable_decisions="[]"]
|
|
81
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
82
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
50
83
|
|
|
51
84
|
const TEST_TYPES = [
|
|
52
85
|
{ value: 'unit', label: 'Unit Test' },
|
|
@@ -54,6 +87,28 @@ const TEST_TYPES = [
|
|
|
54
87
|
{ value: 'e2e', label: 'End-to-End Test' },
|
|
55
88
|
{ value: 'performance', label: 'Performance Test' }
|
|
56
89
|
]
|
|
90
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Defines the selectable options for test run type.'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx"]
|
|
91
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
92
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
93
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
94
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
95
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
96
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/TestRunDetailPage.tsx:test_types:constant"]
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/TestRunDetailPage.tsx:statuses:constant" type="constant" identity="STATUSES" parent="~/.framework/src/pages/admin/TestRunDetailPage.tsx"]
|
|
105
|
+
// CIL[DOC-MACRO purpose="Defines the selectable options for test run status."]
|
|
106
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Supplies status labels for the create/edit form select control and read-only display."]
|
|
107
|
+
// CIL[DOC-CONTEXT module="pages/admin" layer="presentation" related_files=".framework/src/components/ui/DataTable.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/TestRunDetailPage.tsx"]
|
|
108
|
+
// CIL[DOC-CONTRACT inputs="None." outputs="Array of value/label option objects." errors="None." side_effects="None."]
|
|
109
|
+
// CIL[DOC-MICRO logic_summary="Constant array mapping test status slugs to human-readable labels." notable_decisions="[]"]
|
|
110
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
111
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
57
112
|
|
|
58
113
|
const STATUSES = [
|
|
59
114
|
{ value: 'pending', label: 'Pending' },
|
|
@@ -62,21 +117,24 @@ const STATUSES = [
|
|
|
62
117
|
{ value: 'failed', label: 'Failed' },
|
|
63
118
|
{ value: 'skipped', label: 'Skipped' }
|
|
64
119
|
]
|
|
65
|
-
// CIL[
|
|
66
|
-
// CIL[
|
|
67
|
-
// CIL[DOC-
|
|
68
|
-
// CIL[DOC-
|
|
69
|
-
// CIL[DOC-CONTEXT module="TestRunDetailPage" layer="frontend-page" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
|
|
70
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Complete detail page UI" errors="none" side_effects="none"]
|
|
71
|
-
// CIL[DOC-MICRO logic_summary="Renders header, configuration form, execution info, and results table" notable_decisions="[]"]
|
|
72
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
73
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
74
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-page. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
|
|
75
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
76
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
77
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
120
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Defines the selectable options for test run status.'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx"]
|
|
121
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
122
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
123
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
78
124
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
79
125
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
126
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/TestRunDetailPage.tsx:statuses:constant"]
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/TestRunDetailPage.tsx:TestRunDetailPage:component" type="component" identity="TestRunDetailPage" parent="~/.framework/src/pages/admin/TestRunDetailPage.tsx"]
|
|
130
|
+
// CIL[DOC-MACRO purpose="Renders the admin create/edit/view page for a test run."]
|
|
131
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Manages form state, fetches existing test run data, persists changes, and displays results."]
|
|
132
|
+
// CIL[DOC-CONTEXT module="pages/admin" layer="presentation" related_files=".framework/src/components/ui/DataTable.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/TestRunDetailPage.tsx"]
|
|
133
|
+
// CIL[DOC-CONTRACT inputs="URL id param, React Router hooks, apiFetch utility." outputs="JSX for the admin test run detail page with loading, error, form, and results." errors="Sets error state for fetch and save failures; JSON config parse errors swallowed with default empty object." side_effects="Calls /api/test-runs endpoints, updates component state, navigates on actions."]
|
|
134
|
+
// CIL[DOC-MICRO logic_summary="Uses React hooks to load/save test run records, toggles edit mode, renders form fields, JSON config editor, and results table." notable_decisions="[]"]
|
|
135
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
136
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
137
|
+
|
|
80
138
|
export function TestRunDetailPage() {
|
|
81
139
|
const { id } = useParams<{ id: string }>()
|
|
82
140
|
const navigate = useNavigate()
|
|
@@ -94,6 +152,8 @@ export function TestRunDetailPage() {
|
|
|
94
152
|
setLoading(false)
|
|
95
153
|
return
|
|
96
154
|
}
|
|
155
|
+
|
|
156
|
+
|
|
97
157
|
setLoading(true)
|
|
98
158
|
const fetchTestRun = async () => {
|
|
99
159
|
try {
|
|
@@ -150,20 +210,6 @@ export function TestRunDetailPage() {
|
|
|
150
210
|
{ key: 'message' as keyof any, title: 'Message' }
|
|
151
211
|
]
|
|
152
212
|
|
|
153
|
-
// CIL[BEGIN chunk_id="testrundetailpage_return_1783665503" type="jsx" identity="return" parent="testrundetailpage_testrundetailpage_1783665503"]
|
|
154
|
-
// CIL[DOC-MACRO purpose="Render test run detail page with form and results table"]
|
|
155
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Handle return"]
|
|
156
|
-
// CIL[DOC-CONTEXT module="TestRunDetailPage" layer="frontend-page" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
|
|
157
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Complete detail page UI" errors="none" side_effects="none"]
|
|
158
|
-
// CIL[DOC-MICRO logic_summary="Renders header, configuration form, execution info, and results table" notable_decisions="[]"]
|
|
159
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
160
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
161
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-page. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
|
|
162
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
163
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
164
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
165
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
166
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
167
213
|
return (
|
|
168
214
|
<div className="space-y-6">
|
|
169
215
|
<div className="flex items-center justify-between">
|
|
@@ -212,6 +258,13 @@ export function TestRunDetailPage() {
|
|
|
212
258
|
)}
|
|
213
259
|
</div>
|
|
214
260
|
)
|
|
215
|
-
// CIL[END chunk_id="testrundetailpage_return_1783665503"]
|
|
216
261
|
}
|
|
217
|
-
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders the admin create/edit/view page for a test run.'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx"]
|
|
265
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
266
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
267
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
268
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
269
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
270
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/TestRunDetailPage.tsx:TestRunDetailPage:component"]
|