fix(tools): make schema traversal stack-safe
This commit is contained in:
@@ -773,10 +773,14 @@ export class ToolRegistry extends Service {
|
||||
/** Project one definition onto the model-facing schema fields. */
|
||||
private schemaOf(definition: ToolDefinition, detachParameters: boolean): ToolSchema {
|
||||
const { name, description, parameters } = definition
|
||||
const detached = detachParameters ? snapshotJsonValue(parameters) : parameters
|
||||
if (detached === undefined) {
|
||||
throw new Error(`tool "${name}" parameters must be lossless JSON before schema projection`)
|
||||
}
|
||||
return {
|
||||
name,
|
||||
description,
|
||||
parameters: detachParameters ? structuredClone(parameters) : parameters,
|
||||
parameters: detached,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user