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,31 +1,57 @@
|
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/functions/system-cron.ts:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/functions/system-cron.ts"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Imports shared middleware, database, audit, pipeline and retry helpers for the system-cron Netlify function."]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Sets up module dependencies and shared imports for the cron handler."]
|
|
4
|
+
// CIL[DOC-CONTEXT module="system-cron" layer="functions" related_files=".framework/functions/_shared/audit.ts,.framework/functions/_shared/db.ts,.framework/functions/_shared/middleware.ts,.framework/functions/_shared/pipeline-runner.ts,.framework/functions/_shared/retry-deliveries.ts"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Imports required shared modules for database access, audit logging, pipeline execution and delivery retries." notable_decisions="none"]
|
|
7
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
8
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
9
|
+
// CIL[DOC-AUDIENCE audience="developers,operators"]
|
|
1
10
|
import { createHandler, RequestContext } from './_shared/middleware'
|
|
2
11
|
import { adminDb } from './_shared/db'
|
|
3
12
|
import { emitAudit } from './_shared/audit'
|
|
4
13
|
import { runPipeline } from './_shared/pipeline-runner'
|
|
5
14
|
import { retryPendingDeliveries } from './_shared/retry-deliveries'
|
|
15
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Imports shared middleware, database, audit, pipeline and retry helpers for the system-cron Netlify function.'; No verified external callers; imports: .framework/functions/_shared/middleware.ts,.framework/functions/_shared/db.ts,.framework/functions/_shared/audit.ts"]
|
|
16
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
17
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
18
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
19
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
20
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
21
|
+
// CIL[END stable_id="~/.framework/functions/system-cron.ts:module_header:module_header"]
|
|
6
22
|
|
|
23
|
+
// CIL[BEGIN stable_id="~/.framework/functions/system-cron.ts:SCHEDULER_API_KEY:constant" type="constant" identity="SCHEDULER_API_KEY" parent="~/.framework/functions/system-cron.ts"]
|
|
24
|
+
// CIL[DOC-MACRO purpose="Resolves the scheduler API key from Node or Deno environment variables."]
|
|
25
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provides the secret key used to authenticate cron requests."]
|
|
26
|
+
// CIL[DOC-CONTEXT module="system-cron" layer="functions" related_files=".framework/functions/_shared/audit.ts,.framework/functions/_shared/db.ts,.framework/functions/_shared/middleware.ts,.framework/functions/_shared/pipeline-runner.ts,.framework/functions/_shared/retry-deliveries.ts,.framework/functions/system-cron.ts"]
|
|
27
|
+
// CIL[DOC-STABILITY stability="internal"]
|
|
28
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
29
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="string | undefined" errors="none" side_effects="reads environment variables"]
|
|
30
|
+
// CIL[DOC-MICRO logic_summary="Reads SCHEDULER_API_KEY from process.env or Deno.env, falling back to undefined." notable_decisions="none"]
|
|
31
|
+
// CIL[DOC-AUDIENCE audience="developers"]
|
|
7
32
|
const SCHEDULER_API_KEY: string | undefined = (globalThis as any).process?.env?.SCHEDULER_API_KEY || (globalThis as any).Deno?.env?.get?.('SCHEDULER_API_KEY')
|
|
33
|
+
// CIL[END stable_id="~/.framework/functions/system-cron.ts:SCHEDULER_API_KEY:constant"]
|
|
8
34
|
|
|
35
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Resolves the scheduler API key from Node or Deno environment variables.'; No verified external callers; imports: .framework/functions/_shared/middleware.ts,.framework/functions/_shared/db.ts,.framework/functions/_shared/audit.ts"]
|
|
36
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
37
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
38
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
39
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
40
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
9
41
|
|
|
10
42
|
|
|
11
43
|
|
|
12
44
|
|
|
13
45
|
|
|
14
|
-
// CIL[BEGIN
|
|
15
|
-
// CIL[DOC-MACRO purpose="
|
|
16
|
-
// CIL[DOC-RESPONSIBILITY responsibility="
|
|
17
|
-
// CIL[DOC-CONTEXT module="system-cron" layer="
|
|
18
|
-
// CIL[DOC-CONTRACT inputs="
|
|
19
|
-
// CIL[DOC-MICRO logic_summary="
|
|
20
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.
|
|
46
|
+
// CIL[BEGIN stable_id="~/.framework/functions/system-cron.ts:handler:constant" type="constant" identity="handler" parent="~/.framework/functions/system-cron.ts"]
|
|
47
|
+
// CIL[DOC-MACRO purpose="Netlify function entrypoint that runs scheduled actions, timers, threshold checks, retries and daily log cleanup."]
|
|
48
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Executes the cron loop for due schedules and timers, evaluates thresholds, retries pending deliveries and cleans logs at midnight."]
|
|
49
|
+
// CIL[DOC-CONTEXT module="system-cron" layer="functions" related_files=".framework/functions/_shared/audit.ts,.framework/functions/_shared/db.ts,.framework/functions/_shared/middleware.ts,.framework/functions/_shared/pipeline-runner.ts,.framework/functions/_shared/retry-deliveries.ts,.framework/functions/system-cron.ts"]
|
|
50
|
+
// CIL[DOC-CONTRACT inputs="RequestContext" outputs="HTTP 200/403/500 response" errors="Throws on schedule or timer failures; returns 403 for auth failures and 500 for system errors." side_effects="Reads and writes schedule_executions, runs pipelines, emits audit events, updates schedules and timers."]
|
|
51
|
+
// CIL[DOC-MICRO logic_summary="Validates scheduler API key or internal machine principal, fetches due schedules and timers, executes each action with scoped machine context, evaluates threshold alerts, retries pending deliveries, cleans logs at midnight, and returns a summary." notable_decisions="Uses a global try/catch to convert unhandled errors into a 500 response; runs threshold and log cleanup in non-failing branches; handles both Node and Deno runtimes for API key."]
|
|
52
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
21
53
|
// CIL[DOC-STABILITY stability="stable"]
|
|
22
|
-
// CIL[DOC-AUDIENCE audience="
|
|
23
|
-
// CIL[DOC-VECTOR type="context" content="Layer: api-handler. 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, .framework/functions/_shared/principal.ts, \."]
|
|
24
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
25
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
26
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
27
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
28
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
54
|
+
// CIL[DOC-AUDIENCE audience="developers"]
|
|
29
55
|
export const handler = createHandler(async (ctx: RequestContext) => {
|
|
30
56
|
const requestApiKey = ctx.query?.api_key || ctx.query?.scheduler_key
|
|
31
57
|
|
|
@@ -351,21 +377,22 @@ export const handler = createHandler(async (ctx: RequestContext) => {
|
|
|
351
377
|
}
|
|
352
378
|
}
|
|
353
379
|
})
|
|
354
|
-
// CIL[
|
|
355
|
-
// CIL[
|
|
356
|
-
// CIL[DOC-
|
|
357
|
-
// CIL[DOC-
|
|
358
|
-
// CIL[DOC-CONTEXT module="system-cron" 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\",\"\\\"]"]
|
|
359
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Action execution result" errors="Throws on unknown modules" side_effects="Delegates to handlers"]
|
|
360
|
-
// CIL[DOC-MICRO logic_summary="Routes to function/integration/custom handlers" notable_decisions="[]"]
|
|
361
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
362
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
363
|
-
// CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 1. 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, \."]
|
|
364
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 1. Total affected: 1."]
|
|
365
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
366
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
380
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Netlify function entrypoint that runs scheduled actions, timers, threshold checks, retries and daily log cleanup.'; No verified external callers; imports: .framework/functions/_shared/middleware.ts,.framework/functions/_shared/db.ts,.framework/functions/_shared/audit.ts"]
|
|
381
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
382
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
383
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
367
384
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
368
385
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
386
|
+
// CIL[END stable_id="~/.framework/functions/system-cron.ts:handler:constant"]
|
|
387
|
+
// CIL[BEGIN stable_id="~/.framework/functions/system-cron.ts:executeAction:function" type="function" identity="executeAction" parent="~/.framework/functions/system-cron.ts"]
|
|
388
|
+
// CIL[DOC-MACRO purpose="Dispatches an action to the appropriate handler module (functions, integrations or custom)."]
|
|
389
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Merges action and schedule config and delegates to a handler module."]
|
|
390
|
+
// CIL[DOC-CONTEXT module="system-cron" layer="functions" related_files=".framework/functions/_shared/audit.ts,.framework/functions/_shared/db.ts,.framework/functions/_shared/middleware.ts,.framework/functions/_shared/pipeline-runner.ts,.framework/functions/_shared/retry-deliveries.ts,.framework/functions/system-cron.ts"]
|
|
391
|
+
// CIL[DOC-CONTRACT inputs="ctx: RequestContext, action: any, config: any" outputs="any handler result" errors="Throws for unknown handler module or not-implemented custom handlers." side_effects="none"]
|
|
392
|
+
// CIL[DOC-MICRO logic_summary="Merges config from the action with the schedule, then switches on handler_module to call the function, integration, or custom handler." notable_decisions="Custom handlers are explicitly not implemented and rejected; defaults fall through to an unknown-module error."]
|
|
393
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
394
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
395
|
+
// CIL[DOC-AUDIENCE audience="developers"]
|
|
369
396
|
async function executeAction(
|
|
370
397
|
ctx: RequestContext,
|
|
371
398
|
action: any,
|
|
@@ -393,21 +420,22 @@ async function executeAction(
|
|
|
393
420
|
throw new Error(`Unknown handler module: ${handlerModule}`)
|
|
394
421
|
}
|
|
395
422
|
}
|
|
396
|
-
// CIL[
|
|
397
|
-
// CIL[
|
|
398
|
-
// CIL[DOC-
|
|
399
|
-
// CIL[DOC-
|
|
400
|
-
// CIL[DOC-CONTEXT module="system-cron" layer="api-handler" related_files="[\"custom/apps/cortex/functions/custom_cil-embeddings.ts\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/functions/_shared/principal.ts\",\".framework/functions/_shared/db.ts\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"\\\"]"]
|
|
401
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Handler execution result" errors="Throws on unknown handlers" side_effects="Function execution"]
|
|
402
|
-
// CIL[DOC-MICRO logic_summary="Maps handler names to implementations" notable_decisions="[]"]
|
|
403
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
404
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
405
|
-
// CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 1. Direct calls: 0. Related files: custom/apps/cortex/functions/custom_cil-embeddings.ts, custom/apps/portal/pages/ContentPage.tsx, .framework/functions/_shared/principal.ts, .framework/functions/_shared/db.ts, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, \."]
|
|
406
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 1. Total affected: 2."]
|
|
407
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
408
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
423
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Dispatches an action to the appropriate handler module (functions, integrations or custom).'; No verified external callers; imports: .framework/functions/_shared/middleware.ts,.framework/functions/_shared/db.ts,.framework/functions/_shared/audit.ts"]
|
|
424
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
425
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
426
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
409
427
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
410
428
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
429
|
+
// CIL[END stable_id="~/.framework/functions/system-cron.ts:executeAction:function"]
|
|
430
|
+
// CIL[BEGIN stable_id="~/.framework/functions/system-cron.ts:executeFunctionHandler:function" type="function" identity="executeFunctionHandler" parent="~/.framework/functions/system-cron.ts"]
|
|
431
|
+
// CIL[DOC-MACRO purpose="Implements built-in function handlers: send_email, generate_report, notify_watchers, run_pipeline."]
|
|
432
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Maps a handler name to a typed function and invokes it with the request context and config."]
|
|
433
|
+
// CIL[DOC-CONTEXT module="system-cron" layer="functions" related_files=".framework/functions/_shared/audit.ts,.framework/functions/_shared/db.ts,.framework/functions/_shared/middleware.ts,.framework/functions/_shared/pipeline-runner.ts,.framework/functions/_shared/retry-deliveries.ts,.framework/functions/system-cron.ts"]
|
|
434
|
+
// CIL[DOC-CONTRACT inputs="ctx: RequestContext, handlerName: string, config: any" outputs="handler result object" errors="Throws for unknown handler or missing pipeline_id in run_pipeline." side_effects="May call runPipeline and log to console."]
|
|
435
|
+
// CIL[DOC-MICRO logic_summary="Uses a handlers map to select and call the requested function; validates required fields before invoking run_pipeline." notable_decisions="Stubs produce console logs and mock results; run_pipeline requires pipeline_id and returns normalized execution summary."]
|
|
436
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
437
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
438
|
+
// CIL[DOC-AUDIENCE audience="developers"]
|
|
411
439
|
async function executeFunctionHandler(
|
|
412
440
|
ctx: RequestContext,
|
|
413
441
|
handlerName: string,
|
|
@@ -453,21 +481,22 @@ async function executeFunctionHandler(
|
|
|
453
481
|
|
|
454
482
|
return await handler(ctx, config)
|
|
455
483
|
}
|
|
456
|
-
// CIL[END
|
|
457
|
-
// CIL[BEGIN
|
|
458
|
-
// CIL[DOC-MACRO purpose="
|
|
459
|
-
// CIL[DOC-
|
|
460
|
-
// CIL[DOC-
|
|
461
|
-
// CIL[DOC-
|
|
462
|
-
// CIL[DOC-
|
|
463
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
464
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
465
|
-
// CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 1. Direct calls: 0. Related files: .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/principal.ts, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/functions/_shared/schema-utils.ts, custom/apps/portal/pages/ContentPage.tsx, \."]
|
|
466
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 1. Total affected: 2."]
|
|
467
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
468
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
484
|
+
// CIL[END stable_id="~/.framework/functions/system-cron.ts:executeFunctionHandler:function"]
|
|
485
|
+
// CIL[BEGIN stable_id="~/.framework/functions/system-cron.ts:executeIntegrationHandler:function" type="function" identity="executeIntegrationHandler" parent="~/.framework/functions/system-cron.ts"]
|
|
486
|
+
// CIL[DOC-MACRO purpose="Stub for integration-based action handlers."]
|
|
487
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Implements built-in function handlers: send_email, generate_report, notify_watchers, run_pipeline.'; No verified external callers; imports: .framework/functions/_shared/middleware.ts,.framework/functions/_shared/db.ts,.framework/functions/_shared/audit.ts"]
|
|
488
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
489
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
490
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
469
491
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
470
492
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
493
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Logs the invocation of an integration handler and returns a placeholder result."]
|
|
494
|
+
// CIL[DOC-CONTEXT module="system-cron" layer="functions" related_files=".framework/functions/_shared/audit.ts,.framework/functions/_shared/db.ts,.framework/functions/_shared/middleware.ts,.framework/functions/_shared/pipeline-runner.ts,.framework/functions/_shared/retry-deliveries.ts,.framework/functions/system-cron.ts"]
|
|
495
|
+
// CIL[DOC-CONTRACT inputs="ctx: RequestContext, handlerName: string, config: any" outputs="placeholder result" errors="none" side_effects="logs to console"]
|
|
496
|
+
// CIL[DOC-MICRO logic_summary="Logs the handler name and config, then returns an executed placeholder." notable_decisions="Integration handlers are not fully implemented in this file."]
|
|
497
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
498
|
+
// CIL[DOC-STABILITY stability="experimental"]
|
|
499
|
+
// CIL[DOC-AUDIENCE audience="developers"]
|
|
471
500
|
async function executeIntegrationHandler(
|
|
472
501
|
ctx: RequestContext,
|
|
473
502
|
handlerName: string,
|
|
@@ -476,21 +505,22 @@ async function executeIntegrationHandler(
|
|
|
476
505
|
console.log(`[${ctx.requestId}] Integration handler: ${handlerName}`, config)
|
|
477
506
|
return { executed: true, handler: handlerName }
|
|
478
507
|
}
|
|
479
|
-
// CIL[
|
|
480
|
-
// CIL[
|
|
481
|
-
// CIL[DOC-
|
|
482
|
-
// CIL[DOC-
|
|
483
|
-
// CIL[DOC-CONTEXT module="system-cron" layer="api-handler" 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\",\".framework/functions/_shared/principal.ts\",\"\\\"]"]
|
|
484
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Array of threshold evaluation results" errors="Returns empty array on errors" side_effects="Pipeline execution, audit logging"]
|
|
485
|
-
// CIL[DOC-MICRO logic_summary="Queries metrics, checks thresholds, triggers pipelines" notable_decisions="[]"]
|
|
486
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="complex_dependencies"]
|
|
487
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
488
|
-
// CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 1. 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, .framework/functions/_shared/principal.ts, \."]
|
|
489
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 1. Total affected: 1."]
|
|
490
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
491
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
508
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Stub for integration-based action handlers.'; No verified external callers; imports: .framework/functions/_shared/middleware.ts,.framework/functions/_shared/db.ts,.framework/functions/_shared/audit.ts"]
|
|
509
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
510
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
511
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
492
512
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
493
513
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
514
|
+
// CIL[END stable_id="~/.framework/functions/system-cron.ts:executeIntegrationHandler:function"]
|
|
515
|
+
// CIL[BEGIN stable_id="~/.framework/functions/system-cron.ts:evaluateThresholds:function" type="function" identity="evaluateThresholds" parent="~/.framework/functions/system-cron.ts"]
|
|
516
|
+
// CIL[DOC-MACRO purpose="Fetches active threshold alerts, compares metrics to thresholds and fires associated pipelines when breached."]
|
|
517
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Evaluates error_rate, latency_p95 and pipeline_failure_rate thresholds and runs fire pipelines for breached ones."]
|
|
518
|
+
// CIL[DOC-CONTEXT module="system-cron" layer="functions" related_files=".framework/functions/_shared/audit.ts,.framework/functions/_shared/db.ts,.framework/functions/_shared/middleware.ts,.framework/functions/_shared/pipeline-runner.ts,.framework/functions/_shared/retry-deliveries.ts,.framework/functions/system-cron.ts"]
|
|
519
|
+
// CIL[DOC-CONTRACT inputs="ctx: RequestContext" outputs="array of threshold evaluation results" errors="Logs and swallows individual threshold errors; returns empty on DB errors." side_effects="Queries threshold_alerts, calls runPipeline, emits threshold.breached audit events."]
|
|
520
|
+
// CIL[DOC-MICRO logic_summary="Fetches active thresholds, computes the requested metric over a window, compares it to the configured operator/value, fires the linked pipeline if breached, and emits audit events." notable_decisions="Unknown metrics are skipped with a warning; pipeline fire errors are logged but the threshold result still records breached=true."]
|
|
521
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
522
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
523
|
+
// CIL[DOC-AUDIENCE audience="developers"]
|
|
494
524
|
async function evaluateThresholds(ctx: RequestContext): Promise<Array<{thresholdId: string, breached: boolean, fired: boolean}>> {
|
|
495
525
|
const results: Array<{thresholdId: string, breached: boolean, fired: boolean}> = []
|
|
496
526
|
|
|
@@ -616,21 +646,22 @@ async function evaluateThresholds(ctx: RequestContext): Promise<Array<{threshold
|
|
|
616
646
|
return results
|
|
617
647
|
}
|
|
618
648
|
}
|
|
619
|
-
// CIL[END
|
|
620
|
-
// CIL[BEGIN
|
|
621
|
-
// CIL[DOC-MACRO purpose="
|
|
622
|
-
// CIL[DOC-
|
|
623
|
-
// CIL[DOC-
|
|
624
|
-
// CIL[DOC-
|
|
625
|
-
// CIL[DOC-
|
|
626
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
627
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
628
|
-
// CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
629
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
630
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
631
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
649
|
+
// CIL[END stable_id="~/.framework/functions/system-cron.ts:evaluateThresholds:function"]
|
|
650
|
+
// CIL[BEGIN stable_id="~/.framework/functions/system-cron.ts:cleanupOldLogs:function" type="function" identity="cleanupOldLogs" parent="~/.framework/functions/system-cron.ts"]
|
|
651
|
+
// CIL[DOC-MACRO purpose="Invokes the database cleanup_old_logs RPC to delete log records older than 90 days."]
|
|
652
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Fetches active threshold alerts, compares metrics to thresholds and fires associated pipelines when breached.'; No verified external callers; imports: .framework/functions/_shared/middleware.ts,.framework/functions/_shared/db.ts,.framework/functions/_shared/audit.ts"]
|
|
653
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
654
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
655
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
632
656
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
633
657
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
658
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Removes stale logs and returns the number of deleted records."]
|
|
659
|
+
// CIL[DOC-CONTEXT module="system-cron" layer="functions" related_files=".framework/functions/_shared/audit.ts,.framework/functions/_shared/db.ts,.framework/functions/_shared/middleware.ts,.framework/functions/_shared/pipeline-runner.ts,.framework/functions/_shared/retry-deliveries.ts,.framework/functions/system-cron.ts"]
|
|
660
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="number of deleted records" errors="Logs cleanup errors and returns 0 on failure." side_effects="Calls the cleanup_old_logs RPC which deletes old log records."]
|
|
661
|
+
// CIL[DOC-MICRO logic_summary="Calls the cleanup_old_logs RPC with a 90-day retention and returns the deleted count, logging any errors." notable_decisions="Uses a fixed 90-day retention window; deletion count is read from the first row of the RPC result."]
|
|
662
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
663
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
664
|
+
// CIL[DOC-AUDIENCE audience="developers"]
|
|
634
665
|
async function cleanupOldLogs(): Promise<number> {
|
|
635
666
|
try {
|
|
636
667
|
const { data, error } = await adminDb.rpc('cleanup_old_logs', {
|
|
@@ -653,4 +684,10 @@ async function cleanupOldLogs(): Promise<number> {
|
|
|
653
684
|
return 0
|
|
654
685
|
}
|
|
655
686
|
}
|
|
656
|
-
// CIL[
|
|
687
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Invokes the database cleanup_old_logs RPC to delete log records older than 90 days.'; No verified external callers; imports: .framework/functions/_shared/middleware.ts,.framework/functions/_shared/db.ts,.framework/functions/_shared/audit.ts"]
|
|
688
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
689
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
690
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
691
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
692
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
693
|
+
// CIL[END stable_id="~/.framework/functions/system-cron.ts:cleanupOldLogs:function"]
|