spine-framework 0.3.145 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (451) hide show
  1. package/.env.example +76 -0
  2. package/.framework/.spine-manifest.json +19 -0
  3. package/.framework/cli/commands/agents.ts +61 -33
  4. package/.framework/cli/commands/auth.ts +60 -28
  5. package/.framework/cli/commands/create-app.ts +212 -80
  6. package/.framework/cli/commands/dev.ts +184 -68
  7. package/.framework/cli/commands/doctor.ts +324 -152
  8. package/.framework/cli/commands/generate.ts +119 -68
  9. package/.framework/cli/commands/init.ts +141 -242
  10. package/.framework/cli/commands/install-app.ts +1336 -314
  11. package/.framework/cli/commands/items.ts +31 -29
  12. package/.framework/cli/commands/migrate.ts +299 -156
  13. package/.framework/cli/commands/migrations.ts +62 -30
  14. package/.framework/cli/commands/pipelines.ts +31 -29
  15. package/.framework/cli/commands/status.ts +105 -45
  16. package/.framework/cli/commands/system.ts +47 -42
  17. package/.framework/cli/commands/test.ts +161 -102
  18. package/.framework/cli/commands/upgrade.ts +260 -0
  19. package/.framework/cli/commands/validate-app.ts +517 -161
  20. package/.framework/cli/context.ts +117 -85
  21. package/.framework/cli/env-loader.ts +74 -43
  22. package/.framework/cli/index.ts +70 -46
  23. package/.framework/cli/lib/project-files.ts +404 -0
  24. package/.framework/docs/guides/testing-guide.md +1 -1
  25. package/.framework/docs/runtime-types.md +72 -72
  26. package/.framework/functions/_shared/access.ts +84 -0
  27. package/.framework/functions/_shared/agent-runner.ts +5051 -1026
  28. package/.framework/functions/_shared/app-manifest.ts +214 -94
  29. package/.framework/functions/_shared/ast.ts +214 -0
  30. package/.framework/functions/_shared/audit.ts +91 -55
  31. package/.framework/functions/_shared/cil.ts +368 -127
  32. package/.framework/functions/_shared/db.ts +337 -68
  33. package/.framework/functions/_shared/funnel.ts +228 -0
  34. package/.framework/functions/_shared/geo.ts +105 -0
  35. package/.framework/functions/_shared/hash-api-key.ts +94 -17
  36. package/.framework/functions/_shared/index.ts +22 -224
  37. package/.framework/functions/_shared/kb.ts +832 -58
  38. package/.framework/functions/_shared/llm.ts +118 -18
  39. package/.framework/functions/_shared/logging.ts +317 -19
  40. package/.framework/functions/_shared/middleware.ts +701 -131
  41. package/.framework/functions/_shared/notify.ts +70 -0
  42. package/.framework/functions/_shared/outcomes.ts +34 -19
  43. package/.framework/functions/_shared/permissions.ts +501 -315
  44. package/.framework/functions/_shared/pipeline-runner.ts +704 -155
  45. package/.framework/functions/_shared/principal.ts +436 -263
  46. package/.framework/functions/_shared/rate-limit.ts +233 -0
  47. package/.framework/functions/_shared/resolve-credentials.ts +86 -19
  48. package/.framework/functions/_shared/resolve-ids.ts +203 -139
  49. package/.framework/functions/_shared/retry-deliveries.ts +51 -16
  50. package/.framework/functions/_shared/schema-utils.ts +602 -521
  51. package/.framework/functions/_shared/security.ts +345 -0
  52. package/.framework/functions/_shared/testing.ts +197 -172
  53. package/.framework/functions/_shared/tracing.ts +351 -21
  54. package/.framework/functions/_shared/trigger-engine.ts +425 -136
  55. package/.framework/functions/_shared/webhook-registration.ts +71 -70
  56. package/.framework/functions/_shared/webhook-registry.ts +126 -83
  57. package/.framework/functions/account-nodes.ts +30 -30
  58. package/.framework/functions/adapters/generic-webhook-inbound.ts +49 -16
  59. package/.framework/functions/adapters/generic-webhook-outbound.ts +17 -17
  60. package/.framework/functions/adapters/openai-outbound.ts +15 -16
  61. package/.framework/functions/admin-data.ts +596 -173
  62. package/.framework/functions/admin-funnel.ts +64 -60
  63. package/.framework/functions/admin-install-funnel.ts +84 -66
  64. package/.framework/functions/admin-signals.ts +69 -51
  65. package/.framework/functions/ai-agents.ts +431 -106
  66. package/.framework/functions/ai-interactions.ts +186 -112
  67. package/.framework/functions/api-keys.ts +107 -107
  68. package/.framework/functions/apps.ts +154 -136
  69. package/.framework/functions/auth.ts +83 -65
  70. package/.framework/functions/cil-agent-ingest.ts +189 -232
  71. package/.framework/functions/cil-agent.ts +433 -177
  72. package/.framework/functions/cil-callmap.ts +642 -430
  73. package/.framework/functions/cil-config.ts +139 -135
  74. package/.framework/functions/cil-context.ts +214 -127
  75. package/.framework/functions/cil-doc.ts +587 -458
  76. package/.framework/functions/cil-embeddings.ts +453 -364
  77. package/.framework/functions/cil-graph.ts +427 -142
  78. package/.framework/functions/cil-ingest.ts +1418 -1154
  79. package/.framework/functions/cil-pipeline.ts +276 -21
  80. package/.framework/functions/cil-project.ts +659 -132
  81. package/.framework/functions/cil-validate.ts +198 -164
  82. package/.framework/functions/debug-auth.ts +57 -55
  83. package/.framework/functions/deliveries.ts +80 -21
  84. package/.framework/functions/embeddings.ts +1023 -318
  85. package/.framework/functions/eval-harness.ts +146 -108
  86. package/.framework/functions/integration-outbound.ts +205 -75
  87. package/.framework/functions/integration-routes.ts +128 -23
  88. package/.framework/functions/integrations.ts +125 -100
  89. package/.framework/functions/invites.ts +1095 -460
  90. package/.framework/functions/item-progress.ts +158 -102
  91. package/.framework/functions/kb.ts +34 -10
  92. package/.framework/functions/logs.ts +133 -133
  93. package/.framework/functions/observability.ts +152 -122
  94. package/.framework/functions/pipeline-executions.ts +147 -132
  95. package/.framework/functions/pipelines.ts +134 -119
  96. package/.framework/functions/prompt-configs.ts +96 -80
  97. package/.framework/functions/roles.ts +112 -82
  98. package/.framework/functions/security.ts +450 -0
  99. package/.framework/functions/system-cron.ts +117 -80
  100. package/.framework/functions/system.ts +158 -98
  101. package/.framework/functions/tests.ts +29 -29
  102. package/.framework/functions/timers.ts +94 -95
  103. package/.framework/functions/trigger-scheduler.ts +10 -0
  104. package/.framework/functions/triggers.ts +179 -149
  105. package/.framework/functions/types.ts +137 -125
  106. package/.framework/mcp/index.ts +133 -0
  107. package/.framework/mcp/load-env.ts +60 -0
  108. package/.framework/mcp/shared/app-manifest.ts +275 -0
  109. package/.framework/mcp/shared/db.ts +477 -0
  110. package/.framework/mcp/shared/kb.ts +118 -0
  111. package/.framework/mcp/tools/architect.ts +431 -0
  112. package/.framework/mcp/tools/cil/context.ts +345 -0
  113. package/.framework/mcp/tools/cil/graph.ts +242 -0
  114. package/.framework/mcp/tools/cil/ingest.ts +1217 -0
  115. package/.framework/mcp/tools/cil/pipeline-orchestrator.ts +693 -0
  116. package/.framework/mcp/tools/cil/pipeline.ts +767 -0
  117. package/.framework/mcp/tools/cil/project.ts +791 -0
  118. package/.framework/mcp/tools/cil/retrieval.ts +336 -0
  119. package/.framework/mcp/tools/cil/search-core.ts +454 -0
  120. package/.framework/mcp/tools/cil/search.ts +97 -0
  121. package/.framework/mcp/tools/cil/suggest.ts +186 -0
  122. package/.framework/mcp/tools/cil/validate.ts +1369 -0
  123. package/.framework/mcp/tools/kb/delete.ts +139 -0
  124. package/.framework/mcp/tools/kb/index.ts +52 -0
  125. package/.framework/mcp/tools/kb/ingest.ts +84 -0
  126. package/.framework/mcp/tools/kb/list-types.ts +102 -0
  127. package/.framework/mcp/tools/kb/publish.ts +100 -0
  128. package/.framework/mcp/tools/kb/reindex.ts +86 -0
  129. package/.framework/mcp/tools/kb/revoke.ts +85 -0
  130. package/.framework/mcp/tools/kb/search.ts +101 -0
  131. package/.framework/mcp/tools/kb/upsert.ts +125 -0
  132. package/.framework/mcp/tools/observability.ts +510 -0
  133. package/.framework/migrations/001_core_schema.sql +15 -0
  134. package/.framework/migrations/002_core_rls_and_functions.sql +15 -0
  135. package/.framework/migrations/003_core_system_data.sql +16 -1
  136. package/.framework/migrations/004_core_rpc_and_broker.sql +17 -1
  137. package/.framework/migrations/005_core_observability.sql +17 -1
  138. package/.framework/migrations/006_security_hardening_rls.sql +15 -0
  139. package/.framework/migrations/007_kb_article_list.sql +17 -1
  140. package/.framework/migrations/008_items_target.sql +15 -0
  141. package/.framework/migrations/009_roles_slug_unique.sql +15 -0
  142. package/.framework/migrations/010_auth_user_trigger.sql +15 -0
  143. package/.framework/migrations/011_spine_system_account.sql +16 -0
  144. package/.framework/migrations/012_service_role_grants.sql +16 -0
  145. package/.framework/migrations/013_get_account_apps_role_filter.sql +15 -0
  146. package/.framework/migrations/014_apps_required_roles.sql +16 -0
  147. package/.framework/migrations/015_types_kind_slug_unique.sql +15 -0
  148. package/.framework/migrations/016_cil_types.sql +281 -0
  149. package/.framework/migrations/017_cil_stable_ids.sql +37 -0
  150. package/.framework/migrations/018_runtime_tables.sql +129 -0
  151. package/.framework/migrations/019_agent_prompt_columns.sql +56 -0
  152. package/.framework/migrations/020_schema_reconciliation.sql +67 -0
  153. package/.framework/migrations/021_kb_embedding_lifecycle.sql +31 -0
  154. package/.framework/migrations/032_cil_status_migration.sql +73 -0
  155. package/.framework/migrations/033_cil_versioning.sql +73 -0
  156. package/.framework/migrations/034_match_embeddings_knn.sql +115 -0
  157. package/.framework/migrations/035_rate_limits.sql +55 -0
  158. package/.framework/migrations/036_demo_record_flags.sql +72 -0
  159. package/.framework/migrations/037_kb_types_canonical.sql +244 -0
  160. package/.framework/migrations/038_drop_demo_record_flags.sql +38 -0
  161. package/.framework/migrations/042_registration_hierarchy.sql +309 -0
  162. package/.framework/migrations/043_policy_actor_cleanup.sql +39 -0
  163. package/.framework/migrations/044_match_embeddings_filtered_knn.sql +151 -0
  164. package/.framework/migrations/045_security_critical_rls.sql +139 -0
  165. package/.framework/migrations/046_security_missing_rls.sql +79 -0
  166. package/.framework/migrations/047_people_updated_by.sql +27 -0
  167. package/.framework/migrations/048_watcher_last_seen_at.sql +24 -0
  168. package/.framework/migrations/049_security_blocklist.sql +148 -0
  169. package/.framework/migrations/050_notifications.sql +49 -0
  170. package/.framework/migrations/051_message_agent_fields.sql +74 -0
  171. package/.framework/migrations/052_registration_security.sql +421 -0
  172. package/.framework/migrations/053_builtin_action_seeds.sql +66 -0
  173. package/.framework/migrations/054_kb_ingest_lease.sql +157 -0
  174. package/.framework/migrations/055_type_id_drift_reconciliation.sql +33 -0
  175. package/.framework/migrations/056_slug_column_reconciliation.sql +38 -0
  176. package/.framework/migrations/057_pipelines_slug_identity.sql +14 -0
  177. package/.framework/migrations/058_account_data_field_declarations.sql +53 -0
  178. package/.framework/migrations/059_registration_placement_fixes.sql +269 -0
  179. package/.framework/migrations/060_account_person_record_permissions.sql +38 -0
  180. package/.framework/migrations/061_fk_dedup.sql +32 -0
  181. package/.framework/public/spine-logo.svg +10 -3
  182. package/.framework/scripts/app-install-cli.ts +190 -93
  183. package/.framework/scripts/assemble-frontend.sh +127 -44
  184. package/.framework/scripts/assemble-functions.sh +128 -30
  185. package/.framework/scripts/boundary-check.sh +6 -2
  186. package/.framework/scripts/build-manifest.sh +24 -68
  187. package/.framework/scripts/check-core-integrity.sh +15 -76
  188. package/.framework/scripts/checksum-manifest.mts +343 -0
  189. package/.framework/scripts/cil-migrate-markers.ts +403 -0
  190. package/.framework/scripts/fix-cil-markers.mjs +176 -0
  191. package/.framework/scripts/verify-integrity.sh +21 -57
  192. package/.framework/scripts/verify-manifest.mts +305 -0
  193. package/.framework/seeds/types/funnel_signal_use.json +74 -21
  194. package/.framework/seeds/types/spine_instance.json +73 -21
  195. package/.framework/src/App.tsx +118 -72
  196. package/.framework/src/apps/admin/index.tsx +855 -58
  197. package/.framework/src/components/AppWrapper.tsx +43 -45
  198. package/.framework/src/components/CustomAppLoader.tsx +160 -116
  199. package/.framework/src/components/admin/AdminListPage.tsx +46 -44
  200. package/.framework/src/components/admin/AdminSidebar.tsx +57 -47
  201. package/.framework/src/components/admin/AdminStatsCard.tsx +46 -44
  202. package/.framework/src/components/admin/PageInstructions.tsx +98 -2
  203. package/.framework/src/components/admin/SortableTableHeader.tsx +44 -45
  204. package/.framework/src/components/app-shell/GenericAppShell.tsx +64 -65
  205. package/.framework/src/components/app-shell/GenericDetailPage.tsx +44 -47
  206. package/.framework/src/components/app-shell/GenericListPage.tsx +45 -49
  207. package/.framework/src/components/app-sidebar.tsx +42 -45
  208. package/.framework/src/components/auth/ProtectedRoute.tsx +48 -41
  209. package/.framework/src/components/auth/TurnstileWidget.tsx +27 -0
  210. package/.framework/src/components/kb/KBArticleEditor.tsx +231 -22
  211. package/.framework/src/components/kb/KBArticleList.tsx +251 -10
  212. package/.framework/src/components/layout/AppShell.tsx +51 -45
  213. package/.framework/src/components/layout/Header.tsx +42 -43
  214. package/.framework/src/components/layout/Layout.tsx +46 -46
  215. package/.framework/src/components/layout/Sidebar.tsx +196 -96
  216. package/.framework/src/components/runtime/DataDetailHeader.tsx +55 -30
  217. package/.framework/src/components/runtime/DataDetailPage.tsx +31 -269
  218. package/.framework/src/components/runtime/DataFilters.tsx +49 -74
  219. package/.framework/src/components/runtime/DataHeader.tsx +53 -32
  220. package/.framework/src/components/runtime/DataListPage.tsx +51 -155
  221. package/.framework/src/components/runtime/DataStats.tsx +66 -44
  222. package/.framework/src/components/runtime/DataTable.tsx +49 -149
  223. package/.framework/src/components/runtime/SchemaDetailForm.tsx +45 -75
  224. package/.framework/src/components/runtime/index.ts +119 -16
  225. package/.framework/src/components/search-form.tsx +46 -29
  226. package/.framework/src/components/shared/AgentView.tsx +65 -48
  227. package/.framework/src/components/shared/FieldRenderer.tsx +144 -50
  228. package/.framework/src/components/shared/InviteManager.tsx +207 -97
  229. package/.framework/src/components/shared/MemberList.tsx +97 -0
  230. package/.framework/src/components/shared/SchemaFields.tsx +107 -86
  231. package/.framework/src/components/ui/DataTable.tsx +80 -68
  232. package/.framework/src/components/ui/Form.tsx +157 -146
  233. package/.framework/src/components/ui/ItemCard.tsx +74 -67
  234. package/.framework/src/components/ui/ItemListView.tsx +73 -68
  235. package/.framework/src/components/ui/LoadingSpinner.tsx +43 -48
  236. package/.framework/src/components/ui/Modal.tsx +78 -68
  237. package/.framework/src/components/ui/RichTextEditor.tsx +89 -69
  238. package/.framework/src/components/ui/accordion.tsx +85 -86
  239. package/.framework/src/components/ui/alert-dialog.tsx +197 -184
  240. package/.framework/src/components/ui/alert.tsx +105 -94
  241. package/.framework/src/components/ui/aspect-ratio.tsx +57 -43
  242. package/.framework/src/components/ui/avatar.tsx +122 -107
  243. package/.framework/src/components/ui/badge.tsx +60 -55
  244. package/.framework/src/components/ui/breadcrumb.tsx +127 -128
  245. package/.framework/src/components/ui/button-group.tsx +86 -72
  246. package/.framework/src/components/ui/button.tsx +71 -50
  247. package/.framework/src/components/ui/calendar.tsx +72 -57
  248. package/.framework/src/components/ui/card.tsx +136 -129
  249. package/.framework/src/components/ui/carousel.tsx +226 -107
  250. package/.framework/src/components/ui/chart.tsx +252 -147
  251. package/.framework/src/components/ui/checkbox.tsx +43 -44
  252. package/.framework/src/components/ui/collapsible.tsx +86 -71
  253. package/.framework/src/components/ui/combobox.tsx +282 -249
  254. package/.framework/src/components/ui/command.tsx +158 -146
  255. package/.framework/src/components/ui/context-menu.tsx +239 -240
  256. package/.framework/src/components/ui/dialog.tsx +174 -157
  257. package/.framework/src/components/ui/direction.tsx +72 -56
  258. package/.framework/src/components/ui/drawer.tsx +168 -169
  259. package/.framework/src/components/ui/dropdown-menu.tsx +254 -223
  260. package/.framework/src/components/ui/empty.tsx +131 -120
  261. package/.framework/src/components/ui/field.tsx +205 -173
  262. package/.framework/src/components/ui/hover-card.tsx +71 -72
  263. package/.framework/src/components/ui/input-group.tsx +148 -133
  264. package/.framework/src/components/ui/input-otp.tsx +99 -86
  265. package/.framework/src/components/ui/input.tsx +43 -41
  266. package/.framework/src/components/ui/item.tsx +207 -185
  267. package/.framework/src/components/ui/kbd.tsx +57 -56
  268. package/.framework/src/components/ui/label.tsx +45 -41
  269. package/.framework/src/components/ui/menubar.tsx +268 -236
  270. package/.framework/src/components/ui/native-select.tsx +85 -86
  271. package/.framework/src/components/ui/navigation-menu.tsx +166 -156
  272. package/.framework/src/components/ui/pagination.tsx +131 -141
  273. package/.framework/src/components/ui/popover.tsx +125 -128
  274. package/.framework/src/components/ui/progress.tsx +47 -44
  275. package/.framework/src/components/ui/radio-group.tsx +60 -55
  276. package/.framework/src/components/ui/resizable.tsx +85 -72
  277. package/.framework/src/components/ui/scroll-area.tsx +57 -58
  278. package/.framework/src/components/ui/select.tsx +182 -169
  279. package/.framework/src/components/ui/separator.tsx +42 -43
  280. package/.framework/src/components/ui/sheet.tsx +170 -159
  281. package/.framework/src/components/ui/sidebar.tsx +395 -398
  282. package/.framework/src/components/ui/skeleton.tsx +42 -43
  283. package/.framework/src/components/ui/slider.tsx +61 -44
  284. package/.framework/src/components/ui/sonner.tsx +44 -44
  285. package/.framework/src/components/ui/spinner.tsx +47 -42
  286. package/.framework/src/components/ui/switch.tsx +56 -42
  287. package/.framework/src/components/ui/table-primitives.tsx +272 -132
  288. package/.framework/src/components/ui/table.tsx +140 -142
  289. package/.framework/src/components/ui/tabs.tsx +110 -93
  290. package/.framework/src/components/ui/textarea.tsx +43 -44
  291. package/.framework/src/components/ui/toggle-group.tsx +87 -71
  292. package/.framework/src/components/ui/toggle.tsx +56 -56
  293. package/.framework/src/components/ui/tooltip.tsx +99 -85
  294. package/.framework/src/contexts/AppContext.tsx +166 -114
  295. package/.framework/src/contexts/AuthContext.tsx +232 -137
  296. package/.framework/src/hooks/use-mobile.ts +43 -44
  297. package/.framework/src/hooks/useApi.ts +185 -172
  298. package/.framework/src/hooks/useAppPath.ts +31 -29
  299. package/.framework/src/hooks/useApps.ts +77 -42
  300. package/.framework/src/hooks/useEntityList.ts +66 -29
  301. package/.framework/src/hooks/useEntityRecord.ts +76 -32
  302. package/.framework/src/hooks/useForm.ts +62 -30
  303. package/.framework/src/hooks/useListSchema.ts +60 -43
  304. package/.framework/src/hooks/useSchemaRecord.ts +115 -95
  305. package/.framework/src/lib/api.ts +258 -134
  306. package/.framework/src/lib/registration.ts +181 -0
  307. package/.framework/src/lib/supabase.ts +118 -81
  308. package/.framework/src/lib/utils.ts +266 -266
  309. package/.framework/src/main.tsx +43 -44
  310. package/.framework/src/pages/DashboardPage.tsx +44 -43
  311. package/.framework/src/pages/NoAppPage.tsx +50 -0
  312. package/.framework/src/pages/NotFoundPage.tsx +32 -29
  313. package/.framework/src/pages/SetupPage.tsx +34 -33
  314. package/.framework/src/pages/admin/AIAgentDetailPage.tsx +69 -58
  315. package/.framework/src/pages/admin/AIAgentsPage.tsx +43 -40
  316. package/.framework/src/pages/admin/APIKeyDetailPage.tsx +63 -55
  317. package/.framework/src/pages/admin/APIKeysPage.tsx +44 -42
  318. package/.framework/src/pages/admin/AlertsConfigPage.tsx +117 -94
  319. package/.framework/src/pages/admin/AppDetailPage.tsx +48 -42
  320. package/.framework/src/pages/admin/AppsPage.tsx +45 -42
  321. package/.framework/src/pages/admin/DeliveriesPage.tsx +49 -17
  322. package/.framework/src/pages/admin/DesignedPage.tsx +31 -30
  323. package/.framework/src/pages/admin/EmbeddingDetailPage.tsx +58 -0
  324. package/.framework/src/pages/admin/EmbeddingsPage.tsx +49 -0
  325. package/.framework/src/pages/admin/ExtendedShadcnTestPage.tsx +31 -29
  326. package/.framework/src/pages/admin/IncrementalShadcnTestPage.tsx +46 -29
  327. package/.framework/src/pages/admin/IntegratedDashboard.tsx +32 -29
  328. package/.framework/src/pages/admin/IntegrationDetailPage.tsx +68 -55
  329. package/.framework/src/pages/admin/IntegrationsPage.tsx +45 -42
  330. package/.framework/src/pages/admin/InvitesPage.tsx +60 -44
  331. package/.framework/src/pages/admin/LogsPage.tsx +87 -137
  332. package/.framework/src/pages/admin/MinimalShadcnTestPage.tsx +31 -29
  333. package/.framework/src/pages/admin/ObservabilityDashboard.tsx +150 -89
  334. package/.framework/src/pages/admin/PipelineDetailPage.tsx +77 -104
  335. package/.framework/src/pages/admin/PipelineExecutionsPage.tsx +44 -43
  336. package/.framework/src/pages/admin/PipelinesPage.tsx +59 -145
  337. package/.framework/src/pages/admin/PromptConfigDetailPage.tsx +53 -42
  338. package/.framework/src/pages/admin/PromptConfigsPage.tsx +47 -117
  339. package/.framework/src/pages/admin/ProperlyDesignedPage.tsx +31 -44
  340. package/.framework/src/pages/admin/RoleDetailPage.tsx +49 -92
  341. package/.framework/src/pages/admin/RolesPage.tsx +47 -164
  342. package/.framework/src/pages/admin/SecurityPage.tsx +310 -0
  343. package/.framework/src/pages/admin/SelectTestPage.tsx +30 -32
  344. package/.framework/src/pages/admin/ShadcnTestPage.tsx +37 -44
  345. package/.framework/src/pages/admin/SimpleDashboard.tsx +32 -44
  346. package/.framework/src/pages/admin/TestRunDetailPage.tsx +97 -44
  347. package/.framework/src/pages/admin/TestingDashboard.tsx +126 -71
  348. package/.framework/src/pages/admin/TimerDetailPage.tsx +67 -55
  349. package/.framework/src/pages/admin/TimersPage.tsx +44 -42
  350. package/.framework/src/pages/admin/TriggerDetailPage.tsx +47 -42
  351. package/.framework/src/pages/admin/TriggersPage.tsx +58 -57
  352. package/.framework/src/pages/admin/TypeDetailPage.tsx +91 -55
  353. package/.framework/src/pages/admin/TypesPage.tsx +45 -42
  354. package/.framework/src/pages/admin/cil/CILAgentPage.tsx +258 -128
  355. package/.framework/src/pages/admin/cil/CILChunkDetailPage.tsx +127 -123
  356. package/.framework/src/pages/admin/cil/CILDashboardPage.tsx +308 -235
  357. package/.framework/src/pages/admin/cil/CILFileListPage.tsx +159 -110
  358. package/.framework/src/pages/admin/cil/CILFileSelectPage.tsx +432 -0
  359. package/.framework/src/pages/admin/cil/CILGraphPage.tsx +200 -178
  360. package/.framework/src/pages/admin/cil/CILIngestionPage.tsx +286 -239
  361. package/.framework/src/pages/admin/cil/CILProjectsPage.tsx +211 -90
  362. package/.framework/src/pages/admin/cil/CILSearchPage.tsx +156 -143
  363. package/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx +379 -0
  364. package/.framework/src/pages/admin/cil/CILVersionsPage.tsx +337 -0
  365. package/.framework/src/pages/admin/cil/FlexiblePipelinePage.tsx +219 -214
  366. package/.framework/src/pages/admin/kb/KBAdminPage.tsx +64 -0
  367. package/.framework/src/pages/auth/AuthConfirmPage.tsx +135 -65
  368. package/.framework/src/pages/auth/ForgotPasswordPage.tsx +39 -31
  369. package/.framework/src/pages/auth/LoginPage.tsx +38 -32
  370. package/.framework/src/pages/auth/PendingApprovalPage.tsx +31 -28
  371. package/.framework/src/pages/auth/RegisterPage.tsx +429 -155
  372. package/.framework/src/pages/spine-framework/APIPage.tsx +33 -30
  373. package/.framework/src/pages/spine-framework/CLIPage.tsx +32 -30
  374. package/.framework/src/types/auth.ts +101 -93
  375. package/.framework/src/types/types.ts +283 -262
  376. package/.framework/templates/project.json +87 -0
  377. package/.framework/templates/spine.config.neutral.json +7 -0
  378. package/.framework/tests/api/api-surface.test.ts +381 -0
  379. package/.framework/tests/fixtures/seed.ts +427 -0
  380. package/.framework/tests/fixtures/teardown.ts +228 -0
  381. package/.framework/tests/reporter.ts +351 -0
  382. package/.framework/tests/setup.ts +135 -0
  383. package/.framework/tests/ui/ui-sweep.ts +278 -0
  384. package/.framework/tests/unit/admin-data-logger.test.ts +310 -0
  385. package/.framework/tests/unit/agent-runner.test.ts +2389 -0
  386. package/.framework/tests/unit/ai-interactions.test.ts +81 -0
  387. package/.framework/tests/unit/app-manifest.test.ts +359 -0
  388. package/.framework/tests/unit/assembly-scripts.test.ts +172 -0
  389. package/.framework/tests/unit/cil-determinism.test.ts +85 -0
  390. package/.framework/tests/unit/core-isolation.test.ts +153 -0
  391. package/.framework/tests/unit/funnel-signals.test.ts +135 -0
  392. package/.framework/tests/unit/install-app.test.ts +1759 -0
  393. package/.framework/tests/unit/invites-security.test.ts +572 -0
  394. package/.framework/tests/unit/kb-ingest-lease.test.ts +287 -0
  395. package/.framework/tests/unit/kb-search.test.ts +119 -0
  396. package/.framework/tests/unit/migrate.test.ts +509 -0
  397. package/.framework/tests/unit/notify.test.ts +136 -0
  398. package/.framework/tests/unit/permissions.test.ts +269 -0
  399. package/.framework/tests/unit/pipeline-runner.test.ts +755 -0
  400. package/.framework/tests/unit/principal-cache.test.ts +138 -0
  401. package/.framework/tests/unit/retrieval-golden.test.ts +520 -0
  402. package/.framework/tests/unit/runtime-isolation.test.ts +642 -0
  403. package/.framework/tests/unit/schema-utils.test.ts +225 -0
  404. package/.framework/tests/unit/trigger-engine.test.ts +513 -0
  405. package/.framework/tests/unit/validate-app.test.ts +527 -0
  406. package/README.md +34 -3
  407. package/bin/spine-framework.cjs +1 -0
  408. package/config/tailwind.config.cjs +7 -0
  409. package/config/tsconfig.functions.json +42 -0
  410. package/config/tsconfig.json +37 -9
  411. package/config/vite.config.ts +31 -2
  412. package/netlify.toml +31 -3
  413. package/package.json +46 -29
  414. package/scripts/assemble-frontend.sh +127 -44
  415. package/scripts/assemble-functions.sh +127 -29
  416. package/scripts/boundary-check.sh +6 -2
  417. package/scripts/build-manifest.sh +24 -68
  418. package/scripts/checksum-manifest.mts +345 -0
  419. package/scripts/dev-clean.sh +86 -0
  420. package/scripts/dev-netlify.sh +49 -0
  421. package/scripts/netlify-dev-wrapper.sh +2 -0
  422. package/scripts/verify-install.ts +358 -0
  423. package/scripts/verify-integrity.sh +21 -57
  424. package/scripts/verify-manifest.mts +305 -0
  425. package/templates/project/gitignore +45 -0
  426. package/{config → templates/project}/package-lock.json +22335 -9366
  427. package/vitest.config.ts +46 -0
  428. package/.framework/public/spine.config.json +0 -91
  429. package/config/deno.lock +0 -108
  430. package/config/tsconfig.node.tsbuildinfo +0 -1
  431. package/config/tsconfig.tsbuildinfo +0 -1
  432. package/config/vite.config.d.ts +0 -2
  433. package/custom/.devin/AGENT.md +0 -357
  434. package/custom/.devin/skills/install-app/SKILL.md +0 -39
  435. package/custom/.devin/skills/spine-workbench-discovery/SKILL.md +0 -39
  436. package/custom/.devin/skills/spine-workbench-idea/SKILL.md +0 -36
  437. package/custom/.devin/skills/spine-workbench-implement/SKILL.md +0 -46
  438. package/custom/.devin/skills/spine-workbench-initiative/SKILL.md +0 -28
  439. package/custom/.devin/skills/spine-workbench-plan/SKILL.md +0 -38
  440. package/custom/.devin/workflows/app-install.yaml +0 -83
  441. package/custom/README.md +0 -79
  442. package/docs/README.md +0 -15
  443. package/scripts/app-install-cli.ts +0 -286
  444. package/scripts/check-core-integrity.sh +0 -82
  445. package/scripts/ingest-chunks.cjs +0 -202
  446. package/scripts/kb-chunk-parser.cjs +0 -312
  447. package/scripts/kb-chunk-parser.ts +0 -330
  448. package/scripts/kb-ingest-docs.ts +0 -203
  449. package/scripts/load-test-app-install.ts +0 -484
  450. package/scripts/test-login.js +0 -33
  451. package/spine.config.json +0 -91
