spine-framework 0.3.124 → 0.3.126

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 (319) hide show
  1. package/.framework/cli/commands/agents.ts +35 -37
  2. package/.framework/cli/commands/auth.ts +35 -34
  3. package/.framework/cli/commands/create-app.ts +104 -40
  4. package/.framework/cli/commands/dev.ts +104 -69
  5. package/.framework/cli/commands/doctor.ts +179 -69
  6. package/.framework/cli/commands/generate.ts +83 -143
  7. package/.framework/cli/commands/init.ts +72 -34
  8. package/.framework/cli/commands/install-app.ts +260 -125
  9. package/.framework/cli/commands/items.ts +33 -44
  10. package/.framework/cli/commands/migrate.ts +122 -40
  11. package/.framework/cli/commands/migrations.ts +33 -40
  12. package/.framework/cli/commands/pipelines.ts +31 -39
  13. package/.framework/cli/commands/status.ts +47 -23
  14. package/.framework/cli/commands/system.ts +47 -37
  15. package/.framework/cli/commands/test.ts +112 -68
  16. package/.framework/cli/commands/validate-app.ts +215 -121
  17. package/.framework/cli/context.ts +112 -130
  18. package/.framework/cli/env-loader.ts +47 -18
  19. package/.framework/cli/index.ts +81 -42
  20. package/.framework/docs/runtime-types.md +1024 -0
  21. package/.framework/functions/_shared/agent-runner.ts +1296 -961
  22. package/.framework/functions/_shared/app-manifest.ts +82 -68
  23. package/.framework/functions/_shared/audit.ts +135 -83
  24. package/.framework/functions/_shared/{cil-state.ts → cil.ts} +158 -56
  25. package/.framework/functions/_shared/db.ts +80 -126
  26. package/.framework/functions/_shared/hash-api-key.ts +63 -0
  27. package/.framework/functions/_shared/index.ts +224 -335
  28. package/.framework/functions/_shared/kb.ts +319 -0
  29. package/.framework/functions/_shared/llm.ts +92 -0
  30. package/.framework/functions/_shared/logging.ts +288 -0
  31. package/.framework/functions/_shared/middleware.ts +329 -365
  32. package/.framework/functions/_shared/outcomes.ts +36 -0
  33. package/.framework/functions/_shared/permissions.ts +359 -643
  34. package/.framework/functions/_shared/pipeline-runner.ts +243 -316
  35. package/.framework/functions/_shared/principal.ts +376 -468
  36. package/.framework/functions/_shared/resolve-credentials.ts +102 -0
  37. package/.framework/functions/_shared/resolve-ids.ts +188 -16
  38. package/.framework/functions/_shared/retry-deliveries.ts +104 -0
  39. package/.framework/functions/_shared/schema-utils.ts +611 -373
  40. package/.framework/functions/_shared/testing.ts +207 -137
  41. package/.framework/functions/_shared/tracing.ts +276 -0
  42. package/.framework/functions/_shared/trigger-engine.ts +159 -211
  43. package/.framework/functions/_shared/webhook-registration.ts +95 -81
  44. package/.framework/functions/_shared/webhook-registry.ts +153 -75
  45. package/.framework/functions/account-nodes.ts +31 -53
  46. package/.framework/functions/adapters/generic-webhook-inbound.ts +56 -0
  47. package/.framework/functions/adapters/generic-webhook-outbound.ts +43 -0
  48. package/.framework/functions/adapters/openai-outbound.ts +40 -0
  49. package/.framework/functions/admin-data.ts +685 -537
  50. package/.framework/functions/admin-funnel.ts +31 -20
  51. package/.framework/functions/admin-install-funnel.ts +47 -28
  52. package/.framework/functions/admin-signals.ts +47 -29
  53. package/.framework/functions/ai-agents.ts +122 -147
  54. package/.framework/functions/ai-interactions.ts +180 -90
  55. package/.framework/functions/api-keys.ts +250 -192
  56. package/.framework/functions/apps.ts +203 -197
  57. package/.framework/functions/auth.ts +98 -91
  58. package/.framework/functions/cil-agent-ingest.ts +773 -0
  59. package/.framework/functions/cil-agent.ts +592 -0
  60. package/.framework/functions/cil-callmap.ts +1227 -0
  61. package/.framework/functions/cil-config.ts +583 -0
  62. package/.framework/functions/cil-context.ts +445 -0
  63. package/.framework/functions/cil-doc.ts +1752 -0
  64. package/.framework/functions/cil-embeddings.ts +1202 -0
  65. package/.framework/functions/cil-graph.ts +585 -0
  66. package/.framework/functions/cil-ingest.ts +2416 -0
  67. package/.framework/functions/cil-pipeline.ts +318 -0
  68. package/.framework/functions/cil-project.ts +499 -0
  69. package/.framework/functions/cil-validate.ts +469 -0
  70. package/.framework/functions/debug-auth.ts +73 -53
  71. package/.framework/functions/deliveries.ts +117 -0
  72. package/.framework/functions/embeddings.ts +528 -516
  73. package/.framework/functions/eval-harness.ts +158 -106
  74. package/.framework/functions/integration-outbound.ts +311 -0
  75. package/.framework/functions/integration-routes.ts +240 -466
  76. package/.framework/functions/integrations.ts +132 -140
  77. package/.framework/functions/invites.ts +401 -201
  78. package/.framework/functions/item-progress.ts +113 -53
  79. package/.framework/functions/kb.ts +28 -0
  80. package/.framework/functions/logs.ts +239 -222
  81. package/.framework/functions/observability.ts +308 -259
  82. package/.framework/functions/pipeline-executions.ts +179 -235
  83. package/.framework/functions/pipelines.ts +163 -205
  84. package/.framework/functions/prompt-configs.ts +109 -156
  85. package/.framework/functions/roles.ts +97 -147
  86. package/.framework/functions/system-cron.ts +132 -218
  87. package/.framework/functions/system.ts +112 -52
  88. package/.framework/functions/tests.ts +32 -28
  89. package/.framework/functions/timers.ts +162 -210
  90. package/.framework/functions/triggers.ts +282 -346
  91. package/.framework/functions/types.ts +283 -400
  92. package/.framework/migrations/001_core_schema.sql +630 -0
  93. package/.framework/migrations/002_core_rls_and_functions.sql +532 -0
  94. package/.framework/migrations/{003_system_data.sql → 003_core_system_data.sql} +26 -153
  95. package/.framework/migrations/004_core_rpc_and_broker.sql +421 -0
  96. package/.framework/migrations/005_core_observability.sql +598 -0
  97. package/.framework/migrations/006_security_hardening_rls.sql +97 -0
  98. package/.framework/migrations/007_kb_article_list.sql +237 -0
  99. package/.framework/migrations/008_items_target.sql +8 -0
  100. package/.framework/migrations/009_roles_slug_unique.sql +11 -0
  101. package/.framework/public/spine.config.json +91 -0
  102. package/.framework/scripts/app-install-cli.ts +112 -98
  103. package/.framework/src/App.tsx +67 -20
  104. package/.framework/src/apps/admin/index.tsx +97 -27
  105. package/.framework/src/components/AppWrapper.tsx +50 -11
  106. package/.framework/src/components/CustomAppLoader.tsx +131 -22
  107. package/.framework/src/components/admin/AdminListPage.tsx +75 -8
  108. package/.framework/src/components/admin/AdminSidebar.tsx +148 -36
  109. package/.framework/src/components/admin/AdminStatsCard.tsx +48 -29
  110. package/.framework/src/components/admin/PageInstructions.tsx +49 -0
  111. package/.framework/src/components/admin/SortableTableHeader.tsx +49 -2
  112. package/.framework/src/components/app-shell/GenericAppShell.tsx +69 -11
  113. package/.framework/src/components/app-shell/GenericDetailPage.tsx +55 -10
  114. package/.framework/src/components/app-shell/GenericListPage.tsx +76 -9
  115. package/.framework/src/components/app-sidebar.tsx +50 -3
  116. package/.framework/src/components/auth/ProtectedRoute.tsx +53 -45
  117. package/.framework/src/components/kb/KBArticleEditor.tsx +409 -0
  118. package/.framework/src/components/kb/KBArticleList.tsx +557 -0
  119. package/.framework/src/components/layout/AppShell.tsx +54 -16
  120. package/.framework/src/components/layout/Header.tsx +50 -38
  121. package/.framework/src/components/layout/Layout.tsx +48 -32
  122. package/.framework/src/components/layout/Sidebar.tsx +167 -16
  123. package/.framework/src/components/runtime/DataDetailHeader.tsx +33 -1
  124. package/.framework/src/components/runtime/DataDetailPage.tsx +289 -4
  125. package/.framework/src/components/runtime/DataFilters.tsx +78 -1
  126. package/.framework/src/components/runtime/DataHeader.tsx +32 -29
  127. package/.framework/src/components/runtime/DataListPage.tsx +161 -2
  128. package/.framework/src/components/runtime/DataStats.tsx +48 -1
  129. package/.framework/src/components/runtime/DataTable.tsx +153 -1
  130. package/.framework/src/components/runtime/SchemaDetailForm.tsx +77 -46
  131. package/.framework/src/components/runtime/index.ts +16 -9
  132. package/.framework/src/components/search-form.tsx +33 -1
  133. package/.framework/src/components/shared/AgentView.tsx +48 -51
  134. package/.framework/src/components/shared/FieldRenderer.tsx +84 -67
  135. package/.framework/src/components/shared/InviteManager.tsx +113 -52
  136. package/.framework/src/components/shared/MemberList.tsx +182 -0
  137. package/.framework/src/components/shared/SchemaFields.tsx +96 -78
  138. package/.framework/src/components/ui/DataTable.tsx +86 -56
  139. package/.framework/src/components/ui/Form.tsx +188 -109
  140. package/.framework/src/components/ui/ItemCard.tsx +86 -58
  141. package/.framework/src/components/ui/ItemListView.tsx +88 -61
  142. package/.framework/src/components/ui/LoadingSpinner.tsx +52 -27
  143. package/.framework/src/components/ui/Modal.tsx +81 -4
  144. package/.framework/src/components/ui/RichTextEditor.tsx +101 -9
  145. package/.framework/src/components/ui/accordion.tsx +97 -5
  146. package/.framework/src/components/ui/alert-dialog.tsx +225 -13
  147. package/.framework/src/components/ui/alert.tsx +113 -6
  148. package/.framework/src/components/ui/aspect-ratio.tsx +49 -2
  149. package/.framework/src/components/ui/avatar.tsx +129 -7
  150. package/.framework/src/components/ui/badge.tsx +65 -3
  151. package/.framework/src/components/ui/breadcrumb.tsx +145 -8
  152. package/.framework/src/components/ui/button-group.tsx +81 -4
  153. package/.framework/src/components/ui/button.tsx +49 -2
  154. package/.framework/src/components/ui/calendar.tsx +65 -3
  155. package/.framework/src/components/ui/card.tsx +145 -8
  156. package/.framework/src/components/ui/carousel.tsx +129 -7
  157. package/.framework/src/components/ui/chart.tsx +161 -10
  158. package/.framework/src/components/ui/checkbox.tsx +49 -2
  159. package/.framework/src/components/ui/collapsible.tsx +81 -5
  160. package/.framework/src/components/ui/combobox.tsx +305 -20
  161. package/.framework/src/components/ui/command.tsx +177 -11
  162. package/.framework/src/components/ui/context-menu.tsx +273 -17
  163. package/.framework/src/components/ui/dialog.tsx +209 -27
  164. package/.framework/src/components/ui/direction.tsx +64 -4
  165. package/.framework/src/components/ui/drawer.tsx +193 -12
  166. package/.framework/src/components/ui/dropdown-menu.tsx +273 -18
  167. package/.framework/src/components/ui/empty.tsx +145 -9
  168. package/.framework/src/components/ui/field.tsx +209 -14
  169. package/.framework/src/components/ui/hover-card.tsx +81 -4
  170. package/.framework/src/components/ui/input-group.tsx +162 -10
  171. package/.framework/src/components/ui/input-otp.tsx +98 -5
  172. package/.framework/src/components/ui/input.tsx +49 -2
  173. package/.framework/src/components/ui/item.tsx +225 -13
  174. package/.framework/src/components/ui/kbd.tsx +65 -3
  175. package/.framework/src/components/ui/label.tsx +49 -2
  176. package/.framework/src/components/ui/menubar.tsx +289 -17
  177. package/.framework/src/components/ui/native-select.tsx +97 -5
  178. package/.framework/src/components/ui/navigation-menu.tsx +177 -10
  179. package/.framework/src/components/ui/pagination.tsx +161 -9
  180. package/.framework/src/components/ui/popover.tsx +145 -8
  181. package/.framework/src/components/ui/progress.tsx +49 -2
  182. package/.framework/src/components/ui/radio-group.tsx +65 -3
  183. package/.framework/src/components/ui/resizable.tsx +82 -4
  184. package/.framework/src/components/ui/scroll-area.tsx +65 -3
  185. package/.framework/src/components/ui/select.tsx +193 -11
  186. package/.framework/src/components/ui/separator.tsx +49 -2
  187. package/.framework/src/components/ui/sheet.tsx +193 -11
  188. package/.framework/src/components/ui/sidebar.tsx +481 -38
  189. package/.framework/src/components/ui/skeleton.tsx +49 -2
  190. package/.framework/src/components/ui/slider.tsx +49 -2
  191. package/.framework/src/components/ui/sonner.tsx +49 -2
  192. package/.framework/src/components/ui/spinner.tsx +49 -2
  193. package/.framework/src/components/ui/switch.tsx +49 -2
  194. package/.framework/src/components/ui/table-primitives.tsx +160 -33
  195. package/.framework/src/components/ui/table.tsx +161 -9
  196. package/.framework/src/components/ui/tabs.tsx +113 -6
  197. package/.framework/src/components/ui/textarea.tsx +49 -2
  198. package/.framework/src/components/ui/toggle-group.tsx +81 -4
  199. package/.framework/src/components/ui/toggle.tsx +65 -3
  200. package/.framework/src/components/ui/tooltip.tsx +97 -5
  201. package/.framework/src/contexts/AppContext.tsx +129 -45
  202. package/.framework/src/contexts/AuthContext.tsx +187 -144
  203. package/.framework/src/hooks/use-mobile.ts +48 -2
  204. package/.framework/src/hooks/useApi.ts +208 -159
  205. package/.framework/src/hooks/useAppPath.ts +32 -23
  206. package/.framework/src/hooks/useApps.ts +51 -20
  207. package/.framework/src/hooks/useEntityList.ts +32 -78
  208. package/.framework/src/hooks/useEntityRecord.ts +35 -96
  209. package/.framework/src/hooks/useForm.ts +32 -92
  210. package/.framework/src/hooks/useListSchema.ts +49 -78
  211. package/.framework/src/hooks/useSchemaRecord.ts +114 -105
  212. package/.framework/src/lib/api.ts +195 -116
  213. package/.framework/src/lib/supabase.ts +98 -64
  214. package/.framework/src/lib/utils.ts +287 -151
  215. package/.framework/src/main.tsx +49 -3
  216. package/.framework/src/pages/DashboardPage.tsx +52 -29
  217. package/.framework/src/pages/NotFoundPage.tsx +32 -10
  218. package/.framework/src/pages/SetupPage.tsx +32 -12
  219. package/.framework/src/pages/admin/AIAgentDetailPage.tsx +119 -10
  220. package/.framework/src/pages/admin/AIAgentsPage.tsx +48 -19
  221. package/.framework/src/pages/admin/APIKeyDetailPage.tsx +187 -17
  222. package/.framework/src/pages/admin/APIKeysPage.tsx +98 -22
  223. package/.framework/src/pages/admin/AlertsConfigPage.tsx +113 -26
  224. package/.framework/src/pages/admin/AppDetailPage.tsx +125 -8
  225. package/.framework/src/pages/admin/AppsPage.tsx +49 -2
  226. package/.framework/src/pages/admin/DeliveriesPage.tsx +196 -0
  227. package/.framework/src/pages/admin/DesignedPage.tsx +32 -18
  228. package/.framework/src/pages/admin/EmbeddingDetailPage.tsx +215 -484
  229. package/.framework/src/pages/admin/EmbeddingsPage.tsx +116 -319
  230. package/.framework/src/pages/admin/ExtendedShadcnTestPage.tsx +34 -9
  231. package/.framework/src/pages/admin/IncrementalShadcnTestPage.tsx +34 -9
  232. package/.framework/src/pages/admin/IntegratedDashboard.tsx +32 -16
  233. package/.framework/src/pages/admin/IntegrationDetailPage.tsx +183 -26
  234. package/.framework/src/pages/admin/IntegrationsPage.tsx +48 -19
  235. package/.framework/src/pages/admin/InvitesPage.tsx +48 -14
  236. package/.framework/src/pages/admin/LogsPage.tsx +422 -75
  237. package/.framework/src/pages/admin/MinimalShadcnTestPage.tsx +34 -9
  238. package/.framework/src/pages/admin/ObservabilityDashboard.tsx +113 -24
  239. package/.framework/src/pages/admin/PipelineDetailPage.tsx +206 -34
  240. package/.framework/src/pages/admin/PipelineExecutionsPage.tsx +50 -17
  241. package/.framework/src/pages/admin/PipelinesPage.tsx +160 -21
  242. package/.framework/src/pages/admin/PromptConfigDetailPage.tsx +378 -88
  243. package/.framework/src/pages/admin/PromptConfigsPage.tsx +125 -16
  244. package/.framework/src/pages/admin/ProperlyDesignedPage.tsx +49 -10
  245. package/.framework/src/pages/admin/RoleDetailPage.tsx +130 -10
  246. package/.framework/src/pages/admin/RolesPage.tsx +171 -18
  247. package/.framework/src/pages/admin/SelectTestPage.tsx +34 -9
  248. package/.framework/src/pages/admin/ShadcnTestPage.tsx +49 -11
  249. package/.framework/src/pages/admin/SimpleDashboard.tsx +49 -10
  250. package/.framework/src/pages/admin/TestRunDetailPage.tsx +49 -4
  251. package/.framework/src/pages/admin/TestingDashboard.tsx +98 -28
  252. package/.framework/src/pages/admin/TimerDetailPage.tsx +143 -33
  253. package/.framework/src/pages/admin/TimersPage.tsx +48 -20
  254. package/.framework/src/pages/admin/TriggerDetailPage.tsx +118 -30
  255. package/.framework/src/pages/admin/TriggersPage.tsx +64 -19
  256. package/.framework/src/pages/admin/TypeDetailPage.tsx +138 -15
  257. package/.framework/src/pages/admin/TypesPage.tsx +48 -20
  258. package/.framework/src/pages/admin/cil/CILAgentPage.tsx +465 -0
  259. package/.framework/src/pages/admin/cil/CILChunkDetailPage.tsx +787 -0
  260. package/.framework/src/pages/admin/cil/CILDashboardPage.tsx +699 -0
  261. package/.framework/src/pages/admin/cil/CILFileListPage.tsx +647 -0
  262. package/.framework/src/pages/admin/cil/CILGraphPage.tsx +616 -0
  263. package/.framework/src/pages/admin/cil/CILIngestionPage.tsx +1402 -0
  264. package/.framework/src/pages/admin/cil/CILProjectsPage.tsx +614 -0
  265. package/.framework/src/pages/admin/cil/CILSearchPage.tsx +571 -0
  266. package/.framework/src/pages/admin/cil/FlexiblePipelinePage.tsx +731 -0
  267. package/.framework/src/pages/admin/kb/KBAdminPage.tsx +64 -0
  268. package/.framework/src/pages/auth/AuthConfirmPage.tsx +52 -51
  269. package/.framework/src/pages/auth/ForgotPasswordPage.tsx +31 -22
  270. package/.framework/src/pages/auth/LoginPage.tsx +50 -23
  271. package/.framework/src/pages/auth/PendingApprovalPage.tsx +31 -15
  272. package/.framework/src/pages/auth/RegisterPage.tsx +281 -317
  273. package/.framework/src/pages/spine-framework/APIPage.tsx +33 -0
  274. package/.framework/src/pages/spine-framework/CLIPage.tsx +33 -0
  275. package/.framework/src/types/auth.ts +128 -71
  276. package/.framework/src/types/types.ts +373 -157
  277. package/custom/.devin/skills/spine-workbench-discovery/SKILL.md +39 -0
  278. package/custom/.devin/skills/spine-workbench-idea/SKILL.md +36 -0
  279. package/custom/.devin/skills/spine-workbench-implement/SKILL.md +46 -0
  280. package/custom/.devin/skills/spine-workbench-initiative/SKILL.md +28 -0
  281. package/custom/.devin/skills/spine-workbench-plan/SKILL.md +38 -0
  282. package/docs/README.md +9 -130
  283. package/netlify.toml +5 -2
  284. package/package.json +13 -25
  285. package/scripts/kb-ingest-docs.ts +203 -0
  286. package/spine.config.json +65 -4
  287. package/.framework/migrations/001_schema.sql +0 -425
  288. package/.framework/migrations/002_rls_and_functions.sql +0 -763
  289. package/.framework/migrations/004_enhancements.sql +0 -43
  290. package/.framework/migrations/005_auth_user_trigger.sql +0 -105
  291. package/.framework/migrations/006_fix_current_actor_id.sql +0 -21
  292. package/.framework/migrations/016_invites.sql +0 -27
  293. package/.framework/migrations/017_fix_get_account_apps.sql +0 -78
  294. package/.framework/migrations/018_apps_required_roles.sql +0 -17
  295. package/.framework/migrations/019_triggers_unique_constraint.sql +0 -13
  296. package/.framework/migrations/020_get_account_apps_role_filter.sql +0 -117
  297. package/.framework/migrations/021_app_domains.sql +0 -112
  298. package/.framework/migrations/022_route_prefix_domain_unique.sql +0 -21
  299. package/.framework/migrations/023_match_embeddings_rpc.sql +0 -78
  300. package/.framework/migrations/024_messages_account_id.sql +0 -9
  301. package/.framework/migrations/025_retype_threads_messages.sql +0 -240
  302. package/.framework/migrations/026_fix_rls_policies.sql +0 -47
  303. package/.framework/migrations/027_embedding_lifecycle.sql +0 -176
  304. package/.framework/migrations/028_fix_message_data_permissions.sql +0 -49
  305. package/.framework/migrations/029_tighten_support_triage_prompt.sql +0 -41
  306. package/.framework/migrations/030_messages_updated_by.sql +0 -6
  307. package/.framework/migrations/031_seed_upsert_constraints.sql +0 -35
  308. package/docs/APPS.md +0 -232
  309. package/docs/ARCHITECTURE.md +0 -246
  310. package/docs/INSTALL.md +0 -155
  311. package/docs/design-schema-spec.md +0 -1837
  312. package/docs/dev-guides/01-create-an-app.md +0 -183
  313. package/docs/dev-guides/02-create-a-function.md +0 -178
  314. package/docs/dev-guides/03-create-a-component.md +0 -178
  315. package/docs/dev-guides/04-webhook-handlers.md +0 -129
  316. package/docs/dev-guides/05-testing.md +0 -168
  317. package/docs/dev-guides/README.md +0 -40
  318. package/docs/npm-packages-plan.md +0 -288
  319. package/docs/spine-core--api-reference.md +0 -822
