kagent-ts 0.1.0
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/LICENSE +21 -0
- package/README.md +395 -0
- package/dist/compression/interface.d.ts +26 -0
- package/dist/compression/interface.d.ts.map +1 -0
- package/dist/compression/interface.js +3 -0
- package/dist/compression/interface.js.map +1 -0
- package/dist/compression/sliding-window.d.ts +21 -0
- package/dist/compression/sliding-window.d.ts.map +1 -0
- package/dist/compression/sliding-window.js +55 -0
- package/dist/compression/sliding-window.js.map +1 -0
- package/dist/compression/types.d.ts +12 -0
- package/dist/compression/types.d.ts.map +1 -0
- package/dist/compression/types.js +3 -0
- package/dist/compression/types.js.map +1 -0
- package/dist/context/context-manager.d.ts +76 -0
- package/dist/context/context-manager.d.ts.map +1 -0
- package/dist/context/context-manager.js +132 -0
- package/dist/context/context-manager.js.map +1 -0
- package/dist/context/types.d.ts +35 -0
- package/dist/context/types.d.ts.map +1 -0
- package/dist/context/types.js +3 -0
- package/dist/context/types.js.map +1 -0
- package/dist/core/agent.d.ts +288 -0
- package/dist/core/agent.d.ts.map +1 -0
- package/dist/core/agent.js +398 -0
- package/dist/core/agent.js.map +1 -0
- package/dist/core/hooks.d.ts +34 -0
- package/dist/core/hooks.d.ts.map +1 -0
- package/dist/core/hooks.js +3 -0
- package/dist/core/hooks.js.map +1 -0
- package/dist/core/plan-solve-agent.d.ts +114 -0
- package/dist/core/plan-solve-agent.d.ts.map +1 -0
- package/dist/core/plan-solve-agent.js +450 -0
- package/dist/core/plan-solve-agent.js.map +1 -0
- package/dist/core/react-agent.d.ts +52 -0
- package/dist/core/react-agent.d.ts.map +1 -0
- package/dist/core/react-agent.js +266 -0
- package/dist/core/react-agent.js.map +1 -0
- package/dist/core/response-schema.d.ts +91 -0
- package/dist/core/response-schema.d.ts.map +1 -0
- package/dist/core/response-schema.js +292 -0
- package/dist/core/response-schema.js.map +1 -0
- package/dist/core/types.d.ts +6 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +3 -0
- package/dist/core/types.js.map +1 -0
- package/dist/index.d.ts +39 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +67 -0
- package/dist/index.js.map +1 -0
- package/dist/llm/interface.d.ts +87 -0
- package/dist/llm/interface.d.ts.map +1 -0
- package/dist/llm/interface.js +3 -0
- package/dist/llm/interface.js.map +1 -0
- package/dist/llm/openai-provider.d.ts +92 -0
- package/dist/llm/openai-provider.d.ts.map +1 -0
- package/dist/llm/openai-provider.js +262 -0
- package/dist/llm/openai-provider.js.map +1 -0
- package/dist/messages/message.d.ts +50 -0
- package/dist/messages/message.d.ts.map +1 -0
- package/dist/messages/message.js +87 -0
- package/dist/messages/message.js.map +1 -0
- package/dist/messages/types.d.ts +31 -0
- package/dist/messages/types.d.ts.map +1 -0
- package/dist/messages/types.js +14 -0
- package/dist/messages/types.js.map +1 -0
- package/dist/preferences/preference-manager.d.ts +88 -0
- package/dist/preferences/preference-manager.d.ts.map +1 -0
- package/dist/preferences/preference-manager.js +196 -0
- package/dist/preferences/preference-manager.js.map +1 -0
- package/dist/preferences/types.d.ts +27 -0
- package/dist/preferences/types.d.ts.map +1 -0
- package/dist/preferences/types.js +3 -0
- package/dist/preferences/types.js.map +1 -0
- package/dist/session/session-manager.d.ts +56 -0
- package/dist/session/session-manager.d.ts.map +1 -0
- package/dist/session/session-manager.js +156 -0
- package/dist/session/session-manager.js.map +1 -0
- package/dist/session/session-types.d.ts +51 -0
- package/dist/session/session-types.d.ts.map +1 -0
- package/dist/session/session-types.js +3 -0
- package/dist/session/session-types.js.map +1 -0
- package/dist/skills/file-skill-loader.d.ts +88 -0
- package/dist/skills/file-skill-loader.d.ts.map +1 -0
- package/dist/skills/file-skill-loader.js +365 -0
- package/dist/skills/file-skill-loader.js.map +1 -0
- package/dist/skills/index.d.ts +4 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +10 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/skill-manager.d.ts +133 -0
- package/dist/skills/skill-manager.d.ts.map +1 -0
- package/dist/skills/skill-manager.js +310 -0
- package/dist/skills/skill-manager.js.map +1 -0
- package/dist/skills/types.d.ts +42 -0
- package/dist/skills/types.d.ts.map +1 -0
- package/dist/skills/types.js +3 -0
- package/dist/skills/types.js.map +1 -0
- package/dist/tools/builtin/edit-file.d.ts +12 -0
- package/dist/tools/builtin/edit-file.d.ts.map +1 -0
- package/dist/tools/builtin/edit-file.js +123 -0
- package/dist/tools/builtin/edit-file.js.map +1 -0
- package/dist/tools/builtin/glob-search.d.ts +11 -0
- package/dist/tools/builtin/glob-search.d.ts.map +1 -0
- package/dist/tools/builtin/glob-search.js +264 -0
- package/dist/tools/builtin/glob-search.js.map +1 -0
- package/dist/tools/builtin/grep-search.d.ts +14 -0
- package/dist/tools/builtin/grep-search.d.ts.map +1 -0
- package/dist/tools/builtin/grep-search.js +264 -0
- package/dist/tools/builtin/grep-search.js.map +1 -0
- package/dist/tools/builtin/index.d.ts +21 -0
- package/dist/tools/builtin/index.d.ts.map +1 -0
- package/dist/tools/builtin/index.js +53 -0
- package/dist/tools/builtin/index.js.map +1 -0
- package/dist/tools/builtin/read-file.d.ts +11 -0
- package/dist/tools/builtin/read-file.d.ts.map +1 -0
- package/dist/tools/builtin/read-file.js +122 -0
- package/dist/tools/builtin/read-file.js.map +1 -0
- package/dist/tools/builtin/write-file.d.ts +10 -0
- package/dist/tools/builtin/write-file.d.ts.map +1 -0
- package/dist/tools/builtin/write-file.js +89 -0
- package/dist/tools/builtin/write-file.js.map +1 -0
- package/dist/tools/circuit-breaker.d.ts +77 -0
- package/dist/tools/circuit-breaker.d.ts.map +1 -0
- package/dist/tools/circuit-breaker.js +102 -0
- package/dist/tools/circuit-breaker.js.map +1 -0
- package/dist/tools/error-tracker.d.ts +116 -0
- package/dist/tools/error-tracker.d.ts.map +1 -0
- package/dist/tools/error-tracker.js +484 -0
- package/dist/tools/error-tracker.js.map +1 -0
- package/dist/tools/tool-registry.d.ts +87 -0
- package/dist/tools/tool-registry.d.ts.map +1 -0
- package/dist/tools/tool-registry.js +188 -0
- package/dist/tools/tool-registry.js.map +1 -0
- package/dist/tools/types.d.ts +95 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +14 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/utils/token-counter.d.ts +31 -0
- package/dist/utils/token-counter.d.ts.map +1 -0
- package/dist/utils/token-counter.js +105 -0
- package/dist/utils/token-counter.js.map +1 -0
- package/package.json +56 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-skill-loader.js","sourceRoot":"","sources":["../../src/skills/file-skill-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACvF,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseKeywords = exports.parseFrontmatter = exports.FileSkillLoader = exports.SkillManager = void 0;
|
|
4
|
+
var skill_manager_1 = require("./skill-manager");
|
|
5
|
+
Object.defineProperty(exports, "SkillManager", { enumerable: true, get: function () { return skill_manager_1.SkillManager; } });
|
|
6
|
+
var file_skill_loader_1 = require("./file-skill-loader");
|
|
7
|
+
Object.defineProperty(exports, "FileSkillLoader", { enumerable: true, get: function () { return file_skill_loader_1.FileSkillLoader; } });
|
|
8
|
+
Object.defineProperty(exports, "parseFrontmatter", { enumerable: true, get: function () { return file_skill_loader_1.parseFrontmatter; } });
|
|
9
|
+
Object.defineProperty(exports, "parseKeywords", { enumerable: true, get: function () { return file_skill_loader_1.parseKeywords; } });
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":";;;AAAA,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,yDAAuF;AAA9E,oHAAA,eAAe,OAAA;AAAE,qHAAA,gBAAgB,OAAA;AAAE,kHAAA,aAAa,OAAA"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { Skill, SkillStatus } from "./types";
|
|
2
|
+
import { ToolRegistry } from "../tools/tool-registry";
|
|
3
|
+
/**
|
|
4
|
+
* Manages skill registration, activation, and progressive disclosure.
|
|
5
|
+
*
|
|
6
|
+
* Skills are lightweight domain-specific capabilities that can be
|
|
7
|
+
* loaded into the agent's system prompt on demand. This keeps the
|
|
8
|
+
* core system prompt small while allowing deep expertise to be
|
|
9
|
+
* injected when needed.
|
|
10
|
+
*
|
|
11
|
+
* Activation strategies:
|
|
12
|
+
* 1. Keyword auto-detection — skills define keywords; user input
|
|
13
|
+
* that matches triggers activation.
|
|
14
|
+
* 2. Manual activation — call `activate(name)` explicitly.
|
|
15
|
+
*/
|
|
16
|
+
export declare class SkillManager {
|
|
17
|
+
/** All registered skills (active or not), keyed by name. */
|
|
18
|
+
private registry;
|
|
19
|
+
/** Skills that are currently active. */
|
|
20
|
+
private activeSkills;
|
|
21
|
+
/** Timestamps for when each skill was activated. */
|
|
22
|
+
private activatedAt;
|
|
23
|
+
/** FileSkillLoaders for file-based skills, keyed by skill name. */
|
|
24
|
+
private fileLoaders;
|
|
25
|
+
/** File-based skills whose full content has been loaded from disk. */
|
|
26
|
+
private loadedFileSkills;
|
|
27
|
+
/** Reference to the ToolRegistry for registering/unregistering skill tools. */
|
|
28
|
+
private toolRegistry?;
|
|
29
|
+
/**
|
|
30
|
+
* @param toolRegistry Optional ToolRegistry — skills with tools
|
|
31
|
+
* will auto-register/unregister there.
|
|
32
|
+
*/
|
|
33
|
+
constructor(toolRegistry?: ToolRegistry);
|
|
34
|
+
/**
|
|
35
|
+
* Bind a ToolRegistry so skill tools are managed automatically.
|
|
36
|
+
*/
|
|
37
|
+
bindToolRegistry(registry: ToolRegistry): void;
|
|
38
|
+
/**
|
|
39
|
+
* Register one or more skills.
|
|
40
|
+
*/
|
|
41
|
+
register(...skills: Skill[]): void;
|
|
42
|
+
/**
|
|
43
|
+
* Unregister a skill by name. Deactivates it first if active.
|
|
44
|
+
*/
|
|
45
|
+
unregister(name: string): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Register skills from a directory of SKILL.md files.
|
|
48
|
+
*
|
|
49
|
+
* Scans the directory, reads frontmatter from each SKILL.md, and
|
|
50
|
+
* registers metadata-only Skill objects. Full content (system prompt,
|
|
51
|
+
* reference docs, scripts) is loaded lazily on activation.
|
|
52
|
+
*
|
|
53
|
+
* @param dir Path to the skills directory.
|
|
54
|
+
* @returns Number of skills successfully registered.
|
|
55
|
+
*/
|
|
56
|
+
registerFromDirectory(dir: string): number;
|
|
57
|
+
/**
|
|
58
|
+
* Check if a skill is registered.
|
|
59
|
+
*/
|
|
60
|
+
has(name: string): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Get a registered skill by name.
|
|
63
|
+
*/
|
|
64
|
+
get(name: string): Skill | undefined;
|
|
65
|
+
/**
|
|
66
|
+
* Get all registered skills.
|
|
67
|
+
*/
|
|
68
|
+
getAll(): Skill[];
|
|
69
|
+
/**
|
|
70
|
+
* Activate a skill by name.
|
|
71
|
+
* - Appends its system prompt to the accumulated skill context.
|
|
72
|
+
* - Registers its tools (if a ToolRegistry is bound).
|
|
73
|
+
* - Returns true if the skill was newly activated.
|
|
74
|
+
*/
|
|
75
|
+
activate(name: string): boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Activate multiple skills at once.
|
|
78
|
+
*/
|
|
79
|
+
activateMany(names: string[]): string[];
|
|
80
|
+
/**
|
|
81
|
+
* Deactivate a skill.
|
|
82
|
+
* - Unregisters its tools (if a ToolRegistry is bound).
|
|
83
|
+
*/
|
|
84
|
+
deactivate(name: string): boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Deactivate all active skills.
|
|
87
|
+
*/
|
|
88
|
+
deactivateAll(): void;
|
|
89
|
+
/**
|
|
90
|
+
* Scan user input against unregistered (not yet active) skills.
|
|
91
|
+
* Activates any skill whose keywords match the input.
|
|
92
|
+
*
|
|
93
|
+
* @param input The user's input text.
|
|
94
|
+
* @returns Names of newly activated skills.
|
|
95
|
+
*/
|
|
96
|
+
detectAndActivate(input: string): string[];
|
|
97
|
+
/**
|
|
98
|
+
* Build the accumulated system prompt content from all active skills.
|
|
99
|
+
* Each skill's prompt is wrapped in a named section for clarity.
|
|
100
|
+
*
|
|
101
|
+
* Returns an empty string if no skills are active.
|
|
102
|
+
*/
|
|
103
|
+
buildSkillsPrompt(): string;
|
|
104
|
+
/**
|
|
105
|
+
* Build a lightweight list of available (unactivated) skill names
|
|
106
|
+
* for inclusion in the system prompt.
|
|
107
|
+
*
|
|
108
|
+
* This is what "progressive disclosure" means — the agent sees
|
|
109
|
+
* the names up front but the full instructions only load on activation.
|
|
110
|
+
*/
|
|
111
|
+
buildAvailableSkillsHint(): string;
|
|
112
|
+
/**
|
|
113
|
+
* Check if a skill is currently active.
|
|
114
|
+
*/
|
|
115
|
+
isActive(name: string): boolean;
|
|
116
|
+
/**
|
|
117
|
+
* Get names of all currently active skills.
|
|
118
|
+
*/
|
|
119
|
+
getActiveSkillNames(): string[];
|
|
120
|
+
/**
|
|
121
|
+
* Get the number of active skills.
|
|
122
|
+
*/
|
|
123
|
+
get activeCount(): number;
|
|
124
|
+
/**
|
|
125
|
+
* Get status for all registered skills.
|
|
126
|
+
*/
|
|
127
|
+
getAllStatus(): SkillStatus[];
|
|
128
|
+
/**
|
|
129
|
+
* Get status for all active skills.
|
|
130
|
+
*/
|
|
131
|
+
getActiveStatus(): SkillStatus[];
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=skill-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-manager.d.ts","sourceRoot":"","sources":["../../src/skills/skill-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD;;;;;;;;;;;;GAYG;AACH,qBAAa,YAAY;IACvB,4DAA4D;IAC5D,OAAO,CAAC,QAAQ,CAAiC;IAEjD,wCAAwC;IACxC,OAAO,CAAC,YAAY,CAAiC;IAErD,oDAAoD;IACpD,OAAO,CAAC,WAAW,CAAgC;IAEnD,mEAAmE;IACnE,OAAO,CAAC,WAAW,CAA2C;IAE9D,sEAAsE;IACtE,OAAO,CAAC,gBAAgB,CAA0B;IAElD,+EAA+E;IAC/E,OAAO,CAAC,YAAY,CAAC,CAAe;IAEpC;;;OAGG;gBACS,YAAY,CAAC,EAAE,YAAY;IAIvC;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAM9C;;OAEG;IACH,QAAQ,CAAC,GAAG,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;IASlC;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAOjC;;;;;;;;;OASG;IACH,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IA6B1C;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAIpC;;OAEG;IACH,MAAM,IAAI,KAAK,EAAE;IAMjB;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IA2C/B;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAcvC;;;OAGG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAkBjC;;OAEG;IACH,aAAa,IAAI,IAAI;IASrB;;;;;;OAMG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IA2B1C;;;;;OAKG;IACH,iBAAiB,IAAI,MAAM;IAW3B;;;;;;OAMG;IACH,wBAAwB,IAAI,MAAM;IAgBlC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI/B;;OAEG;IACH,mBAAmB,IAAI,MAAM,EAAE;IAI/B;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;OAEG;IACH,YAAY,IAAI,WAAW,EAAE;IAY7B;;OAEG;IACH,eAAe,IAAI,WAAW,EAAE;CAGjC"}
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SkillManager = void 0;
|
|
4
|
+
const file_skill_loader_1 = require("./file-skill-loader");
|
|
5
|
+
/**
|
|
6
|
+
* Manages skill registration, activation, and progressive disclosure.
|
|
7
|
+
*
|
|
8
|
+
* Skills are lightweight domain-specific capabilities that can be
|
|
9
|
+
* loaded into the agent's system prompt on demand. This keeps the
|
|
10
|
+
* core system prompt small while allowing deep expertise to be
|
|
11
|
+
* injected when needed.
|
|
12
|
+
*
|
|
13
|
+
* Activation strategies:
|
|
14
|
+
* 1. Keyword auto-detection — skills define keywords; user input
|
|
15
|
+
* that matches triggers activation.
|
|
16
|
+
* 2. Manual activation — call `activate(name)` explicitly.
|
|
17
|
+
*/
|
|
18
|
+
class SkillManager {
|
|
19
|
+
/** All registered skills (active or not), keyed by name. */
|
|
20
|
+
registry = new Map();
|
|
21
|
+
/** Skills that are currently active. */
|
|
22
|
+
activeSkills = new Map();
|
|
23
|
+
/** Timestamps for when each skill was activated. */
|
|
24
|
+
activatedAt = new Map();
|
|
25
|
+
/** FileSkillLoaders for file-based skills, keyed by skill name. */
|
|
26
|
+
fileLoaders = new Map();
|
|
27
|
+
/** File-based skills whose full content has been loaded from disk. */
|
|
28
|
+
loadedFileSkills = new Set();
|
|
29
|
+
/** Reference to the ToolRegistry for registering/unregistering skill tools. */
|
|
30
|
+
toolRegistry;
|
|
31
|
+
/**
|
|
32
|
+
* @param toolRegistry Optional ToolRegistry — skills with tools
|
|
33
|
+
* will auto-register/unregister there.
|
|
34
|
+
*/
|
|
35
|
+
constructor(toolRegistry) {
|
|
36
|
+
this.toolRegistry = toolRegistry;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Bind a ToolRegistry so skill tools are managed automatically.
|
|
40
|
+
*/
|
|
41
|
+
bindToolRegistry(registry) {
|
|
42
|
+
this.toolRegistry = registry;
|
|
43
|
+
}
|
|
44
|
+
// ─── Registration ────────────────────────────────────────────────────
|
|
45
|
+
/**
|
|
46
|
+
* Register one or more skills.
|
|
47
|
+
*/
|
|
48
|
+
register(...skills) {
|
|
49
|
+
for (const skill of skills) {
|
|
50
|
+
if (this.registry.has(skill.name)) {
|
|
51
|
+
throw new Error(`Skill "${skill.name}" is already registered.`);
|
|
52
|
+
}
|
|
53
|
+
this.registry.set(skill.name, skill);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Unregister a skill by name. Deactivates it first if active.
|
|
58
|
+
*/
|
|
59
|
+
unregister(name) {
|
|
60
|
+
if (this.activeSkills.has(name)) {
|
|
61
|
+
this.deactivate(name);
|
|
62
|
+
}
|
|
63
|
+
return this.registry.delete(name);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Register skills from a directory of SKILL.md files.
|
|
67
|
+
*
|
|
68
|
+
* Scans the directory, reads frontmatter from each SKILL.md, and
|
|
69
|
+
* registers metadata-only Skill objects. Full content (system prompt,
|
|
70
|
+
* reference docs, scripts) is loaded lazily on activation.
|
|
71
|
+
*
|
|
72
|
+
* @param dir Path to the skills directory.
|
|
73
|
+
* @returns Number of skills successfully registered.
|
|
74
|
+
*/
|
|
75
|
+
registerFromDirectory(dir) {
|
|
76
|
+
const loader = new file_skill_loader_1.FileSkillLoader(dir);
|
|
77
|
+
const scanned = loader.scan();
|
|
78
|
+
let count = 0;
|
|
79
|
+
for (const skill of scanned) {
|
|
80
|
+
if (this.registry.has(skill.name)) {
|
|
81
|
+
console.warn(`[Skills] Skipping "${skill.name}": already registered (duplicate name).`);
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
this.registry.set(skill.name, skill);
|
|
85
|
+
this.fileLoaders.set(skill.name, loader);
|
|
86
|
+
count++;
|
|
87
|
+
}
|
|
88
|
+
if (count > 0) {
|
|
89
|
+
console.log(`[Skills] Registered ${count} file-based skill(s) from ${dir}` +
|
|
90
|
+
(scanned.length !== count
|
|
91
|
+
? ` (${scanned.length - count} skipped)`
|
|
92
|
+
: ""));
|
|
93
|
+
}
|
|
94
|
+
return count;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Check if a skill is registered.
|
|
98
|
+
*/
|
|
99
|
+
has(name) {
|
|
100
|
+
return this.registry.has(name);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Get a registered skill by name.
|
|
104
|
+
*/
|
|
105
|
+
get(name) {
|
|
106
|
+
return this.registry.get(name);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Get all registered skills.
|
|
110
|
+
*/
|
|
111
|
+
getAll() {
|
|
112
|
+
return Array.from(this.registry.values());
|
|
113
|
+
}
|
|
114
|
+
// ─── Activation / Deactivation ───────────────────────────────────────
|
|
115
|
+
/**
|
|
116
|
+
* Activate a skill by name.
|
|
117
|
+
* - Appends its system prompt to the accumulated skill context.
|
|
118
|
+
* - Registers its tools (if a ToolRegistry is bound).
|
|
119
|
+
* - Returns true if the skill was newly activated.
|
|
120
|
+
*/
|
|
121
|
+
activate(name) {
|
|
122
|
+
const skill = this.registry.get(name);
|
|
123
|
+
if (!skill) {
|
|
124
|
+
throw new Error(`Unknown skill: "${name}". Available: ${Array.from(this.registry.keys()).join(", ")}`);
|
|
125
|
+
}
|
|
126
|
+
if (this.activeSkills.has(name)) {
|
|
127
|
+
return false; // Already active
|
|
128
|
+
}
|
|
129
|
+
// Lazy-load file-based skills: populate systemPrompt and tools from disk
|
|
130
|
+
const loader = this.fileLoaders.get(name);
|
|
131
|
+
if (loader && !this.loadedFileSkills.has(name)) {
|
|
132
|
+
try {
|
|
133
|
+
skill.systemPrompt = loader.loadSystemPrompt(name);
|
|
134
|
+
skill.tools = loader.loadScriptsAsTools(name);
|
|
135
|
+
this.loadedFileSkills.add(name);
|
|
136
|
+
}
|
|
137
|
+
catch (err) {
|
|
138
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
139
|
+
throw new Error(`Failed to load skill "${name}" from disk: ${message}`);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
this.activeSkills.set(name, skill);
|
|
143
|
+
this.activatedAt.set(name, new Date());
|
|
144
|
+
// Register skill tools if we have a registry
|
|
145
|
+
if (this.toolRegistry && skill.tools) {
|
|
146
|
+
for (const tool of skill.tools) {
|
|
147
|
+
try {
|
|
148
|
+
this.toolRegistry.register(tool);
|
|
149
|
+
}
|
|
150
|
+
catch {
|
|
151
|
+
// Tool already registered — skip
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return true;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Activate multiple skills at once.
|
|
159
|
+
*/
|
|
160
|
+
activateMany(names) {
|
|
161
|
+
const activated = [];
|
|
162
|
+
for (const name of names) {
|
|
163
|
+
try {
|
|
164
|
+
if (this.activate(name)) {
|
|
165
|
+
activated.push(name);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
catch {
|
|
169
|
+
// Skip unknown skills
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return activated;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Deactivate a skill.
|
|
176
|
+
* - Unregisters its tools (if a ToolRegistry is bound).
|
|
177
|
+
*/
|
|
178
|
+
deactivate(name) {
|
|
179
|
+
const skill = this.activeSkills.get(name);
|
|
180
|
+
if (!skill)
|
|
181
|
+
return false;
|
|
182
|
+
// Unregister skill tools
|
|
183
|
+
if (this.toolRegistry && skill.tools) {
|
|
184
|
+
for (const tool of skill.tools) {
|
|
185
|
+
this.toolRegistry.remove(tool.name);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
this.activeSkills.delete(name);
|
|
189
|
+
this.activatedAt.delete(name);
|
|
190
|
+
// Allow re-activation to reload from disk if the skill files changed
|
|
191
|
+
this.loadedFileSkills.delete(name);
|
|
192
|
+
return true;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Deactivate all active skills.
|
|
196
|
+
*/
|
|
197
|
+
deactivateAll() {
|
|
198
|
+
const names = Array.from(this.activeSkills.keys());
|
|
199
|
+
for (const name of names) {
|
|
200
|
+
this.deactivate(name);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
// ─── Auto-Detection ──────────────────────────────────────────────────
|
|
204
|
+
/**
|
|
205
|
+
* Scan user input against unregistered (not yet active) skills.
|
|
206
|
+
* Activates any skill whose keywords match the input.
|
|
207
|
+
*
|
|
208
|
+
* @param input The user's input text.
|
|
209
|
+
* @returns Names of newly activated skills.
|
|
210
|
+
*/
|
|
211
|
+
detectAndActivate(input) {
|
|
212
|
+
const lowerInput = input.toLowerCase();
|
|
213
|
+
const activated = [];
|
|
214
|
+
for (const skill of this.registry.values()) {
|
|
215
|
+
// Skip already-active skills
|
|
216
|
+
if (this.activeSkills.has(skill.name))
|
|
217
|
+
continue;
|
|
218
|
+
// Skip skills without keywords
|
|
219
|
+
if (!skill.keywords || skill.keywords.length === 0)
|
|
220
|
+
continue;
|
|
221
|
+
// Check each keyword
|
|
222
|
+
for (const keyword of skill.keywords) {
|
|
223
|
+
if (lowerInput.includes(keyword.toLowerCase())) {
|
|
224
|
+
if (this.activate(skill.name)) {
|
|
225
|
+
activated.push(skill.name);
|
|
226
|
+
}
|
|
227
|
+
break; // One match is enough per skill
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
return activated;
|
|
232
|
+
}
|
|
233
|
+
// ─── System Prompt Assembly ──────────────────────────────────────────
|
|
234
|
+
/**
|
|
235
|
+
* Build the accumulated system prompt content from all active skills.
|
|
236
|
+
* Each skill's prompt is wrapped in a named section for clarity.
|
|
237
|
+
*
|
|
238
|
+
* Returns an empty string if no skills are active.
|
|
239
|
+
*/
|
|
240
|
+
buildSkillsPrompt() {
|
|
241
|
+
const active = Array.from(this.activeSkills.values());
|
|
242
|
+
if (active.length === 0)
|
|
243
|
+
return "";
|
|
244
|
+
const sections = [];
|
|
245
|
+
for (const skill of active) {
|
|
246
|
+
sections.push(`[Skill: ${skill.name}]\n${skill.systemPrompt}`);
|
|
247
|
+
}
|
|
248
|
+
return "\n\n" + sections.join("\n\n");
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Build a lightweight list of available (unactivated) skill names
|
|
252
|
+
* for inclusion in the system prompt.
|
|
253
|
+
*
|
|
254
|
+
* This is what "progressive disclosure" means — the agent sees
|
|
255
|
+
* the names up front but the full instructions only load on activation.
|
|
256
|
+
*/
|
|
257
|
+
buildAvailableSkillsHint() {
|
|
258
|
+
const available = [];
|
|
259
|
+
for (const skill of this.registry.values()) {
|
|
260
|
+
if (!this.activeSkills.has(skill.name)) {
|
|
261
|
+
available.push(`${skill.name}: ${skill.description}`);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
if (available.length === 0)
|
|
265
|
+
return "";
|
|
266
|
+
return ("\n\nAvailable skills (they activate automatically when needed, or you can explicitly request one):\n" +
|
|
267
|
+
available.map((line) => ` - ${line}`).join("\n"));
|
|
268
|
+
}
|
|
269
|
+
// ─── Query ───────────────────────────────────────────────────────────
|
|
270
|
+
/**
|
|
271
|
+
* Check if a skill is currently active.
|
|
272
|
+
*/
|
|
273
|
+
isActive(name) {
|
|
274
|
+
return this.activeSkills.has(name);
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Get names of all currently active skills.
|
|
278
|
+
*/
|
|
279
|
+
getActiveSkillNames() {
|
|
280
|
+
return Array.from(this.activeSkills.keys());
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Get the number of active skills.
|
|
284
|
+
*/
|
|
285
|
+
get activeCount() {
|
|
286
|
+
return this.activeSkills.size;
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Get status for all registered skills.
|
|
290
|
+
*/
|
|
291
|
+
getAllStatus() {
|
|
292
|
+
return Array.from(this.registry.values()).map((skill) => {
|
|
293
|
+
const active = this.activeSkills.has(skill.name);
|
|
294
|
+
return {
|
|
295
|
+
name: skill.name,
|
|
296
|
+
description: skill.description,
|
|
297
|
+
active,
|
|
298
|
+
loadedAt: this.activatedAt.get(skill.name),
|
|
299
|
+
};
|
|
300
|
+
});
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Get status for all active skills.
|
|
304
|
+
*/
|
|
305
|
+
getActiveStatus() {
|
|
306
|
+
return this.getAllStatus().filter((s) => s.active);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
exports.SkillManager = SkillManager;
|
|
310
|
+
//# sourceMappingURL=skill-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-manager.js","sourceRoot":"","sources":["../../src/skills/skill-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Tool } from "../tools/types";
|
|
2
|
+
/**
|
|
3
|
+
* A Skill is a reusable capability that can be loaded into the agent's
|
|
4
|
+
* system prompt on demand (progressive disclosure).
|
|
5
|
+
*
|
|
6
|
+
* Each skill carries:
|
|
7
|
+
* - A system prompt fragment with instructions for the LLM
|
|
8
|
+
* - Optional tools the skill needs
|
|
9
|
+
* - Optional keywords that trigger automatic activation
|
|
10
|
+
*/
|
|
11
|
+
export interface Skill {
|
|
12
|
+
/** Unique identifier for this skill. */
|
|
13
|
+
name: string;
|
|
14
|
+
/** Human-readable description (shown to the LLM or caller). */
|
|
15
|
+
description: string;
|
|
16
|
+
/**
|
|
17
|
+
* System prompt content injected into the agent's system message
|
|
18
|
+
* when this skill is activated.
|
|
19
|
+
*/
|
|
20
|
+
systemPrompt: string;
|
|
21
|
+
/**
|
|
22
|
+
* Optional keywords for auto-detection.
|
|
23
|
+
* When user input contains any of these, the skill is activated automatically.
|
|
24
|
+
*/
|
|
25
|
+
keywords?: string[];
|
|
26
|
+
/**
|
|
27
|
+
* Optional tools that this skill provides.
|
|
28
|
+
* These are registered when the skill activates and unregistered on deactivation.
|
|
29
|
+
*/
|
|
30
|
+
tools?: Tool[];
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Status of a skill within the SkillManager.
|
|
34
|
+
*/
|
|
35
|
+
export interface SkillStatus {
|
|
36
|
+
name: string;
|
|
37
|
+
description: string;
|
|
38
|
+
active: boolean;
|
|
39
|
+
loadedAt?: Date;
|
|
40
|
+
keywordMatch?: string;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/skills/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC;;;;;;;;GAQG;AACH,MAAM,WAAW,KAAK;IACpB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IAEb,+DAA+D;IAC/D,WAAW,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB;;;OAGG;IACH,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/skills/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Tool } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* Edit a file by finding and replacing exact text.
|
|
4
|
+
*
|
|
5
|
+
* Parameters:
|
|
6
|
+
* - file_path (required): Absolute path to the file to edit.
|
|
7
|
+
* - old_string (required): The exact text to find (must match exactly).
|
|
8
|
+
* - new_string (required): The replacement text.
|
|
9
|
+
* - replace_all (optional): Replace all occurrences (default: false).
|
|
10
|
+
*/
|
|
11
|
+
export declare const EditFileTool: Tool;
|
|
12
|
+
//# sourceMappingURL=edit-file.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edit-file.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/edit-file.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,EAAE,IA0F1B,CAAC"}
|