@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
@@ -28,6 +28,7 @@ import { describeUnknownFieldType, findUnknownEntityFieldTypes } from "./entity-
28
28
  import { AGENT_RISK_VALUES } from "./extractors/handlers.js";
29
29
  import { isPlainObject, isRawRefSentinel } from "./extractors/shared.js";
30
30
  import { SYNTHETIC_LOC } from "./patcher.js";
31
+ import { patternIdSchema } from "./pattern-id-schema.js";
31
32
  // Derives an exhaustive literal-value array from a `Record<T, true>` flag
32
33
  // map: an added/removed union member fails to compile here instead of
33
34
  // silently producing a schema narrower than the runtime type — same
@@ -332,6 +333,7 @@ const entitySchema = z
332
333
  source: sourceFieldSchema,
333
334
  entityName: z.string(),
334
335
  definition: entityDefinitionSchema,
336
+ backingTable: passthroughSchema().optional(),
335
337
  })
336
338
  .strict();
337
339
  const relationSchema = z
@@ -405,6 +407,12 @@ const describeSchema = z
405
407
  text: z.string().refine((s) => s.trim().length > 0, { message: "text must be non-empty" }),
406
408
  })
407
409
  .strict();
410
+ const adoptsBundledListsSchema = z
411
+ .object({
412
+ kind: z.literal("adoptsBundledLists"),
413
+ source: sourceFieldSchema,
414
+ })
415
+ .strict();
408
416
  const uiHintsSchema = z
