MCPcopy Create free account
hub / github.com/garrytan/gstack / main

Function main

scripts/preflight-agent-sdk.ts:24–123  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

22import { resolveClaudeBinary } from '../browse/src/claude-bin';
23
24async function main() {
25 const failures: string[] = [];
26 const pass = (msg: string) => console.log(` ok ${msg}`);
27 const fail = (msg: string) => {
28 console.log(` FAIL ${msg}`);
29 failures.push(msg);
30 };
31
32 // 1. Overlay resolver
33 console.log('1. Overlay resolver');
34 const resolved = readOverlay('opus-4-7');
35 if (!resolved) {
36 fail("readOverlay('opus-4-7') returned empty");
37 } else {
38 pass(`resolved overlay length: ${resolved.length} chars`);
39 if (resolved.includes('{{INHERIT:')) {
40 fail('resolved overlay still contains {{INHERIT:...}} directive');
41 } else {
42 pass('no unresolved INHERIT directives');
43 }
44 }
45
46 // 2. Local claude binary exists
47 console.log('\n2. Binary pinning');
48 let claudePath: string | null = resolveClaudeBinary();
49 if (claudePath) {
50 pass(`local claude binary: ${claudePath}`);
51 } else {
52 fail('`Bun.which("claude")` failed — cannot pin binary (set GSTACK_CLAUDE_BIN to override)');
53 }
54
55 // 3. SDK query end-to-end
56 console.log('\n3. SDK query end-to-end');
57 if (!process.env.ANTHROPIC_API_KEY) {
58 console.log(' skip ANTHROPIC_API_KEY not set — cannot test live query');
59 } else {
60 try {
61 const events: SDKMessage[] = [];
62 const q = query({
63 prompt: 'say pong',
64 options: {
65 model: 'claude-opus-4-7',
66 systemPrompt: '',
67 tools: [],
68 permissionMode: 'bypassPermissions',
69 allowDangerouslySkipPermissions: true,
70 settingSources: [],
71 maxTurns: 1,
72 pathToClaudeCodeExecutable: claudePath ?? undefined,
73 env: { ANTHROPIC_API_KEY: process.env.ANTHROPIC_API_KEY },
74 },
75 });
76 for await (const ev of q) events.push(ev);
77 pass(`received ${events.length} events`);
78
79 const init = events.find(
80 (e) => e.type === 'system' && (e as { subtype?: string }).subtype === 'init',
81 ) as { claude_code_version?: string; model?: string } | undefined;

Callers 1

Calls 5

readOverlayFunction · 0.90
resolveClaudeBinaryFunction · 0.90
failFunction · 0.85
passFunction · 0.85
pushMethod · 0.45

Tested by

no test coverage detected