File size: 2,161 Bytes
eb3f11e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | // Schema normalization runtime contract helpers create tools for provider schema tests.
export function createParameterFreeTool(name = "ping") {
return {
name,
description: "Parameter-free test tool",
parameters: {},
};
}
export function createStrictCompatibleTool(name = "lookup") {
return {
name,
description: "Strict-compatible test tool",
parameters: {
type: "object",
properties: {
path: { type: "string" },
},
required: ["path"],
additionalProperties: false,
},
};
}
export function createPermissiveTool(name = "schedule") {
return {
name,
description: "Permissive test tool",
parameters: {
type: "object",
properties: {
action: { type: "string" },
cron: { type: "string" },
},
required: ["action"],
additionalProperties: true,
},
};
}
export function createNativeOpenAIResponsesModel() {
return {
id: "gpt-5.4",
name: "GPT-5.4",
api: "openai-responses",
provider: "openai",
baseUrl: "https://api.openai.com/v1",
reasoning: true,
input: ["text"],
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: 200_000,
maxTokens: 8_192,
};
}
export function createNativeOpenAICodexResponsesModel() {
return {
id: "gpt-5.4",
name: "GPT-5.4",
api: "openai-chatgpt-responses",
provider: "openai",
baseUrl: "https://chatgpt.com/backend-api",
reasoning: true,
input: ["text"],
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: 200_000,
maxTokens: 8_192,
};
}
export function createProxyOpenAIResponsesModel() {
return {
id: "custom-gpt",
name: "Custom GPT",
api: "openai-responses",
provider: "openai",
baseUrl: "https://proxy.example.com/v1",
reasoning: true,
input: ["text"],
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: 200_000,
maxTokens: 8_192,
};
}
export function normalizedParameterFreeSchema() {
return {
type: "object",
properties: {},
required: [],
additionalProperties: false,
};
}
|