@hongmaple0820/scale-engine 0.40.0 → 0.40.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 (47) hide show
  1. package/dist/api/cli.js +421 -26
  2. package/dist/api/cli.js.map +1 -1
  3. package/dist/api/doctor.js +1 -1
  4. package/dist/api/doctor.js.map +1 -1
  5. package/dist/bootstrap/DependencyBootstrap.d.ts +2 -0
  6. package/dist/bootstrap/DependencyBootstrap.js +250 -39
  7. package/dist/bootstrap/DependencyBootstrap.js.map +1 -1
  8. package/dist/bootstrap/DependencyBootstrapRenderer.js +2 -4
  9. package/dist/bootstrap/DependencyBootstrapRenderer.js.map +1 -1
  10. package/dist/capabilities/InstalledSkillsIntegration.js +29 -9
  11. package/dist/capabilities/InstalledSkillsIntegration.js.map +1 -1
  12. package/dist/context/ContextBudget.js +2 -2
  13. package/dist/core/GbrainRuntime.d.ts +25 -0
  14. package/dist/core/GbrainRuntime.js +270 -0
  15. package/dist/core/GbrainRuntime.js.map +1 -0
  16. package/dist/env/EnvironmentDoctor.js +221 -5
  17. package/dist/env/EnvironmentDoctor.js.map +1 -1
  18. package/dist/memory/MemoryProviders.js +38 -91
  19. package/dist/memory/MemoryProviders.js.map +1 -1
  20. package/dist/runtime/ModelUsageLedger.d.ts +53 -2
  21. package/dist/runtime/ModelUsageLedger.js +243 -39
  22. package/dist/runtime/ModelUsageLedger.js.map +1 -1
  23. package/dist/setup/SetupVerification.d.ts +42 -0
  24. package/dist/setup/SetupVerification.js +180 -0
  25. package/dist/setup/SetupVerification.js.map +1 -0
  26. package/dist/setup/SetupWizard.d.ts +3 -0
  27. package/dist/setup/SetupWizard.js +79 -19
  28. package/dist/setup/SetupWizard.js.map +1 -1
  29. package/dist/skills/SkillDoctor.js +2 -2
  30. package/dist/skills/SkillDoctor.js.map +1 -1
  31. package/dist/skills/SkillRepository.js +2 -2
  32. package/dist/skills/SkillRepository.js.map +1 -1
  33. package/dist/tools/ToolCapabilityRegistry.js +12 -2
  34. package/dist/tools/ToolCapabilityRegistry.js.map +1 -1
  35. package/dist/workflow/VerificationProfile.js +1 -1
  36. package/dist/workflow/VerificationProfile.js.map +1 -1
  37. package/docs/CONTEXT_BUDGET.md +12 -2
  38. package/docs/GOVERNANCE_DASHBOARD.md +7 -0
  39. package/docs/THIRD_PARTY_SKILLS.md +12 -4
  40. package/docs/start/README.md +2 -2
  41. package/docs/start/quickstart.md +54 -44
  42. package/docs/start/workflow-upgrade.md +8 -1
  43. package/package.json +3 -2
  44. package/scripts/workflow/lib/gbrain-runtime.mjs +185 -0
  45. package/scripts/workflow/lib/report-output.mjs +107 -0
  46. package/scripts/workflow/provider-rehearsal.mjs +129 -48
  47. package/scripts/workflow/setup-smoke.mjs +142 -8
