@sublang/slc 0.2.0 → 0.4.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 +86 -14
- package/dist/app.d.ts +13 -2
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +65 -15
- package/dist/app.js.map +1 -1
- package/dist/build-history.d.ts +74 -0
- package/dist/build-history.d.ts.map +1 -0
- package/dist/build-history.js +309 -0
- package/dist/build-history.js.map +1 -0
- package/dist/cli.js +2 -1
- package/dist/cli.js.map +1 -1
- package/dist/cligent-agent.d.ts +19 -0
- package/dist/cligent-agent.d.ts.map +1 -1
- package/dist/cligent-agent.js +125 -30
- package/dist/cligent-agent.js.map +1 -1
- package/dist/compiled-executor.d.ts +7 -1
- package/dist/compiled-executor.d.ts.map +1 -1
- package/dist/compiled-executor.js +11 -3
- package/dist/compiled-executor.js.map +1 -1
- package/dist/config-file.d.ts +9 -0
- package/dist/config-file.d.ts.map +1 -1
- package/dist/config-file.js +29 -5
- package/dist/config-file.js.map +1 -1
- package/dist/config.d.ts +8 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +9 -3
- package/dist/config.js.map +1 -1
- package/dist/errors.d.ts +14 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +28 -0
- package/dist/errors.js.map +1 -0
- package/dist/execution.d.ts +42 -0
- package/dist/execution.d.ts.map +1 -1
- package/dist/execution.js +224 -29
- package/dist/execution.js.map +1 -1
- package/dist/hash.d.ts +22 -0
- package/dist/hash.d.ts.map +1 -1
- package/dist/hash.js +47 -0
- package/dist/hash.js.map +1 -1
- 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 +1 -1
- package/dist/interpreter.d.ts.map +1 -1
- package/dist/interpreter.js +9 -0
- package/dist/interpreter.js.map +1 -1
- package/dist/invocation.d.ts +5 -1
- package/dist/invocation.d.ts.map +1 -1
- package/dist/invocation.js +14 -3
- package/dist/invocation.js.map +1 -1
- package/dist/line-diff.d.ts +7 -0
- package/dist/line-diff.d.ts.map +1 -0
- package/dist/line-diff.js +66 -0
- package/dist/line-diff.js.map +1 -0
- package/dist/phase.d.ts +2 -0
- package/dist/phase.d.ts.map +1 -1
- package/dist/phase.js +19 -3
- package/dist/phase.js.map +1 -1
- package/dist/pin-closure.d.ts +2 -2
- package/dist/pin-closure.d.ts.map +1 -1
- package/dist/pin-closure.js +4 -3
- package/dist/pin-closure.js.map +1 -1
- package/dist/pin-currency.d.ts +6 -2
- package/dist/pin-currency.d.ts.map +1 -1
- package/dist/pin-currency.js +24 -43
- package/dist/pin-currency.js.map +1 -1
- package/dist/pin-generate.d.ts.map +1 -1
- package/dist/pin-generate.js +1 -3
- package/dist/pin-generate.js.map +1 -1
- package/dist/pin-paths.d.ts.map +1 -1
- package/dist/pin-paths.js +2 -13
- package/dist/pin-paths.js.map +1 -1
- package/dist/pins.d.ts.map +1 -1
- package/dist/pins.js +5 -15
- package/dist/pins.js.map +1 -1
- package/dist/playbook-ports.d.ts +17 -0
- package/dist/playbook-ports.d.ts.map +1 -1
- package/dist/playbook-ports.js +21 -6
- package/dist/playbook-ports.js.map +1 -1
- package/dist/progress.d.ts +71 -0
- package/dist/progress.d.ts.map +1 -0
- package/dist/progress.js +96 -0
- package/dist/progress.js.map +1 -0
- package/dist/runner.d.ts +8 -0
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +673 -89
- package/dist/runner.js.map +1 -1
- package/dist/runtime-package.d.ts.map +1 -1
- package/dist/runtime-package.js +3 -11
- package/dist/runtime-package.js.map +1 -1
- package/dist/slc.config.template.yaml +5 -1
- package/dist/verify-coverage.d.ts.map +1 -1
- package/dist/verify-coverage.js +2 -0
- package/dist/verify-coverage.js.map +1 -1
- package/dist/verify-support.d.ts +7 -0
- package/dist/verify-support.d.ts.map +1 -1
- package/dist/verify-support.js +13 -6
- package/dist/verify-support.js.map +1 -1
- package/dist/verify.d.ts.map +1 -1
- package/dist/verify.js +2 -0
- package/dist/verify.js.map +1 -1
- package/package.json +5 -3
package/dist/pin-paths.js
CHANGED
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
import { realpathSync } from 'node:fs';
|
|
16
16
|
import { basename, dirname, isAbsolute, relative, resolve, sep, } from 'node:path';
|
|
17
17
|
import { isAbsolute as posixIsAbsolute } from 'node:path/posix';
|
|
18
|
+
import { errorCode, isAbsentPathError } from './errors.js';
|
|
18
19
|
import { PinError } from './pins.js';
|
|
19
20
|
/**
|
|
20
21
|
* Resolves a relative POSIX `relPath` against `pipelineDir`, requiring it to stay
|
|
@@ -56,7 +57,7 @@ function canonicalProspectivePath(path, field) {
|
|
|
56
57
|
return resolve(realpathSync.native(cursor), ...suffix.reverse());
|
|
57
58
|
}
|
|
58
59
|
catch (error) {
|
|
59
|
-
if (!
|
|
60
|
+
if (!isAbsentPathError(error)) {
|
|
60
61
|
throw new PinError('pin-invalid', `${field} cannot be resolved safely: ${errorCode(error)}`);
|
|
61
62
|
}
|
|
62
63
|
}
|
|
@@ -68,18 +69,6 @@ function canonicalProspectivePath(path, field) {
|
|
|
68
69
|
cursor = parent;
|
|
69
70
|
}
|
|
70
71
|
}
|
|
71
|
-
function isAbsentPath(error) {
|
|
72
|
-
const code = errorCode(error);
|
|
73
|
-
return code === 'ENOENT' || code === 'ENOTDIR';
|
|
74
|
-
}
|
|
75
|
-
function errorCode(error) {
|
|
76
|
-
return typeof error === 'object' &&
|
|
77
|
-
error !== null &&
|
|
78
|
-
'code' in error &&
|
|
79
|
-
typeof error.code === 'string'
|
|
80
|
-
? error.code
|
|
81
|
-
: 'unknown error';
|
|
82
|
-
}
|
|
83
72
|
/** Rejects an absolute (POSIX or Windows) path, naming `field` (PIN-5). */
|
|
84
73
|
function requireRelative(path, field) {
|
|
85
74
|
if (path === '' || path.includes('\\') || path.includes('\0')) {
|
package/dist/pin-paths.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pin-paths.js","sourceRoot":"","sources":["../src/pin-paths.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,0EAA0E;AAE1E;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EACL,QAAQ,EACR,OAAO,EACP,UAAU,EACV,QAAQ,EACR,OAAO,EACP,GAAG,GACJ,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,UAAU,IAAI,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEhE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAC5B,WAAmB,EACnB,QAAgB,EAChB,OAAe,EACf,KAAa;IAEb,eAAe,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAC/C,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAChC,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9D,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,QAAQ,CAChB,aAAa,EACb,GAAG,KAAK,KAAK,OAAO,6BAA6B,CAClD,CAAC;IACJ,CAAC;IACD,2EAA2E;IAC3E,oEAAoE;IACpE,sEAAsE;IACtE,MAAM,YAAY,GAAG,wBAAwB,CAC3C,YAAY,EACZ,mBAAmB,CACpB,CAAC;IACF,MAAM,YAAY,GAAG,wBAAwB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC/D,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,QAAQ,CAChB,aAAa,EACb,GAAG,KAAK,KAAK,OAAO,sCAAsC,CAC3D,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,SAAS,wBAAwB,CAAC,IAAY,EAAE,KAAa;IAC3D,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,OAAO,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"pin-paths.js","sourceRoot":"","sources":["../src/pin-paths.ts"],"names":[],"mappings":"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"}
|
package/dist/pins.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pins.d.ts","sourceRoot":"","sources":["../src/pins.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pins.d.ts","sourceRoot":"","sources":["../src/pins.ts"],"names":[],"mappings":"AAyBA,qEAAqE;AACrE,eAAO,MAAM,SAAS,kBAAkB,CAAC;AACzC,8DAA8D;AAC9D,eAAO,MAAM,UAAU,wBAAwB,CAAC;AAChD,sDAAsD;AACtD,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAI3C,yEAAyE;AACzE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,sFAAsF;AACtF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,iGAAiG;AACjG,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,6EAA6E;AAC7E,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IACzD,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,4FAA4F;AAC5F,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEvD,sFAAsF;AACtF,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,6CAA6C;AAC7C,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,UAAU,CAAC;IACrB,6FAA6F;IAC7F,cAAc,EAAE,UAAU,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,gBAAgB,EAAE,CAAC;IACnC,cAAc,EAAE,gBAAgB,EAAE,CAAC;IACnC,uEAAuE;IACvE,mBAAmB,EAAE,oBAAoB,EAAE,CAAC;IAC5C,UAAU,EAAE,aAAa,CAAC;IAC1B,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,qFAAqF;AACrF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,yCAAyC;AACzC,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,eAAe,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACjC;AAED,4FAA4F;AAC5F,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,+DAA+D;AAC/D,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,aAAa,CAAC;AAEvD,wFAAwF;AACxF,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;gBAEhB,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM;CAKhD;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAoB1E;AAED,+FAA+F;AAC/F,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,MAAkB,GACvB,OAAO,CAWT"}
|
package/dist/pins.js
CHANGED
|
@@ -16,6 +16,8 @@
|
|
|
16
16
|
*/
|
|
17
17
|
import { lstat, readFile } from 'node:fs/promises';
|
|
18
18
|
import { join } from 'node:path';
|
|
19
|
+
import { errorCode, messageOf } from './errors.js';
|
|
20
|
+
import { isPortablePhaseName } from './phase.js';
|
|
19
21
|
import { isBarePackageSpecifier } from './runtime-package.js';
|
|
20
22
|
/** Committed pin-index filename in a pipeline directory (DR-007). */
|
|
21
23
|
export const PINS_FILE = 'slc.pins.json';
|
|
@@ -24,7 +26,6 @@ export const PIN_SCHEMA = 'sublang.slc.pins.v2';
|
|
|
24
26
|
/** The only supported pin hash algorithm (DR-007). */
|
|
25
27
|
export const PIN_HASH_ALGORITHM = 'sha256';
|
|
26
28
|
const LINK_TARGET_KINDS = new Set(['file', 'directory', 'package']);
|
|
27
|
-
const PIN_PHASE_NAME = /^[a-z0-9]+(?:-[a-z0-9]+)*2[a-z0-9]+(?:-[a-z0-9]+)*$/;
|
|
28
29
|
/** Raised when `slc.pins.json` is not valid JSON or violates the pin schema (PIN-5). */
|
|
29
30
|
export class PinError extends Error {
|
|
30
31
|
code;
|
|
@@ -58,14 +59,6 @@ export async function loadPinFile(pipelineDir) {
|
|
|
58
59
|
const source = await readFile(path, 'utf8');
|
|
59
60
|
return { path, file: parsePinFile(source, path) };
|
|
60
61
|
}
|
|
61
|
-
function errorCode(error) {
|
|
62
|
-
return typeof error === 'object' &&
|
|
63
|
-
error !== null &&
|
|
64
|
-
'code' in error &&
|
|
65
|
-
typeof error.code === 'string'
|
|
66
|
-
? error.code
|
|
67
|
-
: 'unknown error';
|
|
68
|
-
}
|
|
69
62
|
/** Parses and structurally validates the text of a pin file into a {@link PinFile} (PIN-5). */
|
|
70
63
|
export function parsePinFile(source, path = PINS_FILE) {
|
|
71
64
|
let raw;
|
|
@@ -105,10 +98,10 @@ function normalizePathBoundary(value, path) {
|
|
|
105
98
|
}
|
|
106
99
|
function normalizePins(value, path) {
|
|
107
100
|
const input = requireObject(value, path);
|
|
108
|
-
const pins =
|
|
101
|
+
const pins = Object.create(null);
|
|
109
102
|
for (const [name, record] of Object.entries(input)) {
|
|
110
|
-
if (name !== 'link' && !
|
|
111
|
-
throw invalid(`${path}.${name}`, 'phase key must be "link" or a
|
|
103
|
+
if (name !== 'link' && !isPortablePhaseName(name)) {
|
|
104
|
+
throw invalid(`${path}.${name}`, 'phase key must be "link" or a portable phase/pass name');
|
|
112
105
|
}
|
|
113
106
|
pins[name] = normalizePinRecord(record, `${path}.${name}`);
|
|
114
107
|
}
|
|
@@ -259,7 +252,4 @@ function rejectUnknownKeys(value, allowed, path) {
|
|
|
259
252
|
function invalid(field, detail) {
|
|
260
253
|
return new PinError('pin-invalid', `${field} ${detail}`);
|
|
261
254
|
}
|
|
262
|
-
function messageOf(error) {
|
|
263
|
-
return error instanceof Error ? error.message : String(error);
|
|
264
|
-
}
|
|
265
255
|
//# sourceMappingURL=pins.js.map
|
package/dist/pins.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pins.js","sourceRoot":"","sources":["../src/pins.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,0EAA0E;AAE1E;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,qEAAqE;AACrE,MAAM,CAAC,MAAM,SAAS,GAAG,eAAe,CAAC;AACzC,8DAA8D;AAC9D,MAAM,CAAC,MAAM,UAAU,GAAG,qBAAqB,CAAC;AAChD,sDAAsD;AACtD,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AAE3C,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"pins.js","sourceRoot":"","sources":["../src/pins.ts"],"names":[],"mappings":"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"}
|
package/dist/playbook-ports.d.ts
CHANGED
|
@@ -49,5 +49,22 @@ export declare function createPlaybookPorts(opts: {
|
|
|
49
49
|
* carry it.
|
|
50
50
|
*/
|
|
51
51
|
captainWorkspace?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Host update-mode context appended to every Player prompt and to
|
|
54
|
+
* transformation-performing direct Captain prompts (DR-021, INCR-16). The
|
|
55
|
+
* compiled artifact composes host-agnostic prompts and knows nothing about
|
|
56
|
+
* incremental updates, so only the host can say the target already holds
|
|
57
|
+
* the prior accepted output. Routing-only Captain and judge calls never
|
|
58
|
+
* carry it.
|
|
59
|
+
*/
|
|
60
|
+
updateContext?: string;
|
|
61
|
+
/**
|
|
62
|
+
* Live status sink (DR-019, PHEXEC-25): when set, human status and non-trace
|
|
63
|
+
* operational telemetry stream here as they occur instead of being collected
|
|
64
|
+
* for {@link PlaybookPortsAdapter.drainDiagnostics}, so a long compiled phase
|
|
65
|
+
* is observable while it runs. `playbook.trace` payloads are excluded from
|
|
66
|
+
* the streamed lines exactly as from ordinary diagnostics.
|
|
67
|
+
*/
|
|
68
|
+
onStatus?: (line: string) => void;
|
|
52
69
|
}): PlaybookPortsAdapter;
|
|
53
70
|
//# sourceMappingURL=playbook-ports.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playbook-ports.d.ts","sourceRoot":"","sources":["../src/playbook-ports.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAGV,uBAAuB,EAKxB,MAAM,wBAAwB,CAAC;AAEhC,0EAA0E;AAC1E,MAAM,WAAW,oBAAqB,SAAQ,uBAAuB;IACnE,4EAA4E;IAC5E,gBAAgB,IAAI,MAAM,EAAE,CAAC;CAC9B;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,WAAW,CAAC,CAAC;AAEhF,sFAAsF;AACtF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,iFAAiF;IACjF,MAAM,EAAE,eAAe,CAAC;IACxB,8DAA8D;IAC9D,KAAK,EAAE,WAAW,CAAC;IACnB,sEAAsE;IACtE,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1C,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"playbook-ports.d.ts","sourceRoot":"","sources":["../src/playbook-ports.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAGV,uBAAuB,EAKxB,MAAM,wBAAwB,CAAC;AAEhC,0EAA0E;AAC1E,MAAM,WAAW,oBAAqB,SAAQ,uBAAuB;IACnE,4EAA4E;IAC5E,gBAAgB,IAAI,MAAM,EAAE,CAAC;CAC9B;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,WAAW,CAAC,CAAC;AAEhF,sFAAsF;AACtF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,iFAAiF;IACjF,MAAM,EAAE,eAAe,CAAC;IACxB,8DAA8D;IAC9D,KAAK,EAAE,WAAW,CAAC;IACnB,sEAAsE;IACtE,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1C,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,GAAG,oBAAoB,CA+IvB"}
|
package/dist/playbook-ports.js
CHANGED
|
@@ -18,7 +18,9 @@ export function createPlaybookPorts(opts) {
|
|
|
18
18
|
return {
|
|
19
19
|
async callPlayer(playerId, prompt, signal, options) {
|
|
20
20
|
const result = await playerFor(playerId).run({
|
|
21
|
-
prompt
|
|
21
|
+
prompt: opts.updateContext === undefined
|
|
22
|
+
? prompt
|
|
23
|
+
: `${prompt}\n\n${opts.updateContext}`,
|
|
22
24
|
model: opts.models?.[playerId] ?? opts.defaultModel,
|
|
23
25
|
cwd: opts.cwd,
|
|
24
26
|
...(options !== undefined ? { resume: options.resume } : {}),
|
|
@@ -32,9 +34,10 @@ export function createPlaybookPorts(opts) {
|
|
|
32
34
|
// restriction) gets the host workspace contract appended: the artifact
|
|
33
35
|
// composes host-agnostic prompts, and only the host knows the request's
|
|
34
36
|
// absolute source/target paths (PHEXEC-34).
|
|
35
|
-
const transported = isolation.allowedTools === undefined
|
|
36
|
-
opts.captainWorkspace
|
|
37
|
-
|
|
37
|
+
const transported = isolation.allowedTools === undefined
|
|
38
|
+
? [prompt, opts.captainWorkspace, opts.updateContext]
|
|
39
|
+
.filter((part) => part !== undefined)
|
|
40
|
+
.join('\n\n')
|
|
38
41
|
: prompt;
|
|
39
42
|
return withSerialCaptain(signal, async () => {
|
|
40
43
|
const result = await opts.judge.run({
|
|
@@ -68,17 +71,29 @@ export function createPlaybookPorts(opts) {
|
|
|
68
71
|
return unsupportedNestedCall(request);
|
|
69
72
|
},
|
|
70
73
|
async emitStatus(message, data) {
|
|
71
|
-
|
|
74
|
+
report(data === undefined ? message : `${message} ${stringify(data)}`);
|
|
72
75
|
},
|
|
73
76
|
async emitTelemetry(event) {
|
|
74
77
|
if (event.topic === 'playbook.trace')
|
|
75
78
|
return;
|
|
76
|
-
|
|
79
|
+
report(`[${event.topic}] ${stringify(event.payload)}`);
|
|
77
80
|
},
|
|
78
81
|
drainDiagnostics() {
|
|
79
82
|
return diagnostics.splice(0);
|
|
80
83
|
},
|
|
81
84
|
};
|
|
85
|
+
/**
|
|
86
|
+
* Streams a non-trace line live when the host configured a sink, otherwise
|
|
87
|
+
* collects it as a drainable diagnostic — never both, so streamed lines do
|
|
88
|
+
* not repeat in the run's diagnostics (DR-019, PHEXEC-25).
|
|
89
|
+
*/
|
|
90
|
+
function report(line) {
|
|
91
|
+
if (opts.onStatus !== undefined) {
|
|
92
|
+
opts.onStatus(line);
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
diagnostics.push(line);
|
|
96
|
+
}
|
|
82
97
|
async function withSerialCaptain(signal, run) {
|
|
83
98
|
const previous = captainGate;
|
|
84
99
|
let release;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playbook-ports.js","sourceRoot":"","sources":["../src/playbook-ports.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,0EAA0E;AA8C1E,sFAAsF;AACtF,MAAM,UAAU,mBAAmB,CAAC,
|
|
1
|
+
{"version":3,"file":"playbook-ports.js","sourceRoot":"","sources":["../src/playbook-ports.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-run progress reporting (DR-019).
|
|
3
|
+
*
|
|
4
|
+
* The step loop emits {@link ProgressEvent}s — phase start/finish/failure with
|
|
5
|
+
* elapsed times, plus streamed compiled-runtime status lines — through an
|
|
6
|
+
* optional {@link ProgressSink} on `SlcDeps` (CLI-32). The bin renders them as
|
|
7
|
+
* human-readable lines on stderr via {@link createProgressReporter}, which also
|
|
8
|
+
* owns the 30-second silence-bounded heartbeat (CLI-33): whenever no event has
|
|
9
|
+
* been rendered for the bound while a phase is in flight, it emits an
|
|
10
|
+
* elapsed-time heartbeat line. Timer construction is injectable so tests drive
|
|
11
|
+
* the heartbeat deterministically. The exact line format is host-owned
|
|
12
|
+
* presentation and deliberately unspecified. See specs/user/cli.md and
|
|
13
|
+
* specs/dev/cli.md.
|
|
14
|
+
*/
|
|
15
|
+
/** One in-run progress event the step loop reports (CLI-32). */
|
|
16
|
+
export type ProgressEvent = {
|
|
17
|
+
kind: 'phase-start';
|
|
18
|
+
phase: string;
|
|
19
|
+
target: string;
|
|
20
|
+
} | {
|
|
21
|
+
kind: 'phase-finish';
|
|
22
|
+
phase: string;
|
|
23
|
+
target: string;
|
|
24
|
+
elapsedMs: number;
|
|
25
|
+
} | {
|
|
26
|
+
kind: 'phase-fail';
|
|
27
|
+
phase: string;
|
|
28
|
+
target: string;
|
|
29
|
+
elapsedMs: number;
|
|
30
|
+
}
|
|
31
|
+
/** A streamed compiled-runtime status or telemetry line (PHEXEC-25). */
|
|
32
|
+
| {
|
|
33
|
+
kind: 'status';
|
|
34
|
+
text: string;
|
|
35
|
+
} | {
|
|
36
|
+
kind: 'heartbeat';
|
|
37
|
+
phase: string;
|
|
38
|
+
elapsedMs: number;
|
|
39
|
+
};
|
|
40
|
+
/** Receives progress events as they occur; injected beside the executors. */
|
|
41
|
+
export type ProgressSink = (event: ProgressEvent) => void;
|
|
42
|
+
/** The silence bound after which the reporter emits a heartbeat (CLI-33). */
|
|
43
|
+
export declare const HEARTBEAT_INTERVAL_MS = 30000;
|
|
44
|
+
/** Renders a duration as a compact human-readable elapsed time. */
|
|
45
|
+
export declare function formatElapsed(ms: number): string;
|
|
46
|
+
/** Renders one progress event as a single stderr line (host presentation). */
|
|
47
|
+
export declare function formatProgressEvent(event: ProgressEvent): string;
|
|
48
|
+
/** Timer seams for {@link createProgressReporter}; injected in tests. */
|
|
49
|
+
export interface ProgressTimers {
|
|
50
|
+
setInterval(callback: () => void, ms: number): unknown;
|
|
51
|
+
clearInterval(handle: unknown): void;
|
|
52
|
+
now(): number;
|
|
53
|
+
}
|
|
54
|
+
/** A progress reporter: the sink to inject plus a disposer for its timer. */
|
|
55
|
+
export interface ProgressReporter {
|
|
56
|
+
sink: ProgressSink;
|
|
57
|
+
/** Stops the heartbeat timer; call when the run settles. */
|
|
58
|
+
dispose(): void;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Builds the bin's progress reporter (CLI-35): renders each event as a line
|
|
62
|
+
* through `write`, and, while a phase is in flight, emits a heartbeat whenever
|
|
63
|
+
* no line has been written for `intervalMs` (CLI-33). The heartbeat's elapsed
|
|
64
|
+
* time counts from the running phase's start, so a long phase reads as one
|
|
65
|
+
* growing duration rather than a series of 30-second gaps.
|
|
66
|
+
*/
|
|
67
|
+
export declare function createProgressReporter(write: (line: string) => void, opts?: {
|
|
68
|
+
intervalMs?: number;
|
|
69
|
+
timers?: ProgressTimers;
|
|
70
|
+
}): ProgressReporter;
|
|
71
|
+
//# sourceMappingURL=progress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../src/progress.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;GAaG;AAEH,gEAAgE;AAChE,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC1E;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE;AAC1E,wEAAwE;GACtE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5D,6EAA6E;AAC7E,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;AAE1D,6EAA6E;AAC7E,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAE5C,mEAAmE;AACnE,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAOhD;AAMD,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAahE;AAED,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IACvD,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACrC,GAAG,IAAI,MAAM,CAAC;CACf;AAaD,6EAA6E;AAC7E,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,4DAA4D;IAC5D,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAC7B,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,cAAc,CAAA;CAAO,GAC1D,gBAAgB,CA4ClB"}
|
package/dist/progress.js
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// SPDX-FileCopyrightText: 2026 SubLang International <https://sublang.ai>
|
|
3
|
+
/** The silence bound after which the reporter emits a heartbeat (CLI-33). */
|
|
4
|
+
export const HEARTBEAT_INTERVAL_MS = 30_000;
|
|
5
|
+
/** Renders a duration as a compact human-readable elapsed time. */
|
|
6
|
+
export function formatElapsed(ms) {
|
|
7
|
+
const seconds = Math.max(0, Math.round(ms / 1000));
|
|
8
|
+
if (seconds < 60)
|
|
9
|
+
return `${seconds}s`;
|
|
10
|
+
const minutes = Math.floor(seconds / 60);
|
|
11
|
+
if (minutes < 60)
|
|
12
|
+
return `${minutes}m${pad(seconds % 60)}s`;
|
|
13
|
+
const hours = Math.floor(minutes / 60);
|
|
14
|
+
return `${hours}h${pad(minutes % 60)}m`;
|
|
15
|
+
}
|
|
16
|
+
function pad(value) {
|
|
17
|
+
return value.toString().padStart(2, '0');
|
|
18
|
+
}
|
|
19
|
+
/** Renders one progress event as a single stderr line (host presentation). */
|
|
20
|
+
export function formatProgressEvent(event) {
|
|
21
|
+
switch (event.kind) {
|
|
22
|
+
case 'phase-start':
|
|
23
|
+
return `→ ${event.phase} (writing ${event.target})`;
|
|
24
|
+
case 'phase-finish':
|
|
25
|
+
return `✓ ${event.phase} wrote ${event.target} (${formatElapsed(event.elapsedMs)})`;
|
|
26
|
+
case 'phase-fail':
|
|
27
|
+
return `✗ ${event.phase} failed at ${event.target} (${formatElapsed(event.elapsedMs)})`;
|
|
28
|
+
case 'status':
|
|
29
|
+
return `◇ ${event.text}`;
|
|
30
|
+
case 'heartbeat':
|
|
31
|
+
return `… ${event.phase} still running (${formatElapsed(event.elapsedMs)})`;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
const defaultTimers = {
|
|
35
|
+
setInterval: (callback, ms) => {
|
|
36
|
+
const handle = setInterval(callback, ms);
|
|
37
|
+
// Never keep the process alive just for the heartbeat.
|
|
38
|
+
handle.unref?.();
|
|
39
|
+
return handle;
|
|
40
|
+
},
|
|
41
|
+
clearInterval: (handle) => clearInterval(handle),
|
|
42
|
+
now: () => Date.now(),
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Builds the bin's progress reporter (CLI-35): renders each event as a line
|
|
46
|
+
* through `write`, and, while a phase is in flight, emits a heartbeat whenever
|
|
47
|
+
* no line has been written for `intervalMs` (CLI-33). The heartbeat's elapsed
|
|
48
|
+
* time counts from the running phase's start, so a long phase reads as one
|
|
49
|
+
* growing duration rather than a series of 30-second gaps.
|
|
50
|
+
*/
|
|
51
|
+
export function createProgressReporter(write, opts = {}) {
|
|
52
|
+
const timers = opts.timers ?? defaultTimers;
|
|
53
|
+
const intervalMs = opts.intervalMs ?? HEARTBEAT_INTERVAL_MS;
|
|
54
|
+
let running;
|
|
55
|
+
let lastLineAt = timers.now();
|
|
56
|
+
let handle;
|
|
57
|
+
const emit = (event) => {
|
|
58
|
+
write(`${formatProgressEvent(event)}\n`);
|
|
59
|
+
lastLineAt = timers.now();
|
|
60
|
+
};
|
|
61
|
+
const sink = (event) => {
|
|
62
|
+
if (event.kind === 'phase-start') {
|
|
63
|
+
running = { phase: event.phase, startedAt: timers.now() };
|
|
64
|
+
}
|
|
65
|
+
else if (event.kind === 'phase-finish' || event.kind === 'phase-fail') {
|
|
66
|
+
running = undefined;
|
|
67
|
+
}
|
|
68
|
+
emit(event);
|
|
69
|
+
};
|
|
70
|
+
if (intervalMs > 0) {
|
|
71
|
+
// Tick finer than the bound so worst-case silence stays near the bound
|
|
72
|
+
// itself rather than approaching twice it.
|
|
73
|
+
const tickMs = Math.max(250, Math.floor(intervalMs / 6));
|
|
74
|
+
handle = timers.setInterval(() => {
|
|
75
|
+
if (running === undefined)
|
|
76
|
+
return;
|
|
77
|
+
const now = timers.now();
|
|
78
|
+
if (now - lastLineAt < intervalMs)
|
|
79
|
+
return;
|
|
80
|
+
emit({
|
|
81
|
+
kind: 'heartbeat',
|
|
82
|
+
phase: running.phase,
|
|
83
|
+
elapsedMs: now - running.startedAt,
|
|
84
|
+
});
|
|
85
|
+
}, tickMs);
|
|
86
|
+
}
|
|
87
|
+
return {
|
|
88
|
+
sink,
|
|
89
|
+
dispose: () => {
|
|
90
|
+
if (handle !== undefined)
|
|
91
|
+
timers.clearInterval(handle);
|
|
92
|
+
handle = undefined;
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../src/progress.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,0EAA0E;AA6B1E,6EAA6E;AAC7E,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAE5C,mEAAmE;AACnE,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IACnD,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,GAAG,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACzC,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,IAAI,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC;IAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACvC,OAAO,GAAG,KAAK,IAAI,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC;AAC1C,CAAC;AAED,SAAS,GAAG,CAAC,KAAa;IACxB,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC3C,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,mBAAmB,CAAC,KAAoB;IACtD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,aAAa;YAChB,OAAO,KAAK,KAAK,CAAC,KAAK,aAAa,KAAK,CAAC,MAAM,GAAG,CAAC;QACtD,KAAK,cAAc;YACjB,OAAO,KAAK,KAAK,CAAC,KAAK,UAAU,KAAK,CAAC,MAAM,KAAK,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC;QACtF,KAAK,YAAY;YACf,OAAO,KAAK,KAAK,CAAC,KAAK,cAAc,KAAK,CAAC,MAAM,KAAK,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC;QAC1F,KAAK,QAAQ;YACX,OAAO,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;QAC3B,KAAK,WAAW;YACd,OAAO,KAAK,KAAK,CAAC,KAAK,mBAAmB,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC;IAChF,CAAC;AACH,CAAC;AASD,MAAM,aAAa,GAAmB;IACpC,WAAW,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE;QAC5B,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACzC,uDAAuD;QACvD,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;QACjB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,MAAwB,CAAC;IAClE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;CACtB,CAAC;AASF;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAA6B,EAC7B,OAAyD,EAAE;IAE3D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,aAAa,CAAC;IAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,qBAAqB,CAAC;IAC5D,IAAI,OAAyD,CAAC;IAC9D,IAAI,UAAU,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;IAC9B,IAAI,MAAe,CAAC;IAEpB,MAAM,IAAI,GAAG,CAAC,KAAoB,EAAQ,EAAE;QAC1C,KAAK,CAAC,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,UAAU,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;IAC5B,CAAC,CAAC;IAEF,MAAM,IAAI,GAAiB,CAAC,KAAK,EAAE,EAAE;QACnC,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACjC,OAAO,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;QAC5D,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACxE,OAAO,GAAG,SAAS,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,CAAC;IACd,CAAC,CAAC;IAEF,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,uEAAuE;QACvE,2CAA2C;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE;YAC/B,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAO;YAClC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;YACzB,IAAI,GAAG,GAAG,UAAU,GAAG,UAAU;gBAAE,OAAO;YAC1C,IAAI,CAAC;gBACH,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS;aACnC,CAAC,CAAC;QACL,CAAC,EAAE,MAAM,CAAC,CAAC;IACb,CAAC;IAED,OAAO;QACL,IAAI;QACJ,OAAO,EAAE,GAAG,EAAE;YACZ,IAAI,MAAM,KAAK,SAAS;gBAAE,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACvD,MAAM,GAAG,SAAS,CAAC;QACrB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/runner.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type PhaseExecutor } from './execution.js';
|
|
2
|
+
import type { ProgressSink } from './progress.js';
|
|
2
3
|
import { type PinRecord } from './pins.js';
|
|
3
4
|
import { type PipelineResolver } from './pipeline.js';
|
|
4
5
|
/** A current pinned phase and the record that selected its compiled artifact. */
|
|
@@ -25,6 +26,11 @@ export interface SlcDeps {
|
|
|
25
26
|
/** Invocation working directory anchoring artifact placement (DR-014); defaults to the process cwd. */
|
|
26
27
|
cwd?: string;
|
|
27
28
|
signal?: AbortSignal;
|
|
29
|
+
/**
|
|
30
|
+
* Receives phase start/finish/failure events with elapsed times as the run
|
|
31
|
+
* progresses (DR-019, CLI-32). Absent for hosts that want a quiet run.
|
|
32
|
+
*/
|
|
33
|
+
progress?: ProgressSink;
|
|
28
34
|
}
|
|
29
35
|
/** The outcome of an `slc` run. */
|
|
30
36
|
export interface SlcResult {
|
|
@@ -33,6 +39,8 @@ export interface SlcResult {
|
|
|
33
39
|
outputs: string[];
|
|
34
40
|
/** Diagnostics: agent summaries on success, or the failure report. */
|
|
35
41
|
diagnostics: string[];
|
|
42
|
+
/** Present when incremental selection invoked no phase executor. */
|
|
43
|
+
outcome?: 'up-to-date';
|
|
36
44
|
}
|
|
37
45
|
/**
|
|
38
46
|
* Parses argv and runs the requested pipeline, phase, or link end-to-end.
|
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":"AA8BA,OAAO,EAGL,KAAK,aAAa,EAInB,MAAM,gBAAgB,CAAC;AAMxB,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;AAcvB,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;AAghBD,6EAA6E;AAC7E,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD"}
|