deepline 0.3.68 → 0.3.69
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/bundling-sources/sdk/src/client.ts +2 -0
- package/dist/bundling-sources/sdk/src/release.ts +1 -1
- package/dist/bundling-sources/sdk/src/types.ts +2 -0
- package/dist/cli/index.js +198 -136
- package/dist/cli/index.mjs +110 -48
- package/dist/index.d.mts +4 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
package/dist/cli/index.mjs
CHANGED
|
@@ -1199,7 +1199,7 @@ var SDK_RELEASE = {
|
|
|
1199
1199
|
// available at toolResponse.rawV2 while toolResponse.raw and all declared
|
|
1200
1200
|
// getters keep their established compatibility behavior.
|
|
1201
1201
|
// 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
|
|
1202
|
-
version: "0.3.
|
|
1202
|
+
version: "0.3.69",
|
|
1203
1203
|
updateSummary: "Automatic CLI updates are now enabled by default. To opt out, run `deepline settings autoupdate off`; use `deepline settings autoupdate on` to re-enable updates or `deepline settings autoupdate pin <version>` to hold an exact release. This release also adds raw-v2 tool responses at toolResponse.rawV2 while preserving existing toolResponse.raw and declared getters.",
|
|
1204
1204
|
packageCapabilities: {
|
|
1205
1205
|
updatePreferences: 1
|
|
@@ -18216,12 +18216,20 @@ async function publishImportedPlayDependencies(client2, graph) {
|
|
|
18216
18216
|
};
|
|
18217
18217
|
await publishNode(graph.root.filePath, true);
|
|
18218
18218
|
}
|
|
18219
|
+
function timestampDate(value) {
|
|
18220
|
+
if (value === null || value === void 0 || value === "") return null;
|
|
18221
|
+
const normalized = typeof value === "string" && /^\d+$/.test(value.trim()) ? Number(value) : value;
|
|
18222
|
+
const date = new Date(normalized);
|
|
18223
|
+
return Number.isNaN(date.getTime()) ? null : date;
|
|
18224
|
+
}
|
|
18219
18225
|
function formatTimestamp(value) {
|
|
18220
|
-
|
|
18221
|
-
|
|
18222
|
-
if (Number.isNaN(date.getTime())) return "\u2014";
|
|
18226
|
+
const date = timestampDate(value);
|
|
18227
|
+
if (!date) return "\u2014";
|
|
18223
18228
|
return date.toISOString();
|
|
18224
18229
|
}
|
|
18230
|
+
function isoTimestamp(value) {
|
|
18231
|
+
return timestampDate(value)?.toISOString() ?? null;
|
|
18232
|
+
}
|
|
18225
18233
|
function formatRunLine(run) {
|
|
18226
18234
|
const credits = typeof run.billingTotalCredits === "number" && Number.isFinite(run.billingTotalCredits) ? `${formatCreditAmount(run.billingTotalCredits)} credits` : "\u2014";
|
|
18227
18235
|
return `${run.workflowId} ${run.status} ${formatTimestamp(run.startTime)} ${credits}`;
|
|
@@ -22647,13 +22655,22 @@ async function handleRunsList(args) {
|
|
|
22647
22655
|
...offset !== void 0 ? { offset } : {}
|
|
22648
22656
|
})).map((run) => ({
|
|
22649
22657
|
runId: run.workflowId,
|
|
22658
|
+
// `workflowId` is the legacy SDK name for the same public Deepline run
|
|
22659
|
+
// identity. Keep it during the compatibility window, but never label the
|
|
22660
|
+
// duplicate as a Temporal/runtime id.
|
|
22650
22661
|
workflowId: run.workflowId,
|
|
22651
|
-
|
|
22662
|
+
// Retain the runtime identifier for existing JSON consumers. It is not a
|
|
22663
|
+
// stable Deepline run id; `runId` above is the canonical public id.
|
|
22664
|
+
temporalRunId: run.runId ?? null,
|
|
22652
22665
|
parentRunId: run.parentRunId ?? null,
|
|
22653
22666
|
rootRunId: run.rootRunId ?? null,
|
|
22654
22667
|
status: String(run.status ?? "").toLowerCase(),
|
|
22668
|
+
createdAt: run.createdAt ?? null,
|
|
22669
|
+
createdAtIso: isoTimestamp(run.createdAt),
|
|
22655
22670
|
startedAt: run.startTime ?? run.startedAt ?? null,
|
|
22671
|
+
startedAtIso: isoTimestamp(run.startTime ?? run.startedAt ?? null),
|
|
22656
22672
|
finishedAt: run.closeTime ?? run.finishedAt ?? null,
|
|
22673
|
+
finishedAtIso: isoTimestamp(run.closeTime ?? run.finishedAt ?? null),
|
|
22657
22674
|
executionTime: run.executionTime,
|
|
22658
22675
|
billingTotalCredits: run.billingTotalCredits,
|
|
22659
22676
|
billingMaxCreditsPerRun: run.billingMaxCreditsPerRun,
|
|
@@ -22661,9 +22678,19 @@ async function handleRunsList(args) {
|
|
|
22661
22678
|
}));
|
|
22662
22679
|
const lines = runs.length === 0 ? [
|
|
22663
22680
|
playName ? `No runs found for ${playName}.` : `No runs found for status ${statusFilter}.`
|
|
22664
|
-
] : runs.map(
|
|
22665
|
-
|
|
22666
|
-
|
|
22681
|
+
] : runs.map((run) => {
|
|
22682
|
+
const lines2 = [
|
|
22683
|
+
`${run.runId} ${run.status}`,
|
|
22684
|
+
` created: ${formatTimestamp(run.createdAt)}`,
|
|
22685
|
+
` started: ${formatTimestamp(run.startedAt)}`,
|
|
22686
|
+
` finished: ${formatTimestamp(run.finishedAt)}`,
|
|
22687
|
+
` credits: ${typeof run.billingTotalCredits === "number" && Number.isFinite(run.billingTotalCredits) ? formatCreditAmount(run.billingTotalCredits) : "\u2014"}`,
|
|
22688
|
+
` inspect: deepline runs get ${run.runId} --json`
|
|
22689
|
+
];
|
|
22690
|
+
if (run.parentRunId) lines2.push(` parent: ${run.parentRunId}`);
|
|
22691
|
+
if (run.rootRunId) lines2.push(` root: ${run.rootRunId}`);
|
|
22692
|
+
return lines2.join("\n");
|
|
22693
|
+
});
|
|
22667
22694
|
printCommandEnvelope(
|
|
22668
22695
|
{
|
|
22669
22696
|
runs,
|
|
@@ -30469,10 +30496,12 @@ function registerEnrichCommand(program) {
|
|
|
30469
30496
|
}
|
|
30470
30497
|
|
|
30471
30498
|
// src/cli/commands/feedback.ts
|
|
30499
|
+
import { readFileSync as readFileSync9 } from "fs";
|
|
30472
30500
|
async function handleFeedback(text, options) {
|
|
30501
|
+
const message = resolveFeedbackText(text, options.file);
|
|
30473
30502
|
const { http } = getAuthedHttpClient();
|
|
30474
30503
|
const response = await http.post("/api/v2/cli/feedback", {
|
|
30475
|
-
text,
|
|
30504
|
+
text: message,
|
|
30476
30505
|
requested: options.requested === true,
|
|
30477
30506
|
environment: collectLocalEnvInfo(),
|
|
30478
30507
|
...options.command ? { command: options.command } : {},
|
|
@@ -30490,6 +30519,35 @@ async function handleFeedback(text, options) {
|
|
|
30490
30519
|
{ json: options.json }
|
|
30491
30520
|
);
|
|
30492
30521
|
}
|
|
30522
|
+
function resolveFeedbackText(text, file, readFile6 = (path) => readFileSync9(path, "utf8")) {
|
|
30523
|
+
if (text !== void 0 && file !== void 0) {
|
|
30524
|
+
throw new Error(
|
|
30525
|
+
"Pass feedback text positionally or with --file, not both."
|
|
30526
|
+
);
|
|
30527
|
+
}
|
|
30528
|
+
let value;
|
|
30529
|
+
if (file !== void 0) {
|
|
30530
|
+
try {
|
|
30531
|
+
value = readFile6(file === "-" ? 0 : file);
|
|
30532
|
+
} catch (error) {
|
|
30533
|
+
throw new Error(
|
|
30534
|
+
`Could not read feedback ${file === "-" ? "from stdin" : `file ${file}`}: ${error instanceof Error ? error.message : String(error)}`
|
|
30535
|
+
);
|
|
30536
|
+
}
|
|
30537
|
+
} else if (text !== void 0) {
|
|
30538
|
+
value = text;
|
|
30539
|
+
} else if (!process.stdin.isTTY) {
|
|
30540
|
+
value = readFile6(0);
|
|
30541
|
+
} else {
|
|
30542
|
+
throw new Error(
|
|
30543
|
+
"Feedback text is required. Pass it positionally, use --file <path>, or pipe stdin."
|
|
30544
|
+
);
|
|
30545
|
+
}
|
|
30546
|
+
if (!value.trim()) {
|
|
30547
|
+
throw new Error("Feedback text must not be empty.");
|
|
30548
|
+
}
|
|
30549
|
+
return value;
|
|
30550
|
+
}
|
|
30493
30551
|
function registerFeedbackCommands(program) {
|
|
30494
30552
|
const feedback = program.command("feedback").description("Submit CLI feedback to Deepline.").addHelpText(
|
|
30495
30553
|
"after",
|
|
@@ -30509,10 +30567,12 @@ Examples:
|
|
|
30509
30567
|
`
|
|
30510
30568
|
Examples:
|
|
30511
30569
|
deepline feedback send "tools search returned stale results" --json
|
|
30570
|
+
deepline feedback send --file incident.md --requested --json
|
|
30571
|
+
cat incident.md | deepline feedback send --requested --json
|
|
30512
30572
|
deepline feedback send "tools search returned stale results" --requested --json
|
|
30513
30573
|
deepline feedback send "plays run failed after upload" --command "deepline plays run my.play.ts --watch"
|
|
30514
30574
|
`
|
|
30515
|
-
).argument("
|
|
30575
|
+
).argument("[text]", "Feedback text").option("--file <path>", "Read feedback text from a file, or - for stdin").option("--command <command>", "Command that reproduced the issue").option("--payload <payload>", "JSON or plain-text payload for the repro").option(
|
|
30516
30576
|
"--requested",
|
|
30517
30577
|
"Mark the report as explicitly requested by the user"
|
|
30518
30578
|
).option("--json", "Emit JSON output").action(handleFeedback);
|
|
@@ -30523,7 +30583,7 @@ import {
|
|
|
30523
30583
|
existsSync as existsSync10,
|
|
30524
30584
|
mkdirSync as mkdirSync8,
|
|
30525
30585
|
readdirSync as readdirSync3,
|
|
30526
|
-
readFileSync as
|
|
30586
|
+
readFileSync as readFileSync10,
|
|
30527
30587
|
statSync as statSync4,
|
|
30528
30588
|
writeFileSync as writeFileSync11
|
|
30529
30589
|
} from "fs";
|
|
@@ -30661,7 +30721,7 @@ function sessionIdFromCodexFilePath(filePath) {
|
|
|
30661
30721
|
}
|
|
30662
30722
|
function readCodexSessionId(filePath) {
|
|
30663
30723
|
try {
|
|
30664
|
-
for (const line of normalizedJsonLines(
|
|
30724
|
+
for (const line of normalizedJsonLines(readFileSync10(filePath)).slice(
|
|
30665
30725
|
0,
|
|
30666
30726
|
20
|
|
30667
30727
|
)) {
|
|
@@ -30980,7 +31040,7 @@ async function handleSessionsSend(options) {
|
|
|
30980
31040
|
throw new Error(`File not found: ${options.file}`);
|
|
30981
31041
|
}
|
|
30982
31042
|
const response2 = await uploadPayload("/api/v2/cli/send-session", {
|
|
30983
|
-
file:
|
|
31043
|
+
file: readFileSync10(filePath).toString("base64"),
|
|
30984
31044
|
filename: basename5(filePath)
|
|
30985
31045
|
});
|
|
30986
31046
|
printCommandEnvelope(
|
|
@@ -31010,7 +31070,7 @@ async function handleSessionsSend(options) {
|
|
|
31010
31070
|
agent: options.agent
|
|
31011
31071
|
});
|
|
31012
31072
|
const built = targets.map((target) => {
|
|
31013
|
-
const upload = buildSessionUploadContent(
|
|
31073
|
+
const upload = buildSessionUploadContent(readFileSync10(target.filePath));
|
|
31014
31074
|
return { ...target, ...upload };
|
|
31015
31075
|
});
|
|
31016
31076
|
if (built.some((session) => session.needsChunking)) {
|
|
@@ -31094,8 +31154,8 @@ function loadViewerAssets() {
|
|
|
31094
31154
|
const jsPath = join12(root, "viewer.js");
|
|
31095
31155
|
if (!existsSync10(cssPath) || !existsSync10(jsPath)) continue;
|
|
31096
31156
|
return {
|
|
31097
|
-
css:
|
|
31098
|
-
js:
|
|
31157
|
+
css: readFileSync10(cssPath, "utf8"),
|
|
31158
|
+
js: readFileSync10(jsPath, "utf8")
|
|
31099
31159
|
};
|
|
31100
31160
|
} catch {
|
|
31101
31161
|
continue;
|
|
@@ -31133,7 +31193,7 @@ async function handleSessionsRender(options) {
|
|
|
31133
31193
|
const sessions = targets.map((target) => ({
|
|
31134
31194
|
label: target.label,
|
|
31135
31195
|
events: parsePreparedEvents(
|
|
31136
|
-
prepareSessionBuffer(
|
|
31196
|
+
prepareSessionBuffer(readFileSync10(target.filePath))
|
|
31137
31197
|
)
|
|
31138
31198
|
}));
|
|
31139
31199
|
const { css, js } = loadViewerAssets();
|
|
@@ -31367,7 +31427,7 @@ Examples:
|
|
|
31367
31427
|
|
|
31368
31428
|
// src/cli/commands/monitors.ts
|
|
31369
31429
|
import { randomUUID as randomUUID5 } from "crypto";
|
|
31370
|
-
import { readFileSync as
|
|
31430
|
+
import { readFileSync as readFileSync11, writeFileSync as writeFileSync12 } from "fs";
|
|
31371
31431
|
import { resolve as resolve14 } from "path";
|
|
31372
31432
|
import { createInterface } from "readline/promises";
|
|
31373
31433
|
|
|
@@ -31807,8 +31867,8 @@ function parseJsonObjectArg(raw, argLabel) {
|
|
|
31807
31867
|
return parsed;
|
|
31808
31868
|
}
|
|
31809
31869
|
function resolveMonitorJsonBody(input2) {
|
|
31810
|
-
const readFile6 = input2.readFile ?? ((path) =>
|
|
31811
|
-
const readStdin = input2.readStdin ?? (() =>
|
|
31870
|
+
const readFile6 = input2.readFile ?? ((path) => readFileSync11(path, "utf-8"));
|
|
31871
|
+
const readStdin = input2.readStdin ?? (() => readFileSync11(0, "utf-8"));
|
|
31812
31872
|
if (input2.positional !== void 0 && input2.file !== void 0) {
|
|
31813
31873
|
throw new MonitorsUsageError(
|
|
31814
31874
|
`Pass exactly one source for ${input2.argLabel}: the positional JSON or --file, not both.`
|
|
@@ -32205,6 +32265,7 @@ function renderDeployedListText(payload, requestedStatus) {
|
|
|
32205
32265
|
if (!entry || !key) continue;
|
|
32206
32266
|
const status = asString(entry.status);
|
|
32207
32267
|
const tool = asString(entry.tool);
|
|
32268
|
+
const monitorType = asString(entry.type);
|
|
32208
32269
|
const name = asString(entry.name);
|
|
32209
32270
|
const outputTable = asString(entry.output_table);
|
|
32210
32271
|
const webhookState = asString(entry.webhook_state);
|
|
@@ -32215,10 +32276,11 @@ function renderDeployedListText(payload, requestedStatus) {
|
|
|
32215
32276
|
lines.push(
|
|
32216
32277
|
` ${key}${status ? ` ${status}` : ""}${tool ? ` ${tool}` : ""}${name ? ` (${name})` : ""}`
|
|
32217
32278
|
);
|
|
32218
|
-
if (outputTable || webhookState || executionType || boundPlays !== void 0) {
|
|
32279
|
+
if (outputTable || monitorType || webhookState || executionType || boundPlays !== void 0) {
|
|
32219
32280
|
lines.push(
|
|
32220
32281
|
` ${[
|
|
32221
32282
|
outputTable ? `table: ${outputTable}` : null,
|
|
32283
|
+
monitorType ? `type: ${monitorType}` : null,
|
|
32222
32284
|
webhookState ? `webhook: ${webhookState}` : null,
|
|
32223
32285
|
executionType ? `execution: ${executionType}` : null,
|
|
32224
32286
|
boundPlays !== void 0 ? `bound Plays: ${boundPlays}` : null
|
|
@@ -33043,6 +33105,7 @@ function renderMonitorGet(payload) {
|
|
|
33043
33105
|
const tool = asString(payload.tool);
|
|
33044
33106
|
if (!key || !tool) return void 0;
|
|
33045
33107
|
const status = asString(payload.status);
|
|
33108
|
+
const monitorType = asString(payload.type);
|
|
33046
33109
|
const hasLastReceivedEvent = "last_received_event" in payload;
|
|
33047
33110
|
const lastReceivedEvent = asString(payload.last_received_event);
|
|
33048
33111
|
const definition = asRecord2(payload.definition);
|
|
@@ -33060,8 +33123,9 @@ function renderMonitorGet(payload) {
|
|
|
33060
33123
|
const lines = [
|
|
33061
33124
|
`Monitor: ${key}`,
|
|
33062
33125
|
`Tool: ${tool}`,
|
|
33126
|
+
...monitorType ? [`Type: ${monitorType}`] : [],
|
|
33063
33127
|
...status ? [`Status: ${status}`] : [],
|
|
33064
|
-
...hasLastReceivedEvent ? [`
|
|
33128
|
+
...hasLastReceivedEvent ? [`Latest inbound event: ${lastReceivedEvent ?? "never"}`] : [],
|
|
33065
33129
|
...pricingLine ? [`Pricing: ${pricingLine}`] : [],
|
|
33066
33130
|
...nextRenewalAt ? [`Next renewal: ${nextRenewalAt}`] : []
|
|
33067
33131
|
];
|
|
@@ -33127,17 +33191,15 @@ function renderMonitorGet(payload) {
|
|
|
33127
33191
|
const name = asString(play.name) ?? "unnamed Play";
|
|
33128
33192
|
const listener = asString(play.listener_key);
|
|
33129
33193
|
const health = asRecord2(play.consumer_health);
|
|
33130
|
-
const
|
|
33194
|
+
const runStatus = asString(health?.last_run_status);
|
|
33131
33195
|
const lastDelivery = asFiniteNumber(health?.last_delivery_at);
|
|
33196
|
+
const runId = asString(health?.last_run_id);
|
|
33132
33197
|
const error = asString(health?.last_error);
|
|
33198
|
+
lines.push(` ${name}${listener ? ` (listener: ${listener})` : ""}:`);
|
|
33133
33199
|
lines.push(
|
|
33134
|
-
`
|
|
33200
|
+
` Latest delivered event: ${lastDelivery !== void 0 ? new Date(lastDelivery).toISOString() : "never"}`,
|
|
33201
|
+
` Latest consumer run: ${runId ?? "never"}${runStatus ? ` (${runStatus})` : ""}`
|
|
33135
33202
|
);
|
|
33136
|
-
if (lastDelivery !== void 0) {
|
|
33137
|
-
lines.push(
|
|
33138
|
-
` last delivery: ${new Date(lastDelivery).toISOString()}`
|
|
33139
|
-
);
|
|
33140
|
-
}
|
|
33141
33203
|
if (error) lines.push(` error: ${error}`);
|
|
33142
33204
|
}
|
|
33143
33205
|
}
|
|
@@ -34795,7 +34857,7 @@ import {
|
|
|
34795
34857
|
existsSync as existsSync14,
|
|
34796
34858
|
lstatSync as lstatSync2,
|
|
34797
34859
|
mkdirSync as mkdirSync11,
|
|
34798
|
-
readFileSync as
|
|
34860
|
+
readFileSync as readFileSync15,
|
|
34799
34861
|
realpathSync as realpathSync4,
|
|
34800
34862
|
writeFileSync as writeFileSync15
|
|
34801
34863
|
} from "fs";
|
|
@@ -34806,7 +34868,7 @@ import { dirname as dirname16, join as join16, resolve as resolve16 } from "path
|
|
|
34806
34868
|
import {
|
|
34807
34869
|
existsSync as existsSync11,
|
|
34808
34870
|
lstatSync,
|
|
34809
|
-
readFileSync as
|
|
34871
|
+
readFileSync as readFileSync12,
|
|
34810
34872
|
realpathSync as realpathSync3,
|
|
34811
34873
|
rmSync as rmSync4
|
|
34812
34874
|
} from "fs";
|
|
@@ -34822,7 +34884,7 @@ var nodeFileSystem = {
|
|
|
34822
34884
|
},
|
|
34823
34885
|
read(path) {
|
|
34824
34886
|
try {
|
|
34825
|
-
return
|
|
34887
|
+
return readFileSync12(path, "utf8");
|
|
34826
34888
|
} catch {
|
|
34827
34889
|
return "";
|
|
34828
34890
|
}
|
|
@@ -34932,7 +34994,7 @@ function isOwnedInstallerCommandPath(input2) {
|
|
|
34932
34994
|
|
|
34933
34995
|
// src/cli/commands/skills.ts
|
|
34934
34996
|
import { spawn as spawn3 } from "child_process";
|
|
34935
|
-
import { existsSync as existsSync13, mkdirSync as mkdirSync10, readFileSync as
|
|
34997
|
+
import { existsSync as existsSync13, mkdirSync as mkdirSync10, readFileSync as readFileSync14, writeFileSync as writeFileSync14 } from "fs";
|
|
34936
34998
|
import { homedir as homedir8 } from "os";
|
|
34937
34999
|
import { dirname as dirname15, join as join15 } from "path";
|
|
34938
35000
|
|
|
@@ -35047,7 +35109,7 @@ import { spawn as spawn2, spawnSync } from "child_process";
|
|
|
35047
35109
|
import {
|
|
35048
35110
|
existsSync as existsSync12,
|
|
35049
35111
|
mkdirSync as mkdirSync9,
|
|
35050
|
-
readFileSync as
|
|
35112
|
+
readFileSync as readFileSync13,
|
|
35051
35113
|
unlinkSync,
|
|
35052
35114
|
writeFileSync as writeFileSync13
|
|
35053
35115
|
} from "fs";
|
|
@@ -35411,7 +35473,7 @@ function hasMarkedSkillsSyncVersion(path, version) {
|
|
|
35411
35473
|
}
|
|
35412
35474
|
function readMarkedSkillsSyncVersion(path) {
|
|
35413
35475
|
try {
|
|
35414
|
-
return existsSync12(path) ?
|
|
35476
|
+
return existsSync12(path) ? readFileSync13(path, "utf-8").trim() : "";
|
|
35415
35477
|
} catch {
|
|
35416
35478
|
return "";
|
|
35417
35479
|
}
|
|
@@ -35899,7 +35961,7 @@ function isSkillsPlanCurrent(plan, state) {
|
|
|
35899
35961
|
}
|
|
35900
35962
|
function readSkillsInstallState(path) {
|
|
35901
35963
|
try {
|
|
35902
|
-
const parsed = JSON.parse(
|
|
35964
|
+
const parsed = JSON.parse(readFileSync14(path, "utf8"));
|
|
35903
35965
|
return parsed !== null && typeof parsed === "object" && !Array.isArray(parsed) ? parsed : null;
|
|
35904
35966
|
} catch {
|
|
35905
35967
|
return null;
|
|
@@ -36191,7 +36253,7 @@ function phasesFromLegacyStatus(status) {
|
|
|
36191
36253
|
function readSetupState(input2) {
|
|
36192
36254
|
try {
|
|
36193
36255
|
const parsed = JSON.parse(
|
|
36194
|
-
|
|
36256
|
+
readFileSync15(
|
|
36195
36257
|
setupStatePath(input2.baseUrl, input2.scope, input2.root),
|
|
36196
36258
|
"utf8"
|
|
36197
36259
|
)
|
|
@@ -36296,7 +36358,7 @@ function asRecord3(value) {
|
|
|
36296
36358
|
}
|
|
36297
36359
|
function safeRead(path) {
|
|
36298
36360
|
try {
|
|
36299
|
-
return
|
|
36361
|
+
return readFileSync15(path, "utf8");
|
|
36300
36362
|
} catch {
|
|
36301
36363
|
return "";
|
|
36302
36364
|
}
|
|
@@ -37060,7 +37122,7 @@ Examples:
|
|
|
37060
37122
|
import {
|
|
37061
37123
|
existsSync as existsSync15,
|
|
37062
37124
|
mkdirSync as mkdirSync12,
|
|
37063
|
-
readFileSync as
|
|
37125
|
+
readFileSync as readFileSync16,
|
|
37064
37126
|
renameSync,
|
|
37065
37127
|
rmSync as rmSync5,
|
|
37066
37128
|
writeFileSync as writeFileSync16
|
|
@@ -37107,7 +37169,7 @@ function readCliUpdatePreferences(homeDir2 = homedir10()) {
|
|
|
37107
37169
|
const path = cliUpdatePreferencesPath(homeDir2);
|
|
37108
37170
|
if (!existsSync15(path)) return defaultPreferences();
|
|
37109
37171
|
try {
|
|
37110
|
-
const parsed = JSON.parse(
|
|
37172
|
+
const parsed = JSON.parse(readFileSync16(path, "utf8"));
|
|
37111
37173
|
return {
|
|
37112
37174
|
schemaVersion: UPDATE_PREFERENCES_SCHEMA_VERSION,
|
|
37113
37175
|
autoUpdateEnabled: typeof parsed.autoUpdateEnabled === "boolean" ? parsed.autoUpdateEnabled : true,
|
|
@@ -37186,7 +37248,7 @@ import {
|
|
|
37186
37248
|
existsSync as existsSync17,
|
|
37187
37249
|
mkdirSync as mkdirSync13,
|
|
37188
37250
|
realpathSync as realpathSync5,
|
|
37189
|
-
readFileSync as
|
|
37251
|
+
readFileSync as readFileSync18,
|
|
37190
37252
|
renameSync as renameSync2,
|
|
37191
37253
|
rmSync as rmSync6,
|
|
37192
37254
|
unlinkSync as unlinkSync2,
|
|
@@ -37204,7 +37266,7 @@ import {
|
|
|
37204
37266
|
|
|
37205
37267
|
// src/cli/install-integrity.ts
|
|
37206
37268
|
import { createRequire } from "module";
|
|
37207
|
-
import { existsSync as existsSync16, readFileSync as
|
|
37269
|
+
import { existsSync as existsSync16, readFileSync as readFileSync17, statSync as statSync5 } from "fs";
|
|
37208
37270
|
import { isAbsolute as isAbsolute6, join as join18, relative as relative6, resolve as resolve17 } from "path";
|
|
37209
37271
|
var SDK_SIDECAR_CRITICAL_PACKAGE_FILES = [
|
|
37210
37272
|
"dist/cli/index.mjs",
|
|
@@ -37238,7 +37300,7 @@ function resolveContainedPath(root, value) {
|
|
|
37238
37300
|
return target;
|
|
37239
37301
|
}
|
|
37240
37302
|
function parseJson(path) {
|
|
37241
|
-
return JSON.parse(
|
|
37303
|
+
return JSON.parse(readFileSync17(path, "utf8"));
|
|
37242
37304
|
}
|
|
37243
37305
|
function isFile(path) {
|
|
37244
37306
|
try {
|
|
@@ -37448,7 +37510,7 @@ function publicNpmFallbackRegistryUrl(hostUrl) {
|
|
|
37448
37510
|
}
|
|
37449
37511
|
function readOptionalText(path) {
|
|
37450
37512
|
try {
|
|
37451
|
-
return
|
|
37513
|
+
return readFileSync18(path, "utf8").trim();
|
|
37452
37514
|
} catch {
|
|
37453
37515
|
return "";
|
|
37454
37516
|
}
|
|
@@ -37651,7 +37713,7 @@ function readAutoUpdateFailure(plan) {
|
|
|
37651
37713
|
if (!path) return null;
|
|
37652
37714
|
try {
|
|
37653
37715
|
const parsed = JSON.parse(
|
|
37654
|
-
|
|
37716
|
+
readFileSync18(path, "utf8")
|
|
37655
37717
|
);
|
|
37656
37718
|
if ((parsed.kind === "npm-global" || parsed.kind === "python-sidecar") && typeof parsed.packageSpec === "string" && typeof parsed.failedAt === "string" && typeof parsed.exitCode === "number" && typeof parsed.manualCommand === "string") {
|
|
37657
37719
|
return parsed;
|
|
@@ -37737,7 +37799,7 @@ function installedPackageVersion(versionDir) {
|
|
|
37737
37799
|
"package.json"
|
|
37738
37800
|
);
|
|
37739
37801
|
try {
|
|
37740
|
-
const parsed = JSON.parse(
|
|
37802
|
+
const parsed = JSON.parse(readFileSync18(packageJsonPath, "utf8"));
|
|
37741
37803
|
return typeof parsed.version === "string" ? safeVersionSegment(parsed.version) : "";
|
|
37742
37804
|
} catch {
|
|
37743
37805
|
return "";
|
|
@@ -38997,7 +39059,7 @@ import {
|
|
|
38997
39059
|
chmodSync,
|
|
38998
39060
|
existsSync as existsSync18,
|
|
38999
39061
|
mkdtempSync,
|
|
39000
|
-
readFileSync as
|
|
39062
|
+
readFileSync as readFileSync19,
|
|
39001
39063
|
writeFileSync as writeFileSync19
|
|
39002
39064
|
} from "fs";
|
|
39003
39065
|
import { tmpdir as tmpdir5 } from "os";
|
|
@@ -41126,7 +41188,7 @@ function readJsonArgument(raw, flagName) {
|
|
|
41126
41188
|
throw new Error(`Invalid ${flagName} value: empty @file path.`);
|
|
41127
41189
|
}
|
|
41128
41190
|
try {
|
|
41129
|
-
return
|
|
41191
|
+
return readFileSync19(resolveAtFilePath(filePath), "utf8").replace(
|
|
41130
41192
|
/^\uFEFF/,
|
|
41131
41193
|
""
|
|
41132
41194
|
);
|
package/dist/index.d.mts
CHANGED
|
@@ -1026,6 +1026,8 @@ interface PlayRunListItem {
|
|
|
1026
1026
|
startTime?: string | null;
|
|
1027
1027
|
/** Unix epoch milliseconds when the run started, returned by normalized V2 run summaries. */
|
|
1028
1028
|
startedAt?: number | string | null;
|
|
1029
|
+
/** Unix epoch milliseconds when the run was created. */
|
|
1030
|
+
createdAt?: number | string | null;
|
|
1029
1031
|
/** ISO 8601 timestamp when the run finished. */
|
|
1030
1032
|
closeTime?: string | null;
|
|
1031
1033
|
/** Unix epoch milliseconds when the run finished, returned by normalized V2 run summaries. */
|
|
@@ -2437,6 +2439,8 @@ type MonitorListEntry = {
|
|
|
2437
2439
|
monitor_key?: string;
|
|
2438
2440
|
status?: string;
|
|
2439
2441
|
tool?: string;
|
|
2442
|
+
/** Generic provider-authored event category for this deployed monitor. */
|
|
2443
|
+
type?: string;
|
|
2440
2444
|
name?: string;
|
|
2441
2445
|
configured?: boolean;
|
|
2442
2446
|
active?: boolean;
|
package/dist/index.d.ts
CHANGED
|
@@ -1026,6 +1026,8 @@ interface PlayRunListItem {
|
|
|
1026
1026
|
startTime?: string | null;
|
|
1027
1027
|
/** Unix epoch milliseconds when the run started, returned by normalized V2 run summaries. */
|
|
1028
1028
|
startedAt?: number | string | null;
|
|
1029
|
+
/** Unix epoch milliseconds when the run was created. */
|
|
1030
|
+
createdAt?: number | string | null;
|
|
1029
1031
|
/** ISO 8601 timestamp when the run finished. */
|
|
1030
1032
|
closeTime?: string | null;
|
|
1031
1033
|
/** Unix epoch milliseconds when the run finished, returned by normalized V2 run summaries. */
|
|
@@ -2437,6 +2439,8 @@ type MonitorListEntry = {
|
|
|
2437
2439
|
monitor_key?: string;
|
|
2438
2440
|
status?: string;
|
|
2439
2441
|
tool?: string;
|
|
2442
|
+
/** Generic provider-authored event category for this deployed monitor. */
|
|
2443
|
+
type?: string;
|
|
2440
2444
|
name?: string;
|
|
2441
2445
|
configured?: boolean;
|
|
2442
2446
|
active?: boolean;
|
package/dist/index.js
CHANGED
|
@@ -832,7 +832,7 @@ var SDK_RELEASE = {
|
|
|
832
832
|
// available at toolResponse.rawV2 while toolResponse.raw and all declared
|
|
833
833
|
// getters keep their established compatibility behavior.
|
|
834
834
|
// 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
|
|
835
|
-
version: "0.3.
|
|
835
|
+
version: "0.3.69",
|
|
836
836
|
updateSummary: "Automatic CLI updates are now enabled by default. To opt out, run `deepline settings autoupdate off`; use `deepline settings autoupdate on` to re-enable updates or `deepline settings autoupdate pin <version>` to hold an exact release. This release also adds raw-v2 tool responses at toolResponse.rawV2 while preserving existing toolResponse.raw and declared getters.",
|
|
837
837
|
packageCapabilities: {
|
|
838
838
|
updatePreferences: 1
|
package/dist/index.mjs
CHANGED
|
@@ -744,7 +744,7 @@ var SDK_RELEASE = {
|
|
|
744
744
|
// available at toolResponse.rawV2 while toolResponse.raw and all declared
|
|
745
745
|
// getters keep their established compatibility behavior.
|
|
746
746
|
// 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
|
|
747
|
-
version: "0.3.
|
|
747
|
+
version: "0.3.69",
|
|
748
748
|
updateSummary: "Automatic CLI updates are now enabled by default. To opt out, run `deepline settings autoupdate off`; use `deepline settings autoupdate on` to re-enable updates or `deepline settings autoupdate pin <version>` to hold an exact release. This release also adds raw-v2 tool responses at toolResponse.rawV2 while preserving existing toolResponse.raw and declared getters.",
|
|
749
749
|
packageCapabilities: {
|
|
750
750
|
updatePreferences: 1
|