@next-vibe/checker 1.0.52 → 3.0.1

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 (430) hide show
  1. package/LICENSE +669 -5
  2. package/README.md +179 -200
  3. package/check.config.ts +85 -16
  4. package/generated/alias-map.ts +30 -0
  5. package/generated/endpoint.ts +75 -0
  6. package/{src/app/api/[locale]/system/check/oxlint/plugins/i18n/src/index.ts → oxlint-plugins/i18n.ts} +45 -9
  7. package/{src/app/api/[locale]/system/check/oxlint/plugins/jsx-capitalization/src/index.ts → oxlint-plugins/jsx-capitalization.ts} +84 -17
  8. package/{src/app/api/[locale]/system/check/oxlint/plugins/restricted-syntax/src/index.ts → oxlint-plugins/restricted-syntax.ts} +40 -14
  9. package/package.json +27 -131
  10. package/.dist/LICENSE +0 -674
  11. package/.dist/README.md +0 -257
  12. package/.dist/bin/vibe-runtime.js +0 -58166
  13. package/.dist/bin/vibe-runtime.js.map +0 -451
  14. package/.dist/oxlint-plugins/i18n.js +0 -381
  15. package/.dist/oxlint-plugins/jsx-capitalization.js +0 -436
  16. package/.dist/oxlint-plugins/restricted-syntax.js +0 -409
  17. package/src/app/api/[locale]/LICENSE +0 -674
  18. package/src/app/api/[locale]/i18n/de/index.ts +0 -15
  19. package/src/app/api/[locale]/i18n/en/index.ts +0 -14
  20. package/src/app/api/[locale]/i18n/pl/index.ts +0 -13
  21. package/src/app/api/[locale]/shared/i18n/de/index.ts +0 -85
  22. package/src/app/api/[locale]/shared/i18n/en/index.ts +0 -83
  23. package/src/app/api/[locale]/shared/i18n/pl/index.ts +0 -85
  24. package/src/app/api/[locale]/shared/stats-filtering.ts +0 -174
  25. package/src/app/api/[locale]/shared/types/common.schema.ts +0 -55
  26. package/src/app/api/[locale]/shared/types/response.schema.ts +0 -411
  27. package/src/app/api/[locale]/shared/types/stats-filtering.schema.ts +0 -315
  28. package/src/app/api/[locale]/shared/types/utils.ts +0 -187
  29. package/src/app/api/[locale]/shared/utils/base64.ts +0 -46
  30. package/src/app/api/[locale]/shared/utils/env-util.ts +0 -36
  31. package/src/app/api/[locale]/shared/utils/i18n/de/index.ts +0 -21
  32. package/src/app/api/[locale]/shared/utils/i18n/en/index.ts +0 -19
  33. package/src/app/api/[locale]/shared/utils/i18n/pl/index.ts +0 -21
  34. package/src/app/api/[locale]/shared/utils/index.ts +0 -11
  35. package/src/app/api/[locale]/shared/utils/object-path.ts +0 -41
  36. package/src/app/api/[locale]/shared/utils/object.test.ts +0 -82
  37. package/src/app/api/[locale]/shared/utils/object.ts +0 -73
  38. package/src/app/api/[locale]/shared/utils/parse-error.ts +0 -134
  39. package/src/app/api/[locale]/shared/utils/parse-json.ts +0 -62
  40. package/src/app/api/[locale]/shared/utils/time.ts +0 -46
  41. package/src/app/api/[locale]/shared/utils/validation.ts +0 -117
  42. package/src/app/api/[locale]/shared/utils/zod-required-fields.ts +0 -115
  43. package/src/app/api/[locale]/system/builder/definition.ts +0 -1750
  44. package/src/app/api/[locale]/system/builder/enum.ts +0 -78
  45. package/src/app/api/[locale]/system/builder/i18n/de/index.ts +0 -645
  46. package/src/app/api/[locale]/system/builder/i18n/en/index.ts +0 -653
  47. package/src/app/api/[locale]/system/builder/i18n/pl/index.ts +0 -643
  48. package/src/app/api/[locale]/system/builder/repository/build-executor.test.ts +0 -178
  49. package/src/app/api/[locale]/system/builder/repository/build-executor.ts +0 -538
  50. package/src/app/api/[locale]/system/builder/repository/bun-compiler.ts +0 -250
  51. package/src/app/api/[locale]/system/builder/repository/bundle-analyzer.ts +0 -170
  52. package/src/app/api/[locale]/system/builder/repository/config-loader.ts +0 -146
  53. package/src/app/api/[locale]/system/builder/repository/config-validator.ts +0 -97
  54. package/src/app/api/[locale]/system/builder/repository/constants.ts +0 -125
  55. package/src/app/api/[locale]/system/builder/repository/error-suggester.ts +0 -67
  56. package/src/app/api/[locale]/system/builder/repository/file-copier.ts +0 -90
  57. package/src/app/api/[locale]/system/builder/repository/folder-cleaner.ts +0 -75
  58. package/src/app/api/[locale]/system/builder/repository/index.ts +0 -2
  59. package/src/app/api/[locale]/system/builder/repository/npm-package-generator.ts +0 -143
  60. package/src/app/api/[locale]/system/builder/repository/output-formatter.ts +0 -104
  61. package/src/app/api/[locale]/system/builder/repository/profile-service.ts +0 -79
  62. package/src/app/api/[locale]/system/builder/repository/report-generator.ts +0 -109
  63. package/src/app/api/[locale]/system/builder/repository/vite-compiler.ts +0 -277
  64. package/src/app/api/[locale]/system/builder/route.ts +0 -21
  65. package/src/app/api/[locale]/system/builder/test-files/file1.ts +0 -2
  66. package/src/app/api/[locale]/system/builder/test-files/file2.tsx +0 -10
  67. package/src/app/api/[locale]/system/builder/test-files/file3.tsx +0 -16
  68. package/src/app/api/[locale]/system/builder/test-files/folderToCopy/fileInFolder.ts +0 -2
  69. package/src/app/api/[locale]/system/builder/test-files/test-config.ts +0 -38
  70. package/src/app/api/[locale]/system/builder/test-files/test-delete-config.ts +0 -8
  71. package/src/app/api/[locale]/system/builder/test-files/test-project/package.json +0 -24
  72. package/src/app/api/[locale]/system/builder/test-files/test-project/src/constants.ts +0 -6
  73. package/src/app/api/[locale]/system/builder/test-files/test-project/src/greet.ts +0 -18
  74. package/src/app/api/[locale]/system/builder/test-files/test-project/src/index.ts +0 -7
  75. package/src/app/api/[locale]/system/builder/test-files/test-project/src/utils/calculate.ts +0 -27
  76. package/src/app/api/[locale]/system/builder/test-files/test-project/tsconfig.json +0 -19
  77. package/src/app/api/[locale]/system/builder/test-files/test-project/tsconfig.tsbuildinfo +0 -1
  78. package/src/app/api/[locale]/system/builder/test-files/test3.css +0 -1
  79. package/src/app/api/[locale]/system/check/config/create/definition.ts +0 -266
  80. package/src/app/api/[locale]/system/check/config/create/i18n/de/index.ts +0 -151
  81. package/src/app/api/[locale]/system/check/config/create/i18n/en/index.ts +0 -146
  82. package/src/app/api/[locale]/system/check/config/create/i18n/pl/index.ts +0 -148
  83. package/src/app/api/[locale]/system/check/config/create/repository.ts +0 -269
  84. package/src/app/api/[locale]/system/check/config/create/route.ts +0 -21
  85. package/src/app/api/[locale]/system/check/config/repository.ts +0 -846
  86. package/src/app/api/[locale]/system/check/config/shared.ts +0 -364
  87. package/src/app/api/[locale]/system/check/config/types.ts +0 -610
  88. package/src/app/api/[locale]/system/check/config/utils.ts +0 -155
  89. package/src/app/api/[locale]/system/check/i18n/de/index.ts +0 -19
  90. package/src/app/api/[locale]/system/check/i18n/en/index.ts +0 -18
  91. package/src/app/api/[locale]/system/check/i18n/pl/index.ts +0 -19
  92. package/src/app/api/[locale]/system/check/lint/definition.ts +0 -383
  93. package/src/app/api/[locale]/system/check/lint/enum.ts +0 -34
  94. package/src/app/api/[locale]/system/check/lint/i18n/de/index.ts +0 -160
  95. package/src/app/api/[locale]/system/check/lint/i18n/en/index.ts +0 -158
  96. package/src/app/api/[locale]/system/check/lint/i18n/pl/index.ts +0 -160
  97. package/src/app/api/[locale]/system/check/lint/repository.ts +0 -844
  98. package/src/app/api/[locale]/system/check/lint/route.ts +0 -21
  99. package/src/app/api/[locale]/system/check/oxlint/README.md +0 -190
  100. package/src/app/api/[locale]/system/check/oxlint/definition.ts +0 -375
  101. package/src/app/api/[locale]/system/check/oxlint/enum.ts +0 -34
  102. package/src/app/api/[locale]/system/check/oxlint/i18n/de/index.ts +0 -166
  103. package/src/app/api/[locale]/system/check/oxlint/i18n/en/index.ts +0 -164
  104. package/src/app/api/[locale]/system/check/oxlint/i18n/pl/index.ts +0 -166
  105. package/src/app/api/[locale]/system/check/oxlint/plugins/jsx-capitalization/README.md +0 -269
  106. package/src/app/api/[locale]/system/check/oxlint/plugins/restricted-syntax/test.tsx +0 -74
  107. package/src/app/api/[locale]/system/check/oxlint/plugins/shared/config-loader.ts +0 -283
  108. package/src/app/api/[locale]/system/check/oxlint/repository.ts +0 -553
  109. package/src/app/api/[locale]/system/check/oxlint/route.ts +0 -21
  110. package/src/app/api/[locale]/system/check/oxlint/types.ts +0 -191
  111. package/src/app/api/[locale]/system/check/test-project/.vscode/settings.json +0 -48
  112. package/src/app/api/[locale]/system/check/test-project/bun.lock +0 -640
  113. package/src/app/api/[locale]/system/check/test-project/check.config.ts +0 -955
  114. package/src/app/api/[locale]/system/check/test-project/package.json +0 -17
  115. package/src/app/api/[locale]/system/check/test-project/src/constants.ts +0 -6
  116. package/src/app/api/[locale]/system/check/test-project/src/greet.ts +0 -18
  117. package/src/app/api/[locale]/system/check/test-project/src/test-issues/a11y-issues.tsx +0 -107
  118. package/src/app/api/[locale]/system/check/test-project/src/test-issues/eslint-issues.tsx +0 -37
  119. package/src/app/api/[locale]/system/check/test-project/src/test-issues/general-issues.ts +0 -135
  120. package/src/app/api/[locale]/system/check/test-project/src/test-issues/i18n-issues.tsx +0 -113
  121. package/src/app/api/[locale]/system/check/test-project/src/test-issues/jsx-capitalization-issues.tsx +0 -127
  122. package/src/app/api/[locale]/system/check/test-project/src/test-issues/nextjs-issues.tsx +0 -92
  123. package/src/app/api/[locale]/system/check/test-project/src/test-issues/promise-issues.ts +0 -73
  124. package/src/app/api/[locale]/system/check/test-project/src/test-issues/react-issues.tsx +0 -95
  125. package/src/app/api/[locale]/system/check/test-project/src/test-issues/restricted-syntax-issues.tsx +0 -61
  126. package/src/app/api/[locale]/system/check/test-project/src/test-issues/typescript-issues.ts +0 -78
  127. package/src/app/api/[locale]/system/check/test-project/src/utils/calculate.ts +0 -27
  128. package/src/app/api/[locale]/system/check/test-project/tsconfig.json +0 -22
  129. package/src/app/api/[locale]/system/check/test-project/tsconfig.tsbuildinfo +0 -1
  130. package/src/app/api/[locale]/system/check/typecheck/definition.ts +0 -328
  131. package/src/app/api/[locale]/system/check/typecheck/enum.ts +0 -34
  132. package/src/app/api/[locale]/system/check/typecheck/i18n/de/index.ts +0 -148
  133. package/src/app/api/[locale]/system/check/typecheck/i18n/en/index.ts +0 -145
  134. package/src/app/api/[locale]/system/check/typecheck/i18n/pl/index.ts +0 -148
  135. package/src/app/api/[locale]/system/check/typecheck/repository.ts +0 -863
  136. package/src/app/api/[locale]/system/check/typecheck/route.ts +0 -21
  137. package/src/app/api/[locale]/system/check/typecheck/utils.ts +0 -160
  138. package/src/app/api/[locale]/system/check/vibe-check/definition.ts +0 -448
  139. package/src/app/api/[locale]/system/check/vibe-check/enum.ts +0 -63
  140. package/src/app/api/[locale]/system/check/vibe-check/i18n/de/index.ts +0 -164
  141. package/src/app/api/[locale]/system/check/vibe-check/i18n/en/index.ts +0 -161
  142. package/src/app/api/[locale]/system/check/vibe-check/i18n/pl/index.ts +0 -163
  143. package/src/app/api/[locale]/system/check/vibe-check/repository.ts +0 -516
  144. package/src/app/api/[locale]/system/check/vibe-check/route.test.ts +0 -1010
  145. package/src/app/api/[locale]/system/check/vibe-check/route.ts +0 -21
  146. package/src/app/api/[locale]/system/generated/endpoint.ts +0 -274
  147. package/src/app/api/[locale]/system/generated/endpoints.ts +0 -138
  148. package/src/app/api/[locale]/system/generated/route-handlers.ts +0 -213
  149. package/src/app/api/[locale]/system/generators/endpoint/definition.ts +0 -167
  150. package/src/app/api/[locale]/system/generators/endpoint/i18n/de/index.ts +0 -48
  151. package/src/app/api/[locale]/system/generators/endpoint/i18n/en/index.ts +0 -48
  152. package/src/app/api/[locale]/system/generators/endpoint/i18n/pl/index.ts +0 -50
  153. package/src/app/api/[locale]/system/generators/endpoint/repository.ts +0 -286
  154. package/src/app/api/[locale]/system/generators/endpoint/route.ts +0 -18
  155. package/src/app/api/[locale]/system/generators/endpoints/definition.ts +0 -246
  156. package/src/app/api/[locale]/system/generators/endpoints/i18n/de/index.ts +0 -54
  157. package/src/app/api/[locale]/system/generators/endpoints/i18n/en/index.ts +0 -52
  158. package/src/app/api/[locale]/system/generators/endpoints/i18n/pl/index.ts +0 -54
  159. package/src/app/api/[locale]/system/generators/endpoints/options-repository.ts +0 -425
  160. package/src/app/api/[locale]/system/generators/endpoints/repository.ts +0 -368
  161. package/src/app/api/[locale]/system/generators/endpoints/route.ts +0 -17
  162. package/src/app/api/[locale]/system/generators/endpoints-index/definition.ts +0 -166
  163. package/src/app/api/[locale]/system/generators/endpoints-index/i18n/de/index.ts +0 -71
  164. package/src/app/api/[locale]/system/generators/endpoints-index/i18n/en/index.ts +0 -69
  165. package/src/app/api/[locale]/system/generators/endpoints-index/i18n/pl/index.ts +0 -71
  166. package/src/app/api/[locale]/system/generators/endpoints-index/repository.ts +0 -279
  167. package/src/app/api/[locale]/system/generators/endpoints-index/route.ts +0 -18
  168. package/src/app/api/[locale]/system/generators/generate-all/definition.ts +0 -327
  169. package/src/app/api/[locale]/system/generators/generate-all/i18n/de/index.ts +0 -96
  170. package/src/app/api/[locale]/system/generators/generate-all/i18n/en/index.ts +0 -94
  171. package/src/app/api/[locale]/system/generators/generate-all/i18n/pl/index.ts +0 -96
  172. package/src/app/api/[locale]/system/generators/generate-all/repository.ts +0 -240
  173. package/src/app/api/[locale]/system/generators/generate-all/route.ts +0 -19
  174. package/src/app/api/[locale]/system/generators/i18n/de/index.ts +0 -15
  175. package/src/app/api/[locale]/system/generators/i18n/en/index.ts +0 -14
  176. package/src/app/api/[locale]/system/generators/i18n/pl/index.ts +0 -15
  177. package/src/app/api/[locale]/system/generators/route-handlers/definition.ts +0 -178
  178. package/src/app/api/[locale]/system/generators/route-handlers/i18n/de/index.ts +0 -48
  179. package/src/app/api/[locale]/system/generators/route-handlers/i18n/en/index.ts +0 -48
  180. package/src/app/api/[locale]/system/generators/route-handlers/i18n/pl/index.ts +0 -50
  181. package/src/app/api/[locale]/system/generators/route-handlers/repository.ts +0 -267
  182. package/src/app/api/[locale]/system/generators/route-handlers/route.ts +0 -14
  183. package/src/app/api/[locale]/system/generators/shared/utils.ts +0 -215
  184. package/src/app/api/[locale]/system/help/definition.ts +0 -433
  185. package/src/app/api/[locale]/system/help/i18n/de/index.ts +0 -263
  186. package/src/app/api/[locale]/system/help/i18n/en/index.ts +0 -259
  187. package/src/app/api/[locale]/system/help/i18n/pl/index.ts +0 -262
  188. package/src/app/api/[locale]/system/help/interactive/definition.ts +0 -122
  189. package/src/app/api/[locale]/system/help/interactive/i18n/de/index.ts +0 -21
  190. package/src/app/api/[locale]/system/help/interactive/i18n/en/index.ts +0 -19
  191. package/src/app/api/[locale]/system/help/interactive/i18n/pl/index.ts +0 -21
  192. package/src/app/api/[locale]/system/help/interactive/repository.ts +0 -1131
  193. package/src/app/api/[locale]/system/help/interactive/route.ts +0 -43
  194. package/src/app/api/[locale]/system/help/list/definition.ts +0 -362
  195. package/src/app/api/[locale]/system/help/list/repository.ts +0 -99
  196. package/src/app/api/[locale]/system/help/list/route.ts +0 -21
  197. package/src/app/api/[locale]/system/help/repository.ts +0 -238
  198. package/src/app/api/[locale]/system/help/route.ts +0 -16
  199. package/src/app/api/[locale]/system/i18n/de/index.ts +0 -67
  200. package/src/app/api/[locale]/system/i18n/en/index.ts +0 -66
  201. package/src/app/api/[locale]/system/i18n/pl/index.ts +0 -67
  202. package/src/app/api/[locale]/system/release-tool/definition.ts +0 -2925
  203. package/src/app/api/[locale]/system/release-tool/i18n/de/index.ts +0 -782
  204. package/src/app/api/[locale]/system/release-tool/i18n/en/index.ts +0 -779
  205. package/src/app/api/[locale]/system/release-tool/i18n/pl/index.ts +0 -781
  206. package/src/app/api/[locale]/system/release-tool/repository/asset-zipper.ts +0 -122
  207. package/src/app/api/[locale]/system/release-tool/repository/changelog-generator.ts +0 -205
  208. package/src/app/api/[locale]/system/release-tool/repository/ci-detector.ts +0 -540
  209. package/src/app/api/[locale]/system/release-tool/repository/config.ts +0 -106
  210. package/src/app/api/[locale]/system/release-tool/repository/constants.ts +0 -406
  211. package/src/app/api/[locale]/system/release-tool/repository/dependency-manager.ts +0 -496
  212. package/src/app/api/[locale]/system/release-tool/repository/git-service.ts +0 -378
  213. package/src/app/api/[locale]/system/release-tool/repository/hook-runner.ts +0 -96
  214. package/src/app/api/[locale]/system/release-tool/repository/index.ts +0 -1
  215. package/src/app/api/[locale]/system/release-tool/repository/notification-service.ts +0 -575
  216. package/src/app/api/[locale]/system/release-tool/repository/package-service.ts +0 -150
  217. package/src/app/api/[locale]/system/release-tool/repository/publisher.ts +0 -241
  218. package/src/app/api/[locale]/system/release-tool/repository/quality-runner.ts +0 -413
  219. package/src/app/api/[locale]/system/release-tool/repository/release-creator.ts +0 -283
  220. package/src/app/api/[locale]/system/release-tool/repository/release-executor.ts +0 -1084
  221. package/src/app/api/[locale]/system/release-tool/repository/snyk-service.ts +0 -132
  222. package/src/app/api/[locale]/system/release-tool/repository/utils.ts +0 -603
  223. package/src/app/api/[locale]/system/release-tool/repository/validation.ts +0 -265
  224. package/src/app/api/[locale]/system/release-tool/repository/version-service.ts +0 -275
  225. package/src/app/api/[locale]/system/release-tool/route.ts +0 -21
  226. package/src/app/api/[locale]/system/unified-interface/README.md +0 -328
  227. package/src/app/api/[locale]/system/unified-interface/cli/README.md +0 -349
  228. package/src/app/api/[locale]/system/unified-interface/cli/auth/cli-handler.ts +0 -82
  229. package/src/app/api/[locale]/system/unified-interface/cli/auth/cli-user.ts +0 -120
  230. package/src/app/api/[locale]/system/unified-interface/cli/auth/session-file.ts +0 -244
  231. package/src/app/api/[locale]/system/unified-interface/cli/env.ts +0 -24
  232. package/src/app/api/[locale]/system/unified-interface/cli/i18n/de/index.ts +0 -159
  233. package/src/app/api/[locale]/system/unified-interface/cli/i18n/en/index.ts +0 -158
  234. package/src/app/api/[locale]/system/unified-interface/cli/i18n/pl/index.ts +0 -159
  235. package/src/app/api/[locale]/system/unified-interface/cli/runtime/debug.ts +0 -573
  236. package/src/app/api/[locale]/system/unified-interface/cli/runtime/entry-point.ts +0 -128
  237. package/src/app/api/[locale]/system/unified-interface/cli/runtime/environment.ts +0 -155
  238. package/src/app/api/[locale]/system/unified-interface/cli/runtime/execution-errors.ts +0 -423
  239. package/src/app/api/[locale]/system/unified-interface/cli/runtime/parsing.ts +0 -252
  240. package/src/app/api/[locale]/system/unified-interface/cli/runtime/route-executor.ts +0 -901
  241. package/src/app/api/[locale]/system/unified-interface/cli/setup/i18n/de/index.ts +0 -12
  242. package/src/app/api/[locale]/system/unified-interface/cli/setup/i18n/en/index.ts +0 -11
  243. package/src/app/api/[locale]/system/unified-interface/cli/setup/i18n/pl/index.ts +0 -12
  244. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/definition.ts +0 -235
  245. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/i18n/de/index.ts +0 -54
  246. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/i18n/en/index.ts +0 -52
  247. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/i18n/pl/index.ts +0 -54
  248. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/repository.ts +0 -444
  249. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/route.ts +0 -25
  250. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/definition.ts +0 -159
  251. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/i18n/de/index.ts +0 -61
  252. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/i18n/en/index.ts +0 -59
  253. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/i18n/pl/index.ts +0 -61
  254. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/repository.ts +0 -181
  255. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/route.ts +0 -22
  256. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/definition.ts +0 -164
  257. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/i18n/de/index.ts +0 -54
  258. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/i18n/en/index.ts +0 -52
  259. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/i18n/pl/index.ts +0 -54
  260. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/repository.ts +0 -195
  261. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/route.ts +0 -24
  262. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/definition.ts +0 -180
  263. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/i18n/de/index.ts +0 -54
  264. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/i18n/en/index.ts +0 -52
  265. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/i18n/pl/index.ts +0 -54
  266. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/repository.ts +0 -105
  267. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/route.ts +0 -22
  268. package/src/app/api/[locale]/system/unified-interface/cli/vibe-runtime.ts +0 -264
  269. package/src/app/api/[locale]/system/unified-interface/cli/widgets/core/base-renderer.ts +0 -246
  270. package/src/app/api/[locale]/system/unified-interface/cli/widgets/core/registry.ts +0 -305
  271. package/src/app/api/[locale]/system/unified-interface/cli/widgets/core/types.ts +0 -116
  272. package/src/app/api/[locale]/system/unified-interface/cli/widgets/i18n/de/index.ts +0 -67
  273. package/src/app/api/[locale]/system/unified-interface/cli/widgets/i18n/en/index.ts +0 -65
  274. package/src/app/api/[locale]/system/unified-interface/cli/widgets/i18n/pl/index.ts +0 -67
  275. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/accordion.ts +0 -70
  276. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/avatar.ts +0 -37
  277. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/badge.ts +0 -52
  278. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/code-output.ts +0 -285
  279. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/code-quality-files.ts +0 -71
  280. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/code-quality-list.ts +0 -281
  281. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/code-quality-summary.ts +0 -83
  282. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/container.ts +0 -175
  283. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/data-card.ts +0 -61
  284. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/data-cards.ts +0 -518
  285. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/data-list.ts +0 -75
  286. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/data-table.ts +0 -357
  287. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/editable-text.ts +0 -93
  288. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/empty-state.ts +0 -49
  289. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/errors.ts +0 -63
  290. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/grouped-list.ts +0 -667
  291. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/link-card.ts +0 -78
  292. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/link-list.ts +0 -99
  293. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/link.ts +0 -54
  294. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/loading.ts +0 -46
  295. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/markdown.ts +0 -123
  296. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/metric.ts +0 -269
  297. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/section.ts +0 -114
  298. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/stats-grid.ts +0 -138
  299. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/tabs.ts +0 -59
  300. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/text.ts +0 -76
  301. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/title.ts +0 -37
  302. package/src/app/api/[locale]/system/unified-interface/cli/widgets/renderers/response-renderer.ts +0 -403
  303. package/src/app/api/[locale]/system/unified-interface/cli/widgets/renderers/schema-handler.ts +0 -504
  304. package/src/app/api/[locale]/system/unified-interface/i18n/de/index.ts +0 -39
  305. package/src/app/api/[locale]/system/unified-interface/i18n/en/index.ts +0 -37
  306. package/src/app/api/[locale]/system/unified-interface/i18n/pl/index.ts +0 -39
  307. package/src/app/api/[locale]/system/unified-interface/mcp/README.md +0 -114
  308. package/src/app/api/[locale]/system/unified-interface/mcp/converter.ts +0 -136
  309. package/src/app/api/[locale]/system/unified-interface/mcp/i18n/de/index.ts +0 -180
  310. package/src/app/api/[locale]/system/unified-interface/mcp/i18n/en/index.ts +0 -178
  311. package/src/app/api/[locale]/system/unified-interface/mcp/i18n/pl/index.ts +0 -180
  312. package/src/app/api/[locale]/system/unified-interface/mcp/registry.ts +0 -305
  313. package/src/app/api/[locale]/system/unified-interface/mcp/serve/definition.ts +0 -124
  314. package/src/app/api/[locale]/system/unified-interface/mcp/serve/repository.ts +0 -44
  315. package/src/app/api/[locale]/system/unified-interface/mcp/serve/route.ts +0 -14
  316. package/src/app/api/[locale]/system/unified-interface/mcp/server/protocol-handler.ts +0 -291
  317. package/src/app/api/[locale]/system/unified-interface/mcp/server/server.ts +0 -155
  318. package/src/app/api/[locale]/system/unified-interface/mcp/server/stdio-transport.ts +0 -191
  319. package/src/app/api/[locale]/system/unified-interface/mcp/types.ts +0 -247
  320. package/src/app/api/[locale]/system/unified-interface/react/icons.tsx +0 -346
  321. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definition/create-form.ts +0 -1413
  322. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definition/create.ts +0 -525
  323. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definition/endpoint-to-metadata.ts +0 -52
  324. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definition/loader.ts +0 -144
  325. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definitions/registry.ts +0 -262
  326. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/permissions/registry.ts +0 -656
  327. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/executor.ts +0 -220
  328. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/handler.ts +0 -313
  329. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/multi.ts +0 -182
  330. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/request-validator.ts +0 -173
  331. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/single.ts +0 -58
  332. package/src/app/api/[locale]/system/unified-interface/shared/env/define-env-client.ts +0 -45
  333. package/src/app/api/[locale]/system/unified-interface/shared/env/define-env.ts +0 -43
  334. package/src/app/api/[locale]/system/unified-interface/shared/env/validation-logger.ts +0 -58
  335. package/src/app/api/[locale]/system/unified-interface/shared/field/enum.ts +0 -107
  336. package/src/app/api/[locale]/system/unified-interface/shared/field/specialized.ts +0 -336
  337. package/src/app/api/[locale]/system/unified-interface/shared/field/utils.test.ts +0 -385
  338. package/src/app/api/[locale]/system/unified-interface/shared/field/utils.ts +0 -1827
  339. package/src/app/api/[locale]/system/unified-interface/shared/field-config/endpoint-field-types.ts +0 -108
  340. package/src/app/api/[locale]/system/unified-interface/shared/field-config/field-config-types.ts +0 -288
  341. package/src/app/api/[locale]/system/unified-interface/shared/logger/colors.ts +0 -114
  342. package/src/app/api/[locale]/system/unified-interface/shared/logger/endpoint.ts +0 -155
  343. package/src/app/api/[locale]/system/unified-interface/shared/logger/file-logger.ts +0 -85
  344. package/src/app/api/[locale]/system/unified-interface/shared/logger/formatters.ts +0 -167
  345. package/src/app/api/[locale]/system/unified-interface/shared/server-only/auth/base-auth-handler.ts +0 -82
  346. package/src/app/api/[locale]/system/unified-interface/shared/server-only/auth/factory.ts +0 -34
  347. package/src/app/api/[locale]/system/unified-interface/shared/server-only/server-only.ts +0 -1
  348. package/src/app/api/[locale]/system/unified-interface/shared/types/actions.ts +0 -284
  349. package/src/app/api/[locale]/system/unified-interface/shared/types/endpoint.ts +0 -1101
  350. package/src/app/api/[locale]/system/unified-interface/shared/types/enums.ts +0 -383
  351. package/src/app/api/[locale]/system/unified-interface/shared/types/platform.ts +0 -34
  352. package/src/app/api/[locale]/system/unified-interface/shared/types/types.ts +0 -76
  353. package/src/app/api/[locale]/system/unified-interface/shared/types/ui-config.ts +0 -72
  354. package/src/app/api/[locale]/system/unified-interface/shared/utils/error-types.ts +0 -27
  355. package/src/app/api/[locale]/system/unified-interface/shared/utils/path.ts +0 -80
  356. package/src/app/api/[locale]/system/unified-interface/shared/utils/scanner.ts +0 -225
  357. package/src/app/api/[locale]/system/unified-interface/shared/widgets/actions.ts +0 -251
  358. package/src/app/api/[locale]/system/unified-interface/shared/widgets/configs.ts +0 -1060
  359. package/src/app/api/[locale]/system/unified-interface/shared/widgets/helpers.ts +0 -70
  360. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/accordion.ts +0 -75
  361. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/avatar.ts +0 -69
  362. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/badge.ts +0 -86
  363. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/code-output.ts +0 -283
  364. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/code-quality-list.ts +0 -190
  365. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/container.ts +0 -114
  366. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/data-card.ts +0 -71
  367. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/data-cards.ts +0 -228
  368. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/data-list.ts +0 -119
  369. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/data-table.ts +0 -367
  370. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/editable-text.ts +0 -81
  371. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/empty-state.ts +0 -71
  372. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/errors.ts +0 -79
  373. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/grouped-list.ts +0 -426
  374. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/index.ts +0 -38
  375. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/link-card.ts +0 -112
  376. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/link-list.ts +0 -110
  377. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/link.ts +0 -66
  378. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/loading.ts +0 -79
  379. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/markdown.ts +0 -159
  380. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/metric-card.ts +0 -225
  381. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/section.ts +0 -85
  382. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/stats-grid.ts +0 -63
  383. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/tabs.ts +0 -73
  384. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/text.ts +0 -96
  385. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/title.ts +0 -57
  386. package/src/app/api/[locale]/system/unified-interface/shared/widgets/types.ts +0 -236
  387. package/src/app/api/[locale]/system/unified-interface/shared/widgets/utils/field-helpers.ts +0 -120
  388. package/src/app/api/[locale]/system/unified-interface/shared/widgets/utils/formatting.ts +0 -414
  389. package/src/app/api/[locale]/system/unified-interface/shared/widgets/utils/url.ts +0 -37
  390. package/src/app/api/[locale]/system/unified-interface/shared/widgets/utils/widget-helpers.ts +0 -427
  391. package/src/app/api/[locale]/user/auth/i18n/de/index.ts +0 -204
  392. package/src/app/api/[locale]/user/auth/i18n/en/index.ts +0 -199
  393. package/src/app/api/[locale]/user/auth/i18n/pl/index.ts +0 -203
  394. package/src/app/api/[locale]/user/auth/types.ts +0 -45
  395. package/src/app/api/[locale]/user/enum.ts +0 -64
  396. package/src/app/api/[locale]/user/i18n/de/index.ts +0 -75
  397. package/src/app/api/[locale]/user/i18n/en/index.ts +0 -74
  398. package/src/app/api/[locale]/user/i18n/pl/index.ts +0 -75
  399. package/src/app/api/[locale]/user/types.ts +0 -111
  400. package/src/app/api/[locale]/user/user-roles/enum.ts +0 -103
  401. package/src/app/api/[locale]/user/user-roles/i18n/de/index.ts +0 -85
  402. package/src/app/api/[locale]/user/user-roles/i18n/en/index.ts +0 -83
  403. package/src/app/api/[locale]/user/user-roles/i18n/pl/index.ts +0 -85
  404. package/src/app/api/[locale]/user/user-roles/types.ts +0 -32
  405. package/src/app/api/i18n/de/index.ts +0 -6
  406. package/src/app/api/i18n/en/index.ts +0 -5
  407. package/src/app/api/i18n/pl/index.ts +0 -5
  408. package/src/app/i18n/de/index.ts +0 -18
  409. package/src/app/i18n/en/index.ts +0 -18
  410. package/src/app/i18n/pl/index.ts +0 -17
  411. package/src/config/constants.ts +0 -8
  412. package/src/config/debug.ts +0 -30
  413. package/src/config/env-client.ts +0 -57
  414. package/src/config/env.ts +0 -56
  415. package/src/config/i18n/de/index.ts +0 -3
  416. package/src/config/i18n/en/index.ts +0 -51
  417. package/src/config/i18n/pl/index.ts +0 -3
  418. package/src/i18n/core/config.ts +0 -225
  419. package/src/i18n/core/language-utils.ts +0 -226
  420. package/src/i18n/core/localization-utils.ts +0 -394
  421. package/src/i18n/core/scoped-translation.ts +0 -104
  422. package/src/i18n/core/shared-component.tsx +0 -28
  423. package/src/i18n/core/shared-translation-utils.ts +0 -97
  424. package/src/i18n/core/shared.ts +0 -44
  425. package/src/i18n/core/static-types.ts +0 -64
  426. package/src/i18n/core/translation-utils.ts +0 -186
  427. package/src/i18n/de/index.ts +0 -8
  428. package/src/i18n/en/index.ts +0 -7
  429. package/src/i18n/index.ts +0 -100
  430. package/src/i18n/pl/index.ts +0 -7
