spine-framework 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (385) hide show
  1. package/.framework/README.md +129 -0
  2. package/.framework/cli/bin.cjs +14 -0
  3. package/.framework/cli/commands/agents.ts +153 -0
  4. package/.framework/cli/commands/auth.ts +94 -0
  5. package/.framework/cli/commands/create-app.ts +185 -0
  6. package/.framework/cli/commands/dev.ts +295 -0
  7. package/.framework/cli/commands/doctor.ts +442 -0
  8. package/.framework/cli/commands/generate.ts +332 -0
  9. package/.framework/cli/commands/init.ts +272 -0
  10. package/.framework/cli/commands/install-app.ts +391 -0
  11. package/.framework/cli/commands/items.ts +253 -0
  12. package/.framework/cli/commands/migrations.ts +141 -0
  13. package/.framework/cli/commands/pipelines.ts +166 -0
  14. package/.framework/cli/commands/status.ts +197 -0
  15. package/.framework/cli/commands/system.ts +184 -0
  16. package/.framework/cli/commands/test.ts +227 -0
  17. package/.framework/cli/commands/uninstall-app.ts +166 -0
  18. package/.framework/cli/context.ts +268 -0
  19. package/.framework/cli/env-loader.ts +36 -0
  20. package/.framework/cli/index.ts +106 -0
  21. package/.framework/cli/welcome.cjs +45 -0
  22. package/.framework/docs/API.md +384 -0
  23. package/.framework/docs/STABILITY.md +52 -0
  24. package/.framework/docs/admin-routes.md +76 -0
  25. package/.framework/docs/api-docs-progress.md +38 -0
  26. package/.framework/docs/api-governance.md +146 -0
  27. package/.framework/docs/api-testing-results.md +212 -0
  28. package/.framework/docs/apis/admin-configs.md +567 -0
  29. package/.framework/docs/apis/admin-data.md +272 -0
  30. package/.framework/docs/apis/index.md +231 -0
  31. package/.framework/docs/apis/internal.md +295 -0
  32. package/.framework/docs/apis/runtime.md +537 -0
  33. package/.framework/docs/assembly-launch-guide.md +138 -0
  34. package/.framework/docs/audit-results.md +590 -0
  35. package/.framework/docs/authorization-model.md +170 -0
  36. package/.framework/docs/db-api-inventory.md +95 -0
  37. package/.framework/docs/examples/custom-app/README.md +77 -0
  38. package/.framework/docs/examples/custom-function/README.md +27 -0
  39. package/.framework/docs/examples/custom-function/handler.ts +48 -0
  40. package/.framework/docs/examples/custom-webhook/README.md +68 -0
  41. package/.framework/docs/gap-remediation-backlog.md +103 -0
  42. package/.framework/docs/guides/cli-guide.md +224 -0
  43. package/.framework/docs/guides/getting-started.md +103 -0
  44. package/.framework/docs/guides/import-guide.md +193 -0
  45. package/.framework/docs/guides/testing-guide.md +229 -0
  46. package/.framework/docs/permission-examples.md +326 -0
  47. package/.framework/docs/ui-adoption-verification.md +111 -0
  48. package/.framework/docs/ui-api-coverage.md +84 -0
  49. package/.framework/docs/v2-compatibility-audit.md +228 -0
  50. package/.framework/functions/.gitkeep +1 -0
  51. package/.framework/functions/_shared/agent-runner.ts +1097 -0
  52. package/.framework/functions/_shared/app-manifest.ts +184 -0
  53. package/.framework/functions/_shared/audit.ts +150 -0
  54. package/.framework/functions/_shared/db.ts +174 -0
  55. package/.framework/functions/_shared/index.ts +382 -0
  56. package/.framework/functions/_shared/middleware.ts +490 -0
  57. package/.framework/functions/_shared/permissions.ts +1325 -0
  58. package/.framework/functions/_shared/pipeline-runner.ts +731 -0
  59. package/.framework/functions/_shared/principal.ts +760 -0
  60. package/.framework/functions/_shared/schema-utils.ts +967 -0
  61. package/.framework/functions/_shared/testing.ts +258 -0
  62. package/.framework/functions/_shared/trigger-engine.ts +425 -0
  63. package/.framework/functions/_shared/webhook-registration.ts +168 -0
  64. package/.framework/functions/_shared/webhook-registry.ts +129 -0
  65. package/.framework/functions/account-nodes.ts +111 -0
  66. package/.framework/functions/admin-data.ts +606 -0
  67. package/.framework/functions/ai-agents.ts +323 -0
  68. package/.framework/functions/api-keys.ts +376 -0
  69. package/.framework/functions/apps.ts +483 -0
  70. package/.framework/functions/auth.ts +196 -0
  71. package/.framework/functions/debug-auth.ts +107 -0
  72. package/.framework/functions/embeddings.ts +556 -0
  73. package/.framework/functions/integration-routes.ts +523 -0
  74. package/.framework/functions/integrations.ts +319 -0
  75. package/.framework/functions/item-progress.ts +272 -0
  76. package/.framework/functions/logs.ts +438 -0
  77. package/.framework/functions/observability.ts +275 -0
  78. package/.framework/functions/pipeline-executions.ts +494 -0
  79. package/.framework/functions/pipelines.ts +485 -0
  80. package/.framework/functions/prompt-configs.ts +339 -0
  81. package/.framework/functions/roles.ts +387 -0
  82. package/.framework/functions/system-cron.ts +742 -0
  83. package/.framework/functions/system.ts +323 -0
  84. package/.framework/functions/tests.ts +119 -0
  85. package/.framework/functions/timers.ts +357 -0
  86. package/.framework/functions/triggers.ts +563 -0
  87. package/.framework/functions/types.ts +604 -0
  88. package/.framework/migrations/000_foundation.sql +1256 -0
  89. package/.framework/migrations/001_seed.sql +92 -0
  90. package/.framework/migrations/002_seed_constraints.sql +13 -0
  91. package/.framework/migrations/003_auth_user_trigger.sql +59 -0
  92. package/.framework/src/App.tsx +126 -0
  93. package/.framework/src/apps/admin/index.tsx +173 -0
  94. package/.framework/src/components/AppWrapper.tsx +56 -0
  95. package/.framework/src/components/CustomAppLoader.tsx +116 -0
  96. package/.framework/src/components/admin/AdminListPage.tsx +151 -0
  97. package/.framework/src/components/admin/AdminSidebar.tsx +166 -0
  98. package/.framework/src/components/admin/AdminStatsCard.tsx +62 -0
  99. package/.framework/src/components/admin/SortableTableHeader.tsx +42 -0
  100. package/.framework/src/components/app-shell/GenericAppShell.tsx +181 -0
  101. package/.framework/src/components/app-shell/GenericDetailPage.tsx +200 -0
  102. package/.framework/src/components/app-shell/GenericListPage.tsx +116 -0
  103. package/.framework/src/components/app-sidebar.tsx +228 -0
  104. package/.framework/src/components/auth/ProtectedRoute.tsx +88 -0
  105. package/.framework/src/components/layout/AppShell.tsx +91 -0
  106. package/.framework/src/components/layout/Header.tsx +88 -0
  107. package/.framework/src/components/layout/Layout.tsx +95 -0
  108. package/.framework/src/components/layout/Sidebar.tsx +329 -0
  109. package/.framework/src/components/runtime/DataDetailHeader.tsx +77 -0
  110. package/.framework/src/components/runtime/DataDetailPage.tsx +171 -0
  111. package/.framework/src/components/runtime/DataFilters.tsx +91 -0
  112. package/.framework/src/components/runtime/DataHeader.tsx +68 -0
  113. package/.framework/src/components/runtime/DataListPage.tsx +124 -0
  114. package/.framework/src/components/runtime/DataStats.tsx +70 -0
  115. package/.framework/src/components/runtime/DataTable.tsx +174 -0
  116. package/.framework/src/components/runtime/SchemaDetailForm.tsx +134 -0
  117. package/.framework/src/components/runtime/index.ts +18 -0
  118. package/.framework/src/components/search-form.tsx +29 -0
  119. package/.framework/src/components/shared/AgentView.tsx +213 -0
  120. package/.framework/src/components/shared/FieldRenderer.tsx +478 -0
  121. package/.framework/src/components/shared/SchemaFields.tsx +226 -0
  122. package/.framework/src/components/ui/DataTable.tsx +343 -0
  123. package/.framework/src/components/ui/Form.tsx +281 -0
  124. package/.framework/src/components/ui/ItemCard.tsx +296 -0
  125. package/.framework/src/components/ui/ItemListView.tsx +308 -0
  126. package/.framework/src/components/ui/LoadingSpinner.tsx +52 -0
  127. package/.framework/src/components/ui/Modal.tsx +61 -0
  128. package/.framework/src/components/ui/RichTextEditor.tsx +210 -0
  129. package/.framework/src/components/ui/accordion.tsx +82 -0
  130. package/.framework/src/components/ui/alert-dialog.tsx +197 -0
  131. package/.framework/src/components/ui/alert.tsx +76 -0
  132. package/.framework/src/components/ui/aspect-ratio.tsx +11 -0
  133. package/.framework/src/components/ui/avatar.tsx +110 -0
  134. package/.framework/src/components/ui/badge.tsx +49 -0
  135. package/.framework/src/components/ui/breadcrumb.tsx +122 -0
  136. package/.framework/src/components/ui/button-group.tsx +83 -0
  137. package/.framework/src/components/ui/button.tsx +65 -0
  138. package/.framework/src/components/ui/calendar.tsx +222 -0
  139. package/.framework/src/components/ui/card.tsx +100 -0
  140. package/.framework/src/components/ui/carousel.tsx +240 -0
  141. package/.framework/src/components/ui/chart.tsx +373 -0
  142. package/.framework/src/components/ui/checkbox.tsx +31 -0
  143. package/.framework/src/components/ui/collapsible.tsx +33 -0
  144. package/.framework/src/components/ui/combobox.tsx +299 -0
  145. package/.framework/src/components/ui/command.tsx +193 -0
  146. package/.framework/src/components/ui/context-menu.tsx +261 -0
  147. package/.framework/src/components/ui/dialog.tsx +165 -0
  148. package/.framework/src/components/ui/direction.tsx +22 -0
  149. package/.framework/src/components/ui/drawer.tsx +132 -0
  150. package/.framework/src/components/ui/dropdown-menu.tsx +269 -0
  151. package/.framework/src/components/ui/empty.tsx +104 -0
  152. package/.framework/src/components/ui/field.tsx +238 -0
  153. package/.framework/src/components/ui/hover-card.tsx +42 -0
  154. package/.framework/src/components/ui/input-group.tsx +153 -0
  155. package/.framework/src/components/ui/input-otp.tsx +87 -0
  156. package/.framework/src/components/ui/input.tsx +19 -0
  157. package/.framework/src/components/ui/item.tsx +196 -0
  158. package/.framework/src/components/ui/kbd.tsx +26 -0
  159. package/.framework/src/components/ui/label.tsx +22 -0
  160. package/.framework/src/components/ui/menubar.tsx +277 -0
  161. package/.framework/src/components/ui/native-select.tsx +61 -0
  162. package/.framework/src/components/ui/navigation-menu.tsx +164 -0
  163. package/.framework/src/components/ui/pagination.tsx +129 -0
  164. package/.framework/src/components/ui/popover.tsx +87 -0
  165. package/.framework/src/components/ui/progress.tsx +31 -0
  166. package/.framework/src/components/ui/radio-group.tsx +42 -0
  167. package/.framework/src/components/ui/resizable.tsx +50 -0
  168. package/.framework/src/components/ui/scroll-area.tsx +53 -0
  169. package/.framework/src/components/ui/select.tsx +195 -0
  170. package/.framework/src/components/ui/separator.tsx +26 -0
  171. package/.framework/src/components/ui/sheet.tsx +145 -0
  172. package/.framework/src/components/ui/sidebar.tsx +706 -0
  173. package/.framework/src/components/ui/skeleton.tsx +13 -0
  174. package/.framework/src/components/ui/slider.tsx +59 -0
  175. package/.framework/src/components/ui/sonner.tsx +47 -0
  176. package/.framework/src/components/ui/spinner.tsx +10 -0
  177. package/.framework/src/components/ui/switch.tsx +33 -0
  178. package/.framework/src/components/ui/table-primitives.tsx +141 -0
  179. package/.framework/src/components/ui/table.tsx +114 -0
  180. package/.framework/src/components/ui/tabs.tsx +90 -0
  181. package/.framework/src/components/ui/textarea.tsx +18 -0
  182. package/.framework/src/components/ui/toggle-group.tsx +89 -0
  183. package/.framework/src/components/ui/toggle.tsx +45 -0
  184. package/.framework/src/components/ui/tooltip.tsx +57 -0
  185. package/.framework/src/contexts/AppContext.tsx +133 -0
  186. package/.framework/src/contexts/AuthContext.tsx +371 -0
  187. package/.framework/src/hooks/use-mobile.ts +19 -0
  188. package/.framework/src/hooks/useApi.ts +526 -0
  189. package/.framework/src/hooks/useApps.ts +114 -0
  190. package/.framework/src/hooks/useEntityList.ts +190 -0
  191. package/.framework/src/hooks/useEntityRecord.ts +308 -0
  192. package/.framework/src/hooks/useForm.ts +307 -0
  193. package/.framework/src/hooks/useListSchema.ts +264 -0
  194. package/.framework/src/hooks/useSchemaRecord.ts +223 -0
  195. package/.framework/src/index.css +128 -0
  196. package/.framework/src/lib/api.ts +156 -0
  197. package/.framework/src/lib/supabase.ts +94 -0
  198. package/.framework/src/lib/utils.ts +317 -0
  199. package/.framework/src/main.tsx +27 -0
  200. package/.framework/src/pages/DashboardPage.tsx +181 -0
  201. package/.framework/src/pages/NotFoundPage.tsx +39 -0
  202. package/.framework/src/pages/admin/AIAgentDetailPage.tsx +161 -0
  203. package/.framework/src/pages/admin/AIAgentsPage.tsx +318 -0
  204. package/.framework/src/pages/admin/APIKeyDetailPage.tsx +199 -0
  205. package/.framework/src/pages/admin/APIKeysPage.tsx +303 -0
  206. package/.framework/src/pages/admin/AlertsConfigPage.tsx +523 -0
  207. package/.framework/src/pages/admin/AppDetailPage.tsx +493 -0
  208. package/.framework/src/pages/admin/AppsPage.tsx +355 -0
  209. package/.framework/src/pages/admin/DesignedPage.tsx +491 -0
  210. package/.framework/src/pages/admin/EmbeddingDetailPage.tsx +534 -0
  211. package/.framework/src/pages/admin/EmbeddingsPage.tsx +424 -0
  212. package/.framework/src/pages/admin/ExtendedShadcnTestPage.tsx +176 -0
  213. package/.framework/src/pages/admin/IncrementalShadcnTestPage.tsx +109 -0
  214. package/.framework/src/pages/admin/IntegratedDashboard.tsx +402 -0
  215. package/.framework/src/pages/admin/IntegrationDetailPage.tsx +187 -0
  216. package/.framework/src/pages/admin/IntegrationsPage.tsx +301 -0
  217. package/.framework/src/pages/admin/LogsPage.tsx +283 -0
  218. package/.framework/src/pages/admin/MinimalShadcnTestPage.tsx +85 -0
  219. package/.framework/src/pages/admin/ObservabilityDashboard.tsx +470 -0
  220. package/.framework/src/pages/admin/PipelineDetailPage.tsx +183 -0
  221. package/.framework/src/pages/admin/PipelineExecutionsPage.tsx +279 -0
  222. package/.framework/src/pages/admin/PipelinesPage.tsx +390 -0
  223. package/.framework/src/pages/admin/PromptConfigDetailPage.tsx +299 -0
  224. package/.framework/src/pages/admin/PromptConfigsPage.tsx +292 -0
  225. package/.framework/src/pages/admin/ProperlyDesignedPage.tsx +434 -0
  226. package/.framework/src/pages/admin/RoleDetailPage.tsx +273 -0
  227. package/.framework/src/pages/admin/RolesPage.tsx +292 -0
  228. package/.framework/src/pages/admin/SelectTestPage.tsx +61 -0
  229. package/.framework/src/pages/admin/ShadcnTestPage.tsx +588 -0
  230. package/.framework/src/pages/admin/SimpleDashboard.tsx +387 -0
  231. package/.framework/src/pages/admin/TestRunDetailPage.tsx +172 -0
  232. package/.framework/src/pages/admin/TestingDashboard.tsx +257 -0
  233. package/.framework/src/pages/admin/TimerDetailPage.tsx +151 -0
  234. package/.framework/src/pages/admin/TimersPage.tsx +376 -0
  235. package/.framework/src/pages/admin/TriggerDetailPage.tsx +149 -0
  236. package/.framework/src/pages/admin/TriggersPage.tsx +381 -0
  237. package/.framework/src/pages/admin/TypeDetailPage.tsx +694 -0
  238. package/.framework/src/pages/admin/TypesPage.tsx +295 -0
  239. package/.framework/src/pages/auth/LoginPage.tsx +188 -0
  240. package/.framework/src/pages/auth/RegisterPage.tsx +163 -0
  241. package/.framework/src/pages/spine-framework/APIPage.tsx +17 -0
  242. package/.framework/src/pages/spine-framework/CLIPage.tsx +25 -0
  243. package/.framework/src/types/auth.ts +125 -0
  244. package/.framework/src/types/types.ts +407 -0
  245. package/STRUCTURE.md +150 -0
  246. package/config/components.json +25 -0
  247. package/config/deno.lock +108 -0
  248. package/config/package-lock.json +17183 -0
  249. package/config/postcss.config.cjs +10 -0
  250. package/config/tailwind.config.cjs +78 -0
  251. package/config/tsconfig.build.json +32 -0
  252. package/config/tsconfig.cli.json +18 -0
  253. package/config/tsconfig.json +41 -0
  254. package/config/tsconfig.node.json +17 -0
  255. package/config/tsconfig.node.tsbuildinfo +1 -0
  256. package/config/tsconfig.tsbuildinfo +1 -0
  257. package/config/typedoc.json +16 -0
  258. package/config/vite.config.d.ts +2 -0
  259. package/config/vite.config.ts +72 -0
  260. package/dist/cli/commands/agents.d.ts +39 -0
  261. package/dist/cli/commands/agents.d.ts.map +1 -0
  262. package/dist/cli/commands/auth.d.ts +36 -0
  263. package/dist/cli/commands/auth.d.ts.map +1 -0
  264. package/dist/cli/commands/create-app.d.ts +23 -0
  265. package/dist/cli/commands/create-app.d.ts.map +1 -0
  266. package/dist/cli/commands/dev.d.ts +39 -0
  267. package/dist/cli/commands/dev.d.ts.map +1 -0
  268. package/dist/cli/commands/doctor.d.ts +42 -0
  269. package/dist/cli/commands/doctor.d.ts.map +1 -0
  270. package/dist/cli/commands/generate.d.ts +36 -0
  271. package/dist/cli/commands/generate.d.ts.map +1 -0
  272. package/dist/cli/commands/init.d.ts +30 -0
  273. package/dist/cli/commands/init.d.ts.map +1 -0
  274. package/dist/cli/commands/install-app.d.ts +30 -0
  275. package/dist/cli/commands/install-app.d.ts.map +1 -0
  276. package/dist/cli/commands/items.d.ts +45 -0
  277. package/dist/cli/commands/items.d.ts.map +1 -0
  278. package/dist/cli/commands/migrations.d.ts +41 -0
  279. package/dist/cli/commands/migrations.d.ts.map +1 -0
  280. package/dist/cli/commands/pipelines.d.ts +40 -0
  281. package/dist/cli/commands/pipelines.d.ts.map +1 -0
  282. package/dist/cli/commands/status.d.ts +23 -0
  283. package/dist/cli/commands/status.d.ts.map +1 -0
  284. package/dist/cli/commands/system.d.ts +29 -0
  285. package/dist/cli/commands/system.d.ts.map +1 -0
  286. package/dist/cli/commands/test.d.ts +46 -0
  287. package/dist/cli/commands/test.d.ts.map +1 -0
  288. package/dist/cli/commands/uninstall-app.d.ts +23 -0
  289. package/dist/cli/commands/uninstall-app.d.ts.map +1 -0
  290. package/dist/cli/context.d.ts +88 -0
  291. package/dist/cli/context.d.ts.map +1 -0
  292. package/dist/cli/env-loader.d.ts +14 -0
  293. package/dist/cli/env-loader.d.ts.map +1 -0
  294. package/dist/cli/index.d.ts +41 -0
  295. package/dist/cli/index.d.ts.map +1 -0
  296. package/dist/functions/_shared/agent-runner.d.ts +156 -0
  297. package/dist/functions/_shared/agent-runner.d.ts.map +1 -0
  298. package/dist/functions/_shared/app-manifest.d.ts +68 -0
  299. package/dist/functions/_shared/app-manifest.d.ts.map +1 -0
  300. package/dist/functions/_shared/audit.d.ts +91 -0
  301. package/dist/functions/_shared/audit.d.ts.map +1 -0
  302. package/dist/functions/_shared/db.d.ts +125 -0
  303. package/dist/functions/_shared/db.d.ts.map +1 -0
  304. package/dist/functions/_shared/index.d.ts +298 -0
  305. package/dist/functions/_shared/index.d.ts.map +1 -0
  306. package/dist/functions/_shared/middleware.d.ts +315 -0
  307. package/dist/functions/_shared/middleware.d.ts.map +1 -0
  308. package/dist/functions/_shared/permissions.d.ts +626 -0
  309. package/dist/functions/_shared/permissions.d.ts.map +1 -0
  310. package/dist/functions/_shared/pipeline-runner.d.ts +124 -0
  311. package/dist/functions/_shared/pipeline-runner.d.ts.map +1 -0
  312. package/dist/functions/_shared/principal.d.ts +284 -0
  313. package/dist/functions/_shared/principal.d.ts.map +1 -0
  314. package/dist/functions/_shared/schema-utils.d.ts +181 -0
  315. package/dist/functions/_shared/schema-utils.d.ts.map +1 -0
  316. package/dist/functions/_shared/testing.d.ts +172 -0
  317. package/dist/functions/_shared/testing.d.ts.map +1 -0
  318. package/dist/functions/_shared/trigger-engine.d.ts +140 -0
  319. package/dist/functions/_shared/trigger-engine.d.ts.map +1 -0
  320. package/dist/functions/_shared/webhook-registration.d.ts +81 -0
  321. package/dist/functions/_shared/webhook-registration.d.ts.map +1 -0
  322. package/dist/functions/_shared/webhook-registry.d.ts +57 -0
  323. package/dist/functions/_shared/webhook-registry.d.ts.map +1 -0
  324. package/dist/functions/account-nodes.d.ts +48 -0
  325. package/dist/functions/account-nodes.d.ts.map +1 -0
  326. package/dist/functions/admin-data.d.ts +178 -0
  327. package/dist/functions/admin-data.d.ts.map +1 -0
  328. package/dist/functions/ai-agents.d.ts +125 -0
  329. package/dist/functions/ai-agents.d.ts.map +1 -0
  330. package/dist/functions/api-keys.d.ts +140 -0
  331. package/dist/functions/api-keys.d.ts.map +1 -0
  332. package/dist/functions/apps.d.ts +163 -0
  333. package/dist/functions/apps.d.ts.map +1 -0
  334. package/dist/functions/auth.d.ts +74 -0
  335. package/dist/functions/auth.d.ts.map +1 -0
  336. package/dist/functions/debug-auth.d.ts +33 -0
  337. package/dist/functions/debug-auth.d.ts.map +1 -0
  338. package/dist/functions/embeddings.d.ts +205 -0
  339. package/dist/functions/embeddings.d.ts.map +1 -0
  340. package/dist/functions/integration-routes.d.ts +45 -0
  341. package/dist/functions/integration-routes.d.ts.map +1 -0
  342. package/dist/functions/integrations.d.ts +124 -0
  343. package/dist/functions/integrations.d.ts.map +1 -0
  344. package/dist/functions/item-progress.d.ts +41 -0
  345. package/dist/functions/item-progress.d.ts.map +1 -0
  346. package/dist/functions/logs.d.ts +162 -0
  347. package/dist/functions/logs.d.ts.map +1 -0
  348. package/dist/functions/observability.d.ts +123 -0
  349. package/dist/functions/observability.d.ts.map +1 -0
  350. package/dist/functions/pipeline-executions.d.ts +190 -0
  351. package/dist/functions/pipeline-executions.d.ts.map +1 -0
  352. package/dist/functions/pipelines.d.ts +171 -0
  353. package/dist/functions/pipelines.d.ts.map +1 -0
  354. package/dist/functions/prompt-configs.d.ts +125 -0
  355. package/dist/functions/prompt-configs.d.ts.map +1 -0
  356. package/dist/functions/roles.d.ts +118 -0
  357. package/dist/functions/roles.d.ts.map +1 -0
  358. package/dist/functions/system-cron.d.ts +65 -0
  359. package/dist/functions/system-cron.d.ts.map +1 -0
  360. package/dist/functions/system.d.ts +29 -0
  361. package/dist/functions/system.d.ts.map +1 -0
  362. package/dist/functions/tests.d.ts +28 -0
  363. package/dist/functions/tests.d.ts.map +1 -0
  364. package/dist/functions/timers.d.ts +139 -0
  365. package/dist/functions/timers.d.ts.map +1 -0
  366. package/dist/functions/triggers.d.ts +203 -0
  367. package/dist/functions/triggers.d.ts.map +1 -0
  368. package/dist/functions/types.d.ts +151 -0
  369. package/dist/functions/types.d.ts.map +1 -0
  370. package/dist/src/types/types.d.ts +364 -0
  371. package/dist/src/types/types.d.ts.map +1 -0
  372. package/package.json +192 -0
  373. package/scripts/app-install-cli.ts +286 -0
  374. package/scripts/assemble-frontend.sh +79 -0
  375. package/scripts/assemble-functions.sh +62 -0
  376. package/scripts/assemble.sh +35 -0
  377. package/scripts/boundary-check.sh +106 -0
  378. package/scripts/build-manifest.sh +80 -0
  379. package/scripts/check-core-integrity.sh +82 -0
  380. package/scripts/ingest-chunks.cjs +202 -0
  381. package/scripts/kb-chunk-parser.cjs +312 -0
  382. package/scripts/kb-chunk-parser.ts +330 -0
  383. package/scripts/load-test-app-install.ts +484 -0
  384. package/scripts/netlify-dev-wrapper.sh +22 -0
  385. package/scripts/verify-integrity.sh +69 -0