@@ -1,18 +1,14 @@
1
- // CIL[BEGIN chunk_id="generate_moduleheader_1784069813" type="module_header" identity="module_header" parent="none"]
2
- // CIL[DOC-MACRO purpose="Module imports for generate CLI commands"]
3
- // CIL[DOC-RESPONSIBILITY responsibility="Provide CLI context, database access, and filesystem utilities"]
4
- // CIL[DOC-CONTEXT module="cli.commands.generate" layer="cli" related_files="[\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/migrations/015_simplify_apps_table.sql\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\".framework/functions/_shared/principal.ts\",\"\\\"]"]
5
- // CIL[DOC-CONTRACT inputs="none" outputs="imports" errors="none" side_effects="none"]
6
- // CIL[DOC-MICRO logic_summary="Imports Commander, CLI context, admin DB, and Node.js filesystem modules" notable_decisions="[]"]
7
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
8
- // CIL[DOC-STABILITY stability="stable"]
9
- // CIL[DOC-AUDIENCE audience="developer"]
10
- // CIL[DOC-VECTOR type="context" content="Layer: cli. Direct callers: 0. Direct calls: 0. Related files: custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/migrations/015_simplify_apps_table.sql, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/src/pages/admin/RolesPage.tsx, .framework/functions/_shared/principal.ts, \."]
11
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
12
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
13
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
14
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
15
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
1
+ // CIL[BEGIN stable_id="~/.framework/cli/commands/generate.ts:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/cli/commands/generate.ts"]
2
+ // CIL[DOC-AUDIENCE audience="internal, cli-users"]
3
+ // CIL[DOC-MACRO purpose="Provide CLI commands for generating database types, handler stubs, and UI page stubs"]
4
+ // CIL[DOC-RESPONSIBILITY responsibility="Import dependencies and expose module-level constants for the generate command"]
5
+ // CIL[DOC-CONTEXT module=".framework/cli/commands/generate" layer="app-specific" related_files=".framework/cli/context.ts,.framework/functions/_shared/index.ts"]
6
+ // CIL[DOC-CONTRACT inputs="none" outputs="module-level imports and constants" errors="none" side_effects="none"]
7
+ // CIL[DOC-MICRO logic_summary="Imports Commander, CLI context helpers, adminDb, fs/path, url utilities and module constants" notable_decisions="ESM-compatible __filename and __dirname constants"]
8
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
9
+ // CIL[DOC-STABILITY stable]
10
+
11
+
16
12
  import type { Command } from 'commander'
