jinzd-ai-cli 0.1.43 → 0.1.44
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/CLAUDE.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## 项目简介
|
|
4
4
|
|
|
5
|
-
一个跨平台的 REPL 风格 AI 对话工具,支持多个主流 AI 提供商(Claude、Gemini、DeepSeek、智谱清言、Kimi),
|
|
5
|
+
一个跨平台的 REPL 风格 AI 对话工具,支持多个主流 AI 提供商(OpenAI、Claude、Gemini、DeepSeek、智谱清言、Kimi),
|
|
6
6
|
带有 **AI 工具调用(Agentic)** 能力,支持执行 bash 命令、读写文件、运行交互式程序、流式生成大文档。
|
|
7
7
|
代理支持(`proxy` 配置字段 + 环境变量),Gemini 完整支持(2.5 Pro/Flash,array items schema 修复)。
|
|
8
8
|
**MCP 协议支持**:可接入外部 MCP 服务器,自动发现并注册工具,无缝融入 agentic 循环。
|
|
@@ -31,6 +31,7 @@ src/
|
|
|
31
31
|
│ ├── openai-compatible.ts # DeepSeek/Zhipu/Kimi 共用基类;实现 chatWithTools + buildToolResultMessages
|
|
32
32
|
│ ├── claude.ts # Anthropic SDK provider
|
|
33
33
|
│ ├── gemini.ts # Google Generative AI provider(role: assistant → model)
|
|
34
|
+
│ ├── openai.ts # OpenAI provider(GPT-5.4/5/4.1/4o/o3/o4-mini)
|
|
34
35
|
│ ├── deepseek.ts / zhipu.ts / kimi.ts # 继承 OpenAICompatibleProvider,只声明 defaultBaseUrl 和 info
|
|
35
36
|
├── config/
|
|
36
37
|
│ ├── schema.ts # Zod schema(含 timeouts / customBaseUrls / defaultModels)
|
|
@@ -158,6 +159,7 @@ MCP 工具名格式:`mcp__<serverId>__<toolName>`,如 `mcp__filesystem__read
|
|
|
158
159
|
## 环境变量(优先级高于配置文件)
|
|
159
160
|
|
|
160
161
|
```
|
|
162
|
+
AICLI_API_KEY_OPENAI OpenAI API Key
|
|
161
163
|
AICLI_API_KEY_CLAUDE Claude API Key
|
|
162
164
|
AICLI_API_KEY_GEMINI Gemini API Key
|
|
163
165
|
AICLI_API_KEY_DEEPSEEK DeepSeek API Key
|
package/dist/index.js
CHANGED
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
SUBAGENT_MAX_ROUNDS_LIMIT,
|
|
30
30
|
VERSION,
|
|
31
31
|
runTestsTool
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-SRI4AVIJ.js";
|
|
33
33
|
|
|
34
34
|
// src/index.ts
|
|
35
35
|
import { program } from "commander";
|
|
@@ -176,6 +176,7 @@ var ENV_KEY_MAP = {
|
|
|
176
176
|
deepseek: "AICLI_API_KEY_DEEPSEEK",
|
|
177
177
|
zhipu: "AICLI_API_KEY_ZHIPU",
|
|
178
178
|
kimi: "AICLI_API_KEY_KIMI",
|
|
179
|
+
openai: "AICLI_API_KEY_OPENAI",
|
|
179
180
|
"google-search": "AICLI_API_KEY_GOOGLESEARCH"
|
|
180
181
|
};
|
|
181
182
|
var EnvLoader = class {
|
|
@@ -1478,6 +1479,104 @@ var KimiProvider = class extends OpenAICompatibleProvider {
|
|
|
1478
1479
|
}
|
|
1479
1480
|
};
|
|
1480
1481
|
|
|
1482
|
+
// src/providers/openai.ts
|
|
1483
|
+
var OpenAIProvider = class extends OpenAICompatibleProvider {
|
|
1484
|
+
defaultBaseUrl = "https://api.openai.com/v1";
|
|
1485
|
+
info = {
|
|
1486
|
+
id: "openai",
|
|
1487
|
+
displayName: "OpenAI",
|
|
1488
|
+
defaultModel: "gpt-4o",
|
|
1489
|
+
apiKeyEnvVar: "AICLI_API_KEY_OPENAI",
|
|
1490
|
+
requiresApiKey: true,
|
|
1491
|
+
baseUrl: this.defaultBaseUrl,
|
|
1492
|
+
models: [
|
|
1493
|
+
// GPT-5.4 系列(最新旗舰,1.05M 上下文)
|
|
1494
|
+
{
|
|
1495
|
+
id: "gpt-5.4",
|
|
1496
|
+
displayName: "GPT-5.4",
|
|
1497
|
+
contextWindow: 105e4,
|
|
1498
|
+
supportsStreaming: true
|
|
1499
|
+
},
|
|
1500
|
+
{
|
|
1501
|
+
id: "gpt-5.4-pro",
|
|
1502
|
+
displayName: "GPT-5.4 Pro",
|
|
1503
|
+
contextWindow: 105e4,
|
|
1504
|
+
supportsStreaming: true
|
|
1505
|
+
},
|
|
1506
|
+
// GPT-5 系列(400K 上下文)
|
|
1507
|
+
{
|
|
1508
|
+
id: "gpt-5",
|
|
1509
|
+
displayName: "GPT-5",
|
|
1510
|
+
contextWindow: 4e5,
|
|
1511
|
+
supportsStreaming: true
|
|
1512
|
+
},
|
|
1513
|
+
{
|
|
1514
|
+
id: "gpt-5-mini",
|
|
1515
|
+
displayName: "GPT-5 Mini",
|
|
1516
|
+
contextWindow: 4e5,
|
|
1517
|
+
supportsStreaming: true
|
|
1518
|
+
},
|
|
1519
|
+
{
|
|
1520
|
+
id: "gpt-5-nano",
|
|
1521
|
+
displayName: "GPT-5 Nano",
|
|
1522
|
+
contextWindow: 4e5,
|
|
1523
|
+
supportsStreaming: true
|
|
1524
|
+
},
|
|
1525
|
+
// GPT-4.1 系列(1M 上下文)
|
|
1526
|
+
{
|
|
1527
|
+
id: "gpt-4.1",
|
|
1528
|
+
displayName: "GPT-4.1",
|
|
1529
|
+
contextWindow: 1048576,
|
|
1530
|
+
supportsStreaming: true
|
|
1531
|
+
},
|
|
1532
|
+
{
|
|
1533
|
+
id: "gpt-4.1-mini",
|
|
1534
|
+
displayName: "GPT-4.1 Mini",
|
|
1535
|
+
contextWindow: 1048576,
|
|
1536
|
+
supportsStreaming: true
|
|
1537
|
+
},
|
|
1538
|
+
{
|
|
1539
|
+
id: "gpt-4.1-nano",
|
|
1540
|
+
displayName: "GPT-4.1 Nano",
|
|
1541
|
+
contextWindow: 1048576,
|
|
1542
|
+
supportsStreaming: true
|
|
1543
|
+
},
|
|
1544
|
+
// GPT-4o 系列(128K 上下文)
|
|
1545
|
+
{
|
|
1546
|
+
id: "gpt-4o",
|
|
1547
|
+
displayName: "GPT-4o",
|
|
1548
|
+
contextWindow: 128e3,
|
|
1549
|
+
supportsStreaming: true
|
|
1550
|
+
},
|
|
1551
|
+
{
|
|
1552
|
+
id: "gpt-4o-mini",
|
|
1553
|
+
displayName: "GPT-4o Mini",
|
|
1554
|
+
contextWindow: 128e3,
|
|
1555
|
+
supportsStreaming: true
|
|
1556
|
+
},
|
|
1557
|
+
// 推理模型(200K 上下文)
|
|
1558
|
+
{
|
|
1559
|
+
id: "o3",
|
|
1560
|
+
displayName: "o3",
|
|
1561
|
+
contextWindow: 2e5,
|
|
1562
|
+
supportsStreaming: true
|
|
1563
|
+
},
|
|
1564
|
+
{
|
|
1565
|
+
id: "o3-mini",
|
|
1566
|
+
displayName: "o3 Mini",
|
|
1567
|
+
contextWindow: 2e5,
|
|
1568
|
+
supportsStreaming: true
|
|
1569
|
+
},
|
|
1570
|
+
{
|
|
1571
|
+
id: "o4-mini",
|
|
1572
|
+
displayName: "o4 Mini",
|
|
1573
|
+
contextWindow: 2e5,
|
|
1574
|
+
supportsStreaming: true
|
|
1575
|
+
}
|
|
1576
|
+
]
|
|
1577
|
+
};
|
|
1578
|
+
};
|
|
1579
|
+
|
|
1481
1580
|
// src/providers/custom.ts
|
|
1482
1581
|
var CustomProvider = class extends OpenAICompatibleProvider {
|
|
1483
1582
|
defaultBaseUrl;
|
|
@@ -1518,7 +1617,8 @@ var BUILT_IN_PROVIDERS = [
|
|
|
1518
1617
|
GeminiProvider,
|
|
1519
1618
|
DeepSeekProvider,
|
|
1520
1619
|
ZhipuProvider,
|
|
1521
|
-
KimiProvider
|
|
1620
|
+
KimiProvider,
|
|
1621
|
+
OpenAIProvider
|
|
1522
1622
|
];
|
|
1523
1623
|
var ProviderRegistry = class {
|
|
1524
1624
|
providers = /* @__PURE__ */ new Map();
|
|
@@ -2055,8 +2155,8 @@ var Renderer = class {
|
|
|
2055
2155
|
console.log(label("\u63CF\u8FF0") + chalk2.white(DESCRIPTION));
|
|
2056
2156
|
console.log(label("\u4F5C\u8005") + theme.warning(AUTHOR) + theme.dim(" <" + AUTHOR_EMAIL + ">"));
|
|
2057
2157
|
console.log(HR);
|
|
2058
|
-
console.log(theme.dim(" \u652F\u6301\u7684 Provider\
|
|
2059
|
-
console.log(theme.dim(" DeepSeek \xB7 Kimi (Moonshot) \xB7 Claude (Anthropic)"));
|
|
2158
|
+
console.log(theme.dim(" \u652F\u6301\u7684 Provider\uFF087\u4E2A\uFF09\uFF1A"));
|
|
2159
|
+
console.log(theme.dim(" OpenAI \xB7 DeepSeek \xB7 Kimi (Moonshot) \xB7 Claude (Anthropic)"));
|
|
2060
2160
|
console.log(theme.dim(" Gemini (Google) \xB7 \u667A\u8C31\u6E05\u8A00 \xB7 \u81EA\u5B9A\u4E49 OpenAI \u517C\u5BB9"));
|
|
2061
2161
|
console.log(HR);
|
|
2062
2162
|
const mcpToolCount = mcpInfo?.tools ?? 0;
|
|
@@ -3788,7 +3888,7 @@ ${hint}` : "")
|
|
|
3788
3888
|
description: "Run project tests and show structured report",
|
|
3789
3889
|
usage: "/test [command|filter]",
|
|
3790
3890
|
async execute(args, _ctx) {
|
|
3791
|
-
const { executeTests } = await import("./run-tests-
|
|
3891
|
+
const { executeTests } = await import("./run-tests-JGXZ7PGK.js");
|
|
3792
3892
|
const argStr = args.join(" ").trim();
|
|
3793
3893
|
let testArgs = {};
|
|
3794
3894
|
if (argStr) {
|
|
@@ -6886,7 +6986,8 @@ var PROVIDERS = [
|
|
|
6886
6986
|
{ value: "gemini", name: "Gemini (Google)" },
|
|
6887
6987
|
{ value: "deepseek", name: "DeepSeek" },
|
|
6888
6988
|
{ value: "zhipu", name: "\u667A\u8C31\u6E05\u8A00 (GLM)" },
|
|
6889
|
-
{ value: "kimi", name: "Kimi (Moonshot AI)" }
|
|
6989
|
+
{ value: "kimi", name: "Kimi (Moonshot AI)" },
|
|
6990
|
+
{ value: "openai", name: "OpenAI" }
|
|
6890
6991
|
];
|
|
6891
6992
|
function maskKey(key) {
|
|
6892
6993
|
if (key.length <= 10) return "****";
|