@@ -0,0 +1,270 @@
1
+ import { spawnSync } from 'node:child_process';
2
+ import { createHash } from 'node:crypto';
3
+ import { cpSync, existsSync, mkdirSync, readFileSync, renameSync, rmSync, statSync, writeFileSync } from 'node:fs';
4
+ import { tmpdir } from 'node:os';
5
+ import { dirname, join, relative, resolve } from 'node:path';
6
+ import { resolveExternalCommandPath } from './ExternalCommand.js';
7
+ const MIRROR_META_FILE = '.scale-gbrain-runtime.json';
8
+ export function runGbrainCommandSync(args, options = {}, deps = {}) {
9
+ const currentPlatform = deps.platform ?? process.platform;
10
+ const resolveCommandPath = deps.resolveCommandPath ?? resolveExternalCommandPath;
11
+ const spawn = deps.spawn ?? spawnSync;
12
+ if (currentPlatform === 'win32') {
13
+ const runtime = resolveWindowsGbrainRuntime(resolveCommandPath);
14
+ if (runtime) {
15
+ const direct = spawnGbrain(spawn, runtime.bunExe, [runtime.cliPath, ...args], {
16
+ ...options,
17
+ env: mergeEnv(deps.env, options.env),
18
+ cwd: options.cwd ?? runtime.packageRoot,
19
+ });
20
+ if (!shouldRetryWithMirroredRuntime(direct, runtime.cliPath))
21
+ return direct;
22
+ const mirrored = ensureMirroredRuntime(runtime, deps);
23
+ const retried = spawnGbrain(spawn, mirrored.bunExe, [mirrored.cliPath, ...args], {
24
+ ...options,
25
+ env: mergeEnv(deps.env, options.env),
26
+ cwd: options.cwd ?? mirrored.mirrorRoot,
27
+ });
28
+ return {
29
+ ...retried,
30
+ usedMirroredRuntime: true,
31
+ };
32
+ }
33
+ }
34
+ return spawnResolvedCommand(resolveCommandPath, spawn, currentPlatform, 'gbrain', args, {
35
+ ...options,
36
+ env: mergeEnv(deps.env, options.env),
37
+ });
38
+ }
39
+ function spawnResolvedCommand(resolveCommandPath, spawn, currentPlatform, command, args, options) {
40
+ const resolved = resolveWindowsCommandShim(resolveCommandPath(command) ?? command, currentPlatform);
41
+ if (currentPlatform === 'win32' && /\.(cmd|bat)$/i.test(resolved)) {
42
+ return spawnGbrain(spawn, process.env.ComSpec ?? 'cmd.exe', ['/d', '/c', 'call', resolved, ...args], options);
43
+ }
44
+ return spawnGbrain(spawn, resolved, args, options);
45
+ }
46
+ function spawnGbrain(spawn, command, args, options) {
47
+ const result = spawn(command, args, {
48
+ cwd: options.cwd,
49
+ env: options.env,
50
+ input: options.input,
51
+ stdio: options.stdio ?? ['ignore', 'pipe', 'pipe'],
52
+ timeout: options.timeout,
53
+ maxBuffer: options.maxBuffer,
54
+ encoding: 'utf8',
55
+ shell: false,
56
+ windowsHide: true,
57
+ });
58
+ return toCommandResult(args, result);
59
+ }
60
+ function toCommandResult(args, result) {
61
+ const stdout = String(result.stdout ?? '');
62
+ const stderr = `${String(result.stderr ?? '')}${result.error ? `\n${result.error.message}` : ''}`.trim();
63
+ const exitCode = typeof result.status === 'number' ? result.status : 1;
64
+ const timedOut = /ETIMEDOUT/i.test(String(result.error?.message ?? ''));
65
+ const recoveredTimeout = shouldRecoverGbrainTimeout(args, stdout, stderr, exitCode, timedOut);
66
+ return {
67
+ stdout,
68
+ stderr: recoveredTimeout ? stripRecoverableTimeoutNoise(stderr) : stderr,
69
+ exitCode: recoveredTimeout ? 0 : exitCode,
70
+ timedOut: recoveredTimeout ? false : timedOut,
71
+ usedMirroredRuntime: false,
72
+ recoveredTimeout,
73
+ };
74
+ }
75
+ const GBRAIN_TIMEOUT_RECOVERY_COMMANDS = new Set(['--version', 'version', 'doctor', 'list', 'get', 'query', 'search']);
76
+ function shouldRecoverGbrainTimeout(args, stdout, stderr, exitCode, timedOut) {
77
+ if (!timedOut || exitCode === 0)
78
+ return false;
79
+ const command = normalizeGbrainSubcommand(args);
80
+ if (!command || !GBRAIN_TIMEOUT_RECOVERY_COMMANDS.has(command))
81
+ return false;
82
+ const cleanedStderr = stripRecoverableTimeoutNoise(stderr);
83
+ if (cleanedStderr)
84
+ return false;
85
+ return hasRecoverableGbrainOutput(command, stdout.trim());
86
+ }
87
+ function normalizeGbrainSubcommand(args) {
88
+ const command = String(args[0] ?? '').trim().toLowerCase();
89
+ return command || null;
90
+ }
91
+ function hasRecoverableGbrainOutput(command, stdout) {
92
+ if (!stdout)
93
+ return false;
94
+ switch (command) {
95
+ case '--version':
96
+ case 'version':
97
+ return /\bgbrain\b/i.test(stdout) || /\d+\.\d+\.\d+/.test(stdout);
98
+ case 'doctor':
99
+ return looksLikeJsonOutput(stdout);
100
+ case 'list':
101
+ return /no pages found/i.test(stdout)
102
+ || /^\d+\.\s+\S+/m.test(stdout)
103
+ || /^\[\d+(?:\.\d+)?\]\s+/m.test(stdout);
104
+ case 'get':
105
+ return /^---$/m.test(stdout)
106
+ || /^#\s+\S+/m.test(stdout)
107
+ || looksLikeJsonOutput(stdout);
108
+ case 'query':
109
+ case 'search':
110
+ return looksLikeJsonOutput(stdout)
111
+ || /no (pages|results) found/i.test(stdout)
112
+ || /^\[\d+(?:\.\d+)?\]\s+/m.test(stdout)
113
+ || /^\d+\.\s+\S+/m.test(stdout);
114
+ default:
115
+ return false;
116
+ }
117
+ }
118
+ function looksLikeJsonOutput(stdout) {
119
+ const trimmed = stdout.trim();
120
+ if (!trimmed || (!trimmed.startsWith('{') && !trimmed.startsWith('[')))
121
+ return false;
122
+ try {
123
+ JSON.parse(trimmed);
124
+ return true;
125
+ }
126
+ catch {
127
+ return false;
128
+ }
129
+ }
130
+ function stripRecoverableTimeoutNoise(stderr) {
131
+ return String(stderr ?? '')
132
+ .replace(/\n?spawnSync .*?\bETIMEDOUT\b\s*/gim, '\n')
133
+ .replace(/\n?Command failed: .*?\bETIMEDOUT\b\s*/gim, '\n')
134
+ .replace(/\n?timed out after .*$/gim, '\n')
135
+ .replace(/\n{3,}/g, '\n\n')
136
+ .trim();
137
+ }
138
+ function shouldRetryWithMirroredRuntime(result, cliPath) {
139
+ if (result.exitCode === 0)
140
+ return false;
141
+ const output = `${result.stdout}\n${result.stderr}`;
142
+ if (!/EPERM reading/i.test(output))
143
+ return false;
144
+ const normalizedOutput = normalizeForCompare(output);
145
+ const normalizedCli = normalizeForCompare(cliPath);
146
+ return normalizedOutput.includes(normalizedCli) || /src[\\/]cli\.ts/i.test(output);
147
+ }
148
+ function resolveWindowsGbrainRuntime(resolveCommandPath) {
149
+ const shimPath = resolveCommandPath('gbrain');
150
+ if (!shimPath || !/\.cmd$/i.test(shimPath) || !existsSync(shimPath))
151
+ return null;
152
+ try {
153
+ const content = readFileSync(shimPath, 'utf8');
154
+ const match = content.match(/call\s+"([^"]*bun\.cmd)"\s+"([^"]*src[\\/]cli\.ts)"/i);
155
+ const cliPath = match?.[2];
156
+ const bunShim = match?.[1] ?? resolveCommandPath('bun');
157
+ const bunExe = resolveWindowsBunExe(bunShim);
158
+ if (!cliPath || !bunExe || !existsSync(cliPath) || !existsSync(bunExe))
159
+ return null;
160
+ const packageRoot = dirname(dirname(cliPath));
161
+ return {
162
+ shimPath,
163
+ bunExe,
164
+ cliPath,
165
+ packageRoot,
166
+ version: readPackageVersion(packageRoot),
167
+ };
168
+ }
169
+ catch {
170
+ return null;
171
+ }
172
+ }
173
+ function resolveWindowsBunExe(bunShim) {
174
+ if (!bunShim)
175
+ return null;
176
+ const candidate = join(dirname(bunShim), 'node_modules', 'bun', 'bin', 'bun.exe');
177
+ return existsSync(candidate) ? candidate : null;
178
+ }
179
+ function ensureMirroredRuntime(runtime, deps) {
180
+ const cliMtimeMs = statSync(runtime.cliPath).mtimeMs;
181
+ const mirrorKey = `${resolve(runtime.packageRoot)}|${runtime.version ?? ''}|${cliMtimeMs}`;
182
+ const mirrorRoot = join(deps.tmpDir ?? tmpdir(), 'scale-engine', 'gbrain-runtime', createHash('sha1').update(mirrorKey).digest('hex').slice(0, 16));
183
+ const cliRelativePath = relative(runtime.packageRoot, runtime.cliPath);
184
+ const mirrorCliPath = join(mirrorRoot, cliRelativePath);
185
+ let selectedRoot = mirrorRoot;
186
+ if (!isMirrorFresh(mirrorRoot, runtime.packageRoot, runtime.version, cliMtimeMs, mirrorCliPath)) {
187
+ const stagedRoot = `${mirrorRoot}-staging-${process.pid}-${Date.now()}-${Math.random().toString(16).slice(2, 8)}`;
188
+ rmSync(stagedRoot, { recursive: true, force: true });
189
+ mkdirSync(dirname(mirrorRoot), { recursive: true });
190
+ cpSync(runtime.packageRoot, stagedRoot, { recursive: true, force: true });
191
+ const metadata = {
192
+ sourceRoot: runtime.packageRoot,
193
+ version: runtime.version,
194
+ cliMtimeMs,
195
+ };
196
+ writeFileSync(join(stagedRoot, MIRROR_META_FILE), JSON.stringify(metadata, null, 2), 'utf8');
197
+ const stagedCliPath = join(stagedRoot, cliRelativePath);
198
+ if (!isMirrorFresh(mirrorRoot, runtime.packageRoot, runtime.version, cliMtimeMs, mirrorCliPath)) {
199
+ try {
200
+ renameSync(stagedRoot, mirrorRoot);
201
+ }
202
+ catch {
203
+ if (isMirrorFresh(mirrorRoot, runtime.packageRoot, runtime.version, cliMtimeMs, mirrorCliPath)) {
204
+ rmSync(stagedRoot, { recursive: true, force: true });
205
+ }
206
+ else {
207
+ selectedRoot = stagedRoot;
208
+ }
209
+ }
210
+ }
211
+ else {
212
+ rmSync(stagedRoot, { recursive: true, force: true });
213
+ }
214
+ if (selectedRoot === mirrorRoot && !existsSync(mirrorCliPath) && existsSync(stagedCliPath))
215
+ selectedRoot = stagedRoot;
216
+ }
217
+ return {
218
+ ...runtime,
219
+ cliPath: join(selectedRoot, cliRelativePath),
220
+ mirrorRoot: selectedRoot,
221
+ };
222
+ }
223
+ function isMirrorFresh(mirrorRoot, sourceRoot, version, cliMtimeMs, mirrorCliPath) {
224
+ if (!existsSync(mirrorCliPath))
225
+ return false;
226
+ const metadataPath = join(mirrorRoot, MIRROR_META_FILE);
227
+ if (!existsSync(metadataPath))
228
+ return false;
229
+ try {
230
+ const parsed = JSON.parse(readFileSync(metadataPath, 'utf8'));
231
+ return parsed.sourceRoot === sourceRoot
232
+ && parsed.version === version
233
+ && parsed.cliMtimeMs === cliMtimeMs;
234
+ }
235
+ catch {
236
+ return false;
237
+ }
238
+ }
239
+ function readPackageVersion(packageRoot) {
240
+ try {
241
+ const parsed = JSON.parse(readFileSync(join(packageRoot, 'package.json'), 'utf8'));
242
+ return typeof parsed.version === 'string' ? parsed.version : undefined;
243
+ }
244
+ catch {
245
+ return undefined;
246
+ }
247
+ }
248
+ function resolveWindowsCommandShim(executable, currentPlatform) {
249
+ if (currentPlatform !== 'win32')
250
+ return executable;
251
+ if (!/[\\/]/.test(executable) || /\.[a-z0-9]+$/i.test(executable))
252
+ return executable;
253
+ for (const extension of ['.cmd', '.exe', '.bat', '.com']) {
254
+ const candidate = `${executable}${extension}`;
255
+ if (existsSync(candidate))
256
+ return candidate;
257
+ }
258
+ return executable;
259
+ }
260
+ function normalizeForCompare(value) {
261
+ return value.replace(/\//g, '\\').toLowerCase();
262
+ }
263
+ function mergeEnv(baseEnv, overrideEnv) {
264
+ return {
265
+ ...process.env,
266
+ ...(baseEnv ?? {}),
267
+ ...(overrideEnv ?? {}),
268
+ };
269
+ }
270
+ //# sourceMappingURL=GbrainRuntime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GbrainRuntime.js","sourceRoot":"","sources":["../../src/core/GbrainRuntime.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { spawnSync } from 'node:child_process';
2
2
  import { existsSync } from 'node:fs';
3
3
  import { arch, platform, release } from 'node:os';
4
4
  import { delimiter, extname } from 'node:path';
5
+ import { runGbrainCommandSync } from '../core/GbrainRuntime.js';
5
6
  import { resolveExternalCommandPath } from '../core/ExternalCommand.js';
6
7
  const CHECK_DEFINITIONS = [
7
8
  {
@@ -149,7 +150,7 @@ export function inspectEnvironment(options = {}) {
149
150
  .split(currentPlatform === 'win32' ? ';' : delimiter)
150
151
  .map(entry => entry.trim())
151
152
  .filter(Boolean);
152
- const checks = CHECK_DEFINITIONS.map(definition => inspectCommand(definition, resolver, runner));
153
+ const checks = CHECK_DEFINITIONS.map(definition => inspectCommand(definition, resolver, runner, currentPlatform));
153
154
  const nodeStatus = nodeVersionStatus(currentNodeVersion);
154
155
  const warnings = buildWarnings(checks, nodeStatus);
155
156
  const recommendations = buildRecommendations(checks, nodeStatus);
@@ -213,7 +214,7 @@ export function renderEnvironmentDoctor(report) {
213
214
  lines.push(` [NEXT] ${recommendation}`);
214
215
  return lines.join('\n');
215
216
  }
216
- function inspectCommand(definition, resolver, runner) {
217
+ function inspectCommand(definition, resolver, runner, currentPlatform) {
217
218
  let firstFailed;
218
219
  for (const candidate of definition.candidates) {
219
220
  const resolved = resolver(candidate.command);
@@ -221,9 +222,10 @@ function inspectCommand(definition, resolver, runner) {
221
222
  continue;
222
223
  const result = runner(candidate.command, candidate.args, resolved);
223
224
  const output = `${result.stdout}\n${result.stderr}`.trim();
225
+ const interpreted = interpretSpecialCheckResult(definition.id, output, resolved, currentPlatform, result.exitCode);
226
+ const version = resolveSpecialVersion(definition.id, output, runner, resolved) ?? interpreted?.version ?? firstLine(output);
224
227
  if (result.exitCode === 0) {
225
- const version = firstLine(output);
226
- const status = commandVersionStatus(definition.id, version);
228
+ const status = interpreted ?? commandVersionStatus(definition.id, version);
227
229
  return {
228
230
  id: definition.id,
229
231
  label: definition.label,
@@ -239,6 +241,22 @@ function inspectCommand(definition, resolver, runner) {
239
241
  requiredFor: definition.requiredFor,
240
242
  };
241
243
  }
244
+ if (interpreted) {
245
+ return {
246
+ id: definition.id,
247
+ label: definition.label,
248
+ category: definition.category,
249
+ status: interpreted.status,
250
+ required: definition.required,
251
+ candidates: definition.candidates.map(item => item.display),
252
+ detectedCommand: candidate.display,
253
+ resolvedPath: resolved,
254
+ version,
255
+ reason: interpreted.reason,
256
+ installHint: definition.installHint,
257
+ requiredFor: definition.requiredFor,
258
+ };
259
+ }
242
260
  firstFailed ??= {
243
261
  id: definition.id,
244
262
  label: definition.label,
@@ -248,7 +266,7 @@ function inspectCommand(definition, resolver, runner) {
248
266
  candidates: definition.candidates.map(item => item.display),
249
267
  detectedCommand: candidate.display,
250
268
  resolvedPath: resolved,
251
- reason: `${definition.label} was found but health/version command failed: ${firstLine(output)}`,
269
+ reason: `${definition.label} was found but health/version command failed: ${summarizeFailureOutput(definition.id, output)}`,
252
270
  installHint: definition.installHint,
253
271
  requiredFor: definition.requiredFor,
254
272
  };
@@ -268,6 +286,17 @@ function inspectCommand(definition, resolver, runner) {
268
286
  };
269
287
  }
270
288
  function runCommand(command, args, resolvedPath) {
289
+ if (command === 'gbrain') {
290
+ const result = runGbrainCommandSync(args, {
291
+ timeout: 20_000,
292
+ env: process.env,
293
+ });
294
+ return {
295
+ exitCode: result.exitCode,
296
+ stdout: result.stdout,
297
+ stderr: result.stderr,
298
+ };
299
+ }
271
300
  const executable = resolveWindowsCommandShim(resolvedPath ?? command);
272
301
  const wrapperArgs = isWindowsCommandWrapper(executable)
273
302
  ? ['/d', '/c', 'call', executable, ...args]
@@ -352,6 +381,101 @@ function shellCandidates(currentPlatform) {
352
381
  function firstLine(value) {
353
382
  return value.split(/\r?\n/).map(line => line.trim()).find(Boolean) ?? '';
354
383
  }
384
+ function interpretSpecialCheckResult(id, output, resolvedPath, currentPlatform, exitCode) {
385
+ if (id === 'bash'
386
+ && currentPlatform === 'win32'
387
+ && isWindowsSystemBashLauncher(resolvedPath)
388
+ && typeof exitCode === 'number'
389
+ && exitCode !== 0) {
390
+ return {
391
+ status: 'missing',
392
+ reason: 'Windows bash launcher is present, but no usable Bash runtime is configured.',
393
+ };
394
+ }
395
+ if (id === 'gbrain')
396
+ return interpretGbrainDoctorOutput(output);
397
+ return null;
398
+ }
399
+ function summarizeFailureOutput(id, output) {
400
+ const line = firstLine(output);
401
+ if (id === 'gbrain') {
402
+ const interpreted = interpretGbrainDoctorOutput(output);
403
+ if (interpreted)
404
+ return interpreted.reason;
405
+ }
406
+ if (!line)
407
+ return 'no output';
408
+ if (id === 'gbrain') {
409
+ const parsed = parseGbrainDoctorReport(output);
410
+ if (parsed) {
411
+ const failingChecks = gbrainDoctorChecks(parsed)
412
+ .filter(check => check.status && check.status !== 'ok')
413
+ .map(check => check.name)
414
+ .filter(Boolean);
415
+ if (failingChecks.length > 0) {
416
+ return `gbrain doctor reported ${failingChecks.length} non-ok check(s): ${failingChecks.slice(0, 4).join(', ')}`;
417
+ }
418
+ if (typeof parsed.status === 'string')
419
+ return `gbrain doctor status=${parsed.status}`;
420
+ }
421
+ }
422
+ return compactText(line);
423
+ }
424
+ function interpretGbrainDoctorOutput(output) {
425
+ const parsed = parseGbrainDoctorReport(output);
426
+ if (!parsed)
427
+ return null;
428
+ if (gbrainCoreRecallReady(parsed)) {
429
+ const optionalIssues = gbrainDoctorChecks(parsed)
430
+ .filter(check => check.status !== 'ok' && !GBRAIN_CORE_RECALL_CHECKS.has(check.name))
431
+ .map(check => check.name)
432
+ .filter(Boolean);
433
+ return {
434
+ status: 'ok',
435
+ reason: optionalIssues.length > 0
436
+ ? `GBrain core recall is available; optional doctor warnings: ${optionalIssues.slice(0, 4).join(', ')}`
437
+ : 'GBrain core recall is available.',
438
+ };
439
+ }
440
+ const coreIssues = gbrainDoctorChecks(parsed)
441
+ .filter(check => check.status !== 'ok' && GBRAIN_CORE_RECALL_CHECKS.has(check.name))
442
+ .map(check => check.name)
443
+ .filter(Boolean);
444
+ if (coreIssues.length > 0) {
445
+ return {
446
+ status: 'warn',
447
+ reason: `gbrain doctor reported core recall issue(s): ${coreIssues.join(', ')}`,
448
+ };
449
+ }
450
+ const nonOkChecks = gbrainDoctorChecks(parsed)
451
+ .filter(check => check.status !== 'ok')
452
+ .map(check => check.name)
453
+ .filter(Boolean);
454
+ if (nonOkChecks.length > 0) {
455
+ return {
456
+ status: 'warn',
457
+ reason: `gbrain doctor reported ${nonOkChecks.length} non-ok check(s): ${nonOkChecks.slice(0, 4).join(', ')}`,
458
+ };
459
+ }
460
+ if (typeof parsed.status === 'string') {
461
+ return {
462
+ status: 'ok',
463
+ reason: `gbrain doctor status=${parsed.status}`,
464
+ };
465
+ }
466
+ return null;
467
+ }
468
+ function compactText(value, maxLength = 200) {
469
+ const normalized = value.replace(/\s+/g, ' ').trim();
470
+ if (normalized.length <= maxLength)
471
+ return normalized;
472
+ return `${normalized.slice(0, maxLength - 1)}…`;
473
+ }
474
+ function resolveSpecialVersion(id, output, runner, resolvedPath) {
475
+ if (id !== 'gbrain')
476
+ return undefined;
477
+ return resolveGbrainVersion(output, runner, resolvedPath);
478
+ }
355
479
  function parseSemver(value) {
356
480
  const match = value.match(/(\d+)\.(\d+)(?:\.(\d+))?/);
357
481
  if (!match)
@@ -362,4 +486,96 @@ function parseSemver(value) {
362
486
  patch: Number.parseInt(match[3] ?? '0', 10),
363
487
  };
364
488
  }
489
+ function isWindowsSystemBashLauncher(resolvedPath) {
490
+ if (!resolvedPath)
491
+ return false;
492
+ return /[\\/]windows[\\/]system32[\\/]bash\.exe$/i.test(resolvedPath);
493
+ }
494
+ const GBRAIN_CORE_RECALL_CHECKS = new Set(['connection', 'schema_version', 'brain_score']);
495
+ function resolveGbrainVersion(output, runner, resolvedPath) {
496
+ const versionProbe = runner('gbrain', ['--version'], resolvedPath);
497
+ const versionLine = firstLine(`${versionProbe.stdout}\n${versionProbe.stderr}`);
498
+ if (versionProbe.exitCode === 0 && versionLine && !looksLikeJson(versionLine)) {
499
+ return compactText(versionLine, 80);
500
+ }
501
+ const parsed = parseGbrainDoctorReport(output);
502
+ if (typeof parsed?.status === 'string') {
503
+ return `gbrain doctor status=${parsed.status}`;
504
+ }
505
+ return 'gbrain doctor --json';
506
+ }
507
+ function parseGbrainDoctorReport(output) {
508
+ const json = extractFirstJsonObject(output);
509
+ if (!json)
510
+ return null;
511
+ try {
512
+ const parsed = JSON.parse(json);
513
+ return isRecord(parsed) ? parsed : null;
514
+ }
515
+ catch {
516
+ return null;
517
+ }
518
+ }
519
+ function extractFirstJsonObject(output) {
520
+ const start = output.indexOf('{');
521
+ if (start === -1)
522
+ return null;
523
+ let depth = 0;
524
+ let inString = false;
525
+ let escaped = false;
526
+ for (let index = start; index < output.length; index += 1) {
527
+ const char = output[index];
528
+ if (inString) {
529
+ if (escaped) {
530
+ escaped = false;
531
+ }
532
+ else if (char === '\\') {
533
+ escaped = true;
534
+ }
535
+ else if (char === '"') {
536
+ inString = false;
537
+ }
538
+ continue;
539
+ }
540
+ if (char === '"') {
541
+ inString = true;
542
+ continue;
543
+ }
544
+ if (char === '{')
545
+ depth += 1;
546
+ if (char === '}') {
547
+ depth -= 1;
548
+ if (depth === 0)
549
+ return output.slice(start, index + 1);
550
+ }
551
+ }
552
+ return null;
553
+ }
554
+ function looksLikeJson(value) {
555
+ const trimmed = value.trim();
556
+ return trimmed.startsWith('{') || trimmed.startsWith('[');
557
+ }
558
+ function gbrainCoreRecallReady(report) {
559
+ const connection = gbrainDoctorCheckStatus(report, 'connection');
560
+ const schema = gbrainDoctorCheckStatus(report, 'schema_version');
561
+ const brainScore = gbrainDoctorCheckStatus(report, 'brain_score');
562
+ return connection === 'ok' && (schema === 'ok' || brainScore === 'ok');
563
+ }
564
+ function gbrainDoctorCheckStatus(report, name) {
565
+ return gbrainDoctorChecks(report).find(check => check.name === name)?.status;
566
+ }
567
+ function gbrainDoctorChecks(report) {
568
+ if (!Array.isArray(report.checks))
569
+ return [];
570
+ return report.checks
571
+ .filter(isRecord)
572
+ .map(check => ({
573
+ name: String(check.name ?? ''),
574
+ status: String(check.status ?? ''),
575
+ }))
576
+ .filter(check => check.name);
577
+ }
578
+ function isRecord(value) {
579
+ return Boolean(value) && typeof value === 'object' && !Array.isArray(value);
580
+ }
365
581
  //# sourceMappingURL=EnvironmentDoctor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EnvironmentDoctor.js","sourceRoot":"","sources":["../../src/env/EnvironmentDoctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EnvironmentDoctor.js","sourceRoot":"","sources":["../../src/env/EnvironmentDoctor.ts"],"names":[],"mappings":"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"}