agent-world 0.11.1 → 0.12.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/README.md +17 -7
- package/dist/cli/commands.d.ts +109 -0
- package/dist/cli/commands.js +2024 -0
- package/dist/cli/display.d.ts +124 -0
- package/dist/cli/display.js +381 -0
- package/dist/cli/hitl.d.ts +33 -0
- package/dist/cli/hitl.js +81 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/stream.d.ts +41 -0
- package/dist/cli/stream.js +222 -0
- package/dist/core/activity-tracker.d.ts +16 -0
- package/dist/core/activity-tracker.d.ts.map +1 -0
- package/dist/core/activity-tracker.js +91 -0
- package/dist/core/activity-tracker.js.map +1 -0
- package/dist/core/ai-commands.d.ts +16 -0
- package/dist/core/ai-commands.d.ts.map +1 -0
- package/dist/core/ai-commands.js +24 -0
- package/dist/core/ai-commands.js.map +1 -0
- package/dist/core/ai-sdk-patch.d.ts +24 -0
- package/dist/core/ai-sdk-patch.d.ts.map +1 -0
- package/dist/core/ai-sdk-patch.js +169 -0
- package/dist/core/ai-sdk-patch.js.map +1 -0
- package/dist/core/anthropic-direct.d.ts +52 -0
- package/dist/core/anthropic-direct.d.ts.map +1 -0
- package/dist/core/anthropic-direct.js +301 -0
- package/dist/core/anthropic-direct.js.map +1 -0
- package/dist/core/approval-cache.d.ts +104 -0
- package/dist/core/approval-cache.d.ts.map +1 -0
- package/dist/core/approval-cache.js +150 -0
- package/dist/core/approval-cache.js.map +1 -0
- package/dist/core/chat-constants.d.ts +20 -0
- package/dist/core/chat-constants.d.ts.map +1 -0
- package/dist/core/chat-constants.js +22 -0
- package/dist/core/chat-constants.js.map +1 -0
- package/dist/core/create-agent-tool.d.ts +66 -0
- package/dist/core/create-agent-tool.d.ts.map +1 -0
- package/dist/core/create-agent-tool.js +212 -0
- package/dist/core/create-agent-tool.js.map +1 -0
- package/dist/core/events/approval-checker.d.ts +61 -0
- package/dist/core/events/approval-checker.d.ts.map +1 -0
- package/dist/core/events/approval-checker.js +226 -0
- package/dist/core/events/approval-checker.js.map +1 -0
- package/dist/core/events/index.d.ts +25 -0
- package/dist/core/events/index.d.ts.map +1 -0
- package/dist/core/events/index.js +30 -0
- package/dist/core/events/index.js.map +1 -0
- package/dist/core/events/memory-manager.d.ts +73 -0
- package/dist/core/events/memory-manager.d.ts.map +1 -0
- package/dist/core/events/memory-manager.js +1218 -0
- package/dist/core/events/memory-manager.js.map +1 -0
- package/dist/core/events/mention-logic.d.ts +39 -0
- package/dist/core/events/mention-logic.d.ts.map +1 -0
- package/dist/core/events/mention-logic.js +163 -0
- package/dist/core/events/mention-logic.js.map +1 -0
- package/dist/core/events/orchestrator.d.ts +69 -0
- package/dist/core/events/orchestrator.d.ts.map +1 -0
- package/dist/core/events/orchestrator.js +883 -0
- package/dist/core/events/orchestrator.js.map +1 -0
- package/dist/core/events/persistence.d.ts +41 -0
- package/dist/core/events/persistence.d.ts.map +1 -0
- package/dist/core/events/persistence.js +296 -0
- package/dist/core/events/persistence.js.map +1 -0
- package/dist/core/events/publishers.d.ts +81 -0
- package/dist/core/events/publishers.d.ts.map +1 -0
- package/dist/core/events/publishers.js +272 -0
- package/dist/core/events/publishers.js.map +1 -0
- package/dist/core/events/subscribers.d.ts +45 -0
- package/dist/core/events/subscribers.d.ts.map +1 -0
- package/dist/core/events/subscribers.js +288 -0
- package/dist/core/events/subscribers.js.map +1 -0
- package/dist/core/events/tool-bridge-logging.d.ts +28 -0
- package/dist/core/events/tool-bridge-logging.d.ts.map +1 -0
- package/dist/core/events/tool-bridge-logging.js +94 -0
- package/dist/core/events/tool-bridge-logging.js.map +1 -0
- package/dist/core/events-metadata.d.ts +72 -0
- package/dist/core/events-metadata.d.ts.map +1 -0
- package/dist/core/events-metadata.js +167 -0
- package/dist/core/events-metadata.js.map +1 -0
- package/dist/core/events.d.ts +186 -0
- package/dist/core/events.d.ts.map +1 -0
- package/dist/core/events.js +1248 -0
- package/dist/core/events.js.map +1 -0
- package/dist/core/export.d.ts +106 -0
- package/dist/core/export.d.ts.map +1 -0
- package/dist/core/export.js +705 -0
- package/dist/core/export.js.map +1 -0
- package/dist/core/file-tools.d.ts +114 -0
- package/dist/core/file-tools.d.ts.map +1 -0
- package/dist/core/file-tools.js +370 -0
- package/dist/core/file-tools.js.map +1 -0
- package/dist/core/google-direct.d.ts +58 -0
- package/dist/core/google-direct.d.ts.map +1 -0
- package/dist/core/google-direct.js +298 -0
- package/dist/core/google-direct.js.map +1 -0
- package/dist/core/hitl.d.ts +54 -0
- package/dist/core/hitl.d.ts.map +1 -0
- package/dist/core/hitl.js +153 -0
- package/dist/core/hitl.js.map +1 -0
- package/dist/core/index.d.ts +59 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +70 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/llm-config.d.ts +128 -0
- package/dist/core/llm-config.d.ts.map +1 -0
- package/dist/core/llm-config.js +164 -0
- package/dist/core/llm-config.js.map +1 -0
- package/dist/core/llm-manager.d.ts +163 -0
- package/dist/core/llm-manager.d.ts.map +1 -0
- package/dist/core/llm-manager.js +669 -0
- package/dist/core/llm-manager.js.map +1 -0
- package/dist/core/load-skill-tool.d.ts +55 -0
- package/dist/core/load-skill-tool.d.ts.map +1 -0
- package/dist/core/load-skill-tool.js +468 -0
- package/dist/core/load-skill-tool.js.map +1 -0
- package/dist/core/logger.d.ts +88 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +358 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/managers.d.ts +131 -0
- package/dist/core/managers.d.ts.map +1 -0
- package/dist/core/managers.js +1223 -0
- package/dist/core/managers.js.map +1 -0
- package/dist/core/mcp-server-registry.d.ts +304 -0
- package/dist/core/mcp-server-registry.d.ts.map +1 -0
- package/dist/core/mcp-server-registry.js +1769 -0
- package/dist/core/mcp-server-registry.js.map +1 -0
- package/dist/core/mcp-tools.d.ts +56 -0
- package/dist/core/mcp-tools.d.ts.map +1 -0
- package/dist/core/mcp-tools.js +186 -0
- package/dist/core/mcp-tools.js.map +1 -0
- package/dist/core/message-prep.d.ts +81 -0
- package/dist/core/message-prep.d.ts.map +1 -0
- package/dist/core/message-prep.js +223 -0
- package/dist/core/message-prep.js.map +1 -0
- package/dist/core/message-processing-control.d.ts +54 -0
- package/dist/core/message-processing-control.d.ts.map +1 -0
- package/dist/core/message-processing-control.js +139 -0
- package/dist/core/message-processing-control.js.map +1 -0
- package/dist/core/openai-direct.d.ts +80 -0
- package/dist/core/openai-direct.d.ts.map +1 -0
- package/dist/core/openai-direct.js +374 -0
- package/dist/core/openai-direct.js.map +1 -0
- package/dist/core/shell-cmd-tool.d.ts +235 -0
- package/dist/core/shell-cmd-tool.d.ts.map +1 -0
- package/dist/core/shell-cmd-tool.js +1157 -0
- package/dist/core/shell-cmd-tool.js.map +1 -0
- package/dist/core/shell-process-registry.d.ts +88 -0
- package/dist/core/shell-process-registry.d.ts.map +1 -0
- package/dist/core/shell-process-registry.js +309 -0
- package/dist/core/shell-process-registry.js.map +1 -0
- package/dist/core/skill-registry.d.ts +75 -0
- package/dist/core/skill-registry.d.ts.map +1 -0
- package/dist/core/skill-registry.js +369 -0
- package/dist/core/skill-registry.js.map +1 -0
- package/dist/core/skill-script-runner.d.ts +89 -0
- package/dist/core/skill-script-runner.d.ts.map +1 -0
- package/dist/core/skill-script-runner.js +274 -0
- package/dist/core/skill-script-runner.js.map +1 -0
- package/dist/core/skill-selector.d.ts +65 -0
- package/dist/core/skill-selector.d.ts.map +1 -0
- package/dist/core/skill-selector.js +190 -0
- package/dist/core/skill-selector.js.map +1 -0
- package/dist/core/skill-settings.d.ts +20 -0
- package/dist/core/skill-settings.d.ts.map +1 -0
- package/dist/core/skill-settings.js +40 -0
- package/dist/core/skill-settings.js.map +1 -0
- package/dist/core/storage/agent-storage.d.ts +134 -0
- package/dist/core/storage/agent-storage.d.ts.map +1 -0
- package/dist/core/storage/agent-storage.js +498 -0
- package/dist/core/storage/agent-storage.js.map +1 -0
- package/dist/core/storage/eventStorage/fileEventStorage.d.ts +100 -0
- package/dist/core/storage/eventStorage/fileEventStorage.d.ts.map +1 -0
- package/dist/core/storage/eventStorage/fileEventStorage.js +494 -0
- package/dist/core/storage/eventStorage/fileEventStorage.js.map +1 -0
- package/dist/core/storage/eventStorage/index.d.ts +31 -0
- package/dist/core/storage/eventStorage/index.d.ts.map +1 -0
- package/dist/core/storage/eventStorage/index.js +31 -0
- package/dist/core/storage/eventStorage/index.js.map +1 -0
- package/dist/core/storage/eventStorage/memoryEventStorage.d.ts +87 -0
- package/dist/core/storage/eventStorage/memoryEventStorage.d.ts.map +1 -0
- package/dist/core/storage/eventStorage/memoryEventStorage.js +244 -0
- package/dist/core/storage/eventStorage/memoryEventStorage.js.map +1 -0
- package/dist/core/storage/eventStorage/sqliteEventStorage.d.ts +45 -0
- package/dist/core/storage/eventStorage/sqliteEventStorage.d.ts.map +1 -0
- package/dist/core/storage/eventStorage/sqliteEventStorage.js +301 -0
- package/dist/core/storage/eventStorage/sqliteEventStorage.js.map +1 -0
- package/dist/core/storage/eventStorage/types.d.ts +142 -0
- package/dist/core/storage/eventStorage/types.d.ts.map +1 -0
- package/dist/core/storage/eventStorage/types.js +43 -0
- package/dist/core/storage/eventStorage/types.js.map +1 -0
- package/dist/core/storage/eventStorage/validation.d.ts +30 -0
- package/dist/core/storage/eventStorage/validation.d.ts.map +1 -0
- package/dist/core/storage/eventStorage/validation.js +68 -0
- package/dist/core/storage/eventStorage/validation.js.map +1 -0
- package/dist/core/storage/legacy-migrations.d.ts +45 -0
- package/dist/core/storage/legacy-migrations.d.ts.map +1 -0
- package/dist/core/storage/legacy-migrations.js +295 -0
- package/dist/core/storage/legacy-migrations.js.map +1 -0
- package/dist/core/storage/memory-storage.d.ts +105 -0
- package/dist/core/storage/memory-storage.d.ts.map +1 -0
- package/dist/core/storage/memory-storage.js +415 -0
- package/dist/core/storage/memory-storage.js.map +1 -0
- package/dist/core/storage/migration-runner.d.ts +96 -0
- package/dist/core/storage/migration-runner.d.ts.map +1 -0
- package/dist/core/storage/migration-runner.js +306 -0
- package/dist/core/storage/migration-runner.js.map +1 -0
- package/dist/core/storage/queue-storage.d.ts +147 -0
- package/dist/core/storage/queue-storage.d.ts.map +1 -0
- package/dist/core/storage/queue-storage.js +290 -0
- package/dist/core/storage/queue-storage.js.map +1 -0
- package/dist/core/storage/skill-storage.d.ts +136 -0
- package/dist/core/storage/skill-storage.d.ts.map +1 -0
- package/dist/core/storage/skill-storage.js +474 -0
- package/dist/core/storage/skill-storage.js.map +1 -0
- package/dist/core/storage/sqlite-schema.d.ts +95 -0
- package/dist/core/storage/sqlite-schema.d.ts.map +1 -0
- package/dist/core/storage/sqlite-schema.js +156 -0
- package/dist/core/storage/sqlite-schema.js.map +1 -0
- package/dist/core/storage/sqlite-storage.d.ts +146 -0
- package/dist/core/storage/sqlite-storage.d.ts.map +1 -0
- package/dist/core/storage/sqlite-storage.js +709 -0
- package/dist/core/storage/sqlite-storage.js.map +1 -0
- package/dist/core/storage/storage-factory.d.ts +61 -0
- package/dist/core/storage/storage-factory.d.ts.map +1 -0
- package/dist/core/storage/storage-factory.js +794 -0
- package/dist/core/storage/storage-factory.js.map +1 -0
- package/dist/core/storage/validation.d.ts +36 -0
- package/dist/core/storage/validation.d.ts.map +1 -0
- package/dist/core/storage/validation.js +79 -0
- package/dist/core/storage/validation.js.map +1 -0
- package/dist/core/storage/world-storage.d.ts +114 -0
- package/dist/core/storage/world-storage.d.ts.map +1 -0
- package/dist/core/storage/world-storage.js +378 -0
- package/dist/core/storage/world-storage.js.map +1 -0
- package/dist/core/subscription.d.ts +43 -0
- package/dist/core/subscription.d.ts.map +1 -0
- package/dist/core/subscription.js +227 -0
- package/dist/core/subscription.js.map +1 -0
- package/dist/core/tool-utils.d.ts +80 -0
- package/dist/core/tool-utils.d.ts.map +1 -0
- package/dist/core/tool-utils.js +273 -0
- package/dist/core/tool-utils.js.map +1 -0
- package/dist/core/types.d.ts +595 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +158 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/utils.d.ts +138 -0
- package/dist/core/utils.d.ts.map +1 -0
- package/dist/core/utils.js +478 -0
- package/dist/core/utils.js.map +1 -0
- package/dist/core/world-class.d.ts +43 -0
- package/dist/core/world-class.d.ts.map +1 -0
- package/dist/core/world-class.js +90 -0
- package/dist/core/world-class.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/public/assets/agent-sprites-DJFgj-zP.png +0 -0
- package/dist/public/assets/border-KHK37r8y.svg +83 -0
- package/dist/public/assets/index-C9kPXL6G.css +1 -0
- package/dist/public/assets/index-DOQEHGWt.js +96 -0
- package/dist/public/index.html +21 -0
- package/dist/server/api.d.ts +2 -0
- package/dist/server/api.js +1124 -0
- package/dist/server/index.d.ts +29 -0
- package/dist/server/sse-handler.d.ts +62 -0
- package/dist/server/sse-handler.js +234 -0
- package/package.json +15 -3
- package/scripts/launch-electron.js +0 -58
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-manager.js","sourceRoot":"","sources":["../../core/llm-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Load Skill Tool Module - Built-in tool for progressive skill instruction loading.
|
|
3
|
+
*
|
|
4
|
+
* Features:
|
|
5
|
+
* - Exposes `load_skill` tool definition for model-visible tool catalogs
|
|
6
|
+
* - Resolves skills by `skill_id` from core skill registry state
|
|
7
|
+
* - Reads full SKILL.md content only on demand
|
|
8
|
+
* - Enforces HITL approval before applying skill instructions in interactive runtimes
|
|
9
|
+
* - Executes instruction-referenced skill scripts under validated scope checks
|
|
10
|
+
* - Returns structured success, not-found, and read-error payloads
|
|
11
|
+
*
|
|
12
|
+
* Implementation Notes:
|
|
13
|
+
* - Uses registry metadata as source of truth for lookup and skill name/description
|
|
14
|
+
* - Reads file content from registry-provided source path (no directory rescans)
|
|
15
|
+
* - Reuses shell tool safeguards (`validateShellCommandScope`) for script execution safety
|
|
16
|
+
* - Uses generic HITL option requests for user approval (`yes_once`, `yes_in_session`, `no`)
|
|
17
|
+
* - Session approvals are scoped by world/chat/skill to avoid accidental cross-session reuse
|
|
18
|
+
* - Keeps payload format deterministic for stable downstream parsing
|
|
19
|
+
*
|
|
20
|
+
* Recent Changes:
|
|
21
|
+
* - 2026-02-16: Treat non-zero exit status from instruction-referenced skill scripts as execution errors so UI receives tool-error feedback.
|
|
22
|
+
* - 2026-02-15: Reject `load_skill` script execution when a referenced script resolves outside the active execution working directory.
|
|
23
|
+
* - 2026-02-15: Execute skill scripts in the project working directory (from context) instead of the skill root.
|
|
24
|
+
* - 2026-02-14: Strip SKILL.md YAML front matter from injected `<instructions>` content.
|
|
25
|
+
* - 2026-02-14: Omit `<active_resources>` from `load_skill` payloads when no instruction-referenced scripts are present.
|
|
26
|
+
* - 2026-02-14: Added skill-level HITL gating so `load_skill` requires approval even when no script references are present.
|
|
27
|
+
* - 2026-02-14: Added HITL-gated safe script execution and `<active_resources>` payload rendering.
|
|
28
|
+
*/
|
|
29
|
+
type LoadSkillToolContext = {
|
|
30
|
+
world?: {
|
|
31
|
+
id?: string;
|
|
32
|
+
currentChatId?: string | null;
|
|
33
|
+
eventEmitter?: unknown;
|
|
34
|
+
};
|
|
35
|
+
chatId?: string | null;
|
|
36
|
+
abortSignal?: AbortSignal;
|
|
37
|
+
workingDirectory?: string;
|
|
38
|
+
};
|
|
39
|
+
export declare function createLoadSkillToolDefinition(): {
|
|
40
|
+
description: string;
|
|
41
|
+
parameters: {
|
|
42
|
+
type: string;
|
|
43
|
+
properties: {
|
|
44
|
+
skill_id: {
|
|
45
|
+
type: string;
|
|
46
|
+
description: string;
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
required: string[];
|
|
50
|
+
additionalProperties: boolean;
|
|
51
|
+
};
|
|
52
|
+
execute: (args: any, _sequenceId?: string, _parentToolCall?: string, context?: LoadSkillToolContext) => Promise<string>;
|
|
53
|
+
};
|
|
54
|
+
export {};
|
|
55
|
+
//# sourceMappingURL=load-skill-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-skill-tool.d.ts","sourceRoot":"","sources":["../../core/load-skill-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAwBH,KAAK,oBAAoB,GAAG;IAC1B,KAAK,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC/E,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAobF,wBAAgB,6BAA6B;;;;;;;;;;;;;oBAenB,GAAG,gBAAgB,MAAM,oBAAoB,MAAM,YAAY,oBAAoB;EAqD5G"}
|
|
@@ -0,0 +1,468 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Load Skill Tool Module - Built-in tool for progressive skill instruction loading.
|
|
3
|
+
*
|
|
4
|
+
* Features:
|
|
5
|
+
* - Exposes `load_skill` tool definition for model-visible tool catalogs
|
|
6
|
+
* - Resolves skills by `skill_id` from core skill registry state
|
|
7
|
+
* - Reads full SKILL.md content only on demand
|
|
8
|
+
* - Enforces HITL approval before applying skill instructions in interactive runtimes
|
|
9
|
+
* - Executes instruction-referenced skill scripts under validated scope checks
|
|
10
|
+
* - Returns structured success, not-found, and read-error payloads
|
|
11
|
+
*
|
|
12
|
+
* Implementation Notes:
|
|
13
|
+
* - Uses registry metadata as source of truth for lookup and skill name/description
|
|
14
|
+
* - Reads file content from registry-provided source path (no directory rescans)
|
|
15
|
+
* - Reuses shell tool safeguards (`validateShellCommandScope`) for script execution safety
|
|
16
|
+
* - Uses generic HITL option requests for user approval (`yes_once`, `yes_in_session`, `no`)
|
|
17
|
+
* - Session approvals are scoped by world/chat/skill to avoid accidental cross-session reuse
|
|
18
|
+
* - Keeps payload format deterministic for stable downstream parsing
|
|
19
|
+
*
|
|
20
|
+
* Recent Changes:
|
|
21
|
+
* - 2026-02-16: Treat non-zero exit status from instruction-referenced skill scripts as execution errors so UI receives tool-error feedback.
|
|
22
|
+
* - 2026-02-15: Reject `load_skill` script execution when a referenced script resolves outside the active execution working directory.
|
|
23
|
+
* - 2026-02-15: Execute skill scripts in the project working directory (from context) instead of the skill root.
|
|
24
|
+
* - 2026-02-14: Strip SKILL.md YAML front matter from injected `<instructions>` content.
|
|
25
|
+
* - 2026-02-14: Omit `<active_resources>` from `load_skill` payloads when no instruction-referenced scripts are present.
|
|
26
|
+
* - 2026-02-14: Added skill-level HITL gating so `load_skill` requires approval even when no script references are present.
|
|
27
|
+
* - 2026-02-14: Added HITL-gated safe script execution and `<active_resources>` payload rendering.
|
|
28
|
+
*/
|
|
29
|
+
import { promises as fs } from 'fs';
|
|
30
|
+
import * as path from 'path';
|
|
31
|
+
import { getSkill, getSkillSourcePath, getSkillSourceScope, waitForInitialSkillSync, } from './skill-registry.js';
|
|
32
|
+
import { executeShellCommand, formatResultForLLM, validateShellCommandScope, } from './shell-cmd-tool.js';
|
|
33
|
+
import { parseSkillIdListFromEnv } from './skill-settings.js';
|
|
34
|
+
import { requestWorldOption } from './hitl.js';
|
|
35
|
+
const APPROVAL_OPTION_YES_ONCE = 'yes_once';
|
|
36
|
+
const APPROVAL_OPTION_YES_IN_SESSION = 'yes_in_session';
|
|
37
|
+
const APPROVAL_OPTION_NO = 'no';
|
|
38
|
+
const SCRIPT_TIMEOUT_MS = 120_000;
|
|
39
|
+
const skillSessionApprovals = new Set();
|
|
40
|
+
class SkillScriptExecutionError extends Error {
|
|
41
|
+
constructor(message) {
|
|
42
|
+
super(message);
|
|
43
|
+
this.name = 'SkillScriptExecutionError';
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function escapeXmlText(value) {
|
|
47
|
+
return value
|
|
48
|
+
.replace(/&/g, '&')
|
|
49
|
+
.replace(/</g, '<')
|
|
50
|
+
.replace(/>/g, '>')
|
|
51
|
+
.replace(/"/g, '"')
|
|
52
|
+
.replace(/'/g, ''');
|
|
53
|
+
}
|
|
54
|
+
function buildNotFoundResult(skillId) {
|
|
55
|
+
const escapedSkillId = escapeXmlText(skillId);
|
|
56
|
+
return [
|
|
57
|
+
`<skill_context id="${escapedSkillId}">`,
|
|
58
|
+
' <error>',
|
|
59
|
+
` Skill with id "${escapedSkillId}" was not found in the current registry.`,
|
|
60
|
+
' </error>',
|
|
61
|
+
'</skill_context>',
|
|
62
|
+
].join('\n');
|
|
63
|
+
}
|
|
64
|
+
function buildReadErrorResult(skillId, message) {
|
|
65
|
+
const escapedSkillId = escapeXmlText(skillId);
|
|
66
|
+
const escapedMessage = escapeXmlText(message);
|
|
67
|
+
return [
|
|
68
|
+
`<skill_context id="${escapedSkillId}">`,
|
|
69
|
+
' <error>',
|
|
70
|
+
` Failed to load SKILL.md for "${escapedSkillId}": ${escapedMessage}`,
|
|
71
|
+
' </error>',
|
|
72
|
+
'</skill_context>',
|
|
73
|
+
].join('\n');
|
|
74
|
+
}
|
|
75
|
+
function buildDeclinedResult(skillId) {
|
|
76
|
+
const escapedSkillId = escapeXmlText(skillId);
|
|
77
|
+
return [
|
|
78
|
+
`<skill_context id="${escapedSkillId}">`,
|
|
79
|
+
' <error>',
|
|
80
|
+
` User declined HITL approval for skill "${escapedSkillId}". Skill instructions were not loaded.`,
|
|
81
|
+
' </error>',
|
|
82
|
+
'</skill_context>',
|
|
83
|
+
].join('\n');
|
|
84
|
+
}
|
|
85
|
+
function buildDisabledBySettingsResult(skillId) {
|
|
86
|
+
const escapedSkillId = escapeXmlText(skillId);
|
|
87
|
+
return [
|
|
88
|
+
`<skill_context id="${escapedSkillId}">`,
|
|
89
|
+
' <error>',
|
|
90
|
+
` Skill "${escapedSkillId}" is disabled by current system settings and cannot be loaded.`,
|
|
91
|
+
' </error>',
|
|
92
|
+
'</skill_context>',
|
|
93
|
+
].join('\n');
|
|
94
|
+
}
|
|
95
|
+
function isSkillEnabledBySettings(skillId) {
|
|
96
|
+
const includeGlobalSkills = String(process.env.AGENT_WORLD_ENABLE_GLOBAL_SKILLS ?? 'true').toLowerCase() !== 'false';
|
|
97
|
+
const includeProjectSkills = String(process.env.AGENT_WORLD_ENABLE_PROJECT_SKILLS ?? 'true').toLowerCase() !== 'false';
|
|
98
|
+
const disabledGlobalSkillIds = parseSkillIdListFromEnv(process.env.AGENT_WORLD_DISABLED_GLOBAL_SKILLS);
|
|
99
|
+
const disabledProjectSkillIds = parseSkillIdListFromEnv(process.env.AGENT_WORLD_DISABLED_PROJECT_SKILLS);
|
|
100
|
+
const sourceScope = getSkillSourceScope(skillId);
|
|
101
|
+
if (sourceScope === 'project') {
|
|
102
|
+
if (!includeProjectSkills)
|
|
103
|
+
return false;
|
|
104
|
+
return !disabledProjectSkillIds.has(skillId);
|
|
105
|
+
}
|
|
106
|
+
if (!includeGlobalSkills)
|
|
107
|
+
return false;
|
|
108
|
+
return !disabledGlobalSkillIds.has(skillId);
|
|
109
|
+
}
|
|
110
|
+
function normalizeScriptPath(scriptPath) {
|
|
111
|
+
return scriptPath.replace(/\\/g, '/').replace(/^\.\//, '').trim();
|
|
112
|
+
}
|
|
113
|
+
function stripYamlFrontMatter(markdown) {
|
|
114
|
+
const frontMatterPattern = /^\uFEFF?---\s*\r?\n[\s\S]*?\r?\n---\s*(?:\r?\n|$)/;
|
|
115
|
+
return markdown.replace(frontMatterPattern, '');
|
|
116
|
+
}
|
|
117
|
+
function isPathWithinRoot(skillRoot, targetPath) {
|
|
118
|
+
const normalize = (value) => path.resolve(value).replace(/\\/g, '/').replace(/\/+/g, '/').replace(/\/$/, '');
|
|
119
|
+
const normalizedRoot = normalize(skillRoot);
|
|
120
|
+
const normalizedTarget = normalize(targetPath);
|
|
121
|
+
return normalizedTarget === normalizedRoot || normalizedTarget.startsWith(`${normalizedRoot}/`);
|
|
122
|
+
}
|
|
123
|
+
function extractReferencedScriptPaths(markdown) {
|
|
124
|
+
const scriptSet = new Set();
|
|
125
|
+
const knownScriptExtensions = '(?:sh|bash|zsh|py|js|mjs|cjs|ts)';
|
|
126
|
+
const scriptPathPattern = new RegExp(`(?:\\./)?scripts/[A-Za-z0-9_./-]+\\.${knownScriptExtensions}\\b`, 'gi');
|
|
127
|
+
const commandReferencePattern = /(?:bash|sh|python3?|node)\s+([^\s'"`]+)/gi;
|
|
128
|
+
for (const match of markdown.matchAll(scriptPathPattern)) {
|
|
129
|
+
const scriptPath = normalizeScriptPath(match[0] || '');
|
|
130
|
+
if (scriptPath) {
|
|
131
|
+
scriptSet.add(scriptPath);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
for (const match of markdown.matchAll(commandReferencePattern)) {
|
|
135
|
+
const rawPath = normalizeScriptPath(match[1] || '');
|
|
136
|
+
if (!rawPath) {
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
if (!new RegExp(`\\.${knownScriptExtensions}$`, 'i').test(rawPath)) {
|
|
140
|
+
continue;
|
|
141
|
+
}
|
|
142
|
+
if (rawPath.startsWith('scripts/')) {
|
|
143
|
+
scriptSet.add(rawPath);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
return [...scriptSet].sort((left, right) => left.localeCompare(right));
|
|
147
|
+
}
|
|
148
|
+
async function collectReferenceFiles(skillRoot, markdown) {
|
|
149
|
+
const collected = new Set();
|
|
150
|
+
const queue = [];
|
|
151
|
+
for (const folderName of ['references', 'assets']) {
|
|
152
|
+
queue.push(path.join(skillRoot, folderName));
|
|
153
|
+
}
|
|
154
|
+
const localMarkdownPathPattern = /\]\(([^)]+)\)/g;
|
|
155
|
+
for (const match of markdown.matchAll(localMarkdownPathPattern)) {
|
|
156
|
+
const linkedPath = String(match[1] || '').trim();
|
|
157
|
+
if (!linkedPath || linkedPath.startsWith('http://') || linkedPath.startsWith('https://')) {
|
|
158
|
+
continue;
|
|
159
|
+
}
|
|
160
|
+
if (linkedPath.startsWith('#')) {
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
const absolutePath = path.resolve(skillRoot, linkedPath);
|
|
164
|
+
if (!isPathWithinRoot(skillRoot, absolutePath)) {
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
167
|
+
try {
|
|
168
|
+
const stat = await fs.stat(absolutePath);
|
|
169
|
+
if (stat.isFile()) {
|
|
170
|
+
collected.add(path.relative(skillRoot, absolutePath).replace(/\\/g, '/'));
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
catch {
|
|
174
|
+
// Ignore missing links.
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
while (queue.length > 0) {
|
|
178
|
+
const currentPath = queue.shift();
|
|
179
|
+
if (!currentPath) {
|
|
180
|
+
continue;
|
|
181
|
+
}
|
|
182
|
+
try {
|
|
183
|
+
const stat = await fs.stat(currentPath);
|
|
184
|
+
if (!stat.isDirectory()) {
|
|
185
|
+
continue;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
catch {
|
|
189
|
+
continue;
|
|
190
|
+
}
|
|
191
|
+
let entries = [];
|
|
192
|
+
try {
|
|
193
|
+
entries = await fs.readdir(currentPath, { withFileTypes: true });
|
|
194
|
+
}
|
|
195
|
+
catch {
|
|
196
|
+
continue;
|
|
197
|
+
}
|
|
198
|
+
entries.sort((left, right) => left.name.localeCompare(right.name));
|
|
199
|
+
for (const entry of entries) {
|
|
200
|
+
const absolutePath = path.join(currentPath, entry.name);
|
|
201
|
+
if (entry.isDirectory()) {
|
|
202
|
+
queue.push(absolutePath);
|
|
203
|
+
}
|
|
204
|
+
else if (entry.isFile()) {
|
|
205
|
+
collected.add(path.relative(skillRoot, absolutePath).replace(/\\/g, '/'));
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return [...collected].sort((left, right) => left.localeCompare(right));
|
|
210
|
+
}
|
|
211
|
+
function resolveScriptCommand(scriptPath) {
|
|
212
|
+
const extension = path.extname(scriptPath).toLowerCase();
|
|
213
|
+
if (extension === '.py') {
|
|
214
|
+
return { command: 'python3', parameters: [scriptPath] };
|
|
215
|
+
}
|
|
216
|
+
if (extension === '.js' || extension === '.mjs' || extension === '.cjs') {
|
|
217
|
+
return { command: 'node', parameters: [scriptPath] };
|
|
218
|
+
}
|
|
219
|
+
if (extension === '.ts') {
|
|
220
|
+
return { command: 'npx', parameters: ['tsx', scriptPath] };
|
|
221
|
+
}
|
|
222
|
+
return { command: 'bash', parameters: [scriptPath] };
|
|
223
|
+
}
|
|
224
|
+
function formatReferenceFilesBlock(referenceFiles) {
|
|
225
|
+
if (referenceFiles.length === 0) {
|
|
226
|
+
return '(none)';
|
|
227
|
+
}
|
|
228
|
+
return referenceFiles.map((filePath) => `- ${filePath}`).join('\n');
|
|
229
|
+
}
|
|
230
|
+
function createSessionApprovalKey(worldId, chatId, skillId) {
|
|
231
|
+
return `${worldId}::${chatId ?? 'global'}::${skillId}`;
|
|
232
|
+
}
|
|
233
|
+
async function requestSkillExecutionApproval(options) {
|
|
234
|
+
const worldId = String(options.context?.world?.id || '').trim();
|
|
235
|
+
const chatId = options.context?.chatId ?? options.context?.world?.currentChatId ?? null;
|
|
236
|
+
if (!worldId || !options.context?.world) {
|
|
237
|
+
return true;
|
|
238
|
+
}
|
|
239
|
+
const sessionApprovalKey = createSessionApprovalKey(worldId, chatId, options.skillId);
|
|
240
|
+
if (skillSessionApprovals.has(sessionApprovalKey)) {
|
|
241
|
+
return true;
|
|
242
|
+
}
|
|
243
|
+
const scriptSummary = options.scriptPaths.length > 0
|
|
244
|
+
? `The skill references local scripts:\n${options.scriptPaths.map((scriptPath) => `- ${scriptPath}`).join('\n')}`
|
|
245
|
+
: 'No instruction-referenced local scripts were detected for this skill.';
|
|
246
|
+
const approval = await requestWorldOption(options.context.world, {
|
|
247
|
+
title: `Run skill ${options.skillId}?`,
|
|
248
|
+
message: [
|
|
249
|
+
`Skill "${options.skillId}" requested execution.`,
|
|
250
|
+
scriptSummary,
|
|
251
|
+
'Approve applying this skill now?',
|
|
252
|
+
].join('\n\n'),
|
|
253
|
+
chatId,
|
|
254
|
+
defaultOptionId: APPROVAL_OPTION_NO,
|
|
255
|
+
options: [
|
|
256
|
+
{ id: APPROVAL_OPTION_YES_ONCE, label: 'Yes once', description: 'Allow this skill for this call only.' },
|
|
257
|
+
{
|
|
258
|
+
id: APPROVAL_OPTION_YES_IN_SESSION,
|
|
259
|
+
label: 'Yes in this session',
|
|
260
|
+
description: 'Allow this skill for the current chat session.',
|
|
261
|
+
},
|
|
262
|
+
{ id: APPROVAL_OPTION_NO, label: 'No', description: 'Do not apply this skill now.' },
|
|
263
|
+
],
|
|
264
|
+
metadata: { skillId: options.skillId, scriptPaths: options.scriptPaths },
|
|
265
|
+
});
|
|
266
|
+
if (approval.optionId === APPROVAL_OPTION_NO) {
|
|
267
|
+
return false;
|
|
268
|
+
}
|
|
269
|
+
if (approval.optionId === APPROVAL_OPTION_YES_IN_SESSION) {
|
|
270
|
+
skillSessionApprovals.add(sessionApprovalKey);
|
|
271
|
+
}
|
|
272
|
+
return true;
|
|
273
|
+
}
|
|
274
|
+
async function executeSkillScripts(options) {
|
|
275
|
+
const scriptPaths = options.scriptPaths;
|
|
276
|
+
if (scriptPaths.length === 0) {
|
|
277
|
+
return [];
|
|
278
|
+
}
|
|
279
|
+
const worldId = String(options.context?.world?.id || '').trim();
|
|
280
|
+
const chatId = options.context?.chatId ?? options.context?.world?.currentChatId ?? null;
|
|
281
|
+
const executionDirectory = options.context?.workingDirectory || options.skillRoot;
|
|
282
|
+
if (!worldId || !options.context?.world) {
|
|
283
|
+
return [{
|
|
284
|
+
source: 'approval',
|
|
285
|
+
output: 'HITL approval channel is unavailable in this runtime. Script execution skipped.',
|
|
286
|
+
}];
|
|
287
|
+
}
|
|
288
|
+
const scriptOutputs = [];
|
|
289
|
+
for (const referencedScript of scriptPaths) {
|
|
290
|
+
const scriptPath = normalizeScriptPath(referencedScript);
|
|
291
|
+
const absoluteScriptPath = path.resolve(options.skillRoot, scriptPath);
|
|
292
|
+
if (!isPathWithinRoot(options.skillRoot, absoluteScriptPath)) {
|
|
293
|
+
scriptOutputs.push({
|
|
294
|
+
source: scriptPath,
|
|
295
|
+
output: `Script path rejected: "${scriptPath}" resolves outside skill root.`,
|
|
296
|
+
});
|
|
297
|
+
continue;
|
|
298
|
+
}
|
|
299
|
+
try {
|
|
300
|
+
const scriptStat = await fs.stat(absoluteScriptPath);
|
|
301
|
+
if (!scriptStat.isFile()) {
|
|
302
|
+
scriptOutputs.push({
|
|
303
|
+
source: scriptPath,
|
|
304
|
+
output: `Script path is not a file: "${scriptPath}"`,
|
|
305
|
+
});
|
|
306
|
+
continue;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
catch {
|
|
310
|
+
scriptOutputs.push({
|
|
311
|
+
source: scriptPath,
|
|
312
|
+
output: `Script not found: "${scriptPath}"`,
|
|
313
|
+
});
|
|
314
|
+
continue;
|
|
315
|
+
}
|
|
316
|
+
const normalizedRootPath = path.resolve(options.skillRoot).replace(/\\/g, '/').replace(/\/+/g, '/').replace(/\/$/, '');
|
|
317
|
+
const normalizedAbsoluteScriptPath = path.resolve(absoluteScriptPath).replace(/\\/g, '/').replace(/\/+/g, '/');
|
|
318
|
+
const relativeScriptPath = normalizedAbsoluteScriptPath.startsWith(`${normalizedRootPath}/`)
|
|
319
|
+
? normalizedAbsoluteScriptPath.slice(normalizedRootPath.length + 1)
|
|
320
|
+
: path.relative(options.skillRoot, absoluteScriptPath).replace(/\\/g, '/');
|
|
321
|
+
const relativeCommandPath = normalizeScriptPath(relativeScriptPath);
|
|
322
|
+
const relativeCommandSpec = resolveScriptCommand(relativeCommandPath);
|
|
323
|
+
const scopeValidation = validateShellCommandScope(relativeCommandSpec.command, relativeCommandSpec.parameters, options.skillRoot);
|
|
324
|
+
if (!scopeValidation.valid) {
|
|
325
|
+
scriptOutputs.push({
|
|
326
|
+
source: relativeScriptPath,
|
|
327
|
+
output: scopeValidation.error,
|
|
328
|
+
});
|
|
329
|
+
continue;
|
|
330
|
+
}
|
|
331
|
+
const absoluteCommandSpec = resolveScriptCommand(normalizedAbsoluteScriptPath);
|
|
332
|
+
if (!isPathWithinRoot(executionDirectory, normalizedAbsoluteScriptPath)) {
|
|
333
|
+
scriptOutputs.push({
|
|
334
|
+
source: relativeScriptPath,
|
|
335
|
+
output: `Script path rejected: "${relativeScriptPath}" resolves outside execution working directory "${executionDirectory}".`,
|
|
336
|
+
});
|
|
337
|
+
continue;
|
|
338
|
+
}
|
|
339
|
+
const executionResult = await executeShellCommand(absoluteCommandSpec.command, absoluteCommandSpec.parameters, executionDirectory, {
|
|
340
|
+
timeout: SCRIPT_TIMEOUT_MS,
|
|
341
|
+
abortSignal: options.context?.abortSignal,
|
|
342
|
+
worldId,
|
|
343
|
+
chatId: chatId ?? undefined,
|
|
344
|
+
trustedWorkingDirectory: executionDirectory,
|
|
345
|
+
});
|
|
346
|
+
if (executionResult.exitCode !== 0 || executionResult.error) {
|
|
347
|
+
const exitCode = executionResult.exitCode === null ? 'unknown' : String(executionResult.exitCode);
|
|
348
|
+
const stderr = executionResult.stderr.trim();
|
|
349
|
+
const stderrSuffix = stderr ? ` stderr: ${stderr}` : '';
|
|
350
|
+
throw new SkillScriptExecutionError(`Skill script "${relativeScriptPath}" failed with exit code ${exitCode}.${stderrSuffix}`);
|
|
351
|
+
}
|
|
352
|
+
scriptOutputs.push({
|
|
353
|
+
source: relativeScriptPath,
|
|
354
|
+
output: formatResultForLLM(executionResult),
|
|
355
|
+
});
|
|
356
|
+
}
|
|
357
|
+
return scriptOutputs;
|
|
358
|
+
}
|
|
359
|
+
function buildSuccessResult(options) {
|
|
360
|
+
const { skillId, skillName, markdown, scriptOutputs, referenceFiles } = options;
|
|
361
|
+
const escapedSkillId = escapeXmlText(skillId);
|
|
362
|
+
const escapedSkillName = escapeXmlText(skillName);
|
|
363
|
+
const hasActiveResources = scriptOutputs.length > 0;
|
|
364
|
+
const scriptBlocks = scriptOutputs.flatMap((scriptOutput) => ([
|
|
365
|
+
` <script_output source="${escapeXmlText(scriptOutput.source)}">`,
|
|
366
|
+
`${escapeXmlText(scriptOutput.output)}`,
|
|
367
|
+
' </script_output>',
|
|
368
|
+
]));
|
|
369
|
+
const referenceFilesBlock = escapeXmlText(formatReferenceFilesBlock(referenceFiles));
|
|
370
|
+
const activeResourcesBlock = hasActiveResources
|
|
371
|
+
? [
|
|
372
|
+
' <active_resources>',
|
|
373
|
+
...scriptBlocks,
|
|
374
|
+
'',
|
|
375
|
+
' <reference_files>',
|
|
376
|
+
referenceFilesBlock,
|
|
377
|
+
' </reference_files>',
|
|
378
|
+
' </active_resources>',
|
|
379
|
+
'',
|
|
380
|
+
]
|
|
381
|
+
: [];
|
|
382
|
+
const executionDirective = [
|
|
383
|
+
' <execution_directive>',
|
|
384
|
+
` You are now operating under the specialized ${escapedSkillName} protocol.`,
|
|
385
|
+
' 1. Prioritize the logic in <instructions> over generic behavior.',
|
|
386
|
+
hasActiveResources
|
|
387
|
+
? ' 2. Use the data in <active_resources> to complete the user\'s specific request.'
|
|
388
|
+
: ' 2. Use the skill instructions to complete the user\'s specific request.',
|
|
389
|
+
' 3. If the workflow is multi-step, explicitly state your plan before executing.',
|
|
390
|
+
' </execution_directive>',
|
|
391
|
+
];
|
|
392
|
+
return [
|
|
393
|
+
`<skill_context id="${escapedSkillId}">`,
|
|
394
|
+
' <instructions>',
|
|
395
|
+
markdown,
|
|
396
|
+
' </instructions>',
|
|
397
|
+
'',
|
|
398
|
+
...activeResourcesBlock,
|
|
399
|
+
...executionDirective,
|
|
400
|
+
'</skill_context>',
|
|
401
|
+
].join('\n');
|
|
402
|
+
}
|
|
403
|
+
export function createLoadSkillToolDefinition() {
|
|
404
|
+
return {
|
|
405
|
+
description: 'Load full SKILL.md instructions by skill_id from the skill registry. Use this when a request matches a listed skill.',
|
|
406
|
+
parameters: {
|
|
407
|
+
type: 'object',
|
|
408
|
+
properties: {
|
|
409
|
+
skill_id: {
|
|
410
|
+
type: 'string',
|
|
411
|
+
description: 'Skill ID from <available_skills>/<id> in the system prompt.',
|
|
412
|
+
},
|
|
413
|
+
},
|
|
414
|
+
required: ['skill_id'],
|
|
415
|
+
additionalProperties: false,
|
|
416
|
+
},
|
|
417
|
+
execute: async (args, _sequenceId, _parentToolCall, context) => {
|
|
418
|
+
await waitForInitialSkillSync();
|
|
419
|
+
const requestedSkillId = typeof args?.skill_id === 'string' ? args.skill_id.trim() : '';
|
|
420
|
+
if (!requestedSkillId) {
|
|
421
|
+
return buildReadErrorResult('', 'Missing required parameter: skill_id');
|
|
422
|
+
}
|
|
423
|
+
const entry = getSkill(requestedSkillId);
|
|
424
|
+
const sourcePath = getSkillSourcePath(requestedSkillId);
|
|
425
|
+
if (!entry || !sourcePath) {
|
|
426
|
+
return buildNotFoundResult(requestedSkillId);
|
|
427
|
+
}
|
|
428
|
+
if (!isSkillEnabledBySettings(requestedSkillId)) {
|
|
429
|
+
return buildDisabledBySettingsResult(requestedSkillId);
|
|
430
|
+
}
|
|
431
|
+
try {
|
|
432
|
+
const markdown = await fs.readFile(sourcePath, 'utf8');
|
|
433
|
+
const instructionsMarkdown = stripYamlFrontMatter(markdown);
|
|
434
|
+
const skillRoot = path.dirname(sourcePath);
|
|
435
|
+
const scriptPaths = extractReferencedScriptPaths(instructionsMarkdown);
|
|
436
|
+
const isApproved = await requestSkillExecutionApproval({
|
|
437
|
+
skillId: requestedSkillId,
|
|
438
|
+
scriptPaths,
|
|
439
|
+
context,
|
|
440
|
+
});
|
|
441
|
+
if (!isApproved) {
|
|
442
|
+
return buildDeclinedResult(requestedSkillId);
|
|
443
|
+
}
|
|
444
|
+
const scriptOutputs = await executeSkillScripts({
|
|
445
|
+
scriptPaths,
|
|
446
|
+
skillRoot,
|
|
447
|
+
context,
|
|
448
|
+
});
|
|
449
|
+
const referenceFiles = await collectReferenceFiles(skillRoot, instructionsMarkdown);
|
|
450
|
+
return buildSuccessResult({
|
|
451
|
+
skillId: requestedSkillId,
|
|
452
|
+
skillName: entry.skill_id,
|
|
453
|
+
markdown: instructionsMarkdown,
|
|
454
|
+
scriptOutputs,
|
|
455
|
+
referenceFiles,
|
|
456
|
+
});
|
|
457
|
+
}
|
|
458
|
+
catch (error) {
|
|
459
|
+
if (error instanceof SkillScriptExecutionError) {
|
|
460
|
+
throw error;
|
|
461
|
+
}
|
|
462
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
463
|
+
return buildReadErrorResult(requestedSkillId, message);
|
|
464
|
+
}
|
|
465
|
+
},
|
|
466
|
+
};
|
|
467
|
+
}
|
|
468
|
+
//# sourceMappingURL=load-skill-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-skill-tool.js","sourceRoot":"","sources":["../../core/load-skill-tool.ts"],"names":[],"mappings":"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"}
|