(snapshot: Directory.Snapshot, modelId: string)
| 902 | } |
| 903 | |
| 904 | function parseSelectedModel(snapshot: Directory.Snapshot, modelId: string) { |
| 905 | const selected = parseModelSelection(modelId, Object.values(snapshot.providers)) |
| 906 | const provider = snapshot.providers[ProviderV2.ID.make(selected.model.providerID)] |
| 907 | const model = provider?.models[ModelV2.ID.make(selected.model.modelID)] |
| 908 | if (!model) { |
| 909 | return Effect.fail( |
| 910 | new ACPError.InvalidModelError({ |
| 911 | providerId: selected.model.providerID, |
| 912 | modelId, |
| 913 | }), |
| 914 | ) |
| 915 | } |
| 916 | if (selected.variant && !model.variants?.[selected.variant]) { |
| 917 | return Effect.fail(new ACPError.InvalidEffortError({ effort: selected.variant })) |
| 918 | } |
| 919 | return Effect.succeed({ |
| 920 | model: { |
| 921 | providerID: provider.id, |
| 922 | modelID: model.id, |
| 923 | }, |
| 924 | variant: selected.variant, |
| 925 | }) |
| 926 | } |
| 927 | |
| 928 | function sendAvailableCommands( |
| 929 | connection: Pick<AgentSideConnection, "sessionUpdate"> | undefined, |
no test coverage detected