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
@@ -8,38 +8,36 @@
8
8
 
9
9
 
10
10
 
11
- // CIL[BEGIN chunk_id="table-primitives_module_header_1783757774" type="module_header" identity="module_header" parent="none"]
12
- // CIL[DOC-MACRO purpose="Import dependencies for table primitives"]
13
- // CIL[DOC-RESPONSIBILITY responsibility="Import React and utility function"]
14
- // CIL[DOC-CONTEXT module="table-primitives" layer="frontend-component" related_files="[\".framework/migrations/015_simplify_apps_table.sql\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/functions/_shared/principal.ts\",\"\\\"]"]
15
- // CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
16
- // CIL[DOC-MICRO logic_summary="Import React and cn utility function" notable_decisions="[]"]
17
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
11
+
12
+
13
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/table-primitives.tsx:module_header:module_header" type="module_header" identity="module_header" parent=""]
14
+ // CIL[DOC-MACRO purpose="Provides styled React table primitive components for use across the UI"]
15
+ // CIL[DOC-RESPONSIBILITY responsibility="Import dependencies and export the table component set"]
16
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/lib/utils.ts"]
17
+ // CIL[DOC-CONTRACT inputs="none" outputs="Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption" errors="none" side_effects="none"]
18
+ // CIL[DOC-MICRO logic_summary="Import React and cn utility, then re-export all table subcomponents" notable_decisions="[]"]
19
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
18
20
  // CIL[DOC-STABILITY stability="stable"]
19
- // CIL[DOC-AUDIENCE audience="developer"]
20
- // CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 0. Direct calls: 0. Related files: .framework/migrations/015_simplify_apps_table.sql, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/principal.ts, \."]
21
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
22
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
23
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
24
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
25
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
21
+ // CIL[DOC-AUDIENCE audience="ui-developers,framework"]
22
+
26
23
  import * as React from 'react'
27
24
  import { cn } from '../../lib/utils'
28
- // CIL[END chunk_id="table-primitives_module_header_1783757774"]
29
- // CIL[BEGIN chunk_id="table-primitives_table_1783757774" type="function" identity="Table" parent="none"]
30
- // CIL[DOC-MACRO purpose="Root table component with overflow handling"]
31
- // CIL[DOC-RESPONSIBILITY responsibility="Render table with responsive overflow wrapper"]
32
- // CIL[DOC-CONTEXT module="table-primitives" layer="frontend-component" related_files="[\".framework/src/components/ui/dialog.tsx\",\".framework/migrations/015_simplify_apps_table.sql\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
33
- // CIL[DOC-CONTRACT inputs="none" outputs="JSX table wrapper" errors="none" side_effects="renders UI elements"]
34
- // CIL[DOC-MICRO logic_summary="Wrap table in responsive div with overflow handling" notable_decisions="[]"]
35
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
36
- // CIL[DOC-STABILITY stability="stable"]
37
- // CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/ui/dialog.tsx, .framework/migrations/015_simplify_apps_table.sql, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
38
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
39
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
40
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
25
+ // CIL[DOC-VECTOR type="context" content="purpose='Provides styled React table primitive components for use across the UI'; No verified external callers; imports: .framework/src/lib/utils.ts"]
26
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
27
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
28
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
41
29
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
42
30
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
31
+ // CIL[END stable_id="~/.framework/src/components/ui/table-primitives.tsx:module_header:module_header"]
32
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/table-primitives.tsx:table:constant" type="constant" identity="table" parent="module_header"]
33
+ // CIL[DOC-MACRO purpose="Renders a scrollable table wrapper with merged class names"]
34
+ // CIL[DOC-RESPONSIBILITY responsibility="Render the root Table component"]
35
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/table-primitives.tsx,.framework/src/lib/utils.ts"]
36
+ // CIL[DOC-CONTRACT inputs="className, ...props" outputs="JSX table element" errors="none" side_effects="none"]
37
+ // CIL[DOC-MICRO logic_summary="Forward ref to an overflow-auto div containing a styled table" notable_decisions="[]"]
38
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
39
+ // CIL[DOC-STABILITY stability="stable"]
40
+
43
41
  const Table = React.forwardRef<
