deepline 0.3.67 → 0.3.68

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