deepline 0.3.370 → 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 (119) 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/http-error-response.ts +18 -18
  9. package/dist/bundling-sources/shared_libs/monitors/provider-monitor-capability.ts +1 -1
  10. package/dist/bundling-sources/shared_libs/play-runtime/context.ts +2 -2
  11. package/dist/bundling-sources/shared_libs/play-runtime/dataset-lifecycle-log.ts +1 -1
  12. package/dist/bundling-sources/shared_libs/play-runtime/runner-app/index.ts +1 -1
  13. package/dist/bundling-sources/shared_libs/plays/launch/input-contract.ts +34 -9
  14. package/dist/cli/auth-DQVK3ZI6.js +33 -0
  15. package/dist/cli/{auth-RIH4S7NC.mjs → auth-LCSEXQA2.mjs} +4 -4
  16. package/dist/cli/{billing-Q65H5GJM.js → billing-KISDL67A.js} +148 -148
  17. package/dist/cli/{billing-ERNGN6WK.mjs → billing-Z7PLJC5C.mjs} +79 -79
  18. package/dist/cli/{chunk-MX53GIOB.js → chunk-2JRRXXTA.js} +2 -2
  19. package/dist/cli/{chunk-BKHNCIQD.mjs → chunk-2L6LBJVC.mjs} +193 -187
  20. package/dist/cli/{chunk-IDBLJSLL.mjs → chunk-3FTYFVYN.mjs} +5 -5
  21. package/dist/cli/{chunk-Z6B4UPM4.mjs → chunk-3GK3SH3G.mjs} +2 -2
  22. package/dist/cli/{chunk-4Y5UDYQK.js → chunk-44SHFHA3.js} +17 -17
  23. package/dist/cli/{chunk-RLXMRC6P.mjs → chunk-46JCJ7FT.mjs} +49 -96
  24. package/dist/cli/{chunk-XTKVXHGD.js → chunk-5BCVKWLV.js} +17 -17
  25. package/dist/cli/{chunk-A5RFERJQ.mjs → chunk-5S525TQV.mjs} +2 -2
  26. package/dist/cli/{chunk-WQZ22EQU.js → chunk-5Z7JFUNX.js} +26 -26
  27. package/dist/cli/{chunk-T64NZ2A7.mjs → chunk-73NIXYKH.mjs} +46 -47
  28. package/dist/cli/{chunk-SFI7U6CA.js → chunk-A7X7KFXX.js} +4 -4
  29. package/dist/cli/{chunk-YQMUTC2H.mjs → chunk-AIZKDTFF.mjs} +11 -11
  30. package/dist/cli/{chunk-MKFHZDBO.js → chunk-BO3ADIBV.js} +8 -8
  31. package/dist/cli/{chunk-NHB3UWTZ.js → chunk-C3IPN4E6.js} +17 -17
  32. package/dist/cli/{chunk-A4OX52RV.js → chunk-C553OZGG.js} +10 -10
  33. package/dist/cli/{chunk-GGRVNAOH.mjs → chunk-DOXAN2I7.mjs} +3 -3
  34. package/dist/cli/{chunk-YEEESF2T.js → chunk-DPVBWLBF.js} +419 -413
  35. package/dist/cli/{chunk-R7AAYFDQ.js → chunk-DQMTJXLK.js} +102 -103
  36. package/dist/cli/{chunk-NXDRDJ4K.js → chunk-E5UD3JDQ.js} +3 -1
  37. package/dist/cli/{chunk-LNEBKWXM.mjs → chunk-IWY7T6MR.mjs} +1 -1
  38. package/dist/cli/{chunk-MIMASXO4.mjs → chunk-JB6ERQUV.mjs} +3 -1
  39. package/dist/cli/{chunk-CTMA3C3N.js → chunk-JSK6GUY6.js} +49 -96
  40. package/dist/cli/{chunk-H4IQJRFC.mjs → chunk-KBJO7HIF.mjs} +9 -9
  41. package/dist/cli/{chunk-HHH4MPFY.mjs → chunk-KGRAQ4OR.mjs} +6 -6
  42. package/dist/cli/{chunk-LJWOPNJJ.mjs → chunk-KKRRIFR3.mjs} +1 -1
  43. package/dist/cli/{chunk-DFJDVQMH.js → chunk-N34UX4TW.js} +2 -2
  44. package/dist/cli/{chunk-666HPUIZ.js → chunk-NMDNUOVI.js} +1 -6
  45. package/dist/cli/{chunk-5DUTNG37.mjs → chunk-SEDS6ZVR.mjs} +10 -10
  46. package/dist/cli/{chunk-BGXG3GEI.mjs → chunk-SENW5J4O.mjs} +5 -5
  47. package/dist/cli/{chunk-Y2B56VN7.js → chunk-TT2YWFYW.js} +53 -53
  48. package/dist/cli/{chunk-A6DJC2RC.js → chunk-YENBXYUH.js} +68 -68
  49. package/dist/cli/{chunk-NEY2M4EZ.mjs → chunk-YYFLULK7.mjs} +1 -6
  50. package/dist/cli/client-JFSRNUVD.js +20 -0
  51. package/dist/cli/{client-QXOERIFI.mjs → client-Z3Z5EDDJ.mjs} +3 -3
  52. package/dist/cli/command-docs.js +2 -2
  53. package/dist/cli/command-docs.mjs +1 -1
  54. package/dist/cli/{csv-V7UKQ7AC.mjs → csv-TEVHLGGA.mjs} +3 -3
  55. package/dist/cli/{csv-ZKIUSDIV.js → csv-XGFXV7JE.js} +12 -12
  56. package/dist/cli/{db-GWKRVHKS.js → db-LLZJ7UH5.js} +42 -43
  57. package/dist/cli/{db-QQ4BYMPY.mjs → db-OB7PMWSZ.mjs} +17 -18
  58. package/dist/cli/{describe-XMWXEFMS.mjs → describe-GZIRANUZ.mjs} +12 -12
  59. package/dist/cli/{describe-3AJI2BOS.js → describe-NWU7LI3I.js} +28 -28
  60. package/dist/cli/{executions-2IMCCV34.js → executions-64YZGSOW.js} +6 -6
  61. package/dist/cli/{executions-QV7UE5YG.mjs → executions-7UZ3ZGJ3.mjs} +4 -4
  62. package/dist/cli/{feedback-K6WNXZDB.mjs → feedback-2WRQRW3U.mjs} +8 -8
  63. package/dist/cli/{feedback-7SSJ7VPF.js → feedback-MN5CXULH.js} +12 -12
  64. package/dist/cli/{git-UOE2K2XQ.mjs → git-BPYVLLTY.mjs} +4 -4
  65. package/dist/cli/git-TJIPVSAE.js +23 -0
  66. package/dist/cli/index.js +98 -109
  67. package/dist/cli/index.mjs +46 -57
  68. package/dist/cli/{legacy-noops-GC43OSXL.js → legacy-noops-VMXJPLMW.js} +9 -9
  69. package/dist/cli/{legacy-noops-SOYPIA2X.mjs → legacy-noops-ZRPWEPX6.mjs} +6 -6
  70. package/dist/cli/{monitors-FLCGMXVH.mjs → monitors-5BRTBL7E.mjs} +59 -59
  71. package/dist/cli/{monitors-AXANB6WK.js → monitors-OQSI2VOL.js} +140 -140
  72. package/dist/cli/{org-MXD4BTQI.js → org-F5QS3HG4.js} +88 -87
  73. package/dist/cli/{org-Q7EDNZMN.mjs → org-SMZ7AGR3.mjs} +28 -27
  74. package/dist/cli/{play-TZROCF7E.mjs → play-CJZNLQL7.mjs} +10 -8
  75. package/dist/cli/play-K7HE4LBB.js +155 -0
  76. package/dist/cli/{providers-JEY4FTWG.mjs → providers-CBWXJRDG.mjs} +7 -7
  77. package/dist/cli/{providers-LOS4MHAG.js → providers-SH2HYOVR.js} +10 -10
  78. package/dist/cli/{quickstart-WO5KVVER.mjs → quickstart-342ENF6Q.mjs} +4 -4
  79. package/dist/cli/{quickstart-27UQGHEH.js → quickstart-B6EL7WDG.js} +6 -6
  80. package/dist/cli/{search-LZHWXC2C.mjs → search-E7DKH3SI.mjs} +5 -5
  81. package/dist/cli/search-SEEYCQED.js +26 -0
  82. package/dist/cli/{secrets-AVJGZABR.mjs → secrets-FSYIPRVS.mjs} +5 -5
  83. package/dist/cli/{secrets-PE7P4L7N.js → secrets-M2AW5RGE.js} +14 -14
  84. package/dist/cli/{sessions-I6UDBN7M.js → sessions-AFE4C3FQ.js} +5 -5
  85. package/dist/cli/{sessions-ZDSZTYZV.mjs → sessions-DJPGWPNA.mjs} +4 -4
  86. package/dist/cli/{settings-SPWH3FET.mjs → settings-KLN2A3PQ.mjs} +10 -10
  87. package/dist/cli/{settings-3SLMJHJ2.js → settings-VUWBNATC.js} +77 -77
  88. package/dist/cli/{setup-Q3CJ4T2Q.mjs → setup-BE6N5YV6.mjs} +15 -15
  89. package/dist/cli/{setup-R4LUWQE4.js → setup-I5IMTQCX.js} +50 -50
  90. package/dist/cli/skills-7XH5GMZB.js +28 -0
  91. package/dist/cli/{skills-FGXH432G.mjs → skills-GSNPQDUG.mjs} +4 -4
  92. package/dist/cli/tools-JCL4ABAF.js +40 -0
  93. package/dist/cli/{tools-O7C6PFF2.mjs → tools-ORCGHV4P.mjs} +8 -8
  94. package/dist/cli/{update-PPCQV3CD.mjs → update-UXEUWVWS.mjs} +6 -6
  95. package/dist/cli/update-YNZOS77Z.js +28 -0
  96. package/dist/cli/{workflow-Z2KYQ2JE.mjs → workflow-JBQY7JJN.mjs} +7 -7
  97. package/dist/cli/{workflow-ALKU4ZFD.js → workflow-R7SDICTU.js} +17 -17
  98. package/dist/{client-CjHv4K6D.d.mts → client-CZFMQEgO.d.mts} +6 -6
  99. package/dist/{client-rTuhNN-x.d.ts → client-CgSwpnb-.d.ts} +6 -6
  100. package/dist/index.d.mts +2 -2
  101. package/dist/index.d.ts +2 -2
  102. package/dist/index.js +15 -15
  103. package/dist/index.mjs +4 -4
  104. package/dist/install-integrity.json +82 -82
  105. package/dist/plays/run-request.d.mts +1 -1
  106. package/dist/plays/run-request.d.ts +1 -1
  107. package/dist/release.d.mts +1 -5
  108. package/dist/release.d.ts +1 -5
  109. package/dist/release.js +2 -2
  110. package/dist/release.mjs +1 -1
  111. package/package.json +1 -1
  112. package/dist/cli/auth-DD3PVIRQ.js +0 -33
  113. package/dist/cli/client-DNAFHKWV.js +0 -20
  114. package/dist/cli/git-EBSF3254.js +0 -23
  115. package/dist/cli/play-YWQXVOBT.js +0 -153
  116. package/dist/cli/search-OQ3OEFUA.js +0 -26
  117. package/dist/cli/skills-IDXBBOUW.js +0 -28
  118. package/dist/cli/tools-WHLD4Y4O.js +0 -40
  119. package/dist/cli/update-K6HE3XKO.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 _chunkA4OX52RVjs = require('./chunk-A4OX52RV.js');
