@cosmicdrift/kumiko-framework 0.388.0 → 0.390.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (711) hide show
  1. package/AGENTS.md +12 -4
  2. package/README.md +1 -1
  3. package/agents/examples/apex-surface-auth.md +2 -3
  4. package/agents/examples/api-worker-split.md +9 -2
  5. package/agents/examples/auth-claims.md +1 -1
  6. package/agents/examples/cross-feature-events.md +12 -12
  7. package/agents/examples/crypto-shredding-hr.md +2 -2
  8. package/agents/examples/encrypted-tenant-config.md +1 -1
  9. package/agents/examples/error-contract.md +12 -7
  10. package/agents/examples/event-sourcing.md +29 -29
  11. package/agents/examples/files-post-processing.md +10 -8
  12. package/agents/examples/golden-path.md +13 -1
  13. package/agents/examples/inbound-mail-triage.md +1 -0
  14. package/agents/examples/lane-routing.md +2 -1
  15. package/agents/examples/legal-pages.md +2 -2
  16. package/agents/examples/lifecycle-hooks.md +55 -2
  17. package/agents/examples/list-table-options.md +466 -0
  18. package/agents/examples/managed-config.md +4 -4
  19. package/agents/examples/managed-pages.md +1 -1
  20. package/agents/examples/pdf-audit-export.md +4 -2
  21. package/agents/examples/relations.md +19 -4
  22. package/agents/examples/search.md +4 -4
  23. package/agents/examples/secrets-demo.md +9 -6
  24. package/agents/examples/state-machine.md +5 -4
  25. package/agents/examples/tenant-isolation.md +73 -1
  26. package/agents/examples/tenant-settings.md +1 -1
  27. package/agents/examples/user-data-rights.md +3 -6
  28. package/agents/examples/workflow-engine.md +53 -47
  29. package/agents/examples.md +5 -4
  30. package/agents/features.md +1 -1
  31. package/agents/widgets.md +1 -0
  32. package/dist/api/api-constants.d.ts +1 -0
  33. package/dist/api/api-constants.js +2 -0
  34. package/dist/api/auth-middleware.js +1 -1
  35. package/dist/api/auth-routes-invite.js +2 -1
  36. package/dist/api/auth-routes-shared.d.ts +2 -0
  37. package/dist/api/auth-routes-shared.js +5 -0
  38. package/dist/api/client-error-route.js +2 -3
  39. package/dist/api/entity-read-access.d.ts +4 -1
  40. package/dist/api/entity-read-access.js +14 -0
  41. package/dist/api/export/export-cells-reference.d.ts +9 -0
  42. package/dist/api/export/export-cells-reference.js +21 -0
  43. package/dist/api/export/export-cells.d.ts +11 -0
  44. package/dist/api/export/export-cells.js +136 -0
  45. package/dist/api/export/export-ciphertext-guard.d.ts +2 -0
  46. package/dist/api/export/export-ciphertext-guard.js +27 -0
  47. package/dist/api/export/export-columns.d.ts +31 -0
  48. package/dist/api/export/export-columns.js +85 -0
  49. package/dist/api/export/export-errors.d.ts +4 -0
  50. package/dist/api/export/export-errors.js +14 -0
  51. package/dist/api/export/export-route.d.ts +4 -0
  52. package/dist/api/export/export-route.js +75 -0
  53. package/dist/api/export/export-rows.d.ts +13 -0
  54. package/dist/api/export/export-rows.js +62 -0
  55. package/dist/api/export/export-screen.d.ts +13 -0
  56. package/dist/api/export/export-screen.js +47 -0
  57. package/dist/api/export/export-xlsx-writer.d.ts +4 -0
  58. package/dist/api/export/export-xlsx-writer.js +21 -0
  59. package/dist/api/extra-route.d.ts +7 -1
  60. package/dist/api/index.d.ts +23 -27
  61. package/dist/api/index.js +13 -15
  62. package/dist/api/jwt.js +1 -1
  63. package/dist/api/observability-middleware.d.ts +1 -1
  64. package/dist/api/observability-middleware.js +2 -1
  65. package/dist/api/pii-leak-guard.d.ts +3 -0
  66. package/dist/api/pii-leak-guard.js +3 -2
  67. package/dist/api/request-context-internals.d.ts +31 -0
  68. package/dist/api/request-context-internals.js +11 -0
  69. package/dist/api/request-context-scopes.d.ts +14 -0
  70. package/dist/api/request-context-scopes.js +69 -0
  71. package/dist/api/request-context.d.ts +1 -40
  72. package/dist/api/request-context.js +22 -51
  73. package/dist/api/request-id-middleware.d.ts +1 -1
  74. package/dist/api/route-registrars.d.ts +2 -1
  75. package/dist/api/route-registrars.js +1 -1
  76. package/dist/api/routes.d.ts +16 -0
  77. package/dist/api/routes.js +9 -5
  78. package/dist/api/server-boot-checks.d.ts +1 -1
  79. package/dist/api/server-boot-checks.js +2 -2
  80. package/dist/api/server-event-dispatcher.d.ts +6 -1
  81. package/dist/api/server-event-dispatcher.js +3 -4
  82. package/dist/api/server-extra-routes.d.ts +1 -1
  83. package/dist/api/server-extra-routes.js +5 -1
  84. package/dist/api/server-middleware.js +3 -1
  85. package/dist/api/server-routes.d.ts +3 -2
  86. package/dist/api/server-routes.js +8 -2
  87. package/dist/api/server-wiring.js +8 -4
  88. package/dist/api/server.d.ts +2 -1
  89. package/dist/api/sse-route.d.ts +3 -1
  90. package/dist/api/sse-route.js +11 -1
  91. package/dist/api/tenant-scoped-secrets.d.ts +2 -0
  92. package/dist/api/tenant-scoped-secrets.js +13 -0
  93. package/dist/api/websocket-route.d.ts +1 -1
  94. package/dist/auth/index.d.ts +0 -1
  95. package/dist/auth/roles.d.ts +0 -5
  96. package/dist/compliance/duration-spec.d.ts +0 -1
  97. package/dist/compliance/duration-spec.js +0 -5
  98. package/dist/compliance/index.d.ts +4 -4
  99. package/dist/compliance/index.js +2 -2
  100. package/dist/compliance/profiles.d.ts +0 -15
  101. package/dist/compliance/profiles.js +0 -23
  102. package/dist/config/index.d.ts +11 -9
  103. package/dist/config/index.js +13 -1
  104. package/dist/config/internals.d.ts +9 -0
  105. package/dist/config/internals.js +1 -0
  106. package/dist/consumer-cli-internals.d.ts +4 -0
  107. package/dist/consumer-cli-internals.js +1 -0
  108. package/dist/consumer-cli.d.ts +1 -4
  109. package/dist/consumer-cli.js +5 -1
  110. package/dist/crypto/event-pii.js +1 -1
  111. package/dist/crypto/index.d.ts +8 -9
  112. package/dist/crypto/index.js +7 -8
  113. package/dist/crypto/pg-kms-adapter.d.ts +1 -0
  114. package/dist/crypto/pg-kms-adapter.js +17 -18
  115. package/dist/db/aggregate-sql.d.ts +2 -0
  116. package/dist/db/aggregate-sql.js +10 -0
  117. package/dist/db/apply-entity-event.d.ts +1 -1
  118. package/dist/db/apply-entity-event.js +15 -47
  119. package/dist/db/blind-index-cleanup.js +91 -77
  120. package/dist/db/closed-connection.js +12 -19
  121. package/dist/db/collect-table-metas.js +1 -1
  122. package/dist/db/compound-types.d.ts +1 -1
  123. package/dist/db/compound-types.js +0 -7
  124. package/dist/db/config-seed.d.ts +2 -1
  125. package/dist/db/config-seed.js +6 -1
  126. package/dist/db/connection.d.ts +7 -6
  127. package/dist/db/connection.js +43 -24
  128. package/dist/db/cross-tenant-reads.d.ts +1 -1
  129. package/dist/db/cross-tenant-reads.js +1 -1
  130. package/dist/db/dialect.d.ts +0 -5
  131. package/dist/db/dialect.js +0 -3
  132. package/dist/db/driver-row-coercion.js +4 -4
  133. package/dist/db/driver-value-preparation.js +6 -4
  134. package/dist/db/eagerload.d.ts +2 -1
  135. package/dist/db/entity-field-encryption.d.ts +1 -1
  136. package/dist/db/entity-table-meta.d.ts +1 -1
  137. package/dist/db/event-store-executor-context.d.ts +3 -1
  138. package/dist/db/event-store-executor-context.js +4 -3
  139. package/dist/db/event-store-executor-read-aggregate-currencies.d.ts +17 -0
  140. package/dist/db/event-store-executor-read-aggregate-currencies.js +40 -0
  141. package/dist/db/event-store-executor-read-aggregate.js +36 -5
  142. package/dist/db/event-store-executor-read-filter.d.ts +1 -1
  143. package/dist/db/event-store-executor-read-filter.js +6 -3
  144. package/dist/db/event-store-executor-read-rows.d.ts +2 -1
  145. package/dist/db/event-store-executor-read-search.d.ts +2 -1
  146. package/dist/db/event-store-executor-read-sort.d.ts +2 -1
  147. package/dist/db/event-store-executor-read.js +2 -2
  148. package/dist/db/event-store-executor-write-atomic.d.ts +4 -0
  149. package/dist/db/event-store-executor-write-atomic.js +42 -0
  150. package/dist/db/event-store-executor-write-steps.d.ts +3 -5
  151. package/dist/db/event-store-executor-write-steps.js +0 -5
  152. package/dist/db/event-store-executor-write.js +22 -19
  153. package/dist/db/event-store-executor.d.ts +1 -1
  154. package/dist/db/event-store-executor.js +2 -1
  155. package/dist/db/executor-managed-tables.d.ts +7 -1
  156. package/dist/db/executor-managed-tables.js +12 -3
  157. package/dist/db/index.d.ts +29 -28
  158. package/dist/db/index.js +22 -20
  159. package/dist/db/known-table-names.d.ts +6 -0
  160. package/dist/db/known-table-names.js +21 -0
  161. package/dist/db/list-aggregate-labels.d.ts +1 -1
  162. package/dist/db/located-timestamp.d.ts +1 -1
  163. package/dist/db/located-timestamp.js +0 -5
  164. package/dist/db/migrate-generator.d.ts +17 -1
  165. package/dist/db/migrate-generator.js +50 -20
  166. package/dist/db/migrate-primary-key.d.ts +12 -0
  167. package/dist/db/migrate-primary-key.js +45 -0
  168. package/dist/db/migrate-rls-diff.d.ts +20 -0
  169. package/dist/db/migrate-rls-diff.js +61 -0
  170. package/dist/db/migrate-runner.js +7 -3
  171. package/dist/db/money.d.ts +1 -1
  172. package/dist/db/money.js +1 -1
  173. package/dist/db/parent-ref-clause.d.ts +2 -1
  174. package/dist/db/pg-error.d.ts +2 -0
  175. package/dist/db/pg-error.js +37 -21
  176. package/dist/db/queries/backfill-pii.js +3 -6
  177. package/dist/db/queries/database-now.js +2 -1
  178. package/dist/db/queries/ddl.d.ts +3 -0
  179. package/dist/db/queries/ddl.js +34 -1
  180. package/dist/db/queries/event-store.js +4 -2
  181. package/dist/db/queries/event-tenants.d.ts +2 -0
  182. package/dist/db/queries/event-tenants.js +17 -0
  183. package/dist/db/queries/rebuild-rls-guard.d.ts +2 -0
  184. package/dist/db/queries/rebuild-rls-guard.js +29 -0
  185. package/dist/db/queries/rls-boot-catalog.d.ts +16 -0
  186. package/dist/db/queries/rls-boot-catalog.js +39 -0
  187. package/dist/db/queries/rls-catalog.d.ts +6 -0
  188. package/dist/db/queries/rls-catalog.js +82 -0
  189. package/dist/db/queries/rls-scope.d.ts +3 -0
  190. package/dist/db/queries/rls-scope.js +17 -0
  191. package/dist/db/queries/rls-shape.d.ts +10 -0
  192. package/dist/db/queries/rls-shape.js +42 -0
  193. package/dist/db/queries/session-advisory-lock.d.ts +2 -0
  194. package/dist/db/queries/session-advisory-lock.js +23 -0
  195. package/dist/db/queries/shadow-swap.d.ts +1 -2
  196. package/dist/db/queries/shadow-swap.js +11 -28
  197. package/dist/db/queries/test-stack.d.ts +4 -1
  198. package/dist/db/queries/test-stack.js +83 -2
  199. package/dist/db/query.d.ts +14 -0
  200. package/dist/db/query.js +77 -48
  201. package/dist/db/reference-data.d.ts +1 -1
  202. package/dist/db/reference-data.js +20 -3
  203. package/dist/db/render-ddl.d.ts +6 -2
  204. package/dist/db/render-ddl.js +7 -7
  205. package/dist/db/render-rls-ddl.d.ts +35 -0
  206. package/dist/db/render-rls-ddl.js +127 -0
  207. package/dist/db/replay-migration-sql.d.ts +3 -1
  208. package/dist/db/replay-migration-sql.js +22 -5
  209. package/dist/db/replay-rls.d.ts +25 -0
  210. package/dist/db/replay-rls.js +156 -0
  211. package/dist/db/row-level-security-boot-check.d.ts +5 -0
  212. package/dist/db/row-level-security-boot-check.js +85 -0
  213. package/dist/db/row-level-security-connection.d.ts +3 -0
  214. package/dist/db/row-level-security-connection.js +213 -0
  215. package/dist/db/row-level-security-scope.d.ts +33 -0
  216. package/dist/db/row-level-security-scope.js +127 -0
  217. package/dist/db/scope-tenant-db-to-tenant.d.ts +3 -0
  218. package/dist/db/scope-tenant-db-to-tenant.js +14 -0
  219. package/dist/db/sql-identifier.d.ts +1 -0
  220. package/dist/db/sql-identifier.js +3 -0
  221. package/dist/db/statement-timeout.js +2 -1
  222. package/dist/db/table-builder.d.ts +2 -1
  223. package/dist/db/table-builder.js +1 -1
  224. package/dist/db/table-info.js +1 -1
  225. package/dist/db/table-push.d.ts +11 -2
  226. package/dist/db/table-push.js +15 -2
  227. package/dist/db/tenant-db-runner.d.ts +3 -1
  228. package/dist/db/tenant-db-runner.js +4 -3
  229. package/dist/db/tenant-db-scoped-rebind.d.ts +10 -0
  230. package/dist/db/tenant-db-scoped-rebind.js +33 -0
  231. package/dist/db/tenant-db-statement-runner.d.ts +13 -0
  232. package/dist/db/tenant-db-statement-runner.js +48 -0
  233. package/dist/db/tenant-db-upsert.d.ts +5 -0
  234. package/dist/db/tenant-db-upsert.js +91 -0
  235. package/dist/db/tenant-db.d.ts +17 -12
  236. package/dist/db/tenant-db.js +60 -121
  237. package/dist/db/tenant-id-filter.d.ts +3 -0
  238. package/dist/db/tenant-id-filter.js +30 -0
  239. package/dist/db/transaction-serialization.d.ts +6 -0
  240. package/dist/db/transaction-serialization.js +60 -0
  241. package/dist/derivatives/delete-stored-file.js +1 -1
  242. package/dist/derivatives/index.d.ts +2 -5
  243. package/dist/derivatives/index.js +2 -3
  244. package/dist/engine/access.d.ts +2 -1
  245. package/dist/engine/access.js +1 -1
  246. package/dist/engine/boot-validator/bundled-lists-table.d.ts +2 -0
  247. package/dist/engine/boot-validator/bundled-lists-table.js +36 -0
  248. package/dist/engine/boot-validator/entity-handler.d.ts +2 -1
  249. package/dist/engine/boot-validator/entity-handler.js +1 -1
  250. package/dist/engine/boot-validator/entity-list-aggregate-options.d.ts +3 -0
  251. package/dist/engine/boot-validator/entity-list-aggregate-options.js +23 -0
  252. package/dist/engine/boot-validator/list-bulk-actions.d.ts +3 -0
  253. package/dist/engine/boot-validator/list-bulk-actions.js +49 -0
  254. package/dist/engine/boot-validator/list-column-layout.d.ts +8 -0
  255. package/dist/engine/boot-validator/list-column-layout.js +41 -0
  256. package/dist/engine/boot-validator/list-table-aggregate-options.d.ts +24 -0
  257. package/dist/engine/boot-validator/list-table-aggregate-options.js +145 -0
  258. package/dist/engine/boot-validator/list-table-aggregate-query.d.ts +11 -0
  259. package/dist/engine/boot-validator/list-table-aggregate-query.js +31 -0
  260. package/dist/engine/boot-validator/list-table-export-options.d.ts +1 -0
  261. package/dist/engine/boot-validator/list-table-export-options.js +27 -0
  262. package/dist/engine/boot-validator/list-table-options.d.ts +3 -0
  263. package/dist/engine/boot-validator/list-table-options.js +77 -0
  264. package/dist/engine/boot-validator/list-table-reject-unknown-keys.d.ts +1 -0
  265. package/dist/engine/boot-validator/list-table-reject-unknown-keys.js +7 -0
  266. package/dist/engine/boot-validator/nav.d.ts +3 -1
  267. package/dist/engine/boot-validator/nav.js +1 -1
  268. package/dist/engine/boot-validator/ownership.d.ts +2 -1
  269. package/dist/engine/boot-validator/parent-ref.d.ts +2 -1
  270. package/dist/engine/boot-validator/projection-list-screens.d.ts +2 -1
  271. package/dist/engine/boot-validator/projection-list-screens.js +3 -13
  272. package/dist/engine/boot-validator/query-refs.d.ts +2 -1
  273. package/dist/engine/boot-validator/related-list-table-rules.d.ts +4 -0
  274. package/dist/engine/boot-validator/related-list-table-rules.js +42 -0
  275. package/dist/engine/boot-validator/screens-forms.d.ts +2 -1
  276. package/dist/engine/boot-validator/screens-kind-entity-list.js +7 -0
  277. package/dist/engine/boot-validator/screens-kind-projection-list.js +4 -0
  278. package/dist/engine/boot-validator/screens-kind-shared.d.ts +3 -1
  279. package/dist/engine/boot-validator/screens-lists.js +12 -2
  280. package/dist/engine/boot-validator/screens.d.ts +2 -1
  281. package/dist/engine/boot-validator/workspaces.d.ts +3 -1
  282. package/dist/engine/bridge-stub.d.ts +5 -2
  283. package/dist/engine/bridge-stub.js +39 -24
  284. package/dist/engine/build-app-schema.d.ts +2 -1
  285. package/dist/engine/build-app-schema.js +9 -1
  286. package/dist/engine/build-config-feature-schema.js +6 -1
  287. package/dist/engine/config-helpers.d.ts +2 -2
  288. package/dist/engine/config-helpers.js +0 -9
  289. package/dist/engine/constants.d.ts +0 -10
  290. package/dist/engine/constants.js +0 -8
  291. package/dist/engine/create-app.js +1 -1
  292. package/dist/engine/define-feature.d.ts +2 -1
  293. package/dist/engine/define-feature.js +5 -2
  294. package/dist/engine/define-handler.d.ts +1 -1
  295. package/dist/engine/define-step.d.ts +0 -1
  296. package/dist/engine/define-step.js +0 -3
  297. package/dist/engine/embedded-derived.d.ts +1 -1
  298. package/dist/engine/entity-handlers.d.ts +2 -1
  299. package/dist/engine/entity-handlers.js +7 -7
  300. package/dist/engine/entity-list-runtime-options.js +3 -1
  301. package/dist/engine/entity-list-searchability.d.ts +2 -1
  302. package/dist/engine/event-def.d.ts +2 -1
  303. package/dist/engine/event-helpers.d.ts +3 -1
  304. package/dist/engine/event-helpers.js +3 -3
  305. package/dist/engine/extension-names.d.ts +2 -8
  306. package/dist/engine/extension-names.js +2 -2
  307. package/dist/engine/extension-selector-plugins.d.ts +1 -1
  308. package/dist/engine/extensions/storage-provider.d.ts +1 -2
  309. package/dist/engine/extensions/user-data.d.ts +0 -8
  310. package/dist/engine/factories.d.ts +2 -1
  311. package/dist/engine/feature-builder-state.d.ts +9 -1
  312. package/dist/engine/feature-builder-state.js +1 -0
  313. package/dist/engine/feature-changelog.d.ts +1 -1
  314. package/dist/engine/feature-config-events-jobs.d.ts +4 -1
  315. package/dist/engine/feature-entity-handlers.d.ts +5 -1
  316. package/dist/engine/feature-manifest.d.ts +1 -0
  317. package/dist/engine/feature-manifest.js +2 -1
  318. package/dist/engine/feature-ui-extensions.d.ts +7 -1
  319. package/dist/engine/feature-ui-extensions.js +6 -4
  320. package/dist/engine/field-access.d.ts +3 -1
  321. package/dist/engine/field-access.js +12 -0
  322. package/dist/engine/handler-field-references.d.ts +0 -4
  323. package/dist/engine/index.d.ts +58 -55
  324. package/dist/engine/index.js +23 -28
  325. package/dist/engine/instruction-fields.d.ts +1 -1
  326. package/dist/engine/personal-data-fields.d.ts +1 -1
  327. package/dist/engine/qualified-name.d.ts +0 -1
  328. package/dist/engine/read-claim.d.ts +2 -1
  329. package/dist/engine/registry-facade.js +0 -3
  330. package/dist/engine/registry-ingest.d.ts +2 -1
  331. package/dist/engine/registry-ingest.js +1 -2
  332. package/dist/engine/registry-state.d.ts +12 -2
  333. package/dist/engine/registry-state.js +2 -3
  334. package/dist/engine/registry-validate.d.ts +3 -1
  335. package/dist/engine/registry-validate.js +7 -7
  336. package/dist/engine/run-in.d.ts +1 -1
  337. package/dist/engine/run-in.js +0 -1
  338. package/dist/engine/schema-builder.d.ts +1 -1
  339. package/dist/engine/schema-builder.js +1 -1
  340. package/dist/engine/screen-filter-ops.d.ts +2 -1
  341. package/dist/engine/screen-filter-ops.js +2 -5
  342. package/dist/engine/soft-delete-cleanup.d.ts +1 -1
  343. package/dist/engine/soft-delete-cleanup.js +4 -4
  344. package/dist/engine/state-machine.js +2 -1
  345. package/dist/engine/steps/_read-source.js +1 -1
  346. package/dist/engine/steps/aggregate-append-event.js +2 -2
  347. package/dist/engine/steps/call-feature.js +2 -2
  348. package/dist/engine/steps/mail-send.js +1 -1
  349. package/dist/engine/steps/retry.js +1 -1
  350. package/dist/engine/steps/wait-for-event.js +1 -1
  351. package/dist/engine/steps/wait.js +1 -1
  352. package/dist/engine/steps/webhook-send.js +1 -1
  353. package/dist/engine/strip-disabled-features-from-app-schema.js +7 -3
  354. package/dist/engine/template-variables.d.ts +2 -1
  355. package/dist/engine/transfer-adjacency.d.ts +1 -1
  356. package/dist/engine/types/feature.d.ts +1 -0
  357. package/dist/engine/types/index.d.ts +8 -30
  358. package/dist/engine/types/index.js +2 -10
  359. package/dist/engine/types/screen.d.ts +1 -1
  360. package/dist/engine/types/screen.js +1 -1
  361. package/dist/engine/validation.d.ts +2 -1
  362. package/dist/entrypoint/index.d.ts +9 -35
  363. package/dist/entrypoint/index.js +10 -1
  364. package/dist/entrypoint/internals.d.ts +40 -0
  365. package/dist/entrypoint/internals.js +1 -0
  366. package/dist/entrypoint/row-level-security-mode-check.d.ts +3 -0
  367. package/dist/entrypoint/row-level-security-mode-check.js +19 -0
  368. package/dist/env/dry-run-internals.d.ts +10 -0
  369. package/dist/env/dry-run-internals.js +1 -0
  370. package/dist/env/dry-run.d.ts +1 -10
  371. package/dist/env/dry-run.js +2 -1
  372. package/dist/env/index.d.ts +1 -85
  373. package/dist/env/index.js +6 -50
  374. package/dist/env/internals.d.ts +87 -0
  375. package/dist/env/internals.js +53 -0
  376. package/dist/errors/classes.js +2 -2
  377. package/dist/errors/index.d.ts +5 -14
  378. package/dist/errors/index.js +4 -9
  379. package/dist/errors/member-resolution.js +1 -1
  380. package/dist/errors/reasons.d.ts +0 -1
  381. package/dist/errors/reasons.js +7 -7
  382. package/dist/errors/serialize.d.ts +0 -18
  383. package/dist/errors/serialize.js +0 -27
  384. package/dist/es-ops/index.d.ts +4 -4
  385. package/dist/es-ops/index.js +2 -2
  386. package/dist/es-ops/operations-schema.d.ts +1 -1
  387. package/dist/es-ops/types.d.ts +4 -5
  388. package/dist/event-store/admin-api-internals.d.ts +14 -0
  389. package/dist/event-store/admin-api-internals.js +1 -0
  390. package/dist/event-store/admin-api.d.ts +1 -14
  391. package/dist/event-store/admin-api.js +11 -6
  392. package/dist/event-store/archive.js +4 -2
  393. package/dist/event-store/errors.js +2 -2
  394. package/dist/event-store/event-store.d.ts +1 -0
  395. package/dist/event-store/event-store.js +42 -32
  396. package/dist/event-store/events-schema.js +4 -1
  397. package/dist/event-store/index.d.ts +11 -13
  398. package/dist/event-store/index.js +7 -9
  399. package/dist/event-store/provenance-append.js +1 -1
  400. package/dist/event-store/rebuild-dead-letter.js +4 -2
  401. package/dist/event-store/snapshot.js +4 -3
  402. package/dist/event-store/stream-scope.d.ts +2 -0
  403. package/dist/event-store/stream-scope.js +6 -0
  404. package/dist/event-store/upcaster-dead-letter.js +4 -2
  405. package/dist/event-store/upcaster.d.ts +2 -1
  406. package/dist/files/action-form-upload.d.ts +2 -1
  407. package/dist/files/action-form-upload.js +1 -1
  408. package/dist/files/assert-file-refs-belong-to-tenant.d.ts +2 -1
  409. package/dist/files/assert-file-refs-belong-to-tenant.js +1 -1
  410. package/dist/files/bind-pending-file-refs.d.ts +2 -1
  411. package/dist/files/bind-pending-file-refs.js +2 -1
  412. package/dist/files/bind-referenced-files.write.js +1 -1
  413. package/dist/files/create-file-ref-from-bytes.d.ts +6 -3
  414. package/dist/files/create-file-ref-from-bytes.js +6 -3
  415. package/dist/files/create-file-ref.d.ts +6 -2
  416. package/dist/files/create-file-ref.js +13 -4
  417. package/dist/files/dispose-removed-file-refs.d.ts +2 -1
  418. package/dist/files/dispose-removed-file-refs.js +1 -1
  419. package/dist/files/feature.js +2 -2
  420. package/dist/files/file-handle.js +1 -1
  421. package/dist/files/file-routes.d.ts +3 -1
  422. package/dist/files/file-routes.js +41 -4
  423. package/dist/files/index.d.ts +11 -13
  424. package/dist/files/index.js +5 -7
  425. package/dist/files/load-save-file-refs.d.ts +2 -1
  426. package/dist/files/load-save-file-refs.js +1 -1
  427. package/dist/files/provider-resolver.d.ts +6 -4
  428. package/dist/files/provider-resolver.js +5 -5
  429. package/dist/files/record-write-check.d.ts +6 -0
  430. package/dist/files/record-write-check.js +13 -0
  431. package/dist/files/storage-tracking.js +4 -2
  432. package/dist/files/sweep-orphaned-uploads.d.ts +1 -1
  433. package/dist/files/sweep-orphaned-uploads.js +1 -1
  434. package/dist/files/upload-ledger.d.ts +2 -2
  435. package/dist/files/upload-ledger.js +4 -4
  436. package/dist/i18n/index.d.ts +2 -8
  437. package/dist/i18n/index.js +1 -1
  438. package/dist/i18n/internals.d.ts +7 -0
  439. package/dist/i18n/internals.js +1 -0
  440. package/dist/i18n/required-surface-keys.d.ts +4 -1
  441. package/dist/i18n/required-surface-keys.js +7 -2
  442. package/dist/internal/row-level-security.d.ts +3 -0
  443. package/dist/internal/row-level-security.js +3 -0
  444. package/dist/internal/stack-support.d.ts +1 -1
  445. package/dist/internal/stack-support.js +1 -1
  446. package/dist/internal/testing.d.ts +1 -0
  447. package/dist/internal/testing.js +10 -6
  448. package/dist/jobs/index.d.ts +1 -1
  449. package/dist/jobs/job-append-event.d.ts +12 -0
  450. package/dist/jobs/job-append-event.js +30 -0
  451. package/dist/jobs/job-runner-context.d.ts +2 -2
  452. package/dist/jobs/job-runner-context.js +46 -16
  453. package/dist/jobs/job-runner-execution.d.ts +1 -1
  454. package/dist/jobs/job-runner-execution.js +6 -4
  455. package/dist/jobs/job-runner-gates.d.ts +1 -1
  456. package/dist/jobs/job-runner-gates.js +0 -1
  457. package/dist/jobs/job-runner-helpers.d.ts +11 -4
  458. package/dist/jobs/job-runner-helpers.js +10 -1
  459. package/dist/jobs/job-runner-scope.d.ts +5 -2
  460. package/dist/jobs/job-runner-scope.js +6 -6
  461. package/dist/jobs/job-runner-types.d.ts +2 -1
  462. package/dist/jobs/job-runner.js +22 -6
  463. package/dist/jobs/max-per-tenant.d.ts +1 -1
  464. package/dist/logging/index.d.ts +1 -2
  465. package/dist/logging/index.js +1 -1
  466. package/dist/logging/pino-logger.js +1 -1
  467. package/dist/logging/utils.d.ts +1 -0
  468. package/dist/logging/utils.js +6 -0
  469. package/dist/migrations/index.d.ts +3 -3
  470. package/dist/migrations/index.js +3 -3
  471. package/dist/migrations/pending-rebuilds.d.ts +1 -1
  472. package/dist/migrations/pending-rebuilds.js +1 -1
  473. package/dist/migrations/pii-event-backfill.js +4 -1
  474. package/dist/observability/escape-hatch-report.d.ts +2 -1
  475. package/dist/observability/escape-hatch-report.js +9 -2
  476. package/dist/observability/index.d.ts +7 -15
  477. package/dist/observability/index.js +4 -12
  478. package/dist/observability/metric-validator.js +1 -1
  479. package/dist/observability/metrics-handle.d.ts +0 -1
  480. package/dist/observability/metrics-handle.js +2 -15
  481. package/dist/observability/recording-tracer.d.ts +1 -2
  482. package/dist/observability/recording-tracer.js +0 -6
  483. package/dist/observability/sensitive-filter.d.ts +0 -2
  484. package/dist/observability/sensitive-filter.js +0 -29
  485. package/dist/pipeline/active-membership.d.ts +2 -1
  486. package/dist/pipeline/active-membership.js +6 -2
  487. package/dist/pipeline/after-rollback-sink.d.ts +6 -0
  488. package/dist/pipeline/after-rollback-sink.js +32 -0
  489. package/dist/pipeline/append-event-core.d.ts +2 -1
  490. package/dist/pipeline/append-event-core.js +2 -2
  491. package/dist/pipeline/attach-outside-transaction.d.ts +3 -0
  492. package/dist/pipeline/attach-outside-transaction.js +13 -0
  493. package/dist/pipeline/auth-claims-resolver.d.ts +2 -1
  494. package/dist/pipeline/cascade-handler.d.ts +2 -1
  495. package/dist/pipeline/cascade-handler.js +3 -2
  496. package/dist/pipeline/config-accessor-factory.d.ts +1 -1
  497. package/dist/pipeline/config-accessor-factory.js +1 -1
  498. package/dist/pipeline/context-services.d.ts +56 -0
  499. package/dist/pipeline/context-services.js +73 -0
  500. package/dist/pipeline/dispatch-batch.d.ts +2 -1
  501. package/dist/pipeline/dispatch-batch.js +39 -19
  502. package/dist/pipeline/dispatch-query.js +5 -4
  503. package/dist/pipeline/dispatch-scope.d.ts +6 -0
  504. package/dist/pipeline/dispatch-scope.js +27 -0
  505. package/dist/pipeline/dispatch-shared.d.ts +13 -9
  506. package/dist/pipeline/dispatch-shared.js +75 -194
  507. package/dist/pipeline/dispatch-stream.js +8 -4
  508. package/dist/pipeline/dispatch-write.d.ts +2 -1
  509. package/dist/pipeline/dispatch-write.js +10 -8
  510. package/dist/pipeline/dispatcher-utils.d.ts +3 -1
  511. package/dist/pipeline/dispatcher-utils.js +8 -2
  512. package/dist/pipeline/dispatcher.d.ts +3 -2
  513. package/dist/pipeline/dispatcher.js +4 -3
  514. package/dist/pipeline/event-consumer-state.d.ts +0 -1
  515. package/dist/pipeline/event-dispatcher-delivery.d.ts +1 -1
  516. package/dist/pipeline/event-dispatcher-delivery.js +7 -3
  517. package/dist/pipeline/event-dispatcher.d.ts +3 -2
  518. package/dist/pipeline/event-dispatcher.js +13 -12
  519. package/dist/pipeline/event-retention.js +59 -56
  520. package/dist/pipeline/handler-access-error.js +2 -1
  521. package/dist/pipeline/handler-context-auth.d.ts +5 -6
  522. package/dist/pipeline/handler-context-auth.js +7 -4
  523. package/dist/pipeline/handler-context-config.d.ts +2 -5
  524. package/dist/pipeline/handler-context-config.js +2 -2
  525. package/dist/pipeline/handler-context-db.d.ts +32 -7
  526. package/dist/pipeline/handler-context-db.js +26 -17
  527. package/dist/pipeline/handler-context-dispatch.d.ts +14 -6
  528. package/dist/pipeline/handler-context-dispatch.js +18 -5
  529. package/dist/pipeline/handler-context-events.d.ts +22 -38
  530. package/dist/pipeline/handler-context-events.js +42 -35
  531. package/dist/pipeline/handler-context-member-resolution.d.ts +2 -0
  532. package/dist/pipeline/handler-context-member-resolution.js +110 -0
  533. package/dist/pipeline/handler-context-notify.d.ts +3 -2
  534. package/dist/pipeline/handler-context-notify.js +1 -1
  535. package/dist/pipeline/handler-context-observability.d.ts +2 -4
  536. package/dist/pipeline/handler-context-observability.js +7 -5
  537. package/dist/pipeline/handler-context-phase-denials.d.ts +11 -0
  538. package/dist/pipeline/handler-context-phase-denials.js +98 -0
  539. package/dist/pipeline/handler-context-scope.d.ts +7 -10
  540. package/dist/pipeline/handler-context-scope.js +18 -20
  541. package/dist/pipeline/index.d.ts +9 -21
  542. package/dist/pipeline/index.js +5 -7
  543. package/dist/pipeline/irreversible-operation-gate.d.ts +1 -1
  544. package/dist/pipeline/irreversible-operation-gate.js +2 -2
  545. package/dist/pipeline/lifecycle-pipeline.d.ts +8 -7
  546. package/dist/pipeline/lifecycle-pipeline.js +9 -15
  547. package/dist/pipeline/member-read-only-transaction.js +11 -3
  548. package/dist/pipeline/member-reader.d.ts +1 -1
  549. package/dist/pipeline/member-reader.js +2 -2
  550. package/dist/pipeline/msp-rebuild.js +5 -3
  551. package/dist/pipeline/multi-stream-apply-context.js +3 -2
  552. package/dist/pipeline/notify-scope.d.ts +2 -1
  553. package/dist/pipeline/pre-handler-gates.d.ts +2 -1
  554. package/dist/pipeline/pre-transaction-reservations.d.ts +3 -3
  555. package/dist/pipeline/pre-transaction-reservations.js +9 -7
  556. package/dist/pipeline/projection-rebuild.js +12 -5
  557. package/dist/pipeline/projection-state.d.ts +0 -6
  558. package/dist/pipeline/projection-state.js +0 -5
  559. package/dist/pipeline/projections-runner.d.ts +2 -1
  560. package/dist/pipeline/projections-runner.js +10 -6
  561. package/dist/pipeline/system-hooks.d.ts +6 -2
  562. package/dist/pipeline/system-hooks.js +61 -10
  563. package/dist/pipeline/system-identity-switch.d.ts +4 -2
  564. package/dist/pipeline/system-identity-switch.js +51 -36
  565. package/dist/pipeline/typed-append-event.d.ts +2 -0
  566. package/dist/pipeline/typed-append-event.js +4 -0
  567. package/dist/pipeline/write-origin.js +2 -2
  568. package/dist/pipeline/write-result-masking.d.ts +1 -1
  569. package/dist/pipeline/write-result-masking.js +13 -10
  570. package/dist/random/index.d.ts +1 -2
  571. package/dist/random/index.js +1 -2
  572. package/dist/rate-limit/bucket.d.ts +2 -1
  573. package/dist/rate-limit/middleware.js +2 -1
  574. package/dist/redis/index.d.ts +3 -4
  575. package/dist/redis/index.js +2 -2
  576. package/dist/schema-cli/apply-command.js +5 -2
  577. package/dist/schema-cli/baseline-command.js +7 -2
  578. package/dist/schema-cli/generate-command.js +7 -9
  579. package/dist/schema-cli/shared.d.ts +4 -0
  580. package/dist/schema-cli/shared.js +21 -2
  581. package/dist/schema-cli/status-command.js +8 -2
  582. package/dist/schema-cli/validate-command.js +52 -4
  583. package/dist/schema-cli.d.ts +0 -1
  584. package/dist/search/configure-tenant-index.d.ts +1 -3
  585. package/dist/search/configure-tenant-index.js +0 -4
  586. package/dist/search/index.d.ts +1 -4
  587. package/dist/search/index.js +0 -2
  588. package/dist/search/meilisearch-adapter-internals.d.ts +8 -0
  589. package/dist/search/meilisearch-adapter-internals.js +9 -0
  590. package/dist/search/meilisearch-adapter.d.ts +1 -8
  591. package/dist/search/meilisearch-adapter.js +6 -7
  592. package/dist/search/meilisearch-peer.d.ts +2 -0
  593. package/dist/search/meilisearch-peer.js +5 -0
  594. package/dist/search/reindex-entity.js +107 -91
  595. package/dist/secrets/index.d.ts +3 -4
  596. package/dist/secrets/index.js +2 -3
  597. package/dist/seeding/index.d.ts +2 -2
  598. package/dist/seeding/index.js +1 -2
  599. package/dist/time/index.d.ts +2 -2
  600. package/dist/time/index.js +1 -1
  601. package/dist/time/tz-context.d.ts +0 -5
  602. package/dist/time/tz-context.js +0 -9
  603. package/dist/ui-types/index.d.ts +8 -11
  604. package/dist/ui-types/index.js +3 -3
  605. package/dist/upgrade-changelog.d.ts +3 -0
  606. package/dist/upgrade-changelog.js +18 -0
  607. package/dist/upgrade-cli-internals.d.ts +8 -0
  608. package/dist/upgrade-cli-internals.js +63 -0
  609. package/dist/upgrade-cli.d.ts +1 -18
  610. package/dist/upgrade-cli.js +29 -137
  611. package/dist/upgrade-marker-parse.d.ts +32 -0
  612. package/dist/upgrade-marker-parse.js +73 -0
  613. package/dist/utils/import-optional-peer.d.ts +6 -0
  614. package/dist/utils/import-optional-peer.js +19 -0
  615. package/dist/utils/index.d.ts +1 -4
  616. package/dist/utils/index.js +1 -4
  617. package/package.json +27 -20
  618. package/src/changes.json +451 -0
  619. package/dist/crypto/request-kms-cache.d.ts +0 -8
  620. package/dist/crypto/request-kms-cache.js +0 -21
  621. package/dist/engine/codemod/index.d.ts +0 -2
  622. package/dist/engine/codemod/index.js +0 -1
  623. package/dist/engine/codemod/pipeline-codemod.d.ts +0 -50
  624. package/dist/engine/codemod/pipeline-codemod.js +0 -536
  625. package/dist/engine/feature-ast/entity-field-types.d.ts +0 -13
  626. package/dist/engine/feature-ast/entity-field-types.js +0 -35
  627. package/dist/engine/feature-ast/extractors/ai-steps.d.ts +0 -6
  628. package/dist/engine/feature-ast/extractors/ai-steps.js +0 -254
  629. package/dist/engine/feature-ast/extractors/events.d.ts +0 -5
  630. package/dist/engine/feature-ast/extractors/events.js +0 -275
  631. package/dist/engine/feature-ast/extractors/handlers.d.ts +0 -24
  632. package/dist/engine/feature-ast/extractors/handlers.js +0 -358
  633. package/dist/engine/feature-ast/extractors/hooks.d.ts +0 -24
  634. package/dist/engine/feature-ast/extractors/hooks.js +0 -248
  635. package/dist/engine/feature-ast/extractors/index.d.ts +0 -14
  636. package/dist/engine/feature-ast/extractors/index.js +0 -13
  637. package/dist/engine/feature-ast/extractors/jobs-routes.d.ts +0 -7
  638. package/dist/engine/feature-ast/extractors/jobs-routes.js +0 -145
  639. package/dist/engine/feature-ast/extractors/projections-screens.d.ts +0 -10
  640. package/dist/engine/feature-ast/extractors/projections-screens.js +0 -195
  641. package/dist/engine/feature-ast/extractors/resolve-import.d.ts +0 -21
  642. package/dist/engine/feature-ast/extractors/resolve-import.js +0 -180
  643. package/dist/engine/feature-ast/extractors/round1.d.ts +0 -10
  644. package/dist/engine/feature-ast/extractors/round1.js +0 -81
  645. package/dist/engine/feature-ast/extractors/round2.d.ts +0 -7
  646. package/dist/engine/feature-ast/extractors/round2.js +0 -191
  647. package/dist/engine/feature-ast/extractors/round3.d.ts +0 -23
  648. package/dist/engine/feature-ast/extractors/round3.js +0 -292
  649. package/dist/engine/feature-ast/extractors/round5.d.ts +0 -9
  650. package/dist/engine/feature-ast/extractors/round5.js +0 -68
  651. package/dist/engine/feature-ast/extractors/round6.d.ts +0 -4
  652. package/dist/engine/feature-ast/extractors/round6.js +0 -17
  653. package/dist/engine/feature-ast/extractors/shared.d.ts +0 -94
  654. package/dist/engine/feature-ast/extractors/shared.js +0 -343
  655. package/dist/engine/feature-ast/index.d.ts +0 -16
  656. package/dist/engine/feature-ast/index.js +0 -10
  657. package/dist/engine/feature-ast/parse.d.ts +0 -31
  658. package/dist/engine/feature-ast/parse.js +0 -483
  659. package/dist/engine/feature-ast/patch.d.ts +0 -210
  660. package/dist/engine/feature-ast/patch.js +0 -610
  661. package/dist/engine/feature-ast/patcher.d.ts +0 -217
  662. package/dist/engine/feature-ast/patcher.js +0 -281
  663. package/dist/engine/feature-ast/pattern-change-schema.d.ts +0 -1476
  664. package/dist/engine/feature-ast/pattern-change-schema.js +0 -1226
  665. package/dist/engine/feature-ast/pattern-id-matchers.d.ts +0 -7
  666. package/dist/engine/feature-ast/pattern-id-matchers.js +0 -210
  667. package/dist/engine/feature-ast/patterns.d.ts +0 -318
  668. package/dist/engine/feature-ast/patterns.js +0 -106
  669. package/dist/engine/feature-ast/render.d.ts +0 -47
  670. package/dist/engine/feature-ast/render.js +0 -662
  671. package/dist/engine/feature-ast/source-location.d.ts +0 -17
  672. package/dist/engine/feature-ast/source-location.js +0 -27
  673. package/dist/engine/pattern-library/index.d.ts +0 -2
  674. package/dist/engine/pattern-library/index.js +0 -3
  675. package/dist/engine/pattern-library/library.d.ts +0 -14
  676. package/dist/engine/pattern-library/library.js +0 -93
  677. package/dist/engine/pattern-library/mixed-schemas.d.ts +0 -16
  678. package/dist/engine/pattern-library/mixed-schemas.js +0 -559
  679. package/dist/engine/pattern-library/opaque-schemas.d.ts +0 -7
  680. package/dist/engine/pattern-library/opaque-schemas.js +0 -115
  681. package/dist/engine/pattern-library/shared-fields.d.ts +0 -122
  682. package/dist/engine/pattern-library/shared-fields.js +0 -88
  683. package/dist/engine/pattern-library/static-schemas.d.ts +0 -20
  684. package/dist/engine/pattern-library/static-schemas.js +0 -478
  685. package/dist/engine/pattern-library/types.d.ts +0 -158
  686. package/dist/engine/pattern-library/types.js +0 -36
  687. package/dist/engine/provider-plugin-context.d.ts +0 -3
  688. package/dist/engine/provider-plugin-context.js +0 -28
  689. package/dist/engine/resolve-config-or-param.d.ts +0 -18
  690. package/dist/engine/resolve-config-or-param.js +0 -76
  691. package/src/scripts/codemod/README.md +0 -187
  692. package/src/scripts/codemod/codemod-support.ts +0 -334
  693. package/src/scripts/codemod/collect-source-files.ts +0 -48
  694. package/src/scripts/codemod/crypto-shredding-testing-move.ts +0 -119
  695. package/src/scripts/codemod/db-factory.ts +0 -810
  696. package/src/scripts/codemod/feature-factory.ts +0 -429
  697. package/src/scripts/codemod/feature-layout.ts +0 -424
  698. package/src/scripts/codemod/import-extensions.ts +0 -118
  699. package/src/scripts/codemod/migrate-cross-tenant.ts +0 -328
  700. package/src/scripts/codemod/migrate-db-raw.ts +0 -401
  701. package/src/scripts/codemod/migrate-open-to-all.ts +0 -235
  702. package/src/scripts/codemod/object-form.ts +0 -746
  703. package/src/scripts/codemod/package-merge.ts +0 -299
  704. package/src/scripts/codemod/pii-personal-migration.ts +0 -816
  705. package/src/scripts/codemod/remove-engine-payload-casts.ts +0 -318
  706. package/src/scripts/codemod/s3-imports.ts +0 -236
  707. package/src/scripts/codemod/tenant-db-options.ts +0 -454
  708. package/src/scripts/codemod/testing-injection.ts +0 -215
  709. package/src/scripts/codemod/testing-move-targets.ts +0 -161
  710. package/src/scripts/codemod/testing-move.ts +0 -542
  711. package/src/scripts/codemod/unprocessable-error-details-reason.ts +0 -411
