(wire: WireConfig)
| 734 | } |
| 735 | |
| 736 | export function toAppConfig(wire: WireConfig): AppConfig { |
| 737 | const providers: Record<string, { type: string; baseUrl?: string; defaultModel?: string; hasApiKey: boolean }> = {}; |
| 738 | for (const [id, provider] of Object.entries(wire.providers)) { |
| 739 | providers[id] = { |
| 740 | type: provider.type, |
| 741 | baseUrl: provider.base_url, |
| 742 | defaultModel: provider.default_model, |
| 743 | hasApiKey: provider.has_api_key, |
| 744 | }; |
| 745 | } |
| 746 | return { |
| 747 | providers, |
| 748 | defaultProvider: wire.default_provider, |
| 749 | defaultModel: wire.default_model, |
| 750 | models: wire.models, |
| 751 | thinking: wire.thinking as { enabled?: boolean; effort?: string } | undefined, |
| 752 | planMode: wire.plan_mode, |
| 753 | yolo: wire.yolo, |
| 754 | defaultPermissionMode: wire.default_permission_mode, |
| 755 | defaultPlanMode: wire.default_plan_mode, |
| 756 | permission: wire.permission, |
| 757 | hooks: wire.hooks, |
| 758 | services: wire.services, |
| 759 | mergeAllAvailableSkills: wire.merge_all_available_skills, |
| 760 | extraSkillDirs: wire.extra_skill_dirs, |
| 761 | loopControl: wire.loop_control, |
| 762 | background: wire.background, |
| 763 | experimental: wire.experimental, |
| 764 | telemetry: wire.telemetry, |
| 765 | raw: wire.raw, |
| 766 | }; |
| 767 | } |
| 768 | |
| 769 | // Helper to extract sessionId from a WireEvent (needed by reducer for lastSeq update) |
| 770 | export function wireEventSessionId(wire: WireEvent): string { |
no outgoing calls
no test coverage detected