spine-framework 0.3.145 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +5067 -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,3 +1,16 @@
1
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/item.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/components/ui/item.tsx"]
2
+ // CIL[DOC-MACRO purpose="Defines the UI item component family for list and detail surfaces"]
3
+ // CIL[DOC-RESPONSIBILITY responsibility="Serves as the module-level entry point and owner for the item component family"]
4
+ // CIL[DOC-CONTEXT module=".framework/src/components/ui/item" layer="ui" related_files=".framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
5
+ // CIL[DOC-CONTRACT inputs="none" outputs="named component exports" errors="none" side_effects="none"]
6
+ // CIL[DOC-MICRO logic_summary="Imports dependencies, defines style variants and exports the Item component family" notable_decisions="[]"]
7
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
8
+ // CIL[DOC-STABILITY stable]
9
+ // CIL[DOC-AUDIENCE audience="frontend-app-shell"]
10
+
11
+
12
+
13
+
1
14
 
2
15
 
3
16
 
@@ -12,42 +25,28 @@
12
25
 
13
26
 
14
27
 
15
- // CIL[BEGIN chunk_id="item_module_header_1783796064" type="module_header" identity="module_header" parent="none"]
16
- // CIL[DOC-MACRO purpose="Import dependencies for item UI components"]
17
- // CIL[DOC-RESPONSIBILITY responsibility="Import React, CVA, Radix UI, and local utilities"]
18
- // CIL[DOC-CONTEXT module="item" layer="ui_components" related_files="[\".framework/src/components/ui/dialog.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"\\\"]"]
19
- // CIL[DOC-CONTRACT inputs="none" outputs="imported modules" errors="none" side_effects="module imports"]
20
- // CIL[DOC-MICRO logic_summary="Imports all necessary dependencies for item component system" notable_decisions="[]"]
21
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
22
- // CIL[DOC-STABILITY stability="stable"]
23
- // CIL[DOC-AUDIENCE audience="developer"]
24
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/ui/dialog.tsx, .framework/src/components/ui/table-primitives.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, \."]
25
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
26
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
27
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
28
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
29
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
30
28
  import * as React from "react"
31
29
  import { cva, type VariantProps } from "class-variance-authority"
32
30
  import { Slot } from "radix-ui"
33
31
 
34
32
  import { cn } from "@/lib/utils"
35
33
  import { Separator } from "@/components/ui/separator"
