deepline 0.3.369 → 0.3.371

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 (120) hide show
  1. package/README.md +1 -1
  2. package/dist/bundling-sources/sdk/src/client.ts +8 -8
  3. package/dist/bundling-sources/sdk/src/release.ts +1 -7
  4. package/dist/bundling-sources/sdk/src/runs/overview.ts +7 -7
  5. package/dist/bundling-sources/sdk/src/tool-output.ts +5 -1
  6. package/dist/bundling-sources/sdk/src/types.ts +2 -2
  7. package/dist/bundling-sources/shared_libs/monitors/fleets/errors.ts +5 -5
  8. package/dist/bundling-sources/shared_libs/monitors/fleets/limits.ts +4 -2
  9. package/dist/bundling-sources/shared_libs/monitors/http-error-response.ts +18 -18
  10. package/dist/bundling-sources/shared_libs/monitors/provider-monitor-capability.ts +1 -1
  11. package/dist/bundling-sources/shared_libs/play-runtime/context.ts +2 -2
  12. package/dist/bundling-sources/shared_libs/play-runtime/dataset-lifecycle-log.ts +1 -1
  13. package/dist/bundling-sources/shared_libs/play-runtime/runner-app/index.ts +1 -1
  14. package/dist/bundling-sources/shared_libs/plays/launch/input-contract.ts +34 -9
  15. package/dist/cli/auth-DQVK3ZI6.js +33 -0
  16. package/dist/cli/{auth-F5YPFL6L.mjs → auth-LCSEXQA2.mjs} +4 -4
  17. package/dist/cli/{billing-3HHLCETY.js → billing-KISDL67A.js} +148 -148
  18. package/dist/cli/{billing-LNO6FPPM.mjs → billing-Z7PLJC5C.mjs} +79 -79
  19. package/dist/cli/{chunk-MX53GIOB.js → chunk-2JRRXXTA.js} +2 -2
  20. package/dist/cli/{chunk-COEBGYBW.mjs → chunk-2L6LBJVC.mjs} +193 -187
  21. package/dist/cli/{chunk-H4N6FMJ5.mjs → chunk-3FTYFVYN.mjs} +5 -5
  22. package/dist/cli/{chunk-Z6B4UPM4.mjs → chunk-3GK3SH3G.mjs} +2 -2
  23. package/dist/cli/{chunk-KGZRUGL7.js → chunk-44SHFHA3.js} +17 -17
  24. package/dist/cli/{chunk-QFBHEQCQ.mjs → chunk-46JCJ7FT.mjs} +56 -97
  25. package/dist/cli/{chunk-6A3GNWSU.js → chunk-5BCVKWLV.js} +17 -17
  26. package/dist/cli/{chunk-TRRFXE4X.mjs → chunk-5S525TQV.mjs} +2 -2
  27. package/dist/cli/{chunk-X6FNDFTD.js → chunk-5Z7JFUNX.js} +26 -26
  28. package/dist/cli/{chunk-JGLIB4JN.mjs → chunk-73NIXYKH.mjs} +90 -50
  29. package/dist/cli/{chunk-2AENFV3B.js → chunk-A7X7KFXX.js} +4 -4
  30. package/dist/cli/{chunk-KU4X5TWN.mjs → chunk-AIZKDTFF.mjs} +11 -11
  31. package/dist/cli/{chunk-ERMXQOIV.js → chunk-BO3ADIBV.js} +8 -8
  32. package/dist/cli/{chunk-FXVRQHJC.js → chunk-C3IPN4E6.js} +17 -17
  33. package/dist/cli/{chunk-LH3BV773.js → chunk-C553OZGG.js} +10 -10
  34. package/dist/cli/{chunk-EJC3INZD.mjs → chunk-DOXAN2I7.mjs} +3 -3
  35. package/dist/cli/{chunk-XH3EIQAZ.js → chunk-DPVBWLBF.js} +419 -413
  36. package/dist/cli/{chunk-PRMAO43X.js → chunk-DQMTJXLK.js} +145 -105
  37. package/dist/cli/{chunk-NXDRDJ4K.js → chunk-E5UD3JDQ.js} +3 -1
  38. package/dist/cli/{chunk-U5VEW7LL.mjs → chunk-IWY7T6MR.mjs} +1 -1
  39. package/dist/cli/{chunk-MIMASXO4.mjs → chunk-JB6ERQUV.mjs} +3 -1
  40. package/dist/cli/{chunk-QILHWZFP.js → chunk-JSK6GUY6.js} +56 -97
  41. package/dist/cli/{chunk-VUYCB2RY.mjs → chunk-KBJO7HIF.mjs} +9 -9
  42. package/dist/cli/{chunk-SDOPEZYS.mjs → chunk-KGRAQ4OR.mjs} +6 -6
  43. package/dist/cli/{chunk-5IXQ6VP4.mjs → chunk-KKRRIFR3.mjs} +1 -1
  44. package/dist/cli/{chunk-74XTRGY5.js → chunk-N34UX4TW.js} +2 -2
  45. package/dist/cli/{chunk-KR5NWPWI.js → chunk-NMDNUOVI.js} +1 -6
  46. package/dist/cli/{chunk-YCLPW7QO.mjs → chunk-SEDS6ZVR.mjs} +10 -10
  47. package/dist/cli/{chunk-RIT4UED6.mjs → chunk-SENW5J4O.mjs} +5 -5
  48. package/dist/cli/{chunk-P7W5OMQ6.js → chunk-TT2YWFYW.js} +53 -53
  49. package/dist/cli/{chunk-OEQC4QLU.js → chunk-YENBXYUH.js} +68 -68
  50. package/dist/cli/{chunk-4RVNJQ7D.mjs → chunk-YYFLULK7.mjs} +1 -6
  51. package/dist/cli/client-JFSRNUVD.js +20 -0
  52. package/dist/cli/{client-HURLYTDV.mjs → client-Z3Z5EDDJ.mjs} +3 -3
  53. package/dist/cli/command-docs.js +2 -2
  54. package/dist/cli/command-docs.mjs +1 -1
  55. package/dist/cli/{csv-ZECPS6DF.mjs → csv-TEVHLGGA.mjs} +3 -3
  56. package/dist/cli/{csv-BZ7QNGLU.js → csv-XGFXV7JE.js} +12 -12
  57. package/dist/cli/{db-JXLCCIML.js → db-LLZJ7UH5.js} +42 -43
  58. package/dist/cli/{db-EUNDS5UG.mjs → db-OB7PMWSZ.mjs} +17 -18
  59. package/dist/cli/{describe-L6LADCXI.mjs → describe-GZIRANUZ.mjs} +12 -12
  60. package/dist/cli/{describe-DNDL3TC6.js → describe-NWU7LI3I.js} +28 -28
  61. package/dist/cli/{executions-GPKPWEHO.js → executions-64YZGSOW.js} +6 -6
  62. package/dist/cli/{executions-GRCD2GHT.mjs → executions-7UZ3ZGJ3.mjs} +4 -4
  63. package/dist/cli/{feedback-5WG2HNZ6.mjs → feedback-2WRQRW3U.mjs} +8 -8
  64. package/dist/cli/{feedback-VJCNBYVQ.js → feedback-MN5CXULH.js} +12 -12
  65. package/dist/cli/{git-3G5Q4TPI.mjs → git-BPYVLLTY.mjs} +4 -4
  66. package/dist/cli/git-TJIPVSAE.js +23 -0
  67. package/dist/cli/index.js +98 -109
  68. package/dist/cli/index.mjs +46 -57
  69. package/dist/cli/{legacy-noops-YAO3LDPI.js → legacy-noops-VMXJPLMW.js} +9 -9
  70. package/dist/cli/{legacy-noops-7WLCNXLD.mjs → legacy-noops-ZRPWEPX6.mjs} +6 -6
  71. package/dist/cli/{monitors-NRQN7M3A.mjs → monitors-5BRTBL7E.mjs} +59 -59
  72. package/dist/cli/{monitors-MQ6KNDOH.js → monitors-OQSI2VOL.js} +140 -140
  73. package/dist/cli/{org-TGKGLAB4.js → org-F5QS3HG4.js} +88 -87
  74. package/dist/cli/{org-X46ICV24.mjs → org-SMZ7AGR3.mjs} +28 -27
  75. package/dist/cli/{play-PCLCMTVK.mjs → play-CJZNLQL7.mjs} +10 -8
  76. package/dist/cli/play-K7HE4LBB.js +155 -0
  77. package/dist/cli/{providers-T2S532QL.mjs → providers-CBWXJRDG.mjs} +7 -7
  78. package/dist/cli/{providers-IPH3TV6J.js → providers-SH2HYOVR.js} +10 -10
  79. package/dist/cli/{quickstart-6CO5FGYE.mjs → quickstart-342ENF6Q.mjs} +4 -4
  80. package/dist/cli/{quickstart-GXFHMZL7.js → quickstart-B6EL7WDG.js} +6 -6
  81. package/dist/cli/{search-6HML4FB2.mjs → search-E7DKH3SI.mjs} +5 -5
  82. package/dist/cli/search-SEEYCQED.js +26 -0
  83. package/dist/cli/{secrets-KCNIINW5.mjs → secrets-FSYIPRVS.mjs} +5 -5
  84. package/dist/cli/{secrets-J6T743DQ.js → secrets-M2AW5RGE.js} +14 -14
  85. package/dist/cli/{sessions-ABXL2OZV.js → sessions-AFE4C3FQ.js} +5 -5
  86. package/dist/cli/{sessions-FQHM34TD.mjs → sessions-DJPGWPNA.mjs} +4 -4
  87. package/dist/cli/{settings-3UXXWUZ3.mjs → settings-KLN2A3PQ.mjs} +10 -10
  88. package/dist/cli/{settings-HB5DSAUW.js → settings-VUWBNATC.js} +77 -77
  89. package/dist/cli/{setup-2MOBCKAB.mjs → setup-BE6N5YV6.mjs} +15 -15
  90. package/dist/cli/{setup-TMJJLEYX.js → setup-I5IMTQCX.js} +50 -50
  91. package/dist/cli/skills-7XH5GMZB.js +28 -0
  92. package/dist/cli/{skills-LWS7PNTF.mjs → skills-GSNPQDUG.mjs} +4 -4
  93. package/dist/cli/tools-JCL4ABAF.js +40 -0
  94. package/dist/cli/{tools-TIUE2AK7.mjs → tools-ORCGHV4P.mjs} +8 -8
  95. package/dist/cli/{update-IYXAP5MI.mjs → update-UXEUWVWS.mjs} +6 -6
  96. package/dist/cli/update-YNZOS77Z.js +28 -0
  97. package/dist/cli/{workflow-3CVYOEKJ.mjs → workflow-JBQY7JJN.mjs} +7 -7
  98. package/dist/cli/{workflow-SGF3DFKJ.js → workflow-R7SDICTU.js} +17 -17
  99. package/dist/{client-CjHv4K6D.d.mts → client-CZFMQEgO.d.mts} +6 -6
  100. package/dist/{client-rTuhNN-x.d.ts → client-CgSwpnb-.d.ts} +6 -6
  101. package/dist/index.d.mts +2 -2
  102. package/dist/index.d.ts +2 -2
  103. package/dist/index.js +15 -15
  104. package/dist/index.mjs +4 -4
  105. package/dist/install-integrity.json +82 -82
  106. package/dist/plays/run-request.d.mts +1 -1
  107. package/dist/plays/run-request.d.ts +1 -1
  108. package/dist/release.d.mts +1 -5
  109. package/dist/release.d.ts +1 -5
  110. package/dist/release.js +2 -2
  111. package/dist/release.mjs +1 -1
  112. package/package.json +1 -1
  113. package/dist/cli/auth-L3ZF67G5.js +0 -33
  114. package/dist/cli/client-HL2AHZPQ.js +0 -20
  115. package/dist/cli/git-MSJ6SFLT.js +0 -23
  116. package/dist/cli/play-TJBPVFUK.js +0 -153
  117. package/dist/cli/search-34MPYWVW.js +0 -26
  118. package/dist/cli/skills-D3IIQSUK.js +0 -28
  119. package/dist/cli/tools-XWUSCNVK.js +0 -40
  120. package/dist/cli/update-7O5MXP5K.js +0 -28
