berget 2.2.5 → 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 +8 -8
- package/.github/workflows/test.yml +12 -6
- 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 +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 +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 +50 -0
- package/dist/src/commands/code/__tests__/fake-file-store.js +55 -0
- package/dist/src/commands/code/__tests__/fake-prompter.js +133 -0
- package/dist/src/commands/code/__tests__/setup-flow.test.js +505 -0
- package/dist/src/commands/code/adapters/clack-prompter.js +81 -0
- package/dist/src/commands/code/adapters/fs-file-store.js +80 -0
- package/dist/src/commands/code/adapters/spawn-command-runner.js +53 -0
- package/dist/src/commands/code/auth-sync.js +283 -0
- package/dist/src/commands/code/errors.js +27 -0
- package/dist/src/commands/code/ports/auth-services.js +2 -0
- package/dist/src/commands/code/ports/command-runner.js +2 -0
- package/dist/src/commands/code/ports/file-store.js +2 -0
- package/dist/src/commands/code/ports/prompter.js +2 -0
- package/dist/src/commands/code/setup.js +533 -0
- package/dist/src/commands/code.js +223 -779
- package/dist/src/commands/models.js +13 -15
- package/dist/src/commands/users.js +6 -8
- package/dist/src/constants/command-structure.js +116 -114
- 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 +169 -138
- 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 +44 -43
- package/dist/vitest.config.js +1 -1
- package/eslint.config.mjs +47 -0
- package/index.ts +42 -48
- 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 +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 +44 -0
- package/src/commands/code/__tests__/fake-file-store.ts +44 -0
- package/src/commands/code/__tests__/fake-prompter.ts +121 -0
- package/src/commands/code/__tests__/setup-flow.test.ts +628 -0
- package/src/commands/code/adapters/clack-prompter.ts +55 -0
- package/src/commands/code/adapters/fs-file-store.ts +37 -0
- package/src/commands/code/adapters/spawn-command-runner.ts +40 -0
- package/src/commands/code/auth-sync.ts +329 -0
- package/src/commands/code/errors.ts +23 -0
- package/src/commands/code/ports/auth-services.ts +14 -0
- package/src/commands/code/ports/command-runner.ts +10 -0
- package/src/commands/code/ports/file-store.ts +7 -0
- package/src/commands/code/ports/prompter.ts +29 -0
- package/src/commands/code/setup.ts +630 -0
- package/src/commands/code.ts +335 -1074
- 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 +120 -140
- 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 +23 -0
- package/templates/agents/backend.md +23 -0
- package/templates/agents/devops.md +30 -0
- package/templates/agents/frontend.md +25 -0
- package/templates/agents/fullstack.md +23 -0
- package/templates/agents/quality.md +69 -0
- package/templates/agents/security.md +21 -0
- package/tests/commands/chat.test.ts +60 -70
- package/tests/commands/code.test.ts +346 -345
- 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 +65 -69
- package/tsconfig.json +2 -2
- package/vitest.config.ts +3 -3
- package/AGENTS.md +0 -374
- package/TODO.md +0 -19
- package/opencode.json +0 -146
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,236 +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:
|
|
39
|
+
INIT: "init",
|
|
40
|
+
RUN: "run",
|
|
41
|
+
UPDATE: "update",
|
|
42
|
+
SERVE: "serve",
|
|
43
|
+
SETUP: "setup",
|
|
43
44
|
},
|
|
44
45
|
|
|
45
46
|
// API Keys commands
|
|
46
47
|
API_KEYS: {
|
|
47
|
-
LIST:
|
|
48
|
-
CREATE:
|
|
49
|
-
DELETE:
|
|
50
|
-
ROTATE:
|
|
51
|
-
DESCRIBE:
|
|
52
|
-
SET_DEFAULT:
|
|
53
|
-
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",
|
|
54
55
|
},
|
|
55
56
|
|
|
56
57
|
// Clusters commands
|
|
57
58
|
CLUSTERS: {
|
|
58
|
-
LIST:
|
|
59
|
-
DESCRIBE:
|
|
60
|
-
GET_USAGE:
|
|
59
|
+
LIST: "list",
|
|
60
|
+
DESCRIBE: "describe",
|
|
61
|
+
GET_USAGE: "get-usage",
|
|
61
62
|
},
|
|
62
63
|
|
|
63
64
|
// Apps commands
|
|
64
65
|
APPS: {
|
|
65
|
-
LIST_TEMPLATES:
|
|
66
|
-
DESCRIBE_TEMPLATE:
|
|
67
|
-
LIST_INSTALLATIONS:
|
|
68
|
-
INSTALL:
|
|
69
|
-
UNINSTALL:
|
|
70
|
-
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",
|
|
71
72
|
},
|
|
72
73
|
|
|
73
74
|
// Models commands
|
|
74
75
|
MODELS: {
|
|
75
|
-
LIST:
|
|
76
|
-
DESCRIBE:
|
|
76
|
+
LIST: "list",
|
|
77
|
+
DESCRIBE: "describe",
|
|
77
78
|
},
|
|
78
79
|
|
|
79
80
|
// Helm commands
|
|
80
81
|
HELM: {
|
|
81
|
-
ADD_REPO:
|
|
82
|
-
INSTALL:
|
|
82
|
+
ADD_REPO: "add-repo",
|
|
83
|
+
INSTALL: "install",
|
|
83
84
|
},
|
|
84
85
|
|
|
85
86
|
// Kubectl commands
|
|
86
87
|
KUBECTL: {
|
|
87
|
-
CREATE_NAMESPACE:
|
|
88
|
-
APPLY:
|
|
89
|
-
GET:
|
|
88
|
+
CREATE_NAMESPACE: "create-namespace",
|
|
89
|
+
APPLY: "apply",
|
|
90
|
+
GET: "get",
|
|
90
91
|
},
|
|
91
92
|
|
|
92
93
|
// Flux commands
|
|
93
94
|
FLUX: {
|
|
94
|
-
INSTALL:
|
|
95
|
-
BOOTSTRAP:
|
|
95
|
+
INSTALL: "install",
|
|
96
|
+
BOOTSTRAP: "bootstrap",
|
|
96
97
|
},
|
|
97
98
|
|
|
98
99
|
// Users commands
|
|
99
100
|
USERS: {
|
|
100
|
-
LIST:
|
|
101
|
-
DESCRIBE:
|
|
102
|
-
UPDATE:
|
|
103
|
-
INVITE:
|
|
101
|
+
LIST: "list",
|
|
102
|
+
DESCRIBE: "describe",
|
|
103
|
+
UPDATE: "update",
|
|
104
|
+
INVITE: "invite",
|
|
104
105
|
},
|
|
105
106
|
|
|
106
107
|
// Billing commands
|
|
107
108
|
BILLING: {
|
|
108
|
-
GET_USAGE:
|
|
109
|
-
LIST_INVOICES:
|
|
110
|
-
DESCRIBE_INVOICE:
|
|
111
|
-
LIST_PAYMENT_METHODS:
|
|
112
|
-
ADD_PAYMENT_METHOD:
|
|
113
|
-
REMOVE_PAYMENT_METHOD:
|
|
114
|
-
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",
|
|
115
116
|
},
|
|
116
|
-
}
|
|
117
|
+
};
|
|
117
118
|
|
|
118
119
|
// Command descriptions
|
|
119
120
|
export const COMMAND_DESCRIPTIONS = {
|
|
120
121
|
// Auth group
|
|
121
|
-
[COMMAND_GROUPS.AUTH]:
|
|
122
|
-
[`${COMMAND_GROUPS.AUTH} ${SUBCOMMANDS.AUTH.LOGIN}`]:
|
|
123
|
-
[`${COMMAND_GROUPS.AUTH} ${SUBCOMMANDS.AUTH.LOGOUT}`]:
|
|
124
|
-
|
|
125
|
-
[`${COMMAND_GROUPS.AUTH} ${SUBCOMMANDS.AUTH.WHOAMI}`]:
|
|
126
|
-
'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",
|
|
127
126
|
|
|
128
127
|
// API Keys group
|
|
129
|
-
[COMMAND_GROUPS.API_KEYS]:
|
|
130
|
-
[`${COMMAND_GROUPS.API_KEYS} ${SUBCOMMANDS.API_KEYS.LIST}`]:
|
|
131
|
-
|
|
132
|
-
[`${COMMAND_GROUPS.API_KEYS} ${SUBCOMMANDS.API_KEYS.
|
|
133
|
-
|
|
134
|
-
[`${COMMAND_GROUPS.API_KEYS} ${SUBCOMMANDS.API_KEYS.DELETE}`]:
|
|
135
|
-
'Delete an API key',
|
|
136
|
-
[`${COMMAND_GROUPS.API_KEYS} ${SUBCOMMANDS.API_KEYS.ROTATE}`]:
|
|
137
|
-
'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",
|
|
138
133
|
[`${COMMAND_GROUPS.API_KEYS} ${SUBCOMMANDS.API_KEYS.DESCRIBE}`]:
|
|
139
|
-
|
|
134
|
+
"Get usage statistics for an API key",
|
|
140
135
|
[`${COMMAND_GROUPS.API_KEYS} ${SUBCOMMANDS.API_KEYS.SET_DEFAULT}`]:
|
|
141
|
-
|
|
136
|
+
"Set an API key as the default for chat commands",
|
|
142
137
|
[`${COMMAND_GROUPS.API_KEYS} ${SUBCOMMANDS.API_KEYS.GET_DEFAULT}`]:
|
|
143
|
-
|
|
138
|
+
"Show the current default API key",
|
|
144
139
|
|
|
145
140
|
// Clusters group
|
|
146
|
-
[COMMAND_GROUPS.CLUSTERS]:
|
|
147
|
-
[`${COMMAND_GROUPS.CLUSTERS} ${SUBCOMMANDS.CLUSTERS.LIST}`]:
|
|
148
|
-
'List all clusters',
|
|
141
|
+
[COMMAND_GROUPS.CLUSTERS]: "Manage Kubernetes clusters",
|
|
142
|
+
[`${COMMAND_GROUPS.CLUSTERS} ${SUBCOMMANDS.CLUSTERS.LIST}`]: "List all clusters",
|
|
149
143
|
[`${COMMAND_GROUPS.CLUSTERS} ${SUBCOMMANDS.CLUSTERS.DESCRIBE}`]:
|
|
150
|
-
|
|
144
|
+
"Get detailed information about a cluster",
|
|
151
145
|
[`${COMMAND_GROUPS.CLUSTERS} ${SUBCOMMANDS.CLUSTERS.GET_USAGE}`]:
|
|
152
|
-
|
|
146
|
+
"Get resource usage for a cluster",
|
|
153
147
|
|
|
154
148
|
// Apps group
|
|
155
|
-
[COMMAND_GROUPS.APPS]:
|
|
149
|
+
[COMMAND_GROUPS.APPS]: "Manage applications",
|
|
156
150
|
[`${COMMAND_GROUPS.APPS} ${SUBCOMMANDS.APPS.LIST_TEMPLATES}`]:
|
|
157
|
-
|
|
151
|
+
"List available application templates",
|
|
158
152
|
[`${COMMAND_GROUPS.APPS} ${SUBCOMMANDS.APPS.DESCRIBE_TEMPLATE}`]:
|
|
159
|
-
|
|
160
|
-
[`${COMMAND_GROUPS.APPS} ${SUBCOMMANDS.APPS.LIST_INSTALLATIONS}`]:
|
|
161
|
-
|
|
162
|
-
[`${COMMAND_GROUPS.APPS} ${SUBCOMMANDS.APPS.
|
|
163
|
-
'Install an application',
|
|
164
|
-
[`${COMMAND_GROUPS.APPS} ${SUBCOMMANDS.APPS.UNINSTALL}`]:
|
|
165
|
-
'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",
|
|
166
157
|
[`${COMMAND_GROUPS.APPS} ${SUBCOMMANDS.APPS.DESCRIBE_INSTALLATION}`]:
|
|
167
|
-
|
|
158
|
+
"Get detailed information about an installed application",
|
|
168
159
|
|
|
169
160
|
// Models group
|
|
170
|
-
[COMMAND_GROUPS.MODELS]:
|
|
171
|
-
[`${COMMAND_GROUPS.MODELS} ${SUBCOMMANDS.MODELS.LIST}`]:
|
|
172
|
-
'List available AI models',
|
|
161
|
+
[COMMAND_GROUPS.MODELS]: "Manage AI models",
|
|
162
|
+
[`${COMMAND_GROUPS.MODELS} ${SUBCOMMANDS.MODELS.LIST}`]: "List available AI models",
|
|
173
163
|
[`${COMMAND_GROUPS.MODELS} ${SUBCOMMANDS.MODELS.DESCRIBE}`]:
|
|
174
|
-
|
|
164
|
+
"Get detailed information about an AI model",
|
|
175
165
|
|
|
176
166
|
// Helm group
|
|
177
|
-
[COMMAND_GROUPS.HELM]:
|
|
178
|
-
[`${COMMAND_GROUPS.HELM} ${SUBCOMMANDS.HELM.ADD_REPO}`]:
|
|
179
|
-
|
|
180
|
-
[`${COMMAND_GROUPS.HELM} ${SUBCOMMANDS.HELM.INSTALL}`]:
|
|
181
|
-
'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",
|
|
182
170
|
|
|
183
171
|
// Kubectl group
|
|
184
|
-
[COMMAND_GROUPS.KUBECTL]:
|
|
172
|
+
[COMMAND_GROUPS.KUBECTL]: "Manage Kubernetes resources",
|
|
185
173
|
[`${COMMAND_GROUPS.KUBECTL} ${SUBCOMMANDS.KUBECTL.CREATE_NAMESPACE}`]:
|
|
186
|
-
|
|
187
|
-
[`${COMMAND_GROUPS.KUBECTL} ${SUBCOMMANDS.KUBECTL.APPLY}`]:
|
|
188
|
-
|
|
189
|
-
[`${COMMAND_GROUPS.KUBECTL} ${SUBCOMMANDS.KUBECTL.GET}`]:
|
|
190
|
-
'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",
|
|
191
177
|
|
|
192
178
|
// Flux group
|
|
193
|
-
[COMMAND_GROUPS.FLUX]:
|
|
194
|
-
[`${COMMAND_GROUPS.FLUX} ${SUBCOMMANDS.FLUX.INSTALL}`]:
|
|
195
|
-
[`${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",
|
|
196
182
|
|
|
197
183
|
// Users group
|
|
198
|
-
[COMMAND_GROUPS.USERS]:
|
|
199
|
-
[`${COMMAND_GROUPS.USERS} ${SUBCOMMANDS.USERS.LIST}`]:
|
|
200
|
-
'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",
|
|
201
186
|
[`${COMMAND_GROUPS.USERS} ${SUBCOMMANDS.USERS.DESCRIBE}`]:
|
|
202
|
-
|
|
203
|
-
[`${COMMAND_GROUPS.USERS} ${SUBCOMMANDS.USERS.UPDATE}`]:
|
|
204
|
-
|
|
205
|
-
[`${COMMAND_GROUPS.USERS} ${SUBCOMMANDS.USERS.INVITE}`]:
|
|
206
|
-
'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",
|
|
207
190
|
|
|
208
191
|
// Billing group
|
|
209
|
-
[COMMAND_GROUPS.BILLING]:
|
|
210
|
-
[`${COMMAND_GROUPS.BILLING} ${SUBCOMMANDS.BILLING.GET_USAGE}`]:
|
|
211
|
-
|
|
212
|
-
[`${COMMAND_GROUPS.BILLING} ${SUBCOMMANDS.BILLING.LIST_INVOICES}`]:
|
|
213
|
-
'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",
|
|
214
195
|
[`${COMMAND_GROUPS.BILLING} ${SUBCOMMANDS.BILLING.DESCRIBE_INVOICE}`]:
|
|
215
|
-
|
|
196
|
+
"Get detailed information about an invoice",
|
|
216
197
|
[`${COMMAND_GROUPS.BILLING} ${SUBCOMMANDS.BILLING.LIST_PAYMENT_METHODS}`]:
|
|
217
|
-
|
|
198
|
+
"List all payment methods",
|
|
218
199
|
[`${COMMAND_GROUPS.BILLING} ${SUBCOMMANDS.BILLING.ADD_PAYMENT_METHOD}`]:
|
|
219
|
-
|
|
200
|
+
"Add a new payment method",
|
|
220
201
|
[`${COMMAND_GROUPS.BILLING} ${SUBCOMMANDS.BILLING.REMOVE_PAYMENT_METHOD}`]:
|
|
221
|
-
|
|
202
|
+
"Remove a payment method",
|
|
222
203
|
[`${COMMAND_GROUPS.BILLING} ${SUBCOMMANDS.BILLING.UPDATE_SUBSCRIPTION}`]:
|
|
223
|
-
|
|
204
|
+
"Update subscription plan",
|
|
224
205
|
|
|
225
206
|
// Chat group
|
|
226
|
-
[COMMAND_GROUPS.CHAT]:
|
|
227
|
-
[`${COMMAND_GROUPS.CHAT} ${SUBCOMMANDS.CHAT.RUN}`]:
|
|
228
|
-
|
|
229
|
-
[`${COMMAND_GROUPS.CHAT} ${SUBCOMMANDS.CHAT.LIST}`]:
|
|
230
|
-
'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",
|
|
231
210
|
|
|
232
211
|
// Code group
|
|
233
|
-
[COMMAND_GROUPS.CODE]:
|
|
234
|
-
[`${COMMAND_GROUPS.CODE} ${SUBCOMMANDS.CODE.
|
|
235
|
-
|
|
236
|
-
[`${COMMAND_GROUPS.CODE} ${SUBCOMMANDS.CODE.
|
|
237
|
-
[`${COMMAND_GROUPS.CODE} ${SUBCOMMANDS.CODE.
|
|
212
|
+
[COMMAND_GROUPS.CODE]: "AI-powered coding assistant with OpenCode",
|
|
213
|
+
[`${COMMAND_GROUPS.CODE} ${SUBCOMMANDS.CODE.SETUP}`]:
|
|
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",
|
|
238
218
|
[`${COMMAND_GROUPS.CODE} ${SUBCOMMANDS.CODE.UPDATE}`]:
|
|
239
|
-
|
|
240
|
-
}
|
|
219
|
+
"Update OpenCode and agents to latest versions",
|
|
220
|
+
};
|