@raolin2025/claude-code-node 2.8.7 → 2.8.8
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.
- package/package.json +1 -1
- package/src/core/cli.js +17 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@raolin2025/claude-code-node",
|
|
3
|
-
"version": "2.8.
|
|
3
|
+
"version": "2.8.8",
|
|
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
|
@@ -732,9 +732,19 @@ const systemPrompt = cliArgs.systemPrompt || DEFAULT_SYSTEM_PROMPT
|
|
|
732
732
|
case 'window': {
|
|
733
733
|
const arg = rest[0] ? rest.join(' ').trim() : ''
|
|
734
734
|
if (!arg) {
|
|
735
|
-
// 无参数:显示当前窗口
|
|
735
|
+
// 无参数:显示当前窗口 + 真实 context 用量
|
|
736
|
+
// 用实时估算(estimateMessages)反映"当前 context 填充了多少窗口",
|
|
737
|
+
// 而非依赖 usage 上报的 inputTokens——本地网关不返回 usage 时
|
|
738
|
+
// inputTokens 恒为 0,无法反映真实填充情况。
|
|
739
|
+
const estTokens = engine.tokenBudget.estimateMessages(engine.state.messages)
|
|
740
|
+
const windowTokens = engine.tokenBudget.maxTokens
|
|
741
|
+
const reserved = engine.tokenBudget.reservedForOutput || 0
|
|
742
|
+
const pct = windowTokens > 0
|
|
743
|
+
? Math.min(100, Math.round((estTokens / (windowTokens - reserved)) * 100))
|
|
744
|
+
: 0
|
|
736
745
|
console.log(`Context window: ${formatTokens(tokenBudget.maxTokens)} (${windowSourceLabel(windowSource)})`)
|
|
737
|
-
console.log(`
|
|
746
|
+
console.log(` Context used: ${estTokens.toLocaleString()} / ${windowTokens.toLocaleString()} (${pct}% of usable window)`)
|
|
747
|
+
console.log(` (real-time estimate; API-reported input: ${tokenBudget.inputTokens.toLocaleString()} tok)`)
|
|
738
748
|
const manual = config.get('maxBudgetTokens') || 0
|
|
739
749
|
if (manual > 0) console.log(` Manual override: ${formatTokens(manual)} (persisted in config)`)
|
|
740
750
|
break
|
|
@@ -893,6 +903,11 @@ const systemPrompt = cliArgs.systemPrompt || DEFAULT_SYSTEM_PROMPT
|
|
|
893
903
|
break
|
|
894
904
|
case 'budget': {
|
|
895
905
|
console.log(tokenBudget.format())
|
|
906
|
+
// 追加实时估算的 context 用量(本地网关不返回 usage 时 inputTokens 为 0,无法反映真实填充)
|
|
907
|
+
const estTokens = engine.tokenBudget.estimateMessages(engine.state.messages)
|
|
908
|
+
const winTk = engine.tokenBudget.maxTokens
|
|
909
|
+
const pct = winTk > 0 ? Math.min(100, Math.round((estTokens / winTk) * 100)) : 0
|
|
910
|
+
console.log(` Context (est): ${estTokens.toLocaleString()} / ${winTk.toLocaleString()} (${pct}% of window)`)
|
|
896
911
|
console.log(`Context window: ${formatTokens(tokenBudget.maxTokens)} (${windowSourceLabel(windowSource)}) | trigger: ${Math.round((tokenBudget.maxTokens * 0.8)).toLocaleString()} (80%)`)
|
|
897
912
|
break
|
|
898
913
|
}
|