@cosmicdrift/kumiko-framework 0.387.0 → 0.389.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 (375) hide show
  1. package/AGENTS.md +9 -1
  2. package/agents/examples/anonymous-access.md +1 -1
  3. package/agents/examples/apex-landing.md +204 -0
  4. package/agents/examples/api-worker-split.md +64 -0
  5. package/agents/examples/app-config.md +14 -0
  6. package/agents/examples/auth-mfa.md +115 -0
  7. package/agents/examples/env-composition.md +28 -1
  8. package/agents/examples/golden-path.md +13 -1
  9. package/agents/examples/legal-pages.md +1 -1
  10. package/agents/examples/lifecycle-hooks.md +55 -2
  11. package/agents/examples/list-table-options.md +466 -0
  12. package/agents/examples/pdf-audit-export.md +4 -2
  13. package/agents/examples/prod-boot-options.md +16 -0
  14. package/agents/examples/rate-limiting.md +48 -0
  15. package/agents/examples/record-detail-layout.md +692 -0
  16. package/agents/examples/seed-migration.md +212 -0
  17. package/agents/examples/state-machine.md +3 -2
  18. package/agents/examples/tenant-isolation.md +73 -1
  19. package/agents/examples/wizard-form.md +941 -0
  20. package/agents/examples/writeform-section.md +548 -0
  21. package/agents/examples.md +1 -0
  22. package/agents/features.md +19 -2
  23. package/agents/widgets.md +2 -0
  24. package/dist/api/api-constants.d.ts +1 -0
  25. package/dist/api/api-constants.js +2 -0
  26. package/dist/api/auth-routes-shared.d.ts +2 -0
  27. package/dist/api/auth-routes-shared.js +5 -0
  28. package/dist/api/client-error-route.js +10 -5
  29. package/dist/api/entity-read-access.d.ts +2 -1
  30. package/dist/api/entity-read-access.js +14 -0
  31. package/dist/api/export/export-cells-reference.d.ts +9 -0
  32. package/dist/api/export/export-cells-reference.js +21 -0
  33. package/dist/api/export/export-cells.d.ts +11 -0
  34. package/dist/api/export/export-cells.js +136 -0
  35. package/dist/api/export/export-ciphertext-guard.d.ts +2 -0
  36. package/dist/api/export/export-ciphertext-guard.js +27 -0
  37. package/dist/api/export/export-columns.d.ts +29 -0
  38. package/dist/api/export/export-columns.js +85 -0
  39. package/dist/api/export/export-errors.d.ts +4 -0
  40. package/dist/api/export/export-errors.js +14 -0
  41. package/dist/api/export/export-route.d.ts +4 -0
  42. package/dist/api/export/export-route.js +74 -0
  43. package/dist/api/export/export-rows.d.ts +13 -0
  44. package/dist/api/export/export-rows.js +62 -0
  45. package/dist/api/export/export-screen.d.ts +12 -0
  46. package/dist/api/export/export-screen.js +47 -0
  47. package/dist/api/export/export-xlsx-writer.d.ts +4 -0
  48. package/dist/api/export/export-xlsx-writer.js +21 -0
  49. package/dist/api/extra-route.d.ts +4 -0
  50. package/dist/api/index.d.ts +3 -1
  51. package/dist/api/index.js +3 -1
  52. package/dist/api/pii-leak-guard.d.ts +3 -0
  53. package/dist/api/pii-leak-guard.js +3 -2
  54. package/dist/api/request-context.d.ts +1 -1
  55. package/dist/api/request-context.js +1 -1
  56. package/dist/api/routes.d.ts +16 -0
  57. package/dist/api/routes.js +2 -2
  58. package/dist/api/server-boot-checks.d.ts +10 -0
  59. package/dist/api/server-boot-checks.js +157 -0
  60. package/dist/api/server-event-dispatcher.d.ts +26 -0
  61. package/dist/api/server-event-dispatcher.js +208 -0
  62. package/dist/api/server-extra-routes.d.ts +11 -0
  63. package/dist/api/server-extra-routes.js +206 -0
  64. package/dist/api/server-middleware.d.ts +20 -0
  65. package/dist/api/server-middleware.js +211 -0
  66. package/dist/api/server-routes.d.ts +19 -0
  67. package/dist/api/server-routes.js +299 -0
  68. package/dist/api/server-websocket-routes.d.ts +4 -0
  69. package/dist/api/server-websocket-routes.js +108 -0
  70. package/dist/api/server-wiring.d.ts +32 -0
  71. package/dist/api/server-wiring.js +238 -0
  72. package/dist/api/server.d.ts +10 -15
  73. package/dist/api/server.js +48 -1251
  74. package/dist/api/session-cookies.js +4 -4
  75. package/dist/api/sse-route.d.ts +2 -1
  76. package/dist/api/sse-route.js +27 -13
  77. package/dist/config/index.d.ts +3 -1
  78. package/dist/crypto/owner-transition-rekey.d.ts +5 -1
  79. package/dist/crypto/owner-transition-rekey.js +1 -1
  80. package/dist/crypto/pg-kms-adapter.d.ts +1 -0
  81. package/dist/crypto/pg-kms-adapter.js +12 -18
  82. package/dist/crypto/pii-field-encryption.d.ts +5 -1
  83. package/dist/crypto/pii-field-encryption.js +3 -1
  84. package/dist/db/aggregate-sql.d.ts +23 -0
  85. package/dist/db/aggregate-sql.js +165 -0
  86. package/dist/db/closed-connection.d.ts +9 -0
  87. package/dist/db/closed-connection.js +88 -0
  88. package/dist/db/connection.d.ts +4 -5
  89. package/dist/db/connection.js +29 -20
  90. package/dist/db/dialect.js +1 -1
  91. package/dist/db/distinct-on.d.ts +1 -1
  92. package/dist/db/driver-row-coercion.d.ts +2 -0
  93. package/dist/db/driver-row-coercion.js +186 -0
  94. package/dist/db/driver-value-preparation.d.ts +16 -0
  95. package/dist/db/driver-value-preparation.js +101 -0
  96. package/dist/db/entity-field-encryption.d.ts +1 -0
  97. package/dist/db/entity-field-encryption.js +1 -1
  98. package/dist/db/entity-table-meta.js +103 -110
  99. package/dist/db/event-store-executor-context.d.ts +2 -1
  100. package/dist/db/event-store-executor-read-aggregate-currencies.d.ts +17 -0
  101. package/dist/db/event-store-executor-read-aggregate-currencies.js +40 -0
  102. package/dist/db/event-store-executor-read-aggregate.d.ts +8 -0
  103. package/dist/db/event-store-executor-read-aggregate.js +143 -0
  104. package/dist/db/event-store-executor-read-filter.d.ts +31 -0
  105. package/dist/db/event-store-executor-read-filter.js +206 -0
  106. package/dist/db/event-store-executor-read-paging.d.ts +14 -0
  107. package/dist/db/event-store-executor-read-paging.js +99 -0
  108. package/dist/db/event-store-executor-read-rows.d.ts +6 -0
  109. package/dist/db/event-store-executor-read-rows.js +32 -0
  110. package/dist/db/event-store-executor-read-search.d.ts +28 -0
  111. package/dist/db/event-store-executor-read-search.js +221 -0
  112. package/dist/db/event-store-executor-read-sort.d.ts +41 -0
  113. package/dist/db/event-store-executor-read-sort.js +130 -0
  114. package/dist/db/event-store-executor-read-where.d.ts +24 -0
  115. package/dist/db/event-store-executor-read-where.js +81 -0
  116. package/dist/db/event-store-executor-read.d.ts +2 -9
  117. package/dist/db/event-store-executor-read.js +48 -701
  118. package/dist/db/event-store-executor-write-atomic.d.ts +4 -0
  119. package/dist/db/event-store-executor-write-atomic.js +41 -0
  120. package/dist/db/event-store-executor-write-steps.d.ts +17 -0
  121. package/dist/db/event-store-executor-write-steps.js +95 -0
  122. package/dist/db/event-store-executor-write.js +405 -509
  123. package/dist/db/event-store-executor.js +2 -1
  124. package/dist/db/executor-managed-tables.js +1 -1
  125. package/dist/db/index.d.ts +7 -3
  126. package/dist/db/index.js +6 -2
  127. package/dist/db/list-aggregate-labels.d.ts +14 -0
  128. package/dist/db/list-aggregate-labels.js +26 -0
  129. package/dist/db/migrate-generator.js +71 -86
  130. package/dist/db/migrate-runner.js +7 -4
  131. package/dist/db/pg-error.js +26 -21
  132. package/dist/db/queries/backfill-pii.js +3 -6
  133. package/dist/db/queries/database-now.js +2 -1
  134. package/dist/db/queries/shadow-swap.js +2 -3
  135. package/dist/db/query.d.ts +16 -15
  136. package/dist/db/query.js +76 -804
  137. package/dist/db/reference-data.js +19 -2
  138. package/dist/db/statement-timeout.js +2 -1
  139. package/dist/db/table-builder.js +113 -166
  140. package/dist/db/table-info.d.ts +10 -0
  141. package/dist/db/table-info.js +45 -0
  142. package/dist/db/temporal-value-guards.d.ts +6 -0
  143. package/dist/db/temporal-value-guards.js +15 -0
  144. package/dist/db/tenant-db-runner.d.ts +1 -0
  145. package/dist/db/tenant-db-runner.js +3 -0
  146. package/dist/db/tenant-db-upsert.d.ts +5 -0
  147. package/dist/db/tenant-db-upsert.js +91 -0
  148. package/dist/db/tenant-db.js +50 -10
  149. package/dist/db/where-clause.d.ts +6 -0
  150. package/dist/db/where-clause.js +236 -0
  151. package/dist/derivatives/delete-stored-file.js +2 -1
  152. package/dist/engine/boot-validator/boot-check.js +1 -1
  153. package/dist/engine/boot-validator/bundled-lists-table.d.ts +2 -0
  154. package/dist/engine/boot-validator/bundled-lists-table.js +36 -0
  155. package/dist/engine/boot-validator/detail-screens.js +2 -2
  156. package/dist/engine/boot-validator/entity-handler.d.ts +1 -0
  157. package/dist/engine/boot-validator/entity-handler.js +17 -0
  158. package/dist/engine/boot-validator/entity-list-aggregate-options.d.ts +3 -0
  159. package/dist/engine/boot-validator/entity-list-aggregate-options.js +23 -0
  160. package/dist/engine/boot-validator/form-derivations.js +35 -1
  161. package/dist/engine/boot-validator/i18n-keys.js +5 -3
  162. package/dist/engine/boot-validator/index.js +2 -0
  163. package/dist/engine/boot-validator/list-bulk-actions.d.ts +3 -0
  164. package/dist/engine/boot-validator/list-bulk-actions.js +49 -0
  165. package/dist/engine/boot-validator/list-column-layout.d.ts +8 -0
  166. package/dist/engine/boot-validator/list-column-layout.js +41 -0
  167. package/dist/engine/boot-validator/list-table-aggregate-options.d.ts +24 -0
  168. package/dist/engine/boot-validator/list-table-aggregate-options.js +145 -0
  169. package/dist/engine/boot-validator/list-table-aggregate-query.d.ts +10 -0
  170. package/dist/engine/boot-validator/list-table-aggregate-query.js +31 -0
  171. package/dist/engine/boot-validator/list-table-export-options.d.ts +1 -0
  172. package/dist/engine/boot-validator/list-table-export-options.js +27 -0
  173. package/dist/engine/boot-validator/list-table-options.d.ts +3 -0
  174. package/dist/engine/boot-validator/list-table-options.js +77 -0
  175. package/dist/engine/boot-validator/list-table-reject-unknown-keys.d.ts +1 -0
  176. package/dist/engine/boot-validator/list-table-reject-unknown-keys.js +7 -0
  177. package/dist/engine/boot-validator/pii-retention.js +233 -155
  178. package/dist/engine/boot-validator/projection-list-screens.d.ts +1 -1
  179. package/dist/engine/boot-validator/projection-list-screens.js +3 -13
  180. package/dist/engine/boot-validator/related-list-table-rules.d.ts +4 -0
  181. package/dist/engine/boot-validator/related-list-table-rules.js +42 -0
  182. package/dist/engine/boot-validator/screens-actions.d.ts +1 -0
  183. package/dist/engine/boot-validator/screens-actions.js +8 -1
  184. package/dist/engine/boot-validator/screens-dashboard.js +2 -5
  185. package/dist/engine/boot-validator/screens-forms.js +2 -6
  186. package/dist/engine/boot-validator/screens-kind-config-edit.d.ts +3 -0
  187. package/dist/engine/boot-validator/screens-kind-config-edit.js +88 -0
  188. package/dist/engine/boot-validator/screens-kind-entity-edit.d.ts +3 -0
  189. package/dist/engine/boot-validator/screens-kind-entity-edit.js +55 -0
  190. package/dist/engine/boot-validator/screens-kind-entity-list.d.ts +3 -0
  191. package/dist/engine/boot-validator/screens-kind-entity-list.js +235 -0
  192. package/dist/engine/boot-validator/screens-kind-projection-detail.d.ts +3 -0
  193. package/dist/engine/boot-validator/screens-kind-projection-detail.js +235 -0
  194. package/dist/engine/boot-validator/screens-kind-projection-list.d.ts +3 -0
  195. package/dist/engine/boot-validator/screens-kind-projection-list.js +56 -0
  196. package/dist/engine/boot-validator/screens-kind-secret-mint.d.ts +3 -0
  197. package/dist/engine/boot-validator/screens-kind-secret-mint.js +28 -0
  198. package/dist/engine/boot-validator/screens-kind-shared.d.ts +37 -0
  199. package/dist/engine/boot-validator/screens-kind-shared.js +142 -0
  200. package/dist/engine/boot-validator/screens-lists.d.ts +2 -1
  201. package/dist/engine/boot-validator/screens-lists.js +24 -11
  202. package/dist/engine/boot-validator/screens.d.ts +0 -2
  203. package/dist/engine/boot-validator/screens.js +99 -860
  204. package/dist/engine/build-app-schema.d.ts +2 -1
  205. package/dist/engine/build-app-schema.js +65 -97
  206. package/dist/engine/build-config-feature-schema.js +6 -1
  207. package/dist/engine/define-feature.js +13 -2
  208. package/dist/engine/define-handler.js +1 -0
  209. package/dist/engine/entity-handlers.d.ts +13 -0
  210. package/dist/engine/entity-handlers.js +10 -21
  211. package/dist/engine/entity-list-runtime-options.d.ts +8 -0
  212. package/dist/engine/entity-list-runtime-options.js +18 -0
  213. package/dist/engine/feature-ast/extractors/handlers.js +1 -0
  214. package/dist/engine/feature-ast/extractors/index.d.ts +1 -1
  215. package/dist/engine/feature-ast/extractors/index.js +1 -1
  216. package/dist/engine/feature-ast/extractors/round1.d.ts +2 -1
  217. package/dist/engine/feature-ast/extractors/round1.js +6 -0
  218. package/dist/engine/feature-ast/extractors/round2.js +25 -6
  219. package/dist/engine/feature-ast/index.d.ts +1 -1
  220. package/dist/engine/feature-ast/parse.js +3 -1
  221. package/dist/engine/feature-ast/patch.d.ts +2 -0
  222. package/dist/engine/feature-ast/patch.js +5 -182
  223. package/dist/engine/feature-ast/pattern-change-schema.d.ts +10 -245
  224. package/dist/engine/feature-ast/pattern-change-schema.js +10 -163
  225. package/dist/engine/feature-ast/pattern-id-matchers.d.ts +7 -0
  226. package/dist/engine/feature-ast/pattern-id-matchers.js +211 -0
  227. package/dist/engine/feature-ast/pattern-id-schema.d.ts +251 -0
  228. package/dist/engine/feature-ast/pattern-id-schema.js +166 -0
  229. package/dist/engine/feature-ast/patterns.d.ts +14 -1
  230. package/dist/engine/feature-ast/patterns.js +44 -51
  231. package/dist/engine/feature-ast/render.js +52 -87
  232. package/dist/engine/feature-builder-state.d.ts +1 -0
  233. package/dist/engine/feature-builder-state.js +1 -0
  234. package/dist/engine/feature-entity-handlers.js +3 -0
  235. package/dist/engine/feature-manifest.d.ts +1 -0
  236. package/dist/engine/feature-manifest.js +1 -0
  237. package/dist/engine/field-access.d.ts +1 -0
  238. package/dist/engine/field-access.js +12 -0
  239. package/dist/engine/form-derivations.js +18 -7
  240. package/dist/engine/handler-field-references.js +1 -1
  241. package/dist/engine/index.d.ts +2 -2
  242. package/dist/engine/index.js +1 -1
  243. package/dist/engine/pattern-library/library.js +2 -1
  244. package/dist/engine/pattern-library/static-schemas.d.ts +1 -0
  245. package/dist/engine/pattern-library/static-schemas.js +9 -0
  246. package/dist/engine/project-app-schema-for-roles.d.ts +2 -0
  247. package/dist/engine/project-app-schema-for-roles.js +6 -4
  248. package/dist/engine/registry-ingest.js +1 -1
  249. package/dist/engine/schema-builder.js +228 -212
  250. package/dist/engine/screen-filter-ops.js +2 -0
  251. package/dist/engine/screen-helpers.js +1 -1
  252. package/dist/engine/screen-kind.d.ts +7 -0
  253. package/dist/engine/screen-kind.js +1 -0
  254. package/dist/engine/strip-disabled-features-from-app-schema.js +58 -17
  255. package/dist/engine/types/feature.d.ts +1 -0
  256. package/dist/engine/types/index.d.ts +4 -3
  257. package/dist/engine/types/screen.d.ts +1 -1
  258. package/dist/engine/types/screen.js +1 -1
  259. package/dist/engine/validate-projection-allowlist.js +2 -1
  260. package/dist/entrypoint/index.d.ts +6 -1
  261. package/dist/entrypoint/index.js +10 -1
  262. package/dist/errors/docs-url.d.ts +1 -1
  263. package/dist/errors/docs-url.js +22 -2
  264. package/dist/es-ops/context.js +1 -1
  265. package/dist/event-store/admin-api.js +1 -1
  266. package/dist/event-store/event-store.d.ts +1 -0
  267. package/dist/event-store/event-store.js +17 -8
  268. package/dist/event-store/provenance-append.js +1 -1
  269. package/dist/files/bind-pending-file-refs.js +3 -3
  270. package/dist/files/create-file-ref-from-bytes.js +7 -1
  271. package/dist/files/create-file-ref.d.ts +3 -0
  272. package/dist/files/create-file-ref.js +11 -2
  273. package/dist/files/file-handle.js +2 -3
  274. package/dist/files/file-routes.d.ts +2 -0
  275. package/dist/files/file-routes.js +40 -10
  276. package/dist/files/provider-resolver.d.ts +1 -0
  277. package/dist/files/provider-resolver.js +1 -1
  278. package/dist/files/record-write-check.d.ts +6 -0
  279. package/dist/files/record-write-check.js +13 -0
  280. package/dist/files/resolve-content-type.js +43 -0
  281. package/dist/files/upload-ledger.d.ts +2 -2
  282. package/dist/files/upload-ledger.js +11 -4
  283. package/dist/i18n/required-surface-keys.js +189 -208
  284. package/dist/internal/stack-support.d.ts +2 -1
  285. package/dist/internal/stack-support.js +1 -1
  286. package/dist/internal/testing.js +1 -1
  287. package/dist/jobs/job-runner-context.d.ts +32 -0
  288. package/dist/jobs/job-runner-context.js +305 -0
  289. package/dist/jobs/job-runner-execution.d.ts +7 -0
  290. package/dist/jobs/job-runner-execution.js +160 -0
  291. package/dist/jobs/job-runner-gates.d.ts +19 -0
  292. package/dist/jobs/job-runner-gates.js +198 -0
  293. package/dist/jobs/job-runner-helpers.d.ts +17 -3
  294. package/dist/jobs/job-runner-helpers.js +61 -2
  295. package/dist/jobs/job-runner-scope.d.ts +44 -0
  296. package/dist/jobs/job-runner-scope.js +102 -0
  297. package/dist/jobs/job-runner-types.d.ts +12 -0
  298. package/dist/jobs/job-runner.d.ts +0 -1
  299. package/dist/jobs/job-runner.js +50 -657
  300. package/dist/observability/escape-hatch-report.d.ts +3 -0
  301. package/dist/observability/escape-hatch-report.js +21 -3
  302. package/dist/pipeline/after-rollback-sink.d.ts +6 -0
  303. package/dist/pipeline/after-rollback-sink.js +32 -0
  304. package/dist/pipeline/cascade-handler.js +165 -138
  305. package/dist/pipeline/dispatch-batch.js +8 -1
  306. package/dist/pipeline/dispatch-query.js +10 -3
  307. package/dist/pipeline/dispatch-shared.d.ts +13 -3
  308. package/dist/pipeline/dispatch-shared.js +62 -710
  309. package/dist/pipeline/dispatch-write.js +296 -189
  310. package/dist/pipeline/event-dispatcher-admin.js +2 -1
  311. package/dist/pipeline/event-dispatcher-delivery.js +6 -6
  312. package/dist/pipeline/event-dispatcher.d.ts +1 -0
  313. package/dist/pipeline/event-dispatcher.js +6 -9
  314. package/dist/pipeline/handler-context-auth.d.ts +9 -0
  315. package/dist/pipeline/handler-context-auth.js +54 -0
  316. package/dist/pipeline/handler-context-config.d.ts +14 -0
  317. package/dist/pipeline/handler-context-config.js +113 -0
  318. package/dist/pipeline/handler-context-db.d.ts +24 -0
  319. package/dist/pipeline/handler-context-db.js +149 -0
  320. package/dist/pipeline/handler-context-dispatch.d.ts +23 -0
  321. package/dist/pipeline/handler-context-dispatch.js +101 -0
  322. package/dist/pipeline/handler-context-events.d.ts +41 -0
  323. package/dist/pipeline/handler-context-events.js +239 -0
  324. package/dist/pipeline/handler-context-notify.d.ts +12 -0
  325. package/dist/pipeline/handler-context-notify.js +55 -0
  326. package/dist/pipeline/handler-context-observability.d.ts +7 -0
  327. package/dist/pipeline/handler-context-observability.js +21 -0
  328. package/dist/pipeline/handler-context-scope.d.ts +48 -0
  329. package/dist/pipeline/handler-context-scope.js +88 -0
  330. package/dist/pipeline/notify-scope.js +12 -1
  331. package/dist/pipeline/pre-handler-gates.js +20 -4
  332. package/dist/pipeline/pre-transaction-reservations.d.ts +1 -0
  333. package/dist/pipeline/pre-transaction-reservations.js +9 -3
  334. package/dist/pipeline/projection-rebuild.js +2 -1
  335. package/dist/pipeline/system-hooks.d.ts +3 -1
  336. package/dist/pipeline/system-hooks.js +55 -6
  337. package/dist/pipeline/write-result-masking.js +13 -10
  338. package/dist/schema-cli/apply-command.d.ts +2 -0
  339. package/dist/schema-cli/apply-command.js +97 -0
  340. package/dist/schema-cli/baseline-command.d.ts +2 -0
  341. package/dist/schema-cli/baseline-command.js +33 -0
  342. package/dist/schema-cli/generate-command.d.ts +2 -0
  343. package/dist/schema-cli/generate-command.js +90 -0
  344. package/dist/schema-cli/shared.d.ts +39 -0
  345. package/dist/schema-cli/shared.js +95 -0
  346. package/dist/schema-cli/status-command.d.ts +2 -0
  347. package/dist/schema-cli/status-command.js +73 -0
  348. package/dist/schema-cli/validate-boot-input.d.ts +5 -0
  349. package/dist/schema-cli/validate-boot-input.js +130 -0
  350. package/dist/schema-cli/validate-command.d.ts +2 -0
  351. package/dist/schema-cli/validate-command.js +130 -0
  352. package/dist/schema-cli.d.ts +2 -18
  353. package/dist/schema-cli.js +47 -604
  354. package/dist/search/meilisearch-adapter.js +2 -1
  355. package/dist/search/reindex-entity.js +15 -5
  356. package/dist/ui-types/index.d.ts +2 -2
  357. package/dist/ui-types/index.js +1 -1
  358. package/dist/upgrade-changelog.d.ts +2 -0
  359. package/dist/upgrade-changelog.js +14 -0
  360. package/dist/upgrade-cli.d.ts +3 -12
  361. package/dist/upgrade-cli.js +171 -197
  362. package/dist/upgrade-marker-parse.d.ts +32 -0
  363. package/dist/upgrade-marker-parse.js +73 -0
  364. package/package.json +9 -6
  365. package/src/changes.json +555 -0
  366. package/src/scripts/codemod/codemod-support.ts +1 -1
  367. package/src/scripts/codemod/db-factory.ts +1 -1
  368. package/src/scripts/codemod/feature-layout.ts +10 -2
  369. package/src/scripts/codemod/object-form.ts +41 -4
  370. package/src/scripts/codemod/package-merge.ts +58 -8
  371. package/src/scripts/codemod/pii-personal-migration.ts +175 -145
  372. package/src/scripts/codemod/testing-injection.ts +122 -42
  373. package/src/scripts/codemod/testing-move.ts +29 -7
  374. package/dist/engine/provider-plugin-context.d.ts +0 -3
  375. package/dist/engine/provider-plugin-context.js +0 -28
