spine-framework 0.1.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 (385) hide show
  1. package/.framework/README.md +129 -0
  2. package/.framework/cli/bin.cjs +14 -0
  3. package/.framework/cli/commands/agents.ts +153 -0
  4. package/.framework/cli/commands/auth.ts +94 -0
  5. package/.framework/cli/commands/create-app.ts +185 -0
  6. package/.framework/cli/commands/dev.ts +295 -0
  7. package/.framework/cli/commands/doctor.ts +442 -0
  8. package/.framework/cli/commands/generate.ts +332 -0
  9. package/.framework/cli/commands/init.ts +272 -0
  10. package/.framework/cli/commands/install-app.ts +391 -0
  11. package/.framework/cli/commands/items.ts +253 -0
  12. package/.framework/cli/commands/migrations.ts +141 -0
  13. package/.framework/cli/commands/pipelines.ts +166 -0
  14. package/.framework/cli/commands/status.ts +197 -0
  15. package/.framework/cli/commands/system.ts +184 -0
  16. package/.framework/cli/commands/test.ts +227 -0
  17. package/.framework/cli/commands/uninstall-app.ts +166 -0
  18. package/.framework/cli/context.ts +268 -0
  19. package/.framework/cli/env-loader.ts +36 -0
  20. package/.framework/cli/index.ts +106 -0
  21. package/.framework/cli/welcome.cjs +45 -0
  22. package/.framework/docs/API.md +384 -0
  23. package/.framework/docs/STABILITY.md +52 -0
  24. package/.framework/docs/admin-routes.md +76 -0
  25. package/.framework/docs/api-docs-progress.md +38 -0
  26. package/.framework/docs/api-governance.md +146 -0
  27. package/.framework/docs/api-testing-results.md +212 -0
  28. package/.framework/docs/apis/admin-configs.md +567 -0
  29. package/.framework/docs/apis/admin-data.md +272 -0
  30. package/.framework/docs/apis/index.md +231 -0
  31. package/.framework/docs/apis/internal.md +295 -0
  32. package/.framework/docs/apis/runtime.md +537 -0
  33. package/.framework/docs/assembly-launch-guide.md +138 -0
  34. package/.framework/docs/audit-results.md +590 -0
  35. package/.framework/docs/authorization-model.md +170 -0
  36. package/.framework/docs/db-api-inventory.md +95 -0
  37. package/.framework/docs/examples/custom-app/README.md +77 -0
  38. package/.framework/docs/examples/custom-function/README.md +27 -0
  39. package/.framework/docs/examples/custom-function/handler.ts +48 -0
  40. package/.framework/docs/examples/custom-webhook/README.md +68 -0
  41. package/.framework/docs/gap-remediation-backlog.md +103 -0
  42. package/.framework/docs/guides/cli-guide.md +224 -0
  43. package/.framework/docs/guides/getting-started.md +103 -0
  44. package/.framework/docs/guides/import-guide.md +193 -0
  45. package/.framework/docs/guides/testing-guide.md +229 -0
  46. package/.framework/docs/permission-examples.md +326 -0
  47. package/.framework/docs/ui-adoption-verification.md +111 -0
  48. package/.framework/docs/ui-api-coverage.md +84 -0
  49. package/.framework/docs/v2-compatibility-audit.md +228 -0
  50. package/.framework/functions/.gitkeep +1 -0
  51. package/.framework/functions/_shared/agent-runner.ts +1097 -0
  52. package/.framework/functions/_shared/app-manifest.ts +184 -0
  53. package/.framework/functions/_shared/audit.ts +150 -0
  54. package/.framework/functions/_shared/db.ts +174 -0
  55. package/.framework/functions/_shared/index.ts +382 -0
  56. package/.framework/functions/_shared/middleware.ts +490 -0
  57. package/.framework/functions/_shared/permissions.ts +1325 -0
  58. package/.framework/functions/_shared/pipeline-runner.ts +731 -0
  59. package/.framework/functions/_shared/principal.ts +760 -0
  60. package/.framework/functions/_shared/schema-utils.ts +967 -0
  61. package/.framework/functions/_shared/testing.ts +258 -0
  62. package/.framework/functions/_shared/trigger-engine.ts +425 -0
  63. package/.framework/functions/_shared/webhook-registration.ts +168 -0
  64. package/.framework/functions/_shared/webhook-registry.ts +129 -0
  65. package/.framework/functions/account-nodes.ts +111 -0
  66. package/.framework/functions/admin-data.ts +606 -0
  67. package/.framework/functions/ai-agents.ts +323 -0
  68. package/.framework/functions/api-keys.ts +376 -0
  69. package/.framework/functions/apps.ts +483 -0
  70. package/.framework/functions/auth.ts +196 -0
  71. package/.framework/functions/debug-auth.ts +107 -0
  72. package/.framework/functions/embeddings.ts +556 -0
  73. package/.framework/functions/integration-routes.ts +523 -0
  74. package/.framework/functions/integrations.ts +319 -0
  75. package/.framework/functions/item-progress.ts +272 -0
  76. package/.framework/functions/logs.ts +438 -0
  77. package/.framework/functions/observability.ts +275 -0
  78. package/.framework/functions/pipeline-executions.ts +494 -0
  79. package/.framework/functions/pipelines.ts +485 -0
  80. package/.framework/functions/prompt-configs.ts +339 -0
  81. package/.framework/functions/roles.ts +387 -0
  82. package/.framework/functions/system-cron.ts +742 -0
  83. package/.framework/functions/system.ts +323 -0
  84. package/.framework/functions/tests.ts +119 -0
  85. package/.framework/functions/timers.ts +357 -0
  86. package/.framework/functions/triggers.ts +563 -0
  87. package/.framework/functions/types.ts +604 -0
  88. package/.framework/migrations/000_foundation.sql +1256 -0
  89. package/.framework/migrations/001_seed.sql +92 -0
  90. package/.framework/migrations/002_seed_constraints.sql +13 -0
  91. package/.framework/migrations/003_auth_user_trigger.sql +59 -0
  92. package/.framework/src/App.tsx +126 -0
  93. package/.framework/src/apps/admin/index.tsx +173 -0
  94. package/.framework/src/components/AppWrapper.tsx +56 -0
  95. package/.framework/src/components/CustomAppLoader.tsx +116 -0
  96. package/.framework/src/components/admin/AdminListPage.tsx +151 -0
  97. package/.framework/src/components/admin/AdminSidebar.tsx +166 -0
  98. package/.framework/src/components/admin/AdminStatsCard.tsx +62 -0
  99. package/.framework/src/components/admin/SortableTableHeader.tsx +42 -0
  100. package/.framework/src/components/app-shell/GenericAppShell.tsx +181 -0
  101. package/.framework/src/components/app-shell/GenericDetailPage.tsx +200 -0
  102. package/.framework/src/components/app-shell/GenericListPage.tsx +116 -0
  103. package/.framework/src/components/app-sidebar.tsx +228 -0
  104. package/.framework/src/components/auth/ProtectedRoute.tsx +88 -0
  105. package/.framework/src/components/layout/AppShell.tsx +91 -0
  106. package/.framework/src/components/layout/Header.tsx +88 -0
  107. package/.framework/src/components/layout/Layout.tsx +95 -0
  108. package/.framework/src/components/layout/Sidebar.tsx +329 -0
  109. package/.framework/src/components/runtime/DataDetailHeader.tsx +77 -0
  110. package/.framework/src/components/runtime/DataDetailPage.tsx +171 -0
  111. package/.framework/src/components/runtime/DataFilters.tsx +91 -0
  112. package/.framework/src/components/runtime/DataHeader.tsx +68 -0
  113. package/.framework/src/components/runtime/DataListPage.tsx +124 -0
  114. package/.framework/src/components/runtime/DataStats.tsx +70 -0
  115. package/.framework/src/components/runtime/DataTable.tsx +174 -0
  116. package/.framework/src/components/runtime/SchemaDetailForm.tsx +134 -0
  117. package/.framework/src/components/runtime/index.ts +18 -0
  118. package/.framework/src/components/search-form.tsx +29 -0
  119. package/.framework/src/components/shared/AgentView.tsx +213 -0
  120. package/.framework/src/components/shared/FieldRenderer.tsx +478 -0
  121. package/.framework/src/components/shared/SchemaFields.tsx +226 -0
  122. package/.framework/src/components/ui/DataTable.tsx +343 -0
  123. package/.framework/src/components/ui/Form.tsx +281 -0
  124. package/.framework/src/components/ui/ItemCard.tsx +296 -0
  125. package/.framework/src/components/ui/ItemListView.tsx +308 -0
  126. package/.framework/src/components/ui/LoadingSpinner.tsx +52 -0
  127. package/.framework/src/components/ui/Modal.tsx +61 -0
  128. package/.framework/src/components/ui/RichTextEditor.tsx +210 -0
  129. package/.framework/src/components/ui/accordion.tsx +82 -0
  130. package/.framework/src/components/ui/alert-dialog.tsx +197 -0
  131. package/.framework/src/components/ui/alert.tsx +76 -0
  132. package/.framework/src/components/ui/aspect-ratio.tsx +11 -0
  133. package/.framework/src/components/ui/avatar.tsx +110 -0
  134. package/.framework/src/components/ui/badge.tsx +49 -0
  135. package/.framework/src/components/ui/breadcrumb.tsx +122 -0
  136. package/.framework/src/components/ui/button-group.tsx +83 -0
  137. package/.framework/src/components/ui/button.tsx +65 -0
  138. package/.framework/src/components/ui/calendar.tsx +222 -0
  139. package/.framework/src/components/ui/card.tsx +100 -0
  140. package/.framework/src/components/ui/carousel.tsx +240 -0
  141. package/.framework/src/components/ui/chart.tsx +373 -0
  142. package/.framework/src/components/ui/checkbox.tsx +31 -0
  143. package/.framework/src/components/ui/collapsible.tsx +33 -0
  144. package/.framework/src/components/ui/combobox.tsx +299 -0
  145. package/.framework/src/components/ui/command.tsx +193 -0
  146. package/.framework/src/components/ui/context-menu.tsx +261 -0
  147. package/.framework/src/components/ui/dialog.tsx +165 -0
  148. package/.framework/src/components/ui/direction.tsx +22 -0
  149. package/.framework/src/components/ui/drawer.tsx +132 -0
  150. package/.framework/src/components/ui/dropdown-menu.tsx +269 -0
  151. package/.framework/src/components/ui/empty.tsx +104 -0
  152. package/.framework/src/components/ui/field.tsx +238 -0
  153. package/.framework/src/components/ui/hover-card.tsx +42 -0
  154. package/.framework/src/components/ui/input-group.tsx +153 -0
  155. package/.framework/src/components/ui/input-otp.tsx +87 -0
  156. package/.framework/src/components/ui/input.tsx +19 -0
  157. package/.framework/src/components/ui/item.tsx +196 -0
  158. package/.framework/src/components/ui/kbd.tsx +26 -0
  159. package/.framework/src/components/ui/label.tsx +22 -0
  160. package/.framework/src/components/ui/menubar.tsx +277 -0
  161. package/.framework/src/components/ui/native-select.tsx +61 -0
  162. package/.framework/src/components/ui/navigation-menu.tsx +164 -0
  163. package/.framework/src/components/ui/pagination.tsx +129 -0
  164. package/.framework/src/components/ui/popover.tsx +87 -0
  165. package/.framework/src/components/ui/progress.tsx +31 -0
  166. package/.framework/src/components/ui/radio-group.tsx +42 -0
  167. package/.framework/src/components/ui/resizable.tsx +50 -0
  168. package/.framework/src/components/ui/scroll-area.tsx +53 -0
  169. package/.framework/src/components/ui/select.tsx +195 -0
  170. package/.framework/src/components/ui/separator.tsx +26 -0
  171. package/.framework/src/components/ui/sheet.tsx +145 -0
  172. package/.framework/src/components/ui/sidebar.tsx +706 -0
  173. package/.framework/src/components/ui/skeleton.tsx +13 -0
  174. package/.framework/src/components/ui/slider.tsx +59 -0
  175. package/.framework/src/components/ui/sonner.tsx +47 -0
  176. package/.framework/src/components/ui/spinner.tsx +10 -0
  177. package/.framework/src/components/ui/switch.tsx +33 -0
  178. package/.framework/src/components/ui/table-primitives.tsx +141 -0
  179. package/.framework/src/components/ui/table.tsx +114 -0
  180. package/.framework/src/components/ui/tabs.tsx +90 -0
  181. package/.framework/src/components/ui/textarea.tsx +18 -0
  182. package/.framework/src/components/ui/toggle-group.tsx +89 -0
  183. package/.framework/src/components/ui/toggle.tsx +45 -0
  184. package/.framework/src/components/ui/tooltip.tsx +57 -0
  185. package/.framework/src/contexts/AppContext.tsx +133 -0
  186. package/.framework/src/contexts/AuthContext.tsx +371 -0
  187. package/.framework/src/hooks/use-mobile.ts +19 -0
  188. package/.framework/src/hooks/useApi.ts +526 -0
  189. package/.framework/src/hooks/useApps.ts +114 -0
  190. package/.framework/src/hooks/useEntityList.ts +190 -0
  191. package/.framework/src/hooks/useEntityRecord.ts +308 -0
  192. package/.framework/src/hooks/useForm.ts +307 -0
  193. package/.framework/src/hooks/useListSchema.ts +264 -0
  194. package/.framework/src/hooks/useSchemaRecord.ts +223 -0
  195. package/.framework/src/index.css +128 -0
  196. package/.framework/src/lib/api.ts +156 -0
  197. package/.framework/src/lib/supabase.ts +94 -0
  198. package/.framework/src/lib/utils.ts +317 -0
  199. package/.framework/src/main.tsx +27 -0
  200. package/.framework/src/pages/DashboardPage.tsx +181 -0
  201. package/.framework/src/pages/NotFoundPage.tsx +39 -0
  202. package/.framework/src/pages/admin/AIAgentDetailPage.tsx +161 -0
  203. package/.framework/src/pages/admin/AIAgentsPage.tsx +318 -0
  204. package/.framework/src/pages/admin/APIKeyDetailPage.tsx +199 -0
  205. package/.framework/src/pages/admin/APIKeysPage.tsx +303 -0
  206. package/.framework/src/pages/admin/AlertsConfigPage.tsx +523 -0
  207. package/.framework/src/pages/admin/AppDetailPage.tsx +493 -0
  208. package/.framework/src/pages/admin/AppsPage.tsx +355 -0
  209. package/.framework/src/pages/admin/DesignedPage.tsx +491 -0
  210. package/.framework/src/pages/admin/EmbeddingDetailPage.tsx +534 -0
  211. package/.framework/src/pages/admin/EmbeddingsPage.tsx +424 -0
  212. package/.framework/src/pages/admin/ExtendedShadcnTestPage.tsx +176 -0
  213. package/.framework/src/pages/admin/IncrementalShadcnTestPage.tsx +109 -0
  214. package/.framework/src/pages/admin/IntegratedDashboard.tsx +402 -0
  215. package/.framework/src/pages/admin/IntegrationDetailPage.tsx +187 -0
  216. package/.framework/src/pages/admin/IntegrationsPage.tsx +301 -0
  217. package/.framework/src/pages/admin/LogsPage.tsx +283 -0
  218. package/.framework/src/pages/admin/MinimalShadcnTestPage.tsx +85 -0
  219. package/.framework/src/pages/admin/ObservabilityDashboard.tsx +470 -0
  220. package/.framework/src/pages/admin/PipelineDetailPage.tsx +183 -0
  221. package/.framework/src/pages/admin/PipelineExecutionsPage.tsx +279 -0
  222. package/.framework/src/pages/admin/PipelinesPage.tsx +390 -0
  223. package/.framework/src/pages/admin/PromptConfigDetailPage.tsx +299 -0
  224. package/.framework/src/pages/admin/PromptConfigsPage.tsx +292 -0
  225. package/.framework/src/pages/admin/ProperlyDesignedPage.tsx +434 -0
  226. package/.framework/src/pages/admin/RoleDetailPage.tsx +273 -0
  227. package/.framework/src/pages/admin/RolesPage.tsx +292 -0
  228. package/.framework/src/pages/admin/SelectTestPage.tsx +61 -0
  229. package/.framework/src/pages/admin/ShadcnTestPage.tsx +588 -0
  230. package/.framework/src/pages/admin/SimpleDashboard.tsx +387 -0
  231. package/.framework/src/pages/admin/TestRunDetailPage.tsx +172 -0
  232. package/.framework/src/pages/admin/TestingDashboard.tsx +257 -0
  233. package/.framework/src/pages/admin/TimerDetailPage.tsx +151 -0
  234. package/.framework/src/pages/admin/TimersPage.tsx +376 -0
  235. package/.framework/src/pages/admin/TriggerDetailPage.tsx +149 -0
  236. package/.framework/src/pages/admin/TriggersPage.tsx +381 -0
  237. package/.framework/src/pages/admin/TypeDetailPage.tsx +694 -0
  238. package/.framework/src/pages/admin/TypesPage.tsx +295 -0
  239. package/.framework/src/pages/auth/LoginPage.tsx +188 -0
  240. package/.framework/src/pages/auth/RegisterPage.tsx +163 -0
  241. package/.framework/src/pages/spine-framework/APIPage.tsx +17 -0
  242. package/.framework/src/pages/spine-framework/CLIPage.tsx +25 -0
  243. package/.framework/src/types/auth.ts +125 -0
  244. package/.framework/src/types/types.ts +407 -0
  245. package/STRUCTURE.md +150 -0
  246. package/config/components.json +25 -0
  247. package/config/deno.lock +108 -0
  248. package/config/package-lock.json +17183 -0
  249. package/config/postcss.config.cjs +10 -0
  250. package/config/tailwind.config.cjs +78 -0
  251. package/config/tsconfig.build.json +32 -0
  252. package/config/tsconfig.cli.json +18 -0
  253. package/config/tsconfig.json +41 -0
  254. package/config/tsconfig.node.json +17 -0
  255. package/config/tsconfig.node.tsbuildinfo +1 -0
  256. package/config/tsconfig.tsbuildinfo +1 -0
  257. package/config/typedoc.json +16 -0
  258. package/config/vite.config.d.ts +2 -0
  259. package/config/vite.config.ts +72 -0
  260. package/dist/cli/commands/agents.d.ts +39 -0
  261. package/dist/cli/commands/agents.d.ts.map +1 -0
  262. package/dist/cli/commands/auth.d.ts +36 -0
  263. package/dist/cli/commands/auth.d.ts.map +1 -0
  264. package/dist/cli/commands/create-app.d.ts +23 -0
  265. package/dist/cli/commands/create-app.d.ts.map +1 -0
  266. package/dist/cli/commands/dev.d.ts +39 -0
  267. package/dist/cli/commands/dev.d.ts.map +1 -0
  268. package/dist/cli/commands/doctor.d.ts +42 -0
  269. package/dist/cli/commands/doctor.d.ts.map +1 -0
  270. package/dist/cli/commands/generate.d.ts +36 -0
  271. package/dist/cli/commands/generate.d.ts.map +1 -0
  272. package/dist/cli/commands/init.d.ts +30 -0
  273. package/dist/cli/commands/init.d.ts.map +1 -0
  274. package/dist/cli/commands/install-app.d.ts +30 -0
  275. package/dist/cli/commands/install-app.d.ts.map +1 -0
  276. package/dist/cli/commands/items.d.ts +45 -0
  277. package/dist/cli/commands/items.d.ts.map +1 -0
  278. package/dist/cli/commands/migrations.d.ts +41 -0
  279. package/dist/cli/commands/migrations.d.ts.map +1 -0
  280. package/dist/cli/commands/pipelines.d.ts +40 -0
  281. package/dist/cli/commands/pipelines.d.ts.map +1 -0
  282. package/dist/cli/commands/status.d.ts +23 -0
  283. package/dist/cli/commands/status.d.ts.map +1 -0
  284. package/dist/cli/commands/system.d.ts +29 -0
  285. package/dist/cli/commands/system.d.ts.map +1 -0
  286. package/dist/cli/commands/test.d.ts +46 -0
  287. package/dist/cli/commands/test.d.ts.map +1 -0
  288. package/dist/cli/commands/uninstall-app.d.ts +23 -0
  289. package/dist/cli/commands/uninstall-app.d.ts.map +1 -0
  290. package/dist/cli/context.d.ts +88 -0
  291. package/dist/cli/context.d.ts.map +1 -0
  292. package/dist/cli/env-loader.d.ts +14 -0
  293. package/dist/cli/env-loader.d.ts.map +1 -0
  294. package/dist/cli/index.d.ts +41 -0
  295. package/dist/cli/index.d.ts.map +1 -0
  296. package/dist/functions/_shared/agent-runner.d.ts +156 -0
  297. package/dist/functions/_shared/agent-runner.d.ts.map +1 -0
  298. package/dist/functions/_shared/app-manifest.d.ts +68 -0
  299. package/dist/functions/_shared/app-manifest.d.ts.map +1 -0
  300. package/dist/functions/_shared/audit.d.ts +91 -0
  301. package/dist/functions/_shared/audit.d.ts.map +1 -0
  302. package/dist/functions/_shared/db.d.ts +125 -0
  303. package/dist/functions/_shared/db.d.ts.map +1 -0
  304. package/dist/functions/_shared/index.d.ts +298 -0
  305. package/dist/functions/_shared/index.d.ts.map +1 -0
  306. package/dist/functions/_shared/middleware.d.ts +315 -0
  307. package/dist/functions/_shared/middleware.d.ts.map +1 -0
  308. package/dist/functions/_shared/permissions.d.ts +626 -0
  309. package/dist/functions/_shared/permissions.d.ts.map +1 -0
  310. package/dist/functions/_shared/pipeline-runner.d.ts +124 -0
  311. package/dist/functions/_shared/pipeline-runner.d.ts.map +1 -0
  312. package/dist/functions/_shared/principal.d.ts +284 -0
  313. package/dist/functions/_shared/principal.d.ts.map +1 -0
  314. package/dist/functions/_shared/schema-utils.d.ts +181 -0
  315. package/dist/functions/_shared/schema-utils.d.ts.map +1 -0
  316. package/dist/functions/_shared/testing.d.ts +172 -0
  317. package/dist/functions/_shared/testing.d.ts.map +1 -0
  318. package/dist/functions/_shared/trigger-engine.d.ts +140 -0
  319. package/dist/functions/_shared/trigger-engine.d.ts.map +1 -0
  320. package/dist/functions/_shared/webhook-registration.d.ts +81 -0
  321. package/dist/functions/_shared/webhook-registration.d.ts.map +1 -0
  322. package/dist/functions/_shared/webhook-registry.d.ts +57 -0
  323. package/dist/functions/_shared/webhook-registry.d.ts.map +1 -0
  324. package/dist/functions/account-nodes.d.ts +48 -0
  325. package/dist/functions/account-nodes.d.ts.map +1 -0
  326. package/dist/functions/admin-data.d.ts +178 -0
  327. package/dist/functions/admin-data.d.ts.map +1 -0
  328. package/dist/functions/ai-agents.d.ts +125 -0
  329. package/dist/functions/ai-agents.d.ts.map +1 -0
  330. package/dist/functions/api-keys.d.ts +140 -0
  331. package/dist/functions/api-keys.d.ts.map +1 -0
  332. package/dist/functions/apps.d.ts +163 -0
  333. package/dist/functions/apps.d.ts.map +1 -0
  334. package/dist/functions/auth.d.ts +74 -0
  335. package/dist/functions/auth.d.ts.map +1 -0
  336. package/dist/functions/debug-auth.d.ts +33 -0
  337. package/dist/functions/debug-auth.d.ts.map +1 -0
  338. package/dist/functions/embeddings.d.ts +205 -0
  339. package/dist/functions/embeddings.d.ts.map +1 -0
  340. package/dist/functions/integration-routes.d.ts +45 -0
  341. package/dist/functions/integration-routes.d.ts.map +1 -0
  342. package/dist/functions/integrations.d.ts +124 -0
  343. package/dist/functions/integrations.d.ts.map +1 -0
  344. package/dist/functions/item-progress.d.ts +41 -0
  345. package/dist/functions/item-progress.d.ts.map +1 -0
  346. package/dist/functions/logs.d.ts +162 -0
  347. package/dist/functions/logs.d.ts.map +1 -0
  348. package/dist/functions/observability.d.ts +123 -0
  349. package/dist/functions/observability.d.ts.map +1 -0
  350. package/dist/functions/pipeline-executions.d.ts +190 -0
  351. package/dist/functions/pipeline-executions.d.ts.map +1 -0
  352. package/dist/functions/pipelines.d.ts +171 -0
  353. package/dist/functions/pipelines.d.ts.map +1 -0
  354. package/dist/functions/prompt-configs.d.ts +125 -0
  355. package/dist/functions/prompt-configs.d.ts.map +1 -0
  356. package/dist/functions/roles.d.ts +118 -0
  357. package/dist/functions/roles.d.ts.map +1 -0
  358. package/dist/functions/system-cron.d.ts +65 -0
  359. package/dist/functions/system-cron.d.ts.map +1 -0
  360. package/dist/functions/system.d.ts +29 -0
  361. package/dist/functions/system.d.ts.map +1 -0
  362. package/dist/functions/tests.d.ts +28 -0
  363. package/dist/functions/tests.d.ts.map +1 -0
  364. package/dist/functions/timers.d.ts +139 -0
  365. package/dist/functions/timers.d.ts.map +1 -0
  366. package/dist/functions/triggers.d.ts +203 -0
  367. package/dist/functions/triggers.d.ts.map +1 -0
  368. package/dist/functions/types.d.ts +151 -0
  369. package/dist/functions/types.d.ts.map +1 -0
  370. package/dist/src/types/types.d.ts +364 -0
  371. package/dist/src/types/types.d.ts.map +1 -0
  372. package/package.json +192 -0
  373. package/scripts/app-install-cli.ts +286 -0
  374. package/scripts/assemble-frontend.sh +79 -0
  375. package/scripts/assemble-functions.sh +62 -0
  376. package/scripts/assemble.sh +35 -0
  377. package/scripts/boundary-check.sh +106 -0
  378. package/scripts/build-manifest.sh +80 -0
  379. package/scripts/check-core-integrity.sh +82 -0
  380. package/scripts/ingest-chunks.cjs +202 -0
  381. package/scripts/kb-chunk-parser.cjs +312 -0
  382. package/scripts/kb-chunk-parser.ts +330 -0
  383. package/scripts/load-test-app-install.ts +484 -0
  384. package/scripts/netlify-dev-wrapper.sh +22 -0
  385. package/scripts/verify-integrity.sh +69 -0
