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 @@ import {
4
4
  recordApiResponse,
5
5
  schemaField,
6
6
  schemaFields
7
- } from "./chunk-Z6B4UPM4.mjs";
7
+ } from "./chunk-3GK3SH3G.mjs";
8
8
  import {
9
9
  shellQuote
10
10
  } from "./chunk-OVDNJAJN.mjs";
@@ -13,7 +13,7 @@ import {
13
13
  observedMaxText,
14
14
  recentSearchRef,
15
15
  registerDeprecatedSearchCommand
16
- } from "./chunk-RIT4UED6.mjs";
16
+ } from "./chunk-SENW5J4O.mjs";
17
17
  import {
18
18
  extractSummaryFields,
19
19
  projectRowOutput,
@@ -21,14 +21,14 @@ import {
21
21
  tryConvertToList,
22
22
  writeCsvOutputFile,
23
23
  writeJsonOutputFile
24
- } from "./chunk-MIMASXO4.mjs";
24
+ } from "./chunk-JB6ERQUV.mjs";
25
25
  import {
26
26
  playToolListGetterMode
27
27
  } from "./chunk-7E66A24V.mjs";
28
28
  import {
29
29
  DeeplineClient,
30
30
  validateExecutionIdempotencyKey
31
- } from "./chunk-VUYCB2RY.mjs";
31
+ } from "./chunk-KBJO7HIF.mjs";
32
32
  import {
33
33
  beginToolExecuteCommand,
34
34
  getToolExecuteInvocationId,
@@ -42,11 +42,11 @@ import {
42
42
  printJsonError,
43
43
  renderCommandEnvelopeText,
44
44
  shouldEmitJson
45
- } from "./chunk-EJC3INZD.mjs";
45
+ } from "./chunk-DOXAN2I7.mjs";
46
46
  import {
47
47
  resolveConfig,
48
48
  sdkCliStateDirPath
49
- } from "./chunk-5IXQ6VP4.mjs";
49
+ } from "./chunk-KKRRIFR3.mjs";
50
50
  import {
51
51
  DeeplineError
52
52
  } from "./chunk-NXGCO4JB.mjs";
