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.
Files changed (103) hide show
  1. package/CHANGELOG.md +64 -1
  2. package/README.md +138 -10
  3. package/dist/src/agent.d.ts +75 -1
  4. package/dist/src/agent.d.ts.map +1 -1
  5. package/dist/src/agent.js +700 -25
  6. package/dist/src/agent.js.map +1 -1
  7. package/dist/src/commands/agents-commands.d.ts +24 -0
  8. package/dist/src/commands/agents-commands.d.ts.map +1 -0
  9. package/dist/src/commands/agents-commands.js +284 -0
  10. package/dist/src/commands/agents-commands.js.map +1 -0
  11. package/dist/src/commands/handler.d.ts.map +1 -1
  12. package/dist/src/commands/handler.js +135 -19
  13. package/dist/src/commands/handler.js.map +1 -1
  14. package/dist/src/commands/init-commands.d.ts +35 -0
  15. package/dist/src/commands/init-commands.d.ts.map +1 -0
  16. package/dist/src/commands/init-commands.js +187 -0
  17. package/dist/src/commands/init-commands.js.map +1 -0
  18. package/dist/src/commands/skills-commands.d.ts +26 -0
  19. package/dist/src/commands/skills-commands.d.ts.map +1 -0
  20. package/dist/src/commands/skills-commands.js +309 -0
  21. package/dist/src/commands/skills-commands.js.map +1 -0
  22. package/dist/src/commands/types.d.ts +13 -2
  23. package/dist/src/commands/types.d.ts.map +1 -1
  24. package/dist/src/defaults.d.ts +29 -1
  25. package/dist/src/defaults.d.ts.map +1 -1
  26. package/dist/src/defaults.js +66 -0
  27. package/dist/src/defaults.js.map +1 -1
  28. package/dist/src/integrations/agent-registry.d.ts +68 -2
  29. package/dist/src/integrations/agent-registry.d.ts.map +1 -1
  30. package/dist/src/integrations/agent-registry.js +230 -23
  31. package/dist/src/integrations/agent-registry.js.map +1 -1
  32. package/dist/src/integrations/cancellation.d.ts +5 -0
  33. package/dist/src/integrations/cancellation.d.ts.map +1 -1
  34. package/dist/src/integrations/cancellation.js +7 -0
  35. package/dist/src/integrations/cancellation.js.map +1 -1
  36. package/dist/src/integrations/capabilities.d.ts +160 -0
  37. package/dist/src/integrations/capabilities.d.ts.map +1 -0
  38. package/dist/src/integrations/capabilities.js +426 -0
  39. package/dist/src/integrations/capabilities.js.map +1 -0
  40. package/dist/src/integrations/context-engineering.d.ts +6 -1
  41. package/dist/src/integrations/context-engineering.d.ts.map +1 -1
  42. package/dist/src/integrations/context-engineering.js +7 -0
  43. package/dist/src/integrations/context-engineering.js.map +1 -1
  44. package/dist/src/integrations/index.d.ts +12 -2
  45. package/dist/src/integrations/index.d.ts.map +1 -1
  46. package/dist/src/integrations/index.js +22 -2
  47. package/dist/src/integrations/index.js.map +1 -1
  48. package/dist/src/integrations/interactive-planning.d.ts +322 -0
  49. package/dist/src/integrations/interactive-planning.d.ts.map +1 -0
  50. package/dist/src/integrations/interactive-planning.js +655 -0
  51. package/dist/src/integrations/interactive-planning.js.map +1 -0
  52. package/dist/src/integrations/learning-store.d.ts +291 -0
  53. package/dist/src/integrations/learning-store.d.ts.map +1 -0
  54. package/dist/src/integrations/learning-store.js +640 -0
  55. package/dist/src/integrations/learning-store.js.map +1 -0
  56. package/dist/src/integrations/pending-plan.d.ts.map +1 -1
  57. package/dist/src/integrations/pending-plan.js +69 -10
  58. package/dist/src/integrations/pending-plan.js.map +1 -1
  59. package/dist/src/integrations/skill-executor.d.ts +113 -0
  60. package/dist/src/integrations/skill-executor.d.ts.map +1 -0
  61. package/dist/src/integrations/skill-executor.js +270 -0
  62. package/dist/src/integrations/skill-executor.js.map +1 -0
  63. package/dist/src/integrations/skills.d.ts +98 -7
  64. package/dist/src/integrations/skills.d.ts.map +1 -1
  65. package/dist/src/integrations/skills.js +210 -11
  66. package/dist/src/integrations/skills.js.map +1 -1
  67. package/dist/src/providers/circuit-breaker.d.ts +180 -0
  68. package/dist/src/providers/circuit-breaker.d.ts.map +1 -0
  69. package/dist/src/providers/circuit-breaker.js +349 -0
  70. package/dist/src/providers/circuit-breaker.js.map +1 -0
  71. package/dist/src/providers/fallback-chain.d.ts +194 -0
  72. package/dist/src/providers/fallback-chain.d.ts.map +1 -0
  73. package/dist/src/providers/fallback-chain.js +363 -0
  74. package/dist/src/providers/fallback-chain.js.map +1 -0
  75. package/dist/src/providers/llm-resilience.d.ts +126 -0
  76. package/dist/src/providers/llm-resilience.d.ts.map +1 -0
  77. package/dist/src/providers/llm-resilience.js +261 -0
  78. package/dist/src/providers/llm-resilience.js.map +1 -0
  79. package/dist/src/providers/resilient-provider.d.ts +124 -0
  80. package/dist/src/providers/resilient-provider.d.ts.map +1 -0
  81. package/dist/src/providers/resilient-provider.js +242 -0
  82. package/dist/src/providers/resilient-provider.js.map +1 -0
  83. package/dist/src/tricks/recursive-context.d.ts +296 -0
  84. package/dist/src/tricks/recursive-context.d.ts.map +1 -0
  85. package/dist/src/tricks/recursive-context.js +518 -0
  86. package/dist/src/tricks/recursive-context.js.map +1 -0
  87. package/dist/src/tui/app.d.ts.map +1 -1
  88. package/dist/src/tui/app.js +226 -29
  89. package/dist/src/tui/app.js.map +1 -1
  90. package/dist/src/tui/components/ApprovalDialog.d.ts.map +1 -1
  91. package/dist/src/tui/components/ApprovalDialog.js +1 -1
  92. package/dist/src/tui/components/ApprovalDialog.js.map +1 -1
  93. package/dist/src/tui/index.d.ts +1 -0
  94. package/dist/src/tui/index.d.ts.map +1 -1
  95. package/dist/src/tui/index.js +2 -0
  96. package/dist/src/tui/index.js.map +1 -1
  97. package/dist/src/tui/transparency-aggregator.d.ts +100 -0
  98. package/dist/src/tui/transparency-aggregator.d.ts.map +1 -0
  99. package/dist/src/tui/transparency-aggregator.js +234 -0
  100. package/dist/src/tui/transparency-aggregator.js.map +1 -0
  101. package/dist/src/types.d.ts +155 -0
  102. package/dist/src/types.d.ts.map +1 -1
  103. 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: 25-production-agent/skills/
