Claude 模型清單改為 Fable 5 / Opus 5 / Sonnet 5
@@ -40,7 +40,7 @@ telegram-bot start # 重新 start 一次,bot 程序會自動切到新版
|
|||||||
|
|
||||||
1. 填名稱、**選 AI 引擎(Codex 或 Claude)**、Telegram token(儲存時自動驗證)
|
1. 填名稱、**選 AI 引擎(Codex 或 Claude)**、Telegram token(儲存時自動驗證)
|
||||||
2. 工作目錄按「📂 瀏覽」用原生視窗選資料夾(AI 可讀寫的專案路徑;Codex 讀裡面的 `AGENTS.md`、Claude 讀 `CLAUDE.md` 當專案規範)
|
2. 工作目錄按「📂 瀏覽」用原生視窗選資料夾(AI 可讀寫的專案路徑;Codex 讀裡面的 `AGENTS.md`、Claude 讀 `CLAUDE.md` 當專案規範)
|
||||||
3. 模型/推理強度用下拉選(Codex 清單來自本機 codex 的模型快取;Claude 用 opus/sonnet/haiku 別名永遠指向最新版)
|
3. 模型/推理強度用下拉選,清單依引擎不同(Codex 來自本機 codex 的模型快取,如 GPT-5.6 Sol/Terra/Luna;Claude 為 Fable 5 / Opus 5 / Sonnet 5)
|
||||||
4. 沙盒模式預設 `workspace-write` → 勾「建立後立即啟動」→ 儲存,完成
|
4. 沙盒模式預設 `workspace-write` → 勾「建立後立即啟動」→ 儲存,完成
|
||||||
|
|
||||||
之後對 bot 私訊即可;群組中要 `@bot` 或回覆 bot 的訊息。
|
之後對 bot 私訊即可;群組中要 `@bot` 或回覆 bot 的訊息。
|
||||||
@@ -55,7 +55,7 @@ telegram-bot start # 重新 start 一次,bot 程序會自動切到新版
|
|||||||
|---|---|---|
|
|---|---|---|
|
||||||
| 底層指令 | `codex exec --json` | `claude -p --output-format stream-json` |
|
| 底層指令 | `codex exec --json` | `claude -p --output-format stream-json` |
|
||||||
| 專案規範檔 | `AGENTS.md` | `CLAUDE.md` |
|
| 專案規範檔 | `AGENTS.md` | `CLAUDE.md` |
|
||||||
| 模型 | 本機 codex 模型快取(GPT-5.6 Sol/Terra/Luna…) | `opus` / `sonnet` / `haiku` 別名或任何模型 id |
|
| 模型 | 本機 codex 模型快取(GPT-5.6 Sol/Terra/Luna…) | Fable 5 / Opus 5 / Sonnet 5(設定檔可手填其他模型 id) |
|
||||||
| 推理強度 | low ~ ultra(依模型) | low / medium / high / max |
|
| 推理強度 | low ~ ultra(依模型) | low / medium / high / max |
|
||||||
| 速度 | 固定 Fast(priority 1.5x) | — |
|
| 速度 | 固定 Fast(priority 1.5x) | — |
|
||||||
| `read-only` | codex 唯讀沙盒 | 禁用 Write/Edit/Bash 等工具 |
|
| `read-only` | codex 唯讀沙盒 | 禁用 Write/Edit/Bash 等工具 |
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
|
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 91 KiB |
|
Before Width: | Height: | Size: 94 KiB After Width: | Height: | Size: 93 KiB |
|
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 64 KiB |
|
Before Width: | Height: | Size: 93 KiB After Width: | Height: | Size: 88 KiB |
@@ -335,7 +335,7 @@ const ENGINE_UI = {
|
|||||||
claude: {
|
claude: {
|
||||||
hint: '本機 Claude Code CLI(claude -p)。專案規範讀工作目錄的 CLAUDE.md',
|
hint: '本機 Claude Code CLI(claude -p)。專案規範讀工作目錄的 CLAUDE.md',
|
||||||
workdir: '規範檔:CLAUDE.md',
|
workdir: '規範檔:CLAUDE.md',
|
||||||
modelHint: '別名 opus / sonnet / haiku 永遠指向最新版;也可在編輯時手動改成任何模型 id',
|
modelHint: 'Claude 5 家族:Fable 5 / Opus 5 / Sonnet 5(設定檔可手填其他模型 id)',
|
||||||
effortHint: 'Claude 的 effort 對應 --effort 參數',
|
effortHint: 'Claude 的 effort 對應 --effort 參數',
|
||||||
sandbox: {
|
sandbox: {
|
||||||
'workspace-write': 'workspace-write(自動接受檔案編輯;不執行指令,預設)',
|
'workspace-write': 'workspace-write(自動接受檔案編輯;不執行指令,預設)',
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ async function apiPm2Log(pmId, type, lines) {
|
|||||||
// ---------- 模型清單 ----------
|
// ---------- 模型清單 ----------
|
||||||
// codex:直接讀它自己的 models cache(~/.codex/models_cache.json),新模型上線後下拉選單自動跟上;
|
// codex:直接讀它自己的 models cache(~/.codex/models_cache.json),新模型上線後下拉選單自動跟上;
|
||||||
// 讀不到就退回內建清單。
|
// 讀不到就退回內建清單。
|
||||||
// claude:CLI 沒有模型清單可查,用內建清單(別名 opus/sonnet/haiku 永遠指向最新版)。
|
// claude:CLI 沒有模型清單可查,用內建清單(Claude 5 家族:Fable / Opus / Sonnet;編輯時也可手填任何模型 id)。
|
||||||
const CODEX_FALLBACK_MODELS = [
|
const CODEX_FALLBACK_MODELS = [
|
||||||
{ slug: 'gpt-5.6-sol', label: 'GPT-5.6-Sol', efforts: ['low', 'medium', 'high', 'xhigh', 'max', 'ultra'], defaultEffort: 'medium' },
|
{ slug: 'gpt-5.6-sol', label: 'GPT-5.6-Sol', efforts: ['low', 'medium', 'high', 'xhigh', 'max', 'ultra'], defaultEffort: 'medium' },
|
||||||
{ slug: 'gpt-5.6-terra', label: 'GPT-5.6-Terra', efforts: ['low', 'medium', 'high', 'xhigh', 'max', 'ultra'], defaultEffort: 'medium' },
|
{ slug: 'gpt-5.6-terra', label: 'GPT-5.6-Terra', efforts: ['low', 'medium', 'high', 'xhigh', 'max', 'ultra'], defaultEffort: 'medium' },
|
||||||
@@ -106,11 +106,9 @@ const CODEX_FALLBACK_MODELS = [
|
|||||||
|
|
||||||
const CLAUDE_EFFORTS = ['low', 'medium', 'high', 'max'];
|
const CLAUDE_EFFORTS = ['low', 'medium', 'high', 'max'];
|
||||||
const CLAUDE_MODELS = [
|
const CLAUDE_MODELS = [
|
||||||
{ slug: 'opus', label: 'Opus(最新版,目前 Opus 5)', efforts: CLAUDE_EFFORTS, defaultEffort: 'high' },
|
{ slug: 'claude-fable-5', label: 'Fable 5(最強,Mythos 級)', efforts: CLAUDE_EFFORTS, defaultEffort: 'high' },
|
||||||
{ slug: 'sonnet', label: 'Sonnet(最新版,較快)', efforts: CLAUDE_EFFORTS, defaultEffort: 'high' },
|
{ slug: 'claude-opus-5', label: 'Opus 5', efforts: CLAUDE_EFFORTS, defaultEffort: 'high' },
|
||||||
{ slug: 'haiku', label: 'Haiku(最快、最省)', efforts: ['low', 'medium', 'high'], defaultEffort: 'medium' },
|
{ slug: 'claude-sonnet-5', label: 'Sonnet 5(較快)', efforts: CLAUDE_EFFORTS, defaultEffort: 'high' },
|
||||||
{ slug: 'claude-opus-5', label: 'claude-opus-5(鎖定版本)', efforts: CLAUDE_EFFORTS, defaultEffort: 'high' },
|
|
||||||
{ slug: 'claude-sonnet-5', label: 'claude-sonnet-5(鎖定版本)', efforts: CLAUDE_EFFORTS, defaultEffort: 'high' },
|
|
||||||
];
|
];
|
||||||
|
|
||||||
// codex 全域預設(~/.codex/config.toml),前端用來當下拉選單的預選值
|
// codex 全域預設(~/.codex/config.toml),前端用來當下拉選單的預選值
|
||||||
@@ -143,14 +141,14 @@ function codexModels() {
|
|||||||
return { models: CODEX_FALLBACK_MODELS, defaults, source: 'fallback' };
|
return { models: CODEX_FALLBACK_MODELS, defaults, source: 'fallback' };
|
||||||
}
|
}
|
||||||
|
|
||||||
// claude 全域預設(~/.claude/settings.json 的 model;沒有就 opus)
|
// claude 全域預設(~/.claude/settings.json 的 model 若在清單內就用它;沒有就 Opus 5)
|
||||||
function claudeModels() {
|
function claudeModels() {
|
||||||
let model = '';
|
let model = '';
|
||||||
try {
|
try {
|
||||||
const s = JSON.parse(fs.readFileSync(path.join(os.homedir(), '.claude', 'settings.json'), 'utf-8'));
|
const s = JSON.parse(fs.readFileSync(path.join(os.homedir(), '.claude', 'settings.json'), 'utf-8'));
|
||||||
if (typeof s.model === 'string') model = s.model;
|
if (typeof s.model === 'string' && CLAUDE_MODELS.some((m) => m.slug === s.model)) model = s.model;
|
||||||
} catch { /* ignore */ }
|
} catch { /* ignore */ }
|
||||||
return { models: CLAUDE_MODELS, defaults: { model: model || 'opus', effort: '' }, source: 'builtin' };
|
return { models: CLAUDE_MODELS, defaults: { model: model || 'claude-opus-5', effort: '' }, source: 'builtin' };
|
||||||
}
|
}
|
||||||
|
|
||||||
// 引擎是否裝了(開控制台時查一次就好,之後不變)
|
// 引擎是否裝了(開控制台時查一次就好,之後不變)
|
||||||
|
|||||||