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,3 +1,12 @@
|
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/functions/system.ts:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/functions/system.ts"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Import shared middleware, db and node modules for the system function handler"]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide module-level imports and top-level dependencies for system.ts"]
|
|
4
|
+
// CIL[DOC-CONTEXT module="system" layer="functions" related_files=".framework/functions/_shared/db.ts,.framework/functions/_shared/middleware.ts"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Imports createHandler, adminDb, fs utils and path resolve" notable_decisions="none"]
|
|
7
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
8
|
+
// CIL[DOC-STABILITY stable]
|
|
9
|
+
// CIL[DOC-AUDIENCE audience="system maintainers and agentic tooling"]
|
|
1
10
|
|
|
2
11
|
|
|
3
12
|
|
|
@@ -5,47 +14,47 @@
|
|
|
5
14
|
|
|
6
15
|
|
|
7
16
|
|
|
8
|
-
// CIL[BEGIN chunk_id="system_module_header_1783931956" type="module_header" identity="module_header" parent="none"]
|
|
9
|
-
// CIL[DOC-MACRO purpose="Import dependencies for system discovery endpoints"]
|
|
10
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Provide middleware, database, and file system utilities"]
|
|
11
|
-
// CIL[DOC-CONTEXT module="system" layer="api-handler" related_files="[\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/functions/_shared/principal.ts\",\".framework/functions/_shared/schema-utils.ts\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
|
|
12
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="imported modules" errors="none" side_effects="none"]
|
|
13
|
-
// CIL[DOC-MICRO logic_summary="Imports handler, database, and file system modules for system operations" notable_decisions="[]"]
|
|
14
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
15
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
16
|
-
// CIL[DOC-AUDIENCE audience="developer"]
|
|
17
|
-
// CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 0. Direct calls: 0. Related files: custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/principal.ts, .framework/functions/_shared/schema-utils.ts, .framework/src/pages/admin/RolesPage.tsx, \."]
|
|
18
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
19
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
20
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
21
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
22
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
23
17
|
import { createHandler } from './_shared/middleware'
|
|
24
18
|
import { adminDb } from './_shared/db'
|
|
25
19
|
import { readFileSync, existsSync, readdirSync } from 'fs'
|
|
26
20
|
import { resolve } from 'path'
|
|
27
|
-
// CIL[
|
|
28
|
-
// CIL[
|
|
29
|
-
// CIL[DOC-
|
|
30
|
-
// CIL[DOC-
|
|
31
|
-
// CIL[DOC-CONTEXT module="system" layer="api-handler" related_files="[\".framework/src/pages/admin/TypeDetailPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/functions/_shared/schema-utils.ts\",\".framework/functions/_shared/principal.ts\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\"\\\"]"]
|
|
32
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="interface definitions" errors="none" side_effects="none"]
|
|
33
|
-
// CIL[DOC-MICRO logic_summary="Defines FunctionInfo, SystemManifest, and HealthCheck interfaces" notable_decisions="[]"]
|
|
34
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
35
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
36
|
-
// CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 9. Direct calls: 0. Related files: .framework/src/pages/admin/TypeDetailPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/functions/_shared/schema-utils.ts, .framework/functions/_shared/principal.ts, .framework/src/pages/admin/IntegrationsPage.tsx, \."]
|
|
37
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 9. Total affected: 9."]
|
|
38
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
39
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
21
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Import shared middleware, db and node modules for the system function handler'; No verified external callers; imports: .framework/functions/_shared/middleware.ts,.framework/functions/_shared/db.ts"]
|
|
22
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
23
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
24
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
40
25
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
41
26
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
27
|
+
// CIL[END stable_id="~/.framework/functions/system.ts:module_header:module_header"]
|
|
28
|
+
// CIL[BEGIN stable_id="~/.framework/functions/system.ts:FunctionInfo:interface" type="interface" identity="FunctionInfo" parent="~/.framework/functions/system.ts"]
|
|
29
|
+
// CIL[DOC-MACRO purpose="Define the shape of a registered Netlify function endpoint"]
|
|
30
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Type contract for function metadata records"]
|
|
31
|
+
// CIL[DOC-CONTEXT module="system" layer="types" related_files=".framework/functions/_shared/db.ts,.framework/functions/_shared/middleware.ts,.framework/functions/system.ts"]
|
|
32
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="FunctionInfo object shape" errors="none" side_effects="none"]
|
|
33
|
+
// CIL[DOC-MICRO logic_summary="Interface with name, methods, path and optional description" notable_decisions="none"]
|
|
34
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
35
|
+
// CIL[DOC-STABILITY stable]
|
|
42
36
|
interface FunctionInfo {
|
|
43
37
|
name: string
|
|
44
38
|
methods: string[]
|
|
45
39
|
path: string
|
|
46
40
|
description?: string
|
|
47
41
|
}
|
|
48
|
-
|
|
42
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Define the shape of a registered Netlify function endpoint'; No verified external callers; imports: .framework/functions/_shared/middleware.ts,.framework/functions/_shared/db.ts"]
|
|
43
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
44
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
45
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
46
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
47
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
48
|
+
// CIL[END stable_id="~/.framework/functions/system.ts:FunctionInfo:interface"]
|
|
49
|
+
|
|
50
|
+
// CIL[BEGIN stable_id="~/.framework/functions/system.ts:SystemManifest:interface" type="interface" identity="SystemManifest" parent="~/.framework/functions/system.ts"]
|
|
51
|
+
// CIL[DOC-MACRO purpose="Describe the system manifest data structure"]
|
|
52
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Type contract for the manifest response"]
|
|
53
|
+
// CIL[DOC-CONTEXT module="system" layer="types" related_files=".framework/functions/_shared/db.ts,.framework/functions/_shared/middleware.ts,.framework/functions/system.ts"]
|
|
54
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="SystemManifest shape" errors="none" side_effects="none"]
|
|
55
|
+
// CIL[DOC-MICRO logic_summary="Includes version, schema, migrations, functions and integrity" notable_decisions="none"]
|
|
56
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
57
|
+
// CIL[DOC-STABILITY stable]
|
|
49
58
|
interface SystemManifest {
|
|
50
59
|
version: string
|
|
51
60
|
schema: string
|
|
@@ -60,7 +69,22 @@ interface SystemManifest {
|
|
|
60
69
|
verified: boolean
|
|
61
70
|
}
|
|
62
71
|
}
|
|
63
|
-
|
|
72
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Describe the system manifest data structure'; No verified external callers; imports: .framework/functions/_shared/middleware.ts,.framework/functions/_shared/db.ts"]
|
|
73
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
74
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
75
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
76
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
77
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
78
|
+
// CIL[END stable_id="~/.framework/functions/system.ts:SystemManifest:interface"]
|
|
79
|
+
|
|
80
|
+
// CIL[BEGIN stable_id="~/.framework/functions/system.ts:HealthCheck:interface" type="interface" identity="HealthCheck" parent="~/.framework/functions/system.ts"]
|
|
81
|
+
// CIL[DOC-MACRO purpose="Define the health check report structure"]
|
|
82
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Type contract for the health response"]
|
|
83
|
+
// CIL[DOC-CONTEXT module="system" layer="types" related_files=".framework/functions/_shared/db.ts,.framework/functions/_shared/middleware.ts,.framework/functions/system.ts"]
|
|
84
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="HealthCheck shape" errors="none" side_effects="none"]
|
|
85
|
+
// CIL[DOC-MICRO logic_summary="Status enum and nested checks for database, migrations, integrity and test_runs" notable_decisions="none"]
|
|
86
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
87
|
+
// CIL[DOC-STABILITY stable]
|
|
64
88
|
interface HealthCheck {
|
|
65
89
|
status: 'healthy' | 'degraded' | 'unhealthy'
|
|
66
90
|
checks: {
|
|
@@ -70,23 +94,38 @@ interface HealthCheck {
|
|
|
70
94
|
test_runs?: { last_suite: string; last_status: string; last_at: string }
|
|
71
95
|
}
|
|
72
96
|
}
|
|
73
|
-
// CIL[
|
|
74
|
-
// CIL[
|
|
75
|
-
// CIL[DOC-
|
|
76
|
-
// CIL[DOC-
|
|
77
|
-
// CIL[DOC-CONTEXT module="system" layer="api-handler" related_files="[\"custom/apps/cortex/functions/custom_cil-embeddings.ts\",\".framework/functions/_shared/principal.ts\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/functions/_shared/schema-utils.ts\",\"\\\"]"]
|
|
78
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="helper functions" errors="none" side_effects="file system access"]
|
|
79
|
-
// CIL[DOC-MICRO logic_summary="Loads manifest from disk, discovers available functions in filesystem" notable_decisions="[]"]
|
|
80
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
81
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
82
|
-
// CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 0. Direct calls: 0. Related files: custom/apps/cortex/functions/custom_cil-embeddings.ts, .framework/functions/_shared/principal.ts, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/functions/_shared/schema-utils.ts, \."]
|
|
83
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
84
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
85
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
97
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Define the health check report structure'; No verified external callers; imports: .framework/functions/_shared/middleware.ts,.framework/functions/_shared/db.ts"]
|
|
98
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
99
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
100
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
86
101
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
87
102
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
103
|
+
// CIL[END stable_id="~/.framework/functions/system.ts:HealthCheck:interface"]
|
|
104
|
+
// CIL[BEGIN stable_id="~/.framework/functions/system.ts:PROJECT_ROOT:constant" type="constant" identity="PROJECT_ROOT" parent="~/.framework/functions/system.ts"]
|
|
105
|
+
// CIL[DOC-MACRO purpose="Resolve the project root directory at runtime"]
|
|
106
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide a constant path reference for filesystem resolution"]
|
|
107
|
+
// CIL[DOC-CONTEXT module="system" layer="constants" related_files=".framework/functions/_shared/db.ts,.framework/functions/_shared/middleware.ts,.framework/functions/system.ts"]
|
|
108
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="string absolute path" errors="none" side_effects="none"]
|
|
109
|
+
// CIL[DOC-MICRO logic_summary="resolve(process.cwd(), .)" notable_decisions="none"]
|
|
110
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
111
|
+
// CIL[DOC-STABILITY stable]
|
|
88
112
|
const PROJECT_ROOT = resolve(process.cwd(), '.')
|
|
89
|
-
|
|
113
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Resolve the project root directory at runtime'; No verified external callers; imports: .framework/functions/_shared/middleware.ts,.framework/functions/_shared/db.ts"]
|
|
114
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
115
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
116
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
117
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
118
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
119
|
+
// CIL[END stable_id="~/.framework/functions/system.ts:PROJECT_ROOT:constant"]
|
|
120
|
+
|
|
121
|
+
// CIL[BEGIN stable_id="~/.framework/functions/system.ts:loadManifest:function" type="function" identity="loadManifest" parent="~/.framework/functions/system.ts"]
|
|
122
|
+
// CIL[DOC-MACRO purpose="Read and parse the spine manifest file or return a default"]
|
|
123
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Load project version and integrity metadata"]
|
|
124
|
+
// CIL[DOC-CONTEXT module="system" layer="functions" related_files=".framework/functions/_shared/db.ts,.framework/functions/_shared/middleware.ts,.framework/functions/system.ts"]
|
|
125
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="{ version, integrity }" errors="Returns default on missing file or parse failure" side_effects="Reads .spine-manifest.json from disk"]
|
|
126
|
+
// CIL[DOC-MICRO logic_summary="Check existence of .spine-manifest.json, parse JSON, fallback to 2.0.0 with unverified integrity" notable_decisions="Treats any parse error as default"]
|
|
127
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
128
|
+
// CIL[DOC-STABILITY stable]
|
|
90
129
|
function loadManifest(): { version: string; integrity: { core_hash: string | null; verified: boolean } } {
|
|
91
130
|
try {
|
|
92
131
|
const manifestPath = resolve(PROJECT_ROOT, '.spine-manifest.json')
|
|
@@ -106,7 +145,22 @@ function loadManifest(): { version: string; integrity: { core_hash: string | nul
|
|
|
106
145
|
return { version: '2.0.0', integrity: { core_hash: null, verified: false } }
|
|
107
146
|
}
|
|
108
147
|
}
|
|
109
|
-
|
|
148
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Read and parse the spine manifest file or return a default'; No verified external callers; imports: .framework/functions/_shared/middleware.ts,.framework/functions/_shared/db.ts"]
|
|
149
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
150
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
151
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
152
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
153
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
154
|
+
// CIL[END stable_id="~/.framework/functions/system.ts:loadManifest:function"]
|
|
155
|
+
|
|
156
|
+
// CIL[BEGIN stable_id="~/.framework/functions/system.ts:discoverFunctions:function" type="function" identity="discoverFunctions" parent="~/.framework/functions/system.ts"]
|
|
157
|
+
// CIL[DOC-MACRO purpose="Scan the v2-core functions directory and build endpoint metadata"]
|
|
158
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Discover available Netlify function endpoints and allowed HTTP methods"]
|
|
159
|
+
// CIL[DOC-CONTEXT module="system" layer="functions" related_files=".framework/functions/_shared/db.ts,.framework/functions/_shared/middleware.ts,.framework/functions/system.ts"]
|
|
160
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="FunctionInfo[]" errors="Returns empty array if directory missing" side_effects="Reads directory entries from v2-core/functions"]
|
|
161
|
+
// CIL[DOC-MICRO logic_summary="List .ts files, assign GET, POST, PATCH, DELETE based on blocklists" notable_decisions="Blocklist-based method filtering for log, test, system and auth endpoints"]
|
|
162
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
163
|
+
// CIL[DOC-STABILITY stable]
|
|
110
164
|
async function discoverFunctions(): Promise<FunctionInfo[]> {
|
|
111
165
|
const functionsDir = resolve(PROJECT_ROOT, 'v2-core/functions')
|
|
112
166
|
if (!existsSync(functionsDir)) {
|
|
@@ -138,21 +192,21 @@ async function discoverFunctions(): Promise<FunctionInfo[]> {
|
|
|
138
192
|
}
|
|
139
193
|
})
|
|
140
194
|
}
|
|
141
|
-
// CIL[
|
|
142
|
-
// CIL[
|
|
143
|
-
// CIL[DOC-
|
|
144
|
-
// CIL[DOC-
|
|
145
|
-
// CIL[DOC-CONTEXT module="system" layer="api-handler" related_files="[\".framework/src/pages/admin/RolesPage.tsx\",\".framework/migrations/015_simplify_apps_table.sql\",\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"\\\"]"]
|
|
146
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="SystemManifest data" errors="none" side_effects="database and file system queries"]
|
|
147
|
-
// CIL[DOC-MICRO logic_summary="Compares local migrations with applied migrations, discovers functions" notable_decisions="[]"]
|
|
148
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
149
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
150
|
-
// CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 1. Direct calls: 0. Related files: .framework/src/pages/admin/RolesPage.tsx, .framework/migrations/015_simplify_apps_table.sql, custom/apps/portal/pages/ContentPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, \."]
|
|
151
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 1. Total affected: 1."]
|
|
152
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
153
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
195
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Scan the v2-core functions directory and build endpoint metadata'; No verified external callers; imports: .framework/functions/_shared/middleware.ts,.framework/functions/_shared/db.ts"]
|
|
196
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
197
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
198
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
154
199
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
155
200
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
201
|
+
// CIL[END stable_id="~/.framework/functions/system.ts:discoverFunctions:function"]
|
|
202
|
+
// CIL[BEGIN stable_id="~/.framework/functions/system.ts:getManifest:function" type="function" identity="getManifest" parent="~/.framework/functions/system.ts"]
|
|
203
|
+
// CIL[DOC-MACRO purpose="Assemble the system manifest by combining file discovery and migration state"]
|
|
204
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Build the manifest payload for the manifest action"]
|
|
205
|
+
// CIL[DOC-CONTEXT module="system" layer="functions" related_files=".framework/functions/_shared/db.ts,.framework/functions/_shared/middleware.ts,.framework/functions/system.ts"]
|
|
206
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="{ data: SystemManifest }" errors="Silently ignores migration query failures, leaving applied list empty" side_effects="Queries schema_migrations table and scans migrations_dayzero directory"]
|
|
207
|
+
// CIL[DOC-MICRO logic_summary="Load manifest, scan local SQL migrations, query applied migrations, compute pending count, discover functions" notable_decisions="Swallows adminDb query errors to keep the handler resilient"]
|
|
208
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
209
|
+
// CIL[DOC-STABILITY stable]
|
|
156
210
|
async function getManifest(): Promise<{ data: SystemManifest }> {
|
|
157
211
|
const manifest = loadManifest()
|
|
158
212
|
|
|
@@ -194,21 +248,21 @@ async function getManifest(): Promise<{ data: SystemManifest }> {
|
|
|
194
248
|
}
|
|
195
249
|
}
|
|
196
250
|
}
|
|
197
|
-
// CIL[
|
|
198
|
-
// CIL[
|
|
199
|
-
// CIL[DOC-
|
|
200
|
-
// CIL[DOC-
|
|
201
|
-
// CIL[DOC-CONTEXT module="system" layer="api-handler" related_files="[\".framework/src/components/ui/dialog.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
|
|
202
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="HealthCheck data" errors="none" side_effects="database queries"]
|
|
203
|
-
// CIL[DOC-MICRO logic_summary="Tests database connectivity, compares migration status, checks integrity" notable_decisions="[]"]
|
|
204
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
205
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
206
|
-
// CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 1. Direct calls: 0. Related files: .framework/src/components/ui/dialog.tsx, .framework/src/components/ui/table-primitives.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
|
|
207
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 1. Total affected: 1."]
|
|
208
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
209
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
251
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Assemble the system manifest by combining file discovery and migration state'; No verified external callers; imports: .framework/functions/_shared/middleware.ts,.framework/functions/_shared/db.ts"]
|
|
252
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
253
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
254
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
210
255
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
211
256
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
257
|
+
// CIL[END stable_id="~/.framework/functions/system.ts:getManifest:function"]
|
|
258
|
+
// CIL[BEGIN stable_id="~/.framework/functions/system.ts:getHealth:function" type="function" identity="getHealth" parent="~/.framework/functions/system.ts"]
|
|
259
|
+
// CIL[DOC-MACRO purpose="Run health checks against database, migrations, integrity and test runs"]
|
|
260
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Build the health payload for the health action"]
|
|
261
|
+
// CIL[DOC-CONTEXT module="system" layer="functions" related_files=".framework/functions/_shared/db.ts,.framework/functions/_shared/middleware.ts,.framework/functions/system.ts"]
|
|
262
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="{ data: HealthCheck }" errors="Database, migration or test query failures set degraded or unhealthy status" side_effects="Queries accounts, schema_migrations and test_runs tables; reads migrations_dayzero directory"]
|
|
263
|
+
// CIL[DOC-MICRO logic_summary="Test DB connectivity and latency, compare local and applied migrations, verify manifest integrity, fetch latest test run" notable_decisions="Missing DB makes unhealthy; pending migrations or unverified integrity makes degraded"]
|
|
264
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
265
|
+
// CIL[DOC-STABILITY stable]
|
|
212
266
|
async function getHealth(): Promise<{ data: HealthCheck }> {
|
|
213
267
|
const checks: HealthCheck['checks'] = {
|
|
214
268
|
database: { connected: false, latency_ms: 0 },
|
|
@@ -277,21 +331,21 @@ async function getHealth(): Promise<{ data: HealthCheck }> {
|
|
|
277
331
|
|
|
278
332
|
return { data: { status, checks } }
|
|
279
333
|
}
|
|
280
|
-
// CIL[
|
|
281
|
-
// CIL[
|
|
282
|
-
// CIL[DOC-
|
|
283
|
-
// CIL[DOC-
|
|
284
|
-
// CIL[DOC-CONTEXT module="system" layer="api-handler" related_files="[\".framework/migrations/015_simplify_apps_table.sql\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\".framework/functions/_shared/principal.ts\",\"\\\"]"]
|
|
285
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="OpenAPI spec object" errors="none" side_effects="none"]
|
|
286
|
-
// CIL[DOC-MICRO logic_summary="Builds OpenAPI paths and operations from discovered function metadata" notable_decisions="[]"]
|
|
287
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
288
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
289
|
-
// CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 1. Direct calls: 0. Related files: .framework/migrations/015_simplify_apps_table.sql, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/src/pages/admin/RolesPage.tsx, .framework/functions/_shared/principal.ts, \."]
|
|
290
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 1. Total affected: 1."]
|
|
291
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
292
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
334
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Run health checks against database, migrations, integrity and test runs'; No verified external callers; imports: .framework/functions/_shared/middleware.ts,.framework/functions/_shared/db.ts"]
|
|
335
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
336
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
337
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
293
338
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
294
339
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
340
|
+
// CIL[END stable_id="~/.framework/functions/system.ts:getHealth:function"]
|
|
341
|
+
// CIL[BEGIN stable_id="~/.framework/functions/system.ts:getOpenApi:function" type="function" identity="getOpenApi" parent="~/.framework/functions/system.ts"]
|
|
342
|
+
// CIL[DOC-MACRO purpose="Generate an OpenAPI 3.1.0 document from discovered function metadata"]
|
|
343
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Build the openapi payload for the openapi action"]
|
|
344
|
+
// CIL[DOC-CONTEXT module="system" layer="functions" related_files=".framework/functions/_shared/db.ts,.framework/functions/_shared/middleware.ts,.framework/functions/system.ts"]
|
|
345
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="{ data: any }" errors="None thrown; builds paths from discovered functions" side_effects="none"]
|
|
346
|
+
// CIL[DOC-MICRO logic_summary="Discover functions, build path map, add operation metadata and action query parameter, wrap with info and servers" notable_decisions="Response content schema is a placeholder object"]
|
|
347
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
348
|
+
// CIL[DOC-STABILITY stable]
|
|
295
349
|
async function getOpenApi(): Promise<{ data: any }> {
|
|
296
350
|
const functions = await discoverFunctions()
|
|
297
351
|
const manifest = loadManifest()
|
|
@@ -344,21 +398,21 @@ async function getOpenApi(): Promise<{ data: any }> {
|
|
|
344
398
|
}
|
|
345
399
|
}
|
|
346
400
|
}
|
|
347
|
-
// CIL[
|
|
348
|
-
// CIL[
|
|
349
|
-
// CIL[DOC-
|
|
350
|
-
// CIL[DOC-
|
|
351
|
-
// CIL[DOC-CONTEXT module="system" layer="api-handler" related_files="[\"custom/apps/cortex/functions/custom_cil-embeddings.ts\",\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\"\\\"]"]
|
|
352
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="system data responses" errors="400" side_effects="calls helper functions"]
|
|
353
|
-
// CIL[DOC-MICRO logic_summary="Routes to manifest, health, or openapi based on action parameter" notable_decisions="[]"]
|
|
354
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
355
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
356
|
-
// CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 0. Direct calls: 0. Related files: custom/apps/cortex/functions/custom_cil-embeddings.ts, custom/apps/portal/pages/ContentPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/RolesPage.tsx, .framework/src/components/ui/table-primitives.tsx, \."]
|
|
357
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
358
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
359
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
401
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Generate an OpenAPI 3.1.0 document from discovered function metadata'; No verified external callers; imports: .framework/functions/_shared/middleware.ts,.framework/functions/_shared/db.ts"]
|
|
402
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
403
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
404
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
360
405
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
361
406
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
407
|
+
// CIL[END stable_id="~/.framework/functions/system.ts:getOpenApi:function"]
|
|
408
|
+
// CIL[BEGIN stable_id="~/.framework/functions/system.ts:handler:constant" type="constant" identity="handler" parent="~/.framework/functions/system.ts"]
|
|
409
|
+
// CIL[DOC-MACRO purpose="Create the system Netlify function handler and dispatch actions"]
|
|
410
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Route incoming action query to manifest, health, openapi or return an error"]
|
|
411
|
+
// CIL[DOC-CONTEXT module="system" layer="entry" related_files=".framework/functions/_shared/db.ts,.framework/functions/_shared/middleware.ts,.framework/functions/system.ts"]
|
|
412
|
+
// CIL[DOC-CONTRACT inputs="ctx.query.action" outputs="Promise<manifest or health or openapi result or error response>" errors="Returns 400 error for unknown action" side_effects="Invokes getManifest, getHealth or getOpenApi"]
|
|
413
|
+
// CIL[DOC-MICRO logic_summary="Read action from query, switch on manifest/health/openapi, default to error" notable_decisions="Default action is manifest"]
|
|
414
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
415
|
+
// CIL[DOC-STABILITY stable]
|
|
362
416
|
export const handler = createHandler(async (ctx) => {
|
|
363
417
|
const q = (ctx as any).query || {}
|
|
364
418
|
const action = q.action || 'manifest'
|
|
@@ -380,4 +434,10 @@ export const handler = createHandler(async (ctx) => {
|
|
|
380
434
|
}
|
|
381
435
|
}
|
|
382
436
|
})
|
|
383
|
-
// CIL[
|
|
437
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Create the system Netlify function handler and dispatch actions'; No verified external callers; imports: .framework/functions/_shared/middleware.ts,.framework/functions/_shared/db.ts"]
|
|
438
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
439
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
440
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
441
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
442
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
443
|
+
// CIL[END stable_id="~/.framework/functions/system.ts:handler:constant"]
|
|
@@ -1,37 +1,31 @@
|
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/functions/tests.ts:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/functions/tests.ts"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Module setup and imports for tests.ts"]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Establish the public surface and dependencies of tests.ts"]
|
|
4
|
+
// CIL[DOC-CONTEXT module=".framework/functions/tests.ts" layer="functions" related_files=".framework/functions/_shared/db.ts,.framework/functions/_shared/middleware.ts"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Imports required modules for tests.ts" notable_decisions="[]"]
|
|
7
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
8
|
+
// CIL[DOC-AUDIENCE audience="functions"]
|
|
9
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
1
10
|
|
|
2
11
|
|
|
3
|
-
// CIL[BEGIN chunk_id="tests_module_header_1783931956" type="module_header" identity="module_header" parent="none"]
|
|
4
|
-
// CIL[DOC-MACRO purpose="Import dependencies for test API handler"]
|
|
5
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Provide middleware and database access"]
|
|
6
|
-
// CIL[DOC-CONTEXT module="tests" layer="api-handler" related_files="[\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/functions/_shared/principal.ts\",\".framework/functions/_shared/schema-utils.ts\",\"custom/apps/portal/pages/ContentPage.tsx\",\"\\\"]"]
|
|
7
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="imported modules" errors="none" side_effects="none"]
|
|
8
|
-
// CIL[DOC-MICRO logic_summary="Imports createHandler middleware and adminDb for database access" notable_decisions="[]"]
|
|
9
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
10
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
11
|
-
// CIL[DOC-AUDIENCE audience="developer"]
|
|
12
|
-
// CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 0. Direct calls: 0. Related files: custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/principal.ts, .framework/functions/_shared/schema-utils.ts, custom/apps/portal/pages/ContentPage.tsx, \."]
|
|
13
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
14
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
15
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
16
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
17
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
18
12
|
import { createHandler, requireSystemContextWithAudit } from './_shared/middleware'
|
|
19
13
|
import { adminDb } from './_shared/db'
|
|
20
|
-
// CIL[
|
|
21
|
-
// CIL[
|
|
22
|
-
// CIL[DOC-
|
|
23
|
-
// CIL[DOC-
|
|
24
|
-
// CIL[DOC-CONTEXT module="tests" layer="api-handler" related_files="[\".framework/functions/_shared/schema-utils.ts\",\".framework/src/pages/admin/RolesPage.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/functions/_shared/principal.ts\",\".framework/src/components/ui/table-primitives.tsx\",\"\\\"]"]
|
|
25
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="test data or error responses" errors="400/404/500" side_effects="database queries"]
|
|
26
|
-
// CIL[DOC-MICRO logic_summary="Routes requests by action parameter, queries test_runs and test_results tables" notable_decisions="[]"]
|
|
27
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
28
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
29
|
-
// CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 0. Direct calls: 0. Related files: .framework/functions/_shared/schema-utils.ts, .framework/src/pages/admin/RolesPage.tsx, .framework/src/components/ui/dialog.tsx, .framework/functions/_shared/principal.ts, .framework/src/components/ui/table-primitives.tsx, \."]
|
|
30
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
31
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
32
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
14
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Module setup and imports for tests.ts'; No verified external callers; imports: .framework/functions/_shared/middleware.ts,.framework/functions/_shared/db.ts"]
|
|
15
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
16
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
17
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
33
18
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
34
19
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
20
|
+
// CIL[END stable_id="~/.framework/functions/tests.ts:module_header:module_header"]
|
|
21
|
+
// CIL[BEGIN stable_id="~/.framework/functions/tests.ts:handler:constant" type="constant" identity="handler" parent="~/.framework/functions/tests.ts"]
|
|
22
|
+
// CIL[DOC-MACRO purpose="Define the handler constant"]
|
|
23
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Expose the handler value to consumers"]
|
|
24
|
+
// CIL[DOC-CONTEXT module=".framework/functions/tests.ts" layer="functions" related_files=".framework/functions/_shared/db.ts,.framework/functions/_shared/middleware.ts,.framework/functions/tests.ts"]
|
|
25
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="handler function" errors="none" side_effects="none"]
|
|
26
|
+
// CIL[DOC-MICRO logic_summary="Binds the expression to the handler identifier" notable_decisions="[]"]
|
|
27
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
28
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
35
29
|
export const handler = createHandler(async (ctx) => {
|
|
36
30
|
const authErr = requireSystemContextWithAudit(ctx)
|
|
37
31
|
if (authErr) return authErr
|
|
@@ -120,4 +114,10 @@ export const handler = createHandler(async (ctx) => {
|
|
|
120
114
|
|
|
121
115
|
return { data: data ?? [], error: null }
|
|
122
116
|
})
|
|
123
|
-
// CIL[
|
|
117
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Define the handler constant'; No verified external callers; imports: .framework/functions/_shared/middleware.ts,.framework/functions/_shared/db.ts"]
|
|
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"]
|
|
121
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
122
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
123
|
+
// CIL[END stable_id="~/.framework/functions/tests.ts:handler:constant"]
|