@@ -4,7 +4,7 @@
4
4
 
5
5
 
6
6
 
7
- var _chunkMX53GIOBjs = require('./chunk-MX53GIOB.js');
7
+ var _chunk2JRRXXTAjs = require('./chunk-2JRRXXTA.js');
8
8
 
9
9
 
10
10
  var _chunkAID3OYVJjs = require('./chunk-AID3OYVJ.js');
@@ -13,7 +13,7 @@ var _chunkAID3OYVJjs = require('./chunk-AID3OYVJ.js');
13
13
 
14
14
 
15
15
 
16
- var _chunkLH3BV773js = require('./chunk-LH3BV773.js');
16
+ var _chunkC553OZGGjs = require('./chunk-C553OZGG.js');
17
17
 
18
18
 
19
19
 
@@ -21,14 +21,14 @@ var _chunkLH3BV773js = require('./chunk-LH3BV773.js');
21
21
 
22
22
 
23
23
 
24
- var _chunkNXDRDJ4Kjs = require('./chunk-NXDRDJ4K.js');
24
+ var _chunkE5UD3JDQjs = require('./chunk-E5UD3JDQ.js');
25
25
 
26
26
 
27
27
  var _chunk5O4B6AUNjs = require('./chunk-5O4B6AUN.js');
28
28
 
29
29
 
30
30
 
31
- var _chunkKGZRUGL7js = require('./chunk-KGZRUGL7.js');
31
+ var _chunk44SHFHA3js = require('./chunk-44SHFHA3.js');
32
32
 
33
33
 
34
34
 
@@ -42,11 +42,11 @@ var _chunkQJBJZVG6js = require('./chunk-QJBJZVG6.js');
42
42
 
43
43
 
44
44
 
45
- var _chunkERMXQOIVjs = require('./chunk-ERMXQOIV.js');
45
+ var _chunkBO3ADIBVjs = require('./chunk-BO3ADIBV.js');
46
46
 
47
47
 
48
48
 
49
- var _chunk2AENFV3Bjs = require('./chunk-2AENFV3B.js');
49
+ var _chunkA7X7KFXXjs = require('./chunk-A7X7KFXX.js');
50
50
 
51
51
 
52
52
  var _chunk7P5AA3SNjs = require('./chunk-7P5AA3SN.js');
@@ -91,10 +91,10 @@ var ToolCallRecovery = class _ToolCallRecovery {
91
91
  }
92
92
  };
93
93
  function pendingToolExecutionPath(input) {
94
- const config = _chunk2AENFV3Bjs.resolveConfig.call(void 0, );
95
- const fingerprint = _crypto.createHash.call(void 0, "sha256").update(config.baseUrl).update("\0").update(_crypto.createHash.call(void 0, "sha256").update(config.apiKey).digest("hex")).update("\0").update(input.toolId).update("\0").update(_chunkNXDRDJ4Kjs.stableStringify.call(void 0, input.params)).update("\0").update(input.responseIntent).digest("hex");
94
+ const config = _chunkA7X7KFXXjs.resolveConfig.call(void 0, );
95
+ const fingerprint = _crypto.createHash.call(void 0, "sha256").update(config.baseUrl).update("\0").update(_crypto.createHash.call(void 0, "sha256").update(config.apiKey).digest("hex")).update("\0").update(input.toolId).update("\0").update(_chunkE5UD3JDQjs.stableStringify.call(void 0, input.params)).update("\0").update(input.responseIntent).digest("hex");
96
96
  return _path.join.call(void 0,
97
- _chunk2AENFV3Bjs.sdkCliStateDirPath.call(void 0, config.baseUrl),
97
+ _chunkA7X7KFXXjs.sdkCliStateDirPath.call(void 0, config.baseUrl),
98
98
  `pending-tool-execution-${fingerprint}.json`
99
99
  );
100
100
  }
@@ -331,7 +331,7 @@ function zeroMatchToolGuidance(options) {
331
331
  ] : [],
332
332
  {
333
333
  label: "List the current atomic tool catalog",
334
- command: "deepline tools list --json"
334
+ command: "deepline tools list"
335
335
  },
