spine-framework 0.3.145 → 0.4.1

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