@zmeel/adapter-claude-local 0.1.0

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.
Files changed (54) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cli/format-event.d.ts +2 -0
  3. package/dist/cli/format-event.d.ts.map +1 -0
  4. package/dist/cli/format-event.js +136 -0
  5. package/dist/cli/format-event.js.map +1 -0
  6. package/dist/cli/index.d.ts +2 -0
  7. package/dist/cli/index.d.ts.map +1 -0
  8. package/dist/cli/index.js +2 -0
  9. package/dist/cli/index.js.map +1 -0
  10. package/dist/cli/quota-probe.d.ts +3 -0
  11. package/dist/cli/quota-probe.d.ts.map +1 -0
  12. package/dist/cli/quota-probe.js +106 -0
  13. package/dist/cli/quota-probe.js.map +1 -0
  14. package/dist/index.d.ts +8 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +36 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/server/execute.d.ts +18 -0
  19. package/dist/server/execute.d.ts.map +1 -0
  20. package/dist/server/execute.js +455 -0
  21. package/dist/server/execute.js.map +1 -0
  22. package/dist/server/index.d.ts +8 -0
  23. package/dist/server/index.d.ts.map +1 -0
  24. package/dist/server/index.js +57 -0
  25. package/dist/server/index.js.map +1 -0
  26. package/dist/server/parse.d.ts +22 -0
  27. package/dist/server/parse.d.ts.map +1 -0
  28. package/dist/server/parse.js +158 -0
  29. package/dist/server/parse.js.map +1 -0
  30. package/dist/server/quota.d.ts +20 -0
  31. package/dist/server/quota.d.ts.map +1 -0
  32. package/dist/server/quota.js +477 -0
  33. package/dist/server/quota.js.map +1 -0
  34. package/dist/server/skills.d.ts +8 -0
  35. package/dist/server/skills.d.ts.map +1 -0
  36. package/dist/server/skills.js +97 -0
  37. package/dist/server/skills.js.map +1 -0
  38. package/dist/server/test.d.ts +3 -0
  39. package/dist/server/test.d.ts.map +1 -0
  40. package/dist/server/test.js +201 -0
  41. package/dist/server/test.js.map +1 -0
  42. package/dist/ui/build-config.d.ts +3 -0
  43. package/dist/ui/build-config.d.ts.map +1 -0
  44. package/dist/ui/build-config.js +115 -0
  45. package/dist/ui/build-config.js.map +1 -0
  46. package/dist/ui/index.d.ts +3 -0
  47. package/dist/ui/index.d.ts.map +1 -0
  48. package/dist/ui/index.js +3 -0
  49. package/dist/ui/index.js.map +1 -0
  50. package/dist/ui/parse-stdout.d.ts +3 -0
  51. package/dist/ui/parse-stdout.d.ts.map +1 -0
  52. package/dist/ui/parse-stdout.js +149 -0
  53. package/dist/ui/parse-stdout.js.map +1 -0
  54. package/package.json +57 -0
