@workbench-ai/workbench 0.0.49 → 0.0.50
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-project.js +3 -3
- package/dist/benchmark-fingerprint.d.ts +1 -1
- package/dist/benchmark-fingerprint.d.ts.map +1 -1
- package/dist/benchmark-fingerprint.js +4 -6
- package/dist/command-model.d.ts.map +1 -1
- package/dist/command-model.js +144 -119
- package/dist/dev-open/client.css +28 -0
- package/dist/dev-open/client.js +146 -146
- package/dist/dev-open-server.d.ts +9 -22
- package/dist/dev-open-server.d.ts.map +1 -1
- package/dist/dev-open-server.js +42 -38
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1472 -505
- package/dist/init-scaffold.d.ts +4 -4
- package/dist/init-scaffold.d.ts.map +1 -1
- package/dist/init-scaffold.js +2 -2
- package/dist/init-template-pack.d.ts +4 -4
- package/dist/init-template-pack.d.ts.map +1 -1
- package/dist/init-template-pack.js +47 -59
- package/dist/local-archive.d.ts +11 -11
- package/dist/local-archive.d.ts.map +1 -1
- package/dist/local-archive.js +87 -74
- package/dist/project-source.d.ts +14 -17
- package/dist/project-source.d.ts.map +1 -1
- package/dist/project-source.js +80 -151
- package/package.json +4 -4
package/dist/local-archive.js
CHANGED
|
@@ -1,36 +1,37 @@
|
|
|
1
1
|
import { promises as fs } from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
|
-
import { buildWorkbenchTraceSessionsFromFiles, selectExecutionOutputFilesForInspection, } from "@workbench-ai/workbench-core";
|
|
3
|
+
import { buildWorkbenchTraceSessionsFromFiles, candidateRecordWithoutDerivedFields, selectExecutionOutputFilesForInspection, } from "@workbench-ai/workbench-core";
|
|
4
4
|
const RUNTIME_DIR = ".workbench/runtime";
|
|
5
|
+
const CANDIDATE_RECORDS_DIR = "candidates";
|
|
5
6
|
export function localRuntimeDir(workspace) {
|
|
6
7
|
return path.join(workspace, RUNTIME_DIR);
|
|
7
8
|
}
|
|
8
9
|
export async function loadLocalArchive(workspace) {
|
|
9
10
|
const index = await loadLocalArchiveIndex(workspace);
|
|
10
11
|
const root = localRuntimeDir(workspace);
|
|
11
|
-
const
|
|
12
|
-
await Promise.all(index.
|
|
13
|
-
|
|
12
|
+
const candidateFiles = {};
|
|
13
|
+
await Promise.all(index.candidates.map(async (candidate) => {
|
|
14
|
+
candidateFiles[candidate.id] = await readSurfaceFiles(path.join(root, CANDIDATE_RECORDS_DIR, localRecordName(candidate.id), "files"));
|
|
14
15
|
}));
|
|
15
16
|
const snapshot = {
|
|
16
17
|
...index,
|
|
17
|
-
|
|
18
|
+
candidateFiles,
|
|
18
19
|
};
|
|
19
20
|
validateLocalArchiveSnapshot(snapshot);
|
|
20
21
|
return snapshot;
|
|
21
22
|
}
|
|
22
23
|
export async function loadLocalArchiveIndex(workspace) {
|
|
23
24
|
const root = localRuntimeDir(workspace);
|
|
24
|
-
const [state,
|
|
25
|
+
const [state, candidates, evaluations, runs, events] = await Promise.all([
|
|
25
26
|
readJson(path.join(root, "state.json"), {}),
|
|
26
|
-
readRecords(path.join(root,
|
|
27
|
+
readRecords(path.join(root, CANDIDATE_RECORDS_DIR), "record.json"),
|
|
27
28
|
readFlatRecords(path.join(root, "evaluations")),
|
|
28
29
|
readFlatRecords(path.join(root, "runs")),
|
|
29
30
|
readJson(path.join(root, "events.json"), []),
|
|
30
31
|
]);
|
|
31
32
|
const index = {
|
|
32
33
|
activeId: typeof state.activeId === "string" ? state.activeId : null,
|
|
33
|
-
|
|
34
|
+
candidates: candidates.sort(compareLocalCandidateRecords),
|
|
34
35
|
evaluations: evaluations.sort((left, right) => left.createdAt.localeCompare(right.createdAt) || left.id.localeCompare(right.id)),
|
|
35
36
|
runs: runs.sort((left, right) => left.startedAt.localeCompare(right.startedAt) || left.id.localeCompare(right.id)),
|
|
36
37
|
events: events.sort((left, right) => left.at.localeCompare(right.at) || left.id.localeCompare(right.id)),
|
|
@@ -42,19 +43,19 @@ export async function saveLocalArchive(workspace, snapshot) {
|
|
|
42
43
|
const root = localRuntimeDir(workspace);
|
|
43
44
|
await fs.mkdir(root, { recursive: true });
|
|
44
45
|
await writeJson(path.join(root, "state.json"), { activeId: snapshot.activeId });
|
|
45
|
-
await fs.rm(path.join(root,
|
|
46
|
+
await fs.rm(path.join(root, CANDIDATE_RECORDS_DIR), { force: true, recursive: true });
|
|
46
47
|
await fs.rm(path.join(root, "evaluations"), { force: true, recursive: true });
|
|
47
48
|
await fs.rm(path.join(root, "runs"), { force: true, recursive: true });
|
|
48
49
|
await Promise.all([
|
|
49
|
-
fs.mkdir(path.join(root,
|
|
50
|
+
fs.mkdir(path.join(root, CANDIDATE_RECORDS_DIR), { recursive: true }),
|
|
50
51
|
fs.mkdir(path.join(root, "evaluations"), { recursive: true }),
|
|
51
52
|
fs.mkdir(path.join(root, "runs"), { recursive: true }),
|
|
52
53
|
]);
|
|
53
|
-
for (const
|
|
54
|
-
const
|
|
55
|
-
await fs.mkdir(
|
|
56
|
-
await writeJson(path.join(
|
|
57
|
-
await writeSurfaceFiles(path.join(
|
|
54
|
+
for (const candidate of snapshot.candidates) {
|
|
55
|
+
const candidateRoot = path.join(root, CANDIDATE_RECORDS_DIR, candidate.id);
|
|
56
|
+
await fs.mkdir(candidateRoot, { recursive: true });
|
|
57
|
+
await writeJson(path.join(candidateRoot, "record.json"), candidateRecordWithoutDerivedFields(candidate));
|
|
58
|
+
await writeSurfaceFiles(path.join(candidateRoot, "files"), snapshot.candidateFiles[candidate.id] ?? []);
|
|
58
59
|
}
|
|
59
60
|
for (const evaluation of snapshot.evaluations) {
|
|
60
61
|
await writeJson(path.join(root, "evaluations", `${evaluation.id}.json`), evaluation);
|
|
@@ -92,17 +93,17 @@ export async function saveLocalJobs(workspace, jobs) {
|
|
|
92
93
|
export async function readLocalExecutionFiles(workspace, jobId) {
|
|
93
94
|
return await readSurfaceFiles(path.join(localRuntimeDir(workspace), "execution-files", localRecordName(jobId)));
|
|
94
95
|
}
|
|
95
|
-
export async function
|
|
96
|
-
const
|
|
97
|
-
if (!
|
|
98
|
-
throw new Error(`
|
|
96
|
+
export async function readLocalCandidateRecord(workspace, candidateId) {
|
|
97
|
+
const candidate = await readJson(path.join(localRuntimeDir(workspace), CANDIDATE_RECORDS_DIR, localRecordName(candidateId), "record.json"), null);
|
|
98
|
+
if (!candidate) {
|
|
99
|
+
throw new Error(`Candidate not found: ${candidateId}`);
|
|
99
100
|
}
|
|
100
|
-
|
|
101
|
-
return
|
|
101
|
+
validateCandidateRecord(candidate);
|
|
102
|
+
return candidate;
|
|
102
103
|
}
|
|
103
|
-
export async function
|
|
104
|
-
await
|
|
105
|
-
return await readSurfaceFiles(path.join(localRuntimeDir(workspace),
|
|
104
|
+
export async function readLocalCandidateFilesForId(workspace, candidateId) {
|
|
105
|
+
await readLocalCandidateRecord(workspace, candidateId);
|
|
106
|
+
return await readSurfaceFiles(path.join(localRuntimeDir(workspace), CANDIDATE_RECORDS_DIR, localRecordName(candidateId), "files"));
|
|
106
107
|
}
|
|
107
108
|
export async function readLocalEvaluationRecord(workspace, evaluationId) {
|
|
108
109
|
const evaluation = await readJson(path.join(localRuntimeDir(workspace), "evaluations", `${localRecordName(evaluationId)}.json`), null);
|
|
@@ -131,16 +132,16 @@ export async function readLocalRunJobs(workspace, runId) {
|
|
|
131
132
|
export async function readLocalJobInRun(workspace, runId, jobId) {
|
|
132
133
|
return (await readLocalRunJobs(workspace, runId)).find((job) => job.id === jobId) ?? null;
|
|
133
134
|
}
|
|
134
|
-
export function
|
|
135
|
+
export function upsertLocalCandidate(snapshot, candidate, files) {
|
|
135
136
|
return {
|
|
136
137
|
...snapshot,
|
|
137
|
-
|
|
138
|
-
...snapshot.
|
|
139
|
-
|
|
140
|
-
].sort(
|
|
141
|
-
|
|
142
|
-
...snapshot.
|
|
143
|
-
[
|
|
138
|
+
candidates: [
|
|
139
|
+
...snapshot.candidates.filter((entry) => entry.id !== candidate.id),
|
|
140
|
+
candidate,
|
|
141
|
+
].sort(compareLocalCandidateRecords),
|
|
142
|
+
candidateFiles: {
|
|
143
|
+
...snapshot.candidateFiles,
|
|
144
|
+
[candidate.id]: files.map((file) => ({ ...file })),
|
|
144
145
|
},
|
|
145
146
|
};
|
|
146
147
|
}
|
|
@@ -153,7 +154,7 @@ export function upsertLocalEvaluation(snapshot, evaluation) {
|
|
|
153
154
|
].sort((left, right) => left.createdAt.localeCompare(right.createdAt) || left.id.localeCompare(right.id)),
|
|
154
155
|
};
|
|
155
156
|
}
|
|
156
|
-
export function
|
|
157
|
+
export function upsertLocalRun(snapshot, run, events) {
|
|
157
158
|
return {
|
|
158
159
|
...snapshot,
|
|
159
160
|
runs: [
|
|
@@ -172,66 +173,68 @@ export function setLocalActive(snapshot, activeId) {
|
|
|
172
173
|
activeId,
|
|
173
174
|
};
|
|
174
175
|
}
|
|
175
|
-
export function
|
|
176
|
-
const
|
|
177
|
-
if (!
|
|
178
|
-
throw new Error(`
|
|
176
|
+
export function readLocalCandidate(snapshot, candidateId) {
|
|
177
|
+
const candidate = snapshot.candidates.find((entry) => entry.id === candidateId);
|
|
178
|
+
if (!candidate) {
|
|
179
|
+
throw new Error(`Candidate not found: ${candidateId}`);
|
|
179
180
|
}
|
|
180
|
-
return
|
|
181
|
+
return candidate;
|
|
181
182
|
}
|
|
182
|
-
export function
|
|
183
|
-
|
|
184
|
-
return (snapshot.
|
|
183
|
+
export function readLocalCandidateFiles(snapshot, candidateId) {
|
|
184
|
+
readLocalCandidate(snapshot, candidateId);
|
|
185
|
+
return (snapshot.candidateFiles[candidateId] ?? []).map((file) => ({ ...file }));
|
|
185
186
|
}
|
|
186
187
|
function validateLocalArchiveSnapshot(snapshot) {
|
|
187
188
|
validateLocalArchiveIndex(snapshot);
|
|
188
189
|
}
|
|
189
190
|
function validateLocalArchiveIndex(snapshot) {
|
|
190
|
-
const
|
|
191
|
-
if (snapshot.activeId && !
|
|
192
|
-
throw new Error(`Active
|
|
193
|
-
}
|
|
194
|
-
for (const
|
|
195
|
-
|
|
196
|
-
if (!Array.isArray(
|
|
197
|
-
throw new Error(`
|
|
191
|
+
const candidateIds = new Set(snapshot.candidates.map((candidate) => candidate.id));
|
|
192
|
+
if (snapshot.activeId && !candidateIds.has(snapshot.activeId)) {
|
|
193
|
+
throw new Error(`Active candidate not found: ${snapshot.activeId}`);
|
|
194
|
+
}
|
|
195
|
+
for (const candidate of snapshot.candidates) {
|
|
196
|
+
validateCandidateRecord(candidate);
|
|
197
|
+
if (!Array.isArray(candidate.referenceIds)) {
|
|
198
|
+
throw new Error(`candidate ${candidate.id}.referenceIds must be an array.`);
|
|
198
199
|
}
|
|
199
|
-
if (!Array.isArray(
|
|
200
|
-
throw new Error(`
|
|
200
|
+
if (!Array.isArray(candidate.fileChanges)) {
|
|
201
|
+
throw new Error(`candidate ${candidate.id}.fileChanges must be an array.`);
|
|
201
202
|
}
|
|
202
|
-
if (
|
|
203
|
-
throw new Error(`
|
|
203
|
+
if (candidate.baseId && !candidateIds.has(candidate.baseId)) {
|
|
204
|
+
throw new Error(`candidate ${candidate.id}.baseId not found: ${candidate.baseId}`);
|
|
204
205
|
}
|
|
205
206
|
}
|
|
206
207
|
for (const evaluation of snapshot.evaluations) {
|
|
207
208
|
validateEvaluationRecord(evaluation);
|
|
208
|
-
const
|
|
209
|
-
if (!
|
|
210
|
-
throw new Error(`evaluation ${evaluation.id}.
|
|
209
|
+
const candidate = snapshot.candidates.find((entry) => entry.id === evaluation.candidateId);
|
|
210
|
+
if (!candidate) {
|
|
211
|
+
throw new Error(`evaluation ${evaluation.id}.candidateId not found: ${evaluation.candidateId}`);
|
|
211
212
|
}
|
|
212
|
-
if (
|
|
213
|
-
throw new Error(`evaluation ${evaluation.id}.benchmarkFingerprint does not match
|
|
213
|
+
if (candidate.benchmarkFingerprint !== evaluation.benchmarkFingerprint) {
|
|
214
|
+
throw new Error(`evaluation ${evaluation.id}.benchmarkFingerprint does not match candidate ${candidate.id}.`);
|
|
214
215
|
}
|
|
215
|
-
if (
|
|
216
|
-
throw new Error(`evaluation ${evaluation.id}.
|
|
216
|
+
if (candidate.candidateFingerprint !== evaluation.candidateFingerprint) {
|
|
217
|
+
throw new Error(`evaluation ${evaluation.id}.candidateFingerprint does not match candidate ${candidate.id}.`);
|
|
217
218
|
}
|
|
218
219
|
}
|
|
219
220
|
for (const run of snapshot.runs) {
|
|
220
221
|
validateRunRecord(run);
|
|
221
222
|
}
|
|
222
223
|
}
|
|
223
|
-
function
|
|
224
|
-
requireArchiveString(
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
requireArchiveString(
|
|
224
|
+
function validateCandidateRecord(candidate) {
|
|
225
|
+
requireArchiveString(candidate.id, "candidate.id");
|
|
226
|
+
requireArchivePositiveInteger(candidate.version, `candidate ${candidate.id}.version`);
|
|
227
|
+
requireArchivePositiveInteger(candidate.ordinal, `candidate ${candidate.id}.ordinal`);
|
|
228
|
+
requireArchiveString(candidate.benchmarkFingerprint, `candidate ${candidate.id}.benchmarkFingerprint`);
|
|
229
|
+
requireArchiveString(candidate.candidateFingerprint, `candidate ${candidate.id}.candidateFingerprint`);
|
|
230
|
+
requireArchiveString(candidate.createdAt, `candidate ${candidate.id}.createdAt`);
|
|
228
231
|
}
|
|
229
232
|
function validateEvaluationRecord(evaluation) {
|
|
230
233
|
requireArchiveString(evaluation.id, "evaluation.id");
|
|
231
234
|
requireArchiveString(evaluation.runId, `evaluation ${evaluation.id}.runId`);
|
|
232
235
|
requireArchiveString(evaluation.benchmarkFingerprint, `evaluation ${evaluation.id}.benchmarkFingerprint`);
|
|
233
|
-
requireArchiveString(evaluation.
|
|
234
|
-
requireArchiveString(evaluation.
|
|
236
|
+
requireArchiveString(evaluation.candidateFingerprint, `evaluation ${evaluation.id}.candidateFingerprint`);
|
|
237
|
+
requireArchiveString(evaluation.candidateId, `evaluation ${evaluation.id}.candidateId`);
|
|
235
238
|
}
|
|
236
239
|
function validateRunRecord(run) {
|
|
237
240
|
requireArchiveString(run.id, "run.id");
|
|
@@ -245,13 +248,23 @@ function requireArchiveString(value, label) {
|
|
|
245
248
|
throw new Error(`${label} must be a non-empty string.`);
|
|
246
249
|
}
|
|
247
250
|
}
|
|
251
|
+
function requireArchivePositiveInteger(value, label) {
|
|
252
|
+
if (typeof value !== "number" || !Number.isSafeInteger(value) || value <= 0) {
|
|
253
|
+
throw new Error(`${label} must be a positive integer.`);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
function compareLocalCandidateRecords(left, right) {
|
|
257
|
+
return left.version - right.version ||
|
|
258
|
+
left.createdAt.localeCompare(right.createdAt) ||
|
|
259
|
+
left.id.localeCompare(right.id);
|
|
260
|
+
}
|
|
248
261
|
function archivedLocalJob(job, outputFiles, traceSourceFiles) {
|
|
249
262
|
const output = jsonRecord(job.output);
|
|
250
263
|
const traceSessions = buildLocalJobTraceSessions(job, traceSourceFiles);
|
|
251
264
|
return {
|
|
252
265
|
...job,
|
|
253
266
|
...(Object.keys(output).length > 0
|
|
254
|
-
? { output: { ...output, files:
|
|
267
|
+
? { output: { ...output, files: traceSourceFiles } }
|
|
255
268
|
: {}),
|
|
256
269
|
trace: buildLocalJobTrace(job),
|
|
257
270
|
traceSessions,
|
|
@@ -266,7 +279,7 @@ function isWorkbenchReservedArchivePath(filePath) {
|
|
|
266
279
|
}
|
|
267
280
|
function buildLocalJobTrace(job) {
|
|
268
281
|
const purpose = readExecutionPurpose(job);
|
|
269
|
-
const role = purpose === "improve" ? "
|
|
282
|
+
const role = purpose === "improve" ? "improver" : "engine";
|
|
270
283
|
const stageId = purpose ?? "execution";
|
|
271
284
|
const status = traceStatusForJob(job.status);
|
|
272
285
|
const startedAt = job.startedAt ?? job.createdAt;
|
|
@@ -358,7 +371,7 @@ function buildLocalJobTraceSessions(job, outputFiles) {
|
|
|
358
371
|
job,
|
|
359
372
|
files: outputFiles,
|
|
360
373
|
purpose,
|
|
361
|
-
fallbackRole: purpose === "improve" ? "
|
|
374
|
+
fallbackRole: purpose === "improve" ? "improver" : "engine",
|
|
362
375
|
});
|
|
363
376
|
}
|
|
364
377
|
function completedJobOutputFiles(job) {
|
|
@@ -439,8 +452,8 @@ function traceUsageSummary(value) {
|
|
|
439
452
|
const record = jsonRecord(value);
|
|
440
453
|
const usage = Object.keys(jsonRecord(record.total)).length > 0
|
|
441
454
|
? jsonRecord(record.total)
|
|
442
|
-
: Object.keys(jsonRecord(record.
|
|
443
|
-
? jsonRecord(record.
|
|
455
|
+
: Object.keys(jsonRecord(record.improver)).length > 0
|
|
456
|
+
? jsonRecord(record.improver)
|
|
444
457
|
: Object.keys(jsonRecord(record.runner)).length > 0
|
|
445
458
|
? jsonRecord(record.runner)
|
|
446
459
|
: Object.keys(jsonRecord(record.engine)).length > 0
|
|
@@ -488,8 +501,8 @@ function localRecordName(value) {
|
|
|
488
501
|
}
|
|
489
502
|
return value;
|
|
490
503
|
}
|
|
491
|
-
export async function
|
|
492
|
-
const root = path.join(workspace, normalizeRelativePath(
|
|
504
|
+
export async function materializeCandidateRoot(workspace, candidateRoot, files) {
|
|
505
|
+
const root = path.join(workspace, normalizeRelativePath(candidateRoot));
|
|
493
506
|
const before = new Set((await readSurfaceFiles(root)).map((file) => file.path));
|
|
494
507
|
await fs.rm(root, { force: true, recursive: true });
|
|
495
508
|
await writeSurfaceFiles(root, files);
|
package/dist/project-source.d.ts
CHANGED
|
@@ -3,9 +3,8 @@ import { type WorkbenchEngineCase, type WorkbenchEngineResolveResult } from "@wo
|
|
|
3
3
|
import { type WorkspaceSnapshotFile } from "./workspace-snapshot.js";
|
|
4
4
|
import { type ResolvedWorkbenchAdapter } from "./adapter-project.js";
|
|
5
5
|
export declare const WORKBENCH_BENCHMARK_FILE = "benchmark.yaml";
|
|
6
|
-
export declare const
|
|
7
|
-
export declare const
|
|
8
|
-
export declare const WORKBENCH_SUBJECT_FILE = "subject.yaml";
|
|
6
|
+
export declare const WORKBENCH_CANDIDATES_DIR = "candidates";
|
|
7
|
+
export declare const WORKBENCH_CANDIDATE_FILE = "candidate.yaml";
|
|
9
8
|
export type HostedFile = WorkspaceSnapshotFile;
|
|
10
9
|
export interface LocalProjectSource {
|
|
11
10
|
dir: string;
|
|
@@ -14,20 +13,20 @@ export interface LocalProjectSource {
|
|
|
14
13
|
spec: ReturnType<typeof resolveWorkbenchResolvedSourceYaml>;
|
|
15
14
|
benchmarkPath: string;
|
|
16
15
|
benchmarkSource: string;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
16
|
+
candidateName: string;
|
|
17
|
+
candidateDir: string;
|
|
18
|
+
candidateFilesPath: string;
|
|
19
|
+
candidateSpecPath: string;
|
|
20
|
+
candidateSource: string;
|
|
21
|
+
candidateRunId: string;
|
|
22
|
+
candidateRunIds: string[];
|
|
24
23
|
benchmarkAdapterSources: string[];
|
|
25
24
|
benchmarkAdapterIds: string[];
|
|
26
25
|
dockerfilePath: string;
|
|
27
26
|
dockerfile: string;
|
|
28
27
|
runtimeDockerfile: string;
|
|
29
28
|
dockerfileFiles: HostedFile[];
|
|
30
|
-
|
|
29
|
+
candidateFiles: HostedFile[];
|
|
31
30
|
engineResolveFiles: HostedFile[];
|
|
32
31
|
adapters: ResolvedWorkbenchAdapter[];
|
|
33
32
|
adapterFiles: HostedFile[];
|
|
@@ -44,11 +43,9 @@ export interface LocalAuthoredProjectSource {
|
|
|
44
43
|
specSource: string;
|
|
45
44
|
benchmarkPath: string;
|
|
46
45
|
benchmarkSource: string;
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
optimizerPath?: string;
|
|
51
|
-
optimizerSource?: string;
|
|
46
|
+
candidateDir: string;
|
|
47
|
+
candidateSpecPath: string;
|
|
48
|
+
candidateSource: string;
|
|
52
49
|
sourceFiles: SurfaceSnapshotFile[];
|
|
53
50
|
}
|
|
54
51
|
export interface LocalEngineResolveInvocation {
|
|
@@ -57,7 +54,7 @@ export interface LocalEngineResolveInvocation {
|
|
|
57
54
|
auth?: Json;
|
|
58
55
|
}
|
|
59
56
|
interface LocalProjectSourceOptions {
|
|
60
|
-
|
|
57
|
+
runId?: string;
|
|
61
58
|
}
|
|
62
59
|
export declare function readLocalProjectSource(source: string, options?: LocalProjectSourceOptions): Promise<LocalProjectSource>;
|
|
63
60
|
export declare function readLocalAuthoredProjectSource(source: string, options?: LocalProjectSourceOptions): Promise<LocalAuthoredProjectSource>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-source.d.ts","sourceRoot":"","sources":["../src/project-source.ts"],"names":[],"mappings":"AAKA,OAAO,
|
|
1
|
+
{"version":3,"file":"project-source.d.ts","sourceRoot":"","sources":["../src/project-source.ts"],"names":[],"mappings":"AAKA,OAAO,EAOL,kCAAkC,EAGlC,KAAK,IAAI,EACT,KAAK,mBAAmB,EACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAQL,KAAK,mBAAmB,EACxB,KAAK,4BAA4B,EAClC,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAML,KAAK,wBAAwB,EAC9B,MAAM,sBAAsB,CAAC;AAI9B,eAAO,MAAM,wBAAwB,mBAAsB,CAAC;AAC5D,eAAO,MAAM,wBAAwB,eAAe,CAAC;AACrD,eAAO,MAAM,wBAAwB,mBAAsB,CAAC;AAE5D,MAAM,MAAM,UAAU,GAAG,qBAAqB,CAAC;AAE/C,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,UAAU,CAAC,OAAO,kCAAkC,CAAC,CAAC;IAC5D,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,UAAU,EAAE,CAAC;IAC9B,cAAc,EAAE,UAAU,EAAE,CAAC;IAC7B,kBAAkB,EAAE,UAAU,EAAE,CAAC;IACjC,QAAQ,EAAE,wBAAwB,EAAE,CAAC;IACrC,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,aAAa,EAAE,4BAA4B,CAAC;IAC5C,4BAA4B,EAAE,MAAM,CAAC;IACrC,wBAAwB,CAAC,EAAE,4BAA4B,CAAC,aAAa,CAAC,CAAC;IACvE,WAAW,EAAE,mBAAmB,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,0BAA0B;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,mBAAmB,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,4BAA4B;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED,UAAU,yBAAyB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAaD,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,kBAAkB,CAAC,CA8G7B;AAED,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,0BAA0B,CAAC,CA6BrC"}
|