fix: make CostThresholdDialog provider-aware instead of hardcoding Anthropic
Partially addresses #39. The cost threshold dialog hardcoded 'Anthropic API' in the title, which is misleading for users on OpenAI, Gemini, Ollama, or other providers. Now detects the active provider via getAPIProvider() and shows the correct label.
This commit is contained in:
@@ -1,50 +1,55 @@
|
|||||||
import { c as _c } from "react-compiler-runtime";
|
import React from 'react'
|
||||||
import React from 'react';
|
import { Box, Link, Text } from '../ink.js'
|
||||||
import { Box, Link, Text } from '../ink.js';
|
import { Select } from './CustomSelect/index.js'
|
||||||
import { Select } from './CustomSelect/index.js';
|
import { Dialog } from './design-system/Dialog.js'
|
||||||
import { Dialog } from './design-system/Dialog.js';
|
import { getAPIProvider } from '../utils/model/providers.js'
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
onDone: () => void;
|
onDone: () => void
|
||||||
};
|
}
|
||||||
export function CostThresholdDialog(t0) {
|
|
||||||
const $ = _c(7);
|
function getProviderLabel(): string {
|
||||||
const {
|
const provider = getAPIProvider()
|
||||||
onDone
|
switch (provider) {
|
||||||
} = t0;
|
case 'firstParty':
|
||||||
let t1;
|
return 'Anthropic API'
|
||||||
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
case 'bedrock':
|
||||||
t1 = <Box flexDirection="column"><Text>Learn more about how to monitor your spending:</Text><Link url="https://code.claude.com/docs/en/costs" /></Box>;
|
return 'AWS Bedrock'
|
||||||
$[0] = t1;
|
case 'vertex':
|
||||||
} else {
|
return 'Google Vertex'
|
||||||
t1 = $[0];
|
case 'foundry':
|
||||||
}
|
return 'Azure Foundry'
|
||||||
let t2;
|
default:
|
||||||
if ($[1] === Symbol.for("react.memo_cache_sentinel")) {
|
if (process.env.CLAUDE_CODE_USE_OPENAI === '1' || process.env.CLAUDE_CODE_USE_OPENAI === 'true') {
|
||||||
t2 = [{
|
return 'OpenAI-compatible API'
|
||||||
value: "ok",
|
}
|
||||||
label: "Got it, thanks!"
|
if (process.env.CLAUDE_CODE_USE_GEMINI === '1' || process.env.CLAUDE_CODE_USE_GEMINI === 'true') {
|
||||||
}];
|
return 'Gemini API'
|
||||||
$[1] = t2;
|
}
|
||||||
} else {
|
return 'API'
|
||||||
t2 = $[1];
|
}
|
||||||
}
|
}
|
||||||
let t3;
|
|
||||||
if ($[2] !== onDone) {
|
export function CostThresholdDialog({ onDone }: Props): React.ReactNode {
|
||||||
t3 = <Select options={t2} onChange={onDone} />;
|
const providerLabel = getProviderLabel()
|
||||||
$[2] = onDone;
|
return (
|
||||||
$[3] = t3;
|
<Dialog
|
||||||
} else {
|
title={`You've spent $5 on the ${providerLabel} this session.`}
|
||||||
t3 = $[3];
|
onCancel={onDone}
|
||||||
}
|
>
|
||||||
let t4;
|
<Box flexDirection="column">
|
||||||
if ($[4] !== onDone || $[5] !== t3) {
|
<Text>Learn more about how to monitor your spending:</Text>
|
||||||
t4 = <Dialog title="You've spent $5 on the Anthropic API this session." onCancel={onDone}>{t1}{t3}</Dialog>;
|
<Link url="https://code.claude.com/docs/en/costs" />
|
||||||
$[4] = onDone;
|
</Box>
|
||||||
$[5] = t3;
|
<Select
|
||||||
$[6] = t4;
|
options={[
|
||||||
} else {
|
{
|
||||||
t4 = $[6];
|
value: 'ok',
|
||||||
}
|
label: 'Got it, thanks!',
|
||||||
return t4;
|
},
|
||||||
|
]}
|
||||||
|
onChange={onDone}
|
||||||
|
/>
|
||||||
|
</Dialog>
|
||||||
|
)
|
||||||
}
|
}
|
||||||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIkJveCIsIkxpbmsiLCJUZXh0IiwiU2VsZWN0IiwiRGlhbG9nIiwiUHJvcHMiLCJvbkRvbmUiLCJDb3N0VGhyZXNob2xkRGlhbG9nIiwidDAiLCIkIiwiX2MiLCJ0MSIsIlN5bWJvbCIsImZvciIsInQyIiwidmFsdWUiLCJsYWJlbCIsInQzIiwidDQiXSwic291cmNlcyI6WyJDb3N0VGhyZXNob2xkRGlhbG9nLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBCb3gsIExpbmssIFRleHQgfSBmcm9tICcuLi9pbmsuanMnXG5pbXBvcnQgeyBTZWxlY3QgfSBmcm9tICcuL0N1c3RvbVNlbGVjdC9pbmRleC5qcydcbmltcG9ydCB7IERpYWxvZyB9IGZyb20gJy4vZGVzaWduLXN5c3RlbS9EaWFsb2cuanMnXG5cbnR5cGUgUHJvcHMgPSB7XG4gIG9uRG9uZTogKCkgPT4gdm9pZFxufVxuXG5leHBvcnQgZnVuY3Rpb24gQ29zdFRocmVzaG9sZERpYWxvZyh7IG9uRG9uZSB9OiBQcm9wcyk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIHJldHVybiAoXG4gICAgPERpYWxvZ1xuICAgICAgdGl0bGU9XCJZb3UndmUgc3BlbnQgJDUgb24gdGhlIEFudGhyb3BpYyBBUEkgdGhpcyBzZXNzaW9uLlwiXG4gICAgICBvbkNhbmNlbD17b25Eb25lfVxuICAgID5cbiAgICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiPlxuICAgICAgICA8VGV4dD5MZWFybiBtb3JlIGFib3V0IGhvdyB0byBtb25pdG9yIHlvdXIgc3BlbmRpbmc6PC9UZXh0PlxuICAgICAgICA8TGluayB1cmw9XCJodHRwczovL2NvZGUuY2xhdWRlLmNvbS9kb2NzL2VuL2Nvc3RzXCIgLz5cbiAgICAgIDwvQm94PlxuICAgICAgPFNlbGVjdFxuICAgICAgICBvcHRpb25zPXtbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdvaycsXG4gICAgICAgICAgICBsYWJlbDogJ0dvdCBpdCwgdGhhbmtzIScsXG4gICAgICAgICAgfSxcbiAgICAgICAgXX1cbiAgICAgICAgb25DaGFuZ2U9e29uRG9uZX1cbiAgICAgIC8+XG4gICAgPC9EaWFsb2c+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU9BLEtBQUssTUFBTSxPQUFPO0FBQ3pCLFNBQVNDLEdBQUcsRUFBRUMsSUFBSSxFQUFFQyxJQUFJLFFBQVEsV0FBVztBQUMzQyxTQUFTQyxNQUFNLFFBQVEseUJBQXlCO0FBQ2hELFNBQVNDLE1BQU0sUUFBUSwyQkFBMkI7QUFFbEQsS0FBS0MsS0FBSyxHQUFHO0VBQ1hDLE1BQU0sRUFBRSxHQUFHLEdBQUcsSUFBSTtBQUNwQixDQUFDO0FBRUQsT0FBTyxTQUFBQyxvQkFBQUMsRUFBQTtFQUFBLE1BQUFDLENBQUEsR0FBQUMsRUFBQTtFQUE2QjtJQUFBSjtFQUFBLElBQUFFLEVBQWlCO0VBQUEsSUFBQUcsRUFBQTtFQUFBLElBQUFGLENBQUEsUUFBQUcsTUFBQSxDQUFBQyxHQUFBO0lBTS9DRixFQUFBLElBQUMsR0FBRyxDQUFlLGFBQVEsQ0FBUixRQUFRLENBQ3pCLENBQUMsSUFBSSxDQUFDLDhDQUE4QyxFQUFuRCxJQUFJLENBQ0wsQ0FBQyxJQUFJLENBQUssR0FBdUMsQ0FBdkMsdUNBQXVDLEdBQ25ELEVBSEMsR0FBRyxDQUdFO0lBQUFGLENBQUEsTUFBQUUsRUFBQTtFQUFBO0lBQUFBLEVBQUEsR0FBQUYsQ0FBQTtFQUFBO0VBQUEsSUFBQUssRUFBQTtFQUFBLElBQUFMLENBQUEsUUFBQUcsTUFBQSxDQUFBQyxHQUFBO0lBRUtDLEVBQUEsSUFDUDtNQUFBQyxLQUFBLEVBQ1MsSUFBSTtNQUFBQyxLQUFBLEVBQ0o7SUFDVCxDQUFDLENBQ0Y7SUFBQVAsQ0FBQSxNQUFBSyxFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBTCxDQUFBO0VBQUE7RUFBQSxJQUFBUSxFQUFBO0VBQUEsSUFBQVIsQ0FBQSxRQUFBSCxNQUFBO0lBTkhXLEVBQUEsSUFBQyxNQUFNLENBQ0ksT0FLUixDQUxRLENBQUFILEVBS1QsQ0FBQyxDQUNTUixRQUFNLENBQU5BLE9BQUssQ0FBQyxHQUNoQjtJQUFBRyxDQUFBLE1BQUFILE1BQUE7SUFBQUcsQ0FBQSxNQUFBUSxFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBUixDQUFBO0VBQUE7RUFBQSxJQUFBUyxFQUFBO0VBQUEsSUFBQVQsQ0FBQSxRQUFBSCxNQUFBLElBQUFHLENBQUEsUUFBQVEsRUFBQTtJQWhCSkMsRUFBQSxJQUFDLE1BQU0sQ0FDQyxLQUFvRCxDQUFwRCxvREFBb0QsQ0FDaERaLFFBQU0sQ0FBTkEsT0FBSyxDQUFDLENBRWhCLENBQUFLLEVBR0ssQ0FDTCxDQUFBTSxFQVFDLENBQ0gsRUFqQkMsTUFBTSxDQWlCRTtJQUFBUixDQUFBLE1BQUFILE1BQUE7SUFBQUcsQ0FBQSxNQUFBUSxFQUFBO0lBQUFSLENBQUEsTUFBQVMsRUFBQTtFQUFBO0lBQUFBLEVBQUEsR0FBQVQsQ0FBQTtFQUFBO0VBQUEsT0FqQlRTLEVBaUJTO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
||||||
Reference in New Issue
Block a user