@workbench-ai/workbench-core 0.0.51 → 0.0.52
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/adapter-auth.d.ts.map +1 -1
- package/dist/adapter-auth.js +2 -0
- package/dist/execution-events.d.ts +1 -1
- package/dist/execution-events.d.ts.map +1 -1
- package/dist/execution-events.js +24 -2
- package/dist/index.d.ts +20 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +194 -45
- package/dist/sandbox-backends/docker.d.ts.map +1 -1
- package/dist/sandbox-backends/docker.js +104 -7
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter-auth.d.ts","sourceRoot":"","sources":["../src/adapter-auth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"adapter-auth.d.ts","sourceRoot":"","sources":["../src/adapter-auth.ts"],"names":[],"mappings":"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"}
|
package/dist/adapter-auth.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { promises as fs } from "node:fs";
|
|
2
2
|
import os from "node:os";
|
|
3
3
|
import path from "node:path";
|
|
4
|
+
import { assertWorkbenchAdapterAuthEnvNameAllowed } from "@workbench-ai/workbench-contract";
|
|
4
5
|
const ADAPTER_AUTH_STORE_VERSION = 1;
|
|
5
6
|
const DEFAULT_AUTH_PROFILE = "default";
|
|
6
7
|
export function defaultWorkbenchAdapterAuthStoreRoot() {
|
|
@@ -225,6 +226,7 @@ function sanitizeWorkbenchAdapterAuthEnvVar(value) {
|
|
|
225
226
|
if (!/^[A-Z_][A-Z0-9_]*$/u.test(name)) {
|
|
226
227
|
throw new Error(`Adapter auth env var is invalid: ${name}`);
|
|
227
228
|
}
|
|
229
|
+
assertWorkbenchAdapterAuthEnvNameAllowed(name);
|
|
228
230
|
if (!envValue.trim()) {
|
|
229
231
|
throw new Error(`Adapter auth env var ${name} is empty.`);
|
|
230
232
|
}
|
|
@@ -49,5 +49,5 @@ export declare function createWorkbenchProgressStdoutParser(onEnvelope: (envelop
|
|
|
49
49
|
write(chunk: Buffer | string): void;
|
|
50
50
|
flush(): void;
|
|
51
51
|
};
|
|
52
|
-
export declare function publishWorkbenchProgressStdoutEnvelope(envelope: WorkbenchProgressStdoutEnvelope): Promise<void>;
|
|
52
|
+
export declare function publishWorkbenchProgressStdoutEnvelope(envelope: WorkbenchProgressStdoutEnvelope, expectedTarget?: WorkbenchExecutionProgressTarget): Promise<void>;
|
|
53
53
|
//# sourceMappingURL=execution-events.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution-events.d.ts","sourceRoot":"","sources":["../src/execution-events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,uBAAuB,EACvB,4BAA4B,EAC5B,6BAA6B,EAC9B,MAAM,kCAAkC,CAAC;AAE1C,MAAM,WAAW,gCAAgC;IAC/C,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;CACxC;AAED,MAAM,WAAW,uCAAuC;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,gCAAgC,CAAC;CAC3C;AAED,MAAM,WAAW,4BAA4B;IAC3C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,6BAA6B,CAAC;IACtC,IAAI,CAAC,EAAE,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,EAAE,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC1C,OAAO,EAAE,IAAI,CAAC;CACf;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,OAAO,CAAC,MAAM,EAAE,SAAS,4BAA4B,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,eAAO,MAAM,gCAAgC,2BAA2B,CAAC;AAEzE,wBAAgB,sCAAsC,CACpD,OAAO,EAAE,uCAAuC,GAC/C,gCAAgC,CAsClC;AAED,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,gCAAgC,GAAG,SAAS,EACvD,IAAI,EAAE;IACJ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC3C,IAAI,CAAC,EAAE,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACA,OAAO,CAAC,IAAI,CAAC,CAef;AAyCD,MAAM,WAAW,+BAA+B;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE;QACJ,IAAI,EAAE,wBAAwB,CAAC;QAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,EAAE,4BAA4B,CAAC;KACrC,CAAC;CACH;AAED,wBAAgB,mCAAmC,CACjD,UAAU,EAAE,CAAC,QAAQ,EAAE,+BAA+B,KAAK,IAAI,GAC9D;IACD,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACpC,KAAK,IAAI,IAAI,CAAC;CACf,CA0DA;AAED,wBAAsB,sCAAsC,CAC1D,QAAQ,EAAE,+BAA+B,
|
|
1
|
+
{"version":3,"file":"execution-events.d.ts","sourceRoot":"","sources":["../src/execution-events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,uBAAuB,EACvB,4BAA4B,EAC5B,6BAA6B,EAC9B,MAAM,kCAAkC,CAAC;AAE1C,MAAM,WAAW,gCAAgC;IAC/C,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;CACxC;AAED,MAAM,WAAW,uCAAuC;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,gCAAgC,CAAC;CAC3C;AAED,MAAM,WAAW,4BAA4B;IAC3C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,6BAA6B,CAAC;IACtC,IAAI,CAAC,EAAE,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,EAAE,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC1C,OAAO,EAAE,IAAI,CAAC;CACf;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,OAAO,CAAC,MAAM,EAAE,SAAS,4BAA4B,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,eAAO,MAAM,gCAAgC,2BAA2B,CAAC;AAEzE,wBAAgB,sCAAsC,CACpD,OAAO,EAAE,uCAAuC,GAC/C,gCAAgC,CAsClC;AAED,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,gCAAgC,GAAG,SAAS,EACvD,IAAI,EAAE;IACJ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC3C,IAAI,CAAC,EAAE,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACA,OAAO,CAAC,IAAI,CAAC,CAef;AAyCD,MAAM,WAAW,+BAA+B;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE;QACJ,IAAI,EAAE,wBAAwB,CAAC;QAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,EAAE,4BAA4B,CAAC;KACrC,CAAC;CACH;AAED,wBAAgB,mCAAmC,CACjD,UAAU,EAAE,CAAC,QAAQ,EAAE,+BAA+B,KAAK,IAAI,GAC9D;IACD,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACpC,KAAK,IAAI,IAAI,CAAC;CACf,CA0DA;AAED,wBAAsB,sCAAsC,CAC1D,QAAQ,EAAE,+BAA+B,EACzC,cAAc,CAAC,EAAE,gCAAgC,GAChD,OAAO,CAAC,IAAI,CAAC,CAiBf"}
|
package/dist/execution-events.js
CHANGED
|
@@ -147,8 +147,30 @@ export function createWorkbenchProgressStdoutParser(onEnvelope) {
|
|
|
147
147
|
},
|
|
148
148
|
};
|
|
149
149
|
}
|
|
150
|
-
export async function publishWorkbenchProgressStdoutEnvelope(envelope) {
|
|
151
|
-
|
|
150
|
+
export async function publishWorkbenchProgressStdoutEnvelope(envelope, expectedTarget) {
|
|
151
|
+
const target = validProgressTarget(expectedTarget);
|
|
152
|
+
if (!target) {
|
|
153
|
+
await postProgressBody(envelope);
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
if (!progressEnvelopeMatchesTarget(envelope, target)) {
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
await postProgressBody({
|
|
160
|
+
url: target.url,
|
|
161
|
+
body: {
|
|
162
|
+
...envelope.body,
|
|
163
|
+
...(target.ownerUserId ? { ownerUserId: target.ownerUserId } : {}),
|
|
164
|
+
progressToken: target.token,
|
|
165
|
+
},
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
function progressEnvelopeMatchesTarget(envelope, target) {
|
|
169
|
+
return envelope.url === target.url &&
|
|
170
|
+
envelope.body.progressToken === target.token &&
|
|
171
|
+
(!target.ownerUserId ||
|
|
172
|
+
envelope.body.ownerUserId === undefined ||
|
|
173
|
+
envelope.body.ownerUserId === target.ownerUserId);
|
|
152
174
|
}
|
|
153
175
|
function firstExistingIndex(indexes) {
|
|
154
176
|
return indexes.filter((index) => index >= 0).sort((a, b) => a - b)[0] ?? -1;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { AuthoredWorkbenchSourceDocument, CandidateCaseExecutionRef, CandidateCaseReview, CandidateFilePreview, CandidateFileSummary, CandidateLineageGraph, CandidateRecord, CandidateSummary, EvalCaseResult, EvaluationRecord, EvaluationScorecard, HostedWorkbenchEnvironment, HostedWorkbenchEnvironmentVersion, HostedWorkbenchFileInput, HostedWorkbenchJob, Json, SurfaceSnapshotFile, UsageSummary, WorkbenchRuntimeBundle, WorkbenchRuntimeBundleStats, WorkbenchProjectStateSource, WorkbenchCandidatePatch, WorkbenchExecutionCapability, WorkbenchExecutionSpec, WorkbenchResult } from "@workbench-ai/workbench-contract";
|
|
2
|
-
import { type WorkbenchAdapterOperationExecutor, type WorkbenchAdapterOperationResult } from "@workbench-ai/workbench-protocol";
|
|
1
|
+
import type { AuthoredWorkbenchSourceDocument, CandidateCaseExecutionRef, CandidateCaseReview, CandidateFilePreview, CandidateFileSummary, CandidateLineageGraph, CandidateRecord, CandidateSummary, EvalCaseResult, EngineResolveBinding, EvaluationRecord, EvaluationScorecard, HostedWorkbenchEnvironment, HostedWorkbenchEnvironmentVersion, HostedWorkbenchFileInput, HostedWorkbenchJob, Json, SurfaceSnapshotFile, UsageSummary, WorkbenchRuntimeBundle, WorkbenchRuntimeBundleStats, WorkbenchProjectSourceResources, WorkbenchProjectStateSource, WorkbenchCandidatePatch, WorkbenchExecutionCapability, WorkbenchExecutionSpec, WorkbenchResult } from "@workbench-ai/workbench-contract";
|
|
2
|
+
import { type WorkbenchAdapterOperationExecutor, type WorkbenchAdapterOperationResult, type WorkbenchAdapterManifest } from "@workbench-ai/workbench-protocol";
|
|
3
3
|
import { type GenericEngineCaseSpec, type GenericRunSpec, type WorkbenchCaseSelector, type WorkbenchEngineCase } from "./generic-spec.ts";
|
|
4
4
|
import type { WorkbenchExecutionRuntimeInput } from "./execution-runtime-types.ts";
|
|
5
5
|
import { createWorkbenchExecutionCapability, type SandboxExecutionFileStore, type SandboxPlane } from "./sandbox-plane.ts";
|
|
@@ -28,6 +28,24 @@ export type { WorkbenchExecutionEventPublisher, WorkbenchExecutionProgressTarget
|
|
|
28
28
|
export type { CandidateCaseReview, CandidateRecord, EngineResolveBinding, EvaluationScorecard, HostedWorkbenchJob, Json, RunSummary, RuntimeEvent, SurfaceSnapshotFile, WorkbenchRuntimeBundle, WorkbenchRuntimeBundleStats, WorkbenchRuntimeRun, WorkbenchRuntimeCandidateFiles, WorkbenchRuntimeExecutionFiles, WorkbenchRuntimeImportResult, WorkbenchProjectSourceResources, WorkbenchProjectState, WorkbenchProjectStateBase, WorkbenchProjectStateImportResult, WorkbenchProjectStateRemote, WorkbenchProjectStateSource, WorkbenchExecutionCapability, WorkbenchExecutionTrace, WorkbenchTraceSession, WorkbenchSandboxHandle, WorkbenchSandboxExecutionMetadata, } from "@workbench-ai/workbench-contract";
|
|
29
29
|
export declare function sanitizeWorkbenchRuntimeJobForExchange(job: HostedWorkbenchJob): HostedWorkbenchJob;
|
|
30
30
|
export declare function sanitizeWorkbenchRuntimeCandidateForExchange(candidate: CandidateRecord): CandidateRecord;
|
|
31
|
+
export interface WorkbenchBenchmarkContentFingerprintInput {
|
|
32
|
+
sourceYaml: string;
|
|
33
|
+
engineResolveFiles: readonly SurfaceSnapshotFile[];
|
|
34
|
+
engineResolveBinding: EngineResolveBinding;
|
|
35
|
+
adapterFiles?: readonly SurfaceSnapshotFile[];
|
|
36
|
+
adapterManifests?: readonly WorkbenchAdapterManifest[];
|
|
37
|
+
runtimeFiles?: readonly SurfaceSnapshotFile[];
|
|
38
|
+
resources?: WorkbenchProjectSourceResources | null;
|
|
39
|
+
network?: WorkbenchProjectStateSource["network"] | null;
|
|
40
|
+
}
|
|
41
|
+
export interface WorkbenchCandidateContentFingerprintInput {
|
|
42
|
+
sourceYaml: string;
|
|
43
|
+
candidateFiles: readonly SurfaceSnapshotFile[];
|
|
44
|
+
adapterFiles?: readonly SurfaceSnapshotFile[];
|
|
45
|
+
adapterManifests?: readonly WorkbenchAdapterManifest[];
|
|
46
|
+
}
|
|
47
|
+
export declare function workbenchBenchmarkContentFingerprint(input: WorkbenchBenchmarkContentFingerprintInput): string;
|
|
48
|
+
export declare function workbenchCandidateContentFingerprint(input: WorkbenchCandidateContentFingerprintInput): string;
|
|
31
49
|
export declare function workbenchProjectSourceFingerprint(input: Omit<WorkbenchProjectStateSource, "files" | "revisionId" | "fingerprint">): string;
|
|
32
50
|
export declare function workbenchRuntimeBundleFingerprint(bundle: WorkbenchRuntimeBundle): string;
|
|
33
51
|
export declare function workbenchSurfaceFilesEqualForExchange(left: readonly SurfaceSnapshotFile[], right: readonly SurfaceSnapshotFile[]): boolean;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAGV,+BAA+B,EAC/B,yBAAyB,EACzB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EAEpB,qBAAqB,EAErB,eAAe,EACf,gBAAgB,EAEhB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EAEnB,0BAA0B,EAC1B,iCAAiC,EACjC,wBAAwB,EACxB,kBAAkB,EAClB,IAAI,EAEJ,mBAAmB,EACnB,YAAY,EACZ,sBAAsB,EACtB,2BAA2B,EAC3B,+BAA+B,EAK/B,2BAA2B,EAC3B,uBAAuB,EAEvB,4BAA4B,EAE5B,sBAAsB,EAEtB,eAAe,EAChB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAaL,KAAK,iCAAiC,EACtC,KAAK,+BAA+B,EACpC,KAAK,wBAAwB,EAI9B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAWL,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACzB,MAAM,mBAAmB,CAAC;AAO3B,OAAO,KAAK,EACV,8BAA8B,EAE/B,MAAM,8BAA8B,CAAC;AActC,OAAO,EACL,kCAAkC,EAYlC,KAAK,yBAAyB,EAG9B,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAqC5B,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,2BAA2B,EAC3B,sBAAsB,EACtB,8BAA8B,EAC9B,qBAAqB,EACrB,8BAA8B,EAC9B,2BAA2B,EAC3B,iCAAiC,EACjC,gCAAgC,EAChC,yBAAyB,EACzB,gCAAgC,EAChC,kCAAkC,EAClC,2BAA2B,EAC3B,cAAc,EACd,gBAAgB,EAChB,oCAAoC,EACpC,mCAAmC,EACnC,KAAK,qBAAqB,EAC1B,KAAK,6BAA6B,EAClC,KAAK,8BAA8B,EACnC,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,GAC7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,6CAA6C,EAC7C,KAAK,gCAAgC,EACrC,KAAK,oCAAoC,GAC1C,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,kBAAkB,EAClB,6BAA6B,EAC7B,uCAAuC,EACvC,kCAAkC,EAClC,6BAA6B,EAC7B,oCAAoC,EACpC,yCAAyC,EACzC,gCAAgC,EAChC,iCAAiC,EACjC,+BAA+B,EAC/B,uCAAuC,EACvC,KAAK,kCAAkC,EACvC,KAAK,yBAAyB,EAC9B,KAAK,iCAAiC,EACtC,KAAK,iCAAiC,EACtC,KAAK,4BAA4B,EACjC,KAAK,+BAA+B,EACpC,KAAK,4BAA4B,EACjC,KAAK,kCAAkC,EACvC,KAAK,8BAA8B,EACnC,KAAK,wBAAwB,GAC9B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,cAAc,EACd,gCAAgC,EAChC,oCAAoC,EACpC,8BAA8B,EAC9B,mCAAmC,EACnC,+BAA+B,EAC/B,kCAAkC,EAClC,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAC/B,KAAK,gCAAgC,EACrC,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,GAChC,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,8BAA8B,EAC9B,4BAA4B,GAC7B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,0BAA0B,EAC1B,wBAAwB,EACxB,aAAa,EACb,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,eAAe,EACf,8BAA8B,EAC9B,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mCAAmC,EACnC,sCAAsC,GACvC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,2BAA2B,GAC5B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,oBAAoB,EACpB,gCAAgC,EAChC,0BAA0B,EAC1B,8BAA8B,GAC/B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,sCAAsC,EACtC,uCAAuC,EACvC,sCAAsC,EACtC,4CAA4C,EAC5C,+BAA+B,EAC/B,6BAA6B,EAC7B,yCAAyC,EACzC,wCAAwC,EACxC,oCAAoC,EACpC,mCAAmC,EACnC,mCAAmC,EACnC,oCAAoC,EACpC,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,EACpC,KAAK,oCAAoC,EACzC,KAAK,oCAAoC,EACzC,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,GAC7B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,4BAA4B,EAC5B,KAAK,iCAAiC,GACvC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,EAC3B,sCAAsC,EACtC,gCAAgC,EAChC,0BAA0B,EAC1B,uCAAuC,GACxC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,8BAA8B,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,GACjC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,gCAAgC,EAChC,0BAA0B,EAC1B,2BAA2B,EAC3B,4BAA4B,EAC5B,iBAAiB,EACjB,aAAa,EACb,yBAAyB,EACzB,4BAA4B,EAC5B,wBAAwB,EACxB,oCAAoC,EACpC,4BAA4B,EAC5B,uBAAuB,EACvB,KAAK,oBAAoB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,WAAW,EACX,YAAY,EACZ,wBAAwB,EACxB,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,KAAK,6BAA6B,EAClC,KAAK,2BAA2B,EAChC,KAAK,6BAA6B,GACnC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,iCAAiC,EACjC,wCAAwC,EACxC,wCAAwC,EACxC,KAAK,gCAAgC,GACtC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,mCAAmC,EACnC,qCAAqC,EACrC,+BAA+B,EAC/B,gCAAgC,EAChC,uCAAuC,EACvC,kCAAkC,EAClC,gCAAgC,EAChC,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EACjB,KAAK,+BAA+B,GACrC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,+BAA+B,EAC/B,+BAA+B,EAC/B,0BAA0B,EAC1B,wBAAwB,EACxB,oCAAoC,EACpC,oCAAoC,EACpC,6BAA6B,EAC7B,8BAA8B,GAC/B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,oCAAoC,EACpC,6BAA6B,EAC7B,qCAAqC,EACrC,kCAAkC,EAClC,gCAAgC,EAChC,iBAAiB,EACjB,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,sBAAsB,EACtB,kCAAkC,EAClC,oCAAoC,EACpC,wBAAwB,EACxB,mCAAmC,EACnC,oCAAoC,EACpC,uCAAuC,EACvC,yBAAyB,EACzB,uCAAuC,EACvC,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,EAChC,KAAK,iCAAiC,EACtC,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,GAClC,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,gCAAgC,EAChC,gCAAgC,GACjC,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,IAAI,EACJ,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,2BAA2B,EAC3B,mBAAmB,EACnB,8BAA8B,EAC9B,8BAA8B,EAC9B,4BAA4B,EAC5B,+BAA+B,EAC/B,qBAAqB,EACrB,yBAAyB,EACzB,iCAAiC,EACjC,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC5B,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,iCAAiC,GAClC,MAAM,kCAAkC,CAAC;AAE1C,wBAAgB,sCAAsC,CACpD,GAAG,EAAE,kBAAkB,GACtB,kBAAkB,CAepB;AAED,wBAAgB,4CAA4C,CAC1D,SAAS,EAAE,eAAe,GACzB,eAAe,CAcjB;AAED,MAAM,WAAW,yCAAyC;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACnD,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,YAAY,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC9C,gBAAgB,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACvD,YAAY,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC9C,SAAS,CAAC,EAAE,+BAA+B,GAAG,IAAI,CAAC;IACnD,OAAO,CAAC,EAAE,2BAA2B,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;CACzD;AAED,MAAM,WAAW,yCAAyC;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC/C,YAAY,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC9C,gBAAgB,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;CACxD;AAED,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,yCAAyC,GAC/C,MAAM,CA2BR;AAED,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,yCAAyC,GAC/C,MAAM,CAqBR;AAED,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,IAAI,CAAC,2BAA2B,EAAE,OAAO,GAAG,YAAY,GAAG,aAAa,CAAC,GAC/E,MAAM,CAoBR;AAED,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,sBAAsB,GAC7B,MAAM,CAiCR;AAED,wBAAgB,qCAAqC,CACnD,IAAI,EAAE,SAAS,mBAAmB,EAAE,EACpC,KAAK,EAAE,SAAS,mBAAmB,EAAE,GACpC,OAAO,CAGT;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,sBAAsB,GAC7B,2BAA2B,CAW7B;AAoND,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAC;IACtD,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,iBAAiB,EAAE,eAAe,GAAG,IAAI,CAAC;IAC1C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,kBAAkB,CAAC;IACxB,IAAI,EAAE,cAAc,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,mBAAmB,EAAE,CAAC;IACtC,kBAAkB,EAAE,mBAAmB,EAAE,CAAC;IAC1C,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,gBAAgB,CAAC,EAAE,+BAA+B,EAAE,CAAC;IACrD,cAAc,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACvC,cAAc,CAAC,EAAE,uBAAuB,CAAC;IACzC,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,4BAA4B,EAAE,iCAAiC,EAwFzE,CAAC;AAEJ,eAAO,MAAM,oBAAoB,EAAE,0BAA0B,EAwC5D,CAAC;AAEF,wBAAgB,mCAAmC,CAAC,IAAI,EAAE;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC7C,KAAK,CAAC,EAAE,wBAAwB,EAAE,CAAC;CACpC,GAAG,+BAA+B,CAUlC;AA2QD,wBAAgB,6BAA6B,CAAC,IAAI,EAAE;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB,EAAE,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACtD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACpC,iBAAiB,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IAC3C,sBAAsB,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,EAAE;QACV,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,GAAG,2BAA2B,CAwK9B;AAkLD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAIhF;AAED,wBAAgB,uCAAuC,CAAC,IAAI,EAAE;IAC5D,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC,KAAK,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;CACrD,GAAG,mBAAmB,EAAE,CAExB;AAED,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAWvE;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE;IACnD,IAAI,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACrC,GAAG,mBAAmB,EAAE,CAmDxB;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,qBAAqB,CAAC;CACjC;AAED,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,cAAc,GACnB,qBAAqB,CAEvB;AAED,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,cAAc,GACnB,wBAAwB,CAO1B;AAED,wBAAgB,iCAAiC,CAC/C,WAAW,EAAE,SAAS,mBAAmB,EAAE,EAC3C,QAAQ,EAAE,qBAAqB,GAC9B,MAAM,EAAE,CAIV;AAED,wBAAgB,0CAA0C,CAAC,IAAI,EAAE;IAC/D,IAAI,EAAE,cAAc,CAAC;IACrB,WAAW,EAAE,SAAS,mBAAmB,EAAE,CAAC;CAC7C,GAAG,MAAM,EAAE,CAYX;AAED,wBAAgB,kCAAkC,CAChD,IAAI,EAAE,SAAS,kBAAkB,EAAE,EACnC,OAAO,EAAE,SAAS,MAAM,EAAE,GACzB,kBAAkB,EAAE,CAYtB;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,qBAAqB,GAC9B,MAAM,CAIR;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,wBAAwB,GAC/B,MAAM,CAER;AAED,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,qBAAqB,GAC9B,OAAO,CAET;AAkBD,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,GAAG,IAAI,GAAG,SAAS,GAC/D,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAMpC;AAED,wBAAgB,mCAAmC,CAAC,SAAS,EAAE,eAAe,GAAG,eAAe,CAY/F;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,eAAe,GAAG,gBAAgB,CAQvF;AAED,wBAAgB,gCAAgC,CAAC,IAAI,EAAE;IACrD,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC9C,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC,GAAG,MAAM,CAuBT;AAkJD,MAAM,WAAW,gCAAgC;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC3C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC/C,sBAAsB,EAAE,MAAM,CAAC;IAC/B,kBAAkB,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACnD,YAAY,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;CAC9C;AAED,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,gCAAgC,GACtC,mBAAmB,EAAE,CAcvB;AAED,wBAAgB,+BAA+B,CAAC,IAAI,EAAE;IACpD,WAAW,EAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CACvC,GAAG,MAAM,CAKT;AAkBD,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAOnE;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,SAAS,mBAAmB,EAAE,GACpC,mBAAmB,EAAE,CAIvB;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACvC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,GAAG,qBAAqB,CAmBxB;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,wBAAwB,EAAE,GAChC,mBAAmB,EAAE,CAgBvB;AAED,wBAAgB,2BAA2B,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EACpE,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GACrC,CAAC,EAAE,CAcL;AAmCD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,SAAS,mBAAmB,EAAE,EACrC,YAAY,GAAE,SAAS,MAAM,EAAmC,GAC/D,oBAAoB,EAAE,CAkBxB;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE;IAC/C,KAAK,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,UAAU,CAAC;CACnC,GAAG,oBAAoB,CAsBvB;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,SAAS,EAAE,eAAe,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,yBAAyB,EAAE,CAAC;CAC1C,GAAG,mBAAmB,CAyDtB;AAuJD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE;IAC/C,GAAG,EAAE,kBAAkB,CAAC;IACxB,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC1C,kBAAkB,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACnD,WAAW,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC5C,UAAU,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;CAC7C,GAAG,oBAAoB,CA2DvB;AA8CD,MAAM,WAAW,4BAA4B;IAC3C,eAAe,EAAE,MAAM,CAAC;IACxB,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,6BAA6B,CAAC,EAAE,CAC9B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,8BAA8B,EACpC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,yBAAyB,KACjC,YAAY,CAAC;CACnB;AAED,wBAAsB,4BAA4B,CAChD,IAAI,EAAE,8BAA8B,EACpC,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,kBAAkB,CAAC,CA4D7B;AAED,wBAAgB,yCAAyC,CACvD,IAAI,EAAE,IAAI,CAAC,8BAA8B,EAAE,KAAK,GAAG,kBAAkB,GAAG,yBAAyB,CAAC,GACjG,iCAAiC,CAWnC;AAuSD,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,kBAAkB,GACtB,sBAAsB,CAAC,SAAS,CAAC,GAAG,IAAI,CAE1C;AAED,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,8BAA8B,EACpC,SAAS,EAAE,sBAAsB,EACjC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,UAAU,CAAC,OAAO,kCAAkC,CAAC,GAChE,OAAO,CAAC,kBAAkB,CAAC,CA0C7B;AAwaD,wBAAsB,sDAAsD,CAC1E,IAAI,EAAE,8BAA8B,EACpC,SAAS,EAAE,sBAAsB,EACjC,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,4BAA4B,GACxC,OAAO,CAAC,kBAAkB,CAAC,CAsD7B;AA8vBD,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAiCf;AAyvBD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAE9D;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,SAAS,iCAAiC,EAAE,GACrD,iCAAiC,GAAG,IAAI,CAO1C;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,IAAI,CAAC,iCAAiC,EAAE,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS,GAC1E,MAAM,CAGR"}
|
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import os from "node:os";
|
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
5
5
|
import YAML from "yaml";
|
|
6
|
-
import { adapterCommandName, assertWorkbenchAdapterOperationResultOk, collectWorkbenchAdapterAuthRequirements, parseWorkbenchAdapterManifest, readWorkbenchAdapterOperationResult, WORKBENCH_RUNTIME_CONTROL_TOKEN_ENV, WORKBENCH_RUNTIME_CONTROL_URL_ENV, workbenchAdapterOperationCommand, workbenchAdapterOperationExecutor, workbenchAdapterOperationResultPath, } from "@workbench-ai/workbench-protocol";
|
|
6
|
+
import { adapterCommandName, assertWorkbenchAdapterOperationResultOk, collectWorkbenchAdapterAuthRequirements, collectWorkbenchAdapterInvocations, parseWorkbenchAdapterManifest, readWorkbenchAdapterOperationResult, WORKBENCH_RUNTIME_CONTROL_TOKEN_ENV, WORKBENCH_RUNTIME_CONTROL_URL_ENV, workbenchAdapterOperationCommand, workbenchAdapterOperationExecutor, workbenchAdapterOperationResultPath, } from "@workbench-ai/workbench-protocol";
|
|
7
7
|
import { BENCHMARK_SPEC_FILE, DEFAULT_EXECUTION_RESOURCES, engineCasePrivateFiles, engineCaseFilesForRuntimeInput, engineCasePublicFiles, resolveEngineCaseExecutionConfig, resolveWorkbenchResolvedSourceYaml as resolveWorkbenchResolvedSourceYamlInternal, validateWorkbenchResolvedSourceYaml as validateWorkbenchResolvedSourceYamlInternal, isWorkbenchCandidateManifestPath, } from "./generic-spec.js";
|
|
8
8
|
import { attachSandboxMetadataToJob, createWorkbenchSandboxFileStore, isSurfaceSnapshotFile, readWorkbenchExecutionSpec, } from "./sandbox-inputs.js";
|
|
9
9
|
import { asRuntimeRecord, importNodeModule, isJsonPayload, jsonRecord, nodeBuiltin, quoteShellArg, resolveWorkbenchWorkerId, } from "./runtime-utils.js";
|
|
@@ -41,9 +41,43 @@ export function sanitizeWorkbenchRuntimeJobForExchange(job) {
|
|
|
41
41
|
return { ...portable };
|
|
42
42
|
}
|
|
43
43
|
export function sanitizeWorkbenchRuntimeCandidateForExchange(candidate) {
|
|
44
|
-
const { ownerUserId: _ownerUserId, ownerUsername: _ownerUsername,
|
|
44
|
+
const { ownerUserId: _ownerUserId, ownerUsername: _ownerUsername, metrics: _metrics, candidateRunId: _candidateRunId, candidateRunName: _candidateRunName, ...portable } = candidate;
|
|
45
45
|
return { ...portable };
|
|
46
46
|
}
|
|
47
|
+
export function workbenchBenchmarkContentFingerprint(input) {
|
|
48
|
+
const benchmarkSource = workbenchBenchmarkSourceYamlForFingerprint(input.sourceYaml);
|
|
49
|
+
const resolvedSpec = resolveWorkbenchResolvedSourceYamlInternal(input.sourceYaml);
|
|
50
|
+
const adapterManifests = input.adapterManifests ??
|
|
51
|
+
adapterManifestsForContentFingerprint(input.adapterFiles ?? []);
|
|
52
|
+
const benchmarkAdapterIds = new Set(collectWorkbenchAdapterInvocations([resolvedSpec.engineRun], adapterManifests)
|
|
53
|
+
.map((invocation) => invocation.use));
|
|
54
|
+
const canonical = {
|
|
55
|
+
sourceYaml: normalizeTextForProjectStateFingerprint(benchmarkSource.sourceYaml),
|
|
56
|
+
engineResolveFiles: canonicalFilesForProjectStateFingerprint(input.engineResolveFiles),
|
|
57
|
+
engineResolveBinding: canonicalEngineResolveBindingForFingerprint(input.engineResolveBinding),
|
|
58
|
+
adapterFiles: canonicalFilesForProjectStateFingerprint(adapterFilesForContentFingerprint(input.adapterFiles ?? [], benchmarkSource.adapterSources, benchmarkAdapterIds)),
|
|
59
|
+
runtimeFiles: canonicalFilesForProjectStateFingerprint(input.runtimeFiles ?? []),
|
|
60
|
+
resources: input.resources
|
|
61
|
+
? normalizeProjectStateResources(input.resources)
|
|
62
|
+
: null,
|
|
63
|
+
network: input.network ?? null,
|
|
64
|
+
};
|
|
65
|
+
return createHash("sha256").update(JSON.stringify(canonical)).digest("hex");
|
|
66
|
+
}
|
|
67
|
+
export function workbenchCandidateContentFingerprint(input) {
|
|
68
|
+
const candidateSource = workbenchCandidateSourceYamlForFingerprint(input.sourceYaml);
|
|
69
|
+
const resolvedSpec = resolveWorkbenchResolvedSourceYamlInternal(input.sourceYaml);
|
|
70
|
+
const adapterManifests = input.adapterManifests ??
|
|
71
|
+
adapterManifestsForContentFingerprint(input.adapterFiles ?? []);
|
|
72
|
+
const candidateAdapterIds = new Set(collectWorkbenchAdapterInvocations([resolvedSpec.run], adapterManifests)
|
|
73
|
+
.map((invocation) => invocation.use));
|
|
74
|
+
const canonical = {
|
|
75
|
+
sourceYaml: normalizeTextForProjectStateFingerprint(candidateSource.sourceYaml),
|
|
76
|
+
candidateFiles: canonicalFilesForProjectStateFingerprint(input.candidateFiles),
|
|
77
|
+
adapterFiles: canonicalFilesForProjectStateFingerprint(adapterFilesForContentFingerprint(input.adapterFiles ?? [], candidateSource.adapterSources, candidateAdapterIds)),
|
|
78
|
+
};
|
|
79
|
+
return createHash("sha256").update(JSON.stringify(canonical)).digest("hex");
|
|
80
|
+
}
|
|
47
81
|
export function workbenchProjectSourceFingerprint(input) {
|
|
48
82
|
const canonical = {
|
|
49
83
|
sourceYaml: normalizeTextForProjectStateFingerprint(input.source),
|
|
@@ -101,6 +135,103 @@ export function workbenchRuntimeBundleStats(bundle) {
|
|
|
101
135
|
activeId: bundle.activeId,
|
|
102
136
|
};
|
|
103
137
|
}
|
|
138
|
+
function workbenchCandidateSourceYamlForFingerprint(sourceYaml) {
|
|
139
|
+
const parsed = YAML.parse(sourceYaml);
|
|
140
|
+
const candidate = parsed && typeof parsed === "object" && !Array.isArray(parsed)
|
|
141
|
+
? parsed.candidate
|
|
142
|
+
: null;
|
|
143
|
+
const candidateRecord = candidate && typeof candidate === "object" && !Array.isArray(candidate)
|
|
144
|
+
? candidate
|
|
145
|
+
: null;
|
|
146
|
+
const adapters = Array.isArray(candidateRecord?.adapters)
|
|
147
|
+
? candidateRecord.adapters.flatMap((entry) => typeof entry === "string" ? [entry] : [])
|
|
148
|
+
: [];
|
|
149
|
+
const sourceRecord = splitCandidateSourceRecord(candidateRecord);
|
|
150
|
+
return {
|
|
151
|
+
sourceYaml: `${YAML.stringify(sourceRecord ?? {}).trimEnd()}\n`,
|
|
152
|
+
adapterSources: adapters,
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
function workbenchBenchmarkSourceYamlForFingerprint(sourceYaml) {
|
|
156
|
+
const parsed = YAML.parse(sourceYaml);
|
|
157
|
+
const benchmark = parsed && typeof parsed === "object" && !Array.isArray(parsed)
|
|
158
|
+
? parsed.benchmark
|
|
159
|
+
: null;
|
|
160
|
+
const benchmarkRecord = benchmark && typeof benchmark === "object" && !Array.isArray(benchmark)
|
|
161
|
+
? benchmark
|
|
162
|
+
: null;
|
|
163
|
+
const adapters = Array.isArray(benchmarkRecord?.adapters)
|
|
164
|
+
? benchmarkRecord.adapters.flatMap((entry) => typeof entry === "string" ? [entry] : [])
|
|
165
|
+
: [];
|
|
166
|
+
return {
|
|
167
|
+
sourceYaml: `${YAML.stringify(benchmarkRecord ?? {}).trimEnd()}\n`,
|
|
168
|
+
adapterSources: adapters,
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
function canonicalEngineResolveBindingForFingerprint(binding) {
|
|
172
|
+
return {
|
|
173
|
+
engine: binding.engine,
|
|
174
|
+
resolver: {
|
|
175
|
+
use: binding.resolver.use,
|
|
176
|
+
withFingerprint: binding.resolver.withFingerprint,
|
|
177
|
+
},
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
function adapterFilesForContentFingerprint(adapterFiles, adapterSources, adapterIds) {
|
|
181
|
+
const roots = [
|
|
182
|
+
...adapterSources.map(normalizeSourcePathForContentFingerprint).filter(Boolean),
|
|
183
|
+
...adapterRootsForContentFingerprint(adapterFiles, adapterIds),
|
|
184
|
+
];
|
|
185
|
+
if (roots.length === 0) {
|
|
186
|
+
return [];
|
|
187
|
+
}
|
|
188
|
+
return adapterFiles.filter((file) => roots.some((root) => isWithinSourcePathForContentFingerprint(file.path, root)));
|
|
189
|
+
}
|
|
190
|
+
function adapterRootsForContentFingerprint(adapterFiles, adapterIds) {
|
|
191
|
+
const roots = [];
|
|
192
|
+
for (const file of adapterFiles) {
|
|
193
|
+
const normalizedPath = normalizeSourcePathForContentFingerprint(file.path);
|
|
194
|
+
if ((normalizedPath !== "workbench.adapter.yaml" &&
|
|
195
|
+
!normalizedPath.endsWith("/workbench.adapter.yaml")) ||
|
|
196
|
+
file.encoding !== "utf8") {
|
|
197
|
+
continue;
|
|
198
|
+
}
|
|
199
|
+
const manifest = parseWorkbenchAdapterManifest(file.content, normalizedPath);
|
|
200
|
+
if (adapterIds.has(manifest.id)) {
|
|
201
|
+
roots.push(normalizedPath === "workbench.adapter.yaml"
|
|
202
|
+
? ""
|
|
203
|
+
: normalizedPath.slice(0, -"/workbench.adapter.yaml".length));
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
return roots;
|
|
207
|
+
}
|
|
208
|
+
function adapterManifestsForContentFingerprint(adapterFiles) {
|
|
209
|
+
return adapterFiles.flatMap((file) => {
|
|
210
|
+
const normalizedPath = normalizeSourcePathForContentFingerprint(file.path);
|
|
211
|
+
if ((normalizedPath !== "workbench.adapter.yaml" &&
|
|
212
|
+
!normalizedPath.endsWith("/workbench.adapter.yaml")) ||
|
|
213
|
+
file.encoding !== "utf8") {
|
|
214
|
+
return [];
|
|
215
|
+
}
|
|
216
|
+
return [parseWorkbenchAdapterManifest(file.content, normalizedPath)];
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
function isWithinSourcePathForContentFingerprint(filePath, rootPath) {
|
|
220
|
+
const normalizedFile = normalizeSourcePathForContentFingerprint(filePath);
|
|
221
|
+
const normalizedRoot = normalizeSourcePathForContentFingerprint(rootPath);
|
|
222
|
+
if (!normalizedRoot) {
|
|
223
|
+
return true;
|
|
224
|
+
}
|
|
225
|
+
return normalizedFile === normalizedRoot ||
|
|
226
|
+
normalizedFile.startsWith(`${normalizedRoot}/`);
|
|
227
|
+
}
|
|
228
|
+
function normalizeSourcePathForContentFingerprint(value) {
|
|
229
|
+
return value
|
|
230
|
+
.replace(/\\/gu, "/")
|
|
231
|
+
.replace(/^\/+/u, "")
|
|
232
|
+
.replace(/\/+/gu, "/")
|
|
233
|
+
.replace(/^(?:\.\/)+/u, "");
|
|
234
|
+
}
|
|
104
235
|
function runtimeJobForProjectStateFingerprint(job) {
|
|
105
236
|
const portable = sanitizeWorkbenchRuntimeJobForExchange(job);
|
|
106
237
|
const output = portable.output;
|
|
@@ -1713,9 +1844,6 @@ export async function executeAdapterInCurrentRuntime(args, execution, startedAt,
|
|
|
1713
1844
|
const runtimeInput = {
|
|
1714
1845
|
...args,
|
|
1715
1846
|
...(adapterAuth.root ? { adapterAuthRoot: adapterAuth.root } : {}),
|
|
1716
|
-
...(Object.keys(adapterAuth.env).length > 0
|
|
1717
|
-
? { adapterAuthEnv: adapterAuth.env }
|
|
1718
|
-
: {}),
|
|
1719
1847
|
};
|
|
1720
1848
|
try {
|
|
1721
1849
|
if (execution.purpose === "improve") {
|
|
@@ -1784,31 +1912,17 @@ function adapterAuthRequest(bundles, root, currentAdapterId) {
|
|
|
1784
1912
|
const self = {};
|
|
1785
1913
|
const adapters = {};
|
|
1786
1914
|
for (const bundle of bundles) {
|
|
1787
|
-
const
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
files: bundle.files.map((file) => ({
|
|
1792
|
-
path: file.path,
|
|
1793
|
-
encoding: file.encoding,
|
|
1794
|
-
})),
|
|
1795
|
-
}
|
|
1796
|
-
: undefined;
|
|
1797
|
-
const entry = {
|
|
1798
|
-
method: bundle.method,
|
|
1799
|
-
profile: bundle.profile,
|
|
1800
|
-
...(bundle.env && bundle.env.length > 0
|
|
1801
|
-
? { env: Object.fromEntries(bundle.env.map((entry) => [entry.name, "materialized"])) }
|
|
1802
|
-
: {}),
|
|
1803
|
-
...(fileAuth ? fileAuth : {}),
|
|
1804
|
-
};
|
|
1805
|
-
adapters[bundle.adapterId] = {
|
|
1806
|
-
...(adapters[bundle.adapterId] ?? {}),
|
|
1807
|
-
[key]: entry,
|
|
1808
|
-
};
|
|
1809
|
-
if (!currentAdapterId || bundle.adapterId === currentAdapterId) {
|
|
1810
|
-
self[key] = entry;
|
|
1915
|
+
const entry = adapterAuthRequestEntry(bundle, root);
|
|
1916
|
+
if (currentAdapterId && bundle.adapterId === currentAdapterId) {
|
|
1917
|
+
self[bundle.slot ?? "default"] = entry;
|
|
1918
|
+
continue;
|
|
1811
1919
|
}
|
|
1920
|
+
if (!currentAdapterId) {
|
|
1921
|
+
self[bundle.slot ?? "default"] = entry;
|
|
1922
|
+
continue;
|
|
1923
|
+
}
|
|
1924
|
+
adapters[bundle.adapterId] ??= {};
|
|
1925
|
+
adapters[bundle.adapterId][bundle.slot ?? "default"] = entry;
|
|
1812
1926
|
}
|
|
1813
1927
|
const entries = {};
|
|
1814
1928
|
if (Object.keys(self).length > 0) {
|
|
@@ -1819,6 +1933,25 @@ function adapterAuthRequest(bundles, root, currentAdapterId) {
|
|
|
1819
1933
|
}
|
|
1820
1934
|
return entries;
|
|
1821
1935
|
}
|
|
1936
|
+
function adapterAuthRequestEntry(bundle, root) {
|
|
1937
|
+
const fileAuth = bundle.files.length > 0
|
|
1938
|
+
? {
|
|
1939
|
+
...(root ? { filesRoot: `${root}/${bundle.adapterId}/${bundle.slot ?? "_"}/${bundle.profile}` } : {}),
|
|
1940
|
+
files: bundle.files.map((file) => ({
|
|
1941
|
+
path: file.path,
|
|
1942
|
+
encoding: file.encoding,
|
|
1943
|
+
})),
|
|
1944
|
+
}
|
|
1945
|
+
: undefined;
|
|
1946
|
+
return {
|
|
1947
|
+
method: bundle.method,
|
|
1948
|
+
profile: bundle.profile,
|
|
1949
|
+
...(bundle.env && bundle.env.length > 0
|
|
1950
|
+
? { env: Object.fromEntries(bundle.env.map((entry) => [entry.name, "materialized"])) }
|
|
1951
|
+
: {}),
|
|
1952
|
+
...(fileAuth ? fileAuth : {}),
|
|
1953
|
+
};
|
|
1954
|
+
}
|
|
1822
1955
|
function adapterAuthRequestForStep(args, adapterId) {
|
|
1823
1956
|
const profiles = (args.adapterAuthProfiles ?? [])
|
|
1824
1957
|
.map((bundle) => sanitizeWorkbenchAdapterAuthBundle(bundle));
|
|
@@ -1827,6 +1960,24 @@ function adapterAuthRequestForStep(args, adapterId) {
|
|
|
1827
1960
|
}
|
|
1828
1961
|
return adapterAuthRequest(profiles, args.adapterAuthRoot, adapterId);
|
|
1829
1962
|
}
|
|
1963
|
+
function adapterAuthEnvForStep(args, adapterId) {
|
|
1964
|
+
void adapterId;
|
|
1965
|
+
const profiles = (args.adapterAuthProfiles ?? [])
|
|
1966
|
+
.map((bundle) => sanitizeWorkbenchAdapterAuthBundle(bundle));
|
|
1967
|
+
if (profiles.length === 0) {
|
|
1968
|
+
return args.adapterAuthEnv ?? {};
|
|
1969
|
+
}
|
|
1970
|
+
const env = {};
|
|
1971
|
+
for (const bundle of profiles) {
|
|
1972
|
+
Object.assign(env, adapterAuthEnv(bundle));
|
|
1973
|
+
}
|
|
1974
|
+
return env;
|
|
1975
|
+
}
|
|
1976
|
+
function adapterAuthProfilesForAdapter(args, adapterId) {
|
|
1977
|
+
return (args.adapterAuthProfiles ?? [])
|
|
1978
|
+
.map((bundle) => sanitizeWorkbenchAdapterAuthBundle(bundle))
|
|
1979
|
+
.filter((bundle) => bundle.adapterId === adapterId);
|
|
1980
|
+
}
|
|
1830
1981
|
function adapterAuthProfilesForExecution(execution, args) {
|
|
1831
1982
|
const profiles = (args.adapterAuthProfiles ?? [])
|
|
1832
1983
|
.map((bundle) => sanitizeWorkbenchAdapterAuthBundle(bundle));
|
|
@@ -2026,9 +2177,6 @@ export async function executeRuntimeControlOperationSequenceInCurrentRuntime(arg
|
|
|
2026
2177
|
result = await runHostedCommandExecutionSteps({
|
|
2027
2178
|
...runtimeArgs,
|
|
2028
2179
|
...(adapterAuth.root ? { adapterAuthRoot: adapterAuth.root } : {}),
|
|
2029
|
-
...(Object.keys(adapterAuth.env).length > 0
|
|
2030
|
-
? { adapterAuthEnv: adapterAuth.env }
|
|
2031
|
-
: {}),
|
|
2032
2180
|
}, workload, args.runtimeControlOperation.operations.map((operation, index) => runtimeControlStepForOperation(operation, index, args.adapterManifests)), startedAt, {
|
|
2033
2181
|
runCandidatePrepare: args.runtimeControlOperation.prepare ?? false,
|
|
2034
2182
|
workspaceFiles: args.runtimeControlOperation.inputs?.workspace ?? [],
|
|
@@ -2188,12 +2336,12 @@ function runtimeControlInputFiles(inputs, key, fallback) {
|
|
|
2188
2336
|
return cloneSurfaceFiles(fallback);
|
|
2189
2337
|
}
|
|
2190
2338
|
function runtimeControlStepForOperation(operation, index, manifests = []) {
|
|
2191
|
-
const
|
|
2192
|
-
|
|
2193
|
-
|
|
2194
|
-
|
|
2195
|
-
|
|
2196
|
-
|
|
2339
|
+
const commandSpec = adapterProtocolCommandSpec({
|
|
2340
|
+
use: operation.invocation.use,
|
|
2341
|
+
with: operation.invocation.with ?? {},
|
|
2342
|
+
...(operation.invocation.auth !== undefined ? { auth: operation.invocation.auth } : {}),
|
|
2343
|
+
}, operation.operation, manifests);
|
|
2344
|
+
const command = operation.invocation.command?.trim() || commandSpec.command;
|
|
2197
2345
|
return {
|
|
2198
2346
|
kind: operation.operation === "candidate.run"
|
|
2199
2347
|
? "candidate"
|
|
@@ -2202,7 +2350,7 @@ function runtimeControlStepForOperation(operation, index, manifests = []) {
|
|
|
2202
2350
|
: "engine",
|
|
2203
2351
|
label: operation.label ?? `${operation.operation.replace(".", "_")}_${index + 1}`,
|
|
2204
2352
|
operation: operation.operation,
|
|
2205
|
-
executor:
|
|
2353
|
+
executor: commandSpec.executor,
|
|
2206
2354
|
adapter: {
|
|
2207
2355
|
use: operation.invocation.use,
|
|
2208
2356
|
with: operation.invocation.with ?? {},
|
|
@@ -2365,7 +2513,8 @@ async function runHostedCommandExecutionSteps(args, workload, steps, startedAt,
|
|
|
2365
2513
|
enginePrivateStaged = true;
|
|
2366
2514
|
}
|
|
2367
2515
|
await resetHostedWorkloadStepOutput(workspace.root);
|
|
2368
|
-
const
|
|
2516
|
+
const stepAdapterId = step.adapter?.use ?? execution.adapter.use;
|
|
2517
|
+
const adapterRequestPath = await writeWorkbenchAdapterRequest(workspace.root, workload, execution, step, adapterAuthRequestForStep(args, stepAdapterId), args.adapterManifests);
|
|
2369
2518
|
const stepRole = stepEventRole(step);
|
|
2370
2519
|
await publishCommandStepEvent(options.eventPublisher, {
|
|
2371
2520
|
step: step.label,
|
|
@@ -2377,17 +2526,17 @@ async function runHostedCommandExecutionSteps(args, workload, steps, startedAt,
|
|
|
2377
2526
|
throw new Error(`Adapter step ${step.label} is missing a command.`);
|
|
2378
2527
|
}
|
|
2379
2528
|
const adapterRoot = step.executor === "host"
|
|
2380
|
-
? hostAdapterRoots.get(
|
|
2529
|
+
? hostAdapterRoots.get(stepAdapterId)
|
|
2381
2530
|
: undefined;
|
|
2382
2531
|
const command = createHostedWorkloadShellCommand(workspace.root, step.command, step.label, step.okExitCodes);
|
|
2383
2532
|
await execFileAsync("sh", ["-c", command], {
|
|
2384
2533
|
cwd: adapterRoot ?? workspace.root,
|
|
2385
|
-
env: createHostedWorkloadAdapterEnv(workspace.root, adapterRequestPath, args
|
|
2534
|
+
env: createHostedWorkloadAdapterEnv(workspace.root, adapterRequestPath, adapterAuthEnvForStep(args, stepAdapterId), adapterRoot ? { adapterRoot } : undefined, args.adapterRuntimeEnv),
|
|
2386
2535
|
maxBuffer: 10 * 1024 * 1024,
|
|
2387
2536
|
timeout: stepTimeoutMs,
|
|
2388
2537
|
});
|
|
2389
2538
|
const operationResult = await readWorkbenchAdapterOperationResult(outputDir(workspace.root), step.operation);
|
|
2390
|
-
assertWorkbenchAdapterOperationResultOk(operationResult, `Adapter ${
|
|
2539
|
+
assertWorkbenchAdapterOperationResultOk(operationResult, `Adapter ${stepAdapterId} ${step.operation}`);
|
|
2391
2540
|
await writeSurfaceFiles(outputDir(workspace.root), [
|
|
2392
2541
|
textSurfaceFile(`.workbench/traces/${workload.job.id}/${step.label}/result.json`, `${JSON.stringify(operationResult, null, 2)}\n`),
|
|
2393
2542
|
]);
|
|
@@ -2542,10 +2691,10 @@ function adapterOperationUsageSummary(result) {
|
|
|
2542
2691
|
}
|
|
2543
2692
|
function attemptUsageSummary(workloadUsage, resultUsage) {
|
|
2544
2693
|
const normalizedWorkloadUsage = completeUsageSummary(workloadUsage);
|
|
2545
|
-
const
|
|
2694
|
+
const resultEngineUsage = normalizedWorkloadUsage?.engine
|
|
2546
2695
|
? undefined
|
|
2547
2696
|
: assignUsageRole("engine", resultUsage);
|
|
2548
|
-
return mergeUsageSummaries([normalizedWorkloadUsage,
|
|
2697
|
+
return mergeUsageSummaries([normalizedWorkloadUsage, resultEngineUsage]);
|
|
2549
2698
|
}
|
|
2550
2699
|
function hasExplicitUsageRole(usage) {
|
|
2551
2700
|
const normalized = completeUsageSummary(usage);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/sandbox-backends/docker.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EACV,8BAA8B,EAC/B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,KAAK,wBAAwB,EAE7B,KAAK,yBAAyB,EAE9B,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/sandbox-backends/docker.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EACV,8BAA8B,EAC/B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,KAAK,wBAAwB,EAE7B,KAAK,yBAAyB,EAE9B,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AA6C7B,wBAAgB,oCAAoC,IACjD,wBAAwB,CAY1B;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,8BAA8B,EACpC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,yBAAyB,GACnC,YAAY,CAmDd"}
|
|
@@ -145,12 +145,13 @@ async function prepareDockerSandboxWorkspace(args, request, startedAt) {
|
|
|
145
145
|
stderr: stderrPath,
|
|
146
146
|
templateImage: image,
|
|
147
147
|
containerName: dockerContainerName(request.allocation.sandboxId),
|
|
148
|
-
|
|
148
|
+
runtimeMounts: runtimePayload.mounts,
|
|
149
149
|
runnerPath: runtimePayload.runnerPath,
|
|
150
150
|
runtimeImport: runtimePayload.runtimeImport,
|
|
151
151
|
sandboxUid: sandboxUser.uid,
|
|
152
152
|
sandboxGid: sandboxUser.gid,
|
|
153
153
|
network: network,
|
|
154
|
+
...(args.progress ? { progressTarget: args.progress } : {}),
|
|
154
155
|
};
|
|
155
156
|
}
|
|
156
157
|
async function runDockerSandboxExecution(sandbox, execution) {
|
|
@@ -161,11 +162,12 @@ async function runDockerSandboxExecution(sandbox, execution) {
|
|
|
161
162
|
const stderrPath = readRequiredMetadataString(metadata, "stderr", DOCKER_SANDBOX_BACKEND);
|
|
162
163
|
const image = readRequiredMetadataString(metadata, "templateImage", DOCKER_SANDBOX_BACKEND);
|
|
163
164
|
const containerName = readRequiredMetadataString(metadata, "containerName", DOCKER_SANDBOX_BACKEND);
|
|
164
|
-
const
|
|
165
|
+
const runtimeMounts = readDockerRuntimeMounts(metadata.runtimeMounts);
|
|
165
166
|
const runnerPath = readRequiredMetadataString(metadata, "runnerPath", DOCKER_SANDBOX_BACKEND);
|
|
166
167
|
const runtimeImport = readRequiredMetadataString(metadata, "runtimeImport", DOCKER_SANDBOX_BACKEND);
|
|
167
168
|
const sandboxUid = readRequiredMetadataNumber(metadata, "sandboxUid", DOCKER_SANDBOX_BACKEND);
|
|
168
169
|
const sandboxGid = readRequiredMetadataNumber(metadata, "sandboxGid", DOCKER_SANDBOX_BACKEND);
|
|
170
|
+
const progressTarget = readOptionalProgressTarget(metadata.progressTarget);
|
|
169
171
|
const network = asRuntimeRecord(metadata.network);
|
|
170
172
|
const resources = execution.policy.resources;
|
|
171
173
|
const tmpfsSize = dockerSize(resources.diskGb);
|
|
@@ -204,8 +206,7 @@ async function runDockerSandboxExecution(sandbox, execution) {
|
|
|
204
206
|
DOCKER_RUNTIME_MOUNT,
|
|
205
207
|
"-v",
|
|
206
208
|
`${root}:/workbench-execution`,
|
|
207
|
-
|
|
208
|
-
`${runtimeRoot}:${DOCKER_RUNTIME_MOUNT}:ro`,
|
|
209
|
+
...dockerRuntimeMountArgs(runtimeMounts),
|
|
209
210
|
"--env",
|
|
210
211
|
"HOME=/tmp",
|
|
211
212
|
"--env",
|
|
@@ -227,6 +228,7 @@ async function runDockerSandboxExecution(sandbox, execution) {
|
|
|
227
228
|
stdoutPath,
|
|
228
229
|
stderrPath,
|
|
229
230
|
timeoutMs,
|
|
231
|
+
progressTarget,
|
|
230
232
|
});
|
|
231
233
|
}
|
|
232
234
|
catch (error) {
|
|
@@ -254,6 +256,22 @@ async function runDockerSandboxExecution(sandbox, execution) {
|
|
|
254
256
|
}
|
|
255
257
|
return response.job;
|
|
256
258
|
}
|
|
259
|
+
function dockerRuntimeMountArgs(mounts) {
|
|
260
|
+
return [
|
|
261
|
+
"--tmpfs",
|
|
262
|
+
`${DOCKER_RUNTIME_MOUNT}:rw,nosuid,nodev,size=16m,mode=755`,
|
|
263
|
+
...mounts.flatMap((mount) => [
|
|
264
|
+
"--mount",
|
|
265
|
+
`type=bind,source=${mount.source},target=${dockerRuntimeMountTarget(mount.target)},readonly`,
|
|
266
|
+
]),
|
|
267
|
+
];
|
|
268
|
+
}
|
|
269
|
+
function dockerRuntimeMountTarget(target) {
|
|
270
|
+
const relativeTarget = target.replace(/^\/+|\/+$/gu, "");
|
|
271
|
+
return relativeTarget
|
|
272
|
+
? `${DOCKER_RUNTIME_MOUNT}/${relativeTarget}`
|
|
273
|
+
: DOCKER_RUNTIME_MOUNT;
|
|
274
|
+
}
|
|
257
275
|
function tmpfsDockerArg(pathname, uid, gid, size) {
|
|
258
276
|
return `${pathname}:rw,exec,uid=${uid},gid=${gid},mode=1777,size=${size}`;
|
|
259
277
|
}
|
|
@@ -300,7 +318,8 @@ function runDockerSandboxProcess(spawn, args, options) {
|
|
|
300
318
|
let timedOut = false;
|
|
301
319
|
const progressPublishes = [];
|
|
302
320
|
const progressParser = createWorkbenchProgressStdoutParser((envelope) => {
|
|
303
|
-
progressPublishes.push(publishWorkbenchProgressStdoutEnvelope(envelope
|
|
321
|
+
progressPublishes.push(publishWorkbenchProgressStdoutEnvelope(envelope, options.progressTarget)
|
|
322
|
+
.catch(() => undefined));
|
|
304
323
|
});
|
|
305
324
|
const stdout = createWriteStream(options.stdoutPath);
|
|
306
325
|
const stderr = createWriteStream(options.stderrPath);
|
|
@@ -468,12 +487,27 @@ function resolveLocalDockerRuntimePayload() {
|
|
|
468
487
|
}
|
|
469
488
|
function monorepoDockerPayload(root) {
|
|
470
489
|
return {
|
|
471
|
-
|
|
490
|
+
mounts: monorepoDockerRuntimeMounts(root),
|
|
472
491
|
runnerPath: `${DOCKER_RUNTIME_MOUNT}/products/workbench/packages/core/worker/sandbox-adapter-runner.cjs`,
|
|
473
492
|
runtimeImport: `${DOCKER_RUNTIME_MOUNT}/products/workbench/packages/core/src/index.ts`,
|
|
474
493
|
builtInDockerfileRoot: path.join(root, "products/workbench/environments"),
|
|
475
494
|
};
|
|
476
495
|
}
|
|
496
|
+
function monorepoDockerRuntimeMounts(root) {
|
|
497
|
+
return [
|
|
498
|
+
...requiredDockerRuntimeMounts(root, [
|
|
499
|
+
["products/workbench/packages/core", "products/workbench/packages/core"],
|
|
500
|
+
["products/workbench/packages/contract", "products/workbench/packages/contract"],
|
|
501
|
+
["products/workbench/packages/protocol", "products/workbench/packages/protocol"],
|
|
502
|
+
["products/workbench/packages/built-in-adapters", "products/workbench/packages/built-in-adapters"],
|
|
503
|
+
["products/agent-drivers", "products/agent-drivers"],
|
|
504
|
+
["products/workbench/environments", "products/workbench/environments"],
|
|
505
|
+
]),
|
|
506
|
+
...optionalDockerRuntimeMounts(root, [
|
|
507
|
+
["node_modules", "node_modules"],
|
|
508
|
+
]),
|
|
509
|
+
];
|
|
510
|
+
}
|
|
477
511
|
function findInstalledPackageDockerPayload() {
|
|
478
512
|
const moduleDir = path.dirname(fileURLToPath(import.meta.url));
|
|
479
513
|
const packageRoot = path.resolve(moduleDir, "../..");
|
|
@@ -485,7 +519,7 @@ function findInstalledPackageDockerPayload() {
|
|
|
485
519
|
existsSync(path.join(packageRoot, "dist/index.js")) &&
|
|
486
520
|
existsSync(path.join(packageRoot, "environments/node-22/Dockerfile"))) {
|
|
487
521
|
return {
|
|
488
|
-
|
|
522
|
+
mounts: [{ source: nodeModulesRoot, target: "node_modules" }],
|
|
489
523
|
runnerPath: `${DOCKER_RUNTIME_MOUNT}/node_modules/@workbench-ai/workbench-core/worker/sandbox-adapter-runner.cjs`,
|
|
490
524
|
runtimeImport: `${DOCKER_RUNTIME_MOUNT}/node_modules/@workbench-ai/workbench-core/dist/index.js`,
|
|
491
525
|
builtInDockerfileRoot: path.join(packageRoot, "environments"),
|
|
@@ -493,6 +527,21 @@ function findInstalledPackageDockerPayload() {
|
|
|
493
527
|
}
|
|
494
528
|
return null;
|
|
495
529
|
}
|
|
530
|
+
function requiredDockerRuntimeMounts(root, entries) {
|
|
531
|
+
return entries.map(([source, target]) => {
|
|
532
|
+
const absoluteSource = path.join(root, source);
|
|
533
|
+
if (!existsSync(absoluteSource)) {
|
|
534
|
+
throw new Error(`Docker sandbox runtime is missing ${source}.`);
|
|
535
|
+
}
|
|
536
|
+
return { source: absoluteSource, target };
|
|
537
|
+
});
|
|
538
|
+
}
|
|
539
|
+
function optionalDockerRuntimeMounts(root, entries) {
|
|
540
|
+
return entries.flatMap(([source, target]) => {
|
|
541
|
+
const absoluteSource = path.join(root, source);
|
|
542
|
+
return existsSync(absoluteSource) ? [{ source: absoluteSource, target }] : [];
|
|
543
|
+
});
|
|
544
|
+
}
|
|
496
545
|
function findAncestorNamed(start, name) {
|
|
497
546
|
let current = start;
|
|
498
547
|
for (;;) {
|
|
@@ -542,6 +591,54 @@ function readRequiredMetadataNumber(metadata, key, backend) {
|
|
|
542
591
|
}
|
|
543
592
|
return value;
|
|
544
593
|
}
|
|
594
|
+
function readDockerRuntimeMounts(value) {
|
|
595
|
+
if (!Array.isArray(value)) {
|
|
596
|
+
throw new Error(`${DOCKER_SANDBOX_BACKEND} sandbox metadata is missing runtime mounts.`);
|
|
597
|
+
}
|
|
598
|
+
const mounts = value.flatMap((entry) => {
|
|
599
|
+
if (!entry || typeof entry !== "object" || Array.isArray(entry)) {
|
|
600
|
+
return [];
|
|
601
|
+
}
|
|
602
|
+
const record = entry;
|
|
603
|
+
if (typeof record.source !== "string" || typeof record.target !== "string") {
|
|
604
|
+
return [];
|
|
605
|
+
}
|
|
606
|
+
if (!isSafeDockerRuntimeMountTarget(record.target)) {
|
|
607
|
+
return [];
|
|
608
|
+
}
|
|
609
|
+
return [{ source: record.source, target: record.target }];
|
|
610
|
+
});
|
|
611
|
+
if (mounts.length === 0) {
|
|
612
|
+
throw new Error(`${DOCKER_SANDBOX_BACKEND} sandbox metadata is missing runtime mounts.`);
|
|
613
|
+
}
|
|
614
|
+
return mounts;
|
|
615
|
+
}
|
|
616
|
+
function isSafeDockerRuntimeMountTarget(target) {
|
|
617
|
+
if (target === "") {
|
|
618
|
+
return true;
|
|
619
|
+
}
|
|
620
|
+
return !target.startsWith("/") &&
|
|
621
|
+
!target.split("/").includes("..") &&
|
|
622
|
+
!/[\0\r\n:,]/u.test(target);
|
|
623
|
+
}
|
|
624
|
+
function readOptionalProgressTarget(value) {
|
|
625
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
626
|
+
return undefined;
|
|
627
|
+
}
|
|
628
|
+
const record = value;
|
|
629
|
+
if (typeof record.url !== "string" || typeof record.token !== "string") {
|
|
630
|
+
return undefined;
|
|
631
|
+
}
|
|
632
|
+
return {
|
|
633
|
+
url: record.url,
|
|
634
|
+
token: record.token,
|
|
635
|
+
...(typeof record.ownerUserId === "string" ? { ownerUserId: record.ownerUserId } : {}),
|
|
636
|
+
...(typeof record.flushWindowMs === "number" ? { flushWindowMs: record.flushWindowMs } : {}),
|
|
637
|
+
...(record.transport === "stdout" || record.transport === "both" || record.transport === "http"
|
|
638
|
+
? { transport: record.transport }
|
|
639
|
+
: {}),
|
|
640
|
+
};
|
|
641
|
+
}
|
|
545
642
|
function dockerSandboxUser() {
|
|
546
643
|
const uid = typeof process.getuid === "function" ? process.getuid() : null;
|
|
547
644
|
const gid = typeof process.getgid === "function" ? process.getgid() : null;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@workbench-ai/workbench-core",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.52",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
],
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"yaml": "^2.8.2",
|
|
25
|
-
"@workbench-ai/workbench-
|
|
26
|
-
"@workbench-ai/workbench-
|
|
25
|
+
"@workbench-ai/workbench-protocol": "0.0.52",
|
|
26
|
+
"@workbench-ai/workbench-contract": "0.0.52"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@types/node": "^24.3.1",
|