17
13
  import { buildCliContext, handleError } from '../context.ts'
18
14
  import { adminDb } from '../../functions/_shared/index.ts'
@@ -20,24 +16,70 @@ import { existsSync, mkdirSync, writeFileSync } from 'fs'
20
16
  import { resolve, dirname } from 'path'
21
17
  import { fileURLToPath } from 'url'
22
18
 
19
+ // CIL[DOC-VECTOR type="context" content="purpose='Provide CLI commands for generating database types, handler stubs, and UI page stubs'; No verified external callers; imports: .framework/cli/context.ts,.framework/functions/_shared/index.ts"]
20
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
21
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
22
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
23
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
24
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
25
+ // CIL[END stable_id="~/.framework/cli/commands/generate.ts:module_header:module_header"]
26
+ // CIL[BEGIN stable_id="~/.framework/cli/commands/generate.ts:__filename:constant" type="constant" identity="__filename" parent="~/.framework/cli/commands/generate.ts"]
27
+ // CIL[DOC-MACRO purpose="Derive the current module's file path for ESM modules"]
28
+ // CIL[DOC-RESPONSIBILITY responsibility="Hold the resolved __filename for path operations"]
29
+ // CIL[DOC-STABILITY stability="internal"]
30
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
31
+ // CIL[DOC-CONTEXT module=".framework/cli/commands/generate" layer="app-specific" related_files=".framework/cli/commands/generate.ts,.framework/cli/context.ts,.framework/functions/_shared/index.ts"]
32
+ // CIL[DOC-CONTRACT inputs="none" outputs="string __filename" errors="none" side_effects="none"]
33
+ // CIL[DOC-MICRO logic_summary="Calls fileURLToPath on import.meta.url" notable_decisions=""]
23
34
  const __filename = fileURLToPath(import.meta.url)
