spine-framework 0.3.144 → 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 +20 -0
  148. package/.framework/migrations/016_cil_types.sql +281 -0
  149. package/.framework/migrations/017_cil_stable_ids.sql +37 -0
  150. package/.framework/migrations/018_runtime_tables.sql +129 -0
  151. package/.framework/migrations/019_agent_prompt_columns.sql +56 -0
  152. package/.framework/migrations/020_schema_reconciliation.sql +67 -0
  153. package/.framework/migrations/021_kb_embedding_lifecycle.sql +31 -0
  154. package/.framework/migrations/032_cil_status_migration.sql +73 -0
  155. package/.framework/migrations/033_cil_versioning.sql +73 -0
  156. package/.framework/migrations/034_match_embeddings_knn.sql +115 -0
  157. package/.framework/migrations/035_rate_limits.sql +55 -0
  158. package/.framework/migrations/036_demo_record_flags.sql +72 -0
  159. package/.framework/migrations/037_kb_types_canonical.sql +244 -0
  160. package/.framework/migrations/038_drop_demo_record_flags.sql +38 -0
  161. package/.framework/migrations/042_registration_hierarchy.sql +309 -0
  162. package/.framework/migrations/043_policy_actor_cleanup.sql +39 -0
  163. package/.framework/migrations/044_match_embeddings_filtered_knn.sql +151 -0
  164. package/.framework/migrations/045_security_critical_rls.sql +139 -0
  165. package/.framework/migrations/046_security_missing_rls.sql +79 -0
  166. package/.framework/migrations/047_people_updated_by.sql +27 -0
  167. package/.framework/migrations/048_watcher_last_seen_at.sql +24 -0
  168. package/.framework/migrations/049_security_blocklist.sql +148 -0
  169. package/.framework/migrations/050_notifications.sql +49 -0
  170. package/.framework/migrations/051_message_agent_fields.sql +74 -0
  171. package/.framework/migrations/052_registration_security.sql +421 -0
  172. package/.framework/migrations/053_builtin_action_seeds.sql +66 -0
  173. package/.framework/migrations/054_kb_ingest_lease.sql +157 -0
  174. package/.framework/migrations/055_type_id_drift_reconciliation.sql +33 -0
  175. package/.framework/migrations/056_slug_column_reconciliation.sql +38 -0
  176. package/.framework/migrations/057_pipelines_slug_identity.sql +14 -0
  177. package/.framework/migrations/058_account_data_field_declarations.sql +53 -0
  178. package/.framework/migrations/059_registration_placement_fixes.sql +269 -0
  179. package/.framework/migrations/060_account_person_record_permissions.sql +38 -0
  180. package/.framework/migrations/061_fk_dedup.sql +32 -0
  181. package/.framework/public/spine-logo.svg +10 -3
  182. package/.framework/scripts/app-install-cli.ts +190 -93
  183. package/.framework/scripts/assemble-frontend.sh +127 -44
  184. package/.framework/scripts/assemble-functions.sh +128 -30
  185. package/.framework/scripts/boundary-check.sh +6 -2
  186. package/.framework/scripts/build-manifest.sh +24 -68
  187. package/.framework/scripts/check-core-integrity.sh +15 -76
  188. package/.framework/scripts/checksum-manifest.mts +343 -0
  189. package/.framework/scripts/cil-migrate-markers.ts +403 -0
  190. package/.framework/scripts/fix-cil-markers.mjs +176 -0
  191. package/.framework/scripts/verify-integrity.sh +21 -57
  192. package/.framework/scripts/verify-manifest.mts +305 -0
  193. package/.framework/seeds/types/funnel_signal_use.json +74 -21
  194. package/.framework/seeds/types/spine_instance.json +73 -21
  195. package/.framework/src/App.tsx +118 -72
  196. package/.framework/src/apps/admin/index.tsx +855 -58
  197. package/.framework/src/components/AppWrapper.tsx +43 -45
  198. package/.framework/src/components/CustomAppLoader.tsx +160 -116
  199. package/.framework/src/components/admin/AdminListPage.tsx +46 -44
  200. package/.framework/src/components/admin/AdminSidebar.tsx +57 -47
  201. package/.framework/src/components/admin/AdminStatsCard.tsx +46 -44
  202. package/.framework/src/components/admin/PageInstructions.tsx +98 -2
  203. package/.framework/src/components/admin/SortableTableHeader.tsx +44 -45
  204. package/.framework/src/components/app-shell/GenericAppShell.tsx +64 -65
  205. package/.framework/src/components/app-shell/GenericDetailPage.tsx +44 -47
  206. package/.framework/src/components/app-shell/GenericListPage.tsx +45 -49
  207. package/.framework/src/components/app-sidebar.tsx +42 -45
  208. package/.framework/src/components/auth/ProtectedRoute.tsx +48 -41
  209. package/.framework/src/components/auth/TurnstileWidget.tsx +27 -0
  210. package/.framework/src/components/kb/KBArticleEditor.tsx +231 -22
  211. package/.framework/src/components/kb/KBArticleList.tsx +251 -10
  212. package/.framework/src/components/layout/AppShell.tsx +51 -45
  213. package/.framework/src/components/layout/Header.tsx +42 -43
  214. package/.framework/src/components/layout/Layout.tsx +46 -46
  215. package/.framework/src/components/layout/Sidebar.tsx +196 -96
  216. package/.framework/src/components/runtime/DataDetailHeader.tsx +55 -30
  217. package/.framework/src/components/runtime/DataDetailPage.tsx +31 -269
  218. package/.framework/src/components/runtime/DataFilters.tsx +49 -74
  219. package/.framework/src/components/runtime/DataHeader.tsx +53 -32
  220. package/.framework/src/components/runtime/DataListPage.tsx +51 -155
  221. package/.framework/src/components/runtime/DataStats.tsx +66 -44
  222. package/.framework/src/components/runtime/DataTable.tsx +49 -149
  223. package/.framework/src/components/runtime/SchemaDetailForm.tsx +45 -75
  224. package/.framework/src/components/runtime/index.ts +119 -16
  225. package/.framework/src/components/search-form.tsx +46 -29
  226. package/.framework/src/components/shared/AgentView.tsx +65 -48
  227. package/.framework/src/components/shared/FieldRenderer.tsx +144 -50
  228. package/.framework/src/components/shared/InviteManager.tsx +207 -97
  229. package/.framework/src/components/shared/MemberList.tsx +97 -0
  230. package/.framework/src/components/shared/SchemaFields.tsx +107 -86
  231. package/.framework/src/components/ui/DataTable.tsx +80 -68
  232. package/.framework/src/components/ui/Form.tsx +157 -146
  233. package/.framework/src/components/ui/ItemCard.tsx +74 -67
  234. package/.framework/src/components/ui/ItemListView.tsx +73 -68
  235. package/.framework/src/components/ui/LoadingSpinner.tsx +43 -48
  236. package/.framework/src/components/ui/Modal.tsx +78 -68
  237. package/.framework/src/components/ui/RichTextEditor.tsx +89 -69
  238. package/.framework/src/components/ui/accordion.tsx +85 -86
  239. package/.framework/src/components/ui/alert-dialog.tsx +197 -184
  240. package/.framework/src/components/ui/alert.tsx +105 -94
  241. package/.framework/src/components/ui/aspect-ratio.tsx +57 -43
  242. package/.framework/src/components/ui/avatar.tsx +122 -107
  243. package/.framework/src/components/ui/badge.tsx +60 -55
  244. package/.framework/src/components/ui/breadcrumb.tsx +127 -128
  245. package/.framework/src/components/ui/button-group.tsx +86 -72
  246. package/.framework/src/components/ui/button.tsx +71 -50
  247. package/.framework/src/components/ui/calendar.tsx +72 -57
  248. package/.framework/src/components/ui/card.tsx +136 -129
  249. package/.framework/src/components/ui/carousel.tsx +226 -107
  250. package/.framework/src/components/ui/chart.tsx +252 -147
  251. package/.framework/src/components/ui/checkbox.tsx +43 -44
  252. package/.framework/src/components/ui/collapsible.tsx +86 -71
  253. package/.framework/src/components/ui/combobox.tsx +282 -249
  254. package/.framework/src/components/ui/command.tsx +158 -146
  255. package/.framework/src/components/ui/context-menu.tsx +239 -240
  256. package/.framework/src/components/ui/dialog.tsx +174 -157
  257. package/.framework/src/components/ui/direction.tsx +72 -56
  258. package/.framework/src/components/ui/drawer.tsx +168 -169
  259. package/.framework/src/components/ui/dropdown-menu.tsx +254 -223
  260. package/.framework/src/components/ui/empty.tsx +131 -120
  261. package/.framework/src/components/ui/field.tsx +205 -173
  262. package/.framework/src/components/ui/hover-card.tsx +71 -72
  263. package/.framework/src/components/ui/input-group.tsx +148 -133
  264. package/.framework/src/components/ui/input-otp.tsx +99 -86
  265. package/.framework/src/components/ui/input.tsx +43 -41
  266. package/.framework/src/components/ui/item.tsx +207 -185
  267. package/.framework/src/components/ui/kbd.tsx +57 -56
  268. package/.framework/src/components/ui/label.tsx +45 -41
  269. package/.framework/src/components/ui/menubar.tsx +268 -236
  270. package/.framework/src/components/ui/native-select.tsx +85 -86
  271. package/.framework/src/components/ui/navigation-menu.tsx +166 -156
  272. package/.framework/src/components/ui/pagination.tsx +131 -141
  273. package/.framework/src/components/ui/popover.tsx +125 -128
  274. package/.framework/src/components/ui/progress.tsx +47 -44
  275. package/.framework/src/components/ui/radio-group.tsx +60 -55
  276. package/.framework/src/components/ui/resizable.tsx +85 -72
  277. package/.framework/src/components/ui/scroll-area.tsx +57 -58
  278. package/.framework/src/components/ui/select.tsx +182 -169
  279. package/.framework/src/components/ui/separator.tsx +42 -43
  280. package/.framework/src/components/ui/sheet.tsx +170 -159
  281. package/.framework/src/components/ui/sidebar.tsx +395 -398
  282. package/.framework/src/components/ui/skeleton.tsx +42 -43
  283. package/.framework/src/components/ui/slider.tsx +61 -44
  284. package/.framework/src/components/ui/sonner.tsx +44 -44
  285. package/.framework/src/components/ui/spinner.tsx +47 -42
  286. package/.framework/src/components/ui/switch.tsx +56 -42
  287. package/.framework/src/components/ui/table-primitives.tsx +272 -132
  288. package/.framework/src/components/ui/table.tsx +140 -142
  289. package/.framework/src/components/ui/tabs.tsx +110 -93
  290. package/.framework/src/components/ui/textarea.tsx +43 -44
  291. package/.framework/src/components/ui/toggle-group.tsx +87 -71
  292. package/.framework/src/components/ui/toggle.tsx +56 -56
  293. package/.framework/src/components/ui/tooltip.tsx +99 -85
  294. package/.framework/src/contexts/AppContext.tsx +166 -114
  295. package/.framework/src/contexts/AuthContext.tsx +232 -137
  296. package/.framework/src/hooks/use-mobile.ts +43 -44
  297. package/.framework/src/hooks/useApi.ts +185 -172
  298. package/.framework/src/hooks/useAppPath.ts +31 -29
  299. package/.framework/src/hooks/useApps.ts +77 -42
  300. package/.framework/src/hooks/useEntityList.ts +66 -29
  301. package/.framework/src/hooks/useEntityRecord.ts +76 -32
  302. package/.framework/src/hooks/useForm.ts +62 -30
  303. package/.framework/src/hooks/useListSchema.ts +60 -43
  304. package/.framework/src/hooks/useSchemaRecord.ts +115 -95
  305. package/.framework/src/lib/api.ts +258 -134
  306. package/.framework/src/lib/registration.ts +181 -0
  307. package/.framework/src/lib/supabase.ts +118 -81
  308. package/.framework/src/lib/utils.ts +266 -266
  309. package/.framework/src/main.tsx +43 -44
  310. package/.framework/src/pages/DashboardPage.tsx +44 -43
  311. package/.framework/src/pages/NoAppPage.tsx +50 -0
  312. package/.framework/src/pages/NotFoundPage.tsx +32 -29
  313. package/.framework/src/pages/SetupPage.tsx +34 -33
  314. package/.framework/src/pages/admin/AIAgentDetailPage.tsx +69 -58
  315. package/.framework/src/pages/admin/AIAgentsPage.tsx +43 -40
  316. package/.framework/src/pages/admin/APIKeyDetailPage.tsx +63 -55
  317. package/.framework/src/pages/admin/APIKeysPage.tsx +44 -42
  318. package/.framework/src/pages/admin/AlertsConfigPage.tsx +117 -94
  319. package/.framework/src/pages/admin/AppDetailPage.tsx +48 -42
  320. package/.framework/src/pages/admin/AppsPage.tsx +45 -42
  321. package/.framework/src/pages/admin/DeliveriesPage.tsx +49 -17
  322. package/.framework/src/pages/admin/DesignedPage.tsx +31 -30
  323. package/.framework/src/pages/admin/EmbeddingDetailPage.tsx +58 -0
  324. package/.framework/src/pages/admin/EmbeddingsPage.tsx +49 -0
  325. package/.framework/src/pages/admin/ExtendedShadcnTestPage.tsx +31 -29
  326. package/.framework/src/pages/admin/IncrementalShadcnTestPage.tsx +46 -29
  327. package/.framework/src/pages/admin/IntegratedDashboard.tsx +32 -29
  328. package/.framework/src/pages/admin/IntegrationDetailPage.tsx +68 -55
  329. package/.framework/src/pages/admin/IntegrationsPage.tsx +45 -42
  330. package/.framework/src/pages/admin/InvitesPage.tsx +60 -44
  331. package/.framework/src/pages/admin/LogsPage.tsx +87 -137
  332. package/.framework/src/pages/admin/MinimalShadcnTestPage.tsx +31 -29
  333. package/.framework/src/pages/admin/ObservabilityDashboard.tsx +150 -89
  334. package/.framework/src/pages/admin/PipelineDetailPage.tsx +77 -104
  335. package/.framework/src/pages/admin/PipelineExecutionsPage.tsx +44 -43
  336. package/.framework/src/pages/admin/PipelinesPage.tsx +59 -145
  337. package/.framework/src/pages/admin/PromptConfigDetailPage.tsx +53 -42
  338. package/.framework/src/pages/admin/PromptConfigsPage.tsx +47 -117
  339. package/.framework/src/pages/admin/ProperlyDesignedPage.tsx +31 -44
  340. package/.framework/src/pages/admin/RoleDetailPage.tsx +49 -92
  341. package/.framework/src/pages/admin/RolesPage.tsx +47 -164
  342. package/.framework/src/pages/admin/SecurityPage.tsx +310 -0
  343. package/.framework/src/pages/admin/SelectTestPage.tsx +30 -32
  344. package/.framework/src/pages/admin/ShadcnTestPage.tsx +37 -44
  345. package/.framework/src/pages/admin/SimpleDashboard.tsx +32 -44
  346. package/.framework/src/pages/admin/TestRunDetailPage.tsx +97 -44
  347. package/.framework/src/pages/admin/TestingDashboard.tsx +126 -71
  348. package/.framework/src/pages/admin/TimerDetailPage.tsx +67 -55
  349. package/.framework/src/pages/admin/TimersPage.tsx +44 -42
  350. package/.framework/src/pages/admin/TriggerDetailPage.tsx +47 -42
  351. package/.framework/src/pages/admin/TriggersPage.tsx +58 -57
  352. package/.framework/src/pages/admin/TypeDetailPage.tsx +91 -55
  353. package/.framework/src/pages/admin/TypesPage.tsx +45 -42
  354. package/.framework/src/pages/admin/cil/CILAgentPage.tsx +258 -128
  355. package/.framework/src/pages/admin/cil/CILChunkDetailPage.tsx +127 -123
  356. package/.framework/src/pages/admin/cil/CILDashboardPage.tsx +308 -235
  357. package/.framework/src/pages/admin/cil/CILFileListPage.tsx +159 -110
  358. package/.framework/src/pages/admin/cil/CILFileSelectPage.tsx +432 -0
  359. package/.framework/src/pages/admin/cil/CILGraphPage.tsx +200 -178
  360. package/.framework/src/pages/admin/cil/CILIngestionPage.tsx +286 -239
  361. package/.framework/src/pages/admin/cil/CILProjectsPage.tsx +211 -90
  362. package/.framework/src/pages/admin/cil/CILSearchPage.tsx +156 -143
  363. package/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx +379 -0
  364. package/.framework/src/pages/admin/cil/CILVersionsPage.tsx +337 -0
  365. package/.framework/src/pages/admin/cil/FlexiblePipelinePage.tsx +219 -214
  366. package/.framework/src/pages/admin/kb/KBAdminPage.tsx +64 -0
  367. package/.framework/src/pages/auth/AuthConfirmPage.tsx +135 -65
  368. package/.framework/src/pages/auth/ForgotPasswordPage.tsx +39 -31
  369. package/.framework/src/pages/auth/LoginPage.tsx +38 -32
  370. package/.framework/src/pages/auth/PendingApprovalPage.tsx +31 -28
  371. package/.framework/src/pages/auth/RegisterPage.tsx +429 -155
  372. package/.framework/src/pages/spine-framework/APIPage.tsx +33 -30
  373. package/.framework/src/pages/spine-framework/CLIPage.tsx +32 -30
  374. package/.framework/src/types/auth.ts +101 -93
  375. package/.framework/src/types/types.ts +283 -262
  376. package/.framework/templates/project.json +87 -0
  377. package/.framework/templates/spine.config.neutral.json +7 -0
  378. package/.framework/tests/api/api-surface.test.ts +381 -0
  379. package/.framework/tests/fixtures/seed.ts +427 -0
  380. package/.framework/tests/fixtures/teardown.ts +228 -0
  381. package/.framework/tests/reporter.ts +351 -0
  382. package/.framework/tests/setup.ts +135 -0
  383. package/.framework/tests/ui/ui-sweep.ts +278 -0
  384. package/.framework/tests/unit/admin-data-logger.test.ts +310 -0
  385. package/.framework/tests/unit/agent-runner.test.ts +2389 -0
  386. package/.framework/tests/unit/ai-interactions.test.ts +81 -0
  387. package/.framework/tests/unit/app-manifest.test.ts +359 -0
  388. package/.framework/tests/unit/assembly-scripts.test.ts +172 -0
  389. package/.framework/tests/unit/cil-determinism.test.ts +85 -0
  390. package/.framework/tests/unit/core-isolation.test.ts +153 -0
  391. package/.framework/tests/unit/funnel-signals.test.ts +135 -0
  392. package/.framework/tests/unit/install-app.test.ts +1759 -0
  393. package/.framework/tests/unit/invites-security.test.ts +572 -0
  394. package/.framework/tests/unit/kb-ingest-lease.test.ts +287 -0
  395. package/.framework/tests/unit/kb-search.test.ts +119 -0
  396. package/.framework/tests/unit/migrate.test.ts +509 -0
  397. package/.framework/tests/unit/notify.test.ts +136 -0
  398. package/.framework/tests/unit/permissions.test.ts +269 -0
  399. package/.framework/tests/unit/pipeline-runner.test.ts +755 -0
  400. package/.framework/tests/unit/principal-cache.test.ts +138 -0
  401. package/.framework/tests/unit/retrieval-golden.test.ts +520 -0
  402. package/.framework/tests/unit/runtime-isolation.test.ts +642 -0
  403. package/.framework/tests/unit/schema-utils.test.ts +225 -0
  404. package/.framework/tests/unit/trigger-engine.test.ts +513 -0
  405. package/.framework/tests/unit/validate-app.test.ts +527 -0
  406. package/README.md +34 -3
  407. package/bin/spine-framework.cjs +1 -0
  408. package/config/tailwind.config.cjs +7 -0
  409. package/config/tsconfig.functions.json +42 -0
  410. package/config/tsconfig.json +37 -9
  411. package/config/vite.config.ts +31 -2
  412. package/netlify.toml +31 -3
  413. package/package.json +46 -29
  414. package/scripts/assemble-frontend.sh +127 -44
  415. package/scripts/assemble-functions.sh +127 -29
  416. package/scripts/boundary-check.sh +6 -2
  417. package/scripts/build-manifest.sh +24 -68
  418. package/scripts/checksum-manifest.mts +345 -0
  419. package/scripts/dev-clean.sh +86 -0
  420. package/scripts/dev-netlify.sh +49 -0
  421. package/scripts/netlify-dev-wrapper.sh +2 -0
  422. package/scripts/verify-install.ts +358 -0
  423. package/scripts/verify-integrity.sh +21 -57
  424. package/scripts/verify-manifest.mts +305 -0
  425. package/templates/project/gitignore +45 -0
  426. package/{config → templates/project}/package-lock.json +22335 -9366
  427. package/vitest.config.ts +46 -0
  428. package/.framework/public/spine.config.json +0 -91
  429. package/config/deno.lock +0 -108
  430. package/config/tsconfig.node.tsbuildinfo +0 -1
  431. package/config/tsconfig.tsbuildinfo +0 -1
  432. package/config/vite.config.d.ts +0 -2
  433. package/custom/.devin/AGENT.md +0 -357
  434. package/custom/.devin/skills/install-app/SKILL.md +0 -39
  435. package/custom/.devin/skills/spine-workbench-discovery/SKILL.md +0 -39
  436. package/custom/.devin/skills/spine-workbench-idea/SKILL.md +0 -36
  437. package/custom/.devin/skills/spine-workbench-implement/SKILL.md +0 -46
  438. package/custom/.devin/skills/spine-workbench-initiative/SKILL.md +0 -28
  439. package/custom/.devin/skills/spine-workbench-plan/SKILL.md +0 -38
  440. package/custom/.devin/workflows/app-install.yaml +0 -83
  441. package/custom/README.md +0 -79
  442. package/docs/README.md +0 -15
  443. package/scripts/app-install-cli.ts +0 -286
  444. package/scripts/check-core-integrity.sh +0 -82
  445. package/scripts/ingest-chunks.cjs +0 -202
  446. package/scripts/kb-chunk-parser.cjs +0 -312
  447. package/scripts/kb-chunk-parser.ts +0 -330
  448. package/scripts/kb-ingest-docs.ts +0 -203
  449. package/scripts/load-test-app-install.ts +0 -484
  450. package/scripts/test-login.js +0 -33
  451. package/spine.config.json +0 -91
