xibecode 0.2.3 → 0.2.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/dist/commands/chat.d.ts.map +1 -1
- package/dist/commands/chat.js +56 -3
- package/dist/commands/chat.js.map +1 -1
- package/dist/commands/config.js +1 -1
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/mcp.d.ts +1 -1
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +215 -168
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/run.d.ts +1 -0
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +19 -2
- package/dist/commands/run.js.map +1 -1
- package/dist/core/agent.d.ts +1 -0
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +23 -2
- package/dist/core/agent.js.map +1 -1
- package/dist/core/docs-scraper.d.ts.map +1 -1
- package/dist/core/docs-scraper.js +60 -3
- package/dist/core/docs-scraper.js.map +1 -1
- package/dist/core/memory.d.ts +30 -0
- package/dist/core/memory.d.ts.map +1 -0
- package/dist/core/memory.js +97 -0
- package/dist/core/memory.js.map +1 -0
- package/dist/core/modes.d.ts +1 -1
- package/dist/core/modes.d.ts.map +1 -1
- package/dist/core/modes.js +44 -3
- package/dist/core/modes.js.map +1 -1
- package/dist/core/planMode.d.ts +11 -1
- package/dist/core/planMode.d.ts.map +1 -1
- package/dist/core/planMode.js +84 -16
- package/dist/core/planMode.js.map +1 -1
- package/dist/core/skills-sh-client.d.ts +19 -0
- package/dist/core/skills-sh-client.d.ts.map +1 -0
- package/dist/core/skills-sh-client.js +72 -0
- package/dist/core/skills-sh-client.js.map +1 -0
- package/dist/core/skills.d.ts +13 -0
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +27 -0
- package/dist/core/skills.js.map +1 -1
- package/dist/core/tools.d.ts +11 -0
- package/dist/core/tools.d.ts.map +1 -1
- package/dist/core/tools.js +149 -4
- package/dist/core/tools.js.map +1 -1
- package/dist/index.js +22 -7
- package/dist/index.js.map +1 -1
- package/dist/tools/browser.d.ts +8 -0
- package/dist/tools/browser.d.ts.map +1 -0
- package/dist/tools/browser.js +56 -0
- package/dist/tools/browser.js.map +1 -0
- package/dist/utils/smithery.d.ts +25 -0
- package/dist/utils/smithery.d.ts.map +1 -0
- package/dist/utils/smithery.js +50 -0
- package/dist/utils/smithery.js.map +1 -0
- package/package.json +6 -4
package/dist/core/planMode.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { TodoItem, TodoDocument } from '../utils/todoManager.js';
|
|
2
|
+
import { AgentConfig } from './agent.js';
|
|
2
3
|
export interface PlanResult {
|
|
3
4
|
doc: TodoDocument;
|
|
4
5
|
tasks: TodoItem[];
|
|
@@ -13,7 +14,9 @@ export interface PlanResult {
|
|
|
13
14
|
*/
|
|
14
15
|
export declare class PlanMode {
|
|
15
16
|
private readonly rootDir;
|
|
16
|
-
|
|
17
|
+
private readonly config;
|
|
18
|
+
private readonly provider;
|
|
19
|
+
constructor(rootDir: string, config: AgentConfig, provider: 'anthropic' | 'openai');
|
|
17
20
|
/**
|
|
18
21
|
* Decide whether a task should go through plan mode.
|
|
19
22
|
* Very simple heuristic based on length and obvious multi-step language.
|
|
@@ -23,7 +26,14 @@ export declare class PlanMode {
|
|
|
23
26
|
* Build or extend a TODO plan for the given description.
|
|
24
27
|
* Returns the updated document plus the tasks it just added/updated.
|
|
25
28
|
*/
|
|
29
|
+
/**
|
|
30
|
+
* Build or extend a TODO plan using the AI Architect.
|
|
31
|
+
*/
|
|
26
32
|
buildPlan(description: string): Promise<PlanResult>;
|
|
33
|
+
/**
|
|
34
|
+
* Fallback to the old heuristic method if AI fails
|
|
35
|
+
*/
|
|
36
|
+
fallbackBuildPlan(description: string): Promise<PlanResult>;
|
|
27
37
|
private extractCandidateTasks;
|
|
28
38
|
/**
|
|
29
39
|
* Generate a deterministic id for a title within this plan.
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AAOpE,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,YAAY,CAAC;IAClB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;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,WAAW,GAAG,QAAQ;IAGnD;;;OAGG;IACH,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAwBzC;;;OAGG;IACH;;OAEG;IACG,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA0EzD;;OAEG;IACG,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAyBjE,OAAO,CAAC,qBAAqB;IAkC7B;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;CAQhC"}
|
package/dist/core/planMode.js
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
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 chalk from 'chalk';
|
|
2
6
|
/**
|
|
3
7
|
* Lightweight \"plan mode\" that decides whether a task is large/complex
|
|
4
8
|
* and, if so, creates/updates todo.md with a structured list of tasks.
|
|
@@ -8,8 +12,12 @@ import { TodoManager } from '../utils/todoManager.js';
|
|
|
8
12
|
*/
|
|
9
13
|
export class PlanMode {
|
|
10
14
|
rootDir;
|
|
11
|
-
|
|
15
|
+
config;
|
|
16
|
+
provider;
|
|
17
|
+
constructor(rootDir, config, provider) {
|
|
12
18
|
this.rootDir = rootDir;
|
|
19
|
+
this.config = config;
|
|
20
|
+
this.provider = provider;
|
|
13
21
|
}
|
|
14
22
|
/**
|
|
15
23
|
* Decide whether a task should go through plan mode.
|
|
@@ -41,30 +49,90 @@ export class PlanMode {
|
|
|
41
49
|
* Build or extend a TODO plan for the given description.
|
|
42
50
|
* Returns the updated document plus the tasks it just added/updated.
|
|
43
51
|
*/
|
|
52
|
+
/**
|
|
53
|
+
* Build or extend a TODO plan using the AI Architect.
|
|
54
|
+
*/
|
|
44
55
|
async buildPlan(description) {
|
|
56
|
+
console.log(chalk.cyan('\n🧠 AI Architect is analyzing the request...'));
|
|
57
|
+
// Initialize the Architect Agent
|
|
58
|
+
// We give it a restricted set of tools: Read access + Write access ONLY to plan/todo files
|
|
59
|
+
// For now, we'll give it the standard executor but instruct it carefully.
|
|
60
|
+
const toolExecutor = new CodingToolExecutor(this.rootDir, {
|
|
61
|
+
dryRun: false, // We want it to actually write the plan files
|
|
62
|
+
skillManager: new SkillManager(this.rootDir, this.config.apiKey, this.config.baseUrl, this.config.model, this.provider)
|
|
63
|
+
});
|
|
64
|
+
// Filter tools to ensure safety during planning (read-only + specific writes)
|
|
65
|
+
// Actually, giving full read access is good. We just want to encourage it to write plans.
|
|
66
|
+
const tools = toolExecutor.getTools();
|
|
67
|
+
const architect = new EnhancedAgent({ ...this.config, maxIterations: 10 }, // Limit iterations for planning
|
|
68
|
+
this.provider);
|
|
69
|
+
// Forward events for visibility
|
|
70
|
+
architect.on('event', (event) => {
|
|
71
|
+
if (event.type === 'thinking')
|
|
72
|
+
console.log(chalk.gray(` ${event.data.message}`));
|
|
73
|
+
});
|
|
74
|
+
const prompt = `
|
|
75
|
+
You are the AI Architect. Your goal is to analyze the user's request and create a concrete execution plan.
|
|
76
|
+
|
|
77
|
+
USER REQUEST: "${description}"
|
|
78
|
+
|
|
79
|
+
1. **Explore**: Read files to understand the current state of the project.
|
|
80
|
+
2. **Plan**: Create a detailed \`implementation_plan.md\` file.
|
|
81
|
+
- Describe the architectural changes.
|
|
82
|
+
- List files to create/modify.
|
|
83
|
+
- Identify potential risks.
|
|
84
|
+
3. **Tasking**: Create or Update the \`todo.md\` file.
|
|
85
|
+
- Break the plan into small, testable tasks.
|
|
86
|
+
- Use a markdown list format with IDs if possible, or just a standard task list.
|
|
87
|
+
- The \`todo.md\` MUST be actionable.
|
|
88
|
+
|
|
89
|
+
Perform these steps now.
|
|
90
|
+
`.trim();
|
|
91
|
+
try {
|
|
92
|
+
await architect.run(prompt, tools, toolExecutor);
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
console.error(chalk.red('Architect failed to generate plan:'), error);
|
|
96
|
+
}
|
|
97
|
+
// Now read the generated todo.md to return the result
|
|
98
|
+
const todoManager = new TodoManager(this.rootDir);
|
|
99
|
+
let doc;
|
|
100
|
+
try {
|
|
101
|
+
// Force reload from disk in case Agent wrote it
|
|
102
|
+
doc = await todoManager.load();
|
|
103
|
+
}
|
|
104
|
+
catch (e) {
|
|
105
|
+
// Fallback if no todo.md was created
|
|
106
|
+
doc = { pending: [], inProgress: [], done: [] };
|
|
107
|
+
}
|
|
108
|
+
// If doc is empty, fallback to heuristic (means Agent failed to write todo.md)
|
|
109
|
+
if (doc.pending.length === 0 && doc.inProgress.length === 0 && doc.done.length === 0) {
|
|
110
|
+
console.log(chalk.yellow(' (Architect did not create tasks, falling back to heuristic)'));
|
|
111
|
+
return this.fallbackBuildPlan(description);
|
|
112
|
+
}
|
|
113
|
+
return {
|
|
114
|
+
doc,
|
|
115
|
+
tasks: doc.pending, // This might not be exactly "new" tasks, but "pending" ones
|
|
116
|
+
isLarge: true,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Fallback to the old heuristic method if AI fails
|
|
121
|
+
*/
|
|
122
|
+
async fallbackBuildPlan(description) {
|
|
45
123
|
const todoManager = new TodoManager(this.rootDir);
|
|
46
|
-
// Split description into candidate task titles.
|
|
47
124
|
const candidates = this.extractCandidateTasks(description);
|
|
48
|
-
if (candidates.length === 0)
|
|
49
|
-
// Fallback: treat whole description as one task
|
|
125
|
+
if (candidates.length === 0)
|
|
50
126
|
candidates.push(description.trim());
|
|
51
|
-
|
|
52
|
-
const newItems = candidates.map(title => ({
|
|
127
|
+
const newItems = candidates.map((title) => ({
|
|
53
128
|
id: this.generateDeterministicId(title),
|
|
54
129
|
title: title.trim(),
|
|
55
130
|
}));
|
|
56
131
|
const doc = await todoManager.mergeNewTasks(newItems);
|
|
57
|
-
//
|
|
132
|
+
// Re-map to find added tasks
|
|
58
133
|
const byId = new Map();
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
}
|
|
62
|
-
const tasks = [];
|
|
63
|
-
for (const t of newItems) {
|
|
64
|
-
const found = byId.get(t.id);
|
|
65
|
-
if (found)
|
|
66
|
-
tasks.push(found);
|
|
67
|
-
}
|
|
134
|
+
[...doc.pending, ...doc.inProgress, ...doc.done].forEach(i => byId.set(i.id, i));
|
|
135
|
+
const tasks = newItems.map((t) => byId.get(t.id)).filter(Boolean);
|
|
68
136
|
return {
|
|
69
137
|
doc,
|
|
70
138
|
tasks,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"planMode.js","sourceRoot":"","sources":["../../src/core/planMode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA0B,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"planMode.js","sourceRoot":"","sources":["../../src/core/planMode.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface SkillsShResult {
|
|
2
|
+
id: string;
|
|
3
|
+
url: string;
|
|
4
|
+
}
|
|
5
|
+
export declare class SkillsShClient {
|
|
6
|
+
/**
|
|
7
|
+
* Search for skills using `npx skills find`
|
|
8
|
+
*/
|
|
9
|
+
search(query: string): Promise<SkillsShResult[]>;
|
|
10
|
+
/**
|
|
11
|
+
* Install a skill using `npx skills add`
|
|
12
|
+
* Note: This CLI installs skills to the local project or global scope.
|
|
13
|
+
* We'll try to detect where it went or just let it install to the cwd by default
|
|
14
|
+
* and then move it if necessary, but for now we trust `npx skills add` to do its thing.
|
|
15
|
+
*/
|
|
16
|
+
install(skillId: string, targetDir: string): Promise<string | null>;
|
|
17
|
+
private parseSearchResults;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=skills-sh-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills-sh-client.d.ts","sourceRoot":"","sources":["../../src/core/skills-sh-client.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,cAAc;IACvB;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAatD;;;;;OAKG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAmBzE,OAAO,CAAC,kBAAkB;CA6B7B"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { exec } from 'child_process';
|
|
2
|
+
import { promisify } from 'util';
|
|
3
|
+
import stripAnsi from 'strip-ansi';
|
|
4
|
+
const execAsync = promisify(exec);
|
|
5
|
+
export class SkillsShClient {
|
|
6
|
+
/**
|
|
7
|
+
* Search for skills using `npx skills find`
|
|
8
|
+
*/
|
|
9
|
+
async search(query) {
|
|
10
|
+
try {
|
|
11
|
+
// Run npx skills find [query]
|
|
12
|
+
// We use -y to skip confirmation
|
|
13
|
+
const { stdout } = await execAsync(`npx -y skills find "${query}"`);
|
|
14
|
+
return this.parseSearchResults(stripAnsi(stdout));
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
console.warn('Skills.sh search error:', error.message);
|
|
18
|
+
return [];
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Install a skill using `npx skills add`
|
|
23
|
+
* Note: This CLI installs skills to the local project or global scope.
|
|
24
|
+
* We'll try to detect where it went or just let it install to the cwd by default
|
|
25
|
+
* and then move it if necessary, but for now we trust `npx skills add` to do its thing.
|
|
26
|
+
*/
|
|
27
|
+
async install(skillId, targetDir) {
|
|
28
|
+
try {
|
|
29
|
+
// npx skills add <skillId> -y
|
|
30
|
+
// The CLI might create a file in the current directory or .agent/skills
|
|
31
|
+
// We'll run it in the target directory to be safe, or just in cwd and move it.
|
|
32
|
+
// Let's try running in cwd.
|
|
33
|
+
await execAsync(`npx -y skills add ${skillId} -y`, { cwd: targetDir });
|
|
34
|
+
// We need to figure out what file was created.
|
|
35
|
+
// The CLI output might tell us, but for now we assume it creates a file based on the skill name.
|
|
36
|
+
// Since we can't easily parse the output for the filename reliably without running it,
|
|
37
|
+
// we might just return success and let the user/system discover the new file.
|
|
38
|
+
return `Skill ${skillId} installed successfully.`;
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
console.error('Skills.sh install error:', error.message);
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
parseSearchResults(stdout) {
|
|
46
|
+
const results = [];
|
|
47
|
+
const lines = stdout.split('\n');
|
|
48
|
+
// Example output:
|
|
49
|
+
// vercel-labs/agent-skills@vercel-react-best-practices
|
|
50
|
+
// └ https://skills.sh/vercel-labs/agent-skills/vercel-react-best-practices
|
|
51
|
+
let currentId = '';
|
|
52
|
+
for (const line of lines) {
|
|
53
|
+
const trimmed = line.trim();
|
|
54
|
+
if (!trimmed)
|
|
55
|
+
continue;
|
|
56
|
+
if (trimmed.startsWith('└')) {
|
|
57
|
+
// Link line
|
|
58
|
+
const url = trimmed.substring(2).trim();
|
|
59
|
+
if (currentId && url) {
|
|
60
|
+
results.push({ id: currentId, url });
|
|
61
|
+
currentId = '';
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
else if (!trimmed.startsWith('Install with') && !trimmed.includes('skills.sh') && trimmed.includes('/')) {
|
|
65
|
+
// Likely an ID line like "owner/repo@skill"
|
|
66
|
+
currentId = trimmed;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return results;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=skills-sh-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills-sh-client.js","sourceRoot":"","sources":["../../src/core/skills-sh-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAIjC,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAOlC,MAAM,OAAO,cAAc;IACvB;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,KAAa;QACtB,IAAI,CAAC;YACD,8BAA8B;YAC9B,iCAAiC;YACjC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,uBAAuB,KAAK,GAAG,CAAC,CAAC;YAEpE,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACvD,OAAO,EAAE,CAAC;QACd,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,SAAiB;QAC5C,IAAI,CAAC;YACD,8BAA8B;YAC9B,wEAAwE;YACxE,+EAA+E;YAC/E,4BAA4B;YAC5B,MAAM,SAAS,CAAC,qBAAqB,OAAO,KAAK,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;YAEvE,gDAAgD;YAChD,iGAAiG;YACjG,uFAAuF;YACvF,8EAA8E;YAC9E,OAAO,SAAS,OAAO,0BAA0B,CAAC;QACtD,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACzD,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAEO,kBAAkB,CAAC,MAAc;QACrC,MAAM,OAAO,GAAqB,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEjC,kBAAkB;QAClB,uDAAuD;QACvD,2EAA2E;QAE3E,IAAI,SAAS,GAAG,EAAE,CAAC;QAEnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO;gBAAE,SAAS;YAEvB,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,YAAY;gBACZ,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACxC,IAAI,SAAS,IAAI,GAAG,EAAE,CAAC;oBACnB,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;oBACrC,SAAS,GAAG,EAAE,CAAC;gBACnB,CAAC;YACL,CAAC;iBAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxG,4CAA4C;gBAC5C,SAAS,GAAG,OAAO,CAAC;YACxB,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ"}
|
package/dist/core/skills.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type MarketplaceSkillResult } from './marketplace-client.js';
|
|
2
|
+
import { type SkillsShResult } from './skills-sh-client.js';
|
|
2
3
|
export interface Skill {
|
|
3
4
|
name: string;
|
|
4
5
|
description: string;
|
|
@@ -10,6 +11,7 @@ export declare class SkillManager {
|
|
|
10
11
|
private builtInSkillsDir;
|
|
11
12
|
private userSkillsDir;
|
|
12
13
|
private marketplace;
|
|
14
|
+
private skillsSh;
|
|
13
15
|
private aiConfig;
|
|
14
16
|
constructor(workingDir?: string, apiKey?: string, baseUrl?: string, model?: string, provider?: 'anthropic' | 'openai');
|
|
15
17
|
loadSkills(): Promise<void>;
|
|
@@ -51,5 +53,16 @@ export declare class SkillManager {
|
|
|
51
53
|
error?: string;
|
|
52
54
|
marketplaceId?: string;
|
|
53
55
|
}>;
|
|
56
|
+
/**
|
|
57
|
+
* Search skills.sh for skills
|
|
58
|
+
*/
|
|
59
|
+
searchSkillsSh(query: string): Promise<SkillsShResult[]>;
|
|
60
|
+
/**
|
|
61
|
+
* Install a skill from skills.sh
|
|
62
|
+
*/
|
|
63
|
+
installFromSkillsSh(skillId: string): Promise<{
|
|
64
|
+
success: boolean;
|
|
65
|
+
message?: string;
|
|
66
|
+
}>;
|
|
54
67
|
}
|
|
55
68
|
//# sourceMappingURL=skills.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/core/skills.ts"],"names":[],"mappings":"AAKA,OAAO,EAAqB,KAAK,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/core/skills.ts"],"names":[],"mappings":"AAKA,OAAO,EAAqB,KAAK,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACzF,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAK5E,MAAM,WAAW,KAAK;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,qBAAa,YAAY;IACrB,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,QAAQ,CAAoB;gBAExB,UAAU,GAAE,MAAsB,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,WAAW,GAAG,QAAQ;IAe9H,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YAanB,uBAAuB;IAqBrC,OAAO,CAAC,cAAc;IAiCtB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAIzC,UAAU,IAAI,KAAK,EAAE;IAIrB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE;IASpC;;OAEG;IACG,iBAAiB,CAAC,KAAK,GAAE,MAAW,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IASlG;;;OAGG;IACG,sBAAsB,CACxB,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GACnC,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAiClE;;OAEG;IACG,mBAAmB,CACrB,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GACnC,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAWlE;;;;OAIG;IACG,aAAa,CACf,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,QAAQ,GAAE,MAAW,EACrB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GACnC,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA0ChH;;OAEG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAI9D;;OAEG;IACG,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAgB9F"}
|
package/dist/core/skills.js
CHANGED
|
@@ -4,6 +4,7 @@ import { fileURLToPath } from 'url';
|
|
|
4
4
|
import { dirname } from 'path';
|
|
5
5
|
import { crawlDocs, generateSkillFromDocs } from './docs-scraper.js';
|
|
6
6
|
import { MarketplaceClient } from './marketplace-client.js';
|
|
7
|
+
import { SkillsShClient } from './skills-sh-client.js';
|
|
7
8
|
const __filename = fileURLToPath(import.meta.url);
|
|
8
9
|
const __dirname = dirname(__filename);
|
|
9
10
|
export class SkillManager {
|
|
@@ -11,6 +12,7 @@ export class SkillManager {
|
|
|
11
12
|
builtInSkillsDir;
|
|
12
13
|
userSkillsDir;
|
|
13
14
|
marketplace;
|
|
15
|
+
skillsSh;
|
|
14
16
|
aiConfig;
|
|
15
17
|
constructor(workingDir = process.cwd(), apiKey, baseUrl, model, provider) {
|
|
16
18
|
// Built-in skills shipped with XibeCode
|
|
@@ -18,6 +20,7 @@ export class SkillManager {
|
|
|
18
20
|
// User-defined skills in project
|
|
19
21
|
this.userSkillsDir = path.join(workingDir, '.xibecode', 'skills');
|
|
20
22
|
this.marketplace = new MarketplaceClient();
|
|
23
|
+
this.skillsSh = new SkillsShClient();
|
|
21
24
|
this.aiConfig = {
|
|
22
25
|
apiKey: apiKey || process.env.ANTHROPIC_API_KEY || process.env.OPENAI_API_KEY || '',
|
|
23
26
|
baseUrl,
|
|
@@ -196,5 +199,29 @@ export class SkillManager {
|
|
|
196
199
|
return { success: false, pagesScraped: 0, filePath: '', error: error.message };
|
|
197
200
|
}
|
|
198
201
|
}
|
|
202
|
+
/**
|
|
203
|
+
* Search skills.sh for skills
|
|
204
|
+
*/
|
|
205
|
+
async searchSkillsSh(query) {
|
|
206
|
+
return this.skillsSh.search(query);
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Install a skill from skills.sh
|
|
210
|
+
*/
|
|
211
|
+
async installFromSkillsSh(skillId) {
|
|
212
|
+
// We'll install strictly to the user skills directory if possible
|
|
213
|
+
// But npx skills add might install to a different location or just output the file
|
|
214
|
+
// For now, we'll run it in the user skills directory
|
|
215
|
+
try {
|
|
216
|
+
await fs.mkdir(this.userSkillsDir, { recursive: true });
|
|
217
|
+
const result = await this.skillsSh.install(skillId, this.userSkillsDir);
|
|
218
|
+
// Reload skills to pick up the new one
|
|
219
|
+
await this.loadSkillsFromDirectory(this.userSkillsDir, 'user');
|
|
220
|
+
return { success: !!result, message: result || 'Installation failed' };
|
|
221
|
+
}
|
|
222
|
+
catch (error) {
|
|
223
|
+
return { success: false, message: error.message };
|
|
224
|
+
}
|
|
225
|
+
}
|
|
199
226
|
}
|
|
200
227
|
//# sourceMappingURL=skills.js.map
|
package/dist/core/skills.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/core/skills.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAA0B,MAAM,mBAAmB,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAA+B,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/core/skills.ts"],"names":[],"mappings":"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"}
|
package/dist/core/tools.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import type { Tool } from '@anthropic-ai/sdk/resources/messages';
|
|
2
|
+
import { AgentMode } from './modes.js';
|
|
2
3
|
import { PluginManager } from './plugins.js';
|
|
3
4
|
import { MCPClientManager } from './mcp-client.js';
|
|
5
|
+
import { NeuralMemory } from './memory.js';
|
|
6
|
+
import { SkillManager } from './skills.js';
|
|
4
7
|
export interface ToolExecutor {
|
|
5
8
|
execute(toolName: string, input: any): Promise<any>;
|
|
6
9
|
getTools(): Tool[];
|
|
@@ -14,6 +17,9 @@ export declare class CodingToolExecutor implements ToolExecutor {
|
|
|
14
17
|
private safetyChecker;
|
|
15
18
|
private pluginManager;
|
|
16
19
|
private mcpClientManager?;
|
|
20
|
+
private memory?;
|
|
21
|
+
private browserManager;
|
|
22
|
+
private skillManager;
|
|
17
23
|
private platform;
|
|
18
24
|
private dryRun;
|
|
19
25
|
private testCommandOverride?;
|
|
@@ -22,7 +28,10 @@ export declare class CodingToolExecutor implements ToolExecutor {
|
|
|
22
28
|
testCommandOverride?: string;
|
|
23
29
|
pluginManager?: PluginManager;
|
|
24
30
|
mcpClientManager?: MCPClientManager;
|
|
31
|
+
memory?: NeuralMemory;
|
|
32
|
+
skillManager?: SkillManager;
|
|
25
33
|
});
|
|
34
|
+
setMode(mode: AgentMode): void;
|
|
26
35
|
/**
|
|
27
36
|
* Safely parse tool input - handles string JSON, null, undefined
|
|
28
37
|
*/
|
|
@@ -55,6 +64,8 @@ export declare class CodingToolExecutor implements ToolExecutor {
|
|
|
55
64
|
private revertToGitCheckpoint;
|
|
56
65
|
private gitShowDiff;
|
|
57
66
|
private getMCPStatus;
|
|
67
|
+
private searchSkillsSh;
|
|
68
|
+
private installSkillFromSkillsSh;
|
|
58
69
|
private grepCode;
|
|
59
70
|
private webSearch;
|
|
60
71
|
private fetchUrl;
|
package/dist/core/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/core/tools.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/core/tools.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sCAAsC,CAAC;AAEjE,OAAO,EAAE,SAAS,EAAe,MAAM,YAAY,CAAC;AAKpD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACpD,QAAQ,IAAI,IAAI,EAAE,CAAC;CACpB;AAED,qBAAa,kBAAmB,YAAW,YAAY;IACrD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,gBAAgB,CAAC,CAAmB;IAC5C,OAAO,CAAC,MAAM,CAAC,CAAe;IAC9B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,mBAAmB,CAAC,CAAS;gBAGnC,UAAU,GAAE,MAAsB,EAClC,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;QACpC,MAAM,CAAC,EAAE,YAAY,CAAC;QACtB,YAAY,CAAC,EAAE,YAAY,CAAC;KAC7B;IAmBH,OAAO,CAAC,IAAI,EAAE,SAAS;IAMvB;;OAEG;IACH,OAAO,CAAC,UAAU;IASZ,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IA0SzD,QAAQ,IAAI,IAAI,EAAE;IAilBlB,OAAO,CAAC,WAAW;YAIL,QAAQ;YA6BR,iBAAiB;YAkBjB,SAAS;YA8BT,QAAQ;YAcR,SAAS;YAeT,gBAAgB;YAchB,YAAY;YAeZ,aAAa;YA8Bb,WAAW;YAaX,UAAU;YAyFV,eAAe;YAUf,UAAU;YAoCV,QAAQ;YAqBR,UAAU;YAkBV,UAAU;IAOxB,OAAO,CAAC,cAAc,CAAa;YAErB,QAAQ;YAoER,aAAa;YAiBb,YAAY;YAgBZ,iBAAiB;YAgBjB,kBAAkB;YAoBlB,mBAAmB;YAqCnB,qBAAqB;YAoDrB,WAAW;YAkBX,YAAY;YAsDZ,cAAc;YAcd,wBAAwB;YAkBxB,QAAQ;YA8DR,SAAS;YAiET,QAAQ;YA4DR,YAAY;CA6B3B"}
|