@@ -33,7 +33,8 @@
33
33
  // roadmap C-Notes for the canonical-comment-attach Pattern that would
34
34
  // preserve prefixed `// kumiko-comment:` markers across roundtrips.
35
35
  import { SyntaxKind, } from "ts-morph";
36
- import { readNameLiteral, readNameOrRef, readPropertyKey, resolveSameFileObjectLiteral, } from "./extractors/shared.js";
36
+ import { readPropertyKey } from "./extractors/shared.js";
37
+ import { callMatchesId } from "./pattern-id-matchers.js";
37
38
  import { indent, PATTERN_INDENT, renderPattern, renderValue } from "./render.js";
38
39
  /**
39
40
  * Apply a sequence of changes to the source file in-place. The list is
@@ -481,6 +482,7 @@ export const SINGLETON_KINDS = new Set([
481
482
  "toggleable",
482
483
  "describe",
483
484
  "uiHints",
485
+ "adoptsBundledLists",
484
486
  "config",
485
487
  "translations",
486
488
  "authClaims",
@@ -523,7 +525,7 @@ function findCallForId(sourceFile, id) {
523
525
  continue;
524
526
  if (propAccess.getName() !== id.kind)
525
527
  continue;
526
- if (callMatchesId(call, id))
528
+ if (callMatchesId(call, id.kind, id))
527
529
  matches.push(call);
528
530
  }
529
531
  if (SINGLETON_KINDS.has(id.kind) && matches.length > 1) {
@@ -536,28 +538,6 @@ const AI_STEP_FACTORY = {
536
538
  "ai.extract": "aiExtractStep",
537
539
  "ai.classify": "aiClassifyStep",
538
540
  };
539
- function readAiStepKey(call) {
540
- const arg = call.getArguments()[0];
541
- if (!arg)
542
- return undefined;
543
- const obj = resolveSameFileObjectLiteral(arg);
544
- if (!obj)
545
- return undefined;
546
- const prop = obj.getProperty("stepKey");
547
- if (!prop)
548
- return undefined;
549
- const assign = prop.asKind(SyntaxKind.PropertyAssignment);
550
- if (assign) {
551
- const init = assign.getInitializer();
552
- if (!init)
553
- return undefined;
554
- return readNameLiteral(init);
555
- }
556
- const shorthand = prop.asKind(SyntaxKind.ShorthandPropertyAssignment);
557
- if (shorthand)
558
- return readNameLiteral(shorthand.getNameNode());
559
- return undefined;
560
- }
561
541
  function findAiStepCall(sourceFile, id) {
562
542
  if (!isAiStepId(id))
563
543
  return undefined;
@@ -566,7 +546,7 @@ function findAiStepCall(sourceFile, id) {
566
546
  for (const call of sourceFile.getDescendantsOfKind(SyntaxKind.CallExpression)) {
567
547
  if (call.getExpression().getText() !== factory)
568
548
  continue;
569
- if (callMatchesId(call, id))
549
+ if (callMatchesId(call, id.kind, id))
570
550
  matches.push(call);
571
551
  }
572
552
  if (matches.length > 1) {
@@ -574,163 +554,6 @@ function findAiStepCall(sourceFile, id) {
574
554
  }
575
555
  return matches[0];
576
556
  }
577
- function callMatchesId(call, id) {
578
- switch (id.kind) {
579
- // Singletons: kind alone identifies the call.
580
- case "requires":
581
- case "optionalRequires":
582
- case "readsConfig":
583
- case "systemScope":
584
- case "toggleable":
585
- case "describe":
586
- case "uiHints":
587
- case "config":
588
- case "translations":
589
- case "authClaims":
590
- case "treeActions":
591
- return true;
592
- case "entity":
593
- return (matchFirstArgString(call, id.entityName) || matchObjectProperty(call, "name", id.entityName));
594
- case "relation":
595
- // Positional: r.relation(entity, name, def) | Object: { entity, name, ... }
596
- if (matchFirstArgString(call, id.entityName)) {
597
- return matchArgString(call, 1, id.relationName);
598
- }
599
- return (matchObjectProperty(call, "entity", id.entityName) &&
600
- matchObjectProperty(call, "name", id.relationName));
601
- case "nav":
602
- case "workspace":
603
- case "screen":
604
- return matchObjectProperty(call, "id", id.id);
605
- case "writeHandler":
606
- case "queryHandler":
607
- case "streamHandler":
608
- return (matchFirstArgString(call, id.handlerName) ||
609
- matchObjectProperty(call, "name", id.handlerName));
610
- case "hook":
611
- // Positional: r.hook(type, target, fn) | Object: { type, target }
612
- if (typeof id.target === "object") {
613
- // Entity-wide { allOf } target — only ever appears as the object
614
- // literal { allOf: entity } (positional or nested in the object
615
- // form), never as a bare string, so check both call shapes.
616
- if (matchFirstArgString(call, id.hookType)) {
617
- return matchAllOfArg(call.getArguments()[1], id.target.allOf);
618
- }
619
- return (matchObjectProperty(call, "type", id.hookType) &&
620
- matchObjectAllOfProperty(call, "target", id.target.allOf));
621
- }
622
- if (matchFirstArgString(call, id.hookType)) {
623
- return matchArgNameOrRef(call, 1, id.target);
624
- }
625
- return (matchObjectProperty(call, "type", id.hookType) &&
626
- matchObjectProperty(call, "target", id.target));
627
- case "metric":
628
- case "secret":
629
- case "secretNamespace":
630
- case "claimKey":
631
- return (matchFirstArgString(call, id.shortName) || matchObjectProperty(call, "name", id.shortName));
632
- case "referenceData":
633
- return (matchFirstArgString(call, id.entityName) ||
634
- matchObjectProperty(call, "entity", id.entityName));
635
- case "useExtension":
636
- // Positional: r.useExtension(name, entity) | Object: { name, entity }
637
- if (matchFirstArgString(call, id.extensionName)) {
638
- return matchArgNameOrRef(call, 1, id.entityName);
639
- }
640
- return (matchObjectProperty(call, "name", id.extensionName) &&
641
- matchObjectProperty(call, "entity", id.entityName));
642
- case "job":
643
- return matchFirstArgString(call, id.jobName) || matchObjectProperty(call, "name", id.jobName);
644
- case "notification":
645
- return (matchFirstArgString(call, id.notificationName) ||
646
- matchObjectProperty(call, "name", id.notificationName));
647
- case "httpRoute":
648
- // Object form only; positional doesn't apply.
649
- return (matchObjectProperty(call, "method", id.method) && matchObjectProperty(call, "path", id.path));
650
- case "projection":
651
- case "multiStreamProjection":
652
- return matchObjectProperty(call, "name", id.name);
653
- case "defineEvent":
654
- return (matchFirstArgString(call, id.eventName) || matchObjectProperty(call, "name", id.eventName));
655
- case "extendsRegistrar":
656
- return matchFirstArgString(call, id.extensionName);
657
- case "ai.generate":
658
- case "ai.extract":
659
- case "ai.classify":
660
- return readAiStepKey(call) === id.stepKey;
661
- default: {
662
- const _exhaustive = id;
663
- return _exhaustive;
664
- }
665
- }
666
- }
667
- // Resolves an argument the same way the extractors do (readNameLiteral):
668
- // a string literal directly, or a bare identifier following its
669
- // declaration (same-file or imported) to a string-literal initializer —
670
- // the dominant naming style in the framework's own bundled-features
671
- // (`r.entity(ENTITY, ...)`, `r.useExtension(EXT_X, ...)`).
672
- //
673
- // Narrow on purpose: every kind's arg-0 (and relation's arg-1) is parsed
674
- // via readNameLiteral, never readNameOrRef (see round2.ts/round3.ts) —
675
- // widening this shared helper to readNameOrRef would let an object-form
676
- // call's first argument (an ObjectLiteralExpression) match here too,
677
- // short-circuiting the object-form branch in callMatchesId. Positions
678
- // where the parser itself accepts an inline `{ name: "..." }` ref use
679
- // `matchArgNameOrRef` below instead.
680
- function matchArgString(call, index, expected) {
681
- const arg = call.getArguments()[index];
682
- if (!arg)
683
- return false;
684
- return readNameLiteral(arg) === expected;
685
- }
686
- // @wrapper-known semantic-alias
687
- function matchFirstArgString(call, expected) {
688
- return matchArgString(call, 0, expected);
689
- }
690
- // Like matchArgString, but via readNameOrRef — for the specific positional
691
- // slots where the parser accepts an inline `{ name: "..." }` object ref in
692
- // addition to a literal/identifier (useExtension's entity arg, hook's
693
- // target arg; see round3.ts:445 / hooks.ts:75). Not a drop-in replacement
694
- // for matchArgString: applying it to an arg-0 position would match an
695
- // object-form call's first (and only) argument, see the comment above.
696
- function matchArgNameOrRef(call, index, expected) {
697
- const arg = call.getArguments()[index];
698
- if (!arg)
699
- return false;
700
- return readNameOrRef(arg) === expected;
701
- }
702
- // Object-form property values are resolved via readNameOrRef, not the
703
- // narrower readNameLiteral — some properties (useExtension's `entity`,
704
- // hook's `target`/`allOf`) accept an inline `{ name: "..." }` ref in the
705
- // parser (see extractors/round3.ts, extractors/hooks.ts), not just a
706
- // literal or identifier. readNameOrRef is a superset of readNameLiteral,
707
- // so this is safe for every other property too.
708
- function matchObjectProperty(call, propName, expected) {
709
- const obj = call.getArguments()[0]?.asKind(SyntaxKind.ObjectLiteralExpression);
710
- if (!obj)
711
- return false;
712
- const init = obj.getProperty(propName)?.asKind(SyntaxKind.PropertyAssignment)?.getInitializer();
713
- if (!init)
714
- return false;
715
- return readNameOrRef(init) === expected;
716
- }
717
- // Matches an r.hook `{ allOf: entity }` target — as the arg node directly
718
- // (positional call form) or as a nested object property (object call form).
719
- function matchAllOfArg(node, expectedEntity) {
720
- const obj = node?.asKind(SyntaxKind.ObjectLiteralExpression);
721
- const init = obj?.getProperty("allOf")?.asKind(SyntaxKind.PropertyAssignment)?.getInitializer();
722
- if (!init)
723
- return false;
724
- return readNameOrRef(init) === expectedEntity;
725
- }
726
- function matchObjectAllOfProperty(call, propName, expectedEntity) {
727
- const obj = call.getArguments()[0]?.asKind(SyntaxKind.ObjectLiteralExpression);
728
- const propInit = obj
729
- ?.getProperty(propName)
730
- ?.asKind(SyntaxKind.PropertyAssignment)
731
- ?.getInitializer();
732
- return matchAllOfArg(propInit, expectedEntity);
733
- }
734
557
  // =============================================================================
735
558
  // Format helpers — line boundaries / blank-line collapse
736
559
  // (indent / PATTERN_INDENT live in render.ts and are imported above.)
@@ -7,6 +7,7 @@ import type { RelationDefinition } from "../types/relations.ts";
7
7
  import type { ScreenDefinition } from "../types/screen.ts";
8
8
  import type { TreeActionDef } from "../types/tree-node.ts";
9
9
  import type { WorkspaceDefinition } from "../types/workspace.ts";
10
+ import type { RawRefSentinel } from "./extractors/shared.ts";
10
11
  import type { PatternChange } from "./patch.ts";
11
12
  import type { SourceLocation } from "./source-location.ts";
12
13
  export type PatternChangeIssue = {
@@ -26,6 +27,7 @@ export declare const PATTERN_SCHEMAS_BY_KIND: {
26
27
  source: z.ZodType<SourceLocation, unknown, z.core.$ZodTypeInternals<SourceLocation, unknown>>;
27
28
  entityName: z.ZodString;
28
29
  definition: z.ZodType<EntityDefinition, unknown, z.core.$ZodTypeInternals<EntityDefinition, unknown>>;
30
+ backingTable: z.ZodOptional<z.ZodType<RawRefSentinel, unknown, z.core.$ZodTypeInternals<RawRefSentinel, unknown>>>;
29
31
  }, z.core.$strict>;
30
32
  relation: z.ZodObject<{
31
33
  kind: z.ZodLiteral<"relation">;
@@ -82,6 +84,10 @@ export declare const PATTERN_SCHEMAS_BY_KIND: {
82
84
  kind: z.ZodLiteral<"uiHints">;
83
85
  source: z.ZodType<SourceLocation, unknown, z.core.$ZodTypeInternals<SourceLocation, unknown>>;
84
86
  }, z.core.$strict>;
87
+ adoptsBundledLists: z.ZodObject<{
88
+ kind: z.ZodLiteral<"adoptsBundledLists">;
89
+ source: z.ZodType<SourceLocation, unknown, z.core.$ZodTypeInternals<SourceLocation, unknown>>;
90
+ }, z.core.$strict>;
85
91
  metric: z.ZodObject<{
86
92
  kind: z.ZodLiteral<"metric">;
87
93
  source: z.ZodType<SourceLocation, unknown, z.core.$ZodTypeInternals<SourceLocation, unknown>>;
@@ -648,6 +654,7 @@ export declare const patternSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
648
654
  source: z.ZodType<SourceLocation, unknown, z.core.$ZodTypeInternals<SourceLocation, unknown>>;
649
655
  entityName: z.ZodString;
650
656
  definition: z.ZodType<EntityDefinition, unknown, z.core.$ZodTypeInternals<EntityDefinition, unknown>>;
657
+ backingTable: z.ZodOptional<z.ZodType<RawRefSentinel, unknown, z.core.$ZodTypeInternals<RawRefSentinel, unknown>>>;
651
658
  }, z.core.$strict>, z.ZodObject<{
652
659
  kind: z.ZodLiteral<"relation">;
653
660
  source: z.ZodType<SourceLocation, unknown, z.core.$ZodTypeInternals<SourceLocation, unknown>>;
@@ -692,6 +699,9 @@ export declare const patternSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
692
699
  }, z.core.$strict>, z.ZodObject<{
693
700
  kind: z.ZodLiteral<"uiHints">;
694
701
  source: z.ZodType<SourceLocation, unknown, z.core.$ZodTypeInternals<SourceLocation, unknown>>;
702
+ }, z.core.$strict>, z.ZodObject<{
703
+ kind: z.ZodLiteral<"adoptsBundledLists">;
704
+ source: z.ZodType<SourceLocation, unknown, z.core.$ZodTypeInternals<SourceLocation, unknown>>;
695
705
  }, z.core.$strict>, z.ZodObject<{
696
706
  kind: z.ZodLiteral<"metric">;
697
707
  source: z.ZodType<SourceLocation, unknown, z.core.$ZodTypeInternals<SourceLocation, unknown>>;
@@ -1225,249 +1235,4 @@ export declare const patternSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1225
1235
  source: z.ZodType<SourceLocation, unknown, z.core.$ZodTypeInternals<SourceLocation, unknown>>;
1226
1236
  methodName: z.ZodString;
1227
1237
  }, z.core.$strict>], "kind">;
1228
- export declare const PATTERN_ID_SCHEMAS_BY_KIND: {
1229
- entity: z.ZodObject<{
1230
- kind: z.ZodLiteral<"entity">;
1231
- entityName: z.ZodString;
1232
- }, z.core.$strict>;
1233
- relation: z.ZodObject<{
1234
- kind: z.ZodLiteral<"relation">;
1235
- entityName: z.ZodString;
1236
- relationName: z.ZodString;
1237
- }, z.core.$strict>;
1238
- nav: z.ZodObject<{
1239
- kind: z.ZodLiteral<"nav">;
1240
- id: z.ZodString;
1241
- }, z.core.$strict>;
1242
- workspace: z.ZodObject<{
1243
- kind: z.ZodLiteral<"workspace">;
1244
- id: z.ZodString;
1245
- }, z.core.$strict>;
1246
- screen: z.ZodObject<{
1247
- kind: z.ZodLiteral<"screen">;
1248
- id: z.ZodString;
1249
- }, z.core.$strict>;
1250
- writeHandler: z.ZodObject<{
1251
- kind: z.ZodLiteral<"writeHandler">;
1252
- handlerName: z.ZodString;
1253
- }, z.core.$strict>;
1254
- queryHandler: z.ZodObject<{
1255
- kind: z.ZodLiteral<"queryHandler">;
1256
- handlerName: z.ZodString;
1257
- }, z.core.$strict>;
1258
- streamHandler: z.ZodObject<{
1259
- kind: z.ZodLiteral<"streamHandler">;
1260
- handlerName: z.ZodString;
1261
- }, z.core.$strict>;
1262
- hook: z.ZodObject<{
1263
- kind: z.ZodLiteral<"hook">;
1264
- hookType: z.ZodString;
1265
- target: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1266
- allOf: z.ZodString;
1267
- }, z.core.$strict>]>;
1268
- }, z.core.$strict>;
1269
- metric: z.ZodObject<{
1270
- kind: z.ZodLiteral<"metric">;
1271
- shortName: z.ZodString;
1272
- }, z.core.$strict>;
1273
- secret: z.ZodObject<{
1274
- kind: z.ZodLiteral<"secret">;
1275
- shortName: z.ZodString;
1276
- }, z.core.$strict>;
1277
- secretNamespace: z.ZodObject<{
1278
- kind: z.ZodLiteral<"secretNamespace">;
1279
- shortName: z.ZodString;
1280
- }, z.core.$strict>;
1281
- claimKey: z.ZodObject<{
1282
- kind: z.ZodLiteral<"claimKey">;
1283
- shortName: z.ZodString;
1284
- }, z.core.$strict>;
1285
- referenceData: z.ZodObject<{
1286
- kind: z.ZodLiteral<"referenceData">;
1287
- entityName: z.ZodString;
1288
- }, z.core.$strict>;
1289
- useExtension: z.ZodObject<{
1290
- kind: z.ZodLiteral<"useExtension">;
1291
- extensionName: z.ZodString;
1292
- entityName: z.ZodString;
1293
- }, z.core.$strict>;
1294
- job: z.ZodObject<{
1295
- kind: z.ZodLiteral<"job">;
1296
- jobName: z.ZodString;
1297
- }, z.core.$strict>;
1298
- notification: z.ZodObject<{
1299
- kind: z.ZodLiteral<"notification">;
1300
- notificationName: z.ZodString;
1301
- }, z.core.$strict>;
1302
- httpRoute: z.ZodObject<{
1303
- kind: z.ZodLiteral<"httpRoute">;
1304
- method: z.ZodString;
1305
- path: z.ZodString;
1306
- }, z.core.$strict>;
1307
- projection: z.ZodObject<{
1308
- kind: z.ZodLiteral<"projection">;
1309
- name: z.ZodString;
1310
- }, z.core.$strict>;
1311
- multiStreamProjection: z.ZodObject<{
1312
- kind: z.ZodLiteral<"multiStreamProjection">;
1313
- name: z.ZodString;
1314
- }, z.core.$strict>;
1315
- defineEvent: z.ZodObject<{
1316
- kind: z.ZodLiteral<"defineEvent">;
1317
- eventName: z.ZodString;
1318
- }, z.core.$strict>;
1319
- extendsRegistrar: z.ZodObject<{
1320
- kind: z.ZodLiteral<"extendsRegistrar">;
1321
- extensionName: z.ZodString;
1322
- }, z.core.$strict>;
1323
- "ai.generate": z.ZodObject<{
1324
- kind: z.ZodLiteral<"ai.generate">;
1325
- stepKey: z.ZodString;
1326
- }, z.core.$strict>;
1327
- "ai.extract": z.ZodObject<{
1328
- kind: z.ZodLiteral<"ai.extract">;
1329
- stepKey: z.ZodString;
1330
- }, z.core.$strict>;
1331
- "ai.classify": z.ZodObject<{
1332
- kind: z.ZodLiteral<"ai.classify">;
1333
- stepKey: z.ZodString;
1334
- }, z.core.$strict>;
1335
- requires: z.ZodObject<{
1336
- kind: z.ZodLiteral<"requires">;
1337
- }, z.core.$strict>;
1338
- optionalRequires: z.ZodObject<{
1339
- kind: z.ZodLiteral<"optionalRequires">;
1340
- }, z.core.$strict>;
1341
- readsConfig: z.ZodObject<{
1342
- kind: z.ZodLiteral<"readsConfig">;
1343
- }, z.core.$strict>;
1344
- systemScope: z.ZodObject<{
1345
- kind: z.ZodLiteral<"systemScope">;
1346
- }, z.core.$strict>;
1347
- toggleable: z.ZodObject<{
1348
- kind: z.ZodLiteral<"toggleable">;
1349
- }, z.core.$strict>;
1350
- describe: z.ZodObject<{
1351
- kind: z.ZodLiteral<"describe">;
1352
- }, z.core.$strict>;
1353
- uiHints: z.ZodObject<{
1354
- kind: z.ZodLiteral<"uiHints">;
1355
- }, z.core.$strict>;
1356
- config: z.ZodObject<{
1357
- kind: z.ZodLiteral<"config">;
1358
- }, z.core.$strict>;
1359
- translations: z.ZodObject<{
1360
- kind: z.ZodLiteral<"translations">;
1361
- }, z.core.$strict>;
1362
- authClaims: z.ZodObject<{
1363
- kind: z.ZodLiteral<"authClaims">;
1364
- }, z.core.$strict>;
1365
- treeActions: z.ZodObject<{
1366
- kind: z.ZodLiteral<"treeActions">;
1367
- }, z.core.$strict>;
1368
- };
1369
- export declare const patternIdSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1370
- kind: z.ZodLiteral<"entity">;
1371
- entityName: z.ZodString;
1372
- }, z.core.$strict>, z.ZodObject<{
1373
- kind: z.ZodLiteral<"relation">;
1374
- entityName: z.ZodString;
1375
- relationName: z.ZodString;
1376
- }, z.core.$strict>, z.ZodObject<{
1377
- kind: z.ZodLiteral<"nav">;
1378
- id: z.ZodString;
1379
- }, z.core.$strict>, z.ZodObject<{
1380
- kind: z.ZodLiteral<"workspace">;
1381
- id: z.ZodString;
1382
- }, z.core.$strict>, z.ZodObject<{
1383
- kind: z.ZodLiteral<"screen">;
1384
- id: z.ZodString;
1385
- }, z.core.$strict>, z.ZodObject<{
1386
- kind: z.ZodLiteral<"writeHandler">;
1387
- handlerName: z.ZodString;
1388
- }, z.core.$strict>, z.ZodObject<{
1389
- kind: z.ZodLiteral<"queryHandler">;
1390
- handlerName: z.ZodString;
1391
- }, z.core.$strict>, z.ZodObject<{
1392
- kind: z.ZodLiteral<"streamHandler">;
1393
- handlerName: z.ZodString;
1394
- }, z.core.$strict>, z.ZodObject<{
1395
- kind: z.ZodLiteral<"hook">;
1396
- hookType: z.ZodString;
1397
- target: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1398
- allOf: z.ZodString;
1399
- }, z.core.$strict>]>;
1400
- }, z.core.$strict>, z.ZodObject<{
1401
- kind: z.ZodLiteral<"metric">;
1402
- shortName: z.ZodString;
1403
- }, z.core.$strict>, z.ZodObject<{
1404
- kind: z.ZodLiteral<"secret">;
1405
- shortName: z.ZodString;
1406
- }, z.core.$strict>, z.ZodObject<{
1407
- kind: z.ZodLiteral<"secretNamespace">;
1408
- shortName: z.ZodString;
1409
- }, z.core.$strict>, z.ZodObject<{
1410
- kind: z.ZodLiteral<"claimKey">;
1411
- shortName: z.ZodString;
1412
- }, z.core.$strict>, z.ZodObject<{
1413
- kind: z.ZodLiteral<"referenceData">;
1414
- entityName: z.ZodString;
1415
- }, z.core.$strict>, z.ZodObject<{
1416
- kind: z.ZodLiteral<"useExtension">;
1417
- extensionName: z.ZodString;
1418
- entityName: z.ZodString;
1419
- }, z.core.$strict>, z.ZodObject<{
1420
- kind: z.ZodLiteral<"job">;
1421
- jobName: z.ZodString;
1422
- }, z.core.$strict>, z.ZodObject<{
1423
- kind: z.ZodLiteral<"notification">;
1424
- notificationName: z.ZodString;
1425
- }, z.core.$strict>, z.ZodObject<{
1426
- kind: z.ZodLiteral<"httpRoute">;
1427
- method: z.ZodString;
1428
- path: z.ZodString;
1429
- }, z.core.$strict>, z.ZodObject<{
1430
- kind: z.ZodLiteral<"projection">;
1431
- name: z.ZodString;
1432
- }, z.core.$strict>, z.ZodObject<{
1433
- kind: z.ZodLiteral<"multiStreamProjection">;
1434
- name: z.ZodString;
1435
- }, z.core.$strict>, z.ZodObject<{
1436
- kind: z.ZodLiteral<"defineEvent">;
1437
- eventName: z.ZodString;
1438
- }, z.core.$strict>, z.ZodObject<{
1439
- kind: z.ZodLiteral<"extendsRegistrar">;
1440
- extensionName: z.ZodString;
1441
- }, z.core.$strict>, z.ZodObject<{
1442
- kind: z.ZodLiteral<"ai.generate">;
1443
- stepKey: z.ZodString;
1444
- }, z.core.$strict>, z.ZodObject<{
1445
- kind: z.ZodLiteral<"ai.extract">;
1446
- stepKey: z.ZodString;
1447
- }, z.core.$strict>, z.ZodObject<{
1448
- kind: z.ZodLiteral<"ai.classify">;
1449
- stepKey: z.ZodString;
1450
- }, z.core.$strict>, z.ZodObject<{
1451
- kind: z.ZodLiteral<"requires">;
1452
- }, z.core.$strict>, z.ZodObject<{
1453
- kind: z.ZodLiteral<"optionalRequires">;
1454
- }, z.core.$strict>, z.ZodObject<{
1455
- kind: z.ZodLiteral<"readsConfig">;
1456
- }, z.core.$strict>, z.ZodObject<{
1457
- kind: z.ZodLiteral<"systemScope">;
1458
- }, z.core.$strict>, z.ZodObject<{
1459
- kind: z.ZodLiteral<"toggleable">;
1460
- }, z.core.$strict>, z.ZodObject<{
1461
- kind: z.ZodLiteral<"describe">;
1462
- }, z.core.$strict>, z.ZodObject<{
1463
- kind: z.ZodLiteral<"uiHints">;
1464
- }, z.core.$strict>, z.ZodObject<{
1465
- kind: z.ZodLiteral<"config">;
1466
- }, z.core.$strict>, z.ZodObject<{
1467
- kind: z.ZodLiteral<"translations">;
1468
- }, z.core.$strict>, z.ZodObject<{
1469
- kind: z.ZodLiteral<"authClaims">;
1470
- }, z.core.$strict>, z.ZodObject<{
1471
- kind: z.ZodLiteral<"treeActions">;
1472
- }, z.core.$strict>], "kind">;
1473
1238
  export declare function parsePatternChanges(input: unknown): PatternChangesParseResult;