@@ -1,373 +1,261 @@
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
1
 
49
- // ============================================
50
- // Context — Execution context types
51
- // ============================================
52
2
 
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
3
 
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, createPublicHandler, requireUserContext, requireSystemContextWithAudit, json, error as errorResponse, cors } from './middleware'
80
4
 
81
- // ============================================
82
- // Identity — Principal model
83
- // ============================================
84
5
 
85
- /**
86
- * Principal — unified identity for all actors (humans, machines, cron, triggers).
87
- */
88
- export type { Principal } from './principal'
89
6
 
90
- /**
91
- * resolvePrincipal — resolves a Principal from an incoming HTTP event.
92
- * Used in custom handler wrappers.
93
- */
94
- export { resolvePrincipal } from './principal'
95
7
 
96
- /**
97
- * isSystemAdmin — returns true if principal has the system_admin role.
98
- */
99
- export { isSystemAdmin } from './principal'
100
8
 
101
- /**
102
- * machineHasScope — checks whether a machine principal has a given scope.
103
- * Supports wildcards: "items:*", "*:*".
104
- */
105
- export { machineHasScope, humanHasRole } from './principal'
106
9
 
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
10
 
113
- /**
114
- * formatPrincipalForAudit — structures a principal for audit log metadata.
115
- */
116
- export { formatPrincipalForAudit } from './principal'
117
11
 
