spine-framework 0.3.145 → 0.4.1
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 +5067 -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,20 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
// CIL[
|
|
4
|
-
// CIL[DOC-
|
|
5
|
-
// CIL[DOC-
|
|
6
|
-
// CIL[DOC-
|
|
7
|
-
// CIL[DOC-
|
|
8
|
-
// CIL[DOC-MICRO logic_summary="Imports React, routing, types, UI components for table" notable_decisions="[]"]
|
|
9
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/runtime/DataTable.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/components/runtime/DataTable.tsx"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Module imports and entry point for the DataTable runtime component"]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Imports dependencies and shared UI primitives used by the DataTable."]
|
|
4
|
+
// CIL[DOC-CONTEXT module="components/runtime" layer="component" related_files=".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/lib/utils.ts,.framework/src/types/types.ts"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Imports React, router, types, utilities, and shared UI components required by the runtime data table." notable_decisions="[]"]
|
|
7
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
10
8
|
// CIL[DOC-STABILITY stability="stable"]
|
|
11
9
|
// CIL[DOC-AUDIENCE audience="developer"]
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
18
13
|
import React from 'react'
|
|
19
14
|
import { useNavigate } from 'react-router-dom'
|
|
20
15
|
import { EntityColumn } from '../../types/types'
|
|
@@ -33,6 +28,23 @@ import { Skeleton } from '../ui/skeleton'
|
|
|
33
28
|
import { Badge } from '../ui/badge'
|
|
34
29
|
import * as Icons from 'lucide-react'
|
|
35
30
|
|
|
31
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Module imports and entry point for the DataTable runtime component'; No verified external callers; imports: .framework/src/types/types.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/table.tsx"]
|
|
32
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
33
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
34
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
35
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
36
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
37
|
+
// CIL[END stable_id="~/.framework/src/components/runtime/DataTable.tsx:module_header:module_header"]
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/runtime/DataTable.tsx:DataTableProps:interface" type="interface" identity="DataTableProps" parent="~/.framework/src/components/runtime/DataTable.tsx"]
|
|
41
|
+
// CIL[DOC-MACRO purpose="TypeScript props contract for the DataTable component"]
|
|
42
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Defines the expected properties passed to DataTable, including columns, data, sort handlers, and state flags."]
|
|
43
|
+
// CIL[DOC-CONTEXT module="components/runtime" layer="component" related_files=".framework/src/components/runtime/DataTable.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/lib/utils.ts,.framework/src/types/types.ts"]
|
|
44
|
+
// CIL[DOC-CONTRACT inputs="columns: EntityColumn[], data: any[], loading?: boolean, error?: string|null, onRetry?: () => void, sort, onSort, entity, emptyMessage, emptyIcon" outputs="none (type definition)" errors="none" side_effects="none"]
|
|
45
|
+
// CIL[DOC-MICRO logic_summary="Declares the DataTableProps interface consumed by the DataTable React component." notable_decisions="[]"]
|
|
46
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
47
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
36
48
|
interface DataTableProps {
|
|
37
49
|
columns: EntityColumn[]
|
|
38
50
|
data: any[]
|
|
@@ -45,21 +57,23 @@ interface DataTableProps {
|
|
|
45
57
|
emptyMessage: string
|
|
46
58
|
emptyIcon: string
|
|
47
59
|
}
|
|
48
|
-
// CIL[
|
|
49
|
-
// CIL[
|
|
50
|
-
// CIL[DOC-
|
|
51
|
-
// CIL[DOC-
|
|
52
|
-
// CIL[DOC-CONTEXT module="runtime" layer="frontend-component" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/functions/_shared/principal.ts\"]"]
|
|
53
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="JSX table component" errors="none" side_effects="none"]
|
|
54
|
-
// CIL[DOC-MICRO logic_summary="Render table header with sort icons, data rows with click handlers" notable_decisions="[]"]
|
|
55
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
56
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
57
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/RolesPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/components/ui/dialog.tsx, .framework/functions/_shared/principal.ts."]
|
|
58
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
59
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
60
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
60
|
+
// CIL[DOC-VECTOR type="context" content="purpose='TypeScript props contract for the DataTable component'; No verified external callers; imports: .framework/src/types/types.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/table.tsx"]
|
|
61
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
62
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
63
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
61
64
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
62
65
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
66
|
+
// CIL[END stable_id="~/.framework/src/components/runtime/DataTable.tsx:DataTableProps:interface"]
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/runtime/DataTable.tsx:DataTable:component" type="component" identity="DataTable" parent="~/.framework/src/components/runtime/DataTable.tsx"]
|
|
70
|
+
// CIL[DOC-MACRO purpose="Renders a sortable, clickable data table for runtime records with loading, error, and empty states"]
|
|
71
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Displays tabular data, handles sorting, row navigation, and loading/error/empty UI states."]
|
|
72
|
+
// CIL[DOC-CONTEXT module="components/runtime" layer="component" related_files=".framework/src/components/runtime/DataTable.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/lib/utils.ts,.framework/src/types/types.ts"]
|
|
73
|
+
// CIL[DOC-CONTRACT inputs="columns, data, loading, error, onRetry, sort, onSort, entity, emptyMessage, emptyIcon (destructured from DataTableProps)" outputs="JSX rendering of a Card containing a Table or state-specific fallback" errors="Throws no errors; displays an error state when the error prop is provided" side_effects="Calls useNavigate to route to detail views on row click"]
|
|
74
|
+
// CIL[DOC-MICRO logic_summary="Renders skeleton, error, empty, or table views; uses renderCell to format timestamp, badge, and truncated text; handles ascending/descending sort and row navigation." notable_decisions="[]"]
|
|
75
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
76
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
63
77
|
export function DataTable({
|
|
64
78
|
columns,
|
|
65
79
|
data,
|
|
@@ -75,20 +89,6 @@ export function DataTable({
|
|
|
75
89
|
const navigate = useNavigate()
|
|
76
90
|
const EmptyIconComponent = (Icons as Record<string, React.ComponentType<{ className?: string }>>)[emptyIcon] || Icons.Box
|
|
77
91
|
|
|
78
|
-
// CIL[BEGIN chunk_id="DataTable_handlesort_1783929048" type="function" identity="handleSort" parent="DataTable_datatable_1783929048"]
|
|
79
|
-
// CIL[DOC-MACRO purpose="Handle column sorting with toggle direction"]
|
|
80
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Handle handleSort"]
|
|
81
|
-
// CIL[DOC-CONTEXT module="runtime" layer="frontend-component" related_files="[\".framework/src/pages/admin/RolesPage.tsx\",\".framework/functions/_shared/schema-utils.ts\",\".framework/src/components/ui/dialog.tsx\",\".framework/functions/_shared/principal.ts\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\"\\\"]"]
|
|
82
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="calls onSort"]
|
|
83
|
-
// CIL[DOC-MICRO logic_summary="Toggle sort direction or set new field with asc default" notable_decisions="[]"]
|
|
84
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
85
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
86
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/RolesPage.tsx, .framework/functions/_shared/schema-utils.ts, .framework/src/components/ui/dialog.tsx, .framework/functions/_shared/principal.ts, .framework/src/pages/admin/IntegrationsPage.tsx, \."]
|
|
87
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
88
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
89
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
90
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
91
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
92
92
|
const handleSort = (key: string) => {
|
|
93
93
|
if (sort.field === key) {
|
|
94
94
|
onSort({
|
|
@@ -99,22 +99,7 @@ export function DataTable({
|
|
|
99
99
|
onSort({ field: key, direction: 'asc' })
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
|
-
// CIL[END chunk_id="DataTable_handlesort_1783929048"]
|
|
103
102
|
|
|
104
|
-
// CIL[BEGIN chunk_id="DataTable_getsorticon_1783929048" type="function" identity="getSortIcon" parent="DataTable_datatable_1783929048"]
|
|
105
|
-
// CIL[DOC-MACRO purpose="Return appropriate sort icon for column state"]
|
|
106
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Handle getSortIcon"]
|
|
107
|
-
// CIL[DOC-CONTEXT module="runtime" layer="frontend-component" related_files="[\".framework/src/pages/admin/RolesPage.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/functions/_shared/principal.ts\",\"\\\"]"]
|
|
108
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="JSX icon" errors="none" side_effects="none"]
|
|
109
|
-
// CIL[DOC-MICRO logic_summary="Return up/down arrow or neutral based on current sort" notable_decisions="[]"]
|
|
110
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
111
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
112
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 2. Direct calls: 0. Related files: .framework/src/pages/admin/RolesPage.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/principal.ts, \."]
|
|
113
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 2. Total affected: 2."]
|
|
114
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
115
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
116
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
117
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
118
103
|
const getSortIcon = (key: string) => {
|
|
119
104
|
if (sort.field !== key) {
|
|
120
105
|
return <Icons.ArrowUpDown className="h-4 w-4 text-muted-foreground" />
|
|
@@ -123,22 +108,7 @@ export function DataTable({
|
|
|
123
108
|
? <Icons.ArrowUp className="h-4 w-4 text-primary" />
|
|
124
109
|
: <Icons.ArrowDown className="h-4 w-4 text-primary" />
|
|
125
110
|
}
|
|
126
|
-
// CIL[END chunk_id="DataTable_getsorticon_1783929048"]
|
|
127
111
|
|
|
128
|
-
// CIL[BEGIN chunk_id="DataTable_rendercell_1783929048" type="function" identity="renderCell" parent="DataTable_datatable_1783929048"]
|
|
129
|
-
// CIL[DOC-MACRO purpose="Format and render table cell based on column type"]
|
|
130
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Handle renderCell"]
|
|
131
|
-
// CIL[DOC-CONTEXT module="renderCell" layer="unknown" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/migrations/025_retype_threads_messages.sql\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/functions/_shared/schema-utils.ts\",\".framework/src/components/ui/dialog.tsx\",\"\\\"]"]
|
|
132
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
|
|
133
|
-
// CIL[DOC-MICRO logic_summary="Implements renderCell" notable_decisions="[]"]
|
|
134
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
135
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
136
|
-
// CIL[DOC-VECTOR type="context" content="Layer: unknown. Direct callers: 2. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/migrations/025_retype_threads_messages.sql, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/functions/_shared/schema-utils.ts, .framework/src/components/ui/dialog.tsx, \."]
|
|
137
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 2. Total affected: 2."]
|
|
138
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
139
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
140
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
141
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
142
112
|
const renderCell = (column: EntityColumn, row: any) => {
|
|
143
113
|
const value = column.key.includes('.')
|
|
144
114
|
? column.key.split('.').reduce((obj, k) => obj?.[k], row)
|
|
@@ -163,41 +133,11 @@ export function DataTable({
|
|
|
163
133
|
|
|
164
134
|
return value?.toString() || '-'
|
|
165
135
|
}
|
|
166
|
-
// CIL[END chunk_id="DataTable_rendercell_1783929048"]
|
|
167
136
|
|
|
168
|
-
// CIL[BEGIN chunk_id="DataTable_handlerowclick_1783929048" type="function" identity="handleRowClick" parent="DataTable_datatable_1783929048"]
|
|
169
|
-
// CIL[DOC-MACRO purpose="Navigate to detail page when row is clicked"]
|
|
170
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Handle handleRowClick"]
|
|
171
|
-
// CIL[DOC-CONTEXT module="handleRowClick" layer="unknown" related_files="[]"]
|
|
172
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
|
|
173
|
-
// CIL[DOC-MICRO logic_summary="Implements handleRowClick" notable_decisions="[]"]
|
|
174
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
175
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
176
|
-
// CIL[DOC-VECTOR type="context" content="Layer: unknown. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
177
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
178
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
179
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
180
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
181
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
182
137
|
const handleRowClick = (row: any) => {
|
|
183
138
|
navigate(`/spine-framework/admin/runtime/${entity}/${row.id}`)
|
|
184
139
|
}
|
|
185
|
-
// CIL[END chunk_id="DataTable_handlerowclick_1783929048"]
|
|
186
140
|
|
|
187
|
-
// CIL[BEGIN chunk_id="DataTable_loadingstate_1783929048" type="render_block" identity="loadingState" parent="DataTable_datatable_1783929048"]
|
|
188
|
-
// CIL[DOC-MACRO purpose="Render loading skeleton state for table"]
|
|
189
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Handle loadingState"]
|
|
190
|
-
// CIL[DOC-CONTEXT module="loadingState" layer="unknown" related_files="[]"]
|
|
191
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
|
|
192
|
-
// CIL[DOC-MICRO logic_summary="Implements loadingState" notable_decisions="[]"]
|
|
193
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
194
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
195
|
-
// CIL[DOC-VECTOR type="context" content="Layer: unknown. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
196
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
197
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
198
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
199
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
200
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
201
141
|
if (loading) {
|
|
202
142
|
return (
|
|
203
143
|
<Card>
|
|
@@ -209,22 +149,7 @@ export function DataTable({
|
|
|
209
149
|
</Card>
|
|
210
150
|
)
|
|
211
151
|
}
|
|
212
|
-
// CIL[END chunk_id="DataTable_loadingstate_1783929048"]
|
|
213
152
|
|
|
214
|
-
// CIL[BEGIN chunk_id="DataTable_errorstate_1783929048" type="render_block" identity="errorState" parent="DataTable_datatable_1783929048"]
|
|
215
|
-
// CIL[DOC-MACRO purpose="Render error state with retry option"]
|
|
216
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Handle errorState"]
|
|
217
|
-
// CIL[DOC-CONTEXT module="runtime" layer="frontend-component" related_files="[]"]
|
|
218
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="JSX error display" errors="none" side_effects="calls onRetry"]
|
|
219
|
-
// CIL[DOC-MICRO logic_summary="Show error message centered in card with optional retry" notable_decisions="[]"]
|
|
220
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
221
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
222
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
223
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
224
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
225
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
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
153
|
if (error) {
|
|
229
154
|
return (
|
|
230
155
|
<Card>
|
|
@@ -239,22 +164,7 @@ export function DataTable({
|
|
|
239
164
|
</Card>
|
|
240
165
|
)
|
|
241
166
|
}
|
|
242
|
-
// CIL[END chunk_id="DataTable_errorstate_1783929048"]
|
|
243
167
|
|
|
244
|
-
// CIL[BEGIN chunk_id="DataTable_emptystate_1783929048" type="render_block" identity="emptyState" parent="DataTable_datatable_1783929048"]
|
|
245
|
-
// CIL[DOC-MACRO purpose="Render empty state with icon and message"]
|
|
246
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Handle emptyState"]
|
|
247
|
-
// CIL[DOC-CONTEXT module="emptyState" layer="unknown" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\".framework/migrations/025_retype_threads_messages.sql\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"custom/apps/cortex/functions/custom_cil-embeddings.ts\",\"\\\"]"]
|
|
248
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
|
|
249
|
-
// CIL[DOC-MICRO logic_summary="Implements emptyState" notable_decisions="[]"]
|
|
250
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
251
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
252
|
-
// CIL[DOC-VECTOR type="context" content="Layer: unknown. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/RolesPage.tsx, .framework/migrations/025_retype_threads_messages.sql, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, custom/apps/cortex/functions/custom_cil-embeddings.ts, \."]
|
|
253
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
254
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
255
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
256
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
257
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
258
168
|
if (!data || data.length === 0) {
|
|
259
169
|
return (
|
|
260
170
|
<Card>
|
|
@@ -268,22 +178,7 @@ export function DataTable({
|
|
|
268
178
|
</Card>
|
|
269
179
|
)
|
|
270
180
|
}
|
|
271
|
-
// CIL[END chunk_id="DataTable_emptystate_1783929048"]
|
|
272
181
|
|
|
273
|
-
// CIL[BEGIN chunk_id="DataTable_maintable_1783929048" type="render_block" identity="mainTable" parent="DataTable_datatable_1783929048"]
|
|
274
|
-
// CIL[DOC-MACRO purpose="Render main table with sortable headers and clickable rows"]
|
|
275
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Handle mainTable"]
|
|
276
|
-
// CIL[DOC-CONTEXT module="mainTable" layer="unknown" related_files="[]"]
|
|
277
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
|
|
278
|
-
// CIL[DOC-MICRO logic_summary="Implements mainTable" notable_decisions="[]"]
|
|
279
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
280
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
281
|
-
// CIL[DOC-VECTOR type="context" content="Layer: unknown. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
282
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
283
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
284
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
285
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
286
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
287
182
|
return (
|
|
288
183
|
<Card>
|
|
289
184
|
<Table>
|
|
@@ -321,6 +216,11 @@ export function DataTable({
|
|
|
321
216
|
</Table>
|
|
322
217
|
</Card>
|
|
323
218
|
)
|
|
324
|
-
// CIL[END chunk_id="DataTable_maintable_1783929048"]
|
|
325
219
|
}
|
|
326
|
-
// CIL[
|
|
220
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders a sortable, clickable data table for runtime records with loading, error, and empty states'; No verified external callers; imports: .framework/src/types/types.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/table.tsx"]
|
|
221
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
222
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
223
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
224
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
225
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
226
|
+
// CIL[END stable_id="~/.framework/src/components/runtime/DataTable.tsx:DataTable:component"]
|
|
@@ -1,23 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
// CIL[
|
|
4
|
-
// CIL[DOC-
|
|
5
|
-
// CIL[DOC-
|
|
6
|
-
// CIL[DOC-
|
|
7
|
-
// CIL[DOC-
|
|
8
|
-
// CIL[DOC-MICRO logic_summary="Imports schema types and SchemaFields component" notable_decisions="[]"]
|
|
9
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/runtime/SchemaDetailForm.tsx:module_header:module_header" type="module_header" identity="module_header" parent="none"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="React component for rendering schema-driven detail forms"]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Defines module imports for SchemaDetailForm and related types/components"]
|
|
4
|
+
// CIL[DOC-CONTEXT module="runtime" layer="frontend" related_files=".framework/src/components/shared/SchemaFields.tsx,.framework/src/types/types.ts"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Imports DesignSchema, detail view types, and the shared SchemaFields component." 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
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/functions/_shared/schema-utils.ts, .framework/src/components/ui/dialog.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/components/ui/table-primitives.tsx, \."]
|
|
13
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
14
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
15
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
16
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
17
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
9
|
+
// CIL[DOC-AUDIENCE audience="internal"]
|
|
18
10
|
import { DesignSchema, DetailView, DetailViewSection, FieldDefinition } from '../../types/types'
|
|
19
11
|
import { SchemaFields } from '../shared/SchemaFields'
|
|
20
12
|
|
|
13
|
+
// CIL[DOC-VECTOR type="context" content="purpose='React component for rendering schema-driven detail forms'; No verified external callers; imports: .framework/src/types/types.ts,.framework/src/components/shared/SchemaFields.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"]
|
|
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
|
+
// CIL[END stable_id="~/.framework/src/components/runtime/SchemaDetailForm.tsx:module_header:module_header"]
|
|
20
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/runtime/SchemaDetailForm.tsx:schemadetailformprops:interface" type="interface" identity="schemadetailformprops" parent="~/.framework/src/components/runtime/SchemaDetailForm.tsx:module_header:module_header"]
|
|
21
|
+
// CIL[DOC-MACRO purpose="Props interface for SchemaDetailForm"]
|
|
22
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Declares the input contract for SchemaDetailForm"]
|
|
23
|
+
// CIL[DOC-CONTEXT module="runtime" layer="frontend" related_files=".framework/src/components/runtime/SchemaDetailForm.tsx,.framework/src/components/shared/SchemaFields.tsx,.framework/src/types/types.ts"]
|
|
24
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="SchemaDetailFormProps interface" errors="none" side_effects="none"]
|
|
25
|
+
// CIL[DOC-MICRO logic_summary="Defines props including schema, view, record, editing flags, permissions, form data, and onFieldChange callback." notable_decisions="[]"]
|
|
26
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
27
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
21
28
|
interface SchemaDetailFormProps {
|
|
22
29
|
schema: DesignSchema
|
|
23
30
|
view: DetailView
|
|
@@ -28,21 +35,23 @@ interface SchemaDetailFormProps {
|
|
|
28
35
|
formData: Record<string, any>
|
|
29
36
|
onFieldChange: (key: string, value: any) => void
|
|
30
37
|
}
|
|
31
|
-
// CIL[
|
|
32
|
-
// CIL[
|
|
33
|
-
// CIL[DOC-
|
|
34
|
-
// CIL[DOC-
|
|
35
|
-
// CIL[DOC-CONTEXT module="runtime" layer="frontend-component" related_files="[\".framework/migrations/015_simplify_apps_table.sql\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/functions/_shared/principal.ts\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\"custom/apps/cortex/functions/custom_cil-embeddings.ts\",\"\\\"]"]
|
|
36
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="JSX form sections" errors="none" side_effects="none"]
|
|
37
|
-
// CIL[DOC-MICRO logic_summary="Map view sections to renderSection calls in space-y layout" 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: frontend-component. Direct callers: 0. Direct calls: 0. Related files: .framework/migrations/015_simplify_apps_table.sql, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/principal.ts, .framework/src/pages/admin/IntegrationsPage.tsx, custom/apps/cortex/functions/custom_cil-embeddings.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."]
|
|
38
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Props interface for SchemaDetailForm'; No verified external callers; imports: .framework/src/types/types.ts,.framework/src/components/shared/SchemaFields.tsx"]
|
|
39
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
40
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
41
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
44
42
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
45
43
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
44
|
+
// CIL[END stable_id="~/.framework/src/components/runtime/SchemaDetailForm.tsx:schemadetailformprops:interface"]
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/runtime/SchemaDetailForm.tsx:schemadetailform:function" type="function" identity="schemadetailform" parent="~/.framework/src/components/runtime/SchemaDetailForm.tsx:module_header:module_header"]
|
|
48
|
+
// CIL[DOC-MACRO purpose="Renders a detail form from a design schema and view"]
|
|
49
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Renders schema-driven detail sections and field controls"]
|
|
50
|
+
// CIL[DOC-CONTEXT module="runtime" layer="frontend" related_files=".framework/src/components/runtime/SchemaDetailForm.tsx,.framework/src/components/shared/SchemaFields.tsx,.framework/src/types/types.ts"]
|
|
51
|
+
// CIL[DOC-CONTRACT inputs="schema, view, record, isEditing, isCreating, permissions, formData, onFieldChange" outputs="JSX.Element" errors="none" side_effects="renders UI"]
|
|
52
|
+
// CIL[DOC-MICRO logic_summary="Maps view sections to FieldDefinition arrays, builds display_type overrides, and delegates rendering to SchemaFields." notable_decisions="[]"]
|
|
53
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
54
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
46
55
|
export function SchemaDetailForm({
|
|
47
56
|
schema,
|
|
48
57
|
view,
|
|
@@ -53,20 +62,6 @@ export function SchemaDetailForm({
|
|
|
53
62
|
formData,
|
|
54
63
|
onFieldChange
|
|
55
64
|
}: SchemaDetailFormProps) {
|
|
56
|
-
// CIL[BEGIN chunk_id="SchemaDetailForm_rendersection_1783929048" type="function" identity="renderSection" parent="SchemaDetailForm_schemadetailform_1783929048"]
|
|
57
|
-
// CIL[DOC-MACRO purpose="Render individual form section with fields"]
|
|
58
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Handle renderSection"]
|
|
59
|
-
// CIL[DOC-CONTEXT module="runtime" layer="frontend-component" related_files="[\".framework/src/components/ui/table-primitives.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/functions/_shared/schema-utils.ts\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"\\\"]"]
|
|
60
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="JSX section|null" errors="none" side_effects="none"]
|
|
61
|
-
// CIL[DOC-MICRO logic_summary="Map section fields to FieldDefinitions, build display types" notable_decisions="[]"]
|
|
62
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
63
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
64
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 2. Direct calls: 0. Related files: .framework/src/components/ui/table-primitives.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/functions/_shared/schema-utils.ts, .framework/src/pages/admin/TypeDetailPage.tsx, \."]
|
|
65
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 2. Total affected: 2."]
|
|
66
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
67
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
68
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
69
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
70
65
|
const renderSection = (section: DetailViewSection, sectionIndex: number) => {
|
|
71
66
|
const fieldNames = Array.isArray(section.fields) ? section.fields : Object.keys(section.fields || {})
|
|
72
67
|
const sectionFields = fieldNames.map((fieldName: string) => {
|
|
@@ -114,22 +109,7 @@ export function SchemaDetailForm({
|
|
|
114
109
|
</div>
|
|
115
110
|
)
|
|
116
111
|
}
|
|
117
|
-
// CIL[END chunk_id="SchemaDetailForm_rendersection_1783929048"]
|
|
118
112
|
|
|
119
|
-
// CIL[BEGIN chunk_id="SchemaDetailForm_emptystate_1783929048" type="render_block" identity="emptyState" parent="SchemaDetailForm_schemadetailform_1783929048"]
|
|
120
|
-
// CIL[DOC-MACRO purpose="Render empty state when no sections configured"]
|
|
121
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Handle emptyState"]
|
|
122
|
-
// CIL[DOC-CONTEXT module="runtime" layer="frontend-component" related_files="[\".framework/functions/_shared/principal.ts\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/migrations/015_simplify_apps_table.sql\",\".framework/src/components/ui/table-primitives.tsx\",\"\\\"]"]
|
|
123
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="JSX empty state" errors="none" side_effects="none"]
|
|
124
|
-
// CIL[DOC-MICRO logic_summary="Show centered message when no fields are configured" notable_decisions="[]"]
|
|
125
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
126
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
127
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 0. Direct calls: 0. Related files: .framework/functions/_shared/principal.ts, custom/apps/portal/pages/ContentPage.tsx, .framework/migrations/015_simplify_apps_table.sql, .framework/src/components/ui/table-primitives.tsx, \."]
|
|
128
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
129
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
130
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
131
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
132
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
133
113
|
if (!view.sections || view.sections.length === 0) {
|
|
134
114
|
return (
|
|
135
115
|
<div className="bg-white shadow rounded-lg p-6">
|
|
@@ -139,27 +119,17 @@ export function SchemaDetailForm({
|
|
|
139
119
|
</div>
|
|
140
120
|
)
|
|
141
121
|
}
|
|
142
|
-
// CIL[END chunk_id="SchemaDetailForm_emptystate_1783929048"]
|
|
143
122
|
|
|
144
|
-
// CIL[BEGIN chunk_id="SchemaDetailForm_mainrender_1783929048" type="render_block" identity="mainRender" parent="SchemaDetailForm_schemadetailform_1783929048"]
|
|
145
|
-
// CIL[DOC-MACRO purpose="Render all form sections in vertical layout"]
|
|
146
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Handle mainRender"]
|
|
147
|
-
// CIL[DOC-CONTEXT module="runtime" layer="frontend-component" related_files="[\".framework/migrations/015_simplify_apps_table.sql\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/functions/_shared/principal.ts\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\"custom/apps/cortex/functions/custom_cil-embeddings.ts\",\"\\\"]"]
|
|
148
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="JSX form sections" errors="none" side_effects="none"]
|
|
149
|
-
// CIL[DOC-MICRO logic_summary="Map view sections to renderSection calls in space-y layout" notable_decisions="[]"]
|
|
150
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
151
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
152
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 0. Direct calls: 0. Related files: .framework/migrations/015_simplify_apps_table.sql, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/principal.ts, .framework/src/pages/admin/IntegrationsPage.tsx, custom/apps/cortex/functions/custom_cil-embeddings.ts, \."]
|
|
153
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
154
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
155
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
156
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
157
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
158
123
|
return (
|
|
159
124
|
<div className="space-y-6">
|
|
160
125
|
{view.sections.map((section, index) => renderSection(section, index))}
|
|
161
126
|
</div>
|
|
162
127
|
)
|
|
163
|
-
// CIL[END chunk_id="SchemaDetailForm_mainrender_1783929048"]
|
|
164
128
|
}
|
|
165
|
-
// CIL[
|
|
129
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Renders a detail form from a design schema and view'; No verified external callers; imports: .framework/src/types/types.ts,.framework/src/components/shared/SchemaFields.tsx"]
|
|
130
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
131
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
132
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
133
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
134
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
135
|
+
// CIL[END stable_id="~/.framework/src/components/runtime/SchemaDetailForm.tsx:schemadetailform:function"]
|