feat: add Claude Agent SDK wrapper with session create/resume

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
neken
2026-04-10 15:10:10 +05:00
parent b889519314
commit 9d409be5b9
+52
View File
@@ -0,0 +1,52 @@
import { query } from "@anthropic-ai/claude-agent-sdk";
export interface ClaudeResult {
sessionId: string;
result: string;
}
export class ClaudeService {
async createSession(prompt: string, cwd: string): Promise<ClaudeResult> {
let sessionId = "";
let result = "";
for await (const message of query({
prompt,
options: {
cwd,
permissionMode: "bypassPermissions",
allowedTools: [
"Read", "Write", "Edit", "Bash", "Glob", "Grep",
"WebSearch", "WebFetch", "Agent",
],
},
})) {
if (message.type === "system" && message.subtype === "init") {
sessionId = message.session_id;
}
if ("result" in message && typeof message.result === "string") {
result = message.result;
}
}
return { sessionId, result };
}
async sendMessage(prompt: string, sessionId: string): Promise<string> {
let result = "";
for await (const message of query({
prompt,
options: {
resume: sessionId,
permissionMode: "bypassPermissions",
},
})) {
if ("result" in message && typeof message.result === "string") {
result = message.result;
}
}
return result;
}
}