@@ -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
  {
@@ -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,14 +821,14 @@ 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,
@@ -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 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 import("./describe-L6LADCXI.mjs");
943
+ const { describeAnything } = await import("./describe-GZIRANUZ.mjs");
940
944
  process.exitCode = await describeAnything(
941
945
  toolId,
942
946
  { ...options, kinds: ["tools", "monitors"], fetchedTool: metadata },
@@ -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(
@@ -1060,14 +1063,28 @@ 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
+ printCommandEnvelope(
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)
@@ -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;
@@ -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,7 +1641,26 @@ 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)) {
@@ -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,6 +1953,8 @@ 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");
@@ -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 ${shellQuote(JSON.stringify(getActorRunPayload))} --json`,
2415
+ getActorRun: `deepline tools execute ${getActorRunTool} --input ${shellQuote(JSON.stringify(getActorRunPayload))}`,
2378
2416
  ...getDatasetItemsTool && Object.keys(getDatasetItemsPayload).length > 0 ? {
2379
- getDatasetItems: `deepline tools execute ${getDatasetItemsTool} --input ${shellQuote(JSON.stringify(getDatasetItemsPayload))} --json`
2417
+ getDatasetItems: `deepline tools execute ${getDatasetItemsTool} --input ${shellQuote(JSON.stringify(getDatasetItemsPayload))}`
2380
2418
  } : {}
2381
2419
  };
2382
2420
  }
@@ -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 ${shellQuote(input.idempotencyKey)} --json` : `deepline describe ${shellQuote(input.toolId)} --json`,
2692
+ inspect: input.idempotencyKey !== void 0 ? `deepline executions get --idempotency-key ${shellQuote(input.idempotencyKey)}` : `deepline describe ${shellQuote(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 ${shellQuote(envelope.job_id)} --json` : null;
2720
+ const billingLookup = typeof envelope.job_id === "string" && envelope.job_id.trim() ? `deepline billing usage --request-id ${shellQuote(envelope.job_id)}` : null;
2683
2721
  const inspection = toolExecutionInspection(input);
2684
2722
  const actions = input.listConversion ? [
2685
2723
  {
@@ -2846,7 +2884,7 @@ function buildToolExecuteRowArtifactEnvelope(input) {
2846
2884
  }
2847
2885
  async function executeTool(toolId, options) {
2848
2886
  const output = toolExecuteJsonOption(options.json);
2849
- const wantsJson = shouldEmitJson(output.requested);
2887
+ const wantsJson = shouldEmitJson(output.requested) || (options.outputFormat ?? "auto").trim().toLowerCase() !== "csv";
2850
2888
  let parsed;
2851
2889
  try {
2852
2890
  parsed = parseExecuteOptions(toolId, options, output);
@@ -2963,7 +3001,7 @@ async function executeTool(toolId, options) {
2963
3001
  );
2964
3002
  const executeExitCode = toolExecuteExitCode(baseEnvelope);
2965
3003
  const delivered = await runToolExecuteStage("output delivery", () => {
2966
- if (!parsed.outPath && (parsed.outputFormat === "json" || parsed.outputFormat === "auto" && shouldEmitJson())) {
3004
+ if (!parsed.outPath && (parsed.outputFormat === "json" || parsed.outputFormat === "auto" && wantsJson)) {
2967
3005
  printCommandEnvelope(baseEnvelope, { json: true });
2968
3006
  return true;
2969
3007
  }
@@ -3012,7 +3050,7 @@ async function executeTool(toolId, options) {
3012
3050
  payload_file: jsonPath
3013
3051
  }
3014
3052
  },
3015
- { json: parsed.outputFormat === "csv_file" || shouldEmitJson() }
3053
+ { json: parsed.outputFormat === "csv_file" || wantsJson }
3016
3054
  );
3017
3055
  return true;
3018
3056
  }
@@ -3065,12 +3103,14 @@ inspect: ${inspection.inspect}
3065
3103
  output_path: csv.path
3066
3104
  }
3067
3105
  },
3068
- { json: shouldEmitJson(), text: `${csv.path}
3106
+ { json: wantsJson, text: `${csv.path}
3069
3107
  ` }
3070
3108
  );
3071
3109
  return true;
3072
3110
  }
3073
- printCommandEnvelope(materializedEnvelope, { json: false });
3111
+ printCommandEnvelope(materializedEnvelope, {
3112
+ json: wantsJson && parsed.outputFormat !== "csv"
3113
+ });
3074
3114
  return true;
3075
3115
  });
3076
3116
  if (delivered) {
@@ -14,7 +14,7 @@ var _chunkXNYIZMNQjs = require('./chunk-XNYIZMNQ.js');
14
14
  var _chunk7P5AA3SNjs = require('./chunk-7P5AA3SN.js');
15
15
 
16
16
 
17
- var _chunkKR5NWPWIjs = require('./chunk-KR5NWPWI.js');
17
+ var _chunkNMDNUOVIjs = require('./chunk-NMDNUOVI.js');
18
18
 
19
19
  // src/errors.ts
20
20
  var CustomerDbQueryOutcomeUnknownError = (_class = class extends _chunk7P5AA3SNjs.DeeplineError {
@@ -743,9 +743,9 @@ function resolveCliCommandContext(inputConfig, requestedScope) {
743
743
  }
744
744
 
745
745
  // src/version.ts
746
- var SDK_VERSION = _chunkKR5NWPWIjs.SDK_RELEASE.version;
747
- var SDK_API_MAJOR = _chunkKR5NWPWIjs.SDK_RELEASE.contracts.api.currentMajor;
748
- var SDK_API_CONTRACT = _nullishCoalesce(_chunkKR5NWPWIjs.SDK_RELEASE.contracts.api.legacyWireIds[0], () => ( `api-v${SDK_API_MAJOR}`));
746
+ var SDK_VERSION = _chunkNMDNUOVIjs.SDK_RELEASE.version;
747
+ var SDK_API_MAJOR = _chunkNMDNUOVIjs.SDK_RELEASE.contracts.api.currentMajor;
748
+ var SDK_API_CONTRACT = _nullishCoalesce(_chunkNMDNUOVIjs.SDK_RELEASE.contracts.api.legacyWireIds[0], () => ( `api-v${SDK_API_MAJOR}`));
749
749
 
750
750
  // src/agent-runtime.ts
751
751
 
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  getAuthedHttpClient,
3
3
  printCommandEnvelope
4
- } from "./chunk-EJC3INZD.mjs";
4
+ } from "./chunk-DOXAN2I7.mjs";
5
5
  import {
6
6
  agentSessionIdFromEnvironment
7
- } from "./chunk-5IXQ6VP4.mjs";
7
+ } from "./chunk-KKRRIFR3.mjs";
8
8
 
9
9
  // src/cli/commands/sessions.ts
10
10
  import {
@@ -702,8 +702,8 @@ Notes:
702
702
  or file to Deepline. render writes a local HTML viewer.
703
703
 
704
704
  Examples:
705
- deepline sessions send --current-session --json
706
- deepline sessions send --agent codex --current-session --json
705
+ deepline sessions send --current-session
706
+ deepline sessions send --agent codex --current-session
707
707
  deepline sessions send --session-id 5a3bfb97-a2d9-49d9-82c6-52ccc03dadca
708
708
  deepline sessions render --current-session --output session.html
709
709
  `
@@ -715,11 +715,11 @@ function registerSessionSendRenderCommands(parent, familyName) {
715
715
  "after",
716
716
  `
717
717
  Examples:
718
- deepline ${familyName} send --current-session --json
719
- deepline ${familyName} send --agent codex --current-session --json
718
+ deepline ${familyName} send --current-session
719
+ deepline ${familyName} send --agent codex --current-session
720
720
  deepline ${familyName} send --session-id 5a3bfb97-a2d9-49d9-82c6-52ccc03dadca --label "pilot run"
721
- deepline ${familyName} send --current-session --rating poor --json # tag the session as one that went poorly
722
- deepline ${familyName} send --file ./debug.log --json
721
+ deepline ${familyName} send --current-session --rating poor # tag the session as one that went poorly
722
+ deepline ${familyName} send --file ./debug.log
723
723
  `
724
724
  ).option(
725
725
  "--session-id <uuid>",
@@ -741,7 +741,7 @@ Examples:
741
741
  ).option("--file <path>", "Upload a raw local file instead of a session").option(
742
742
  "--rating <good|poor|neutral>",
743
743
  "Tag the upload by outcome, not tone, so Deepline can filter sessions: good = the user's goal was met without product problems; poor = the goal was missed, or a product failure, bug, or avoidable friction (including a substantial workaround) got in the way; neutral = partly met or unclear."
744
- ).option("--json", "Emit JSON output. Also automatic when stdout is piped").action(handleSessionsSend);
744
+ ).option("--json", "Emit JSON output").action(handleSessionsSend);
745
745
  parent.command("render").description("Render local session transcript(s) to an HTML viewer.").addHelpText(
746
746
  "after",
747
747
  `
@@ -749,7 +749,7 @@ Examples:
749
749
  deepline ${familyName} render --current-session
750
750
  deepline ${familyName} render --agent codex --current-session
751
751
  deepline ${familyName} render --session-id 5a3bfb97-a2d9-49d9-82c6-52ccc03dadca --output session.html
752
- deepline ${familyName} render --current-session --auto-refresh 5 --json
752
+ deepline ${familyName} render --current-session --auto-refresh 5
753
753
  `
754
754
  ).option(
755
755
  "--session-id <uuid>",
@@ -768,7 +768,7 @@ Examples:
768
768
  ).option(
769
769
  "--current-session",
770
770
  "Use the calling agent's session, else the newest in this directory"
771
- ).option("--auto-refresh <seconds>", "Add a browser auto-refresh interval").option("-o, --output <path>", "Output HTML path").option("--json", "Emit JSON output. Also automatic when stdout is piped").action(handleSessionsRender);
771
+ ).option("--auto-refresh <seconds>", "Add a browser auto-refresh interval").option("-o, --output <path>", "Output HTML path").option("--json", "Emit JSON output").action(handleSessionsRender);
772
772
  }
773
773
 
774
774
  export {
@@ -3,7 +3,7 @@
3
3
 
4
4
 
5
5
 
6
- var _chunk2AENFV3Bjs = require('./chunk-2AENFV3B.js');
6
+ var _chunkA7X7KFXXjs = require('./chunk-A7X7KFXX.js');
7
7
 
8
8
 
9
9
  var _chunk7P5AA3SNjs = require('./chunk-7P5AA3SN.js');
@@ -60,7 +60,7 @@ function parseJsonFields(args, surface) {
60
60
  const command = surface === "get" ? "runs get" : `plays ${surface}`;
61
61
  const quotedTarget = `'${target.replace(/'/g, "'\\''")}'`;
62
62
  throw new (0, _chunk7P5AA3SNjs.DeeplineError)(
63
- `--json diagnostics requires --full. For inspection, use: deepline ${surface === "run" ? "runs get <run-id>" : `${command} ${quotedTarget}`} --full --json ${path}`,
63
+ `--json diagnostics requires --full. For inspection, use: deepline ${surface === "run" ? "runs get <run-id>" : `${command} ${quotedTarget}`} --full`,
64
64
  void 0,
65
65
  "INVALID_ARGUMENT"
66
66
  );
@@ -225,8 +225,8 @@ var BROWSER_OPEN_COOLDOWN_MS = 3e4;
225
225
  var SAME_URL_BROWSER_OPEN_COOLDOWN_MS = 5 * 6e4;
226
226
  var defaultBrowserCommandRunner = childProcess;
227
227
  function getAuthedHttpClient() {
228
- const config = _chunk2AENFV3Bjs.resolveConfig.call(void 0, );
229
- return { config, http: new (0, _chunk2AENFV3Bjs.HttpClient)(config) };
228
+ const config = _chunkA7X7KFXXjs.resolveConfig.call(void 0, );
229
+ return { config, http: new (0, _chunkA7X7KFXXjs.HttpClient)(config) };
230
230
  }
231
231
  function stableOsUserId() {
232
232
  try {
@@ -566,7 +566,7 @@ function collectLocalEnvInfo() {
566
566
  os: `${process.platform} ${process.arch}`,
567
567
  node_version: process.version,
568
568
  home_dir: homeDir,
569
- agent_runtime: _chunk2AENFV3Bjs.detectAgentRuntime.call(void 0, )
569
+ agent_runtime: _chunkA7X7KFXXjs.detectAgentRuntime.call(void 0, )
570
570
  };
571
571
  const env = process.env;
572
572
  const optional = {
@@ -813,9 +813,9 @@ function markdownTableFromRows(rows, preferredColumns = []) {
813
813
  }
814
814
  function withAgentCommandContext(value) {
815
815
  const valueRecord = value !== null && typeof value === "object" && !Array.isArray(value) ? value : null;
816
- return _chunk2AENFV3Bjs.detectAgentRuntime.call(void 0, ) !== "unknown" && valueRecord && !Object.prototype.hasOwnProperty.call(valueRecord, "command_context") ? {
816
+ return _chunkA7X7KFXXjs.detectAgentRuntime.call(void 0, ) !== "unknown" && valueRecord && !Object.prototype.hasOwnProperty.call(valueRecord, "command_context") ? {
817
817
  ...valueRecord,
818
- command_context: _chunk2AENFV3Bjs.resolveCliCommandContext.call(void 0, )
818
+ command_context: _chunkA7X7KFXXjs.resolveCliCommandContext.call(void 0, )
819
819
  } : value;
820
820
  }
821
821
  function printJson(value, fields) {
@@ -903,7 +903,7 @@ function printJsonError(error) {
903
903
  printJson(errorToJsonPayload(error));
904
904
  }
905
905
  function shouldEmitJson(explicitJson = false) {
906
- return explicitJson || !process.stdout.isTTY;
906
+ return explicitJson || process.argv.includes("--json");
907
907
  }
908
908
  function argsWantJson(args) {
909
909
  return shouldEmitJson(args.includes("--json"));