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,59 +1,69 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
// CIL[
|
|
5
|
-
// CIL[DOC-
|
|
6
|
-
// CIL[DOC-
|
|
7
|
-
// CIL[DOC-
|
|
8
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Imported modules" errors="none" side_effects="none"]
|
|
9
|
-
// CIL[DOC-MICRO logic_summary="Imports React, InviteManager component, and auth context" notable_decisions="[]"]
|
|
10
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/InvitesPage.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/pages/admin/InvitesPage.tsx"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Admin page for managing system administrator invites and access within the Spine Framework."]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Declares the module, imports dependencies, and exports the InvitesPage component."]
|
|
4
|
+
// CIL[DOC-CONTEXT module="admin" layer="page" related_files=".framework/src/components/shared/InviteManager.tsx,.framework/src/contexts/AuthContext.tsx"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Sets up the admin invites page module and its runtime dependencies." notable_decisions="[]"]
|
|
7
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
11
8
|
// CIL[DOC-STABILITY stability="stable"]
|
|
12
|
-
// CIL[DOC-AUDIENCE audience="
|
|
13
|
-
// CIL[DOC-VECTOR type="context" content="Layer: presentation. 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"]
|
|
9
|
+
// CIL[DOC-AUDIENCE audience="maintainer"]
|
|
19
10
|
import React from 'react'
|
|
20
11
|
import { InviteManager } from '../../components/shared/InviteManager'
|
|
21
12
|
import { useAuth } from '../../contexts/AuthContext'
|
|
22
|
-
// CIL[
|
|
23
|
-
// CIL[
|
|
24
|
-
// CIL[DOC-
|
|
25
|
-
// CIL[DOC-
|
|
26
|
-
// CIL[DOC-CONTEXT module="InvitesPage" layer="constants" related_files="[\".framework/src/pages/admin/RolesPage.tsx\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"\\\"]"]
|
|
27
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Role constants" errors="none" side_effects="none"]
|
|
28
|
-
// CIL[DOC-MICRO logic_summary="Defines system admin role with slug and name" notable_decisions="[]"]
|
|
29
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
30
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
31
|
-
// CIL[DOC-VECTOR type="context" content="Layer: constants. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/RolesPage.tsx, .framework/src/pages/admin/IntegrationsPage.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, \."]
|
|
32
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
33
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
34
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
13
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Admin page for managing system administrator invites and access within the Spine Framework.'; No verified external callers; imports: .framework/src/components/shared/InviteManager.tsx,.framework/src/contexts/AuthContext.tsx"]
|
|
14
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
15
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
16
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
35
17
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
36
18
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
19
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/InvitesPage.tsx:module_header:module_header"]
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/InvitesPage.tsx:framework_roles:constant" type="constant" identity="FRAMEWORK_ROLES" parent="~/.framework/src/pages/admin/InvitesPage.tsx"]
|
|
23
|
+
// CIL[DOC-MACRO purpose="Defines the list of framework-level admin roles available for invites."]
|
|
24
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provides a static array of role objects used by the InviteManager."]
|
|
25
|
+
// CIL[DOC-CONTEXT module="admin" layer="constant" related_files=".framework/src/components/shared/InviteManager.tsx,.framework/src/contexts/AuthContext.tsx,.framework/src/pages/admin/InvitesPage.tsx"]
|
|
26
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="FRAMEWORK_ROLES array of { slug, name }" errors="none" side_effects="none"]
|
|
27
|
+
// CIL[DOC-MICRO logic_summary="Hardcodes the system_admin role configuration." notable_decisions="[]"]
|
|
28
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
29
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
37
30
|
const FRAMEWORK_ROLES = [
|
|
38
31
|
{ slug: 'system_admin', name: 'System Admin' },
|
|
39
32
|
]
|
|
33
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Defines the list of framework-level admin roles available for invites.'; No verified external callers; imports: .framework/src/components/shared/InviteManager.tsx,.framework/src/contexts/AuthContext.tsx"]
|
|
34
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
35
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
36
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
37
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
38
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
39
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/InvitesPage.tsx:framework_roles:constant"]
|
|
40
40
|
|
|
41
|
-
|
|
42
|
-
// CIL[
|
|
43
|
-
// CIL[
|
|
44
|
-
// CIL[DOC-
|
|
45
|
-
// CIL[DOC-
|
|
46
|
-
// CIL[DOC-
|
|
47
|
-
// CIL[DOC-
|
|
48
|
-
// CIL[DOC-MICRO logic_summary="Renders page header and InviteManager with framework roles" notable_decisions="[]"]
|
|
49
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
41
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/InvitesPage.tsx:framework_role_slugs:constant" type="constant" identity="FRAMEWORK_ROLE_SLUGS" parent="~/.framework/src/pages/admin/InvitesPage.tsx"]
|
|
42
|
+
// CIL[DOC-MACRO purpose="Computes a comma-separated string of framework role slugs for filtering."]
|
|
43
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Derives a string filter from FRAMEWORK_ROLES for the InviteManager roleSlugsFilter prop."]
|
|
44
|
+
// CIL[DOC-CONTEXT module="admin" layer="constant" related_files=".framework/src/components/shared/InviteManager.tsx,.framework/src/contexts/AuthContext.tsx,.framework/src/pages/admin/InvitesPage.tsx"]
|
|
45
|
+
// CIL[DOC-CONTRACT inputs="FRAMEWORK_ROLES" outputs="FRAMEWORK_ROLE_SLUGS comma-delimited string" errors="none" side_effects="none"]
|
|
46
|
+
// CIL[DOC-MICRO logic_summary="Maps FRAMEWORK_ROLES to slugs and joins them with commas." notable_decisions="[]"]
|
|
47
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
50
48
|
// CIL[DOC-STABILITY stability="stable"]
|
|
51
|
-
|
|
52
|
-
// CIL[DOC-VECTOR type="
|
|
53
|
-
// CIL[DOC-VECTOR type="
|
|
54
|
-
// CIL[DOC-VECTOR type="
|
|
49
|
+
const FRAMEWORK_ROLE_SLUGS = FRAMEWORK_ROLES.map(r => r.slug).join(',')
|
|
50
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Computes a comma-separated string of framework role slugs for filtering.'; No verified external callers; imports: .framework/src/components/shared/InviteManager.tsx,.framework/src/contexts/AuthContext.tsx"]
|
|
51
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
52
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
53
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
55
54
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
56
55
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
56
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/InvitesPage.tsx:framework_role_slugs:constant"]
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/InvitesPage.tsx:invitespage:function" type="function" identity="InvitesPage" parent="~/.framework/src/pages/admin/InvitesPage.tsx"]
|
|
60
|
+
// CIL[DOC-MACRO purpose="Renders the admin invites and access page for the Spine Framework."]
|
|
61
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Fetches the current user from auth context and renders an InviteManager scoped to the account."]
|
|
62
|
+
// CIL[DOC-CONTEXT module="admin" layer="page" related_files=".framework/src/components/shared/InviteManager.tsx,.framework/src/contexts/AuthContext.tsx,.framework/src/pages/admin/InvitesPage.tsx"]
|
|
63
|
+
// CIL[DOC-CONTRACT inputs="useAuth context; user?.account_id" outputs="JSX page with InviteManager" errors="none" side_effects="renders UI; passes scope, accountId, allowedRoles, roleSlugsFilter to InviteManager"]
|
|
64
|
+
// CIL[DOC-MICRO logic_summary="Uses useAuth to retrieve the authenticated user, then renders a page heading and the InviteManager configured for account scope with allowed framework roles and a slug filter." notable_decisions="[]"]
|
|
65
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
66
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
57
67
|
export function InvitesPage() {
|
|
58
68
|
const { user } = useAuth()
|
|
59
69
|
|
|
@@ -75,4 +85,10 @@ export function InvitesPage() {
|
|
|
75
85
|
</div>
|
|
76
86
|
)
|
|
77
87
|
}
|
|
78
|
-
// CIL[
|
|
88
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders the admin invites and access page for the Spine Framework.'; No verified external callers; imports: .framework/src/components/shared/InviteManager.tsx,.framework/src/contexts/AuthContext.tsx"]
|
|
89
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
90
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
91
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
92
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
93
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
94
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/InvitesPage.tsx:invitespage:function"]
|
|
@@ -1,23 +1,19 @@
|
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/LogsPage.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/pages/admin/LogsPage.tsx"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Provides the admin system logs page for viewing the audit trail and event history"]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Imports UI dependencies and exports the LogsPage component for admin routing"]
|
|
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/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="LogsPage component module" errors="none" side_effects="none"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Sets up imports and default export for the admin logs page" notable_decisions="[]"]
|
|
7
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
|
|
8
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
9
|
+
// CIL[DOC-AUDIENCE audience="developers"]
|
|
10
|
+
|
|
11
|
+
|
|
1
12
|
|
|
2
13
|
|
|
3
14
|
|
|
4
15
|
|
|
5
16
|
|
|
6
|
-
// CIL[BEGIN chunk_id="logspage_module_header_1783666257" type="module_header" identity="imports" parent="none"]
|
|
7
|
-
// CIL[DOC-MACRO purpose="Import React dependencies and UI components"]
|
|
8
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Import all required modules for LogsPage component"]
|
|
9
|
-
// CIL[DOC-CONTEXT module="LogsPage" layer="ui" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/src/components/layout/Sidebar.tsx\",\"custom/apps/portal/pages/CoursesPage.tsx\",\"\\\"]"]
|
|
10
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="React hooks, UI components, utilities" errors="Import errors" side_effects="Module loading"]
|
|
11
|
-
// CIL[DOC-MICRO logic_summary="Imports React, icons, UI components, and utility functions" notable_decisions="[]"]
|
|
12
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
13
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
14
|
-
// CIL[DOC-AUDIENCE audience="developer"]
|
|
15
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/components/ui/dialog.tsx, .framework/src/components/layout/Sidebar.tsx, custom/apps/portal/pages/CoursesPage.tsx, \."]
|
|
16
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
17
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
18
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
19
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
20
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
21
17
|
import React, { useState, useEffect } from 'react'
|
|
22
18
|
import { FileText, Search, Calendar, AlertTriangle, CheckCircle, User, X } from 'lucide-react';
|
|
23
19
|
import { LoadingSpinner } from '../../components/ui/LoadingSpinner'
|
|
@@ -28,21 +24,23 @@ import { SortableTableHeader } from '../../components/admin/SortableTableHeader'
|
|
|
28
24
|
import { formatDateTime } from '../../lib/utils'
|
|
29
25
|
import { useApi } from '../../hooks/useApi'
|
|
30
26
|
import { apiFetch } from '../../lib/api'
|
|
31
|
-
|
|
32
|
-
// CIL[
|
|
33
|
-
// CIL[DOC-
|
|
34
|
-
// CIL[DOC-
|
|
35
|
-
// CIL[DOC-
|
|
36
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="LogEntry interface" errors="Type errors" side_effects="Type system"]
|
|
37
|
-
// CIL[DOC-MICRO logic_summary="Defines structure for system log entries with optional fields" notable_decisions="[]"]
|
|
38
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
39
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
40
|
-
// CIL[DOC-VECTOR type="context" content="Layer: types. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/IntegrationsPage.tsx, .framework/src/components/ui/dialog.tsx, .framework/functions/_shared/schema-utils.ts, custom/apps/cortex/functions/custom_cil-embeddings.ts, .framework/functions/_shared/principal.ts, \."]
|
|
41
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
42
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
43
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
27
|
+
|
|
28
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Provides the admin system logs page for viewing the audit trail and event history'; No verified external callers; imports: .framework/src/components/ui/LoadingSpinner.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx"]
|
|
29
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
30
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
31
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
44
32
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
45
33
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
34
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/LogsPage.tsx:module_header:module_header"]
|
|
35
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/LogsPage.tsx:LogEntry:interface" type="interface" identity="LogEntry" parent="~/.framework/src/pages/admin/LogsPage.tsx"]
|
|
36
|
+
// CIL[DOC-MACRO purpose="Defines the shape of a system log record"]
|
|
37
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provides a TypeScript type contract for log entry data"]
|
|
38
|
+
// CIL[DOC-CONTEXT module="admin" layer="types" related_files=".framework/src/components/admin/AdminListPage.tsx,.framework/src/components/admin/SortableTableHeader.tsx,.framework/src/components/ui/LoadingSpinner.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts,.framework/src/pages/admin/LogsPage.tsx"]
|
|
39
|
+
// CIL[DOC-CONTRACT inputs="n/a" outputs="LogEntry interface" errors="n/a" side_effects="n/a"]
|
|
40
|
+
// CIL[DOC-MICRO logic_summary="Declares required and optional fields for log events, actor metadata, and tracing" notable_decisions="[]"]
|
|
41
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
|
|
42
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
43
|
+
|
|
46
44
|
interface LogEntry {
|
|
47
45
|
id: string
|
|
48
46
|
event_type: string
|
|
@@ -68,11 +66,45 @@ interface LogEntry {
|
|
|
68
66
|
email: string
|
|
69
67
|
}
|
|
70
68
|
}
|
|
69
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Defines the shape of a system log record'; No verified external callers; imports: .framework/src/components/ui/LoadingSpinner.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx"]
|
|
70
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
71
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
72
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
73
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
74
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
75
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/LogsPage.tsx:LogEntry:interface"]
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/LogsPage.tsx:LogsResponse:interface" type="interface" identity="LogsResponse" parent="~/.framework/src/pages/admin/LogsPage.tsx"]
|
|
79
|
+
// CIL[DOC-MACRO purpose="Defines the paginated API response shape for log listings"]
|
|
80
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provides a TypeScript type contract for log list responses"]
|
|
81
|
+
// CIL[DOC-CONTEXT module="admin" layer="types" related_files=".framework/src/components/admin/AdminListPage.tsx,.framework/src/components/admin/SortableTableHeader.tsx,.framework/src/components/ui/LoadingSpinner.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts,.framework/src/pages/admin/LogsPage.tsx"]
|
|
82
|
+
// CIL[DOC-CONTRACT inputs="n/a" outputs="LogsResponse interface" errors="n/a" side_effects="n/a"]
|
|
83
|
+
// CIL[DOC-MICRO logic_summary="Declares data array and total count fields for log responses" notable_decisions="[]"]
|
|
84
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
|
|
85
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
71
86
|
|
|
72
87
|
interface LogsResponse {
|
|
73
88
|
data: LogEntry[]
|
|
74
89
|
total: number
|
|
75
90
|
}
|
|
91
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Defines the paginated API response shape for log listings'; No verified external callers; imports: .framework/src/components/ui/LoadingSpinner.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx"]
|
|
92
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
93
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
94
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
95
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
96
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
97
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/LogsPage.tsx:LogsResponse:interface"]
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/LogsPage.tsx:StatsResponse:interface" type="interface" identity="StatsResponse" parent="~/.framework/src/pages/admin/LogsPage.tsx"]
|
|
101
|
+
// CIL[DOC-MACRO purpose="Defines the shape of aggregated log statistics"]
|
|
102
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provides a TypeScript type contract for log stats responses"]
|
|
103
|
+
// CIL[DOC-CONTEXT module="admin" layer="types" related_files=".framework/src/components/admin/AdminListPage.tsx,.framework/src/components/admin/SortableTableHeader.tsx,.framework/src/components/ui/LoadingSpinner.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts,.framework/src/pages/admin/LogsPage.tsx"]
|
|
104
|
+
// CIL[DOC-CONTRACT inputs="n/a" outputs="StatsResponse interface" errors="n/a" side_effects="n/a"]
|
|
105
|
+
// CIL[DOC-MICRO logic_summary="Declares count metrics and category arrays for log statistics" notable_decisions="[]"]
|
|
106
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
|
|
107
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
76
108
|
|
|
77
109
|
interface StatsResponse {
|
|
78
110
|
total: number
|
|
@@ -83,21 +115,23 @@ interface StatsResponse {
|
|
|
83
115
|
sources: string[]
|
|
84
116
|
source_types: string[]
|
|
85
117
|
}
|
|
86
|
-
// CIL[
|
|
87
|
-
// CIL[
|
|
88
|
-
// CIL[DOC-
|
|
89
|
-
// CIL[DOC-
|
|
90
|
-
// CIL[DOC-CONTEXT module="LogsPage" layer="ui" related_files="[\".framework/src/pages/admin/RolesPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/components/layout/Sidebar.tsx\",\".framework/functions/_shared/schema-utils.ts\",\"custom/apps/portal/pages/ContentPage.tsx\"]"]
|
|
91
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="JSX structure" errors="Render errors" side_effects="DOM updates"]
|
|
92
|
-
// CIL[DOC-MICRO logic_summary="Renders AdminListPage with date filters, table, and empty states" notable_decisions="[]"]
|
|
93
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
94
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
95
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/RolesPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/components/layout/Sidebar.tsx, .framework/functions/_shared/schema-utils.ts, custom/apps/portal/pages/ContentPage.tsx."]
|
|
96
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
97
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
98
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
118
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Defines the shape of aggregated log statistics'; No verified external callers; imports: .framework/src/components/ui/LoadingSpinner.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx"]
|
|
119
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
120
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
121
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
99
122
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
100
123
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
124
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/LogsPage.tsx:StatsResponse:interface"]
|
|
125
|
+
|
|
126
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/LogsPage.tsx:LogsPage:component" type="component" identity="LogsPage" parent="~/.framework/src/pages/admin/LogsPage.tsx"]
|
|
127
|
+
// CIL[DOC-MACRO purpose="Renders the admin system logs UI with filters, sorting, and pagination"]
|
|
128
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Fetches and displays logs and stats, manages filter and sort state, renders table and pagination"]
|
|
129
|
+
// 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/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts,.framework/src/pages/admin/LogsPage.tsx"]
|
|
130
|
+
// CIL[DOC-CONTRACT inputs="props: { title?: string }" outputs="JSX.Element" errors="API errors surfaced via useApi" side_effects="HTTP requests to /api/logs; React state updates"]
|
|
131
|
+
// CIL[DOC-MICRO logic_summary="Builds query URL, fetches logs and stats with useApi, manages filters/sort/pagination, renders log table" notable_decisions="[]"]
|
|
132
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
|
|
133
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
134
|
+
|
|
101
135
|
export function LogsPage({ title = 'System Logs' }: { title?: string }) {
|
|
102
136
|
const [searchTerm, setSearchTerm] = useState('')
|
|
103
137
|
const [selectedEventType, setSelectedEventType] = useState('all')
|
|
@@ -133,20 +167,6 @@ export function LogsPage({ title = 'System Logs' }: { title?: string }) {
|
|
|
133
167
|
return `/api/logs?${params.toString()}`
|
|
134
168
|
}
|
|
135
169
|
|
|
136
|
-
// CIL[BEGIN chunk_id="logspage_hooks_1783666257" type="hooks" identity="useApi" parent="logspage_function_logspage_1783666257"]
|
|
137
|
-
// CIL[DOC-MACRO purpose="Fetch logs and stats data from API"]
|
|
138
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Handle useApi"]
|
|
139
|
-
// CIL[DOC-CONTEXT module="LogsPage" layer="data" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\".framework/functions/_shared/schema-utils.ts\",\"\\\"]"]
|
|
140
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="logs data, stats data" errors="API errors" side_effects="HTTP requests"]
|
|
141
|
-
// CIL[DOC-MICRO logic_summary="Uses useApi hook to fetch logs and statistics with date filtering" notable_decisions="[]"]
|
|
142
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
143
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
144
|
-
// CIL[DOC-VECTOR type="context" content="Layer: data. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/IntegrationsPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/RolesPage.tsx, .framework/functions/_shared/schema-utils.ts, \."]
|
|
145
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
146
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
147
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
148
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
149
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
150
170
|
const { data: logsData, loading, error, refetch } = useApi<LogsResponse>(
|
|
151
171
|
async () => {
|
|
152
172
|
const response = await apiFetch(buildLogUrl())
|
|
@@ -181,42 +201,12 @@ export function LogsPage({ title = 'System Logs' }: { title?: string }) {
|
|
|
181
201
|
useEffect(() => {
|
|
182
202
|
setPage(1)
|
|
183
203
|
}, [searchTerm, selectedEventType, selectedSource, selectedSourceType, sourceIdFilter, actorIdFilter, traceIdFilter, dateFrom, dateTo])
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
// CIL[BEGIN chunk_id="logspage_filters_1783666257" type="filter_logic" identity="filteredLogs" parent="logspage_function_logspage_1783666257"]
|
|
187
|
-
// CIL[DOC-MACRO purpose="Filter logs by search and event type"]
|
|
188
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Handle filteredLogs"]
|
|
189
|
-
// CIL[DOC-CONTEXT module="LogsPage" layer="logic" 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\",\".framework/migrations/025_retype_threads_messages.sql\",\"\\\"]"]
|
|
190
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="filtered logs" errors="none" side_effects="none"]
|
|
191
|
-
// CIL[DOC-MICRO logic_summary="Filters logs based on search term and event type selection" notable_decisions="[]"]
|
|
192
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
193
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
194
|
-
// CIL[DOC-VECTOR type="context" content="Layer: logic. 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, .framework/migrations/025_retype_threads_messages.sql, \."]
|
|
195
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
196
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
197
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
198
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
199
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
204
|
+
|
|
200
205
|
const filteredLogs = logs || []
|
|
201
206
|
|
|
202
207
|
const eventTypes = stats?.levels || []
|
|
203
208
|
const sourceOptions = stats?.sources || []
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
// CIL[BEGIN chunk_id="logspage_sorting_1783666257" type="sorting_logic" identity="handleSort" parent="logspage_function_logspage_1783666257"]
|
|
207
|
-
// CIL[DOC-MACRO purpose="Handle column sorting for logs table"]
|
|
208
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Handle handleSort"]
|
|
209
|
-
// CIL[DOC-CONTEXT module="handleSort" layer="unknown" related_files="[]"]
|
|
210
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
|
|
211
|
-
// CIL[DOC-MICRO logic_summary="Implements handleSort" notable_decisions="[]"]
|
|
212
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
213
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
214
|
-
// CIL[DOC-VECTOR type="context" content="Layer: unknown. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
215
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
216
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
217
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
218
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
219
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
209
|
+
|
|
220
210
|
const handleSort = (key: string) => {
|
|
221
211
|
if (sortKey === key) {
|
|
222
212
|
setSortDirection(sortDirection === 'asc' ? 'desc' : 'asc')
|
|
@@ -238,22 +228,7 @@ export function LogsPage({ title = 'System Logs' }: { title?: string }) {
|
|
|
238
228
|
|
|
239
229
|
return 0
|
|
240
230
|
})
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
// CIL[BEGIN chunk_id="logspage_badge_1783666257" type="utility_function" identity="getEventTypeBadge" parent="logspage_function_logspage_1783666257"]
|
|
244
|
-
// CIL[DOC-MACRO purpose="Generate colored badges for event types"]
|
|
245
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Handle getEventTypeBadge"]
|
|
246
|
-
// CIL[DOC-CONTEXT module="getEventTypeBadge" layer="unknown" related_files="[]"]
|
|
247
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
|
|
248
|
-
// CIL[DOC-MICRO logic_summary="Implements getEventTypeBadge" notable_decisions="[]"]
|
|
249
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
250
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
251
|
-
// CIL[DOC-VECTOR type="context" content="Layer: unknown. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
252
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
253
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
254
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
255
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
256
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
231
|
+
|
|
257
232
|
const getEventTypeBadge = (eventType: string) => {
|
|
258
233
|
if (eventType.includes('error') || eventType.includes('failed')) {
|
|
259
234
|
return <span className="inline-flex px-2 py-0.5 text-xs font-medium rounded-md bg-red-100 text-red-700">{eventType}</span>
|
|
@@ -266,22 +241,7 @@ export function LogsPage({ title = 'System Logs' }: { title?: string }) {
|
|
|
266
241
|
}
|
|
267
242
|
return <span className="inline-flex px-2 py-0.5 text-xs font-medium rounded-md bg-slate-100 text-slate-600">{eventType}</span>
|
|
268
243
|
}
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
// CIL[BEGIN chunk_id="logspage_stats_1783666257" type="stats_config" identity="statsCards" parent="logspage_function_logspage_1783666257"]
|
|
272
|
-
// CIL[DOC-MACRO purpose="Configure statistics cards and filters"]
|
|
273
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Handle statsCards"]
|
|
274
|
-
// CIL[DOC-CONTEXT module="LogsPage" layer="ui" related_files="[]"]
|
|
275
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="stats cards, filter options" errors="none" side_effects="none"]
|
|
276
|
-
// CIL[DOC-MICRO logic_summary="Creates stats cards and filter options for logs display" notable_decisions="[]"]
|
|
277
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
278
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
279
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
280
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
281
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
282
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
283
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
284
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
244
|
+
|
|
285
245
|
const statsCards = [
|
|
286
246
|
{
|
|
287
247
|
title: 'Total Events',
|
|
@@ -343,22 +303,7 @@ export function LogsPage({ title = 'System Logs' }: { title?: string }) {
|
|
|
343
303
|
onChange: setSelectedSourceType
|
|
344
304
|
}
|
|
345
305
|
]
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
// CIL[BEGIN chunk_id="logspage_render_1783666257" type="render_logic" identity="return" parent="logspage_function_logspage_1783666257"]
|
|
349
|
-
// CIL[DOC-MACRO purpose="Render the complete logs interface"]
|
|
350
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Handle return"]
|
|
351
|
-
// CIL[DOC-CONTEXT module="return" layer="unknown" related_files="[]"]
|
|
352
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
|
|
353
|
-
// CIL[DOC-MICRO logic_summary="Implements return" notable_decisions="[]"]
|
|
354
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
355
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
356
|
-
// CIL[DOC-VECTOR type="context" content="Layer: unknown. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
357
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
358
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
359
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
360
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
361
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
306
|
+
|
|
362
307
|
return (
|
|
363
308
|
<AdminListPage
|
|
364
309
|
title={title}
|
|
@@ -626,5 +571,10 @@ export function LogsPage({ title = 'System Logs' }: { title?: string }) {
|
|
|
626
571
|
</AdminListPage>
|
|
627
572
|
)
|
|
628
573
|
}
|
|
629
|
-
// CIL[
|
|
630
|
-
// CIL[
|
|
574
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders the admin system logs UI with filters, sorting, and pagination'; No verified external callers; imports: .framework/src/components/ui/LoadingSpinner.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx"]
|
|
575
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
576
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
577
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
578
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
579
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
580
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/LogsPage.tsx:LogsPage:component"]
|
|
@@ -1,41 +1,37 @@
|
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/MinimalShadcnTestPage.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/pages/admin/MinimalShadcnTestPage.tsx"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Declares the minimal shadcn test page module imports"]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Aggregates React and shadcn component imports for the test page"]
|
|
4
|
+
// CIL[DOC-CONTEXT module=".framework/src/pages/admin/MinimalShadcnTestPage.tsx" layer="presentation" related_files=".framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/card.tsx"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Contains module-level import declarations only" 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"]
|
|
10
|
+
|
|
1
11
|
|
|
2
12
|
|
|
3
13
|
|
|
4
14
|
|
|
5
|
-
// CIL[BEGIN chunk_id="minimalshadcntestpage_module_header_1783666257" type="module_header" identity="imports" parent="none"]
|
|
6
|
-
// CIL[DOC-MACRO purpose="Import React dependencies and UI components"]
|
|
7
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Import all required modules for MinimalShadcnTestPage component"]
|
|
8
|
-
// CIL[DOC-CONTEXT module="MinimalShadcnTestPage" layer="ui" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\"\\\"]"]
|
|
9
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="React hooks, UI components" errors="Import errors" side_effects="Module loading"]
|
|
10
|
-
// CIL[DOC-MICRO logic_summary="Imports React and basic shadcn UI components for testing" 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: ui. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/components/ui/dialog.tsx, .framework/src/components/ui/table-primitives.tsx, \."]
|
|
15
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
16
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
17
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
18
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
19
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
20
15
|
import { useState } from 'react'
|
|
21
16
|
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '../../components/ui/card'
|
|
22
17
|
import { Button } from '../../components/ui/button'
|
|
23
18
|
import { Badge } from '../../components/ui/badge'
|
|
24
|
-
|
|
25
|
-
// CIL[
|
|
26
|
-
// CIL[DOC-
|
|
27
|
-
// CIL[DOC-
|
|
28
|
-
// CIL[DOC-
|
|
29
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="JSX element" errors="Render errors" side_effects="State updates"]
|
|
30
|
-
// CIL[DOC-MICRO logic_summary="Test component that demonstrates basic shadcn components functionality" notable_decisions="[]"]
|
|
31
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
32
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
33
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/ui/dialog.tsx, .framework/src/components/ui/table-primitives.tsx, custom/apps/cortex/functions/custom_cil-embeddings.ts, custom/apps/portal/pages/ContentPage.tsx, \."]
|
|
34
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
35
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
36
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
19
|
+
|
|
20
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Declares the minimal shadcn test page module imports'; No verified external callers; imports: .framework/src/components/ui/card.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/badge.tsx"]
|
|
21
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
22
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
23
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
37
24
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
38
25
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
26
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/MinimalShadcnTestPage.tsx:module_header:module_header"]
|
|
27
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/MinimalShadcnTestPage.tsx:MinimalShadcnTestPage:component" type="component" identity="MinimalShadcnTestPage" parent="~/.framework/src/pages/admin/MinimalShadcnTestPage.tsx"]
|
|
28
|
+
// CIL[DOC-MACRO purpose="Renders a minimal UI to validate shadcn Card, Button, and Badge components"]
|
|
29
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Displays interactive buttons and badge variants driven by local state"]
|
|
30
|
+
// CIL[DOC-CONTEXT module=".framework/src/pages/admin/MinimalShadcnTestPage.tsx" layer="presentation" related_files=".framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/card.tsx,.framework/src/pages/admin/MinimalShadcnTestPage.tsx"]
|
|
31
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="JSX UI" errors="none" side_effects="none"]
|
|
32
|
+
// CIL[DOC-MICRO logic_summary="Manages a count state and renders cards, buttons, and badges" notable_decisions="[]"]
|
|
33
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
34
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
39
35
|
export function MinimalShadcnTestPage() {
|
|
40
36
|
const [count, setCount] = useState(0)
|
|
41
37
|
|
|
@@ -107,4 +103,10 @@ export function MinimalShadcnTestPage() {
|
|
|
107
103
|
</div>
|
|
108
104
|
)
|
|
109
105
|
}
|
|
110
|
-
// CIL[
|
|
106
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders a minimal UI to validate shadcn Card, Button, and Badge components'; No verified external callers; imports: .framework/src/components/ui/card.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/badge.tsx"]
|
|
107
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
108
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
109
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
110
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
111
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
112
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/MinimalShadcnTestPage.tsx:MinimalShadcnTestPage:component"]
|