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,48 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
// CIL[BEGIN chunk_id="pagination_module_header_1783758409" type="module_header" identity="imports" parent="none"]
|
|
12
|
-
// CIL[DOC-MACRO purpose="Import dependencies for pagination component library"]
|
|
13
|
-
// CIL[DOC-RESPONSIBILITY responsibility="Import external React UI primitives and utilities"]
|
|
14
|
-
// CIL[DOC-CONTEXT module="pagination" layer="ui_components" related_files="[\".framework/src/components/layout/Sidebar.tsx\",\".framework/src/components/ui/dialog.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"\\\"]"]
|
|
15
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="React, utils, Button, icons" errors="none" side_effects="Module imports"]
|
|
16
|
-
// CIL[DOC-MICRO logic_summary="Imports React, utility functions, Button component and chevron/more icons" notable_decisions="[]"]
|
|
17
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
1
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/pagination.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/components/ui/pagination.tsx"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Pagination component module header and imports"]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Import React, the cn utility, Button component, and Lucide icons used by the pagination subcomponents"]
|
|
4
|
+
// CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/lib/utils.ts"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Module-level imports for the pagination component family" notable_decisions="[]"]
|
|
7
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
18
8
|
// CIL[DOC-STABILITY stability="stable"]
|
|
19
9
|
// CIL[DOC-AUDIENCE audience="developer"]
|
|
20
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/layout/Sidebar.tsx, .framework/src/components/ui/dialog.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, \."]
|
|
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
10
|
import * as React from "react"
|
|
27
11
|
|
|
28
12
|
import { cn } from "@/lib/utils"
|
|
29
13
|
import { Button } from "@/components/ui/button"
|
|
30
14
|
import { ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon } from "lucide-react"
|
|
31
|
-
// CIL[
|
|
32
|
-
// CIL[
|
|
33
|
-
// CIL[DOC-
|
|
34
|
-
// CIL[DOC-
|
|
35
|
-
// CIL[DOC-CONTEXT module="pagination" layer="ui_components" related_files="[\".framework/src/components/layout/Sidebar.tsx\",\"\\\"]"]
|
|
36
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Styled nav element" errors="none" side_effects="DOM rendering"]
|
|
37
|
-
// CIL[DOC-MICRO logic_summary="Creates semantic nav with ARIA label, centered layout and flex container" notable_decisions="[]"]
|
|
38
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
39
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
40
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/layout/Sidebar.tsx, \."]
|
|
41
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
42
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
43
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
15
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Pagination component module header and imports'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
16
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
17
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
18
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
44
19
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
45
20
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
21
|
+
// CIL[END stable_id="~/.framework/src/components/ui/pagination.tsx:module_header:module_header"]
|
|
22
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/pagination.tsx:pagination:function" type="function" identity="pagination" parent="~/.framework/src/components/ui/pagination.tsx"]
|
|
23
|
+
// CIL[DOC-MACRO purpose="Render the root pagination navigation wrapper"]
|
|
24
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide a styled nav element that hosts pagination controls"]
|
|
25
|
+
// CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/pagination.tsx,.framework/src/lib/utils.ts"]
|
|
26
|
+
// CIL[DOC-CONTRACT inputs="className, ...props" outputs="JSX nav with pagination role and aria-label" errors="none" side_effects="none"]
|
|
27
|
+
// CIL[DOC-MICRO logic_summary="Wraps children in a centered flex nav, merging className via cn" notable_decisions="[]"]
|
|
28
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
29
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
46
30
|
function Pagination({ className, ...props }: React.ComponentProps<"nav">) {
|
|
47
31
|
return (
|
|
48
32
|
<nav
|
|
@@ -54,21 +38,21 @@ function Pagination({ className, ...props }: React.ComponentProps<"nav">) {
|
|
|
54
38
|
/>
|
|
55
39
|
)
|
|
56
40
|
}
|
|
57
|
-
// CIL[
|
|
58
|
-
// CIL[
|
|
59
|
-
// CIL[DOC-
|
|
60
|
-
// CIL[DOC-
|
|
61
|
-
// CIL[DOC-CONTEXT module="pagination" layer="ui_components" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/components/layout/Sidebar.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/functions/_shared/principal.ts\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"\\\"]"]
|
|
62
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Styled ul element" errors="none" side_effects="DOM rendering"]
|
|
63
|
-
// CIL[DOC-MICRO logic_summary="Creates flex container with centered items and small gap between pagination items" notable_decisions="[]"]
|
|
64
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
65
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
66
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 1. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/src/components/layout/Sidebar.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/principal.ts, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, \."]
|
|
67
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 1. Total affected: 2."]
|
|
68
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
69
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
41
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render the root pagination navigation wrapper'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
42
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
43
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
44
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
70
45
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
71
46
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
47
|
+
// CIL[END stable_id="~/.framework/src/components/ui/pagination.tsx:pagination:function"]
|
|
48
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/pagination.tsx:paginationcontent:function" type="function" identity="paginationcontent" parent="~/.framework/src/components/ui/pagination.tsx"]
|
|
49
|
+
// CIL[DOC-MACRO purpose="Render the unordered list that holds pagination items"]
|
|
50
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide a styled ul element for pagination entries"]
|
|
51
|
+
// CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/pagination.tsx,.framework/src/lib/utils.ts"]
|
|
52
|
+
// CIL[DOC-CONTRACT inputs="className, ...props" outputs="JSX ul with flex layout" errors="none" side_effects="none"]
|
|
53
|
+
// CIL[DOC-MICRO logic_summary="Renders a flex ul with a small gap between items, merging className" notable_decisions="[]"]
|
|
54
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
55
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
72
56
|
function PaginationContent({
|
|
73
57
|
className,
|
|
74
58
|
...props
|
|
@@ -81,58 +65,58 @@ function PaginationContent({
|
|
|
81
65
|
/>
|
|
82
66
|
)
|
|
83
67
|
}
|
|
84
|
-
// CIL[
|
|
85
|
-
// CIL[
|
|
86
|
-
// CIL[DOC-
|
|
87
|
-
// CIL[DOC-
|
|
88
|
-
// CIL[DOC-CONTEXT module="pagination" layer="ui_components" related_files="[\".framework/src/pages/admin/TypeDetailPage.tsx\",\"\\\"]"]
|
|
89
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Styled li element" errors="none" side_effects="DOM rendering"]
|
|
90
|
-
// CIL[DOC-MICRO logic_summary="Creates list item with data-slot attribute for pagination elements" notable_decisions="[]"]
|
|
91
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
92
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
93
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 1. Direct calls: 0. Related files: .framework/src/pages/admin/TypeDetailPage.tsx, \."]
|
|
94
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 1. Total affected: 2."]
|
|
95
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
96
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
68
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render the unordered list that holds pagination items'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
69
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
70
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
71
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
97
72
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
98
73
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
74
|
+
// CIL[END stable_id="~/.framework/src/components/ui/pagination.tsx:paginationcontent:function"]
|
|
75
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/pagination.tsx:paginationitem:function" type="function" identity="paginationitem" parent="~/.framework/src/components/ui/pagination.tsx"]
|
|
76
|
+
// CIL[DOC-MACRO purpose="Render a single pagination list item"]
|
|
77
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide a styled li for pagination links or ellipsis"]
|
|
78
|
+
// CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/pagination.tsx,.framework/src/lib/utils.ts"]
|
|
79
|
+
// CIL[DOC-CONTRACT inputs="...props" outputs="JSX li with data-slot" errors="none" side_effects="none"]
|
|
80
|
+
// CIL[DOC-MICRO logic_summary="Renders an li with a data-slot and passes remaining props" notable_decisions="[]"]
|
|
81
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
82
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
99
83
|
function PaginationItem({ ...props }: React.ComponentProps<"li">) {
|
|
100
84
|
return <li data-slot="pagination-item" {...props} />
|
|
101
85
|
}
|
|
102
|
-
// CIL[
|
|
103
|
-
// CIL[
|
|
104
|
-
// CIL[DOC-
|
|
105
|
-
// CIL[DOC-
|
|
106
|
-
// CIL[DOC-CONTEXT module="pagination" layer="ui_components" related_files="[\".framework/src/components/layout/Sidebar.tsx\",\".framework/functions/_shared/schema-utils.ts\",\".framework/functions/_shared/principal.ts\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"\\\"]"]
|
|
107
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="TypeScript interface" errors="none" side_effects="Type definition"]
|
|
108
|
-
// CIL[DOC-MICRO logic_summary="Defines interface with active flag, size prop and anchor element properties" notable_decisions="[]"]
|
|
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: ui_components. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/layout/Sidebar.tsx, .framework/functions/_shared/schema-utils.ts, .framework/functions/_shared/principal.ts, .framework/src/pages/admin/TypeDetailPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, \."]
|
|
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."]
|
|
86
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render a single pagination list item'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
87
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
88
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
89
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
115
90
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
116
91
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
92
|
+
// CIL[END stable_id="~/.framework/src/components/ui/pagination.tsx:paginationitem:function"]
|
|
93
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/pagination.tsx:paginationlinkprops:type" type="type" identity="paginationlinkprops" parent="~/.framework/src/components/ui/pagination.tsx"]
|
|
94
|
+
// CIL[DOC-MACRO purpose="Define props for the PaginationLink subcomponent"]
|
|
95
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Type alias combining isActive flag, Button size, and anchor props"]
|
|
96
|
+
// CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/pagination.tsx,.framework/src/lib/utils.ts"]
|
|
97
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="PaginationLinkProps type" errors="none" side_effects="none"]
|
|
98
|
+
// CIL[DOC-MICRO logic_summary="Intersection of isActive, Button size, and a element props" notable_decisions="[]"]
|
|
99
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
100
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
117
101
|
type PaginationLinkProps = {
|
|
118
102
|
isActive?: boolean
|
|
119
103
|
} & Pick<React.ComponentProps<typeof Button>, "size"> &
|
|
120
104
|
React.ComponentProps<"a">
|
|
121
|
-
// CIL[
|
|
122
|
-
// CIL[
|
|
123
|
-
// CIL[DOC-
|
|
124
|
-
// CIL[DOC-
|
|
125
|
-
// CIL[DOC-CONTEXT module="pagination" layer="ui_components" related_files="[]"]
|
|
126
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Styled link" errors="none" side_effects="DOM events"]
|
|
127
|
-
// CIL[DOC-MICRO logic_summary="Creates button-wrapped link with active state styling and ARIA current attribute" notable_decisions="[]"]
|
|
128
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
129
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
130
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
131
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
132
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
133
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
105
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Define props for the PaginationLink subcomponent'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
106
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
107
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
108
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
134
109
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
135
110
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
111
|
+
// CIL[END stable_id="~/.framework/src/components/ui/pagination.tsx:paginationlinkprops:type"]
|
|
112
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/pagination.tsx:paginationlink:function" type="function" identity="paginationlink" parent="~/.framework/src/components/ui/pagination.tsx"]
|
|
113
|
+
// CIL[DOC-MACRO purpose="Render a pagination link button"]
|
|
114
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render an anchor styled as a Button, active state outline variant"]
|
|
115
|
+
// CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/pagination.tsx,.framework/src/lib/utils.ts"]
|
|
116
|
+
// CIL[DOC-CONTRACT inputs="className, isActive, size, anchor props" outputs="JSX Button wrapping an a" errors="none" side_effects="none"]
|
|
117
|
+
// CIL[DOC-MICRO logic_summary="Uses Button asChild; applies outline variant when active, ghost otherwise; passes aria-current" notable_decisions="[]"]
|
|
118
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
119
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
136
120
|
function PaginationLink({
|
|
137
121
|
className,
|
|
138
122
|
isActive,
|
|
@@ -155,21 +139,21 @@ function PaginationLink({
|
|
|
155
139
|
</Button>
|
|
156
140
|
)
|
|
157
141
|
}
|
|
158
|
-
// CIL[
|
|
159
|
-
// CIL[
|
|
160
|
-
// CIL[DOC-
|
|
161
|
-
// CIL[DOC-
|
|
162
|
-
// CIL[DOC-CONTEXT module="pagination" layer="ui_components" related_files="[]"]
|
|
163
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Previous button" errors="none" side_effects="DOM events"]
|
|
164
|
-
// CIL[DOC-MICRO logic_summary="Creates previous button with chevron icon, responsive text and ARIA label" notable_decisions="[]"]
|
|
165
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
166
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
167
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
168
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
169
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
170
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
142
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render a pagination link button'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
143
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
144
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
145
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
171
146
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
172
147
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
148
|
+
// CIL[END stable_id="~/.framework/src/components/ui/pagination.tsx:paginationlink:function"]
|
|
149
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/pagination.tsx:paginationprevious:function" type="function" identity="paginationprevious" parent="~/.framework/src/components/ui/pagination.tsx"]
|
|
150
|
+
// CIL[DOC-MACRO purpose="Render the previous page navigation link"]
|
|
151
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide a left-pointing pagination control with text"]
|
|
152
|
+
// CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/pagination.tsx,.framework/src/lib/utils.ts"]
|
|
153
|
+
// CIL[DOC-CONTRACT inputs="className, text, PaginationLink props" outputs="JSX PaginationLink with chevron and text" errors="none" side_effects="none"]
|
|
154
|
+
// CIL[DOC-MICRO logic_summary="Defaults text to Previous; renders ChevronLeftIcon and text hidden on small screens" notable_decisions="[]"]
|
|
155
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
156
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
173
157
|
function PaginationPrevious({
|
|
174
158
|
className,
|
|
175
159
|
text = "Previous",
|
|
@@ -187,21 +171,21 @@ function PaginationPrevious({
|
|
|
187
171
|
</PaginationLink>
|
|
188
172
|
)
|
|
189
173
|
}
|
|
190
|
-
// CIL[
|
|
191
|
-
// CIL[
|
|
192
|
-
// CIL[DOC-
|
|
193
|
-
// CIL[DOC-
|
|
194
|
-
// CIL[DOC-CONTEXT module="pagination" layer="ui_components" related_files="[]"]
|
|
195
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Next button" errors="none" side_effects="DOM events"]
|
|
196
|
-
// CIL[DOC-MICRO logic_summary="Creates next button with chevron icon, responsive text and ARIA label" 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_components. 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."]
|
|
174
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render the previous page navigation link'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
175
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
176
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
177
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
203
178
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
204
179
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
180
|
+
// CIL[END stable_id="~/.framework/src/components/ui/pagination.tsx:paginationprevious:function"]
|
|
181
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/pagination.tsx:paginationnext:function" type="function" identity="paginationnext" parent="~/.framework/src/components/ui/pagination.tsx"]
|
|
182
|
+
// CIL[DOC-MACRO purpose="Render the next page navigation link"]
|
|
183
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide a right-pointing pagination control with text"]
|
|
184
|
+
// CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/pagination.tsx,.framework/src/lib/utils.ts"]
|
|
185
|
+
// CIL[DOC-CONTRACT inputs="className, text, PaginationLink props" outputs="JSX PaginationLink with span and chevron" errors="none" side_effects="none"]
|
|
186
|
+
// CIL[DOC-MICRO logic_summary="Defaults text to Next; renders span and ChevronRightIcon" notable_decisions="[]"]
|
|
187
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
188
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
205
189
|
function PaginationNext({
|
|
206
190
|
className,
|
|
207
191
|
text = "Next",
|
|
@@ -219,21 +203,21 @@ function PaginationNext({
|
|
|
219
203
|
</PaginationLink>
|
|
220
204
|
)
|
|
221
205
|
}
|
|
222
|
-
// CIL[
|
|
223
|
-
// CIL[
|
|
224
|
-
// CIL[DOC-
|
|
225
|
-
// CIL[DOC-
|
|
226
|
-
// CIL[DOC-CONTEXT module="pagination" layer="ui_components" related_files="[]"]
|
|
227
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Ellipsis indicator" errors="none" side_effects="DOM rendering"]
|
|
228
|
-
// CIL[DOC-MICRO logic_summary="Creates ellipsis with MoreHorizontal icon, centered layout and screen reader text" notable_decisions="[]"]
|
|
229
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
230
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
231
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
232
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
233
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
234
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
206
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render the next page navigation link'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
207
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
208
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
209
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
235
210
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
236
211
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
212
|
+
// CIL[END stable_id="~/.framework/src/components/ui/pagination.tsx:paginationnext:function"]
|
|
213
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/pagination.tsx:paginationellipsis:function" type="function" identity="paginationellipsis" parent="~/.framework/src/components/ui/pagination.tsx"]
|
|
214
|
+
// CIL[DOC-MACRO purpose="Render an ellipsis placeholder for truncated page ranges"]
|
|
215
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide a decorative More pages indicator"]
|
|
216
|
+
// CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/pagination.tsx,.framework/src/lib/utils.ts"]
|
|
217
|
+
// CIL[DOC-CONTRACT inputs="className, ...props" outputs="JSX span with MoreHorizontalIcon and screen-reader text" errors="none" side_effects="none"]
|
|
218
|
+
// CIL[DOC-MICRO logic_summary="Renders a centered MoreHorizontalIcon with a hidden More pages label" notable_decisions="[]"]
|
|
219
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
220
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
237
221
|
function PaginationEllipsis({
|
|
238
222
|
className,
|
|
239
223
|
...props
|
|
@@ -254,21 +238,21 @@ function PaginationEllipsis({
|
|
|
254
238
|
</span>
|
|
255
239
|
)
|
|
256
240
|
}
|
|
257
|
-
// CIL[
|
|
258
|
-
// CIL[
|
|
259
|
-
// CIL[DOC-
|
|
260
|
-
// CIL[DOC-
|
|
261
|
-
// CIL[DOC-CONTEXT module="pagination" layer="ui_components" related_files="[]"]
|
|
262
|
-
// CIL[DOC-CONTRACT inputs="none" outputs="Component exports" errors="none" side_effects="Module exports"]
|
|
263
|
-
// CIL[DOC-MICRO logic_summary="Exports all pagination components: Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious" notable_decisions="[]"]
|
|
264
|
-
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
265
|
-
// CIL[DOC-STABILITY stability="stable"]
|
|
266
|
-
// CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
267
|
-
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
268
|
-
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
269
|
-
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
241
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Render an ellipsis placeholder for truncated page ranges'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
242
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
243
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
244
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
270
245
|
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
271
246
|
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
247
|
+
// CIL[END stable_id="~/.framework/src/components/ui/pagination.tsx:paginationellipsis:function"]
|
|
248
|
+
// CIL[BEGIN stable_id="~/.framework/src/components/ui/pagination.tsx:module_exports:module_exports" type="module_exports" identity="module_exports" parent="~/.framework/src/components/ui/pagination.tsx"]
|
|
249
|
+
// CIL[DOC-MACRO purpose="Export pagination subcomponents"]
|
|
250
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Expose named exports for consumers"]
|
|
251
|
+
// CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/pagination.tsx,.framework/src/lib/utils.ts"]
|
|
252
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="named exports for Pagination, PaginationContent, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PaginationEllipsis" errors="none" side_effects="none"]
|
|
253
|
+
// CIL[DOC-MICRO logic_summary="Named export block for all public pagination symbols" notable_decisions="[]"]
|
|
254
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
|
|
255
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
272
256
|
export {
|
|
273
257
|
Pagination,
|
|
274
258
|
PaginationContent,
|
|
@@ -278,4 +262,10 @@ export {
|
|
|
278
262
|
PaginationNext,
|
|
279
263
|
PaginationPrevious,
|
|
280
264
|
}
|
|
281
|
-
// CIL[
|
|
265
|
+
// CIL[DOC-VECTOR type="context" content="purpose='Export pagination subcomponents'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
|
|
266
|
+
// CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
|
|
267
|
+
// CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
|
|
268
|
+
// CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
|
|
269
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
270
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
271
|
+
// CIL[END stable_id="~/.framework/src/components/ui/pagination.tsx:module_exports:module_exports"]
|