@@ -1,901 +0,0 @@
1
- /**
2
- * CLI Route Executor
3
- * Thin adapter that parses CLI input and delegates to central executor
4
- * Handles CLI-specific concerns: argument parsing, interactive forms, output formatting
5
- */
6
-
7
- import type { ErrorResponseType } from "next-vibe/shared/types/response.schema";
8
- import { parseError } from "next-vibe/shared/utils";
9
-
10
- import type { WidgetData } from "@/app/api/[locale]/system/unified-interface/shared/widgets/types";
11
- import { type UserRoleValue } from "@/app/api/[locale]/user/user-roles/enum";
12
- import type { CountryLanguage } from "@/i18n/core/config";
13
- import type { TranslatedKeyType } from "@/i18n/core/scoped-translation";
14
- import { simpleT } from "@/i18n/core/shared";
15
- import type { TFunction, TParams, TranslationKey } from "@/i18n/core/static-types";
16
-
17
- import { isEmptySchema } from "../../../../shared/utils/validation";
18
- import { definitionLoader } from "../../shared/endpoints/definition/loader";
19
- import type { BaseExecutionContext } from "../../shared/endpoints/route/executor";
20
- import { routeExecutionExecutor } from "../../shared/endpoints/route/executor";
21
- import type { InferJwtPayloadTypeFromRoles } from "../../shared/endpoints/route/handler";
22
- import type { EndpointLogger } from "../../shared/logger/endpoint";
23
- import type { CreateApiEndpointAny, UnifiedField } from "../../shared/types/endpoint";
24
- import type { Platform } from "../../shared/types/platform";
25
- import { getCliUser } from "../auth/cli-user";
26
- import { modularCLIResponseRenderer } from "../widgets/renderers/response-renderer";
27
- import { schemaUIHandler } from "../widgets/renderers/schema-handler";
28
- import type { CliObject } from "./parsing";
29
-
30
- // Input data interfaces
31
- interface InputData {
32
- [key: string]:
33
- | string
34
- | number
35
- | boolean
36
- | null
37
- | undefined
38
- | InputData
39
- | InputData[]
40
- | Array<string | number | boolean | null | undefined>;
41
- }
42
-
43
- interface CollectedInputData {
44
- data?: Partial<InputData>;
45
- urlPathParams?: Partial<InputData>;
46
- }
47
-
48
- // CLI data types
49
- export interface CliRequestData {
50
- [key: string]: string | number | boolean | null | undefined | CliRequestData | CliRequestData[];
51
- }
52
-
53
- interface CliUrlParams {
54
- [key: string]: string | number | boolean | null | undefined;
55
- }
56
-
57
- // Use CliObject from parsing.ts for type-safe nested object support
58
- type CliNamedArgs = CliObject;
59
-
60
- interface CliResponseData {
61
- [key: string]: string | number | boolean | null | undefined | CliResponseData | CliResponseData[];
62
- }
63
-
64
- /** CLI-compatible platforms for type assertions */
65
- export type CliCompatiblePlatform =
66
- | typeof Platform.CLI
67
- | typeof Platform.CLI_PACKAGE
68
- | typeof Platform.AI
69
- | typeof Platform.MCP;
70
-
71
- /**
72
- * Route execution context
73
- * Extends BaseExecutionContext with CLI-specific fields
74
- */
75
- export interface RouteExecutionContext extends Omit<BaseExecutionContext<InputData>, "user"> {
76
- /** URL path parameters */
77
- urlPathParams?: CliUrlParams;
78
-
79
- /** CLI-specific arguments */
80
- cliArgs?: {
81
- positionalArgs: string[];
82
- namedArgs: CliNamedArgs;
83
- };
84
-
85
- /** More specific user type for CLI */
86
- user: InferJwtPayloadTypeFromRoles<readonly UserRoleValue[]> | undefined;
87
-
88
- /** CLI-specific options */
89
- options?: {
90
- verbose?: boolean;
91
- dryRun?: boolean;
92
- interactive?: boolean;
93
- output?: "json" | "table" | "pretty";
94
- };
95
-
96
- /** Timestamp of execution */
97
- timestamp: number;
98
- }
99
-
100
- /**
101
- * Route execution result
102
- * Extends BaseExecutionResult with CLI-specific fields
103
- */
104
- export interface RouteExecutionResult {
105
- success: boolean;
106
- /** CLI response data */
107
- data?: CliResponseData;
108
-
109
- /** Error message (translation key or plain text) */
110
- error?: TranslationKey;
111
-
112
- /** Error parameters for translation */
113
- errorParams?: TParams;
114
-
115
- /** CLI-specific metadata */
116
- metadata?: {
117
- executionTime: number;
118
- endpointPath: string;
119
- method?: string;
120
- route?: string;
121
- resolvedCommand?: string;
122
- };
123
-
124
- /** Performance metadata from route execution (translation keys as keys) */
125
- performance?: Partial<Record<TranslationKey, number>>;
126
-
127
- /** Error cause chain for debugging - reuses ErrorResponseType */
128
- cause?: ErrorResponseType;
129
-
130
- /** Formatted output string ready for display */
131
- formattedOutput?: string;
132
-
133
- /**
134
- * Indicates that this is a logical error response (e.g., operation failed)
135
- * even though success: true was returned. Used for CLI exit code handling.
136
- */
137
- isErrorResponse?: true;
138
- }
139
-
140
- /**
141
- * CLI Route Executor
142
- * Thin adapter: parses CLI input → calls central executor → formats CLI output
143
- */
144
- export class RouteDelegationHandler {
145
- /**
146
- * Execute a route - delegates to central executor
147
- */
148
- async executeRoute(
149
- resolvedCommand: string,
150
- context: RouteExecutionContext,
151
- logger: EndpointLogger,
152
- locale: CountryLanguage,
153
- ): Promise<RouteExecutionResult> {
154
- const startTime = Date.now();
155
-
156
- try {
157
- // 1. Get CLI user (fallback to getCliUser if not provided)
158
- // Note: Auth will be handled again by shared handler, this is just for endpoint loading
159
- let cliUser = context.user;
160
- if (!cliUser) {
161
- const cliUserResult = await getCliUser(logger, context.locale);
162
- if (cliUserResult.success) {
163
- cliUser = cliUserResult.data;
164
- } else {
165
- // If auth fails, still try to load endpoint - shared handler will re-auth properly
166
- cliUser = {
167
- isPublic: true,
168
- leadId: "temp-for-loading",
169
- } as InferJwtPayloadTypeFromRoles<readonly UserRoleValue[]>;
170
- }
171
- }
172
-
173
- // 2. Get endpoint definition for CLI-specific features (interactive forms, arg parsing)
174
- const endpointResult = await definitionLoader.load<CreateApiEndpointAny>({
175
- identifier: resolvedCommand,
176
- platform: context.platform,
177
- user: cliUser,
178
- logger,
179
- });
180
- const endpoint = endpointResult.success ? endpointResult.data : null;
181
-
182
- // 3. CLI-specific: Collect input data (parse CLI args, interactive forms)
183
- const inputData = await this.collectInputData(endpoint, context, logger);
184
-
185
- // 4. CLI-specific: Handle dry run
186
- if (context.options?.dryRun) {
187
- logger.info("🔍 Dry run - would execute with:");
188
- logger.info(
189
- JSON.stringify({ data: inputData.data, urlPathParams: inputData.urlPathParams }, null, 2),
190
- );
191
- return {
192
- success: true,
193
- data: {
194
- dryRun: true,
195
- data: inputData.data as CliResponseData,
196
- urlPathParams: inputData.urlPathParams as CliResponseData,
197
- } as CliResponseData,
198
- metadata: {
199
- executionTime: Date.now() - startTime,
200
- endpointPath: resolvedCommand,
201
- resolvedCommand,
202
- },
203
- };
204
- }
205
-
206
- // 5. CLI-specific: Show execution info if verbose
207
- if (context.options?.verbose) {
208
- logger.info(`🎯 Executing route: ${resolvedCommand}`);
209
- logger.info(`Data: ${JSON.stringify(inputData.data, null, 2)}`);
210
- if (inputData.urlPathParams && Object.keys(inputData.urlPathParams).length > 0) {
211
- logger.info(`URL Params: ${JSON.stringify(inputData.urlPathParams, null, 2)}`);
212
- }
213
- }
214
-
215
- // 6. Delegate to shared generic handler executor
216
- let result = await routeExecutionExecutor.executeGenericHandler({
217
- toolName: resolvedCommand,
218
- data: (inputData.data || {}) as Record<string, never>,
219
- urlPathParams: (inputData.urlPathParams || {}) as Record<string, never>,
220
- user: cliUser,
221
- locale,
222
- logger,
223
- platform: context.platform,
224
- });
225
-
226
- // 7. Convert ResponseType to RouteExecutionResult
227
- const routeResult: RouteExecutionResult = {
228
- success: result.success,
229
- data: result.success ? (result.data as CliResponseData | undefined) : undefined,
230
- error: result.success ? undefined : result.message,
231
- errorParams: result.success ? undefined : result.messageParams,
232
- metadata: {
233
- executionTime: Date.now() - startTime,
234
- endpointPath: resolvedCommand,
235
- method: "",
236
- resolvedCommand,
237
- },
238
- // Pass through isErrorResponse from API response for CLI exit code handling
239
- // Note: isErrorResponse can be true even when result.success is true (e.g., vibe check found errors)
240
- isErrorResponse: "isErrorResponse" in result && result.isErrorResponse ? true : undefined,
241
- // Pass through performance metadata from API response for execution summary
242
- performance: "performance" in result && result.performance ? result.performance : undefined,
243
- };
244
-
245
- // 8. Format result for CLI output
246
- const formattedOutput = this.formatResult(
247
- routeResult,
248
- context.options?.output || "pretty",
249
- endpoint, // Pass endpoint definition for widget-based formatting
250
- locale,
251
- context.options?.verbose || false,
252
- logger,
253
- );
254
-
255
- // 9. Return result with formatted output
256
- return {
257
- ...routeResult,
258
- formattedOutput,
259
- };
260
- } catch (error) {
261
- const errorResult: RouteExecutionResult = {
262
- success: false,
263
- error: "app.api.system.unifiedInterface.cli.vibe.errors.executionFailed",
264
- errorParams: {
265
- error: parseError(error).message,
266
- },
267
- metadata: {
268
- executionTime: Date.now() - startTime,
269
- endpointPath: resolvedCommand,
270
- method: "",
271
- },
272
- };
273
-
274
- // Format error result
275
- const formattedOutput = this.formatResult(
276
- errorResult,
277
- context.options?.output || "pretty",
278
- null, // endpoint definition not needed for formatting
279
- locale,
280
- context.options?.verbose || false,
281
- logger,
282
- );
283
-
284
- return {
285
- ...errorResult,
286
- formattedOutput,
287
- };
288
- }
289
- }
290
-
291
- /**
292
- * Collect input data using schema-driven UI
293
- * Now delegates validation to registry
294
- */
295
- private async collectInputData(
296
- endpoint: CreateApiEndpointAny | null,
297
- context: RouteExecutionContext,
298
- logger: EndpointLogger,
299
- ): Promise<CollectedInputData> {
300
- const inputData: CollectedInputData = {};
301
-
302
- // Always try to build data from CLI arguments first
303
- const cliData = this.buildDataFromCliArgs(endpoint, context);
304
-
305
- // Merge CLI data with provided data using registry
306
- const contextData = context.data;
307
-
308
- // eslint-disable-next-line i18next/no-literal-string
309
- logger.debug(
310
- `[ROUTE EXECUTOR] Data collection (hasContextData: ${!!contextData}, hasCliData: ${cliData ? Object.keys(cliData).length > 0 : false}, interactive: ${context.options?.interactive})`,
311
- );
312
-
313
- if (contextData || (cliData && Object.keys(cliData).length > 0)) {
314
- // Merge context options (interactive, dryRun) into data only if explicitly set
315
- // Don't merge if they're CLI defaults to allow schema defaults to apply
316
- const optionsData: Partial<InputData> = {};
317
- if (context.options?.interactive !== undefined) {
318
- optionsData.interactive = context.options.interactive;
319
- }
320
- if (context.options?.dryRun !== undefined) {
321
- optionsData.dryRun = context.options.dryRun;
322
- }
323
-
324
- // eslint-disable-next-line i18next/no-literal-string
325
- logger.debug(
326
- `[ROUTE EXECUTOR] Building options data (interactive: ${optionsData.interactive}, dryRun: ${optionsData.dryRun})`,
327
- );
328
-
329
- const mergedData = routeExecutionExecutor.mergeData(
330
- optionsData,
331
- contextData || {},
332
- cliData || {},
333
- );
334
-
335
- // eslint-disable-next-line i18next/no-literal-string
336
- logger.debug(
337
- `[ROUTE EXECUTOR] Final merged data (keys: ${Object.keys(mergedData).join(", ")})`,
338
- );
339
-
340
- // mergedData is Partial<InputData>, which is compatible with InputData for our purposes
341
- inputData.data = mergedData;
342
-
343
- // Check if all required fields are satisfied using registry
344
- const missingRequired = routeExecutionExecutor.getMissingRequiredFields(
345
- inputData.data,
346
- endpoint?.requestSchema,
347
- logger,
348
- );
349
-
350
- if (missingRequired.length > 0 && context.options?.interactive && !contextData && endpoint) {
351
- // Some required fields missing AND no data was provided, use interactive mode
352
- logger.info("📝 Request Data:");
353
- logger.warn(`⚠️ Missing required fields: ${missingRequired.join(", ")}`);
354
- const formData = await this.generateFormFromEndpoint(endpoint, "request");
355
-
356
- // Merge with existing data and options
357
- inputData.data = routeExecutionExecutor.mergeData(
358
- optionsData,
359
- inputData.data || {},
360
- formData,
361
- );
362
- }
363
- } else if (endpoint?.requestSchema && context.options?.interactive !== false) {
364
- // No data provided and interactive mode allowed
365
- logger.info("📝 Request Data:");
366
- const formData = await this.generateFormFromEndpoint(endpoint, "request");
367
-
368
- // Merge context options only if explicitly set
369
- const optionsData: Partial<InputData> = {};
370
- if (context.options?.interactive === true) {
371
- optionsData.interactive = true;
372
- }
373
- if (context.options?.dryRun === true) {
374
- optionsData.dryRun = true;
375
- }
376
-
377
- inputData.data = routeExecutionExecutor.mergeData(optionsData, formData);
378
- } else {
379
- // No CLI data - let schema defaults apply (don't force CLI defaults)
380
- inputData.data = {};
381
- }
382
-
383
- // Collect URL parameters if needed
384
- if (endpoint?.requestUrlPathParamsSchema && !context.urlPathParams) {
385
- // Check if schema is empty
386
- if (!isEmptySchema(endpoint.requestUrlPathParamsSchema)) {
387
- logger.info("🔗 URL Parameters:");
388
- inputData.urlPathParams = await this.generateFormFromEndpoint(endpoint, "urlPathParams");
389
- }
390
- } else if (context.urlPathParams) {
391
- inputData.urlPathParams = context.urlPathParams;
392
- }
393
-
394
- return inputData;
395
- }
396
-
397
- /**
398
- * Generate form from endpoint using schema UI handler
399
- */
400
- private async generateFormFromEndpoint(
401
- endpoint: CreateApiEndpointAny,
402
- formType: "request" | "urlPathParams" = "request",
403
- ): Promise<InputData> {
404
- const schema =
405
- formType === "request" ? endpoint.requestSchema : endpoint.requestUrlPathParamsSchema;
406
-
407
- if (!schema) {
408
- return {};
409
- }
410
-
411
- const fields = schemaUIHandler.parseSchema(schema);
412
- const config = {
413
- title: `${endpoint.method} ${endpoint.path.join("/")}`,
414
- description: endpoint.description || endpoint.title,
415
- fields,
416
- };
417
-
418
- const result = await schemaUIHandler.generateForm(config);
419
- return result as InputData;
420
- }
421
-
422
- /**
423
- * Format execution result for display with enhanced rendering
424
- */
425
- formatResult(
426
- result: RouteExecutionResult,
427
- outputFormat = "pretty",
428
- endpointDefinition: CreateApiEndpointAny | null,
429
- locale: CountryLanguage,
430
- verbose = false,
431
- logger: EndpointLogger,
432
- ): string {
433
- if (!result.success) {
434
- // Translate error message if it's a translation key
435
- const { t } = simpleT(locale);
436
- let errorMessage = t(
437
- result.error || "app.api.system.unifiedInterface.cli.vibe.errors.unknownError",
438
- result.errorParams,
439
- );
440
-
441
- // Build detailed error message with errorParams
442
- let detailedError = errorMessage;
443
-
444
- // Always show error details from errorParams, even in non-verbose mode
445
- if (result.errorParams && Object.keys(result.errorParams).length > 0) {
446
- // eslint-disable-next-line i18next/no-literal-string
447
- detailedError += "\n\nDetails:";
448
- for (const [key, value] of Object.entries(result.errorParams)) {
449
- // eslint-disable-next-line i18next/no-literal-string
450
- detailedError += `\n ${key}: ${value}`;
451
- }
452
- }
453
-
454
- // Handle error cause chain
455
- const causeChain = this.formatErrorCauseChain(result, t, verbose);
456
- if (causeChain) {
457
- detailedError += causeChain;
458
- }
459
-
460
- if (verbose) {
461
- // eslint-disable-next-line i18next/no-literal-string
462
- return `❌ Error: ${detailedError}\n\nFull Response:\n${JSON.stringify(result, null, 2)}`;
463
- }
464
- // eslint-disable-next-line i18next/no-literal-string
465
- return `❌ Error: ${detailedError}`;
466
- }
467
-
468
- let output = "";
469
-
470
- // Only show metadata in verbose mode
471
- if (verbose) {
472
- // Add success indicator
473
- // eslint-disable-next-line i18next/no-literal-string
474
- output += "✅ Success\n";
475
-
476
- // Add execution metadata if available
477
- if (result.metadata) {
478
- if (result.metadata.route) {
479
- // eslint-disable-next-line i18next/no-literal-string
480
- output += `🛣️ Route: ${result.metadata.method} ${result.metadata.route}\n`;
481
- }
482
- }
483
- output += "\n";
484
- }
485
-
486
- // Format data based on output format
487
- if (result.data) {
488
- output += "\n";
489
-
490
- switch (outputFormat) {
491
- case "json":
492
- // eslint-disable-next-line i18next/no-literal-string
493
- output += "📊 Result (JSON):\n";
494
- output += JSON.stringify(result.data, null, 2);
495
- break;
496
- case "pretty":
497
- default:
498
- // Always use enhanced renderer for pretty format
499
- if (endpointDefinition) {
500
- output += this.formatWithEnhancedRenderer(
501
- result.data,
502
-
503
- endpointDefinition,
504
- locale,
505
- logger,
506
- );
507
- } else {
508
- // Fallback to JSON without endpoint definition
509
- if (typeof result.data === "object") {
510
- output += JSON.stringify(result.data, null, 2);
511
- } else {
512
- output += String(result.data);
513
- }
514
- }
515
- break;
516
- }
517
- }
518
-
519
- return output;
520
- }
521
-
522
- /**
523
- * Format error cause chain recursively
524
- */
525
- private formatErrorCauseChain(
526
- result: RouteExecutionResult,
527
- t: TFunction,
528
- verbose: boolean,
529
- depth = 0,
530
- ): string {
531
- if (!result.cause || depth > 10) {
532
- // Prevent infinite recursion (increased limit for deep error chains)
533
- return "";
534
- }
535
-
536
- const indent = " ".repeat(depth + 1);
537
- let output = "";
538
-
539
- // Format cause error message - ErrorResponseType uses 'message' field
540
- const causeTranslationKey: TranslationKey =
541
- result.cause.message || "app.api.system.unifiedInterface.cli.vibe.errors.unknownError";
542
-
543
- const causeMessage = t(causeTranslationKey, result.cause.messageParams);
544
-
545
- // Show error type in verbose mode or for root cause
546
- const errorTypeInfo =
547
- verbose || !result.cause.cause ? ` [${result.cause.errorType.errorKey}]` : "";
548
-
549
- // eslint-disable-next-line i18next/no-literal-string
550
- output += `\n\n${indent}↳ Caused by${errorTypeInfo}: ${causeMessage}`;
551
-
552
- // Add cause error params - ErrorResponseType uses 'messageParams' field
553
- if (result.cause.messageParams && Object.keys(result.cause.messageParams).length > 0) {
554
- for (const [key, value] of Object.entries(result.cause.messageParams)) {
555
- // eslint-disable-next-line i18next/no-literal-string
556
- output += `\n${indent} • ${key}: ${value}`;
557
- }
558
- }
559
-
560
- // Recursively format nested causes
561
- if (result.cause.cause) {
562
- // Create a temporary RouteExecutionResult to continue recursion
563
- const nestedResult: RouteExecutionResult = {
564
- success: false,
565
- cause: result.cause.cause,
566
- };
567
- output += this.formatErrorCauseChain(nestedResult, t, verbose, depth + 1);
568
- }
569
-
570
- return output;
571
- }
572
-
573
- /**
574
- * Sanitize data for renderer to match expected type
575
- */
576
- private sanitizeDataForRenderer(data: CliResponseData): Record<string, WidgetData> {
577
- if (typeof data !== "object" || data === null) {
578
- return { result: String(data) };
579
- }
580
-
581
- const sanitizeValue = (
582
- value: CliResponseData | CliResponseData[] | string | number | boolean | null | undefined,
583
- ): WidgetData => {
584
- if (value === undefined || value === null) {
585
- return undefined;
586
- }
587
- if (typeof value === "string") {
588
- return value;
589
- }
590
- if (typeof value === "number") {
591
- return value;
592
- }
593
- if (typeof value === "boolean") {
594
- return value;
595
- }
596
- if (Array.isArray(value)) {
597
- return value.map(sanitizeValue) as WidgetData[];
598
- }
599
- if (typeof value === "object") {
600
- const sanitizedObj: { [key: string]: WidgetData } = {};
601
- for (const [k, v] of Object.entries(value)) {
602
- sanitizedObj[k] = sanitizeValue(v);
603
- }
604
- return sanitizedObj;
605
- }
606
- return String(value);
607
- };
608
-
609
- const sanitized: Record<string, WidgetData> = {};
610
- for (const [key, value] of Object.entries(data)) {
611
- sanitized[key] = sanitizeValue(value);
612
- }
613
-
614
- return sanitized;
615
- }
616
-
617
- /**
618
- * Build a mapping of single-letter shortcuts to full field names
619
- * Only includes letters that uniquely map to one field
620
- */
621
- private buildSingleLetterShortcuts(
622
- endpointDefinition: CreateApiEndpointAny | null,
623
- ): Map<string, string> {
624
- const shortcuts = new Map<string, string>();
625
-
626
- // Extract field names from endpoint definition
627
- if (
628
- !endpointDefinition ||
629
- typeof endpointDefinition !== "object" ||
630
- !("fields" in endpointDefinition)
631
- ) {
632
- return shortcuts;
633
- }
634
-
635
- const fields = endpointDefinition.fields;
636
- if (!fields || typeof fields !== "object" || !("children" in fields)) {
637
- return shortcuts;
638
- }
639
-
640
- const fieldNames: string[] = [];
641
- const children = fields.children;
642
-
643
- if (children && typeof children === "object") {
644
- // Collect all field names
645
- for (const key of Object.keys(children)) {
646
- if (typeof key === "string") {
647
- fieldNames.push(key);
648
- }
649
- }
650
- }
651
-
652
- // Build first-letter to field-names mapping
653
- const firstLetterMap = new Map<string, string[]>();
654
- for (const fieldName of fieldNames) {
655
- const firstLetter = fieldName[0]?.toLowerCase();
656
- if (firstLetter) {
657
- const existing = firstLetterMap.get(firstLetter) || [];
658
- existing.push(fieldName);
659
- firstLetterMap.set(firstLetter, existing);
660
- }
661
- }
662
-
663
- // Only add shortcuts for unique first letters
664
- for (const [letter, names] of firstLetterMap) {
665
- if (names.length === 1) {
666
- shortcuts.set(letter, names[0]);
667
- }
668
- }
669
-
670
- return shortcuts;
671
- }
672
-
673
- /**
674
- * Extract response fields from endpoint definition
675
- */
676
- private extractResponseFields<const TKey extends string>(
677
- endpointDefinition: CreateApiEndpointAny,
678
- ): Array<[string, UnifiedField<TKey>]> {
679
- // Type guard: check if it's a valid endpoint with fields
680
- if (
681
- !endpointDefinition ||
682
- typeof endpointDefinition !== "object" ||
683
- !("fields" in endpointDefinition)
684
- ) {
685
- return [];
686
- }
687
-
688
- const fields = endpointDefinition.fields;
689
-
690
- // Check if fields is an ObjectField with children
691
- if (
692
- !fields ||
693
- typeof fields !== "object" ||
694
- !("children" in fields) ||
695
- typeof fields.children !== "object" ||
696
- fields.children === null
697
- ) {
698
- return [];
699
- }
700
-
701
- const children = fields.children as Record<string, UnifiedField<TKey>>;
702
- const responseFields: Array<[string, UnifiedField<TKey>]> = [];
703
-
704
- // Extract fields that have usage.response = true
705
- for (const [fieldName, fieldDef] of Object.entries(children)) {
706
- if ("usage" in fieldDef && typeof fieldDef.usage === "object" && fieldDef.usage !== null) {
707
- const usage = fieldDef.usage;
708
- let hasResponse = false;
709
-
710
- if ("response" in usage) {
711
- hasResponse = usage.response === true;
712
- } else {
713
- // Check each method's usage for response field
714
- const usageValues = Object.values(usage);
715
- hasResponse = usageValues.some(
716
- (methodUsage) =>
717
- typeof methodUsage === "object" &&
718
- methodUsage !== null &&
719
- "response" in methodUsage &&
720
- methodUsage.response === true,
721
- );
722
- }
723
-
724
- if (hasResponse) {
725
- responseFields.push([fieldName, fieldDef]);
726
- }
727
- }
728
- }
729
-
730
- return responseFields;
731
- }
732
-
733
- /**
734
- * Format result using enhanced CLI response renderer
735
- */
736
- private formatWithEnhancedRenderer(
737
- data: CliResponseData,
738
- endpointDefinition: CreateApiEndpointAny,
739
- locale: CountryLanguage,
740
- logger: EndpointLogger,
741
- ): string {
742
- try {
743
- // Extract response fields from endpoint definition
744
- const fields = this.extractResponseFields(endpointDefinition);
745
-
746
- // Use enhanced modular renderer with locale
747
- return modularCLIResponseRenderer.render(
748
- this.sanitizeDataForRenderer(data),
749
- fields,
750
- locale,
751
- endpointDefinition.scopedTranslation.scopedT,
752
- );
753
- } catch (error) {
754
- // Fallback to basic formatting
755
- logger.warn("Enhanced rendering failed, falling back to basic format:", {
756
- error: parseError(error),
757
- });
758
- // eslint-disable-next-line i18next/no-literal-string
759
- return `📊 Result:\n${this.formatPretty(data, locale, endpointDefinition.scopedTranslation.scopedT)}`;
760
- }
761
- }
762
-
763
- /**
764
- * Format data in pretty format using enhanced renderer
765
- */
766
- private formatPretty(
767
- data: CliResponseData,
768
- locale: CountryLanguage,
769
- scopedT: (locale: CountryLanguage) => {
770
- t: (key: string, params?: TParams) => TranslatedKeyType;
771
- },
772
- ): string {
773
- // Use the enhanced modular CLI response renderer for pretty formatting
774
- try {
775
- return modularCLIResponseRenderer.render(
776
- this.sanitizeDataForRenderer(data),
777
- [],
778
- locale,
779
- scopedT,
780
- );
781
- } catch {
782
- // Fallback to JSON if enhanced rendering fails
783
- if (typeof data === "object") {
784
- return JSON.stringify(data, null, 2);
785
- }
786
- return String(data);
787
- }
788
- }
789
-
790
- /**
791
- * Build data object from CLI arguments
792
- */
793
- private buildDataFromCliArgs(
794
- endpoint: CreateApiEndpointAny | null,
795
- context: RouteExecutionContext,
796
- ): InputData | null {
797
- if (!context.cliArgs) {
798
- return null;
799
- }
800
-
801
- const { positionalArgs, namedArgs } = context.cliArgs;
802
- const data: InputData = {};
803
-
804
- // Handle firstCliArgKey mapping - safely access nested properties
805
- const cliConfig =
806
- endpoint && typeof endpoint === "object" && "cli" in endpoint ? endpoint.cli : null;
807
- const firstCliArgKey =
808
- cliConfig && typeof cliConfig === "object" && "firstCliArgKey" in cliConfig
809
- ? cliConfig.firstCliArgKey
810
- : null;
811
-
812
- if (firstCliArgKey && typeof firstCliArgKey === "string" && positionalArgs.length > 0) {
813
- // If there's only one positional arg, use it as a string for backward compatibility
814
- // If there are multiple positional args, use them as an array
815
- const firstArg = positionalArgs[0];
816
- if (positionalArgs.length === 1 && firstArg !== undefined) {
817
- data[firstCliArgKey] = firstArg;
818
- } else {
819
- // Pass positional args as a simple string array
820
- // Explicitly type as array of strings (which is compatible with InputData value types)
821
- data[firstCliArgKey] = positionalArgs as Array<
822
- string | number | boolean | null | undefined
823
- >;
824
- }
825
- }
826
-
827
- // Build single-letter shortcuts for this endpoint
828
- const shortcuts = this.buildSingleLetterShortcuts(endpoint);
829
-
830
- // Expand single-letter keys to full field names
831
- const expandedNamedArgs: typeof namedArgs = {};
832
- for (const [key, value] of Object.entries(namedArgs)) {
833
- // If it's a single letter, try to expand it
834
- if (key.length === 1) {
835
- const fullName = shortcuts.get(key.toLowerCase());
836
- if (fullName) {
837
- expandedNamedArgs[fullName] = value;
838
- } else {
839
- // Keep the original key if no unique mapping found
840
- expandedNamedArgs[key] = value;
841
- }
842
- } else {
843
- expandedNamedArgs[key] = value;
844
- }
845
- }
846
-
847
- // Map named arguments to data fields (convert kebab-case to camelCase)
848
- // Skip CLI-level options that are already in context.options
849
- const cliLevelOptions = [
850
- "interactive",
851
- "dryRun",
852
- "dry-run",
853
- "verbose",
854
- "debug",
855
- "output",
856
- "locale",
857
- "userType",
858
- "user-type",
859
- ];
860
-
861
- for (const [key, value] of Object.entries(expandedNamedArgs)) {
862
- // Skip CLI-level options
863
- if (cliLevelOptions.includes(key)) {
864
- continue;
865
- }
866
-
867
- // Convert kebab-case to camelCase (e.g., skip-generation -> skipGeneration)
868
- const camelCaseKey = key.replaceAll(
869
- /-([a-z])/g,
870
- // oxlint-disable-next-line no-unused-vars
871
- (_, letter: string): string => letter.toUpperCase(),
872
- );
873
-
874
- // Convert string boolean values to actual booleans if not already parsed
875
- let convertedValue: string | number | boolean | null | undefined | InputData | InputData[] =
876
- value;
877
- if (typeof value === "string") {
878
- const lowerValue = value.toLowerCase();
879
- if (lowerValue === "true") {
880
- convertedValue = true;
881
- } else if (lowerValue === "false") {
882
- convertedValue = false;
883
- }
884
- // Note: Numbers should already be parsed by the CLI argument parser
885
- }
886
-
887
- data[camelCaseKey] = convertedValue as
888
- | string
889
- | number
890
- | boolean
891
- | null
892
- | undefined
893
- | InputData
894
- | InputData[]
895
- | Array<string | number | boolean | null | undefined>;
896
- }
897
- return Object.keys(data).length > 0 ? data : null;
898
- }
899
- }
900
-
901
- export const routeDelegationHandler = new RouteDelegationHandler();