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);
|
||
} |