@aurorajs.dev/catalyst-cli 1.0.2 → 1.1.3

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 (2655) hide show
  1. package/README.md +1 -1
  2. package/dist/commands/generate/index.js +31 -0
  3. package/dist/commands/sheets/diff.js +2 -4
  4. package/dist/commands/sheets/pull.d.ts +0 -1
  5. package/dist/commands/sheets/pull.js +2 -14
  6. package/dist/commands/sheets/push.d.ts +0 -1
  7. package/dist/commands/sheets/push.js +2 -14
  8. package/dist/commands/sheets/validate.js +3 -4
  9. package/dist/generator/domain/column-width.d.ts +2 -2
  10. package/dist/generator/domain/column-width.js +20 -15
  11. package/dist/generator/domain/config.d.ts +45 -6
  12. package/dist/generator/domain/config.js +152 -48
  13. package/dist/generator/domain/cross-bc-relations-discovery.d.ts +38 -0
  14. package/dist/generator/domain/cross-bc-relations-discovery.js +89 -0
  15. package/dist/generator/domain/cross-schema-resolver.d.ts +54 -1
  16. package/dist/generator/domain/cross-schema-resolver.js +52 -3
  17. package/dist/generator/domain/custom-field-value.d.ts +124 -0
  18. package/dist/generator/domain/custom-field-value.js +206 -0
  19. package/dist/generator/domain/declared-surface.d.ts +45 -0
  20. package/dist/generator/domain/declared-surface.js +106 -0
  21. package/dist/generator/domain/dialog-width.d.ts +46 -0
  22. package/dist/generator/domain/dialog-width.js +70 -0
  23. package/dist/generator/domain/display-field.d.ts +4 -3
  24. package/dist/generator/domain/display-field.js +11 -3
  25. package/dist/generator/domain/form-id.d.ts +3 -0
  26. package/dist/generator/domain/form-id.js +21 -0
  27. package/dist/generator/domain/i18n-embedded.d.ts +102 -0
  28. package/dist/generator/domain/i18n-embedded.js +112 -0
  29. package/dist/generator/domain/i18n-table.d.ts +112 -0
  30. package/dist/generator/domain/i18n-table.js +189 -0
  31. package/dist/generator/domain/model.d.ts +44 -16
  32. package/dist/generator/domain/model.js +1 -3
  33. package/dist/generator/domain/module-resolution.d.ts +17 -0
  34. package/dist/generator/domain/module-resolution.js +23 -0
  35. package/dist/generator/domain/operation-names.d.ts +17 -0
  36. package/dist/generator/domain/operation-names.js +27 -0
  37. package/dist/generator/domain/pivot.js +11 -1
  38. package/dist/generator/domain/property-filters.d.ts +68 -5
  39. package/dist/generator/domain/property-filters.js +97 -12
  40. package/dist/generator/domain/property-mappers.d.ts +67 -5
  41. package/dist/generator/domain/property-mappers.js +143 -59
  42. package/dist/generator/domain/property-pick-model.d.ts +12 -0
  43. package/dist/generator/domain/property-pick-model.js +47 -0
  44. package/dist/generator/domain/property-predicates.d.ts +55 -16
  45. package/dist/generator/domain/property-predicates.js +56 -17
  46. package/dist/generator/domain/property-validators.d.ts +20 -0
  47. package/dist/generator/domain/property-validators.js +66 -0
  48. package/dist/generator/domain/property-width.js +4 -2
  49. package/dist/generator/domain/readonly-payload-types.d.ts +72 -0
  50. package/dist/generator/domain/readonly-payload-types.js +96 -0
  51. package/dist/generator/domain/relation-search-eligibility.d.ts +15 -0
  52. package/dist/generator/domain/relation-search-eligibility.js +50 -0
  53. package/dist/generator/domain/relations-builder.d.ts +103 -0
  54. package/dist/generator/domain/relations-builder.js +413 -0
  55. package/dist/generator/domain/schema-loader.js +65 -2
  56. package/dist/generator/domain/widget-type.d.ts +1 -0
  57. package/dist/generator/domain/widget-type.js +1 -0
  58. package/dist/generator/engine/code-writer/code-writer.d.ts +330 -23
  59. package/dist/generator/engine/code-writer/code-writer.js +959 -141
  60. package/dist/generator/engine/code-writer/drivers/import.driver.d.ts +22 -0
  61. package/dist/generator/engine/code-writer/drivers/import.driver.js +64 -0
  62. package/dist/generator/engine/code-writer/drivers/object.driver.d.ts +30 -0
  63. package/dist/generator/engine/code-writer/drivers/object.driver.js +58 -0
  64. package/dist/generator/engine/file-manager.d.ts +29 -2
  65. package/dist/generator/engine/file-manager.js +8 -2
  66. package/dist/generator/engine/file-writer.d.ts +3 -3
  67. package/dist/generator/engine/file-writer.js +58 -58
  68. package/dist/generator/engine/ignored-file.d.ts +6 -0
  69. package/dist/generator/engine/ignored-file.js +31 -0
  70. package/dist/generator/engine/lock-file.d.ts +36 -54
  71. package/dist/generator/engine/lock-file.js +74 -168
  72. package/dist/generator/engine/template-engine.js +9 -1
  73. package/dist/generator/handlers/back.handler.d.ts +45 -0
  74. package/dist/generator/handlers/back.handler.js +252 -59
  75. package/dist/generator/handlers/front.handler.d.ts +54 -0
  76. package/dist/generator/handlers/front.handler.js +247 -29
  77. package/dist/generator/handlers/handler-utils.js +2 -1
  78. package/dist/generator/packages/front-package-helpers.d.ts +8 -1
  79. package/dist/generator/packages/front-package-helpers.js +26 -5
  80. package/dist/generator/packages/installers/front/identity.js +8 -17
  81. package/dist/generator/packages/installers/front/queue-manager.d.ts +23 -0
  82. package/dist/generator/packages/installers/front/queue-manager.js +35 -0
  83. package/dist/generator/packages/installers/identity.js +4 -0
  84. package/dist/generator/packages/installers/queue-manager.js +2 -3
  85. package/dist/generator/utils/code-gen.d.ts +9 -2
  86. package/dist/generator/utils/code-gen.js +72 -26
  87. package/dist/generator/utils/mocker.js +19 -10
  88. package/dist/generator/utils/path-allowed.js +23 -2
  89. package/dist/generator/utils/relations-file.d.ts +127 -0
  90. package/dist/generator/utils/relations-file.js +248 -0
  91. package/dist/generator/utils/string-utils.d.ts +7 -0
  92. package/dist/generator/utils/string-utils.js +13 -0
  93. package/dist/origin/domain/actions.d.ts +13 -0
  94. package/dist/origin/domain/actions.js +13 -1
  95. package/dist/origin/domain/diff.js +9 -1
  96. package/dist/sheets/domain/auth.d.ts +15 -1
  97. package/dist/sheets/domain/auth.js +25 -2
  98. package/dist/sheets/domain/retry.d.ts +61 -0
  99. package/dist/sheets/domain/retry.js +76 -0
  100. package/dist/sheets/domain/types.d.ts +144 -2
  101. package/dist/sheets/domain/types.js +249 -12
  102. package/dist/sheets/sync/diff-engine.js +62 -5
  103. package/dist/sheets/sync/sheet-to-yaml.d.ts +20 -0
  104. package/dist/sheets/sync/sheet-to-yaml.js +139 -51
  105. package/dist/sheets/sync/yaml-to-sheet.d.ts +62 -0
  106. package/dist/sheets/sync/yaml-to-sheet.js +271 -29
  107. package/dist/sheets/transformers/property-transformer.js +60 -23
  108. package/dist/sheets/validators/schema-validator.js +54 -38
  109. package/dist/templates/ai/claude/.claude/settings.json +1 -4
  110. package/dist/templates/backend/application/.claude/skills/catalyst-backend-testing/SKILL.md +15 -6
  111. package/dist/templates/backend/application/.claude/skills/catalyst-cross-bounded-context-ports/SKILL.md +39 -9
  112. package/dist/templates/backend/application/.claude/skills/catalyst-field-schema/SKILL.md +68 -48
  113. package/dist/templates/backend/application/.claude/skills/catalyst-field-schema/references/field-schema-and-decorators.md +38 -20
  114. package/dist/templates/backend/application/.claude/skills/catalyst-field-schema/references/query-statement.md +194 -201
  115. package/dist/templates/backend/application/.claude/skills/catalyst-handler-composer/SKILL.md +62 -60
  116. package/dist/templates/backend/application/.claude/skills/catalyst-handler-composer/references/additional-apis-workflow.md +4 -4
  117. package/dist/templates/backend/application/.claude/skills/catalyst-handler-composer/references/cli-first-workflow.md +17 -17
  118. package/dist/templates/backend/application/.claude/skills/catalyst-handler-composer/references/create-handler.md +3 -3
  119. package/dist/templates/backend/application/.claude/skills/catalyst-handler-composer/references/delete-handler.md +7 -7
  120. package/dist/templates/backend/application/.claude/skills/catalyst-handler-composer/references/read-handler.md +27 -17
  121. package/dist/templates/backend/application/.claude/skills/catalyst-handler-composer/references/update-handler.md +34 -19
  122. package/dist/templates/backend/application/.claude/skills/catalyst-nestjs-primitives/SKILL.md +6 -4
  123. package/dist/templates/backend/application/.claude/skills/catalyst-nestjs-primitives/references/minimum-templates.md +1 -1
  124. package/dist/templates/backend/application/.claude/skills/catalyst-project-structure/SKILL.md +167 -246
  125. package/dist/templates/backend/application/.claude/skills/catalyst-provider-composition/SKILL.md +260 -0
  126. package/dist/templates/backend/application/.claude/skills/catalyst-schema-migrations/SKILL.md +215 -0
  127. package/dist/templates/backend/application/.claude/skills/catalyst-tools/SKILL.md +266 -0
  128. package/dist/templates/backend/application/CLAUDE.md +5 -1
  129. package/dist/templates/backend/application/README.md +6 -4
  130. package/dist/templates/backend/application/drizzle.config.ts +46 -0
  131. package/dist/templates/backend/application/eslint.config.mjs +54 -0
  132. package/dist/templates/backend/application/nest-cli.json +5 -0
  133. package/dist/templates/backend/application/package.json +25 -10
  134. package/dist/templates/backend/application/scripts/db/check.ts +80 -0
  135. package/dist/templates/backend/application/scripts/db/generate.ts +55 -0
  136. package/dist/templates/backend/application/scripts/db/migrate.ts +101 -0
  137. package/dist/templates/backend/application/scripts/iam/permissions-without-role.ts +177 -0
  138. package/dist/templates/backend/application/src/@aurora/core.module.ts +50 -30
  139. package/dist/templates/backend/application/src/@aurora/decorators/auth.decorator.ts +1 -4
  140. package/dist/templates/backend/application/src/@aurora/modules/authentication/authentication.module.ts +7 -2
  141. package/dist/templates/backend/application/src/@aurora/modules/authentication/domain/anonymous-account.ts +1 -0
  142. package/dist/templates/backend/application/src/@aurora/modules/authentication/domain/errors/index.ts +1 -0
  143. package/dist/templates/backend/application/src/@aurora/modules/authentication/domain/errors/token-issuance-disabled.error.ts +20 -0
  144. package/dist/templates/backend/application/src/@aurora/modules/authentication/domain/index.ts +1 -0
  145. package/dist/templates/backend/application/src/@aurora/modules/authentication/domain/ports/account-cache-invalidator.port.ts +17 -0
  146. package/dist/templates/backend/application/src/@aurora/modules/authentication/domain/ports/account-cache-invalidator.token.ts +1 -0
  147. package/dist/templates/backend/application/src/@aurora/modules/authentication/domain/ports/account-loader.port.ts +29 -1
  148. package/dist/templates/backend/application/src/@aurora/modules/authentication/domain/ports/authentication-strategy.port.ts +10 -1
  149. package/dist/templates/backend/application/src/@aurora/modules/authentication/domain/ports/index.ts +2 -0
  150. package/dist/templates/backend/application/src/@aurora/modules/authentication/domain/ports/jwt-signer.port.ts +10 -1
  151. package/dist/templates/backend/application/src/@aurora/modules/authentication/index.ts +1 -0
  152. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/factory/authentication-strategy.factory.ts +6 -2
  153. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/guards/authorization-permissions.guard.ts +1 -2
  154. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/aurora-hub/aurora-hub-consumer.adapter.ts +17 -5
  155. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/authentication-cache-invalidator.adapter.spec.ts +56 -0
  156. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/authentication-cache-invalidator.adapter.ts +28 -0
  157. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/cache-key.ts +9 -0
  158. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/index.ts +11 -0
  159. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/local-provider/anonymous-account-loader.adapter.spec.ts +1 -1
  160. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/local-provider/jwt-signer.adapter.spec.ts +219 -22
  161. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/local-provider/jwt-signer.adapter.ts +60 -10
  162. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/local-provider/local-provider.adapter.spec.ts +156 -0
  163. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/local-provider/local-provider.adapter.ts +28 -3
  164. package/dist/templates/backend/application/src/@aurora/modules/criteria/criteria-config.module.ts +15 -8
  165. package/dist/templates/backend/application/src/@aurora/modules/graphql/core.graphql +197 -252
  166. package/dist/templates/backend/application/src/@aurora/modules/handler-registry/event-dispatcher.spec.ts +175 -0
  167. package/dist/templates/backend/application/src/@aurora/modules/handler-registry/event-dispatcher.ts +37 -0
  168. package/dist/templates/backend/application/src/@aurora/modules/handler-registry/handler-registry.module.ts +24 -0
  169. package/dist/templates/backend/application/src/@aurora/modules/handler-registry/handler.decorator.ts +21 -0
  170. package/dist/templates/backend/application/src/@aurora/modules/handler-registry/index.ts +4 -0
  171. package/dist/templates/backend/application/src/@aurora/modules/handler-registry/keyed-handler-registry.spec.ts +171 -0
  172. package/dist/templates/backend/application/src/@aurora/modules/handler-registry/keyed-handler-registry.ts +46 -0
  173. package/dist/templates/backend/application/src/@aurora/modules/health/app-version.provider.spec.ts +65 -0
  174. package/dist/templates/backend/application/src/@aurora/modules/health/app-version.provider.ts +112 -0
  175. package/dist/templates/backend/application/src/@aurora/modules/health/health.controller.spec.ts +50 -0
  176. package/dist/templates/backend/application/src/@aurora/modules/health/health.controller.ts +33 -0
  177. package/dist/templates/backend/application/src/@aurora/modules/health/health.module.ts +20 -0
  178. package/dist/templates/backend/application/src/@aurora/modules/health/index.ts +3 -0
  179. package/dist/templates/backend/application/src/@aurora/modules/index.ts +4 -0
  180. package/dist/templates/backend/application/src/@aurora/modules/mailer/index.ts +1 -0
  181. package/dist/templates/backend/application/src/@aurora/modules/mailer/mailer-client.module.ts +2 -2
  182. package/dist/templates/backend/application/src/@aurora/modules/mailer/mailer-smtp-transport.service.ts +4 -2
  183. package/dist/templates/backend/application/src/@aurora/modules/report-engine/aurora-report.token.ts +11 -0
  184. package/dist/templates/backend/application/src/@aurora/modules/report-engine/execute-report.service.spec.ts +154 -0
  185. package/dist/templates/backend/application/src/@aurora/modules/report-engine/execute-report.service.ts +112 -0
  186. package/dist/templates/backend/application/src/@aurora/modules/report-engine/index.ts +82 -0
  187. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-cardinality.guard.spec.ts +297 -0
  188. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-cardinality.guard.ts +180 -0
  189. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-cube.types.ts +409 -0
  190. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-cube.validator.spec.ts +289 -0
  191. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-cube.validator.ts +98 -0
  192. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-db-pool.preflight.spec.ts +241 -0
  193. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-db-pool.provider.spec.ts +95 -0
  194. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-db-pool.provider.ts +74 -0
  195. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-db-pool.token.ts +17 -0
  196. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-engine.module.spec.ts +120 -0
  197. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-engine.module.ts +106 -0
  198. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-preflight.service.ts +152 -0
  199. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-query.builder.spec.ts +448 -0
  200. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-query.builder.ts +319 -0
  201. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-registry.spec.ts +179 -0
  202. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-registry.ts +47 -0
  203. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-selection.validator.spec.ts +104 -0
  204. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-selection.validator.ts +64 -0
  205. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-tenant.scoper.spec.ts +232 -0
  206. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-tenant.scoper.ts +132 -0
  207. package/dist/templates/backend/application/src/@aurora/modules/report-engine/result-modes/client-mode.spec.ts +156 -0
  208. package/dist/templates/backend/application/src/@aurora/modules/report-engine/result-modes/client-mode.ts +93 -0
  209. package/dist/templates/backend/application/src/@aurora/modules/report-engine/result-modes/server-mode.spec.ts +288 -0
  210. package/dist/templates/backend/application/src/@aurora/modules/report-engine/result-modes/server-mode.ts +254 -0
  211. package/dist/templates/backend/application/src/@aurora/services/index.ts +0 -1
  212. package/dist/templates/backend/application/src/@aurora/shared.module.ts +11 -9
  213. package/dist/templates/backend/application/src/@bridges/bridges.module.ts +39 -4
  214. package/dist/templates/backend/application/src/@bridges/production-planning/operator-account/index.ts +1 -0
  215. package/dist/templates/backend/application/src/@bridges/production-planning/operator-account/ports/index.ts +2 -0
  216. package/dist/templates/backend/application/src/@bridges/production-planning/operator-account/ports/production-planning-operator-account-reader.port.ts +29 -0
  217. package/dist/templates/backend/application/src/@bridges/production-planning/operator-account/ports/production-planning-operator-account-reader.token.ts +3 -0
  218. package/dist/templates/backend/application/src/@bridges/storage-account/file-manager/adapters/index.ts +1 -0
  219. package/dist/templates/backend/application/src/@bridges/storage-account/file-manager/adapters/storage-account-file-manager.adapter.spec.ts +89 -0
  220. package/dist/templates/backend/application/src/@bridges/storage-account/file-manager/adapters/storage-account-file-manager.adapter.ts +36 -0
  221. package/dist/templates/backend/application/src/@bridges/storage-account/file-manager/index.ts +1 -0
  222. package/dist/templates/backend/application/src/@bridges/storage-account/file-manager/ports/index.ts +2 -0
  223. package/dist/templates/backend/application/src/@bridges/storage-account/file-manager/ports/storage-account-file-manager.port.ts +47 -0
  224. package/dist/templates/backend/application/src/@bridges/storage-account/file-manager/ports/storage-account-file-manager.token.ts +1 -0
  225. package/dist/templates/backend/application/src/@bridges/storage-account/signed-url/adapters/index.ts +1 -0
  226. package/dist/templates/backend/application/src/@bridges/storage-account/signed-url/adapters/storage-account-signed-url.adapter.spec.ts +68 -0
  227. package/dist/templates/backend/application/src/@bridges/storage-account/signed-url/adapters/storage-account-signed-url.adapter.ts +37 -0
  228. package/dist/templates/backend/application/src/@bridges/storage-account/signed-url/index.ts +1 -0
  229. package/dist/templates/backend/application/src/@bridges/storage-account/signed-url/ports/index.ts +2 -0
  230. package/dist/templates/backend/application/src/@bridges/storage-account/signed-url/ports/storage-account-signed-url.port.ts +21 -0
  231. package/dist/templates/backend/application/src/@bridges/storage-account/signed-url/ports/storage-account-signed-url.token.ts +1 -0
  232. package/dist/templates/backend/application/src/@config/bullmq/index.ts +1 -0
  233. package/dist/templates/backend/application/src/@config/drizzle/aurora-drizzle-schema.spec.ts +251 -0
  234. package/dist/templates/backend/application/src/@config/drizzle/aurora-drizzle-schema.ts +353 -0
  235. package/dist/templates/backend/application/src/@config/drizzle/aurora-field-schemas.spec.ts +94 -0
  236. package/dist/templates/backend/application/src/@config/drizzle/aurora-field-schemas.ts +182 -0
  237. package/dist/templates/backend/application/src/@config/drizzle/drizzle-migrations-journal.config.ts +31 -0
  238. package/dist/templates/backend/application/src/@config/drizzle/drizzle-migrations.module.spec.ts +152 -0
  239. package/dist/templates/backend/application/src/@config/drizzle/drizzle-migrations.module.ts +84 -0
  240. package/dist/templates/backend/application/src/@config/drizzle/index.ts +3 -0
  241. package/dist/templates/backend/application/src/@config/index.ts +4 -0
  242. package/dist/templates/backend/application/src/@config/lang/index.ts +1 -0
  243. package/dist/templates/backend/application/src/@config/lang/lang.providers.ts +26 -0
  244. package/dist/templates/backend/application/src/@config/mailer/mailer-transport.module.ts +4 -0
  245. package/dist/templates/backend/application/src/@config/storage-account/index.ts +1 -0
  246. package/dist/templates/backend/application/src/@config/storage-account/storage-account.providers.spec.ts +48 -0
  247. package/dist/templates/backend/application/src/@config/storage-account/storage-account.providers.ts +34 -0
  248. package/dist/templates/backend/application/src/app.module.ts +35 -3
  249. package/dist/templates/backend/application/src/database/migrations/0001_create_example_demo_table.sql +9 -0
  250. package/dist/templates/backend/application/src/database/migrations/0002_backfill_custom_field_group_entity_types.sql +19 -0
  251. package/dist/templates/backend/application/src/database/migrations/0003_create_production_order_header_code_sequence.sql +22 -0
  252. package/dist/templates/backend/application/src/database/migrations/drizzle/20260705093120_baseline/migration.sql +503 -0
  253. package/dist/templates/backend/application/src/database/migrations/drizzle/20260705093120_baseline/snapshot.json +6287 -0
  254. package/dist/templates/backend/application/src/database/migrations/drizzle/20260705095048_gap-finder/migration.sql +482 -0
  255. package/dist/templates/backend/application/src/database/migrations/drizzle/20260705095048_gap-finder/snapshot.json +12646 -0
  256. package/dist/templates/backend/application/src/database/migrations/drizzle/20260705144001_gap-finder-fixes/migration.sql +38 -0
  257. package/dist/templates/backend/application/src/database/migrations/drizzle/20260705144001_gap-finder-fixes/snapshot.json +12853 -0
  258. package/dist/templates/backend/application/src/database/migrations/drizzle/20260706090131_gap-finder-fx-normalization/migration.sql +17 -0
  259. package/dist/templates/backend/application/src/database/migrations/drizzle/20260706090131_gap-finder-fx-normalization/snapshot.json +13090 -0
  260. package/dist/templates/backend/application/src/database/migrations/drizzle/20260706102144_gap-finder-reported-currency/migration.sql +1 -0
  261. package/dist/templates/backend/application/src/database/migrations/drizzle/20260706102144_gap-finder-reported-currency/snapshot.json +13103 -0
  262. package/dist/templates/backend/application/src/database/migrations/drizzle/20260706104434_gap-finder-market-share-engine-version/migration.sql +4 -0
  263. package/dist/templates/backend/application/src/database/migrations/drizzle/20260706104434_gap-finder-market-share-engine-version/snapshot.json +13123 -0
  264. package/dist/templates/backend/application/src/database/migrations/drizzle/20260706121044_gap-finder-historical-price/migration.sql +17 -0
  265. package/dist/templates/backend/application/src/database/migrations/drizzle/20260706121044_gap-finder-historical-price/snapshot.json +13357 -0
  266. package/dist/templates/backend/application/src/database/migrations/drizzle/20260706143916_gap-finder-backtest-run-state-block/migration.sql +7 -0
  267. package/dist/templates/backend/application/src/database/migrations/drizzle/20260706143916_gap-finder-backtest-run-state-block/snapshot.json +13443 -0
  268. package/dist/templates/backend/application/src/database/migrations/drizzle/20260707080202_business-partner-portal/migration.sql +266 -0
  269. package/dist/templates/backend/application/src/database/migrations/drizzle/20260707080202_business-partner-portal/snapshot.json +17183 -0
  270. package/dist/templates/backend/application/src/database/migrations/drizzle/20260710072059_bpp-supplier-document-invoice-unique/migration.sql +18 -0
  271. package/dist/templates/backend/application/src/database/migrations/drizzle/20260710072059_bpp-supplier-document-invoice-unique/snapshot.json +17183 -0
  272. package/dist/templates/backend/application/src/database/migrations/drizzle/20260712072603_busy_mystique/migration.sql +177 -0
  273. package/dist/templates/backend/application/src/database/migrations/drizzle/20260712072603_busy_mystique/snapshot.json +19569 -0
  274. package/dist/templates/backend/application/src/database/migrations/drizzle/20260714215357_custom-fields/migration.sql +85 -0
  275. package/dist/templates/backend/application/src/database/migrations/drizzle/20260714215357_custom-fields/snapshot.json +20741 -0
  276. package/dist/templates/backend/application/src/database/migrations/drizzle/20260715072820_gap-finder-source-registry-latency/migration.sql +1 -0
  277. package/dist/templates/backend/application/src/database/migrations/drizzle/20260715072820_gap-finder-source-registry-latency/snapshot.json +20754 -0
  278. package/dist/templates/backend/application/src/database/migrations/drizzle/20260715110357_gap-finder-peer-group-curation-reason/migration.sql +1 -0
  279. package/dist/templates/backend/application/src/database/migrations/drizzle/20260715110357_gap-finder-peer-group-curation-reason/snapshot.json +20767 -0
  280. package/dist/templates/backend/application/src/database/migrations/drizzle/20260715151843_add-common-lang/migration.sql +22 -0
  281. package/dist/templates/backend/application/src/database/migrations/drizzle/20260715151843_add-common-lang/snapshot.json +21066 -0
  282. package/dist/templates/backend/application/src/database/migrations/drizzle/20260716165704_add_pivot_table_equipment_process/migration.sql +8 -0
  283. package/dist/templates/backend/application/src/database/migrations/drizzle/20260716165704_add_pivot_table_equipment_process/snapshot.json +21089 -0
  284. package/dist/templates/backend/application/src/database/migrations/drizzle/20260717132829_common-country/migration.sql +42 -0
  285. package/dist/templates/backend/application/src/database/migrations/drizzle/20260717132829_common-country/snapshot.json +21661 -0
  286. package/dist/templates/backend/application/src/database/migrations/drizzle/20260719084905_custom-field-group-label-i18n-embedded/migration.sql +5 -0
  287. package/dist/templates/backend/application/src/database/migrations/drizzle/20260719084905_custom-field-group-label-i18n-embedded/snapshot.json +21661 -0
  288. package/dist/templates/backend/application/src/database/migrations/drizzle/20260719175835_add-custom-field-group-entity-types/migration.sql +2 -0
  289. package/dist/templates/backend/application/src/database/migrations/drizzle/20260719175835_add-custom-field-group-entity-types/snapshot.json +21695 -0
  290. package/dist/templates/backend/application/src/database/migrations/drizzle/20260719235605_add-custom-field-entity-registry/migration.sql +13 -0
  291. package/dist/templates/backend/application/src/database/migrations/drizzle/20260719235605_add-custom-field-entity-registry/snapshot.json +21866 -0
  292. package/dist/templates/backend/application/src/database/migrations/drizzle/20260720094932_drop-custom-field-group-entity-pivot/migration.sql +1 -0
  293. package/dist/templates/backend/application/src/database/migrations/drizzle/20260720094932_drop-custom-field-group-entity-pivot/snapshot.json +21701 -0
  294. package/dist/templates/backend/application/src/database/migrations/drizzle/20260722150640_close-labeli18n-rename-and-tag-index-drift/migration.sql +12 -0
  295. package/dist/templates/backend/application/src/database/migrations/drizzle/20260722150640_close-labeli18n-rename-and-tag-index-drift/snapshot.json +21706 -0
  296. package/dist/templates/backend/application/src/database/migrations/drizzle/20260722165358_normalize-legacy-index-names/migration.sql +470 -0
  297. package/dist/templates/backend/application/src/database/migrations/drizzle/20260722165358_normalize-legacy-index-names/snapshot.json +21767 -0
  298. package/dist/templates/backend/application/src/database/migrations/drizzle/20260728173835_drop-iam-tag-custom-field-value/migration.sql +1 -0
  299. package/dist/templates/backend/application/src/database/migrations/drizzle/20260728173835_drop-iam-tag-custom-field-value/snapshot.json +21391 -0
  300. package/dist/templates/backend/application/src/database/migrations/drizzle/20260804193217_align-custom-field-option-i18n/migration.sql +3 -0
  301. package/dist/templates/backend/application/src/database/migrations/drizzle/20260804193217_align-custom-field-option-i18n/snapshot.json +21394 -0
  302. package/dist/templates/backend/application/src/database/migrations/drizzle/20260818175624_drop-gap-finder-tables/migration.sql +46 -0
  303. package/dist/templates/backend/application/src/database/migrations/drizzle/20260818175624_drop-gap-finder-tables/snapshot.json +14170 -0
  304. package/dist/templates/backend/application/src/database/migrations/drizzle/20260822160309_rename-position-total-processed-weight/migration.sql +1 -0
  305. package/dist/templates/backend/application/src/database/migrations/drizzle/20260822160309_rename-position-total-processed-weight/snapshot.json +14172 -0
  306. package/dist/templates/backend/application/src/database/migrations/drizzle/20260830220002_add-impersonation-credential/migration.sql +32 -0
  307. package/dist/templates/backend/application/src/database/migrations/drizzle/20260830220002_add-impersonation-credential/snapshot.json +14204 -0
  308. package/dist/templates/backend/application/src/database/migrations/drizzle/20260902105452_mask-oauth-token-columns/migration.sql +2 -0
  309. package/dist/templates/backend/application/src/database/migrations/drizzle/20260902105452_mask-oauth-token-columns/snapshot.json +14204 -0
  310. package/dist/templates/backend/application/src/database/migrations/drizzle/20260903214717_add-biller-master-data-tables/migration.sql +145 -0
  311. package/dist/templates/backend/application/src/database/migrations/drizzle/20260903214717_add-biller-master-data-tables/snapshot.json +16167 -0
  312. package/dist/templates/backend/application/src/database/migrations/drizzle/20260904195613_simplify-biller-tariff-model/migration.sql +42 -0
  313. package/dist/templates/backend/application/src/database/migrations/drizzle/20260904195613_simplify-biller-tariff-model/snapshot.json +15944 -0
  314. package/dist/templates/backend/application/src/database/migrations/drizzle/20260904235448_add-biller-billing-run-pipeline/migration.sql +144 -0
  315. package/dist/templates/backend/application/src/database/migrations/drizzle/20260904235448_add-biller-billing-run-pipeline/snapshot.json +17910 -0
  316. package/dist/templates/backend/application/src/database/migrations/drizzle/20260904235725_add-biller-invoice-number-sequence/migration.sql +1 -0
  317. package/dist/templates/backend/application/src/database/migrations/drizzle/20260904235725_add-biller-invoice-number-sequence/snapshot.json +17921 -0
  318. package/dist/templates/backend/application/src/database/migrations/drizzle/20260905090449_make-remittance-run-index-non-unique/migration.sql +2 -0
  319. package/dist/templates/backend/application/src/database/migrations/drizzle/20260905090449_make-remittance-run-index-non-unique/snapshot.json +17921 -0
  320. package/dist/templates/backend/application/src/database/migrations/drizzle/20260907223122_normalize-tools-native-enums/migration.sql +37 -0
  321. package/dist/templates/backend/application/src/database/migrations/drizzle/20260907223122_normalize-tools-native-enums/snapshot.json +17921 -0
  322. package/dist/templates/backend/application/src/database/migrations/drizzle/20260907224811_normalize-lacrem-native-enums/migration.sql +19 -0
  323. package/dist/templates/backend/application/src/database/migrations/drizzle/20260907224811_normalize-lacrem-native-enums/snapshot.json +17921 -0
  324. package/dist/templates/backend/application/src/database/migrations/drizzle/20260907225915_normalize-sap-integration-native-enums/migration.sql +58 -0
  325. package/dist/templates/backend/application/src/database/migrations/drizzle/20260907225915_normalize-sap-integration-native-enums/snapshot.json +17921 -0
  326. package/dist/templates/backend/application/src/database/migrations/drizzle/20260907231830_normalize-iam-native-enums/migration.sql +19 -0
  327. package/dist/templates/backend/application/src/database/migrations/drizzle/20260907231830_normalize-iam-native-enums/snapshot.json +17921 -0
  328. package/dist/templates/backend/application/src/database/migrations/drizzle/20260907232903_normalize-o-auth-native-enums/migration.sql +37 -0
  329. package/dist/templates/backend/application/src/database/migrations/drizzle/20260907232903_normalize-o-auth-native-enums/snapshot.json +17921 -0
  330. package/dist/templates/backend/application/src/database/migrations/drizzle/README.md +199 -0
  331. package/dist/templates/backend/application/src/database/procedures/calculate_order_total/1.sql +18 -0
  332. package/dist/templates/backend/application/src/database/procedures/production_planning_set_production_order_header_code/1.sql +38 -0
  333. package/dist/templates/backend/application/src/database/procedures/production_planning_set_production_order_position_code/1.sql +33 -0
  334. package/dist/templates/backend/application/src/database/procedures/production_planning_trg_set_production_order_header_code/1.sql +8 -0
  335. package/dist/templates/backend/application/src/database/procedures/production_planning_trg_set_production_order_position_code/1.sql +8 -0
  336. package/dist/templates/backend/application/src/main.ts +13 -6
  337. package/dist/templates/backend/application/test/app.e2e-spec.ts +18 -0
  338. package/dist/templates/backend/application/test/jest-e2e.json +3 -0
  339. package/dist/templates/backend/application/test/jest-global-setup.ts +15 -0
  340. package/dist/templates/backend/application/test/mocks/uuid.mock.ts +4 -1
  341. package/dist/templates/backend/application/tsconfig.json +7 -17
  342. package/dist/templates/backend/packages/authorization-code/src/@api/authorization-code/authorization-code.module.ts +2 -2
  343. package/dist/templates/backend/packages/authorization-code/src/@api/authorization-code/controllers/auth.controller.spec.ts +6 -8
  344. package/dist/templates/backend/packages/authorization-code/src/@api/authorization-code/controllers/auth.controller.ts +1 -2
  345. package/dist/templates/backend/packages/authorization-code/src/@api/authorization-code/controllers/index.ts +1 -0
  346. package/dist/templates/backend/packages/authorization-code/src/@api/authorization-code/pkce/index.ts +2 -0
  347. package/dist/templates/backend/packages/authorization-code/src/@api/authorization-code/pkce/pkce-helpers.spec.ts +1 -3
  348. package/dist/templates/backend/packages/hub/src/@api/hub/app/controllers/hub-create-app.controller.ts +31 -0
  349. package/dist/templates/backend/packages/hub/src/@api/hub/app/controllers/hub-delete-app-by-id.controller.ts +32 -0
  350. package/dist/templates/backend/packages/hub/src/@api/hub/app/controllers/hub-find-app-by-id.controller.ts +31 -0
  351. package/dist/templates/backend/packages/hub/src/@api/hub/app/controllers/hub-find-app.controller.ts +33 -0
  352. package/dist/templates/backend/packages/hub/src/@api/hub/app/controllers/hub-get-apps.controller.ts +41 -0
  353. package/dist/templates/backend/packages/hub/src/@api/hub/app/controllers/hub-my-preferences-app.controller.ts +31 -0
  354. package/dist/templates/backend/packages/hub/src/@api/hub/app/controllers/hub-paginate-apps.controller.ts +32 -0
  355. package/dist/templates/backend/packages/hub/src/@api/hub/app/controllers/hub-save-my-launchpad-layout-app.controller.ts +41 -0
  356. package/dist/templates/backend/packages/hub/src/@api/hub/app/controllers/hub-toggle-favorite-app.controller.ts +34 -0
  357. package/dist/templates/backend/packages/hub/src/@api/hub/app/controllers/hub-update-app-by-id.controller.ts +32 -0
  358. package/dist/templates/backend/packages/hub/src/@api/hub/app/dto/hub-app.dto.ts +114 -0
  359. package/dist/templates/backend/packages/hub/src/@api/hub/app/dto/hub-create-app.dto.ts +85 -0
  360. package/dist/templates/backend/packages/hub/src/@api/hub/app/dto/hub-update-app-by-id.dto.ts +78 -0
  361. package/dist/templates/backend/packages/hub/src/@api/hub/app/dto/hub-update-apps.dto.ts +78 -0
  362. package/dist/templates/backend/packages/hub/src/@api/hub/app/dto/index.ts +8 -0
  363. package/dist/templates/backend/packages/hub/src/@api/hub/app/graphql/hub-app.graphql +256 -0
  364. package/dist/templates/backend/packages/hub/src/@api/hub/app/index.ts +87 -0
  365. package/dist/templates/backend/packages/hub/src/@api/hub/app/resolvers/hub-create-app.resolver.ts +27 -0
  366. package/dist/templates/backend/packages/hub/src/@api/hub/app/resolvers/hub-delete-app-by-id.resolver.ts +28 -0
  367. package/dist/templates/backend/packages/hub/src/@api/hub/app/resolvers/hub-find-app-by-id.resolver.ts +26 -0
  368. package/dist/templates/backend/packages/hub/src/@api/hub/app/resolvers/hub-find-app.resolver.ts +26 -0
  369. package/dist/templates/backend/packages/hub/src/@api/hub/app/resolvers/hub-get-apps.resolver.ts +33 -0
  370. package/dist/templates/backend/packages/hub/src/@api/hub/app/resolvers/hub-my-preferences-app.resolver.ts +27 -0
  371. package/dist/templates/backend/packages/hub/src/@api/hub/app/resolvers/hub-paginate-apps.resolver.ts +26 -0
  372. package/dist/templates/backend/packages/hub/src/@api/hub/app/resolvers/hub-save-my-launchpad-layout-app.resolver.ts +34 -0
  373. package/dist/templates/backend/packages/hub/src/@api/hub/app/resolvers/hub-toggle-favorite-app.resolver.ts +30 -0
  374. package/dist/templates/backend/packages/hub/src/@api/hub/app/resolvers/hub-update-app-by-id.resolver.ts +28 -0
  375. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/controllers/hub-create-app-account.controller.ts +29 -0
  376. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/controllers/hub-create-apps-accounts.controller.ts +30 -0
  377. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/controllers/hub-delete-app-account-by-id.controller.ts +34 -0
  378. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/controllers/hub-delete-apps-accounts.controller.ts +35 -0
  379. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/controllers/hub-find-app-account-by-id.controller.ts +35 -0
  380. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/controllers/hub-find-app-account.controller.ts +36 -0
  381. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/controllers/hub-get-apps-accounts.controller.ts +36 -0
  382. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/controllers/hub-paginate-apps-accounts.controller.ts +32 -0
  383. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/controllers/hub-update-app-account-by-id.controller.ts +33 -0
  384. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/dto/hub-app-account.dto.ts +58 -0
  385. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/dto/hub-create-app-account.dto.ts +44 -0
  386. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/dto/hub-update-app-account-by-id.dto.ts +44 -0
  387. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/dto/hub-update-apps-accounts.dto.ts +44 -0
  388. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/dto/index.ts +8 -0
  389. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/graphql/hub-app-account.graphql +75 -0
  390. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/index.ts +81 -0
  391. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/resolvers/hub-create-app-account.resolver.ts +25 -0
  392. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/resolvers/hub-create-apps-accounts.resolver.ts +25 -0
  393. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/resolvers/hub-delete-app-account-by-id.resolver.ts +27 -0
  394. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/resolvers/hub-delete-apps-accounts.resolver.ts +26 -0
  395. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/resolvers/hub-find-app-account-by-id.resolver.ts +27 -0
  396. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/resolvers/hub-find-app-account.resolver.ts +26 -0
  397. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/resolvers/hub-get-apps-accounts.resolver.ts +26 -0
  398. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/resolvers/hub-paginate-apps-accounts.resolver.ts +26 -0
  399. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/resolvers/hub-update-app-account-by-id.resolver.ts +26 -0
  400. package/dist/templates/backend/packages/hub/src/@api/hub/hub-per-app-permission.seeder.spec.ts +222 -0
  401. package/dist/templates/backend/packages/hub/src/@api/hub/hub-per-app-permission.seeder.ts +131 -0
  402. package/dist/templates/backend/packages/hub/src/@api/hub/hub.module.ts +34 -0
  403. package/dist/templates/backend/packages/hub/src/@api/hub/hub.seeder.ts +33 -0
  404. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/create/hub-create-app.handler.spec.ts +504 -0
  405. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/create/hub-create-app.handler.ts +234 -0
  406. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/create/hub-create-app.service.ts +19 -0
  407. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/delete/hub-delete-app-by-id.handler.spec.ts +390 -0
  408. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/delete/hub-delete-app-by-id.handler.ts +159 -0
  409. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/delete/hub-delete-app-by-id.service.ts +24 -0
  410. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/find/hub-find-app-by-id.handler.spec.ts +99 -0
  411. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/find/hub-find-app-by-id.handler.ts +32 -0
  412. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/find/hub-find-app-by-id.service.ts +20 -0
  413. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/find/hub-find-app.handler.spec.ts +110 -0
  414. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/find/hub-find-app.handler.ts +39 -0
  415. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/find/hub-find-app.service.ts +25 -0
  416. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/get/hub-get-apps.handler.spec.ts +275 -0
  417. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/get/hub-get-apps.handler.ts +80 -0
  418. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/get/hub-get-apps.service.ts +25 -0
  419. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/my-preferences/hub-my-preferences-app.handler.spec.ts +146 -0
  420. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/my-preferences/hub-my-preferences-app.handler.ts +38 -0
  421. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/paginate/hub-paginate-apps.handler.spec.ts +116 -0
  422. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/paginate/hub-paginate-apps.handler.ts +34 -0
  423. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/paginate/hub-paginate-apps.service.ts +25 -0
  424. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/save-my-launchpad-layout/hub-save-my-launchpad-layout-app.handler.spec.ts +355 -0
  425. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/save-my-launchpad-layout/hub-save-my-launchpad-layout-app.handler.ts +161 -0
  426. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/toggle-favorite/hub-toggle-favorite-app.handler.spec.ts +193 -0
  427. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/toggle-favorite/hub-toggle-favorite-app.handler.ts +60 -0
  428. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/update/hub-update-app-by-id.handler.spec.ts +255 -0
  429. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/update/hub-update-app-by-id.handler.ts +78 -0
  430. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/update/hub-update-app-by-id.service.ts +25 -0
  431. package/dist/templates/backend/packages/hub/src/@app/hub/app/domain/hub-app-permission.ts +18 -0
  432. package/dist/templates/backend/packages/hub/src/@app/hub/app/domain/hub-app.field-schema.ts +101 -0
  433. package/dist/templates/backend/packages/hub/src/@app/hub/app/domain/index.ts +2 -0
  434. package/dist/templates/backend/packages/hub/src/@app/hub/app/index.ts +79 -0
  435. package/dist/templates/backend/packages/hub/src/@app/hub/app/infrastructure/drizzle/hub-drizzle-app.repository.ts +43 -0
  436. package/dist/templates/backend/packages/hub/src/@app/hub/app/infrastructure/drizzle/hub-drizzle-app.schema.ts +40 -0
  437. package/dist/templates/backend/packages/hub/src/@app/hub/app/shared/functions/hub-sanitize-eager-loads-vs-relation-order.spec.ts +226 -0
  438. package/dist/templates/backend/packages/hub/src/@app/hub/app/shared/functions/hub-sanitize-eager-loads.function.spec.ts +73 -0
  439. package/dist/templates/backend/packages/hub/src/@app/hub/app/shared/functions/hub-sanitize-eager-loads.function.ts +27 -0
  440. package/dist/templates/backend/packages/hub/src/@app/hub/app/shared/functions/hub-validate-redirect-uri.function.spec.ts +41 -0
  441. package/dist/templates/backend/packages/hub/src/@app/hub/app/shared/functions/hub-validate-redirect-uri.function.ts +49 -0
  442. package/dist/templates/backend/packages/hub/src/@app/hub/app/shared/functions/index.ts +2 -0
  443. package/dist/templates/backend/packages/hub/src/@app/hub/app/shared/index.ts +1 -0
  444. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/create/hub-create-app-account.handler.ts +27 -0
  445. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/create/hub-create-app-account.service.ts +25 -0
  446. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/create/hub-create-apps-accounts.handler.ts +26 -0
  447. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/create/hub-create-apps-accounts.service.ts +19 -0
  448. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/delete/hub-delete-app-account-by-id.handler.ts +40 -0
  449. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/delete/hub-delete-app-account-by-id.service.ts +37 -0
  450. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/delete/hub-delete-apps-accounts.handler.ts +33 -0
  451. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/delete/hub-delete-apps-accounts.service.ts +33 -0
  452. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/find/hub-find-app-account-by-id.handler.ts +32 -0
  453. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/find/hub-find-app-account-by-id.service.ts +29 -0
  454. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/find/hub-find-app-account.handler.ts +29 -0
  455. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/find/hub-find-app-account.service.ts +25 -0
  456. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/get/hub-get-apps-accounts.handler.ts +23 -0
  457. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/get/hub-get-apps-accounts.service.ts +25 -0
  458. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/paginate/hub-paginate-apps-accounts.handler.ts +23 -0
  459. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/paginate/hub-paginate-apps-accounts.service.ts +25 -0
  460. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/update/hub-update-app-account-by-id.handler.ts +64 -0
  461. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/update/hub-update-app-account-by-id.service.ts +33 -0
  462. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/domain/hub-app-account.field-schema.ts +53 -0
  463. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/domain/index.ts +1 -0
  464. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/index.ts +82 -0
  465. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/infrastructure/drizzle/hub-drizzle-app-account.repository.ts +40 -0
  466. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/infrastructure/drizzle/hub-drizzle-app-account.schema.ts +17 -0
  467. package/dist/templates/backend/packages/hub/src/@app/hub/hub.relations.ts +23 -0
  468. package/dist/templates/backend/packages/hub/src/@app/hub/hub.seed.ts +117 -0
  469. package/dist/templates/backend/packages/hub/src/@app/hub/index.ts +21 -0
  470. package/dist/templates/backend/packages/hub/src/@bridges/providers/iam-bounded-context-writer.bridge.ts +8 -0
  471. package/dist/templates/backend/packages/hub/src/@bridges/providers/iam-permission-writer.bridge.ts +8 -0
  472. package/dist/templates/backend/packages/hub/src/@bridges/providers/o-auth-application-provisioner.bridge.ts +8 -0
  473. package/dist/templates/backend/packages/hub/test/acceptance/hub/hub-app-account-composite-key.e2e-spec.ts +297 -0
  474. package/dist/templates/backend/packages/hub/test/acceptance/hub/hub-app-deprovisioning.e2e-spec.ts +488 -0
  475. package/dist/templates/backend/packages/hub/test/acceptance/hub/hub-app-provisioning.e2e-spec.ts +366 -0
  476. package/dist/templates/backend/packages/hub/test/acceptance/hub/hub-per-app-access.e2e-spec.ts +672 -0
  477. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-check-password-me-account.controller.ts +1 -2
  478. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-count-account.controller.ts +32 -0
  479. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-create-account.controller.ts +2 -2
  480. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-delete-account-by-id.controller.ts +1 -2
  481. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-delete-accounts.controller.ts +3 -4
  482. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-find-account-by-id.controller.ts +1 -2
  483. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-find-account.controller.ts +3 -4
  484. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-get-accounts.controller.ts +3 -4
  485. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-me-account.controller.ts +2 -2
  486. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-paginate-accounts.controller.ts +3 -4
  487. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-paginate-with-tenant-constraint-accounts.controller.ts +1 -2
  488. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-update-account-by-id.controller.ts +9 -4
  489. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-update-accounts.controller.ts +1 -2
  490. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-update-me-account.controller.ts +1 -2
  491. package/dist/templates/backend/packages/iam/src/@api/iam/account/dto/iam-account.dto.ts +1 -1
  492. package/dist/templates/backend/packages/iam/src/@api/iam/account/dto/iam-create-account.dto.ts +1 -1
  493. package/dist/templates/backend/packages/iam/src/@api/iam/account/dto/iam-update-account-by-id.dto.ts +1 -1
  494. package/dist/templates/backend/packages/iam/src/@api/iam/account/dto/iam-update-accounts.dto.ts +1 -1
  495. package/dist/templates/backend/packages/iam/src/@api/iam/account/graphql/iam-account.graphql +41 -39
  496. package/dist/templates/backend/packages/iam/src/@api/iam/account/index.ts +6 -0
  497. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-check-password-me-account.resolver.ts +1 -2
  498. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-count-account.resolver.ts +25 -0
  499. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-create-account.resolver.ts +2 -2
  500. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-delete-account-by-id.resolver.ts +1 -2
  501. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-delete-accounts.resolver.ts +1 -2
  502. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-find-account-by-id.resolver.ts +1 -2
  503. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-find-account.resolver.ts +1 -2
  504. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-get-accounts.resolver.ts +1 -2
  505. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-me-account.resolver.ts +2 -2
  506. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-paginate-accounts.resolver.ts +1 -2
  507. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-paginate-with-tenant-constraint-accounts.resolver.ts +1 -2
  508. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-update-account-by-id.resolver.ts +9 -4
  509. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-update-accounts.resolver.ts +1 -2
  510. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-update-me-account.resolver.ts +1 -2
  511. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/controllers/iam-delete-bounded-context-by-id.controller.ts +1 -2
  512. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/controllers/iam-delete-bounded-contexts.controller.ts +3 -4
  513. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/controllers/iam-find-bounded-context-by-id.controller.ts +1 -2
  514. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/controllers/iam-find-bounded-context.controller.ts +3 -4
  515. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/controllers/iam-get-bounded-contexts.controller.ts +3 -4
  516. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/controllers/iam-paginate-bounded-contexts.controller.ts +3 -4
  517. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/controllers/iam-update-bounded-context-by-id.controller.ts +1 -2
  518. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/controllers/iam-update-bounded-contexts.controller.ts +1 -2
  519. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/graphql/iam-bounded-context.graphql +24 -12
  520. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/resolvers/iam-delete-bounded-context-by-id.resolver.ts +1 -2
  521. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/resolvers/iam-delete-bounded-contexts.resolver.ts +1 -2
  522. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/resolvers/iam-find-bounded-context-by-id.resolver.ts +1 -2
  523. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/resolvers/iam-find-bounded-context.resolver.ts +1 -2
  524. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/resolvers/iam-get-bounded-contexts.resolver.ts +1 -2
  525. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/resolvers/iam-paginate-bounded-contexts.resolver.ts +1 -2
  526. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/resolvers/iam-update-bounded-context-by-id.resolver.ts +1 -2
  527. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/resolvers/iam-update-bounded-contexts.resolver.ts +1 -2
  528. package/dist/templates/backend/packages/iam/src/@api/iam/iam-bootstrap.seeder.spec.ts +24 -0
  529. package/dist/templates/backend/packages/iam/src/@api/iam/iam-bootstrap.seeder.ts +22 -13
  530. package/dist/templates/backend/packages/iam/src/@api/iam/iam.module.ts +27 -7
  531. package/dist/templates/backend/packages/iam/src/@api/iam/iam.seeder.ts +4 -4
  532. package/dist/templates/backend/packages/iam/src/@api/iam/permission/controllers/iam-delete-permission-by-id.controller.ts +1 -2
  533. package/dist/templates/backend/packages/iam/src/@api/iam/permission/controllers/iam-delete-permissions.controller.ts +3 -4
  534. package/dist/templates/backend/packages/iam/src/@api/iam/permission/controllers/iam-find-permission-by-id.controller.ts +1 -2
  535. package/dist/templates/backend/packages/iam/src/@api/iam/permission/controllers/iam-find-permission.controller.ts +3 -4
  536. package/dist/templates/backend/packages/iam/src/@api/iam/permission/controllers/iam-get-permissions.controller.ts +3 -4
  537. package/dist/templates/backend/packages/iam/src/@api/iam/permission/controllers/iam-paginate-permissions.controller.ts +3 -4
  538. package/dist/templates/backend/packages/iam/src/@api/iam/permission/controllers/iam-update-permission-by-id.controller.ts +1 -2
  539. package/dist/templates/backend/packages/iam/src/@api/iam/permission/controllers/iam-update-permissions.controller.ts +1 -2
  540. package/dist/templates/backend/packages/iam/src/@api/iam/permission/graphql/iam-permission.graphql +27 -15
  541. package/dist/templates/backend/packages/iam/src/@api/iam/permission/resolvers/iam-delete-permission-by-id.resolver.ts +1 -2
  542. package/dist/templates/backend/packages/iam/src/@api/iam/permission/resolvers/iam-delete-permissions.resolver.ts +1 -2
  543. package/dist/templates/backend/packages/iam/src/@api/iam/permission/resolvers/iam-find-permission-by-id.resolver.ts +1 -2
  544. package/dist/templates/backend/packages/iam/src/@api/iam/permission/resolvers/iam-find-permission.resolver.ts +1 -2
  545. package/dist/templates/backend/packages/iam/src/@api/iam/permission/resolvers/iam-get-permissions.resolver.ts +1 -2
  546. package/dist/templates/backend/packages/iam/src/@api/iam/permission/resolvers/iam-paginate-permissions.resolver.ts +1 -2
  547. package/dist/templates/backend/packages/iam/src/@api/iam/permission/resolvers/iam-update-permission-by-id.resolver.ts +1 -2
  548. package/dist/templates/backend/packages/iam/src/@api/iam/permission/resolvers/iam-update-permissions.resolver.ts +1 -2
  549. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/controllers/iam-delete-permission-role-by-id.controller.ts +1 -2
  550. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/controllers/iam-delete-permissions-roles.controller.ts +3 -4
  551. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/controllers/iam-find-permission-role-by-id.controller.ts +1 -2
  552. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/controllers/iam-find-permission-role.controller.ts +3 -4
  553. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/controllers/iam-get-permissions-roles.controller.ts +3 -4
  554. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/controllers/iam-paginate-permissions-roles.controller.ts +3 -4
  555. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/controllers/iam-update-permission-role-by-id.controller.ts +1 -2
  556. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/controllers/iam-update-permissions-roles.controller.ts +1 -2
  557. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/graphql/iam-permission-role.graphql +21 -9
  558. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/resolvers/iam-delete-permission-role-by-id.resolver.ts +1 -2
  559. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/resolvers/iam-delete-permissions-roles.resolver.ts +1 -2
  560. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/resolvers/iam-find-permission-role-by-id.resolver.ts +1 -2
  561. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/resolvers/iam-find-permission-role.resolver.ts +1 -2
  562. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/resolvers/iam-get-permissions-roles.resolver.ts +1 -2
  563. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/resolvers/iam-paginate-permissions-roles.resolver.ts +1 -2
  564. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/resolvers/iam-update-permission-role-by-id.resolver.ts +1 -2
  565. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/resolvers/iam-update-permissions-roles.resolver.ts +1 -2
  566. package/dist/templates/backend/packages/iam/src/@api/iam/role/controllers/iam-delete-role-by-id.controller.ts +1 -2
  567. package/dist/templates/backend/packages/iam/src/@api/iam/role/controllers/iam-delete-roles.controller.ts +3 -4
  568. package/dist/templates/backend/packages/iam/src/@api/iam/role/controllers/iam-find-role-by-id.controller.ts +1 -2
  569. package/dist/templates/backend/packages/iam/src/@api/iam/role/controllers/iam-find-role.controller.ts +3 -4
  570. package/dist/templates/backend/packages/iam/src/@api/iam/role/controllers/iam-get-roles.controller.ts +3 -4
  571. package/dist/templates/backend/packages/iam/src/@api/iam/role/controllers/iam-inherit-permissions-role-role.controller.ts +1 -2
  572. package/dist/templates/backend/packages/iam/src/@api/iam/role/controllers/iam-paginate-roles.controller.ts +3 -4
  573. package/dist/templates/backend/packages/iam/src/@api/iam/role/controllers/iam-update-role-by-id.controller.ts +1 -2
  574. package/dist/templates/backend/packages/iam/src/@api/iam/role/controllers/iam-update-roles.controller.ts +1 -2
  575. package/dist/templates/backend/packages/iam/src/@api/iam/role/graphql/iam-role.graphql +28 -19
  576. package/dist/templates/backend/packages/iam/src/@api/iam/role/resolvers/iam-delete-role-by-id.resolver.ts +1 -2
  577. package/dist/templates/backend/packages/iam/src/@api/iam/role/resolvers/iam-delete-roles.resolver.ts +1 -2
  578. package/dist/templates/backend/packages/iam/src/@api/iam/role/resolvers/iam-find-role-by-id.resolver.ts +1 -2
  579. package/dist/templates/backend/packages/iam/src/@api/iam/role/resolvers/iam-find-role.resolver.ts +1 -2
  580. package/dist/templates/backend/packages/iam/src/@api/iam/role/resolvers/iam-get-roles.resolver.ts +1 -2
  581. package/dist/templates/backend/packages/iam/src/@api/iam/role/resolvers/iam-inherit-permissions-role-role.resolver.ts +1 -2
  582. package/dist/templates/backend/packages/iam/src/@api/iam/role/resolvers/iam-paginate-roles.resolver.ts +1 -2
  583. package/dist/templates/backend/packages/iam/src/@api/iam/role/resolvers/iam-update-role-by-id.resolver.ts +1 -2
  584. package/dist/templates/backend/packages/iam/src/@api/iam/role/resolvers/iam-update-roles.resolver.ts +1 -2
  585. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/controllers/iam-delete-role-account-by-id.controller.ts +1 -2
  586. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/controllers/iam-delete-roles-accounts.controller.ts +3 -4
  587. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/controllers/iam-find-role-account-by-id.controller.ts +1 -2
  588. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/controllers/iam-find-role-account.controller.ts +3 -4
  589. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/controllers/iam-get-roles-accounts.controller.ts +3 -4
  590. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/controllers/iam-paginate-roles-accounts.controller.ts +3 -4
  591. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/controllers/iam-update-role-account-by-id.controller.ts +1 -2
  592. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/controllers/iam-update-roles-accounts.controller.ts +1 -2
  593. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/graphql/iam-role-account.graphql +29 -9
  594. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/resolvers/iam-delete-role-account-by-id.resolver.ts +1 -2
  595. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/resolvers/iam-delete-roles-accounts.resolver.ts +1 -2
  596. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/resolvers/iam-find-role-account-by-id.resolver.ts +1 -2
  597. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/resolvers/iam-find-role-account.resolver.ts +1 -2
  598. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/resolvers/iam-get-roles-accounts.resolver.ts +1 -2
  599. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/resolvers/iam-paginate-roles-accounts.resolver.ts +1 -2
  600. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/resolvers/iam-update-role-account-by-id.resolver.ts +1 -2
  601. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/resolvers/iam-update-roles-accounts.resolver.ts +1 -2
  602. package/dist/templates/backend/packages/iam/src/@api/iam/tag/controllers/iam-delete-tag-by-id.controller.ts +1 -2
  603. package/dist/templates/backend/packages/iam/src/@api/iam/tag/controllers/iam-find-tag-by-id.controller.ts +1 -2
  604. package/dist/templates/backend/packages/iam/src/@api/iam/tag/controllers/iam-find-tag.controller.ts +3 -4
  605. package/dist/templates/backend/packages/iam/src/@api/iam/tag/controllers/iam-get-tags.controller.ts +3 -4
  606. package/dist/templates/backend/packages/iam/src/@api/iam/tag/controllers/iam-paginate-tags.controller.ts +3 -4
  607. package/dist/templates/backend/packages/iam/src/@api/iam/tag/controllers/iam-update-tag-by-id.controller.ts +1 -2
  608. package/dist/templates/backend/packages/iam/src/@api/iam/tag/graphql/iam-tag.graphql +9 -9
  609. package/dist/templates/backend/packages/iam/src/@api/iam/tag/resolvers/iam-delete-tag-by-id.resolver.ts +1 -2
  610. package/dist/templates/backend/packages/iam/src/@api/iam/tag/resolvers/iam-find-tag-by-id.resolver.ts +1 -2
  611. package/dist/templates/backend/packages/iam/src/@api/iam/tag/resolvers/iam-find-tag.resolver.ts +1 -2
  612. package/dist/templates/backend/packages/iam/src/@api/iam/tag/resolvers/iam-get-tags.resolver.ts +1 -2
  613. package/dist/templates/backend/packages/iam/src/@api/iam/tag/resolvers/iam-paginate-tags.resolver.ts +1 -2
  614. package/dist/templates/backend/packages/iam/src/@api/iam/tag/resolvers/iam-update-tag-by-id.resolver.ts +1 -2
  615. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/controllers/iam-delete-tenant-by-id.controller.ts +1 -2
  616. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/controllers/iam-delete-tenants.controller.ts +3 -4
  617. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/controllers/iam-find-tenant-by-id.controller.ts +1 -2
  618. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/controllers/iam-find-tenant.controller.ts +3 -4
  619. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/controllers/iam-get-tenants.controller.ts +3 -4
  620. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/controllers/iam-get-with-tenant-constraint-tenants.controller.ts +1 -2
  621. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/controllers/iam-paginate-tenants.controller.ts +3 -4
  622. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/controllers/iam-paginate-with-tenant-constraint-tenants.controller.ts +1 -2
  623. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/controllers/iam-update-tenant-by-id.controller.ts +1 -2
  624. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/controllers/iam-update-tenants.controller.ts +1 -2
  625. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/graphql/iam-tenant.graphql +33 -18
  626. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/resolvers/iam-delete-tenant-by-id.resolver.ts +1 -2
  627. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/resolvers/iam-delete-tenants.resolver.ts +1 -2
  628. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/resolvers/iam-find-tenant-by-id.resolver.ts +1 -2
  629. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/resolvers/iam-find-tenant.resolver.ts +1 -2
  630. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/resolvers/iam-get-tenants.resolver.ts +1 -2
  631. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/resolvers/iam-get-with-tenant-constraint-tenants.resolver.ts +1 -2
  632. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/resolvers/iam-paginate-tenants.resolver.ts +1 -2
  633. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/resolvers/iam-paginate-with-tenant-constraint-tenants.resolver.ts +1 -2
  634. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/resolvers/iam-update-tenant-by-id.resolver.ts +1 -2
  635. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/resolvers/iam-update-tenants.resolver.ts +1 -2
  636. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/controllers/iam-delete-tenant-account-by-id.controller.ts +1 -2
  637. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/controllers/iam-delete-tenants-accounts.controller.ts +3 -4
  638. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/controllers/iam-find-tenant-account-by-id.controller.ts +1 -2
  639. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/controllers/iam-find-tenant-account.controller.ts +3 -4
  640. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/controllers/iam-get-tenants-accounts.controller.ts +3 -4
  641. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/controllers/iam-paginate-tenants-accounts.controller.ts +3 -4
  642. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/controllers/iam-update-tenant-account-by-id.controller.ts +1 -2
  643. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/controllers/iam-update-tenants-accounts.controller.ts +1 -2
  644. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/graphql/iam-tenant-account.graphql +21 -9
  645. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/resolvers/iam-delete-tenant-account-by-id.resolver.ts +1 -2
  646. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/resolvers/iam-delete-tenants-accounts.resolver.ts +1 -2
  647. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/resolvers/iam-find-tenant-account-by-id.resolver.ts +1 -2
  648. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/resolvers/iam-find-tenant-account.resolver.ts +1 -2
  649. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/resolvers/iam-get-tenants-accounts.resolver.ts +1 -2
  650. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/resolvers/iam-paginate-tenants-accounts.resolver.ts +1 -2
  651. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/resolvers/iam-update-tenant-account-by-id.resolver.ts +1 -2
  652. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/resolvers/iam-update-tenants-accounts.resolver.ts +1 -2
  653. package/dist/templates/backend/packages/iam/src/@api/iam/user/controllers/iam-count-user.controller.ts +32 -0
  654. package/dist/templates/backend/packages/iam/src/@api/iam/user/controllers/iam-delete-user-by-id.controller.ts +1 -2
  655. package/dist/templates/backend/packages/iam/src/@api/iam/user/controllers/iam-delete-users.controller.ts +3 -4
  656. package/dist/templates/backend/packages/iam/src/@api/iam/user/controllers/iam-find-user-by-id.controller.ts +1 -2
  657. package/dist/templates/backend/packages/iam/src/@api/iam/user/controllers/iam-find-user.controller.ts +3 -4
  658. package/dist/templates/backend/packages/iam/src/@api/iam/user/controllers/iam-forgot-password-user.controller.ts +1 -2
  659. package/dist/templates/backend/packages/iam/src/@api/iam/user/controllers/iam-get-users.controller.ts +3 -4
  660. package/dist/templates/backend/packages/iam/src/@api/iam/user/controllers/iam-paginate-users.controller.ts +3 -4
  661. package/dist/templates/backend/packages/iam/src/@api/iam/user/controllers/iam-reset-password-user.controller.ts +1 -2
  662. package/dist/templates/backend/packages/iam/src/@api/iam/user/controllers/iam-update-user-by-id.controller.ts +1 -2
  663. package/dist/templates/backend/packages/iam/src/@api/iam/user/controllers/iam-update-users.controller.ts +1 -2
  664. package/dist/templates/backend/packages/iam/src/@api/iam/user/graphql/iam-user.graphql +20 -18
  665. package/dist/templates/backend/packages/iam/src/@api/iam/user/index.ts +6 -0
  666. package/dist/templates/backend/packages/iam/src/@api/iam/user/resolvers/iam-count-user.resolver.ts +25 -0
  667. package/dist/templates/backend/packages/iam/src/@api/iam/user/resolvers/iam-delete-user-by-id.resolver.ts +1 -2
  668. package/dist/templates/backend/packages/iam/src/@api/iam/user/resolvers/iam-delete-users.resolver.ts +1 -2
  669. package/dist/templates/backend/packages/iam/src/@api/iam/user/resolvers/iam-find-user-by-id.resolver.ts +1 -2
  670. package/dist/templates/backend/packages/iam/src/@api/iam/user/resolvers/iam-find-user.resolver.ts +1 -2
  671. package/dist/templates/backend/packages/iam/src/@api/iam/user/resolvers/iam-forgot-password-user.resolver.ts +1 -2
  672. package/dist/templates/backend/packages/iam/src/@api/iam/user/resolvers/iam-get-users.resolver.ts +1 -2
  673. package/dist/templates/backend/packages/iam/src/@api/iam/user/resolvers/iam-paginate-users.resolver.ts +1 -2
  674. package/dist/templates/backend/packages/iam/src/@api/iam/user/resolvers/iam-reset-password-user.resolver.ts +1 -2
  675. package/dist/templates/backend/packages/iam/src/@api/iam/user/resolvers/iam-update-user-by-id.resolver.ts +1 -2
  676. package/dist/templates/backend/packages/iam/src/@api/iam/user/resolvers/iam-update-users.resolver.ts +1 -2
  677. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/check-password-me/iam-check-password-me-account.handler.ts +3 -5
  678. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/check-unique-email/iam-check-unique-email-account.handler.spec.ts +75 -0
  679. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/check-unique-email/iam-check-unique-email-account.handler.ts +4 -1
  680. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/check-unique-username/iam-check-unique-username-account.handler.spec.ts +75 -0
  681. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/check-unique-username/iam-check-unique-username-account.handler.ts +4 -1
  682. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/count/iam-count-account.handler.ts +1 -2
  683. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/count/iam-count-account.service.ts +3 -4
  684. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/create/iam-create-account.handler.spec.ts +41 -18
  685. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/create/iam-create-account.handler.ts +23 -11
  686. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/create/iam-create-account.service.ts +4 -3
  687. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/create/iam-create-accounts.service.ts +4 -3
  688. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/delete/iam-delete-account-by-id.handler.ts +1 -2
  689. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/delete/iam-delete-account-by-id.service.ts +3 -4
  690. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/delete/iam-delete-accounts.handler.ts +1 -2
  691. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/delete/iam-delete-accounts.service.ts +3 -4
  692. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/find/iam-find-account-by-id.handler.ts +1 -2
  693. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/find/iam-find-account-by-id.service.ts +3 -4
  694. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/find/iam-find-account.handler.ts +1 -2
  695. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/find/iam-find-account.service.ts +3 -4
  696. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/get/iam-get-accounts.handler.ts +1 -2
  697. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/get/iam-get-accounts.service.ts +3 -4
  698. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/me/iam-me-account.handler.ts +1 -1
  699. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/paginate/iam-paginate-accounts.handler.ts +1 -2
  700. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/paginate/iam-paginate-accounts.service.ts +3 -4
  701. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/paginate-with-tenant-constraint/iam-paginate-with-tenant-constraint-accounts.handler.ts +3 -5
  702. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/update/iam-update-account-by-id.handler.spec.ts +94 -13
  703. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/update/iam-update-account-by-id.handler.ts +60 -18
  704. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/update/iam-update-account-by-id.service.ts +9 -6
  705. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/update/iam-update-accounts.handler.spec.ts +216 -0
  706. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/update/iam-update-accounts.handler.ts +87 -4
  707. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/update/iam-update-accounts.service.ts +5 -5
  708. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/update-me/iam-update-me-account.handler.ts +3 -5
  709. package/dist/templates/backend/packages/iam/src/@app/iam/account/domain/iam-account.field-schema.ts +3 -3
  710. package/dist/templates/backend/packages/iam/src/@app/iam/account/index.ts +39 -37
  711. package/dist/templates/backend/packages/iam/src/@app/iam/account/infrastructure/drizzle/iam-drizzle-account.repository.ts +144 -0
  712. package/dist/templates/backend/packages/iam/src/@app/iam/account/infrastructure/drizzle/iam-drizzle-account.schema.ts +45 -0
  713. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/create/iam-create-bounded-context.service.ts +4 -3
  714. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/create/iam-create-bounded-contexts.service.ts +4 -3
  715. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/delete/iam-delete-bounded-context-by-id.handler.ts +1 -2
  716. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/delete/iam-delete-bounded-context-by-id.service.ts +3 -4
  717. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/delete/iam-delete-bounded-contexts.handler.ts +1 -2
  718. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/delete/iam-delete-bounded-contexts.service.ts +3 -4
  719. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/find/iam-find-bounded-context-by-id.handler.ts +1 -2
  720. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/find/iam-find-bounded-context-by-id.service.ts +3 -4
  721. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/find/iam-find-bounded-context.handler.ts +1 -2
  722. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/find/iam-find-bounded-context.service.ts +3 -4
  723. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/get/iam-get-bounded-contexts.handler.ts +1 -2
  724. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/get/iam-get-bounded-contexts.service.ts +3 -4
  725. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/paginate/iam-paginate-bounded-contexts.handler.ts +1 -2
  726. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/paginate/iam-paginate-bounded-contexts.service.ts +3 -4
  727. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/update/iam-update-bounded-context-by-id.handler.ts +7 -3
  728. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/update/iam-update-bounded-context-by-id.service.ts +9 -6
  729. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/update/iam-update-bounded-contexts.handler.ts +1 -2
  730. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/update/iam-update-bounded-contexts.service.ts +5 -5
  731. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/domain/iam-bounded-context.field-schema.ts +3 -3
  732. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/index.ts +32 -32
  733. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/infrastructure/drizzle/iam-drizzle-bounded-context.repository.ts +40 -0
  734. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/infrastructure/drizzle/iam-drizzle-bounded-context.schema.ts +30 -0
  735. package/dist/templates/backend/packages/iam/src/@app/iam/iam.relations.ts +116 -0
  736. package/dist/templates/backend/packages/iam/src/@app/iam/iam.seed.ts +45 -45
  737. package/dist/templates/backend/packages/iam/src/@app/iam/index.ts +20 -47
  738. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/create/iam-create-permission.service.ts +4 -3
  739. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/create/iam-create-permissions.service.ts +4 -3
  740. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/delete/iam-delete-permission-by-id.handler.ts +1 -2
  741. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/delete/iam-delete-permission-by-id.service.ts +3 -4
  742. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/delete/iam-delete-permissions.handler.ts +1 -2
  743. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/delete/iam-delete-permissions.service.ts +3 -4
  744. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/find/iam-find-permission-by-id.handler.ts +1 -2
  745. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/find/iam-find-permission-by-id.service.ts +3 -4
  746. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/find/iam-find-permission.handler.ts +1 -2
  747. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/find/iam-find-permission.service.ts +3 -4
  748. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/get/iam-get-permissions.handler.ts +1 -2
  749. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/get/iam-get-permissions.service.ts +3 -4
  750. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/get-permissions-without-role/iam-get-permissions-without-role.handler.spec.ts +121 -0
  751. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/get-permissions-without-role/iam-get-permissions-without-role.handler.ts +73 -0
  752. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/paginate/iam-paginate-permissions.handler.ts +1 -2
  753. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/paginate/iam-paginate-permissions.service.ts +3 -4
  754. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/update/iam-update-permission-by-id.handler.ts +7 -3
  755. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/update/iam-update-permission-by-id.service.ts +9 -6
  756. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/update/iam-update-permissions.handler.ts +1 -2
  757. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/update/iam-update-permissions.service.ts +5 -5
  758. package/dist/templates/backend/packages/iam/src/@app/iam/permission/domain/iam-permission.field-schema.ts +3 -3
  759. package/dist/templates/backend/packages/iam/src/@app/iam/permission/index.ts +34 -32
  760. package/dist/templates/backend/packages/iam/src/@app/iam/permission/infrastructure/drizzle/iam-drizzle-permission.repository.ts +100 -0
  761. package/dist/templates/backend/packages/iam/src/@app/iam/permission/infrastructure/drizzle/iam-drizzle-permission.schema.ts +23 -0
  762. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/create/iam-create-permission-role.service.ts +6 -6
  763. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/create/iam-create-permissions-roles.service.ts +4 -3
  764. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/delete/iam-delete-permission-role-by-id.handler.ts +1 -2
  765. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/delete/iam-delete-permission-role-by-id.service.ts +3 -4
  766. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/delete/iam-delete-permissions-roles.handler.ts +1 -2
  767. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/delete/iam-delete-permissions-roles.service.ts +3 -4
  768. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/find/iam-find-permission-role-by-id.handler.ts +1 -2
  769. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/find/iam-find-permission-role-by-id.service.ts +3 -4
  770. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/find/iam-find-permission-role.handler.ts +1 -2
  771. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/find/iam-find-permission-role.service.ts +3 -4
  772. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/get/iam-get-permissions-roles.handler.ts +1 -2
  773. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/get/iam-get-permissions-roles.service.ts +3 -4
  774. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/paginate/iam-paginate-permissions-roles.handler.ts +1 -2
  775. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/paginate/iam-paginate-permissions-roles.service.ts +3 -4
  776. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/update/iam-update-permission-role-by-id.handler.ts +7 -3
  777. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/update/iam-update-permission-role-by-id.service.ts +9 -6
  778. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/update/iam-update-permissions-roles.handler.ts +1 -2
  779. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/update/iam-update-permissions-roles.service.ts +5 -5
  780. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/index.ts +32 -32
  781. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/infrastructure/drizzle/iam-drizzle-permission-role.repository.ts +40 -0
  782. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/infrastructure/drizzle/iam-drizzle-permission-role.schema.ts +14 -0
  783. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/create/iam-create-role.service.ts +4 -3
  784. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/create/iam-create-roles.service.ts +4 -3
  785. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/delete/iam-delete-role-by-id.handler.ts +1 -2
  786. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/delete/iam-delete-role-by-id.service.ts +3 -4
  787. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/delete/iam-delete-roles.handler.ts +1 -2
  788. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/delete/iam-delete-roles.service.ts +3 -4
  789. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/find/iam-find-role-by-id.handler.ts +1 -2
  790. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/find/iam-find-role-by-id.service.ts +3 -4
  791. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/find/iam-find-role.handler.ts +1 -2
  792. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/find/iam-find-role.service.ts +3 -4
  793. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/get/iam-get-roles.handler.ts +1 -2
  794. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/get/iam-get-roles.service.ts +3 -4
  795. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/inherit-permissions-role/iam-inherit-permissions-role-role.handler.ts +3 -5
  796. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/paginate/iam-paginate-roles.handler.ts +1 -2
  797. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/paginate/iam-paginate-roles.service.ts +3 -4
  798. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/update/iam-update-role-by-id.handler.ts +7 -3
  799. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/update/iam-update-role-by-id.service.ts +9 -6
  800. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/update/iam-update-roles.handler.ts +1 -2
  801. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/update/iam-update-roles.service.ts +5 -5
  802. package/dist/templates/backend/packages/iam/src/@app/iam/role/domain/iam-role.field-schema.ts +3 -3
  803. package/dist/templates/backend/packages/iam/src/@app/iam/role/index.ts +33 -33
  804. package/dist/templates/backend/packages/iam/src/@app/iam/role/infrastructure/drizzle/iam-drizzle-role.repository.ts +149 -0
  805. package/dist/templates/backend/packages/iam/src/@app/iam/role/infrastructure/drizzle/iam-drizzle-role.schema.ts +30 -0
  806. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/create/iam-create-role-account.service.ts +6 -6
  807. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/create/iam-create-roles-accounts.service.ts +4 -3
  808. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/delete/iam-delete-role-account-by-id.handler.ts +1 -2
  809. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/delete/iam-delete-role-account-by-id.service.ts +3 -4
  810. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/delete/iam-delete-roles-accounts.handler.ts +1 -2
  811. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/delete/iam-delete-roles-accounts.service.ts +3 -4
  812. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/find/iam-find-role-account-by-id.handler.ts +1 -2
  813. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/find/iam-find-role-account-by-id.service.ts +3 -4
  814. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/find/iam-find-role-account.handler.ts +1 -2
  815. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/find/iam-find-role-account.service.ts +3 -4
  816. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/get/iam-get-roles-accounts.handler.ts +1 -2
  817. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/get/iam-get-roles-accounts.service.ts +3 -4
  818. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/paginate/iam-paginate-roles-accounts.handler.ts +1 -2
  819. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/paginate/iam-paginate-roles-accounts.service.ts +3 -4
  820. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/update/iam-update-role-account-by-id.handler.ts +7 -3
  821. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/update/iam-update-role-account-by-id.service.ts +9 -6
  822. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/update/iam-update-roles-accounts.handler.ts +1 -2
  823. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/update/iam-update-roles-accounts.service.ts +5 -5
  824. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/index.ts +32 -32
  825. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/infrastructure/drizzle/iam-drizzle-role-account.repository.ts +40 -0
  826. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/infrastructure/drizzle/iam-drizzle-role-account.schema.ts +14 -0
  827. package/dist/templates/backend/packages/iam/src/@app/iam/shared/iam-bootstrap.constants.ts +20 -0
  828. package/dist/templates/backend/packages/iam/src/@app/iam/shared/index.ts +1 -0
  829. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/create/iam-create-tag.service.ts +4 -3
  830. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/delete/iam-delete-tag-by-id.handler.ts +1 -2
  831. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/delete/iam-delete-tag-by-id.service.ts +3 -4
  832. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/find/iam-find-tag-by-id.handler.ts +1 -2
  833. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/find/iam-find-tag-by-id.service.ts +6 -5
  834. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/find/iam-find-tag.handler.ts +1 -2
  835. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/find/iam-find-tag.service.ts +6 -5
  836. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/get/iam-get-tags.handler.ts +1 -2
  837. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/get/iam-get-tags.service.ts +6 -5
  838. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/paginate/iam-paginate-tags.handler.ts +1 -2
  839. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/paginate/iam-paginate-tags.service.ts +6 -5
  840. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/update/iam-update-tag-by-id.handler.ts +7 -4
  841. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/update/iam-update-tag-by-id.service.ts +9 -6
  842. package/dist/templates/backend/packages/iam/src/@app/iam/tag/domain/iam-tag.field-schema.ts +3 -3
  843. package/dist/templates/backend/packages/iam/src/@app/iam/tag/index.ts +22 -22
  844. package/dist/templates/backend/packages/iam/src/@app/iam/tag/infrastructure/drizzle/iam-drizzle-tag.repository.ts +35 -0
  845. package/dist/templates/backend/packages/iam/src/@app/iam/tag/infrastructure/drizzle/iam-drizzle-tag.schema.ts +21 -0
  846. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/create/iam-create-tenant.service.ts +4 -3
  847. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/create/iam-create-tenants.service.ts +4 -3
  848. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/delete/iam-delete-tenant-by-id.handler.ts +1 -2
  849. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/delete/iam-delete-tenant-by-id.service.ts +3 -4
  850. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/delete/iam-delete-tenants.handler.ts +1 -2
  851. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/delete/iam-delete-tenants.service.ts +3 -4
  852. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/find/iam-find-tenant-by-id.handler.ts +1 -2
  853. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/find/iam-find-tenant-by-id.service.ts +3 -4
  854. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/find/iam-find-tenant.handler.ts +1 -2
  855. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/find/iam-find-tenant.service.ts +3 -4
  856. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/get/iam-get-tenants.handler.ts +1 -2
  857. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/get/iam-get-tenants.service.ts +3 -4
  858. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/get-with-tenant-constraint/iam-get-with-tenant-constraint-tenants.handler.ts +3 -5
  859. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/paginate/iam-paginate-tenants.handler.ts +1 -2
  860. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/paginate/iam-paginate-tenants.service.ts +3 -4
  861. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/paginate-with-tenant-constraint/iam-paginate-with-tenant-constraint-tenants.handler.ts +3 -5
  862. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/update/iam-update-tenant-by-id.handler.ts +7 -3
  863. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/update/iam-update-tenant-by-id.service.ts +9 -6
  864. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/update/iam-update-tenants.handler.ts +1 -2
  865. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/update/iam-update-tenants.service.ts +5 -5
  866. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/domain/iam-tenant.field-schema.ts +3 -3
  867. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/index.ts +34 -34
  868. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/infrastructure/drizzle/iam-drizzle-tenant.repository.ts +102 -0
  869. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/infrastructure/drizzle/iam-drizzle-tenant.schema.ts +32 -0
  870. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/create/iam-create-tenant-account.service.ts +6 -6
  871. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/create/iam-create-tenants-accounts.service.ts +4 -3
  872. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/delete/iam-delete-tenant-account-by-id.handler.ts +1 -2
  873. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/delete/iam-delete-tenant-account-by-id.service.ts +3 -4
  874. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/delete/iam-delete-tenants-accounts.handler.ts +1 -2
  875. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/delete/iam-delete-tenants-accounts.service.ts +3 -4
  876. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/find/iam-find-tenant-account-by-id.handler.ts +1 -2
  877. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/find/iam-find-tenant-account-by-id.service.ts +3 -4
  878. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/find/iam-find-tenant-account.handler.ts +1 -2
  879. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/find/iam-find-tenant-account.service.ts +3 -4
  880. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/get/iam-get-tenants-accounts.handler.ts +1 -2
  881. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/get/iam-get-tenants-accounts.service.ts +3 -4
  882. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/paginate/iam-paginate-tenants-accounts.handler.ts +1 -2
  883. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/paginate/iam-paginate-tenants-accounts.service.ts +3 -4
  884. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/update/iam-update-tenant-account-by-id.handler.ts +7 -3
  885. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/update/iam-update-tenant-account-by-id.service.ts +9 -6
  886. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/update/iam-update-tenants-accounts.handler.ts +1 -2
  887. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/update/iam-update-tenants-accounts.service.ts +5 -5
  888. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/index.ts +32 -32
  889. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/infrastructure/drizzle/iam-drizzle-tenant-account.repository.ts +40 -0
  890. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/infrastructure/drizzle/iam-drizzle-tenant-account.schema.ts +14 -0
  891. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/count/iam-count-user.handler.ts +2 -3
  892. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/count/iam-count-user.service.ts +3 -4
  893. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/create/iam-create-user.service.ts +4 -3
  894. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/create/iam-create-users.service.ts +4 -3
  895. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/delete/iam-delete-user-by-id.handler.ts +3 -3
  896. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/delete/iam-delete-user-by-id.service.ts +3 -4
  897. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/delete/iam-delete-users.handler.ts +3 -3
  898. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/delete/iam-delete-users.service.ts +3 -4
  899. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/find/iam-find-user-by-id.handler.ts +2 -3
  900. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/find/iam-find-user-by-id.service.ts +3 -4
  901. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/find/iam-find-user-by-username-password.service.spec.ts +20 -11
  902. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/find/iam-find-user-by-username-password.service.ts +23 -21
  903. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/find/iam-find-user.handler.ts +2 -3
  904. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/find/iam-find-user.service.ts +3 -4
  905. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/forgot-password/iam-forgot-password-user.handler.ts +3 -5
  906. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/get/iam-get-users.handler.ts +2 -3
  907. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/get/iam-get-users.service.ts +3 -4
  908. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/paginate/iam-paginate-users.handler.ts +2 -3
  909. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/paginate/iam-paginate-users.service.ts +3 -4
  910. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/reset-password/iam-reset-password-user.handler.ts +3 -5
  911. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/update/iam-update-user-by-id.handler.ts +7 -3
  912. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/update/iam-update-user-by-id.service.ts +9 -6
  913. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/update/iam-update-users.handler.ts +3 -3
  914. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/update/iam-update-users.service.ts +5 -5
  915. package/dist/templates/backend/packages/iam/src/@app/iam/user/domain/iam-user.field-schema.spec.ts +45 -0
  916. package/dist/templates/backend/packages/iam/src/@app/iam/user/domain/iam-user.field-schema.ts +5 -5
  917. package/dist/templates/backend/packages/iam/src/@app/iam/user/index.ts +45 -38
  918. package/dist/templates/backend/packages/iam/src/@app/iam/user/infrastructure/drizzle/iam-drizzle-user.repository.ts +40 -0
  919. package/dist/templates/backend/packages/iam/src/@app/iam/user/infrastructure/drizzle/iam-drizzle-user.schema.ts +42 -0
  920. package/dist/templates/backend/packages/iam/src/@bridges/iam/account/adapters/iam-account-loader.adapter.spec.ts +522 -0
  921. package/dist/templates/backend/packages/iam/src/@bridges/iam/account/adapters/iam-account-loader.adapter.ts +112 -18
  922. package/dist/templates/backend/packages/iam/src/@bridges/iam/account/adapters/iam-account-provisioner.adapter.spec.ts +261 -0
  923. package/dist/templates/backend/packages/iam/src/@bridges/iam/account/adapters/iam-account-provisioner.adapter.ts +115 -0
  924. package/dist/templates/backend/packages/iam/src/@bridges/iam/account/adapters/iam-operator-account-reader.adapter.spec.ts +63 -0
  925. package/dist/templates/backend/packages/iam/src/@bridges/iam/account/adapters/iam-operator-account-reader.adapter.ts +39 -0
  926. package/dist/templates/backend/packages/iam/src/@bridges/iam/account/adapters/index.ts +3 -0
  927. package/dist/templates/backend/packages/iam/src/@bridges/iam/account/index.ts +1 -1
  928. package/dist/templates/backend/packages/iam/src/@bridges/iam/account/ports/iam-account-provisioner.port.ts +81 -0
  929. package/dist/templates/backend/packages/iam/src/@bridges/iam/account/ports/iam-account-provisioner.token.ts +1 -0
  930. package/dist/templates/backend/packages/iam/src/@bridges/iam/account/ports/index.ts +2 -0
  931. package/dist/templates/backend/packages/iam/src/@bridges/iam/bounded-context/adapters/iam-bounded-context-seeder.adapter.ts +1 -1
  932. package/dist/templates/backend/packages/iam/src/@bridges/iam/bounded-context/adapters/iam-bounded-context-writer.adapter.spec.ts +155 -0
  933. package/dist/templates/backend/packages/iam/src/@bridges/iam/bounded-context/adapters/iam-bounded-context-writer.adapter.ts +75 -0
  934. package/dist/templates/backend/packages/iam/src/@bridges/iam/bounded-context/adapters/index.ts +2 -0
  935. package/dist/templates/backend/packages/iam/src/@bridges/iam/bounded-context/index.ts +1 -1
  936. package/dist/templates/backend/packages/iam/src/@bridges/iam/bounded-context/ports/iam-bounded-context-writer.port.ts +49 -0
  937. package/dist/templates/backend/packages/iam/src/@bridges/iam/bounded-context/ports/iam-bounded-context-writer.token.ts +1 -0
  938. package/dist/templates/backend/packages/iam/src/@bridges/iam/bounded-context/ports/index.ts +2 -0
  939. package/dist/templates/backend/packages/iam/src/@bridges/iam/client/index.ts +1 -0
  940. package/dist/templates/backend/packages/iam/src/@bridges/iam/permission/adapters/iam-permission-seeder.adapter.ts +1 -1
  941. package/dist/templates/backend/packages/iam/src/@bridges/iam/permission/adapters/iam-permission-writer.adapter.spec.ts +315 -0
  942. package/dist/templates/backend/packages/iam/src/@bridges/iam/permission/adapters/iam-permission-writer.adapter.ts +147 -0
  943. package/dist/templates/backend/packages/iam/src/@bridges/iam/permission/adapters/index.ts +2 -0
  944. package/dist/templates/backend/packages/iam/src/@bridges/iam/permission/index.ts +1 -1
  945. package/dist/templates/backend/packages/iam/src/@bridges/iam/permission/ports/iam-permission-writer.port.ts +70 -0
  946. package/dist/templates/backend/packages/iam/src/@bridges/iam/permission/ports/iam-permission-writer.token.ts +1 -0
  947. package/dist/templates/backend/packages/iam/src/@bridges/iam/permission/ports/index.ts +2 -0
  948. package/dist/templates/backend/packages/iam/src/@bridges/iam/tenant/adapters/iam-tenant-writer.adapter.spec.ts +169 -0
  949. package/dist/templates/backend/packages/iam/src/@bridges/iam/tenant/adapters/iam-tenant-writer.adapter.ts +57 -0
  950. package/dist/templates/backend/packages/iam/src/@bridges/iam/tenant/adapters/index.ts +1 -0
  951. package/dist/templates/backend/packages/iam/src/@bridges/iam/tenant/index.ts +1 -0
  952. package/dist/templates/backend/packages/iam/src/@bridges/iam/tenant/ports/iam-tenant-writer.port.ts +54 -0
  953. package/dist/templates/backend/packages/iam/src/@bridges/iam/tenant/ports/iam-tenant-writer.token.ts +1 -0
  954. package/dist/templates/backend/packages/iam/src/@bridges/iam/tenant/ports/index.ts +2 -0
  955. package/dist/templates/backend/packages/iam/src/@bridges/iam/user/adapters/iam-credential-verifier.adapter.ts +1 -1
  956. package/dist/templates/backend/packages/iam/src/@bridges/iam/user/adapters/index.ts +1 -0
  957. package/dist/templates/backend/packages/iam/src/@bridges/providers/account-loader.bridge.ts +2 -2
  958. package/dist/templates/backend/packages/iam/src/@bridges/providers/credential-verifier.bridge.ts +2 -2
  959. package/dist/templates/backend/packages/iam/src/@bridges/providers/iam-bounded-context-seeder.bridge.ts +2 -2
  960. package/dist/templates/backend/packages/iam/src/@bridges/providers/iam-permission-seeder.bridge.ts +2 -2
  961. package/dist/templates/backend/packages/iam/test/acceptance/iam/core-back-exception-status.e2e-spec.ts +304 -0
  962. package/dist/templates/backend/packages/iam/test/acceptance/iam/user-sensitive-fields-masking.e2e-spec.ts +297 -0
  963. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/controllers/o-auth-count-access-token.controller.ts +32 -0
  964. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/controllers/o-auth-delete-access-token-by-id.controller.ts +1 -2
  965. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/controllers/o-auth-find-access-token-by-id.controller.ts +1 -2
  966. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/controllers/o-auth-find-access-token.controller.ts +3 -4
  967. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/controllers/o-auth-get-access-tokens.controller.ts +3 -4
  968. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/controllers/o-auth-paginate-access-tokens.controller.ts +3 -4
  969. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/dto/o-auth-access-token.dto.ts +1 -1
  970. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/dto/o-auth-create-access-token.dto.ts +1 -1
  971. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/dto/o-auth-update-access-token-by-id.dto.ts +1 -1
  972. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/dto/o-auth-update-access-tokens.dto.ts +1 -1
  973. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/graphql/o-auth-access-token.graphql +28 -14
  974. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/index.ts +6 -0
  975. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/resolvers/o-auth-count-access-token.resolver.ts +25 -0
  976. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/resolvers/o-auth-delete-access-token-by-id.resolver.ts +1 -2
  977. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/resolvers/o-auth-find-access-token-by-id.resolver.ts +1 -2
  978. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/resolvers/o-auth-find-access-token.resolver.ts +1 -2
  979. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/resolvers/o-auth-get-access-tokens.resolver.ts +1 -2
  980. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/resolvers/o-auth-paginate-access-tokens.resolver.ts +1 -2
  981. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/controllers/o-auth-delete-application-by-id.controller.ts +1 -2
  982. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/controllers/o-auth-find-application-by-id.controller.ts +1 -2
  983. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/controllers/o-auth-find-application.controller.ts +3 -4
  984. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/controllers/o-auth-get-applications.controller.ts +3 -4
  985. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/controllers/o-auth-paginate-applications.controller.ts +3 -4
  986. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/controllers/o-auth-update-application-by-id.controller.ts +1 -2
  987. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/dto/o-auth-application.dto.ts +1 -1
  988. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/dto/o-auth-create-application.dto.ts +1 -1
  989. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/dto/o-auth-update-application-by-id.dto.ts +1 -1
  990. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/dto/o-auth-update-applications.dto.ts +1 -1
  991. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/graphql/o-auth-application.graphql +14 -14
  992. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/resolvers/o-auth-delete-application-by-id.resolver.ts +1 -2
  993. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/resolvers/o-auth-find-application-by-id.resolver.ts +1 -2
  994. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/resolvers/o-auth-find-application.resolver.ts +1 -2
  995. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/resolvers/o-auth-get-applications.resolver.ts +1 -2
  996. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/resolvers/o-auth-paginate-applications.resolver.ts +1 -2
  997. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/resolvers/o-auth-update-application-by-id.resolver.ts +1 -2
  998. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/controllers/o-auth-delete-application-client-by-id.controller.ts +1 -2
  999. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/controllers/o-auth-delete-applications-clients.controller.ts +3 -4
  1000. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/controllers/o-auth-find-application-client-by-id.controller.ts +1 -2
  1001. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/controllers/o-auth-find-application-client.controller.ts +3 -4
  1002. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/controllers/o-auth-get-applications-clients.controller.ts +3 -4
  1003. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/controllers/o-auth-paginate-applications-clients.controller.ts +3 -4
  1004. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/controllers/o-auth-update-application-client-by-id.controller.ts +1 -2
  1005. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/graphql/o-auth-application-client.graphql +13 -10
  1006. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/resolvers/o-auth-delete-application-client-by-id.resolver.ts +1 -2
  1007. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/resolvers/o-auth-delete-applications-clients.resolver.ts +1 -2
  1008. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/resolvers/o-auth-find-application-client-by-id.resolver.ts +1 -2
  1009. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/resolvers/o-auth-find-application-client.resolver.ts +1 -2
  1010. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/resolvers/o-auth-get-applications-clients.resolver.ts +1 -2
  1011. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/resolvers/o-auth-paginate-applications-clients.resolver.ts +1 -2
  1012. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/resolvers/o-auth-update-application-client-by-id.resolver.ts +1 -2
  1013. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/controllers/o-auth-delete-authorization-code-by-id.controller.ts +1 -2
  1014. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/controllers/o-auth-delete-authorization-codes.controller.ts +3 -4
  1015. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/controllers/o-auth-find-authorization-code-by-id.controller.ts +1 -2
  1016. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/controllers/o-auth-find-authorization-code.controller.ts +3 -4
  1017. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/controllers/o-auth-get-authorization-codes.controller.ts +3 -4
  1018. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/controllers/o-auth-paginate-authorization-codes.controller.ts +3 -4
  1019. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/controllers/o-auth-update-authorization-code-by-id.controller.ts +1 -2
  1020. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/graphql/o-auth-authorization-code.graphql +26 -17
  1021. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/resolvers/o-auth-delete-authorization-code-by-id.resolver.ts +1 -2
  1022. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/resolvers/o-auth-delete-authorization-codes.resolver.ts +1 -2
  1023. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/resolvers/o-auth-find-authorization-code-by-id.resolver.ts +1 -2
  1024. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/resolvers/o-auth-find-authorization-code.resolver.ts +1 -2
  1025. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/resolvers/o-auth-get-authorization-codes.resolver.ts +1 -2
  1026. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/resolvers/o-auth-paginate-authorization-codes.resolver.ts +1 -2
  1027. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/resolvers/o-auth-update-authorization-code-by-id.resolver.ts +1 -2
  1028. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/controllers/o-auth-delete-client-by-id.controller.ts +1 -2
  1029. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/controllers/o-auth-find-client-by-id.controller.ts +1 -2
  1030. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/controllers/o-auth-find-client.controller.ts +3 -4
  1031. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/controllers/o-auth-get-clients.controller.ts +3 -4
  1032. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/controllers/o-auth-paginate-clients.controller.ts +3 -4
  1033. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/controllers/o-auth-update-client-by-id.controller.ts +1 -2
  1034. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/dto/o-auth-client.dto.ts +0 -7
  1035. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/dto/o-auth-create-client.dto.ts +0 -7
  1036. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/dto/o-auth-update-client-by-id.dto.ts +0 -7
  1037. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/dto/o-auth-update-clients.dto.ts +0 -7
  1038. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/graphql/o-auth-client.graphql +25 -23
  1039. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/resolvers/o-auth-delete-client-by-id.resolver.ts +1 -2
  1040. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/resolvers/o-auth-find-client-by-id.resolver.ts +1 -2
  1041. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/resolvers/o-auth-find-client.resolver.ts +1 -2
  1042. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/resolvers/o-auth-get-clients.resolver.ts +1 -2
  1043. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/resolvers/o-auth-paginate-clients.resolver.ts +1 -2
  1044. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/resolvers/o-auth-update-client-by-id.resolver.ts +1 -2
  1045. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/credential/controllers/o-auth-find-credential-by-id.controller.ts +1 -2
  1046. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/credential/controllers/o-auth-find-credential.controller.ts +3 -4
  1047. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/credential/controllers/o-auth-get-credentials.controller.ts +3 -4
  1048. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/credential/controllers/o-auth-paginate-credentials.controller.ts +3 -4
  1049. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/credential/dto/o-auth-credential.dto.ts +16 -2
  1050. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/credential/graphql/o-auth-credential.graphql +31 -6
  1051. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/credential/resolvers/o-auth-find-credential-by-id.resolver.ts +1 -2
  1052. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/credential/resolvers/o-auth-find-credential.resolver.ts +1 -2
  1053. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/credential/resolvers/o-auth-get-credentials.resolver.ts +1 -2
  1054. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/credential/resolvers/o-auth-paginate-credentials.resolver.ts +1 -2
  1055. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-authorize.controller.spec.ts +22 -15
  1056. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-authorize.controller.ts +2 -6
  1057. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-create-impersonate-token.controller.ts +72 -0
  1058. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-create-token.controller.spec.ts +1 -1
  1059. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-create-token.controller.ts +2 -5
  1060. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-get-jwks.controller.spec.ts +1 -4
  1061. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-get-jwks.controller.ts +1 -4
  1062. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-logout.controller.spec.ts +38 -12
  1063. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-logout.controller.ts +2 -4
  1064. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-session.controller.spec.ts +1 -1
  1065. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-session.controller.ts +1 -1
  1066. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/graphql/flows.graphql +32 -0
  1067. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/index.ts +10 -2
  1068. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/resolvers/o-auth-create-impersonate-token.resolver.ts +88 -0
  1069. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/resolvers/o-auth-create-token.resolver.spec.ts +3 -1
  1070. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/resolvers/o-auth-create-token.resolver.ts +4 -5
  1071. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/resolvers/o-auth-revoke-token.resolver.spec.ts +2 -0
  1072. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/resolvers/o-auth-revoke-token.resolver.ts +3 -1
  1073. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/o-auth-bootstrap.seeder.spec.ts +98 -29
  1074. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/o-auth-bootstrap.seeder.ts +34 -19
  1075. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/o-auth.module.ts +6 -6
  1076. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/o-auth.seeder.ts +16 -5
  1077. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/controllers/o-auth-delete-refresh-token-by-id.controller.ts +1 -2
  1078. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/controllers/o-auth-find-refresh-token-by-id.controller.ts +1 -2
  1079. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/controllers/o-auth-find-refresh-token.controller.ts +3 -4
  1080. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/controllers/o-auth-get-refresh-tokens.controller.ts +3 -4
  1081. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/controllers/o-auth-paginate-refresh-tokens.controller.ts +3 -4
  1082. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/dto/o-auth-create-refresh-token.dto.ts +1 -1
  1083. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/dto/o-auth-refresh-token.dto.ts +1 -1
  1084. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/dto/o-auth-update-refresh-token-by-id.dto.ts +1 -1
  1085. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/dto/o-auth-update-refresh-tokens.dto.ts +1 -1
  1086. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/graphql/o-auth-refresh-token.graphql +23 -14
  1087. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/resolvers/o-auth-delete-refresh-token-by-id.resolver.ts +1 -2
  1088. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/resolvers/o-auth-find-refresh-token-by-id.resolver.ts +1 -2
  1089. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/resolvers/o-auth-find-refresh-token.resolver.ts +1 -2
  1090. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/resolvers/o-auth-get-refresh-tokens.resolver.ts +1 -2
  1091. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/resolvers/o-auth-paginate-refresh-tokens.resolver.ts +1 -2
  1092. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/controllers/o-auth-delete-scope-by-id.controller.ts +1 -2
  1093. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/controllers/o-auth-find-scope-by-id.controller.ts +1 -2
  1094. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/controllers/o-auth-find-scope.controller.ts +3 -4
  1095. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/controllers/o-auth-get-scopes.controller.ts +3 -4
  1096. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/controllers/o-auth-paginate-scopes.controller.ts +3 -4
  1097. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/controllers/o-auth-update-scope-by-id.controller.ts +1 -2
  1098. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/graphql/o-auth-scope.graphql +25 -13
  1099. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/resolvers/o-auth-delete-scope-by-id.resolver.ts +1 -2
  1100. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/resolvers/o-auth-find-scope-by-id.resolver.ts +1 -2
  1101. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/resolvers/o-auth-find-scope.resolver.ts +1 -2
  1102. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/resolvers/o-auth-get-scopes.resolver.ts +1 -2
  1103. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/resolvers/o-auth-paginate-scopes.resolver.ts +1 -2
  1104. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/resolvers/o-auth-update-scope-by-id.resolver.ts +1 -2
  1105. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/count/o-auth-count-access-token.handler.ts +20 -0
  1106. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/count/o-auth-count-access-token.service.ts +24 -0
  1107. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/create/o-auth-create-access-token.service.ts +4 -3
  1108. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/delete/o-auth-delete-access-token-by-id.handler.ts +3 -6
  1109. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/delete/o-auth-delete-access-token-by-id.service.ts +3 -4
  1110. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/find/o-auth-find-access-token-by-id.handler.ts +2 -3
  1111. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/find/o-auth-find-access-token-by-id.service.ts +6 -5
  1112. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/find/o-auth-find-access-token.handler.ts +2 -3
  1113. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/find/o-auth-find-access-token.service.ts +6 -5
  1114. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/get/o-auth-get-access-tokens.handler.ts +2 -3
  1115. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/get/o-auth-get-access-tokens.service.ts +6 -5
  1116. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/paginate/o-auth-paginate-access-tokens.handler.ts +2 -3
  1117. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/paginate/o-auth-paginate-access-tokens.service.ts +6 -5
  1118. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/domain/o-auth-access-token.field-schema.ts +6 -5
  1119. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/index.ts +30 -24
  1120. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/infrastructure/drizzle/o-auth-drizzle-access-token.repository.ts +40 -0
  1121. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/infrastructure/drizzle/o-auth-drizzle-access-token.schema.ts +35 -0
  1122. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/create/o-auth-create-application.service.ts +4 -3
  1123. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/delete/o-auth-delete-application-by-id.handler.ts +1 -2
  1124. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/delete/o-auth-delete-application-by-id.service.ts +3 -4
  1125. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/find/o-auth-find-application-by-id.handler.ts +1 -2
  1126. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/find/o-auth-find-application-by-id.service.ts +3 -4
  1127. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/find/o-auth-find-application.handler.ts +1 -2
  1128. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/find/o-auth-find-application.service.ts +3 -4
  1129. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/get/o-auth-get-applications.handler.ts +1 -2
  1130. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/get/o-auth-get-applications.service.ts +3 -4
  1131. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/paginate/o-auth-paginate-applications.handler.ts +1 -2
  1132. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/paginate/o-auth-paginate-applications.service.ts +3 -4
  1133. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/update/o-auth-update-application-by-id.handler.spec.ts +144 -0
  1134. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/update/o-auth-update-application-by-id.handler.ts +7 -3
  1135. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/update/o-auth-update-application-by-id.service.ts +9 -6
  1136. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/domain/o-auth-application.field-schema.spec.ts +28 -0
  1137. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/domain/o-auth-application.field-schema.ts +5 -6
  1138. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/index.ts +26 -26
  1139. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/infrastructure/drizzle/o-auth-drizzle-application.repository.ts +102 -0
  1140. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/infrastructure/drizzle/o-auth-drizzle-application.schema.ts +29 -0
  1141. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/create/o-auth-create-application-client.service.ts +6 -6
  1142. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/create/o-auth-create-applications-clients.service.ts +7 -3
  1143. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/delete/o-auth-delete-application-client-by-id.handler.ts +1 -2
  1144. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/delete/o-auth-delete-application-client-by-id.service.ts +3 -4
  1145. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/delete/o-auth-delete-applications-clients.handler.ts +1 -2
  1146. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/delete/o-auth-delete-applications-clients.service.ts +3 -4
  1147. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/find/o-auth-find-application-client-by-id.handler.ts +1 -2
  1148. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/find/o-auth-find-application-client-by-id.service.ts +3 -4
  1149. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/find/o-auth-find-application-client.handler.ts +1 -2
  1150. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/find/o-auth-find-application-client.service.ts +3 -4
  1151. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/get/o-auth-get-applications-clients.handler.ts +1 -2
  1152. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/get/o-auth-get-applications-clients.service.ts +3 -4
  1153. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/paginate/o-auth-paginate-applications-clients.handler.ts +1 -2
  1154. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/paginate/o-auth-paginate-applications-clients.service.ts +3 -4
  1155. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/update/o-auth-update-application-client-by-id.handler.ts +7 -3
  1156. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/update/o-auth-update-application-client-by-id.service.ts +9 -6
  1157. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/index.ts +30 -30
  1158. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/infrastructure/drizzle/o-auth-drizzle-application-client.repository.ts +40 -0
  1159. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/infrastructure/drizzle/o-auth-drizzle-application-client.schema.ts +14 -0
  1160. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/create/o-auth-create-authorization-code.service.ts +4 -3
  1161. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/delete/o-auth-delete-authorization-code-by-id.handler.ts +1 -2
  1162. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/delete/o-auth-delete-authorization-code-by-id.service.ts +3 -4
  1163. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/delete/o-auth-delete-authorization-codes.handler.ts +1 -2
  1164. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/delete/o-auth-delete-authorization-codes.service.ts +3 -4
  1165. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/find/o-auth-find-authorization-code-by-id.handler.ts +1 -2
  1166. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/find/o-auth-find-authorization-code-by-id.service.ts +3 -4
  1167. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/find/o-auth-find-authorization-code.handler.ts +1 -2
  1168. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/find/o-auth-find-authorization-code.service.ts +3 -4
  1169. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/get/o-auth-get-authorization-codes.handler.ts +1 -2
  1170. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/get/o-auth-get-authorization-codes.service.ts +3 -4
  1171. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/paginate/o-auth-paginate-authorization-codes.handler.ts +1 -2
  1172. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/paginate/o-auth-paginate-authorization-codes.service.ts +3 -4
  1173. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/update/o-auth-update-authorization-code-by-id.handler.ts +7 -3
  1174. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/update/o-auth-update-authorization-code-by-id.service.ts +9 -6
  1175. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/domain/o-auth-authorization-code.field-schema.ts +4 -4
  1176. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/index.ts +28 -28
  1177. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/infrastructure/drizzle/o-auth-drizzle-authorization-code.repository.ts +66 -0
  1178. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/infrastructure/drizzle/o-auth-drizzle-authorization-code.schema.ts +42 -0
  1179. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/create/o-auth-create-client.service.ts +4 -3
  1180. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/delete/o-auth-delete-client-by-id.handler.ts +1 -2
  1181. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/delete/o-auth-delete-client-by-id.service.ts +3 -4
  1182. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/find/o-auth-find-client-by-id.handler.ts +1 -2
  1183. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/find/o-auth-find-client-by-id.service.ts +3 -4
  1184. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/find/o-auth-find-client.handler.ts +1 -2
  1185. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/find/o-auth-find-client.service.ts +3 -4
  1186. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/get/o-auth-get-clients.handler.ts +1 -2
  1187. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/get/o-auth-get-clients.service.ts +3 -4
  1188. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/paginate/o-auth-paginate-clients.handler.ts +1 -2
  1189. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/paginate/o-auth-paginate-clients.service.ts +3 -4
  1190. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/update/o-auth-update-client-by-id.handler.ts +9 -3
  1191. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/update/o-auth-update-client-by-id.service.ts +9 -6
  1192. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/domain/o-auth-client.field-schema.ts +3 -10
  1193. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/index.ts +26 -26
  1194. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/infrastructure/drizzle/o-auth-drizzle-client.repository.ts +109 -0
  1195. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/infrastructure/drizzle/o-auth-drizzle-client.schema.ts +35 -0
  1196. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/application/create/o-auth-create-credential.service.spec.ts +60 -0
  1197. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/application/create/o-auth-create-credential.service.ts +4 -3
  1198. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/application/find/o-auth-find-credential-by-id.handler.ts +2 -3
  1199. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/application/find/o-auth-find-credential-by-id.service.ts +6 -5
  1200. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/application/find/o-auth-find-credential.handler.ts +2 -3
  1201. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/application/find/o-auth-find-credential.service.ts +6 -5
  1202. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/application/get/o-auth-get-credentials.handler.ts +2 -3
  1203. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/application/get/o-auth-get-credentials.service.ts +6 -5
  1204. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/application/paginate/o-auth-paginate-credentials.handler.ts +2 -3
  1205. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/application/paginate/o-auth-paginate-credentials.service.ts +6 -5
  1206. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/domain/o-auth-credential.field-schema.ts +16 -4
  1207. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/index.ts +21 -21
  1208. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/infrastructure/drizzle/o-auth-drizzle-credential.repository.ts +38 -0
  1209. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/infrastructure/drizzle/o-auth-drizzle-credential.schema.ts +31 -0
  1210. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/authorize/o-auth-authorize.handler.spec.ts +22 -21
  1211. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/authorize/o-auth-authorize.handler.ts +5 -14
  1212. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/create-token/o-auth-create-token.handler.spec.ts +1 -1
  1213. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/create-token/services/o-auth-create-token-authorization-code.service.spec.ts +34 -18
  1214. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/create-token/services/o-auth-create-token-authorization-code.service.ts +18 -10
  1215. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/create-token/services/o-auth-create-token-password.service.spec.ts +22 -4
  1216. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/create-token/services/o-auth-create-token-password.service.ts +13 -6
  1217. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/create-token/services/o-auth-create-token-refresh.service.spec.ts +92 -48
  1218. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/create-token/services/o-auth-create-token-refresh.service.ts +43 -28
  1219. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/get-jwks/o-auth-get-jwks.handler.ts +3 -1
  1220. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/impersonate-token/o-auth-create-impersonate-token.handler.spec.ts +350 -0
  1221. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/impersonate-token/o-auth-create-impersonate-token.handler.ts +117 -0
  1222. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/impersonate-token/services/o-auth-create-impersonate-token.service.spec.ts +228 -0
  1223. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/impersonate-token/services/o-auth-create-impersonate-token.service.ts +153 -0
  1224. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/revoke-token/services/o-auth-revoke-token.service.spec.ts +126 -31
  1225. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/revoke-token/services/o-auth-revoke-token.service.ts +63 -25
  1226. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/session/o-auth-hub-session.service.spec.ts +3 -1
  1227. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/session/o-auth-hub-session.service.ts +2 -0
  1228. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/errors/impersonation-chain.error.ts +26 -0
  1229. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/errors/impersonation-permission-refresh-failed.error.ts +34 -0
  1230. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/errors/impersonation-self.error.ts +25 -0
  1231. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/errors/impersonation-target-no-client.error.ts +26 -0
  1232. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/errors/impersonation-target-not-found.error.ts +27 -0
  1233. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/errors/impersonation-target-privileged.error.ts +26 -0
  1234. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/errors/impersonation-unavailable.error.ts +36 -0
  1235. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/errors/impersonation.errors.spec.ts +132 -0
  1236. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/errors/index.ts +7 -0
  1237. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/flows.types.ts +38 -3
  1238. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/impersonation-privilege-denylist.spec.ts +281 -0
  1239. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/impersonation-privilege-denylist.ts +239 -0
  1240. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/index.ts +26 -18
  1241. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/shared/pkce/o-auth-verify-pkce-s256.ts +1 -1
  1242. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/index.ts +16 -42
  1243. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/o-auth.relations.ts +81 -0
  1244. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/o-auth.seed.ts +80 -46
  1245. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/application/create/o-auth-create-refresh-token.service.ts +4 -3
  1246. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/application/delete/o-auth-delete-refresh-token-by-id.handler.ts +3 -6
  1247. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/application/delete/o-auth-delete-refresh-token-by-id.service.ts +3 -4
  1248. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/application/find/o-auth-find-refresh-token-by-id.handler.ts +2 -3
  1249. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/application/find/o-auth-find-refresh-token-by-id.service.ts +6 -5
  1250. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/application/find/o-auth-find-refresh-token.handler.ts +2 -3
  1251. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/application/find/o-auth-find-refresh-token.service.ts +6 -5
  1252. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/application/get/o-auth-get-refresh-tokens.handler.ts +2 -3
  1253. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/application/get/o-auth-get-refresh-tokens.service.ts +6 -5
  1254. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/application/paginate/o-auth-paginate-refresh-tokens.handler.ts +2 -3
  1255. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/application/paginate/o-auth-paginate-refresh-tokens.service.ts +6 -5
  1256. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/domain/o-auth-refresh-token.field-schema.ts +6 -5
  1257. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/index.ts +23 -23
  1258. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/infrastructure/drizzle/o-auth-drizzle-refresh-token.repository.ts +40 -0
  1259. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/infrastructure/drizzle/o-auth-drizzle-refresh-token.schema.ts +33 -0
  1260. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/create/o-auth-create-scope.service.ts +4 -3
  1261. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/delete/o-auth-delete-scope-by-id.handler.ts +1 -2
  1262. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/delete/o-auth-delete-scope-by-id.service.ts +3 -4
  1263. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/find/o-auth-find-scope-by-id.handler.ts +1 -2
  1264. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/find/o-auth-find-scope-by-id.service.ts +3 -4
  1265. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/find/o-auth-find-scope.handler.ts +1 -2
  1266. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/find/o-auth-find-scope.service.ts +3 -4
  1267. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/get/o-auth-get-scopes.handler.ts +1 -2
  1268. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/get/o-auth-get-scopes.service.ts +3 -4
  1269. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/paginate/o-auth-paginate-scopes.handler.ts +1 -2
  1270. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/paginate/o-auth-paginate-scopes.service.ts +3 -4
  1271. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/update/o-auth-update-scope-by-id.handler.ts +7 -3
  1272. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/update/o-auth-update-scope-by-id.service.ts +9 -6
  1273. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/domain/o-auth-scope.field-schema.ts +3 -3
  1274. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/index.ts +26 -26
  1275. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/infrastructure/drizzle/o-auth-drizzle-scope.repository.ts +40 -0
  1276. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/infrastructure/drizzle/o-auth-drizzle-scope.schema.ts +20 -0
  1277. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/shared/functions/o-auth-authenticate-application.function.spec.ts +67 -21
  1278. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/shared/functions/o-auth-authenticate-application.function.ts +29 -14
  1279. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/shared/functions/o-auth-generate-application-secret.function.spec.ts +30 -0
  1280. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/shared/functions/o-auth-generate-application-secret.function.ts +20 -0
  1281. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/shared/functions/o-auth-resolve-application-client.function.spec.ts +24 -14
  1282. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/shared/functions/o-auth-resolve-application-client.function.ts +10 -6
  1283. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/shared/index.ts +1 -0
  1284. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/shared/services/token-retention.service.spec.ts +67 -77
  1285. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/shared/services/token-retention.service.ts +44 -38
  1286. package/dist/templates/backend/packages/o-auth/src/@bridges/o-auth/application/adapters/index.ts +1 -0
  1287. package/dist/templates/backend/packages/o-auth/src/@bridges/o-auth/application/adapters/o-auth-application-provisioner.adapter.spec.ts +727 -0
  1288. package/dist/templates/backend/packages/o-auth/src/@bridges/o-auth/application/adapters/o-auth-application-provisioner.adapter.ts +274 -0
  1289. package/dist/templates/backend/packages/o-auth/src/@bridges/o-auth/application/index.ts +1 -0
  1290. package/dist/templates/backend/packages/o-auth/src/@bridges/o-auth/application/ports/index.ts +2 -0
  1291. package/dist/templates/backend/packages/o-auth/src/@bridges/o-auth/application/ports/o-auth-application-provisioner.port.ts +79 -0
  1292. package/dist/templates/backend/packages/o-auth/src/@bridges/o-auth/application/ports/o-auth-application-provisioner.token.ts +1 -0
  1293. package/dist/templates/backend/packages/o-auth/src/@bridges/o-auth/client/adapters/index.ts +1 -0
  1294. package/dist/templates/backend/packages/o-auth/src/@bridges/o-auth/client/adapters/o-auth-client-reader.adapter.spec.ts +57 -0
  1295. package/dist/templates/backend/packages/o-auth/src/@bridges/o-auth/client/adapters/o-auth-client-reader.adapter.ts +5 -3
  1296. package/dist/templates/backend/packages/o-auth/src/@bridges/providers/iam-client-reader.bridge.ts +2 -2
  1297. package/dist/templates/backend/packages/o-auth/test/acceptance/o-auth/impersonate-token-guarded-transports.e2e-spec.ts +386 -0
  1298. package/dist/templates/backend/packages/o-auth/test/acceptance/o-auth/masked-property-query-guard.e2e-spec.ts +950 -0
  1299. package/dist/templates/backend/packages/o-auth/test/acceptance/o-auth/oauth-bootstrap-seeder-idempotency.e2e-spec.ts +228 -0
  1300. package/dist/templates/backend/packages/o-auth/test/acceptance/o-auth/token-masking.e2e-spec.ts +247 -0
  1301. package/dist/templates/backend/packages/queue-manager/src/@api/queue-manager/flows/graphql/queue-manager.graphql +149 -0
  1302. package/dist/templates/backend/packages/queue-manager/src/@api/queue-manager/flows/index.ts +24 -0
  1303. package/dist/templates/backend/packages/queue-manager/src/@api/queue-manager/flows/resolvers/queue-manager.resolver.auth-metadata.spec.ts +105 -0
  1304. package/dist/templates/backend/packages/queue-manager/src/@api/queue-manager/flows/resolvers/queue-manager.resolver.spec.ts +220 -0
  1305. package/dist/templates/backend/packages/queue-manager/src/@api/queue-manager/flows/resolvers/queue-manager.resolver.ts +228 -0
  1306. package/dist/templates/backend/packages/queue-manager/src/@api/queue-manager/queue-manager.module.ts +84 -0
  1307. package/dist/templates/backend/packages/queue-manager/src/@api/queue-manager/queue-manager.seeder.ts +33 -0
  1308. package/dist/templates/backend/packages/queue-manager/src/@app/queue-manager/domain/ports/index.ts +20 -0
  1309. package/dist/templates/backend/packages/queue-manager/src/@app/queue-manager/domain/ports/queue-inspector.port.ts +144 -0
  1310. package/dist/templates/backend/packages/queue-manager/src/@app/queue-manager/domain/ports/queue-registry.token.ts +30 -0
  1311. package/dist/templates/backend/packages/queue-manager/src/@app/queue-manager/infrastructure/adapters/bull-board-queue-inspector.adapter.spec.ts +172 -0
  1312. package/dist/templates/backend/packages/queue-manager/src/@app/queue-manager/infrastructure/adapters/bull-board-queue-inspector.adapter.ts +352 -0
  1313. package/dist/templates/backend/packages/queue-manager/src/@app/queue-manager/infrastructure/adapters/index.ts +1 -0
  1314. package/dist/templates/backend/packages/queue-manager/src/@app/queue-manager/infrastructure/index.ts +1 -0
  1315. package/dist/templates/backend/packages/queue-manager/src/@app/queue-manager/queue-manager.seed.ts +51 -0
  1316. package/dist/templates/backend/packages/queue-manager/src/@app/queue-manager/queue-registry.providers.ts +37 -0
  1317. package/dist/templates/codegen/backend/@api/__bounded_context_name__.module.ts.eta +0 -2
  1318. package/dist/templates/codegen/backend/@api/__bounded_context_name__.seeder.ts.eta +4 -4
  1319. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-count-__module_name__.controller.ts.eta +69 -0
  1320. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-create-__module_name__.controller.ts.eta +7 -8
  1321. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-create-__module_names__.controller.ts.eta +2 -2
  1322. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-delete-__module_name__-by-id.controller.ts.eta +4 -7
  1323. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-delete-__module_names__.controller.ts.eta +3 -13
  1324. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-find-__module_name__-by-id.controller.ts.eta +4 -7
  1325. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-find-__module_name__.controller.ts.eta +6 -9
  1326. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-get-__module_names__.controller.ts.eta +6 -9
  1327. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-get-raw-__module_names__.controller.ts.eta +0 -9
  1328. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-max-__module_name__.controller.ts.eta +72 -0
  1329. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-min-__module_name__.controller.ts.eta +72 -0
  1330. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-paginate-__module_names__.controller.ts.eta +6 -9
  1331. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-sum-__module_name__.controller.ts.eta +72 -0
  1332. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-update-__module_name__-by-id.controller.ts.eta +6 -9
  1333. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-update-__module_names__.controller.ts.eta +3 -13
  1334. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-upsert-__module_name__.controller.ts.eta +2 -11
  1335. package/dist/templates/codegen/backend/@api/__module_name__/dto/__bounded_context_name__-__module_name__.dto.ts.eta +18 -2
  1336. package/dist/templates/codegen/backend/@api/__module_name__/dto/__bounded_context_name__-create-__module_name__.dto.ts.eta +10 -2
  1337. package/dist/templates/codegen/backend/@api/__module_name__/dto/__bounded_context_name__-update-__module_name__-by-id.dto.ts.eta +10 -2
  1338. package/dist/templates/codegen/backend/@api/__module_name__/dto/__bounded_context_name__-update-__module_names__.dto.ts.eta +10 -2
  1339. package/dist/templates/codegen/backend/@api/__module_name__/graphql/__bounded_context_name__-__module_name__.graphql.eta +139 -38
  1340. package/dist/templates/codegen/backend/@api/__module_name__/index.ts.eta +72 -0
  1341. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-__module_name__-custom-field-value.resolver.ts.eta +32 -0
  1342. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-count-__module_name__.resolver.ts.eta +62 -0
  1343. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-create-__module_name__.resolver.ts.eta +6 -8
  1344. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-create-__module_names__.resolver.ts.eta +2 -2
  1345. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-delete-__module_name__-by-id.resolver.ts.eta +4 -7
  1346. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-delete-__module_names__.resolver.ts.eta +1 -11
  1347. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-find-__module_name__-by-id.resolver.ts.eta +4 -7
  1348. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-find-__module_name__.resolver.ts.eta +4 -7
  1349. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-get-__module_names__.resolver.ts.eta +4 -7
  1350. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-get-raw-__module_names__.resolver.ts.eta +0 -9
  1351. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-max-__module_name__.resolver.ts.eta +64 -0
  1352. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-min-__module_name__.resolver.ts.eta +64 -0
  1353. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-paginate-__module_names__.resolver.ts.eta +4 -7
  1354. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-sum-__module_name__.resolver.ts.eta +64 -0
  1355. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-update-__module_name__-by-id.resolver.ts.eta +6 -9
  1356. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-update-__module_names__.resolver.ts.eta +3 -13
  1357. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-upsert-__module_name__.resolver.ts.eta +2 -11
  1358. package/dist/templates/codegen/backend/@app/__bounded_context_name__.seed.ts.eta +6 -4
  1359. package/dist/templates/codegen/backend/@app/__module_name__/application/__bounded_context_name__-__module_name__.payload-types.ts.eta +53 -0
  1360. package/dist/templates/codegen/backend/@app/__module_name__/application/count/__bounded_context_name__-count-__module_name__.handler.ts.eta +3 -41
  1361. package/dist/templates/codegen/backend/@app/__module_name__/application/count/__bounded_context_name__-count-__module_name__.service.ts.eta +5 -6
  1362. package/dist/templates/codegen/backend/@app/__module_name__/application/create/__bounded_context_name__-create-__module_name__.handler.ts.eta +56 -44
  1363. package/dist/templates/codegen/backend/@app/__module_name__/application/create/__bounded_context_name__-create-__module_name__.service.ts.eta +99 -81
  1364. package/dist/templates/codegen/backend/@app/__module_name__/application/create/__bounded_context_name__-create-__module_names__.handler.ts.eta +46 -4
  1365. package/dist/templates/codegen/backend/@app/__module_name__/application/create/__bounded_context_name__-create-__module_names__.service.ts.eta +111 -31
  1366. package/dist/templates/codegen/backend/@app/__module_name__/application/delete/__bounded_context_name__-delete-__module_name__-by-id.handler.ts.eta +33 -46
  1367. package/dist/templates/codegen/backend/@app/__module_name__/application/delete/__bounded_context_name__-delete-__module_name__-by-id.service.ts.eta +100 -80
  1368. package/dist/templates/codegen/backend/@app/__module_name__/application/delete/__bounded_context_name__-delete-__module_names__.handler.ts.eta +10 -48
  1369. package/dist/templates/codegen/backend/@app/__module_name__/application/delete/__bounded_context_name__-delete-__module_names__.service.ts.eta +39 -61
  1370. package/dist/templates/codegen/backend/@app/__module_name__/application/find/__bounded_context_name__-find-__module_name__-by-id.handler.ts.eta +18 -36
  1371. package/dist/templates/codegen/backend/@app/__module_name__/application/find/__bounded_context_name__-find-__module_name__-by-id.service.ts.eta +34 -10
  1372. package/dist/templates/codegen/backend/@app/__module_name__/application/find/__bounded_context_name__-find-__module_name__.handler.ts.eta +18 -37
  1373. package/dist/templates/codegen/backend/@app/__module_name__/application/find/__bounded_context_name__-find-__module_name__.service.ts.eta +34 -9
  1374. package/dist/templates/codegen/backend/@app/__module_name__/application/get/__bounded_context_name__-get-__module_names__.handler.ts.eta +21 -38
  1375. package/dist/templates/codegen/backend/@app/__module_name__/application/get/__bounded_context_name__-get-__module_names__.service.ts.eta +34 -9
  1376. package/dist/templates/codegen/backend/@app/__module_name__/application/get/__bounded_context_name__-get-raw-__module_names__.handler.ts.eta +14 -39
  1377. package/dist/templates/codegen/backend/@app/__module_name__/application/get/__bounded_context_name__-get-raw-__module_names__.service.ts.eta +4 -6
  1378. package/dist/templates/codegen/backend/@app/__module_name__/application/max/__bounded_context_name__-max-__module_name__.handler.ts.eta +43 -0
  1379. package/dist/templates/codegen/backend/@app/__module_name__/application/max/__bounded_context_name__-max-__module_name__.service.ts.eta +5 -6
  1380. package/dist/templates/codegen/backend/@app/__module_name__/application/min/__bounded_context_name__-min-__module_name__.handler.ts.eta +43 -0
  1381. package/dist/templates/codegen/backend/@app/__module_name__/application/min/__bounded_context_name__-min-__module_name__.service.ts.eta +5 -6
  1382. package/dist/templates/codegen/backend/@app/__module_name__/application/paginate/__bounded_context_name__-paginate-__module_names__.handler.ts.eta +21 -37
  1383. package/dist/templates/codegen/backend/@app/__module_name__/application/paginate/__bounded_context_name__-paginate-__module_names__.service.ts.eta +37 -9
  1384. package/dist/templates/codegen/backend/@app/__module_name__/application/sum/__bounded_context_name__-sum-__module_name__.handler.ts.eta +43 -0
  1385. package/dist/templates/codegen/backend/@app/__module_name__/application/sum/__bounded_context_name__-sum-__module_name__.service.ts.eta +5 -6
  1386. package/dist/templates/codegen/backend/@app/__module_name__/application/update/__bounded_context_name__-update-__module_name__-by-id.handler.ts.eta +73 -59
  1387. package/dist/templates/codegen/backend/@app/__module_name__/application/update/__bounded_context_name__-update-__module_name__-by-id.service.ts.eta +71 -35
  1388. package/dist/templates/codegen/backend/@app/__module_name__/application/update/__bounded_context_name__-update-__module_names__.handler.ts.eta +31 -47
  1389. package/dist/templates/codegen/backend/@app/__module_name__/application/update/__bounded_context_name__-update-__module_names__.service.ts.eta +25 -41
  1390. package/dist/templates/codegen/backend/@app/__module_name__/application/update/__bounded_context_name__-update-and-increment-__module_names__.service.ts.eta +24 -41
  1391. package/dist/templates/codegen/backend/@app/__module_name__/application/upsert/__bounded_context_name__-upsert-__module_name__.handler.ts.eta +23 -47
  1392. package/dist/templates/codegen/backend/@app/__module_name__/application/upsert/__bounded_context_name__-upsert-__module_name__.service.ts.eta +23 -83
  1393. package/dist/templates/codegen/backend/@app/__module_name__/domain/__bounded_context_name__-__module_name__.field-schema.ts.eta +38 -2
  1394. package/dist/templates/codegen/backend/@app/__module_name__/index.ts.eta +116 -121
  1395. package/dist/templates/codegen/backend/@app/__module_name__/infrastructure/drizzle/__bounded_context_name__-drizzle-__module_name__-custom-field-value.schema.ts.eta +37 -0
  1396. package/dist/templates/codegen/backend/@app/__module_name__/infrastructure/drizzle/__bounded_context_name__-drizzle-__module_name__-i18n.repository.ts.eta +65 -0
  1397. package/dist/templates/codegen/backend/@app/__module_name__/infrastructure/drizzle/__bounded_context_name__-drizzle-__module_name__-i18n.schema.ts.eta +47 -0
  1398. package/dist/templates/codegen/backend/@app/__module_name__/infrastructure/drizzle/__bounded_context_name__-drizzle-__module_name__.repository.ts.eta +180 -0
  1399. package/dist/templates/codegen/backend/@app/__module_name__/infrastructure/drizzle/__bounded_context_name__-drizzle-__module_name__.schema.ts.eta +154 -0
  1400. package/dist/templates/codegen/backend/@app/index.ts.eta +0 -1
  1401. package/dist/templates/codegen/backend/additional-@api/__module_name__/controllers/__additional_api_name__.controller.ts.eta +9 -13
  1402. package/dist/templates/codegen/backend/additional-@api/__module_name__/resolvers/__additional_api_name__.resolver.ts.eta +9 -13
  1403. package/dist/templates/codegen/backend/additional-@app/__module_name__/application/__additional_api_action__/__additional_api_name__.handler.ts.eta +7 -6
  1404. package/dist/templates/codegen/frontend/module/__bounded_context_name__.navigation.ts.eta +1 -0
  1405. package/dist/templates/codegen/frontend/module/__module_name__/__module_name__.columns.ts.eta +231 -30
  1406. package/dist/templates/codegen/frontend/module/__module_name__/data-access/__module_name__.detail-config.ts.eta +18 -2
  1407. package/dist/templates/codegen/frontend/module/__module_name__/data-access/__module_name__.graphql.ts.eta +223 -71
  1408. package/dist/templates/codegen/frontend/module/__module_name__/data-access/__module_name__.list-config.ts.eta +11 -2
  1409. package/dist/templates/codegen/frontend/module/__module_name__/data-access/__module_name__.resolvers.ts.eta +159 -52
  1410. package/dist/templates/codegen/frontend/module/__module_name__/data-access/index.ts.eta +8 -0
  1411. package/dist/templates/codegen/frontend/module/__module_name__/features/__module_name__-detail.component.ts.eta +248 -57
  1412. package/dist/templates/codegen/frontend/module/__module_name__/features/__module_name__-form-embed.component.ts.eta +181 -59
  1413. package/dist/templates/codegen/frontend/module/__module_name__/features/__module_name__-form.component.ts.eta +230 -114
  1414. package/dist/templates/codegen/frontend/module/__module_name__/features/__module_name__-list-actions-cell.component.ts.eta +35 -12
  1415. package/dist/templates/codegen/frontend/module/__module_name__/features/__module_name__-list-translations-cell.component.ts.eta +91 -0
  1416. package/dist/templates/codegen/frontend/module/__module_name__/features/__module_name__-list.component.ts.eta +145 -47
  1417. package/dist/templates/codegen/frontend/module/__module_name__/features/index.ts.eta +19 -0
  1418. package/dist/templates/codegen/frontend/module/__module_name__/index.ts.eta +7 -5
  1419. package/dist/templates/codegen/partials/fields/boolean-field.eta +11 -4
  1420. package/dist/templates/codegen/partials/fields/color-picker-field.eta +8 -0
  1421. package/dist/templates/codegen/partials/fields/date-field.eta +6 -16
  1422. package/dist/templates/codegen/partials/fields/datetime-field.eta +8 -0
  1423. package/dist/templates/codegen/partials/fields/enum-field.eta +14 -10
  1424. package/dist/templates/codegen/partials/fields/number-field.eta +2 -4
  1425. package/dist/templates/codegen/partials/fields/password-field.eta +14 -18
  1426. package/dist/templates/codegen/partials/fields/text-field.eta +2 -7
  1427. package/dist/templates/codegen/partials/fields/varchar-field.eta +2 -7
  1428. package/dist/templates/codegen/partials/form/dialog-frame.eta +14 -11
  1429. package/dist/templates/codegen/partials/form/field-errors.eta +10 -0
  1430. package/dist/templates/codegen/partials/form/field-label.eta +18 -6
  1431. package/dist/templates/codegen/partials/form/form-body.eta +36 -9
  1432. package/dist/templates/codegen/partials/form/view-frame-tabbed.eta +36 -2
  1433. package/dist/templates/codegen/partials/form/view-frame.eta +40 -2
  1434. package/dist/templates/codegen/partials/i18n-recompute.eta +68 -0
  1435. package/dist/templates/codegen/partials/i18n-validate.eta +51 -0
  1436. package/dist/templates/codegen/partials/relationships/async-multiple-search-select.eta +4 -8
  1437. package/dist/templates/codegen/partials/relationships/async-search-select.eta +4 -8
  1438. package/dist/templates/codegen/partials/relationships/grid-elements-manager.eta +1 -0
  1439. package/dist/templates/codegen/partials/relationships/grid-select-element.eta +5 -7
  1440. package/dist/templates/codegen/partials/relationships/multiple-search-select.eta +4 -8
  1441. package/dist/templates/codegen/partials/relationships/multiple-select.eta +5 -7
  1442. package/dist/templates/codegen/partials/relationships/search-select.eta +5 -8
  1443. package/dist/templates/codegen/partials/relationships/select.eta +3 -5
  1444. package/dist/templates/frontend/application/.claude/skills/catalyst-data-layer/SKILL.md +67 -51
  1445. package/dist/templates/frontend/application/.claude/skills/catalyst-data-layer/references/known-patterns.md +24 -20
  1446. package/dist/templates/frontend/application/.claude/skills/catalyst-data-table-management/SKILL.md +38 -33
  1447. package/dist/templates/frontend/application/.claude/skills/catalyst-form-composer-auditor/SKILL.md +133 -73
  1448. package/dist/templates/frontend/application/.claude/skills/catalyst-form-composer-auditor/references/catalyst-detail-form-rules.md +308 -253
  1449. package/dist/templates/frontend/application/.claude/skills/catalyst-project-structure/SKILL.md +281 -173
  1450. package/dist/templates/frontend/application/.claude/skills/catalyst-review-module/SKILL.md +1 -1
  1451. package/dist/templates/frontend/application/.claude/skills/catalyst-widget-creator/SKILL.md +288 -0
  1452. package/dist/templates/frontend/application/.claude/skills/layout-design-system/SKILL.md +69 -10
  1453. package/dist/templates/frontend/application/.claude/skills/transloco-i18n/SKILL.md +21 -0
  1454. package/dist/templates/frontend/application/CLAUDE.md +18 -3
  1455. package/dist/templates/frontend/application/angular.json +6 -4
  1456. package/dist/templates/frontend/application/codegen.ts +2 -1
  1457. package/dist/templates/frontend/application/libs/ui/accordion/src/lib/hlm-accordion-trigger.ts +1 -1
  1458. package/dist/templates/frontend/application/libs/ui/alert/src/lib/hlm-alert.ts +1 -1
  1459. package/dist/templates/frontend/application/libs/ui/alert-dialog/src/index.ts +3 -0
  1460. package/dist/templates/frontend/application/libs/ui/alert-dialog/src/lib/hlm-alert-dialog-action.ts +1 -3
  1461. package/dist/templates/frontend/application/libs/ui/alert-dialog/src/lib/hlm-alert-dialog-cancel.ts +3 -4
  1462. package/dist/templates/frontend/application/libs/ui/alert-dialog/src/lib/hlm-alert-dialog-content.ts +5 -2
  1463. package/dist/templates/frontend/application/libs/ui/alert-dialog/src/lib/hlm-alert-dialog-description.ts +5 -4
  1464. package/dist/templates/frontend/application/libs/ui/alert-dialog/src/lib/hlm-alert-dialog-footer.ts +5 -4
  1465. package/dist/templates/frontend/application/libs/ui/alert-dialog/src/lib/hlm-alert-dialog-header.ts +5 -4
  1466. package/dist/templates/frontend/application/libs/ui/alert-dialog/src/lib/hlm-alert-dialog-media.ts +15 -0
  1467. package/dist/templates/frontend/application/libs/ui/alert-dialog/src/lib/hlm-alert-dialog-overlay.ts +1 -1
  1468. package/dist/templates/frontend/application/libs/ui/alert-dialog/src/lib/hlm-alert-dialog-title.ts +5 -4
  1469. package/dist/templates/frontend/application/libs/ui/alert-dialog/src/lib/hlm-alert-dialog-trigger.ts +1 -3
  1470. package/dist/templates/frontend/application/libs/ui/autocomplete/src/lib/hlm-autocomplete-content.ts +1 -1
  1471. package/dist/templates/frontend/application/libs/ui/autocomplete/src/lib/hlm-autocomplete-empty.ts +1 -3
  1472. package/dist/templates/frontend/application/libs/ui/autocomplete/src/lib/hlm-autocomplete-group.ts +1 -3
  1473. package/dist/templates/frontend/application/libs/ui/autocomplete/src/lib/hlm-autocomplete-input.ts +45 -44
  1474. package/dist/templates/frontend/application/libs/ui/autocomplete/src/lib/hlm-autocomplete-item.ts +3 -5
  1475. package/dist/templates/frontend/application/libs/ui/autocomplete/src/lib/hlm-autocomplete-label.ts +1 -3
  1476. package/dist/templates/frontend/application/libs/ui/autocomplete/src/lib/hlm-autocomplete-list.ts +2 -4
  1477. package/dist/templates/frontend/application/libs/ui/autocomplete/src/lib/hlm-autocomplete-search.ts +8 -18
  1478. package/dist/templates/frontend/application/libs/ui/autocomplete/src/lib/hlm-autocomplete-separator.ts +1 -3
  1479. package/dist/templates/frontend/application/libs/ui/autocomplete/src/lib/hlm-autocomplete-status.ts +2 -4
  1480. package/dist/templates/frontend/application/libs/ui/autocomplete/src/lib/hlm-autocomplete.ts +8 -18
  1481. package/dist/templates/frontend/application/libs/ui/avatar/src/lib/hlm-avatar-badge.ts +2 -2
  1482. package/dist/templates/frontend/application/libs/ui/avatar/src/lib/hlm-avatar-fallback.ts +1 -1
  1483. package/dist/templates/frontend/application/libs/ui/avatar/src/lib/hlm-avatar-image.ts +1 -1
  1484. package/dist/templates/frontend/application/libs/ui/badge/src/lib/hlm-badge.ts +1 -1
  1485. package/dist/templates/frontend/application/libs/ui/breadcrumb/src/index.ts +0 -5
  1486. package/dist/templates/frontend/application/libs/ui/breadcrumb/src/lib/hlm-breadcrumb-ellipsis.ts +12 -25
  1487. package/dist/templates/frontend/application/libs/ui/breadcrumb/src/lib/hlm-breadcrumb-separator.ts +1 -1
  1488. package/dist/templates/frontend/application/libs/ui/button/src/lib/hlm-button.ts +6 -8
  1489. package/dist/templates/frontend/application/libs/ui/button-group/src/lib/hlm-button-group-separator.ts +5 -4
  1490. package/dist/templates/frontend/application/libs/ui/button-group/src/lib/hlm-button-group-text.ts +4 -1
  1491. package/dist/templates/frontend/application/libs/ui/button-group/src/lib/hlm-button-group.ts +4 -4
  1492. package/dist/templates/frontend/application/libs/ui/calendar/src/index.ts +8 -1
  1493. package/dist/templates/frontend/application/libs/ui/calendar/src/lib/hlm-calendar-multi.ts +189 -223
  1494. package/dist/templates/frontend/application/libs/ui/calendar/src/lib/hlm-calendar-range.ts +188 -218
  1495. package/dist/templates/frontend/application/libs/ui/calendar/src/lib/hlm-calendar.ts +184 -212
  1496. package/dist/templates/frontend/application/libs/ui/calendar/src/lib/hlm-month-year-calendar.ts +139 -0
  1497. package/dist/templates/frontend/application/libs/ui/card/src/lib/hlm-card-action.ts +1 -3
  1498. package/dist/templates/frontend/application/libs/ui/card/src/lib/hlm-card-content.ts +2 -4
  1499. package/dist/templates/frontend/application/libs/ui/card/src/lib/hlm-card-description.ts +1 -3
  1500. package/dist/templates/frontend/application/libs/ui/card/src/lib/hlm-card-footer.ts +2 -5
  1501. package/dist/templates/frontend/application/libs/ui/card/src/lib/hlm-card-header.ts +2 -4
  1502. package/dist/templates/frontend/application/libs/ui/card/src/lib/hlm-card-title.ts +1 -3
  1503. package/dist/templates/frontend/application/libs/ui/card/src/lib/hlm-card.token.ts +19 -0
  1504. package/dist/templates/frontend/application/libs/ui/card/src/lib/hlm-card.ts +4 -2
  1505. package/dist/templates/frontend/application/libs/ui/carousel/src/lib/hlm-carousel-next.ts +5 -7
  1506. package/dist/templates/frontend/application/libs/ui/carousel/src/lib/hlm-carousel-previous.ts +5 -7
  1507. package/dist/templates/frontend/application/libs/ui/carousel/src/lib/hlm-carousel.ts +8 -6
  1508. package/dist/templates/frontend/application/libs/ui/checkbox/src/lib/hlm-checkbox.ts +13 -14
  1509. package/dist/templates/frontend/application/libs/ui/collapsible/src/lib/hlm-collapsible-content.ts +1 -3
  1510. package/dist/templates/frontend/application/libs/ui/collapsible/src/lib/hlm-collapsible-trigger.ts +1 -3
  1511. package/dist/templates/frontend/application/libs/ui/collapsible/src/lib/hlm-collapsible.ts +1 -3
  1512. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-chip-input.ts +1 -3
  1513. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-chip-remove.ts +2 -4
  1514. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-chip.ts +2 -4
  1515. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-chips.ts +12 -12
  1516. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-content.ts +1 -3
  1517. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-empty.ts +1 -3
  1518. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-group.ts +1 -3
  1519. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-input.ts +58 -43
  1520. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-item.ts +3 -5
  1521. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-label.ts +1 -3
  1522. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-list.ts +2 -4
  1523. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-multiple.ts +8 -18
  1524. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-placeholder.ts +1 -1
  1525. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-separator.ts +1 -3
  1526. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-status.ts +2 -4
  1527. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-trigger.ts +17 -2
  1528. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-value.ts +1 -0
  1529. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox.ts +8 -18
  1530. package/dist/templates/frontend/application/libs/ui/command/src/lib/hlm-command-dialog.ts +2 -2
  1531. package/dist/templates/frontend/application/libs/ui/command/src/lib/hlm-command-group-label.ts +1 -1
  1532. package/dist/templates/frontend/application/libs/ui/command/src/lib/hlm-command-group.ts +4 -1
  1533. package/dist/templates/frontend/application/libs/ui/command/src/lib/hlm-command-input.ts +10 -4
  1534. package/dist/templates/frontend/application/libs/ui/command/src/lib/hlm-command-item.ts +1 -1
  1535. package/dist/templates/frontend/application/libs/ui/command/src/lib/hlm-command-list.ts +1 -1
  1536. package/dist/templates/frontend/application/libs/ui/command/src/lib/hlm-command-separator.ts +1 -1
  1537. package/dist/templates/frontend/application/libs/ui/command/src/lib/hlm-command-shortcut.ts +4 -1
  1538. package/dist/templates/frontend/application/libs/ui/command/src/lib/hlm-command.ts +1 -1
  1539. package/dist/templates/frontend/application/libs/ui/context-menu/src/lib/hlm-context-menu-trigger.ts +25 -14
  1540. package/dist/templates/frontend/application/libs/ui/date-picker/src/index.ts +24 -3
  1541. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-date-multi-input.ts +104 -0
  1542. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-date-picker-anchor.ts +23 -0
  1543. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-date-picker-input.ts +105 -0
  1544. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-date-picker-multi.token.ts +61 -0
  1545. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-date-picker-multi.ts +70 -85
  1546. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-date-picker-trigger.ts +104 -0
  1547. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-date-picker.token.ts +22 -0
  1548. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-date-picker.ts +83 -97
  1549. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-date-range-input.ts +107 -0
  1550. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-date-range-picker.token.ts +36 -1
  1551. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-date-range-picker.ts +90 -89
  1552. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-month-year-input.ts +105 -0
  1553. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-month-year-picker.token.ts +89 -0
  1554. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-month-year-picker.ts +199 -0
  1555. package/dist/templates/frontend/application/libs/ui/dialog/src/lib/hlm-dialog-close.ts +2 -4
  1556. package/dist/templates/frontend/application/libs/ui/dialog/src/lib/hlm-dialog-content.ts +21 -13
  1557. package/dist/templates/frontend/application/libs/ui/dialog/src/lib/hlm-dialog-description.ts +5 -4
  1558. package/dist/templates/frontend/application/libs/ui/dialog/src/lib/hlm-dialog-footer.ts +1 -3
  1559. package/dist/templates/frontend/application/libs/ui/dialog/src/lib/hlm-dialog-header.ts +2 -4
  1560. package/dist/templates/frontend/application/libs/ui/dialog/src/lib/hlm-dialog-overlay.ts +4 -3
  1561. package/dist/templates/frontend/application/libs/ui/dialog/src/lib/hlm-dialog-title.ts +2 -4
  1562. package/dist/templates/frontend/application/libs/ui/dialog/src/lib/hlm-dialog-trigger.ts +1 -3
  1563. package/dist/templates/frontend/application/libs/ui/dialog/src/lib/hlm-dialog.service.ts +7 -4
  1564. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/index.ts +4 -0
  1565. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-checkbox-indicator.ts +3 -5
  1566. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-checkbox.ts +30 -12
  1567. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-focus-on-hover.ts +35 -0
  1568. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-group.ts +1 -3
  1569. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-item-sub-indicator.ts +2 -2
  1570. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-item.ts +4 -2
  1571. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-label.ts +4 -4
  1572. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-radio-indicator.ts +5 -7
  1573. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-radio.ts +26 -13
  1574. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-separator.ts +2 -4
  1575. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-shortcut.ts +5 -4
  1576. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-sub-trigger.ts +52 -0
  1577. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-sub.ts +21 -26
  1578. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-trigger.ts +14 -17
  1579. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu.ts +21 -26
  1580. package/dist/templates/frontend/application/libs/ui/empty/src/lib/hlm-empty-content.ts +2 -4
  1581. package/dist/templates/frontend/application/libs/ui/empty/src/lib/hlm-empty-description.ts +2 -4
  1582. package/dist/templates/frontend/application/libs/ui/empty/src/lib/hlm-empty-header.ts +2 -4
  1583. package/dist/templates/frontend/application/libs/ui/empty/src/lib/hlm-empty-media.ts +4 -3
  1584. package/dist/templates/frontend/application/libs/ui/empty/src/lib/hlm-empty-title.ts +1 -3
  1585. package/dist/templates/frontend/application/libs/ui/empty/src/lib/hlm-empty.ts +2 -4
  1586. package/dist/templates/frontend/application/libs/ui/field/src/lib/hlm-field-content.ts +2 -4
  1587. package/dist/templates/frontend/application/libs/ui/field/src/lib/hlm-field-description.ts +2 -5
  1588. package/dist/templates/frontend/application/libs/ui/field/src/lib/hlm-field-error.ts +2 -6
  1589. package/dist/templates/frontend/application/libs/ui/field/src/lib/hlm-field-group.ts +2 -4
  1590. package/dist/templates/frontend/application/libs/ui/field/src/lib/hlm-field-label.ts +3 -7
  1591. package/dist/templates/frontend/application/libs/ui/field/src/lib/hlm-field-separator.ts +3 -5
  1592. package/dist/templates/frontend/application/libs/ui/field/src/lib/hlm-field-set.ts +5 -7
  1593. package/dist/templates/frontend/application/libs/ui/field/src/lib/hlm-field-title.ts +2 -4
  1594. package/dist/templates/frontend/application/libs/ui/field/src/lib/hlm-field.ts +1 -1
  1595. package/dist/templates/frontend/application/libs/ui/hover-card/src/lib/hlm-hover-card-content.ts +1 -1
  1596. package/dist/templates/frontend/application/libs/ui/input/src/lib/hlm-input.ts +10 -27
  1597. package/dist/templates/frontend/application/libs/ui/input-group/src/lib/hlm-input-group-addon.ts +6 -6
  1598. package/dist/templates/frontend/application/libs/ui/input-group/src/lib/hlm-input-group-button.ts +3 -3
  1599. package/dist/templates/frontend/application/libs/ui/input-group/src/lib/hlm-input-group-input.ts +2 -4
  1600. package/dist/templates/frontend/application/libs/ui/input-group/src/lib/hlm-input-group-text.ts +2 -2
  1601. package/dist/templates/frontend/application/libs/ui/input-group/src/lib/hlm-input-group-textarea.ts +2 -4
  1602. package/dist/templates/frontend/application/libs/ui/input-group/src/lib/hlm-input-group.ts +5 -24
  1603. package/dist/templates/frontend/application/libs/ui/input-otp/src/lib/hlm-input-otp-fake-caret.ts +7 -4
  1604. package/dist/templates/frontend/application/libs/ui/input-otp/src/lib/hlm-input-otp-group.ts +6 -5
  1605. package/dist/templates/frontend/application/libs/ui/input-otp/src/lib/hlm-input-otp-separator.ts +3 -7
  1606. package/dist/templates/frontend/application/libs/ui/input-otp/src/lib/hlm-input-otp-slot.ts +22 -10
  1607. package/dist/templates/frontend/application/libs/ui/input-otp/src/lib/hlm-input-otp.ts +2 -4
  1608. package/dist/templates/frontend/application/libs/ui/item/src/lib/hlm-item-actions.ts +2 -4
  1609. package/dist/templates/frontend/application/libs/ui/item/src/lib/hlm-item-content.ts +5 -4
  1610. package/dist/templates/frontend/application/libs/ui/item/src/lib/hlm-item-description.ts +6 -8
  1611. package/dist/templates/frontend/application/libs/ui/item/src/lib/hlm-item-footer.ts +2 -4
  1612. package/dist/templates/frontend/application/libs/ui/item/src/lib/hlm-item-group.ts +4 -1
  1613. package/dist/templates/frontend/application/libs/ui/item/src/lib/hlm-item-header.ts +2 -4
  1614. package/dist/templates/frontend/application/libs/ui/item/src/lib/hlm-item-media.ts +4 -3
  1615. package/dist/templates/frontend/application/libs/ui/item/src/lib/hlm-item-separator.ts +3 -2
  1616. package/dist/templates/frontend/application/libs/ui/item/src/lib/hlm-item-title.ts +5 -4
  1617. package/dist/templates/frontend/application/libs/ui/item/src/lib/hlm-item.ts +7 -6
  1618. package/dist/templates/frontend/application/libs/ui/kbd/src/lib/hlm-kbd-group.ts +1 -1
  1619. package/dist/templates/frontend/application/libs/ui/kbd/src/lib/hlm-kbd.ts +4 -5
  1620. package/dist/templates/frontend/application/libs/ui/label/src/lib/hlm-label.ts +3 -10
  1621. package/dist/templates/frontend/application/libs/ui/menubar/src/lib/hlm-menubar-trigger.ts +23 -15
  1622. package/dist/templates/frontend/application/libs/ui/menubar/src/lib/hlm-menubar.ts +1 -1
  1623. package/dist/templates/frontend/application/libs/ui/native-select/src/lib/hlm-native-select-opt-group.ts +8 -5
  1624. package/dist/templates/frontend/application/libs/ui/native-select/src/lib/hlm-native-select-option.ts +8 -5
  1625. package/dist/templates/frontend/application/libs/ui/native-select/src/lib/hlm-native-select.ts +17 -11
  1626. package/dist/templates/frontend/application/libs/ui/navigation-menu/src/lib/hlm-navigation-menu-content.ts +10 -3
  1627. package/dist/templates/frontend/application/libs/ui/navigation-menu/src/lib/hlm-navigation-menu-item.ts +4 -1
  1628. package/dist/templates/frontend/application/libs/ui/navigation-menu/src/lib/hlm-navigation-menu-link.ts +7 -4
  1629. package/dist/templates/frontend/application/libs/ui/navigation-menu/src/lib/hlm-navigation-menu-list.ts +4 -1
  1630. package/dist/templates/frontend/application/libs/ui/navigation-menu/src/lib/hlm-navigation-menu-trigger.ts +18 -4
  1631. package/dist/templates/frontend/application/libs/ui/navigation-menu/src/lib/hlm-navigation-menu.ts +3 -0
  1632. package/dist/templates/frontend/application/libs/ui/pagination/src/lib/hlm-numbered-pagination-query-params.ts +68 -67
  1633. package/dist/templates/frontend/application/libs/ui/pagination/src/lib/hlm-numbered-pagination.ts +1 -3
  1634. package/dist/templates/frontend/application/libs/ui/pagination/src/lib/hlm-pagination-content.ts +2 -4
  1635. package/dist/templates/frontend/application/libs/ui/pagination/src/lib/hlm-pagination-ellipsis.ts +12 -18
  1636. package/dist/templates/frontend/application/libs/ui/pagination/src/lib/hlm-pagination-item.ts +2 -9
  1637. package/dist/templates/frontend/application/libs/ui/pagination/src/lib/hlm-pagination-link.ts +2 -1
  1638. package/dist/templates/frontend/application/libs/ui/pagination/src/lib/hlm-pagination-next.ts +10 -9
  1639. package/dist/templates/frontend/application/libs/ui/pagination/src/lib/hlm-pagination-previous.ts +11 -9
  1640. package/dist/templates/frontend/application/libs/ui/popover/src/index.ts +9 -0
  1641. package/dist/templates/frontend/application/libs/ui/popover/src/lib/hlm-popover-content.ts +2 -1
  1642. package/dist/templates/frontend/application/libs/ui/popover/src/lib/hlm-popover-description.ts +12 -0
  1643. package/dist/templates/frontend/application/libs/ui/popover/src/lib/hlm-popover-header.ts +12 -0
  1644. package/dist/templates/frontend/application/libs/ui/popover/src/lib/hlm-popover-title.ts +12 -0
  1645. package/dist/templates/frontend/application/libs/ui/popover/src/lib/hlm-popover-trigger.ts +1 -3
  1646. package/dist/templates/frontend/application/libs/ui/popover/src/lib/hlm-popover.ts +2 -3
  1647. package/dist/templates/frontend/application/libs/ui/progress/src/lib/hlm-progress-indicator.ts +10 -4
  1648. package/dist/templates/frontend/application/libs/ui/progress/src/lib/hlm-progress.ts +2 -1
  1649. package/dist/templates/frontend/application/libs/ui/radio-group/src/lib/hlm-radio.ts +3 -4
  1650. package/dist/templates/frontend/application/libs/ui/resizable/src/lib/hlm-resizable-handle.ts +1 -1
  1651. package/dist/templates/frontend/application/libs/ui/scroll-area/src/lib/hlm-scroll-area.ts +6 -4
  1652. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select-content.ts +1 -1
  1653. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select-group.ts +1 -3
  1654. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select-item.ts +3 -5
  1655. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select-label.ts +2 -4
  1656. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select-multiple.ts +8 -18
  1657. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select-placeholder.ts +1 -1
  1658. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select-scroll-down.ts +1 -1
  1659. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select-scroll-up.ts +1 -1
  1660. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select-separator.ts +2 -4
  1661. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select-trigger.ts +16 -4
  1662. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select-values-content.ts +4 -1
  1663. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select.ts +8 -18
  1664. package/dist/templates/frontend/application/libs/ui/separator/src/lib/hlm-separator.ts +4 -1
  1665. package/dist/templates/frontend/application/libs/ui/sheet/src/lib/hlm-sheet-close.ts +2 -4
  1666. package/dist/templates/frontend/application/libs/ui/sheet/src/lib/hlm-sheet-content.ts +14 -30
  1667. package/dist/templates/frontend/application/libs/ui/sheet/src/lib/hlm-sheet-description.ts +1 -3
  1668. package/dist/templates/frontend/application/libs/ui/sheet/src/lib/hlm-sheet-footer.ts +2 -4
  1669. package/dist/templates/frontend/application/libs/ui/sheet/src/lib/hlm-sheet-header.ts +2 -4
  1670. package/dist/templates/frontend/application/libs/ui/sheet/src/lib/hlm-sheet-overlay.ts +1 -4
  1671. package/dist/templates/frontend/application/libs/ui/sheet/src/lib/hlm-sheet-title.ts +2 -4
  1672. package/dist/templates/frontend/application/libs/ui/sheet/src/lib/hlm-sheet-trigger.ts +1 -3
  1673. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-content.ts +1 -1
  1674. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-footer.ts +1 -1
  1675. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-group-action.ts +4 -6
  1676. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-group-content.ts +1 -1
  1677. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-group-label.ts +4 -4
  1678. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-group.ts +1 -1
  1679. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-header.ts +1 -1
  1680. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-input.ts +4 -7
  1681. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-inset.ts +5 -7
  1682. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-menu-action.ts +2 -8
  1683. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-menu-badge.ts +4 -8
  1684. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-menu-button.ts +3 -3
  1685. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-menu-skeleton.ts +3 -3
  1686. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-menu-sub-button.ts +8 -6
  1687. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-menu-sub.ts +8 -4
  1688. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-menu.ts +1 -1
  1689. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-rail.ts +2 -2
  1690. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-separator.ts +1 -1
  1691. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-trigger.ts +8 -19
  1692. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-wrapper.ts +1 -1
  1693. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar.service.ts +28 -11
  1694. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar.token.ts +2 -0
  1695. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar.ts +11 -15
  1696. package/dist/templates/frontend/application/libs/ui/slider/src/lib/hlm-slider.ts +3 -3
  1697. package/dist/templates/frontend/application/libs/ui/sonner/src/lib/hlm-toaster.ts +12 -1
  1698. package/dist/templates/frontend/application/libs/ui/spinner/src/lib/hlm-spinner.ts +2 -1
  1699. package/dist/templates/frontend/application/libs/ui/switch/src/lib/hlm-switch-thumb.ts +2 -1
  1700. package/dist/templates/frontend/application/libs/ui/switch/src/lib/hlm-switch.ts +15 -9
  1701. package/dist/templates/frontend/application/libs/ui/tabs/src/lib/hlm-tabs-list.ts +1 -1
  1702. package/dist/templates/frontend/application/libs/ui/tabs/src/lib/hlm-tabs-paginated-list.ts +8 -20
  1703. package/dist/templates/frontend/application/libs/ui/tabs/src/lib/hlm-tabs-trigger.ts +1 -1
  1704. package/dist/templates/frontend/application/libs/ui/textarea/src/lib/hlm-textarea.ts +10 -28
  1705. package/dist/templates/frontend/application/libs/ui/toggle/src/lib/hlm-toggle.ts +1 -1
  1706. package/dist/templates/frontend/application/libs/ui/tooltip/src/lib/hlm-tooltip.ts +3 -2
  1707. package/dist/templates/frontend/application/libs/ui/utils/src/index.ts +1 -0
  1708. package/dist/templates/frontend/application/libs/ui/utils/src/lib/provide-spartan-hlm.ts +34 -0
  1709. package/dist/templates/frontend/application/package.json +38 -29
  1710. package/dist/templates/frontend/application/public/i18n/en.json +17 -2
  1711. package/dist/templates/frontend/application/public/i18n/es.json +17 -2
  1712. package/dist/templates/frontend/application/public/i18n/navigation/en.json +22 -29
  1713. package/dist/templates/frontend/application/public/i18n/navigation/es.json +22 -29
  1714. package/dist/templates/frontend/application/src/@aurora/components/async-multiple-search-select/async-multiple-search-select.component.spec.ts +11 -10
  1715. package/dist/templates/frontend/application/src/@aurora/components/async-multiple-search-select/async-multiple-search-select.component.ts +12 -15
  1716. package/dist/templates/frontend/application/src/@aurora/components/async-multiple-search-select/async-multiple-search-select.stories.ts +0 -2
  1717. package/dist/templates/frontend/application/src/@aurora/components/async-search-select/async-search-select.component.spec.ts +19 -11
  1718. package/dist/templates/frontend/application/src/@aurora/components/async-search-select/async-search-select.component.ts +12 -15
  1719. package/dist/templates/frontend/application/src/@aurora/components/async-search-select/async-search-select.stories.ts +0 -22
  1720. package/dist/templates/frontend/application/src/@aurora/components/breadcrumb/breadcrumb.service.ts +2 -2
  1721. package/dist/templates/frontend/application/src/@aurora/components/chart/chart.component.spec.ts +663 -0
  1722. package/dist/templates/frontend/application/src/@aurora/components/chart/chart.component.ts +334 -0
  1723. package/dist/templates/frontend/application/src/@aurora/components/chart/chart.stories.ts +103 -0
  1724. package/dist/templates/frontend/application/src/@aurora/components/chart/index.ts +1 -0
  1725. package/dist/templates/frontend/application/src/@aurora/components/color-picker/color-picker.component.spec.ts +671 -0
  1726. package/dist/templates/frontend/application/src/@aurora/components/color-picker/color-picker.component.ts +802 -0
  1727. package/dist/templates/frontend/application/src/@aurora/components/color-picker/color-picker.stories.ts +180 -0
  1728. package/dist/templates/frontend/application/src/@aurora/components/color-picker/color-utils.spec.ts +270 -0
  1729. package/dist/templates/frontend/application/src/@aurora/components/color-picker/color-utils.ts +177 -0
  1730. package/dist/templates/frontend/application/src/@aurora/components/color-picker/index.ts +2 -0
  1731. package/dist/templates/frontend/application/src/@aurora/components/custom-field-capture-form/custom-field-capture-form.component.spec.ts +344 -0
  1732. package/dist/templates/frontend/application/src/@aurora/components/custom-field-capture-form/custom-field-capture-form.component.ts +366 -0
  1733. package/dist/templates/frontend/application/src/@aurora/components/custom-field-capture-form/index.ts +4 -0
  1734. package/dist/templates/frontend/application/src/@aurora/components/custom-field-capture-form/lib/build-custom-field-capture-model.spec.ts +82 -0
  1735. package/dist/templates/frontend/application/src/@aurora/components/custom-field-capture-form/lib/build-custom-field-capture-model.ts +49 -0
  1736. package/dist/templates/frontend/application/src/@aurora/components/custom-field-capture-form/lib/custom-field-capture-form.types.ts +57 -0
  1737. package/dist/templates/frontend/application/src/@aurora/components/custom-field-capture-form/lib/custom-field-capture-value-equality.spec.ts +28 -0
  1738. package/dist/templates/frontend/application/src/@aurora/components/custom-field-capture-form/lib/custom-field-capture-value-equality.ts +24 -0
  1739. package/dist/templates/frontend/application/src/@aurora/components/custom-field-capture-form/lib/validate-custom-field-capture-value.spec.ts +50 -0
  1740. package/dist/templates/frontend/application/src/@aurora/components/custom-field-capture-form/lib/validate-custom-field-capture-value.ts +30 -0
  1741. package/dist/templates/frontend/application/src/@aurora/components/data-table/cells/boolean-cell.component.ts +3 -6
  1742. package/dist/templates/frontend/application/src/@aurora/components/data-table/cells/date-cell.component.ts +62 -0
  1743. package/dist/templates/frontend/application/src/@aurora/components/data-table/cells/date-cell.stories.ts +117 -0
  1744. package/dist/templates/frontend/application/src/@aurora/components/data-table/cells/enum-cell.component.ts +23 -0
  1745. package/dist/templates/frontend/application/src/@aurora/components/data-table/cells/index.ts +2 -0
  1746. package/dist/templates/frontend/application/src/@aurora/components/data-table/components/column-toggle.component.ts +7 -29
  1747. package/dist/templates/frontend/application/src/@aurora/components/data-table/components/data-table.component.spec.ts +460 -0
  1748. package/dist/templates/frontend/application/src/@aurora/components/data-table/components/data-table.component.ts +17 -3
  1749. package/dist/templates/frontend/application/src/@aurora/components/data-table/components/head-selection.component.ts +2 -1
  1750. package/dist/templates/frontend/application/src/@aurora/components/data-table/components/row-selection.component.ts +2 -1
  1751. package/dist/templates/frontend/application/src/@aurora/components/data-table/components/sort-button.component.ts +44 -14
  1752. package/dist/templates/frontend/application/src/@aurora/components/data-table/components/table-export.component.ts +5 -9
  1753. package/dist/templates/frontend/application/src/@aurora/components/data-table/components/table-filters.component.ts +2 -11
  1754. package/dist/templates/frontend/application/src/@aurora/components/data-table/components/table-pagination.component.ts +16 -26
  1755. package/dist/templates/frontend/application/src/@aurora/components/data-table/components/table-search.component.ts +1 -11
  1756. package/dist/templates/frontend/application/src/@aurora/components/data-table/index.ts +4 -1
  1757. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/build-filter-where.spec.ts +123 -8
  1758. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/build-filter-where.ts +55 -33
  1759. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/build-search-where.spec.ts +141 -17
  1760. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/build-search-where.ts +50 -21
  1761. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/build-sort-order.spec.ts +22 -11
  1762. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/build-sort-order.ts +25 -19
  1763. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/column-helpers.spec.ts +72 -0
  1764. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/column-helpers.ts +8 -1
  1765. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/custom-field-column.ts +141 -0
  1766. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/get-relations-node.spec.ts +157 -0
  1767. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/get-relations-node.ts +69 -0
  1768. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/merge-custom-field-columns.spec.ts +217 -0
  1769. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/merge-custom-field-columns.ts +146 -0
  1770. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/nested-column.ts +24 -23
  1771. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/resolve-custom-field-filter.spec.ts +140 -0
  1772. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/resolve-custom-field-filter.ts +119 -0
  1773. package/dist/templates/frontend/application/src/@aurora/components/data-table/services/in-memory-column-config-storage.ts +2 -2
  1774. package/dist/templates/frontend/application/src/@aurora/components/data-table/types.ts +57 -8
  1775. package/dist/templates/frontend/application/src/@aurora/components/date-picker/date-picker.component.spec.ts +189 -0
  1776. package/dist/templates/frontend/application/src/@aurora/components/date-picker/date-picker.component.ts +133 -0
  1777. package/dist/templates/frontend/application/src/@aurora/components/date-picker/index.ts +1 -0
  1778. package/dist/templates/frontend/application/src/@aurora/components/datetime-picker/datetime-picker.component.spec.ts +274 -0
  1779. package/dist/templates/frontend/application/src/@aurora/components/datetime-picker/datetime-picker.component.ts +208 -0
  1780. package/dist/templates/frontend/application/src/@aurora/components/datetime-picker/datetime-picker.stories.ts +121 -0
  1781. package/dist/templates/frontend/application/src/@aurora/components/datetime-picker/index.ts +1 -0
  1782. package/dist/templates/frontend/application/src/@aurora/components/grid-pick-dialog/grid-pick-dialog.component.ts +22 -26
  1783. package/dist/templates/frontend/application/src/@aurora/components/grid-select-element/grid-select-element.component.spec.ts +98 -10
  1784. package/dist/templates/frontend/application/src/@aurora/components/grid-select-element/grid-select-element.component.ts +41 -10
  1785. package/dist/templates/frontend/application/src/@aurora/components/grid-select-element/grid-select-element.stories.ts +6 -0
  1786. package/dist/templates/frontend/application/src/@aurora/components/grid-select-multiple-elements/grid-select-multiple-elements.component.spec.ts +80 -0
  1787. package/dist/templates/frontend/application/src/@aurora/components/grid-select-multiple-elements/grid-select-multiple-elements.component.ts +10 -26
  1788. package/dist/templates/frontend/application/src/@aurora/components/grid-select-multiple-elements/grid-select-multiple-elements.stories.ts +2 -2
  1789. package/dist/templates/frontend/application/src/@aurora/components/hlm-badge-icon-cell/hlm-badge-icon-cell.component.ts +4 -7
  1790. package/dist/templates/frontend/application/src/@aurora/components/hlm-password-strength/hlm-password-strength.component.ts +1 -2
  1791. package/dist/templates/frontend/application/src/@aurora/components/index.ts +11 -0
  1792. package/dist/templates/frontend/application/src/@aurora/components/multiple-search-select/multiple-search-select.component.spec.ts +14 -15
  1793. package/dist/templates/frontend/application/src/@aurora/components/multiple-search-select/multiple-search-select.component.ts +12 -15
  1794. package/dist/templates/frontend/application/src/@aurora/components/multiple-search-select/multiple-search-select.stories.ts +0 -9
  1795. package/dist/templates/frontend/application/src/@aurora/components/password-input/index.ts +1 -0
  1796. package/dist/templates/frontend/application/src/@aurora/components/password-input/password-input.component.spec.ts +271 -0
  1797. package/dist/templates/frontend/application/src/@aurora/components/password-input/password-input.component.ts +181 -0
  1798. package/dist/templates/frontend/application/src/@aurora/components/password-input/password-input.stories.ts +189 -0
  1799. package/dist/templates/frontend/application/src/@aurora/components/progress-uploader/index.ts +2 -0
  1800. package/dist/templates/frontend/application/src/@aurora/components/progress-uploader/progress-uploader.component.ts +76 -0
  1801. package/dist/templates/frontend/application/src/@aurora/components/progress-uploader/progress-uploader.service.ts +105 -0
  1802. package/dist/templates/frontend/application/src/@aurora/components/search-select/search-select.component.spec.ts +14 -15
  1803. package/dist/templates/frontend/application/src/@aurora/components/search-select/search-select.component.ts +17 -18
  1804. package/dist/templates/frontend/application/src/@aurora/components/search-select/search-select.stories.ts +0 -14
  1805. package/dist/templates/frontend/application/src/@aurora/components/status-badge/index.ts +3 -0
  1806. package/dist/templates/frontend/application/src/@aurora/components/status-badge/status-badge-cell.component.ts +37 -0
  1807. package/dist/templates/frontend/application/src/@aurora/components/status-badge/status-badge-cell.stories.ts +74 -0
  1808. package/dist/templates/frontend/application/src/@aurora/components/status-badge/status-badge.component.ts +63 -0
  1809. package/dist/templates/frontend/application/src/@aurora/components/status-badge/status-badge.spec.ts +93 -0
  1810. package/dist/templates/frontend/application/src/@aurora/components/status-badge/status-badge.stories.ts +107 -0
  1811. package/dist/templates/frontend/application/src/@aurora/components/status-badge/status-badge.types.ts +43 -0
  1812. package/dist/templates/frontend/application/src/@aurora/composables/atoms/data-table/use-table-data.ts +3 -2
  1813. package/dist/templates/frontend/application/src/@aurora/composables/atoms/graphql/use-graphql-find-by-id.ts +12 -2
  1814. package/dist/templates/frontend/application/src/@aurora/composables/atoms/graphql/use-graphql-find.ts +14 -2
  1815. package/dist/templates/frontend/application/src/@aurora/composables/atoms/graphql/use-graphql-get.ts +11 -2
  1816. package/dist/templates/frontend/application/src/@aurora/composables/atoms/graphql/use-graphql-paginate.ts +9 -2
  1817. package/dist/templates/frontend/application/src/@aurora/composables/presets/use-aggregate-shell.spec.ts +191 -0
  1818. package/dist/templates/frontend/application/src/@aurora/composables/presets/use-aggregate-shell.ts +24 -4
  1819. package/dist/templates/frontend/application/src/@aurora/composables/presets/use-graphql-detail.ts +23 -14
  1820. package/dist/templates/frontend/application/src/@aurora/composables/presets/use-graphql-list.ts +14 -10
  1821. package/dist/templates/frontend/application/src/@aurora/composables/presets/use-paginated-data-table.spec.ts +251 -0
  1822. package/dist/templates/frontend/application/src/@aurora/composables/presets/use-paginated-data-table.ts +64 -19
  1823. package/dist/templates/frontend/application/src/@aurora/composables/presets/use-pivot-membership.spec.ts +142 -0
  1824. package/dist/templates/frontend/application/src/@aurora/composables/presets/use-pivot-membership.ts +7 -9
  1825. package/dist/templates/frontend/application/src/@aurora/directives/index.ts +1 -0
  1826. package/dist/templates/frontend/application/src/@aurora/directives/scroll-fade.directive.ts +150 -0
  1827. package/dist/templates/frontend/application/src/@aurora/index.ts +1 -0
  1828. package/dist/templates/frontend/application/src/@aurora/lib/format-iso-date.spec.ts +50 -0
  1829. package/dist/templates/frontend/application/src/@aurora/lib/format-iso-date.ts +42 -0
  1830. package/dist/templates/frontend/application/src/@aurora/lib/format-iso-datetime.spec.ts +42 -0
  1831. package/dist/templates/frontend/application/src/@aurora/lib/format-iso-datetime.ts +34 -0
  1832. package/dist/templates/frontend/application/src/@aurora/lib/format-local-date.spec.ts +28 -0
  1833. package/dist/templates/frontend/application/src/@aurora/lib/format-local-date.ts +23 -0
  1834. package/dist/templates/frontend/application/src/@aurora/lib/format-utc-date.spec.ts +47 -0
  1835. package/dist/templates/frontend/application/src/@aurora/lib/format-utc-date.ts +25 -0
  1836. package/dist/templates/frontend/application/src/@aurora/lib/index.ts +11 -0
  1837. package/dist/templates/frontend/application/src/@aurora/lib/local-time.spec.ts +54 -0
  1838. package/dist/templates/frontend/application/src/@aurora/lib/local-time.ts +40 -0
  1839. package/dist/templates/frontend/application/src/@aurora/lib/resolve-enum-label.spec.ts +130 -0
  1840. package/dist/templates/frontend/application/src/@aurora/lib/resolve-enum-label.ts +61 -0
  1841. package/dist/templates/frontend/application/src/@aurora/lib/resolve-i18n-value.spec.ts +101 -0
  1842. package/dist/templates/frontend/application/src/@aurora/lib/resolve-i18n-value.ts +30 -0
  1843. package/dist/templates/frontend/application/src/@aurora/lib/resolve-storage-file-url.spec.ts +39 -0
  1844. package/dist/templates/frontend/application/src/@aurora/lib/resolve-storage-file-url.ts +38 -0
  1845. package/dist/templates/frontend/application/src/@aurora/lib/scroll-fade.spec.ts +94 -0
  1846. package/dist/templates/frontend/application/src/@aurora/lib/scroll-fade.ts +51 -0
  1847. package/dist/templates/frontend/application/src/@aurora/lib/to-wire-date.spec.ts +63 -0
  1848. package/dist/templates/frontend/application/src/@aurora/lib/to-wire-date.ts +70 -0
  1849. package/dist/templates/frontend/application/src/@aurora/lib/use-async-search-list.spec.ts +133 -0
  1850. package/dist/templates/frontend/application/src/@aurora/lib/use-async-search-list.ts +1 -6
  1851. package/dist/templates/frontend/application/src/@aurora/lib/utc-date-prefix.ts +24 -0
  1852. package/dist/templates/frontend/application/src/@aurora/modules/authentication/README.md +59 -2
  1853. package/dist/templates/frontend/application/src/@aurora/modules/authentication/data-access/authentication.graphql.ts +15 -15
  1854. package/dist/templates/frontend/application/src/@aurora/modules/authentication/guards/permission.guard.spec.ts +195 -0
  1855. package/dist/templates/frontend/application/src/@aurora/modules/authentication/guards/permission.guard.ts +65 -0
  1856. package/dist/templates/frontend/application/src/@aurora/modules/authentication/index.ts +7 -2
  1857. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/adapters/anonymous-current-account.adapter.spec.ts +92 -0
  1858. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/adapters/anonymous-current-account.adapter.ts +36 -2
  1859. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/adapters/authentication-aurora-adapter.service.spec.ts +494 -0
  1860. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/adapters/authentication-aurora-adapter.service.ts +99 -50
  1861. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/adapters/authentication-disabled.service.ts +8 -4
  1862. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/authenticated-initializer.ts +8 -7
  1863. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/authentication.provider.ts +2 -0
  1864. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/authentication.service.ts +27 -1
  1865. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/authentication.spec.ts +113 -0
  1866. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/authentication.ts +56 -3
  1867. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/authentication.types.ts +6 -2
  1868. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/current-account.service.ts +68 -0
  1869. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/landing-resolver-permission-bounce.spec.ts +80 -0
  1870. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/landing-resolver.service.spec.ts +440 -0
  1871. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/landing-resolver.service.ts +156 -0
  1872. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/resolve-landing-route.spec.ts +75 -0
  1873. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/resolve-landing-route.ts +27 -0
  1874. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/safe-redirect-path.spec.ts +41 -0
  1875. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/safe-redirect-path.ts +21 -0
  1876. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/session-recovery-coordinator.service.spec.ts +759 -0
  1877. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/session-recovery-coordinator.service.ts +310 -0
  1878. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/token-store.service.spec.ts +293 -0
  1879. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/token-store.service.ts +116 -1
  1880. package/dist/templates/frontend/application/src/@aurora/modules/dashboard/components/dashboard-grid/dashboard-grid.component.css +150 -0
  1881. package/dist/templates/frontend/application/src/@aurora/modules/dashboard/components/dashboard-grid/dashboard-grid.component.spec.ts +288 -0
  1882. package/dist/templates/frontend/application/src/@aurora/modules/dashboard/components/dashboard-grid/dashboard-grid.component.ts +776 -0
  1883. package/dist/templates/frontend/application/src/@aurora/modules/dashboard/components/dashboard-grid/dashboard-grid.gridstack.css +15 -0
  1884. package/dist/templates/frontend/application/src/@aurora/modules/dashboard/components/dashboard-grid/dashboard-grid.helpers.ts +174 -0
  1885. package/dist/templates/frontend/application/src/@aurora/modules/dashboard/components/dashboard-grid/index.ts +2 -0
  1886. package/dist/templates/frontend/application/src/@aurora/modules/dashboard/components/dashboard-tile/dashboard-tile.component.spec.ts +261 -0
  1887. package/dist/templates/frontend/application/src/@aurora/modules/dashboard/components/dashboard-tile/dashboard-tile.component.ts +306 -0
  1888. package/dist/templates/frontend/application/src/@aurora/modules/dashboard/components/dashboard-tile/index.ts +1 -0
  1889. package/dist/templates/frontend/application/src/@aurora/modules/dashboard/components/index.ts +2 -0
  1890. package/dist/templates/frontend/application/src/@aurora/modules/dashboard/index.ts +1 -0
  1891. package/dist/templates/frontend/application/src/@aurora/modules/graphql/apollo.factory.spec.ts +1001 -530
  1892. package/dist/templates/frontend/application/src/@aurora/modules/graphql/apollo.factory.ts +108 -34
  1893. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/mutate-create.ts +17 -8
  1894. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/mutate-delete-by-id.ts +14 -8
  1895. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/mutate-delete-by-keys.ts +15 -7
  1896. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/mutate-delete.ts +18 -9
  1897. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/mutate-insert.ts +14 -8
  1898. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/mutate-update.ts +14 -8
  1899. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/query-find-by-id.spec.ts +6 -4
  1900. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/query-find-by-id.ts +12 -11
  1901. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/query-find.spec.ts +7 -5
  1902. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/query-find.ts +16 -13
  1903. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/query-get.spec.ts +6 -4
  1904. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/query-get.ts +13 -14
  1905. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/query-paginate.spec.ts +8 -5
  1906. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/query-paginate.ts +11 -9
  1907. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/types.ts +5 -3
  1908. package/dist/templates/frontend/application/src/@aurora/modules/graphql/graphql.spec.ts +170 -0
  1909. package/dist/templates/frontend/application/src/@aurora/modules/graphql/graphql.ts +36 -6
  1910. package/dist/templates/frontend/application/src/@aurora/modules/graphql/graphql.types.ts +24 -12
  1911. package/dist/templates/frontend/application/src/@aurora/modules/graphql/handlers/aurora-graphql-auth.handler.spec.ts +30 -108
  1912. package/dist/templates/frontend/application/src/@aurora/modules/graphql/handlers/aurora-graphql-auth.handler.ts +9 -76
  1913. package/dist/templates/frontend/application/src/@aurora/modules/graphql/handlers/aurora-graphql-error.handler.spec.ts +12 -3
  1914. package/dist/templates/frontend/application/src/@aurora/modules/graphql/index.ts +5 -0
  1915. package/dist/templates/frontend/application/src/@aurora/modules/health/health.service.spec.ts +138 -0
  1916. package/dist/templates/frontend/application/src/@aurora/modules/health/health.service.ts +60 -0
  1917. package/dist/templates/frontend/application/src/@aurora/modules/health/index.ts +1 -0
  1918. package/dist/templates/frontend/application/src/@aurora/modules/index.ts +5 -0
  1919. package/dist/templates/frontend/application/src/@aurora/modules/lang/index.ts +1 -0
  1920. package/dist/templates/frontend/application/src/@aurora/modules/lang/lang-flag-icons.ts +34 -0
  1921. package/dist/templates/frontend/application/src/@aurora/modules/lang/lang.service.spec.ts +129 -0
  1922. package/dist/templates/frontend/application/src/@aurora/modules/lang/lang.service.ts +37 -3
  1923. package/dist/templates/frontend/application/src/@aurora/modules/report-viewer/build-report-columns.spec.ts +367 -0
  1924. package/dist/templates/frontend/application/src/@aurora/modules/report-viewer/build-report-columns.ts +186 -0
  1925. package/dist/templates/frontend/application/src/@aurora/modules/report-viewer/index.ts +24 -0
  1926. package/dist/templates/frontend/application/src/@aurora/modules/report-viewer/report-cell-renderer.registry.ts +52 -0
  1927. package/dist/templates/frontend/application/src/@aurora/modules/report-viewer/report-fetch-adapter.spec.ts +148 -0
  1928. package/dist/templates/frontend/application/src/@aurora/modules/report-viewer/report-fetch-adapter.ts +68 -0
  1929. package/dist/templates/frontend/application/src/@aurora/modules/report-viewer/report-filter-form.component.ts +154 -0
  1930. package/dist/templates/frontend/application/src/@aurora/modules/report-viewer/report-filter-form.spec.ts +181 -0
  1931. package/dist/templates/frontend/application/src/@aurora/modules/report-viewer/report-viewer.types.ts +230 -0
  1932. package/dist/templates/frontend/application/src/@aurora/modules/session/session.service.ts +2 -2
  1933. package/dist/templates/frontend/application/src/@aurora/modules/theme/index.ts +2 -0
  1934. package/dist/templates/frontend/application/src/@aurora/modules/theme/theme-palette.service.spec.ts +240 -0
  1935. package/dist/templates/frontend/application/src/@aurora/modules/theme/theme-palette.service.ts +128 -0
  1936. package/dist/templates/frontend/application/src/@aurora/modules/theme/theme-palette.type.ts +4 -0
  1937. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/chart-widget-component-i18n.spec.ts +217 -0
  1938. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/chart-widget-i18n.spec.ts +221 -0
  1939. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/chart-widget.component.ts +318 -0
  1940. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/chart-widget.spec.ts +274 -0
  1941. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/chart-widget.ts +89 -0
  1942. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/stat-widget.component.ts +200 -0
  1943. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/stat-widget.spec.ts +373 -0
  1944. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/stat-widget.ts +80 -0
  1945. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/table-widget-i18n.spec.ts +176 -0
  1946. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/table-widget.component.ts +230 -0
  1947. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/table-widget.spec.ts +332 -0
  1948. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/table-widget.ts +67 -0
  1949. package/dist/templates/frontend/application/src/@aurora/modules/widget/aurora-widget-def.ts +101 -0
  1950. package/dist/templates/frontend/application/src/@aurora/modules/widget/index.ts +17 -0
  1951. package/dist/templates/frontend/application/src/@aurora/modules/widget/refreshable-widget.spec.ts +75 -0
  1952. package/dist/templates/frontend/application/src/@aurora/modules/widget/refreshable-widget.ts +32 -0
  1953. package/dist/templates/frontend/application/src/@aurora/modules/widget/widget-category.ts +16 -0
  1954. package/dist/templates/frontend/application/src/@aurora/modules/widget/widget-data-source-runner.spec.ts +298 -0
  1955. package/dist/templates/frontend/application/src/@aurora/modules/widget/widget-data-source-runner.ts +103 -0
  1956. package/dist/templates/frontend/application/src/@aurora/modules/widget/widget-data-source.ts +68 -0
  1957. package/dist/templates/frontend/application/src/@aurora/modules/widget/widget-permission-filter.spec.ts +195 -0
  1958. package/dist/templates/frontend/application/src/@aurora/modules/widget/widget-permission-filter.ts +84 -0
  1959. package/dist/templates/frontend/application/src/@aurora/modules/widget/widget-registry.spec.ts +91 -0
  1960. package/dist/templates/frontend/application/src/@aurora/modules/widget/widget-registry.ts +38 -0
  1961. package/dist/templates/frontend/application/src/@aurora/modules/widget/widget-scope-deriver.spec.ts +85 -0
  1962. package/dist/templates/frontend/application/src/@aurora/modules/widget/widget-scope-deriver.ts +41 -0
  1963. package/dist/templates/frontend/application/src/@aurora/pipes/index.ts +1 -0
  1964. package/dist/templates/frontend/application/src/@aurora/pipes/validation-message-legacy.pipe.spec.ts +81 -0
  1965. package/dist/templates/frontend/application/src/@aurora/pipes/validation-message-legacy.pipe.ts +50 -0
  1966. package/dist/templates/frontend/application/src/@aurora/pipes/validation-message.pipe.spec.ts +197 -0
  1967. package/dist/templates/frontend/application/src/@aurora/pipes/validation-message.pipe.ts +97 -21
  1968. package/dist/templates/frontend/application/src/@aurora/query-dsl/index.ts +32 -0
  1969. package/dist/templates/frontend/application/src/@aurora/query-dsl/query-statement.spec.ts +94 -0
  1970. package/dist/templates/frontend/application/src/@aurora/query-dsl/query-statement.type-contract.ts +38 -0
  1971. package/dist/templates/frontend/application/src/app/app.config.ts +16 -6
  1972. package/dist/templates/frontend/application/src/app/app.routes.ts +1 -1
  1973. package/dist/templates/frontend/application/src/app/app.ts +1 -2
  1974. package/dist/templates/frontend/application/src/app/aurora-widget.providers.ts +21 -0
  1975. package/dist/templates/frontend/application/src/app/aurora.provider.spec.ts +1 -2
  1976. package/dist/templates/frontend/application/src/app/aurora.provider.ts +12 -5
  1977. package/dist/templates/frontend/application/src/app/domains/admin/home/home.component.ts +15 -0
  1978. package/dist/templates/frontend/application/src/app/domains/admin/layout/layout.component.ts +2 -3
  1979. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/app-sidebar.spec.ts +111 -0
  1980. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/app-sidebar.ts +74 -21
  1981. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/nav-active.spec.ts +124 -0
  1982. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/nav-active.ts +48 -0
  1983. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/nav-filter.spec.ts +203 -0
  1984. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/nav-filter.ts +122 -0
  1985. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/nav-main.ts +19 -28
  1986. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/nav-secondary.ts +1 -2
  1987. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/nav-sub-items.ts +10 -23
  1988. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/nav-user.ts +1 -2
  1989. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/types.ts +4 -0
  1990. package/dist/templates/frontend/application/src/app/domains/admin/layout/site-header.spec.ts +153 -0
  1991. package/dist/templates/frontend/application/src/app/domains/admin/layout/site-header.ts +109 -31
  1992. package/dist/templates/frontend/application/src/app/domains/admin/navigation-data.ts +4 -20
  1993. package/dist/templates/frontend/application/src/app/domains/admin/routes.ts +4 -3
  1994. package/dist/templates/frontend/application/src/app/domains/auth/callback-error/callback-error.component.ts +1 -2
  1995. package/dist/templates/frontend/application/src/app/domains/auth/layout.ts +1 -2
  1996. package/dist/templates/frontend/application/src/app/domains/auth/sign-in/login-form.spec.ts +32 -31
  1997. package/dist/templates/frontend/application/src/app/domains/auth/sign-in/login-form.ts +23 -33
  1998. package/dist/templates/frontend/application/src/app/domains/auth/sign-in/oauth-session.service.ts +2 -4
  1999. package/dist/templates/frontend/application/src/app/domains/auth/sign-in/sign-in.component.ts +1 -2
  2000. package/dist/templates/frontend/application/src/app/domains/auth/sign-out/sign-out.component.spec.ts +13 -11
  2001. package/dist/templates/frontend/application/src/app/domains/auth/sign-out/sign-out.component.ts +6 -9
  2002. package/dist/templates/frontend/application/src/app/domains/auth/sign-up/sign-up.component.ts +1 -2
  2003. package/dist/templates/frontend/application/src/app/domains/auth/sign-up/signup-form.spec.ts +60 -0
  2004. package/dist/templates/frontend/application/src/app/domains/auth/sign-up/signup-form.ts +25 -16
  2005. package/dist/templates/frontend/application/src/app/domains/auth/signed-out/signed-out.component.ts +1 -2
  2006. package/dist/templates/frontend/application/src/app/transloco-lang.factory.spec.ts +40 -0
  2007. package/dist/templates/frontend/application/src/app/transloco-lang.factory.ts +28 -0
  2008. package/dist/templates/frontend/application/src/app/transloco-loader.ts +2 -2
  2009. package/dist/templates/frontend/application/src/environments/environment.dev.ts +43 -3
  2010. package/dist/templates/frontend/application/src/environments/environment.local.ts +44 -4
  2011. package/dist/templates/frontend/application/src/environments/environment.prod.ts +43 -3
  2012. package/dist/templates/frontend/application/src/environments/environment.qa.ts +43 -3
  2013. package/dist/templates/frontend/application/src/environments/environment.ts +43 -3
  2014. package/dist/templates/frontend/application/src/environments/environment.type.ts +48 -0
  2015. package/dist/templates/frontend/application/src/index.html +21 -1
  2016. package/dist/templates/frontend/application/src/styles.css +772 -8
  2017. package/dist/templates/frontend/application/tsconfig.app.json +3 -9
  2018. package/dist/templates/frontend/application/tsconfig.json +17 -1
  2019. package/dist/templates/frontend/packages/dashboard/public/i18n/dashboard/en.json +41 -0
  2020. package/dist/templates/frontend/packages/dashboard/public/i18n/dashboard/es.json +41 -0
  2021. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/dashboard.routes.ts +8 -0
  2022. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/features/dashboard-i18n.spec.ts +342 -0
  2023. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/features/dashboard.component.spec.ts +349 -0
  2024. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/features/dashboard.component.ts +622 -0
  2025. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/features/dashboard.helpers.spec.ts +152 -0
  2026. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/features/dashboard.helpers.ts +79 -0
  2027. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/features/dashboard.orchestration.ts +159 -0
  2028. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/features/index.ts +1 -0
  2029. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/features/widget-catalog-dialog.component.ts +295 -0
  2030. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/features/widget-catalog.helpers.spec.ts +202 -0
  2031. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/features/widget-catalog.helpers.ts +58 -0
  2032. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/layout/data-access/index.ts +3 -0
  2033. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/layout/data-access/layout.graphql.spec.ts +142 -0
  2034. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/layout/data-access/layout.graphql.ts +48 -0
  2035. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/layout/data-access/layout.service.ts +71 -0
  2036. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/layout/data-access/layout.types.ts +44 -0
  2037. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/layout/index.ts +1 -0
  2038. package/dist/templates/frontend/packages/hub/public/i18n/hub/en.json +50 -0
  2039. package/dist/templates/frontend/packages/hub/public/i18n/hub/es.json +50 -0
  2040. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/app.columns.ts +124 -0
  2041. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/data-access/app.detail-config.ts +12 -0
  2042. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/data-access/app.graphql.ts +162 -0
  2043. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/data-access/app.list-config.ts +13 -0
  2044. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/data-access/app.resolvers.ts +39 -0
  2045. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/data-access/index.ts +8 -0
  2046. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/features/app-form.component.ts +305 -0
  2047. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/features/app-list-actions-cell.component.ts +75 -0
  2048. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/features/app-list.component.ts +433 -0
  2049. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/features/index.ts +7 -0
  2050. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/index.ts +7 -0
  2051. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app-account/data-access/app-account.detail-config.ts +13 -0
  2052. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app-account/data-access/app-account.graphql.ts +156 -0
  2053. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app-account/data-access/app-account.list-config.ts +14 -0
  2054. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/hub-icons.providers.ts +11 -0
  2055. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/hub.navigation.ts +39 -0
  2056. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/hub.routes.ts +35 -0
  2057. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/hub.types.ts +5 -0
  2058. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/index.ts +6 -0
  2059. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/launchpad/data-access/launchpad.graphql.ts +48 -0
  2060. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/launchpad/features/hub-app-card.component.spec.ts +259 -0
  2061. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/launchpad/features/hub-app-card.component.ts +228 -0
  2062. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/launchpad/features/hub-app-card.helpers.ts +21 -0
  2063. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/launchpad/features/hub-launchpad-keyboard.helpers.ts +148 -0
  2064. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/launchpad/features/hub-launchpad.component.spec.ts +493 -0
  2065. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/launchpad/features/hub-launchpad.component.ts +612 -0
  2066. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/launchpad/features/hub-launchpad.helpers.spec.ts +328 -0
  2067. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/launchpad/features/hub-launchpad.helpers.ts +167 -0
  2068. package/dist/templates/frontend/packages/iam/public/i18n/iam/en.json +6 -1
  2069. package/dist/templates/frontend/packages/iam/public/i18n/iam/es.json +6 -1
  2070. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/adapters/current-account.adapter.spec.ts +459 -0
  2071. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/adapters/current-account.adapter.ts +140 -0
  2072. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/adapters/index.ts +1 -0
  2073. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/data-access/account.derive.spec.ts +63 -0
  2074. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/data-access/account.derive.ts +32 -0
  2075. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/data-access/account.detail-config.ts +12 -0
  2076. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/data-access/account.graphql.ts +287 -0
  2077. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/data-access/account.list-config.ts +13 -0
  2078. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/data-access/account.resolvers.spec.ts +72 -0
  2079. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/data-access/account.resolvers.ts +123 -0
  2080. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/data-access/index.ts +12 -0
  2081. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/features/account-detail.component.spec.ts +78 -0
  2082. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/features/account-detail.component.ts +170 -0
  2083. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/features/account-form.component.spec.ts +886 -0
  2084. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/features/account-form.component.ts +904 -0
  2085. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/features/account-list-actions-cell.component.ts +113 -0
  2086. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/features/account-list.component.ts +261 -0
  2087. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/features/index.ts +6 -0
  2088. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/index.ts +11 -0
  2089. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/bounded-context/data-access/bounded-context.detail-config.ts +12 -0
  2090. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/bounded-context/data-access/bounded-context.graphql.ts +171 -0
  2091. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/bounded-context/data-access/bounded-context.list-config.ts +13 -0
  2092. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/bounded-context/data-access/bounded-context.resolvers.ts +39 -0
  2093. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/bounded-context/data-access/index.ts +8 -0
  2094. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/bounded-context/features/bounded-context-detail.component.ts +160 -0
  2095. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/bounded-context/features/bounded-context-form.component.ts +150 -0
  2096. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/bounded-context/features/bounded-context-list-actions-cell.component.ts +75 -0
  2097. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/bounded-context/features/bounded-context-list.component.ts +242 -0
  2098. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/bounded-context/features/index.ts +8 -0
  2099. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/bounded-context/index.ts +7 -0
  2100. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/iam-icons.providers.ts +23 -0
  2101. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/iam.navigation.ts +59 -0
  2102. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/iam.routes.ts +96 -0
  2103. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/data-access/index.ts +8 -0
  2104. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/data-access/permission.detail-config.ts +12 -0
  2105. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/data-access/permission.graphql.ts +181 -0
  2106. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/data-access/permission.list-config.ts +13 -0
  2107. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/data-access/permission.resolvers.ts +72 -0
  2108. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/features/index.ts +8 -0
  2109. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/features/permission-form-embed.component.ts +96 -0
  2110. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/features/permission-form.component.ts +118 -0
  2111. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/features/permission-list-actions-cell.component.ts +75 -0
  2112. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/features/permission-list.component.ts +398 -0
  2113. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/index.ts +7 -0
  2114. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/permission.columns.ts +73 -0
  2115. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission-role/data-access/permission-role.detail-config.ts +12 -0
  2116. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission-role/data-access/permission-role.graphql.ts +200 -0
  2117. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission-role/data-access/permission-role.list-config.ts +13 -0
  2118. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/data-access/index.ts +8 -0
  2119. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/data-access/role.detail-config.ts +12 -0
  2120. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/data-access/role.graphql.ts +194 -0
  2121. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/data-access/role.list-config.ts +13 -0
  2122. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/data-access/role.resolvers.ts +39 -0
  2123. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/features/index.ts +8 -0
  2124. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/features/role-detail.component.ts +295 -0
  2125. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/features/role-form.component.ts +157 -0
  2126. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/features/role-list-actions-cell.component.ts +75 -0
  2127. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/features/role-list.component.ts +236 -0
  2128. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/index.ts +7 -0
  2129. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/role.columns.ts +119 -0
  2130. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role-account/data-access/role-account.detail-config.ts +12 -0
  2131. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role-account/data-access/role-account.graphql.ts +198 -0
  2132. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role-account/data-access/role-account.list-config.ts +13 -0
  2133. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/shared/validators/unique-email.validator.ts +31 -0
  2134. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/shared/validators/unique-username.validator.ts +29 -0
  2135. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tag/data-access/index.ts +8 -0
  2136. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tag/data-access/tag.detail-config.ts +12 -0
  2137. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tag/data-access/tag.graphql.ts +113 -0
  2138. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tag/data-access/tag.list-config.ts +13 -0
  2139. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tag/data-access/tag.resolvers.ts +39 -0
  2140. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tag/features/index.ts +7 -0
  2141. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tag/features/tag-form.component.ts +88 -0
  2142. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tag/features/tag-list-actions-cell.component.ts +75 -0
  2143. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tag/features/tag-list.component.ts +318 -0
  2144. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tag/index.ts +7 -0
  2145. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant/data-access/index.ts +8 -0
  2146. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant/data-access/tenant.detail-config.ts +12 -0
  2147. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant/data-access/tenant.graphql.ts +223 -0
  2148. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant/data-access/tenant.list-config.ts +13 -0
  2149. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant/data-access/tenant.resolvers.ts +65 -0
  2150. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant/features/index.ts +7 -0
  2151. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant/features/tenant-form.component.ts +149 -0
  2152. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant/features/tenant-list-actions-cell.component.ts +75 -0
  2153. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant/features/tenant-list.component.ts +330 -0
  2154. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant/index.ts +7 -0
  2155. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant/tenant.columns.ts +103 -0
  2156. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant-account/data-access/tenant-account.detail-config.ts +12 -0
  2157. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant-account/data-access/tenant-account.graphql.ts +203 -0
  2158. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant-account/data-access/tenant-account.list-config.ts +13 -0
  2159. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/user/data-access/index.ts +8 -0
  2160. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/user/data-access/user.detail-config.ts +11 -0
  2161. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/user/data-access/user.graphql.ts +180 -0
  2162. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/user/data-access/user.list-config.ts +13 -0
  2163. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/user/data-access/user.resolvers.ts +39 -0
  2164. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/user/features/index.ts +5 -0
  2165. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/user/index.ts +6 -0
  2166. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/widgets/iam.widgets.spec.ts +262 -0
  2167. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/widgets/iam.widgets.ts +156 -0
  2168. package/dist/templates/frontend/packages/o-auth/public/i18n/o-auth/en.json +6 -4
  2169. package/dist/templates/frontend/packages/o-auth/public/i18n/o-auth/es.json +7 -5
  2170. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/access-token/access-token.columns.ts +86 -0
  2171. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/access-token/data-access/access-token.detail-config.ts +10 -0
  2172. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/access-token/data-access/access-token.graphql.ts +117 -0
  2173. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/access-token/data-access/access-token.list-config.ts +13 -0
  2174. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/access-token/data-access/access-token.resolvers.ts +43 -0
  2175. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/access-token/data-access/index.ts +8 -0
  2176. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/access-token/features/access-token-list-actions-cell.component.ts +60 -0
  2177. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/access-token/features/access-token-list.component.ts +224 -0
  2178. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/access-token/features/index.ts +6 -0
  2179. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/access-token/index.ts +7 -0
  2180. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application/application.columns.ts +78 -0
  2181. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application/data-access/application.detail-config.ts +12 -0
  2182. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application/data-access/application.graphql.ts +140 -0
  2183. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application/data-access/application.list-config.ts +13 -0
  2184. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application/data-access/application.resolvers.ts +39 -0
  2185. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application/data-access/index.ts +8 -0
  2186. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application/features/application-form.component.ts +162 -0
  2187. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application/features/application-list-actions-cell.component.ts +75 -0
  2188. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application/features/application-list.component.ts +323 -0
  2189. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application/features/index.ts +7 -0
  2190. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application/index.ts +7 -0
  2191. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application-client/data-access/application-client.graphql.ts +158 -0
  2192. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/authorization-code/authorization-code.columns.ts +123 -0
  2193. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/authorization-code/data-access/authorization-code.detail-config.ts +12 -0
  2194. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/authorization-code/data-access/authorization-code.graphql.ts +168 -0
  2195. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/authorization-code/data-access/authorization-code.list-config.ts +13 -0
  2196. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/authorization-code/data-access/authorization-code.resolvers.ts +47 -0
  2197. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/authorization-code/data-access/index.ts +8 -0
  2198. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/authorization-code/features/authorization-code-form.component.ts +199 -0
  2199. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/authorization-code/features/authorization-code-list-actions-cell.component.ts +76 -0
  2200. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/authorization-code/features/authorization-code-list.component.ts +334 -0
  2201. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/authorization-code/features/index.ts +7 -0
  2202. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/authorization-code/index.ts +7 -0
  2203. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/client/client.columns.ts +145 -0
  2204. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/client/data-access/client.detail-config.ts +12 -0
  2205. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/client/data-access/client.graphql.ts +134 -0
  2206. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/client/data-access/client.list-config.ts +13 -0
  2207. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/client/data-access/client.resolvers.ts +69 -0
  2208. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/client/data-access/index.ts +8 -0
  2209. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/client/features/client-form.component.ts +291 -0
  2210. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/client/features/client-list-actions-cell.component.ts +75 -0
  2211. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/client/features/client-list.component.ts +335 -0
  2212. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/client/features/index.ts +7 -0
  2213. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/client/index.ts +7 -0
  2214. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/o-auth-icons.providers.ts +21 -0
  2215. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/o-auth.navigation.ts +59 -0
  2216. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/refresh-token/data-access/index.ts +8 -0
  2217. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/refresh-token/data-access/refresh-token.detail-config.ts +10 -0
  2218. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/refresh-token/data-access/refresh-token.graphql.ts +104 -0
  2219. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/refresh-token/data-access/refresh-token.list-config.ts +13 -0
  2220. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/refresh-token/data-access/refresh-token.resolvers.ts +39 -0
  2221. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/refresh-token/features/index.ts +6 -0
  2222. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/refresh-token/features/refresh-token-list-actions-cell.component.ts +60 -0
  2223. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/refresh-token/features/refresh-token-list.component.ts +221 -0
  2224. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/refresh-token/index.ts +7 -0
  2225. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/refresh-token/refresh-token.columns.ts +60 -0
  2226. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/scope/data-access/index.ts +8 -0
  2227. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/scope/data-access/scope.detail-config.ts +12 -0
  2228. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/scope/data-access/scope.graphql.ts +120 -0
  2229. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/scope/data-access/scope.list-config.ts +13 -0
  2230. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/scope/data-access/scope.resolvers.ts +39 -0
  2231. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/scope/features/index.ts +7 -0
  2232. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/scope/features/scope-form.component.spec.ts +75 -0
  2233. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/scope/features/scope-form.component.ts +116 -0
  2234. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/scope/features/scope-list-actions-cell.component.ts +75 -0
  2235. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/scope/features/scope-list.component.ts +318 -0
  2236. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/scope/index.ts +7 -0
  2237. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/widgets/o-auth.widgets.spec.ts +338 -0
  2238. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/widgets/o-auth.widgets.ts +230 -0
  2239. package/dist/templates/frontend/packages/queue-manager/public/i18n/queue-manager/en.json +92 -0
  2240. package/dist/templates/frontend/packages/queue-manager/public/i18n/queue-manager/es.json +92 -0
  2241. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/index.ts +1 -0
  2242. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue/data-access/queue.graphql.ts +214 -0
  2243. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue/data-access/queue.service.ts +301 -0
  2244. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue/data-access/use-queue-polling.spec.ts +281 -0
  2245. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue/data-access/use-queue-polling.ts +87 -0
  2246. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue/features/job-data-dialog.component.spec.ts +345 -0
  2247. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue/features/job-data-dialog.component.ts +246 -0
  2248. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue/features/job-drawer.component.ts +492 -0
  2249. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue/features/queue-detail.component.ts +666 -0
  2250. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue/features/queue-list.component.ts +547 -0
  2251. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue/index.ts +6 -0
  2252. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue-manager-icons.providers.ts +5 -0
  2253. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue-manager.navigation.ts +11 -0
  2254. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue-manager.routes.ts +15 -0
  2255. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue-manager.types.spec.ts +154 -0
  2256. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue-manager.types.ts +192 -0
  2257. package/dist/templates/monorepo/.backlog/config.yml +38 -0
  2258. package/dist/templates/monorepo/.claude/agents/jd-fix-agent.md +32 -0
  2259. package/dist/templates/monorepo/.claude/agents/jd-judge-a.md +36 -0
  2260. package/dist/templates/monorepo/.claude/agents/jd-judge-b.md +36 -0
  2261. package/dist/templates/monorepo/.claude/commands/business-rules/audit.md +2 -0
  2262. package/dist/templates/monorepo/.claude/commands/business-rules/check.md +2 -0
  2263. package/dist/templates/monorepo/.claude/commands/business-rules/document.md +4 -1
  2264. package/dist/templates/monorepo/.claude/commands/business-rules/promote.md +2 -0
  2265. package/dist/templates/monorepo/.claude/commands/opsx/apply.md +36 -7
  2266. package/dist/templates/monorepo/.claude/commands/opsx/archive.md +91 -26
  2267. package/dist/templates/monorepo/.claude/commands/opsx/explore.md +51 -27
  2268. package/dist/templates/monorepo/.claude/commands/opsx/propose.md +64 -26
  2269. package/dist/templates/monorepo/.claude/commands/opsx/sync.md +258 -0
  2270. package/dist/templates/monorepo/.claude/hooks/__fixtures__/br-hr-regression-baseline.txt +251 -0
  2271. package/dist/templates/monorepo/.claude/hooks/architecture-checkpoint.test.ts +470 -0
  2272. package/dist/templates/monorepo/.claude/hooks/architecture-checkpoint.ts +395 -43
  2273. package/dist/templates/monorepo/.claude/hooks/auto-allow-readonly-bash.test.ts +158 -0
  2274. package/dist/templates/monorepo/.claude/hooks/auto-allow-readonly-bash.ts +314 -0
  2275. package/dist/templates/monorepo/.claude/hooks/business-rules-injector.test.ts +387 -0
  2276. package/dist/templates/monorepo/.claude/hooks/business-rules-injector.ts +231 -0
  2277. package/dist/templates/monorepo/.claude/hooks/catalyst-regen-review.test.ts +114 -0
  2278. package/dist/templates/monorepo/.claude/hooks/catalyst-regen-review.ts +260 -0
  2279. package/dist/templates/monorepo/.claude/hooks/check-required-setup.test.ts +183 -0
  2280. package/dist/templates/monorepo/.claude/hooks/check-required-setup.ts +304 -0
  2281. package/dist/templates/monorepo/.claude/hooks/format-with-prettier.ts +98 -0
  2282. package/dist/templates/monorepo/.claude/hooks/harness-rules-content-guard.ts +12 -7
  2283. package/dist/templates/monorepo/.claude/hooks/inject-prompt-context.test.ts +453 -0
  2284. package/dist/templates/monorepo/.claude/hooks/inject-prompt-context.ts +526 -0
  2285. package/dist/templates/monorepo/.claude/hooks/instructions-loaded-log.test.ts +131 -0
  2286. package/dist/templates/monorepo/.claude/hooks/instructions-loaded-log.ts +132 -0
  2287. package/dist/templates/monorepo/.claude/hooks/lint-barrels.test.ts +232 -0
  2288. package/dist/templates/monorepo/.claude/hooks/lint-barrels.ts +317 -0
  2289. package/dist/templates/monorepo/.claude/rules/route-aurora-components.md +24 -0
  2290. package/dist/templates/monorepo/.claude/rules/route-aurora-yaml.md +29 -0
  2291. package/dist/templates/monorepo/.claude/rules/route-backend-test.md +31 -0
  2292. package/dist/templates/monorepo/.claude/rules/route-drizzle-schema.md +35 -0
  2293. package/dist/templates/monorepo/.claude/rules/route-eta.md +17 -0
  2294. package/dist/templates/monorepo/.claude/rules/route-skill-md.md +28 -0
  2295. package/dist/templates/monorepo/.claude/rules/scope-backend.md +39 -0
  2296. package/dist/templates/monorepo/.claude/rules/scope-cli.md +28 -0
  2297. package/dist/templates/monorepo/.claude/rules/scope-frontend.md +34 -0
  2298. package/dist/templates/monorepo/.claude/scheduled_tasks.lock +1 -0
  2299. package/dist/templates/monorepo/.claude/scripts/catalyst-dev-mode.sh +2 -2
  2300. package/dist/templates/monorepo/.claude/scripts/daily-tips.txt +1 -0
  2301. package/dist/templates/monorepo/.claude/scripts/generate-skills-index.test.ts +397 -0
  2302. package/dist/templates/monorepo/.claude/scripts/generate-skills-index.ts +196 -23
  2303. package/dist/templates/monorepo/.claude/scripts/status-line.sh +13 -2
  2304. package/dist/templates/monorepo/.claude/settings.json +103 -16
  2305. package/dist/templates/monorepo/.claude/skills/REGISTRY.md +59 -26
  2306. package/dist/templates/monorepo/.claude/skills/business-rules-guard/SKILL.md +15 -2
  2307. package/dist/templates/monorepo/.claude/skills/business-rules-guard/references/audit.md +9 -7
  2308. package/dist/templates/monorepo/.claude/skills/business-rules-guard/references/format.md +70 -2
  2309. package/dist/templates/monorepo/.claude/skills/business-rules-guard/references/workflow.md +2 -1
  2310. package/dist/templates/monorepo/.claude/skills/catalyst-backlog/SKILL.md +604 -0
  2311. package/dist/templates/monorepo/.claude/skills/catalyst-backlog/frontier-worker-addendum.md +137 -0
  2312. package/dist/templates/monorepo/.claude/skills/catalyst-backlog/worker-system-prompt.md +88 -0
  2313. package/dist/templates/monorepo/.claude/skills/catalyst-cli/SKILL.md +117 -38
  2314. package/dist/templates/monorepo/.claude/skills/catalyst-cli/references/origin-conciliation.md +116 -20
  2315. package/dist/templates/monorepo/.claude/skills/catalyst-cli/references/schema-versioning.md +1 -1
  2316. package/dist/templates/monorepo/.claude/skills/catalyst-delegation/SKILL.md +180 -0
  2317. package/dist/templates/monorepo/.claude/skills/catalyst-langs/SKILL.md +241 -0
  2318. package/dist/templates/monorepo/.claude/skills/catalyst-query-dsl/SKILL.md +236 -0
  2319. package/dist/templates/monorepo/.claude/skills/catalyst-query-dsl/references/query-language.md +265 -0
  2320. package/dist/templates/monorepo/.claude/skills/catalyst-report-creator/SKILL.md +232 -0
  2321. package/dist/templates/monorepo/.claude/skills/catalyst-report-creator/references/cube-authoring.md +155 -0
  2322. package/dist/templates/monorepo/.claude/skills/catalyst-schema/SKILL.md +93 -5
  2323. package/dist/templates/monorepo/.claude/skills/catalyst-schema/patterns-workflow.md +24 -0
  2324. package/dist/templates/monorepo/.claude/skills/catalyst-schema/types-reference.md +2 -1
  2325. package/dist/templates/monorepo/.claude/skills/catalyst-skill-creator/SKILL.md +10 -2
  2326. package/dist/templates/monorepo/.claude/skills/catalyst-update-skill-registry/SKILL.md +54 -16
  2327. package/dist/templates/monorepo/.claude/skills/harness-rules-guard/SKILL.md +16 -12
  2328. package/dist/templates/monorepo/.claude/skills/harness-rules-guard/references/enforcement.md +7 -6
  2329. package/dist/templates/monorepo/.claude/skills/harness-rules-guard/references/format.md +140 -6
  2330. package/dist/templates/monorepo/.claude/skills/judgment-day/SKILL.md +8 -0
  2331. package/dist/templates/monorepo/.claude/skills/openspec-apply-change/SKILL.md +35 -6
  2332. package/dist/templates/monorepo/.claude/skills/openspec-archive-change/SKILL.md +87 -22
  2333. package/dist/templates/monorepo/.claude/skills/openspec-explore/SKILL.md +89 -65
  2334. package/dist/templates/monorepo/.claude/skills/openspec-propose/SKILL.md +62 -24
  2335. package/dist/templates/monorepo/.claude/skills/openspec-sync-specs/SKILL.md +262 -0
  2336. package/dist/templates/monorepo/.claude/skills/typescript/SKILL.md +5 -0
  2337. package/dist/templates/monorepo/.claude/skills-triggers-index.json +128 -0
  2338. package/dist/templates/monorepo/.husky/pre-commit +26 -0
  2339. package/dist/templates/monorepo/.mcp.json +7 -0
  2340. package/dist/templates/monorepo/CLAUDE.md +204 -303
  2341. package/dist/templates/monorepo/cliter/business-rules-index.json +11044 -259
  2342. package/dist/templates/monorepo/cliter/harness-rules/barrels.md +294 -0
  2343. package/dist/templates/monorepo/cliter/harness-rules/bridges.md +88 -0
  2344. package/dist/templates/monorepo/cliter/harness-rules/dev-modes.md +85 -0
  2345. package/dist/templates/monorepo/cliter/harness-rules/docs-location.md +67 -0
  2346. package/dist/templates/monorepo/cliter/harness-rules/generated-code.md +77 -0
  2347. package/dist/templates/monorepo/cliter/harness-rules/module-graph.md +89 -0
  2348. package/dist/templates/monorepo/cliter/harness-rules/modules.md +78 -0
  2349. package/dist/templates/monorepo/cliter/harness-rules/persistence-integrity.md +92 -0
  2350. package/dist/templates/monorepo/cliter/harness-rules/ports-adapters.md +82 -0
  2351. package/dist/templates/monorepo/cliter/harness-rules/protocol-flows.md +88 -0
  2352. package/dist/templates/monorepo/cliter/harness-rules/types-acl.md +93 -0
  2353. package/dist/templates/monorepo/cliter/harness-rules-index.json +857 -0
  2354. package/dist/templates/monorepo/docs/AURORA-CATALYST-BRIEF.md +253 -0
  2355. package/dist/templates/monorepo/docs/_catalog-schema-base.json +1 -1
  2356. package/dist/templates/monorepo/docs/business-rules/ARCHITECTURE.md +14 -11
  2357. package/dist/templates/monorepo/docs/business-rules/INDEX.md +108 -5
  2358. package/dist/templates/monorepo/docs/business-rules/MIGRATION.md +11 -52
  2359. package/dist/templates/monorepo/docs/business-rules/README.md +42 -925
  2360. package/dist/templates/monorepo/docs/harness-rules/INDEX.md +11 -7
  2361. package/dist/templates/monorepo/docs/harness-rules/README.md +37 -393
  2362. package/dist/templates/monorepo/docs/langs/README.md +260 -0
  2363. package/dist/templates/monorepo/docs/superpowers/specs/2026-07-02-report-creator-skill-design.md +176 -0
  2364. package/dist/templates/monorepo/openspec/config.yaml +31 -7
  2365. package/dist/templates/monorepo/package.json +14 -3
  2366. package/dist/templates/monorepo/pnpm-workspace.yaml +10 -2
  2367. package/dist/templates/monorepo/scripts/_catalog-runtime/README.md +30 -0
  2368. package/dist/templates/monorepo/scripts/_catalog-runtime/build-index.determinism.test.ts +81 -0
  2369. package/dist/templates/monorepo/scripts/_catalog-runtime/build-index.ts +214 -0
  2370. package/dist/templates/monorepo/scripts/_catalog-runtime/catalog-index.test.ts +146 -0
  2371. package/dist/templates/monorepo/scripts/_catalog-runtime/catalog-index.ts +120 -0
  2372. package/dist/templates/monorepo/scripts/_catalog-runtime/check-core.ts +280 -0
  2373. package/dist/templates/monorepo/scripts/_catalog-runtime/cli.ts +26 -0
  2374. package/dist/templates/monorepo/scripts/_catalog-runtime/frontmatter.ts +15 -0
  2375. package/dist/templates/monorepo/scripts/_catalog-runtime/glob.ts +86 -0
  2376. package/dist/templates/monorepo/scripts/_catalog-runtime/index.ts +74 -0
  2377. package/dist/templates/monorepo/scripts/_catalog-runtime/parse.ts +159 -0
  2378. package/dist/templates/monorepo/scripts/_catalog-runtime/repo-root.ts +36 -0
  2379. package/dist/templates/monorepo/scripts/_catalog-runtime/types.ts +154 -0
  2380. package/dist/templates/monorepo/scripts/_catalog-runtime/validate.ts +254 -0
  2381. package/dist/templates/monorepo/scripts/backlog/README.md +1601 -0
  2382. package/dist/templates/monorepo/scripts/backlog/__fixtures__/stream-budget.jsonl +10 -0
  2383. package/dist/templates/monorepo/scripts/backlog/__fixtures__/stream-crash.jsonl +9 -0
  2384. package/dist/templates/monorepo/scripts/backlog/__fixtures__/stream-max-turns.jsonl +10 -0
  2385. package/dist/templates/monorepo/scripts/backlog/__fixtures__/stream-needs-guidance-prose.jsonl +5 -0
  2386. package/dist/templates/monorepo/scripts/backlog/__fixtures__/stream-needs-guidance.jsonl +10 -0
  2387. package/dist/templates/monorepo/scripts/backlog/__fixtures__/stream-success.jsonl +10 -0
  2388. package/dist/templates/monorepo/scripts/backlog/attempt.test.ts +290 -0
  2389. package/dist/templates/monorepo/scripts/backlog/attempt.ts +179 -0
  2390. package/dist/templates/monorepo/scripts/backlog/close.test.ts +3358 -0
  2391. package/dist/templates/monorepo/scripts/backlog/close.ts +2066 -0
  2392. package/dist/templates/monorepo/scripts/backlog/contract.test.ts +174 -0
  2393. package/dist/templates/monorepo/scripts/backlog/dev.aurora.backlog-dispatch.plist +76 -0
  2394. package/dist/templates/monorepo/scripts/backlog/dispatch.test.ts +2607 -0
  2395. package/dist/templates/monorepo/scripts/backlog/dispatch.ts +2304 -0
  2396. package/dist/templates/monorepo/scripts/backlog/entry.test.ts +1545 -0
  2397. package/dist/templates/monorepo/scripts/backlog/entry.ts +734 -0
  2398. package/dist/templates/monorepo/scripts/backlog/guards.test.ts +1766 -0
  2399. package/dist/templates/monorepo/scripts/backlog/guards.ts +1234 -0
  2400. package/dist/templates/monorepo/scripts/backlog/lanes/frontier.settings.json +104 -0
  2401. package/dist/templates/monorepo/scripts/backlog/lanes/local.settings.json +44 -0
  2402. package/dist/templates/monorepo/scripts/backlog/lanes.json +28 -0
  2403. package/dist/templates/monorepo/scripts/backlog/launch.test.ts +2750 -0
  2404. package/dist/templates/monorepo/scripts/backlog/launch.ts +1125 -0
  2405. package/dist/templates/monorepo/scripts/backlog/maintenance.test.ts +1965 -0
  2406. package/dist/templates/monorepo/scripts/backlog/maintenance.ts +1185 -0
  2407. package/dist/templates/monorepo/scripts/backlog/notify.test.ts +60 -0
  2408. package/dist/templates/monorepo/scripts/backlog/notify.ts +47 -0
  2409. package/dist/templates/monorepo/scripts/backlog/parent.test.ts +221 -0
  2410. package/dist/templates/monorepo/scripts/backlog/parent.ts +174 -0
  2411. package/dist/templates/monorepo/scripts/backlog/prompt.test.ts +928 -0
  2412. package/dist/templates/monorepo/scripts/backlog/prompt.ts +622 -0
  2413. package/dist/templates/monorepo/scripts/backlog/render.test.ts +247 -0
  2414. package/dist/templates/monorepo/scripts/backlog/render.ts +289 -0
  2415. package/dist/templates/monorepo/scripts/backlog/reviewer.test.ts +354 -0
  2416. package/dist/templates/monorepo/scripts/backlog/reviewer.ts +308 -0
  2417. package/dist/templates/monorepo/scripts/backlog/slots.test.ts +991 -0
  2418. package/dist/templates/monorepo/scripts/backlog/slots.ts +641 -0
  2419. package/dist/templates/monorepo/scripts/backlog/task-view.test.ts +763 -0
  2420. package/dist/templates/monorepo/scripts/backlog/task-view.ts +444 -0
  2421. package/dist/templates/monorepo/scripts/backlog/types.ts +256 -0
  2422. package/dist/templates/monorepo/scripts/backlog/watch.test.ts +360 -0
  2423. package/dist/templates/monorepo/scripts/backlog/watch.ts +333 -0
  2424. package/dist/templates/monorepo/scripts/backlog/worker-edit.test.ts +469 -0
  2425. package/dist/templates/monorepo/scripts/backlog/worker-edit.ts +464 -0
  2426. package/dist/templates/monorepo/scripts/business-rules/document.ts +2 -1
  2427. package/dist/templates/monorepo/scripts/business-rules/parse-catalog.ts +2 -1
  2428. package/dist/templates/monorepo/scripts/catalyst/regen-review.test.ts +313 -0
  2429. package/dist/templates/monorepo/scripts/catalyst/regen-review.ts +287 -0
  2430. package/dist/templates/monorepo/scripts/harness-rules/audit.ts +620 -0
  2431. package/dist/templates/monorepo/scripts/harness-rules/check.ts +37 -0
  2432. package/dist/templates/monorepo/scripts/harness-rules/generate-index.ts +215 -0
  2433. package/dist/templates/monorepo/scripts/harness-rules/lint-barrels.test.ts +872 -0
  2434. package/dist/templates/monorepo/scripts/harness-rules/lint-barrels.ts +1016 -0
  2435. package/dist/templates/monorepo/scripts/harness-rules/types.ts +62 -0
  2436. package/dist/templates/monorepo/scripts/harness-rules/validate-catalog.ts +121 -0
  2437. package/oclif.manifest.json +224 -224
  2438. package/package.json +14 -10
  2439. package/dist/generator/engine/code-writer/export-references.d.ts +0 -10
  2440. package/dist/generator/engine/code-writer/export-references.js +0 -69
  2441. package/dist/templates/backend/application/src/@aurora/services/bootstrap.service.ts +0 -20
  2442. package/dist/templates/backend/application/src/i18n/en/iam.json +0 -18
  2443. package/dist/templates/backend/application/src/i18n/es/iam.json +0 -18
  2444. package/dist/templates/backend/application/test/authentication-none-mode.e2e-spec.ts +0 -138
  2445. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/create/iam-create-accounts.handler.ts +0 -26
  2446. package/dist/templates/backend/packages/iam/src/@app/iam/account/infrastructure/sequelize/iam-sequelize-account.model.ts +0 -197
  2447. package/dist/templates/backend/packages/iam/src/@app/iam/account/infrastructure/sequelize/iam-sequelize-account.repository.ts +0 -71
  2448. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/infrastructure/sequelize/iam-sequelize-bounded-context.model.ts +0 -94
  2449. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/infrastructure/sequelize/iam-sequelize-bounded-context.repository.ts +0 -24
  2450. package/dist/templates/backend/packages/iam/src/@app/iam/permission/infrastructure/sequelize/iam-sequelize-permission.model.ts +0 -93
  2451. package/dist/templates/backend/packages/iam/src/@app/iam/permission/infrastructure/sequelize/iam-sequelize-permission.repository.ts +0 -61
  2452. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/infrastructure/sequelize/iam-sequelize-permission-role.model.ts +0 -48
  2453. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/infrastructure/sequelize/iam-sequelize-permission-role.repository.ts +0 -24
  2454. package/dist/templates/backend/packages/iam/src/@app/iam/role/infrastructure/sequelize/iam-sequelize-role.model.ts +0 -116
  2455. package/dist/templates/backend/packages/iam/src/@app/iam/role/infrastructure/sequelize/iam-sequelize-role.repository.ts +0 -68
  2456. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/infrastructure/sequelize/iam-sequelize-role-account.model.ts +0 -48
  2457. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/infrastructure/sequelize/iam-sequelize-role-account.repository.ts +0 -24
  2458. package/dist/templates/backend/packages/iam/src/@app/iam/tag/infrastructure/sequelize/iam-sequelize-tag.model.ts +0 -70
  2459. package/dist/templates/backend/packages/iam/src/@app/iam/tag/infrastructure/sequelize/iam-sequelize-tag.repository.ts +0 -21
  2460. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/infrastructure/sequelize/iam-sequelize-tenant.model.ts +0 -121
  2461. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/infrastructure/sequelize/iam-sequelize-tenant.repository.ts +0 -57
  2462. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/infrastructure/sequelize/iam-sequelize-tenant-account.model.ts +0 -48
  2463. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/infrastructure/sequelize/iam-sequelize-tenant-account.repository.ts +0 -24
  2464. package/dist/templates/backend/packages/iam/src/@app/iam/user/infrastructure/sequelize/iam-sequelize-user.model.ts +0 -144
  2465. package/dist/templates/backend/packages/iam/src/@app/iam/user/infrastructure/sequelize/iam-sequelize-user.repository.ts +0 -21
  2466. package/dist/templates/backend/packages/iam/src/@bridges/iam/index.ts +0 -3
  2467. package/dist/templates/backend/packages/iam/src/@bridges/iam/user/index.ts +0 -1
  2468. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/infrastructure/sequelize/o-auth-sequelize-access-token.model.ts +0 -118
  2469. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/infrastructure/sequelize/o-auth-sequelize-access-token.repository.ts +0 -24
  2470. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/infrastructure/sequelize/o-auth-sequelize-application.model.ts +0 -101
  2471. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/infrastructure/sequelize/o-auth-sequelize-application.repository.ts +0 -61
  2472. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/infrastructure/sequelize/o-auth-sequelize-application-client.model.ts +0 -48
  2473. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/infrastructure/sequelize/o-auth-sequelize-application-client.repository.ts +0 -24
  2474. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/infrastructure/sequelize/o-auth-sequelize-authorization-code.model.ts +0 -146
  2475. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/infrastructure/sequelize/o-auth-sequelize-authorization-code.repository.ts +0 -44
  2476. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/infrastructure/sequelize/o-auth-sequelize-client.model.ts +0 -146
  2477. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/infrastructure/sequelize/o-auth-sequelize-client.repository.ts +0 -57
  2478. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/infrastructure/sequelize/o-auth-sequelize-credential.model.ts +0 -139
  2479. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/infrastructure/sequelize/o-auth-sequelize-credential.repository.ts +0 -24
  2480. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/infrastructure/sequelize/o-auth-sequelize-refresh-token.model.ts +0 -98
  2481. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/infrastructure/sequelize/o-auth-sequelize-refresh-token.repository.ts +0 -24
  2482. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/infrastructure/sequelize/o-auth-sequelize-scope.model.ts +0 -84
  2483. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/infrastructure/sequelize/o-auth-sequelize-scope.repository.ts +0 -24
  2484. package/dist/templates/backend/packages/o-auth/src/@bridges/o-auth/client/index.ts +0 -1
  2485. package/dist/templates/codegen/backend/@app/__module_name__/infrastructure/sequelize/__bounded_context_name__-sequelize-__module_name__.model.ts.eta +0 -213
  2486. package/dist/templates/codegen/backend/@app/__module_name__/infrastructure/sequelize/__bounded_context_name__-sequelize-__module_name__.repository.ts.eta +0 -94
  2487. package/dist/templates/codegen/partials/declare-i18n-repository.eta +0 -3
  2488. package/dist/templates/codegen/partials/import-i18n-repository.eta +0 -3
  2489. package/dist/templates/frontend/application/libs/ui/icon/src/index.ts +0 -7
  2490. package/dist/templates/frontend/application/libs/ui/icon/src/lib/hlm-icon.token.ts +0 -20
  2491. package/dist/templates/frontend/application/libs/ui/icon/src/lib/hlm-icon.ts +0 -42
  2492. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/get-relation-includes.spec.ts +0 -141
  2493. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/get-relation-includes.ts +0 -47
  2494. package/dist/templates/frontend/application/src/@aurora/modules/graphql/parse-gql-fields.ts +0 -32
  2495. package/dist/templates/frontend/application/src/app/aurora.types.ts +0 -2671
  2496. package/dist/templates/frontend/application/src/app/domains/admin/bounded-contexts/dashboard/dashboard.routes.ts +0 -8
  2497. package/dist/templates/frontend/application/src/app/domains/admin/bounded-contexts/dashboard/features/dashboard.component.ts +0 -13
  2498. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/nav-projects.ts +0 -106
  2499. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/account/data-access/account.detail-config.ts +0 -13
  2500. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/account/data-access/account.graphql.ts +0 -291
  2501. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/account/data-access/account.list-config.ts +0 -12
  2502. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/account/data-access/account.resolvers.ts +0 -121
  2503. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/account/data-access/current-account.adapter.ts +0 -34
  2504. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/account/features/account-detail.component.ts +0 -165
  2505. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/account/features/account-form.component.ts +0 -915
  2506. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/account/features/account-list-actions-cell.component.ts +0 -85
  2507. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/account/features/account-list.component.ts +0 -260
  2508. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/account/index.ts +0 -8
  2509. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/bounded-context/data-access/bounded-context.detail-config.ts +0 -18
  2510. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/bounded-context/data-access/bounded-context.graphql.ts +0 -158
  2511. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/bounded-context/data-access/bounded-context.list-config.ts +0 -12
  2512. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/bounded-context/data-access/bounded-context.resolvers.ts +0 -36
  2513. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/bounded-context/features/bounded-context-detail.component.ts +0 -157
  2514. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/bounded-context/features/bounded-context-form.component.ts +0 -154
  2515. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/bounded-context/features/bounded-context-list-actions-cell.component.ts +0 -85
  2516. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/bounded-context/features/bounded-context-list.component.ts +0 -247
  2517. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/bounded-context/index.ts +0 -7
  2518. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/iam-icons.providers.ts +0 -23
  2519. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/iam.navigation.ts +0 -42
  2520. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/iam.routes.ts +0 -98
  2521. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission/data-access/permission.detail-config.ts +0 -13
  2522. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission/data-access/permission.graphql.ts +0 -163
  2523. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission/data-access/permission.list-config.ts +0 -12
  2524. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission/data-access/permission.resolvers.ts +0 -72
  2525. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission/features/permission-form-embed.component.ts +0 -99
  2526. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission/features/permission-form.component.ts +0 -141
  2527. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission/features/permission-list-actions-cell.component.ts +0 -85
  2528. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission/features/permission-list.component.ts +0 -404
  2529. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission/index.ts +0 -7
  2530. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission/permission.columns.ts +0 -56
  2531. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission-role/data-access/permission-role.detail-config.ts +0 -18
  2532. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission-role/data-access/permission-role.graphql.ts +0 -148
  2533. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission-role/data-access/permission-role.list-config.ts +0 -12
  2534. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission-role/data-access/permission-role.resolvers.ts +0 -40
  2535. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission-role/index.ts +0 -7
  2536. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission-role/permission-role.columns.ts +0 -38
  2537. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role/data-access/role.detail-config.ts +0 -13
  2538. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role/data-access/role.graphql.ts +0 -207
  2539. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role/data-access/role.list-config.ts +0 -12
  2540. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role/data-access/role.resolvers.ts +0 -68
  2541. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role/features/role-detail.component.ts +0 -312
  2542. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role/features/role-form.component.ts +0 -162
  2543. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role/features/role-list-actions-cell.component.ts +0 -85
  2544. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role/features/role-list.component.ts +0 -248
  2545. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role/index.ts +0 -7
  2546. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role/role.columns.ts +0 -85
  2547. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role-account/data-access/role-account.detail-config.ts +0 -13
  2548. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role-account/data-access/role-account.graphql.ts +0 -158
  2549. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role-account/data-access/role-account.list-config.ts +0 -12
  2550. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/shared/validators/unique-email.validator.ts +0 -31
  2551. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/shared/validators/unique-username.validator.ts +0 -29
  2552. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tag/data-access/tag.detail-config.ts +0 -13
  2553. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tag/data-access/tag.graphql.ts +0 -129
  2554. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tag/data-access/tag.list-config.ts +0 -14
  2555. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tag/data-access/tag.resolvers.ts +0 -36
  2556. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tag/features/tag-form.component.ts +0 -93
  2557. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tag/features/tag-list-actions-cell.component.ts +0 -85
  2558. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tag/features/tag-list.component.ts +0 -321
  2559. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tag/index.ts +0 -7
  2560. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant/data-access/tenant.detail-config.ts +0 -13
  2561. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant/data-access/tenant.graphql.ts +0 -203
  2562. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant/data-access/tenant.list-config.ts +0 -12
  2563. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant/data-access/tenant.resolvers.ts +0 -71
  2564. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant/features/tenant-form.component.ts +0 -169
  2565. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant/features/tenant-list-actions-cell.component.ts +0 -85
  2566. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant/features/tenant-list.component.ts +0 -333
  2567. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant/index.ts +0 -7
  2568. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant/tenant.columns.ts +0 -86
  2569. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant-account/data-access/tenant-account.detail-config.ts +0 -18
  2570. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant-account/data-access/tenant-account.graphql.ts +0 -158
  2571. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant-account/data-access/tenant-account.list-config.ts +0 -12
  2572. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant-account/data-access/tenant-account.resolvers.ts +0 -40
  2573. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant-account/index.ts +0 -7
  2574. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant-account/tenant-account.columns.ts +0 -38
  2575. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/user/data-access/user.detail-config.ts +0 -13
  2576. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/user/data-access/user.graphql.ts +0 -152
  2577. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/user/data-access/user.list-config.ts +0 -12
  2578. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/user/data-access/user.resolvers.ts +0 -36
  2579. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/user/features/user-detail.component.ts +0 -124
  2580. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/user/features/user-form.component.ts +0 -215
  2581. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/user/features/user-list-actions-cell.component.ts +0 -85
  2582. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/user/features/user-list.component.ts +0 -237
  2583. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/user/index.ts +0 -7
  2584. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/user/user.columns.ts +0 -124
  2585. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/access-token/access-token.columns.ts +0 -97
  2586. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/access-token/data-access/access-token.detail-config.ts +0 -13
  2587. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/access-token/data-access/access-token.graphql.ts +0 -155
  2588. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/access-token/data-access/access-token.list-config.ts +0 -12
  2589. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/access-token/data-access/access-token.resolvers.ts +0 -40
  2590. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/access-token/features/access-token-form.component.ts +0 -152
  2591. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/access-token/features/access-token-list-actions-cell.component.ts +0 -85
  2592. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/access-token/features/access-token-list.component.ts +0 -331
  2593. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/access-token/index.ts +0 -7
  2594. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/application/application.columns.ts +0 -73
  2595. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/application/data-access/application.detail-config.ts +0 -13
  2596. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/application/data-access/application.graphql.ts +0 -146
  2597. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/application/data-access/application.list-config.ts +0 -14
  2598. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/application/data-access/application.resolvers.ts +0 -36
  2599. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/application/features/application-form.component.ts +0 -160
  2600. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/application/features/application-list-actions-cell.component.ts +0 -85
  2601. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/application/features/application-list.component.ts +0 -326
  2602. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/application/index.ts +0 -7
  2603. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/application-client/data-access/application-client.graphql.ts +0 -155
  2604. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/authorization-code/authorization-code.columns.ts +0 -123
  2605. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/authorization-code/data-access/authorization-code.detail-config.ts +0 -18
  2606. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/authorization-code/data-access/authorization-code.graphql.ts +0 -146
  2607. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/authorization-code/data-access/authorization-code.list-config.ts +0 -19
  2608. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/authorization-code/data-access/authorization-code.resolvers.ts +0 -44
  2609. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/authorization-code/features/authorization-code-form.component.ts +0 -202
  2610. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/authorization-code/features/authorization-code-list-actions-cell.component.ts +0 -86
  2611. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/authorization-code/features/authorization-code-list.component.ts +0 -337
  2612. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/authorization-code/index.ts +0 -7
  2613. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/client/client.columns.ts +0 -140
  2614. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/client/data-access/client.detail-config.ts +0 -13
  2615. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/client/data-access/client.graphql.ts +0 -141
  2616. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/client/data-access/client.list-config.ts +0 -14
  2617. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/client/data-access/client.resolvers.ts +0 -97
  2618. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/client/features/client-form.component.ts +0 -358
  2619. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/client/features/client-list-actions-cell.component.ts +0 -85
  2620. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/client/features/client-list.component.ts +0 -359
  2621. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/client/index.ts +0 -7
  2622. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/o-auth-icons.providers.ts +0 -21
  2623. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/o-auth.navigation.ts +0 -52
  2624. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/refresh-token/data-access/refresh-token.detail-config.ts +0 -13
  2625. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/refresh-token/data-access/refresh-token.graphql.ts +0 -132
  2626. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/refresh-token/data-access/refresh-token.list-config.ts +0 -12
  2627. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/refresh-token/data-access/refresh-token.resolvers.ts +0 -36
  2628. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/refresh-token/features/refresh-token-form.component.ts +0 -131
  2629. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/refresh-token/features/refresh-token-list-actions-cell.component.ts +0 -85
  2630. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/refresh-token/features/refresh-token-list.component.ts +0 -330
  2631. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/refresh-token/index.ts +0 -7
  2632. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/refresh-token/refresh-token.columns.ts +0 -59
  2633. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/scope/data-access/scope.detail-config.ts +0 -13
  2634. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/scope/data-access/scope.graphql.ts +0 -131
  2635. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/scope/data-access/scope.list-config.ts +0 -14
  2636. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/scope/data-access/scope.resolvers.ts +0 -36
  2637. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/scope/features/scope-form.component.ts +0 -119
  2638. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/scope/features/scope-list-actions-cell.component.ts +0 -85
  2639. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/scope/features/scope-list.component.ts +0 -321
  2640. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/scope/index.ts +0 -7
  2641. package/dist/templates/monorepo/.claude/hooks/check-required-plugins.ts +0 -112
  2642. package/dist/templates/monorepo/.claude/hooks/inject-rules-context.ts +0 -267
  2643. package/dist/templates/monorepo/.vscode/settings.json +0 -10
  2644. /package/dist/templates/frontend/packages/iam/src/app/domains/admin/{bounded-contexts → apps}/iam/account/account.columns.ts +0 -0
  2645. /package/dist/templates/frontend/packages/iam/src/app/domains/admin/{bounded-contexts → apps}/iam/bounded-context/bounded-context.columns.ts +0 -0
  2646. /package/dist/templates/frontend/packages/iam/src/app/domains/admin/{bounded-contexts → apps}/iam/iam.types.ts +0 -0
  2647. /package/dist/templates/frontend/packages/iam/src/app/domains/admin/{bounded-contexts → apps}/iam/index.ts +0 -0
  2648. /package/dist/templates/frontend/packages/iam/src/app/domains/admin/{bounded-contexts → apps}/iam/shared/index.ts +0 -0
  2649. /package/dist/templates/frontend/packages/iam/src/app/domains/admin/{bounded-contexts → apps}/iam/tag/tag.columns.ts +0 -0
  2650. /package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/{bounded-contexts → apps}/o-auth/application-client/data-access/application-client.detail-config.ts +0 -0
  2651. /package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/{bounded-contexts → apps}/o-auth/application-client/data-access/application-client.list-config.ts +0 -0
  2652. /package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/{bounded-contexts → apps}/o-auth/index.ts +0 -0
  2653. /package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/{bounded-contexts → apps}/o-auth/o-auth.routes.ts +0 -0
  2654. /package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/{bounded-contexts → apps}/o-auth/o-auth.types.ts +0 -0
  2655. /package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/{bounded-contexts → apps}/o-auth/scope/scope.columns.ts +0 -0
@@ -0,0 +1,1601 @@
1
+ # `backlog` dispatcher
2
+
3
+ The reconciler that turns a `Queued` Backlog.md task into a running headless worker and, on
4
+ completion, into a merge-ready PR. It is triggered three ways (a `onStatusChange` callback, a
5
+ `launchd` timer, and — inside the maintenance pass — a `gh` poll for merged PRs), but every trigger
6
+ runs the exact same idempotent pass over observable state: sweep dead locks and orphan slots,
7
+ close out merged PRs, recompute every parent's derived status, pick the next `Queued` task by
8
+ priority then age, run it through six guards, verify the local model is loaded when the task needs
9
+ it, acquire a worktree slot, launch the right lane (`local`, a curated LM Studio executor, or
10
+ `frontier`, a headless Claude Code orchestrator), and close — board integrity, mechanical scope
11
+ check, format/barrels/test, the reviewer on the local lane, the AC/DoD check on both, then a PR —
12
+ or, on any failure, save the work before ever releasing the slot. See
13
+ `openspec/changes/add-backlog-task-dispatch/design.md` for the full rationale and decision log;
14
+ this file documents how the pieces fit together operationally.
15
+
16
+ ## Module table
17
+
18
+ | Module | Responsibility |
19
+ | --- | --- |
20
+ | `entry.ts` | Orchestration root: resolves `BACKLOG_CWD`, serializes concurrent invocations with a single-flight file lock, applies the anti-loop guard to a status-change trigger, selects the next `Queued` task, and wires maintenance → selection → guards → model readiness → slot acquisition → launch → close into one pass (`runOnce`, async). It also RELEASES the single-flight lock mid-pass — see "Process model" below |
21
+ | `maintenance.ts` | Runs first on every pass, and RETURNS the post-sweep slot registry the rest of the pass acts on, in a fixed order — step 0: retries a push a previous pass could not complete, refusing (never retrying) once the branch's PR reads confirmed `merged` rather than landing commits nobody will ever look at (defect 8, 2026-09-08 — the same push gate `close.ts`'s `checkBranchNotMerged` applies before the close's own pushes); step 1: sweeps locks with a dead PID or an expired heartbeat, killing a hung worker first, then saving its work before releasing anything — same confirmed-merged refusal as step 0 rather than pushing a dead worker's WIP onto an already-merged branch; step 2: releases slots with no live process; step 3: moves a task with a merged PR to `Done` (via `gh`, one poll per branch per pass) — skipping any task with an ALIVE lock, since a retry runs on the same branch and the PREVIOUS attempt's merged PR would otherwise declare the task `Done` mid-run, which the cancellation sweep then reads as "not cancelled" and leaves the worker running against a closed task — deleting the task's `task/<id>` branch (local, then remote) once it reaches `Done` this way, but ONLY when the branch is first confirmed to carry no commit unreachable from its base (`MaintenanceGit.branchHasUnmergedCommits`, compared against `guards.ts`'s `taskBaseBranch` — never a hand-rolled `main`, which would block every subtask) — a branch that fails that check is left ENTIRELY alone, reported in `MaintenanceResult.branchCleanupRefused` rather than `cleanedUpBranches`, so the fail-safe `unknown`-still-pushes decision in steps 0/1 below can never again turn a rescue push landed on an already-merged branch into commits destroyed outright (the remaining T-8 point 5 hole, closed 2026-09-08) — and even once that check passes, deletion still counts as done ONLY when the remote half is CONFIRMED gone (deleted this pass, or already absent) rather than merely attempted (defect 7, 2026-09-08); step 3b: reverts a hand-written `Done` back to `In Progress` when its branch exists but GitHub does not report its PR merged; step 3c: blocks an orphan `In Progress` task (no lock, no slot, no attempt directory, and an `updated_date` older than `lanes.json`'s `orphanInProgressThresholdHours`) — entirely OFF when that threshold is `0`, the operator's explicit way to disable this step, rather than the most aggressive setting a bare millisecond conversion used to make it (defect 12, 2026-09-08); step 4: kills a manually-cancelled task's WORKER after its work is saved — a cancellation being an EXPLICIT `Blocked`/`To Do`, or a task gone from a board that was read in FULL (`boardComplete`), never merely "not `In Progress`"; step 5: recomputes every parent's derived state, deleting the branch of any parent this step itself closes (same unmerged-commits check and confirmed-gone condition as step 3); step 6: commits any pending `.backlog/**` changes with a conventional message |
22
+ | `guards.ts` | `evaluateGuards(task, board, slots, limits, permissions, remoteBranches)` — the dispatch guards over the selected task, in fixed order (missing triage — **also, `tier:medium` + `lane:local` (`tier-lane-mismatch`; `tier:complex` + `lane:local` is guard 2's own `complex-on-local`, unchanged), on `lane:local` no declared `Files to touch:`, and on EITHER lane no declared `Test command:`, or one the allowlist refuses** — then **guard 1c, on BOTH lanes: a task whose declared `Files to touch:` reach the HARD path list (`slot-executed-path`; T-31 — evaluated immediately after guard 1, because a task declaring a file that can never be admitted has nothing a later guard could make actionable), which does NOT fire on a soft-list declaration** — then **guard 1b, on BOTH lanes: a loaded settings allow rule with no safe deny** — Complex on local, unmet dependency, security path on local, **guard 4b: a subtask's parent branch missing from the remote (`missing-parent-branch`; T-14, 2026-09-08 — see `resolveTaskBase` below — placed AFTER security so that refusal is never masked by an actionable-looking "push a branch" message)**, attempts exhausted, no free slot), returning `launch` / `wait` (stays `Queued`, as `dependency-not-done`, `no-free-slot` or `push-pending`) / `block` (moves to `Blocked` with a Spanish cause). `limits`, `permissions` and `remoteBranches` are all REQUIRED (no defaults, T-14 fix round) — a caller that drops `remoteBranches` used to silently block every subtask on the board with a false cause, undetected by the suite because no test fixture had ever exercised a subtask through `evaluateGuards`. The two caps arrive as `limits`, derived from `lanes.json` by `launch.ts`'s `dispatchLimitsFrom` rather than from a module constant; `permissions` (the loaded settings allow list and the whole surface the launch would grant) is composed by `entry.ts`, so this module keeps taking no filesystem access. The board it reads is the one re-read AFTER the maintenance sweep, so a dependency this very pass moved to `Done` unblocks its dependent immediately. Also owns `resolveTestCommand`, the single allowlist for a declared `Test command:` line — read by guard 1 here, by `launch.ts` for the per-task Bash grant, and by `close.ts` for the triad — `grantCovers`/`denyWouldRevoke`/`findPermissionConflict`, the permission-rule comparison guard 1b decides with and `launch.ts` composes its deny list from, in that dependency direction — two predicates because the two directions are different questions: coverage ("already granted, skip it") is stricter than the real matcher, revocation ("would a deny for this kill that grant?") is exactly as coarse as it — and `taskBaseBranch`/`resolveTaskBase`, the ONE place a task's base branch is named (`task/<parentId>`, or `main`) and, for `resolveTaskBase`, checked against the remote: guard 4b blocks on it, `slots.ts`'s `resolveBranch` consults it (and throws rather than falling back if it is ever violated post-guard), and `close.ts`'s `resolveBaseBranch`/`resolveBaseRef` consult the naming half — T-4.1 measured what two independent answers to "what is this task's base?" costs (a whole frontier worker run, blocked on `scope-check-failed` after finishing correctly) |
23
+ | `slots.ts` | Acquires and releases one of the three reusable worktrees, provisions one on demand (`git worktree add --detach origin/main` → `scripts/worktree-link.sh` → `pnpm install`), the dispatch-lock lifecycle (PID + heartbeat — `writeLock`, `releaseLock` and `refreshHeartbeat` all run under the SAME per-task exclusive lock, since a mutex only one participant enters is not a mutex), the lockfile-hash install check, branch resolution (reuse the existing `task/T-nn` branch on retry, otherwise `guards.ts`'s `resolveTaskBase` names the base — `origin/task/<parent>` for a subtask, `origin/main` otherwise — and `resolveBranch` THROWS if that base is missing from the remote, rather than the silent `origin/main` substitution it used to make: T-14, 2026-09-08 — see `guards.ts`'s guard 4b, which now refuses that dispatch before a slot is ever taken, making the case a programming error here rather than a fallback to route around), `slotPathForTask` (the directory holding a task's work, or `null`), `releaseSlotAndDetach` — the ONE release procedure every path uses — `releaseHeldSlotEntries` (the MANUAL rescue behind `--release-slot`, the only release that clears `heldForRecovery`), and `updateSlots`/`createRegistryLock`, the ONE mutation primitive every `slots.json` write goes through |
24
+ | `launch.ts` | Per-lane launch preparation: lane/model resolution from task labels, the exact `claude` command for each lane (the lane settings' `permissions.allow`/`deny` become `--allowedTools`/`--disallowedTools`, merged on both lanes with `backlogRulesForTask`'s ONE rule — the dispatcher-owned `worker-edit.ts` wrapper bound to that task id, which both reads (`--view`) and writes — plus `testCommandRuleForTask`'s rule for the task's own declared test, with an argument containing whitespace re-quoted so the granted string is the one the close spawns), `settingsSourcePaths` + `loadSettingsAllowRules` (each loaded rule tagged with the source file it came from, since a path glob is relative to that file) + `settingsAllowRulesToDeny` + `composeGrantedAllow` (the one composition of the whole granted surface — lane list plus the per-task grants — that guard 1b compares and `buildLaunch` writes into `--allowedTools`) (BOTH lanes load a settings source on purpose and name it — `--setting-sources user` locally, `user,project` on the frontier lane, never the click-approval overlay, with `LANE_SETTING_SOURCES` the one list the flag value and the loaded files both derive from — so every allow rule those sources contribute and the lane does not grant is emitted as a deny; coverage-aware through `guards.ts`'s `findPermissionConflict`, whose no-safe-deny verdict guard 1b already turned into a block before this ran — the throw here is the invariant behind that guard), `assertLaneGrantsFileAccess` (refuses to launch unless the merged allow list actually grants a read AND a write rule — a lane holding only `Bash` rules is not a restricted worker, it is a worker that cannot open a file), `dispatchLimitsFrom` (the `maxParallel`/`attempts` caps the guards and the slot acquisition read), `sanitizeInheritedEnv` (drops every inherited `ANTHROPIC_*`/`CLAUDE_CODE_*` key and every other credential-shaped one — `isCredentialEnvKey`), the async line-streamed `spawnWorker` (detached, reporting the child pid through `onSpawn`), `killProcessTree`, and the LM Studio `/api/v0/models` readiness check before a local-lane launch |
25
+ | `close.ts` | The dispatch close: `checkBoardIntegrity` (the board still says `In Progress`, and the acceptance/DoD texts, the title, the parent, the declared files and the declared test command still read as they did at launch), `checkScope` (the mirror-output prefix first — refused on both lanes regardless of the two lists — then `guards.ts`'s hard list `SLOT_EXECUTED_PATHS`/`SLOT_EXECUTED_BASENAMES` (on local, `LOCAL_FORBIDDEN_PATHS` — the hard list plus three local-only path extras — and the security paths as well), then, once nothing violated, the soft list `HUMAN_REVIEW_PATHS` — admitted and reported in `humanReviewFiles`, never a violation; see "Forbidden paths, split by mechanism" below) and `runScopeCheck`/`collectChangedFiles` over the slot's real changes (plus `collectLeftoverFiles`, the same read CLASSIFIED the same way and with no verdict attached — refused paths and soft-list paths in separate buckets — for the failure paths that never run the scope check: a session-level failure and a `board-check` divert), `resolveBaseBranch` (the PR's `--base`, delegating to `guards.ts`'s `taskBaseBranch` — the SAME naming `slots.ts`'s branch resolution consults, since T-4.1 measured the two disagreeing when each computed its own answer) and `resolveBaseRef` (the `origin/…` ref the work is diffed against and branched from), `planMechanicalChecks` (Prettier `--write` then `--check` per workspace → barrels lint → the task's declared test — validated by `guards.ts`'s `resolveTestCommand`, which this module READS rather than owns — all scoped to the attempt's own changed files), `evaluateAcceptanceGate` (the pre-PR gate), `buildWipCommitMessage`/`buildAttemptCommitMessage`/`buildPrTitle`, `formatBlockComment`/`sanitizeCommentBody`, `buildPrCreateArgs`/`buildPrLabelArgs`/`buildPrReviewerArgs`/`buildPrBodyArgs` (the human-review mark), `collectAttemptDiff`, `planClose` (a pure planner over the ordered steps), and `executeClose` (walks the plan through injected runners, always saving work before releasing a slot on any failure) |
26
+ | `parent.ts` | `deriveParentStatus(children, ownPrMerged, tier?, closeAttempted?)` — the parent-state precedence table (any child `Blocked` wins; any child `Queued`/`In Progress`, or a `Done`+`To Do` mix, means `In Progress`; all children `Done` plus the parent's own PR merged means `Done`; all children `Done`, the PR NOT merged, `tier:complex` and never yet attempted means `Queued` — the ONE automated close attempt, T-8; the same shape once already attempted (`closeAttempted`) returns `null` — defers to whoever owns it now, a live retry or a human's `Blocked` review, rather than re-deriving on top of it; all children `Done`, the PR not merged, any OTHER tier means `In Progress` (pre-T-8 behavior); all `To Do` means `To Do`), applied recursively to grandchildren through the exported `effectiveStatus` (a node with `children` recomputes itself from THEM rather than trusting its own possibly-stale literal `status` — also how `dispatch.ts`'s `isParentCloseAttempt` asks the same question for one node without re-deriving); `tier`/`closeAttempted` are optional and default to "not Complex" / "never attempted", the exact pre-T-8 behavior, for a caller that predates it. Parent state is NEVER written by hand — `maintenance.ts`'s `recomputeParent` is the only writer, and it additionally gates the all-Done branch on the parent's OWN branch `mergedState` (never a caller-supplied `ownPrMerged` alone) so a `gh` outage derives nothing rather than misreading an unanswerable question as "not merged" (F1) |
27
+ | `render.ts` | Maps one `stream-json` event to a human-readable log line (`renderEvent`) and replays a whole recorded session (`renderStream`); shared by the close's `run.log` writer and `watch.ts`'s live tail |
28
+ | `watch.ts` | `pnpm backlog:watch <id>` tails that attempt's rendered `run.log`; with no id, lists busy slots from `slots.json`. Stops on its own once the task's lock file disappears — the close removes it as its very last step, so "the lock is gone" means "there is nothing left to tail" — flushing whatever `run.log` holds at that final tick before exiting, rather than polling forever (T-8 point 1: two watchers were measured six hours orphaned under the old bare-`setInterval` version). A missing `run.log` (a dispatch that aborted before the worker ever streamed a line) reads as "no growth yet", not as a reason to skip checking the lock, so that case still stops too (T-8 defect 9, 2026-09-08). Read-only — never writes board state, a lock, or a slot |
29
+ | `notify.ts` | Fires a macOS notification (`osascript`) on `Blocked` and on PR-opened; a no-op on any non-`darwin` platform so unit tests and non-Mac runs never fail on a missing `osascript` binary |
30
+ | `attempt.ts` | The per-attempt record under `.backlog/.dispatch/<TASK_ID>/intento-<N>/`: `countAttempts` (what `lanes.json`'s `attempts` cap counts), `createAttemptDir` (opened BEFORE the worker starts, so `backlog:watch` can tail it live) and `createAttemptSink` (appends `stream.jsonl` line by line, renders `run.log` on `finish`, and refreshes the lock heartbeat on a 30 s TIMER until `stopHeartbeat` — which the close calls at its very end, not when the worker exits) |
31
+ | `reviewer.ts` | The local lane's close reviewer: the isolated, read-only `claude` argv (`--setting-sources user --strict-mcp-config --disable-slash-commands`, no write tool — deliberately NOT `--bare`, see below) and `reviewerEnv` (drops every `ANTHROPIC_*` key, so the account's claude.ai login authenticates), the dual-verdict prompt (defects, conformity per acceptance criterion, and "would this test fail if its logic broke?") with the diff fenced as untrusted data, and the `REVIEW COMPLETE` + `VERDICT: pass|fail` parse. Fails closed — no verdict blocks the task |
32
+ | `task-view.ts` | The single parser for the `backlog` CLI's plain output, with every reader bounded to the region that can legitimately answer for it. Section readers see the DECLARATION REGION — everything above the first `Implementation Plan:`/`Implementation Notes:`/`Notes:`/`Comments:` heading (heading meaning label line PLUS its dashed underline, so a description with a `Notes:` line of its own does not truncate the contract), since those are the sections a worker's own `--plan`/`--append-notes` writes into and a first-match parser read a heading it forged there as if the CLI had rendered it. Header readers (`Status:`, `Priority:`, `Created:`, `Labels:`, `Parent:`, the title heading) see the HEADER REGION — everything above the first rendered section — because those fields exist nowhere else, and a `Parent:` forged in the notes was the first match on a top-level task and rerouted the PR's base branch: `parseBoardTaskIds` (one id per `task list` row, never an id merely mentioned in a title), the `Task` shape (its `tier`/`lane`/`path` resolved against the real label values, so a typo reads as no triage rather than as a lane nothing matches), the `Files to touch:` and `Test command:` description conventions, the acceptance/DoD TEXTS snapshotted at launch for the close's integrity gate, and the AC/DoD checklists with their checked state and CLI index |
33
+ | `worker-edit.ts` | The ONLY board channel a dispatched worker is granted, read included: `validateWorkerEditArgs` reads the whole argv (exactly the dispatched id, then `--check-ac`/`--notes`/`--append-notes`/`--plan`, each at most once, no value that is itself a flag — or `--view` alone) and forwards to `backlog task edit`, or to `backlog task view … --plain`, in the main checkout — which it requires `BACKLOG_CWD` to name, since `execFileSync` with no `cwd` would run in the SLOT, whose `.backlog/` copy holds no tasks; anything else exits 2 explaining the refusal. It exists because a permission rule matches a PREFIX and cannot narrow what follows it — the four per-flag grants it replaced all admitted a trailing `--status Done`, and the separate `Bash(backlog task view <id>:*)` read grant admitted any longer command line beginning with those words. Its SECOND mode, `--subtask` (mutually exclusive with the four edit flags and `--view`), is the headless way a Complex task's SDD design phase creates the subtasks a split produces — `--title`/`--labels` required, plus exactly one of `--desc` or `--desc-file <path>` (mutually exclusive; the file variant reads UTF-8 text from a path that must stay relative and inside the worker's own cwd — no leading `/`/`~`, no `..` segment — the robust way to pass multi-line text without the `$'…\n…'` ANSI-C quoting a Bash permission rule reads as a `$` expansion and denies, T-6 measured, four attempts out of five), `--labels` validated against the SAME `tier:`/`lane:`/`path:`/`bc:` taxonomy (`tier:complex` forcing `lane:frontier`, and — T-6 — `lane:local` forcing `tier:minor`, the same restriction `guards.ts`'s own guard 1 now enforces on the board), the resolved description validated against `resolveTestCommand` and, on `lane:local`, `parseFilesToTouch` — and never accepts `--parent`: the parent is `BACKLOG_TASK_ID` itself. Forwards to `backlog task create <title> -p <parentId> --desc … -l … [--ac …]... [--priority …] [--type …] [--depends-on …]` |
34
+ | `dispatch.ts` | The executable entry point every trigger invokes: wires the REAL collaborators (real `fs` under `.backlog/.dispatch/`, real `git`/`gh`/`backlog` shell-outs, a real `claude` spawn) and calls `entry.ts`'s `runOnce`. It also owns the one flag the script takes — `releaseSlotByName`, the `--release-slot` rescue, which runs its read→decide→detach under the SAME single-flight lock a reconciler pass holds for its selection (a rescue that interleaved with a pass could detach the very worktree that pass had just acquired) and REFUSES (exit 2) both a pass already running and a slot whose task lock is still alive, unless the slot is `heldForRecovery` or `--force` is passed |
35
+
36
+ `types.ts` holds the shared shapes (task labels, `slots.json`, `locks/<TASK_ID>.json`) every other
37
+ module imports from, so the on-disk contract has one source of truth; `prompt.ts` assembles the
38
+ local-lane executor's five-block user prompt and, with `buildFrontierAddendum`, renders the frontier
39
+ lane's per-attempt system-prompt addendum from its skill-file template (see
40
+ `.claude/skills/catalyst-backlog/SKILL.md` for the worker-facing side of that contract).
41
+
42
+ ## On-disk data layout
43
+
44
+ Everything the dispatcher writes at runtime lives under `.backlog/.dispatch/`, which is
45
+ gitignored (unlike `.backlog/` itself, which IS tracked — see "Where board state lives" below):
46
+
47
+ ```
48
+ .backlog/.dispatch/
49
+ <TASK_ID>.log # nohup redirect of every reconciler run this task's status
50
+ # transitions started — APPENDED to, so a re-queue after Blocked
51
+ # does not erase the run that blocked it
52
+ launchd.log # StandardOutPath/StandardErrorPath of the launchd timer — the
53
+ # LAUNCHER's own output (a failing `mkdir` or `nohup`), nothing else
54
+ reconciler.log # nohup redirect of the reconciler the launchd timer detached. Its
55
+ # own file on purpose: a pass runs for tens of minutes, and
56
+ # interleaving it with the launcher's lines made neither readable
57
+ slots.json # [{ name, path, lane, taskId|null, pid|null, lockfileHash, heldForRecovery? }]
58
+ slots.lock # exclusive lock guarding every slots.json write (see below)
59
+ locks/<TASK_ID>.json # { taskId, slot, pid, workerPid, startedAt, heartbeatAt, lane, attempt, branch }
60
+ <TASK_ID>/intento-<N>/
61
+ stream.jsonl # raw stream-json, appended line by line while the worker runs
62
+ run.log # human-rendered, written ONCE when the worker exits (this is
63
+ # what `pnpm backlog:watch` tails)
64
+ test.log # transcript of the close's mechanical checks, one block per check
65
+ review.md # the close reviewer's findings (local lane); read back on a retry
66
+ meta.json # NOT YET WRITTEN — design.md reserves it for sessionId, lane,
67
+ # model, branch, startedAt, endedAt, exitReason
68
+ ```
69
+
70
+ A lock is dead when `process.kill(pid, 0)` throws (no such process) or when `heartbeatAt` is older
71
+ than the TTL (10 minutes, `dispatch.ts`'s `ttlMs: 10 * 60_000`) even with a live PID. `attempt.ts`
72
+ refreshes `heartbeatAt` every 30 s on a TIMER — deliberately not from the stream events, which would
73
+ make "alive" mean "emitting output" and sweep a worker that is merely thinking, waiting on a long
74
+ test run, or streaming one very large event.
75
+
76
+ **The heartbeat covers the CLOSE too, not just the worker.** `sink.finish()` renders `run.log` and
77
+ stops reading; `sink.stopHeartbeat()` is called at the very end of the close, once the slot has been
78
+ released or held. That split is load-bearing: the close's own steps (the scoped test run, the
79
+ reviewer subprocess, `git push` + `gh pr create`) routinely take longer than the 10-minute TTL, and
80
+ the single-flight lock was already dropped when the slot was taken — so a heartbeat frozen at the
81
+ worker's exit made the next pass read a live close as a dead worker, kill it, and release its slot
82
+ mid-PR. The reviewer subprocess is separately bounded by `lanes.json`'s `reviewerTimeoutMinutes`
83
+ (default 15), because a reviewer that never returns would otherwise hold a slot forever.
84
+
85
+ `slots.json` is written through ONE primitive, `slots.ts`'s `updateSlots(store, mutate)`: it takes an
86
+ exclusive lock (`.backlog/.dispatch/slots.lock`, broken when older than 30 s), RE-READS the file, and
87
+ applies the caller's transform to what it finds there. Nothing writes a whole registry built on an
88
+ older snapshot. Two passes legitimately run at once — the single-flight lock is released as soon as a
89
+ slot is taken — so a snapshot-based write silently reverted the other pass's acquisition, its
90
+ release, or its `heldForRecovery` flag, and losing that last one means losing the only marker saying
91
+ a slot still holds unpushed work. Every writer (the maintenance sweep, the acquisition write-back,
92
+ `releaseSlot`, `blockKeepSlot`) mutates only the fields it owns.
93
+
94
+ The lock carries TWO pids and they are not interchangeable: `pid` is the RECONCILER (what the
95
+ liveness probe checks), `workerPid` is the spawned `claude` process (what a cancellation kills, as a
96
+ whole process group — the worker spawns hooks, `pnpm` and sub-agents of its own).
97
+
98
+ `locks/<TASK_ID>.json` has its own exclusive lock (`locks/<TASK_ID>.json.lock`, the same
99
+ `createRegistryLock` primitive `slots.json` uses), and **every** mutation of the file goes through
100
+ it: the launch write, the heartbeat refresh, and the sweep's removal. A one-sided mutex is not a
101
+ mutex — moving the heartbeat's READ inside a critical section that nothing else entered only excluded
102
+ a second heartbeat, and a `releaseLock` taking no lock still landed between that read and its write,
103
+ after which the write resurrected a lock for a slot already handed to another task.
104
+
105
+ `slots.json` is the allocation mutex (which of the three worktrees — named `dispatch-a`,
106
+ `dispatch-b`, `dispatch-c` — is occupied, by which task, for which lane); `locks/<TASK_ID>.json` is
107
+ the liveness detail for whoever currently holds that task. A slot flagged `heldForRecovery` is
108
+ neither free nor reassignable: its work never reached the remote, so it holds the only copy (see
109
+ "Failure path" below). `slots.ts` owns the pure operations on both shapes (acquire, release,
110
+ provision, lock lifecycle, heartbeat); `dispatch.ts` owns the only real reads and writes of the two
111
+ files.
112
+
113
+ **The worktree slots are created on demand.** There is no bootstrap step: the first time a task
114
+ acquires `dispatch-a`, the dispatcher runs `git worktree add .claude/worktrees/dispatch-a --detach
115
+ origin/main`, then `bash scripts/worktree-link.sh` from inside it (linking the gitignored
116
+ `backend/.keys` and `backend/.env` a worktree does not inherit), then `pnpm install`. That first
117
+ acquisition therefore costs a full install — minutes, not seconds. Every later acquisition reuses the
118
+ worktree and skips the install unless `pnpm-lock.yaml` moved (`slots.json`'s `lockfileHash`).
119
+
120
+ `run.log` is written by `attempt.ts`'s sink — but only ONCE, inside `finish()`, as a single
121
+ `writeFileSync` of the WHOLE session rendered through `render.ts` at that point; `appendStreamLine`
122
+ is what grows the raw `stream.jsonl` line by line while the worker runs, not `run.log`. `finish()`
123
+ itself runs as soon as the worker process exits, before the close's own steps (the scope check, the
124
+ scoped test, the reviewer, the PR) — so `run.log` appears in full moments after the worker is done,
125
+ not incrementally while it works, and not only once the whole close has finished either. `review.md`
126
+ is written by the close's reviewer step, on every branch including a crashed reviewer, because a
127
+ retry's prompt reads it back.
128
+
129
+ `.backlog/.dispatch/` is created by the `onStatusChange` callback itself (it is prefixed with
130
+ `mkdir -p .backlog/.dispatch;` — see "Trigger wiring"), and by `dispatch.ts` on every run. Nothing
131
+ has to be created by hand in a fresh clone.
132
+
133
+ ## Process model
134
+
135
+ One reconciler process handles at most one dispatch, but it does NOT hold the single-flight lock
136
+ for the worker's lifetime. The sequence is:
137
+
138
+ 1. Acquire the single-flight lock (`.backlog/.dispatch/dispatch.lock`, PID-based) and run the whole
139
+ maintenance → selection → guards → readiness → slot acquisition sequence under it.
140
+ 2. Once the slot is taken, the lock file is written and the task is `In Progress`, **release the
141
+ single-flight lock**. The per-task lock is what keeps a second pass off THIS task; the
142
+ single-flight lock only serializes selection.
143
+ 3. Spawn the worker asynchronously (`launch.ts`'s `spawnWorker`), in its OWN process group and with
144
+ a sanitized environment: every `ANTHROPIC_*` and `CLAUDE_CODE_*` key this process inherited is
145
+ dropped before the lane's own `env` is layered on, so a worker can never fall back to the
146
+ account's credentials — and so is every OTHER credential-shaped key (`isCredentialEnvKey`:
147
+ `GH_`/`GITHUB_`/`NPM_`/`NODE_AUTH_`/`SOPS_`/`AWS_`/`AZURE_`/`GOOGLE_`/`OPENAI_` by prefix, plus
148
+ anything ending in `TOKEN`, `SECRET`, `PASSWORD`, `API_KEY` or `PRIVATE_KEY`). The reconciler runs
149
+ from a developer's session or from launchd, so its env is whatever that shell exports; a worker
150
+ holding `GITHUB_TOKEN` pushes and opens PRs through the API with no `gh` binary involved, past
151
+ every deny rule the lane spent its effort on. Its pid is written to the lock as `workerPid` the moment it exists. Its
152
+ stdout streams line by line into `stream.jsonl`, and a 30 s timer refreshes `heartbeatAt`.
153
+ 4. When the worker exits, render `run.log`, classify the stream and run the close. The heartbeat
154
+ keeps beating through all of it, and only stops once the slot has been released or held.
155
+
156
+ Before step 4 does anything, the pass **re-reads its own per-task lock**. The single-flight lock is
157
+ long gone by then, so a maintenance sweep in another pass may legitimately have declared this worker
158
+ dead (a heartbeat that fell behind is enough), saved its work, released its slot and handed that
159
+ worktree to the next task. Closing on top of that opens a PR off someone else's branch, re-statuses
160
+ a task a person already moved, and releases a slot holding live work. A lock that is gone, or that
161
+ names another pid, skips the close entirely: the sweep already saved and blocked.
162
+
163
+ The dispatcher process therefore stays alive for the worker's whole run — which is fine, because
164
+ BOTH triggers detach it with `nohup` and return: the `onStatusChange` callback, and the launchd
165
+ launcher (which must, or launchd would refuse to fire its own timer again while this pass lived —
166
+ see "Installing the launchd recovery timer"). Holding the single-flight lock across that run instead
167
+ would make the frontier cap of 2 unreachable, stall the close's `drain`, prevent the maintenance
168
+ pass from cancelling a running worker, and leave a 10-minute-TTL lock stale while its worker is
169
+ demonstrably alive.
170
+
171
+ Everything from taking the slot to the worker exiting runs inside one try/catch. A failing
172
+ `pnpm install`, a `git checkout` against a ref that vanished, a hook subprocess that dies while the
173
+ prompt is assembled — any of them used to escape the pass with the slot taken, the lock written and
174
+ the task sitting in `In Progress`, recoverable only by the next sweep ten TTL minutes later. Now the
175
+ slot goes back to the pool, the lock is removed, and the task moves to `Blocked` carrying the error.
176
+
177
+ A close that ends in `drain` sets a flag; `dispatch.ts` then re-acquires the single-flight lock and
178
+ runs ONE more pass for the next `Queued` task. Two passes per invocation is the cap — a trigger can
179
+ never loop the whole queue in one process.
180
+
181
+ ## Lane profiles (`lanes.json`)
182
+
183
+ `scripts/backlog/lanes.json` holds only what Claude Code itself cannot already express (slot
184
+ pool, `maxParallel`, `attempts`, `effort`, the direct/sdd model split, the LM Studio health-check
185
+ URL, and the close reviewer's model and timeout).
186
+
187
+ `lanes.frontier.maxBudgetUsd` is OPTIONAL — set a number when the machine authenticates with an
188
+ API key and you want a hard dollar stop; omit it on a subscription login, where the estimate is not
189
+ billed and the cap only truncates work; `maxTurns` and `timeoutMinutes` are the guards that always
190
+ apply. `loadLaneConfig` still validates a DECLARED value — non-numeric or zero throws, same as
191
+ every other field — it is absence, not presence, that is unchecked.
192
+
193
+ `harnessReviewer` (top-level, T-31) is OPTIONAL too — the human-review mark's reviewer handle (see
194
+ "Forbidden paths, split by mechanism" below). It ships UNSET: `gh pr create --reviewer <self>` (and
195
+ the equivalent `pr edit`) fails when the reviewer is the pull request's own author, and the
196
+ dispatcher opens every PR as the same account. Set it to a second account's handle to actually get a
197
+ reviewer assigned; the absence is recorded once on a marked PR rather than treated as an error. A
198
+ DECLARED value is validated for its SHAPE, not merely for being a string: a GitHub login (1-39
199
+ characters, alphanumerics and single interior hyphens) or an `org/team-slug`. The value becomes an
200
+ argv TOKEN in `gh pr edit … --add-reviewer <value>`, and `gh` reads a token starting with `-` as a
201
+ FLAG — the same reason `resolveTestCommand` anchors its `--filter`/`--dir` values on a non-dash first
202
+ character.
203
+
204
+ `maxParallel` (per lane) and `attempts` (global) are the dispatcher's two caps, and they are LIVE:
205
+ `launch.ts`'s `dispatchLimitsFrom` turns the loaded config into the object guard 5, guard 6 and
206
+ `acquireSlot` all read. Editing either number in this file changes what the dispatcher does on the
207
+ next pass. There is no `bare` field: the local lane is always `--bare` and the frontier lane never
208
+ is — that is a property of what each lane IS, not a knob, and a knob that could not be turned only
209
+ told its reader a lie.
210
+ Everything Claude Code DOES already understand — `model`, `env`, `permissions` — lives in a
211
+ standard settings file per lane (`scripts/backlog/lanes/local.settings.json`,
212
+ `scripts/backlog/lanes/frontier.settings.json`), which `launch.ts` READS and translates into the
213
+ launch itself — `model` becomes `--model`, `permissions.allow`/`deny` become
214
+ `--allowedTools`/`--disallowedTools`, and `env` is injected into the spawn environment. The files
215
+ keep Claude Code's own settings shape so they stay readable and reusable, but they are NOT passed
216
+ with `--settings`: Phase 1 spike 1.1 measured spawn-env as the injection mechanism that actually
217
+ takes effect, with `--settings` kept only as a validated fallback. This split means
218
+ **changing the local model is editing one field**: swap `local.settings.json`'s `model` (and the
219
+ matching `ANTHROPIC_*` env values) to point at a different LM Studio model id, nothing in
220
+ `lanes.json` or any `.ts` module needs to change — the readiness check reads the model id from
221
+ `local.settings.json` too, so there is exactly one place to edit. Using Sonnet locally instead of an LM Studio
222
+ model is deleting `local.settings.json`'s `env` block entirely.
223
+
224
+ `local.settings.json` sets every `ANTHROPIC_DEFAULT_{SONNET,OPUS,HAIKU}_MODEL` to the SAME LM
225
+ Studio model id — the local lane only ever runs `tier:minor`, so there is no direct/sdd split to
226
+ alias differently, but a sub-agent spawned inside the local worker that happens to ask for "opus"
227
+ must still resolve to the one model actually loaded. `frontier.settings.json` carries `env: {}` —
228
+ the cost knob, empty because the lane runs on the account — plus the lane's whole explicit `allow`
229
+ list and its `deny` list; it declares no `model`, because `launch.ts`
230
+ resolves that from the task's `path:` label (`path:direct` → Sonnet, `path:sdd` → Opus, matching
231
+ `catalyst-delegation`'s model table) and passes it as `--model`, which would always beat a value in
232
+ the file.
233
+
234
+ **`--bare` does NOT stop settings loading, so the local lane names its source too.** Measured
235
+ (T-5, 2026-09-07): `claude --help` lists what `--bare` skips — hooks, LSP, plugin sync, attribution,
236
+ auto-memory, background prefetches, keychain reads, `CLAUDE.md` auto-discovery — and settings files
237
+ are not on that list. The launch used to pass `--bare` and no `--setting-sources` at all, on the
238
+ reading that the flag covered it; what it actually got was the DEFAULT set, so the USER file, the
239
+ PROJECT file and `.claude/settings.local.json` all loaded into the executor. The consequence is in
240
+ that attempt's `stream.jsonl`: the worker ran `python3 -c` (writing a file in the MAIN checkout,
241
+ outside its slot, and reverting it by hand afterwards), `npx prettier` and `pnpm exec prettier`
242
+ through `Bash` — this machine's overlay carries `Bash(python3 -c *)`, `Bash(git *)`, `Bash(pnpm *)`
243
+ and ~60 more click-approvals, and the lane grants no such rule anywhere. The launch now passes
244
+ `--setting-sources user`, the narrowest value the flag accepts (an empty one is not in the grammar —
245
+ the same value the close's reviewer passes), and composes its deny list from that one loaded source
246
+ exactly as the frontier lane does: `loadSettingsAllowRules` over the USER file, then
247
+ `settingsAllowRulesToDeny` against the whole granted surface, with guard 1b deciding the overlaps
248
+ that have no safe answer. `--bare` and `--strict-mcp-config` stay: the prefill cost and the MCP
249
+ servers are what they are for. The flag does not cost the lane its credential — measured in the same
250
+ probe below, a `--bare --setting-sources user` run authenticated against LM Studio through the lane's
251
+ own `ANTHROPIC_BASE_URL`/`ANTHROPIC_AUTH_TOKEN` and completed normally.
252
+
253
+ Two things follow, and both are load-bearing. **The `--setting-sources` value and the subtraction
254
+ come from one list**, `launch.ts`'s `LANE_SETTING_SOURCES` (`local: user`, `frontier: user,project`):
255
+ `settingSourcesFlag` joins it into the flag, `settingsSourcePaths` turns it into the files, so the
256
+ flag and the deny list cannot describe different sets. And **guard 1b now runs on BOTH lanes** — it
257
+ was frontier-only precisely because of the `--bare` misreading above.
258
+
259
+ **A read-only `Bash` command needs no allow rule at all.** Measured with the free local model, from
260
+ a temp git repo, `--bare --strict-mcp-config --setting-sources user --permission-mode dontAsk
261
+ --allowedTools 'Read'`: a bare `ls` through `Bash` was ALLOWED, with `permission_denials: []`, while
262
+ a compound `ls -la; cat a.txt; echo …` was DENIED in the same conditions. So Claude Code auto-approves
263
+ a Bash command it can statically read as read-only, whatever the allow list says — which is where the
264
+ T-5 run's `find`, `ls`, `pwd` and `grep` came from, not from the overlay. The lane's `--allowedTools`
265
+ therefore bounds every WRITE and every non-trivial command, not literally every `Bash` invocation.
266
+
267
+ Beyond that, the local lane's `--allowedTools` is its permission surface. It is path-scoped:
268
+ `Edit(./**)`/`Write(./**)` rather than bare `Edit`/`Write` (the cwd is the slot), and
269
+ the `deny` half additionally refuses `Edit`/`Write` on `.husky/**`, `.claude/**`, `scripts/**`,
270
+ `package.json`, `pnpm-lock.yaml`, `node_modules/**` and `.git/**` — everything that GOVERNS or RUNS
271
+ the dispatcher itself. The close's `SLOT_EXECUTED_PATHS`/`LOCAL_FORBIDDEN_PATHS` re-check the same paths
272
+ against the real diff, because a permission rule that silently fails to match must not be the only
273
+ barrier.
274
+
275
+ **The `Edit(./**)` spelling is measured, not assumed.** Spike 1.2 had measured a bare relative glob
276
+ (`Edit(allowed/**)`) working under `--allowedTools`; whether the `./` prefix matches was left
277
+ untested until now. Same probe as above (free local model, temp git repo, `Read` plus the rule under
278
+ test, prompt "append the line hello to a.txt using the Edit tool"):
279
+
280
+ | Rule under test | Edit allowed? | Evidence |
281
+ | --- | --- | --- |
282
+ | `Edit(./**)` | yes | tool_result "has been updated successfully", `permission_denials: []`, `a.txt` appended |
283
+ | `Edit(**)` | yes | same, `permission_denials: []` |
284
+ | `Edit(a.txt)` | yes | same; the run ended `error_max_turns` for an unrelated denied compound `Bash` |
285
+
286
+ All three admit an Edit whose `file_path` argument is the ABSOLUTE path inside the cwd, so the
287
+ shipped `Edit(./**)`/`Write(./**)` spelling stays — it is the one that also states the intent (the
288
+ scoping is the slot), and `grantCovers` already normalises a leading `./` on both sides when
289
+ comparing it against a loaded rule.
290
+
291
+ **A task that must change a dependency cannot be dispatched.** `package.json` (root and every
292
+ workspace one — the patterns are matched as substrings, so `backend/package.json` is a hit),
293
+ `pnpm-lock.yaml` and `node_modules/` are in `SLOT_EXECUTED_PATHS`, so they are refused on BOTH lanes,
294
+ declared or not. They are the environment this close runs its own Prettier, barrels lint and
295
+ `pnpm test` in: a rewritten `test` script or lockfile is code the dispatcher executes moments later.
296
+ The cost is accepted deliberately — adding a dependency is a change a person makes in an
297
+ interactive session, where the install and its diff are read, not one a headless attempt slips in.
298
+
299
+ **The task's own test command is granted per launch, not by a standing rule.** `launch.ts` turns the
300
+ task's SNAPSHOTTED `Test command:` — the same line `resolveTestCommand` validates for the close —
301
+ into one `Bash(<command>:*)` rule and appends it, on both lanes. A task that declared none, or one
302
+ the allowlist refuses, gets no rule. The rule it replaced (`Bash(pnpm --filter * test*)`) was a
303
+ trailing glob that matched any pnpm subcommand whose words happened to line up.
304
+
305
+ The local lane carries no standing `pnpm` rule at all, so that grant is its only one. The frontier
306
+ lane carries five COMMANDS, and each is shipped as a PAIR of rules rather than one colon-terminated
307
+ rule: `Bash(pnpm --filter * test)` + `Bash(pnpm --filter * test *)`,
308
+ `Bash(pnpm --filter * exec prettier --check)` + `Bash(pnpm --filter * exec prettier --check *)`,
309
+ `Bash(pnpm --filter * exec tsc --noEmit)` + `Bash(pnpm --filter * exec tsc --noEmit *)`,
310
+ `Bash(pnpm --filter * db:generate)` + `Bash(pnpm --filter * db:generate *)`, and
311
+ `Bash(pnpm --filter * db:check)` + `Bash(pnpm --filter * db:check *)` — a frontier orchestrator
312
+ writes tests and type-checks across workspaces as it works, and a worker that can only run the one
313
+ line its task declared cannot do that. **Why a pair, and never the single `Bash(pnpm --filter *
314
+ test:*)` rule this used to be:** measured (T-7, 2026-09-07, Claude Code 2.1.263) — a Bash rule that
315
+ combines a mid-rule `*` with a trailing `:*` matches NOTHING. `Bash(pnpm --filter * test:*)` never
316
+ matched `pnpm --filter aurora-back test`, on either lane, ever; it looked like a working scoped
317
+ grant in review and was actually five silent holes. The exact-form half (`Bash(pnpm --filter * test)`)
318
+ matches the command with no extra argument; the with-arguments half (`Bash(pnpm --filter * test *)`)
319
+ matches it with one or more. See "A mid-rule `*` is a wildcard" further down in this section for the
320
+ full measurement. The last two commands are BOTH offline (`catalyst-schema-migrations`): `db:generate` diffs a
321
+ workspace's `*.schema.ts` files against its last `snapshot.json`, and `db:check` runs the same
322
+ comparison — neither ever reaches a real database, so granting them widens no boundary the other
323
+ three did not already assume. Each names a `--filter`ed workspace and a fixed verb: no
324
+ `pnpm add`/`install`/`dlx`, no bare `pnpm run`, and no `pnpm test:<script>` (the root scripts,
325
+ which execute `scripts/**`).
326
+
327
+ **Every board access goes through a dispatcher-owned wrapper, never through the `backlog` CLI.**
328
+ Under `--permission-mode dontAsk` anything unlisted is denied, so `launch.ts` appends exactly ONE
329
+ board rule to `--allowedTools`, on BOTH lanes:
330
+ `Bash(npx --loglevel=error tsx <main checkout>/scripts/backlog/worker-edit.ts T-nn:*)`. The read
331
+ goes through it too (`--view`, accepted only on its own): a separate `Bash(backlog task view T-nn:*)`
332
+ was a prefix like any other, so a command line that merely STARTED with those words matched whatever
333
+ followed — a narrow write channel standing next to an open-ended one.
334
+
335
+ The raw write was granted in two earlier shapes, and both were wider than they read:
336
+
337
+ - a bare `Bash(backlog task edit:*)` let a worker edit, comment on and re-status ANY task on the
338
+ board, including moving another one to `Queued` for the dispatcher to pick up;
339
+ - one rule per allowed flag (`Bash(backlog task edit T-nn --notes:*)`) fixed the id and the FIRST
340
+ flag — but **a permission rule matches a PREFIX and cannot narrow what comes after it**, so
341
+ `--notes x --status Done` matched too: the worker could still set its own task to `Done` (the
342
+ maintenance sweep then reads a finished task nobody verified) and rewrite the very acceptance
343
+ criteria the pre-PR gate and the reviewer judge it against. "Anything else is denied" was never
344
+ true of a rule with a trailing wildcard, and the prompt and this README both used to say it was.
345
+
346
+ `worker-edit.ts` is the barrier that does not depend on a rule matching, because it reads the WHOLE
347
+ argv before anything reaches the CLI: exactly the dispatched task id (taken from `BACKLOG_TASK_ID`
348
+ in the worker env, not from the command line — comparing an argument against itself proves nothing),
349
+ then one or more of `--check-ac`, `--notes`, `--append-notes` and `--plan`, each at most once, each
350
+ with a value that is not itself a flag, and `--check-ac` only with the `#N` the CLI prints — or
351
+ `--view` on its own, which forwards to `backlog task view <id> --plain`. Anything
352
+ else exits **2** — distinct from the CLI's own 1, so a refusal never reads as a CLI error — with a
353
+ message naming what it refused, and writes nothing. On success it forwards to
354
+ `backlog task edit <id> <args…>` in the main checkout (`BACKLOG_CWD`).
355
+
356
+ The grant names the **main checkout's** copy of the script, never the slot's: the slot's `scripts/`
357
+ is a directory the worker could write to if a deny rule ever failed to match, and a barrier the
358
+ thing under test can edit is not a barrier. The close's board-integrity gate is the DETECTOR behind
359
+ it, for the case where a permission rule silently fails to match anyway.
360
+
361
+ **The slot's own `.backlog/` copy is denied outright.** Both lane settings deny
362
+ `Edit(.backlog/**)`/`Write(.backlog/**)`, and the close's scope check reports a change there as a
363
+ violation on both lanes. Editing the board file directly would reach the criteria the close judges
364
+ the attempt against, going around the wrapper entirely.
365
+
366
+ **The frontier lane's allowlist is EXPLICIT, written out in `frontier.settings.json`.** It is not
367
+ derived from anything: `launch.ts` reads that file's `permissions.allow` and emits it, plus the two
368
+ grants the dispatcher itself decides on (the `worker-edit.ts` wrapper and the validated test
369
+ command). As shipped:
370
+
371
+ ```
372
+ Read Grep Glob Edit(./**) Write(./**) Agent Skill TodoWrite
373
+ Bash(git status:*) Bash(git diff:*) Bash(git log:*) Bash(git show:*)
374
+ Bash(git rev-parse:*) Bash(git symbolic-ref:*)
375
+ Bash(openspec:*) Bash(catalyst:*)
376
+ Bash(pnpm --filter * test) Bash(pnpm --filter * test *)
377
+ Bash(pnpm --filter * exec prettier --check) Bash(pnpm --filter * exec prettier --check *)
378
+ Bash(pnpm --filter * exec tsc --noEmit) Bash(pnpm --filter * exec tsc --noEmit *)
379
+ Bash(pnpm --filter * db:generate) Bash(pnpm --filter * db:generate *)
380
+ Bash(pnpm --filter * db:check) Bash(pnpm --filter * db:check *)
381
+ ```
382
+
383
+ The file tools are path-scoped to the slot like the local lane's, plus the two tools an orchestrator
384
+ needs to BE one (it delegates to sub-agents and reads skills by path) — under
385
+ `--permission-mode dontAsk` a tool with no allow rule is DENIED, and a lane holding only `Bash` rules
386
+ is not a restricted worker, it is a worker that cannot open a file. The commands are what a frontier
387
+ orchestrator's job actually needs: inspect the tree it works in (read-only `git` verbs — none of them
388
+ stages, commits, moves a branch or discards a file), run the SDD flow (`openspec`), run the generator
389
+ (`catalyst`), verify its own work in a workspace (a scoped test, Prettier's `--check`,
390
+ `tsc --noEmit`), and evolve a workspace's Drizzle schema OFFLINE (`db:generate`/`db:check` — both diff
391
+ `*.schema.ts` against the last `snapshot.json`; neither touches a database, per
392
+ `catalyst-schema-migrations`). **No granted command runs a script out of the tree the worker can write to** — no
393
+ `node`, `tsx`, `npx`, bare `pnpm run` or `pnpm test:` rule — which is the property that makes the
394
+ `Edit`/`Write` allowance over `scripts/**` safe (see the deny section below). `launch.test.ts` holds
395
+ that as an assertion over the shipped file, not as a comment.
396
+
397
+ It used to be the project's own list, subtracted from: `launch.ts` read `.claude/settings.json`'s 43
398
+ `permissions.allow` rules at launch and dropped the dangerous ones by command prefix. The reasoning
399
+ was that the rules people maintain should stay one list rather than being copied into a second one
400
+ that drifts — but an inherited list is a moving target, and a SUBTRACTION over it reopens with every
401
+ rule somebody adds. The filter had to be right about commands that did not exist when it was written,
402
+ in a file whose whole purpose is a person approving a command for their OWN interactive session. The
403
+ evidence is that file as it stands: `Bash(fd:*)`, `Bash(git restore:*)`, `Bash(git branch:*)`,
404
+ `Bash(eslint:*)`, `Bash(npm test:*)` and `Bash(pnpm test:hooks:*)` are all in it, and no prefix in
405
+ that filter covered one of them — a finder that reaches `--exec`, two git verbs that discard work and
406
+ move branches, and three runners that execute files out of a tree the worker can write to, every one
407
+ of them reaching the headless worker past a filter written before they existed. What survives review
408
+ now is the list itself, and every rule in it was read once and stays read.
409
+
410
+ Both `--allowedTools` and `--disallowedTools` are always emitted on BOTH lanes, even when a list is
411
+ empty: `--permission-mode dontAsk` with no `--allowedTools` is unrestricted, not restricted. And the
412
+ launch guard asks for CAPABILITIES, not for a non-empty list: `assertLaneGrantsFileAccess` throws
413
+ unless the merged allow list carries at least one read rule (`Read`) and at least one write rule
414
+ (`Edit`/`Write`, bare or path-scoped), and the task is blocked with that reason rather than burning
415
+ an attempt on a worker that discovers mid-run it cannot write. "Non-empty" was the wrong
416
+ question — 43 `Bash` rules satisfy it.
417
+
418
+ **But the launch is not the only source of `allow`.** The frontier lane passes
419
+ `--setting-sources user,project`: this worker runs the FULL harness and needs the project's hooks.
420
+ The user file also loads; measured on this machine its `enabledPlugins` merely duplicates what the
421
+ project file already turns on for every plugin `check-required-setup.ts` requires, so that alone
422
+ would not justify loading it. What it uniquely contributes here is its own `hooks`, its
423
+ `mcpServers` entry, its `model` override, and the enablement of plugins the project file does not
424
+ require (`.mcp.json` is not a settings source and loads regardless). The local lane passes
425
+ `--setting-sources user`, because `--bare` does not stop settings loading (see the local-lane section
426
+ above) and one source is the least the flag can name. **The click-approval overlay is NOT among them,
427
+ on either lane.** `.claude/settings.local.json` is where a person's ad-hoc "yes, allow that" answers
428
+ pile up — 61 rules on this machine, `Bash(git *)`, `Bash(pnpm *)` and `Bash(python3 -c *)` among them,
429
+ which is every git and every pnpm subcommand including the ones the lane's list deliberately withholds
430
+ — and since Claude Code 2.1.211 a worktree reads the MAIN checkout's copy, so a slot would inherit the
431
+ lot. A headless worker must never inherit a person's click-approvals, so the file is excluded at the
432
+ source: not loaded, therefore nothing to subtract, and no dilemma between revoking a reviewed lane
433
+ grant and blocking the task.
434
+
435
+ Whatever DOES load still brings its `permissions.allow`, and `--allowedTools` ADDS to what that grants
436
+ rather than replacing it. Writing a lane's list out therefore bounds only what the LAUNCH grants; on
437
+ the frontier lane the project file's 42 approved rules load with the hooks, and on the local lane the
438
+ user file loads alone (it contributes none on this machine — an empty `permissions.allow`). The
439
+ layering, in order, on EITHER lane:
440
+
441
+ 1. the lane's settings sources load — user, then project on the frontier lane — bringing the project
442
+ hooks AND their `permissions.allow`;
443
+ 2. the launch adds the lane allow list plus the two per-task grants (the `worker-edit.ts` wrapper,
444
+ the validated test command);
445
+ 3. the launch denies its static deny list PLUS **every allow rule those loaded sources contribute
446
+ and the lane does not grant**;
447
+ 4. a deny outranks every allow, whatever its source — so step 3 is what makes step 2 the whole
448
+ surface.
449
+
450
+ Step 3 is `launch.ts`'s `settingsSourcePaths` + `loadSettingsAllowRules` (the union of the lane's
451
+ sources, in load order, deduped) + `settingsAllowRulesToDeny`. Both `settingsSourcePaths` and the
452
+ `--setting-sources` value are derived from one per-lane list (`LANE_SETTING_SOURCES`), so the flag and
453
+ the subtraction cannot describe different sets. They are read from the DISPATCHER's own checkout — the one every slot is a worktree
454
+ of, and the same place the lane settings file comes from — never from the slot. `.claude/settings.json`
455
+ is in the close's `SLOT_EXECUTED_PATHS` and the lane denies writing it, but "the file it edited decides
456
+ what it may do" is not a property to rest on two other mechanisms holding; and comparing a list from
457
+ the slot against a lane list from the checkout would be comparing two different files.
458
+
459
+ **"Does not grant" is decided by COVERAGE, not by string inequality**, because a deny is coarse. The
460
+ project file's `Bash(openspec status:*)` is already covered by the lane's `Bash(openspec:*)`, so
461
+ denying it by spelling would revoke the lane's own grant — and with it the SDD flow this lane exists
462
+ to run; `Bash(pnpm --filter aurora-back test:*)` sits inside `Bash(pnpm --filter * test)` the same
463
+ way, with the `*` read as a wildcard. A loaded rule the granted list already covers grants nothing new
464
+ and is skipped. The reverse overlap has no safe answer: a loaded rule BROADER than a rule the launch
465
+ grants — the project file's `Bash(pnpm test:hooks:*)` over a task whose declared test command is
466
+ `pnpm test:hooks <file>` — is either denied, revoking the task's own test grant, or kept, handing the
467
+ worker a runner that executes files out of a tree it can write to. So the task is BLOCKED
468
+ (`permission-conflict`) with both rules in the comment, for a person to resolve: narrow the settings
469
+ rule, or the task's test command. That visibility is the point — a permission conflict nobody sees is
470
+ the failure mode this whole section exists for.
471
+
472
+ **That refusal is guard 1b, not a launch failure.** It is a property of the task and of the settings
473
+ files in the dispatcher's own checkout, so it is knowable before anything is taken: `guards.ts`'s
474
+ `checkPermissionComposition` runs right after the triage checks, on BOTH lanes (it was frontier-only
475
+ while the local lane was believed to load no settings source at all), and the task never reaches slot
476
+ acquisition. Deciding it inside `buildLaunch` — as it did until round 10 —
477
+ cost a worktree slot, a lock, an attempt directory and a `dispatch-failed` block to report a
478
+ conflict that no attempt could have resolved. `settingsAllowRulesToDeny` still throws on it, as the
479
+ last-resort invariant behind the guard for a caller that composes a launch without evaluating it, and
480
+ both read the same `findPermissionConflict`.
481
+
482
+ **The comparison has TWO directions, and they are different questions.** "Is this loaded rule
483
+ already granted, so skip it?" is `grantCovers`, and it is deliberately STRICTER than the real matcher:
484
+ a false "not covered" only costs a deny for a rule the launch grants anyway, while a false "covered"
485
+ hands the worker surface nobody reviewed. "Would a deny for this rule revoke that grant?" is
486
+ `denyWouldRevoke`, and it must be exactly as coarse as Claude Code itself — a RAW prefix, `*` as
487
+ wildcard, no token boundary, no opinion about shell operators. Asking the strict predicate in the deny
488
+ direction was a live bug: the project's `Bash(pnpm test:hooks:*)` over a task declaring
489
+ `pnpm test:hooks-extra` read as unrelated, so the launch emitted the deny — and the deny killed the
490
+ task's own test grant. A rule that MIGHT revoke a grant is reported as a conflict, never denied.
491
+
492
+ Four details of `grantCovers` are load-bearing, because a permission rule is a PREFIX and a prefix
493
+ match is not the same question as coverage:
494
+
495
+ - **A command candidate must resume at a token boundary and carry no shell operator.**
496
+ `Bash(git status:*)` prefix-matches the string `git statusfoo`, which is a different command, and
497
+ `git status && fd .`, which is two — the second of them a binary this lane spends deny rules
498
+ refusing. Both read as UNCOVERED, so they are denied rather than waved through as "the lane already
499
+ grants that".
500
+ - **A boundary is a space OR a `:`, and a granted base can supply its own.** `:` separates a pnpm
501
+ script from its subcommand, so `Bash(pnpm --filter * test)` covers
502
+ `Bash(pnpm --filter aurora-back test:extra:*)`; and a granted base whose trailing boundary was
503
+ consumed by its own wildcard (`Bash(git *)` → `git `) has already matched at one, so
504
+ `Bash(git status:*)` is covered by it.
505
+ - **A path scoping is compared with a leading `./` stripped on both sides.** The lane spells its file
506
+ grants `Edit(./**)`/`Write(./**)` because the cwd is the slot, so without that normalization a
507
+ loaded `Edit(frontend/**)` read as uncovered — and the deny composed for it would have taken the
508
+ worker's write access to `frontend/` away.
509
+ - **A scoping that LEAVES the working directory is never covered by one that stays inside it.**
510
+ `Edit(/etc/**)` and `Edit(~/notes/**)` are the obvious cases; `Edit(../**)` is the one the `./`
511
+ normalization hid, since `..` reads as an ordinary relative glob to a prefix match.
512
+
513
+ **A non-covered FILE-tool scoping (`Read`/`Edit`/`Write`) blocks the task only when its deny would
514
+ reach inside the slot** — a bare rule (`Edit`), an unscoped glob (`Edit(**)`, `Edit(./**)`), or a
515
+ relative one (`Edit(frontend/**)`). A deny on those does not narrow the worker, it stops it opening
516
+ files there at all, so the task is blocked for a person instead. A scoping that only reaches OUTSIDE
517
+ the slot (`Edit(/etc/**)`, `Edit(~/x/**)`, `Edit(../**)`) is denied like any other rule, which is
518
+ precisely what the subtraction is for.
519
+
520
+ **A rule's SOURCE is part of the rule, because a path glob is relative to the file that declares it.**
521
+ `Edit(**)` in the project file scopes the checkout the worker runs in; the same rule in the USER file
522
+ scopes the whole home directory, which the lane has no way to grant — its own `Edit(./**)` is the
523
+ slot. So `loadSettingsAllowRules` tags each rule with the source it came from (`user` or `project`,
524
+ the first of the two winning when both declare it), and a USER-file path rule with no scoping of its
525
+ own (`Edit`, `Edit(**)`, `Edit(./**)`) blocks the task unless the lane grants that tool BARE — the
526
+ one grant that does reach outside the slot. Without the tag it read as covered by `Edit(./**)`, an
527
+ artefact of the `./` normalization, and the worker got `$HOME` silently.
528
+
529
+ What that denies out, measured against the shipped project file — 42 rules loaded, 30 denied, 12
530
+ already covered by the lane: `Bash(fd:*)`, `Bash(find:*)`,
531
+ `Bash(grep:*)`, the staging/committing/discarding git verbs, `Bash(gh auth:*)`/`Bash(gh pr:*)`,
532
+ `Bash(npm run format:*)`, `Bash(npm test:*)`, the three `npx` rules, `Bash(eslint:*)`, the
533
+ `pnpm exec` pair, every `Bash(pnpm test:…)` / `Bash(pnpm cli:test:*)` / `Bash(pnpm br:validate:*)` /
534
+ `Bash(pnpm hr:lint-barrels:*)` / `Bash(pnpm peers check:*)` runner, `Bash(aurora load:*)`,
535
+ `Bash(shasum:*)` and the two `mcp__claude-in-chrome__*` tools. Bash `grep` and `find` go with them:
536
+ the `Grep`/`Glob` tools are what this worker reads with, and the read-only Bash hook cannot hand a
537
+ denied command back. `launch.test.ts` asserts that outcome over the SHIPPED `.claude/settings.json`
538
+ and the shipped lane file — the only loaded source that lives in the repo — so a rule somebody adds to
539
+ the project list tomorrow is denied on the next launch with nobody editing `launch.ts`.
540
+
541
+ ### Test commands that conflict with the project allow list
542
+
543
+ **Over the two loaded sources as they stand, no launch refuses on the LANE list**: nothing in the 42
544
+ rules is broader than a lane rule. What remains is per-task, and it is one shape — a declared
545
+ `Test command:` that is a NARROWER form of one of the project file's script rules. Five rules in that
546
+ file can swallow a task's own test grant, so a task whose test command is `pnpm test:hooks`,
547
+ `pnpm test:contracts`, `pnpm test:packager`, `pnpm test:catalyst-regen` or `pnpm cli:test` WITH AN
548
+ ARGUMENT is blocked with `permission-conflict` before a slot is taken:
549
+
550
+ | Project rule | A declared test command it swallows |
551
+ | --- | --- |
552
+ | `Bash(pnpm test:hooks:*)` | `pnpm test:hooks scripts/x.test.ts` |
553
+ | `Bash(pnpm test:contracts:*)` | `pnpm test:contracts <file>` |
554
+ | `Bash(pnpm test:packager:*)` | `pnpm test:packager <file>` |
555
+ | `Bash(pnpm test:catalyst-regen:*)` | `pnpm test:catalyst-regen <file>` |
556
+ | `Bash(pnpm cli:test:*)` | `pnpm cli:test <file>` |
557
+
558
+ Both rules are named in the block comment. **The resolution is per-task: declare a command the
559
+ project list does not cover** — the repo's own convention, `pnpm --filter <pkg> test <file>`, which
560
+ the lane's `Bash(pnpm --filter * test)` covers outright. Declaring the command exactly as the
561
+ project rule spells it (no argument) also clears it, since an identical rule is covered rather than
562
+ broader. **Never widen the lane's allow list to clear one of these**: the lane list is the reviewed
563
+ surface of EVERY frontier task, and widening it to unblock one task grants that runner to all of
564
+ them — a task-shaped problem paid for by every task that follows. (Excluding the overlay is what removed the lane-wide case:
565
+ `Bash(git *)` and `Bash(pnpm *)` in it are broader than `Bash(git status:*)` and
566
+ `Bash(pnpm --filter * test)`, so while that file was a source, every single frontier launch
567
+ refused.)
568
+
569
+ **Three assumptions under all of this were documented Claude Code behaviour; one of them has since
570
+ been MEASURED, and the measurement corrected it.** The phase-9 end-to-end run (tasks.md 9.7) must
571
+ still confirm the other two from `stream.jsonl` on a dispatched frontier task:
572
+
573
+ 1. **Deny beats allow from any source.** A command the project list allows and the lane does not
574
+ (`fd .`) is refused, and a command the lane grants under a rule broader than the project's
575
+ (`openspec list`) still runs. Everything in this section rests on it.
576
+ 2. **A mid-rule `*` is a wildcard — but ONLY in glob form, never combined with a trailing `:*`.**
577
+ Measured (T-7, 2026-09-07, Claude Code 2.1.263, `claude -p` probes with `--setting-sources user`
578
+ and 0 allow rules, `--permission-mode dontAsk`): `Bash(pnpm --filter * test:*)` does **not** allow
579
+ `pnpm --filter aurora-back test` — that combination of a mid-rule `*` with a trailing `:*` matches
580
+ NOTHING at all, on any command line. The coverage comparison (`grantCovers`) still treats a
581
+ mid-rule `*` as a wildcard, and that stays correct for the shape the frontier lane ships instead
582
+ of the retired rule: `Bash(pnpm --filter * test)` (exact form, no trailing glob) and
583
+ `Bash(pnpm --filter * test *)` (with one or more arguments) — see "The task's own test command is
584
+ granted per launch" above. The "12 rules already covered" result below rests on the EXACT-FORM
585
+ half of that pair.
586
+ 3. **Commands are split before matching.** A compound line (`git status && fd .`) is refused rather
587
+ than admitted by its allowed prefix. The comparison assumes this and refuses coverage for a
588
+ compound candidate; if the real matcher were to admit one, that assumption is the barrier that
589
+ moved.
590
+
591
+ **`Bash(catalyst:*)` is a broad grant, and it is a deliberate one.** It is the generator: one
592
+ `catalyst generate <bc> <module> --force` rewrites every emitted file of a whole bounded context —
593
+ far more than the task's own subject, and with no `.origin` reconciliation on this lane. The lane
594
+ grants it because a frontier task that changes a schema cannot do its job without it. Nothing narrows
595
+ it at launch: the review is the close's scope check over the real diff, which still stops the
596
+ generator from reaching `.claude/settings*.json` or `.backlog/` (the hard list, `SLOT_EXECUTED_PATHS`)
597
+ and, regardless of the two lists, the mirror output `packages/cli/src/templates/` — `packages/cli/`
598
+ itself and `scripts/backlog/` are the soft list now, so a regen that reaches them is ADMITTED and
599
+ marks the pull request instead of failing (see "Forbidden paths, split by mechanism" below) — and
600
+ then the PR itself, which is the human gate either way. If a regen's blast radius on a
601
+ slot ever needs bounding tighter than that, it is a rule change to argue for with evidence, not a
602
+ comment to add here.
603
+
604
+ **The effective permission surface on the frontier lane is: the lane allow list, plus the read-only
605
+ commands a project hook vets, minus the deny list — where the deny list also cancels the project
606
+ allow rules the lane does not grant.** The lane runs the full harness, and the
607
+ project's `PreToolUse` hook on `Bash` — `.claude/hooks/auto-allow-readonly-bash.ts` — answers
608
+ `permissionDecision: "allow"` for a vetted read-only table (`grep`, `sed -n`, `git log`, `find`
609
+ without `-exec`/`-delete`, and the rest of `READ_ONLY_COMMANDS`, refusing redirections, command
610
+ substitution, heredocs, path-invoked commands and every write-capable mode). That is deliberate and
611
+ kept: an orchestrator needs to READ the repo, and the alternative is one allow rule per binary, which
612
+ is the moving target this lane just stopped inheriting. So a read-only Bash command may run here even
613
+ though no lane rule names it — and nothing that WRITES or EXECUTES may, because the hook refuses
614
+ those and the deny list refuses them again.
615
+
616
+ The hook is not the only reason that happens. Measured on the local lane (which loads no hook at all
617
+ under `--bare`): with `--allowedTools 'Read'` and nothing else, a bare `ls` through `Bash` was
618
+ allowed with `permission_denials: []`, while a compound `ls -la; cat a.txt; echo …` was denied. Claude
619
+ Code itself auto-approves a Bash command it can statically read as read-only. The hook's value is that
620
+ it is the vetted table we OWN — but "no allow rule names it, therefore it cannot run" was never true
621
+ of a read-only command on either lane.
622
+
623
+ **A deny rule is what holds regardless of source.** A deny outranks any allow rule, from the lane
624
+ file, from whatever settings the harness loads, or from a hook answering `allow` — which is why the
625
+ list below keeps rules the lane's own allowlist no longer contains.
626
+
627
+ **The frontier deny list is the local one minus two documented allowances.** Both lanes deny
628
+ `Bash(git push:*)`/`Bash(git push*)` and `Bash(gh:*)`/`Bash(gh *)` (each in both spellings, because
629
+ they match different command shapes and a rule that fails to match denies nothing), `WebFetch`,
630
+ `WebSearch`, and `Edit`/`Write` on `.backlog/**`, `.husky/**`, `node_modules/**`, `package.json`,
631
+ `pnpm-lock.yaml` and `.git/**` — the board, and everything that governs or runs the dispatcher
632
+ itself. The frontier list adds the git verbs that stage, commit, move a branch or throw work away
633
+ (`git add`, `git commit`, `git restore`, `git branch`, `git clean` — the close is what commits and
634
+ pushes, and `restore`/`clean` destroy the very work it is about to save) and the two file finders
635
+ that can execute what they find (`find`, `fd`), each in both spellings.
636
+
637
+ `Edit`/`Write` on `.claude/**` and `scripts/**` are the two allowances: a frontier task may
638
+ legitimately edit a skill or the tooling, which is part of why it runs on the wider lane at all —
639
+ and the lane's narrowed denials below carve the dangerous corners back out, with the close's hard
640
+ list (`SLOT_EXECUTED_PATHS`) re-checking both `.claude/settings*.json` against the real diff
641
+ regardless of what the permission rule matched. `scripts/backlog/` is SOFT now (T-31) — admitted, and
642
+ marking the pull request for human review, rather than re-checked as a violation.
643
+ `scripts/**` stays writable, and it is safe BECAUSE no granted command
644
+ executes it: the allow list carries no `node`, `tsx`, `npx`, `pnpm test:` or bare `pnpm run` rule, so
645
+ the pair is a permission to EDIT a script, never to run one — with two exceptions the CLOSE creates,
646
+ not the worker: `scripts/packager/` (spawned by the mirror regeneration) and `scripts/harness-rules/`
647
+ (run by the barrels lint), which is why both are on the close's hard list. `launch.test.ts` compares
648
+ the FULL deny lists against that allowance set, so the wider lane can never again be guarded less by
649
+ omission.
650
+
651
+ Those allowances are NARROWED, not blanket. The frontier lane replaces the local lane's `.claude/**`
652
+ deny with the executable corners of that directory plus BOTH settings files and the instruction
653
+ files: `Edit`/`Write` on `.claude/hooks/**`, `.claude/scripts/**`, `.claude/settings.json`,
654
+ `.claude/settings.local.json`,
655
+ `CLAUDE.md` and `**/CLAUDE.md` (and the `Claude.md`/`claude.md` casings, since macOS is
656
+ case-insensitive while a permission glob compares the spelling it was given). The reason is that the
657
+ harness EXECUTES the first two inside the slot: the project's `PostToolUse` hook runs
658
+ `$CLAUDE_PROJECT_DIR/.claude/hooks/format-with-prettier.ts` after every Write/Edit, and
659
+ `CLAUDE_PROJECT_DIR` is the slot the worker is writing to — so a hook written there runs as the
660
+ worker on its very next edit, past every other rule; `.claude/scripts/` runs the same way from
661
+ `SessionStart`. `.claude/settings.json` is the file this very launch READS to compose its deny list,
662
+ and the project settings source the worker itself loads — the one place where "the file it edited
663
+ decides what it may do" would be literally true; `.claude/settings.local.json` is the same surface —
664
+ hooks and permissions — and the file Claude Code reads LAST, so a rule written there outranks the one
665
+ it overlays. `.claude/hooks/**`, `.claude/scripts/**` and both settings files are in the close's HARD
666
+ list (`SLOT_EXECUTED_PATHS`) too, so the real diff is checked on BOTH lanes even if a permission rule
667
+ fails to match — and `.claude/settings.local.json` needed its own entry there, because the matcher
668
+ compares substrings and `.claude/settings.local.json` does not contain `.claude/settings.json`.
669
+ `CLAUDE.md` is what the next reader (the next dispatched worker on this slot included) treats as law,
670
+ and it is the one entry on the hard list the harness READS rather than executes: it is in
671
+ `SLOT_EXECUTED_BASENAMES`, refused at close on BOTH lanes and blocked in the queue by guard 1c — see
672
+ the list section for the two measured mechanisms (the local lane's AI reviewer reads it, and a failed
673
+ attempt's copy is restored into the slot for the retry's executor to read). A skill under
674
+ `.claude/skills/` and a tool under `scripts/` (outside `scripts/backlog/`) stay editable — that is
675
+ the allowance the wider lane exists for, and `.claude/` read as INSTRUCTIONS is the gap the list
676
+ section records by name.
677
+
678
+ The frontier lane additionally denies the raw board write on BOTH surfaces it could reach —
679
+ `Bash(backlog task edit:*)` / `Bash(backlog task edit *)` and the
680
+ `mcp__backlog__task_{edit,create,complete,archive}` tools. The launch also passes
681
+ `--strict-mcp-config` (T-24), the same flag the local lane and `reviewer.ts` already pass. Measured
682
+ 2026-09-09 (`claude -p "ok" --output-format stream-json --verbose --max-turns 1 --model haiku`,
683
+ reading the `system`/`init` event): without the flag, the frontier worker's init event listed 101
684
+ tools, 68 of them `mcp__*`. `mcp_servers` declared six entries (chrome-devtools, context7, backlog,
685
+ spartan-ng-mcp, angular-cli, thesvg), but only four actually supplied a tool — chrome-devtools 29,
686
+ backlog 20, spartan-ng-mcp 14, angular-cli 5, summing to the 68 — while context7 was `status:
687
+ "failed"` and thesvg `status: "pending"`, neither contributing one. With the flag: 30 tools, 0 of
688
+ them `mcp__*`, no declared servers at all. No rule in `frontier.settings.json` grants any `mcp__*`
689
+ tool, so those 68 tools were loaded only to be denied by omission under `--permission-mode dontAsk`
690
+ — the flag removes that dead weight at the source. The `mcp__backlog__task_*` deny rules above stay
691
+ regardless: with the MCP servers no longer loaded at all, they are defence in depth rather than the
692
+ active barrier, so the protection does not depend on a single flag. A write reachable by either
693
+ route re-statuses the task or rewrites the criteria the close judges it against.
694
+
695
+ **The frontier lane also denies eleven personal claude.ai connector servers.** At the time (T-3,
696
+ 2026-09-07), the frontier worker's init event had listed 152 tools, including
697
+ `mcp__claude_ai_Gmail__*`, `mcp__claude_ai_Notion__*`, `mcp__claude_ai_Linear__*`,
698
+ `mcp__claude_ai_Asana__*`, `mcp__claude_ai_Atlassian__*`, `mcp__claude_ai_Box__*`,
699
+ `mcp__claude_ai_Canva__*`, `mcp__claude_ai_Figma__*`, `mcp__claude_ai_HubSpot__*`,
700
+ `mcp__claude_ai_Intercom__*` and `mcp__claude_ai_monday_com__*` — loaded through the account login
701
+ rather than through any settings file this launch reads, the same way `.mcp.json` "is not a settings
702
+ source and loads regardless" (see Lane profiles above). That is a historical record of that one
703
+ measurement, not a description of what loads today — a headless worker must never reach a person's
704
+ mail or project-management tools regardless of what any given flag happens to load, so each
705
+ connector's whole server is denied by name using the shape Claude Code documents for an MCP
706
+ server-level spec (`mcp__<server>`, `mcp__<server>__*` or `mcp__*` remove every tool from the named
707
+ server, or from all servers) — there is no glob that spans multiple distinct server names, which is
708
+ why the eleven are spelled out rather than matched by a shared `claude_ai_` prefix. A deny rule
709
+ holds regardless of source (see above), so it denies the connectors whichever mechanism loaded
710
+ them.
711
+
712
+ These eleven deny rules stay even now that the launch also passes `--strict-mcp-config` (T-24):
713
+ they are deliberate defence in depth, so the protection does not depend on a single flag. Whether
714
+ `--strict-mcp-config` would ALSO have kept these specific connectors from loading is UNVERIFIED —
715
+ the T-24 probe measured above ran in a shell where an auth source (`ANTHROPIC_API_KEY` or another)
716
+ had already disabled claude.ai connectors, taking precedence over the claude.ai login T-3 used, so
717
+ T-24's probe could not observe these eleven loading or not loading either way; T-3 above is the
718
+ only probe that ever observed them load. Do not read the T-24 measurement above (six declared
719
+ servers, four of which supplied tools, none of them a personal connector) as evidence on this
720
+ question; it ran in a different shell than T-3's.
721
+
722
+ **The frontier worker gets a system prompt of its own.** It runs the harness, so it reads `CLAUDE.md`
723
+ — which describes an INTERACTIVE session and says nothing about `worker-edit.ts`. Launched without
724
+ one, the worker reached for `backlog task edit`, was denied, and finished with every acceptance
725
+ criterion unticked, which the close's AC gate then failed it for, every time. `prompt.ts`'s
726
+ `buildFrontierAddendum` renders `.claude/skills/catalyst-backlog/frontier-worker-addendum.md` — the
727
+ template — into `.backlog/.dispatch/<id>/intento-N/frontier-addendum.md`, filling in the task id and
728
+ the wrapper command bound to it, and the launch passes THAT path to
729
+ `--append-system-prompt-file`. It carries only the facts `CLAUDE.md` cannot, because it describes an
730
+ INTERACTIVE session: which directory it works in (its slot, named in full, with the main checkout
731
+ named as the tree it must never touch — `{{SLOT_PATH}}`/`{{MAIN_CHECKOUT_PATH}}`, rendered per
732
+ attempt like the wrapper command);
733
+
734
+ **Both lanes' `--append-system-prompt-file` path is ABSOLUTE, under the main checkout.** The frontier
735
+ lane's rendered addendum always was (it is written into `.backlog/.dispatch/…`); the local lane's
736
+ static `worker-system-prompt.md` was a RELATIVE path until T-31 round 3, and `launch.ts` spawns the
737
+ executor with `cwd` = the SLOT — so the worker's own brief was read from the tree the worker writes.
738
+ `resolveWorkerSystemPromptPath` (`dispatch.ts`) resolves it against `repoRoot` instead, which closes
739
+ the channel rather than watching it: `--bare` does not close it (the flag is explicit on the command
740
+ line), and the two mechanisms that happened to bound it — the local lane's `.claude/**` deny and the
741
+ `.claude/` entry in `LOCAL_FORBIDDEN_PATHS` — are exactly the "one mechanism is not enough" shape the
742
+ hard list exists for.
743
+
744
+ The invariant is ASSERTED where the argv is built (`buildLaunch`, round 4): a relative value throws and
745
+ aborts the launch, which releases the slot and blocks the task. Resolving it in one of the two producers
746
+ and asserting nothing at the point of use left the property untested — the two lanes compute the value
747
+ differently, and the property belongs to the flag, not to either computation.
748
+
749
+ The addendum also covers: running its test command EXACTLY as declared, with no pipes,
750
+ `&&`, redirections or `cd` (T-3: a worker piped one through `grep`/`tail` and was denied — Claude
751
+ Code evaluates each segment of a compound line separately, and the close runs the same bare command
752
+ again anyway); the dispatcher already set the task `In Progress` and the worker never writes the
753
+ status; the four wrapper flags and the fact that an unchecked criterion blocks the attempt; that the
754
+ task's `path:` label is BINDING, not a recommendation — `path:sdd` runs the SDD flow
755
+ (`/opsx:propose` then `/opsx:apply`, Automatic mode) before any code change, `path:direct` takes the
756
+ direct path with the tier's gates, and `CLAUDE.md`'s interactive "recommend SDD and let the user
757
+ choose" rule cannot apply headless, because there is no user to choose (T-3 measured a worker read
758
+ that rule and implemented directly under `path:sdd` anyway, with no `openspec/changes/<name>` ever
759
+ created); that a diff touching the security surface (`o-auth/`, `iam/`, a guard, `@Auth`, secrets or
760
+ env config, a new public endpoint, an upload, a raw query, crypto/token/session handling) still gets
761
+ a `/security-review` pass before finishing, reported in the task notes, exactly as the root
762
+ `CLAUDE.md`'s security gate requires (the same T-3 run edited `backend/src/@app/iam/**` with no
763
+ such pass — that gate has no person to trigger it headless either); a gate needing a person ends the
764
+ run as `needs-guidance` (the close is what moves the task to `Blocked`); and no `git`, `gh`, or
765
+ install.
766
+
767
+ **Both prompts name the working directory, because the worker cannot infer it.** Measured (T-5,
768
+ 2026-09-07): the local executor's FIRST `Edit` targeted the MAIN checkout's copy of the file it had to
769
+ change, not its slot's. It had taken the repository root off the `File: …/.backlog/tasks/t-5 …` line
770
+ of the task block — the board lives in the main checkout — and nothing in the envelope said where it
771
+ actually was. `Edit(./**)` denied it, correctly (the cwd is the slot), so the attempt spent turns
772
+ being refused a path nobody had told it about. The local envelope now opens, immediately after the
773
+ task text, with the slot path, "every path in this task is relative to it", the main checkout named as
774
+ a tree it must never read, edit or run anything in, and the reason the confusion arose ("the board
775
+ file path shown in the task block lives in the main checkout; do not treat its directory as your
776
+ repository root"). The frontier addendum carries the same block. A permission rule is the barrier;
777
+ this is what stops a worker walking into it.
778
+
779
+ **Cost knob:** `ANTHROPIC_DEFAULT_OPUS_MODEL` is the value to change if Opus-priced frontier work
780
+ gets too expensive — set it in `frontier.settings.json`'s `env` (currently empty) to redirect
781
+ every internal "opus" alias to a cheaper model without touching `launch.ts`'s path-to-alias logic
782
+ at all. On the local lane this same key is already set (to the local model id) for the reason
783
+ above.
784
+
785
+ ## The close: what actually gates a PR
786
+
787
+ **The first step is not mechanical at all: the board still has to describe the task that was
788
+ launched** (`checkBoardIntegrity`). The worker can write to its own task for its whole run — it
789
+ must, since the wrapper is its only channel for ticking criteria — so the close re-reads the task and
790
+ compares it against the snapshot taken at launch. The wrapper is the BARRIER; this gate is the
791
+ DETECTOR behind it, for the case where a permission rule silently fails to match anyway:
792
+
793
+ - the status must still be `In Progress`. A worker that set itself to `Done` gets a maintenance
794
+ sweep reading a finished task nobody verified; one that set itself to `Queued` gets dispatched
795
+ again by the next pass while this close is still running. Anything else fails the attempt with
796
+ `status-changed-by-worker`.
797
+ - the acceptance-criteria and Definition-of-Done TEXTS must be unchanged (`ac-tampered` otherwise).
798
+ Only the texts: the CHECKED state is exactly what the worker is supposed to change. The pre-PR
799
+ gate and the reviewer both judge the attempt against those criteria, so a criterion rewritten
800
+ into something the attempt can meet is a gate the thing under test authored itself.
801
+ - the **title**, the declared **`Files to touch:`** and the declared **`Test command:`** must be
802
+ unchanged too, same `ac-tampered` reason. They are the rest of the contract the attempt is judged
803
+ against — the title names the PR, the declared files are the allowlist the scope check runs, and
804
+ the test command is what the triad executes — and all three are description text a board write can
805
+ reach. The message attributes the drift to "worker o persona" and lists the differences: a person
806
+ editing the board mid-attempt produces exactly the same drift, and the remedy is the same either
807
+ way (re-queueing re-takes the snapshot).
808
+
809
+ It runs FIRST because every step after it trusts the board: the scope check reads the declared
810
+ files, the triad the test command, the gate and the reviewer the criteria.
811
+
812
+ ### Forbidden paths, split by mechanism (T-31)
813
+
814
+ The scope check (`checkScope`, `guards.ts`/`close.ts`) reads two path lists, split by ONE mechanical
815
+ question: **does this file execute inside the slot during the attempt or the close?**
816
+
817
+ - **`SLOT_EXECUTED_PATHS`** (hard, `guards.ts`) — the harness's own settings and its local overlay
818
+ (`.claude/settings.json`, `.claude/settings.local.json`), the hook and script directories the
819
+ harness runs after every edit (`.claude/hooks/`, `.claude/scripts/`), the version-control hooks the
820
+ close's own commit runs (`.husky/`), the package manifest, the lockfile and the installed
821
+ dependency tree the close runs Prettier, the barrels lint and the task's own test command with
822
+ (`package.json`, `pnpm-lock.yaml`, `node_modules/`), the board directory holding the criteria the
823
+ attempt is judged against (`.backlog/`), and the two script directories the close SPAWNS from
824
+ inside the slot: `scripts/packager/` (the `mirrorRegen` step runs `node
825
+ scripts/packager/publish.mjs` there, and that script GLOBS `monorepo.mjs`, `backend/*.mjs` and
826
+ `frontend/*.mjs` inside its OWN directory — derived from `import.meta.url`, so the slot's copy —
827
+ and spawns every match with the dispatcher's inherited environment) and `scripts/harness-rules/`
828
+ (the triad runs `pnpm hr:lint-barrels`, which the root `package.json` maps to `tsx
829
+ scripts/harness-rules/lint-barrels.ts`; the manifest being hard protects the script NAME, not the
830
+ file it points at). Refused on BOTH lanes, whether or not the task declared it — and blocked in the
831
+ QUEUE before a slot is ever taken, by guard 1c (`checkDeclaredSlotExecutedPath`), when a task
832
+ DECLARES one, including when it declares a DIRECTORY whose subtree contains one.
833
+
834
+ A declaration is read as reaching the list both when it lies UNDER a listed path and when it is a
835
+ DIRECTORY that contains one, with or without the trailing slash: `- .claude` and `- .claude/` both
836
+ reach `.claude/settings.json`. The containment direction matches on a segment boundary, so a bare
837
+ textual prefix is not a declaration of what it prefixes (`- package` names `package/`, not
838
+ `package.json`).
839
+
840
+ **Four** things the close reaches inside the slot are deliberately NOT on this list, recorded in
841
+ `openspec/changes/split-dispatcher-forbidden-paths/design.md` decision 1 rather than left silent:
842
+
843
+ - the slot's own `.git/` directory — its hooks really do run, but no `diff`/`status` output ever
844
+ reports a path inside it, so a list entry could never be enforced;
845
+ - `.claude/` read as INSTRUCTIONS on the frontier lane — `skills/`, `rules/`, `agents/`,
846
+ `commands/`. The executor reads them; no close step executes them. They are on neither list, so
847
+ a frontier attempt can rewrite its own skills and neither the pull request nor the `Blocked`
848
+ comment says so. This is the gap with a live self-instruction consequence, and it is wider than
849
+ it looks: a failed attempt's tree is pushed to `task/<id>` and RESTORED by the retry's
850
+ `checkout -B` (see the soft list below), so what attempt 1 writes there is what attempt 2's
851
+ executor boots reading. Widening the criteria into a soft PATH list for `.claude/` is a
852
+ follow-up;
853
+ - the drift-check workflow the mirror step parses — a worker can only cost itself the attempt with
854
+ it, never gain privilege;
855
+ - the task's declared `Test command:` — the standing hole this dispatcher has always had, and the
856
+ mechanism that makes "inert during the attempt" untrue of ANY path (below).
857
+ - **`SLOT_EXECUTED_BASENAMES`** (hard, `guards.ts`) is the basename half of the hard list, and holds
858
+ one entry: `CLAUDE.md`, matched by file name at any depth and case-insensitively. Refused at close
859
+ on BOTH lanes and blocked in the queue by guard 1c, for two measured reasons. First, the local
860
+ close runs an AI reviewer over the attempt's own diff, spawned with `cwd` = the slot, and
861
+ `buildReviewerCommand` (`reviewer.ts`) does NOT pass `--bare` — the one flag that turns
862
+ instruction-file auto-discovery off, and one the reviewer cannot take, because under `--bare`
863
+ authentication is strictly `ANTHROPIC_API_KEY`/`apiKeyHelper` and `reviewerEnv()` strips every
864
+ `ANTHROPIC_*` key: an instruction file the local executor writes is read as instructions by the
865
+ judge of that same attempt. Second, on EITHER lane an instruction file written by attempt N is read
866
+ by attempt N+1's executor — the failure plan opens no pull request at all, so no PR mark is applied,
867
+ yet `saveWipAndPush` commits the whole slot tree to `task/<id>` and the retry's `prepareSlot` runs
868
+ `checkout -B task/<id> origin/task/<id>` and restores it. A mark that only exists on the green path
869
+ is not a control over a file that survives the failing one. Nothing else covers this file: the lane
870
+ settings grant `Write(./**)` with no `CLAUDE.md` deny, and `.claude/` is not a substring of
871
+ `claude.md`.
872
+ - **`HUMAN_REVIEW_PATHS`** (soft, `guards.ts`) — the dispatcher's own sources (`scripts/backlog/`)
873
+ and the generator package (`packages/cli/`). A soft path is ADMITTED, not refused, and marks the
874
+ resulting pull request for human review (see "open-pr reuses the PR" below) instead of failing the
875
+ close. On the local lane a soft path still has to be DECLARED to pass — the undeclared-file check
876
+ is unchanged — and `scripts/backlog/` stays refused there regardless, because the local lane's
877
+ wider `scripts/` extra (below) still catches it.
878
+
879
+ **Soft does NOT mean inert**, and the two mechanisms that make it not mean that were measured
880
+ directly, so nobody has to rediscover them:
881
+
882
+ - a soft-list file CAN be executed inside the slot during the CLOSE. Admitting the diff at
883
+ `scope-check` is precisely what unlocks the rest of the success plan, and the triad's last step
884
+ spawns the task's own declared `Test command:` with `cwd` = the slot and the dispatcher's
885
+ inherited environment. `ALLOWED_TEST_SCRIPT` admits `test:backlog`, which the root manifest maps
886
+ to a runner over `scripts/backlog/**` — the SLOT's copies. This is not a privilege the soft list
887
+ grants: every dispatched task's test command already runs worker-written code in the slot the
888
+ same way (the fourth gap above). It is the reason the classification cannot rest on "nothing
889
+ runs it";
890
+ - a soft-list edit SURVIVES a failed attempt. `saveWipAndPush` commits and pushes the whole slot
891
+ tree to `task/<id>`, and the retry's `prepareSlot` runs `checkout -B task/<id>
892
+ origin/task/<id>`, which restores it into the slot. "The slot is hard-reset, so nothing survives
893
+ the attempt" holds only for a branch with no such push behind it.
894
+
895
+ What justifies the classification is narrower, and does hold: neither entry is read as INSTRUCTIONS
896
+ by any process (that is the difference from `SLOT_EXECUTED_BASENAMES` above), and neither is on the
897
+ path the dispatcher itself runs from — it runs from the MAIN checkout, the worker's board wrapper
898
+ and the board itself live only there, and the generator is never invoked by the close. So the
899
+ reachable outcome of editing either one is a test run that behaves differently, which costs the
900
+ attempt and is exactly what the mark sends a person to read.
901
+
902
+ The mark is not the only record. A FAILED close opens no pull request, so on that path the
903
+ `Blocked` comment names the soft-list files (`BlockDetails.humanReviewFiles`) — otherwise an
904
+ attempt that touched the dispatcher's own sources and then failed would leave no trace of having
905
+ done so. That holds for EVERY failure shape, and the common ones are the ones with no scope check
906
+ behind them: a MECHANICAL step's failure diverts a plan that already ran `scope-check`, so the files
907
+ are already known, while a SESSION-level failure (`needs-guidance`, a timeout, an exhausted budget,
908
+ a crash) plans straight to `save-work` and runs no mechanical step at all — and `board-check`, the
909
+ one mechanical step ordered BEFORE the scope check, diverts without one too. On any of those
910
+ `executeClose` asks the slot itself through the `leftoverFiles` runner (`collectLeftoverFiles`)
911
+ BEFORE the WIP commit rewrites the tree; the probe is keyed on "has anything classified this tree
912
+ yet", not on the plan's shape, so no future step ordering can reintroduce a divert that records
913
+ nothing.
914
+
915
+ That probe carries no verdict, but it does CLASSIFY — with `classifyChangedPaths`, the same function
916
+ `checkScope` reads, per lane. It returns two buckets, and the `Blocked` comment renders them as two
917
+ separate lines because they ask a person for opposite things: a soft-list leftover has to be READ,
918
+ and a refused one (a hard-list path, or the mirror output) has to be REMOVED before the retry
919
+ restores it. T-31 round 3 filtered the tree through the soft list alone, which reported a
920
+ `packages/cli/src/templates/…` path as a soft-list file the close admits — the one prefix refused on
921
+ both lanes — and said nothing at all about `.claude/settings.json`. A `git` failure in the probe is
922
+ logged rather than allowed to fail an already-failed close.
923
+ - **The mirror output** (`packages/cli/src/templates/`, `MIRROR_OUTPUT_PREFIX` in `close.ts`) stays
924
+ refused on BOTH lanes regardless of the split — see "the CLI scaffold mirror is regenerated" below.
925
+ It is dispatcher-owned output the close itself writes, not a worker's writing surface, and it is
926
+ checked FIRST, before the two lists above: `packages/cli/src/templates/monorepo/scripts/backlog/
927
+ close.ts` matches both the mirror prefix and the soft `packages/cli/` pattern, and the mirror
928
+ prefix must win or a hand-written mirror edit would silently become a marked PR instead of a
929
+ violation.
930
+ - **`LOCAL_FORBIDDEN_PATHS`** (`guards.ts`) is `SLOT_EXECUTED_PATHS` plus the local lane's own three
931
+ path extras — `.claude/`, `scripts/` and `.git/` — unchanged by the split. They are matched as
932
+ substrings, so `scripts/` also catches `scripts/backlog/dispatch.ts` even though that entry is soft
933
+ everywhere else: a soft path is not automatically admissible on the local lane, and being declared
934
+ was never sufficient for a local-lane extra either.
935
+
936
+ A pull request marked for human review carries FOUR halves, deliberately unequal (design.md
937
+ decision 8), and exactly ONE of them cannot fail:
938
+
939
+ 1. **the body section on a NEW pull request** — part of the `gh pr create` argv, so it either creates
940
+ the PR with the section or creates no PR at all. This is the unfailable half, and the reason the
941
+ mark does not rest on the three below;
942
+ 2. **the body section on a REUSED pull request** (a retry pushing to a branch that already has an
943
+ open PR): there is no `gh pr create` on that path to carry it, so the close applies it with its
944
+ own `gh pr edit --body` — best-effort;
945
+ 3. **the `harness-review` label**, a separate `gh pr edit` after the PR exists — best-effort;
946
+ 4. **the reviewer handle**, when `lanes.json` configures one, another separate `gh pr edit` —
947
+ best-effort.
948
+
949
+ Best-effort means exactly this: the failure is logged with its reason and never fails the close,
950
+ blocks the task, or discards the pull request. Halves 2-4 are best-effort; half 1 is not, because
951
+ there is nothing left to fail once the PR exists with the body it was created with.
952
+
953
+ The rewrite walks the body once and drops each dispatcher-authored region — every full marker pair,
954
+ a trailing START with no END (a section a failed write truncated), and any stray END — writing the new
955
+ section where the FIRST one was and keeping every byte between the regions. Round 3 spliced from the
956
+ first START to the LAST END, which on a body holding TWO full pairs swallowed everything between them,
957
+ a person's note included; that is the shape the pre-round-3 code produced on every retry, so open pull
958
+ requests already hold it. The result always holds exactly one well-ordered pair, which makes the next
959
+ rewrite the ordinary case again.
960
+
961
+ The reuse rewrite READS the body first (`readPrBody`) and replaces only
962
+ its own delimited section (`upsertHumanReviewSection`, marked with
963
+ `<!-- dispatcher:human-review:start -->`/`…:end -->` HTML comments): `gh pr edit --body` is a full
964
+ replacement, and these are by construction the pull requests a person was asked to read and
965
+ annotate, so recomposing the body from the board destroyed every word that person had added. A body
966
+ that cannot be READ is not overwritten at all — the rewrite is skipped and recorded, since with no
967
+ idea what is there the safe move is to leave it. The file list any mark renders is capped on TWO
968
+ budgets — the entry count (`MAX_MARKED_FILES`) and the total characters (`MAX_MARKED_LIST_CHARS`,
969
+ with each path capped at `MAX_MARKED_PATH_CHARS`) — with a count of what it dropped, the same
970
+ discipline `sanitizeCommentBody` carries for the worker-authored notes section beside it: the list
971
+ comes from the attempt's own diff, and a wide refactor produces hundreds of entries in a public body
972
+ and in the `gh` argv. Each path is also RENDERED rather than spliced verbatim (`renderMarkedPath`):
973
+ paths reach the close straight out of `git diff -z`, so `<`/`>` are escaped — a filename spelling the
974
+ section's own end marker would otherwise put a second marker inside the list and send the next
975
+ rewrite's `indexOf` to the wrong offset — and control characters become `?`, so one changed file
976
+ always renders as one entry. ONE rendering serves both channels, deliberately: the escapes render back
977
+ as `<`/`>` on GitHub and show up literally (`&lt;`) in a `Blocked` comment read through
978
+ `backlog task view --plain`, and a second channel-aware renderer would mean two code paths over
979
+ worker-supplied bytes for a cosmetic gain — the escaped spelling still identifies the file. The
980
+ label is a SEPARATE call from `pr create` on purpose — a label the repository does not have would
981
+ otherwise fail the PR creation itself — and separate from the reviewer call too, so a rejected
982
+ reviewer never takes the label down with it. The reviewer's rejection is the EXPECTED case, not the
983
+ exception: `gh` refuses a reviewer that is the pull request's own author, and the dispatcher opens
984
+ every PR as the same account — so `harnessReviewer` ships unset in `lanes.json`, and its absence is
985
+ recorded once rather than treated as an error.
986
+
987
+ The mechanical triad is **scoped to the attempt's own changed files** — the union of
988
+ `git diff --name-only -z <base>...HEAD` and
989
+ `git status --porcelain -z --untracked-files=all` — `-z` on BOTH halves, because either line format
990
+ otherwise quotes and C-escapes a path holding a space, a quote, a backslash, a newline or a
991
+ non-ASCII byte, and the string then compared against the path lists is not the path on disk. The
992
+ measured consequence: a quoted `packages/cli/src/templates/…` misses the anchored mirror prefix while
993
+ still matching the unanchored soft `packages/cli/` pattern, so a hand-written mirror edit would be
994
+ admitted and merely marked — the mirror-first precedence inverted. `-c core.quotepath=false` was the
995
+ first fix and it is not enough: that option governs only the non-ASCII half of the class. On the
996
+ status side a rename is one entry carrying two NUL-separated paths, and only the new one is a file
997
+ the attempt produced. The mirror prefix itself is matched case-insensitively, like every sibling
998
+ matcher, since a casing variant names the same file on this repo's filesystem:
999
+
1000
+ - **Prettier**, two runs per workspace that ships it (`backend/`, `frontend/`, `packages/core-back/`,
1001
+ `packages/core-front/`): `pnpm --filter <pkg> exec prettier --write --ignore-unknown <files>`, then
1002
+ the same with `--check`. design.md decision (h) puts the format hook in the close "where a
1003
+ deterministic script ENFORCES them" — a bare `--check` only reports, and the executor is never
1004
+ asked to run Prettier, so an indentation nit failed a whole attempt over something the close can
1005
+ fix in place. The `--check` after the write is not redundant: it is what proves the write actually
1006
+ took (a syntax error makes Prettier rewrite nothing). Prettier is NOT a root dependency here — `npx
1007
+ prettier` at the repo root exits 127 — so a repo-wide run was a check that could never pass. A
1008
+ changed file outside those four workspaces (`scripts/`, `.claude/`) has no formatter to run and is
1009
+ reported in the log, not silently treated as formatted. `--ignore-unknown` is measured (T-6.1,
1010
+ first real frontier dispatch): a `.sql` file with no inferrable parser otherwise exits Prettier 2
1011
+ ("No parser could be inferred"), failing the whole triad over a file Prettier was never going to
1012
+ format. A drizzle-kit migration folder
1013
+ (`backend/src/database/migrations/drizzle/<folder>/{migration.sql,snapshot.json}`) is excluded
1014
+ from BOTH runs entirely rather than merely ignored: it is tool OUTPUT, not hand-written code, the
1015
+ repo's shipped `snapshot.json` files are not Prettier-formatted (measured: `--check` warns on every
1016
+ one, 432 KB each), and a `--write` would turn a generated artifact into a huge noise-only diff.
1017
+ - **Barrels lint**, `pnpm hr:lint-barrels <files>`, over the changed `.ts` files under the roots
1018
+ HR-BARRELS actually governs. Scoped for the same reason: `pnpm hr:lint-barrels` with no arguments
1019
+ sweeps the whole repo, which is red on `main` today for pre-existing violations in generated
1020
+ frontend code — an unscoped run would blame every attempt for someone else's diff.
1021
+ - **The task's own `Test command:`**, which is MANDATORY — guard 1 refuses to dispatch a task that
1022
+ declares none, on either lane, and the pre-PR gate refuses to pass one whose "scoped tests pass"
1023
+ item is still unticked (the triad ticks it only when a test actually ran and passed). The accepted
1024
+ grammar is the repo's own convention and nothing else:
1025
+
1026
+ ```
1027
+ pnpm [--filter <pkg> | --dir <relative-path>] [run] <test | cli:test | test:*> [args…]
1028
+ ```
1029
+
1030
+ Naming `pnpm` was never the permission: `pnpm dlx <package>` is the same fetch-and-execute `npx`
1031
+ is refused for, and `pnpm add`/`install`/`exec`/`-C` reach just as far outside this repository. So
1032
+ the SCRIPT is allowlisted too, a `--filter` value must be a plain package name (never another
1033
+ flag), and the line may contain no shell metacharacter. `--dir` is the alternative selector, for
1034
+ `packages/cli` — deliberately NOT a workspace member (root `CLAUDE.md`, D8), so `--filter` matches
1035
+ nothing there; its value must be a RELATIVE path with no `..` segment, because a test command may
1036
+ only reach inside the slot it runs in. The command is spawned directly, never through a shell.
1037
+
1038
+ A line that breaks any rule is refused **before dispatch**: guard 1 runs the same
1039
+ `resolveTestCommand` the triad does and blocks the task with the refusal and the offending line,
1040
+ so nothing is spawned at all. The validator lives in `guards.ts` for that reason — pre-launch
1041
+ validation is upstream of the close, which already reads that module for its security-path list.
1042
+ Reaching the close with a refused line means the board changed after launch, and the triad fails
1043
+ it there with `test command no permitido`.
1044
+
1045
+ The command that runs is the one SNAPSHOTTED at launch (`Task.testCommand`, parsed alongside
1046
+ `Files to touch:`), never re-read from the board at close time — the worker can write to its own
1047
+ task for its whole run, so a close that re-read the board would run whatever the thing under test
1048
+ decided it should be verified with.
1049
+
1050
+ Prettier and the barrels linter are both run only over files that still EXIST in the slot. A file the
1051
+ attempt deleted is still a changed file, and neither tool can read a path that is correctly gone.
1052
+ Both receive their file list after a `--` separator, so a changed path beginning with a dash is read
1053
+ as a file and not as a flag.
1054
+
1055
+ **Then the CLI scaffold mirror is regenerated, when — and only when — the attempt touched a root the
1056
+ packager reads.** `scripts/packager/publish.mjs` mirrors `backend/`, `frontend/` and much of the
1057
+ monorepo root into `packages/cli/src/templates/{backend,frontend,monorepo}`, and CI's
1058
+ `Check mirror <-> source drift` fails any PR whose committed mirror no longer matches its sources.
1059
+ A dispatched worker cannot satisfy that gate itself: the MIRROR OUTPUT
1060
+ (`packages/cli/src/templates/`) stays refused on both lanes regardless of the split (T-31) —
1061
+ `packages/cli/` itself is soft now, so a worker may legitimately edit the generator, but never its
1062
+ own generated mirror — so before this step existed, **any dispatched task touching a mirrored root
1063
+ could never pass CI on its own** (measured: PR #96, task T-3, which edited
1064
+ `backend/src/@app/iam/**` and `frontend/src/app/domains/admin/apps/iam/**` and failed the gate with
1065
+ "The committed CLI scaffold mirror is out of date").
1066
+
1067
+ - **Which roots count** is read at close time from the slot's own
1068
+ `.github/workflows/cli-template-drift-check.yml` — its `paths:` filter, minus `packages/cli/**`
1069
+ (packager OUTPUT, not a source root). That list is not copied into the dispatcher, because
1070
+ `scripts/packager/drift-check-paths.test.mjs` already fails when a `copyMonorepo()` glob is
1071
+ missing from it: reading the file that is kept in lockstep is one source of truth, a second
1072
+ hardcoded copy would be a third thing to drift.
1073
+ - **It is conditional.** `publish.mjs` is a repo-wide copy; running it on an attempt that changed
1074
+ only a `cliter/*.aurora.yaml` would spend that cost and put a several-thousand-file mirror diff in
1075
+ front of the reviewer for nothing.
1076
+ - **Where it sits is the whole design.** AFTER the triad, because `prettier --write` rewrites the
1077
+ attempt's own source files — a mirror copied before it would be a byte-copy of the unformatted
1078
+ source and stale the moment the triad ran. BEFORE the reviewer and the pre-PR gate, because the
1079
+ reviewer judges the diff that will actually be pushed. And AFTER the scope check, which is what
1080
+ keeps the MIRROR OUTPUT forbidden **to the worker**: the scope verdict is taken over the pre-regen
1081
+ file set, so a mirror path the worker wrote by hand is still a scope violation, and the
1082
+ dispatcher-owned output only appears once the judging is done. There is no exemption in
1083
+ `checkScope` at all — the ordering is the exemption.
1084
+ - The regenerated files stay in the working tree and travel in the attempt's own commit
1085
+ (`open-pr` already runs `git add -A`).
1086
+ - **A failing packager fails the attempt** (`mirror-regen-failed`, work saved then `Blocked` like
1087
+ any other step), with the child's stderr folded in through `describeExecFailure` — an
1088
+ `execFileSync` throw says only "Command failed: node scripts/packager/publish.mjs" on its own.
1089
+ - **A repo with no drift-check workflow skips the step entirely.** A generated project is that case:
1090
+ `copyMonorepo()` ships `scripts/backlog/**` but neither `.github/**` nor `scripts/packager/**`, so
1091
+ there is no mirror to keep and no gate to satisfy. A workflow that IS there but whose `paths:`
1092
+ list does not parse fails instead — unknown roots make the question unanswerable, and an
1093
+ unverifiable answer is the one thing this close refuses to trust.
1094
+
1095
+ The reviewer step (local lane) is spawned isolated from the harness — `--strict-mcp-config` keeps
1096
+ every MCP server out, `--disable-slash-commands` removes the command surface, `--setting-sources
1097
+ user` keeps the project's 42 allow rules out — plus an explicit deny list covering `Edit`, `Write`,
1098
+ `NotebookEdit`, the push and PR commands, `WebFetch` and `WebSearch`: it judges, it never writes.
1099
+
1100
+ It is the one dispatched process that does NOT get `--bare`, and that is a correctness fix rather
1101
+ than a relaxation. Measured on `claude --help`: under `--bare`, "Anthropic auth is strictly
1102
+ ANTHROPIC_API_KEY or apiKeyHelper via --settings (OAuth and keychain are never read)". The executor
1103
+ authenticates against LM Studio through the lane's own `ANTHROPIC_BASE_URL`/`ANTHROPIC_AUTH_TOKEN`;
1104
+ the reviewer runs on the ACCOUNT with all of that stripped, so under `--bare` it had no credential
1105
+ left at all — and a reviewer that cannot start fails closed, blocking every local-lane attempt.
1106
+ `--setting-sources user` is the narrowest value the flag accepts (it takes a comma-separated list of
1107
+ `user`, `project`, `local`; an empty one is not in the grammar), and it is also where an
1108
+ `apiKeyHelper` lives.
1109
+
1110
+ Its environment is `reviewerEnv`, not `sanitizeInheritedEnv`: it drops every `ANTHROPIC_*` key plus
1111
+ `CLAUDE_CODE_SUBAGENT_MODEL`, and applies the same `isCredentialEnvKey` filter the worker env
1112
+ applies, with NO exception — the reviewer reads a diff and writes a verdict, so `GITHUB_TOKEN`,
1113
+ `NPM_TOKEN` and the SOPS/cloud keys are reach it has no use for. **The reviewer authenticates with
1114
+ the machine's claude.ai login; a stale `ANTHROPIC_API_KEY` in the dispatcher's shell would otherwise
1115
+ take precedence and break it.** That key used to be kept, on the reading that it is the account
1116
+ credential rather than a lane knob. Measured wrong (T-5, 2026-09-07): the reviewer failed to start
1117
+ at all (`El revisor no se pudo ejecutar: … claude -p …`), and a probe with the reviewer's own flags
1118
+ returned `terminal_reason: api_error`, 0 tokens, and stderr "claude.ai connectors are disabled
1119
+ because ANTHROPIC_API_KEY or another auth source is set and takes precedence over your claude.ai
1120
+ login". An inherited key can only ever REPLACE the credential this process needs, never supply one:
1121
+ a machine that really authenticates by API key declares it in the settings source the reviewer loads
1122
+ (`--setting-sources user`, where an `apiKeyHelper` lives), not in the shell the dispatcher happens to
1123
+ be started from. The overlay half of the sweep is unchanged in effect — `ANTHROPIC_BASE_URL`,
1124
+ `ANTHROPIC_AUTH_TOKEN` and the model aliases still go, so a weak local executor can never review
1125
+ itself.
1126
+
1127
+ **A failed reviewer subprocess reports its stderr.** `execFileSync`'s own `error.message` is
1128
+ "Command failed: claude -p …" and nothing else, so the T-5 `review.md` recorded exactly that while
1129
+ the auth error above sat in the stderr nobody rendered. The runner now wraps the spawn in
1130
+ `describeExecFailure` (the same renderer the dispatcher's `backlog`/`git` writes use), so the step's
1131
+ `Blocked` comment and `review.md` both carry the child's own message. The diff it judges is collected with an intent-to-add first (`git add -N -A -- .`), then
1132
+ `diff <base>...HEAD` plus `diff HEAD`. The intent-to-add is what makes the second half honest: no
1133
+ `git diff` under any flags renders an UNTRACKED file, and on a dispatched attempt every created file
1134
+ is untracked — the executor may not run git, so nothing ever staged them. Without it the reviewer
1135
+ was handed a diff with every new file silently missing and approved code it never saw. (Side effect,
1136
+ harmless: the slot's index is left carrying those entries, and every path that continues from there
1137
+ runs `git add -A` over the whole tree anyway.) It is then fenced between randomized
1138
+ `===== BEGIN/END UNTRUSTED DIFF <nonce> =====` sentinels and declared data, because that text was
1139
+ written by the model under review and can address the reviewer directly. The verdict is only read AFTER a `REVIEW COMPLETE` line the
1140
+ reviewer emits itself — a `VERDICT: pass` quoted from the diff is not a verdict — and a reply with
1141
+ no marker, or no verdict after it, fails closed.
1142
+
1143
+ The **pre-PR gate** (`evaluateAcceptanceGate`) judges ACCEPTANCE CRITERIA: every one must be checked,
1144
+ and a task that declares none at all fails ("la tarea no declara criterios de aceptación" — there
1145
+ would be nothing to verify the work against). Definition-of-Done items split in two: the four project
1146
+ defaults in `.backlog/config.yml` are dispatcher-owned and the close ticks them itself once the step
1147
+ that PROVES each one has passed (the triad ticks "scoped tests pass" and "Prettier and barrels lint
1148
+ pass", the gate ticks "every acceptance criterion is checked", `open-pr` ticks "PR opened to main or
1149
+ to the parent branch"); any OTHER unchecked DoD item is a human duty and fails the gate. Ticking is by
1150
+ item TEXT, never by a guessed index — the `#N` the CLI prints shifts as soon as a task adds one item
1151
+ of its own.
1152
+
1153
+ One dispatcher-owned item the gate still judges: **"scoped tests pass"**. The triad ticks it ONLY
1154
+ when a test check actually ran and passed, so an unticked one at the gate means nothing tested this
1155
+ attempt — and excluding it as "dispatcher-owned" let exactly that reach a PR with the box ticked by
1156
+ nobody and verified by nothing. The gate now fails with `la tarea no declara Test command`.
1157
+
1158
+ Nothing used to TELL the worker to tick anything, either. The operating envelope now renders each
1159
+ criterion with its `#N` and the exact wrapper command (`<worker-edit> --check-ac <N>`, the same
1160
+ string the permission rule was built from — passed in rather than composed twice, so the command the
1161
+ prompt prints cannot drift from the one that is granted), requires the evidence in `--append-notes`,
1162
+ and says that leaving one unchecked blocks the attempt — the same instructions the worker system
1163
+ prompt carries.
1164
+
1165
+ **`open-pr` reuses the PR already on the branch.** A retry pushes to the same `task/T-nn`, so the
1166
+ previous attempt's PR is still open and that push already updated it — and creating a second one is
1167
+ impossible (`gh` refuses with "a pull request for branch … already exists"), which failed a close
1168
+ whose code was on the remote with a perfectly good PR to point at. The step asks first
1169
+ (`gh pr view <branch> --json url,state`) and reuses an `OPEN` one, logging "PR existente
1170
+ reutilizada". Only "no pull requests found" counts as absence: a `CLOSED`/`MERGED` PR is not
1171
+ reusable (pushing again would leave the attempt with no open PR and the DoD item a lie), and any
1172
+ other `gh` failure — a revoked token, no network — propagates instead of being read as an absent PR,
1173
+ because swallowing it would create a duplicate the moment `gh` recovered.
1174
+
1175
+ The dispatcher's own `gh` calls — this `gh pr view`/`gh pr create` pair, and `maintenance.ts`'s
1176
+ merged-PR poll — run with an env stripped of `GITHUB_TOKEN`/`GH_TOKEN`/`GH_ENTERPRISE_TOKEN`/
1177
+ `GITHUB_ENTERPRISE_TOKEN` (`dispatch.ts`'s `ghEnv`), so `gh`'s own keyring login (`gh auth login`)
1178
+ is what authenticates. Without it, a stale token in the dispatcher's shell would otherwise take
1179
+ precedence over that login and return `HTTP 401: Bad credentials` right here at `open-pr` — measured
1180
+ (T-5, 2026-09-07): the reconciler process inherits whatever `GITHUB_TOKEN` the developer shell that
1181
+ launched it exports, and `gh` prefers an env token over the keyring even when the keyring login is
1182
+ valid.
1183
+
1184
+ **`open-pr` marks the pull request when the scope check reported soft-list files** (T-31) — the
1185
+ `humanReviewFiles` `scopeCheck` captured earlier in the run, never recomputed here (see "Forbidden
1186
+ paths, split by mechanism" above for why). Applies on BOTH branches above, the reuse and the create:
1187
+ a `gh pr edit <branch> --add-label harness-review`, then, when `lanes.json` configures a handle, a
1188
+ second `gh pr edit <branch> --add-reviewer <handle>`. Each is its own call, wrapped so a failure is
1189
+ logged with `describeExecFailure` and never fails the close. On the REUSE branch it also applies the
1190
+ mark's BODY half with a third call, `gh pr edit <branch> --body <body>`: the create branch carries
1191
+ that section inside `gh pr create --body`, and the reuse branch has no create call to carry it, so
1192
+ without this the reused pull request would name no soft-list file at all and the whole mark would
1193
+ rest on the two calls that are allowed to fail. That body is the CURRENT one, read back with
1194
+ `readPrBody` and passed through `upsertHumanReviewSection` so only the delimited review section
1195
+ changes — a recomposition from the board would replace the whole body and take a reviewer's own notes
1196
+ with it. An unreadable body is left alone and the skip is recorded.
1197
+
1198
+ A close that FAILS never reaches this step at all (the failure plan is `save-work` then `block`), so
1199
+ there the leftover files are named in the `Blocked` comment instead — `formatBlockComment` renders
1200
+ `BlockDetails.humanReviewFiles` and `BlockDetails.forbiddenFiles` as two lines, which `executeClose`
1201
+ carries over from the scope-check result when a mechanical step failed, and reads from the slot itself
1202
+ (the `leftoverFiles` runner) on every divert with no scope check behind it: a plan that started at
1203
+ `save-work`, and a `board-check` failure.
1204
+
1205
+ That comment is composed under an explicit priority, because `sanitizeCommentBody` truncates from the
1206
+ END and the last line is the only actionable one: the reason, the branch/compare/log pointers and the
1207
+ `whatToDo` line are never budgeted; the two leftover lines are capped against the room those leave
1208
+ (and by `MAX_MARKED_FILES`/`MAX_MARKED_LIST_CHARS`); the worker's own report is capped against what
1209
+ remains, since it is the longest part and survives in full in the `run.log` the comment names two
1210
+ lines above. Round 3 gave the list a fixed 2000-char budget — half the comment's own 4000 — and
1211
+ measured a comment of exactly 4000 chars with `whatToDo` cut off.
1212
+
1213
+ ## Failure path: work is saved before anything is released
1214
+
1215
+ On any failure the close saves first (`git add -A` + a `chore(<task-id>): wip dispatcher auto-save`
1216
+ commit + push) and only then blocks and releases.
1217
+
1218
+ **Every dispatcher-owned commit runs `--no-verify`**, and that is a safety property rather than a
1219
+ convenience: a slot's `.husky/` hooks are files in the working tree the WORKER has been writing in,
1220
+ so committing its work through them would execute code the model under dispatch authored, with the
1221
+ dispatcher's privileges. The board commit takes the same flag because it runs unattended in the main
1222
+ checkout, where a hook that stashes (lint-staged does) would reach into whatever a person has in
1223
+ progress there. Nothing is lost by it: both messages are machine-built, in the same lowercase-scope
1224
+ Conventional Commit shape, and `close.test.ts` runs them through this repo's real commitlint.
1225
+
1226
+ If that push FAILS, the slot is not released. It is flagged `heldForRecovery` in `slots.json`, which
1227
+ means:
1228
+
1229
+ - no acquisition will ever pick it (its `reset --hard` would delete the only copy of the work);
1230
+ - the dead-PID sweep and the orphan sweep both skip it;
1231
+ - every later maintenance pass retries the push, and on success clears the flag, releases the slot
1232
+ and appends "push recuperado" to the task. That last note is a COMMENT, not a status write, unless
1233
+ the task is still sitting in `Blocked`: a person may have released it to `Queued` (or to `To Do`)
1234
+ while the push was pending, and re-asserting `Blocked` would drag it straight back out.
1235
+
1236
+ That retry is bounded at **three attempts** (`MAX_RECOVERY_ATTEMPTS`, counted on the slot as
1237
+ `recoveryAttempts`). A push that failed three times is failing for a reason no further retry
1238
+ addresses — no remote, a rejected non-fast-forward, a broken worktree — and retrying forever keeps
1239
+ one of three slots out of the pool while saying nothing about it. At the cap the pass notifies,
1240
+ comments `recuperación del push agotada: rescata a mano la rama task/<id> en <slot path>` — naming
1241
+ the exact command that gives the slot back, `pnpm backlog:dispatch -- --release-slot <slot name>`,
1242
+ since nothing automatic will take it back — keeps the slot held, and stops retrying: a person
1243
+ decides from there. See "Releasing a `Blocked` task" for that step.
1244
+
1245
+ While a slot is held for THIS task's recovery, guard 6 reports `push-pending` rather than
1246
+ `no-free-slot` — only the first says why re-queueing changes nothing until the retry succeeds.
1247
+
1248
+ The same rule governs a worker that died without closing: the sweep kills it (its whole process
1249
+ group) if it is still running, saves its branch, and only then releases — leaving a `Blocked` comment
1250
+ that says which pid died, on which branch, and whether the work survived.
1251
+
1252
+ `Blocked` comments are sanitized before they are posted: `backlog task edit --comment` rejects a body
1253
+ containing a standalone `---` line outright (exit 1, nothing written), and a reviewer verdict embeds
1254
+ exactly that. The body is also capped at 4000 characters, with the rest left in `review.md`.
1255
+
1256
+ ## Where board state lives (`BACKLOG_CWD`, `auto_commit: false`)
1257
+
1258
+ The board (`.backlog/tasks/`, `.backlog/config.yml`) lives ONLY in the main checkout, never in a
1259
+ slot. Every dispatcher process — the reconciler itself and every `backlog` CLI invocation it
1260
+ makes — is pointed there via `BACKLOG_CWD=<main checkout>`, resolved with
1261
+ `findRepoRoot`/`scripts/_catalog-runtime/repo-root.ts`. A slot never touches its own `.backlog/`
1262
+ copy — and that is now ENFORCED rather than assumed: both lane settings deny `Edit`/`Write` on
1263
+ `.backlog/**`, and `checkScope` reports a change there as a violation on both lanes. It used to
1264
+ strip `.backlog/`-prefixed paths from the diff instead, so a worker that did write there rewrote
1265
+ the criteria the close judges it against, invisibly.
1266
+
1267
+ Keeping the board in one place is deliberate, not an oversight — three worktrees
1268
+ independently writing the same task files would be a merge-conflict generator, which is why
1269
+ `check_active_branches: false` in `.backlog/config.yml` too (cross-branch resolution would read
1270
+ stale copies out of three slots that never see each other's writes).
1271
+
1272
+ `.backlog/config.yml` sets `auto_commit: false`, which is the opposite of what you might expect
1273
+ from a tool that manages its own state file. Backlog.md's own auto-commit writes messages like
1274
+ "Create task T-2" — not a Conventional Commit — and this repo's `commit-msg` hook (husky +
1275
+ commitlint) rejects them; worse, with `bypass_git_hooks: false` the rejection is not a loud
1276
+ failure, the task file is never persisted at all (silently losing the write). So instead, the
1277
+ reconciler's maintenance pass (`maintenance.ts`, `commitBacklogChanges`) commits any pending
1278
+ `.backlog/**` change itself, in the main checkout, with a Conventional Commit message —
1279
+ `chore(backlog): sync board state (T-12 -> Done)` for a single transition,
1280
+ `chore(backlog): sync board state (4 transitions)` with the list in the commit BODY for several
1281
+ (commitlint caps the header at 100 characters). Like every other dispatcher-owned commit it runs
1282
+ `--no-verify` (see "Failure path" above), and it carries a trailing `-- .backlog` **pathspec**:
1283
+ staging adds to the index but does not narrow what a commit takes, so without it anything a person
1284
+ already had staged in the main checkout rode along inside an unattended machine commit. The message
1285
+ shape is held by `buildBoardCommitMessage`'s own tests instead of by the hook. A rejected board commit is logged and the pass continues: the slots it already released and the work it already saved
1286
+ must not be undone by a bookkeeping failure.
1287
+
1288
+ ## Trigger wiring
1289
+
1290
+ `.backlog/config.yml`'s `onStatusChange` (single-quoted so YAML preserves `$TASK_ID` literally,
1291
+ letting the shell expand it):
1292
+
1293
+ ```yaml
1294
+ onStatusChange: 'mkdir -p .backlog/.dispatch; nohup npx --loglevel=error tsx scripts/backlog/dispatch.ts >> ".backlog/.dispatch/$TASK_ID.log" 2>&1 < /dev/null &'
1295
+ ```
1296
+
1297
+ The redirect APPENDS (`>>`), like the launchd launcher's. One task's log is written by every
1298
+ reconciler run that task's status transitions start — `Queued`, then the close's move out, then a
1299
+ release after `Blocked` — and a truncating `>` threw away the previous run's output each time,
1300
+ which is the output someone reading a failed dispatch needs.
1301
+
1302
+ The `mkdir -p` is what makes a FRESH CLONE work: `.backlog/.dispatch/` is gitignored, so it does not
1303
+ exist until something creates it, and `>> "..."` cannot create its own target directory — a
1304
+ redirection resolves its target BEFORE anything after it runs. That ordering is also why the
1305
+ `mkdir` is joined to `nohup` with a **semicolon, not `&&`**: `&&` makes the two commands one list,
1306
+ and `&` backgrounds the WHOLE list — its subshell then holds the caller's own stdio open for as
1307
+ long as the reconciler runs, because the shell that opened the log file for the redirection is the
1308
+ same one `&` puts in the background. A bare `;` runs `mkdir` in the FOREGROUND (near-instant, no
1309
+ redirection to open early) and only backgrounds the `nohup npx ...` command that follows —
1310
+ so `&` detaches exactly the long-running part. Measured: the `&&` shape returns in ~3s (however
1311
+ long the dispatched run takes to get its own stdio open); the `;` shape returns in ~0.01s. The
1312
+ `< /dev/null` alongside the nohup command's own `>>`/`2>&1` is what lets Backlog.md see every one
1313
+ of its pipes close AT ONCE — it holds the task lock until then — rather than waiting on stdin to be
1314
+ inherited from a caller that never closes it.
1315
+
1316
+ The `nohup ... &` is REQUIRED, not an optional optimization: Backlog.md runs this callback
1317
+ **synchronously** and blocks the caller (CLI, MCP, or web UI) until it returns. Measured: a
1318
+ detached callback returns control in ~0.13s regardless of a 30s background job; a non-detached
1319
+ one blocks for the job's full duration. Without `nohup ... &`, moving a task to `Queued` would
1320
+ freeze whoever moved it for the entire dispatched run.
1321
+
1322
+ `onStatusChange` never fires on task creation and never fires on a merge — it is a hint, not a
1323
+ guarantee. Two things cover what it misses: the `launchd` timer below (a missed or crashed
1324
+ callback), and the maintenance pass's `gh` poll (a merge that happened outside any callback).
1325
+ Every trigger runs through the identical idempotent pass, so a missed or duplicated event
1326
+ self-heals on the next one.
1327
+
1328
+ ### Anti-loop: a dispatcher-owned write must not spawn its own pass
1329
+
1330
+ Every `backlog task edit` this reconciler runs against ITSELF — `dispatch.ts`'s `realBacklog`
1331
+ (`setStatus`, `comment`) and `tickOwnedDod`'s `--check-dod` — carries `BACKLOG_DISPATCH_ACTIVE='1'`
1332
+ in its `env`, exactly like a worker's own writes through `worker-edit.ts` already do. That edit's
1333
+ `onStatusChange` callback inherits the sentinel from the `backlog` CLI child it fires from, so the
1334
+ nested `dispatch.ts` invocation it spawns can tell a dispatcher-owned write apart from a genuine
1335
+ human one.
1336
+
1337
+ `main()` checks this BEFORE resolving `BACKLOG_CWD` or running any maintenance at all
1338
+ (`entry.ts`'s `isDispatcherOwnedCallback`: `TASK_ID` and `NEW_STATUS` present, and
1339
+ `BACKLOG_DISPATCH_ACTIVE === '1'`) — logs one line and exits 0, no pass at all. This is a stronger
1340
+ guard than `shouldDispatchFromCallback`'s: that one only ever suppressed task SELECTION, while
1341
+ maintenance (including a `.backlog` git commit) ran unconditionally underneath it regardless. A
1342
+ callback with no sentinel (a human moving a task) and the launchd timer / `gh`-poll trigger (no
1343
+ `TASK_ID` at all) are unaffected and still run their normal pass.
1344
+
1345
+ Measured (2026-09-07, T-5's first real e2e run): the reconciler's own `-s In Progress` edit fired
1346
+ a nested pass with no sentinel at the time, which ran its OWN maintenance sweep — including its own
1347
+ `.backlog` git commit — concurrently with the pass that made the write and was still mid-dispatch
1348
+ in the SAME checkout; that race is what failed `git add .backlog` with exit 128, and the
1349
+ dispatcher's own edits that followed failed too. Every `backlog`/`git` collaborator this file owns
1350
+ also now captures stderr (`stdio: ['ignore', 'pipe', 'pipe']`, previously silenced) and renders it
1351
+ through `describeExecFailure` before throwing or logging — the same run left every one of those
1352
+ failures as exit 1 with `stderr: null`, so the actual cause never reached the `Blocked` comment or
1353
+ the log at all.
1354
+
1355
+ Backlog.md holds the task lock while `onStatusChange` runs; the callback detaches its stdio so it
1356
+ returns at once, and the dispatcher retries a busy-board write six times with linear backoff.
1357
+
1358
+ The sentinel is not pid-bound by design: it is an env var, not a lock tied to the process that set
1359
+ it. A human shell that exported `BACKLOG_DISPATCH_ACTIVE=1` (to silence the callback while
1360
+ debugging, say) would have every subsequent `backlog task edit` it runs — including a genuine
1361
+ status change a person made — ignored by the callback exactly like a dispatcher-owned one, with
1362
+ only one log line in that task's `<id>.log` to say why nothing dispatched.
1363
+
1364
+ ## npm scripts
1365
+
1366
+ | Script | Command | Use |
1367
+ | --- | --- | --- |
1368
+ | `backlog:dispatch` | `tsx scripts/backlog/dispatch.ts` | Run one reconciler pass manually (what every trigger ultimately invokes) |
1369
+ | `backlog:dispatch -- --release-slot <name> [--force]` | same script, one flag | Rescue a slot held for push recovery: detach it, drop its lock and clear the hold. Runs NO pass, takes the reconciler's single-flight lock while it works, and REFUSES (exit 2) a running pass or a slot with a live worker unless `--force` — see "Releasing a `Blocked` task" |
1370
+ | `backlog:watch` | `tsx scripts/backlog/watch.ts` | Tail a running attempt's log, or list busy slots — see below |
1371
+ | `test:backlog` | `node --import tsx --test "scripts/backlog/**/*.test.ts"` | Run every dispatcher unit/contract test |
1372
+
1373
+ ## Observability: `pnpm backlog:watch`
1374
+
1375
+ ```bash
1376
+ pnpm backlog:watch T-12 # tails the human-rendered run.log of T-12's current attempt
1377
+ pnpm backlog:watch # no id: lists busy slots (name, lane, taskId, pid) from slots.json
1378
+ ```
1379
+
1380
+ `watch.ts` only reads — it never writes board state, a lock, or a slot. The log it tails is the
1381
+ SAME `run.log` `attempt.ts`'s sink writes per attempt
1382
+ (`.backlog/.dispatch/<TASK_ID>/intento-<N>/run.log`), rendered through the shared `render.ts` so a
1383
+ live tail and a post-hoc read of the same file show identical lines. The attempt directory is
1384
+ created before the worker starts, so `backlog:watch` works from the first second of a run.
1385
+
1386
+ ## Installing the launchd recovery timer
1387
+
1388
+ The `onStatusChange` callback in `.backlog/config.yml` is the primary trigger; the launchd agent
1389
+ below is the recovery path for a trigger that never fires (a missed status change, a crash before
1390
+ the callback ran). Both invoke the same `scripts/backlog/dispatch.ts` entry point.
1391
+
1392
+ 1. Copy the template and replace the **three absolute paths** in the copy — the template ships this
1393
+ machine's, and launchd does not expand `~` or source a login shell's `PATH` (so no nvm shim):
1394
+
1395
+ | Where | What to put there |
1396
+ | --- | --- |
1397
+ | inside the `ProgramArguments` `/bin/sh -c` string | your `which npx` |
1398
+ | `WorkingDirectory` | your main checkout |
1399
+ | `StandardOutPath` / `StandardErrorPath` | `<your main checkout>/.backlog/.dispatch/launchd.log` |
1400
+
1401
+ Two log files, and they are not interchangeable: `launchd.log` holds the LAUNCHER's own output
1402
+ (a failing `mkdir`, a failing `nohup`), and `reconciler.log` — the `>>` redirect inside the
1403
+ `sh -c` string — holds the detached reconciler's. A single file mixed a tens-of-minutes pass into
1404
+ the launcher's one-line runs and made neither readable.
1405
+
1406
+ ```bash
1407
+ cp scripts/backlog/dev.aurora.backlog-dispatch.plist \
1408
+ ~/Library/LaunchAgents/dev.aurora.backlog-dispatch.plist
1409
+ ```
1410
+
1411
+ The command itself is `sh -c 'mkdir -p .backlog/.dispatch; nohup <npx> --loglevel=error tsx
1412
+ scripts/backlog/dispatch.ts >> .backlog/.dispatch/reconciler.log 2>&1 < /dev/null &'` — a short
1413
+ LAUNCHER that detaches the reconciler and **exits**, not the reconciler itself.
1414
+
1415
+ That is the load-bearing part. launchd tracks the pid of what it starts and will not start a
1416
+ second instance while that process is alive, and the reconciler lives as long as its worker —
1417
+ tens of minutes. Running it directly (or under `exec`, which keeps its pid as the tracked one)
1418
+ silenced the timer for the whole length of every dispatch, exactly when a `StartInterval`
1419
+ recovery pass matters most. Backgrounded, launchd sees a process that exited in milliseconds and
1420
+ is free to fire again on the next interval — the same way the `onStatusChange` callback detaches
1421
+ its own invocation.
1422
+
1423
+ Two consequences of detaching, both handled in the template: the log directory is gitignored and
1424
+ therefore absent on a fresh clone, and launchd opens `StandardOutPath` itself without creating
1425
+ missing parents — so the first run on a new machine produced no log at all, including no record
1426
+ of why, hence the `mkdir -p`; and the detached process is no longer launchd's child, so its own
1427
+ output is redirected into that same log explicitly rather than inherited. That `mkdir -p` runs
1428
+ BEFORE the `>>` opens `reconciler.log`, and is joined to `nohup` with a **semicolon, not `&&`** —
1429
+ `&&` would make `mkdir; nohup ...` one list, and `&` backgrounds the WHOLE list, so the shell that
1430
+ opened the log file stays foregrounded for as long as the reconciler runs (measured ~3s vs the
1431
+ `;` shape's ~0.01s). The `< /dev/null` alongside the nohup command's own `>>`/`2>&1` is what lets
1432
+ whoever is waiting on this callback (Backlog.md holds the task lock until then) see every one of
1433
+ its pipes close at once, instead of blocking on a stdin nothing ever closes.
1434
+ 2. The one manual prerequisite: `gh auth login` on the machine that runs the dispatcher, once. The
1435
+ dispatcher's own `gh` calls (`open-pr`'s reuse check and create, the maintenance sweep's merged-PR
1436
+ poll) deliberately run without an inherited `GITHUB_TOKEN`/`GH_TOKEN` — see "`open-pr` reuses the
1437
+ PR already on the branch" above — so that keyring login is the only credential they ever get.
1438
+ Otherwise there is no other manual setup. `.backlog/.dispatch/` is created by the `onStatusChange` callback
1439
+ and by `dispatch.ts` itself, and the three worktree slots are provisioned on demand the first time
1440
+ a task acquires one (`fetch origin --prune`, `worktree prune`, `worktree add --detach
1441
+ origin/main`, `scripts/worktree-link.sh`, `pnpm install`) — so the first dispatch into a fresh
1442
+ slot takes as long as a full install and every later one does not. The `worktree prune` is what
1443
+ makes that recovery actually work: a slot directory deleted by hand leaves git's administrative
1444
+ record of it behind, and `worktree add` then refuses the path as already registered — so the very
1445
+ state provisioning exists to recover from would otherwise block every later dispatch.
1446
+ 3. Load it:
1447
+ ```bash
1448
+ launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/dev.aurora.backlog-dispatch.plist
1449
+ ```
1450
+ 4. To stop and remove it:
1451
+ ```bash
1452
+ launchctl bootout gui/$(id -u)/dev.aurora.backlog-dispatch
1453
+ rm ~/Library/LaunchAgents/dev.aurora.backlog-dispatch.plist
1454
+ ```
1455
+
1456
+ Validate any edit to the plist before loading it: `plutil -lint dev.aurora.backlog-dispatch.plist`.
1457
+
1458
+ ## Releasing a `Blocked` task
1459
+
1460
+ `Blocked` is the only human column — the reconciler never takes a task out of it on its own. To
1461
+ release one:
1462
+
1463
+ 1. Read the `Blocked` comment: it always carries the cause and, per design.md decision (m), the
1464
+ open question written in plain language (an ambiguity, an undeclared artifact, a
1465
+ `judgment-day` ESCALATED verdict, an unanswered `needs-guidance`, a failed push, an
1466
+ exhausted attempt budget, or a permission conflict between a settings rule and one the launch
1467
+ grants — that last one names both rules and is resolved by editing one of them, not by re-queueing
1468
+ as it stands).
1469
+ 2. Answer the question in the task itself (a comment, or an edit to the task body/AC).
1470
+ 3. Move it:
1471
+ - to `Queued` — the dispatcher retries on the SAME `task/T-nn` branch, with the prior
1472
+ `Blocked` comment and any reviewer findings included in the retry's prompt on BOTH lanes (the
1473
+ frontier lane appends them to its `trabajemos <id>` entry; fresh context, same code). This is
1474
+ the right choice for a fixable failure (a red test, a scope violation, a push that failed to
1475
+ save).
1476
+ - to `To Do` — a human works it in an interactive session instead of redispatching it. Choose
1477
+ this when the question needs a person's judgment call the worker cannot make on retry (e.g.
1478
+ a genuine scope/requirement change).
1479
+
1480
+ **A slot held for push recovery needs one more step: releasing it.** When a close or a sweep could
1481
+ not PUSH the work a slot holds, the slot is marked `heldForRecovery` and kept out of the pool —
1482
+ it holds the only copy of that work, so no acquisition may reuse it. The maintenance pass retries the
1483
+ push up to `MAX_RECOVERY_ATTEMPTS` (3) times; past that it stops and hands the slot to a person, and
1484
+ the task's comment names the command that gives it back:
1485
+
1486
+ ```bash
1487
+ # After you have the branch safely on the remote
1488
+ pnpm backlog:dispatch -- --release-slot dispatch-1
1489
+ ```
1490
+
1491
+ That flag runs no dispatch pass. It detaches the slot's worktree, removes any dispatch lock the slot
1492
+ still carried, and clears `heldForRecovery`, `recoveryAttempts` and the task binding — the one
1493
+ release that clears the hold, which the ordinary release deliberately does not
1494
+ (`slots.ts`'s `releaseHeldSlotEntries`). The hand-edit it replaces is still the same thing: deleting
1495
+ `heldForRecovery` and `recoveryAttempts` from that slot in `.backlog/.dispatch/slots.json`.
1496
+
1497
+ **It runs under the reconciler's single-flight lock**, and exits **2** when a pass already holds it.
1498
+ The rescue is a read of `slots.json`, a decision, and a `git worktree detach` — the exact sequence a
1499
+ pass mutates while it selects a task and acquires a slot. Unserialized, a pass that took this slot
1500
+ between the read and the detach lost its worktree under a worker that was just starting. Waiting for
1501
+ the pass (they are short, and the lock is dropped as soon as the worker spawns) or `--force` are the
1502
+ two ways past it; `--force` proceeds without holding the lock, so it never removes the running pass's.
1503
+
1504
+ **It also refuses a slot that is genuinely busy**, and exits **2** saying so — "release this slot" and
1505
+ "kill what is running in it" are different requests, and only the first is what the flag advertises.
1506
+ A release is allowed when the slot is flagged `heldForRecovery` (the case above: the work is committed
1507
+ and only the push failed) or when the slot's task lock is absent or DEAD — no such process, or a
1508
+ heartbeat past the 10-minute TTL, the same liveness question the maintenance sweep asks. Otherwise
1509
+ detaching the worktree under a live `claude` would lose its uncommitted work, drop the lock the close
1510
+ re-reads before it runs, and hand the directory to the next dispatch. To take a running slot anyway,
1511
+ cancel the task on the board (the next maintenance pass kills the worker after saving its work), or
1512
+ pass `--force` once you have looked:
1513
+
1514
+ ```bash
1515
+ pnpm backlog:dispatch -- --release-slot dispatch-1 --force
1516
+ ```
1517
+
1518
+ Starting over from scratch (rather than retrying) means deleting the remote `task/T-nn` branch
1519
+ before moving the task back to `Queued` — otherwise the next dispatch reuses it. The attempt cap is
1520
+ `lanes.json`'s `attempts` (3 as shipped), read by guard 5 and by the close's terminal-block flag
1521
+ alike; a task `Blocked` on its last failed attempt has no automatic path back to dispatch and needs
1522
+ the human decision above regardless.
1523
+
1524
+ ## Known gotchas
1525
+
1526
+ - **A board read that half-failed is not an empty board.** `loadBoard` returns
1527
+ `{ tasks, complete }`, and `complete` is `false` when `backlog task list` failed outright or when
1528
+ any single `task view` threw and its id was dropped. The maintenance sweep infers a MANUAL
1529
+ CANCELLATION from a task's absence, so a bare empty list used to read as "a person deleted every
1530
+ task" and killed every live worker at once. With `boardComplete: false` the sweep skips the
1531
+ absence-based cancellation (a task it DID read as `Blocked`/`To Do` is still cancelled — that
1532
+ decision rests on the task's own status) and skips the parent derivation entirely, since deriving a
1533
+ parent from half its children produces a confident wrong answer. The next pass, with a readable
1534
+ board, does both. The flag survives the POST-SWEEP re-read too: `entry.ts`'s `reloadTasks` returns
1535
+ the whole `BoardLoad`, and the close's own parent derivation is skipped with a log when `complete`
1536
+ is false — it derives the same parent from the same kind of read, and a signature that returned
1537
+ only the array dropped the flag on the floor.
1538
+ - **A slot is the only place a close may touch.** `slotPathForTask` returns `null` when no slot
1539
+ holds the task, and every runner FAILS its step on that — it never falls back to the main
1540
+ checkout. It used to, and that pointed the whole close at the developer's own working tree: a
1541
+ `git add -A` plus WIP commit over work in progress, a scope diff of somebody else's changes, and a
1542
+ `gh pr create` off whatever branch happened to be checked out there.
1543
+ - **The precomputed hooks run in the SLOT but read the board from the main checkout.**
1544
+ `dispatch.ts`'s `buildHookRunners` spawns both hook scripts with the slot as `cwd` — that is where
1545
+ their rule catalogs and the injector cache belong — and with `BACKLOG_CWD=<main checkout>` plus
1546
+ `BACKLOG_DISPATCH_ACTIVE=1` in their env. `inject-prompt-context.ts` reads `BACKLOG_CWD` as its
1547
+ BOARD root (`resolveBoardRoot`): a slot's own `.backlog/` copy holds no tasks, so without it the
1548
+ hook would find no `task_prefix` and match nothing. The sentinel switches the task block's footer
1549
+ from "follow the Task Gate" to "the dispatcher already set it `In Progress`; do not change its
1550
+ state" — pointing a headless worker at an interactive gate invites exactly the status write the
1551
+ close then fails it for. **That block is a FRONTIER-lane thing**, and only there: the frontier
1552
+ worker's real prompt is `trabajemos <id>`, so the hook matches it and the block is the task text
1553
+ that worker gets. The local lane's precompute deliberately names NO id
1554
+ (`prompt.ts`'s `buildHookPromptText` passes the bounded context and the declared files, which is
1555
+ all the BR/HR/skill blocks need to resolve): block 1 of the executor envelope already carries the
1556
+ whole task view verbatim, so an injected second copy meant the weakest executor read its task
1557
+ twice, in two formats, one of them describing a gate it has no business walking. The env pair
1558
+ still travels on both lanes — it is what the hook is entitled to, and the moment anything names an
1559
+ id again the block must resolve against the real board and read as dispatched.
1560
+ - **`.claude/.cache/br-injected.json` must be reset per dispatched attempt.** The
1561
+ `business-rules-injector.ts` PreToolUse hook tracks already-injected rule IDs across
1562
+ invocations outside a real interactive session (there is no `SessionStart` to wipe it for a
1563
+ headless run). Without resetting this file before each dispatched attempt, a rule injected for
1564
+ a PREVIOUS task on the same lockfile-shared slot silently fails to surface for the next one —
1565
+ the hook prompt-precompute step (`prompt.ts`) deletes/resets it before assembling a fresh
1566
+ prompt.
1567
+ - **`--max-budget-usd` stops at turn boundaries, not mid-generation.** It is a hard stop
1568
+ (`is_error:true`, `subtype:"error_max_budget_usd"`), never a warning, but the turn already in
1569
+ flight always completes first — real spend can overshoot the configured cap, sometimes on the
1570
+ very first turn. Treat it as a coarse safety net layered on top of `--max-turns`, never as a
1571
+ precise or sole stop mechanism.
1572
+ - **`maxBudgetUsd` compares an ESTIMATE against a cap, and on a subscription login nothing is
1573
+ billed per token.** `--max-budget-usd` cuts a worker off when Claude Code's own cost ESTIMATE
1574
+ crosses the configured number — measured (T-3, 2026-09-07): this machine's local-lane run
1575
+ printed `cost=$2.40` for a run nothing actually billed. `lanes.json`'s `maxBudgetUsd` is
1576
+ therefore OPTIONAL on the frontier lane: set a number when the machine authenticates with an API
1577
+ key and you want a hard dollar stop; omit it on a subscription login, where the estimate is not
1578
+ billed and the cap only truncates legitimate work. `maxTurns` and `timeoutMinutes` are the guards
1579
+ that always apply, on either kind of login.
1580
+ - **A slot never keeps a task branch checked out.** EVERY release goes through
1581
+ `slots.ts`'s `releaseSlotAndDetach` (or, in the maintenance sweep, its `git.detachSlot`
1582
+ collaborator), which runs `git checkout --detach` before clearing the registry entry: the close's
1583
+ own release, the abort path, the branch-in-use handback, the dead-lock sweep, the orphan sweep,
1584
+ the cancellation, the recovered push. Git refuses to check the same branch out in two worktrees,
1585
+ so a slot released while still sitting on `task/T-12` made EVERY later dispatch of T-12 refuse
1586
+ with `branch-in-use` — and since a pass dispatches one task at a time, the whole queue starved
1587
+ behind it. `prepareSlot` also checks out with `-B` rather than `-b`, so a leftover local branch
1588
+ cannot fail the checkout either. If a branch IS still held elsewhere when a task is selected, the
1589
+ pass hands the slot back (detaching it) and leaves the task `Queued` rather than failing — the
1590
+ next pass retries.
1591
+ - **Work is branched and diffed against `origin/…`, never a local ref.** A reusable slot's local
1592
+ `main` is whatever its last fetch left behind. Branching new work off it silently reintroduces
1593
+ days-old code, and diffing an attempt against it reports files nobody in this task touched.
1594
+ - **`Write(<glob>)` path-scoped permission rules are unverified.** `Edit(<glob>)` (e.g.
1595
+ `Edit(allowed/**)`) is confirmed to scope correctly — a denied edit outside the glob is recorded
1596
+ in `permission_denials` with the file path. The equivalent `Write(<glob>)` rule was never
1597
+ exercised in the Phase 1 spike (the local model never attempted a `Write` tool call at all under
1598
+ that rule), so it is unverified, not confirmed broken — re-verify with a stronger model before
1599
+ relying on it to gate new-file creation. It now carries the frontier lane too, whose `allow`
1600
+ grants the same `Write(./**)`; the close's scope check and `SLOT_EXECUTED_PATHS` are the barriers
1601
+ that do not depend on it.