44
42
  HTMLTableElement,
45
43
  React.HTMLAttributes<HTMLTableElement>
@@ -52,44 +50,78 @@ const Table = React.forwardRef<
52
50
  />
53
51
  </div>
54
52
  ))
55
- Table.displayName = 'Table'
56
- // CIL[END chunk_id="table-primitives_table_1783757774"]
57
- // CIL[BEGIN chunk_id="table-primitives_tableheader_1783757774" type="function" identity="TableHeader" parent="none"]
58
- // CIL[DOC-MACRO purpose="Table header section component"]
59
- // CIL[DOC-RESPONSIBILITY responsibility="Render table header with bottom border styling"]
60
- // CIL[DOC-CONTEXT module="table-primitives" layer="frontend-component" related_files="[\".framework/migrations/015_simplify_apps_table.sql\",\".framework/src/components/ui/dialog.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"\\\"]"]
61
- // CIL[DOC-CONTRACT inputs="none" outputs="JSX thead element" errors="none" side_effects="renders UI elements"]
62
- // CIL[DOC-MICRO logic_summary="Render thead with bottom border on rows" notable_decisions="[]"]
63
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
53
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders a scrollable table wrapper with merged class names'; No verified external callers; imports: .framework/src/lib/utils.ts"]
54
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
55
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
56
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
57
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
58
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
59
+ // CIL[END stable_id="~/.framework/src/components/ui/table-primitives.tsx:table:constant"]
60
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/table-primitives.tsx:table_display_name:assignment" type="assignment" identity="table_display_name" parent="module_header"]
61
+ // CIL[DOC-MACRO purpose="Assigns a human-readable display name to Table"]
62
+ // CIL[DOC-RESPONSIBILITY responsibility="Set Table.displayName for debugging"]
63
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/table-primitives.tsx,.framework/src/lib/utils.ts"]
64
+ // CIL[DOC-CONTRACT inputs="display name string" outputs="Table.displayName assignment" errors="none" side_effects="none"]
65
+ // CIL[DOC-MICRO logic_summary="Assign the PascalCase name to the component's displayName property" notable_decisions="[]"]
66
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
64
67
  // CIL[DOC-STABILITY stability="stable"]
65
- // CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 0. Direct calls: 0. Related files: .framework/migrations/015_simplify_apps_table.sql, .framework/src/components/ui/dialog.tsx, custom/apps/portal/pages/ContentPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, \."]
66
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
67
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
68
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
68
+
69
+ Table.displayName = 'Table'
70
+ // CIL[DOC-VECTOR type="context" content="purpose='Assigns a human-readable display name to Table'; No verified external callers; imports: .framework/src/lib/utils.ts"]
71
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
72
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
73
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
69
74
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
70
75
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
76
+ // CIL[END stable_id="~/.framework/src/components/ui/table-primitives.tsx:table_display_name:assignment"]
77
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/table-primitives.tsx:tableheader:constant" type="constant" identity="tableheader" parent="module_header"]
78
+ // CIL[DOC-MACRO purpose="Renders the table header section with row border styling"]
79
+ // CIL[DOC-RESPONSIBILITY responsibility="Render the TableHeader component"]
80
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/table-primitives.tsx,.framework/src/lib/utils.ts"]
81
+ // CIL[DOC-CONTRACT inputs="className, ...props" outputs="JSX thead element" errors="none" side_effects="none"]
82
+ // CIL[DOC-MICRO logic_summary="Forward ref to a styled thead with bottom border on rows" notable_decisions="[]"]
83
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
84
+ // CIL[DOC-STABILITY stability="stable"]
85
+
71
86
  const TableHeader = React.forwardRef<
72
87
  HTMLTableSectionElement,
73
88
  React.HTMLAttributes<HTMLTableSectionElement>
74
89
  >(({ className, ...props }, ref) => (
75
90
  <thead ref={ref} className={cn('[&_tr]:border-b', className)} {...props} />
76
91
  ))
