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,43 +1,55 @@
|
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/hooks/useListSchema.ts:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/hooks/useListSchema.ts"]
|
|
2
|
+
// CIL[DOC-AUDIENCE audience="frontend"]
|
|
3
|
+
// CIL[DOC-CONTEXT module="useListSchema" layer="hooks" related_files=".framework/src/lib/api.ts,.framework/src/types/types.ts"]
|
|
4
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="React hooks, apiFetch and DesignSchema/View imports available to the module" errors="none" side_effects="none"]
|
|
5
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
6
|
+
// CIL[DOC-MACRO purpose="React hook module for loading entity list design schemas"]
|
|
7
|
+
// CIL[DOC-MICRO logic_summary="Imports useState, useEffect, apiFetch and local DesignSchema/View types" notable_decisions="[]"]
|
|
8
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide the useListSchema hook and its option/result type definitions"]
|
|
9
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
10
|
+
|
|
1
11
|
import { useState, useEffect } from 'react'
|
|
2
12
|
import { apiFetch } from '../lib/api'
|
|
3
13
|
import { DesignSchema, View } from '../types/types'
|
|
14
|
+
// CIL[DOC-VECTOR type="context" content="purpose='React hook module for loading entity list design schemas'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/types/types.ts"]
|
|
15
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
16
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
17
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
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
|
+
// CIL[END stable_id="~/.framework/src/hooks/useListSchema.ts:module_header:module_header"]
|
|
4
21
|
|
|
5
22
|
|
|
6
23
|
|
|
7
|
-
|
|
8
|
-
// CIL[
|
|
9
|
-
// CIL[DOC-
|
|
10
|
-
// CIL[DOC-
|
|
11
|
-
// CIL[DOC-
|
|
12
|
-
// CIL[DOC-
|
|
13
|
-
// CIL[DOC-
|
|
24
|
+
|
|
25
|
+
// CIL[BEGIN stable_id="~/.framework/src/hooks/useListSchema.ts:UseListSchemaOptions:interface" type="interface" identity="UseListSchemaOptions" parent="~/.framework/src/hooks/useListSchema.ts"]
|
|
26
|
+
// CIL[DOC-MACRO purpose="Defines the input options for the useListSchema hook"]
|
|
27
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Declare entity and optional viewSlug used to resolve the list schema"]
|
|
28
|
+
// CIL[DOC-CONTEXT module="useListSchema" layer="hooks" related_files=".framework/src/hooks/useListSchema.ts,.framework/src/lib/api.ts,.framework/src/types/types.ts"]
|
|
29
|
+
// CIL[DOC-CONTRACT inputs="N/A" outputs="N/A" errors="N/A" side_effects="N/A"]
|
|
30
|
+
// CIL[DOC-MICRO logic_summary="entity: string and viewSlug?: string" notable_decisions="[]"]
|
|
31
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
14
32
|
// CIL[DOC-STABILITY stability="stable"]
|
|
15
|
-
// CIL[DOC-AUDIENCE audience="developer"]
|
|
16
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-hook. Direct callers: 0. Direct calls: 0. Related files: .framework/functions/_shared/schema-utils.ts, .framework/functions/_shared/principal.ts, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/src/pages/admin/IntegrationsPage.tsx, \."]
|
|
17
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
18
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
19
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
20
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
21
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
22
33
|
interface UseListSchemaOptions {
|
|
23
34
|
entity: string
|
|
24
35
|
viewSlug?: string
|
|
25
36
|
}
|
|
26
|
-
// CIL[
|
|
27
|
-
// CIL[
|
|
28
|
-
// CIL[DOC-
|
|
29
|
-
// CIL[DOC-
|
|
30
|
-
// CIL[DOC-CONTEXT module="useListSchema" layer="frontend-hook" related_files="[\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/functions/_shared/schema-utils.ts\",\".framework/functions/_shared/principal.ts\",\".framework/functions/_shared/db.ts\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"\\\"]"]
|
|
31
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="interface definition" errors="none" side_effects="none"]
|
|
32
|
-
// CIL[DOC-MICRO logic_summary="Interface with schema, view, loading, error, and refetch fields" notable_decisions="[]"]
|
|
33
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
34
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
35
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-hook. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/schema-utils.ts, .framework/functions/_shared/principal.ts, .framework/functions/_shared/db.ts, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, \."]
|
|
36
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
37
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
38
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
37
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Defines the input options for the useListSchema hook'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/types/types.ts"]
|
|
38
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
39
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
40
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
39
41
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
40
42
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
43
|
+
// CIL[END stable_id="~/.framework/src/hooks/useListSchema.ts:UseListSchemaOptions:interface"]
|
|
44
|
+
|
|
45
|
+
// CIL[BEGIN stable_id="~/.framework/src/hooks/useListSchema.ts:UseListSchemaResult:interface" type="interface" identity="UseListSchemaResult" parent="~/.framework/src/hooks/useListSchema.ts"]
|
|
46
|
+
// CIL[DOC-MACRO purpose="Defines the return shape of the useListSchema hook"]
|
|
47
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Declare schema, view, loading state, error and refetch callback"]
|
|
48
|
+
// CIL[DOC-CONTEXT module="useListSchema" layer="hooks" related_files=".framework/src/hooks/useListSchema.ts,.framework/src/lib/api.ts,.framework/src/types/types.ts"]
|
|
49
|
+
// CIL[DOC-CONTRACT inputs="N/A" outputs="N/A" errors="N/A" side_effects="N/A"]
|
|
50
|
+
// CIL[DOC-MICRO logic_summary="schema, view, loading, error and refetch fields" notable_decisions="[]"]
|
|
51
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
52
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
41
53
|
interface UseListSchemaResult {
|
|
42
54
|
schema: DesignSchema | null
|
|
43
55
|
view: View | null
|
|
@@ -45,23 +57,22 @@ interface UseListSchemaResult {
|
|
|
45
57
|
error: string | null
|
|
46
58
|
refetch: () => void
|
|
47
59
|
}
|
|
48
|
-
// CIL[
|
|
49
|
-
// CIL[
|
|
50
|
-
// CIL[DOC-
|
|
51
|
-
// CIL[DOC-
|
|
52
|
-
// CIL[DOC-MACRO purpose="Resolve DesignSchema and View for list pages with fallback strategy"]
|
|
53
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Fetch schema with two-stage fallback and manage React state"]
|
|
54
|
-
// CIL[DOC-CONTEXT module="useListSchema" layer="frontend-hook" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
|
|
55
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="resolved schema and view" errors="network errors, auth errors" side_effects="React state mutations, network requests, setTimeout"]
|
|
56
|
-
// CIL[DOC-MICRO logic_summary="Fetch sample record, use stamped schema or fallback to types table, handle auth retry with 300ms delay" notable_decisions="['auth_retry_delay', 'fallback_schema_for_empty_data']"]
|
|
57
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
58
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
59
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-hook. Direct callers: 3. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/IntegrationsPage.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
|
|
60
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 3. Total affected: 5."]
|
|
61
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
62
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
60
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Defines the return shape of the useListSchema hook'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/types/types.ts"]
|
|
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"]
|
|
63
64
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
64
65
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
66
|
+
// CIL[END stable_id="~/.framework/src/hooks/useListSchema.ts:UseListSchemaResult:interface"]
|
|
67
|
+
|
|
68
|
+
// CIL[BEGIN stable_id="~/.framework/src/hooks/useListSchema.ts:useListSchema:hook" type="hook" identity="useListSchema" parent="~/.framework/src/hooks/useListSchema.ts"]
|
|
69
|
+
// CIL[DOC-CONTEXT module="useListSchema" layer="hooks" related_files=".framework/src/hooks/useListSchema.ts,.framework/src/lib/api.ts,.framework/src/types/types.ts"]
|
|
70
|
+
// CIL[DOC-CONTRACT inputs="options: UseListSchemaOptions" outputs="UseListSchemaResult" errors="Network or API errors set the error string" side_effects="Calls apiFetch on mount and when entity/viewSlug changes; updates local state"]
|
|
71
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
72
|
+
// CIL[DOC-MACRO purpose="React hook that loads the design schema and view definition for an entity list"]
|
|
73
|
+
// CIL[DOC-MICRO logic_summary="Fetches a sample record to read stamped design_schema; falls back to type lookup and generic fallback views; supports JWT retry" notable_decisions="[]"]
|
|
74
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Fetch and resolve the list design schema and selected view for a given entity"]
|
|
75
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
65
76
|
export function useListSchema(options: UseListSchemaOptions): UseListSchemaResult {
|
|
66
77
|
const { entity, viewSlug = 'default_list' } = options
|
|
67
78
|
|
|
@@ -232,4 +243,10 @@ export function useListSchema(options: UseListSchemaOptions): UseListSchemaResul
|
|
|
232
243
|
refetch: fetchSchema
|
|
233
244
|
}
|
|
234
245
|
}
|
|
235
|
-
// CIL[
|
|
246
|
+
// CIL[DOC-VECTOR type="context" content="purpose='React hook that loads the design schema and view definition for an entity list'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/types/types.ts"]
|
|
247
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
248
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
249
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
250
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
251
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
252
|
+
// CIL[END stable_id="~/.framework/src/hooks/useListSchema.ts:useListSchema:hook"]
|
|
@@ -1,28 +1,38 @@
|
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/hooks/useSchemaRecord.ts:module_header:module_header"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Provides React hooks and TypeScript interfaces for managing schema records and type selection in the Spine framework UI."]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Define shared data shapes and reusable hooks for schema record editing and type selection."]
|
|
4
|
+
// CIL[DOC-CONTEXT module="framework hooks" layer="ui" related_files=".framework/src/lib/api.ts,.framework/src/types/types.ts"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="N/A" outputs="N/A" errors="N/A" side_effects="N/A"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Module-level header; no runtime logic." notable_decisions="[]"]
|
|
7
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
|
|
8
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
9
|
+
// CIL[DOC-AUDIENCE audience="framework-ui"]
|
|
1
10
|
import { useState, useEffect, useCallback } from 'react'
|
|
2
11
|
import { apiFetch } from '../lib/api'
|
|
3
12
|
import { FieldDefinition, ItemType } from '../types/types'
|
|
4
13
|
|
|
14
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Provides React hooks and TypeScript interfaces for managing schema records and type selection in the Spine framework UI.'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/types/types.ts"]
|
|
15
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
16
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
17
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
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
|
+
// CIL[END stable_id="~/.framework/src/hooks/useSchemaRecord.ts:module_header:module_header"]
|
|
5
21
|
|
|
6
22
|
|
|
7
23
|
|
|
8
24
|
|
|
9
25
|
|
|
10
26
|
|
|
11
|
-
|
|
12
|
-
// CIL[
|
|
13
|
-
// CIL[DOC-
|
|
14
|
-
// CIL[DOC-
|
|
15
|
-
// CIL[DOC-
|
|
16
|
-
// CIL[DOC-
|
|
17
|
-
// CIL[DOC-
|
|
27
|
+
|
|
28
|
+
// CIL[BEGIN stable_id="~/.framework/src/hooks/useSchemaRecord.ts:schematype:interface"]
|
|
29
|
+
// CIL[DOC-MACRO purpose="Describe the shape of a schema type definition."]
|
|
30
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Strongly type schema type metadata including design schema fields."]
|
|
31
|
+
// CIL[DOC-CONTEXT module="framework hooks" layer="ui" related_files=".framework/src/hooks/useSchemaRecord.ts,.framework/src/lib/api.ts,.framework/src/types/types.ts"]
|
|
32
|
+
// CIL[DOC-CONTRACT inputs="N/A" outputs="SchemaType interface" errors="N/A" side_effects="N/A"]
|
|
33
|
+
// CIL[DOC-MICRO logic_summary="Interface with optional and required fields for a type definition." notable_decisions="[]"]
|
|
34
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
|
|
18
35
|
// CIL[DOC-STABILITY stability="stable"]
|
|
19
|
-
// CIL[DOC-AUDIENCE audience="developer"]
|
|
20
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-hook. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/schema-utils.ts, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/functions/_shared/principal.ts, .framework/functions/_shared/db.ts, \."]
|
|
21
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
22
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
23
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
24
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
25
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
26
36
|
export interface SchemaType {
|
|
27
37
|
id: string
|
|
28
38
|
name: string
|
|
@@ -33,21 +43,22 @@ export interface SchemaType {
|
|
|
33
43
|
app_id?: string
|
|
34
44
|
design_schema: ItemType['design_schema']
|
|
35
45
|
}
|
|
36
|
-
// CIL[
|
|
37
|
-
// CIL[
|
|
38
|
-
// CIL[DOC-
|
|
39
|
-
// CIL[DOC-
|
|
40
|
-
// CIL[DOC-CONTEXT module="useSchemaRecord" layer="frontend-hook" related_files="[\".framework/functions/_shared/schema-utils.ts\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/functions/_shared/principal.ts\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\"\\\"]"]
|
|
41
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="interface definition" errors="none" side_effects="none"]
|
|
42
|
-
// CIL[DOC-MICRO logic_summary="Interface with id, optional type_id/type, data JSONB, and index signature" notable_decisions="[]"]
|
|
43
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
44
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
45
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-hook. Direct callers: 0. Direct calls: 0. Related files: .framework/functions/_shared/schema-utils.ts, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/principal.ts, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/IntegrationsPage.tsx, \."]
|
|
46
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
47
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
48
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
46
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Describe the shape of a schema type definition.'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/types/types.ts"]
|
|
47
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
48
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
49
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
49
50
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
50
51
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
52
|
+
// CIL[END stable_id="~/.framework/src/hooks/useSchemaRecord.ts:schematype:interface"]
|
|
53
|
+
|
|
54
|
+
// CIL[BEGIN stable_id="~/.framework/src/hooks/useSchemaRecord.ts:schemarecord:interface"]
|
|
55
|
+
// CIL[DOC-MACRO purpose="Describe a runtime record of a schema type."]
|
|
56
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Type the data container that holds record values and optional resolved type."]
|
|
57
|
+
// CIL[DOC-CONTEXT module="framework hooks" layer="ui" related_files=".framework/src/hooks/useSchemaRecord.ts,.framework/src/lib/api.ts,.framework/src/types/types.ts"]
|
|
58
|
+
// CIL[DOC-CONTRACT inputs="N/A" outputs="SchemaRecord interface" errors="N/A" side_effects="N/A"]
|
|
59
|
+
// CIL[DOC-MICRO logic_summary="Interface includes dynamic key index for legacy field access." notable_decisions="[]"]
|
|
60
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
|
|
61
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
51
62
|
export interface SchemaRecord {
|
|
52
63
|
id: string
|
|
53
64
|
type_id?: string
|
|
@@ -55,39 +66,41 @@ export interface SchemaRecord {
|
|
|
55
66
|
data: Record<string, any>
|
|
56
67
|
[key: string]: any
|
|
57
68
|
}
|
|
58
|
-
// CIL[
|
|
59
|
-
// CIL[
|
|
60
|
-
// CIL[DOC-
|
|
61
|
-
// CIL[DOC-
|
|
62
|
-
// CIL[DOC-CONTEXT module="useSchemaRecord" layer="frontend-hook" related_files="[\".framework/functions/_shared/schema-utils.ts\",\".framework/functions/_shared/principal.ts\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\"\\\"]"]
|
|
63
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="interface definition" errors="none" side_effects="none"]
|
|
64
|
-
// CIL[DOC-MICRO logic_summary="Simple interface with typeApiKind field" notable_decisions="[]"]
|
|
65
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
66
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
67
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-hook. Direct callers: 0. Direct calls: 0. Related files: .framework/functions/_shared/schema-utils.ts, .framework/functions/_shared/principal.ts, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/src/pages/admin/IntegrationsPage.tsx, \."]
|
|
68
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
69
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
70
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
69
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Describe a runtime record of a schema type.'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/types/types.ts"]
|
|
70
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
71
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
72
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
71
73
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
72
74
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
75
|
+
// CIL[END stable_id="~/.framework/src/hooks/useSchemaRecord.ts:schemarecord:interface"]
|
|
76
|
+
|
|
77
|
+
// CIL[BEGIN stable_id="~/.framework/src/hooks/useSchemaRecord.ts:useschemarecordoptions:interface"]
|
|
78
|
+
// CIL[DOC-MACRO purpose="Configure the useSchemaRecord hook."]
|
|
79
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Type the required kind argument for type resolution."]
|
|
80
|
+
// CIL[DOC-CONTEXT module="framework hooks" layer="ui" related_files=".framework/src/hooks/useSchemaRecord.ts,.framework/src/lib/api.ts,.framework/src/types/types.ts"]
|
|
81
|
+
// CIL[DOC-CONTRACT inputs="N/A" outputs="UseSchemaRecordOptions interface" errors="N/A" side_effects="N/A"]
|
|
82
|
+
// CIL[DOC-MICRO logic_summary="Single-property options interface." notable_decisions="[]"]
|
|
83
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
|
|
84
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
73
85
|
export interface UseSchemaRecordOptions {
|
|
74
86
|
typeApiKind: string
|
|
75
87
|
}
|
|
76
|
-
// CIL[
|
|
77
|
-
// CIL[
|
|
78
|
-
// CIL[DOC-
|
|
79
|
-
// CIL[DOC-
|
|
80
|
-
// CIL[DOC-CONTEXT module="useSchemaRecord" layer="frontend-hook" related_files="[\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/functions/_shared/schema-utils.ts\",\".framework/functions/_shared/principal.ts\",\".framework/functions/_shared/db.ts\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"\\\"]"]
|
|
81
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="interface definition" errors="none" side_effects="none"]
|
|
82
|
-
// CIL[DOC-MICRO logic_summary="Interface with fields array, managed data, setters, and metadata" notable_decisions="[]"]
|
|
83
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
84
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
85
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-hook. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/schema-utils.ts, .framework/functions/_shared/principal.ts, .framework/functions/_shared/db.ts, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, \."]
|
|
86
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
87
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
88
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
88
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Configure the useSchemaRecord hook.'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/types/types.ts"]
|
|
89
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
90
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
91
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
89
92
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
90
93
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
94
|
+
// CIL[END stable_id="~/.framework/src/hooks/useSchemaRecord.ts:useschemarecordoptions:interface"]
|
|
95
|
+
|
|
96
|
+
// CIL[BEGIN stable_id="~/.framework/src/hooks/useSchemaRecord.ts:useschemarecordresult:interface"]
|
|
97
|
+
// CIL[DOC-MACRO purpose="Return value shape of the useSchemaRecord hook."]
|
|
98
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Expose record data, field definitions, setters, and metadata to consumers."]
|
|
99
|
+
// CIL[DOC-CONTEXT module="framework hooks" layer="ui" related_files=".framework/src/hooks/useSchemaRecord.ts,.framework/src/lib/api.ts,.framework/src/types/types.ts"]
|
|
100
|
+
// CIL[DOC-CONTRACT inputs="N/A" outputs="UseSchemaRecordResult interface" errors="N/A" side_effects="N/A"]
|
|
101
|
+
// CIL[DOC-MICRO logic_summary="Return object for useSchemaRecord." notable_decisions="[]"]
|
|
102
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
|
|
103
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
91
104
|
export interface UseSchemaRecordResult {
|
|
92
105
|
fields: FieldDefinition[]
|
|
93
106
|
data: Record<string, any>
|
|
@@ -97,23 +110,22 @@ export interface UseSchemaRecordResult {
|
|
|
97
110
|
loading: boolean
|
|
98
111
|
error: string | null
|
|
99
112
|
}
|
|
100
|
-
// CIL[
|
|
101
|
-
// CIL[
|
|
102
|
-
// CIL[DOC-
|
|
103
|
-
// CIL[DOC-
|
|
104
|
-
// CIL[DOC-MACRO purpose="Manage record data state with schema defaults and field definitions"]
|
|
105
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Provide derived state management for record data and fields"]
|
|
106
|
-
// CIL[DOC-CONTEXT module="useSchemaRecord" layer="frontend-hook" related_files="[]"]
|
|
107
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="managed data, field definitions, setters" errors="none" side_effects="React state mutations"]
|
|
108
|
-
// CIL[DOC-MICRO logic_summary="Seed data from record.data with schema defaults, provide field setters, re-seed only on record/type change" notable_decisions="['reseed_on_id_change_only', 'default_value_seeding']"]
|
|
109
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
110
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
111
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-hook. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
112
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
113
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
114
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
113
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Return value shape of the useSchemaRecord hook.'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/types/types.ts"]
|
|
114
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
115
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
116
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
115
117
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
116
118
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
119
|
+
// CIL[END stable_id="~/.framework/src/hooks/useSchemaRecord.ts:useschemarecordresult:interface"]
|
|
120
|
+
|
|
121
|
+
// CIL[BEGIN stable_id="~/.framework/src/hooks/useSchemaRecord.ts:useschemarecord:function"]
|
|
122
|
+
// CIL[DOC-MACRO purpose="Manage local record data state and default values from a schema type."]
|
|
123
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Synchronize record data with schema defaults and expose field setters."]
|
|
124
|
+
// CIL[DOC-CONTEXT module="framework hooks" layer="ui" related_files=".framework/src/hooks/useSchemaRecord.ts,.framework/src/lib/api.ts,.framework/src/types/types.ts"]
|
|
125
|
+
// CIL[DOC-CONTRACT inputs="record: SchemaRecord | null, schemaType: SchemaType | null" outputs="UseSchemaRecordResult" errors="Returns null schemaType and empty data on missing inputs" side_effects="Calls React setState during initial sync and field updates"]
|
|
126
|
+
// CIL[DOC-MICRO logic_summary="Initializes data from record and applies per-field defaults from schemaType.design_schema.fields; exposes setData and setField callbacks." notable_decisions="[]"]
|
|
127
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
|
|
128
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
117
129
|
export function useSchemaRecord(
|
|
118
130
|
record: SchemaRecord | null,
|
|
119
131
|
schemaType: SchemaType | null
|
|
@@ -161,21 +173,22 @@ export function useSchemaRecord(
|
|
|
161
173
|
error: null
|
|
162
174
|
}
|
|
163
175
|
}
|
|
164
|
-
// CIL[
|
|
165
|
-
// CIL[
|
|
166
|
-
// CIL[DOC-
|
|
167
|
-
// CIL[DOC-
|
|
168
|
-
// CIL[DOC-CONTEXT module="useSchemaRecord" layer="frontend-hook" related_files="[]"]
|
|
169
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="interface definition" errors="none" side_effects="none"]
|
|
170
|
-
// CIL[DOC-MICRO logic_summary="Interface with types array, selected type/id, setters, and loading state" notable_decisions="[]"]
|
|
171
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
172
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
173
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-hook. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
174
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
175
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
176
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
176
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Manage local record data state and default values from a schema type.'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/types/types.ts"]
|
|
177
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
178
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
179
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
177
180
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
178
181
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
182
|
+
// CIL[END stable_id="~/.framework/src/hooks/useSchemaRecord.ts:useschemarecord:function"]
|
|
183
|
+
|
|
184
|
+
// CIL[BEGIN stable_id="~/.framework/src/hooks/useSchemaRecord.ts:usetypeselectionresult:interface"]
|
|
185
|
+
// CIL[DOC-MACRO purpose="Return value shape of the useTypeSelection hook."]
|
|
186
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Expose loaded types, selected type, and selection controls."]
|
|
187
|
+
// CIL[DOC-CONTEXT module="framework hooks" layer="ui" related_files=".framework/src/hooks/useSchemaRecord.ts,.framework/src/lib/api.ts,.framework/src/types/types.ts"]
|
|
188
|
+
// CIL[DOC-CONTRACT inputs="N/A" outputs="UseTypeSelectionResult interface" errors="N/A" side_effects="N/A"]
|
|
189
|
+
// CIL[DOC-MICRO logic_summary="Return object for useTypeSelection." notable_decisions="[]"]
|
|
190
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
|
|
191
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
179
192
|
export interface UseTypeSelectionResult {
|
|
180
193
|
types: SchemaType[]
|
|
181
194
|
selectedType: SchemaType | null
|
|
@@ -184,21 +197,22 @@ export interface UseTypeSelectionResult {
|
|
|
184
197
|
loading: boolean
|
|
185
198
|
error: string | null
|
|
186
199
|
}
|
|
187
|
-
// CIL[
|
|
188
|
-
// CIL[
|
|
189
|
-
// CIL[DOC-
|
|
190
|
-
// CIL[DOC-
|
|
191
|
-
// CIL[DOC-CONTEXT module="useSchemaRecord" layer="frontend-hook" related_files="[]"]
|
|
192
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="types array, selected type, selection state" errors="network errors" side_effects="Network requests, React state mutations"]
|
|
193
|
-
// CIL[DOC-MICRO logic_summary="Fetch active types by kind on mount and kind change, manage selectedTypeId state, resolve selectedType by id" notable_decisions="['controlled_selection_state', 'fetch_on_kind_change']"]
|
|
194
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
195
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
196
|
-
// CIL[DOC-VECTOR type="context" content="Layer: frontend-hook. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
197
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
198
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
199
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
200
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Return value shape of the useTypeSelection hook.'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/types/types.ts"]
|
|
201
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
202
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
203
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
200
204
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
201
205
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
206
|
+
// CIL[END stable_id="~/.framework/src/hooks/useSchemaRecord.ts:usetypeselectionresult:interface"]
|
|
207
|
+
|
|
208
|
+
// CIL[BEGIN stable_id="~/.framework/src/hooks/useSchemaRecord.ts:usetypeselection:function"]
|
|
209
|
+
// CIL[DOC-MACRO purpose="Load and select a schema type by kind for the current context."]
|
|
210
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Fetch active types from the API and maintain selection state."]
|
|
211
|
+
// CIL[DOC-CONTEXT module="framework hooks" layer="ui" related_files=".framework/src/hooks/useSchemaRecord.ts,.framework/src/lib/api.ts,.framework/src/types/types.ts"]
|
|
212
|
+
// CIL[DOC-CONTRACT inputs="kind: string" outputs="UseTypeSelectionResult" errors="Sets error state on API failures" side_effects="Fetches /api/types on mount and kind changes; uses React state"]
|
|
213
|
+
// CIL[DOC-MICRO logic_summary="Fetches active types for a kind, tracks selected type ID, and memoizes the selected type." notable_decisions="[]"]
|
|
214
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
|
|
215
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
202
216
|
export function useTypeSelection(kind: string): UseTypeSelectionResult {
|
|
203
217
|
const [types, setTypes] = useState<SchemaType[]>([])
|
|
204
218
|
const [selectedTypeId, setSelectedTypeId] = useState('')
|
|
@@ -229,4 +243,10 @@ export function useTypeSelection(kind: string): UseTypeSelectionResult {
|
|
|
229
243
|
|
|
230
244
|
return { types, selectedType, selectedTypeId, setSelectedTypeId, loading, error }
|
|
231
245
|
}
|
|
232
|
-
// CIL[
|
|
246
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Load and select a schema type by kind for the current context.'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/types/types.ts"]
|
|
247
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
248
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
249
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
250
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
251
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
252
|
+
// CIL[END stable_id="~/.framework/src/hooks/useSchemaRecord.ts:usetypeselection:function"]
|