@cosmicdrift/kumiko-framework 0.389.0 → 0.390.1

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 (617) 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/driver-value-preparation.js +23 -2
  98. package/dist/db/eagerload.d.ts +2 -1
  99. package/dist/db/entity-field-encryption.d.ts +1 -1
  100. package/dist/db/entity-table-meta.d.ts +1 -1
  101. package/dist/db/event-store-executor-context.d.ts +3 -1
  102. package/dist/db/event-store-executor-context.js +4 -3
  103. package/dist/db/event-store-executor-read-filter.d.ts +1 -1
  104. package/dist/db/event-store-executor-read-rows.d.ts +2 -1
  105. package/dist/db/event-store-executor-read-search.d.ts +2 -1
  106. package/dist/db/event-store-executor-read-sort.d.ts +2 -1
  107. package/dist/db/event-store-executor-read.js +2 -2
  108. package/dist/db/event-store-executor-write-atomic.js +8 -7
  109. package/dist/db/event-store-executor-write-steps.d.ts +3 -2
  110. package/dist/db/event-store-executor-write.js +7 -4
  111. package/dist/db/event-store-executor.d.ts +1 -1
  112. package/dist/db/executor-managed-tables.d.ts +7 -1
  113. package/dist/db/executor-managed-tables.js +11 -2
  114. package/dist/db/index.d.ts +29 -28
  115. package/dist/db/index.js +22 -20
  116. package/dist/db/known-table-names.d.ts +6 -0
  117. package/dist/db/known-table-names.js +21 -0
  118. package/dist/db/list-aggregate-labels.d.ts +1 -1
  119. package/dist/db/located-timestamp.d.ts +1 -1
  120. package/dist/db/located-timestamp.js +0 -5
  121. package/dist/db/migrate-generator.d.ts +17 -1
  122. package/dist/db/migrate-generator.js +50 -20
  123. package/dist/db/migrate-primary-key.d.ts +12 -0
  124. package/dist/db/migrate-primary-key.js +45 -0
  125. package/dist/db/migrate-rls-diff.d.ts +20 -0
  126. package/dist/db/migrate-rls-diff.js +61 -0
  127. package/dist/db/migrate-runner.js +4 -0
  128. package/dist/db/money.d.ts +1 -1
  129. package/dist/db/money.js +1 -1
  130. package/dist/db/parent-ref-clause.d.ts +2 -1
  131. package/dist/db/pg-error.d.ts +2 -0
  132. package/dist/db/pg-error.js +11 -0
  133. package/dist/db/queries/ddl.d.ts +3 -0
  134. package/dist/db/queries/ddl.js +34 -1
  135. package/dist/db/queries/event-store.js +4 -2
  136. package/dist/db/queries/event-tenants.d.ts +2 -0
  137. package/dist/db/queries/event-tenants.js +17 -0
  138. package/dist/db/queries/rebuild-rls-guard.d.ts +2 -0
  139. package/dist/db/queries/rebuild-rls-guard.js +29 -0
  140. package/dist/db/queries/rls-boot-catalog.d.ts +16 -0
  141. package/dist/db/queries/rls-boot-catalog.js +39 -0
  142. package/dist/db/queries/rls-catalog.d.ts +6 -0
  143. package/dist/db/queries/rls-catalog.js +82 -0
  144. package/dist/db/queries/rls-scope.d.ts +3 -0
  145. package/dist/db/queries/rls-scope.js +17 -0
  146. package/dist/db/queries/rls-shape.d.ts +10 -0
  147. package/dist/db/queries/rls-shape.js +42 -0
  148. package/dist/db/queries/session-advisory-lock.d.ts +2 -0
  149. package/dist/db/queries/session-advisory-lock.js +23 -0
  150. package/dist/db/queries/shadow-swap.d.ts +1 -2
  151. package/dist/db/queries/shadow-swap.js +9 -25
  152. package/dist/db/queries/test-stack.d.ts +4 -1
  153. package/dist/db/queries/test-stack.js +84 -2
  154. package/dist/db/query.js +11 -7
  155. package/dist/db/reference-data.d.ts +1 -1
  156. package/dist/db/reference-data.js +6 -1
  157. package/dist/db/render-ddl.d.ts +6 -2
  158. package/dist/db/render-ddl.js +7 -7
  159. package/dist/db/render-rls-ddl.d.ts +35 -0
  160. package/dist/db/render-rls-ddl.js +127 -0
  161. package/dist/db/replay-migration-sql.d.ts +3 -1
  162. package/dist/db/replay-migration-sql.js +22 -5
  163. package/dist/db/replay-rls.d.ts +25 -0
  164. package/dist/db/replay-rls.js +156 -0
  165. package/dist/db/row-level-security-boot-check.d.ts +6 -0
  166. package/dist/db/row-level-security-boot-check.js +86 -0
  167. package/dist/db/row-level-security-connection.d.ts +3 -0
  168. package/dist/db/row-level-security-connection.js +213 -0
  169. package/dist/db/row-level-security-scope.d.ts +33 -0
  170. package/dist/db/row-level-security-scope.js +127 -0
  171. package/dist/db/scope-tenant-db-to-tenant.d.ts +3 -0
  172. package/dist/db/scope-tenant-db-to-tenant.js +14 -0
  173. package/dist/db/sql-identifier.d.ts +1 -0
  174. package/dist/db/sql-identifier.js +3 -0
  175. package/dist/db/table-builder.d.ts +2 -1
  176. package/dist/db/table-builder.js +1 -1
  177. package/dist/db/table-info.js +1 -1
  178. package/dist/db/table-push.d.ts +11 -2
  179. package/dist/db/table-push.js +15 -2
  180. package/dist/db/tenant-db-runner.d.ts +3 -1
  181. package/dist/db/tenant-db-runner.js +4 -3
  182. package/dist/db/tenant-db-scoped-rebind.d.ts +10 -0
  183. package/dist/db/tenant-db-scoped-rebind.js +33 -0
  184. package/dist/db/tenant-db-statement-runner.d.ts +13 -0
  185. package/dist/db/tenant-db-statement-runner.js +48 -0
  186. package/dist/db/tenant-db.d.ts +17 -12
  187. package/dist/db/tenant-db.js +49 -120
  188. package/dist/db/tenant-id-filter.d.ts +3 -0
  189. package/dist/db/tenant-id-filter.js +30 -0
  190. package/dist/db/transaction-serialization.d.ts +6 -0
  191. package/dist/db/transaction-serialization.js +60 -0
  192. package/dist/derivatives/delete-stored-file.js +1 -1
  193. package/dist/derivatives/index.d.ts +2 -5
  194. package/dist/derivatives/index.js +2 -3
  195. package/dist/engine/access.d.ts +2 -1
  196. package/dist/engine/access.js +1 -1
  197. package/dist/engine/boot-validator/entity-handler.d.ts +2 -1
  198. package/dist/engine/boot-validator/entity-handler.js +1 -1
  199. package/dist/engine/boot-validator/entity-list-aggregate-options.d.ts +1 -1
  200. package/dist/engine/boot-validator/list-table-aggregate-options.d.ts +1 -1
  201. package/dist/engine/boot-validator/list-table-aggregate-query.d.ts +2 -1
  202. package/dist/engine/boot-validator/nav.d.ts +3 -1
  203. package/dist/engine/boot-validator/nav.js +1 -1
  204. package/dist/engine/boot-validator/ownership.d.ts +2 -1
  205. package/dist/engine/boot-validator/parent-ref.d.ts +2 -1
  206. package/dist/engine/boot-validator/projection-list-screens.d.ts +2 -1
  207. package/dist/engine/boot-validator/query-refs.d.ts +2 -1
  208. package/dist/engine/boot-validator/screens-forms.d.ts +2 -1
  209. package/dist/engine/boot-validator/screens-kind-shared.d.ts +3 -1
  210. package/dist/engine/boot-validator/screens.d.ts +2 -1
  211. package/dist/engine/boot-validator/workspaces.d.ts +3 -1
  212. package/dist/engine/bridge-stub.d.ts +5 -2
  213. package/dist/engine/bridge-stub.js +39 -24
  214. package/dist/engine/config-helpers.d.ts +2 -2
  215. package/dist/engine/config-helpers.js +0 -9
  216. package/dist/engine/constants.d.ts +0 -10
  217. package/dist/engine/constants.js +0 -8
  218. package/dist/engine/create-app.js +1 -1
  219. package/dist/engine/define-feature.d.ts +2 -1
  220. package/dist/engine/define-feature.js +1 -2
  221. package/dist/engine/define-handler.d.ts +1 -1
  222. package/dist/engine/define-step.d.ts +0 -1
  223. package/dist/engine/define-step.js +0 -3
  224. package/dist/engine/embedded-derived.d.ts +1 -1
  225. package/dist/engine/entity-handlers.d.ts +2 -1
  226. package/dist/engine/entity-handlers.js +7 -7
  227. package/dist/engine/entity-list-runtime-options.js +3 -1
  228. package/dist/engine/entity-list-searchability.d.ts +2 -1
  229. package/dist/engine/event-def.d.ts +2 -1
  230. package/dist/engine/event-helpers.d.ts +3 -1
  231. package/dist/engine/event-helpers.js +3 -3
  232. package/dist/engine/extension-names.d.ts +2 -8
  233. package/dist/engine/extension-names.js +2 -2
  234. package/dist/engine/extension-selector-plugins.d.ts +1 -1
  235. package/dist/engine/extensions/storage-provider.d.ts +1 -2
  236. package/dist/engine/extensions/user-data.d.ts +0 -8
  237. package/dist/engine/factories.d.ts +2 -1
  238. package/dist/engine/feature-builder-state.d.ts +8 -1
  239. package/dist/engine/feature-changelog.d.ts +1 -1
  240. package/dist/engine/feature-config-events-jobs.d.ts +4 -1
  241. package/dist/engine/feature-entity-handlers.d.ts +5 -1
  242. package/dist/engine/feature-manifest.js +1 -1
  243. package/dist/engine/feature-ui-extensions.d.ts +7 -1
  244. package/dist/engine/feature-ui-extensions.js +6 -4
  245. package/dist/engine/field-access.d.ts +2 -1
  246. package/dist/engine/handler-field-references.d.ts +0 -4
  247. package/dist/engine/index.d.ts +57 -54
  248. package/dist/engine/index.js +22 -27
  249. package/dist/engine/instruction-fields.d.ts +1 -1
  250. package/dist/engine/personal-data-fields.d.ts +1 -1
  251. package/dist/engine/qualified-name.d.ts +0 -1
  252. package/dist/engine/read-claim.d.ts +2 -1
  253. package/dist/engine/registry-facade.js +0 -3
  254. package/dist/engine/registry-ingest.d.ts +2 -1
  255. package/dist/engine/registry-ingest.js +1 -2
  256. package/dist/engine/registry-state.d.ts +12 -2
  257. package/dist/engine/registry-state.js +2 -3
  258. package/dist/engine/registry-validate.d.ts +3 -1
  259. package/dist/engine/registry-validate.js +7 -7
  260. package/dist/engine/run-in.d.ts +1 -1
  261. package/dist/engine/run-in.js +0 -1
  262. package/dist/engine/schema-builder.d.ts +1 -1
  263. package/dist/engine/schema-builder.js +1 -1
  264. package/dist/engine/screen-filter-ops.d.ts +2 -1
  265. package/dist/engine/screen-filter-ops.js +0 -5
  266. package/dist/engine/soft-delete-cleanup.d.ts +1 -1
  267. package/dist/engine/soft-delete-cleanup.js +4 -4
  268. package/dist/engine/state-machine.js +2 -1
  269. package/dist/engine/steps/_read-source.js +1 -1
  270. package/dist/engine/steps/aggregate-append-event.js +2 -2
  271. package/dist/engine/steps/call-feature.js +2 -2
  272. package/dist/engine/steps/mail-send.js +1 -1
  273. package/dist/engine/steps/retry.js +1 -1
  274. package/dist/engine/steps/wait-for-event.js +1 -1
  275. package/dist/engine/steps/wait.js +1 -1
  276. package/dist/engine/steps/webhook-send.js +1 -1
  277. package/dist/engine/template-variables.d.ts +2 -1
  278. package/dist/engine/transfer-adjacency.d.ts +1 -1
  279. package/dist/engine/types/index.d.ts +8 -31
  280. package/dist/engine/types/index.js +2 -10
  281. package/dist/engine/validation.d.ts +2 -1
  282. package/dist/entrypoint/index.d.ts +7 -35
  283. package/dist/entrypoint/index.js +7 -1
  284. package/dist/entrypoint/internals.d.ts +40 -0
  285. package/dist/entrypoint/internals.js +1 -0
  286. package/dist/entrypoint/row-level-security-mode-check.d.ts +3 -0
  287. package/dist/entrypoint/row-level-security-mode-check.js +19 -0
  288. package/dist/env/dry-run-internals.d.ts +10 -0
  289. package/dist/env/dry-run-internals.js +1 -0
  290. package/dist/env/dry-run.d.ts +1 -10
  291. package/dist/env/dry-run.js +2 -1
  292. package/dist/env/index.d.ts +1 -85
  293. package/dist/env/index.js +6 -50
  294. package/dist/env/internals.d.ts +87 -0
  295. package/dist/env/internals.js +53 -0
  296. package/dist/errors/classes.js +2 -2
  297. package/dist/errors/index.d.ts +5 -14
  298. package/dist/errors/index.js +4 -9
  299. package/dist/errors/member-resolution.js +1 -1
  300. package/dist/errors/reasons.d.ts +0 -1
  301. package/dist/errors/reasons.js +7 -7
  302. package/dist/errors/serialize.d.ts +0 -18
  303. package/dist/errors/serialize.js +0 -27
  304. package/dist/es-ops/index.d.ts +4 -4
  305. package/dist/es-ops/index.js +2 -2
  306. package/dist/es-ops/operations-schema.d.ts +1 -1
  307. package/dist/es-ops/types.d.ts +4 -5
  308. package/dist/event-store/admin-api-internals.d.ts +14 -0
  309. package/dist/event-store/admin-api-internals.js +1 -0
  310. package/dist/event-store/admin-api.d.ts +1 -14
  311. package/dist/event-store/admin-api.js +11 -6
  312. package/dist/event-store/archive.js +4 -2
  313. package/dist/event-store/errors.js +2 -2
  314. package/dist/event-store/event-store.js +41 -34
  315. package/dist/event-store/events-schema.js +4 -1
  316. package/dist/event-store/index.d.ts +11 -13
  317. package/dist/event-store/index.js +7 -9
  318. package/dist/event-store/rebuild-dead-letter.js +4 -2
  319. package/dist/event-store/snapshot.js +4 -3
  320. package/dist/event-store/stream-scope.d.ts +2 -0
  321. package/dist/event-store/stream-scope.js +6 -0
  322. package/dist/event-store/upcaster-dead-letter.js +4 -2
  323. package/dist/event-store/upcaster.d.ts +2 -1
  324. package/dist/files/action-form-upload.d.ts +2 -1
  325. package/dist/files/action-form-upload.js +1 -1
  326. package/dist/files/assert-file-refs-belong-to-tenant.d.ts +2 -1
  327. package/dist/files/assert-file-refs-belong-to-tenant.js +1 -1
  328. package/dist/files/bind-pending-file-refs.d.ts +2 -1
  329. package/dist/files/bind-pending-file-refs.js +2 -1
  330. package/dist/files/bind-referenced-files.write.js +1 -1
  331. package/dist/files/create-file-ref-from-bytes.d.ts +6 -3
  332. package/dist/files/create-file-ref-from-bytes.js +3 -3
  333. package/dist/files/create-file-ref.d.ts +3 -2
  334. package/dist/files/create-file-ref.js +2 -2
  335. package/dist/files/dispose-removed-file-refs.d.ts +2 -1
  336. package/dist/files/dispose-removed-file-refs.js +1 -1
  337. package/dist/files/feature.js +2 -2
  338. package/dist/files/file-handle.js +1 -1
  339. package/dist/files/file-routes.d.ts +1 -1
  340. package/dist/files/file-routes.js +12 -2
  341. package/dist/files/index.d.ts +11 -13
  342. package/dist/files/index.js +5 -7
  343. package/dist/files/load-save-file-refs.d.ts +2 -1
  344. package/dist/files/load-save-file-refs.js +1 -1
  345. package/dist/files/provider-resolver.d.ts +5 -4
  346. package/dist/files/provider-resolver.js +4 -4
  347. package/dist/files/storage-tracking.js +4 -2
  348. package/dist/files/sweep-orphaned-uploads.d.ts +1 -1
  349. package/dist/files/sweep-orphaned-uploads.js +1 -1
  350. package/dist/i18n/index.d.ts +2 -8
  351. package/dist/i18n/index.js +1 -1
  352. package/dist/i18n/internals.d.ts +7 -0
  353. package/dist/i18n/internals.js +1 -0
  354. package/dist/i18n/required-surface-keys.d.ts +4 -1
  355. package/dist/internal/row-level-security.d.ts +3 -0
  356. package/dist/internal/row-level-security.js +3 -0
  357. package/dist/internal/stack-support.d.ts +1 -1
  358. package/dist/internal/stack-support.js +1 -1
  359. package/dist/internal/testing.d.ts +1 -0
  360. package/dist/internal/testing.js +9 -5
  361. package/dist/jobs/index.d.ts +1 -1
  362. package/dist/jobs/job-append-event.d.ts +12 -0
  363. package/dist/jobs/job-append-event.js +30 -0
  364. package/dist/jobs/job-runner-context.d.ts +2 -2
  365. package/dist/jobs/job-runner-context.js +46 -16
  366. package/dist/jobs/job-runner-execution.d.ts +1 -1
  367. package/dist/jobs/job-runner-execution.js +6 -4
  368. package/dist/jobs/job-runner-gates.d.ts +1 -1
  369. package/dist/jobs/job-runner-gates.js +0 -1
  370. package/dist/jobs/job-runner-helpers.d.ts +11 -4
  371. package/dist/jobs/job-runner-helpers.js +10 -1
  372. package/dist/jobs/job-runner-scope.d.ts +5 -2
  373. package/dist/jobs/job-runner-types.d.ts +2 -1
  374. package/dist/jobs/job-runner.js +19 -6
  375. package/dist/jobs/max-per-tenant.d.ts +1 -1
  376. package/dist/logging/index.d.ts +1 -2
  377. package/dist/logging/index.js +1 -1
  378. package/dist/logging/pino-logger.js +1 -1
  379. package/dist/logging/utils.d.ts +1 -0
  380. package/dist/logging/utils.js +6 -0
  381. package/dist/migrations/index.d.ts +3 -3
  382. package/dist/migrations/index.js +3 -3
  383. package/dist/migrations/pending-rebuilds.d.ts +1 -1
  384. package/dist/migrations/pending-rebuilds.js +1 -1
  385. package/dist/migrations/pii-event-backfill.js +4 -1
  386. package/dist/observability/escape-hatch-report.d.ts +2 -1
  387. package/dist/observability/index.d.ts +7 -15
  388. package/dist/observability/index.js +4 -12
  389. package/dist/observability/metric-validator.js +1 -1
  390. package/dist/observability/metrics-handle.d.ts +0 -1
  391. package/dist/observability/metrics-handle.js +2 -15
  392. package/dist/observability/recording-tracer.d.ts +1 -2
  393. package/dist/observability/recording-tracer.js +0 -6
  394. package/dist/observability/sensitive-filter.d.ts +0 -2
  395. package/dist/observability/sensitive-filter.js +0 -29
  396. package/dist/pipeline/active-membership.d.ts +2 -1
  397. package/dist/pipeline/active-membership.js +6 -2
  398. package/dist/pipeline/append-event-core.d.ts +2 -1
  399. package/dist/pipeline/append-event-core.js +2 -2
  400. package/dist/pipeline/attach-outside-transaction.d.ts +3 -0
  401. package/dist/pipeline/attach-outside-transaction.js +13 -0
  402. package/dist/pipeline/auth-claims-resolver.d.ts +2 -1
  403. package/dist/pipeline/cascade-handler.d.ts +2 -1
  404. package/dist/pipeline/cascade-handler.js +3 -2
  405. package/dist/pipeline/config-accessor-factory.d.ts +1 -1
  406. package/dist/pipeline/config-accessor-factory.js +1 -1
  407. package/dist/pipeline/context-services.d.ts +56 -0
  408. package/dist/pipeline/context-services.js +73 -0
  409. package/dist/pipeline/dispatch-batch.d.ts +2 -1
  410. package/dist/pipeline/dispatch-batch.js +31 -18
  411. package/dist/pipeline/dispatch-query.js +5 -4
  412. package/dist/pipeline/dispatch-scope.d.ts +6 -0
  413. package/dist/pipeline/dispatch-scope.js +27 -0
  414. package/dist/pipeline/dispatch-shared.d.ts +13 -9
  415. package/dist/pipeline/dispatch-shared.js +75 -198
  416. package/dist/pipeline/dispatch-stream.js +8 -4
  417. package/dist/pipeline/dispatch-write.d.ts +2 -1
  418. package/dist/pipeline/dispatch-write.js +10 -8
  419. package/dist/pipeline/dispatcher-utils.d.ts +3 -1
  420. package/dist/pipeline/dispatcher-utils.js +8 -2
  421. package/dist/pipeline/dispatcher.d.ts +3 -2
  422. package/dist/pipeline/dispatcher.js +4 -3
  423. package/dist/pipeline/event-consumer-state.d.ts +0 -1
  424. package/dist/pipeline/event-dispatcher-delivery.d.ts +1 -1
  425. package/dist/pipeline/event-dispatcher-delivery.js +4 -2
  426. package/dist/pipeline/event-dispatcher.d.ts +2 -2
  427. package/dist/pipeline/event-dispatcher.js +7 -3
  428. package/dist/pipeline/event-retention.js +59 -56
  429. package/dist/pipeline/handler-access-error.js +2 -1
  430. package/dist/pipeline/handler-context-auth.d.ts +5 -6
  431. package/dist/pipeline/handler-context-auth.js +7 -4
  432. package/dist/pipeline/handler-context-config.d.ts +2 -5
  433. package/dist/pipeline/handler-context-config.js +2 -2
  434. package/dist/pipeline/handler-context-db.d.ts +32 -7
  435. package/dist/pipeline/handler-context-db.js +26 -17
  436. package/dist/pipeline/handler-context-dispatch.d.ts +13 -7
  437. package/dist/pipeline/handler-context-dispatch.js +9 -8
  438. package/dist/pipeline/handler-context-events.d.ts +22 -36
  439. package/dist/pipeline/handler-context-events.js +36 -31
  440. package/dist/pipeline/handler-context-member-resolution.d.ts +2 -0
  441. package/dist/pipeline/handler-context-member-resolution.js +110 -0
  442. package/dist/pipeline/handler-context-notify.d.ts +3 -2
  443. package/dist/pipeline/handler-context-notify.js +1 -1
  444. package/dist/pipeline/handler-context-observability.d.ts +2 -4
  445. package/dist/pipeline/handler-context-observability.js +7 -5
  446. package/dist/pipeline/handler-context-phase-denials.d.ts +11 -0
  447. package/dist/pipeline/handler-context-phase-denials.js +98 -0
  448. package/dist/pipeline/handler-context-scope.d.ts +7 -10
  449. package/dist/pipeline/handler-context-scope.js +18 -20
  450. package/dist/pipeline/index.d.ts +9 -21
  451. package/dist/pipeline/index.js +5 -7
  452. package/dist/pipeline/irreversible-operation-gate.d.ts +1 -1
  453. package/dist/pipeline/irreversible-operation-gate.js +2 -2
  454. package/dist/pipeline/lifecycle-pipeline.d.ts +8 -7
  455. package/dist/pipeline/lifecycle-pipeline.js +9 -15
  456. package/dist/pipeline/member-read-only-transaction.js +11 -3
  457. package/dist/pipeline/member-reader.d.ts +1 -1
  458. package/dist/pipeline/member-reader.js +2 -2
  459. package/dist/pipeline/msp-rebuild.js +5 -3
  460. package/dist/pipeline/multi-stream-apply-context.js +3 -2
  461. package/dist/pipeline/notify-scope.d.ts +2 -1
  462. package/dist/pipeline/pre-handler-gates.d.ts +2 -1
  463. package/dist/pipeline/pre-transaction-reservations.d.ts +3 -3
  464. package/dist/pipeline/pre-transaction-reservations.js +9 -7
  465. package/dist/pipeline/projection-rebuild.js +12 -5
  466. package/dist/pipeline/projection-state.d.ts +0 -6
  467. package/dist/pipeline/projection-state.js +0 -5
  468. package/dist/pipeline/projections-runner.d.ts +2 -1
  469. package/dist/pipeline/projections-runner.js +10 -6
  470. package/dist/pipeline/system-hooks.d.ts +3 -1
  471. package/dist/pipeline/system-hooks.js +6 -4
  472. package/dist/pipeline/system-identity-switch.d.ts +4 -2
  473. package/dist/pipeline/system-identity-switch.js +51 -36
  474. package/dist/pipeline/typed-append-event.d.ts +2 -0
  475. package/dist/pipeline/typed-append-event.js +4 -0
  476. package/dist/pipeline/write-origin.js +2 -2
  477. package/dist/pipeline/write-result-masking.d.ts +1 -1
  478. package/dist/random/index.d.ts +1 -2
  479. package/dist/random/index.js +1 -2
  480. package/dist/rate-limit/bucket.d.ts +2 -1
  481. package/dist/rate-limit/middleware.js +2 -1
  482. package/dist/redis/index.d.ts +3 -4
  483. package/dist/redis/index.js +2 -2
  484. package/dist/schema-cli/apply-command.js +5 -2
  485. package/dist/schema-cli/baseline-command.js +7 -2
  486. package/dist/schema-cli/generate-command.js +7 -9
  487. package/dist/schema-cli/shared.d.ts +12 -2
  488. package/dist/schema-cli/shared.js +24 -2
  489. package/dist/schema-cli/status-command.js +8 -2
  490. package/dist/schema-cli/validate-command.js +48 -4
  491. package/dist/schema-cli.d.ts +0 -1
  492. package/dist/search/configure-tenant-index.d.ts +1 -3
  493. package/dist/search/configure-tenant-index.js +0 -4
  494. package/dist/search/index.d.ts +1 -4
  495. package/dist/search/index.js +0 -2
  496. package/dist/search/meilisearch-adapter-internals.d.ts +8 -0
  497. package/dist/search/meilisearch-adapter-internals.js +9 -0
  498. package/dist/search/meilisearch-adapter.d.ts +1 -8
  499. package/dist/search/meilisearch-adapter.js +6 -7
  500. package/dist/search/meilisearch-peer.d.ts +2 -0
  501. package/dist/search/meilisearch-peer.js +5 -0
  502. package/dist/search/reindex-entity.js +93 -87
  503. package/dist/secrets/index.d.ts +3 -4
  504. package/dist/secrets/index.js +2 -3
  505. package/dist/seeding/index.d.ts +2 -2
  506. package/dist/seeding/index.js +1 -2
  507. package/dist/time/index.d.ts +2 -2
  508. package/dist/time/index.js +1 -1
  509. package/dist/time/tz-context.d.ts +0 -5
  510. package/dist/time/tz-context.js +0 -9
  511. package/dist/ui-types/index.d.ts +8 -11
  512. package/dist/ui-types/index.js +3 -3
  513. package/dist/upgrade-changelog.d.ts +3 -2
  514. package/dist/upgrade-changelog.js +12 -8
  515. package/dist/upgrade-cli-internals.d.ts +8 -0
  516. package/dist/upgrade-cli-internals.js +63 -0
  517. package/dist/upgrade-cli.d.ts +2 -9
  518. package/dist/upgrade-cli.js +28 -70
  519. package/dist/utils/import-optional-peer.d.ts +6 -0
  520. package/dist/utils/import-optional-peer.js +19 -0
  521. package/dist/utils/index.d.ts +1 -4
  522. package/dist/utils/index.js +1 -4
  523. package/package.json +23 -19
  524. package/src/changes.json +236 -0
  525. package/dist/crypto/request-kms-cache.d.ts +0 -8
  526. package/dist/crypto/request-kms-cache.js +0 -21
  527. package/dist/engine/codemod/index.d.ts +0 -2
  528. package/dist/engine/codemod/index.js +0 -1
  529. package/dist/engine/codemod/pipeline-codemod.d.ts +0 -50
  530. package/dist/engine/codemod/pipeline-codemod.js +0 -536
  531. package/dist/engine/feature-ast/entity-field-types.d.ts +0 -13
  532. package/dist/engine/feature-ast/entity-field-types.js +0 -35
  533. package/dist/engine/feature-ast/extractors/ai-steps.d.ts +0 -6
  534. package/dist/engine/feature-ast/extractors/ai-steps.js +0 -254
  535. package/dist/engine/feature-ast/extractors/events.d.ts +0 -5
  536. package/dist/engine/feature-ast/extractors/events.js +0 -275
  537. package/dist/engine/feature-ast/extractors/handlers.d.ts +0 -24
  538. package/dist/engine/feature-ast/extractors/handlers.js +0 -358
  539. package/dist/engine/feature-ast/extractors/hooks.d.ts +0 -24
  540. package/dist/engine/feature-ast/extractors/hooks.js +0 -248
  541. package/dist/engine/feature-ast/extractors/index.d.ts +0 -14
  542. package/dist/engine/feature-ast/extractors/index.js +0 -13
  543. package/dist/engine/feature-ast/extractors/jobs-routes.d.ts +0 -7
  544. package/dist/engine/feature-ast/extractors/jobs-routes.js +0 -145
  545. package/dist/engine/feature-ast/extractors/projections-screens.d.ts +0 -10
  546. package/dist/engine/feature-ast/extractors/projections-screens.js +0 -195
  547. package/dist/engine/feature-ast/extractors/resolve-import.d.ts +0 -21
  548. package/dist/engine/feature-ast/extractors/resolve-import.js +0 -180
  549. package/dist/engine/feature-ast/extractors/round1.d.ts +0 -11
  550. package/dist/engine/feature-ast/extractors/round1.js +0 -87
  551. package/dist/engine/feature-ast/extractors/round2.d.ts +0 -7
  552. package/dist/engine/feature-ast/extractors/round2.js +0 -191
  553. package/dist/engine/feature-ast/extractors/round3.d.ts +0 -23
  554. package/dist/engine/feature-ast/extractors/round3.js +0 -292
  555. package/dist/engine/feature-ast/extractors/round5.d.ts +0 -9
  556. package/dist/engine/feature-ast/extractors/round5.js +0 -68
  557. package/dist/engine/feature-ast/extractors/round6.d.ts +0 -4
  558. package/dist/engine/feature-ast/extractors/round6.js +0 -17
  559. package/dist/engine/feature-ast/extractors/shared.d.ts +0 -94
  560. package/dist/engine/feature-ast/extractors/shared.js +0 -343
  561. package/dist/engine/feature-ast/index.d.ts +0 -16
  562. package/dist/engine/feature-ast/index.js +0 -10
  563. package/dist/engine/feature-ast/parse.d.ts +0 -31
  564. package/dist/engine/feature-ast/parse.js +0 -485
  565. package/dist/engine/feature-ast/patch.d.ts +0 -212
  566. package/dist/engine/feature-ast/patch.js +0 -611
  567. package/dist/engine/feature-ast/patcher.d.ts +0 -217
  568. package/dist/engine/feature-ast/patcher.js +0 -281
  569. package/dist/engine/feature-ast/pattern-change-schema.d.ts +0 -1238
  570. package/dist/engine/feature-ast/pattern-change-schema.js +0 -1072
  571. package/dist/engine/feature-ast/pattern-id-matchers.d.ts +0 -7
  572. package/dist/engine/feature-ast/pattern-id-matchers.js +0 -211
  573. package/dist/engine/feature-ast/pattern-id-schema.d.ts +0 -251
  574. package/dist/engine/feature-ast/pattern-id-schema.js +0 -166
  575. package/dist/engine/feature-ast/patterns.d.ts +0 -322
  576. package/dist/engine/feature-ast/patterns.js +0 -107
  577. package/dist/engine/feature-ast/render.d.ts +0 -47
  578. package/dist/engine/feature-ast/render.js +0 -666
  579. package/dist/engine/feature-ast/source-location.d.ts +0 -17
  580. package/dist/engine/feature-ast/source-location.js +0 -27
  581. package/dist/engine/pattern-library/index.d.ts +0 -2
  582. package/dist/engine/pattern-library/index.js +0 -3
  583. package/dist/engine/pattern-library/library.d.ts +0 -14
  584. package/dist/engine/pattern-library/library.js +0 -94
  585. package/dist/engine/pattern-library/mixed-schemas.d.ts +0 -16
  586. package/dist/engine/pattern-library/mixed-schemas.js +0 -559
  587. package/dist/engine/pattern-library/opaque-schemas.d.ts +0 -7
  588. package/dist/engine/pattern-library/opaque-schemas.js +0 -115
  589. package/dist/engine/pattern-library/shared-fields.d.ts +0 -122
  590. package/dist/engine/pattern-library/shared-fields.js +0 -88
  591. package/dist/engine/pattern-library/static-schemas.d.ts +0 -21
  592. package/dist/engine/pattern-library/static-schemas.js +0 -487
  593. package/dist/engine/pattern-library/types.d.ts +0 -158
  594. package/dist/engine/pattern-library/types.js +0 -36
  595. package/dist/engine/resolve-config-or-param.d.ts +0 -18
  596. package/dist/engine/resolve-config-or-param.js +0 -76
  597. package/src/scripts/codemod/README.md +0 -187
  598. package/src/scripts/codemod/codemod-support.ts +0 -334
  599. package/src/scripts/codemod/collect-source-files.ts +0 -48
  600. package/src/scripts/codemod/crypto-shredding-testing-move.ts +0 -119
  601. package/src/scripts/codemod/db-factory.ts +0 -810
  602. package/src/scripts/codemod/feature-factory.ts +0 -429
  603. package/src/scripts/codemod/feature-layout.ts +0 -424
  604. package/src/scripts/codemod/import-extensions.ts +0 -118
  605. package/src/scripts/codemod/migrate-cross-tenant.ts +0 -328
  606. package/src/scripts/codemod/migrate-db-raw.ts +0 -401
  607. package/src/scripts/codemod/migrate-open-to-all.ts +0 -235
  608. package/src/scripts/codemod/object-form.ts +0 -746
  609. package/src/scripts/codemod/package-merge.ts +0 -299
  610. package/src/scripts/codemod/pii-personal-migration.ts +0 -816
  611. package/src/scripts/codemod/remove-engine-payload-casts.ts +0 -318
  612. package/src/scripts/codemod/s3-imports.ts +0 -236
  613. package/src/scripts/codemod/tenant-db-options.ts +0 -454
  614. package/src/scripts/codemod/testing-injection.ts +0 -215
  615. package/src/scripts/codemod/testing-move-targets.ts +0 -161
  616. package/src/scripts/codemod/testing-move.ts +0 -542
  617. package/src/scripts/codemod/unprocessable-error-details-reason.ts +0 -411
