spine-framework 0.3.145 → 0.4.0

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