deepline 0.3.392 → 0.3.393

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 (145) hide show
  1. package/dist/bundling-sources/sdk/src/client.ts +156 -24
  2. package/dist/bundling-sources/sdk/src/compat.ts +9 -0
  3. package/dist/bundling-sources/sdk/src/http.ts +5 -1
  4. package/dist/bundling-sources/sdk/src/index.ts +5 -0
  5. package/dist/bundling-sources/sdk/src/plays/run-request.ts +182 -6
  6. package/dist/bundling-sources/sdk/src/release.ts +4 -1
  7. package/dist/bundling-sources/sdk/src/types.ts +13 -0
  8. package/dist/bundling-sources/shared_libs/integration-contracts/request-warnings.ts +64 -0
  9. package/dist/bundling-sources/shared_libs/play-data-plane/runtime-sheet-storage-contract.ts +315 -0
  10. package/dist/bundling-sources/shared_libs/play-runtime/async-operation.ts +41 -8
  11. package/dist/bundling-sources/shared_libs/play-runtime/context.ts +418 -44
  12. package/dist/bundling-sources/shared_libs/play-runtime/ctx-types.ts +36 -3
  13. package/dist/bundling-sources/shared_libs/play-runtime/durable-invocation-fence.ts +36 -0
  14. package/dist/bundling-sources/shared_libs/play-runtime/map-execution-frame.ts +11 -3
  15. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/projection/gateway-adapter.ts +1 -0
  16. package/dist/bundling-sources/shared_libs/play-runtime/play-runtime-semantics.ts +19 -1
  17. package/dist/bundling-sources/shared_libs/play-runtime/run-identity.ts +26 -0
  18. package/dist/bundling-sources/shared_libs/play-runtime/runner-app/index.ts +158 -10
  19. package/dist/bundling-sources/shared_libs/play-runtime/runtime-api.ts +235 -2
  20. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-runtime-worker.ts +92 -58
  21. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-pool.ts +7 -1
  22. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-progress.ts +30 -7
  23. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres.ts +1161 -316
  24. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-event-search.ts +28 -15
  25. package/dist/bundling-sources/shared_libs/play-runtime/tool-execute-retry-policy.ts +24 -3
  26. package/dist/bundling-sources/shared_libs/play-runtime/tool-result.ts +31 -0
  27. package/dist/bundling-sources/shared_libs/plays/authoring-contract.ts +37 -4
  28. package/dist/bundling-sources/shared_libs/plays/dataset.ts +172 -79
  29. package/dist/bundling-sources/shared_libs/plays/static-pipeline.ts +173 -1
  30. package/dist/cli/{auth-6JSA2ZCW.mjs → auth-5PXHA232.mjs} +4 -4
  31. package/dist/cli/auth-P3MVDTXM.js +39 -0
  32. package/dist/cli/{billing-Q5BLQHIU.js → billing-JFB2XLSO.js} +101 -74
  33. package/dist/cli/{billing-MRRO643H.mjs → billing-Z2N7ZAGM.mjs} +32 -5
  34. package/dist/cli/{chunk-CVLM3WMJ.js → chunk-2HAD745V.js} +242 -183
  35. package/dist/cli/{chunk-HGYBEAQP.mjs → chunk-2LGC4EFT.mjs} +3 -3
  36. package/dist/cli/{chunk-A3APGZFP.mjs → chunk-4PT2VA3A.mjs} +2 -2
  37. package/dist/cli/{chunk-6DBOU7UH.js → chunk-4XX6443T.js} +176 -87
  38. package/dist/cli/{chunk-2QLML6G4.mjs → chunk-5KWKZIQR.mjs} +4 -4
  39. package/dist/cli/{chunk-2G7DXFHI.mjs → chunk-5PRVMXKB.mjs} +27 -2
  40. package/dist/cli/{chunk-DSWSEHRX.mjs → chunk-6I73X254.mjs} +1 -1
  41. package/dist/cli/{chunk-ZTACINO5.mjs → chunk-7HR7BGZL.mjs} +13 -3
  42. package/dist/cli/{chunk-BB3FNYFY.js → chunk-AARX5L4B.js} +2 -2
  43. package/dist/cli/{chunk-WMS5U6YB.js → chunk-CDFH2DYL.js} +20 -19
  44. package/dist/cli/{chunk-R3O2CZ4H.mjs → chunk-FQ6VHPW4.mjs} +2 -2
  45. package/dist/cli/{chunk-MU6M3URX.mjs → chunk-HLEESTCH.mjs} +1 -1
  46. package/dist/cli/{chunk-Q6EOHNRH.mjs → chunk-JI2B4RZP.mjs} +119 -6
  47. package/dist/cli/{chunk-2Q3GEFL4.mjs → chunk-KIYU2TGL.mjs} +2 -2
  48. package/dist/cli/{chunk-Y6VOGHF2.mjs → chunk-KZZC33PY.mjs} +0 -181
  49. package/dist/cli/{chunk-UCKJQG25.js → chunk-L2SYLGRP.js} +8 -8
  50. package/dist/cli/{chunk-2GAHHSLB.mjs → chunk-LMMEAMA7.mjs} +3 -2
  51. package/dist/cli/{chunk-YAZCDBXX.mjs → chunk-LZPCDB7U.mjs} +3 -2
  52. package/dist/cli/{chunk-RV6ALZIX.js → chunk-M7Y7JYZX.js} +32 -7
  53. package/dist/cli/{chunk-QGKPTBRR.js → chunk-MS6GUPBB.js} +3 -3
  54. package/dist/cli/{chunk-4SFPVW7A.js → chunk-OXNOAD6Y.js} +26 -26
  55. package/dist/cli/{chunk-JOFPQGXW.js → chunk-PTDECJGP.js} +50 -50
  56. package/dist/cli/{chunk-5O4B6AUN.js → chunk-PWSWAN7Q.js} +25 -2
  57. package/dist/cli/{chunk-YN6YA7ZZ.mjs → chunk-Q26LUSQ2.mjs} +79 -20
  58. package/dist/cli/{chunk-3VN4FTE3.js → chunk-RDXFGPJU.js} +1 -182
  59. package/dist/cli/{chunk-7E66A24V.mjs → chunk-RKMB3N7K.mjs} +25 -2
  60. package/dist/cli/{chunk-JSLPHFP7.js → chunk-RWHWF5ZJ.js} +3 -2
  61. package/dist/cli/{chunk-3FV4GBRK.mjs → chunk-STNYIMIV.mjs} +97 -8
  62. package/dist/cli/chunk-UBKA33KY.mjs +310 -0
  63. package/dist/cli/{chunk-PAIMOGCM.js → chunk-UHNDVD3P.js} +125 -12
  64. package/dist/cli/{chunk-24VEN5PQ.mjs → chunk-UOGZUA24.mjs} +179 -17
  65. package/dist/cli/{chunk-T7OKJ2T6.js → chunk-VIQJIX2P.js} +73 -63
  66. package/dist/cli/{chunk-RIV2GS5E.js → chunk-VIWE6WRK.js} +627 -465
  67. package/dist/cli/{chunk-EY7RFC6A.js → chunk-W4WOMXR3.js} +15 -15
  68. package/dist/cli/chunk-XDVT3GOM.js +310 -0
  69. package/dist/cli/{chunk-2FQG2HU4.js → chunk-Z3OOZM5L.js} +8 -8
  70. package/dist/cli/{csv-E4QGUIGI.mjs → csv-KJWZHKCH.mjs} +3 -3
  71. package/dist/cli/{csv-26U5T24Z.js → csv-P3Z3YE7H.js} +12 -12
  72. package/dist/cli/{db-JTRJIAQW.mjs → db-NCM4CQIS.mjs} +6 -5
  73. package/dist/cli/{db-QHBFLMVL.js → db-NUZGJNQC.js} +31 -30
  74. package/dist/cli/{describe-E3DE3ZK3.mjs → describe-WT6MM2GO.mjs} +17 -16
  75. package/dist/cli/{describe-FDV2V74F.js → describe-YGSEN5WC.js} +24 -23
  76. package/dist/cli/{executions-VZYOGVQY.js → executions-PCOLHN7Q.js} +8 -7
  77. package/dist/cli/{executions-B3GTNPRE.mjs → executions-XS2IPJ4W.mjs} +6 -5
  78. package/dist/cli/{feedback-CR55FJA2.js → feedback-4MSH7TFU.js} +7 -7
  79. package/dist/cli/{feedback-4CEBR3OV.mjs → feedback-CCLTS5SV.mjs} +3 -3
  80. package/dist/cli/{git-NM2PHHZ4.mjs → git-K2DHPMPC.mjs} +4 -4
  81. package/dist/cli/git-RNM45FX4.js +23 -0
  82. package/dist/cli/index.js +96 -92
  83. package/dist/cli/index.mjs +46 -42
  84. package/dist/cli/{legacy-noops-A7MSW5ND.mjs → legacy-noops-B5S4AR3P.mjs} +4 -4
  85. package/dist/cli/{legacy-noops-ZUA4YFIH.js → legacy-noops-GPNOPFXV.js} +7 -7
  86. package/dist/cli/{monitors-NVPRQYP3.mjs → monitors-JLMAIPRG.mjs} +6 -5
  87. package/dist/cli/{monitors-ZE3TLZ4H.js → monitors-ZAWD7NSN.js} +87 -86
  88. package/dist/cli/{org-U7A6DV5D.js → org-P2KN4CES.js} +66 -65
  89. package/dist/cli/{org-KUBILNQV.mjs → org-T3JTHP4G.mjs} +6 -5
  90. package/dist/cli/{play-HRDXQ4QE.mjs → play-NK6BLRGL.mjs} +11 -10
  91. package/dist/cli/play-PDXR6JFB.js +158 -0
  92. package/dist/cli/{providers-OHIWI453.mjs → providers-3NQRA7IT.mjs} +6 -5
  93. package/dist/cli/{providers-VD6YTVQZ.js → providers-5QRZN3DT.js} +9 -8
  94. package/dist/cli/{quickstart-UBV2FONF.mjs → quickstart-PIA2JGPV.mjs} +3 -3
  95. package/dist/cli/{quickstart-ETTCWPA4.js → quickstart-R7NUZGNW.js} +5 -5
  96. package/dist/cli/run-identity-G257GQED.js +25 -0
  97. package/dist/cli/run-identity-MRNCEGV2.mjs +25 -0
  98. package/dist/cli/{search-F44IZRT7.mjs → search-AIDIIGLY.mjs} +7 -6
  99. package/dist/cli/search-QRWL7MFM.js +27 -0
  100. package/dist/cli/{secrets-CAEMRORF.js → secrets-BT3PGMWN.js} +15 -14
  101. package/dist/cli/{secrets-R6XOJZKU.mjs → secrets-OQNHL45O.mjs} +6 -5
  102. package/dist/cli/{sessions-6GC7OFTT.js → sessions-EYXWOSWK.js} +5 -5
  103. package/dist/cli/{sessions-RLN6UQS3.mjs → sessions-SF7WJPJP.mjs} +4 -4
  104. package/dist/cli/{settings-DPNVUAV2.js → settings-BA3GHBOD.js} +76 -75
  105. package/dist/cli/{settings-KIPAMRPP.mjs → settings-Y57JTFDD.mjs} +9 -8
  106. package/dist/cli/{setup-TU2F7PU5.mjs → setup-7GR5GBHA.mjs} +6 -6
  107. package/dist/cli/{setup-DTL3L5SG.js → setup-RERXYC66.js} +41 -41
  108. package/dist/cli/{skills-UV5MYJ46.mjs → skills-SJWIQAV5.mjs} +4 -4
  109. package/dist/cli/skills-V7EY75HB.js +28 -0
  110. package/dist/cli/tools-H5HLBCHH.js +41 -0
  111. package/dist/cli/{tools-QRRNDCQ7.mjs → tools-ZF3JXPNL.mjs} +10 -9
  112. package/dist/cli/update-472HA3LT.js +28 -0
  113. package/dist/cli/{update-4426TF35.mjs → update-FFFYQAOJ.mjs} +6 -6
  114. package/dist/cli/{workflow-HNLOVISB.js → workflow-SZJVQH4T.js} +17 -16
  115. package/dist/cli/{workflow-N4U5VLZ3.mjs → workflow-XVFEEGAS.mjs} +7 -6
  116. package/dist/{client-e6Qh5ZIg.d.mts → client-DU5dtHDy.d.mts} +153 -4
  117. package/dist/{client-Uxuy-xQ2.d.ts → client-mCE88hC4.d.ts} +153 -4
  118. package/dist/{compiler-manifest-CY2v8ab0.d.ts → compiler-manifest-DE4RdAiY.d.mts} +61 -1
  119. package/dist/{compiler-manifest-CY2v8ab0.d.mts → compiler-manifest-DE4RdAiY.d.ts} +61 -1
  120. package/dist/{index-B9fBZH1g.d.mts → index-BI6nWgaV.d.mts} +1 -1
  121. package/dist/{index-BZ6uzZJl.d.ts → index-Bi-f7HFT.d.ts} +1 -1
  122. package/dist/index.d.mts +5 -5
  123. package/dist/index.d.ts +5 -5
  124. package/dist/index.js +120 -29
  125. package/dist/index.mjs +111 -20
  126. package/dist/install-integrity.json +91 -86
  127. package/dist/plays/bundle-play-file.d.mts +3 -3
  128. package/dist/plays/bundle-play-file.d.ts +3 -3
  129. package/dist/plays/bundle-play-file.mjs +2 -2
  130. package/dist/plays/run-request.d.mts +2 -2
  131. package/dist/plays/run-request.d.ts +2 -2
  132. package/dist/plays/run-request.js +5 -2
  133. package/dist/plays/run-request.mjs +4 -1
  134. package/dist/release.d.mts +4 -1
  135. package/dist/release.d.ts +4 -1
  136. package/dist/release.js +2 -2
  137. package/dist/release.mjs +1 -1
  138. package/package.json +1 -1
  139. package/dist/cli/auth-67TAELQL.js +0 -39
  140. package/dist/cli/git-I5JTK6YU.js +0 -23
  141. package/dist/cli/play-A2V7YDU7.js +0 -157
  142. package/dist/cli/search-WWXMBVPH.js +0 -26
  143. package/dist/cli/skills-SWOSEZLB.js +0 -28
  144. package/dist/cli/tools-IL2YCDQ6.js +0 -40
  145. package/dist/cli/update-BERDPEYR.js +0 -28