118
- /**
119
- * ANONYMOUS_PRINCIPAL — static principal for unauthenticated requests.
120
- */
121
- export { ANONYMOUS_PRINCIPAL } from './principal'
122
12
 
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
13
 
130
- // ============================================
131
- // Database — Supabase clients
132
- // ============================================
133
14
 
134
- /**
135
- * adminDb — Supabase service_role client. Bypasses RLS.
136
- * Use for system operations, migrations, machine principal actions.
137
- */
15
+ // CIL[BEGIN chunk_id="index_moduleheader_1784066609" type="module_header" identity="module_header" parent="none"]
16
+ // CIL[DOC-MACRO purpose="Barrel export for shared utilities"]
17
+ // CIL[DOC-RESPONSIBILITY responsibility="Provide single import point for all shared functionality"]
18
+ // CIL[DOC-CONTEXT module="_shared/index" layer="infrastructure" related_files="[\".framework/functions/_shared/principal.ts\",\".framework/functions/_shared/schema-utils.ts\",\".framework/functions/_shared/db.ts\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"\\\"]"]
19
+ // CIL[DOC-CONTRACT inputs="none" outputs="re-exported modules" errors="none" side_effects="module aggregation"]
20
+ // CIL[DOC-MICRO logic_summary="Centralized exports for all shared utilities and types" notable_decisions="[]"]
21
+ // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
22
+ // CIL[DOC-STABILITY stability="stable"]
23
+ // CIL[DOC-AUDIENCE audience="developer"]
24
+ // CIL[DOC-VECTOR type="context" content="Layer: infrastructure. Direct callers: 0. Direct calls: 0. Related files: .framework/functions/_shared/principal.ts, .framework/functions/_shared/schema-utils.ts, .framework/functions/_shared/db.ts, .framework/src/pages/admin/TypeDetailPage.tsx, \."]
25
+ // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
26
+ // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
27
+ // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
28
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
29
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
30
+ // CIL[END chunk_id="index_moduleheader_1784066609"]
31
+ // CIL[BEGIN chunk_id="index_context_1784066609" type="exports" identity="context" parent="none"]
32
+ // CIL[DOC-MACRO purpose="Export request context utilities"]
33
+ // CIL[DOC-RESPONSIBILITY responsibility="Re-export middleware context types and functions"]
34
+ // CIL[DOC-CONTEXT module="_shared/index" layer="infrastructure" related_files="[\"\\\"]"]
35
+ // CIL[DOC-CONTRACT inputs="none" outputs="context utilities" errors="none" side_effects="re-exports"]
36
+ // CIL[DOC-MICRO logic_summary="Re-exports CoreContext, handlers, and response utilities" notable_decisions="[]"]
37
+ // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="external_symbols_unknown"]
38
+ // CIL[DOC-STABILITY stability="stable"]
39
+ // CIL[DOC-VECTOR type="context" content="Layer: infrastructure. Direct callers: 0. Direct calls: 0. Related files: \."]
40
+ // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
41
+ // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
42
+ // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
43
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
44
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
45
+ export type { CoreContext } from './middleware'
46
+ export type { RequestContext, HandlerFunction, HandlerResult } from './middleware'
47
+ export { createHandler, createPublicHandler, requireUserContext, requireSystemContextWithAudit, json, error as errorResponse, cors } from './middleware'
48
+ // CIL[END chunk_id="index_context_1784066609"]
49
+ // CIL[BEGIN chunk_id="index_identity_1784066609" type="exports" identity="identity" parent="none"]
50
+ // CIL[DOC-MACRO purpose="Export identity and principal utilities"]
51
+ // CIL[DOC-RESPONSIBILITY responsibility="Re-export principal types and authentication functions"]
52
+ // CIL[DOC-CONTEXT module="_shared/index" layer="infrastructure" related_files="[\".framework/functions/_shared/principal.ts\",\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
53
+ // CIL[DOC-CONTRACT inputs="none" outputs="identity utilities" errors="none" side_effects="re-exports"]
54
+ // CIL[DOC-MICRO logic_summary="Re-exports Principal type, resolution, and auth helpers" notable_decisions="[]"]
55
+ // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="external_symbols_unknown"]
56
+ // CIL[DOC-STABILITY stability="stable"]
57
+ // CIL[DOC-VECTOR type="context" content="Layer: infrastructure. Direct callers: 0. Direct calls: 0. Related files: .framework/functions/_shared/principal.ts, custom/apps/portal/pages/ContentPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/components/ui/dialog.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
58
+ // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
59
+ // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
60
+ // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
61
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
62
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
63
+ export type { Principal } from './principal'
64
+ export { resolvePrincipal } from './principal'
65
+ export { isSystemAdmin } from './principal'
66
+ export { machineHasScope, humanHasRole } from './principal'
67
+ export { getPrincipalDb } from './principal'
68
+ export { formatPrincipalForAudit } from './principal'
69
+ export { ANONYMOUS_PRINCIPAL } from './principal'
70
+ export { SYSTEM_PRINCIPAL } from './principal'
71
+ // CIL[END chunk_id="index_identity_1784066609"]
72
+ // CIL[BEGIN chunk_id="index_database_1784066609" type="exports" identity="database" parent="none"]
73
+ // CIL[DOC-MACRO purpose="Export database utilities"]
74
+ // CIL[DOC-RESPONSIBILITY responsibility="Re-export database clients and types"]
75
+ // CIL[DOC-CONTEXT module="_shared/index" layer="infrastructure" related_files="[\".framework/functions/_shared/db.ts\",\"\\\"]"]
76
+ // CIL[DOC-CONTRACT inputs="none" outputs="database utilities" errors="none" side_effects="re-exports"]
77
+ // CIL[DOC-MICRO logic_summary="Re-exports adminDb, getUserDb, joins, and DbResult type" notable_decisions="[]"]
78
+ // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="external_symbols_unknown"]
79
+ // CIL[DOC-STABILITY stability="stable"]
80
+ // CIL[DOC-VECTOR type="context" content="Layer: infrastructure. Direct callers: 0. Direct calls: 0. Related files: .framework/functions/_shared/db.ts, \."]
81
+ // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
82
+ // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
83
+ // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
84
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
85
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
138
86
  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
