spine-framework 0.3.144 → 0.4.0

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