@codemieai/code 0.0.2 → 0.0.4
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/README.md +357 -719
- package/bin/codemie-claude.js +145 -0
- package/bin/codemie-code.js +128 -15
- package/bin/codemie-codex.js +137 -0
- package/bin/codemie.js +1 -1
- package/dist/agents/adapters/claude-code.d.ts +7 -2
- package/dist/agents/adapters/claude-code.d.ts.map +1 -1
- package/dist/agents/adapters/claude-code.js +94 -58
- 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 +7 -2
- package/dist/agents/adapters/codex.d.ts.map +1 -1
- package/dist/agents/adapters/codex.js +104 -39
- 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 +689 -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 +278 -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 +92 -0
- package/dist/agents/codemie-code/index.d.ts.map +1 -0
- package/dist/agents/codemie-code/index.js +327 -0
- package/dist/agents/codemie-code/index.js.map +1 -0
- package/dist/agents/codemie-code/modes/contextAwarePlanning.d.ts +87 -0
- package/dist/agents/codemie-code/modes/contextAwarePlanning.d.ts.map +1 -0
- package/dist/agents/codemie-code/modes/contextAwarePlanning.js +957 -0
- package/dist/agents/codemie-code/modes/contextAwarePlanning.js.map +1 -0
- package/dist/agents/codemie-code/modes/planMode.d.ts +116 -0
- package/dist/agents/codemie-code/modes/planMode.d.ts.map +1 -0
- package/dist/agents/codemie-code/modes/planMode.js +537 -0
- package/dist/agents/codemie-code/modes/planMode.js.map +1 -0
- package/dist/agents/codemie-code/prompts.d.ts +40 -0
- package/dist/agents/codemie-code/prompts.d.ts.map +1 -0
- package/dist/agents/codemie-code/prompts.js +160 -0
- package/dist/agents/codemie-code/prompts.js.map +1 -0
- package/dist/agents/codemie-code/storage/todoStorage.d.ts +78 -0
- package/dist/agents/codemie-code/storage/todoStorage.d.ts.map +1 -0
- package/dist/agents/codemie-code/storage/todoStorage.js +225 -0
- package/dist/agents/codemie-code/storage/todoStorage.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/index.d.ts +45 -0
- package/dist/agents/codemie-code/tools/index.d.ts.map +1 -0
- package/dist/agents/codemie-code/tools/index.js +407 -0
- package/dist/agents/codemie-code/tools/index.js.map +1 -0
- package/dist/agents/codemie-code/tools/planning.d.ts +53 -0
- package/dist/agents/codemie-code/tools/planning.d.ts.map +1 -0
- package/dist/agents/codemie-code/tools/planning.js +224 -0
- package/dist/agents/codemie-code/tools/planning.js.map +1 -0
- package/dist/agents/codemie-code/types.d.ts +418 -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/progressTracker.d.ts +125 -0
- package/dist/agents/codemie-code/ui/progressTracker.d.ts.map +1 -0
- package/dist/agents/codemie-code/ui/progressTracker.js +343 -0
- package/dist/agents/codemie-code/ui/progressTracker.js.map +1 -0
- package/dist/agents/codemie-code/ui/todoPanel.d.ts +112 -0
- package/dist/agents/codemie-code/ui/todoPanel.d.ts.map +1 -0
- package/dist/agents/codemie-code/ui/todoPanel.js +318 -0
- package/dist/agents/codemie-code/ui/todoPanel.js.map +1 -0
- package/dist/agents/codemie-code/ui.d.ts +179 -0
- package/dist/agents/codemie-code/ui.d.ts.map +1 -0
- package/dist/agents/codemie-code/ui.js +1408 -0
- package/dist/agents/codemie-code/ui.js.map +1 -0
- package/dist/agents/codemie-code/utils/progressionEnforcer.d.ts +87 -0
- package/dist/agents/codemie-code/utils/progressionEnforcer.d.ts.map +1 -0
- package/dist/agents/codemie-code/utils/progressionEnforcer.js +293 -0
- package/dist/agents/codemie-code/utils/progressionEnforcer.js.map +1 -0
- package/dist/agents/codemie-code/utils/todoParser.d.ts +41 -0
- package/dist/agents/codemie-code/utils/todoParser.d.ts.map +1 -0
- package/dist/agents/codemie-code/utils/todoParser.js +305 -0
- package/dist/agents/codemie-code/utils/todoParser.js.map +1 -0
- package/dist/agents/codemie-code/utils/todoValidator.d.ts +65 -0
- package/dist/agents/codemie-code/utils/todoValidator.d.ts.map +1 -0
- package/dist/agents/codemie-code/utils/todoValidator.js +249 -0
- package/dist/agents/codemie-code/utils/todoValidator.js.map +1 -0
- package/dist/agents/codemie-code/validators/planValidator.d.ts +94 -0
- package/dist/agents/codemie-code/validators/planValidator.d.ts.map +1 -0
- package/dist/agents/codemie-code/validators/planValidator.js +281 -0
- package/dist/agents/codemie-code/validators/planValidator.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 +11 -15
- package/dist/agents/registry.js.map +1 -1
- package/dist/cli/commands/auth.d.ts +3 -0
- package/dist/cli/commands/auth.d.ts.map +1 -0
- package/dist/cli/commands/auth.js +170 -0
- package/dist/cli/commands/auth.js.map +1 -0
- 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 +350 -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 +308 -71
- 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.d.ts.map +1 -1
- package/dist/cli/commands/install.js +28 -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 +297 -31
- 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 +523 -0
- package/dist/cli/commands/setup.js.map +1 -0
- package/dist/cli/commands/tools.d.ts +6 -0
- package/dist/cli/commands/tools.d.ts.map +1 -0
- package/dist/cli/commands/tools.js +244 -0
- package/dist/cli/commands/tools.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/commands/workflow.d.ts +6 -0
- package/dist/cli/commands/workflow.d.ts.map +1 -0
- package/dist/cli/commands/workflow.js +424 -0
- package/dist/cli/commands/workflow.js.map +1 -0
- package/dist/cli/index.js +85 -35
- package/dist/cli/index.js.map +1 -1
- package/dist/clients/adapters/github.d.ts +17 -0
- package/dist/clients/adapters/github.d.ts.map +1 -0
- package/dist/clients/adapters/github.js +150 -0
- package/dist/clients/adapters/github.js.map +1 -0
- package/dist/clients/adapters/gitlab.d.ts +17 -0
- package/dist/clients/adapters/gitlab.d.ts.map +1 -0
- package/dist/clients/adapters/gitlab.js +147 -0
- package/dist/clients/adapters/gitlab.js.map +1 -0
- package/dist/clients/registry.d.ts +20 -0
- package/dist/clients/registry.d.ts.map +1 -0
- package/dist/clients/registry.js +27 -0
- package/dist/clients/registry.js.map +1 -0
- 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/tools/detector.d.ts +33 -0
- package/dist/tools/detector.d.ts.map +1 -0
- package/dist/tools/detector.js +145 -0
- package/dist/tools/detector.js.map +1 -0
- package/dist/tools/index.d.ts +8 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +8 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/manager.d.ts +21 -0
- package/dist/tools/manager.d.ts.map +1 -0
- package/dist/tools/manager.js +104 -0
- package/dist/tools/manager.js.map +1 -0
- package/dist/tools/registry.d.ts +8 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +36 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/types.d.ts +41 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +5 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/types/sso.d.ts +42 -0
- package/dist/types/sso.d.ts.map +1 -0
- package/dist/types/sso.js +2 -0
- package/dist/types/sso.js.map +1 -0
- package/dist/utils/agent-compatibility.d.ts +32 -0
- package/dist/utils/agent-compatibility.d.ts.map +1 -0
- package/dist/utils/agent-compatibility.js +140 -0
- package/dist/utils/agent-compatibility.js.map +1 -0
- 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/codemie-integration-validator.d.ts +17 -0
- package/dist/utils/codemie-integration-validator.d.ts.map +1 -0
- package/dist/utils/codemie-integration-validator.js +105 -0
- package/dist/utils/codemie-integration-validator.js.map +1 -0
- package/dist/utils/codemie-model-fetcher.d.ts +11 -0
- package/dist/utils/codemie-model-fetcher.d.ts.map +1 -0
- package/dist/utils/codemie-model-fetcher.js +242 -0
- package/dist/utils/codemie-model-fetcher.js.map +1 -0
- package/dist/utils/config-loader.d.ts +118 -0
- package/dist/utils/config-loader.d.ts.map +1 -0
- package/dist/utils/config-loader.js +397 -0
- package/dist/utils/config-loader.js.map +1 -0
- package/dist/utils/credential-store.d.ts +16 -0
- package/dist/utils/credential-store.d.ts.map +1 -0
- package/dist/utils/credential-store.js +109 -0
- package/dist/utils/credential-store.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 +226 -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 +172 -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 +150 -0
- package/dist/utils/model-fetcher.js.map +1 -0
- package/dist/utils/sso-auth.d.ts +15 -0
- package/dist/utils/sso-auth.d.ts.map +1 -0
- package/dist/utils/sso-auth.js +207 -0
- package/dist/utils/sso-auth.js.map +1 -0
- package/dist/utils/sso-gateway.d.ts +47 -0
- package/dist/utils/sso-gateway.d.ts.map +1 -0
- package/dist/utils/sso-gateway.js +298 -0
- package/dist/utils/sso-gateway.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/dist/workflows/detector.d.ts +37 -0
- package/dist/workflows/detector.d.ts.map +1 -0
- package/dist/workflows/detector.js +160 -0
- package/dist/workflows/detector.js.map +1 -0
- package/dist/workflows/index.d.ts +8 -0
- package/dist/workflows/index.d.ts.map +1 -0
- package/dist/workflows/index.js +8 -0
- package/dist/workflows/index.js.map +1 -0
- package/dist/workflows/installer.d.ts +24 -0
- package/dist/workflows/installer.d.ts.map +1 -0
- package/dist/workflows/installer.js +105 -0
- package/dist/workflows/installer.js.map +1 -0
- package/dist/workflows/registry.d.ts +29 -0
- package/dist/workflows/registry.d.ts.map +1 -0
- package/dist/workflows/registry.js +54 -0
- package/dist/workflows/registry.js.map +1 -0
- package/dist/workflows/templates/github/metadata.d.ts +6 -0
- package/dist/workflows/templates/github/metadata.d.ts.map +1 -0
- package/dist/workflows/templates/github/metadata.js +111 -0
- package/dist/workflows/templates/github/metadata.js.map +1 -0
- package/dist/workflows/templates/gitlab/metadata.d.ts +6 -0
- package/dist/workflows/templates/gitlab/metadata.d.ts.map +1 -0
- package/dist/workflows/templates/gitlab/metadata.js +14 -0
- package/dist/workflows/templates/gitlab/metadata.js.map +1 -0
- package/dist/workflows/types.d.ts +71 -0
- package/dist/workflows/types.d.ts.map +1 -0
- package/dist/workflows/types.js +5 -0
- package/dist/workflows/types.js.map +1 -0
- package/package.json +32 -25
- package/src/workflows/templates/github/code-ci.yml +529 -0
- package/src/workflows/templates/github/inline-fix.yml +665 -0
- package/src/workflows/templates/github/pr-review.yml +677 -0
- package/.claude/agents/README.md +0 -298
- package/.claude/agents/release-manager.md +0 -857
- package/.codemie/guides/git-workflow.md +0 -493
- package/CLAUDE.md +0 -855
- 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/eslint.config.mjs +0 -43
- 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,327 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CodeMie Native Agent - Main Entry Point
|
|
3
|
+
*
|
|
4
|
+
* Orchestrates the entire CodeMie native agent including initialization,
|
|
5
|
+
* tool loading, and interactive/non-interactive execution modes.
|
|
6
|
+
*/
|
|
7
|
+
import { CodeMieAgent } from './agent.js';
|
|
8
|
+
import { loadCodeMieConfig, getConfigSummary } from './config.js';
|
|
9
|
+
import { createSystemTools } from './tools/index.js';
|
|
10
|
+
import { CodeMieAgentError } from './types.js';
|
|
11
|
+
import { hasClipboardImage, getClipboardImage } from '../../utils/clipboard.js';
|
|
12
|
+
export class CodeMieCode {
|
|
13
|
+
agent = null;
|
|
14
|
+
config;
|
|
15
|
+
initializationResult = null;
|
|
16
|
+
constructor(workingDir) {
|
|
17
|
+
// Load configuration first - this may throw if config is invalid
|
|
18
|
+
this.config = {}; // Temporary placeholder
|
|
19
|
+
// Actual loading happens in initialize() to handle async operations
|
|
20
|
+
this.workingDirectory = workingDir || process.cwd();
|
|
21
|
+
}
|
|
22
|
+
workingDirectory;
|
|
23
|
+
/**
|
|
24
|
+
* Initialize the CodeMie agent asynchronously
|
|
25
|
+
*/
|
|
26
|
+
async initialize(cliOverrides) {
|
|
27
|
+
try {
|
|
28
|
+
// Load configuration with CLI overrides
|
|
29
|
+
this.config = await loadCodeMieConfig(this.workingDirectory, cliOverrides);
|
|
30
|
+
if (this.config.debug) {
|
|
31
|
+
console.log('[DEBUG] Configuration loaded:', getConfigSummary(this.config));
|
|
32
|
+
console.log('[DEBUG] Global SSO cookies set:', !!global.codemieSSOCookies);
|
|
33
|
+
}
|
|
34
|
+
// Create system tools
|
|
35
|
+
const tools = await createSystemTools(this.config);
|
|
36
|
+
if (this.config.debug) {
|
|
37
|
+
console.log(`[DEBUG] Created ${tools.length} system tools`);
|
|
38
|
+
}
|
|
39
|
+
// Initialize the agent
|
|
40
|
+
this.agent = new CodeMieAgent(this.config, tools);
|
|
41
|
+
this.initializationResult = {
|
|
42
|
+
success: true,
|
|
43
|
+
toolCount: tools.length,
|
|
44
|
+
duration: 0
|
|
45
|
+
};
|
|
46
|
+
if (this.config.debug) {
|
|
47
|
+
console.log('[DEBUG] Agent initialized successfully');
|
|
48
|
+
}
|
|
49
|
+
return this.initializationResult;
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
53
|
+
this.initializationResult = {
|
|
54
|
+
success: false,
|
|
55
|
+
toolCount: 0,
|
|
56
|
+
duration: 0,
|
|
57
|
+
error: errorMessage
|
|
58
|
+
};
|
|
59
|
+
if (this.config.debug) {
|
|
60
|
+
console.error('[DEBUG] Initialization failed:', error);
|
|
61
|
+
}
|
|
62
|
+
throw new CodeMieAgentError(`Failed to initialize CodeMie agent: ${errorMessage}`, 'INITIALIZATION_ERROR', { workingDirectory: this.workingDirectory, originalError: error });
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Start interactive mode with modern terminal UI
|
|
67
|
+
*/
|
|
68
|
+
async startInteractive() {
|
|
69
|
+
if (!this.agent) {
|
|
70
|
+
throw new CodeMieAgentError('Agent not initialized. Call initialize() first.', 'NOT_INITIALIZED');
|
|
71
|
+
}
|
|
72
|
+
// Use modern Clack-based terminal UI
|
|
73
|
+
const { CodeMieTerminalUI } = await import('./ui.js');
|
|
74
|
+
const ui = new CodeMieTerminalUI(this.agent);
|
|
75
|
+
try {
|
|
76
|
+
await ui.startInteractive();
|
|
77
|
+
}
|
|
78
|
+
finally {
|
|
79
|
+
ui.dispose();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Execute a single task (non-interactive mode)
|
|
84
|
+
*/
|
|
85
|
+
async executeTask(task) {
|
|
86
|
+
if (!this.agent) {
|
|
87
|
+
throw new CodeMieAgentError('Agent not initialized. Call initialize() first.', 'NOT_INITIALIZED');
|
|
88
|
+
}
|
|
89
|
+
try {
|
|
90
|
+
if (this.config.debug) {
|
|
91
|
+
console.log(`[DEBUG] Executing task: ${task.substring(0, 100)}...`);
|
|
92
|
+
}
|
|
93
|
+
let result = '';
|
|
94
|
+
await this.agent.chatStream(task, (event) => {
|
|
95
|
+
if (event.type === 'content_chunk') {
|
|
96
|
+
result += event.content || '';
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
return result;
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
103
|
+
if (this.config.debug) {
|
|
104
|
+
console.error('[DEBUG] Task execution failed:', error);
|
|
105
|
+
}
|
|
106
|
+
throw new CodeMieAgentError(`Task execution failed: ${errorMessage}`, 'TASK_EXECUTION_ERROR', { task, originalError: error });
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Execute a single task with modern UI feedback (for CLI usage)
|
|
111
|
+
*/
|
|
112
|
+
async executeTaskWithUI(task, options) {
|
|
113
|
+
if (!this.agent) {
|
|
114
|
+
throw new CodeMieAgentError('Agent not initialized. Call initialize() first.', 'NOT_INITIALIZED');
|
|
115
|
+
}
|
|
116
|
+
// Use modern Clack-based terminal UI for single task
|
|
117
|
+
const { CodeMieTerminalUI } = await import('./ui.js');
|
|
118
|
+
const ui = new CodeMieTerminalUI(this.agent);
|
|
119
|
+
try {
|
|
120
|
+
// Enable plan mode if requested
|
|
121
|
+
if (options?.planMode || options?.planOnly) {
|
|
122
|
+
ui.enablePlanMode();
|
|
123
|
+
}
|
|
124
|
+
// Check for clipboard image
|
|
125
|
+
let clipboardImage;
|
|
126
|
+
if (await hasClipboardImage()) {
|
|
127
|
+
clipboardImage = await getClipboardImage() || undefined;
|
|
128
|
+
}
|
|
129
|
+
ui.showTaskWelcome(task);
|
|
130
|
+
let result;
|
|
131
|
+
if (options?.planMode) {
|
|
132
|
+
// Use UI-connected planning execution instead of direct planning
|
|
133
|
+
result = await ui.executePlanningTask(task, clipboardImage ? [clipboardImage] : [], options.planOnly);
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
result = await ui.executeSingleTask(task, clipboardImage ? [clipboardImage] : []);
|
|
137
|
+
}
|
|
138
|
+
// Only show task complete if not plan-only mode
|
|
139
|
+
if (!options?.planOnly) {
|
|
140
|
+
ui.showTaskComplete();
|
|
141
|
+
}
|
|
142
|
+
return result;
|
|
143
|
+
}
|
|
144
|
+
catch (error) {
|
|
145
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
146
|
+
ui.showError(errorMessage);
|
|
147
|
+
throw error;
|
|
148
|
+
}
|
|
149
|
+
finally {
|
|
150
|
+
ui.dispose();
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Execute a task with structured planning mode
|
|
155
|
+
*/
|
|
156
|
+
async executeTaskWithPlanning(task, _images = [], planOnly = false) {
|
|
157
|
+
if (!this.agent) {
|
|
158
|
+
throw new CodeMieAgentError('Agent not initialized. Call initialize() first.', 'NOT_INITIALIZED');
|
|
159
|
+
}
|
|
160
|
+
try {
|
|
161
|
+
const { PlanMode } = await import('./modes/planMode.js');
|
|
162
|
+
const planMode = new PlanMode(this.agent, {
|
|
163
|
+
requirePlanning: true,
|
|
164
|
+
enforceSequential: true,
|
|
165
|
+
showPlanningFeedback: true
|
|
166
|
+
});
|
|
167
|
+
if (planOnly) {
|
|
168
|
+
// Only generate plan, don't execute
|
|
169
|
+
const planningResult = await planMode.planningPhase(task);
|
|
170
|
+
if (!planningResult.success) {
|
|
171
|
+
throw new Error(`Planning failed: ${planningResult.error}`);
|
|
172
|
+
}
|
|
173
|
+
return `📋 Plan generated successfully with ${planningResult.todos.length} steps:\n\n` +
|
|
174
|
+
planningResult.todos.map((todo, i) => `${i + 1}. ${todo.content}`).join('\n') +
|
|
175
|
+
`\n\nQuality Score: ${planningResult.qualityScore}/100\n` +
|
|
176
|
+
(planningResult.suggestions.length > 0 ?
|
|
177
|
+
`\nSuggestions:\n${planningResult.suggestions.map((s) => `• ${s}`).join('\n')}` : '') +
|
|
178
|
+
`\n\n🎯 **Plan-only mode**: Plan created. Use --plan flag (without --plan-only) to execute this plan.`;
|
|
179
|
+
}
|
|
180
|
+
// Full planning + execution
|
|
181
|
+
return await planMode.executePlannedTask(task, (event) => {
|
|
182
|
+
// Handle todo updates and planning events
|
|
183
|
+
// Note: planning_start and other UI events are handled by the UI system
|
|
184
|
+
if (event.type === 'planning_complete') {
|
|
185
|
+
console.log(`📋 Plan created with ${event.planningInfo?.totalSteps || 0} steps`);
|
|
186
|
+
}
|
|
187
|
+
else if (event.type === 'todo_update') {
|
|
188
|
+
// Todo updates are handled by the UI system
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
catch (error) {
|
|
193
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
194
|
+
if (this.config.debug) {
|
|
195
|
+
console.error('[DEBUG] Plan mode execution failed:', error);
|
|
196
|
+
}
|
|
197
|
+
throw new CodeMieAgentError(`Plan mode execution failed: ${errorMessage}`, 'PLAN_MODE_ERROR', { task, originalError: error });
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Stream a task with event callbacks (for programmatic use)
|
|
202
|
+
*/
|
|
203
|
+
async streamTask(task, onEvent) {
|
|
204
|
+
if (!this.agent) {
|
|
205
|
+
throw new CodeMieAgentError('Agent not initialized. Call initialize() first.', 'NOT_INITIALIZED');
|
|
206
|
+
}
|
|
207
|
+
try {
|
|
208
|
+
await this.agent.chatStream(task, onEvent);
|
|
209
|
+
}
|
|
210
|
+
catch (error) {
|
|
211
|
+
throw new CodeMieAgentError(`Streaming task failed: ${error instanceof Error ? error.message : String(error)}`, 'STREAM_TASK_ERROR', { task, originalError: error });
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Get agent statistics
|
|
216
|
+
*/
|
|
217
|
+
getStats() {
|
|
218
|
+
return this.agent?.getStats() || null;
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Get initialization result
|
|
222
|
+
*/
|
|
223
|
+
getInitializationResult() {
|
|
224
|
+
return this.initializationResult;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Get agent configuration (sanitized)
|
|
228
|
+
*/
|
|
229
|
+
getConfig() {
|
|
230
|
+
return this.agent?.getConfig() || null;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Get the underlying agent instance (for advanced usage)
|
|
234
|
+
*/
|
|
235
|
+
getAgent() {
|
|
236
|
+
return this.agent;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Clear conversation history
|
|
240
|
+
*/
|
|
241
|
+
clearHistory() {
|
|
242
|
+
if (this.agent) {
|
|
243
|
+
this.agent.clearHistory();
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Health check for the entire system
|
|
248
|
+
*/
|
|
249
|
+
async healthCheck() {
|
|
250
|
+
try {
|
|
251
|
+
const configStatus = {
|
|
252
|
+
valid: !!this.config,
|
|
253
|
+
provider: this.config?.provider,
|
|
254
|
+
model: this.config?.model,
|
|
255
|
+
workingDirectory: this.config?.workingDirectory
|
|
256
|
+
};
|
|
257
|
+
if (!this.agent) {
|
|
258
|
+
return {
|
|
259
|
+
status: 'unhealthy',
|
|
260
|
+
initialized: false,
|
|
261
|
+
config: configStatus,
|
|
262
|
+
error: 'Agent not initialized'
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
const agentStats = this.agent.getStats();
|
|
266
|
+
const agentConfig = this.agent.getConfig();
|
|
267
|
+
return {
|
|
268
|
+
status: 'healthy',
|
|
269
|
+
initialized: true,
|
|
270
|
+
config: configStatus,
|
|
271
|
+
agent: {
|
|
272
|
+
stats: agentStats,
|
|
273
|
+
config: agentConfig ? {
|
|
274
|
+
provider: agentConfig.provider,
|
|
275
|
+
model: agentConfig.model
|
|
276
|
+
} : null
|
|
277
|
+
}
|
|
278
|
+
};
|
|
279
|
+
}
|
|
280
|
+
catch (error) {
|
|
281
|
+
return {
|
|
282
|
+
status: 'unhealthy',
|
|
283
|
+
initialized: !!this.agent,
|
|
284
|
+
config: { valid: false },
|
|
285
|
+
error: error instanceof Error ? error.message : String(error)
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Dispose of resources
|
|
291
|
+
*/
|
|
292
|
+
async dispose() {
|
|
293
|
+
// Future: Clean up any resources, close connections, etc.
|
|
294
|
+
if (this.config.debug) {
|
|
295
|
+
console.log('[DEBUG] CodeMie agent disposed');
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Static method to test connection and configuration
|
|
300
|
+
*/
|
|
301
|
+
static async testConnection(workingDir) {
|
|
302
|
+
try {
|
|
303
|
+
const config = await loadCodeMieConfig(workingDir);
|
|
304
|
+
// Basic validation that we can create an agent
|
|
305
|
+
const codeMie = new CodeMieCode(workingDir);
|
|
306
|
+
codeMie.config = config;
|
|
307
|
+
// Try to initialize (this will test tool creation and agent setup)
|
|
308
|
+
const initResult = await codeMie.initialize();
|
|
309
|
+
await codeMie.dispose();
|
|
310
|
+
return {
|
|
311
|
+
success: initResult.success,
|
|
312
|
+
provider: config.provider,
|
|
313
|
+
model: config.model
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
catch (error) {
|
|
317
|
+
return {
|
|
318
|
+
success: false,
|
|
319
|
+
error: error instanceof Error ? error.message : String(error)
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
export { loadCodeMieConfig, getConfigSummary } from './config.js';
|
|
325
|
+
export { CodeMieAgent } from './agent.js';
|
|
326
|
+
export { formatCost, formatTokens, formatTokenUsageSummary, calculateCost } from './tokenUtils.js';
|
|
327
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agents/codemie-code/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context-Aware Planning Implementation
|
|
3
|
+
*
|
|
4
|
+
* This module implements intelligent planning that gathers context before creating plans,
|
|
5
|
+
* inspired by proper software engineering practices where understanding comes before action.
|
|
6
|
+
*/
|
|
7
|
+
import type { CodeMieAgent } from '../agent.js';
|
|
8
|
+
import type { EventCallback } from '../types.js';
|
|
9
|
+
export interface ContextGatheringConfig {
|
|
10
|
+
maxFilesToRead?: number;
|
|
11
|
+
maxDirectoryDepth?: number;
|
|
12
|
+
includeTests?: boolean;
|
|
13
|
+
includeConfig?: boolean;
|
|
14
|
+
analyzeDependencies?: boolean;
|
|
15
|
+
debug?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface ProjectContext {
|
|
18
|
+
projectType: string;
|
|
19
|
+
mainLanguages: string[];
|
|
20
|
+
frameworks: string[];
|
|
21
|
+
projectStructure: Record<string, any>;
|
|
22
|
+
keyFiles: string[];
|
|
23
|
+
existingFeatures: string[];
|
|
24
|
+
dependencies: Record<string, any>;
|
|
25
|
+
testFrameworks: string[];
|
|
26
|
+
buildSystem: string;
|
|
27
|
+
}
|
|
28
|
+
export declare class ContextAwarePlanner {
|
|
29
|
+
private agent;
|
|
30
|
+
private config;
|
|
31
|
+
private eventCallback?;
|
|
32
|
+
constructor(agent: CodeMieAgent, config?: ContextGatheringConfig);
|
|
33
|
+
/**
|
|
34
|
+
* Create a context-aware plan by first gathering information about the project
|
|
35
|
+
*/
|
|
36
|
+
createContextAwarePlan(task: string, eventCallback?: EventCallback): Promise<{
|
|
37
|
+
plan: string;
|
|
38
|
+
context: ProjectContext;
|
|
39
|
+
}>;
|
|
40
|
+
/**
|
|
41
|
+
* Phase 1: Gather comprehensive project context using agent's actual tools
|
|
42
|
+
*/
|
|
43
|
+
private gatherProjectContext;
|
|
44
|
+
/**
|
|
45
|
+
* Phase 2: Analyze task requirements in project context
|
|
46
|
+
*/
|
|
47
|
+
private analyzeTaskInContext;
|
|
48
|
+
/**
|
|
49
|
+
* Phase 3: Generate informed, context-aware plan
|
|
50
|
+
*/
|
|
51
|
+
private generateInformedPlan;
|
|
52
|
+
private parseContextFromOutput;
|
|
53
|
+
private extractProjectTypeFromOutput;
|
|
54
|
+
private extractLanguagesFromOutput;
|
|
55
|
+
private extractFrameworksFromOutput;
|
|
56
|
+
private extractKeyFilesFromOutput;
|
|
57
|
+
private extractFeaturesFromOutput;
|
|
58
|
+
private extractDependenciesFromOutput;
|
|
59
|
+
private extractTestFrameworksFromOutput;
|
|
60
|
+
private extractBuildSystemFromOutput;
|
|
61
|
+
private exploreSubdirectories;
|
|
62
|
+
private searchForRelevantFiles;
|
|
63
|
+
private exploreDirectory;
|
|
64
|
+
private readFileViaAgent;
|
|
65
|
+
private detectProjectType;
|
|
66
|
+
private identifyKeyFiles;
|
|
67
|
+
private detectLanguages;
|
|
68
|
+
private detectFrameworks;
|
|
69
|
+
private extractExistingFeatures;
|
|
70
|
+
private detectTestFrameworks;
|
|
71
|
+
private detectBuildSystem;
|
|
72
|
+
private runAgentTool;
|
|
73
|
+
private runAgentAnalysis;
|
|
74
|
+
private log;
|
|
75
|
+
private getToolDisplayName;
|
|
76
|
+
private countSteps;
|
|
77
|
+
private parseDirectoryListing;
|
|
78
|
+
private fileExists;
|
|
79
|
+
private extractFileExtensions;
|
|
80
|
+
private analyzeDependencies;
|
|
81
|
+
private extractTaskType;
|
|
82
|
+
private extractComplexity;
|
|
83
|
+
private extractAffectedAreas;
|
|
84
|
+
private extractRequiredKnowledge;
|
|
85
|
+
private extractDependencies;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=contextAwarePlanning.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contextAwarePlanning.d.ts","sourceRoot":"","sources":["../../../../src/agents/codemie-code/modes/contextAwarePlanning.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,WAAW,sBAAsB;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,aAAa,CAAC,CAAgB;gBAE1B,KAAK,EAAE,YAAY,EAAE,MAAM,GAAE,sBAA2B;IAapE;;OAEG;IACG,sBAAsB,CAC1B,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,aAAa,GAC5B,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,cAAc,CAAA;KAAE,CAAC;IA4CrD;;OAEG;YACW,oBAAoB;IA0IlC;;OAEG;YACW,oBAAoB;IAgHlC;;OAEG;YACW,oBAAoB;YAgJpB,sBAAsB;IAqBpC,OAAO,CAAC,4BAA4B;IAQpC,OAAO,CAAC,0BAA0B;IAQlC,OAAO,CAAC,2BAA2B;IAWnC,OAAO,CAAC,yBAAyB;IAiBjC,OAAO,CAAC,yBAAyB;IAcjC,OAAO,CAAC,6BAA6B;IAQrC,OAAO,CAAC,+BAA+B;IAYvC,OAAO,CAAC,4BAA4B;YAYtB,qBAAqB;YAiCrB,sBAAsB;YA0CtB,gBAAgB;YAUhB,gBAAgB;IAY9B,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,gBAAgB;IAwBxB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,uBAAuB;IAkB/B,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,iBAAiB;YAYX,YAAY;YAkBZ,gBAAgB;IAkB9B,OAAO,CAAC,GAAG;IAMX,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,qBAAqB;IAoC7B,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,qBAAqB;YASf,mBAAmB;IAqBjC,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,oBAAoB;IAkC5B,OAAO,CAAC,wBAAwB;IAgChC,OAAO,CAAC,mBAAmB;CAoB5B"}
|