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
@@ -10,122 +10,127 @@
10
10
 
11
11
 
12
12
 
13
- // CIL[BEGIN chunk_id="dialog_module_header_1783844098" type="module_header" identity="imports" parent="none"]
14
- // CIL[DOC-MACRO purpose="Import dependencies for dialog components"]
15
- // CIL[DOC-RESPONSIBILITY responsibility="Import React, Radix UI primitives and utilities"]
16
- // CIL[DOC-CONTEXT module="dialog" layer="ui" related_files="[\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"\\\"]"]
17
- // CIL[DOC-CONTRACT inputs="none" outputs="React, Radix primitives, utilities" errors="none" side_effects="none"]
18
- // CIL[DOC-MICRO logic_summary="Imports React, Radix Dialog primitives, styling utilities and icons" notable_decisions="[]"]
19
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
13
+
14
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/dialog.tsx:use_client:directive"]
15
+ // CIL[DOC-MACRO purpose="Declarative client-only directive for Next.js."]
16
+ // CIL[DOC-MICRO logic_summary="Emits the 'use client' directive at the top of the module." notable_decisions="[]"]
17
+ // CIL[DOC-CONTRACT inputs="none" outputs="none" errors="[]" side_effects="none"]
20
18
  // CIL[DOC-STABILITY stability="stable"]
21
- // CIL[DOC-AUDIENCE audience="developer"]
22
- // CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/components/ui/table-primitives.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."]
19
+ "use client"
20
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
21
+ // CIL[DOC-CONTEXT module="dialog" layer="components" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/dialog.tsx,.framework/src/lib/utils.ts"]
22
+ // CIL[DOC-VECTOR type="context" content="purpose='Declarative client-only directive for Next.js.'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
23
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
24
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
25
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
26
26
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
27
27
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
28
- "use client"
28
+ // CIL[END stable_id="~/.framework/src/components/ui/dialog.tsx:use_client:directive"]
29
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/dialog.tsx:module_header:module_header" type="module_header" identity="module_header" parent="none"]
30
+ // CIL[DOC-MACRO purpose="Dialog UI primitives built on Radix UI for the framework design system."]
31
+ // CIL[DOC-CONTEXT module="components/ui" layer="ui" related_files=".framework/src/components/ui/button.tsx,.framework/src/lib/utils.ts"]
32
+ // CIL[DOC-AUDIENCE audience="framework"]
33
+ // CIL[DOC-STABILITY stability="stable"]
29
34
  import * as React from "react"
30
35
  import { Dialog as DialogPrimitive } from "radix-ui"
31
36
  import { cn } from "@/lib/utils"
32
37
  import { Button } from "@/components/ui/button"
33
38
  import { XIcon } from "lucide-react"
34
- // CIL[END chunk_id="dialog_module_header_1783844098"]
35
- // CIL[BEGIN chunk_id="dialog_dialog_1783844098" type="function" identity="Dialog" parent="none"]
36
- // CIL[DOC-MACRO purpose="Root dialog component wrapper"]
37
- // CIL[DOC-RESPONSIBILITY responsibility="Provide Radix Dialog root with data slot"]
38
- // CIL[DOC-CONTEXT module="dialog" layer="ui" related_files="[\".framework/src/components/ui/table-primitives.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
39
- // CIL[DOC-CONTRACT inputs="none" outputs="Dialog root component" errors="none" side_effects="renders DOM"]
40
- // CIL[DOC-MICRO logic_summary="Wraps Radix Dialog.Root with data-slot attribute" notable_decisions="[]"]
41
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
42
- // CIL[DOC-STABILITY stability="stable"]
43
- // CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 1. Direct calls: 0. Related files: .framework/src/components/ui/table-primitives.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
44
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 1. Total affected: 2."]
45
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
46
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
39
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
40
+ // CIL[DOC-VECTOR type="context" content="purpose='Dialog UI primitives built on Radix UI for the framework design system.'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
41
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
42
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
43
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
47
44
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
48
45
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
46
+ // CIL[END stable_id="~/.framework/src/components/ui/dialog.tsx:module_header:module_header"]
47
+
48
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/dialog.tsx:Dialog:component" type="component" identity="Dialog" parent="~/.framework/src/components/ui/dialog.tsx:module_header:module_header"]
49
+ // CIL[DOC-MACRO purpose="Root Dialog component forwarding props to Radix Dialog.Root."]
50
+ // CIL[DOC-MICRO logic_summary="Wraps DialogPrimitive.Root and applies a data-slot marker." notable_decisions="[]"]
51
+ // CIL[DOC-CONTRACT inputs="none" outputs="React node" errors="[]" side_effects="none"]
52
+ // CIL[DOC-STABILITY stability="stable"]
49
53
  function Dialog({
50
54
  ...props
51
55
  }: React.ComponentProps<typeof DialogPrimitive.Root>) {
52
56
  return <DialogPrimitive.Root data-slot="dialog" {...props} />
53
57
  }
