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.
Files changed (451) hide show
  1. package/.env.example +76 -0
  2. package/.framework/.spine-manifest.json +19 -0
  3. package/.framework/cli/commands/agents.ts +61 -33
  4. package/.framework/cli/commands/auth.ts +60 -28
  5. package/.framework/cli/commands/create-app.ts +212 -80
  6. package/.framework/cli/commands/dev.ts +184 -68
  7. package/.framework/cli/commands/doctor.ts +324 -152
  8. package/.framework/cli/commands/generate.ts +119 -68
  9. package/.framework/cli/commands/init.ts +141 -242
  10. package/.framework/cli/commands/install-app.ts +1336 -314
  11. package/.framework/cli/commands/items.ts +31 -29
  12. package/.framework/cli/commands/migrate.ts +299 -156
  13. package/.framework/cli/commands/migrations.ts +62 -30
  14. package/.framework/cli/commands/pipelines.ts +31 -29
  15. package/.framework/cli/commands/status.ts +105 -45
  16. package/.framework/cli/commands/system.ts +47 -42
  17. package/.framework/cli/commands/test.ts +161 -102
  18. package/.framework/cli/commands/upgrade.ts +260 -0
  19. package/.framework/cli/commands/validate-app.ts +517 -161
  20. package/.framework/cli/context.ts +117 -85
  21. package/.framework/cli/env-loader.ts +74 -43
  22. package/.framework/cli/index.ts +70 -46
  23. package/.framework/cli/lib/project-files.ts +404 -0
  24. package/.framework/docs/guides/testing-guide.md +1 -1
  25. package/.framework/docs/runtime-types.md +72 -72
  26. package/.framework/functions/_shared/access.ts +84 -0
  27. package/.framework/functions/_shared/agent-runner.ts +5051 -1026
  28. package/.framework/functions/_shared/app-manifest.ts +214 -94
  29. package/.framework/functions/_shared/ast.ts +214 -0
  30. package/.framework/functions/_shared/audit.ts +91 -55
  31. package/.framework/functions/_shared/cil.ts +368 -127
  32. package/.framework/functions/_shared/db.ts +337 -68
  33. package/.framework/functions/_shared/funnel.ts +228 -0
  34. package/.framework/functions/_shared/geo.ts +105 -0
  35. package/.framework/functions/_shared/hash-api-key.ts +94 -17
  36. package/.framework/functions/_shared/index.ts +22 -224
  37. package/.framework/functions/_shared/kb.ts +832 -58
  38. package/.framework/functions/_shared/llm.ts +118 -18
  39. package/.framework/functions/_shared/logging.ts +317 -19
  40. package/.framework/functions/_shared/middleware.ts +701 -131
  41. package/.framework/functions/_shared/notify.ts +70 -0
  42. package/.framework/functions/_shared/outcomes.ts +34 -19
  43. package/.framework/functions/_shared/permissions.ts +501 -315
  44. package/.framework/functions/_shared/pipeline-runner.ts +704 -155
  45. package/.framework/functions/_shared/principal.ts +436 -263
  46. package/.framework/functions/_shared/rate-limit.ts +233 -0
  47. package/.framework/functions/_shared/resolve-credentials.ts +86 -19
  48. package/.framework/functions/_shared/resolve-ids.ts +203 -139
  49. package/.framework/functions/_shared/retry-deliveries.ts +51 -16
  50. package/.framework/functions/_shared/schema-utils.ts +602 -521
  51. package/.framework/functions/_shared/security.ts +345 -0
  52. package/.framework/functions/_shared/testing.ts +197 -172
  53. package/.framework/functions/_shared/tracing.ts +351 -21
  54. package/.framework/functions/_shared/trigger-engine.ts +425 -136
  55. package/.framework/functions/_shared/webhook-registration.ts +71 -70
  56. package/.framework/functions/_shared/webhook-registry.ts +126 -83
  57. package/.framework/functions/account-nodes.ts +30 -30
  58. package/.framework/functions/adapters/generic-webhook-inbound.ts +49 -16
  59. package/.framework/functions/adapters/generic-webhook-outbound.ts +17 -17
  60. package/.framework/functions/adapters/openai-outbound.ts +15 -16
  61. package/.framework/functions/admin-data.ts +596 -173
  62. package/.framework/functions/admin-funnel.ts +64 -60
  63. package/.framework/functions/admin-install-funnel.ts +84 -66
  64. package/.framework/functions/admin-signals.ts +69 -51
  65. package/.framework/functions/ai-agents.ts +431 -106
  66. package/.framework/functions/ai-interactions.ts +186 -112
  67. package/.framework/functions/api-keys.ts +107 -107
  68. package/.framework/functions/apps.ts +154 -136
  69. package/.framework/functions/auth.ts +83 -65
  70. package/.framework/functions/cil-agent-ingest.ts +189 -232
  71. package/.framework/functions/cil-agent.ts +433 -177
  72. package/.framework/functions/cil-callmap.ts +642 -430
  73. package/.framework/functions/cil-config.ts +139 -135
  74. package/.framework/functions/cil-context.ts +214 -127
  75. package/.framework/functions/cil-doc.ts +587 -458
  76. package/.framework/functions/cil-embeddings.ts +453 -364
  77. package/.framework/functions/cil-graph.ts +427 -142
  78. package/.framework/functions/cil-ingest.ts +1418 -1154
  79. package/.framework/functions/cil-pipeline.ts +276 -21
  80. package/.framework/functions/cil-project.ts +659 -132
  81. package/.framework/functions/cil-validate.ts +198 -164
  82. package/.framework/functions/debug-auth.ts +57 -55
  83. package/.framework/functions/deliveries.ts +80 -21
  84. package/.framework/functions/embeddings.ts +1023 -318
  85. package/.framework/functions/eval-harness.ts +146 -108
  86. package/.framework/functions/integration-outbound.ts +205 -75
  87. package/.framework/functions/integration-routes.ts +128 -23
  88. package/.framework/functions/integrations.ts +125 -100
  89. package/.framework/functions/invites.ts +1095 -460
  90. package/.framework/functions/item-progress.ts +158 -102
  91. package/.framework/functions/kb.ts +34 -10
  92. package/.framework/functions/logs.ts +133 -133
  93. package/.framework/functions/observability.ts +152 -122
  94. package/.framework/functions/pipeline-executions.ts +147 -132
  95. package/.framework/functions/pipelines.ts +134 -119
  96. package/.framework/functions/prompt-configs.ts +96 -80
  97. package/.framework/functions/roles.ts +112 -82
  98. package/.framework/functions/security.ts +450 -0
  99. package/.framework/functions/system-cron.ts +117 -80
  100. package/.framework/functions/system.ts +158 -98
  101. package/.framework/functions/tests.ts +29 -29
  102. package/.framework/functions/timers.ts +94 -95
  103. package/.framework/functions/trigger-scheduler.ts +10 -0
  104. package/.framework/functions/triggers.ts +179 -149
  105. package/.framework/functions/types.ts +137 -125
  106. package/.framework/mcp/index.ts +133 -0
  107. package/.framework/mcp/load-env.ts +60 -0
  108. package/.framework/mcp/shared/app-manifest.ts +275 -0
  109. package/.framework/mcp/shared/db.ts +477 -0
  110. package/.framework/mcp/shared/kb.ts +118 -0
  111. package/.framework/mcp/tools/architect.ts +431 -0
  112. package/.framework/mcp/tools/cil/context.ts +345 -0
  113. package/.framework/mcp/tools/cil/graph.ts +242 -0
  114. package/.framework/mcp/tools/cil/ingest.ts +1217 -0
  115. package/.framework/mcp/tools/cil/pipeline-orchestrator.ts +693 -0
  116. package/.framework/mcp/tools/cil/pipeline.ts +767 -0
  117. package/.framework/mcp/tools/cil/project.ts +791 -0
  118. package/.framework/mcp/tools/cil/retrieval.ts +336 -0
  119. package/.framework/mcp/tools/cil/search-core.ts +454 -0
  120. package/.framework/mcp/tools/cil/search.ts +97 -0
  121. package/.framework/mcp/tools/cil/suggest.ts +186 -0
  122. package/.framework/mcp/tools/cil/validate.ts +1369 -0
  123. package/.framework/mcp/tools/kb/delete.ts +139 -0
  124. package/.framework/mcp/tools/kb/index.ts +52 -0
  125. package/.framework/mcp/tools/kb/ingest.ts +84 -0
  126. package/.framework/mcp/tools/kb/list-types.ts +102 -0
  127. package/.framework/mcp/tools/kb/publish.ts +100 -0
  128. package/.framework/mcp/tools/kb/reindex.ts +86 -0
  129. package/.framework/mcp/tools/kb/revoke.ts +85 -0
  130. package/.framework/mcp/tools/kb/search.ts +101 -0
  131. package/.framework/mcp/tools/kb/upsert.ts +125 -0
  132. package/.framework/mcp/tools/observability.ts +510 -0
  133. package/.framework/migrations/001_core_schema.sql +15 -0
  134. package/.framework/migrations/002_core_rls_and_functions.sql +15 -0
  135. package/.framework/migrations/003_core_system_data.sql +16 -1
  136. package/.framework/migrations/004_core_rpc_and_broker.sql +17 -1
  137. package/.framework/migrations/005_core_observability.sql +17 -1
  138. package/.framework/migrations/006_security_hardening_rls.sql +15 -0
  139. package/.framework/migrations/007_kb_article_list.sql +17 -1
  140. package/.framework/migrations/008_items_target.sql +15 -0
  141. package/.framework/migrations/009_roles_slug_unique.sql +15 -0
  142. package/.framework/migrations/010_auth_user_trigger.sql +15 -0
  143. package/.framework/migrations/011_spine_system_account.sql +16 -0
  144. package/.framework/migrations/012_service_role_grants.sql +16 -0
  145. package/.framework/migrations/013_get_account_apps_role_filter.sql +15 -0
  146. package/.framework/migrations/014_apps_required_roles.sql +16 -0
  147. package/.framework/migrations/015_types_kind_slug_unique.sql +15 -0
  148. package/.framework/migrations/016_cil_types.sql +281 -0
  149. package/.framework/migrations/017_cil_stable_ids.sql +37 -0
  150. package/.framework/migrations/018_runtime_tables.sql +129 -0
  151. package/.framework/migrations/019_agent_prompt_columns.sql +56 -0
  152. package/.framework/migrations/020_schema_reconciliation.sql +67 -0
  153. package/.framework/migrations/021_kb_embedding_lifecycle.sql +31 -0
  154. package/.framework/migrations/032_cil_status_migration.sql +73 -0
  155. package/.framework/migrations/033_cil_versioning.sql +73 -0
  156. package/.framework/migrations/034_match_embeddings_knn.sql +115 -0
  157. package/.framework/migrations/035_rate_limits.sql +55 -0
  158. package/.framework/migrations/036_demo_record_flags.sql +72 -0
  159. package/.framework/migrations/037_kb_types_canonical.sql +244 -0
  160. package/.framework/migrations/038_drop_demo_record_flags.sql +38 -0
  161. package/.framework/migrations/042_registration_hierarchy.sql +309 -0
  162. package/.framework/migrations/043_policy_actor_cleanup.sql +39 -0
  163. package/.framework/migrations/044_match_embeddings_filtered_knn.sql +151 -0
  164. package/.framework/migrations/045_security_critical_rls.sql +139 -0
  165. package/.framework/migrations/046_security_missing_rls.sql +79 -0
  166. package/.framework/migrations/047_people_updated_by.sql +27 -0
  167. package/.framework/migrations/048_watcher_last_seen_at.sql +24 -0
  168. package/.framework/migrations/049_security_blocklist.sql +148 -0
  169. package/.framework/migrations/050_notifications.sql +49 -0
  170. package/.framework/migrations/051_message_agent_fields.sql +74 -0
  171. package/.framework/migrations/052_registration_security.sql +421 -0
  172. package/.framework/migrations/053_builtin_action_seeds.sql +66 -0
  173. package/.framework/migrations/054_kb_ingest_lease.sql +157 -0
  174. package/.framework/migrations/055_type_id_drift_reconciliation.sql +33 -0
  175. package/.framework/migrations/056_slug_column_reconciliation.sql +38 -0
  176. package/.framework/migrations/057_pipelines_slug_identity.sql +14 -0
  177. package/.framework/migrations/058_account_data_field_declarations.sql +53 -0
  178. package/.framework/migrations/059_registration_placement_fixes.sql +269 -0
  179. package/.framework/migrations/060_account_person_record_permissions.sql +38 -0
  180. package/.framework/migrations/061_fk_dedup.sql +32 -0
  181. package/.framework/public/spine-logo.svg +10 -3
  182. package/.framework/scripts/app-install-cli.ts +190 -93
  183. package/.framework/scripts/assemble-frontend.sh +127 -44
  184. package/.framework/scripts/assemble-functions.sh +128 -30
  185. package/.framework/scripts/boundary-check.sh +6 -2
  186. package/.framework/scripts/build-manifest.sh +24 -68
  187. package/.framework/scripts/check-core-integrity.sh +15 -76
  188. package/.framework/scripts/checksum-manifest.mts +343 -0
  189. package/.framework/scripts/cil-migrate-markers.ts +403 -0
  190. package/.framework/scripts/fix-cil-markers.mjs +176 -0
  191. package/.framework/scripts/verify-integrity.sh +21 -57
  192. package/.framework/scripts/verify-manifest.mts +305 -0
  193. package/.framework/seeds/types/funnel_signal_use.json +74 -21
  194. package/.framework/seeds/types/spine_instance.json +73 -21
  195. package/.framework/src/App.tsx +118 -72
  196. package/.framework/src/apps/admin/index.tsx +855 -58
  197. package/.framework/src/components/AppWrapper.tsx +43 -45
  198. package/.framework/src/components/CustomAppLoader.tsx +160 -116
  199. package/.framework/src/components/admin/AdminListPage.tsx +46 -44
  200. package/.framework/src/components/admin/AdminSidebar.tsx +57 -47
  201. package/.framework/src/components/admin/AdminStatsCard.tsx +46 -44
  202. package/.framework/src/components/admin/PageInstructions.tsx +98 -2
  203. package/.framework/src/components/admin/SortableTableHeader.tsx +44 -45
  204. package/.framework/src/components/app-shell/GenericAppShell.tsx +64 -65
  205. package/.framework/src/components/app-shell/GenericDetailPage.tsx +44 -47
  206. package/.framework/src/components/app-shell/GenericListPage.tsx +45 -49
  207. package/.framework/src/components/app-sidebar.tsx +42 -45
  208. package/.framework/src/components/auth/ProtectedRoute.tsx +48 -41
  209. package/.framework/src/components/auth/TurnstileWidget.tsx +27 -0
  210. package/.framework/src/components/kb/KBArticleEditor.tsx +231 -22
  211. package/.framework/src/components/kb/KBArticleList.tsx +251 -10
  212. package/.framework/src/components/layout/AppShell.tsx +51 -45
  213. package/.framework/src/components/layout/Header.tsx +42 -43
  214. package/.framework/src/components/layout/Layout.tsx +46 -46
  215. package/.framework/src/components/layout/Sidebar.tsx +196 -96
  216. package/.framework/src/components/runtime/DataDetailHeader.tsx +55 -30
  217. package/.framework/src/components/runtime/DataDetailPage.tsx +31 -269
  218. package/.framework/src/components/runtime/DataFilters.tsx +49 -74
  219. package/.framework/src/components/runtime/DataHeader.tsx +53 -32
  220. package/.framework/src/components/runtime/DataListPage.tsx +51 -155
  221. package/.framework/src/components/runtime/DataStats.tsx +66 -44
  222. package/.framework/src/components/runtime/DataTable.tsx +49 -149
  223. package/.framework/src/components/runtime/SchemaDetailForm.tsx +45 -75
  224. package/.framework/src/components/runtime/index.ts +119 -16
  225. package/.framework/src/components/search-form.tsx +46 -29
  226. package/.framework/src/components/shared/AgentView.tsx +65 -48
  227. package/.framework/src/components/shared/FieldRenderer.tsx +144 -50
  228. package/.framework/src/components/shared/InviteManager.tsx +207 -97
  229. package/.framework/src/components/shared/MemberList.tsx +97 -0
  230. package/.framework/src/components/shared/SchemaFields.tsx +107 -86
  231. package/.framework/src/components/ui/DataTable.tsx +80 -68
  232. package/.framework/src/components/ui/Form.tsx +157 -146
  233. package/.framework/src/components/ui/ItemCard.tsx +74 -67
  234. package/.framework/src/components/ui/ItemListView.tsx +73 -68
  235. package/.framework/src/components/ui/LoadingSpinner.tsx +43 -48
  236. package/.framework/src/components/ui/Modal.tsx +78 -68
  237. package/.framework/src/components/ui/RichTextEditor.tsx +89 -69
  238. package/.framework/src/components/ui/accordion.tsx +85 -86
  239. package/.framework/src/components/ui/alert-dialog.tsx +197 -184
  240. package/.framework/src/components/ui/alert.tsx +105 -94
  241. package/.framework/src/components/ui/aspect-ratio.tsx +57 -43
  242. package/.framework/src/components/ui/avatar.tsx +122 -107
  243. package/.framework/src/components/ui/badge.tsx +60 -55
  244. package/.framework/src/components/ui/breadcrumb.tsx +127 -128
  245. package/.framework/src/components/ui/button-group.tsx +86 -72
  246. package/.framework/src/components/ui/button.tsx +71 -50
  247. package/.framework/src/components/ui/calendar.tsx +72 -57
  248. package/.framework/src/components/ui/card.tsx +136 -129
  249. package/.framework/src/components/ui/carousel.tsx +226 -107
  250. package/.framework/src/components/ui/chart.tsx +252 -147
  251. package/.framework/src/components/ui/checkbox.tsx +43 -44
  252. package/.framework/src/components/ui/collapsible.tsx +86 -71
  253. package/.framework/src/components/ui/combobox.tsx +282 -249
  254. package/.framework/src/components/ui/command.tsx +158 -146
  255. package/.framework/src/components/ui/context-menu.tsx +239 -240
  256. package/.framework/src/components/ui/dialog.tsx +174 -157
  257. package/.framework/src/components/ui/direction.tsx +72 -56
  258. package/.framework/src/components/ui/drawer.tsx +168 -169
  259. package/.framework/src/components/ui/dropdown-menu.tsx +254 -223
  260. package/.framework/src/components/ui/empty.tsx +131 -120
  261. package/.framework/src/components/ui/field.tsx +205 -173
  262. package/.framework/src/components/ui/hover-card.tsx +71 -72
  263. package/.framework/src/components/ui/input-group.tsx +148 -133
  264. package/.framework/src/components/ui/input-otp.tsx +99 -86
  265. package/.framework/src/components/ui/input.tsx +43 -41
  266. package/.framework/src/components/ui/item.tsx +207 -185
  267. package/.framework/src/components/ui/kbd.tsx +57 -56
  268. package/.framework/src/components/ui/label.tsx +45 -41
  269. package/.framework/src/components/ui/menubar.tsx +268 -236
  270. package/.framework/src/components/ui/native-select.tsx +85 -86
  271. package/.framework/src/components/ui/navigation-menu.tsx +166 -156
  272. package/.framework/src/components/ui/pagination.tsx +131 -141
  273. package/.framework/src/components/ui/popover.tsx +125 -128
  274. package/.framework/src/components/ui/progress.tsx +47 -44
  275. package/.framework/src/components/ui/radio-group.tsx +60 -55
  276. package/.framework/src/components/ui/resizable.tsx +85 -72
  277. package/.framework/src/components/ui/scroll-area.tsx +57 -58
  278. package/.framework/src/components/ui/select.tsx +182 -169
  279. package/.framework/src/components/ui/separator.tsx +42 -43
  280. package/.framework/src/components/ui/sheet.tsx +170 -159
  281. package/.framework/src/components/ui/sidebar.tsx +395 -398
  282. package/.framework/src/components/ui/skeleton.tsx +42 -43
  283. package/.framework/src/components/ui/slider.tsx +61 -44
  284. package/.framework/src/components/ui/sonner.tsx +44 -44
  285. package/.framework/src/components/ui/spinner.tsx +47 -42
  286. package/.framework/src/components/ui/switch.tsx +56 -42
  287. package/.framework/src/components/ui/table-primitives.tsx +272 -132
  288. package/.framework/src/components/ui/table.tsx +140 -142
  289. package/.framework/src/components/ui/tabs.tsx +110 -93
  290. package/.framework/src/components/ui/textarea.tsx +43 -44
  291. package/.framework/src/components/ui/toggle-group.tsx +87 -71
  292. package/.framework/src/components/ui/toggle.tsx +56 -56
  293. package/.framework/src/components/ui/tooltip.tsx +99 -85
  294. package/.framework/src/contexts/AppContext.tsx +166 -114
  295. package/.framework/src/contexts/AuthContext.tsx +232 -137
  296. package/.framework/src/hooks/use-mobile.ts +43 -44
  297. package/.framework/src/hooks/useApi.ts +185 -172
  298. package/.framework/src/hooks/useAppPath.ts +31 -29
  299. package/.framework/src/hooks/useApps.ts +77 -42
  300. package/.framework/src/hooks/useEntityList.ts +66 -29
  301. package/.framework/src/hooks/useEntityRecord.ts +76 -32
  302. package/.framework/src/hooks/useForm.ts +62 -30
  303. package/.framework/src/hooks/useListSchema.ts +60 -43
  304. package/.framework/src/hooks/useSchemaRecord.ts +115 -95
  305. package/.framework/src/lib/api.ts +258 -134
  306. package/.framework/src/lib/registration.ts +181 -0
  307. package/.framework/src/lib/supabase.ts +118 -81
  308. package/.framework/src/lib/utils.ts +266 -266
  309. package/.framework/src/main.tsx +43 -44
  310. package/.framework/src/pages/DashboardPage.tsx +44 -43
  311. package/.framework/src/pages/NoAppPage.tsx +50 -0
  312. package/.framework/src/pages/NotFoundPage.tsx +32 -29
  313. package/.framework/src/pages/SetupPage.tsx +34 -33
  314. package/.framework/src/pages/admin/AIAgentDetailPage.tsx +69 -58
  315. package/.framework/src/pages/admin/AIAgentsPage.tsx +43 -40
  316. package/.framework/src/pages/admin/APIKeyDetailPage.tsx +63 -55
  317. package/.framework/src/pages/admin/APIKeysPage.tsx +44 -42
  318. package/.framework/src/pages/admin/AlertsConfigPage.tsx +117 -94
  319. package/.framework/src/pages/admin/AppDetailPage.tsx +48 -42
  320. package/.framework/src/pages/admin/AppsPage.tsx +45 -42
  321. package/.framework/src/pages/admin/DeliveriesPage.tsx +49 -17
  322. package/.framework/src/pages/admin/DesignedPage.tsx +31 -30
  323. package/.framework/src/pages/admin/EmbeddingDetailPage.tsx +58 -0
  324. package/.framework/src/pages/admin/EmbeddingsPage.tsx +49 -0
  325. package/.framework/src/pages/admin/ExtendedShadcnTestPage.tsx +31 -29
  326. package/.framework/src/pages/admin/IncrementalShadcnTestPage.tsx +46 -29
  327. package/.framework/src/pages/admin/IntegratedDashboard.tsx +32 -29
  328. package/.framework/src/pages/admin/IntegrationDetailPage.tsx +68 -55
  329. package/.framework/src/pages/admin/IntegrationsPage.tsx +45 -42
  330. package/.framework/src/pages/admin/InvitesPage.tsx +60 -44
  331. package/.framework/src/pages/admin/LogsPage.tsx +87 -137
  332. package/.framework/src/pages/admin/MinimalShadcnTestPage.tsx +31 -29
  333. package/.framework/src/pages/admin/ObservabilityDashboard.tsx +150 -89
  334. package/.framework/src/pages/admin/PipelineDetailPage.tsx +77 -104
  335. package/.framework/src/pages/admin/PipelineExecutionsPage.tsx +44 -43
  336. package/.framework/src/pages/admin/PipelinesPage.tsx +59 -145
  337. package/.framework/src/pages/admin/PromptConfigDetailPage.tsx +53 -42
  338. package/.framework/src/pages/admin/PromptConfigsPage.tsx +47 -117
  339. package/.framework/src/pages/admin/ProperlyDesignedPage.tsx +31 -44
  340. package/.framework/src/pages/admin/RoleDetailPage.tsx +49 -92
  341. package/.framework/src/pages/admin/RolesPage.tsx +47 -164
  342. package/.framework/src/pages/admin/SecurityPage.tsx +310 -0
  343. package/.framework/src/pages/admin/SelectTestPage.tsx +30 -32
  344. package/.framework/src/pages/admin/ShadcnTestPage.tsx +37 -44
  345. package/.framework/src/pages/admin/SimpleDashboard.tsx +32 -44
  346. package/.framework/src/pages/admin/TestRunDetailPage.tsx +97 -44
  347. package/.framework/src/pages/admin/TestingDashboard.tsx +126 -71
  348. package/.framework/src/pages/admin/TimerDetailPage.tsx +67 -55
  349. package/.framework/src/pages/admin/TimersPage.tsx +44 -42
  350. package/.framework/src/pages/admin/TriggerDetailPage.tsx +47 -42
  351. package/.framework/src/pages/admin/TriggersPage.tsx +58 -57
  352. package/.framework/src/pages/admin/TypeDetailPage.tsx +91 -55
  353. package/.framework/src/pages/admin/TypesPage.tsx +45 -42
  354. package/.framework/src/pages/admin/cil/CILAgentPage.tsx +258 -128
  355. package/.framework/src/pages/admin/cil/CILChunkDetailPage.tsx +127 -123
  356. package/.framework/src/pages/admin/cil/CILDashboardPage.tsx +308 -235
  357. package/.framework/src/pages/admin/cil/CILFileListPage.tsx +159 -110
  358. package/.framework/src/pages/admin/cil/CILFileSelectPage.tsx +432 -0
  359. package/.framework/src/pages/admin/cil/CILGraphPage.tsx +200 -178
  360. package/.framework/src/pages/admin/cil/CILIngestionPage.tsx +286 -239
  361. package/.framework/src/pages/admin/cil/CILProjectsPage.tsx +211 -90
  362. package/.framework/src/pages/admin/cil/CILSearchPage.tsx +156 -143
  363. package/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx +379 -0
  364. package/.framework/src/pages/admin/cil/CILVersionsPage.tsx +337 -0
  365. package/.framework/src/pages/admin/cil/FlexiblePipelinePage.tsx +219 -214
  366. package/.framework/src/pages/admin/kb/KBAdminPage.tsx +64 -0
  367. package/.framework/src/pages/auth/AuthConfirmPage.tsx +135 -65
  368. package/.framework/src/pages/auth/ForgotPasswordPage.tsx +39 -31
  369. package/.framework/src/pages/auth/LoginPage.tsx +38 -32
  370. package/.framework/src/pages/auth/PendingApprovalPage.tsx +31 -28
  371. package/.framework/src/pages/auth/RegisterPage.tsx +429 -155
  372. package/.framework/src/pages/spine-framework/APIPage.tsx +33 -30
  373. package/.framework/src/pages/spine-framework/CLIPage.tsx +32 -30
  374. package/.framework/src/types/auth.ts +101 -93
  375. package/.framework/src/types/types.ts +283 -262
  376. package/.framework/templates/project.json +87 -0
  377. package/.framework/templates/spine.config.neutral.json +7 -0
  378. package/.framework/tests/api/api-surface.test.ts +381 -0
  379. package/.framework/tests/fixtures/seed.ts +427 -0
  380. package/.framework/tests/fixtures/teardown.ts +228 -0
  381. package/.framework/tests/reporter.ts +351 -0
  382. package/.framework/tests/setup.ts +135 -0
  383. package/.framework/tests/ui/ui-sweep.ts +278 -0
  384. package/.framework/tests/unit/admin-data-logger.test.ts +310 -0
  385. package/.framework/tests/unit/agent-runner.test.ts +2389 -0
  386. package/.framework/tests/unit/ai-interactions.test.ts +81 -0
  387. package/.framework/tests/unit/app-manifest.test.ts +359 -0
  388. package/.framework/tests/unit/assembly-scripts.test.ts +172 -0
  389. package/.framework/tests/unit/cil-determinism.test.ts +85 -0
  390. package/.framework/tests/unit/core-isolation.test.ts +153 -0
  391. package/.framework/tests/unit/funnel-signals.test.ts +135 -0
  392. package/.framework/tests/unit/install-app.test.ts +1759 -0
  393. package/.framework/tests/unit/invites-security.test.ts +572 -0
  394. package/.framework/tests/unit/kb-ingest-lease.test.ts +287 -0
  395. package/.framework/tests/unit/kb-search.test.ts +119 -0
  396. package/.framework/tests/unit/migrate.test.ts +509 -0
  397. package/.framework/tests/unit/notify.test.ts +136 -0
  398. package/.framework/tests/unit/permissions.test.ts +269 -0
  399. package/.framework/tests/unit/pipeline-runner.test.ts +755 -0
  400. package/.framework/tests/unit/principal-cache.test.ts +138 -0
  401. package/.framework/tests/unit/retrieval-golden.test.ts +520 -0
  402. package/.framework/tests/unit/runtime-isolation.test.ts +642 -0
  403. package/.framework/tests/unit/schema-utils.test.ts +225 -0
  404. package/.framework/tests/unit/trigger-engine.test.ts +513 -0
  405. package/.framework/tests/unit/validate-app.test.ts +527 -0
  406. package/README.md +34 -3
  407. package/bin/spine-framework.cjs +1 -0
  408. package/config/tailwind.config.cjs +7 -0
  409. package/config/tsconfig.functions.json +42 -0
  410. package/config/tsconfig.json +37 -9
  411. package/config/vite.config.ts +31 -2
  412. package/netlify.toml +31 -3
  413. package/package.json +46 -29
  414. package/scripts/assemble-frontend.sh +127 -44
  415. package/scripts/assemble-functions.sh +127 -29
  416. package/scripts/boundary-check.sh +6 -2
  417. package/scripts/build-manifest.sh +24 -68
  418. package/scripts/checksum-manifest.mts +345 -0
  419. package/scripts/dev-clean.sh +86 -0
  420. package/scripts/dev-netlify.sh +49 -0
  421. package/scripts/netlify-dev-wrapper.sh +2 -0
  422. package/scripts/verify-install.ts +358 -0
  423. package/scripts/verify-integrity.sh +21 -57
  424. package/scripts/verify-manifest.mts +305 -0
  425. package/templates/project/gitignore +45 -0
  426. package/{config → templates/project}/package-lock.json +22335 -9366
  427. package/vitest.config.ts +46 -0
  428. package/.framework/public/spine.config.json +0 -91
  429. package/config/deno.lock +0 -108
  430. package/config/tsconfig.node.tsbuildinfo +0 -1
  431. package/config/tsconfig.tsbuildinfo +0 -1
  432. package/config/vite.config.d.ts +0 -2
  433. package/custom/.devin/AGENT.md +0 -357
  434. package/custom/.devin/skills/install-app/SKILL.md +0 -39
  435. package/custom/.devin/skills/spine-workbench-discovery/SKILL.md +0 -39
  436. package/custom/.devin/skills/spine-workbench-idea/SKILL.md +0 -36
  437. package/custom/.devin/skills/spine-workbench-implement/SKILL.md +0 -46
  438. package/custom/.devin/skills/spine-workbench-initiative/SKILL.md +0 -28
  439. package/custom/.devin/skills/spine-workbench-plan/SKILL.md +0 -38
  440. package/custom/.devin/workflows/app-install.yaml +0 -83
  441. package/custom/README.md +0 -79
  442. package/docs/README.md +0 -15
  443. package/scripts/app-install-cli.ts +0 -286
  444. package/scripts/check-core-integrity.sh +0 -82
  445. package/scripts/ingest-chunks.cjs +0 -202
  446. package/scripts/kb-chunk-parser.cjs +0 -312
  447. package/scripts/kb-chunk-parser.ts +0 -330
  448. package/scripts/kb-ingest-docs.ts +0 -203
  449. package/scripts/load-test-app-install.ts +0 -484
  450. package/scripts/test-login.js +0 -33
  451. 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[END chunk_id="pagination_module_header_1783758409"]
