devez-vibe 1.9.11 → 1.9.13
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/bin/dvz.exe +0 -0
- package/bridge/claude-agent-sdk-bridge.mjs +42 -1
- package/package.json +2 -2
package/bin/dvz.exe
CHANGED
|
Binary file
|
|
@@ -4,6 +4,7 @@ import { randomUUID } from "node:crypto";
|
|
|
4
4
|
import { execFile, spawn } from "node:child_process";
|
|
5
5
|
import { createReadStream, existsSync, readFileSync, readdirSync } from "node:fs";
|
|
6
6
|
import { mkdir, readdir, readFile, stat, writeFile } from "node:fs/promises";
|
|
7
|
+
import { createRequire } from "node:module";
|
|
7
8
|
import { homedir } from "node:os";
|
|
8
9
|
import { dirname, join, resolve as resolvePath, sep } from "node:path";
|
|
9
10
|
import { createInterface } from "node:readline";
|
|
@@ -1299,6 +1300,9 @@ function claudeMcpStatusValue(statuses) {
|
|
|
1299
1300
|
? "unsupported"
|
|
1300
1301
|
: String(server?.status || "unknown"),
|
|
1301
1302
|
status: String(server?.status || "unknown"),
|
|
1303
|
+
// SDK 0.3.276부터 오는 정의 출처. 이름만으로는 SDK 내장·플러그인·설정을
|
|
1304
|
+
// 구분할 수 없어 그대로 전달한다. 예전 CLI에서는 오지 않는다.
|
|
1305
|
+
...(server?.source ? { source: String(server.source) } : {}),
|
|
1302
1306
|
...(server?.error ? { error: String(server.error) } : {}),
|
|
1303
1307
|
})),
|
|
1304
1308
|
};
|
|
@@ -2659,6 +2663,27 @@ function cancelUsageLimitWait(session) {
|
|
|
2659
2663
|
return true;
|
|
2660
2664
|
}
|
|
2661
2665
|
|
|
2666
|
+
// SDK 0.3.276부터 알려진 기동 실패는 사유 코드로 온다. 원문 오류는 영어라
|
|
2667
|
+
// 조치를 바로 알기 어려우므로 사유가 있을 때만 앞줄에 한국어 안내를 붙인다.
|
|
2668
|
+
const STARTUP_FAILURE_GUIDES = {
|
|
2669
|
+
org_pin_api_key_conflict: "조직 설정이 지정한 로그인 대신 API 키가 설정되어 있습니다. API 키·인증 토큰 환경 변수를 지우고 지정된 계정으로 로그인하세요.",
|
|
2670
|
+
org_verify_failed: "로그인 계정의 조직을 확인하지 못했습니다. 네트워크를 확인하고 다시 로그인하세요.",
|
|
2671
|
+
org_pin_mismatch: "조직 설정이 허용하지 않는 계정으로 로그인되어 있습니다. 허용된 조직 계정으로 다시 로그인하세요.",
|
|
2672
|
+
managed_settings_invalid: "조직 관리 설정을 읽지 못했습니다. 관리자에게 설정 확인을 요청하세요.",
|
|
2673
|
+
remote_settings_required_unavailable: "조직이 요구하는 관리 설정을 불러오지 못했습니다. 네트워크를 확인한 뒤 다시 시작하세요.",
|
|
2674
|
+
gateway_signin_required: "게이트웨이가 이 로그인을 종료했습니다. 다시 로그인하세요.",
|
|
2675
|
+
gateway_access_denied: "게이트웨이가 이 계정의 관리 설정을 거부했습니다. 관리자에게 권한을 요청하세요.",
|
|
2676
|
+
proxy_invalid: "프록시 설정이 올바른 주소 형식이 아닙니다. 프록시 환경 변수를 확인하세요.",
|
|
2677
|
+
temp_dir_unusable: "임시 폴더를 만들지 못했거나 안전하지 않습니다. 사용자 임시 폴더 권한을 확인하세요.",
|
|
2678
|
+
cwd_unavailable: "작업 폴더가 삭제·이동되었거나 읽을 수 없습니다. 폴더를 확인한 뒤 다시 여세요.",
|
|
2679
|
+
shell_tool_missing: "Windows에서 쓸 셸이 없습니다. Git Bash를 설치하거나 PowerShell 사용을 켜세요.",
|
|
2680
|
+
session_held_by_background: "이어받으려는 대화가 백그라운드 세션으로 실행 중입니다. 해당 세션을 끝낸 뒤 다시 시도하세요.",
|
|
2681
|
+
worktree_resume_refused: "워크트리 안전 검사에 걸려 재개가 거부되었습니다. 아래 원문에 워크트리 없이 다시 실행할 수 있는지 나옵니다.",
|
|
2682
|
+
worktree_unverified: "워크트리를 지금 확인하지 못했습니다. 잠시 후 다시 시도하세요.",
|
|
2683
|
+
cli_version_too_old: "Claude Code 버전이 최소 요구 버전보다 낮습니다. dvz update로 갱신하세요.",
|
|
2684
|
+
bypass_root: "관리자 계정에서는 권한 우회 모드로 시작할 수 없습니다. 일반 계정으로 실행하세요.",
|
|
2685
|
+
};
|
|
2686
|
+
|
|
2662
2687
|
async function processResult(session, message) {
|
|
2663
2688
|
if (!session.turn) return;
|
|
2664
2689
|
for (const denial of Array.isArray(message.permission_denials) ? message.permission_denials : []) {
|
|
@@ -2687,8 +2712,10 @@ async function processResult(session, message) {
|
|
|
2687
2712
|
modelContextWindow: totals.contextWindow || session.lastContextWindow || undefined,
|
|
2688
2713
|
},
|
|
2689
2714
|
});
|
|
2715
|
+
const detail = message.errors?.join("\n") || message.result || message.stop_reason || "Claude 실행 실패";
|
|
2716
|
+
const guide = STARTUP_FAILURE_GUIDES[message.startup_failure_reason];
|
|
2690
2717
|
const error = message.is_error && !interrupted
|
|
2691
|
-
? { message:
|
|
2718
|
+
? { message: guide ? `${guide}\n${detail}` : detail }
|
|
2692
2719
|
: null;
|
|
2693
2720
|
if (error && waitForUsageLimit(session)) return;
|
|
2694
2721
|
finishTurn(session, error, message.duration_ms);
|
|
@@ -3850,7 +3877,21 @@ async function runCommandTimeoutSelfTest() {
|
|
|
3850
3877
|
if (quick !== "ok") throw new Error(`Claude command self-test returned ${quick}`);
|
|
3851
3878
|
}
|
|
3852
3879
|
|
|
3880
|
+
// 사유가 늘어나면 안내 없이 영어 원문만 남으므로, 설치된 SDK의 목록과 대조한다.
|
|
3881
|
+
function startupFailureGuideGaps() {
|
|
3882
|
+
const entry = createRequire(import.meta.url).resolve("@anthropic-ai/claude-agent-sdk");
|
|
3883
|
+
const types = readFileSync(join(dirname(entry), "sdk.d.ts"), "utf8");
|
|
3884
|
+
const union = /SDKStartupFailureReason = ([^;]+);/.exec(types)?.[1] || "";
|
|
3885
|
+
const reasons = [...union.matchAll(/'([a-z_]+)'/g)].map((match) => match[1]);
|
|
3886
|
+
if (!reasons.length) throw new Error("Claude 기동 실패 사유 목록을 읽지 못했습니다.");
|
|
3887
|
+
return reasons.filter((reason) => !STARTUP_FAILURE_GUIDES[reason]);
|
|
3888
|
+
}
|
|
3889
|
+
|
|
3853
3890
|
async function runSelfTest() {
|
|
3891
|
+
const startupGaps = startupFailureGuideGaps();
|
|
3892
|
+
if (startupGaps.length) {
|
|
3893
|
+
throw new Error(`Claude 기동 실패 안내 누락: ${startupGaps.join(", ")}`);
|
|
3894
|
+
}
|
|
3854
3895
|
await runPermissionModeSelfTest();
|
|
3855
3896
|
runToolPolicySelfTest();
|
|
3856
3897
|
await runCommandTimeoutSelfTest();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "devez-vibe",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.13",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Stable terminal UI for Codex and Claude Agent SDK",
|
|
6
6
|
"keywords": [
|
|
@@ -45,6 +45,6 @@
|
|
|
45
45
|
"postinstall": "node install-skills.mjs && node prepare-search-deps.mjs"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@anthropic-ai/claude-agent-sdk": "0.3.
|
|
48
|
+
"@anthropic-ai/claude-agent-sdk": "0.3.276"
|
|
49
49
|
}
|
|
50
50
|
}
|