@@ -1,3 +1,13 @@
1
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/alert.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/components/ui/alert.tsx"]
2
+ // CIL[DOC-MACRO purpose="Import React, class-variance-authority, and utility helpers for alert UI components"]
3
+ // CIL[DOC-RESPONSIBILITY responsibility="Provide the base dependencies used by Alert and its variants"]
4
+ // CIL[DOC-CONTEXT module=".framework/src/components/ui/alert.tsx" layer="ui" related_files=".framework/src/lib/utils.ts"]
5
+ // CIL[DOC-CONTRACT inputs="none" outputs="React, cva, VariantProps, and cn available in module scope" errors="none" side_effects="none"]
6
+ // CIL[DOC-MICRO logic_summary="Import React namespace, cva and VariantProps, and project cn utility" notable_decisions="Uses cva for type-safe Tailwind class variance"]
7
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
8
+ // CIL[DOC-STABILITY stable]
9
+ // CIL[DOC-AUDIENCE audience="developers"]
10
+
1
11
 
2
12
 
3
13
 
@@ -5,40 +15,26 @@
5
15
 
6
16
 
7
17
 
8
- // CIL[BEGIN chunk_id="alert_module_header_1783883196" type="module_header" identity="module_header" parent="none"]
9
- // CIL[DOC-MACRO purpose="Import React and styling dependencies for Alert component"]
10
- // CIL[DOC-RESPONSIBILITY responsibility="Provide external dependencies for Alert UI components"]
11
- // CIL[DOC-CONTEXT module="alert" layer="ui" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\"\\\"]"]
12
- // CIL[DOC-CONTRACT inputs="none" outputs="React, cva, VariantProps, cn" errors="none" side_effects="none"]
13
- // CIL[DOC-MICRO logic_summary="Imports React, class-variance-authority for styling variants, and utility function" notable_decisions="[]"]
14
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
15
- // CIL[DOC-STABILITY stability="stable"]
16
- // CIL[DOC-AUDIENCE audience="developer"]
17
- // CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/components/ui/dialog.tsx, .framework/src/components/ui/table-primitives.tsx, \."]
18
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
19
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
20
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
21
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
22
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
23
18
  import * as React from "react"
