spine-framework 0.3.145 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (451) hide show
  1. package/.env.example +76 -0
  2. package/.framework/.spine-manifest.json +19 -0
  3. package/.framework/cli/commands/agents.ts +61 -33
  4. package/.framework/cli/commands/auth.ts +60 -28
  5. package/.framework/cli/commands/create-app.ts +212 -80
  6. package/.framework/cli/commands/dev.ts +184 -68
  7. package/.framework/cli/commands/doctor.ts +324 -152
  8. package/.framework/cli/commands/generate.ts +119 -68
  9. package/.framework/cli/commands/init.ts +141 -242
  10. package/.framework/cli/commands/install-app.ts +1336 -314
  11. package/.framework/cli/commands/items.ts +31 -29
  12. package/.framework/cli/commands/migrate.ts +299 -156
  13. package/.framework/cli/commands/migrations.ts +62 -30
  14. package/.framework/cli/commands/pipelines.ts +31 -29
  15. package/.framework/cli/commands/status.ts +105 -45
  16. package/.framework/cli/commands/system.ts +47 -42
  17. package/.framework/cli/commands/test.ts +161 -102
  18. package/.framework/cli/commands/upgrade.ts +260 -0
  19. package/.framework/cli/commands/validate-app.ts +517 -161
  20. package/.framework/cli/context.ts +117 -85
  21. package/.framework/cli/env-loader.ts +74 -43
  22. package/.framework/cli/index.ts +70 -46
  23. package/.framework/cli/lib/project-files.ts +404 -0
  24. package/.framework/docs/guides/testing-guide.md +1 -1
  25. package/.framework/docs/runtime-types.md +72 -72
  26. package/.framework/functions/_shared/access.ts +84 -0
  27. package/.framework/functions/_shared/agent-runner.ts +5051 -1026
  28. package/.framework/functions/_shared/app-manifest.ts +214 -94
  29. package/.framework/functions/_shared/ast.ts +214 -0
  30. package/.framework/functions/_shared/audit.ts +91 -55
  31. package/.framework/functions/_shared/cil.ts +368 -127
  32. package/.framework/functions/_shared/db.ts +337 -68
  33. package/.framework/functions/_shared/funnel.ts +228 -0
  34. package/.framework/functions/_shared/geo.ts +105 -0
  35. package/.framework/functions/_shared/hash-api-key.ts +94 -17
  36. package/.framework/functions/_shared/index.ts +22 -224
  37. package/.framework/functions/_shared/kb.ts +832 -58
  38. package/.framework/functions/_shared/llm.ts +118 -18
  39. package/.framework/functions/_shared/logging.ts +317 -19
  40. package/.framework/functions/_shared/middleware.ts +701 -131
  41. package/.framework/functions/_shared/notify.ts +70 -0
  42. package/.framework/functions/_shared/outcomes.ts +34 -19
  43. package/.framework/functions/_shared/permissions.ts +501 -315
  44. package/.framework/functions/_shared/pipeline-runner.ts +704 -155
  45. package/.framework/functions/_shared/principal.ts +436 -263
  46. package/.framework/functions/_shared/rate-limit.ts +233 -0
  47. package/.framework/functions/_shared/resolve-credentials.ts +86 -19
  48. package/.framework/functions/_shared/resolve-ids.ts +203 -139
  49. package/.framework/functions/_shared/retry-deliveries.ts +51 -16
  50. package/.framework/functions/_shared/schema-utils.ts +602 -521
  51. package/.framework/functions/_shared/security.ts +345 -0
  52. package/.framework/functions/_shared/testing.ts +197 -172
  53. package/.framework/functions/_shared/tracing.ts +351 -21
  54. package/.framework/functions/_shared/trigger-engine.ts +425 -136
  55. package/.framework/functions/_shared/webhook-registration.ts +71 -70
  56. package/.framework/functions/_shared/webhook-registry.ts +126 -83
  57. package/.framework/functions/account-nodes.ts +30 -30
  58. package/.framework/functions/adapters/generic-webhook-inbound.ts +49 -16
  59. package/.framework/functions/adapters/generic-webhook-outbound.ts +17 -17
  60. package/.framework/functions/adapters/openai-outbound.ts +15 -16
  61. package/.framework/functions/admin-data.ts +596 -173
  62. package/.framework/functions/admin-funnel.ts +64 -60
  63. package/.framework/functions/admin-install-funnel.ts +84 -66
  64. package/.framework/functions/admin-signals.ts +69 -51
  65. package/.framework/functions/ai-agents.ts +431 -106
  66. package/.framework/functions/ai-interactions.ts +186 -112
  67. package/.framework/functions/api-keys.ts +107 -107
  68. package/.framework/functions/apps.ts +154 -136
  69. package/.framework/functions/auth.ts +83 -65
  70. package/.framework/functions/cil-agent-ingest.ts +189 -232
  71. package/.framework/functions/cil-agent.ts +433 -177
  72. package/.framework/functions/cil-callmap.ts +642 -430
  73. package/.framework/functions/cil-config.ts +139 -135
  74. package/.framework/functions/cil-context.ts +214 -127
  75. package/.framework/functions/cil-doc.ts +587 -458
  76. package/.framework/functions/cil-embeddings.ts +453 -364
  77. package/.framework/functions/cil-graph.ts +427 -142
  78. package/.framework/functions/cil-ingest.ts +1418 -1154
  79. package/.framework/functions/cil-pipeline.ts +276 -21
  80. package/.framework/functions/cil-project.ts +659 -132
  81. package/.framework/functions/cil-validate.ts +198 -164
  82. package/.framework/functions/debug-auth.ts +57 -55
  83. package/.framework/functions/deliveries.ts +80 -21
  84. package/.framework/functions/embeddings.ts +1023 -318
  85. package/.framework/functions/eval-harness.ts +146 -108
  86. package/.framework/functions/integration-outbound.ts +205 -75
  87. package/.framework/functions/integration-routes.ts +128 -23
  88. package/.framework/functions/integrations.ts +125 -100
  89. package/.framework/functions/invites.ts +1095 -460
  90. package/.framework/functions/item-progress.ts +158 -102
  91. package/.framework/functions/kb.ts +34 -10
  92. package/.framework/functions/logs.ts +133 -133
  93. package/.framework/functions/observability.ts +152 -122
  94. package/.framework/functions/pipeline-executions.ts +147 -132
  95. package/.framework/functions/pipelines.ts +134 -119
  96. package/.framework/functions/prompt-configs.ts +96 -80
  97. package/.framework/functions/roles.ts +112 -82
  98. package/.framework/functions/security.ts +450 -0
  99. package/.framework/functions/system-cron.ts +117 -80
  100. package/.framework/functions/system.ts +158 -98
  101. package/.framework/functions/tests.ts +29 -29
  102. package/.framework/functions/timers.ts +94 -95
  103. package/.framework/functions/trigger-scheduler.ts +10 -0
  104. package/.framework/functions/triggers.ts +179 -149
  105. package/.framework/functions/types.ts +137 -125
  106. package/.framework/mcp/index.ts +133 -0
  107. package/.framework/mcp/load-env.ts +60 -0
  108. package/.framework/mcp/shared/app-manifest.ts +275 -0
  109. package/.framework/mcp/shared/db.ts +477 -0
  110. package/.framework/mcp/shared/kb.ts +118 -0
  111. package/.framework/mcp/tools/architect.ts +431 -0
  112. package/.framework/mcp/tools/cil/context.ts +345 -0
  113. package/.framework/mcp/tools/cil/graph.ts +242 -0
  114. package/.framework/mcp/tools/cil/ingest.ts +1217 -0
  115. package/.framework/mcp/tools/cil/pipeline-orchestrator.ts +693 -0
  116. package/.framework/mcp/tools/cil/pipeline.ts +767 -0
  117. package/.framework/mcp/tools/cil/project.ts +791 -0
  118. package/.framework/mcp/tools/cil/retrieval.ts +336 -0
  119. package/.framework/mcp/tools/cil/search-core.ts +454 -0
  120. package/.framework/mcp/tools/cil/search.ts +97 -0
  121. package/.framework/mcp/tools/cil/suggest.ts +186 -0
  122. package/.framework/mcp/tools/cil/validate.ts +1369 -0
  123. package/.framework/mcp/tools/kb/delete.ts +139 -0
  124. package/.framework/mcp/tools/kb/index.ts +52 -0
  125. package/.framework/mcp/tools/kb/ingest.ts +84 -0
  126. package/.framework/mcp/tools/kb/list-types.ts +102 -0
  127. package/.framework/mcp/tools/kb/publish.ts +100 -0
  128. package/.framework/mcp/tools/kb/reindex.ts +86 -0
  129. package/.framework/mcp/tools/kb/revoke.ts +85 -0
  130. package/.framework/mcp/tools/kb/search.ts +101 -0
  131. package/.framework/mcp/tools/kb/upsert.ts +125 -0
  132. package/.framework/mcp/tools/observability.ts +510 -0
  133. package/.framework/migrations/001_core_schema.sql +15 -0
  134. package/.framework/migrations/002_core_rls_and_functions.sql +15 -0
  135. package/.framework/migrations/003_core_system_data.sql +16 -1
  136. package/.framework/migrations/004_core_rpc_and_broker.sql +17 -1
  137. package/.framework/migrations/005_core_observability.sql +17 -1
  138. package/.framework/migrations/006_security_hardening_rls.sql +15 -0
  139. package/.framework/migrations/007_kb_article_list.sql +17 -1
  140. package/.framework/migrations/008_items_target.sql +15 -0
  141. package/.framework/migrations/009_roles_slug_unique.sql +15 -0
  142. package/.framework/migrations/010_auth_user_trigger.sql +15 -0
  143. package/.framework/migrations/011_spine_system_account.sql +16 -0
  144. package/.framework/migrations/012_service_role_grants.sql +16 -0
  145. package/.framework/migrations/013_get_account_apps_role_filter.sql +15 -0
  146. package/.framework/migrations/014_apps_required_roles.sql +16 -0
  147. package/.framework/migrations/015_types_kind_slug_unique.sql +15 -0
  148. package/.framework/migrations/016_cil_types.sql +281 -0
  149. package/.framework/migrations/017_cil_stable_ids.sql +37 -0
  150. package/.framework/migrations/018_runtime_tables.sql +129 -0
  151. package/.framework/migrations/019_agent_prompt_columns.sql +56 -0
  152. package/.framework/migrations/020_schema_reconciliation.sql +67 -0
  153. package/.framework/migrations/021_kb_embedding_lifecycle.sql +31 -0
  154. package/.framework/migrations/032_cil_status_migration.sql +73 -0
  155. package/.framework/migrations/033_cil_versioning.sql +73 -0
  156. package/.framework/migrations/034_match_embeddings_knn.sql +115 -0
  157. package/.framework/migrations/035_rate_limits.sql +55 -0
  158. package/.framework/migrations/036_demo_record_flags.sql +72 -0
  159. package/.framework/migrations/037_kb_types_canonical.sql +244 -0
  160. package/.framework/migrations/038_drop_demo_record_flags.sql +38 -0
  161. package/.framework/migrations/042_registration_hierarchy.sql +309 -0
  162. package/.framework/migrations/043_policy_actor_cleanup.sql +39 -0
  163. package/.framework/migrations/044_match_embeddings_filtered_knn.sql +151 -0
  164. package/.framework/migrations/045_security_critical_rls.sql +139 -0
  165. package/.framework/migrations/046_security_missing_rls.sql +79 -0
  166. package/.framework/migrations/047_people_updated_by.sql +27 -0
  167. package/.framework/migrations/048_watcher_last_seen_at.sql +24 -0
  168. package/.framework/migrations/049_security_blocklist.sql +148 -0
  169. package/.framework/migrations/050_notifications.sql +49 -0
  170. package/.framework/migrations/051_message_agent_fields.sql +74 -0
  171. package/.framework/migrations/052_registration_security.sql +421 -0
  172. package/.framework/migrations/053_builtin_action_seeds.sql +66 -0
  173. package/.framework/migrations/054_kb_ingest_lease.sql +157 -0
  174. package/.framework/migrations/055_type_id_drift_reconciliation.sql +33 -0
  175. package/.framework/migrations/056_slug_column_reconciliation.sql +38 -0
  176. package/.framework/migrations/057_pipelines_slug_identity.sql +14 -0
  177. package/.framework/migrations/058_account_data_field_declarations.sql +53 -0
  178. package/.framework/migrations/059_registration_placement_fixes.sql +269 -0
  179. package/.framework/migrations/060_account_person_record_permissions.sql +38 -0
  180. package/.framework/migrations/061_fk_dedup.sql +32 -0
  181. package/.framework/public/spine-logo.svg +10 -3
  182. package/.framework/scripts/app-install-cli.ts +190 -93
  183. package/.framework/scripts/assemble-frontend.sh +127 -44
  184. package/.framework/scripts/assemble-functions.sh +128 -30
  185. package/.framework/scripts/boundary-check.sh +6 -2
  186. package/.framework/scripts/build-manifest.sh +24 -68
  187. package/.framework/scripts/check-core-integrity.sh +15 -76
  188. package/.framework/scripts/checksum-manifest.mts +343 -0
  189. package/.framework/scripts/cil-migrate-markers.ts +403 -0
  190. package/.framework/scripts/fix-cil-markers.mjs +176 -0
  191. package/.framework/scripts/verify-integrity.sh +21 -57
  192. package/.framework/scripts/verify-manifest.mts +305 -0
  193. package/.framework/seeds/types/funnel_signal_use.json +74 -21
  194. package/.framework/seeds/types/spine_instance.json +73 -21
  195. package/.framework/src/App.tsx +118 -72
  196. package/.framework/src/apps/admin/index.tsx +855 -58
  197. package/.framework/src/components/AppWrapper.tsx +43 -45
  198. package/.framework/src/components/CustomAppLoader.tsx +160 -116
  199. package/.framework/src/components/admin/AdminListPage.tsx +46 -44
  200. package/.framework/src/components/admin/AdminSidebar.tsx +57 -47
  201. package/.framework/src/components/admin/AdminStatsCard.tsx +46 -44
  202. package/.framework/src/components/admin/PageInstructions.tsx +98 -2
  203. package/.framework/src/components/admin/SortableTableHeader.tsx +44 -45
  204. package/.framework/src/components/app-shell/GenericAppShell.tsx +64 -65
  205. package/.framework/src/components/app-shell/GenericDetailPage.tsx +44 -47
  206. package/.framework/src/components/app-shell/GenericListPage.tsx +45 -49
  207. package/.framework/src/components/app-sidebar.tsx +42 -45
  208. package/.framework/src/components/auth/ProtectedRoute.tsx +48 -41
  209. package/.framework/src/components/auth/TurnstileWidget.tsx +27 -0
  210. package/.framework/src/components/kb/KBArticleEditor.tsx +231 -22
  211. package/.framework/src/components/kb/KBArticleList.tsx +251 -10
  212. package/.framework/src/components/layout/AppShell.tsx +51 -45
  213. package/.framework/src/components/layout/Header.tsx +42 -43
  214. package/.framework/src/components/layout/Layout.tsx +46 -46
  215. package/.framework/src/components/layout/Sidebar.tsx +196 -96
  216. package/.framework/src/components/runtime/DataDetailHeader.tsx +55 -30
  217. package/.framework/src/components/runtime/DataDetailPage.tsx +31 -269
  218. package/.framework/src/components/runtime/DataFilters.tsx +49 -74
  219. package/.framework/src/components/runtime/DataHeader.tsx +53 -32
  220. package/.framework/src/components/runtime/DataListPage.tsx +51 -155
  221. package/.framework/src/components/runtime/DataStats.tsx +66 -44
  222. package/.framework/src/components/runtime/DataTable.tsx +49 -149
  223. package/.framework/src/components/runtime/SchemaDetailForm.tsx +45 -75
  224. package/.framework/src/components/runtime/index.ts +119 -16
  225. package/.framework/src/components/search-form.tsx +46 -29
  226. package/.framework/src/components/shared/AgentView.tsx +65 -48
  227. package/.framework/src/components/shared/FieldRenderer.tsx +144 -50
  228. package/.framework/src/components/shared/InviteManager.tsx +207 -97
  229. package/.framework/src/components/shared/MemberList.tsx +97 -0
  230. package/.framework/src/components/shared/SchemaFields.tsx +107 -86
  231. package/.framework/src/components/ui/DataTable.tsx +80 -68
  232. package/.framework/src/components/ui/Form.tsx +157 -146
  233. package/.framework/src/components/ui/ItemCard.tsx +74 -67
  234. package/.framework/src/components/ui/ItemListView.tsx +73 -68
  235. package/.framework/src/components/ui/LoadingSpinner.tsx +43 -48
  236. package/.framework/src/components/ui/Modal.tsx +78 -68
  237. package/.framework/src/components/ui/RichTextEditor.tsx +89 -69
  238. package/.framework/src/components/ui/accordion.tsx +85 -86
  239. package/.framework/src/components/ui/alert-dialog.tsx +197 -184
  240. package/.framework/src/components/ui/alert.tsx +105 -94
  241. package/.framework/src/components/ui/aspect-ratio.tsx +57 -43
  242. package/.framework/src/components/ui/avatar.tsx +122 -107
  243. package/.framework/src/components/ui/badge.tsx +60 -55
  244. package/.framework/src/components/ui/breadcrumb.tsx +127 -128
  245. package/.framework/src/components/ui/button-group.tsx +86 -72
  246. package/.framework/src/components/ui/button.tsx +71 -50
  247. package/.framework/src/components/ui/calendar.tsx +72 -57
  248. package/.framework/src/components/ui/card.tsx +136 -129
  249. package/.framework/src/components/ui/carousel.tsx +226 -107
  250. package/.framework/src/components/ui/chart.tsx +252 -147
  251. package/.framework/src/components/ui/checkbox.tsx +43 -44
  252. package/.framework/src/components/ui/collapsible.tsx +86 -71
  253. package/.framework/src/components/ui/combobox.tsx +282 -249
  254. package/.framework/src/components/ui/command.tsx +158 -146
  255. package/.framework/src/components/ui/context-menu.tsx +239 -240
  256. package/.framework/src/components/ui/dialog.tsx +174 -157
  257. package/.framework/src/components/ui/direction.tsx +72 -56
  258. package/.framework/src/components/ui/drawer.tsx +168 -169
  259. package/.framework/src/components/ui/dropdown-menu.tsx +254 -223
  260. package/.framework/src/components/ui/empty.tsx +131 -120
  261. package/.framework/src/components/ui/field.tsx +205 -173
  262. package/.framework/src/components/ui/hover-card.tsx +71 -72
  263. package/.framework/src/components/ui/input-group.tsx +148 -133
  264. package/.framework/src/components/ui/input-otp.tsx +99 -86
  265. package/.framework/src/components/ui/input.tsx +43 -41
  266. package/.framework/src/components/ui/item.tsx +207 -185
  267. package/.framework/src/components/ui/kbd.tsx +57 -56
  268. package/.framework/src/components/ui/label.tsx +45 -41
  269. package/.framework/src/components/ui/menubar.tsx +268 -236
  270. package/.framework/src/components/ui/native-select.tsx +85 -86
  271. package/.framework/src/components/ui/navigation-menu.tsx +166 -156
  272. package/.framework/src/components/ui/pagination.tsx +131 -141
  273. package/.framework/src/components/ui/popover.tsx +125 -128
  274. package/.framework/src/components/ui/progress.tsx +47 -44
  275. package/.framework/src/components/ui/radio-group.tsx +60 -55
  276. package/.framework/src/components/ui/resizable.tsx +85 -72
  277. package/.framework/src/components/ui/scroll-area.tsx +57 -58
  278. package/.framework/src/components/ui/select.tsx +182 -169
  279. package/.framework/src/components/ui/separator.tsx +42 -43
  280. package/.framework/src/components/ui/sheet.tsx +170 -159
  281. package/.framework/src/components/ui/sidebar.tsx +395 -398
  282. package/.framework/src/components/ui/skeleton.tsx +42 -43
  283. package/.framework/src/components/ui/slider.tsx +61 -44
  284. package/.framework/src/components/ui/sonner.tsx +44 -44
  285. package/.framework/src/components/ui/spinner.tsx +47 -42
  286. package/.framework/src/components/ui/switch.tsx +56 -42
  287. package/.framework/src/components/ui/table-primitives.tsx +272 -132
  288. package/.framework/src/components/ui/table.tsx +140 -142
  289. package/.framework/src/components/ui/tabs.tsx +110 -93
  290. package/.framework/src/components/ui/textarea.tsx +43 -44
  291. package/.framework/src/components/ui/toggle-group.tsx +87 -71
  292. package/.framework/src/components/ui/toggle.tsx +56 -56
  293. package/.framework/src/components/ui/tooltip.tsx +99 -85
  294. package/.framework/src/contexts/AppContext.tsx +166 -114
  295. package/.framework/src/contexts/AuthContext.tsx +232 -137
  296. package/.framework/src/hooks/use-mobile.ts +43 -44
  297. package/.framework/src/hooks/useApi.ts +185 -172
  298. package/.framework/src/hooks/useAppPath.ts +31 -29
  299. package/.framework/src/hooks/useApps.ts +77 -42
  300. package/.framework/src/hooks/useEntityList.ts +66 -29
  301. package/.framework/src/hooks/useEntityRecord.ts +76 -32
  302. package/.framework/src/hooks/useForm.ts +62 -30
  303. package/.framework/src/hooks/useListSchema.ts +60 -43
  304. package/.framework/src/hooks/useSchemaRecord.ts +115 -95
  305. package/.framework/src/lib/api.ts +258 -134
  306. package/.framework/src/lib/registration.ts +181 -0
  307. package/.framework/src/lib/supabase.ts +118 -81
  308. package/.framework/src/lib/utils.ts +266 -266
  309. package/.framework/src/main.tsx +43 -44
  310. package/.framework/src/pages/DashboardPage.tsx +44 -43
  311. package/.framework/src/pages/NoAppPage.tsx +50 -0
  312. package/.framework/src/pages/NotFoundPage.tsx +32 -29
  313. package/.framework/src/pages/SetupPage.tsx +34 -33
  314. package/.framework/src/pages/admin/AIAgentDetailPage.tsx +69 -58
  315. package/.framework/src/pages/admin/AIAgentsPage.tsx +43 -40
  316. package/.framework/src/pages/admin/APIKeyDetailPage.tsx +63 -55
  317. package/.framework/src/pages/admin/APIKeysPage.tsx +44 -42
  318. package/.framework/src/pages/admin/AlertsConfigPage.tsx +117 -94
  319. package/.framework/src/pages/admin/AppDetailPage.tsx +48 -42
  320. package/.framework/src/pages/admin/AppsPage.tsx +45 -42
  321. package/.framework/src/pages/admin/DeliveriesPage.tsx +49 -17
  322. package/.framework/src/pages/admin/DesignedPage.tsx +31 -30
  323. package/.framework/src/pages/admin/EmbeddingDetailPage.tsx +58 -0
  324. package/.framework/src/pages/admin/EmbeddingsPage.tsx +49 -0
  325. package/.framework/src/pages/admin/ExtendedShadcnTestPage.tsx +31 -29
  326. package/.framework/src/pages/admin/IncrementalShadcnTestPage.tsx +46 -29
  327. package/.framework/src/pages/admin/IntegratedDashboard.tsx +32 -29
  328. package/.framework/src/pages/admin/IntegrationDetailPage.tsx +68 -55
  329. package/.framework/src/pages/admin/IntegrationsPage.tsx +45 -42
  330. package/.framework/src/pages/admin/InvitesPage.tsx +60 -44
  331. package/.framework/src/pages/admin/LogsPage.tsx +87 -137
  332. package/.framework/src/pages/admin/MinimalShadcnTestPage.tsx +31 -29
  333. package/.framework/src/pages/admin/ObservabilityDashboard.tsx +150 -89
  334. package/.framework/src/pages/admin/PipelineDetailPage.tsx +77 -104
  335. package/.framework/src/pages/admin/PipelineExecutionsPage.tsx +44 -43
  336. package/.framework/src/pages/admin/PipelinesPage.tsx +59 -145
  337. package/.framework/src/pages/admin/PromptConfigDetailPage.tsx +53 -42
  338. package/.framework/src/pages/admin/PromptConfigsPage.tsx +47 -117
  339. package/.framework/src/pages/admin/ProperlyDesignedPage.tsx +31 -44
  340. package/.framework/src/pages/admin/RoleDetailPage.tsx +49 -92
  341. package/.framework/src/pages/admin/RolesPage.tsx +47 -164
  342. package/.framework/src/pages/admin/SecurityPage.tsx +310 -0
  343. package/.framework/src/pages/admin/SelectTestPage.tsx +30 -32
  344. package/.framework/src/pages/admin/ShadcnTestPage.tsx +37 -44
  345. package/.framework/src/pages/admin/SimpleDashboard.tsx +32 -44
  346. package/.framework/src/pages/admin/TestRunDetailPage.tsx +97 -44
  347. package/.framework/src/pages/admin/TestingDashboard.tsx +126 -71
  348. package/.framework/src/pages/admin/TimerDetailPage.tsx +67 -55
  349. package/.framework/src/pages/admin/TimersPage.tsx +44 -42
  350. package/.framework/src/pages/admin/TriggerDetailPage.tsx +47 -42
  351. package/.framework/src/pages/admin/TriggersPage.tsx +58 -57
  352. package/.framework/src/pages/admin/TypeDetailPage.tsx +91 -55
  353. package/.framework/src/pages/admin/TypesPage.tsx +45 -42
  354. package/.framework/src/pages/admin/cil/CILAgentPage.tsx +258 -128
  355. package/.framework/src/pages/admin/cil/CILChunkDetailPage.tsx +127 -123
  356. package/.framework/src/pages/admin/cil/CILDashboardPage.tsx +308 -235
  357. package/.framework/src/pages/admin/cil/CILFileListPage.tsx +159 -110
  358. package/.framework/src/pages/admin/cil/CILFileSelectPage.tsx +432 -0
  359. package/.framework/src/pages/admin/cil/CILGraphPage.tsx +200 -178
  360. package/.framework/src/pages/admin/cil/CILIngestionPage.tsx +286 -239
  361. package/.framework/src/pages/admin/cil/CILProjectsPage.tsx +211 -90
  362. package/.framework/src/pages/admin/cil/CILSearchPage.tsx +156 -143
  363. package/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx +379 -0
  364. package/.framework/src/pages/admin/cil/CILVersionsPage.tsx +337 -0
  365. package/.framework/src/pages/admin/cil/FlexiblePipelinePage.tsx +219 -214
  366. package/.framework/src/pages/admin/kb/KBAdminPage.tsx +64 -0
  367. package/.framework/src/pages/auth/AuthConfirmPage.tsx +135 -65
  368. package/.framework/src/pages/auth/ForgotPasswordPage.tsx +39 -31
  369. package/.framework/src/pages/auth/LoginPage.tsx +38 -32
  370. package/.framework/src/pages/auth/PendingApprovalPage.tsx +31 -28
  371. package/.framework/src/pages/auth/RegisterPage.tsx +429 -155
  372. package/.framework/src/pages/spine-framework/APIPage.tsx +33 -30
  373. package/.framework/src/pages/spine-framework/CLIPage.tsx +32 -30
  374. package/.framework/src/types/auth.ts +101 -93
  375. package/.framework/src/types/types.ts +283 -262
  376. package/.framework/templates/project.json +87 -0
  377. package/.framework/templates/spine.config.neutral.json +7 -0
  378. package/.framework/tests/api/api-surface.test.ts +381 -0
  379. package/.framework/tests/fixtures/seed.ts +427 -0
  380. package/.framework/tests/fixtures/teardown.ts +228 -0
  381. package/.framework/tests/reporter.ts +351 -0
  382. package/.framework/tests/setup.ts +135 -0
  383. package/.framework/tests/ui/ui-sweep.ts +278 -0
  384. package/.framework/tests/unit/admin-data-logger.test.ts +310 -0
  385. package/.framework/tests/unit/agent-runner.test.ts +2389 -0
  386. package/.framework/tests/unit/ai-interactions.test.ts +81 -0
  387. package/.framework/tests/unit/app-manifest.test.ts +359 -0
  388. package/.framework/tests/unit/assembly-scripts.test.ts +172 -0
  389. package/.framework/tests/unit/cil-determinism.test.ts +85 -0
  390. package/.framework/tests/unit/core-isolation.test.ts +153 -0
  391. package/.framework/tests/unit/funnel-signals.test.ts +135 -0
  392. package/.framework/tests/unit/install-app.test.ts +1759 -0
  393. package/.framework/tests/unit/invites-security.test.ts +572 -0
  394. package/.framework/tests/unit/kb-ingest-lease.test.ts +287 -0
  395. package/.framework/tests/unit/kb-search.test.ts +119 -0
  396. package/.framework/tests/unit/migrate.test.ts +509 -0
  397. package/.framework/tests/unit/notify.test.ts +136 -0
  398. package/.framework/tests/unit/permissions.test.ts +269 -0
  399. package/.framework/tests/unit/pipeline-runner.test.ts +755 -0
  400. package/.framework/tests/unit/principal-cache.test.ts +138 -0
  401. package/.framework/tests/unit/retrieval-golden.test.ts +520 -0
  402. package/.framework/tests/unit/runtime-isolation.test.ts +642 -0
  403. package/.framework/tests/unit/schema-utils.test.ts +225 -0
  404. package/.framework/tests/unit/trigger-engine.test.ts +513 -0
  405. package/.framework/tests/unit/validate-app.test.ts +527 -0
  406. package/README.md +34 -3
  407. package/bin/spine-framework.cjs +1 -0
  408. package/config/tailwind.config.cjs +7 -0
  409. package/config/tsconfig.functions.json +42 -0
  410. package/config/tsconfig.json +37 -9
  411. package/config/vite.config.ts +31 -2
  412. package/netlify.toml +31 -3
  413. package/package.json +46 -29
  414. package/scripts/assemble-frontend.sh +127 -44
  415. package/scripts/assemble-functions.sh +127 -29
  416. package/scripts/boundary-check.sh +6 -2
  417. package/scripts/build-manifest.sh +24 -68
  418. package/scripts/checksum-manifest.mts +345 -0
  419. package/scripts/dev-clean.sh +86 -0
  420. package/scripts/dev-netlify.sh +49 -0
  421. package/scripts/netlify-dev-wrapper.sh +2 -0
  422. package/scripts/verify-install.ts +358 -0
  423. package/scripts/verify-integrity.sh +21 -57
  424. package/scripts/verify-manifest.mts +305 -0
  425. package/templates/project/gitignore +45 -0
  426. package/{config → templates/project}/package-lock.json +22335 -9366
  427. package/vitest.config.ts +46 -0
  428. package/.framework/public/spine.config.json +0 -91
  429. package/config/deno.lock +0 -108
  430. package/config/tsconfig.node.tsbuildinfo +0 -1
  431. package/config/tsconfig.tsbuildinfo +0 -1
  432. package/config/vite.config.d.ts +0 -2
  433. package/custom/.devin/AGENT.md +0 -357
  434. package/custom/.devin/skills/install-app/SKILL.md +0 -39
  435. package/custom/.devin/skills/spine-workbench-discovery/SKILL.md +0 -39
  436. package/custom/.devin/skills/spine-workbench-idea/SKILL.md +0 -36
  437. package/custom/.devin/skills/spine-workbench-implement/SKILL.md +0 -46
  438. package/custom/.devin/skills/spine-workbench-initiative/SKILL.md +0 -28
  439. package/custom/.devin/skills/spine-workbench-plan/SKILL.md +0 -38
  440. package/custom/.devin/workflows/app-install.yaml +0 -83
  441. package/custom/README.md +0 -79
  442. package/docs/README.md +0 -15
  443. package/scripts/app-install-cli.ts +0 -286
  444. package/scripts/check-core-integrity.sh +0 -82
  445. package/scripts/ingest-chunks.cjs +0 -202
  446. package/scripts/kb-chunk-parser.cjs +0 -312
  447. package/scripts/kb-chunk-parser.ts +0 -330
  448. package/scripts/kb-ingest-docs.ts +0 -203
  449. package/scripts/load-test-app-install.ts +0 -484
  450. package/scripts/test-login.js +0 -33
  451. package/spine.config.json +0 -91
