@paperclipai/adapter-claude-local 0.2.2

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 (41) hide show
  1. package/dist/cli/format-event.d.ts +2 -0
  2. package/dist/cli/format-event.d.ts.map +1 -0
  3. package/dist/cli/format-event.js +94 -0
  4. package/dist/cli/format-event.js.map +1 -0
  5. package/dist/cli/index.d.ts +2 -0
  6. package/dist/cli/index.d.ts.map +1 -0
  7. package/dist/cli/index.js +2 -0
  8. package/dist/cli/index.js.map +1 -0
  9. package/dist/index.d.ts +8 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +29 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/server/execute.d.ts +18 -0
  14. package/dist/server/execute.d.ts.map +1 -0
  15. package/dist/server/execute.js +385 -0
  16. package/dist/server/execute.js.map +1 -0
  17. package/dist/server/index.d.ts +6 -0
  18. package/dist/server/index.d.ts.map +1 -0
  19. package/dist/server/index.js +55 -0
  20. package/dist/server/index.js.map +1 -0
  21. package/dist/server/parse.d.ts +22 -0
  22. package/dist/server/parse.d.ts.map +1 -0
  23. package/dist/server/parse.js +158 -0
  24. package/dist/server/parse.js.map +1 -0
  25. package/dist/server/test.d.ts +3 -0
  26. package/dist/server/test.d.ts.map +1 -0
  27. package/dist/server/test.js +201 -0
  28. package/dist/server/test.js.map +1 -0
  29. package/dist/ui/build-config.d.ts +3 -0
  30. package/dist/ui/build-config.d.ts.map +1 -0
  31. package/dist/ui/build-config.js +87 -0
  32. package/dist/ui/build-config.js.map +1 -0
  33. package/dist/ui/index.d.ts +3 -0
  34. package/dist/ui/index.d.ts.map +1 -0
  35. package/dist/ui/index.js +3 -0
  36. package/dist/ui/index.js.map +1 -0
  37. package/dist/ui/parse-stdout.d.ts +3 -0
  38. package/dist/ui/parse-stdout.d.ts.map +1 -0
  39. package/dist/ui/parse-stdout.js +144 -0
  40. package/dist/ui/parse-stdout.js.map +1 -0
  41. package/package.json +43 -0