36
- // CIL[END chunk_id="item_module_header_1783796064"]
37
- // CIL[BEGIN chunk_id="item_itemgroup_1783796064" type="function" identity="ItemGroup" parent="none"]
38
- // CIL[DOC-MACRO purpose="Render container for grouping multiple items"]
39
- // CIL[DOC-RESPONSIBILITY responsibility="Create list container for item components"]
40
- // CIL[DOC-CONTEXT module="item" layer="ui_components" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/functions/_shared/principal.ts\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/functions/_shared/schema-utils.ts\",\"\\\"]"]
41
- // CIL[DOC-CONTRACT inputs="none" outputs="styled list container" errors="none" side_effects="renders DOM element"]
42
- // CIL[DOC-MICRO logic_summary="Creates flex container with responsive gap for item grouping" notable_decisions="[]"]
43
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
44
- // CIL[DOC-STABILITY stability="stable"]
45
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/principal.ts, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/functions/_shared/schema-utils.ts, \."]
46
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
47
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
48
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
34
+ // CIL[DOC-VECTOR type="context" content="purpose='Defines the UI item component family for list and detail surfaces'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/separator.tsx"]
35
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
36
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
37
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
49
38
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
50
39
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
40
+ // CIL[END stable_id="~/.framework/src/components/ui/item.tsx:module_header:module_header"]
41
+
42
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/item.tsx:ItemGroup:component" type="component" identity="ItemGroup" parent="~/.framework/src/components/ui/item.tsx"]
43
+ // CIL[DOC-MACRO purpose="Container that wraps a list of item components with role=list and group styling"]
44
+ // CIL[DOC-RESPONSIBILITY responsibility="Renders a list group container for item siblings"]
45
+ // CIL[DOC-CONTEXT module=".framework/src/components/ui/item" layer="ui" related_files=".framework/src/components/ui/item.tsx,.framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
46
+ // CIL[DOC-CONTRACT inputs="className, ...props" outputs="div JSX" errors="none" side_effects="none"]
47
+ // CIL[DOC-MICRO logic_summary="Renders a div with role=list, applies cva spacing for size variants, forwards props and className" notable_decisions="none"]
48
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
49
+ // CIL[DOC-STABILITY stable]
51
50
  function ItemGroup({ className, ...props }: React.ComponentProps<"div">) {
52
51
  return (
53
52
  <div
@@ -61,21 +60,22 @@ function ItemGroup({ className, ...props }: React.ComponentProps<"div">) {
61
60
  />
62
61
  )
63
62
  }
64
- // CIL[END chunk_id="item_itemgroup_1783796064"]
65
- // CIL[BEGIN chunk_id="item_itemseparator_1783796064" type="function" identity="ItemSeparator" parent="none"]
66
- // CIL[DOC-MACRO purpose="Render horizontal separator between items"]
67
- // CIL[DOC-RESPONSIBILITY responsibility="Create styled separator for item lists"]
68
- // CIL[DOC-CONTEXT module="item" layer="ui_components" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\"\\\"]"]
69
- // CIL[DOC-CONTRACT inputs="none" outputs="horizontal separator" errors="none" side_effects="renders DOM element"]
70
- // CIL[DOC-MICRO logic_summary="Creates horizontal separator with margin spacing" notable_decisions="[]"]
71
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
72
- // CIL[DOC-STABILITY stability="stable"]
73
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/src/components/ui/table-primitives.tsx, \."]
74
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
75
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
76
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
63
+ // CIL[DOC-VECTOR type="context" content="purpose='Container that wraps a list of item components with role=list and group styling'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/separator.tsx"]
64
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
65
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
66
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
77
67
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
78
68
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
69
+ // CIL[END stable_id="~/.framework/src/components/ui/item.tsx:ItemGroup:component"]
70
+
71
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/item.tsx:ItemSeparator:component" type="component" identity="ItemSeparator" parent="~/.framework/src/components/ui/item.tsx"]
72
+ // CIL[DOC-MACRO purpose="Horizontal separator for item groups"]
73
+ // CIL[DOC-RESPONSIBILITY responsibility="Renders a horizontal separator between item group entries"]
74
+ // CIL[DOC-CONTEXT module=".framework/src/components/ui/item" layer="ui" related_files=".framework/src/components/ui/item.tsx,.framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
75
+ // CIL[DOC-CONTRACT inputs="className, ...props" outputs="Separator JSX" errors="none" side_effects="none"]
76
+ // CIL[DOC-MICRO logic_summary="Wraps the Separator component and applies my-2 margins" notable_decisions="none"]
77
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
78
+ // CIL[DOC-STABILITY stable]
79
79
  function ItemSeparator({
80
80
  className,
81
81
  ...props
@@ -89,21 +89,23 @@ function ItemSeparator({
89
89
  />
90
90
  )
91
91
  }
92
- // CIL[END chunk_id="item_itemseparator_1783796064"]
93
- // CIL[BEGIN chunk_id="item_itemvariants_1783796064" type="cva" identity="itemVariants" parent="none"]
94
- // CIL[DOC-MACRO purpose="Define style variants for item components"]
95
- // CIL[DOC-RESPONSIBILITY responsibility="Create CVA configuration for item styling"]
96
- // CIL[DOC-CONTEXT module="item" layer="ui_components" related_files="[\".framework/src/components/ui/dialog.tsx\",\".framework/functions/_shared/principal.ts\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/functions/_shared/schema-utils.ts\",\".framework/src/components/ui/table-primitives.tsx\",\"\\\"]"]
97
- // CIL[DOC-CONTRACT inputs="none" outputs="CVA variant configuration" errors="none" side_effects="defines styling variants"]
98
- // CIL[DOC-MICRO logic_summary="Defines variant and size options for item component styling" notable_decisions="[]"]
99
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
100
- // CIL[DOC-STABILITY stability="stable"]
101
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 1. Direct calls: 0. Related files: .framework/src/components/ui/dialog.tsx, .framework/functions/_shared/principal.ts, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/schema-utils.ts, .framework/src/components/ui/table-primitives.tsx, \."]
102
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 1. Total affected: 1."]
103
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
104
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
92
+ // CIL[DOC-VECTOR type="context" content="purpose='Horizontal separator for item groups'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/separator.tsx"]
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"]
105
96
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
106
97
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
98
+ // CIL[END stable_id="~/.framework/src/components/ui/item.tsx:ItemSeparator:component"]
99
+
100
+
101
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/item.tsx:itemVariants:constant" type="constant" identity="itemVariants" parent="~/.framework/src/components/ui/item.tsx"]
102
+ // CIL[DOC-MACRO purpose="cva style recipe for the main Item wrapper"]
103
+ // CIL[DOC-RESPONSIBILITY responsibility="Provides a class-variance-authority style recipe for the main Item wrapper"]
104
+ // CIL[DOC-CONTEXT module=".framework/src/components/ui/item" layer="ui" related_files=".framework/src/components/ui/item.tsx,.framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
105
+ // CIL[DOC-CONTRACT inputs="none" outputs="cva variant object" errors="none" side_effects="none"]
106
+ // CIL[DOC-MICRO logic_summary="Defines default, outline and muted variants plus default and sm/xs sizes" notable_decisions="none"]
107
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
108
+ // CIL[DOC-STABILITY stable]
107
109
  const itemVariants = cva(
108
110
  "group/item flex w-full flex-wrap items-center rounded-md border text-xs/relaxed transition-colors duration-100 outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 [a]:transition-colors [a]:hover:bg-muted",
109
111
  {
@@ -125,21 +127,23 @@ const itemVariants = cva(
125
127
  },
126
128
  }
127
129
  )
128
- // CIL[END chunk_id="item_itemvariants_1783796064"]
129
- // CIL[BEGIN chunk_id="item_item_1783796064" type="function" identity="Item" parent="none"]
130
- // CIL[DOC-MACRO purpose="Render main item component with variants"]
131
- // CIL[DOC-RESPONSIBILITY responsibility="Create flexible item container with styling options"]
132
- // CIL[DOC-CONTEXT module="item" layer="ui_components" related_files="[\".framework/src/components/ui/table-primitives.tsx\",\".framework/src/components/ui/dialog.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
133
- // CIL[DOC-CONTRACT inputs="none" outputs="styled item element" errors="none" side_effects="renders DOM element"]
134
- // CIL[DOC-MICRO logic_summary="Creates main item component with variant support and asChild pattern" notable_decisions="[]"]
135
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
136
- // CIL[DOC-STABILITY stability="stable"]
137
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/ui/table-primitives.tsx, .framework/src/components/ui/dialog.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
138
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
139
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
140
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
130
+ // CIL[DOC-VECTOR type="context" content="purpose='cva style recipe for the main Item wrapper'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/separator.tsx"]
131
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
132
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
133
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
141
134
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
142
135
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
136
+ // CIL[END stable_id="~/.framework/src/components/ui/item.tsx:itemVariants:constant"]
137
+
138
+
139
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/item.tsx:Item:component" type="component" identity="Item" parent="~/.framework/src/components/ui/item.tsx"]
140
+ // CIL[DOC-MACRO purpose="Main item wrapper component with size, variant and asChild support"]
141
+ // CIL[DOC-RESPONSIBILITY responsibility="Renders the main item wrapper with variant, size and asChild support"]
142
+ // CIL[DOC-CONTEXT module=".framework/src/components/ui/item" layer="ui" related_files=".framework/src/components/ui/item.tsx,.framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
143
+ // CIL[DOC-CONTRACT inputs="className, variant, size, asChild, VariantProps, ...props" outputs="div or Slot.Root JSX" errors="none" side_effects="none"]
144
+ // CIL[DOC-MICRO logic_summary="Selects Slot.Root or div based on asChild, applies itemVariants class and data attributes" notable_decisions="none"]
145
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
146
+ // CIL[DOC-STABILITY stable]
143
147
  function Item({
144
148
  className,
145
149
  variant = "default",
@@ -159,21 +163,24 @@ function Item({
159
163
  />
160
164
  )
161
165
  }
162
- // CIL[END chunk_id="item_item_1783796064"]
163
- // CIL[BEGIN chunk_id="item_itemmediavariants_1783796064" type="cva" identity="itemMediaVariants" parent="none"]
164
- // CIL[DOC-MACRO purpose="Define style variants for item media components"]
165
- // CIL[DOC-RESPONSIBILITY responsibility="Create CVA configuration for media styling"]
166
- // CIL[DOC-CONTEXT module="item" layer="ui_components" related_files="[]"]
167
- // CIL[DOC-CONTRACT inputs="none" outputs="CVA variant configuration" errors="none" side_effects="defines styling variants"]
168
- // CIL[DOC-MICRO logic_summary="Defines variant options for item media components (default, icon, image)" notable_decisions="[]"]
169
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
170
- // CIL[DOC-STABILITY stability="stable"]
171
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. 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."]
166
+ // CIL[DOC-VECTOR type="context" content="purpose='Main item wrapper component with size, variant and asChild support'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/separator.tsx"]
167
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
168
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
169
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
175
170
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
176
171
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
172
+ // CIL[END stable_id="~/.framework/src/components/ui/item.tsx:Item:component"]
173
+
174
+
175
+
176
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/item.tsx:itemMediaVariants:constant" type="constant" identity="itemMediaVariants" parent="~/.framework/src/components/ui/item.tsx"]
177
+ // CIL[DOC-MACRO purpose="cva style recipe for item media (icon, image)"]
178
+ // CIL[DOC-RESPONSIBILITY responsibility="Provides a cva style recipe for item media (icon, image)"]
179
+ // CIL[DOC-CONTEXT module=".framework/src/components/ui/item" layer="ui" related_files=".framework/src/components/ui/item.tsx,.framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
180
+ // CIL[DOC-CONTRACT inputs="none" outputs="cva variant object" errors="none" side_effects="none"]
181
+ // CIL[DOC-MICRO logic_summary="Defines default, icon and image media variants with size-aware rules" notable_decisions="none"]
182
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
183
+ // CIL[DOC-STABILITY stable]
177
184
  const itemMediaVariants = cva(
178
185
  "flex shrink-0 items-center justify-center gap-2 group-has-data-[slot=item-description]/item:translate-y-0.5 group-has-data-[slot=item-description]/item:self-start [&_svg]:pointer-events-none",
179
186
  {
@@ -190,21 +197,23 @@ const itemMediaVariants = cva(
190
197
  },
191
198
  }
192
199
  )
193
- // CIL[END chunk_id="item_itemmediavariants_1783796064"]
194
- // CIL[BEGIN chunk_id="item_itemmedia_1783796064" type="function" identity="ItemMedia" parent="none"]
195
- // CIL[DOC-MACRO purpose="Render media container for items"]
196
- // CIL[DOC-RESPONSIBILITY responsibility="Create container for item media (icons, images)"]
197
- // CIL[DOC-CONTEXT module="item" layer="ui_components" related_files="[]"]
198
- // CIL[DOC-CONTRACT inputs="none" outputs="styled media container" errors="none" side_effects="renders DOM element"]
199
- // CIL[DOC-MICRO logic_summary="Creates media container with variant support for icons and images" notable_decisions="[]"]
200
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
201
- // CIL[DOC-STABILITY stability="stable"]
202
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
203
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
204
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
205
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
200
+ // CIL[DOC-VECTOR type="context" content="purpose='cva style recipe for item media (icon, image)'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/separator.tsx"]
201
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
202
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
203
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
206
204
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
207
205
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
206
+ // CIL[END stable_id="~/.framework/src/components/ui/item.tsx:itemMediaVariants:constant"]
207
+
208
+
209
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/item.tsx:ItemMedia:component" type="component" identity="ItemMedia" parent="~/.framework/src/components/ui/item.tsx"]
210
+ // CIL[DOC-MACRO purpose="Renders media (icon, image) inside an item"]
211
+ // CIL[DOC-RESPONSIBILITY responsibility="Renders media (icon, image) inside an item"]
212
+ // CIL[DOC-CONTEXT module=".framework/src/components/ui/item" layer="ui" related_files=".framework/src/components/ui/item.tsx,.framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
213
+ // CIL[DOC-CONTRACT inputs="className, variant, ...props" outputs="div JSX" errors="none" side_effects="none"]
214
+ // CIL[DOC-MICRO logic_summary="Renders a div with item-media slot and itemMediaVariants classes" notable_decisions="none"]
215
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
216
+ // CIL[DOC-STABILITY stable]
208
217
  function ItemMedia({
209
218
  className,
210
219
  variant = "default",
@@ -219,21 +228,23 @@ function ItemMedia({
219
228
  />
220
229
  )
221
230
  }
222
- // CIL[END chunk_id="item_itemmedia_1783796064"]
223
- // CIL[BEGIN chunk_id="item_itemcontent_1783796064" type="function" identity="ItemContent" parent="none"]
224
- // CIL[DOC-MACRO purpose="Render content container for items"]
225
- // CIL[DOC-RESPONSIBILITY responsibility="Create flexible content area for item text and elements"]
226
- // CIL[DOC-CONTEXT module="item" layer="ui_components" related_files="[]"]
227
- // CIL[DOC-CONTRACT inputs="none" outputs="styled content container" errors="none" side_effects="renders DOM element"]
228
- // CIL[DOC-MICRO logic_summary="Creates flex container for item content with responsive sizing" 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."]
231
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders media (icon, image) inside an item'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/separator.tsx"]
232
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
233
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
234
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
235
235
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
236
236
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
237
+ // CIL[END stable_id="~/.framework/src/components/ui/item.tsx:ItemMedia:component"]
238
+
239
+
240
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/item.tsx:ItemContent:component" type="component" identity="ItemContent" parent="~/.framework/src/components/ui/item.tsx"]
241
+ // CIL[DOC-MACRO purpose="Flexible content column for item main text"]
242
+ // CIL[DOC-RESPONSIBILITY responsibility="Renders the flexible content column for item main text"]
243
+ // CIL[DOC-CONTEXT module=".framework/src/components/ui/item" layer="ui" related_files=".framework/src/components/ui/item.tsx,.framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
244
+ // CIL[DOC-CONTRACT inputs="className, ...props" outputs="div JSX" errors="none" side_effects="none"]
245
+ // CIL[DOC-MICRO logic_summary="Renders a flex column with item-content slot, supports adjacent sibling layout" notable_decisions="none"]
246
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
247
+ // CIL[DOC-STABILITY stable]
237
248
  function ItemContent({ className, ...props }: React.ComponentProps<"div">) {
238
249
  return (
239
250
  <div
@@ -246,21 +257,22 @@ function ItemContent({ className, ...props }: React.ComponentProps<"div">) {
246
257
  />
247
258
  )
248
259
  }
249
- // CIL[END chunk_id="item_itemcontent_1783796064"]
250
- // CIL[BEGIN chunk_id="item_itemtitle_1783796064" type="function" identity="ItemTitle" parent="none"]
251
- // CIL[DOC-MACRO purpose="Render title text for items"]
252
- // CIL[DOC-RESPONSIBILITY responsibility="Create styled title component for item headers"]
253
- // CIL[DOC-CONTEXT module="item" layer="ui_components" related_files="[]"]
254
- // CIL[DOC-CONTRACT inputs="none" outputs="styled title element" errors="none" side_effects="renders DOM element"]
255
- // CIL[DOC-MICRO logic_summary="Creates title element with truncation and underline styling" notable_decisions="[]"]
256
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
257
- // CIL[DOC-STABILITY stability="stable"]
258
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
259
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
260
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
261
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
260
+ // CIL[DOC-VECTOR type="context" content="purpose='Flexible content column for item main text'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/separator.tsx"]
261
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
262
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
263
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
262
264
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
263
265
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
266
+ // CIL[END stable_id="~/.framework/src/components/ui/item.tsx:ItemContent:component"]
267
+
268
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/item.tsx:ItemTitle:component" type="component" identity="ItemTitle" parent="~/.framework/src/components/ui/item.tsx"]
269
+ // CIL[DOC-MACRO purpose="Title line for an item"]
270
+ // CIL[DOC-RESPONSIBILITY responsibility="Renders a clamped single-line title inside an item"]
271
+ // CIL[DOC-CONTEXT module=".framework/src/components/ui/item" layer="ui" related_files=".framework/src/components/ui/item.tsx,.framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
272
+ // CIL[DOC-CONTRACT inputs="className, ...props" outputs="div JSX" errors="none" side_effects="none"]
273
+ // CIL[DOC-MICRO logic_summary="Renders a clamped single-line title with underline offset styling" notable_decisions="none"]
274
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
275
+ // CIL[DOC-STABILITY stable]
264
276
  function ItemTitle({ className, ...props }: React.ComponentProps<"div">) {
265
277
  return (
266
278
  <div
@@ -273,21 +285,22 @@ function ItemTitle({ className, ...props }: React.ComponentProps<"div">) {
273
285
  />
274
286
  )
275
287
  }
276
- // CIL[END chunk_id="item_itemtitle_1783796064"]
277
- // CIL[BEGIN chunk_id="item_itemdescription_1783796064" type="function" identity="ItemDescription" parent="none"]
278
- // CIL[DOC-MACRO purpose="Render description text for items"]
279
- // CIL[DOC-RESPONSIBILITY responsibility="Create styled description component for item content"]
280
- // CIL[DOC-CONTEXT module="item" layer="ui_components" related_files="[]"]
281
- // CIL[DOC-CONTRACT inputs="none" outputs="styled description element" errors="none" side_effects="renders DOM element"]
282
- // CIL[DOC-MICRO logic_summary="Creates description element with truncation and link styling" notable_decisions="[]"]
283
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
284
- // CIL[DOC-STABILITY stability="stable"]
285
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
286
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
287
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
288
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
288
+ // CIL[DOC-VECTOR type="context" content="purpose='Title line for an item'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/separator.tsx"]
289
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
290
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
291
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
289
292
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
290
293
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
294
+ // CIL[END stable_id="~/.framework/src/components/ui/item.tsx:ItemTitle:component"]
295
+
296
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/item.tsx:ItemDescription:component" type="component" identity="ItemDescription" parent="~/.framework/src/components/ui/item.tsx"]
297
+ // CIL[DOC-MACRO purpose="Secondary description text for an item"]
298
+ // CIL[DOC-RESPONSIBILITY responsibility="Renders secondary description text for an item"]
299
+ // CIL[DOC-CONTEXT module=".framework/src/components/ui/item" layer="ui" related_files=".framework/src/components/ui/item.tsx,.framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
300
+ // CIL[DOC-CONTRACT inputs="className, ...props" outputs="p JSX" errors="none" side_effects="none"]
301
+ // CIL[DOC-MICRO logic_summary="Renders a clamped two-line muted paragraph with link hover styles" notable_decisions="none"]
302
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
303
+ // CIL[DOC-STABILITY stable]
291
304
  function ItemDescription({ className, ...props }: React.ComponentProps<"p">) {
292
305
  return (
293
306
  <p
@@ -300,21 +313,22 @@ function ItemDescription({ className, ...props }: React.ComponentProps<"p">) {
300
313
  />
301
314
  )
302
315
  }
303
- // CIL[END chunk_id="item_itemdescription_1783796064"]
304
- // CIL[BEGIN chunk_id="item_itemactions_1783796064" type="function" identity="ItemActions" parent="none"]
305
- // CIL[DOC-MACRO purpose="Render actions container for items"]
306
- // CIL[DOC-RESPONSIBILITY responsibility="Create container for item action buttons and controls"]
307
- // CIL[DOC-CONTEXT module="item" layer="ui_components" related_files="[]"]
308
- // CIL[DOC-CONTRACT inputs="none" outputs="styled actions container" errors="none" side_effects="renders DOM element"]
309
- // CIL[DOC-MICRO logic_summary="Creates flex container for item actions with gap spacing" notable_decisions="[]"]
310
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
311
- // CIL[DOC-STABILITY stability="stable"]
312
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
313
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
314
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
315
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
316
+ // CIL[DOC-VECTOR type="context" content="purpose='Secondary description text for an item'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/separator.tsx"]
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"]
316
320
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
317
321
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
322
+ // CIL[END stable_id="~/.framework/src/components/ui/item.tsx:ItemDescription:component"]
323
+
324
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/item.tsx:ItemActions:component" type="component" identity="ItemActions" parent="~/.framework/src/components/ui/item.tsx"]
325
+ // CIL[DOC-MACRO purpose="Action buttons or controls attached to an item"]
326
+ // CIL[DOC-RESPONSIBILITY responsibility="Renders action buttons or controls attached to an item"]
327
+ // CIL[DOC-CONTEXT module=".framework/src/components/ui/item" layer="ui" related_files=".framework/src/components/ui/item.tsx,.framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
328
+ // CIL[DOC-CONTRACT inputs="className, ...props" outputs="div JSX" errors="none" side_effects="none"]
329
+ // CIL[DOC-MICRO logic_summary="Renders a flex row with item-actions slot and gap-2 spacing" notable_decisions="none"]
330
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
331
+ // CIL[DOC-STABILITY stable]
318
332
  function ItemActions({ className, ...props }: React.ComponentProps<"div">) {
319
333
  return (
320
334
  <div
@@ -324,21 +338,22 @@ function ItemActions({ className, ...props }: React.ComponentProps<"div">) {
324
338
  />
325
339
  )
326
340
  }
327
- // CIL[END chunk_id="item_itemactions_1783796064"]
328
- // CIL[BEGIN chunk_id="item_itemheader_1783796064" type="function" identity="ItemHeader" parent="none"]
329
- // CIL[DOC-MACRO purpose="Render header container for items"]
330
- // CIL[DOC-RESPONSIBILITY responsibility="Create header area for item top content"]
331
- // CIL[DOC-CONTEXT module="item" layer="ui_components" related_files="[]"]
332
- // CIL[DOC-CONTRACT inputs="none" outputs="styled header container" errors="none" side_effects="renders DOM element"]
333
- // CIL[DOC-MICRO logic_summary="Creates full-width header container with justify-between layout" notable_decisions="[]"]
334
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
335
- // CIL[DOC-STABILITY stability="stable"]
336
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
337
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
338
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
339
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
341
+ // CIL[DOC-VECTOR type="context" content="purpose='Action buttons or controls attached to an item'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/separator.tsx"]
342
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
343
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
344
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
340
345
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
341
346
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
347
+ // CIL[END stable_id="~/.framework/src/components/ui/item.tsx:ItemActions:component"]
348
+
349
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/item.tsx:ItemHeader:component" type="component" identity="ItemHeader" parent="~/.framework/src/components/ui/item.tsx"]
350
+ // CIL[DOC-MACRO purpose="Header row that spans the full item width"]
351
+ // CIL[DOC-RESPONSIBILITY responsibility="Renders a header row that spans the full item width"]
352
+ // CIL[DOC-CONTEXT module=".framework/src/components/ui/item" layer="ui" related_files=".framework/src/components/ui/item.tsx,.framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
353
+ // CIL[DOC-CONTRACT inputs="className, ...props" outputs="div JSX" errors="none" side_effects="none"]
354
+ // CIL[DOC-MICRO logic_summary="Renders a basis-full row with item-header slot and justify-between" notable_decisions="none"]
355
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
356
+ // CIL[DOC-STABILITY stable]
342
357
  function ItemHeader({ className, ...props }: React.ComponentProps<"div">) {
343
358
  return (
344
359
  <div
@@ -351,21 +366,22 @@ function ItemHeader({ className, ...props }: React.ComponentProps<"div">) {
351
366
  />
352
367
  )
353
368
  }
354
- // CIL[END chunk_id="item_itemheader_1783796064"]
355
- // CIL[BEGIN chunk_id="item_itemfooter_1783796064" type="function" identity="ItemFooter" parent="none"]
356
- // CIL[DOC-MACRO purpose="Render footer container for items"]
357
- // CIL[DOC-RESPONSIBILITY responsibility="Create footer area for item bottom content"]
358
- // CIL[DOC-CONTEXT module="item" layer="ui_components" related_files="[]"]
359
- // CIL[DOC-CONTRACT inputs="none" outputs="styled footer container" errors="none" side_effects="renders DOM element"]
360
- // CIL[DOC-MICRO logic_summary="Creates full-width footer container with justify-between layout" notable_decisions="[]"]
361
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
362
- // CIL[DOC-STABILITY stability="stable"]
363
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
364
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
365
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
366
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
369
+ // CIL[DOC-VECTOR type="context" content="purpose='Header row that spans the full item width'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/separator.tsx"]
370
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
371
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
372
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
367
373
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
368
374
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
375
+ // CIL[END stable_id="~/.framework/src/components/ui/item.tsx:ItemHeader:component"]
376
+
377
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/item.tsx:ItemFooter:component" type="component" identity="ItemFooter" parent="~/.framework/src/components/ui/item.tsx"]
378
+ // CIL[DOC-MACRO purpose="Footer row that spans the full item width"]
379
+ // CIL[DOC-RESPONSIBILITY responsibility="Renders a footer row that spans the full item width"]
380
+ // CIL[DOC-CONTEXT module=".framework/src/components/ui/item" layer="ui" related_files=".framework/src/components/ui/item.tsx,.framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
381
+ // CIL[DOC-CONTRACT inputs="className, ...props" outputs="div JSX" errors="none" side_effects="none"]
382
+ // CIL[DOC-MICRO logic_summary="Renders a basis-full row with item-footer slot and justify-between" notable_decisions="none"]
383
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
384
+ // CIL[DOC-STABILITY stable]
369
385
  function ItemFooter({ className, ...props }: React.ComponentProps<"div">) {
370
386
  return (
371
387
  <div
@@ -378,21 +394,21 @@ function ItemFooter({ className, ...props }: React.ComponentProps<"div">) {
378
394
  />
379
395
  )
380
396
  }
381
- // CIL[END chunk_id="item_itemfooter_1783796064"]
382
- // CIL[BEGIN chunk_id="item_exports_1783796064" type="exports" identity="exports" parent="none"]
383
- // CIL[DOC-MACRO purpose="Export item components for public use"]
384
- // CIL[DOC-RESPONSIBILITY responsibility="Export all item-related components"]
385
- // CIL[DOC-CONTEXT module="item" layer="ui_components" related_files="[]"]
386
- // CIL[DOC-CONTRACT inputs="none" outputs="exported components" errors="none" side_effects="module exports"]
387
- // CIL[DOC-MICRO logic_summary="Exports comprehensive item component system for consumption" notable_decisions="[]"]
388
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
389
- // CIL[DOC-STABILITY stability="stable"]
390
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
391
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
392
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
393
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
397
+ // CIL[DOC-VECTOR type="context" content="purpose='Footer row that spans the full item width'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/separator.tsx"]
398
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
399
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
400
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
394
401
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
395
402
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
403
+ // CIL[END stable_id="~/.framework/src/components/ui/item.tsx:ItemFooter:component"]
404
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/item.tsx:exports:variable" type="variable" identity="exports" parent="~/.framework/src/components/ui/item.tsx"]
405
+ // CIL[DOC-MACRO purpose="Named exports for the item component family"]
406
+ // CIL[DOC-RESPONSIBILITY responsibility="Exposes all public item subcomponents and style recipes"]
407
+ // CIL[DOC-CONTEXT module=".framework/src/components/ui/item" layer="ui" related_files=".framework/src/components/ui/item.tsx,.framework/src/components/ui/separator.tsx,.framework/src/lib/utils.ts"]
408
+ // CIL[DOC-CONTRACT inputs="none" outputs="named exports" errors="none" side_effects="none"]
409
+ // CIL[DOC-MICRO logic_summary="Exports all public item subcomponents and style recipes" notable_decisions="none"]
410
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
411
+ // CIL[DOC-STABILITY stable]
396
412
  export {
397
413
  Item,
398
414
  ItemMedia,
@@ -405,4 +421,10 @@ export {
405
421
  ItemHeader,
406
422
  ItemFooter,
407
423
  }
408
- // CIL[END chunk_id="item_exports_1783796064"]
424
+ // CIL[DOC-VECTOR type="context" content="purpose='Named exports for the item component family'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/separator.tsx"]
425
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
426
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
427
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
428
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
429
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
430
+ // CIL[END stable_id="~/.framework/src/components/ui/item.tsx:exports:variable"]