berget 2.2.7 → 2.2.8

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 (130) hide show
  1. package/.github/workflows/publish.yml +6 -6
  2. package/.github/workflows/test.yml +1 -1
  3. package/.prettierrc +5 -3
  4. package/dist/index.js +24 -25
  5. package/dist/package.json +5 -3
  6. package/dist/src/agents/app.js +8 -8
  7. package/dist/src/agents/backend.js +3 -3
  8. package/dist/src/agents/devops.js +8 -8
  9. package/dist/src/agents/frontend.js +3 -3
  10. package/dist/src/agents/fullstack.js +3 -3
  11. package/dist/src/agents/index.js +18 -18
  12. package/dist/src/agents/quality.js +8 -8
  13. package/dist/src/agents/security.js +8 -8
  14. package/dist/src/client.js +115 -127
  15. package/dist/src/commands/api-keys.js +195 -202
  16. package/dist/src/commands/auth.js +16 -25
  17. package/dist/src/commands/autocomplete.js +8 -8
  18. package/dist/src/commands/billing.js +10 -19
  19. package/dist/src/commands/chat.js +139 -170
  20. package/dist/src/commands/clusters.js +21 -30
  21. package/dist/src/commands/code/__tests__/auth-sync.test.js +189 -186
  22. package/dist/src/commands/code/__tests__/fake-api-key-service.js +3 -13
  23. package/dist/src/commands/code/__tests__/fake-auth-service.js +21 -29
  24. package/dist/src/commands/code/__tests__/fake-command-runner.js +22 -33
  25. package/dist/src/commands/code/__tests__/fake-file-store.js +19 -41
  26. package/dist/src/commands/code/__tests__/fake-prompter.js +81 -97
  27. package/dist/src/commands/code/__tests__/setup-flow.test.js +295 -295
  28. package/dist/src/commands/code/adapters/clack-prompter.js +15 -32
  29. package/dist/src/commands/code/adapters/fs-file-store.js +25 -44
  30. package/dist/src/commands/code/adapters/spawn-command-runner.js +27 -41
  31. package/dist/src/commands/code/auth-sync.js +215 -228
  32. package/dist/src/commands/code/errors.js +15 -12
  33. package/dist/src/commands/code/setup.js +390 -425
  34. package/dist/src/commands/code.js +279 -294
  35. package/dist/src/commands/index.js +5 -5
  36. package/dist/src/commands/models.js +16 -25
  37. package/dist/src/commands/users.js +9 -18
  38. package/dist/src/constants/command-structure.js +138 -138
  39. package/dist/src/services/api-key-service.js +132 -152
  40. package/dist/src/services/auth-service.js +81 -95
  41. package/dist/src/services/browser-auth.js +121 -131
  42. package/dist/src/services/chat-service.js +369 -386
  43. package/dist/src/services/cluster-service.js +47 -62
  44. package/dist/src/services/collaborator-service.js +9 -21
  45. package/dist/src/services/flux-service.js +13 -25
  46. package/dist/src/services/helm-service.js +9 -21
  47. package/dist/src/services/kubectl-service.js +15 -29
  48. package/dist/src/utils/config-checker.js +7 -7
  49. package/dist/src/utils/config-loader.js +109 -109
  50. package/dist/src/utils/default-api-key.js +129 -139
  51. package/dist/src/utils/env-manager.js +55 -66
  52. package/dist/src/utils/error-handler.js +62 -62
  53. package/dist/src/utils/logger.js +74 -67
  54. package/dist/src/utils/markdown-renderer.js +28 -28
  55. package/dist/src/utils/opencode-validator.js +67 -69
  56. package/dist/src/utils/token-manager.js +67 -65
  57. package/dist/tests/commands/chat.test.js +30 -39
  58. package/dist/tests/commands/code.test.js +186 -195
  59. package/dist/tests/utils/config-loader.test.js +107 -107
  60. package/dist/tests/utils/env-manager.test.js +81 -90
  61. package/dist/tests/utils/opencode-validator.test.js +42 -41
  62. package/dist/vitest.config.js +1 -1
  63. package/eslint.config.mjs +50 -30
  64. package/index.ts +30 -31
  65. package/package.json +5 -3
  66. package/src/agents/app.ts +9 -9
  67. package/src/agents/backend.ts +4 -4
  68. package/src/agents/devops.ts +9 -9
  69. package/src/agents/frontend.ts +4 -4
  70. package/src/agents/fullstack.ts +4 -4
  71. package/src/agents/index.ts +27 -25
  72. package/src/agents/quality.ts +9 -9
  73. package/src/agents/security.ts +9 -9
  74. package/src/agents/types.ts +10 -10
  75. package/src/client.ts +85 -77
  76. package/src/commands/api-keys.ts +190 -185
  77. package/src/commands/auth.ts +15 -14
  78. package/src/commands/autocomplete.ts +10 -10
  79. package/src/commands/billing.ts +13 -12
  80. package/src/commands/chat.ts +145 -142
  81. package/src/commands/clusters.ts +20 -19
  82. package/src/commands/code/__tests__/auth-sync.test.ts +176 -175
  83. package/src/commands/code/__tests__/fake-api-key-service.ts +2 -2
  84. package/src/commands/code/__tests__/fake-auth-service.ts +18 -18
  85. package/src/commands/code/__tests__/fake-command-runner.ts +28 -22
  86. package/src/commands/code/__tests__/fake-file-store.ts +15 -15
  87. package/src/commands/code/__tests__/fake-prompter.ts +86 -85
  88. package/src/commands/code/__tests__/setup-flow.test.ts +253 -251
  89. package/src/commands/code/adapters/clack-prompter.ts +32 -30
  90. package/src/commands/code/adapters/fs-file-store.ts +18 -17
  91. package/src/commands/code/adapters/spawn-command-runner.ts +20 -15
  92. package/src/commands/code/auth-sync.ts +210 -210
  93. package/src/commands/code/errors.ts +11 -11
  94. package/src/commands/code/ports/auth-services.ts +7 -7
  95. package/src/commands/code/ports/command-runner.ts +2 -2
  96. package/src/commands/code/ports/file-store.ts +3 -3
  97. package/src/commands/code/ports/prompter.ts +13 -13
  98. package/src/commands/code/setup.ts +408 -406
  99. package/src/commands/code.ts +288 -287
  100. package/src/commands/index.ts +11 -10
  101. package/src/commands/models.ts +19 -18
  102. package/src/commands/users.ts +11 -10
  103. package/src/constants/command-structure.ts +159 -159
  104. package/src/services/api-key-service.ts +85 -85
  105. package/src/services/auth-service.ts +55 -54
  106. package/src/services/browser-auth.ts +62 -62
  107. package/src/services/chat-service.ts +169 -170
  108. package/src/services/cluster-service.ts +28 -28
  109. package/src/services/collaborator-service.ts +6 -6
  110. package/src/services/flux-service.ts +17 -17
  111. package/src/services/helm-service.ts +11 -11
  112. package/src/services/kubectl-service.ts +12 -12
  113. package/src/types/api.d.ts +1933 -1933
  114. package/src/types/json.d.ts +1 -1
  115. package/src/utils/config-checker.ts +6 -6
  116. package/src/utils/config-loader.ts +130 -129
  117. package/src/utils/default-api-key.ts +81 -80
  118. package/src/utils/env-manager.ts +37 -37
  119. package/src/utils/error-handler.ts +64 -64
  120. package/src/utils/logger.ts +72 -66
  121. package/src/utils/markdown-renderer.ts +28 -28
  122. package/src/utils/opencode-validator.ts +72 -71
  123. package/src/utils/token-manager.ts +69 -68
  124. package/tests/commands/chat.test.ts +32 -31
  125. package/tests/commands/code.test.ts +182 -181
  126. package/tests/utils/config-loader.test.ts +111 -110
  127. package/tests/utils/env-manager.test.ts +83 -79
  128. package/tests/utils/opencode-validator.test.ts +43 -42
  129. package/tsconfig.json +2 -1
  130. package/vitest.config.ts +2 -2
