devez-vibe 1.2.18 → 1.2.19

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 CHANGED
Binary file
@@ -1577,14 +1577,20 @@ function historyState(messages) {
1577
1577
  continue;
1578
1578
  }
1579
1579
  turn.synthetic = false;
1580
- if (!turn.model && message.message?.model) {
1581
- turn.model = visibleModel(message.message.model);
1582
- const prompt = turn.items.find((item) => item.type === "userMessage");
1583
- if (prompt) prompt.model = turn.model;
1584
- }
1585
- for (const block of blocks) {
1586
- if (block.type === "text") turn.items.push({ id: `${message.uuid}-text`, type: "agentMessage", text: block.text || "", provider: "Claude" });
1587
- else if (block.type === "thinking") turn.items.push({ id: `${message.uuid}-thinking`, type: "reasoning", summary: [block.thinking || ""] });
1580
+ if (!turn.model && message.message?.model) {
1581
+ turn.model = visibleModel(message.message.model);
1582
+ const prompt = turn.items.find((item) => item.type === "userMessage");
1583
+ if (prompt) prompt.model = turn.model;
1584
+ }
1585
+ const prompt = turn.items.find((item) => item.type === "userMessage");
1586
+ const historyTurn = { koreanRequest: isKoreanPrompt(prompt?.content) };
1587
+ for (const block of blocks) {
1588
+ if (block.type === "text") {
1589
+ const visible = normalizeProgressText(historyTurn, block.text);
1590
+ if (!visible.trim() && String(block.text || "").trim()) continue;
1591
+ turn.items.push({ id: `${message.uuid}-text`, type: "agentMessage", text: visible, provider: "Claude" });
1592
+ }
1593
+ else if (block.type === "thinking") turn.items.push({ id: `${message.uuid}-thinking`, type: "reasoning", summary: [block.thinking || ""] });
1588
1594
  else if (block.type === "tool_use") {
1589
1595
  const pending = { name: block.name, input: block.input || {}, item: toolItem({}, block.id, block.name, block.input || {}) };
1590
1596
  tools.set(block.id, pending);
@@ -1937,13 +1943,54 @@ async function runSelfTest() {
1937
1943
  content: [{ type: "tool_use", id, name, input }],
1938
1944
  },
1939
1945
  });
1940
- const taskResult = (uuid, id, toolUseResult, content) => ({
1941
- type: "user",
1942
- uuid,
1943
- message: { role: "user", content: [{ type: "tool_result", tool_use_id: id, content }] },
1944
- tool_use_result: toolUseResult,
1945
- });
1946
- const taskMessages = [user("plan", "작업을 진행해")];
1946
+ const taskResult = (uuid, id, toolUseResult, content) => ({
1947
+ type: "user",
1948
+ uuid,
1949
+ message: { role: "user", content: [{ type: "tool_result", tool_use_id: id, content }] },
1950
+ tool_use_result: toolUseResult,
1951
+ });
1952
+ const resumedProgress = historyTurns([
1953
+ user("progress-user", "환자 변경 동기화를 수정해"),
1954
+ {
1955
+ type: "assistant",
1956
+ uuid: "progress-assistant",
1957
+ message: {
1958
+ role: "assistant",
1959
+ model: "claude-opus-5",
1960
+ content: [
1961
+ { type: "text", text: "Now hook the patient-change event in CvForm." },
1962
+ { type: "tool_use", id: "progress-read", name: "Read", input: { file_path: "CvForm.cs" } },
1963
+ ],
1964
+ },
1965
+ },
1966
+ taskResult("progress-result", "progress-read", { content: "ok" }, "ok"),
1967
+ {
1968
+ type: "assistant",
1969
+ uuid: "progress-assistant-2",
1970
+ message: {
1971
+ role: "assistant",
1972
+ model: "claude-opus-5",
1973
+ content: [
1974
+ { type: "text", text: "Now the Lab-side receiver." },
1975
+ { type: "tool_use", id: "progress-read-2", name: "Read", input: { file_path: "LabReceiver.cs" } },
1976
+ ],
1977
+ },
1978
+ },
1979
+ taskResult("progress-result-2", "progress-read-2", { content: "ok" }, "ok"),
1980
+ assistant("progress-final", "claude-opus-5", "환자 변경 동기화를 수정했습니다."),
1981
+ ]);
1982
+ const resumedProgressText = resumedProgress[0]?.items
1983
+ .filter((item) => item.type === "agentMessage")
1984
+ .map((item) => item.text);
1985
+ const englishNowText = historyTurns([
1986
+ user("english-user", "Start the answer with Now"),
1987
+ assistant("english-assistant", "claude-opus-5", "Now the answer starts."),
1988
+ ])[0]?.items.find((item) => item.type === "agentMessage")?.text;
1989
+ if (JSON.stringify(resumedProgressText) !== JSON.stringify(["환자 변경 동기화를 수정했습니다."])
1990
+ || englishNowText !== "Now the answer starts.") {
1991
+ throw new Error(`Claude resumed progress normalization self-test failed: ${JSON.stringify({ resumedProgressText, englishNowText })}`);
1992
+ }
1993
+ const taskMessages = [user("plan", "작업을 진행해")];
1947
1994
  for (let index = 1; index <= 6; index++) {
1948
1995
  const id = String(24 + index);
1949
1996
  const toolId = `create-${id}`;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "devez-vibe",
3
- "version": "1.2.18",
3
+ "version": "1.2.19",
4
4
  "description": "Stable terminal UI for Codex and Claude Agent SDK",
5
5
  "keywords": [
6
6
  "codex",