kagent-ts 0.1.4 → 0.1.5
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 +68 -21
- package/README.md +27 -371
- package/dist/compression/progressive-compressor.d.ts +66 -0
- package/dist/compression/progressive-compressor.d.ts.map +1 -0
- package/dist/compression/progressive-compressor.js +367 -0
- package/dist/compression/progressive-compressor.js.map +1 -0
- package/dist/compression/types.d.ts +1 -5
- package/dist/compression/types.d.ts.map +1 -1
- package/dist/context/context-manager.d.ts +34 -15
- package/dist/context/context-manager.d.ts.map +1 -1
- package/dist/context/context-manager.js +78 -28
- package/dist/context/context-manager.js.map +1 -1
- package/dist/context/types.d.ts +20 -4
- package/dist/context/types.d.ts.map +1 -1
- package/dist/core/agent.d.ts +354 -25
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +646 -64
- package/dist/core/agent.js.map +1 -1
- package/dist/core/fusion-agent.d.ts +207 -0
- package/dist/core/fusion-agent.d.ts.map +1 -0
- package/dist/core/fusion-agent.js +769 -0
- package/dist/core/fusion-agent.js.map +1 -0
- package/dist/core/hooks.d.ts +19 -7
- package/dist/core/hooks.d.ts.map +1 -1
- package/dist/core/plan-solve-agent.d.ts +1 -15
- package/dist/core/plan-solve-agent.d.ts.map +1 -1
- package/dist/core/plan-solve-agent.js +142 -117
- package/dist/core/plan-solve-agent.js.map +1 -1
- package/dist/core/react-agent.d.ts +0 -13
- package/dist/core/react-agent.d.ts.map +1 -1
- package/dist/core/react-agent.js +127 -102
- package/dist/core/react-agent.js.map +1 -1
- package/dist/core/response-schema.d.ts +65 -0
- package/dist/core/response-schema.d.ts.map +1 -1
- package/dist/core/response-schema.js +174 -1
- package/dist/core/response-schema.js.map +1 -1
- package/dist/core/system-prompts.d.ts +27 -0
- package/dist/core/system-prompts.d.ts.map +1 -0
- package/dist/core/system-prompts.js +112 -0
- package/dist/core/system-prompts.js.map +1 -0
- package/dist/eval/benchmark.d.ts +81 -0
- package/dist/eval/benchmark.d.ts.map +1 -0
- package/dist/eval/benchmark.js +292 -0
- package/dist/eval/benchmark.js.map +1 -0
- package/dist/eval/eval-runner.d.ts +79 -0
- package/dist/eval/eval-runner.d.ts.map +1 -0
- package/dist/eval/eval-runner.js +252 -0
- package/dist/eval/eval-runner.js.map +1 -0
- package/dist/eval/index.d.ts +7 -0
- package/dist/eval/index.d.ts.map +1 -0
- package/dist/eval/index.js +13 -0
- package/dist/eval/index.js.map +1 -0
- package/dist/eval/tool-call-evaluator.d.ts +72 -0
- package/dist/eval/tool-call-evaluator.d.ts.map +1 -0
- package/dist/eval/tool-call-evaluator.js +265 -0
- package/dist/eval/tool-call-evaluator.js.map +1 -0
- package/dist/eval/types.d.ts +219 -0
- package/dist/eval/types.d.ts.map +1 -0
- package/dist/eval/types.js +3 -0
- package/dist/eval/types.js.map +1 -0
- package/dist/index.d.ts +58 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +116 -8
- package/dist/index.js.map +1 -1
- package/dist/llm/anthropic-provider.d.ts +141 -0
- package/dist/llm/anthropic-provider.d.ts.map +1 -0
- package/dist/llm/anthropic-provider.js +486 -0
- package/dist/llm/anthropic-provider.js.map +1 -0
- package/dist/llm/errors.d.ts +26 -0
- package/dist/llm/errors.d.ts.map +1 -0
- package/dist/llm/errors.js +19 -0
- package/dist/llm/errors.js.map +1 -0
- package/dist/llm/factory.d.ts +73 -0
- package/dist/llm/factory.d.ts.map +1 -0
- package/dist/llm/factory.js +77 -0
- package/dist/llm/factory.js.map +1 -0
- package/dist/llm/fallback-provider.d.ts +47 -0
- package/dist/llm/fallback-provider.d.ts.map +1 -0
- package/dist/llm/fallback-provider.js +91 -0
- package/dist/llm/fallback-provider.js.map +1 -0
- package/dist/llm/interface.d.ts +54 -11
- package/dist/llm/interface.d.ts.map +1 -1
- package/dist/llm/interface.js +34 -0
- package/dist/llm/interface.js.map +1 -1
- package/dist/llm/model-router.d.ts +126 -0
- package/dist/llm/model-router.d.ts.map +1 -0
- package/dist/llm/model-router.js +178 -0
- package/dist/llm/model-router.js.map +1 -0
- package/dist/llm/openai-provider.d.ts +8 -32
- package/dist/llm/openai-provider.d.ts.map +1 -1
- package/dist/llm/openai-provider.js +27 -60
- package/dist/llm/openai-provider.js.map +1 -1
- package/dist/llm/rate-limiter.d.ts +41 -0
- package/dist/llm/rate-limiter.d.ts.map +1 -0
- package/dist/llm/rate-limiter.js +93 -0
- package/dist/llm/rate-limiter.js.map +1 -0
- package/dist/llm/retry.d.ts +26 -0
- package/dist/llm/retry.d.ts.map +1 -0
- package/dist/llm/retry.js +44 -0
- package/dist/llm/retry.js.map +1 -0
- package/dist/llm/token-budget.d.ts +97 -0
- package/dist/llm/token-budget.d.ts.map +1 -0
- package/dist/llm/token-budget.js +115 -0
- package/dist/llm/token-budget.js.map +1 -0
- package/dist/logging/index.d.ts +2 -0
- package/dist/logging/index.d.ts.map +1 -0
- package/dist/logging/index.js +7 -0
- package/dist/logging/index.js.map +1 -0
- package/dist/logging/logger.d.ts +38 -0
- package/dist/logging/logger.d.ts.map +1 -0
- package/dist/logging/logger.js +34 -0
- package/dist/logging/logger.js.map +1 -0
- package/dist/mcp/mcp-client-manager.d.ts +10 -2
- package/dist/mcp/mcp-client-manager.d.ts.map +1 -1
- package/dist/mcp/mcp-client-manager.js +20 -9
- package/dist/mcp/mcp-client-manager.js.map +1 -1
- package/dist/memory/index.d.ts +3 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +6 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/memory-manager.d.ts +119 -0
- package/dist/memory/memory-manager.d.ts.map +1 -0
- package/dist/memory/memory-manager.js +334 -0
- package/dist/memory/memory-manager.js.map +1 -0
- package/dist/messages/types.d.ts +2 -0
- package/dist/messages/types.d.ts.map +1 -1
- package/dist/orchestrator/index.d.ts +5 -0
- package/dist/orchestrator/index.d.ts.map +1 -0
- package/dist/orchestrator/index.js +13 -0
- package/dist/orchestrator/index.js.map +1 -0
- package/dist/orchestrator/json-extractor.d.ts +18 -0
- package/dist/orchestrator/json-extractor.d.ts.map +1 -0
- package/dist/orchestrator/json-extractor.js +111 -0
- package/dist/orchestrator/json-extractor.js.map +1 -0
- package/dist/orchestrator/orchestrator-agent.d.ts +152 -0
- package/dist/orchestrator/orchestrator-agent.d.ts.map +1 -0
- package/dist/orchestrator/orchestrator-agent.js +675 -0
- package/dist/orchestrator/orchestrator-agent.js.map +1 -0
- package/dist/orchestrator/orchestrator-response.d.ts +40 -0
- package/dist/orchestrator/orchestrator-response.d.ts.map +1 -0
- package/dist/orchestrator/orchestrator-response.js +275 -0
- package/dist/orchestrator/orchestrator-response.js.map +1 -0
- package/dist/orchestrator/orchestrator-types.d.ts +116 -0
- package/dist/orchestrator/orchestrator-types.d.ts.map +1 -0
- package/dist/orchestrator/orchestrator-types.js +3 -0
- package/dist/orchestrator/orchestrator-types.js.map +1 -0
- package/dist/preferences/preference-manager.d.ts +8 -3
- package/dist/preferences/preference-manager.d.ts.map +1 -1
- package/dist/preferences/preference-manager.js +17 -4
- package/dist/preferences/preference-manager.js.map +1 -1
- package/dist/rag/chroma-store.d.ts +52 -0
- package/dist/rag/chroma-store.d.ts.map +1 -0
- package/dist/rag/chroma-store.js +110 -0
- package/dist/rag/chroma-store.js.map +1 -0
- package/dist/rag/document-loader.d.ts +21 -0
- package/dist/rag/document-loader.d.ts.map +1 -0
- package/dist/rag/document-loader.js +129 -0
- package/dist/rag/document-loader.js.map +1 -0
- package/dist/rag/embedding-provider.d.ts +36 -0
- package/dist/rag/embedding-provider.d.ts.map +1 -0
- package/dist/rag/embedding-provider.js +74 -0
- package/dist/rag/embedding-provider.js.map +1 -0
- package/dist/rag/index.d.ts +17 -0
- package/dist/rag/index.d.ts.map +1 -0
- package/dist/rag/index.js +27 -0
- package/dist/rag/index.js.map +1 -0
- package/dist/rag/keyword-index.d.ts +53 -0
- package/dist/rag/keyword-index.d.ts.map +1 -0
- package/dist/rag/keyword-index.js +161 -0
- package/dist/rag/keyword-index.js.map +1 -0
- package/dist/rag/llm-reranker.d.ts +36 -0
- package/dist/rag/llm-reranker.d.ts.map +1 -0
- package/dist/rag/llm-reranker.js +95 -0
- package/dist/rag/llm-reranker.js.map +1 -0
- package/dist/rag/rag-manager.d.ts +54 -0
- package/dist/rag/rag-manager.d.ts.map +1 -0
- package/dist/rag/rag-manager.js +179 -0
- package/dist/rag/rag-manager.js.map +1 -0
- package/dist/rag/rag-types.d.ts +143 -0
- package/dist/rag/rag-types.d.ts.map +1 -0
- package/dist/rag/rag-types.js +9 -0
- package/dist/rag/rag-types.js.map +1 -0
- package/dist/rag/rrf.d.ts +47 -0
- package/dist/rag/rrf.d.ts.map +1 -0
- package/dist/rag/rrf.js +70 -0
- package/dist/rag/rrf.js.map +1 -0
- package/dist/rag/search-knowledge.d.ts +24 -0
- package/dist/rag/search-knowledge.d.ts.map +1 -0
- package/dist/rag/search-knowledge.js +86 -0
- package/dist/rag/search-knowledge.js.map +1 -0
- package/dist/rag/text-splitter.d.ts +25 -0
- package/dist/rag/text-splitter.d.ts.map +1 -0
- package/dist/rag/text-splitter.js +136 -0
- package/dist/rag/text-splitter.js.map +1 -0
- package/dist/rag/vector-store.d.ts +34 -0
- package/dist/rag/vector-store.d.ts.map +1 -0
- package/dist/rag/vector-store.js +73 -0
- package/dist/rag/vector-store.js.map +1 -0
- package/dist/reflection/error-notebook.d.ts +125 -0
- package/dist/reflection/error-notebook.d.ts.map +1 -0
- package/dist/reflection/error-notebook.js +368 -0
- package/dist/reflection/error-notebook.js.map +1 -0
- package/dist/reflection/index.d.ts +8 -0
- package/dist/reflection/index.d.ts.map +1 -0
- package/dist/reflection/index.js +12 -0
- package/dist/reflection/index.js.map +1 -0
- package/dist/reflection/memory-reflector.d.ts +97 -0
- package/dist/reflection/memory-reflector.d.ts.map +1 -0
- package/dist/reflection/memory-reflector.js +215 -0
- package/dist/reflection/memory-reflector.js.map +1 -0
- package/dist/reflection/reflection-agent.d.ts +105 -0
- package/dist/reflection/reflection-agent.d.ts.map +1 -0
- package/dist/reflection/reflection-agent.js +234 -0
- package/dist/reflection/reflection-agent.js.map +1 -0
- package/dist/reflection/reflection-hook.d.ts +50 -0
- package/dist/reflection/reflection-hook.d.ts.map +1 -0
- package/dist/reflection/reflection-hook.js +108 -0
- package/dist/reflection/reflection-hook.js.map +1 -0
- package/dist/rules/project-rules.d.ts +47 -0
- package/dist/rules/project-rules.d.ts.map +1 -0
- package/dist/rules/project-rules.js +166 -0
- package/dist/rules/project-rules.js.map +1 -0
- package/dist/security/boundaries.d.ts +81 -0
- package/dist/security/boundaries.d.ts.map +1 -0
- package/dist/security/boundaries.js +158 -0
- package/dist/security/boundaries.js.map +1 -0
- package/dist/security/index.d.ts +2 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +11 -0
- package/dist/security/index.js.map +1 -0
- package/dist/session/session-types.d.ts +25 -4
- package/dist/session/session-types.d.ts.map +1 -1
- package/dist/skills/file-skill-loader.d.ts +4 -6
- package/dist/skills/file-skill-loader.d.ts.map +1 -1
- package/dist/skills/file-skill-loader.js +8 -19
- package/dist/skills/file-skill-loader.js.map +1 -1
- package/dist/skills/index.d.ts +1 -1
- package/dist/skills/index.d.ts.map +1 -1
- package/dist/skills/index.js +1 -2
- package/dist/skills/index.js.map +1 -1
- package/dist/skills/skill-manager.d.ts +18 -8
- package/dist/skills/skill-manager.d.ts.map +1 -1
- package/dist/skills/skill-manager.js +58 -36
- package/dist/skills/skill-manager.js.map +1 -1
- package/dist/skills/types.d.ts +3 -8
- package/dist/skills/types.d.ts.map +1 -1
- package/dist/subagent/index.d.ts +4 -0
- package/dist/subagent/index.d.ts.map +1 -0
- package/dist/subagent/index.js +8 -0
- package/dist/subagent/index.js.map +1 -0
- package/dist/subagent/subagent-loader.d.ts +53 -0
- package/dist/subagent/subagent-loader.d.ts.map +1 -0
- package/dist/subagent/subagent-loader.js +155 -0
- package/dist/subagent/subagent-loader.js.map +1 -0
- package/dist/subagent/subagent-manager.d.ts +161 -0
- package/dist/subagent/subagent-manager.d.ts.map +1 -0
- package/dist/subagent/subagent-manager.js +468 -0
- package/dist/subagent/subagent-manager.js.map +1 -0
- package/dist/subagent/subagent-types.d.ts +77 -0
- package/dist/subagent/subagent-types.d.ts.map +1 -0
- package/dist/subagent/subagent-types.js +3 -0
- package/dist/subagent/subagent-types.js.map +1 -0
- package/dist/tools/builtin/bash.d.ts +3 -0
- package/dist/tools/builtin/bash.d.ts.map +1 -0
- package/dist/tools/builtin/bash.js +87 -0
- package/dist/tools/builtin/bash.js.map +1 -0
- package/dist/tools/builtin/edit-file.d.ts.map +1 -1
- package/dist/tools/builtin/edit-file.js +1 -0
- package/dist/tools/builtin/edit-file.js.map +1 -1
- package/dist/tools/builtin/index.d.ts +14 -0
- package/dist/tools/builtin/index.d.ts.map +1 -1
- package/dist/tools/builtin/index.js +45 -1
- package/dist/tools/builtin/index.js.map +1 -1
- package/dist/tools/builtin/list-errors.d.ts +7 -0
- package/dist/tools/builtin/list-errors.d.ts.map +1 -0
- package/dist/tools/builtin/list-errors.js +64 -0
- package/dist/tools/builtin/list-errors.js.map +1 -0
- package/dist/tools/builtin/list-subagents.d.ts +7 -0
- package/dist/tools/builtin/list-subagents.d.ts.map +1 -0
- package/dist/tools/builtin/list-subagents.js +21 -0
- package/dist/tools/builtin/list-subagents.js.map +1 -0
- package/dist/tools/builtin/recall.d.ts +11 -0
- package/dist/tools/builtin/recall.d.ts.map +1 -0
- package/dist/tools/builtin/recall.js +60 -0
- package/dist/tools/builtin/recall.js.map +1 -0
- package/dist/tools/builtin/remember.d.ts +12 -0
- package/dist/tools/builtin/remember.d.ts.map +1 -0
- package/dist/tools/builtin/remember.js +72 -0
- package/dist/tools/builtin/remember.js.map +1 -0
- package/dist/tools/builtin/skill.d.ts +14 -0
- package/dist/tools/builtin/skill.d.ts.map +1 -0
- package/dist/tools/builtin/skill.js +71 -0
- package/dist/tools/builtin/skill.js.map +1 -0
- package/dist/tools/builtin/spawn-subagent.d.ts +7 -0
- package/dist/tools/builtin/spawn-subagent.d.ts.map +1 -0
- package/dist/tools/builtin/spawn-subagent.js +43 -0
- package/dist/tools/builtin/spawn-subagent.js.map +1 -0
- package/dist/tools/builtin/web-fetch.d.ts +3 -0
- package/dist/tools/builtin/web-fetch.d.ts.map +1 -0
- package/dist/tools/builtin/web-fetch.js +101 -0
- package/dist/tools/builtin/web-fetch.js.map +1 -0
- package/dist/tools/builtin/write-file.d.ts.map +1 -1
- package/dist/tools/builtin/write-file.js +1 -0
- package/dist/tools/builtin/write-file.js.map +1 -1
- package/dist/tools/circuit-breaker.d.ts +19 -10
- package/dist/tools/circuit-breaker.d.ts.map +1 -1
- package/dist/tools/circuit-breaker.js +22 -11
- package/dist/tools/circuit-breaker.js.map +1 -1
- package/dist/tools/error-tracker.d.ts +28 -44
- package/dist/tools/error-tracker.d.ts.map +1 -1
- package/dist/tools/error-tracker.js +39 -156
- package/dist/tools/error-tracker.js.map +1 -1
- package/dist/tools/tool-filter.d.ts +70 -0
- package/dist/tools/tool-filter.d.ts.map +1 -0
- package/dist/tools/tool-filter.js +92 -0
- package/dist/tools/tool-filter.js.map +1 -0
- package/dist/tools/tool-output-truncator.d.ts +36 -0
- package/dist/tools/tool-output-truncator.d.ts.map +1 -0
- package/dist/tools/tool-output-truncator.js +117 -0
- package/dist/tools/tool-output-truncator.js.map +1 -0
- package/dist/tools/tool-registry.d.ts +25 -9
- package/dist/tools/tool-registry.d.ts.map +1 -1
- package/dist/tools/tool-registry.js +77 -28
- package/dist/tools/tool-registry.js.map +1 -1
- package/dist/tools/tool-validator.d.ts +13 -0
- package/dist/tools/tool-validator.d.ts.map +1 -0
- package/dist/tools/tool-validator.js +116 -0
- package/dist/tools/tool-validator.js.map +1 -0
- package/dist/tools/types.d.ts +86 -3
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/types.js +51 -2
- package/dist/tools/types.js.map +1 -1
- package/dist/trace/trace-logger.d.ts +30 -4
- package/dist/trace/trace-logger.d.ts.map +1 -1
- package/dist/trace/trace-logger.js +82 -6
- package/dist/trace/trace-logger.js.map +1 -1
- package/package.json +13 -4
- package/dist/compression/sliding-window.d.ts +0 -21
- package/dist/compression/sliding-window.d.ts.map +0 -1
- package/dist/compression/sliding-window.js +0 -44
- package/dist/compression/sliding-window.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,yBAAyB,EACzB,qBAAqB,EACrB,gBAAgB,EAChB,gCAAgC,EAChC,WAAW,GACZ,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.wrapAndScan = exports.buildUserContentInjectionWarning = exports.wrapUserAuthored = exports.buildInjectionWarning = exports.detectInjectionSignatures = exports.wrapUntrusted = void 0;
|
|
4
|
+
var boundaries_1 = require("./boundaries");
|
|
5
|
+
Object.defineProperty(exports, "wrapUntrusted", { enumerable: true, get: function () { return boundaries_1.wrapUntrusted; } });
|
|
6
|
+
Object.defineProperty(exports, "detectInjectionSignatures", { enumerable: true, get: function () { return boundaries_1.detectInjectionSignatures; } });
|
|
7
|
+
Object.defineProperty(exports, "buildInjectionWarning", { enumerable: true, get: function () { return boundaries_1.buildInjectionWarning; } });
|
|
8
|
+
Object.defineProperty(exports, "wrapUserAuthored", { enumerable: true, get: function () { return boundaries_1.wrapUserAuthored; } });
|
|
9
|
+
Object.defineProperty(exports, "buildUserContentInjectionWarning", { enumerable: true, get: function () { return boundaries_1.buildUserContentInjectionWarning; } });
|
|
10
|
+
Object.defineProperty(exports, "wrapAndScan", { enumerable: true, get: function () { return boundaries_1.wrapAndScan; } });
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":";;;AAAA,2CAOsB;AANpB,2GAAA,aAAa,OAAA;AACb,uHAAA,yBAAyB,OAAA;AACzB,mHAAA,qBAAqB,OAAA;AACrB,8GAAA,gBAAgB,OAAA;AAChB,8HAAA,gCAAgC,OAAA;AAChC,yGAAA,WAAW,OAAA"}
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import { MessageData } from "../messages/types";
|
|
2
|
+
import type { OrchestratorSessionState } from "../orchestrator/orchestrator-types";
|
|
2
3
|
/**
|
|
3
4
|
* Which agent paradigm the session belongs to.
|
|
4
5
|
*/
|
|
5
|
-
export type AgentType = "react" | "plan-solve";
|
|
6
|
+
export type AgentType = "react" | "plan-solve" | "fusion" | "orchestrator";
|
|
6
7
|
/**
|
|
7
8
|
* Lifecycle status of a persisted session.
|
|
8
|
-
* - "active":
|
|
9
|
+
* - "active": Session is in progress, checkpoint was saved mid-run.
|
|
9
10
|
* - "interrupted": Session was interrupted by a network error, ready for resume.
|
|
10
|
-
* - "completed":
|
|
11
|
+
* - "completed": Session finished normally.
|
|
12
|
+
* - "cancelled": User cancelled (Ctrl+C); session preserved for later resume.
|
|
11
13
|
*/
|
|
12
|
-
export type SessionStatus = "active" | "interrupted" | "completed";
|
|
14
|
+
export type SessionStatus = "active" | "interrupted" | "completed" | "cancelled";
|
|
13
15
|
/**
|
|
14
16
|
* Serializable plan state for PlanSolveAgent sessions.
|
|
15
17
|
*/
|
|
@@ -19,6 +21,21 @@ export interface PlanSolveSessionState {
|
|
|
19
21
|
completedSteps: number;
|
|
20
22
|
consecutiveFailures: number;
|
|
21
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Serializable fusion state for FusionAgent sessions.
|
|
26
|
+
*/
|
|
27
|
+
export interface FusionSessionState {
|
|
28
|
+
/** Task complexity determined during routing. */
|
|
29
|
+
complexity: "simple" | "complex";
|
|
30
|
+
/** Whether routing has been completed. */
|
|
31
|
+
routed: boolean;
|
|
32
|
+
currentPlan: string[];
|
|
33
|
+
hasPlan: boolean;
|
|
34
|
+
completedSteps: number;
|
|
35
|
+
consecutiveFailures: number;
|
|
36
|
+
reflectionEnabled: boolean;
|
|
37
|
+
inlineReflectionsDone: number;
|
|
38
|
+
}
|
|
22
39
|
/**
|
|
23
40
|
* Full session state snapshot.
|
|
24
41
|
*
|
|
@@ -39,6 +56,10 @@ export interface SessionState {
|
|
|
39
56
|
messages: MessageData[];
|
|
40
57
|
/** Plan-Solve specific state (only present for plan-solve agents). */
|
|
41
58
|
planState?: PlanSolveSessionState;
|
|
59
|
+
/** Fusion specific state (only present for fusion agents). */
|
|
60
|
+
fusionState?: FusionSessionState;
|
|
61
|
+
/** Orchestrator specific state (only present for orchestrator agents). */
|
|
62
|
+
orchestratorState?: OrchestratorSessionState;
|
|
42
63
|
/** ISO-8601 timestamp of session creation (stable across saves). */
|
|
43
64
|
createdAt: string;
|
|
44
65
|
/** ISO-8601 timestamp of last checkpoint save. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-types.d.ts","sourceRoot":"","sources":["../../src/session/session-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"session-types.d.ts","sourceRoot":"","sources":["../../src/session/session-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAEnF;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,YAAY,GAAG,QAAQ,GAAG,cAAc,CAAC;AAE3E;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,aAAa,GAAG,WAAW,GAAG,WAAW,CAAC;AAEjF;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,UAAU,EAAE,QAAQ,GAAG,SAAS,CAAC;IACjC,0CAA0C;IAC1C,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY;IAC3B,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAC;IAElB,6CAA6C;IAC7C,SAAS,EAAE,SAAS,CAAC;IAErB,gDAAgD;IAChD,YAAY,EAAE,MAAM,CAAC;IAErB,+CAA+C;IAC/C,QAAQ,EAAE,WAAW,EAAE,CAAC;IAExB,sEAAsE;IACtE,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAElC,8DAA8D;IAC9D,WAAW,CAAC,EAAE,kBAAkB,CAAC;IAEjC,0EAA0E;IAC1E,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IAE7C,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC;IAElB,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAElB,gCAAgC;IAChC,MAAM,EAAE,aAAa,CAAC;IAEtB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Skill } from "./types";
|
|
2
|
+
import { Logger } from "../logging/logger";
|
|
2
3
|
/**
|
|
3
4
|
* Parse YAML-like frontmatter from a Markdown file.
|
|
4
5
|
*
|
|
@@ -18,11 +19,6 @@ export declare function parseFrontmatter(raw: string): {
|
|
|
18
19
|
frontmatter: Record<string, string>;
|
|
19
20
|
body: string;
|
|
20
21
|
};
|
|
21
|
-
/**
|
|
22
|
-
* Parse a comma-separated keywords string into an array.
|
|
23
|
-
* Returns `undefined` when the input is empty or absent.
|
|
24
|
-
*/
|
|
25
|
-
export declare function parseKeywords(raw?: string): string[] | undefined;
|
|
26
22
|
/**
|
|
27
23
|
* Loads skill definitions from a directory on disk.
|
|
28
24
|
*
|
|
@@ -43,10 +39,12 @@ export declare function parseKeywords(raw?: string): string[] | undefined;
|
|
|
43
39
|
*/
|
|
44
40
|
export declare class FileSkillLoader {
|
|
45
41
|
private directory;
|
|
42
|
+
private logger;
|
|
46
43
|
/**
|
|
47
44
|
* @param directory Path to the skills root directory (default: `./skills`).
|
|
45
|
+
* @param logger Logger instance (defaults to ConsoleLogger).
|
|
48
46
|
*/
|
|
49
|
-
constructor(directory?: string);
|
|
47
|
+
constructor(directory?: string, logger?: Logger);
|
|
50
48
|
/**
|
|
51
49
|
* Get the root directory path.
|
|
52
50
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-skill-loader.d.ts","sourceRoot":"","sources":["../../src/skills/file-skill-loader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"file-skill-loader.d.ts","sourceRoot":"","sources":["../../src/skills/file-skill-loader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAiB,MAAM,mBAAmB,CAAC;AAI1D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG;IAC7C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;CACd,CAuBA;AAwBD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAS;IAEvB;;;OAGG;gBACS,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAK/C;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;;OAGG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAKjC;;;;;;;;;OASG;IACH,IAAI,IAAI,KAAK,EAAE;IA2Df;;;;;;OAMG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAsCvC"}
|
|
@@ -35,9 +35,9 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.FileSkillLoader = void 0;
|
|
37
37
|
exports.parseFrontmatter = parseFrontmatter;
|
|
38
|
-
exports.parseKeywords = parseKeywords;
|
|
39
38
|
const fs = __importStar(require("fs"));
|
|
40
39
|
const path = __importStar(require("path"));
|
|
40
|
+
const logger_1 = require("../logging/logger");
|
|
41
41
|
// ─── Frontmatter Parsing ───────────────────────────────────────────────────
|
|
42
42
|
/**
|
|
43
43
|
* Parse YAML-like frontmatter from a Markdown file.
|
|
@@ -79,19 +79,6 @@ function parseFrontmatter(raw) {
|
|
|
79
79
|
}
|
|
80
80
|
return { frontmatter, body: match[2].trim() };
|
|
81
81
|
}
|
|
82
|
-
/**
|
|
83
|
-
* Parse a comma-separated keywords string into an array.
|
|
84
|
-
* Returns `undefined` when the input is empty or absent.
|
|
85
|
-
*/
|
|
86
|
-
function parseKeywords(raw) {
|
|
87
|
-
if (!raw)
|
|
88
|
-
return undefined;
|
|
89
|
-
const keywords = raw
|
|
90
|
-
.split(",")
|
|
91
|
-
.map((k) => k.trim())
|
|
92
|
-
.filter(Boolean);
|
|
93
|
-
return keywords.length > 0 ? keywords : undefined;
|
|
94
|
-
}
|
|
95
82
|
// ─── Script Execution ──────────────────────────────────────────────────────
|
|
96
83
|
const REFERENCE_EXTENSIONS = new Set([".md", ".txt"]);
|
|
97
84
|
/**
|
|
@@ -128,11 +115,14 @@ function validateSkillName(name) {
|
|
|
128
115
|
*/
|
|
129
116
|
class FileSkillLoader {
|
|
130
117
|
directory;
|
|
118
|
+
logger;
|
|
131
119
|
/**
|
|
132
120
|
* @param directory Path to the skills root directory (default: `./skills`).
|
|
121
|
+
* @param logger Logger instance (defaults to ConsoleLogger).
|
|
133
122
|
*/
|
|
134
|
-
constructor(directory) {
|
|
123
|
+
constructor(directory, logger) {
|
|
135
124
|
this.directory = path.resolve(directory || "./skills");
|
|
125
|
+
this.logger = logger ?? new logger_1.ConsoleLogger();
|
|
136
126
|
}
|
|
137
127
|
/**
|
|
138
128
|
* Get the root directory path.
|
|
@@ -181,13 +171,13 @@ class FileSkillLoader {
|
|
|
181
171
|
raw = fs.readFileSync(skillMdPath, "utf-8");
|
|
182
172
|
}
|
|
183
173
|
catch {
|
|
184
|
-
|
|
174
|
+
this.logger.warn("Skills", `Skipping "${entry.name}": no SKILL.md found in ${skillPath}`);
|
|
185
175
|
continue;
|
|
186
176
|
}
|
|
187
177
|
const { frontmatter, body } = parseFrontmatter(raw);
|
|
188
178
|
const name = frontmatter.name?.trim();
|
|
189
179
|
if (!name) {
|
|
190
|
-
|
|
180
|
+
this.logger.warn("Skills", `Skipping "${entry.name}": SKILL.md has no "name" in frontmatter`);
|
|
191
181
|
continue;
|
|
192
182
|
}
|
|
193
183
|
try {
|
|
@@ -195,14 +185,13 @@ class FileSkillLoader {
|
|
|
195
185
|
}
|
|
196
186
|
catch (err) {
|
|
197
187
|
const message = err instanceof Error ? err.message : String(err);
|
|
198
|
-
|
|
188
|
+
this.logger.warn("Skills", `Skipping "${entry.name}": ${message}`);
|
|
199
189
|
continue;
|
|
200
190
|
}
|
|
201
191
|
skills.push({
|
|
202
192
|
name,
|
|
203
193
|
description: frontmatter.description?.trim() ?? "",
|
|
204
194
|
systemPrompt: "", // Loaded lazily on activation
|
|
205
|
-
keywords: parseKeywords(frontmatter.keywords),
|
|
206
195
|
});
|
|
207
196
|
}
|
|
208
197
|
return skills;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-skill-loader.js","sourceRoot":"","sources":["../../src/skills/file-skill-loader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"file-skill-loader.js","sourceRoot":"","sources":["../../src/skills/file-skill-loader.ts"],"names":[],"mappings":"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"}
|
package/dist/skills/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { SkillManager } from "./skill-manager";
|
|
2
|
-
export { FileSkillLoader, parseFrontmatter
|
|
2
|
+
export { FileSkillLoader, parseFrontmatter } from "./file-skill-loader";
|
|
3
3
|
export type { Skill, SkillStatus } from "./types";
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +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,
|
|
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,MAAM,qBAAqB,CAAC;AACxE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
|
package/dist/skills/index.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.parseFrontmatter = exports.FileSkillLoader = exports.SkillManager = void 0;
|
|
4
4
|
var skill_manager_1 = require("./skill-manager");
|
|
5
5
|
Object.defineProperty(exports, "SkillManager", { enumerable: true, get: function () { return skill_manager_1.SkillManager; } });
|
|
6
6
|
var file_skill_loader_1 = require("./file-skill-loader");
|
|
7
7
|
Object.defineProperty(exports, "FileSkillLoader", { enumerable: true, get: function () { return file_skill_loader_1.FileSkillLoader; } });
|
|
8
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
9
|
//# sourceMappingURL=index.js.map
|
package/dist/skills/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":";;;AAAA,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":";;;AAAA,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,yDAAwE;AAA/D,oHAAA,eAAe,OAAA;AAAE,qHAAA,gBAAgB,OAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Skill, SkillStatus } from "./types";
|
|
2
|
+
import { Logger } from "../logging/logger";
|
|
2
3
|
/**
|
|
3
4
|
* Manages skill registration, activation, and progressive disclosure.
|
|
4
5
|
*
|
|
@@ -14,6 +15,8 @@ import { Skill, SkillStatus } from "./types";
|
|
|
14
15
|
* 4. `buildSkillsPrompt()` includes the active skill's full system prompt
|
|
15
16
|
*/
|
|
16
17
|
export declare class SkillManager {
|
|
18
|
+
private logger;
|
|
19
|
+
constructor(logger?: Logger);
|
|
17
20
|
/** All registered skills (active or not), keyed by name. */
|
|
18
21
|
private registry;
|
|
19
22
|
/** Skills that are currently active. */
|
|
@@ -24,6 +27,11 @@ export declare class SkillManager {
|
|
|
24
27
|
private fileLoaders;
|
|
25
28
|
/** File-based skills whose full content has been loaded from disk. */
|
|
26
29
|
private loadedFileSkills;
|
|
30
|
+
/**
|
|
31
|
+
* Register a skill object directly (programmatic registration).
|
|
32
|
+
* Used when skills are defined in code rather than loaded from disk.
|
|
33
|
+
*/
|
|
34
|
+
register(skill: Skill): void;
|
|
27
35
|
/**
|
|
28
36
|
* Unregister a skill by name. Deactivates it first if active.
|
|
29
37
|
*/
|
|
@@ -39,6 +47,16 @@ export declare class SkillManager {
|
|
|
39
47
|
* @returns Number of skills successfully registered.
|
|
40
48
|
*/
|
|
41
49
|
registerFromDirectory(dir: string): number;
|
|
50
|
+
/**
|
|
51
|
+
* Re-scan the skills directory for new SKILL.md files.
|
|
52
|
+
*
|
|
53
|
+
* Safe to call at the start of each run — only registers skills that
|
|
54
|
+
* haven't been registered yet. Already-registered skills are left as-is.
|
|
55
|
+
*
|
|
56
|
+
* @param dir Path to the skills directory.
|
|
57
|
+
* @returns Names of newly registered skills (empty if nothing changed).
|
|
58
|
+
*/
|
|
59
|
+
reloadFromDirectory(dir: string): string[];
|
|
42
60
|
/**
|
|
43
61
|
* Check if a skill is registered.
|
|
44
62
|
*/
|
|
@@ -69,14 +87,6 @@ export declare class SkillManager {
|
|
|
69
87
|
* Deactivate all active skills.
|
|
70
88
|
*/
|
|
71
89
|
deactivateAll(): void;
|
|
72
|
-
/**
|
|
73
|
-
* Scan user input against unregistered (not yet active) skills.
|
|
74
|
-
* Activates any skill whose keywords match the input.
|
|
75
|
-
*
|
|
76
|
-
* @param input The user's input text.
|
|
77
|
-
* @returns Names of newly activated skills.
|
|
78
|
-
*/
|
|
79
|
-
detectAndActivate(input: string): string[];
|
|
80
90
|
/**
|
|
81
91
|
* Build the accumulated system prompt content from all active skills.
|
|
82
92
|
* Each skill's prompt is wrapped in a named section for clarity.
|
|
@@ -1 +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;
|
|
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,MAAM,EAAiB,MAAM,mBAAmB,CAAC;AAO1D;;;;;;;;;;;;;GAaG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,CAAC,EAAE,MAAM;IAI3B,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;IAIlD;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAO5B;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAQjC;;;;;;;;;OASG;IACH,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IA+B1C;;;;;;;;OAQG;IACH,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE;IAc1C;;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;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IA+B/B;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAcvC;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAWjC;;OAEG;IACH,aAAa,IAAI,IAAI;IASrB;;;;;OAKG;IACH,iBAAiB,IAAI,MAAM;IAqB3B;;;;;;OAMG;IACH,wBAAwB,IAAI,MAAM;IAwBlC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI/B;;OAEG;IACH,mBAAmB,IAAI,MAAM,EAAE;IAI/B;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;OAEG;IACH,YAAY,IAAI,WAAW,EAAE;IAY7B;;OAEG;IACH,eAAe,IAAI,WAAW,EAAE;CAGjC"}
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SkillManager = void 0;
|
|
4
4
|
const file_skill_loader_1 = require("./file-skill-loader");
|
|
5
|
+
const logger_1 = require("../logging/logger");
|
|
6
|
+
const boundaries_1 = require("../security/boundaries");
|
|
5
7
|
/**
|
|
6
8
|
* Manages skill registration, activation, and progressive disclosure.
|
|
7
9
|
*
|
|
@@ -17,6 +19,10 @@ const file_skill_loader_1 = require("./file-skill-loader");
|
|
|
17
19
|
* 4. `buildSkillsPrompt()` includes the active skill's full system prompt
|
|
18
20
|
*/
|
|
19
21
|
class SkillManager {
|
|
22
|
+
logger;
|
|
23
|
+
constructor(logger) {
|
|
24
|
+
this.logger = logger ?? new logger_1.ConsoleLogger();
|
|
25
|
+
}
|
|
20
26
|
/** All registered skills (active or not), keyed by name. */
|
|
21
27
|
registry = new Map();
|
|
22
28
|
/** Skills that are currently active. */
|
|
@@ -28,6 +34,16 @@ class SkillManager {
|
|
|
28
34
|
/** File-based skills whose full content has been loaded from disk. */
|
|
29
35
|
loadedFileSkills = new Set();
|
|
30
36
|
// ─── Registration ────────────────────────────────────────────────────
|
|
37
|
+
/**
|
|
38
|
+
* Register a skill object directly (programmatic registration).
|
|
39
|
+
* Used when skills are defined in code rather than loaded from disk.
|
|
40
|
+
*/
|
|
41
|
+
register(skill) {
|
|
42
|
+
if (this.registry.has(skill.name)) {
|
|
43
|
+
throw new Error(`Skill "${skill.name}" is already registered.`);
|
|
44
|
+
}
|
|
45
|
+
this.registry.set(skill.name, skill);
|
|
46
|
+
}
|
|
31
47
|
/**
|
|
32
48
|
* Unregister a skill by name. Deactivates it first if active.
|
|
33
49
|
*/
|
|
@@ -49,12 +65,12 @@ class SkillManager {
|
|
|
49
65
|
* @returns Number of skills successfully registered.
|
|
50
66
|
*/
|
|
51
67
|
registerFromDirectory(dir) {
|
|
52
|
-
const loader = new file_skill_loader_1.FileSkillLoader(dir);
|
|
68
|
+
const loader = new file_skill_loader_1.FileSkillLoader(dir, this.logger);
|
|
53
69
|
const scanned = loader.scan();
|
|
54
70
|
let count = 0;
|
|
55
71
|
for (const skill of scanned) {
|
|
56
72
|
if (this.registry.has(skill.name)) {
|
|
57
|
-
|
|
73
|
+
this.logger.warn("Skills", `Skipping "${skill.name}": already registered (duplicate name).`);
|
|
58
74
|
continue;
|
|
59
75
|
}
|
|
60
76
|
this.registry.set(skill.name, skill);
|
|
@@ -62,13 +78,36 @@ class SkillManager {
|
|
|
62
78
|
count++;
|
|
63
79
|
}
|
|
64
80
|
if (count > 0) {
|
|
65
|
-
|
|
81
|
+
this.logger.info("Skills", `Registered ${count} file-based skill(s) from ${dir}` +
|
|
66
82
|
(scanned.length !== count
|
|
67
83
|
? ` (${scanned.length - count} skipped)`
|
|
68
84
|
: ""));
|
|
69
85
|
}
|
|
70
86
|
return count;
|
|
71
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* Re-scan the skills directory for new SKILL.md files.
|
|
90
|
+
*
|
|
91
|
+
* Safe to call at the start of each run — only registers skills that
|
|
92
|
+
* haven't been registered yet. Already-registered skills are left as-is.
|
|
93
|
+
*
|
|
94
|
+
* @param dir Path to the skills directory.
|
|
95
|
+
* @returns Names of newly registered skills (empty if nothing changed).
|
|
96
|
+
*/
|
|
97
|
+
reloadFromDirectory(dir) {
|
|
98
|
+
const before = new Set(this.registry.keys());
|
|
99
|
+
this.registerFromDirectory(dir);
|
|
100
|
+
const after = new Set(this.registry.keys());
|
|
101
|
+
const added = [];
|
|
102
|
+
for (const name of after) {
|
|
103
|
+
if (!before.has(name))
|
|
104
|
+
added.push(name);
|
|
105
|
+
}
|
|
106
|
+
if (added.length > 0) {
|
|
107
|
+
this.logger.info("Skills", `Picked up ${added.length} new skill(s): ${added.join(", ")}`);
|
|
108
|
+
}
|
|
109
|
+
return added;
|
|
110
|
+
}
|
|
72
111
|
/**
|
|
73
112
|
* Check if a skill is registered.
|
|
74
113
|
*/
|
|
@@ -156,36 +195,6 @@ class SkillManager {
|
|
|
156
195
|
this.deactivate(name);
|
|
157
196
|
}
|
|
158
197
|
}
|
|
159
|
-
// ─── Auto-Detection ──────────────────────────────────────────────────
|
|
160
|
-
/**
|
|
161
|
-
* Scan user input against unregistered (not yet active) skills.
|
|
162
|
-
* Activates any skill whose keywords match the input.
|
|
163
|
-
*
|
|
164
|
-
* @param input The user's input text.
|
|
165
|
-
* @returns Names of newly activated skills.
|
|
166
|
-
*/
|
|
167
|
-
detectAndActivate(input) {
|
|
168
|
-
const lowerInput = input.toLowerCase();
|
|
169
|
-
const activated = [];
|
|
170
|
-
for (const skill of this.registry.values()) {
|
|
171
|
-
// Skip already-active skills
|
|
172
|
-
if (this.activeSkills.has(skill.name))
|
|
173
|
-
continue;
|
|
174
|
-
// Skip skills without keywords
|
|
175
|
-
if (!skill.keywords || skill.keywords.length === 0)
|
|
176
|
-
continue;
|
|
177
|
-
// Check each keyword
|
|
178
|
-
for (const keyword of skill.keywords) {
|
|
179
|
-
if (lowerInput.includes(keyword.toLowerCase())) {
|
|
180
|
-
if (this.activate(skill.name)) {
|
|
181
|
-
activated.push(skill.name);
|
|
182
|
-
}
|
|
183
|
-
break; // One match is enough per skill
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
return activated;
|
|
188
|
-
}
|
|
189
198
|
// ─── System Prompt Assembly ──────────────────────────────────────────
|
|
190
199
|
/**
|
|
191
200
|
* Build the accumulated system prompt content from all active skills.
|
|
@@ -201,7 +210,14 @@ class SkillManager {
|
|
|
201
210
|
for (const skill of active) {
|
|
202
211
|
sections.push(`[Skill: ${skill.name}]\n${skill.systemPrompt ?? ""}`);
|
|
203
212
|
}
|
|
204
|
-
|
|
213
|
+
const body = sections.join("\n\n");
|
|
214
|
+
// Scan for prompt-injection signatures in user-authored skill content
|
|
215
|
+
const patterns = (0, boundaries_1.detectInjectionSignatures)(body);
|
|
216
|
+
const warning = (0, boundaries_1.buildUserContentInjectionWarning)(patterns, "skills");
|
|
217
|
+
// Wrap with user-authored boundary markers (skills are user-authored files,
|
|
218
|
+
// same risk profile as project rules)
|
|
219
|
+
const wrapped = (0, boundaries_1.wrapUserAuthored)("Active Skills", body);
|
|
220
|
+
return "\n\n" + warning + wrapped;
|
|
205
221
|
}
|
|
206
222
|
/**
|
|
207
223
|
* Build a lightweight list of available (unactivated) skill names
|
|
@@ -219,8 +235,14 @@ class SkillManager {
|
|
|
219
235
|
}
|
|
220
236
|
if (available.length === 0)
|
|
221
237
|
return "";
|
|
222
|
-
|
|
223
|
-
available.map((line) => ` - ${line}`).join("\n")
|
|
238
|
+
const body = "Available skills (use the `skill` tool to activate them when needed):\n" +
|
|
239
|
+
available.map((line) => ` - ${line}`).join("\n");
|
|
240
|
+
// Scan for prompt-injection signatures in skill names/descriptions
|
|
241
|
+
const patterns = (0, boundaries_1.detectInjectionSignatures)(body);
|
|
242
|
+
const warning = (0, boundaries_1.buildUserContentInjectionWarning)(patterns, "skill descriptions");
|
|
243
|
+
// Wrap with user-authored boundary markers
|
|
244
|
+
const wrapped = (0, boundaries_1.wrapUserAuthored)("Available Skills", body);
|
|
245
|
+
return "\n\n" + warning + wrapped;
|
|
224
246
|
}
|
|
225
247
|
// ─── Query ───────────────────────────────────────────────────────────
|
|
226
248
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-manager.js","sourceRoot":"","sources":["../../src/skills/skill-manager.ts"],"names":[],"mappings":";;;AACA,2DAAsD;
|
|
1
|
+
{"version":3,"file":"skill-manager.js","sourceRoot":"","sources":["../../src/skills/skill-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/skills/types.d.ts
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* A Skill is a reusable capability that can be loaded into the agent's
|
|
3
3
|
* system prompt on demand (progressive disclosure).
|
|
4
4
|
*
|
|
5
|
-
* Each skill carries
|
|
6
|
-
* -
|
|
7
|
-
*
|
|
5
|
+
* Each skill carries a system prompt fragment with instructions for the LLM.
|
|
6
|
+
* Activation is LLM-driven — the agent calls the `skill` tool to load a skill
|
|
7
|
+
* when it determines one is needed.
|
|
8
8
|
*/
|
|
9
9
|
export interface Skill {
|
|
10
10
|
/** Unique identifier for this skill. */
|
|
@@ -16,11 +16,6 @@ export interface Skill {
|
|
|
16
16
|
* when this skill is activated.
|
|
17
17
|
*/
|
|
18
18
|
systemPrompt?: string;
|
|
19
|
-
/**
|
|
20
|
-
* Optional keywords for auto-detection.
|
|
21
|
-
* When user input contains any of these, the skill is activated automatically.
|
|
22
|
-
*/
|
|
23
|
-
keywords?: string[];
|
|
24
19
|
}
|
|
25
20
|
/**
|
|
26
21
|
* Status of a skill within the SkillManager.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/skills/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,KAAK;IACpB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IAEb,+DAA+D;IAC/D,WAAW,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/skills/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,KAAK;IACpB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IAEb,+DAA+D;IAC/D,WAAW,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;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;CACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/subagent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,cAAc,GACf,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SubAgentLoader = exports.SubAgentManager = void 0;
|
|
4
|
+
var subagent_manager_1 = require("./subagent-manager");
|
|
5
|
+
Object.defineProperty(exports, "SubAgentManager", { enumerable: true, get: function () { return subagent_manager_1.SubAgentManager; } });
|
|
6
|
+
var subagent_loader_1 = require("./subagent-loader");
|
|
7
|
+
Object.defineProperty(exports, "SubAgentLoader", { enumerable: true, get: function () { return subagent_loader_1.SubAgentLoader; } });
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/subagent/index.ts"],"names":[],"mappings":";;;AAAA,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,qDAAmD;AAA1C,iHAAA,cAAc,OAAA"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { SubAgentDefinition } from "./subagent-types";
|
|
2
|
+
import { Logger } from "../logging/logger";
|
|
3
|
+
/**
|
|
4
|
+
* Loads sub-agent definitions from a directory of AGENT.md files.
|
|
5
|
+
*
|
|
6
|
+
* Expected directory structure:
|
|
7
|
+
* ```
|
|
8
|
+
* subagents/
|
|
9
|
+
* ├── <agent-name>/
|
|
10
|
+
* │ └── AGENT.md # Frontmatter (metadata) + body (system prompt)
|
|
11
|
+
* ├── <another-agent>/
|
|
12
|
+
* │ └── AGENT.md
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* The AGENT.md format:
|
|
16
|
+
* ```markdown
|
|
17
|
+
* ---
|
|
18
|
+
* name: code-reviewer
|
|
19
|
+
* description: Reviews code for bugs and style issues
|
|
20
|
+
* tools: read_file, grep_search, glob_search
|
|
21
|
+
* skills: code-review
|
|
22
|
+
* ---
|
|
23
|
+
* You are a code review specialist...
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare class SubAgentLoader {
|
|
27
|
+
private directory;
|
|
28
|
+
private agentFileName;
|
|
29
|
+
private logger;
|
|
30
|
+
/**
|
|
31
|
+
* @param directory Path to the sub-agents root directory.
|
|
32
|
+
* @param agentFileName The markdown filename to look for (default: "AGENT.md").
|
|
33
|
+
* @param logger Logger instance (defaults to ConsoleLogger).
|
|
34
|
+
*/
|
|
35
|
+
constructor(directory: string, agentFileName?: string, logger?: Logger);
|
|
36
|
+
/**
|
|
37
|
+
* Get the root directory path.
|
|
38
|
+
*/
|
|
39
|
+
getDirectory(): string;
|
|
40
|
+
/**
|
|
41
|
+
* Scan the directory and return SubAgentDefinition objects for each
|
|
42
|
+
* subdirectory that contains a valid AGENT.md file.
|
|
43
|
+
*
|
|
44
|
+
* Subdirectories without an AGENT.md or without a `name` in frontmatter
|
|
45
|
+
* are skipped with a warning.
|
|
46
|
+
*/
|
|
47
|
+
scan(): SubAgentDefinition[];
|
|
48
|
+
/**
|
|
49
|
+
* Load a single sub-agent definition by name (the subdirectory name).
|
|
50
|
+
*/
|
|
51
|
+
loadDefinition(dirName: string): SubAgentDefinition | null;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=subagent-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subagent-loader.d.ts","sourceRoot":"","sources":["../../src/subagent/subagent-loader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAiB,MAAM,mBAAmB,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAS;IAEvB;;;;OAIG;gBACS,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAMtE;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;;;;;OAMG;IACH,IAAI,IAAI,kBAAkB,EAAE;IAuB5B;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;CAoC3D"}
|