@@ -1,72 +1,71 @@
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
- // CIL[BEGIN chunk_id="select_module_header_1783758409" type="module_header" identity="imports" parent="none"]
14
- // CIL[DOC-MACRO purpose="Import dependencies for select component library"]
15
- // CIL[DOC-RESPONSIBILITY responsibility="Import external React UI primitives and utilities"]
16
- // CIL[DOC-CONTEXT module="select" layer="ui_components" related_files="[\".framework/src/components/ui/table-primitives.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"\\\"]"]
17
- // CIL[DOC-CONTRACT inputs="none" outputs="React, Select primitive, utils, icons" errors="none" side_effects="Module imports"]
18
- // CIL[DOC-MICRO logic_summary="Imports React, Radix UI Select primitive, utility functions and chevron/check icons" notable_decisions="[]"]
19
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
1
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/select.tsx:use_client:client_directive" type="client_directive" identity="use_client" parent="~/.framework/src/components/ui/select.tsx:file"]
2
+ // CIL[DOC-MACRO purpose="Next.js use client directive"]
3
+ // CIL[DOC-RESPONSIBILITY responsibility="Provide the chunk's functionality"]
4
+ // CIL[DOC-CONTEXT module="components/ui" layer="presentation" related_files=".framework/src/components/ui/select.tsx,.framework/src/lib/utils.ts"]
5
+ // CIL[DOC-CONTRACT inputs="none" outputs="client rendering directive" side_effects="none" errors="none"]
6
+ // CIL[DOC-MICRO logic_summary="Marks this module as a client component" notable_decisions="[]"]
7
+ // CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
20
8
  // CIL[DOC-STABILITY stability="stable"]
