Compare commits
3 Commits
4331ebb675
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b3468095c9 | ||
|
|
676b25217e | ||
|
|
9448212a26 |
@@ -15,10 +15,10 @@
|
|||||||
|
|
||||||
| Claude Code `/effort` | Anthropic (`ai-claude`) | DeepSeek V4 (`ai-deepseek`) | Kimi K2.7/K2.6 (`ai-kimi`) | GLM 5.3 (`ai-glm`) | OpenRouter/GPT-5.5 (`ai-openrouter`) | OpenCode Go (`ai-opencode`) |
|
| Claude Code `/effort` | Anthropic (`ai-claude`) | DeepSeek V4 (`ai-deepseek`) | Kimi K2.7/K2.6 (`ai-kimi`) | GLM 5.3 (`ai-glm`) | OpenRouter/GPT-5.5 (`ai-openrouter`) | OpenCode Go (`ai-opencode`) |
|
||||||
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|
||||||
| `low` | нативно `low` | провайдер поднимает до `high` | thinking on | на стороне сервера | без локального маппинга | без локального маппинга |
|
| `low` | нативно `low` | нативно `low` | thinking on | на стороне сервера | без локального маппинга | без локального маппинга |
|
||||||
| `medium` | нативно `medium` | провайдер поднимает до `high` | thinking on | на стороне сервера | без локального маппинга | без локального маппинга |
|
| `medium` | нативно `medium` | провайдер поднимает до `high` | thinking on | на стороне сервера | без локального маппинга | без локального маппинга |
|
||||||
| `high` | нативно `high` | нативно `high` | thinking on | на стороне сервера | без локального маппинга | без локального маппинга |
|
| `high` | нативно `high` | нативно `high` | thinking on | на стороне сервера | без локального маппинга | без локального маппинга |
|
||||||
| `xhigh` | нативно `xhigh` | провайдер поднимает до `max` | thinking on | на стороне сервера | без локального маппинга | без локального маппинга |
|
| `xhigh` | нативно `xhigh` | провайдер поднимает до `high` | thinking on | на стороне сервера | без локального маппинга | без локального маппинга |
|
||||||
| `max` | нативно `max` | нативно `max` | thinking on | на стороне сервера | без локального маппинга | без локального маппинга |
|
| `max` | нативно `max` | нативно `max` | thinking on | на стороне сервера | без локального маппинга | без локального маппинга |
|
||||||
|
|
||||||
Для OpenRouter текущий лаунчер не делает локального преобразования effort и отправляет
|
Для OpenRouter текущий лаунчер не делает локального преобразования effort и отправляет
|
||||||
@@ -45,12 +45,13 @@ low -> medium -> high -> xhigh -> max
|
|||||||
### DeepSeek V4
|
### DeepSeek V4
|
||||||
|
|
||||||
```text
|
```text
|
||||||
high -> max
|
low -> high -> max
|
||||||
```
|
```
|
||||||
|
|
||||||
- 2 реальных уровня.
|
- 3 реальных уровня.
|
||||||
- `low` и `medium` фактически поднимаются до `high`.
|
- `low` остаётся `low` — реально снижает thinking бюджет.
|
||||||
- `xhigh` фактически поднимается до `max`.
|
- `medium` и `xhigh` фактически поднимаются до `high`.
|
||||||
|
- `max` остаётся `max` — максимальный бюджет thinking.
|
||||||
- Маппинг выполняется на стороне DeepSeek API.
|
- Маппинг выполняется на стороне DeepSeek API.
|
||||||
- Дефолт `ai-deepseek`: `high`.
|
- Дефолт `ai-deepseek`: `high`.
|
||||||
|
|
||||||
@@ -125,4 +126,4 @@ ai-deepseek # без флага - использовать ур
|
|||||||
|
|
||||||
- Для повседневной работы: `high` или `xhigh`.
|
- Для повседневной работы: `high` или `xhigh`.
|
||||||
- `max` effort имеет реальный эффект у Anthropic и DeepSeek; у Kimi и GLM это всё тот же thinking on / маппинг на стороне сервера.
|
- `max` effort имеет реальный эффект у Anthropic и DeepSeek; у Kimi и GLM это всё тот же thinking on / маппинг на стороне сервера.
|
||||||
- `low`/`medium` у DeepSeek, Kimi и GLM фактически не снижают reasoning.
|
- `low`/`medium` у Kimi и GLM фактически не снижают reasoning; у DeepSeek `low` теперь даёт реальный уровень `low` и экономит бюджет.
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ Use these defaults across projects, then apply any more specific repository inst
|
|||||||
- For requests to answer, explain, review, diagnose, or plan, inspect the relevant materials and report the result. Do not implement changes unless the request also asks for them.
|
- For requests to answer, explain, review, diagnose, or plan, inspect the relevant materials and report the result. Do not implement changes unless the request also asks for them.
|
||||||
- For requests to change, build, or fix, perform safe in-scope local edits and validation without asking for routine confirmation.
|
- For requests to change, build, or fix, perform safe in-scope local edits and validation without asking for routine confirmation.
|
||||||
- Ask before destructive or difficult-to-recover actions, external writes or publication, purchases, or a material expansion of scope.
|
- Ask before destructive or difficult-to-recover actions, external writes or publication, purchases, or a material expansion of scope.
|
||||||
|
- Exception for Eltex merge-request reviews: a bare review request or explicit `eltex-review` invocation authorizes the skill's documented GitLab writes, including inline discussions, approval, and its thank-you note. Explicit chat-only wording keeps the review read-only.
|
||||||
- Preserve unrelated user changes and adapt to a dirty working tree. Never discard or overwrite work you did not create.
|
- Preserve unrelated user changes and adapt to a dirty working tree. Never discard or overwrite work you did not create.
|
||||||
|
|
||||||
## 4. Plan and Verify Proportionally
|
## 4. Plan and Verify Proportionally
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ The custom statusline script renders **only ASCII-safe characters and ANSI color
|
|||||||
|
|
||||||
- ASCII brackets `[ ]` for git branch and effort level
|
- ASCII brackets `[ ]` for git branch and effort level
|
||||||
- ANSI 256-color escape sequences for model names, effort levels, and rate-limit percentages
|
- ANSI 256-color escape sequences for model names, effort levels, and rate-limit percentages
|
||||||
- The `¥` symbol (U+00A5) for CNY balance in DeepSeek output
|
- The `$` symbol for the DeepSeek balance (USD only)
|
||||||
|
|
||||||
It does **not** use Nerd Font glyphs, powerline separators, or emoji.
|
It does **not** use Nerd Font glyphs, powerline separators, or emoji.
|
||||||
|
|
||||||
|
|||||||
@@ -171,13 +171,12 @@ if [[ "$model_id" == *deepseek* ]]; then
|
|||||||
import sys, json
|
import sys, json
|
||||||
d = json.load(sys.stdin)
|
d = json.load(sys.stdin)
|
||||||
infos = d.get('balance_infos', [])
|
infos = d.get('balance_infos', [])
|
||||||
symbols = {'USD': '\$', 'CNY': '\u00a5'}
|
|
||||||
parts = []
|
parts = []
|
||||||
for info in infos:
|
for info in infos:
|
||||||
curr = info.get('currency', '')
|
if info.get('currency', '').upper() != 'USD':
|
||||||
|
continue
|
||||||
total = info.get('total_balance', '0')
|
total = info.get('total_balance', '0')
|
||||||
sym = symbols.get(curr, curr)
|
parts.append(f'\${total}')
|
||||||
parts.append(f'{sym}{total}')
|
|
||||||
if parts:
|
if parts:
|
||||||
print(' '.join(parts))
|
print(' '.join(parts))
|
||||||
" 2>/dev/null)
|
" 2>/dev/null)
|
||||||
|
|||||||
@@ -706,25 +706,24 @@ try:
|
|||||||
d = json.load(sys.stdin)
|
d = json.load(sys.stdin)
|
||||||
available = d.get('is_available', False)
|
available = d.get('is_available', False)
|
||||||
infos = d.get('balance_infos', [])
|
infos = d.get('balance_infos', [])
|
||||||
|
# Показываем только USD (CNY не выводим)
|
||||||
|
infos = [i for i in infos if i.get('currency', '').upper() == 'USD']
|
||||||
if not infos:
|
if not infos:
|
||||||
print(' \033[0;33m[БАЛАНС]\033[0m Нет данных о балансе')
|
print(' \033[0;33m[БАЛАНС]\033[0m Нет данных о балансе')
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
symbols = {'USD': '\$', 'CNY': '¥'}
|
|
||||||
cache_parts = []
|
cache_parts = []
|
||||||
for info in infos:
|
for info in infos:
|
||||||
curr = info.get('currency', '???')
|
|
||||||
total = info.get('total_balance', '0')
|
total = info.get('total_balance', '0')
|
||||||
granted = info.get('granted_balance', '0')
|
granted = info.get('granted_balance', '0')
|
||||||
topped_up = info.get('topped_up_balance', '0')
|
topped_up = info.get('topped_up_balance', '0')
|
||||||
sym = symbols.get(curr, curr)
|
|
||||||
status = '✅ доступен' if available else '❌ не активен'
|
status = '✅ доступен' if available else '❌ не активен'
|
||||||
print(f' \033[1;36m💰 Баланс DeepSeek:\033[0m {total} {curr} {status}')
|
print(f' \033[1;36m💰 Баланс DeepSeek:\033[0m \${total} {status}')
|
||||||
if float(granted) > 0:
|
if float(granted) > 0:
|
||||||
print(f' └─ Начислено: {granted} {curr}')
|
print(f' └─ Начислено: \${granted}')
|
||||||
if float(topped_up) > 0:
|
if float(topped_up) > 0:
|
||||||
print(f' └─ Пополнено: {topped_up} {curr}')
|
print(f' └─ Пополнено: \${topped_up}')
|
||||||
cache_parts.append(f'{sym}{total}')
|
cache_parts.append(f'\${total}')
|
||||||
# Cache all currencies with symbols for statusline
|
# Cache USD balance for statusline
|
||||||
if cache_parts:
|
if cache_parts:
|
||||||
cache_dir = os.path.expanduser('~/.cache/ai-setup')
|
cache_dir = os.path.expanduser('~/.cache/ai-setup')
|
||||||
os.makedirs(cache_dir, exist_ok=True)
|
os.makedirs(cache_dir, exist_ok=True)
|
||||||
|
|||||||
Reference in New Issue
Block a user