(value: unknown)
| 654 | } |
| 655 | |
| 656 | function decodeToolUsageQuery(value: unknown): ToolUsageQuery { |
| 657 | const query = requireRecord(value, 'tool usage query'); |
| 658 | assertAllowedKeys(query, TOOL_USAGE_QUERY_FIELDS, 'tool usage query'); |
| 659 | if (!Object.hasOwn(query, 'range')) { |
| 660 | throw invalidProtocolFrame('Invalid tool usage query fields'); |
| 661 | } |
| 662 | return { |
| 663 | range: decodeUsageRange(query.range), |
| 664 | ...optionalQueryText(query, 'toolName'), |
| 665 | ...(query.status === undefined ? {} : { status: decodeUsageStatus(query.status) }), |
| 666 | }; |
| 667 | } |
| 668 | |
| 669 | function decodeUsageRange(value: unknown): UsageQuery['range'] { |
| 670 | if (value === '24h' || value === '7d' || value === '30d' || value === 'all') return value; |
no test coverage detected