@@ -1,14 +1,14 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunkCVLM3WMJjs = require('./chunk-CVLM3WMJ.js');
3
+ var _chunk2HAD745Vjs = require('./chunk-2HAD745V.js');
4
4
 
5
5
 
6
6
 
7
- var _chunkRV6ALZIXjs = require('./chunk-RV6ALZIX.js');
7
+ var _chunkM7Y7JYZXjs = require('./chunk-M7Y7JYZX.js');
8
8
 
9
9
 
10
10
 
11
- var _chunkWMS5U6YBjs = require('./chunk-WMS5U6YB.js');
11
+ var _chunkCDFH2DYLjs = require('./chunk-CDFH2DYL.js');
12
12
 
13
13
  // src/cli/commands/search.ts
14
14
  var _commander = require('commander');
@@ -18,7 +18,7 @@ var _fs = require('fs');
18
18
  var _path = require('path');
19
19
  var SEARCH_REF_TTL_MS = 15 * 6e4;
20
20
  function lastSearchPath() {
21
- return _path.join.call(void 0, _chunkWMS5U6YBjs.sdkCliStateDirPath.call(void 0, _chunkWMS5U6YBjs.resolveConfig.call(void 0, ).baseUrl), "last-search.json");
21
+ return _path.join.call(void 0, _chunkCDFH2DYLjs.sdkCliStateDirPath.call(void 0, _chunkCDFH2DYLjs.resolveConfig.call(void 0, ).baseUrl), "last-search.json");
22
22
  }