77
- TableHeader.displayName = 'TableHeader'
78
- // CIL[END chunk_id="table-primitives_tableheader_1783757774"]
79
- // CIL[BEGIN chunk_id="table-primitives_tablebody_1783757774" type="function" identity="TableBody" parent="none"]
80
- // CIL[DOC-MACRO purpose="Table body section component"]
81
- // CIL[DOC-RESPONSIBILITY responsibility="Render table body with no bottom border on last row"]
82
- // CIL[DOC-CONTEXT module="table-primitives" layer="frontend-component" related_files="[\".framework/migrations/015_simplify_apps_table.sql\",\".framework/src/components/ui/dialog.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
83
- // CIL[DOC-CONTRACT inputs="none" outputs="JSX tbody element" errors="none" side_effects="renders UI elements"]
84
- // CIL[DOC-MICRO logic_summary="Render tbody with no border on last child row" notable_decisions="[]"]
85
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
92
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders the table header section with row border styling'; No verified external callers; imports: .framework/src/lib/utils.ts"]
93
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
94
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
95
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
96
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
97
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
98
+ // CIL[END stable_id="~/.framework/src/components/ui/table-primitives.tsx:tableheader:constant"]
99
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/table-primitives.tsx:tableheader_display_name:assignment" type="assignment" identity="tableheader_display_name" parent="module_header"]
100
+ // CIL[DOC-MACRO purpose="Assigns a human-readable display name to TableHeader"]
101
+ // CIL[DOC-RESPONSIBILITY responsibility="Set TableHeader.displayName for debugging"]
102
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/table-primitives.tsx,.framework/src/lib/utils.ts"]
103
+ // CIL[DOC-CONTRACT inputs="display name string" outputs="TableHeader.displayName assignment" errors="none" side_effects="none"]
104
+ // CIL[DOC-MICRO logic_summary="Assign the PascalCase name to the component's displayName property" notable_decisions="[]"]
105
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
86
106
  // CIL[DOC-STABILITY stability="stable"]
87
- // CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 0. Direct calls: 0. Related files: .framework/migrations/015_simplify_apps_table.sql, .framework/src/components/ui/dialog.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
88
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
89
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
90
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
107
+
108
+ TableHeader.displayName = 'TableHeader'
109
+ // CIL[DOC-VECTOR type="context" content="purpose='Assigns a human-readable display name to TableHeader'; No verified external callers; imports: .framework/src/lib/utils.ts"]
110
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
111
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
112
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
91
113
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
92
114
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
115
+ // CIL[END stable_id="~/.framework/src/components/ui/table-primitives.tsx:tableheader_display_name:assignment"]
116
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/table-primitives.tsx:tablebody:constant" type="constant" identity="tablebody" parent="module_header"]
117
+ // CIL[DOC-MACRO purpose="Renders the table body with last-row border removal"]
118
+ // CIL[DOC-RESPONSIBILITY responsibility="Render the TableBody component"]
119
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/table-primitives.tsx,.framework/src/lib/utils.ts"]
120
+ // CIL[DOC-CONTRACT inputs="className, ...props" outputs="JSX tbody element" errors="none" side_effects="none"]
121
+ // CIL[DOC-MICRO logic_summary="Forward ref to a styled tbody and remove border from the last row" notable_decisions="[]"]
122
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
123
+ // CIL[DOC-STABILITY stability="stable"]
124
+
93
125
  const TableBody = React.forwardRef<
94
126
  HTMLTableSectionElement,
95
127
  React.HTMLAttributes<HTMLTableSectionElement>
@@ -100,22 +132,39 @@ const TableBody = React.forwardRef<
100
132
  {...props}
101
133
  />
102
134
  ))
