@codemieai/code 0.0.1 → 0.0.3
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/.codemie/guides/git-workflow.md +493 -0
- package/CLAUDE.md +130 -761
- package/README.md +283 -695
- package/bin/codemie-claude.js +122 -0
- package/bin/codemie-code.js +90 -15
- package/bin/codemie-codex.js +138 -0
- package/bin/codemie.js +1 -1
- package/config.example.json +10 -0
- package/dist/agents/adapters/claude-code.d.ts +2 -2
- package/dist/agents/adapters/claude-code.d.ts.map +1 -1
- package/dist/agents/adapters/claude-code.js +20 -42
- package/dist/agents/adapters/claude-code.js.map +1 -1
- package/dist/agents/adapters/codemie-code.d.ts +11 -2
- package/dist/agents/adapters/codemie-code.d.ts.map +1 -1
- package/dist/agents/adapters/codemie-code.js +93 -25
- package/dist/agents/adapters/codemie-code.js.map +1 -1
- package/dist/agents/adapters/codex.d.ts +2 -2
- package/dist/agents/adapters/codex.d.ts.map +1 -1
- package/dist/agents/adapters/codex.js +31 -24
- package/dist/agents/adapters/codex.js.map +1 -1
- package/dist/agents/codemie-code/agent.d.ts +89 -0
- package/dist/agents/codemie-code/agent.d.ts.map +1 -0
- package/dist/agents/codemie-code/agent.js +523 -0
- package/dist/agents/codemie-code/agent.js.map +1 -0
- package/dist/agents/codemie-code/config.d.ts +40 -0
- package/dist/agents/codemie-code/config.d.ts.map +1 -0
- package/dist/agents/codemie-code/config.js +276 -0
- package/dist/agents/codemie-code/config.js.map +1 -0
- package/dist/agents/codemie-code/filters.d.ts +91 -0
- package/dist/agents/codemie-code/filters.d.ts.map +1 -0
- package/dist/agents/codemie-code/filters.js +328 -0
- package/dist/agents/codemie-code/filters.js.map +1 -0
- package/dist/agents/codemie-code/index.d.ts +78 -0
- package/dist/agents/codemie-code/index.d.ts.map +1 -0
- package/dist/agents/codemie-code/index.js +259 -0
- package/dist/agents/codemie-code/index.js.map +1 -0
- package/dist/agents/codemie-code/prompts.d.ts +11 -0
- package/dist/agents/codemie-code/prompts.d.ts.map +1 -0
- package/dist/agents/codemie-code/prompts.js +31 -0
- package/dist/agents/codemie-code/prompts.js.map +1 -0
- package/dist/agents/codemie-code/streaming/events.d.ts +7 -0
- package/dist/agents/codemie-code/streaming/events.d.ts.map +1 -0
- package/dist/agents/codemie-code/streaming/events.js +7 -0
- package/dist/agents/codemie-code/streaming/events.js.map +1 -0
- package/dist/agents/codemie-code/streaming/formatter.d.ts +2 -0
- package/dist/agents/codemie-code/streaming/formatter.d.ts.map +1 -0
- package/dist/agents/codemie-code/streaming/formatter.js +2 -0
- package/dist/agents/codemie-code/streaming/formatter.js.map +1 -0
- package/dist/agents/codemie-code/streaming/ui.d.ts +2 -0
- package/dist/agents/codemie-code/streaming/ui.d.ts.map +1 -0
- package/dist/agents/codemie-code/streaming/ui.js +2 -0
- package/dist/agents/codemie-code/streaming/ui.js.map +1 -0
- package/dist/agents/codemie-code/tokenUtils.d.ts +108 -0
- package/dist/agents/codemie-code/tokenUtils.d.ts.map +1 -0
- package/dist/agents/codemie-code/tokenUtils.js +220 -0
- package/dist/agents/codemie-code/tokenUtils.js.map +1 -0
- package/dist/agents/codemie-code/toolMetadata.d.ts +15 -0
- package/dist/agents/codemie-code/toolMetadata.d.ts.map +1 -0
- package/dist/agents/codemie-code/toolMetadata.js +315 -0
- package/dist/agents/codemie-code/toolMetadata.js.map +1 -0
- package/dist/agents/codemie-code/tools/command.d.ts +2 -0
- package/dist/agents/codemie-code/tools/command.d.ts.map +1 -0
- package/dist/agents/codemie-code/tools/command.js +2 -0
- package/dist/agents/codemie-code/tools/command.js.map +1 -0
- package/dist/agents/codemie-code/tools/filesystem.d.ts +2 -0
- package/dist/agents/codemie-code/tools/filesystem.d.ts.map +1 -0
- package/dist/agents/codemie-code/tools/filesystem.js +2 -0
- package/dist/agents/codemie-code/tools/filesystem.js.map +1 -0
- package/dist/agents/codemie-code/tools/git.d.ts +2 -0
- package/dist/agents/codemie-code/tools/git.d.ts.map +1 -0
- package/dist/agents/codemie-code/tools/git.js +2 -0
- package/dist/agents/codemie-code/tools/git.js.map +1 -0
- package/dist/agents/codemie-code/tools/index.d.ts +19 -0
- package/dist/agents/codemie-code/tools/index.d.ts.map +1 -0
- package/dist/agents/codemie-code/tools/index.js +239 -0
- package/dist/agents/codemie-code/tools/index.js.map +1 -0
- package/dist/agents/codemie-code/tools/security.d.ts +2 -0
- package/dist/agents/codemie-code/tools/security.d.ts.map +1 -0
- package/dist/agents/codemie-code/tools/security.js +2 -0
- package/dist/agents/codemie-code/tools/security.js.map +1 -0
- package/dist/agents/codemie-code/types.d.ts +254 -0
- package/dist/agents/codemie-code/types.d.ts.map +1 -0
- package/dist/agents/codemie-code/types.js +35 -0
- package/dist/agents/codemie-code/types.js.map +1 -0
- package/dist/agents/codemie-code/ui.d.ts +83 -0
- package/dist/agents/codemie-code/ui.d.ts.map +1 -0
- package/dist/agents/codemie-code/ui.js +624 -0
- package/dist/agents/codemie-code/ui.js.map +1 -0
- package/dist/agents/registry.d.ts +1 -1
- package/dist/agents/registry.d.ts.map +1 -1
- package/dist/agents/registry.js +7 -13
- package/dist/agents/registry.js.map +1 -1
- package/dist/cli/commands/config.d.ts +3 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +323 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +113 -69
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/env.d.ts +3 -0
- package/dist/cli/commands/env.d.ts.map +1 -0
- package/dist/cli/commands/env.js +19 -0
- package/dist/cli/commands/env.js.map +1 -0
- package/dist/cli/commands/install.js +27 -33
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/list.js +18 -24
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +307 -21
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/setup.d.ts +3 -0
- package/dist/cli/commands/setup.d.ts.map +1 -0
- package/dist/cli/commands/setup.js +357 -0
- package/dist/cli/commands/setup.js.map +1 -0
- package/dist/cli/commands/uninstall.js +24 -30
- package/dist/cli/commands/uninstall.js.map +1 -1
- package/dist/cli/commands/version.d.ts.map +1 -1
- package/dist/cli/commands/version.js +11 -16
- package/dist/cli/commands/version.js.map +1 -1
- package/dist/cli/index.js +47 -31
- package/dist/cli/index.js.map +1 -1
- package/dist/env/manager.js +9 -46
- package/dist/env/manager.js.map +1 -1
- package/dist/index.d.ts +6 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -43
- package/dist/index.js.map +1 -1
- package/dist/utils/async-tips.d.ts.map +1 -1
- package/dist/utils/async-tips.js +16 -55
- package/dist/utils/async-tips.js.map +1 -1
- package/dist/utils/clipboard.d.ts +16 -0
- package/dist/utils/clipboard.d.ts.map +1 -0
- package/dist/utils/clipboard.js +179 -0
- package/dist/utils/clipboard.js.map +1 -0
- package/dist/utils/config-loader.d.ts +96 -0
- package/dist/utils/config-loader.d.ts.map +1 -0
- package/dist/utils/config-loader.js +351 -0
- package/dist/utils/config-loader.js.map +1 -0
- package/dist/utils/dirname.d.ts +7 -0
- package/dist/utils/dirname.d.ts.map +1 -0
- package/dist/utils/dirname.js +11 -0
- package/dist/utils/dirname.js.map +1 -0
- package/dist/utils/errors.js +7 -17
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/exec.js +3 -6
- package/dist/utils/exec.js.map +1 -1
- package/dist/utils/first-time.d.ts +34 -0
- package/dist/utils/first-time.d.ts.map +1 -0
- package/dist/utils/first-time.js +245 -0
- package/dist/utils/first-time.js.map +1 -0
- package/dist/utils/health-checker.d.ts +20 -0
- package/dist/utils/health-checker.d.ts.map +1 -0
- package/dist/utils/health-checker.js +168 -0
- package/dist/utils/health-checker.js.map +1 -0
- package/dist/utils/logger.js +12 -18
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/model-fetcher.d.ts +21 -0
- package/dist/utils/model-fetcher.d.ts.map +1 -0
- package/dist/utils/model-fetcher.js +137 -0
- package/dist/utils/model-fetcher.js.map +1 -0
- package/dist/utils/tips.d.ts.map +1 -1
- package/dist/utils/tips.js +13 -52
- package/dist/utils/tips.js.map +1 -1
- package/package.json +17 -23
- package/scripts/README.md +80 -0
- package/scripts/release.sh +156 -0
- package/dist/agents/adapters/aider.d.ts +0 -12
- package/dist/agents/adapters/aider.d.ts.map +0 -1
- package/dist/agents/adapters/aider.js +0 -80
- package/dist/agents/adapters/aider.js.map +0 -1
- package/dist/cli/cli.d.ts +0 -4
- package/dist/cli/cli.d.ts.map +0 -1
- package/dist/cli/cli.js +0 -107
- package/dist/cli/cli.js.map +0 -1
- package/dist/cli/commands/mcp.d.ts +0 -3
- package/dist/cli/commands/mcp.d.ts.map +0 -1
- package/dist/cli/commands/mcp.js +0 -459
- package/dist/cli/commands/mcp.js.map +0 -1
- package/dist/code/agent-events.d.ts +0 -39
- package/dist/code/agent-events.d.ts.map +0 -1
- package/dist/code/agent-events.js +0 -4
- package/dist/code/agent-events.js.map +0 -1
- package/dist/code/agent.d.ts +0 -19
- package/dist/code/agent.d.ts.map +0 -1
- package/dist/code/agent.js +0 -144
- package/dist/code/agent.js.map +0 -1
- package/dist/code/config.d.ts +0 -13
- package/dist/code/config.d.ts.map +0 -1
- package/dist/code/config.js +0 -41
- package/dist/code/config.js.map +0 -1
- package/dist/code/index.d.ts +0 -19
- package/dist/code/index.d.ts.map +0 -1
- package/dist/code/index.js +0 -400
- package/dist/code/index.js.map +0 -1
- package/dist/code/prompts.d.ts +0 -2
- package/dist/code/prompts.d.ts.map +0 -1
- package/dist/code/prompts.js +0 -45
- package/dist/code/prompts.js.map +0 -1
- package/dist/code/tools/command.d.ts +0 -8
- package/dist/code/tools/command.d.ts.map +0 -1
- package/dist/code/tools/command.js +0 -83
- package/dist/code/tools/command.js.map +0 -1
- package/dist/code/tools/diff-utils.d.ts +0 -2
- package/dist/code/tools/diff-utils.d.ts.map +0 -1
- package/dist/code/tools/diff-utils.js +0 -45
- package/dist/code/tools/diff-utils.js.map +0 -1
- package/dist/code/tools/filesystem.d.ts +0 -11
- package/dist/code/tools/filesystem.d.ts.map +0 -1
- package/dist/code/tools/filesystem.js +0 -442
- package/dist/code/tools/filesystem.js.map +0 -1
- package/dist/code/tools/git.d.ts +0 -7
- package/dist/code/tools/git.d.ts.map +0 -1
- package/dist/code/tools/git.js +0 -111
- package/dist/code/tools/git.js.map +0 -1
- package/dist/code/tools/mcp.d.ts +0 -13
- package/dist/code/tools/mcp.d.ts.map +0 -1
- package/dist/code/tools/mcp.js +0 -230
- package/dist/code/tools/mcp.js.map +0 -1
- package/dist/data/tips.json +0 -118
- package/dist/ui/terminal-ui.d.ts +0 -73
- package/dist/ui/terminal-ui.d.ts.map +0 -1
- package/dist/ui/terminal-ui.js +0 -900
- package/dist/ui/terminal-ui.js.map +0 -1
- package/dist/utils/env-mapper.d.ts +0 -40
- package/dist/utils/env-mapper.d.ts.map +0 -1
- package/dist/utils/env-mapper.js +0 -122
- package/dist/utils/env-mapper.js.map +0 -1
- package/docs/USER_GUIDE.md +0 -573
- package/tests/agent-direct.test.mjs +0 -45
- package/tests/agent-output.test.mjs +0 -64
- package/tests/codemie-code.test.mjs +0 -42
- package/tests/context7-only.test.mjs +0 -42
- package/tests/conversation-flow.test.mjs +0 -63
- package/tests/interactive-simulation.test.mjs +0 -60
- package/tests/live-output.test.mjs +0 -53
- package/tests/mcp-context7.test.mjs +0 -105
- package/tests/mcp-e2e.test.mjs +0 -109
- package/tests/mcp-time-server.test.mjs +0 -58
- package/tests/streaming.test.mjs +0 -57
- package/tests/test-helpers.mjs +0 -94
- package/tests/text-wrapping.test.mjs +0 -33
- package/tests/tool-count.test.mjs +0 -81
- package/tests/ui-format.test.mjs +0 -39
- package/tests/ui-state.test.mjs +0 -72
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { fileURLToPath } from 'url';
|
|
2
|
+
import { dirname } from 'path';
|
|
3
|
+
/**
|
|
4
|
+
* Get the directory name of the current module (ESM equivalent of __dirname)
|
|
5
|
+
* @param importMetaUrl - Pass import.meta.url from the calling module
|
|
6
|
+
* @returns The directory path
|
|
7
|
+
*/
|
|
8
|
+
export function getDirname(importMetaUrl) {
|
|
9
|
+
return dirname(fileURLToPath(importMetaUrl));
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=dirname.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dirname.js","sourceRoot":"","sources":["../../src/utils/dirname.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,aAAqB;IAC9C,OAAO,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;AAC/C,CAAC"}
|
package/dist/utils/errors.js
CHANGED
|
@@ -1,55 +1,45 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PathSecurityError = exports.ToolExecutionError = exports.AgentInstallationError = exports.AgentNotFoundError = exports.ConfigurationError = exports.CodeMieError = void 0;
|
|
4
|
-
exports.getErrorMessage = getErrorMessage;
|
|
5
|
-
class CodeMieError extends Error {
|
|
1
|
+
export class CodeMieError extends Error {
|
|
6
2
|
constructor(message) {
|
|
7
3
|
super(message);
|
|
8
4
|
this.name = 'CodeMieError';
|
|
9
5
|
}
|
|
10
6
|
}
|
|
11
|
-
|
|
12
|
-
class ConfigurationError extends CodeMieError {
|
|
7
|
+
export class ConfigurationError extends CodeMieError {
|
|
13
8
|
constructor(message) {
|
|
14
9
|
super(message);
|
|
15
10
|
this.name = 'ConfigurationError';
|
|
16
11
|
}
|
|
17
12
|
}
|
|
18
|
-
|
|
19
|
-
class AgentNotFoundError extends CodeMieError {
|
|
13
|
+
export class AgentNotFoundError extends CodeMieError {
|
|
20
14
|
constructor(agentName) {
|
|
21
15
|
super(`Agent not found: ${agentName}`);
|
|
22
16
|
this.name = 'AgentNotFoundError';
|
|
23
17
|
}
|
|
24
18
|
}
|
|
25
|
-
|
|
26
|
-
class AgentInstallationError extends CodeMieError {
|
|
19
|
+
export class AgentInstallationError extends CodeMieError {
|
|
27
20
|
constructor(agentName, reason) {
|
|
28
21
|
super(`Failed to install agent ${agentName}: ${reason}`);
|
|
29
22
|
this.name = 'AgentInstallationError';
|
|
30
23
|
}
|
|
31
24
|
}
|
|
32
|
-
|
|
33
|
-
class ToolExecutionError extends CodeMieError {
|
|
25
|
+
export class ToolExecutionError extends CodeMieError {
|
|
34
26
|
constructor(toolName, reason) {
|
|
35
27
|
super(`Tool ${toolName} failed: ${reason}`);
|
|
36
28
|
this.name = 'ToolExecutionError';
|
|
37
29
|
}
|
|
38
30
|
}
|
|
39
|
-
|
|
40
|
-
class PathSecurityError extends CodeMieError {
|
|
31
|
+
export class PathSecurityError extends CodeMieError {
|
|
41
32
|
constructor(path, reason) {
|
|
42
33
|
super(`Path security violation: ${path} - ${reason}`);
|
|
43
34
|
this.name = 'PathSecurityError';
|
|
44
35
|
}
|
|
45
36
|
}
|
|
46
|
-
exports.PathSecurityError = PathSecurityError;
|
|
47
37
|
/**
|
|
48
38
|
* Extracts error message from unknown error type
|
|
49
39
|
* @param error - The caught error (unknown type)
|
|
50
40
|
* @returns Error message as string
|
|
51
41
|
*/
|
|
52
|
-
function getErrorMessage(error) {
|
|
42
|
+
export function getErrorMessage(error) {
|
|
53
43
|
if (error instanceof Error) {
|
|
54
44
|
return error.message;
|
|
55
45
|
}
|
package/dist/utils/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,YAAY;IAClD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,YAAY;IAClD,YAAY,SAAiB;QAC3B,KAAK,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,YAAY;IACtD,YAAY,SAAiB,EAAE,MAAc;QAC3C,KAAK,CAAC,2BAA2B,SAAS,KAAK,MAAM,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,YAAY;IAClD,YAAY,QAAgB,EAAE,MAAc;QAC1C,KAAK,CAAC,QAAQ,QAAQ,YAAY,MAAM,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,YAAY;IACjD,YAAY,IAAY,EAAE,MAAc;QACtC,KAAK,CAAC,4BAA4B,IAAI,MAAM,MAAM,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC"}
|
package/dist/utils/exec.js
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.exec = exec;
|
|
4
|
-
const child_process_1 = require("child_process");
|
|
5
|
-
async function exec(command, args = [], options = {}) {
|
|
1
|
+
import { spawn } from 'child_process';
|
|
2
|
+
export async function exec(command, args = [], options = {}) {
|
|
6
3
|
return new Promise((resolve, reject) => {
|
|
7
|
-
const child =
|
|
4
|
+
const child = spawn(command, args, {
|
|
8
5
|
cwd: options.cwd || process.cwd(),
|
|
9
6
|
env: { ...process.env, ...options.env },
|
|
10
7
|
shell: false
|
package/dist/utils/exec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/utils/exec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/utils/exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AActC,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,OAAe,EACf,OAAiB,EAAE,EACnB,UAAuB,EAAE;IAEzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;YACjC,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE;YACjC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;YACvC,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;QAEH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,SAAS,GAA0B,IAAI,CAAC;QAE5C,6DAA6D;QAC7D,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,IAAI,SAAS,EAAE,CAAC;gBACd,YAAY,CAAC,SAAS,CAAC,CAAC;gBACxB,SAAS,GAAG,IAAI,CAAC;YACnB,CAAC;QACH,CAAC,CAAC;QAEF,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAChC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAChC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,OAAO,EAAE,CAAC;YACV,OAAO,CAAC;gBACN,IAAI,EAAE,IAAI,IAAI,CAAC;gBACf,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;gBACrB,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;aACtB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,iBAAiB;QACjB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC1B,KAAK,CAAC,IAAI,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;YACpE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* First-time user experience utilities
|
|
3
|
+
*/
|
|
4
|
+
export declare class FirstTimeExperience {
|
|
5
|
+
/**
|
|
6
|
+
* Check if this is a first-time run (no configuration exists)
|
|
7
|
+
*/
|
|
8
|
+
static isFirstTime(): Promise<boolean>;
|
|
9
|
+
/**
|
|
10
|
+
* Show first-time user welcome message with recommendations
|
|
11
|
+
*/
|
|
12
|
+
static showWelcomeMessage(): Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* Show recommendations and next steps
|
|
15
|
+
*/
|
|
16
|
+
static showRecommendations(): void;
|
|
17
|
+
/**
|
|
18
|
+
* Show quick start guide for users who have configuration
|
|
19
|
+
*/
|
|
20
|
+
static showQuickStart(): void;
|
|
21
|
+
/**
|
|
22
|
+
* Show a friendly reminder to complete setup
|
|
23
|
+
*/
|
|
24
|
+
static showSetupReminder(): void;
|
|
25
|
+
/**
|
|
26
|
+
* Show post-setup success message
|
|
27
|
+
*/
|
|
28
|
+
static showPostSetupMessage(): void;
|
|
29
|
+
/**
|
|
30
|
+
* Show manual setup guide with all required environment variables
|
|
31
|
+
*/
|
|
32
|
+
static showManualSetup(provider?: 'ai-run' | 'bedrock' | 'anthropic' | 'azure'): void;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=first-time.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"first-time.d.ts","sourceRoot":"","sources":["../../src/utils/first-time.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,qBAAa,mBAAmB;IAC9B;;OAEG;WACU,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAa5C;;OAEG;WACU,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAahD;;OAEG;IACH,MAAM,CAAC,mBAAmB,IAAI,IAAI;IAoClC;;OAEG;IACH,MAAM,CAAC,cAAc,IAAI,IAAI;IA0B7B;;OAEG;IACH,MAAM,CAAC,iBAAiB,IAAI,IAAI;IAKhC;;OAEG;IACH,MAAM,CAAC,oBAAoB,IAAI,IAAI;IAiBnC;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,QAAQ,GAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,OAAkB,GAAG,IAAI;CAwJhG"}
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { ConfigLoader } from './config-loader.js';
|
|
3
|
+
/**
|
|
4
|
+
* First-time user experience utilities
|
|
5
|
+
*/
|
|
6
|
+
export class FirstTimeExperience {
|
|
7
|
+
/**
|
|
8
|
+
* Check if this is a first-time run (no configuration exists)
|
|
9
|
+
*/
|
|
10
|
+
static async isFirstTime() {
|
|
11
|
+
const hasGlobalConfig = await ConfigLoader.hasGlobalConfig();
|
|
12
|
+
// Also check if essential environment variables are set
|
|
13
|
+
const hasEnvVars = !!(process.env.CODEMIE_BASE_URL &&
|
|
14
|
+
process.env.CODEMIE_API_KEY &&
|
|
15
|
+
process.env.CODEMIE_MODEL);
|
|
16
|
+
return !hasGlobalConfig && !hasEnvVars;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Show first-time user welcome message with recommendations
|
|
20
|
+
*/
|
|
21
|
+
static async showWelcomeMessage() {
|
|
22
|
+
console.log(chalk.bold.cyan('\n╔═══════════════════════════════════════════════════════╗'));
|
|
23
|
+
console.log(chalk.bold.cyan('║ ║'));
|
|
24
|
+
console.log(chalk.bold.cyan('║ Welcome to CodeMie Code! 🎉 ║'));
|
|
25
|
+
console.log(chalk.bold.cyan('║ ║'));
|
|
26
|
+
console.log(chalk.bold.cyan('╚═══════════════════════════════════════════════════════╝\n'));
|
|
27
|
+
console.log(chalk.dim("It looks like this is your first time using CodeMie Code."));
|
|
28
|
+
console.log(chalk.dim("Let's get you set up!\n"));
|
|
29
|
+
this.showRecommendations();
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Show recommendations and next steps
|
|
33
|
+
*/
|
|
34
|
+
static showRecommendations() {
|
|
35
|
+
console.log(chalk.bold('📋 Getting Started:\n'));
|
|
36
|
+
console.log(chalk.cyan('Step 1: Choose Your Setup Method\n'));
|
|
37
|
+
console.log(chalk.bold(' Option A: Interactive Setup Wizard (Recommended)'));
|
|
38
|
+
console.log(chalk.white(' $ ') + chalk.green('codemie setup'));
|
|
39
|
+
console.log(chalk.dim(' → Guided configuration for all providers'));
|
|
40
|
+
console.log(chalk.dim(' → Tests connection before saving'));
|
|
41
|
+
console.log(chalk.dim(' → Supports: AI/Run CodeMie, AWS Bedrock, Anthropic, Azure\n'));
|
|
42
|
+
console.log(chalk.bold(' Option B: Manual Configuration Guide'));
|
|
43
|
+
console.log(chalk.white(' $ ') + chalk.green('codemie env [provider]') + chalk.dim(' # Show all required env vars'));
|
|
44
|
+
console.log(chalk.dim(' → Complete environment variable list'));
|
|
45
|
+
console.log(chalk.dim(' → Copy-paste ready commands'));
|
|
46
|
+
console.log(chalk.dim(' → Providers: ai-run (default), bedrock, anthropic, azure\n'));
|
|
47
|
+
console.log(chalk.cyan('Step 2: Verify Configuration\n'));
|
|
48
|
+
console.log(chalk.white(' $ ') + chalk.green('codemie doctor'));
|
|
49
|
+
console.log(chalk.dim(' → Checks system health'));
|
|
50
|
+
console.log(chalk.dim(' → Tests AI provider connection'));
|
|
51
|
+
console.log(chalk.dim(' → Shows installed agents\n'));
|
|
52
|
+
console.log(chalk.cyan('Step 3: Install and Run Agents\n'));
|
|
53
|
+
console.log(chalk.white(' $ ') + chalk.green('codemie list') + chalk.dim(' # See all available agents'));
|
|
54
|
+
console.log(chalk.white(' $ ') + chalk.green('codemie install claude') + chalk.dim(' # Install Anthropic Claude Code'));
|
|
55
|
+
console.log(chalk.white(' $ ') + chalk.green('codemie install codex') + chalk.dim(' # Install OpenAI Codex'));
|
|
56
|
+
console.log(chalk.white(' $ ') + chalk.green('codemie run claude') + chalk.dim(' # Run Claude agent'));
|
|
57
|
+
console.log(chalk.white(' $ ') + chalk.green('codemie run codex') + chalk.dim(' # Run Codex agent\n'));
|
|
58
|
+
console.log(chalk.bold('📚 Additional Resources:\n'));
|
|
59
|
+
console.log(chalk.dim(' • Documentation: ') + chalk.blue('README.md'));
|
|
60
|
+
console.log(chalk.dim(' • Agent management: ') + chalk.green('codemie list, install, uninstall, run'));
|
|
61
|
+
console.log(chalk.dim(' • Configuration help: ') + chalk.green('codemie config --help\n'));
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Show quick start guide for users who have configuration
|
|
65
|
+
*/
|
|
66
|
+
static showQuickStart() {
|
|
67
|
+
console.log(chalk.bold.cyan('\n╔═══════════════════════════════════════╗'));
|
|
68
|
+
console.log(chalk.bold.cyan('║ CodeMie CLI Wrapper ║'));
|
|
69
|
+
console.log(chalk.bold.cyan('╚═══════════════════════════════════════╝\n'));
|
|
70
|
+
console.log(chalk.bold('Quick Start:\n'));
|
|
71
|
+
console.log(chalk.bold('Setup & Configuration:'));
|
|
72
|
+
console.log(chalk.cyan(' codemie setup') + chalk.dim(' # Interactive setup wizard'));
|
|
73
|
+
console.log(chalk.cyan(' codemie env [provider]') + chalk.dim(' # Show manual setup guide'));
|
|
74
|
+
console.log(chalk.cyan(' codemie config show') + chalk.dim(' # View current configuration'));
|
|
75
|
+
console.log(chalk.cyan(' codemie config edit <key>') + chalk.dim(' # Update a config value\n'));
|
|
76
|
+
console.log(chalk.bold('Verify:'));
|
|
77
|
+
console.log(chalk.cyan(' codemie doctor') + chalk.dim(' # Check configuration\n'));
|
|
78
|
+
console.log(chalk.bold('Manage Agents:'));
|
|
79
|
+
console.log(chalk.cyan(' codemie list') + chalk.dim(' # List available agents'));
|
|
80
|
+
console.log(chalk.cyan(' codemie install claude') + chalk.dim(' # Install Claude Code'));
|
|
81
|
+
console.log(chalk.cyan(' codemie install codex') + chalk.dim(' # Install Codex'));
|
|
82
|
+
console.log(chalk.cyan(' codemie run claude') + chalk.dim(' # Run Claude agent'));
|
|
83
|
+
console.log(chalk.cyan(' codemie run codex') + chalk.dim(' # Run Codex agent\n'));
|
|
84
|
+
console.log(chalk.dim('For detailed help, run: ') + chalk.green('codemie --help\n'));
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Show a friendly reminder to complete setup
|
|
88
|
+
*/
|
|
89
|
+
static showSetupReminder() {
|
|
90
|
+
console.log(chalk.yellow('\n⚠️ Configuration needed!'));
|
|
91
|
+
console.log(chalk.dim(' Run ') + chalk.green('codemie setup') + chalk.dim(' to configure your AI provider\n'));
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Show post-setup success message
|
|
95
|
+
*/
|
|
96
|
+
static showPostSetupMessage() {
|
|
97
|
+
console.log(chalk.bold.green('\n✅ You\'re all set!\n'));
|
|
98
|
+
console.log(chalk.bold('Next Steps:\n'));
|
|
99
|
+
console.log(chalk.cyan('1. Verify your configuration:'));
|
|
100
|
+
console.log(chalk.white(' $ ') + chalk.green('codemie doctor') + chalk.dim(' # Check system health\n'));
|
|
101
|
+
console.log(chalk.cyan('2. Install and run agents:'));
|
|
102
|
+
console.log(chalk.white(' $ ') + chalk.green('codemie list') + chalk.dim(' # See available agents'));
|
|
103
|
+
console.log(chalk.white(' $ ') + chalk.green('codemie install claude') + chalk.dim(' # Install Anthropic Claude Code'));
|
|
104
|
+
console.log(chalk.white(' $ ') + chalk.green('codemie run claude') + chalk.dim(' # Run Claude agent\n'));
|
|
105
|
+
console.log(chalk.cyan('3. (Optional) Install Codex:'));
|
|
106
|
+
console.log(chalk.white(' $ ') + chalk.green('codemie install codex') + chalk.dim(' # Install OpenAI Codex'));
|
|
107
|
+
console.log(chalk.white(' $ ') + chalk.green('codemie run codex') + chalk.dim(' # Run Codex agent\n'));
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Show manual setup guide with all required environment variables
|
|
111
|
+
*/
|
|
112
|
+
static showManualSetup(provider = 'ai-run') {
|
|
113
|
+
console.log(chalk.bold.cyan('\n╔═══════════════════════════════════════════════════════╗'));
|
|
114
|
+
console.log(chalk.bold.cyan('║ Manual Configuration Guide ║'));
|
|
115
|
+
console.log(chalk.bold.cyan('╚═══════════════════════════════════════════════════════╝\n'));
|
|
116
|
+
console.log(chalk.bold('Required Environment Variables:\n'));
|
|
117
|
+
switch (provider) {
|
|
118
|
+
case 'ai-run':
|
|
119
|
+
console.log(chalk.white('CODEMIE_BASE_URL') + chalk.dim(' = ') + chalk.cyan('"https://litellm.codemie.example.com"'));
|
|
120
|
+
console.log(chalk.white('CODEMIE_API_KEY') + chalk.dim(' = ') + chalk.cyan('"your-litellm-api-key"'));
|
|
121
|
+
console.log(chalk.white('CODEMIE_MODEL') + chalk.dim(' = ') + chalk.cyan('"claude-4-5-sonnet"'));
|
|
122
|
+
console.log();
|
|
123
|
+
console.log(chalk.bold('Optional Environment Variables:\n'));
|
|
124
|
+
console.log(chalk.white('CODEMIE_PROVIDER') + chalk.dim(' = ') + chalk.cyan('"ai-run"'));
|
|
125
|
+
console.log(chalk.dim(' Controls which environment variables are passed to agents'));
|
|
126
|
+
console.log(chalk.dim(' Options: ai-run (default), anthropic, azure, bedrock, openai'));
|
|
127
|
+
console.log();
|
|
128
|
+
console.log(chalk.bold('For Running Claude Directly (bypassing codemie):\n'));
|
|
129
|
+
console.log(chalk.white('ANTHROPIC_BASE_URL') + chalk.dim(' = ') + chalk.cyan('"https://litellm.codemie.example.com"'));
|
|
130
|
+
console.log(chalk.white('ANTHROPIC_AUTH_TOKEN') + chalk.dim(' = ') + chalk.cyan('"your-litellm-api-key"'));
|
|
131
|
+
console.log(chalk.white('ANTHROPIC_MODEL') + chalk.dim(' = ') + chalk.cyan('"claude-4-5-sonnet"'));
|
|
132
|
+
console.log(chalk.dim(' Note: Use ANTHROPIC_AUTH_TOKEN (not ANTHROPIC_API_KEY) for LiteLLM/AI-Run\n'));
|
|
133
|
+
break;
|
|
134
|
+
case 'bedrock':
|
|
135
|
+
console.log(chalk.bold.white('Step 1: AWS Credentials (choose one method):\n'));
|
|
136
|
+
console.log(chalk.dim('Method A: AWS CLI (Recommended)'));
|
|
137
|
+
console.log(chalk.white(' $ ') + chalk.green('aws configure'));
|
|
138
|
+
console.log(chalk.dim(' Enter AWS Access Key ID: ') + chalk.cyan('AKIAIOSFODNN7EXAMPLE'));
|
|
139
|
+
console.log(chalk.dim(' Enter AWS Secret Access Key: ') + chalk.cyan('wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY'));
|
|
140
|
+
console.log(chalk.dim(' Enter Default region: ') + chalk.cyan('us-west-2\n'));
|
|
141
|
+
console.log(chalk.dim('Method B: Environment Variables'));
|
|
142
|
+
console.log(chalk.white('AWS_ACCESS_KEY_ID') + chalk.dim(' = ') + chalk.cyan('"AKIAIOSFODNN7EXAMPLE"'));
|
|
143
|
+
console.log(chalk.white('AWS_SECRET_ACCESS_KEY') + chalk.dim(' = ') + chalk.cyan('"wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"'));
|
|
144
|
+
console.log(chalk.white('AWS_REGION') + chalk.dim(' = ') + chalk.cyan('"us-west-2"\n'));
|
|
145
|
+
console.log(chalk.bold.white('Step 2: Bedrock Configuration:\n'));
|
|
146
|
+
console.log(chalk.white('ANTHROPIC_MODEL') + chalk.dim(' = ') + chalk.cyan('"us.anthropic.claude-sonnet-4-5-20250929-v1:0"'));
|
|
147
|
+
console.log(chalk.white('CLAUDE_CODE_USE_BEDROCK') + chalk.dim(' = ') + chalk.cyan('1'));
|
|
148
|
+
console.log(chalk.white('AWS_PROFILE') + chalk.dim(' = ') + chalk.cyan('"default"') + chalk.dim(' (optional if using CLI)\n'));
|
|
149
|
+
break;
|
|
150
|
+
case 'anthropic':
|
|
151
|
+
console.log(chalk.white('CODEMIE_BASE_URL') + chalk.dim(' = ') + chalk.cyan('"https://api.anthropic.com/v1"'));
|
|
152
|
+
console.log(chalk.white('CODEMIE_API_KEY') + chalk.dim(' = ') + chalk.cyan('"sk-ant-api03-..."'));
|
|
153
|
+
console.log(chalk.white('CODEMIE_MODEL') + chalk.dim(' = ') + chalk.cyan('"claude-sonnet-4"'));
|
|
154
|
+
console.log();
|
|
155
|
+
console.log(chalk.bold('Optional Environment Variables:\n'));
|
|
156
|
+
console.log(chalk.white('CODEMIE_PROVIDER') + chalk.dim(' = ') + chalk.cyan('"anthropic"'));
|
|
157
|
+
console.log(chalk.dim(' Controls which environment variables are passed to agents'));
|
|
158
|
+
console.log(chalk.dim(' Options: ai-run (default), anthropic, azure, bedrock, openai\n'));
|
|
159
|
+
break;
|
|
160
|
+
case 'azure':
|
|
161
|
+
console.log(chalk.white('CODEMIE_BASE_URL') + chalk.dim(' = ') + chalk.cyan('"https://your-resource.openai.azure.com"'));
|
|
162
|
+
console.log(chalk.white('CODEMIE_API_KEY') + chalk.dim(' = ') + chalk.cyan('"your-azure-api-key"'));
|
|
163
|
+
console.log(chalk.white('CODEMIE_MODEL') + chalk.dim(' = ') + chalk.cyan('"gpt-4"') + chalk.dim(' or ') + chalk.cyan('"codex"'));
|
|
164
|
+
console.log();
|
|
165
|
+
console.log(chalk.bold('Optional Environment Variables:\n'));
|
|
166
|
+
console.log(chalk.white('CODEMIE_PROVIDER') + chalk.dim(' = ') + chalk.cyan('"azure"'));
|
|
167
|
+
console.log(chalk.dim(' Controls which environment variables are passed to agents'));
|
|
168
|
+
console.log(chalk.dim(' Options: ai-run (default), anthropic, azure, bedrock, openai\n'));
|
|
169
|
+
break;
|
|
170
|
+
}
|
|
171
|
+
console.log(chalk.bold('Setup Commands:\n'));
|
|
172
|
+
console.log(chalk.dim('# Export variables (current session only)'));
|
|
173
|
+
switch (provider) {
|
|
174
|
+
case 'ai-run':
|
|
175
|
+
console.log(chalk.green('export CODEMIE_BASE_URL="https://litellm.codemie.example.com"'));
|
|
176
|
+
console.log(chalk.green('export CODEMIE_API_KEY="your-litellm-api-key"'));
|
|
177
|
+
console.log(chalk.green('export CODEMIE_MODEL="claude-4-5-sonnet"'));
|
|
178
|
+
console.log(chalk.dim('# Or for direct Claude usage:'));
|
|
179
|
+
console.log(chalk.green('export ANTHROPIC_BASE_URL="https://litellm.codemie.example.com"'));
|
|
180
|
+
console.log(chalk.green('export ANTHROPIC_AUTH_TOKEN="your-litellm-api-key"'));
|
|
181
|
+
console.log(chalk.green('export ANTHROPIC_MODEL="claude-4-5-sonnet"'));
|
|
182
|
+
break;
|
|
183
|
+
case 'bedrock':
|
|
184
|
+
console.log(chalk.green('export AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE"'));
|
|
185
|
+
console.log(chalk.green('export AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"'));
|
|
186
|
+
console.log(chalk.green('export AWS_REGION="us-west-2"'));
|
|
187
|
+
console.log(chalk.green('export ANTHROPIC_MODEL="us.anthropic.claude-sonnet-4-5-20250929-v1:0"'));
|
|
188
|
+
console.log(chalk.green('export CLAUDE_CODE_USE_BEDROCK=1'));
|
|
189
|
+
break;
|
|
190
|
+
case 'anthropic':
|
|
191
|
+
console.log(chalk.green('export CODEMIE_BASE_URL="https://api.anthropic.com/v1"'));
|
|
192
|
+
console.log(chalk.green('export CODEMIE_API_KEY="sk-ant-api03-..."'));
|
|
193
|
+
console.log(chalk.green('export CODEMIE_MODEL="claude-sonnet-4"'));
|
|
194
|
+
break;
|
|
195
|
+
case 'azure':
|
|
196
|
+
console.log(chalk.green('export CODEMIE_BASE_URL="https://your-resource.openai.azure.com"'));
|
|
197
|
+
console.log(chalk.green('export CODEMIE_API_KEY="your-azure-api-key"'));
|
|
198
|
+
console.log(chalk.green('export CODEMIE_MODEL="gpt-4"'));
|
|
199
|
+
break;
|
|
200
|
+
}
|
|
201
|
+
console.log();
|
|
202
|
+
console.log(chalk.dim('# Add to shell profile for persistence (choose your shell)'));
|
|
203
|
+
console.log(chalk.green('# For Bash:'));
|
|
204
|
+
console.log(chalk.green('cat >> ~/.bashrc << EOF'));
|
|
205
|
+
switch (provider) {
|
|
206
|
+
case 'ai-run':
|
|
207
|
+
console.log(chalk.green('export CODEMIE_BASE_URL="https://litellm.codemie.example.com"'));
|
|
208
|
+
console.log(chalk.green('export CODEMIE_API_KEY="your-litellm-api-key"'));
|
|
209
|
+
console.log(chalk.green('export CODEMIE_MODEL="claude-4-5-sonnet"'));
|
|
210
|
+
console.log(chalk.dim('# Or for direct Claude usage:'));
|
|
211
|
+
console.log(chalk.green('export ANTHROPIC_BASE_URL="https://litellm.codemie.example.com"'));
|
|
212
|
+
console.log(chalk.green('export ANTHROPIC_AUTH_TOKEN="your-litellm-api-key"'));
|
|
213
|
+
console.log(chalk.green('export ANTHROPIC_MODEL="claude-4-5-sonnet"'));
|
|
214
|
+
break;
|
|
215
|
+
case 'bedrock':
|
|
216
|
+
console.log(chalk.green('export AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE"'));
|
|
217
|
+
console.log(chalk.green('export AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"'));
|
|
218
|
+
console.log(chalk.green('export AWS_REGION="us-west-2"'));
|
|
219
|
+
console.log(chalk.green('export ANTHROPIC_MODEL="us.anthropic.claude-sonnet-4-5-20250929-v1:0"'));
|
|
220
|
+
console.log(chalk.green('export CLAUDE_CODE_USE_BEDROCK=1'));
|
|
221
|
+
break;
|
|
222
|
+
case 'anthropic':
|
|
223
|
+
console.log(chalk.green('export CODEMIE_BASE_URL="https://api.anthropic.com/v1"'));
|
|
224
|
+
console.log(chalk.green('export CODEMIE_API_KEY="sk-ant-api03-..."'));
|
|
225
|
+
console.log(chalk.green('export CODEMIE_MODEL="claude-sonnet-4"'));
|
|
226
|
+
break;
|
|
227
|
+
case 'azure':
|
|
228
|
+
console.log(chalk.green('export CODEMIE_BASE_URL="https://your-resource.openai.azure.com"'));
|
|
229
|
+
console.log(chalk.green('export CODEMIE_API_KEY="your-azure-api-key"'));
|
|
230
|
+
console.log(chalk.green('export CODEMIE_MODEL="gpt-4"'));
|
|
231
|
+
break;
|
|
232
|
+
}
|
|
233
|
+
console.log(chalk.green('EOF'));
|
|
234
|
+
console.log(chalk.green('source ~/.bashrc'));
|
|
235
|
+
console.log();
|
|
236
|
+
console.log(chalk.green('# For Zsh:'));
|
|
237
|
+
console.log(chalk.green('# Replace ~/.bashrc with ~/.zshrc in commands above\n'));
|
|
238
|
+
console.log(chalk.bold('Verification:\n'));
|
|
239
|
+
console.log(chalk.white(' $ ') + chalk.green('codemie doctor') + chalk.dim(' # Check configuration and test connection'));
|
|
240
|
+
console.log(chalk.white(' $ ') + chalk.green('codemie install claude') + chalk.dim(' # Install Claude agent'));
|
|
241
|
+
console.log(chalk.white(' $ ') + chalk.green('codemie run claude') + chalk.dim(' # Run the AI assistant\n'));
|
|
242
|
+
console.log(chalk.dim('Need help? Run: ') + chalk.green('codemie --help\n'));
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=first-time.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"first-time.js","sourceRoot":"","sources":["../../src/utils/first-time.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Result of health check
|
|
3
|
+
*/
|
|
4
|
+
export interface HealthCheckResult {
|
|
5
|
+
success: boolean;
|
|
6
|
+
message: string;
|
|
7
|
+
details?: any;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Check provider health endpoint
|
|
11
|
+
*
|
|
12
|
+
* For LiteLLM: https://docs.litellm.ai/docs/proxy/health
|
|
13
|
+
* Typically at /health endpoint
|
|
14
|
+
*/
|
|
15
|
+
export declare function checkProviderHealth(baseUrl: string, apiKey: string): Promise<HealthCheckResult>;
|
|
16
|
+
/**
|
|
17
|
+
* Quick validation - just checks if URL is reachable
|
|
18
|
+
*/
|
|
19
|
+
export declare function quickValidation(baseUrl: string, apiKey: string): Promise<boolean>;
|
|
20
|
+
//# sourceMappingURL=health-checker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health-checker.d.ts","sourceRoot":"","sources":["../../src/utils/health-checker.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,CAAC,CA6B5B;AA+HD;;GAEG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC,CAGlB"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import https from 'https';
|
|
2
|
+
import http from 'http';
|
|
3
|
+
import { URL } from 'url';
|
|
4
|
+
/**
|
|
5
|
+
* Check provider health endpoint
|
|
6
|
+
*
|
|
7
|
+
* For LiteLLM: https://docs.litellm.ai/docs/proxy/health
|
|
8
|
+
* Typically at /health endpoint
|
|
9
|
+
*/
|
|
10
|
+
export async function checkProviderHealth(baseUrl, apiKey) {
|
|
11
|
+
try {
|
|
12
|
+
// Try /health endpoint first (LiteLLM, common pattern)
|
|
13
|
+
let result = await tryHealthEndpoint(baseUrl, apiKey, '/health');
|
|
14
|
+
if (result.success) {
|
|
15
|
+
return result;
|
|
16
|
+
}
|
|
17
|
+
// Fallback: Try /v1/models endpoint (OpenAI-compatible)
|
|
18
|
+
result = await tryHealthEndpoint(baseUrl, apiKey, '/v1/models');
|
|
19
|
+
if (result.success) {
|
|
20
|
+
return {
|
|
21
|
+
success: true,
|
|
22
|
+
message: 'Provider is reachable (verified via /v1/models)',
|
|
23
|
+
details: result.details
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
success: false,
|
|
28
|
+
message: 'Could not verify provider health',
|
|
29
|
+
details: result.details
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
return {
|
|
34
|
+
success: false,
|
|
35
|
+
message: error instanceof Error ? error.message : String(error)
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Try a specific health endpoint
|
|
41
|
+
*/
|
|
42
|
+
async function tryHealthEndpoint(baseUrl, apiKey, path) {
|
|
43
|
+
try {
|
|
44
|
+
const url = new URL(path, baseUrl);
|
|
45
|
+
const isHttps = url.protocol === 'https:';
|
|
46
|
+
const client = isHttps ? https : http;
|
|
47
|
+
return await new Promise((resolve) => {
|
|
48
|
+
const options = {
|
|
49
|
+
hostname: url.hostname,
|
|
50
|
+
port: url.port || (isHttps ? 443 : 80),
|
|
51
|
+
path: url.pathname + url.search,
|
|
52
|
+
method: 'GET',
|
|
53
|
+
headers: {
|
|
54
|
+
'Authorization': `Bearer ${apiKey}`,
|
|
55
|
+
'Content-Type': 'application/json'
|
|
56
|
+
},
|
|
57
|
+
timeout: 10000 // 10 second timeout
|
|
58
|
+
};
|
|
59
|
+
const req = client.request(options, (res) => {
|
|
60
|
+
let data = '';
|
|
61
|
+
res.on('data', (chunk) => {
|
|
62
|
+
data += chunk;
|
|
63
|
+
});
|
|
64
|
+
res.on('end', () => {
|
|
65
|
+
if (res.statusCode === 200) {
|
|
66
|
+
try {
|
|
67
|
+
const response = JSON.parse(data);
|
|
68
|
+
resolve({
|
|
69
|
+
success: true,
|
|
70
|
+
message: `Health check passed (${path})`,
|
|
71
|
+
details: response
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
// Non-JSON response but 200 OK
|
|
76
|
+
resolve({
|
|
77
|
+
success: true,
|
|
78
|
+
message: `Health check passed (${path})`,
|
|
79
|
+
details: { raw: data }
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
else if (res.statusCode === 401) {
|
|
84
|
+
resolve({
|
|
85
|
+
success: false,
|
|
86
|
+
message: 'Invalid API key (401 Unauthorized)',
|
|
87
|
+
details: { statusCode: res.statusCode, body: data }
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
else if (res.statusCode === 403) {
|
|
91
|
+
resolve({
|
|
92
|
+
success: false,
|
|
93
|
+
message: 'Access forbidden - check API key permissions (403)',
|
|
94
|
+
details: { statusCode: res.statusCode, body: data }
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
else if (res.statusCode === 404) {
|
|
98
|
+
resolve({
|
|
99
|
+
success: false,
|
|
100
|
+
message: `Endpoint not found (${path})`,
|
|
101
|
+
details: { statusCode: res.statusCode }
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
resolve({
|
|
106
|
+
success: false,
|
|
107
|
+
message: `HTTP ${res.statusCode}: ${data}`,
|
|
108
|
+
details: { statusCode: res.statusCode, body: data }
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
req.on('error', (error) => {
|
|
114
|
+
if (error.message.includes('ENOTFOUND')) {
|
|
115
|
+
resolve({
|
|
116
|
+
success: false,
|
|
117
|
+
message: 'Host not found - check base URL',
|
|
118
|
+
details: error
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
else if (error.message.includes('ECONNREFUSED')) {
|
|
122
|
+
resolve({
|
|
123
|
+
success: false,
|
|
124
|
+
message: 'Connection refused - service may be down',
|
|
125
|
+
details: error
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
else if (error.message.includes('ETIMEDOUT')) {
|
|
129
|
+
resolve({
|
|
130
|
+
success: false,
|
|
131
|
+
message: 'Connection timeout - check network/firewall',
|
|
132
|
+
details: error
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
resolve({
|
|
137
|
+
success: false,
|
|
138
|
+
message: `Connection error: ${error.message}`,
|
|
139
|
+
details: error
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
req.on('timeout', () => {
|
|
144
|
+
req.destroy();
|
|
145
|
+
resolve({
|
|
146
|
+
success: false,
|
|
147
|
+
message: 'Request timeout (10s)',
|
|
148
|
+
details: { timeout: true }
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
req.end();
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
return {
|
|
156
|
+
success: false,
|
|
157
|
+
message: error instanceof Error ? error.message : String(error)
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Quick validation - just checks if URL is reachable
|
|
163
|
+
*/
|
|
164
|
+
export async function quickValidation(baseUrl, apiKey) {
|
|
165
|
+
const result = await checkProviderHealth(baseUrl, apiKey);
|
|
166
|
+
return result.success;
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=health-checker.js.map
|