23
23
  function rememberSearchRef(searchRef) {
24
24
  try {
@@ -259,7 +259,7 @@ function searchRow(item) {
259
259
  }
260
260
  function renderSearchResults(result) {
261
261
  if (result.results.length === 0)
262
- return _chunkRV6ALZIXjs.renderCommandEnvelopeText.call(void 0, result);
262
+ return _chunkM7Y7JYZXjs.renderCommandEnvelopeText.call(void 0, result);
263
263
  const rows = result.results.map(searchRow);
264
264
  const kinds = new Set(rows.map((row) => row.kind));
265
265
  const onlyTools = kinds.size === 1 && kinds.has("tool");
@@ -283,7 +283,7 @@ function renderSearchResults(result) {
283
283
  actions: _optionalChain([render, 'optionalAccess', _11 => _11.actions])
284
284
  };
285
285
  const followUps = _optionalChain([remaining, 'access', _12 => _12.sections, 'optionalAccess', _13 => _13.length]) || _optionalChain([remaining, 'access', _14 => _14.actions, 'optionalAccess', _15 => _15.length]) ? `
286
- ${_chunkRV6ALZIXjs.renderCommandEnvelopeText.call(void 0, { render: remaining })}` : "";
286
+ ${_chunkM7Y7JYZXjs.renderCommandEnvelopeText.call(void 0, { render: remaining })}` : "";
287
287
  const notes = rows.flatMap(
288
288
  (row) => row.notes.map((note) => ` ${row.id}: ${note}`)
289
289
  );
@@ -360,7 +360,7 @@ async function runSearch(queryInput, options, types, exclude = []) {
360
360
  console.error(USAGE);
361
361
  return 1;
362
362
  }
363
- const { search_ref: searchRef, ...result } = await new (0, _chunkCVLM3WMJjs.DeeplineClient)().search({
363
+ const { search_ref: searchRef, ...result } = await new (0, _chunk2HAD745Vjs.DeeplineClient)().search({
364
364
  query,
365
365
  types,
366
366
  exclude,
@@ -374,7 +374,7 @@ async function runSearch(queryInput, options, types, exclude = []) {
374
374
  });
375
375
  if (searchRef) rememberSearchRef(searchRef);
376
376
  pointAtDescribe(result);
377
- _chunkRV6ALZIXjs.printCommandEnvelope.call(void 0, result, {
377
+ _chunkM7Y7JYZXjs.printCommandEnvelope.call(void 0, result, {
378
378
  json: options.json === true,
379
379
  text: renderSearchResults(result)
380
380
  });
@@ -14,7 +14,7 @@ import {
14
14
  } from "./chunk-NXGCO4JB.mjs";
15
15
  import {
16
16
  SDK_RELEASE
17
- } from "./chunk-YAZCDBXX.mjs";
17
+ } from "./chunk-LZPCDB7U.mjs";
18
18
 
19
19
  // src/errors.ts
20
20
  var CustomerDbQueryOutcomeUnknownError = class extends DeeplineError {
@@ -1739,7 +1739,8 @@ var HttpClient = class {
1739
1739
  applyExplicitHeaders(headers, { "Content-Type": "application/json" });
1740
1740
  }
1741
1741
  let lastError = null;
1742
- for (const candidateUrl of buildCandidateUrls(url)) {
1742
+ const candidateUrls = options?.exactUrlOnly ? [url] : buildCandidateUrls(url);
1743
+ for (const candidateUrl of candidateUrls) {
1743
1744
  try {
1744
1745
  const response = await fetch(candidateUrl, {
1745
1746
  method,
@@ -49,10 +49,11 @@ var SDK_RELEASE = {
49
49
  // getters keep their established compatibility behavior.
50
50
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
51
51
  // 0.3.90 is the first deliberately versioned SDK release for API v3.
52
- version: "0.3.392",
52
+ version: "0.3.393",
53
53
  updateSummary: "Play grep now returns concise results with the matched fields and terms. Automatic CLI updates are enabled by default; use `deepline settings autoupdate off` to opt out, `deepline settings autoupdate on` to re-enable updates, or `deepline settings autoupdate pin <version>` to hold an exact release.",
54
54
  packageCapabilities: {
55
- updatePreferences: 1
55
+ updatePreferences: 1,
56
+ skillsGuidance: 1
56
57
  },
57
58
  contracts: {
58
59
  api: {
@@ -3,7 +3,8 @@
3
3
 
4
4
 
5
5
 
6
- var _chunkWMS5U6YBjs = require('./chunk-WMS5U6YB.js');
6
+ var _chunkCDFH2DYLjs = require('./chunk-CDFH2DYL.js');
7
+
7
8
 
8
9
 
9
10
  var _chunk7P5AA3SNjs = require('./chunk-7P5AA3SN.js');
@@ -225,8 +226,8 @@ var BROWSER_OPEN_COOLDOWN_MS = 3e4;
225
226
  var SAME_URL_BROWSER_OPEN_COOLDOWN_MS = 5 * 6e4;
226
227
  var defaultBrowserCommandRunner = childProcess;
227
228
  function getAuthedHttpClient() {
228
- const config = _chunkWMS5U6YBjs.resolveConfig.call(void 0, );
229
- return { config, http: new (0, _chunkWMS5U6YBjs.HttpClient)(config) };
229
+ const config = _chunkCDFH2DYLjs.resolveConfig.call(void 0, );
230
+ return { config, http: new (0, _chunkCDFH2DYLjs.HttpClient)(config) };
230
231
  }
231
232
  function stableOsUserId() {
232
233
  try {
@@ -566,7 +567,7 @@ function collectLocalEnvInfo() {
566
567
  os: `${process.platform} ${process.arch}`,
567
568
  node_version: process.version,
568
569
  home_dir: homeDir,
569
- agent_runtime: _chunkWMS5U6YBjs.detectAgentRuntime.call(void 0, )
570
+ agent_runtime: _chunkCDFH2DYLjs.detectAgentRuntime.call(void 0, )
570
571
  };
571
572
  const env = process.env;
572
573
  const optional = {
@@ -813,9 +814,9 @@ function markdownTableFromRows(rows, preferredColumns = []) {
813
814
  }
814
815
  function withAgentCommandContext(value) {
815
816
  const valueRecord = value !== null && typeof value === "object" && !Array.isArray(value) ? value : null;
816
- return _chunkWMS5U6YBjs.detectAgentRuntime.call(void 0, ) !== "unknown" && valueRecord && !Object.prototype.hasOwnProperty.call(valueRecord, "command_context") ? {
817
+ return _chunkCDFH2DYLjs.detectAgentRuntime.call(void 0, ) !== "unknown" && valueRecord && !Object.prototype.hasOwnProperty.call(valueRecord, "command_context") ? {
817
818
  ...valueRecord,
818
- command_context: _chunkWMS5U6YBjs.resolveCliCommandContext.call(void 0, )
819
+ command_context: _chunkCDFH2DYLjs.resolveCliCommandContext.call(void 0, )
819
820
  } : value;
820
821
  }
821
822
  function printJson(value, fields) {
@@ -828,8 +829,30 @@ function printCompactJson(value) {
828
829
  process.stdout.write(`${JSON.stringify(withAgentCommandContext(value))}
829
830
  `);
830
831
  }
832
+ function cliToolExecutionFailure(error) {
833
+ const failure = _chunk7P5AA3SNjs.serializeToolExecutionFailure.call(void 0, error);
834
+ if (!failure) return null;
835
+ const { publicDetails: _publicDetails, ...facts } = failure;
836
+ return facts;
837
+ }
838
+ function formatToolExecutionErrorDiagnostic(error) {
839
+ const failure = cliToolExecutionFailure(error);
840
+ if (!failure) return null;
841
+ const lines = [
842
+ `Tool: ${failure.toolId}${failure.provider ? `; provider: ${failure.provider}` : ""}${failure.operation ? `; operation: ${failure.operation}` : ""}.`,
843
+ `Failure: ${failure.origin} / ${failure.category}. Same-call retry: ${failure.retryable ? `safe${failure.retryAfterMs === null ? "" : ` after ${failure.retryAfterMs}ms`}` : "unsafe"}.`
844
+ ];
845
+ if (failure.networkKind || failure.networkScope) {
846
+ lines.push(
847
+ `Network: ${_nullishCoalesce(failure.networkKind, () => ( "unknown"))}${failure.networkScope ? ` (${failure.networkScope})` : ""}.`
848
+ );
849
+ }
850
+ if (failure.requestId) lines.push(`Request: ${failure.requestId}.`);
851
+ return lines.join("\n");
852
+ }
831
853
  function errorToJsonPayload(error) {
832
854
  const message = error instanceof Error ? error.message : String(error);
855
+ const toolFailure = cliToolExecutionFailure(error);
833
856
  const maybeRecord = error && typeof error === "object" ? error : null;
834
857
  const code = typeof _optionalChain([maybeRecord, 'optionalAccess', _22 => _22.code]) === "string" ? maybeRecord.code : error instanceof SyntaxError ? "INVALID_JSON" : "CLI_ERROR";
835
858
  const details = {};
@@ -868,6 +891,7 @@ function errorToJsonPayload(error) {
868
891
  error: {
869
892
  message,
870
893
  code,
894
+ ...toolFailure ? { tool_error: toolFailure } : {},
871
895
  ...Object.keys(details).length > 0 ? { details } : {}
872
896
  }
873
897
  };
@@ -975,4 +999,5 @@ function printCommandEnvelope(envelope, options = {}) {
975
999
 
976
1000
 
977
1001
 
978
- exports.parseJsonFields = parseJsonFields; exports.jsonFieldArgs = jsonFieldArgs; exports.describeArgs = describeArgs; exports.getAuthedHttpClient = getAuthedHttpClient; exports.openInBrowser = openInBrowser; exports.sleep = sleep; exports.collectLocalEnvInfo = collectLocalEnvInfo; exports.readCsvRows = readCsvRows; exports.csvStringFromRows = csvStringFromRows; exports.csvSafeJsonString = csvSafeJsonString; exports.recordRows = recordRows; exports.dataExportRows = dataExportRows; exports.dataExportColumns = dataExportColumns; exports.dataExportCsvString = dataExportCsvString; exports.markdownTableFromRows = markdownTableFromRows; exports.printJson = printJson; exports.printCompactJson = printCompactJson; exports.errorToJsonPayload = errorToJsonPayload; exports.formatProviderConcurrencyDiagnostic = formatProviderConcurrencyDiagnostic; exports.printJsonError = printJsonError; exports.shouldEmitJson = shouldEmitJson; exports.argsWantJson = argsWantJson; exports.createTimestampedName = createTimestampedName; exports.clip = clip; exports.renderCommandEnvelopeText = renderCommandEnvelopeText; exports.printCommandEnvelope = printCommandEnvelope;
1002
+
1003
+ exports.parseJsonFields = parseJsonFields; exports.jsonFieldArgs = jsonFieldArgs; exports.describeArgs = describeArgs; exports.getAuthedHttpClient = getAuthedHttpClient; exports.openInBrowser = openInBrowser; exports.sleep = sleep; exports.collectLocalEnvInfo = collectLocalEnvInfo; exports.readCsvRows = readCsvRows; exports.csvStringFromRows = csvStringFromRows; exports.csvSafeJsonString = csvSafeJsonString; exports.recordRows = recordRows; exports.dataExportRows = dataExportRows; exports.dataExportColumns = dataExportColumns; exports.dataExportCsvString = dataExportCsvString; exports.markdownTableFromRows = markdownTableFromRows; exports.printJson = printJson; exports.printCompactJson = printCompactJson; exports.formatToolExecutionErrorDiagnostic = formatToolExecutionErrorDiagnostic; exports.errorToJsonPayload = errorToJsonPayload; exports.formatProviderConcurrencyDiagnostic = formatProviderConcurrencyDiagnostic; exports.printJsonError = printJsonError; exports.shouldEmitJson = shouldEmitJson; exports.argsWantJson = argsWantJson; exports.createTimestampedName = createTimestampedName; exports.clip = clip; exports.renderCommandEnvelopeText = renderCommandEnvelopeText; exports.printCommandEnvelope = printCommandEnvelope;
@@ -3,7 +3,7 @@
3
3
  var _chunk3KC45UVFjs = require('./chunk-3KC45UVF.js');
4
4
 
5
5
 
6
- var _chunk5O4B6AUNjs = require('./chunk-5O4B6AUN.js');
6
+ var _chunkPWSWAN7Qjs = require('./chunk-PWSWAN7Q.js');
7
7
 
8
8
 
9
9
 
@@ -54,7 +54,7 @@ function buildPlayContractCompatibility(input) {
54
54
  artifactVersion: PLAY_ARTIFACT_VERSION,
55
55
  runtimeBackend: _nullishCoalesce(_optionalChain([input, 'optionalAccess', _ => _.runtimeBackend]), () => ( null)),
56
56
  toolErrorSchemaVersion: _nullishCoalesce(_optionalChain([input, 'optionalAccess', _2 => _2.toolErrorSchemaVersion]), () => ( _chunk7P5AA3SNjs.TOOL_EXECUTION_ERROR_SCHEMA_VERSION)),
57
- authoringContractEdition: _nullishCoalesce(_optionalChain([input, 'optionalAccess', _3 => _3.authoringContractEdition]), () => ( _chunk5O4B6AUNjs.PLAY_AUTHORING_CONTRACT_EDITION)),
57
+ authoringContractEdition: _nullishCoalesce(_optionalChain([input, 'optionalAccess', _3 => _3.authoringContractEdition]), () => ( _chunkPWSWAN7Qjs.PLAY_AUTHORING_CONTRACT_EDITION)),
58
58
  toolResponseContract: _nullishCoalesce(_optionalChain([input, 'optionalAccess', _4 => _4.toolResponseContract]), () => ( _chunkS6R3OX7Bjs.RAW_V2_TOOL_RESPONSE_CONTRACT)),
59
59
  toolResponseReceiptRevision: _chunkS6R3OX7Bjs.normalizeToolResponseReceiptRevision.call(void 0,
60
60
  _nullishCoalesce(_optionalChain([input, 'optionalAccess', _5 => _5.toolResponseReceiptRevision]), () => ( _chunkS6R3OX7Bjs.RAW_V2_TOOL_RESPONSE_RECEIPT_REVISION))
@@ -2733,7 +2733,7 @@ async function bundlePlayFile(filePath, options) {
2733
2733
  analysis.graphHash = sha256(
2734
2734
  `${analysis.graphHash}
2735
2735
  entry-export:${exportName}
2736
- authoring-contract-edition:${_chunk5O4B6AUNjs.PLAY_AUTHORING_CONTRACT_EDITION}`
2736
+ authoring-contract-edition:${_chunkPWSWAN7Qjs.PLAY_AUTHORING_CONTRACT_EDITION}`
2737
2737
  );
2738
2738
  const sourceFiles = Object.fromEntries(
2739
2739
  Object.entries(analysis.sourceFiles).map(([sourcePath, sourceCode]) => [
@@ -2,10 +2,10 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkRV6ALZIXjs = require('./chunk-RV6ALZIX.js');
5
+ var _chunkM7Y7JYZXjs = require('./chunk-M7Y7JYZX.js');
6
6
 
7
7
 
8
- var _chunkWMS5U6YBjs = require('./chunk-WMS5U6YB.js');
8
+ var _chunkCDFH2DYLjs = require('./chunk-CDFH2DYL.js');
9
9
 
10
10
  // src/cli/commands/git.ts
11
11
  function shellQuote(value) {
@@ -32,11 +32,11 @@ function renderDeployment(deployment) {
32
32
  return `${deployment.id} ${source} (${kind}) - ${deployment.status}${suffix}`;
33
33
  }
34
34
  async function handleList(options) {
35
- const { http } = _chunkRV6ALZIXjs.getAuthedHttpClient.call(void 0, );
35
+ const { http } = _chunkM7Y7JYZXjs.getAuthedHttpClient.call(void 0, );
36
36
  const payload = await http.get(
37
37
  `/api/v2/play-projects${options.all ? "?includeDisabled=1" : ""}`
38
38
  );
39
- _chunkRV6ALZIXjs.printCommandEnvelope.call(void 0,
39
+ _chunkM7Y7JYZXjs.printCommandEnvelope.call(void 0,
40
40
  {
41
41
  projects: payload.projects,
42
42
  count: payload.projects.length,
@@ -73,7 +73,7 @@ function describeInstallationStatus(installation) {
73
73
  }
74
74
  }
75
75
  async function handleStatus(options) {
76
- const { http } = _chunkRV6ALZIXjs.getAuthedHttpClient.call(void 0, );
76
+ const { http } = _chunkM7Y7JYZXjs.getAuthedHttpClient.call(void 0, );
77
77
  const payload = await http.get("/api/v2/github/installation");
78
78
  const installation = payload.installation;
79
79
  const others = (_nullishCoalesce(payload.installations, () => ( []))).filter(
@@ -136,7 +136,7 @@ async function handleStatus(options) {
136
136
  )
137
137
  );
138
138
  }
139
- _chunkRV6ALZIXjs.printCommandEnvelope.call(void 0,
139
+ _chunkM7Y7JYZXjs.printCommandEnvelope.call(void 0,
140
140
  {
141
141
  installation,
142
142
  installations: _nullishCoalesce(payload.installations, () => ( [])),
@@ -147,10 +147,10 @@ async function handleStatus(options) {
147
147
  );
148
148
  }
149
149
  async function handleRepos(options) {
150
- const { http } = _chunkRV6ALZIXjs.getAuthedHttpClient.call(void 0, );
150
+ const { http } = _chunkM7Y7JYZXjs.getAuthedHttpClient.call(void 0, );
151
151
  const query = options.installation ? `?installationId=${encodeURIComponent(options.installation)}` : "";
152
152
  const payload = await http.get(`/api/v2/github/repos${query}`);
153
- _chunkRV6ALZIXjs.printCommandEnvelope.call(void 0,
153
+ _chunkM7Y7JYZXjs.printCommandEnvelope.call(void 0,
154
154
  {
155
155
  installation: payload.installation,
156
156
  repositories: payload.repositories,
@@ -171,7 +171,7 @@ async function handleRepos(options) {
171
171
  }
172
172
  async function resolveRepoId(repo, installation) {
173
173
  if (/^\d+$/.test(repo)) return Number(repo);
174
- const { http } = _chunkRV6ALZIXjs.getAuthedHttpClient.call(void 0, );
174
+ const { http } = _chunkM7Y7JYZXjs.getAuthedHttpClient.call(void 0, );
175
175
  const query = installation ? `?installationId=${encodeURIComponent(installation)}` : "";
176
176
  const payload = await http.get(
177
177
  `/api/v2/github/repos${query}`
@@ -188,7 +188,7 @@ async function resolveRepoId(repo, installation) {
188
188
  }
189
189
  async function handleLink(repo, options) {
190
190
  const repoId = await resolveRepoId(repo, options.installation);
191
- const { http } = _chunkRV6ALZIXjs.getAuthedHttpClient.call(void 0, );
191
+ const { http } = _chunkM7Y7JYZXjs.getAuthedHttpClient.call(void 0, );
192
192
  const payload = await http.post("/api/v2/play-projects", {
193
193
  repoId,
194
194
  ...options.installation !== void 0 ? { installationId: options.installation } : {},
@@ -197,7 +197,7 @@ async function handleLink(repo, options) {
197
197
  ...options.branch !== void 0 ? { productionBranch: options.branch } : {},
198
198
  ...options.prChecks !== void 0 ? { checkOnPullRequest: options.prChecks } : {}
199
199
  });
200
- _chunkRV6ALZIXjs.printCommandEnvelope.call(void 0,
200
+ _chunkM7Y7JYZXjs.printCommandEnvelope.call(void 0,
201
201
  {
202
202
  project: payload.project,
203
203
  render: {
@@ -220,11 +220,11 @@ async function handleLink(repo, options) {
220
220
  );
221
221
  }
222
222
  async function handleGet(id, options) {
223
- const { http } = _chunkRV6ALZIXjs.getAuthedHttpClient.call(void 0, );
223
+ const { http } = _chunkM7Y7JYZXjs.getAuthedHttpClient.call(void 0, );
224
224
  const payload = await http.get(
225
225
  `/api/v2/play-projects/${encodeURIComponent(id)}`
226
226
  );
227
- _chunkRV6ALZIXjs.printCommandEnvelope.call(void 0,
227
+ _chunkM7Y7JYZXjs.printCommandEnvelope.call(void 0,
228
228
  {
229
229
  project: payload.project,
230
230
  render: {
@@ -240,7 +240,7 @@ async function handleGet(id, options) {
240
240
  );
241
241
  }
242
242
  async function handleSet(id, options) {
243
- const { http } = _chunkRV6ALZIXjs.getAuthedHttpClient.call(void 0, );
243
+ const { http } = _chunkM7Y7JYZXjs.getAuthedHttpClient.call(void 0, );
244
244
  const payload = await http.patch(
245
245
  `/api/v2/play-projects/${encodeURIComponent(id)}`,
246
246
  {
@@ -251,7 +251,7 @@ async function handleSet(id, options) {
251
251
  ...options.disabled !== void 0 ? { disabled: options.disabled } : {}
252
252
  }
253
253
  );
254
- _chunkRV6ALZIXjs.printCommandEnvelope.call(void 0,
254
+ _chunkM7Y7JYZXjs.printCommandEnvelope.call(void 0,
255
255
  {
256
256
  project: payload.project,
257
257
  render: {
@@ -264,9 +264,9 @@ async function handleSet(id, options) {
264
264
  );
265
265
  }
266
266
  async function handleUnlink(id, options) {
267
- const { http } = _chunkRV6ALZIXjs.getAuthedHttpClient.call(void 0, );
267
+ const { http } = _chunkM7Y7JYZXjs.getAuthedHttpClient.call(void 0, );
268
268
  await http.delete(`/api/v2/play-projects/${encodeURIComponent(id)}`);
269
- _chunkRV6ALZIXjs.printCommandEnvelope.call(void 0,
269
+ _chunkM7Y7JYZXjs.printCommandEnvelope.call(void 0,
270
270
  {
271
271
  ok: true,
272
272
  id,
@@ -286,10 +286,10 @@ async function handleUnlink(id, options) {
286
286
  );
287
287
  }
288
288
  async function handleConnect(options) {
289
- const baseUrl = _chunkWMS5U6YBjs.resolveBaseUrlOnly.call(void 0, );
289
+ const baseUrl = _chunkCDFH2DYLjs.resolveBaseUrlOnly.call(void 0, );
290
290
  const connectUrl = `${baseUrl.replace(/\/$/, "")}/api/v2/github/connect`;
291
- const opened = _chunkRV6ALZIXjs.openInBrowser.call(void 0, connectUrl);
292
- _chunkRV6ALZIXjs.printCommandEnvelope.call(void 0,
291
+ const opened = _chunkM7Y7JYZXjs.openInBrowser.call(void 0, connectUrl);
292
+ _chunkM7Y7JYZXjs.printCommandEnvelope.call(void 0,
293
293
  {
294
294
  connectUrl,
295
295
  browser: opened,
@@ -311,7 +311,7 @@ async function handleConnect(options) {
311
311
  );
312
312
  }
313
313
  async function handleDeploymentsList(options) {
314
- const { http } = _chunkRV6ALZIXjs.getAuthedHttpClient.call(void 0, );
314
+ const { http } = _chunkM7Y7JYZXjs.getAuthedHttpClient.call(void 0, );
315
315
  const query = new URLSearchParams();
316
316
  if (options.repo) query.set("projectId", options.repo);
317
317
  if (options.limit) query.set("limit", options.limit);
@@ -319,7 +319,7 @@ async function handleDeploymentsList(options) {
319
319
  const payload = await http.get(
320
320
  `/api/v2/deployments${suffix}`
321
321
  );
322
- _chunkRV6ALZIXjs.printCommandEnvelope.call(void 0,
322
+ _chunkM7Y7JYZXjs.printCommandEnvelope.call(void 0,
323
323
  {
324
324
  deployments: payload.deployments,
325
325
  count: payload.deployments.length,
@@ -363,12 +363,12 @@ function renderDeploymentMonitorLines(results) {
363
363
  ]);
364
364
  }
365
365
  async function handleDeploymentGet(id, options) {
366
- const { http } = _chunkRV6ALZIXjs.getAuthedHttpClient.call(void 0, );
366
+ const { http } = _chunkM7Y7JYZXjs.getAuthedHttpClient.call(void 0, );
367
367
  const payload = await http.get(`/api/v2/deployments/${encodeURIComponent(id)}`);
368
368
  const playLines = renderDeploymentPlayLines(payload.deployment.results);
369
369
  const monitorLines = renderDeploymentMonitorLines(payload.deployment.results);
370
370
  const repository = _nullishCoalesce(_optionalChain([payload, 'access', _10 => _10.project, 'optionalAccess', _11 => _11.repoFullName]), () => ( payload.deployment.repoFullName));
371
- _chunkRV6ALZIXjs.printCommandEnvelope.call(void 0,
371
+ _chunkM7Y7JYZXjs.printCommandEnvelope.call(void 0,
372
372
  {
373
373
  deployment: payload.deployment,
374
374
  project: payload.project,
@@ -387,9 +387,9 @@ async function handleDeploymentGet(id, options) {
387
387
  );
388
388
  }
389
389
  async function handleDeploymentCancel(id, options) {
390
- const { http } = _chunkRV6ALZIXjs.getAuthedHttpClient.call(void 0, );
390
+ const { http } = _chunkM7Y7JYZXjs.getAuthedHttpClient.call(void 0, );
391
391
  const payload = await http.post(`/api/v2/deployments/${encodeURIComponent(id)}/cancel`, {});
392
- _chunkRV6ALZIXjs.printCommandEnvelope.call(void 0,
392
+ _chunkM7Y7JYZXjs.printCommandEnvelope.call(void 0,
393
393
  {
394
394
  cancelled: payload.cancelled,
395
395
  deployment: payload.deployment,