103
- TableBody.displayName = 'TableBody'
104
- // CIL[END chunk_id="table-primitives_tablebody_1783757774"]
105
- // CIL[BEGIN chunk_id="table-primitives_tablefooter_1783757774" type="function" identity="TableFooter" parent="none"]
106
- // CIL[DOC-MACRO purpose="Table footer section component"]
107
- // CIL[DOC-RESPONSIBILITY responsibility="Render table footer with top border and muted background"]
108
- // CIL[DOC-CONTEXT module="table-primitives" layer="frontend-component" related_files="[\".framework/migrations/015_simplify_apps_table.sql\",\".framework/src/components/ui/dialog.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
109
- // CIL[DOC-CONTRACT inputs="none" outputs="JSX tfoot element" errors="none" side_effects="renders UI elements"]
110
- // CIL[DOC-MICRO logic_summary="Render tfoot with top border, muted background, and no border on last row" notable_decisions="[]"]
111
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
135
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders the table body with last-row border removal'; No verified external callers; imports: .framework/src/lib/utils.ts"]
136
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
137
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
138
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
139
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
140
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
141
+ // CIL[END stable_id="~/.framework/src/components/ui/table-primitives.tsx:tablebody:constant"]
142
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/table-primitives.tsx:tablebody_display_name:assignment" type="assignment" identity="tablebody_display_name" parent="module_header"]
143
+ // CIL[DOC-MACRO purpose="Assigns a human-readable display name to TableBody"]
144
+ // CIL[DOC-RESPONSIBILITY responsibility="Set TableBody.displayName for debugging"]
145
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/table-primitives.tsx,.framework/src/lib/utils.ts"]
146
+ // CIL[DOC-CONTRACT inputs="display name string" outputs="TableBody.displayName assignment" errors="none" side_effects="none"]
147
+ // CIL[DOC-MICRO logic_summary="Assign the PascalCase name to the component's displayName property" notable_decisions="[]"]
148
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
112
149
  // CIL[DOC-STABILITY stability="stable"]
113
- // CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 0. Direct calls: 0. Related files: .framework/migrations/015_simplify_apps_table.sql, .framework/src/components/ui/dialog.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
114
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
115
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
116
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
150
+
151
+ TableBody.displayName = 'TableBody'
152
+ // CIL[DOC-VECTOR type="context" content="purpose='Assigns a human-readable display name to TableBody'; No verified external callers; imports: .framework/src/lib/utils.ts"]
153
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
154
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
155
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
117
156
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
118
157
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
158
+ // CIL[END stable_id="~/.framework/src/components/ui/table-primitives.tsx:tablebody_display_name:assignment"]
159
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/table-primitives.tsx:tablefooter:constant" type="constant" identity="tablefooter" parent="module_header"]
160
+ // CIL[DOC-MACRO purpose="Renders the table footer with top border and muted background"]
161
+ // CIL[DOC-RESPONSIBILITY responsibility="Render the TableFooter component"]
162
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/table-primitives.tsx,.framework/src/lib/utils.ts"]
163
+ // CIL[DOC-CONTRACT inputs="className, ...props" outputs="JSX tfoot element" errors="none" side_effects="none"]
164
+ // CIL[DOC-MICRO logic_summary="Forward ref to a styled tfoot with top border and muted background" notable_decisions="[]"]
165
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
166
+ // CIL[DOC-STABILITY stability="stable"]
167
+
119
168
  const TableFooter = React.forwardRef<
120
169
  HTMLTableSectionElement,
121
170
  React.HTMLAttributes<HTMLTableSectionElement>
@@ -129,22 +178,39 @@ const TableFooter = React.forwardRef<
129
178
  {...props}
130
179
  />
131
180
  ))
132
- TableFooter.displayName = 'TableFooter'
133
- // CIL[END chunk_id="table-primitives_tablefooter_1783757774"]
134
- // CIL[BEGIN chunk_id="table-primitives_tablerow_1783757774" type="function" identity="TableRow" parent="none"]
135
- // CIL[DOC-MACRO purpose="Table row component with hover and selection states"]
136
- // CIL[DOC-RESPONSIBILITY responsibility="Render table row with interactive styling"]
137
- // CIL[DOC-CONTEXT module="table-primitives" layer="frontend-component" related_files="[]"]
138
- // CIL[DOC-CONTRACT inputs="none" outputs="JSX tr element" errors="none" side_effects="renders UI elements"]
139
- // CIL[DOC-MICRO logic_summary="Render tr with border, hover effect, and selection state styling" notable_decisions="[]"]
140
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
181
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders the table footer with top border and muted background'; No verified external callers; imports: .framework/src/lib/utils.ts"]
182
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
183
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
184
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
185
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
186
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
187
+ // CIL[END stable_id="~/.framework/src/components/ui/table-primitives.tsx:tablefooter:constant"]
188
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/table-primitives.tsx:tablefooter_display_name:assignment" type="assignment" identity="tablefooter_display_name" parent="module_header"]
189
+ // CIL[DOC-MACRO purpose="Assigns a human-readable display name to TableFooter"]
190
+ // CIL[DOC-RESPONSIBILITY responsibility="Set TableFooter.displayName for debugging"]
191
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/table-primitives.tsx,.framework/src/lib/utils.ts"]
192
+ // CIL[DOC-CONTRACT inputs="display name string" outputs="TableFooter.displayName assignment" errors="none" side_effects="none"]
193
+ // CIL[DOC-MICRO logic_summary="Assign the PascalCase name to the component's displayName property" notable_decisions="[]"]
194
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
141
195
  // CIL[DOC-STABILITY stability="stable"]