35
+ // CIL[END stable_id="~/.framework/cli/commands/generate.ts:__filename:constant"]
36
+ // CIL[BEGIN stable_id="~/.framework/cli/commands/generate.ts:__dirname:constant" type="constant" identity="__dirname" parent="~/.framework/cli/commands/generate.ts"]
37
+ // CIL[DOC-VECTOR type="context" content="purpose='Derive the current module's file path for ESM modules'; No verified external callers; imports: .framework/cli/context.ts,.framework/functions/_shared/index.ts"]
38
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
39
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
40
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
41
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
42
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
43
+ // CIL[DOC-MACRO purpose="Derive the current module's directory name for relative path resolution"]
44
+ // CIL[DOC-RESPONSIBILITY responsibility="Hold the resolved __dirname for directory operations"]
45
+ // CIL[DOC-CONTEXT module=".framework/cli/commands/generate" layer="app-specific" related_files=".framework/cli/commands/generate.ts,.framework/cli/context.ts,.framework/functions/_shared/index.ts"]
46
+ // CIL[DOC-STABILITY stability="internal"]
47
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
48
+ // CIL[DOC-CONTRACT inputs="none" outputs="string __dirname" errors="none" side_effects="none"]
49
+ // CIL[DOC-MICRO logic_summary="Applies dirname to the resolved __filename" notable_decisions=""]
24
50
  const __dirname = dirname(__filename)
