spine-framework 0.1.61 → 1.0.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 (425) hide show
  1. package/LICENSE.md +223 -0
  2. package/README.md +327 -0
  3. package/package.json +107 -216
  4. package/src/cli/commands/init.ts +192 -0
  5. package/src/cli/commands/install.ts +25 -0
  6. package/src/cli/commands/list.ts +33 -0
  7. package/src/cli/commands/migrate.ts +24 -0
  8. package/src/cli/index.ts +46 -0
  9. package/src/components/AppLayout.tsx +21 -0
  10. package/src/components/AuthGuard.tsx +21 -0
  11. package/src/components/RoleGuard.tsx +23 -0
  12. package/src/components/index.ts +3 -0
  13. package/src/contexts/AppContext.tsx +122 -0
  14. package/src/contexts/AuthContext.tsx +87 -0
  15. package/src/contexts/SpineContext.tsx +46 -0
  16. package/src/contexts/index.ts +3 -0
  17. package/src/hooks/index.ts +4 -0
  18. package/src/hooks/useItems.ts +78 -0
  19. package/src/hooks/useThreads.ts +73 -0
  20. package/src/hooks/useWebSocket.ts +97 -0
  21. package/src/index.ts +22 -0
  22. package/src/types/index.ts +163 -0
  23. package/src/utils/api.ts +88 -0
  24. package/src/utils/client.ts +146 -0
  25. package/src/utils/config.ts +20 -0
  26. package/src/utils/index.ts +3 -0
  27. package/.framework/README.md +0 -129
  28. package/.framework/cli/bin.cjs +0 -14
  29. package/.framework/cli/commands/agents.ts +0 -153
  30. package/.framework/cli/commands/auth.ts +0 -94
  31. package/.framework/cli/commands/create-app.ts +0 -185
  32. package/.framework/cli/commands/dev.ts +0 -113
  33. package/.framework/cli/commands/doctor.ts +0 -442
  34. package/.framework/cli/commands/generate.ts +0 -332
  35. package/.framework/cli/commands/init.ts +0 -186
  36. package/.framework/cli/commands/install-app.ts +0 -565
  37. package/.framework/cli/commands/items.ts +0 -253
  38. package/.framework/cli/commands/migrate.ts +0 -139
  39. package/.framework/cli/commands/migrations.ts +0 -141
  40. package/.framework/cli/commands/pipelines.ts +0 -166
  41. package/.framework/cli/commands/status.ts +0 -197
  42. package/.framework/cli/commands/system.ts +0 -184
  43. package/.framework/cli/commands/test.ts +0 -227
  44. package/.framework/cli/commands/uninstall-app.ts +0 -166
  45. package/.framework/cli/context.ts +0 -268
  46. package/.framework/cli/env-loader.ts +0 -36
  47. package/.framework/cli/index.ts +0 -116
  48. package/.framework/cli/welcome.cjs +0 -45
  49. package/.framework/docs/API.md +0 -384
  50. package/.framework/docs/STABILITY.md +0 -52
  51. package/.framework/docs/admin-routes.md +0 -76
  52. package/.framework/docs/api-docs-progress.md +0 -38
  53. package/.framework/docs/api-governance.md +0 -146
  54. package/.framework/docs/api-testing-results.md +0 -212
  55. package/.framework/docs/apis/admin-configs.md +0 -567
  56. package/.framework/docs/apis/admin-data.md +0 -272
  57. package/.framework/docs/apis/index.md +0 -231
  58. package/.framework/docs/apis/internal.md +0 -295
  59. package/.framework/docs/apis/runtime.md +0 -537
  60. package/.framework/docs/assembly-launch-guide.md +0 -138
  61. package/.framework/docs/audit-results.md +0 -590
  62. package/.framework/docs/authorization-model.md +0 -170
  63. package/.framework/docs/db-api-inventory.md +0 -95
  64. package/.framework/docs/examples/custom-app/README.md +0 -77
  65. package/.framework/docs/examples/custom-function/README.md +0 -27
  66. package/.framework/docs/examples/custom-function/handler.ts +0 -48
  67. package/.framework/docs/examples/custom-webhook/README.md +0 -68
  68. package/.framework/docs/gap-remediation-backlog.md +0 -103
  69. package/.framework/docs/guides/cli-guide.md +0 -224
  70. package/.framework/docs/guides/getting-started.md +0 -103
  71. package/.framework/docs/guides/import-guide.md +0 -193
  72. package/.framework/docs/guides/testing-guide.md +0 -229
  73. package/.framework/docs/permission-examples.md +0 -326
  74. package/.framework/docs/ui-adoption-verification.md +0 -111
  75. package/.framework/docs/ui-api-coverage.md +0 -84
  76. package/.framework/docs/v2-compatibility-audit.md +0 -228
  77. package/.framework/functions/.gitkeep +0 -1
  78. package/.framework/functions/_shared/agent-runner.ts +0 -1097
  79. package/.framework/functions/_shared/app-manifest.ts +0 -184
  80. package/.framework/functions/_shared/audit.ts +0 -150
  81. package/.framework/functions/_shared/db.ts +0 -178
  82. package/.framework/functions/_shared/index.ts +0 -391
  83. package/.framework/functions/_shared/middleware.ts +0 -490
  84. package/.framework/functions/_shared/permissions.ts +0 -1325
  85. package/.framework/functions/_shared/pipeline-runner.ts +0 -731
  86. package/.framework/functions/_shared/principal.ts +0 -818
  87. package/.framework/functions/_shared/resolve-ids.ts +0 -106
  88. package/.framework/functions/_shared/schema-utils.ts +0 -967
  89. package/.framework/functions/_shared/testing.ts +0 -258
  90. package/.framework/functions/_shared/trigger-engine.ts +0 -425
  91. package/.framework/functions/_shared/webhook-registration.ts +0 -168
  92. package/.framework/functions/_shared/webhook-registry.ts +0 -129
  93. package/.framework/functions/account-nodes.ts +0 -111
  94. package/.framework/functions/admin-data.ts +0 -606
  95. package/.framework/functions/ai-agents.ts +0 -323
  96. package/.framework/functions/api-keys.ts +0 -376
  97. package/.framework/functions/apps.ts +0 -483
  98. package/.framework/functions/auth.ts +0 -196
  99. package/.framework/functions/debug-auth.ts +0 -107
  100. package/.framework/functions/embeddings.ts +0 -556
  101. package/.framework/functions/integration-routes.ts +0 -523
  102. package/.framework/functions/integrations.ts +0 -319
  103. package/.framework/functions/item-progress.ts +0 -272
  104. package/.framework/functions/logs.ts +0 -438
  105. package/.framework/functions/observability.ts +0 -275
  106. package/.framework/functions/pipeline-executions.ts +0 -494
  107. package/.framework/functions/pipelines.ts +0 -485
  108. package/.framework/functions/prompt-configs.ts +0 -339
  109. package/.framework/functions/roles.ts +0 -387
  110. package/.framework/functions/system-cron.ts +0 -742
  111. package/.framework/functions/system.ts +0 -323
  112. package/.framework/functions/tests.ts +0 -119
  113. package/.framework/functions/timers.ts +0 -357
  114. package/.framework/functions/triggers.ts +0 -563
  115. package/.framework/functions/types.ts +0 -604
  116. package/.framework/index.html +0 -16
  117. package/.framework/migrations/000_foundation.sql +0 -1266
  118. package/.framework/migrations/001_seed.sql +0 -163
  119. package/.framework/migrations/002_seed_constraints.sql +0 -19
  120. package/.framework/migrations/003_auth_user_trigger.sql +0 -67
  121. package/.framework/src/App.tsx +0 -126
  122. package/.framework/src/apps/admin/index.tsx +0 -173
  123. package/.framework/src/components/AppWrapper.tsx +0 -56
  124. package/.framework/src/components/CustomAppLoader.tsx +0 -116
  125. package/.framework/src/components/admin/AdminListPage.tsx +0 -151
  126. package/.framework/src/components/admin/AdminSidebar.tsx +0 -166
  127. package/.framework/src/components/admin/AdminStatsCard.tsx +0 -62
  128. package/.framework/src/components/admin/SortableTableHeader.tsx +0 -42
  129. package/.framework/src/components/app-shell/GenericAppShell.tsx +0 -181
  130. package/.framework/src/components/app-shell/GenericDetailPage.tsx +0 -200
  131. package/.framework/src/components/app-shell/GenericListPage.tsx +0 -116
  132. package/.framework/src/components/app-sidebar.tsx +0 -228
  133. package/.framework/src/components/auth/ProtectedRoute.tsx +0 -88
  134. package/.framework/src/components/layout/AppShell.tsx +0 -91
  135. package/.framework/src/components/layout/Header.tsx +0 -88
  136. package/.framework/src/components/layout/Layout.tsx +0 -95
  137. package/.framework/src/components/layout/Sidebar.tsx +0 -329
  138. package/.framework/src/components/runtime/DataDetailHeader.tsx +0 -77
  139. package/.framework/src/components/runtime/DataDetailPage.tsx +0 -171
  140. package/.framework/src/components/runtime/DataFilters.tsx +0 -91
  141. package/.framework/src/components/runtime/DataHeader.tsx +0 -68
  142. package/.framework/src/components/runtime/DataListPage.tsx +0 -124
  143. package/.framework/src/components/runtime/DataStats.tsx +0 -70
  144. package/.framework/src/components/runtime/DataTable.tsx +0 -174
  145. package/.framework/src/components/runtime/SchemaDetailForm.tsx +0 -134
  146. package/.framework/src/components/runtime/index.ts +0 -18
  147. package/.framework/src/components/search-form.tsx +0 -29
  148. package/.framework/src/components/shared/AgentView.tsx +0 -213
  149. package/.framework/src/components/shared/FieldRenderer.tsx +0 -478
  150. package/.framework/src/components/shared/SchemaFields.tsx +0 -226
  151. package/.framework/src/components/ui/DataTable.tsx +0 -343
  152. package/.framework/src/components/ui/Form.tsx +0 -281
  153. package/.framework/src/components/ui/ItemCard.tsx +0 -296
  154. package/.framework/src/components/ui/ItemListView.tsx +0 -308
  155. package/.framework/src/components/ui/LoadingSpinner.tsx +0 -52
  156. package/.framework/src/components/ui/Modal.tsx +0 -61
  157. package/.framework/src/components/ui/RichTextEditor.tsx +0 -210
  158. package/.framework/src/components/ui/accordion.tsx +0 -82
  159. package/.framework/src/components/ui/alert-dialog.tsx +0 -197
  160. package/.framework/src/components/ui/alert.tsx +0 -76
  161. package/.framework/src/components/ui/aspect-ratio.tsx +0 -11
  162. package/.framework/src/components/ui/avatar.tsx +0 -110
  163. package/.framework/src/components/ui/badge.tsx +0 -49
  164. package/.framework/src/components/ui/breadcrumb.tsx +0 -122
  165. package/.framework/src/components/ui/button-group.tsx +0 -83
  166. package/.framework/src/components/ui/button.tsx +0 -65
  167. package/.framework/src/components/ui/calendar.tsx +0 -222
  168. package/.framework/src/components/ui/card.tsx +0 -100
  169. package/.framework/src/components/ui/carousel.tsx +0 -240
  170. package/.framework/src/components/ui/chart.tsx +0 -368
  171. package/.framework/src/components/ui/checkbox.tsx +0 -31
  172. package/.framework/src/components/ui/collapsible.tsx +0 -33
  173. package/.framework/src/components/ui/combobox.tsx +0 -299
  174. package/.framework/src/components/ui/command.tsx +0 -193
  175. package/.framework/src/components/ui/context-menu.tsx +0 -261
  176. package/.framework/src/components/ui/dialog.tsx +0 -165
  177. package/.framework/src/components/ui/direction.tsx +0 -6
  178. package/.framework/src/components/ui/drawer.tsx +0 -132
  179. package/.framework/src/components/ui/dropdown-menu.tsx +0 -269
  180. package/.framework/src/components/ui/empty.tsx +0 -104
  181. package/.framework/src/components/ui/field.tsx +0 -238
  182. package/.framework/src/components/ui/hover-card.tsx +0 -42
  183. package/.framework/src/components/ui/input-group.tsx +0 -153
  184. package/.framework/src/components/ui/input-otp.tsx +0 -87
  185. package/.framework/src/components/ui/input.tsx +0 -19
  186. package/.framework/src/components/ui/item.tsx +0 -196
  187. package/.framework/src/components/ui/kbd.tsx +0 -26
  188. package/.framework/src/components/ui/label.tsx +0 -22
  189. package/.framework/src/components/ui/menubar.tsx +0 -277
  190. package/.framework/src/components/ui/native-select.tsx +0 -61
  191. package/.framework/src/components/ui/navigation-menu.tsx +0 -164
  192. package/.framework/src/components/ui/pagination.tsx +0 -129
  193. package/.framework/src/components/ui/popover.tsx +0 -87
  194. package/.framework/src/components/ui/progress.tsx +0 -31
  195. package/.framework/src/components/ui/radio-group.tsx +0 -42
  196. package/.framework/src/components/ui/resizable.tsx +0 -50
  197. package/.framework/src/components/ui/scroll-area.tsx +0 -53
  198. package/.framework/src/components/ui/select.tsx +0 -195
  199. package/.framework/src/components/ui/separator.tsx +0 -26
  200. package/.framework/src/components/ui/sheet.tsx +0 -145
  201. package/.framework/src/components/ui/sidebar.tsx +0 -706
  202. package/.framework/src/components/ui/skeleton.tsx +0 -13
  203. package/.framework/src/components/ui/slider.tsx +0 -59
  204. package/.framework/src/components/ui/sonner.tsx +0 -47
  205. package/.framework/src/components/ui/spinner.tsx +0 -10
  206. package/.framework/src/components/ui/switch.tsx +0 -33
  207. package/.framework/src/components/ui/table-primitives.tsx +0 -141
  208. package/.framework/src/components/ui/table.tsx +0 -114
  209. package/.framework/src/components/ui/tabs.tsx +0 -90
  210. package/.framework/src/components/ui/textarea.tsx +0 -18
  211. package/.framework/src/components/ui/toggle-group.tsx +0 -89
  212. package/.framework/src/components/ui/toggle.tsx +0 -45
  213. package/.framework/src/components/ui/tooltip.tsx +0 -57
  214. package/.framework/src/contexts/AppContext.tsx +0 -133
  215. package/.framework/src/contexts/AuthContext.tsx +0 -371
  216. package/.framework/src/hooks/use-mobile.ts +0 -19
  217. package/.framework/src/hooks/useApi.ts +0 -526
  218. package/.framework/src/hooks/useApps.ts +0 -114
  219. package/.framework/src/hooks/useEntityList.ts +0 -190
  220. package/.framework/src/hooks/useEntityRecord.ts +0 -308
  221. package/.framework/src/hooks/useForm.ts +0 -307
  222. package/.framework/src/hooks/useListSchema.ts +0 -264
  223. package/.framework/src/hooks/useSchemaRecord.ts +0 -223
  224. package/.framework/src/index.css +0 -128
  225. package/.framework/src/lib/api.ts +0 -156
  226. package/.framework/src/lib/supabase.ts +0 -94
  227. package/.framework/src/lib/utils.ts +0 -317
  228. package/.framework/src/main.tsx +0 -27
  229. package/.framework/src/pages/DashboardPage.tsx +0 -181
  230. package/.framework/src/pages/NotFoundPage.tsx +0 -39
  231. package/.framework/src/pages/admin/AIAgentDetailPage.tsx +0 -161
  232. package/.framework/src/pages/admin/AIAgentsPage.tsx +0 -318
  233. package/.framework/src/pages/admin/APIKeyDetailPage.tsx +0 -199
  234. package/.framework/src/pages/admin/APIKeysPage.tsx +0 -303
  235. package/.framework/src/pages/admin/AlertsConfigPage.tsx +0 -523
  236. package/.framework/src/pages/admin/AppDetailPage.tsx +0 -493
  237. package/.framework/src/pages/admin/AppsPage.tsx +0 -355
  238. package/.framework/src/pages/admin/DesignedPage.tsx +0 -491
  239. package/.framework/src/pages/admin/EmbeddingDetailPage.tsx +0 -534
  240. package/.framework/src/pages/admin/EmbeddingsPage.tsx +0 -424
  241. package/.framework/src/pages/admin/ExtendedShadcnTestPage.tsx +0 -176
  242. package/.framework/src/pages/admin/IncrementalShadcnTestPage.tsx +0 -109
  243. package/.framework/src/pages/admin/IntegratedDashboard.tsx +0 -402
  244. package/.framework/src/pages/admin/IntegrationDetailPage.tsx +0 -187
  245. package/.framework/src/pages/admin/IntegrationsPage.tsx +0 -301
  246. package/.framework/src/pages/admin/LogsPage.tsx +0 -283
  247. package/.framework/src/pages/admin/MinimalShadcnTestPage.tsx +0 -85
  248. package/.framework/src/pages/admin/ObservabilityDashboard.tsx +0 -470
  249. package/.framework/src/pages/admin/PipelineDetailPage.tsx +0 -183
  250. package/.framework/src/pages/admin/PipelineExecutionsPage.tsx +0 -279
  251. package/.framework/src/pages/admin/PipelinesPage.tsx +0 -390
  252. package/.framework/src/pages/admin/PromptConfigDetailPage.tsx +0 -299
  253. package/.framework/src/pages/admin/PromptConfigsPage.tsx +0 -292
  254. package/.framework/src/pages/admin/ProperlyDesignedPage.tsx +0 -434
  255. package/.framework/src/pages/admin/RoleDetailPage.tsx +0 -273
  256. package/.framework/src/pages/admin/RolesPage.tsx +0 -292
  257. package/.framework/src/pages/admin/SelectTestPage.tsx +0 -61
  258. package/.framework/src/pages/admin/ShadcnTestPage.tsx +0 -588
  259. package/.framework/src/pages/admin/SimpleDashboard.tsx +0 -387
  260. package/.framework/src/pages/admin/TestRunDetailPage.tsx +0 -172
  261. package/.framework/src/pages/admin/TestingDashboard.tsx +0 -257
  262. package/.framework/src/pages/admin/TimerDetailPage.tsx +0 -151
  263. package/.framework/src/pages/admin/TimersPage.tsx +0 -376
  264. package/.framework/src/pages/admin/TriggerDetailPage.tsx +0 -149
  265. package/.framework/src/pages/admin/TriggersPage.tsx +0 -381
  266. package/.framework/src/pages/admin/TypeDetailPage.tsx +0 -694
  267. package/.framework/src/pages/admin/TypesPage.tsx +0 -295
  268. package/.framework/src/pages/auth/LoginPage.tsx +0 -187
  269. package/.framework/src/pages/auth/RegisterPage.tsx +0 -163
  270. package/.framework/src/pages/spine-framework/APIPage.tsx +0 -17
  271. package/.framework/src/pages/spine-framework/CLIPage.tsx +0 -25
  272. package/.framework/src/types/auth.ts +0 -125
  273. package/.framework/src/types/types.ts +0 -407
  274. package/STRUCTURE.md +0 -150
  275. package/bin/spine-framework.cjs +0 -62
  276. package/bin/welcome.cjs +0 -45
  277. package/bin/ws-shim.cjs +0 -8
  278. package/bin/ws-shim.ts +0 -10
  279. package/config/components.json +0 -25
  280. package/config/deno.lock +0 -108
  281. package/config/package-lock.json +0 -17183
  282. package/config/postcss.config.cjs +0 -10
  283. package/config/tailwind.config.cjs +0 -78
  284. package/config/tsconfig.build.json +0 -32
  285. package/config/tsconfig.cli.json +0 -18
  286. package/config/tsconfig.json +0 -41
  287. package/config/tsconfig.node.json +0 -17
  288. package/config/tsconfig.node.tsbuildinfo +0 -1
  289. package/config/tsconfig.tsbuildinfo +0 -1
  290. package/config/typedoc.json +0 -16
  291. package/config/vite.config.d.ts +0 -2
  292. package/config/vite.config.ts +0 -72
  293. package/dist/cli/commands/agents.d.ts +0 -39
  294. package/dist/cli/commands/agents.d.ts.map +0 -1
  295. package/dist/cli/commands/auth.d.ts +0 -36
  296. package/dist/cli/commands/auth.d.ts.map +0 -1
  297. package/dist/cli/commands/create-app.d.ts +0 -23
  298. package/dist/cli/commands/create-app.d.ts.map +0 -1
  299. package/dist/cli/commands/dev.d.ts +0 -24
  300. package/dist/cli/commands/dev.d.ts.map +0 -1
  301. package/dist/cli/commands/doctor.d.ts +0 -42
  302. package/dist/cli/commands/doctor.d.ts.map +0 -1
  303. package/dist/cli/commands/generate.d.ts +0 -36
  304. package/dist/cli/commands/generate.d.ts.map +0 -1
  305. package/dist/cli/commands/init.d.ts +0 -20
  306. package/dist/cli/commands/init.d.ts.map +0 -1
  307. package/dist/cli/commands/install-app.d.ts +0 -30
  308. package/dist/cli/commands/install-app.d.ts.map +0 -1
  309. package/dist/cli/commands/items.d.ts +0 -45
  310. package/dist/cli/commands/items.d.ts.map +0 -1
  311. package/dist/cli/commands/migrate.d.ts +0 -21
  312. package/dist/cli/commands/migrate.d.ts.map +0 -1
  313. package/dist/cli/commands/migrations.d.ts +0 -41
  314. package/dist/cli/commands/migrations.d.ts.map +0 -1
  315. package/dist/cli/commands/pipelines.d.ts +0 -40
  316. package/dist/cli/commands/pipelines.d.ts.map +0 -1
  317. package/dist/cli/commands/status.d.ts +0 -23
  318. package/dist/cli/commands/status.d.ts.map +0 -1
  319. package/dist/cli/commands/system.d.ts +0 -29
  320. package/dist/cli/commands/system.d.ts.map +0 -1
  321. package/dist/cli/commands/test.d.ts +0 -46
  322. package/dist/cli/commands/test.d.ts.map +0 -1
  323. package/dist/cli/commands/uninstall-app.d.ts +0 -23
  324. package/dist/cli/commands/uninstall-app.d.ts.map +0 -1
  325. package/dist/cli/context.d.ts +0 -88
  326. package/dist/cli/context.d.ts.map +0 -1
  327. package/dist/cli/env-loader.d.ts +0 -14
  328. package/dist/cli/env-loader.d.ts.map +0 -1
  329. package/dist/cli/index.d.ts +0 -41
  330. package/dist/cli/index.d.ts.map +0 -1
  331. package/dist/functions/_shared/agent-runner.d.ts +0 -156
  332. package/dist/functions/_shared/agent-runner.d.ts.map +0 -1
  333. package/dist/functions/_shared/app-manifest.d.ts +0 -68
  334. package/dist/functions/_shared/app-manifest.d.ts.map +0 -1
  335. package/dist/functions/_shared/audit.d.ts +0 -91
  336. package/dist/functions/_shared/audit.d.ts.map +0 -1
  337. package/dist/functions/_shared/db.d.ts +0 -125
  338. package/dist/functions/_shared/db.d.ts.map +0 -1
  339. package/dist/functions/_shared/index.d.ts +0 -299
  340. package/dist/functions/_shared/index.d.ts.map +0 -1
  341. package/dist/functions/_shared/middleware.d.ts +0 -315
  342. package/dist/functions/_shared/middleware.d.ts.map +0 -1
  343. package/dist/functions/_shared/permissions.d.ts +0 -626
  344. package/dist/functions/_shared/permissions.d.ts.map +0 -1
  345. package/dist/functions/_shared/pipeline-runner.d.ts +0 -124
  346. package/dist/functions/_shared/pipeline-runner.d.ts.map +0 -1
  347. package/dist/functions/_shared/principal.d.ts +0 -284
  348. package/dist/functions/_shared/principal.d.ts.map +0 -1
  349. package/dist/functions/_shared/resolve-ids.d.ts +0 -10
  350. package/dist/functions/_shared/resolve-ids.d.ts.map +0 -1
  351. package/dist/functions/_shared/schema-utils.d.ts +0 -181
  352. package/dist/functions/_shared/schema-utils.d.ts.map +0 -1
  353. package/dist/functions/_shared/testing.d.ts +0 -172
  354. package/dist/functions/_shared/testing.d.ts.map +0 -1
  355. package/dist/functions/_shared/trigger-engine.d.ts +0 -140
  356. package/dist/functions/_shared/trigger-engine.d.ts.map +0 -1
  357. package/dist/functions/_shared/webhook-registration.d.ts +0 -81
  358. package/dist/functions/_shared/webhook-registration.d.ts.map +0 -1
  359. package/dist/functions/_shared/webhook-registry.d.ts +0 -57
  360. package/dist/functions/_shared/webhook-registry.d.ts.map +0 -1
  361. package/dist/functions/account-nodes.d.ts +0 -48
  362. package/dist/functions/account-nodes.d.ts.map +0 -1
  363. package/dist/functions/admin-data.d.ts +0 -178
  364. package/dist/functions/admin-data.d.ts.map +0 -1
  365. package/dist/functions/ai-agents.d.ts +0 -125
  366. package/dist/functions/ai-agents.d.ts.map +0 -1
  367. package/dist/functions/api-keys.d.ts +0 -140
  368. package/dist/functions/api-keys.d.ts.map +0 -1
  369. package/dist/functions/apps.d.ts +0 -163
  370. package/dist/functions/apps.d.ts.map +0 -1
  371. package/dist/functions/auth.d.ts +0 -74
  372. package/dist/functions/auth.d.ts.map +0 -1
  373. package/dist/functions/debug-auth.d.ts +0 -33
  374. package/dist/functions/debug-auth.d.ts.map +0 -1
  375. package/dist/functions/embeddings.d.ts +0 -205
  376. package/dist/functions/embeddings.d.ts.map +0 -1
  377. package/dist/functions/integration-routes.d.ts +0 -45
  378. package/dist/functions/integration-routes.d.ts.map +0 -1
  379. package/dist/functions/integrations.d.ts +0 -124
  380. package/dist/functions/integrations.d.ts.map +0 -1
  381. package/dist/functions/item-progress.d.ts +0 -41
  382. package/dist/functions/item-progress.d.ts.map +0 -1
  383. package/dist/functions/logs.d.ts +0 -162
  384. package/dist/functions/logs.d.ts.map +0 -1
  385. package/dist/functions/observability.d.ts +0 -123
  386. package/dist/functions/observability.d.ts.map +0 -1
  387. package/dist/functions/pipeline-executions.d.ts +0 -190
  388. package/dist/functions/pipeline-executions.d.ts.map +0 -1
  389. package/dist/functions/pipelines.d.ts +0 -171
  390. package/dist/functions/pipelines.d.ts.map +0 -1
  391. package/dist/functions/prompt-configs.d.ts +0 -125
  392. package/dist/functions/prompt-configs.d.ts.map +0 -1
  393. package/dist/functions/roles.d.ts +0 -118
  394. package/dist/functions/roles.d.ts.map +0 -1
  395. package/dist/functions/system-cron.d.ts +0 -65
  396. package/dist/functions/system-cron.d.ts.map +0 -1
  397. package/dist/functions/system.d.ts +0 -29
  398. package/dist/functions/system.d.ts.map +0 -1
  399. package/dist/functions/tests.d.ts +0 -28
  400. package/dist/functions/tests.d.ts.map +0 -1
  401. package/dist/functions/timers.d.ts +0 -139
  402. package/dist/functions/timers.d.ts.map +0 -1
  403. package/dist/functions/triggers.d.ts +0 -203
  404. package/dist/functions/triggers.d.ts.map +0 -1
  405. package/dist/functions/types.d.ts +0 -151
  406. package/dist/functions/types.d.ts.map +0 -1
  407. package/dist/src/types/types.d.ts +0 -364
  408. package/dist/src/types/types.d.ts.map +0 -1
  409. package/index.html +0 -13
  410. package/netlify.toml +0 -36
  411. package/package-project.json +0 -64
  412. package/scripts/app-install-cli.ts +0 -286
  413. package/scripts/assemble-frontend.sh +0 -79
  414. package/scripts/assemble-functions.sh +0 -62
  415. package/scripts/assemble.sh +0 -41
  416. package/scripts/boundary-check.sh +0 -106
  417. package/scripts/build-manifest.sh +0 -80
  418. package/scripts/check-core-integrity.sh +0 -82
  419. package/scripts/ingest-chunks.cjs +0 -202
  420. package/scripts/kb-chunk-parser.cjs +0 -312
  421. package/scripts/kb-chunk-parser.ts +0 -330
  422. package/scripts/load-test-app-install.ts +0 -484
  423. package/scripts/netlify-dev-wrapper.sh +0 -22
  424. package/scripts/verify-integrity.sh +0 -69
  425. package/vitest.config.ts +0 -45
