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.
- package/.github/workflows/publish.yml +6 -6
- package/.github/workflows/test.yml +1 -1
- package/.prettierrc +5 -3
- package/dist/index.js +24 -25
- package/dist/package.json +5 -3
- package/dist/src/agents/app.js +8 -8
- package/dist/src/agents/backend.js +3 -3
- package/dist/src/agents/devops.js +8 -8
- package/dist/src/agents/frontend.js +3 -3
- package/dist/src/agents/fullstack.js +3 -3
- package/dist/src/agents/index.js +18 -18
- package/dist/src/agents/quality.js +8 -8
- package/dist/src/agents/security.js +8 -8
- package/dist/src/client.js +115 -127
- package/dist/src/commands/api-keys.js +195 -202
- package/dist/src/commands/auth.js +16 -25
- package/dist/src/commands/autocomplete.js +8 -8
- package/dist/src/commands/billing.js +10 -19
- package/dist/src/commands/chat.js +139 -170
- package/dist/src/commands/clusters.js +21 -30
- package/dist/src/commands/code/__tests__/auth-sync.test.js +189 -186
- package/dist/src/commands/code/__tests__/fake-api-key-service.js +3 -13
- package/dist/src/commands/code/__tests__/fake-auth-service.js +21 -29
- package/dist/src/commands/code/__tests__/fake-command-runner.js +22 -33
- package/dist/src/commands/code/__tests__/fake-file-store.js +19 -41
- package/dist/src/commands/code/__tests__/fake-prompter.js +81 -97
- package/dist/src/commands/code/__tests__/setup-flow.test.js +295 -295
- package/dist/src/commands/code/adapters/clack-prompter.js +15 -32
- package/dist/src/commands/code/adapters/fs-file-store.js +25 -44
- package/dist/src/commands/code/adapters/spawn-command-runner.js +27 -41
- package/dist/src/commands/code/auth-sync.js +215 -228
- package/dist/src/commands/code/errors.js +15 -12
- package/dist/src/commands/code/setup.js +390 -425
- package/dist/src/commands/code.js +279 -294
- package/dist/src/commands/index.js +5 -5
- package/dist/src/commands/models.js +16 -25
- package/dist/src/commands/users.js +9 -18
- package/dist/src/constants/command-structure.js +138 -138
- package/dist/src/services/api-key-service.js +132 -152
- package/dist/src/services/auth-service.js +81 -95
- package/dist/src/services/browser-auth.js +121 -131
- package/dist/src/services/chat-service.js +369 -386
- package/dist/src/services/cluster-service.js +47 -62
- package/dist/src/services/collaborator-service.js +9 -21
- package/dist/src/services/flux-service.js +13 -25
- package/dist/src/services/helm-service.js +9 -21
- package/dist/src/services/kubectl-service.js +15 -29
- package/dist/src/utils/config-checker.js +7 -7
- package/dist/src/utils/config-loader.js +109 -109
- package/dist/src/utils/default-api-key.js +129 -139
- package/dist/src/utils/env-manager.js +55 -66
- package/dist/src/utils/error-handler.js +62 -62
- package/dist/src/utils/logger.js +74 -67
- package/dist/src/utils/markdown-renderer.js +28 -28
- package/dist/src/utils/opencode-validator.js +67 -69
- package/dist/src/utils/token-manager.js +67 -65
- package/dist/tests/commands/chat.test.js +30 -39
- package/dist/tests/commands/code.test.js +186 -195
- package/dist/tests/utils/config-loader.test.js +107 -107
- package/dist/tests/utils/env-manager.test.js +81 -90
- package/dist/tests/utils/opencode-validator.test.js +42 -41
- package/dist/vitest.config.js +1 -1
- package/eslint.config.mjs +50 -30
- package/index.ts +30 -31
- package/package.json +5 -3
- package/src/agents/app.ts +9 -9
- package/src/agents/backend.ts +4 -4
- package/src/agents/devops.ts +9 -9
- package/src/agents/frontend.ts +4 -4
- package/src/agents/fullstack.ts +4 -4
- package/src/agents/index.ts +27 -25
- package/src/agents/quality.ts +9 -9
- package/src/agents/security.ts +9 -9
- package/src/agents/types.ts +10 -10
- package/src/client.ts +85 -77
- package/src/commands/api-keys.ts +190 -185
- package/src/commands/auth.ts +15 -14
- package/src/commands/autocomplete.ts +10 -10
- package/src/commands/billing.ts +13 -12
- package/src/commands/chat.ts +145 -142
- package/src/commands/clusters.ts +20 -19
- package/src/commands/code/__tests__/auth-sync.test.ts +176 -175
- package/src/commands/code/__tests__/fake-api-key-service.ts +2 -2
- package/src/commands/code/__tests__/fake-auth-service.ts +18 -18
- package/src/commands/code/__tests__/fake-command-runner.ts +28 -22
- package/src/commands/code/__tests__/fake-file-store.ts +15 -15
- package/src/commands/code/__tests__/fake-prompter.ts +86 -85
- package/src/commands/code/__tests__/setup-flow.test.ts +253 -251
- package/src/commands/code/adapters/clack-prompter.ts +32 -30
- package/src/commands/code/adapters/fs-file-store.ts +18 -17
- package/src/commands/code/adapters/spawn-command-runner.ts +20 -15
- package/src/commands/code/auth-sync.ts +210 -210
- package/src/commands/code/errors.ts +11 -11
- package/src/commands/code/ports/auth-services.ts +7 -7
- package/src/commands/code/ports/command-runner.ts +2 -2
- package/src/commands/code/ports/file-store.ts +3 -3
- package/src/commands/code/ports/prompter.ts +13 -13
- package/src/commands/code/setup.ts +408 -406
- package/src/commands/code.ts +288 -287
- package/src/commands/index.ts +11 -10
- package/src/commands/models.ts +19 -18
- package/src/commands/users.ts +11 -10
- package/src/constants/command-structure.ts +159 -159
- package/src/services/api-key-service.ts +85 -85
- package/src/services/auth-service.ts +55 -54
- package/src/services/browser-auth.ts +62 -62
- package/src/services/chat-service.ts +169 -170
- package/src/services/cluster-service.ts +28 -28
- package/src/services/collaborator-service.ts +6 -6
- package/src/services/flux-service.ts +17 -17
- package/src/services/helm-service.ts +11 -11
- package/src/services/kubectl-service.ts +12 -12
- package/src/types/api.d.ts +1933 -1933
- package/src/types/json.d.ts +1 -1
- package/src/utils/config-checker.ts +6 -6
- package/src/utils/config-loader.ts +130 -129
- package/src/utils/default-api-key.ts +81 -80
- package/src/utils/env-manager.ts +37 -37
- package/src/utils/error-handler.ts +64 -64
- package/src/utils/logger.ts +72 -66
- package/src/utils/markdown-renderer.ts +28 -28
- package/src/utils/opencode-validator.ts +72 -71
- package/src/utils/token-manager.ts +69 -68
- package/tests/commands/chat.test.ts +32 -31
- package/tests/commands/code.test.ts +182 -181
- package/tests/utils/config-loader.test.ts +111 -110
- package/tests/utils/env-manager.test.ts +83 -79
- package/tests/utils/opencode-validator.test.ts +43 -42
- package/tsconfig.json +2 -1
- 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(
|
|
17
|
+
.description('Manage authentication and authorization');
|
|
27
18
|
auth
|
|
28
19
|
.command(auth_service_1.AuthService.COMMANDS.LOGIN)
|
|
29
|
-
.description(
|
|
30
|
-
.action(() =>
|
|
20
|
+
.description('Log in to Berget')
|
|
21
|
+
.action(async () => {
|
|
31
22
|
const authService = auth_service_1.AuthService.getInstance();
|
|
32
|
-
|
|
33
|
-
})
|
|
23
|
+
await authService.login();
|
|
24
|
+
});
|
|
34
25
|
auth
|
|
35
26
|
.command(auth_service_1.AuthService.COMMANDS.LOGOUT)
|
|
36
|
-
.description(
|
|
27
|
+
.description('Log out from Berget')
|
|
37
28
|
.action(() => {
|
|
38
29
|
(0, client_1.clearAuthToken)();
|
|
39
|
-
console.log(chalk_1.default.green(
|
|
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(
|
|
44
|
-
.action(() =>
|
|
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 =
|
|
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 ||
|
|
51
|
-
console.log(`Role: ${chalk_1.default.cyan(profile.role ||
|
|
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(
|
|
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)(
|
|
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(
|
|
14
|
-
.command(
|
|
15
|
-
.description(
|
|
13
|
+
.command('autocomplete')
|
|
14
|
+
.command('install')
|
|
15
|
+
.description('Install shell autocompletion')
|
|
16
16
|
.action(() => {
|
|
17
|
-
console.log(chalk_1.default.green(
|
|
18
|
-
console.log(chalk_1.default.green(
|
|
19
|
-
console.log(
|
|
20
|
-
console.log(
|
|
21
|
-
console.log(
|
|
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(
|
|
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(
|
|
24
|
-
.option(
|
|
25
|
-
.action((options) =>
|
|
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 } =
|
|
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 } =
|
|
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(
|
|
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)(
|
|
38
|
+
(0, error_handler_1.handleError)('Failed to get token usage', error);
|
|
48
39
|
}
|
|
49
|
-
})
|
|
40
|
+
});
|
|
50
41
|
}
|
|
51
42
|
exports.registerBillingCommands = registerBillingCommands;
|