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,382 @@
1
+ /**
2
+ * @module index
3
+ * @audience installer
4
+ * @layer shared-core
5
+ * @stability stable
6
+ *
7
+ * Spine v2 Core — Public Import Surface
8
+ *
9
+ * This is the **single, stable entry point** for all custom code importing
10
+ * Spine core functionality. Everything exported here is a committed contract.
11
+ * Internal helpers not listed here are free to change without notice.
12
+ *
13
+ * ## Usage
14
+ *
15
+ * ### In custom functions (v2-custom/functions/)
16
+ * ```ts
17
+ * import { runPipeline, adminDb, SYSTEM_PRINCIPAL, CoreContext } from '../_shared'
18
+ *
19
+ * const ctx: CoreContext = {
20
+ * principal: SYSTEM_PRINCIPAL,
21
+ * accountId: myAccountId,
22
+ * db: adminDb,
23
+ * requestId: crypto.randomUUID()
24
+ * }
25
+ * const result = await runPipeline(pipelineId, triggerData, ctx)
26
+ * ```
27
+ *
28
+ * ### In CLI commands
29
+ * ```ts
30
+ * import { runPipeline, adminDb, resolvePrincipal, CoreContext } from '../functions/_shared'
31
+ * ```
32
+ *
33
+ * ### Stability contract
34
+ * - All exports in this file are stable across patch and minor versions
35
+ * - Breaking changes require a major version bump and migration guide
36
+ * - Do NOT import from individual `_shared/*.ts` files directly — use this index
37
+ *
38
+ * @seeAlso middleware.ts (CoreContext, createHandler, HTTP helpers)
39
+ * @seeAlso principal.ts (Principal interface, SYSTEM_PRINCIPAL, resolvePrincipal)
40
+ * @seeAlso db.ts (adminDb, getUserDb, joins)
41
+ * @seeAlso pipeline-runner.ts (runPipeline, ExecutionResult)
42
+ * @seeAlso trigger-engine.ts (fire*Triggers, EventType)
43
+ * @seeAlso agent-runner.ts (runAgent, AgentConfig, InferenceResult)
44
+ * @seeAlso permissions.ts (PermissionEngine, sanitizeRecordData)
45
+ * @seeAlso schema-utils.ts (generateValidationSchema, ValidationSchema)
46
+ * @seeAlso audit.ts (emitAudit)
47
+ */
48
+
49
+ // ============================================
50
+ // Context — Execution context types
51
+ // ============================================
52
+
53
+ /**
54
+ * CoreContext — the minimal execution context accepted by all Spine core functions.
55
+ * Construct one directly for import/CLI usage; API handlers get it from createHandler().
56
+ *
57
+ * @example
58
+ * ```ts
59
+ * const ctx: CoreContext = {
60
+ * principal: SYSTEM_PRINCIPAL,
61
+ * accountId: 'uuid-here',
62
+ * db: adminDb,
63
+ * requestId: crypto.randomUUID()
64
+ * }
65
+ * ```
66
+ */
67
+ export type { CoreContext } from './middleware'
68
+
69
+ /**
70
+ * RequestContext — CoreContext extended with HTTP-specific fields.
71
+ * Only needed if you are writing an API handler function.
72
+ */
73
+ export type { RequestContext, HandlerFunction, HandlerResult } from './middleware'
74
+
75
+ /**
76
+ * createHandler — wraps a handler function with auth, principal resolution, and audit.
77
+ * Use this when writing Netlify function handlers.
78
+ */
79
+ export { createHandler, requireUserContext, requireSystemContextWithAudit, json, error as errorResponse, cors } from './middleware'
80
+
81
+ // ============================================
82
+ // Identity — Principal model
83
+ // ============================================
84
+
85
+ /**
86
+ * Principal — unified identity for all actors (humans, machines, cron, triggers).
87
+ */
88
+ export type { Principal } from './principal'
89
+
90
+ /**
91
+ * resolvePrincipal — resolves a Principal from an incoming HTTP event.
92
+ * Used in custom handler wrappers.
93
+ */
94
+ export { resolvePrincipal } from './principal'
95
+
96
+ /**
97
+ * isSystemAdmin — returns true if principal has the system_admin role.
98
+ */
99
+ export { isSystemAdmin } from './principal'
100
+
101
+ /**
102
+ * machineHasScope — checks whether a machine principal has a given scope.
103
+ * Supports wildcards: "items:*", "*:*".
104
+ */
105
+ export { machineHasScope, humanHasRole } from './principal'
106
+
107
+ /**
108
+ * getPrincipalDb — returns the appropriate DB client for a principal.
109
+ * Humans get RLS-scoped client; machines get adminDb.
110
+ */
111
+ export { getPrincipalDb } from './principal'
112
+
113
+ /**
114
+ * formatPrincipalForAudit — structures a principal for audit log metadata.
115
+ */
116
+ export { formatPrincipalForAudit } from './principal'
117
+
118
+ /**
119
+ * ANONYMOUS_PRINCIPAL — static principal for unauthenticated requests.
120
+ */
121
+ export { ANONYMOUS_PRINCIPAL } from './principal'
122
+
123
+ /**
124
+ * SYSTEM_PRINCIPAL — static principal for internal system operations.
125
+ * Use this when constructing a CoreContext for CLI or import usage without
126
+ * a real authenticated user.
127
+ */
128
+ export { SYSTEM_PRINCIPAL } from './principal'
129
+
130
+ // ============================================
131
+ // Database — Supabase clients
132
+ // ============================================
133
+
134
+ /**
135
+ * adminDb — Supabase service_role client. Bypasses RLS.
136
+ * Use for system operations, migrations, machine principal actions.
137
+ */
138
+ export { adminDb } from './db'
139
+
140
+ /**
141
+ * getUserDb — Returns a JWT-scoped Supabase client with RLS enforced.
142
+ * Use for human-principal requests.
143
+ */
144
+ export { getUserDb } from './db'
145
+
146
+ /**
147
+ * joins — PostgREST relationship hint strings for common FK relationships.
148
+ * @example `.select(\`*, \${joins.type}, \${joins.app}\`)`
149
+ */
150
+ export { joins } from './db'
151
+
152
+ export type { DbResult } from './db'
153
+
154
+ // ============================================
155
+ // Pipeline Runtime
156
+ // ============================================
157
+
158
+ /**
159
+ * runPipeline — execute a pipeline by ID with trigger data.
160
+ *
161
+ * @param pipelineId - UUID of the pipeline to run
162
+ * @param triggerData - Arbitrary data passed to all pipeline stages
163
+ * @param ctx - CoreContext (principal + accountId + db + requestId)
164
+ * @returns ExecutionResult with per-stage output and final status
165
+ * @throws If pipeline not found or inactive
166
+ *
167
+ * @example API handler
168
+ * ```ts
169
+ * const result = await runPipeline(body.pipeline_id, body.data, ctx)
170
+ * ```
171
+ *
172
+ * @example Custom import
173
+ * ```ts
174
+ * import { runPipeline, adminDb, SYSTEM_PRINCIPAL } from '../_shared'
175
+ * const ctx = { principal: SYSTEM_PRINCIPAL, accountId, db: adminDb, requestId: crypto.randomUUID() }
176
+ * const result = await runPipeline('uuid', { item_id: '...' }, ctx)
177
+ * ```
178
+ *
179
+ * @example CLI
180
+ * ```bash
181
+ * spine pipelines run <pipeline-id> --data '{"item_id":"..."}'
182
+ * ```
183
+ */
184
+ export { runPipeline } from './pipeline-runner'
185
+ export type { ExecutionResult, StageResult } from './pipeline-runner'
186
+
187
+ // ============================================
188
+ // Trigger Engine
189
+ // ============================================
190
+
191
+ /**
192
+ * checkAndFireTriggers — evaluate and fire all active triggers matching an event.
193
+ *
194
+ * @param eventType - e.g. 'item_created', 'account_updated'
195
+ * @param entityType - table name string
196
+ * @param entityId - UUID of the affected entity
197
+ * @param entityData - full entity data for condition evaluation
198
+ * @param ctx - CoreContext
199
+ *
200
+ * @example
201
+ * ```ts
202
+ * await checkAndFireTriggers('item_created', 'items', item.id, item, ctx)
203
+ * ```
204
+ */
205
+ export { checkAndFireTriggers, fireCreateTriggers, fireUpdateTriggers, fireDeleteTriggers } from './trigger-engine'
206
+ export type { EventType } from './trigger-engine'
207
+
208
+ // ============================================
209
+ // Agent Runner
210
+ // ============================================
211
+
212
+ /**
213
+ * runAgent — run AI agent inference for a user message in a thread.
214
+ *
215
+ * Resolves agent config from thread → agent → prompt_config chain,
216
+ * assembles RAG context, calls LLM, handles tool dispatch and escalation.
217
+ *
218
+ * @param threadId - UUID of the thread
219
+ * @param userMessage - The user's message text
220
+ * @param ctx - CoreContext
221
+ * @returns Saved agent message record
222
+ *
223
+ * @example
224
+ * ```ts
225
+ * const msg = await runAgent(threadId, 'How do I reset my password?', ctx)
226
+ * ```
227
+ */
228
+ export { runAgent, resolveAgentConfig } from './agent-runner'
229
+ export type { AgentConfig, InferenceResult, ToolCall, ToolResult } from './agent-runner'
230
+
231
+ // ============================================
232
+ // Permissions
233
+ // ============================================
234
+
235
+ /**
236
+ * PermissionEngine — the single source of truth for all authorization.
237
+ *
238
+ * @example
239
+ * ```ts
240
+ * const canRead = await PermissionEngine.canAccessRecord(ctx, record, 'read')
241
+ * const sanitized = await PermissionEngine.sanitizeRecordData(ctx, record, 'support_ticket')
242
+ * ```
243
+ */
244
+ export { PermissionEngine } from './permissions'
245
+ export type { PermissionResult } from './permissions'
246
+
247
+ // Legacy permission helpers (stable, bound to PermissionEngine instance)
248
+ export { sanitizeRecordData, validateUpdatePermissions, canAccessRecord } from './permissions'
249
+
250
+ // ============================================
251
+ // Schema Utilities
252
+ // ============================================
253
+
254
+ /**
255
+ * generateValidationSchema — derive a structural validation schema from a design schema.
256
+ * Called automatically on type create/update; also useful in custom code.
257
+ */
258
+ export { generateValidationSchema } from './schema-utils'
259
+ export type { ValidationSchema } from './schema-utils'
260
+
261
+ // ============================================
262
+ // Audit
263
+ // ============================================
264
+
265
+ /**
266
+ * emitAudit — emit a structured audit log entry with full principal provenance.
267
+ *
268
+ * @param ctx - CoreContext
269
+ * @param action - e.g. 'items.create', 'pipeline.completed'
270
+ * @param target - { type, id, account_id }
271
+ * @param metadata - additional structured context
272
+ *
273
+ * @example
274
+ * ```ts
275
+ * await emitAudit(ctx, 'deal.stage_changed', { type: 'items', id: deal.id }, {
276
+ * before: { stage: 'prospect' },
277
+ * after: { stage: 'qualified' }
278
+ * })
279
+ * ```
280
+ */
281
+ export { emitAudit } from './audit'
282
+
283
+ // ============================================
284
+ // Webhook Registry
285
+ // ============================================
286
+
287
+ /**
288
+ * resolveHandler — dynamically load a webhook handler by name.
289
+ *
290
+ * Used by integration-routes.ts to resolve handlers at runtime
291
+ * without static imports, enabling custom handlers to self-register.
292
+ *
293
+ * @param handlerName — The handler identifier from webhook_handlers table
294
+ * @returns Handler function or null if not found
295
+ *
296
+ * @example
297
+ * ```ts
298
+ * const handler = await resolveHandler('cortex-webhook')
299
+ * if (handler) await handler(event, context)
300
+ * ```
301
+ */
302
+ export { resolveHandler, lookupHandler, loadHandler } from './webhook-registry'
303
+
304
+ /**
305
+ * registerWebhookHandler — self-register a custom webhook handler.
306
+ *
307
+ * Use in custom Netlify functions to register as webhook handlers
308
+ * without modifying core code.
309
+ *
310
+ * @param config — Handler registration details
311
+ *
312
+ * @example
313
+ * ```ts
314
+ * import { registerWebhookHandler } from '@core/_shared'
315
+ * import { adminDb } from '@core/_shared'
316
+ *
317
+ * registerWebhookHandler({
318
+ * name: 'my-handler',
319
+ * functionName: 'custom_my-handler',
320
+ * events: ['item.created']
321
+ * }, adminDb)
322
+ * ```
323
+ */
324
+ export { registerWebhookHandler, deregisterWebhookHandler, isHandlerRegistered } from './webhook-registration'
325
+ export type { WebhookHandlerRegistration } from './webhook-registration'
326
+
327
+ // ============================================
328
+ // App Manifest Utilities
329
+ // ============================================
330
+
331
+ /**
332
+ * loadManifest — load and parse an app manifest.json file.
333
+ *
334
+ * Used by apps.ts to merge database records with file-based
335
+ * app configuration (name, routes, nav_items, required_roles).
336
+ *
337
+ * @param manifestPath — Path to manifest.json relative to project root
338
+ * @returns Parsed AppManifest or null if not found/invalid
339
+ *
340
+ * @example
341
+ * ```ts
342
+ * const manifest = loadManifest('custom/apps/cortex/manifest.json')
343
+ * console.log(manifest.required_roles) // ['member']
344
+ * ```
345
+ */
346
+ export { loadManifest, mergeWithManifest, clearManifestCache, discoverManifests } from './app-manifest'
347
+ export type { AppManifest, NavItem } from './app-manifest'
348
+
349
+ // ============================================
350
+ // Testing Utilities
351
+ // ============================================
352
+
353
+ /**
354
+ * Testing utilities for custom code developers.
355
+ *
356
+ * Use these helpers to test your custom functions without
357
+ * full deployment. Includes mock contexts, principals, and
358
+ * assertion helpers.
359
+ *
360
+ * @example
361
+ * ```ts
362
+ * import { makeTestContext, mockPrincipal, cleanup } from '@core/testing'
363
+ *
364
+ * describe('My Handler', () => {
365
+ * const ctx = makeTestContext({
366
+ * principal: mockPrincipal({ roles: ['member'] })
367
+ * })
368
+ * })
369
+ * ```
370
+ */
371
+ export {
372
+ makeTestContext,
373
+ mockPrincipal,
374
+ mockLogger,
375
+ mockEvent,
376
+ mockNetlifyContext,
377
+ cleanup,
378
+ setupTests,
379
+ expectSuccessResponse,
380
+ expectErrorResponse
381
+ } from './testing'
382
+ export type { TestContext, TestPrincipal, TestLogger } from './testing'