@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,224 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Planning Tools for CodeMie Agent
|
|
3
|
+
*
|
|
4
|
+
* Implementation of todo management tools with persistent file storage
|
|
5
|
+
*/
|
|
6
|
+
import { StructuredTool } from '@langchain/core/tools';
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
import { TodoFileStorage } from '../storage/todoStorage.js';
|
|
9
|
+
// Global todo state and storage for integration with plan mode
|
|
10
|
+
let globalTodos = [];
|
|
11
|
+
let eventCallbacks = [];
|
|
12
|
+
let todoStorage = null;
|
|
13
|
+
/**
|
|
14
|
+
* Initialize todo storage for the current working directory
|
|
15
|
+
*/
|
|
16
|
+
export function initializeTodoStorage(workingDirectory, debug = false) {
|
|
17
|
+
todoStorage = new TodoFileStorage({
|
|
18
|
+
workingDirectory,
|
|
19
|
+
enableGlobalBackup: true,
|
|
20
|
+
debug
|
|
21
|
+
});
|
|
22
|
+
// Load existing todos on initialization
|
|
23
|
+
todoStorage.loadTodos().then(todos => {
|
|
24
|
+
globalTodos = todos;
|
|
25
|
+
if (debug && todos.length > 0) {
|
|
26
|
+
console.log(`[TodoStorage] Loaded ${todos.length} existing todos`);
|
|
27
|
+
}
|
|
28
|
+
// Emit loaded todos event
|
|
29
|
+
if (todos.length > 0) {
|
|
30
|
+
const todoEvent = {
|
|
31
|
+
type: 'todo_update',
|
|
32
|
+
todos: todos,
|
|
33
|
+
changeType: 'update',
|
|
34
|
+
timestamp: new Date()
|
|
35
|
+
};
|
|
36
|
+
eventCallbacks.forEach(callback => {
|
|
37
|
+
try {
|
|
38
|
+
callback(todoEvent);
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
console.warn('[TodoStorage] Event callback error:', error);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}).catch(error => {
|
|
46
|
+
console.warn('[TodoStorage] Failed to load initial todos:', error);
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Simple Write Todos Tool
|
|
51
|
+
*/
|
|
52
|
+
class WriteSimpleTodosTool extends StructuredTool {
|
|
53
|
+
name = 'write_todos';
|
|
54
|
+
description = 'Create or update a structured todo list for planning and progress tracking';
|
|
55
|
+
schema = z.object({
|
|
56
|
+
todos: z.union([
|
|
57
|
+
z.string(),
|
|
58
|
+
z.array(z.string()),
|
|
59
|
+
z.array(z.object({
|
|
60
|
+
content: z.string(),
|
|
61
|
+
status: z.enum(['pending', 'in_progress', 'completed']).optional()
|
|
62
|
+
}))
|
|
63
|
+
]).describe('The todo list in various supported formats')
|
|
64
|
+
});
|
|
65
|
+
async _call(input) {
|
|
66
|
+
try {
|
|
67
|
+
// Simple parsing - convert any format to string array
|
|
68
|
+
let todoItems = [];
|
|
69
|
+
if (typeof input.todos === 'string') {
|
|
70
|
+
// Handle string format
|
|
71
|
+
todoItems = input.todos.split('\n')
|
|
72
|
+
.filter(line => line.trim())
|
|
73
|
+
.map(line => line.replace(/^[-*•]\s*/, '').trim())
|
|
74
|
+
.filter(item => item);
|
|
75
|
+
}
|
|
76
|
+
else if (Array.isArray(input.todos)) {
|
|
77
|
+
todoItems = input.todos.map(item => typeof item === 'string' ? item : item.content || String(item));
|
|
78
|
+
}
|
|
79
|
+
if (todoItems.length === 0) {
|
|
80
|
+
return '❌ No valid todos found in input';
|
|
81
|
+
}
|
|
82
|
+
// Create proper Todo objects
|
|
83
|
+
const todos = todoItems.map((content, index) => ({
|
|
84
|
+
content: content.trim(),
|
|
85
|
+
status: 'pending',
|
|
86
|
+
index,
|
|
87
|
+
timestamp: new Date()
|
|
88
|
+
}));
|
|
89
|
+
// Store in global state
|
|
90
|
+
globalTodos = todos;
|
|
91
|
+
// Save to file storage
|
|
92
|
+
if (todoStorage) {
|
|
93
|
+
try {
|
|
94
|
+
await todoStorage.saveTodos(todos);
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
console.warn('[write_todos] Failed to save to file:', error);
|
|
98
|
+
// Continue execution - file save failure shouldn't break todo creation
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
// Emit todo_update event for plan mode integration
|
|
102
|
+
const todoEvent = {
|
|
103
|
+
type: 'todo_update',
|
|
104
|
+
todos: todos,
|
|
105
|
+
changeType: 'create',
|
|
106
|
+
timestamp: new Date()
|
|
107
|
+
};
|
|
108
|
+
// Notify all callbacks (plan mode, UI, etc.)
|
|
109
|
+
eventCallbacks.forEach(callback => {
|
|
110
|
+
try {
|
|
111
|
+
callback(todoEvent);
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
console.warn('[write_todos] Event callback error:', error);
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
// Format response
|
|
118
|
+
const response = `✅ **Todo List Created** (${todoItems.length} items)\n\n` +
|
|
119
|
+
todoItems.map((item, i) => `${i + 1}. ${item}`).join('\n') +
|
|
120
|
+
'\n\n🎯 **Status**: Ready for execution\n' +
|
|
121
|
+
'💡 **Tip**: Use Ctrl+T to view todos during execution';
|
|
122
|
+
return response;
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
126
|
+
return `❌ Error creating todos: ${errorMessage}`;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Show Todos Tool with Storage Information
|
|
132
|
+
*/
|
|
133
|
+
class ShowSimpleTodosTool extends StructuredTool {
|
|
134
|
+
name = 'show_todos';
|
|
135
|
+
description = 'Display the current todo list with progress information and storage details';
|
|
136
|
+
schema = z.object({});
|
|
137
|
+
async _call() {
|
|
138
|
+
const todos = globalTodos;
|
|
139
|
+
if (todos.length === 0) {
|
|
140
|
+
return `📋 **Current Todo List**\n\n` +
|
|
141
|
+
`No todos currently active.\n` +
|
|
142
|
+
`Use the write_todos tool to create a structured plan.\n\n` +
|
|
143
|
+
`💡 **Tip**: Start with write_todos to create your task list`;
|
|
144
|
+
}
|
|
145
|
+
const completed = todos.filter(t => t.status === 'completed').length;
|
|
146
|
+
const inProgress = todos.filter(t => t.status === 'in_progress').length;
|
|
147
|
+
const pending = todos.filter(t => t.status === 'pending').length;
|
|
148
|
+
const statusIcon = (status) => {
|
|
149
|
+
switch (status) {
|
|
150
|
+
case 'completed': return '✅';
|
|
151
|
+
case 'in_progress': return '🔄';
|
|
152
|
+
case 'pending': return '⏳';
|
|
153
|
+
default: return '○';
|
|
154
|
+
}
|
|
155
|
+
};
|
|
156
|
+
let result = `📋 **Current Todo List** (${todos.length} items)\n\n`;
|
|
157
|
+
todos.forEach((todo, i) => {
|
|
158
|
+
result += `${statusIcon(todo.status)} ${i + 1}. ${todo.content}\n`;
|
|
159
|
+
});
|
|
160
|
+
result += `\n**Progress**: ${completed} completed, ${inProgress} in progress, ${pending} pending`;
|
|
161
|
+
// Add storage information
|
|
162
|
+
const storageInfo = TodoStateManager.getStorageInfo();
|
|
163
|
+
if (storageInfo) {
|
|
164
|
+
result += `\n\n📁 **Storage**: Project todos saved to .codemie/todos.json`;
|
|
165
|
+
result += `\n🔄 **Backup**: Global backup at ~/.codemie/todos/${storageInfo.projectHash}.json`;
|
|
166
|
+
}
|
|
167
|
+
result += `\n💡 **Tip**: Use Ctrl+T to view todos in interactive mode`;
|
|
168
|
+
return result;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
// Export the tools
|
|
172
|
+
export const planningTools = [
|
|
173
|
+
new WriteSimpleTodosTool(),
|
|
174
|
+
new ShowSimpleTodosTool()
|
|
175
|
+
];
|
|
176
|
+
// Also export individual tools for compatibility
|
|
177
|
+
export const writeTodos = new WriteSimpleTodosTool();
|
|
178
|
+
export const showTodos = new ShowSimpleTodosTool();
|
|
179
|
+
// Todo state manager for plan mode integration
|
|
180
|
+
export class TodoStateManager {
|
|
181
|
+
static addEventCallback(callback) {
|
|
182
|
+
eventCallbacks.push(callback);
|
|
183
|
+
}
|
|
184
|
+
static removeEventCallback(callback) {
|
|
185
|
+
const index = eventCallbacks.indexOf(callback);
|
|
186
|
+
if (index > -1) {
|
|
187
|
+
eventCallbacks.splice(index, 1);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
static getCurrentTodos() {
|
|
191
|
+
return [...globalTodos];
|
|
192
|
+
}
|
|
193
|
+
static async clearTodos() {
|
|
194
|
+
globalTodos = [];
|
|
195
|
+
// Clear file storage
|
|
196
|
+
if (todoStorage) {
|
|
197
|
+
try {
|
|
198
|
+
await todoStorage.clearTodos();
|
|
199
|
+
}
|
|
200
|
+
catch (error) {
|
|
201
|
+
console.warn('[TodoStateManager] Failed to clear file storage:', error);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
// Emit clear event
|
|
205
|
+
const todoEvent = {
|
|
206
|
+
type: 'todo_update',
|
|
207
|
+
todos: [],
|
|
208
|
+
changeType: 'delete',
|
|
209
|
+
timestamp: new Date()
|
|
210
|
+
};
|
|
211
|
+
eventCallbacks.forEach(callback => {
|
|
212
|
+
try {
|
|
213
|
+
callback(todoEvent);
|
|
214
|
+
}
|
|
215
|
+
catch (error) {
|
|
216
|
+
console.warn('[TodoStateManager] Event callback error:', error);
|
|
217
|
+
}
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
static getStorageInfo() {
|
|
221
|
+
return todoStorage?.getStorageInfo() || null;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
//# sourceMappingURL=planning.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planning.js","sourceRoot":"","sources":["../../../../src/agents/codemie-code/tools/planning.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,418 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CodeMie Agent Types
|
|
3
|
+
*
|
|
4
|
+
* Core TypeScript definitions for the CodeMie native coding agent
|
|
5
|
+
* using LangChain v1.0+ and LangGraph v1.0+
|
|
6
|
+
*/
|
|
7
|
+
import type { FilterConfig } from './filters.js';
|
|
8
|
+
/**
|
|
9
|
+
* Configuration interface for the CodeMie agent
|
|
10
|
+
*/
|
|
11
|
+
export interface CodeMieConfig {
|
|
12
|
+
/** Base URL for the LLM API endpoint */
|
|
13
|
+
baseUrl: string;
|
|
14
|
+
/** Authentication token/API key */
|
|
15
|
+
authToken: string;
|
|
16
|
+
/** Model name (e.g., 'gpt-4', 'claude-3-sonnet-20240229') */
|
|
17
|
+
model: string;
|
|
18
|
+
/** LLM provider type */
|
|
19
|
+
provider: 'openai' | 'azure' | 'bedrock' | 'litellm';
|
|
20
|
+
/** Original provider name for display (before normalization) */
|
|
21
|
+
displayProvider?: string;
|
|
22
|
+
/** Request timeout in seconds */
|
|
23
|
+
timeout: number;
|
|
24
|
+
/** Working directory for file operations */
|
|
25
|
+
workingDirectory: string;
|
|
26
|
+
/** Enable debug logging */
|
|
27
|
+
debug: boolean;
|
|
28
|
+
/** Directory filtering configuration */
|
|
29
|
+
directoryFilters?: FilterConfig;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Tool metadata extracted from tool results for enhanced UI display
|
|
33
|
+
*/
|
|
34
|
+
export interface ToolMetadata {
|
|
35
|
+
/** File path for file operations */
|
|
36
|
+
filePath?: string;
|
|
37
|
+
/** File size in bytes */
|
|
38
|
+
fileSize?: number;
|
|
39
|
+
/** Content preview (first few lines or characters) */
|
|
40
|
+
contentPreview?: string;
|
|
41
|
+
/** Number of bytes written */
|
|
42
|
+
bytesWritten?: number;
|
|
43
|
+
/** Directory path */
|
|
44
|
+
directoryPath?: string;
|
|
45
|
+
/** Number of files found */
|
|
46
|
+
fileCount?: number;
|
|
47
|
+
/** Number of directories found */
|
|
48
|
+
directoryCount?: number;
|
|
49
|
+
/** Command that was executed */
|
|
50
|
+
command?: string;
|
|
51
|
+
/** Execution time in milliseconds */
|
|
52
|
+
executionTime?: number;
|
|
53
|
+
/** Output preview */
|
|
54
|
+
outputPreview?: string;
|
|
55
|
+
/** Success status */
|
|
56
|
+
success?: boolean;
|
|
57
|
+
/** Error message if applicable */
|
|
58
|
+
errorMessage?: string;
|
|
59
|
+
/** Token usage for the LLM reasoning that led to this tool call */
|
|
60
|
+
tokenUsage?: TokenUsage;
|
|
61
|
+
/** Data processing metrics */
|
|
62
|
+
dataMetrics?: {
|
|
63
|
+
/** Amount of data read/processed (in bytes) */
|
|
64
|
+
bytesProcessed?: number;
|
|
65
|
+
/** Number of lines processed */
|
|
66
|
+
linesProcessed?: number;
|
|
67
|
+
/** Processing efficiency (bytes per token) */
|
|
68
|
+
bytesPerToken?: number;
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Agent event types for streaming responses
|
|
73
|
+
*/
|
|
74
|
+
export interface AgentEvent {
|
|
75
|
+
/** Event type */
|
|
76
|
+
type: 'thinking_start' | 'thinking_end' | 'content_chunk' | 'tool_call_start' | 'tool_call_progress' | 'tool_call_result' | 'complete' | 'error' | 'todo_update' | 'planning_start' | 'planning_complete' | 'planning_progress' | 'planning_tool_call' | 'planning_discovery' | 'planning_phase_change';
|
|
77
|
+
/** Content chunk for streaming text */
|
|
78
|
+
content?: string;
|
|
79
|
+
/** Tool name being called */
|
|
80
|
+
toolName?: string;
|
|
81
|
+
/** Tool arguments */
|
|
82
|
+
toolArgs?: Record<string, any>;
|
|
83
|
+
/** Tool execution result */
|
|
84
|
+
result?: string;
|
|
85
|
+
/** Enhanced tool metadata for better UI display */
|
|
86
|
+
toolMetadata?: ToolMetadata;
|
|
87
|
+
/** Tool progress information (when type is 'tool_call_progress') */
|
|
88
|
+
toolProgress?: {
|
|
89
|
+
/** Progress percentage (0-100) */
|
|
90
|
+
percentage: number;
|
|
91
|
+
/** Current operation description */
|
|
92
|
+
operation: string;
|
|
93
|
+
/** Additional details */
|
|
94
|
+
details?: string;
|
|
95
|
+
/** Estimated time remaining in ms */
|
|
96
|
+
estimatedTimeRemaining?: number;
|
|
97
|
+
};
|
|
98
|
+
/** Error message if event type is 'error' */
|
|
99
|
+
error?: string;
|
|
100
|
+
/** Todo update information (when type is 'todo_update') */
|
|
101
|
+
todoUpdate?: {
|
|
102
|
+
todos: Todo[];
|
|
103
|
+
changedIndex?: number;
|
|
104
|
+
previousState?: Todo[];
|
|
105
|
+
changeType?: 'create' | 'update' | 'delete' | 'reorder';
|
|
106
|
+
};
|
|
107
|
+
/** Planning phase information */
|
|
108
|
+
planningInfo?: {
|
|
109
|
+
phase: 'starting' | 'in_progress' | 'completed' | 'failed';
|
|
110
|
+
totalSteps?: number;
|
|
111
|
+
currentStep?: number;
|
|
112
|
+
message?: string;
|
|
113
|
+
};
|
|
114
|
+
/** Planning progress streaming (for planning_progress event) */
|
|
115
|
+
planningProgress?: {
|
|
116
|
+
/** Current planning phase */
|
|
117
|
+
phase: 'context_gathering' | 'task_analysis' | 'plan_generation' | 'plan_validation';
|
|
118
|
+
/** Descriptive message for current activity */
|
|
119
|
+
message: string;
|
|
120
|
+
/** Progress within current phase (0-100) */
|
|
121
|
+
phaseProgress?: number;
|
|
122
|
+
/** Overall planning progress (0-100) */
|
|
123
|
+
overallProgress?: number;
|
|
124
|
+
/** Additional details for UI display */
|
|
125
|
+
details?: string;
|
|
126
|
+
};
|
|
127
|
+
/** Planning tool call information (for planning_tool_call event) */
|
|
128
|
+
planningToolCall?: {
|
|
129
|
+
/** Tool being called during planning */
|
|
130
|
+
toolName: string;
|
|
131
|
+
/** Tool arguments */
|
|
132
|
+
args?: Record<string, any>;
|
|
133
|
+
/** Current step within planning phase */
|
|
134
|
+
step: number;
|
|
135
|
+
/** Total steps in current phase */
|
|
136
|
+
totalSteps: number;
|
|
137
|
+
/** Purpose of this tool call */
|
|
138
|
+
purpose: string;
|
|
139
|
+
};
|
|
140
|
+
/** Planning discovery information (for planning_discovery event) */
|
|
141
|
+
planningDiscovery?: {
|
|
142
|
+
/** Type of discovery */
|
|
143
|
+
type: 'project_structure' | 'file_analysis' | 'dependency_analysis' | 'feature_detection';
|
|
144
|
+
/** Discovery summary */
|
|
145
|
+
summary: string;
|
|
146
|
+
/** Discovered data */
|
|
147
|
+
data?: Record<string, any>;
|
|
148
|
+
/** Impact on planning */
|
|
149
|
+
impact?: string;
|
|
150
|
+
};
|
|
151
|
+
/** Planning phase change information (for planning_phase_change event) */
|
|
152
|
+
planningPhaseChange?: {
|
|
153
|
+
/** Previous phase */
|
|
154
|
+
fromPhase: string;
|
|
155
|
+
/** New phase */
|
|
156
|
+
toPhase: string;
|
|
157
|
+
/** Phase transition message */
|
|
158
|
+
message: string;
|
|
159
|
+
/** Summary of previous phase results */
|
|
160
|
+
previousPhaseResults?: Record<string, any>;
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Callback function for handling agent events
|
|
165
|
+
*/
|
|
166
|
+
export type EventCallback = (event: AgentEvent) => void;
|
|
167
|
+
/**
|
|
168
|
+
* Tool configuration interface
|
|
169
|
+
*/
|
|
170
|
+
export interface ToolConfig {
|
|
171
|
+
/** Allowed directories for filesystem operations */
|
|
172
|
+
allowedDirectories: string[];
|
|
173
|
+
/** Working directory for command execution */
|
|
174
|
+
workingDirectory: string;
|
|
175
|
+
/** Enable debug mode for tools */
|
|
176
|
+
debug: boolean;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Agent execution options
|
|
180
|
+
*/
|
|
181
|
+
export interface ExecutionOptions {
|
|
182
|
+
/** Maximum recursion limit for agent loops */
|
|
183
|
+
recursionLimit?: number;
|
|
184
|
+
/** Streaming mode configuration */
|
|
185
|
+
streamMode?: 'updates' | 'values' | 'debug';
|
|
186
|
+
/** Request timeout in milliseconds */
|
|
187
|
+
timeout?: number;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Agent initialization result
|
|
191
|
+
*/
|
|
192
|
+
export interface InitializationResult {
|
|
193
|
+
/** Whether initialization was successful */
|
|
194
|
+
success: boolean;
|
|
195
|
+
/** Number of tools loaded */
|
|
196
|
+
toolCount: number;
|
|
197
|
+
/** Initialization duration in milliseconds */
|
|
198
|
+
duration: number;
|
|
199
|
+
/** Error message if initialization failed */
|
|
200
|
+
error?: string;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Tool execution context
|
|
204
|
+
*/
|
|
205
|
+
export interface ToolContext {
|
|
206
|
+
/** Current working directory */
|
|
207
|
+
workingDirectory: string;
|
|
208
|
+
/** User ID or session identifier */
|
|
209
|
+
sessionId?: string;
|
|
210
|
+
/** Additional metadata */
|
|
211
|
+
metadata?: Record<string, any>;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Token usage details for a single LLM call
|
|
215
|
+
*/
|
|
216
|
+
export interface TokenUsage {
|
|
217
|
+
/** Input tokens (prompt) */
|
|
218
|
+
inputTokens: number;
|
|
219
|
+
/** Output tokens (completion) */
|
|
220
|
+
outputTokens: number;
|
|
221
|
+
/** Cached tokens (if supported by provider) */
|
|
222
|
+
cachedTokens?: number;
|
|
223
|
+
/** Total tokens (input + output) */
|
|
224
|
+
totalTokens: number;
|
|
225
|
+
/** Estimated cost in USD (if supported) */
|
|
226
|
+
estimatedCost?: number;
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Step execution details with token tracking
|
|
230
|
+
*/
|
|
231
|
+
export interface ExecutionStep {
|
|
232
|
+
/** Step number in the execution sequence */
|
|
233
|
+
stepNumber: number;
|
|
234
|
+
/** Type of step */
|
|
235
|
+
type: 'llm_call' | 'tool_execution';
|
|
236
|
+
/** Timestamp when step started */
|
|
237
|
+
startTime: number;
|
|
238
|
+
/** Timestamp when step completed */
|
|
239
|
+
endTime?: number;
|
|
240
|
+
/** Duration in milliseconds */
|
|
241
|
+
duration?: number;
|
|
242
|
+
/** Token usage for this step (only for llm_call type) */
|
|
243
|
+
tokenUsage?: TokenUsage;
|
|
244
|
+
/** Tool name (only for tool_execution type) */
|
|
245
|
+
toolName?: string;
|
|
246
|
+
/** Tool result success status (only for tool_execution type) */
|
|
247
|
+
toolSuccess?: boolean;
|
|
248
|
+
/** Error message if step failed */
|
|
249
|
+
error?: string;
|
|
250
|
+
/** Context for LLM calls to distinguish between different types of reasoning */
|
|
251
|
+
llmContext?: 'initial_input' | 'processing_tool_result' | 'final_response';
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Agent runtime statistics with detailed token tracking
|
|
255
|
+
*/
|
|
256
|
+
export interface AgentStats {
|
|
257
|
+
/** Total tokens used in input across all steps */
|
|
258
|
+
inputTokens: number;
|
|
259
|
+
/** Total tokens generated in output across all steps */
|
|
260
|
+
outputTokens: number;
|
|
261
|
+
/** Total cached tokens across all steps */
|
|
262
|
+
cachedTokens: number;
|
|
263
|
+
/** Total tokens (input + output) */
|
|
264
|
+
totalTokens: number;
|
|
265
|
+
/** Estimated total cost in USD */
|
|
266
|
+
estimatedTotalCost: number;
|
|
267
|
+
/** Total execution time in milliseconds */
|
|
268
|
+
executionTime: number;
|
|
269
|
+
/** Number of tool calls made */
|
|
270
|
+
toolCalls: number;
|
|
271
|
+
/** Number of successful tool executions */
|
|
272
|
+
successfulTools: number;
|
|
273
|
+
/** Number of failed tool executions */
|
|
274
|
+
failedTools: number;
|
|
275
|
+
/** Number of LLM calls made */
|
|
276
|
+
llmCalls: number;
|
|
277
|
+
/** Detailed execution steps */
|
|
278
|
+
executionSteps: ExecutionStep[];
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Provider-specific configuration
|
|
282
|
+
*/
|
|
283
|
+
export type ProviderConfig = {
|
|
284
|
+
openai: {
|
|
285
|
+
apiKey: string;
|
|
286
|
+
baseURL?: string;
|
|
287
|
+
organization?: string;
|
|
288
|
+
};
|
|
289
|
+
azure: {
|
|
290
|
+
apiKey: string;
|
|
291
|
+
endpoint: string;
|
|
292
|
+
deploymentName: string;
|
|
293
|
+
apiVersion?: string;
|
|
294
|
+
};
|
|
295
|
+
bedrock: {
|
|
296
|
+
region: string;
|
|
297
|
+
accessKeyId: string;
|
|
298
|
+
secretAccessKey: string;
|
|
299
|
+
};
|
|
300
|
+
litellm: {
|
|
301
|
+
apiKey: string;
|
|
302
|
+
baseURL: string;
|
|
303
|
+
model: string;
|
|
304
|
+
};
|
|
305
|
+
};
|
|
306
|
+
/**
|
|
307
|
+
* Error types for the agent
|
|
308
|
+
*/
|
|
309
|
+
export declare class CodeMieAgentError extends Error {
|
|
310
|
+
code: string;
|
|
311
|
+
details?: Record<string, any> | undefined;
|
|
312
|
+
constructor(message: string, code: string, details?: Record<string, any> | undefined);
|
|
313
|
+
}
|
|
314
|
+
export declare class ToolExecutionError extends CodeMieAgentError {
|
|
315
|
+
constructor(toolName: string, message: string, details?: Record<string, any>);
|
|
316
|
+
}
|
|
317
|
+
export declare class ConfigurationError extends CodeMieAgentError {
|
|
318
|
+
constructor(message: string, details?: Record<string, any>);
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Todo item for structured planning and progress tracking
|
|
322
|
+
*/
|
|
323
|
+
export interface Todo {
|
|
324
|
+
/** The content/description of the todo item */
|
|
325
|
+
content: string;
|
|
326
|
+
/** Current status of the todo */
|
|
327
|
+
status: 'pending' | 'in_progress' | 'completed';
|
|
328
|
+
/** Optional index for ordering and reference */
|
|
329
|
+
index?: number;
|
|
330
|
+
/** Timestamp when todo was created */
|
|
331
|
+
timestamp?: Date;
|
|
332
|
+
/** Timestamp when todo was last updated */
|
|
333
|
+
lastUpdated?: Date;
|
|
334
|
+
/** Optional additional metadata */
|
|
335
|
+
metadata?: Record<string, any>;
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Agent state for persistent storage across interactions
|
|
339
|
+
* Inspired by LangChain-Code's Deep Agent state management
|
|
340
|
+
*/
|
|
341
|
+
export interface CodeMieAgentState {
|
|
342
|
+
/** Structured todos for planning and progress tracking */
|
|
343
|
+
todos: Todo[];
|
|
344
|
+
/** Virtual files for staging edits before writing to disk */
|
|
345
|
+
files: Record<string, string>;
|
|
346
|
+
/** Current step being executed (0-based index) */
|
|
347
|
+
currentStep?: number;
|
|
348
|
+
/** Whether initial planning phase is complete */
|
|
349
|
+
planningComplete?: boolean;
|
|
350
|
+
/** Planning mode configuration */
|
|
351
|
+
planMode?: {
|
|
352
|
+
enabled: boolean;
|
|
353
|
+
requirePlanning: boolean;
|
|
354
|
+
maxTodos: number;
|
|
355
|
+
enforceSequential: boolean;
|
|
356
|
+
};
|
|
357
|
+
/** Session metadata */
|
|
358
|
+
sessionMetadata?: {
|
|
359
|
+
sessionId: string;
|
|
360
|
+
startTime: Date;
|
|
361
|
+
lastActivity: Date;
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* Todo update event for streaming interfaces
|
|
366
|
+
*/
|
|
367
|
+
export interface TodoUpdateEvent {
|
|
368
|
+
/** Event type */
|
|
369
|
+
type: 'todo_update';
|
|
370
|
+
/** Current todo list */
|
|
371
|
+
todos: Todo[];
|
|
372
|
+
/** Index of changed todo (if specific update) */
|
|
373
|
+
changedIndex?: number;
|
|
374
|
+
/** Previous state for diff calculations */
|
|
375
|
+
previousState?: Todo[];
|
|
376
|
+
/** Type of change that occurred */
|
|
377
|
+
changeType?: 'create' | 'update' | 'delete' | 'reorder';
|
|
378
|
+
/** Timestamp of the update */
|
|
379
|
+
timestamp: Date;
|
|
380
|
+
}
|
|
381
|
+
/**
|
|
382
|
+
* Todo parsing result with validation information
|
|
383
|
+
*/
|
|
384
|
+
export interface TodoParseResult {
|
|
385
|
+
/** Successfully parsed todos */
|
|
386
|
+
todos: Todo[];
|
|
387
|
+
/** Parse errors encountered */
|
|
388
|
+
errors: string[];
|
|
389
|
+
/** Warnings about format or content */
|
|
390
|
+
warnings: string[];
|
|
391
|
+
/** Input format detected */
|
|
392
|
+
detectedFormat: 'string_bullets' | 'github_checkboxes' | 'object_array' | 'string_array' | 'mixed';
|
|
393
|
+
}
|
|
394
|
+
/**
|
|
395
|
+
* Progress tracking information
|
|
396
|
+
*/
|
|
397
|
+
export interface ProgressInfo {
|
|
398
|
+
/** Total number of todos */
|
|
399
|
+
total: number;
|
|
400
|
+
/** Number of completed todos */
|
|
401
|
+
completed: number;
|
|
402
|
+
/** Number of pending todos */
|
|
403
|
+
pending: number;
|
|
404
|
+
/** Number of in-progress todos (should be 0 or 1) */
|
|
405
|
+
inProgress: number;
|
|
406
|
+
/** Progress percentage (0-100) */
|
|
407
|
+
percentage: number;
|
|
408
|
+
/** Current active todo (if any) */
|
|
409
|
+
currentTodo?: Todo;
|
|
410
|
+
/** Estimated completion based on current pace */
|
|
411
|
+
estimatedCompletion?: Date;
|
|
412
|
+
}
|
|
413
|
+
/**
|
|
414
|
+
* Re-export commonly used types from dependencies
|
|
415
|
+
*/
|
|
416
|
+
export type { StructuredTool } from '@langchain/core/tools';
|
|
417
|
+
export type { BaseMessage } from '@langchain/core/messages';
|
|
418
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/agents/codemie-code/types.ts"],"names":[],"mappings":"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"}
|