@postxl/generators 1.12.2 → 1.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/dist/backend-ai/ai.generator.d.ts +18 -0
  2. package/dist/backend-ai/ai.generator.js +174 -0
  3. package/dist/backend-ai/ai.generator.js.map +1 -0
  4. package/dist/backend-ai/generators/ai-agent-service.generator.d.ts +4 -0
  5. package/dist/backend-ai/generators/ai-agent-service.generator.js +264 -0
  6. package/dist/backend-ai/generators/ai-agent-service.generator.js.map +1 -0
  7. package/dist/backend-ai/generators/ai-cache-service.generator.d.ts +1 -0
  8. package/dist/backend-ai/generators/ai-cache-service.generator.js +110 -0
  9. package/dist/backend-ai/generators/ai-cache-service.generator.js.map +1 -0
  10. package/dist/backend-ai/generators/ai-config.generator.d.ts +1 -0
  11. package/dist/backend-ai/generators/ai-config.generator.js +27 -0
  12. package/dist/backend-ai/generators/ai-config.generator.js.map +1 -0
  13. package/dist/backend-ai/generators/ai-module.generator.d.ts +2 -0
  14. package/dist/backend-ai/generators/ai-module.generator.js +89 -0
  15. package/dist/backend-ai/generators/ai-module.generator.js.map +1 -0
  16. package/dist/backend-ai/generators/ai-route.generator.d.ts +1 -0
  17. package/dist/backend-ai/generators/ai-route.generator.js +29 -0
  18. package/dist/backend-ai/generators/ai-route.generator.js.map +1 -0
  19. package/dist/backend-ai/generators/ai-tools-service.generator.d.ts +4 -0
  20. package/dist/backend-ai/generators/ai-tools-service.generator.js +222 -0
  21. package/dist/backend-ai/generators/ai-tools-service.generator.js.map +1 -0
  22. package/dist/backend-ai/generators/model-provider-interface.generator.d.ts +1 -0
  23. package/dist/backend-ai/generators/model-provider-interface.generator.js +48 -0
  24. package/dist/backend-ai/generators/model-provider-interface.generator.js.map +1 -0
  25. package/dist/backend-ai/generators/openai-model-provider-service.generator.d.ts +1 -0
  26. package/dist/backend-ai/generators/openai-model-provider-service.generator.js +128 -0
  27. package/dist/backend-ai/generators/openai-model-provider-service.generator.js.map +1 -0
  28. package/dist/backend-ai/index.d.ts +4 -0
  29. package/dist/backend-ai/index.js +40 -0
  30. package/dist/backend-ai/index.js.map +1 -0
  31. package/dist/backend-core/generators/main.generator.js +4 -3
  32. package/dist/backend-core/generators/main.generator.js.map +1 -1
  33. package/dist/backend-e2e/backend-e2e.generator.js +4 -4
  34. package/dist/backend-e2e/backend-e2e.generator.js.map +1 -1
  35. package/dist/backend-import/generators/detect-delta/detect-delta-functions.generator.js +1 -1
  36. package/dist/backend-router-trpc/generators/app-routes.generator.js +3 -1
  37. package/dist/backend-router-trpc/generators/app-routes.generator.js.map +1 -1
  38. package/dist/backend-router-trpc/generators/trpc-plugin.generator.js +3 -0
  39. package/dist/backend-router-trpc/generators/trpc-plugin.generator.js.map +1 -1
  40. package/dist/backend-router-trpc/generators/trpc-router-module.generator.js +2 -1
  41. package/dist/backend-router-trpc/generators/trpc-router-module.generator.js.map +1 -1
  42. package/dist/backend-router-trpc/generators/trpc-shared.generator.js +7 -1
  43. package/dist/backend-router-trpc/generators/trpc-shared.generator.js.map +1 -1
  44. package/dist/backend-router-trpc/router-trpc.generator.d.ts +2 -1
  45. package/dist/backend-router-trpc/router-trpc.generator.js +2 -0
  46. package/dist/backend-router-trpc/router-trpc.generator.js.map +1 -1
  47. package/dist/backend-seed/seed.generator.js +10 -1
  48. package/dist/backend-seed/seed.generator.js.map +1 -1
  49. package/dist/base/template/scripts/setup.sh +9 -4
  50. package/dist/base/template/sonar-project.properties +9 -1
  51. package/dist/devops/generators/bitbucket-pipelines-yml.generator.js +1 -0
  52. package/dist/devops/generators/bitbucket-pipelines-yml.generator.js.map +1 -1
  53. package/dist/devops/generators/e2e-yml.generator.js +35 -10
  54. package/dist/devops/generators/e2e-yml.generator.js.map +1 -1
  55. package/dist/devops/generators/jenkinsfile.generator.js +25 -1
  56. package/dist/devops/generators/jenkinsfile.generator.js.map +1 -1
  57. package/dist/e2e/template/e2e/specs/example.spec.ts-snapshots/Navigate-to-homepage-and-take-snapshot-1-chromium-linux.png +0 -0
  58. package/dist/frontend-actions/actions.generator.d.ts +9 -0
  59. package/dist/frontend-actions/actions.generator.js +111 -0
  60. package/dist/frontend-actions/actions.generator.js.map +1 -0
  61. package/dist/frontend-actions/generators/ai-action-text.utils.generator.d.ts +1 -0
  62. package/dist/frontend-actions/generators/ai-action-text.utils.generator.js +52 -0
  63. package/dist/frontend-actions/generators/ai-action-text.utils.generator.js.map +1 -0
  64. package/dist/frontend-actions/generators/ai-assistant-store.generator.d.ts +1 -0
  65. package/dist/frontend-actions/generators/ai-assistant-store.generator.js +230 -0
  66. package/dist/frontend-actions/generators/ai-assistant-store.generator.js.map +1 -0
  67. package/dist/frontend-actions/generators/ai-sidebar-content.generator.d.ts +1 -0
  68. package/dist/frontend-actions/generators/ai-sidebar-content.generator.js +139 -0
  69. package/dist/frontend-actions/generators/ai-sidebar-content.generator.js.map +1 -0
  70. package/dist/frontend-actions/generators/ai-sidepane.generator.d.ts +1 -0
  71. package/dist/frontend-actions/generators/ai-sidepane.generator.js +98 -0
  72. package/dist/frontend-actions/generators/ai-sidepane.generator.js.map +1 -0
  73. package/dist/frontend-actions/generators/base-global-actions.generator.d.ts +1 -0
  74. package/dist/frontend-actions/generators/base-global-actions.generator.js +405 -0
  75. package/dist/frontend-actions/generators/base-global-actions.generator.js.map +1 -0
  76. package/dist/frontend-actions/generators/command-palette-action.generator.d.ts +1 -0
  77. package/dist/frontend-actions/generators/command-palette-action.generator.js +87 -0
  78. package/dist/frontend-actions/generators/command-palette-action.generator.js.map +1 -0
  79. package/dist/frontend-actions/generators/command-palette-store.generator.d.ts +1 -0
  80. package/dist/frontend-actions/generators/command-palette-store.generator.js +288 -0
  81. package/dist/frontend-actions/generators/command-palette-store.generator.js.map +1 -0
  82. package/dist/frontend-actions/generators/command-palette.generator.d.ts +5 -0
  83. package/dist/frontend-actions/generators/command-palette.generator.js +332 -0
  84. package/dist/frontend-actions/generators/command-palette.generator.js.map +1 -0
  85. package/dist/frontend-actions/generators/filter-utils.generator.d.ts +1 -0
  86. package/dist/frontend-actions/generators/filter-utils.generator.js +50 -0
  87. package/dist/frontend-actions/generators/filter-utils.generator.js.map +1 -0
  88. package/dist/frontend-actions/generators/sidepanel-toggle.generator.d.ts +1 -0
  89. package/dist/frontend-actions/generators/sidepanel-toggle.generator.js +37 -0
  90. package/dist/frontend-actions/generators/sidepanel-toggle.generator.js.map +1 -0
  91. package/dist/frontend-actions/index.d.ts +4 -0
  92. package/dist/frontend-actions/index.js +40 -0
  93. package/dist/frontend-actions/index.js.map +1 -0
  94. package/dist/frontend-admin/admin.generator.d.ts +3 -1
  95. package/dist/frontend-admin/admin.generator.js +8 -1
  96. package/dist/frontend-admin/admin.generator.js.map +1 -1
  97. package/dist/frontend-admin/generators/admin-global-actions.generator.d.ts +4 -0
  98. package/dist/frontend-admin/generators/admin-global-actions.generator.js +152 -0
  99. package/dist/frontend-admin/generators/admin-global-actions.generator.js.map +1 -0
  100. package/dist/frontend-admin/generators/comment-sidebar.generator.js +5 -3
  101. package/dist/frontend-admin/generators/comment-sidebar.generator.js.map +1 -1
  102. package/dist/frontend-admin/generators/detail-sidebar.generator.js +40 -24
  103. package/dist/frontend-admin/generators/detail-sidebar.generator.js.map +1 -1
  104. package/dist/frontend-admin/generators/model-admin-page.generator.js +172 -11
  105. package/dist/frontend-admin/generators/model-admin-page.generator.js.map +1 -1
  106. package/dist/frontend-admin/utils.d.ts +1 -0
  107. package/dist/frontend-admin/utils.js +1 -0
  108. package/dist/frontend-admin/utils.js.map +1 -1
  109. package/dist/frontend-core/generators/tsconfig.generator.js +1 -0
  110. package/dist/frontend-core/generators/tsconfig.generator.js.map +1 -1
  111. package/dist/frontend-core/template/.env.example +3 -0
  112. package/dist/frontend-core/template/src/components/admin/table-view-panel.tsx +22 -4
  113. package/dist/frontend-core/template/src/components/ui/color-mode-toggle/color-mode-toggle.tsx +1 -1
  114. package/dist/frontend-core/template/src/lib/color.ts +6 -3
  115. package/dist/frontend-core/template/src/lib/config.ts +3 -1
  116. package/dist/frontend-tables/generators/model-table.generator.js +13 -0
  117. package/dist/frontend-tables/generators/model-table.generator.js.map +1 -1
  118. package/dist/generators.js +4 -0
  119. package/dist/generators.js.map +1 -1
  120. package/dist/index.d.ts +2 -0
  121. package/dist/index.js +8 -2
  122. package/dist/index.js.map +1 -1
  123. package/dist/types/template/ai.types.ts +34 -0
  124. package/dist/types/types.generator.js +1 -0
  125. package/dist/types/types.generator.js.map +1 -1
  126. package/package.json +4 -4
