deepline 0.1.95 → 0.1.97
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/cli/index.js
CHANGED
|
@@ -229,10 +229,11 @@ var import_node_path2 = require("path");
|
|
|
229
229
|
|
|
230
230
|
// src/release.ts
|
|
231
231
|
var SDK_RELEASE = {
|
|
232
|
-
|
|
232
|
+
// 0.1.94 is claimed by PR #1527 — this watch-render fix ships as 0.1.95.
|
|
233
|
+
version: "0.1.97",
|
|
233
234
|
apiContract: "2026-06-dataset-column-cell-stale-hard-cutover",
|
|
234
235
|
supportPolicy: {
|
|
235
|
-
latest: "0.1.
|
|
236
|
+
latest: "0.1.97",
|
|
236
237
|
minimumSupported: "0.1.53",
|
|
237
238
|
deprecatedBelow: "0.1.53"
|
|
238
239
|
}
|
|
@@ -9048,6 +9049,12 @@ ${hint}`;
|
|
|
9048
9049
|
});
|
|
9049
9050
|
}
|
|
9050
9051
|
|
|
9052
|
+
// ../shared_libs/play-runtime/internal-step-ids.ts
|
|
9053
|
+
var INTERNAL_GLUE_NODE_ID_PREFIX = "run_javascript:";
|
|
9054
|
+
function isInternalGlueStepId(stepId) {
|
|
9055
|
+
return typeof stepId === "string" && stepId.startsWith(INTERNAL_GLUE_NODE_ID_PREFIX);
|
|
9056
|
+
}
|
|
9057
|
+
|
|
9051
9058
|
// src/cli/commands/play.ts
|
|
9052
9059
|
var PLAY_RUN_RESERVED_BOOLEAN_FLAGS = /* @__PURE__ */ new Set([
|
|
9053
9060
|
"--json",
|
|
@@ -9705,7 +9712,10 @@ function describeLiveEventPhase(event) {
|
|
|
9705
9712
|
return status ? `${status}${runId}` : null;
|
|
9706
9713
|
}
|
|
9707
9714
|
if (event.type === "play.step.status" || event.type === "play.step.progress") {
|
|
9708
|
-
const label = typeof payload.label === "string" && payload.label.trim() ? payload.label.trim() :
|
|
9715
|
+
const label = typeof payload.label === "string" && payload.label.trim() ? payload.label.trim() : formatStepLabelFromNodeId(payload.stepId);
|
|
9716
|
+
if (!label) {
|
|
9717
|
+
return null;
|
|
9718
|
+
}
|
|
9709
9719
|
const completed = typeof payload.completed === "number" ? payload.completed : null;
|
|
9710
9720
|
const total = typeof payload.total === "number" ? payload.total : null;
|
|
9711
9721
|
const progress = completed !== null && total !== null ? ` ${completed}/${total}` : "";
|
|
@@ -9721,6 +9731,54 @@ function formatProgressLabel(raw) {
|
|
|
9721
9731
|
const value = typeof raw === "string" && raw.trim() ? raw.trim() : "step";
|
|
9722
9732
|
return value.replace(/^map:/, "").replace(/^tool:/, "");
|
|
9723
9733
|
}
|
|
9734
|
+
function formatStepLabelFromNodeId(raw) {
|
|
9735
|
+
const value = typeof raw === "string" && raw.trim() ? raw.trim() : "";
|
|
9736
|
+
if (!value) {
|
|
9737
|
+
return null;
|
|
9738
|
+
}
|
|
9739
|
+
if (isInternalGlueStepId(value)) {
|
|
9740
|
+
return null;
|
|
9741
|
+
}
|
|
9742
|
+
const [namespace, ...rest] = value.split(":");
|
|
9743
|
+
switch (namespace) {
|
|
9744
|
+
case "map":
|
|
9745
|
+
case "csv":
|
|
9746
|
+
case "code":
|
|
9747
|
+
case "waterfall":
|
|
9748
|
+
case "step_suite":
|
|
9749
|
+
return rest.join(":") || value;
|
|
9750
|
+
case "tool":
|
|
9751
|
+
case "play_call":
|
|
9752
|
+
return rest[0] || value;
|
|
9753
|
+
case "control_flow":
|
|
9754
|
+
return rest[1] || value;
|
|
9755
|
+
case "node":
|
|
9756
|
+
return null;
|
|
9757
|
+
default:
|
|
9758
|
+
return value;
|
|
9759
|
+
}
|
|
9760
|
+
}
|
|
9761
|
+
function getStepTransitionLineFromLiveEvent(event, state) {
|
|
9762
|
+
if (event.type !== "play.step.status") {
|
|
9763
|
+
return null;
|
|
9764
|
+
}
|
|
9765
|
+
const payload = getEventPayload(event);
|
|
9766
|
+
const stepId = typeof payload.stepId === "string" && payload.stepId.trim() ? payload.stepId.trim() : null;
|
|
9767
|
+
const status = typeof payload.status === "string" && payload.status.trim() ? payload.status.trim() : null;
|
|
9768
|
+
if (!stepId || !status || status === "idle") {
|
|
9769
|
+
return null;
|
|
9770
|
+
}
|
|
9771
|
+
const label = formatStepLabelFromNodeId(stepId);
|
|
9772
|
+
if (!label) {
|
|
9773
|
+
return null;
|
|
9774
|
+
}
|
|
9775
|
+
state.printedStepStatuses ??= /* @__PURE__ */ new Map();
|
|
9776
|
+
if (state.printedStepStatuses.get(stepId) === status) {
|
|
9777
|
+
return null;
|
|
9778
|
+
}
|
|
9779
|
+
state.printedStepStatuses.set(stepId, status);
|
|
9780
|
+
return `step ${label}: ${status}`;
|
|
9781
|
+
}
|
|
9724
9782
|
function formatProgressCounts(input2) {
|
|
9725
9783
|
const completed = typeof input2.completed === "number" && Number.isFinite(input2.completed) ? input2.completed : null;
|
|
9726
9784
|
const total = typeof input2.total === "number" && Number.isFinite(input2.total) ? input2.total : null;
|
|
@@ -9936,13 +9994,20 @@ async function waitForPlayCompletionByStream(input2) {
|
|
|
9936
9994
|
progress: input2.progress
|
|
9937
9995
|
});
|
|
9938
9996
|
if (!input2.jsonOutput) {
|
|
9997
|
+
const stepTransitionLine = getStepTransitionLineFromLiveEvent(
|
|
9998
|
+
event,
|
|
9999
|
+
input2.state
|
|
10000
|
+
);
|
|
10001
|
+
if (stepTransitionLine) {
|
|
10002
|
+
input2.progress.writeLine(stepTransitionLine);
|
|
10003
|
+
}
|
|
9939
10004
|
const progressLines = getProgressLinesFromLiveEvent(event);
|
|
9940
10005
|
printPlayProgressLines({
|
|
9941
10006
|
lines: progressLines,
|
|
9942
10007
|
state: input2.state,
|
|
9943
10008
|
progress: input2.progress
|
|
9944
10009
|
});
|
|
9945
|
-
if (progressLines.length === 0) {
|
|
10010
|
+
if (progressLines.length === 0 && !stepTransitionLine) {
|
|
9946
10011
|
printPlayStatusHeartbeat({
|
|
9947
10012
|
event,
|
|
9948
10013
|
playName: input2.playName,
|
|
@@ -10227,13 +10292,20 @@ async function startAndWaitForPlayCompletionByStreamOnce(input2) {
|
|
|
10227
10292
|
progress: input2.progress
|
|
10228
10293
|
});
|
|
10229
10294
|
if (!input2.jsonOutput) {
|
|
10295
|
+
const stepTransitionLine = getStepTransitionLineFromLiveEvent(
|
|
10296
|
+
event,
|
|
10297
|
+
state
|
|
10298
|
+
);
|
|
10299
|
+
if (stepTransitionLine) {
|
|
10300
|
+
input2.progress.writeLine(stepTransitionLine);
|
|
10301
|
+
}
|
|
10230
10302
|
const progressLines = getProgressLinesFromLiveEvent(event);
|
|
10231
10303
|
printPlayProgressLines({
|
|
10232
10304
|
lines: progressLines,
|
|
10233
10305
|
state,
|
|
10234
10306
|
progress: input2.progress
|
|
10235
10307
|
});
|
|
10236
|
-
if (progressLines.length === 0) {
|
|
10308
|
+
if (progressLines.length === 0 && !stepTransitionLine) {
|
|
10237
10309
|
printPlayStatusHeartbeat({
|
|
10238
10310
|
event,
|
|
10239
10311
|
playName: input2.playName,
|
|
@@ -11069,7 +11141,7 @@ function buildRunPackageTextLines(packaged) {
|
|
|
11069
11141
|
const next = packaged.next && typeof packaged.next === "object" && !Array.isArray(packaged.next) ? packaged.next : {};
|
|
11070
11142
|
const billingCommand = actionToCommand(next.billing);
|
|
11071
11143
|
if (billingCommand) {
|
|
11072
|
-
const costState = status === "completed" || status === "failed" || status === "cancelled" ? "
|
|
11144
|
+
const costState = status === "completed" || status === "failed" || status === "cancelled" ? "settles asynchronously \u2014 run the billing command below for totals" : "pending";
|
|
11073
11145
|
lines.push(` cost: ${costState}`);
|
|
11074
11146
|
}
|
|
11075
11147
|
for (const step of readRecordArray(packaged.steps).slice(0, 8)) {
|
package/dist/cli/index.mjs
CHANGED
|
@@ -206,10 +206,11 @@ import { join as join2 } from "path";
|
|
|
206
206
|
|
|
207
207
|
// src/release.ts
|
|
208
208
|
var SDK_RELEASE = {
|
|
209
|
-
|
|
209
|
+
// 0.1.94 is claimed by PR #1527 — this watch-render fix ships as 0.1.95.
|
|
210
|
+
version: "0.1.97",
|
|
210
211
|
apiContract: "2026-06-dataset-column-cell-stale-hard-cutover",
|
|
211
212
|
supportPolicy: {
|
|
212
|
-
latest: "0.1.
|
|
213
|
+
latest: "0.1.97",
|
|
213
214
|
minimumSupported: "0.1.53",
|
|
214
215
|
deprecatedBelow: "0.1.53"
|
|
215
216
|
}
|
|
@@ -9064,6 +9065,12 @@ ${hint}`;
|
|
|
9064
9065
|
});
|
|
9065
9066
|
}
|
|
9066
9067
|
|
|
9068
|
+
// ../shared_libs/play-runtime/internal-step-ids.ts
|
|
9069
|
+
var INTERNAL_GLUE_NODE_ID_PREFIX = "run_javascript:";
|
|
9070
|
+
function isInternalGlueStepId(stepId) {
|
|
9071
|
+
return typeof stepId === "string" && stepId.startsWith(INTERNAL_GLUE_NODE_ID_PREFIX);
|
|
9072
|
+
}
|
|
9073
|
+
|
|
9067
9074
|
// src/cli/commands/play.ts
|
|
9068
9075
|
var PLAY_RUN_RESERVED_BOOLEAN_FLAGS = /* @__PURE__ */ new Set([
|
|
9069
9076
|
"--json",
|
|
@@ -9721,7 +9728,10 @@ function describeLiveEventPhase(event) {
|
|
|
9721
9728
|
return status ? `${status}${runId}` : null;
|
|
9722
9729
|
}
|
|
9723
9730
|
if (event.type === "play.step.status" || event.type === "play.step.progress") {
|
|
9724
|
-
const label = typeof payload.label === "string" && payload.label.trim() ? payload.label.trim() :
|
|
9731
|
+
const label = typeof payload.label === "string" && payload.label.trim() ? payload.label.trim() : formatStepLabelFromNodeId(payload.stepId);
|
|
9732
|
+
if (!label) {
|
|
9733
|
+
return null;
|
|
9734
|
+
}
|
|
9725
9735
|
const completed = typeof payload.completed === "number" ? payload.completed : null;
|
|
9726
9736
|
const total = typeof payload.total === "number" ? payload.total : null;
|
|
9727
9737
|
const progress = completed !== null && total !== null ? ` ${completed}/${total}` : "";
|
|
@@ -9737,6 +9747,54 @@ function formatProgressLabel(raw) {
|
|
|
9737
9747
|
const value = typeof raw === "string" && raw.trim() ? raw.trim() : "step";
|
|
9738
9748
|
return value.replace(/^map:/, "").replace(/^tool:/, "");
|
|
9739
9749
|
}
|
|
9750
|
+
function formatStepLabelFromNodeId(raw) {
|
|
9751
|
+
const value = typeof raw === "string" && raw.trim() ? raw.trim() : "";
|
|
9752
|
+
if (!value) {
|
|
9753
|
+
return null;
|
|
9754
|
+
}
|
|
9755
|
+
if (isInternalGlueStepId(value)) {
|
|
9756
|
+
return null;
|
|
9757
|
+
}
|
|
9758
|
+
const [namespace, ...rest] = value.split(":");
|
|
9759
|
+
switch (namespace) {
|
|
9760
|
+
case "map":
|
|
9761
|
+
case "csv":
|
|
9762
|
+
case "code":
|
|
9763
|
+
case "waterfall":
|
|
9764
|
+
case "step_suite":
|
|
9765
|
+
return rest.join(":") || value;
|
|
9766
|
+
case "tool":
|
|
9767
|
+
case "play_call":
|
|
9768
|
+
return rest[0] || value;
|
|
9769
|
+
case "control_flow":
|
|
9770
|
+
return rest[1] || value;
|
|
9771
|
+
case "node":
|
|
9772
|
+
return null;
|
|
9773
|
+
default:
|
|
9774
|
+
return value;
|
|
9775
|
+
}
|
|
9776
|
+
}
|
|
9777
|
+
function getStepTransitionLineFromLiveEvent(event, state) {
|
|
9778
|
+
if (event.type !== "play.step.status") {
|
|
9779
|
+
return null;
|
|
9780
|
+
}
|
|
9781
|
+
const payload = getEventPayload(event);
|
|
9782
|
+
const stepId = typeof payload.stepId === "string" && payload.stepId.trim() ? payload.stepId.trim() : null;
|
|
9783
|
+
const status = typeof payload.status === "string" && payload.status.trim() ? payload.status.trim() : null;
|
|
9784
|
+
if (!stepId || !status || status === "idle") {
|
|
9785
|
+
return null;
|
|
9786
|
+
}
|
|
9787
|
+
const label = formatStepLabelFromNodeId(stepId);
|
|
9788
|
+
if (!label) {
|
|
9789
|
+
return null;
|
|
9790
|
+
}
|
|
9791
|
+
state.printedStepStatuses ??= /* @__PURE__ */ new Map();
|
|
9792
|
+
if (state.printedStepStatuses.get(stepId) === status) {
|
|
9793
|
+
return null;
|
|
9794
|
+
}
|
|
9795
|
+
state.printedStepStatuses.set(stepId, status);
|
|
9796
|
+
return `step ${label}: ${status}`;
|
|
9797
|
+
}
|
|
9740
9798
|
function formatProgressCounts(input2) {
|
|
9741
9799
|
const completed = typeof input2.completed === "number" && Number.isFinite(input2.completed) ? input2.completed : null;
|
|
9742
9800
|
const total = typeof input2.total === "number" && Number.isFinite(input2.total) ? input2.total : null;
|
|
@@ -9952,13 +10010,20 @@ async function waitForPlayCompletionByStream(input2) {
|
|
|
9952
10010
|
progress: input2.progress
|
|
9953
10011
|
});
|
|
9954
10012
|
if (!input2.jsonOutput) {
|
|
10013
|
+
const stepTransitionLine = getStepTransitionLineFromLiveEvent(
|
|
10014
|
+
event,
|
|
10015
|
+
input2.state
|
|
10016
|
+
);
|
|
10017
|
+
if (stepTransitionLine) {
|
|
10018
|
+
input2.progress.writeLine(stepTransitionLine);
|
|
10019
|
+
}
|
|
9955
10020
|
const progressLines = getProgressLinesFromLiveEvent(event);
|
|
9956
10021
|
printPlayProgressLines({
|
|
9957
10022
|
lines: progressLines,
|
|
9958
10023
|
state: input2.state,
|
|
9959
10024
|
progress: input2.progress
|
|
9960
10025
|
});
|
|
9961
|
-
if (progressLines.length === 0) {
|
|
10026
|
+
if (progressLines.length === 0 && !stepTransitionLine) {
|
|
9962
10027
|
printPlayStatusHeartbeat({
|
|
9963
10028
|
event,
|
|
9964
10029
|
playName: input2.playName,
|
|
@@ -10243,13 +10308,20 @@ async function startAndWaitForPlayCompletionByStreamOnce(input2) {
|
|
|
10243
10308
|
progress: input2.progress
|
|
10244
10309
|
});
|
|
10245
10310
|
if (!input2.jsonOutput) {
|
|
10311
|
+
const stepTransitionLine = getStepTransitionLineFromLiveEvent(
|
|
10312
|
+
event,
|
|
10313
|
+
state
|
|
10314
|
+
);
|
|
10315
|
+
if (stepTransitionLine) {
|
|
10316
|
+
input2.progress.writeLine(stepTransitionLine);
|
|
10317
|
+
}
|
|
10246
10318
|
const progressLines = getProgressLinesFromLiveEvent(event);
|
|
10247
10319
|
printPlayProgressLines({
|
|
10248
10320
|
lines: progressLines,
|
|
10249
10321
|
state,
|
|
10250
10322
|
progress: input2.progress
|
|
10251
10323
|
});
|
|
10252
|
-
if (progressLines.length === 0) {
|
|
10324
|
+
if (progressLines.length === 0 && !stepTransitionLine) {
|
|
10253
10325
|
printPlayStatusHeartbeat({
|
|
10254
10326
|
event,
|
|
10255
10327
|
playName: input2.playName,
|
|
@@ -11085,7 +11157,7 @@ function buildRunPackageTextLines(packaged) {
|
|
|
11085
11157
|
const next = packaged.next && typeof packaged.next === "object" && !Array.isArray(packaged.next) ? packaged.next : {};
|
|
11086
11158
|
const billingCommand = actionToCommand(next.billing);
|
|
11087
11159
|
if (billingCommand) {
|
|
11088
|
-
const costState = status === "completed" || status === "failed" || status === "cancelled" ? "
|
|
11160
|
+
const costState = status === "completed" || status === "failed" || status === "cancelled" ? "settles asynchronously \u2014 run the billing command below for totals" : "pending";
|
|
11089
11161
|
lines.push(` cost: ${costState}`);
|
|
11090
11162
|
}
|
|
11091
11163
|
for (const step of readRecordArray(packaged.steps).slice(0, 8)) {
|
package/dist/index.js
CHANGED
|
@@ -257,10 +257,11 @@ var import_node_path2 = require("path");
|
|
|
257
257
|
|
|
258
258
|
// src/release.ts
|
|
259
259
|
var SDK_RELEASE = {
|
|
260
|
-
|
|
260
|
+
// 0.1.94 is claimed by PR #1527 — this watch-render fix ships as 0.1.95.
|
|
261
|
+
version: "0.1.97",
|
|
261
262
|
apiContract: "2026-06-dataset-column-cell-stale-hard-cutover",
|
|
262
263
|
supportPolicy: {
|
|
263
|
-
latest: "0.1.
|
|
264
|
+
latest: "0.1.97",
|
|
264
265
|
minimumSupported: "0.1.53",
|
|
265
266
|
deprecatedBelow: "0.1.53"
|
|
266
267
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -179,10 +179,11 @@ import { join as join2 } from "path";
|
|
|
179
179
|
|
|
180
180
|
// src/release.ts
|
|
181
181
|
var SDK_RELEASE = {
|
|
182
|
-
|
|
182
|
+
// 0.1.94 is claimed by PR #1527 — this watch-render fix ships as 0.1.95.
|
|
183
|
+
version: "0.1.97",
|
|
183
184
|
apiContract: "2026-06-dataset-column-cell-stale-hard-cutover",
|
|
184
185
|
supportPolicy: {
|
|
185
|
-
latest: "0.1.
|
|
186
|
+
latest: "0.1.97",
|
|
186
187
|
minimumSupported: "0.1.53",
|
|
187
188
|
deprecatedBelow: "0.1.53"
|
|
188
189
|
}
|
|
@@ -624,6 +624,14 @@ function getStaticSubstepNodeId(
|
|
|
624
624
|
return `tool:${substep.field}:${substep.toolId}`;
|
|
625
625
|
case 'waterfall':
|
|
626
626
|
return `waterfall:${substep.id ?? substep.field}`;
|
|
627
|
+
// Keep in lockstep with src/lib/plays/step-progress.ts —
|
|
628
|
+
// getStaticSubstepNodeId there is the observability-side mapping. A
|
|
629
|
+
// missing case here makes the worker report `node:<index>` ids that the
|
|
630
|
+
// app-side package builder can never match back to a play step.
|
|
631
|
+
case 'step_suite':
|
|
632
|
+
return `step_suite:${substep.field}`;
|
|
633
|
+
case 'control_flow':
|
|
634
|
+
return `control_flow:${substep.kind}:${substep.field}`;
|
|
627
635
|
case 'play_call':
|
|
628
636
|
return `play_call:${substep.field}:${substep.playId}`;
|
|
629
637
|
case 'run_javascript':
|
|
@@ -50,10 +50,11 @@ export type SdkRelease = {
|
|
|
50
50
|
};
|
|
51
51
|
|
|
52
52
|
export const SDK_RELEASE = {
|
|
53
|
-
|
|
53
|
+
// 0.1.94 is claimed by PR #1527 — this watch-render fix ships as 0.1.95.
|
|
54
|
+
version: '0.1.97',
|
|
54
55
|
apiContract: '2026-06-dataset-column-cell-stale-hard-cutover',
|
|
55
56
|
supportPolicy: {
|
|
56
|
-
latest: '0.1.
|
|
57
|
+
latest: '0.1.97',
|
|
57
58
|
minimumSupported: '0.1.53',
|
|
58
59
|
deprecatedBelow: '0.1.53',
|
|
59
60
|
},
|