@hienlh/ppm 0.5.10 → 0.5.12
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/CHANGELOG.md +12 -0
- package/dist/web/assets/{chat-tab-BR7I0EKW.js → chat-tab-CLM8ip7r.js} +1 -1
- package/dist/web/assets/{code-editor-D5RJoCQB.js → code-editor-CdnPZRAX.js} +1 -1
- package/dist/web/assets/{diff-viewer-3a4UxvX6.js → diff-viewer-Ct4HfH8c.js} +1 -1
- package/dist/web/assets/{git-graph-DMASMovU.js → git-graph-ChKNRVGx.js} +1 -1
- package/dist/web/assets/{index-tvknG45d.css → index-B7-mYaCz.css} +1 -1
- package/dist/web/assets/{index-IwGCRxKv.js → index-C6CCn60R.js} +3 -3
- package/dist/web/assets/{markdown-renderer-CVXxwcSy.js → markdown-renderer-ByOXRsja.js} +1 -1
- package/dist/web/assets/{settings-tab-CE-S_MIK.js → settings-tab-CiyrdjwA.js} +1 -1
- package/dist/web/assets/{terminal-tab-DL2RufSL.js → terminal-tab-DwB5h7Ue.js} +1 -1
- package/dist/web/index.html +2 -2
- package/dist/web/sw.js +1 -1
- package/package.json +1 -1
- package/src/providers/claude-agent-sdk.ts +146 -75
- package/src/web/components/layout/project-bar.tsx +61 -9
- package/test-sdk.mjs +106 -0
package/test-sdk.mjs
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal SDK test — run on Windows to diagnose Bun + SDK issue.
|
|
3
|
+
*
|
|
4
|
+
* Usage:
|
|
5
|
+
* bun test-sdk.mjs
|
|
6
|
+
* node --experimental-strip-types test-sdk.mjs
|
|
7
|
+
*/
|
|
8
|
+
import { query } from "@anthropic-ai/claude-agent-sdk";
|
|
9
|
+
import { homedir } from "node:os";
|
|
10
|
+
import { spawnSync } from "node:child_process";
|
|
11
|
+
|
|
12
|
+
// Remove CLAUDECODE to avoid nested session error
|
|
13
|
+
delete process.env.CLAUDECODE;
|
|
14
|
+
|
|
15
|
+
const cwd = homedir();
|
|
16
|
+
|
|
17
|
+
console.log("=== SDK Test ===");
|
|
18
|
+
console.log(`Platform: ${process.platform}`);
|
|
19
|
+
console.log(`Runtime: ${typeof Bun !== "undefined" ? `Bun ${Bun.version}` : `Node ${process.version}`}`);
|
|
20
|
+
console.log(`CWD: ${cwd}`);
|
|
21
|
+
console.log(`API_KEY: ${process.env.ANTHROPIC_API_KEY ? "SET" : "unset"}`);
|
|
22
|
+
|
|
23
|
+
// Test 1: claude --version
|
|
24
|
+
console.log("\n--- Test 1: claude --version ---");
|
|
25
|
+
try {
|
|
26
|
+
const ver = spawnSync("claude", ["--version"], { encoding: "utf-8", timeout: 10000 });
|
|
27
|
+
console.log(`exit=${ver.status} stdout="${ver.stdout?.trim()}" stderr="${ver.stderr?.trim()}"`);
|
|
28
|
+
} catch (e) {
|
|
29
|
+
console.log(`FAILED: ${e.message}`);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// Test 2: claude -p (direct CLI)
|
|
33
|
+
console.log("\n--- Test 2: claude -p (direct spawn) ---");
|
|
34
|
+
try {
|
|
35
|
+
const direct = spawnSync("claude", ["-p", "say ok", "--output-format", "text", "--max-turns", "1"], {
|
|
36
|
+
encoding: "utf-8",
|
|
37
|
+
timeout: 30000,
|
|
38
|
+
cwd,
|
|
39
|
+
env: process.env,
|
|
40
|
+
});
|
|
41
|
+
console.log(`exit=${direct.status}`);
|
|
42
|
+
console.log(`stdout="${direct.stdout?.trim().slice(0, 200)}"`);
|
|
43
|
+
if (direct.stderr?.trim()) console.log(`stderr="${direct.stderr.trim().slice(0, 200)}"`);
|
|
44
|
+
} catch (e) {
|
|
45
|
+
console.log(`FAILED: ${e.message}`);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// Test 3: SDK query()
|
|
49
|
+
console.log("\n--- Test 3: SDK query() ---");
|
|
50
|
+
const startTime = Date.now();
|
|
51
|
+
const TIMEOUT = 15000;
|
|
52
|
+
let gotEvent = false;
|
|
53
|
+
|
|
54
|
+
try {
|
|
55
|
+
const q = query({
|
|
56
|
+
prompt: "say ok",
|
|
57
|
+
options: {
|
|
58
|
+
cwd,
|
|
59
|
+
maxTurns: 1,
|
|
60
|
+
permissionMode: "bypassPermissions",
|
|
61
|
+
allowDangerouslySkipPermissions: true,
|
|
62
|
+
systemPrompt: { type: "custom", custom: "Reply only with: ok" },
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
// Race first event against timeout
|
|
67
|
+
const iterator = q[Symbol.asyncIterator]();
|
|
68
|
+
const result = await Promise.race([
|
|
69
|
+
iterator.next(),
|
|
70
|
+
new Promise((resolve) => setTimeout(() => resolve("TIMEOUT"), TIMEOUT)),
|
|
71
|
+
]);
|
|
72
|
+
|
|
73
|
+
if (result === "TIMEOUT") {
|
|
74
|
+
console.log(`TIMEOUT: no events after ${TIMEOUT / 1000}s`);
|
|
75
|
+
console.log(">>> This confirms the Bun + Windows SDK issue <<<");
|
|
76
|
+
try { q.close(); } catch {}
|
|
77
|
+
} else {
|
|
78
|
+
gotEvent = true;
|
|
79
|
+
const elapsed = Date.now() - startTime;
|
|
80
|
+
const msg = result.value;
|
|
81
|
+
console.log(`First event in ${elapsed}ms: type=${msg?.type} subtype=${msg?.subtype ?? "none"}`);
|
|
82
|
+
|
|
83
|
+
// Read remaining events
|
|
84
|
+
let count = 1;
|
|
85
|
+
for await (const ev of { [Symbol.asyncIterator]: () => iterator }) {
|
|
86
|
+
count++;
|
|
87
|
+
if (ev.type === "assistant") {
|
|
88
|
+
const text = ev.message?.content?.find((b) => b.type === "text")?.text ?? "";
|
|
89
|
+
console.log(`Event #${count}: assistant text="${text.slice(0, 100)}"`);
|
|
90
|
+
} else if (ev.type === "result") {
|
|
91
|
+
console.log(`Event #${count}: result subtype=${ev.subtype}`);
|
|
92
|
+
break;
|
|
93
|
+
} else {
|
|
94
|
+
console.log(`Event #${count}: ${ev.type}`);
|
|
95
|
+
}
|
|
96
|
+
if (count > 20) { console.log("(stopping after 20 events)"); break; }
|
|
97
|
+
}
|
|
98
|
+
console.log(`\nSUCCESS: SDK works! Total events: ${count}`);
|
|
99
|
+
}
|
|
100
|
+
} catch (e) {
|
|
101
|
+
console.log(`ERROR: ${e.message}`);
|
|
102
|
+
if (e.stack) console.log(e.stack);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
console.log(`\nTotal time: ${((Date.now() - startTime) / 1000).toFixed(1)}s`);
|
|
106
|
+
process.exit(gotEvent ? 0 : 1);
|