spine-framework 0.3.145 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (451) hide show
  1. package/.env.example +76 -0
  2. package/.framework/.spine-manifest.json +19 -0
  3. package/.framework/cli/commands/agents.ts +61 -33
  4. package/.framework/cli/commands/auth.ts +60 -28
  5. package/.framework/cli/commands/create-app.ts +212 -80
  6. package/.framework/cli/commands/dev.ts +184 -68
  7. package/.framework/cli/commands/doctor.ts +324 -152
  8. package/.framework/cli/commands/generate.ts +119 -68
  9. package/.framework/cli/commands/init.ts +141 -242
  10. package/.framework/cli/commands/install-app.ts +1336 -314
  11. package/.framework/cli/commands/items.ts +31 -29
  12. package/.framework/cli/commands/migrate.ts +299 -156
  13. package/.framework/cli/commands/migrations.ts +62 -30
  14. package/.framework/cli/commands/pipelines.ts +31 -29
  15. package/.framework/cli/commands/status.ts +105 -45
  16. package/.framework/cli/commands/system.ts +47 -42
  17. package/.framework/cli/commands/test.ts +161 -102
  18. package/.framework/cli/commands/upgrade.ts +260 -0
  19. package/.framework/cli/commands/validate-app.ts +517 -161
  20. package/.framework/cli/context.ts +117 -85
  21. package/.framework/cli/env-loader.ts +74 -43
  22. package/.framework/cli/index.ts +70 -46
  23. package/.framework/cli/lib/project-files.ts +404 -0
  24. package/.framework/docs/guides/testing-guide.md +1 -1
  25. package/.framework/docs/runtime-types.md +72 -72
  26. package/.framework/functions/_shared/access.ts +84 -0
  27. package/.framework/functions/_shared/agent-runner.ts +5051 -1026
  28. package/.framework/functions/_shared/app-manifest.ts +214 -94
  29. package/.framework/functions/_shared/ast.ts +214 -0
  30. package/.framework/functions/_shared/audit.ts +91 -55
  31. package/.framework/functions/_shared/cil.ts +368 -127
  32. package/.framework/functions/_shared/db.ts +337 -68
  33. package/.framework/functions/_shared/funnel.ts +228 -0
  34. package/.framework/functions/_shared/geo.ts +105 -0
  35. package/.framework/functions/_shared/hash-api-key.ts +94 -17
  36. package/.framework/functions/_shared/index.ts +22 -224
  37. package/.framework/functions/_shared/kb.ts +832 -58
  38. package/.framework/functions/_shared/llm.ts +118 -18
  39. package/.framework/functions/_shared/logging.ts +317 -19
  40. package/.framework/functions/_shared/middleware.ts +701 -131
  41. package/.framework/functions/_shared/notify.ts +70 -0
  42. package/.framework/functions/_shared/outcomes.ts +34 -19
  43. package/.framework/functions/_shared/permissions.ts +501 -315
  44. package/.framework/functions/_shared/pipeline-runner.ts +704 -155
  45. package/.framework/functions/_shared/principal.ts +436 -263
  46. package/.framework/functions/_shared/rate-limit.ts +233 -0
  47. package/.framework/functions/_shared/resolve-credentials.ts +86 -19
  48. package/.framework/functions/_shared/resolve-ids.ts +203 -139
  49. package/.framework/functions/_shared/retry-deliveries.ts +51 -16
  50. package/.framework/functions/_shared/schema-utils.ts +602 -521
  51. package/.framework/functions/_shared/security.ts +345 -0
  52. package/.framework/functions/_shared/testing.ts +197 -172
  53. package/.framework/functions/_shared/tracing.ts +351 -21
  54. package/.framework/functions/_shared/trigger-engine.ts +425 -136
  55. package/.framework/functions/_shared/webhook-registration.ts +71 -70
  56. package/.framework/functions/_shared/webhook-registry.ts +126 -83
  57. package/.framework/functions/account-nodes.ts +30 -30
  58. package/.framework/functions/adapters/generic-webhook-inbound.ts +49 -16
  59. package/.framework/functions/adapters/generic-webhook-outbound.ts +17 -17
  60. package/.framework/functions/adapters/openai-outbound.ts +15 -16
  61. package/.framework/functions/admin-data.ts +596 -173
  62. package/.framework/functions/admin-funnel.ts +64 -60
  63. package/.framework/functions/admin-install-funnel.ts +84 -66
  64. package/.framework/functions/admin-signals.ts +69 -51
  65. package/.framework/functions/ai-agents.ts +431 -106
  66. package/.framework/functions/ai-interactions.ts +186 -112
  67. package/.framework/functions/api-keys.ts +107 -107
  68. package/.framework/functions/apps.ts +154 -136
  69. package/.framework/functions/auth.ts +83 -65
  70. package/.framework/functions/cil-agent-ingest.ts +189 -232
  71. package/.framework/functions/cil-agent.ts +433 -177
  72. package/.framework/functions/cil-callmap.ts +642 -430
  73. package/.framework/functions/cil-config.ts +139 -135
  74. package/.framework/functions/cil-context.ts +214 -127
  75. package/.framework/functions/cil-doc.ts +587 -458
  76. package/.framework/functions/cil-embeddings.ts +453 -364
  77. package/.framework/functions/cil-graph.ts +427 -142
  78. package/.framework/functions/cil-ingest.ts +1418 -1154
  79. package/.framework/functions/cil-pipeline.ts +276 -21
  80. package/.framework/functions/cil-project.ts +659 -132
  81. package/.framework/functions/cil-validate.ts +198 -164
  82. package/.framework/functions/debug-auth.ts +57 -55
  83. package/.framework/functions/deliveries.ts +80 -21
  84. package/.framework/functions/embeddings.ts +1023 -318
  85. package/.framework/functions/eval-harness.ts +146 -108
  86. package/.framework/functions/integration-outbound.ts +205 -75
  87. package/.framework/functions/integration-routes.ts +128 -23
  88. package/.framework/functions/integrations.ts +125 -100
  89. package/.framework/functions/invites.ts +1095 -460
  90. package/.framework/functions/item-progress.ts +158 -102
  91. package/.framework/functions/kb.ts +34 -10
  92. package/.framework/functions/logs.ts +133 -133
  93. package/.framework/functions/observability.ts +152 -122
  94. package/.framework/functions/pipeline-executions.ts +147 -132
  95. package/.framework/functions/pipelines.ts +134 -119
  96. package/.framework/functions/prompt-configs.ts +96 -80
  97. package/.framework/functions/roles.ts +112 -82
  98. package/.framework/functions/security.ts +450 -0
  99. package/.framework/functions/system-cron.ts +117 -80
  100. package/.framework/functions/system.ts +158 -98
  101. package/.framework/functions/tests.ts +29 -29
  102. package/.framework/functions/timers.ts +94 -95
  103. package/.framework/functions/trigger-scheduler.ts +10 -0
  104. package/.framework/functions/triggers.ts +179 -149
  105. package/.framework/functions/types.ts +137 -125
  106. package/.framework/mcp/index.ts +133 -0
  107. package/.framework/mcp/load-env.ts +60 -0
  108. package/.framework/mcp/shared/app-manifest.ts +275 -0
  109. package/.framework/mcp/shared/db.ts +477 -0
  110. package/.framework/mcp/shared/kb.ts +118 -0
  111. package/.framework/mcp/tools/architect.ts +431 -0
  112. package/.framework/mcp/tools/cil/context.ts +345 -0
  113. package/.framework/mcp/tools/cil/graph.ts +242 -0
  114. package/.framework/mcp/tools/cil/ingest.ts +1217 -0
  115. package/.framework/mcp/tools/cil/pipeline-orchestrator.ts +693 -0
  116. package/.framework/mcp/tools/cil/pipeline.ts +767 -0
  117. package/.framework/mcp/tools/cil/project.ts +791 -0
  118. package/.framework/mcp/tools/cil/retrieval.ts +336 -0
  119. package/.framework/mcp/tools/cil/search-core.ts +454 -0
  120. package/.framework/mcp/tools/cil/search.ts +97 -0
  121. package/.framework/mcp/tools/cil/suggest.ts +186 -0
  122. package/.framework/mcp/tools/cil/validate.ts +1369 -0
  123. package/.framework/mcp/tools/kb/delete.ts +139 -0
  124. package/.framework/mcp/tools/kb/index.ts +52 -0
  125. package/.framework/mcp/tools/kb/ingest.ts +84 -0
  126. package/.framework/mcp/tools/kb/list-types.ts +102 -0
  127. package/.framework/mcp/tools/kb/publish.ts +100 -0
  128. package/.framework/mcp/tools/kb/reindex.ts +86 -0
  129. package/.framework/mcp/tools/kb/revoke.ts +85 -0
  130. package/.framework/mcp/tools/kb/search.ts +101 -0
  131. package/.framework/mcp/tools/kb/upsert.ts +125 -0
  132. package/.framework/mcp/tools/observability.ts +510 -0
  133. package/.framework/migrations/001_core_schema.sql +15 -0
  134. package/.framework/migrations/002_core_rls_and_functions.sql +15 -0
  135. package/.framework/migrations/003_core_system_data.sql +16 -1
  136. package/.framework/migrations/004_core_rpc_and_broker.sql +17 -1
  137. package/.framework/migrations/005_core_observability.sql +17 -1
  138. package/.framework/migrations/006_security_hardening_rls.sql +15 -0
  139. package/.framework/migrations/007_kb_article_list.sql +17 -1
  140. package/.framework/migrations/008_items_target.sql +15 -0
  141. package/.framework/migrations/009_roles_slug_unique.sql +15 -0
  142. package/.framework/migrations/010_auth_user_trigger.sql +15 -0
  143. package/.framework/migrations/011_spine_system_account.sql +16 -0
  144. package/.framework/migrations/012_service_role_grants.sql +16 -0
  145. package/.framework/migrations/013_get_account_apps_role_filter.sql +15 -0
  146. package/.framework/migrations/014_apps_required_roles.sql +16 -0
  147. package/.framework/migrations/015_types_kind_slug_unique.sql +15 -0
  148. package/.framework/migrations/016_cil_types.sql +281 -0
  149. package/.framework/migrations/017_cil_stable_ids.sql +37 -0
  150. package/.framework/migrations/018_runtime_tables.sql +129 -0
  151. package/.framework/migrations/019_agent_prompt_columns.sql +56 -0
  152. package/.framework/migrations/020_schema_reconciliation.sql +67 -0
  153. package/.framework/migrations/021_kb_embedding_lifecycle.sql +31 -0
  154. package/.framework/migrations/032_cil_status_migration.sql +73 -0
  155. package/.framework/migrations/033_cil_versioning.sql +73 -0
  156. package/.framework/migrations/034_match_embeddings_knn.sql +115 -0
  157. package/.framework/migrations/035_rate_limits.sql +55 -0
  158. package/.framework/migrations/036_demo_record_flags.sql +72 -0
  159. package/.framework/migrations/037_kb_types_canonical.sql +244 -0
  160. package/.framework/migrations/038_drop_demo_record_flags.sql +38 -0
  161. package/.framework/migrations/042_registration_hierarchy.sql +309 -0
  162. package/.framework/migrations/043_policy_actor_cleanup.sql +39 -0
  163. package/.framework/migrations/044_match_embeddings_filtered_knn.sql +151 -0
  164. package/.framework/migrations/045_security_critical_rls.sql +139 -0
  165. package/.framework/migrations/046_security_missing_rls.sql +79 -0
  166. package/.framework/migrations/047_people_updated_by.sql +27 -0
  167. package/.framework/migrations/048_watcher_last_seen_at.sql +24 -0
  168. package/.framework/migrations/049_security_blocklist.sql +148 -0
  169. package/.framework/migrations/050_notifications.sql +49 -0
  170. package/.framework/migrations/051_message_agent_fields.sql +74 -0
  171. package/.framework/migrations/052_registration_security.sql +421 -0
  172. package/.framework/migrations/053_builtin_action_seeds.sql +66 -0
  173. package/.framework/migrations/054_kb_ingest_lease.sql +157 -0
  174. package/.framework/migrations/055_type_id_drift_reconciliation.sql +33 -0
  175. package/.framework/migrations/056_slug_column_reconciliation.sql +38 -0
  176. package/.framework/migrations/057_pipelines_slug_identity.sql +14 -0
  177. package/.framework/migrations/058_account_data_field_declarations.sql +53 -0
  178. package/.framework/migrations/059_registration_placement_fixes.sql +269 -0
  179. package/.framework/migrations/060_account_person_record_permissions.sql +38 -0
  180. package/.framework/migrations/061_fk_dedup.sql +32 -0
  181. package/.framework/public/spine-logo.svg +10 -3
  182. package/.framework/scripts/app-install-cli.ts +190 -93
  183. package/.framework/scripts/assemble-frontend.sh +127 -44
  184. package/.framework/scripts/assemble-functions.sh +128 -30
  185. package/.framework/scripts/boundary-check.sh +6 -2
  186. package/.framework/scripts/build-manifest.sh +24 -68
  187. package/.framework/scripts/check-core-integrity.sh +15 -76
  188. package/.framework/scripts/checksum-manifest.mts +343 -0
  189. package/.framework/scripts/cil-migrate-markers.ts +403 -0
  190. package/.framework/scripts/fix-cil-markers.mjs +176 -0
  191. package/.framework/scripts/verify-integrity.sh +21 -57
  192. package/.framework/scripts/verify-manifest.mts +305 -0
  193. package/.framework/seeds/types/funnel_signal_use.json +74 -21
  194. package/.framework/seeds/types/spine_instance.json +73 -21
  195. package/.framework/src/App.tsx +118 -72
  196. package/.framework/src/apps/admin/index.tsx +855 -58
  197. package/.framework/src/components/AppWrapper.tsx +43 -45
  198. package/.framework/src/components/CustomAppLoader.tsx +160 -116
  199. package/.framework/src/components/admin/AdminListPage.tsx +46 -44
  200. package/.framework/src/components/admin/AdminSidebar.tsx +57 -47
  201. package/.framework/src/components/admin/AdminStatsCard.tsx +46 -44
  202. package/.framework/src/components/admin/PageInstructions.tsx +98 -2
  203. package/.framework/src/components/admin/SortableTableHeader.tsx +44 -45
  204. package/.framework/src/components/app-shell/GenericAppShell.tsx +64 -65
  205. package/.framework/src/components/app-shell/GenericDetailPage.tsx +44 -47
  206. package/.framework/src/components/app-shell/GenericListPage.tsx +45 -49
  207. package/.framework/src/components/app-sidebar.tsx +42 -45
  208. package/.framework/src/components/auth/ProtectedRoute.tsx +48 -41
  209. package/.framework/src/components/auth/TurnstileWidget.tsx +27 -0
  210. package/.framework/src/components/kb/KBArticleEditor.tsx +231 -22
  211. package/.framework/src/components/kb/KBArticleList.tsx +251 -10
  212. package/.framework/src/components/layout/AppShell.tsx +51 -45
  213. package/.framework/src/components/layout/Header.tsx +42 -43
  214. package/.framework/src/components/layout/Layout.tsx +46 -46
  215. package/.framework/src/components/layout/Sidebar.tsx +196 -96
  216. package/.framework/src/components/runtime/DataDetailHeader.tsx +55 -30
  217. package/.framework/src/components/runtime/DataDetailPage.tsx +31 -269
  218. package/.framework/src/components/runtime/DataFilters.tsx +49 -74
  219. package/.framework/src/components/runtime/DataHeader.tsx +53 -32
  220. package/.framework/src/components/runtime/DataListPage.tsx +51 -155
  221. package/.framework/src/components/runtime/DataStats.tsx +66 -44
  222. package/.framework/src/components/runtime/DataTable.tsx +49 -149
  223. package/.framework/src/components/runtime/SchemaDetailForm.tsx +45 -75
  224. package/.framework/src/components/runtime/index.ts +119 -16
  225. package/.framework/src/components/search-form.tsx +46 -29
  226. package/.framework/src/components/shared/AgentView.tsx +65 -48
  227. package/.framework/src/components/shared/FieldRenderer.tsx +144 -50
  228. package/.framework/src/components/shared/InviteManager.tsx +207 -97
  229. package/.framework/src/components/shared/MemberList.tsx +97 -0
  230. package/.framework/src/components/shared/SchemaFields.tsx +107 -86
  231. package/.framework/src/components/ui/DataTable.tsx +80 -68
  232. package/.framework/src/components/ui/Form.tsx +157 -146
  233. package/.framework/src/components/ui/ItemCard.tsx +74 -67
  234. package/.framework/src/components/ui/ItemListView.tsx +73 -68
  235. package/.framework/src/components/ui/LoadingSpinner.tsx +43 -48
  236. package/.framework/src/components/ui/Modal.tsx +78 -68
  237. package/.framework/src/components/ui/RichTextEditor.tsx +89 -69
  238. package/.framework/src/components/ui/accordion.tsx +85 -86
  239. package/.framework/src/components/ui/alert-dialog.tsx +197 -184
  240. package/.framework/src/components/ui/alert.tsx +105 -94
  241. package/.framework/src/components/ui/aspect-ratio.tsx +57 -43
  242. package/.framework/src/components/ui/avatar.tsx +122 -107
  243. package/.framework/src/components/ui/badge.tsx +60 -55
  244. package/.framework/src/components/ui/breadcrumb.tsx +127 -128
  245. package/.framework/src/components/ui/button-group.tsx +86 -72
  246. package/.framework/src/components/ui/button.tsx +71 -50
  247. package/.framework/src/components/ui/calendar.tsx +72 -57
  248. package/.framework/src/components/ui/card.tsx +136 -129
  249. package/.framework/src/components/ui/carousel.tsx +226 -107
  250. package/.framework/src/components/ui/chart.tsx +252 -147
  251. package/.framework/src/components/ui/checkbox.tsx +43 -44
  252. package/.framework/src/components/ui/collapsible.tsx +86 -71
  253. package/.framework/src/components/ui/combobox.tsx +282 -249
  254. package/.framework/src/components/ui/command.tsx +158 -146
  255. package/.framework/src/components/ui/context-menu.tsx +239 -240
  256. package/.framework/src/components/ui/dialog.tsx +174 -157
  257. package/.framework/src/components/ui/direction.tsx +72 -56
  258. package/.framework/src/components/ui/drawer.tsx +168 -169
  259. package/.framework/src/components/ui/dropdown-menu.tsx +254 -223
  260. package/.framework/src/components/ui/empty.tsx +131 -120
  261. package/.framework/src/components/ui/field.tsx +205 -173
  262. package/.framework/src/components/ui/hover-card.tsx +71 -72
  263. package/.framework/src/components/ui/input-group.tsx +148 -133
  264. package/.framework/src/components/ui/input-otp.tsx +99 -86
  265. package/.framework/src/components/ui/input.tsx +43 -41
  266. package/.framework/src/components/ui/item.tsx +207 -185
  267. package/.framework/src/components/ui/kbd.tsx +57 -56
  268. package/.framework/src/components/ui/label.tsx +45 -41
  269. package/.framework/src/components/ui/menubar.tsx +268 -236
  270. package/.framework/src/components/ui/native-select.tsx +85 -86
  271. package/.framework/src/components/ui/navigation-menu.tsx +166 -156
  272. package/.framework/src/components/ui/pagination.tsx +131 -141
  273. package/.framework/src/components/ui/popover.tsx +125 -128
  274. package/.framework/src/components/ui/progress.tsx +47 -44
  275. package/.framework/src/components/ui/radio-group.tsx +60 -55
  276. package/.framework/src/components/ui/resizable.tsx +85 -72
  277. package/.framework/src/components/ui/scroll-area.tsx +57 -58
  278. package/.framework/src/components/ui/select.tsx +182 -169
  279. package/.framework/src/components/ui/separator.tsx +42 -43
  280. package/.framework/src/components/ui/sheet.tsx +170 -159
  281. package/.framework/src/components/ui/sidebar.tsx +395 -398
  282. package/.framework/src/components/ui/skeleton.tsx +42 -43
  283. package/.framework/src/components/ui/slider.tsx +61 -44
  284. package/.framework/src/components/ui/sonner.tsx +44 -44
  285. package/.framework/src/components/ui/spinner.tsx +47 -42
  286. package/.framework/src/components/ui/switch.tsx +56 -42
  287. package/.framework/src/components/ui/table-primitives.tsx +272 -132
  288. package/.framework/src/components/ui/table.tsx +140 -142
  289. package/.framework/src/components/ui/tabs.tsx +110 -93
  290. package/.framework/src/components/ui/textarea.tsx +43 -44
  291. package/.framework/src/components/ui/toggle-group.tsx +87 -71
  292. package/.framework/src/components/ui/toggle.tsx +56 -56
  293. package/.framework/src/components/ui/tooltip.tsx +99 -85
  294. package/.framework/src/contexts/AppContext.tsx +166 -114
  295. package/.framework/src/contexts/AuthContext.tsx +232 -137
  296. package/.framework/src/hooks/use-mobile.ts +43 -44
  297. package/.framework/src/hooks/useApi.ts +185 -172
  298. package/.framework/src/hooks/useAppPath.ts +31 -29
  299. package/.framework/src/hooks/useApps.ts +77 -42
  300. package/.framework/src/hooks/useEntityList.ts +66 -29
  301. package/.framework/src/hooks/useEntityRecord.ts +76 -32
  302. package/.framework/src/hooks/useForm.ts +62 -30
  303. package/.framework/src/hooks/useListSchema.ts +60 -43
  304. package/.framework/src/hooks/useSchemaRecord.ts +115 -95
  305. package/.framework/src/lib/api.ts +258 -134
  306. package/.framework/src/lib/registration.ts +181 -0
  307. package/.framework/src/lib/supabase.ts +118 -81
  308. package/.framework/src/lib/utils.ts +266 -266
  309. package/.framework/src/main.tsx +43 -44
  310. package/.framework/src/pages/DashboardPage.tsx +44 -43
  311. package/.framework/src/pages/NoAppPage.tsx +50 -0
  312. package/.framework/src/pages/NotFoundPage.tsx +32 -29
  313. package/.framework/src/pages/SetupPage.tsx +34 -33
  314. package/.framework/src/pages/admin/AIAgentDetailPage.tsx +69 -58
  315. package/.framework/src/pages/admin/AIAgentsPage.tsx +43 -40
  316. package/.framework/src/pages/admin/APIKeyDetailPage.tsx +63 -55
  317. package/.framework/src/pages/admin/APIKeysPage.tsx +44 -42
  318. package/.framework/src/pages/admin/AlertsConfigPage.tsx +117 -94
  319. package/.framework/src/pages/admin/AppDetailPage.tsx +48 -42
  320. package/.framework/src/pages/admin/AppsPage.tsx +45 -42
  321. package/.framework/src/pages/admin/DeliveriesPage.tsx +49 -17
  322. package/.framework/src/pages/admin/DesignedPage.tsx +31 -30
  323. package/.framework/src/pages/admin/EmbeddingDetailPage.tsx +58 -0
  324. package/.framework/src/pages/admin/EmbeddingsPage.tsx +49 -0
  325. package/.framework/src/pages/admin/ExtendedShadcnTestPage.tsx +31 -29
  326. package/.framework/src/pages/admin/IncrementalShadcnTestPage.tsx +46 -29
  327. package/.framework/src/pages/admin/IntegratedDashboard.tsx +32 -29
  328. package/.framework/src/pages/admin/IntegrationDetailPage.tsx +68 -55
  329. package/.framework/src/pages/admin/IntegrationsPage.tsx +45 -42
  330. package/.framework/src/pages/admin/InvitesPage.tsx +60 -44
  331. package/.framework/src/pages/admin/LogsPage.tsx +87 -137
  332. package/.framework/src/pages/admin/MinimalShadcnTestPage.tsx +31 -29
  333. package/.framework/src/pages/admin/ObservabilityDashboard.tsx +150 -89
  334. package/.framework/src/pages/admin/PipelineDetailPage.tsx +77 -104
  335. package/.framework/src/pages/admin/PipelineExecutionsPage.tsx +44 -43
  336. package/.framework/src/pages/admin/PipelinesPage.tsx +59 -145
  337. package/.framework/src/pages/admin/PromptConfigDetailPage.tsx +53 -42
  338. package/.framework/src/pages/admin/PromptConfigsPage.tsx +47 -117
  339. package/.framework/src/pages/admin/ProperlyDesignedPage.tsx +31 -44
  340. package/.framework/src/pages/admin/RoleDetailPage.tsx +49 -92
  341. package/.framework/src/pages/admin/RolesPage.tsx +47 -164
  342. package/.framework/src/pages/admin/SecurityPage.tsx +310 -0
  343. package/.framework/src/pages/admin/SelectTestPage.tsx +30 -32
  344. package/.framework/src/pages/admin/ShadcnTestPage.tsx +37 -44
  345. package/.framework/src/pages/admin/SimpleDashboard.tsx +32 -44
  346. package/.framework/src/pages/admin/TestRunDetailPage.tsx +97 -44
  347. package/.framework/src/pages/admin/TestingDashboard.tsx +126 -71
  348. package/.framework/src/pages/admin/TimerDetailPage.tsx +67 -55
  349. package/.framework/src/pages/admin/TimersPage.tsx +44 -42
  350. package/.framework/src/pages/admin/TriggerDetailPage.tsx +47 -42
  351. package/.framework/src/pages/admin/TriggersPage.tsx +58 -57
  352. package/.framework/src/pages/admin/TypeDetailPage.tsx +91 -55
  353. package/.framework/src/pages/admin/TypesPage.tsx +45 -42
  354. package/.framework/src/pages/admin/cil/CILAgentPage.tsx +258 -128
  355. package/.framework/src/pages/admin/cil/CILChunkDetailPage.tsx +127 -123
  356. package/.framework/src/pages/admin/cil/CILDashboardPage.tsx +308 -235
  357. package/.framework/src/pages/admin/cil/CILFileListPage.tsx +159 -110
  358. package/.framework/src/pages/admin/cil/CILFileSelectPage.tsx +432 -0
  359. package/.framework/src/pages/admin/cil/CILGraphPage.tsx +200 -178
  360. package/.framework/src/pages/admin/cil/CILIngestionPage.tsx +286 -239
  361. package/.framework/src/pages/admin/cil/CILProjectsPage.tsx +211 -90
  362. package/.framework/src/pages/admin/cil/CILSearchPage.tsx +156 -143
  363. package/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx +379 -0
  364. package/.framework/src/pages/admin/cil/CILVersionsPage.tsx +337 -0
  365. package/.framework/src/pages/admin/cil/FlexiblePipelinePage.tsx +219 -214
  366. package/.framework/src/pages/admin/kb/KBAdminPage.tsx +64 -0
  367. package/.framework/src/pages/auth/AuthConfirmPage.tsx +135 -65
  368. package/.framework/src/pages/auth/ForgotPasswordPage.tsx +39 -31
  369. package/.framework/src/pages/auth/LoginPage.tsx +38 -32
  370. package/.framework/src/pages/auth/PendingApprovalPage.tsx +31 -28
  371. package/.framework/src/pages/auth/RegisterPage.tsx +429 -155
  372. package/.framework/src/pages/spine-framework/APIPage.tsx +33 -30
  373. package/.framework/src/pages/spine-framework/CLIPage.tsx +32 -30
  374. package/.framework/src/types/auth.ts +101 -93
  375. package/.framework/src/types/types.ts +283 -262
  376. package/.framework/templates/project.json +87 -0
  377. package/.framework/templates/spine.config.neutral.json +7 -0
  378. package/.framework/tests/api/api-surface.test.ts +381 -0
  379. package/.framework/tests/fixtures/seed.ts +427 -0
  380. package/.framework/tests/fixtures/teardown.ts +228 -0
  381. package/.framework/tests/reporter.ts +351 -0
  382. package/.framework/tests/setup.ts +135 -0
  383. package/.framework/tests/ui/ui-sweep.ts +278 -0
  384. package/.framework/tests/unit/admin-data-logger.test.ts +310 -0
  385. package/.framework/tests/unit/agent-runner.test.ts +2389 -0
  386. package/.framework/tests/unit/ai-interactions.test.ts +81 -0
  387. package/.framework/tests/unit/app-manifest.test.ts +359 -0
  388. package/.framework/tests/unit/assembly-scripts.test.ts +172 -0
  389. package/.framework/tests/unit/cil-determinism.test.ts +85 -0
  390. package/.framework/tests/unit/core-isolation.test.ts +153 -0
  391. package/.framework/tests/unit/funnel-signals.test.ts +135 -0
  392. package/.framework/tests/unit/install-app.test.ts +1759 -0
  393. package/.framework/tests/unit/invites-security.test.ts +572 -0
  394. package/.framework/tests/unit/kb-ingest-lease.test.ts +287 -0
  395. package/.framework/tests/unit/kb-search.test.ts +119 -0
  396. package/.framework/tests/unit/migrate.test.ts +509 -0
  397. package/.framework/tests/unit/notify.test.ts +136 -0
  398. package/.framework/tests/unit/permissions.test.ts +269 -0
  399. package/.framework/tests/unit/pipeline-runner.test.ts +755 -0
  400. package/.framework/tests/unit/principal-cache.test.ts +138 -0
  401. package/.framework/tests/unit/retrieval-golden.test.ts +520 -0
  402. package/.framework/tests/unit/runtime-isolation.test.ts +642 -0
  403. package/.framework/tests/unit/schema-utils.test.ts +225 -0
  404. package/.framework/tests/unit/trigger-engine.test.ts +513 -0
  405. package/.framework/tests/unit/validate-app.test.ts +527 -0
  406. package/README.md +34 -3
  407. package/bin/spine-framework.cjs +1 -0
  408. package/config/tailwind.config.cjs +7 -0
  409. package/config/tsconfig.functions.json +42 -0
  410. package/config/tsconfig.json +37 -9
  411. package/config/vite.config.ts +31 -2
  412. package/netlify.toml +31 -3
  413. package/package.json +46 -29
  414. package/scripts/assemble-frontend.sh +127 -44
  415. package/scripts/assemble-functions.sh +127 -29
  416. package/scripts/boundary-check.sh +6 -2
  417. package/scripts/build-manifest.sh +24 -68
  418. package/scripts/checksum-manifest.mts +345 -0
  419. package/scripts/dev-clean.sh +86 -0
  420. package/scripts/dev-netlify.sh +49 -0
  421. package/scripts/netlify-dev-wrapper.sh +2 -0
  422. package/scripts/verify-install.ts +358 -0
  423. package/scripts/verify-integrity.sh +21 -57
  424. package/scripts/verify-manifest.mts +305 -0
  425. package/templates/project/gitignore +45 -0
  426. package/{config → templates/project}/package-lock.json +22335 -9366
  427. package/vitest.config.ts +46 -0
  428. package/.framework/public/spine.config.json +0 -91
  429. package/config/deno.lock +0 -108
  430. package/config/tsconfig.node.tsbuildinfo +0 -1
  431. package/config/tsconfig.tsbuildinfo +0 -1
  432. package/config/vite.config.d.ts +0 -2
  433. package/custom/.devin/AGENT.md +0 -357
  434. package/custom/.devin/skills/install-app/SKILL.md +0 -39
  435. package/custom/.devin/skills/spine-workbench-discovery/SKILL.md +0 -39
  436. package/custom/.devin/skills/spine-workbench-idea/SKILL.md +0 -36
  437. package/custom/.devin/skills/spine-workbench-implement/SKILL.md +0 -46
  438. package/custom/.devin/skills/spine-workbench-initiative/SKILL.md +0 -28
  439. package/custom/.devin/skills/spine-workbench-plan/SKILL.md +0 -38
  440. package/custom/.devin/workflows/app-install.yaml +0 -83
  441. package/custom/README.md +0 -79
  442. package/docs/README.md +0 -15
  443. package/scripts/app-install-cli.ts +0 -286
  444. package/scripts/check-core-integrity.sh +0 -82
  445. package/scripts/ingest-chunks.cjs +0 -202
  446. package/scripts/kb-chunk-parser.cjs +0 -312
  447. package/scripts/kb-chunk-parser.ts +0 -330
  448. package/scripts/kb-ingest-docs.ts +0 -203
  449. package/scripts/load-test-app-install.ts +0 -484
  450. package/scripts/test-login.js +0 -33
  451. package/spine.config.json +0 -91
