xibecode 0.1.5 â 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +45 -5
- package/dist/commands/chat.d.ts.map +1 -1
- package/dist/commands/chat.js +121 -0
- package/dist/commands/chat.js.map +1 -1
- package/dist/core/agent.d.ts +19 -0
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +102 -0
- package/dist/core/agent.js.map +1 -1
- package/dist/core/skills.d.ts +19 -0
- package/dist/core/skills.d.ts.map +1 -0
- package/dist/core/skills.js +91 -0
- package/dist/core/skills.js.map +1 -0
- package/dist/core/tools.d.ts +4 -0
- package/dist/core/tools.d.ts.map +1 -1
- package/dist/core/tools.js +305 -1
- package/dist/core/tools.js.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/ui/enhanced-tui.d.ts +1 -0
- package/dist/ui/enhanced-tui.d.ts.map +1 -1
- package/dist/ui/enhanced-tui.js +30 -5
- package/dist/ui/enhanced-tui.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,12 +4,16 @@
|
|
|
4
4
|
|
|
5
5
|
XibeCode is a professional CLI tool that brings autonomous AI coding capabilities to your terminal. Like Claude Code, but open-source, customizable, and with advanced context management.
|
|
6
6
|
|
|
7
|
-
## đ What's New in v0.1.
|
|
7
|
+
## đ What's New in v0.1.6
|
|
8
8
|
|
|
9
|
-
**v0.1.
|
|
9
|
+
**v0.1.6:**
|
|
10
10
|
|
|
11
|
-
-
|
|
12
|
-
-
|
|
11
|
+
- đ **Codebase Search** - New `grep_code` tool using ripgrep (grep fallback) for lightning-fast code search across your project
|
|
12
|
+
- đ **Web Search** - New `web_search` tool powered by DuckDuckGo â free, no API key required
|
|
13
|
+
- đ **URL Fetching** - New `fetch_url` tool to read any webpage as clean text (HTML auto-stripped)
|
|
14
|
+
- đ§ **Project Memory** - Persistent `.xibecode/memory.md` that saves project knowledge across sessions
|
|
15
|
+
- đ¯ **Verified Edit Tool** - `verified_edit` with old content verification prevents hallucinated edits
|
|
16
|
+
- đĄī¸ **Safer Editing by Default** - AI uses `verified_edit` as primary editing method with smart fallbacks
|
|
13
17
|
|
|
14
18
|
**Previous Updates:**
|
|
15
19
|
|
|
@@ -33,25 +37,61 @@ XibeCode is a professional CLI tool that brings autonomous AI coding capabilitie
|
|
|
33
37
|
- â
**Loop Detection** - Prevents infinite loops and runaway executions
|
|
34
38
|
- â
**Multiple Edit Methods** - Smart edit, line-range edit, insert, revert
|
|
35
39
|
|
|
36
|
-
### đ New Features
|
|
40
|
+
### đ New Features
|
|
37
41
|
|
|
42
|
+
- â
**Web Search** - Search the web from within the AI (DuckDuckGo, free, no API key)
|
|
43
|
+
- â
**Codebase Search** - Ripgrep-powered code search across your entire project
|
|
44
|
+
- â
**URL Fetching** - Read any webpage as clean text for research
|
|
45
|
+
- â
**Project Memory** - Persist project knowledge across sessions in `.xibecode/memory.md`
|
|
46
|
+
- â
**Verified Editing** - Content-verified file edits that prevent AI mistakes
|
|
38
47
|
- â
**Test Integration** - Auto-detect and run tests (Vitest, Jest, pytest, Go test)
|
|
39
48
|
- â
**Git Awareness** - Check status, create checkpoints, revert changes safely
|
|
40
49
|
- â
**Dry-Run Mode** - Preview changes without making them
|
|
41
50
|
- â
**Safety Controls** - Risk assessment and command blocking for dangerous operations
|
|
42
51
|
- â
**Plugin System** - Extend XibeCode with custom tools and workflows
|
|
43
52
|
|
|
53
|
+
### đ Skills System
|
|
54
|
+
|
|
55
|
+
XibeCode includes a **skills system** that activates specialized AI workflows for common tasks:
|
|
56
|
+
|
|
57
|
+
**Built-in Skills:**
|
|
58
|
+
|
|
59
|
+
- `refactor-clean-code` - Clean code principles & SOLID patterns
|
|
60
|
+
- `debug-production` - Systematic debugging workflow
|
|
61
|
+
- `write-tests` - Comprehensive testing with 80%+ coverage
|
|
62
|
+
- `security-audit` - OWASP Top 10 security checks
|
|
63
|
+
- `optimize-performance` - Performance profiling & optimization
|
|
64
|
+
|
|
65
|
+
**Usage:**
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
# In chat mode
|
|
69
|
+
/skill list # Show all skills
|
|
70
|
+
/skill refactor-clean-code # Activate a skill
|
|
71
|
+
/skill off # Deactivate current skill
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
When a skill is active, the AI follows specialized instructions and best practices for that domain. Create custom skills in `.xibecode/skills/` (markdown files with YAML frontmatter).
|
|
75
|
+
|
|
44
76
|
### File Operations
|
|
45
77
|
|
|
46
78
|
- đ Read files (whole or partial for large files)
|
|
47
79
|
- đ Write files (create or overwrite)
|
|
48
80
|
- âī¸ Edit files (search/replace with automatic backups)
|
|
81
|
+
- đ¯ Verified edits (content verification before applying)
|
|
49
82
|
- âī¸ Edit specific line ranges
|
|
50
83
|
- âŠī¸ Revert to previous versions
|
|
51
84
|
- đ Search files with glob patterns
|
|
85
|
+
- đ Grep codebase with ripgrep
|
|
52
86
|
- đ List directories
|
|
53
87
|
- đ§ Get intelligent context (related files)
|
|
54
88
|
|
|
89
|
+
### Web & Research
|
|
90
|
+
|
|
91
|
+
- đ Search the web (DuckDuckGo, free)
|
|
92
|
+
- đ Fetch and read any URL as text
|
|
93
|
+
- đ§ Project memory persistence
|
|
94
|
+
|
|
55
95
|
### Command Execution
|
|
56
96
|
|
|
57
97
|
- ⥠Run shell commands
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"AAmBA,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,iBAi7BrD"}
|
package/dist/commands/chat.js
CHANGED
|
@@ -12,6 +12,7 @@ import { PlanMode } from '../core/planMode.js';
|
|
|
12
12
|
import { TodoManager } from '../utils/todoManager.js';
|
|
13
13
|
import { getAllModes } from '../core/modes.js';
|
|
14
14
|
import { isThemeName, THEME_NAMES } from '../ui/themes.js';
|
|
15
|
+
import { SkillManager } from '../core/skills.js';
|
|
15
16
|
import chalk from 'chalk';
|
|
16
17
|
import * as fs from 'fs/promises';
|
|
17
18
|
import * as path from 'path';
|
|
@@ -25,6 +26,8 @@ export async function chatCommand(options) {
|
|
|
25
26
|
const sessionManager = new SessionManager(config.getSessionDirectory());
|
|
26
27
|
const contextManager = new ContextManager(process.cwd());
|
|
27
28
|
const planMode = new PlanMode(process.cwd());
|
|
29
|
+
const skillManager = new SkillManager(process.cwd());
|
|
30
|
+
await skillManager.loadSkills();
|
|
28
31
|
ui.clear();
|
|
29
32
|
if (!config.isHeaderMinimal()) {
|
|
30
33
|
ui.header('1.0.0');
|
|
@@ -48,6 +51,10 @@ export async function chatCommand(options) {
|
|
|
48
51
|
ui.chatBanner(process.cwd(), model, baseUrl);
|
|
49
52
|
let enableTools = true;
|
|
50
53
|
const toolExecutor = new CodingToolExecutor(process.cwd(), { mcpClientManager });
|
|
54
|
+
// ââ Undo/Redo history stack ââ
|
|
55
|
+
const undoStack = [];
|
|
56
|
+
const redoStack = [];
|
|
57
|
+
const MAX_UNDO = 20;
|
|
51
58
|
// ââ Create ONE agent for the entire chat session ââ
|
|
52
59
|
// This keeps conversation history (messages) across all turns,
|
|
53
60
|
// so the AI remembers everything you talked about.
|
|
@@ -106,6 +113,13 @@ export async function chatCommand(options) {
|
|
|
106
113
|
else if (r?.success && event.data.name === 'edit_lines') {
|
|
107
114
|
ui.fileChanged('modified', r.path || '', r.linesChanged ? `${r.linesChanged} lines` : undefined);
|
|
108
115
|
}
|
|
116
|
+
else if (r?.success && event.data.name === 'verified_edit') {
|
|
117
|
+
ui.fileChanged('modified', r.path || '', r.linesChanged ? `${r.linesChanged} lines` : undefined);
|
|
118
|
+
}
|
|
119
|
+
// Diff preview: show colorized diff when available
|
|
120
|
+
if (r?.diff && (event.data.name === 'edit_file' || event.data.name === 'edit_lines' || event.data.name === 'verified_edit')) {
|
|
121
|
+
ui.showDiff(r.diff, r.path || r.message || '');
|
|
122
|
+
}
|
|
109
123
|
}
|
|
110
124
|
break;
|
|
111
125
|
// ââ Iteration ââ
|
|
@@ -201,6 +215,12 @@ export async function chatCommand(options) {
|
|
|
201
215
|
console.log(' ' + chalk.hex('#00D4FF')('/thinking') + chalk.hex('#6B6B7B')(' toggle thinking spinner'));
|
|
202
216
|
console.log(' ' + chalk.hex('#00D4FF')('/themes') + chalk.hex('#6B6B7B')(' choose a color theme'));
|
|
203
217
|
console.log(' ' + chalk.hex('#00D4FF')('@path') + chalk.hex('#6B6B7B')(' list files/folders under path (or cwd if just "@")'));
|
|
218
|
+
console.log(' ' + chalk.hex('#00D4FF')('/undo') + chalk.hex('#6B6B7B')(' undo last AI turn (restore previous conversation state)'));
|
|
219
|
+
console.log(' ' + chalk.hex('#00D4FF')('/redo') + chalk.hex('#6B6B7B')(' redo undone turn'));
|
|
220
|
+
console.log(' ' + chalk.hex('#00D4FF')('/cost') + chalk.hex('#6B6B7B')(' show token usage and estimated cost'));
|
|
221
|
+
console.log(' ' + chalk.hex('#00D4FF')('/skill <name>') + chalk.hex('#6B6B7B')(' activate a skill (e.g. /skill refactor-clean-code)'));
|
|
222
|
+
console.log(' ' + chalk.hex('#00D4FF')('/skill list') + chalk.hex('#6B6B7B')(' show available skills'));
|
|
223
|
+
console.log(' ' + chalk.hex('#00D4FF')('/skill off') + chalk.hex('#6B6B7B')(' deactivate current skill'));
|
|
204
224
|
console.log(' ' + chalk.hex('#00D4FF')('clear') + chalk.hex('#6B6B7B')(' clear screen and redraw header'));
|
|
205
225
|
console.log(' ' + chalk.hex('#00D4FF')('tools on/off') + chalk.hex('#6B6B7B')(' toggle tools (editor & filesystem)'));
|
|
206
226
|
console.log(' ' + chalk.hex('#00D4FF')('exit / quit') + chalk.hex('#6B6B7B')(' end the chat session'));
|
|
@@ -589,6 +609,95 @@ export async function chatCommand(options) {
|
|
|
589
609
|
await handleCompactCommand();
|
|
590
610
|
continue;
|
|
591
611
|
}
|
|
612
|
+
if (lowerMessage === '/undo') {
|
|
613
|
+
if (undoStack.length === 0) {
|
|
614
|
+
ui.info('Nothing to undo.');
|
|
615
|
+
}
|
|
616
|
+
else {
|
|
617
|
+
const current = { messages: [...agent.getMessages()], label: 'redo point' };
|
|
618
|
+
redoStack.push(current);
|
|
619
|
+
const prev = undoStack.pop();
|
|
620
|
+
agent.setMessages(prev.messages);
|
|
621
|
+
await sessionManager.saveMessagesAndStats({ id: currentSession.id, messages: prev.messages, stats: agent.getStats() });
|
|
622
|
+
ui.success(`Undo: reverted to previous state (${prev.label})`);
|
|
623
|
+
}
|
|
624
|
+
continue;
|
|
625
|
+
}
|
|
626
|
+
if (lowerMessage === '/redo') {
|
|
627
|
+
if (redoStack.length === 0) {
|
|
628
|
+
ui.info('Nothing to redo.');
|
|
629
|
+
}
|
|
630
|
+
else {
|
|
631
|
+
const current = { messages: [...agent.getMessages()], label: 'undo point' };
|
|
632
|
+
undoStack.push(current);
|
|
633
|
+
const next = redoStack.pop();
|
|
634
|
+
agent.setMessages(next.messages);
|
|
635
|
+
await sessionManager.saveMessagesAndStats({ id: currentSession.id, messages: next.messages, stats: agent.getStats() });
|
|
636
|
+
ui.success(`Redo: restored next state`);
|
|
637
|
+
}
|
|
638
|
+
continue;
|
|
639
|
+
}
|
|
640
|
+
if (lowerMessage === '/cost') {
|
|
641
|
+
const stats = agent.getStats();
|
|
642
|
+
console.log('');
|
|
643
|
+
console.log(chalk.bold(' Token Usage & Cost'));
|
|
644
|
+
console.log(' ' + chalk.hex('#6B6B7B')('ââââââââââââââââââââââââââââ'));
|
|
645
|
+
console.log(' ' + chalk.hex('#00D4FF')('Input tokens: ') + chalk.white(stats.inputTokens.toLocaleString()));
|
|
646
|
+
console.log(' ' + chalk.hex('#00D4FF')('Output tokens: ') + chalk.white(stats.outputTokens.toLocaleString()));
|
|
647
|
+
console.log(' ' + chalk.hex('#00D4FF')('Total tokens: ') + chalk.white(stats.totalTokens.toLocaleString()));
|
|
648
|
+
if (stats.costLabel) {
|
|
649
|
+
console.log(' ' + chalk.hex('#00D4FF')('Est. cost: ') + chalk.hex('#00E676')(stats.costLabel));
|
|
650
|
+
}
|
|
651
|
+
else {
|
|
652
|
+
console.log(' ' + chalk.hex('#6B6B7B')(' (cost tracking unavailable for this model)'));
|
|
653
|
+
}
|
|
654
|
+
console.log('');
|
|
655
|
+
continue;
|
|
656
|
+
}
|
|
657
|
+
if (lowerMessage.startsWith('/skill')) {
|
|
658
|
+
const parts = trimmed.split(/\s+/);
|
|
659
|
+
const subcommand = parts[1]?.toLowerCase();
|
|
660
|
+
if (!subcommand || subcommand === 'list') {
|
|
661
|
+
const skills = skillManager.listSkills();
|
|
662
|
+
console.log('');
|
|
663
|
+
console.log(chalk.bold(' Available Skills'));
|
|
664
|
+
console.log(' ' + chalk.hex('#6B6B7B')('ââââââââââââââââââââââââââââââââ'));
|
|
665
|
+
if (skills.length === 0) {
|
|
666
|
+
console.log(' ' + chalk.hex('#6B6B7B')('No skills found'));
|
|
667
|
+
}
|
|
668
|
+
else {
|
|
669
|
+
skills.forEach(skill => {
|
|
670
|
+
const active = agent.getActiveSkill() === skill.name ? chalk.hex('#00E676')(' (active)') : '';
|
|
671
|
+
console.log(' ' + chalk.hex('#00D4FF')(skill.name) + active);
|
|
672
|
+
console.log(' ' + chalk.hex('#6B6B7B')(skill.description));
|
|
673
|
+
if (skill.tags && skill.tags.length > 0) {
|
|
674
|
+
console.log(' ' + chalk.dim(`tags: ${skill.tags.join(', ')}`));
|
|
675
|
+
}
|
|
676
|
+
console.log('');
|
|
677
|
+
});
|
|
678
|
+
}
|
|
679
|
+
console.log(' ' + chalk.dim('Usage: /skill <name> to activate'));
|
|
680
|
+
console.log('');
|
|
681
|
+
continue;
|
|
682
|
+
}
|
|
683
|
+
if (subcommand === 'off') {
|
|
684
|
+
agent.setSkill(null);
|
|
685
|
+
ui.success('Skill deactivated');
|
|
686
|
+
continue;
|
|
687
|
+
}
|
|
688
|
+
// Activate skill
|
|
689
|
+
const skillName = parts.slice(1).join('-');
|
|
690
|
+
const skill = skillManager.getSkill(skillName);
|
|
691
|
+
if (!skill) {
|
|
692
|
+
ui.error(`Skill not found: ${skillName}`);
|
|
693
|
+
console.log(' ' + chalk.dim('Use /skill list to see available skills'));
|
|
694
|
+
continue;
|
|
695
|
+
}
|
|
696
|
+
agent.setSkill(skill.name, skill.instructions);
|
|
697
|
+
ui.success(`Activated skill: ${skill.name}`);
|
|
698
|
+
console.log(' ' + chalk.hex('#6B6B7B')(skill.description));
|
|
699
|
+
continue;
|
|
700
|
+
}
|
|
592
701
|
if (lowerMessage === '/details') {
|
|
593
702
|
const next = !ui.getShowDetails();
|
|
594
703
|
ui.setShowDetails(next);
|
|
@@ -711,19 +820,31 @@ export async function chatCommand(options) {
|
|
|
711
820
|
hasResponse = false;
|
|
712
821
|
try {
|
|
713
822
|
const tools = enableTools ? toolExecutor.getTools() : [];
|
|
823
|
+
// Save undo point before AI turn
|
|
824
|
+
undoStack.push({ messages: [...agent.getMessages()], label: message.slice(0, 40) });
|
|
825
|
+
if (undoStack.length > MAX_UNDO)
|
|
826
|
+
undoStack.shift();
|
|
827
|
+
redoStack.length = 0; // clear redo on new action
|
|
714
828
|
// agent.run() resets its iteration/tool counters but KEEPS
|
|
715
829
|
// the conversation history (this.messages), so the AI has
|
|
716
830
|
// full context of everything discussed in this session.
|
|
717
831
|
await agent.run(message, tools, toolExecutor);
|
|
718
832
|
const stats = agent.getStats();
|
|
833
|
+
// Build tokens label for status bar
|
|
834
|
+
const tokensLabel = stats.totalTokens > 0
|
|
835
|
+
? `${(stats.totalTokens / 1000).toFixed(1)}k${stats.costLabel ? ` ¡ ${stats.costLabel}` : ''}`
|
|
836
|
+
: undefined;
|
|
837
|
+
const activeSkill = agent.getActiveSkill();
|
|
719
838
|
if (config.isStatusBarEnabled()) {
|
|
720
839
|
ui.renderStatusBar({
|
|
721
840
|
model,
|
|
722
841
|
sessionTitle: currentSession.title,
|
|
842
|
+
tokensLabel,
|
|
723
843
|
cwd: process.cwd(),
|
|
724
844
|
toolsEnabled: enableTools,
|
|
725
845
|
themeName: ui.getThemeName(),
|
|
726
846
|
mode: currentMode,
|
|
847
|
+
activeSkill,
|
|
727
848
|
});
|
|
728
849
|
}
|
|
729
850
|
await sessionManager.saveMessagesAndStats({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"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"}
|
package/dist/core/agent.d.ts
CHANGED
|
@@ -35,6 +35,12 @@ export declare class EnhancedAgent extends EventEmitter {
|
|
|
35
35
|
private modeState;
|
|
36
36
|
private modeOrchestrator;
|
|
37
37
|
private provider;
|
|
38
|
+
private projectMemory;
|
|
39
|
+
private totalInputTokens;
|
|
40
|
+
private totalOutputTokens;
|
|
41
|
+
private sessionCost;
|
|
42
|
+
private activeSkill;
|
|
43
|
+
private static readonly PRICING;
|
|
38
44
|
constructor(config: AgentConfig, providerOverride?: 'anthropic' | 'openai');
|
|
39
45
|
emit(event: AgentEvent['type'], data: any): boolean;
|
|
40
46
|
run(initialPrompt: string, tools: Tool[], toolExecutor: any): Promise<void>;
|
|
@@ -68,6 +74,11 @@ export declare class EnhancedAgent extends EventEmitter {
|
|
|
68
74
|
toolCalls: number;
|
|
69
75
|
filesChanged: number;
|
|
70
76
|
changedFiles: string[];
|
|
77
|
+
inputTokens: number;
|
|
78
|
+
outputTokens: number;
|
|
79
|
+
totalTokens: number;
|
|
80
|
+
cost: number;
|
|
81
|
+
costLabel: string | undefined;
|
|
71
82
|
};
|
|
72
83
|
getMessages(): MessageParam[];
|
|
73
84
|
/**
|
|
@@ -83,5 +94,13 @@ export declare class EnhancedAgent extends EventEmitter {
|
|
|
83
94
|
* Explicit user-driven mode change (e.g. hotkey or /mode).
|
|
84
95
|
*/
|
|
85
96
|
setModeFromUser(mode: AgentMode, reason: string): void;
|
|
97
|
+
/**
|
|
98
|
+
* Activate a skill to inject specialized instructions into the system prompt.
|
|
99
|
+
*/
|
|
100
|
+
setSkill(skillName: string | null, instructions?: string): void;
|
|
101
|
+
/**
|
|
102
|
+
* Get the currently active skill name, if any.
|
|
103
|
+
*/
|
|
104
|
+
getActiveSkill(): string | null;
|
|
86
105
|
}
|
|
87
106
|
//# sourceMappingURL=agent.d.ts.map
|
package/dist/core/agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,IAAI,EAAyC,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/core/agent.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Anthropic from '@anthropic-ai/sdk';
|
|
2
2
|
import fetch from 'node-fetch';
|
|
3
|
+
import * as fsSync from 'fs';
|
|
3
4
|
import { EventEmitter } from 'events';
|
|
4
5
|
import { createModeState, transitionMode, ModeOrchestrator, parseModeRequest, stripModeRequests } from './modes.js';
|
|
5
6
|
export class LoopDetector {
|
|
@@ -123,6 +124,18 @@ export class EnhancedAgent extends EventEmitter {
|
|
|
123
124
|
modeState;
|
|
124
125
|
modeOrchestrator;
|
|
125
126
|
provider;
|
|
127
|
+
projectMemory = '';
|
|
128
|
+
totalInputTokens = 0;
|
|
129
|
+
totalOutputTokens = 0;
|
|
130
|
+
sessionCost = 0;
|
|
131
|
+
activeSkill = null;
|
|
132
|
+
// Pricing per 1M tokens (input/output) â Claude models
|
|
133
|
+
static PRICING = {
|
|
134
|
+
'claude-sonnet-4-5-20250929': { input: 3, output: 15 },
|
|
135
|
+
'claude-opus-4-5-20251101': { input: 15, output: 75 },
|
|
136
|
+
'claude-haiku-4-5-20251015': { input: 1, output: 5 },
|
|
137
|
+
'claude-opus-4-6-20251101': { input: 5, output: 25 },
|
|
138
|
+
};
|
|
126
139
|
constructor(config, providerOverride) {
|
|
127
140
|
super();
|
|
128
141
|
const clientConfig = { apiKey: config.apiKey };
|
|
@@ -146,6 +159,14 @@ export class EnhancedAgent extends EventEmitter {
|
|
|
146
159
|
});
|
|
147
160
|
// Prefer explicit provider override from config, otherwise auto-detect
|
|
148
161
|
this.provider = providerOverride ?? this.detectProvider(this.config.model, this.config.baseUrl);
|
|
162
|
+
// Load project memory if it exists
|
|
163
|
+
try {
|
|
164
|
+
const memoryPath = require('path').join(process.cwd(), '.xibecode', 'memory.md');
|
|
165
|
+
if (fsSync.existsSync(memoryPath)) {
|
|
166
|
+
this.projectMemory = fsSync.readFileSync(memoryPath, 'utf-8').trim();
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
catch { /* no memory file */ }
|
|
149
170
|
}
|
|
150
171
|
emit(event, data) {
|
|
151
172
|
return super.emit('event', { type: event, data });
|
|
@@ -202,6 +223,28 @@ export class EnhancedAgent extends EventEmitter {
|
|
|
202
223
|
role: 'assistant',
|
|
203
224
|
content: response.content,
|
|
204
225
|
});
|
|
226
|
+
// Track token usage for cost estimation
|
|
227
|
+
if (response.usage) {
|
|
228
|
+
const inputTokens = response.usage.input_tokens || 0;
|
|
229
|
+
const outputTokens = response.usage.output_tokens || 0;
|
|
230
|
+
this.totalInputTokens += inputTokens;
|
|
231
|
+
this.totalOutputTokens += outputTokens;
|
|
232
|
+
// Calculate cost
|
|
233
|
+
const pricing = EnhancedAgent.PRICING[this.config.model];
|
|
234
|
+
if (pricing) {
|
|
235
|
+
this.sessionCost += (inputTokens * pricing.input + outputTokens * pricing.output) / 1_000_000;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
// Auto-compact: if conversation exceeds 80 messages, compact older ones
|
|
239
|
+
if (this.messages.length > 80) {
|
|
240
|
+
const preserved = this.messages.slice(-12);
|
|
241
|
+
const compactNotice = {
|
|
242
|
+
role: 'assistant',
|
|
243
|
+
content: 'Earlier conversation was auto-compacted to save context window space. Recent messages are preserved.',
|
|
244
|
+
};
|
|
245
|
+
this.messages = [compactNotice, ...preserved];
|
|
246
|
+
this.emit('warning', { message: 'Auto-compacted conversation to save context (kept last 12 messages)' });
|
|
247
|
+
}
|
|
205
248
|
// Process response
|
|
206
249
|
const content = response.content;
|
|
207
250
|
const textBlocks = content.filter((block) => block.type === 'text');
|
|
@@ -681,6 +724,22 @@ Working directory: ${process.cwd()}
|
|
|
681
724
|
3. **Context Awareness**: Use get_context to understand project structure before making changes
|
|
682
725
|
4. **Incremental Changes**: Make small, tested changes rather than large rewrites
|
|
683
726
|
5. **Error Recovery**: If something fails, analyze the error and try a different approach
|
|
727
|
+
6. **Search First**: Use grep_code to find code patterns, usages, and references before making changes
|
|
728
|
+
7. **Web Research**: Use web_search and fetch_url when you need documentation, error solutions, or up-to-date info
|
|
729
|
+
8. **Remember Important Things**: Use update_memory to save project knowledge for future sessions${this.projectMemory ? `
|
|
730
|
+
|
|
731
|
+
## Project Memory
|
|
732
|
+
|
|
733
|
+
The following knowledge was saved from previous sessions:
|
|
734
|
+
|
|
735
|
+
${this.projectMemory}` : ''}
|
|
736
|
+
|
|
737
|
+
${this.activeSkill ? `## Active Skill: ${this.activeSkill.name}
|
|
738
|
+
|
|
739
|
+
${this.activeSkill.instructions}
|
|
740
|
+
|
|
741
|
+
---
|
|
742
|
+
` : ''}
|
|
684
743
|
6. **Think Systematically**: Decompose complex problems, form hypotheses, and validate assumptions
|
|
685
744
|
7. **Consider Impact**: Analyze how changes affect related code and downstream dependencies
|
|
686
745
|
|
|
@@ -793,6 +852,27 @@ Map relationships:
|
|
|
793
852
|
3. Use verified_edit with old_content copied EXACTLY from what you read
|
|
794
853
|
4. If verification fails, re-read the file and retry with correct content
|
|
795
854
|
|
|
855
|
+
## Codebase Search
|
|
856
|
+
|
|
857
|
+
- Use \`grep_code\` to search for patterns across the codebase (uses ripgrep, falls back to grep)
|
|
858
|
+
- Faster than reading files one by one â find usages, imports, function calls, error strings
|
|
859
|
+
- Supports file pattern filtering: \`file_pattern: "*.ts"\` to search only TypeScript files
|
|
860
|
+
- Use \`ignore_case: true\` for case-insensitive searches
|
|
861
|
+
|
|
862
|
+
## Web Search & URL Fetching
|
|
863
|
+
|
|
864
|
+
- Use \`web_search\` to search the web via DuckDuckGo (free, no API key needed)
|
|
865
|
+
- Use \`fetch_url\` to read any URL â docs, APIs, blog posts (HTML is auto-stripped to text)
|
|
866
|
+
- Useful for: looking up library docs, resolving error messages, finding solutions
|
|
867
|
+
- Always use web_search when you encounter an unfamiliar error or need current documentation
|
|
868
|
+
|
|
869
|
+
## Project Memory
|
|
870
|
+
|
|
871
|
+
- Use \`update_memory\` to save important project info to .xibecode/memory.md
|
|
872
|
+
- Memory persists across sessions â the AI loads it automatically on startup
|
|
873
|
+
- Good things to remember: coding conventions, architecture decisions, common commands, gotchas
|
|
874
|
+
- Append by default (\`append: true\`), or replace with \`append: false\`
|
|
875
|
+
|
|
796
876
|
## Running Commands
|
|
797
877
|
|
|
798
878
|
- Commands have a default timeout of 120 seconds.
|
|
@@ -1022,6 +1102,11 @@ When you complete the task, provide a comprehensive summary including:
|
|
|
1022
1102
|
toolCalls: this.toolCallCount,
|
|
1023
1103
|
filesChanged: this.filesChanged.size,
|
|
1024
1104
|
changedFiles: Array.from(this.filesChanged),
|
|
1105
|
+
inputTokens: this.totalInputTokens,
|
|
1106
|
+
outputTokens: this.totalOutputTokens,
|
|
1107
|
+
totalTokens: this.totalInputTokens + this.totalOutputTokens,
|
|
1108
|
+
cost: this.sessionCost,
|
|
1109
|
+
costLabel: this.sessionCost > 0 ? `$${this.sessionCost.toFixed(4)}` : undefined,
|
|
1025
1110
|
};
|
|
1026
1111
|
}
|
|
1027
1112
|
getMessages() {
|
|
@@ -1053,5 +1138,22 @@ When you complete the task, provide a comprehensive summary including:
|
|
|
1053
1138
|
auto: false,
|
|
1054
1139
|
});
|
|
1055
1140
|
}
|
|
1141
|
+
/**
|
|
1142
|
+
* Activate a skill to inject specialized instructions into the system prompt.
|
|
1143
|
+
*/
|
|
1144
|
+
setSkill(skillName, instructions) {
|
|
1145
|
+
if (skillName && instructions) {
|
|
1146
|
+
this.activeSkill = { name: skillName, instructions };
|
|
1147
|
+
}
|
|
1148
|
+
else {
|
|
1149
|
+
this.activeSkill = null;
|
|
1150
|
+
}
|
|
1151
|
+
}
|
|
1152
|
+
/**
|
|
1153
|
+
* Get the currently active skill name, if any.
|
|
1154
|
+
*/
|
|
1155
|
+
getActiveSkill() {
|
|
1156
|
+
return this.activeSkill?.name || null;
|
|
1157
|
+
}
|
|
1056
1158
|
}
|
|
1057
1159
|
//# sourceMappingURL=agent.js.map
|