@cosmicdrift/kumiko-framework 0.389.0 → 0.390.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 (616) hide show
  1. package/AGENTS.md +9 -4
  2. package/README.md +1 -1
  3. package/agents/examples/apex-surface-auth.md +2 -3
  4. package/agents/examples/api-worker-split.md +9 -2
  5. package/agents/examples/auth-claims.md +1 -1
  6. package/agents/examples/cross-feature-events.md +12 -12
  7. package/agents/examples/crypto-shredding-hr.md +2 -2
  8. package/agents/examples/encrypted-tenant-config.md +1 -1
  9. package/agents/examples/error-contract.md +12 -7
  10. package/agents/examples/event-sourcing.md +29 -29
  11. package/agents/examples/files-post-processing.md +10 -8
  12. package/agents/examples/inbound-mail-triage.md +1 -0
  13. package/agents/examples/lane-routing.md +2 -1
  14. package/agents/examples/legal-pages.md +2 -2
  15. package/agents/examples/lifecycle-hooks.md +3 -3
  16. package/agents/examples/managed-config.md +4 -4
  17. package/agents/examples/managed-pages.md +1 -1
  18. package/agents/examples/relations.md +19 -4
  19. package/agents/examples/search.md +4 -4
  20. package/agents/examples/secrets-demo.md +9 -6
  21. package/agents/examples/state-machine.md +2 -2
  22. package/agents/examples/tenant-settings.md +1 -1
  23. package/agents/examples/user-data-rights.md +3 -6
  24. package/agents/examples/workflow-engine.md +53 -47
  25. package/agents/examples.md +4 -4
  26. package/agents/features.md +1 -1
  27. package/dist/api/auth-middleware.js +1 -1
  28. package/dist/api/auth-routes-invite.js +2 -1
  29. package/dist/api/entity-read-access.d.ts +3 -1
  30. package/dist/api/export/export-columns.d.ts +3 -1
  31. package/dist/api/export/export-route.js +3 -2
  32. package/dist/api/export/export-screen.d.ts +2 -1
  33. package/dist/api/extra-route.d.ts +3 -1
  34. package/dist/api/index.d.ts +23 -27
  35. package/dist/api/index.js +13 -15
  36. package/dist/api/jwt.js +1 -1
  37. package/dist/api/observability-middleware.d.ts +1 -1
  38. package/dist/api/observability-middleware.js +2 -1
  39. package/dist/api/request-context-internals.d.ts +31 -0
  40. package/dist/api/request-context-internals.js +11 -0
  41. package/dist/api/request-context-scopes.d.ts +14 -0
  42. package/dist/api/request-context-scopes.js +69 -0
  43. package/dist/api/request-context.d.ts +1 -40
  44. package/dist/api/request-context.js +22 -51
  45. package/dist/api/request-id-middleware.d.ts +1 -1
  46. package/dist/api/route-registrars.d.ts +2 -1
  47. package/dist/api/route-registrars.js +1 -1
  48. package/dist/api/routes.js +7 -3
  49. package/dist/api/server-boot-checks.d.ts +1 -1
  50. package/dist/api/server-boot-checks.js +2 -2
  51. package/dist/api/server-event-dispatcher.d.ts +6 -1
  52. package/dist/api/server-event-dispatcher.js +3 -4
  53. package/dist/api/server-extra-routes.d.ts +1 -1
  54. package/dist/api/server-extra-routes.js +2 -1
  55. package/dist/api/server-middleware.js +3 -1
  56. package/dist/api/server-routes.d.ts +2 -1
  57. package/dist/api/server-wiring.js +6 -4
  58. package/dist/api/server.d.ts +2 -1
  59. package/dist/api/sse-route.d.ts +2 -1
  60. package/dist/api/tenant-scoped-secrets.d.ts +2 -0
  61. package/dist/api/tenant-scoped-secrets.js +13 -0
  62. package/dist/api/websocket-route.d.ts +1 -1
  63. package/dist/auth/index.d.ts +0 -1
  64. package/dist/auth/roles.d.ts +0 -5
  65. package/dist/compliance/duration-spec.d.ts +0 -1
  66. package/dist/compliance/duration-spec.js +0 -5
  67. package/dist/compliance/index.d.ts +4 -4
  68. package/dist/compliance/index.js +2 -2
  69. package/dist/compliance/profiles.d.ts +0 -15
  70. package/dist/compliance/profiles.js +0 -23
  71. package/dist/config/index.d.ts +10 -10
  72. package/dist/config/index.js +13 -1
  73. package/dist/config/internals.d.ts +9 -0
  74. package/dist/config/internals.js +1 -0
  75. package/dist/consumer-cli-internals.d.ts +4 -0
  76. package/dist/consumer-cli-internals.js +1 -0
  77. package/dist/consumer-cli.d.ts +1 -4
  78. package/dist/consumer-cli.js +5 -1
  79. package/dist/crypto/event-pii.js +1 -1
  80. package/dist/crypto/index.d.ts +8 -9
  81. package/dist/crypto/index.js +7 -8
  82. package/dist/crypto/pg-kms-adapter.js +6 -1
  83. package/dist/db/apply-entity-event.d.ts +1 -1
  84. package/dist/db/apply-entity-event.js +15 -47
  85. package/dist/db/blind-index-cleanup.js +91 -77
  86. package/dist/db/collect-table-metas.js +1 -1
  87. package/dist/db/compound-types.d.ts +1 -1
  88. package/dist/db/compound-types.js +0 -7
  89. package/dist/db/config-seed.d.ts +2 -1
  90. package/dist/db/config-seed.js +6 -1
  91. package/dist/db/connection.d.ts +3 -1
  92. package/dist/db/connection.js +15 -5
  93. package/dist/db/cross-tenant-reads.d.ts +1 -1
  94. package/dist/db/cross-tenant-reads.js +1 -1
  95. package/dist/db/dialect.d.ts +0 -5
  96. package/dist/db/dialect.js +0 -3
  97. package/dist/db/eagerload.d.ts +2 -1
  98. package/dist/db/entity-field-encryption.d.ts +1 -1
  99. package/dist/db/entity-table-meta.d.ts +1 -1
  100. package/dist/db/event-store-executor-context.d.ts +3 -1
  101. package/dist/db/event-store-executor-context.js +4 -3
  102. package/dist/db/event-store-executor-read-filter.d.ts +1 -1
  103. package/dist/db/event-store-executor-read-rows.d.ts +2 -1
  104. package/dist/db/event-store-executor-read-search.d.ts +2 -1
  105. package/dist/db/event-store-executor-read-sort.d.ts +2 -1
  106. package/dist/db/event-store-executor-read.js +2 -2
  107. package/dist/db/event-store-executor-write-atomic.js +8 -7
  108. package/dist/db/event-store-executor-write-steps.d.ts +3 -2
  109. package/dist/db/event-store-executor-write.js +7 -4
  110. package/dist/db/event-store-executor.d.ts +1 -1
  111. package/dist/db/executor-managed-tables.d.ts +7 -1
  112. package/dist/db/executor-managed-tables.js +11 -2
  113. package/dist/db/index.d.ts +29 -28
  114. package/dist/db/index.js +22 -20
  115. package/dist/db/known-table-names.d.ts +6 -0
  116. package/dist/db/known-table-names.js +21 -0
  117. package/dist/db/list-aggregate-labels.d.ts +1 -1
  118. package/dist/db/located-timestamp.d.ts +1 -1
  119. package/dist/db/located-timestamp.js +0 -5
  120. package/dist/db/migrate-generator.d.ts +17 -1
  121. package/dist/db/migrate-generator.js +50 -20
  122. package/dist/db/migrate-primary-key.d.ts +12 -0
  123. package/dist/db/migrate-primary-key.js +45 -0
  124. package/dist/db/migrate-rls-diff.d.ts +20 -0
  125. package/dist/db/migrate-rls-diff.js +61 -0
  126. package/dist/db/migrate-runner.js +4 -0
  127. package/dist/db/money.d.ts +1 -1
  128. package/dist/db/money.js +1 -1
  129. package/dist/db/parent-ref-clause.d.ts +2 -1
  130. package/dist/db/pg-error.d.ts +2 -0
  131. package/dist/db/pg-error.js +11 -0
  132. package/dist/db/queries/ddl.d.ts +3 -0
  133. package/dist/db/queries/ddl.js +34 -1
  134. package/dist/db/queries/event-store.js +4 -2
  135. package/dist/db/queries/event-tenants.d.ts +2 -0
  136. package/dist/db/queries/event-tenants.js +17 -0
  137. package/dist/db/queries/rebuild-rls-guard.d.ts +2 -0
  138. package/dist/db/queries/rebuild-rls-guard.js +29 -0
  139. package/dist/db/queries/rls-boot-catalog.d.ts +16 -0
  140. package/dist/db/queries/rls-boot-catalog.js +39 -0
  141. package/dist/db/queries/rls-catalog.d.ts +6 -0
  142. package/dist/db/queries/rls-catalog.js +82 -0
  143. package/dist/db/queries/rls-scope.d.ts +3 -0
  144. package/dist/db/queries/rls-scope.js +17 -0
  145. package/dist/db/queries/rls-shape.d.ts +10 -0
  146. package/dist/db/queries/rls-shape.js +42 -0
  147. package/dist/db/queries/session-advisory-lock.d.ts +2 -0
  148. package/dist/db/queries/session-advisory-lock.js +23 -0
  149. package/dist/db/queries/shadow-swap.d.ts +1 -2
  150. package/dist/db/queries/shadow-swap.js +9 -25
  151. package/dist/db/queries/test-stack.d.ts +4 -1
  152. package/dist/db/queries/test-stack.js +83 -2
  153. package/dist/db/query.js +11 -7
  154. package/dist/db/reference-data.d.ts +1 -1
  155. package/dist/db/reference-data.js +6 -1
  156. package/dist/db/render-ddl.d.ts +6 -2
  157. package/dist/db/render-ddl.js +7 -7
  158. package/dist/db/render-rls-ddl.d.ts +35 -0
  159. package/dist/db/render-rls-ddl.js +127 -0
  160. package/dist/db/replay-migration-sql.d.ts +3 -1
  161. package/dist/db/replay-migration-sql.js +22 -5
  162. package/dist/db/replay-rls.d.ts +25 -0
  163. package/dist/db/replay-rls.js +156 -0
  164. package/dist/db/row-level-security-boot-check.d.ts +5 -0
  165. package/dist/db/row-level-security-boot-check.js +85 -0
  166. package/dist/db/row-level-security-connection.d.ts +3 -0
  167. package/dist/db/row-level-security-connection.js +213 -0
  168. package/dist/db/row-level-security-scope.d.ts +33 -0
  169. package/dist/db/row-level-security-scope.js +127 -0
  170. package/dist/db/scope-tenant-db-to-tenant.d.ts +3 -0
  171. package/dist/db/scope-tenant-db-to-tenant.js +14 -0
  172. package/dist/db/sql-identifier.d.ts +1 -0
  173. package/dist/db/sql-identifier.js +3 -0
  174. package/dist/db/table-builder.d.ts +2 -1
  175. package/dist/db/table-builder.js +1 -1
  176. package/dist/db/table-info.js +1 -1
  177. package/dist/db/table-push.d.ts +11 -2
  178. package/dist/db/table-push.js +15 -2
  179. package/dist/db/tenant-db-runner.d.ts +3 -1
  180. package/dist/db/tenant-db-runner.js +4 -3
  181. package/dist/db/tenant-db-scoped-rebind.d.ts +10 -0
  182. package/dist/db/tenant-db-scoped-rebind.js +33 -0
  183. package/dist/db/tenant-db-statement-runner.d.ts +13 -0
  184. package/dist/db/tenant-db-statement-runner.js +48 -0
  185. package/dist/db/tenant-db.d.ts +17 -12
  186. package/dist/db/tenant-db.js +49 -120
  187. package/dist/db/tenant-id-filter.d.ts +3 -0
  188. package/dist/db/tenant-id-filter.js +30 -0
  189. package/dist/db/transaction-serialization.d.ts +6 -0
  190. package/dist/db/transaction-serialization.js +60 -0
  191. package/dist/derivatives/delete-stored-file.js +1 -1
  192. package/dist/derivatives/index.d.ts +2 -5
  193. package/dist/derivatives/index.js +2 -3
  194. package/dist/engine/access.d.ts +2 -1
  195. package/dist/engine/access.js +1 -1
  196. package/dist/engine/boot-validator/entity-handler.d.ts +2 -1
  197. package/dist/engine/boot-validator/entity-handler.js +1 -1
  198. package/dist/engine/boot-validator/entity-list-aggregate-options.d.ts +1 -1
  199. package/dist/engine/boot-validator/list-table-aggregate-options.d.ts +1 -1
  200. package/dist/engine/boot-validator/list-table-aggregate-query.d.ts +2 -1
  201. package/dist/engine/boot-validator/nav.d.ts +3 -1
  202. package/dist/engine/boot-validator/nav.js +1 -1
  203. package/dist/engine/boot-validator/ownership.d.ts +2 -1
  204. package/dist/engine/boot-validator/parent-ref.d.ts +2 -1
  205. package/dist/engine/boot-validator/projection-list-screens.d.ts +2 -1
  206. package/dist/engine/boot-validator/query-refs.d.ts +2 -1
  207. package/dist/engine/boot-validator/screens-forms.d.ts +2 -1
  208. package/dist/engine/boot-validator/screens-kind-shared.d.ts +3 -1
  209. package/dist/engine/boot-validator/screens.d.ts +2 -1
  210. package/dist/engine/boot-validator/workspaces.d.ts +3 -1
  211. package/dist/engine/bridge-stub.d.ts +5 -2
  212. package/dist/engine/bridge-stub.js +39 -24
  213. package/dist/engine/config-helpers.d.ts +2 -2
  214. package/dist/engine/config-helpers.js +0 -9
  215. package/dist/engine/constants.d.ts +0 -10
  216. package/dist/engine/constants.js +0 -8
  217. package/dist/engine/create-app.js +1 -1
  218. package/dist/engine/define-feature.d.ts +2 -1
  219. package/dist/engine/define-feature.js +1 -2
  220. package/dist/engine/define-handler.d.ts +1 -1
  221. package/dist/engine/define-step.d.ts +0 -1
  222. package/dist/engine/define-step.js +0 -3
  223. package/dist/engine/embedded-derived.d.ts +1 -1
  224. package/dist/engine/entity-handlers.d.ts +2 -1
  225. package/dist/engine/entity-handlers.js +7 -7
  226. package/dist/engine/entity-list-runtime-options.js +3 -1
  227. package/dist/engine/entity-list-searchability.d.ts +2 -1
  228. package/dist/engine/event-def.d.ts +2 -1
  229. package/dist/engine/event-helpers.d.ts +3 -1
  230. package/dist/engine/event-helpers.js +3 -3
  231. package/dist/engine/extension-names.d.ts +2 -8
  232. package/dist/engine/extension-names.js +2 -2
  233. package/dist/engine/extension-selector-plugins.d.ts +1 -1
  234. package/dist/engine/extensions/storage-provider.d.ts +1 -2
  235. package/dist/engine/extensions/user-data.d.ts +0 -8
  236. package/dist/engine/factories.d.ts +2 -1
  237. package/dist/engine/feature-builder-state.d.ts +8 -1
  238. package/dist/engine/feature-changelog.d.ts +1 -1
  239. package/dist/engine/feature-config-events-jobs.d.ts +4 -1
  240. package/dist/engine/feature-entity-handlers.d.ts +5 -1
  241. package/dist/engine/feature-manifest.js +1 -1
  242. package/dist/engine/feature-ui-extensions.d.ts +7 -1
  243. package/dist/engine/feature-ui-extensions.js +6 -4
  244. package/dist/engine/field-access.d.ts +2 -1
  245. package/dist/engine/handler-field-references.d.ts +0 -4
  246. package/dist/engine/index.d.ts +57 -54
  247. package/dist/engine/index.js +22 -27
  248. package/dist/engine/instruction-fields.d.ts +1 -1
  249. package/dist/engine/personal-data-fields.d.ts +1 -1
  250. package/dist/engine/qualified-name.d.ts +0 -1
  251. package/dist/engine/read-claim.d.ts +2 -1
  252. package/dist/engine/registry-facade.js +0 -3
  253. package/dist/engine/registry-ingest.d.ts +2 -1
  254. package/dist/engine/registry-ingest.js +1 -2
  255. package/dist/engine/registry-state.d.ts +12 -2
  256. package/dist/engine/registry-state.js +2 -3
  257. package/dist/engine/registry-validate.d.ts +3 -1
  258. package/dist/engine/registry-validate.js +7 -7
  259. package/dist/engine/run-in.d.ts +1 -1
  260. package/dist/engine/run-in.js +0 -1
  261. package/dist/engine/schema-builder.d.ts +1 -1
  262. package/dist/engine/schema-builder.js +1 -1
  263. package/dist/engine/screen-filter-ops.d.ts +2 -1
  264. package/dist/engine/screen-filter-ops.js +0 -5
  265. package/dist/engine/soft-delete-cleanup.d.ts +1 -1
  266. package/dist/engine/soft-delete-cleanup.js +4 -4
  267. package/dist/engine/state-machine.js +2 -1
  268. package/dist/engine/steps/_read-source.js +1 -1
  269. package/dist/engine/steps/aggregate-append-event.js +2 -2
  270. package/dist/engine/steps/call-feature.js +2 -2
  271. package/dist/engine/steps/mail-send.js +1 -1
  272. package/dist/engine/steps/retry.js +1 -1
  273. package/dist/engine/steps/wait-for-event.js +1 -1
  274. package/dist/engine/steps/wait.js +1 -1
  275. package/dist/engine/steps/webhook-send.js +1 -1
  276. package/dist/engine/template-variables.d.ts +2 -1
  277. package/dist/engine/transfer-adjacency.d.ts +1 -1
  278. package/dist/engine/types/index.d.ts +8 -31
  279. package/dist/engine/types/index.js +2 -10
  280. package/dist/engine/validation.d.ts +2 -1
  281. package/dist/entrypoint/index.d.ts +7 -35
  282. package/dist/entrypoint/index.js +7 -1
  283. package/dist/entrypoint/internals.d.ts +40 -0
  284. package/dist/entrypoint/internals.js +1 -0
  285. package/dist/entrypoint/row-level-security-mode-check.d.ts +3 -0
  286. package/dist/entrypoint/row-level-security-mode-check.js +19 -0
  287. package/dist/env/dry-run-internals.d.ts +10 -0
  288. package/dist/env/dry-run-internals.js +1 -0
  289. package/dist/env/dry-run.d.ts +1 -10
  290. package/dist/env/dry-run.js +2 -1
  291. package/dist/env/index.d.ts +1 -85
  292. package/dist/env/index.js +6 -50
  293. package/dist/env/internals.d.ts +87 -0
  294. package/dist/env/internals.js +53 -0
  295. package/dist/errors/classes.js +2 -2
  296. package/dist/errors/index.d.ts +5 -14
  297. package/dist/errors/index.js +4 -9
  298. package/dist/errors/member-resolution.js +1 -1
  299. package/dist/errors/reasons.d.ts +0 -1
  300. package/dist/errors/reasons.js +7 -7
  301. package/dist/errors/serialize.d.ts +0 -18
  302. package/dist/errors/serialize.js +0 -27
  303. package/dist/es-ops/index.d.ts +4 -4
  304. package/dist/es-ops/index.js +2 -2
  305. package/dist/es-ops/operations-schema.d.ts +1 -1
  306. package/dist/es-ops/types.d.ts +4 -5
  307. package/dist/event-store/admin-api-internals.d.ts +14 -0
  308. package/dist/event-store/admin-api-internals.js +1 -0
  309. package/dist/event-store/admin-api.d.ts +1 -14
  310. package/dist/event-store/admin-api.js +11 -6
  311. package/dist/event-store/archive.js +4 -2
  312. package/dist/event-store/errors.js +2 -2
  313. package/dist/event-store/event-store.js +41 -34
  314. package/dist/event-store/events-schema.js +4 -1
  315. package/dist/event-store/index.d.ts +11 -13
  316. package/dist/event-store/index.js +7 -9
  317. package/dist/event-store/rebuild-dead-letter.js +4 -2
  318. package/dist/event-store/snapshot.js +4 -3
  319. package/dist/event-store/stream-scope.d.ts +2 -0
  320. package/dist/event-store/stream-scope.js +6 -0
  321. package/dist/event-store/upcaster-dead-letter.js +4 -2
  322. package/dist/event-store/upcaster.d.ts +2 -1
  323. package/dist/files/action-form-upload.d.ts +2 -1
  324. package/dist/files/action-form-upload.js +1 -1
  325. package/dist/files/assert-file-refs-belong-to-tenant.d.ts +2 -1
  326. package/dist/files/assert-file-refs-belong-to-tenant.js +1 -1
  327. package/dist/files/bind-pending-file-refs.d.ts +2 -1
  328. package/dist/files/bind-pending-file-refs.js +2 -1
  329. package/dist/files/bind-referenced-files.write.js +1 -1
  330. package/dist/files/create-file-ref-from-bytes.d.ts +6 -3
  331. package/dist/files/create-file-ref-from-bytes.js +3 -3
  332. package/dist/files/create-file-ref.d.ts +3 -2
  333. package/dist/files/create-file-ref.js +2 -2
  334. package/dist/files/dispose-removed-file-refs.d.ts +2 -1
  335. package/dist/files/dispose-removed-file-refs.js +1 -1
  336. package/dist/files/feature.js +2 -2
  337. package/dist/files/file-handle.js +1 -1
  338. package/dist/files/file-routes.d.ts +1 -1
  339. package/dist/files/file-routes.js +12 -2
  340. package/dist/files/index.d.ts +11 -13
  341. package/dist/files/index.js +5 -7
  342. package/dist/files/load-save-file-refs.d.ts +2 -1
  343. package/dist/files/load-save-file-refs.js +1 -1
  344. package/dist/files/provider-resolver.d.ts +5 -4
  345. package/dist/files/provider-resolver.js +4 -4
  346. package/dist/files/storage-tracking.js +4 -2
  347. package/dist/files/sweep-orphaned-uploads.d.ts +1 -1
  348. package/dist/files/sweep-orphaned-uploads.js +1 -1
  349. package/dist/i18n/index.d.ts +2 -8
  350. package/dist/i18n/index.js +1 -1
  351. package/dist/i18n/internals.d.ts +7 -0
  352. package/dist/i18n/internals.js +1 -0
  353. package/dist/i18n/required-surface-keys.d.ts +4 -1
  354. package/dist/internal/row-level-security.d.ts +3 -0
  355. package/dist/internal/row-level-security.js +3 -0
  356. package/dist/internal/stack-support.d.ts +1 -1
  357. package/dist/internal/stack-support.js +1 -1
  358. package/dist/internal/testing.d.ts +1 -0
  359. package/dist/internal/testing.js +9 -5
  360. package/dist/jobs/index.d.ts +1 -1
  361. package/dist/jobs/job-append-event.d.ts +12 -0
  362. package/dist/jobs/job-append-event.js +30 -0
  363. package/dist/jobs/job-runner-context.d.ts +2 -2
  364. package/dist/jobs/job-runner-context.js +46 -16
  365. package/dist/jobs/job-runner-execution.d.ts +1 -1
  366. package/dist/jobs/job-runner-execution.js +6 -4
  367. package/dist/jobs/job-runner-gates.d.ts +1 -1
  368. package/dist/jobs/job-runner-gates.js +0 -1
  369. package/dist/jobs/job-runner-helpers.d.ts +11 -4
  370. package/dist/jobs/job-runner-helpers.js +10 -1
  371. package/dist/jobs/job-runner-scope.d.ts +5 -2
  372. package/dist/jobs/job-runner-types.d.ts +2 -1
  373. package/dist/jobs/job-runner.js +19 -6
  374. package/dist/jobs/max-per-tenant.d.ts +1 -1
  375. package/dist/logging/index.d.ts +1 -2
  376. package/dist/logging/index.js +1 -1
  377. package/dist/logging/pino-logger.js +1 -1
  378. package/dist/logging/utils.d.ts +1 -0
  379. package/dist/logging/utils.js +6 -0
  380. package/dist/migrations/index.d.ts +3 -3
  381. package/dist/migrations/index.js +3 -3
  382. package/dist/migrations/pending-rebuilds.d.ts +1 -1
  383. package/dist/migrations/pending-rebuilds.js +1 -1
  384. package/dist/migrations/pii-event-backfill.js +4 -1
  385. package/dist/observability/escape-hatch-report.d.ts +2 -1
  386. package/dist/observability/index.d.ts +7 -15
  387. package/dist/observability/index.js +4 -12
  388. package/dist/observability/metric-validator.js +1 -1
  389. package/dist/observability/metrics-handle.d.ts +0 -1
  390. package/dist/observability/metrics-handle.js +2 -15
  391. package/dist/observability/recording-tracer.d.ts +1 -2
  392. package/dist/observability/recording-tracer.js +0 -6
  393. package/dist/observability/sensitive-filter.d.ts +0 -2
  394. package/dist/observability/sensitive-filter.js +0 -29
  395. package/dist/pipeline/active-membership.d.ts +2 -1
  396. package/dist/pipeline/active-membership.js +6 -2
  397. package/dist/pipeline/append-event-core.d.ts +2 -1
  398. package/dist/pipeline/append-event-core.js +2 -2
  399. package/dist/pipeline/attach-outside-transaction.d.ts +3 -0
  400. package/dist/pipeline/attach-outside-transaction.js +13 -0
  401. package/dist/pipeline/auth-claims-resolver.d.ts +2 -1
  402. package/dist/pipeline/cascade-handler.d.ts +2 -1
  403. package/dist/pipeline/cascade-handler.js +3 -2
  404. package/dist/pipeline/config-accessor-factory.d.ts +1 -1
  405. package/dist/pipeline/config-accessor-factory.js +1 -1
  406. package/dist/pipeline/context-services.d.ts +56 -0
  407. package/dist/pipeline/context-services.js +73 -0
  408. package/dist/pipeline/dispatch-batch.d.ts +2 -1
  409. package/dist/pipeline/dispatch-batch.js +31 -18
  410. package/dist/pipeline/dispatch-query.js +5 -4
  411. package/dist/pipeline/dispatch-scope.d.ts +6 -0
  412. package/dist/pipeline/dispatch-scope.js +27 -0
  413. package/dist/pipeline/dispatch-shared.d.ts +13 -9
  414. package/dist/pipeline/dispatch-shared.js +75 -198
  415. package/dist/pipeline/dispatch-stream.js +8 -4
  416. package/dist/pipeline/dispatch-write.d.ts +2 -1
  417. package/dist/pipeline/dispatch-write.js +10 -8
  418. package/dist/pipeline/dispatcher-utils.d.ts +3 -1
  419. package/dist/pipeline/dispatcher-utils.js +8 -2
  420. package/dist/pipeline/dispatcher.d.ts +3 -2
  421. package/dist/pipeline/dispatcher.js +4 -3
  422. package/dist/pipeline/event-consumer-state.d.ts +0 -1
  423. package/dist/pipeline/event-dispatcher-delivery.d.ts +1 -1
  424. package/dist/pipeline/event-dispatcher-delivery.js +4 -2
  425. package/dist/pipeline/event-dispatcher.d.ts +2 -2
  426. package/dist/pipeline/event-dispatcher.js +7 -3
  427. package/dist/pipeline/event-retention.js +59 -56
  428. package/dist/pipeline/handler-access-error.js +2 -1
  429. package/dist/pipeline/handler-context-auth.d.ts +5 -6
  430. package/dist/pipeline/handler-context-auth.js +7 -4
  431. package/dist/pipeline/handler-context-config.d.ts +2 -5
  432. package/dist/pipeline/handler-context-config.js +2 -2
  433. package/dist/pipeline/handler-context-db.d.ts +32 -7
  434. package/dist/pipeline/handler-context-db.js +26 -17
  435. package/dist/pipeline/handler-context-dispatch.d.ts +13 -7
  436. package/dist/pipeline/handler-context-dispatch.js +9 -8
  437. package/dist/pipeline/handler-context-events.d.ts +22 -36
  438. package/dist/pipeline/handler-context-events.js +36 -31
  439. package/dist/pipeline/handler-context-member-resolution.d.ts +2 -0
  440. package/dist/pipeline/handler-context-member-resolution.js +110 -0
  441. package/dist/pipeline/handler-context-notify.d.ts +3 -2
  442. package/dist/pipeline/handler-context-notify.js +1 -1
  443. package/dist/pipeline/handler-context-observability.d.ts +2 -4
  444. package/dist/pipeline/handler-context-observability.js +7 -5
  445. package/dist/pipeline/handler-context-phase-denials.d.ts +11 -0
  446. package/dist/pipeline/handler-context-phase-denials.js +98 -0
  447. package/dist/pipeline/handler-context-scope.d.ts +7 -10
  448. package/dist/pipeline/handler-context-scope.js +18 -20
  449. package/dist/pipeline/index.d.ts +9 -21
  450. package/dist/pipeline/index.js +5 -7
  451. package/dist/pipeline/irreversible-operation-gate.d.ts +1 -1
  452. package/dist/pipeline/irreversible-operation-gate.js +2 -2
  453. package/dist/pipeline/lifecycle-pipeline.d.ts +8 -7
  454. package/dist/pipeline/lifecycle-pipeline.js +9 -15
  455. package/dist/pipeline/member-read-only-transaction.js +11 -3
  456. package/dist/pipeline/member-reader.d.ts +1 -1
  457. package/dist/pipeline/member-reader.js +2 -2
  458. package/dist/pipeline/msp-rebuild.js +5 -3
  459. package/dist/pipeline/multi-stream-apply-context.js +3 -2
  460. package/dist/pipeline/notify-scope.d.ts +2 -1
  461. package/dist/pipeline/pre-handler-gates.d.ts +2 -1
  462. package/dist/pipeline/pre-transaction-reservations.d.ts +3 -3
  463. package/dist/pipeline/pre-transaction-reservations.js +9 -7
  464. package/dist/pipeline/projection-rebuild.js +12 -5
  465. package/dist/pipeline/projection-state.d.ts +0 -6
  466. package/dist/pipeline/projection-state.js +0 -5
  467. package/dist/pipeline/projections-runner.d.ts +2 -1
  468. package/dist/pipeline/projections-runner.js +10 -6
  469. package/dist/pipeline/system-hooks.d.ts +3 -1
  470. package/dist/pipeline/system-hooks.js +6 -4
  471. package/dist/pipeline/system-identity-switch.d.ts +4 -2
  472. package/dist/pipeline/system-identity-switch.js +51 -36
  473. package/dist/pipeline/typed-append-event.d.ts +2 -0
  474. package/dist/pipeline/typed-append-event.js +4 -0
  475. package/dist/pipeline/write-origin.js +2 -2
  476. package/dist/pipeline/write-result-masking.d.ts +1 -1
  477. package/dist/random/index.d.ts +1 -2
  478. package/dist/random/index.js +1 -2
  479. package/dist/rate-limit/bucket.d.ts +2 -1
  480. package/dist/rate-limit/middleware.js +2 -1
  481. package/dist/redis/index.d.ts +3 -4
  482. package/dist/redis/index.js +2 -2
  483. package/dist/schema-cli/apply-command.js +5 -2
  484. package/dist/schema-cli/baseline-command.js +7 -2
  485. package/dist/schema-cli/generate-command.js +7 -9
  486. package/dist/schema-cli/shared.d.ts +4 -0
  487. package/dist/schema-cli/shared.js +21 -2
  488. package/dist/schema-cli/status-command.js +8 -2
  489. package/dist/schema-cli/validate-command.js +52 -4
  490. package/dist/schema-cli.d.ts +0 -1
  491. package/dist/search/configure-tenant-index.d.ts +1 -3
  492. package/dist/search/configure-tenant-index.js +0 -4
  493. package/dist/search/index.d.ts +1 -4
  494. package/dist/search/index.js +0 -2
  495. package/dist/search/meilisearch-adapter-internals.d.ts +8 -0
  496. package/dist/search/meilisearch-adapter-internals.js +9 -0
  497. package/dist/search/meilisearch-adapter.d.ts +1 -8
  498. package/dist/search/meilisearch-adapter.js +6 -7
  499. package/dist/search/meilisearch-peer.d.ts +2 -0
  500. package/dist/search/meilisearch-peer.js +5 -0
  501. package/dist/search/reindex-entity.js +93 -87
  502. package/dist/secrets/index.d.ts +3 -4
  503. package/dist/secrets/index.js +2 -3
  504. package/dist/seeding/index.d.ts +2 -2
  505. package/dist/seeding/index.js +1 -2
  506. package/dist/time/index.d.ts +2 -2
  507. package/dist/time/index.js +1 -1
  508. package/dist/time/tz-context.d.ts +0 -5
  509. package/dist/time/tz-context.js +0 -9
  510. package/dist/ui-types/index.d.ts +8 -11
  511. package/dist/ui-types/index.js +3 -3
  512. package/dist/upgrade-changelog.d.ts +3 -2
  513. package/dist/upgrade-changelog.js +12 -8
  514. package/dist/upgrade-cli-internals.d.ts +8 -0
  515. package/dist/upgrade-cli-internals.js +63 -0
  516. package/dist/upgrade-cli.d.ts +1 -9
  517. package/dist/upgrade-cli.js +10 -64
  518. package/dist/utils/import-optional-peer.d.ts +6 -0
  519. package/dist/utils/import-optional-peer.js +19 -0
  520. package/dist/utils/index.d.ts +1 -4
  521. package/dist/utils/index.js +1 -4
  522. package/package.json +22 -18
  523. package/src/changes.json +206 -0
  524. package/dist/crypto/request-kms-cache.d.ts +0 -8
  525. package/dist/crypto/request-kms-cache.js +0 -21
  526. package/dist/engine/codemod/index.d.ts +0 -2
  527. package/dist/engine/codemod/index.js +0 -1
  528. package/dist/engine/codemod/pipeline-codemod.d.ts +0 -50
  529. package/dist/engine/codemod/pipeline-codemod.js +0 -536
  530. package/dist/engine/feature-ast/entity-field-types.d.ts +0 -13
  531. package/dist/engine/feature-ast/entity-field-types.js +0 -35
  532. package/dist/engine/feature-ast/extractors/ai-steps.d.ts +0 -6
  533. package/dist/engine/feature-ast/extractors/ai-steps.js +0 -254
  534. package/dist/engine/feature-ast/extractors/events.d.ts +0 -5
  535. package/dist/engine/feature-ast/extractors/events.js +0 -275
  536. package/dist/engine/feature-ast/extractors/handlers.d.ts +0 -24
  537. package/dist/engine/feature-ast/extractors/handlers.js +0 -358
  538. package/dist/engine/feature-ast/extractors/hooks.d.ts +0 -24
  539. package/dist/engine/feature-ast/extractors/hooks.js +0 -248
  540. package/dist/engine/feature-ast/extractors/index.d.ts +0 -14
  541. package/dist/engine/feature-ast/extractors/index.js +0 -13
  542. package/dist/engine/feature-ast/extractors/jobs-routes.d.ts +0 -7
  543. package/dist/engine/feature-ast/extractors/jobs-routes.js +0 -145
  544. package/dist/engine/feature-ast/extractors/projections-screens.d.ts +0 -10
  545. package/dist/engine/feature-ast/extractors/projections-screens.js +0 -195
  546. package/dist/engine/feature-ast/extractors/resolve-import.d.ts +0 -21
  547. package/dist/engine/feature-ast/extractors/resolve-import.js +0 -180
  548. package/dist/engine/feature-ast/extractors/round1.d.ts +0 -11
  549. package/dist/engine/feature-ast/extractors/round1.js +0 -87
  550. package/dist/engine/feature-ast/extractors/round2.d.ts +0 -7
  551. package/dist/engine/feature-ast/extractors/round2.js +0 -191
  552. package/dist/engine/feature-ast/extractors/round3.d.ts +0 -23
  553. package/dist/engine/feature-ast/extractors/round3.js +0 -292
  554. package/dist/engine/feature-ast/extractors/round5.d.ts +0 -9
  555. package/dist/engine/feature-ast/extractors/round5.js +0 -68
  556. package/dist/engine/feature-ast/extractors/round6.d.ts +0 -4
  557. package/dist/engine/feature-ast/extractors/round6.js +0 -17
  558. package/dist/engine/feature-ast/extractors/shared.d.ts +0 -94
  559. package/dist/engine/feature-ast/extractors/shared.js +0 -343
  560. package/dist/engine/feature-ast/index.d.ts +0 -16
  561. package/dist/engine/feature-ast/index.js +0 -10
  562. package/dist/engine/feature-ast/parse.d.ts +0 -31
  563. package/dist/engine/feature-ast/parse.js +0 -485
  564. package/dist/engine/feature-ast/patch.d.ts +0 -212
  565. package/dist/engine/feature-ast/patch.js +0 -611
  566. package/dist/engine/feature-ast/patcher.d.ts +0 -217
  567. package/dist/engine/feature-ast/patcher.js +0 -281
  568. package/dist/engine/feature-ast/pattern-change-schema.d.ts +0 -1238
  569. package/dist/engine/feature-ast/pattern-change-schema.js +0 -1072
  570. package/dist/engine/feature-ast/pattern-id-matchers.d.ts +0 -7
  571. package/dist/engine/feature-ast/pattern-id-matchers.js +0 -211
  572. package/dist/engine/feature-ast/pattern-id-schema.d.ts +0 -251
  573. package/dist/engine/feature-ast/pattern-id-schema.js +0 -166
  574. package/dist/engine/feature-ast/patterns.d.ts +0 -322
  575. package/dist/engine/feature-ast/patterns.js +0 -107
  576. package/dist/engine/feature-ast/render.d.ts +0 -47
  577. package/dist/engine/feature-ast/render.js +0 -666
  578. package/dist/engine/feature-ast/source-location.d.ts +0 -17
  579. package/dist/engine/feature-ast/source-location.js +0 -27
  580. package/dist/engine/pattern-library/index.d.ts +0 -2
  581. package/dist/engine/pattern-library/index.js +0 -3
  582. package/dist/engine/pattern-library/library.d.ts +0 -14
  583. package/dist/engine/pattern-library/library.js +0 -94
  584. package/dist/engine/pattern-library/mixed-schemas.d.ts +0 -16
  585. package/dist/engine/pattern-library/mixed-schemas.js +0 -559
  586. package/dist/engine/pattern-library/opaque-schemas.d.ts +0 -7
  587. package/dist/engine/pattern-library/opaque-schemas.js +0 -115
  588. package/dist/engine/pattern-library/shared-fields.d.ts +0 -122
  589. package/dist/engine/pattern-library/shared-fields.js +0 -88
  590. package/dist/engine/pattern-library/static-schemas.d.ts +0 -21
  591. package/dist/engine/pattern-library/static-schemas.js +0 -487
  592. package/dist/engine/pattern-library/types.d.ts +0 -158
  593. package/dist/engine/pattern-library/types.js +0 -36
  594. package/dist/engine/resolve-config-or-param.d.ts +0 -18
  595. package/dist/engine/resolve-config-or-param.js +0 -76
  596. package/src/scripts/codemod/README.md +0 -187
  597. package/src/scripts/codemod/codemod-support.ts +0 -334
  598. package/src/scripts/codemod/collect-source-files.ts +0 -48
  599. package/src/scripts/codemod/crypto-shredding-testing-move.ts +0 -119
  600. package/src/scripts/codemod/db-factory.ts +0 -810
  601. package/src/scripts/codemod/feature-factory.ts +0 -429
  602. package/src/scripts/codemod/feature-layout.ts +0 -424
  603. package/src/scripts/codemod/import-extensions.ts +0 -118
  604. package/src/scripts/codemod/migrate-cross-tenant.ts +0 -328
  605. package/src/scripts/codemod/migrate-db-raw.ts +0 -401
  606. package/src/scripts/codemod/migrate-open-to-all.ts +0 -235
  607. package/src/scripts/codemod/object-form.ts +0 -746
  608. package/src/scripts/codemod/package-merge.ts +0 -299
  609. package/src/scripts/codemod/pii-personal-migration.ts +0 -816
  610. package/src/scripts/codemod/remove-engine-payload-casts.ts +0 -318
  611. package/src/scripts/codemod/s3-imports.ts +0 -236
  612. package/src/scripts/codemod/tenant-db-options.ts +0 -454
  613. package/src/scripts/codemod/testing-injection.ts +0 -215
  614. package/src/scripts/codemod/testing-move-targets.ts +0 -161
  615. package/src/scripts/codemod/testing-move.ts +0 -542
  616. package/src/scripts/codemod/unprocessable-error-details-reason.ts +0 -411