21
- // CIL[DOC-AUDIENCE audience="developer"]
22
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/ui/table-primitives.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, \."]
23
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
24
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
25
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
9
+ "use client"
10
+ // CIL[DOC-VECTOR type="context" content="purpose='Next.js use client directive'; No verified external callers; imports: .framework/src/lib/utils.ts"]
11
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
12
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
13
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
26
14
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
27
15
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
28
- "use client"
16
+ // CIL[END stable_id="~/.framework/src/components/ui/select.tsx:use_client:client_directive"]
29
17
 
18
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/select.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/components/ui/select.tsx:file"]
19
+ // CIL[DOC-MACRO purpose="shadcn/ui Select component module built on Radix UI"]
20
+ // CIL[DOC-RESPONSIBILITY responsibility="Provide shadcn/ui Select primitives and their dependencies"]
21
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/lib/utils.ts"]
22
+ // CIL[DOC-CONTRACT inputs="none" outputs="React, SelectPrimitive, cn, and icon bindings available to the module" side_effects="none" errors="none"]
23
+ // CIL[DOC-MICRO logic_summary="Imports React, Radix UI Select primitive, utility and icon dependencies" notable_decisions="[]"]
24
+ // CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
25
+ // CIL[DOC-STABILITY stability="stable"]
26
+ // CIL[DOC-AUDIENCE audience="frontend"]
30
27
  import * as React from "react"