24
19
  import { cva, type VariantProps } from "class-variance-authority"
25
20
 
26
21
  import { cn } from "@/lib/utils"
27
- // CIL[END chunk_id="alert_module_header_1783883196"]
28
- // CIL[BEGIN chunk_id="alert_alertvariants_1783883196" type="constant" identity="alertVariants" parent="none"]
29
- // CIL[DOC-MACRO purpose="Define styling variants for Alert component using CVA"]
30
- // CIL[DOC-RESPONSIBILITY responsibility="Manage Alert visual appearance and responsive behavior"]
31
- // CIL[DOC-CONTEXT module="alert" layer="ui" related_files="[\".framework/src/components/ui/dialog.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/functions/_shared/principal.ts\",\"\\\"]"]
32
- // CIL[DOC-CONTRACT inputs="none" outputs="alertVariants function" errors="none" side_effects="none"]
33
- // CIL[DOC-MICRO logic_summary="Creates class-variance-authority configuration with default and destructive variants" notable_decisions="[]"]
34
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
35
- // CIL[DOC-STABILITY stability="stable"]
36
- // CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 1. Direct calls: 0. Related files: .framework/src/components/ui/dialog.tsx, .framework/src/components/ui/table-primitives.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/functions/_shared/principal.ts, \."]
37
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 1. Total affected: 1."]
38
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
39
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
22
+ // CIL[DOC-VECTOR type="context" content="purpose='Import React, class-variance-authority, and utility helpers for alert UI components'; No verified external callers; imports: .framework/src/lib/utils.ts"]
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"]
40
26
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
41
27
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
28
+ // CIL[END stable_id="~/.framework/src/components/ui/alert.tsx:module_header:module_header"]
29
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/alert.tsx:alertVariants:constant" type="constant" identity="alertVariants" parent="~/.framework/src/components/ui/alert.tsx"]
30
+ // CIL[DOC-MACRO purpose="Define the CVA class-variance config for alert styles"]
31
+ // CIL[DOC-RESPONSIBILITY responsibility="Generate the class string used by the Alert component based on variant"]
32
+ // CIL[DOC-CONTEXT module=".framework/src/components/ui/alert.tsx" layer="ui" related_files=".framework/src/components/ui/alert.tsx,.framework/src/lib/utils.ts"]
33
+ // CIL[DOC-CONTRACT inputs="variant: 'default' | 'destructive'" outputs="string of Tailwind utility classes" errors="none" side_effects="none"]
34
+ // CIL[DOC-MICRO logic_summary="Use cva to compose grid, border, padding, text, and SVG layout classes; supports default and destructive variants" notable_decisions="Includes data-slot and svg selectors for layout when icons are present"]
35
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
36
+ // CIL[DOC-STABILITY stable]
37
+ // CIL[DOC-AUDIENCE audience="developers"]
42
38
  const alertVariants = cva(
43
39
  "group/alert relative grid w-full gap-0.5 rounded-lg border px-2 py-1.5 text-left text-xs/relaxed has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-1.5 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-3.5",
44
40
  {
@@ -54,21 +50,23 @@ const alertVariants = cva(
54
50
  },
55
51
  }
56
52
  )
