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