@@ -0,0 +1,2 @@
1
+ export declare function printClaudeStreamEvent(raw: string, debug: boolean): void;
2
+ //# sourceMappingURL=format-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-event.d.ts","sourceRoot":"","sources":["../../src/cli/format-event.ts"],"names":[],"mappings":"AAmBA,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CA+ExE"}
@@ -0,0 +1,94 @@
1
+ import pc from "picocolors";
2
+ function asErrorText(value) {
3
+ if (typeof value === "string")
4
+ return value;
5
+ if (typeof value !== "object" || value === null || Array.isArray(value))
6
+ return "";
7
+ const obj = value;
8
+ const message = (typeof obj.message === "string" && obj.message) ||
9
+ (typeof obj.error === "string" && obj.error) ||
10
+ (typeof obj.code === "string" && obj.code) ||
11
+ "";
12
+ if (message)
13
+ return message;
14
+ try {
15
+ return JSON.stringify(obj);
16
+ }
17
+ catch {
18
+ return "";
19
+ }
20
+ }
21
+ export function printClaudeStreamEvent(raw, debug) {
22
+ const line = raw.trim();
23
+ if (!line)
24
+ return;
25
+ let parsed = null;
26
+ try {
27
+ parsed = JSON.parse(line);
28
+ }
29
+ catch {
30
+ console.log(line);
31
+ return;
32
+ }
33
+ const type = typeof parsed.type === "string" ? parsed.type : "";
34
+ if (type === "system" && parsed.subtype === "init") {
35
+ const model = typeof parsed.model === "string" ? parsed.model : "unknown";
36
+ const sessionId = typeof parsed.session_id === "string" ? parsed.session_id : "";
37
+ console.log(pc.blue(`Claude initialized (model: ${model}${sessionId ? `, session: ${sessionId}` : ""})`));
38
+ return;
39
+ }
40
+ if (type === "assistant") {
41
+ const message = typeof parsed.message === "object" && parsed.message !== null && !Array.isArray(parsed.message)
42
+ ? parsed.message
43
+ : {};
44
+ const content = Array.isArray(message.content) ? message.content : [];
45
+ for (const blockRaw of content) {
46
+ if (typeof blockRaw !== "object" || blockRaw === null || Array.isArray(blockRaw))
47
+ continue;
48
+ const block = blockRaw;
49
+ const blockType = typeof block.type === "string" ? block.type : "";
50
+ if (blockType === "text") {
51
+ const text = typeof block.text === "string" ? block.text : "";
52
+ if (text)
53
+ console.log(pc.green(`assistant: ${text}`));
54
+ }
55
+ else if (blockType === "tool_use") {
56
+ const name = typeof block.name === "string" ? block.name : "unknown";
57
+ console.log(pc.yellow(`tool_call: ${name}`));
58
+ if (block.input !== undefined) {
59
+ console.log(pc.gray(JSON.stringify(block.input, null, 2)));
60
+ }
61
+ }
62
+ }
63
+ return;
64
+ }
65
+ if (type === "result") {
66
+ const usage = typeof parsed.usage === "object" && parsed.usage !== null && !Array.isArray(parsed.usage)
67
+ ? parsed.usage
68
+ : {};
69
+ const input = Number(usage.input_tokens ?? 0);
70
+ const output = Number(usage.output_tokens ?? 0);
71
+ const cached = Number(usage.cache_read_input_tokens ?? 0);
72
+ const cost = Number(parsed.total_cost_usd ?? 0);
73
+ const subtype = typeof parsed.subtype === "string" ? parsed.subtype : "";
74
+ const isError = parsed.is_error === true;
75
+ const resultText = typeof parsed.result === "string" ? parsed.result : "";
76
+ if (resultText) {
77
+ console.log(pc.green("result:"));
78
+ console.log(resultText);
79
+ }
80
+ const errors = Array.isArray(parsed.errors) ? parsed.errors.map(asErrorText).filter(Boolean) : [];
81
+ if (subtype.startsWith("error") || isError || errors.length > 0) {
82
+ console.log(pc.red(`claude_result: subtype=${subtype || "unknown"} is_error=${isError ? "true" : "false"}`));
83
+ if (errors.length > 0) {
84
+ console.log(pc.red(`claude_errors: ${errors.join(" | ")}`));
85
+ }
86
+ }
87
+ console.log(pc.blue(`tokens: in=${Number.isFinite(input) ? input : 0} out=${Number.isFinite(output) ? output : 0} cached=${Number.isFinite(cached) ? cached : 0} cost=$${Number.isFinite(cost) ? cost.toFixed(6) : "0.000000"}`));
88
+ return;
89
+ }
90
+ if (debug) {
91
+ console.log(pc.gray(line));
92
+ }
93
+ }
94
+ //# sourceMappingURL=format-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-event.js","sourceRoot":"","sources":["../../src/cli/format-event.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { printClaudeStreamEvent } from "./format-event.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { printClaudeStreamEvent } from "./format-event.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare const type = "claude_local";
2
+ export declare const label = "Claude Code (local)";
3
+ export declare const models: {
4
+ id: string;
5
+ label: string;
6
+ }[];
7
+ export declare const agentConfigurationDoc = "# claude_local agent configuration\n\nAdapter: claude_local\n\nCore fields:\n- cwd (string, optional): default absolute working directory fallback for the agent process (created if missing when possible)\n- instructionsFilePath (string, optional): absolute path to a markdown instructions file injected at runtime\n- model (string, optional): Claude model id\n- effort (string, optional): reasoning effort passed via --effort (low|medium|high)\n- chrome (boolean, optional): pass --chrome when running Claude\n- promptTemplate (string, optional): run prompt template\n- maxTurnsPerRun (number, optional): max turns for one run\n- dangerouslySkipPermissions (boolean, optional): pass --dangerously-skip-permissions to claude\n- command (string, optional): defaults to \"claude\"\n- extraArgs (string[], optional): additional CLI args\n- env (object, optional): KEY=VALUE environment variables\n\nOperational fields:\n- timeoutSec (number, optional): run timeout in seconds\n- graceSec (number, optional): SIGTERM grace period in seconds\n";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,iBAAiB,CAAC;AACnC,eAAO,MAAM,KAAK,wBAAwB,CAAC;AAE3C,eAAO,MAAM,MAAM;;;GAIlB,CAAC;AAEF,eAAO,MAAM,qBAAqB,khCAoBjC,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,29 @@
1
+ export const type = "claude_local";
2
+ export const label = "Claude Code (local)";
3
+ export const models = [
4
+ { id: "claude-opus-4-6", label: "Claude Opus 4.6" },
5
+ { id: "claude-sonnet-4-5-20250929", label: "Claude Sonnet 4.5" },
6
+ { id: "claude-haiku-4-5-20251001", label: "Claude Haiku 4.5" },
7
+ ];
8
+ export const agentConfigurationDoc = `# claude_local agent configuration
9
+
10
+ Adapter: claude_local
11
+
12
+ Core fields:
13
+ - cwd (string, optional): default absolute working directory fallback for the agent process (created if missing when possible)
14
+ - instructionsFilePath (string, optional): absolute path to a markdown instructions file injected at runtime
15
+ - model (string, optional): Claude model id
16
+ - effort (string, optional): reasoning effort passed via --effort (low|medium|high)
17
+ - chrome (boolean, optional): pass --chrome when running Claude
18
+ - promptTemplate (string, optional): run prompt template
19
+ - maxTurnsPerRun (number, optional): max turns for one run
20
+ - dangerouslySkipPermissions (boolean, optional): pass --dangerously-skip-permissions to claude
21
+ - command (string, optional): defaults to "claude"
22
+ - extraArgs (string[], optional): additional CLI args
23
+ - env (object, optional): KEY=VALUE environment variables
24
+
25
+ Operational fields:
26
+ - timeoutSec (number, optional): run timeout in seconds
27
+ - graceSec (number, optional): SIGTERM grace period in seconds
28
+ `;
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,IAAI,GAAG,cAAc,CAAC;AACnC,MAAM,CAAC,MAAM,KAAK,GAAG,qBAAqB,CAAC;AAE3C,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE;IACnD,EAAE,EAAE,EAAE,4BAA4B,EAAE,KAAK,EAAE,mBAAmB,EAAE;IAChE,EAAE,EAAE,EAAE,2BAA2B,EAAE,KAAK,EAAE,kBAAkB,EAAE;CAC/D,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;CAoBpC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { AdapterExecutionContext, AdapterExecutionResult } from "@paperclipai/adapter-utils";
2
+ export declare function runClaudeLogin(input: {
3
+ runId: string;
4
+ agent: AdapterExecutionContext["agent"];
5
+ config: Record<string, unknown>;
6
+ context?: Record<string, unknown>;
7
+ authToken?: string;
8
+ onLog?: (stream: "stdout" | "stderr", chunk: string) => Promise<void>;
9
+ }): Promise<{
10
+ exitCode: number | null;
11
+ signal: string | null;
12
+ timedOut: boolean;
13
+ stdout: string;
14
+ stderr: string;
15
+ loginUrl: string | null;
16
+ }>;
17
+ export declare function execute(ctx: AdapterExecutionContext): Promise<AdapterExecutionResult>;
18
+ //# sourceMappingURL=execute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/server/execute.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAuNlG,wBAAsB,cAAc,CAAC,KAAK,EAAE;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvE;;;;;;;GA4BA;AAED,wBAAsB,OAAO,CAAC,GAAG,EAAE,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAgQ3F"}
@@ -0,0 +1,385 @@
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, buildPaperclipEnv, redactEnvForLogs, ensureAbsoluteDirectory, ensureCommandResolvable, ensurePathInEnv, renderTemplate, runChildProcess, } from "@paperclipai/adapter-utils/server-utils";
6
+ import { parseClaudeStreamJson, describeClaudeFailure, detectClaudeLoginRequired, isClaudeMaxTurnsResult, isClaudeUnknownSessionError, } from "./parse.js";
7
+ const PAPERCLIP_SKILLS_DIR = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../../../../../skills");
8
+ /**
9
+ * Create a tmpdir with `.claude/skills/` containing symlinks to skills from
10
+ * the repo's `skills/` directory, so `--add-dir` makes Claude Code discover
11
+ * them as proper registered skills.
12
+ */
13
+ async function buildSkillsDir() {
14
+ const tmp = await fs.mkdtemp(path.join(os.tmpdir(), "paperclip-skills-"));
15
+ const target = path.join(tmp, ".claude", "skills");
16
+ await fs.mkdir(target, { recursive: true });
17
+ const entries = await fs.readdir(PAPERCLIP_SKILLS_DIR, { withFileTypes: true });
18
+ for (const entry of entries) {
19
+ if (entry.isDirectory()) {
20
+ await fs.symlink(path.join(PAPERCLIP_SKILLS_DIR, entry.name), path.join(target, entry.name));
21
+ }
22
+ }
23
+ return tmp;
24
+ }
25
+ function buildLoginResult(input) {
26
+ return {
27
+ exitCode: input.proc.exitCode,
28
+ signal: input.proc.signal,
29
+ timedOut: input.proc.timedOut,
30
+ stdout: input.proc.stdout,
31
+ stderr: input.proc.stderr,
32
+ loginUrl: input.loginUrl,
33
+ };
34
+ }
35
+ function hasNonEmptyEnvValue(env, key) {
36
+ const raw = env[key];
37
+ return typeof raw === "string" && raw.trim().length > 0;
38
+ }
39
+ function resolveClaudeBillingType(env) {
40
+ // Claude uses API-key auth when ANTHROPIC_API_KEY is present; otherwise rely on local login/session auth.
41
+ return hasNonEmptyEnvValue(env, "ANTHROPIC_API_KEY") ? "api" : "subscription";
42
+ }
43
+ async function buildClaudeRuntimeConfig(input) {
44
+ const { runId, agent, config, context, authToken } = input;
45
+ const command = asString(config.command, "claude");
46
+ const workspaceContext = parseObject(context.paperclipWorkspace);
47
+ const workspaceCwd = asString(workspaceContext.cwd, "");
48
+ const workspaceSource = asString(workspaceContext.source, "");
49
+ const workspaceId = asString(workspaceContext.workspaceId, "") || null;
50
+ const workspaceRepoUrl = asString(workspaceContext.repoUrl, "") || null;
51
+ const workspaceRepoRef = asString(workspaceContext.repoRef, "") || null;
52
+ const workspaceHints = Array.isArray(context.paperclipWorkspaces)
53
+ ? context.paperclipWorkspaces.filter((value) => typeof value === "object" && value !== null)
54
+ : [];
55
+ const configuredCwd = asString(config.cwd, "");
56
+ const useConfiguredInsteadOfAgentHome = workspaceSource === "agent_home" && configuredCwd.length > 0;
57
+ const effectiveWorkspaceCwd = useConfiguredInsteadOfAgentHome ? "" : workspaceCwd;
58
+ const cwd = effectiveWorkspaceCwd || configuredCwd || process.cwd();
59
+ await ensureAbsoluteDirectory(cwd, { createIfMissing: true });
60
+ const envConfig = parseObject(config.env);
61
+ const hasExplicitApiKey = typeof envConfig.PAPERCLIP_API_KEY === "string" && envConfig.PAPERCLIP_API_KEY.trim().length > 0;
62
+ const env = { ...buildPaperclipEnv(agent) };
63
+ env.PAPERCLIP_RUN_ID = runId;
64
+ const wakeTaskId = (typeof context.taskId === "string" && context.taskId.trim().length > 0 && context.taskId.trim()) ||
65
+ (typeof context.issueId === "string" && context.issueId.trim().length > 0 && context.issueId.trim()) ||
66
+ null;
67
+ const wakeReason = typeof context.wakeReason === "string" && context.wakeReason.trim().length > 0
68
+ ? context.wakeReason.trim()
69
+ : null;
70
+ const wakeCommentId = (typeof context.wakeCommentId === "string" && context.wakeCommentId.trim().length > 0 && context.wakeCommentId.trim()) ||
71
+ (typeof context.commentId === "string" && context.commentId.trim().length > 0 && context.commentId.trim()) ||
72
+ null;
73
+ const approvalId = typeof context.approvalId === "string" && context.approvalId.trim().length > 0
74
+ ? context.approvalId.trim()
75
+ : null;
76
+ const approvalStatus = typeof context.approvalStatus === "string" && context.approvalStatus.trim().length > 0
77
+ ? context.approvalStatus.trim()
78
+ : null;
79
+ const linkedIssueIds = Array.isArray(context.issueIds)
80
+ ? context.issueIds.filter((value) => typeof value === "string" && value.trim().length > 0)
81
+ : [];
82
+ if (wakeTaskId) {
83
+ env.PAPERCLIP_TASK_ID = wakeTaskId;
84
+ }
85
+ if (wakeReason) {
86
+ env.PAPERCLIP_WAKE_REASON = wakeReason;
87
+ }
88
+ if (wakeCommentId) {
89
+ env.PAPERCLIP_WAKE_COMMENT_ID = wakeCommentId;
90
+ }
91
+ if (approvalId) {
92
+ env.PAPERCLIP_APPROVAL_ID = approvalId;
93
+ }
94
+ if (approvalStatus) {
95
+ env.PAPERCLIP_APPROVAL_STATUS = approvalStatus;
96
+ }
97
+ if (linkedIssueIds.length > 0) {
98
+ env.PAPERCLIP_LINKED_ISSUE_IDS = linkedIssueIds.join(",");
99
+ }
100
+ if (effectiveWorkspaceCwd) {
101
+ env.PAPERCLIP_WORKSPACE_CWD = effectiveWorkspaceCwd;
102
+ }
103
+ if (workspaceSource) {
104
+ env.PAPERCLIP_WORKSPACE_SOURCE = workspaceSource;
105
+ }
106
+ if (workspaceId) {
107
+ env.PAPERCLIP_WORKSPACE_ID = workspaceId;
108
+ }
109
+ if (workspaceRepoUrl) {
110
+ env.PAPERCLIP_WORKSPACE_REPO_URL = workspaceRepoUrl;
111
+ }
112
+ if (workspaceRepoRef) {
113
+ env.PAPERCLIP_WORKSPACE_REPO_REF = workspaceRepoRef;
114
+ }
115
+ if (workspaceHints.length > 0) {
116
+ env.PAPERCLIP_WORKSPACES_JSON = JSON.stringify(workspaceHints);
117
+ }
118
+ for (const [key, value] of Object.entries(envConfig)) {
119
+ if (typeof value === "string")
120
+ env[key] = value;
121
+ }
122
+ if (!hasExplicitApiKey && authToken) {
123
+ env.PAPERCLIP_API_KEY = authToken;
124
+ }
125
+ const runtimeEnv = ensurePathInEnv({ ...process.env, ...env });
126
+ await ensureCommandResolvable(command, cwd, runtimeEnv);
127
+ const timeoutSec = asNumber(config.timeoutSec, 0);
128
+ const graceSec = asNumber(config.graceSec, 20);
129
+ const extraArgs = (() => {
130
+ const fromExtraArgs = asStringArray(config.extraArgs);
131
+ if (fromExtraArgs.length > 0)
132
+ return fromExtraArgs;
133
+ return asStringArray(config.args);
134
+ })();
135
+ return {
136
+ command,
137
+ cwd,
138
+ workspaceId,
139
+ workspaceRepoUrl,
140
+ workspaceRepoRef,
141
+ env,
142
+ timeoutSec,
143
+ graceSec,
144
+ extraArgs,
145
+ };
146
+ }
147
+ export async function runClaudeLogin(input) {
148
+ const onLog = input.onLog ?? (async () => { });
149
+ const runtime = await buildClaudeRuntimeConfig({
150
+ runId: input.runId,
151
+ agent: input.agent,
152
+ config: input.config,
153
+ context: input.context ?? {},
154
+ authToken: input.authToken,
155
+ });
156
+ const proc = await runChildProcess(input.runId, runtime.command, ["login"], {
157
+ cwd: runtime.cwd,
158
+ env: runtime.env,
159
+ timeoutSec: runtime.timeoutSec,
160
+ graceSec: runtime.graceSec,
161
+ onLog,
162
+ });
163
+ const loginMeta = detectClaudeLoginRequired({
164
+ parsed: null,
165
+ stdout: proc.stdout,
166
+ stderr: proc.stderr,
167
+ });
168
+ return buildLoginResult({
169
+ proc,
170
+ loginUrl: loginMeta.loginUrl,
171
+ });
172
+ }
173
+ export async function execute(ctx) {
174
+ const { runId, agent, runtime, config, context, onLog, onMeta, authToken } = ctx;
175
+ const promptTemplate = asString(config.promptTemplate, "You are agent {{agent.id}} ({{agent.name}}). Continue your Paperclip work.");
176
+ const model = asString(config.model, "");
177
+ const effort = asString(config.effort, "");
178
+ const chrome = asBoolean(config.chrome, false);
179
+ const maxTurns = asNumber(config.maxTurnsPerRun, 0);
180
+ const dangerouslySkipPermissions = asBoolean(config.dangerouslySkipPermissions, false);
181
+ const instructionsFilePath = asString(config.instructionsFilePath, "").trim();
182
+ const instructionsFileDir = instructionsFilePath ? `${path.dirname(instructionsFilePath)}/` : "";
183
+ const commandNotes = instructionsFilePath
184
+ ? [
185
+ `Injected agent instructions via --append-system-prompt-file ${instructionsFilePath} (with path directive appended)`,
186
+ ]
187
+ : [];
188
+ const runtimeConfig = await buildClaudeRuntimeConfig({
189
+ runId,
190
+ agent,
191
+ config,
192
+ context,
193
+ authToken,
194
+ });
195
+ const { command, cwd, workspaceId, workspaceRepoUrl, workspaceRepoRef, env, timeoutSec, graceSec, extraArgs, } = runtimeConfig;
196
+ const billingType = resolveClaudeBillingType(env);
197
+ const skillsDir = await buildSkillsDir();
198
+ // When instructionsFilePath is configured, create a combined temp file that
199
+ // includes both the file content and the path directive, so we only need
200
+ // --append-system-prompt-file (Claude CLI forbids using both flags together).
201
+ let effectiveInstructionsFilePath = instructionsFilePath;
202
+ if (instructionsFilePath) {
203
+ const instructionsContent = await fs.readFile(instructionsFilePath, "utf-8");
204
+ const pathDirective = `\nThe above agent instructions were loaded from ${instructionsFilePath}. Resolve any relative file references from ${instructionsFileDir}.`;
205
+ const combinedPath = path.join(skillsDir, "agent-instructions.md");
206
+ await fs.writeFile(combinedPath, instructionsContent + pathDirective, "utf-8");
207
+ effectiveInstructionsFilePath = combinedPath;
208
+ }
209
+ const runtimeSessionParams = parseObject(runtime.sessionParams);
210
+ const runtimeSessionId = asString(runtimeSessionParams.sessionId, runtime.sessionId ?? "");
211
+ const runtimeSessionCwd = asString(runtimeSessionParams.cwd, "");
212
+ const canResumeSession = runtimeSessionId.length > 0 &&
213
+ (runtimeSessionCwd.length === 0 || path.resolve(runtimeSessionCwd) === path.resolve(cwd));
214
+ const sessionId = canResumeSession ? runtimeSessionId : null;
215
+ if (runtimeSessionId && !canResumeSession) {
216
+ await onLog("stderr", `[paperclip] Claude session "${runtimeSessionId}" was saved for cwd "${runtimeSessionCwd}" and will not be resumed in "${cwd}".\n`);
217
+ }
218
+ const prompt = renderTemplate(promptTemplate, {
219
+ agentId: agent.id,
220
+ companyId: agent.companyId,
221
+ runId,
222
+ company: { id: agent.companyId },
223
+ agent,
224
+ run: { id: runId, source: "on_demand" },
225
+ context,
226
+ });
227
+ const buildClaudeArgs = (resumeSessionId) => {
228
+ const args = ["--print", "-", "--output-format", "stream-json", "--verbose"];
229
+ if (resumeSessionId)
230
+ args.push("--resume", resumeSessionId);
231
+ if (dangerouslySkipPermissions)
232
+ args.push("--dangerously-skip-permissions");
233
+ if (chrome)
234
+ args.push("--chrome");
235
+ if (model)
236
+ args.push("--model", model);
237
+ if (effort)
238
+ args.push("--effort", effort);
239
+ if (maxTurns > 0)
240
+ args.push("--max-turns", String(maxTurns));
241
+ if (effectiveInstructionsFilePath) {
242
+ args.push("--append-system-prompt-file", effectiveInstructionsFilePath);
243
+ }
244
+ args.push("--add-dir", skillsDir);
245
+ if (extraArgs.length > 0)
246
+ args.push(...extraArgs);
247
+ return args;
248
+ };
249
+ const parseFallbackErrorMessage = (proc) => {
250
+ const stderrLine = proc.stderr
251
+ .split(/\r?\n/)
252
+ .map((line) => line.trim())
253
+ .find(Boolean) ?? "";
254
+ if ((proc.exitCode ?? 0) === 0) {
255
+ return "Failed to parse claude JSON output";
256
+ }
257
+ return stderrLine
258
+ ? `Claude exited with code ${proc.exitCode ?? -1}: ${stderrLine}`
259
+ : `Claude exited with code ${proc.exitCode ?? -1}`;
260
+ };
261
+ const runAttempt = async (resumeSessionId) => {
262
+ const args = buildClaudeArgs(resumeSessionId);
263
+ if (onMeta) {
264
+ await onMeta({
265
+ adapterType: "claude_local",
266
+ command,
267
+ cwd,
268
+ commandArgs: args,
269
+ commandNotes,
270
+ env: redactEnvForLogs(env),
271
+ prompt,
272
+ context,
273
+ });
274
+ }
275
+ const proc = await runChildProcess(runId, command, args, {
276
+ cwd,
277
+ env,
278
+ stdin: prompt,
279
+ timeoutSec,
280
+ graceSec,
281
+ onLog,
282
+ });
283
+ const parsedStream = parseClaudeStreamJson(proc.stdout);
284
+ const parsed = parsedStream.resultJson ?? parseJson(proc.stdout);
285
+ return { proc, parsedStream, parsed };
286
+ };
287
+ const toAdapterResult = (attempt, opts) => {
288
+ const { proc, parsedStream, parsed } = attempt;
289
+ const loginMeta = detectClaudeLoginRequired({
290
+ parsed,
291
+ stdout: proc.stdout,
292
+ stderr: proc.stderr,
293
+ });
294
+ const errorMeta = loginMeta.loginUrl != null
295
+ ? {
296
+ loginUrl: loginMeta.loginUrl,
297
+ }
298
+ : undefined;
299
+ if (proc.timedOut) {
300
+ return {
301
+ exitCode: proc.exitCode,
302
+ signal: proc.signal,
303
+ timedOut: true,
304
+ errorMessage: `Timed out after ${timeoutSec}s`,
305
+ errorCode: "timeout",
306
+ errorMeta,
307
+ clearSession: Boolean(opts.clearSessionOnMissingSession),
308
+ };
309
+ }
310
+ if (!parsed) {
311
+ return {
312
+ exitCode: proc.exitCode,
313
+ signal: proc.signal,
314
+ timedOut: false,
315
+ errorMessage: parseFallbackErrorMessage(proc),
316
+ errorCode: loginMeta.requiresLogin ? "claude_auth_required" : null,
317
+ errorMeta,
318
+ resultJson: {
319
+ stdout: proc.stdout,
320
+ stderr: proc.stderr,
321
+ },
322
+ clearSession: Boolean(opts.clearSessionOnMissingSession),
323
+ };
324
+ }
325
+ const usage = parsedStream.usage ??
326
+ (() => {
327
+ const usageObj = parseObject(parsed.usage);
328
+ return {
329
+ inputTokens: asNumber(usageObj.input_tokens, 0),
330
+ cachedInputTokens: asNumber(usageObj.cache_read_input_tokens, 0),
331
+ outputTokens: asNumber(usageObj.output_tokens, 0),
332
+ };
333
+ })();
334
+ const resolvedSessionId = parsedStream.sessionId ??
335
+ (asString(parsed.session_id, opts.fallbackSessionId ?? "") || opts.fallbackSessionId);
336
+ const resolvedSessionParams = resolvedSessionId
337
+ ? {
338
+ sessionId: resolvedSessionId,
339
+ cwd,
340
+ ...(workspaceId ? { workspaceId } : {}),
341
+ ...(workspaceRepoUrl ? { repoUrl: workspaceRepoUrl } : {}),
342
+ ...(workspaceRepoRef ? { repoRef: workspaceRepoRef } : {}),
343
+ }
344
+ : null;
345
+ const clearSessionForMaxTurns = isClaudeMaxTurnsResult(parsed);
346
+ return {
347
+ exitCode: proc.exitCode,
348
+ signal: proc.signal,
349
+ timedOut: false,
350
+ errorMessage: (proc.exitCode ?? 0) === 0
351
+ ? null
352
+ : describeClaudeFailure(parsed) ?? `Claude exited with code ${proc.exitCode ?? -1}`,
353
+ errorCode: loginMeta.requiresLogin ? "claude_auth_required" : null,
354
+ errorMeta,
355
+ usage,
356
+ sessionId: resolvedSessionId,
357
+ sessionParams: resolvedSessionParams,
358
+ sessionDisplayId: resolvedSessionId,
359
+ provider: "anthropic",
360
+ model: parsedStream.model || asString(parsed.model, model),
361
+ billingType,
362
+ costUsd: parsedStream.costUsd ?? asNumber(parsed.total_cost_usd, 0),
363
+ resultJson: parsed,
364
+ summary: parsedStream.summary || asString(parsed.result, ""),
365
+ clearSession: clearSessionForMaxTurns || Boolean(opts.clearSessionOnMissingSession && !resolvedSessionId),
366
+ };
367
+ };
368
+ try {
369
+ const initial = await runAttempt(sessionId ?? null);
370
+ if (sessionId &&
371
+ !initial.proc.timedOut &&
372
+ (initial.proc.exitCode ?? 0) !== 0 &&
373
+ initial.parsed &&
374
+ isClaudeUnknownSessionError(initial.parsed)) {
375
+ await onLog("stderr", `[paperclip] Claude resume session "${sessionId}" is unavailable; retrying with a fresh session.\n`);
376
+ const retry = await runAttempt(null);
377
+ return toAdapterResult(retry, { fallbackSessionId: null, clearSessionOnMissingSession: true });
378
+ }
379
+ return toAdapterResult(initial, { fallbackSessionId: runtimeSessionId || runtime.sessionId });
380
+ }
381
+ finally {
382
+ fs.rm(skillsDir, { recursive: true, force: true }).catch(() => { });
383
+ }
384
+ }
385
+ //# 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,6 @@
1
+ export { execute, runClaudeLogin } from "./execute.js";
2
+ export { testEnvironment } from "./test.js";
3
+ export { parseClaudeStreamJson, describeClaudeFailure, isClaudeMaxTurnsResult, isClaudeUnknownSessionError, } from "./parse.js";
4
+ import type { AdapterSessionCodec } from "@paperclipai/adapter-utils";
5
+ export declare const sessionCodec: AdapterSessionCodec;
6
+ //# 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,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAMtE,eAAO,MAAM,YAAY,EAAE,mBA4C1B,CAAC"}