-
- Budget Tracking
-
-
- updateBudget('enabled', v)}
- />
- {(settings.budget?.enabled ?? DEFAULT_FEATURE_SETTINGS.budget.enabled) && (
- <>
- updateBudget('monthlyTokenLimit', v)}
- min={0}
- max={9_999_999_999}
- unit="tokens"
- hideSpinners
- maxLength={10}
- />
- updateBudget('monthlyCostLimit', v)}
- min={0}
- max={9_999_999_999}
- unit="USD"
- hideSpinners
- maxLength={10}
- />
- updateBudget('warningThreshold', v)}
- min={50}
- max={99}
- step={5}
- unit="%"
- hideSpinners
- maxLength={2}
- />
-
- updateDefaultRunBudget({
- enabled: v,
- scope: 'workspace',
- name: defaultRunBudget?.name ?? 'Workspace default run budget',
- })
- }
- />
- {(defaultRunBudget?.enabled ?? false) && (
- <>
- updateDefaultRunLimit('totalTokens', v)}
- min={0}
- max={9_999_999_999}
- unit="tokens"
- hideSpinners
- maxLength={10}
- />
- updateDefaultRunLimit('costUsd', v)}
- min={0}
- max={1_000_000}
- unit="USD"
- hideSpinners
- maxLength={8}
- />
- updateDefaultRunLimit('toolCalls', v)}
- min={0}
- max={100_000}
- unit="calls"
- hideSpinners
- maxLength={6}
- />
- updateDefaultRunLimit('runtimeSeconds', v)}
- min={0}
- max={604_800}
- unit="sec"
- hideSpinners
- maxLength={6}
- />
- updateDefaultRunLimit('retries', v)}
- min={0}
- max={100}
- unit="retries"
- hideSpinners
- maxLength={3}
- />
- updateDefaultRunLimit('fanOut', v)}
- min={0}
- max={100}
- unit="branches"
- hideSpinners
- maxLength={3}
+
+ updateBudget('enabled', v)}
+ />
+ {(settings.budget?.enabled ?? DEFAULT_FEATURE_SETTINGS.budget.enabled) && (
+ <>
+ updateBudget('monthlyTokenLimit', v)}
+ min={0}
+ max={9_999_999_999}
+ unit="tokens"
+ hideSpinners
+ maxLength={10}
+ />
+ updateBudget('monthlyCostLimit', v)}
+ min={0}
+ max={9_999_999_999}
+ unit="USD"
+ hideSpinners
+ maxLength={10}
+ />
+ updateBudget('warningThreshold', v)}
+ min={50}
+ max={99}
+ step={5}
+ unit="%"
+ hideSpinners
+ maxLength={2}
+ />
+
+ updateDefaultRunBudget({
+ enabled: v,
+ scope: 'workspace',
+ name: defaultRunBudget?.name ?? 'Workspace default run budget',
+ })
+ }
+ />
+ {(defaultRunBudget?.enabled ?? false) && (
+ <>
+ updateDefaultRunLimit('totalTokens', v)}
+ min={0}
+ max={9_999_999_999}
+ unit="tokens"
+ hideSpinners
+ maxLength={10}
+ />
+ updateDefaultRunLimit('costUsd', v)}
+ min={0}
+ max={1_000_000}
+ unit="USD"
+ hideSpinners
+ maxLength={8}
+ />
+ updateDefaultRunLimit('toolCalls', v)}
+ min={0}
+ max={100_000}
+ unit="calls"
+ hideSpinners
+ maxLength={6}
+ />
+ updateDefaultRunLimit('runtimeSeconds', v)}
+ min={0}
+ max={604_800}
+ unit="sec"
+ hideSpinners
+ maxLength={6}
+ />
+ updateDefaultRunLimit('retries', v)}
+ min={0}
+ max={100}
+ unit="retries"
+ hideSpinners
+ maxLength={3}
+ />
+ updateDefaultRunLimit('fanOut', v)}
+ min={0}
+ max={100}
+ unit="branches"
+ hideSpinners
+ maxLength={3}
+ />
+
+
+ {defaultRunBudget?.hardAction === 'downgrade' && (
-
- {defaultRunBudget?.hardAction === 'downgrade' && (
-
-
- updateDefaultRunBudget({ downgradeModel: event.currentTarget.value })
- }
- placeholder="gpt-4.1-mini"
- />
-
- )}
- >
- )}
- >
- )}
-
-
+ )}
+ >
+ )}
+ >
+ )}
+
{/* Archive */}
-
-
- Archive
-
-
-
+ updateArchive('autoArchiveEnabled', v)}
+ />
+ {(settings.archive?.autoArchiveEnabled ??
+ DEFAULT_FEATURE_SETTINGS.archive.autoArchiveEnabled) && (
+ updateArchive('autoArchiveEnabled', v)}
+ onChange={(v) => updateArchive('autoArchiveAfterDays', v)}
+ min={1}
+ max={365}
+ unit="days"
+ hideSpinners
+ maxLength={3}
/>
- {(settings.archive?.autoArchiveEnabled ??
- DEFAULT_FEATURE_SETTINGS.archive.autoArchiveEnabled) && (
- updateArchive('autoArchiveAfterDays', v)}
- min={1}
- max={365}
- unit="days"
- hideSpinners
- maxLength={3}
- />
- )}
-
-