10
- * - User skills: .agent/skills/
11
- * - Global skills: ~/.agent/skills/
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: ['.agent/skills'] });
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":"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"}
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../../src/integrations/skills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAgBH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IAEb,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC;IAEpB,mCAAmC;IACnC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;IAE/C,wCAAwC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,oCAAoC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IAEb,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IAEpB,+BAA+B;IAC/B,KAAK,EAAE,MAAM,EAAE,CAAC;IAEhB,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAEhB,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAC;IAEnB,mDAAmD;IACnD,UAAU,CAAC,EAAE,eAAe,CAAC;IAE7B,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,sBAAsB;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,kCAAkC;IAClC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB,mCAAmC;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAE1B,+DAA+D;IAC/D,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,qCAAqC;IACrC,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;IAE5B,0EAA0E;IAC1E,aAAa,CAAC,EAAE,kBAAkB,GAAG,UAAU,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,mBAAmB;IACnB,IAAI,EAAE,SAAS,GAAG,cAAc,GAAG,SAAS,CAAC;IAE7C,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,4BAA4B;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAEvB,sCAAsC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,6CAA6C;IAC7C,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACpD;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;AAM7D;;;;;GAKG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,EAAE,CAkBrD;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,CAyBrE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAiB5D;AAuED;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,cAAc,CAAsC;gBAEhD,MAAM,GAAE,YAAiB;IASrC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAiBnC;;OAEG;IACG,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkCjE;;OAEG;YACW,yBAAyB;IAgBvC;;OAEG;YACW,iBAAiB;IAuE/B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAIzC;;OAEG;IACH,YAAY,IAAI,KAAK,EAAE;IAIvB;;OAEG;IACH,eAAe,IAAI,KAAK,EAAE;IAM1B;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IASpC;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAQtC;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIpC;;OAEG;IACH,qBAAqB,IAAI,MAAM;IAa/B;;OAEG;IACH,mBAAmB,IAAI,MAAM,EAAE;IAY/B;;OAEG;IACH,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE;IA4B1C;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,IAAI;IAKnD;;OAEG;IACH,OAAO,IAAI,IAAI;IAQf,OAAO,CAAC,IAAI;CASb;AAMD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY,CAEtE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAiBvD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAyB/E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE;IACtD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACvF,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CAChB,GAAG,MAAM,CA4Cd;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACvF,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CAChB,GACL,OAAO,CAAC,mBAAmB,CAAC,CA2C9B;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAc9E"}
@@ -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: 25-production-agent/skills/
10
- * - User skills: .agent/skills/
11
- * - Global skills: ~/.agent/skills/
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: ['.agent/skills'] });
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
- '.agent/skills', // Project-specific
30
- join(homedir(), '.agent', 'skills'), // User global
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":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAgF7B,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,0BAA0B;IACxC,OAAO;QACL,eAAe,EAA4B,mBAAmB;QAC9D,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAQ,cAAc;KAC1D,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,0BAA0B;AAC1B,gFAAgF;AAEhF;;;GAGG;AACH,SAAS,gBAAgB,CAAC,OAAe;IACvC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAElC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;QAC/B,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC5C,CAAC;IAED,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;YAC/B,QAAQ,GAAG,CAAC,CAAC;YACb,MAAM;QACR,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;QACpB,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC5C,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAEzD,qCAAqC;IACrC,MAAM,WAAW,GAA4B,EAAE,CAAC;IAEhD,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAElD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,UAAU,KAAK,CAAC,CAAC;YAAE,SAAS;QAEhC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;QAChD,IAAI,KAAK,GAAY,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAE1D,gDAAgD;QAChD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9E,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;QACvF,CAAC;QACD,wBAAwB;aACnB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACvF,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,kBAAkB;aACb,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YAC1B,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;aACI,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YAC3B,KAAK,GAAG,KAAK,CAAC;QAChB,CAAC;QAED,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAC/B,CAAC;AAED,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,OAAO,YAAY;IACf,MAAM,CAAyB;IAC/B,MAAM,GAAuB,IAAI,GAAG,EAAE,CAAC;IACvC,YAAY,GAAgB,IAAI,GAAG,EAAE,CAAC;IACtC,cAAc,GAA4B,IAAI,GAAG,EAAE,CAAC;IAE5D,YAAY,SAAuB,EAAE;QACnC,IAAI,CAAC,MAAM,GAAG;YACZ,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI;YAC/B,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,0BAA0B,EAAE;YAC/D,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,IAAI;YACvC,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,KAAK;SAC3C,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,CAAC,CAAC;QAEnC,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC1C,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;gBACtD,MAAM,IAAI,KAAK,CAAC;YAClB,CAAC;YAAC,MAAM,CAAC;gBACP,sCAAsC;YACxC,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,uBAAuB,CAAC,SAAiB;QAC7C,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAElE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAE7C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxB,gDAAgD;oBAChD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;oBAC7D,IAAI,KAAK,EAAE,CAAC;wBACV,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;wBACnC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;wBACtE,MAAM,EAAE,CAAC;oBACX,CAAC;gBACH,CAAC;qBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;oBAC3F,kCAAkC;oBAClC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;oBACrD,IAAI,KAAK,EAAE,CAAC;wBACV,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;wBACnC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;wBACtE,MAAM,EAAE,CAAC;oBACX,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,2CAA2C;QAC7C,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,yBAAyB,CAAC,SAAiB;QACvD,MAAM,aAAa,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAE5D,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC3C,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACrB,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAC1C,CAAC;YAAC,MAAM,CAAC;gBACP,+BAA+B;YACjC,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB,CAAC,QAAgB;QAC9C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAClD,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAExD,sDAAsD;YACtD,IAAI,IAAI,GAAG,WAAW,CAAC,IAA0B,CAAC;YAClD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACjC,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAC3C,IAAI,GAAG,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;YACzD,CAAC;YAED,iCAAiC;YACjC,IAAI,KAAK,GAAa,EAAE,CAAC;YACzB,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrC,KAAK,GAAG,WAAW,CAAC,KAAiB,CAAC;YACxC,CAAC;YAED,mBAAmB;YACnB,IAAI,QAAQ,GAAmB,EAAE,CAAC;YAClC,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxC,QAAQ,GAAI,WAAW,CAAC,QAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBACvD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;wBAC1B,OAAO,EAAE,IAAI,EAAE,SAAkB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;oBAClD,CAAC;oBACD,OAAO,CAAiB,CAAC;gBAC3B,CAAC,CAAC,CAAC;YACL,CAAC;YAED,MAAM,KAAK,GAAU;gBACnB,IAAI;gBACJ,WAAW,EAAG,WAAW,CAAC,WAAsB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,IAAI;gBACrG,KAAK;gBACL,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,QAAQ;gBACpB,OAAO,EAAE,WAAW,CAAC,OAA6B;gBAClD,MAAM,EAAE,WAAW,CAAC,MAA4B;gBAChD,IAAI,EAAE,WAAW,CAAC,IAA4B;gBAC9C,QAAQ;aACT,CAAC;YAEF,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC9E,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,IAAY;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;aACjC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aAClC,MAAM,CAAC,CAAC,CAAC,EAAc,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,IAAY;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QAEzB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,IAAY;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,qBAAqB;QACnB,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEzC,MAAM,KAAK,GAAa,CAAC,wBAAwB,CAAC,CAAC;QAEnD,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;QAEhC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;YAC3C,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC/B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,KAAa;QAC9B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY;YAAE,OAAO,EAAE,CAAC;QAEzC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,OAAO,GAAY,EAAE,CAAC;QAE5B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACzC,iBAAiB;YACjB,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;gBAC3C,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBAC/B,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;wBACvD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACpB,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;YAED,aAAa;YACb,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC;gBACpE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC7B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,QAA4B;QACpC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED,mBAAmB;IAEX,IAAI,CAAC,KAAiB;QAC5B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC3C,IAAI,CAAC;gBACH,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;YAAC,MAAM,CAAC;gBACP,yBAAyB;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAqB;IACtD,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAe;IAC7C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,MAAM,KAAK,GAAa,CAAC,mBAAmB,CAAC,CAAC;IAE9C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,MAAM,MAAM,KAAK,CAAC,WAAW,GAAG,KAAK,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,WAAmB;IACrE,OAAO;QACD,IAAI;eACG,WAAW;;;;;IAKtB,IAAI;;EAEN,WAAW;;;;;;;;;;;;;;CAcZ,CAAC;AACF,CAAC"}
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