336
336
  ...query ? [
337
337
  {
@@ -442,12 +442,12 @@ function categoryEnumerationRender(summaries) {
442
442
  };
443
443
  }
444
444
  async function listToolCategories(emitJson, compact) {
445
- const client = new (0, _chunkKGZRUGL7js.DeeplineClient)();
445
+ const client = new (0, _chunk44SHFHA3js.DeeplineClient)();
446
446
  const rawTools = await client.listTools({ compact });
447
447
  const items = rawTools.map(toListedTool);
448
448
  const summaries = aggregateCategorySummaries(rawTools);
449
449
  const outputItems = compact ? items.map(compactTool) : items;
450
- _chunkERMXQOIVjs.printCommandEnvelope.call(void 0,
450
+ _chunkBO3ADIBVjs.printCommandEnvelope.call(void 0,
451
451
  {
452
452
  tools: outputItems,
453
453
  count: outputItems.length,
@@ -466,7 +466,7 @@ function unknownCategoryError(category, summaries, emitJson) {
466
466
  const known = summaries.map((item) => item.name);
467
467
  const message = `Unknown tool category "${category}". Run \`deepline tools list\` to browse categories.`;
468
468
  if (emitJson) {
469
- _chunkERMXQOIVjs.printJson.call(void 0, {
469
+ _chunkBO3ADIBVjs.printJson.call(void 0, {
470
470
  ok: false,
471
471
  exitCode: 4,
472
472
  code: "TOOL_CATEGORY_NOT_FOUND",
@@ -480,13 +480,13 @@ function unknownCategoryError(category, summaries, emitJson) {
480
480
  const render = categoryEnumerationRender(summaries);
481
481
  console.error(message);
482
482
  console.error("");
483
- console.error(_chunkERMXQOIVjs.renderCommandEnvelopeText.call(void 0, { render }).trimEnd());
483
+ console.error(_chunkBO3ADIBVjs.renderCommandEnvelopeText.call(void 0, { render }).trimEnd());
484
484
  console.error("");
485
485
  console.error(`Valid categories: ${known.join(", ")}`);
486
486
  return 4;
487
487
  }
488
488
  async function listToolsInCategory(category, emitJson) {
489
- const client = new (0, _chunkKGZRUGL7js.DeeplineClient)();
489
+ const client = new (0, _chunk44SHFHA3js.DeeplineClient)();
490
490
  const rawTools = await client.listTools({
491
491
  categories: category,
492
492
  compact: false
@@ -523,7 +523,7 @@ async function listToolsInCategory(category, emitJson) {
523
523
  }
524
524
  ]
525
525
  };
526
- _chunkERMXQOIVjs.printCommandEnvelope.call(void 0,
526
+ _chunkBO3ADIBVjs.printCommandEnvelope.call(void 0,
527
527
  {
528
528
  category,
529
529
  total: rows.length,
@@ -536,7 +536,7 @@ async function listToolsInCategory(category, emitJson) {
536
536
  return 0;
537
537
  }
538
538
  async function listToolsForCategoryFilter(requestedCategories, emitJson, compact) {
539
- const client = new (0, _chunkKGZRUGL7js.DeeplineClient)();
539
+ const client = new (0, _chunk44SHFHA3js.DeeplineClient)();
540
540
  const items = (await client.listTools({
541
541
  categories: requestedCategories.join(","),
542
542
  compact
@@ -565,7 +565,7 @@ async function listToolsForCategoryFilter(requestedCategories, emitJson, compact
565
565
  ]
566
566
  };
567
567
  const outputItems = compact ? items.map(compactTool) : items;
568
- _chunkERMXQOIVjs.printCommandEnvelope.call(void 0,
568
+ _chunkBO3ADIBVjs.printCommandEnvelope.call(void 0,
569
569
  {
570
570
  tools: outputItems,
571
571
  count: outputItems.length,
@@ -584,13 +584,13 @@ async function listTools(category, options = {}) {
584
584
  const positional = _nullishCoalesce(_optionalChain([category, 'optionalAccess', _9 => _9.trim, 'call', _10 => _10()]), () => ( ""));
585
585
  const flagCategories = (_nullishCoalesce(options.categories, () => ( ""))).split(",").map((item) => item.trim()).filter(Boolean);
586
586
  const compact = options.compact !== false;
587
- const emitJson = options.json === true || _chunkERMXQOIVjs.shouldEmitJson.call(void 0, );
587
+ const emitJson = options.json === true || _chunkBO3ADIBVjs.shouldEmitJson.call(void 0, );
588
588
  if (positional && flagCategories.length > 0) {
589
589
  const flagIsSameSingle = flagCategories.length === 1 && flagCategories[0] === positional;
590
590
  if (!flagIsSameSingle) {
591
591
  const message = `Category "${positional}" and --categories ${flagCategories.join(",")} disagree. Pass one: deepline tools list ${positional}`;
592
592
  if (emitJson) {
593
- _chunkERMXQOIVjs.printJson.call(void 0, {
593
+ _chunkBO3ADIBVjs.printJson.call(void 0, {
594
594
  ok: false,
595
595
  exitCode: 2,
596
596
  code: "TOOL_LIST_CATEGORY_CONFLICT",
@@ -617,7 +617,7 @@ async function grepTools(queryInput, options = {}) {
617
617
  console.error("Usage: deepline tools grep <query> [--json]");
618
618
  return 1;
619
619
  }
620
- const client = new (0, _chunkKGZRUGL7js.DeeplineClient)();
620
+ const client = new (0, _chunk44SHFHA3js.DeeplineClient)();
621
621
  const requestedCategories = options.categories ? options.categories.split(",").map((item) => item.trim()).filter(Boolean) : [];
622
622
  const mode = _nullishCoalesce(options.mode, () => ( "all"));
623
623
  const jsonOutput = options.json === true;
@@ -660,7 +660,7 @@ async function grepTools(queryInput, options = {}) {
660
660
  query,
661
661
  mode
662
662
  }) : null;
663
- _chunkERMXQOIVjs.printCommandEnvelope.call(void 0,
663
+ _chunkBO3ADIBVjs.printCommandEnvelope.call(void 0,
664
664
  {
665
665
  tools: outputTools,
666
666
  count: outputTools.length,
@@ -678,7 +678,7 @@ async function grepTools(queryInput, options = {}) {
678
678
  } : {},
679
679
  commandTemplates: TOOL_COMMAND_TEMPLATES
680
680
  },
681
- { json: options.json || _chunkERMXQOIVjs.shouldEmitJson.call(void 0, ) }
681
+ { json: options.json || _chunkBO3ADIBVjs.shouldEmitJson.call(void 0, ) }
682
682
  );
683
683
  return 0;
684
684
  }
@@ -750,7 +750,7 @@ function playReferenceForTool(tool) {
750
750
  return null;
751
751
  }
752
752
  function playSearchCommandForToolId(toolId) {
753
- return `deepline search --type prebuilts ${JSON.stringify(toolId.replace(/_/g, " "))} --json`;
753
+ return `deepline search --type prebuilts ${JSON.stringify(toolId.replace(/_/g, " "))}`;
754
754
  }
755
755
  function playRunCommandForTool(tool, toolId, input) {
756
756
  const playReference = playReferenceForTool(tool);
@@ -764,7 +764,7 @@ function playLikeToolExecuteErrorMessage(toolId, tool) {
764
764
  return [
765
765
  `${toolId} is a workflow/play entry, not an atomic provider tool.`,
766
766
  nextStep,
767
- 'Or search provider tools only with: deepline search "<input you have -> result you need>" --type tools --json'
767
+ 'Or search provider tools only with: deepline search "<input you have -> result you need>" --type tools'
768
768
  ].join("\n");
769
769
  }
770
770
  function printPlayLikeToolExecuteError(toolId, tool) {
@@ -776,6 +776,7 @@ var TOOL_ONLY_VIEWS = [
776
776
  "pricingOnly",
777
777
  "examplesOnly",
778
778
  "gettersOnly",
779
+ "byok",
779
780
  "model",
780
781
  "estimatePayload"
781
782
  ];
@@ -790,10 +791,10 @@ Concepts:
790
791
  through the plays namespace.
791
792
 
792
793
  Common commands:
793
- deepline search "name and company domain -> work email" --type tools --json
794
+ deepline search "name and company domain -> work email" --type tools
794
795
  deepline describe hunter_email_verifier
795
796
  deepline tools execute hunter_email_verifier --input '{"email":"a@b.com"}'
796
- deepline billing usage --request-id <job_id> --json
797
+ deepline billing usage --request-id <job_id>
797
798
 
798
799
  Output:
799
800
  Use deepline describe for tool contracts.
@@ -820,21 +821,21 @@ Notes:
820
821
  Examples:
821
822
  deepline tools list
822
823
  deepline tools list email_finder
823
- deepline tools list email_finder --json
824
- deepline tools list --categories email_finder --json
825
- deepline search "name and company domain -> work email" --type tools --json
824
+ deepline tools list email_finder
825
+ deepline tools list --categories email_finder
826
+ deepline search "name and company domain -> work email" --type tools
826
827
  `
827
828
  ).option(
828
829
  "--categories <categories>",
829
830
  "Comma-separated categories filter (back-compat alias for the positional)"
830
- ).option("--compact", "Drop verbose fields from JSON output").option("--json", "Emit JSON output. Also automatic when stdout is piped").action(async (category, options) => {
831
+ ).option("--compact", "Drop verbose fields from JSON output").option("--json", "Emit JSON output").action(async (category, options) => {
831
832
  process.exitCode = await listTools(category, {
832
833
  categories: typeof options.categories === "string" ? options.categories : void 0,
833
834
  compact: options.compact !== false,
834
835
  json: Boolean(options.json)
835
836
  });
836
837
  });
837
- _chunkLH3BV773js.registerDeprecatedSearchCommand.call(void 0, tools, () => ["tools", "monitors"]);
838
+ _chunkC553OZGGjs.registerDeprecatedSearchCommand.call(void 0, tools, () => ["tools", "monitors"]);
838
839
  tools.command("grep <query>").description(
839
840
  "Literal grep over tool ids, descriptions, categories, and input fields."
840
841
  ).addHelpText(
@@ -847,14 +848,14 @@ Notes:
847
848
  the default --mode all for AND.
848
849
 
849
850
  Examples:
850
- deepline tools grep email --categories email_finder --json
851
- deepline tools grep "phone validate" --mode all --json
852
- deepline tools grep hunter --mode phrase --json
851
+ deepline tools grep email --categories email_finder
852
+ deepline tools grep "phone validate" --mode all
853
+ deepline tools grep hunter --mode phrase
853
854
  `
854
855
  ).option(
855
856
  "--categories <categories>",
856
857
  "Comma-separated categories to filter inventory"
857
- ).option("--mode <mode>", "Grep matching mode: all, any, or phrase").option("--compact", "Drop verbose fields from JSON output").option("--json", "Emit JSON output. Also automatic when stdout is piped").action(async (query, options) => {
858
+ ).option("--mode <mode>", "Grep matching mode: all, any, or phrase").option("--compact", "Drop verbose fields from JSON output").option("--json", "Emit JSON output").action(async (query, options) => {
858
859
  const mode = options.mode === "any" || options.mode === "phrase" ? options.mode : "all";
859
860
  process.exitCode = await grepTools(query, {
860
861
  json: options.json,
@@ -881,17 +882,16 @@ Notes:
881
882
  preserve the nesting shown in the tool's example. Schemas and examples are
882
883
  separate describe fields.
883
884
  get is accepted as a compatibility alias for describe.
884
- Text by default, including when piped; pass --json for structured output.
885
+ Text by default; pass --json for structured output.
885
886
 
886
887
  Examples:
887
888
  deepline tools describe hunter_email_verifier
888
889
  deepline tools describe hunter_email_verifier --pricing-only
889
- deepline tools describe hunter_email_verifier --pricing-only --json
890
890
  deepline tools describe hunter_email_verifier --examples-only
891
- deepline tools describe hunter_email_verifier --json
892
- deepline tools describe deeplineagent --model openai/gpt-5.6-luna --json
893
- deepline tools describe ai_inference --estimate-payload @payload.json --json
894
- deepline tools describe ai_evaluate --estimate-payload @payload.json --json
891
+ deepline tools describe hunter_email_verifier --byok
892
+ deepline tools describe deeplineagent --model openai/gpt-5.6-luna
893
+ deepline tools describe ai_inference --estimate-payload @payload.json
894
+ deepline tools describe ai_evaluate --estimate-payload @payload.json
895
895
  deepline tools execute hunter_email_verifier --input '{"email":"a@b.com"}'
896
896
  `
897
897
  ).option("--json", "Emit JSON output").option(
@@ -903,7 +903,10 @@ Examples:
903
903
  ).option("--pricing-only", "Only print pricing and billing semantics").option(
904
904
  "--examples-only",
905
905
  "Only print input payload and full Deepline execution response examples"
906
- ).option("--getters-only", "Only print extracted list/value getters").addOption(
906
+ ).option("--getters-only", "Only print extracted list/value getters").option(
907
+ "--byok",
908
+ "Only print whether you can use your own provider credentials, and how to connect them"
909
+ ).addOption(
907
910
  new (0, _commander.Option)(
908
911
  "--compact",
909
912
  "Compatibility alias for the default compact view"
@@ -926,6 +929,7 @@ Examples:
926
929
  schemaOnly: Boolean(options.schemaOnly),
927
930
  examplesOnly: Boolean(options.examplesOnly),
928
931
  gettersOnly: Boolean(options.gettersOnly),
932
+ byok: Boolean(options.byok),
929
933
  model: typeof options.model === "string" ? options.model : void 0,
930
934
  estimatePayload: typeof options.estimatePayload === "string" ? options.estimatePayload : void 0
931
935
  },
@@ -936,7 +940,7 @@ Examples:
936
940
  process.exitCode = await narrowView();
937
941
  return;
938
942
  }
939
- const { describeAnything } = await Promise.resolve().then(() => _interopRequireWildcard(require("./describe-DNDL3TC6.js")));
943
+ const { describeAnything } = await Promise.resolve().then(() => _interopRequireWildcard(require("./describe-NWU7LI3I.js")));
940
944
  process.exitCode = await describeAnything(
941
945
  toolId,
942
946
  { ...options, kinds: ["tools", "monitors"], fetchedTool: metadata },
@@ -946,7 +950,7 @@ Examples:
946
950
  });
947
951
  };
948
952
  addToolMetadataCommand(
949
- _chunkMX53GIOBjs.addDescribeOptions.call(void 0,
953
+ _chunk2JRRXXTAjs.addDescribeOptions.call(void 0,
950
954
  tools.command("describe <toolId>", { hidden: true }).alias("get"),
951
955
  { json: false }
952
956
  )
@@ -967,11 +971,10 @@ Notes:
967
971
  Examples:
968
972
  deepline tools execute hunter_email_verifier --input '{"email":"a@b.com"}'
969
973
  deepline describe hunter_email_verifier
970
- deepline billing usage --request-id <job_id> --json
971
- deepline tools execute bounceban_verify_bulk --input @batch.json --timeout 10m --json
974
+ deepline billing usage --request-id <job_id>
975
+ deepline tools execute bounceban_verify_bulk --input @batch.json --timeout 10m
972
976
  deepline tools execute hunter_email_verifier -p email=a@b.com
973
- deepline tools execute test_rate_limit --input '{"key":"smoke"}' --timeout 90s --json
974
- deepline tools execute test_rate_limit --input '{"key":"smoke"}' --json | jq '.status'
977
+ deepline tools execute test_rate_limit --input '{"key":"smoke"}' --timeout 90s
975
978
  deepline tools execute free_simple_company_search --input '{"sql":"SELECT company_name FROM companies LIMIT 10"}' --out companies.csv
976
979
  `
977
980
  ).option(
@@ -1018,7 +1021,7 @@ async function getTool(toolId, options = {}, compatibilityMetadata) {
1018
1021
  console.error("Usage: deepline tools describe <toolId> [--json]");
1019
1022
  return 1;
1020
1023
  }
1021
- const client = new (0, _chunkKGZRUGL7js.DeeplineClient)();
1024
+ const client = new (0, _chunk44SHFHA3js.DeeplineClient)();
1022
1025
  let tool;
1023
1026
  try {
1024
1027
  tool = await _asyncNullishCoalesce(compatibilityMetadata, async () => ( await client.getTool(toolId)));
@@ -1060,22 +1063,36 @@ async function getTool(toolId, options = {}, compatibilityMetadata) {
1060
1063
  options.pricingOnly,
1061
1064
  options.schemaOnly,
1062
1065
  options.examplesOnly,
1063
- options.gettersOnly
1066
+ options.gettersOnly,
1067
+ options.byok
1064
1068
  ].filter(Boolean).length;
1065
1069
  if (onlyModes > 1) {
1066
1070
  console.error(
1067
- "Use only one of --pricing-only, --schema-only, --examples-only, or --getters-only."
1071
+ "Use only one of --pricing-only, --schema-only, --examples-only, --getters-only, or --byok."
1068
1072
  );
1069
1073
  return 2;
1070
1074
  }
1075
+ if (options.byok) {
1076
+ const resolvedToolId = String(tool.toolId || toolId);
1077
+ const byok = recordField(tool, "byok");
1078
+ _chunkBO3ADIBVjs.printCommandEnvelope.call(void 0,
1079
+ { toolId: resolvedToolId, byok },
1080
+ {
1081
+ json: Boolean(options.json || options.contractJson),
1082
+ text: `${toolByokLines(resolvedToolId, byok).join("\n")}
1083
+ `
1084
+ }
1085
+ );
1086
+ return 0;
1087
+ }
1071
1088
  if (options.pricingOnly) {
1072
1089
  const lines = toolPricingOnlyLines(tool, toolId);
1073
1090
  if (inferenceQuote)
1074
1091
  lines.push(...inferenceQuoteSummaryLines(inferenceQuote));
1075
- _chunkERMXQOIVjs.printCommandEnvelope.call(void 0,
1092
+ _chunkBO3ADIBVjs.printCommandEnvelope.call(void 0,
1076
1093
  {
1077
1094
  toolId: String(tool.toolId || toolId),
1078
- cost: _chunkLH3BV773js.Capability.fromCatalogEntry(tool).describe().customerCost(),
1095
+ cost: _chunkC553OZGGjs.Capability.fromCatalogEntry(tool).describe().customerCost(),
1079
1096
  ...modelDescription ? { modelOptions: modelDescription } : {},
1080
1097
  ...isMonitorTypeTool(tool) ? { pricing: recordField(tool, "pricing") } : {},
1081
1098
  ...inferenceQuote ? { inferenceQuote } : {}
@@ -1090,7 +1107,7 @@ async function getTool(toolId, options = {}, compatibilityMetadata) {
1090
1107
  }
1091
1108
  if ((options.schemaOnly || options.examplesOnly || options.gettersOnly) && !isMonitorTypeTool(tool) && !isPlayLikeTool(tool) && (options.json || options.contractJson)) {
1092
1109
  const contract = toolContractJsonForDescribe(tool, toolId);
1093
- _chunkERMXQOIVjs.printCompactJson.call(void 0, {
1110
+ _chunkBO3ADIBVjs.printCompactJson.call(void 0, {
1094
1111
  toolId: contract.toolId,
1095
1112
  ...options.schemaOnly ? {
1096
1113
  inputSchema: contract.inputSchema,
@@ -1113,7 +1130,7 @@ async function getTool(toolId, options = {}, compatibilityMetadata) {
1113
1130
  return 0;
1114
1131
  }
1115
1132
  if (options.contractJson) {
1116
- _chunkERMXQOIVjs.printCompactJson.call(void 0, {
1133
+ _chunkBO3ADIBVjs.printCompactJson.call(void 0, {
1117
1134
  ...toolContractJsonForDescribe(tool, toolId),
1118
1135
  ...modelDescription ? { modelOptions: modelDescription } : {},
1119
1136
  ...inferenceQuote ? { inferenceQuote } : {}
@@ -1122,7 +1139,7 @@ async function getTool(toolId, options = {}, compatibilityMetadata) {
1122
1139
  }
1123
1140
  const emitJson = options.json === true;
1124
1141
  if (emitJson) {
1125
- _chunkERMXQOIVjs.printCompactJson.call(void 0, {
1142
+ _chunkBO3ADIBVjs.printCompactJson.call(void 0, {
1126
1143
  ...toolMetadataJsonForDescribe(tool, toolId),
1127
1144
  ...modelDescription ? { modelOptions: modelDescription } : {},
1128
1145
  ...inferenceQuote ? { inferenceQuote } : {}
@@ -1199,7 +1216,7 @@ function toolContractJsonForDescribe(tool, requestedToolId, authoringContractEdi
1199
1216
  const extractedValues = extractionContractEntries(
1200
1217
  arrayField2(toolExecutionResult, "extractedValues", "extracted_values")
1201
1218
  );
1202
- const pricing = _chunkLH3BV773js.Capability.fromCatalogEntry(tool).describe().customerCost();
1219
+ const pricing = _chunkC553OZGGjs.Capability.fromCatalogEntry(tool).describe().customerCost();
1203
1220
  const executionMetadataRecord = recordField(
1204
1221
  tool,
1205
1222
  "executionMetadata",
@@ -1228,7 +1245,7 @@ function toolContractJsonForDescribe(tool, requestedToolId, authoringContractEdi
1228
1245
  rows: []
1229
1246
  })
1230
1247
  ) : null;
1231
- const executeCommand = deprecated && replacementToolId ? `deepline tools execute ${replacementToolId} --input '{...}' --json` : isPlayLikeTool(tool) ? playRunCommandForTool(tool, toolId) : `deepline tools execute ${toolId} --input '{...}' --json`;
1248
+ const executeCommand = deprecated && replacementToolId ? `deepline tools execute ${replacementToolId} --input '{...}'` : isPlayLikeTool(tool) ? playRunCommandForTool(tool, toolId) : `deepline tools execute ${toolId} --input '{...}'`;
1232
1249
  return {
1233
1250
  schemaVersion: 1,
1234
1251
  toolId,
@@ -1342,14 +1359,14 @@ function monitorTypePricingLines(tool) {
1342
1359
  );
1343
1360
  const keys = Object.keys(byType);
1344
1361
  if (!keys.length) {
1345
- return ["Pricing: Deepline credits per accepted event (see --json)"];
1362
+ return ["Pricing: Deepline credits per accepted event"];
1346
1363
  }
1347
1364
  const lines = ["Pricing (Deepline credits per accepted event):"];
1348
1365
  for (const key of keys) {
1349
1366
  const entry = isRecord(byType[key]) ? byType[key] : {};
1350
1367
  const credits = numberField2(entry, "deepline_credits", "deeplineCredits");
1351
1368
  const display = stringField2(entry, "display");
1352
- const shown = display || (credits !== null ? `${formatDecimal(credits)} credits/event` : "see --json");
1369
+ const shown = display || (credits !== null ? `${formatDecimal(credits)} credits/event` : "not listed");
1353
1370
  lines.push(`- ${key}: ${shown}`);
1354
1371
  }
1355
1372
  return lines;
@@ -1434,7 +1451,7 @@ function describedTool(tool, requestedToolId) {
1434
1451
  description,
1435
1452
  cost: stringField2(recordField(tool, "pricing"), "displayText") || void 0,
1436
1453
  guidance: [],
1437
- inputs: _chunkMX53GIOBjs.schemaFields.call(void 0,
1454
+ inputs: _chunk2JRRXXTAjs.schemaFields.call(void 0,
1438
1455
  recordField(tool, "payload_schema", "payloadSchema")
1439
1456
  ),
1440
1457
  outputs: [],
@@ -1466,7 +1483,7 @@ function describedTool(tool, requestedToolId) {
1466
1483
  "rawToolOutputPaths"
1467
1484
  ).map((path) => String(path).replace(/^toolResponse\.raw\./, ""));
1468
1485
  const node = roots.flatMap((root) => paths.map((path) => schemaNodeAt(root, path))).find(isRecord);
1469
- const { fields, ...typed } = _chunkMX53GIOBjs.schemaField.call(void 0, name, node, true);
1486
+ const { fields, ...typed } = _chunk2JRRXXTAjs.schemaField.call(void 0, name, node, true);
1470
1487
  const valueType = stringField2(_nullishCoalesce(details.get(name), () => ( {})), "valueType");
1471
1488
  const field = {
1472
1489
  ...typed,
@@ -1494,7 +1511,7 @@ function describedTool(tool, requestedToolId) {
1494
1511
  stringField2(cost, "displayText"),
1495
1512
  // "Free (free)" says the same thing twice.
1496
1513
  billing.toLowerCase() === stringField2(cost, "displayText").toLowerCase() ? "" : billing && `(${billing})`,
1497
- _chunkLH3BV773js.observedMaxText.call(void 0, cost) && `\u2014 ${_chunkLH3BV773js.observedMaxText.call(void 0, cost)}`
1514
+ _chunkC553OZGGjs.observedMaxText.call(void 0, cost) && `\u2014 ${_chunkC553OZGGjs.observedMaxText.call(void 0, cost)}`
1498
1515
  ].filter(Boolean).join(" ") || void 0,
1499
1516
  guidance: [
1500
1517
  ...contract.deprecated === true ? [`Deprecated. ${stringField2(deprecation, "message")}`.trim()] : [],
@@ -1502,12 +1519,12 @@ function describedTool(tool, requestedToolId) {
1502
1519
  (line) => typeof line === "string" && /[a-z0-9]/i.test(line)
1503
1520
  )
1504
1521
  ],
1505
- rateLimit: _chunkMX53GIOBjs.rateLimitSummary.call(void 0,
1522
+ rateLimit: _chunk2JRRXXTAjs.rateLimitSummary.call(void 0,
1506
1523
  recordField(contract, "executionMetadata").configuredRateLimits
1507
1524
  ),
1508
- inputs: _chunkMX53GIOBjs.schemaFields.call(void 0, jsonSchemaOf(recordField(contract, "inputSchema"))),
1525
+ inputs: _chunk2JRRXXTAjs.schemaFields.call(void 0, jsonSchemaOf(recordField(contract, "inputSchema"))),
1509
1526
  outputs: [...lists, ...values].map(({ field }) => field),
1510
- rawResponse: _chunkMX53GIOBjs.schemaFields.call(void 0, outputSchema),
1527
+ rawResponse: _chunk2JRRXXTAjs.schemaFields.call(void 0, outputSchema),
1511
1528
  runner: playReference ? { via: "play", reference: playReference } : { via: "tool", toolId: String(contract.toolId) }
1512
1529
  };
1513
1530
  }
@@ -1566,7 +1583,7 @@ function printCompactToolContract(tool, requestedToolId) {
1566
1583
  }
1567
1584
  console.log("");
1568
1585
  console.log(
1569
- `More: deepline describe ${replacementToolId || contract.toolId} --json`
1586
+ `More: deepline describe ${replacementToolId || contract.toolId}`
1570
1587
  );
1571
1588
  return;
1572
1589
  }
@@ -1624,14 +1641,33 @@ function printCompactToolContract(tool, requestedToolId) {
1624
1641
  console.log(
1625
1642
  "Provider-specific fields: inspect result.toolResponse.rawV2 and its observed envelope. Prefer the declared getters above."
1626
1643
  );
1627
- console.log(`More: deepline describe ${contract.toolId} --json`);
1644
+ console.log(`More: deepline describe ${contract.toolId}`);
1645
+ }
1646
+ function toolByokLines(toolId, byok) {
1647
+ if (typeof byok.supported !== "boolean") {
1648
+ return [`${toolId}`, "BYOK: unknown (this server does not report it)"];
1649
+ }
1650
+ if (!byok.supported) {
1651
+ return [
1652
+ `${toolId}`,
1653
+ "BYOK: not supported. Deepline runs this tool with its own credentials."
1654
+ ];
1655
+ }
1656
+ const setup = stringField2(byok, "setup");
1657
+ const setupUrl = stringField2(byok, "setupUrl");
1658
+ return [
1659
+ `${toolId}`,
1660
+ byok.required === true ? "BYOK: required. This tool runs only on your own provider credentials." : "BYOK: supported (optional).",
1661
+ ...setup ? [`Setup: ${setup}`] : [],
1662
+ ...setupUrl ? [`Connect: ${setupUrl}`] : []
1663
+ ];
1628
1664
  }
1629
1665
  function toolPricingOnlyLines(tool, requestedToolId, options = {}) {
1630
1666
  if (isMonitorTypeTool(tool)) {
1631
1667
  return monitorTypePricingLines(tool);
1632
1668
  }
1633
1669
  const toolId = String(tool.toolId || requestedToolId);
1634
- const cost = _chunkLH3BV773js.Capability.fromCatalogEntry(tool).describe().customerCost();
1670
+ const cost = _chunkC553OZGGjs.Capability.fromCatalogEntry(tool).describe().customerCost();
1635
1671
  const pricingModel = stringField2(cost, "pricingModel") || "unknown";
1636
1672
  const billing = stringField2(cost, "billingSourceLabel") || stringField2(cost, "billingSource") || stringField2(cost, "billingMode") || "unknown";
1637
1673
  const explicitUnit = stringField2(cost, "unit");
@@ -1643,7 +1679,7 @@ function toolPricingOnlyLines(tool, requestedToolId, options = {}) {
1643
1679
  const price = displayText || summary || (credits !== null ? `${formatDecimal(credits)} Deepline credits${usd !== null ? ` / ${formatUsd(usd)}` : ""} per ${unit}` : "pricing unavailable");
1644
1680
  return [
1645
1681
  `${_nullishCoalesce(options.heading, () => ( `Pricing: ${toolId}`))}: ${price}`,
1646
- ..._chunkLH3BV773js.observedMaxText.call(void 0, cost) ? [` ${_chunkLH3BV773js.observedMaxText.call(void 0, cost)}`] : [],
1682
+ ..._chunkC553OZGGjs.observedMaxText.call(void 0, cost) ? [` ${_chunkC553OZGGjs.observedMaxText.call(void 0, cost)}`] : [],
1647
1683
  ...cost.observedReference || cost.estimatedRange ? [
1648
1684
  ...summary ? [` ${summary}`] : [],
1649
1685
  ...(_nullishCoalesce(cost.details, () => ( []))).map((detail) => ` ${detail}`)
@@ -1804,7 +1840,7 @@ function printToolGettersOnly(tool, requestedToolId) {
1804
1840
  console.log(`Getters: ${contract.toolId}`);
1805
1841
  if (!listGetters.length && !valueGetters.length) {
1806
1842
  console.log(
1807
- "No generated getters declared. Use --json only if you need raw metadata."
1843
+ "No generated getters declared."
1808
1844
  );
1809
1845
  return;
1810
1846
  }
@@ -1904,7 +1940,7 @@ function toolMetadataJsonForDescribe(tool, requestedToolId) {
1904
1940
  rows: []
1905
1941
  })
1906
1942
  ) : null;
1907
- const observedOutputCommand = isPlayLikeTool(tool) ? playRunCommandForTool(tool, toolId) : `deepline tools execute ${toolId} --input '{...}' --json`;
1943
+ const observedOutputCommand = isPlayLikeTool(tool) ? playRunCommandForTool(tool, toolId) : `deepline tools execute ${toolId} --input '{...}'`;
1908
1944
  const {
1909
1945
  cost: _cost,
1910
1946
  deeplineCreditsPerPricingUnit: _deeplineCreditsPerPricingUnit,
@@ -1917,11 +1953,13 @@ function toolMetadataJsonForDescribe(tool, requestedToolId) {
1917
1953
  deepline_usd_per_credit: _snakeDeeplineUsdPerCredit,
1918
1954
  deepline_pricing_summary: _snakeDeeplinePricingSummary,
1919
1955
  deepline_pricing_details: _snakeDeeplinePricingDetails,
1956
+ // BYOK is shown only on request, via --byok.
1957
+ byok: _byok,
1920
1958
  ...publicTool
1921
1959
  } = tool;
1922
1960
  const outputSchemaRecord = recordField(tool, "outputSchema", "output_schema");
1923
1961
  return {
1924
- cost: _chunkLH3BV773js.Capability.fromCatalogEntry(tool).describe().customerCost(),
1962
+ cost: _chunkC553OZGGjs.Capability.fromCatalogEntry(tool).describe().customerCost(),
1925
1963
  ...publicTool,
1926
1964
  toolId,
1927
1965
  provider: tool.provider,
@@ -1941,7 +1979,7 @@ function toolMetadataJsonForDescribe(tool, requestedToolId) {
1941
1979
  invalidGetterHint: "If TypeScript says an extractedValues/extractedLists property does not exist, that field is not a declared Deepline getter.",
1942
1980
  observeActualShape: observedOutputCommand,
1943
1981
  observedOutput: observedOutputCommand,
1944
- forPlayGetterBugs: "Run a tiny play, inspect returned handles with `deepline runs get <run-id> --full --json`, then export row datasets with `deepline runs export`.",
1982
+ forPlayGetterBugs: "Run a tiny play, inspect returned handles with `deepline runs get <run-id> --full`, then export row datasets with `deepline runs export`.",
1945
1983
  executeOutputFields: "tools execute JSON may include output_preview for this direct probe only; play debugging uses run output and returned dataset handles."
1946
1984
  },
1947
1985
  ...starterScript ? { starterScript } : {}
@@ -2374,9 +2412,9 @@ function apifySyncRecoveryNext(rawResponse) {
2374
2412
  const getDatasetItemsTool = stringField2(getDatasetItems, "tool");
2375
2413
  const getDatasetItemsPayload = recordField(getDatasetItems, "payload");
2376
2414
  return {
2377
- getActorRun: `deepline tools execute ${getActorRunTool} --input ${_chunkAID3OYVJjs.shellQuote.call(void 0, JSON.stringify(getActorRunPayload))} --json`,
2415
+ getActorRun: `deepline tools execute ${getActorRunTool} --input ${_chunkAID3OYVJjs.shellQuote.call(void 0, JSON.stringify(getActorRunPayload))}`,
2378
2416
  ...getDatasetItemsTool && Object.keys(getDatasetItemsPayload).length > 0 ? {
2379
- getDatasetItems: `deepline tools execute ${getDatasetItemsTool} --input ${_chunkAID3OYVJjs.shellQuote.call(void 0, JSON.stringify(getDatasetItemsPayload))} --json`
2417
+ getDatasetItems: `deepline tools execute ${getDatasetItemsTool} --input ${_chunkAID3OYVJjs.shellQuote.call(void 0, JSON.stringify(getDatasetItemsPayload))}`
2380
2418
  } : {}
2381
2419
  };
2382
2420
  }
@@ -2535,7 +2573,7 @@ function parseExecuteOptions(toolId, options, output) {
2535
2573
  outputFormat = normalizeOutputFormat(options.outputFormat);
2536
2574
  }
2537
2575
  if (options.idempotencyKey !== void 0) {
2538
- _chunkKGZRUGL7js.validateExecutionIdempotencyKey.call(void 0, options.idempotencyKey);
2576
+ _chunk44SHFHA3js.validateExecutionIdempotencyKey.call(void 0, options.idempotencyKey);
2539
2577
  }
2540
2578
  if (options.recoveryTimeoutMs !== void 0) {
2541
2579
  const parsed = Number(options.recoveryTimeoutMs);
@@ -2651,7 +2689,7 @@ export default definePlay(${JSON.stringify(playName)}, async (ctx) => {
2651
2689
  }
2652
2690
  function toolExecutionInspection(input) {
2653
2691
  return {
2654
- inspect: input.idempotencyKey !== void 0 ? `deepline executions get --idempotency-key ${_chunkAID3OYVJjs.shellQuote.call(void 0, input.idempotencyKey)} --json` : `deepline describe ${_chunkAID3OYVJjs.shellQuote.call(void 0, input.toolId)} --json`,
2692
+ inspect: input.idempotencyKey !== void 0 ? `deepline executions get --idempotency-key ${_chunkAID3OYVJjs.shellQuote.call(void 0, input.idempotencyKey)}` : `deepline describe ${_chunkAID3OYVJjs.shellQuote.call(void 0, input.toolId)}`,
2655
2693
  inspectDescription: input.idempotencyKey !== void 0 ? "Read the saved execution without starting new work." : "Read the tool contract; this unkeyed call has no saved recovery identity."
2656
2694
  };
2657
2695
  }
@@ -2679,7 +2717,7 @@ function buildToolExecuteBaseEnvelope(input) {
2679
2717
  envelope,
2680
2718
  "output"
2681
2719
  );
2682
- const billingLookup = typeof envelope.job_id === "string" && envelope.job_id.trim() ? `deepline billing usage --request-id ${_chunkAID3OYVJjs.shellQuote.call(void 0, envelope.job_id)} --json` : null;
2720
+ const billingLookup = typeof envelope.job_id === "string" && envelope.job_id.trim() ? `deepline billing usage --request-id ${_chunkAID3OYVJjs.shellQuote.call(void 0, envelope.job_id)}` : null;
2683
2721
  const inspection = toolExecutionInspection(input);
2684
2722
  const actions = input.listConversion ? [
2685
2723
  {
@@ -2846,20 +2884,20 @@ function buildToolExecuteRowArtifactEnvelope(input) {
2846
2884
  }
2847
2885
  async function executeTool(toolId, options) {
2848
2886
  const output = toolExecuteJsonOption(options.json);
2849
- const wantsJson = _chunkERMXQOIVjs.shouldEmitJson.call(void 0, output.requested);
2887
+ const wantsJson = _chunkBO3ADIBVjs.shouldEmitJson.call(void 0, output.requested) || (_nullishCoalesce(options.outputFormat, () => ( "auto"))).trim().toLowerCase() !== "csv";
2850
2888
  let parsed;
2851
2889
  try {
2852
2890
  parsed = parseExecuteOptions(toolId, options, output);
2853
2891
  } catch (error) {
2854
2892
  if (wantsJson) {
2855
- _chunkERMXQOIVjs.printJsonError.call(void 0, error);
2893
+ _chunkBO3ADIBVjs.printJsonError.call(void 0, error);
2856
2894
  } else {
2857
2895
  console.error(error instanceof Error ? error.message : String(error));
2858
2896
  }
2859
2897
  return error instanceof _chunk7P5AA3SNjs.DeeplineError && error.code === "IDEMPOTENCY_KEY_INVALID" ? 2 : 1;
2860
2898
  }
2861
2899
  const cliInvocationId = _nullishCoalesce(_chunkQJBJZVG6js.getToolExecuteInvocationId.call(void 0, ), () => ( _chunkQJBJZVG6js.beginToolExecuteCommand.call(void 0, )));
2862
- const client = new (0, _chunkKGZRUGL7js.DeeplineClient)();
2900
+ const client = new (0, _chunk44SHFHA3js.DeeplineClient)();
2863
2901
  let metadata;
2864
2902
  try {
2865
2903
  metadata = await _chunkQJBJZVG6js.runToolExecuteStage.call(void 0,
@@ -2874,7 +2912,7 @@ async function executeTool(toolId, options) {
2874
2912
  );
2875
2913
  if (play) {
2876
2914
  if (wantsJson) {
2877
- _chunkERMXQOIVjs.printJsonError.call(void 0,
2915
+ _chunkBO3ADIBVjs.printJsonError.call(void 0,
2878
2916
  new Error(playAliasToolErrorMessage(parsed.toolId, play))
2879
2917
  );
2880
2918
  } else {
@@ -2887,7 +2925,7 @@ async function executeTool(toolId, options) {
2887
2925
  }
2888
2926
  if (isPlayLikeTool(metadata)) {
2889
2927
  if (wantsJson) {
2890
- _chunkERMXQOIVjs.printJsonError.call(void 0,
2928
+ _chunkBO3ADIBVjs.printJsonError.call(void 0,
2891
2929
  new Error(
2892
2930
  playLikeToolExecuteErrorMessage(
2893
2931
  parsed.toolId,
@@ -2923,9 +2961,9 @@ async function executeTool(toolId, options) {
2923
2961
  responseIntent,
2924
2962
  ...idempotencyKey ? { idempotencyKey } : {},
2925
2963
  ...parsed.recoveryTimeoutMs !== void 0 ? { recoveryTimeoutMs: parsed.recoveryTimeoutMs } : {},
2926
- searchRef: _chunkLH3BV773js.recentSearchRef.call(void 0, ),
2964
+ searchRef: _chunkC553OZGGjs.recentSearchRef.call(void 0, ),
2927
2965
  cliInvocationId,
2928
- onResponseReceived: _chunkMX53GIOBjs.recordApiResponse
2966
+ onResponseReceived: _chunk2JRRXXTAjs.recordApiResponse
2929
2967
  }).catch((error) => {
2930
2968
  const guidanceLines = toolGuidanceLines(metadata.guidance);
2931
2969
  if (guidanceLines.length > 0) {
@@ -2944,10 +2982,10 @@ async function executeTool(toolId, options) {
2944
2982
  "result formatting",
2945
2983
  () => {
2946
2984
  const listExtractorPaths = listExtractorPathsFromUsageGuidance(metadata);
2947
- const listConversion2 = _chunkNXDRDJ4Kjs.tryConvertToList.call(void 0, rawResponse, {
2985
+ const listConversion2 = _chunkE5UD3JDQjs.tryConvertToList.call(void 0, rawResponse, {
2948
2986
  listExtractorPaths
2949
2987
  });
2950
- const summary2 = _chunkNXDRDJ4Kjs.extractSummaryFields.call(void 0, rawResponse);
2988
+ const summary2 = _chunkE5UD3JDQjs.extractSummaryFields.call(void 0, rawResponse);
2951
2989
  const baseEnvelope2 = buildToolExecuteBaseEnvelope({
2952
2990
  toolId: parsed.toolId,
2953
2991
  params: parsed.params,
@@ -2963,16 +3001,16 @@ async function executeTool(toolId, options) {
2963
3001
  );
2964
3002
  const executeExitCode = toolExecuteExitCode(baseEnvelope);
2965
3003
  const delivered = await _chunkQJBJZVG6js.runToolExecuteStage.call(void 0, "output delivery", () => {
2966
- if (!parsed.outPath && (parsed.outputFormat === "json" || parsed.outputFormat === "auto" && _chunkERMXQOIVjs.shouldEmitJson.call(void 0, ))) {
2967
- _chunkERMXQOIVjs.printCommandEnvelope.call(void 0, baseEnvelope, { json: true });
3004
+ if (!parsed.outPath && (parsed.outputFormat === "json" || parsed.outputFormat === "auto" && wantsJson)) {
3005
+ _chunkBO3ADIBVjs.printCommandEnvelope.call(void 0, baseEnvelope, { json: true });
2968
3006
  return true;
2969
3007
  }
2970
3008
  if (parsed.outputFormat === "json_file") {
2971
- const jsonPath = _chunkNXDRDJ4Kjs.writeJsonOutputFile.call(void 0,
3009
+ const jsonPath = _chunkE5UD3JDQjs.writeJsonOutputFile.call(void 0,
2972
3010
  rawResponse,
2973
3011
  `payload_${parsed.toolId}`
2974
3012
  );
2975
- _chunkERMXQOIVjs.printCommandEnvelope.call(void 0,
3013
+ _chunkBO3ADIBVjs.printCommandEnvelope.call(void 0,
2976
3014
  {
2977
3015
  ...baseEnvelope,
2978
3016
  local: {
@@ -2994,33 +3032,33 @@ async function executeTool(toolId, options) {
2994
3032
  `${parsed.toolId} did not expose row-shaped output to write as CSV. ${inspection.inspectDescription} Run: ${inspection.inspect}`
2995
3033
  );
2996
3034
  if (wantsJson) {
2997
- _chunkERMXQOIVjs.printJsonError.call(void 0, error);
3035
+ _chunkBO3ADIBVjs.printJsonError.call(void 0, error);
2998
3036
  } else {
2999
3037
  console.error(error.message);
3000
3038
  }
3001
3039
  return false;
3002
3040
  }
3003
3041
  if (parsed.outputFormat === "csv" || parsed.outputFormat === "csv_file") {
3004
- const jsonPath = _chunkNXDRDJ4Kjs.writeJsonOutputFile.call(void 0,
3042
+ const jsonPath = _chunkE5UD3JDQjs.writeJsonOutputFile.call(void 0,
3005
3043
  rawResponse,
3006
3044
  `payload_${parsed.toolId}`
3007
3045
  );
3008
- _chunkERMXQOIVjs.printCommandEnvelope.call(void 0,
3046
+ _chunkBO3ADIBVjs.printCommandEnvelope.call(void 0,
3009
3047
  {
3010
3048
  ...baseEnvelope,
3011
3049
  local: {
3012
3050
  payload_file: jsonPath
3013
3051
  }
3014
3052
  },
3015
- { json: parsed.outputFormat === "csv_file" || _chunkERMXQOIVjs.shouldEmitJson.call(void 0, ) }
3053
+ { json: parsed.outputFormat === "csv_file" || wantsJson }
3016
3054
  );
3017
3055
  return true;
3018
3056
  }
3019
- _chunkERMXQOIVjs.printCommandEnvelope.call(void 0, baseEnvelope, { json: false });
3057
+ _chunkBO3ADIBVjs.printCommandEnvelope.call(void 0, baseEnvelope, { json: false });
3020
3058
  return true;
3021
3059
  }
3022
- const rowOutput = _chunkNXDRDJ4Kjs.projectRowOutput.call(void 0, listConversion);
3023
- const csv = _chunkNXDRDJ4Kjs.writeCsvOutputFile.call(void 0,
3060
+ const rowOutput = _chunkE5UD3JDQjs.projectRowOutput.call(void 0, listConversion);
3061
+ const csv = _chunkE5UD3JDQjs.writeCsvOutputFile.call(void 0,
3024
3062
  listConversion.rows,
3025
3063
  `${parsed.toolId}_output`,
3026
3064
  parsed.outPath ? { outPath: parsed.outPath } : void 0
@@ -3040,7 +3078,7 @@ async function executeTool(toolId, options) {
3040
3078
  seededScript
3041
3079
  });
3042
3080
  if (parsed.outputFormat === "csv_file") {
3043
- _chunkERMXQOIVjs.printCommandEnvelope.call(void 0, materializedEnvelope, { json: true });
3081
+ _chunkBO3ADIBVjs.printCommandEnvelope.call(void 0, materializedEnvelope, { json: true });
3044
3082
  return true;
3045
3083
  }
3046
3084
  if (parsed.outPath) {
@@ -3048,7 +3086,7 @@ async function executeTool(toolId, options) {
3048
3086
  toolId: parsed.toolId,
3049
3087
  idempotencyKey
3050
3088
  });
3051
- _chunkERMXQOIVjs.printCommandEnvelope.call(void 0, materializedEnvelope, {
3089
+ _chunkBO3ADIBVjs.printCommandEnvelope.call(void 0, materializedEnvelope, {
3052
3090
  json: wantsJson,
3053
3091
  text: `Wrote ${csv.rowCount} row(s) to ${csv.path}
3054
3092
  inspect: ${inspection.inspect}
@@ -3057,7 +3095,7 @@ inspect: ${inspection.inspect}
3057
3095
  return true;
3058
3096
  }
3059
3097
  if (parsed.noPreview) {
3060
- _chunkERMXQOIVjs.printCommandEnvelope.call(void 0,
3098
+ _chunkBO3ADIBVjs.printCommandEnvelope.call(void 0,
3061
3099
  {
3062
3100
  ...materializedEnvelope,
3063
3101
  local: {
@@ -3065,12 +3103,14 @@ inspect: ${inspection.inspect}
3065
3103
  output_path: csv.path
3066
3104
  }
3067
3105
  },
3068
- { json: _chunkERMXQOIVjs.shouldEmitJson.call(void 0, ), text: `${csv.path}
3106
+ { json: wantsJson, text: `${csv.path}
3069
3107
  ` }
3070
3108
  );
3071
3109
  return true;
3072
3110
  }
3073
- _chunkERMXQOIVjs.printCommandEnvelope.call(void 0, materializedEnvelope, { json: false });
3111
+ _chunkBO3ADIBVjs.printCommandEnvelope.call(void 0, materializedEnvelope, {
3112
+ json: wantsJson && parsed.outputFormat !== "csv"
3113
+ });
3074
3114
  return true;
3075
3115
  });
3076
3116
  if (delivered) {