deepline 0.3.381 → 0.3.383

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.
Files changed (92) hide show
  1. package/dist/bundling-sources/sdk/src/release.ts +1 -1
  2. package/dist/cli/auth-2JOTPVMO.js +39 -0
  3. package/dist/cli/{auth-M2WCVLXM.mjs → auth-DHCQUXEG.mjs} +4 -4
  4. package/dist/cli/{billing-J5FSVZB4.js → billing-44WIXRTK.js} +73 -73
  5. package/dist/cli/{billing-B4XB5L63.mjs → billing-LRF2NACZ.mjs} +4 -4
  6. package/dist/cli/{chunk-RJDYOGD3.mjs → chunk-26QUYLQT.mjs} +2 -2
  7. package/dist/cli/{chunk-5UC6VEXF.js → chunk-3Z4P6FTT.js} +4 -4
  8. package/dist/cli/{chunk-4P35MBCK.mjs → chunk-4LE4OXXN.mjs} +1 -1
  9. package/dist/cli/{chunk-SPJI6J44.js → chunk-5UFGNQPB.js} +8 -8
  10. package/dist/cli/{chunk-NEU3YVPF.mjs → chunk-6BGD3GOJ.mjs} +50 -10
  11. package/dist/cli/{chunk-UTVDVZTM.js → chunk-A7HIN77W.js} +62 -61
  12. package/dist/cli/{chunk-KQFDSP5O.js → chunk-AFCHR4YF.js} +8 -8
  13. package/dist/cli/{chunk-D2G6W7ES.js → chunk-BICTEMZN.js} +50 -50
  14. package/dist/cli/{chunk-CFHQRESG.mjs → chunk-C4Q5JWU3.mjs} +1 -1
  15. package/dist/cli/{chunk-AQ4HP2GF.js → chunk-GMVSUWPP.js} +9 -9
  16. package/dist/cli/{chunk-Q7VDVBZW.mjs → chunk-JF3R6BNL.mjs} +3 -3
  17. package/dist/cli/{chunk-4Q4SQJBF.mjs → chunk-KB455XET.mjs} +1 -1
  18. package/dist/cli/{chunk-RWSPU3RI.js → chunk-LOWL2IEA.js} +2 -2
  19. package/dist/cli/{chunk-RK72YKI7.js → chunk-LRIXR5QU.js} +26 -26
  20. package/dist/cli/{chunk-2IB2RBCY.js → chunk-MCRIYPOO.js} +1 -1
  21. package/dist/cli/{chunk-QOK7SKSZ.mjs → chunk-NGDV6VG6.mjs} +3 -3
  22. package/dist/cli/{chunk-N36BQUUU.mjs → chunk-NGHN37LZ.mjs} +3 -2
  23. package/dist/cli/{chunk-Z2EKAUHJ.mjs → chunk-NTBOTP6U.mjs} +1 -1
  24. package/dist/cli/{chunk-OKGOQKW7.js → chunk-P2W372EW.js} +48 -48
  25. package/dist/cli/{chunk-Y3FOW4TU.mjs → chunk-PLOQ3BBM.mjs} +5 -5
  26. package/dist/cli/{chunk-FDB2YGWF.js → chunk-SWYXUHCV.js} +15 -15
  27. package/dist/cli/{chunk-PWCQM4SD.mjs → chunk-TG6SWI26.mjs} +2 -2
  28. package/dist/cli/{chunk-PPO4FG7O.js → chunk-USVQU4FG.js} +432 -392
  29. package/dist/cli/{chunk-HJWXXZVG.js → chunk-XHP2OVMG.js} +8 -8
  30. package/dist/cli/{chunk-IXRQGX74.mjs → chunk-YK6RRPOH.mjs} +4 -4
  31. package/dist/cli/{chunk-IX6IEN5B.mjs → chunk-ZAF746ZB.mjs} +2 -2
  32. package/dist/cli/{csv-RG6EPZAF.js → csv-JCT62ZYQ.js} +12 -12
  33. package/dist/cli/{csv-XK2U7OOP.mjs → csv-VRCG5NTO.mjs} +3 -3
  34. package/dist/cli/{db-LVFZMURX.js → db-C2FWHDSR.js} +29 -29
  35. package/dist/cli/{db-LVXEM4JK.mjs → db-TXPBHVLO.mjs} +4 -4
  36. package/dist/cli/{describe-CGNNGI7D.mjs → describe-BTXARLAZ.mjs} +36 -10
  37. package/dist/cli/{describe-F52KVIU5.js → describe-R5MCMIU3.js} +44 -18
  38. package/dist/cli/{executions-IFQ4VFOW.mjs → executions-OJYCYPK2.mjs} +4 -4
  39. package/dist/cli/{executions-QVNYM6G5.js → executions-Q5ZK7H6L.js} +6 -6
  40. package/dist/cli/{feedback-GE2HJ3RV.js → feedback-X6Q3ABCY.js} +7 -7
  41. package/dist/cli/{feedback-XQZGZLJD.mjs → feedback-XIWI37PD.mjs} +3 -3
  42. package/dist/cli/getting-started.d.mts +2 -0
  43. package/dist/cli/getting-started.d.ts +2 -0
  44. package/dist/cli/git-HFO5FYKX.js +23 -0
  45. package/dist/cli/{git-VHYPESNC.mjs → git-HW5SQRNJ.mjs} +4 -4
  46. package/dist/cli/index.js +174 -83
  47. package/dist/cli/index.mjs +123 -32
  48. package/dist/cli/{legacy-noops-MEVZKOQO.js → legacy-noops-2WHVV6XA.js} +7 -7
  49. package/dist/cli/{legacy-noops-H3LBMAJD.mjs → legacy-noops-EBRICEDC.mjs} +4 -4
  50. package/dist/cli/{monitors-QCDXTRJG.mjs → monitors-5CYSLU3P.mjs} +4 -4
  51. package/dist/cli/{monitors-6LBPWRV2.js → monitors-VNDYLLIX.js} +85 -85
  52. package/dist/cli/{org-ZCGJFGH2.js → org-3ESTK25P.js} +64 -64
  53. package/dist/cli/{org-R3Q75N6B.mjs → org-WV6GOBNV.mjs} +4 -4
  54. package/dist/cli/{play-AQ6P4KHZ.mjs → play-AA2FORIH.mjs} +9 -7
  55. package/dist/cli/play-NT6RJ6QD.js +157 -0
  56. package/dist/cli/{providers-HQRVMENG.js → providers-F2V2QI5Z.js} +7 -7
  57. package/dist/cli/{providers-DD7F2EB3.mjs → providers-H47XKFEX.mjs} +4 -4
  58. package/dist/cli/{quickstart-IHSZ24SF.js → quickstart-E3VQKDMU.js} +5 -5
  59. package/dist/cli/{quickstart-IQOBN4JH.mjs → quickstart-YIIXVX6Z.mjs} +3 -3
  60. package/dist/cli/search-EDN57JRG.js +26 -0
  61. package/dist/cli/{search-DQERH2AR.mjs → search-MI7OUPQS.mjs} +5 -5
  62. package/dist/cli/{secrets-WNAU3O75.mjs → secrets-B4A5SZR7.mjs} +4 -4
  63. package/dist/cli/{secrets-XY5226V2.js → secrets-HBNK3VCN.js} +13 -13
  64. package/dist/cli/{sessions-P7UZU5LC.mjs → sessions-6CPUREXX.mjs} +4 -4
  65. package/dist/cli/{sessions-R53JPCM4.js → sessions-7L56I743.js} +5 -5
  66. package/dist/cli/{settings-JQLWULCE.mjs → settings-GTABNW5O.mjs} +7 -7
  67. package/dist/cli/{settings-5QHIIX4A.js → settings-LVW2YBSI.js} +74 -74
  68. package/dist/cli/{setup-3UXOGSKW.js → setup-7I5ROB6J.js} +41 -41
  69. package/dist/cli/{setup-BKCG5BRF.mjs → setup-WBWOV3LQ.mjs} +6 -6
  70. package/dist/cli/{skills-5BBTJHXZ.mjs → skills-HTJERGGP.mjs} +4 -4
  71. package/dist/cli/skills-NFWV6IDQ.js +28 -0
  72. package/dist/cli/{tools-7EQFFGWU.mjs → tools-EHPNO6JC.mjs} +6 -6
  73. package/dist/cli/tools-SUWHHSVG.js +40 -0
  74. package/dist/cli/update-7OBAHXYB.js +28 -0
  75. package/dist/cli/{update-KFMOWN7F.mjs → update-EEXWKAD2.mjs} +6 -6
  76. package/dist/cli/{workflow-JMBTBZGY.mjs → workflow-FWYWFUCN.mjs} +5 -5
  77. package/dist/cli/{workflow-PGSPHWFA.js → workflow-UBZDFKTY.js} +15 -15
  78. package/dist/index.js +6 -6
  79. package/dist/index.mjs +3 -3
  80. package/dist/install-integrity.json +72 -72
  81. package/dist/release.d.mts +1 -1
  82. package/dist/release.d.ts +1 -1
  83. package/dist/release.js +2 -2
  84. package/dist/release.mjs +1 -1
  85. package/package.json +1 -1
  86. package/dist/cli/auth-T3F2NI55.js +0 -39
  87. package/dist/cli/git-QADGD7ZL.js +0 -23
  88. package/dist/cli/play-AFDVNXFL.js +0 -155
  89. package/dist/cli/search-KQNM6AHE.js +0 -26
  90. package/dist/cli/skills-7X24WLXD.js +0 -28
  91. package/dist/cli/tools-HQFR3CYC.js +0 -40
  92. package/dist/cli/update-MP6SY5LY.js +0 -28