32
- // CIL[BEGIN chunk_id="pagination_pagination_1783758409" type="function" identity="Pagination" parent="none"]
33
- // CIL[DOC-MACRO purpose="Root pagination navigation container"]
34
- // CIL[DOC-RESPONSIBILITY responsibility="Provide semantic navigation container with accessibility"]
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[END chunk_id="pagination_pagination_1783758409"]
58
- // CIL[BEGIN chunk_id="pagination_paginationcontent_1783758409" type="function" identity="PaginationContent" parent="none"]
59
- // CIL[DOC-MACRO purpose="Content container for pagination items"]
60
- // CIL[DOC-RESPONSIBILITY responsibility="Provide styled list container with flex layout"]
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[END chunk_id="pagination_paginationcontent_1783758409"]
85
- // CIL[BEGIN chunk_id="pagination_paginationitem_1783758409" type="function" identity="PaginationItem" parent="none"]
86
- // CIL[DOC-MACRO purpose="Individual pagination item container"]
87
- // CIL[DOC-RESPONSIBILITY responsibility="Provide list item wrapper for pagination elements"]
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[END chunk_id="pagination_paginationitem_1783758409"]
103
- // CIL[BEGIN chunk_id="pagination_paginationlinkprops_1783758409" type="types" identity="PaginationLinkProps" parent="none"]
104
- // CIL[DOC-MACRO purpose="Define TypeScript interface for pagination links"]
105
- // CIL[DOC-RESPONSIBILITY responsibility="Provide type definition for pagination link properties"]
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[END chunk_id="pagination_paginationlinkprops_1783758409"]
122
- // CIL[BEGIN chunk_id="pagination_paginationlink_1783758409" type="function" identity="PaginationLink" parent="none"]
123
- // CIL[DOC-MACRO purpose="Clickable pagination link with active state"]
124
- // CIL[DOC-RESPONSIBILITY responsibility="Provide styled link with active state and accessibility"]
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[END chunk_id="pagination_paginationlink_1783758409"]
159
- // CIL[BEGIN chunk_id="pagination_paginationprevious_1783758409" type="function" identity="PaginationPrevious" parent="none"]
160
- // CIL[DOC-MACRO purpose="Previous page navigation button"]
161
- // CIL[DOC-RESPONSIBILITY responsibility="Provide styled previous button with icon and text"]
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[END chunk_id="pagination_paginationprevious_1783758409"]
191
- // CIL[BEGIN chunk_id="pagination_paginationnext_1783758409" type="function" identity="PaginationNext" parent="none"]
192
- // CIL[DOC-MACRO purpose="Next page navigation button"]
193
- // CIL[DOC-RESPONSIBILITY responsibility="Provide styled next button with icon and text"]
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[END chunk_id="pagination_paginationnext_1783758409"]
223
- // CIL[BEGIN chunk_id="pagination_paginationellipsis_1783758409" type="function" identity="PaginationEllipsis" parent="none"]
224
- // CIL[DOC-MACRO purpose="Ellipsis indicator for hidden pages"]
225
- // CIL[DOC-RESPONSIBILITY responsibility="Provide styled ellipsis with icon and accessibility"]
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[END chunk_id="pagination_paginationellipsis_1783758409"]
258
- // CIL[BEGIN chunk_id="pagination_exports_1783758409" type="exports" identity="exports" parent="none"]
259
- // CIL[DOC-MACRO purpose="Export all pagination components for public API"]
260
- // CIL[DOC-RESPONSIBILITY responsibility="Provide module exports for pagination component library"]
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[END chunk_id="pagination_exports_1783758409"]
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"]