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,20 +1,15 @@
1
-
2
-
3
- // CIL[BEGIN chunk_id="DataTable_module_header_1783929048" type="module_header" identity="imports_and_types" parent="none"]
4
- // CIL[DOC-MACRO purpose="Import dependencies and define table component types"]
5
- // CIL[DOC-RESPONSIBILITY responsibility="Manage imports, interfaces for data table"]
6
- // CIL[DOC-CONTEXT module="runtime" layer="frontend-component" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/components/ui/dialog.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
7
- // CIL[DOC-CONTRACT inputs="none" outputs="types_and_constants" errors="none" side_effects="none"]
8
- // CIL[DOC-MICRO logic_summary="Imports React, routing, types, UI components for table" notable_decisions="[]"]
9
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
1
+ // CIL[BEGIN stable_id="~/.framework/src/components/runtime/DataTable.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/components/runtime/DataTable.tsx"]
2
+ // CIL[DOC-MACRO purpose="Module imports and entry point for the DataTable runtime component"]
3
+ // CIL[DOC-RESPONSIBILITY responsibility="Imports dependencies and shared UI primitives used by the DataTable."]
4
+ // CIL[DOC-CONTEXT module="components/runtime" layer="component" related_files=".framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/card.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/table.tsx,.framework/src/lib/utils.ts,.framework/src/types/types.ts"]
5
+ // CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
6
+ // CIL[DOC-MICRO logic_summary="Imports React, router, types, utilities, and shared UI components required by the runtime data table." notable_decisions="[]"]
7
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
10
8
  // CIL[DOC-STABILITY stability="stable"]
11
9
  // CIL[DOC-AUDIENCE audience="developer"]
12
- // CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/src/components/ui/dialog.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/IntegrationsPage.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
13
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
14
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
15
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
16
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
17
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
10
+
11
+
12
+
18
13
  import React from 'react'
19
14
  import { useNavigate } from 'react-router-dom'
20
15
  import { EntityColumn } from '../../types/types'
@@ -33,6 +28,23 @@ import { Skeleton } from '../ui/skeleton'
33
28
  import { Badge } from '../ui/badge'
34
29
  import * as Icons from 'lucide-react'
35
30
 
