berget 2.2.6 → 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 +2 -2
- package/.github/workflows/test.yml +10 -4
- package/.husky/pre-commit +1 -0
- package/.prettierignore +15 -0
- package/.prettierrc +7 -3
- package/CONTRIBUTING.md +38 -0
- package/README.md +2 -148
- package/dist/index.js +10 -11
- package/dist/package.json +30 -2
- package/dist/src/agents/app.js +28 -0
- package/dist/src/agents/backend.js +25 -0
- package/dist/src/agents/devops.js +34 -0
- package/dist/src/agents/frontend.js +25 -0
- package/dist/src/agents/fullstack.js +25 -0
- package/dist/src/agents/index.js +61 -0
- package/dist/src/agents/quality.js +70 -0
- package/dist/src/agents/security.js +26 -0
- package/dist/src/agents/types.js +2 -0
- package/dist/src/client.js +97 -117
- package/dist/src/commands/api-keys.js +75 -90
- package/dist/src/commands/auth.js +7 -16
- package/dist/src/commands/autocomplete.js +1 -1
- package/dist/src/commands/billing.js +6 -17
- package/dist/src/commands/chat.js +68 -101
- package/dist/src/commands/clusters.js +9 -18
- package/dist/src/commands/code/__tests__/auth-sync.test.js +351 -0
- package/dist/src/commands/code/__tests__/fake-api-key-service.js +13 -0
- package/dist/src/commands/code/__tests__/fake-auth-service.js +47 -0
- package/dist/src/commands/code/__tests__/fake-command-runner.js +21 -34
- package/dist/src/commands/code/__tests__/fake-file-store.js +20 -33
- package/dist/src/commands/code/__tests__/fake-prompter.js +83 -57
- package/dist/src/commands/code/__tests__/setup-flow.test.js +359 -92
- package/dist/src/commands/code/adapters/clack-prompter.js +15 -22
- package/dist/src/commands/code/adapters/fs-file-store.js +26 -40
- package/dist/src/commands/code/adapters/spawn-command-runner.js +27 -37
- package/dist/src/commands/code/auth-sync.js +270 -0
- package/dist/src/commands/code/errors.js +12 -9
- package/dist/src/commands/code/ports/auth-services.js +2 -0
- package/dist/src/commands/code/setup.js +387 -281
- package/dist/src/commands/code.js +205 -332
- package/dist/src/commands/index.js +5 -5
- package/dist/src/commands/models.js +6 -17
- package/dist/src/commands/users.js +5 -16
- package/dist/src/constants/command-structure.js +104 -104
- package/dist/src/services/api-key-service.js +132 -157
- package/dist/src/services/auth-service.js +89 -342
- package/dist/src/services/browser-auth.js +268 -0
- package/dist/src/services/chat-service.js +371 -401
- package/dist/src/services/cluster-service.js +47 -62
- package/dist/src/services/collaborator-service.js +10 -25
- package/dist/src/services/flux-service.js +14 -29
- package/dist/src/services/helm-service.js +10 -25
- package/dist/src/services/kubectl-service.js +16 -33
- package/dist/src/utils/config-checker.js +3 -3
- package/dist/src/utils/config-loader.js +95 -95
- package/dist/src/utils/default-api-key.js +124 -134
- package/dist/src/utils/env-manager.js +55 -66
- package/dist/src/utils/error-handler.js +20 -21
- package/dist/src/utils/logger.js +72 -65
- package/dist/src/utils/markdown-renderer.js +27 -27
- package/dist/src/utils/opencode-validator.js +63 -68
- package/dist/src/utils/token-manager.js +74 -45
- package/dist/tests/commands/chat.test.js +16 -25
- package/dist/tests/commands/code.test.js +95 -104
- package/dist/tests/utils/config-loader.test.js +48 -48
- package/dist/tests/utils/env-manager.test.js +43 -52
- package/dist/tests/utils/opencode-validator.test.js +22 -21
- package/dist/vitest.config.js +1 -1
- package/eslint.config.mjs +67 -0
- package/index.ts +35 -42
- package/package.json +30 -2
- package/src/agents/app.ts +27 -0
- package/src/agents/backend.ts +24 -0
- package/src/agents/devops.ts +33 -0
- package/src/agents/frontend.ts +24 -0
- package/src/agents/fullstack.ts +24 -0
- package/src/agents/index.ts +73 -0
- package/src/agents/quality.ts +69 -0
- package/src/agents/security.ts +26 -0
- package/src/agents/types.ts +17 -0
- package/src/client.ts +118 -152
- package/src/commands/api-keys.ts +241 -333
- package/src/commands/auth.ts +22 -27
- package/src/commands/autocomplete.ts +9 -9
- package/src/commands/billing.ts +20 -24
- package/src/commands/chat.ts +248 -338
- package/src/commands/clusters.ts +27 -26
- package/src/commands/code/__tests__/auth-sync.test.ts +482 -0
- package/src/commands/code/__tests__/fake-api-key-service.ts +13 -0
- package/src/commands/code/__tests__/fake-auth-service.ts +50 -0
- package/src/commands/code/__tests__/fake-command-runner.ts +45 -42
- package/src/commands/code/__tests__/fake-file-store.ts +32 -23
- package/src/commands/code/__tests__/fake-prompter.ts +116 -77
- package/src/commands/code/__tests__/setup-flow.test.ts +624 -268
- package/src/commands/code/adapters/clack-prompter.ts +53 -39
- package/src/commands/code/adapters/fs-file-store.ts +32 -27
- package/src/commands/code/adapters/spawn-command-runner.ts +38 -29
- package/src/commands/code/auth-sync.ts +329 -0
- package/src/commands/code/errors.ts +18 -18
- package/src/commands/code/ports/auth-services.ts +14 -0
- package/src/commands/code/ports/command-runner.ts +8 -4
- package/src/commands/code/ports/file-store.ts +5 -4
- package/src/commands/code/ports/prompter.ts +24 -18
- package/src/commands/code/setup.ts +570 -340
- package/src/commands/code.ts +338 -539
- package/src/commands/index.ts +20 -19
- package/src/commands/models.ts +28 -32
- package/src/commands/users.ts +15 -21
- package/src/constants/command-structure.ts +134 -157
- package/src/services/api-key-service.ts +105 -122
- package/src/services/auth-service.ts +99 -345
- package/src/services/browser-auth.ts +296 -0
- package/src/services/chat-service.ts +265 -299
- package/src/services/cluster-service.ts +42 -45
- package/src/services/collaborator-service.ts +14 -19
- package/src/services/flux-service.ts +23 -25
- package/src/services/helm-service.ts +19 -21
- package/src/services/kubectl-service.ts +17 -19
- package/src/types/api.d.ts +1905 -1907
- package/src/types/json.d.ts +2 -2
- package/src/utils/config-checker.ts +10 -10
- package/src/utils/config-loader.ts +162 -178
- package/src/utils/default-api-key.ts +114 -125
- package/src/utils/env-manager.ts +53 -57
- package/src/utils/error-handler.ts +61 -56
- package/src/utils/logger.ts +79 -73
- package/src/utils/markdown-renderer.ts +31 -31
- package/src/utils/opencode-validator.ts +85 -89
- package/src/utils/token-manager.ts +108 -87
- package/templates/agents/app.md +1 -0
- package/templates/agents/backend.md +1 -0
- package/templates/agents/devops.md +2 -0
- package/templates/agents/frontend.md +1 -0
- package/templates/agents/fullstack.md +1 -0
- package/templates/agents/quality.md +45 -40
- package/templates/agents/security.md +1 -0
- package/tests/commands/chat.test.ts +53 -62
- package/tests/commands/code.test.ts +265 -310
- package/tests/utils/config-loader.test.ts +189 -188
- package/tests/utils/env-manager.test.ts +110 -113
- package/tests/utils/opencode-validator.test.ts +52 -56
- package/tsconfig.json +4 -3
- package/vitest.config.ts +3 -3
- package/AGENTS.md +0 -374
- package/TODO.md +0 -19
package/src/commands/index.ts
CHANGED
|
@@ -1,25 +1,26 @@
|
|
|
1
|
-
import { Command } from 'commander'
|
|
2
|
-
|
|
3
|
-
import { registerApiKeyCommands } from './api-keys'
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
|
|
3
|
+
import { registerApiKeyCommands } from './api-keys';
|
|
4
|
+
import { registerAuthCommands } from './auth';
|
|
5
|
+
import { registerAutocompleteCommands } from './autocomplete';
|
|
6
|
+
import { registerBillingCommands } from './billing';
|
|
7
|
+
import { registerChatCommands } from './chat';
|
|
8
|
+
import { registerClusterCommands } from './clusters';
|
|
9
|
+
import { registerCodeCommands } from './code';
|
|
10
|
+
import { registerModelCommands } from './models';
|
|
11
|
+
import { registerUserCommands } from './users';
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* Register all command groups with the program
|
|
14
15
|
*/
|
|
15
16
|
export function registerCommands(program: Command): void {
|
|
16
|
-
registerAuthCommands(program)
|
|
17
|
-
registerApiKeyCommands(program)
|
|
18
|
-
registerClusterCommands(program)
|
|
19
|
-
registerBillingCommands(program)
|
|
20
|
-
registerModelCommands(program)
|
|
21
|
-
registerUserCommands(program)
|
|
22
|
-
registerChatCommands(program)
|
|
23
|
-
registerAutocompleteCommands(program)
|
|
24
|
-
registerCodeCommands(program)
|
|
17
|
+
registerAuthCommands(program);
|
|
18
|
+
registerApiKeyCommands(program);
|
|
19
|
+
registerClusterCommands(program);
|
|
20
|
+
registerBillingCommands(program);
|
|
21
|
+
registerModelCommands(program);
|
|
22
|
+
registerUserCommands(program);
|
|
23
|
+
registerChatCommands(program);
|
|
24
|
+
registerAutocompleteCommands(program);
|
|
25
|
+
registerCodeCommands(program);
|
|
25
26
|
}
|
package/src/commands/models.ts
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
import { Command } from 'commander'
|
|
2
|
-
|
|
3
|
-
import { createAuthenticatedClient } from '../client'
|
|
4
|
-
import {
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
|
|
3
|
+
import { createAuthenticatedClient } from '../client';
|
|
4
|
+
import { COMMAND_GROUPS, SUBCOMMANDS } from '../constants/command-structure';
|
|
5
|
+
import { handleError } from '../utils/error-handler';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Register models commands
|
|
8
9
|
*/
|
|
9
10
|
export function registerModelCommands(program: Command): void {
|
|
10
|
-
const models = program
|
|
11
|
-
.command(COMMAND_GROUPS.MODELS)
|
|
12
|
-
.description('Manage AI models')
|
|
11
|
+
const models = program.command(COMMAND_GROUPS.MODELS).description('Manage AI models');
|
|
13
12
|
|
|
14
13
|
models
|
|
15
14
|
.command(SUBCOMMANDS.MODELS.LIST)
|
|
@@ -17,47 +16,44 @@ export function registerModelCommands(program: Command): void {
|
|
|
17
16
|
.option('--id <modelId>', 'Get details for a specific model')
|
|
18
17
|
.action(async (options) => {
|
|
19
18
|
try {
|
|
20
|
-
const client = createAuthenticatedClient()
|
|
21
|
-
let response
|
|
19
|
+
const client = createAuthenticatedClient();
|
|
20
|
+
let response;
|
|
22
21
|
|
|
23
22
|
if (options.id) {
|
|
24
23
|
const { data, error } = await client.GET('/v1/models/{modelId}', {
|
|
25
24
|
params: { path: { modelId: options.id } },
|
|
26
|
-
})
|
|
27
|
-
if (error) throw new Error(JSON.stringify(error))
|
|
28
|
-
response = data
|
|
25
|
+
});
|
|
26
|
+
if (error) throw new Error(JSON.stringify(error));
|
|
27
|
+
response = data;
|
|
29
28
|
|
|
30
|
-
console.log('Model Details:')
|
|
31
|
-
console.log(JSON.stringify(response, null, 2))
|
|
29
|
+
console.log('Model Details:');
|
|
30
|
+
console.log(JSON.stringify(response, null, 2));
|
|
32
31
|
} else {
|
|
33
|
-
const { data, error } = await client.GET('/v1/models')
|
|
34
|
-
if (error) throw new Error(JSON.stringify(error))
|
|
35
|
-
response = data
|
|
32
|
+
const { data, error } = await client.GET('/v1/models');
|
|
33
|
+
if (error) throw new Error(JSON.stringify(error));
|
|
34
|
+
response = data;
|
|
36
35
|
|
|
37
|
-
console.log('Available Models:')
|
|
36
|
+
console.log('Available Models:');
|
|
38
37
|
console.log(
|
|
39
38
|
'ID OWNED BY CAPABILITIES',
|
|
40
|
-
)
|
|
39
|
+
);
|
|
41
40
|
// Ensure response has the expected structure
|
|
42
|
-
const modelData = response as { data?: any[] }
|
|
41
|
+
const modelData = response as { data?: any[] };
|
|
43
42
|
if (modelData.data) {
|
|
44
43
|
modelData.data.forEach((model: any) => {
|
|
45
|
-
const capabilities = []
|
|
46
|
-
if (model.capabilities.vision) capabilities.push('vision')
|
|
47
|
-
if (model.capabilities.function_calling)
|
|
48
|
-
|
|
49
|
-
if (model.capabilities.json_mode) capabilities.push('json_mode')
|
|
44
|
+
const capabilities = [];
|
|
45
|
+
if (model.capabilities.vision) capabilities.push('vision');
|
|
46
|
+
if (model.capabilities.function_calling) capabilities.push('function_calling');
|
|
47
|
+
if (model.capabilities.json_mode) capabilities.push('json_mode');
|
|
50
48
|
|
|
51
49
|
console.log(
|
|
52
|
-
`${model.root.padEnd(50)} ${model.owned_by.padEnd(
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
)
|
|
56
|
-
})
|
|
50
|
+
`${model.root.padEnd(50)} ${model.owned_by.padEnd(24)} ${capabilities.join(', ')}`,
|
|
51
|
+
);
|
|
52
|
+
});
|
|
57
53
|
}
|
|
58
54
|
}
|
|
59
55
|
} catch (error) {
|
|
60
|
-
handleError('Failed to get models', error)
|
|
56
|
+
handleError('Failed to get models', error);
|
|
61
57
|
}
|
|
62
|
-
})
|
|
58
|
+
});
|
|
63
59
|
}
|
package/src/commands/users.ts
CHANGED
|
@@ -1,37 +1,31 @@
|
|
|
1
|
-
import { Command } from 'commander'
|
|
2
|
-
|
|
3
|
-
import { createAuthenticatedClient } from '../client'
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
|
|
3
|
+
import { createAuthenticatedClient } from '../client';
|
|
4
|
+
import { COMMAND_GROUPS, SUBCOMMANDS } from '../constants/command-structure';
|
|
5
|
+
import { handleError } from '../utils/error-handler';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Register user commands
|
|
9
9
|
*/
|
|
10
10
|
export function registerUserCommands(program: Command): void {
|
|
11
|
-
const users = program
|
|
12
|
-
.command(COMMAND_GROUPS.USERS)
|
|
13
|
-
.description('Manage users')
|
|
11
|
+
const users = program.command(COMMAND_GROUPS.USERS).description('Manage users');
|
|
14
12
|
|
|
15
13
|
users
|
|
16
14
|
.command(SUBCOMMANDS.USERS.LIST)
|
|
17
15
|
.description('List team members')
|
|
18
16
|
.action(async () => {
|
|
19
17
|
try {
|
|
20
|
-
const client = createAuthenticatedClient()
|
|
21
|
-
const { data, error } = await client.GET('/v1/users')
|
|
22
|
-
if (error) throw new Error(JSON.stringify(error))
|
|
18
|
+
const client = createAuthenticatedClient();
|
|
19
|
+
const { data, error } = await client.GET('/v1/users');
|
|
20
|
+
if (error) throw new Error(JSON.stringify(error));
|
|
23
21
|
|
|
24
|
-
console.log('Team Members:')
|
|
25
|
-
console.log(
|
|
26
|
-
'NAME EMAIL ROLE',
|
|
27
|
-
)
|
|
22
|
+
console.log('Team Members:');
|
|
23
|
+
console.log('NAME EMAIL ROLE');
|
|
28
24
|
data.forEach((user: any) => {
|
|
29
|
-
console.log(
|
|
30
|
-
|
|
31
|
-
)
|
|
32
|
-
})
|
|
25
|
+
console.log(`${user.name.padEnd(24)} ${user.email.padEnd(30)} ${user.role}`);
|
|
26
|
+
});
|
|
33
27
|
} catch (error) {
|
|
34
|
-
handleError('Failed to list team members', error)
|
|
28
|
+
handleError('Failed to list team members', error);
|
|
35
29
|
}
|
|
36
|
-
})
|
|
30
|
+
});
|
|
37
31
|
}
|
|
@@ -5,22 +5,43 @@
|
|
|
5
5
|
|
|
6
6
|
// Main command groups
|
|
7
7
|
export const COMMAND_GROUPS = {
|
|
8
|
-
AUTH: 'auth',
|
|
9
8
|
API_KEYS: 'api-keys',
|
|
10
|
-
CLUSTERS: 'clusters',
|
|
11
9
|
APPS: 'apps',
|
|
12
|
-
|
|
13
|
-
HELM: 'helm',
|
|
14
|
-
KUBECTL: 'kubectl',
|
|
15
|
-
FLUX: 'flux',
|
|
16
|
-
USERS: 'users',
|
|
10
|
+
AUTH: 'auth',
|
|
17
11
|
BILLING: 'billing',
|
|
18
12
|
CHAT: 'chat',
|
|
13
|
+
CLUSTERS: 'clusters',
|
|
19
14
|
CODE: 'code',
|
|
20
|
-
|
|
15
|
+
FLUX: 'flux',
|
|
16
|
+
HELM: 'helm',
|
|
17
|
+
KUBECTL: 'kubectl',
|
|
18
|
+
MODELS: 'models',
|
|
19
|
+
USERS: 'users',
|
|
20
|
+
};
|
|
21
21
|
|
|
22
22
|
// Subcommands for each group
|
|
23
23
|
export const SUBCOMMANDS = {
|
|
24
|
+
// API Keys commands
|
|
25
|
+
API_KEYS: {
|
|
26
|
+
CREATE: 'create',
|
|
27
|
+
DELETE: 'delete',
|
|
28
|
+
DESCRIBE: 'describe',
|
|
29
|
+
GET_DEFAULT: 'get-default',
|
|
30
|
+
LIST: 'list',
|
|
31
|
+
ROTATE: 'rotate',
|
|
32
|
+
SET_DEFAULT: 'set-default',
|
|
33
|
+
},
|
|
34
|
+
|
|
35
|
+
// Apps commands
|
|
36
|
+
APPS: {
|
|
37
|
+
DESCRIBE_INSTALLATION: 'describe-installation',
|
|
38
|
+
DESCRIBE_TEMPLATE: 'describe-template',
|
|
39
|
+
INSTALL: 'install',
|
|
40
|
+
LIST_INSTALLATIONS: 'list-installations',
|
|
41
|
+
LIST_TEMPLATES: 'list-templates',
|
|
42
|
+
UNINSTALL: 'uninstall',
|
|
43
|
+
},
|
|
44
|
+
|
|
24
45
|
// Auth commands
|
|
25
46
|
AUTH: {
|
|
26
47
|
LOGIN: 'login',
|
|
@@ -28,9 +49,27 @@ export const SUBCOMMANDS = {
|
|
|
28
49
|
WHOAMI: 'whoami',
|
|
29
50
|
},
|
|
30
51
|
|
|
52
|
+
// Billing commands
|
|
53
|
+
BILLING: {
|
|
54
|
+
ADD_PAYMENT_METHOD: 'add-payment-method',
|
|
55
|
+
DESCRIBE_INVOICE: 'describe-invoice',
|
|
56
|
+
GET_USAGE: 'get-usage',
|
|
57
|
+
LIST_INVOICES: 'list-invoices',
|
|
58
|
+
LIST_PAYMENT_METHODS: 'list-payment-methods',
|
|
59
|
+
REMOVE_PAYMENT_METHOD: 'remove-payment-method',
|
|
60
|
+
UPDATE_SUBSCRIPTION: 'update-subscription',
|
|
61
|
+
},
|
|
62
|
+
|
|
31
63
|
// Chat commands
|
|
32
64
|
CHAT: {
|
|
65
|
+
LIST: 'list',
|
|
33
66
|
RUN: 'run',
|
|
67
|
+
},
|
|
68
|
+
|
|
69
|
+
// Clusters commands
|
|
70
|
+
CLUSTERS: {
|
|
71
|
+
DESCRIBE: 'describe',
|
|
72
|
+
GET_USAGE: 'get-usage',
|
|
34
73
|
LIST: 'list',
|
|
35
74
|
},
|
|
36
75
|
|
|
@@ -38,43 +77,15 @@ export const SUBCOMMANDS = {
|
|
|
38
77
|
CODE: {
|
|
39
78
|
INIT: 'init',
|
|
40
79
|
RUN: 'run',
|
|
41
|
-
UPDATE: 'update',
|
|
42
80
|
SERVE: 'serve',
|
|
43
81
|
SETUP: 'setup',
|
|
82
|
+
UPDATE: 'update',
|
|
44
83
|
},
|
|
45
84
|
|
|
46
|
-
//
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
CREATE: 'create',
|
|
50
|
-
DELETE: 'delete',
|
|
51
|
-
ROTATE: 'rotate',
|
|
52
|
-
DESCRIBE: 'describe',
|
|
53
|
-
SET_DEFAULT: 'set-default',
|
|
54
|
-
GET_DEFAULT: 'get-default',
|
|
55
|
-
},
|
|
56
|
-
|
|
57
|
-
// Clusters commands
|
|
58
|
-
CLUSTERS: {
|
|
59
|
-
LIST: 'list',
|
|
60
|
-
DESCRIBE: 'describe',
|
|
61
|
-
GET_USAGE: 'get-usage',
|
|
62
|
-
},
|
|
63
|
-
|
|
64
|
-
// Apps commands
|
|
65
|
-
APPS: {
|
|
66
|
-
LIST_TEMPLATES: 'list-templates',
|
|
67
|
-
DESCRIBE_TEMPLATE: 'describe-template',
|
|
68
|
-
LIST_INSTALLATIONS: 'list-installations',
|
|
85
|
+
// Flux commands
|
|
86
|
+
FLUX: {
|
|
87
|
+
BOOTSTRAP: 'bootstrap',
|
|
69
88
|
INSTALL: 'install',
|
|
70
|
-
UNINSTALL: 'uninstall',
|
|
71
|
-
DESCRIBE_INSTALLATION: 'describe-installation',
|
|
72
|
-
},
|
|
73
|
-
|
|
74
|
-
// Models commands
|
|
75
|
-
MODELS: {
|
|
76
|
-
LIST: 'list',
|
|
77
|
-
DESCRIBE: 'describe',
|
|
78
89
|
},
|
|
79
90
|
|
|
80
91
|
// Helm commands
|
|
@@ -85,159 +96,125 @@ export const SUBCOMMANDS = {
|
|
|
85
96
|
|
|
86
97
|
// Kubectl commands
|
|
87
98
|
KUBECTL: {
|
|
88
|
-
CREATE_NAMESPACE: 'create-namespace',
|
|
89
99
|
APPLY: 'apply',
|
|
100
|
+
CREATE_NAMESPACE: 'create-namespace',
|
|
90
101
|
GET: 'get',
|
|
91
102
|
},
|
|
92
103
|
|
|
93
|
-
//
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
104
|
+
// Models commands
|
|
105
|
+
MODELS: {
|
|
106
|
+
DESCRIBE: 'describe',
|
|
107
|
+
LIST: 'list',
|
|
97
108
|
},
|
|
98
109
|
|
|
99
110
|
// Users commands
|
|
100
111
|
USERS: {
|
|
101
|
-
LIST: 'list',
|
|
102
112
|
DESCRIBE: 'describe',
|
|
103
|
-
UPDATE: 'update',
|
|
104
113
|
INVITE: 'invite',
|
|
114
|
+
LIST: 'list',
|
|
115
|
+
UPDATE: 'update',
|
|
105
116
|
},
|
|
106
|
-
|
|
107
|
-
// Billing commands
|
|
108
|
-
BILLING: {
|
|
109
|
-
GET_USAGE: 'get-usage',
|
|
110
|
-
LIST_INVOICES: 'list-invoices',
|
|
111
|
-
DESCRIBE_INVOICE: 'describe-invoice',
|
|
112
|
-
LIST_PAYMENT_METHODS: 'list-payment-methods',
|
|
113
|
-
ADD_PAYMENT_METHOD: 'add-payment-method',
|
|
114
|
-
REMOVE_PAYMENT_METHOD: 'remove-payment-method',
|
|
115
|
-
UPDATE_SUBSCRIPTION: 'update-subscription',
|
|
116
|
-
},
|
|
117
|
-
}
|
|
117
|
+
};
|
|
118
118
|
|
|
119
119
|
// Command descriptions
|
|
120
120
|
export const COMMAND_DESCRIPTIONS = {
|
|
121
|
-
|
|
122
|
-
[COMMAND_GROUPS.
|
|
123
|
-
[`${COMMAND_GROUPS.AUTH} ${SUBCOMMANDS.AUTH.LOGIN}`]: 'Log in to Berget AI',
|
|
124
|
-
[`${COMMAND_GROUPS.AUTH} ${SUBCOMMANDS.AUTH.LOGOUT}`]:
|
|
125
|
-
'Log out from Berget AI',
|
|
126
|
-
[`${COMMAND_GROUPS.AUTH} ${SUBCOMMANDS.AUTH.WHOAMI}`]:
|
|
127
|
-
'Display current user information',
|
|
128
|
-
|
|
129
|
-
// API Keys group
|
|
130
|
-
[COMMAND_GROUPS.API_KEYS]: 'Manage API keys',
|
|
131
|
-
[`${COMMAND_GROUPS.API_KEYS} ${SUBCOMMANDS.API_KEYS.LIST}`]:
|
|
132
|
-
'List all API keys',
|
|
133
|
-
[`${COMMAND_GROUPS.API_KEYS} ${SUBCOMMANDS.API_KEYS.CREATE}`]:
|
|
134
|
-
'Create a new API key',
|
|
135
|
-
[`${COMMAND_GROUPS.API_KEYS} ${SUBCOMMANDS.API_KEYS.DELETE}`]:
|
|
136
|
-
'Delete an API key',
|
|
137
|
-
[`${COMMAND_GROUPS.API_KEYS} ${SUBCOMMANDS.API_KEYS.ROTATE}`]:
|
|
138
|
-
'Rotate an API key',
|
|
121
|
+
[`${COMMAND_GROUPS.API_KEYS} ${SUBCOMMANDS.API_KEYS.CREATE}`]: 'Create a new API key',
|
|
122
|
+
[`${COMMAND_GROUPS.API_KEYS} ${SUBCOMMANDS.API_KEYS.DELETE}`]: 'Delete an API key',
|
|
139
123
|
[`${COMMAND_GROUPS.API_KEYS} ${SUBCOMMANDS.API_KEYS.DESCRIBE}`]:
|
|
140
124
|
'Get usage statistics for an API key',
|
|
141
|
-
[`${COMMAND_GROUPS.API_KEYS} ${SUBCOMMANDS.API_KEYS.SET_DEFAULT}`]:
|
|
142
|
-
'Set an API key as the default for chat commands',
|
|
143
125
|
[`${COMMAND_GROUPS.API_KEYS} ${SUBCOMMANDS.API_KEYS.GET_DEFAULT}`]:
|
|
144
126
|
'Show the current default API key',
|
|
145
127
|
|
|
146
|
-
|
|
147
|
-
[COMMAND_GROUPS.
|
|
148
|
-
[`${COMMAND_GROUPS.
|
|
149
|
-
'
|
|
128
|
+
[`${COMMAND_GROUPS.API_KEYS} ${SUBCOMMANDS.API_KEYS.LIST}`]: 'List all API keys',
|
|
129
|
+
[`${COMMAND_GROUPS.API_KEYS} ${SUBCOMMANDS.API_KEYS.ROTATE}`]: 'Rotate an API key',
|
|
130
|
+
[`${COMMAND_GROUPS.API_KEYS} ${SUBCOMMANDS.API_KEYS.SET_DEFAULT}`]:
|
|
131
|
+
'Set an API key as the default for chat commands',
|
|
132
|
+
[`${COMMAND_GROUPS.APPS} ${SUBCOMMANDS.APPS.DESCRIBE_INSTALLATION}`]:
|
|
133
|
+
'Get detailed information about an installed application',
|
|
134
|
+
[`${COMMAND_GROUPS.APPS} ${SUBCOMMANDS.APPS.DESCRIBE_TEMPLATE}`]:
|
|
135
|
+
'Get detailed information about an application template',
|
|
136
|
+
[`${COMMAND_GROUPS.APPS} ${SUBCOMMANDS.APPS.INSTALL}`]: 'Install an application',
|
|
137
|
+
[`${COMMAND_GROUPS.APPS} ${SUBCOMMANDS.APPS.LIST_INSTALLATIONS}`]: 'List installed applications',
|
|
138
|
+
[`${COMMAND_GROUPS.APPS} ${SUBCOMMANDS.APPS.LIST_TEMPLATES}`]:
|
|
139
|
+
'List available application templates',
|
|
140
|
+
|
|
141
|
+
[`${COMMAND_GROUPS.APPS} ${SUBCOMMANDS.APPS.UNINSTALL}`]: 'Uninstall an application',
|
|
142
|
+
[`${COMMAND_GROUPS.AUTH} ${SUBCOMMANDS.AUTH.LOGIN}`]: 'Log in to Berget AI',
|
|
143
|
+
[`${COMMAND_GROUPS.AUTH} ${SUBCOMMANDS.AUTH.LOGOUT}`]: 'Log out from Berget AI',
|
|
144
|
+
[`${COMMAND_GROUPS.AUTH} ${SUBCOMMANDS.AUTH.WHOAMI}`]: 'Display current user information',
|
|
145
|
+
|
|
146
|
+
[`${COMMAND_GROUPS.BILLING} ${SUBCOMMANDS.BILLING.ADD_PAYMENT_METHOD}`]:
|
|
147
|
+
'Add a new payment method',
|
|
148
|
+
[`${COMMAND_GROUPS.BILLING} ${SUBCOMMANDS.BILLING.DESCRIBE_INVOICE}`]:
|
|
149
|
+
'Get detailed information about an invoice',
|
|
150
|
+
[`${COMMAND_GROUPS.BILLING} ${SUBCOMMANDS.BILLING.GET_USAGE}`]: 'Get current usage metrics',
|
|
151
|
+
[`${COMMAND_GROUPS.BILLING} ${SUBCOMMANDS.BILLING.LIST_INVOICES}`]: 'List all invoices',
|
|
152
|
+
[`${COMMAND_GROUPS.BILLING} ${SUBCOMMANDS.BILLING.LIST_PAYMENT_METHODS}`]:
|
|
153
|
+
'List all payment methods',
|
|
154
|
+
[`${COMMAND_GROUPS.BILLING} ${SUBCOMMANDS.BILLING.REMOVE_PAYMENT_METHOD}`]:
|
|
155
|
+
'Remove a payment method',
|
|
156
|
+
[`${COMMAND_GROUPS.BILLING} ${SUBCOMMANDS.BILLING.UPDATE_SUBSCRIPTION}`]:
|
|
157
|
+
'Update subscription plan',
|
|
158
|
+
|
|
159
|
+
[`${COMMAND_GROUPS.CHAT} ${SUBCOMMANDS.CHAT.LIST}`]: 'List available chat models',
|
|
160
|
+
[`${COMMAND_GROUPS.CHAT} ${SUBCOMMANDS.CHAT.RUN}`]: 'Run a chat session with a specified model',
|
|
150
161
|
[`${COMMAND_GROUPS.CLUSTERS} ${SUBCOMMANDS.CLUSTERS.DESCRIBE}`]:
|
|
151
162
|
'Get detailed information about a cluster',
|
|
163
|
+
|
|
152
164
|
[`${COMMAND_GROUPS.CLUSTERS} ${SUBCOMMANDS.CLUSTERS.GET_USAGE}`]:
|
|
153
165
|
'Get resource usage for a cluster',
|
|
166
|
+
[`${COMMAND_GROUPS.CLUSTERS} ${SUBCOMMANDS.CLUSTERS.LIST}`]: 'List all clusters',
|
|
167
|
+
[`${COMMAND_GROUPS.CODE} ${SUBCOMMANDS.CODE.INIT}`]: 'Initialize project for AI coding assistant',
|
|
154
168
|
|
|
155
|
-
|
|
156
|
-
[COMMAND_GROUPS.
|
|
157
|
-
[`${COMMAND_GROUPS.
|
|
158
|
-
'
|
|
159
|
-
[`${COMMAND_GROUPS.
|
|
160
|
-
'
|
|
161
|
-
[`${COMMAND_GROUPS.APPS} ${SUBCOMMANDS.APPS.LIST_INSTALLATIONS}`]:
|
|
162
|
-
'List installed applications',
|
|
163
|
-
[`${COMMAND_GROUPS.APPS} ${SUBCOMMANDS.APPS.INSTALL}`]:
|
|
164
|
-
'Install an application',
|
|
165
|
-
[`${COMMAND_GROUPS.APPS} ${SUBCOMMANDS.APPS.UNINSTALL}`]:
|
|
166
|
-
'Uninstall an application',
|
|
167
|
-
[`${COMMAND_GROUPS.APPS} ${SUBCOMMANDS.APPS.DESCRIBE_INSTALLATION}`]:
|
|
168
|
-
'Get detailed information about an installed application',
|
|
169
|
-
|
|
170
|
-
// Models group
|
|
171
|
-
[COMMAND_GROUPS.MODELS]: 'Manage AI models',
|
|
172
|
-
[`${COMMAND_GROUPS.MODELS} ${SUBCOMMANDS.MODELS.LIST}`]:
|
|
173
|
-
'List available AI models',
|
|
174
|
-
[`${COMMAND_GROUPS.MODELS} ${SUBCOMMANDS.MODELS.DESCRIBE}`]:
|
|
175
|
-
'Get detailed information about an AI model',
|
|
169
|
+
[`${COMMAND_GROUPS.CODE} ${SUBCOMMANDS.CODE.RUN}`]: 'Run AI coding assistant',
|
|
170
|
+
[`${COMMAND_GROUPS.CODE} ${SUBCOMMANDS.CODE.SERVE}`]: 'Start OpenCode web server',
|
|
171
|
+
[`${COMMAND_GROUPS.CODE} ${SUBCOMMANDS.CODE.SETUP}`]:
|
|
172
|
+
'Interactive setup for Berget AI coding tools',
|
|
173
|
+
[`${COMMAND_GROUPS.CODE} ${SUBCOMMANDS.CODE.UPDATE}`]:
|
|
174
|
+
'Update OpenCode and agents to latest versions',
|
|
176
175
|
|
|
177
|
-
|
|
178
|
-
[COMMAND_GROUPS.
|
|
179
|
-
[`${COMMAND_GROUPS.HELM} ${SUBCOMMANDS.HELM.ADD_REPO}`]:
|
|
180
|
-
'Add a Helm repository',
|
|
181
|
-
[`${COMMAND_GROUPS.HELM} ${SUBCOMMANDS.HELM.INSTALL}`]:
|
|
182
|
-
'Install a Helm chart',
|
|
176
|
+
[`${COMMAND_GROUPS.FLUX} ${SUBCOMMANDS.FLUX.BOOTSTRAP}`]: 'Bootstrap Flux CD',
|
|
177
|
+
[`${COMMAND_GROUPS.FLUX} ${SUBCOMMANDS.FLUX.INSTALL}`]: 'Install Flux CD',
|
|
178
|
+
[`${COMMAND_GROUPS.HELM} ${SUBCOMMANDS.HELM.ADD_REPO}`]: 'Add a Helm repository',
|
|
183
179
|
|
|
184
|
-
|
|
185
|
-
[COMMAND_GROUPS.KUBECTL]: '
|
|
180
|
+
[`${COMMAND_GROUPS.HELM} ${SUBCOMMANDS.HELM.INSTALL}`]: 'Install a Helm chart',
|
|
181
|
+
[`${COMMAND_GROUPS.KUBECTL} ${SUBCOMMANDS.KUBECTL.APPLY}`]: 'Apply a Kubernetes configuration',
|
|
186
182
|
[`${COMMAND_GROUPS.KUBECTL} ${SUBCOMMANDS.KUBECTL.CREATE_NAMESPACE}`]:
|
|
187
183
|
'Create a Kubernetes namespace',
|
|
188
|
-
[`${COMMAND_GROUPS.KUBECTL} ${SUBCOMMANDS.KUBECTL.
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
'Get Kubernetes resources',
|
|
192
|
-
|
|
193
|
-
// Flux group
|
|
194
|
-
[COMMAND_GROUPS.FLUX]: 'Manage Flux CD',
|
|
195
|
-
[`${COMMAND_GROUPS.FLUX} ${SUBCOMMANDS.FLUX.INSTALL}`]: 'Install Flux CD',
|
|
196
|
-
[`${COMMAND_GROUPS.FLUX} ${SUBCOMMANDS.FLUX.BOOTSTRAP}`]: 'Bootstrap Flux CD',
|
|
184
|
+
[`${COMMAND_GROUPS.KUBECTL} ${SUBCOMMANDS.KUBECTL.GET}`]: 'Get Kubernetes resources',
|
|
185
|
+
[`${COMMAND_GROUPS.MODELS} ${SUBCOMMANDS.MODELS.DESCRIBE}`]:
|
|
186
|
+
'Get detailed information about an AI model',
|
|
197
187
|
|
|
198
|
-
|
|
199
|
-
[COMMAND_GROUPS.USERS]: 'Manage users',
|
|
200
|
-
[`${COMMAND_GROUPS.USERS} ${SUBCOMMANDS.USERS.LIST}`]:
|
|
201
|
-
'List all users in your organization',
|
|
188
|
+
[`${COMMAND_GROUPS.MODELS} ${SUBCOMMANDS.MODELS.LIST}`]: 'List available AI models',
|
|
202
189
|
[`${COMMAND_GROUPS.USERS} ${SUBCOMMANDS.USERS.DESCRIBE}`]:
|
|
203
190
|
'Get detailed information about a user',
|
|
204
|
-
[`${COMMAND_GROUPS.USERS} ${SUBCOMMANDS.USERS.
|
|
205
|
-
|
|
206
|
-
[`${COMMAND_GROUPS.USERS} ${SUBCOMMANDS.USERS.
|
|
207
|
-
|
|
191
|
+
[`${COMMAND_GROUPS.USERS} ${SUBCOMMANDS.USERS.INVITE}`]: 'Invite a new user to your organization',
|
|
192
|
+
[`${COMMAND_GROUPS.USERS} ${SUBCOMMANDS.USERS.LIST}`]: 'List all users in your organization',
|
|
193
|
+
[`${COMMAND_GROUPS.USERS} ${SUBCOMMANDS.USERS.UPDATE}`]: 'Update user information',
|
|
194
|
+
// API Keys group
|
|
195
|
+
[COMMAND_GROUPS.API_KEYS]: 'Manage API keys',
|
|
196
|
+
// Apps group
|
|
197
|
+
[COMMAND_GROUPS.APPS]: 'Manage applications',
|
|
198
|
+
// Auth group
|
|
199
|
+
[COMMAND_GROUPS.AUTH]: 'Manage authentication and authorization',
|
|
208
200
|
|
|
209
201
|
// Billing group
|
|
210
202
|
[COMMAND_GROUPS.BILLING]: 'Manage billing and usage',
|
|
211
|
-
[`${COMMAND_GROUPS.BILLING} ${SUBCOMMANDS.BILLING.GET_USAGE}`]:
|
|
212
|
-
'Get current usage metrics',
|
|
213
|
-
[`${COMMAND_GROUPS.BILLING} ${SUBCOMMANDS.BILLING.LIST_INVOICES}`]:
|
|
214
|
-
'List all invoices',
|
|
215
|
-
[`${COMMAND_GROUPS.BILLING} ${SUBCOMMANDS.BILLING.DESCRIBE_INVOICE}`]:
|
|
216
|
-
'Get detailed information about an invoice',
|
|
217
|
-
[`${COMMAND_GROUPS.BILLING} ${SUBCOMMANDS.BILLING.LIST_PAYMENT_METHODS}`]:
|
|
218
|
-
'List all payment methods',
|
|
219
|
-
[`${COMMAND_GROUPS.BILLING} ${SUBCOMMANDS.BILLING.ADD_PAYMENT_METHOD}`]:
|
|
220
|
-
'Add a new payment method',
|
|
221
|
-
[`${COMMAND_GROUPS.BILLING} ${SUBCOMMANDS.BILLING.REMOVE_PAYMENT_METHOD}`]:
|
|
222
|
-
'Remove a payment method',
|
|
223
|
-
[`${COMMAND_GROUPS.BILLING} ${SUBCOMMANDS.BILLING.UPDATE_SUBSCRIPTION}`]:
|
|
224
|
-
'Update subscription plan',
|
|
225
|
-
|
|
226
203
|
// Chat group
|
|
227
204
|
[COMMAND_GROUPS.CHAT]: 'Interact with AI chat models',
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
[`${COMMAND_GROUPS.CHAT} ${SUBCOMMANDS.CHAT.LIST}`]:
|
|
231
|
-
'List available chat models',
|
|
205
|
+
// Clusters group
|
|
206
|
+
[COMMAND_GROUPS.CLUSTERS]: 'Manage Kubernetes clusters',
|
|
232
207
|
|
|
233
208
|
// Code group
|
|
234
209
|
[COMMAND_GROUPS.CODE]: 'AI-powered coding assistant with OpenCode',
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
[
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
210
|
+
// Flux group
|
|
211
|
+
[COMMAND_GROUPS.FLUX]: 'Manage Flux CD',
|
|
212
|
+
// Helm group
|
|
213
|
+
[COMMAND_GROUPS.HELM]: 'Manage Helm charts',
|
|
214
|
+
// Kubectl group
|
|
215
|
+
[COMMAND_GROUPS.KUBECTL]: 'Manage Kubernetes resources',
|
|
216
|
+
// Models group
|
|
217
|
+
[COMMAND_GROUPS.MODELS]: 'Manage AI models',
|
|
218
|
+
// Users group
|
|
219
|
+
[COMMAND_GROUPS.USERS]: 'Manage users',
|
|
220
|
+
};
|