@tickernelz/paperclip-pro-adapter-claude-local 2026.925.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 (206) hide show
  1. package/LICENSE +22 -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 +141 -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 +13 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +90 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/index.test.d.ts +2 -0
  19. package/dist/index.test.d.ts.map +1 -0
  20. package/dist/index.test.js +35 -0
  21. package/dist/index.test.js.map +1 -0
  22. package/dist/server/acp.auth.test.d.ts +2 -0
  23. package/dist/server/acp.auth.test.d.ts.map +1 -0
  24. package/dist/server/acp.auth.test.js +581 -0
  25. package/dist/server/acp.auth.test.js.map +1 -0
  26. package/dist/server/acp.d.ts +68 -0
  27. package/dist/server/acp.d.ts.map +1 -0
  28. package/dist/server/acp.js +779 -0
  29. package/dist/server/acp.js.map +1 -0
  30. package/dist/server/acp.quota.test.d.ts +2 -0
  31. package/dist/server/acp.quota.test.d.ts.map +1 -0
  32. package/dist/server/acp.quota.test.js +114 -0
  33. package/dist/server/acp.quota.test.js.map +1 -0
  34. package/dist/server/acp.test.d.ts +2 -0
  35. package/dist/server/acp.test.d.ts.map +1 -0
  36. package/dist/server/acp.test.js +1153 -0
  37. package/dist/server/acp.test.js.map +1 -0
  38. package/dist/server/auth-check.d.ts +8 -0
  39. package/dist/server/auth-check.d.ts.map +1 -0
  40. package/dist/server/auth-check.js +8 -0
  41. package/dist/server/auth-check.js.map +1 -0
  42. package/dist/server/claude-config.d.ts +49 -0
  43. package/dist/server/claude-config.d.ts.map +1 -0
  44. package/dist/server/claude-config.js +279 -0
  45. package/dist/server/claude-config.js.map +1 -0
  46. package/dist/server/claude-config.test.d.ts +2 -0
  47. package/dist/server/claude-config.test.d.ts.map +1 -0
  48. package/dist/server/claude-config.test.js +197 -0
  49. package/dist/server/claude-config.test.js.map +1 -0
  50. package/dist/server/cli-capabilities.d.ts +26 -0
  51. package/dist/server/cli-capabilities.d.ts.map +1 -0
  52. package/dist/server/cli-capabilities.js +115 -0
  53. package/dist/server/cli-capabilities.js.map +1 -0
  54. package/dist/server/config-schema.d.ts +3 -0
  55. package/dist/server/config-schema.d.ts.map +1 -0
  56. package/dist/server/config-schema.js +67 -0
  57. package/dist/server/config-schema.js.map +1 -0
  58. package/dist/server/engine-availability.test.d.ts +2 -0
  59. package/dist/server/engine-availability.test.d.ts.map +1 -0
  60. package/dist/server/engine-availability.test.js +41 -0
  61. package/dist/server/engine-availability.test.js.map +1 -0
  62. package/dist/server/execute.acp-fallback.test.d.ts +2 -0
  63. package/dist/server/execute.acp-fallback.test.d.ts.map +1 -0
  64. package/dist/server/execute.acp-fallback.test.js +104 -0
  65. package/dist/server/execute.acp-fallback.test.js.map +1 -0
  66. package/dist/server/execute.d.ts +23 -0
  67. package/dist/server/execute.d.ts.map +1 -0
  68. package/dist/server/execute.js +1089 -0
  69. package/dist/server/execute.js.map +1 -0
  70. package/dist/server/execute.remote.test.d.ts +2 -0
  71. package/dist/server/execute.remote.test.d.ts.map +1 -0
  72. package/dist/server/execute.remote.test.js +484 -0
  73. package/dist/server/execute.remote.test.js.map +1 -0
  74. package/dist/server/index.d.ts +16 -0
  75. package/dist/server/index.d.ts.map +1 -0
  76. package/dist/server/index.js +84 -0
  77. package/dist/server/index.js.map +1 -0
  78. package/dist/server/models.d.ts +13 -0
  79. package/dist/server/models.d.ts.map +1 -0
  80. package/dist/server/models.js +153 -0
  81. package/dist/server/models.js.map +1 -0
  82. package/dist/server/parse.d.ts +58 -0
  83. package/dist/server/parse.d.ts.map +1 -0
  84. package/dist/server/parse.js +459 -0
  85. package/dist/server/parse.js.map +1 -0
  86. package/dist/server/parse.test.d.ts +2 -0
  87. package/dist/server/parse.test.d.ts.map +1 -0
  88. package/dist/server/parse.test.js +419 -0
  89. package/dist/server/parse.test.js.map +1 -0
  90. package/dist/server/permissions.d.ts +14 -0
  91. package/dist/server/permissions.d.ts.map +1 -0
  92. package/dist/server/permissions.js +13 -0
  93. package/dist/server/permissions.js.map +1 -0
  94. package/dist/server/permissions.test.d.ts +2 -0
  95. package/dist/server/permissions.test.d.ts.map +1 -0
  96. package/dist/server/permissions.test.js +22 -0
  97. package/dist/server/permissions.test.js.map +1 -0
  98. package/dist/server/probe-diagnostics.d.ts +102 -0
  99. package/dist/server/probe-diagnostics.d.ts.map +1 -0
  100. package/dist/server/probe-diagnostics.js +140 -0
  101. package/dist/server/probe-diagnostics.js.map +1 -0
  102. package/dist/server/probe-diagnostics.test.d.ts +2 -0
  103. package/dist/server/probe-diagnostics.test.d.ts.map +1 -0
  104. package/dist/server/probe-diagnostics.test.js +114 -0
  105. package/dist/server/probe-diagnostics.test.js.map +1 -0
  106. package/dist/server/probe-env.d.ts +42 -0
  107. package/dist/server/probe-env.d.ts.map +1 -0
  108. package/dist/server/probe-env.js +149 -0
  109. package/dist/server/probe-env.js.map +1 -0
  110. package/dist/server/probe-env.test.d.ts +2 -0
  111. package/dist/server/probe-env.test.d.ts.map +1 -0
  112. package/dist/server/probe-env.test.js +135 -0
  113. package/dist/server/probe-env.test.js.map +1 -0
  114. package/dist/server/probe-redaction.test.d.ts +2 -0
  115. package/dist/server/probe-redaction.test.d.ts.map +1 -0
  116. package/dist/server/probe-redaction.test.js +86 -0
  117. package/dist/server/probe-redaction.test.js.map +1 -0
  118. package/dist/server/prompt-cache.d.ts +17 -0
  119. package/dist/server/prompt-cache.d.ts.map +1 -0
  120. package/dist/server/prompt-cache.js +126 -0
  121. package/dist/server/prompt-cache.js.map +1 -0
  122. package/dist/server/quota-keychain.test.d.ts +2 -0
  123. package/dist/server/quota-keychain.test.d.ts.map +1 -0
  124. package/dist/server/quota-keychain.test.js +83 -0
  125. package/dist/server/quota-keychain.test.js.map +1 -0
  126. package/dist/server/quota.d.ts +30 -0
  127. package/dist/server/quota.d.ts.map +1 -0
  128. package/dist/server/quota.js +543 -0
  129. package/dist/server/quota.js.map +1 -0
  130. package/dist/server/setup-token-characterization.test.d.ts +2 -0
  131. package/dist/server/setup-token-characterization.test.d.ts.map +1 -0
  132. package/dist/server/setup-token-characterization.test.js +123 -0
  133. package/dist/server/setup-token-characterization.test.js.map +1 -0
  134. package/dist/server/setup-token-parse.d.ts +47 -0
  135. package/dist/server/setup-token-parse.d.ts.map +1 -0
  136. package/dist/server/setup-token-parse.js +506 -0
  137. package/dist/server/setup-token-parse.js.map +1 -0
  138. package/dist/server/setup-token-parse.test.d.ts +2 -0
  139. package/dist/server/setup-token-parse.test.d.ts.map +1 -0
  140. package/dist/server/setup-token-parse.test.js +587 -0
  141. package/dist/server/setup-token-parse.test.js.map +1 -0
  142. package/dist/server/setup-token-runner.d.ts +115 -0
  143. package/dist/server/setup-token-runner.d.ts.map +1 -0
  144. package/dist/server/setup-token-runner.js +317 -0
  145. package/dist/server/setup-token-runner.js.map +1 -0
  146. package/dist/server/setup-token-runner.test.d.ts +2 -0
  147. package/dist/server/setup-token-runner.test.d.ts.map +1 -0
  148. package/dist/server/setup-token-runner.test.js +336 -0
  149. package/dist/server/setup-token-runner.test.js.map +1 -0
  150. package/dist/server/skills.d.ts +8 -0
  151. package/dist/server/skills.d.ts.map +1 -0
  152. package/dist/server/skills.js +42 -0
  153. package/dist/server/skills.js.map +1 -0
  154. package/dist/server/test.d.ts +3 -0
  155. package/dist/server/test.d.ts.map +1 -0
  156. package/dist/server/test.js +434 -0
  157. package/dist/server/test.js.map +1 -0
  158. package/dist/server/test.probe.test.d.ts +2 -0
  159. package/dist/server/test.probe.test.d.ts.map +1 -0
  160. package/dist/server/test.probe.test.js +608 -0
  161. package/dist/server/test.probe.test.js.map +1 -0
  162. package/dist/server/test.remote.test.d.ts +2 -0
  163. package/dist/server/test.remote.test.d.ts.map +1 -0
  164. package/dist/server/test.remote.test.js +149 -0
  165. package/dist/server/test.remote.test.js.map +1 -0
  166. package/dist/ui/build-config.d.ts +3 -0
  167. package/dist/ui/build-config.d.ts.map +1 -0
  168. package/dist/ui/build-config.js +76 -0
  169. package/dist/ui/build-config.js.map +1 -0
  170. package/dist/ui/build-config.test.d.ts +2 -0
  171. package/dist/ui/build-config.test.d.ts.map +1 -0
  172. package/dist/ui/build-config.test.js +68 -0
  173. package/dist/ui/build-config.test.js.map +1 -0
  174. package/dist/ui/index.d.ts +3 -0
  175. package/dist/ui/index.d.ts.map +1 -0
  176. package/dist/ui/index.js +3 -0
  177. package/dist/ui/index.js.map +1 -0
  178. package/dist/ui/parse-stdout.d.ts +3 -0
  179. package/dist/ui/parse-stdout.d.ts.map +1 -0
  180. package/dist/ui/parse-stdout.js +153 -0
  181. package/dist/ui/parse-stdout.js.map +1 -0
  182. package/package.json +63 -0
  183. package/skills/agentmail/SKILL.md +70 -0
  184. package/skills/paperclip/SKILL.md +712 -0
  185. package/skills/paperclip/references/api-reference.md +1675 -0
  186. package/skills/paperclip/references/artifacts.md +158 -0
  187. package/skills/paperclip/references/cases.md +295 -0
  188. package/skills/paperclip/references/company-skills.md +266 -0
  189. package/skills/paperclip/references/issue-workspaces.md +80 -0
  190. package/skills/paperclip/references/routines.md +231 -0
  191. package/skills/paperclip/references/workflows.md +141 -0
  192. package/skills/paperclip/scripts/paperclip-upload-artifact.sh +592 -0
  193. package/skills/paperclip-board/SKILL.md +619 -0
  194. package/skills/paperclip-converting-plans-to-tasks/SKILL.md +60 -0
  195. package/skills/paperclip-create-agent/SKILL.md +179 -0
  196. package/skills/paperclip-create-agent/references/agent-instruction-templates.md +123 -0
  197. package/skills/paperclip-create-agent/references/agents/coder.md +64 -0
  198. package/skills/paperclip-create-agent/references/agents/qa.md +88 -0
  199. package/skills/paperclip-create-agent/references/agents/securityengineer.md +135 -0
  200. package/skills/paperclip-create-agent/references/agents/uxdesigner.md +115 -0
  201. package/skills/paperclip-create-agent/references/api-reference.md +110 -0
  202. package/skills/paperclip-create-agent/references/baseline-role-guide.md +168 -0
  203. package/skills/paperclip-create-agent/references/draft-review-checklist.md +95 -0
  204. package/skills/para-memory-files/SKILL.md +100 -0
  205. package/skills/para-memory-files/references/schemas.md +35 -0
  206. package/skills/slack/SKILL.md +65 -0