@@ -1,7 +1,23 @@
1
+ // CIL[BEGIN stable_id="~/.framework/functions/pipeline-executions.ts:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/functions/pipeline-executions.ts"]
2
+ // CIL[DOC-MACRO purpose="Import shared helpers and expose the pipeline-executions handler"]
3
+ // CIL[DOC-RESPONSIBILITY responsibility="Provide the module imports and top-level exported handler for pipeline execution operations"]
4
+ // CIL[DOC-CONTEXT module="pipeline-executions" layer="functions" related_files=".framework/functions/_shared/audit.ts,.framework/functions/_shared/db.ts,.framework/functions/_shared/middleware.ts,.framework/functions/_shared/principal.ts"]
5
+ // CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
6
+ // CIL[DOC-MICRO logic_summary="Imports middleware, audit, database, and principal helpers used by the pipeline execution handlers" notable_decisions="[]"]
7
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
8
+ // CIL[DOC-STABILITY stability="stable"]
9
+ // CIL[DOC-AUDIENCE audience="framework developers"]
1
10
  import { createHandler, json, error, parseBody } from './_shared/middleware'
2
11
  import { emitLog } from './_shared/audit'
3
12
  import { adminDb } from './_shared/db'
4
13
  import { isSystemAdmin } from './_shared/principal'
