@kodus/cli 0.4.8 → 0.4.9

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 (316) hide show
  1. package/README.md +77 -0
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +2 -1
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/config.d.ts +1 -5
  6. package/dist/commands/config.d.ts.map +1 -1
  7. package/dist/commands/config.js +10 -71
  8. package/dist/commands/config.js.map +1 -1
  9. package/dist/commands/hook/install.d.ts +1 -1
  10. package/dist/commands/hook/install.d.ts.map +1 -1
  11. package/dist/commands/hook/uninstall.d.ts +1 -1
  12. package/dist/commands/hook/uninstall.d.ts.map +1 -1
  13. package/dist/commands/memory/disable.d.ts +1 -1
  14. package/dist/commands/memory/disable.d.ts.map +1 -1
  15. package/dist/commands/pr.d.ts +1 -2
  16. package/dist/commands/pr.d.ts.map +1 -1
  17. package/dist/commands/pr.js +1 -243
  18. package/dist/commands/pr.js.map +1 -1
  19. package/dist/commands/review.d.ts +1 -2
  20. package/dist/commands/review.d.ts.map +1 -1
  21. package/dist/commands/review.js +1 -314
  22. package/dist/commands/review.js.map +1 -1
  23. package/dist/commands/status.d.ts.map +1 -1
  24. package/dist/commands/status.js +2 -14
  25. package/dist/commands/status.js.map +1 -1
  26. package/dist/commands/update.d.ts +1 -0
  27. package/dist/commands/update.d.ts.map +1 -1
  28. package/dist/commands/update.js +24 -1
  29. package/dist/commands/update.js.map +1 -1
  30. package/dist/features/pr/command.d.ts +4 -0
  31. package/dist/features/pr/command.d.ts.map +1 -0
  32. package/dist/features/pr/command.js +222 -0
  33. package/dist/features/pr/command.js.map +1 -0
  34. package/dist/features/repo-config/actions.d.ts +33 -0
  35. package/dist/features/repo-config/actions.d.ts.map +1 -0
  36. package/dist/features/repo-config/actions.js +260 -0
  37. package/dist/features/repo-config/actions.js.map +1 -0
  38. package/dist/features/repo-config/command.d.ts +15 -0
  39. package/dist/features/repo-config/command.d.ts.map +1 -0
  40. package/dist/features/repo-config/command.js +135 -0
  41. package/dist/features/repo-config/command.js.map +1 -0
  42. package/dist/features/review/command.d.ts +4 -0
  43. package/dist/features/review/command.d.ts.map +1 -0
  44. package/dist/features/review/command.js +248 -0
  45. package/dist/features/review/command.js.map +1 -0
  46. package/dist/features/review/diff.d.ts +23 -0
  47. package/dist/features/review/diff.d.ts.map +1 -0
  48. package/dist/features/review/diff.js +47 -0
  49. package/dist/features/review/diff.js.map +1 -0
  50. package/dist/features/review/errors.d.ts +3 -0
  51. package/dist/features/review/errors.d.ts.map +1 -0
  52. package/dist/features/review/errors.js +26 -0
  53. package/dist/features/review/errors.js.map +1 -0
  54. package/dist/features/review/no-changes.d.ts +6 -0
  55. package/dist/features/review/no-changes.d.ts.map +1 -0
  56. package/dist/features/review/no-changes.js +31 -0
  57. package/dist/features/review/no-changes.js.map +1 -0
  58. package/dist/features/review/options.d.ts +7 -0
  59. package/dist/features/review/options.d.ts.map +1 -0
  60. package/dist/features/review/options.js +18 -0
  61. package/dist/features/review/options.js.map +1 -0
  62. package/dist/features/review/result.d.ts +11 -0
  63. package/dist/features/review/result.d.ts.map +1 -0
  64. package/dist/features/review/result.js +49 -0
  65. package/dist/features/review/result.js.map +1 -0
  66. package/dist/formatters/json.d.ts +1 -1
  67. package/dist/formatters/json.d.ts.map +1 -1
  68. package/dist/formatters/markdown.d.ts +1 -1
  69. package/dist/formatters/markdown.d.ts.map +1 -1
  70. package/dist/formatters/markdown.js.map +1 -1
  71. package/dist/formatters/prompt.d.ts +1 -1
  72. package/dist/formatters/prompt.d.ts.map +1 -1
  73. package/dist/formatters/repo-config.d.ts +7 -0
  74. package/dist/formatters/repo-config.d.ts.map +1 -0
  75. package/dist/formatters/repo-config.js +99 -0
  76. package/dist/formatters/repo-config.js.map +1 -0
  77. package/dist/formatters/terminal.d.ts +1 -1
  78. package/dist/formatters/terminal.d.ts.map +1 -1
  79. package/dist/formatters/terminal.js.map +1 -1
  80. package/dist/index.js +2 -0
  81. package/dist/index.js.map +1 -1
  82. package/dist/services/api/api-core.d.ts +15 -0
  83. package/dist/services/api/api-core.d.ts.map +1 -0
  84. package/dist/services/api/api-core.js +292 -0
  85. package/dist/services/api/api-core.js.map +1 -0
  86. package/dist/services/api/api.interface.d.ts +16 -1
  87. package/dist/services/api/api.interface.d.ts.map +1 -1
  88. package/dist/services/api/api.real.d.ts +12 -20
  89. package/dist/services/api/api.real.d.ts.map +1 -1
  90. package/dist/services/api/api.real.js +8 -545
  91. package/dist/services/api/api.real.js.map +1 -1
  92. package/dist/services/api/auth.api.d.ts +17 -0
  93. package/dist/services/api/auth.api.d.ts.map +1 -0
  94. package/dist/services/api/auth.api.js +73 -0
  95. package/dist/services/api/auth.api.js.map +1 -0
  96. package/dist/services/api/config.api.d.ts +24 -0
  97. package/dist/services/api/config.api.d.ts.map +1 -0
  98. package/dist/services/api/config.api.js +78 -0
  99. package/dist/services/api/config.api.js.map +1 -0
  100. package/dist/services/api/memory.api.d.ts +10 -0
  101. package/dist/services/api/memory.api.d.ts.map +1 -0
  102. package/dist/services/api/memory.api.js +19 -0
  103. package/dist/services/api/memory.api.js.map +1 -0
  104. package/dist/services/api/review.api.d.ts +26 -0
  105. package/dist/services/api/review.api.d.ts.map +1 -0
  106. package/dist/services/api/review.api.js +117 -0
  107. package/dist/services/api/review.api.js.map +1 -0
  108. package/dist/services/api/sessions.api.js +1 -1
  109. package/dist/services/api/sessions.api.js.map +1 -1
  110. package/dist/services/api/trial.api.d.ts +10 -0
  111. package/dist/services/api/trial.api.d.ts.map +1 -0
  112. package/dist/services/api/trial.api.js +11 -0
  113. package/dist/services/api/trial.api.js.map +1 -0
  114. package/dist/services/auth.service.d.ts +1 -1
  115. package/dist/services/auth.service.d.ts.map +1 -1
  116. package/dist/services/auth.service.js +1 -1
  117. package/dist/services/auth.service.js.map +1 -1
  118. package/dist/services/context.service.d.ts +1 -1
  119. package/dist/services/context.service.d.ts.map +1 -1
  120. package/dist/services/fix.service.d.ts +1 -1
  121. package/dist/services/fix.service.d.ts.map +1 -1
  122. package/dist/services/git.service.d.ts +2 -2
  123. package/dist/services/git.service.d.ts.map +1 -1
  124. package/dist/services/git.service.js +25 -172
  125. package/dist/services/git.service.js.map +1 -1
  126. package/dist/services/lifecycle-events.d.ts +49 -0
  127. package/dist/services/lifecycle-events.d.ts.map +1 -0
  128. package/dist/services/lifecycle-events.js +86 -0
  129. package/dist/services/lifecycle-events.js.map +1 -0
  130. package/dist/services/lifecycle-git-context.d.ts +15 -0
  131. package/dist/services/lifecycle-git-context.d.ts.map +1 -0
  132. package/dist/services/lifecycle-git-context.js +23 -0
  133. package/dist/services/lifecycle-git-context.js.map +1 -0
  134. package/dist/services/lifecycle-local-turn-state.d.ts +14 -0
  135. package/dist/services/lifecycle-local-turn-state.d.ts.map +1 -0
  136. package/dist/services/lifecycle-local-turn-state.js +18 -0
  137. package/dist/services/lifecycle-local-turn-state.js.map +1 -0
  138. package/dist/services/lifecycle-transcript.d.ts +25 -0
  139. package/dist/services/lifecycle-transcript.d.ts.map +1 -0
  140. package/dist/services/lifecycle-transcript.js +29 -0
  141. package/dist/services/lifecycle-transcript.js.map +1 -0
  142. package/dist/services/lifecycle-turn-data.d.ts +11 -0
  143. package/dist/services/lifecycle-turn-data.d.ts.map +1 -0
  144. package/dist/services/lifecycle-turn-data.js +23 -0
  145. package/dist/services/lifecycle-turn-data.js.map +1 -0
  146. package/dist/services/lifecycle.service.d.ts.map +1 -1
  147. package/dist/services/lifecycle.service.js +63 -132
  148. package/dist/services/lifecycle.service.js.map +1 -1
  149. package/dist/services/repo-config.service.d.ts.map +1 -1
  150. package/dist/services/repo-config.service.js +2 -8
  151. package/dist/services/repo-config.service.js.map +1 -1
  152. package/dist/services/repo-settings-wizard.service.d.ts +19 -0
  153. package/dist/services/repo-settings-wizard.service.d.ts.map +1 -0
  154. package/dist/services/repo-settings-wizard.service.js +260 -0
  155. package/dist/services/repo-settings-wizard.service.js.map +1 -0
  156. package/dist/services/repo-settings.service.d.ts +20 -0
  157. package/dist/services/repo-settings.service.d.ts.map +1 -0
  158. package/dist/services/repo-settings.service.js +86 -0
  159. package/dist/services/repo-settings.service.js.map +1 -0
  160. package/dist/services/review-auth-fallback.d.ts +7 -0
  161. package/dist/services/review-auth-fallback.d.ts.map +1 -0
  162. package/dist/services/review-auth-fallback.js +25 -0
  163. package/dist/services/review-auth-fallback.js.map +1 -0
  164. package/dist/services/review-config-builder.d.ts +19 -0
  165. package/dist/services/review-config-builder.d.ts.map +1 -0
  166. package/dist/services/review-config-builder.js +17 -0
  167. package/dist/services/review-config-builder.js.map +1 -0
  168. package/dist/services/review-file-filter.d.ts +3 -0
  169. package/dist/services/review-file-filter.d.ts.map +1 -0
  170. package/dist/services/review-file-filter.js +35 -0
  171. package/dist/services/review-file-filter.js.map +1 -0
  172. package/dist/services/review-normalizer.d.ts +6 -0
  173. package/dist/services/review-normalizer.d.ts.map +1 -0
  174. package/dist/services/review-normalizer.js +62 -0
  175. package/dist/services/review-normalizer.js.map +1 -0
  176. package/dist/services/review-verbose.d.ts +28 -0
  177. package/dist/services/review-verbose.d.ts.map +1 -0
  178. package/dist/services/review-verbose.js +52 -0
  179. package/dist/services/review-verbose.js.map +1 -0
  180. package/dist/services/review.service.d.ts +1 -5
  181. package/dist/services/review.service.d.ts.map +1 -1
  182. package/dist/services/review.service.js +55 -182
  183. package/dist/services/review.service.js.map +1 -1
  184. package/dist/types/auth.d.ts +18 -0
  185. package/dist/types/auth.d.ts.map +1 -0
  186. package/dist/types/auth.js +2 -0
  187. package/dist/types/auth.js.map +1 -0
  188. package/dist/types/cli.d.ts +33 -0
  189. package/dist/types/cli.d.ts.map +1 -0
  190. package/dist/types/cli.js +2 -0
  191. package/dist/types/cli.js.map +1 -0
  192. package/dist/types/config.d.ts +47 -0
  193. package/dist/types/config.d.ts.map +1 -0
  194. package/dist/types/config.js +2 -0
  195. package/dist/types/config.js.map +1 -0
  196. package/dist/types/errors.d.ts +8 -0
  197. package/dist/types/errors.d.ts.map +1 -0
  198. package/dist/types/errors.js +15 -0
  199. package/dist/types/errors.js.map +1 -0
  200. package/dist/types/index.d.ts +8 -191
  201. package/dist/types/index.d.ts.map +1 -1
  202. package/dist/types/index.js +1 -14
  203. package/dist/types/index.js.map +1 -1
  204. package/dist/types/repo-config.d.ts +24 -0
  205. package/dist/types/repo-config.d.ts.map +1 -0
  206. package/dist/types/repo-config.js +2 -0
  207. package/dist/types/repo-config.js.map +1 -0
  208. package/dist/types/review.d.ts +112 -0
  209. package/dist/types/review.d.ts.map +1 -0
  210. package/dist/types/review.js +2 -0
  211. package/dist/types/review.js.map +1 -0
  212. package/dist/types/trial.d.ts +10 -0
  213. package/dist/types/trial.d.ts.map +1 -0
  214. package/dist/types/trial.js +2 -0
  215. package/dist/types/trial.js.map +1 -0
  216. package/dist/ui/interactive-formatters.d.ts +6 -0
  217. package/dist/ui/interactive-formatters.d.ts.map +1 -0
  218. package/dist/ui/interactive-formatters.js +61 -0
  219. package/dist/ui/interactive-formatters.js.map +1 -0
  220. package/dist/ui/interactive-helpers.d.ts +12 -0
  221. package/dist/ui/interactive-helpers.d.ts.map +1 -0
  222. package/dist/ui/interactive-helpers.js +51 -0
  223. package/dist/ui/interactive-helpers.js.map +1 -0
  224. package/dist/ui/interactive-renderers.d.ts +6 -0
  225. package/dist/ui/interactive-renderers.d.ts.map +1 -0
  226. package/dist/ui/interactive-renderers.js +82 -0
  227. package/dist/ui/interactive-renderers.js.map +1 -0
  228. package/dist/ui/interactive.d.ts +1 -9
  229. package/dist/ui/interactive.d.ts.map +1 -1
  230. package/dist/ui/interactive.js +11 -187
  231. package/dist/ui/interactive.js.map +1 -1
  232. package/dist/utils/auth-mode.d.ts +7 -0
  233. package/dist/utils/auth-mode.d.ts.map +1 -0
  234. package/dist/utils/auth-mode.js +42 -0
  235. package/dist/utils/auth-mode.js.map +1 -0
  236. package/dist/utils/banner.d.ts.map +1 -1
  237. package/dist/utils/banner.js +2 -14
  238. package/dist/utils/banner.js.map +1 -1
  239. package/dist/utils/command-context.d.ts +1 -1
  240. package/dist/utils/command-context.d.ts.map +1 -1
  241. package/dist/utils/command-errors.d.ts.map +1 -1
  242. package/dist/utils/command-errors.js +25 -1
  243. package/dist/utils/command-errors.js.map +1 -1
  244. package/dist/utils/commander-errors.d.ts +8 -0
  245. package/dist/utils/commander-errors.d.ts.map +1 -0
  246. package/dist/utils/commander-errors.js +79 -0
  247. package/dist/utils/commander-errors.js.map +1 -0
  248. package/dist/utils/commander-setup.d.ts +3 -0
  249. package/dist/utils/commander-setup.d.ts.map +1 -0
  250. package/dist/utils/commander-setup.js +10 -0
  251. package/dist/utils/commander-setup.js.map +1 -0
  252. package/dist/utils/credentials.d.ts +1 -1
  253. package/dist/utils/credentials.d.ts.map +1 -1
  254. package/dist/utils/git-diff.d.ts +5 -0
  255. package/dist/utils/git-diff.d.ts.map +1 -0
  256. package/dist/utils/git-diff.js +14 -0
  257. package/dist/utils/git-diff.js.map +1 -0
  258. package/dist/utils/git-file-reader.d.ts +22 -0
  259. package/dist/utils/git-file-reader.d.ts.map +1 -0
  260. package/dist/utils/git-file-reader.js +45 -0
  261. package/dist/utils/git-file-reader.js.map +1 -0
  262. package/dist/utils/git-file-selection.d.ts +14 -0
  263. package/dist/utils/git-file-selection.d.ts.map +1 -0
  264. package/dist/utils/git-file-selection.js +20 -0
  265. package/dist/utils/git-file-selection.js.map +1 -0
  266. package/dist/utils/git-file-targets.d.ts +4 -0
  267. package/dist/utils/git-file-targets.d.ts.map +1 -0
  268. package/dist/utils/git-file-targets.js +11 -0
  269. package/dist/utils/git-file-targets.js.map +1 -0
  270. package/dist/utils/git-remote.d.ts +7 -0
  271. package/dist/utils/git-remote.d.ts.map +1 -0
  272. package/dist/utils/git-remote.js +60 -0
  273. package/dist/utils/git-remote.js.map +1 -0
  274. package/dist/utils/git-status.d.ts +7 -0
  275. package/dist/utils/git-status.d.ts.map +1 -0
  276. package/dist/utils/git-status.js +36 -0
  277. package/dist/utils/git-status.js.map +1 -0
  278. package/dist/utils/input-validation.d.ts +1 -1
  279. package/dist/utils/input-validation.d.ts.map +1 -1
  280. package/dist/utils/rate-limit.d.ts +1 -1
  281. package/dist/utils/repo-settings-dashboard.d.ts +6 -0
  282. package/dist/utils/repo-settings-dashboard.d.ts.map +1 -0
  283. package/dist/utils/repo-settings-dashboard.js +36 -0
  284. package/dist/utils/repo-settings-dashboard.js.map +1 -0
  285. package/dist/utils/repo-settings-patterns.d.ts +7 -0
  286. package/dist/utils/repo-settings-patterns.d.ts.map +1 -0
  287. package/dist/utils/repo-settings-patterns.js +66 -0
  288. package/dist/utils/repo-settings-patterns.js.map +1 -0
  289. package/dist/utils/repo-settings-schema.d.ts +6 -0
  290. package/dist/utils/repo-settings-schema.d.ts.map +1 -0
  291. package/dist/utils/repo-settings-schema.js +70 -0
  292. package/dist/utils/repo-settings-schema.js.map +1 -0
  293. package/dist/utils/review-output.d.ts +4 -0
  294. package/dist/utils/review-output.d.ts.map +1 -0
  295. package/dist/utils/review-output.js +18 -0
  296. package/dist/utils/review-output.js.map +1 -0
  297. package/dist/utils/skills-sync-manifest.d.ts +5 -0
  298. package/dist/utils/skills-sync-manifest.d.ts.map +1 -0
  299. package/dist/utils/skills-sync-manifest.js +39 -0
  300. package/dist/utils/skills-sync-manifest.js.map +1 -0
  301. package/dist/utils/skills-sync-paths.d.ts +5 -0
  302. package/dist/utils/skills-sync-paths.d.ts.map +1 -0
  303. package/dist/utils/skills-sync-paths.js +60 -0
  304. package/dist/utils/skills-sync-paths.js.map +1 -0
  305. package/dist/utils/skills-sync-targets.d.ts +3 -0
  306. package/dist/utils/skills-sync-targets.d.ts.map +1 -0
  307. package/dist/utils/skills-sync-targets.js +211 -0
  308. package/dist/utils/skills-sync-targets.js.map +1 -0
  309. package/dist/utils/skills-sync.d.ts.map +1 -1
  310. package/dist/utils/skills-sync.js +4 -253
  311. package/dist/utils/skills-sync.js.map +1 -1
  312. package/dist/utils/team-key-auth.d.ts +5 -0
  313. package/dist/utils/team-key-auth.d.ts.map +1 -0
  314. package/dist/utils/team-key-auth.js +14 -0
  315. package/dist/utils/team-key-auth.js.map +1 -0
  316. package/package.json +4 -4