54
- // CIL[END chunk_id="dialog_dialog_1783844098"]
55
- // CIL[BEGIN chunk_id="dialog_dialogtrigger_1783844098" type="function" identity="DialogTrigger" parent="none"]
56
- // CIL[DOC-MACRO purpose="Dialog trigger component"]
57
- // CIL[DOC-RESPONSIBILITY responsibility="Provide trigger element for opening dialogs"]
58
- // CIL[DOC-CONTEXT module="dialog" layer="ui" related_files="[\".framework/src/components/ui/table-primitives.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
59
- // CIL[DOC-CONTRACT inputs="none" outputs="Dialog trigger" errors="none" side_effects="renders DOM"]
60
- // CIL[DOC-MICRO logic_summary="Wraps Radix Dialog.Trigger with data-slot attribute" notable_decisions="[]"]
61
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
62
- // CIL[DOC-STABILITY stability="stable"]
63
- // CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 1. Direct calls: 0. Related files: .framework/src/components/ui/table-primitives.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
64
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 1. Total affected: 1."]
65
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
66
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
58
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
59
+ // CIL[DOC-CONTEXT module="dialog" layer="components" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/dialog.tsx,.framework/src/lib/utils.ts"]
60
+ // CIL[DOC-VECTOR type="context" content="purpose='Root Dialog component forwarding props to Radix Dialog.Root.'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
61
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
62
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
63
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
67
64
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
68
65
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
66
+ // CIL[END stable_id="~/.framework/src/components/ui/dialog.tsx:Dialog:component"]
67
+
68
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/dialog.tsx:DialogTrigger:component" type="component" identity="DialogTrigger" parent="~/.framework/src/components/ui/dialog.tsx:module_header:module_header"]
69
+ // CIL[DOC-MACRO purpose="Trigger element that opens the dialog."]
70
+ // CIL[DOC-MICRO logic_summary="Wraps DialogPrimitive.Trigger and applies a data-slot marker." notable_decisions="[]"]
71
+ // CIL[DOC-CONTRACT inputs="none" outputs="React node" errors="[]" side_effects="none"]
72
+ // CIL[DOC-STABILITY stability="stable"]
69
73
  function DialogTrigger({
70
74
  ...props
71
75
  }: React.ComponentProps<typeof DialogPrimitive.Trigger>) {
72
76
  return <DialogPrimitive.Trigger data-slot="dialog-trigger" {...props} />
73
77
  }