14
+ // CIL[DOC-VECTOR type="context" content="purpose='Import shared helpers and expose the pipeline-executions handler'; No verified external callers; imports: .framework/functions/_shared/middleware.ts,.framework/functions/_shared/audit.ts,.framework/functions/_shared/db.ts"]
15
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
16
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
17
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
18
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
19
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
20
+ // CIL[END stable_id="~/.framework/functions/pipeline-executions.ts:module_header:module_header"]
5
21
 
6
22
 
7
23
 
@@ -12,21 +28,14 @@ import { isSystemAdmin } from './_shared/principal'
12
28
 
13
29
 
14
30
 
15
- // CIL[BEGIN chunk_id="pipeline-executions_module_header_1783932909" type="module_header" identity="module_header" parent="none"]
16
- // CIL[DOC-MACRO purpose="Lists pipeline executions with filtering and joins"]
17
- // CIL[DOC-RESPONSIBILITY responsibility="Handle execution listing with filters"]
18
- // CIL[DOC-CONTEXT module="pipeline-executions" layer="api-handler" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/functions/_shared/principal.ts\",\"\\\"]"]
19
- // CIL[DOC-CONTRACT inputs="ctx, body" outputs="Array of execution records" errors="Throws on DB errors" side_effects="Database queries"]
20
- // CIL[DOC-MICRO logic_summary="Filters executions, applies pagination, returns records" notable_decisions="[]"]
21
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
31
+ // CIL[BEGIN stable_id="~/.framework/functions/pipeline-executions.ts:list:constant" type="constant" identity="list" parent="~/.framework/functions/pipeline-executions.ts"]
32
+ // CIL[DOC-MACRO purpose="List pipeline executions with optional filters and pagination"]
33
+ // CIL[DOC-RESPONSIBILITY responsibility="Return a paginated list of pipeline executions, optionally filtered by pipeline_id and status"]
34
+ // CIL[DOC-CONTEXT module="pipeline-executions" layer="functions" related_files=".framework/functions/_shared/audit.ts,.framework/functions/_shared/db.ts,.framework/functions/_shared/middleware.ts,.framework/functions/_shared/principal.ts,.framework/functions/pipeline-executions.ts"]
35
+ // CIL[DOC-CONTRACT inputs="ctx.query with optional pipeline_id, status, limit, offset" outputs="Array of pipeline execution records" errors="Account context required for non-admins; database query errors" side_effects="None"]
36
+ // CIL[DOC-MICRO logic_summary="Choose admin or account DB, build a base query, apply optional equality filters, set a range for pagination, and return data or an empty array" notable_decisions="[]"]
37
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
22
38
  // CIL[DOC-STABILITY stability="stable"]