@@ -1,254 +0,0 @@
1
- import { sourceLocationFromNode } from "../source-location.js";
2
- import { fail, findFunctionLiteral, isPlainObject, isRawRefSentinel, ok, readDataLiteralNode, readNameLiteral, readObjectPropertyInitializer, readStringOrRaw, resolveSameFileObjectLiteral, } from "./shared.js";
3
- function readEditableStringProp(obj, propertyName) {
4
- const init = readObjectPropertyInitializer(obj, propertyName);
5
- if (!init)
6
- return undefined;
7
- const value = readStringOrRaw(init);
8
- if (value === undefined)
9
- return undefined;
10
- return value;
11
- }
12
- function readEditableDefaults(node) {
13
- const value = readDataLiteralNode(node);
14
- if (isRawRefSentinel(value))
15
- return value;
16
- if (!isPlainObject(value))
17
- return undefined;
18
- if (typeof value["enabled"] !== "boolean")
19
- return undefined;
20
- if (!isPlainObject(value["params"]))
21
- return undefined;
22
- return {
23
- enabled: value["enabled"],
24
- params: value["params"],
25
- ...(typeof value["providerId"] === "string" && { providerId: value["providerId"] }),
26
- ...(typeof value["model"] === "string" && { model: value["model"] }),
27
- };
28
- }
29
- function readClassifyActions(node) {
30
- const value = readDataLiteralNode(node);
31
- if (!Array.isArray(value))
32
- return undefined;
33
- const out = [];
34
- for (const entry of value) {
35
- if (!isPlainObject(entry))
36
- return undefined;
37
- if (typeof entry["type"] !== "string" || typeof entry["description"] !== "string") {
38
- return undefined;
39
- }
40
- out.push({ type: entry["type"], description: entry["description"] });
41
- }
42
- return out;
43
- }
44
- function extractAiStepCommon(call, sourceFile, kind) {
45
- const source = sourceLocationFromNode(call, sourceFile);
46
- const arg = call.getArguments()[0];
47
- if (!arg) {
48
- return fail(kind, source, "expected one argument object");
49
- }
50
- const obj = resolveSameFileObjectLiteral(arg);
51
- if (!obj) {
52
- if (isRawRefSentinel(readDataLiteralNode(arg))) {
53
- return ok({
54
- source,
55
- argsSource: { __raw: arg.getText() },
56
- });
57
- }
58
- return fail(kind, source, "argument must be an inline object literal or a same-file const resolving to one");
59
- }
60
- const stepKeyInit = readObjectPropertyInitializer(obj, "stepKey");
61
- if (!stepKeyInit) {
62
- return fail(kind, source, "missing `stepKey` property");
63
- }
64
- // PatternId needs a concrete string — resolve identifiers like patch.readAiStepKey.
65
- const stepKeyLiteral = readNameLiteral(stepKeyInit);
66
- const stepKey = stepKeyLiteral ?? readStringOrRaw(stepKeyInit);
67
- if (stepKey === undefined) {
68
- return fail(kind, source, "`stepKey` must be a string literal or resolvable identifier");
69
- }
70
- const promptKey = readEditableStringProp(obj, "promptKey");
71
- if (promptKey === undefined) {
72
- return fail(kind, source, "missing `promptKey` property");
73
- }
74
- const promptFallbackInit = readObjectPropertyInitializer(obj, "promptFallback");
75
- if (!promptFallbackInit) {
76
- return fail(kind, source, "missing `promptFallback` property");
77
- }
78
- const promptFallback = readStringOrRaw(promptFallbackInit);
79
- if (promptFallback === undefined) {
80
- return fail(kind, source, "`promptFallback` must be a string literal or identifier reference");
81
- }
82
- const defaultsInit = readObjectPropertyInitializer(obj, "defaults");
83
- if (!defaultsInit) {
84
- return fail(kind, source, "missing `defaults` property");
85
- }
86
- const defaults = readEditableDefaults(defaultsInit);
87
- if (defaults === undefined) {
88
- return fail(kind, source, "`defaults` could not be read as a StepPolicy literal");
89
- }
90
- const paramsSchemaInit = readObjectPropertyInitializer(obj, "paramsSchema");
91
- if (!paramsSchemaInit) {
92
- return fail(kind, source, "missing `paramsSchema` property");
93
- }
94
- return ok({
95
- source,
96
- stepKey,
97
- promptKey,
98
- promptFallback,
99
- defaults,
100
- paramsSchemaSource: sourceLocationFromNode(paramsSchemaInit, sourceFile),
101
- });
102
- }
103
- function requireResolvedCommon(kind, pattern) {
104
- if (pattern.argsSource) {
105
- return fail(kind, pattern.source, "expected resolved inline object, got opaque args reference");
106
- }
107
- const { stepKey, promptKey, promptFallback, defaults, paramsSchemaSource, source } = pattern;
108
- if (stepKey === undefined ||
109
- promptKey === undefined ||
110
- promptFallback === undefined ||
111
- defaults === undefined ||
112
- paramsSchemaSource === undefined) {
113
- return fail(kind, source, "resolved AI step is missing required header fields");
114
- }
115
- return ok({ source, stepKey, promptKey, promptFallback, defaults, paramsSchemaSource });
116
- }
117
- export function extractAiGenerate(call, sourceFile) {
118
- const common = extractAiStepCommon(call, sourceFile, "ai.generate");
119
- if (common.kind === "error")
120
- return common;
121
- if (common.pattern.argsSource) {
122
- return ok({
123
- kind: "ai.generate",
124
- source: common.pattern.source,
125
- argsSource: common.pattern.argsSource,
126
- });
127
- }
128
- const arg = call.getArguments()[0];
129
- const obj = arg ? resolveSameFileObjectLiteral(arg) : undefined;
130
- if (!obj) {
131
- return fail("ai.generate", common.pattern.source, "expected resolvable argument object");
132
- }
133
- const inputInit = readObjectPropertyInitializer(obj, "input");
134
- if (!inputInit) {
135
- return fail("ai.generate", common.pattern.source, "missing `input` property");
136
- }
137
- const fn = findFunctionLiteral(inputInit);
138
- if (!fn) {
139
- return fail("ai.generate", common.pattern.source, "`input` must be an inline arrow function or function expression");
140
- }
141
- const resolved = requireResolvedCommon("ai.generate", common.pattern);
142
- if (resolved.kind === "error")
143
- return resolved;
144
- return ok({
145
- kind: "ai.generate",
146
- source: resolved.pattern.source,
147
- stepKey: resolved.pattern.stepKey,
148
- promptKey: resolved.pattern.promptKey,
149
- promptFallback: resolved.pattern.promptFallback,
150
- defaults: resolved.pattern.defaults,
151
- paramsSchemaSource: resolved.pattern.paramsSchemaSource,
152
- inputBody: sourceLocationFromNode(fn, sourceFile),
153
- });
154
- }
155
- export function extractAiExtract(call, sourceFile) {
156
- const common = extractAiStepCommon(call, sourceFile, "ai.extract");
157
- if (common.kind === "error")
158
- return common;
159
- if (common.pattern.argsSource) {
160
- return ok({
161
- kind: "ai.extract",
162
- source: common.pattern.source,
163
- argsSource: common.pattern.argsSource,
164
- });
165
- }
166
- const arg = call.getArguments()[0];
167
- const obj = arg ? resolveSameFileObjectLiteral(arg) : undefined;
168
- if (!obj) {
169
- return fail("ai.extract", common.pattern.source, "expected resolvable argument object");
170
- }
171
- const outputSchemaInit = readObjectPropertyInitializer(obj, "outputSchema");
172
- if (!outputSchemaInit) {
173
- return fail("ai.extract", common.pattern.source, "missing `outputSchema` property");
174
- }
175
- const instructionsInit = readObjectPropertyInitializer(obj, "instructions");
176
- if (!instructionsInit) {
177
- return fail("ai.extract", common.pattern.source, "missing `instructions` property");
178
- }
179
- const instructionsFn = findFunctionLiteral(instructionsInit);
180
- if (!instructionsFn) {
181
- return fail("ai.extract", common.pattern.source, "`instructions` must be an inline arrow function or function expression");
182
- }
183
- const documentInit = readObjectPropertyInitializer(obj, "document");
184
- let documentBody;
185
- if (documentInit) {
186
- const documentFn = findFunctionLiteral(documentInit);
187
- if (!documentFn) {
188
- return fail("ai.extract", common.pattern.source, "`document` must be an inline arrow function or function expression");
189
- }
190
- documentBody = sourceLocationFromNode(documentFn, sourceFile);
191
- }
192
- const resolved = requireResolvedCommon("ai.extract", common.pattern);
193
- if (resolved.kind === "error")
194
- return resolved;
195
- return ok({
196
- kind: "ai.extract",
197
- source: resolved.pattern.source,
198
- stepKey: resolved.pattern.stepKey,
199
- promptKey: resolved.pattern.promptKey,
200
- promptFallback: resolved.pattern.promptFallback,
201
- defaults: resolved.pattern.defaults,
202
- paramsSchemaSource: resolved.pattern.paramsSchemaSource,
203
- outputSchemaSource: sourceLocationFromNode(outputSchemaInit, sourceFile),
204
- instructionsBody: sourceLocationFromNode(instructionsFn, sourceFile),
205
- ...(documentBody !== undefined && { documentBody }),
206
- });
207
- }
208
- export function extractAiClassify(call, sourceFile) {
209
- const common = extractAiStepCommon(call, sourceFile, "ai.classify");
210
- if (common.kind === "error")
211
- return common;
212
- if (common.pattern.argsSource) {
213
- return ok({
214
- kind: "ai.classify",
215
- source: common.pattern.source,
216
- argsSource: common.pattern.argsSource,
217
- });
218
- }
219
- const arg = call.getArguments()[0];
220
- const obj = arg ? resolveSameFileObjectLiteral(arg) : undefined;
221
- if (!obj) {
222
- return fail("ai.classify", common.pattern.source, "expected resolvable argument object");
223
- }
224
- const actionsInit = readObjectPropertyInitializer(obj, "actions");
225
- if (!actionsInit) {
226
- return fail("ai.classify", common.pattern.source, "missing `actions` property");
227
- }
228
- const actions = readClassifyActions(actionsInit);
229
- if (actions === undefined) {
230
- return fail("ai.classify", common.pattern.source, "`actions` must be an inline array of { type, description } objects");
231
- }
232
- const inputInit = readObjectPropertyInitializer(obj, "input");
233
- if (!inputInit) {
234
- return fail("ai.classify", common.pattern.source, "missing `input` property");
235
- }
236
- const inputFn = findFunctionLiteral(inputInit);
237
- if (!inputFn) {
238
- return fail("ai.classify", common.pattern.source, "`input` must be an inline arrow function or function expression");
239
- }
240
- const resolved = requireResolvedCommon("ai.classify", common.pattern);
241
- if (resolved.kind === "error")
242
- return resolved;
243
- return ok({
244
- kind: "ai.classify",
245
- source: resolved.pattern.source,
246
- stepKey: resolved.pattern.stepKey,
247
- promptKey: resolved.pattern.promptKey,
248
- promptFallback: resolved.pattern.promptFallback,
249
- defaults: resolved.pattern.defaults,
250
- paramsSchemaSource: resolved.pattern.paramsSchemaSource,
251
- actions,
252
- inputBody: sourceLocationFromNode(inputFn, sourceFile),
253
- });
254
- }
@@ -1,5 +0,0 @@
1
- import type { CallExpression, SourceFile } from "ts-morph";
2
- import type { DefineEventPattern, NotificationPattern } from "../patterns.ts";
3
- import { type ExtractOutput } from "./shared.ts";
4
- export declare function extractDefineEvent(call: CallExpression, sourceFile: SourceFile): ExtractOutput<DefineEventPattern>;
5
- export declare function extractNotification(call: CallExpression, sourceFile: SourceFile): ExtractOutput<NotificationPattern>;
@@ -1,275 +0,0 @@
1
- import { SyntaxKind } from "ts-morph";
2
- import { sourceLocationFromNode } from "../source-location.js";
3
- import { fail, findFunctionLiteral, ok, readDataLiteralNode, readNameLiteral, readNameLiteralRef, readNameOrRef, readPropertyKey, } from "./shared.js";
4
- // Reads defineEvent's `migrations` option — either the array-of-steps shape
5
- // used by hand-authored calls (`[{ fromVersion, toVersion, transform }]`,
6
- // toVersion is redundant on-disk since it is always fromVersion + 1) or the
7
- // keyed-object canonical shape the Designer renders (`{ "1": transform }`).
8
- // Keyed by fromVersion (as a string) → the transform closure's location.
9
- // Skips malformed entries rather than failing the whole defineEvent extract
10
- // — same "best-effort, degrade gracefully" posture as readDataLiteralNode.
11
- function extractEventMigrationsFromArray(arr, sourceFile) {
12
- const result = {};
13
- const arrLit = arr.asKindOrThrow(SyntaxKind.ArrayLiteralExpression);
14
- for (const el of arrLit.getElements()) {
15
- const obj = el.asKind(SyntaxKind.ObjectLiteralExpression);
16
- if (!obj)
17
- continue;
18
- const fromInit = obj
19
- .getProperty("fromVersion")
20
- ?.asKind(SyntaxKind.PropertyAssignment)
21
- ?.getInitializer();
22
- const fromVersion = fromInit ? readDataLiteralNode(fromInit) : undefined;
23
- if (typeof fromVersion !== "number")
24
- continue;
25
- const transformInit = obj
26
- .getProperty("transform")
27
- ?.asKind(SyntaxKind.PropertyAssignment)
28
- ?.getInitializer();
29
- const fn = transformInit ? findFunctionLiteral(transformInit) : undefined;
30
- if (!fn)
31
- continue;
32
- result[String(fromVersion)] = sourceLocationFromNode(fn, sourceFile);
33
- }
34
- return result;
35
- }
36
- function extractEventMigrationsFromKeyedObject(objLit, sourceFile) {
37
- const result = {};
38
- const obj = objLit.asKindOrThrow(SyntaxKind.ObjectLiteralExpression);
39
- for (const prop of obj.getProperties()) {
40
- const propAssign = prop.asKind(SyntaxKind.PropertyAssignment);
41
- const initializer = propAssign?.getInitializer();
42
- const fn = initializer ? findFunctionLiteral(initializer) : undefined;
43
- if (!propAssign || !fn)
44
- continue;
45
- result[readPropertyKey(propAssign)] = sourceLocationFromNode(fn, sourceFile);
46
- }
47
- return result;
48
- }
49
- // Reads defineEvent's `migrations` option — either the array-of-steps shape
50
- // used by hand-authored calls (`[{ fromVersion, toVersion, transform }]`,
51
- // toVersion is redundant on-disk since it is always fromVersion + 1) or the
52
- // keyed-object canonical shape the Designer renders (`{ "1": transform }`).
53
- // Keyed by fromVersion (as a string) → the transform closure's location.
54
- // Skips malformed entries rather than failing the whole defineEvent extract
55
- // — same "best-effort, degrade gracefully" posture as readDataLiteralNode.
56
- function extractEventMigrationsField(node, sourceFile) {
57
- const result = node.asKind(SyntaxKind.ArrayLiteralExpression)
58
- ? extractEventMigrationsFromArray(node, sourceFile)
59
- : node.asKind(SyntaxKind.ObjectLiteralExpression)
60
- ? extractEventMigrationsFromKeyedObject(node, sourceFile)
61
- : undefined;
62
- return result && Object.keys(result).length > 0 ? result : undefined;
63
- }
64
- // `{ piiFields }` shorthand is a valid stance; its name node doubles as the location.
65
- function readPiiFieldsNode(obj) {
66
- const prop = obj?.getProperty("piiFields");
67
- return (prop?.asKind(SyntaxKind.PropertyAssignment)?.getInitializer() ??
68
- prop?.asKind(SyntaxKind.ShorthandPropertyAssignment)?.getNameNode());
69
- }
70
- export function extractDefineEvent(call, sourceFile) {
71
- const args = call.getArguments();
72
- const first = args[0];
73
- if (!first) {
74
- return fail("defineEvent", sourceLocationFromNode(call, sourceFile), "expected at least one argument");
75
- }
76
- const obj = first.asKind(SyntaxKind.ObjectLiteralExpression);
77
- if (obj && args.length === 1) {
78
- const nameInit = obj
79
- .getProperty("name")
80
- ?.asKind(SyntaxKind.PropertyAssignment)
81
- ?.getInitializer()
82
- ?.asKind(SyntaxKind.StringLiteral);
83
- if (!nameInit) {
84
- return fail("defineEvent", sourceLocationFromNode(call, sourceFile), "object form requires a string-literal `name` property");
85
- }
86
- const schemaInit = obj
87
- .getProperty("schema")
88
- ?.asKind(SyntaxKind.PropertyAssignment)
89
- ?.getInitializer();
90
- if (!schemaInit) {
91
- return fail("defineEvent", sourceLocationFromNode(call, sourceFile), "object form requires a `schema` property");
92
- }
93
- let version;
94
- const versionInit = obj
95
- .getProperty("version")
96
- ?.asKind(SyntaxKind.PropertyAssignment)
97
- ?.getInitializer();
98
- if (versionInit) {
99
- const v = readDataLiteralNode(versionInit);
100
- if (typeof v === "number")
101
- version = v;
102
- }
103
- const piiFieldsInit = readPiiFieldsNode(obj);
104
- if (!piiFieldsInit) {
105
- return fail("defineEvent", sourceLocationFromNode(call, sourceFile), 'requires an explicit `piiFields` stance (an object literal or "none")');
106
- }
107
- const migrationsInit = obj
108
- .getProperty("migrations")
109
- ?.asKind(SyntaxKind.PropertyAssignment)
110
- ?.getInitializer();
111
- const migrations = migrationsInit
112
- ? extractEventMigrationsField(migrationsInit, sourceFile)
113
- : undefined;
114
- return ok({
115
- kind: "defineEvent",
116
- source: sourceLocationFromNode(call, sourceFile),
117
- eventName: nameInit.getLiteralValue(),
118
- schemaSource: sourceLocationFromNode(schemaInit, sourceFile),
119
- piiFields: sourceLocationFromNode(piiFieldsInit, sourceFile),
120
- ...(version !== undefined && { version }),
121
- ...(migrations !== undefined && { migrations }),
122
- });
123
- }
124
- const eventNameRef = readNameLiteralRef(first);
125
- if (eventNameRef === undefined) {
126
- return fail("defineEvent", sourceLocationFromNode(call, sourceFile), "first argument must be a string literal event name, or an identifier resolving to one (or use the object form)");
127
- }
128
- const schemaArg = args[1];
129
- if (!schemaArg) {
130
- return fail("defineEvent", sourceLocationFromNode(call, sourceFile), "expected a Zod schema as second argument");
131
- }
132
- let version;
133
- let migrations;
134
- const optionsArg = args[2];
135
- const optionsObj = optionsArg?.asKind(SyntaxKind.ObjectLiteralExpression);
136
- const piiFieldsInit = readPiiFieldsNode(optionsObj);
137
- if (!piiFieldsInit) {
138
- if (optionsArg && !optionsObj) {
139
- return fail("defineEvent", sourceLocationFromNode(call, sourceFile), "options must be an object literal");
140
- }
141
- return fail("defineEvent", sourceLocationFromNode(call, sourceFile), 'requires an explicit `piiFields` stance (an object literal or "none")');
142
- }
143
- if (optionsObj) {
144
- const versionInit = optionsObj
145
- .getProperty("version")
146
- ?.asKind(SyntaxKind.PropertyAssignment)
147
- ?.getInitializer();
148
- if (versionInit) {
149
- const v = readDataLiteralNode(versionInit);
150
- if (typeof v === "number")
151
- version = v;
152
- }
153
- const migrationsInit = optionsObj
154
- .getProperty("migrations")
155
- ?.asKind(SyntaxKind.PropertyAssignment)
156
- ?.getInitializer();
157
- if (migrationsInit) {
158
- migrations = extractEventMigrationsField(migrationsInit, sourceFile);
159
- }
160
- }
161
- return ok({
162
- kind: "defineEvent",
163
- source: sourceLocationFromNode(call, sourceFile),
164
- eventName: eventNameRef.value,
165
- ...(eventNameRef.raw !== undefined && { eventNameRaw: eventNameRef.raw }),
166
- schemaSource: sourceLocationFromNode(schemaArg, sourceFile),
167
- piiFields: sourceLocationFromNode(piiFieldsInit, sourceFile),
168
- ...(version !== undefined && { version }),
169
- ...(migrations !== undefined && { migrations }),
170
- });
171
- }
172
- export function extractNotification(call, sourceFile) {
173
- const args = call.getArguments();
174
- const first = args[0];
175
- if (!first) {
176
- return fail("notification", sourceLocationFromNode(call, sourceFile), "expected at least one argument");
177
- }
178
- let notificationName;
179
- let defObj;
180
- const firstObj = first.asKind(SyntaxKind.ObjectLiteralExpression);
181
- if (firstObj && args.length === 1) {
182
- const nameInit = firstObj
183
- .getProperty("name")
184
- ?.asKind(SyntaxKind.PropertyAssignment)
185
- ?.getInitializer()
186
- ?.asKind(SyntaxKind.StringLiteral);
187
- if (!nameInit) {
188
- return fail("notification", sourceLocationFromNode(call, sourceFile), "object form requires a string-literal `name` property");
189
- }
190
- notificationName = nameInit.getLiteralValue();
191
- defObj = firstObj;
192
- }
193
- else {
194
- notificationName = readNameLiteral(first);
195
- if (notificationName === undefined) {
196
- return fail("notification", sourceLocationFromNode(call, sourceFile), "first argument must be a string literal notification name, or an identifier resolving to one (or use the object form)");
197
- }
198
- defObj = args[1]?.asKind(SyntaxKind.ObjectLiteralExpression);
199
- if (!defObj) {
200
- return fail("notification", sourceLocationFromNode(call, sourceFile), "second argument must be an inline definition object");
201
- }
202
- }
203
- const triggerProp = defObj.getProperty("trigger");
204
- if (!triggerProp && (defObj.getProperty("recipient") || defObj.getProperty("data"))) {
205
- return fail("notification", sourceLocationFromNode(call, sourceFile), "recipient and data require a `trigger`");
206
- }
207
- let onName;
208
- let recipientFn;
209
- let dataFn;
210
- if (triggerProp) {
211
- const triggerObj = triggerProp
212
- .asKind(SyntaxKind.PropertyAssignment)
213
- ?.getInitializer()
214
- ?.asKind(SyntaxKind.ObjectLiteralExpression);
215
- if (!triggerObj) {
216
- return fail("notification", sourceLocationFromNode(call, sourceFile), "non-object `trigger` property");
217
- }
218
- const onInit = triggerObj
219
- .getProperty("on")
220
- ?.asKind(SyntaxKind.PropertyAssignment)
221
- ?.getInitializer();
222
- onName = onInit ? readNameOrRef(onInit) : undefined;
223
- if (!onName) {
224
- return fail("notification", sourceLocationFromNode(call, sourceFile), "trigger.on must be a string literal or inline { name } object");
225
- }
226
- const recipientInit = defObj
227
- .getProperty("recipient")
228
- ?.asKind(SyntaxKind.PropertyAssignment)
229
- ?.getInitializer();
230
- recipientFn = recipientInit ? findFunctionLiteral(recipientInit) : undefined;
231
- if (!recipientFn) {
232
- return fail("notification", sourceLocationFromNode(call, sourceFile), "recipient must be an inline arrow function or function expression");
233
- }
234
- const dataInit = defObj
235
- .getProperty("data")
236
- ?.asKind(SyntaxKind.PropertyAssignment)
237
- ?.getInitializer();
238
- dataFn = dataInit ? findFunctionLiteral(dataInit) : undefined;
239
- if (!dataFn) {
240
- return fail("notification", sourceLocationFromNode(call, sourceFile), "data must be an inline arrow function or function expression");
241
- }
242
- }
243
- let templates;
244
- const templatesObj = defObj
245
- .getProperty("templates")
246
- ?.asKind(SyntaxKind.PropertyAssignment)
247
- ?.getInitializer()
248
- ?.asKind(SyntaxKind.ObjectLiteralExpression);
249
- if (templatesObj) {
250
- templates = {};
251
- for (const prop of templatesObj.getProperties()) {
252
- const propAssign = prop.asKind(SyntaxKind.PropertyAssignment);
253
- if (!propAssign)
254
- continue;
255
- const init = propAssign.getInitializer();
256
- if (!init)
257
- continue;
258
- const tfn = findFunctionLiteral(init);
259
- if (!tfn)
260
- continue;
261
- templates[readPropertyKey(propAssign)] = sourceLocationFromNode(tfn, sourceFile);
262
- }
263
- }
264
- return ok({
265
- kind: "notification",
266
- source: sourceLocationFromNode(call, sourceFile),
267
- notificationName,
268
- ...(onName !== undefined && { trigger: { on: onName } }),
269
- ...(recipientFn !== undefined && {
270
- recipientBody: sourceLocationFromNode(recipientFn, sourceFile),
271
- }),
272
- ...(dataFn !== undefined && { dataBody: sourceLocationFromNode(dataFn, sourceFile) }),
273
- ...(templates !== undefined && { templates }),
274
- });
275
- }
@@ -1,24 +0,0 @@
1
- import type { CallExpression, SourceFile } from "ts-morph";
2
- import type { AccessRule, AgentHandlerHints, AgentRisk, EscapeHatchDeclaration, PayloadRateLimitOption, RateLimitDeclaration } from "../../types/handlers.ts";
3
- import type { QueryHandlerPattern, StreamHandlerPattern, WriteHandlerPattern } from "../patterns.ts";
4
- import type { SourceLocation } from "../source-location.ts";
5
- import { type ExtractOutput, type RawRefSentinel } from "./shared.ts";
6
- export type ParsedHandlerCall = {
7
- readonly source: SourceLocation;
8
- readonly handlerName?: string;
9
- readonly schemaSource?: SourceLocation;
10
- readonly handlerBody?: SourceLocation;
11
- readonly access?: AccessRule | RawRefSentinel;
12
- readonly description?: string;
13
- readonly agent?: AgentHandlerHints | RawRefSentinel;
14
- readonly rateLimit?: RateLimitDeclaration | RawRefSentinel;
15
- readonly additionalRateLimits?: readonly PayloadRateLimitOption[] | RawRefSentinel;
16
- readonly unsafeSkipTransitionGuard?: boolean;
17
- readonly escapeHatch?: EscapeHatchDeclaration | RawRefSentinel;
18
- };
19
- export declare const AGENT_RISK_VALUES: readonly AgentRisk[];
20
- export declare function readOptionalAgentHints(value: unknown): AgentHandlerHints | undefined;
21
- export declare function parseHandlerCall(call: CallExpression, sourceFile: SourceFile, methodName: "writeHandler" | "queryHandler" | "streamHandler"): ExtractOutput<ParsedHandlerCall>;
22
- export declare function extractWriteHandler(call: CallExpression, sourceFile: SourceFile): ExtractOutput<WriteHandlerPattern>;
23
- export declare function extractQueryHandler(call: CallExpression, sourceFile: SourceFile): ExtractOutput<QueryHandlerPattern>;
24
- export declare function extractStreamHandler(call: CallExpression, sourceFile: SourceFile): ExtractOutput<StreamHandlerPattern>;