31
28
  import { Select as SelectPrimitive } from "radix-ui"
32
29
 
33
30
  import { cn } from "@/lib/utils"
34
31
  import { ChevronDownIcon, CheckIcon, ChevronUpIcon } from "lucide-react"
35
- // CIL[END chunk_id="select_module_header_1783758409"]
36
- // CIL[BEGIN chunk_id="select_select_1783758409" type="function" identity="Select" parent="none"]
37
- // CIL[DOC-MACRO purpose="Root select component wrapper"]
38
- // CIL[DOC-RESPONSIBILITY responsibility="Provide select root container with data attributes"]
39
- // CIL[DOC-CONTEXT module="select" layer="ui_components" related_files="[\".framework/src/components/ui/table-primitives.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
40
- // CIL[DOC-CONTRACT inputs="none" outputs="SelectPrimitive.Root" errors="none" side_effects="DOM rendering"]
41
- // CIL[DOC-MICRO logic_summary="Thin wrapper around Radix UI Select Root with data-slot attribute" notable_decisions="[]"]
42
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
43
- // CIL[DOC-STABILITY stability="stable"]
44
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/ui/table-primitives.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
45
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
46
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
47
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
32
+ // CIL[DOC-VECTOR type="context" content="purpose='shadcn/ui Select component module built on Radix UI'; No verified external callers; imports: .framework/src/lib/utils.ts"]
33
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
34
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
35
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
48
36
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
49
37
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
38
+ // CIL[END stable_id="~/.framework/src/components/ui/select.tsx:module_header:module_header"]
39
+
40
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/select.tsx:select:function" type="function" identity="select" parent="~/.framework/src/components/ui/select.tsx:module_header:module_header"]
41
+ // CIL[DOC-MACRO purpose="Renders a styled Radix Select root wrapper"]
42
+ // CIL[DOC-RESPONSIBILITY responsibility="Render and style the select select subcomponent"]
43
+ // CIL[DOC-CONTEXT module="components/ui" layer="presentation" related_files=".framework/src/components/ui/select.tsx,.framework/src/lib/utils.ts"]
44
+ // CIL[DOC-CONTRACT inputs="...props: React.ComponentProps<typeof SelectPrimitive.Root>" outputs="JSX.Element" side_effects="none" errors="none"]
45
+ // CIL[DOC-MICRO logic_summary="Spreads props onto SelectPrimitive.Root with a data-slot attribute" notable_decisions="[]"]
46
+ // CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
47
+ // CIL[DOC-STABILITY stability="stable"]
50
48
  function Select({
51
49
  ...props
52
50
  }: React.ComponentProps<typeof SelectPrimitive.Root>) {
53
51
  return <SelectPrimitive.Root data-slot="select" {...props} />
54
52
  }
