devez-vibe 1.9.55 → 1.9.56
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 +36 -0
- package/package.json +1 -1
package/bin/dvz.exe
CHANGED
|
Binary file
|
|
@@ -3050,6 +3050,10 @@ function emitSubagents(session) {
|
|
|
3050
3050
|
clearInterval(session.subagentPulse);
|
|
3051
3051
|
session.subagentPulse = null;
|
|
3052
3052
|
}
|
|
3053
|
+
// 작업 창은 명령이 끝난 뒤에도 그 출력과 종료 코드를 읽으므로 행 id의 작업 id를 남겨 둔다.
|
|
3054
|
+
for (const agent of session.subagents.values()) {
|
|
3055
|
+
if (agent.taskId) (session.rowTaskIds ??= new Map()).set(agent.id, agent.taskId);
|
|
3056
|
+
}
|
|
3053
3057
|
notify("turn/subagents/updated", {
|
|
3054
3058
|
threadId: session.id,
|
|
3055
3059
|
turnId: session.turn?.id,
|
|
@@ -4464,6 +4468,17 @@ async function dispatch(method, params = {}) {
|
|
|
4464
4468
|
nextCursor: null,
|
|
4465
4469
|
};
|
|
4466
4470
|
}
|
|
4471
|
+
// 작업 창이 보는 백그라운드 명령의 출력 끝부분(최대 8KiB). 끝난 명령도 남겨 둔 작업 id로
|
|
4472
|
+
// 마지막 출력을 읽는다. 작업 id를 모르면 출력 없이 답해, 화면이 받은 출력을 그대로 두게 한다.
|
|
4473
|
+
if (method === "session/taskOutput") {
|
|
4474
|
+
const session = lookupSession(params.sessionId);
|
|
4475
|
+
const id = String(params.id || "");
|
|
4476
|
+
const taskId = (session && (findSubagent(session, id)?.taskId || session.rowTaskIds?.get(id)))
|
|
4477
|
+
|| (id.startsWith("task:") ? id.slice(5) : "");
|
|
4478
|
+
if (!session || !taskId || typeof session.query.getTaskOutput !== "function") return {};
|
|
4479
|
+
const result = await session.query.getTaskOutput(taskId);
|
|
4480
|
+
return { output: String(result?.output ?? "") };
|
|
4481
|
+
}
|
|
4467
4482
|
if (method === "session/watchSubagent") {
|
|
4468
4483
|
const session = lookupSession(params.sessionId);
|
|
4469
4484
|
if (session) watchSubagent(session, params.id ? String(params.id) : null);
|
|
@@ -4919,6 +4934,27 @@ async function runSelfTest() {
|
|
|
4919
4934
|
.flatMap((turn) => turn.items)
|
|
4920
4935
|
.some((item) => item.type === "userMessage" && item.content?.[0]?.text === "subagent");
|
|
4921
4936
|
if (!subagentPrompt) throw new Error("Claude subagent transcript self-test failed");
|
|
4937
|
+
// 작업 창의 출력은 행 id가 아니라 SDK 작업 id로 읽는다. 작업 id를 모르면 출력 없이 답한다.
|
|
4938
|
+
const outputReads = [];
|
|
4939
|
+
const outputSession = {
|
|
4940
|
+
id: "task-output-self-test",
|
|
4941
|
+
query: { async getTaskOutput(taskId) { outputReads.push(taskId); return { output: "tick 3\n" }; } },
|
|
4942
|
+
subagents: new Map([
|
|
4943
|
+
["toolu_shell", { id: "toolu_shell", toolUseId: "toolu_shell", taskId: "bash-1" }],
|
|
4944
|
+
["toolu_pending", { id: "toolu_pending", toolUseId: "toolu_pending", taskId: "" }],
|
|
4945
|
+
]),
|
|
4946
|
+
rowTaskIds: new Map([["toolu_done", "bash-3"]]),
|
|
4947
|
+
};
|
|
4948
|
+
sessions.set(outputSession.id, outputSession);
|
|
4949
|
+
const shellOutput = await dispatch("session/taskOutput", { sessionId: outputSession.id, id: "toolu_shell" });
|
|
4950
|
+
const placeholderOutput = await dispatch("session/taskOutput", { sessionId: outputSession.id, id: "task:bash-2" });
|
|
4951
|
+
const unknownOutput = await dispatch("session/taskOutput", { sessionId: outputSession.id, id: "toolu_pending" });
|
|
4952
|
+
await dispatch("session/taskOutput", { sessionId: outputSession.id, id: "toolu_done" });
|
|
4953
|
+
sessions.delete(outputSession.id);
|
|
4954
|
+
if (shellOutput.output !== "tick 3\n" || outputReads.join() !== "bash-1,bash-2,bash-3" || "output" in unknownOutput
|
|
4955
|
+
|| placeholderOutput.output !== "tick 3\n") {
|
|
4956
|
+
throw new Error(`Claude task output self-test failed: ${outputReads}`);
|
|
4957
|
+
}
|
|
4922
4958
|
// 끝나서 작업 id를 모르는 행도 meta 파일의 toolUseId로 그 기록을 찾는다.
|
|
4923
4959
|
const previousConfigDir = process.env.CLAUDE_CONFIG_DIR;
|
|
4924
4960
|
const configDir = join(tmpdir(), `devez-subagent-self-test-${randomUUID()}`);
|