87
  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
88
  export { joins } from './db'
151
-
152
89
  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
- */
90
+ // CIL[END chunk_id="index_database_1784066609"]
91
+ // CIL[BEGIN chunk_id="index_pipeline_1784066609" type="exports" identity="pipeline" parent="none"]
92
+ // CIL[DOC-MACRO purpose="Export pipeline execution utilities"]
93
+ // CIL[DOC-RESPONSIBILITY responsibility="Re-export pipeline runner and types"]
94
+ // CIL[DOC-CONTEXT module="_shared/index" layer="infrastructure" related_files="[\"\\\"]"]
95
+ // CIL[DOC-CONTRACT inputs="none" outputs="pipeline utilities" errors="none" side_effects="re-exports"]
96
+ // CIL[DOC-MICRO logic_summary="Re-exports runPipeline function and execution types" notable_decisions="[]"]
97
+ // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="external_symbols_unknown"]
98
+ // CIL[DOC-STABILITY stability="stable"]
99
+ // CIL[DOC-VECTOR type="context" content="Layer: infrastructure. Direct callers: 0. Direct calls: 0. Related files: \."]
100
+ // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
101
+ // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
102
+ // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
103
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
104
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
184
105
  export { runPipeline } from './pipeline-runner'
185
106
  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
- */
107
+ // CIL[END chunk_id="index_pipeline_1784066609"]
108
+ // CIL[BEGIN chunk_id="index_triggers_1784066609" type="exports" identity="triggers" parent="none"]
109
+ // CIL[DOC-MACRO purpose="Export trigger system utilities"]
110
+ // CIL[DOC-RESPONSIBILITY responsibility="Re-export trigger engine functions and types"]
111
+ // CIL[DOC-CONTEXT module="_shared/index" layer="infrastructure" related_files="[]"]
112
+ // CIL[DOC-CONTRACT inputs="none" outputs="trigger utilities" errors="none" side_effects="re-exports"]
113
+ // CIL[DOC-MICRO logic_summary="Re-exports trigger firing functions and EventType" notable_decisions="[]"]
114
+ // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="external_symbols_unknown"]
115
+ // CIL[DOC-STABILITY stability="stable"]
116
+ // CIL[DOC-VECTOR type="context" content="Layer: infrastructure. Direct callers: 0. Direct calls: 0. Related files: none."]
117
+ // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
118
+ // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
119
+ // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
120
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
121
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
205
122
  export { checkAndFireTriggers, fireCreateTriggers, fireUpdateTriggers, fireDeleteTriggers } from './trigger-engine'