142
- // CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 0. Direct calls: 0. Related files: none."]
143
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
144
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
145
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
196
+
197
+ TableFooter.displayName = 'TableFooter'
198
+ // CIL[DOC-VECTOR type="context" content="purpose='Assigns a human-readable display name to TableFooter'; No verified external callers; imports: .framework/src/lib/utils.ts"]
199
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
200
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
201
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
146
202
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
147
203
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
204
+ // CIL[END stable_id="~/.framework/src/components/ui/table-primitives.tsx:tablefooter_display_name:assignment"]
205
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/table-primitives.tsx:tablerow:constant" type="constant" identity="tablerow" parent="module_header"]
206
+ // CIL[DOC-MACRO purpose="Renders a table row with hover and selected states"]
207
+ // CIL[DOC-RESPONSIBILITY responsibility="Render the TableRow component"]
208
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/table-primitives.tsx,.framework/src/lib/utils.ts"]
209
+ // CIL[DOC-CONTRACT inputs="className, ...props" outputs="JSX tr element" errors="none" side_effects="none"]
210
+ // CIL[DOC-MICRO logic_summary="Forward ref to a styled tr with hover and data-selected states" notable_decisions="[]"]
211
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
212
+ // CIL[DOC-STABILITY stability="stable"]
213
+
148
214
  const TableRow = React.forwardRef<
149
215
  HTMLTableRowElement,
150
216
  React.HTMLAttributes<HTMLTableRowElement>
@@ -158,22 +224,39 @@ const TableRow = React.forwardRef<
158
224
  {...props}
159
225
  />
160
226
  ))
161
- TableRow.displayName = 'TableRow'
162
- // CIL[END chunk_id="table-primitives_tablerow_1783757774"]
163
- // CIL[BEGIN chunk_id="table-primitives_tablehead_1783757774" type="function" identity="TableHead" parent="none"]
164
- // CIL[DOC-MACRO purpose="Table header cell component"]
165
- // CIL[DOC-RESPONSIBILITY responsibility="Render table header cell with proper styling and checkbox handling"]
166
- // CIL[DOC-CONTEXT module="table-primitives" layer="frontend-component" related_files="[]"]
167
- // CIL[DOC-CONTRACT inputs="none" outputs="JSX th element" errors="none" side_effects="renders UI elements"]
168
- // CIL[DOC-MICRO logic_summary="Render th with height, padding, alignment, and checkbox column handling" notable_decisions="[]"]
169
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
227
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders a table row with hover and selected states'; No verified external callers; imports: .framework/src/lib/utils.ts"]
228
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
229
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
230
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
231
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
232
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
233
+ // CIL[END stable_id="~/.framework/src/components/ui/table-primitives.tsx:tablerow:constant"]
234
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/table-primitives.tsx:tablerow_display_name:assignment" type="assignment" identity="tablerow_display_name" parent="module_header"]
235
+ // CIL[DOC-MACRO purpose="Assigns a human-readable display name to TableRow"]
236
+ // CIL[DOC-RESPONSIBILITY responsibility="Set TableRow.displayName for debugging"]
237
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/table-primitives.tsx,.framework/src/lib/utils.ts"]
238
+ // CIL[DOC-CONTRACT inputs="display name string" outputs="TableRow.displayName assignment" errors="none" side_effects="none"]
239
+ // CIL[DOC-MICRO logic_summary="Assign the PascalCase name to the component's displayName property" notable_decisions="[]"]
240
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
170
241
  // CIL[DOC-STABILITY stability="stable"]
