diff --git a/src/lib/core/resource/protocols/ExecutionProtocol.js b/src/lib/core/resource/protocols/ExecutionProtocol.js index 7ad9d19..1ea8843 100644 --- a/src/lib/core/resource/protocols/ExecutionProtocol.js +++ b/src/lib/core/resource/protocols/ExecutionProtocol.js @@ -49,7 +49,10 @@ class ExecutionProtocol extends ResourceProtocol { // 处理 @package:// 前缀 if (resolvedPath.startsWith('@package://')) { - resolvedPath = resolvedPath.replace('@package://', '') + const PackageProtocol = require('./PackageProtocol') + const packageProtocol = new PackageProtocol() + const relativePath = resolvedPath.replace('@package://', '') + resolvedPath = await packageProtocol.resolvePath(relativePath) } else if (resolvedPath.startsWith('@project://')) { // 处理 @project:// 前缀,转换为绝对路径 const relativePath = resolvedPath.replace('@project://', '') diff --git a/src/lib/core/resource/protocols/RoleProtocol.js b/src/lib/core/resource/protocols/RoleProtocol.js index 62f23b3..0f6d122 100644 --- a/src/lib/core/resource/protocols/RoleProtocol.js +++ b/src/lib/core/resource/protocols/RoleProtocol.js @@ -46,11 +46,15 @@ class RoleProtocol extends ResourceProtocol { throw new Error(`角色 "${roleId}" 未在注册表中找到。可用角色:${Object.keys(this.registry).join(', ')}`) } - let resolvedPath = this.registry[roleId] + const roleInfo = this.registry[roleId] + let resolvedPath = typeof roleInfo === 'string' ? roleInfo : roleInfo.file // 处理 @package:// 前缀 if (resolvedPath.startsWith('@package://')) { - resolvedPath = resolvedPath.replace('@package://', '') + const PackageProtocol = require('./PackageProtocol') + const packageProtocol = new PackageProtocol() + const relativePath = resolvedPath.replace('@package://', '') + resolvedPath = await packageProtocol.resolvePath(relativePath) } return resolvedPath diff --git a/src/lib/core/resource/protocols/ThoughtProtocol.js b/src/lib/core/resource/protocols/ThoughtProtocol.js index 9b550de..0922f70 100644 --- a/src/lib/core/resource/protocols/ThoughtProtocol.js +++ b/src/lib/core/resource/protocols/ThoughtProtocol.js @@ -48,7 +48,10 @@ class ThoughtProtocol extends ResourceProtocol { // 处理 @package:// 前缀 if (resolvedPath.startsWith('@package://')) { - resolvedPath = resolvedPath.replace('@package://', '') + const PackageProtocol = require('./PackageProtocol') + const packageProtocol = new PackageProtocol() + const relativePath = resolvedPath.replace('@package://', '') + resolvedPath = await packageProtocol.resolvePath(relativePath) } else if (resolvedPath.startsWith('@project://')) { // 处理 @project:// 前缀,转换为绝对路径 const relativePath = resolvedPath.replace('@project://', '')