206
123
  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
- */
124
+ // CIL[END chunk_id="index_triggers_1784066609"]
125
+ // CIL[BEGIN chunk_id="index_agents_1784066609" type="exports" identity="agents" parent="none"]
126
+ // CIL[DOC-MACRO purpose="Export AI agent utilities"]
127
+ // CIL[DOC-RESPONSIBILITY responsibility="Re-export agent runner and configuration types"]
128
+ // CIL[DOC-CONTEXT module="_shared/index" layer="infrastructure" related_files="[]"]
129
+ // CIL[DOC-CONTRACT inputs="none" outputs="agent utilities" errors="none" side_effects="re-exports"]
130
+ // CIL[DOC-MICRO logic_summary="Re-exports runAgent, resolveAgentConfig and agent types" notable_decisions="[]"]
131
+ // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="external_symbols_unknown"]
132
+ // CIL[DOC-STABILITY stability="stable"]
133
+ // CIL[DOC-VECTOR type="context" content="Layer: infrastructure. Direct callers: 0. Direct calls: 0. Related files: none."]
134
+ // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
135
+ // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
136
+ // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
137
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
138
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
228
139
  export { runAgent, resolveAgentConfig } from './agent-runner'
229
140
  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
- */
141
+ // CIL[END chunk_id="index_agents_1784066609"]
142
+ // CIL[BEGIN chunk_id="index_permissions_1784066609" type="exports" identity="permissions" parent="none"]
143
+ // CIL[DOC-MACRO purpose="Export permission system utilities"]
144
+ // CIL[DOC-RESPONSIBILITY responsibility="Re-export permission engine and validation functions"]
145
+ // CIL[DOC-CONTEXT module="_shared/index" layer="infrastructure" related_files="[]"]
146
+ // CIL[DOC-CONTRACT inputs="none" outputs="permission utilities" errors="none" side_effects="re-exports"]
147
+ // CIL[DOC-MICRO logic_summary="Re-exports PermissionEngine and access control functions" notable_decisions="[]"]
148
+ // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="external_symbols_unknown"]
149
+ // CIL[DOC-STABILITY stability="stable"]
150
+ // CIL[DOC-VECTOR type="context" content="Layer: infrastructure. Direct callers: 0. Direct calls: 0. Related files: none."]
151
+ // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
152
+ // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
153
+ // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
154
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
155
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
244
156
  export { PermissionEngine } from './permissions'