74
- // CIL[END chunk_id="dialog_dialogtrigger_1783844098"]
75
- // CIL[BEGIN chunk_id="dialog_dialogportal_1783844098" type="function" identity="DialogPortal" parent="none"]
76
- // CIL[DOC-MACRO purpose="Dialog portal component"]
77
- // CIL[DOC-RESPONSIBILITY responsibility="Provide portal for rendering dialog outside DOM tree"]
78
- // CIL[DOC-CONTEXT module="dialog" layer="ui" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
79
- // CIL[DOC-CONTRACT inputs="none" outputs="Dialog portal" errors="none" side_effects="renders DOM"]
80
- // CIL[DOC-MICRO logic_summary="Wraps Radix Dialog.Portal with data-slot attribute" notable_decisions="[]"]
81
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
82
- // CIL[DOC-STABILITY stability="stable"]
83
- // CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 1. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/src/components/ui/table-primitives.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
84
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 1. Total affected: 2."]
85
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
86
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
78
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
79
+ // CIL[DOC-CONTEXT module="dialog" layer="components" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/dialog.tsx,.framework/src/lib/utils.ts"]
80
+ // CIL[DOC-VECTOR type="context" content="purpose='Trigger element that opens the dialog.'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
81
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
82
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
83
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
87
84
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
88
85
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
86
+ // CIL[END stable_id="~/.framework/src/components/ui/dialog.tsx:DialogTrigger:component"]
87
+
88
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/dialog.tsx:DialogPortal:component" type="component" identity="DialogPortal" parent="~/.framework/src/components/ui/dialog.tsx:module_header:module_header"]
89
+ // CIL[DOC-MACRO purpose="Portal that renders dialog content outside the DOM tree."]
90
+ // CIL[DOC-MICRO logic_summary="Wraps DialogPrimitive.Portal and applies a data-slot marker." notable_decisions="[]"]
91
+ // CIL[DOC-CONTRACT inputs="none" outputs="React portal" errors="[]" side_effects="none"]
92
+ // CIL[DOC-STABILITY stability="stable"]
89
93
  function DialogPortal({
90
94
  ...props
91
95
  }: React.ComponentProps<typeof DialogPrimitive.Portal>) {
92
96
  return <DialogPrimitive.Portal data-slot="dialog-portal" {...props} />
93
97
  }
94
- // CIL[END chunk_id="dialog_dialogportal_1783844098"]
95
- // CIL[BEGIN chunk_id="dialog_dialogclose_1783844098" type="function" identity="DialogClose" parent="none"]
96
- // CIL[DOC-MACRO purpose="Dialog close component"]
97
- // CIL[DOC-RESPONSIBILITY responsibility="Provide close trigger for dialogs"]
98
- // CIL[DOC-CONTEXT module="dialog" layer="ui" related_files="[\".framework/src/components/ui/table-primitives.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
99
- // CIL[DOC-CONTRACT inputs="none" outputs="Dialog close" errors="none" side_effects="renders DOM"]
100
- // CIL[DOC-MICRO logic_summary="Wraps Radix Dialog.Close with data-slot attribute" notable_decisions="[]"]
101
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
102
- // CIL[DOC-STABILITY stability="stable"]
103
- // CIL[DOC-VECTOR type="context" content="Layer: ui. 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, \."]
104
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
105
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
106
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
98
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
99
+ // CIL[DOC-CONTEXT module="dialog" layer="components" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/dialog.tsx,.framework/src/lib/utils.ts"]
100
+ // CIL[DOC-VECTOR type="context" content="purpose='Portal that renders dialog content outside the DOM tree.'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
101
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
102
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
103
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
107
104
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
108
105
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
106
+ // CIL[END stable_id="~/.framework/src/components/ui/dialog.tsx:DialogPortal:component"]
107
+
108
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/dialog.tsx:DialogClose:component" type="component" identity="DialogClose" parent="~/.framework/src/components/ui/dialog.tsx:module_header:module_header"]
109
+ // CIL[DOC-MACRO purpose="Close control for the dialog."]
110
+ // CIL[DOC-MICRO logic_summary="Wraps DialogPrimitive.Close and applies a data-slot marker." notable_decisions="[]"]
111
+ // CIL[DOC-CONTRACT inputs="none" outputs="React node" errors="[]" side_effects="none"]
112
+ // CIL[DOC-STABILITY stability="stable"]
109
113
  function DialogClose({
110
114
  ...props
111
115
  }: React.ComponentProps<typeof DialogPrimitive.Close>) {
112
116
  return <DialogPrimitive.Close data-slot="dialog-close" {...props} />
113
117
  }