409
417
  .object({
410
418
  kind: z.literal("uiHints"),
@@ -727,6 +735,7 @@ export const PATTERN_SCHEMAS_BY_KIND = {
727
735
  toggleable: toggleableSchema,
728
736
  describe: describeSchema,
729
737
  uiHints: uiHintsSchema,
738
+ adoptsBundledLists: adoptsBundledListsSchema,
730
739
  metric: metricSchema,
731
740
  secret: secretSchema,
732
741
  secretNamespace: secretNamespaceSchema,
@@ -769,6 +778,7 @@ export const patternSchema = z.discriminatedUnion("kind", [
769
778
  toggleableSchema,
770
779
  describeSchema,
771
780
  uiHintsSchema,
781
+ adoptsBundledListsSchema,
772
782
  metricSchema,
773
783
  secretSchema,
774
784
  secretNamespaceSchema,
@@ -799,169 +809,6 @@ export const patternSchema = z.discriminatedUnion("kind", [
799
809
  unknownPatternSchema,
800
810
  ]);
801
811
  // =============================================================================
802
- // PatternId union
803
- // =============================================================================
804
- const patternIdEntitySchema = z
805
- .object({ kind: z.literal("entity"), entityName: z.string() })
806
- .strict();
807
- const patternIdRelationSchema = z
808
- .object({ kind: z.literal("relation"), entityName: z.string(), relationName: z.string() })
809
- .strict();
810
- const patternIdNavSchema = z.object({ kind: z.literal("nav"), id: z.string() }).strict();
811
- const patternIdWorkspaceSchema = z
812
- .object({ kind: z.literal("workspace"), id: z.string() })
813
- .strict();
814
- const patternIdScreenSchema = z.object({ kind: z.literal("screen"), id: z.string() }).strict();
815
- const patternIdWriteHandlerSchema = z
816
- .object({ kind: z.literal("writeHandler"), handlerName: z.string() })
817
- .strict();
818
- const patternIdQueryHandlerSchema = z
819
- .object({ kind: z.literal("queryHandler"), handlerName: z.string() })
820
- .strict();
821
- const patternIdStreamHandlerSchema = z
822
- .object({ kind: z.literal("streamHandler"), handlerName: z.string() })
823
- .strict();
824
- const patternIdHookSchema = z
825
- .object({
826
- kind: z.literal("hook"),
827
- hookType: z.string(),
828
- target: z.union([z.string(), z.object({ allOf: z.string() }).strict()]),
829
- })
830
- .strict();
831
- const patternIdMetricSchema = z
832
- .object({ kind: z.literal("metric"), shortName: z.string() })
833
- .strict();
834
- const patternIdSecretSchema = z
835
- .object({ kind: z.literal("secret"), shortName: z.string() })
836
- .strict();
837
- const patternIdSecretNamespaceSchema = z
838
- .object({ kind: z.literal("secretNamespace"), shortName: z.string() })
839
- .strict();
840
- const patternIdClaimKeySchema = z
841
- .object({ kind: z.literal("claimKey"), shortName: z.string() })
842
- .strict();
843
- const patternIdReferenceDataSchema = z
844
- .object({ kind: z.literal("referenceData"), entityName: z.string() })
845
- .strict();
846
- const patternIdUseExtensionSchema = z
847
- .object({ kind: z.literal("useExtension"), extensionName: z.string(), entityName: z.string() })
848
- .strict();
849
- const patternIdJobSchema = z.object({ kind: z.literal("job"), jobName: z.string() }).strict();
850
- const patternIdNotificationSchema = z
851
- .object({ kind: z.literal("notification"), notificationName: z.string() })
852
- .strict();
853
- const patternIdHttpRouteSchema = z
854
- .object({ kind: z.literal("httpRoute"), method: z.string(), path: z.string() })
855
- .strict();
856
- const patternIdProjectionSchema = z
857
- .object({ kind: z.literal("projection"), name: z.string() })
858
- .strict();
859
- const patternIdMultiStreamProjectionSchema = z
860
- .object({ kind: z.literal("multiStreamProjection"), name: z.string() })
861
- .strict();
862
- const patternIdDefineEventSchema = z
863
- .object({ kind: z.literal("defineEvent"), eventName: z.string() })
864
- .strict();
865
- const patternIdExtendsRegistrarSchema = z
866
- .object({ kind: z.literal("extendsRegistrar"), extensionName: z.string() })
867
- .strict();
868
- const patternIdAiGenerateSchema = z
869
- .object({ kind: z.literal("ai.generate"), stepKey: z.string() })
870
- .strict();
871
- const patternIdAiExtractSchema = z
872
- .object({ kind: z.literal("ai.extract"), stepKey: z.string() })
873
- .strict();
874
- const patternIdAiClassifySchema = z
875
- .object({ kind: z.literal("ai.classify"), stepKey: z.string() })
876
- .strict();
877
- const patternIdRequiresSchema = z.object({ kind: z.literal("requires") }).strict();
878
- const patternIdOptionalRequiresSchema = z.object({ kind: z.literal("optionalRequires") }).strict();
879
- const patternIdReadsConfigSchema = z.object({ kind: z.literal("readsConfig") }).strict();
880
- const patternIdSystemScopeSchema = z.object({ kind: z.literal("systemScope") }).strict();
881
- const patternIdToggleableSchema = z.object({ kind: z.literal("toggleable") }).strict();
882
- const patternIdDescribeSchema = z.object({ kind: z.literal("describe") }).strict();
883
- const patternIdUiHintsSchema = z.object({ kind: z.literal("uiHints") }).strict();
884
- const patternIdConfigSchema = z.object({ kind: z.literal("config") }).strict();
885
- const patternIdTranslationsSchema = z.object({ kind: z.literal("translations") }).strict();
886
- const patternIdAuthClaimsSchema = z.object({ kind: z.literal("authClaims") }).strict();
887
- const patternIdTreeActionsSchema = z.object({ kind: z.literal("treeActions") }).strict();
888
- export const PATTERN_ID_SCHEMAS_BY_KIND = {
889
- entity: patternIdEntitySchema,
890
- relation: patternIdRelationSchema,
891
- nav: patternIdNavSchema,
892
- workspace: patternIdWorkspaceSchema,
893
- screen: patternIdScreenSchema,
894
- writeHandler: patternIdWriteHandlerSchema,
895
- queryHandler: patternIdQueryHandlerSchema,
896
- streamHandler: patternIdStreamHandlerSchema,
897
- hook: patternIdHookSchema,
898
- metric: patternIdMetricSchema,
899
- secret: patternIdSecretSchema,
900
- secretNamespace: patternIdSecretNamespaceSchema,
901
- claimKey: patternIdClaimKeySchema,
902
- referenceData: patternIdReferenceDataSchema,
903
- useExtension: patternIdUseExtensionSchema,
904
- job: patternIdJobSchema,
905
- notification: patternIdNotificationSchema,
906
- httpRoute: patternIdHttpRouteSchema,
907
- projection: patternIdProjectionSchema,
908
- multiStreamProjection: patternIdMultiStreamProjectionSchema,
909
- defineEvent: patternIdDefineEventSchema,
910
- extendsRegistrar: patternIdExtendsRegistrarSchema,
911
- "ai.generate": patternIdAiGenerateSchema,
912
- "ai.extract": patternIdAiExtractSchema,
913
- "ai.classify": patternIdAiClassifySchema,
914
- requires: patternIdRequiresSchema,
915
- optionalRequires: patternIdOptionalRequiresSchema,
916
- readsConfig: patternIdReadsConfigSchema,
917
- systemScope: patternIdSystemScopeSchema,
918
- toggleable: patternIdToggleableSchema,
919
- describe: patternIdDescribeSchema,
920
- uiHints: patternIdUiHintsSchema,
921
- config: patternIdConfigSchema,
922
- translations: patternIdTranslationsSchema,
923
- authClaims: patternIdAuthClaimsSchema,
924
- treeActions: patternIdTreeActionsSchema,
925
- };
926
- export const patternIdSchema = z.discriminatedUnion("kind", [
927
- patternIdEntitySchema,
928
- patternIdRelationSchema,
929
- patternIdNavSchema,
930
- patternIdWorkspaceSchema,
931
- patternIdScreenSchema,
932
- patternIdWriteHandlerSchema,
933
- patternIdQueryHandlerSchema,
934
- patternIdStreamHandlerSchema,
935
- patternIdHookSchema,
936
- patternIdMetricSchema,
937
- patternIdSecretSchema,
938
- patternIdSecretNamespaceSchema,
939
- patternIdClaimKeySchema,
940
- patternIdReferenceDataSchema,
941
- patternIdUseExtensionSchema,
942
- patternIdJobSchema,
943
- patternIdNotificationSchema,
944
- patternIdHttpRouteSchema,
945
- patternIdProjectionSchema,
946
- patternIdMultiStreamProjectionSchema,
947
- patternIdDefineEventSchema,
948
- patternIdExtendsRegistrarSchema,
949
- patternIdAiGenerateSchema,
950
- patternIdAiExtractSchema,
951
- patternIdAiClassifySchema,
952
- patternIdRequiresSchema,
953
- patternIdOptionalRequiresSchema,
954
- patternIdReadsConfigSchema,
955
- patternIdSystemScopeSchema,
956
- patternIdToggleableSchema,
957
- patternIdDescribeSchema,
958
- patternIdUiHintsSchema,
959
- patternIdConfigSchema,
960
- patternIdTranslationsSchema,
961
- patternIdAuthClaimsSchema,
962
- patternIdTreeActionsSchema,
963
- ]);
964
- // =============================================================================
965
812
  // Change union — `rationale` is accepted (optional, on every member) and
966
813
  // dropped when the final PatternChange is assembled below (plain field
967
814
  // selection, not a schema-level transform — see file-header rationale).
@@ -0,0 +1,7 @@
1
+ import { type CallExpression } from "ts-morph";
2
+ import type { PatternId } from "./patch.ts";
3
+ import type { MembersByKind } from "./patterns.ts";
4
+ type PatternIdKind = PatternId["kind"];
5
+ type PatternIdOfKind = MembersByKind<PatternId>;
6
+ export declare function callMatchesId<K extends PatternIdKind>(call: CallExpression, kind: K, id: PatternIdOfKind[K]): boolean;
7
+ export {};
@@ -0,0 +1,211 @@
1
+ import { SyntaxKind } from "ts-morph";
2
+ import { readNameLiteral, readNameOrRef, resolveSameFileObjectLiteral, } from "./extractors/shared.js";
3
+ const PATTERN_ID_MATCHERS = {
4
+ requires: matchSingletonCall,
5
+ optionalRequires: matchSingletonCall,
6
+ readsConfig: matchSingletonCall,
7
+ systemScope: matchSingletonCall,
8
+ toggleable: matchSingletonCall,
9
+ describe: matchSingletonCall,
10
+ uiHints: matchSingletonCall,
11
+ adoptsBundledLists: matchSingletonCall,
12
+ config: matchSingletonCall,
13
+ translations: matchSingletonCall,
14
+ authClaims: matchSingletonCall,
15
+ treeActions: matchSingletonCall,
16
+ entity: matchEntityCall,
17
+ relation: matchRelationCall,
18
+ nav: matchIdPropertyCall,
19
+ workspace: matchIdPropertyCall,
20
+ screen: matchIdPropertyCall,
21
+ writeHandler: matchHandlerCall,
22
+ queryHandler: matchHandlerCall,
23
+ streamHandler: matchHandlerCall,
24
+ hook: matchHookCall,
25
+ metric: matchShortNameCall,
26
+ secret: matchShortNameCall,
27
+ secretNamespace: matchShortNameCall,
28
+ claimKey: matchShortNameCall,
29
+ referenceData: matchReferenceDataCall,
30
+ useExtension: matchUseExtensionCall,
31
+ job: matchJobCall,
32
+ notification: matchNotificationCall,
33
+ httpRoute: matchHttpRouteCall,
34
+ projection: matchProjectionCall,
35
+ multiStreamProjection: matchProjectionCall,
36
+ defineEvent: matchDefineEventCall,
37
+ extendsRegistrar: matchExtendsRegistrarCall,
38
+ "ai.generate": matchAiStepCall,
39
+ "ai.extract": matchAiStepCall,
40
+ "ai.classify": matchAiStepCall,
41
+ };
42
+ export function callMatchesId(call, kind, id) {
43
+ return PATTERN_ID_MATCHERS[kind](call, id);
44
+ }
45
+ // Singletons: kind alone identifies the call.
46
+ function matchSingletonCall() {
47
+ return true;
48
+ }
49
+ function matchEntityCall(call, id) {
50
+ return (matchFirstArgString(call, id.entityName) || matchObjectProperty(call, "name", id.entityName));
51
+ }
52
+ // Positional: r.relation(entity, name, def) | Object: { entity, name, ... }
53
+ function matchRelationCall(call, id) {
54
+ if (matchFirstArgString(call, id.entityName)) {
55
+ return matchArgString(call, 1, id.relationName);
56
+ }
57
+ return (matchObjectProperty(call, "entity", id.entityName) &&
58
+ matchObjectProperty(call, "name", id.relationName));
59
+ }
60
+ function matchIdPropertyCall(call, id) {
61
+ return matchObjectProperty(call, "id", id.id);
62
+ }
63
+ function matchHandlerCall(call, id) {
64
+ return (matchFirstArgString(call, id.handlerName) || matchObjectProperty(call, "name", id.handlerName));
65
+ }
66
+ // Positional: r.hook(type, target, fn) | Object: { type, target }
67
+ function matchHookCall(call, id) {
68
+ if (typeof id.target === "object") {
69
+ return matchHookAllOfCall(call, id.hookType, id.target.allOf);
70
+ }
71
+ if (matchFirstArgString(call, id.hookType)) {
72
+ return matchArgNameOrRef(call, 1, id.target);
73
+ }
74
+ return (matchObjectProperty(call, "type", id.hookType) && matchObjectProperty(call, "target", id.target));
75
+ }
76
+ // Entity-wide { allOf } target — only ever appears as the object
77
+ // literal { allOf: entity } (positional or nested in the object
78
+ // form), never as a bare string, so check both call shapes.
79
+ function matchHookAllOfCall(call, hookType, allOfEntity) {
80
+ if (matchFirstArgString(call, hookType)) {
81
+ return matchAllOfArg(call.getArguments()[1], allOfEntity);
82
+ }
83
+ return (matchObjectProperty(call, "type", hookType) &&
84
+ matchObjectAllOfProperty(call, "target", allOfEntity));
85
+ }
86
+ function matchShortNameCall(call, id) {
87
+ return matchFirstArgString(call, id.shortName) || matchObjectProperty(call, "name", id.shortName);
88
+ }
89
+ function matchReferenceDataCall(call, id) {
90
+ return (matchFirstArgString(call, id.entityName) || matchObjectProperty(call, "entity", id.entityName));
91
+ }
92
+ // Positional: r.useExtension(name, entity) | Object: { name, entity }
93
+ function matchUseExtensionCall(call, id) {
94
+ if (matchFirstArgString(call, id.extensionName)) {
95
+ return matchArgNameOrRef(call, 1, id.entityName);
96
+ }
97
+ return (matchObjectProperty(call, "name", id.extensionName) &&
98
+ matchObjectProperty(call, "entity", id.entityName));
99
+ }
100
+ function matchJobCall(call, id) {
101
+ return matchFirstArgString(call, id.jobName) || matchObjectProperty(call, "name", id.jobName);
102
+ }
103
+ function matchNotificationCall(call, id) {
104
+ return (matchFirstArgString(call, id.notificationName) ||
105
+ matchObjectProperty(call, "name", id.notificationName));
106
+ }
107
+ // Object form only; positional doesn't apply.
108
+ function matchHttpRouteCall(call, id) {
109
+ return (matchObjectProperty(call, "method", id.method) && matchObjectProperty(call, "path", id.path));
110
+ }
111
+ function matchProjectionCall(call, id) {
112
+ return matchObjectProperty(call, "name", id.name);
113
+ }
114
+ function matchDefineEventCall(call, id) {
115
+ return matchFirstArgString(call, id.eventName) || matchObjectProperty(call, "name", id.eventName);
116
+ }
117
+ function matchExtendsRegistrarCall(call, id) {
118
+ return matchFirstArgString(call, id.extensionName);
119
+ }
120
+ function matchAiStepCall(call, id) {
121
+ return readAiStepKey(call) === id.stepKey;
122
+ }
123
+ function readAiStepKey(call) {
124
+ const arg = call.getArguments()[0];
125
+ if (!arg)
126
+ return undefined;
127
+ const obj = resolveSameFileObjectLiteral(arg);
128
+ if (!obj)
129
+ return undefined;
130
+ const prop = obj.getProperty("stepKey");
131
+ if (!prop)
132
+ return undefined;
133
+ const assign = prop.asKind(SyntaxKind.PropertyAssignment);
134
+ if (assign) {
135
+ const init = assign.getInitializer();
136
+ if (!init)
137
+ return undefined;
138
+ return readNameLiteral(init);
139
+ }
140
+ const shorthand = prop.asKind(SyntaxKind.ShorthandPropertyAssignment);
141
+ if (shorthand)
142
+ return readNameLiteral(shorthand.getNameNode());
143
+ return undefined;
144
+ }
145
+ // Resolves an argument the same way the extractors do (readNameLiteral):
146
+ // a string literal directly, or a bare identifier following its
147
+ // declaration (same-file or imported) to a string-literal initializer —
148
+ // the dominant naming style in the framework's own bundled-features
149
+ // (`r.entity(ENTITY, ...)`, `r.useExtension(EXT_X, ...)`).
150
+ //
151
+ // Narrow on purpose: every kind's arg-0 (and relation's arg-1) is parsed
152
+ // via readNameLiteral, never readNameOrRef (see round2.ts/round3.ts) —
153
+ // widening this shared helper to readNameOrRef would let an object-form
154
+ // call's first argument (an ObjectLiteralExpression) match here too,
155
+ // short-circuiting the object-form branch in callMatchesId. Positions
156
+ // where the parser itself accepts an inline `{ name: "..." }` ref use
157
+ // `matchArgNameOrRef` below instead.
158
+ function matchArgString(call, index, expected) {
159
+ const arg = call.getArguments()[index];
160
+ if (!arg)
161
+ return false;
162
+ return readNameLiteral(arg) === expected;
163
+ }
164
+ // @wrapper-known semantic-alias
165
+ function matchFirstArgString(call, expected) {
166
+ return matchArgString(call, 0, expected);
167
+ }
168
+ // Like matchArgString, but via readNameOrRef — for the specific positional
169
+ // slots where the parser accepts an inline `{ name: "..." }` object ref in
170
+ // addition to a literal/identifier (useExtension's entity arg, hook's
171
+ // target arg; see round3.ts:445 / hooks.ts:75). Not a drop-in replacement
172
+ // for matchArgString: applying it to an arg-0 position would match an
173
+ // object-form call's first (and only) argument, see the comment above.
174
+ function matchArgNameOrRef(call, index, expected) {
175
+ const arg = call.getArguments()[index];
176
+ if (!arg)
177
+ return false;
178
+ return readNameOrRef(arg) === expected;
179
+ }
180
+ // Object-form property values are resolved via readNameOrRef, not the
181
+ // narrower readNameLiteral — some properties (useExtension's `entity`,
182
+ // hook's `target`/`allOf`) accept an inline `{ name: "..." }` ref in the
183
+ // parser (see extractors/round3.ts, extractors/hooks.ts), not just a
184
+ // literal or identifier. readNameOrRef is a superset of readNameLiteral,
185
+ // so this is safe for every other property too.
186
+ function matchObjectProperty(call, propName, expected) {
187
+ const obj = call.getArguments()[0]?.asKind(SyntaxKind.ObjectLiteralExpression);
188
+ if (!obj)
189
+ return false;
190
+ const init = obj.getProperty(propName)?.asKind(SyntaxKind.PropertyAssignment)?.getInitializer();
191
+ if (!init)
192
+ return false;
193
+ return readNameOrRef(init) === expected;
194
+ }
195
+ // Matches an r.hook `{ allOf: entity }` target — as the arg node directly
196
+ // (positional call form) or as a nested object property (object call form).
197
+ function matchAllOfArg(node, expectedEntity) {
198
+ const obj = node?.asKind(SyntaxKind.ObjectLiteralExpression);
199
+ const init = obj?.getProperty("allOf")?.asKind(SyntaxKind.PropertyAssignment)?.getInitializer();
200
+ if (!init)
201
+ return false;
202
+ return readNameOrRef(init) === expectedEntity;
203
+ }
204
+ function matchObjectAllOfProperty(call, propName, expectedEntity) {
205
+ const obj = call.getArguments()[0]?.asKind(SyntaxKind.ObjectLiteralExpression);
206
+ const propInit = obj
207
+ ?.getProperty(propName)
208
+ ?.asKind(SyntaxKind.PropertyAssignment)
209
+ ?.getInitializer();
210
+ return matchAllOfArg(propInit, expectedEntity);
211
+ }
@@ -0,0 +1,251 @@
1
+ import * as z from "zod";
2
+ export declare const PATTERN_ID_SCHEMAS_BY_KIND: {
3
+ entity: z.ZodObject<{
4
+ kind: z.ZodLiteral<"entity">;
5
+ entityName: z.ZodString;
6
+ }, z.core.$strict>;
7
+ relation: z.ZodObject<{
8
+ kind: z.ZodLiteral<"relation">;
9
+ entityName: z.ZodString;
10
+ relationName: z.ZodString;
11
+ }, z.core.$strict>;
12
+ nav: z.ZodObject<{
13
+ kind: z.ZodLiteral<"nav">;
14
+ id: z.ZodString;
15
+ }, z.core.$strict>;
16
+ workspace: z.ZodObject<{
17
+ kind: z.ZodLiteral<"workspace">;
18
+ id: z.ZodString;
19
+ }, z.core.$strict>;
20
+ screen: z.ZodObject<{
21
+ kind: z.ZodLiteral<"screen">;
22
+ id: z.ZodString;
23
+ }, z.core.$strict>;
24
+ writeHandler: z.ZodObject<{
25
+ kind: z.ZodLiteral<"writeHandler">;
26
+ handlerName: z.ZodString;
27
+ }, z.core.$strict>;
28
+ queryHandler: z.ZodObject<{
29
+ kind: z.ZodLiteral<"queryHandler">;
30
+ handlerName: z.ZodString;
31
+ }, z.core.$strict>;
32
+ streamHandler: z.ZodObject<{
33
+ kind: z.ZodLiteral<"streamHandler">;
34
+ handlerName: z.ZodString;
35
+ }, z.core.$strict>;
36
+ hook: z.ZodObject<{
37
+ kind: z.ZodLiteral<"hook">;
38
+ hookType: z.ZodString;
39
+ target: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
40
+ allOf: z.ZodString;
41
+ }, z.core.$strict>]>;
42
+ }, z.core.$strict>;
43
+ metric: z.ZodObject<{
44
+ kind: z.ZodLiteral<"metric">;
45
+ shortName: z.ZodString;
46
+ }, z.core.$strict>;
47
+ secret: z.ZodObject<{
48
+ kind: z.ZodLiteral<"secret">;
49
+ shortName: z.ZodString;
50
+ }, z.core.$strict>;
51
+ secretNamespace: z.ZodObject<{
52
+ kind: z.ZodLiteral<"secretNamespace">;
53
+ shortName: z.ZodString;
54
+ }, z.core.$strict>;
55
+ claimKey: z.ZodObject<{
56
+ kind: z.ZodLiteral<"claimKey">;
57
+ shortName: z.ZodString;
58
+ }, z.core.$strict>;
59
+ referenceData: z.ZodObject<{
60
+ kind: z.ZodLiteral<"referenceData">;
61
+ entityName: z.ZodString;
62
+ }, z.core.$strict>;
63
+ useExtension: z.ZodObject<{
64
+ kind: z.ZodLiteral<"useExtension">;
65
+ extensionName: z.ZodString;
66
+ entityName: z.ZodString;
67
+ }, z.core.$strict>;
68
+ job: z.ZodObject<{
69
+ kind: z.ZodLiteral<"job">;
70
+ jobName: z.ZodString;
71
+ }, z.core.$strict>;
72
+ notification: z.ZodObject<{
73
+ kind: z.ZodLiteral<"notification">;
74
+ notificationName: z.ZodString;
75
+ }, z.core.$strict>;
76
+ httpRoute: z.ZodObject<{
77
+ kind: z.ZodLiteral<"httpRoute">;
78
+ method: z.ZodString;
79
+ path: z.ZodString;
80
+ }, z.core.$strict>;
81
+ projection: z.ZodObject<{
82
+ kind: z.ZodLiteral<"projection">;
83
+ name: z.ZodString;
84
+ }, z.core.$strict>;
85
+ multiStreamProjection: z.ZodObject<{
86
+ kind: z.ZodLiteral<"multiStreamProjection">;
87
+ name: z.ZodString;
88
+ }, z.core.$strict>;
89
+ defineEvent: z.ZodObject<{
90
+ kind: z.ZodLiteral<"defineEvent">;
91
+ eventName: z.ZodString;
92
+ }, z.core.$strict>;
93
+ extendsRegistrar: z.ZodObject<{
94
+ kind: z.ZodLiteral<"extendsRegistrar">;
95
+ extensionName: z.ZodString;
96
+ }, z.core.$strict>;
97
+ "ai.generate": z.ZodObject<{
98
+ kind: z.ZodLiteral<"ai.generate">;
99
+ stepKey: z.ZodString;
100
+ }, z.core.$strict>;
101
+ "ai.extract": z.ZodObject<{
102
+ kind: z.ZodLiteral<"ai.extract">;
103
+ stepKey: z.ZodString;
104
+ }, z.core.$strict>;
105
+ "ai.classify": z.ZodObject<{
106
+ kind: z.ZodLiteral<"ai.classify">;
107
+ stepKey: z.ZodString;
108
+ }, z.core.$strict>;
109
+ requires: z.ZodObject<{
110
+ kind: z.ZodLiteral<"requires">;
111
+ }, z.core.$strict>;
112
+ optionalRequires: z.ZodObject<{
113
+ kind: z.ZodLiteral<"optionalRequires">;
114
+ }, z.core.$strict>;
115
+ readsConfig: z.ZodObject<{
116
+ kind: z.ZodLiteral<"readsConfig">;
117
+ }, z.core.$strict>;
118
+ systemScope: z.ZodObject<{
119
+ kind: z.ZodLiteral<"systemScope">;
120
+ }, z.core.$strict>;
121
+ toggleable: z.ZodObject<{
122
+ kind: z.ZodLiteral<"toggleable">;
123
+ }, z.core.$strict>;
124
+ describe: z.ZodObject<{
125
+ kind: z.ZodLiteral<"describe">;
126
+ }, z.core.$strict>;
127
+ uiHints: z.ZodObject<{
128
+ kind: z.ZodLiteral<"uiHints">;
129
+ }, z.core.$strict>;
130
+ adoptsBundledLists: z.ZodObject<{
131
+ kind: z.ZodLiteral<"adoptsBundledLists">;
132
+ }, z.core.$strict>;
133
+ config: z.ZodObject<{
134
+ kind: z.ZodLiteral<"config">;
135
+ }, z.core.$strict>;
136
+ translations: z.ZodObject<{
137
+ kind: z.ZodLiteral<"translations">;
138
+ }, z.core.$strict>;
139
+ authClaims: z.ZodObject<{
140
+ kind: z.ZodLiteral<"authClaims">;
141
+ }, z.core.$strict>;
142
+ treeActions: z.ZodObject<{
143
+ kind: z.ZodLiteral<"treeActions">;
144
+ }, z.core.$strict>;
145
+ };
146
+ export declare const patternIdSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
147
+ kind: z.ZodLiteral<"entity">;
148
+ entityName: z.ZodString;
149
+ }, z.core.$strict>, z.ZodObject<{
150
+ kind: z.ZodLiteral<"relation">;
151
+ entityName: z.ZodString;
152
+ relationName: z.ZodString;
153
+ }, z.core.$strict>, z.ZodObject<{
154
+ kind: z.ZodLiteral<"nav">;
155
+ id: z.ZodString;
156
+ }, z.core.$strict>, z.ZodObject<{
157
+ kind: z.ZodLiteral<"workspace">;
158
+ id: z.ZodString;
159
+ }, z.core.$strict>, z.ZodObject<{
160
+ kind: z.ZodLiteral<"screen">;
161
+ id: z.ZodString;
162
+ }, z.core.$strict>, z.ZodObject<{
163
+ kind: z.ZodLiteral<"writeHandler">;
164
+ handlerName: z.ZodString;
165
+ }, z.core.$strict>, z.ZodObject<{
166
+ kind: z.ZodLiteral<"queryHandler">;
167
+ handlerName: z.ZodString;
168
+ }, z.core.$strict>, z.ZodObject<{
169
+ kind: z.ZodLiteral<"streamHandler">;
170
+ handlerName: z.ZodString;
171
+ }, z.core.$strict>, z.ZodObject<{
172
+ kind: z.ZodLiteral<"hook">;
173
+ hookType: z.ZodString;
174
+ target: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
175
+ allOf: z.ZodString;
176
+ }, z.core.$strict>]>;
177
+ }, z.core.$strict>, z.ZodObject<{
178
+ kind: z.ZodLiteral<"metric">;
179
+ shortName: z.ZodString;
180
+ }, z.core.$strict>, z.ZodObject<{
181
+ kind: z.ZodLiteral<"secret">;
182
+ shortName: z.ZodString;
183
+ }, z.core.$strict>, z.ZodObject<{
184
+ kind: z.ZodLiteral<"secretNamespace">;
185
+ shortName: z.ZodString;
186
+ }, z.core.$strict>, z.ZodObject<{
187
+ kind: z.ZodLiteral<"claimKey">;
188
+ shortName: z.ZodString;
189
+ }, z.core.$strict>, z.ZodObject<{
190
+ kind: z.ZodLiteral<"referenceData">;
191
+ entityName: z.ZodString;
192
+ }, z.core.$strict>, z.ZodObject<{
193
+ kind: z.ZodLiteral<"useExtension">;
194
+ extensionName: z.ZodString;
195
+ entityName: z.ZodString;
196
+ }, z.core.$strict>, z.ZodObject<{
197
+ kind: z.ZodLiteral<"job">;
198
+ jobName: z.ZodString;
199
+ }, z.core.$strict>, z.ZodObject<{
200
+ kind: z.ZodLiteral<"notification">;
201
+ notificationName: z.ZodString;
202
+ }, z.core.$strict>, z.ZodObject<{
203
+ kind: z.ZodLiteral<"httpRoute">;
204
+ method: z.ZodString;
205
+ path: z.ZodString;
206
+ }, z.core.$strict>, z.ZodObject<{
207
+ kind: z.ZodLiteral<"projection">;
208
+ name: z.ZodString;
209
+ }, z.core.$strict>, z.ZodObject<{
210
+ kind: z.ZodLiteral<"multiStreamProjection">;
211
+ name: z.ZodString;
212
+ }, z.core.$strict>, z.ZodObject<{
213
+ kind: z.ZodLiteral<"defineEvent">;
214
+ eventName: z.ZodString;
215
+ }, z.core.$strict>, z.ZodObject<{
216
+ kind: z.ZodLiteral<"extendsRegistrar">;
217
+ extensionName: z.ZodString;
218
+ }, z.core.$strict>, z.ZodObject<{
219
+ kind: z.ZodLiteral<"ai.generate">;
220
+ stepKey: z.ZodString;
221
+ }, z.core.$strict>, z.ZodObject<{
222
+ kind: z.ZodLiteral<"ai.extract">;
223
+ stepKey: z.ZodString;
224
+ }, z.core.$strict>, z.ZodObject<{
225
+ kind: z.ZodLiteral<"ai.classify">;
226
+ stepKey: z.ZodString;
227
+ }, z.core.$strict>, z.ZodObject<{
228
+ kind: z.ZodLiteral<"requires">;
229
+ }, z.core.$strict>, z.ZodObject<{
230
+ kind: z.ZodLiteral<"optionalRequires">;
231
+ }, z.core.$strict>, z.ZodObject<{
232
+ kind: z.ZodLiteral<"readsConfig">;
233
+ }, z.core.$strict>, z.ZodObject<{
234
+ kind: z.ZodLiteral<"systemScope">;
235
+ }, z.core.$strict>, z.ZodObject<{
236
+ kind: z.ZodLiteral<"adoptsBundledLists">;
237
+ }, z.core.$strict>, z.ZodObject<{
238
+ kind: z.ZodLiteral<"toggleable">;
239
+ }, z.core.$strict>, z.ZodObject<{
240
+ kind: z.ZodLiteral<"describe">;
241
+ }, z.core.$strict>, z.ZodObject<{
242
+ kind: z.ZodLiteral<"uiHints">;
243
+ }, z.core.$strict>, z.ZodObject<{
244
+ kind: z.ZodLiteral<"config">;
245
+ }, z.core.$strict>, z.ZodObject<{
246
+ kind: z.ZodLiteral<"translations">;
247
+ }, z.core.$strict>, z.ZodObject<{
248
+ kind: z.ZodLiteral<"authClaims">;
249
+ }, z.core.$strict>, z.ZodObject<{
250
+ kind: z.ZodLiteral<"treeActions">;
251
+ }, z.core.$strict>], "kind">;