@@ -1,21 +1,12 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
12
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
4
  };
14
5
  Object.defineProperty(exports, "__esModule", { value: true });
15
6
  exports.registerAuthCommands = void 0;
16
7
  const chalk_1 = __importDefault(require("chalk"));
17
- const auth_service_1 = require("../services/auth-service");
18
8
  const client_1 = require("../client");
9
+ const auth_service_1 = require("../services/auth-service");
19
10
  const error_handler_1 = require("../utils/error-handler");
20
11
  /**
21
12
  * Register authentication commands
@@ -23,43 +14,43 @@ const error_handler_1 = require("../utils/error-handler");
23
14
  function registerAuthCommands(program) {
24
15
  const auth = program
25
16
  .command(auth_service_1.AuthService.COMMAND_GROUP)
26
- .description("Manage authentication and authorization");
17
+ .description('Manage authentication and authorization');
27
18
  auth
28
19
  .command(auth_service_1.AuthService.COMMANDS.LOGIN)
29
- .description("Log in to Berget")
30
- .action(() => __awaiter(this, void 0, void 0, function* () {
20
+ .description('Log in to Berget')
21
+ .action(async () => {
31
22
  const authService = auth_service_1.AuthService.getInstance();
32
- yield authService.login();
33
- }));
23
+ await authService.login();
24
+ });
34
25
  auth
35
26
  .command(auth_service_1.AuthService.COMMANDS.LOGOUT)
36
- .description("Log out from Berget")
27
+ .description('Log out from Berget')
37
28
  .action(() => {
38
29
  (0, client_1.clearAuthToken)();
39
- console.log(chalk_1.default.green("You have been logged out from Berget"));
30
+ console.log(chalk_1.default.green('You have been logged out from Berget'));
40
31
  });
41
32
  auth
42
33
  .command(auth_service_1.AuthService.COMMANDS.WHOAMI)
43
- .description("Show information about the logged in user")
44
- .action(() => __awaiter(this, void 0, void 0, function* () {
34
+ .description('Show information about the logged in user')
35
+ .action(async () => {
45
36
  try {
46
37
  const authService = auth_service_1.AuthService.getInstance();
47
- const profile = yield authService.whoami();
38
+ const profile = await authService.whoami();
48
39
  if (profile) {
49
40
  console.log(chalk_1.default.bold(`Logged in as: ${profile.name || profile.login}`));
50
- console.log(`Email: ${chalk_1.default.cyan(profile.email || "Not available")}`);
51
- console.log(`Role: ${chalk_1.default.cyan(profile.role || "Not available")}`);
41
+ console.log(`Email: ${chalk_1.default.cyan(profile.email || 'Not available')}`);
42
+ console.log(`Role: ${chalk_1.default.cyan(profile.role || 'Not available')}`);
52
43
  if (profile.company) {
53
44
  console.log(`Company: ${chalk_1.default.cyan(profile.company.name)}`);
54
45
  }
55
46
  }
56
47
  else {
57
- console.log(chalk_1.default.yellow("You are not logged in. Use `berget login` to log in."));
48
+ console.log(chalk_1.default.yellow('You are not logged in. Use `berget login` to log in.'));
58
49
  }
59
50
  }
60
51
  catch (error) {
61
- (0, error_handler_1.handleError)("You are not logged in or an error occurred", error);
52
+ (0, error_handler_1.handleError)('You are not logged in or an error occurred', error);
62
53
  }
63
- }));
54
+ });
64
55
  }
65
56
  exports.registerAuthCommands = registerAuthCommands;
@@ -10,15 +10,15 @@ const chalk_1 = __importDefault(require("chalk"));
10
10
  */
