@raolin2025/claude-code-node 2.6.17 → 2.6.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/core/cli.js +28 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@raolin2025/claude-code-node",
3
- "version": "2.6.17",
3
+ "version": "2.6.18",
4
4
  "description": "Node.js AI Code Agent CLI - Zero dependencies, pure JavaScript, security hardened, multi-channel notifications, Telegram & QQ Bot remote programming, rich media upload, multi-account management",
5
5
  "type": "module",
6
6
  "main": "src/core/index.js",
package/src/core/cli.js CHANGED
@@ -601,6 +601,8 @@ const systemPrompt = cliArgs.systemPrompt || DEFAULT_SYSTEM_PROMPT
601
601
  let pendingConfirm = null
602
602
  // 最近一次 /models 拉取的模型列表(供 /model <编号> 选择)
603
603
  let modelList = []
604
+ // /models 从 Telegram 发出后,等待用户回复编号/名字来选择模型
605
+ let pendingModelSelect = false
604
606
 
605
607
  // 处理输入行
606
608
  // source: 'cli' 来自终端输入, 'telegram' 来自 Telegram
@@ -635,7 +637,31 @@ const systemPrompt = cliArgs.systemPrompt || DEFAULT_SYSTEM_PROMPT
635
637
  return
636
638
  }
637
639
 
640
+ // /models 从 Telegram 发出后,用户回复编号或名字来选择模型
641
+ if (source === 'telegram' && pendingModelSelect && !trimmed.startsWith('/')) {
642
+ const num = parseInt(trimmed, 10)
643
+ let selected = ''
644
+ if (!isNaN(num) && num >= 1 && num <= modelList.length) {
645
+ selected = modelList[num - 1]
646
+ } else if (modelList.includes(trimmed)) {
647
+ selected = trimmed
648
+ }
649
+ // 无论是否是有效选择,都结束"等待选择"状态
650
+ pendingModelSelect = false
651
+ if (selected) {
652
+ engine.config.model = selected
653
+ console.log(`Model → ${selected}`)
654
+ if (tgListener?.bot) {
655
+ await sendTelegram(`✅ 已切换模型 → ${selected}`, tgChatId || null).catch(() => {})
656
+ }
657
+ return
658
+ }
659
+ // 不是有效选择 → 当作普通消息继续处理
660
+ }
661
+
638
662
  if (trimmed.startsWith('/')) {
663
+ // 用户输入了命令,取消可能存在的"等待模型选择"状态
664
+ pendingModelSelect = false
639
665
  // 来自 Telegram 的命令:捕获 console 输出并回发到 Telegram
640
666
  const isTgCmd = source === 'telegram' && tgListener?.bot
641
667
  let tgOut = ''
@@ -696,7 +722,8 @@ const systemPrompt = cliArgs.systemPrompt || DEFAULT_SYSTEM_PROMPT
696
722
  })
697
723
  // 来自 Telegram:直接列出,不等待 CLI 交互(用 /model 名字或编号 切换)
698
724
  if (source === 'telegram') {
699
- console.log('\nℹ️ 用 /model 名字或编号 切换模型')
725
+ console.log('\nℹ️ 直接回复编号或模型名即可切换')
726
+ pendingModelSelect = true // 等待用户回复编号/名字来选择模型
700
727
  break
701
728
  }
702
729
  console.log('\nType a number to select, or model name directly:')