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
@@ -1,494 +0,0 @@
1
- /**
2
- * @module pipeline-executions
3
- * @audience core-contributor
4
- * @layer api-handler
5
- * @stability stable
6
- *
7
- * Lifecycle management API for the `pipeline_executions` table. Records
8
- * track individual pipeline runs: status progression (pending → running →
9
- * completed/failed/cancelled), timing, trigger data, and result payloads.
10
- *
11
- * **Routed by:** `GET/POST/PATCH /.netlify/functions/pipeline-executions`
12
- *
13
- * **Actions:**
14
- * | method | ?action | handler |
15
- * |--------|----------|------------|
16
- * | GET | list | list |
17
- * | GET | running | getRunning |
18
- * | GET | stats | getStats |
19
- * | POST | cleanup | cleanup |
20
- * | GET | ?id | get |
21
- * | GET | (default)| list |
22
- * | POST | — | create |
23
- * | PATCH | start | start |
24
- * | PATCH | complete | complete |
25
- * | PATCH | cancel | cancel |
26
- *
27
- * **Status FSM:** pending → running → completed | failed | cancelled
28
- *
29
- * **Authorization:** All operations use `ctx.db` (RLS-scoped to account).
30
- * Account context required.
31
- *
32
- * **Column reference:**
33
- * `id`, `pipeline_id`, `status`, `trigger_data`, `result`, `error_message`,
34
- * `started_at`, `completed_at`, `duration_ms`, `created_by`, `account_id`, `created_at`
35
- *
36
- * @seeAlso pipelines.ts (pipeline_id FK source)
37
- * @seeAlso pipeline-runner.ts (runPipeline — calls create/start/complete)
38
- * @seeAlso audit.ts (emitLog for pipeline_execution.* events)
39
- */
40
-
41
- import { createHandler, json, error, parseBody } from './_shared/middleware'
42
- import { emitLog } from './_shared/audit'
43
-
44
- const SELECT_WITH_JOINS = `
45
- *,
46
- pipeline:pipelines(id, name, trigger_type),
47
- triggered_by_person:people!pipeline_executions_created_by_fkey(id, full_name, email)
48
- `
49
-
50
- // ─── HANDLERS ─────────────────────────────────────────────────────────────────
51
-
52
- // ─── CHUNK_START: PIPELINE_EXECUTIONS_LIST ──────────────────────────────────────────────
53
- /**
54
- * @chunk-id PIPELINE_EXECUTIONS_LIST_1_0_0
55
- * @version 1.0.0
56
- * @hash 499006790777b78f0eb610474f6869e94869b5b244d1ecedbb0e216cf68bae70
57
- * @macro Pipeline Executions List Handler
58
- * @micro Lists pipeline executions with filtering and joins
59
- * @inputs ctx: CoreContext — Request context with principal and database
60
- * @inputs body: any — Request body (unused for GET)
61
- * @outputs Array of execution records with pipeline and person joins
62
- * @depends-on [createHandler, SELECT_WITH_JOINS]
63
- * @depended-by [Netlify function routing]
64
- * @side-effects [DB queries with joins]
65
- * @tags pipeline-executions, list, crud, pagination
66
- */
67
- export const list = createHandler(async (ctx, body) => {
68
- const { pipeline_id, status, limit = 100, offset = 0 } = ctx.query || {}
69
-
70
- if (!ctx.accountId) {
71
- throw new Error('Account context required')
72
- }
73
-
74
- let query = ctx.db
75
- .from('pipeline_executions')
76
- .select(SELECT_WITH_JOINS)
77
- .eq('account_id', ctx.accountId)
78
- .order('created_at', { ascending: false })
79
-
80
- if (pipeline_id) query = query.eq('pipeline_id', pipeline_id)
81
- if (status) query = query.eq('status', status)
82
-
83
- const { data, error: err } = await query.range(
84
- parseInt(offset.toString()),
85
- parseInt(offset.toString()) + parseInt(limit.toString()) - 1
86
- )
87
-
88
- if (err) throw err
89
-
90
- return data
91
- })
92
- // ─── CHUNK_END: PIPELINE_EXECUTIONS_LIST ────────────────────────────────────────────────
93
-
94
- // ─── CHUNK_START: PIPELINE_EXECUTIONS_GET ──────────────────────────────────────────────
95
- /**
96
- * @chunk-id PIPELINE_EXECUTIONS_GET_1_0_0
97
- * @version 1.0.0
98
- * @hash b148fbec727984f7623d1fa94ae20dd0550056d5c886b0994651f119dbc68521
99
- * @macro Pipeline Execution Get Handler
100
- * @micro Returns single pipeline execution record with joins
101
- * @inputs ctx: CoreContext — Request context with principal and database
102
- * @inputs body: any — Request body (unused for GET)
103
- * @outputs Execution record with pipeline and person joins
104
- * @depends-on [createHandler, SELECT_WITH_JOINS]
105
- * @depended-by [Netlify function routing]
106
- * @side-effects [DB single row query with joins]
107
- * @tags pipeline-executions, get, crud, single-record
108
- */
109
- export const get = createHandler(async (ctx, body) => {
110
- const { id } = ctx.query || {}
111
-
112
- if (!id) {
113
- throw new Error('Execution ID is required')
114
- }
115
-
116
- const { data, error: err } = await ctx.db
117
- .from('pipeline_executions')
118
- .select(SELECT_WITH_JOINS)
119
- .eq('id', id)
120
- .single()
121
-
122
- if (err) throw err
123
-
124
- return data
125
- })
126
- // ─── CHUNK_END: PIPELINE_EXECUTIONS_GET ────────────────────────────────────────────────
127
-
128
- // ─── CHUNK_START: PIPELINE_EXECUTIONS_CREATE ──────────────────────────────────────────────
129
- /**
130
- * @chunk-id PIPELINE_EXECUTIONS_CREATE_1_0_0
131
- * @version 1.0.0
132
- * @hash fb1d51a8ca0e30e0d151147edde5516c01a51f2cfcad64105ff07937aa430924
133
- * @macro Pipeline Execution Create Handler
134
- * @micro Creates execution record in pending status with audit logging
135
- * @inputs ctx: CoreContext — Request context with principal and database
136
- * @inputs body: object — pipeline_id and optional trigger_data
137
- * @outputs {execution_id: string} — ID of created execution
138
- * @depends-on [createHandler, emitLog]
139
- * @depended-by [Netlify function routing, pipeline-runner.ts]
140
- * @side-effects [DB insert, audit logging]
141
- * @tags pipeline-executions, create, crud, audit
142
- */
143
- export const create = createHandler(async (ctx, body) => {
144
- const { pipeline_id, trigger_data } = body
145
-
146
- if (!pipeline_id) {
147
- throw new Error('Pipeline ID is required')
148
- }
149
-
150
- if (!ctx.accountId) {
151
- throw new Error('Account context required')
152
- }
153
-
154
- const { data, error: err } = await ctx.db
155
- .from('pipeline_executions')
156
- .insert({
157
- pipeline_id,
158
- status: 'pending',
159
- trigger_data: trigger_data || {},
160
- created_by: ctx.principal?.id || null,
161
- account_id: ctx.accountId,
162
- })
163
- .select('id')
164
- .single()
165
-
166
- if (err) throw err
167
-
168
- await emitLog(ctx, 'pipeline_execution.created',
169
- { type: 'pipeline_execution', id: data?.id },
170
- { after: { pipeline_id } }
171
- )
172
-
173
- return { execution_id: data?.id }
174
- })
175
- // ─── CHUNK_END: PIPELINE_EXECUTIONS_CREATE ────────────────────────────────────────────────
176
-
177
- // ─── CHUNK_START: PIPELINE_EXECUTIONS_START ──────────────────────────────────────────────
178
- /**
179
- * @chunk-id PIPELINE_EXECUTIONS_START_1_0_0
180
- * @version 1.0.0
181
- * @hash 25eeada82be4fff26606dc6e784b6e0accaaebaee08514577368cdd146f39aaf
182
- * @macro Pipeline Execution Start Handler
183
- * @micro Transitions execution from pending to running with timestamp
184
- * @inputs ctx: CoreContext — Request context with principal and database
185
- * @inputs body: object — execution id to start
186
- * @outputs {success: true} — Confirmation of successful start
187
- * @depends-on [createHandler, emitLog]
188
- * @depended-by [Netlify function routing, pipeline-runner.ts]
189
- * @side-effects [DB update, audit logging]
190
- * @tags pipeline-executions, start, state-transition, audit
191
- */
192
- export const start = createHandler(async (ctx, body) => {
193
- const { id } = body
194
-
195
- if (!id) {
196
- throw new Error('Execution ID is required')
197
- }
198
-
199
- const { data, error: err } = await ctx.db
200
- .from('pipeline_executions')
201
- .update({ status: 'running', started_at: new Date().toISOString() })
202
- .eq('id', id)
203
- .select('id')
204
- .single()
205
-
206
- if (err) throw err
207
-
208
- await emitLog(ctx, 'pipeline_execution.started',
209
- { type: 'pipeline_execution', id },
210
- { after: { status: 'running' } }
211
- )
212
-
213
- return { success: true }
214
- })
215
- // ─── CHUNK_END: PIPELINE_EXECUTIONS_START ────────────────────────────────────────────────
216
-
217
- // ─── CHUNK_START: PIPELINE_EXECUTIONS_COMPLETE ──────────────────────────────────────────────
218
- /**
219
- * @chunk-id PIPELINE_EXECUTIONS_COMPLETE_1_0_0
220
- * @version 1.0.0
221
- * @hash 088db36524718ec6d8d85e1051aa5d1c4fc31fb796f284bc1526c195d4686dff
222
- * @macro Pipeline Execution Complete Handler
223
- * @micro Transitions execution to completed/failed with duration calculation
224
- * @inputs ctx: CoreContext — Request context with principal and database
225
- * @inputs body: object — id, output_data, and optional error_message
226
- * @outputs {success: true} — Confirmation of successful completion
227
- * @depends-on [createHandler, emitLog]
228
- * @depended-by [Netlify function routing, pipeline-runner.ts]
229
- * @side-effects [DB read for started_at, DB update, audit logging]
230
- * @tags pipeline-executions, complete, state-transition, audit
231
- */
232
- export const complete = createHandler(async (ctx, body) => {
233
- const { id, output_data, error_message } = body
234
-
235
- if (!id) {
236
- throw new Error('Execution ID is required')
237
- }
238
-
239
- const now = new Date().toISOString()
240
- const finalStatus = error_message ? 'failed' : 'completed'
241
-
242
- // Fetch started_at to compute duration
243
- const { data: existing } = await ctx.db
244
- .from('pipeline_executions')
245
- .select('started_at')
246
- .eq('id', id)
247
- .single()
248
-
249
- const duration_ms = existing?.started_at
250
- ? Math.round(Date.now() - new Date(existing.started_at).getTime())
251
- : null
252
-
253
- const { data, error: err } = await ctx.db
254
- .from('pipeline_executions')
255
- .update({
256
- status: finalStatus,
257
- result: output_data || {},
258
- error_message: error_message || null,
259
- completed_at: now,
260
- duration_ms,
261
- })
262
- .eq('id', id)
263
- .select('id')
264
- .single()
265
-
266
- if (err) throw err
267
-
268
- await emitLog(ctx, 'pipeline_execution.completed',
269
- { type: 'pipeline_execution', id },
270
- { after: { status: finalStatus, error_message } }
271
- )
272
-
273
- return { success: true }
274
- })
275
- // ─── CHUNK_END: PIPELINE_EXECUTIONS_COMPLETE ────────────────────────────────────────────────
276
-
277
- // ─── CHUNK_START: PIPELINE_EXECUTIONS_CANCEL ──────────────────────────────────────────────
278
- /**
279
- * @chunk-id PIPELINE_EXECUTIONS_CANCEL_1_0_0
280
- * @version 1.0.0
281
- * @hash f45e336099afeb28cb3db099fa428d8637e07876dcabf7ec85de844c25b43d97
282
- * @macro Pipeline Execution Cancel Handler
283
- * @micro Cancels execution by setting status to cancelled with timestamp
284
- * @inputs ctx: CoreContext — Request context with principal and database
285
- * @inputs body: object — execution id to cancel
286
- * @outputs {success: true} — Confirmation of successful cancellation
287
- * @depends-on [createHandler, emitLog]
288
- * @depended-by [Netlify function routing]
289
- * @side-effects [DB update, audit logging]
290
- * @tags pipeline-executions, cancel, state-transition, audit
291
- */
292
- export const cancel = createHandler(async (ctx, body) => {
293
- const { id } = body
294
-
295
- if (!id) {
296
- throw new Error('Execution ID is required')
297
- }
298
-
299
- const { data, error: err } = await ctx.db
300
- .from('pipeline_executions')
301
- .update({ status: 'cancelled', completed_at: new Date().toISOString() })
302
- .eq('id', id)
303
- .select('id')
304
- .single()
305
-
306
- if (err) throw err
307
-
308
- await emitLog(ctx, 'pipeline_execution.cancelled',
309
- { type: 'pipeline_execution', id },
310
- { after: { status: 'cancelled' } }
311
- )
312
-
313
- return { success: true }
314
- })
315
- // ─── CHUNK_END: PIPELINE_EXECUTIONS_CANCEL ────────────────────────────────────────────────
316
-
317
- // ─── CHUNK_START: PIPELINE_EXECUTIONS_GET_RUNNING ──────────────────────────────────────────────
318
- /**
319
- * @chunk-id PIPELINE_EXECUTIONS_GET_RUNNING_1_0_0
320
- * @version 1.0.0
321
- * @hash d43691d1d9063a7421eae3b32ede4bb603efa7b2faf635861f66178fde5641b6
322
- * @macro Running Pipeline Executions Handler
323
- * @micro Returns currently running executions with optional pipeline filter
324
- * @inputs ctx: CoreContext — Request context with principal and database
325
- * @inputs body: any — Request body (unused for GET)
326
- * @outputs Array of running execution records with joins
327
- * @depends-on [createHandler, SELECT_WITH_JOINS]
328
- * @depended-by [Netlify function routing]
329
- * @side-effects [DB query with joins]
330
- * @tags pipeline-executions, running, status-filter, monitoring
331
- */
332
- export const getRunning = createHandler(async (ctx, body) => {
333
- const { pipeline_id } = ctx.query || {}
334
-
335
- if (!ctx.accountId) {
336
- throw new Error('Account context required')
337
- }
338
-
339
- let query = ctx.db
340
- .from('pipeline_executions')
341
- .select(SELECT_WITH_JOINS)
342
- .eq('account_id', ctx.accountId)
343
- .eq('status', 'running')
344
- .order('started_at', { ascending: false })
345
-
346
- if (pipeline_id) query = query.eq('pipeline_id', pipeline_id)
347
-
348
- const { data, error: err } = await query
349
-
350
- if (err) throw err
351
-
352
- return data
353
- })
354
- // ─── CHUNK_END: PIPELINE_EXECUTIONS_GET_RUNNING ────────────────────────────────────────────────
355
-
356
- // ─── CHUNK_START: PIPELINE_EXECUTIONS_GET_STATS ──────────────────────────────────────────────
357
- /**
358
- * @chunk-id PIPELINE_EXECUTIONS_GET_STATS_1_0_0
359
- * @version 1.0.0
360
- * @hash f80bc6b6b830d1bafcd7d02ecac50c78cab10ceef7441dc477b3193a7b29143e
361
- * @macro Pipeline Executions Statistics Handler
362
- * @micro Returns execution counts by status with filtering options
363
- * @inputs ctx: CoreContext — Request context with principal and database
364
- * @inputs body: any — Request body (unused for GET)
365
- * @outputs {total, completed, failed, running} — Status count statistics
366
- * @depends-on [createHandler]
367
- * @depended-by [Netlify function routing]
368
- * @side-effects [DB count query, aggregation]
369
- * @tags pipeline-executions, stats, analytics, monitoring
370
- */
371
- export const getStats = createHandler(async (ctx, body) => {
372
- const { pipeline_id, date_from, date_to } = ctx.query || {}
373
-
374
- if (!ctx.accountId) {
375
- throw new Error('Account context required')
376
- }
377
-
378
- let query = ctx.db
379
- .from('pipeline_executions')
380
- .select('id, status')
381
- .eq('account_id', ctx.accountId)
382
-
383
- if (pipeline_id) query = query.eq('pipeline_id', pipeline_id)
384
- if (date_from) query = query.gte('created_at', date_from)
385
- if (date_to) query = query.lte('created_at', date_to)
386
-
387
- const { data, error: err } = await query
388
-
389
- if (err) throw err
390
-
391
- const rows = data || []
392
- return {
393
- total: rows.length,
394
- completed: rows.filter((r: any) => r.status === 'completed').length,
395
- failed: rows.filter((r: any) => r.status === 'failed').length,
396
- running: rows.filter((r: any) => r.status === 'running').length,
397
- }
398
- })
399
- // ─── CHUNK_END: PIPELINE_EXECUTIONS_GET_STATS ────────────────────────────────────────────────
400
-
401
- // ─── CHUNK_START: PIPELINE_EXECUTIONS_CLEANUP ──────────────────────────────────────────────
402
- /**
403
- * @chunk-id PIPELINE_EXECUTIONS_CLEANUP_1_0_0
404
- * @version 1.0.0
405
- * @hash 713c36d875b9e210b16504c324491c66485681a47265ab8cd228c66be58386d4
406
- * @macro Pipeline Executions Cleanup Handler
407
- * @micro Deletes old execution records beyond retention period
408
- * @inputs ctx: CoreContext — Request context with principal and database
409
- * @inputs body: object — days_to_keep (default 30) and optional status_filter
410
- * @outputs {deleted_count: number} — Number of deleted execution records
411
- * @depends-on [createHandler, emitLog]
412
- * @depended-by [Netlify function routing]
413
- * @side-effects [DB delete by date, audit logging]
414
- * @tags pipeline-executions, cleanup, retention, maintenance
415
- */
416
- export const cleanup = createHandler(async (ctx, body) => {
417
- const { days_to_keep = 30, status_filter } = body
418
-
419
- const cutoff = new Date()
420
- cutoff.setDate(cutoff.getDate() - parseInt(days_to_keep.toString()))
421
-
422
- let query = ctx.db
423
- .from('pipeline_executions')
424
- .delete()
425
- .lt('created_at', cutoff.toISOString())
426
-
427
- if (status_filter) query = query.eq('status', status_filter)
428
-
429
- const { data, error: err } = await query.select('id')
430
-
431
- if (err) throw err
432
-
433
- await emitLog(ctx, 'pipeline_executions.cleaned',
434
- { type: 'system', id: 'cleanup' },
435
- { after: { deleted_count: (data || []).length } }
436
- )
437
-
438
- return { deleted_count: (data || []).length }
439
- })
440
- // ─── CHUNK_END: PIPELINE_EXECUTIONS_CLEANUP ────────────────────────────────────────────────
441
-
442
- // ─── MAIN HANDLER ────────────────────────────────────────────────────────────
443
-
444
- // ─── CHUNK_START: PIPELINE_EXECUTIONS_HANDLER ──────────────────────────────────────────────
445
- /**
446
- * @chunk-id PIPELINE_EXECUTIONS_HANDLER_1_0_0
447
- * @version 1.0.0
448
- * @hash d1ff32ebff977774775afb91952838530a5d628211a7ab7ac5c74aca2e7c77d2
449
- * @macro Pipeline Executions Router
450
- * @micro Routes HTTP methods and actions to appropriate pipeline execution handlers
451
- * @inputs ctx: CoreContext — Request context with principal and database
452
- * @inputs body: any — Request body for POST/PATCH operations
453
- * @outputs Varies — Depends on routed handler (list/get/create/start/complete/cancel/getRunning/getStats/cleanup)
454
- * @depends-on [createHandler, list, get, create, start, complete, cancel, getRunning, getStats, cleanup]
455
- * @depended-by [Netlify function routing, pipeline-runner.ts]
456
- * @side-effects [Delegates to appropriate handler]
457
- * @tags pipeline-executions, router, crud, netlify-function
458
- */
459
- export const handler = createHandler(async (ctx, body) => {
460
- const { action } = ctx.query || {}
461
- const method = ctx.query?.method || 'GET'
462
-
463
- switch (action) {
464
- case 'list':
465
- if (method === 'GET') return await list(ctx, body)
466
- break
467
- case 'running':
468
- if (method === 'GET') return await getRunning(ctx, body)
469
- break
470
- case 'stats':
471
- if (method === 'GET') return await getStats(ctx, body)
472
- break
473
- case 'cleanup':
474
- if (method === 'POST') return await cleanup(ctx, body)
475
- break
476
- default:
477
- if (method === 'GET') {
478
- if (ctx.query?.id) {
479
- return await get(ctx, body)
480
- } else {
481
- return await list(ctx, body)
482
- }
483
- } else if (method === 'POST') {
484
- return await create(ctx, body)
485
- } else if (method === 'PATCH') {
486
- if (ctx.query?.action === 'start') return await start(ctx, body)
487
- else if (ctx.query?.action === 'complete') return await complete(ctx, body)
488
- else if (ctx.query?.action === 'cancel') return await cancel(ctx, body)
489
- }
490
- }
491
-
492
- throw new Error('Invalid action or method')
493
- })
494
- // ─── CHUNK_END: PIPELINE_EXECUTIONS_HANDLER ────────────────────────────────────────────────