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,339 @@
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
+ import { createHandler } from './_shared/middleware'
37
+ import { emitLog } from './_shared/audit'
38
+ import { sanitizeRecordData } from './_shared/permissions'
39
+
40
+ // ─── HANDLERS ─────────────────────────────────────────────────────────────────
41
+
42
+ // ─── CHUNK_START: PROMPT_CONFIGS_LIST ──────────────────────────────────────────────
43
+ /**
44
+ * @chunk-id PROMPT_CONFIGS_LIST_1_0_0
45
+ * @version 1.0.0
46
+ * @hash 177c1ca02d205ad820b03fef84d2667ddde4eaa8a2aa82fbf3ee58d4f68890aa
47
+ * @macro Prompt Configs List Handler
48
+ * @micro Lists prompt configs with filtering and sanitization
49
+ * @inputs ctx: CoreContext — Request context with principal and database
50
+ * @inputs _body: any — Request body (unused for GET)
51
+ * @outputs Array of sanitized prompt_config records with app/createdBy joins
52
+ * @depends-on [createHandler, sanitizeRecordData]
53
+ * @depended-by [Netlify function routing]
54
+ * @side-effects [DB queries, permission sanitization]
55
+ * @tags prompt-configs, list, crud, pagination
56
+ */
57
+ export const list = createHandler(async (ctx, _body) => {
58
+ const { model, is_active, limit = 100, offset = 0 } = ctx.query || {}
59
+
60
+ if (!ctx.accountId) {
61
+ throw new Error('Account context required')
62
+ }
63
+
64
+ let query = ctx.db
65
+ .from('prompt_configs')
66
+ .select(`
67
+ *,
68
+ app:apps(id, slug, name),
69
+ created_by_person:people!prompt_configs_created_by_fkey(id, full_name, email)
70
+ `)
71
+ .order('name')
72
+
73
+ if (model) {
74
+ query = query.eq('model', model)
75
+ }
76
+ if (is_active !== undefined) {
77
+ query = query.eq('is_active', is_active === 'true')
78
+ }
79
+
80
+ const { data, error: err } = await query.range(
81
+ parseInt(offset.toString()),
82
+ parseInt(offset.toString()) + parseInt(limit.toString()) - 1
83
+ )
84
+
85
+ if (err) throw err
86
+
87
+ const sanitized = []
88
+ for (const config of data || []) {
89
+ sanitized.push(await sanitizeRecordData(ctx, config, 'prompt_config'))
90
+ }
91
+
92
+ return sanitized
93
+ })
94
+ // ─── CHUNK_END: PROMPT_CONFIGS_LIST ────────────────────────────────────────────────
95
+
96
+ // ─── CHUNK_START: PROMPT_CONFIGS_GET ──────────────────────────────────────────────
97
+ /**
98
+ * @chunk-id PROMPT_CONFIGS_GET_1_0_0
99
+ * @version 1.0.0
100
+ * @hash 234cc28b4e9fba9333a221ac01d175bafaf93681221f182d6925df84caf90348
101
+ * @macro Prompt Config Get Handler
102
+ * @micro Returns single prompt config record with joins and sanitization
103
+ * @inputs ctx: CoreContext — Request context with principal and database
104
+ * @inputs _body: any — Request body (unused for GET)
105
+ * @outputs Sanitized prompt_config record with app/createdBy joins
106
+ * @depends-on [createHandler, sanitizeRecordData]
107
+ * @depended-by [Netlify function routing]
108
+ * @side-effects [DB single row query, permission sanitization]
109
+ * @tags prompt-configs, get, crud, single-record
110
+ */
111
+ export const get = createHandler(async (ctx, _body) => {
112
+ const { id } = ctx.query || {}
113
+
114
+ if (!id) {
115
+ throw new Error('Config ID is required')
116
+ }
117
+
118
+ const { data, error: err } = await ctx.db
119
+ .from('prompt_configs')
120
+ .select(`
121
+ *,
122
+ app:apps(id, slug, name),
123
+ created_by_person:people!prompt_configs_created_by_fkey(id, full_name, email)
124
+ `)
125
+ .eq('id', id)
126
+ .single()
127
+
128
+ if (err) throw err
129
+
130
+ return await sanitizeRecordData(ctx, data, 'prompt_config')
131
+ })
132
+ // ─── CHUNK_END: PROMPT_CONFIGS_GET ────────────────────────────────────────────────
133
+
134
+ // ─── CHUNK_START: PROMPT_CONFIGS_CREATE ──────────────────────────────────────────────
135
+ /**
136
+ * @chunk-id PROMPT_CONFIGS_CREATE_1_0_0
137
+ * @version 1.0.0
138
+ * @hash e4aeda63ad485550140a44aa281020c9a6fc966da444d135281d869e053c5e6c
139
+ * @macro Prompt Config Create Handler
140
+ * @micro Creates prompt config with validation and audit logging
141
+ * @inputs ctx: CoreContext — Request context with principal and database
142
+ * @inputs body: object — Prompt config data including name, slug, and optional fields
143
+ * @outputs Inserted prompt_config record
144
+ * @depends-on [createHandler, emitLog]
145
+ * @depended-by [Netlify function routing]
146
+ * @side-effects [DB insert, audit logging]
147
+ * @tags prompt-configs, create, crud, audit
148
+ */
149
+ export const create = createHandler(async (ctx, body) => {
150
+ const { app_id, name, slug, system_prompt, context_template, model, temperature, max_tokens,
151
+ is_multi_turn, max_history_messages, confidence_threshold, escalation_action, escalation_target,
152
+ output_mode, output_field, requires_review, knowledge_sources, available_tools, tool_constraints,
153
+ metadata } = body
154
+
155
+ if (!name || !slug) {
156
+ throw new Error('name and slug are required')
157
+ }
158
+
159
+ if (!ctx.accountId) {
160
+ throw new Error('Account context required')
161
+ }
162
+
163
+ const { data, error: err } = await ctx.db
164
+ .from('prompt_configs')
165
+ .insert({
166
+ app_id: app_id || null,
167
+ account_id: ctx.accountId,
168
+ name,
169
+ slug,
170
+ system_prompt: system_prompt || null,
171
+ context_template: context_template || null,
172
+ model: model || 'gpt-4o',
173
+ temperature: temperature ?? 0.7,
174
+ max_tokens: max_tokens ?? 4000,
175
+ is_multi_turn: is_multi_turn ?? true,
176
+ max_history_messages: max_history_messages ?? 20,
177
+ confidence_threshold: confidence_threshold || null,
178
+ escalation_action: escalation_action || null,
179
+ escalation_target: escalation_target || null,
180
+ output_mode: output_mode || null,
181
+ output_field: output_field || null,
182
+ requires_review: requires_review ?? false,
183
+ knowledge_sources: knowledge_sources || [],
184
+ available_tools: available_tools || [],
185
+ tool_constraints: tool_constraints || {},
186
+ metadata: metadata || {},
187
+ created_by: ctx.principal?.id
188
+ })
189
+ .select()
190
+ .single()
191
+
192
+ if (err) throw err
193
+
194
+ await emitLog(ctx, 'prompt_config.created',
195
+ { type: 'prompt_config', id: data.id },
196
+ { after: { name, slug, model: data.model } }
197
+ )
198
+
199
+ return data
200
+ })
201
+ // ─── CHUNK_END: PROMPT_CONFIGS_CREATE ────────────────────────────────────────────────
202
+
203
+ // ─── CHUNK_START: PROMPT_CONFIGS_UPDATE ──────────────────────────────────────────────
204
+ /**
205
+ * @chunk-id PROMPT_CONFIGS_UPDATE_1_0_0
206
+ * @version 1.0.0
207
+ * @hash 32985018c871c4d8b6faf93f817c33e8b9f65e6dbae5cdb0df37fa16bf7b2db1
208
+ * @macro Prompt Config Update Handler
209
+ * @micro Updates prompt config with field allowlist and audit logging
210
+ * @inputs ctx: CoreContext — Request context with principal and database
211
+ * @inputs body: object — Prompt config updates including id and updatable fields
212
+ * @outputs Updated prompt_config record
213
+ * @depends-on [createHandler, emitLog]
214
+ * @depended-by [Netlify function routing]
215
+ * @side-effects [DB update, audit logging]
216
+ * @tags prompt-configs, update, crud, audit
217
+ */
218
+ export const update = createHandler(async (ctx, body) => {
219
+ const id = body?.id || ctx.query?.id
220
+ const { id: _bodyId, ...updates } = body || {}
221
+
222
+ if (!id) {
223
+ throw new Error('Config ID is required')
224
+ }
225
+
226
+ const allowed = ['name', 'slug', 'system_prompt', 'context_template', 'model', 'temperature',
227
+ 'max_tokens', 'is_multi_turn', 'max_history_messages', 'confidence_threshold',
228
+ 'escalation_action', 'escalation_target', 'output_mode', 'output_field', 'requires_review',
229
+ 'knowledge_sources', 'available_tools', 'tool_constraints', 'metadata', 'is_active']
230
+ const updateData: Record<string, any> = { updated_at: new Date().toISOString() }
231
+ for (const key of allowed) {
232
+ if (updates[key] !== undefined) updateData[key] = updates[key]
233
+ }
234
+
235
+ const { data, error: err } = await ctx.db
236
+ .from('prompt_configs')
237
+ .update(updateData)
238
+ .eq('id', id)
239
+ .select()
240
+ .single()
241
+
242
+ if (err) throw err
243
+
244
+ await emitLog(ctx, 'prompt_config.updated',
245
+ { type: 'prompt_config', id },
246
+ { after: updateData }
247
+ )
248
+
249
+ return data
250
+ })
251
+ // ─── CHUNK_END: PROMPT_CONFIGS_UPDATE ────────────────────────────────────────────────
252
+
253
+ // ─── CHUNK_START: PROMPT_CONFIGS_REMOVE ──────────────────────────────────────────────
254
+ /**
255
+ * @chunk-id PROMPT_CONFIGS_REMOVE_1_0_0
256
+ * @version 1.0.0
257
+ * @hash 2d6cdf4f067fe7259c1fb3d07c5928df36a2395424772a85a7d474072d883b84
258
+ * @macro Prompt Config Remove Handler
259
+ * @micro Hard-deletes prompt config with audit logging
260
+ * @inputs ctx: CoreContext — Request context with principal and database
261
+ * @inputs _body: any — Request body (unused for DELETE)
262
+ * @outputs {success: true} — Confirmation of successful deletion
263
+ * @depends-on [createHandler, emitLog]
264
+ * @depended-by [Netlify function routing]
265
+ * @side-effects [DB delete, audit logging]
266
+ * @tags prompt-configs, remove, delete, audit
267
+ */
268
+ export const remove = createHandler(async (ctx, _body) => {
269
+ const id = ctx.query?.id
270
+
271
+ if (!id) {
272
+ throw new Error('Config ID is required')
273
+ }
274
+
275
+ const { data: current } = await ctx.db
276
+ .from('prompt_configs')
277
+ .select('id, name, slug')
278
+ .eq('id', id)
279
+ .single()
280
+
281
+ if (!current) throw new Error('Prompt config not found')
282
+
283
+ const { error: err } = await ctx.db
284
+ .from('prompt_configs')
285
+ .delete()
286
+ .eq('id', id)
287
+
288
+ if (err) throw err
289
+
290
+ await emitLog(ctx, 'prompt_config.deleted',
291
+ { type: 'prompt_config', id },
292
+ { before: current }
293
+ )
294
+
295
+ return { success: true }
296
+ })
297
+ // ─── CHUNK_END: PROMPT_CONFIGS_REMOVE ────────────────────────────────────────────────
298
+
299
+ // ─── MAIN HANDLER ────────────────────────────────────────────────────────────
300
+
301
+ // ─── CHUNK_START: PROMPT_CONFIGS_HANDLER ──────────────────────────────────────────────
302
+ /**
303
+ * @chunk-id PROMPT_CONFIGS_HANDLER_1_0_0
304
+ * @version 1.0.0
305
+ * @hash a49f4917dd07295e0ba9815bf929cccc5cffcbe4dcf6852aa4bd84d6cba1b690
306
+ * @macro Prompt Configs Router
307
+ * @micro Routes HTTP methods to appropriate prompt config handlers
308
+ * @inputs ctx: CoreContext — Request context with principal and database
309
+ * @inputs body: any — Request body for POST/PATCH operations
310
+ * @outputs Varies — Depends on routed handler (list/get/create/update/remove)
311
+ * @depends-on [createHandler, list, get, create, update, remove]
312
+ * @depended-by [Netlify function routing]
313
+ * @side-effects [Delegates to appropriate handler]
314
+ * @tags prompt-configs, router, crud, netlify-function
315
+ */
316
+ export const handler = createHandler(async (ctx, body) => {
317
+ const { action } = ctx.query || {}
318
+ const method = ctx.query?.method || 'GET'
319
+
320
+ switch (action) {
321
+ default:
322
+ if (method === 'GET') {
323
+ if (ctx.query?.id) {
324
+ return await get(ctx, body)
325
+ } else {
326
+ return await list(ctx, body)
327
+ }
328
+ } else if (method === 'POST') {
329
+ return await create(ctx, body)
330
+ } else if (method === 'PATCH') {
331
+ return await update(ctx, body)
332
+ } else if (method === 'DELETE') {
333
+ return await remove(ctx, body)
334
+ }
335
+ }
336
+
337
+ throw new Error('Invalid action or method')
338
+ })
339
+ // ─── CHUNK_END: PROMPT_CONFIGS_HANDLER ────────────────────────────────────────────────