114
- // CIL[END chunk_id="dialog_dialogclose_1783844098"]
115
- // CIL[BEGIN chunk_id="dialog_dialogoverlay_1783844098" type="function" identity="DialogOverlay" parent="none"]
116
- // CIL[DOC-MACRO purpose="Dialog overlay background component"]
117
- // CIL[DOC-RESPONSIBILITY responsibility="Render styled backdrop for dialog modal"]
118
- // CIL[DOC-CONTEXT module="dialog" layer="ui" related_files="[]"]
119
- // CIL[DOC-CONTRACT inputs="none" outputs="styled overlay" errors="none" side_effects="renders DOM"]
120
- // CIL[DOC-MICRO logic_summary="Creates semi-transparent backdrop with blur and animations" notable_decisions="[]"]
121
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
122
- // CIL[DOC-STABILITY stability="stable"]
123
- // CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
124
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
125
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
126
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
118
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
119
+ // CIL[DOC-CONTEXT module="dialog" layer="components" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/dialog.tsx,.framework/src/lib/utils.ts"]
120
+ // CIL[DOC-VECTOR type="context" content="purpose='Close control for the dialog.'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
121
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
122
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
123
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
127
124
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
128
125
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
126
+ // CIL[END stable_id="~/.framework/src/components/ui/dialog.tsx:DialogClose:component"]
127
+
128
+
129
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/dialog.tsx:DialogOverlay:component" type="component" identity="DialogOverlay" parent="~/.framework/src/components/ui/dialog.tsx:module_header:module_header"]
130
+ // CIL[DOC-MACRO purpose="Backdrop overlay behind the dialog content."]
131
+ // CIL[DOC-MICRO logic_summary="ForwardRef component rendering DialogPrimitive.Overlay with styling and animation classes." notable_decisions="[]"]
132
+ // CIL[DOC-CONTRACT inputs="none" outputs="React node" errors="[]" side_effects="none"]
133
+ // CIL[DOC-STABILITY stability="stable"]
129
134
  const DialogOverlay = React.forwardRef<
130
135
  React.ElementRef<typeof DialogPrimitive.Overlay>,
131
136
  React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>
@@ -139,30 +144,33 @@ const DialogOverlay = React.forwardRef<
139
144
  className
140
145
  )}
141
146
  {...props}
147
+
142
148
  />
143
149
  )
144
150
  })
145
151
  DialogOverlay.displayName = "DialogOverlay"
146
- // CIL[END chunk_id="dialog_dialogoverlay_1783844098"]
147
- // CIL[BEGIN chunk_id="dialog_dialogcontent_1783844098" type="function" identity="DialogContent" parent="none"]
148
- // CIL[DOC-MACRO purpose="Main dialog content container"]
149
- // CIL[DOC-RESPONSIBILITY responsibility="Render dialog content with overlay and optional close button"]
150
- // CIL[DOC-CONTEXT module="dialog" layer="ui" related_files="[]"]
151
- // CIL[DOC-CONTRACT inputs="none" outputs="dialog content" errors="none" side_effects="renders DOM"]
152
- // CIL[DOC-MICRO logic_summary="Creates modal dialog with overlay, animations and optional close button" notable_decisions="[]"]
153
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
154
- // CIL[DOC-STABILITY stability="stable"]
155
- // CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
156
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
157
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
158
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
152
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
153
+ // CIL[DOC-CONTEXT module="dialog" layer="components" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/dialog.tsx,.framework/src/lib/utils.ts"]
154
+ // CIL[DOC-VECTOR type="context" content="purpose='Backdrop overlay behind the dialog content.'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
155
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
156
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
157
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
159
158
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
160
159
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
160
+ // CIL[END stable_id="~/.framework/src/components/ui/dialog.tsx:DialogOverlay:component"]
161
+
162
+
163
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/dialog.tsx:DialogContent:component" type="component" identity="DialogContent" parent="~/.framework/src/components/ui/dialog.tsx:module_header:module_header"]
164
+ // CIL[DOC-MACRO purpose="Main dialog content panel with optional close button."]
165
+ // CIL[DOC-MICRO logic_summary="ForwardRef component composing Portal, Overlay, and DialogPrimitive.Content with children and an optional X icon button." notable_decisions="[]"]
166
+ // CIL[DOC-CONTRACT inputs="none" outputs="React node" errors="[]" side_effects="none"]
167
+ // CIL[DOC-STABILITY stability="stable"]
161
168
  const DialogContent = React.forwardRef<
