@hongmaple0820/scale-engine 0.40.1 → 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.
- package/dist/api/cli.js +267 -7
- package/dist/api/cli.js.map +1 -1
- package/dist/api/doctor.js +1 -1
- package/dist/api/doctor.js.map +1 -1
- package/dist/bootstrap/DependencyBootstrap.d.ts +1 -0
- package/dist/bootstrap/DependencyBootstrap.js +137 -25
- package/dist/bootstrap/DependencyBootstrap.js.map +1 -1
- package/dist/capabilities/InstalledSkillsIntegration.js +29 -9
- package/dist/capabilities/InstalledSkillsIntegration.js.map +1 -1
- package/dist/context/ContextBudget.js +2 -2
- package/dist/core/GbrainRuntime.d.ts +25 -0
- package/dist/core/GbrainRuntime.js +270 -0
- package/dist/core/GbrainRuntime.js.map +1 -0
- package/dist/env/EnvironmentDoctor.js +221 -5
- package/dist/env/EnvironmentDoctor.js.map +1 -1
- package/dist/memory/MemoryProviders.js +38 -91
- package/dist/memory/MemoryProviders.js.map +1 -1
- package/dist/runtime/ModelUsageLedger.d.ts +53 -2
- package/dist/runtime/ModelUsageLedger.js +243 -39
- package/dist/runtime/ModelUsageLedger.js.map +1 -1
- package/dist/setup/SetupVerification.d.ts +42 -0
- package/dist/setup/SetupVerification.js +180 -0
- package/dist/setup/SetupVerification.js.map +1 -0
- package/dist/tools/ToolCapabilityRegistry.js +10 -0
- package/dist/tools/ToolCapabilityRegistry.js.map +1 -1
- package/dist/workflow/VerificationProfile.js +1 -1
- package/dist/workflow/VerificationProfile.js.map +1 -1
- package/docs/CONTEXT_BUDGET.md +12 -2
- package/docs/GOVERNANCE_DASHBOARD.md +7 -0
- package/docs/start/quickstart.md +1 -0
- package/package.json +3 -2
- package/scripts/workflow/lib/gbrain-runtime.mjs +185 -0
- package/scripts/workflow/lib/report-output.mjs +107 -0
- package/scripts/workflow/provider-rehearsal.mjs +129 -48
- package/scripts/workflow/setup-smoke.mjs +142 -8
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { homedir } from 'node:os';
|
|
2
|
+
import { resolve } from 'node:path';
|
|
3
|
+
import { bootstrapDependencies } from '../bootstrap/DependencyBootstrap.js';
|
|
4
|
+
import { inspectCodeIntelligence } from '../codegraph/CodeIntelligence.js';
|
|
5
|
+
import { inspectEnvironment } from '../env/EnvironmentDoctor.js';
|
|
6
|
+
import { inspectMemoryProviders } from '../memory/MemoryProviders.js';
|
|
7
|
+
import { inspectToolCapabilities } from '../tools/ToolCapabilityRegistry.js';
|
|
8
|
+
export async function verifySetup(options = {}) {
|
|
9
|
+
const projectDir = resolve(options.projectDir ?? process.cwd());
|
|
10
|
+
const scaleDir = options.scaleDir ?? '.scale';
|
|
11
|
+
const dependencyBootstrap = await bootstrapDependencies({
|
|
12
|
+
projectDir,
|
|
13
|
+
scaleDir,
|
|
14
|
+
packIds: options.packIds,
|
|
15
|
+
includeIds: options.includeIds,
|
|
16
|
+
apply: false,
|
|
17
|
+
});
|
|
18
|
+
const environment = inspectEnvironment();
|
|
19
|
+
const memoryProviders = inspectMemoryProviders({ projectDir, scaleDir });
|
|
20
|
+
const codeIntelligence = inspectCodeIntelligence({ projectDir, scaleDir });
|
|
21
|
+
const toolIds = dependencyBootstrap.items.map(item => item.id);
|
|
22
|
+
const toolCapabilities = inspectToolCapabilities({
|
|
23
|
+
projectDir,
|
|
24
|
+
homeDir: homedir(),
|
|
25
|
+
toolIds,
|
|
26
|
+
});
|
|
27
|
+
const blockingIssues = [];
|
|
28
|
+
const warnings = [];
|
|
29
|
+
const nonBlockingDependencies = resolveNonBlockingDependencyIds(dependencyBootstrap, memoryProviders);
|
|
30
|
+
const dependencyStatus = {
|
|
31
|
+
failed: dependencyBootstrap.items.filter(item => item.status === 'failed').map(item => item.id),
|
|
32
|
+
manualReview: dependencyBootstrap.items
|
|
33
|
+
.filter(item => item.status === 'manual-review' && !nonBlockingDependencies.has(item.id))
|
|
34
|
+
.map(item => item.id),
|
|
35
|
+
needsInit: dependencyBootstrap.items
|
|
36
|
+
.filter(item => item.status === 'needs-init' && !nonBlockingDependencies.has(item.id))
|
|
37
|
+
.map(item => item.id),
|
|
38
|
+
versionDrift: dependencyBootstrap.items.filter(item => item.status === 'version-drift').map(item => item.id),
|
|
39
|
+
};
|
|
40
|
+
if (nonBlockingDependencies.has('gbrain')) {
|
|
41
|
+
warnings.push('gbrain is unavailable in this runtime, but scale-local fallback remains available for governed memory recall.');
|
|
42
|
+
}
|
|
43
|
+
if (dependencyStatus.failed.length > 0) {
|
|
44
|
+
blockingIssues.push(`Dependency bootstrap failed: ${dependencyStatus.failed.join(', ')}`);
|
|
45
|
+
}
|
|
46
|
+
if (dependencyStatus.manualReview.length > 0) {
|
|
47
|
+
blockingIssues.push(`Manual review required: ${dependencyStatus.manualReview.join(', ')}`);
|
|
48
|
+
}
|
|
49
|
+
if (dependencyStatus.needsInit.length > 0) {
|
|
50
|
+
blockingIssues.push(`Initialization required: ${dependencyStatus.needsInit.join(', ')}`);
|
|
51
|
+
}
|
|
52
|
+
if (dependencyStatus.versionDrift.length > 0) {
|
|
53
|
+
blockingIssues.push(`Version drift detected: ${dependencyStatus.versionDrift.join(', ')}`);
|
|
54
|
+
}
|
|
55
|
+
const dependencyItemsById = new Map(dependencyBootstrap.items.map(item => [item.id, item]));
|
|
56
|
+
const missingRuntime = dependencyBootstrap.runtimeChecks.filter(check => check.status === 'missing');
|
|
57
|
+
for (const check of missingRuntime) {
|
|
58
|
+
const blocksVerification = check.requiredFor.some(id => {
|
|
59
|
+
const item = dependencyItemsById.get(id);
|
|
60
|
+
return !item || (item.status !== 'installed' && item.status !== 'installed-now');
|
|
61
|
+
});
|
|
62
|
+
const message = `Missing runtime dependency: ${check.label} (${check.requiredFor.join(', ')})`;
|
|
63
|
+
if (blocksVerification)
|
|
64
|
+
blockingIssues.push(message);
|
|
65
|
+
}
|
|
66
|
+
const warnedRuntime = dependencyBootstrap.runtimeChecks.filter(check => check.status === 'warn');
|
|
67
|
+
for (const check of warnedRuntime) {
|
|
68
|
+
if (shouldWarnForRuntimeCheck(check.requiredFor, dependencyItemsById)) {
|
|
69
|
+
warnings.push(compactMessage(`Runtime warning: ${check.label} - ${check.reason}`));
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
const brokenEnvironmentChecks = environment.checks.filter(check => check.required && (check.status === 'missing' || check.status === 'fail'));
|
|
73
|
+
for (const check of brokenEnvironmentChecks) {
|
|
74
|
+
blockingIssues.push(`Required environment check failed: ${check.label} - ${check.reason}`);
|
|
75
|
+
}
|
|
76
|
+
if (!toolCapabilities.ok) {
|
|
77
|
+
const missingTools = toolCapabilities.tools.filter(tool => !tool.installed).map(tool => tool.id);
|
|
78
|
+
const blockingMissingTools = missingTools.filter(id => !nonBlockingDependencies.has(id));
|
|
79
|
+
if (blockingMissingTools.length > 0) {
|
|
80
|
+
blockingIssues.push(`Missing governed capabilities: ${blockingMissingTools.join(', ')}`);
|
|
81
|
+
}
|
|
82
|
+
else if (missingTools.length > 0) {
|
|
83
|
+
warnings.push(`Optional governed capabilities unavailable in this runtime: ${missingTools.join(', ')}`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
const includesMemory = dependencyBootstrap.packIds.includes('full') || dependencyBootstrap.packIds.includes('memory');
|
|
87
|
+
if (includesMemory && memoryProviders.availableProviderCount === 0) {
|
|
88
|
+
blockingIssues.push('No memory provider is currently available');
|
|
89
|
+
}
|
|
90
|
+
const includesKnowledge = dependencyBootstrap.packIds.includes('full') || dependencyBootstrap.packIds.includes('knowledge');
|
|
91
|
+
if (includesKnowledge && codeIntelligence.availableProviderCount === 0 && !codeIntelligence.fallback.available) {
|
|
92
|
+
blockingIssues.push('No code intelligence provider or fallback is available');
|
|
93
|
+
}
|
|
94
|
+
for (const check of environment.checks) {
|
|
95
|
+
if (check.required || check.status !== 'warn')
|
|
96
|
+
continue;
|
|
97
|
+
if (shouldSuppressEnvironmentWarning(check, dependencyItemsById))
|
|
98
|
+
continue;
|
|
99
|
+
warnings.push(compactMessage(`${check.id}: ${check.reason}`));
|
|
100
|
+
}
|
|
101
|
+
warnings.push(...memoryProviders.warnings.map(item => compactMessage(item)));
|
|
102
|
+
const recommendations = uniqueStrings([
|
|
103
|
+
...dependencyBootstrap.postCheckCommands,
|
|
104
|
+
...dependencyBootstrap.recommendations,
|
|
105
|
+
...environment.recommendations,
|
|
106
|
+
...codeIntelligence.recommendations,
|
|
107
|
+
`scale tool doctor --tools ${toolIds.join(',')} --json`,
|
|
108
|
+
].filter(Boolean));
|
|
109
|
+
return {
|
|
110
|
+
ok: blockingIssues.length === 0,
|
|
111
|
+
generatedAt: new Date().toISOString(),
|
|
112
|
+
projectDir,
|
|
113
|
+
scaleDir: dependencyBootstrap.scaleDir,
|
|
114
|
+
packIds: dependencyBootstrap.packIds,
|
|
115
|
+
includeIds: dependencyBootstrap.includeIds,
|
|
116
|
+
dependencyBootstrap,
|
|
117
|
+
environment,
|
|
118
|
+
memoryProviders,
|
|
119
|
+
codeIntelligence,
|
|
120
|
+
toolCapabilities,
|
|
121
|
+
summary: {
|
|
122
|
+
blockingIssues,
|
|
123
|
+
dependencyStatus,
|
|
124
|
+
warningCount: warnings.length,
|
|
125
|
+
runtimeWarnings: warnedRuntime.length,
|
|
126
|
+
installedTools: toolCapabilities.summary.installed,
|
|
127
|
+
totalTools: toolCapabilities.summary.total,
|
|
128
|
+
availableMemoryProviders: memoryProviders.availableProviderCount,
|
|
129
|
+
availableCodeProviders: codeIntelligence.availableProviderCount,
|
|
130
|
+
},
|
|
131
|
+
warnings: uniqueStrings(warnings),
|
|
132
|
+
recommendations,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
function uniqueStrings(items) {
|
|
136
|
+
return [...new Set(items.map(item => item.trim()).filter(Boolean))];
|
|
137
|
+
}
|
|
138
|
+
function compactMessage(value, maxLength = 220) {
|
|
139
|
+
const normalized = value.replace(/\s+/g, ' ').trim();
|
|
140
|
+
if (normalized.length <= maxLength)
|
|
141
|
+
return normalized;
|
|
142
|
+
return `${normalized.slice(0, maxLength - 3)}...`;
|
|
143
|
+
}
|
|
144
|
+
function shouldWarnForRuntimeCheck(requiredFor, dependencyItemsById) {
|
|
145
|
+
return requiredFor.some(id => {
|
|
146
|
+
const item = dependencyItemsById.get(id);
|
|
147
|
+
return !item || (item.status !== 'installed' && item.status !== 'installed-now');
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
function shouldSuppressEnvironmentWarning(check, dependencyItemsById) {
|
|
151
|
+
const relatedItems = ENVIRONMENT_WARNING_TOOL_MAP[check.id] ?? [];
|
|
152
|
+
if (relatedItems.length === 0)
|
|
153
|
+
return false;
|
|
154
|
+
return relatedItems.every(id => {
|
|
155
|
+
const item = dependencyItemsById.get(id);
|
|
156
|
+
if (!item)
|
|
157
|
+
return false;
|
|
158
|
+
return item.status === 'installed' || item.status === 'installed-now';
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
const ENVIRONMENT_WARNING_TOOL_MAP = {
|
|
162
|
+
cargo: ['rtk'],
|
|
163
|
+
bun: ['gbrain'],
|
|
164
|
+
python: ['graphify'],
|
|
165
|
+
'python-installer': ['graphify'],
|
|
166
|
+
npm: ['codegraph'],
|
|
167
|
+
npx: ['awesome-design-md', 'ui-ux-pro-max', 'frontend-design'],
|
|
168
|
+
};
|
|
169
|
+
function resolveNonBlockingDependencyIds(dependencyBootstrap, memoryProviders) {
|
|
170
|
+
const ids = new Set();
|
|
171
|
+
const includesMemory = dependencyBootstrap.packIds.includes('full') || dependencyBootstrap.packIds.includes('memory');
|
|
172
|
+
if (!includesMemory)
|
|
173
|
+
return ids;
|
|
174
|
+
const gbrain = memoryProviders.providers.find(provider => provider.id === 'gbrain');
|
|
175
|
+
const fallback = memoryProviders.providers.find(provider => provider.kind === 'scale-local' && provider.available);
|
|
176
|
+
if (gbrain && !gbrain.available && fallback)
|
|
177
|
+
ids.add('gbrain');
|
|
178
|
+
return ids;
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=SetupVerification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SetupVerification.js","sourceRoot":"","sources":["../../src/setup/SetupVerification.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { existsSync } from 'node:fs';
|
|
|
3
3
|
import { homedir } from 'node:os';
|
|
4
4
|
import { join, resolve } from 'node:path';
|
|
5
5
|
import { runExternalCommandSync } from '../core/ExternalCommand.js';
|
|
6
|
+
import { runGbrainCommandSync } from '../core/GbrainRuntime.js';
|
|
6
7
|
import { wrapCliCommandWithRtk } from './RtkRuntime.js';
|
|
7
8
|
export const TOOL_CAPABILITY_CATALOG = [
|
|
8
9
|
{
|
|
@@ -265,6 +266,15 @@ function defaultCommandExists(command) {
|
|
|
265
266
|
}
|
|
266
267
|
}
|
|
267
268
|
function defaultRunVersion(command, args) {
|
|
269
|
+
if (command === 'gbrain') {
|
|
270
|
+
const result = runGbrainCommandSync(args, {
|
|
271
|
+
timeout: 5000,
|
|
272
|
+
env: process.env,
|
|
273
|
+
});
|
|
274
|
+
return result.exitCode === 0
|
|
275
|
+
? { ok: true, stdout: result.stdout || result.stderr }
|
|
276
|
+
: { ok: false, stdout: result.stdout, stderr: result.stderr || `gbrain command failed with exit code ${result.exitCode}` };
|
|
277
|
+
}
|
|
268
278
|
try {
|
|
269
279
|
const invocation = wrapCliCommandWithRtk(command, args, defaultCommandExists);
|
|
270
280
|
const stdout = runExternalCommandSync(invocation.command, invocation.args, { encoding: 'utf-8', timeout: 5000, stdio: ['ignore', 'pipe', 'pipe'] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolCapabilityRegistry.js","sourceRoot":"","sources":["../../src/tools/ToolCapabilityRegistry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ToolCapabilityRegistry.js","sourceRoot":"","sources":["../../src/tools/ToolCapabilityRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ export const DEFAULT_VERIFICATION_POLICY = {
|
|
|
4
4
|
optionalToolsWarnOnly: true,
|
|
5
5
|
artifactGate: 'warn',
|
|
6
6
|
artifactGateLevels: ['M', 'L', 'CRITICAL'],
|
|
7
|
-
engineeringStandardsGate: '
|
|
7
|
+
engineeringStandardsGate: 'block',
|
|
8
8
|
productSmokeGate: 'warn',
|
|
9
9
|
};
|
|
10
10
|
export function loadVerificationMatrix(projectDir = process.cwd(), scaleDir = '.scale') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VerificationProfile.js","sourceRoot":"","sources":["../../src/workflow/VerificationProfile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAgErD,MAAM,CAAC,MAAM,2BAA2B,GAAuB;IAC7D,qBAAqB,EAAE,IAAI;IAC3B,YAAY,EAAE,MAAM;IACpB,kBAAkB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC;IAC1C,wBAAwB,EAAE,
|
|
1
|
+
{"version":3,"file":"VerificationProfile.js","sourceRoot":"","sources":["../../src/workflow/VerificationProfile.ts"],"names":[],"mappings":"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"}
|
package/docs/CONTEXT_BUDGET.md
CHANGED
|
@@ -29,7 +29,7 @@ scale context budget --write
|
|
|
29
29
|
Check thresholds:
|
|
30
30
|
|
|
31
31
|
```bash
|
|
32
|
-
scale context doctor --max-always
|
|
32
|
+
scale context doctor --max-always 1500 --max-task 4000
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
Build a lazy-loaded task context pack:
|
|
@@ -51,7 +51,7 @@ scale ai-os plan \
|
|
|
51
51
|
--task "Review frontend route with browser evidence" \
|
|
52
52
|
--level L \
|
|
53
53
|
--files src/routes/upload.tsx \
|
|
54
|
-
--budget
|
|
54
|
+
--budget 4000 \
|
|
55
55
|
--json
|
|
56
56
|
```
|
|
57
57
|
|
|
@@ -126,6 +126,16 @@ Provider behavior:
|
|
|
126
126
|
|
|
127
127
|
The cache policy does not live in `ModelRouter`. `ModelRouter` selects a model; provider request builders or adapters apply provider-specific cache controls.
|
|
128
128
|
|
|
129
|
+
To replace estimates with real usage evidence, write provider usage into the ledger and audit it directly:
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
scale token record \
|
|
133
|
+
--provider anthropic \
|
|
134
|
+
--usage-json '{"usage":{"input_tokens":1000,"output_tokens":200,"cache_read_input_tokens":500}}'
|
|
135
|
+
|
|
136
|
+
scale token report --day 2026-05-23 --json
|
|
137
|
+
```
|
|
138
|
+
|
|
129
139
|
## Progressive Governance
|
|
130
140
|
|
|
131
141
|
SCALE now has a baseline risk classifier. It keeps low-risk documentation work in `minimal` mode and escalates risky tasks to `standard`, `expanded`, or `critical`.
|
|
@@ -54,6 +54,13 @@ V2.0 adds `MetricsAggregator` as the dashboard aggregation layer. It keeps the d
|
|
|
54
54
|
|
|
55
55
|
Each number must trace back to local JSON/JSONL evidence. If a source is absent, the dashboard reports zero rather than inventing values.
|
|
56
56
|
|
|
57
|
+
You can inspect the same model-usage ledger directly without opening the HTML dashboard:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
scale token report --since-days 7
|
|
61
|
+
scale token report --day 2026-05-23 --json
|
|
62
|
+
```
|
|
63
|
+
|
|
57
64
|
## Status Model
|
|
58
65
|
|
|
59
66
|
- Runtime evidence failures are blocking.
|
package/docs/start/quickstart.md
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hongmaple0820/scale-engine",
|
|
3
|
-
"version": "0.40.
|
|
3
|
+
"version": "0.40.2",
|
|
4
4
|
"description": "Executable AI agent governance with workflow gates, evidence, skill/tool orchestration, and traceable HTML artifacts",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
"docs/workflow",
|
|
49
49
|
"image",
|
|
50
50
|
"examples/demo-projects/agent-governance-demo",
|
|
51
|
+
"scripts/workflow/lib",
|
|
51
52
|
"scripts/workflow/setup-smoke.mjs",
|
|
52
53
|
"scripts/workflow/provider-rehearsal.mjs"
|
|
53
54
|
],
|
|
@@ -65,7 +66,7 @@
|
|
|
65
66
|
"smoke:providers": "node scripts/workflow/provider-rehearsal.mjs",
|
|
66
67
|
"smoke:gbrain": "node scripts/workflow/provider-rehearsal.mjs --skip-graphify --require-gbrain",
|
|
67
68
|
"smoke:graphify": "node scripts/workflow/provider-rehearsal.mjs --skip-gbrain --require-graphify",
|
|
68
|
-
"release:check": "npm run typecheck && npm run lint && npm test && npm run smoke:setup && npm run build && npm audit --omit=dev && git diff --check && npm pack --dry-run",
|
|
69
|
+
"release:check": "npm run typecheck && npm run lint && npm test && npm run smoke:setup && npm run smoke:providers -- --write-report && npm run build && npm audit --omit=dev && git diff --check && npm pack --dry-run",
|
|
69
70
|
"mcp": "node dist/api/mcp.js",
|
|
70
71
|
"serve": "node dist/api/http.js"
|
|
71
72
|
},
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto'
|
|
2
|
+
import { cpSync, existsSync, mkdirSync, readFileSync, renameSync, rmSync, statSync, writeFileSync } from 'node:fs'
|
|
3
|
+
import { tmpdir } from 'node:os'
|
|
4
|
+
import { dirname, join, resolve } from 'node:path'
|
|
5
|
+
|
|
6
|
+
const MIRROR_META_FILE = '.scale-gbrain-runtime.json'
|
|
7
|
+
const GBRAIN_TIMEOUT_RECOVERY_COMMANDS = new Set(['--version', 'version', 'doctor', 'list', 'get', 'query', 'search'])
|
|
8
|
+
|
|
9
|
+
export function resolveDirectWindowsGbrainInvocation(command, args, resolveCommandPath) {
|
|
10
|
+
if (process.platform !== 'win32' || command !== 'gbrain') return null
|
|
11
|
+
const gbrainShim = resolveCommandPath('gbrain')
|
|
12
|
+
if (!gbrainShim || !/\.cmd$/i.test(gbrainShim) || !existsSync(gbrainShim)) return null
|
|
13
|
+
try {
|
|
14
|
+
const content = readFileSync(gbrainShim, 'utf8')
|
|
15
|
+
const match = content.match(/call\s+"([^"]*bun\.cmd)"\s+"([^"]*src[\\/]cli\.ts)"/i)
|
|
16
|
+
const cliPath = match?.[2]
|
|
17
|
+
const bunShim = match?.[1] ?? resolveCommandPath('bun')
|
|
18
|
+
const bunExe = bunShim ? join(dirname(bunShim), 'node_modules', 'bun', 'bin', 'bun.exe') : ''
|
|
19
|
+
if (cliPath && bunExe && existsSync(bunExe)) {
|
|
20
|
+
return {
|
|
21
|
+
command: bunExe,
|
|
22
|
+
args: [cliPath, ...args],
|
|
23
|
+
cwd: dirname(dirname(cliPath)),
|
|
24
|
+
cliPath,
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
} catch {
|
|
28
|
+
return null
|
|
29
|
+
}
|
|
30
|
+
return null
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export function shouldRetryWithMirroredGbrain(invocation, result) {
|
|
34
|
+
if (!invocation?.cliPath) return false
|
|
35
|
+
if (result.status === 0) return false
|
|
36
|
+
const output = `${String(result.stdout ?? '')}\n${String(result.stderr ?? '')}\n${String(result.error?.message ?? '')}`
|
|
37
|
+
if (!/EPERM reading/i.test(output)) return false
|
|
38
|
+
return normalizeForCompare(output).includes(normalizeForCompare(invocation.cliPath))
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export function ensureMirroredGbrainInvocation(invocation) {
|
|
42
|
+
const packageRoot = invocation.cwd
|
|
43
|
+
const cliMtimeMs = statSync(invocation.cliPath).mtimeMs
|
|
44
|
+
const version = readPackageVersion(packageRoot)
|
|
45
|
+
const mirrorKey = `${resolve(packageRoot)}|${version ?? ''}|${cliMtimeMs}`
|
|
46
|
+
const mirrorRoot = join(
|
|
47
|
+
tmpdir(),
|
|
48
|
+
'scale-engine',
|
|
49
|
+
'gbrain-runtime',
|
|
50
|
+
createHash('sha1').update(mirrorKey).digest('hex').slice(0, 16),
|
|
51
|
+
)
|
|
52
|
+
const cliRelativePath = invocation.cliPath.slice(packageRoot.length + 1)
|
|
53
|
+
const mirrorCliPath = join(mirrorRoot, cliRelativePath)
|
|
54
|
+
let selectedRoot = mirrorRoot
|
|
55
|
+
if (!isMirrorFresh(mirrorRoot, packageRoot, version, cliMtimeMs, mirrorCliPath)) {
|
|
56
|
+
const stagedRoot = `${mirrorRoot}-staging-${process.pid}-${Date.now()}-${Math.random().toString(16).slice(2, 8)}`
|
|
57
|
+
rmSync(stagedRoot, { recursive: true, force: true })
|
|
58
|
+
mkdirSync(dirname(mirrorRoot), { recursive: true })
|
|
59
|
+
cpSync(packageRoot, stagedRoot, { recursive: true, force: true })
|
|
60
|
+
writeFileSync(join(stagedRoot, MIRROR_META_FILE), JSON.stringify({
|
|
61
|
+
sourceRoot: packageRoot,
|
|
62
|
+
version,
|
|
63
|
+
cliMtimeMs,
|
|
64
|
+
}, null, 2), 'utf8')
|
|
65
|
+
const stagedCliPath = join(stagedRoot, cliRelativePath)
|
|
66
|
+
if (!isMirrorFresh(mirrorRoot, packageRoot, version, cliMtimeMs, mirrorCliPath)) {
|
|
67
|
+
try {
|
|
68
|
+
renameSync(stagedRoot, mirrorRoot)
|
|
69
|
+
} catch {
|
|
70
|
+
if (isMirrorFresh(mirrorRoot, packageRoot, version, cliMtimeMs, mirrorCliPath)) {
|
|
71
|
+
rmSync(stagedRoot, { recursive: true, force: true })
|
|
72
|
+
} else {
|
|
73
|
+
selectedRoot = stagedRoot
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
} else {
|
|
77
|
+
rmSync(stagedRoot, { recursive: true, force: true })
|
|
78
|
+
}
|
|
79
|
+
if (selectedRoot === mirrorRoot && !existsSync(mirrorCliPath) && existsSync(stagedCliPath)) selectedRoot = stagedRoot
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
...invocation,
|
|
83
|
+
args: [join(selectedRoot, cliRelativePath), ...invocation.args.slice(1)],
|
|
84
|
+
cwd: selectedRoot,
|
|
85
|
+
cliPath: join(selectedRoot, cliRelativePath),
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export function normalizeGbrainSpawnResult(args, result) {
|
|
90
|
+
const stdout = String(result.stdout ?? '')
|
|
91
|
+
const stderr = `${String(result.stderr ?? '')}${result.error ? `\n${result.error.message}` : ''}`.trim()
|
|
92
|
+
const exitCode = typeof result.status === 'number' ? result.status : 1
|
|
93
|
+
const timedOut = /ETIMEDOUT/i.test(String(result.error?.message ?? ''))
|
|
94
|
+
const recoveredTimeout = shouldRecoverGbrainTimeout(args, stdout, stderr, exitCode, timedOut)
|
|
95
|
+
return {
|
|
96
|
+
stdout,
|
|
97
|
+
stderr: recoveredTimeout ? stripRecoverableTimeoutNoise(stderr) : stderr,
|
|
98
|
+
exitCode: recoveredTimeout ? 0 : exitCode,
|
|
99
|
+
timedOut: recoveredTimeout ? false : timedOut,
|
|
100
|
+
recoveredTimeout,
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
function isMirrorFresh(mirrorRoot, sourceRoot, version, cliMtimeMs, mirrorCliPath) {
|
|
105
|
+
if (!existsSync(mirrorCliPath)) return false
|
|
106
|
+
const metadataPath = join(mirrorRoot, MIRROR_META_FILE)
|
|
107
|
+
if (!existsSync(metadataPath)) return false
|
|
108
|
+
try {
|
|
109
|
+
const parsed = JSON.parse(readFileSync(metadataPath, 'utf8'))
|
|
110
|
+
return parsed.sourceRoot === sourceRoot
|
|
111
|
+
&& parsed.version === version
|
|
112
|
+
&& parsed.cliMtimeMs === cliMtimeMs
|
|
113
|
+
} catch {
|
|
114
|
+
return false
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
function readPackageVersion(packageRoot) {
|
|
119
|
+
try {
|
|
120
|
+
const parsed = JSON.parse(readFileSync(join(packageRoot, 'package.json'), 'utf8'))
|
|
121
|
+
return typeof parsed.version === 'string' ? parsed.version : undefined
|
|
122
|
+
} catch {
|
|
123
|
+
return undefined
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
function normalizeForCompare(value) {
|
|
128
|
+
return String(value).replace(/\//g, '\\').toLowerCase()
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
function shouldRecoverGbrainTimeout(args, stdout, stderr, exitCode, timedOut) {
|
|
132
|
+
if (!timedOut || exitCode === 0) return false
|
|
133
|
+
const command = String(args?.[0] ?? '').trim().toLowerCase()
|
|
134
|
+
if (!command || !GBRAIN_TIMEOUT_RECOVERY_COMMANDS.has(command)) return false
|
|
135
|
+
const cleanedStderr = stripRecoverableTimeoutNoise(stderr)
|
|
136
|
+
if (cleanedStderr) return false
|
|
137
|
+
return hasRecoverableGbrainOutput(command, stdout.trim())
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
function hasRecoverableGbrainOutput(command, stdout) {
|
|
141
|
+
if (!stdout) return false
|
|
142
|
+
switch (command) {
|
|
143
|
+
case '--version':
|
|
144
|
+
case 'version':
|
|
145
|
+
return /\bgbrain\b/i.test(stdout) || /\d+\.\d+\.\d+/.test(stdout)
|
|
146
|
+
case 'doctor':
|
|
147
|
+
return looksLikeJsonOutput(stdout)
|
|
148
|
+
case 'list':
|
|
149
|
+
return /no pages found/i.test(stdout)
|
|
150
|
+
|| /^\d+\.\s+\S+/m.test(stdout)
|
|
151
|
+
|| /^\[\d+(?:\.\d+)?\]\s+/m.test(stdout)
|
|
152
|
+
case 'get':
|
|
153
|
+
return /^---$/m.test(stdout)
|
|
154
|
+
|| /^#\s+\S+/m.test(stdout)
|
|
155
|
+
|| looksLikeJsonOutput(stdout)
|
|
156
|
+
case 'query':
|
|
157
|
+
case 'search':
|
|
158
|
+
return looksLikeJsonOutput(stdout)
|
|
159
|
+
|| /no (pages|results) found/i.test(stdout)
|
|
160
|
+
|| /^\[\d+(?:\.\d+)?\]\s+/m.test(stdout)
|
|
161
|
+
|| /^\d+\.\s+\S+/m.test(stdout)
|
|
162
|
+
default:
|
|
163
|
+
return false
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
function looksLikeJsonOutput(stdout) {
|
|
168
|
+
const trimmed = String(stdout ?? '').trim()
|
|
169
|
+
if (!trimmed || (!trimmed.startsWith('{') && !trimmed.startsWith('['))) return false
|
|
170
|
+
try {
|
|
171
|
+
JSON.parse(trimmed)
|
|
172
|
+
return true
|
|
173
|
+
} catch {
|
|
174
|
+
return false
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
function stripRecoverableTimeoutNoise(stderr) {
|
|
179
|
+
return String(stderr ?? '')
|
|
180
|
+
.replace(/\n?spawnSync .*?\bETIMEDOUT\b\s*/gim, '\n')
|
|
181
|
+
.replace(/\n?Command failed: .*?\bETIMEDOUT\b\s*/gim, '\n')
|
|
182
|
+
.replace(/\n?timed out after .*$/gim, '\n')
|
|
183
|
+
.replace(/\n{3,}/g, '\n\n')
|
|
184
|
+
.trim()
|
|
185
|
+
}
|