jinzd-ai-cli 0.4.92 → 0.4.94
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/dist/{batch-SK2YCZEY.js → batch-NB5TANTJ.js} +2 -2
- package/dist/{chunk-KPX72DTU.js → chunk-73IPBBNL.js} +34 -11
- package/dist/{chunk-CNI26J5Z.js → chunk-7SBSBVUB.js} +2 -2
- package/dist/{chunk-A4TUAW4J.js → chunk-7UABIQX3.js} +1 -1
- package/dist/{chunk-5IL2BHSD.js → chunk-CD6FE5UD.js} +1 -1
- package/dist/{chunk-KLSISB52.js → chunk-PH7ICI6O.js} +1 -1
- package/dist/{chunk-ING3NMVR.js → chunk-W7HOEYAA.js} +3 -1
- package/dist/electron-server.js +37 -12
- package/dist/{hub-YRYUBSEQ.js → hub-OPIWSRVH.js} +1 -1
- package/dist/index.js +11 -11
- package/dist/{run-tests-JROEDZES.js → run-tests-BOAAXNEG.js} +2 -2
- package/dist/{run-tests-4XJLQNUW.js → run-tests-WMM2B3RR.js} +1 -1
- package/dist/{server-DB4GMBDN.js → server-2TLRJGFI.js} +3 -3
- package/dist/{server-WHTZFKVB.js → server-UOK3E2GS.js} +7 -7
- package/dist/{task-orchestrator-IQTIXEOM.js → task-orchestrator-FDV2MB42.js} +3 -3
- package/package.json +1 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
ConfigManager
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-W7HOEYAA.js";
|
|
5
5
|
import "./chunk-2ZD3YTVM.js";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-CD6FE5UD.js";
|
|
7
7
|
|
|
8
8
|
// src/cli/batch.ts
|
|
9
9
|
import Anthropic from "@anthropic-ai/sdk";
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
schemaToJsonSchema,
|
|
4
4
|
truncateForPersist
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-7SBSBVUB.js";
|
|
6
6
|
import {
|
|
7
7
|
AuthError,
|
|
8
8
|
ProviderError,
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
MCP_PROTOCOL_VERSION,
|
|
22
22
|
MCP_TOOL_PREFIX,
|
|
23
23
|
VERSION
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-CD6FE5UD.js";
|
|
25
25
|
|
|
26
26
|
// src/providers/claude.ts
|
|
27
27
|
import Anthropic from "@anthropic-ai/sdk";
|
|
@@ -1230,21 +1230,37 @@ var DeepSeekProvider = class extends OpenAICompatibleProvider {
|
|
|
1230
1230
|
info = {
|
|
1231
1231
|
id: "deepseek",
|
|
1232
1232
|
displayName: "DeepSeek",
|
|
1233
|
-
defaultModel: "deepseek-
|
|
1233
|
+
defaultModel: "deepseek-v4-flash",
|
|
1234
1234
|
apiKeyEnvVar: "AICLI_API_KEY_DEEPSEEK",
|
|
1235
1235
|
requiresApiKey: true,
|
|
1236
1236
|
baseUrl: this.defaultBaseUrl,
|
|
1237
1237
|
models: [
|
|
1238
|
+
// ── V4 family (2026-04-23+):1M context,支持 Thinking / Non-Thinking 双模式 ──
|
|
1239
|
+
{
|
|
1240
|
+
id: "deepseek-v4-pro",
|
|
1241
|
+
displayName: "DeepSeek V4 Pro (1.6T MoE, 49B active)",
|
|
1242
|
+
contextWindow: 1048576,
|
|
1243
|
+
supportsStreaming: true,
|
|
1244
|
+
supportsThinking: true
|
|
1245
|
+
},
|
|
1246
|
+
{
|
|
1247
|
+
id: "deepseek-v4-flash",
|
|
1248
|
+
displayName: "DeepSeek V4 Flash (284B MoE, 13B active)",
|
|
1249
|
+
contextWindow: 1048576,
|
|
1250
|
+
supportsStreaming: true,
|
|
1251
|
+
supportsThinking: true
|
|
1252
|
+
},
|
|
1253
|
+
// ── Legacy aliases:2026-07-24 UTC 15:59 后完全下线,官方已 route 到 V4 Flash ──
|
|
1238
1254
|
{
|
|
1239
1255
|
id: "deepseek-chat",
|
|
1240
|
-
displayName: "DeepSeek Chat (V3.2)",
|
|
1256
|
+
displayName: "DeepSeek Chat (V3.2 legacy, retires 2026-07-24)",
|
|
1241
1257
|
contextWindow: 131072,
|
|
1242
1258
|
supportsStreaming: true,
|
|
1243
1259
|
supportsThinking: true
|
|
1244
1260
|
},
|
|
1245
1261
|
{
|
|
1246
1262
|
id: "deepseek-reasoner",
|
|
1247
|
-
displayName: "DeepSeek Reasoner (R1)",
|
|
1263
|
+
displayName: "DeepSeek Reasoner (R1 legacy, retires 2026-07-24)",
|
|
1248
1264
|
contextWindow: 65536,
|
|
1249
1265
|
supportsStreaming: true,
|
|
1250
1266
|
supportsThinking: true
|
|
@@ -3556,13 +3572,16 @@ function parseSkillFile(filePath) {
|
|
|
3556
3572
|
}
|
|
3557
3573
|
|
|
3558
3574
|
// src/skills/manager.ts
|
|
3559
|
-
var
|
|
3575
|
+
var SKILL_CONTENT_WARN_CHARS_DEFAULT = 1e4;
|
|
3560
3576
|
var SkillManager = class {
|
|
3561
3577
|
skills = /* @__PURE__ */ new Map();
|
|
3562
3578
|
activeSkill = null;
|
|
3563
3579
|
skillsDir;
|
|
3564
|
-
|
|
3580
|
+
/** 超大技能文件警告阈值,由调用方从 config 传入;0 = 静默,undefined = 用默认 10000 */
|
|
3581
|
+
warnThreshold;
|
|
3582
|
+
constructor(skillsDir, warnThreshold) {
|
|
3565
3583
|
this.skillsDir = skillsDir;
|
|
3584
|
+
this.warnThreshold = warnThreshold ?? SKILL_CONTENT_WARN_CHARS_DEFAULT;
|
|
3566
3585
|
}
|
|
3567
3586
|
/** 发现并加载 skillsDir 下所有 .md 文件,返回加载数量 */
|
|
3568
3587
|
loadSkills() {
|
|
@@ -3607,9 +3626,9 @@ var SkillManager = class {
|
|
|
3607
3626
|
skill.meta.name = entry;
|
|
3608
3627
|
}
|
|
3609
3628
|
this.skills.set(skill.meta.name, skill);
|
|
3610
|
-
if (skill.content.length >
|
|
3629
|
+
if (this.warnThreshold > 0 && skill.content.length > this.warnThreshold) {
|
|
3611
3630
|
process.stderr.write(
|
|
3612
|
-
`\u26A0 Skill '${skill.meta.name}' is ${skill.content.length} chars (>${
|
|
3631
|
+
`\u26A0 Skill '${skill.meta.name}' is ${skill.content.length} chars (>${this.warnThreshold}). Only consumed when activated via /skill. Adjust with: /config set ui.skillSizeWarn <n|0>
|
|
3613
3632
|
`
|
|
3614
3633
|
);
|
|
3615
3634
|
}
|
|
@@ -3694,8 +3713,12 @@ var PRICING_TABLE = {
|
|
|
3694
3713
|
"gemini-1.5-pro": { input: 1.25, output: 5 },
|
|
3695
3714
|
"gemini-1.5-flash": { input: 0.075, output: 0.3 },
|
|
3696
3715
|
// ── DeepSeek ──────────────────────────────────────────────────
|
|
3697
|
-
|
|
3698
|
-
"deepseek-
|
|
3716
|
+
// V4 family (2026-04-23+):1M context, Thinking / Non-Thinking dual-mode, 384K max output
|
|
3717
|
+
"deepseek-v4-pro": { input: 1.74, output: 3.48, cacheRead: 0.145 },
|
|
3718
|
+
"deepseek-v4-flash": { input: 0.14, output: 0.28, cacheRead: 0.028 },
|
|
3719
|
+
// Legacy aliases:retires 2026-07-24 UTC 15:59,官方 route 到 V4 Flash
|
|
3720
|
+
"deepseek-chat": { input: 0.14, output: 0.28, cacheRead: 0.028 },
|
|
3721
|
+
"deepseek-reasoner": { input: 0.14, output: 0.28, cacheRead: 0.028 },
|
|
3699
3722
|
"deepseek-v3": { input: 0.27, output: 1.1, cacheRead: 0.07 },
|
|
3700
3723
|
// ── Moonshot Kimi ─────────────────────────────────────────────
|
|
3701
3724
|
"moonshot-v1-8k": { input: 0.17, output: 0.17 },
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
} from "./chunk-6VRJGH25.js";
|
|
24
24
|
import {
|
|
25
25
|
runTestsTool
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-PH7ICI6O.js";
|
|
27
27
|
import {
|
|
28
28
|
CONFIG_DIR_NAME,
|
|
29
29
|
DEFAULT_MAX_TOOL_OUTPUT_CHARS_CAP,
|
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
SUBAGENT_ALLOWED_TOOLS,
|
|
32
32
|
SUBAGENT_DEFAULT_MAX_ROUNDS,
|
|
33
33
|
SUBAGENT_MAX_ROUNDS_LIMIT
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-CD6FE5UD.js";
|
|
35
35
|
|
|
36
36
|
// src/tools/types.ts
|
|
37
37
|
function isFileWriteTool(name) {
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
CONFIG_FILE_NAME,
|
|
9
9
|
HISTORY_DIR_NAME,
|
|
10
10
|
PLUGINS_DIR_NAME
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-CD6FE5UD.js";
|
|
12
12
|
|
|
13
13
|
// src/config/config-manager.ts
|
|
14
14
|
import { readFileSync, writeFileSync, existsSync, mkdirSync } from "fs";
|
|
@@ -95,6 +95,8 @@ var ConfigSchema = z.object({
|
|
|
95
95
|
notificationThreshold: z.number().default(1e4),
|
|
96
96
|
/** 终端输出折行宽度。0 = 自动(使用终端宽度),>0 = 固定列宽。默认 0 */
|
|
97
97
|
wordWrap: z.number().int().min(0).default(0),
|
|
98
|
+
/** Skill 文件过大警告阈值(字符数)。超过此值的 skill 在启动加载时打印警告。0 = 静默。默认 10000 */
|
|
99
|
+
skillSizeWarn: z.number().int().min(0).default(1e4),
|
|
98
100
|
/** 颜色主题:'dark'(默认)| 'light' | 'custom' */
|
|
99
101
|
theme: z.enum(["dark", "light", "custom"]).default("dark"),
|
|
100
102
|
/** 自定义颜色覆盖(仅在 theme='custom' 时生效)。值为 chalk 颜色名或 '#hex',支持 'bold.cyan' 组合 */
|
package/dist/electron-server.js
CHANGED
|
@@ -36,7 +36,7 @@ import {
|
|
|
36
36
|
VERSION,
|
|
37
37
|
buildUserIdentityPrompt,
|
|
38
38
|
runTestsTool
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-7UABIQX3.js";
|
|
40
40
|
import {
|
|
41
41
|
hasSemanticIndex,
|
|
42
42
|
semanticSearch
|
|
@@ -145,6 +145,8 @@ var ConfigSchema = z.object({
|
|
|
145
145
|
notificationThreshold: z.number().default(1e4),
|
|
146
146
|
/** 终端输出折行宽度。0 = 自动(使用终端宽度),>0 = 固定列宽。默认 0 */
|
|
147
147
|
wordWrap: z.number().int().min(0).default(0),
|
|
148
|
+
/** Skill 文件过大警告阈值(字符数)。超过此值的 skill 在启动加载时打印警告。0 = 静默。默认 10000 */
|
|
149
|
+
skillSizeWarn: z.number().int().min(0).default(1e4),
|
|
148
150
|
/** 颜色主题:'dark'(默认)| 'light' | 'custom' */
|
|
149
151
|
theme: z.enum(["dark", "light", "custom"]).default("dark"),
|
|
150
152
|
/** 自定义颜色覆盖(仅在 theme='custom' 时生效)。值为 chalk 颜色名或 '#hex',支持 'bold.cyan' 组合 */
|
|
@@ -1739,21 +1741,37 @@ var DeepSeekProvider = class extends OpenAICompatibleProvider {
|
|
|
1739
1741
|
info = {
|
|
1740
1742
|
id: "deepseek",
|
|
1741
1743
|
displayName: "DeepSeek",
|
|
1742
|
-
defaultModel: "deepseek-
|
|
1744
|
+
defaultModel: "deepseek-v4-flash",
|
|
1743
1745
|
apiKeyEnvVar: "AICLI_API_KEY_DEEPSEEK",
|
|
1744
1746
|
requiresApiKey: true,
|
|
1745
1747
|
baseUrl: this.defaultBaseUrl,
|
|
1746
1748
|
models: [
|
|
1749
|
+
// ── V4 family (2026-04-23+):1M context,支持 Thinking / Non-Thinking 双模式 ──
|
|
1750
|
+
{
|
|
1751
|
+
id: "deepseek-v4-pro",
|
|
1752
|
+
displayName: "DeepSeek V4 Pro (1.6T MoE, 49B active)",
|
|
1753
|
+
contextWindow: 1048576,
|
|
1754
|
+
supportsStreaming: true,
|
|
1755
|
+
supportsThinking: true
|
|
1756
|
+
},
|
|
1757
|
+
{
|
|
1758
|
+
id: "deepseek-v4-flash",
|
|
1759
|
+
displayName: "DeepSeek V4 Flash (284B MoE, 13B active)",
|
|
1760
|
+
contextWindow: 1048576,
|
|
1761
|
+
supportsStreaming: true,
|
|
1762
|
+
supportsThinking: true
|
|
1763
|
+
},
|
|
1764
|
+
// ── Legacy aliases:2026-07-24 UTC 15:59 后完全下线,官方已 route 到 V4 Flash ──
|
|
1747
1765
|
{
|
|
1748
1766
|
id: "deepseek-chat",
|
|
1749
|
-
displayName: "DeepSeek Chat (V3.2)",
|
|
1767
|
+
displayName: "DeepSeek Chat (V3.2 legacy, retires 2026-07-24)",
|
|
1750
1768
|
contextWindow: 131072,
|
|
1751
1769
|
supportsStreaming: true,
|
|
1752
1770
|
supportsThinking: true
|
|
1753
1771
|
},
|
|
1754
1772
|
{
|
|
1755
1773
|
id: "deepseek-reasoner",
|
|
1756
|
-
displayName: "DeepSeek Reasoner (R1)",
|
|
1774
|
+
displayName: "DeepSeek Reasoner (R1 legacy, retires 2026-07-24)",
|
|
1757
1775
|
contextWindow: 65536,
|
|
1758
1776
|
supportsStreaming: true,
|
|
1759
1777
|
supportsThinking: true
|
|
@@ -8747,13 +8765,16 @@ function parseSkillFile(filePath) {
|
|
|
8747
8765
|
}
|
|
8748
8766
|
|
|
8749
8767
|
// src/skills/manager.ts
|
|
8750
|
-
var
|
|
8768
|
+
var SKILL_CONTENT_WARN_CHARS_DEFAULT = 1e4;
|
|
8751
8769
|
var SkillManager = class {
|
|
8752
8770
|
skills = /* @__PURE__ */ new Map();
|
|
8753
8771
|
activeSkill = null;
|
|
8754
8772
|
skillsDir;
|
|
8755
|
-
|
|
8773
|
+
/** 超大技能文件警告阈值,由调用方从 config 传入;0 = 静默,undefined = 用默认 10000 */
|
|
8774
|
+
warnThreshold;
|
|
8775
|
+
constructor(skillsDir, warnThreshold) {
|
|
8756
8776
|
this.skillsDir = skillsDir;
|
|
8777
|
+
this.warnThreshold = warnThreshold ?? SKILL_CONTENT_WARN_CHARS_DEFAULT;
|
|
8757
8778
|
}
|
|
8758
8779
|
/** 发现并加载 skillsDir 下所有 .md 文件,返回加载数量 */
|
|
8759
8780
|
loadSkills() {
|
|
@@ -8798,9 +8819,9 @@ var SkillManager = class {
|
|
|
8798
8819
|
skill.meta.name = entry;
|
|
8799
8820
|
}
|
|
8800
8821
|
this.skills.set(skill.meta.name, skill);
|
|
8801
|
-
if (skill.content.length >
|
|
8822
|
+
if (this.warnThreshold > 0 && skill.content.length > this.warnThreshold) {
|
|
8802
8823
|
process.stderr.write(
|
|
8803
|
-
`\u26A0 Skill '${skill.meta.name}' is ${skill.content.length} chars (>${
|
|
8824
|
+
`\u26A0 Skill '${skill.meta.name}' is ${skill.content.length} chars (>${this.warnThreshold}). Only consumed when activated via /skill. Adjust with: /config set ui.skillSizeWarn <n|0>
|
|
8804
8825
|
`
|
|
8805
8826
|
);
|
|
8806
8827
|
}
|
|
@@ -9279,8 +9300,12 @@ var PRICING_TABLE = {
|
|
|
9279
9300
|
"gemini-1.5-pro": { input: 1.25, output: 5 },
|
|
9280
9301
|
"gemini-1.5-flash": { input: 0.075, output: 0.3 },
|
|
9281
9302
|
// ── DeepSeek ──────────────────────────────────────────────────
|
|
9282
|
-
|
|
9283
|
-
"deepseek-
|
|
9303
|
+
// V4 family (2026-04-23+):1M context, Thinking / Non-Thinking dual-mode, 384K max output
|
|
9304
|
+
"deepseek-v4-pro": { input: 1.74, output: 3.48, cacheRead: 0.145 },
|
|
9305
|
+
"deepseek-v4-flash": { input: 0.14, output: 0.28, cacheRead: 0.028 },
|
|
9306
|
+
// Legacy aliases:retires 2026-07-24 UTC 15:59,官方 route 到 V4 Flash
|
|
9307
|
+
"deepseek-chat": { input: 0.14, output: 0.28, cacheRead: 0.028 },
|
|
9308
|
+
"deepseek-reasoner": { input: 0.14, output: 0.28, cacheRead: 0.028 },
|
|
9284
9309
|
"deepseek-v3": { input: 0.27, output: 1.1, cacheRead: 0.07 },
|
|
9285
9310
|
// ── Moonshot Kimi ─────────────────────────────────────────────
|
|
9286
9311
|
"moonshot-v1-8k": { input: 0.17, output: 0.17 },
|
|
@@ -11342,7 +11367,7 @@ ${undoResults.map((r) => ` \u2022 ${r}`).join("\n")}` });
|
|
|
11342
11367
|
case "test": {
|
|
11343
11368
|
this.send({ type: "info", message: "\u{1F9EA} Running tests..." });
|
|
11344
11369
|
try {
|
|
11345
|
-
const { executeTests } = await import("./run-tests-
|
|
11370
|
+
const { executeTests } = await import("./run-tests-WMM2B3RR.js");
|
|
11346
11371
|
const argStr = args.join(" ").trim();
|
|
11347
11372
|
let testArgs = {};
|
|
11348
11373
|
if (argStr) {
|
|
@@ -12593,7 +12618,7 @@ async function startWebServer(options = {}) {
|
|
|
12593
12618
|
let skillManager = null;
|
|
12594
12619
|
const skillsDir = join15(config.getConfigDir(), SKILLS_DIR_NAME);
|
|
12595
12620
|
if (existsSync22(skillsDir)) {
|
|
12596
|
-
skillManager = new SkillManager(skillsDir);
|
|
12621
|
+
skillManager = new SkillManager(skillsDir, config.get("ui").skillSizeWarn);
|
|
12597
12622
|
skillManager.loadSkills();
|
|
12598
12623
|
const count = skillManager.listSkills().length;
|
|
12599
12624
|
if (count > 0) {
|
|
@@ -385,7 +385,7 @@ ${content}`);
|
|
|
385
385
|
}
|
|
386
386
|
}
|
|
387
387
|
async function runTaskMode(config, providers, configManager, topic) {
|
|
388
|
-
const { TaskOrchestrator } = await import("./task-orchestrator-
|
|
388
|
+
const { TaskOrchestrator } = await import("./task-orchestrator-FDV2MB42.js");
|
|
389
389
|
const orchestrator = new TaskOrchestrator(config, providers, configManager);
|
|
390
390
|
let interrupted = false;
|
|
391
391
|
const onSigint = () => {
|
package/dist/index.js
CHANGED
|
@@ -30,10 +30,10 @@ import {
|
|
|
30
30
|
saveDevState,
|
|
31
31
|
sessionHasMeaningfulContent,
|
|
32
32
|
setupProxy
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-73IPBBNL.js";
|
|
34
34
|
import {
|
|
35
35
|
ConfigManager
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-W7HOEYAA.js";
|
|
37
37
|
import {
|
|
38
38
|
ToolExecutor,
|
|
39
39
|
ToolRegistry,
|
|
@@ -52,7 +52,7 @@ import {
|
|
|
52
52
|
spawnAgentContext,
|
|
53
53
|
theme,
|
|
54
54
|
undoStack
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-7SBSBVUB.js";
|
|
56
56
|
import "./chunk-2ZD3YTVM.js";
|
|
57
57
|
import {
|
|
58
58
|
fileCheckpoints
|
|
@@ -70,7 +70,7 @@ import "./chunk-KJLJPUY2.js";
|
|
|
70
70
|
import "./chunk-6VRJGH25.js";
|
|
71
71
|
import "./chunk-2DXY7UGF.js";
|
|
72
72
|
import "./chunk-KHYD3WXE.js";
|
|
73
|
-
import "./chunk-
|
|
73
|
+
import "./chunk-PH7ICI6O.js";
|
|
74
74
|
import {
|
|
75
75
|
AGENTIC_BEHAVIOR_GUIDELINE,
|
|
76
76
|
AUTHOR,
|
|
@@ -92,7 +92,7 @@ import {
|
|
|
92
92
|
SKILLS_DIR_NAME,
|
|
93
93
|
VERSION,
|
|
94
94
|
buildUserIdentityPrompt
|
|
95
|
-
} from "./chunk-
|
|
95
|
+
} from "./chunk-CD6FE5UD.js";
|
|
96
96
|
|
|
97
97
|
// src/index.ts
|
|
98
98
|
import { program } from "commander";
|
|
@@ -2612,7 +2612,7 @@ ${hint}` : "")
|
|
|
2612
2612
|
usage: "/test [command|filter]",
|
|
2613
2613
|
async execute(args, ctx) {
|
|
2614
2614
|
try {
|
|
2615
|
-
const { executeTests } = await import("./run-tests-
|
|
2615
|
+
const { executeTests } = await import("./run-tests-BOAAXNEG.js");
|
|
2616
2616
|
const argStr = args.join(" ").trim();
|
|
2617
2617
|
let testArgs = {};
|
|
2618
2618
|
if (argStr) {
|
|
@@ -5000,7 +5000,7 @@ Session '${this.resumeSessionId}' not found.
|
|
|
5000
5000
|
`));
|
|
5001
5001
|
}
|
|
5002
5002
|
const skillsDir = join5(this.config.getConfigDir(), SKILLS_DIR_NAME);
|
|
5003
|
-
this.skillManager = new SkillManager(skillsDir);
|
|
5003
|
+
this.skillManager = new SkillManager(skillsDir, this.config.get("ui").skillSizeWarn);
|
|
5004
5004
|
const skillCount = this.skillManager.loadSkills();
|
|
5005
5005
|
if (skillCount > 0) {
|
|
5006
5006
|
process.stdout.write(theme.dim(` \u{1F3AF} Skills: ${skillCount} available (use /skill to manage)
|
|
@@ -6738,7 +6738,7 @@ program.command("web").description("Start Web UI server with browser-based chat
|
|
|
6738
6738
|
console.error("Error: Invalid port number. Must be between 1 and 65535.");
|
|
6739
6739
|
process.exit(1);
|
|
6740
6740
|
}
|
|
6741
|
-
const { startWebServer } = await import("./server-
|
|
6741
|
+
const { startWebServer } = await import("./server-UOK3E2GS.js");
|
|
6742
6742
|
await startWebServer({ port, host: options.host });
|
|
6743
6743
|
});
|
|
6744
6744
|
program.command("user [action] [username]").description("Manage Web UI users (list | create <name> | delete <name> | reset-password <name> | migrate <name>)").action(async (action, username) => {
|
|
@@ -6861,7 +6861,7 @@ program.command("sessions").description("List recent conversation sessions").act
|
|
|
6861
6861
|
});
|
|
6862
6862
|
program.command("batch <action> [arg] [arg2]").description("Anthropic Message Batches: submit | list | status <id> | results <id> [out] | cancel <id>").option("--dry-run", "Parse and validate input without submitting (submit only)").action(async (action, arg, arg2, options) => {
|
|
6863
6863
|
try {
|
|
6864
|
-
const batch = await import("./batch-
|
|
6864
|
+
const batch = await import("./batch-NB5TANTJ.js");
|
|
6865
6865
|
switch (action) {
|
|
6866
6866
|
case "submit":
|
|
6867
6867
|
if (!arg) {
|
|
@@ -6904,7 +6904,7 @@ program.command("batch <action> [arg] [arg2]").description("Anthropic Message Ba
|
|
|
6904
6904
|
}
|
|
6905
6905
|
});
|
|
6906
6906
|
program.command("mcp-serve").description("Start an MCP server over STDIO, exposing aicli's built-in tools to Claude Desktop / Cursor / other MCP clients").option("--allow-destructive", "Allow bash / run_interactive / task_create (always destructive in MCP mode)").option("--allow-outside-cwd", "Allow tool path arguments to escape the sandbox root \u2014 disabled by default").option("--tools <list>", "Comma-separated whitelist of tools to expose (default: all eligible tools)").option("--cwd <path>", "Working directory AND sandbox root (default: current directory)").action(async (options) => {
|
|
6907
|
-
const { startMcpServer } = await import("./server-
|
|
6907
|
+
const { startMcpServer } = await import("./server-2TLRJGFI.js");
|
|
6908
6908
|
await startMcpServer({
|
|
6909
6909
|
allowDestructive: !!options.allowDestructive,
|
|
6910
6910
|
allowOutsideCwd: !!options.allowOutsideCwd,
|
|
@@ -7031,7 +7031,7 @@ program.command("hub [topic]").description("Start multi-agent hub (discuss / bra
|
|
|
7031
7031
|
}),
|
|
7032
7032
|
config.get("customProviders")
|
|
7033
7033
|
);
|
|
7034
|
-
const { startHub } = await import("./hub-
|
|
7034
|
+
const { startHub } = await import("./hub-OPIWSRVH.js");
|
|
7035
7035
|
await startHub(
|
|
7036
7036
|
{
|
|
7037
7037
|
topic: topic ?? "",
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
ToolRegistry,
|
|
4
4
|
getDangerLevel,
|
|
5
5
|
schemaToJsonSchema
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-7SBSBVUB.js";
|
|
7
7
|
import "./chunk-2ZD3YTVM.js";
|
|
8
8
|
import "./chunk-4BKXL7SM.js";
|
|
9
9
|
import "./chunk-ANYYM4CF.js";
|
|
@@ -12,10 +12,10 @@ import "./chunk-KJLJPUY2.js";
|
|
|
12
12
|
import "./chunk-6VRJGH25.js";
|
|
13
13
|
import "./chunk-2DXY7UGF.js";
|
|
14
14
|
import "./chunk-KHYD3WXE.js";
|
|
15
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-PH7ICI6O.js";
|
|
16
16
|
import {
|
|
17
17
|
VERSION
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-CD6FE5UD.js";
|
|
19
19
|
|
|
20
20
|
// src/mcp/server.ts
|
|
21
21
|
import { createInterface } from "readline";
|
|
@@ -23,10 +23,10 @@ import {
|
|
|
23
23
|
persistToolRound,
|
|
24
24
|
rebuildExtraMessages,
|
|
25
25
|
setupProxy
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-73IPBBNL.js";
|
|
27
27
|
import {
|
|
28
28
|
ConfigManager
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-W7HOEYAA.js";
|
|
30
30
|
import {
|
|
31
31
|
ToolExecutor,
|
|
32
32
|
ToolRegistry,
|
|
@@ -44,7 +44,7 @@ import {
|
|
|
44
44
|
spawnAgentContext,
|
|
45
45
|
truncateOutput,
|
|
46
46
|
undoStack
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-7SBSBVUB.js";
|
|
48
48
|
import "./chunk-2ZD3YTVM.js";
|
|
49
49
|
import "./chunk-4BKXL7SM.js";
|
|
50
50
|
import "./chunk-ANYYM4CF.js";
|
|
@@ -53,7 +53,7 @@ import "./chunk-KJLJPUY2.js";
|
|
|
53
53
|
import "./chunk-6VRJGH25.js";
|
|
54
54
|
import "./chunk-2DXY7UGF.js";
|
|
55
55
|
import "./chunk-KHYD3WXE.js";
|
|
56
|
-
import "./chunk-
|
|
56
|
+
import "./chunk-PH7ICI6O.js";
|
|
57
57
|
import {
|
|
58
58
|
AGENTIC_BEHAVIOR_GUIDELINE,
|
|
59
59
|
AUTHOR,
|
|
@@ -72,7 +72,7 @@ import {
|
|
|
72
72
|
SKILLS_DIR_NAME,
|
|
73
73
|
VERSION,
|
|
74
74
|
buildUserIdentityPrompt
|
|
75
|
-
} from "./chunk-
|
|
75
|
+
} from "./chunk-CD6FE5UD.js";
|
|
76
76
|
|
|
77
77
|
// src/web/server.ts
|
|
78
78
|
import express from "express";
|
|
@@ -2237,7 +2237,7 @@ ${undoResults.map((r) => ` \u2022 ${r}`).join("\n")}` });
|
|
|
2237
2237
|
case "test": {
|
|
2238
2238
|
this.send({ type: "info", message: "\u{1F9EA} Running tests..." });
|
|
2239
2239
|
try {
|
|
2240
|
-
const { executeTests } = await import("./run-tests-
|
|
2240
|
+
const { executeTests } = await import("./run-tests-BOAAXNEG.js");
|
|
2241
2241
|
const argStr = args.join(" ").trim();
|
|
2242
2242
|
let testArgs = {};
|
|
2243
2243
|
if (argStr) {
|
|
@@ -3266,7 +3266,7 @@ async function startWebServer(options = {}) {
|
|
|
3266
3266
|
let skillManager = null;
|
|
3267
3267
|
const skillsDir = join3(config.getConfigDir(), SKILLS_DIR_NAME);
|
|
3268
3268
|
if (existsSync4(skillsDir)) {
|
|
3269
|
-
skillManager = new SkillManager(skillsDir);
|
|
3269
|
+
skillManager = new SkillManager(skillsDir, config.get("ui").skillSizeWarn);
|
|
3270
3270
|
skillManager.loadSkills();
|
|
3271
3271
|
const count = skillManager.listSkills().length;
|
|
3272
3272
|
if (count > 0) {
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
getDangerLevel,
|
|
5
5
|
googleSearchContext,
|
|
6
6
|
truncateOutput
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-7SBSBVUB.js";
|
|
8
8
|
import "./chunk-2ZD3YTVM.js";
|
|
9
9
|
import "./chunk-4BKXL7SM.js";
|
|
10
10
|
import "./chunk-ANYYM4CF.js";
|
|
@@ -13,10 +13,10 @@ import "./chunk-KJLJPUY2.js";
|
|
|
13
13
|
import "./chunk-6VRJGH25.js";
|
|
14
14
|
import "./chunk-2DXY7UGF.js";
|
|
15
15
|
import "./chunk-KHYD3WXE.js";
|
|
16
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-PH7ICI6O.js";
|
|
17
17
|
import {
|
|
18
18
|
SUBAGENT_ALLOWED_TOOLS
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-CD6FE5UD.js";
|
|
20
20
|
|
|
21
21
|
// src/hub/task-orchestrator.ts
|
|
22
22
|
import { createInterface } from "readline";
|