11
11
  function registerAutocompleteCommands(program) {
12
12
  program
13
- .command("autocomplete")
14
- .command("install")
15
- .description("Install shell autocompletion")
13
+ .command('autocomplete')
14
+ .command('install')
15
+ .description('Install shell autocompletion')
16
16
  .action(() => {
17
- console.log(chalk_1.default.green("✓ Berget autocomplete installed in your shell"));
18
- console.log(chalk_1.default.green("✓ Shell completion for kubectl also installed"));
19
- console.log("");
20
- console.log("Restart your shell or run:");
21
- console.log(" source ~/.bashrc");
17
+ console.log(chalk_1.default.green('✓ Berget autocomplete installed in your shell'));
18
+ console.log(chalk_1.default.green('✓ Shell completion for kubectl also installed'));
19
+ console.log('');
20
+ console.log('Restart your shell or run:');
21
+ console.log(' source ~/.bashrc');
22
22
  });
23
23
  }
24
24
  exports.registerAutocompleteCommands = registerAutocompleteCommands;
@@ -1,33 +1,24 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.registerBillingCommands = void 0;
13
- const command_structure_1 = require("../constants/command-structure");
14
4
  const client_1 = require("../client");
5
+ const command_structure_1 = require("../constants/command-structure");
15
6
  const error_handler_1 = require("../utils/error-handler");
16
7
  /**
17
8
  * Register billing commands
18
9
  */
19
10
  function registerBillingCommands(program) {
20
- const billing = program.command(command_structure_1.COMMAND_GROUPS.BILLING).description("Manage billing and usage");
11
+ const billing = program.command(command_structure_1.COMMAND_GROUPS.BILLING).description('Manage billing and usage');
21
12
  billing
22
13
  .command(command_structure_1.SUBCOMMANDS.BILLING.GET_USAGE)
23
- .description("Get token usage statistics")
24
- .option("--model <modelId>", "Get usage for a specific model")
25
- .action((options) => __awaiter(this, void 0, void 0, function* () {
14
+ .description('Get token usage statistics')
15
+ .option('--model <modelId>', 'Get usage for a specific model')
16
+ .action(async (options) => {
26
17
  try {
27
18
  const client = (0, client_1.createAuthenticatedClient)();
28
19
  let response;
29
20
  if (options.model) {
30
- const { data, error } = yield client.GET("/v1/usage/tokens/{modelId}", {
21
+ const { data, error } = await client.GET('/v1/usage/tokens/{modelId}', {
31
22
  params: { path: { modelId: options.model } },
32
23
  });
33
24
  if (error)
@@ -35,17 +26,17 @@ function registerBillingCommands(program) {
35
26
  response = data;
36
27
  }
37
28
  else {
38
- const { data, error } = yield client.GET("/v1/usage/tokens");
29
+ const { data, error } = await client.GET('/v1/usage/tokens');
39
30
  if (error)
40
31
  throw new Error(JSON.stringify(error));
41
32
  response = data;
42
33
  }
43
- console.log("Token Usage:");
34
+ console.log('Token Usage:');
44
35
  console.log(JSON.stringify(response, null, 2));
45
36
  }
46
37
  catch (error) {
47
- (0, error_handler_1.handleError)("Failed to get token usage", error);
38
+ (0, error_handler_1.handleError)('Failed to get token usage', error);
48
39
  }
49
- }));
40
+ });
50
41
  }
51
42
  exports.registerBillingCommands = registerBillingCommands;