@@ -0,0 +1,125 @@
1
+ /**
2
+ * @module prompt-configs
3
+ * @audience core-contributor
4
+ * @layer api-handler
5
+ * @stability stable
6
+ *
7
+ * CRUD API for the `prompt_configs` table. Prompt configs define LLM inference
8
+ * parameters: system prompts, context templates, model selection, temperature,
9
+ * confidence thresholds, escalation rules, tool access, and knowledge sources.
10
+ * They are referenced by AI agents at inference time via `agent-runner.ts`.
11
+ *
12
+ * **Routed by:** `GET/POST/PATCH/DELETE /.netlify/functions/prompt-configs`
13
+ *
14
+ * **Standard CRUD routing:**
15
+ * | method | condition | handler |
16
+ * |--------|-----------|---------|
17
+ * | GET | ?id | get |
18
+ * | GET | (default) | list |
19
+ * | POST | — | create |
20
+ * | PATCH | — | update |
21
+ * | DELETE | — | remove |
22
+ *
23
+ * **Authorization:** All operations use `ctx.db` (RLS-scoped). Account context
24
+ * required for writes.
25
+ *
26
+ * INVARIANT: `remove` is a hard delete.
27
+ * INVARIANT: `update` only patches the explicit allowlist of fields.
28
+ * INVARIANT: `model` defaults to 'gpt-4o', `temperature` to 0.7,
29
+ * `max_tokens` to 4000 if not specified on create.
30
+ *
31
+ * @seeAlso agent-runner.ts (resolveAgentConfig reads prompt_configs)
32
+ * @seeAlso ai-agents.ts (ai_agents reference prompt_config_id)
33
+ * @seeAlso audit.ts (emitLog for prompt_config.* events)
34
+ */
35
+ /**
36
+ * @chunk-id PROMPT_CONFIGS_LIST_1_0_0
37
+ * @version 1.0.0
38
+ * @hash 177c1ca02d205ad820b03fef84d2667ddde4eaa8a2aa82fbf3ee58d4f68890aa
39
+ * @macro Prompt Configs List Handler
40
+ * @micro Lists prompt configs with filtering and sanitization
41
+ * @inputs ctx: CoreContext — Request context with principal and database
42
+ * @inputs _body: any — Request body (unused for GET)
43
+ * @outputs Array of sanitized prompt_config records with app/createdBy joins
44
+ * @depends-on [createHandler, sanitizeRecordData]
45
+ * @depended-by [Netlify function routing]
46
+ * @side-effects [DB queries, permission sanitization]
47
+ * @tags prompt-configs, list, crud, pagination
48
+ */
49
+ export declare const list: (event: any, context: any) => Promise<any>;
50
+ /**
51
+ * @chunk-id PROMPT_CONFIGS_GET_1_0_0
52
+ * @version 1.0.0
53
+ * @hash 234cc28b4e9fba9333a221ac01d175bafaf93681221f182d6925df84caf90348
54
+ * @macro Prompt Config Get Handler
55
+ * @micro Returns single prompt config record with joins and sanitization
56
+ * @inputs ctx: CoreContext — Request context with principal and database
57
+ * @inputs _body: any — Request body (unused for GET)
58
+ * @outputs Sanitized prompt_config record with app/createdBy joins
59
+ * @depends-on [createHandler, sanitizeRecordData]
60
+ * @depended-by [Netlify function routing]
61
+ * @side-effects [DB single row query, permission sanitization]
62
+ * @tags prompt-configs, get, crud, single-record
63
+ */
64
+ export declare const get: (event: any, context: any) => Promise<any>;
65
+ /**
66
+ * @chunk-id PROMPT_CONFIGS_CREATE_1_0_0
67
+ * @version 1.0.0
68
+ * @hash e4aeda63ad485550140a44aa281020c9a6fc966da444d135281d869e053c5e6c
69
+ * @macro Prompt Config Create Handler
70
+ * @micro Creates prompt config with validation and audit logging
71
+ * @inputs ctx: CoreContext — Request context with principal and database
72
+ * @inputs body: object — Prompt config data including name, slug, and optional fields
73
+ * @outputs Inserted prompt_config record
74
+ * @depends-on [createHandler, emitLog]
75
+ * @depended-by [Netlify function routing]
76
+ * @side-effects [DB insert, audit logging]
77
+ * @tags prompt-configs, create, crud, audit
78
+ */
79
+ export declare const create: (event: any, context: any) => Promise<any>;
80
+ /**
81
+ * @chunk-id PROMPT_CONFIGS_UPDATE_1_0_0
82
+ * @version 1.0.0
83
+ * @hash 32985018c871c4d8b6faf93f817c33e8b9f65e6dbae5cdb0df37fa16bf7b2db1
84
+ * @macro Prompt Config Update Handler
85
+ * @micro Updates prompt config with field allowlist and audit logging
86
+ * @inputs ctx: CoreContext — Request context with principal and database
87
+ * @inputs body: object — Prompt config updates including id and updatable fields
88
+ * @outputs Updated prompt_config record
89
+ * @depends-on [createHandler, emitLog]
90
+ * @depended-by [Netlify function routing]
91
+ * @side-effects [DB update, audit logging]
92
+ * @tags prompt-configs, update, crud, audit
93
+ */
94
+ export declare const update: (event: any, context: any) => Promise<any>;
95
+ /**
96
+ * @chunk-id PROMPT_CONFIGS_REMOVE_1_0_0
97
+ * @version 1.0.0
98
+ * @hash 2d6cdf4f067fe7259c1fb3d07c5928df36a2395424772a85a7d474072d883b84
99
+ * @macro Prompt Config Remove Handler
100
+ * @micro Hard-deletes prompt config with audit logging
101
+ * @inputs ctx: CoreContext — Request context with principal and database
102
+ * @inputs _body: any — Request body (unused for DELETE)
103
+ * @outputs {success: true} — Confirmation of successful deletion
104
+ * @depends-on [createHandler, emitLog]
105
+ * @depended-by [Netlify function routing]
106
+ * @side-effects [DB delete, audit logging]
107
+ * @tags prompt-configs, remove, delete, audit
108
+ */
109
+ export declare const remove: (event: any, context: any) => Promise<any>;
110
+ /**
111
+ * @chunk-id PROMPT_CONFIGS_HANDLER_1_0_0
112
+ * @version 1.0.0
113
+ * @hash a49f4917dd07295e0ba9815bf929cccc5cffcbe4dcf6852aa4bd84d6cba1b690
114
+ * @macro Prompt Configs Router
115
+ * @micro Routes HTTP methods to appropriate prompt config handlers
116
+ * @inputs ctx: CoreContext — Request context with principal and database
117
+ * @inputs body: any — Request body for POST/PATCH operations
118
+ * @outputs Varies — Depends on routed handler (list/get/create/update/remove)
119
+ * @depends-on [createHandler, list, get, create, update, remove]
120
+ * @depended-by [Netlify function routing]
121
+ * @side-effects [Delegates to appropriate handler]
122
+ * @tags prompt-configs, router, crud, netlify-function
123
+ */
124
+ export declare const handler: (event: any, context: any) => Promise<any>;
125
+ //# sourceMappingURL=prompt-configs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-configs.d.ts","sourceRoot":"","sources":["../../.framework/functions/prompt-configs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AASH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,IAAI,4CAoCf,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,GAAG,4CAoBd,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,4CAmDjB,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,4CAgCjB,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,4CA4BjB,CAAA;AAMF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,OAAO,4CAsBlB,CAAA"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * @module roles
3
+ * @audience core-contributor
4
+ * @layer api-handler
5
+ * @stability stable
6
+ *
7
+ * CRUD API for the `roles` table. Roles define permission sets (`permissions`
8
+ * JSONB) that are assigned to people within an account.
9
+ *
10
+ * **Routed by:** `GET/POST/PATCH/DELETE /.netlify/functions/roles`
11
+ *
12
+ * **Authorization model:**
13
+ * - All reads use `ctx.db` (RLS-scoped). System admins see raw records;
14
+ * others get field-level sanitization via `sanitizeRecordData`.
15
+ * - `create`: requires system admin OR first-surface `canCreate` permission.
16
+ * Creating a role with `slug === 'system_admin'` is system-admin-only.
17
+ * - `update` / `remove`: require authenticated principal. RLS controls row
18
+ * access; field-level permissions validated via `validateUpdatePermissions`.
19
+ * - Slug uniqueness is enforced per-app: checked against `adminDb`.
20
+ *
21
+ * INVARIANT: `system_admin` role slug can only be created by system admins.
22
+ * INVARIANT: soft delete only — roles are set to `is_active = false`.
23
+ *
24
+ * @seeAlso middleware.ts (createHandler)
25
+ * @seeAlso permissions.ts (PermissionEngine, sanitizeRecordData)
26
+ * @seeAlso audit.ts (emitLog for role.created / role.updated / role.deleted)
27
+ */
28
+ /**
29
+ * @chunk-id ROLES_LIST_1_0_0
30
+ * @version 1.0.0
31
+ * @hash b643852233c87c20abd7d62b3f51be9ba7f0f2a4ff02154be239ceef6184811b
32
+ * @macro Roles List Handler
33
+ * @micro Lists active roles with filtering and permission-based sanitization
34
+ * @inputs ctx: CoreContext — Request context with principal and database
35
+ * @inputs _body: any — Request body (unused for GET)
36
+ * @outputs Array of role records with app join, sanitized for non-admins
37
+ * @depends-on [createHandler, PermissionEngine, sanitizeRecordData]
38
+ * @depended-by [Netlify function routing]
39
+ * @side-effects [DB queries, permission sanitization]
40
+ * @tags roles, list, crud, pagination, permissions
41
+ */
42
+ export declare const list: (event: any, context: any) => Promise<any>;
43
+ /**
44
+ * @chunk-id ROLES_GET_1_0_0
45
+ * @version 1.0.0
46
+ * @hash 94607bad8b9ff929233ce1b29b6563062d439365ed0413726c5a8d8d0f58474b
47
+ * @macro Role Get Handler
48
+ * @micro Returns single role record with joins and permission sanitization
49
+ * @inputs ctx: CoreContext — Request context with principal and database
50
+ * @inputs _body: any — Request body (unused for GET)
51
+ * @outputs Sanitized role record with app join
52
+ * @depends-on [createHandler, sanitizeRecordData]
53
+ * @depended-by [Netlify function routing]
54
+ * @side-effects [DB single row query, permission sanitization]
55
+ * @tags roles, get, crud, single-record, permissions
56
+ */
57
+ export declare const get: (event: any, context: any) => Promise<any>;
58
+ /**
59
+ * @chunk-id ROLES_CREATE_1_0_0
60
+ * @version 1.0.0
61
+ * @hash 7f6646fee88ed72d997eb710feb3778aad114f3a96819390166c8ecbc6eeaa0e
62
+ * @macro Role Create Handler
63
+ * @micro Creates role with permission validation and audit logging
64
+ * @inputs ctx: CoreContext — Request context with principal and database
65
+ * @inputs body: object — Role data including slug, name, and optional fields
66
+ * @outputs Inserted role record
67
+ * @depends-on [createHandler, PermissionEngine, adminDb, emitLog]
68
+ * @depended-by [Netlify function routing]
69
+ * @side-effects [DB insert, permission validation, audit logging]
70
+ * @tags roles, create, crud, permissions, audit
71
+ */
72
+ export declare const create: (event: any, context: any) => Promise<any>;
73
+ /**
74
+ * @chunk-id ROLES_UPDATE_1_0_0
75
+ * @version 1.0.0
76
+ * @hash 19803de116b38af5e27bf542ca642228f4661bbf428a4846ed565d0667767580
77
+ * @macro Role Update Handler
78
+ * @micro Updates role with field-level permission validation and audit logging
79
+ * @inputs ctx: CoreContext — Request context with principal and database
80
+ * @inputs body: object — Role updates including id and updatable fields
81
+ * @outputs Updated role record
82
+ * @depends-on [createHandler, PermissionEngine, emitLog]
83
+ * @depended-by [Netlify function routing]
84
+ * @side-effects [DB update, permission validation, audit logging]
85
+ * @tags roles, update, crud, permissions, audit
86
+ */
87
+ export declare const update: (event: any, context: any) => Promise<any>;
88
+ /**
89
+ * @chunk-id ROLES_REMOVE_1_0_0
90
+ * @version 1.0.0
91
+ * @hash 9194c78a60e7d12b7acf6981bbc56afdfbe9e922c52739394240fca5adcfa069
92
+ * @macro Role Remove Handler
93
+ * @micro Soft-deletes role with audit logging
94
+ * @inputs ctx: CoreContext — Request context with principal and database
95
+ * @inputs body: object — Role id for deletion
96
+ * @outputs Updated role record with is_active: false
97
+ * @depends-on [createHandler, emitLog]
98
+ * @depended-by [Netlify function routing]
99
+ * @side-effects [DB soft delete, audit logging]
100
+ * @tags roles, remove, soft-delete, audit
101
+ */
102
+ export declare const remove: (event: any, context: any) => Promise<any>;
103
+ /**
104
+ * @chunk-id ROLES_HANDLER_1_0_0
105
+ * @version 1.0.0
106
+ * @hash 14c00f276a22287ed65c019efe327cbb513f860a408191e299864b05c641833c
107
+ * @macro Roles Router
108
+ * @micro Routes HTTP methods to appropriate role handlers
109
+ * @inputs ctx: CoreContext — Request context with principal and database
110
+ * @inputs body: any — Request body for POST/PATCH/DELETE operations
111
+ * @outputs Varies — Depends on routed handler (list/get/create/update/remove)
112
+ * @depends-on [createHandler, list, get, create, update, remove]
113
+ * @depended-by [Netlify function routing]
114
+ * @side-effects [Delegates to appropriate handler]
115
+ * @tags roles, router, crud, netlify-function
116
+ */
117
+ export declare const handler: (event: any, context: any) => Promise<any>;
118
+ //# sourceMappingURL=roles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../../.framework/functions/roles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAYH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,IAAI,4CA2Cf,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,GAAG,4CAuBd,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,4CAoEjB,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,4CAkDjB,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,4CAsCjB,CAAA;AAMF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,OAAO,4CAmBlB,CAAA"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * @module system-cron
3
+ * @audience core-contributor
4
+ * @layer api-handler
5
+ * @stability stable
6
+ *
7
+ * Scheduled job runner invoked by an external cron service (e.g., AWS
8
+ * EventBridge, Google Cloud Scheduler). On each tick it:
9
+ *
10
+ * 1. Authenticates the request via `SCHEDULER_API_KEY` or machine principal
11
+ * 2. Fetches all schedules due via `get_due_schedules` RPC
12
+ * 3. For each schedule: validates creator, loads action + machine principal,
13
+ * checks scope, executes action, records outcome
14
+ * 4. Fetches all timers due via `get_due_timers` RPC and runs each pipeline
15
+ * 5. Evaluates threshold alerts via `evaluateThresholds`
16
+ * 6. Runs daily log cleanup at 00:00 UTC via `cleanupOldLogs`
17
+ *
18
+ * **Routed by:** `POST /.netlify/functions/system-cron`
19
+ *
20
+ * **Authentication:** Request must supply `SCHEDULER_API_KEY` via `?api_key`
21
+ * or `?scheduler_key`, OR originate from an internal machine principal
22
+ * (type='machine', machineType='internal'). Unauthorized requests receive 403.
23
+ *
24
+ * **Response shape:**
25
+ * ```ts
26
+ * {
27
+ * executed: number
28
+ * success: number
29
+ * failed: number
30
+ * skipped: number
31
+ * thresholds_evaluated: number
32
+ * thresholds_breached: number
33
+ * logs_cleaned: number
34
+ * results: Array<{ scheduleId, actionId, status, error?, durationMs }>
35
+ * }
36
+ * ```
37
+ *
38
+ * INVARIANT: Uses `adminDb` (service-role client, bypasses RLS) because
39
+ * machine principals must access cross-account data.
40
+ * INVARIANT: Log cleanup only runs when the current UTC time is 00:00.
41
+ *
42
+ * @seeAlso timers.ts (timer configuration CRUD)
43
+ * @seeAlso pipelines.ts (pipeline configuration CRUD)
44
+ * @seeAlso pipeline-runner.ts (runPipeline — timer/schedule execution)
45
+ * @seeAlso observability.ts (analytics RPCs used by evaluateThresholds)
46
+ * @seeAlso audit.ts (emitAudit for cron lifecycle events)
47
+ */
48
+ /**
49
+ * Netlify function entry point — the entire cron tick logic lives here.
50
+ * Returns HTTP 200 with a results summary on success, or HTTP 403/500
51
+ * on auth/runtime failure.
52
+ *
53
+ * @throws Returns 403 JSON if scheduler key is missing or invalid
54
+ * @throws Returns 500 JSON on unhandled top-level error
55
+ * @sideEffects DB read: get_due_schedules, validate_schedule_creator,
56
+ * actions, api_keys, get_due_timers
57
+ * @sideEffects DB write: schedule_executions (INSERT), update_schedule_after_run
58
+ * RPC, update_timer_after_run RPC, cleanup_old_logs RPC
59
+ * @sideEffects pipeline: runPipeline (timers + threshold responses)
60
+ * @sideEffects audit: emitAudit for unauthorized, error, schedule.execute,
61
+ * threshold.breached events
62
+ * @calledBy External cron scheduler (AWS EventBridge / Google Cloud Scheduler)
63
+ */
64
+ export declare const handler: (event: any, context: any) => Promise<any>;
65
+ //# sourceMappingURL=system-cron.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-cron.d.ts","sourceRoot":"","sources":["../../.framework/functions/system-cron.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAWH;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,OAAO,4CA0WlB,CAAA"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @module system
3
+ * @audience both
4
+ * @layer api-handler
5
+ * @stability stable
6
+ *
7
+ * System discovery and health endpoints for agentic IDE integration.
8
+ * Provides machine-readable descriptions of the Spine instance,
9
+ * runtime health checks, and OpenAPI spec generation.
10
+ *
11
+ * **Routed by:** `GET /.netlify/functions/system`
12
+ *
13
+ * **Dispatch table:**
14
+ * | ?action | Description |
15
+ * |---------|-------------|
16
+ * | manifest | Returns system manifest (version, functions, integrity) |
17
+ * | health | Returns health check status of all components |
18
+ * | openapi | Returns OpenAPI 3.1 spec for all endpoints |
19
+ *
20
+ * **Authorization:**
21
+ * - `manifest`: No auth required (public endpoint)
22
+ * - `health`: No auth required (public endpoint)
23
+ * - `openapi`: No auth required (public endpoint)
24
+ *
25
+ * @seeAlso .spine-manifest.json (integrity hashes)
26
+ * @seeAlso cli/index.ts (CLI consumer of these endpoints)
27
+ */
28
+ export declare const handler: (event: any, context: any) => Promise<any>;
29
+ //# sourceMappingURL=system.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../.framework/functions/system.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAoRH,eAAO,MAAM,OAAO,4CAoBlB,CAAA"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @module tests
3
+ * @audience both
4
+ * @layer api-handler
5
+ * @stability stable
6
+ *
7
+ * Read-only API for the admin Testing dashboard. Exposes test run history
8
+ * and per-case results stored in public.test_runs / public.test_results.
9
+ *
10
+ * **Routed by:** `GET /.netlify/functions/tests`
11
+ *
12
+ * **Dispatch table:**
13
+ * | ?action | ?id | Description |
14
+ * |---------|-----|-------------|
15
+ * | list | — | Returns 20 most recent test_runs (summary, no individual results) |
16
+ * | get | uuid | Returns one test_run + all its test_results |
17
+ * | stats | — | Returns pass/fail counts grouped by suite for last 30 days |
18
+ *
19
+ * **Authorization:** system_admin only (machine principals with *:* also allowed).
20
+ *
21
+ * INVARIANT: no writes. This endpoint is purely for reading stored test run data.
22
+ *
23
+ * @seeAlso migrations_dayzero/008_test_runs.sql
24
+ * @seeAlso tests/reporter.ts (writes the data this endpoint reads)
25
+ * @seeAlso src/pages/admin/TestingDashboard.tsx (primary consumer)
26
+ */
27
+ export declare const handler: (event: any, context: any) => Promise<any>;
28
+ //# sourceMappingURL=tests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../.framework/functions/tests.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAKH,eAAO,MAAM,OAAO,4CAwFlB,CAAA"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * @module timers
3
+ * @audience core-contributor
4
+ * @layer api-handler
5
+ * @stability stable
6
+ *
7
+ * CRUD API for the `timers` table. Timers are scheduled pipeline triggers
8
+ * (cron-style). They are evaluated and fired by `system-cron.ts` on each
9
+ * scheduled invocation.
10
+ *
11
+ * **Routed by:** `GET/POST/PATCH/DELETE /.netlify/functions/timers`
12
+ *
13
+ * **Actions:**
14
+ * | method | ?action | handler |
15
+ * |--------|----------|----------|
16
+ * | POST | toggle | toggle |
17
+ * | GET | ?id | get |
18
+ * | GET | (default)| list |
19
+ * | POST | — | create |
20
+ * | PATCH | — | update |
21
+ * | DELETE | — | remove (hard) |
22
+ *
23
+ * **Authorization:** All operations use `ctx.db` (RLS-scoped). Authenticated
24
+ * principal required for writes.
25
+ *
26
+ * INVARIANT: `remove` is a hard delete.
27
+ * INVARIANT: `update` only patches allowed fields: name, description, config,
28
+ * pipeline_id, metadata, is_active.
29
+ *
30
+ * @seeAlso system-cron.ts (fires timers on schedule)
31
+ * @seeAlso pipelines.ts (pipeline_id FK on timers)
32
+ * @seeAlso audit.ts (emitLog for timer.* events)
33
+ */
34
+ /**
35
+ * @chunk-id TIMERS_LIST_1_0_0
36
+ * @version 1.0.0
37
+ * @hash 151a2403c9d974004a34303443368921966ea3adeada07e5f63b9a20ad3f08a1
38
+ * @macro Timers List Handler
39
+ * @micro Lists timers with filtering and sanitization
40
+ * @inputs ctx: CoreContext — Request context with principal and database
41
+ * @inputs _body: any — Request body (unused for GET)
42
+ * @outputs Array of sanitized timer records with app/createdBy joins
43
+ * @depends-on [createHandler, joins, sanitizeRecordData]
44
+ * @depended-by [Netlify function routing]
45
+ * @side-effects [DB queries, permission sanitization]
46
+ * @tags timers, list, crud, filtering
47
+ */
48
+ export declare const list: (event: any, context: any) => Promise<any>;
49
+ /**
50
+ * @chunk-id TIMERS_GET_1_0_0
51
+ * @version 1.0.0
52
+ * @hash 8bbf46bb1410299eb881680ba4b508093157000a7fe525f7380e96ff0a241f32
53
+ * @macro Timer Get Handler
54
+ * @micro Returns single timer record with joins and sanitization
55
+ * @inputs ctx: CoreContext — Request context with principal and database
56
+ * @inputs _body: any — Request body (unused for GET)
57
+ * @outputs Sanitized timer record with app/createdBy joins
58
+ * @depends-on [createHandler, joins, sanitizeRecordData]
59
+ * @depended-by [Netlify function routing]
60
+ * @side-effects [DB single row query, permission sanitization]
61
+ * @tags timers, get, crud, single-record
62
+ */
63
+ export declare const get: (event: any, context: any) => Promise<any>;
64
+ /**
65
+ * @chunk-id TIMERS_CREATE_1_0_0
66
+ * @version 1.0.0
67
+ * @hash b655ea396b23dac3548323612decef91b712c0a2b42bc5c7bc0f79aee4d11af4
68
+ * @macro Timer Create Handler
69
+ * @micro Creates timer with validation and audit logging
70
+ * @inputs ctx: CoreContext — Request context with principal and database
71
+ * @inputs body: object — Timer data including name, timer_type, and optional fields
72
+ * @outputs Inserted timer record
73
+ * @depends-on [createHandler, emitLog]
74
+ * @depended-by [Netlify function routing]
75
+ * @side-effects [DB insert, audit logging]
76
+ * @tags timers, create, crud, audit
77
+ */
78
+ export declare const create: (event: any, context: any) => Promise<any>;
79
+ /**
80
+ * @chunk-id TIMERS_UPDATE_1_0_0
81
+ * @version 1.0.0
82
+ * @hash 3c53499205d63b8643e28671b397b97b344976e88ea561860e2e394ca246942d
83
+ * @macro Timer Update Handler
84
+ * @micro Updates timer with field allowlist and audit logging
85
+ * @inputs ctx: CoreContext — Request context with principal and database
86
+ * @inputs body: object — Timer updates including id and updatable fields
87
+ * @outputs Updated timer record
88
+ * @depends-on [createHandler, emitLog]
89
+ * @depended-by [Netlify function routing]
90
+ * @side-effects [DB update, audit logging]
91
+ * @tags timers, update, crud, audit
92
+ */
93
+ export declare const update: (event: any, context: any) => Promise<any>;
94
+ /**
95
+ * @chunk-id TIMERS_TOGGLE_1_0_0
96
+ * @version 1.0.0
97
+ * @hash 5db82e7a94fbdb9a0e3452c63a044789a993ed8881033d9372b86778c50a2d8c
98
+ * @macro Timer Toggle Handler
99
+ * @micro Activates or deactivates timer with audit logging
100
+ * @inputs ctx: CoreContext — Request context with principal and database
101
+ * @inputs body: object — Timer id and is_active boolean
102
+ * @outputs Updated timer record
103
+ * @depends-on [createHandler, emitLog]
104
+ * @depended-by [Netlify function routing]
105
+ * @side-effects [DB update, audit logging]
106
+ * @tags timers, toggle, state-transition, audit
107
+ */
108
+ export declare const toggle: (event: any, context: any) => Promise<any>;
109
+ /**
110
+ * @chunk-id TIMERS_REMOVE_1_0_0
111
+ * @version 1.0.0
112
+ * @hash 2d999f6948d616925eaa36be8b39b2fd23de364bf242d4fb0ff3304e1ff9f275
113
+ * @macro Timer Remove Handler
114
+ * @micro Hard-deletes timer with audit logging
115
+ * @inputs ctx: CoreContext — Request context with principal and database
116
+ * @inputs _body: any — Request body (unused for DELETE)
117
+ * @outputs {success: true} — Confirmation of successful deletion
118
+ * @depends-on [createHandler, emitLog]
119
+ * @depended-by [Netlify function routing]
120
+ * @side-effects [DB delete, audit logging]
121
+ * @tags timers, remove, delete, audit
122
+ */
123
+ export declare const remove: (event: any, context: any) => Promise<any>;
124
+ /**
125
+ * @chunk-id TIMERS_HANDLER_1_0_0
126
+ * @version 1.0.0
127
+ * @hash e890b54a4f767885a6e9d54b4ab19b968e09f6fc2f8db840d5b60df1e3cd2ba3
128
+ * @macro Timers Router
129
+ * @micro Routes HTTP methods and actions to appropriate timer handlers
130
+ * @inputs ctx: CoreContext — Request context with principal and database
131
+ * @inputs body: any — Request body for POST/PATCH/DELETE operations
132
+ * @outputs Varies — Depends on routed handler (list/get/create/update/remove/toggle)
133
+ * @depends-on [createHandler, list, get, create, update, remove, toggle]
134
+ * @depended-by [Netlify function routing]
135
+ * @side-effects [Delegates to appropriate handler]
136
+ * @tags timers, router, crud, netlify-function
137
+ */
138
+ export declare const handler: (event: any, context: any) => Promise<any>;
139
+ //# sourceMappingURL=timers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timers.d.ts","sourceRoot":"","sources":["../../.framework/functions/timers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAUH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,IAAI,4CAgCf,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,GAAG,4CAgBd,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,4CAmCjB,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,4CA6BjB,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,4CAsBjB,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,4CA4BjB,CAAA;AAMF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,OAAO,4CA2BlB,CAAA"}