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,50 +1,36 @@
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
- // CIL[BEGIN chunk_id="navigation_menu_module_header_1783796064" type="module_header" identity="module_header" parent="none"]
13
- // CIL[DOC-MACRO purpose="Import dependencies for navigation menu components"]
14
- // CIL[DOC-RESPONSIBILITY responsibility="Import React, CVA, Radix UI, utilities, and icons"]
15
- // CIL[DOC-CONTEXT module="navigation-menu" layer="ui_components" related_files="[\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/functions/_shared/principal.ts\",\".framework/functions/_shared/schema-utils.ts\",\"\\\"]"]
16
- // CIL[DOC-CONTRACT inputs="none" outputs="imported modules" errors="none" side_effects="module imports"]
17
- // CIL[DOC-MICRO logic_summary="Imports all dependencies for navigation menu component system" notable_decisions="[]"]
18
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
1
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/navigation-menu.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/components/ui/navigation-menu.tsx"]
2
+ // CIL[DOC-MACRO purpose="Declare dependencies and set up the NavigationMenu UI module"]
3
+ // CIL[DOC-RESPONSIBILITY responsibility="Import React, class-variance-authority, Radix primitives, utilities, and icons"]
4
+ // CIL[DOC-CONTEXT module="NavigationMenu" layer="ui" related_files=".framework/src/lib/utils.ts"]
5
+ // CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="loads module dependencies"]
6
+ // CIL[DOC-MICRO logic_summary="Imports dependencies used by the NavigationMenu component set" notable_decisions="[]"]
7
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
19
8
  // CIL[DOC-STABILITY stability="stable"]
20
- // CIL[DOC-AUDIENCE audience="developer"]
21
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/components/ui/dialog.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/principal.ts, .framework/functions/_shared/schema-utils.ts, \."]
22
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
23
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
24
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
25
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
26
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
9
+ // CIL[DOC-AUDIENCE audience="developers"]
10
+
27
11
  import * as React from "react"
28
12
  import { cva } from "class-variance-authority"
29
13
  import { NavigationMenu as NavigationMenuPrimitive } from "radix-ui"
30
14
 
31
15
  import { cn } from "@/lib/utils"
32
16
  import { ChevronDownIcon } from "lucide-react"