51
+ // CIL[END stable_id="~/.framework/cli/commands/generate.ts:__dirname:constant"]
52
+ // CIL[BEGIN stable_id="~/.framework/cli/commands/generate.ts:PROJECT_ROOT:constant" type="constant" identity="PROJECT_ROOT" parent="~/.framework/cli/commands/generate.ts"]
53
+ // CIL[DOC-VECTOR type="context" content="purpose='Derive the current module's directory name for relative path resolution'; No verified external callers; imports: .framework/cli/context.ts,.framework/functions/_shared/index.ts"]
54
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
55
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
56
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
57
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
58
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
59
+ // CIL[DOC-MACRO purpose="Resolve the absolute project root directory for file operations"]
60
+ // CIL[DOC-RESPONSIBILITY responsibility="Hold the resolved project root path for stub generation"]
61
+ // CIL[DOC-CONTEXT module=".framework/cli/commands/generate" layer="app-specific" related_files=".framework/cli/commands/generate.ts,.framework/cli/context.ts,.framework/functions/_shared/index.ts"]
62
+ // CIL[DOC-CONTRACT inputs="none" outputs="string PROJECT_ROOT" errors="none" side_effects="none"]
63
+ // CIL[DOC-MICRO logic_summary="Resolves __dirname three levels up to reach project root" notable_decisions=""]
64
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
65
+ // CIL[DOC-STABILITY stable]
25
66
  const PROJECT_ROOT = resolve(__dirname, '../../../')