@@ -0,0 +1,163 @@
1
+ export interface SpineConfig {
2
+ database: {
3
+ url: string
4
+ poolSize?: number
5
+ }
6
+ auth: {
7
+ providers: string[]
8
+ sessionTimeout: string
9
+ }
10
+ apps: {
11
+ registry: string
12
+ autoUpdate: boolean
13
+ }
14
+ ai?: {
15
+ provider: string
16
+ model: string
17
+ }
18
+ }
19
+
20
+ export interface SpineClient {
21
+ config: SpineConfig
22
+ supabase: any
23
+ auth: AuthClient
24
+ apps: AppsClient
25
+ }
26
+
27
+ export interface AuthClient {
28
+ signIn: (credentials: SignInCredentials) => Promise<AuthResult>
29
+ signUp: (credentials: SignUpCredentials) => Promise<AuthResult>
30
+ signOut: () => Promise<void>
31
+ getCurrentUser: () => Promise<User | null>
32
+ onAuthStateChange: (callback: (user: User | null) => void) => () => void
33
+ }
34
+
35
+ export interface AppsClient {
36
+ list: (filters?: AppFilters) => Promise<App[]>
37
+ install: (appSlug: string, options?: InstallOptions) => Promise<void>
38
+ uninstall: (appSlug: string) => Promise<void>
39
+ update: (appSlug: string) => Promise<void>
40
+ }
41
+
42
+ export interface User {
43
+ id: string
44
+ email: string
45
+ name?: string
46
+ avatar_url?: string
47
+ role?: string
48
+ account_id: string
49
+ created_at: string
50
+ updated_at: string
51
+ }
52
+
53
+ export interface Account {
54
+ id: string
55
+ name: string
56
+ slug: string
57
+ type: 'tenant' | 'organization' | 'individual'
58
+ owner_account_id?: string
59
+ is_active: boolean
60
+ created_at: string
61
+ updated_at: string
62
+ }
63
+
64
+ export interface App {
65
+ id: string
66
+ slug: string
67
+ name: string
68
+ description: string
69
+ version: string
70
+ app_type: string
71
+ source: string
72
+ owner_account_id?: string
73
+ is_active: boolean
74
+ is_system: boolean
75
+ min_role?: string
76
+ config: Record<string, any>
77
+ nav_items: NavItem[]
78
+ route_prefix?: string
79
+ renderer: string
80
+ created_at: string
81
+ }
82
+
83
+ export interface NavItem {
84
+ title: string
85
+ path: string
86
+ icon: string
87
+ order: number
88
+ children?: NavItem[]
89
+ }
90
+
91
+ export interface SignInCredentials {
92
+ email: string
93
+ password: string
94
+ }
95
+
96
+ export interface SignUpCredentials {
97
+ email: string
98
+ password: string
99
+ name?: string
100
+ }
101
+
102
+ export interface AuthResult {
103
+ user: User
104
+ session: any
105
+ }
106
+
107
+ export interface AppFilters {
108
+ account_id?: string
109
+ include_system?: boolean
110
+ include_inactive?: boolean
111
+ app_type?: string
112
+ }
113
+
114
+ export interface InstallOptions {
115
+ account_id?: string
116
+ config?: Record<string, any>
117
+ }
118
+
119
+ export interface Permission {
120
+ action: string
121
+ resource: string
122
+ conditions?: Record<string, any>
123
+ }
124
+
125
+ export interface Role {
126
+ id: string
127
+ slug: string
128
+ name: string
129
+ description: string
130
+ permissions: Permission[]
131
+ }
132
+
133
+ export interface Item {
134
+ id: string
135
+ type_id: string
136
+ account_id: string
137
+ title: string
138
+ content: any
139
+ status: string
140
+ created_at: string
141
+ updated_at: string
142
+ }
143
+
144
+ export interface Thread {
145
+ id: string
146
+ target_type: string
147
+ target_id: string
148
+ title: string
149
+ visibility: string
150
+ status: string
151
+ created_at: string
152
+ updated_at: string
153
+ }
154
+
155
+ export interface Message {
156
+ id: string
157
+ thread_id: string
158
+ direction: 'in' | 'out'
159
+ content: any
160
+ sequence: number
161
+ visibility: string
162
+ created_at: string
163
+ }
@@ -0,0 +1,88 @@
1
+ interface ApiFetchOptions {
2
+ method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'
3
+ headers?: Record<string, string>
4
+ body?: any
5
+ signal?: AbortSignal
6
+ }
7
+
8
+ interface ApiResponse<T = any> {
9
+ data: T | null
10
+ error: string | null
11
+ meta?: {
12
+ requestId: string
13
+ duration: number
14
+ }
15
+ }
16
+
17
+ export async function apiFetch<T = any>(
18
+ path: string,
19
+ options: ApiFetchOptions = {}
20
+ ): Promise<ApiResponse<T>> {
21
+ const startTime = Date.now()
22
+ const requestId = `req-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`
23
+
24
+ const defaultHeaders: Record<string, string> = {
25
+ 'Content-Type': 'application/json',
26
+ 'X-Request-ID': requestId
27
+ }
28
+
29
+ const headers = { ...defaultHeaders, ...options.headers }
30
+
31
+ try {
32
+ const response = await fetch(path, {
33
+ method: options.method || 'GET',
34
+ headers,
35
+ body: options.body ? JSON.stringify(options.body) : undefined,
36
+ signal: options.signal
37
+ })
38
+
39
+ const duration = Date.now() - startTime
40
+
41
+ if (!response.ok) {
42
+ const errorText = await response.text()
43
+ return {
44
+ data: null,
45
+ error: `HTTP ${response.status}: ${errorText}`,
46
+ meta: { requestId, duration }
47
+ }
48
+ }
49
+
50
+ const contentType = response.headers.get('content-type')
51
+ let data: T | null = null
52
+
53
+ if (contentType?.includes('application/json')) {
54
+ data = await response.json()
55
+ } else if (contentType?.includes('text/')) {
56
+ data = (await response.text()) as unknown as T
57
+ } else {
58
+ data = (await response.blob()) as unknown as T
59
+ }
60
+
61
+ return {
62
+ data,
63
+ error: null,
64
+ meta: { requestId, duration }
65
+ }
66
+ } catch (error) {
67
+ const duration = Date.now() - startTime
68
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error'
69
+
70
+ return {
71
+ data: null,
72
+ error: errorMessage,
73
+ meta: { requestId, duration }
74
+ }
75
+ }
76
+ }
77
+
78
+ export function createApiError(message: string, code?: string): Error {
79
+ const error = new Error(message)
80
+ if (code) {
81
+ (error as any).code = code
82
+ }
83
+ return error
84
+ }
85
+
86
+ export function isApiError(error: any): error is Error & { code?: string } {
87
+ return error instanceof Error && 'code' in error
88
+ }
@@ -0,0 +1,146 @@
1
+ import { createClient } from '@supabase/supabase-js'
2
+ import { SpineClient, SpineConfig, AuthClient, AppsClient } from '../types'
3
+
4
+ export function createSpineClient(config: SpineConfig): SpineClient {
5
+ const supabase = createClient(config.database.url, config.database.url.replace('/rest/v1', '/auth/v1'))
6
+
7
+ const authClient: AuthClient = {
8
+ signIn: async (credentials) => {
9
+ const { data, error } = await supabase.auth.signInWithPassword({
10
+ email: credentials.email,
11
+ password: credentials.password
12
+ })
13
+
14
+ if (error) throw error
15
+
16
+ return {
17
+ user: {
18
+ id: data.user!.id,
19
+ email: data.user!.email!,
20
+ name: data.user!.user_metadata?.name,
21
+ avatar_url: data.user!.user_metadata?.avatar_url,
22
+ role: data.user!.user_metadata?.role,
23
+ account_id: data.user!.user_metadata?.account_id || data.user!.id,
24
+ created_at: data.user!.created_at,
25
+ updated_at: data.user!.updated_at || data.user!.created_at
26
+ },
27
+ session: data.session
28
+ }
29
+ },
30
+
31
+ signUp: async (credentials) => {
32
+ const { data, error } = await supabase.auth.signUp({
33
+ email: credentials.email,
34
+ password: credentials.password,
35
+ options: {
36
+ data: {
37
+ name: credentials.name
38
+ }
39
+ }
40
+ })
41
+
42
+ if (error) throw error
43
+
44
+ return {
45
+ user: {
46
+ id: data.user!.id,
47
+ email: data.user!.email!,
48
+ name: data.user!.user_metadata?.name,
49
+ avatar_url: data.user!.user_metadata?.avatar_url,
50
+ role: data.user!.user_metadata?.role,
51
+ account_id: data.user!.user_metadata?.account_id || data.user!.id,
52
+ created_at: data.user!.created_at,
53
+ updated_at: data.user!.updated_at || data.user!.created_at
54
+ },
55
+ session: data.session
56
+ }
57
+ },
58
+
59
+ signOut: async () => {
60
+ const { error } = await supabase.auth.signOut()
61
+ if (error) throw error
62
+ },
63
+
64
+ getCurrentUser: async () => {
65
+ const { data: { user } } = await supabase.auth.getUser()
66
+
67
+ if (!user) return null
68
+
69
+ return {
70
+ id: user.id,
71
+ email: user.email!,
72
+ name: user.user_metadata?.name,
73
+ avatar_url: user.user_metadata?.avatar_url,
74
+ role: user.user_metadata?.role,
75
+ account_id: user.user_metadata?.account_id || user.id,
76
+ created_at: user.created_at,
77
+ updated_at: user.updated_at || user.created_at
78
+ }
79
+ },
80
+
81
+ onAuthStateChange: (callback) => {
82
+ const { data: { subscription } } = supabase.auth.onAuthStateChange((_event, session) => {
83
+ const user = session?.user ? {
84
+ id: session.user.id,
85
+ email: session.user.email!,
86
+ name: session.user.user_metadata?.name,
87
+ avatar_url: session.user.user_metadata?.avatar_url,
88
+ role: session.user.user_metadata?.role,
89
+ account_id: session.user.user_metadata?.account_id || session.user.id,
90
+ created_at: session.user.created_at,
91
+ updated_at: session.user.updated_at || session.user.created_at
92
+ } : null
93
+
94
+ callback(user)
95
+ })
96
+
97
+ return () => subscription.unsubscribe()
98
+ }
99
+ }
100
+
101
+ const appsClient: AppsClient = {
102
+ list: async (filters) => {
103
+ const { data, error } = await supabase.rpc('get_account_apps', {
104
+ account_id: filters?.account_id,
105
+ include_system: filters?.include_system !== false,
106
+ include_inactive: filters?.include_inactive === true
107
+ })
108
+
109
+ if (error) throw error
110
+ return data || []
111
+ },
112
+
113
+ install: async (appSlug, options) => {
114
+ const { error } = await supabase.rpc('install_app', {
115
+ app_slug: appSlug,
116
+ account_id: options?.account_id,
117
+ config: options?.config || {}
118
+ })
119
+
120
+ if (error) throw error
121
+ },
122
+
123
+ uninstall: async (appSlug) => {
124
+ const { error } = await supabase.rpc('uninstall_app', {
125
+ app_slug: appSlug
126
+ })
127
+
128
+ if (error) throw error
129
+ },
130
+
131
+ update: async (appSlug) => {
132
+ const { error } = await supabase.rpc('update_app', {
133
+ app_slug: appSlug
134
+ })
135
+
136
+ if (error) throw error
137
+ }
138
+ }
139
+
140
+ return {
141
+ config,
142
+ supabase,
143
+ auth: authClient,
144
+ apps: appsClient
145
+ }
146
+ }
@@ -0,0 +1,20 @@
1
+ import { SpineConfig } from '../types'
2
+
3
+ let globalConfig: SpineConfig | null = null
4
+
5
+ export function configureSpine(config: SpineConfig): void {
6
+ globalConfig = config
7
+ }
8
+
9
+ export function getSpineConfig(): SpineConfig | null {
10
+ return globalConfig
11
+ }
12
+
13
+ export function mergeConfig(base: SpineConfig, override: Partial<SpineConfig>): SpineConfig {
14
+ return {
15
+ database: { ...base.database, ...override.database },
16
+ auth: { ...base.auth, ...override.auth },
17
+ apps: { ...base.apps, ...override.apps },
18
+ ai: base.ai && override.ai ? { ...base.ai, ...override.ai } : base.ai || override.ai
19
+ }
20
+ }
@@ -0,0 +1,3 @@
1
+ export { createSpineClient } from './client'
2
+ export { configureSpine } from './config'
3
+ export { apiFetch } from './api'
@@ -1,129 +0,0 @@
1
- # Spine v2 Frontend
2
-
3
- This is the frontend shell for Spine v2, built with React, TypeScript, and Tailwind CSS.
4
-
5
- ## Getting Started
6
-
7
- ### Prerequisites
8
-
9
- - Node.js 18+
10
- - npm or yarn
11
- - Supabase project
12
-
13
- ### Installation
14
-
15
- 1. Copy the environment file:
16
- ```bash
17
- cp .env.example .env.local
18
- ```
19
-
20
- 2. Configure your Supabase credentials in `.env.local`:
21
- ```env
22
- VITE_SUPABASE_URL=your_supabase_url
23
- VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
24
- ```
25
-
26
- 3. Install dependencies:
27
- ```bash
28
- npm install
29
- ```
30
-
31
- ### Development
32
-
33
- Start the development server:
34
- ```bash
35
- npm run dev
36
- ```
37
-
38
- The application will be available at `http://localhost:3001`.
39
-
40
- ### Build
41
-
42
- Build for production:
43
- ```bash
44
- npm run build
45
- ```
46
-
47
- ### Functions
48
-
49
- Start the Netlify functions server:
50
- ```bash
51
- npm run functions:dev
52
- ```
53
-
54
- ## Project Structure
55
-
56
- ```
57
- src/
58
- ├── components/
59
- │ ├── layout/ # Layout components (Header, Sidebar, etc.)
60
- │ └── ui/ # Reusable UI components
61
- ├── contexts/ # React contexts (Auth, etc.)
62
- ├── lib/ # Utility functions and configurations
63
- ├── pages/ # Page components
64
- │ ├── auth/ # Authentication pages
65
- │ └── admin/ # Admin pages
66
- ├── types/ # TypeScript type definitions
67
- ├── App.tsx # Main app component
68
- ├── main.tsx # App entry point
69
- └── index.css # Global styles
70
- ```
71
-
72
- ## Features
73
-
74
- - **Authentication**: Secure login/logout with Supabase
75
- - **Layout**: Responsive sidebar navigation and header
76
- - **Admin Interface**: Full admin pages for managing accounts, people, types, and apps
77
- - **Item Management**: Generic item viewing and management
78
- - **Dashboard**: Overview with statistics and recent activity
79
- - **Type Safety**: Full TypeScript support throughout
80
-
81
- ## Key Components
82
-
83
- ### Authentication
84
- - Uses Supabase Auth for secure authentication
85
- - JWT token management with automatic refresh
86
- - Role-based access control
87
-
88
- ### Layout System
89
- - Responsive sidebar navigation
90
- - Mobile-friendly with collapsible menu
91
- - User profile and logout functionality
92
-
93
- ### Admin Pages
94
- - **Accounts**: Multi-tenant account management
95
- - **People**: User management across accounts
96
- - **Types**: Item type schema management
97
- - **Apps**: Application configuration and management
98
-
99
- ### Styling
100
- - Tailwind CSS for utility-first styling
101
- - Custom CSS variables for theming
102
- - Component-based styling approach
103
-
104
- ## Environment Variables
105
-
106
- | Variable | Description | Required |
107
- |----------|-------------|----------|
108
- | `VITE_SUPABASE_URL` | Supabase project URL | Yes |
109
- | `VITE_SUPABASE_ANON_KEY` | Supabase anonymous key | Yes |
110
- | `VITE_NETLIFY_FUNCTIONS_URL` | Netlify functions URL | No |
111
-
112
- ## Scripts
113
-
114
- - `npm run dev` - Start development server
115
- - `npm run build` - Build for production
116
- - `npm run preview` - Preview production build
117
- - `npm run functions:dev` - Start functions server
118
-
119
- ## Contributing
120
-
121
- 1. Follow the existing code style
122
- 2. Use TypeScript for all new code
123
- 3. Add proper error handling
124
- 4. Include loading states where appropriate
125
- 5. Test responsive design
126
-
127
- ## License
128
-
129
- This project is part of the Spine v2 framework.
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env node
2
- // Thin shebang wrapper — invokes the TypeScript CLI via tsx.
3
- // This file is the npm bin entry point for spine-framework.
4
- const { execFileSync } = require('child_process')
5
- const { resolve } = require('path')
6
-
7
- const tsx = resolve(__dirname, '../../node_modules/.bin/tsx')
8
- const entry = resolve(__dirname, 'index.ts')
9
-
10
- try {
11
- execFileSync(tsx, [entry, ...process.argv.slice(2)], { stdio: 'inherit' })
12
- } catch (e) {
13
- process.exit(e.status ?? 1)
14
- }