16
+ var _chunkC553OZGGjs = require('./chunk-C553OZGG.js');
17
17
 
18
18
 
19
19
 
@@ -21,14 +21,14 @@ var _chunkA4OX52RVjs = require('./chunk-A4OX52RV.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 _chunk4Y5UDYQKjs = require('./chunk-4Y5UDYQK.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 _chunkMKFHZDBOjs = require('./chunk-MKFHZDBO.js');
45
+ var _chunkBO3ADIBVjs = require('./chunk-BO3ADIBV.js');
46
46
 
47
47
 
48
48
 
49
- var _chunkSFI7U6CAjs = require('./chunk-SFI7U6CA.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 = _chunkSFI7U6CAjs.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
- _chunkSFI7U6CAjs.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, _chunk4Y5UDYQKjs.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
- _chunkMKFHZDBOjs.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
- _chunkMKFHZDBOjs.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(_chunkMKFHZDBOjs.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, _chunk4Y5UDYQKjs.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
- _chunkMKFHZDBOjs.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, _chunk4Y5UDYQKjs.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
- _chunkMKFHZDBOjs.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 || _chunkMKFHZDBOjs.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
- _chunkMKFHZDBOjs.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, _chunk4Y5UDYQKjs.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
- _chunkMKFHZDBOjs.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 || _chunkMKFHZDBOjs.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) {
@@ -791,10 +791,10 @@ Concepts:
791
791
  through the plays namespace.
792
792
 
793
793
  Common commands:
794
- deepline search "name and company domain -> work email" --type tools --json
794
+ deepline search "name and company domain -> work email" --type tools
795
795
  deepline describe hunter_email_verifier
796
796
  deepline tools execute hunter_email_verifier --input '{"email":"a@b.com"}'
797
- deepline billing usage --request-id <job_id> --json
797
+ deepline billing usage --request-id <job_id>
798
798
 
799
799
  Output:
800
800
  Use deepline describe for tool contracts.
@@ -821,21 +821,21 @@ Notes:
821
821
  Examples:
822
822
  deepline tools list
823
823
  deepline tools list email_finder
824
- deepline tools list email_finder --json
825
- deepline tools list --categories email_finder --json
826
- 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
827
827
  `
828
828
  ).option(
829
829
  "--categories <categories>",
830
830
  "Comma-separated categories filter (back-compat alias for the positional)"
831
- ).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) => {
832
832
  process.exitCode = await listTools(category, {
833
833
  categories: typeof options.categories === "string" ? options.categories : void 0,
834
834
  compact: options.compact !== false,
835
835
  json: Boolean(options.json)
836
836
  });
837
837
  });
838
- _chunkA4OX52RVjs.registerDeprecatedSearchCommand.call(void 0, tools, () => ["tools", "monitors"]);
838
+ _chunkC553OZGGjs.registerDeprecatedSearchCommand.call(void 0, tools, () => ["tools", "monitors"]);
839
839
  tools.command("grep <query>").description(
840
840
  "Literal grep over tool ids, descriptions, categories, and input fields."
841
841
  ).addHelpText(
@@ -848,14 +848,14 @@ Notes:
848
848
  the default --mode all for AND.
849
849
 
850
850
  Examples:
851
- deepline tools grep email --categories email_finder --json
852
- deepline tools grep "phone validate" --mode all --json
853
- 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
854
854
  `
855
855
  ).option(
856
856
  "--categories <categories>",
857
857
  "Comma-separated categories to filter inventory"
858
- ).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) => {
859
859
  const mode = options.mode === "any" || options.mode === "phrase" ? options.mode : "all";
860
860
  process.exitCode = await grepTools(query, {
861
861
  json: options.json,
@@ -882,18 +882,16 @@ Notes:
882
882
  preserve the nesting shown in the tool's example. Schemas and examples are
883
883
  separate describe fields.
884
884
  get is accepted as a compatibility alias for describe.
885
- Text by default, including when piped; pass --json for structured output.
885
+ Text by default; pass --json for structured output.
886
886
 
887
887
  Examples:
888
888
  deepline tools describe hunter_email_verifier
889
889
  deepline tools describe hunter_email_verifier --pricing-only
890
- deepline tools describe hunter_email_verifier --pricing-only --json
891
890
  deepline tools describe hunter_email_verifier --examples-only
892
891
  deepline tools describe hunter_email_verifier --byok
893
- deepline tools describe hunter_email_verifier --json
894
- deepline tools describe deeplineagent --model openai/gpt-5.6-luna --json
895
- deepline tools describe ai_inference --estimate-payload @payload.json --json
896
- deepline tools describe ai_evaluate --estimate-payload @payload.json --json
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
897
895
  deepline tools execute hunter_email_verifier --input '{"email":"a@b.com"}'
898
896
  `
899
897
  ).option("--json", "Emit JSON output").option(
@@ -942,7 +940,7 @@ Examples:
942
940
  process.exitCode = await narrowView();
943
941
  return;
944
942
  }
945
- const { describeAnything } = await Promise.resolve().then(() => _interopRequireWildcard(require("./describe-3AJI2BOS.js")));
943
+ const { describeAnything } = await Promise.resolve().then(() => _interopRequireWildcard(require("./describe-NWU7LI3I.js")));
946
944
  process.exitCode = await describeAnything(
947
945
  toolId,
948
946
  { ...options, kinds: ["tools", "monitors"], fetchedTool: metadata },
@@ -952,7 +950,7 @@ Examples:
952
950
  });
953
951
  };
954
952
  addToolMetadataCommand(
955
- _chunkMX53GIOBjs.addDescribeOptions.call(void 0,
953
+ _chunk2JRRXXTAjs.addDescribeOptions.call(void 0,
956
954
  tools.command("describe <toolId>", { hidden: true }).alias("get"),
957
955
  { json: false }
958
956
  )
@@ -973,11 +971,10 @@ Notes:
973
971
  Examples:
974
972
  deepline tools execute hunter_email_verifier --input '{"email":"a@b.com"}'
975
973
  deepline describe hunter_email_verifier
976
- deepline billing usage --request-id <job_id> --json
977
- 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
978
976
  deepline tools execute hunter_email_verifier -p email=a@b.com
979
- deepline tools execute test_rate_limit --input '{"key":"smoke"}' --timeout 90s --json
980
- deepline tools execute test_rate_limit --input '{"key":"smoke"}' --json | jq '.status'
977
+ deepline tools execute test_rate_limit --input '{"key":"smoke"}' --timeout 90s
981
978
  deepline tools execute free_simple_company_search --input '{"sql":"SELECT company_name FROM companies LIMIT 10"}' --out companies.csv
982
979
  `
983
980
  ).option(
@@ -1024,7 +1021,7 @@ async function getTool(toolId, options = {}, compatibilityMetadata) {
1024
1021
  console.error("Usage: deepline tools describe <toolId> [--json]");
1025
1022
  return 1;
1026
1023
  }
1027
- const client = new (0, _chunk4Y5UDYQKjs.DeeplineClient)();
1024
+ const client = new (0, _chunk44SHFHA3js.DeeplineClient)();
1028
1025
  let tool;
1029
1026
  try {
1030
1027
  tool = await _asyncNullishCoalesce(compatibilityMetadata, async () => ( await client.getTool(toolId)));
@@ -1078,7 +1075,7 @@ async function getTool(toolId, options = {}, compatibilityMetadata) {
1078
1075
  if (options.byok) {
1079
1076
  const resolvedToolId = String(tool.toolId || toolId);
1080
1077
  const byok = recordField(tool, "byok");
1081
- _chunkMKFHZDBOjs.printCommandEnvelope.call(void 0,
1078
+ _chunkBO3ADIBVjs.printCommandEnvelope.call(void 0,
1082
1079
  { toolId: resolvedToolId, byok },
1083
1080
  {
1084
1081
  json: Boolean(options.json || options.contractJson),
@@ -1092,10 +1089,10 @@ async function getTool(toolId, options = {}, compatibilityMetadata) {
1092
1089
  const lines = toolPricingOnlyLines(tool, toolId);
1093
1090
  if (inferenceQuote)
1094
1091
  lines.push(...inferenceQuoteSummaryLines(inferenceQuote));
1095
- _chunkMKFHZDBOjs.printCommandEnvelope.call(void 0,
1092
+ _chunkBO3ADIBVjs.printCommandEnvelope.call(void 0,
1096
1093
  {
1097
1094
  toolId: String(tool.toolId || toolId),
1098
- cost: _chunkA4OX52RVjs.Capability.fromCatalogEntry(tool).describe().customerCost(),
1095
+ cost: _chunkC553OZGGjs.Capability.fromCatalogEntry(tool).describe().customerCost(),
1099
1096
  ...modelDescription ? { modelOptions: modelDescription } : {},
1100
1097
  ...isMonitorTypeTool(tool) ? { pricing: recordField(tool, "pricing") } : {},
1101
1098
  ...inferenceQuote ? { inferenceQuote } : {}
@@ -1110,7 +1107,7 @@ async function getTool(toolId, options = {}, compatibilityMetadata) {
1110
1107
  }
1111
1108
  if ((options.schemaOnly || options.examplesOnly || options.gettersOnly) && !isMonitorTypeTool(tool) && !isPlayLikeTool(tool) && (options.json || options.contractJson)) {
1112
1109
  const contract = toolContractJsonForDescribe(tool, toolId);
1113
- _chunkMKFHZDBOjs.printCompactJson.call(void 0, {
1110
+ _chunkBO3ADIBVjs.printCompactJson.call(void 0, {
1114
1111
  toolId: contract.toolId,
1115
1112
  ...options.schemaOnly ? {
1116
1113
  inputSchema: contract.inputSchema,
@@ -1133,7 +1130,7 @@ async function getTool(toolId, options = {}, compatibilityMetadata) {
1133
1130
  return 0;
1134
1131
  }
1135
1132
  if (options.contractJson) {
1136
- _chunkMKFHZDBOjs.printCompactJson.call(void 0, {
1133
+ _chunkBO3ADIBVjs.printCompactJson.call(void 0, {
1137
1134
  ...toolContractJsonForDescribe(tool, toolId),
1138
1135
  ...modelDescription ? { modelOptions: modelDescription } : {},
1139
1136
  ...inferenceQuote ? { inferenceQuote } : {}
@@ -1142,7 +1139,7 @@ async function getTool(toolId, options = {}, compatibilityMetadata) {
1142
1139
  }
1143
1140
  const emitJson = options.json === true;
1144
1141
  if (emitJson) {
1145
- _chunkMKFHZDBOjs.printCompactJson.call(void 0, {
1142
+ _chunkBO3ADIBVjs.printCompactJson.call(void 0, {
1146
1143
  ...toolMetadataJsonForDescribe(tool, toolId),
1147
1144
  ...modelDescription ? { modelOptions: modelDescription } : {},
1148
1145
  ...inferenceQuote ? { inferenceQuote } : {}
@@ -1219,7 +1216,7 @@ function toolContractJsonForDescribe(tool, requestedToolId, authoringContractEdi
1219
1216
  const extractedValues = extractionContractEntries(
1220
1217
  arrayField2(toolExecutionResult, "extractedValues", "extracted_values")
1221
1218
  );
1222
- const pricing = _chunkA4OX52RVjs.Capability.fromCatalogEntry(tool).describe().customerCost();
1219
+ const pricing = _chunkC553OZGGjs.Capability.fromCatalogEntry(tool).describe().customerCost();
1223
1220
  const executionMetadataRecord = recordField(
1224
1221
  tool,
1225
1222
  "executionMetadata",
@@ -1248,7 +1245,7 @@ function toolContractJsonForDescribe(tool, requestedToolId, authoringContractEdi
1248
1245
  rows: []
1249
1246
  })
1250
1247
  ) : null;
1251
- 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 '{...}'`;
1252
1249
  return {
1253
1250
  schemaVersion: 1,
1254
1251
  toolId,
@@ -1362,14 +1359,14 @@ function monitorTypePricingLines(tool) {
1362
1359
  );
1363
1360
  const keys = Object.keys(byType);
1364
1361
  if (!keys.length) {
1365
- return ["Pricing: Deepline credits per accepted event (see --json)"];
1362
+ return ["Pricing: Deepline credits per accepted event"];
1366
1363
  }
1367
1364
  const lines = ["Pricing (Deepline credits per accepted event):"];
1368
1365
  for (const key of keys) {
1369
1366
  const entry = isRecord(byType[key]) ? byType[key] : {};
1370
1367
  const credits = numberField2(entry, "deepline_credits", "deeplineCredits");
1371
1368
  const display = stringField2(entry, "display");
1372
- const shown = display || (credits !== null ? `${formatDecimal(credits)} credits/event` : "see --json");
1369
+ const shown = display || (credits !== null ? `${formatDecimal(credits)} credits/event` : "not listed");
1373
1370
  lines.push(`- ${key}: ${shown}`);
1374
1371
  }
1375
1372
  return lines;
@@ -1454,7 +1451,7 @@ function describedTool(tool, requestedToolId) {
1454
1451
  description,
1455
1452
  cost: stringField2(recordField(tool, "pricing"), "displayText") || void 0,
1456
1453
  guidance: [],
1457
- inputs: _chunkMX53GIOBjs.schemaFields.call(void 0,
1454
+ inputs: _chunk2JRRXXTAjs.schemaFields.call(void 0,
1458
1455
  recordField(tool, "payload_schema", "payloadSchema")
1459
1456
  ),
1460
1457
  outputs: [],
@@ -1486,7 +1483,7 @@ function describedTool(tool, requestedToolId) {
1486
1483
  "rawToolOutputPaths"
1487
1484
  ).map((path) => String(path).replace(/^toolResponse\.raw\./, ""));
1488
1485
  const node = roots.flatMap((root) => paths.map((path) => schemaNodeAt(root, path))).find(isRecord);
1489
- const { fields, ...typed } = _chunkMX53GIOBjs.schemaField.call(void 0, name, node, true);
1486
+ const { fields, ...typed } = _chunk2JRRXXTAjs.schemaField.call(void 0, name, node, true);
1490
1487
  const valueType = stringField2(_nullishCoalesce(details.get(name), () => ( {})), "valueType");
1491
1488
  const field = {
1492
1489
  ...typed,
@@ -1514,7 +1511,7 @@ function describedTool(tool, requestedToolId) {
1514
1511
  stringField2(cost, "displayText"),
1515
1512
  // "Free (free)" says the same thing twice.
1516
1513
  billing.toLowerCase() === stringField2(cost, "displayText").toLowerCase() ? "" : billing && `(${billing})`,
1517
- _chunkA4OX52RVjs.observedMaxText.call(void 0, cost) && `\u2014 ${_chunkA4OX52RVjs.observedMaxText.call(void 0, cost)}`
1514
+ _chunkC553OZGGjs.observedMaxText.call(void 0, cost) && `\u2014 ${_chunkC553OZGGjs.observedMaxText.call(void 0, cost)}`
1518
1515
  ].filter(Boolean).join(" ") || void 0,
1519
1516
  guidance: [
1520
1517
  ...contract.deprecated === true ? [`Deprecated. ${stringField2(deprecation, "message")}`.trim()] : [],
@@ -1522,12 +1519,12 @@ function describedTool(tool, requestedToolId) {
1522
1519
  (line) => typeof line === "string" && /[a-z0-9]/i.test(line)
1523
1520
  )
1524
1521
  ],
1525
- rateLimit: _chunkMX53GIOBjs.rateLimitSummary.call(void 0,
1522
+ rateLimit: _chunk2JRRXXTAjs.rateLimitSummary.call(void 0,
1526
1523
  recordField(contract, "executionMetadata").configuredRateLimits
1527
1524
  ),
1528
- inputs: _chunkMX53GIOBjs.schemaFields.call(void 0, jsonSchemaOf(recordField(contract, "inputSchema"))),
1525
+ inputs: _chunk2JRRXXTAjs.schemaFields.call(void 0, jsonSchemaOf(recordField(contract, "inputSchema"))),
1529
1526
  outputs: [...lists, ...values].map(({ field }) => field),
1530
- rawResponse: _chunkMX53GIOBjs.schemaFields.call(void 0, outputSchema),
1527
+ rawResponse: _chunk2JRRXXTAjs.schemaFields.call(void 0, outputSchema),
1531
1528
  runner: playReference ? { via: "play", reference: playReference } : { via: "tool", toolId: String(contract.toolId) }
1532
1529
  };
1533
1530
  }
@@ -1586,7 +1583,7 @@ function printCompactToolContract(tool, requestedToolId) {
1586
1583
  }
1587
1584
  console.log("");
1588
1585
  console.log(
1589
- `More: deepline describe ${replacementToolId || contract.toolId} --json`
1586
+ `More: deepline describe ${replacementToolId || contract.toolId}`
1590
1587
  );
1591
1588
  return;
1592
1589
  }
@@ -1644,7 +1641,7 @@ function printCompactToolContract(tool, requestedToolId) {
1644
1641
  console.log(
1645
1642
  "Provider-specific fields: inspect result.toolResponse.rawV2 and its observed envelope. Prefer the declared getters above."
1646
1643
  );
1647
- console.log(`More: deepline describe ${contract.toolId} --json`);
1644
+ console.log(`More: deepline describe ${contract.toolId}`);
1648
1645
  }
1649
1646
  function toolByokLines(toolId, byok) {
1650
1647
  if (typeof byok.supported !== "boolean") {
@@ -1670,7 +1667,7 @@ function toolPricingOnlyLines(tool, requestedToolId, options = {}) {
1670
1667
  return monitorTypePricingLines(tool);
1671
1668
  }
1672
1669
  const toolId = String(tool.toolId || requestedToolId);
1673
- const cost = _chunkA4OX52RVjs.Capability.fromCatalogEntry(tool).describe().customerCost();
1670
+ const cost = _chunkC553OZGGjs.Capability.fromCatalogEntry(tool).describe().customerCost();
1674
1671
  const pricingModel = stringField2(cost, "pricingModel") || "unknown";
1675
1672
  const billing = stringField2(cost, "billingSourceLabel") || stringField2(cost, "billingSource") || stringField2(cost, "billingMode") || "unknown";
1676
1673
  const explicitUnit = stringField2(cost, "unit");
@@ -1682,7 +1679,7 @@ function toolPricingOnlyLines(tool, requestedToolId, options = {}) {
1682
1679
  const price = displayText || summary || (credits !== null ? `${formatDecimal(credits)} Deepline credits${usd !== null ? ` / ${formatUsd(usd)}` : ""} per ${unit}` : "pricing unavailable");
1683
1680
  return [
1684
1681
  `${_nullishCoalesce(options.heading, () => ( `Pricing: ${toolId}`))}: ${price}`,
1685
- ..._chunkA4OX52RVjs.observedMaxText.call(void 0, cost) ? [` ${_chunkA4OX52RVjs.observedMaxText.call(void 0, cost)}`] : [],
1682
+ ..._chunkC553OZGGjs.observedMaxText.call(void 0, cost) ? [` ${_chunkC553OZGGjs.observedMaxText.call(void 0, cost)}`] : [],
1686
1683
  ...cost.observedReference || cost.estimatedRange ? [
1687
1684
  ...summary ? [` ${summary}`] : [],
1688
1685
  ...(_nullishCoalesce(cost.details, () => ( []))).map((detail) => ` ${detail}`)
@@ -1843,7 +1840,7 @@ function printToolGettersOnly(tool, requestedToolId) {
1843
1840
  console.log(`Getters: ${contract.toolId}`);
1844
1841
  if (!listGetters.length && !valueGetters.length) {
1845
1842
  console.log(
1846
- "No generated getters declared. Use --json only if you need raw metadata."
1843
+ "No generated getters declared."
1847
1844
  );
1848
1845
  return;
1849
1846
  }
@@ -1943,7 +1940,7 @@ function toolMetadataJsonForDescribe(tool, requestedToolId) {
1943
1940
  rows: []
1944
1941
  })
1945
1942
  ) : null;
1946
- 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 '{...}'`;
1947
1944
  const {
1948
1945
  cost: _cost,
1949
1946
  deeplineCreditsPerPricingUnit: _deeplineCreditsPerPricingUnit,
@@ -1962,7 +1959,7 @@ function toolMetadataJsonForDescribe(tool, requestedToolId) {
1962
1959
  } = tool;
1963
1960
  const outputSchemaRecord = recordField(tool, "outputSchema", "output_schema");
1964
1961
  return {
1965
- cost: _chunkA4OX52RVjs.Capability.fromCatalogEntry(tool).describe().customerCost(),
1962
+ cost: _chunkC553OZGGjs.Capability.fromCatalogEntry(tool).describe().customerCost(),
1966
1963
  ...publicTool,
1967
1964
  toolId,
1968
1965
  provider: tool.provider,
@@ -1982,7 +1979,7 @@ function toolMetadataJsonForDescribe(tool, requestedToolId) {
1982
1979
  invalidGetterHint: "If TypeScript says an extractedValues/extractedLists property does not exist, that field is not a declared Deepline getter.",
1983
1980
  observeActualShape: observedOutputCommand,
1984
1981
  observedOutput: observedOutputCommand,
1985
- 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`.",
1986
1983
  executeOutputFields: "tools execute JSON may include output_preview for this direct probe only; play debugging uses run output and returned dataset handles."
1987
1984
  },
1988
1985
  ...starterScript ? { starterScript } : {}
@@ -2415,9 +2412,9 @@ function apifySyncRecoveryNext(rawResponse) {
2415
2412
  const getDatasetItemsTool = stringField2(getDatasetItems, "tool");
2416
2413
  const getDatasetItemsPayload = recordField(getDatasetItems, "payload");
2417
2414
  return {
2418
- 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))}`,
2419
2416
  ...getDatasetItemsTool && Object.keys(getDatasetItemsPayload).length > 0 ? {
2420
- 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))}`
2421
2418
  } : {}
2422
2419
  };
2423
2420
  }
@@ -2576,7 +2573,7 @@ function parseExecuteOptions(toolId, options, output) {
2576
2573
  outputFormat = normalizeOutputFormat(options.outputFormat);
2577
2574
  }
2578
2575
  if (options.idempotencyKey !== void 0) {
2579
- _chunk4Y5UDYQKjs.validateExecutionIdempotencyKey.call(void 0, options.idempotencyKey);
2576
+ _chunk44SHFHA3js.validateExecutionIdempotencyKey.call(void 0, options.idempotencyKey);
2580
2577
  }
2581
2578
  if (options.recoveryTimeoutMs !== void 0) {
2582
2579
  const parsed = Number(options.recoveryTimeoutMs);
@@ -2692,7 +2689,7 @@ export default definePlay(${JSON.stringify(playName)}, async (ctx) => {
2692
2689
  }
2693
2690
  function toolExecutionInspection(input) {
2694
2691
  return {
2695
- 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)}`,
2696
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."
2697
2694
  };
2698
2695
  }
@@ -2720,7 +2717,7 @@ function buildToolExecuteBaseEnvelope(input) {
2720
2717
  envelope,
2721
2718
  "output"
2722
2719
  );
2723
- 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;
2724
2721
  const inspection = toolExecutionInspection(input);
2725
2722
  const actions = input.listConversion ? [
2726
2723
  {
@@ -2887,20 +2884,20 @@ function buildToolExecuteRowArtifactEnvelope(input) {
2887
2884
  }
2888
2885
  async function executeTool(toolId, options) {
2889
2886
  const output = toolExecuteJsonOption(options.json);
2890
- const wantsJson = _chunkMKFHZDBOjs.shouldEmitJson.call(void 0, output.requested);
2887
+ const wantsJson = _chunkBO3ADIBVjs.shouldEmitJson.call(void 0, output.requested) || (_nullishCoalesce(options.outputFormat, () => ( "auto"))).trim().toLowerCase() !== "csv";
2891
2888
  let parsed;
2892
2889
  try {
2893
2890
  parsed = parseExecuteOptions(toolId, options, output);
2894
2891
  } catch (error) {
2895
2892
  if (wantsJson) {
2896
- _chunkMKFHZDBOjs.printJsonError.call(void 0, error);
2893
+ _chunkBO3ADIBVjs.printJsonError.call(void 0, error);
2897
2894
  } else {
2898
2895
  console.error(error instanceof Error ? error.message : String(error));
2899
2896
  }
2900
2897
  return error instanceof _chunk7P5AA3SNjs.DeeplineError && error.code === "IDEMPOTENCY_KEY_INVALID" ? 2 : 1;
2901
2898
  }
2902
2899
  const cliInvocationId = _nullishCoalesce(_chunkQJBJZVG6js.getToolExecuteInvocationId.call(void 0, ), () => ( _chunkQJBJZVG6js.beginToolExecuteCommand.call(void 0, )));
2903
- const client = new (0, _chunk4Y5UDYQKjs.DeeplineClient)();
2900
+ const client = new (0, _chunk44SHFHA3js.DeeplineClient)();
2904
2901
  let metadata;
2905
2902
  try {
2906
2903
  metadata = await _chunkQJBJZVG6js.runToolExecuteStage.call(void 0,
@@ -2915,7 +2912,7 @@ async function executeTool(toolId, options) {
2915
2912
  );
2916
2913
  if (play) {
2917
2914
  if (wantsJson) {
2918
- _chunkMKFHZDBOjs.printJsonError.call(void 0,
2915
+ _chunkBO3ADIBVjs.printJsonError.call(void 0,
2919
2916
  new Error(playAliasToolErrorMessage(parsed.toolId, play))
2920
2917
  );
2921
2918
  } else {
@@ -2928,7 +2925,7 @@ async function executeTool(toolId, options) {
2928
2925
  }
2929
2926
  if (isPlayLikeTool(metadata)) {
2930
2927
  if (wantsJson) {
2931
- _chunkMKFHZDBOjs.printJsonError.call(void 0,
2928
+ _chunkBO3ADIBVjs.printJsonError.call(void 0,
2932
2929
  new Error(
2933
2930
  playLikeToolExecuteErrorMessage(
2934
2931
  parsed.toolId,
@@ -2964,9 +2961,9 @@ async function executeTool(toolId, options) {
2964
2961
  responseIntent,
2965
2962
  ...idempotencyKey ? { idempotencyKey } : {},
2966
2963
  ...parsed.recoveryTimeoutMs !== void 0 ? { recoveryTimeoutMs: parsed.recoveryTimeoutMs } : {},
2967
- searchRef: _chunkA4OX52RVjs.recentSearchRef.call(void 0, ),
2964
+ searchRef: _chunkC553OZGGjs.recentSearchRef.call(void 0, ),
2968
2965
  cliInvocationId,
2969
- onResponseReceived: _chunkMX53GIOBjs.recordApiResponse
2966
+ onResponseReceived: _chunk2JRRXXTAjs.recordApiResponse
2970
2967
  }).catch((error) => {
2971
2968
  const guidanceLines = toolGuidanceLines(metadata.guidance);
2972
2969
  if (guidanceLines.length > 0) {
@@ -2985,10 +2982,10 @@ async function executeTool(toolId, options) {
2985
2982
  "result formatting",
2986
2983
  () => {
2987
2984
  const listExtractorPaths = listExtractorPathsFromUsageGuidance(metadata);
2988
- const listConversion2 = _chunkNXDRDJ4Kjs.tryConvertToList.call(void 0, rawResponse, {
2985
+ const listConversion2 = _chunkE5UD3JDQjs.tryConvertToList.call(void 0, rawResponse, {
2989
2986
  listExtractorPaths
2990
2987
  });
2991
- const summary2 = _chunkNXDRDJ4Kjs.extractSummaryFields.call(void 0, rawResponse);
2988
+ const summary2 = _chunkE5UD3JDQjs.extractSummaryFields.call(void 0, rawResponse);
2992
2989
  const baseEnvelope2 = buildToolExecuteBaseEnvelope({
2993
2990
  toolId: parsed.toolId,
2994
2991
  params: parsed.params,
@@ -3004,16 +3001,16 @@ async function executeTool(toolId, options) {
3004
3001
  );
3005
3002
  const executeExitCode = toolExecuteExitCode(baseEnvelope);
3006
3003
  const delivered = await _chunkQJBJZVG6js.runToolExecuteStage.call(void 0, "output delivery", () => {
3007
- if (!parsed.outPath && (parsed.outputFormat === "json" || parsed.outputFormat === "auto" && _chunkMKFHZDBOjs.shouldEmitJson.call(void 0, ))) {
3008
- _chunkMKFHZDBOjs.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 });
3009
3006
  return true;
3010
3007
  }
3011
3008
  if (parsed.outputFormat === "json_file") {
3012
- const jsonPath = _chunkNXDRDJ4Kjs.writeJsonOutputFile.call(void 0,
3009
+ const jsonPath = _chunkE5UD3JDQjs.writeJsonOutputFile.call(void 0,
3013
3010
  rawResponse,
3014
3011
  `payload_${parsed.toolId}`
3015
3012
  );
3016
- _chunkMKFHZDBOjs.printCommandEnvelope.call(void 0,
3013
+ _chunkBO3ADIBVjs.printCommandEnvelope.call(void 0,
3017
3014
  {
3018
3015
  ...baseEnvelope,
3019
3016
  local: {
@@ -3035,33 +3032,33 @@ async function executeTool(toolId, options) {
3035
3032
  `${parsed.toolId} did not expose row-shaped output to write as CSV. ${inspection.inspectDescription} Run: ${inspection.inspect}`
3036
3033
  );
3037
3034
  if (wantsJson) {
3038
- _chunkMKFHZDBOjs.printJsonError.call(void 0, error);
3035
+ _chunkBO3ADIBVjs.printJsonError.call(void 0, error);
3039
3036
  } else {
3040
3037
  console.error(error.message);
3041
3038
  }
3042
3039
  return false;
3043
3040
  }
3044
3041
  if (parsed.outputFormat === "csv" || parsed.outputFormat === "csv_file") {
3045
- const jsonPath = _chunkNXDRDJ4Kjs.writeJsonOutputFile.call(void 0,
3042
+ const jsonPath = _chunkE5UD3JDQjs.writeJsonOutputFile.call(void 0,
3046
3043
  rawResponse,
3047
3044
  `payload_${parsed.toolId}`
3048
3045
  );
3049
- _chunkMKFHZDBOjs.printCommandEnvelope.call(void 0,
3046
+ _chunkBO3ADIBVjs.printCommandEnvelope.call(void 0,
3050
3047
  {
3051
3048
  ...baseEnvelope,
3052
3049
  local: {
3053
3050
  payload_file: jsonPath
3054
3051
  }
3055
3052
  },
3056
- { json: parsed.outputFormat === "csv_file" || _chunkMKFHZDBOjs.shouldEmitJson.call(void 0, ) }
3053
+ { json: parsed.outputFormat === "csv_file" || wantsJson }
3057
3054
  );
3058
3055
  return true;
3059
3056
  }
3060
- _chunkMKFHZDBOjs.printCommandEnvelope.call(void 0, baseEnvelope, { json: false });
3057
+ _chunkBO3ADIBVjs.printCommandEnvelope.call(void 0, baseEnvelope, { json: false });
3061
3058
  return true;
3062
3059
  }
3063
- const rowOutput = _chunkNXDRDJ4Kjs.projectRowOutput.call(void 0, listConversion);
3064
- const csv = _chunkNXDRDJ4Kjs.writeCsvOutputFile.call(void 0,
3060
+ const rowOutput = _chunkE5UD3JDQjs.projectRowOutput.call(void 0, listConversion);
3061
+ const csv = _chunkE5UD3JDQjs.writeCsvOutputFile.call(void 0,
3065
3062
  listConversion.rows,
3066
3063
  `${parsed.toolId}_output`,
3067
3064
  parsed.outPath ? { outPath: parsed.outPath } : void 0
@@ -3081,7 +3078,7 @@ async function executeTool(toolId, options) {
3081
3078
  seededScript
3082
3079
  });
3083
3080
  if (parsed.outputFormat === "csv_file") {
3084
- _chunkMKFHZDBOjs.printCommandEnvelope.call(void 0, materializedEnvelope, { json: true });
3081
+ _chunkBO3ADIBVjs.printCommandEnvelope.call(void 0, materializedEnvelope, { json: true });
3085
3082
  return true;
3086
3083
  }
3087
3084
  if (parsed.outPath) {
@@ -3089,7 +3086,7 @@ async function executeTool(toolId, options) {
3089
3086
  toolId: parsed.toolId,
3090
3087
  idempotencyKey
3091
3088
  });
3092
- _chunkMKFHZDBOjs.printCommandEnvelope.call(void 0, materializedEnvelope, {
3089
+ _chunkBO3ADIBVjs.printCommandEnvelope.call(void 0, materializedEnvelope, {
3093
3090
  json: wantsJson,
3094
3091
  text: `Wrote ${csv.rowCount} row(s) to ${csv.path}
3095
3092
  inspect: ${inspection.inspect}
@@ -3098,7 +3095,7 @@ inspect: ${inspection.inspect}
3098
3095
  return true;
3099
3096
  }
3100
3097
  if (parsed.noPreview) {
3101
- _chunkMKFHZDBOjs.printCommandEnvelope.call(void 0,
3098
+ _chunkBO3ADIBVjs.printCommandEnvelope.call(void 0,
3102
3099
  {
3103
3100
  ...materializedEnvelope,
3104
3101
  local: {
@@ -3106,12 +3103,14 @@ inspect: ${inspection.inspect}
3106
3103
  output_path: csv.path
3107
3104
  }
3108
3105
  },
3109
- { json: _chunkMKFHZDBOjs.shouldEmitJson.call(void 0, ), text: `${csv.path}
3106
+ { json: wantsJson, text: `${csv.path}
3110
3107
  ` }
3111
3108
  );
3112
3109
  return true;
3113
3110
  }
3114
- _chunkMKFHZDBOjs.printCommandEnvelope.call(void 0, materializedEnvelope, { json: false });
3111
+ _chunkBO3ADIBVjs.printCommandEnvelope.call(void 0, materializedEnvelope, {
3112
+ json: wantsJson && parsed.outputFormat !== "csv"
3113
+ });
3115
3114
  return true;
3116
3115
  });
3117
3116
  if (delivered) {