20 lines
866 B
TypeScript
20 lines
866 B
TypeScript
|
|
/** 能力目录 → 引擎工具描述(架构设计 5.1:工具只来自能力目录) */
|
|||
|
|
import type { Capability } from '@aps/provider-sdk';
|
|||
|
|
|
|||
|
|
import type { ToolDescriptor } from './runtime.js';
|
|||
|
|
|
|||
|
|
export function toToolDescriptor(capability: Capability): ToolDescriptor {
|
|||
|
|
return {
|
|||
|
|
capabilityId: capability.id,
|
|||
|
|
// Pi / Codex 的工具名不允许点号,统一换成下划线
|
|||
|
|
toolName: capability.id.replace(/\./g, '_'),
|
|||
|
|
description: [capability.description, capability.whenNotToUse ? `(不要用于:${capability.whenNotToUse})` : ''].join(''),
|
|||
|
|
parameters: capability.inputSchema,
|
|||
|
|
...(capability.synonyms === undefined ? {} : { synonyms: capability.synonyms }),
|
|||
|
|
effect: capability.effect,
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
export function toToolDescriptors(capabilities: Capability[]): ToolDescriptor[] {
|
|||
|
|
return capabilities.map(toToolDescriptor);
|
|||
|
|
}
|