171
- // CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 0. Direct calls: 0. Related files: none."]
172
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
173
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
174
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
242
+
243
+ TableRow.displayName = 'TableRow'
244
+ // CIL[DOC-VECTOR type="context" content="purpose='Assigns a human-readable display name to TableRow'; No verified external callers; imports: .framework/src/lib/utils.ts"]
245
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
246
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
247
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
175
248
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
176
249
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
250
+ // CIL[END stable_id="~/.framework/src/components/ui/table-primitives.tsx:tablerow_display_name:assignment"]
251
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/table-primitives.tsx:tablehead:constant" type="constant" identity="tablehead" parent="module_header"]
252
+ // CIL[DOC-MACRO purpose="Renders a styled table header cell with checkbox padding handling"]
253
+ // CIL[DOC-RESPONSIBILITY responsibility="Render the TableHead component"]
254
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/table-primitives.tsx,.framework/src/lib/utils.ts"]
255
+ // CIL[DOC-CONTRACT inputs="className, ...props" outputs="JSX th element" errors="none" side_effects="none"]
256
+ // CIL[DOC-MICRO logic_summary="Forward ref to a styled th with reduced padding for checkboxes" notable_decisions="[]"]
257
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
258
+ // CIL[DOC-STABILITY stability="stable"]
259
+
177
260
  const TableHead = React.forwardRef<
178
261
  HTMLTableCellElement,
179
262
  React.ThHTMLAttributes<HTMLTableCellElement>
@@ -187,22 +270,39 @@ const TableHead = React.forwardRef<
187
270
  {...props}
188
271
  />
189
272
  ))
190
- TableHead.displayName = 'TableHead'
191
- // CIL[END chunk_id="table-primitives_tablehead_1783757774"]
192
- // CIL[BEGIN chunk_id="table-primitives_tablecell_1783757774" type="function" identity="TableCell" parent="none"]
193
- // CIL[DOC-MACRO purpose="Table data cell component"]
194
- // CIL[DOC-RESPONSIBILITY responsibility="Render table data cell with proper styling and checkbox handling"]
195
- // CIL[DOC-CONTEXT module="table-primitives" layer="frontend-component" related_files="[]"]
196
- // CIL[DOC-CONTRACT inputs="none" outputs="JSX td element" errors="none" side_effects="renders UI elements"]
197
- // CIL[DOC-MICRO logic_summary="Render td with padding, alignment, and checkbox column handling" notable_decisions="[]"]
198
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
273
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders a styled table header cell with checkbox padding handling'; No verified external callers; imports: .framework/src/lib/utils.ts"]
274
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
275
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
276
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
277
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
278
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
279
+ // CIL[END stable_id="~/.framework/src/components/ui/table-primitives.tsx:tablehead:constant"]
280
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/table-primitives.tsx:tablehead_display_name:assignment" type="assignment" identity="tablehead_display_name" parent="module_header"]
281
+ // CIL[DOC-MACRO purpose="Assigns a human-readable display name to TableHead"]
282
+ // CIL[DOC-RESPONSIBILITY responsibility="Set TableHead.displayName for debugging"]
283
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/table-primitives.tsx,.framework/src/lib/utils.ts"]
284
+ // CIL[DOC-CONTRACT inputs="display name string" outputs="TableHead.displayName assignment" errors="none" side_effects="none"]
285
+ // CIL[DOC-MICRO logic_summary="Assign the PascalCase name to the component's displayName property" notable_decisions="[]"]
286
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
199
287
  // CIL[DOC-STABILITY stability="stable"]
