@tickernelz/paperclip-pro-adapter-grok-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 (119) 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 +55 -0
  5. package/dist/cli/format-event.js.map +1 -0
  6. package/dist/cli/format-event.test.d.ts +2 -0
  7. package/dist/cli/format-event.test.d.ts.map +1 -0
  8. package/dist/cli/format-event.test.js +19 -0
  9. package/dist/cli/format-event.test.js.map +1 -0
  10. package/dist/cli/index.d.ts +2 -0
  11. package/dist/cli/index.d.ts.map +1 -0
  12. package/dist/cli/index.js +2 -0
  13. package/dist/cli/index.js.map +1 -0
  14. package/dist/index.d.ts +10 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +53 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/server/adapter-auth-promotion.d.ts +87 -0
  19. package/dist/server/adapter-auth-promotion.d.ts.map +1 -0
  20. package/dist/server/adapter-auth-promotion.js +294 -0
  21. package/dist/server/adapter-auth-promotion.js.map +1 -0
  22. package/dist/server/adapter-auth-promotion.test.d.ts +2 -0
  23. package/dist/server/adapter-auth-promotion.test.d.ts.map +1 -0
  24. package/dist/server/adapter-auth-promotion.test.js +563 -0
  25. package/dist/server/adapter-auth-promotion.test.js.map +1 -0
  26. package/dist/server/device-login-parse.d.ts +23 -0
  27. package/dist/server/device-login-parse.d.ts.map +1 -0
  28. package/dist/server/device-login-parse.js +148 -0
  29. package/dist/server/device-login-parse.js.map +1 -0
  30. package/dist/server/device-login-parse.test.d.ts +2 -0
  31. package/dist/server/device-login-parse.test.d.ts.map +1 -0
  32. package/dist/server/device-login-parse.test.js +146 -0
  33. package/dist/server/device-login-parse.test.js.map +1 -0
  34. package/dist/server/execute.d.ts +3 -0
  35. package/dist/server/execute.d.ts.map +1 -0
  36. package/dist/server/execute.js +572 -0
  37. package/dist/server/execute.js.map +1 -0
  38. package/dist/server/execute.test.d.ts +2 -0
  39. package/dist/server/execute.test.d.ts.map +1 -0
  40. package/dist/server/execute.test.js +731 -0
  41. package/dist/server/execute.test.js.map +1 -0
  42. package/dist/server/grok-auth-copyback.d.ts +48 -0
  43. package/dist/server/grok-auth-copyback.d.ts.map +1 -0
  44. package/dist/server/grok-auth-copyback.js +92 -0
  45. package/dist/server/grok-auth-copyback.js.map +1 -0
  46. package/dist/server/grok-auth-copyback.test.d.ts +2 -0
  47. package/dist/server/grok-auth-copyback.test.d.ts.map +1 -0
  48. package/dist/server/grok-auth-copyback.test.js +246 -0
  49. package/dist/server/grok-auth-copyback.test.js.map +1 -0
  50. package/dist/server/grok-auth-merge-decision.cjs +157 -0
  51. package/dist/server/grok-auth-merge-decision.d.ts +21 -0
  52. package/dist/server/grok-auth-merge-decision.d.ts.map +1 -0
  53. package/dist/server/grok-auth-merge-decision.js +58 -0
  54. package/dist/server/grok-auth-merge-decision.js.map +1 -0
  55. package/dist/server/grok-auth-merge-decision.test.d.ts +2 -0
  56. package/dist/server/grok-auth-merge-decision.test.d.ts.map +1 -0
  57. package/dist/server/grok-auth-merge-decision.test.js +189 -0
  58. package/dist/server/grok-auth-merge-decision.test.js.map +1 -0
  59. package/dist/server/grok-home.d.ts +57 -0
  60. package/dist/server/grok-home.d.ts.map +1 -0
  61. package/dist/server/grok-home.js +145 -0
  62. package/dist/server/grok-home.js.map +1 -0
  63. package/dist/server/grok-home.test.d.ts +2 -0
  64. package/dist/server/grok-home.test.d.ts.map +1 -0
  65. package/dist/server/grok-home.test.js +109 -0
  66. package/dist/server/grok-home.test.js.map +1 -0
  67. package/dist/server/index.d.ts +12 -0
  68. package/dist/server/index.d.ts.map +1 -0
  69. package/dist/server/index.js +67 -0
  70. package/dist/server/index.js.map +1 -0
  71. package/dist/server/parse.d.ts +15 -0
  72. package/dist/server/parse.d.ts.map +1 -0
  73. package/dist/server/parse.js +93 -0
  74. package/dist/server/parse.js.map +1 -0
  75. package/dist/server/parse.test.d.ts +2 -0
  76. package/dist/server/parse.test.d.ts.map +1 -0
  77. package/dist/server/parse.test.js +82 -0
  78. package/dist/server/parse.test.js.map +1 -0
  79. package/dist/server/skills.d.ts +4 -0
  80. package/dist/server/skills.d.ts.map +1 -0
  81. package/dist/server/skills.js +21 -0
  82. package/dist/server/skills.js.map +1 -0
  83. package/dist/server/test.d.ts +9 -0
  84. package/dist/server/test.d.ts.map +1 -0
  85. package/dist/server/test.js +362 -0
  86. package/dist/server/test.js.map +1 -0
  87. package/dist/server/test.test.d.ts +2 -0
  88. package/dist/server/test.test.d.ts.map +1 -0
  89. package/dist/server/test.test.js +293 -0
  90. package/dist/server/test.test.js.map +1 -0
  91. package/dist/shared/turn-boundary.d.ts +7 -0
  92. package/dist/shared/turn-boundary.d.ts.map +1 -0
  93. package/dist/shared/turn-boundary.js +44 -0
  94. package/dist/shared/turn-boundary.js.map +1 -0
  95. package/dist/shared/turn-boundary.test.d.ts +2 -0
  96. package/dist/shared/turn-boundary.test.d.ts.map +1 -0
  97. package/dist/shared/turn-boundary.test.js +43 -0
  98. package/dist/shared/turn-boundary.test.js.map +1 -0
  99. package/dist/ui/build-config.d.ts +3 -0
  100. package/dist/ui/build-config.d.ts.map +1 -0
  101. package/dist/ui/build-config.js +29 -0
  102. package/dist/ui/build-config.js.map +1 -0
  103. package/dist/ui/build-config.test.d.ts +2 -0
  104. package/dist/ui/build-config.test.d.ts.map +1 -0
  105. package/dist/ui/build-config.test.js +26 -0
  106. package/dist/ui/build-config.test.js.map +1 -0
  107. package/dist/ui/index.d.ts +3 -0
  108. package/dist/ui/index.d.ts.map +1 -0
  109. package/dist/ui/index.js +3 -0
  110. package/dist/ui/index.js.map +1 -0
  111. package/dist/ui/parse-stdout.d.ts +7 -0
  112. package/dist/ui/parse-stdout.d.ts.map +1 -0
  113. package/dist/ui/parse-stdout.js +76 -0
  114. package/dist/ui/parse-stdout.js.map +1 -0
  115. package/dist/ui/parse-stdout.test.d.ts +2 -0
  116. package/dist/ui/parse-stdout.test.d.ts.map +1 -0
  117. package/dist/ui/parse-stdout.test.js +62 -0
  118. package/dist/ui/parse-stdout.test.js.map +1 -0
  119. package/package.json +58 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/server/skills.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAKzC,OAAO,EACL,gCAAgC,EAChC,gCAAgC,EAChC,uCAAuC,GACxC,MAAM,sDAAsD,CAAC;AAE9D,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAEjE,KAAK,UAAU,sBAAsB,CACnC,MAA+B;IAE/B,MAAM,gBAAgB,GAAG,MAAM,gCAAgC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACrF,MAAM,aAAa,GAAG,uCAAuC,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACxF,OAAO,gCAAgC,CAAC;QACtC,WAAW,EAAE,YAAY;QACzB,gBAAgB;QAChB,aAAa;QACb,gBAAgB,EAAE,kFAAkF;KACrG,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAwB;IAC3D,OAAO,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAwB,EACxB,cAAwB;IAExB,OAAO,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { AdapterEnvironmentTestContext, AdapterEnvironmentTestResult } from "@tickernelz/paperclip-pro-adapter-utils";
