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,3 +1,13 @@
|
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/empty.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/components/ui/empty.tsx"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Empty-state UI component module for the design system"]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Import dependencies and export the empty-state component suite"]
|
|
4
|
+
// CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/lib/utils.ts"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Imports cva and cn, then re-exports six subcomponents for empty states" notable_decisions="[]"]
|
|
7
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
8
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
9
|
+
// CIL[DOC-AUDIENCE audience="framework-developer"]
|
|
10
|
+
|
|
1
11
|
|
|
2
12
|
|
|
3
13
|
|
|
@@ -7,38 +17,24 @@
|
|
|
7
17
|
|
|
8
18
|
|
|
9
19
|
|
|
10
|
-
// CIL[BEGIN chunk_id="empty_module_header_1783844098" type="module_header" identity="imports" parent="none"]
|
|
11
|
-
// CIL[DOC-MACRO purpose="Import dependencies for empty state components"]
|
|
12
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Import styling utilities and variant system"]
|
|
13
|
-
// CIL[DOC-CONTEXT module="empty" layer="ui" related_files="[\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"\\\"]"]
|
|
14
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styling utilities" errors="none" side_effects="none"]
|
|
15
|
-
// CIL[DOC-MICRO logic_summary="Imports cva for variant styling and cn for class merging" notable_decisions="[]"]
|
|
16
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
17
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
18
|
-
// CIL[DOC-AUDIENCE audience="developer"]
|
|
19
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/components/ui/dialog.tsx, .framework/src/components/ui/table-primitives.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, \."]
|
|
20
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
21
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
22
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
23
|
-
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
24
|
-
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
25
20
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
26
21
|
import { cn } from "@/lib/utils"
|
|
27
|
-
// CIL[
|
|
28
|
-
// CIL[
|
|
29
|
-
// CIL[DOC-
|
|
30
|
-
// CIL[DOC-
|
|
31
|
-
// CIL[DOC-CONTEXT module="empty" layer="ui" related_files="[\".framework/src/components/ui/dialog.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
|
|
32
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled div container" errors="none" side_effects="renders DOM"]
|
|
33
|
-
// CIL[DOC-MICRO logic_summary="Creates centered flex container with dashed border for empty states" notable_decisions="[]"]
|
|
34
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
35
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
36
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/ui/dialog.tsx, .framework/src/components/ui/table-primitives.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
|
|
37
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
38
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
39
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
22
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Empty-state UI component module for the design system'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
23
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
24
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
25
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
40
26
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
41
27
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
28
|
+
// CIL[END stable_id="~/.framework/src/components/ui/empty.tsx:module_header:module_header"]
|
|
29
|
+
|
|
30
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/empty.tsx:Empty:component" type="component" identity="Empty" parent="~/.framework/src/components/ui/empty.tsx"]
|
|
31
|
+
// CIL[DOC-MACRO purpose="Root empty-state layout container"]
|
|
32
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render a centered, bordered empty-state wrapper that accepts className"]
|
|
33
|
+
// CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/empty.tsx,.framework/src/lib/utils.ts"]
|
|
34
|
+
// CIL[DOC-CONTRACT inputs="className: optional CSS class, props: remaining div props" outputs="JSX.Element" errors="none" side_effects="none"]
|
|
35
|
+
// CIL[DOC-MICRO logic_summary="Spreads props onto a div and merges Tailwind utility classes with cn()" notable_decisions="[]"]
|
|
36
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
37
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
42
38
|
function Empty({ className, ...props }: React.ComponentProps<"div">) {
|
|
43
39
|
return (
|
|
44
40
|
<div
|
|
@@ -51,21 +47,22 @@ function Empty({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
51
47
|
/>
|
|
52
48
|
)
|
|
53
49
|
}
|
|
54
|
-
// CIL[
|
|
55
|
-
// CIL[
|
|
56
|
-
// CIL[DOC-
|
|
57
|
-
// CIL[DOC-
|
|
58
|
-
// CIL[DOC-CONTEXT module="empty" layer="ui" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/migrations/015_simplify_apps_table.sql\",\".framework/src/components/ui/table-primitives.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"\\\"]"]
|
|
59
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="header container div" errors="none" side_effects="renders DOM"]
|
|
60
|
-
// CIL[DOC-MICRO logic_summary="Creates flex column container with max-width constraint for headers" notable_decisions="[]"]
|
|
61
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
62
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
63
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/migrations/015_simplify_apps_table.sql, .framework/src/components/ui/table-primitives.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, \."]
|
|
64
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
65
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
66
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
50
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Root empty-state layout container'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
51
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
52
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
53
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
67
54
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
68
55
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
56
|
+
// CIL[END stable_id="~/.framework/src/components/ui/empty.tsx:Empty:component"]
|
|
57
|
+
|
|
58
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/empty.tsx:EmptyHeader:component" type="component" identity="EmptyHeader" parent="~/.framework/src/components/ui/empty.tsx"]
|
|
59
|
+
// CIL[DOC-MACRO purpose="Header area inside an empty state"]
|
|
60
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Center the icon and title group vertically with a small gap"]
|
|
61
|
+
// CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/empty.tsx,.framework/src/lib/utils.ts"]
|
|
62
|
+
// CIL[DOC-CONTRACT inputs="className: optional CSS class, props: remaining div props" outputs="JSX.Element" errors="none" side_effects="none"]
|
|
63
|
+
// CIL[DOC-MICRO logic_summary="Renders a flex column with a max-width and appends className via cn()" notable_decisions="[]"]
|
|
64
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
65
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
69
66
|
function EmptyHeader({ className, ...props }: React.ComponentProps<"div">) {
|
|
70
67
|
return (
|
|
71
68
|
<div
|
|
@@ -75,21 +72,23 @@ function EmptyHeader({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
75
72
|
/>
|
|
76
73
|
)
|
|
77
74
|
}
|
|
78
|
-
// CIL[
|
|
79
|
-
// CIL[
|
|
80
|
-
// CIL[DOC-
|
|
81
|
-
// CIL[DOC-
|
|
82
|
-
// CIL[DOC-CONTEXT module="empty" layer="ui" related_files="[\".framework/src/components/ui/dialog.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"\\\"]"]
|
|
83
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="CSS class names" errors="none" side_effects="none"]
|
|
84
|
-
// CIL[DOC-MICRO logic_summary="CVA configuration for default and icon variants with styling" notable_decisions="[]"]
|
|
85
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
86
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
87
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 1. Direct calls: 0. Related files: .framework/src/components/ui/dialog.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/components/ui/table-primitives.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, \."]
|
|
88
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 1. Total affected: 1."]
|
|
89
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
90
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
75
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Header area inside an empty state'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
76
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
77
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
78
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
91
79
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
92
80
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
81
|
+
// CIL[END stable_id="~/.framework/src/components/ui/empty.tsx:EmptyHeader:component"]
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/empty.tsx:emptyMediaVariants:constant" type="constant" identity="emptyMediaVariants" parent="~/.framework/src/components/ui/empty.tsx"]
|
|
85
|
+
// CIL[DOC-MACRO purpose="Style variants for the empty-state media icon wrapper"]
|
|
86
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide tailwind class strings for the default and icon media variants"]
|
|
87
|
+
// CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/empty.tsx,.framework/src/lib/utils.ts"]
|
|
88
|
+
// CIL[DOC-CONTRACT inputs="variant: 'default' | 'icon'" outputs="Tailwind CSS class string for the media wrapper" errors="none" side_effects="none"]
|
|
89
|
+
// CIL[DOC-MICRO logic_summary="cva() with a default transparent state and an icon variant that adds a muted background" notable_decisions="[]"]
|
|
90
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
91
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
93
92
|
const emptyMediaVariants = cva(
|
|
94
93
|
"mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
95
94
|
{
|
|
@@ -104,21 +103,23 @@ const emptyMediaVariants = cva(
|
|
|
104
103
|
},
|
|
105
104
|
}
|
|
106
105
|
)
|
|
107
|
-
// CIL[
|
|
108
|
-
// CIL[
|
|
109
|
-
// CIL[DOC-
|
|
110
|
-
// CIL[DOC-
|
|
111
|
-
// CIL[DOC-CONTEXT module="empty" layer="ui" related_files="[\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/functions/_shared/principal.ts\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/functions/_shared/schema-utils.ts\",\"custom/apps/portal/pages/ContentPage.tsx\",\"\\\"]"]
|
|
112
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled media div" errors="none" side_effects="renders DOM"]
|
|
113
|
-
// CIL[DOC-MICRO logic_summary="Applies variant styling for media container with icon support" notable_decisions="[]"]
|
|
114
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
115
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
116
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/principal.ts, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/functions/_shared/schema-utils.ts, custom/apps/portal/pages/ContentPage.tsx, \."]
|
|
117
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
118
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
119
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
106
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Style variants for the empty-state media icon wrapper'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
107
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
108
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
109
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
120
110
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
121
111
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
112
|
+
// CIL[END stable_id="~/.framework/src/components/ui/empty.tsx:emptyMediaVariants:constant"]
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/empty.tsx:EmptyMedia:component" type="component" identity="EmptyMedia" parent="~/.framework/src/components/ui/empty.tsx"]
|
|
116
|
+
// CIL[DOC-MACRO purpose="Icon or media area for an empty state"]
|
|
117
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render a media container styled by emptyMediaVariants based on the selected variant"]
|
|
118
|
+
// CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/empty.tsx,.framework/src/lib/utils.ts"]
|
|
119
|
+
// CIL[DOC-CONTRACT inputs="className: optional CSS class, variant: visual style, props: remaining div props" outputs="JSX.Element" errors="none" side_effects="none"]
|
|
120
|
+
// CIL[DOC-MICRO logic_summary="Selects the icon variant and merges the resulting cva() class with className using cn()" notable_decisions="[]"]
|
|
121
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
122
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
122
123
|
function EmptyMedia({
|
|
123
124
|
className,
|
|
124
125
|
variant = "default",
|
|
@@ -133,21 +134,23 @@ function EmptyMedia({
|
|
|
133
134
|
/>
|
|
134
135
|
)
|
|
135
136
|
}
|
|
136
|
-
// CIL[
|
|
137
|
-
// CIL[
|
|
138
|
-
// CIL[DOC-
|
|
139
|
-
// CIL[DOC-
|
|
140
|
-
// CIL[DOC-CONTEXT module="empty" layer="ui" related_files="[]"]
|
|
141
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled title div" errors="none" side_effects="renders DOM"]
|
|
142
|
-
// CIL[DOC-MICRO logic_summary="Creates heading-styled text with font and spacing for titles" notable_decisions="[]"]
|
|
143
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
144
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
145
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
146
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
147
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
148
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
137
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Icon or media area for an empty state'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
138
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
139
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
140
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
149
141
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
150
142
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
143
|
+
// CIL[END stable_id="~/.framework/src/components/ui/empty.tsx:EmptyMedia:component"]
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/empty.tsx:EmptyTitle:component" type="component" identity="EmptyTitle" parent="~/.framework/src/components/ui/empty.tsx"]
|
|
147
|
+
// CIL[DOC-MACRO purpose="Title text for an empty state"]
|
|
148
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render a small, medium-weight heading for empty-state messaging"]
|
|
149
|
+
// CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/empty.tsx,.framework/src/lib/utils.ts"]
|
|
150
|
+
// CIL[DOC-CONTRACT inputs="className: optional CSS class, props: remaining div props" outputs="JSX.Element" errors="none" side_effects="none"]
|
|
151
|
+
// CIL[DOC-MICRO logic_summary="Applies a font-heading text-sm style and appends className through cn()" notable_decisions="[]"]
|
|
152
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
153
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
151
154
|
function EmptyTitle({ className, ...props }: React.ComponentProps<"div">) {
|
|
152
155
|
return (
|
|
153
156
|
<div
|
|
@@ -160,21 +163,22 @@ function EmptyTitle({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
160
163
|
/>
|
|
161
164
|
)
|
|
162
165
|
}
|
|
163
|
-
// CIL[
|
|
164
|
-
// CIL[
|
|
165
|
-
// CIL[DOC-
|
|
166
|
-
// CIL[DOC-
|
|
167
|
-
// CIL[DOC-CONTEXT module="empty" layer="ui" related_files="[]"]
|
|
168
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled description div" errors="none" side_effects="renders DOM"]
|
|
169
|
-
// CIL[DOC-MICRO logic_summary="Creates muted text styling with link support for descriptions" notable_decisions="[]"]
|
|
170
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
171
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
172
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
173
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
174
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
175
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
166
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Title text for an empty state'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
167
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
168
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
169
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
176
170
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
177
171
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
172
|
+
// CIL[END stable_id="~/.framework/src/components/ui/empty.tsx:EmptyTitle:component"]
|
|
173
|
+
|
|
174
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/empty.tsx:EmptyDescription:component" type="component" identity="EmptyDescription" parent="~/.framework/src/components/ui/empty.tsx"]
|
|
175
|
+
// CIL[DOC-MACRO purpose="Description text for an empty state"]
|
|
176
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render muted, small body text with link styling for empty-state help"]
|
|
177
|
+
// CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/empty.tsx,.framework/src/lib/utils.ts"]
|
|
178
|
+
// CIL[DOC-CONTRACT inputs="className: optional CSS class, props: remaining paragraph props" outputs="JSX.Element" errors="none" side_effects="none"]
|
|
179
|
+
// CIL[DOC-MICRO logic_summary="Uses text-muted-foreground with relaxed line height and underline rules for nested links" notable_decisions="[]"]
|
|
180
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
181
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
178
182
|
function EmptyDescription({ className, ...props }: React.ComponentProps<"p">) {
|
|
179
183
|
return (
|
|
180
184
|
<div
|
|
@@ -187,21 +191,22 @@ function EmptyDescription({ className, ...props }: React.ComponentProps<"p">) {
|
|
|
187
191
|
/>
|
|
188
192
|
)
|
|
189
193
|
}
|
|
190
|
-
// CIL[
|
|
191
|
-
// CIL[
|
|
192
|
-
// CIL[DOC-
|
|
193
|
-
// CIL[DOC-
|
|
194
|
-
// CIL[DOC-CONTEXT module="empty" layer="ui" related_files="[]"]
|
|
195
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="styled content div" errors="none" side_effects="renders DOM"]
|
|
196
|
-
// CIL[DOC-MICRO logic_summary="Creates flex column container with text styling for content" notable_decisions="[]"]
|
|
197
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
198
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
199
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
200
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
201
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
202
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
194
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Description text for an empty state'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
195
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
196
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
197
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
203
198
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
204
199
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
200
|
+
// CIL[END stable_id="~/.framework/src/components/ui/empty.tsx:EmptyDescription:component"]
|
|
201
|
+
|
|
202
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/empty.tsx:EmptyContent:component" type="component" identity="EmptyContent" parent="~/.framework/src/components/ui/empty.tsx"]
|
|
203
|
+
// CIL[DOC-MACRO purpose="Body content area for an empty state"]
|
|
204
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render a centered, bounded text container for custom empty-state children"]
|
|
205
|
+
// CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/empty.tsx,.framework/src/lib/utils.ts"]
|
|
206
|
+
// CIL[DOC-CONTRACT inputs="className: optional CSS class, props: remaining div props" outputs="JSX.Element" errors="none" side_effects="none"]
|
|
207
|
+
// CIL[DOC-MICRO logic_summary="Creates a max-w-sm flex column with text-balance and appends className via cn()" notable_decisions="[]"]
|
|
208
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
209
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
205
210
|
function EmptyContent({ className, ...props }: React.ComponentProps<"div">) {
|
|
206
211
|
return (
|
|
207
212
|
<div
|
|
@@ -214,21 +219,21 @@ function EmptyContent({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
214
219
|
/>
|
|
215
220
|
)
|
|
216
221
|
}
|
|
217
|
-
// CIL[
|
|
218
|
-
// CIL[
|
|
219
|
-
// CIL[DOC-
|
|
220
|
-
// CIL[DOC-
|
|
221
|
-
// CIL[DOC-CONTEXT module="empty" layer="ui" related_files="[]"]
|
|
222
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="component exports" errors="none" side_effects="module exports"]
|
|
223
|
-
// CIL[DOC-MICRO logic_summary="Exports all empty state components for external usage" notable_decisions="[]"]
|
|
224
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
225
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
226
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
227
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
228
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
229
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
222
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Body content area for an empty state'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
223
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
224
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
225
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
230
226
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
231
227
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
228
|
+
// CIL[END stable_id="~/.framework/src/components/ui/empty.tsx:EmptyContent:component"]
|
|
229
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/empty.tsx:exports:variable" type="variable" identity="exports" parent="~/.framework/src/components/ui/empty.tsx"]
|
|
230
|
+
// CIL[DOC-MACRO purpose="Public API export for the empty-state component set"]
|
|
231
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Expose all named empty-state subcomponents for consumers"]
|
|
232
|
+
// CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/empty.tsx,.framework/src/lib/utils.ts"]
|
|
233
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="named exports: Empty, EmptyHeader, EmptyTitle, EmptyDescription, EmptyContent, EmptyMedia" errors="none" side_effects="none"]
|
|
234
|
+
// CIL[DOC-MICRO logic_summary="Re-exports the six component symbols from this module" notable_decisions="[]"]
|
|
235
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
236
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
232
237
|
export {
|
|
233
238
|
Empty,
|
|
234
239
|
EmptyHeader,
|
|
@@ -237,4 +242,10 @@ export {
|
|
|
237
242
|
EmptyContent,
|
|
238
243
|
EmptyMedia,
|
|
239
244
|
}
|
|
240
|
-
// CIL[
|
|
245
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Public API export for the empty-state component set'; No verified external callers; imports: .framework/src/lib/utils.ts"]
|
|
246
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
247
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
248
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
249
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
250
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
251
|
+
// CIL[END stable_id="~/.framework/src/components/ui/empty.tsx:exports:variable"]
|