@@ -14,7 +14,7 @@ import {
14
14
  } from "./chunk-NXGCO4JB.mjs";
15
15
  import {
16
16
  SDK_RELEASE
17
- } from "./chunk-CFHQRESG.mjs";
17
+ } from "./chunk-C4Q5JWU3.mjs";
18
18
 
19
19
  // src/errors.ts
20
20
  var CustomerDbQueryOutcomeUnknownError = class extends DeeplineError {
@@ -1,14 +1,14 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunkAQ4HP2GFjs = require('./chunk-AQ4HP2GF.js');
3
+ var _chunkGMVSUWPPjs = require('./chunk-GMVSUWPP.js');
4
4
 
5
5
 
6
6
 
7
- var _chunkKQFDSP5Ojs = require('./chunk-KQFDSP5O.js');
7
+ var _chunkAFCHR4YFjs = require('./chunk-AFCHR4YF.js');
8
8
 
9
9
 
10
10
 
11
- var _chunk5UC6VEXFjs = require('./chunk-5UC6VEXF.js');
11
+ var _chunk3Z4P6FTTjs = require('./chunk-3Z4P6FTT.js');
12
12
 
13
13
  // src/cli/commands/search.ts
14
14
  var _commander = require('commander');
@@ -18,7 +18,7 @@ var _fs = require('fs');
18
18
  var _path = require('path');
19
19
  var SEARCH_REF_TTL_MS = 15 * 6e4;
20
20
  function lastSearchPath() {
21
- return _path.join.call(void 0, _chunk5UC6VEXFjs.sdkCliStateDirPath.call(void 0, _chunk5UC6VEXFjs.resolveConfig.call(void 0, ).baseUrl), "last-search.json");
21
+ return _path.join.call(void 0, _chunk3Z4P6FTTjs.sdkCliStateDirPath.call(void 0, _chunk3Z4P6FTTjs.resolveConfig.call(void 0, ).baseUrl), "last-search.json");
22
22
  }
23
23
  function rememberSearchRef(searchRef) {
24
24
  try {
@@ -259,7 +259,7 @@ function searchRow(item) {
259
259
  }
260
260
  function renderSearchResults(result) {
261
261
  if (result.results.length === 0)
262
- return _chunkKQFDSP5Ojs.renderCommandEnvelopeText.call(void 0, result);
262
+ return _chunkAFCHR4YFjs.renderCommandEnvelopeText.call(void 0, result);
263
263
  const rows = result.results.map(searchRow);
264
264
  const kinds = new Set(rows.map((row) => row.kind));
265
265
  const onlyTools = kinds.size === 1 && kinds.has("tool");
@@ -283,7 +283,7 @@ function renderSearchResults(result) {
283
283
  actions: _optionalChain([render, 'optionalAccess', _11 => _11.actions])
284
284
  };
285
285
  const followUps = _optionalChain([remaining, 'access', _12 => _12.sections, 'optionalAccess', _13 => _13.length]) || _optionalChain([remaining, 'access', _14 => _14.actions, 'optionalAccess', _15 => _15.length]) ? `
286
- ${_chunkKQFDSP5Ojs.renderCommandEnvelopeText.call(void 0, { render: remaining })}` : "";
286
+ ${_chunkAFCHR4YFjs.renderCommandEnvelopeText.call(void 0, { render: remaining })}` : "";
287
287
  const notes = rows.flatMap(
288
288
  (row) => row.notes.map((note) => ` ${row.id}: ${note}`)
289
289
  );
@@ -360,7 +360,7 @@ async function runSearch(queryInput, options, types, exclude = []) {
360
360
  console.error(USAGE);
361
361
  return 1;
362
362
  }
363
- const { search_ref: searchRef, ...result } = await new (0, _chunkAQ4HP2GFjs.DeeplineClient)().search({
363
+ const { search_ref: searchRef, ...result } = await new (0, _chunkGMVSUWPPjs.DeeplineClient)().search({
364
364
  query,
365
365
  types,
366
366
  exclude,
@@ -374,7 +374,7 @@ async function runSearch(queryInput, options, types, exclude = []) {
374
374
  });
375
375
  if (searchRef) rememberSearchRef(searchRef);
376
376
  pointAtDescribe(result);
377
- _chunkKQFDSP5Ojs.printCommandEnvelope.call(void 0, result, {
377
+ _chunkAFCHR4YFjs.printCommandEnvelope.call(void 0, result, {
378
378
  json: options.json === true,
379
379
  text: renderSearchResults(result)
380
380
  });
@@ -19,11 +19,11 @@ import {
19
19
  } from "./chunk-EDWJY6T4.mjs";
20
20
  import {
21
21
  registerDeprecatedSearchCommand
22
- } from "./chunk-Q7VDVBZW.mjs";
22
+ } from "./chunk-JF3R6BNL.mjs";
23
23
  import {
24
24
  handleDeploymentGet,
25
25
  handleDeploymentsList
26
- } from "./chunk-IX6IEN5B.mjs";
26
+ } from "./chunk-ZAF746ZB.mjs";
27
27
  import {
28
28
  pinLocalPlayImports,
29
29
  planLocalPlayExecution
@@ -42,7 +42,7 @@ import {
42
42
  normalizeRunEventOperationRequest,
43
43
  parseLogLevel,
44
44
  playInputExampleArgs
45
- } from "./chunk-Z2EKAUHJ.mjs";
45
+ } from "./chunk-NTBOTP6U.mjs";
46
46
  import {
47
47
  CSV_DATA_INPUT_KEY,
48
48
  buildNamedPlayRunRequest,
@@ -75,10 +75,10 @@ import {
75
75
  printJsonError,
76
76
  renderCommandEnvelopeText,
77
77
  shouldEmitJson
78
- } from "./chunk-QOK7SKSZ.mjs";
78
+ } from "./chunk-NGDV6VG6.mjs";
79
79
  import {
80
80
  fetchWithDeploymentProtection
81
- } from "./chunk-4P35MBCK.mjs";
81
+ } from "./chunk-4LE4OXXN.mjs";
82
82
  import {
83
83
  DeeplineError
84
84
  } from "./chunk-NXGCO4JB.mjs";
@@ -9442,6 +9442,11 @@ function buildPlayDashboardUrl(baseUrl, playName) {
9442
9442
  const encodedPlayName = encodeURIComponent(playName);
9443
9443
  return `${trimmedBase}/dashboard/plays/${encodedPlayName}`;
9444
9444
  }
9445
+ function resolveRunPlayName(status, runId) {
9446
+ const packaged = status.package?.run?.playName;
9447
+ if (typeof packaged === "string" && packaged.trim()) return packaged.trim();
9448
+ return extractRunPlayName(status) ?? /^play\/(.+)\/(?:run|webhook)\//.exec(runId)?.[1] ?? null;
9449
+ }
9445
9450
  function openPlayDashboard(dashboardUrl, open2) {
9446
9451
  if (open2 && dashboardUrl) {
9447
9452
  openInBrowser(dashboardUrl);
@@ -13589,6 +13594,7 @@ function renderRunOverviewText(overview, extras = {}) {
13589
13594
  const lines = [
13590
13595
  `${runGlyph} ${runLabel.word} ${run.id}`,
13591
13596
  ` play: ${run.playName}`,
13597
+ ...extras.dashboardUrl ? [` play page: ${extras.dashboardUrl}`] : [],
13592
13598
  ...extras.credits ? [` credits: ${formatRunCreditsLine(extras.credits)}`] : [],
13593
13599
  ...formatRunTimingTextLines(run),
13594
13600
  ...buildRunActivityTextLines(run),
@@ -13716,7 +13722,7 @@ async function handleRunGet(args) {
13716
13722
  args.includes("--config") ? "config" : "get"
13717
13723
  );
13718
13724
  args = selection.args;
13719
- const usage2 = "Usage: deepline runs get <run-id> [--json] [--full] [--input] [--config]";
13725
+ const usage2 = "Usage: deepline runs get <run-id> [--json] [--full] [--input] [--config] [--web-url]";
13720
13726
  let runId;
13721
13727
  try {
13722
13728
  runId = parseRunIdPositional(args, usage2);
@@ -13725,6 +13731,21 @@ async function handleRunGet(args) {
13725
13731
  return 1;
13726
13732
  }
13727
13733
  const client = new DeeplineClient();
13734
+ if (args.includes("--web-url")) {
13735
+ const status2 = await client.runs.get(runId, { full: false });
13736
+ const playName2 = resolveRunPlayName(status2, runId);
13737
+ if (!playName2) {
13738
+ console.error(`Run ${runId} does not name its play; no play page URL.`);
13739
+ return 1;
13740
+ }
13741
+ const dashboardUrl2 = buildPlayDashboardUrl(client.baseUrl, playName2);
13742
+ printCommandEnvelope(
13743
+ { dashboardUrl: dashboardUrl2 },
13744
+ { json: args.includes("--json"), text: `${dashboardUrl2}
13745
+ ` }
13746
+ );
13747
+ return 0;
13748
+ }
13728
13749
  if (args.includes("--config")) {
13729
13750
  if (args.some((arg) => ["--input", "--full", "--log-failed"].includes(arg))) {
13730
13751
  console.error(
@@ -13760,13 +13781,24 @@ async function handleRunGet(args) {
13760
13781
  full: true,
13761
13782
  failedLogs: args.includes("--log-failed")
13762
13783
  }) : status;
13784
+ const legacyPlayName = resolveRunPlayName(legacyStatus, runId);
13785
+ const legacyDashboardUrl = legacyPlayName ? buildPlayDashboardUrl(client.baseUrl, legacyPlayName) : null;
13763
13786
  if (argsWantJson(args)) {
13764
13787
  printCommandEnvelope(
13765
- full ? legacyStatus : compactPlayStatus(legacyStatus),
13788
+ {
13789
+ ...full ? legacyStatus : compactPlayStatus(legacyStatus),
13790
+ ...legacyDashboardUrl ? { dashboardUrl: legacyDashboardUrl } : {}
13791
+ },
13766
13792
  { json: true, fields: selection.fields }
13767
13793
  );
13768
13794
  } else {
13769
13795
  writePlayResult(legacyStatus, false, { fullJson: full });
13796
+ if (legacyDashboardUrl)
13797
+ printCommandEnvelope(
13798
+ { dashboardUrl: legacyDashboardUrl },
13799
+ { json: false, text: `play page: ${legacyDashboardUrl}
13800
+ ` }
13801
+ );
13770
13802
  }
13771
13803
  return 0;
13772
13804
  }
@@ -13778,16 +13810,19 @@ async function handleRunGet(args) {
13778
13810
  ]);
13779
13811
  const hitLines = formatRunHitsLines(hits);
13780
13812
  const json = argsWantJson(args);
13813
+ const playName = resolveRunPlayName(status, runId);
13814
+ const dashboardUrl = playName ? buildPlayDashboardUrl(client.baseUrl, playName) : void 0;
13781
13815
  printCommandEnvelope(
13782
13816
  {
13783
13817
  ...overview,
13818
+ ...dashboardUrl ? { dashboardUrl } : {},
13784
13819
  credits,
13785
13820
  ...hits ? { hits } : {}
13786
13821
  },
13787
13822
  {
13788
13823
  json,
13789
13824
  ...json ? {} : {
13790
- text: `${renderRunOverviewText(overview, { credits })}${hitLines.length > 0 ? `${hitLines.join("\n")}
13825
+ text: `${renderRunOverviewText(overview, { credits, dashboardUrl })}${hitLines.length > 0 ? `${hitLines.join("\n")}
13791
13826
  ` : ""}`
13792
13827
  },
13793
13828
  fields: selection.fields
@@ -16511,7 +16546,7 @@ Examples:
16511
16546
  process.exitCode = await ownView();
16512
16547
  return;
16513
16548
  }
16514
- const { describeAnything } = await import("./describe-CGNNGI7D.mjs");
16549
+ const { describeAnything } = await import("./describe-BTXARLAZ.mjs");
16515
16550
  process.exitCode = await describeAnything(
16516
16551
  name,
16517
16552
  {
@@ -16782,10 +16817,13 @@ Notes:
16782
16817
  --json run.status,datasets.name,actions selects fields without flattening.
16783
16818
  Selection changes stdout only, not the server query. Optional missing paths
16784
16819
  are omitted; array positions are preserved. --json diagnostics needs --full.
16820
+ dashboardUrl (text: "play page:") links the run's play page; link it in a
16821
+ final answer. --web-url prints only that URL (with --json: {"dashboardUrl"}).
16785
16822
 
16786
16823
  Examples:
16787
16824
  deepline runs get play/my-play/run/20260501t000000-000
16788
16825
  deepline runs get play/my-play/run/20260501t000000-000
16826
+ deepline runs get play/my-play/run/20260501t000000-000 --web-url
16789
16827
  deepline runs logs play/my-play/run/20260501t000000-000 --failed
16790
16828
  deepline runs get play/my-play/run/20260501t000000-000 --full
16791
16829
  deepline runs get play/my-play/run/20260501t000000-000 --input
@@ -16803,12 +16841,13 @@ Examples:
16803
16841
  ).option(
16804
16842
  "--config",
16805
16843
  "Explicitly print the recorded configuration, without full results"
16806
- ).addOption(
16844
+ ).option("--web-url", "Print only the run's play page URL").addOption(
16807
16845
  new Option2("--log-failed", "Attach terminal-failure logs").hideHelp()
16808
16846
  ).action(async (runId, options) => {
16809
16847
  process.exitCode = await handleRunGet([
16810
16848
  runId,
16811
16849
  ...jsonFieldArgs(options.json),
16850
+ ...options.webUrl ? ["--web-url"] : [],
16812
16851
  ...options.full ? ["--full"] : [],
16813
16852
  ...options.input ? ["--input"] : [],
16814
16853
  ...options.config ? ["--config"] : [],
@@ -17474,6 +17513,7 @@ export {
17474
17513
  getProgressLinesFromLiveEvent,
17475
17514
  shouldPrintPlayProgressLine,
17476
17515
  getRunningHeartbeatLine,
17516
+ buildPlayDashboardUrl,
17477
17517
  waitForPlayCompletionByWatch,
17478
17518
  startAndWaitForPlayCompletionByStream,
17479
17519
  truncateErrorForDisplay,