26
- // CIL[END chunk_id="generate_moduleheader_1784069813"]
27
- // CIL[BEGIN chunk_id="generate_generatetype_1784069813" type="function" identity="generateType" parent="none"]
28
- // CIL[DOC-MACRO purpose="Generate type, handler, and UI page stubs"]
29
- // CIL[DOC-RESPONSIBILITY responsibility="Create complete type scaffolding in database and filesystem"]
30
- // CIL[DOC-CONTEXT module="cli.commands.generate" layer="cli" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/src/components/ui/dialog.tsx\",\"\\\"]"]
31
- // CIL[DOC-CONTRACT inputs="none" outputs="database records and files" errors="database errors" side_effects="database writes, file writes"]
32
- // CIL[DOC-MICRO logic_summary="Creates type record, generates handler stub, creates UI page with React component" notable_decisions="[]"]
33
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
34
- // CIL[DOC-STABILITY stability="stable"]
35
- // CIL[DOC-VECTOR type="context" content="Layer: cli. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/RolesPage.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/src/components/ui/dialog.tsx, \."]
36
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
37
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
38
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
67
+ // CIL[DOC-VECTOR type="context" content="purpose='Resolve the absolute project root directory for file operations'; No verified external callers; imports: .framework/cli/context.ts,.framework/functions/_shared/index.ts"]
68
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
69
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
70
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
39
71
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
40
72
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
73
+ // CIL[END stable_id="~/.framework/cli/commands/generate.ts:PROJECT_ROOT:constant"]
74
+
75
+ // CIL[BEGIN stable_id="~/.framework/cli/commands/generate.ts:generateType:function" type="function" identity="generateType" parent="~/.framework/cli/commands/generate.ts"]
76
+ // CIL[DOC-MACRO purpose="Generate a new database type and create handler and UI page stubs"]
77
+ // CIL[DOC-RESPONSIBILITY responsibility="Check for existing type, insert a new record, and write handler and page stub files"]
78
+ // CIL[DOC-CONTEXT module=".framework/cli/commands/generate" layer="app-specific" related_files=".framework/cli/commands/generate.ts,.framework/cli/context.ts,.framework/functions/_shared/index.ts"]
79
+ // CIL[DOC-CONTRACT inputs="ctx: any, slug: string, options: any" outputs="Promise<void>" errors="Error on DB check/insert failure; skip if type exists" side_effects="Writes to the database and filesystem"]
80
+ // CIL[DOC-MICRO logic_summary="Builds name/kind/description, checks for an existing type, inserts the design schema, and writes handler and page files unless present or force=true" notable_decisions="Defaults kind to 'item' and status options to open/in_progress/closed"]
81
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
82
+ // CIL[DOC-STABILITY stable]
41
83
  async function generateType(ctx: any, slug: string, options: any): Promise<void> {
42
84
  const name = options.name || slug.split('-').map(s => s.charAt(0).toUpperCase() + s.slice(1)).join(' ')
43
85
  const kind = options.kind || 'item'
@@ -128,21 +170,22 @@ async function generateType(ctx: any, slug: string, options: any): Promise<void>
128
170
  console.log(` 2. Edit v2-custom/src/pages/${slug}/index.tsx to customize the UI`)
129
171
  console.log(` 3. Run 'spine dev' to see your changes`)
130
172
  }