245
157
  export type { PermissionResult } from './permissions'
246
-
247
- // Legacy permission helpers (stable, bound to PermissionEngine instance)
248
158
  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
- */
159
+ // CIL[END chunk_id="index_permissions_1784066609"]
160
+ // CIL[BEGIN chunk_id="index_schema_1784066609" type="exports" identity="schema" parent="none"]
161
+ // CIL[DOC-MACRO purpose="Export schema validation utilities"]
162
+ // CIL[DOC-RESPONSIBILITY responsibility="Re-export schema generation and validation types"]
163
+ // CIL[DOC-CONTEXT module="_shared/index" layer="infrastructure" related_files="[]"]
164
+ // CIL[DOC-CONTRACT inputs="none" outputs="schema utilities" errors="none" side_effects="re-exports"]
165
+ // CIL[DOC-MICRO logic_summary="Re-exports generateValidationSchema and ValidationSchema type" notable_decisions="[]"]
166
+ // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="external_symbols_unknown"]
167
+ // CIL[DOC-STABILITY stability="stable"]
168
+ // CIL[DOC-VECTOR type="context" content="Layer: infrastructure. Direct callers: 0. Direct calls: 0. Related files: none."]
169
+ // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
170
+ // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
171
+ // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
172
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
173
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
258
174
  export { generateValidationSchema } from './schema-utils'
