attocode 0.1.0 → 0.1.3
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 +64 -1
- package/README.md +138 -10
- package/dist/src/agent.d.ts +75 -1
- package/dist/src/agent.d.ts.map +1 -1
- package/dist/src/agent.js +700 -25
- package/dist/src/agent.js.map +1 -1
- 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 +135 -19
- 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/defaults.d.ts +29 -1
- package/dist/src/defaults.d.ts.map +1 -1
- package/dist/src/defaults.js +66 -0
- package/dist/src/defaults.js.map +1 -1
- 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/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/index.d.ts +12 -2
- package/dist/src/integrations/index.d.ts.map +1 -1
- package/dist/src/integrations/index.js +22 -2
- package/dist/src/integrations/index.js.map +1 -1
- package/dist/src/integrations/interactive-planning.d.ts +322 -0
- package/dist/src/integrations/interactive-planning.d.ts.map +1 -0
- package/dist/src/integrations/interactive-planning.js +655 -0
- package/dist/src/integrations/interactive-planning.js.map +1 -0
- package/dist/src/integrations/learning-store.d.ts +291 -0
- package/dist/src/integrations/learning-store.d.ts.map +1 -0
- package/dist/src/integrations/learning-store.js +640 -0
- package/dist/src/integrations/learning-store.js.map +1 -0
- package/dist/src/integrations/pending-plan.d.ts.map +1 -1
- package/dist/src/integrations/pending-plan.js +69 -10
- package/dist/src/integrations/pending-plan.js.map +1 -1
- 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/providers/circuit-breaker.d.ts +180 -0
- package/dist/src/providers/circuit-breaker.d.ts.map +1 -0
- package/dist/src/providers/circuit-breaker.js +349 -0
- package/dist/src/providers/circuit-breaker.js.map +1 -0
- package/dist/src/providers/fallback-chain.d.ts +194 -0
- package/dist/src/providers/fallback-chain.d.ts.map +1 -0
- package/dist/src/providers/fallback-chain.js +363 -0
- package/dist/src/providers/fallback-chain.js.map +1 -0
- package/dist/src/providers/llm-resilience.d.ts +126 -0
- package/dist/src/providers/llm-resilience.d.ts.map +1 -0
- package/dist/src/providers/llm-resilience.js +261 -0
- package/dist/src/providers/llm-resilience.js.map +1 -0
- package/dist/src/providers/resilient-provider.d.ts +124 -0
- package/dist/src/providers/resilient-provider.d.ts.map +1 -0
- package/dist/src/providers/resilient-provider.js +242 -0
- package/dist/src/providers/resilient-provider.js.map +1 -0
- package/dist/src/tricks/recursive-context.d.ts +296 -0
- package/dist/src/tricks/recursive-context.d.ts.map +1 -0
- package/dist/src/tricks/recursive-context.js +518 -0
- package/dist/src/tricks/recursive-context.js.map +1 -0
- package/dist/src/tui/app.d.ts.map +1 -1
- package/dist/src/tui/app.js +226 -29
- package/dist/src/tui/app.js.map +1 -1
- package/dist/src/tui/components/ApprovalDialog.d.ts.map +1 -1
- package/dist/src/tui/components/ApprovalDialog.js +1 -1
- package/dist/src/tui/components/ApprovalDialog.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 +155 -0
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -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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"}
|
|
@@ -5,31 +5,106 @@
|
|
|
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
|
*/
|
|
18
|
-
import { readFile, readdir, stat } from 'fs/promises';
|
|
19
|
+
import { readFile, readdir, stat, mkdir, writeFile } from 'fs/promises';
|
|
20
|
+
import { existsSync } from 'fs';
|
|
19
21
|
import { join, basename, dirname } from 'path';
|
|
20
22
|
import { homedir } from 'os';
|
|
23
|
+
import { fileURLToPath } from 'url';
|
|
24
|
+
// ES Module __dirname equivalent
|
|
25
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
26
|
+
const __dirname = dirname(__filename);
|
|
21
27
|
// =============================================================================
|
|
22
28
|
// DEFAULT DIRECTORIES
|
|
23
29
|
// =============================================================================
|
|
24
30
|
/**
|
|
25
|
-
* Default skill directories
|
|
31
|
+
* Default skill directories with priority hierarchy:
|
|
32
|
+
* built-in < ~/.attocode/ < .attocode/ (later entries override earlier)
|
|
33
|
+
*
|
|
34
|
+
* Legacy paths (.agent/) are included for backward compatibility.
|
|
26
35
|
*/
|
|
27
36
|
export function getDefaultSkillDirectories() {
|
|
37
|
+
const homeDir = homedir();
|
|
28
38
|
return [
|
|
29
|
-
|
|
30
|
-
join(
|
|
39
|
+
// Built-in skills (lowest priority) - relative to this file's location
|
|
40
|
+
join(__dirname, '../../skills'),
|
|
41
|
+
// User-level skills (medium priority)
|
|
42
|
+
join(homeDir, '.attocode', 'skills'),
|
|
43
|
+
// Legacy user path (backward compat)
|
|
44
|
+
join(homeDir, '.agent', 'skills'),
|
|
45
|
+
// Project-level skills (highest priority)
|
|
46
|
+
join(process.cwd(), '.attocode', 'skills'),
|
|
47
|
+
// Legacy project path (backward compat)
|
|
48
|
+
join(process.cwd(), '.agent', 'skills'),
|
|
31
49
|
];
|
|
32
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* Get the directory where new skills should be created.
|
|
53
|
+
* Prefers .attocode/skills/ in the project root.
|
|
54
|
+
*/
|
|
55
|
+
export function getSkillCreationDirectory() {
|
|
56
|
+
return join(process.cwd(), '.attocode', 'skills');
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Get the user-level skill directory.
|
|
60
|
+
*/
|
|
61
|
+
export function getUserSkillDirectory() {
|
|
62
|
+
return join(homedir(), '.attocode', 'skills');
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Determine the source type of a skill based on its path.
|
|
66
|
+
*/
|
|
67
|
+
export function getSkillSourceType(skillPath) {
|
|
68
|
+
const homeDir = homedir();
|
|
69
|
+
const cwd = process.cwd();
|
|
70
|
+
// Check for built-in (in the package's skills/ directory)
|
|
71
|
+
if (skillPath.includes(join(__dirname, '../../skills'))) {
|
|
72
|
+
return 'builtin';
|
|
73
|
+
}
|
|
74
|
+
// Check for project-level (.attocode/skills/)
|
|
75
|
+
if (skillPath.startsWith(join(cwd, '.attocode', 'skills'))) {
|
|
76
|
+
return 'project';
|
|
77
|
+
}
|
|
78
|
+
// Check for user-level (~/.attocode/skills/)
|
|
79
|
+
if (skillPath.startsWith(join(homeDir, '.attocode', 'skills'))) {
|
|
80
|
+
return 'user';
|
|
81
|
+
}
|
|
82
|
+
// Legacy paths (.agent/)
|
|
83
|
+
if (skillPath.includes('.agent')) {
|
|
84
|
+
return 'legacy';
|
|
85
|
+
}
|
|
86
|
+
return 'project'; // Default to project
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Get a human-readable location string for a skill.
|
|
90
|
+
*/
|
|
91
|
+
export function getSkillLocationDisplay(skill) {
|
|
92
|
+
const sourceType = skill.sourceType || getSkillSourceType(skill.sourcePath);
|
|
93
|
+
switch (sourceType) {
|
|
94
|
+
case 'builtin':
|
|
95
|
+
return 'built-in';
|
|
96
|
+
case 'user':
|
|
97
|
+
return '~/.attocode/skills/';
|
|
98
|
+
case 'project':
|
|
99
|
+
return '.attocode/skills/';
|
|
100
|
+
case 'legacy':
|
|
101
|
+
return skill.sourcePath.includes(homedir())
|
|
102
|
+
? '~/.agent/skills/ (legacy)'
|
|
103
|
+
: '.agent/skills/ (legacy)';
|
|
104
|
+
default:
|
|
105
|
+
return skill.sourcePath;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
33
108
|
// =============================================================================
|
|
34
109
|
// YAML FRONTMATTER PARSER
|
|
35
110
|
// =============================================================================
|
|
@@ -202,16 +277,35 @@ export class SkillManager {
|
|
|
202
277
|
return t;
|
|
203
278
|
});
|
|
204
279
|
}
|
|
280
|
+
// Extract arguments for invokable skills
|
|
281
|
+
let skillArguments;
|
|
282
|
+
if (Array.isArray(frontmatter.arguments)) {
|
|
283
|
+
skillArguments = frontmatter.arguments.map((arg) => {
|
|
284
|
+
const a = arg;
|
|
285
|
+
return {
|
|
286
|
+
name: String(a.name || ''),
|
|
287
|
+
description: String(a.description || ''),
|
|
288
|
+
type: a.type || 'string',
|
|
289
|
+
required: Boolean(a.required),
|
|
290
|
+
default: a.default,
|
|
291
|
+
aliases: Array.isArray(a.aliases) ? a.aliases : undefined,
|
|
292
|
+
};
|
|
293
|
+
});
|
|
294
|
+
}
|
|
205
295
|
const skill = {
|
|
206
296
|
name,
|
|
207
297
|
description: frontmatter.description || body.split('\n')[0]?.replace(/^#\s*/, '') || name,
|
|
208
298
|
tools,
|
|
209
299
|
content: body,
|
|
210
300
|
sourcePath: filePath,
|
|
301
|
+
sourceType: getSkillSourceType(filePath),
|
|
211
302
|
version: frontmatter.version,
|
|
212
303
|
author: frontmatter.author,
|
|
213
304
|
tags: frontmatter.tags,
|
|
214
305
|
triggers,
|
|
306
|
+
invokable: frontmatter.invokable === true,
|
|
307
|
+
arguments: skillArguments,
|
|
308
|
+
executionMode: frontmatter.executionMode || 'prompt-injection',
|
|
215
309
|
};
|
|
216
310
|
return skill;
|
|
217
311
|
}
|
|
@@ -366,13 +460,15 @@ export function formatSkillList(skills) {
|
|
|
366
460
|
const lines = ['Available skills:'];
|
|
367
461
|
for (const skill of skills) {
|
|
368
462
|
const active = skill.active ? ' (active)' : '';
|
|
463
|
+
const invokable = skill.invokable ? ' [/]' : '';
|
|
369
464
|
const tools = skill.tools.length > 0 ? ` [${skill.tools.join(', ')}]` : '';
|
|
370
|
-
lines.push(` ${skill.name}${active} - ${skill.description}${tools}`);
|
|
465
|
+
lines.push(` ${invokable ? '/' : ' '}${skill.name}${active} - ${skill.description}${tools}`);
|
|
371
466
|
}
|
|
467
|
+
lines.push('\n Legend: / = invokable skill (use /skillname to invoke)');
|
|
372
468
|
return lines.join('\n');
|
|
373
469
|
}
|
|
374
470
|
/**
|
|
375
|
-
* Create a sample skill file content.
|
|
471
|
+
* Create a sample skill file content (basic).
|
|
376
472
|
*/
|
|
377
473
|
export function getSampleSkillContent(name, description) {
|
|
378
474
|
return `---
|
|
@@ -400,4 +496,107 @@ When this skill is active:
|
|
|
400
496
|
- Provide examples when helpful
|
|
401
497
|
`;
|
|
402
498
|
}
|
|
499
|
+
/**
|
|
500
|
+
* Get a skill scaffold template with all options.
|
|
501
|
+
*/
|
|
502
|
+
export function getSkillScaffold(name, options = {}) {
|
|
503
|
+
const { invokable = true, description = '[Add description here]', args = [], triggers = [] } = options;
|
|
504
|
+
const argLines = args.length > 0
|
|
505
|
+
? `arguments:
|
|
506
|
+
${args.map(a => ` - name: ${a.name}
|
|
507
|
+
description: ${a.description}
|
|
508
|
+
type: ${a.type || 'string'}
|
|
509
|
+
required: ${a.required ?? false}`).join('\n')}`
|
|
510
|
+
: '';
|
|
511
|
+
const triggerLines = triggers.length > 0
|
|
512
|
+
? `triggers:
|
|
513
|
+
${triggers.map(t => ` - ${t}`).join('\n')}`
|
|
514
|
+
: '';
|
|
515
|
+
return `---
|
|
516
|
+
name: ${name}
|
|
517
|
+
description: ${description}
|
|
518
|
+
invokable: ${invokable}
|
|
519
|
+
${argLines}
|
|
520
|
+
${triggerLines}
|
|
521
|
+
---
|
|
522
|
+
|
|
523
|
+
# ${name}
|
|
524
|
+
|
|
525
|
+
${description}
|
|
526
|
+
|
|
527
|
+
## Instructions
|
|
528
|
+
|
|
529
|
+
[Add instructions for the agent when this skill is active]
|
|
530
|
+
|
|
531
|
+
${invokable ? `## Usage
|
|
532
|
+
|
|
533
|
+
\`\`\`
|
|
534
|
+
/${name}${args.map(a => ` --${a.name} <${a.type || 'value'}>`).join('')}
|
|
535
|
+
\`\`\`
|
|
536
|
+
` : ''}
|
|
537
|
+
## Guidelines
|
|
538
|
+
|
|
539
|
+
- Be thorough but concise
|
|
540
|
+
- Focus on the user's specific situation
|
|
541
|
+
- Provide examples when helpful
|
|
542
|
+
`;
|
|
543
|
+
}
|
|
544
|
+
/**
|
|
545
|
+
* Create a skill scaffold in the .attocode/skills/ directory.
|
|
546
|
+
*/
|
|
547
|
+
export async function createSkillScaffold(name, options = {}) {
|
|
548
|
+
try {
|
|
549
|
+
// Validate name
|
|
550
|
+
if (!/^[a-z][a-z0-9-]*$/.test(name)) {
|
|
551
|
+
return {
|
|
552
|
+
success: false,
|
|
553
|
+
error: 'Skill name must start with a letter and contain only lowercase letters, numbers, and hyphens',
|
|
554
|
+
};
|
|
555
|
+
}
|
|
556
|
+
// Determine target directory
|
|
557
|
+
const baseDir = options.userLevel
|
|
558
|
+
? getUserSkillDirectory()
|
|
559
|
+
: getSkillCreationDirectory();
|
|
560
|
+
const skillDir = join(baseDir, name);
|
|
561
|
+
const skillPath = join(skillDir, 'SKILL.md');
|
|
562
|
+
// Check if skill already exists
|
|
563
|
+
if (existsSync(skillPath)) {
|
|
564
|
+
return {
|
|
565
|
+
success: false,
|
|
566
|
+
error: `Skill "${name}" already exists at ${skillPath}`,
|
|
567
|
+
};
|
|
568
|
+
}
|
|
569
|
+
// Create directory structure
|
|
570
|
+
await mkdir(skillDir, { recursive: true });
|
|
571
|
+
// Write skill file
|
|
572
|
+
const content = getSkillScaffold(name, options);
|
|
573
|
+
await writeFile(skillPath, content, 'utf-8');
|
|
574
|
+
return {
|
|
575
|
+
success: true,
|
|
576
|
+
path: skillPath,
|
|
577
|
+
};
|
|
578
|
+
}
|
|
579
|
+
catch (error) {
|
|
580
|
+
return {
|
|
581
|
+
success: false,
|
|
582
|
+
error: error instanceof Error ? error.message : String(error),
|
|
583
|
+
};
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
/**
|
|
587
|
+
* Get statistics about loaded skills by source.
|
|
588
|
+
*/
|
|
589
|
+
export function getSkillStats(skills) {
|
|
590
|
+
const stats = {
|
|
591
|
+
builtin: 0,
|
|
592
|
+
user: 0,
|
|
593
|
+
project: 0,
|
|
594
|
+
legacy: 0,
|
|
595
|
+
};
|
|
596
|
+
for (const skill of skills) {
|
|
597
|
+
const sourceType = skill.sourceType || getSkillSourceType(skill.sourcePath);
|
|
598
|
+
stats[sourceType]++;
|
|
599
|
+
}
|
|
600
|
+
return stats;
|
|
601
|
+
}
|
|
403
602
|
//# sourceMappingURL=skills.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../../src/integrations/skills.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../../src/integrations/skills.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Circuit Breaker for LLM Providers
|
|
3
|
+
*
|
|
4
|
+
* Implements the circuit breaker pattern to prevent hammering failed services.
|
|
5
|
+
*
|
|
6
|
+
* States:
|
|
7
|
+
* - CLOSED: Normal operation, requests pass through
|
|
8
|
+
* - OPEN: Service is failing, requests are rejected immediately
|
|
9
|
+
* - HALF_OPEN: Testing if service has recovered
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* const breaker = createCircuitBreaker({
|
|
14
|
+
* failureThreshold: 5,
|
|
15
|
+
* resetTimeout: 30000,
|
|
16
|
+
* halfOpenRequests: 1,
|
|
17
|
+
* });
|
|
18
|
+
*
|
|
19
|
+
* const wrappedProvider = breaker.wrap(anthropicProvider);
|
|
20
|
+
*
|
|
21
|
+
* // Or use manually
|
|
22
|
+
* if (breaker.canRequest()) {
|
|
23
|
+
* try {
|
|
24
|
+
* const result = await provider.chat(messages);
|
|
25
|
+
* breaker.recordSuccess();
|
|
26
|
+
* return result;
|
|
27
|
+
* } catch (error) {
|
|
28
|
+
* breaker.recordFailure(error);
|
|
29
|
+
* throw error;
|
|
30
|
+
* }
|
|
31
|
+
* }
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
import type { LLMProvider } from './types.js';
|
|
35
|
+
/**
|
|
36
|
+
* Circuit breaker states.
|
|
37
|
+
*/
|
|
38
|
+
export type CircuitState = 'CLOSED' | 'OPEN' | 'HALF_OPEN';
|
|
39
|
+
/**
|
|
40
|
+
* Configuration for the circuit breaker.
|
|
41
|
+
*/
|
|
42
|
+
export interface CircuitBreakerConfig {
|
|
43
|
+
/** Number of failures before opening circuit (default: 5) */
|
|
44
|
+
failureThreshold?: number;
|
|
45
|
+
/** Time in ms before attempting to close circuit (default: 30000) */
|
|
46
|
+
resetTimeout?: number;
|
|
47
|
+
/** Number of test requests in half-open state (default: 1) */
|
|
48
|
+
halfOpenRequests?: number;
|
|
49
|
+
/** Timeout for individual requests in ms (default: undefined - no timeout) */
|
|
50
|
+
requestTimeout?: number;
|
|
51
|
+
/** Error types that should trip the breaker (default: all errors) */
|
|
52
|
+
tripOnErrors?: Array<'RATE_LIMITED' | 'SERVER_ERROR' | 'NETWORK_ERROR' | 'TIMEOUT' | 'ALL'>;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Circuit breaker metrics.
|
|
56
|
+
*/
|
|
57
|
+
export interface CircuitBreakerMetrics {
|
|
58
|
+
/** Current state */
|
|
59
|
+
state: CircuitState;
|
|
60
|
+
/** Number of consecutive failures */
|
|
61
|
+
failures: number;
|
|
62
|
+
/** Number of successful requests */
|
|
63
|
+
successes: number;
|
|
64
|
+
/** Total requests since creation */
|
|
65
|
+
totalRequests: number;
|
|
66
|
+
/** Requests rejected due to open circuit */
|
|
67
|
+
rejectedRequests: number;
|
|
68
|
+
/** Last state change timestamp */
|
|
69
|
+
lastStateChange: number;
|
|
70
|
+
/** Time until circuit attempts to close (if OPEN) */
|
|
71
|
+
resetAt?: number;
|
|
72
|
+
/** Last error message */
|
|
73
|
+
lastError?: string;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Events emitted by the circuit breaker.
|
|
77
|
+
*/
|
|
78
|
+
export type CircuitBreakerEvent = {
|
|
79
|
+
type: 'state.change';
|
|
80
|
+
from: CircuitState;
|
|
81
|
+
to: CircuitState;
|
|
82
|
+
reason: string;
|
|
83
|
+
} | {
|
|
84
|
+
type: 'request.success';
|
|
85
|
+
duration: number;
|
|
86
|
+
} | {
|
|
87
|
+
type: 'request.failure';
|
|
88
|
+
error: Error;
|
|
89
|
+
duration: number;
|
|
90
|
+
} | {
|
|
91
|
+
type: 'request.rejected';
|
|
92
|
+
reason: string;
|
|
93
|
+
};
|
|
94
|
+
export type CircuitBreakerEventListener = (event: CircuitBreakerEvent) => void;
|
|
95
|
+
/**
|
|
96
|
+
* Circuit breaker for protecting against cascading failures.
|
|
97
|
+
*/
|
|
98
|
+
export declare class CircuitBreaker {
|
|
99
|
+
private state;
|
|
100
|
+
private failures;
|
|
101
|
+
private successes;
|
|
102
|
+
private totalRequests;
|
|
103
|
+
private rejectedRequests;
|
|
104
|
+
private lastStateChange;
|
|
105
|
+
private resetAt?;
|
|
106
|
+
private lastError?;
|
|
107
|
+
private halfOpenInProgress;
|
|
108
|
+
private listeners;
|
|
109
|
+
private config;
|
|
110
|
+
constructor(config?: CircuitBreakerConfig);
|
|
111
|
+
/**
|
|
112
|
+
* Get current state.
|
|
113
|
+
*/
|
|
114
|
+
getState(): CircuitState;
|
|
115
|
+
/**
|
|
116
|
+
* Get current metrics.
|
|
117
|
+
*/
|
|
118
|
+
getMetrics(): CircuitBreakerMetrics;
|
|
119
|
+
/**
|
|
120
|
+
* Check if a request can proceed.
|
|
121
|
+
*/
|
|
122
|
+
canRequest(): boolean;
|
|
123
|
+
/**
|
|
124
|
+
* Record a successful request.
|
|
125
|
+
*/
|
|
126
|
+
recordSuccess(): void;
|
|
127
|
+
/**
|
|
128
|
+
* Record a failed request.
|
|
129
|
+
*/
|
|
130
|
+
recordFailure(error?: Error): void;
|
|
131
|
+
/**
|
|
132
|
+
* Record a rejected request (circuit was open).
|
|
133
|
+
*/
|
|
134
|
+
recordRejection(): void;
|
|
135
|
+
/**
|
|
136
|
+
* Manually reset the circuit breaker.
|
|
137
|
+
*/
|
|
138
|
+
reset(): void;
|
|
139
|
+
/**
|
|
140
|
+
* Manually trip the circuit breaker.
|
|
141
|
+
*/
|
|
142
|
+
trip(reason?: string): void;
|
|
143
|
+
/**
|
|
144
|
+
* Execute a function with circuit breaker protection.
|
|
145
|
+
*/
|
|
146
|
+
execute<T>(fn: () => Promise<T>): Promise<T>;
|
|
147
|
+
/**
|
|
148
|
+
* Wrap a provider with circuit breaker protection.
|
|
149
|
+
*/
|
|
150
|
+
wrap<T extends LLMProvider>(provider: T): T;
|
|
151
|
+
/**
|
|
152
|
+
* Subscribe to events.
|
|
153
|
+
*/
|
|
154
|
+
on(listener: CircuitBreakerEventListener): () => void;
|
|
155
|
+
private checkStateTransition;
|
|
156
|
+
private transitionTo;
|
|
157
|
+
private shouldTrip;
|
|
158
|
+
private emit;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Create a circuit breaker.
|
|
162
|
+
*/
|
|
163
|
+
export declare function createCircuitBreaker(config?: CircuitBreakerConfig): CircuitBreaker;
|
|
164
|
+
/**
|
|
165
|
+
* Create a strict circuit breaker (trips quickly).
|
|
166
|
+
*/
|
|
167
|
+
export declare function createStrictCircuitBreaker(): CircuitBreaker;
|
|
168
|
+
/**
|
|
169
|
+
* Create a lenient circuit breaker (more tolerant).
|
|
170
|
+
*/
|
|
171
|
+
export declare function createLenientCircuitBreaker(): CircuitBreaker;
|
|
172
|
+
/**
|
|
173
|
+
* Format circuit breaker metrics for display.
|
|
174
|
+
*/
|
|
175
|
+
export declare function formatCircuitBreakerMetrics(metrics: CircuitBreakerMetrics): string;
|
|
176
|
+
/**
|
|
177
|
+
* Check if an error is from a tripped circuit breaker.
|
|
178
|
+
*/
|
|
179
|
+
export declare function isCircuitBreakerError(error: unknown): boolean;
|
|
180
|
+
//# sourceMappingURL=circuit-breaker.d.ts.map
|