23
- // CIL[DOC-AUDIENCE audience="developer"]
24
- // CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/RolesPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/components/ui/dialog.tsx, .framework/functions/_shared/principal.ts, \."]
25
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
26
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
27
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
28
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
29
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
30
39
  export const list = createHandler(async (ctx, body) => {
31
40
  const { pipeline_id, status, limit = 100, offset = 0 } = ctx.query || {}
32
41
  const db = isSystemAdmin(ctx.principal) ? adminDb : ctx.db
@@ -52,21 +61,21 @@ export const list = createHandler(async (ctx, body) => {
52
61
 
53
62
  return data || []
54
63
  })
55
- // CIL[END chunk_id="pipeline-executions_module_header_1783932909"]
56
- // CIL[BEGIN chunk_id="pipeline-executions_get_1783932909" type="function" identity="get" parent="none"]
57
- // CIL[DOC-MACRO purpose="Retrieves single pipeline execution by ID with joins"]
58
- // CIL[DOC-RESPONSIBILITY responsibility="Handle individual execution retrieval"]
59
- // CIL[DOC-CONTEXT module="pipeline-executions" layer="api-handler" related_files="[\".framework/functions/_shared/schema-utils.ts\",\".framework/src/components/layout/Sidebar.tsx\",\".framework/migrations/025_retype_threads_messages.sql\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"\\\"]"]
60
- // CIL[DOC-CONTRACT inputs="none" outputs="Single execution record" errors="Throws if ID missing or DB error" side_effects="Database query"]
61
- // CIL[DOC-MICRO logic_summary="Fetches execution by ID with related data" notable_decisions="[]"]
62
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
63
- // CIL[DOC-STABILITY stability="stable"]
64
- // CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 3. Direct calls: 0. Related files: .framework/functions/_shared/schema-utils.ts, .framework/src/components/layout/Sidebar.tsx, .framework/migrations/025_retype_threads_messages.sql, .framework/src/pages/admin/TypeDetailPage.tsx, \."]
65
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 3. Total affected: 4."]
66
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
67
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
64
+ // CIL[DOC-VECTOR type="context" content="purpose='List pipeline executions with optional filters and pagination'; No verified external callers; imports: .framework/functions/_shared/middleware.ts,.framework/functions/_shared/audit.ts,.framework/functions/_shared/db.ts"]
65
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
66
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
67
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
68
68
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
69
69
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
70
+ // CIL[END stable_id="~/.framework/functions/pipeline-executions.ts:list:constant"]
71
+ // CIL[BEGIN stable_id="~/.framework/functions/pipeline-executions.ts:get:constant" type="constant" identity="get" parent="~/.framework/functions/pipeline-executions.ts"]
72
+ // CIL[DOC-MACRO purpose="Retrieve a single pipeline execution by ID"]
73
+ // CIL[DOC-RESPONSIBILITY responsibility="Return the pipeline execution record matching the provided id"]
74
+ // CIL[DOC-CONTEXT module="pipeline-executions" layer="functions" related_files=".framework/functions/_shared/audit.ts,.framework/functions/_shared/db.ts,.framework/functions/_shared/middleware.ts,.framework/functions/_shared/principal.ts,.framework/functions/pipeline-executions.ts"]
75
+ // CIL[DOC-CONTRACT inputs="ctx.query.id" outputs="Single pipeline execution record" errors="Missing execution ID; database query errors" side_effects="None"]
76
+ // CIL[DOC-MICRO logic_summary="Validate the id, query the database for a single row, throw on error, and return the record" notable_decisions="[]"]
77
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
78
+ // CIL[DOC-STABILITY stability="stable"]
70
79
  export const get = createHandler(async (ctx, body) => {
71
80
  const { id } = ctx.query || {}
72
81
 
@@ -86,21 +95,21 @@ export const get = createHandler(async (ctx, body) => {
86
95
 
87
96
  return data
88
97
  })
89
- // CIL[END chunk_id="pipeline-executions_get_1783932909"]
90
- // CIL[BEGIN chunk_id="pipeline-executions_create_1783932909" type="function" identity="create" parent="none"]
91
- // CIL[DOC-MACRO purpose="Creates pipeline execution record in pending status"]
92
- // CIL[DOC-RESPONSIBILITY responsibility="Handle execution creation with audit logging"]
93
- // CIL[DOC-CONTEXT module="pipeline-executions" layer="api-handler" related_files="[\".framework/src/pages/admin/RolesPage.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\"custom/apps/cortex/functions/custom_cil-embeddings.ts\",\".framework/functions/_shared/principal.ts\",\"\\\"]"]
94
- // CIL[DOC-CONTRACT inputs="none" outputs="{execution_id: string}" errors="Throws on validation or DB errors" side_effects="Database insert, audit logging"]
95
- // CIL[DOC-MICRO logic_summary="Creates execution record, logs audit event" notable_decisions="[]"]
96
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
97
- // CIL[DOC-STABILITY stability="stable"]
98
- // CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/RolesPage.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/src/pages/admin/IntegrationsPage.tsx, custom/apps/cortex/functions/custom_cil-embeddings.ts, .framework/functions/_shared/principal.ts, \."]
99
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
100
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
101
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
98
+ // CIL[DOC-VECTOR type="context" content="purpose='Retrieve a single pipeline execution by ID'; No verified external callers; imports: .framework/functions/_shared/middleware.ts,.framework/functions/_shared/audit.ts,.framework/functions/_shared/db.ts"]
99
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
100
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
101
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
102
102
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
103
103
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
104
+ // CIL[END stable_id="~/.framework/functions/pipeline-executions.ts:get:constant"]
105
+ // CIL[BEGIN stable_id="~/.framework/functions/pipeline-executions.ts:create:constant" type="constant" identity="create" parent="~/.framework/functions/pipeline-executions.ts"]
106
+ // CIL[DOC-MACRO purpose="Create a new pending pipeline execution"]
107
+ // CIL[DOC-RESPONSIBILITY responsibility="Insert a pipeline execution record and emit an audit log"]
108
+ // CIL[DOC-CONTEXT module="pipeline-executions" layer="functions" related_files=".framework/functions/_shared/audit.ts,.framework/functions/_shared/db.ts,.framework/functions/_shared/middleware.ts,.framework/functions/_shared/principal.ts,.framework/functions/pipeline-executions.ts"]
109
+ // CIL[DOC-CONTRACT inputs="body with pipeline_id and optional trigger_data" outputs="{ execution_id }" errors="Missing pipeline ID; account context required; database insert errors" side_effects="Inserts a row into pipeline_executions; emits a pipeline_execution.created audit log"]
110
+ // CIL[DOC-MICRO logic_summary="Validate inputs and account context, insert a pending record with creator and account, select the id, emit an audit log, and return the execution_id" notable_decisions="[]"]
111
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
112
+ // CIL[DOC-STABILITY stability="stable"]
104
113
  export const create = createHandler(async (ctx, body) => {
105
114
  const { pipeline_id, trigger_data } = body
106
115
 
@@ -133,21 +142,21 @@ export const create = createHandler(async (ctx, body) => {
133
142
 
134
143
  return { execution_id: data?.id }
135
144
  })
136
- // CIL[END chunk_id="pipeline-executions_create_1783932909"]
137
- // CIL[BEGIN chunk_id="pipeline-executions_start_1783932909" type="function" identity="start" parent="none"]
138
- // CIL[DOC-MACRO purpose="Transitions execution from pending to running"]
139
- // CIL[DOC-RESPONSIBILITY responsibility="Handle execution start with timestamp"]
140
- // CIL[DOC-CONTEXT module="pipeline-executions" layer="api-handler" related_files="[\"custom/apps/cortex/functions/custom_cil-embeddings.ts\",\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
141
- // CIL[DOC-CONTRACT inputs="none" outputs="{success: true}" errors="Throws on validation or DB errors" side_effects="Database update, audit logging"]
142
- // CIL[DOC-MICRO logic_summary="Updates status to running, sets start timestamp" notable_decisions="[]"]
143
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
144
- // CIL[DOC-STABILITY stability="stable"]
145
- // CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 1. Direct calls: 0. Related files: custom/apps/cortex/functions/custom_cil-embeddings.ts, custom/apps/portal/pages/ContentPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
146
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 1. Total affected: 1."]
147
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
148
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
145
+ // CIL[DOC-VECTOR type="context" content="purpose='Create a new pending pipeline execution'; No verified external callers; imports: .framework/functions/_shared/middleware.ts,.framework/functions/_shared/audit.ts,.framework/functions/_shared/db.ts"]
146
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
147
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
148
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
149
149
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
150
150
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
151
+ // CIL[END stable_id="~/.framework/functions/pipeline-executions.ts:create:constant"]
152
+ // CIL[BEGIN stable_id="~/.framework/functions/pipeline-executions.ts:start:constant" type="constant" identity="start" parent="~/.framework/functions/pipeline-executions.ts"]
153
+ // CIL[DOC-MACRO purpose="Mark a pipeline execution as running"]
154
+ // CIL[DOC-RESPONSIBILITY responsibility="Update the execution status to running and record its start time"]
155
+ // CIL[DOC-CONTEXT module="pipeline-executions" layer="functions" related_files=".framework/functions/_shared/audit.ts,.framework/functions/_shared/db.ts,.framework/functions/_shared/middleware.ts,.framework/functions/_shared/principal.ts,.framework/functions/pipeline-executions.ts"]
156
+ // CIL[DOC-CONTRACT inputs="body.id" outputs="{ success: true }" errors="Missing execution ID; database update errors" side_effects="Updates status and started_at; emits a pipeline_execution.started audit log"]
157
+ // CIL[DOC-MICRO logic_summary="Validate the id, update the row to running status with the current ISO timestamp, emit an audit log, and return success" notable_decisions="[]"]
158
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
159
+ // CIL[DOC-STABILITY stability="stable"]
151
160
  export const start = createHandler(async (ctx, body) => {
152
161
  const { id } = body
153
162
 
@@ -171,21 +180,21 @@ export const start = createHandler(async (ctx, body) => {
171
180
 
172
181
  return { success: true }
173
182
  })
174
- // CIL[END chunk_id="pipeline-executions_start_1783932909"]
175
- // CIL[BEGIN chunk_id="pipeline-executions_complete_1783932909" type="function" identity="complete" parent="none"]
176
- // CIL[DOC-MACRO purpose="Transitions execution to completed/failed with duration"]
177
- // CIL[DOC-RESPONSIBILITY responsibility="Handle execution completion with metrics"]
178
- // CIL[DOC-CONTEXT module="pipeline-executions" layer="api-handler" related_files="[\"custom/apps/cortex/functions/custom_cil-embeddings.ts\",\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/functions/_shared/schema-utils.ts\",\"\\\"]"]
179
- // CIL[DOC-CONTRACT inputs="none" outputs="{success: true}" errors="Throws on validation or DB errors" side_effects="Database update, audit logging"]
180
- // CIL[DOC-MICRO logic_summary="Calculates duration, updates status, logs completion" notable_decisions="[]"]
181
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
182
- // CIL[DOC-STABILITY stability="stable"]
183
- // CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 1. Direct calls: 0. Related files: custom/apps/cortex/functions/custom_cil-embeddings.ts, custom/apps/portal/pages/ContentPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/functions/_shared/schema-utils.ts, \."]
184
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 1. Total affected: 1."]
185
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
186
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
183
+ // CIL[DOC-VECTOR type="context" content="purpose='Mark a pipeline execution as running'; No verified external callers; imports: .framework/functions/_shared/middleware.ts,.framework/functions/_shared/audit.ts,.framework/functions/_shared/db.ts"]
184
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
185
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
186
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
187
187
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
188
188
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
189
+ // CIL[END stable_id="~/.framework/functions/pipeline-executions.ts:start:constant"]
190
+ // CIL[BEGIN stable_id="~/.framework/functions/pipeline-executions.ts:complete:constant" type="constant" identity="complete" parent="~/.framework/functions/pipeline-executions.ts"]
191
+ // CIL[DOC-MACRO purpose="Complete or fail a pipeline execution"]
192
+ // CIL[DOC-RESPONSIBILITY responsibility="Finalize the execution status, store the result or error, and record the duration"]
193
+ // CIL[DOC-CONTEXT module="pipeline-executions" layer="functions" related_files=".framework/functions/_shared/audit.ts,.framework/functions/_shared/db.ts,.framework/functions/_shared/middleware.ts,.framework/functions/_shared/principal.ts,.framework/functions/pipeline-executions.ts"]
194
+ // CIL[DOC-CONTRACT inputs="body with id, optional output_data, optional error_message" outputs="{ success: true }" errors="Missing execution ID; database update errors" side_effects="Updates status, result, error_message, completed_at, and duration_ms; emits a pipeline_execution.completed audit log"]
195
+ // CIL[DOC-MICRO logic_summary="Validate the id, determine final status from error_message, compute duration from started_at, update the row, emit an audit log, and return success" notable_decisions="[]"]
196
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
197
+ // CIL[DOC-STABILITY stability="stable"]
189
198
  export const complete = createHandler(async (ctx, body) => {
190
199
  const { id, output_data, error_message } = body
191
200
 
@@ -228,21 +237,21 @@ export const complete = createHandler(async (ctx, body) => {
228
237
 
229
238
  return { success: true }
230
239
  })
231
- // CIL[END chunk_id="pipeline-executions_complete_1783932909"]
232
- // CIL[BEGIN chunk_id="pipeline-executions_cancel_1783932909" type="function" identity="cancel" parent="none"]
233
- // CIL[DOC-MACRO purpose="Cancels execution by setting status to cancelled"]
234
- // CIL[DOC-RESPONSIBILITY responsibility="Handle execution cancellation with audit"]
235
- // CIL[DOC-CONTEXT module="pipeline-executions" layer="api-handler" related_files="[]"]
236
- // CIL[DOC-CONTRACT inputs="none" outputs="{success: true}" errors="Throws on validation or DB errors" side_effects="Database update, audit logging"]
237
- // CIL[DOC-MICRO logic_summary="Sets status to cancelled, logs audit event" notable_decisions="[]"]
238
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
239
- // CIL[DOC-STABILITY stability="stable"]
240
- // CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 0. Direct calls: 0. Related files: none."]
241
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
242
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
243
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
240
+ // CIL[DOC-VECTOR type="context" content="purpose='Complete or fail a pipeline execution'; No verified external callers; imports: .framework/functions/_shared/middleware.ts,.framework/functions/_shared/audit.ts,.framework/functions/_shared/db.ts"]
241
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
242
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
243
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
244
244
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
245
245
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
246
+ // CIL[END stable_id="~/.framework/functions/pipeline-executions.ts:complete:constant"]
247
+ // CIL[BEGIN stable_id="~/.framework/functions/pipeline-executions.ts:cancel:constant" type="constant" identity="cancel" parent="~/.framework/functions/pipeline-executions.ts"]
248
+ // CIL[DOC-MACRO purpose="Cancel a pipeline execution"]
249
+ // CIL[DOC-RESPONSIBILITY responsibility="Mark an execution as cancelled and record the completion time"]
250
+ // CIL[DOC-CONTEXT module="pipeline-executions" layer="functions" related_files=".framework/functions/_shared/audit.ts,.framework/functions/_shared/db.ts,.framework/functions/_shared/middleware.ts,.framework/functions/_shared/principal.ts,.framework/functions/pipeline-executions.ts"]
251
+ // CIL[DOC-CONTRACT inputs="body.id" outputs="{ success: true }" errors="Missing execution ID; database update errors" side_effects="Updates status to cancelled and completed_at; emits a pipeline_execution.cancelled audit log"]
252
+ // CIL[DOC-MICRO logic_summary="Validate the id, update the row with cancelled status and current timestamp, emit an audit log, and return success" notable_decisions="[]"]
253
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
254
+ // CIL[DOC-STABILITY stability="stable"]
246
255
  export const cancel = createHandler(async (ctx, body) => {
247
256
  const { id } = body
248
257
 
@@ -266,21 +275,21 @@ export const cancel = createHandler(async (ctx, body) => {
266
275
 
267
276
  return { success: true }
268
277
  })
269
- // CIL[END chunk_id="pipeline-executions_cancel_1783932909"]
270
- // CIL[BEGIN chunk_id="pipeline-executions_getrunning_1783932909" type="function" identity="getRunning" parent="none"]
271
- // CIL[DOC-MACRO purpose="Returns currently running executions with filtering"]
272
- // CIL[DOC-RESPONSIBILITY responsibility="Handle running execution monitoring"]
273
- // CIL[DOC-CONTEXT module="pipeline-executions" layer="api-handler" related_files="[\".framework/functions/_shared/schema-utils.ts\",\".framework/src/components/ui/dialog.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/functions/_shared/principal.ts\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"\\\"]"]
274
- // CIL[DOC-CONTRACT inputs="none" outputs="Array of running executions" errors="Throws on DB errors" side_effects="Database query"]
275
- // CIL[DOC-MICRO logic_summary="Filters for running status, returns with joins" notable_decisions="[]"]
276
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
277
- // CIL[DOC-STABILITY stability="stable"]
278
- // CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 0. Direct calls: 0. Related files: .framework/functions/_shared/schema-utils.ts, .framework/src/components/ui/dialog.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/functions/_shared/principal.ts, .framework/src/pages/admin/TypeDetailPage.tsx, \."]
279
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
280
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
281
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
278
+ // CIL[DOC-VECTOR type="context" content="purpose='Cancel a pipeline execution'; No verified external callers; imports: .framework/functions/_shared/middleware.ts,.framework/functions/_shared/audit.ts,.framework/functions/_shared/db.ts"]
279
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
280
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
281
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
282
282
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
283
283
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
284
+ // CIL[END stable_id="~/.framework/functions/pipeline-executions.ts:cancel:constant"]
285
+ // CIL[BEGIN stable_id="~/.framework/functions/pipeline-executions.ts:getRunning:constant" type="constant" identity="getRunning" parent="~/.framework/functions/pipeline-executions.ts"]
286
+ // CIL[DOC-MACRO purpose="List currently running pipeline executions"]
287
+ // CIL[DOC-RESPONSIBILITY responsibility="Return running executions, optionally filtered by pipeline_id"]
288
+ // CIL[DOC-CONTEXT module="pipeline-executions" layer="functions" related_files=".framework/functions/_shared/audit.ts,.framework/functions/_shared/db.ts,.framework/functions/_shared/middleware.ts,.framework/functions/_shared/principal.ts,.framework/functions/pipeline-executions.ts"]
289
+ // CIL[DOC-CONTRACT inputs="ctx.query with optional pipeline_id" outputs="Array of running execution records" errors="Account context required for non-admins; database query errors" side_effects="None"]
290
+ // CIL[DOC-MICRO logic_summary="Choose admin or account DB, query executions with running status, apply an optional pipeline_id filter, order by started_at, and return data or an empty array" notable_decisions="[]"]
291
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
292
+ // CIL[DOC-STABILITY stability="stable"]
284
293
  export const getRunning = createHandler(async (ctx, body) => {
285
294
  const { pipeline_id } = ctx.query || {}
286
295
  const db = isSystemAdmin(ctx.principal) ? adminDb : ctx.db
@@ -303,21 +312,21 @@ export const getRunning = createHandler(async (ctx, body) => {
303
312
 
304
313
  return data || []
305
314
  })
306
- // CIL[END chunk_id="pipeline-executions_getrunning_1783932909"]
307
- // CIL[BEGIN chunk_id="pipeline-executions_getstats_1783932909" type="function" identity="getStats" parent="none"]
308
- // CIL[DOC-MACRO purpose="Returns execution statistics by status with filtering"]
309
- // CIL[DOC-RESPONSIBILITY responsibility="Handle execution analytics and monitoring"]
310
- // CIL[DOC-CONTEXT module="pipeline-executions" layer="api-handler" related_files="[\".framework/src/pages/admin/RolesPage.tsx\",\".framework/functions/_shared/schema-utils.ts\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\"custom/apps/cortex/functions/custom_cil-embeddings.ts\"]"]
311
- // CIL[DOC-CONTRACT inputs="none" outputs="Status count statistics" errors="Throws on DB errors" side_effects="Database aggregation"]
312
- // CIL[DOC-MICRO logic_summary="Counts executions by status with date filtering" notable_decisions="[]"]
313
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
314
- // CIL[DOC-STABILITY stability="stable"]
315
- // CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 1. Direct calls: 0. Related files: .framework/src/pages/admin/RolesPage.tsx, .framework/functions/_shared/schema-utils.ts, .framework/src/pages/admin/IntegrationsPage.tsx, custom/apps/cortex/functions/custom_cil-embeddings.ts."]
316
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 1. Total affected: 1."]
317
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
318
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
315
+ // CIL[DOC-VECTOR type="context" content="purpose='List currently running pipeline executions'; No verified external callers; imports: .framework/functions/_shared/middleware.ts,.framework/functions/_shared/audit.ts,.framework/functions/_shared/db.ts"]
316
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
317
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
318
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
319
319
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
320
320
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
321
+ // CIL[END stable_id="~/.framework/functions/pipeline-executions.ts:getRunning:constant"]
322
+ // CIL[BEGIN stable_id="~/.framework/functions/pipeline-executions.ts:getStats:constant" type="constant" identity="getStats" parent="~/.framework/functions/pipeline-executions.ts"]
323
+ // CIL[DOC-MACRO purpose="Aggregate pipeline execution status counts"]
324
+ // CIL[DOC-RESPONSIBILITY responsibility="Return total, completed, failed, and running execution counts"]
325
+ // CIL[DOC-CONTEXT module="pipeline-executions" layer="functions" related_files=".framework/functions/_shared/audit.ts,.framework/functions/_shared/db.ts,.framework/functions/_shared/middleware.ts,.framework/functions/_shared/principal.ts,.framework/functions/pipeline-executions.ts"]
326
+ // CIL[DOC-CONTRACT inputs="ctx.query with optional pipeline_id, date_from, date_to" outputs="{ total, completed, failed, running }" errors="Account context required for non-admins; database query errors" side_effects="None"]
327
+ // CIL[DOC-MICRO logic_summary="Select id and status, apply optional filters, count statuses client-side, and return the totals" notable_decisions="[]"]
328
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
329
+ // CIL[DOC-STABILITY stability="stable"]
321
330
  export const getStats = createHandler(async (ctx, body) => {
322
331
  const { pipeline_id, date_from, date_to } = ctx.query || {}
323
332
  const db = isSystemAdmin(ctx.principal) ? adminDb : ctx.db
@@ -346,21 +355,21 @@ export const getStats = createHandler(async (ctx, body) => {
346
355
  running: rows.filter((r: any) => r.status === 'running').length,
347
356
  }
348
357
  })
349
- // CIL[END chunk_id="pipeline-executions_getstats_1783932909"]
350
- // CIL[BEGIN chunk_id="pipeline-executions_cleanup_1783932909" type="function" identity="cleanup" parent="none"]
351
- // CIL[DOC-MACRO purpose="Deletes old execution records beyond retention period"]
352
- // CIL[DOC-RESPONSIBILITY responsibility="Handle execution data retention management"]
353
- // CIL[DOC-CONTEXT module="pipeline-executions" layer="api-handler" related_files="[]"]
354
- // CIL[DOC-CONTRACT inputs="none" outputs="{deleted_count: number}" errors="Throws on DB errors" side_effects="Database delete, audit logging"]
355
- // CIL[DOC-MICRO logic_summary="Deletes records older than retention period" notable_decisions="[]"]
356
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
357
- // CIL[DOC-STABILITY stability="stable"]
358
- // CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 0. Direct calls: 0. Related files: none."]
359
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
360
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
361
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
358
+ // CIL[DOC-VECTOR type="context" content="purpose='Aggregate pipeline execution status counts'; No verified external callers; imports: .framework/functions/_shared/middleware.ts,.framework/functions/_shared/audit.ts,.framework/functions/_shared/db.ts"]
359
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
360
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
361
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
362
362
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
363
363
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
364
+ // CIL[END stable_id="~/.framework/functions/pipeline-executions.ts:getStats:constant"]
365
+ // CIL[BEGIN stable_id="~/.framework/functions/pipeline-executions.ts:cleanup:constant" type="constant" identity="cleanup" parent="~/.framework/functions/pipeline-executions.ts"]
366
+ // CIL[DOC-MACRO purpose="Delete old pipeline execution records"]
367
+ // CIL[DOC-RESPONSIBILITY responsibility="Remove executions older than a retention window, optionally filtered by status"]
368
+ // CIL[DOC-CONTEXT module="pipeline-executions" layer="functions" related_files=".framework/functions/_shared/audit.ts,.framework/functions/_shared/db.ts,.framework/functions/_shared/middleware.ts,.framework/functions/_shared/principal.ts,.framework/functions/pipeline-executions.ts"]
369
+ // CIL[DOC-CONTRACT inputs="body with days_to_keep and optional status_filter" outputs="{ deleted_count }" errors="Database delete errors" side_effects="Deletes rows from pipeline_executions; emits a pipeline_executions.cleaned audit log"]
370
+ // CIL[DOC-MICRO logic_summary="Compute a cutoff date, delete records older than the cutoff, optionally filter by status, and return the number of deleted records" notable_decisions="[]"]
371
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
372
+ // CIL[DOC-STABILITY stability="stable"]
364
373
  export const cleanup = createHandler(async (ctx, body) => {
365
374
  const { days_to_keep = 30, status_filter } = body
366
375
 
@@ -385,21 +394,21 @@ export const cleanup = createHandler(async (ctx, body) => {
385
394
 
386
395
  return { deleted_count: (data || []).length }
387
396
  })
388
- // CIL[END chunk_id="pipeline-executions_cleanup_1783932909"]
389
- // CIL[BEGIN chunk_id="pipeline-executions_handler_1783932909" type="function" identity="handler" parent="none"]
390
- // CIL[DOC-MACRO purpose="Routes HTTP methods and actions to execution handlers"]
391
- // CIL[DOC-RESPONSIBILITY responsibility="Handle request routing for execution operations"]
392
- // CIL[DOC-CONTEXT module="pipeline-executions" layer="api-handler" related_files="[]"]
393
- // CIL[DOC-CONTRACT inputs="none" outputs="Varies by handler" errors="Throws on unsupported methods" side_effects="Delegates to appropriate handler"]
394
- // CIL[DOC-MICRO logic_summary="Routes based on action and method, delegates to handlers" notable_decisions="[]"]
395
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
396
- // CIL[DOC-STABILITY stability="stable"]
397
- // CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 0. Direct calls: 0. Related files: none."]
398
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
399
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
400
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
397
+ // CIL[DOC-VECTOR type="context" content="purpose='Delete old pipeline execution records'; No verified external callers; imports: .framework/functions/_shared/middleware.ts,.framework/functions/_shared/audit.ts,.framework/functions/_shared/db.ts"]
398
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
399
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
400
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
401
401
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
402
402
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
403
+ // CIL[END stable_id="~/.framework/functions/pipeline-executions.ts:cleanup:constant"]
404
+ // CIL[BEGIN stable_id="~/.framework/functions/pipeline-executions.ts:handler:constant" type="constant" identity="handler" parent="~/.framework/functions/pipeline-executions.ts"]
405
+ // CIL[DOC-MACRO purpose="Route pipeline execution actions based on HTTP method and query"]
406
+ // CIL[DOC-RESPONSIBILITY responsibility="Dispatch list, get, create, start, complete, cancel, running, stats, and cleanup actions"]
407
+ // CIL[DOC-CONTEXT module="pipeline-executions" layer="functions" related_files=".framework/functions/_shared/audit.ts,.framework/functions/_shared/db.ts,.framework/functions/_shared/middleware.ts,.framework/functions/_shared/principal.ts,.framework/functions/pipeline-executions.ts"]
408
+ // CIL[DOC-CONTRACT inputs="ctx.query.action, HTTP method, query id, and request body" outputs="Result of the dispatched action" errors="Invalid action or method" side_effects="May invoke other pipeline execution handlers and their audit logs"]
409
+ // CIL[DOC-MICRO logic_summary="Switch on action and HTTP method, delegate to the appropriate named handler, and throw for unsupported combinations" notable_decisions="[]"]
410
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
411
+ // CIL[DOC-STABILITY stability="stable"]
403
412
  export const handler = createHandler(async (ctx, body) => {
404
413
  const { action } = ctx.query || {}
405
414
  const method = ctx.query?.method || 'GET'
@@ -435,4 +444,10 @@ export const handler = createHandler(async (ctx, body) => {
435
444
 
436
445
  throw new Error('Invalid action or method')
437
446
  })
438
- // CIL[END chunk_id="pipeline-executions_handler_1783932909"]
447
+ // CIL[DOC-VECTOR type="context" content="purpose='Route pipeline execution actions based on HTTP method and query'; No verified external callers; imports: .framework/functions/_shared/middleware.ts,.framework/functions/_shared/audit.ts,.framework/functions/_shared/db.ts"]
448
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
449
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
450
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
451
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
452
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
453
+ // CIL[END stable_id="~/.framework/functions/pipeline-executions.ts:handler:constant"]