2
+ export interface GrokModelsProbe {
3
+ authenticated: boolean;
4
+ defaultModel: string | null;
5
+ models: string[];
6
+ }
7
+ export declare function parseGrokModelsOutput(stdout: string): GrokModelsProbe;
8
+ export declare function testEnvironment(ctx: AdapterEnvironmentTestContext): Promise<AdapterEnvironmentTestResult>;
9
+ //# sourceMappingURL=test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../src/server/test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,6BAA6B,EAC7B,4BAA4B,EAC7B,MAAM,yCAAyC,CAAC;AAyBjD,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAqCD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAqCrE;AAED,wBAAsB,eAAe,CACnC,GAAG,EAAE,6BAA6B,GACjC,OAAO,CAAC,4BAA4B,CAAC,CAsSvC"}
@@ -0,0 +1,362 @@
1
+ import { asNumber, asString, ensurePathInEnv, parseObject, } from "@tickernelz/paperclip-pro-adapter-utils/server-utils";
2
+ import { describeAdapterExecutionTarget, prepareAdapterExecutionTargetRuntime, ensureAdapterExecutionTargetCommandResolvable, ensureAdapterExecutionTargetDirectory, resolveAdapterExecutionTargetCwd, runAdapterExecutionTargetProcess, } from "@tickernelz/paperclip-pro-adapter-utils/execution-target";
3
+ import { mkdtemp, rm } from "node:fs/promises";
4
+ import os from "node:os";
5
+ import path from "node:path";
6
+ import { stageGrokHomeForSync } from "./grok-home.js";
7
+ import { copyBackGrokAuth } from "./grok-auth-copyback.js";
8
+ import { DEFAULT_GROK_LOCAL_MODEL } from "../index.js";
9
+ import { parseGrokJsonl } from "./parse.js";
10
+ import { ADAPTER_AUTH_MISSING_CHECK_CODE } from "@tickernelz/paperclip-pro-shared";
11
+ function summarizeStatus(checks) {
12
+ if (checks.some((check) => check.level === "error"))
13
+ return "fail";
14
+ if (checks.some((check) => check.level === "warn"))
15
+ return "warn";
16
+ return "pass";
17
+ }
18
+ function firstNonEmptyLine(text) {
19
+ return (text
20
+ .split(/\r?\n/)
21
+ .map((line) => line.trim())
22
+ .find(Boolean) ?? "");
23
+ }
24
+ function summarizeProbeDetail(stdout, stderr, parsedError) {
25
+ const raw = parsedError?.trim() || firstNonEmptyLine(stderr) || firstNonEmptyLine(stdout);
26
+ if (!raw)
27
+ return null;
28
+ const clean = raw.replace(/\s+/g, " ").trim();
29
+ const max = 240;
30
+ return clean.length > max ? `${clean.slice(0, max - 3)}...` : clean;
31
+ }
32
+ function normalizeEnv(input) {
33
+ if (typeof input !== "object" || input === null || Array.isArray(input))
34
+ return {};
35
+ const env = {};
36
+ for (const [key, value] of Object.entries(input)) {
37
+ if (typeof value === "string")
38
+ env[key] = value;
39
+ }
40
+ return env;
41
+ }
42
+ const GROK_AUTH_REQUIRED_RE = /(?:not\s+logged\s+in|login\s+required|run\s+`?grok\s+login`?|authentication\s+required|unauthorized|invalid\s+credentials)/i;
43
+ export function parseGrokModelsOutput(stdout) {
44
+ const trimmedLines = stdout
45
+ .split(/\r?\n/)
46
+ .map((line) => line.trim())
47
+ .filter(Boolean);
48
+ const models = [];
49
+ let defaultModel = null;
50
+ let authenticated = false;
51
+ let inModelsBlock = false;
52
+ for (const line of trimmedLines) {
53
+ if (/logged in/i.test(line))
54
+ authenticated = true;
55
+ const defaultMatch = /^Default model:\s*(.+)$/i.exec(line);
56
+ if (defaultMatch?.[1]) {
57
+ defaultModel = defaultMatch[1].trim();
58
+ continue;
59
+ }
60
+ if (/^Available models:/i.test(line)) {
61
+ inModelsBlock = true;
62
+ continue;
63
+ }
64
+ if (!inModelsBlock)
65
+ continue;
66
+ const bulletMatch = /^[*-]\s*(.+?)(?:\s+\(default\))?$/.exec(line);
67
+ if (bulletMatch?.[1]) {
68
+ models.push(bulletMatch[1].trim());
69
+ continue;
70
+ }
71
+ if (line.length > 0) {
72
+ models.push(line.replace(/\s+\(default\)$/, "").trim());
73
+ }
74
+ }
75
+ return {
76
+ authenticated,
77
+ defaultModel,
78
+ models: Array.from(new Set(models.filter(Boolean))),
79
+ };
80
+ }
81
+ export async function testEnvironment(ctx) {
82
+ const checks = [];
83
+ const config = parseObject(ctx.config);
84
+ const command = asString(config.command, "grok");
85
+ const target = ctx.executionTarget ?? null;
86
+ const targetIsRemote = target?.kind === "remote";
87
+ const targetIsSandbox = target?.kind === "remote" && target.transport === "sandbox";
88
+ const cwd = resolveAdapterExecutionTargetCwd(target, asString(config.cwd, ""), process.cwd());
89
+ const targetLabel = targetIsRemote
90
+ ? ctx.environmentName ?? describeAdapterExecutionTarget(target)
91
+ : null;
92
+ const runId = `grok-envtest-${Date.now()}-${Math.random().toString(16).slice(2)}`;
93
+ if (targetLabel) {
94
+ checks.push({
95
+ code: "grok_environment_target",
96
+ level: "info",
97
+ message: `Probing inside environment: ${targetLabel}`,
98
+ });
99
+ }
100
+ try {
101
+ await ensureAdapterExecutionTargetDirectory(runId, target, cwd, {
102
+ cwd,
103
+ env: {},
104
+ createIfMissing: true,
105
+ });
106
+ checks.push({
107
+ code: "grok_cwd_valid",
108
+ level: "info",
109
+ message: `Working directory is valid: ${cwd}`,
110
+ });
111
+ }
112
+ catch (err) {
113
+ checks.push({
114
+ code: "grok_cwd_invalid",
115
+ level: "error",
116
+ message: err instanceof Error ? err.message : "Invalid working directory",
117
+ detail: cwd,
118
+ });
119
+ }
120
+ const env = normalizeEnv(config.env);
121
+ let stagedHome;
122
+ let runtimeWorkspaceLocalDir;
123
+ let restore;
124
+ try {
125
+ if (config.managedAiConnection && targetIsRemote) {
126
+ try {
127
+ const hostHome = env.GROK_HOME;
128
+ stagedHome = await stageGrokHomeForSync(hostHome, { runId });
129
+ // `cwd` is the remote target path here, never a host directory, so the
130
+ // runtime gets an empty host workspace to stage from and the remote
131
+ // path separately — the same split codex-local and opencode-local
132
+ // draw. Handing it the remote path as `workspaceLocalDir` made the
133
+ // host-side ignore scan fail on a directory that does not exist.
134
+ runtimeWorkspaceLocalDir = await mkdtemp(path.join(os.tmpdir(), `paperclip-grok-envtest-${runId}-`));
135
+ const prepared = await prepareAdapterExecutionTargetRuntime({
136
+ runId, target, adapterKey: "grok",
137
+ workspaceLocalDir: runtimeWorkspaceLocalDir,
138
+ workspaceRemoteDir: cwd,
139
+ assets: [{ key: "home", localDir: stagedHome, followSymlinks: true,
140
+ restore: async ({ assetDir, readFile }) => {
141
+ await copyBackGrokAuth({
142
+ readSandboxAuth: () => readFile(path.posix.join(assetDir, "auth.json")),
143
+ hostHomeDir: hostHome, log: () => { },
144
+ });
145
+ },
146
+ }],
147
+ });
148
+ env.GROK_HOME = prepared.assetDirs.home;
149
+ restore = () => prepared.restoreWorkspace(() => { });
150
+ }
151
+ catch (err) {
152
+ // The environment test reports what is wrong with the environment; a
153
+ // credential-staging failure is a finding, not a crash.
154
+ checks.push({
155
+ code: "grok_environment_unprepared",
156
+ level: "error",
157
+ message: err instanceof Error ? err.message : "Could not stage the managed account into the environment",
158
+ });
159
+ }
160
+ }
161
+ const runtimeEnv = ensurePathInEnv({ ...process.env, ...env });
162
+ try {
163
+ await ensureAdapterExecutionTargetCommandResolvable(command, target, cwd, runtimeEnv);
164
+ checks.push({
165
+ code: "grok_command_resolvable",
166
+ level: "info",
167
+ message: `Command is executable: ${command}`,
168
+ });
169
+ }
170
+ catch (err) {
171
+ checks.push({
172
+ code: "grok_command_unresolvable",
173
+ level: "error",
174
+ message: err instanceof Error ? err.message : "Command is not executable",
175
+ detail: command,
176
+ });
177
+ }
178
+ const canRunProbe = checks.every((check) => check.code !== "grok_cwd_invalid" &&
179
+ check.code !== "grok_command_unresolvable" &&
180
+ check.code !== "grok_environment_unprepared");
181
+ const configuredModel = asString(config.model, DEFAULT_GROK_LOCAL_MODEL).trim();
182
+ if (canRunProbe) {
183
+ const modelsProbe = await runAdapterExecutionTargetProcess(runId, target, command, ["models"], {
184
+ cwd,
185
+ env,
186
+ timeoutSec: Math.max(1, asNumber(config.helloProbeTimeoutSec, 45)),
187
+ graceSec: 5,
188
+ onLog: async () => { },
189
+ });
190
+ const probeOutput = `${modelsProbe.stdout}\n${modelsProbe.stderr}`;
191
+ const parsedModels = parseGrokModelsOutput(modelsProbe.stdout);
192
+ const authRequired = GROK_AUTH_REQUIRED_RE.test(probeOutput);
193
+ if (modelsProbe.timedOut) {
194
+ checks.push({
195
+ code: "grok_models_probe_timed_out",
196
+ level: "warn",
197
+ message: "`grok models` timed out.",
198
+ hint: "Retry the probe. If this persists, run `grok models` manually from the target environment.",
199
+ });
200
+ }
201
+ else if ((modelsProbe.exitCode ?? 1) !== 0) {
202
+ checks.push({
203
+ code: authRequired ? "grok_auth_required" : "grok_models_probe_failed",
204
+ level: authRequired ? "warn" : "error",
205
+ message: authRequired
206
+ ? "Grok CLI is not authenticated."
207
+ : "`grok models` failed.",
208
+ detail: summarizeProbeDetail(modelsProbe.stdout, modelsProbe.stderr, null),
209
+ hint: authRequired ? "Run `grok login` on the target host, then retry." : undefined,
210
+ });
211
+ if (authRequired && targetIsSandbox) {
212
+ // Emit the neutral canonical check so the user interface can decide
213
+ // login eligibility from a stable code. The user interface does not
214
+ // read the message text or the top-level status.
215
+ checks.push({
216
+ code: ADAPTER_AUTH_MISSING_CHECK_CODE,
217
+ level: "warn",
218
+ message: "This environment has no ready authentication for this adapter.",
219
+ detail: summarizeProbeDetail(modelsProbe.stdout, modelsProbe.stderr, null),
220
+ hint: "Provide credentials for this adapter, or start login in the environment.",
221
+ });
222
+ }
223
+ }
224
+ else {
225
+ checks.push({
226
+ code: "grok_models_probe_passed",
227
+ level: "info",
228
+ message: parsedModels.authenticated
229
+ ? "Grok CLI authentication is configured."
230
+ : "`grok models` completed.",
231
+ detail: parsedModels.defaultModel ? `Default model: ${parsedModels.defaultModel}` : undefined,
232
+ });
233
+ if (parsedModels.models.length > 0) {
234
+ checks.push({
235
+ code: "grok_models_discovered",
236
+ level: "info",
237
+ message: `Discovered ${parsedModels.models.length} Grok model(s).`,
238
+ });
239
+ }
240
+ else {
241
+ checks.push({
242
+ code: "grok_models_empty",
243
+ level: "warn",
244
+ message: "Grok returned no available models.",
245
+ hint: "Run `grok models` manually and verify the account has access to a model.",
246
+ });
247
+ }
248
+ if (configuredModel) {
249
+ // The default model id is a sentinel meaning "let the Grok CLI pick its
250
+ // own default" — execute.ts only passes `--model` when the value differs
251
+ // from it, so the sentinel is never sent to grok and must not be checked
252
+ // against the discovered list (real grok never lists "grok-build", which
253
+ // otherwise produced a spurious "not found" warning on every probe).
254
+ const usesCliDefault = configuredModel === DEFAULT_GROK_LOCAL_MODEL;
255
+ const available = usesCliDefault || parsedModels.models.includes(configuredModel);
256
+ checks.push({
257
+ code: available ? "grok_model_configured" : "grok_model_not_found",
258
+ level: available ? "info" : "warn",
259
+ message: usesCliDefault
260
+ ? `Using the Grok CLI's default model${parsedModels.defaultModel ? ` (${parsedModels.defaultModel})` : ""}.`
261
+ : available
262
+ ? `Configured model: ${configuredModel}`
263
+ : `Configured model "${configuredModel}" not found in available models.`,
264
+ hint: available ? undefined : "Run `grok models` and choose an available model id.",
265
+ });
266
+ }
267
+ }
268
+ }
269
+ if (canRunProbe) {
270
+ const probeArgs = [
271
+ "--output-format",
272
+ "streaming-json",
273
+ "--always-approve",
274
+ "--permission-mode",
275
+ "dontAsk",
276
+ "--disable-web-search",
277
+ ];
278
+ if (configuredModel && configuredModel !== DEFAULT_GROK_LOCAL_MODEL) {
279
+ probeArgs.push("--model", configuredModel);
280
+ }
281
+ probeArgs.push("--single", "Respond with exactly hello.");
282
+ const helloProbe = await runAdapterExecutionTargetProcess(runId, target, command, probeArgs, {
283
+ cwd,
284
+ env,
285
+ timeoutSec: Math.max(1, asNumber(config.helloProbeTimeoutSec, 45)),
286
+ graceSec: 5,
287
+ onLog: async () => { },
288
+ });
289
+ const parsed = parseGrokJsonl(helloProbe.stdout);
290
+ const detail = summarizeProbeDetail(helloProbe.stdout, helloProbe.stderr, parsed.errorMessage);
291
+ const authRequired = GROK_AUTH_REQUIRED_RE.test(`${helloProbe.stdout}\n${helloProbe.stderr}`);
292
+ if (helloProbe.timedOut) {
293
+ checks.push({
294
+ code: "grok_hello_probe_timed_out",
295
+ level: "warn",
296
+ message: "Grok hello probe timed out.",
297
+ hint: "Retry the probe. If this persists, verify Grok can run a simple `--single` prompt manually.",
298
+ });
299
+ }
300
+ else if ((helloProbe.exitCode ?? 1) !== 0) {
301
+ checks.push({
302
+ code: authRequired ? "grok_hello_probe_auth_required" : "grok_hello_probe_failed",
303
+ level: authRequired ? "warn" : "error",
304
+ message: authRequired
305
+ ? "Grok CLI could not answer the hello probe because authentication is missing."
306
+ : "Grok hello probe failed.",
307
+ ...(detail ? { detail } : {}),
308
+ hint: authRequired ? "Run `grok login` on the target host, then retry." : undefined,
309
+ });
310
+ if (authRequired && targetIsSandbox) {
311
+ // Emit the neutral canonical check so the user interface can decide
312
+ // login eligibility from a stable code. The user interface does not
313
+ // read the message text or the top-level status.
314
+ checks.push({
315
+ code: ADAPTER_AUTH_MISSING_CHECK_CODE,
316
+ level: "warn",
317
+ message: "This environment has no ready authentication for this adapter.",
318
+ ...(detail ? { detail } : {}),
319
+ hint: "Provide credentials for this adapter, or start login in the environment.",
320
+ });
321
+ }
322
+ }
323
+ else if (/\bhello\b/i.test(parsed.summary)) {
324
+ checks.push({
325
+ code: "grok_hello_probe_passed",
326
+ level: "info",
327
+ message: "Grok hello probe succeeded.",
328
+ });
329
+ }
330
+ else {
331
+ checks.push({
332
+ code: "grok_hello_probe_unexpected_output",
333
+ level: "warn",
334
+ message: "Grok hello probe succeeded but returned unexpected output.",
335
+ ...(detail ? { detail } : {}),
336
+ });
337
+ }
338
+ }
339
+ return {
340
+ adapterType: "grok_local",
341
+ status: summarizeStatus(checks),
342
+ checks,
343
+ testedAt: new Date().toISOString(),
344
+ };
345
+ }
346
+ finally {
347
+ try {
348
+ await restore?.();
349
+ }
350
+ finally {
351
+ // Both temporary directories are removed even when one removal fails,
352
+ // and neither failure turns an answered environment test into a thrown
353
+ // error: these are best-effort temp directories, and the caller asked
354
+ // for checks.
355
+ await Promise.allSettled([
356
+ stagedHome ? rm(stagedHome, { recursive: true, force: true }) : undefined,
357
+ runtimeWorkspaceLocalDir ? rm(runtimeWorkspaceLocalDir, { recursive: true, force: true }) : undefined,
358
+ ]);
359
+ }
360
+ }
361
+ }
362
+ //# 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.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.test.d.ts","sourceRoot":"","sources":["../../src/server/test.test.ts"],"names":[],"mappings":""}