131
- // CIL[END chunk_id="generate_generatetype_1784069813"]
132
- // CIL[BEGIN chunk_id="generate_generatehandlerstub_1784069813" type="function" identity="generateHandlerStub" parent="none"]
133
- // CIL[DOC-MACRO purpose="Generate TypeScript handler stub code"]
134
- // CIL[DOC-RESPONSIBILITY responsibility="Create API handler template with method routing"]
135
- // CIL[DOC-CONTEXT module="cli.commands.generate" layer="cli" related_files="[\".framework/src/pages/admin/RolesPage.tsx\",\".framework/functions/_shared/schema-utils.ts\",\"\\\"]"]
136
- // CIL[DOC-CONTRACT inputs="none" outputs="handler code string" errors="none" side_effects="none"]
137
- // CIL[DOC-MICRO logic_summary="Returns template code for API handler with GET, POST, PATCH, DELETE methods" notable_decisions="[]"]
138
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
139
- // CIL[DOC-STABILITY stability="stable"]
140
- // CIL[DOC-VECTOR type="context" content="Layer: cli. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/RolesPage.tsx, .framework/functions/_shared/schema-utils.ts, \."]
141
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
142
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
143
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
173
+ // CIL[DOC-VECTOR type="context" content="purpose='Generate a new database type and create handler and UI page stubs'; No verified external callers; imports: .framework/cli/context.ts,.framework/functions/_shared/index.ts"]
174
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
175
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
176
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
144
177
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
145
178
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
179
+ // CIL[END stable_id="~/.framework/cli/commands/generate.ts:generateType:function"]
180
+
181
+ // CIL[BEGIN stable_id="~/.framework/cli/commands/generate.ts:generateHandlerStub:function" type="function" identity="generateHandlerStub" parent="~/.framework/cli/commands/generate.ts"]
182
+ // CIL[DOC-MACRO purpose="Generate a custom API handler stub string for a type"]
183
+ // CIL[DOC-RESPONSIBILITY responsibility="Return a templated handler function using createHandler"]
184
+ // CIL[DOC-CONTEXT module=".framework/cli/commands/generate" layer="app-specific" related_files=".framework/cli/commands/generate.ts,.framework/cli/context.ts,.framework/functions/_shared/index.ts"]
185
+ // CIL[DOC-CONTRACT inputs="slug: string, kind: string, name: string" outputs="string handler code" errors="Error for unsupported HTTP method at runtime" side_effects="none"]
186
+ // CIL[DOC-MICRO logic_summary="Builds a handler template with a switch for GET/POST/PATCH/DELETE methods" notable_decisions="Uses new Date().toISOString() in the generated header comment"]
187
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
188
+ // CIL[DOC-STABILITY experimental]
146
189
  function generateHandlerStub(slug: string, kind: string, name: string): string {
147
190
  return `/**
148
191
  * @module ${slug}
@@ -180,21 +223,22 @@ export const handler = createHandler(async (ctx) => {
180
223
  })
181
224
  `
182
225
  }
