attocode 0.1.2 → 0.1.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/CHANGELOG.md +51 -1
- package/README.md +180 -0
- package/dist/src/agent.d.ts +78 -1
- package/dist/src/agent.d.ts.map +1 -1
- package/dist/src/agent.js +639 -36
- package/dist/src/agent.js.map +1 -1
- package/dist/src/analysis/feedback-loop.d.ts +115 -0
- package/dist/src/analysis/feedback-loop.d.ts.map +1 -0
- package/dist/src/analysis/feedback-loop.js +226 -0
- package/dist/src/analysis/feedback-loop.js.map +1 -0
- package/dist/src/analysis/index.d.ts +9 -0
- package/dist/src/analysis/index.d.ts.map +1 -0
- package/dist/src/analysis/index.js +9 -0
- package/dist/src/analysis/index.js.map +1 -0
- package/dist/src/analysis/prompt-templates.d.ts +36 -0
- package/dist/src/analysis/prompt-templates.d.ts.map +1 -0
- package/dist/src/analysis/prompt-templates.js +198 -0
- package/dist/src/analysis/prompt-templates.js.map +1 -0
- package/dist/src/analysis/trace-summary.d.ts +56 -0
- package/dist/src/analysis/trace-summary.d.ts.map +1 -0
- package/dist/src/analysis/trace-summary.js +261 -0
- package/dist/src/analysis/trace-summary.js.map +1 -0
- package/dist/src/commands/agents-commands.d.ts +24 -0
- package/dist/src/commands/agents-commands.d.ts.map +1 -0
- package/dist/src/commands/agents-commands.js +284 -0
- package/dist/src/commands/agents-commands.js.map +1 -0
- package/dist/src/commands/handler.d.ts.map +1 -1
- package/dist/src/commands/handler.js +329 -21
- package/dist/src/commands/handler.js.map +1 -1
- package/dist/src/commands/init-commands.d.ts +35 -0
- package/dist/src/commands/init-commands.d.ts.map +1 -0
- package/dist/src/commands/init-commands.js +187 -0
- package/dist/src/commands/init-commands.js.map +1 -0
- package/dist/src/commands/skills-commands.d.ts +26 -0
- package/dist/src/commands/skills-commands.d.ts.map +1 -0
- package/dist/src/commands/skills-commands.js +309 -0
- package/dist/src/commands/skills-commands.js.map +1 -0
- package/dist/src/commands/types.d.ts +13 -2
- package/dist/src/commands/types.d.ts.map +1 -1
- package/dist/src/config.d.ts +3 -0
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js.map +1 -1
- package/dist/src/defaults.d.ts +31 -2
- package/dist/src/defaults.d.ts.map +1 -1
- package/dist/src/defaults.js +69 -2
- package/dist/src/defaults.js.map +1 -1
- package/dist/src/errors/index.d.ts +233 -0
- package/dist/src/errors/index.d.ts.map +1 -0
- package/dist/src/errors/index.js +427 -0
- package/dist/src/errors/index.js.map +1 -0
- package/dist/src/integrations/agent-registry.d.ts +68 -2
- package/dist/src/integrations/agent-registry.d.ts.map +1 -1
- package/dist/src/integrations/agent-registry.js +230 -23
- package/dist/src/integrations/agent-registry.js.map +1 -1
- package/dist/src/integrations/auto-compaction.d.ts +33 -0
- package/dist/src/integrations/auto-compaction.d.ts.map +1 -1
- package/dist/src/integrations/auto-compaction.js +47 -3
- package/dist/src/integrations/auto-compaction.js.map +1 -1
- package/dist/src/integrations/cancellation.d.ts +5 -0
- package/dist/src/integrations/cancellation.d.ts.map +1 -1
- package/dist/src/integrations/cancellation.js +7 -0
- package/dist/src/integrations/cancellation.js.map +1 -1
- package/dist/src/integrations/capabilities.d.ts +160 -0
- package/dist/src/integrations/capabilities.d.ts.map +1 -0
- package/dist/src/integrations/capabilities.js +426 -0
- package/dist/src/integrations/capabilities.js.map +1 -0
- package/dist/src/integrations/context-engineering.d.ts +6 -1
- package/dist/src/integrations/context-engineering.d.ts.map +1 -1
- package/dist/src/integrations/context-engineering.js +7 -0
- package/dist/src/integrations/context-engineering.js.map +1 -1
- package/dist/src/integrations/dead-letter-queue.d.ts +208 -0
- package/dist/src/integrations/dead-letter-queue.d.ts.map +1 -0
- package/dist/src/integrations/dead-letter-queue.js +458 -0
- package/dist/src/integrations/dead-letter-queue.js.map +1 -0
- package/dist/src/integrations/health-check.d.ts +218 -0
- package/dist/src/integrations/health-check.d.ts.map +1 -0
- package/dist/src/integrations/health-check.js +400 -0
- package/dist/src/integrations/health-check.js.map +1 -0
- package/dist/src/integrations/index.d.ts +11 -2
- package/dist/src/integrations/index.d.ts.map +1 -1
- package/dist/src/integrations/index.js +19 -2
- package/dist/src/integrations/index.js.map +1 -1
- package/dist/src/integrations/mcp-client.d.ts +9 -0
- package/dist/src/integrations/mcp-client.d.ts.map +1 -1
- package/dist/src/integrations/mcp-client.js +49 -7
- package/dist/src/integrations/mcp-client.js.map +1 -1
- package/dist/src/integrations/openrouter-pricing.d.ts +28 -3
- package/dist/src/integrations/openrouter-pricing.d.ts.map +1 -1
- package/dist/src/integrations/openrouter-pricing.js +57 -16
- package/dist/src/integrations/openrouter-pricing.js.map +1 -1
- package/dist/src/integrations/retry.d.ts +131 -0
- package/dist/src/integrations/retry.d.ts.map +1 -0
- package/dist/src/integrations/retry.js +233 -0
- package/dist/src/integrations/retry.js.map +1 -0
- package/dist/src/integrations/skill-executor.d.ts +113 -0
- package/dist/src/integrations/skill-executor.d.ts.map +1 -0
- package/dist/src/integrations/skill-executor.js +270 -0
- package/dist/src/integrations/skill-executor.js.map +1 -0
- package/dist/src/integrations/skills.d.ts +98 -7
- package/dist/src/integrations/skills.d.ts.map +1 -1
- package/dist/src/integrations/skills.js +210 -11
- package/dist/src/integrations/skills.js.map +1 -1
- package/dist/src/integrations/sqlite-store.d.ts +42 -0
- package/dist/src/integrations/sqlite-store.d.ts.map +1 -1
- package/dist/src/integrations/sqlite-store.js +111 -0
- package/dist/src/integrations/sqlite-store.js.map +1 -1
- package/dist/src/main.js +88 -7
- package/dist/src/main.js.map +1 -1
- package/dist/src/modes/repl.d.ts.map +1 -1
- package/dist/src/modes/repl.js +37 -1
- package/dist/src/modes/repl.js.map +1 -1
- package/dist/src/modes/tui.d.ts.map +1 -1
- package/dist/src/modes/tui.js +46 -5
- package/dist/src/modes/tui.js.map +1 -1
- package/dist/src/modes.d.ts.map +1 -1
- package/dist/src/modes.js +10 -3
- package/dist/src/modes.js.map +1 -1
- package/dist/src/persistence/schema.d.ts +4 -0
- package/dist/src/persistence/schema.d.ts.map +1 -1
- package/dist/src/persistence/schema.js +49 -0
- package/dist/src/persistence/schema.js.map +1 -1
- package/dist/src/providers/adapters/anthropic.d.ts +24 -2
- package/dist/src/providers/adapters/anthropic.d.ts.map +1 -1
- package/dist/src/providers/adapters/anthropic.js +184 -0
- package/dist/src/providers/adapters/anthropic.js.map +1 -1
- package/dist/src/tools/bash.d.ts.map +1 -1
- package/dist/src/tools/bash.js +7 -4
- package/dist/src/tools/bash.js.map +1 -1
- package/dist/src/tools/file.d.ts.map +1 -1
- package/dist/src/tools/file.js +31 -10
- package/dist/src/tools/file.js.map +1 -1
- package/dist/src/tools/permission.d.ts +12 -0
- package/dist/src/tools/permission.d.ts.map +1 -1
- package/dist/src/tools/permission.js +136 -0
- package/dist/src/tools/permission.js.map +1 -1
- package/dist/src/tools/registry.d.ts +23 -1
- package/dist/src/tools/registry.d.ts.map +1 -1
- package/dist/src/tools/registry.js +77 -17
- package/dist/src/tools/registry.js.map +1 -1
- package/dist/src/tools/standard.d.ts.map +1 -1
- package/dist/src/tools/standard.js +8 -0
- package/dist/src/tools/standard.js.map +1 -1
- package/dist/src/tools/types.d.ts +20 -1
- package/dist/src/tools/types.d.ts.map +1 -1
- package/dist/src/tools/types.js.map +1 -1
- package/dist/src/tracing/trace-collector.d.ts +198 -2
- package/dist/src/tracing/trace-collector.d.ts.map +1 -1
- package/dist/src/tracing/trace-collector.js +315 -3
- package/dist/src/tracing/trace-collector.js.map +1 -1
- package/dist/src/tracing/types.d.ts +470 -2
- package/dist/src/tracing/types.d.ts.map +1 -1
- package/dist/src/tracing/types.js +25 -0
- package/dist/src/tracing/types.js.map +1 -1
- package/dist/src/tui/app.d.ts.map +1 -1
- package/dist/src/tui/app.js +292 -18
- package/dist/src/tui/app.js.map +1 -1
- package/dist/src/tui/index.d.ts +1 -0
- package/dist/src/tui/index.d.ts.map +1 -1
- package/dist/src/tui/index.js +2 -0
- package/dist/src/tui/index.js.map +1 -1
- package/dist/src/tui/transparency-aggregator.d.ts +100 -0
- package/dist/src/tui/transparency-aggregator.d.ts.map +1 -0
- package/dist/src/tui/transparency-aggregator.js +234 -0
- package/dist/src/tui/transparency-aggregator.js.map +1 -0
- package/dist/src/types.d.ts +129 -0
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +6 -3
- package/dist/src/hello.d.ts +0 -2
- package/dist/src/hello.d.ts.map +0 -1
- package/dist/src/hello.js +0 -4
- package/dist/src/hello.js.map +0 -1
- package/dist/src/test-sqlite.d.ts +0 -2
- package/dist/src/test-sqlite.d.ts.map +0 -1
- package/dist/src/test-sqlite.js +0 -114
- package/dist/src/test-sqlite.js.map +0 -1
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill Executor
|
|
3
|
+
*
|
|
4
|
+
* Handles invocation of skills with argument parsing and template substitution.
|
|
5
|
+
* Skills can be invoked like commands: /review --file src/main.ts --focus security
|
|
6
|
+
*/
|
|
7
|
+
// =============================================================================
|
|
8
|
+
// SKILL EXECUTOR
|
|
9
|
+
// =============================================================================
|
|
10
|
+
/**
|
|
11
|
+
* Executes invokable skills with argument parsing and template substitution.
|
|
12
|
+
*/
|
|
13
|
+
export class SkillExecutor {
|
|
14
|
+
skillManager;
|
|
15
|
+
eventListeners = new Set();
|
|
16
|
+
constructor(skillManager) {
|
|
17
|
+
this.skillManager = skillManager;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Check if an input string is a potential skill invocation.
|
|
21
|
+
* Returns the skill name if it matches, null otherwise.
|
|
22
|
+
*/
|
|
23
|
+
isSkillInvocation(input) {
|
|
24
|
+
if (!input.startsWith('/'))
|
|
25
|
+
return null;
|
|
26
|
+
const parts = input.split(/\s+/);
|
|
27
|
+
const cmdName = parts[0].slice(1); // Remove leading /
|
|
28
|
+
const skill = this.skillManager.getSkill(cmdName);
|
|
29
|
+
if (skill && skill.invokable) {
|
|
30
|
+
return cmdName;
|
|
31
|
+
}
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Parse command-line style arguments.
|
|
36
|
+
*/
|
|
37
|
+
parseArguments(skill, rawArgs) {
|
|
38
|
+
const result = {
|
|
39
|
+
named: {},
|
|
40
|
+
positional: [],
|
|
41
|
+
errors: [],
|
|
42
|
+
};
|
|
43
|
+
const argDefs = skill.arguments || [];
|
|
44
|
+
// Build alias map
|
|
45
|
+
const aliasMap = new Map();
|
|
46
|
+
for (const arg of argDefs) {
|
|
47
|
+
aliasMap.set(`--${arg.name}`, arg);
|
|
48
|
+
if (arg.aliases) {
|
|
49
|
+
for (const alias of arg.aliases) {
|
|
50
|
+
aliasMap.set(alias, arg);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
// Parse arguments
|
|
55
|
+
let i = 0;
|
|
56
|
+
while (i < rawArgs.length) {
|
|
57
|
+
const token = rawArgs[i];
|
|
58
|
+
if (token.startsWith('-')) {
|
|
59
|
+
// Check for --flag=value syntax
|
|
60
|
+
const eqIndex = token.indexOf('=');
|
|
61
|
+
let key;
|
|
62
|
+
let value;
|
|
63
|
+
if (eqIndex !== -1) {
|
|
64
|
+
key = token.slice(0, eqIndex);
|
|
65
|
+
value = token.slice(eqIndex + 1);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
key = token;
|
|
69
|
+
}
|
|
70
|
+
const argDef = aliasMap.get(key);
|
|
71
|
+
if (argDef) {
|
|
72
|
+
// Get value
|
|
73
|
+
if (argDef.type === 'boolean') {
|
|
74
|
+
result.named[argDef.name] = value !== undefined ? value === 'true' : true;
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
if (value === undefined) {
|
|
78
|
+
i++;
|
|
79
|
+
if (i < rawArgs.length && !rawArgs[i].startsWith('-')) {
|
|
80
|
+
value = rawArgs[i];
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
result.errors.push(`Missing value for argument: ${key}`);
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
// Type conversion
|
|
88
|
+
if (argDef.type === 'number') {
|
|
89
|
+
const num = parseFloat(value);
|
|
90
|
+
if (isNaN(num)) {
|
|
91
|
+
result.errors.push(`Invalid number for ${argDef.name}: ${value}`);
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
result.named[argDef.name] = num;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
result.named[argDef.name] = value;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
// Unknown argument - treat as positional? Or error?
|
|
104
|
+
result.errors.push(`Unknown argument: ${key}`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
result.positional.push(token);
|
|
109
|
+
}
|
|
110
|
+
i++;
|
|
111
|
+
}
|
|
112
|
+
// Apply defaults
|
|
113
|
+
for (const arg of argDefs) {
|
|
114
|
+
if (result.named[arg.name] === undefined && arg.default !== undefined) {
|
|
115
|
+
result.named[arg.name] = arg.default;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
// Check required arguments
|
|
119
|
+
for (const arg of argDefs) {
|
|
120
|
+
if (arg.required && result.named[arg.name] === undefined) {
|
|
121
|
+
result.errors.push(`Missing required argument: --${arg.name}`);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return result;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Substitute template variables in skill content.
|
|
128
|
+
* Variables are in the form {{name}} or {{name|default}}.
|
|
129
|
+
*/
|
|
130
|
+
substituteTemplate(content, args) {
|
|
131
|
+
return content.replace(/\{\{(\w+)(?:\|([^}]*))?\}\}/g, (match, name, defaultVal) => {
|
|
132
|
+
if (args.named[name] !== undefined) {
|
|
133
|
+
return String(args.named[name]);
|
|
134
|
+
}
|
|
135
|
+
if (defaultVal !== undefined) {
|
|
136
|
+
return defaultVal;
|
|
137
|
+
}
|
|
138
|
+
return match; // Keep original if no value
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Execute a skill by name with arguments.
|
|
143
|
+
*/
|
|
144
|
+
async executeSkill(skillName, rawArgs, ctx) {
|
|
145
|
+
this.emit({ type: 'skill.invoke.start', skillName, args: rawArgs });
|
|
146
|
+
const skill = this.skillManager.getSkill(skillName);
|
|
147
|
+
if (!skill) {
|
|
148
|
+
const error = `Skill not found: ${skillName}`;
|
|
149
|
+
this.emit({ type: 'skill.invoke.error', skillName, error });
|
|
150
|
+
return { success: false, output: '', error };
|
|
151
|
+
}
|
|
152
|
+
if (!skill.invokable) {
|
|
153
|
+
const error = `Skill "${skillName}" is not invokable. It can only be activated passively.`;
|
|
154
|
+
this.emit({ type: 'skill.invoke.error', skillName, error });
|
|
155
|
+
return { success: false, output: '', error };
|
|
156
|
+
}
|
|
157
|
+
// Parse arguments
|
|
158
|
+
const parsed = this.parseArguments(skill, rawArgs);
|
|
159
|
+
this.emit({ type: 'skill.invoke.parsed', skillName, parsed });
|
|
160
|
+
if (parsed.errors.length > 0) {
|
|
161
|
+
const error = `Argument errors:\n${parsed.errors.map(e => ` - ${e}`).join('\n')}\n\n${this.formatSkillHelp(skill)}`;
|
|
162
|
+
this.emit({ type: 'skill.invoke.error', skillName, error });
|
|
163
|
+
return { success: false, output: '', error };
|
|
164
|
+
}
|
|
165
|
+
// Add positional args as a special variable
|
|
166
|
+
if (parsed.positional.length > 0) {
|
|
167
|
+
parsed.named['_positional'] = parsed.positional.join(' ');
|
|
168
|
+
parsed.named['_args'] = parsed.positional;
|
|
169
|
+
}
|
|
170
|
+
// Add context variables
|
|
171
|
+
parsed.named['_cwd'] = ctx.cwd;
|
|
172
|
+
if (ctx.sessionId) {
|
|
173
|
+
parsed.named['_sessionId'] = ctx.sessionId;
|
|
174
|
+
}
|
|
175
|
+
// Substitute template variables in content
|
|
176
|
+
const processedContent = this.substituteTemplate(skill.content, parsed);
|
|
177
|
+
// For prompt-injection mode, create the injected prompt
|
|
178
|
+
if (skill.executionMode === 'prompt-injection' || !skill.executionMode) {
|
|
179
|
+
const injectedPrompt = this.buildInjectedPrompt(skill, processedContent, parsed);
|
|
180
|
+
const result = {
|
|
181
|
+
success: true,
|
|
182
|
+
output: `Skill "${skillName}" activated with injected prompt.`,
|
|
183
|
+
injectedPrompt,
|
|
184
|
+
};
|
|
185
|
+
this.emit({ type: 'skill.invoke.complete', skillName, result });
|
|
186
|
+
return result;
|
|
187
|
+
}
|
|
188
|
+
// Workflow mode would require running multiple steps
|
|
189
|
+
// For now, treat it like prompt-injection
|
|
190
|
+
const injectedPrompt = this.buildInjectedPrompt(skill, processedContent, parsed);
|
|
191
|
+
const result = {
|
|
192
|
+
success: true,
|
|
193
|
+
output: `Skill "${skillName}" activated in workflow mode.`,
|
|
194
|
+
injectedPrompt,
|
|
195
|
+
};
|
|
196
|
+
this.emit({ type: 'skill.invoke.complete', skillName, result });
|
|
197
|
+
return result;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Build the prompt to inject based on skill content and arguments.
|
|
201
|
+
*/
|
|
202
|
+
buildInjectedPrompt(skill, content, args) {
|
|
203
|
+
const parts = [];
|
|
204
|
+
parts.push(`<skill name="${skill.name}">`);
|
|
205
|
+
parts.push(content);
|
|
206
|
+
// Add argument context if any were provided
|
|
207
|
+
const namedArgs = Object.entries(args.named)
|
|
208
|
+
.filter(([k]) => !k.startsWith('_'))
|
|
209
|
+
.map(([k, v]) => ` ${k}: ${JSON.stringify(v)}`)
|
|
210
|
+
.join('\n');
|
|
211
|
+
if (namedArgs) {
|
|
212
|
+
parts.push(`\n<arguments>\n${namedArgs}\n</arguments>`);
|
|
213
|
+
}
|
|
214
|
+
parts.push('</skill>');
|
|
215
|
+
return parts.join('\n');
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Format help text for a skill.
|
|
219
|
+
*/
|
|
220
|
+
formatSkillHelp(skill) {
|
|
221
|
+
const lines = [
|
|
222
|
+
`Usage: /${skill.name} [options]`,
|
|
223
|
+
'',
|
|
224
|
+
skill.description,
|
|
225
|
+
];
|
|
226
|
+
if (skill.arguments && skill.arguments.length > 0) {
|
|
227
|
+
lines.push('', 'Options:');
|
|
228
|
+
for (const arg of skill.arguments) {
|
|
229
|
+
const aliases = arg.aliases ? arg.aliases.join(', ') + ', ' : '';
|
|
230
|
+
const required = arg.required ? ' (required)' : '';
|
|
231
|
+
const defaultVal = arg.default !== undefined ? ` [default: ${arg.default}]` : '';
|
|
232
|
+
lines.push(` ${aliases}--${arg.name} ${arg.description}${required}${defaultVal}`);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
return lines.join('\n');
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Get all invokable skills.
|
|
239
|
+
*/
|
|
240
|
+
getInvokableSkills() {
|
|
241
|
+
return this.skillManager.getAllSkills().filter(s => s.invokable);
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Subscribe to executor events.
|
|
245
|
+
*/
|
|
246
|
+
subscribe(listener) {
|
|
247
|
+
this.eventListeners.add(listener);
|
|
248
|
+
return () => this.eventListeners.delete(listener);
|
|
249
|
+
}
|
|
250
|
+
emit(event) {
|
|
251
|
+
for (const listener of this.eventListeners) {
|
|
252
|
+
try {
|
|
253
|
+
listener(event);
|
|
254
|
+
}
|
|
255
|
+
catch {
|
|
256
|
+
// Ignore listener errors
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
// =============================================================================
|
|
262
|
+
// FACTORY FUNCTIONS
|
|
263
|
+
// =============================================================================
|
|
264
|
+
/**
|
|
265
|
+
* Create a skill executor.
|
|
266
|
+
*/
|
|
267
|
+
export function createSkillExecutor(skillManager) {
|
|
268
|
+
return new SkillExecutor(skillManager);
|
|
269
|
+
}
|
|
270
|
+
//# sourceMappingURL=skill-executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-executor.js","sourceRoot":"","sources":["../../../src/integrations/skill-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,16 +5,38 @@
|
|
|
5
5
|
* Skills are defined as markdown files with YAML frontmatter containing
|
|
6
6
|
* metadata like name, description, and required tools.
|
|
7
7
|
*
|
|
8
|
-
* Directory structure:
|
|
9
|
-
* - Built-in skills:
|
|
10
|
-
* - User skills:
|
|
11
|
-
* -
|
|
8
|
+
* Directory structure (priority: later overrides earlier):
|
|
9
|
+
* - Built-in skills: attocode/skills/
|
|
10
|
+
* - User skills: ~/.attocode/skills/
|
|
11
|
+
* - Project skills: .attocode/skills/
|
|
12
|
+
* - Legacy paths (.agent/) supported for backward compatibility
|
|
12
13
|
*
|
|
13
14
|
* Usage:
|
|
14
|
-
* const skills = createSkillManager({ directories:
|
|
15
|
+
* const skills = createSkillManager({ directories: getDefaultSkillDirectories() });
|
|
15
16
|
* await skills.loadSkills();
|
|
16
17
|
* await skills.activateSkill('code-review', context);
|
|
17
18
|
*/
|
|
19
|
+
/**
|
|
20
|
+
* Skill argument definition for invokable skills.
|
|
21
|
+
*/
|
|
22
|
+
export interface SkillArgument {
|
|
23
|
+
/** Argument name (used in templates as {{name}}) */
|
|
24
|
+
name: string;
|
|
25
|
+
/** Human-readable description shown in help */
|
|
26
|
+
description: string;
|
|
27
|
+
/** Argument type for validation */
|
|
28
|
+
type: 'string' | 'boolean' | 'file' | 'number';
|
|
29
|
+
/** Whether this argument is required */
|
|
30
|
+
required?: boolean;
|
|
31
|
+
/** Default value if not provided */
|
|
32
|
+
default?: unknown;
|
|
33
|
+
/** CLI aliases (e.g., ['-f', '--file']) */
|
|
34
|
+
aliases?: string[];
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Skill source type for display and management.
|
|
38
|
+
*/
|
|
39
|
+
export type SkillSourceType = 'builtin' | 'user' | 'project' | 'legacy';
|
|
18
40
|
/**
|
|
19
41
|
* Skill definition from SKILL.md or skill.md file.
|
|
20
42
|
*/
|
|
@@ -29,6 +51,8 @@ export interface Skill {
|
|
|
29
51
|
content: string;
|
|
30
52
|
/** Source file path */
|
|
31
53
|
sourcePath: string;
|
|
54
|
+
/** Source type (builtin, user, project, legacy) */
|
|
55
|
+
sourceType?: SkillSourceType;
|
|
32
56
|
/** Optional version */
|
|
33
57
|
version?: string;
|
|
34
58
|
/** Optional author */
|
|
@@ -39,6 +63,12 @@ export interface Skill {
|
|
|
39
63
|
active?: boolean;
|
|
40
64
|
/** When to auto-activate this skill */
|
|
41
65
|
triggers?: SkillTrigger[];
|
|
66
|
+
/** Whether this skill can be invoked via /skillname command */
|
|
67
|
+
invokable?: boolean;
|
|
68
|
+
/** Arguments for invokable skills */
|
|
69
|
+
arguments?: SkillArgument[];
|
|
70
|
+
/** Execution mode: prompt-injection (default) or workflow (multi-step) */
|
|
71
|
+
executionMode?: 'prompt-injection' | 'workflow';
|
|
42
72
|
}
|
|
43
73
|
/**
|
|
44
74
|
* Skill trigger definition.
|
|
@@ -82,9 +112,29 @@ export type SkillEvent = {
|
|
|
82
112
|
};
|
|
83
113
|
export type SkillEventListener = (event: SkillEvent) => void;
|
|
84
114
|
/**
|
|
85
|
-
* Default skill directories
|
|
115
|
+
* Default skill directories with priority hierarchy:
|
|
116
|
+
* built-in < ~/.attocode/ < .attocode/ (later entries override earlier)
|
|
117
|
+
*
|
|
118
|
+
* Legacy paths (.agent/) are included for backward compatibility.
|
|
86
119
|
*/
|
|
87
120
|
export declare function getDefaultSkillDirectories(): string[];
|
|
121
|
+
/**
|
|
122
|
+
* Get the directory where new skills should be created.
|
|
123
|
+
* Prefers .attocode/skills/ in the project root.
|
|
124
|
+
*/
|
|
125
|
+
export declare function getSkillCreationDirectory(): string;
|
|
126
|
+
/**
|
|
127
|
+
* Get the user-level skill directory.
|
|
128
|
+
*/
|
|
129
|
+
export declare function getUserSkillDirectory(): string;
|
|
130
|
+
/**
|
|
131
|
+
* Determine the source type of a skill based on its path.
|
|
132
|
+
*/
|
|
133
|
+
export declare function getSkillSourceType(skillPath: string): SkillSourceType;
|
|
134
|
+
/**
|
|
135
|
+
* Get a human-readable location string for a skill.
|
|
136
|
+
*/
|
|
137
|
+
export declare function getSkillLocationDisplay(skill: Skill): string;
|
|
88
138
|
/**
|
|
89
139
|
* Manages skill discovery, loading, and activation.
|
|
90
140
|
*/
|
|
@@ -165,7 +215,48 @@ export declare function createSkillManager(config?: SkillsConfig): SkillManager;
|
|
|
165
215
|
*/
|
|
166
216
|
export declare function formatSkillList(skills: Skill[]): string;
|
|
167
217
|
/**
|
|
168
|
-
* Create a sample skill file content.
|
|
218
|
+
* Create a sample skill file content (basic).
|
|
169
219
|
*/
|
|
170
220
|
export declare function getSampleSkillContent(name: string, description: string): string;
|
|
221
|
+
/**
|
|
222
|
+
* Get a skill scaffold template with all options.
|
|
223
|
+
*/
|
|
224
|
+
export declare function getSkillScaffold(name: string, options?: {
|
|
225
|
+
invokable?: boolean;
|
|
226
|
+
description?: string;
|
|
227
|
+
args?: Array<{
|
|
228
|
+
name: string;
|
|
229
|
+
description: string;
|
|
230
|
+
type?: string;
|
|
231
|
+
required?: boolean;
|
|
232
|
+
}>;
|
|
233
|
+
triggers?: string[];
|
|
234
|
+
}): string;
|
|
235
|
+
/**
|
|
236
|
+
* Result of creating a skill scaffold.
|
|
237
|
+
*/
|
|
238
|
+
export interface SkillScaffoldResult {
|
|
239
|
+
success: boolean;
|
|
240
|
+
path?: string;
|
|
241
|
+
error?: string;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Create a skill scaffold in the .attocode/skills/ directory.
|
|
245
|
+
*/
|
|
246
|
+
export declare function createSkillScaffold(name: string, options?: {
|
|
247
|
+
invokable?: boolean;
|
|
248
|
+
description?: string;
|
|
249
|
+
args?: Array<{
|
|
250
|
+
name: string;
|
|
251
|
+
description: string;
|
|
252
|
+
type?: string;
|
|
253
|
+
required?: boolean;
|
|
254
|
+
}>;
|
|
255
|
+
triggers?: string[];
|
|
256
|
+
userLevel?: boolean;
|
|
257
|
+
}): Promise<SkillScaffoldResult>;
|
|
258
|
+
/**
|
|
259
|
+
* Get statistics about loaded skills by source.
|
|
260
|
+
*/
|
|
261
|
+
export declare function getSkillStats(skills: Skill[]): Record<SkillSourceType, number>;
|
|
171
262
|
//# sourceMappingURL=skills.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../../src/integrations/skills.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../../src/integrations/skills.ts"],"names":[],"mappings":"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"}
|