@sublang/slc 0.4.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +100 -131
- package/dist/app.d.ts +20 -20
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +37 -30
- package/dist/app.js.map +1 -1
- package/dist/artifacts.d.ts +6 -6
- package/dist/artifacts.d.ts.map +1 -1
- package/dist/artifacts.js +9 -9
- package/dist/artifacts.js.map +1 -1
- package/dist/cli.js +3 -3
- package/dist/cligent-agent.d.ts +1 -1
- package/dist/cligent-agent.js +5 -5
- package/dist/compiled-executor.d.ts +14 -6
- package/dist/compiled-executor.d.ts.map +1 -1
- package/dist/compiled-executor.js +133 -31
- package/dist/compiled-executor.js.map +1 -1
- package/dist/config-file.d.ts +10 -6
- package/dist/config-file.d.ts.map +1 -1
- package/dist/config-file.js +23 -10
- package/dist/config-file.js.map +1 -1
- package/dist/config.d.ts +22 -18
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +90 -27
- package/dist/config.js.map +1 -1
- package/dist/emitted-imports.d.ts +14 -0
- package/dist/emitted-imports.d.ts.map +1 -1
- package/dist/emitted-imports.js +63 -7
- package/dist/emitted-imports.js.map +1 -1
- package/dist/entry-module.d.ts +5 -3
- package/dist/entry-module.d.ts.map +1 -1
- package/dist/entry-module.js +41 -13
- package/dist/entry-module.js.map +1 -1
- package/dist/execution.d.ts +10 -10
- package/dist/execution.d.ts.map +1 -1
- package/dist/execution.js +13 -13
- package/dist/execution.js.map +1 -1
- package/dist/hash.js +2 -2
- package/dist/host-capabilities.d.ts +115 -0
- package/dist/host-capabilities.d.ts.map +1 -0
- package/dist/host-capabilities.js +507 -0
- package/dist/host-capabilities.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/interpreter.d.ts +2 -2
- package/dist/interpreter.d.ts.map +1 -1
- package/dist/interpreter.js +7 -7
- package/dist/invocation.d.ts +6 -6
- package/dist/invocation.d.ts.map +1 -1
- package/dist/invocation.js +1 -1
- package/dist/link.d.ts +4 -4
- package/dist/link.d.ts.map +1 -1
- package/dist/link.js +11 -11
- package/dist/link.js.map +1 -1
- package/dist/phase-runner.d.ts +4 -4
- package/dist/phase-runner.js +9 -9
- package/dist/phase.d.ts +4 -4
- package/dist/phase.d.ts.map +1 -1
- package/dist/phase.js +7 -7
- package/dist/phase.js.map +1 -1
- package/dist/pin-closure.d.ts +35 -7
- package/dist/pin-closure.d.ts.map +1 -1
- package/dist/pin-closure.js +135 -21
- package/dist/pin-closure.js.map +1 -1
- package/dist/pin-currency.d.ts +9 -4
- package/dist/pin-currency.d.ts.map +1 -1
- package/dist/pin-currency.js +57 -20
- package/dist/pin-currency.js.map +1 -1
- package/dist/pin-generate.d.ts +7 -7
- package/dist/pin-generate.d.ts.map +1 -1
- package/dist/pin-generate.js +14 -8
- package/dist/pin-generate.js.map +1 -1
- package/dist/pin-inputs.d.ts +41 -0
- package/dist/pin-inputs.d.ts.map +1 -0
- package/dist/pin-inputs.js +179 -0
- package/dist/pin-inputs.js.map +1 -0
- package/dist/pin-paths.d.ts +1 -1
- package/dist/pin-paths.js +4 -4
- package/dist/pin-paths.js.map +1 -1
- package/dist/pins.d.ts +4 -4
- package/dist/pins.d.ts.map +1 -1
- package/dist/pins.js +5 -5
- package/dist/pins.js.map +1 -1
- package/dist/pipeline.d.ts +5 -5
- package/dist/pipeline.js +10 -10
- package/dist/playbook-contract.d.ts +53 -5
- package/dist/playbook-contract.d.ts.map +1 -1
- package/dist/playbook-contract.js +70 -21
- package/dist/playbook-contract.js.map +1 -1
- package/dist/playbook-ports.d.ts +9 -9
- package/dist/playbook-ports.d.ts.map +1 -1
- package/dist/playbook-ports.js +6 -4
- package/dist/playbook-ports.js.map +1 -1
- package/dist/progress.d.ts +8 -9
- package/dist/progress.d.ts.map +1 -1
- package/dist/progress.js +3 -3
- package/dist/progress.js.map +1 -1
- package/dist/resolver.d.ts +9 -9
- package/dist/resolver.d.ts.map +1 -1
- package/dist/resolver.js +12 -12
- package/dist/resolver.js.map +1 -1
- package/dist/reviewing-agent.d.ts +18 -0
- package/dist/reviewing-agent.d.ts.map +1 -0
- package/dist/reviewing-agent.js +295 -0
- package/dist/reviewing-agent.js.map +1 -0
- package/dist/runner.d.ts +1 -1
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +195 -80
- package/dist/runner.js.map +1 -1
- package/dist/slc.config.template.yaml +6 -2
- package/dist/verify-coverage.d.ts +4 -3
- package/dist/verify-coverage.d.ts.map +1 -1
- package/dist/verify-coverage.js +509 -71
- package/dist/verify-coverage.js.map +1 -1
- package/dist/verify.d.ts +111 -15
- package/dist/verify.d.ts.map +1 -1
- package/dist/verify.js +656 -59
- package/dist/verify.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// SPDX-FileCopyrightText: 2026 SubLang International <https://sublang.ai>
|
|
3
|
+
/**
|
|
4
|
+
* Optional two-agent review orchestration for transformation calls (DR-022).
|
|
5
|
+
*
|
|
6
|
+
* The decorator leaves the first Coder call byte-for-byte unchanged. Calls
|
|
7
|
+
* carrying an explicit `allowedTools` property are control/routing calls and
|
|
8
|
+
* bypass review. A successful transformation is reviewed in an independent,
|
|
9
|
+
* read-only agent session; material findings return to the Coder for disposition
|
|
10
|
+
* and repair until the Reviewer reports no unsettled findings or the bounded
|
|
11
|
+
* review limit is reached. Only the latest Coder result crosses the decorated
|
|
12
|
+
* transport boundary.
|
|
13
|
+
*/
|
|
14
|
+
import { messageOf } from './errors.js';
|
|
15
|
+
const MAX_REVIEWER_CALLS = 3;
|
|
16
|
+
/**
|
|
17
|
+
* Decorates a Coder client with the DR-022 review/fix/re-review protocol.
|
|
18
|
+
*
|
|
19
|
+
* Reviewer failures and malformed verdicts fail closed with a stable error
|
|
20
|
+
* diagnostic that retains the latest Coder text and resume token.
|
|
21
|
+
*/
|
|
22
|
+
export function createReviewingAgent(options) {
|
|
23
|
+
return {
|
|
24
|
+
async run(request) {
|
|
25
|
+
// Presence, not value, is the source-owned routing/control marker. Do
|
|
26
|
+
// not unwrap inherited properties into a transformation call.
|
|
27
|
+
if ('allowedTools' in request) {
|
|
28
|
+
return options.coder.run(request);
|
|
29
|
+
}
|
|
30
|
+
let coderResult = await options.coder.run(request);
|
|
31
|
+
if (!isReviewable(coderResult))
|
|
32
|
+
return coderResult;
|
|
33
|
+
let reviewer;
|
|
34
|
+
try {
|
|
35
|
+
reviewer = options.reviewer();
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
return failClosed(coderResult, `Reviewer could not start: ${messageOf(error)}`);
|
|
39
|
+
}
|
|
40
|
+
let reviewerResume = false;
|
|
41
|
+
const transcript = [];
|
|
42
|
+
let reviewerCalls = 0;
|
|
43
|
+
for (;;) {
|
|
44
|
+
let review;
|
|
45
|
+
try {
|
|
46
|
+
reviewerCalls++;
|
|
47
|
+
review = await reviewer.run({
|
|
48
|
+
prompt: buildReviewerPrompt({
|
|
49
|
+
originalPrompt: request.prompt,
|
|
50
|
+
coderOutput: coderResult.text,
|
|
51
|
+
transcript,
|
|
52
|
+
}),
|
|
53
|
+
cwd: request.cwd,
|
|
54
|
+
model: options.reviewerModel,
|
|
55
|
+
...(reviewerResume === undefined ? {} : { resume: reviewerResume }),
|
|
56
|
+
signal: request.signal,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
return failClosed(coderResult, `Reviewer call threw: ${messageOf(error)}`);
|
|
61
|
+
}
|
|
62
|
+
if (review.status !== 'success') {
|
|
63
|
+
return failClosed(coderResult, `Reviewer returned ${review.status}${review.text ? `: ${review.text}` : ''}`);
|
|
64
|
+
}
|
|
65
|
+
reviewerResume = review.resumeToken;
|
|
66
|
+
const verdict = parseReviewerVerdict(review.text);
|
|
67
|
+
if (verdict.kind === 'clean')
|
|
68
|
+
return coderResult;
|
|
69
|
+
if (verdict.kind === 'malformed') {
|
|
70
|
+
return failClosed(coderResult, `Reviewer returned a malformed verdict: ${review.text}`);
|
|
71
|
+
}
|
|
72
|
+
const findings = review.text.trim();
|
|
73
|
+
if (reviewerCalls === MAX_REVIEWER_CALLS) {
|
|
74
|
+
return failClosed(coderResult, `Reviewer reached the third and final review call; unresolved Reviewer findings:\n${findings}`);
|
|
75
|
+
}
|
|
76
|
+
const priorTranscript = [...transcript];
|
|
77
|
+
transcript.push(`Reviewer verdict:\n${findings}`);
|
|
78
|
+
const coderResume = coderResult.resumeToken;
|
|
79
|
+
const priorCoderResult = coderResult;
|
|
80
|
+
const correction = await options.coder.run({
|
|
81
|
+
prompt: buildCoderFollowupPrompt({
|
|
82
|
+
originalPrompt: request.prompt,
|
|
83
|
+
previousOutput: coderResult.text,
|
|
84
|
+
findings,
|
|
85
|
+
transcript: priorTranscript,
|
|
86
|
+
}),
|
|
87
|
+
cwd: request.cwd,
|
|
88
|
+
model: request.model,
|
|
89
|
+
...(coderResume !== undefined ? { resume: coderResume } : {}),
|
|
90
|
+
signal: request.signal,
|
|
91
|
+
});
|
|
92
|
+
if (correction.status !== 'success')
|
|
93
|
+
return correction;
|
|
94
|
+
const envelope = parseCorrectionEnvelope(correction.text, verdict.findingCount);
|
|
95
|
+
if (envelope.kind === 'malformed') {
|
|
96
|
+
return failClosed(priorCoderResult, `Coder correction returned a malformed private review envelope: ${envelope.reason}`);
|
|
97
|
+
}
|
|
98
|
+
coderResult = { ...correction, text: envelope.result };
|
|
99
|
+
transcript.push([
|
|
100
|
+
'Coder dispositions:',
|
|
101
|
+
...envelope.dispositions.map((disposition) => `${disposition.finding}. ${disposition.decision.toUpperCase()}: ${disposition.reason}`),
|
|
102
|
+
'Coder replacement result:',
|
|
103
|
+
envelope.result,
|
|
104
|
+
].join('\n'));
|
|
105
|
+
if (!isReviewable(coderResult))
|
|
106
|
+
return coderResult;
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function isReviewable(result) {
|
|
112
|
+
return result.status === 'success' && !/^\s*BLOCKED\b/im.test(result.text);
|
|
113
|
+
}
|
|
114
|
+
function failClosed(result, reason) {
|
|
115
|
+
return {
|
|
116
|
+
...result,
|
|
117
|
+
status: 'error',
|
|
118
|
+
text: `review failed closed: ${reason}; latest Coder output: ${result.text}`,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
function parseReviewerVerdict(text) {
|
|
122
|
+
const verdict = text.trim().replaceAll('\r\n', '\n');
|
|
123
|
+
if (verdict === 'NO_FINDINGS')
|
|
124
|
+
return { kind: 'clean' };
|
|
125
|
+
if (!verdict.startsWith('FINDINGS:\n'))
|
|
126
|
+
return { kind: 'malformed' };
|
|
127
|
+
const body = verdict.slice('FINDINGS:\n'.length);
|
|
128
|
+
const lines = body.split(/\r?\n/).filter((line) => line.trim() !== '');
|
|
129
|
+
if (lines.length === 0)
|
|
130
|
+
return { kind: 'malformed' };
|
|
131
|
+
let findingCount = 0;
|
|
132
|
+
for (const line of lines) {
|
|
133
|
+
const finding = line.match(/^(\d+)\.\s+\S.*$/);
|
|
134
|
+
if (finding !== null) {
|
|
135
|
+
findingCount++;
|
|
136
|
+
if (finding[1] !== String(findingCount)) {
|
|
137
|
+
return { kind: 'malformed' };
|
|
138
|
+
}
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
if (findingCount === 0 || !/^[ \t]+\S.*$/.test(line)) {
|
|
142
|
+
return { kind: 'malformed' };
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return { kind: 'findings', findingCount };
|
|
146
|
+
}
|
|
147
|
+
function parseCorrectionEnvelope(text, findingCount) {
|
|
148
|
+
const source = unwrapCorrectionJson(text);
|
|
149
|
+
if (source === null) {
|
|
150
|
+
return {
|
|
151
|
+
kind: 'malformed',
|
|
152
|
+
reason: 'response must be bare JSON or one lone json/unlabeled fence',
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
let value;
|
|
156
|
+
try {
|
|
157
|
+
value = JSON.parse(source);
|
|
158
|
+
}
|
|
159
|
+
catch {
|
|
160
|
+
return { kind: 'malformed', reason: 'response is not one JSON object' };
|
|
161
|
+
}
|
|
162
|
+
if (typeof value !== 'object' ||
|
|
163
|
+
value === null ||
|
|
164
|
+
Array.isArray(value) ||
|
|
165
|
+
Object.getPrototypeOf(value) !== Object.prototype) {
|
|
166
|
+
return { kind: 'malformed', reason: 'top level must be one JSON object' };
|
|
167
|
+
}
|
|
168
|
+
const record = value;
|
|
169
|
+
if (Object.keys(record).length !== 2 ||
|
|
170
|
+
!Object.hasOwn(record, 'dispositions') ||
|
|
171
|
+
!Object.hasOwn(record, 'result')) {
|
|
172
|
+
return {
|
|
173
|
+
kind: 'malformed',
|
|
174
|
+
reason: 'object must contain exactly dispositions and result',
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
if (!Array.isArray(record.dispositions)) {
|
|
178
|
+
return { kind: 'malformed', reason: 'dispositions must be an array' };
|
|
179
|
+
}
|
|
180
|
+
if (record.dispositions.length !== findingCount) {
|
|
181
|
+
return {
|
|
182
|
+
kind: 'malformed',
|
|
183
|
+
reason: `dispositions must cover exactly ${findingCount} findings`,
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
const dispositions = [];
|
|
187
|
+
for (let index = 0; index < record.dispositions.length; index++) {
|
|
188
|
+
const disposition = record.dispositions[index];
|
|
189
|
+
if (typeof disposition !== 'object' ||
|
|
190
|
+
disposition === null ||
|
|
191
|
+
Array.isArray(disposition) ||
|
|
192
|
+
Object.getPrototypeOf(disposition) !== Object.prototype) {
|
|
193
|
+
return {
|
|
194
|
+
kind: 'malformed',
|
|
195
|
+
reason: `disposition ${index + 1} must be an object`,
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
const item = disposition;
|
|
199
|
+
if (Object.keys(item).length !== 3 ||
|
|
200
|
+
!Object.hasOwn(item, 'finding') ||
|
|
201
|
+
!Object.hasOwn(item, 'decision') ||
|
|
202
|
+
!Object.hasOwn(item, 'reason') ||
|
|
203
|
+
item.finding !== index + 1 ||
|
|
204
|
+
(item.decision !== 'accept' && item.decision !== 'reject') ||
|
|
205
|
+
typeof item.reason !== 'string' ||
|
|
206
|
+
item.reason.trim() === '') {
|
|
207
|
+
return {
|
|
208
|
+
kind: 'malformed',
|
|
209
|
+
reason: `disposition ${index + 1} must exactly cover finding ${index + 1} with a decision and nonblank reason`,
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
dispositions.push({
|
|
213
|
+
finding: item.finding,
|
|
214
|
+
decision: item.decision,
|
|
215
|
+
reason: item.reason,
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
if (typeof record.result !== 'string') {
|
|
219
|
+
return { kind: 'malformed', reason: 'result must be a string' };
|
|
220
|
+
}
|
|
221
|
+
return { kind: 'valid', dispositions, result: record.result };
|
|
222
|
+
}
|
|
223
|
+
function unwrapCorrectionJson(text) {
|
|
224
|
+
const source = text.trim();
|
|
225
|
+
if (!source.startsWith('```'))
|
|
226
|
+
return source;
|
|
227
|
+
const fenced = source.match(/^```(?:json)?[ \t]*\r?\n([\s\S]*?)\r?\n```$/);
|
|
228
|
+
return fenced?.[1] ?? null;
|
|
229
|
+
}
|
|
230
|
+
function buildReviewerPrompt(input) {
|
|
231
|
+
return [
|
|
232
|
+
'Review the current artifact and workspace state produced by the Coder.',
|
|
233
|
+
'Use the host-exposed read-only file and search capabilities needed to inspect the workspace; shell and network capabilities may be unavailable.',
|
|
234
|
+
'If a read-only shell is available, use it only for non-mutating inspection. Never edit, write, mutate, or commit.',
|
|
235
|
+
'The original request and the Coder output follow.',
|
|
236
|
+
'',
|
|
237
|
+
'--- ORIGINAL REQUEST ---',
|
|
238
|
+
input.originalPrompt,
|
|
239
|
+
'--- END ORIGINAL REQUEST ---',
|
|
240
|
+
'',
|
|
241
|
+
'--- CODER OUTPUT ---',
|
|
242
|
+
input.coderOutput,
|
|
243
|
+
'--- END CODER OUTPUT ---',
|
|
244
|
+
...(input.transcript.length === 0
|
|
245
|
+
? []
|
|
246
|
+
: [
|
|
247
|
+
'',
|
|
248
|
+
'--- COMPLETE PRIOR REVIEW TRANSCRIPT ---',
|
|
249
|
+
...input.transcript,
|
|
250
|
+
'--- END COMPLETE PRIOR REVIEW TRANSCRIPT ---',
|
|
251
|
+
]),
|
|
252
|
+
'',
|
|
253
|
+
'Understand the full picture and reason systematically about the underlying design.',
|
|
254
|
+
'Flag only material correctness, behavior, or specification-quality defects; include stale, missing, over-specified, or under-specified requirements when relevant.',
|
|
255
|
+
'Do not flag style, equally valid alternatives, or theoretical threats. Avoid unnecessary complexity, but flag fundamental flaws whose later repair would cost more.',
|
|
256
|
+
'For each defect class, report every instance worth fixing rather than revealing the class piecemeal. Do not duplicate findings.',
|
|
257
|
+
'Accept or challenge each Coder rebuttal. Treat a finding rejected twice with evidence as settled and do not raise it again.',
|
|
258
|
+
'Reply with exactly NO_FINDINGS when no unsettled material finding remains.',
|
|
259
|
+
'Otherwise reply with FINDINGS: followed by top-level findings numbered consecutively from 1. Optional continuation or evidence lines must be indented. Add no preamble or epilogue.',
|
|
260
|
+
].join('\n');
|
|
261
|
+
}
|
|
262
|
+
function buildCoderFollowupPrompt(input) {
|
|
263
|
+
return [
|
|
264
|
+
'Continue the original transformation in the current workspace.',
|
|
265
|
+
'For every current review finding below, accept or reject it in the private response envelope.',
|
|
266
|
+
'Before deciding, understand the full picture and reason systematically about the underlying design.',
|
|
267
|
+
'Reject anything nonessential or not worth fixing now, giving reasoning and citing workspace evidence or test output.',
|
|
268
|
+
'For each accepted item, fix its root cause minimally, including every worthwhile instance of the same defect class, without changing the original response contract.',
|
|
269
|
+
'Do not commit. Preserve all original write-scope restrictions.',
|
|
270
|
+
'Return exactly one JSON object, either bare or wholly enclosed by one unlabeled or json-labeled Markdown fence; add no preamble, epilogue, other fence label, or second fence.',
|
|
271
|
+
'The object must have exactly two fields: "dispositions" and "result".',
|
|
272
|
+
'"dispositions" must contain one item per current finding in consecutive order, each exactly {"finding": number, "decision": "accept" | "reject", "reason": nonblank string}.',
|
|
273
|
+
'"result" must be the complete replacement text in exactly the response format required by the original request.',
|
|
274
|
+
'The original response contract governs only the decoded "result" and takes precedence over disposition prose; never put review metadata inside "result" unless the original contract independently requires it.',
|
|
275
|
+
'',
|
|
276
|
+
'--- ORIGINAL REQUEST ---',
|
|
277
|
+
input.originalPrompt,
|
|
278
|
+
'--- END ORIGINAL REQUEST ---',
|
|
279
|
+
'',
|
|
280
|
+
'--- PREVIOUS CODER OUTPUT ---',
|
|
281
|
+
input.previousOutput,
|
|
282
|
+
'--- END PREVIOUS CODER OUTPUT ---',
|
|
283
|
+
...(input.transcript.length === 0
|
|
284
|
+
? []
|
|
285
|
+
: [
|
|
286
|
+
'',
|
|
287
|
+
'--- COMPLETE PRIOR REVIEW TRANSCRIPT ---',
|
|
288
|
+
...input.transcript,
|
|
289
|
+
'--- END COMPLETE PRIOR REVIEW TRANSCRIPT ---',
|
|
290
|
+
]),
|
|
291
|
+
'',
|
|
292
|
+
input.findings,
|
|
293
|
+
].join('\n');
|
|
294
|
+
}
|
|
295
|
+
//# sourceMappingURL=reviewing-agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reviewing-agent.js","sourceRoot":"","sources":["../src/reviewing-agent.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,0EAA0E;AAE1E;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAY7B;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAA8B;IAE9B,OAAO;QACL,KAAK,CAAC,GAAG,CAAC,OAAO;YACf,sEAAsE;YACtE,8DAA8D;YAC9D,IAAI,cAAc,IAAI,OAAO,EAAE,CAAC;gBAC9B,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC;YAED,IAAI,WAAW,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnD,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;gBAAE,OAAO,WAAW,CAAC;YAEnD,IAAI,QAAqB,CAAC;YAC1B,IAAI,CAAC;gBACH,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;YAChC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,UAAU,CACf,WAAW,EACX,6BAA6B,SAAS,CAAC,KAAK,CAAC,EAAE,CAChD,CAAC;YACJ,CAAC;YACD,IAAI,cAAc,GAA+B,KAAK,CAAC;YACvD,MAAM,UAAU,GAAa,EAAE,CAAC;YAChC,IAAI,aAAa,GAAG,CAAC,CAAC;YAEtB,SAAS,CAAC;gBACR,IAAI,MAAsB,CAAC;gBAC3B,IAAI,CAAC;oBACH,aAAa,EAAE,CAAC;oBAChB,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC;wBAC1B,MAAM,EAAE,mBAAmB,CAAC;4BAC1B,cAAc,EAAE,OAAO,CAAC,MAAM;4BAC9B,WAAW,EAAE,WAAW,CAAC,IAAI;4BAC7B,UAAU;yBACX,CAAC;wBACF,GAAG,EAAE,OAAO,CAAC,GAAG;wBAChB,KAAK,EAAE,OAAO,CAAC,aAAa;wBAC5B,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;wBACnE,MAAM,EAAE,OAAO,CAAC,MAAM;qBACvB,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,UAAU,CACf,WAAW,EACX,wBAAwB,SAAS,CAAC,KAAK,CAAC,EAAE,CAC3C,CAAC;gBACJ,CAAC;gBACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBAChC,OAAO,UAAU,CACf,WAAW,EACX,qBAAqB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC7E,CAAC;gBACJ,CAAC;gBACD,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC;gBAEpC,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAClD,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO;oBAAE,OAAO,WAAW,CAAC;gBACjD,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBACjC,OAAO,UAAU,CACf,WAAW,EACX,0CAA0C,MAAM,CAAC,IAAI,EAAE,CACxD,CAAC;gBACJ,CAAC;gBACD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACpC,IAAI,aAAa,KAAK,kBAAkB,EAAE,CAAC;oBACzC,OAAO,UAAU,CACf,WAAW,EACX,oFAAoF,QAAQ,EAAE,CAC/F,CAAC;gBACJ,CAAC;gBAED,MAAM,eAAe,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;gBACxC,UAAU,CAAC,IAAI,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC;gBAClD,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;gBAC5C,MAAM,gBAAgB,GAAG,WAAW,CAAC;gBACrC,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;oBACzC,MAAM,EAAE,wBAAwB,CAAC;wBAC/B,cAAc,EAAE,OAAO,CAAC,MAAM;wBAC9B,cAAc,EAAE,WAAW,CAAC,IAAI;wBAChC,QAAQ;wBACR,UAAU,EAAE,eAAe;qBAC5B,CAAC;oBACF,GAAG,EAAE,OAAO,CAAC,GAAG;oBAChB,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7D,MAAM,EAAE,OAAO,CAAC,MAAM;iBACvB,CAAC,CAAC;gBACH,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS;oBAAE,OAAO,UAAU,CAAC;gBAEvD,MAAM,QAAQ,GAAG,uBAAuB,CACtC,UAAU,CAAC,IAAI,EACf,OAAO,CAAC,YAAY,CACrB,CAAC;gBACF,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBAClC,OAAO,UAAU,CACf,gBAAgB,EAChB,kEAAkE,QAAQ,CAAC,MAAM,EAAE,CACpF,CAAC;gBACJ,CAAC;gBACD,WAAW,GAAG,EAAE,GAAG,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACvD,UAAU,CAAC,IAAI,CACb;oBACE,qBAAqB;oBACrB,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,CAC1B,CAAC,WAAW,EAAE,EAAE,CACd,GAAG,WAAW,CAAC,OAAO,KAAK,WAAW,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,MAAM,EAAE,CACzF;oBACD,2BAA2B;oBAC3B,QAAQ,CAAC,MAAM;iBAChB,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;gBACF,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;oBAAE,OAAO,WAAW,CAAC;YACrD,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,MAAsB;IAC1C,OAAO,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,UAAU,CAAC,MAAsB,EAAE,MAAc;IACxD,OAAO;QACL,GAAG,MAAM;QACT,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,yBAAyB,MAAM,0BAA0B,MAAM,CAAC,IAAI,EAAE;KAC7E,CAAC;AACJ,CAAC;AAOD,SAAS,oBAAoB,CAAC,IAAY;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrD,IAAI,OAAO,KAAK,aAAa;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACxD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IACrE,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACvE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IACrD,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC/C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,YAAY,EAAE,CAAC;YACf,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;gBACxC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;YAC/B,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,YAAY,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACrD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;AAC5C,CAAC;AAgBD,SAAS,uBAAuB,CAC9B,IAAY,EACZ,YAAoB;IAEpB,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,6DAA6D;SACtE,CAAC;IACJ,CAAC;IACD,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAY,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,iCAAiC,EAAE,CAAC;IAC1E,CAAC;IACD,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACpB,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,SAAS,EACjD,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,mCAAmC,EAAE,CAAC;IAC5E,CAAC;IACD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,IACE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC;QAChC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC;QACtC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAChC,CAAC;QACD,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,qDAAqD;SAC9D,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;QACxC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,+BAA+B,EAAE,CAAC;IACxE,CAAC;IACD,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;QAChD,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,mCAAmC,YAAY,WAAW;SACnE,CAAC;IACJ,CAAC;IACD,MAAM,YAAY,GAA4B,EAAE,CAAC;IACjD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAChE,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC/C,IACE,OAAO,WAAW,KAAK,QAAQ;YAC/B,WAAW,KAAK,IAAI;YACpB,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;YAC1B,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,MAAM,CAAC,SAAS,EACvD,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,eAAe,KAAK,GAAG,CAAC,oBAAoB;aACrD,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,WAAsC,CAAC;QACpD,IACE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;YAC9B,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC;YAC/B,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC;YAChC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC;YAC9B,IAAI,CAAC,OAAO,KAAK,KAAK,GAAG,CAAC;YAC1B,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC;YAC1D,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ;YAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EACzB,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,eAAe,KAAK,GAAG,CAAC,+BAA+B,KAAK,GAAG,CAAC,sCAAsC;aAC/G,CAAC;QACJ,CAAC;QACD,YAAY,CAAC,IAAI,CAAC;YAChB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC;IAClE,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;AAChE,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY;IACxC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAC3E,OAAO,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC7B,CAAC;AAED,SAAS,mBAAmB,CAAC,KAI5B;IACC,OAAO;QACL,wEAAwE;QACxE,iJAAiJ;QACjJ,mHAAmH;QACnH,mDAAmD;QACnD,EAAE;QACF,0BAA0B;QAC1B,KAAK,CAAC,cAAc;QACpB,8BAA8B;QAC9B,EAAE;QACF,sBAAsB;QACtB,KAAK,CAAC,WAAW;QACjB,0BAA0B;QAC1B,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;YAC/B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,EAAE;gBACF,0CAA0C;gBAC1C,GAAG,KAAK,CAAC,UAAU;gBACnB,8CAA8C;aAC/C,CAAC;QACN,EAAE;QACF,oFAAoF;QACpF,oKAAoK;QACpK,qKAAqK;QACrK,iIAAiI;QACjI,6HAA6H;QAC7H,4EAA4E;QAC5E,qLAAqL;KACtL,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,wBAAwB,CAAC,KAKjC;IACC,OAAO;QACL,gEAAgE;QAChE,+FAA+F;QAC/F,qGAAqG;QACrG,sHAAsH;QACtH,sKAAsK;QACtK,gEAAgE;QAChE,gLAAgL;QAChL,uEAAuE;QACvE,8KAA8K;QAC9K,iHAAiH;QACjH,iNAAiN;QACjN,EAAE;QACF,0BAA0B;QAC1B,KAAK,CAAC,cAAc;QACpB,8BAA8B;QAC9B,EAAE;QACF,+BAA+B;QAC/B,KAAK,CAAC,cAAc;QACpB,mCAAmC;QACnC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;YAC/B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,EAAE;gBACF,0CAA0C;gBAC1C,GAAG,KAAK,CAAC,UAAU;gBACnB,8CAA8C;aAC/C,CAAC;QACN,EAAE;QACF,KAAK,CAAC,QAAQ;KACf,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|
package/dist/runner.d.ts
CHANGED
|
@@ -28,7 +28,7 @@ export interface SlcDeps {
|
|
|
28
28
|
signal?: AbortSignal;
|
|
29
29
|
/**
|
|
30
30
|
* Receives phase start/finish/failure events with elapsed times as the run
|
|
31
|
-
* progresses (DR-019,
|
|
31
|
+
* progresses (DR-019, cli-32). Absent for hosts that want a quiet run.
|
|
32
32
|
*/
|
|
33
33
|
progress?: ProgressSink;
|
|
34
34
|
}
|
package/dist/runner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAiCA,OAAO,EAGL,KAAK,aAAa,EAInB,MAAM,gBAAgB,CAAC;AAWxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAKL,KAAK,SAAS,EACf,MAAM,WAAW,CAAC;AAEnB,OAAO,EAEL,KAAK,gBAAgB,EAGtB,MAAM,eAAe,CAAC;AAmBvB,iFAAiF;AACjF,MAAM,WAAW,iBAAiB;IAChC,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,4CAA4C;AAC5C,MAAM,WAAW,OAAO;IACtB,uEAAuE;IACvE,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,uFAAuF;IACvF,QAAQ,EAAE,aAAa,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,iBAAiB,KAAK,aAAa,CAAC;IAC3D,uGAAuG;IACvG,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED,mCAAmC;AACnC,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,OAAO,CAAC;IACZ,wCAAwC;IACxC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,sEAAsE;IACtE,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,oEAAoE;IACpE,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAsB,MAAM,CAC1B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,SAAS,CAAC,CAoCpB;AAskBD,6EAA6E;AAC7E,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD"}
|