259
175
  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
- */
176
+ // CIL[END chunk_id="index_schema_1784066609"]
177
+ // CIL[BEGIN chunk_id="index_resolution_1784066609" type="exports" identity="resolution" parent="none"]
178
+ // CIL[DOC-MACRO purpose="Export ID resolution utilities"]
179
+ // CIL[DOC-RESPONSIBILITY responsibility="Re-export entity ID resolution functions and types"]
180
+ // CIL[DOC-CONTEXT module="_shared/index" layer="infrastructure" related_files="[]"]
181
+ // CIL[DOC-CONTRACT inputs="none" outputs="resolution utilities" errors="none" side_effects="re-exports"]
182
+ // CIL[DOC-MICRO logic_summary="Re-exports entity ID resolution functions and TypeRecord type" notable_decisions="[]"]
183
+ // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="external_symbols_unknown"]
184
+ // CIL[DOC-STABILITY stability="stable"]
185
+ // CIL[DOC-VECTOR type="context" content="Layer: infrastructure. Direct callers: 0. Direct calls: 0. Related files: none."]
186
+ // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
187
+ // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
188
+ // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
189
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
190
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
191
+ export { resolveTypeId, resolveTypeIds, resolveTypeRecord, resolveLinkTypeId, resolveLinkTypeIds, resolveAccountId, resolveAgentId, resolvePromptConfigId } from './resolve-ids'
192
+ export type { TypeRecord } from './resolve-ids'
193
+ // CIL[END chunk_id="index_resolution_1784066609"]
194
+ // CIL[BEGIN chunk_id="index_audit_1784066609" type="exports" identity="audit" parent="none"]
195
+ // CIL[DOC-MACRO purpose="Export audit utilities"]
196
+ // CIL[DOC-RESPONSIBILITY responsibility="Re-export audit logging functionality"]
197
+ // CIL[DOC-CONTEXT module="_shared/index" layer="infrastructure" related_files="[]"]
198
+ // CIL[DOC-CONTRACT inputs="none" outputs="audit utilities" errors="none" side_effects="re-exports"]
199
+ // CIL[DOC-MICRO logic_summary="Re-exports emitAudit function for audit logging" notable_decisions="[]"]
200
+ // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="external_symbols_unknown"]
201
+ // CIL[DOC-STABILITY stability="stable"]
202
+ // CIL[DOC-VECTOR type="context" content="Layer: infrastructure. Direct callers: 0. Direct calls: 0. Related files: none."]
203
+ // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
204
+ // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
205
+ // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
206
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
207
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
281
208
  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