57
- // CIL[END chunk_id="alert_alertvariants_1783883196"]
58
- // CIL[BEGIN chunk_id="alert_alert_1783883196" type="function" identity="Alert" parent="none"]
59
- // CIL[DOC-MACRO purpose="Main Alert component wrapper with accessibility and styling"]
60
- // CIL[DOC-RESPONSIBILITY responsibility="Render alert container with proper semantics and variants"]
61
- // CIL[DOC-CONTEXT module="alert" layer="ui" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
62
- // CIL[DOC-CONTRACT inputs="none" outputs="JSX div element" errors="none" side_effects="renders DOM"]
63
- // CIL[DOC-MICRO logic_summary="Creates div with alert role, applies variants via cva, spreads remaining props" notable_decisions="[]"]
64
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
65
- // CIL[DOC-STABILITY stability="stable"]
66
- // CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/src/components/ui/dialog.tsx, .framework/src/components/ui/table-primitives.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
67
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
68
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
69
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
53
+ // CIL[DOC-VECTOR type="context" content="purpose='Define the CVA class-variance config for alert styles'; 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"]
70
57
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
71
58
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
59
+ // CIL[END stable_id="~/.framework/src/components/ui/alert.tsx:alertVariants:constant"]
60
+
61
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/alert.tsx:Alert:component" type="component" identity="Alert" parent="~/.framework/src/components/ui/alert.tsx"]
62
+ // CIL[DOC-MACRO purpose="Render an accessible alert container with a variant class"]
63
+ // CIL[DOC-RESPONSIBILITY responsibility="Combine the selected alert variant classes with an optional custom className"]
64
+ // CIL[DOC-CONTEXT module=".framework/src/components/ui/alert.tsx" layer="ui" related_files=".framework/src/components/ui/alert.tsx,.framework/src/lib/utils.ts"]
65
+ // CIL[DOC-CONTRACT inputs="className?: string, variant?: 'default' | 'destructive', ...props: React.ComponentProps<'div'> & VariantProps<typeof alertVariants>" outputs="JSX div with role='alert'" errors="none" side_effects="none"]
66
+ // CIL[DOC-MICRO logic_summary="Apply cva alertVariants to variant and merge with className using cn" notable_decisions="Spreads remaining props onto the div for full accessibility and event support"]
67
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
68
+ // CIL[DOC-STABILITY stable]
69
+ // CIL[DOC-AUDIENCE audience="developers"]
72
70
  function Alert({
73
71
  className,
74
72
  variant,
@@ -83,21 +81,23 @@ function Alert({
83
81
  />
84
82
  )
85
83
  }
86
- // CIL[END chunk_id="alert_alert_1783883196"]
87
- // CIL[BEGIN chunk_id="alert_alerttitle_1783883196" type="function" identity="AlertTitle" parent="none"]
88
- // CIL[DOC-MACRO purpose="Alert title component with typography and layout styling"]
89
- // CIL[DOC-RESPONSIBILITY responsibility="Render styled title for alert content with proper spacing"]
90
- // CIL[DOC-CONTEXT module="alert" layer="ui" related_files="[\".framework/src/components/ui/dialog.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
91
- // CIL[DOC-CONTRACT inputs="none" outputs="JSX div element" errors="none" side_effects="renders DOM"]
92
- // CIL[DOC-MICRO logic_summary="Creates div with medium font weight, handles icon layout, link styling" notable_decisions="[]"]
93
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
94
- // CIL[DOC-STABILITY stability="stable"]
95
- // CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/ui/dialog.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/components/ui/table-primitives.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
96
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
97
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
98
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
84
+ // CIL[DOC-VECTOR type="context" content="purpose='Render an accessible alert container with a variant class'; No verified external callers; imports: .framework/src/lib/utils.ts"]
85
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
86
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
87
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
99
88
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
100
89
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
90
+ // CIL[END stable_id="~/.framework/src/components/ui/alert.tsx:Alert:component"]
91
+
92
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/alert.tsx:AlertTitle:component" type="component" identity="AlertTitle" parent="~/.framework/src/components/ui/alert.tsx"]
93
+ // CIL[DOC-MACRO purpose="Render the title element inside an Alert"]
94
+ // CIL[DOC-RESPONSIBILITY responsibility="Display a bold, underlined-link title that aligns with optional alert icons"]
95
+ // CIL[DOC-CONTEXT module=".framework/src/components/ui/alert.tsx" layer="ui" related_files=".framework/src/components/ui/alert.tsx,.framework/src/lib/utils.ts"]
96
+ // CIL[DOC-CONTRACT inputs="className?: string, ...props: React.ComponentProps<'div'>" outputs="JSX div with data-slot='alert-title'" errors="none" side_effects="none"]
97
+ // CIL[DOC-MICRO logic_summary="Use cn to merge default font and group styles with className" notable_decisions="Styles inline links with underline and hover foreground color"]
98
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
99
+ // CIL[DOC-STABILITY stable]
100
+ // CIL[DOC-AUDIENCE audience="developers"]
101
101
  function AlertTitle({ className, ...props }: React.ComponentProps<"div">) {
102
102
  return (
103
103
  <div
@@ -110,21 +110,23 @@ function AlertTitle({ className, ...props }: React.ComponentProps<"div">) {
110
110
  />
111
111
  )
112
112
  }
113
- // CIL[END chunk_id="alert_alerttitle_1783883196"]
114
- // CIL[BEGIN chunk_id="alert_alertdescription_1783883196" type="function" identity="AlertDescription" parent="none"]
115
- // CIL[DOC-MACRO purpose="Alert description component with readable text styling"]
116
- // CIL[DOC-RESPONSIBILITY responsibility="Render styled description text for alert content"]
117
- // CIL[DOC-CONTEXT module="alert" layer="ui" related_files="[\".framework/functions/_shared/schema-utils.ts\",\".framework/src/components/ui/table-primitives.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
118
- // CIL[DOC-CONTRACT inputs="none" outputs="JSX div element" errors="none" side_effects="renders DOM"]
119
- // CIL[DOC-MICRO logic_summary="Creates div with small relaxed text, balanced layout, link and paragraph styling" notable_decisions="[]"]
120
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
121
- // CIL[DOC-STABILITY stability="stable"]
122
- // CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: .framework/functions/_shared/schema-utils.ts, .framework/src/components/ui/table-primitives.tsx, .framework/src/components/ui/dialog.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
123
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
124
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
125
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
113
+ // CIL[DOC-VECTOR type="context" content="purpose='Render the title element inside an Alert'; No verified external callers; imports: .framework/src/lib/utils.ts"]
114
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
115
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
116
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
126
117
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
127
118
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
119
+ // CIL[END stable_id="~/.framework/src/components/ui/alert.tsx:AlertTitle:component"]
120
+
121
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/alert.tsx:AlertDescription:component" type="component" identity="AlertDescription" parent="~/.framework/src/components/ui/alert.tsx"]
122
+ // CIL[DOC-MACRO purpose="Render the description body inside an Alert"]
123
+ // CIL[DOC-RESPONSIBILITY responsibility="Display muted, balanced text for additional alert details"]
124
+ // CIL[DOC-CONTEXT module=".framework/src/components/ui/alert.tsx" layer="ui" related_files=".framework/src/components/ui/alert.tsx,.framework/src/lib/utils.ts"]
125
+ // CIL[DOC-CONTRACT inputs="className?: string, ...props: React.ComponentProps<'div'>" outputs="JSX div with data-slot='alert-description'" errors="none" side_effects="none"]
126
+ // CIL[DOC-MICRO logic_summary="Use cn to merge muted text and link styles with className" notable_decisions="Paragraphs except the last receive a bottom margin"]
127
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
128
+ // CIL[DOC-STABILITY stable]
129
+ // CIL[DOC-AUDIENCE audience="developers"]
128
130
  function AlertDescription({
129
131
  className,
130
132
  ...props
@@ -140,21 +142,23 @@ function AlertDescription({
140
142
  />
141
143
  )
142
144
  }
143
- // CIL[END chunk_id="alert_alertdescription_1783883196"]
144
- // CIL[BEGIN chunk_id="alert_alertaction_1783883196" type="function" identity="AlertAction" parent="none"]
145
- // CIL[DOC-MACRO purpose="Alert action component for buttons or interactive elements"]
146
- // CIL[DOC-RESPONSIBILITY responsibility="Render positioned container for alert actions/controls"]
147
- // CIL[DOC-CONTEXT module="alert" layer="ui" related_files="[]"]
148
- // CIL[DOC-CONTRACT inputs="none" outputs="JSX div element" errors="none" side_effects="renders DOM"]
149
- // CIL[DOC-MICRO logic_summary="Creates absolutely positioned div in top-right corner of alert" notable_decisions="[]"]
150
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
151
- // CIL[DOC-STABILITY stability="stable"]
152
- // CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
153
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
154
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
155
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
145
+ // CIL[DOC-VECTOR type="context" content="purpose='Render the description body inside an Alert'; No verified external callers; imports: .framework/src/lib/utils.ts"]
146
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
147
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
148
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
156
149
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
157
150
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
151
+ // CIL[END stable_id="~/.framework/src/components/ui/alert.tsx:AlertDescription:component"]
152
+
153
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/alert.tsx:AlertAction:component" type="component" identity="AlertAction" parent="~/.framework/src/components/ui/alert.tsx"]
154
+ // CIL[DOC-MACRO purpose="Render an action element anchored to the top-right of an Alert"]
155
+ // CIL[DOC-RESPONSIBILITY responsibility="Position an action control within the alert layout"]
156
+ // CIL[DOC-CONTEXT module=".framework/src/components/ui/alert.tsx" layer="ui" related_files=".framework/src/components/ui/alert.tsx,.framework/src/lib/utils.ts"]
157
+ // CIL[DOC-CONTRACT inputs="className?: string, ...props: React.ComponentProps<'div'>" outputs="JSX div with data-slot='alert-action'" errors="none" side_effects="none"]
158
+ // CIL[DOC-MICRO logic_summary="Use cn to absolutely position the action at top-1.5 right-2" notable_decisions="Padding on the alert is adjusted via parent has-data-[slot=alert-action] selector"]
159
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
160
+ // CIL[DOC-STABILITY stable]
161
+ // CIL[DOC-AUDIENCE audience="developers"]
158
162
  function AlertAction({ className, ...props }: React.ComponentProps<"div">) {
159
163
  return (
160
164
  <div
@@ -164,20 +168,27 @@ function AlertAction({ className, ...props }: React.ComponentProps<"div">) {
164
168
  />
165
169
  )
166
170
  }
167
- // CIL[END chunk_id="alert_alertaction_1783883196"]
168
- // CIL[BEGIN chunk_id="alert_exports_1783883196" type="exports" identity="exports" parent="none"]
169
- // CIL[DOC-MACRO purpose="Export all Alert components for external use"]
170
- // CIL[DOC-RESPONSIBILITY responsibility="Provide public API for Alert component library"]
171
- // CIL[DOC-CONTEXT module="alert" layer="ui" related_files="[]"]
172
- // CIL[DOC-CONTRACT inputs="none" outputs="exported components" errors="none" side_effects="module exports"]
173
- // CIL[DOC-MICRO logic_summary="Exports Alert, AlertTitle, AlertDescription, AlertAction components" notable_decisions="[]"]
174
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
175
- // CIL[DOC-STABILITY stability="stable"]
176
- // CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
177
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
178
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
179
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
171
+ // CIL[DOC-VECTOR type="context" content="purpose='Render an action element anchored to the top-right of an Alert'; No verified external callers; imports: .framework/src/lib/utils.ts"]
172
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
173
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
174
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
180
175
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
181
176
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
177
+ // CIL[END stable_id="~/.framework/src/components/ui/alert.tsx:AlertAction:component"]
178
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/alert.tsx:exports:variable" type="variable" identity="exports" parent="~/.framework/src/components/ui/alert.tsx"]
179
+ // CIL[DOC-MACRO purpose="Expose Alert subcomponents for external use"]
180
+ // CIL[DOC-RESPONSIBILITY responsibility="Export the public API of the alert UI kit"]
181
+ // CIL[DOC-CONTEXT module=".framework/src/components/ui/alert.tsx" layer="ui" related_files=".framework/src/components/ui/alert.tsx,.framework/src/lib/utils.ts"]
182
+ // CIL[DOC-CONTRACT inputs="none" outputs="Alert, AlertTitle, AlertDescription, AlertAction named exports" errors="none" side_effects="none"]
183
+ // CIL[DOC-MICRO logic_summary="Named export list for all alert components" notable_decisions="Keeps a flat export surface"]
184
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
185
+ // CIL[DOC-STABILITY stable]
186
+ // CIL[DOC-AUDIENCE audience="developers"]
182
187
  export { Alert, AlertTitle, AlertDescription, AlertAction }
183
- // CIL[END chunk_id="alert_exports_1783883196"]
188
+ // CIL[DOC-VECTOR type="context" content="purpose='Expose Alert subcomponents for external use'; No verified external callers; imports: .framework/src/lib/utils.ts"]
189
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
190
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
191
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
192
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
193
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
194
+ // CIL[END stable_id="~/.framework/src/components/ui/alert.tsx:exports:variable"]
@@ -1,58 +1,72 @@
1
-
2
-
3
-
4
- // CIL[BEGIN chunk_id="aspect-ratio_module_header_1783883196" type="module_header" identity="module_header" parent="none"]
5
- // CIL[DOC-MACRO purpose="Import Radix UI AspectRatio and client directive"]
6
- // CIL[DOC-RESPONSIBILITY responsibility="Provide external dependencies for AspectRatio component"]
7
- // CIL[DOC-CONTEXT module="aspect-ratio" layer="ui" related_files="[\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
8
- // CIL[DOC-CONTRACT inputs="none" outputs="AspectRatioPrimitive, client directive" errors="none" side_effects="none"]
9
- // CIL[DOC-MICRO logic_summary="Imports Radix UI AspectRatio primitive and client directive" notable_decisions="[]"]
10
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
1
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/aspect-ratio.tsx:use_client:directive" type="directive" identity="use_client" parent="none"]
2
+ // CIL[DOC-MACRO purpose="Declare client-side execution boundary for Next.js"]
3
+ // CIL[DOC-RESPONSIBILITY responsibility="Mark this module as client-only so it can use React hooks and JSX"]
4
+ // CIL[DOC-CONTEXT module="components/ui/aspect-ratio" layer="ui" related_files=".framework/src/components/ui/aspect-ratio.tsx"]
5
+ // CIL[DOC-CONTRACT inputs="none" outputs="\"use client\" directive" errors="none" side_effects="none"]
6
+ // CIL[DOC-MICRO logic_summary="Adds the React use client directive at the top of the file" notable_decisions="[]"]
7
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
11
8
  // CIL[DOC-STABILITY stability="stable"]
12
- // CIL[DOC-AUDIENCE audience="developer"]
13
- // CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: custom/apps/cortex/pages/operations/OperationsDashboard.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/components/ui/dialog.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
14
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
15
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
16
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
9
+ "use client"
10
+ // CIL[DOC-VECTOR type="context" content="purpose='Declare client-side execution boundary for Next.js'; No verified external callers; imports: none"]
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"]
17
14
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
18
15
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
19
- "use client"
16
+ // CIL[END stable_id="~/.framework/src/components/ui/aspect-ratio.tsx:use_client:directive"]
20
17
 
21
- import { AspectRatio as AspectRatioPrimitive } from "radix-ui"
22
- // CIL[END chunk_id="aspect-ratio_module_header_1783883196"]
23
- // CIL[BEGIN chunk_id="aspect-ratio_aspectratio_1783883196" type="function" identity="AspectRatio" parent="none"]
24
- // CIL[DOC-MACRO purpose="Main AspectRatio component wrapper"]
25
- // CIL[DOC-RESPONSIBILITY responsibility="Render AspectRatio primitive with data slot"]
26
- // CIL[DOC-CONTEXT module="aspect-ratio" layer="ui" related_files="[\".framework/src/components/ui/dialog.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
27
- // CIL[DOC-CONTRACT inputs="none" outputs="JSX AspectRatioPrimitive.Root with data-slot" errors="none" side_effects="renders DOM"]
28
- // CIL[DOC-MICRO logic_summary="Simple wrapper around Radix AspectRatio Root primitive, adds data-slot attribute for styling hooks" notable_decisions="[\"]
29
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
18
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/aspect-ratio.tsx:module_header:module_header" type="module_header" identity="module_header" parent="none"]
19
+ // CIL[DOC-MACRO purpose="Import the Radix UI AspectRatio primitive for re-export and wrapping"]
20
+ // CIL[DOC-RESPONSIBILITY responsibility="Bring in the external UI primitive dependency"]
21
+ // CIL[DOC-CONTEXT module="components/ui/aspect-ratio" layer="ui" related_files=".framework/src/components/ui/aspect-ratio.tsx"]
22
+ // CIL[DOC-CONTRACT inputs="none" outputs="imported AspectRatioPrimitive" errors="none" side_effects="adds module dependency"]
23
+ // CIL[DOC-MICRO logic_summary="Imports AspectRatio from radix-ui" notable_decisions="[]"]
24
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
30
25
  // CIL[DOC-STABILITY stability="stable"]
31
- // CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/ui/dialog.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
32
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
33
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
34
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
26
+ // CIL[DOC-AUDIENCE audience="ui component consumers and maintainers"]
27
+ import { AspectRatio as AspectRatioPrimitive } from "radix-ui"
28
+ // CIL[DOC-VECTOR type="context" content="purpose='Import the Radix UI AspectRatio primitive for re-export and wrapping'; No verified external callers; imports: none"]
29
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
30
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
31
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
35
32
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
36
33
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
34
+ // CIL[END stable_id="~/.framework/src/components/ui/aspect-ratio.tsx:module_header:module_header"]
35
+
36
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/aspect-ratio.tsx:aspectratio:function" type="function" identity="AspectRatio" parent="none"]
37
+ // CIL[DOC-MACRO purpose="Render a thin wrapper around Radix UI AspectRatio.Root with a data-slot attribute"]
38
+ // CIL[DOC-RESPONSIBILITY responsibility="Provide a consistent, project-specific aspect-ratio component API"]
39
+ // CIL[DOC-CONTEXT module="components/ui/aspect-ratio" layer="ui" related_files=".framework/src/components/ui/aspect-ratio.tsx"]
40
+ // CIL[DOC-CONTRACT inputs="props: React.ComponentProps<typeof AspectRatioPrimitive.Root>" outputs="JSX element" errors="prop type mismatch" side_effects="renders DOM"]
41
+ // CIL[DOC-MICRO logic_summary="Spreads incoming props onto AspectRatioPrimitive.Root and sets the data-slot attribute" notable_decisions="[]"]
42
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
43
+ // CIL[DOC-STABILITY stability="stable"]
37
44
  function AspectRatio({
38
45
  ...props
39
46
  }: React.ComponentProps<typeof AspectRatioPrimitive.Root>) {
40
47
  return <AspectRatioPrimitive.Root data-slot="aspect-ratio" {...props} />
41
48
  }
42
- // CIL[END chunk_id="aspect-ratio_aspectratio_1783883196"]
43
- // CIL[BEGIN chunk_id="aspect-ratio_exports_1783883196" type="exports" identity="exports" parent="none"]
44
- // CIL[DOC-MACRO purpose="Export AspectRatio component for external use"]
45
- // CIL[DOC-RESPONSIBILITY responsibility="Provide public API for AspectRatio component"]
46
- // CIL[DOC-CONTEXT module="aspect-ratio" layer="ui" related_files="[\".framework/src/components/ui/dialog.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\".framework/functions/_shared/principal.ts\",\"\\\"]"]
47
- // CIL[DOC-CONTRACT inputs="none" outputs="exported AspectRatio" errors="none" side_effects="module exports"]
48
- // CIL[DOC-MICRO logic_summary="Named export of AspectRatio component for consumption by other modules" notable_decisions="[\"]
49
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
50
- // CIL[DOC-STABILITY stability="stable"]
51
- // CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/ui/dialog.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/src/pages/admin/RolesPage.tsx, .framework/functions/_shared/principal.ts, \."]
52
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
53
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
54
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
49
+ // CIL[DOC-VECTOR type="context" content="purpose='Render a thin wrapper around Radix UI AspectRatio.Root with a data-slot attribute'; No verified external callers; imports: none"]
50
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
51
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
52
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
55
53
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
56
54
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
55
+ // CIL[END stable_id="~/.framework/src/components/ui/aspect-ratio.tsx:aspectratio:function"]
56
+
57
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/aspect-ratio.tsx:export_aspectratio:export" type="export" identity="export_aspectratio" parent="none"]
58
+ // CIL[DOC-MACRO purpose="Expose the AspectRatio component for public consumption"]
59
+ // CIL[DOC-RESPONSIBILITY responsibility="Named export of the AspectRatio component"]
60
+ // CIL[DOC-CONTEXT module="components/ui/aspect-ratio" layer="ui" related_files=".framework/src/components/ui/aspect-ratio.tsx"]
61
+ // CIL[DOC-CONTRACT inputs="none" outputs="named export AspectRatio" errors="none" side_effects="none"]
62
+ // CIL[DOC-MICRO logic_summary="Exports the local AspectRatio function as a named export" notable_decisions="[]"]
63
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
64
+ // CIL[DOC-STABILITY stability="stable"]
57
65
  export { AspectRatio }
58
- // CIL[END chunk_id="aspect-ratio_exports_1783883196"]
66
+ // CIL[DOC-VECTOR type="context" content="purpose='Expose the AspectRatio component for public consumption'; No verified external callers; imports: none"]
67
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
68
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
69
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
70
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
71
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
72
+ // CIL[END stable_id="~/.framework/src/components/ui/aspect-ratio.tsx:export_aspectratio:export"]