@@ -0,0 +1,222 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import ora from 'ora';
4
+ import fs from 'fs/promises';
5
+ import { reviewService } from '../../services/review.service.js';
6
+ import { gitService } from '../../services/git.service.js';
7
+ import { exitWithCode } from '../../utils/cli-exit.js';
8
+ import { cliDebug, cliError, cliInfo } from '../../utils/logger.js';
9
+ import { createCommandContext } from '../../utils/command-context.js';
10
+ import { buildAgentErrorEnvelope, buildAgentSuccessEnvelope, emitAgentEnvelope, } from '../../utils/command-output.js';
11
+ import { CommandError, normalizeCommandError, } from '../../utils/command-errors.js';
12
+ import { assertStructuredOutputForFields, parseCsvEnumList, parseFieldList, parseOptionalNumber, validateHttpUrl, } from '../../utils/input-validation.js';
13
+ import { applyFieldMask } from '../../utils/field-mask.js';
14
+ import { formatReviewOutput } from '../../utils/review-output.js';
15
+ export function createPrCommand() {
16
+ const prCommand = new Command('pr').description('Pull request commands');
17
+ prCommand
18
+ .command('suggestions')
19
+ .description('Fetch suggestions for a pull request')
20
+ .option('--pr-url <url>', 'Pull request URL')
21
+ .option('--pr-number <number>', 'Pull request number')
22
+ .option('--repo-id <id>', 'Repository ID for the pull request')
23
+ .option('--severity <list>', 'Comma-separated severities to include')
24
+ .option('--category <list>', 'Comma-separated categories to include')
25
+ .option('--fields <csv>', 'Select response fields (JSON/agent mode only), e.g. summary,issues.file')
26
+ .action(prSuggestionsAction);
27
+ prCommand
28
+ .command('business-validation')
29
+ .description('Run business rules validation for local diff only')
30
+ .argument('[files...]', 'Specific files to include in local diff mode')
31
+ .option('--task-url <url>', 'Task URL to append to the validation command')
32
+ .option('--task-id <id>', 'Task ID or issue key (e.g. KC-1441) to append')
33
+ .option('-s, --staged', 'Use only staged changes when running in local diff mode')
34
+ .option('-c, --commit <sha>', 'Use diff from a specific commit when running in local diff mode')
35
+ .option('-b, --branch <name>', 'Compare current branch against a base branch in local diff mode')
36
+ .option('--dry-run', 'Print payload without executing the API call', false)
37
+ .action(businessValidationAction);
38
+ return prCommand;
39
+ }
40
+ async function prSuggestionsAction(options, cmd) {
41
+ const globalOpts = cmd.optsWithGlobals();
42
+ const ctx = createCommandContext('pr suggestions', globalOpts);
43
+ const spinner = ora();
44
+ try {
45
+ assertStructuredOutputForFields({
46
+ fields: options.fields,
47
+ format: globalOpts.format,
48
+ isAgent: ctx.isAgent,
49
+ });
50
+ const prNumber = parseOptionalNumber(options.prNumber, '--pr-number');
51
+ const normalizedPrUrl = options.prUrl
52
+ ? validateHttpUrl(options.prUrl, '--pr-url')
53
+ : undefined;
54
+ const allowedSeverities = ['info', 'warning', 'error', 'critical', 'high', 'medium', 'low'];
55
+ const allowedCategories = [
56
+ 'security_vulnerability',
57
+ 'performance',
58
+ 'code_quality',
59
+ 'best_practices',
60
+ 'style',
61
+ 'bug',
62
+ 'complexity',
63
+ 'maintainability',
64
+ 'documentation',
65
+ ];
66
+ const severityFilter = parseCsvEnumList(options.severity, '--severity', allowedSeverities);
67
+ const categoryFilter = parseCsvEnumList(options.category, '--category', allowedCategories);
68
+ const fields = parseFieldList(options.fields);
69
+ if (!normalizedPrUrl && !(prNumber && options.repoId)) {
70
+ throw new CommandError('INVALID_INPUT', 'Provide --pr-url or both --pr-number and --repo-id.');
71
+ }
72
+ const shouldRequestMarkdown = !ctx.isAgent &&
73
+ (globalOpts.format === 'prompt' ||
74
+ globalOpts.format === 'markdown');
75
+ if (!globalOpts.quiet && !ctx.isAgent) {
76
+ spinner.start(chalk.cyan('Fetching pull request suggestions...'));
77
+ }
78
+ const { result, markdown } = await reviewService.getPullRequestSuggestions({
79
+ prUrl: normalizedPrUrl,
80
+ prNumber,
81
+ repositoryId: options.repoId,
82
+ format: shouldRequestMarkdown ? 'markdown' : undefined,
83
+ severity: severityFilter?.join(','),
84
+ category: categoryFilter?.join(','),
85
+ });
86
+ if (!globalOpts.quiet && !ctx.isAgent) {
87
+ spinner.succeed(chalk.green('Suggestions fetched'));
88
+ }
89
+ const selectedResult = fields ? applyFieldMask(result, fields) : result;
90
+ if (ctx.isAgent) {
91
+ await emitAgentEnvelope(buildAgentSuccessEnvelope(ctx.command, selectedResult, ctx.startedAt), ctx.outputFile);
92
+ return;
93
+ }
94
+ const output = markdown && shouldRequestMarkdown
95
+ ? markdown
96
+ : formatReviewOutput(selectedResult, globalOpts.format);
97
+ if (globalOpts.output) {
98
+ await fs.writeFile(globalOpts.output, output, 'utf-8');
99
+ cliInfo(chalk.green(`\nOutput saved to ${globalOpts.output}`));
100
+ }
101
+ else {
102
+ cliInfo(output);
103
+ }
104
+ }
105
+ catch (error) {
106
+ const normalized = normalizeCommandError(error);
107
+ if (ctx.isAgent) {
108
+ await emitAgentEnvelope(buildAgentErrorEnvelope(ctx.command, {
109
+ code: normalized.code,
110
+ message: normalized.message,
111
+ details: normalized.details,
112
+ }, ctx.startedAt), ctx.outputFile);
113
+ if (normalized.exitCode > 0) {
114
+ exitWithCode(normalized.exitCode);
115
+ }
116
+ return;
117
+ }
118
+ if (!globalOpts.quiet) {
119
+ spinner.fail(chalk.red('Failed to fetch pull request suggestions'));
120
+ }
121
+ if (error instanceof Error) {
122
+ cliError(chalk.red(error.message));
123
+ }
124
+ exitWithCode(normalized.exitCode);
125
+ }
126
+ }
127
+ async function businessValidationAction(files, options, cmd) {
128
+ const spinner = ora();
129
+ const globalOpts = cmd.optsWithGlobals();
130
+ try {
131
+ if (options.taskUrl && options.taskId) {
132
+ throw new Error('Provide only one of --task-url or --task-id.');
133
+ }
134
+ const diff = await getLocalDiffForBusinessValidation(files ?? [], options, globalOpts.verbose);
135
+ if (!diff.trim()) {
136
+ throw new Error('No local changes found for the selected scope.');
137
+ }
138
+ let repository;
139
+ const orgRepo = await gitService.extractOrgRepo();
140
+ if (orgRepo) {
141
+ repository = `${orgRepo.org}/${orgRepo.repo}`;
142
+ }
143
+ const payload = {
144
+ repository,
145
+ taskUrl: options.taskUrl,
146
+ taskId: options.taskId,
147
+ diff,
148
+ };
149
+ if (options.dryRun) {
150
+ cliInfo(chalk.cyan('Dry run mode. Payload that would be sent to /cli/business-validation:'));
151
+ cliInfo(JSON.stringify(payload, null, 2));
152
+ return;
153
+ }
154
+ if (!globalOpts.quiet) {
155
+ spinner.start(chalk.cyan('Running business validation...'));
156
+ }
157
+ const response = await reviewService.triggerBusinessValidation(payload);
158
+ if (!globalOpts.quiet) {
159
+ spinner.succeed(chalk.green('Business validation completed.'));
160
+ }
161
+ cliInfo(chalk.dim('Mode: local diff'));
162
+ if (response.repositoryName) {
163
+ cliInfo(chalk.dim(`Repository: ${response.repositoryName}`));
164
+ }
165
+ if (response.taskReference) {
166
+ cliInfo(chalk.dim(`Task: ${response.taskReference}`));
167
+ }
168
+ cliInfo(chalk.dim(`Command: ${response.command}`));
169
+ cliInfo('');
170
+ cliInfo(response.result);
171
+ }
172
+ catch (error) {
173
+ if (!globalOpts.quiet) {
174
+ spinner.fail(chalk.red('Failed to trigger business validation'));
175
+ }
176
+ if (error instanceof Error) {
177
+ cliError(chalk.red(error.message));
178
+ }
179
+ exitWithCode(1);
180
+ }
181
+ }
182
+ async function getLocalDiffForBusinessValidation(files, options, verbose) {
183
+ gitService.setVerbose(!!verbose);
184
+ const hasFiles = files.length > 0;
185
+ const hasBranch = !!options.branch;
186
+ const hasCommit = !!options.commit;
187
+ const hasStaged = !!options.staged;
188
+ const selectedScopes = [hasFiles, hasBranch, hasCommit, hasStaged].filter(Boolean).length;
189
+ if (selectedScopes > 1) {
190
+ throw new Error('Use only one local diff scope: [files], --staged, --branch, or --commit.');
191
+ }
192
+ if (hasFiles) {
193
+ if (verbose) {
194
+ cliDebug(chalk.dim(`[verbose] Getting local diff for specific files: ${files.join(', ')}`));
195
+ }
196
+ return gitService.getDiffForFiles(files);
197
+ }
198
+ if (options.branch !== undefined) {
199
+ if (verbose) {
200
+ cliDebug(chalk.dim(`[verbose] Getting local diff for branch: ${options.branch}`));
201
+ }
202
+ return gitService.getDiffForBranch(options.branch);
203
+ }
204
+ if (options.commit !== undefined) {
205
+ if (verbose) {
206
+ cliDebug(chalk.dim(`[verbose] Getting local diff for commit: ${options.commit}`));
207
+ }
208
+ return gitService.getDiffForCommit(options.commit);
209
+ }
210
+ if (hasStaged) {
211
+ if (verbose) {
212
+ cliDebug(chalk.dim('[verbose] Getting local staged diff'));
213
+ }
214
+ return gitService.getStagedDiff();
215
+ }
216
+ if (verbose) {
217
+ cliDebug(chalk.dim('[verbose] Getting local working tree diff'));
218
+ }
219
+ return gitService.getWorkingTreeDiff();
220
+ }
221
+ export const prCommand = createPrCommand();
222
+ //# sourceMappingURL=command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/features/pr/command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ export type ConfigRepoAddOptions = {
2
+ prompt?: boolean;
3
+ json?: boolean;
4
+ };
5
+ export type ConfigRepoListOptions = {
6
+ json?: boolean;
7
+ };
8
+ export type ConfigRepoShowOptions = {
9
+ json?: boolean;
10
+ };
11
+ export type ConfigRepoSetupOptions = {
12
+ yes?: boolean;
13
+ json?: boolean;
14
+ };
15
+ export type ConfigRepoOpenOptions = {
16
+ section?: string;
17
+ json?: boolean;
18
+ };
19
+ export type ConfigRepoMutationOptions = {
20
+ json?: boolean;
21
+ };
22
+ export declare function configRepoAction(repository?: string, options?: ConfigRepoAddOptions): Promise<void>;
23
+ export declare function configRepoAddAction(repository?: string, options?: ConfigRepoAddOptions): Promise<void>;
24
+ export declare function configRemoteAction(repository?: string, options?: ConfigRepoAddOptions): Promise<void>;
25
+ export declare function configRemoteAddAction(repository?: string, options?: ConfigRepoAddOptions): Promise<void>;
26
+ export declare function configRepoListAction(options?: ConfigRepoListOptions): Promise<void>;
27
+ export declare function configRepoShowAction(repository?: string, options?: ConfigRepoShowOptions): Promise<void>;
28
+ export declare function configRepoSetupAction(repository?: string, options?: ConfigRepoSetupOptions): Promise<void>;
29
+ export declare function configRepoOpenAction(repository?: string, options?: ConfigRepoOpenOptions): Promise<void>;
30
+ export declare function configRepoSetAction(repository: string | undefined, key: string, value: string, options?: ConfigRepoMutationOptions): Promise<void>;
31
+ export declare function configRepoPatternAddAction(repository: string | undefined, field: string, pattern: string, options?: ConfigRepoMutationOptions): Promise<void>;
32
+ export declare function configRepoPatternRemoveAction(repository: string | undefined, field: string, pattern: string, options?: ConfigRepoMutationOptions): Promise<void>;
33
+ //# sourceMappingURL=actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../src/features/repo-config/actions.ts"],"names":[],"mappings":"AA6BA,MAAM,MAAM,oBAAoB,GAAG;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACjC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACpC,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AA4BF,wBAAsB,gBAAgB,CAClC,UAAU,SAAM,EAChB,OAAO,GAAE,oBAAyB,GACnC,OAAO,CAAC,IAAI,CAAC,CA4Cf;AAED,wBAAsB,mBAAmB,CACrC,UAAU,SAAM,EAChB,OAAO,GAAE,oBAAyB,GACnC,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,kBAAkB,CACpC,UAAU,SAAM,EAChB,OAAO,GAAE,oBAAyB,GACnC,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,qBAAqB,CACvC,UAAU,SAAM,EAChB,OAAO,GAAE,oBAAyB,GACnC,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,oBAAoB,CACtC,OAAO,GAAE,qBAA0B,GACpC,OAAO,CAAC,IAAI,CAAC,CAuBf;AAED,wBAAsB,oBAAoB,CACtC,UAAU,SAAM,EAChB,OAAO,GAAE,qBAA0B,GACpC,OAAO,CAAC,IAAI,CAAC,CAkBf;AAED,wBAAsB,qBAAqB,CACvC,UAAU,SAAM,EAChB,OAAO,GAAE,sBAA2B,GACrC,OAAO,CAAC,IAAI,CAAC,CA0Hf;AAED,wBAAsB,oBAAoB,CACtC,UAAU,SAAM,EAChB,OAAO,GAAE,qBAA0B,GACpC,OAAO,CAAC,IAAI,CAAC,CA2Cf;AAED,wBAAsB,mBAAmB,CACrC,UAAU,oBAAM,EAChB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,yBAA8B,GACxC,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED,wBAAsB,0BAA0B,CAC5C,UAAU,oBAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,yBAA8B,GACxC,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED,wBAAsB,6BAA6B,CAC/C,UAAU,oBAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,yBAA8B,GACxC,OAAO,CAAC,IAAI,CAAC,CAsBf"}
@@ -0,0 +1,260 @@
1
+ import { confirm, select } from '@inquirer/prompts';
2
+ import chalk from 'chalk';
3
+ import open from 'open';
4
+ import { formatRepositorySettingsOpenInfo, formatRepositorySettings, formatRepositorySetupPreview, } from '../../formatters/repo-config.js';
5
+ import { repoConfigService } from '../../services/repo-config.service.js';
6
+ import { repositorySettingsService } from '../../services/repo-settings.service.js';
7
+ import { repositorySettingsWizardService } from '../../services/repo-settings-wizard.service.js';
8
+ import { exitWithCode } from '../../utils/cli-exit.js';
9
+ import { cliError, cliInfo } from '../../utils/logger.js';
10
+ import { normalizeCommandError } from '../../utils/command-errors.js';
11
+ import { applyRepositorySetting, validateRepositorySettingKey, } from '../../utils/repo-settings-schema.js';
12
+ import { addRepositoryPattern, removeRepositoryPattern, validateRepositoryPatternField, } from '../../utils/repo-settings-patterns.js';
13
+ import { getKodusAppUrl, getRepositorySettingsSectionLabel, validateRepositorySettingsSection, } from '../../utils/repo-settings-dashboard.js';
14
+ function shouldOfferSetupPrompt(options = {}) {
15
+ if (options.prompt === false || options.json) {
16
+ return false;
17
+ }
18
+ return Boolean(process.stdin.isTTY && process.stdout.isTTY);
19
+ }
20
+ function printRepositoryMutationResult(result, options = {}) {
21
+ if (options.json) {
22
+ cliInfo(JSON.stringify(result, null, 2));
23
+ return;
24
+ }
25
+ cliInfo(chalk.green(`Repository settings updated for ${result.repositoryFullName}`));
26
+ }
27
+ export async function configRepoAction(repository = '.', options = {}) {
28
+ try {
29
+ const result = await repoConfigService.addRepository(repository);
30
+ if (options.json) {
31
+ cliInfo(JSON.stringify(result, null, 2));
32
+ return;
33
+ }
34
+ if (result.status === 'already-added') {
35
+ cliInfo(chalk.yellow(`Repository '${result.repositoryFullName}' is already added to Kodus.`));
36
+ return;
37
+ }
38
+ cliInfo(chalk.green(`Repository '${result.repositoryFullName}' was added to Kodus successfully.`));
39
+ if (shouldOfferSetupPrompt(options)) {
40
+ const shouldConfigure = await confirm({
41
+ message: 'Configure this repository now?',
42
+ default: true,
43
+ });
44
+ if (shouldConfigure) {
45
+ await configRepoSetupAction(repository);
46
+ }
47
+ }
48
+ }
49
+ catch (error) {
50
+ if (error instanceof Error && error.message.includes('force closed')) {
51
+ cliInfo(chalk.yellow('Operation cancelled'));
52
+ return;
53
+ }
54
+ const normalized = normalizeCommandError(error);
55
+ cliError(chalk.red(normalized.message));
56
+ exitWithCode(normalized.exitCode);
57
+ }
58
+ }
59
+ export async function configRepoAddAction(repository = '.', options = {}) {
60
+ await configRepoAction(repository, options);
61
+ }
62
+ export async function configRemoteAction(repository = '.', options = {}) {
63
+ await configRepoAction(repository, options);
64
+ }
65
+ export async function configRemoteAddAction(repository = '.', options = {}) {
66
+ await configRepoAction(repository, options);
67
+ }
68
+ export async function configRepoListAction(options = {}) {
69
+ try {
70
+ const repositories = await repoConfigService.listRepositories();
71
+ if (options.json) {
72
+ cliInfo(JSON.stringify(repositories, null, 2));
73
+ return;
74
+ }
75
+ if (repositories.length === 0) {
76
+ cliInfo(chalk.yellow('No repositories are currently configured.'));
77
+ return;
78
+ }
79
+ cliInfo('Configured repositories:');
80
+ for (const repository of repositories) {
81
+ cliInfo(`- ${repository.fullName}`);
82
+ }
83
+ }
84
+ catch (error) {
85
+ const normalized = normalizeCommandError(error);
86
+ cliError(chalk.red(normalized.message));
87
+ exitWithCode(normalized.exitCode);
88
+ }
89
+ }
90
+ export async function configRepoShowAction(repository = '.', options = {}) {
91
+ try {
92
+ const result = await repositorySettingsService.getRepositorySettings(repository);
93
+ if (options.json) {
94
+ cliInfo(JSON.stringify(result, null, 2));
95
+ return;
96
+ }
97
+ for (const line of formatRepositorySettings(result)) {
98
+ cliInfo(line);
99
+ }
100
+ }
101
+ catch (error) {
102
+ const normalized = normalizeCommandError(error);
103
+ cliError(chalk.red(normalized.message));
104
+ exitWithCode(normalized.exitCode);
105
+ }
106
+ }
107
+ export async function configRepoSetupAction(repository = '.', options = {}) {
108
+ try {
109
+ const current = await repositorySettingsService.getRepositorySettings(repository);
110
+ let nextSettings = await repositorySettingsWizardService.collectSettings(current.settings, {
111
+ yes: options.yes,
112
+ writeLine: options.json ? undefined : cliInfo,
113
+ });
114
+ while (true) {
115
+ if (!options.json) {
116
+ for (const line of formatRepositorySetupPreview(current.repositoryFullName, current.settings, nextSettings)) {
117
+ cliInfo(line);
118
+ }
119
+ }
120
+ const nextAction = options.yes
121
+ ? 'apply'
122
+ : await select({
123
+ message: 'What do you want to do next?',
124
+ default: 'apply',
125
+ choices: [
126
+ { name: 'Apply settings', value: 'apply' },
127
+ { name: 'Edit General', value: 'edit-general' },
128
+ { name: 'Edit Patterns', value: 'edit-patterns' },
129
+ { name: 'Cancel', value: 'cancel' },
130
+ ],
131
+ });
132
+ if (nextAction === 'edit-general') {
133
+ nextSettings =
134
+ await repositorySettingsWizardService.collectGeneralSettings(nextSettings, {
135
+ writeLine: options.json ? undefined : cliInfo,
136
+ });
137
+ continue;
138
+ }
139
+ if (nextAction === 'edit-patterns') {
140
+ nextSettings =
141
+ await repositorySettingsWizardService.collectPatternSettings(nextSettings, {
142
+ writeLine: options.json ? undefined : cliInfo,
143
+ });
144
+ continue;
145
+ }
146
+ if (nextAction === 'cancel') {
147
+ if (options.json) {
148
+ cliInfo(JSON.stringify({
149
+ repositoryId: current.repositoryId,
150
+ repositoryFullName: current.repositoryFullName,
151
+ currentSettings: current.settings,
152
+ nextSettings,
153
+ applied: false,
154
+ }, null, 2));
155
+ return;
156
+ }
157
+ cliInfo(chalk.yellow('Operation cancelled'));
158
+ return;
159
+ }
160
+ break;
161
+ }
162
+ const updated = await repositorySettingsService.updateRepositorySettings(repository, nextSettings);
163
+ if (options.json) {
164
+ cliInfo(JSON.stringify({
165
+ repositoryId: updated.repositoryId,
166
+ repositoryFullName: updated.repositoryFullName,
167
+ currentSettings: current.settings,
168
+ nextSettings,
169
+ applied: true,
170
+ settings: updated.settings,
171
+ }, null, 2));
172
+ return;
173
+ }
174
+ cliInfo(chalk.green(`Repository settings updated for ${updated.repositoryFullName}`));
175
+ }
176
+ catch (error) {
177
+ if (error instanceof Error && error.message.includes('force closed')) {
178
+ cliInfo(chalk.yellow('Operation cancelled'));
179
+ return;
180
+ }
181
+ const normalized = normalizeCommandError(error);
182
+ cliError(chalk.red(normalized.message));
183
+ exitWithCode(normalized.exitCode);
184
+ }
185
+ }
186
+ export async function configRepoOpenAction(repository = '.', options = {}) {
187
+ try {
188
+ const section = validateRepositorySettingsSection(options.section);
189
+ const current = await repositorySettingsService.getRepositorySettings(repository);
190
+ const appUrl = getKodusAppUrl();
191
+ const sectionLabel = getRepositorySettingsSectionLabel(section);
192
+ if (options.json) {
193
+ cliInfo(JSON.stringify({
194
+ repositoryId: current.repositoryId,
195
+ repositoryFullName: current.repositoryFullName,
196
+ appUrl,
197
+ section,
198
+ sectionLabel,
199
+ }, null, 2));
200
+ return;
201
+ }
202
+ for (const line of formatRepositorySettingsOpenInfo(current.repositoryFullName, appUrl, sectionLabel)) {
203
+ cliInfo(line);
204
+ }
205
+ try {
206
+ await open(appUrl);
207
+ }
208
+ catch {
209
+ cliInfo(chalk.yellow(`Please visit: ${appUrl}`));
210
+ }
211
+ }
212
+ catch (error) {
213
+ const normalized = normalizeCommandError(error);
214
+ cliError(chalk.red(normalized.message));
215
+ exitWithCode(normalized.exitCode);
216
+ }
217
+ }
218
+ export async function configRepoSetAction(repository = '.', key, value, options = {}) {
219
+ try {
220
+ validateRepositorySettingKey(key);
221
+ const current = await repositorySettingsService.getRepositorySettings(repository);
222
+ const nextSettings = applyRepositorySetting(current.settings, key, value);
223
+ const updated = await repositorySettingsService.updateRepositorySettings(repository, nextSettings);
224
+ printRepositoryMutationResult(updated, options);
225
+ }
226
+ catch (error) {
227
+ const normalized = normalizeCommandError(error);
228
+ cliError(chalk.red(normalized.message));
229
+ exitWithCode(normalized.exitCode);
230
+ }
231
+ }
232
+ export async function configRepoPatternAddAction(repository = '.', field, pattern, options = {}) {
233
+ try {
234
+ validateRepositoryPatternField(field);
235
+ const current = await repositorySettingsService.getRepositorySettings(repository);
236
+ const nextSettings = addRepositoryPattern(current.settings, field, pattern);
237
+ const updated = await repositorySettingsService.updateRepositorySettings(repository, nextSettings);
238
+ printRepositoryMutationResult(updated, options);
239
+ }
240
+ catch (error) {
241
+ const normalized = normalizeCommandError(error);
242
+ cliError(chalk.red(normalized.message));
243
+ exitWithCode(normalized.exitCode);
244
+ }
245
+ }
246
+ export async function configRepoPatternRemoveAction(repository = '.', field, pattern, options = {}) {
247
+ try {
248
+ validateRepositoryPatternField(field);
249
+ const current = await repositorySettingsService.getRepositorySettings(repository);
250
+ const nextSettings = removeRepositoryPattern(current.settings, field, pattern);
251
+ const updated = await repositorySettingsService.updateRepositorySettings(repository, nextSettings);
252
+ printRepositoryMutationResult(updated, options);
253
+ }
254
+ catch (error) {
255
+ const normalized = normalizeCommandError(error);
256
+ cliError(chalk.red(normalized.message));
257
+ exitWithCode(normalized.exitCode);
258
+ }
259
+ }
260
+ //# sourceMappingURL=actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../src/features/repo-config/actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EACH,gCAAgC,EAChC,wBAAwB,EACxB,4BAA4B,GAC/B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,+BAA+B,EAAE,MAAM,gDAAgD,CAAC;AACjG,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EACH,sBAAsB,EACtB,4BAA4B,GAC/B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACH,oBAAoB,EACpB,uBAAuB,EACvB,8BAA8B,GACjC,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACH,cAAc,EACd,iCAAiC,EACjC,iCAAiC,GACpC,MAAM,wCAAwC,CAAC;AA6BhD,SAAS,sBAAsB,CAAC,UAAgC,EAAE;IAC9D,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,6BAA6B,CAClC,MAEC,EACD,UAAqC,EAAE;IAEvC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO;IACX,CAAC;IAED,OAAO,CACH,KAAK,CAAC,KAAK,CACP,mCAAmC,MAAM,CAAC,kBAAkB,EAAE,CACjE,CACJ,CAAC;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,UAAU,GAAG,GAAG,EAChB,UAAgC,EAAE;IAElC,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAEjE,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACzC,OAAO;QACX,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,eAAe,EAAE,CAAC;YACpC,OAAO,CACH,KAAK,CAAC,MAAM,CACR,eAAe,MAAM,CAAC,kBAAkB,8BAA8B,CACzE,CACJ,CAAC;YACF,OAAO;QACX,CAAC;QAED,OAAO,CACH,KAAK,CAAC,KAAK,CACP,eAAe,MAAM,CAAC,kBAAkB,oCAAoC,CAC/E,CACJ,CAAC;QAEF,IAAI,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC;gBAClC,OAAO,EAAE,gCAAgC;gBACzC,OAAO,EAAE,IAAI;aAChB,CAAC,CAAC;YAEH,IAAI,eAAe,EAAE,CAAC;gBAClB,MAAM,qBAAqB,CAAC,UAAU,CAAC,CAAC;YAC5C,CAAC;QACL,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YACnE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAC7C,OAAO;QACX,CAAC;QAED,MAAM,UAAU,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAChD,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QACxC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACrC,UAAU,GAAG,GAAG,EAChB,UAAgC,EAAE;IAElC,MAAM,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACpC,UAAU,GAAG,GAAG,EAChB,UAAgC,EAAE;IAElC,MAAM,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACvC,UAAU,GAAG,GAAG,EAChB,UAAgC,EAAE;IAElC,MAAM,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,UAAiC,EAAE;IAEnC,IAAI,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,gBAAgB,EAAE,CAAC;QAEhE,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/C,OAAO;QACX,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,2CAA2C,CAAC,CAAC,CAAC;YACnE,OAAO;QACX,CAAC;QAED,OAAO,CAAC,0BAA0B,CAAC,CAAC;QACpC,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE,CAAC;YACpC,OAAO,CAAC,KAAK,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,UAAU,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAChD,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QACxC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,UAAU,GAAG,GAAG,EAChB,UAAiC,EAAE;IAEnC,IAAI,CAAC;QACD,MAAM,MAAM,GACR,MAAM,yBAAyB,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAEtE,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACzC,OAAO;QACX,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,wBAAwB,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,UAAU,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAChD,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QACxC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACvC,UAAU,GAAG,GAAG,EAChB,UAAkC,EAAE;IAEpC,IAAI,CAAC;QACD,MAAM,OAAO,GACT,MAAM,yBAAyB,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;QACtE,IAAI,YAAY,GAAG,MAAM,+BAA+B,CAAC,eAAe,CACpE,OAAO,CAAC,QAAQ,EAChB;YACI,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;SAChD,CACJ,CAAC;QAEF,OAAO,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBAChB,KAAK,MAAM,IAAI,IAAI,4BAA4B,CAC3C,OAAO,CAAC,kBAAkB,EAC1B,OAAO,CAAC,QAAQ,EAChB,YAAY,CACf,EAAE,CAAC;oBACA,OAAO,CAAC,IAAI,CAAC,CAAC;gBAClB,CAAC;YACL,CAAC;YAED,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG;gBAC1B,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,MAAM,MAAM,CAAS;oBACjB,OAAO,EAAE,8BAA8B;oBACvC,OAAO,EAAE,OAAO;oBAChB,OAAO,EAAE;wBACL,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE;wBAC1C,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE;wBAC/C,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE;wBACjD,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;qBACtC;iBACJ,CAAC,CAAC;YAET,IAAI,UAAU,KAAK,cAAc,EAAE,CAAC;gBAChC,YAAY;oBACR,MAAM,+BAA+B,CAAC,sBAAsB,CACxD,YAAY,EACZ;wBACI,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;qBAChD,CACJ,CAAC;gBACN,SAAS;YACb,CAAC;YAED,IAAI,UAAU,KAAK,eAAe,EAAE,CAAC;gBACjC,YAAY;oBACR,MAAM,+BAA+B,CAAC,sBAAsB,CACxD,YAAY,EACZ;wBACI,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;qBAChD,CACJ,CAAC;gBACN,SAAS;YACb,CAAC;YAED,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;gBAC1B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;oBACf,OAAO,CACH,IAAI,CAAC,SAAS,CACV;wBACI,YAAY,EAAE,OAAO,CAAC,YAAY;wBAClC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;wBAC9C,eAAe,EAAE,OAAO,CAAC,QAAQ;wBACjC,YAAY;wBACZ,OAAO,EAAE,KAAK;qBACjB,EACD,IAAI,EACJ,CAAC,CACJ,CACJ,CAAC;oBACF,OAAO;gBACX,CAAC;gBAED,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC;gBAC7C,OAAO;YACX,CAAC;YAED,MAAM;QACV,CAAC;QAED,MAAM,OAAO,GACT,MAAM,yBAAyB,CAAC,wBAAwB,CACpD,UAAU,EACV,YAAY,CACf,CAAC;QAEN,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,CACH,IAAI,CAAC,SAAS,CACV;gBACI,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;gBAC9C,eAAe,EAAE,OAAO,CAAC,QAAQ;gBACjC,YAAY;gBACZ,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC7B,EACD,IAAI,EACJ,CAAC,CACJ,CACJ,CAAC;YACF,OAAO;QACX,CAAC;QAED,OAAO,CACH,KAAK,CAAC,KAAK,CACP,mCAAmC,OAAO,CAAC,kBAAkB,EAAE,CAClE,CACJ,CAAC;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YACnE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAC7C,OAAO;QACX,CAAC;QAED,MAAM,UAAU,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAChD,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QACxC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,UAAU,GAAG,GAAG,EAChB,UAAiC,EAAE;IAEnC,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,iCAAiC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACnE,MAAM,OAAO,GACT,MAAM,yBAAyB,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,iCAAiC,CAAC,OAAO,CAAC,CAAC;QAEhE,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,CACH,IAAI,CAAC,SAAS,CACV;gBACI,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;gBAC9C,MAAM;gBACN,OAAO;gBACP,YAAY;aACf,EACD,IAAI,EACJ,CAAC,CACJ,CACJ,CAAC;YACF,OAAO;QACX,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,gCAAgC,CAC/C,OAAO,CAAC,kBAAkB,EAC1B,MAAM,EACN,YAAY,CACf,EAAE,CAAC;YACA,OAAO,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,MAAM,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,UAAU,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAChD,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QACxC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACrC,UAAU,GAAG,GAAG,EAChB,GAAW,EACX,KAAa,EACb,UAAqC,EAAE;IAEvC,IAAI,CAAC;QACD,4BAA4B,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,OAAO,GACT,MAAM,yBAAyB,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;QACtE,MAAM,YAAY,GAAG,sBAAsB,CACvC,OAAO,CAAC,QAAQ,EAChB,GAAG,EACH,KAAK,CACR,CAAC;QACF,MAAM,OAAO,GACT,MAAM,yBAAyB,CAAC,wBAAwB,CACpD,UAAU,EACV,YAAY,CACf,CAAC;QAEN,6BAA6B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,UAAU,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAChD,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QACxC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC5C,UAAU,GAAG,GAAG,EAChB,KAAa,EACb,OAAe,EACf,UAAqC,EAAE;IAEvC,IAAI,CAAC;QACD,8BAA8B,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,OAAO,GACT,MAAM,yBAAyB,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;QACtE,MAAM,YAAY,GAAG,oBAAoB,CACrC,OAAO,CAAC,QAAQ,EAChB,KAAK,EACL,OAAO,CACV,CAAC;QACF,MAAM,OAAO,GACT,MAAM,yBAAyB,CAAC,wBAAwB,CACpD,UAAU,EACV,YAAY,CACf,CAAC;QAEN,6BAA6B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,UAAU,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAChD,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QACxC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAC/C,UAAU,GAAG,GAAG,EAChB,KAAa,EACb,OAAe,EACf,UAAqC,EAAE;IAEvC,IAAI,CAAC;QACD,8BAA8B,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,OAAO,GACT,MAAM,yBAAyB,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;QACtE,MAAM,YAAY,GAAG,uBAAuB,CACxC,OAAO,CAAC,QAAQ,EAChB,KAAK,EACL,OAAO,CACV,CAAC;QACF,MAAM,OAAO,GACT,MAAM,yBAAyB,CAAC,wBAAwB,CACpD,UAAU,EACV,YAAY,CACf,CAAC;QAEN,6BAA6B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,UAAU,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAChD,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QACxC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;AACL,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { Command } from 'commander';
2
+ import { type ConfigRepoAddOptions } from './actions.js';
3
+ export declare const REPOSITORY_CONFIG_DESCRIPTION = "Inspect and update the current repository settings in Kodus. Team-key auth is required for repository config commands. Use 'kodus config -r [repository]' as a shortcut for 'kodus config remote add [repository]'.";
4
+ type RepositoryConfigHandlers = {
5
+ action: (repository?: string, options?: ConfigRepoAddOptions) => Promise<void>;
6
+ addAction: (repository?: string, options?: ConfigRepoAddOptions) => Promise<void>;
7
+ };
8
+ export declare function registerRepositoryConfigCommand(command: Command, options?: {
9
+ description?: string;
10
+ handlers?: RepositoryConfigHandlers;
11
+ }): void;
12
+ export declare function registerRemoteRepositoryConfig(command: Command): void;
13
+ export declare function registerRepoAliasConfig(command: Command): void;
14
+ export {};
15
+ //# sourceMappingURL=command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/features/repo-config/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAYH,KAAK,oBAAoB,EAM5B,MAAM,cAAc,CAAC;AAGtB,eAAO,MAAM,6BAA6B,wNAC+K,CAAC;AAE1N,KAAK,wBAAwB,GAAG;IAC5B,MAAM,EAAE,CACJ,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,oBAAoB,KAC7B,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,SAAS,EAAE,CACP,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,oBAAoB,KAC7B,OAAO,CAAC,IAAI,CAAC,CAAC;CACtB,CAAC;AAEF,wBAAgB,+BAA+B,CAC3C,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE;IACL,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,wBAAwB,CAAC;CAClC,GACP,IAAI,CAkSN;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAQrE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAQ9D"}