200
- // CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 0. Direct calls: 0. Related files: none."]
201
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
202
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
203
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
288
+
289
+ TableHead.displayName = 'TableHead'
290
+ // CIL[DOC-VECTOR type="context" content="purpose='Assigns a human-readable display name to TableHead'; No verified external callers; imports: .framework/src/lib/utils.ts"]
291
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
292
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
293
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
204
294
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
205
295
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
296
+ // CIL[END stable_id="~/.framework/src/components/ui/table-primitives.tsx:tablehead_display_name:assignment"]
297
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/table-primitives.tsx:tablecell:constant" type="constant" identity="tablecell" parent="module_header"]
298
+ // CIL[DOC-MACRO purpose="Renders a styled table data cell with checkbox padding handling"]
299
+ // CIL[DOC-RESPONSIBILITY responsibility="Render the TableCell component"]
300
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/table-primitives.tsx,.framework/src/lib/utils.ts"]
301
+ // CIL[DOC-CONTRACT inputs="className, ...props" outputs="JSX td element" errors="none" side_effects="none"]
302
+ // CIL[DOC-MICRO logic_summary="Forward ref to a styled td with reduced padding for checkboxes" notable_decisions="[]"]
303
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
304
+ // CIL[DOC-STABILITY stability="stable"]
305
+
206
306
  const TableCell = React.forwardRef<
207
307
  HTMLTableCellElement,
208
308
  React.TdHTMLAttributes<HTMLTableCellElement>
@@ -213,22 +313,39 @@ const TableCell = React.forwardRef<
213
313
  {...props}
214
314
  />
215
315
  ))
216
- TableCell.displayName = 'TableCell'
217
- // CIL[END chunk_id="table-primitives_tablecell_1783757774"]
218
- // CIL[BEGIN chunk_id="table-primitives_tablecaption_1783757774" type="function" identity="TableCaption" parent="none"]
219
- // CIL[DOC-MACRO purpose="Table caption component"]
220
- // CIL[DOC-RESPONSIBILITY responsibility="Render table caption with muted styling"]
221
- // CIL[DOC-CONTEXT module="table-primitives" layer="frontend-component" related_files="[]"]
222
- // CIL[DOC-CONTRACT inputs="none" outputs="JSX caption element" errors="none" side_effects="renders UI elements"]
223
- // CIL[DOC-MICRO logic_summary="Render caption with top margin, small text, and muted color" notable_decisions="[]"]
224
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
316
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders a styled table data cell with checkbox padding handling'; No verified external callers; imports: .framework/src/lib/utils.ts"]
317
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
318
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
319
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
320
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
321
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
322
+ // CIL[END stable_id="~/.framework/src/components/ui/table-primitives.tsx:tablecell:constant"]
323
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/table-primitives.tsx:tablecell_display_name:assignment" type="assignment" identity="tablecell_display_name" parent="module_header"]
324
+ // CIL[DOC-MACRO purpose="Assigns a human-readable display name to TableCell"]
325
+ // CIL[DOC-RESPONSIBILITY responsibility="Set TableCell.displayName for debugging"]
326
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/table-primitives.tsx,.framework/src/lib/utils.ts"]
327
+ // CIL[DOC-CONTRACT inputs="display name string" outputs="TableCell.displayName assignment" errors="none" side_effects="none"]
328
+ // CIL[DOC-MICRO logic_summary="Assign the PascalCase name to the component's displayName property" notable_decisions="[]"]
329
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
225
330
  // CIL[DOC-STABILITY stability="stable"]
226
- // CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 0. Direct calls: 0. Related files: none."]
227
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
228
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
229
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
331
+
332
+ TableCell.displayName = 'TableCell'
333
+ // CIL[DOC-VECTOR type="context" content="purpose='Assigns a human-readable display name to TableCell'; No verified external callers; imports: .framework/src/lib/utils.ts"]
334
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
335
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
336
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
230
337
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
231
338
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
339
+ // CIL[END stable_id="~/.framework/src/components/ui/table-primitives.tsx:tablecell_display_name:assignment"]
340
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/table-primitives.tsx:tablecaption:constant" type="constant" identity="tablecaption" parent="module_header"]
341
+ // CIL[DOC-MACRO purpose="Renders a styled table caption with muted foreground"]
342
+ // CIL[DOC-RESPONSIBILITY responsibility="Render the TableCaption component"]
343
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/table-primitives.tsx,.framework/src/lib/utils.ts"]
344
+ // CIL[DOC-CONTRACT inputs="className, ...props" outputs="JSX caption element" errors="none" side_effects="none"]
345
+ // CIL[DOC-MICRO logic_summary="Forward ref to a styled caption with top margin and muted text" notable_decisions="[]"]
346
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
347
+ // CIL[DOC-STABILITY stability="stable"]
348
+
232
349
  const TableCaption = React.forwardRef<
