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,16 @@
|
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/AppsPage.tsx:module_header:module_header"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Admin apps listing page top-level module imports and setup"]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Import dependencies and prepare the admin apps page module"]
|
|
4
|
+
// CIL[DOC-CONTEXT module="apps-admin-page" layer="pages" related_files=".framework/src/components/admin/AdminListPage.tsx,.framework/src/components/admin/SortableTableHeader.tsx,.framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/card.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/table.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="Defines the App interface and AppsPage component exports for the admin apps list" notable_decisions="[]"]
|
|
7
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
|
|
8
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
9
|
+
// CIL[DOC-AUDIENCE audience="admin-frontend-developer"]
|
|
10
|
+
|
|
1
11
|
|
|
2
12
|
|
|
3
13
|
|
|
4
|
-
// CIL[BEGIN chunk_id="appspage_module_header_1783668265" type="module_header" identity="module_header" parent="none"]
|
|
5
|
-
// CIL[DOC-MACRO purpose="Import dependencies for AppsPage component"]
|
|
6
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Import React hooks, UI components, and utilities"]
|
|
7
|
-
// CIL[DOC-CONTEXT module="AppsPage" layer="presentation" 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\",\"custom/apps/portal/pages/CoursesPage.tsx\",\"\\\"]"]
|
|
8
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Imported modules" errors="none" side_effects="none"]
|
|
9
|
-
// CIL[DOC-MICRO logic_summary="Imports React state management, routing, API hooks, 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: 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, custom/apps/portal/pages/CoursesPage.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 } from 'react'
|
|
20
15
|
import { useNavigate } from 'react-router-dom'
|
|
21
16
|
import { useApi } from '../../hooks/useApi'
|
|
@@ -43,21 +38,22 @@ import {
|
|
|
43
38
|
} from '../../components/ui/table'
|
|
44
39
|
import { AdminListPage } from '../../components/admin/AdminListPage'
|
|
45
40
|
import { SortableTableHeader } from '../../components/admin/SortableTableHeader'
|
|
46
|
-
|
|
47
|
-
// CIL[
|
|
48
|
-
// CIL[DOC-
|
|
49
|
-
// CIL[DOC-
|
|
50
|
-
// CIL[DOC-
|
|
51
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="App interface type" errors="none" side_effects="none"]
|
|
52
|
-
// CIL[DOC-MICRO logic_summary="Defines complete app structure with metadata and stats" notable_decisions="[]"]
|
|
53
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
54
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
55
|
-
// CIL[DOC-VECTOR type="context" content="Layer: types. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/IntegrationsPage.tsx, custom/apps/cortex/functions/custom_cil-embeddings.ts, custom/apps/portal/pages/ContentPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, custom/apps/portal/pages/CoursesPage.tsx, \."]
|
|
56
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
57
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
58
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
41
|
+
|
|
42
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Admin apps listing page top-level module imports and setup'; No verified external callers; imports: .framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts"]
|
|
43
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
44
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
45
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
59
46
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
60
47
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
48
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/AppsPage.tsx:module_header:module_header"]
|
|
49
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/AppsPage.tsx:app:interface"]
|
|
50
|
+
// CIL[DOC-MACRO purpose="Define the runtime shape of an App record"]
|
|
51
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Declare the TypeScript interface used by the apps list and API"]
|
|
52
|
+
// CIL[DOC-CONTEXT module="apps-admin-page" layer="pages" related_files=".framework/src/components/admin/AdminListPage.tsx,.framework/src/components/admin/SortableTableHeader.tsx,.framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/card.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/table.tsx,.framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts,.framework/src/pages/admin/AppsPage.tsx"]
|
|
53
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="App TypeScript interface definition" errors="none" side_effects="none"]
|
|
54
|
+
// CIL[DOC-MICRO logic_summary="Strongly typed App record with metadata, counts, and flags" notable_decisions="[]"]
|
|
55
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
|
|
56
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
61
57
|
interface App {
|
|
62
58
|
id: string
|
|
63
59
|
slug: string
|
|
@@ -76,21 +72,22 @@ interface App {
|
|
|
76
72
|
item_count: number
|
|
77
73
|
user_count: number
|
|
78
74
|
}
|
|
79
|
-
// CIL[
|
|
80
|
-
// CIL[
|
|
81
|
-
// CIL[DOC-
|
|
82
|
-
// CIL[DOC-
|
|
83
|
-
// CIL[DOC-CONTEXT module="AppsPage" layer="presentation" related_files="[\".framework/src/components/ui/dialog.tsx\",\".framework/src/components/layout/Sidebar.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/portal/pages/CoursesPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
|
|
84
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="React component" errors="API failures" side_effects="Navigation, API calls"]
|
|
85
|
-
// CIL[DOC-MICRO logic_summary="Manages state, fetches apps, handles filtering/sorting, renders table" notable_decisions="[]"]
|
|
86
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
87
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
88
|
-
// CIL[DOC-VECTOR type="context" content="Layer: presentation. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/ui/dialog.tsx, .framework/src/components/layout/Sidebar.tsx, custom/apps/portal/pages/ContentPage.tsx, custom/apps/portal/pages/CoursesPage.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
|
|
89
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
90
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
91
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
75
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Define the runtime shape of an App record'; No verified external callers; imports: .framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts"]
|
|
76
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
77
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
78
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
92
79
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
93
80
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
81
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/AppsPage.tsx:app:interface"]
|
|
82
|
+
|
|
83
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/AppsPage.tsx:appspage:function"]
|
|
84
|
+
// CIL[DOC-MACRO purpose="Render the admin apps list with filtering, sorting, and stats"]
|
|
85
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Fetch apps, filter, sort, and display an admin table with status cards"]
|
|
86
|
+
// CIL[DOC-CONTEXT module="apps-admin-page" layer="pages" related_files=".framework/src/components/admin/AdminListPage.tsx,.framework/src/components/admin/SortableTableHeader.tsx,.framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/card.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/table.tsx,.framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts,.framework/src/pages/admin/AppsPage.tsx"]
|
|
87
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="JSX admin apps list" errors="Displays error card on fetch failure" side_effects="Calls /api/apps?action=list via useApi"]
|
|
88
|
+
// CIL[DOC-MICRO logic_summary="Fetches apps, computes filtered/sorted list, renders stats cards and sortable table" notable_decisions="[]"]
|
|
89
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
|
|
90
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
94
91
|
export function AppsPage() {
|
|
95
92
|
const navigate = useNavigate()
|
|
96
93
|
const [searchTerm, setSearchTerm] = useState('')
|
|
@@ -399,4 +396,10 @@ export function AppsPage() {
|
|
|
399
396
|
</AdminListPage>
|
|
400
397
|
)
|
|
401
398
|
}
|
|
402
|
-
// CIL[
|
|
399
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render the admin apps list with filtering, sorting, and stats'; No verified external callers; imports: .framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts"]
|
|
400
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
401
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
402
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
403
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
404
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
405
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/AppsPage.tsx:appspage:function"]
|
|
@@ -1,18 +1,13 @@
|
|
|
1
|
-
// CIL[BEGIN
|
|
2
|
-
// CIL[DOC-MACRO purpose="Admin page for webhook
|
|
3
|
-
// CIL[DOC-RESPONSIBILITY responsibility="
|
|
4
|
-
// CIL[DOC-CONTEXT module="
|
|
5
|
-
// CIL[DOC-CONTRACT inputs="
|
|
6
|
-
// CIL[DOC-MICRO logic_summary="
|
|
7
|
-
// CIL[DOC-CONFIDENCE pass="
|
|
8
|
-
// CIL[DOC-STABILITY stability="
|
|
9
|
-
// CIL[DOC-AUDIENCE audience="
|
|
10
|
-
|
|
11
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
12
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
13
|
-
// CIL[DOC-VECTOR type="constraint" content="Requires /api/deliveries endpoint."]
|
|
14
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="Standard admin list page."]
|
|
15
|
-
// CIL[DOC-VECTOR type="user_journey" content="Admin monitors inbound and outbound webhook attempts."]
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/DeliveriesPage.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/pages/admin/DeliveriesPage.tsx"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Admin deliveries list page module: defines the Delivery record shape and DeliveriesPage React component for viewing webhook delivery attempts."]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Declare the Delivery TypeScript interface and render the admin deliveries list with filtering, sorting, and status display."]
|
|
4
|
+
// CIL[DOC-CONTEXT module="admin/deliveries" layer="page" related_files=".framework/src/components/admin/AdminListPage.tsx,.framework/src/components/admin/SortableTableHeader.tsx,.framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="None" outputs="Exported Delivery interface and DeliveriesPage component" errors="None" side_effects="None"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Groups imports, the Delivery interface, and the DeliveriesPage component for the admin deliveries page." notable_decisions="[]"]
|
|
7
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
8
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
9
|
+
// CIL[DOC-AUDIENCE audience="developers and admin-ui maintainers"]
|
|
10
|
+
|
|
16
11
|
|
|
17
12
|
import { useState } from 'react'
|
|
18
13
|
import { RefreshCw, Truck, Inbox } from 'lucide-react'
|
|
@@ -22,6 +17,22 @@ import { AdminListPage } from '../../components/admin/AdminListPage'
|
|
|
22
17
|
import { SortableTableHeader } from '../../components/admin/SortableTableHeader'
|
|
23
18
|
import { useApi } from '../../hooks/useApi'
|
|
24
19
|
|
|
20
|
+
|
|
21
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Admin deliveries list page module: defines the Delivery record shape and DeliveriesPage React component for viewing webhook delivery attempts.'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/lib/api.ts,.framework/src/components/admin/AdminListPage.tsx"]
|
|
22
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
23
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
24
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
25
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
26
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
27
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/DeliveriesPage.tsx:module_header:module_header"]
|
|
28
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/DeliveriesPage.tsx:Delivery:interface" type="interface" identity="Delivery" parent="~/.framework/src/pages/admin/DeliveriesPage.tsx"]
|
|
29
|
+
// CIL[DOC-MACRO purpose="TypeScript contract for a webhook delivery attempt record."]
|
|
30
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Define the fields and types for a Delivery entity consumed by the admin list page."]
|
|
31
|
+
// CIL[DOC-CONTEXT module="admin/deliveries" layer="model" related_files=".framework/src/components/admin/AdminListPage.tsx,.framework/src/components/admin/SortableTableHeader.tsx,.framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts,.framework/src/pages/admin/DeliveriesPage.tsx"]
|
|
32
|
+
// CIL[DOC-CONTRACT inputs="None" outputs="Delivery interface type" errors="None" side_effects="None"]
|
|
33
|
+
// CIL[DOC-MICRO logic_summary="Enumerates delivery fields including direction, status, ids, retry metadata, timestamps, and optional API/handler details." notable_decisions="[]"]
|
|
34
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
35
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
25
36
|
interface Delivery {
|
|
26
37
|
id: string
|
|
27
38
|
direction: 'inbound' | 'outbound'
|
|
@@ -41,7 +52,23 @@ interface Delivery {
|
|
|
41
52
|
created_at: string
|
|
42
53
|
updated_at: string
|
|
43
54
|
}
|
|
55
|
+
// CIL[DOC-VECTOR type="context" content="purpose='TypeScript contract for a webhook delivery attempt record.'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/lib/api.ts,.framework/src/components/admin/AdminListPage.tsx"]
|
|
56
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
57
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
58
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
59
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
60
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
61
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/DeliveriesPage.tsx:Delivery:interface"]
|
|
44
62
|
|
|
63
|
+
|
|
64
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/DeliveriesPage.tsx:DeliveriesPage:component" type="component" identity="DeliveriesPage" parent="~/.framework/src/pages/admin/DeliveriesPage.tsx"]
|
|
65
|
+
// CIL[DOC-MACRO purpose="Admin UI page that lists inbound and outbound webhook delivery attempts with filters and sorting."]
|
|
66
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Fetch deliveries from /api/deliveries, filter by search/status/direction, sort by selected key, and render a sortable table inside AdminListPage."]
|
|
67
|
+
// CIL[DOC-CONTEXT module="admin/deliveries" layer="page" related_files=".framework/src/components/admin/AdminListPage.tsx,.framework/src/components/admin/SortableTableHeader.tsx,.framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts,.framework/src/pages/admin/DeliveriesPage.tsx"]
|
|
68
|
+
// CIL[DOC-CONTRACT inputs="None" outputs="Rendered deliveries table" errors="apiFetch/network or JSON parse errors" side_effects="Calls /api/deliveries and re-renders UI in response to filter/sort state"]
|
|
69
|
+
// CIL[DOC-MICRO logic_summary="Uses useApi to load deliveries, applies local filter and sort state, computes stats cards, and passes configuration to AdminListPage. Table renders color-coded status badges and formatted dates." notable_decisions="[]"]
|
|
70
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
71
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
45
72
|
export function DeliveriesPage() {
|
|
46
73
|
const [searchTerm, setSearchTerm] = useState('')
|
|
47
74
|
const [selectedStatus, setSelectedStatus] = useState('all')
|
|
@@ -192,5 +219,10 @@ export function DeliveriesPage() {
|
|
|
192
219
|
</AdminListPage>
|
|
193
220
|
)
|
|
194
221
|
}
|
|
195
|
-
|
|
196
|
-
// CIL[
|
|
222
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Admin UI page that lists inbound and outbound webhook delivery attempts with filters and sorting.'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/lib/api.ts,.framework/src/components/admin/AdminListPage.tsx"]
|
|
223
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
224
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
225
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
226
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
227
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
228
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/DeliveriesPage.tsx:DeliveriesPage:component"]
|
|
@@ -1,20 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
// CIL[
|
|
4
|
-
// CIL[DOC-
|
|
5
|
-
// CIL[DOC-
|
|
6
|
-
// CIL[DOC-
|
|
7
|
-
// CIL[DOC-
|
|
8
|
-
// CIL[DOC-MICRO logic_summary="Imports React state management and extensive UI component library" notable_decisions="[]"]
|
|
9
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/DesignedPage.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/pages/admin/DesignedPage.tsx"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Define the admin dashboard page module and its top-level imports"]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Declare React page dependencies and export the DesignedPage component for admin dashboard rendering"]
|
|
4
|
+
// CIL[DOC-CONTEXT module="pages/admin" layer="presentation" related_files=".framework/src/components/ui/accordion.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/dialog.tsx,.framework/src/components/ui/dropdown-menu.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/select.tsx,.framework/src/components/ui/separator.tsx,.framework/src/components/ui/switch.tsx,.framework/src/components/ui/tabs.tsx"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="DesignedPage React component and module imports" errors="none" side_effects="none"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Imports React, shadcn UI primitives, and icons used across the admin dashboard page" notable_decisions="[]"]
|
|
7
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
10
8
|
// CIL[DOC-STABILITY stability="stable"]
|
|
11
|
-
// CIL[DOC-AUDIENCE audience="
|
|
12
|
-
|
|
13
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
14
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
15
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
16
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
17
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
9
|
+
// CIL[DOC-AUDIENCE audience="developers"]
|
|
10
|
+
|
|
18
11
|
import { useState } from 'react'
|
|
19
12
|
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '../../components/ui/card'
|
|
20
13
|
import { Button } from '../../components/ui/button'
|
|
@@ -80,21 +73,22 @@ import {
|
|
|
80
73
|
Shield,
|
|
81
74
|
Zap
|
|
82
75
|
} from 'lucide-react'
|
|
83
|
-
|
|
84
|
-
// CIL[
|
|
85
|
-
// CIL[DOC-
|
|
86
|
-
// CIL[DOC-
|
|
87
|
-
// CIL[DOC-
|
|
88
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="React component" errors="none" side_effects="State management"]
|
|
89
|
-
// CIL[DOC-MICRO logic_summary="Creates full-featured dashboard UI with navigation, stats, tables, and settings" notable_decisions="[]"]
|
|
90
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
91
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
92
|
-
// CIL[DOC-VECTOR type="context" content="Layer: presentation. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/ui/dialog.tsx, .framework/src/components/layout/Sidebar.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
|
|
93
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
94
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
95
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
76
|
+
|
|
77
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Define the admin dashboard page module and its top-level imports'; No verified external callers; imports: .framework/src/components/ui/card.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx"]
|
|
78
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
79
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
80
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
96
81
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
97
82
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
83
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/DesignedPage.tsx:module_header:module_header"]
|
|
84
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/DesignedPage.tsx:DesignedPage:component" type="component" identity="DesignedPage" parent="~/.framework/src/pages/admin/DesignedPage.tsx"]
|
|
85
|
+
// CIL[DOC-MACRO purpose="Render the admin DesignedPage dashboard with sidebar, header, stats, tabs, and settings"]
|
|
86
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render the admin dashboard UI including navigation, search, quick stats, activity, analytics, reports, and preferences"]
|
|
87
|
+
// CIL[DOC-CONTEXT module="pages/admin" layer="presentation" related_files=".framework/src/components/ui/accordion.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/dialog.tsx,.framework/src/components/ui/dropdown-menu.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/select.tsx,.framework/src/components/ui/separator.tsx,.framework/src/components/ui/switch.tsx,.framework/src/components/ui/tabs.tsx,.framework/src/pages/admin/DesignedPage.tsx"]
|
|
88
|
+
// CIL[DOC-CONTRACT inputs="none (uses local React state)" outputs="JSX dashboard UI" errors="none" side_effects="none"]
|
|
89
|
+
// CIL[DOC-MICRO logic_summary="Manages selected tab, search query, and notification/autosave toggles; renders sidebar navigation, top search/filter bar, stat cards, tabbed content panels, and security/preferences form" notable_decisions="[]"]
|
|
90
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
91
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
98
92
|
export function DesignedPage() {
|
|
99
93
|
const [selectedTab, setSelectedTab] = useState('overview')
|
|
100
94
|
const [searchQuery, setSearchQuery] = useState('')
|
|
@@ -176,6 +170,7 @@ export function DesignedPage() {
|
|
|
176
170
|
placeholder="Search..."
|
|
177
171
|
value={searchQuery}
|
|
178
172
|
onChange={(e) => setSearchQuery(e.target.value)}
|
|
173
|
+
|
|
179
174
|
className="pl-10 w-64"
|
|
180
175
|
/>
|
|
181
176
|
</div>
|
|
@@ -502,4 +497,10 @@ export function DesignedPage() {
|
|
|
502
497
|
</div>
|
|
503
498
|
)
|
|
504
499
|
}
|
|
505
|
-
// CIL[
|
|
500
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render the admin DesignedPage dashboard with sidebar, header, stats, tabs, and settings'; No verified external callers; imports: .framework/src/components/ui/card.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx"]
|
|
501
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
502
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
503
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
504
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
505
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
506
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/DesignedPage.tsx:DesignedPage:component"]
|
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/EmbeddingDetailPage.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/pages/admin/EmbeddingDetailPage.tsx"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Admin page for viewing a single embedding record and its vector."]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provides React imports, type definitions, and the EmbeddingDetailPage component for the admin knowledge base."]
|
|
4
|
+
// CIL[DOC-CONTEXT module="admin/kb/embeddings" layer="presentation" related_files=".framework/src/components/admin/PageInstructions.tsx,.framework/src/components/ui/alert.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/card.tsx,.framework/src/components/ui/collapsible.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="EmbeddingDetailPage component and EmbeddingRecord interface" errors="none" side_effects="none"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Module header imports dependencies for the embedding detail page." notable_decisions="[]"]
|
|
7
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
8
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
9
|
+
// CIL[DOC-AUDIENCE audience="developers"]
|
|
10
|
+
|
|
1
11
|
import React, { useState } from 'react'
|
|
2
12
|
import { useParams, useNavigate } from 'react-router-dom'
|
|
3
13
|
import { useApi } from '../../hooks/useApi'
|
|
@@ -11,6 +21,23 @@ import { ArrowLeft, AlertCircle, ChevronDown } from 'lucide-react'
|
|
|
11
21
|
import { formatDateTime } from '../../lib/utils'
|
|
12
22
|
import { PageInstructions } from '../../components/admin/PageInstructions'
|
|
13
23
|
|
|
24
|
+
|
|
25
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Admin page for viewing a single embedding record and its vector.'; No verified external callers; imports: .framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/components/ui/button.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"]
|
|
29
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
30
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
31
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/EmbeddingDetailPage.tsx:module_header:module_header"]
|
|
32
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/EmbeddingDetailPage.tsx:EmbeddingRecord:interface" type="interface" identity="EmbeddingRecord" parent="~/.framework/src/pages/admin/EmbeddingDetailPage.tsx"]
|
|
33
|
+
// CIL[DOC-MACRO purpose="TypeScript interface describing a single embedding row."]
|
|
34
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Defines the shape of public.embeddings records consumed by the detail page."]
|
|
35
|
+
// CIL[DOC-CONTEXT module="admin/kb/embeddings" layer="presentation" related_files=".framework/src/components/admin/PageInstructions.tsx,.framework/src/components/ui/alert.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/card.tsx,.framework/src/components/ui/collapsible.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts,.framework/src/pages/admin/EmbeddingDetailPage.tsx"]
|
|
36
|
+
// CIL[DOC-CONTRACT inputs="database embedding row fields" outputs="EmbeddingRecord interface" errors="none" side_effects="none"]
|
|
37
|
+
// CIL[DOC-MICRO logic_summary="EmbeddingRecord fields: id, account_id, model_id, document_id, chunk_index, content, embedding array, metadata, lifecycle timestamps, content hash, created/updated." notable_decisions="[]"]
|
|
38
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
39
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
40
|
+
|
|
14
41
|
interface EmbeddingRecord {
|
|
15
42
|
id: string
|
|
16
43
|
account_id: string
|
|
@@ -26,6 +53,23 @@ interface EmbeddingRecord {
|
|
|
26
53
|
created_at: string
|
|
27
54
|
updated_at: string
|
|
28
55
|
}
|
|
56
|
+
// CIL[DOC-VECTOR type="context" content="purpose='TypeScript interface describing a single embedding row.'; No verified external callers; imports: .framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/components/ui/button.tsx"]
|
|
57
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
58
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
59
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
60
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
61
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
62
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/EmbeddingDetailPage.tsx:EmbeddingRecord:interface"]
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/EmbeddingDetailPage.tsx:EmbeddingDetailPage:component" type="component" identity="EmbeddingDetailPage" parent="~/.framework/src/pages/admin/EmbeddingDetailPage.tsx"]
|
|
66
|
+
// CIL[DOC-MACRO purpose="Render a read-only admin detail page for a single embedding record."]
|
|
67
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Fetch embedding by id, display metadata, status, content, metadata JSON, and the stored vector, with loading, error, and missing-id states."]
|
|
68
|
+
// CIL[DOC-CONTEXT module="admin/kb/embeddings" layer="presentation" related_files=".framework/src/components/admin/PageInstructions.tsx,.framework/src/components/ui/alert.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/card.tsx,.framework/src/components/ui/collapsible.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts,.framework/src/pages/admin/EmbeddingDetailPage.tsx"]
|
|
69
|
+
// CIL[DOC-CONTRACT inputs="React Router id parameter" outputs="JSX detail page" errors="Fetch errors, missing or invalid id" side_effects="navigates on user actions; triggers embedding fetch via useApi"]
|
|
70
|
+
// CIL[DOC-MICRO logic_summary="Conditionally renders not-found, loading, error, and record views; computes status from revoked_at/approved_at; exposes a collapsible vector section." notable_decisions="[]"]
|
|
71
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
72
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
29
73
|
|
|
30
74
|
export function EmbeddingDetailPage() {
|
|
31
75
|
const { id } = useParams<{ id: string }>()
|
|
@@ -107,12 +151,17 @@ export function EmbeddingDetailPage() {
|
|
|
107
151
|
)
|
|
108
152
|
}
|
|
109
153
|
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
|
|
110
158
|
const status = record.revoked_at
|
|
111
159
|
? { label: 'Revoked', color: 'bg-red-100 text-red-700' }
|
|
112
160
|
: record.approved_at
|
|
113
161
|
? { label: 'Approved', color: 'bg-green-100 text-green-700' }
|
|
114
162
|
: { label: 'Pending', color: 'bg-slate-100 text-slate-600' }
|
|
115
163
|
|
|
164
|
+
|
|
116
165
|
return (
|
|
117
166
|
<div className="p-8 space-y-6 max-w-5xl mx-auto">
|
|
118
167
|
<div className="flex items-center justify-between">
|
|
@@ -138,6 +187,7 @@ export function EmbeddingDetailPage() {
|
|
|
138
187
|
title: 'Vector',
|
|
139
188
|
content: 'The embedding array is hidden by default; expand the section to inspect all 1536 numeric values.'
|
|
140
189
|
}
|
|
190
|
+
|
|
141
191
|
]}
|
|
142
192
|
/>
|
|
143
193
|
|
|
@@ -263,3 +313,11 @@ export function EmbeddingDetailPage() {
|
|
|
263
313
|
</div>
|
|
264
314
|
)
|
|
265
315
|
}
|
|
316
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render a read-only admin detail page for a single embedding record.'; No verified external callers; imports: .framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/components/ui/button.tsx"]
|
|
317
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
318
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
319
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
320
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
321
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
322
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/EmbeddingDetailPage.tsx:EmbeddingDetailPage:component"]
|
|
323
|
+
|
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/EmbeddingsPage.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/pages/admin/EmbeddingsPage.tsx"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Admin page for inspecting public.embeddings records"]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Declares this file as an admin list page for public.embeddings vector records"]
|
|
4
|
+
// CIL[DOC-CONTEXT module="admin" layer="page" related_files=".framework/src/components/admin/AdminListPage.tsx,.framework/src/components/admin/PageInstructions.tsx,.framework/src/components/admin/SortableTableHeader.tsx,.framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="module scope" errors="none" side_effects="none"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Top-level file scope for the Embeddings admin page" notable_decisions="[]"]
|
|
7
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
8
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
9
|
+
// CIL[DOC-AUDIENCE audience="developers, admin ui maintainers"]
|
|
10
|
+
|
|
1
11
|
import { useState } from 'react'
|
|
2
12
|
import { useNavigate } from 'react-router-dom'
|
|
3
13
|
import { FileText, CheckCircle, XCircle, AlertCircle } from 'lucide-react'
|
|
@@ -8,6 +18,22 @@ import { useApi } from '../../hooks/useApi'
|
|
|
8
18
|
import { apiFetch } from '../../lib/api'
|
|
9
19
|
import { PageInstructions } from '../../components/admin/PageInstructions'
|
|
10
20
|
|
|
21
|
+
|
|
22
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Admin page for inspecting public.embeddings records'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/admin/AdminListPage.tsx,.framework/src/components/admin/SortableTableHeader.tsx"]
|
|
23
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
24
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
25
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
26
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
27
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
28
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/EmbeddingsPage.tsx:module_header:module_header"]
|
|
29
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/EmbeddingsPage.tsx:EmbeddingRecord:interface" type="interface" identity="EmbeddingRecord" parent="~/.framework/src/pages/admin/EmbeddingsPage.tsx"]
|
|
30
|
+
// CIL[DOC-MACRO purpose="TypeScript type for a public.embeddings row"]
|
|
31
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Define the typed shape of an embedding record"]
|
|
32
|
+
// CIL[DOC-CONTEXT module="admin" layer="types" related_files=".framework/src/components/admin/AdminListPage.tsx,.framework/src/components/admin/PageInstructions.tsx,.framework/src/components/admin/SortableTableHeader.tsx,.framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts,.framework/src/pages/admin/EmbeddingsPage.tsx"]
|
|
33
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="EmbeddingRecord interface" errors="none" side_effects="none"]
|
|
34
|
+
// CIL[DOC-MICRO logic_summary="Structured contract describing an embedding vector row" notable_decisions="[]"]
|
|
35
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
36
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
11
37
|
interface EmbeddingRecord {
|
|
12
38
|
id: string
|
|
13
39
|
account_id: string
|
|
@@ -23,7 +49,23 @@ interface EmbeddingRecord {
|
|
|
23
49
|
created_at: string
|
|
24
50
|
updated_at: string
|
|
25
51
|
}
|
|
52
|
+
// CIL[DOC-VECTOR type="context" content="purpose='TypeScript type for a public.embeddings row'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/admin/AdminListPage.tsx,.framework/src/components/admin/SortableTableHeader.tsx"]
|
|
53
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
54
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
55
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
56
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
57
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
58
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/EmbeddingsPage.tsx:EmbeddingRecord:interface"]
|
|
59
|
+
|
|
26
60
|
|
|
61
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/EmbeddingsPage.tsx:EmbeddingsPage:component" type="component" identity="EmbeddingsPage" parent="~/.framework/src/pages/admin/EmbeddingsPage.tsx"]
|
|
62
|
+
// CIL[DOC-MACRO purpose="Render the admin embeddings list page with search, sorting, and status indicators"]
|
|
63
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Fetch and display public.embeddings records; handle search, sort, and navigation to the detail view"]
|
|
64
|
+
// CIL[DOC-CONTEXT module="admin" layer="component" related_files=".framework/src/components/admin/AdminListPage.tsx,.framework/src/components/admin/PageInstructions.tsx,.framework/src/components/admin/SortableTableHeader.tsx,.framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts,.framework/src/pages/admin/EmbeddingsPage.tsx"]
|
|
65
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="JSX admin list" errors="throws on fetch failure" side_effects="navigates to /spine-framework/admin/kb/embeddings/:id on row click; calls /api/embeddings?method=GET&action=list over the network"]
|
|
66
|
+
// CIL[DOC-MICRO logic_summary="Fetch records, filter by content/document/model, sort by selected key/direction, compute status badges, and render a table with PageInstructions" notable_decisions="['Searches content, document_id, and model_id via lowercase substring', 'Sort supports string and number fields', 'Status derived from revoked_at and approved_at', 'Row click navigates to the detail view']"]
|
|
67
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
68
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
27
69
|
export function EmbeddingsPage() {
|
|
28
70
|
const navigate = useNavigate()
|
|
29
71
|
const [searchTerm, setSearchTerm] = useState('')
|
|
@@ -219,3 +261,10 @@ export function EmbeddingsPage() {
|
|
|
219
261
|
</AdminListPage>
|
|
220
262
|
)
|
|
221
263
|
}
|
|
264
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render the admin embeddings list page with search, sorting, and status indicators'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/admin/AdminListPage.tsx,.framework/src/components/admin/SortableTableHeader.tsx"]
|
|
265
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
266
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
267
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
268
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
269
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
270
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/EmbeddingsPage.tsx:EmbeddingsPage:component"]
|
|
@@ -1,22 +1,17 @@
|
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/ExtendedShadcnTestPage.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/pages/admin/ExtendedShadcnTestPage.tsx"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Module header for the ExtendedShadcnTestPage, collecting React and shadcn UI component imports."]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Declare the top-level dependencies required by the admin test page."]
|
|
4
|
+
// CIL[DOC-CONTEXT module="pages/admin" layer="ui" related_files=".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"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Imports React useState and seven shadcn UI primitives; contains no runtime logic." 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="extendedshadcntestpage_module_header_1783668992" type="module_header" identity="module_header" parent="none"]
|
|
6
|
-
// CIL[DOC-MACRO purpose="Import dependencies for ExtendedShadcnTestPage component"]
|
|
7
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Import React hooks and UI components for testing"]
|
|
8
|
-
// CIL[DOC-CONTEXT module="ExtendedShadcnTestPage" layer="presentation" related_files="[\".framework/src/components/ui/dialog.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\"\\\"]"]
|
|
9
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Imported modules" errors="none" side_effects="none"]
|
|
10
|
-
// CIL[DOC-MICRO logic_summary="Imports React state management and shadcn 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: presentation. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/ui/dialog.tsx, .framework/src/components/ui/table-primitives.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, custom/apps/portal/pages/ContentPage.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'
|
|
@@ -31,21 +26,22 @@ import {
|
|
|
31
26
|
SelectValue,
|
|
32
27
|
} from '../../components/ui/select'
|
|
33
28
|
import { Checkbox } from '../../components/ui/checkbox'
|
|
34
|
-
|
|
35
|
-
// CIL[
|
|
36
|
-
// CIL[DOC-
|
|
37
|
-
// CIL[DOC-
|
|
38
|
-
// CIL[DOC-
|
|
39
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="React component" errors="none" side_effects="State management"]
|
|
40
|
-
// CIL[DOC-MICRO logic_summary="Creates interactive test page for 7 shadcn components with state management" notable_decisions="[]"]
|
|
41
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
42
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
43
|
-
// CIL[DOC-VECTOR type="context" content="Layer: presentation. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/ui/dialog.tsx, .framework/src/components/ui/table-primitives.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
|
|
44
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
45
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
46
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
29
|
+
|
|
30
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Module header for the ExtendedShadcnTestPage, collecting React and shadcn UI component imports.'; No verified external callers; imports: .framework/src/components/ui/card.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/badge.tsx"]
|
|
31
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
32
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
33
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
47
34
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
48
35
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
36
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/ExtendedShadcnTestPage.tsx:module_header:module_header"]
|
|
37
|
+
// CIL[BEGIN stable_id="~/.framework/src/pages/admin/ExtendedShadcnTestPage.tsx:ExtendedShadcnTestPage:component" type="component" identity="ExtendedShadcnTestPage" parent="~/.framework/src/pages/admin/ExtendedShadcnTestPage.tsx"]
|
|
38
|
+
// CIL[DOC-MACRO purpose="Render an extended admin test page demonstrating interactive shadcn UI components."]
|
|
39
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Manage local form state and display Card, Button, Badge, Input, Label, Select, and Checkbox components."]
|
|
40
|
+
// CIL[DOC-CONTEXT module="pages/admin" layer="ui" related_files=".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/pages/admin/ExtendedShadcnTestPage.tsx"]
|
|
41
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="JSX UI" errors="none" side_effects="none"]
|
|
42
|
+
// CIL[DOC-MICRO logic_summary="Maintains count, text, selected option, and checkbox state and renders a responsive grid of shadcn form controls." notable_decisions="[]"]
|
|
43
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
44
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
49
45
|
export function ExtendedShadcnTestPage() {
|
|
50
46
|
const [count, setCount] = useState(0)
|
|
51
47
|
const [text, setText] = useState('')
|
|
@@ -198,4 +194,10 @@ export function ExtendedShadcnTestPage() {
|
|
|
198
194
|
</div>
|
|
199
195
|
)
|
|
200
196
|
}
|
|
201
|
-
// CIL[
|
|
197
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render an extended admin test page demonstrating interactive shadcn UI components.'; No verified external callers; imports: .framework/src/components/ui/card.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/badge.tsx"]
|
|
198
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
199
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
200
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
201
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
202
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
203
|
+
// CIL[END stable_id="~/.framework/src/pages/admin/ExtendedShadcnTestPage.tsx:ExtendedShadcnTestPage:component"]
|