- */
209
+ // CIL[END chunk_id="index_audit_1784066609"]
210
+ // CIL[BEGIN chunk_id="index_webhooks_1784066609" type="exports" identity="webhooks" parent="none"]
211
+ // CIL[DOC-MACRO purpose="Export webhook utilities"]
212
+ // CIL[DOC-RESPONSIBILITY responsibility="Re-export webhook handler and registration functions"]
213
+ // CIL[DOC-CONTEXT module="_shared/index" layer="infrastructure" related_files="[]"]
214
+ // CIL[DOC-CONTRACT inputs="none" outputs="webhook utilities" errors="none" side_effects="re-exports"]
215
+ // CIL[DOC-MICRO logic_summary="Re-exports webhook handler resolution and registration functions" notable_decisions="[]"]
216
+ // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="external_symbols_unknown"]
217
+ // CIL[DOC-STABILITY stability="stable"]
218
+ // CIL[DOC-VECTOR type="context" content="Layer: infrastructure. Direct callers: 0. Direct calls: 0. Related files: none."]
219
+ // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
220
+ // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
221
+ // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
222
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
223
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
302
224
  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
225
  export { registerWebhookHandler, deregisterWebhookHandler, isHandlerRegistered } from './webhook-registration'
325
226
  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
- */
227
+ // CIL[END chunk_id="index_webhooks_1784066609"]
228
+ // CIL[BEGIN chunk_id="index_manifests_1784066609" type="exports" identity="manifests" parent="none"]
229
+ // CIL[DOC-MACRO purpose="Export app manifest utilities"]
230
+ // CIL[DOC-RESPONSIBILITY responsibility="Re-export app manifest loading and management functions"]
231
+ // CIL[DOC-CONTEXT module="_shared/index" layer="infrastructure" related_files="[]"]
232
+ // CIL[DOC-CONTRACT inputs="none" outputs="manifest utilities" errors="none" side_effects="re-exports"]
233
+ // CIL[DOC-MICRO logic_summary="Re-exports manifest loading, merging, and discovery functions" notable_decisions="[]"]
234
+ // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="external_symbols_unknown"]
235
+ // CIL[DOC-STABILITY stability="stable"]
236
+ // CIL[DOC-VECTOR type="context" content="Layer: infrastructure. Direct callers: 0. Direct calls: 0. Related files: none."]
237
+ // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
238
+ // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
239
+ // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
240
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
241
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
346
242
  export { loadManifest, mergeWithManifest, clearManifestCache, discoverManifests } from './app-manifest'
347
243
  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
- */
244
+ // CIL[END chunk_id="index_manifests_1784066609"]
245
+ // CIL[BEGIN chunk_id="index_testing_1784066609" type="exports" identity="testing" parent="none"]
246
+ // CIL[DOC-MACRO purpose="Export testing utilities"]
247
+ // CIL[DOC-RESPONSIBILITY responsibility="Re-export testing helpers and mock functions"]
248
+ // CIL[DOC-CONTEXT module="_shared/index" layer="infrastructure" related_files="[]"]
249
+ // CIL[DOC-CONTRACT inputs="none" outputs="testing utilities" errors="none" side_effects="re-exports"]
250
+ // CIL[DOC-MICRO logic_summary="Re-exports test context creation, mocks, and assertion helpers" notable_decisions="[]"]
251
+ // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="external_symbols_unknown"]
252
+ // CIL[DOC-STABILITY stability="stable"]
253
+ // CIL[DOC-VECTOR type="context" content="Layer: infrastructure. Direct callers: 0. Direct calls: 0. Related files: none."]
254
+ // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
255
+ // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
256
+ // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
257
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
258
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
371
259
  export {
372
260
  makeTestContext,
373
261
  mockPrincipal,
@@ -380,3 +268,4 @@ export {
380
268
  expectErrorResponse
381
269
  } from './testing'
382
270
  export type { TestContext, TestPrincipal, TestLogger } from './testing'
271
+ // CIL[END chunk_id="index_testing_1784066609"]