55
- // CIL[END chunk_id="select_select_1783758409"]
56
- // CIL[BEGIN chunk_id="select_selectgroup_1783758409" type="function" identity="SelectGroup" parent="none"]
57
- // CIL[DOC-MACRO purpose="Group container for select items"]
58
- // CIL[DOC-RESPONSIBILITY responsibility="Provide scrollable container with styling for select options"]
59
- // CIL[DOC-CONTEXT module="select" layer="ui_components" related_files="[\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/functions/_shared/principal.ts\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/functions/_shared/schema-utils.ts\",\"custom/apps/portal/pages/ContentPage.tsx\",\"\\\"]"]
60
- // CIL[DOC-CONTRACT inputs="none" outputs="Styled group container" errors="none" side_effects="DOM rendering"]
61
- // CIL[DOC-MICRO logic_summary="Creates scrollable group container with padding using Tailwind classes" notable_decisions="[]"]
62
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
63
- // CIL[DOC-STABILITY stability="stable"]
64
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/principal.ts, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/functions/_shared/schema-utils.ts, custom/apps/portal/pages/ContentPage.tsx, \."]
65
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
66
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
67
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
53
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders a styled Radix Select root wrapper'; 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"]
68
57
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
69
58
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
59
+ // CIL[END stable_id="~/.framework/src/components/ui/select.tsx:select:function"]
60
+
61
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/select.tsx:selectgroup:function" type="function" identity="selectgroup" parent="~/.framework/src/components/ui/select.tsx:module_header:module_header"]
62
+ // CIL[DOC-MACRO purpose="Renders a styled Select group container"]
63
+ // CIL[DOC-RESPONSIBILITY responsibility="Render and style the selectgroup select subcomponent"]
64
+ // CIL[DOC-CONTEXT module="components/ui" layer="presentation" related_files=".framework/src/components/ui/select.tsx,.framework/src/lib/utils.ts"]
65
+ // CIL[DOC-CONTRACT inputs="className?: string, ...props: SelectPrimitive.Group props" outputs="JSX.Element" side_effects="none" errors="none"]
66
+ // CIL[DOC-MICRO logic_summary="Wraps SelectPrimitive.Group with padding and scroll margin utilities" notable_decisions="[]"]
67
+ // CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
68
+ // CIL[DOC-STABILITY stability="stable"]
70
69
  function SelectGroup({
71
70
  className,
72
71
  ...props
@@ -79,41 +78,43 @@ function SelectGroup({
79
78
  />
80
79
  )
81
80
  }
82
- // CIL[END chunk_id="select_selectgroup_1783758409"]
83
- // CIL[BEGIN chunk_id="select_selectvalue_1783758409" type="function" identity="SelectValue" parent="none"]
84
- // CIL[DOC-MACRO purpose="Display selected value in select"]
85
- // CIL[DOC-RESPONSIBILITY responsibility="Show current selection with data attributes"]
86
- // CIL[DOC-CONTEXT module="select" layer="ui_components" related_files="[\".framework/functions/_shared/principal.ts\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\".framework/migrations/015_simplify_apps_table.sql\",\"custom/apps/cortex/functions/custom_cil-embeddings.ts\",\"\\\"]"]
87
- // CIL[DOC-CONTRACT inputs="none" outputs="SelectPrimitive.Value" errors="none" side_effects="DOM rendering"]
88
- // CIL[DOC-MICRO logic_summary="Wrapper around Radix UI Select Value with data-slot attribute" notable_decisions="[]"]
89
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
90
- // CIL[DOC-STABILITY stability="stable"]
91
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: .framework/functions/_shared/principal.ts, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/src/pages/admin/IntegrationsPage.tsx, .framework/migrations/015_simplify_apps_table.sql, custom/apps/cortex/functions/custom_cil-embeddings.ts, \."]
92
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
93
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
94
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
81
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders a styled Select group container'; No verified external callers; imports: .framework/src/lib/utils.ts"]
82
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
83
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
84
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
95
85
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
96
86
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
87
+ // CIL[END stable_id="~/.framework/src/components/ui/select.tsx:selectgroup:function"]
88
+
89
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/select.tsx:selectvalue:function" type="function" identity="selectvalue" parent="~/.framework/src/components/ui/select.tsx:module_header:module_header"]
90
+ // CIL[DOC-MACRO purpose="Renders the current select value placeholder"]
91
+ // CIL[DOC-RESPONSIBILITY responsibility="Render and style the selectvalue select subcomponent"]
92
+ // CIL[DOC-CONTEXT module="components/ui" layer="presentation" related_files=".framework/src/components/ui/select.tsx,.framework/src/lib/utils.ts"]
93
+ // CIL[DOC-CONTRACT inputs="...props: SelectPrimitive.Value props" outputs="JSX.Element" side_effects="none" errors="none"]
94
+ // CIL[DOC-MICRO logic_summary="Wraps SelectPrimitive.Value with a data-slot attribute" notable_decisions="[]"]
95
+ // CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
96
+ // CIL[DOC-STABILITY stability="stable"]
97
97
  function SelectValue({
98
98
  ...props
99
99
  }: React.ComponentProps<typeof SelectPrimitive.Value>) {
100
100
  return <SelectPrimitive.Value data-slot="select-value" {...props} />
101
101
  }
102
- // CIL[END chunk_id="select_selectvalue_1783758409"]
103
- // CIL[BEGIN chunk_id="select_selecttrigger_1783758409" type="function" identity="SelectTrigger" parent="none"]
104
- // CIL[DOC-MACRO purpose="Trigger button to open select dropdown"]
105
- // CIL[DOC-RESPONSIBILITY responsibility="Handle select opening with styled trigger and chevron icon"]
106
- // CIL[DOC-CONTEXT module="select" layer="ui_components" related_files="[]"]
107
- // CIL[DOC-CONTRACT inputs="none" outputs="Styled trigger button" errors="none" side_effects="DOM event handling"]
108
- // CIL[DOC-MICRO logic_summary="Creates styled trigger with size variants, chevron icon and comprehensive styling" notable_decisions="[]"]
109
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
110
- // CIL[DOC-STABILITY stability="stable"]
111
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
112
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
113
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
114
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
102
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders the current select value placeholder'; No verified external callers; imports: .framework/src/lib/utils.ts"]
103
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
104
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
105
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
115
106
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
116
107
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
108
+ // CIL[END stable_id="~/.framework/src/components/ui/select.tsx:selectvalue:function"]
109
+
110
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/select.tsx:selecttrigger:function" type="function" identity="selecttrigger" parent="~/.framework/src/components/ui/select.tsx:module_header:module_header"]
111
+ // CIL[DOC-MACRO purpose="Renders a styled select trigger button"]
112
+ // CIL[DOC-RESPONSIBILITY responsibility="Render and style the selecttrigger select subcomponent"]
113
+ // CIL[DOC-CONTEXT module="components/ui" layer="presentation" related_files=".framework/src/components/ui/select.tsx,.framework/src/lib/utils.ts"]
114
+ // CIL[DOC-CONTRACT inputs="className?: string, size: 'sm' | 'default' (default), children, ...props: SelectPrimitive.Trigger props" outputs="JSX.Element" side_effects="none" errors="none"]
115
+ // CIL[DOC-MICRO logic_summary="Composes SelectPrimitive.Trigger with size-aware Tailwind styling and a chevron icon" notable_decisions="[]"]
116
+ // CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
117
+ // CIL[DOC-STABILITY stability="stable"]
117
118
  function SelectTrigger({
118
119
  className,
119
120
  size = "default",
@@ -139,21 +140,22 @@ function SelectTrigger({
139
140
  </SelectPrimitive.Trigger>
140
141
  )
141
142
  }
142
- // CIL[END chunk_id="select_selecttrigger_1783758409"]
143
- // CIL[BEGIN chunk_id="select_selectcontent_1783758409" type="function" identity="SelectContent" parent="none"]
144
- // CIL[DOC-MACRO purpose="Dropdown content container with positioning"]
145
- // CIL[DOC-RESPONSIBILITY responsibility="Render dropdown with portal, viewport and scroll buttons"]
146
- // CIL[DOC-CONTEXT module="select" layer="ui_components" related_files="[]"]
147
- // CIL[DOC-CONTRACT inputs="none" outputs="Styled dropdown content" errors="none" side_effects="DOM portal rendering"]
148
- // CIL[DOC-MICRO logic_summary="Creates positioned dropdown with portal, viewport, scroll buttons and animations" notable_decisions="[]"]
149
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
150
- // CIL[DOC-STABILITY stability="stable"]
151
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
152
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
153
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
154
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
143
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders a styled select trigger button'; No verified external callers; imports: .framework/src/lib/utils.ts"]
144
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
145
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
146
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
155
147
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
156
148
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
149
+ // CIL[END stable_id="~/.framework/src/components/ui/select.tsx:selecttrigger:function"]
150
+
151
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/select.tsx:selectcontent:function" type="function" identity="selectcontent" parent="~/.framework/src/components/ui/select.tsx:module_header:module_header"]
152
+ // CIL[DOC-MACRO purpose="Renders the select dropdown content panel"]
153
+ // CIL[DOC-RESPONSIBILITY responsibility="Render and style the selectcontent select subcomponent"]
154
+ // CIL[DOC-CONTEXT module="components/ui" layer="presentation" related_files=".framework/src/components/ui/select.tsx,.framework/src/lib/utils.ts"]
155
+ // CIL[DOC-CONTRACT inputs="className?: string, children, position: 'item-aligned' | 'popper' (default item-aligned), align, ...props: SelectPrimitive.Content props" outputs="JSX.Element" side_effects="none" errors="none"]
156
+ // CIL[DOC-MICRO logic_summary="Portals SelectPrimitive.Content with positioning, scroll buttons and animation data attributes" notable_decisions="[]"]
157
+ // CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
158
+ // CIL[DOC-STABILITY stability="stable"]
157
159
  function SelectContent({
158
160
  className,
159
161
  children,
@@ -186,21 +188,22 @@ function SelectContent({
186
188
  </SelectPrimitive.Portal>
187
189
  )
188
190
  }
189
- // CIL[END chunk_id="select_selectcontent_1783758409"]
190
- // CIL[BEGIN chunk_id="select_selectlabel_1783758409" type="function" identity="SelectLabel" parent="none"]
191
- // CIL[DOC-MACRO purpose="Label component for select accessibility"]
192
- // CIL[DOC-RESPONSIBILITY responsibility="Provide styled label with proper typography and spacing"]
193
- // CIL[DOC-CONTEXT module="select" layer="ui_components" related_files="[]"]
194
- // CIL[DOC-CONTRACT inputs="none" outputs="Styled label element" errors="none" side_effects="DOM rendering"]
195
- // CIL[DOC-MICRO logic_summary="Creates styled label using Radix UI Label with muted text color and padding" notable_decisions="[]"]
196
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
197
- // CIL[DOC-STABILITY stability="stable"]
198
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
199
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
200
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
201
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
191
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders the select dropdown content panel'; No verified external callers; imports: .framework/src/lib/utils.ts"]
192
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
193
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
194
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
202
195
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
203
196
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
197
+ // CIL[END stable_id="~/.framework/src/components/ui/select.tsx:selectcontent:function"]
198
+
199
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/select.tsx:selectlabel:function" type="function" identity="selectlabel" parent="~/.framework/src/components/ui/select.tsx:module_header:module_header"]
200
+ // CIL[DOC-MACRO purpose="Renders a styled label for a select group"]
201
+ // CIL[DOC-RESPONSIBILITY responsibility="Render and style the selectlabel select subcomponent"]
202
+ // CIL[DOC-CONTEXT module="components/ui" layer="presentation" related_files=".framework/src/components/ui/select.tsx,.framework/src/lib/utils.ts"]
203
+ // CIL[DOC-CONTRACT inputs="className?: string, ...props: SelectPrimitive.Label props" outputs="JSX.Element" side_effects="none" errors="none"]
204
+ // CIL[DOC-MICRO logic_summary="Wraps SelectPrimitive.Label with muted-foreground text styling" notable_decisions="[]"]
205
+ // CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
206
+ // CIL[DOC-STABILITY stability="stable"]
204
207
  function SelectLabel({
205
208
  className,
206
209
  ...props
@@ -213,21 +216,22 @@ function SelectLabel({
213
216
  />
214
217
  )
215
218
  }
216
- // CIL[END chunk_id="select_selectlabel_1783758409"]
217
- // CIL[BEGIN chunk_id="select_selectitem_1783758409" type="function" identity="SelectItem" parent="none"]
218
- // CIL[DOC-MACRO purpose="Individual selectable option in dropdown"]
219
- // CIL[DOC-RESPONSIBILITY responsibility="Render selectable item with check indicator and styling"]
220
- // CIL[DOC-CONTEXT module="select" layer="ui_components" related_files="[]"]
221
- // CIL[DOC-CONTRACT inputs="none" outputs="Styled selectable item" errors="none" side_effects="DOM event handling"]
222
- // CIL[DOC-MICRO logic_summary="Creates selectable item with check indicator, hover states and accessibility" notable_decisions="[]"]
223
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
224
- // CIL[DOC-STABILITY stability="stable"]
225
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
226
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
227
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
228
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
219
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders a styled label for a select group'; No verified external callers; imports: .framework/src/lib/utils.ts"]
220
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
221
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
222
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
229
223
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
230
224
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
225
+ // CIL[END stable_id="~/.framework/src/components/ui/select.tsx:selectlabel:function"]
226
+
227
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/select.tsx:selectitem:function" type="function" identity="selectitem" parent="~/.framework/src/components/ui/select.tsx:module_header:module_header"]
228
+ // CIL[DOC-MACRO purpose="Renders a styled selectable item"]
229
+ // CIL[DOC-RESPONSIBILITY responsibility="Render and style the selectitem select subcomponent"]
230
+ // CIL[DOC-CONTEXT module="components/ui" layer="presentation" related_files=".framework/src/components/ui/select.tsx,.framework/src/lib/utils.ts"]
231
+ // CIL[DOC-CONTRACT inputs="className?: string, children, value, ...props: SelectPrimitive.Item props" outputs="JSX.Element" side_effects="none" errors="none"]
232
+ // CIL[DOC-MICRO logic_summary="Composes SelectPrimitive.Item with focus/hover styles and an indicator checkmark" notable_decisions="[]"]
233
+ // CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
234
+ // CIL[DOC-STABILITY stability="stable"]
231
235
  function SelectItem({
232
236
  className,
233
237
  children,
@@ -251,21 +255,22 @@ function SelectItem({
251
255
  </SelectPrimitive.Item>
252
256
  )
253
257
  }
254
- // CIL[END chunk_id="select_selectitem_1783758409"]
255
- // CIL[BEGIN chunk_id="select_selectseparator_1783758409" type="function" identity="SelectSeparator" parent="none"]
256
- // CIL[DOC-MACRO purpose="Visual separator between select option groups"]
257
- // CIL[DOC-RESPONSIBILITY responsibility="Provide styled horizontal divider for option grouping"]
258
- // CIL[DOC-CONTEXT module="select" layer="ui_components" related_files="[]"]
259
- // CIL[DOC-CONTRACT inputs="none" outputs="Styled separator element" errors="none" side_effects="DOM rendering"]
260
- // CIL[DOC-MICRO logic_summary="Creates horizontal divider line with border color and negative margins" notable_decisions="[]"]
261
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
262
- // CIL[DOC-STABILITY stability="stable"]
263
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
264
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
265
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
266
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
258
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders a styled selectable item'; No verified external callers; imports: .framework/src/lib/utils.ts"]
259
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
260
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
261
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
267
262
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
268
263
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
264
+ // CIL[END stable_id="~/.framework/src/components/ui/select.tsx:selectitem:function"]
265
+
266
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/select.tsx:selectseparator:function" type="function" identity="selectseparator" parent="~/.framework/src/components/ui/select.tsx:module_header:module_header"]
267
+ // CIL[DOC-MACRO purpose="Renders a visual separator between select items"]
268
+ // CIL[DOC-RESPONSIBILITY responsibility="Render and style the selectseparator select subcomponent"]
269
+ // CIL[DOC-CONTEXT module="components/ui" layer="presentation" related_files=".framework/src/components/ui/select.tsx,.framework/src/lib/utils.ts"]
270
+ // CIL[DOC-CONTRACT inputs="className?: string, ...props: SelectPrimitive.Separator props" outputs="JSX.Element" side_effects="none" errors="none"]
271
+ // CIL[DOC-MICRO logic_summary="Wraps SelectPrimitive.Separator with a horizontal border line" notable_decisions="[]"]
272
+ // CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
273
+ // CIL[DOC-STABILITY stability="stable"]
269
274
  function SelectSeparator({
270
275
  className,
271
276
  ...props
@@ -281,21 +286,22 @@ function SelectSeparator({
281
286
  />
282
287
  )
283
288
  }
284
- // CIL[END chunk_id="select_selectseparator_1783758409"]
285
- // CIL[BEGIN chunk_id="select_selectscrollupbutton_1783758409" type="function" identity="SelectScrollUpButton" parent="none"]
286
- // CIL[DOC-MACRO purpose="Scroll up button for long select lists"]
287
- // CIL[DOC-RESPONSIBILITY responsibility="Provide styled scroll up button with chevron icon"]
288
- // CIL[DOC-CONTEXT module="select" layer="ui_components" related_files="[]"]
289
- // CIL[DOC-CONTRACT inputs="none" outputs="Styled scroll button" errors="none" side_effects="DOM event handling"]
290
- // CIL[DOC-MICRO logic_summary="Creates scroll up button with chevron icon and popover styling" notable_decisions="[]"]
291
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
292
- // CIL[DOC-STABILITY stability="stable"]
293
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
294
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
295
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
296
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
289
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders a visual separator between select items'; No verified external callers; imports: .framework/src/lib/utils.ts"]
290
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
291
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
292
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
297
293
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
298
294
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
295
+ // CIL[END stable_id="~/.framework/src/components/ui/select.tsx:selectseparator:function"]
296
+
297
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/select.tsx:selectscrollupbutton:function" type="function" identity="selectscrollupbutton" parent="~/.framework/src/components/ui/select.tsx:module_header:module_header"]
298
+ // CIL[DOC-MACRO purpose="Renders the scroll-up affordance for long select content"]
299
+ // CIL[DOC-RESPONSIBILITY responsibility="Render and style the selectscrollupbutton select subcomponent"]
300
+ // CIL[DOC-CONTEXT module="components/ui" layer="presentation" related_files=".framework/src/components/ui/select.tsx,.framework/src/lib/utils.ts"]
301
+ // CIL[DOC-CONTRACT inputs="className?: string, ...props: SelectPrimitive.ScrollUpButton props" outputs="JSX.Element" side_effects="none" errors="none"]
302
+ // CIL[DOC-MICRO logic_summary="Wraps SelectPrimitive.ScrollUpButton and renders a chevron-up icon" notable_decisions="[]"]
303
+ // CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
304
+ // CIL[DOC-STABILITY stability="stable"]
299
305
  function SelectScrollUpButton({
300
306
  className,
301
307
  ...props
@@ -314,21 +320,22 @@ function SelectScrollUpButton({
314
320
  </SelectPrimitive.ScrollUpButton>
315
321
  )
316
322
  }
317
- // CIL[END chunk_id="select_selectscrollupbutton_1783758409"]
318
- // CIL[BEGIN chunk_id="select_selectscrolldownbutton_1783758409" type="function" identity="SelectScrollDownButton" parent="none"]
319
- // CIL[DOC-MACRO purpose="Scroll down button for long select lists"]
320
- // CIL[DOC-RESPONSIBILITY responsibility="Provide styled scroll down button with chevron icon"]
321
- // CIL[DOC-CONTEXT module="select" layer="ui_components" related_files="[]"]
322
- // CIL[DOC-CONTRACT inputs="none" outputs="Styled scroll button" errors="none" side_effects="DOM event handling"]
323
- // CIL[DOC-MICRO logic_summary="Creates scroll down button with chevron icon and popover styling" notable_decisions="[]"]
324
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
325
- // CIL[DOC-STABILITY stability="stable"]
326
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
327
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
328
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
329
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
323
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders the scroll-up affordance for long select content'; No verified external callers; imports: .framework/src/lib/utils.ts"]
324
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
325
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
326
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
330
327
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
331
328
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
329
+ // CIL[END stable_id="~/.framework/src/components/ui/select.tsx:selectscrollupbutton:function"]
330
+
331
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/select.tsx:selectscrolldownbutton:function" type="function" identity="selectscrolldownbutton" parent="~/.framework/src/components/ui/select.tsx:module_header:module_header"]
332
+ // CIL[DOC-MACRO purpose="Renders the scroll-down affordance for long select content"]
333
+ // CIL[DOC-RESPONSIBILITY responsibility="Render and style the selectscrolldownbutton select subcomponent"]
334
+ // CIL[DOC-CONTEXT module="components/ui" layer="presentation" related_files=".framework/src/components/ui/select.tsx,.framework/src/lib/utils.ts"]
335
+ // CIL[DOC-CONTRACT inputs="className?: string, ...props: SelectPrimitive.ScrollDownButton props" outputs="JSX.Element" side_effects="none" errors="none"]
336
+ // CIL[DOC-MICRO logic_summary="Wraps SelectPrimitive.ScrollDownButton and renders a chevron-down icon" notable_decisions="[]"]
337
+ // CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
338
+ // CIL[DOC-STABILITY stability="stable"]
332
339
  function SelectScrollDownButton({
333
340
  className,
334
341
  ...props
@@ -347,21 +354,21 @@ function SelectScrollDownButton({
347
354
  </SelectPrimitive.ScrollDownButton>
348
355
  )
349
356
  }
350
- // CIL[END chunk_id="select_selectscrolldownbutton_1783758409"]
351
- // CIL[BEGIN chunk_id="select_exports_1783758409" type="exports" identity="exports" parent="none"]
352
- // CIL[DOC-MACRO purpose="Export all select components for public API"]
353
- // CIL[DOC-RESPONSIBILITY responsibility="Provide module exports for select component library"]
354
- // CIL[DOC-CONTEXT module="select" layer="ui_components" related_files="[]"]
355
- // CIL[DOC-CONTRACT inputs="none" outputs="Component exports" errors="none" side_effects="Module exports"]
356
- // CIL[DOC-MICRO logic_summary="Exports all select components: Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue" notable_decisions="[]"]
357
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
358
- // CIL[DOC-STABILITY stability="stable"]
359
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
360
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
361
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
362
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
357
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders the scroll-down affordance for long select content'; No verified external callers; imports: .framework/src/lib/utils.ts"]
358
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
359
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
360
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
363
361
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
364
362
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
363
+ // CIL[END stable_id="~/.framework/src/components/ui/select.tsx:selectscrolldownbutton:function"]
364
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/select.tsx:export_list:export_list" type="export_list" identity="export_list" parent="~/.framework/src/components/ui/select.tsx:module_header:module_header"]
365
+ // CIL[DOC-MACRO purpose="Public exports of the select UI primitives"]
366
+ // CIL[DOC-RESPONSIBILITY responsibility="Expose named select subcomponents for consumers"]
367
+ // CIL[DOC-CONTEXT module="components/ui" layer="presentation" related_files=".framework/src/components/ui/select.tsx,.framework/src/lib/utils.ts"]
368
+ // CIL[DOC-CONTRACT inputs="none" outputs="named exports of Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue" side_effects="none" errors="none"]
369
+ // CIL[DOC-MICRO logic_summary="Re-exports all named Select subcomponents" notable_decisions="[]"]
370
+ // CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
371
+ // CIL[DOC-STABILITY stability="stable"]
365
372
  export {
366
373
  Select,
367
374
  SelectContent,
@@ -374,4 +381,10 @@ export {
374
381
  SelectTrigger,
375
382
  SelectValue,
376
383
  }
377
- // CIL[END chunk_id="select_exports_1783758409"]
384
+ // CIL[DOC-VECTOR type="context" content="purpose='Public exports of the select UI primitives'; No verified external callers; imports: .framework/src/lib/utils.ts"]
385
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
386
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
387
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
388
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
389
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
390
+ // CIL[END stable_id="~/.framework/src/components/ui/select.tsx:export_list:export_list"]