@@ -1,478 +0,0 @@
1
- // Static pattern schemas (form-only, no closures).
2
- import { CLAIM_KEY_TYPE_OPTIONS, ID_TYPE_OPTIONS } from "./shared-fields.js";
3
- // --- Static patterns (form-only, no closures) -----------------------------
4
- export const requiresSchema = {
5
- kind: "requires",
6
- label: { en: "Requires", de: "Benötigt" },
7
- summary: { en: "Hard dependency on other features." },
8
- category: "meta",
9
- editability: "static",
10
- singleton: true,
11
- fields: [
12
- {
13
- path: "featureNames",
14
- label: { en: "Feature names", de: "Feature-Namen" },
15
- input: "string-list",
16
- itemPlaceholder: "auth",
17
- required: true,
18
- },
19
- ],
20
- };
21
- export const optionalRequiresSchema = {
22
- kind: "optionalRequires",
23
- label: { en: "Optional requires", de: "Optional benötigt" },
24
- summary: { en: "Soft dependency — used if available, otherwise skipped." },
25
- category: "meta",
26
- editability: "static",
27
- singleton: true,
28
- fields: [
29
- {
30
- path: "featureNames",
31
- label: { en: "Feature names", de: "Feature-Namen" },
32
- input: "string-list",
33
- itemPlaceholder: "analytics",
34
- },
35
- ],
36
- };
37
- export const readsConfigSchema = {
38
- kind: "readsConfig",
39
- label: { en: "Reads config", de: "Liest Config" },
40
- summary: { en: "Declares which qualified config keys this feature reads." },
41
- category: "meta",
42
- editability: "static",
43
- singleton: true,
44
- fields: [
45
- {
46
- path: "qualifiedKeys",
47
- label: { en: "Qualified keys", de: "Qualifizierte Keys" },
48
- input: "string-list",
49
- itemPlaceholder: "billing:plan",
50
- },
51
- ],
52
- };
53
- export const systemScopeSchema = {
54
- kind: "systemScope",
55
- label: { en: "System scope", de: "System-Scope" },
56
- summary: { en: "Marks this feature as system-tenant only." },
57
- category: "meta",
58
- editability: "static",
59
- singleton: true,
60
- fields: [],
61
- };
62
- export const toggleableSchema = {
63
- kind: "toggleable",
64
- label: { en: "Toggleable", de: "Umschaltbar" },
65
- summary: { en: "Operator can switch this feature on/off per tenant." },
66
- category: "meta",
67
- editability: "static",
68
- singleton: true,
69
- fields: [
70
- {
71
- path: "default",
72
- label: { en: "Enabled by default", de: "Standardmäßig aktiviert" },
73
- input: "boolean",
74
- required: true,
75
- },
76
- ],
77
- };
78
- export const describeSchema = {
79
- kind: "describe",
80
- label: { en: "Description", de: "Beschreibung" },
81
- summary: { en: "One-to-three-sentence docs-lead: what the feature does + when you need it." },
82
- category: "meta",
83
- editability: "static",
84
- singleton: true,
85
- fields: [
86
- {
87
- path: "text",
88
- label: { en: "Text", de: "Text" },
89
- input: "textarea",
90
- required: true,
91
- placeholder: "Stores per-tenant widgets and exposes CRUD handlers for them.",
92
- },
93
- ],
94
- };
95
- export const uiHintsSchema = {
96
- kind: "uiHints",
97
- label: { en: "UI hints", de: "UI-Hinweise" },
98
- summary: { en: "Picker/scaffolder metadata. Opaque to the Designer; rendered as raw TS source." },
99
- category: "meta",
100
- editability: "opaque",
101
- singleton: true,
102
- fields: [],
103
- };
104
- export const entitySchema = {
105
- kind: "entity",
106
- label: { en: "Entity", de: "Entität" },
107
- summary: { en: "An aggregate stored as event-sourced read-model." },
108
- category: "data",
109
- editability: "static",
110
- fields: [
111
- {
112
- path: "entityName",
113
- label: { en: "Name", de: "Name" },
114
- input: "text",
115
- required: true,
116
- placeholder: "task",
117
- },
118
- {
119
- path: "definition.fields",
120
- label: { en: "Fields", de: "Felder" },
121
- input: "entity-fields-editor",
122
- required: true,
123
- },
124
- {
125
- path: "definition.idType",
126
- label: { en: "ID type", de: "ID-Typ" },
127
- input: "select",
128
- options: ID_TYPE_OPTIONS,
129
- },
130
- {
131
- path: "definition.softDelete",
132
- label: { en: "Soft delete", de: "Soft-Delete" },
133
- hint: { en: "Mark rows isDeleted=true instead of removing them." },
134
- input: "boolean",
135
- },
136
- {
137
- path: "definition.table",
138
- label: { en: "Table name (override)", de: "Tabellenname (Override)" },
139
- hint: { en: "Defaults to read_<plural-snake-case-name>." },
140
- input: "text",
141
- },
142
- ],
143
- };
144
- export const relationSchema = {
145
- kind: "relation",
146
- label: { en: "Relation", de: "Beziehung" },
147
- summary: { en: "Foreign-key relationship between entities." },
148
- category: "data",
149
- editability: "static",
150
- fields: [
151
- {
152
- path: "entityName",
153
- label: { en: "Owner entity", de: "Besitzende Entität" },
154
- input: "entity-ref",
155
- required: true,
156
- },
157
- {
158
- path: "relationName",
159
- label: { en: "Relation name", de: "Beziehungs-Name" },
160
- input: "text",
161
- required: true,
162
- placeholder: "owner",
163
- },
164
- {
165
- path: "definition",
166
- label: { en: "Type", de: "Typ" },
167
- input: "discriminated-union",
168
- discriminator: "type",
169
- variants: [
170
- {
171
- tag: "belongsTo",
172
- label: { en: "Belongs to", de: "Gehört zu" },
173
- fields: [
174
- {
175
- path: "definition.target",
176
- label: { en: "Target entity", de: "Ziel-Entität" },
177
- input: "entity-ref",
178
- required: true,
179
- },
180
- {
181
- path: "definition.foreignKey",
182
- label: { en: "Foreign key column", de: "FK-Spalte" },
183
- input: "text",
184
- required: true,
185
- },
186
- ],
187
- },
188
- {
189
- tag: "hasMany",
190
- label: { en: "Has many", de: "Hat viele" },
191
- fields: [
192
- {
193
- path: "definition.target",
194
- label: { en: "Target entity", de: "Ziel-Entität" },
195
- input: "entity-ref",
196
- required: true,
197
- },
198
- ],
199
- },
200
- {
201
- tag: "manyToMany",
202
- label: { en: "Many to many", de: "Viele zu viele" },
203
- fields: [
204
- {
205
- path: "definition.target",
206
- label: { en: "Target entity", de: "Ziel-Entität" },
207
- input: "entity-ref",
208
- required: true,
209
- },
210
- ],
211
- },
212
- ],
213
- },
214
- ],
215
- };
216
- export const navSchema = {
217
- kind: "nav",
218
- label: { en: "Navigation entry", de: "Navigations-Eintrag" },
219
- summary: { en: "Side-bar / menu link." },
220
- category: "ui",
221
- editability: "static",
222
- fields: [
223
- {
224
- path: "definition.id",
225
- label: { en: "ID", de: "ID" },
226
- input: "text",
227
- required: true,
228
- },
229
- {
230
- path: "definition.label",
231
- label: { en: "Label", de: "Beschriftung" },
232
- input: "text",
233
- },
234
- {
235
- path: "definition.screen",
236
- label: { en: "Screen QN", de: "Screen-QN" },
237
- hint: { en: "<feature>:screen:<id> qualified name." },
238
- input: "text",
239
- },
240
- {
241
- path: "definition.parent",
242
- label: { en: "Parent nav", de: "Eltern-Nav" },
243
- input: "text",
244
- },
245
- ],
246
- };
247
- export const workspaceSchema = {
248
- kind: "workspace",
249
- label: { en: "Workspace", de: "Arbeitsbereich" },
250
- summary: { en: "Persona-/role-scoped UI surface." },
251
- category: "ui",
252
- editability: "static",
253
- fields: [
254
- {
255
- path: "definition.id",
256
- label: { en: "ID", de: "ID" },
257
- input: "text",
258
- required: true,
259
- },
260
- {
261
- path: "definition.label",
262
- label: { en: "Label", de: "Beschriftung" },
263
- input: "text",
264
- },
265
- ],
266
- };
267
- export const configSchema = {
268
- kind: "config",
269
- label: { en: "Config keys", de: "Config-Keys" },
270
- summary: { en: "Typed runtime configuration." },
271
- category: "meta",
272
- editability: "static",
273
- singleton: true,
274
- fields: [
275
- {
276
- path: "keys",
277
- label: { en: "Keys", de: "Keys" },
278
- input: "key-value-map",
279
- keyPlaceholder: "maxItems",
280
- valueInput: "json-readonly",
281
- required: true,
282
- },
283
- ],
284
- };
285
- export const translationsSchema = {
286
- kind: "translations",
287
- label: { en: "Translations", de: "Übersetzungen" },
288
- summary: { en: "i18n strings keyed by locale." },
289
- category: "meta",
290
- editability: "static",
291
- singleton: true,
292
- fields: [
293
- {
294
- path: "keys",
295
- label: { en: "Locales", de: "Sprachen" },
296
- input: "key-value-map",
297
- keyPlaceholder: "en",
298
- valueInput: "json-readonly",
299
- required: true,
300
- },
301
- ],
302
- };
303
- export const metricSchema = {
304
- kind: "metric",
305
- label: { en: "Metric", de: "Metrik" },
306
- summary: { en: "Prometheus-style counter / gauge / histogram." },
307
- category: "meta",
308
- editability: "static",
309
- fields: [
310
- {
311
- path: "shortName",
312
- label: { en: "Short name", de: "Kurzname" },
313
- hint: { en: "Snake-case; auto-prefixed with kumiko_<feature>_." },
314
- input: "text",
315
- required: true,
316
- },
317
- {
318
- path: "options.type",
319
- label: { en: "Type", de: "Typ" },
320
- input: "select",
321
- options: [
322
- { value: "counter", label: { en: "Counter" } },
323
- { value: "gauge", label: { en: "Gauge" } },
324
- { value: "histogram", label: { en: "Histogram" } },
325
- ],
326
- required: true,
327
- },
328
- ],
329
- };
330
- export const secretSchema = {
331
- kind: "secret",
332
- label: { en: "Secret", de: "Secret" },
333
- summary: { en: "Tenant-scoped encrypted credential." },
334
- category: "meta",
335
- editability: "static",
336
- fields: [
337
- {
338
- path: "shortName",
339
- label: { en: "Short name", de: "Kurzname" },
340
- input: "text",
341
- required: true,
342
- },
343
- {
344
- path: "options.label",
345
- label: { en: "UI label (i18n)", de: "UI-Label (i18n)" },
346
- hint: { en: "{ en: 'API Key', de: 'API-Schlüssel' }" },
347
- input: "json-readonly",
348
- required: true,
349
- },
350
- {
351
- path: "options.scope",
352
- label: { en: "Scope", de: "Geltungsbereich" },
353
- input: "select",
354
- options: [{ value: "tenant", label: { en: "Tenant" } }],
355
- },
356
- {
357
- path: "options.writeRoles",
358
- label: { en: "Write roles", de: "Schreibrollen" },
359
- hint: {
360
- en: "Roles allowed to set or delete. Leave empty to rely on the secrets handler access alone.",
361
- de: "Rollen, die setzen oder löschen dürfen. Leer lassen, dann entscheidet allein der Handler-Zugriff.",
362
- },
363
- input: "string-list",
364
- },
365
- ],
366
- };
367
- export const secretNamespaceSchema = {
368
- kind: "secretNamespace",
369
- label: { en: "Secret namespace", de: "Secret-Namespace" },
370
- summary: { en: "Family of tenant-scoped secrets with a runtime-chosen name." },
371
- category: "meta",
372
- editability: "static",
373
- fields: [
374
- {
375
- path: "shortName",
376
- label: { en: "Short name", de: "Kurzname" },
377
- input: "text",
378
- required: true,
379
- },
380
- {
381
- path: "options.label",
382
- label: { en: "UI label (i18n)", de: "UI-Label (i18n)" },
383
- hint: { en: "{ en: 'Webhook token', de: 'Webhook-Token' }" },
384
- input: "json-readonly",
385
- required: true,
386
- },
387
- {
388
- path: "options.scope",
389
- label: { en: "Scope", de: "Geltungsbereich" },
390
- input: "select",
391
- options: [{ value: "tenant", label: { en: "Tenant" } }],
392
- },
393
- {
394
- path: "options.writeRoles",
395
- label: { en: "Write roles", de: "Schreibrollen" },
396
- hint: {
397
- en: "Roles allowed to set or delete. Leave empty to rely on the secrets handler access alone.",
398
- de: "Rollen, die setzen oder löschen dürfen. Leer lassen, dann entscheidet allein der Handler-Zugriff.",
399
- },
400
- input: "string-list",
401
- },
402
- ],
403
- };
404
- export const claimKeySchema = {
405
- kind: "claimKey",
406
- label: { en: "Claim key", de: "Claim-Key" },
407
- summary: { en: "Typed JWT claim contributed at login." },
408
- category: "meta",
409
- editability: "static",
410
- fields: [
411
- {
412
- path: "shortName",
413
- label: { en: "Short name", de: "Kurzname" },
414
- input: "text",
415
- required: true,
416
- },
417
- {
418
- path: "claimType",
419
- label: { en: "Type", de: "Typ" },
420
- input: "select",
421
- options: CLAIM_KEY_TYPE_OPTIONS,
422
- required: true,
423
- },
424
- ],
425
- };
426
- export const referenceDataSchema = {
427
- kind: "referenceData",
428
- label: { en: "Reference data", de: "Referenzdaten" },
429
- summary: { en: "Seed data for an entity (currencies, categories, …)." },
430
- category: "data",
431
- editability: "static",
432
- fields: [
433
- {
434
- path: "entityName",
435
- label: { en: "Entity", de: "Entität" },
436
- input: "entity-ref",
437
- required: true,
438
- },
439
- {
440
- path: "data",
441
- label: { en: "Rows", de: "Zeilen" },
442
- input: "json-readonly",
443
- required: true,
444
- },
445
- {
446
- path: "upsertKey",
447
- label: { en: "Upsert key", de: "Upsert-Key" },
448
- hint: { en: "Field name to deduplicate on." },
449
- input: "text",
450
- },
451
- ],
452
- };
453
- export const useExtensionSchema = {
454
- kind: "useExtension",
455
- label: { en: "Use extension", de: "Erweiterung nutzen" },
456
- summary: { en: "Apply a registered registrar-extension to an entity." },
457
- category: "advanced",
458
- editability: "static",
459
- fields: [
460
- {
461
- path: "extensionName",
462
- label: { en: "Extension name", de: "Erweiterungs-Name" },
463
- input: "text",
464
- required: true,
465
- },
466
- {
467
- path: "entityName",
468
- label: { en: "Entity", de: "Entität" },
469
- input: "entity-ref",
470
- required: true,
471
- },
472
- {
473
- path: "options",
474
- label: { en: "Options", de: "Optionen" },
475
- input: "json-readonly",
476
- },
477
- ],
478
- };
@@ -1,158 +0,0 @@
1
- import type { FeaturePatternKind } from "../feature-ast/patterns.ts";
2
- export type FormInputType = "text" | "textarea" | "number" | "boolean" | "select" | "string-list" | "code-block" | "entity-fields-editor" | "key-value-map" | "discriminated-union" | "entity-ref" | "json-readonly";
3
- /**
4
- * Bilingual labels — Designer renders the user's locale, falls back to
5
- * `en`. AI-Builder uses `en` exclusively (cheaper prompts, single
6
- * grounding language for the model).
7
- */
8
- export type FormFieldLabel = {
9
- readonly en: string;
10
- readonly de?: string;
11
- };
12
- /**
13
- * Common shape every field carries — the input-specific fields are added
14
- * by the discriminated subtypes below.
15
- */
16
- type FormFieldBase = {
17
- /**
18
- * Dot/bracket-path inside the FeaturePattern. e.g. "entityName",
19
- * "definition.fields", "access.roles", "templates.email".
20
- */
21
- readonly path: string;
22
- readonly label: FormFieldLabel;
23
- /**
24
- * Short hint shown below the input. Optional — keep terse, the
25
- * Designer / LLM is the doc consumer, not the casual reader.
26
- */
27
- readonly hint?: FormFieldLabel;
28
- /**
29
- * Whether the form should refuse to submit when this field is empty.
30
- * Defaults to `false`. Validation runs *before* the patch hits the
31
- * file — caller-side guard.
32
- */
33
- readonly required?: boolean;
34
- /**
35
- * Read-only fields are surfaced for context but never edited (e.g.
36
- * `kind` discriminator, opaque source-spans on mixed patterns).
37
- */
38
- readonly readOnly?: boolean;
39
- };
40
- export type TextField = FormFieldBase & {
41
- readonly input: "text";
42
- readonly placeholder?: string;
43
- readonly maxLength?: number;
44
- readonly pattern?: string;
45
- };
46
- export type TextareaField = FormFieldBase & {
47
- readonly input: "textarea";
48
- readonly placeholder?: string;
49
- readonly rows?: number;
50
- };
51
- export type NumberField = FormFieldBase & {
52
- readonly input: "number";
53
- readonly min?: number;
54
- readonly max?: number;
55
- readonly step?: number;
56
- };
57
- export type BooleanField = FormFieldBase & {
58
- readonly input: "boolean";
59
- };
60
- export type SelectOption = {
61
- readonly value: string;
62
- readonly label: FormFieldLabel;
63
- };
64
- export type SelectField = FormFieldBase & {
65
- readonly input: "select";
66
- readonly options: readonly SelectOption[];
67
- };
68
- export type StringListField = FormFieldBase & {
69
- readonly input: "string-list";
70
- /** Per-item placeholder, e.g. "feature-name". */
71
- readonly itemPlaceholder?: string;
72
- };
73
- export type CodeBlockField = FormFieldBase & {
74
- readonly input: "code-block";
75
- /**
76
- * The source language for syntax highlighting. The skeleton renders
77
- * everything as plain TS; later iterations can branch on `zod` /
78
- * `tsx` for dedicated highlighters.
79
- */
80
- readonly language: "typescript" | "tsx" | "zod";
81
- };
82
- /**
83
- * Editor for `EntityDefinition.fields` — a row per field with name,
84
- * type-discriminator, plus type-specific knobs. Modeled as a single
85
- * input-type because the structure is too rich for a generic
86
- * key-value-map (each row's right-hand side is itself a discriminated
87
- * union over FieldDefinition variants).
88
- */
89
- export type EntityFieldsEditorField = FormFieldBase & {
90
- readonly input: "entity-fields-editor";
91
- };
92
- /**
93
- * Generic `{ [key]: value }` editor — value-shape is described by an
94
- * inner FormSchema applied to each entry. Used for config-keys,
95
- * translations, projection.applyBodies, notification.templates.
96
- */
97
- export type KeyValueMapField = FormFieldBase & {
98
- readonly input: "key-value-map";
99
- /** Placeholder for new keys. */
100
- readonly keyPlaceholder?: string;
101
- /** What input renders for each value. Recursive — keep it simple. */
102
- readonly valueInput: FormInputType;
103
- };
104
- export type DiscriminatedUnionField = FormFieldBase & {
105
- readonly input: "discriminated-union";
106
- /** Tag-property name (e.g. "type" for hook-target, "kind" for relation). */
107
- readonly discriminator: string;
108
- /** Each branch carries its own field-list. */
109
- readonly variants: ReadonlyArray<{
110
- readonly tag: string;
111
- readonly label: FormFieldLabel;
112
- readonly fields: readonly FormFieldSpec[];
113
- }>;
114
- };
115
- export type EntityRefField = FormFieldBase & {
116
- readonly input: "entity-ref";
117
- /**
118
- * If true, the input also accepts cross-feature references like
119
- * `auth:event:loggedIn`. Default is feature-local only.
120
- */
121
- readonly allowQualified?: boolean;
122
- };
123
- export type JsonReadonlyField = FormFieldBase & {
124
- readonly input: "json-readonly";
125
- };
126
- export type FormFieldSpec = TextField | TextareaField | NumberField | BooleanField | SelectField | StringListField | CodeBlockField | EntityFieldsEditorField | KeyValueMapField | DiscriminatedUnionField | EntityRefField | JsonReadonlyField;
127
- /**
128
- * High-level grouping the Designer uses for navigation: data shapes
129
- * (entity / relation), behaviour (handler / hook), UI (screen / nav),
130
- * meta (config / metric / secret), background (job / projection),
131
- * cross-cutting (notification / authClaims / httpRoute), advanced
132
- * (extendsRegistrar / unknown). Order in the Designer panel is alpha
133
- * inside a category.
134
- */
135
- export type PatternCategory = "data" | "behaviour" | "ui" | "meta" | "background" | "cross-cutting" | "advanced";
136
- export type PatternFormSchema = {
137
- readonly kind: FeaturePatternKind;
138
- readonly label: FormFieldLabel;
139
- /** Short blurb shown in the Designer's "add new pattern" dialog. */
140
- readonly summary: FormFieldLabel;
141
- readonly category: PatternCategory;
142
- /**
143
- * Editability matches feature-ast's `getEditability()`:
144
- * - "static" → fully form-driven, no closures
145
- * - "mixed" → header is form, body is opaque code-block
146
- * - "opaque" → entire pattern is read-only
147
- */
148
- readonly editability: "static" | "mixed" | "opaque";
149
- /**
150
- * Singleton kinds appear at most once per feature (requires,
151
- * toggleable, config, …). The Designer hides "Add" once the
152
- * singleton is present.
153
- */
154
- readonly singleton?: boolean;
155
- /** Ordered list of editable fields. */
156
- readonly fields: readonly FormFieldSpec[];
157
- };
158
- export {};
@@ -1,36 +0,0 @@
1
- // Forms-Schema metadata — describes how a FeaturePattern is rendered as
2
- // a Designer form, fed to an LLM as a JSON-Schema, or surfaced in the
3
- // MCP-Server tool list. One schema, three consumers — that's the whole
4
- // point of factoring this out of the hand-rolled skeleton.
5
- //
6
- // **NOT a DSL.** The Source-of-Truth for a feature stays
7
- // `defineFeature.ts` — the AST-visitor (feature-ast/parse.ts) reads it
8
- // and the renderer (feature-ast/render.ts) writes it. This file is
9
- // pure metadata for UI / LLM-prompt rendering: how to display the
10
- // already-parsed FeaturePattern in a form. No alternative parser, no
11
- // alternative syntax, no second canonical representation.
12
- //
13
- // **Vocabulary** (12 input-types):
14
- //
15
- // text — single-line string (name / label / id)
16
- // textarea — multi-line string (description / SQL / readme)
17
- // number — numeric (version / fromVersion / rateLimit.limit)
18
- // boolean — checkbox (softDelete / default / openToAll)
19
- // select — closed enum (idType / hookType / method)
20
- // string-list — readonly string[] (featureNames / roles)
21
- // code-block — opaque TS source-span, read-only in the form
22
- // (schemaSource / handlerBody / fnBody)
23
- // entity-fields-editor — per-row editor for EntityDefinition.fields
24
- // key-value-map — generic { [key]: structured-value } editor
25
- // (config.keys / translations.keys / applyBodies)
26
- // discriminated-union — tagged sub-form (AccessRule: roles vs openToAll)
27
- // entity-ref — string with autocomplete against the registry
28
- // json-readonly — opaque pretty-printed JSON (Unknown / extension)
29
- //
30
- // **Path notation:** `path` references the value's location inside the
31
- // FeaturePattern object using dot-separated keys (`definition.fields`,
32
- // `access.roles`, `templates.email`). Numeric indices use the bracket
33
- // form (`columns.0`). The Designer/LLM uses paths for read & write —
34
- // the patcher consumes pattern-level updates only, so paths are
35
- // purely a UI concern at this stage.
36
- export {};
@@ -1,3 +0,0 @@
1
- import type { HandlerContext, JobContext, ProviderPluginContext } from "@cosmicdrift/kumiko-types/handlers";
2
- export declare function providerPluginContextFromHandler(ctx: HandlerContext): ProviderPluginContext;
3
- export declare function providerPluginContextFromJob(ctx: JobContext): ProviderPluginContext;