@@ -0,0 +1,42 @@
1
+ /**
2
+ * @module cli/commands/doctor
3
+ * @audience installer
4
+ * @layer cli
5
+ * @stability stable
6
+ *
7
+ * `spine doctor` command — comprehensive system validation for agentic IDE setup.
8
+ * Checks environment, database, migrations, integrity, and custom code.
9
+ *
10
+ * **Commands:**
11
+ * | Subcommand | Description |
12
+ * |-------------------|-------------------------------------------------------|
13
+ * | `doctor` | Run all checks and report status |
14
+ * | `doctor --json` | Output structured JSON for agent consumption |
15
+ * | `doctor --fix` | Attempt automatic remediation where possible |
16
+ *
17
+ * **Checks performed:**
18
+ * 1. Environment variables (SUPABASE_URL, SERVICE_ROLE_KEY)
19
+ * 2. Database connectivity and latency
20
+ * 3. Migration status (local vs applied)
21
+ * 4. Core integrity (manifest hash verification)
22
+ * 5. Custom code TypeScript compilation
23
+ * 6. Test suite status (last run results)
24
+ *
25
+ * **Exit codes:**
26
+ * - 0: All checks passed (healthy)
27
+ * - 1: One or more checks failed
28
+ * - 2: Check passed but warnings present (degraded)
29
+ *
30
+ * **Usage:**
31
+ * ```bash
32
+ * spine doctor
33
+ * spine doctor --json
34
+ * spine doctor --fix
35
+ * ```
36
+ *
37
+ * @seeAlso cli/context.ts (buildCliContext)
38
+ * @seeAlso functions/system.ts (health endpoint)
39
+ */
40
+ import type { Command } from 'commander';
41
+ export declare function registerDoctorCommands(program: Command): void;
42
+ //# sourceMappingURL=doctor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../.framework/cli/commands/doctor.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA0QxC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,QAsItD"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @module cli/commands/generate
3
+ * @audience installer
4
+ * @layer cli
5
+ * @stability stable
6
+ *
7
+ * `spine generate` command — code scaffolding for extending Spine safely.
8
+ * Generates type definitions, handlers, and UI pages in v2-custom/ only.
9
+ *
10
+ * **Commands:**
11
+ * | Subcommand | Description |
12
+ * |-------------------------|-------------------------------------------------------|
13
+ * | `generate type <slug>` | Create new type with handler and UI stubs |
14
+ * | `generate function <name>` | Create new Netlify function stub |
15
+ *
16
+ * **What gets generated for `type`:**
17
+ * 1. Type record in database (item type by default)
18
+ * 2. Handler stub: `v2-custom/functions/{slug}.ts`
19
+ * 3. UI page stub: `v2-custom/src/pages/{slug}/index.tsx`
20
+ *
21
+ * **What gets generated for `function`:**
22
+ * 1. Netlify function stub: `v2-custom/functions/{name}.ts`
23
+ * 2. Basic handler structure with middleware imports
24
+ *
25
+ * **Usage:**
26
+ * ```bash
27
+ * spine generate type ticket-v2
28
+ * spine generate function webhook-handler
29
+ * ```
30
+ *
31
+ * @seeAlso functions/types.ts (type CRUD API)
32
+ * @seeAlso functions/_shared/middleware.ts (handler structure)
33
+ */
34
+ import type { Command } from 'commander';
35
+ export declare function registerGenerateCommands(program: Command): void;
36
+ //# sourceMappingURL=generate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../.framework/cli/commands/generate.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAuQxC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,QAiCxD"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @module cli/commands/init
3
+ * @audience installer
4
+ * @layer cli
5
+ * @stability stable
6
+ *
7
+ * `spine-framework init` — Bootstrap a fresh Spine installation.
8
+ *
9
+ * Runs the foundation schema (000_foundation.sql) and seed data (001_seed.sql)
10
+ * against the configured Supabase project, then scaffolds the custom/ workspace
11
+ * if it doesn't already exist.
12
+ *
13
+ * **Usage:**
14
+ * ```bash
15
+ * # Fresh install (agent provides credentials from Supabase dashboard)
16
+ * spine-framework init --url https://xyz.supabase.co --anon-key eyJ... --service-role-key eyJ...
17
+ *
18
+ * # Already have .env configured
19
+ * spine-framework init
20
+ *
21
+ * # DB only, no filesystem changes
22
+ * spine-framework init --skip-scaffold
23
+ * ```
24
+ *
25
+ * When --url/--anon-key/--service-role-key are provided, init writes .env before
26
+ * running migrations — so it works on a completely fresh checkout with no prior config.
27
+ */
28
+ import type { Command } from 'commander';
29
+ export declare function registerInitCommands(program: Command): void;
30
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../.framework/cli/commands/init.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAgOxC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,QAkBpD"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @module cli/commands/install-app
3
+ * @audience installer
4
+ * @layer cli
5
+ * @stability stable
6
+ *
7
+ * `spine-framework install-app <slug>` — Install an app into the current Spine instance.
8
+ *
9
+ * Reads seed/*.json files from the app package directory and upserts their
10
+ * contents into the database. Also registers the app in `app_installations`.
11
+ *
12
+ * **Seed file conventions:**
13
+ * - `types.json` → upsert into `types` table
14
+ * - `link-types.json` → upsert into `link_types` table
15
+ * - `triggers.json` → upsert into `triggers` table
16
+ * - `accounts.json` → upsert into `accounts` table
17
+ * - `pipelines.json` → upsert into `pipelines` table
18
+ *
19
+ * All upserts keyed on `(app_id, slug)` — idempotent and safe to re-run.
20
+ *
21
+ * **Usage:**
22
+ * ```bash
23
+ * spine-framework install-app cortex
24
+ * spine-framework install-app customer-portal
25
+ * spine-framework install-app cortex --account <account-id>
26
+ * ```
27
+ */
28
+ import type { Command } from 'commander';
29
+ export declare function registerInstallAppCommands(program: Command): void;
30
+ //# sourceMappingURL=install-app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-app.d.ts","sourceRoot":"","sources":["../../../.framework/cli/commands/install-app.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAyVxC,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,QAgB1D"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * @module cli/commands/items
3
+ * @audience installer
4
+ * @layer cli
5
+ * @stability stable
6
+ *
7
+ * `spine items` command group. Direct CRUD access to the `items` table via
8
+ * `adminDb` (service-role, bypasses RLS). Use only in controlled environments;
9
+ * does NOT enforce field-level permissions or RLS for the principal.
10
+ *
11
+ * **Commands:**
12
+ * | Subcommand | Description |
13
+ * |------------------------------------------------|--------------------------------|
14
+ * | `items list [--type <slug>] [--account <id>]` | List items, filtered by type |
15
+ * | `items get <id>` | Fetch a single item by UUID |
16
+ * | `items create --type <slug> --data <json>` | Insert a new item |
17
+ * | `items update <id> --data <json>` | Patch item data fields |
18
+ * | `items delete <id> [--hard]` | Soft-delete or hard-delete |
19
+ *
20
+ * **Authorization note:** All commands use `adminDb` — no RLS enforcement.
21
+ * Account scoping is applied as a filter only; it does not restrict access.
22
+ *
23
+ * **Usage:**
24
+ * ```bash
25
+ * spine items list --type support_ticket --account <id> --limit 50
26
+ * spine items get <uuid>
27
+ * spine items create --type support_ticket --title "Bug report" --data '{"priority":"high"}'
28
+ * spine items update <uuid> --data '{"status":"resolved"}'
29
+ * spine items delete <uuid>
30
+ * spine items delete <uuid> --hard
31
+ * ```
32
+ *
33
+ * @seeAlso cli/context.ts (buildCliContext)
34
+ * @seeAlso functions/admin-data.ts (API equivalent with RLS)
35
+ */
36
+ import type { Command } from 'commander';
37
+ /**
38
+ * Registers the `items` subcommand group on the root Commander program.
39
+ *
40
+ * @param program - The root `spine` Commander instance
41
+ * @sideEffects Adds `items list/get/create/update/delete` subcommands to `program`
42
+ * @calledBy cli/index.ts
43
+ */
44
+ export declare function registerItemCommands(program: Command): void;
45
+ //# sourceMappingURL=items.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"items.d.ts","sourceRoot":"","sources":["../../../.framework/cli/commands/items.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAIxC;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,QA4MpD"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * @module cli/commands/migrations
3
+ * @audience installer
4
+ * @layer cli
5
+ * @stability stable
6
+ *
7
+ * `spine migrations` command group. Read-only inspection of the migration
8
+ * state. Does NOT apply or roll back migrations — use the Supabase CLI for
9
+ * that. These commands are intended for verifying the state of a deployed
10
+ * instance during setup or debugging.
11
+ *
12
+ * **Commands:**
13
+ * | Subcommand | Description |
14
+ * |-----------------------|-----------------------------------------------------|
15
+ * | `migrations list` | Show all applied migrations from `schema_migrations`|
16
+ * | `migrations status` | Diff local `.sql` files against applied migrations |
17
+ *
18
+ * **Authorization:** Uses `adminDb` (service-role) with an explicit
19
+ * `.schema('public')` override to reach `schema_migrations`. Requires
20
+ * `SUPABASE_SERVICE_ROLE_KEY` with public schema access.
21
+ *
22
+ * **Usage:**
23
+ * ```bash
24
+ * spine migrations list
25
+ * spine migrations status
26
+ * spine migrations status --json
27
+ * ```
28
+ *
29
+ * @seeAlso v2-core/migrations/ (local .sql migration files)
30
+ * @seeAlso cli/context.ts (buildCliContext)
31
+ */
32
+ import type { Command } from 'commander';
33
+ /**
34
+ * Registers the `migrations` subcommand group on the root Commander program.
35
+ *
36
+ * @param program - The root `spine` Commander instance
37
+ * @sideEffects Adds `migrations list` and `migrations status` subcommands to `program`
38
+ * @calledBy cli/index.ts
39
+ */
40
+ export declare function registerMigrationCommands(program: Command): void;
41
+ //# sourceMappingURL=migrations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../../.framework/cli/commands/migrations.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAUxC;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,QA0FzD"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @module cli/commands/pipelines
3
+ * @audience installer
4
+ * @layer cli
5
+ * @stability stable
6
+ *
7
+ * `spine pipelines` command group. Lists, inspects, and triggers pipeline
8
+ * execution directly from the terminal or an agentic IDE. `pipelines run`
9
+ * calls `runPipeline` — the same function used by API handlers and timers —
10
+ * so CLI executions are fully recorded in `pipeline_executions`.
11
+ *
12
+ * **Commands:**
13
+ * | Subcommand | Description |
14
+ * |---------------------------------------|------------------------------------------|
15
+ * | `pipelines list [--account] [--all]` | List active (or all) pipelines |
16
+ * | `pipelines get <id>` | Show pipeline details |
17
+ * | `pipelines run <id> [--data <json>]` | Execute a pipeline and show stage output |
18
+ * | `pipelines executions <id>` | List recent executions for a pipeline |
19
+ *
20
+ * **Usage:**
21
+ * ```bash
22
+ * spine pipelines list --account <id>
23
+ * spine pipelines run <uuid> --data '{"key":"value"}' --json
24
+ * spine pipelines executions <uuid> --limit 20
25
+ * ```
26
+ *
27
+ * @seeAlso cli/context.ts (buildCliContext)
28
+ * @seeAlso functions/_shared/pipeline-runner.ts (runPipeline)
29
+ * @seeAlso functions/pipeline-executions.ts (API query endpoint)
30
+ */
31
+ import type { Command } from 'commander';
32
+ /**
33
+ * Registers the `pipelines` subcommand group on the root Commander program.
34
+ *
35
+ * @param program - The root `spine` Commander instance
36
+ * @sideEffects Adds `pipelines list/get/run/executions` subcommands to `program`
37
+ * @calledBy cli/index.ts
38
+ */
39
+ export declare function registerPipelineCommands(program: Command): void;
40
+ //# sourceMappingURL=pipelines.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipelines.d.ts","sourceRoot":"","sources":["../../../.framework/cli/commands/pipelines.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAIxC;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,QA0HxD"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @module cli/commands/status
3
+ * @audience installer
4
+ * @layer cli
5
+ * @stability stable
6
+ *
7
+ * `spine-framework status` — Show the current state of the Spine installation.
8
+ *
9
+ * Displays:
10
+ * - Database connection status
11
+ * - Installed apps and their seed state
12
+ * - Migration history
13
+ * - Webhook handler registrations
14
+ *
15
+ * **Usage:**
16
+ * ```bash
17
+ * spine-framework status
18
+ * spine-framework status --json
19
+ * ```
20
+ */
21
+ import type { Command } from 'commander';
22
+ export declare function registerStatusCommands(program: Command): void;
23
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../.framework/cli/commands/status.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA2JxC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,QAmBtD"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @module cli/commands/system
3
+ * @audience installer
4
+ * @layer cli
5
+ * @stability stable
6
+ *
7
+ * `spine system` command — CLI interface to system discovery endpoints.
8
+ * Queries the running Spine instance for manifest, health, and OpenAPI spec.
9
+ *
10
+ * **Commands:**
11
+ * | Subcommand | Description |
12
+ * |-------------------------|-------------------------------------------------------|
13
+ * | `system manifest` | Fetch and display system manifest |
14
+ * | `system health` | Fetch and display health check results |
15
+ * | `system openapi` | Fetch OpenAPI spec (outputs JSON) |
16
+ * | `system --json` | Output as JSON for all subcommands |
17
+ *
18
+ * **Usage:**
19
+ * ```bash
20
+ * spine system manifest
21
+ * spine system health --json
22
+ * spine system openapi > openapi.json
23
+ * ```
24
+ *
25
+ * @seeAlso functions/system.ts (HTTP endpoints this CLI consumes)
26
+ */
27
+ import type { Command } from 'commander';
28
+ export declare function registerSystemCommands(program: Command): void;
29
+ //# sourceMappingURL=system.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../../.framework/cli/commands/system.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA8CxC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,QA6GtD"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * @module cli/commands/test
3
+ * @audience installer
4
+ * @layer cli
5
+ * @stability stable
6
+ *
7
+ * `spine test` command — unified test runner for all 4 test surfaces.
8
+ * Runs Vitest tests and persists results to Supabase via the custom reporter.
9
+ *
10
+ * **Commands:**
11
+ * | Subcommand | Description |
12
+ * |-------------------------|-------------------------------------------------------|
13
+ * | `test` | Run all test suites |
14
+ * | `test unit` | Run unit tests only |
15
+ * | `test integration` | Run integration tests only |
16
+ * | `test api` | Run API tests only |
17
+ * | `test ui` | Run UI/Playwright tests only |
18
+ * | `test --json` | Output structured JSON summary |
19
+ * | `test --watch` | Run in watch mode (for unit/integration) |
20
+ *
21
+ * **Test surfaces:**
22
+ * - **unit**: Fast tests, no DB (v2-core/tests/unit/)
23
+ * - **integration**: DB tests with fixtures (v2-core/tests/integration/)
24
+ * - **api**: HTTP fetch tests against localhost:8888 (v2-core/tests/api/)
25
+ * - **ui**: Playwright browser tests (v2-core/tests/ui/)
26
+ *
27
+ * **Results:**
28
+ * All test runs are persisted to `public.test_runs` and `public.test_results`
29
+ * via the custom Vitest reporter (v2-core/tests/reporter.ts).
30
+ *
31
+ * **Usage:**
32
+ * ```bash
33
+ * spine test
34
+ * spine test unit --watch
35
+ * spine test integration --json
36
+ * spine test api
37
+ * spine test ui
38
+ * ```
39
+ *
40
+ * @seeAlso tests/reporter.ts (custom Vitest reporter)
41
+ * @seeAlso functions/tests.ts (API endpoint for querying results)
42
+ * @seeAlso pages/admin/TestingDashboard.tsx (UI for viewing results)
43
+ */
44
+ import type { Command } from 'commander';
45
+ export declare function registerTestCommands(program: Command): void;
46
+ //# sourceMappingURL=test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../.framework/cli/commands/test.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAwBxC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,QA6FpD"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @module cli/commands/uninstall-app
3
+ * @audience installer
4
+ * @layer cli
5
+ * @stability stable
6
+ *
7
+ * `spine-framework uninstall-app <slug>` — Soft-uninstall an app.
8
+ *
9
+ * Deactivates the app's types, link types, and triggers in the database.
10
+ * Does NOT delete data (items, threads, etc.) — those remain for audit.
11
+ * Does NOT remove filesystem files — the app code stays in custom/apps/.
12
+ *
13
+ * To fully remove: manually delete the app directory after uninstall.
14
+ *
15
+ * **Usage:**
16
+ * ```bash
17
+ * spine-framework uninstall-app cortex
18
+ * spine-framework uninstall-app cortex --hard # Also deactivate items
19
+ * ```
20
+ */
21
+ import type { Command } from 'commander';
22
+ export declare function registerUninstallAppCommands(program: Command): void;
23
+ //# sourceMappingURL=uninstall-app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uninstall-app.d.ts","sourceRoot":"","sources":["../../../.framework/cli/commands/uninstall-app.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAgIxC,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,QAe5D"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * @module cli/context
3
+ * @audience installer
4
+ * @layer cli
5
+ * @stability stable
6
+ *
7
+ * CLI context builder and output utilities. This is the CLI equivalent of
8
+ * `createHandler()` in `middleware.ts` — it resolves the principal, picks the
9
+ * correct Supabase client, and returns a `CoreContext` that every CLI command
10
+ * passes directly to core functions.
11
+ *
12
+ * **Environment variables read from `.xenv` or `process.env`:**
13
+ * | Variable | Required | Purpose |
14
+ * |---------------------------|----------|------------------------------------|
15
+ * | `SUPABASE_URL` | yes | Project API URL |
16
+ * | `SUPABASE_SERVICE_ROLE_KEY` | yes | Service-role client (admin ops) |
17
+ * | `SUPABASE_ANON_KEY` | yes | User-scoped client (JWT mode) |
18
+ * | `SPINE_CLI_ACCOUNT_ID` | no | Default account scope |
19
+ * | `SPINE_CLI_JWT` | no | Human principal (Supabase JWT) |
20
+ * | `SPINE_CLI_API_KEY` | no | Machine principal (hashed key) |
21
+ * | `SPINE_CLI_DEBUG` | no | Print stack traces on error |
22
+ *
23
+ * **Principal resolution priority** (first match wins):
24
+ * 1. `SPINE_CLI_JWT` → human principal (RLS-scoped `getUserDb`)
25
+ * 2. `SPINE_CLI_API_KEY` → machine principal (`adminDb`)
26
+ * 3. Fallback → `SYSTEM_PRINCIPAL` (`adminDb` — admin ops only)
27
+ *
28
+ * @seeAlso functions/_shared/middleware.ts (createHandler — server-side equivalent)
29
+ * @seeAlso functions/_shared/principal.ts (Principal type and SYSTEM_PRINCIPAL)
30
+ * @seeAlso cli/index.ts (entry point that imports all commands)
31
+ */
32
+ import { CoreContext } from '../functions/_shared/index.ts';
33
+ /**
34
+ * Options passed from CLI command `.action()` callbacks to `buildCliContext`.
35
+ *
36
+ * @inputSpec account: string | undefined — UUID of the target account; overrides
37
+ * `SPINE_CLI_ACCOUNT_ID` if both are present.
38
+ * @calledBy All `registerXxxCommands` functions before calling core functions
39
+ */
40
+ export interface CliOptions {
41
+ account?: string;
42
+ }
43
+ /**
44
+ * @chunk-id CLI_CONTEXT_BUILD_1_0_0
45
+ * @version 1.0.0
46
+ * @hash 501162983b1b24e9a15267ca7b8398b3733f540b2a65a96d8277ec3d780f2003
47
+ * @macro CLI Context Builder
48
+ * @micro Constructs CoreContext with principal resolution and Supabase client
49
+ * @inputs opts: CliOptions — Optional overrides including account ID
50
+ * @outputs CoreContext — Fully resolved context with principal, DB client, and request ID
51
+ * @depends-on [loadEnv, adminDb, getUserDb, SYSTEM_PRINCIPAL]
52
+ * @depended-by [All CLI command handlers]
53
+ * @side-effects [DB queries, environment reads, crypto.randomUUID]
54
+ * @tags cli, authentication, principal-resolution, context
55
+ */
56
+ export declare function buildCliContext(opts?: CliOptions): Promise<CoreContext>;
57
+ /**
58
+ * @chunk-id CLI_CONTEXT_PRINT_RESULT_1_0_0
59
+ * @version 1.0.0
60
+ * @hash 06e492defa9012290a5c8b2d4fca27f01df11bdc194ffbdf4f4b4518aa683c2b
61
+ * @macro CLI Output Formatter
62
+ * @micro Pretty-prints query results as JSON or ASCII tables
63
+ * @inputs data: any — Result data to display (array or single value)
64
+ * @inputs opts: { json?: boolean } — Output format options
65
+ * @outputs void — Console output only
66
+ * @depends-on [console, JSON]
67
+ * @depended-by [All CLI command list/get handlers]
68
+ * @side-effects [console.log output]
69
+ * @tags cli, output, formatting, tables, json
70
+ */
71
+ export declare function printResult(data: any, opts?: {
72
+ json?: boolean;
73
+ }): void;
74
+ /**
75
+ * @chunk-id CLI_CONTEXT_HANDLE_ERROR_1_0_0
76
+ * @version 1.0.0
77
+ * @hash 61aca7e4bce61b5b790e8f27ef3f505a6a6fe9a8cd6643e577f610d9dd15b1cd
78
+ * @macro CLI Error Handler
79
+ * @micro Prints formatted error and exits with proper debug information
80
+ * @inputs err: any — Error object or string message
81
+ * @outputs void — Process termination (exit code 1)
82
+ * @depends-on [console, process]
83
+ * @depended-by [All CLI command action handlers]
84
+ * @side-effects [console.error output, process.exit]
85
+ * @tags cli, error-handling, debug, process-exit
86
+ */
87
+ export declare function handleError(err: any): void;
88
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../.framework/cli/context.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAKH,OAAO,EAAE,WAAW,EAAmD,MAAM,+BAA+B,CAAA;AA0C5G;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAKD;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CAAC,IAAI,GAAE,UAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAgGjF;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,QAsBnE;AAID;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,QAMnC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @module cli/env-loader
3
+ * @audience installer
4
+ * @layer cli
5
+ * @stability stable
6
+ *
7
+ * Side-effect module: loads `v2-core/.xenv` into `process.env` before any
8
+ * other CLI module is imported. Must be the first import in `cli/index.ts`
9
+ * so that `db.ts` (which reads env vars at module-load time) sees the values.
10
+ *
11
+ * @sideEffects Mutates process.env — only sets keys not already present
12
+ */
13
+ export {};
14
+ //# sourceMappingURL=env-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-loader.d.ts","sourceRoot":"","sources":["../../.framework/cli/env-loader.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;GAWG"}
@@ -0,0 +1,41 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * @module cli/index
4
+ * @audience installer
5
+ * @layer cli
6
+ * @stability stable
7
+ *
8
+ * Spine CLI entry point (`npx spine-framework`). Registers all command groups via
9
+ * Commander and delegates each subcommand to the same core logic used by
10
+ * API handlers and direct imports. No business logic lives here — only
11
+ * command registration and top-level error handling.
12
+ *
13
+ * **Command groups registered:**
14
+ * | Group | File |
15
+ * |-------------|----------------------------|
16
+ * | auth | commands/auth.ts |
17
+ * | pipelines | commands/pipelines.ts |
18
+ * | items | commands/items.ts |
19
+ * | agents | commands/agents.ts |
20
+ * | migrations | commands/migrations.ts |
21
+ * | init | commands/init.ts |
22
+ * | install-app | commands/install-app.ts |
23
+ * | status | commands/status.ts |
24
+ * | uninstall | commands/uninstall-app.ts |
25
+ *
26
+ * **Usage:**
27
+ * ```bash
28
+ * npx spine-framework --help
29
+ * npx spine-framework auth whoami
30
+ * npx spine-framework pipelines run <id> --data '{"key":"value"}'
31
+ * npx spine-framework items list --type support_ticket
32
+ * npx spine-framework items get <id>
33
+ * npx spine-framework agents run <thread-id> --message "Hello"
34
+ * npx spine-framework migrations list
35
+ * ```
36
+ *
37
+ * @seeAlso cli/context.ts (buildCliContext — constructs CoreContext for every command)
38
+ * @seeAlso functions/_shared/index.ts (core functions exposed to CLI)
39
+ */
40
+ import './env-loader.ts';
41
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../.framework/cli/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,iBAAiB,CAAA"}