xibecode 1.0.3 → 1.0.6
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/dist/commands/chat.d.ts.map +1 -1
- package/dist/commands/chat.js +10 -7
- package/dist/commands/chat.js.map +1 -1
- package/dist/commands/diagnostics.js +1 -1
- package/dist/commands/diagnostics.js.map +1 -1
- package/dist/commands/mcp.js +1 -1
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/resume.js +1 -1
- package/dist/commands/resume.js.map +1 -1
- package/dist/commands/run-pr.d.ts.map +1 -1
- package/dist/commands/run-pr.js +10 -9
- package/dist/commands/run-pr.js.map +1 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +14 -13
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/skills.d.ts.map +1 -1
- package/dist/commands/skills.js +3 -2
- package/dist/commands/skills.js.map +1 -1
- package/dist/components/AssistantMarkdown.js +1 -1
- package/dist/components/AssistantMarkdown.js.map +1 -1
- package/dist/ui/claude-style-chat.d.ts.map +1 -1
- package/dist/ui/claude-style-chat.js +12 -10
- package/dist/ui/claude-style-chat.js.map +1 -1
- package/dist/utils/built-in-skills-dir.d.ts +7 -0
- package/dist/utils/built-in-skills-dir.d.ts.map +1 -0
- package/dist/utils/built-in-skills-dir.js +11 -0
- package/dist/utils/built-in-skills-dir.js.map +1 -0
- package/dist/utils/config.d.ts +2 -119
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +3 -88
- package/dist/utils/config.js.map +1 -1
- package/package.json +11 -17
- package/dist/commands/punycode.d.ts +0 -5
- package/dist/commands/punycode.d.ts.map +0 -1
- package/dist/commands/punycode.js +0 -48
- package/dist/commands/punycode.js.map +0 -1
- package/dist/commands/tui.d.ts +0 -9
- package/dist/commands/tui.d.ts.map +0 -1
- package/dist/commands/tui.js +0 -83
- package/dist/commands/tui.js.map +0 -1
- package/dist/core/agent-tool-policies.d.ts +0 -5
- package/dist/core/agent-tool-policies.d.ts.map +0 -1
- package/dist/core/agent-tool-policies.js +0 -18
- package/dist/core/agent-tool-policies.js.map +0 -1
- package/dist/core/agent.d.ts +0 -181
- package/dist/core/agent.d.ts.map +0 -1
- package/dist/core/agent.js +0 -1777
- package/dist/core/agent.js.map +0 -1
- package/dist/core/background-agent.d.ts +0 -23
- package/dist/core/background-agent.d.ts.map +0 -1
- package/dist/core/background-agent.js +0 -175
- package/dist/core/background-agent.js.map +0 -1
- package/dist/core/code-graph.d.ts +0 -18
- package/dist/core/code-graph.d.ts.map +0 -1
- package/dist/core/code-graph.js +0 -105
- package/dist/core/code-graph.js.map +0 -1
- package/dist/core/conflict-solver.d.ts +0 -26
- package/dist/core/conflict-solver.d.ts.map +0 -1
- package/dist/core/conflict-solver.js +0 -108
- package/dist/core/conflict-solver.js.map +0 -1
- package/dist/core/context-compactor.d.ts +0 -10
- package/dist/core/context-compactor.d.ts.map +0 -1
- package/dist/core/context-compactor.js +0 -158
- package/dist/core/context-compactor.js.map +0 -1
- package/dist/core/context-pruner.d.ts +0 -19
- package/dist/core/context-pruner.d.ts.map +0 -1
- package/dist/core/context-pruner.js +0 -103
- package/dist/core/context-pruner.js.map +0 -1
- package/dist/core/context.d.ts +0 -82
- package/dist/core/context.d.ts.map +0 -1
- package/dist/core/context.js +0 -273
- package/dist/core/context.js.map +0 -1
- package/dist/core/conversation-recovery.d.ts +0 -9
- package/dist/core/conversation-recovery.d.ts.map +0 -1
- package/dist/core/conversation-recovery.js +0 -15
- package/dist/core/conversation-recovery.js.map +0 -1
- package/dist/core/debug-workflow.d.ts +0 -9
- package/dist/core/debug-workflow.d.ts.map +0 -1
- package/dist/core/debug-workflow.js +0 -19
- package/dist/core/debug-workflow.js.map +0 -1
- package/dist/core/docs-scraper.d.ts +0 -40
- package/dist/core/docs-scraper.d.ts.map +0 -1
- package/dist/core/docs-scraper.js +0 -386
- package/dist/core/docs-scraper.js.map +0 -1
- package/dist/core/editor.d.ts +0 -87
- package/dist/core/editor.d.ts.map +0 -1
- package/dist/core/editor.js +0 -377
- package/dist/core/editor.js.map +0 -1
- package/dist/core/export.d.ts +0 -11
- package/dist/core/export.d.ts.map +0 -1
- package/dist/core/export.js +0 -54
- package/dist/core/export.js.map +0 -1
- package/dist/core/history-manager.d.ts +0 -75
- package/dist/core/history-manager.d.ts.map +0 -1
- package/dist/core/history-manager.js +0 -146
- package/dist/core/history-manager.js.map +0 -1
- package/dist/core/marketplace-client.d.ts +0 -52
- package/dist/core/marketplace-client.d.ts.map +0 -1
- package/dist/core/marketplace-client.js +0 -71
- package/dist/core/marketplace-client.js.map +0 -1
- package/dist/core/mcp/mcp-config.d.ts +0 -10
- package/dist/core/mcp/mcp-config.d.ts.map +0 -1
- package/dist/core/mcp/mcp-config.js +0 -70
- package/dist/core/mcp/mcp-config.js.map +0 -1
- package/dist/core/mcp/mcp-policy.d.ts +0 -17
- package/dist/core/mcp/mcp-policy.d.ts.map +0 -1
- package/dist/core/mcp/mcp-policy.js +0 -56
- package/dist/core/mcp/mcp-policy.js.map +0 -1
- package/dist/core/mcp/oauth-flow.d.ts +0 -30
- package/dist/core/mcp/oauth-flow.d.ts.map +0 -1
- package/dist/core/mcp/oauth-flow.js +0 -230
- package/dist/core/mcp/oauth-flow.js.map +0 -1
- package/dist/core/mcp/oauth-store.d.ts +0 -13
- package/dist/core/mcp/oauth-store.d.ts.map +0 -1
- package/dist/core/mcp/oauth-store.js +0 -68
- package/dist/core/mcp/oauth-store.js.map +0 -1
- package/dist/core/mcp/resolve-mcp-servers.d.ts +0 -16
- package/dist/core/mcp/resolve-mcp-servers.d.ts.map +0 -1
- package/dist/core/mcp/resolve-mcp-servers.js +0 -83
- package/dist/core/mcp/resolve-mcp-servers.js.map +0 -1
- package/dist/core/mcp-client.d.ts +0 -99
- package/dist/core/mcp-client.d.ts.map +0 -1
- package/dist/core/mcp-client.js +0 -317
- package/dist/core/mcp-client.js.map +0 -1
- package/dist/core/memory-promotions.d.ts +0 -15
- package/dist/core/memory-promotions.d.ts.map +0 -1
- package/dist/core/memory-promotions.js +0 -38
- package/dist/core/memory-promotions.js.map +0 -1
- package/dist/core/memory.d.ts +0 -32
- package/dist/core/memory.d.ts.map +0 -1
- package/dist/core/memory.js +0 -121
- package/dist/core/memory.js.map +0 -1
- package/dist/core/modes.d.ts +0 -432
- package/dist/core/modes.d.ts.map +0 -1
- package/dist/core/modes.js +0 -1094
- package/dist/core/modes.js.map +0 -1
- package/dist/core/pattern-miner.d.ts +0 -43
- package/dist/core/pattern-miner.d.ts.map +0 -1
- package/dist/core/pattern-miner.js +0 -123
- package/dist/core/pattern-miner.js.map +0 -1
- package/dist/core/permission-store.d.ts +0 -15
- package/dist/core/permission-store.d.ts.map +0 -1
- package/dist/core/permission-store.js +0 -30
- package/dist/core/permission-store.js.map +0 -1
- package/dist/core/permissions.d.ts +0 -33
- package/dist/core/permissions.d.ts.map +0 -1
- package/dist/core/permissions.js +0 -141
- package/dist/core/permissions.js.map +0 -1
- package/dist/core/plan-artifacts.d.ts +0 -10
- package/dist/core/plan-artifacts.d.ts.map +0 -1
- package/dist/core/plan-artifacts.js +0 -60
- package/dist/core/plan-artifacts.js.map +0 -1
- package/dist/core/plan-session.d.ts +0 -25
- package/dist/core/plan-session.d.ts.map +0 -1
- package/dist/core/plan-session.js +0 -99
- package/dist/core/plan-session.js.map +0 -1
- package/dist/core/planMode.d.ts +0 -51
- package/dist/core/planMode.d.ts.map +0 -1
- package/dist/core/planMode.js +0 -245
- package/dist/core/planMode.js.map +0 -1
- package/dist/core/plugins.d.ts +0 -96
- package/dist/core/plugins.d.ts.map +0 -1
- package/dist/core/plugins.js +0 -204
- package/dist/core/plugins.js.map +0 -1
- package/dist/core/session-bridge.d.ts +0 -128
- package/dist/core/session-bridge.d.ts.map +0 -1
- package/dist/core/session-bridge.js +0 -328
- package/dist/core/session-bridge.js.map +0 -1
- package/dist/core/session-manager.d.ts +0 -80
- package/dist/core/session-manager.d.ts.map +0 -1
- package/dist/core/session-manager.js +0 -166
- package/dist/core/session-manager.js.map +0 -1
- package/dist/core/session-memory.d.ts +0 -45
- package/dist/core/session-memory.d.ts.map +0 -1
- package/dist/core/session-memory.js +0 -103
- package/dist/core/session-memory.js.map +0 -1
- package/dist/core/skill-selection.d.ts +0 -36
- package/dist/core/skill-selection.d.ts.map +0 -1
- package/dist/core/skill-selection.js +0 -172
- package/dist/core/skill-selection.js.map +0 -1
- package/dist/core/skills-sh-client.d.ts +0 -19
- package/dist/core/skills-sh-client.d.ts.map +0 -1
- package/dist/core/skills-sh-client.js +0 -75
- package/dist/core/skills-sh-client.js.map +0 -1
- package/dist/core/skills.d.ts +0 -97
- package/dist/core/skills.d.ts.map +0 -1
- package/dist/core/skills.js +0 -339
- package/dist/core/skills.js.map +0 -1
- package/dist/core/swarm.d.ts +0 -34
- package/dist/core/swarm.d.ts.map +0 -1
- package/dist/core/swarm.js +0 -111
- package/dist/core/swarm.js.map +0 -1
- package/dist/core/task-status.d.ts +0 -13
- package/dist/core/task-status.d.ts.map +0 -1
- package/dist/core/task-status.js +0 -17
- package/dist/core/task-status.js.map +0 -1
- package/dist/core/tool-orchestrator.d.ts +0 -30
- package/dist/core/tool-orchestrator.d.ts.map +0 -1
- package/dist/core/tool-orchestrator.js +0 -89
- package/dist/core/tool-orchestrator.js.map +0 -1
- package/dist/core/tools.d.ts +0 -462
- package/dist/core/tools.d.ts.map +0 -1
- package/dist/core/tools.js +0 -2916
- package/dist/core/tools.js.map +0 -1
- package/dist/core/transcript-cleanup.d.ts +0 -8
- package/dist/core/transcript-cleanup.d.ts.map +0 -1
- package/dist/core/transcript-cleanup.js +0 -52
- package/dist/core/transcript-cleanup.js.map +0 -1
- package/dist/core/visual-feedback.d.ts +0 -20
- package/dist/core/visual-feedback.d.ts.map +0 -1
- package/dist/core/visual-feedback.js +0 -117
- package/dist/core/visual-feedback.js.map +0 -1
- package/dist/tools/browser.d.ts +0 -120
- package/dist/tools/browser.d.ts.map +0 -1
- package/dist/tools/browser.js +0 -439
- package/dist/tools/browser.js.map +0 -1
- package/dist/tools/test-generator.d.ts +0 -157
- package/dist/tools/test-generator.d.ts.map +0 -1
- package/dist/tools/test-generator.js +0 -893
- package/dist/tools/test-generator.js.map +0 -1
- package/dist/tui/InkApp.d.ts +0 -21
- package/dist/tui/InkApp.d.ts.map +0 -1
- package/dist/tui/InkApp.js +0 -146
- package/dist/tui/InkApp.js.map +0 -1
- package/dist/tui/MarkdownMessage.d.ts +0 -16
- package/dist/tui/MarkdownMessage.d.ts.map +0 -1
- package/dist/tui/MarkdownMessage.js +0 -63
- package/dist/tui/MarkdownMessage.js.map +0 -1
- package/dist/tui/blessed-chat.d.ts +0 -9
- package/dist/tui/blessed-chat.d.ts.map +0 -1
- package/dist/tui/blessed-chat.js +0 -887
- package/dist/tui/blessed-chat.js.map +0 -1
- package/dist/tui/markdown-to-blessed.d.ts +0 -6
- package/dist/tui/markdown-to-blessed.d.ts.map +0 -1
- package/dist/tui/markdown-to-blessed.js +0 -26
- package/dist/tui/markdown-to-blessed.js.map +0 -1
- package/dist/ui/ink/App.d.ts +0 -25
- package/dist/ui/ink/App.d.ts.map +0 -1
- package/dist/ui/ink/App.js +0 -372
- package/dist/ui/ink/App.js.map +0 -1
- package/dist/utils/at-references.d.ts +0 -14
- package/dist/utils/at-references.d.ts.map +0 -1
- package/dist/utils/at-references.js +0 -47
- package/dist/utils/at-references.js.map +0 -1
- package/dist/utils/auto-memory.d.ts +0 -24
- package/dist/utils/auto-memory.d.ts.map +0 -1
- package/dist/utils/auto-memory.js +0 -153
- package/dist/utils/auto-memory.js.map +0 -1
- package/dist/utils/git.d.ts +0 -89
- package/dist/utils/git.d.ts.map +0 -1
- package/dist/utils/git.js +0 -444
- package/dist/utils/git.js.map +0 -1
- package/dist/utils/mcp-servers-file.d.ts +0 -46
- package/dist/utils/mcp-servers-file.d.ts.map +0 -1
- package/dist/utils/mcp-servers-file.js +0 -212
- package/dist/utils/mcp-servers-file.js.map +0 -1
- package/dist/utils/safety.d.ts +0 -60
- package/dist/utils/safety.d.ts.map +0 -1
- package/dist/utils/safety.js +0 -254
- package/dist/utils/safety.js.map +0 -1
- package/dist/utils/smithery.d.ts +0 -25
- package/dist/utils/smithery.d.ts.map +0 -1
- package/dist/utils/smithery.js +0 -50
- package/dist/utils/smithery.js.map +0 -1
- package/dist/utils/testRunner.d.ts +0 -44
- package/dist/utils/testRunner.d.ts.map +0 -1
- package/dist/utils/testRunner.js +0 -270
- package/dist/utils/testRunner.js.map +0 -1
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import * as fs from 'fs/promises';
|
|
2
|
-
import * as path from 'path';
|
|
3
|
-
import { randomUUID } from 'crypto';
|
|
4
|
-
export class PlanSessionManager {
|
|
5
|
-
workingDir;
|
|
6
|
-
sessionDir;
|
|
7
|
-
constructor(workingDir = process.cwd()) {
|
|
8
|
-
this.workingDir = workingDir;
|
|
9
|
-
this.sessionDir = path.join(workingDir, '.xibecode', 'plan-sessions');
|
|
10
|
-
}
|
|
11
|
-
async create(request, metadata) {
|
|
12
|
-
const now = new Date().toISOString();
|
|
13
|
-
const session = {
|
|
14
|
-
id: `plan-${randomUUID()}`,
|
|
15
|
-
request,
|
|
16
|
-
status: 'drafting',
|
|
17
|
-
createdAt: now,
|
|
18
|
-
updatedAt: now,
|
|
19
|
-
answers: {},
|
|
20
|
-
metadata,
|
|
21
|
-
};
|
|
22
|
-
await this.save(session);
|
|
23
|
-
return session;
|
|
24
|
-
}
|
|
25
|
-
async load(sessionId) {
|
|
26
|
-
const filePath = this.getSessionPath(sessionId);
|
|
27
|
-
try {
|
|
28
|
-
const raw = await fs.readFile(filePath, 'utf8');
|
|
29
|
-
return JSON.parse(raw);
|
|
30
|
-
}
|
|
31
|
-
catch {
|
|
32
|
-
return null;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
async updateStatus(sessionId, status) {
|
|
36
|
-
const session = await this.load(sessionId);
|
|
37
|
-
if (!session)
|
|
38
|
-
return null;
|
|
39
|
-
session.status = status;
|
|
40
|
-
session.updatedAt = new Date().toISOString();
|
|
41
|
-
await this.save(session);
|
|
42
|
-
return session;
|
|
43
|
-
}
|
|
44
|
-
async attachArtifact(sessionId, artifactPath) {
|
|
45
|
-
const session = await this.load(sessionId);
|
|
46
|
-
if (!session)
|
|
47
|
-
return null;
|
|
48
|
-
session.artifactPath = artifactPath;
|
|
49
|
-
session.updatedAt = new Date().toISOString();
|
|
50
|
-
await this.save(session);
|
|
51
|
-
return session;
|
|
52
|
-
}
|
|
53
|
-
async addAnswers(sessionId, answers) {
|
|
54
|
-
const session = await this.load(sessionId);
|
|
55
|
-
if (!session)
|
|
56
|
-
return null;
|
|
57
|
-
session.answers = { ...session.answers, ...answers };
|
|
58
|
-
session.updatedAt = new Date().toISOString();
|
|
59
|
-
await this.save(session);
|
|
60
|
-
return session;
|
|
61
|
-
}
|
|
62
|
-
async listRecent(limit = 20) {
|
|
63
|
-
let files;
|
|
64
|
-
try {
|
|
65
|
-
files = await fs.readdir(this.sessionDir);
|
|
66
|
-
}
|
|
67
|
-
catch {
|
|
68
|
-
return [];
|
|
69
|
-
}
|
|
70
|
-
const sessions = [];
|
|
71
|
-
const jsonFiles = files.filter(f => f.endsWith('.json'));
|
|
72
|
-
// Bounded concurrency
|
|
73
|
-
const CONCURRENCY_LIMIT = 20;
|
|
74
|
-
for (let i = 0; i < jsonFiles.length; i += CONCURRENCY_LIMIT) {
|
|
75
|
-
const chunk = jsonFiles.slice(i, i + CONCURRENCY_LIMIT);
|
|
76
|
-
await Promise.all(chunk.map(async (file) => {
|
|
77
|
-
try {
|
|
78
|
-
const raw = await fs.readFile(path.join(this.sessionDir, file), 'utf8');
|
|
79
|
-
sessions.push(JSON.parse(raw));
|
|
80
|
-
}
|
|
81
|
-
catch {
|
|
82
|
-
// Ignore malformed session files to avoid breaking the list.
|
|
83
|
-
}
|
|
84
|
-
}));
|
|
85
|
-
}
|
|
86
|
-
return sessions
|
|
87
|
-
.sort((a, b) => Date.parse(b.updatedAt) - Date.parse(a.updatedAt))
|
|
88
|
-
.slice(0, limit);
|
|
89
|
-
}
|
|
90
|
-
async save(session) {
|
|
91
|
-
await fs.mkdir(this.sessionDir, { recursive: true });
|
|
92
|
-
const filePath = this.getSessionPath(session.id);
|
|
93
|
-
await fs.writeFile(filePath, JSON.stringify(session, null, 2), 'utf8');
|
|
94
|
-
}
|
|
95
|
-
getSessionPath(sessionId) {
|
|
96
|
-
return path.join(this.sessionDir, `${sessionId}.json`);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
//# sourceMappingURL=plan-session.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plan-session.js","sourceRoot":"","sources":["../../src/core/plan-session.ts"],"names":[],"mappings":"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"}
|
package/dist/core/planMode.d.ts
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { TodoItem, TodoDocument } from '../utils/todoManager.js';
|
|
2
|
-
import { AgentConfig } from './agent.js';
|
|
3
|
-
import { ProviderType } from '../utils/config.js';
|
|
4
|
-
export interface PlanResult {
|
|
5
|
-
doc: TodoDocument;
|
|
6
|
-
tasks: TodoItem[];
|
|
7
|
-
isLarge: boolean;
|
|
8
|
-
planSessionId?: string;
|
|
9
|
-
artifactPath?: string;
|
|
10
|
-
requiresApproval?: boolean;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Lightweight \"plan mode\" that decides whether a task is large/complex
|
|
14
|
-
* and, if so, creates/updates todo.md with a structured list of tasks.
|
|
15
|
-
*
|
|
16
|
-
* This first implementation is intentionally heuristic and deterministic:
|
|
17
|
-
* it does not call the LLM yet, but prepares a solid path for that later.
|
|
18
|
-
*/
|
|
19
|
-
export declare class PlanMode {
|
|
20
|
-
private readonly rootDir;
|
|
21
|
-
private readonly config;
|
|
22
|
-
private readonly provider;
|
|
23
|
-
constructor(rootDir: string, config: AgentConfig, provider: ProviderType);
|
|
24
|
-
/**
|
|
25
|
-
* Decide whether a task should go through plan mode.
|
|
26
|
-
* Very simple heuristic based on length and obvious multi-step language.
|
|
27
|
-
*/
|
|
28
|
-
isLargeTask(description: string): boolean;
|
|
29
|
-
/**
|
|
30
|
-
* Build or extend a TODO plan for the given description.
|
|
31
|
-
* Returns the updated document plus the tasks it just added/updated.
|
|
32
|
-
*/
|
|
33
|
-
/**
|
|
34
|
-
* Build or extend a TODO plan using the AI Architect.
|
|
35
|
-
*/
|
|
36
|
-
buildPlan(description: string): Promise<PlanResult>;
|
|
37
|
-
/**
|
|
38
|
-
* Fallback to the old heuristic method if AI fails
|
|
39
|
-
*/
|
|
40
|
-
fallbackBuildPlan(description: string): Promise<PlanResult>;
|
|
41
|
-
private loadGeneratedPlanText;
|
|
42
|
-
private buildFallbackPlanContent;
|
|
43
|
-
private extractCandidateTasks;
|
|
44
|
-
/**
|
|
45
|
-
* Generate a deterministic id for a title within this plan.
|
|
46
|
-
* We deliberately *do not* include timestamps here so the same
|
|
47
|
-
* title maps to the same id when re-planning.
|
|
48
|
-
*/
|
|
49
|
-
private generateDeterministicId;
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=planMode.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"planMode.d.ts","sourceRoot":"","sources":["../../src/core/planMode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,QAAQ,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAiB,WAAW,EAAc,MAAM,YAAY,CAAC;AAGpE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAOlD,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,YAAY,CAAC;IAClB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,qBAAa,QAAQ;IAEjB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAFR,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,YAAY;IAGzC;;;OAGG;IACH,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAwBzC;;;OAGG;IACH;;OAEG;IACG,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA0GzD;;OAEG;IACG,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;YAyBnD,qBAAqB;IAcnC,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,qBAAqB;IAkC7B;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;CAQhC"}
|
package/dist/core/planMode.js
DELETED
|
@@ -1,245 +0,0 @@
|
|
|
1
|
-
import { TodoManager } from '../utils/todoManager.js';
|
|
2
|
-
import { EnhancedAgent } from './agent.js';
|
|
3
|
-
import { CodingToolExecutor } from './tools.js';
|
|
4
|
-
import { SkillManager } from './skills.js';
|
|
5
|
-
import * as fs from 'fs/promises';
|
|
6
|
-
import * as path from 'path';
|
|
7
|
-
import chalk from 'chalk';
|
|
8
|
-
import { PlanSessionManager } from './plan-session.js';
|
|
9
|
-
import { persistPlanArtifact } from './plan-artifacts.js';
|
|
10
|
-
/**
|
|
11
|
-
* Lightweight \"plan mode\" that decides whether a task is large/complex
|
|
12
|
-
* and, if so, creates/updates todo.md with a structured list of tasks.
|
|
13
|
-
*
|
|
14
|
-
* This first implementation is intentionally heuristic and deterministic:
|
|
15
|
-
* it does not call the LLM yet, but prepares a solid path for that later.
|
|
16
|
-
*/
|
|
17
|
-
export class PlanMode {
|
|
18
|
-
rootDir;
|
|
19
|
-
config;
|
|
20
|
-
provider;
|
|
21
|
-
constructor(rootDir, config, provider) {
|
|
22
|
-
this.rootDir = rootDir;
|
|
23
|
-
this.config = config;
|
|
24
|
-
this.provider = provider;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Decide whether a task should go through plan mode.
|
|
28
|
-
* Very simple heuristic based on length and obvious multi-step language.
|
|
29
|
-
*/
|
|
30
|
-
isLargeTask(description) {
|
|
31
|
-
const text = description.trim();
|
|
32
|
-
if (text.length > 400)
|
|
33
|
-
return true;
|
|
34
|
-
const lower = text.toLowerCase();
|
|
35
|
-
const multiStepHints = [' and ', ' then ', ' followed by ', ' as well as ', 'step 1', 'step 2', 'first,', 'second,'];
|
|
36
|
-
let hits = 0;
|
|
37
|
-
for (const hint of multiStepHints) {
|
|
38
|
-
if (lower.includes(hint)) {
|
|
39
|
-
hits++;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
if (hits >= 2 || (hits >= 1 && text.length > 60)) {
|
|
43
|
-
return true;
|
|
44
|
-
}
|
|
45
|
-
// Multiple bullet-like lines also indicate a larger request
|
|
46
|
-
const lines = text.split('\n').map(l => l.trim());
|
|
47
|
-
const bulletLines = lines.filter(l => /^[-*]\s+/.test(l)).length;
|
|
48
|
-
if (bulletLines >= 2)
|
|
49
|
-
return true;
|
|
50
|
-
return false;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Build or extend a TODO plan for the given description.
|
|
54
|
-
* Returns the updated document plus the tasks it just added/updated.
|
|
55
|
-
*/
|
|
56
|
-
/**
|
|
57
|
-
* Build or extend a TODO plan using the AI Architect.
|
|
58
|
-
*/
|
|
59
|
-
async buildPlan(description) {
|
|
60
|
-
console.log(chalk.cyan('\n🧠 AI Architect is analyzing the request...'));
|
|
61
|
-
const planSessionManager = new PlanSessionManager(this.rootDir);
|
|
62
|
-
const planSession = await planSessionManager.create(description, {
|
|
63
|
-
source: 'PlanMode.buildPlan',
|
|
64
|
-
});
|
|
65
|
-
// Initialize the Architect Agent
|
|
66
|
-
// We give it a restricted set of tools: Read access + Write access ONLY to plan/todo files
|
|
67
|
-
// For now, we'll give it the standard executor but instruct it carefully.
|
|
68
|
-
const skillManager = new SkillManager(this.rootDir, this.config.apiKey, this.config.baseUrl, this.config.model, this.provider);
|
|
69
|
-
await skillManager.loadSkills();
|
|
70
|
-
const defaultSkillsPrompt = await skillManager.buildDefaultSkillsPromptForTask(description, this.rootDir);
|
|
71
|
-
const toolExecutor = new CodingToolExecutor(this.rootDir, {
|
|
72
|
-
dryRun: false, // We want it to actually write the plan files
|
|
73
|
-
skillManager,
|
|
74
|
-
});
|
|
75
|
-
// Filter tools to ensure safety during planning (read-only + specific writes)
|
|
76
|
-
// Actually, giving full read access is good. We just want to encourage it to write plans.
|
|
77
|
-
const tools = toolExecutor.getTools();
|
|
78
|
-
const architect = new EnhancedAgent({
|
|
79
|
-
...this.config,
|
|
80
|
-
maxIterations: 10,
|
|
81
|
-
provider: this.provider,
|
|
82
|
-
customProviderFormat: this.config.customProviderFormat,
|
|
83
|
-
defaultSkillsPrompt,
|
|
84
|
-
}, this.provider);
|
|
85
|
-
// Forward events for visibility
|
|
86
|
-
architect.on('event', (event) => {
|
|
87
|
-
if (event.type === 'thinking')
|
|
88
|
-
console.log(chalk.gray(` ${event.data.message}`));
|
|
89
|
-
});
|
|
90
|
-
const prompt = `
|
|
91
|
-
You are the AI Architect. Your goal is to analyze the user's request and create a concrete execution plan.
|
|
92
|
-
|
|
93
|
-
USER REQUEST: "${description}"
|
|
94
|
-
|
|
95
|
-
1. **Explore**: Read files to understand the current state of the project.
|
|
96
|
-
2. **Plan**: Create a detailed \`implementation_plan.md\` file.
|
|
97
|
-
- Describe the architectural changes.
|
|
98
|
-
- List files to create/modify.
|
|
99
|
-
- Identify potential risks.
|
|
100
|
-
3. **Tasking**: Create or Update the \`todo.md\` file.
|
|
101
|
-
- Break the plan into small, testable tasks.
|
|
102
|
-
- Use a markdown list format with IDs if possible, or just a standard task list.
|
|
103
|
-
- The \`todo.md\` MUST be actionable.
|
|
104
|
-
|
|
105
|
-
Perform these steps now.
|
|
106
|
-
`.trim();
|
|
107
|
-
try {
|
|
108
|
-
await architect.run(prompt, tools, toolExecutor);
|
|
109
|
-
}
|
|
110
|
-
catch (error) {
|
|
111
|
-
console.error(chalk.red('Architect failed to generate plan:'), error);
|
|
112
|
-
}
|
|
113
|
-
// Now read the generated todo.md to return the result
|
|
114
|
-
const todoManager = new TodoManager(this.rootDir);
|
|
115
|
-
let doc;
|
|
116
|
-
try {
|
|
117
|
-
// Force reload from disk in case Agent wrote it
|
|
118
|
-
doc = await todoManager.load();
|
|
119
|
-
}
|
|
120
|
-
catch (e) {
|
|
121
|
-
// Fallback if no todo.md was created
|
|
122
|
-
doc = { pending: [], inProgress: [], done: [] };
|
|
123
|
-
}
|
|
124
|
-
// If doc is empty, fallback to heuristic (means Agent failed to write todo.md)
|
|
125
|
-
if (doc.pending.length === 0 && doc.inProgress.length === 0 && doc.done.length === 0) {
|
|
126
|
-
console.log(chalk.yellow(' (Architect did not create tasks, falling back to heuristic)'));
|
|
127
|
-
const fallback = await this.fallbackBuildPlan(description);
|
|
128
|
-
const fallbackPlanContent = this.buildFallbackPlanContent(fallback.tasks);
|
|
129
|
-
const persisted = await persistPlanArtifact(this.rootDir, planSession.id, description, fallbackPlanContent);
|
|
130
|
-
await planSessionManager.attachArtifact(planSession.id, persisted.artifactPath);
|
|
131
|
-
await planSessionManager.updateStatus(planSession.id, 'awaiting_approval');
|
|
132
|
-
return {
|
|
133
|
-
...fallback,
|
|
134
|
-
planSessionId: planSession.id,
|
|
135
|
-
artifactPath: persisted.artifactPath,
|
|
136
|
-
requiresApproval: true,
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
const generatedPlanText = await this.loadGeneratedPlanText();
|
|
140
|
-
const persisted = await persistPlanArtifact(this.rootDir, planSession.id, description, generatedPlanText);
|
|
141
|
-
await planSessionManager.attachArtifact(planSession.id, persisted.artifactPath);
|
|
142
|
-
await planSessionManager.updateStatus(planSession.id, 'awaiting_approval');
|
|
143
|
-
return {
|
|
144
|
-
doc,
|
|
145
|
-
tasks: doc.pending, // This might not be exactly "new" tasks, but "pending" ones
|
|
146
|
-
isLarge: true,
|
|
147
|
-
planSessionId: planSession.id,
|
|
148
|
-
artifactPath: persisted.artifactPath,
|
|
149
|
-
requiresApproval: true,
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Fallback to the old heuristic method if AI fails
|
|
154
|
-
*/
|
|
155
|
-
async fallbackBuildPlan(description) {
|
|
156
|
-
const todoManager = new TodoManager(this.rootDir);
|
|
157
|
-
const candidates = this.extractCandidateTasks(description);
|
|
158
|
-
if (candidates.length === 0)
|
|
159
|
-
candidates.push(description.trim());
|
|
160
|
-
const newItems = candidates.map((title) => ({
|
|
161
|
-
id: this.generateDeterministicId(title),
|
|
162
|
-
title: title.trim(),
|
|
163
|
-
}));
|
|
164
|
-
const doc = await todoManager.mergeNewTasks(newItems);
|
|
165
|
-
// Re-map to find added tasks
|
|
166
|
-
const byId = new Map();
|
|
167
|
-
[...doc.pending, ...doc.inProgress, ...doc.done].forEach(i => byId.set(i.id, i));
|
|
168
|
-
const tasks = newItems.map((t) => byId.get(t.id)).filter(Boolean);
|
|
169
|
-
return {
|
|
170
|
-
doc,
|
|
171
|
-
tasks,
|
|
172
|
-
isLarge: this.isLargeTask(description),
|
|
173
|
-
};
|
|
174
|
-
}
|
|
175
|
-
async loadGeneratedPlanText() {
|
|
176
|
-
const candidates = ['implementation_plan.md', 'implementations.md'];
|
|
177
|
-
for (const candidate of candidates) {
|
|
178
|
-
const candidatePath = path.join(this.rootDir, candidate);
|
|
179
|
-
try {
|
|
180
|
-
const content = await fs.readFile(candidatePath, 'utf8');
|
|
181
|
-
if (content.trim().length > 0)
|
|
182
|
-
return content;
|
|
183
|
-
}
|
|
184
|
-
catch {
|
|
185
|
-
// Ignore missing file candidates.
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
return 'Plan file was not generated; refer to todo.md for actionable tasks.';
|
|
189
|
-
}
|
|
190
|
-
buildFallbackPlanContent(tasks) {
|
|
191
|
-
if (tasks.length === 0) {
|
|
192
|
-
return 'No tasks were generated.';
|
|
193
|
-
}
|
|
194
|
-
return [
|
|
195
|
-
'## Fallback plan generated from todo tasks',
|
|
196
|
-
'',
|
|
197
|
-
...tasks.map((task) => `- [ ] ${task.title} (${task.id})`),
|
|
198
|
-
'',
|
|
199
|
-
].join('\n');
|
|
200
|
-
}
|
|
201
|
-
extractCandidateTasks(description) {
|
|
202
|
-
const text = description.trim();
|
|
203
|
-
const lines = text.split('\n');
|
|
204
|
-
const tasks = [];
|
|
205
|
-
// 1) Use bullet-style lines as tasks when present
|
|
206
|
-
for (const raw of lines) {
|
|
207
|
-
const line = raw.trim();
|
|
208
|
-
const bulletMatch = /^[-*]\s+(.*)$/.exec(line);
|
|
209
|
-
if (bulletMatch) {
|
|
210
|
-
const title = bulletMatch[1].trim();
|
|
211
|
-
if (title.length >= 10) {
|
|
212
|
-
tasks.push(title);
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
if (tasks.length > 0)
|
|
217
|
-
return tasks;
|
|
218
|
-
// 2) Fallback: split by sentences and keep reasonably sized chunks
|
|
219
|
-
const sentenceLike = text
|
|
220
|
-
.split(/[.!?]/)
|
|
221
|
-
.map(s => s.trim())
|
|
222
|
-
.filter(s => s.length >= 15);
|
|
223
|
-
if (sentenceLike.length > 1) {
|
|
224
|
-
return sentenceLike;
|
|
225
|
-
}
|
|
226
|
-
// 3) Last resort: single task with the full description
|
|
227
|
-
if (text.length > 0)
|
|
228
|
-
return [text];
|
|
229
|
-
return [];
|
|
230
|
-
}
|
|
231
|
-
/**
|
|
232
|
-
* Generate a deterministic id for a title within this plan.
|
|
233
|
-
* We deliberately *do not* include timestamps here so the same
|
|
234
|
-
* title maps to the same id when re-planning.
|
|
235
|
-
*/
|
|
236
|
-
generateDeterministicId(title) {
|
|
237
|
-
const base = title
|
|
238
|
-
.toLowerCase()
|
|
239
|
-
.replace(/[^a-z0-9]+/g, '-')
|
|
240
|
-
.replace(/^-+|-+$/g, '')
|
|
241
|
-
.slice(0, 32) || 'task';
|
|
242
|
-
return base;
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
//# sourceMappingURL=planMode.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"planMode.js","sourceRoot":"","sources":["../../src/core/planMode.ts"],"names":[],"mappings":"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"}
|
package/dist/core/plugins.d.ts
DELETED
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import type { Tool } from '@anthropic-ai/sdk/resources/messages';
|
|
2
|
-
import type { EnhancedAgent } from './agent.js';
|
|
3
|
-
/**
|
|
4
|
-
* Plugin interface that all plugins must implement
|
|
5
|
-
*/
|
|
6
|
-
export interface XibeCodePlugin {
|
|
7
|
-
/**
|
|
8
|
-
* Plugin name
|
|
9
|
-
*/
|
|
10
|
-
name: string;
|
|
11
|
-
/**
|
|
12
|
-
* Plugin version
|
|
13
|
-
*/
|
|
14
|
-
version: string;
|
|
15
|
-
/**
|
|
16
|
-
* Optional description
|
|
17
|
-
*/
|
|
18
|
-
description?: string;
|
|
19
|
-
/**
|
|
20
|
-
* Register custom tools
|
|
21
|
-
*/
|
|
22
|
-
registerTools?(): ToolDefinition[];
|
|
23
|
-
/**
|
|
24
|
-
* Optional lifecycle hooks
|
|
25
|
-
*/
|
|
26
|
-
registerHooks?(agent: EnhancedAgent): void;
|
|
27
|
-
/**
|
|
28
|
-
* Initialize the plugin (called when loaded)
|
|
29
|
-
*/
|
|
30
|
-
initialize?(): Promise<void> | void;
|
|
31
|
-
/**
|
|
32
|
-
* Cleanup when plugin is unloaded
|
|
33
|
-
*/
|
|
34
|
-
cleanup?(): Promise<void> | void;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Plugin tool definition
|
|
38
|
-
*/
|
|
39
|
-
export interface ToolDefinition {
|
|
40
|
-
/**
|
|
41
|
-
* Tool schema (Anthropic format)
|
|
42
|
-
*/
|
|
43
|
-
schema: Tool;
|
|
44
|
-
/**
|
|
45
|
-
* Tool execution handler
|
|
46
|
-
*/
|
|
47
|
-
handler: (input: any) => Promise<any>;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Plugin loader and manager
|
|
51
|
-
*/
|
|
52
|
-
export declare class PluginManager {
|
|
53
|
-
private plugins;
|
|
54
|
-
private tools;
|
|
55
|
-
/**
|
|
56
|
-
* Load plugins from a list of paths
|
|
57
|
-
*/
|
|
58
|
-
loadPlugins(pluginPaths: string[]): Promise<void>;
|
|
59
|
-
/**
|
|
60
|
-
* Load a single plugin from a path
|
|
61
|
-
*/
|
|
62
|
-
loadPlugin(pluginPath: string): Promise<void>;
|
|
63
|
-
/**
|
|
64
|
-
* Get all registered plugin tools
|
|
65
|
-
*/
|
|
66
|
-
getPluginTools(): Tool[];
|
|
67
|
-
/**
|
|
68
|
-
* Execute a plugin tool
|
|
69
|
-
*/
|
|
70
|
-
executePluginTool(toolName: string, input: any): Promise<any>;
|
|
71
|
-
/**
|
|
72
|
-
* Check if a tool is a plugin tool
|
|
73
|
-
*/
|
|
74
|
-
isPluginTool(toolName: string): boolean;
|
|
75
|
-
/**
|
|
76
|
-
* Register plugin hooks with the agent
|
|
77
|
-
*/
|
|
78
|
-
registerHooks(agent: EnhancedAgent): void;
|
|
79
|
-
/**
|
|
80
|
-
* Get loaded plugins
|
|
81
|
-
*/
|
|
82
|
-
getPlugins(): XibeCodePlugin[];
|
|
83
|
-
/**
|
|
84
|
-
* Unload all plugins
|
|
85
|
-
*/
|
|
86
|
-
unloadAll(): Promise<void>;
|
|
87
|
-
/**
|
|
88
|
-
* Unload a specific plugin
|
|
89
|
-
*/
|
|
90
|
-
unloadPlugin(pluginName: string): Promise<void>;
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Example plugin template
|
|
94
|
-
*/
|
|
95
|
-
export declare const examplePlugin: XibeCodePlugin;
|
|
96
|
-
//# sourceMappingURL=plugins.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../src/core/plugins.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIhD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,aAAa,CAAC,IAAI,cAAc,EAAE,CAAC;IAEnC;;OAEG;IACH,aAAa,CAAC,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IAE3C;;OAEG;IACH,UAAU,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAEpC;;OAEG;IACH,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,MAAM,EAAE,IAAI,CAAC;IAEb;;OAEG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAA0C;IACzD,OAAO,CAAC,KAAK,CAA0C;IAEvD;;OAEG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUvD;;OAEG;IACG,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmDnD;;OAEG;IACH,cAAc,IAAI,IAAI,EAAE;IAIxB;;OAEG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAsBnE;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIvC;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAQzC;;OAEG;IACH,UAAU,IAAI,cAAc,EAAE;IAI9B;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAUhC;;OAEG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAqBtD;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,cA+C3B,CAAC"}
|