@@ -1,9 +1,13 @@
1
+ import type { KumikoEventTypeMap } from "@cosmicdrift/kumiko-types/event-type-map";
2
+ import type { EntityObjectDefinition } from "@cosmicdrift/kumiko-types/feature-registrar";
3
+ import type { EntityDefinition } from "@cosmicdrift/kumiko-types/fields";
4
+ import type { AccessRule, EntityRef, EscapeHatchDeclaration, HandlerRef, NameOrRef, RateLimitDeclaration, StreamHandlerFn } from "@cosmicdrift/kumiko-types/handlers";
5
+ import type { RelationDefinition } from "@cosmicdrift/kumiko-types/relations";
1
6
  import type * as z from "zod";
2
7
  import type { ZodType } from "zod";
3
8
  import { type QueryHandlerDefinition, type StreamHandlerDefinition, type WriteHandlerDefinition } from "./define-handler.ts";
4
9
  import type { RegisterEntityCrudOptions } from "./entity-handlers.ts";
5
10
  import type { FeatureBuilderState } from "./feature-builder-state.ts";
6
- import type { AccessRule, EntityDefinition, EntityObjectDefinition, EntityRef, EscapeHatchDeclaration, HandlerRef, KumikoEventTypeMap, NameOrRef, RateLimitDeclaration, RelationDefinition, StreamHandlerFn } from "./types/index.ts";
7
11
  export declare function buildEntityHandlerMethods<TName extends string>(state: FeatureBuilderState, name: TName): {
8
12
  entity(definition: EntityObjectDefinition): EntityRef;
9
13
  relation(entityRefOrDefinition: NameOrRef | ({
@@ -5,7 +5,7 @@
5
5
  // booted Registry is authoritative because the AST parser cannot read the
6
6
  // imperative factory helpers of bundled features.
7
7
  import { SYSTEM_EVENT_PREFIX } from "../crypto/system-event-pii.js";
8
- import { compareByCodepoint } from "../utils/index.js";
8
+ import { compareByCodepoint } from "../utils/compare.js";
9
9
  import { isEncryptedAtRest } from "./config-helpers.js";
10
10
  import { qualifyEntityName } from "./qualified-name.js";
11
11
  const CONFIG_SEGMENT = ":config:";
@@ -1,8 +1,14 @@
1
+ import type { ExtensionSelectorPanel, RegistrarExtensionDef } from "@cosmicdrift/kumiko-types/config";
2
+ import type { BootCheckFn, StoreTableOptions } from "@cosmicdrift/kumiko-types/feature";
3
+ import type { HookDefinition } from "@cosmicdrift/kumiko-types/feature-registrar";
4
+ import type { NameOrRef } from "@cosmicdrift/kumiko-types/handlers";
5
+ import type { SearchPayloadContributorFn } from "@cosmicdrift/kumiko-types/hooks";
6
+ import type { EntityProjectionExtension, MultiStreamProjectionDefinition, ProjectionDefinition } from "@cosmicdrift/kumiko-types/projection";
7
+ import type { TreeActionDef, TreeActionsHandle } from "@cosmicdrift/kumiko-types/tree-node";
1
8
  import { type WebSocketRouteDefinition } from "@cosmicdrift/kumiko-types/websocket-route";
2
9
  import type { EntityTableMeta } from "../db/entity-table-meta.ts";
3
10
  import type { FeatureBuilderState } from "./feature-builder-state.ts";
4
11
  import type { HttpRouteDefinition } from "./types/http-route.ts";
5
- import type { BootCheckFn, EntityProjectionExtension, ExtensionSelectorPanel, HookDefinition, MultiStreamProjectionDefinition, NameOrRef, ProjectionDefinition, RegistrarExtensionDef, SearchPayloadContributorFn, StoreTableOptions, TreeActionDef, TreeActionsHandle } from "./types/index.ts";
6
12
  import type { ContentCollectionDefinition, NavDefinition } from "./types/nav.ts";
7
13
  import type { ScreenDefinition } from "./types/screen.ts";
8
14
  import type { WorkspaceDefinition } from "./types/workspace.ts";
@@ -6,9 +6,9 @@ import { bindHookEscapeHatchGrant } from "../pipeline/system-identity-switch.js"
6
6
  import { LifecycleHookTypes } from "./constants.js";
7
7
  import { reasonProblem } from "./escape-hatch-reason.js";
8
8
  import { resolveName } from "./handler-helpers.js";
9
+ import { HookPhases } from "./hook-helpers.js";
9
10
  import { isObjectArgument, requireArgument, throwObjectArgumentRequired } from "./object-form.js";
10
11
  import { isKebabSegment, isValidQn, qualifyEntityName, toKebab } from "./qualified-name.js";
11
- import { HookPhases } from "./types/index.js";
12
12
  // Builds hooks/extensions/projections/screens/nav/workspace/tables/tree-actions
13
13
  // registrar methods.
14
14
  // Id the generated owner dashboard reserves for its selector panel.
@@ -168,9 +168,7 @@ export function buildUiExtensionsMethods(state, name) {
168
168
  // skip: validation hooks have no phase, stored and done
169
169
  return;
170
170
  }
171
- if (type === LifecycleHookTypes.preSave ||
172
- type === LifecycleHookTypes.preQuery ||
173
- type === LifecycleHookTypes.postQuery) {
171
+ if (type === LifecycleHookTypes.preSave || type === LifecycleHookTypes.postQuery) {
174
172
  if (!state.lifecycleHooks[type])
175
173
  state.lifecycleHooks[type] = {};
176
174
  for (const n of names) {
@@ -184,6 +182,10 @@ export function buildUiExtensionsMethods(state, name) {
184
182
  // skip: pre/post-hooks without phase semantics, stored and done
185
183
  return;
186
184
  }
185
+ if (!(type in state.phasedLifecycleHooks)) {
186
+ throw new Error(`[Feature ${name}] r.hook({ type: "${type}", … }) is not a known hook type ` +
187
+ "(preQuery hooks were never invoked and have been removed).");
188
+ }
187
189
  // Phased storage. preDelete has no phase option (always inTransaction);
188
190
  // postSave/postDelete default to afterCommit.
189
191
  const phase = type === LifecycleHookTypes.preDelete
@@ -1,4 +1,5 @@
1
- import type { EntityDefinition, SessionUser } from "./types/index.ts";
1
+ import type { EntityDefinition } from "@cosmicdrift/kumiko-types/fields";
2
+ import type { SessionUser } from "./types/index.ts";
2
3
  export declare function maskWriteOnlyFields<T extends Readonly<Record<string, unknown>>>(entity: EntityDefinition, row: T): T;
3
4
  export declare function dropEmptyWriteOnlyValues<T extends Readonly<Record<string, unknown>>>(entity: EntityDefinition, values: T): T;
4
5
  export declare function userMayReadFieldInBulk(entity: EntityDefinition, fieldName: string, user: Pick<SessionUser, "roles">): boolean;
@@ -1,9 +1,5 @@
1
1
  import * as z from "zod";
2
2
  export declare const HANDLER_FIELD_REFERENCES_META_KEY = "references";
3
- export type HandlerFieldReferenceMeta = string | {
4
- readonly entity: string;
5
- readonly by?: string;
6
- };
7
3
  export type HandlerFieldReference = {
8
4
  readonly entity: string;
9
5
  readonly by: string | undefined;
@@ -1,84 +1,89 @@
1
+ export { isAgentVisibleScreen, resolveAgentExposure, } from "@cosmicdrift/kumiko-types/agent-exposure";
2
+ export type { ConfigAccessor, ConfigAccessorFactory, ConfigCascade, ConfigCascadeLevel, ConfigKeyDefinition, ConfigKeyHandle, ConfigKeyType, ConfigResolver, ConfigSecretsReader, ConfigValidateFn, ConfigValue, ConfigValueSource, ConfigValueWithSource, JobDefinition, JobHandlerFn, JobTrigger, NotificationDefinition, NotificationLocalizedTemplate, NotificationRecordMapping, NotificationTemplateBody, NotificationTemplateMeta, ReferenceDataDef, TemplateListVariableDef, TemplateScalarVariableDef, TemplateVariableDef, TemplateVariables, TranslationEntry, TranslationKeys, } from "@cosmicdrift/kumiko-types/config";
3
+ export type { ConfigScope } from "@cosmicdrift/kumiko-types/config-scope";
4
+ export type { KumikoEventTypeMap } from "@cosmicdrift/kumiko-types/event-type-map";
5
+ export type { ExtensionOptionsArgs, ExtensionOptionsFor, KumikoExtensionOptionsMap, } from "@cosmicdrift/kumiko-types/extension-options-map";
6
+ export type { BootOptionName, SecretKeyDefinition, SecretKeyHandle, SecretNamespaceDefinition, SecretNamespaceHandle, SecretNamespaceOptions, } from "@cosmicdrift/kumiko-types/feature";
7
+ export type { FeatureRegistrar } from "@cosmicdrift/kumiko-types/feature-registrar";
8
+ export type { DeriveContext, EntityDefinition, FieldDefinition, JsonbFieldDef, ResolvedPiiFlags, RetentionDef, } from "@cosmicdrift/kumiko-types/fields";
9
+ export type { AccessRule, AgentHandlerHints, AgentRisk, AuthClaimsContext, BeforeTransactionResult, ChatSendFailureCode, ClaimKeyType, DeliveryErrorCode, DeliveryFailureCode, DeliverySkipReason, EscapeHatchAuditSink, EscapeHatchDeclaration, EscapeHatchKind, EscapeHatchUseEvent, EventDef, JobContext, JobDeferral, NotifyDelivery, NotifyDeliveryStatus, NotifyDispatched, NotifyFactory, NotifyFn, NotifyJobDispatcher, NotifyOptions, NotifyPriority, NotifyResult, QueryHandlerDef, RateLimitPer, RoleAccessPersonalData, RoleAccessRule, StreamHandlerDef, TenantWriteTarget, WriteEvent, WriteHandlerDef, WriteHandlerFn, WriteResult, } from "@cosmicdrift/kumiko-types/handlers";
10
+ export { DELIVERY_FAILURE_CODES, DELIVERY_SKIP_REASONS, HTTP_ERROR_CODE_PATTERN, isDeliveryErrorCode, isOpenToAllGranted, } from "@cosmicdrift/kumiko-types/handlers";
11
+ export type { DeleteContext, PostDeleteHookFn, PostSaveHookFn, PreDeleteHookFn, PreSaveHookFn, SaveContext, ValidationError, ValidationHookFn, } from "@cosmicdrift/kumiko-types/hooks";
12
+ export type { EntityId } from "@cosmicdrift/kumiko-types/identifiers";
13
+ export type { ContentCollectionDefinition, NavDefinition, NavIconKey, } from "@cosmicdrift/kumiko-types/nav";
14
+ export type { MspErrorMode, MultiStreamApplyFn, MultiStreamProjectionDefinition, ProjectionDefinition, } from "@cosmicdrift/kumiko-types/projection";
15
+ export type { RelationDefinition } from "@cosmicdrift/kumiko-types/relations";
16
+ export type { ActionFormScreenDefinition, BundledListsOptions, ConfigEditScreenDefinition, DashboardCustomPanel, DashboardI18nText, EditFieldSpec, EditRelatedListSection, EditSectionSpec, EntityEditScreenDefinition, EntityListScreenDefinition, FieldCondition, FieldFormatRegistry, ListColumnSpec, ListFacetSpec, ListTableOptions, MetricNavigate, ProjectionDetailScreenDefinition, ProjectionListScreenDefinition, RowAction, RowActionWriteHandler, ScreenDefinition, SecretMintScreenDefinition, ToolbarAction, UnitKey, } from "@cosmicdrift/kumiko-types/screen";
17
+ export type { TargetRef } from "@cosmicdrift/kumiko-types/target-ref";
18
+ export type { TreeAction, TreeActionDef, TreeChildrenSubscribe, TreeNode, } from "@cosmicdrift/kumiko-types/tree-node";
19
+ export type { WorkspaceDefinition } from "@cosmicdrift/kumiko-types/workspace";
1
20
  export { handlerFieldLabelKey, handlerTitleKey } from "../i18n/required-surface-keys.ts";
21
+ export { attachOutsideTransaction } from "../pipeline/attach-outside-transaction.ts";
2
22
  export { hasAccess } from "./access.ts";
3
- export { isPrincipalStatusPlugin, isTenantLifecycleStatusPlugin, type PrincipalProfile, type PrincipalStatus, type PrincipalStatusPlugin, TENANT_TEARDOWN_STATUSES, type TenantLifecycleStatusPlugin, } from "./active-membership.ts";
23
+ export type { PrincipalProfile, PrincipalStatus, PrincipalStatusPlugin, TenantLifecycleStatusPlugin, } from "./active-membership.ts";
4
24
  export { validateBundledListsOptions } from "./boot-validator/bundled-lists-table.ts";
5
25
  export { PII_DIRECT_NAME_HINTS, PII_USER_OWNED_NAME_HINTS, PII_USER_REFERENCE_NAME_HINTS, } from "./boot-validator/entity-handler.ts";
6
26
  export { entityHasAnonymizableSubjectField } from "./boot-validator/pii-retention.ts";
7
- export { type CardMetaOverflow, collectCardMetaOverflow, collectWriteHandlerQns, MAX_TRANSFER_DEPTH, SECURITY_BASELINE_FEATURE_NAMES, type ValidateBootOptions, validateAppCustomScreenWriteQns, validateBoot, } from "./boot-validator.ts";
27
+ export { collectCardMetaOverflow, collectWriteHandlerQns, MAX_TRANSFER_DEPTH, SECURITY_BASELINE_FEATURE_NAMES, type ValidateBootOptions, validateAppCustomScreenWriteQns, validateBoot, } from "./boot-validator.ts";
8
28
  export { bridgeStub } from "./bridge-stub.ts";
9
- export { type BuildAppSchemaOptions, buildAppSchema } from "./build-app-schema.ts";
10
- export type { ConfigFeatureSchema } from "./build-config-feature-schema.ts";
11
- export { buildConfigFeatureSchema, SETTINGS_HUB_FEATURE, SETTINGS_HUB_WORKSPACE, } from "./build-config-feature-schema.ts";
12
- export { buildTarget } from "./build-target.ts";
29
+ export { buildAppSchema } from "./build-app-schema.ts";
30
+ export { buildConfigFeatureSchema, SETTINGS_HUB_FEATURE, } from "./build-config-feature-schema.ts";
13
31
  export { type PendingChange, parseChangesetChanges } from "./changeset-changes.ts";
14
- export { access, createSeed, createSystemConfig, createSystemSeed, createTenantConfig, createTenantSeed, createUserConfig, createUserSeed, isEncryptedAtRest, } from "./config-helpers.ts";
15
- export type { SystemHookName } from "./constants.ts";
16
- export { ConcurrencyModes, ConfigScopes, LifecycleHookTypes, MessageKind, OnDeleteStrategies, SystemHookNames, SystemHookPriorities, TENANT_CURRENCY_CONFIG_KEY, tenantChannel, } from "./constants.ts";
17
- export type { App, AppConfig } from "./create-app.ts";
18
- export { createApp } from "./create-app.ts";
19
- export { mayOverrideTenant, tenantOverrideDenied } from "./cross-tenant.ts";
32
+ export { access, createSeed, createSystemConfig, createSystemSeed, createTenantConfig, createTenantSeed, createUserConfig, isEncryptedAtRest, } from "./config-helpers.ts";
33
+ export type { LifecycleHookType } from "./constants.ts";
34
+ export { ConfigScopes, LifecycleHookTypes, TENANT_CURRENCY_CONFIG_KEY, tenantChannel, } from "./constants.ts";
35
+ export { mayOverrideTenant } from "./cross-tenant.ts";
20
36
  export { dedupeFeatures } from "./dedupe-features.ts";
21
37
  export { defineFeature } from "./define-feature.ts";
22
- export type { PagedQueryHandlerDefinition, QueryHandlerDefinition, StreamHandlerDefinition, WriteHandlerDefinition, WriteHandlerInput, } from "./define-handler.ts";
23
- export { definePagedQueryHandler, defineQueryHandler, defineWriteHandler, isPagedQueryHandler, } from "./define-handler.ts";
38
+ export type { PagedQueryHandlerDefinition, QueryHandlerDefinition, WriteHandlerDefinition, WriteHandlerInput, } from "./define-handler.ts";
39
+ export { definePagedQueryHandler, defineQueryHandler, defineWriteHandler, } from "./define-handler.ts";
24
40
  export { defineRoles } from "./define-roles.ts";
25
- export { defineStep, getStep, listStepKinds } from "./define-step.ts";
26
- export type { WorkflowDefinition, WorkflowInput, WorkflowTrigger } from "./define-workflow.ts";
41
+ export { defineStep, getStep } from "./define-step.ts";
42
+ export type { WorkflowDefinition } from "./define-workflow.ts";
27
43
  export { computeDefinitionFingerprint, defineWorkflow } from "./define-workflow.ts";
28
44
  export type { ToggleReader } from "./effective-features.ts";
29
45
  export { computeEffectiveFeatures, isToggleableFeature } from "./effective-features.ts";
30
- export { createEntityExecutor, defineEntityCreateHandler, defineEntityDeleteHandler, defineEntityDetailHandler, defineEntityListHandler, defineEntityQueryHandler, defineEntityRestoreHandler, defineEntityUpdateHandler, defineEntityWriteHandler, defineProjectionQueryHandler, type EntityCrudRegistrar, entityListSchema, MAX_LIST_LIMIT, type RegisterEntityCrudOptions, } from "./entity-handlers.ts";
46
+ export { createEntityExecutor, defineEntityCreateHandler, defineEntityDeleteHandler, defineEntityDetailHandler, defineEntityListHandler, defineEntityQueryHandler, defineEntityRestoreHandler, defineEntityUpdateHandler, defineEntityWriteHandler, defineProjectionQueryHandler, entityListSchema, MAX_LIST_LIMIT, } from "./entity-handlers.ts";
31
47
  export { declareEscapeHatch } from "./escape-hatch-declaration.ts";
32
- export { type CreateEventDefOptions, createEventDef } from "./event-def.ts";
33
- export type { EmitCtx } from "./event-helpers.ts";
48
+ export { CODEMOD_PLACEHOLDER_REASON_MARKER } from "./escape-hatch-reason.ts";
34
49
  export { emitEvent, typedPayload } from "./event-helpers.ts";
35
- export type { KumikoExtensionName, TenantResourceExtensionName } from "./extension-names.ts";
50
+ export type { TenantResourceExtensionName } from "./extension-names.ts";
36
51
  export { EXT_ASSIGNABLE_ROLE, EXT_DERIVATIVE_OVERLAY_RESOLVER, EXT_DERIVATIVE_PUBLIC_PREDICATE, EXT_DERIVATIVE_RENDERER, EXT_EXTERNAL_RESOURCE, EXT_FILE_PROVIDER, EXT_INFRA_RESOURCE, EXT_PRINCIPAL_STATUS, EXT_SEARCH_ADAPTER, EXT_STORAGE_PROVIDER, EXT_TENANT_DATA, EXT_TENANT_LIFECYCLE_STATUS, EXT_USER_DATA, EXT_USER_DATA_ORDER, FILE_PROVIDER_CONFIG_KEY, FILE_STORAGE_PROVIDER_BOOT_SENTINEL, FILE_STORAGE_PROVIDER_ENV, TENANT_MEMBERSHIPS_QUERY, } from "./extension-names.ts";
37
- export { EXTENSION_SELECTOR_HINT_KEY, extensionSelectorTargets, SELECTED_EXTENSIONS_QUERY, selectablePluginIds, } from "./extension-selector-plugins.ts";
52
+ export { extensionSelectorTargets, SELECTED_EXTENSIONS_QUERY, selectablePluginIds, } from "./extension-selector-plugins.ts";
38
53
  export { extensionUsageEscapeHatchReason } from "./extensions/escape-hatch-usage.ts";
39
- export type { StorageProviderDestroyTenantHook, StorageProviderExtensionHooks, StorageProviderHookCtx, } from "./extensions/storage-provider.ts";
40
- export { isTenantDataExtensionHooks, type TenantDataDestroyHook, type TenantDataExtensionHooks, type TenantDataHookCtx, } from "./extensions/tenant-data.ts";
41
- export { isTenantResourceExtensionHooks, type TenantDestroyHookResult, type TenantResourceDestroyHook, type TenantResourceExtensionHooks, type TenantResourceHookCtx, } from "./extensions/tenant-resource.ts";
42
- export type { TenantUserModel, UserDataDeleteHook, UserDataDeleteStrategy, UserDataExportHook, UserDataExportSnippet, UserDataExtensionHooks, UserDataExtensionOptions, UserDataHookCtx, UserDataStorageProvider, } from "./extensions/user-data.ts";
54
+ export type { StorageProviderDestroyTenantHook, StorageProviderHookCtx, } from "./extensions/storage-provider.ts";
55
+ export { isTenantDataExtensionHooks, type TenantDataDestroyHook, type TenantDataHookCtx, } from "./extensions/tenant-data.ts";
56
+ export { isTenantResourceExtensionHooks, type TenantDestroyHookResult, type TenantResourceDestroyHook, type TenantResourceHookCtx, } from "./extensions/tenant-resource.ts";
57
+ export type { TenantUserModel, UserDataDeleteHook, UserDataDeleteStrategy, UserDataExportHook, UserDataExportSnippet, UserDataHookCtx, UserDataStorageProvider, } from "./extensions/user-data.ts";
43
58
  export { createBigIntField, createBooleanField, createDateField, createDecimalField, createDerivedField, createEmbeddedField, createEmbeddedListField, createEntity, createFileField, createFilesField, createImageField, createImagesField, createJsonbField, createLocatedTimestampField, createLongTextField, createMoneyField, createMultiSelectField, createNumberField, createSelectField, createTextField, createTimestampField, createTzField, } from "./factories.ts";
44
- export type { AddEntityArgs, AddHookArgs, AddRelationArgs, AddWriteHandlerArgs, FeaturePatcher, FeaturePattern, FeaturePatternKind, FormFieldLabel, FormFieldSpec, FormInputType, HandlerHeaderUpdate, ParseError, ParseResult, PatternCategory, PatternChange, PatternChangeIssue, PatternChangesParseResult, PatternFormSchema, PatternId, RenderFeatureFileInput, SourceLocation, } from "./feature-ast/index.ts";
45
- export { addPattern, applyChanges, createFeaturePatcher, getPatternSchema, groupByCategory, PATTERN_LIBRARY, parseFeatureFile, parsePatternChanges, parseSourceFile, removePattern, renderFeatureFile, renderPattern, replacePattern, updatePattern, VERSION_HEADER, } from "./feature-ast/index.ts";
46
- export { type ChangelogEntry, type ChangelogType, compareVersions, type FeatureChangelog, filterEntriesAfter, parseFeatureChangelog, sortEntries, validateChangelog, } from "./feature-changelog.ts";
47
- export { type BuildManifestOptions, buildManifestFromRegistry, type FeatureManifest, type ManifestConfigKey, type ManifestExtension, type ManifestFeature, type ManifestSecret, type ManifestSystemEvent, serializeManifest, } from "./feature-manifest.ts";
48
- export { checkWriteFieldOwnership, checkWriteFieldRoles, filterReadFields, maskWriteOnlyFields, } from "./field-access.ts";
49
- export type { FormDerivationScreen } from "./form-derivations.ts";
50
- export { applyFormDerivations, isFormDerivationInputMode } from "./form-derivations.ts";
51
- export { HANDLER_FIELD_REFERENCES_META_KEY, type HandlerFieldPathSegment, type HandlerFieldReference, type HandlerFieldReferenceAtPath, type HandlerFieldReferenceMeta, handlerFieldReference, handlerFieldReferences, readHandlerFieldReferences, } from "./handler-field-references.ts";
52
- export { resolveName, withResponseData } from "./handler-helpers.ts";
59
+ export { type ChangelogEntry, compareVersions, filterEntriesAfter, parseFeatureChangelog, } from "./feature-changelog.ts";
60
+ export { buildManifestFromRegistry, type FeatureManifest, type ManifestConfigKey, type ManifestExtension, type ManifestFeature, type ManifestSecret, type ManifestSystemEvent, serializeManifest, } from "./feature-manifest.ts";
61
+ export { filterReadFields, maskWriteOnlyFields, } from "./field-access.ts";
62
+ export { DEFAULT_CURRENCIES, DEFAULT_LOCALES } from "./field-helpers.ts";
63
+ export { handlerFieldReference } from "./handler-field-references.ts";
64
+ export { withResponseData } from "./handler-helpers.ts";
65
+ export { HookPhases } from "./hook-helpers.ts";
53
66
  export { i18nKey } from "./i18n-key.ts";
54
- export { buildSessionRoles, findForbiddenMembershipRole, isForbiddenMembershipRole, stripForbiddenMembershipRoles, } from "./membership-roles.ts";
55
- export type { OwnershipClause, OwnershipMap, OwnershipRef, OwnershipRule } from "./ownership.ts";
56
- export { buildOwnershipClause, combineClauses, from, normalizeAccessEntry, userCanCreateFieldRow, userCanReadFieldRow, userCanWriteFieldRow, } from "./ownership.ts";
57
- export { type PagedListRequest, type PagedListRowValue, pagedListSchema, pageRows, } from "./paged-list.ts";
58
- export type { ParsedRefTarget } from "./parse-ref-target.ts";
67
+ export { buildSessionRoles, findForbiddenMembershipRole, } from "./membership-roles.ts";
68
+ export type { OwnershipMap } from "./ownership.ts";
69
+ export { from, normalizeAccessEntry, } from "./ownership.ts";
70
+ export { pagedListSchema, pageRows, } from "./paged-list.ts";
59
71
  export { parseRefTarget, parseRefTargetEntityName } from "./parse-ref-target.ts";
60
72
  export { buildPipelineSteps, stepsPipeline } from "./pipeline.ts";
61
73
  export { projectAppSchemaForRoles } from "./project-app-schema-for-roles.ts";
62
74
  export { defineApply, defineMspApply, setFields } from "./projection-helpers.ts";
63
- export type { BuiltinQnType, ParsedQn, QnType } from "./qualified-name.ts";
64
75
  export { isValidQn, parseQn, QnTypes, qn, toKebab } from "./qualified-name.ts";
65
76
  export { readClaim } from "./read-claim.ts";
66
77
  export { createRegistry } from "./registry.ts";
67
- export { qualifyTranslationKey } from "./registry-ingest.ts";
68
- export type { ClampInfo, ResolveOptions } from "./resolve-config-or-param.ts";
69
- export { resolveConfigOrParam } from "./resolve-config-or-param.ts";
70
- export type { AssignableAppRoles, AssignableFromRole } from "./role-assignment.ts";
78
+ export type { AssignableAppRoles } from "./role-assignment.ts";
71
79
  export { assignableAppRolesFromUsages, assignableAppRolesOf, BUILT_IN_MEMBERSHIP_ROLES, canActorAssignRole, findForbiddenRoleAssignment, isAssignableByRole, mergeAssignedRoles, } from "./role-assignment.ts";
72
- export { runsInLane } from "./run-in.ts";
73
- export type { StepListOutcome } from "./run-pipeline.ts";
74
80
  export { runPipeline, runStepList } from "./run-pipeline.ts";
75
81
  export { buildInsertSchema, buildUpdateSchema, fieldToZod, SYSTEM_ONLY_JSON_SCHEMA_KEY, } from "./schema-builder.ts";
76
- export type { UnavailableSelectOption } from "./screen-helpers.ts";
77
- export { availableSelectOptions, findUnavailableSelectOptions, isExtensionEditSection, isFieldsEditSection, isWriteFormEditSection, normalizeEditField, normalizeListColumn, sectionFieldSpecs, } from "./screen-helpers.ts";
82
+ export { isFieldsEditSection, normalizeEditField, normalizeListColumn, sectionFieldSpecs, } from "./screen-helpers.ts";
78
83
  export type { TransitionGraph } from "./state-machine.ts";
79
84
  export { defineTransitions, guardTransition } from "./state-machine.ts";
80
85
  export { evaluateEventMatch } from "./steps/_event-match.ts";
81
- export { STEP_DISPATCH_AGGREGATE_TYPE, STEP_DISPATCH_FAILED_TYPE, STEP_DISPATCH_REQUESTED_TYPE, STEP_DISPATCHED_TYPE, SUSPEND_SENTINEL, WORKFLOW_AGGREGATE_TYPE, WORKFLOW_RESUMED_TYPE, WORKFLOW_RETRY_SCHEDULED_TYPE, WORKFLOW_RUN_COMPLETED_TYPE, WORKFLOW_RUN_FAILED_TYPE, WORKFLOW_RUN_STARTED_TYPE, WORKFLOW_WAITING_FOR_EVENT_TYPE, WORKFLOW_WAITING_TYPE, } from "./steps/_step-dispatch-constants.ts";
86
+ export { STEP_DISPATCH_AGGREGATE_TYPE, STEP_DISPATCH_FAILED_TYPE, STEP_DISPATCH_REQUESTED_TYPE, STEP_DISPATCHED_TYPE, WORKFLOW_AGGREGATE_TYPE, WORKFLOW_RESUMED_TYPE, WORKFLOW_RETRY_SCHEDULED_TYPE, WORKFLOW_RUN_COMPLETED_TYPE, WORKFLOW_RUN_FAILED_TYPE, WORKFLOW_RUN_STARTED_TYPE, WORKFLOW_WAITING_FOR_EVENT_TYPE, WORKFLOW_WAITING_TYPE, } from "./steps/_step-dispatch-constants.ts";
82
87
  export { describeWorkflowStepError } from "./steps/describe-workflow-step-error.ts";
83
88
  export { unwrapWorkflowStepError, WorkflowStepError } from "./steps/workflow-step-error.ts";
84
89
  export { WORKFLOW_SYSTEM_EVENT_DEFS } from "./steps/workflow-system-events.ts";
@@ -87,9 +92,7 @@ export { assertNotificationVariables, templateVariable, templateVariablesToZod,
87
92
  export { type EffectiveFeaturesResolver, findTierResolverUsage, isTierResolverPlugin, requireTierResolverPlugin, TENANT_TIER_RESOLVER_EXT, type TierResolverPlugin, type TrialGate, } from "./tier-resolver-extension.ts";
88
93
  export { findOverDeepTransferChain, resolveTransferAdjacency as resolveEntityTransferAdjacency, type TransferAdjacency, type TransferEdge, type TransferEdgeLink, } from "./transfer-adjacency.ts";
89
94
  export { isSystemTenant, isUuid, parseTenantId, SYSTEM_TENANT_ID } from "./types/identifiers.ts";
90
- export type { AccessRule, ActionFormScreenDefinition, ActiveMembership, ActiveMembershipRejection, ActiveMembershipResult, AgentExposure, AgentHandlerHints, AgentRisk, AppContext, AppendEventArgs, AppendEventFn, AuthClaimsContext, AuthClaimsFn, AuthClaimsHookDef, BeforeTransactionPhase, BeforeTransactionResult, BelongsToRelation, BigIntFieldDef, BooleanFieldDef, BootOptionName, BundledListsOptions, CamelToKebab, ChatSendFailureCode, ClaimKeyDefinition, ClaimKeyHandle, ClaimKeyJsType, ClaimKeyType, ConcurrencyMode, ConfigAccessor, ConfigAccessorFactory, ConfigBacking, ConfigCascade, ConfigCascadeLevel, ConfigDefinition, ConfigEditScreenDefinition, ConfigKeyAccess, ConfigKeyDefinition, ConfigKeyHandle, ConfigKeyType, ConfigMask, ConfigResolver, ConfigScope, ConfigSecretsReader, ConfigSeedDef, ConfigStoredRow, ConfigStoredRowWithSource, ConfigValidateContext, ConfigValidateFn, ConfigValue, ConfigValueSource, ConfigValueWithSource, ContentCollectionDefinition, CreateSeedOptions, CreateTenantSeedOptions, CreateUserSeedOptions, CustomScreenDefinition, CustomScreenRoute, DashboardChartPanel, DashboardCurrencyFormat, DashboardCustomPanel, DashboardDateParam, DashboardFeedPanel, DashboardFilterDefinition, DashboardI18nText, DashboardListPanel, DashboardMoneyParam, DashboardPanelDefinition, DashboardPanelVisibility, DashboardProgressListPanel, DashboardProgressTone, DashboardRecordBinding, DashboardRefresh, DashboardRelativeTimeFormat, DashboardRelativeTimeParam, DashboardScreenDefinition, DashboardScreenPanel, DashboardStatGroupPanel, DashboardStatPanel, DashboardText, DashboardTextBlock, DashboardTextPanel, DashboardTextParam, DashboardValueFormat, DateFieldDef, DecimalFieldDef, DeleteContext, DeliveryErrorCode, DeliveryFailureCode, DeliverySkipReason, DeriveContext, DerivedFieldDef, DerivedFieldsMap, DerivedValueType, EditExtensionSection, EditFieldPrefill, EditFieldSpec, EditFieldsSection, EditLayout, EditRelatedListSection, EditSectionSpec, EmbeddedListEditSpec, EntityDefinition, EntityEditAction, EntityEditActionPlacement, EntityEditScreenDefinition, EntityId, EntityListExpandableRow, EntityListScreenDefinition, EntityObjectDefinition, EntityRef, EntityRelations, EscapeHatchAuditSink, EscapeHatchDeclaration, EscapeHatchKind, EscapeHatchReporter, EscapeHatchTarget, EscapeHatchUseEvent, EventDef, ExpandableRowGrouping, ExtensionOptionsArgs, ExtensionOptionsFor, FeatureDefinition, FeatureRegistrar, FieldAccess, FieldCondition, FieldDefinition, FieldFormatRegistry, FieldIconKey, FieldRenderer, FileFieldDef, FilesFieldDef, Findability, FormatSpec, FormWidth, HandlerContext, HasManyRelation, HookDefinition, HookMap, ImageFieldDef, ImagesFieldDef, JobBackoff, JobBackoffStrategy, JobContext, JobDeferral, JobDefinition, JobHandlerFn, JobTrigger, JobTriggerEvent, JsonbFieldDef, KumikoEntityTypeMap, KumikoEventTypeMap, KumikoExtensionOptionsMap, KumikoHandlerPayloadMap, KumikoHandlerResultMap, LifecycleHookType, ListColumnSpec, ListFacetSpec, ListPaginationMode, ListSortDir, ListSortSpec, ListTableOptions, LongTextFindability, ManyToManyRelation, MaxPerTenantOptions, MemberReader, MetricNavigate, MetricSpec, MspErrorMode, MspErrorPolicy, MultiSelectFieldDef, MultiStreamApplyFn, MultiStreamProjectionDefinition, NameOrRef, NavDefinition, NavIconKey, NotificationDataFn, NotificationDefinition, NotificationLocalizedTemplate, NotificationRecipientFn, NotificationRecordMapping, NotificationTemplateBody, NotificationTemplateFn, NotificationTemplateMeta, NotifyDeferred, NotifyDelivery, NotifyDeliveryStatus, NotifyDispatched, NotifyFactory, NotifyFn, NotifyJobDispatcher, NotifyOptions, NotifyPriority, NotifyResult, NumberFieldDef, OnDeleteStrategy, OpenToAllAccessRule, OpenToAllDeclaration, OpenToAllPersonalData, ParentRefDef, PersonalAnnotations, PersonalAnnotationsLongText, PersonalAnnotationsNoFind, PersonalSubject, PlatformComponent, PluralForms, PostDeleteHookFn, PostSaveHookFn, PreDeleteHookFn, PreparedWriteEvent, PreQueryHookFn, PreSaveHookFn, ProjectionDefinition, ProjectionDetailScreenDefinition, ProjectionListScreenDefinition, ProjectionTable, QualifiedEventName, QueryEvent, QueryHandlerDef, QueryHandlerFn, RateLimitPer, RecordHeaderSpec, RecordHeaderSubtitlePart, ReferenceDataDef, Registry, RelationDefinition, ResolvedPiiFlags, RetentionDef, RoleAccessPersonalData, RoleAccessRule, RowAction, RowActionNavigate, RowActionNavigateBase, RowActionWriteHandler, RowFieldExtractor, SaveContext, ScreenDefinition, ScreenFilter, ScreenFilterOp, ScreenNavSugar, ScreenSlots, SecretKeyDefinition, SecretKeyHandle, SecretMintConfirmStep, SecretMintScreenDefinition, SecretNamespaceDefinition, SecretNamespaceHandle, SecretNamespaceOptions, SecretReveal, SecretRevealField, SecretsEditScreenDefinition, SecretsEditSection, SelectFieldDef, SessionUser, SessionUserOrigin, StackBootRequirement, StreamHandlerDef, StreamHandlerFn, Subscribe, TargetRef, TemplateImagesVariableDef, TemplateListVariableDef, TemplateScalarVariableDef, TemplateVariableDef, TemplateVariables, TenantId, TenantWriteTarget, TextFieldDef, ToolbarAction, TranslationEntry, TranslationKeys, TranslationsDef, TranslationValue, TreeAction, TreeActionDef, TreeActionsHandle, TreeChildrenSubscribe, TreeNode, TreeNodeState, UnitKey, UnsafeAppendEventFn, ValidationError, ValidationHookFn, WorkspaceDefinition, WriteEvent, WriteHandlerDef, WriteHandlerFn, WriteResult, } from "./types/index.ts";
91
- export { DEFAULT_CURRENCIES, DEFAULT_LOCALES, DELIVERY_FAILURE_CODES, DELIVERY_SKIP_REASONS, HookPhases, HTTP_ERROR_CODE_PATTERN, isAgentVisibleScreen, isDeliveryErrorCode, isOpenToAllGranted, resolveAgentExposure, } from "./types/index.ts";
92
- export type { AwaitedEventType, PipelineBuildCtx, PipelineCtx, PipelineDef, StepBuilder, StepDef, StepFailureStrategy, StepInstance, StepKind, StepNamespace, StepResolver, } from "./types/step.ts";
93
- export { runValidation } from "./validation.ts";
95
+ export type { AppContext, BeforeTransactionContext, FeatureDefinition, HandlerAuth, HandlerContext, HandlerDb, HandlerDispatch, HandlerEvents, HandlerObservability, JobDispatch, JobEvents, JobObservability, QueryEvent, Registry, ReservationContext, SessionUser, TenantId, } from "./types/index.ts";
96
+ export type { AwaitedEventType, PipelineCtx, StepInstance, StepResolver, } from "./types/step.ts";
94
97
  export { walkStepInstances } from "./walk-step-instances.ts";
95
- export { formDerivationsOfSchema, withFormDerivations } from "./with-form-derivations.ts";
98
+ export { withFormDerivations } from "./with-form-derivations.ts";
@@ -1,25 +1,25 @@
1
1
  // Public API
2
+ export { isAgentVisibleScreen, resolveAgentExposure, } from "@cosmicdrift/kumiko-types/agent-exposure";
3
+ export { DELIVERY_FAILURE_CODES, DELIVERY_SKIP_REASONS, HTTP_ERROR_CODE_PATTERN, isDeliveryErrorCode, isOpenToAllGranted, } from "@cosmicdrift/kumiko-types/handlers";
2
4
  export { handlerFieldLabelKey, handlerTitleKey } from "../i18n/required-surface-keys.js";
5
+ export { attachOutsideTransaction } from "../pipeline/attach-outside-transaction.js";
3
6
  export { hasAccess } from "./access.js";
4
- export { isPrincipalStatusPlugin, isTenantLifecycleStatusPlugin, TENANT_TEARDOWN_STATUSES, } from "./active-membership.js";
5
7
  export { validateBundledListsOptions } from "./boot-validator/bundled-lists-table.js";
6
8
  export { PII_DIRECT_NAME_HINTS, PII_USER_OWNED_NAME_HINTS, PII_USER_REFERENCE_NAME_HINTS, } from "./boot-validator/entity-handler.js";
7
9
  export { entityHasAnonymizableSubjectField } from "./boot-validator/pii-retention.js";
8
10
  export { collectCardMetaOverflow, collectWriteHandlerQns, MAX_TRANSFER_DEPTH, SECURITY_BASELINE_FEATURE_NAMES, validateAppCustomScreenWriteQns, validateBoot, } from "./boot-validator.js";
9
11
  export { bridgeStub } from "./bridge-stub.js";
10
12
  export { buildAppSchema } from "./build-app-schema.js";
11
- export { buildConfigFeatureSchema, SETTINGS_HUB_FEATURE, SETTINGS_HUB_WORKSPACE, } from "./build-config-feature-schema.js";
12
- export { buildTarget } from "./build-target.js";
13
+ export { buildConfigFeatureSchema, SETTINGS_HUB_FEATURE, } from "./build-config-feature-schema.js";
13
14
  export { parseChangesetChanges } from "./changeset-changes.js";
14
- export { access, createSeed, createSystemConfig, createSystemSeed, createTenantConfig, createTenantSeed, createUserConfig, createUserSeed, isEncryptedAtRest, } from "./config-helpers.js";
15
- export { ConcurrencyModes, ConfigScopes, LifecycleHookTypes, MessageKind, OnDeleteStrategies, SystemHookNames, SystemHookPriorities, TENANT_CURRENCY_CONFIG_KEY, tenantChannel, } from "./constants.js";
16
- export { createApp } from "./create-app.js";
17
- export { mayOverrideTenant, tenantOverrideDenied } from "./cross-tenant.js";
15
+ export { access, createSeed, createSystemConfig, createSystemSeed, createTenantConfig, createTenantSeed, createUserConfig, isEncryptedAtRest, } from "./config-helpers.js";
16
+ export { ConfigScopes, LifecycleHookTypes, TENANT_CURRENCY_CONFIG_KEY, tenantChannel, } from "./constants.js";
17
+ export { mayOverrideTenant } from "./cross-tenant.js";
18
18
  export { dedupeFeatures } from "./dedupe-features.js";
19
19
  export { defineFeature } from "./define-feature.js";
20
- export { definePagedQueryHandler, defineQueryHandler, defineWriteHandler, isPagedQueryHandler, } from "./define-handler.js";
20
+ export { definePagedQueryHandler, defineQueryHandler, defineWriteHandler, } from "./define-handler.js";
21
21
  export { defineRoles } from "./define-roles.js";
22
- export { defineStep, getStep, listStepKinds } from "./define-step.js";
22
+ export { defineStep, getStep } from "./define-step.js";
23
23
  export { computeDefinitionFingerprint, defineWorkflow } from "./define-workflow.js";
24
24
  export { computeEffectiveFeatures, isToggleableFeature } from "./effective-features.js";
25
25
  export { createEntityExecutor, defineEntityCreateHandler, defineEntityDeleteHandler, defineEntityDetailHandler, defineEntityListHandler,
@@ -28,21 +28,21 @@ export { createEntityExecutor, defineEntityCreateHandler, defineEntityDeleteHand
28
28
  // tests, old bundled-features) remain runnable without changes.
29
29
  defineEntityQueryHandler, defineEntityRestoreHandler, defineEntityUpdateHandler, defineEntityWriteHandler, defineProjectionQueryHandler, entityListSchema, MAX_LIST_LIMIT, } from "./entity-handlers.js";
30
30
  export { declareEscapeHatch } from "./escape-hatch-declaration.js";
31
- export { createEventDef } from "./event-def.js";
31
+ export { CODEMOD_PLACEHOLDER_REASON_MARKER } from "./escape-hatch-reason.js";
32
32
  export { emitEvent, typedPayload } from "./event-helpers.js";
33
33
  export { EXT_ASSIGNABLE_ROLE, EXT_DERIVATIVE_OVERLAY_RESOLVER, EXT_DERIVATIVE_PUBLIC_PREDICATE, EXT_DERIVATIVE_RENDERER, EXT_EXTERNAL_RESOURCE, EXT_FILE_PROVIDER, EXT_INFRA_RESOURCE, EXT_PRINCIPAL_STATUS, EXT_SEARCH_ADAPTER, EXT_STORAGE_PROVIDER, EXT_TENANT_DATA, EXT_TENANT_LIFECYCLE_STATUS, EXT_USER_DATA, EXT_USER_DATA_ORDER, FILE_PROVIDER_CONFIG_KEY, FILE_STORAGE_PROVIDER_BOOT_SENTINEL, FILE_STORAGE_PROVIDER_ENV, TENANT_MEMBERSHIPS_QUERY, } from "./extension-names.js";
34
- export { EXTENSION_SELECTOR_HINT_KEY, extensionSelectorTargets, SELECTED_EXTENSIONS_QUERY, selectablePluginIds, } from "./extension-selector-plugins.js";
34
+ export { extensionSelectorTargets, SELECTED_EXTENSIONS_QUERY, selectablePluginIds, } from "./extension-selector-plugins.js";
35
35
  export { extensionUsageEscapeHatchReason } from "./extensions/escape-hatch-usage.js";
36
36
  export { isTenantDataExtensionHooks, } from "./extensions/tenant-data.js";
37
37
  export { isTenantResourceExtensionHooks, } from "./extensions/tenant-resource.js";
38
38
  export { createBigIntField, createBooleanField, createDateField, createDecimalField, createDerivedField, createEmbeddedField, createEmbeddedListField, createEntity, createFileField, createFilesField, createImageField, createImagesField, createJsonbField, createLocatedTimestampField, createLongTextField, createMoneyField, createMultiSelectField, createNumberField, createSelectField, createTextField, createTimestampField, createTzField, } from "./factories.js";
39
- export { addPattern, applyChanges, createFeaturePatcher, getPatternSchema, groupByCategory, PATTERN_LIBRARY, parseFeatureFile, parsePatternChanges, parseSourceFile, removePattern, renderFeatureFile, renderPattern, replacePattern, updatePattern, VERSION_HEADER, } from "./feature-ast/index.js";
40
- export { compareVersions, filterEntriesAfter, parseFeatureChangelog, sortEntries, validateChangelog, } from "./feature-changelog.js";
39
+ export { compareVersions, filterEntriesAfter, parseFeatureChangelog, } from "./feature-changelog.js";
41
40
  export { buildManifestFromRegistry, serializeManifest, } from "./feature-manifest.js";
42
- export { checkWriteFieldOwnership, checkWriteFieldRoles, filterReadFields, maskWriteOnlyFields, } from "./field-access.js";
43
- export { applyFormDerivations, isFormDerivationInputMode } from "./form-derivations.js";
44
- export { HANDLER_FIELD_REFERENCES_META_KEY, handlerFieldReference, handlerFieldReferences, readHandlerFieldReferences, } from "./handler-field-references.js";
45
- export { resolveName, withResponseData } from "./handler-helpers.js";
41
+ export { filterReadFields, maskWriteOnlyFields, } from "./field-access.js";
42
+ export { DEFAULT_CURRENCIES, DEFAULT_LOCALES } from "./field-helpers.js";
43
+ export { handlerFieldReference } from "./handler-field-references.js";
44
+ export { withResponseData } from "./handler-helpers.js";
45
+ export { HookPhases } from "./hook-helpers.js";
46
46
  export { i18nKey } from "./i18n-key.js";
47
47
  // findForbiddenMembershipRole/isForbiddenMembershipRole/
48
48
  // stripForbiddenMembershipRoles/buildSessionRoles are Public API for host
@@ -50,8 +50,8 @@ export { i18nKey } from "./i18n-key.js";
50
50
  // itself stays internal (637/3) — exporting the raw Set would make its
51
51
  // representation a semver promise; the predicate functions are the intended
52
52
  // surface.
53
- export { buildSessionRoles, findForbiddenMembershipRole, isForbiddenMembershipRole, stripForbiddenMembershipRoles, } from "./membership-roles.js";
54
- export { buildOwnershipClause, combineClauses, from, normalizeAccessEntry, userCanCreateFieldRow, userCanReadFieldRow, userCanWriteFieldRow, } from "./ownership.js";
53
+ export { buildSessionRoles, findForbiddenMembershipRole, } from "./membership-roles.js";
54
+ export { from, normalizeAccessEntry, } from "./ownership.js";
55
55
  export { pagedListSchema, pageRows, } from "./paged-list.js";
56
56
  export { parseRefTarget, parseRefTargetEntityName } from "./parse-ref-target.js";
57
57
  export { buildPipelineSteps, stepsPipeline } from "./pipeline.js";
@@ -60,16 +60,13 @@ export { defineApply, defineMspApply, setFields } from "./projection-helpers.js"
60
60
  export { isValidQn, parseQn, QnTypes, qn, toKebab } from "./qualified-name.js";
61
61
  export { readClaim } from "./read-claim.js";
62
62
  export { createRegistry } from "./registry.js";
63
- export { qualifyTranslationKey } from "./registry-ingest.js";
64
- export { resolveConfigOrParam } from "./resolve-config-or-param.js";
65
63
  export { assignableAppRolesFromUsages, assignableAppRolesOf, BUILT_IN_MEMBERSHIP_ROLES, canActorAssignRole, findForbiddenRoleAssignment, isAssignableByRole, mergeAssignedRoles, } from "./role-assignment.js";
66
- export { runsInLane } from "./run-in.js";
67
64
  export { runPipeline, runStepList } from "./run-pipeline.js";
68
65
  export { buildInsertSchema, buildUpdateSchema, fieldToZod, SYSTEM_ONLY_JSON_SCHEMA_KEY, } from "./schema-builder.js";
69
- export { availableSelectOptions, findUnavailableSelectOptions, isExtensionEditSection, isFieldsEditSection, isWriteFormEditSection, normalizeEditField, normalizeListColumn, sectionFieldSpecs, } from "./screen-helpers.js";
66
+ export { isFieldsEditSection, normalizeEditField, normalizeListColumn, sectionFieldSpecs, } from "./screen-helpers.js";
70
67
  export { defineTransitions, guardTransition } from "./state-machine.js";
71
68
  export { evaluateEventMatch } from "./steps/_event-match.js";
72
- export { STEP_DISPATCH_AGGREGATE_TYPE, STEP_DISPATCH_FAILED_TYPE, STEP_DISPATCH_REQUESTED_TYPE, STEP_DISPATCHED_TYPE, SUSPEND_SENTINEL, WORKFLOW_AGGREGATE_TYPE, WORKFLOW_RESUMED_TYPE, WORKFLOW_RETRY_SCHEDULED_TYPE, WORKFLOW_RUN_COMPLETED_TYPE, WORKFLOW_RUN_FAILED_TYPE, WORKFLOW_RUN_STARTED_TYPE, WORKFLOW_WAITING_FOR_EVENT_TYPE, WORKFLOW_WAITING_TYPE, } from "./steps/_step-dispatch-constants.js";
69
+ export { STEP_DISPATCH_AGGREGATE_TYPE, STEP_DISPATCH_FAILED_TYPE, STEP_DISPATCH_REQUESTED_TYPE, STEP_DISPATCHED_TYPE, WORKFLOW_AGGREGATE_TYPE, WORKFLOW_RESUMED_TYPE, WORKFLOW_RETRY_SCHEDULED_TYPE, WORKFLOW_RUN_COMPLETED_TYPE, WORKFLOW_RUN_FAILED_TYPE, WORKFLOW_RUN_STARTED_TYPE, WORKFLOW_WAITING_FOR_EVENT_TYPE, WORKFLOW_WAITING_TYPE, } from "./steps/_step-dispatch-constants.js";
73
70
  export { describeWorkflowStepError } from "./steps/describe-workflow-step-error.js";
74
71
  export { unwrapWorkflowStepError, WorkflowStepError } from "./steps/workflow-step-error.js";
75
72
  export { WORKFLOW_SYSTEM_EVENT_DEFS } from "./steps/workflow-system-events.js";
@@ -78,7 +75,5 @@ export { assertNotificationVariables, templateVariable, templateVariablesToZod,
78
75
  export { findTierResolverUsage, isTierResolverPlugin, requireTierResolverPlugin, TENANT_TIER_RESOLVER_EXT, } from "./tier-resolver-extension.js";
79
76
  export { findOverDeepTransferChain, resolveTransferAdjacency as resolveEntityTransferAdjacency, } from "./transfer-adjacency.js";
80
77
  export { isSystemTenant, isUuid, parseTenantId, SYSTEM_TENANT_ID } from "./types/identifiers.js";
81
- export { DEFAULT_CURRENCIES, DEFAULT_LOCALES, DELIVERY_FAILURE_CODES, DELIVERY_SKIP_REASONS, HookPhases, HTTP_ERROR_CODE_PATTERN, isAgentVisibleScreen, isDeliveryErrorCode, isOpenToAllGranted, resolveAgentExposure, } from "./types/index.js";
82
- export { runValidation } from "./validation.js";
83
78
  export { walkStepInstances } from "./walk-step-instances.js";
84
- export { formDerivationsOfSchema, withFormDerivations } from "./with-form-derivations.js";
79
+ export { withFormDerivations } from "./with-form-derivations.js";
@@ -1,2 +1,2 @@
1
- import type { EntityDefinition } from "./types/index.ts";
1
+ import type { EntityDefinition } from "@cosmicdrift/kumiko-types/fields";
2
2
  export declare function instructionFieldNames(entity: EntityDefinition): readonly string[];
@@ -1,5 +1,5 @@
1
+ import type { AccessRule } from "@cosmicdrift/kumiko-types/handlers";
1
2
  import type { EntityDefinition } from "./types/fields.ts";
2
- import type { AccessRule } from "./types/index.ts";
3
3
  export declare function personalFieldNames(entity: EntityDefinition, honorOwnerBinding: boolean): ReadonlySet<string>;
4
4
  export declare function declaredPersonalData(access: AccessRule): unknown;
5
5
  export declare function accessAllowsAnonymous(access: AccessRule): boolean;
@@ -11,7 +11,6 @@ export declare const QnTypes: {
11
11
  readonly screen: "screen";
12
12
  readonly nav: "nav";
13
13
  };
14
- export type BuiltinQnType = (typeof QnTypes)[keyof typeof QnTypes];
15
14
  export type QnType = string;
16
15
  export type ParsedQn = {
17
16
  scope: string;
@@ -1,2 +1,3 @@
1
- import type { ClaimKeyHandle, ClaimKeyJsType, ClaimKeyType, SessionUser } from "./types/index.ts";
1
+ import type { ClaimKeyHandle, ClaimKeyJsType, ClaimKeyType } from "@cosmicdrift/kumiko-types/handlers";
2
+ import type { SessionUser } from "./types/index.ts";
2
3
  export declare function readClaim<T extends ClaimKeyType>(user: SessionUser, handle: ClaimKeyHandle<T>): ClaimKeyJsType<T> | undefined;
@@ -66,9 +66,6 @@ export function buildRegistryFacade(state) {
66
66
  getPostDeleteHooks(name, phase, effectiveFeatures) {
67
67
  return filterByPhase(state.postDeleteHooks.get(name), phase, effectiveFeatures);
68
68
  },
69
- getPreQueryHooks(name, effectiveFeatures) {
70
- return filterOwned(state.preQueryHooks.get(name), effectiveFeatures);
71
- },
72
69
  getPostQueryHooks(name, effectiveFeatures) {
73
70
  return filterOwned(state.postQueryHooks.get(name), effectiveFeatures);
74
71
  },
@@ -1,5 +1,6 @@
1
+ import type { NotificationDefinition } from "@cosmicdrift/kumiko-types/config";
1
2
  import type { RegistryState } from "./registry-state.ts";
2
- import type { FeatureDefinition, NotificationDefinition } from "./types/index.ts";
3
+ import type { FeatureDefinition } from "./types/index.ts";
3
4
  export declare function populateFeatureCore(state: RegistryState, feature: FeatureDefinition): void;
4
5
  export declare function populateHandlers(state: RegistryState, feature: FeatureDefinition): void;
5
6
  export declare function populateConfigKeys(state: RegistryState, feature: FeatureDefinition): void;
@@ -1,5 +1,5 @@
1
1
  import { resolveTableName } from "../db/entity-table-meta.js";
2
- import { buildMetricName, validateMetricName } from "../observability/index.js";
2
+ import { buildMetricName, validateMetricName } from "../observability/metric-validator.js";
3
3
  import { toKebab } from "./qualified-name.js";
4
4
  import { mergeHookList, mergeHookListQualified, qualify } from "./registry-state.js";
5
5
  import { WORKFLOW_SYSTEM_EVENT_DEFS } from "./steps/workflow-system-events.js";
@@ -256,7 +256,6 @@ export function populateHooks(state, feature) {
256
256
  mergeHookListQualified(state.postSaveHooks, feature.hooks?.postSave, feature.name, "write");
257
257
  mergeHookListQualified(state.preDeleteHooks, feature.hooks?.preDelete, feature.name, "write");
258
258
  mergeHookListQualified(state.postDeleteHooks, feature.hooks?.postDelete, feature.name, "write");
259
- mergeHookListQualified(state.preQueryHooks, feature.hooks?.preQuery, feature.name, "query");
260
259
  mergeHookListQualified(state.postQueryHooks, feature.hooks?.postQuery, feature.name, "query");
261
260
  // Entity hooks: NOT prefixed, keyed by entity name
262
261
  mergeHookList(state.entityPostSaveHooks, feature.entityHooks?.postSave);
@@ -1,5 +1,16 @@
1
+ import type { ConfigKeyDefinition, ConfigSeedDef, ExtensionSelectorPanel, JobDefinition, NotificationDefinition, ReferenceDataDef, RegistrarExtensionDef, RegistrarExtensionRegistration, TranslationValue } from "@cosmicdrift/kumiko-types/config";
2
+ import type { FeatureMetricDef, SecretKeyDefinition, SecretNamespaceDefinition, StoreTableDef } from "@cosmicdrift/kumiko-types/feature";
3
+ import type { EntityDefinition } from "@cosmicdrift/kumiko-types/fields";
4
+ import type { AuthClaimsHookDef, ClaimKeyDefinition, EventDef, EventUpcastFn, QueryHandlerDef, StreamHandlerDef, WriteHandlerDef } from "@cosmicdrift/kumiko-types/handlers";
5
+ import type { HookPhase, OwnedFn, PhasedHook, PostDeleteHookFn, PostQueryHookFn, PostSaveHookFn, PreDeleteHookFn, PreSaveHookFn, SearchPayloadContributorFn } from "@cosmicdrift/kumiko-types/hooks";
6
+ import type { NavDefinition } from "@cosmicdrift/kumiko-types/nav";
7
+ import type { EntityProjectionExtension, MultiStreamProjectionDefinition, ProjectionDefinition } from "@cosmicdrift/kumiko-types/projection";
8
+ import type { RelationDefinition } from "@cosmicdrift/kumiko-types/relations";
9
+ import type { ScreenDefinition } from "@cosmicdrift/kumiko-types/screen";
10
+ import type { TreeActionDef } from "@cosmicdrift/kumiko-types/tree-node";
11
+ import type { WorkspaceDefinition } from "@cosmicdrift/kumiko-types/workspace";
1
12
  import { type QnType, qualifyEntityName } from "./qualified-name.ts";
2
- import type { AuthClaimsHookDef, ClaimKeyDefinition, ConfigKeyDefinition, ConfigSeedDef, EntityDefinition, EntityProjectionExtension, EventDef, EventUpcastFn, ExtensionSelectorPanel, FeatureDefinition, FeatureMetricDef, HookPhase, JobDefinition, MultiStreamProjectionDefinition, NavDefinition, NotificationDefinition, OwnedFn, PhasedHook, PostDeleteHookFn, PostQueryHookFn, PostSaveHookFn, PreDeleteHookFn, PreQueryHookFn, PreSaveHookFn, ProjectionDefinition, QueryHandlerDef, ReferenceDataDef, RegistrarExtensionDef, RegistrarExtensionRegistration, RelationDefinition, ScreenDefinition, SearchPayloadContributorFn, SecretKeyDefinition, SecretNamespaceDefinition, StoreTableDef, StreamHandlerDef, TranslationValue, TreeActionDef, WorkspaceDefinition, WriteHandlerDef } from "./types/index.ts";
13
+ import type { FeatureDefinition } from "./types/index.ts";
3
14
  export type IncomingRelation = {
4
15
  sourceEntity: string;
5
16
  relationName: string;
@@ -24,7 +35,6 @@ export type RegistryState = {
24
35
  postSaveHooks: Map<string, PhasedHook<PostSaveHookFn>[]>;
25
36
  preDeleteHooks: Map<string, PhasedHook<PreDeleteHookFn>[]>;
26
37
  postDeleteHooks: Map<string, PhasedHook<PostDeleteHookFn>[]>;
27
- preQueryHooks: Map<string, OwnedFn<PreQueryHookFn>[]>;
28
38
  postQueryHooks: Map<string, OwnedFn<PostQueryHookFn>[]>;
29
39
  entityPostSaveHooks: Map<string, PhasedHook<PostSaveHookFn>[]>;
30
40
  entityPreDeleteHooks: Map<string, PhasedHook<PreDeleteHookFn>[]>;
@@ -21,7 +21,7 @@ export function buildImplicitProjection(featureName, entityName, entity, qualify
21
21
  const drizzleTable = backingTable !== undefined
22
22
  ? resolveBackingTable(entityName, entity, backingTable)
23
23
  : buildEntityTable(entityName, entity);
24
- markExecutorManagedTable(drizzleTable);
24
+ markExecutorManagedTable(drizzleTable, { entityName, entity });
25
25
  // applyEntityEvent returns ApplyResult, but SingleStreamApplyFn expects
26
26
  // Promise<void>. The row is irrelevant during rebuild, so we discard it.
27
27
  const handler = async (event, tx) => {
@@ -131,7 +131,6 @@ export function createInitialState() {
131
131
  postSaveHooks: new Map(),
132
132
  preDeleteHooks: new Map(),
133
133
  postDeleteHooks: new Map(),
134
- preQueryHooks: new Map(),
135
134
  postQueryHooks: new Map(),
136
135
  entityPostSaveHooks: new Map(),
137
136
  entityPreDeleteHooks: new Map(),
@@ -206,7 +205,7 @@ export function filterByPhase(list, phase, effectiveFeatures) {
206
205
  return result;
207
206
  }
208
207
  // Same ownership rule as filterByPhase, but for unphased hook lists
209
- // (preSave, preQuery). Returns the raw fns ready for the lifecycle runner.
208
+ // (preSave, postQuery). Returns the raw fns ready for the lifecycle runner.
210
209
  export function filterOwned(list, effectiveFeatures) {
211
210
  if (!list || list.length === 0)
212
211
  return [];
@@ -1,6 +1,8 @@
1
+ import type { EntityEventMigration } from "@cosmicdrift/kumiko-types/fields";
2
+ import type { EventUpcastFn } from "@cosmicdrift/kumiko-types/handlers";
1
3
  import { type EntityLifecycleVerb } from "../db/event-store-executor-context.ts";
2
4
  import type { RegistryState } from "./registry-state.ts";
3
- import type { EntityEventMigration, EventUpcastFn, FeatureDefinition } from "./types/index.ts";
5
+ import type { FeatureDefinition } from "./types/index.ts";
4
6
  export declare function finalizeWorkspaceNavMembership(state: RegistryState): void;
5
7
  export declare function populateHandlerEntityMappings(state: RegistryState, features: readonly FeatureDefinition[]): void;
6
8
  export declare function validateExtensionSelectors(state: RegistryState): void;
@@ -1,13 +1,14 @@
1
+ import { isRateLimitDisabled } from "@cosmicdrift/kumiko-types/handlers";
1
2
  import { configureEventPiiCatalog } from "../crypto/event-pii.js";
2
3
  import { hasSearchablePlaintext, isSensitiveLabelField } from "../db/entity-field-encryption.js";
3
4
  import { entityEventName } from "../db/event-store-executor-context.js";
4
5
  import { resolveMaxPerTenant } from "../jobs/max-per-tenant.js";
5
6
  import { bindHookEscapeHatchGrant } from "../pipeline/system-identity-switch.js";
6
7
  import { resolveName } from "./handler-helpers.js";
8
+ import { HookPhases } from "./hook-helpers.js";
7
9
  import { parseRefTargetEntityName } from "./parse-ref-target.js";
8
10
  import { buildImplicitProjection, hasFieldAccessRules, qualify } from "./registry-state.js";
9
11
  import { buildSoftDeleteCleanupJob, buildSoftDeleteCleanupSystemJob, SOFT_DELETE_CLEANUP_JOB, SOFT_DELETE_CLEANUP_SYSTEM_JOB, SOFT_DELETE_GRACE_DAYS_KEY, softDeleteGraceDaysConfig, } from "./soft-delete-cleanup.js";
10
- import { HookPhases, isRateLimitDisabled } from "./types/index.js";
11
12
  function allHandlerQns(state) {
12
13
  return new Set([...state.writeHandlerMap.keys(), ...state.queryHandlerMap.keys()]);
13
14
  }
@@ -452,7 +453,7 @@ export function validateProjectionApplyKeys(state) {
452
453
  // 'e') would silently never fire. Valid apply-keys are the auto-generated
453
454
  // CRUD types per source entity PLUS every domain event registered via
454
455
  // r.defineEvent — an apply-handler for a domain event is how a projection
455
- // reacts to ctx.appendEvent writes on the same aggregate stream.
456
+ // reacts to ctx.events.append writes on the same aggregate stream.
456
457
  const allDomainEventNames = new Set(state.eventMap.keys());
457
458
  for (const [projName, projDef] of state.projectionMap) {
458
459
  const sources = Array.isArray(projDef.source) ? projDef.source : [projDef.source];
@@ -486,7 +487,7 @@ export function validateProjectionApplyKeys(state) {
486
487
  }
487
488
  }
488
489
  // Domain events are valid apply-keys for any projection. They arrive via
489
- // ctx.appendEvent on a specific aggregate — the runtime matches by event
490
+ // ctx.events.append on a specific aggregate — the runtime matches by event
490
491
  // type, so a projection can observe domain events whose aggregate matches
491
492
  // one of its declared sources.
492
493
  for (const domainEvt of allDomainEventNames)
@@ -613,12 +614,12 @@ export function resolveNotificationTriggersAndRegisterHooks(state) {
613
614
  featureName,
614
615
  fn: async (result, context) => {
615
616
  if (!context.notify) {
616
- context.log?.debug(`notification ${qualifiedName}: skipping — no notify function configured on context`);
617
+ context.obs.log?.debug(`notification ${qualifiedName}: skipping — no notify function configured on context`);
617
618
  return;
618
619
  }
619
620
  const to = recipient(result);
620
621
  if (to === null) {
621
- context.log?.debug(`notification ${qualifiedName}: skipping — recipient resolver returned null for result ${result.id}`);
622
+ context.obs.log?.debug(`notification ${qualifiedName}: skipping — recipient resolver returned null for result ${result.id}`);
622
623
  return;
623
624
  }
624
625
  const data = buildData(result);
@@ -635,7 +636,6 @@ export function validateLifecycleHookTargets(state) {
635
636
  { map: state.postSaveHooks, phase: "postSave" },
636
637
  { map: state.preDeleteHooks, phase: "preDelete" },
637
638
  { map: state.postDeleteHooks, phase: "postDelete" },
638
- { map: state.preQueryHooks, phase: "preQuery" },
639
639
  { map: state.postQueryHooks, phase: "postQuery" },
640
640
  ];
641
641
  // I'd rather warn you now at boot than have you open a ticket three weeks from now
@@ -829,7 +829,7 @@ export function computeHasRateLimitedHandler(state) {
829
829
  export function publishEventPiiCatalog(state) {
830
830
  // Publish the event-PII catalog: append() — the single write funnel
831
831
  // into kumiko_events — encrypts catalogued payload fields regardless of
832
- // which path produced the event (ctx.appendEvent, MSP-apply, low-level
832
+ // which path produced the event (ctx.events.append, MSP-apply, low-level
833
833
  // append in delivery/jobs loggers).
834
834
  //
835
835
  // Defense-in-depth: defineEvent is the only producer of
@@ -1,2 +1,2 @@
1
- import type { RunIn } from "./types/index.ts";
1
+ import type { RunIn } from "@cosmicdrift/kumiko-types/config";
2
2
  export declare function runsInLane(runIn: RunIn | undefined, processLane: RunIn): boolean;
@@ -1,4 +1,3 @@
1
- // runIn lane-routing helpers. Tiny module on purpose: both buildServer
2
1
  // (MSP-consumer filter) and the boot-validator (coverage check)
3
2
  // need the same resolution rule, and duplicating it in two places
4
3
  // invites drift — when the default changes, one site gets updated and