183
- // CIL[END chunk_id="generate_generatehandlerstub_1784069813"]
184
- // CIL[BEGIN chunk_id="generate_generatepagestub_1784069813" type="function" identity="generatePageStub" parent="none"]
185
- // CIL[DOC-MACRO purpose="Generate React page stub code"]
186
- // CIL[DOC-RESPONSIBILITY responsibility="Create UI page template with API integration"]
187
- // CIL[DOC-CONTEXT module="cli.commands.generate" layer="cli" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\"\\\"]"]
188
- // CIL[DOC-CONTRACT inputs="none" outputs="page code string" errors="none" side_effects="none"]
189
- // CIL[DOC-MICRO logic_summary="Returns React component template with API hooks and data display" notable_decisions="[]"]
190
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
191
- // CIL[DOC-STABILITY stability="stable"]
192
- // CIL[DOC-VECTOR type="context" content="Layer: cli. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/RolesPage.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/src/pages/admin/IntegrationsPage.tsx, \."]
193
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
194
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
195
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
226
+ // CIL[DOC-VECTOR type="context" content="purpose='Generate a custom API handler stub string for a type'; No verified external callers; imports: .framework/cli/context.ts,.framework/functions/_shared/index.ts"]
227
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
228
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
229
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
196
230
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
197
231
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
232
+ // CIL[END stable_id="~/.framework/cli/commands/generate.ts:generateHandlerStub:function"]
233
+
234
+ // CIL[BEGIN stable_id="~/.framework/cli/commands/generate.ts:generatePageStub:function" type="function" identity="generatePageStub" parent="~/.framework/cli/commands/generate.ts"]
235
+ // CIL[DOC-MACRO purpose="Generate a React page stub string for a type"]
236
+ // CIL[DOC-RESPONSIBILITY responsibility="Return a React component template that fetches and displays record data"]
237
+ // CIL[DOC-CONTEXT module=".framework/cli/commands/generate" layer="app-specific" related_files=".framework/cli/commands/generate.ts,.framework/cli/context.ts,.framework/functions/_shared/index.ts"]
238
+ // CIL[DOC-CONTRACT inputs="slug: string, name: string, kind: string" outputs="string React component code" errors="Error on failed API fetch at runtime" side_effects="none (generated string only)"]
239
+ // CIL[DOC-MICRO logic_summary="Builds a React page template using useParams, useApi, and apiFetch" notable_decisions="Uses new Date().toISOString() in the generated header comment"]
240
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
241
+ // CIL[DOC-STABILITY experimental]
198
242
  function generatePageStub(slug: string, name: string, kind: string): string {
199
243
  return `/**
200
244
  * @page ${slug}/index
@@ -236,21 +280,22 @@ export default function ${name.replace(/\s+/g, '')}Page() {
236
280
  }
237
281
  `
238
282
  }
239
- // CIL[END chunk_id="generate_generatepagestub_1784069813"]
240
- // CIL[BEGIN chunk_id="generate_registergeneratecommands_1784069813" type="function" identity="registerGenerateCommands" parent="none"]
241
- // CIL[DOC-MACRO purpose="Register generate command with CLI program"]
242
- // CIL[DOC-RESPONSIBILITY responsibility="Provide CLI interface for type generation"]
243
- // CIL[DOC-CONTEXT module="cli.commands.generate" layer="cli" 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/functions/_shared/db.ts\"]"]
244
- // CIL[DOC-CONTRACT inputs="none" outputs="CLI command registration" errors="command errors" side_effects="none"]
245
- // CIL[DOC-MICRO logic_summary="Registers generate command with slug argument and various options" notable_decisions="[]"]
246
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
247
- // CIL[DOC-STABILITY stability="stable"]
248
- // CIL[DOC-VECTOR type="context" content="Layer: cli. 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/functions/_shared/db.ts."]
249
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
250
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
251
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
283
+ // CIL[END stable_id="~/.framework/cli/commands/generate.ts:generatePageStub:function"]
284
+
285
+ // CIL[BEGIN stable_id="~/.framework/cli/commands/generate.ts:registerGenerateCommands:function" type="function" identity="registerGenerateCommands" parent="~/.framework/cli/commands/generate.ts"]
286
+ // CIL[DOC-VECTOR type="context" content="purpose='Generate a React page stub string for a type'; No verified external callers; imports: .framework/cli/context.ts,.framework/functions/_shared/index.ts"]
287
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
288
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
289
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
252
290
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
253
291
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
292
+ // CIL[DOC-MACRO purpose="Register the generate CLI command with the Commander program"]
293
+ // CIL[DOC-RESPONSIBILITY responsibility="Wire the generate command, options, and action into the program"]
294
+ // CIL[DOC-CONTEXT module=".framework/cli/commands/generate" layer="app-specific" related_files=".framework/cli/commands/generate.ts,.framework/cli/context.ts,.framework/functions/_shared/index.ts"]
295
+ // CIL[DOC-CONTRACT inputs="program: Command" outputs="void" errors="none (handled by handleError)" side_effects="Adds command and action to the program"]
296
+ // CIL[DOC-MICRO logic_summary="Attaches the 'generate <slug>' command with options and an async action that builds context and calls generateType" notable_decisions="Defaults kind to 'item' and passes parsed options to generateType"]
297
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
298
+ // CIL[DOC-STABILITY stable]
254
299
  export function registerGenerateCommands(program: Command) {
255
300
  program
256
301
  .command('generate <slug>')
@@ -268,4 +313,10 @@ export function registerGenerateCommands(program: Command) {
268
313
  }
269
314
  })
270
315
  }
271
- // CIL[END chunk_id="generate_registergeneratecommands_1784069813"]
316
+ // CIL[DOC-VECTOR type="context" content="purpose='Register the generate CLI command with the Commander program'; No verified external callers; imports: .framework/cli/context.ts,.framework/functions/_shared/index.ts"]
317
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
318
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
319
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
320
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
321
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
322
+ // CIL[END stable_id="~/.framework/cli/commands/generate.ts:registerGenerateCommands:function"]