@@ -0,0 +1,434 @@
1
+ import { asString, asBoolean, asNumber, asStringArray, parseObject, ensurePathInEnv, } from "@tickernelz/paperclip-pro-adapter-utils/server-utils";
2
+ import { ensureAdapterExecutionTargetCommandResolvable, ensureAdapterExecutionTargetDirectory, runAdapterExecutionTargetProcess, resolveAdapterExecutionTargetCwd, resolveAdapterExecutionTargetCommandForLogs, } from "@tickernelz/paperclip-pro-adapter-utils/execution-target";
3
+ import { detectClaudeLoginRequired, isClaudeProviderQuotaError, isClaudeTransientUpstreamError, parseClaudeStreamJson, } from "./parse.js";
4
+ import { claudeCliVersionAtLeast, claudeCommandLooksLike, claudeCommandSupportsEffortFlag, minimumClaudeCliVersionForModel, readClaudeCommandVersion, } from "./cli-capabilities.js";
5
+ import { isBedrockModelId } from "./models.js";
6
+ import { buildClaudeProbePermissionArgs, claudeSandboxPermissionEnv } from "./permissions.js";
7
+ import { prepareSandboxClaudeProbeRuntime } from "./claude-config.js";
8
+ import { resolveClaudeModel, SANDBOX_INSTALL_COMMAND } from "../index.js";
9
+ import { resolveClaudeExecutionEngineForRun, testClaudeAcpEnvironment } from "./acp.js";
10
+ import { ADAPTER_AUTH_MISSING_CHECK_CODE } from "./auth-check.js";
11
+ import { buildAdapterTestTargetCheck, buildClaudeLoginRequiredHint, logSandboxProbeDiagnostic, } from "./probe-diagnostics.js";
12
+ import { buildLocalAdapterTestProbeEnv } from "./probe-env.js";
13
+ function summarizeStatus(checks) {
14
+ if (checks.some((check) => check.level === "error"))
15
+ return "fail";
16
+ if (checks.some((check) => check.level === "warn"))
17
+ return "warn";
18
+ return "pass";
19
+ }
20
+ function isNonEmpty(value) {
21
+ return typeof value === "string" && value.trim().length > 0;
22
+ }
23
+ function localExecutablesMatch(trustedCommand, runtimeCommand) {
24
+ if (!trustedCommand || !runtimeCommand)
25
+ return false;
26
+ return trustedCommand === runtimeCommand;
27
+ }
28
+ export async function testEnvironment(ctx) {
29
+ const engineSelection = await resolveClaudeExecutionEngineForRun({
30
+ config: parseObject(ctx.config),
31
+ executionTarget: ctx.executionTarget,
32
+ });
33
+ if (engineSelection.unavailableReason) {
34
+ return {
35
+ adapterType: "claude_local",
36
+ status: "fail",
37
+ checks: [{
38
+ code: "adapter_engine_unavailable",
39
+ level: "error",
40
+ message: engineSelection.unavailableReason,
41
+ }],
42
+ testedAt: new Date().toISOString(),
43
+ };
44
+ }
45
+ if (engineSelection.engine === "acp") {
46
+ return testClaudeAcpEnvironment(ctx);
47
+ }
48
+ const checks = [];
49
+ const config = parseObject(ctx.config);
50
+ const command = asString(config.command, "claude");
51
+ const target = ctx.executionTarget ?? null;
52
+ const targetIsRemote = target?.kind === "remote";
53
+ const targetIsSandbox = target?.kind === "remote" && target.transport === "sandbox";
54
+ const cwd = resolveAdapterExecutionTargetCwd(target, asString(config.cwd, ""), process.cwd());
55
+ const runId = `claude-envtest-${Date.now()}-${Math.random().toString(16).slice(2)}`;
56
+ // Always name the target the Test probed, so a pass result never hides which
57
+ // target it checked. A local probe reports the fixed host label.
58
+ checks.push(buildAdapterTestTargetCheck({ targetIsRemote, environmentName: ctx.environmentName }));
59
+ try {
60
+ await ensureAdapterExecutionTargetDirectory(runId, target, cwd, {
61
+ cwd,
62
+ env: {},
63
+ createIfMissing: true,
64
+ });
65
+ checks.push({
66
+ code: "claude_cwd_valid",
67
+ level: "info",
68
+ message: `Working directory is valid: ${cwd}`,
69
+ });
70
+ }
71
+ catch (err) {
72
+ checks.push({
73
+ code: "claude_cwd_invalid",
74
+ level: "error",
75
+ message: err instanceof Error ? err.message : "Invalid working directory",
76
+ detail: cwd,
77
+ });
78
+ }
79
+ const envConfig = parseObject(config.env);
80
+ const env = {};
81
+ for (const [key, value] of Object.entries(envConfig)) {
82
+ if (typeof value === "string")
83
+ env[key] = value;
84
+ }
85
+ // For a local probe, resolve the trusted `claude` executable and a
86
+ // deny-by-default child env from the shared builder, so a hostile caller
87
+ // value can neither select the executable nor reach the child. A remote
88
+ // target keeps the caller command and env; the remote transport owns its own
89
+ // env sanitization.
90
+ const localProbe = targetIsRemote
91
+ ? null
92
+ : await buildLocalAdapterTestProbeEnv({ callerEnv: env, trustedEnv: process.env });
93
+ checks.push(...(await prepareSandboxClaudeProbeRuntime({
94
+ managedAiConnection: Boolean(config.managedAiConnection),
95
+ runId,
96
+ target,
97
+ cwd,
98
+ companyId: ctx.companyId,
99
+ env,
100
+ installCommand: SANDBOX_INSTALL_COMMAND,
101
+ detectCommand: command,
102
+ targetIsRemote,
103
+ targetIsSandbox,
104
+ helloProbeTimeoutSec: asNumber(config.helloProbeTimeoutSec, targetIsSandbox ? 90 : 45),
105
+ })));
106
+ const runtimeEnv = ensurePathInEnv({ ...process.env, ...env });
107
+ let localRuntimeCommand = null;
108
+ try {
109
+ await ensureAdapterExecutionTargetCommandResolvable(command, target, cwd, runtimeEnv);
110
+ if (!targetIsRemote) {
111
+ localRuntimeCommand = await resolveAdapterExecutionTargetCommandForLogs(command, target, cwd, runtimeEnv);
112
+ }
113
+ checks.push({
114
+ code: "claude_command_resolvable",
115
+ level: "info",
116
+ message: `Command is executable: ${command}`,
117
+ });
118
+ }
119
+ catch (err) {
120
+ checks.push({
121
+ code: "claude_command_unresolvable",
122
+ level: "error",
123
+ message: err instanceof Error ? err.message : "Command is not executable",
124
+ detail: command,
125
+ });
126
+ }
127
+ // When probing a remote target, the Paperclip host's process.env does not
128
+ // reflect what the agent will actually see at runtime. Only consider env
129
+ // vars from the adapter config in that case; the probe itself will surface
130
+ // any auth issues on the remote box.
131
+ const considerHostEnv = !targetIsRemote && !config.managedAiConnection;
132
+ const hasBedrock = env.CLAUDE_CODE_USE_BEDROCK === "1" ||
133
+ env.CLAUDE_CODE_USE_BEDROCK === "true" ||
134
+ (considerHostEnv && process.env.CLAUDE_CODE_USE_BEDROCK === "1") ||
135
+ (considerHostEnv && process.env.CLAUDE_CODE_USE_BEDROCK === "true") ||
136
+ isNonEmpty(env.ANTHROPIC_BEDROCK_BASE_URL) ||
137
+ (considerHostEnv && isNonEmpty(process.env.ANTHROPIC_BEDROCK_BASE_URL));
138
+ const configApiKey = env.ANTHROPIC_API_KEY;
139
+ const hostApiKey = considerHostEnv ? process.env.ANTHROPIC_API_KEY : undefined;
140
+ if (hasBedrock) {
141
+ const source = env.CLAUDE_CODE_USE_BEDROCK === "1" ||
142
+ env.CLAUDE_CODE_USE_BEDROCK === "true" ||
143
+ isNonEmpty(env.ANTHROPIC_BEDROCK_BASE_URL)
144
+ ? "adapter config env"
145
+ : "server environment";
146
+ checks.push({
147
+ code: "claude_bedrock_auth",
148
+ level: "info",
149
+ message: "AWS Bedrock auth detected. Claude will use Bedrock for inference.",
150
+ detail: `Detected in ${source}.`,
151
+ hint: "Ensure AWS credentials (AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY or AWS_PROFILE) and AWS_REGION are configured.",
152
+ });
153
+ }
154
+ else if (isNonEmpty(configApiKey) || isNonEmpty(hostApiKey)) {
155
+ const source = isNonEmpty(configApiKey) ? "adapter config env" : "server environment";
156
+ const selectedApiKey = Boolean(config.managedAiConnection) || isNonEmpty(configApiKey);
157
+ checks.push({
158
+ code: "claude_anthropic_api_key_overrides_subscription",
159
+ level: selectedApiKey ? "info" : "warn",
160
+ message: selectedApiKey ? "Using the selected Claude API connection." : "ANTHROPIC_API_KEY is set. Claude will use API-key auth instead of subscription credentials.",
161
+ detail: `Detected in ${source}.`,
162
+ hint: selectedApiKey ? undefined : "Unset ANTHROPIC_API_KEY if you want subscription-based Claude login behavior.",
163
+ });
164
+ }
165
+ else if (isNonEmpty(env.CLAUDE_CODE_OAUTH_TOKEN) ||
166
+ (considerHostEnv && isNonEmpty(process.env.CLAUDE_CODE_OAUTH_TOKEN))) {
167
+ const source = isNonEmpty(env.CLAUDE_CODE_OAUTH_TOKEN)
168
+ ? "configured environment variables"
169
+ : "server environment";
170
+ checks.push({
171
+ code: "claude_oauth_token_configured",
172
+ level: "info",
173
+ message: "CLAUDE_CODE_OAUTH_TOKEN is set. Claude will authenticate with the configured subscription token; no stored login is needed on the execution target.",
174
+ detail: `Detected in ${source}.`,
175
+ });
176
+ }
177
+ else if (!targetIsRemote) {
178
+ checks.push({
179
+ code: "claude_subscription_mode_possible",
180
+ level: "info",
181
+ message: "ANTHROPIC_API_KEY is not set; subscription-based auth can be used if Claude is logged in.",
182
+ });
183
+ }
184
+ const canRunProbe = checks.every((check) => check.code !== "claude_cwd_invalid" &&
185
+ check.code !== "claude_command_unresolvable" &&
186
+ check.code !== "claude_managed_config_dir_failed");
187
+ let configuredModelIsCompatible = true;
188
+ const configuredModel = resolveClaudeModel(config.model, considerHostEnv ? { ...process.env, ...env } : env);
189
+ const minimumCliVersion = claudeCommandLooksLike(command, "claude") &&
190
+ (!hasBedrock || isBedrockModelId(configuredModel))
191
+ ? minimumClaudeCliVersionForModel(configuredModel)
192
+ : null;
193
+ const versionProbeCommand = localProbe?.command ?? (targetIsRemote ? command : null);
194
+ const versionProbeMatchesRuntime = targetIsRemote || localExecutablesMatch(localProbe?.command ?? null, localRuntimeCommand);
195
+ if (canRunProbe &&
196
+ minimumCliVersion &&
197
+ versionProbeCommand &&
198
+ !versionProbeMatchesRuntime) {
199
+ configuredModelIsCompatible = false;
200
+ checks.push({
201
+ code: "claude_cli_version_probe_mismatch",
202
+ level: "warn",
203
+ message: `Skipped ${configuredModel} readiness probing because the runtime PATH selects a different Claude executable than the trusted local Test probe.`,
204
+ hint: `Ensure the runtime-selected Claude Code is ${minimumCliVersion} or newer. Execution will verify that exact executable before launch.`,
205
+ });
206
+ }
207
+ else if (canRunProbe && minimumCliVersion && versionProbeCommand) {
208
+ const versionProbeEnv = localProbe?.env ?? env;
209
+ const detectedCliVersion = await readClaudeCommandVersion({
210
+ runId,
211
+ command: versionProbeCommand,
212
+ target,
213
+ cwd,
214
+ env: versionProbeEnv,
215
+ timeoutSec: 45,
216
+ graceSec: 5,
217
+ });
218
+ if (!detectedCliVersion ||
219
+ !claudeCliVersionAtLeast(detectedCliVersion, minimumCliVersion)) {
220
+ configuredModelIsCompatible = false;
221
+ checks.push({
222
+ code: "claude_cli_version_incompatible",
223
+ level: "error",
224
+ message: `${configuredModel} requires Claude Code ${minimumCliVersion} or newer on the CLI lane.`,
225
+ detail: detectedCliVersion
226
+ ? `Detected Claude Code ${detectedCliVersion}.`
227
+ : "Could not determine the installed Claude Code version.",
228
+ hint: "Upgrade Claude Code or restore the default ACP lane, then retry the Test.",
229
+ });
230
+ }
231
+ }
232
+ if (canRunProbe && configuredModelIsCompatible) {
233
+ if (!claudeCommandLooksLike(command, "claude")) {
234
+ checks.push({
235
+ code: "claude_hello_probe_skipped_custom_command",
236
+ level: "info",
237
+ message: "Skipped hello probe because command is not `claude`.",
238
+ detail: command,
239
+ hint: "Use the `claude` CLI command to run the automatic login and installation probe.",
240
+ });
241
+ }
242
+ else if (localProbe && !localProbe.command) {
243
+ // The trusted server PATH holds no `claude`, so the local probe cannot
244
+ // run. Report a warn, never a silent pass.
245
+ checks.push({
246
+ code: "claude_hello_probe_skipped_unresolved_command",
247
+ level: "warn",
248
+ message: "Skipped the Claude hello probe because `claude` is not installed on the Paperclip host.",
249
+ hint: "Install the `claude` CLI on the Paperclip host, then retry the Test.",
250
+ });
251
+ }
252
+ else {
253
+ const model = configuredModel;
254
+ const effort = asString(config.effort, "").trim();
255
+ const chrome = asBoolean(config.chrome, false);
256
+ const maxTurns = asNumber(config.maxTurnsPerRun, 0);
257
+ const dangerouslySkipPermissions = asBoolean(config.dangerouslySkipPermissions, true);
258
+ Object.assign(env, claudeSandboxPermissionEnv({ dangerouslySkipPermissions, targetIsSandbox }));
259
+ const extraArgs = (() => {
260
+ const fromExtraArgs = asStringArray(config.extraArgs);
261
+ if (fromExtraArgs.length > 0)
262
+ return fromExtraArgs;
263
+ return asStringArray(config.args);
264
+ })();
265
+ let effectiveEffort = effort;
266
+ if (targetIsSandbox && effort) {
267
+ const supportsEffort = await claudeCommandSupportsEffortFlag({
268
+ runId,
269
+ command,
270
+ target,
271
+ cwd,
272
+ env,
273
+ timeoutSec: 45,
274
+ graceSec: 5,
275
+ });
276
+ if (supportsEffort === false) {
277
+ effectiveEffort = "";
278
+ checks.push({
279
+ code: "claude_effort_flag_unsupported",
280
+ level: "warn",
281
+ message: "Claude CLI in the environment does not advertise --effort; the probe omitted the configured reasoning effort.",
282
+ hint: "Upgrade the environment CLI/template to a newer Claude Code release to restore reasoning-effort control.",
283
+ });
284
+ }
285
+ }
286
+ const args = ["--print", "-", "--output-format", "stream-json", "--verbose"];
287
+ if (config.managedAiConnection)
288
+ args.push("--setting-sources", "user");
289
+ args.push(...buildClaudeProbePermissionArgs({
290
+ dangerouslySkipPermissions,
291
+ targetIsRemote,
292
+ localProcessUid: process.getuid?.() ?? null,
293
+ }));
294
+ if (chrome)
295
+ args.push("--chrome");
296
+ // For Bedrock: only pass --model when the ID is a Bedrock-native identifier.
297
+ if (model && (!hasBedrock || isBedrockModelId(model))) {
298
+ args.push("--model", model);
299
+ }
300
+ if (effectiveEffort)
301
+ args.push("--effort", effectiveEffort);
302
+ if (maxTurns > 0)
303
+ args.push("--max-turns", String(maxTurns));
304
+ if (extraArgs.length > 0)
305
+ args.push(...extraArgs);
306
+ // Sandbox bridges still add lease warmup and transport overhead, but
307
+ // the standard-2 Cloudflare tier now probes fast enough that a 90s
308
+ // budget leaves headroom without masking real hangs.
309
+ const helloProbeTimeoutSec = Math.max(1, asNumber(config.helloProbeTimeoutSec, targetIsSandbox ? 90 : 45));
310
+ // A local probe uses the trusted resolved executable and the
311
+ // deny-by-default child env. A remote probe uses the caller command and
312
+ // env, because the remote transport owns its own env sanitization.
313
+ const probeCommand = localProbe?.command ?? command;
314
+ const probeEnv = localProbe ? localProbe.env : env;
315
+ const probe = await runAdapterExecutionTargetProcess(runId, target, probeCommand, args, {
316
+ cwd,
317
+ env: probeEnv,
318
+ timeoutSec: helloProbeTimeoutSec,
319
+ graceSec: 5,
320
+ stdin: "Respond with hello.",
321
+ onLog: async () => { },
322
+ });
323
+ const parsedStream = parseClaudeStreamJson(probe.stdout);
324
+ const parsed = parsedStream.resultJson;
325
+ const loginMeta = detectClaudeLoginRequired({
326
+ parsed,
327
+ stdout: probe.stdout,
328
+ stderr: probe.stderr,
329
+ });
330
+ if (probe.timedOut) {
331
+ checks.push({
332
+ code: "claude_hello_probe_timed_out",
333
+ level: "warn",
334
+ message: "Claude hello probe timed out.",
335
+ hint: "Retry the probe. If this persists, verify Claude can run `Respond with hello` from this directory manually.",
336
+ });
337
+ }
338
+ else if (loginMeta.requiresLogin) {
339
+ // The raw probe output is untrusted. Log only the fixed context and the
340
+ // allowlisted classification. Return only a fixed public message and a
341
+ // safe hint.
342
+ logSandboxProbeDiagnostic("Claude CLI hello probe reported login required", "auth_required");
343
+ checks.push({
344
+ code: "claude_hello_probe_auth_required",
345
+ level: "warn",
346
+ message: "Claude CLI is installed, but login is required.",
347
+ hint: buildClaudeLoginRequiredHint(loginMeta.loginUrl),
348
+ });
349
+ if (targetIsSandbox) {
350
+ // Emit the neutral canonical check so the user interface can decide
351
+ // login eligibility from a stable code. The user interface does not
352
+ // read the message text or the top-level status.
353
+ checks.push({
354
+ code: ADAPTER_AUTH_MISSING_CHECK_CODE,
355
+ level: "warn",
356
+ message: "This environment has no ready authentication for this adapter.",
357
+ hint: "Provide credentials for this adapter, or start login in the environment.",
358
+ });
359
+ }
360
+ }
361
+ else if ((probe.exitCode ?? 1) === 0) {
362
+ const summary = parsedStream.summary.trim();
363
+ const hasHello = /\bhello\b/i.test(summary);
364
+ if (!hasHello) {
365
+ // The unexpected summary is untrusted probe output. Log only the fixed
366
+ // context and the allowlisted classification. Keep the check text
367
+ // fixed.
368
+ logSandboxProbeDiagnostic("Claude CLI hello probe returned unexpected output", "unexpected_output");
369
+ }
370
+ checks.push({
371
+ code: hasHello ? "claude_hello_probe_passed" : "claude_hello_probe_unexpected_output",
372
+ level: hasHello ? "info" : "warn",
373
+ message: hasHello
374
+ ? "Claude hello probe succeeded."
375
+ : "Claude probe ran but did not return `hello` as expected.",
376
+ ...(hasHello
377
+ ? {}
378
+ : {
379
+ hint: "Try the probe manually (`claude --print - --output-format stream-json --verbose`) and prompt `Respond with hello`.",
380
+ }),
381
+ });
382
+ }
383
+ else {
384
+ // The failure diagnostic is untrusted. Log only the fixed context, the
385
+ // allowlisted classification, and the safe exit code. Return only a
386
+ // fixed public message and hint.
387
+ logSandboxProbeDiagnostic("Claude CLI hello probe failed", "nonzero_exit", {
388
+ exitCode: probe.exitCode ?? null,
389
+ });
390
+ // Provider-quota exhaustion (usage/session limit) is classified
391
+ // separately from generic transient upstream errors: auth works, the
392
+ // subscription's usage window is just spent. Surface it as its own
393
+ // warning instead of a hard probe failure.
394
+ const usageLimited = isClaudeProviderQuotaError({
395
+ parsed,
396
+ stdout: probe.stdout,
397
+ stderr: probe.stderr,
398
+ });
399
+ const transient = isClaudeTransientUpstreamError({
400
+ parsed,
401
+ stdout: probe.stdout,
402
+ stderr: probe.stderr,
403
+ });
404
+ checks.push(usageLimited
405
+ ? {
406
+ code: "claude_hello_probe_usage_limited",
407
+ level: "warn",
408
+ message: "Claude hello probe hit the subscription usage limit.",
409
+ hint: "Authentication works; the account's usage window is exhausted. Wait for the limit to reset and re-run Test.",
410
+ }
411
+ : transient
412
+ ? {
413
+ code: "claude_hello_probe_transient_upstream",
414
+ level: "warn",
415
+ message: "Claude hello probe hit a transient upstream error (rate limit or overload).",
416
+ hint: "This is usually temporary. Wait a moment and re-run Test.",
417
+ }
418
+ : {
419
+ code: "claude_hello_probe_failed",
420
+ level: "error",
421
+ message: "Claude hello probe failed.",
422
+ hint: `Exit code ${probe.exitCode ?? "unknown"}. Run \`claude --print - --output-format stream-json --verbose\` manually in this directory and prompt \`Respond with hello\` to debug.`,
423
+ });
424
+ }
425
+ }
426
+ }
427
+ return {
428
+ adapterType: ctx.adapterType,
429
+ status: summarizeStatus(checks),
430
+ checks,
431
+ testedAt: new Date().toISOString(),
432
+ };
433
+ }
434
+ //# sourceMappingURL=test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/server/test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=test.probe.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.probe.test.d.ts","sourceRoot":"","sources":["../../src/server/test.probe.test.ts"],"names":[],"mappings":""}