31
+ // CIL[DOC-VECTOR type="context" content="purpose='Module imports and entry point for the DataTable runtime component'; No verified external callers; imports: .framework/src/types/types.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/table.tsx"]
32
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
33
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
34
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
35
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
36
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
37
+ // CIL[END stable_id="~/.framework/src/components/runtime/DataTable.tsx:module_header:module_header"]
38
+
39
+
40
+ // CIL[BEGIN stable_id="~/.framework/src/components/runtime/DataTable.tsx:DataTableProps:interface" type="interface" identity="DataTableProps" parent="~/.framework/src/components/runtime/DataTable.tsx"]
41
+ // CIL[DOC-MACRO purpose="TypeScript props contract for the DataTable component"]
42
+ // CIL[DOC-RESPONSIBILITY responsibility="Defines the expected properties passed to DataTable, including columns, data, sort handlers, and state flags."]
43
+ // CIL[DOC-CONTEXT module="components/runtime" layer="component" related_files=".framework/src/components/runtime/DataTable.tsx,.framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/card.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/table.tsx,.framework/src/lib/utils.ts,.framework/src/types/types.ts"]
44
+ // CIL[DOC-CONTRACT inputs="columns: EntityColumn[], data: any[], loading?: boolean, error?: string|null, onRetry?: () => void, sort, onSort, entity, emptyMessage, emptyIcon" outputs="none (type definition)" errors="none" side_effects="none"]
45
+ // CIL[DOC-MICRO logic_summary="Declares the DataTableProps interface consumed by the DataTable React component." notable_decisions="[]"]
46
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
47
+ // CIL[DOC-STABILITY stability="stable"]
36
48
  interface DataTableProps {
37
49
  columns: EntityColumn[]
38
50
  data: any[]
@@ -45,21 +57,23 @@ interface DataTableProps {
45
57
  emptyMessage: string
46
58
  emptyIcon: string
47
59
  }
48
- // CIL[END chunk_id="DataTable_module_header_1783929048"]
49
- // CIL[BEGIN chunk_id="DataTable_datatable_1783929048" type="function" identity="DataTable" parent="none"]
50
- // CIL[DOC-MACRO purpose="Render main table with sortable headers and clickable rows"]
51
- // CIL[DOC-RESPONSIBILITY responsibility="Display data table with full functionality"]
52
- // CIL[DOC-CONTEXT module="runtime" layer="frontend-component" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/functions/_shared/principal.ts\"]"]
53
- // CIL[DOC-CONTRACT inputs="none" outputs="JSX table component" errors="none" side_effects="none"]
54
- // CIL[DOC-MICRO logic_summary="Render table header with sort icons, data rows with click handlers" notable_decisions="[]"]
55
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
56
- // CIL[DOC-STABILITY stability="stable"]
57
- // CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/RolesPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/components/ui/dialog.tsx, .framework/functions/_shared/principal.ts."]
58
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
59
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
60
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
60
+ // CIL[DOC-VECTOR type="context" content="purpose='TypeScript props contract for the DataTable component'; No verified external callers; imports: .framework/src/types/types.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/table.tsx"]
61
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
62
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
63
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
61
64
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
62
65
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
66
+ // CIL[END stable_id="~/.framework/src/components/runtime/DataTable.tsx:DataTableProps:interface"]
67
+
68
+
69
+ // CIL[BEGIN stable_id="~/.framework/src/components/runtime/DataTable.tsx:DataTable:component" type="component" identity="DataTable" parent="~/.framework/src/components/runtime/DataTable.tsx"]
70
+ // CIL[DOC-MACRO purpose="Renders a sortable, clickable data table for runtime records with loading, error, and empty states"]
71
+ // CIL[DOC-RESPONSIBILITY responsibility="Displays tabular data, handles sorting, row navigation, and loading/error/empty UI states."]
72
+ // CIL[DOC-CONTEXT module="components/runtime" layer="component" related_files=".framework/src/components/runtime/DataTable.tsx,.framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/card.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/table.tsx,.framework/src/lib/utils.ts,.framework/src/types/types.ts"]
73
+ // CIL[DOC-CONTRACT inputs="columns, data, loading, error, onRetry, sort, onSort, entity, emptyMessage, emptyIcon (destructured from DataTableProps)" outputs="JSX rendering of a Card containing a Table or state-specific fallback" errors="Throws no errors; displays an error state when the error prop is provided" side_effects="Calls useNavigate to route to detail views on row click"]
74
+ // CIL[DOC-MICRO logic_summary="Renders skeleton, error, empty, or table views; uses renderCell to format timestamp, badge, and truncated text; handles ascending/descending sort and row navigation." notable_decisions="[]"]
75
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
76
+ // CIL[DOC-STABILITY stability="stable"]
63
77
  export function DataTable({
64
78
  columns,
65
79
  data,
@@ -75,20 +89,6 @@ export function DataTable({
75
89
  const navigate = useNavigate()
76
90
  const EmptyIconComponent = (Icons as Record<string, React.ComponentType<{ className?: string }>>)[emptyIcon] || Icons.Box
77
91
 
78
- // CIL[BEGIN chunk_id="DataTable_handlesort_1783929048" type="function" identity="handleSort" parent="DataTable_datatable_1783929048"]
79
- // CIL[DOC-MACRO purpose="Handle column sorting with toggle direction"]
80
- // CIL[DOC-RESPONSIBILITY responsibility="Handle handleSort"]
81
- // CIL[DOC-CONTEXT module="runtime" layer="frontend-component" related_files="[\".framework/src/pages/admin/RolesPage.tsx\",\".framework/functions/_shared/schema-utils.ts\",\".framework/src/components/ui/dialog.tsx\",\".framework/functions/_shared/principal.ts\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\"\\\"]"]
82
- // CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="calls onSort"]
83
- // CIL[DOC-MICRO logic_summary="Toggle sort direction or set new field with asc default" notable_decisions="[]"]
84
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
85
- // CIL[DOC-STABILITY stability="stable"]
86
- // CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/RolesPage.tsx, .framework/functions/_shared/schema-utils.ts, .framework/src/components/ui/dialog.tsx, .framework/functions/_shared/principal.ts, .framework/src/pages/admin/IntegrationsPage.tsx, \."]
87
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
88
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
89
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
90
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
91
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
92
92
  const handleSort = (key: string) => {
93
93
  if (sort.field === key) {
94
94
  onSort({
@@ -99,22 +99,7 @@ export function DataTable({
99
99
  onSort({ field: key, direction: 'asc' })
100
100
  }
101
101
  }
102
- // CIL[END chunk_id="DataTable_handlesort_1783929048"]
103
102
 
104
- // CIL[BEGIN chunk_id="DataTable_getsorticon_1783929048" type="function" identity="getSortIcon" parent="DataTable_datatable_1783929048"]
105
- // CIL[DOC-MACRO purpose="Return appropriate sort icon for column state"]
106
- // CIL[DOC-RESPONSIBILITY responsibility="Handle getSortIcon"]
107
- // CIL[DOC-CONTEXT module="runtime" layer="frontend-component" related_files="[\".framework/src/pages/admin/RolesPage.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/functions/_shared/principal.ts\",\"\\\"]"]
108
- // CIL[DOC-CONTRACT inputs="none" outputs="JSX icon" errors="none" side_effects="none"]
109
- // CIL[DOC-MICRO logic_summary="Return up/down arrow or neutral based on current sort" notable_decisions="[]"]
110
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
111
- // CIL[DOC-STABILITY stability="stable"]
112
- // CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 2. Direct calls: 0. Related files: .framework/src/pages/admin/RolesPage.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/principal.ts, \."]
113
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 2. Total affected: 2."]
114
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
115
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
116
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
117
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
118
103
  const getSortIcon = (key: string) => {
119
104
  if (sort.field !== key) {
120
105
  return <Icons.ArrowUpDown className="h-4 w-4 text-muted-foreground" />
@@ -123,22 +108,7 @@ export function DataTable({
123
108
  ? <Icons.ArrowUp className="h-4 w-4 text-primary" />
124
109
  : <Icons.ArrowDown className="h-4 w-4 text-primary" />
125
110
  }
126
- // CIL[END chunk_id="DataTable_getsorticon_1783929048"]
127
111
 
128
- // CIL[BEGIN chunk_id="DataTable_rendercell_1783929048" type="function" identity="renderCell" parent="DataTable_datatable_1783929048"]
129
- // CIL[DOC-MACRO purpose="Format and render table cell based on column type"]
130
- // CIL[DOC-RESPONSIBILITY responsibility="Handle renderCell"]
131
- // CIL[DOC-CONTEXT module="renderCell" layer="unknown" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/migrations/025_retype_threads_messages.sql\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/functions/_shared/schema-utils.ts\",\".framework/src/components/ui/dialog.tsx\",\"\\\"]"]
132
- // CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
133
- // CIL[DOC-MICRO logic_summary="Implements renderCell" notable_decisions="[]"]
134
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
135
- // CIL[DOC-STABILITY stability="stable"]
136
- // CIL[DOC-VECTOR type="context" content="Layer: unknown. Direct callers: 2. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/migrations/025_retype_threads_messages.sql, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/functions/_shared/schema-utils.ts, .framework/src/components/ui/dialog.tsx, \."]
137
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 2. Total affected: 2."]
138
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
139
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
140
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
141
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
142
112
  const renderCell = (column: EntityColumn, row: any) => {
143
113
  const value = column.key.includes('.')
144
114
  ? column.key.split('.').reduce((obj, k) => obj?.[k], row)
@@ -163,41 +133,11 @@ export function DataTable({
163
133
 
164
134
  return value?.toString() || '-'
165
135
  }
166
- // CIL[END chunk_id="DataTable_rendercell_1783929048"]
167
136
 
168
- // CIL[BEGIN chunk_id="DataTable_handlerowclick_1783929048" type="function" identity="handleRowClick" parent="DataTable_datatable_1783929048"]
169
- // CIL[DOC-MACRO purpose="Navigate to detail page when row is clicked"]
170
- // CIL[DOC-RESPONSIBILITY responsibility="Handle handleRowClick"]
171
- // CIL[DOC-CONTEXT module="handleRowClick" layer="unknown" related_files="[]"]
172
- // CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
173
- // CIL[DOC-MICRO logic_summary="Implements handleRowClick" notable_decisions="[]"]
174
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
175
- // CIL[DOC-STABILITY stability="stable"]
176
- // CIL[DOC-VECTOR type="context" content="Layer: unknown. Direct callers: 0. Direct calls: 0. Related files: none."]
177
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
178
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
179
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
180
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
181
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
182
137
  const handleRowClick = (row: any) => {
183
138
  navigate(`/spine-framework/admin/runtime/${entity}/${row.id}`)
184
139
  }
185
- // CIL[END chunk_id="DataTable_handlerowclick_1783929048"]
186
140
 
187
- // CIL[BEGIN chunk_id="DataTable_loadingstate_1783929048" type="render_block" identity="loadingState" parent="DataTable_datatable_1783929048"]
188
- // CIL[DOC-MACRO purpose="Render loading skeleton state for table"]
189
- // CIL[DOC-RESPONSIBILITY responsibility="Handle loadingState"]
190
- // CIL[DOC-CONTEXT module="loadingState" layer="unknown" related_files="[]"]
191
- // CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
192
- // CIL[DOC-MICRO logic_summary="Implements loadingState" notable_decisions="[]"]
193
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
194
- // CIL[DOC-STABILITY stability="stable"]
195
- // CIL[DOC-VECTOR type="context" content="Layer: unknown. Direct callers: 0. Direct calls: 0. Related files: none."]
196
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
197
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
198
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
199
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
200
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
201
141
  if (loading) {
202
142
  return (
203
143
  <Card>
@@ -209,22 +149,7 @@ export function DataTable({
209
149
  </Card>
210
150
  )
211
151
  }
212
- // CIL[END chunk_id="DataTable_loadingstate_1783929048"]
213
152
 
214
- // CIL[BEGIN chunk_id="DataTable_errorstate_1783929048" type="render_block" identity="errorState" parent="DataTable_datatable_1783929048"]
215
- // CIL[DOC-MACRO purpose="Render error state with retry option"]
216
- // CIL[DOC-RESPONSIBILITY responsibility="Handle errorState"]
217
- // CIL[DOC-CONTEXT module="runtime" layer="frontend-component" related_files="[]"]
218
- // CIL[DOC-CONTRACT inputs="none" outputs="JSX error display" errors="none" side_effects="calls onRetry"]
219
- // CIL[DOC-MICRO logic_summary="Show error message centered in card with optional retry" notable_decisions="[]"]
220
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
221
- // CIL[DOC-STABILITY stability="stable"]
222
- // CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 0. Direct calls: 0. Related files: none."]
223
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
224
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
225
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
226
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
227
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
228
153
  if (error) {
229
154
  return (
230
155
  <Card>
@@ -239,22 +164,7 @@ export function DataTable({
239
164
  </Card>
240
165
  )
241
166
  }
242
- // CIL[END chunk_id="DataTable_errorstate_1783929048"]
243
167
 
244
- // CIL[BEGIN chunk_id="DataTable_emptystate_1783929048" type="render_block" identity="emptyState" parent="DataTable_datatable_1783929048"]
245
- // CIL[DOC-MACRO purpose="Render empty state with icon and message"]
246
- // CIL[DOC-RESPONSIBILITY responsibility="Handle emptyState"]
247
- // CIL[DOC-CONTEXT module="emptyState" layer="unknown" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\".framework/migrations/025_retype_threads_messages.sql\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"custom/apps/cortex/functions/custom_cil-embeddings.ts\",\"\\\"]"]
248
- // CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
249
- // CIL[DOC-MICRO logic_summary="Implements emptyState" 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: unknown. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/RolesPage.tsx, .framework/migrations/025_retype_threads_messages.sql, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, custom/apps/cortex/functions/custom_cil-embeddings.ts, \."]
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."]
256
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
257
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
258
168
  if (!data || data.length === 0) {
259
169
  return (
260
170
  <Card>
@@ -268,22 +178,7 @@ export function DataTable({
268
178
  </Card>
269
179
  )
270
180
  }
271
- // CIL[END chunk_id="DataTable_emptystate_1783929048"]
272
181
 
273
- // CIL[BEGIN chunk_id="DataTable_maintable_1783929048" type="render_block" identity="mainTable" parent="DataTable_datatable_1783929048"]
274
- // CIL[DOC-MACRO purpose="Render main table with sortable headers and clickable rows"]
275
- // CIL[DOC-RESPONSIBILITY responsibility="Handle mainTable"]
276
- // CIL[DOC-CONTEXT module="mainTable" layer="unknown" related_files="[]"]
277
- // CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
278
- // CIL[DOC-MICRO logic_summary="Implements mainTable" notable_decisions="[]"]
279
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
280
- // CIL[DOC-STABILITY stability="stable"]
281
- // CIL[DOC-VECTOR type="context" content="Layer: unknown. Direct callers: 0. Direct calls: 0. Related files: none."]
282
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
283
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
284
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
285
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
286
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
287
182
  return (
288
183
  <Card>
289
184
  <Table>
@@ -321,6 +216,11 @@ export function DataTable({
321
216
  </Table>
322
217
  </Card>
323
218
  )
324
- // CIL[END chunk_id="DataTable_maintable_1783929048"]
325
219
  }
326
- // CIL[END chunk_id="DataTable_datatable_1783929048"]
220
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders a sortable, clickable data table for runtime records with loading, error, and empty states'; No verified external callers; imports: .framework/src/types/types.ts,.framework/src/lib/utils.ts,.framework/src/components/ui/table.tsx"]
221
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
222
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
223
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
224
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
225
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
226
+ // CIL[END stable_id="~/.framework/src/components/runtime/DataTable.tsx:DataTable:component"]
@@ -1,23 +1,30 @@
1
-
2
-
3
- // CIL[BEGIN chunk_id="SchemaDetailForm_module_header_1783929048" type="module_header" identity="imports_and_types" parent="none"]
4
- // CIL[DOC-MACRO purpose="Import dependencies and define schema form component types"]
5
- // CIL[DOC-RESPONSIBILITY responsibility="Manage imports and interface for schema form"]
6
- // CIL[DOC-CONTEXT module="runtime" layer="frontend-component" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/functions/_shared/schema-utils.ts\",\".framework/src/components/ui/dialog.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\"\\\"]"]
7
- // CIL[DOC-CONTRACT inputs="none" outputs="types" errors="none" side_effects="none"]
8
- // CIL[DOC-MICRO logic_summary="Imports schema types and SchemaFields component" notable_decisions="[]"]
9
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
1
+ // CIL[BEGIN stable_id="~/.framework/src/components/runtime/SchemaDetailForm.tsx:module_header:module_header" type="module_header" identity="module_header" parent="none"]
2
+ // CIL[DOC-MACRO purpose="React component for rendering schema-driven detail forms"]
3
+ // CIL[DOC-RESPONSIBILITY responsibility="Defines module imports for SchemaDetailForm and related types/components"]
4
+ // CIL[DOC-CONTEXT module="runtime" layer="frontend" related_files=".framework/src/components/shared/SchemaFields.tsx,.framework/src/types/types.ts"]
5
+ // CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
6
+ // CIL[DOC-MICRO logic_summary="Imports DesignSchema, detail view types, and the shared SchemaFields component." notable_decisions="[]"]
7
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
10
8
  // CIL[DOC-STABILITY stability="stable"]
11
- // CIL[DOC-AUDIENCE audience="developer"]
12
- // CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/functions/_shared/schema-utils.ts, .framework/src/components/ui/dialog.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/components/ui/table-primitives.tsx, \."]
13
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
14
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
15
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
16
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
17
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
9
+ // CIL[DOC-AUDIENCE audience="internal"]
18
10
  import { DesignSchema, DetailView, DetailViewSection, FieldDefinition } from '../../types/types'
19
11
  import { SchemaFields } from '../shared/SchemaFields'
20
12
 
13
+ // CIL[DOC-VECTOR type="context" content="purpose='React component for rendering schema-driven detail forms'; No verified external callers; imports: .framework/src/types/types.ts,.framework/src/components/shared/SchemaFields.tsx"]
14
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
15
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
16
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
17
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
18
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
19
+ // CIL[END stable_id="~/.framework/src/components/runtime/SchemaDetailForm.tsx:module_header:module_header"]
20
+ // CIL[BEGIN stable_id="~/.framework/src/components/runtime/SchemaDetailForm.tsx:schemadetailformprops:interface" type="interface" identity="schemadetailformprops" parent="~/.framework/src/components/runtime/SchemaDetailForm.tsx:module_header:module_header"]
21
+ // CIL[DOC-MACRO purpose="Props interface for SchemaDetailForm"]
22
+ // CIL[DOC-RESPONSIBILITY responsibility="Declares the input contract for SchemaDetailForm"]
23
+ // CIL[DOC-CONTEXT module="runtime" layer="frontend" related_files=".framework/src/components/runtime/SchemaDetailForm.tsx,.framework/src/components/shared/SchemaFields.tsx,.framework/src/types/types.ts"]
24
+ // CIL[DOC-CONTRACT inputs="none" outputs="SchemaDetailFormProps interface" errors="none" side_effects="none"]
25
+ // CIL[DOC-MICRO logic_summary="Defines props including schema, view, record, editing flags, permissions, form data, and onFieldChange callback." notable_decisions="[]"]
26
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
27
+ // CIL[DOC-STABILITY stability="stable"]
21
28
  interface SchemaDetailFormProps {
22
29
  schema: DesignSchema
23
30
  view: DetailView
@@ -28,21 +35,23 @@ interface SchemaDetailFormProps {
28
35
  formData: Record<string, any>
29
36
  onFieldChange: (key: string, value: any) => void
30
37
  }
31
- // CIL[END chunk_id="SchemaDetailForm_module_header_1783929048"]
32
- // CIL[BEGIN chunk_id="SchemaDetailForm_schemadetailform_1783929048" type="function" identity="SchemaDetailForm" parent="none"]
33
- // CIL[DOC-MACRO purpose="Render all form sections in vertical layout"]
34
- // CIL[DOC-RESPONSIBILITY responsibility="Display complete form with all sections"]
35
- // CIL[DOC-CONTEXT module="runtime" layer="frontend-component" related_files="[\".framework/migrations/015_simplify_apps_table.sql\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/functions/_shared/principal.ts\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\"custom/apps/cortex/functions/custom_cil-embeddings.ts\",\"\\\"]"]
36
- // CIL[DOC-CONTRACT inputs="none" outputs="JSX form sections" errors="none" side_effects="none"]
37
- // CIL[DOC-MICRO logic_summary="Map view sections to renderSection calls in space-y layout" notable_decisions="[]"]
38
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
39
- // CIL[DOC-STABILITY stability="stable"]
40
- // CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 0. Direct calls: 0. Related files: .framework/migrations/015_simplify_apps_table.sql, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/principal.ts, .framework/src/pages/admin/IntegrationsPage.tsx, custom/apps/cortex/functions/custom_cil-embeddings.ts, \."]
41
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
42
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
43
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
38
+ // CIL[DOC-VECTOR type="context" content="purpose='Props interface for SchemaDetailForm'; No verified external callers; imports: .framework/src/types/types.ts,.framework/src/components/shared/SchemaFields.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"]
44
42
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
45
43
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
44
+ // CIL[END stable_id="~/.framework/src/components/runtime/SchemaDetailForm.tsx:schemadetailformprops:interface"]
45
+
46
+
47
+ // CIL[BEGIN stable_id="~/.framework/src/components/runtime/SchemaDetailForm.tsx:schemadetailform:function" type="function" identity="schemadetailform" parent="~/.framework/src/components/runtime/SchemaDetailForm.tsx:module_header:module_header"]
48
+ // CIL[DOC-MACRO purpose="Renders a detail form from a design schema and view"]
49
+ // CIL[DOC-RESPONSIBILITY responsibility="Renders schema-driven detail sections and field controls"]
50
+ // CIL[DOC-CONTEXT module="runtime" layer="frontend" related_files=".framework/src/components/runtime/SchemaDetailForm.tsx,.framework/src/components/shared/SchemaFields.tsx,.framework/src/types/types.ts"]
51
+ // CIL[DOC-CONTRACT inputs="schema, view, record, isEditing, isCreating, permissions, formData, onFieldChange" outputs="JSX.Element" errors="none" side_effects="renders UI"]
52
+ // CIL[DOC-MICRO logic_summary="Maps view sections to FieldDefinition arrays, builds display_type overrides, and delegates rendering to SchemaFields." notable_decisions="[]"]
53
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
54
+ // CIL[DOC-STABILITY stability="stable"]
46
55
  export function SchemaDetailForm({
47
56
  schema,
48
57
  view,
@@ -53,20 +62,6 @@ export function SchemaDetailForm({
53
62
  formData,
54
63
  onFieldChange
55
64
  }: SchemaDetailFormProps) {
56
- // CIL[BEGIN chunk_id="SchemaDetailForm_rendersection_1783929048" type="function" identity="renderSection" parent="SchemaDetailForm_schemadetailform_1783929048"]
57
- // CIL[DOC-MACRO purpose="Render individual form section with fields"]
58
- // CIL[DOC-RESPONSIBILITY responsibility="Handle renderSection"]
59
- // CIL[DOC-CONTEXT module="runtime" layer="frontend-component" related_files="[\".framework/src/components/ui/table-primitives.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/functions/_shared/schema-utils.ts\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"\\\"]"]
60
- // CIL[DOC-CONTRACT inputs="none" outputs="JSX section|null" errors="none" side_effects="none"]
61
- // CIL[DOC-MICRO logic_summary="Map section fields to FieldDefinitions, build display types" notable_decisions="[]"]
62
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
63
- // CIL[DOC-STABILITY stability="stable"]
64
- // CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 2. Direct calls: 0. Related files: .framework/src/components/ui/table-primitives.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/functions/_shared/schema-utils.ts, .framework/src/pages/admin/TypeDetailPage.tsx, \."]
65
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 2. Total affected: 2."]
66
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
67
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
68
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
69
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
70
65
  const renderSection = (section: DetailViewSection, sectionIndex: number) => {
71
66
  const fieldNames = Array.isArray(section.fields) ? section.fields : Object.keys(section.fields || {})
72
67
  const sectionFields = fieldNames.map((fieldName: string) => {
@@ -114,22 +109,7 @@ export function SchemaDetailForm({
114
109
  </div>
115
110
  )
116
111
  }
117
- // CIL[END chunk_id="SchemaDetailForm_rendersection_1783929048"]
118
112
 
119
- // CIL[BEGIN chunk_id="SchemaDetailForm_emptystate_1783929048" type="render_block" identity="emptyState" parent="SchemaDetailForm_schemadetailform_1783929048"]
120
- // CIL[DOC-MACRO purpose="Render empty state when no sections configured"]
121
- // CIL[DOC-RESPONSIBILITY responsibility="Handle emptyState"]
122
- // CIL[DOC-CONTEXT module="runtime" layer="frontend-component" related_files="[\".framework/functions/_shared/principal.ts\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/migrations/015_simplify_apps_table.sql\",\".framework/src/components/ui/table-primitives.tsx\",\"\\\"]"]
123
- // CIL[DOC-CONTRACT inputs="none" outputs="JSX empty state" errors="none" side_effects="none"]
124
- // CIL[DOC-MICRO logic_summary="Show centered message when no fields are configured" 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: frontend-component. Direct callers: 0. Direct calls: 0. Related files: .framework/functions/_shared/principal.ts, custom/apps/portal/pages/ContentPage.tsx, .framework/migrations/015_simplify_apps_table.sql, .framework/src/components/ui/table-primitives.tsx, \."]
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."]
131
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
132
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
133
113
  if (!view.sections || view.sections.length === 0) {
134
114
  return (
135
115
  <div className="bg-white shadow rounded-lg p-6">
@@ -139,27 +119,17 @@ export function SchemaDetailForm({
139
119
  </div>
140
120
  )
141
121
  }
142
- // CIL[END chunk_id="SchemaDetailForm_emptystate_1783929048"]
143
122
 
144
- // CIL[BEGIN chunk_id="SchemaDetailForm_mainrender_1783929048" type="render_block" identity="mainRender" parent="SchemaDetailForm_schemadetailform_1783929048"]
145
- // CIL[DOC-MACRO purpose="Render all form sections in vertical layout"]
146
- // CIL[DOC-RESPONSIBILITY responsibility="Handle mainRender"]
147
- // CIL[DOC-CONTEXT module="runtime" layer="frontend-component" related_files="[\".framework/migrations/015_simplify_apps_table.sql\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/functions/_shared/principal.ts\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\"custom/apps/cortex/functions/custom_cil-embeddings.ts\",\"\\\"]"]
148
- // CIL[DOC-CONTRACT inputs="none" outputs="JSX form sections" errors="none" side_effects="none"]
149
- // CIL[DOC-MICRO logic_summary="Map view sections to renderSection calls in space-y layout" notable_decisions="[]"]
150
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
151
- // CIL[DOC-STABILITY stability="stable"]
152
- // CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 0. Direct calls: 0. Related files: .framework/migrations/015_simplify_apps_table.sql, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/principal.ts, .framework/src/pages/admin/IntegrationsPage.tsx, custom/apps/cortex/functions/custom_cil-embeddings.ts, \."]
153
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
154
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
155
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
156
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
157
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
158
123
  return (
159
124
  <div className="space-y-6">
160
125
  {view.sections.map((section, index) => renderSection(section, index))}
161
126
  </div>
162
127
  )
163
- // CIL[END chunk_id="SchemaDetailForm_mainrender_1783929048"]
164
128
  }
165
- // CIL[END chunk_id="SchemaDetailForm_schemadetailform_1783929048"]
129
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders a detail form from a design schema and view'; No verified external callers; imports: .framework/src/types/types.ts,.framework/src/components/shared/SchemaFields.tsx"]
130
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
131
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
132
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
133
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
134
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
135
+ // CIL[END stable_id="~/.framework/src/components/runtime/SchemaDetailForm.tsx:schemadetailform:function"]