162
169
  React.ElementRef<typeof DialogPrimitive.Content>,
163
170
  React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> & {
164
171
  showCloseButton?: boolean
165
172
  }
173
+
166
174
  >(({ className, children, showCloseButton = true, ...props }, ref) => {
167
175
  return (
168
176
  <DialogPortal>
@@ -175,6 +183,7 @@ const DialogContent = React.forwardRef<
175
183
  className
176
184
  )}
177
185
  {...props}
186
+
178
187
  >
179
188
  {children}
180
189
  {showCloseButton && (
@@ -195,21 +204,21 @@ const DialogContent = React.forwardRef<
195
204
  )
196
205
  })
197
206
  DialogContent.displayName = "DialogContent"
198
- // CIL[END chunk_id="dialog_dialogcontent_1783844098"]
199
- // CIL[BEGIN chunk_id="dialog_dialogheader_1783844098" type="function" identity="DialogHeader" parent="none"]
200
- // CIL[DOC-MACRO purpose="Dialog header container"]
201
- // CIL[DOC-RESPONSIBILITY responsibility="Provide layout container for dialog header content"]
202
- // CIL[DOC-CONTEXT module="dialog" layer="ui" related_files="[]"]
203
- // CIL[DOC-CONTRACT inputs="none" outputs="styled header div" errors="none" side_effects="renders DOM"]
204
- // CIL[DOC-MICRO logic_summary="Creates flex column container with gap spacing for header" notable_decisions="[]"]
205
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
206
- // CIL[DOC-STABILITY stability="stable"]
207
- // CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
208
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
209
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
210
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
207
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
208
+ // CIL[DOC-CONTEXT module="dialog" layer="components" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/dialog.tsx,.framework/src/lib/utils.ts"]
209
+ // CIL[DOC-VECTOR type="context" content="purpose='Main dialog content panel with optional close button.'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
210
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
211
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
212
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
211
213
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
212
214
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
215
+ // CIL[END stable_id="~/.framework/src/components/ui/dialog.tsx:DialogContent:component"]
216
+
217
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/dialog.tsx:DialogHeader:component" type="component" identity="DialogHeader" parent="~/.framework/src/components/ui/dialog.tsx:module_header:module_header"]
218
+ // CIL[DOC-MACRO purpose="Header area for dialog content."]
219
+ // CIL[DOC-MICRO logic_summary="Renders a flex column div with the dialog-header data slot." notable_decisions="[]"]
220
+ // CIL[DOC-CONTRACT inputs="none" outputs="React node" errors="[]" side_effects="none"]
221
+ // CIL[DOC-STABILITY stability="stable"]
213
222
  function DialogHeader({ className, ...props }: React.ComponentProps<"div">) {
214
223
  return (
215
224
  <div
@@ -219,21 +228,22 @@ function DialogHeader({ className, ...props }: React.ComponentProps<"div">) {
219
228
  />
220
229
  )
221
230
  }
222
- // CIL[END chunk_id="dialog_dialogheader_1783844098"]
223
- // CIL[BEGIN chunk_id="dialog_dialogfooter_1783844098" type="function" identity="DialogFooter" parent="none"]
224
- // CIL[DOC-MACRO purpose="Dialog footer container"]
225
- // CIL[DOC-RESPONSIBILITY responsibility="Provide layout container for dialog footer with optional close button"]
226
- // CIL[DOC-CONTEXT module="dialog" layer="ui" related_files="[]"]
227
- // CIL[DOC-CONTRACT inputs="none" outputs="styled footer div" errors="none" side_effects="renders DOM"]
228
- // CIL[DOC-MICRO logic_summary="Creates responsive footer layout with optional close button" 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. 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
+
232
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
233
+ // CIL[DOC-CONTEXT module="dialog" layer="components" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/dialog.tsx,.framework/src/lib/utils.ts"]
234
+ // CIL[DOC-VECTOR type="context" content="purpose='Header area for dialog content.'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
235
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
236
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
237
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
235
238
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
236
239
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
240
+ // CIL[END stable_id="~/.framework/src/components/ui/dialog.tsx:DialogHeader:component"]
241
+
242
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/dialog.tsx:DialogFooter:component" type="component" identity="DialogFooter" parent="~/.framework/src/components/ui/dialog.tsx:module_header:module_header"]
243
+ // CIL[DOC-MACRO purpose="Footer area for dialog actions."]
244
+ // CIL[DOC-MICRO logic_summary="Renders a responsive action bar with optional close button." notable_decisions="[]"]
245
+ // CIL[DOC-CONTRACT inputs="none" outputs="React node" errors="[]" side_effects="none"]
246
+ // CIL[DOC-STABILITY stability="stable"]
237
247
  function DialogFooter({
238
248
  className,
239
249
  showCloseButton = false,
@@ -260,21 +270,21 @@ function DialogFooter({
260
270
  </div>
261
271
  )
262
272
  }
263
- // CIL[END chunk_id="dialog_dialogfooter_1783844098"]
264
- // CIL[BEGIN chunk_id="dialog_dialogtitle_1783844098" type="function" identity="DialogTitle" parent="none"]
265
- // CIL[DOC-MACRO purpose="Dialog title component"]
266
- // CIL[DOC-RESPONSIBILITY responsibility="Render styled title for dialog headers"]
267
- // CIL[DOC-CONTEXT module="dialog" layer="ui" related_files="[]"]
268
- // CIL[DOC-CONTRACT inputs="none" outputs="styled title" errors="none" side_effects="renders DOM"]
269
- // CIL[DOC-MICRO logic_summary="Creates heading-styled title with font and spacing" notable_decisions="[]"]
270
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
271
- // CIL[DOC-STABILITY stability="stable"]
272
- // CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
273
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
274
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
275
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
273
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
274
+ // CIL[DOC-CONTEXT module="dialog" layer="components" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/dialog.tsx,.framework/src/lib/utils.ts"]
275
+ // CIL[DOC-VECTOR type="context" content="purpose='Footer area for dialog actions.'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
276
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
277
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
278
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
276
279
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
277
280
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
281
+ // CIL[END stable_id="~/.framework/src/components/ui/dialog.tsx:DialogFooter:component"]
282
+
283
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/dialog.tsx:DialogTitle:component" type="component" identity="DialogTitle" parent="~/.framework/src/components/ui/dialog.tsx:module_header:module_header"]
284
+ // CIL[DOC-MACRO purpose="Accessible title for the dialog."]
285
+ // CIL[DOC-MICRO logic_summary="Wraps DialogPrimitive.Title with heading typography and data-slot marker." notable_decisions="[]"]
286
+ // CIL[DOC-CONTRACT inputs="none" outputs="React node" errors="[]" side_effects="none"]
287
+ // CIL[DOC-STABILITY stability="stable"]
278
288
  function DialogTitle({
279
289
  className,
280
290
  ...props
@@ -287,21 +297,21 @@ function DialogTitle({
287
297
  />
288
298
  )
289
299
  }
290
- // CIL[END chunk_id="dialog_dialogtitle_1783844098"]
291
- // CIL[BEGIN chunk_id="dialog_dialogdescription_1783844098" type="function" identity="DialogDescription" parent="none"]
292
- // CIL[DOC-MACRO purpose="Dialog description component"]
293
- // CIL[DOC-RESPONSIBILITY responsibility="Render styled description text for dialog content"]
294
- // CIL[DOC-CONTEXT module="dialog" layer="ui" related_files="[]"]
295
- // CIL[DOC-CONTRACT inputs="none" outputs="styled description" errors="none" side_effects="renders DOM"]
296
- // CIL[DOC-MICRO logic_summary="Creates muted text styling with link support for descriptions" notable_decisions="[]"]
297
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
298
- // CIL[DOC-STABILITY stability="stable"]
299
- // CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
300
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
301
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
302
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
300
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
301
+ // CIL[DOC-CONTEXT module="dialog" layer="components" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/dialog.tsx,.framework/src/lib/utils.ts"]
302
+ // CIL[DOC-VECTOR type="context" content="purpose='Accessible title for the dialog.'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
303
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
304
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
305
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
303
306
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
304
307
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
308
+ // CIL[END stable_id="~/.framework/src/components/ui/dialog.tsx:DialogTitle:component"]
309
+
310
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/dialog.tsx:DialogDescription:component" type="component" identity="DialogDescription" parent="~/.framework/src/components/ui/dialog.tsx:module_header:module_header"]
311
+ // CIL[DOC-MACRO purpose="Description text for the dialog."]
312
+ // CIL[DOC-MICRO logic_summary="Wraps DialogPrimitive.Description with muted styling and link hover behavior." notable_decisions="[]"]
313
+ // CIL[DOC-CONTRACT inputs="none" outputs="React node" errors="[]" side_effects="none"]
314
+ // CIL[DOC-STABILITY stability="stable"]
305
315
  function DialogDescription({
306
316
  className,
307
317
  ...props
@@ -317,21 +327,20 @@ function DialogDescription({
317
327
  />
318
328
  )
319
329
  }
320
- // CIL[END chunk_id="dialog_dialogdescription_1783844098"]
321
- // CIL[BEGIN chunk_id="dialog_exports_1783844098" type="exports" identity="exports" parent="none"]
322
- // CIL[DOC-MACRO purpose="Export dialog components"]
323
- // CIL[DOC-RESPONSIBILITY responsibility="Make all dialog components available for import"]
324
- // CIL[DOC-CONTEXT module="dialog" layer="ui" related_files="[]"]
325
- // CIL[DOC-CONTRACT inputs="none" outputs="component exports" errors="none" side_effects="module exports"]
326
- // CIL[DOC-MICRO logic_summary="Exports all dialog components for external usage" notable_decisions="[]"]
327
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
328
- // CIL[DOC-STABILITY stability="stable"]
329
- // CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
330
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
331
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
332
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
330
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
331
+ // CIL[DOC-CONTEXT module="dialog" layer="components" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/dialog.tsx,.framework/src/lib/utils.ts"]
332
+ // CIL[DOC-VECTOR type="context" content="purpose='Description text for the dialog.'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
333
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
334
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
335
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
333
336
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
334
337
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
338
+ // CIL[END stable_id="~/.framework/src/components/ui/dialog.tsx:DialogDescription:component"]
339
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/dialog.tsx:module_footer:module_footer" type="module_footer" identity="module_footer" parent="~/.framework/src/components/ui/dialog.tsx:module_header:module_header"]
340
+ // CIL[DOC-MACRO purpose="Named exports for all dialog primitives."]
341
+ // CIL[DOC-MICRO logic_summary="Re-exports the composed dialog components for consumers." notable_decisions="[]"]
342
+ // CIL[DOC-CONTRACT inputs="none" outputs="none" errors="[]" side_effects="none"]
343
+ // CIL[DOC-STABILITY stability="stable"]
335
344
  export {
336
345
  Dialog,
337
346
  DialogClose,
@@ -344,4 +353,12 @@ export {
344
353
  DialogTitle,
345
354
  DialogTrigger,
346
355
  }
347
- // CIL[END chunk_id="dialog_exports_1783844098"]
356
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
357
+ // CIL[DOC-CONTEXT module="dialog" layer="components" related_files=".framework/src/components/ui/button.tsx,.framework/src/components/ui/dialog.tsx,.framework/src/lib/utils.ts"]
358
+ // CIL[DOC-VECTOR type="context" content="purpose='Named exports for all dialog primitives.'; No verified external callers; imports: .framework/src/lib/utils.ts,.framework/src/components/ui/button.tsx"]
359
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
360
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
361
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
362
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
363
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
364
+ // CIL[END stable_id="~/.framework/src/components/ui/dialog.tsx:module_footer:module_footer"]