@@ -0,0 +1,455 @@
1
+ import fs from "node:fs/promises";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+ import { fileURLToPath } from "node:url";
5
+ import { asString, asNumber, asBoolean, asStringArray, parseObject, parseJson, buildzmeelEnv, readzmeelRuntimeSkillEntries, joinPromptSections, buildInvocationEnvForLogs, ensureAbsoluteDirectory, ensureCommandResolvable, ensurePathInEnv, resolveCommandForLogs, renderTemplate, runChildProcess, } from "@zmeel/adapter-utils/server-utils";
6
+ import { parseClaudeStreamJson, describeClaudeFailure, detectClaudeLoginRequired, isClaudeMaxTurnsResult, isClaudeUnknownSessionError, } from "./parse.js";
7
+ import { resolveClaudeDesiredSkillNames } from "./skills.js";
8
+ const __moduleDir = path.dirname(fileURLToPath(import.meta.url));
9
+ /**
10
+ * Create a tmpdir with `.claude/skills/` containing symlinks to skills from
11
+ * the repo's `skills/` directory, so `--add-dir` makes Claude Code discover
12
+ * them as proper registered skills.
13
+ */
14
+ async function buildSkillsDir(config) {
15
+ const tmp = await fs.mkdtemp(path.join(os.tmpdir(), "zmeel-skills-"));
16
+ const target = path.join(tmp, ".claude", "skills");
17
+ await fs.mkdir(target, { recursive: true });
18
+ const availableEntries = await readzmeelRuntimeSkillEntries(config, __moduleDir);
19
+ const desiredNames = new Set(resolveClaudeDesiredSkillNames(config, availableEntries));
20
+ for (const entry of availableEntries) {
21
+ if (!desiredNames.has(entry.key))
22
+ continue;
23
+ await fs.symlink(entry.source, path.join(target, entry.runtimeName));
24
+ }
25
+ return tmp;
26
+ }
27
+ function buildLoginResult(input) {
28
+ return {
29
+ exitCode: input.proc.exitCode,
30
+ signal: input.proc.signal,
31
+ timedOut: input.proc.timedOut,
32
+ stdout: input.proc.stdout,
33
+ stderr: input.proc.stderr,
34
+ loginUrl: input.loginUrl,
35
+ };
36
+ }
37
+ function hasNonEmptyEnvValue(env, key) {
38
+ const raw = env[key];
39
+ return typeof raw === "string" && raw.trim().length > 0;
40
+ }
41
+ function resolveClaudeBillingType(env) {
42
+ // Claude uses API-key auth when ANTHROPIC_API_KEY is present; otherwise rely on local login/session auth.
43
+ return hasNonEmptyEnvValue(env, "ANTHROPIC_API_KEY") ? "api" : "subscription";
44
+ }
45
+ async function buildClaudeRuntimeConfig(input) {
46
+ const { runId, agent, config, context, authToken } = input;
47
+ const command = asString(config.command, "claude");
48
+ const workspaceContext = parseObject(context.zmeelWorkspace);
49
+ const workspaceCwd = asString(workspaceContext.cwd, "");
50
+ const workspaceSource = asString(workspaceContext.source, "");
51
+ const workspaceStrategy = asString(workspaceContext.strategy, "");
52
+ const workspaceId = asString(workspaceContext.workspaceId, "") || null;
53
+ const workspaceRepoUrl = asString(workspaceContext.repoUrl, "") || null;
54
+ const workspaceRepoRef = asString(workspaceContext.repoRef, "") || null;
55
+ const workspaceBranch = asString(workspaceContext.branchName, "") || null;
56
+ const workspaceWorktreePath = asString(workspaceContext.worktreePath, "") || null;
57
+ const agentHome = asString(workspaceContext.agentHome, "") || null;
58
+ const workspaceHints = Array.isArray(context.zmeelWorkspaces)
59
+ ? context.zmeelWorkspaces.filter((value) => typeof value === "object" && value !== null)
60
+ : [];
61
+ const runtimeServiceIntents = Array.isArray(context.zmeelRuntimeServiceIntents)
62
+ ? context.zmeelRuntimeServiceIntents.filter((value) => typeof value === "object" && value !== null)
63
+ : [];
64
+ const runtimeServices = Array.isArray(context.zmeelRuntimeServices)
65
+ ? context.zmeelRuntimeServices.filter((value) => typeof value === "object" && value !== null)
66
+ : [];
67
+ const runtimePrimaryUrl = asString(context.zmeelRuntimePrimaryUrl, "");
68
+ const configuredCwd = asString(config.cwd, "");
69
+ const useConfiguredInsteadOfAgentHome = workspaceSource === "agent_home" && configuredCwd.length > 0;
70
+ const effectiveWorkspaceCwd = useConfiguredInsteadOfAgentHome ? "" : workspaceCwd;
71
+ const cwd = effectiveWorkspaceCwd || configuredCwd || process.cwd();
72
+ await ensureAbsoluteDirectory(cwd, { createIfMissing: true });
73
+ const envConfig = parseObject(config.env);
74
+ const hasExplicitApiKey = typeof envConfig.ZMEEL_API_KEY === "string" && envConfig.ZMEEL_API_KEY.trim().length > 0;
75
+ const env = { ...buildzmeelEnv(agent) };
76
+ env.ZMEEL_RUN_ID = runId;
77
+ const wakeTaskId = (typeof context.taskId === "string" && context.taskId.trim().length > 0 && context.taskId.trim()) ||
78
+ (typeof context.issueId === "string" && context.issueId.trim().length > 0 && context.issueId.trim()) ||
79
+ null;
80
+ const wakeReason = typeof context.wakeReason === "string" && context.wakeReason.trim().length > 0
81
+ ? context.wakeReason.trim()
82
+ : null;
83
+ const wakeCommentId = (typeof context.wakeCommentId === "string" && context.wakeCommentId.trim().length > 0 && context.wakeCommentId.trim()) ||
84
+ (typeof context.commentId === "string" && context.commentId.trim().length > 0 && context.commentId.trim()) ||
85
+ null;
86
+ const approvalId = typeof context.approvalId === "string" && context.approvalId.trim().length > 0
87
+ ? context.approvalId.trim()
88
+ : null;
89
+ const approvalStatus = typeof context.approvalStatus === "string" && context.approvalStatus.trim().length > 0
90
+ ? context.approvalStatus.trim()
91
+ : null;
92
+ const linkedIssueIds = Array.isArray(context.issueIds)
93
+ ? context.issueIds.filter((value) => typeof value === "string" && value.trim().length > 0)
94
+ : [];
95
+ if (wakeTaskId) {
96
+ env.ZMEEL_TASK_ID = wakeTaskId;
97
+ }
98
+ if (wakeReason) {
99
+ env.ZMEEL_WAKE_REASON = wakeReason;
100
+ }
101
+ if (wakeCommentId) {
102
+ env.ZMEEL_WAKE_COMMENT_ID = wakeCommentId;
103
+ }
104
+ if (approvalId) {
105
+ env.ZMEEL_APPROVAL_ID = approvalId;
106
+ }
107
+ if (approvalStatus) {
108
+ env.ZMEEL_APPROVAL_STATUS = approvalStatus;
109
+ }
110
+ if (linkedIssueIds.length > 0) {
111
+ env.ZMEEL_LINKED_ISSUE_IDS = linkedIssueIds.join(",");
112
+ }
113
+ if (effectiveWorkspaceCwd) {
114
+ env.ZMEEL_WORKSPACE_CWD = effectiveWorkspaceCwd;
115
+ }
116
+ if (workspaceSource) {
117
+ env.ZMEEL_WORKSPACE_SOURCE = workspaceSource;
118
+ }
119
+ if (workspaceStrategy) {
120
+ env.ZMEEL_WORKSPACE_STRATEGY = workspaceStrategy;
121
+ }
122
+ if (workspaceId) {
123
+ env.ZMEEL_WORKSPACE_ID = workspaceId;
124
+ }
125
+ if (workspaceRepoUrl) {
126
+ env.ZMEEL_WORKSPACE_REPO_URL = workspaceRepoUrl;
127
+ }
128
+ if (workspaceRepoRef) {
129
+ env.ZMEEL_WORKSPACE_REPO_REF = workspaceRepoRef;
130
+ }
131
+ if (workspaceBranch) {
132
+ env.ZMEEL_WORKSPACE_BRANCH = workspaceBranch;
133
+ }
134
+ if (workspaceWorktreePath) {
135
+ env.ZMEEL_WORKSPACE_WORKTREE_PATH = workspaceWorktreePath;
136
+ }
137
+ if (agentHome) {
138
+ env.AGENT_HOME = agentHome;
139
+ }
140
+ if (workspaceHints.length > 0) {
141
+ env.ZMEEL_WORKSPACES_JSON = JSON.stringify(workspaceHints);
142
+ }
143
+ if (runtimeServiceIntents.length > 0) {
144
+ env.ZMEEL_RUNTIME_SERVICE_INTENTS_JSON = JSON.stringify(runtimeServiceIntents);
145
+ }
146
+ if (runtimeServices.length > 0) {
147
+ env.ZMEEL_RUNTIME_SERVICES_JSON = JSON.stringify(runtimeServices);
148
+ }
149
+ if (runtimePrimaryUrl) {
150
+ env.ZMEEL_RUNTIME_PRIMARY_URL = runtimePrimaryUrl;
151
+ }
152
+ for (const [key, value] of Object.entries(envConfig)) {
153
+ if (typeof value === "string")
154
+ env[key] = value;
155
+ }
156
+ if (!hasExplicitApiKey && authToken) {
157
+ env.ZMEEL_API_KEY = authToken;
158
+ }
159
+ const runtimeEnv = ensurePathInEnv({ ...process.env, ...env });
160
+ await ensureCommandResolvable(command, cwd, runtimeEnv);
161
+ const resolvedCommand = await resolveCommandForLogs(command, cwd, runtimeEnv);
162
+ const loggedEnv = buildInvocationEnvForLogs(env, {
163
+ runtimeEnv,
164
+ includeRuntimeKeys: ["HOME", "CLAUDE_CONFIG_DIR"],
165
+ resolvedCommand,
166
+ });
167
+ const timeoutSec = asNumber(config.timeoutSec, 0);
168
+ const graceSec = asNumber(config.graceSec, 20);
169
+ const extraArgs = (() => {
170
+ const fromExtraArgs = asStringArray(config.extraArgs);
171
+ if (fromExtraArgs.length > 0)
172
+ return fromExtraArgs;
173
+ return asStringArray(config.args);
174
+ })();
175
+ return {
176
+ command,
177
+ resolvedCommand,
178
+ cwd,
179
+ workspaceId,
180
+ workspaceRepoUrl,
181
+ workspaceRepoRef,
182
+ env,
183
+ loggedEnv,
184
+ timeoutSec,
185
+ graceSec,
186
+ extraArgs,
187
+ };
188
+ }
189
+ export async function runClaudeLogin(input) {
190
+ const onLog = input.onLog ?? (async () => { });
191
+ const runtime = await buildClaudeRuntimeConfig({
192
+ runId: input.runId,
193
+ agent: input.agent,
194
+ config: input.config,
195
+ context: input.context ?? {},
196
+ authToken: input.authToken,
197
+ });
198
+ const proc = await runChildProcess(input.runId, runtime.command, ["login"], {
199
+ cwd: runtime.cwd,
200
+ env: runtime.env,
201
+ timeoutSec: runtime.timeoutSec,
202
+ graceSec: runtime.graceSec,
203
+ onLog,
204
+ });
205
+ const loginMeta = detectClaudeLoginRequired({
206
+ parsed: null,
207
+ stdout: proc.stdout,
208
+ stderr: proc.stderr,
209
+ });
210
+ return buildLoginResult({
211
+ proc,
212
+ loginUrl: loginMeta.loginUrl,
213
+ });
214
+ }
215
+ export async function execute(ctx) {
216
+ const { runId, agent, runtime, config, context, onLog, onMeta, onSpawn, authToken } = ctx;
217
+ const promptTemplate = asString(config.promptTemplate, "You are agent {{agent.id}} ({{agent.name}}). Continue your zmeel work.");
218
+ const model = asString(config.model, "");
219
+ const effort = asString(config.effort, "");
220
+ const chrome = asBoolean(config.chrome, false);
221
+ const maxTurns = asNumber(config.maxTurnsPerRun, 0);
222
+ const dangerouslySkipPermissions = asBoolean(config.dangerouslySkipPermissions, false);
223
+ const instructionsFilePath = asString(config.instructionsFilePath, "").trim();
224
+ const instructionsFileDir = instructionsFilePath ? `${path.dirname(instructionsFilePath)}/` : "";
225
+ const commandNotes = instructionsFilePath
226
+ ? [
227
+ `Injected agent instructions via --append-system-prompt-file ${instructionsFilePath} (with path directive appended)`,
228
+ ]
229
+ : [];
230
+ const runtimeConfig = await buildClaudeRuntimeConfig({
231
+ runId,
232
+ agent,
233
+ config,
234
+ context,
235
+ authToken,
236
+ });
237
+ const { command, resolvedCommand, cwd, workspaceId, workspaceRepoUrl, workspaceRepoRef, env, loggedEnv, timeoutSec, graceSec, extraArgs, } = runtimeConfig;
238
+ const effectiveEnv = Object.fromEntries(Object.entries({ ...process.env, ...env }).filter((entry) => typeof entry[1] === "string"));
239
+ const billingType = resolveClaudeBillingType(effectiveEnv);
240
+ const skillsDir = await buildSkillsDir(config);
241
+ // When instructionsFilePath is configured, create a combined temp file that
242
+ // includes both the file content and the path directive, so we only need
243
+ // --append-system-prompt-file (Claude CLI forbids using both flags together).
244
+ let effectiveInstructionsFilePath = instructionsFilePath;
245
+ if (instructionsFilePath) {
246
+ try {
247
+ const instructionsContent = await fs.readFile(instructionsFilePath, "utf-8");
248
+ const pathDirective = `\nThe above agent instructions were loaded from ${instructionsFilePath}. Resolve any relative file references from ${instructionsFileDir}.`;
249
+ const combinedPath = path.join(skillsDir, "agent-instructions.md");
250
+ await fs.writeFile(combinedPath, instructionsContent + pathDirective, "utf-8");
251
+ effectiveInstructionsFilePath = combinedPath;
252
+ }
253
+ catch (err) {
254
+ const reason = err instanceof Error ? err.message : String(err);
255
+ await onLog("stderr", `[zmeel] Warning: could not read agent instructions file "${instructionsFilePath}": ${reason}\n`);
256
+ effectiveInstructionsFilePath = undefined;
257
+ }
258
+ }
259
+ const runtimeSessionParams = parseObject(runtime.sessionParams);
260
+ const runtimeSessionId = asString(runtimeSessionParams.sessionId, runtime.sessionId ?? "");
261
+ const runtimeSessionCwd = asString(runtimeSessionParams.cwd, "");
262
+ const canResumeSession = runtimeSessionId.length > 0 &&
263
+ (runtimeSessionCwd.length === 0 || path.resolve(runtimeSessionCwd) === path.resolve(cwd));
264
+ const sessionId = canResumeSession ? runtimeSessionId : null;
265
+ if (runtimeSessionId && !canResumeSession) {
266
+ await onLog("stdout", `[zmeel] Claude session "${runtimeSessionId}" was saved for cwd "${runtimeSessionCwd}" and will not be resumed in "${cwd}".\n`);
267
+ }
268
+ const bootstrapPromptTemplate = asString(config.bootstrapPromptTemplate, "");
269
+ const templateData = {
270
+ agentId: agent.id,
271
+ companyId: agent.companyId,
272
+ runId,
273
+ company: { id: agent.companyId },
274
+ agent,
275
+ run: { id: runId, source: "on_demand" },
276
+ context,
277
+ };
278
+ const renderedPrompt = renderTemplate(promptTemplate, templateData);
279
+ const renderedBootstrapPrompt = !sessionId && bootstrapPromptTemplate.trim().length > 0
280
+ ? renderTemplate(bootstrapPromptTemplate, templateData).trim()
281
+ : "";
282
+ const sessionHandoffNote = asString(context.zmeelSessionHandoffMarkdown, "").trim();
283
+ const prompt = joinPromptSections([
284
+ renderedBootstrapPrompt,
285
+ sessionHandoffNote,
286
+ renderedPrompt,
287
+ ]);
288
+ const promptMetrics = {
289
+ promptChars: prompt.length,
290
+ bootstrapPromptChars: renderedBootstrapPrompt.length,
291
+ sessionHandoffChars: sessionHandoffNote.length,
292
+ heartbeatPromptChars: renderedPrompt.length,
293
+ };
294
+ const buildClaudeArgs = (resumeSessionId) => {
295
+ const args = ["--print", "-", "--output-format", "stream-json", "--verbose"];
296
+ if (resumeSessionId)
297
+ args.push("--resume", resumeSessionId);
298
+ if (dangerouslySkipPermissions)
299
+ args.push("--dangerously-skip-permissions");
300
+ if (chrome)
301
+ args.push("--chrome");
302
+ if (model)
303
+ args.push("--model", model);
304
+ if (effort)
305
+ args.push("--effort", effort);
306
+ if (maxTurns > 0)
307
+ args.push("--max-turns", String(maxTurns));
308
+ if (effectiveInstructionsFilePath) {
309
+ args.push("--append-system-prompt-file", effectiveInstructionsFilePath);
310
+ }
311
+ args.push("--add-dir", skillsDir);
312
+ if (extraArgs.length > 0)
313
+ args.push(...extraArgs);
314
+ return args;
315
+ };
316
+ const parseFallbackErrorMessage = (proc) => {
317
+ const stderrLine = proc.stderr
318
+ .split(/\r?\n/)
319
+ .map((line) => line.trim())
320
+ .find(Boolean) ?? "";
321
+ if ((proc.exitCode ?? 0) === 0) {
322
+ return "Failed to parse claude JSON output";
323
+ }
324
+ return stderrLine
325
+ ? `Claude exited with code ${proc.exitCode ?? -1}: ${stderrLine}`
326
+ : `Claude exited with code ${proc.exitCode ?? -1}`;
327
+ };
328
+ const runAttempt = async (resumeSessionId) => {
329
+ const args = buildClaudeArgs(resumeSessionId);
330
+ if (onMeta) {
331
+ await onMeta({
332
+ adapterType: "claude_local",
333
+ command: resolvedCommand,
334
+ cwd,
335
+ commandArgs: args,
336
+ commandNotes,
337
+ env: loggedEnv,
338
+ prompt,
339
+ promptMetrics,
340
+ context,
341
+ });
342
+ }
343
+ const proc = await runChildProcess(runId, command, args, {
344
+ cwd,
345
+ env,
346
+ stdin: prompt,
347
+ timeoutSec,
348
+ graceSec,
349
+ onSpawn,
350
+ onLog,
351
+ });
352
+ const parsedStream = parseClaudeStreamJson(proc.stdout);
353
+ const parsed = parsedStream.resultJson ?? parseJson(proc.stdout);
354
+ return { proc, parsedStream, parsed };
355
+ };
356
+ const toAdapterResult = (attempt, opts) => {
357
+ const { proc, parsedStream, parsed } = attempt;
358
+ const loginMeta = detectClaudeLoginRequired({
359
+ parsed,
360
+ stdout: proc.stdout,
361
+ stderr: proc.stderr,
362
+ });
363
+ const errorMeta = loginMeta.loginUrl != null
364
+ ? {
365
+ loginUrl: loginMeta.loginUrl,
366
+ }
367
+ : undefined;
368
+ if (proc.timedOut) {
369
+ return {
370
+ exitCode: proc.exitCode,
371
+ signal: proc.signal,
372
+ timedOut: true,
373
+ errorMessage: `Timed out after ${timeoutSec}s`,
374
+ errorCode: "timeout",
375
+ errorMeta,
376
+ clearSession: Boolean(opts.clearSessionOnMissingSession),
377
+ };
378
+ }
379
+ if (!parsed) {
380
+ return {
381
+ exitCode: proc.exitCode,
382
+ signal: proc.signal,
383
+ timedOut: false,
384
+ errorMessage: parseFallbackErrorMessage(proc),
385
+ errorCode: loginMeta.requiresLogin ? "claude_auth_required" : null,
386
+ errorMeta,
387
+ resultJson: {
388
+ stdout: proc.stdout,
389
+ stderr: proc.stderr,
390
+ },
391
+ clearSession: Boolean(opts.clearSessionOnMissingSession),
392
+ };
393
+ }
394
+ const usage = parsedStream.usage ??
395
+ (() => {
396
+ const usageObj = parseObject(parsed.usage);
397
+ return {
398
+ inputTokens: asNumber(usageObj.input_tokens, 0),
399
+ cachedInputTokens: asNumber(usageObj.cache_read_input_tokens, 0),
400
+ outputTokens: asNumber(usageObj.output_tokens, 0),
401
+ };
402
+ })();
403
+ const resolvedSessionId = parsedStream.sessionId ??
404
+ (asString(parsed.session_id, opts.fallbackSessionId ?? "") || opts.fallbackSessionId);
405
+ const resolvedSessionParams = resolvedSessionId
406
+ ? {
407
+ sessionId: resolvedSessionId,
408
+ cwd,
409
+ ...(workspaceId ? { workspaceId } : {}),
410
+ ...(workspaceRepoUrl ? { repoUrl: workspaceRepoUrl } : {}),
411
+ ...(workspaceRepoRef ? { repoRef: workspaceRepoRef } : {}),
412
+ }
413
+ : null;
414
+ const clearSessionForMaxTurns = isClaudeMaxTurnsResult(parsed);
415
+ return {
416
+ exitCode: proc.exitCode,
417
+ signal: proc.signal,
418
+ timedOut: false,
419
+ errorMessage: (proc.exitCode ?? 0) === 0
420
+ ? null
421
+ : describeClaudeFailure(parsed) ?? `Claude exited with code ${proc.exitCode ?? -1}`,
422
+ errorCode: loginMeta.requiresLogin ? "claude_auth_required" : null,
423
+ errorMeta,
424
+ usage,
425
+ sessionId: resolvedSessionId,
426
+ sessionParams: resolvedSessionParams,
427
+ sessionDisplayId: resolvedSessionId,
428
+ provider: "anthropic",
429
+ biller: "anthropic",
430
+ model: parsedStream.model || asString(parsed.model, model),
431
+ billingType,
432
+ costUsd: parsedStream.costUsd ?? asNumber(parsed.total_cost_usd, 0),
433
+ resultJson: parsed,
434
+ summary: parsedStream.summary || asString(parsed.result, ""),
435
+ clearSession: clearSessionForMaxTurns || Boolean(opts.clearSessionOnMissingSession && !resolvedSessionId),
436
+ };
437
+ };
438
+ try {
439
+ const initial = await runAttempt(sessionId ?? null);
440
+ if (sessionId &&
441
+ !initial.proc.timedOut &&
442
+ (initial.proc.exitCode ?? 0) !== 0 &&
443
+ initial.parsed &&
444
+ isClaudeUnknownSessionError(initial.parsed)) {
445
+ await onLog("stdout", `[zmeel] Claude resume session "${sessionId}" is unavailable; retrying with a fresh session.\n`);
446
+ const retry = await runAttempt(null);
447
+ return toAdapterResult(retry, { fallbackSessionId: null, clearSessionOnMissingSession: true });
448
+ }
449
+ return toAdapterResult(initial, { fallbackSessionId: runtimeSessionId || runtime.sessionId });
450
+ }
451
+ finally {
452
+ fs.rm(skillsDir, { recursive: true, force: true }).catch(() => { });
453
+ }
454
+ }
455
+ //# sourceMappingURL=execute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../src/server/execute.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export { execute, runClaudeLogin } from "./execute.js";
2
+ export { listClaudeSkills, syncClaudeSkills } from "./skills.js";
3
+ export { testEnvironment } from "./test.js";
4
+ export { parseClaudeStreamJson, describeClaudeFailure, isClaudeMaxTurnsResult, isClaudeUnknownSessionError, } from "./parse.js";
5
+ export { getQuotaWindows, readClaudeAuthStatus, readClaudeToken, fetchClaudeQuota, fetchClaudeCliQuota, captureClaudeCliUsageText, parseClaudeCliUsageText, toPercent, fetchWithTimeout, claudeConfigDir, } from "./quota.js";
6
+ import type { AdapterSessionCodec } from "@zmeel/adapter-utils";
7
+ export declare const sessionCodec: AdapterSessionCodec;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,yBAAyB,EACzB,uBAAuB,EACvB,SAAS,EACT,gBAAgB,EAChB,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAMhE,eAAO,MAAM,YAAY,EAAE,mBA4C1B,CAAC"}
@@ -0,0 +1,57 @@
1
+ export { execute, runClaudeLogin } from "./execute.js";
2
+ export { listClaudeSkills, syncClaudeSkills } from "./skills.js";
3
+ export { testEnvironment } from "./test.js";
4
+ export { parseClaudeStreamJson, describeClaudeFailure, isClaudeMaxTurnsResult, isClaudeUnknownSessionError, } from "./parse.js";
5
+ export { getQuotaWindows, readClaudeAuthStatus, readClaudeToken, fetchClaudeQuota, fetchClaudeCliQuota, captureClaudeCliUsageText, parseClaudeCliUsageText, toPercent, fetchWithTimeout, claudeConfigDir, } from "./quota.js";
6
+ function readNonEmptyString(value) {
7
+ return typeof value === "string" && value.trim().length > 0 ? value.trim() : null;
8
+ }
9
+ export const sessionCodec = {
10
+ deserialize(raw) {
11
+ if (typeof raw !== "object" || raw === null || Array.isArray(raw))
12
+ return null;
13
+ const record = raw;
14
+ const sessionId = readNonEmptyString(record.sessionId) ?? readNonEmptyString(record.session_id);
15
+ if (!sessionId)
16
+ return null;
17
+ const cwd = readNonEmptyString(record.cwd) ??
18
+ readNonEmptyString(record.workdir) ??
19
+ readNonEmptyString(record.folder);
20
+ const workspaceId = readNonEmptyString(record.workspaceId) ?? readNonEmptyString(record.workspace_id);
21
+ const repoUrl = readNonEmptyString(record.repoUrl) ?? readNonEmptyString(record.repo_url);
22
+ const repoRef = readNonEmptyString(record.repoRef) ?? readNonEmptyString(record.repo_ref);
23
+ return {
24
+ sessionId,
25
+ ...(cwd ? { cwd } : {}),
26
+ ...(workspaceId ? { workspaceId } : {}),
27
+ ...(repoUrl ? { repoUrl } : {}),
28
+ ...(repoRef ? { repoRef } : {}),
29
+ };
30
+ },
31
+ serialize(params) {
32
+ if (!params)
33
+ return null;
34
+ const sessionId = readNonEmptyString(params.sessionId) ?? readNonEmptyString(params.session_id);
35
+ if (!sessionId)
36
+ return null;
37
+ const cwd = readNonEmptyString(params.cwd) ??
38
+ readNonEmptyString(params.workdir) ??
39
+ readNonEmptyString(params.folder);
40
+ const workspaceId = readNonEmptyString(params.workspaceId) ?? readNonEmptyString(params.workspace_id);
41
+ const repoUrl = readNonEmptyString(params.repoUrl) ?? readNonEmptyString(params.repo_url);
42
+ const repoRef = readNonEmptyString(params.repoRef) ?? readNonEmptyString(params.repo_ref);
43
+ return {
44
+ sessionId,
45
+ ...(cwd ? { cwd } : {}),
46
+ ...(workspaceId ? { workspaceId } : {}),
47
+ ...(repoUrl ? { repoUrl } : {}),
48
+ ...(repoRef ? { repoRef } : {}),
49
+ };
50
+ },
51
+ getDisplayId(params) {
52
+ if (!params)
53
+ return null;
54
+ return readNonEmptyString(params.sessionId) ?? readNonEmptyString(params.session_id);
55
+ },
56
+ };
57
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,yBAAyB,EACzB,uBAAuB,EACvB,SAAS,EACT,gBAAgB,EAChB,eAAe,GAChB,MAAM,YAAY,CAAC;AAGpB,SAAS,kBAAkB,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACpF,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAwB;IAC/C,WAAW,CAAC,GAAY;QACtB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAC/E,MAAM,MAAM,GAAG,GAA8B,CAAC;QAC9C,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAChG,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAC5B,MAAM,GAAG,GACP,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC;YAC9B,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC;YAClC,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACtG,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1F,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1F,OAAO;YACL,SAAS;YACT,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChC,CAAC;IACJ,CAAC;IACD,SAAS,CAAC,MAAsC;QAC9C,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAChG,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAC5B,MAAM,GAAG,GACP,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC;YAC9B,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC;YAClC,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACtG,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1F,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1F,OAAO;YACL,SAAS;YACT,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChC,CAAC;IACJ,CAAC;IACD,YAAY,CAAC,MAAsC;QACjD,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,OAAO,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACvF,CAAC;CACF,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { UsageSummary } from "@zmeel/adapter-utils";
2
+ export declare function parseClaudeStreamJson(stdout: string): {
3
+ sessionId: string | null;
4
+ model: string;
5
+ costUsd: number | null;
6
+ usage: UsageSummary | null;
7
+ summary: string;
8
+ resultJson: Record<string, unknown> | null;
9
+ };
10
+ export declare function extractClaudeLoginUrl(text: string): string | null;
11
+ export declare function detectClaudeLoginRequired(input: {
12
+ parsed: Record<string, unknown> | null;
13
+ stdout: string;
14
+ stderr: string;
15
+ }): {
16
+ requiresLogin: boolean;
17
+ loginUrl: string | null;
18
+ };
19
+ export declare function describeClaudeFailure(parsed: Record<string, unknown>): string | null;
20
+ export declare function isClaudeMaxTurnsResult(parsed: Record<string, unknown> | null | undefined): boolean;
21
+ export declare function isClaudeUnknownSessionError(parsed: Record<string, unknown>): boolean;
22
+ //# sourceMappingURL=parse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/server/parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAMzD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM;;;aA4C7B,MAAM,GAAG,IAAI;WACf,YAAY,GAAG,IAAI;;gBAEd,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;EAsBvD;AAkCD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUjE;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG;IAAE,aAAa,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAatD;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAcpF;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAWlG;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CASpF"}