@@ -600,7 +600,7 @@ export async function ${detectDelta._utils.validation.uniqueField.name}<
600
600
  return undefined
601
601
  }
602
602
  const existingItem = await getExistingItem(value)
603
- if (existingItem) {
603
+ if (existingItem && existingItem.id !== item.id) {
604
604
  return { error: '${errors.nonUnique.discriminant}', fieldName, value }
605
605
  }
606
606
  return undefined
@@ -40,9 +40,11 @@ function generateAppRoutes({ context }) {
40
40
  //
41
41
  .from(context.trpcRouter.appRoutes._filePath)
42
42
  .add({ name: context.trpcRouter._shared.router.name, location: context.trpcRouter._shared._filePath })
43
- .add({ name: context.trpcRouter.auditLogRoute.name, location: context.trpcRouter.auditLogRoute._filePath });
43
+ .add({ name: context.trpcRouter.auditLogRoute.name, location: context.trpcRouter.auditLogRoute._filePath })
44
+ .add({ name: context.ai.route.name, location: context.ai.route.location });
44
45
  const entries = [
45
46
  `viewer: viewer`,
47
+ ` ${context.ai.route.name}: ${context.ai.route.name}`,
46
48
  ` ${context.trpcRouter.auditLogRoute.name}: ${context.trpcRouter.auditLogRoute.name}`,
47
49
  ];
48
50
  for (const model of context.models.values()) {
@@ -1 +1 @@
1
- {"version":3,"file":"app-routes.generator.js","sourceRoot":"","sources":["../../../src/backend-router-trpc/generators/app-routes.generator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,8CAoCC;AAxCD,6DAA8C;AAI9C,SAAgB,iBAAiB,CAAC,EAAE,OAAO,EAA8B;IACvE,MAAM,OAAO,GAAG,SAAS,CAAC,eAAe;QACvC,EAAE;SACD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC;SAC5C,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;SACrG,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,CAAA;IAE7G,MAAM,OAAO,GAAa;QACxB,gBAAgB;QAChB,KAAK,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,KAAK,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE;KACvF,CAAA;IACD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAA;QAChF,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAA;IACpE,CAAC;IACD,OAAO,QAAQ,CAAC;;;EAGhB,OAAO,CAAC,QAAQ,EAAE;;;IAGhB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;;;;;;;eAOR,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI;;;;;cAK9E,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,aAAa,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI;;GAE/F,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"app-routes.generator.js","sourceRoot":"","sources":["../../../src/backend-router-trpc/generators/app-routes.generator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,8CAsCC;AA1CD,6DAA8C;AAI9C,SAAgB,iBAAiB,CAAC,EAAE,OAAO,EAA8B;IACvE,MAAM,OAAO,GAAG,SAAS,CAAC,eAAe;QACvC,EAAE;SACD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC;SAC5C,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;SACrG,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;SAC1G,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;IAE5E,MAAM,OAAO,GAAa;QACxB,gBAAgB;QAChB,KAAK,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE;QACtD,KAAK,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,KAAK,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE;KACvF,CAAA;IACD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAA;QAChF,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAA;IACpE,CAAC;IACD,OAAO,QAAQ,CAAC;;;EAGhB,OAAO,CAAC,QAAQ,EAAE;;;IAGhB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;;;;;;;eAOR,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI;;;;;cAK9E,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,aAAa,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI;;GAE/F,CAAA;AACH,CAAC"}
@@ -40,6 +40,7 @@ function generateTrpc(context) {
40
40
  //
41
41
  .from(context.trpcRouter.plugin._filePath)
42
42
  .add(context.actions.dispatcher)
43
+ .add(context.ai.agentService)
43
44
  .add(context.authentication.service)
44
45
  .add(context.authentication.types.userInfo)
45
46
  .add(context.authentication.types.userRoles)
@@ -66,6 +67,7 @@ export class ${context.trpcRouter.plugin.name} {
66
67
  private readonly viewService: ${context.view.service.name},
67
68
  private readonly authService: ${context.authentication.service.name},
68
69
  private readonly dispatcherService: ${context.actions.dispatcher.name},
70
+ private readonly aiAgentService: ${context.ai.agentService.name},
69
71
  ) {}
70
72
 
71
73
  public async register(app: NestFastifyApplication, config: { urlPrefix: string}) {
@@ -127,6 +129,7 @@ export class ${context.trpcRouter.plugin.name} {
127
129
  auth: this.authService,
128
130
  view: this.viewService,
129
131
  dispatcher: this.dispatcherService,
132
+ aiAgent: this.aiAgentService,
130
133
  }
131
134
  },
132
135
  onError: (err: { error: Error }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"trpc-plugin.generator.js","sourceRoot":"","sources":["../../../src/backend-router-trpc/generators/trpc-plugin.generator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,oCAuGC;AA3GD,6DAA8C;AAI9C,SAAgB,YAAY,CAAC,OAAsB;IACjD,MAAM,OAAO,GAAG,SAAS,CAAC,eAAe;QACvC,EAAE;SACD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC;SACzC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;SAC/B,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC;SACnC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC;SAC1C,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC;SAC3C,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;SACvB,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;SACzB,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;SAClG,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;IAEzG,OAAO,QAAQ,CAAC;;;;;EAKhB,OAAO,CAAC,QAAQ,EAAE;;;WAGT,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI;;;;;eAK1B,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI;yCACJ,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI;;oCAEnC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI;oCACzB,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI;0CAC7B,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI;;;;;;;kBAOvD,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI;oFACiC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI;;;+FAG5B,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4DrI,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"trpc-plugin.generator.js","sourceRoot":"","sources":["../../../src/backend-router-trpc/generators/trpc-plugin.generator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,oCA0GC;AA9GD,6DAA8C;AAI9C,SAAgB,YAAY,CAAC,OAAsB;IACjD,MAAM,OAAO,GAAG,SAAS,CAAC,eAAe;QACvC,EAAE;SACD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC;SACzC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;SAC/B,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC;SAC5B,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC;SACnC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC;SAC1C,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC;SAC3C,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;SACvB,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;SACzB,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;SAClG,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;IAEzG,OAAO,QAAQ,CAAC;;;;;EAKhB,OAAO,CAAC,QAAQ,EAAE;;;WAGT,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI;;;;;eAK1B,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI;yCACJ,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI;;oCAEnC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI;oCACzB,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI;0CAC7B,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI;uCAClC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI;;;;;;;kBAOjD,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI;oFACiC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI;;;+FAG5B,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6DrI,CAAA;AACF,CAAC"}
@@ -40,6 +40,7 @@ function generateTrpcRouterModule(context) {
40
40
  imports
41
41
  //
42
42
  .add(context.actions.module)
43
+ .add(context.ai.module)
43
44
  .add(context.authentication.module)
44
45
  .add(context.view.module)
45
46
  .add(context.trpcRouter.plugin);
@@ -50,7 +51,7 @@ ${imports.generate()}
50
51
 
51
52
 
52
53
  @Module({
53
- imports: [${context.actions.module.name}, ${context.authentication.module.name}, ${context.view.module.name}],
54
+ imports: [${context.actions.module.name}, ${context.ai.module.name}, ${context.authentication.module.name}, ${context.view.module.name}],
54
55
  providers: [${context.trpcRouter.plugin.name}],
55
56
  exports: [${context.trpcRouter.plugin.name}],
56
57
  })
@@ -1 +1 @@
1
- {"version":3,"file":"trpc-router-module.generator.js","sourceRoot":"","sources":["../../../src/backend-router-trpc/generators/trpc-router-module.generator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,4DAuBC;AA3BD,6DAA8C;AAI9C,SAAgB,wBAAwB,CAAC,OAAsB;IAC7D,MAAM,OAAO,GAAG,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAElF,OAAO;QACL,EAAE;SACD,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;SAC3B,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC;SAClC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;SACxB,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IAEjC,OAAO,QAAQ,CAAC;;;EAGhB,OAAO,CAAC,QAAQ,EAAE;;;;cAIN,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;gBAC7F,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI;cAChC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI;;eAE7B,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI;CAC5C,CAAA;AACD,CAAC"}
1
+ {"version":3,"file":"trpc-router-module.generator.js","sourceRoot":"","sources":["../../../src/backend-router-trpc/generators/trpc-router-module.generator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,4DAwBC;AA5BD,6DAA8C;AAI9C,SAAgB,wBAAwB,CAAC,OAAsB;IAC7D,MAAM,OAAO,GAAG,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAElF,OAAO;QACL,EAAE;SACD,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;SAC3B,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC;SACtB,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC;SAClC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;SACxB,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IAEjC,OAAO,QAAQ,CAAC;;;EAGhB,OAAO,CAAC,QAAQ,EAAE;;;;cAIN,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;gBACxH,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI;cAChC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI;;eAE7B,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI;CAC5C,CAAA;AACD,CAAC"}
@@ -38,6 +38,7 @@ const Generator = __importStar(require("@postxl/generator"));
38
38
  function generateTrpcShared(context) {
39
39
  const imports = Generator.ImportGenerator.from(context.trpcRouter._shared._filePath)
40
40
  .add(context.actions.dispatcher)
41
+ .add(context.ai.agentService)
41
42
  .add(context.authentication.types.userInfo)
42
43
  .add(context.authentication.types.userRoles)
43
44
  .add(context.authentication.service)
@@ -102,7 +103,12 @@ export type ${context.trpcRouter._shared.context.name} = {
102
103
  /**
103
104
  * Dispatcher service to dispatch actions
104
105
  */
105
- dispatcher: ${context.actions.dispatcher.name}
106
+ dispatcher: ${context.actions.dispatcher.name}
107
+
108
+ /**
109
+ * AI agent service that executes assistant sessions.
110
+ */
111
+ aiAgent: ${context.ai.agentService.name}
106
112
  }
107
113
 
108
114
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"trpc-shared.generator.js","sourceRoot":"","sources":["../../../src/backend-router-trpc/generators/trpc-shared.generator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,gDAgGC;AApGD,6DAA8C;AAI9C,SAAgB,kBAAkB,CAAC,OAAsB;IACvD,MAAM,OAAO,GAAG,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC;SACjF,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;SAC/B,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC;SAC1C,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC;SAC3C,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC;SACnC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;SACvB,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAE5B,OAAO,QAAQ,CAAC;;;;;;;;;;EAUhB,OAAO,CAAC,QAAQ,EAAE;;;;;cAKN,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI;;;;;;;;;;;;;eAatC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI;;;;;gBAKzC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI;;;;;WAKhD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;;;;;;;;;;;SAWzB,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI;;;;;SAKnC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI;;;;;eAKnB,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI;;;;wFAI0C,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI;OACvH,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,YAAY,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI;;6BAEzE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI;;;;;WAKzD,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI;;;eAGlC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI;;;WAG1C,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI;;eAErC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI;;;mCAGrB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI;;eAE9D,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI;;CAExD,CAAA;AACD,CAAC"}
1
+ {"version":3,"file":"trpc-shared.generator.js","sourceRoot":"","sources":["../../../src/backend-router-trpc/generators/trpc-shared.generator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,gDAsGC;AA1GD,6DAA8C;AAI9C,SAAgB,kBAAkB,CAAC,OAAsB;IACvD,MAAM,OAAO,GAAG,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC;SACjF,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;SAC/B,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC;SAC5B,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC;SAC1C,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC;SAC3C,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC;SACnC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;SACvB,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAE5B,OAAO,QAAQ,CAAC;;;;;;;;;;EAUhB,OAAO,CAAC,QAAQ,EAAE;;;;;cAKN,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI;;;;;;;;;;;;;eAatC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI;;;;;gBAKzC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI;;;;;WAKhD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;;;;;;;;;;;SAWzB,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI;;;;;SAKnC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI;;;;;cAKpB,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI;;;;;YAKjC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI;;;;wFAIgD,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI;OACvH,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,YAAY,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI;;6BAEzE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI;;;;;WAKzD,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI;;;eAGlC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI;;;WAG1C,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI;;eAErC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI;;;mCAGrB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI;;eAE9D,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI;;CAExD,CAAA;AACD,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import * as Generator from '@postxl/generator';
2
2
  import { WithActions } from '../backend-actions';
3
+ import { WithBackendAi } from '../backend-ai';
3
4
  import { WithBackendAuthentication } from '../backend-authentication';
4
5
  import { WithBackend } from '../backend-core';
5
6
  import { WithRepositories } from '../backend-repositories';
@@ -8,7 +9,7 @@ import { WithView } from '../backend-view';
8
9
  import { WithBase } from '../base';
9
10
  import { WithDecoders } from '../decoders';
10
11
  import { WithTypes } from '../types';
11
- type ContextRequirements = WithBackendAuthentication<WithUpdates<WithView<WithRepositories<WithActions<WithDecoders<WithTypes<WithBackend<WithBase<Generator.Context>>>>>>>>>;
12
+ type ContextRequirements = WithBackendAuthentication<WithBackendAi<WithUpdates<WithView<WithRepositories<WithActions<WithDecoders<WithTypes<WithBackend<WithBase<Generator.Context>>>>>>>>>>;
12
13
  export type ContextResult = WithTrpcRouter<ContextRequirements>;
13
14
  export type ModelContextResult = Generator.InferModelContext<ContextResult>;
14
15
  export type WithTrpcRouter<Context> = Generator.ExtendContextAndModel<Context, {
@@ -37,6 +37,7 @@ exports.generator = exports.generatorId = void 0;
37
37
  const node_path_1 = require("node:path");
38
38
  const Generator = __importStar(require("@postxl/generator"));
39
39
  const backend_actions_1 = require("../backend-actions");
40
+ const backend_ai_1 = require("../backend-ai");
40
41
  const backend_authentication_1 = require("../backend-authentication");
41
42
  const backend_core_1 = require("../backend-core");
42
43
  const backend_repositories_1 = require("../backend-repositories");
@@ -67,6 +68,7 @@ exports.generator = {
67
68
  backend_view_1.backendViewGeneratorId,
68
69
  backend_update_1.backendUpdateGeneratorId,
69
70
  backend_authentication_1.backendAuthenticationGeneratorId,
71
+ backend_ai_1.backendAiGeneratorId,
70
72
  ],
71
73
  register: (context) => {
72
74
  const moduleName = Generator.toBackendModuleName('router-trpc');
@@ -1 +1 @@
1
- {"version":3,"file":"router-trpc.generator.js","sourceRoot":"","sources":["../../src/backend-router-trpc/router-trpc.generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router-trpc.generator.js","sourceRoot":"","sources":["../../src/backend-router-trpc/router-trpc.generator.ts"],"names":[],"mappings":"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"}
@@ -68,7 +68,16 @@ exports.generator = {
68
68
  code: Generator.ts(`
69
69
  // Executing seeding and initialize data
70
70
  const seedService = app.get(SeedService)
71
- await seedService.seed()
71
+ try {
72
+ await seedService.seed()
73
+ } catch (error) {
74
+ if (config.data.test.isTest) {
75
+ logger.warn('Seeding failed in test mode, continuing without seed data')
76
+ logger.warn(error instanceof Error ? error.message : String(error))
77
+ } else {
78
+ throw error
79
+ }
80
+ }
72
81
  `),
73
82
  },
74
83
  };
@@ -1 +1 @@
1
- {"version":3,"file":"seed.generator.js","sourceRoot":"","sources":["../../src/backend-seed/seed.generator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAmC;AAEnC,6DAA8C;AAE9C,wDAA2E;AAC3E,kDAA+G;AAC/G,sDAA+E;AAC/E,kEAA0F;AAC1F,kCAAmD;AAGnD,8EAAuE;AACvE,gFAAyE;AAY5D,QAAA,WAAW,GAAG,SAAS,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAA;AAE9D,QAAA,SAAS,GAAiC;IACrD,EAAE,EAAE,mBAAW;IACf,QAAQ,EAAE;QACR,iCAAkB;QAClB,sBAAe;QACf,2CAAyB;QACzB,6CAA8B;QAC9B,qDAA8B;QAC9B,yCAAwB;KACzB;IAED,QAAQ,EAAE,CAAsC,OAAgB,EAAiB,EAAE;QACjF,MAAM,MAAM,GAA8B;YACxC,IAAI,EAAE,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC;YACzC,QAAQ,EAAE,SAAS,CAAC,uBAAuB,CAAC,mBAAmB,CAAC;SACjE,CAAA;QAED,MAAM,UAAU,GAAiB;YAC/B,IAAI,EAAE,SAAS,CAAC,mBAAmB,CAAC,MAAM,CAAC;YAC3C,WAAW,EAAE,MAAM;YACnB,SAAS,EAAE;gBACT,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;2DAC8B,CAAC;gBACpD,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;;;;WAIhB,CAAC;aACL;SACF,CAAA;QACD,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACxC,MAAM,OAAO,GAA8B;YACzC,IAAI,EAAE,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC;YAC1C,QAAQ,EAAE,SAAS,CAAC,uBAAuB,CAAC,oBAAoB,CAAC;SAClE,CAAA;QAED,MAAM,IAAI,GAAuB,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;QACpD,OAAO,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,CAAA;IAC7B,CAAC;IAED,QAAQ,EAAE,KAAK,EAAiC,OAAgB,EAAoB,EAAE;QACpF,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,iBAAiB,EAAE,CAAA;QAChD,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAA,4CAAmB,EAAC,OAAO,CAAC,CAAC,CAAA;QACvF,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAA,0CAAkB,EAAC,OAAO,CAAC,CAAC,CAAA;QAErF,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,iBAAiB,EAAE,CAAA;QAC7C,GAAG,CAAC,aAAa,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAA;QAErD,MAAM,GAAG,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAA,mBAAO,EAAC,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC,CAAA;QAEpE,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAA;QACnE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,UAAU,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAA;QAEnE,OAAO,OAAO,CAAA;IAChB,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"seed.generator.js","sourceRoot":"","sources":["../../src/backend-seed/seed.generator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAmC;AAEnC,6DAA8C;AAE9C,wDAA2E;AAC3E,kDAA+G;AAC/G,sDAA+E;AAC/E,kEAA0F;AAC1F,kCAAmD;AAGnD,8EAAuE;AACvE,gFAAyE;AAY5D,QAAA,WAAW,GAAG,SAAS,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAA;AAE9D,QAAA,SAAS,GAAiC;IACrD,EAAE,EAAE,mBAAW;IACf,QAAQ,EAAE;QACR,iCAAkB;QAClB,sBAAe;QACf,2CAAyB;QACzB,6CAA8B;QAC9B,qDAA8B;QAC9B,yCAAwB;KACzB;IAED,QAAQ,EAAE,CAAsC,OAAgB,EAAiB,EAAE;QACjF,MAAM,MAAM,GAA8B;YACxC,IAAI,EAAE,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC;YACzC,QAAQ,EAAE,SAAS,CAAC,uBAAuB,CAAC,mBAAmB,CAAC;SACjE,CAAA;QAED,MAAM,UAAU,GAAiB;YAC/B,IAAI,EAAE,SAAS,CAAC,mBAAmB,CAAC,MAAM,CAAC;YAC3C,WAAW,EAAE,MAAM;YACnB,SAAS,EAAE;gBACT,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;2DAC8B,CAAC;gBACpD,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;;;;;;;;;;;;;WAahB,CAAC;aACL;SACF,CAAA;QACD,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACxC,MAAM,OAAO,GAA8B;YACzC,IAAI,EAAE,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC;YAC1C,QAAQ,EAAE,SAAS,CAAC,uBAAuB,CAAC,oBAAoB,CAAC;SAClE,CAAA;QAED,MAAM,IAAI,GAAuB,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;QACpD,OAAO,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,CAAA;IAC7B,CAAC;IAED,QAAQ,EAAE,KAAK,EAAiC,OAAgB,EAAoB,EAAE;QACpF,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,iBAAiB,EAAE,CAAA;QAChD,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAA,4CAAmB,EAAC,OAAO,CAAC,CAAC,CAAA;QACvF,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAA,0CAAkB,EAAC,OAAO,CAAC,CAAC,CAAA;QAErF,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,iBAAiB,EAAE,CAAA;QAC7C,GAAG,CAAC,aAAa,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAA;QAErD,MAAM,GAAG,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAA,mBAAO,EAAC,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC,CAAA;QAEpE,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAA;QACnE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,UAAU,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAA;QAEnE,OAAO,OAAO,CAAA;IAChB,CAAC;CACF,CAAA"}
@@ -1,8 +1,13 @@
1
1
  #!/bin/bash
2
+ set -euo pipefail
2
3
 
3
- # Install all packages
4
- echo "📦 Installing packages..."
5
- pnpm i
4
+ # Install all packages unless explicitly skipped (e.g. CI already installed workspace deps).
5
+ if [[ "${SKIP_INSTALL:-false}" != "true" ]]; then
6
+ echo "📦 Installing packages..."
7
+ pnpm i
8
+ else
9
+ echo "⏭️ Skipping package install (SKIP_INSTALL=true)."
10
+ fi
6
11
 
7
12
  # Copy the .env.example file to .env if it doesn't exist and replace the TURBO_TOKEN with the user's token
8
13
  if [[ ! -f .env ]]; then
@@ -22,4 +27,4 @@ if [[ ! -f frontend/.env ]]; then
22
27
  cp frontend/.env.example frontend/.env
23
28
  fi
24
29
 
25
- echo "🚀 Done!"
30
+ echo "🚀 Done!"
@@ -90,7 +90,7 @@ sonar.cpd.exclusions=\
90
90
  **/*.spec.ts, **/*.spec.js, **/*.spec.tsx, \
91
91
  **/*.test.js, **/*.test.ts, **/*.test.tsx
92
92
 
93
- sonar.issue.ignore.multicriteria=e1,e3,e4,e5,e6a,e6b,e7
93
+ sonar.issue.ignore.multicriteria=e1,e3,e4,e5,e6a,e6b,e7,e9a,e9b
94
94
 
95
95
  # Ignore rule typescript:S2301 (https://sonarcloud.io/organizations/postxl/rules?open=typescript%3AS2301&rule_key=typescript%3AS2301)
96
96
  # The rule states that "Methods should not contain selector parameters", e.g.
@@ -130,3 +130,11 @@ sonar.issue.ignore.multicriteria.e6b.resourceKey=frontend/**/*.ts
130
130
  # // NOSONAR comments cannot be used there due to Prettier formatting.
131
131
  sonar.issue.ignore.multicriteria.e7.ruleKey=typescript:S7738
132
132
  sonar.issue.ignore.multicriteria.e7.resourceKey=backend/**/*.ts
133
+
134
+ # Rule typescript:S3358 is "Ternary operators should not be nested" -> https://sonarcloud.io/project/issues?pullRequest=569&open=AZxoto2COu8TskptxElG&id=PostXL_PXL
135
+ # In a lot of situation, an expression is cleaner (or in the case of TSX, required) than an if/else statement. Using nested ternary operators, formatted
136
+ # properly with Prettier is hence a more practical solution (and has similar readability).
137
+ sonar.issue.ignore.multicriteria.e9a.ruleKey=typescript:S3358
138
+ sonar.issue.ignore.multicriteria.e9a.resourceKey=**/*.ts
139
+ sonar.issue.ignore.multicriteria.e9b.ruleKey=typescript:S3358
140
+ sonar.issue.ignore.multicriteria.e9b.resourceKey=**/*.tsx
@@ -29,6 +29,7 @@ definitions:
29
29
  script:
30
30
  - export ENABLE_BACKEND_SHUTDOWN=true
31
31
  - export PLAYWRIGHT_WORKERS=1
32
+ - export AI_ENABLED=false
32
33
  ${database ? startPostgres : ''}
33
34
  - npm install -g pnpm
34
35
  - pnpm run setup
@@ -1 +1 @@
1
- {"version":3,"file":"bitbucket-pipelines-yml.generator.js","sourceRoot":"","sources":["../../../src/devops/generators/bitbucket-pipelines-yml.generator.ts"],"names":[],"mappings":";;AAEA,sEAiGC;AAjGD,SAAgB,6BAA6B,CAAC,EAC5C,MAAM,EAAE,EAAE,IAAI,EAAE,EAChB,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,GACV;IACpB,OAAO,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;YA2BL,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAkC7B,QAAQ,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;YAWvD,QAAQ,CAAC,CAAC,CAAC,qBAAqB,IAAI,oDAAoD,CAAC,CAAC,CAAC,EAAE;8BAC3E,IAAI;8BACJ,IAAI;;;;;;;;;;;;;;;;;;CAkBjC,CAAA;AACD,CAAC;AAED,MAAM,aAAa,GAAG;;;;;CAKrB,CAAA"}
1
+ {"version":3,"file":"bitbucket-pipelines-yml.generator.js","sourceRoot":"","sources":["../../../src/devops/generators/bitbucket-pipelines-yml.generator.ts"],"names":[],"mappings":";;AAEA,sEAkGC;AAlGD,SAAgB,6BAA6B,CAAC,EAC5C,MAAM,EAAE,EAAE,IAAI,EAAE,EAChB,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,GACV;IACpB,OAAO,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;YA4BL,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAkC7B,QAAQ,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;YAWvD,QAAQ,CAAC,CAAC,CAAC,qBAAqB,IAAI,oDAAoD,CAAC,CAAC,CAAC,EAAE;8BAC3E,IAAI;8BACJ,IAAI;;;;;;;;;;;;;;;;;;CAkBjC,CAAA;AACD,CAAC;AAED,MAAM,aAAa,GAAG;;;;;CAKrB,CAAA"}
@@ -49,9 +49,20 @@ function generateE2EYaml(context) {
49
49
  ${database ? databaseSetup(connectionString) : ''}
50
50
 
51
51
  - name: Start backend
52
- run: pnpm e2e:coverage:stateless > backend.log 2>&1 &
52
+ run: |
53
+ pnpm e2e:coverage:stateless > backend.log 2>&1 &
54
+ echo $! > backend.pid
55
+ sleep 5
56
+ if ! ps -p $(cat backend.pid) > /dev/null 2>&1; then
57
+ echo "Backend process exited early."
58
+ echo "Backend Logs:"
59
+ cat backend.log || true
60
+ exit 1
61
+ fi
53
62
  working-directory: backend
54
- ${database ? databaseConnectionEnv(connectionString) : ''}
63
+ env:
64
+ AI_ENABLED: 'false'
65
+ ${database ? `DATABASE_CONNECTION: '${connectionString}'` : ''}
55
66
 
56
67
  - name: Start frontend
57
68
  run: pnpm e2e:ci > frontend.log 2>&1 &
@@ -66,10 +77,17 @@ function generateE2EYaml(context) {
66
77
  sleep 30
67
78
 
68
79
  echo "Backend Logs:"
69
- cat backend/backend.log
80
+ cat backend/backend.log || true
81
+
82
+ echo "Backend Process:"
83
+ if [ -f backend/backend.pid ]; then
84
+ ps -p $(cat backend/backend.pid) -f || true
85
+ else
86
+ echo "backend.pid not found"
87
+ fi
70
88
 
71
89
  echo "Frontend Logs:"
72
- cat frontend/frontend.log
90
+ cat frontend/frontend.log || true
73
91
 
74
92
  - name: Wait for Backend to be ready
75
93
  run: |
@@ -95,6 +113,16 @@ function generateE2EYaml(context) {
95
113
 
96
114
  echo "$url is ready!"
97
115
 
116
+ - name: Dump backend logs on failure
117
+ if: \${{ failure() }}
118
+ run: |
119
+ echo "Backend failed to start. Dumping backend log tail:"
120
+ tail -n 400 backend/backend.log || true
121
+ echo "Backend process info:"
122
+ if [ -f backend/backend.pid ]; then
123
+ ps -p $(cat backend/backend.pid) -f || true
124
+ fi
125
+
98
126
  - name: Wait for Frontend to be ready
99
127
  run: |
100
128
  retry=0
@@ -184,14 +212,11 @@ const postgresContainerSetup = ({ username, password, database }) => `
184
212
  --health-timeout 5s
185
213
  --health-retries 5
186
214
  `;
187
- const databaseConnectionEnv = (connectionString) => `
188
- env:
189
- # We need to use postgres service name as the host when running in a container!
190
- DATABASE_CONNECTION: '${connectionString}'
191
- `;
192
215
  const databaseSetup = (connectionString) => `
193
216
  - name: Setup Test Database
194
217
  run: pnpm prisma migrate dev
195
- ${databaseConnectionEnv(connectionString)}
218
+ env:
219
+ # We need to use postgres service name as the host when running in a container!
220
+ DATABASE_CONNECTION: '${connectionString}'
196
221
  `;
197
222
  //# sourceMappingURL=e2e-yml.generator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"e2e-yml.generator.js","sourceRoot":"","sources":["../../../src/devops/generators/e2e-yml.generator.ts"],"names":[],"mappings":";;AAEA,0CAwKC;AAxKD,SAAgB,eAAe,CAAC,OAA4B;IAC1D,MAAM,EACJ,MAAM,EAAE,EAAE,QAAQ,EAAE,GACrB,GAAG,OAAO,CAAA;IACX,0FAA0F;IAC1F,MAAM,gBAAgB,GAAG,gDAAgD,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IAE9F,OAAO,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;QAqBT,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;UAoB9C,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE;;;;;YAK7C,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkHlE,CAAA;AACD,CAAC;AAED,MAAM,sBAAsB,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAkB,EAAE,EAAE,CAAC;;;;;6BAKxD,QAAQ;iCACJ,QAAQ;2BACd,QAAQ;;;;;;;;;CASlC,CAAA;AAED,MAAM,qBAAqB,GAAG,CAAC,gBAAwB,EAAE,EAAE,CAAC;;;oCAGxB,gBAAgB;CACnD,CAAA;AAED,MAAM,aAAa,GAAG,CAAC,gBAAwB,EAAE,EAAE,CAAC;;;EAGlD,qBAAqB,CAAC,gBAAgB,CAAC;CACxC,CAAA"}
1
+ {"version":3,"file":"e2e-yml.generator.js","sourceRoot":"","sources":["../../../src/devops/generators/e2e-yml.generator.ts"],"names":[],"mappings":";;AAEA,0CAoMC;AApMD,SAAgB,eAAe,CAAC,OAA4B;IAC1D,MAAM,EACJ,MAAM,EAAE,EAAE,QAAQ,EAAE,GACrB,GAAG,OAAO,CAAA;IACX,0FAA0F;IAC1F,MAAM,gBAAgB,GAAG,gDAAgD,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IAE9F,OAAO,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;QAqBT,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;UAoB9C,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;cAgB3C,QAAQ,CAAC,CAAC,CAAC,yBAAyB,gBAAgB,GAAG,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmIzE,CAAA;AACD,CAAC;AAED,MAAM,sBAAsB,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAkB,EAAE,EAAE,CAAC;;;;;6BAKxD,QAAQ;iCACJ,QAAQ;2BACd,QAAQ;;;;;;;;;CASlC,CAAA;AAED,MAAM,aAAa,GAAG,CAAC,gBAAwB,EAAE,EAAE,CAAC;;;;;oCAKhB,gBAAgB;CACnD,CAAA"}
@@ -56,6 +56,29 @@ function generateJenkinsfile({ devOps: { database, keycloak, useS3 }, schema: {
56
56
  -e AWS_FILE_PREFIX=\${AWS_FILE_PREFIX} \\
57
57
  -e AWS_REGION=\${AWS_REGION} \\`
58
58
  : '';
59
+ const aiEnv = `
60
+ AI_ENABLED = "false"
61
+ AI_OPENAI_KEY = ""
62
+ AI_OPENAI_KEYS = ""
63
+ AI_OPENAI_MODEL = "gpt-4.1-mini"
64
+ AI_OPENAI_TIMEOUT_MS = "20000"
65
+ AI_RATE_LIMIT_WINDOW_MS = "60000"
66
+ AI_RATE_LIMIT_MAX_REQUESTS = "120"
67
+ AI_CONVERSATION_TTL_MS = "900000"
68
+ AI_CONVERSATION_CACHE_MAX_SIZE = "500"
69
+ AI_MAX_INTERNAL_TOOL_STEPS = "12"
70
+ `;
71
+ const aiRunEnv = `
72
+ -e AI_ENABLED=\${AI_ENABLED} \\
73
+ -e AI_OPENAI_KEY=\${AI_OPENAI_KEY} \\
74
+ -e AI_OPENAI_KEYS=\${AI_OPENAI_KEYS} \\
75
+ -e AI_OPENAI_MODEL=\${AI_OPENAI_MODEL} \\
76
+ -e AI_OPENAI_TIMEOUT_MS=\${AI_OPENAI_TIMEOUT_MS} \\
77
+ -e AI_RATE_LIMIT_WINDOW_MS=\${AI_RATE_LIMIT_WINDOW_MS} \\
78
+ -e AI_RATE_LIMIT_MAX_REQUESTS=\${AI_RATE_LIMIT_MAX_REQUESTS} \\
79
+ -e AI_CONVERSATION_TTL_MS=\${AI_CONVERSATION_TTL_MS} \\
80
+ -e AI_CONVERSATION_CACHE_MAX_SIZE=\${AI_CONVERSATION_CACHE_MAX_SIZE} \\
81
+ -e AI_MAX_INTERNAL_TOOL_STEPS=\${AI_MAX_INTERNAL_TOOL_STEPS} \\`;
59
82
  return /*Jenkinsfile*/ `
60
83
  def secrets = [${dbSecrets}${keycloakSecrets}
61
84
  [envVar: 'TURBO_TOKEN', secretRef: 'op://PostXL service/Turborepo Cache Token/password'],
@@ -82,7 +105,7 @@ pipeline {
82
105
  PORT_MAPPING_BACKEND = "4011:\${API_PORT}"
83
106
  FRONTEND_URL = "https://${slug}.postxl.com"
84
107
  PORT_MAPPING_FRONTEND = "4010:8080"
85
- ${keycloakEnv}${s3Env}
108
+ ${keycloakEnv}${s3Env}${aiEnv}
86
109
  XLPORT_APIKEY = "pass123"
87
110
  }
88
111
  stages{
@@ -125,6 +148,7 @@ pipeline {
125
148
  -e API_URL=\${API_URL} \\
126
149
  -e API_PORT=\${API_PORT} \\
127
150
  -e APP_SECRET=\${APP_SECRET} \\${dbEnv}${keycloakRunEnv}${s3RunEnv}
151
+ ${aiRunEnv}
128
152
  -e XLPORT_APIKEY=\${XLPORT_APIKEY} \\
129
153
  -p 0.0.0.0:\${PORT_MAPPING_BACKEND} \\
130
154
  \${REGISTRY}/\${PROJECT_NAME}_backend:latest"
@@ -1 +1 @@
1
- {"version":3,"file":"jenkinsfile.generator.js","sourceRoot":"","sources":["../../../src/devops/generators/jenkinsfile.generator.ts"],"names":[],"mappings":";;AAEA,kDAyJC;AAzJD,SAAgB,mBAAmB,CAAC,EAClC,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,EACrC,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,GACT;IACpB,iFAAiF;IACjF,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACtC,MAAM,SAAS,GAAG,QAAQ;QACxB,CAAC,CAAC;mFAC6E,IAAI;mFACJ,IAAI;KAClF;QACD,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,eAAe,GAAG,QAAQ;QAC9B,CAAC,CAAC;oGAC8F,IAAI;KACnG;QACD,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,WAAW,GAAG,QAAQ;QAC1B,CAAC,CAAC;;gCAE0B,IAAI;4BACR,IAAI;;;SAGvB;QACL,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,KAAK,GAAG,QAAQ;QACpB,CAAC,CAAC;wIACkI;QACpI,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,cAAc,GAAG,QAAQ;QAC7B,CAAC,CAAC;;;;;;0GAMoG;QACtG,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,sBAAsB,GAAG,QAAQ;QACrC,CAAC,CAAC;;;sFAGgF;QAClF,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,KAAK,GAAG,KAAK;QACjB,CAAC,CAAC;;;;SAIG;QACL,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,QAAQ,GAAG,KAAK;QACpB,CAAC,CAAC;;;sEAGgE;QAClE,CAAC,CAAC,EAAE,CAAA;IAEN,OAAO,eAAe,CAAC;iBACR,SAAS,GAAG,eAAe;;;;;;;;;;;;;;0BAclB,IAAI;;;;;;6BAMD,IAAI;;;kCAGC,IAAI;;UAE5B,WAAW,GAAG,KAAK;;;;;;;sBAOP,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,GAAG;;;;;;;;sBAQvD,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;uEA2BN,KAAK,GAAG,cAAc,GAAG,QAAQ;;;;;;;;4EAQ5B,sBAAsB;;;;;;;;;;CAUjG,CAAA;AACD,CAAC"}
1
+ {"version":3,"file":"jenkinsfile.generator.js","sourceRoot":"","sources":["../../../src/devops/generators/jenkinsfile.generator.ts"],"names":[],"mappings":";;AAEA,kDAmLC;AAnLD,SAAgB,mBAAmB,CAAC,EAClC,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,EACrC,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,GACT;IACpB,iFAAiF;IACjF,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACtC,MAAM,SAAS,GAAG,QAAQ;QACxB,CAAC,CAAC;mFAC6E,IAAI;mFACJ,IAAI;KAClF;QACD,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,eAAe,GAAG,QAAQ;QAC9B,CAAC,CAAC;oGAC8F,IAAI;KACnG;QACD,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,WAAW,GAAG,QAAQ;QAC1B,CAAC,CAAC;;gCAE0B,IAAI;4BACR,IAAI;;;SAGvB;QACL,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,KAAK,GAAG,QAAQ;QACpB,CAAC,CAAC;wIACkI;QACpI,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,cAAc,GAAG,QAAQ;QAC7B,CAAC,CAAC;;;;;;0GAMoG;QACtG,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,sBAAsB,GAAG,QAAQ;QACrC,CAAC,CAAC;;;sFAGgF;QAClF,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,KAAK,GAAG,KAAK;QACjB,CAAC,CAAC;;;;SAIG;QACL,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,QAAQ,GAAG,KAAK;QACpB,CAAC,CAAC;;;sEAGgE;QAClE,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,KAAK,GAAG;;;;;;;;;;;SAWP,CAAA;IAEP,MAAM,QAAQ,GAAG;;;;;;;;;;sGAUmF,CAAA;IAEpG,OAAO,eAAe,CAAC;iBACR,SAAS,GAAG,eAAe;;;;;;;;;;;;;;0BAclB,IAAI;;;;;;6BAMD,IAAI;;;kCAGC,IAAI;;UAE5B,WAAW,GAAG,KAAK,GAAG,KAAK;;;;;;;sBAOf,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,GAAG;;;;;;;;sBAQvD,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;uEA2BN,KAAK,GAAG,cAAc,GAAG,QAAQ;wCAChE,QAAQ;;;;;;;;4EAQ4B,sBAAsB;;;;;;;;;;CAUjG,CAAA;AACD,CAAC"}
@@ -0,0 +1,9 @@
1
+ import * as Generator from '@postxl/generator';
2
+ export type WithFrontendActions<Context extends Generator.Context> = Generator.ExtendContext<Context, {
3
+ frontendActions: {
4
+ commandPalette: Generator.ImportableFunction;
5
+ globalActionHooks: Generator.ImportableFunction[];
6
+ };
7
+ }>;
8
+ export declare const generatorId: string & import("zod").$brand<"PXL.GeneratorInterfaceId">;
9
+ export declare const generator: Generator.GeneratorInterface;
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.generator = exports.generatorId = void 0;
37
+ const Generator = __importStar(require("@postxl/generator"));
38
+ const backend_router_trpc_1 = require("../backend-router-trpc");
39
+ const base_1 = require("../base");
40
+ const frontend_core_1 = require("../frontend-core");
41
+ const frontend_trpc_client_1 = require("../frontend-trpc-client");
42
+ const ai_action_text_utils_generator_1 = require("./generators/ai-action-text.utils.generator");
43
+ const ai_assistant_store_generator_1 = require("./generators/ai-assistant-store.generator");
44
+ const ai_sidebar_content_generator_1 = require("./generators/ai-sidebar-content.generator");
45
+ const ai_sidepane_generator_1 = require("./generators/ai-sidepane.generator");
46
+ const base_global_actions_generator_1 = require("./generators/base-global-actions.generator");
47
+ const command_palette_generator_1 = require("./generators/command-palette.generator");
48
+ const command_palette_action_generator_1 = require("./generators/command-palette-action.generator");
49
+ const command_palette_store_generator_1 = require("./generators/command-palette-store.generator");
50
+ const filter_utils_generator_1 = require("./generators/filter-utils.generator");
51
+ const sidepanel_toggle_generator_1 = require("./generators/sidepanel-toggle.generator");
52
+ exports.generatorId = Generator.toGeneratorInterfaceId('frontend-actions');
53
+ exports.generator = {
54
+ id: exports.generatorId,
55
+ requires: [base_1.baseGeneratorId, frontend_core_1.frontendGeneratorId, backend_router_trpc_1.backendTrpcRouterGeneratorId, frontend_trpc_client_1.frontendTrpcClientGeneratorId],
56
+ register: (context) => {
57
+ const commandPalette = {
58
+ name: Generator.toFunctionName('CommandPalette'),
59
+ location: Generator.toBackendModuleLocation('@app-actions/command-palette'),
60
+ };
61
+ const baseGlobalActions = {
62
+ name: Generator.toFunctionName('useBaseGlobalActions'),
63
+ location: Generator.toBackendModuleLocation('@app-actions/base-global.actions'),
64
+ };
65
+ return {
66
+ ...context,
67
+ frontendActions: {
68
+ commandPalette,
69
+ globalActionHooks: [baseGlobalActions],
70
+ },
71
+ };
72
+ },
73
+ generate: (context) => {
74
+ context.vfs.write('frontend/src/actions/command-palette-action.ts', (0, command_palette_action_generator_1.generateCommandPaletteAction)());
75
+ context.vfs.write('frontend/src/actions/command-palette-store.ts', (0, command_palette_store_generator_1.generateCommandPaletteStore)());
76
+ context.vfs.write('frontend/src/actions/ai-assistant-store.ts', (0, ai_assistant_store_generator_1.generateAiAssistantStore)());
77
+ context.vfs.write('frontend/src/actions/ai-action-text.utils.ts', (0, ai_action_text_utils_generator_1.generateAiActionTextUtils)());
78
+ context.vfs.write('frontend/src/actions/ai-sidebar-content.tsx', (0, ai_sidebar_content_generator_1.generateAiSidebarContent)());
79
+ context.vfs.write('frontend/src/actions/ai-sidepane.tsx', (0, ai_sidepane_generator_1.generateAiSidepane)());
80
+ context.vfs.write('frontend/src/actions/sidepanel-toggle.tsx', (0, sidepanel_toggle_generator_1.generateSidepanelToggle)());
81
+ context.vfs.write('frontend/src/actions/base-global.actions.tsx', (0, base_global_actions_generator_1.generateBaseGlobalActions)());
82
+ context.vfs.write('frontend/src/actions/command-palette.tsx', (0, command_palette_generator_1.generateCommandPalette)({ context }));
83
+ context.vfs.write('frontend/src/lib/command-palette-filter.utils.ts', (0, filter_utils_generator_1.generateFilterUtils)());
84
+ const rootDocumentPath = 'frontend/src/pages/root-document.tsx';
85
+ const rootDocument = context.vfs.get(rootDocumentPath);
86
+ if (typeof rootDocument === 'string') {
87
+ let content = rootDocument;
88
+ if (!content.includes("import { CommandPalette } from '@app-actions/command-palette'")) {
89
+ content = content.replace("import { APP_CONFIG } from '@lib/config'", "import { CommandPalette } from '@app-actions/command-palette'\nimport { APP_CONFIG } from '@lib/config'");
90
+ }
91
+ if (!content.includes("import { AiSidepane } from '@app-actions/ai-sidepane'")) {
92
+ content = content.replace("import { CommandPalette } from '@app-actions/command-palette'", "import { AiSidepane } from '@app-actions/ai-sidepane'\nimport { CommandPalette } from '@app-actions/command-palette'");
93
+ }
94
+ if (!content.includes("import { SidepanelToggle } from '@app-actions/sidepanel-toggle'")) {
95
+ content = content.replace("import { AiSidepane } from '@app-actions/ai-sidepane'", "import { AiSidepane } from '@app-actions/ai-sidepane'\nimport { SidepanelToggle } from '@app-actions/sidepanel-toggle'");
96
+ }
97
+ if (!content.includes('<CommandPalette />')) {
98
+ content = content.replace('<Outlet />', '<Outlet />\n <CommandPalette />');
99
+ }
100
+ if (!content.includes('<AiSidepane />')) {
101
+ content = content.replace('<CommandPalette />', '<CommandPalette />\n <AiSidepane />');
102
+ }
103
+ if (!content.includes('<SidepanelToggle />')) {
104
+ content = content.replace('<AiSidepane />', '<AiSidepane />\n <SidepanelToggle />');
105
+ }
106
+ context.vfs.write(rootDocumentPath, content);
107
+ }
108
+ return context;
109
+ },
110
+ };
111
+ //# sourceMappingURL=actions.generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.generator.js","sourceRoot":"","sources":["../../src/frontend-actions/actions.generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function generateAiActionTextUtils(): string;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateAiActionTextUtils = generateAiActionTextUtils;
4
+ function generateAiActionTextUtils() {
5
+ return `export const toTitle = (value: string): string =>
6
+ value.length > 0 ? value.charAt(0).toUpperCase() + value.slice(1) : value
7
+
8
+ export const humanizeToken = (value: string): string =>
9
+ value
10
+ .replaceAll(/([A-Z])([A-Z][a-z])/g, '$1 $2')
11
+ .replaceAll(/([a-z])([A-Z])/g, '$1 $2')
12
+ .replaceAll(/[_-]+/g, ' ')
13
+ .replaceAll(/\\s+/g, ' ')
14
+ .trim()
15
+
16
+ export const formatInputValue = (value: unknown): string => {
17
+ if (value === undefined || value === null) {
18
+ return ''
19
+ }
20
+
21
+ if (typeof value === 'string') {
22
+ const trimmed = value.trim()
23
+ return trimmed.length > 0 ? '"' + trimmed + '"' : ''
24
+ }
25
+
26
+ if (typeof value === 'number' || typeof value === 'boolean') {
27
+ return String(value)
28
+ }
29
+
30
+ if (Array.isArray(value)) {
31
+ const entries = value.map((entry) => formatInputValue(entry)).filter((entry) => entry.length > 0)
32
+ return entries.join(', ')
33
+ }
34
+
35
+ if (typeof value === 'object') {
36
+ const entries = Object.entries(value as Record<string, unknown>)
37
+ .map(([key, entry]) => {
38
+ const formatted = formatInputValue(entry)
39
+ if (!formatted) {
40
+ return ''
41
+ }
42
+ return humanizeToken(key) + ': ' + formatted
43
+ })
44
+ .filter((entry) => entry.length > 0)
45
+ return entries.join(', ')
46
+ }
47
+
48
+ return ''
49
+ }
50
+ `;
51
+ }
52
+ //# sourceMappingURL=ai-action-text.utils.generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-action-text.utils.generator.js","sourceRoot":"","sources":["../../../src/frontend-actions/generators/ai-action-text.utils.generator.ts"],"names":[],"mappings":";;AAAA,8DA+CC;AA/CD,SAAgB,yBAAyB;IACvC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6CR,CAAA;AACD,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function generateAiAssistantStore(): string;