33
- // CIL[END chunk_id="navigation_menu_module_header_1783796064"]
34
- // CIL[BEGIN chunk_id="navigation_menu_navigationmenu_1783796064" type="function" identity="NavigationMenu" parent="none"]
35
- // CIL[DOC-MACRO purpose="Render main navigation menu container"]
36
- // CIL[DOC-RESPONSIBILITY responsibility="Create navigation menu root with viewport support"]
37
- // CIL[DOC-CONTEXT module="navigation-menu" layer="ui_components" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
38
- // CIL[DOC-CONTRACT inputs="none" outputs="navigation menu container" errors="none" side_effects="renders DOM element"]
39
- // CIL[DOC-MICRO logic_summary="Creates navigation menu root with optional viewport component" notable_decisions="[]"]
40
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
41
- // CIL[DOC-STABILITY stability="stable"]
42
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
43
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
44
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
45
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
17
+ // CIL[DOC-VECTOR type="context" content="purpose='Declare dependencies and set up the NavigationMenu UI module'; No verified external callers; imports: .framework/src/lib/utils.ts"]
18
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
19
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
20
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
46
21
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
47
22
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
23
+ // CIL[END stable_id="~/.framework/src/components/ui/navigation-menu.tsx:module_header:module_header"]
24
+
25
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/navigation-menu.tsx:navigationmenu:function" type="function" identity="navigationmenu" parent="~/.framework/src/components/ui/navigation-menu.tsx:module_header:module_header"]
26
+ // CIL[DOC-MACRO purpose="Render a top-level navigation menu"]
27
+ // CIL[DOC-RESPONSIBILITY responsibility="Provide a Radix Root wrapper with an optional viewport"]
28
+ // CIL[DOC-CONTEXT module="NavigationMenu" layer="ui" related_files=".framework/src/components/ui/navigation-menu.tsx,.framework/src/lib/utils.ts"]
29
+ // CIL[DOC-CONTRACT inputs="className, children, viewport, ...props" outputs="JSX navigation menu root" errors="none" side_effects="none"]
30
+ // CIL[DOC-MICRO logic_summary="Renders NavigationMenuPrimitive.Root, passes className and viewport flag, and conditionally renders the viewport" notable_decisions="[]"]
31
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
32
+ // CIL[DOC-STABILITY stability="stable"]
33
+
48
34
  function NavigationMenu({
49
35
  className,
50
36
  children,
@@ -68,21 +54,23 @@ function NavigationMenu({
68
54
  </NavigationMenuPrimitive.Root>
69
55
  )
70
56
  }
71
- // CIL[END chunk_id="navigation_menu_navigationmenu_1783796064"]
72
- // CIL[BEGIN chunk_id="navigation_menu_navigationmenulist_1783796064" type="function" identity="NavigationMenuList" parent="none"]
73
- // CIL[DOC-MACRO purpose="Render navigation menu list container"]
74
- // CIL[DOC-RESPONSIBILITY responsibility="Create flex container for navigation menu items"]
75
- // CIL[DOC-CONTEXT module="navigation-menu" layer="ui_components" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
76
- // CIL[DOC-CONTRACT inputs="none" outputs="navigation list container" errors="none" side_effects="renders DOM element"]
77
- // CIL[DOC-MICRO logic_summary="Creates flex container for horizontal navigation layout" notable_decisions="[]"]
78
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
79
- // CIL[DOC-STABILITY stability="stable"]
80
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
81
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
82
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
83
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
57
+ // CIL[DOC-VECTOR type="context" content="purpose='Render a top-level navigation menu'; No verified external callers; imports: .framework/src/lib/utils.ts"]
58
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
59
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
60
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
84
61
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
85
62
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
63
+ // CIL[END stable_id="~/.framework/src/components/ui/navigation-menu.tsx:navigationmenu:function"]
64
+
65
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/navigation-menu.tsx:navigationmenulist:function" type="function" identity="navigationmenulist" parent="~/.framework/src/components/ui/navigation-menu.tsx:module_header:module_header"]
66
+ // CIL[DOC-MACRO purpose="Render a list of navigation menu items"]
67
+ // CIL[DOC-RESPONSIBILITY responsibility="Wrap list items in a horizontally centered flex list"]
68
+ // CIL[DOC-CONTEXT module="NavigationMenu" layer="ui" related_files=".framework/src/components/ui/navigation-menu.tsx,.framework/src/lib/utils.ts"]
69
+ // CIL[DOC-CONTRACT inputs="className, ...props" outputs="JSX menu list" errors="none" side_effects="none"]
70
+ // CIL[DOC-MICRO logic_summary="Renders NavigationMenuPrimitive.List with flex, list-none, and gap utilities" notable_decisions="[]"]
71
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
72
+ // CIL[DOC-STABILITY stability="stable"]
73
+
86
74
  function NavigationMenuList({
87
75
  className,
88
76
  ...props
@@ -98,21 +86,23 @@ function NavigationMenuList({
98
86
  />
99
87
  )
100
88
  }
101
- // CIL[END chunk_id="navigation_menu_navigationmenulist_1783796064"]
102
- // CIL[BEGIN chunk_id="navigation_menu_navigationmenuitem_1783796064" type="function" identity="NavigationMenuItem" parent="none"]
103
- // CIL[DOC-MACRO purpose="Render navigation menu item container"]
104
- // CIL[DOC-RESPONSIBILITY responsibility="Create container for individual navigation items"]
105
- // CIL[DOC-CONTEXT module="navigation-menu" layer="ui_components" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"\\\"]"]
106
- // CIL[DOC-CONTRACT inputs="none" outputs="navigation item container" errors="none" side_effects="renders DOM element"]
107
- // CIL[DOC-MICRO logic_summary="Creates relative positioned container for navigation menu items" notable_decisions="[]"]
108
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
109
- // CIL[DOC-STABILITY stability="stable"]
110
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/RolesPage.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, \."]
111
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
112
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
113
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
89
+ // CIL[DOC-VECTOR type="context" content="purpose='Render a list of navigation menu items'; No verified external callers; imports: .framework/src/lib/utils.ts"]
90
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
91
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
92
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
114
93
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
115
94
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
95
+ // CIL[END stable_id="~/.framework/src/components/ui/navigation-menu.tsx:navigationmenulist:function"]
96
+
97
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/navigation-menu.tsx:navigationmenuitem:function" type="function" identity="navigationmenuitem" parent="~/.framework/src/components/ui/navigation-menu.tsx:module_header:module_header"]
98
+ // CIL[DOC-MACRO purpose="Render a single navigation menu item"]
99
+ // CIL[DOC-RESPONSIBILITY responsibility="Provide a relative-positioned Radix Item container"]
100
+ // CIL[DOC-CONTEXT module="NavigationMenu" layer="ui" related_files=".framework/src/components/ui/navigation-menu.tsx,.framework/src/lib/utils.ts"]
101
+ // CIL[DOC-CONTRACT inputs="className, ...props" outputs="JSX menu item" errors="none" side_effects="none"]
102
+ // CIL[DOC-MICRO logic_summary="Renders NavigationMenuPrimitive.Item with relative class and props" notable_decisions="[]"]
103
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
104
+ // CIL[DOC-STABILITY stability="stable"]
105
+
116
106
  function NavigationMenuItem({
117
107
  className,
118
108
  ...props
@@ -125,39 +115,43 @@ function NavigationMenuItem({
125
115
  />
126
116
  )
127
117
  }
128
- // CIL[END chunk_id="navigation_menu_navigationmenuitem_1783796064"]
129
- // CIL[BEGIN chunk_id="navigation_menu_navigationmenutriggerstyle_1783796064" type="cva" identity="navigationMenuTriggerStyle" parent="none"]
130
- // CIL[DOC-MACRO purpose="Define style variants for navigation menu triggers"]
131
- // CIL[DOC-RESPONSIBILITY responsibility="Create CVA configuration for trigger styling"]
132
- // CIL[DOC-CONTEXT module="navigation-menu" layer="ui_components" related_files="[]"]
133
- // CIL[DOC-CONTRACT inputs="none" outputs="CVA variant configuration" errors="none" side_effects="defines styling variants"]
134
- // CIL[DOC-MICRO logic_summary="Defines comprehensive styling for navigation menu triggers" notable_decisions="[]"]
135
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
136
- // CIL[DOC-STABILITY stability="stable"]
137
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
138
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
139
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
140
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
118
+ // CIL[DOC-VECTOR type="context" content="purpose='Render a single navigation menu item'; No verified external callers; imports: .framework/src/lib/utils.ts"]
119
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
120
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
121
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
141
122
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
142
123
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
124
+ // CIL[END stable_id="~/.framework/src/components/ui/navigation-menu.tsx:navigationmenuitem:function"]
125
+
126
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/navigation-menu.tsx:navigationmenutriggerstyle:constant" type="constant" identity="navigationmenutriggerstyle" parent="~/.framework/src/components/ui/navigation-menu.tsx:module_header:module_header"]
127
+ // CIL[DOC-MACRO purpose="Provide the shared trigger style variant"]
128
+ // CIL[DOC-RESPONSIBILITY responsibility="Define cva classes for the navigation menu trigger button"]
129
+ // CIL[DOC-CONTEXT module="NavigationMenu" layer="ui" related_files=".framework/src/components/ui/navigation-menu.tsx,.framework/src/lib/utils.ts"]
130
+ // CIL[DOC-CONTRACT inputs="none" outputs="string class variant" errors="none" side_effects="none"]
131
+ // CIL[DOC-MICRO logic_summary="Calls cva with a long tailwind class string for trigger styling" notable_decisions="[]"]
132
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
133
+ // CIL[DOC-STABILITY stability="stable"]
134
+
143
135
  const navigationMenuTriggerStyle = cva(
144
136
  "group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center rounded-lg px-2.5 py-1.5 text-xs/relaxed font-medium transition-all outline-none hover:bg-muted focus:bg-muted focus-visible:ring-2 focus-visible:ring-ring/30 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-popup-open:bg-muted/50 data-popup-open:hover:bg-muted data-open:bg-muted/50 data-open:hover:bg-muted data-open:focus:bg-muted"
145
137
  )
146
- // CIL[END chunk_id="navigation_menu_navigationmenutriggerstyle_1783796064"]
147
- // CIL[BEGIN chunk_id="navigation_menu_navigationmenutrigger_1783796064" type="function" identity="NavigationMenuTrigger" parent="none"]
148
- // CIL[DOC-MACRO purpose="Render navigation menu trigger button"]
149
- // CIL[DOC-RESPONSIBILITY responsibility="Create trigger with chevron icon and animations"]
150
- // CIL[DOC-CONTEXT module="navigation-menu" layer="ui_components" related_files="[]"]
151
- // CIL[DOC-CONTRACT inputs="none" outputs="styled trigger button" errors="none" side_effects="renders DOM element"]
152
- // CIL[DOC-MICRO logic_summary="Creates trigger button with rotating chevron and hover states" notable_decisions="[]"]
153
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
154
- // CIL[DOC-STABILITY stability="stable"]
155
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
156
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
157
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
158
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
138
+ // CIL[DOC-VECTOR type="context" content="purpose='Provide the shared trigger style variant'; No verified external callers; imports: .framework/src/lib/utils.ts"]
139
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
140
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
141
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
159
142
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
160
143
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
144
+ // CIL[END stable_id="~/.framework/src/components/ui/navigation-menu.tsx:navigationmenutriggerstyle:constant"]
145
+
146
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/navigation-menu.tsx:navigationmenutrigger:function" type="function" identity="navigationmenutrigger" parent="~/.framework/src/components/ui/navigation-menu.tsx:module_header:module_header"]
147
+ // CIL[DOC-MACRO purpose="Render a trigger button for a navigation menu item"]
148
+ // CIL[DOC-RESPONSIBILITY responsibility="Combine the trigger style with a chevron icon"]
149
+ // CIL[DOC-CONTEXT module="NavigationMenu" layer="ui" related_files=".framework/src/components/ui/navigation-menu.tsx,.framework/src/lib/utils.ts"]
150
+ // CIL[DOC-CONTRACT inputs="className, children, ...props" outputs="JSX trigger" errors="none" side_effects="none"]
151
+ // CIL[DOC-MICRO logic_summary="Renders Radix Trigger using navigationMenuTriggerStyle and a ChevronDownIcon" notable_decisions="[]"]
152
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
153
+ // CIL[DOC-STABILITY stability="stable"]
154
+
161
155
  function NavigationMenuTrigger({
162
156
  className,
163
157
  children,
@@ -174,21 +168,23 @@ function NavigationMenuTrigger({
174
168
  </NavigationMenuPrimitive.Trigger>
175
169
  )
176
170
  }
177
- // CIL[END chunk_id="navigation_menu_navigationmenutrigger_1783796064"]
178
- // CIL[BEGIN chunk_id="navigation_menu_navigationmenucontent_1783796064" type="function" identity="NavigationMenuContent" parent="none"]
179
- // CIL[DOC-MACRO purpose="Render navigation menu content dropdown"]
180
- // CIL[DOC-RESPONSIBILITY responsibility="Create styled content container with animations"]
181
- // CIL[DOC-CONTEXT module="navigation-menu" layer="ui_components" related_files="[]"]
182
- // CIL[DOC-CONTRACT inputs="none" outputs="styled content container" errors="none" side_effects="renders DOM element"]
183
- // CIL[DOC-MICRO logic_summary="Creates content dropdown with viewport-aware positioning and animations" notable_decisions="[]"]
184
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
185
- // CIL[DOC-STABILITY stability="stable"]
186
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
187
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
188
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
189
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
171
+ // CIL[DOC-VECTOR type="context" content="purpose='Render a trigger button for a navigation menu item'; No verified external callers; imports: .framework/src/lib/utils.ts"]
172
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
173
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
174
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
190
175
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
191
176
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
177
+ // CIL[END stable_id="~/.framework/src/components/ui/navigation-menu.tsx:navigationmenutrigger:function"]
178
+
179
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/navigation-menu.tsx:navigationmenucontent:function" type="function" identity="navigationmenucontent" parent="~/.framework/src/components/ui/navigation-menu.tsx:module_header:module_header"]
180
+ // CIL[DOC-MACRO purpose="Render the dropdown content panel of a navigation menu"]
181
+ // CIL[DOC-RESPONSIBILITY responsibility="Apply motion, position, and viewport-aware popover styles"]
182
+ // CIL[DOC-CONTEXT module="NavigationMenu" layer="ui" related_files=".framework/src/components/ui/navigation-menu.tsx,.framework/src/lib/utils.ts"]
183
+ // CIL[DOC-CONTRACT inputs="className, ...props" outputs="JSX content panel" errors="none" side_effects="none"]
184
+ // CIL[DOC-MICRO logic_summary="Renders Radix Content with complex data-state and viewport conditional classes" notable_decisions="[]"]
185
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
186
+ // CIL[DOC-STABILITY stability="stable"]
187
+
192
188
  function NavigationMenuContent({
193
189
  className,
194
190
  ...props
@@ -204,21 +200,23 @@ function NavigationMenuContent({
204
200
  />
205
201
  )
206
202
  }
207
- // CIL[END chunk_id="navigation_menu_navigationmenucontent_1783796064"]
208
- // CIL[BEGIN chunk_id="navigation_menu_navigationmenuviewport_1783796064" type="function" identity="NavigationMenuViewport" parent="none"]
209
- // CIL[DOC-MACRO purpose="Render navigation menu viewport container"]
210
- // CIL[DOC-RESPONSIBILITY responsibility="Create viewport for dropdown content positioning"]
211
- // CIL[DOC-CONTEXT module="navigation-menu" layer="ui_components" related_files="[]"]
212
- // CIL[DOC-CONTRACT inputs="none" outputs="styled viewport container" errors="none" side_effects="renders DOM element"]
213
- // CIL[DOC-MICRO logic_summary="Creates positioned viewport with zoom animations for content" notable_decisions="[]"]
214
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
215
- // CIL[DOC-STABILITY stability="stable"]
216
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
217
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
218
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
219
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
203
+ // CIL[DOC-VECTOR type="context" content="purpose='Render the dropdown content panel of a navigation menu'; No verified external callers; imports: .framework/src/lib/utils.ts"]
204
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
205
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
206
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
220
207
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
221
208
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
209
+ // CIL[END stable_id="~/.framework/src/components/ui/navigation-menu.tsx:navigationmenucontent:function"]
210
+
211
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/navigation-menu.tsx:navigationmenuviewport:function" type="function" identity="navigationmenuviewport" parent="~/.framework/src/components/ui/navigation-menu.tsx:module_header:module_header"]
212
+ // CIL[DOC-MACRO purpose="Render the viewport that positions menu content"]
213
+ // CIL[DOC-RESPONSIBILITY responsibility="Center and contain the Radix Viewport"]
214
+ // CIL[DOC-CONTEXT module="NavigationMenu" layer="ui" related_files=".framework/src/components/ui/navigation-menu.tsx,.framework/src/lib/utils.ts"]
215
+ // CIL[DOC-CONTRACT inputs="className, ...props" outputs="JSX viewport" errors="none" side_effects="none"]
216
+ // CIL[DOC-MICRO logic_summary="Wraps Radix Viewport in a positioned div to center and size content" notable_decisions="[]"]
217
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
218
+ // CIL[DOC-STABILITY stability="stable"]
219
+
222
220
  function NavigationMenuViewport({
223
221
  className,
224
222
  ...props
@@ -240,21 +238,23 @@ function NavigationMenuViewport({
240
238
  </div>
241
239
  )
242
240
  }
243
- // CIL[END chunk_id="navigation_menu_navigationmenuviewport_1783796064"]
244
- // CIL[BEGIN chunk_id="navigation_menu_navigationmenulink_1783796064" type="function" identity="NavigationMenuLink" parent="none"]
245
- // CIL[DOC-MACRO purpose="Render navigation menu link component"]
246
- // CIL[DOC-RESPONSIBILITY responsibility="Create styled link for navigation menu items"]
247
- // CIL[DOC-CONTEXT module="navigation-menu" layer="ui_components" related_files="[]"]
248
- // CIL[DOC-CONTRACT inputs="none" outputs="styled link element" errors="none" side_effects="renders DOM element"]
249
- // CIL[DOC-MICRO logic_summary="Creates navigation link with hover states and active styling" notable_decisions="[]"]
250
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
251
- // CIL[DOC-STABILITY stability="stable"]
252
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
253
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
254
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
255
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
241
+ // CIL[DOC-VECTOR type="context" content="purpose='Render the viewport that positions menu content'; No verified external callers; imports: .framework/src/lib/utils.ts"]
242
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
243
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
244
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
256
245
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
257
246
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
247
+ // CIL[END stable_id="~/.framework/src/components/ui/navigation-menu.tsx:navigationmenuviewport:function"]
248
+
249
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/navigation-menu.tsx:navigationmenulink:function" type="function" identity="navigationmenulink" parent="~/.framework/src/components/ui/navigation-menu.tsx:module_header:module_header"]
250
+ // CIL[DOC-MACRO purpose="Render a navigation menu link"]
251
+ // CIL[DOC-RESPONSIBILITY responsibility="Provide a styled anchor for menu links"]
252
+ // CIL[DOC-CONTEXT module="NavigationMenu" layer="ui" related_files=".framework/src/components/ui/navigation-menu.tsx,.framework/src/lib/utils.ts"]
253
+ // CIL[DOC-CONTRACT inputs="className, ...props" outputs="JSX link" errors="none" side_effects="none"]
254
+ // CIL[DOC-MICRO logic_summary="Renders Radix Link with muted hover, focus, and active state classes" notable_decisions="[]"]
255
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
256
+ // CIL[DOC-STABILITY stability="stable"]
257
+
258
258
  function NavigationMenuLink({
259
259
  className,
260
260
  ...props
@@ -270,21 +270,23 @@ function NavigationMenuLink({
270
270
  />
271
271
  )
272
272
  }
273
- // CIL[END chunk_id="navigation_menu_navigationmenulink_1783796064"]
274
- // CIL[BEGIN chunk_id="navigation_menu_navigationmenuindicator_1783796064" type="function" identity="NavigationMenuIndicator" parent="none"]
275
- // CIL[DOC-MACRO purpose="Render navigation menu indicator element"]
276
- // CIL[DOC-RESPONSIBILITY responsibility="Create visual indicator for active menu item"]
277
- // CIL[DOC-CONTEXT module="navigation-menu" layer="ui_components" related_files="[]"]
278
- // CIL[DOC-CONTRACT inputs="none" outputs="styled indicator element" errors="none" side_effects="renders DOM element"]
279
- // CIL[DOC-MICRO logic_summary="Creates animated indicator with triangular design for active items" notable_decisions="[]"]
280
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
281
- // CIL[DOC-STABILITY stability="stable"]
282
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
283
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
284
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
285
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
273
+ // CIL[DOC-VECTOR type="context" content="purpose='Render a navigation menu link'; No verified external callers; imports: .framework/src/lib/utils.ts"]
274
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
275
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
276
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
286
277
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
287
278
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
279
+ // CIL[END stable_id="~/.framework/src/components/ui/navigation-menu.tsx:navigationmenulink:function"]
280
+
281
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/navigation-menu.tsx:navigationmenuindicator:function" type="function" identity="navigationmenuindicator" parent="~/.framework/src/components/ui/navigation-menu.tsx:module_header:module_header"]
282
+ // CIL[DOC-MACRO purpose="Render a small triangle indicator under the active menu"]
283
+ // CIL[DOC-RESPONSIBILITY responsibility="Show a pointer indicator aligned with the selected item"]
284
+ // CIL[DOC-CONTEXT module="NavigationMenu" layer="ui" related_files=".framework/src/components/ui/navigation-menu.tsx,.framework/src/lib/utils.ts"]
285
+ // CIL[DOC-CONTRACT inputs="className, ...props" outputs="JSX indicator" errors="none" side_effects="none"]
286
+ // CIL[DOC-MICRO logic_summary="Renders Radix Indicator with a small rotated square and state animations" notable_decisions="[]"]
287
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
288
+ // CIL[DOC-STABILITY stability="stable"]
289
+
288
290
  function NavigationMenuIndicator({
289
291
  className,
290
292
  ...props
@@ -302,21 +304,23 @@ function NavigationMenuIndicator({
302
304
  </NavigationMenuPrimitive.Indicator>
303
305
  )
304
306
  }
305
- // CIL[END chunk_id="navigation_menu_navigationmenuindicator_1783796064"]
306
- // CIL[BEGIN chunk_id="navigation_menu_exports_1783796064" type="exports" identity="exports" parent="none"]
307
- // CIL[DOC-MACRO purpose="Export navigation menu components for public use"]
308
- // CIL[DOC-RESPONSIBILITY responsibility="Export all navigation menu-related components"]
309
- // CIL[DOC-CONTEXT module="navigation-menu" layer="ui_components" related_files="[]"]
310
- // CIL[DOC-CONTRACT inputs="none" outputs="exported components" errors="none" side_effects="module exports"]
311
- // CIL[DOC-MICRO logic_summary="Exports comprehensive navigation menu component system for consumption" notable_decisions="[]"]
312
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
313
- // CIL[DOC-STABILITY stability="stable"]
314
- // CIL[DOC-VECTOR type="context" content="Layer: ui_components. Direct callers: 0. Direct calls: 0. Related files: none."]
315
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
316
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
317
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
307
+ // CIL[DOC-VECTOR type="context" content="purpose='Render a small triangle indicator under the active menu'; No verified external callers; imports: .framework/src/lib/utils.ts"]
308
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
309
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
310
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
318
311
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
319
312
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
313
+ // CIL[END stable_id="~/.framework/src/components/ui/navigation-menu.tsx:navigationmenuindicator:function"]
314
+
315
+ // CIL[BEGIN stable_id="~/.framework/src/components/ui/navigation-menu.tsx:module_exports:module_exports" type="module_exports" identity="module_exports" parent="~/.framework/src/components/ui/navigation-menu.tsx"]
316
+ // CIL[DOC-MACRO purpose="Export all NavigationMenu subcomponents and styles"]
317
+ // CIL[DOC-RESPONSIBILITY responsibility="Expose the public API of the module"]
318
+ // CIL[DOC-CONTEXT module="NavigationMenu" layer="ui" related_files=".framework/src/components/ui/navigation-menu.tsx,.framework/src/lib/utils.ts"]
319
+ // CIL[DOC-CONTRACT inputs="none" outputs="Named exports" errors="none" side_effects="none"]
320
+ // CIL[DOC-MICRO logic_summary="Collects and re-exports all functions and the trigger style" notable_decisions="[]"]
321
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
322
+ // CIL[DOC-STABILITY stability="stable"]
323
+
320
324
  export {
321
325
  NavigationMenu,
322
326
  NavigationMenuList,
@@ -328,4 +332,10 @@ export {
328
332
  NavigationMenuViewport,
329
333
  navigationMenuTriggerStyle,
330
334
  }
331
- // CIL[END chunk_id="navigation_menu_exports_1783796064"]
335
+ // CIL[DOC-VECTOR type="context" content="purpose='Export all NavigationMenu subcomponents and styles'; No verified external callers; imports: .framework/src/lib/utils.ts"]
336
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
337
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
338
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
339
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
340
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
341
+ // CIL[END stable_id="~/.framework/src/components/ui/navigation-menu.tsx:module_exports:module_exports"]