(args: {
baseToolSelector: (params: TParams) => string
suffix: `_${string}`
fallbackToolId: string
})
| 414 | * } |
| 415 | */ |
| 416 | export function createVersionedToolSelector<TParams extends Record<string, any>>(args: { |
| 417 | baseToolSelector: (params: TParams) => string |
| 418 | suffix: `_${string}` |
| 419 | fallbackToolId: string |
| 420 | }): (params: TParams) => string { |
| 421 | const { baseToolSelector, suffix, fallbackToolId } = args |
| 422 | |
| 423 | return (params: TParams) => { |
| 424 | try { |
| 425 | const baseToolId = baseToolSelector(params) |
| 426 | if (!baseToolId || typeof baseToolId !== 'string') return fallbackToolId |
| 427 | return baseToolId.endsWith(suffix) ? baseToolId : `${baseToolId}${suffix}` |
| 428 | } catch { |
| 429 | return fallbackToolId |
| 430 | } |
| 431 | } |
| 432 | } |
| 433 | |
| 434 | interface ParseOptionalNumberInputOptions { |
| 435 | integer?: boolean |
no outgoing calls
no test coverage detected