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,21 +1,15 @@
|
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/TimersPage.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/pages/admin/TimersPage.tsx"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Timers admin page module: imports, types, and React component for managing scheduled and recurring tasks"]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide module-level setup and dependencies for the Timers admin UI page"]
|
|
4
|
+
// CIL[DOC-CONTEXT module="admin/timers" layer="ui.page" related_files=".framework/src/components/admin/AdminListPage.tsx,.framework/src/components/admin/SortableTableHeader.tsx,.framework/src/components/ui/LoadingSpinner.tsx,.framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="[]" outputs="[]" errors="[]" side_effects="[]"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="No runtime logic; groups imports and type definitions for the TimersPage component" notable_decisions="[]"]
|
|
7
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
8
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
9
|
+
// CIL[DOC-AUDIENCE audience="admin-ui developers"]
|
|
1
10
|
|
|
2
11
|
|
|
3
12
|
|
|
4
|
-
// CIL[BEGIN chunk_id="timerspage_moduleheader_1783664706" type="module_header" identity="module_header" parent="none"]
|
|
5
|
-
// CIL[DOC-MACRO purpose="Import dependencies for TimersPage component"]
|
|
6
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Provide all external dependencies and UI components"]
|
|
7
|
-
// CIL[DOC-CONTEXT module="TimersPage" layer="frontend-page" related_files="[\".framework/src/components/layout/Sidebar.tsx\",\".framework/src/components/ui/dialog.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"\\\"]"]
|
|
8
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="React components and utilities" errors="none" side_effects="none"]
|
|
9
|
-
// CIL[DOC-MICRO logic_summary="Imports React hooks, navigation, API utilities, icons, and UI components" notable_decisions="[]"]
|
|
10
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
11
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
12
|
-
// CIL[DOC-AUDIENCE audience="developer"]
|
|
13
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-page. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/layout/Sidebar.tsx, .framework/src/components/ui/dialog.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, \."]
|
|
14
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
15
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
16
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
17
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
18
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
19
13
|
import React, { useState } from 'react'
|
|
20
14
|
import { useNavigate } from 'react-router-dom'
|
|
21
15
|
import { useApi } from '../../hooks/useApi'
|
|
@@ -27,21 +21,22 @@ import { Badge } from '../../components/ui/badge'
|
|
|
27
21
|
import { formatDateTime } from '../../lib/utils'
|
|
28
22
|
import { AdminListPage } from '../../components/admin/AdminListPage'
|
|
29
23
|
import { SortableTableHeader } from '../../components/admin/SortableTableHeader'
|
|
30
|
-
|
|
31
|
-
// CIL[
|
|
32
|
-
// CIL[DOC-
|
|
33
|
-
// CIL[DOC-
|
|
34
|
-
// CIL[DOC-
|
|
35
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Timer interface" errors="none" side_effects="none"]
|
|
36
|
-
// CIL[DOC-MICRO logic_summary="Defines comprehensive timer structure with execution statistics" notable_decisions="[]"]
|
|
37
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
38
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
39
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-page. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/IntegrationsPage.tsx, .framework/functions/_shared/principal.ts, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/functions/_shared/schema-utils.ts, .framework/src/pages/admin/TypeDetailPage.tsx, \."]
|
|
40
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
41
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
42
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
24
|
+
|
|
25
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Timers admin page module: imports, types, and React component for managing scheduled and recurring tasks'; No verified external callers; imports: .framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/components/ui/LoadingSpinner.tsx"]
|
|
26
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
27
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
28
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
43
29
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
44
30
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
31
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/TimersPage.tsx:module_header:module_header"]
|
|
32
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/TimersPage.tsx:Timer:interface" type="interface" identity="Timer" parent="~/.framework/src/pages/admin/TimersPage.tsx"]
|
|
33
|
+
// CIL[DOC-MACRO purpose="Define the Timer data shape used by the admin timers page"]
|
|
34
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Describe the fields and configuration structure of a timer record"]
|
|
35
|
+
// CIL[DOC-CONTEXT module="admin/timers" layer="ui.type" related_files=".framework/src/components/admin/AdminListPage.tsx,.framework/src/components/admin/SortableTableHeader.tsx,.framework/src/components/ui/LoadingSpinner.tsx,.framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts,.framework/src/pages/admin/TimersPage.tsx"]
|
|
36
|
+
// CIL[DOC-CONTRACT inputs="[]" outputs="Timer interface" errors="[]" side_effects="[]"]
|
|
37
|
+
// CIL[DOC-MICRO logic_summary="TypeScript interface describing timer fields including scheduling config, execution stats, and ownership" notable_decisions="[]"]
|
|
38
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
39
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
45
40
|
interface Timer {
|
|
46
41
|
id: string
|
|
47
42
|
name: string
|
|
@@ -67,21 +62,22 @@ interface Timer {
|
|
|
67
62
|
success_count: number
|
|
68
63
|
failure_count: number
|
|
69
64
|
}
|
|
70
|
-
// CIL[
|
|
71
|
-
// CIL[
|
|
72
|
-
// CIL[DOC-
|
|
73
|
-
// CIL[DOC-
|
|
74
|
-
// CIL[DOC-CONTEXT module="TimersPage" layer="frontend-page" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
|
|
75
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="React component with timer list" errors="API failures" side_effects="API calls, navigation"]
|
|
76
|
-
// CIL[DOC-MICRO logic_summary="Client-side filtering, sorting, and stats calculation for timers" notable_decisions="[]"]
|
|
77
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
78
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
79
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-page. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
|
|
80
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
81
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
82
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
65
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Define the Timer data shape used by the admin timers page'; No verified external callers; imports: .framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/components/ui/LoadingSpinner.tsx"]
|
|
66
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
67
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
68
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
83
69
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
84
70
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
71
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/TimersPage.tsx:Timer:interface"]
|
|
72
|
+
|
|
73
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/TimersPage.tsx:TimersPage:component" type="component" identity="TimersPage" parent="~/.framework/src/pages/admin/TimersPage.tsx"]
|
|
74
|
+
// CIL[DOC-MACRO purpose="Render the admin timers list page with search, filters, sorting, and execution statistics"]
|
|
75
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Display timers, enable search/filter/sort, show status cards, and navigate to create/edit/detail"]
|
|
76
|
+
// CIL[DOC-CONTEXT module="admin/timers" layer="ui.component" related_files=".framework/src/components/admin/AdminListPage.tsx,.framework/src/components/admin/SortableTableHeader.tsx,.framework/src/components/ui/LoadingSpinner.tsx,.framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts,.framework/src/pages/admin/TimersPage.tsx"]
|
|
77
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="JSX AdminListPage with a sortable timer table" errors="API request failures" side_effects="Navigates to timer detail on row click; fetches timer list from API"]
|
|
78
|
+
// CIL[DOC-MICRO logic_summary="Fetches timer list, filters by search text, type and status, sorts by selected key, computes summary cards, and renders a table of timers" notable_decisions="[]"]
|
|
79
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
80
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
85
81
|
export function TimersPage() {
|
|
86
82
|
const navigate = useNavigate()
|
|
87
83
|
const [searchTerm, setSearchTerm] = useState('')
|
|
@@ -401,4 +397,10 @@ export function TimersPage() {
|
|
|
401
397
|
</AdminListPage>
|
|
402
398
|
)
|
|
403
399
|
}
|
|
404
|
-
// CIL[
|
|
400
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render the admin timers list page with search, filters, sorting, and execution statistics'; No verified external callers; imports: .framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/components/ui/LoadingSpinner.tsx"]
|
|
401
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
402
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
403
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
404
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
405
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
406
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/TimersPage.tsx:TimersPage:component"]
|
|
@@ -1,21 +1,16 @@
|
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/TriggerDetailPage.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/pages/admin/TriggerDetailPage.tsx"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Provides the admin trigger detail page module"]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Imports React, routing, UI components, and utilities used by TriggerDetailPage"]
|
|
4
|
+
// CIL[DOC-CONTEXT module="triggers" layer="presentation" related_files=".framework/src/components/admin/PageInstructions.tsx,.framework/src/components/ui/alert.tsx,.framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/card.tsx,.framework/src/components/ui/checkbox.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/select.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/textarea.tsx,.framework/src/lib/api.ts,.framework/src/lib/utils.ts"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Assembles the module dependencies for the admin trigger detail and editing page" notable_decisions="[]"]
|
|
7
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
8
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
9
|
+
// CIL[DOC-AUDIENCE audience="administrators"]
|
|
10
|
+
|
|
1
11
|
|
|
2
12
|
|
|
3
13
|
|
|
4
|
-
// CIL[BEGIN chunk_id="triggerdetailpage_moduleheader_1783664706" type="module_header" identity="module_header" parent="none"]
|
|
5
|
-
// CIL[DOC-MACRO purpose="Import dependencies for TriggerDetailPage component"]
|
|
6
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Provide all external dependencies and UI components"]
|
|
7
|
-
// CIL[DOC-CONTEXT module="TriggerDetailPage" layer="frontend-page" related_files="[\".framework/src/components/ui/dialog.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
|
|
8
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="React components and utilities" errors="none" side_effects="none"]
|
|
9
|
-
// CIL[DOC-MICRO logic_summary="Imports React hooks, navigation, API utilities, and UI components" notable_decisions="[]"]
|
|
10
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
11
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
12
|
-
// CIL[DOC-AUDIENCE audience="developer"]
|
|
13
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-page. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/ui/dialog.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
|
|
14
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
15
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
16
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
17
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
18
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
19
14
|
import { useState, useEffect } from 'react'
|
|
20
15
|
import { useParams, useNavigate } from 'react-router-dom'
|
|
21
16
|
import { apiFetch } from '../../lib/api'
|
|
@@ -32,21 +27,23 @@ import { Badge } from '../../components/ui/badge'
|
|
|
32
27
|
import { ArrowLeft, Zap, AlertCircle } from 'lucide-react'
|
|
33
28
|
import { formatDateTime } from '../../lib/utils'
|
|
34
29
|
import { PageInstructions } from '../../components/admin/PageInstructions'
|
|
35
|
-
|
|
36
|
-
// CIL[
|
|
37
|
-
// CIL[DOC-
|
|
38
|
-
// CIL[DOC-
|
|
39
|
-
// CIL[DOC-
|
|
40
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Trigger interface" errors="none" side_effects="none"]
|
|
41
|
-
// CIL[DOC-MICRO logic_summary="Defines trigger structure with event configuration and action settings" notable_decisions="[]"]
|
|
42
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
43
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
44
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-page. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/IntegrationsPage.tsx, .framework/functions/_shared/principal.ts, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/functions/_shared/schema-utils.ts, .framework/src/pages/admin/TypeDetailPage.tsx, \."]
|
|
45
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
46
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
47
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
30
|
+
|
|
31
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Provides the admin trigger detail page module'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx"]
|
|
32
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
33
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
34
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
48
35
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
49
36
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
37
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/TriggerDetailPage.tsx:module_header:module_header"]
|
|
38
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/TriggerDetailPage.tsx:Trigger:interface" type="interface" identity="Trigger" parent="~/.framework/src/pages/admin/TriggerDetailPage.tsx"]
|
|
39
|
+
// CIL[DOC-MACRO purpose="Defines the shape of a trigger record"]
|
|
40
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provides the TypeScript interface for trigger data used in the admin page"]
|
|
41
|
+
// CIL[DOC-CONTEXT module="triggers" layer="presentation" related_files=".framework/src/components/admin/PageInstructions.tsx,.framework/src/components/ui/alert.tsx,.framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/card.tsx,.framework/src/components/ui/checkbox.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/select.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/textarea.tsx,.framework/src/lib/api.ts,.framework/src/lib/utils.ts,.framework/src/pages/admin/TriggerDetailPage.tsx"]
|
|
42
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Trigger type definition" errors="none" side_effects="none"]
|
|
43
|
+
// CIL[DOC-MICRO logic_summary="Declares the fields, optionality, and types for a Trigger record" notable_decisions="[]"]
|
|
44
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
45
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
46
|
+
|
|
50
47
|
interface Trigger {
|
|
51
48
|
id: string
|
|
52
49
|
name: string
|
|
@@ -60,21 +57,23 @@ interface Trigger {
|
|
|
60
57
|
created_at: string
|
|
61
58
|
updated_at: string
|
|
62
59
|
}
|
|
63
|
-
// CIL[
|
|
64
|
-
// CIL[
|
|
65
|
-
// CIL[DOC-
|
|
66
|
-
// CIL[DOC-
|
|
67
|
-
// CIL[DOC-CONTEXT module="TriggerDetailPage" layer="frontend-page" related_files="[\".framework/src/pages/admin/TypeDetailPage.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
|
|
68
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="React component with trigger form" errors="API failures, validation errors" side_effects="API calls, navigation"]
|
|
69
|
-
// CIL[DOC-MICRO logic_summary="Form handling with trigger configuration and action settings" notable_decisions="[]"]
|
|
70
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
71
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
72
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-page. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/TypeDetailPage.tsx, custom/apps/portal/pages/ContentPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
|
|
73
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
74
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
75
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
60
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Defines the shape of a trigger record'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx"]
|
|
61
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
62
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
63
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
76
64
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
77
65
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
66
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/TriggerDetailPage.tsx:Trigger:interface"]
|
|
67
|
+
|
|
68
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/TriggerDetailPage.tsx:TriggerDetailPage:component" type="component" identity="TriggerDetailPage" parent="~/.framework/src/pages/admin/TriggerDetailPage.tsx"]
|
|
69
|
+
// CIL[DOC-MACRO purpose="Renders and manages the trigger create/edit form"]
|
|
70
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Fetches trigger data, manages form state, validates JSON, and saves the trigger via the admin API"]
|
|
71
|
+
// CIL[DOC-CONTEXT module="triggers" layer="presentation" related_files=".framework/src/components/admin/PageInstructions.tsx,.framework/src/components/ui/alert.tsx,.framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/card.tsx,.framework/src/components/ui/checkbox.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/select.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/textarea.tsx,.framework/src/lib/api.ts,.framework/src/lib/utils.ts,.framework/src/pages/admin/TriggerDetailPage.tsx"]
|
|
72
|
+
// CIL[DOC-CONTRACT inputs="id route param" outputs="JSX detail page with edit/create controls" errors="API or JSON parse failures" side_effects="Updates form state, navigates on save"]
|
|
73
|
+
// CIL[DOC-MICRO logic_summary="Loads a trigger, supports create and edit modes, validates config and metadata JSON, persists via apiFetch, and renders PageInstructions" notable_decisions="[]"]
|
|
74
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
75
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
76
|
+
|
|
78
77
|
export function TriggerDetailPage() {
|
|
79
78
|
const { id } = useParams<{ id: string }>()
|
|
80
79
|
const navigate = useNavigate()
|
|
@@ -234,4 +233,10 @@ export function TriggerDetailPage() {
|
|
|
234
233
|
</div>
|
|
235
234
|
)
|
|
236
235
|
}
|
|
237
|
-
// CIL[
|
|
236
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders and manages the trigger create/edit form'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx"]
|
|
237
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
238
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
239
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
240
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
241
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
242
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/TriggerDetailPage.tsx:TriggerDetailPage:component"]
|
|
@@ -1,22 +1,14 @@
|
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/TriggersPage.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/pages/admin/TriggersPage.tsx"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Admin triggers management module for the Spine framework"]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Declare the TriggersPage module and its core dependencies for admin configuration"]
|
|
4
|
+
// CIL[DOC-CONTEXT module="admin" layer="presentation" related_files=".framework/src/components/admin/AdminListPage.tsx,.framework/src/components/admin/SortableTableHeader.tsx,.framework/src/components/ui/LoadingSpinner.tsx,.framework/src/components/ui/Modal.tsx,.framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="module imports and component exports" errors="none" side_effects="none"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Imports React hooks, API utilities, Lucide icons, and admin UI components used by TriggersPage" notable_decisions="[]"]
|
|
7
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
8
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
9
|
+
// CIL[DOC-AUDIENCE audience="developers"]
|
|
1
10
|
|
|
2
11
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
// CIL[BEGIN chunk_id="triggerspage_moduleheader_1783664706" type="module_header" identity="module_header" parent="none"]
|
|
6
|
-
// CIL[DOC-MACRO purpose="Import dependencies for TriggersPage component"]
|
|
7
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Provide all external dependencies and UI components"]
|
|
8
|
-
// CIL[DOC-CONTEXT module="TriggersPage" layer="frontend-page" related_files="[\".framework/src/components/layout/Sidebar.tsx\",\".framework/src/components/ui/dialog.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"\\\"]"]
|
|
9
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="React components and utilities" errors="none" side_effects="none"]
|
|
10
|
-
// CIL[DOC-MICRO logic_summary="Imports React hooks, navigation, API utilities, icons, and UI components" notable_decisions="[]"]
|
|
11
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
12
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
13
|
-
// CIL[DOC-AUDIENCE audience="developer"]
|
|
14
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-page. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/layout/Sidebar.tsx, .framework/src/components/ui/dialog.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, \."]
|
|
15
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
16
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
17
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
18
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
19
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
20
12
|
import React, { useState } from 'react'
|
|
21
13
|
import { useNavigate } from 'react-router-dom'
|
|
22
14
|
import { useApi } from '../../hooks/useApi'
|
|
@@ -29,21 +21,22 @@ import { Badge } from '../../components/ui/badge'
|
|
|
29
21
|
import { formatDateTime } from '../../lib/utils'
|
|
30
22
|
import { AdminListPage } from '../../components/admin/AdminListPage'
|
|
31
23
|
import { SortableTableHeader } from '../../components/admin/SortableTableHeader'
|
|
32
|
-
|
|
33
|
-
// CIL[
|
|
34
|
-
// CIL[DOC-
|
|
35
|
-
// CIL[DOC-
|
|
36
|
-
// CIL[DOC-
|
|
37
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Trigger interface" errors="none" side_effects="none"]
|
|
38
|
-
// CIL[DOC-MICRO logic_summary="Defines comprehensive trigger structure with execution tracking" notable_decisions="[]"]
|
|
39
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
40
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
41
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-page. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/IntegrationsPage.tsx, .framework/functions/_shared/principal.ts, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/functions/_shared/schema-utils.ts, .framework/src/pages/admin/TypeDetailPage.tsx, \."]
|
|
42
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
43
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
44
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
24
|
+
|
|
25
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Admin triggers management module for the Spine framework'; No verified external callers; imports: .framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/components/ui/LoadingSpinner.tsx"]
|
|
26
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
27
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
28
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
45
29
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
46
30
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
31
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/TriggersPage.tsx:module_header:module_header"]
|
|
32
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/TriggersPage.tsx:Trigger:interface" type="interface" identity="Trigger" parent="~/.framework/src/pages/admin/TriggersPage.tsx"]
|
|
33
|
+
// CIL[DOC-MACRO purpose="Define the data shape for a Trigger record"]
|
|
34
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide TypeScript typings for trigger entities consumed by TriggersPage"]
|
|
35
|
+
// CIL[DOC-CONTEXT module="admin" layer="presentation" related_files=".framework/src/components/admin/AdminListPage.tsx,.framework/src/components/admin/SortableTableHeader.tsx,.framework/src/components/ui/LoadingSpinner.tsx,.framework/src/components/ui/Modal.tsx,.framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts,.framework/src/pages/admin/TriggersPage.tsx"]
|
|
36
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Trigger type definition" errors="none" side_effects="none"]
|
|
37
|
+
// CIL[DOC-MICRO logic_summary="Describes all fields of a trigger including metadata, scheduling, and execution counters" notable_decisions="[]"]
|
|
38
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
39
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
47
40
|
interface Trigger {
|
|
48
41
|
id: string
|
|
49
42
|
name: string
|
|
@@ -61,21 +54,22 @@ interface Trigger {
|
|
|
61
54
|
last_execution?: string
|
|
62
55
|
next_execution?: string
|
|
63
56
|
}
|
|
64
|
-
// CIL[
|
|
65
|
-
// CIL[
|
|
66
|
-
// CIL[DOC-
|
|
67
|
-
// CIL[DOC-
|
|
68
|
-
// CIL[DOC-CONTEXT module="TriggersPage" layer="frontend-page" related_files="[\".framework/src/pages/admin/IntegrationsPage.tsx\",\".framework/functions/_shared/principal.ts\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/functions/_shared/schema-utils.ts\",\".framework/src/components/layout/Sidebar.tsx\",\"\\\"]"]
|
|
69
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="TriggerExecution interface" errors="none" side_effects="none"]
|
|
70
|
-
// CIL[DOC-MICRO logic_summary="Defines execution tracking structure with status and results" notable_decisions="[]"]
|
|
71
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
72
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
73
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-page. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/IntegrationsPage.tsx, .framework/functions/_shared/principal.ts, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/functions/_shared/schema-utils.ts, .framework/src/components/layout/Sidebar.tsx, \."]
|
|
74
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
75
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
76
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
57
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Define the data shape for a Trigger record'; No verified external callers; imports: .framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/components/ui/LoadingSpinner.tsx"]
|
|
58
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
59
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
60
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
77
61
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
78
62
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
63
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/TriggersPage.tsx:Trigger:interface"]
|
|
64
|
+
|
|
65
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/TriggersPage.tsx:TriggerExecution:interface" type="interface" identity="TriggerExecution" parent="~/.framework/src/pages/admin/TriggersPage.tsx"]
|
|
66
|
+
// CIL[DOC-MACRO purpose="Define the data shape for a trigger execution record"]
|
|
67
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide TypeScript typings for individual trigger executions"]
|
|
68
|
+
// CIL[DOC-CONTEXT module="admin" layer="presentation" related_files=".framework/src/components/admin/AdminListPage.tsx,.framework/src/components/admin/SortableTableHeader.tsx,.framework/src/components/ui/LoadingSpinner.tsx,.framework/src/components/ui/Modal.tsx,.framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts,.framework/src/pages/admin/TriggersPage.tsx"]
|
|
69
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="TriggerExecution type definition" errors="none" side_effects="none"]
|
|
70
|
+
// CIL[DOC-MICRO logic_summary="Describes execution status, timing, payload, and optional error for a single run" notable_decisions="[]"]
|
|
71
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
72
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
79
73
|
interface TriggerExecution {
|
|
80
74
|
id: string
|
|
81
75
|
trigger_id: string
|
|
@@ -86,21 +80,22 @@ interface TriggerExecution {
|
|
|
86
80
|
result?: Record<string, any>
|
|
87
81
|
error?: string
|
|
88
82
|
}
|
|
89
|
-
// CIL[
|
|
90
|
-
// CIL[
|
|
91
|
-
// CIL[DOC-
|
|
92
|
-
// CIL[DOC-
|
|
93
|
-
// CIL[DOC-CONTEXT module="TriggersPage" layer="frontend-page" related_files="[\".framework/src/pages/admin/TypeDetailPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
|
|
94
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="React component with trigger list" errors="API failures" side_effects="API calls, navigation"]
|
|
95
|
-
// CIL[DOC-MICRO logic_summary="Client-side filtering, sorting, and stats calculation for triggers" notable_decisions="[]"]
|
|
96
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
97
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
98
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-page. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/TypeDetailPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
|
|
99
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
100
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
101
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
83
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Define the data shape for a trigger execution record'; No verified external callers; imports: .framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/components/ui/LoadingSpinner.tsx"]
|
|
84
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
85
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
86
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
102
87
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
103
88
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
89
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/TriggersPage.tsx:TriggerExecution:interface"]
|
|
90
|
+
|
|
91
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/TriggersPage.tsx:TriggersPage:component" type="component" identity="TriggersPage" parent="~/.framework/src/pages/admin/TriggersPage.tsx"]
|
|
92
|
+
// CIL[DOC-MACRO purpose="Render the admin triggers list page with filtering, sorting, and navigation"]
|
|
93
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Fetch and display triggers; provide status/type filters, sorting, and row actions"]
|
|
94
|
+
// CIL[DOC-CONTEXT module="admin" layer="presentation" related_files=".framework/src/components/admin/AdminListPage.tsx,.framework/src/components/admin/SortableTableHeader.tsx,.framework/src/components/ui/LoadingSpinner.tsx,.framework/src/components/ui/Modal.tsx,.framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts,.framework/src/pages/admin/TriggersPage.tsx"]
|
|
95
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="JSX for the admin triggers list" errors="Failed to fetch triggers" side_effects="navigates to trigger create, edit, and execution routes; calls toggle/execute/row click handlers"]
|
|
96
|
+
// CIL[DOC-MICRO logic_summary="Uses useApi to load triggers, filters and sorts them, then renders an AdminListPage with a data table" notable_decisions="[]"]
|
|
97
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
98
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
104
99
|
export function TriggersPage() {
|
|
105
100
|
console.log('TriggersPage rendering...')
|
|
106
101
|
const navigate = useNavigate()
|
|
@@ -423,4 +418,10 @@ export function TriggersPage() {
|
|
|
423
418
|
</AdminListPage>
|
|
424
419
|
)
|
|
425
420
|
}
|
|
426
|
-
// CIL[
|
|
421
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render the admin triggers list page with filtering, sorting, and navigation'; No verified external callers; imports: .framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/components/ui/LoadingSpinner.tsx"]
|
|
422
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
423
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
424
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
425
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
426
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
427
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/TriggersPage.tsx:TriggersPage:component"]
|