233
350
  HTMLTableCaptionElement,
234
351
  React.HTMLAttributes<HTMLTableCaptionElement>
@@ -239,22 +356,39 @@ const TableCaption = React.forwardRef<
239
356
  {...props}
240
357
  />
241
358
  ))
242
- TableCaption.displayName = 'TableCaption'
243
- // CIL[END chunk_id="table-primitives_tablecaption_1783757774"]
244
- // CIL[BEGIN chunk_id="table-primitives_export_1783757774" type="export" identity="export" parent="none"]
245
- // CIL[DOC-MACRO purpose="Export all table primitive components"]
246
- // CIL[DOC-RESPONSIBILITY responsibility="Make all table components available for import"]
247
- // CIL[DOC-CONTEXT module="table-primitives" layer="frontend-component" related_files="[]"]
248
- // CIL[DOC-CONTRACT inputs="none" outputs="All table component exports" errors="none" side_effects="module export"]
249
- // CIL[DOC-MICRO logic_summary="Export all table primitive components for external use" notable_decisions="[]"]
250
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
359
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders a styled table caption with muted foreground'; No verified external callers; imports: .framework/src/lib/utils.ts"]
360
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
361
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
362
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
363
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
364
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
365
+ // CIL[END stable_id="~/.framework/src/components/ui/table-primitives.tsx:tablecaption:constant"]
366
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/table-primitives.tsx:tablecaption_display_name:assignment" type="assignment" identity="tablecaption_display_name" parent="module_header"]
367
+ // CIL[DOC-MACRO purpose="Assigns a human-readable display name to TableCaption"]
368
+ // CIL[DOC-RESPONSIBILITY responsibility="Set TableCaption.displayName for debugging"]
369
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/table-primitives.tsx,.framework/src/lib/utils.ts"]
370
+ // CIL[DOC-CONTRACT inputs="display name string" outputs="TableCaption.displayName assignment" errors="none" side_effects="none"]
371
+ // CIL[DOC-MICRO logic_summary="Assign the PascalCase name to the component's displayName property" notable_decisions="[]"]
372
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
251
373
  // CIL[DOC-STABILITY stability="stable"]
252
- // CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 0. Direct calls: 0. Related files: none."]
253
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
254
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
255
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
374
+
375
+ TableCaption.displayName = 'TableCaption'
376
+ // CIL[DOC-VECTOR type="context" content="purpose='Assigns a human-readable display name to TableCaption'; No verified external callers; imports: .framework/src/lib/utils.ts"]
377
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
378
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
379
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
256
380
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
257
381
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
382
+ // CIL[END stable_id="~/.framework/src/components/ui/table-primitives.tsx:tablecaption_display_name:assignment"]
383
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/table-primitives.tsx:module_exports:module_exports" type="module_exports" identity="module_exports" parent="module_header"]
384
+ // CIL[DOC-MACRO purpose="Re-exports all table primitive components"]
385
+ // CIL[DOC-RESPONSIBILITY responsibility="Expose the table subcomponents for consumers"]
386
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/table-primitives.tsx,.framework/src/lib/utils.ts"]
387
+ // CIL[DOC-CONTRACT inputs="none" outputs="named exports of table primitives" errors="none" side_effects="none"]
388
+ // CIL[DOC-MICRO logic_summary="Named export block listing every table primitive component" notable_decisions="[]"]
389
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
390
+ // CIL[DOC-STABILITY stability="stable"]
391
+
258
392
  export {
259
393
  Table,
260
394
  TableHeader,
@@ -265,4 +399,10 @@ export {
265
399
  TableCell,
266
400
  TableCaption,
267
401
  }
268
- // CIL[END chunk_id="table-primitives_export_1783757774"]
402
+ // CIL[DOC-VECTOR type="context" content="purpose='Re-exports all table primitive components'; No verified external callers; imports: .framework/src/lib/utils.ts"]
403
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
404
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
405
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
406
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
407
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
408
+ // CIL[END stable_id="~/.framework/src/components/ui/table-primitives.tsx:module_exports:module_exports"]