deepline 0.3.454 → 0.3.456

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 (115) hide show
  1. package/dist/bundling-sources/sdk/src/client.ts +23 -0
  2. package/dist/bundling-sources/sdk/src/http.ts +17 -3
  3. package/dist/bundling-sources/sdk/src/release.ts +1 -1
  4. package/dist/bundling-sources/sdk/src/tool-calls.ts +13 -1
  5. package/dist/bundling-sources/sdk/src/types.ts +2 -0
  6. package/dist/cli/{auth-YNPT3IER.mjs → auth-OBWRDCK3.mjs} +4 -4
  7. package/dist/cli/auth-X5H25CM4.js +40 -0
  8. package/dist/cli/{billing-VXIIND6T.js → billing-XDDTD7C3.js} +73 -73
  9. package/dist/cli/{billing-TLRVAOXB.mjs → billing-ZR4OHVLA.mjs} +4 -4
  10. package/dist/cli/{chunk-U72KDMYJ.mjs → chunk-4EMVWEUJ.mjs} +2 -2
  11. package/dist/cli/{chunk-VHGGHRGY.js → chunk-4X5H47H5.js} +93 -92
  12. package/dist/cli/{chunk-BUYQU7TB.js → chunk-76GTVFFG.js} +8 -8
  13. package/dist/cli/{chunk-R2GLGLDR.mjs → chunk-77Z5BO7D.mjs} +21 -0
  14. package/dist/cli/{chunk-27NNEBIS.mjs → chunk-7PW2K3AT.mjs} +2 -2
  15. package/dist/cli/{chunk-RDAUQGPG.mjs → chunk-AGWG2PVB.mjs} +1 -1
  16. package/dist/cli/{chunk-5OQMUDPM.mjs → chunk-APPPIUEW.mjs} +1 -1
  17. package/dist/cli/{chunk-NMJ4D2WO.js → chunk-AQFHU3DW.js} +21 -0
  18. package/dist/cli/{chunk-KPPL2WNH.js → chunk-BQWHXKXO.js} +16 -16
  19. package/dist/cli/{chunk-WONLZMDF.js → chunk-CJTOZLFI.js} +6 -6
  20. package/dist/cli/{chunk-DCZSJON4.mjs → chunk-GQVMERZ7.mjs} +2 -2
  21. package/dist/cli/{chunk-LVHRP7XM.mjs → chunk-HZODG765.mjs} +4 -4
  22. package/dist/cli/{chunk-THJ7ORNM.mjs → chunk-IQ5OW2WC.mjs} +3 -3
  23. package/dist/cli/{chunk-7ICOQRW5.js → chunk-J2KWJKTM.js} +3 -3
  24. package/dist/cli/{chunk-YPYR4ACF.js → chunk-K5TWU5I6.js} +51 -51
  25. package/dist/cli/{chunk-IJ5WCZ32.js → chunk-KFCXTVDW.js} +20 -20
  26. package/dist/cli/{chunk-TECW24CR.mjs → chunk-M7FF76WO.mjs} +5 -3
  27. package/dist/cli/{chunk-5GJH2BYN.mjs → chunk-NXJEDRPH.mjs} +2 -2
  28. package/dist/cli/{chunk-SJH66N73.js → chunk-OQEIP4HF.js} +6 -6
  29. package/dist/cli/{chunk-G6ZOZQXT.mjs → chunk-P5MB2PXV.mjs} +3 -3
  30. package/dist/cli/{chunk-FKGXZXRP.js → chunk-PPF557JY.js} +8 -8
  31. package/dist/cli/{chunk-6JY2NGJN.js → chunk-QLB5T7IS.js} +26 -26
  32. package/dist/cli/{chunk-VXBEHDM6.js → chunk-S3D7OY6D.js} +8 -6
  33. package/dist/cli/{chunk-S2PO3X5R.js → chunk-SAO7KYJE.js} +2 -2
  34. package/dist/cli/{chunk-QLMQ2NAQ.js → chunk-SHWMFFKX.js} +2 -2
  35. package/dist/cli/{chunk-33FEF4RH.js → chunk-SOUPX3YJ.js} +50 -50
  36. package/dist/cli/{chunk-2I7GE7KB.mjs → chunk-U4JZWJ52.mjs} +1 -1
  37. package/dist/cli/{chunk-Z5PQSTYX.js → chunk-VVYM2F7X.js} +252 -239
  38. package/dist/cli/{chunk-UT6W675P.mjs → chunk-W64S7C55.mjs} +1 -1
  39. package/dist/cli/{chunk-7V3OKSB2.js → chunk-WEHXHC7N.js} +1 -1
  40. package/dist/cli/{chunk-CPXT4KPC.mjs → chunk-WXCYW6PA.mjs} +3 -3
  41. package/dist/cli/{chunk-YETNOEAZ.mjs → chunk-XRNBDUYR.mjs} +10 -9
  42. package/dist/cli/{chunk-P5IQ6LIK.js → chunk-XVGEAB44.js} +35 -35
  43. package/dist/cli/{chunk-EXWKHMMP.mjs → chunk-YMV3AULG.mjs} +5 -5
  44. package/dist/cli/{chunk-LWYOJG66.mjs → chunk-ZCXFZSVH.mjs} +1 -1
  45. package/dist/cli/{chunk-YXCLG3KB.mjs → chunk-ZODPS5JW.mjs} +15 -2
  46. package/dist/cli/command-docs.js +2 -2
  47. package/dist/cli/command-docs.mjs +1 -1
  48. package/dist/cli/{csv-BSKJR3CR.js → csv-B35BFYGT.js} +12 -12
  49. package/dist/cli/{csv-I4CAAV6A.mjs → csv-P2ATJQUY.mjs} +3 -3
  50. package/dist/cli/{db-RA3IL6MC.js → db-ELEZFHG7.js} +25 -25
  51. package/dist/cli/{db-EQP24K3B.mjs → db-PSITREEX.mjs} +4 -4
  52. package/dist/cli/{describe-62KPTIFH.js → describe-AXWFWCWZ.js} +17 -17
  53. package/dist/cli/{describe-EZDVJDPQ.mjs → describe-E2ZFRC5Z.mjs} +13 -13
  54. package/dist/cli/describe-core.d.mts +1 -1
  55. package/dist/cli/describe-core.d.ts +1 -1
  56. package/dist/cli/{executions-W5KR56KP.mjs → executions-BZTPNWW2.mjs} +4 -4
  57. package/dist/cli/{executions-2HBBXRPM.js → executions-GWYPVJYE.js} +6 -6
  58. package/dist/cli/{feedback-6UTOLSFP.mjs → feedback-F3RKOHZN.mjs} +3 -3
  59. package/dist/cli/{feedback-CVYS7ZPV.js → feedback-UCW6EFOR.js} +7 -7
  60. package/dist/cli/git-HEKGLILK.js +24 -0
  61. package/dist/cli/{git-JXH64LI4.mjs → git-LGQMBBO3.mjs} +4 -4
  62. package/dist/cli/index.js +136 -136
  63. package/dist/cli/index.mjs +38 -38
  64. package/dist/cli/{legacy-noops-NYMLGQNX.mjs → legacy-noops-4TVFFILL.mjs} +4 -4
  65. package/dist/cli/{legacy-noops-5XTXIPU2.js → legacy-noops-SRH3BPNV.js} +7 -7
  66. package/dist/cli/{monitors-J6HAQLX2.js → monitors-6NHXI3EW.js} +89 -89
  67. package/dist/cli/{monitors-CEU6SP2B.mjs → monitors-WBST3XUH.mjs} +5 -5
  68. package/dist/cli/{org-CYE3DCIT.js → org-5EFVZUB2.js} +66 -66
  69. package/dist/cli/{org-RRKAJM5V.mjs → org-DSDNRGDV.mjs} +4 -4
  70. package/dist/cli/{play-PXISXZ2P.mjs → play-EKOV2T5N.mjs} +11 -11
  71. package/dist/cli/{play-NJDW74YH.js → play-RMWBABCH.js} +284 -284
  72. package/dist/cli/{providers-6QGGDOWK.mjs → providers-AWNJWZWD.mjs} +46 -4
  73. package/dist/cli/{providers-JE3MUBYK.js → providers-Y4EYH7IZ.js} +50 -8
  74. package/dist/cli/{quickstart-MKJ7TYQZ.mjs → quickstart-CPW66MBY.mjs} +3 -3
  75. package/dist/cli/{quickstart-AQBBOFQL.js → quickstart-JQ3W6LWQ.js} +5 -5
  76. package/dist/cli/search-PJXI2GJR.js +30 -0
  77. package/dist/cli/{search-6PKFZ2JD.mjs → search-VP4Y6MQU.mjs} +5 -5
  78. package/dist/cli/{secrets-QBWRVZCT.mjs → secrets-2VEENFF4.mjs} +4 -4
  79. package/dist/cli/{secrets-IKGJYESD.js → secrets-CPMHM5HU.js} +13 -13
  80. package/dist/cli/{sessions-462I5YEQ.js → sessions-ALPCLDJI.js} +5 -5
  81. package/dist/cli/{sessions-SVYTBNRJ.mjs → sessions-INDUUZ3K.mjs} +4 -4
  82. package/dist/cli/{settings-FH4XZ7FE.mjs → settings-3YBZZPAM.mjs} +10 -10
  83. package/dist/cli/{settings-WHLTLPXZ.js → settings-5PO4C33K.js} +77 -77
  84. package/dist/cli/{setup-ISCNCB4W.mjs → setup-7SOJ4INF.mjs} +8 -8
  85. package/dist/cli/{setup-IKTCP3QB.js → setup-RK2MUVXO.js} +43 -43
  86. package/dist/cli/{skills-HITZS5EJ.mjs → skills-5PR5RTOX.mjs} +6 -6
  87. package/dist/cli/skills-J3243JQE.js +30 -0
  88. package/dist/cli/{tools-SQUTVLPO.mjs → tools-OSJJUP36.mjs} +13 -13
  89. package/dist/cli/tools-V2B44RFH.js +45 -0
  90. package/dist/cli/update-CKIL2SWB.js +32 -0
  91. package/dist/cli/{update-AFYEREBX.mjs → update-TDCMXJ62.mjs} +8 -8
  92. package/dist/cli/{workflow-AAOOROIR.js → workflow-6DKCCQYA.js} +15 -15
  93. package/dist/cli/{workflow-VBCZPKVF.mjs → workflow-6O24O6LT.mjs} +5 -5
  94. package/dist/{client-Ct6OBj9Y.d.mts → client-BX2EVlPo.d.mts} +21 -0
  95. package/dist/{client-BV7tC6oq.d.ts → client-CRz2laoR.d.ts} +21 -0
  96. package/dist/index.d.mts +2 -2
  97. package/dist/index.d.ts +2 -2
  98. package/dist/index.js +6 -6
  99. package/dist/index.mjs +3 -3
  100. package/dist/install-integrity.json +84 -84
  101. package/dist/plays/play-description.d.mts +1 -1
  102. package/dist/plays/play-description.d.ts +1 -1
  103. package/dist/plays/run-request.d.mts +1 -1
  104. package/dist/plays/run-request.d.ts +1 -1
  105. package/dist/release.d.mts +1 -1
  106. package/dist/release.d.ts +1 -1
  107. package/dist/release.js +2 -2
  108. package/dist/release.mjs +1 -1
  109. package/package.json +1 -1
  110. package/dist/cli/auth-GUZWKNXM.js +0 -40
  111. package/dist/cli/git-U6FMVAAM.js +0 -24
  112. package/dist/cli/search-EJGRNQQK.js +0 -30
  113. package/dist/cli/skills-LC2YKUSO.js +0 -30
  114. package/dist/cli/tools-Y55OXE72.js +0 -45
  115. package/dist/cli/update-Q3I6MSEQ.js +0 -32
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  writeRawStderr
3
- } from "./chunk-RDAUQGPG.mjs";
3
+ } from "./chunk-AGWG2PVB.mjs";
4
4
 
5
5
  // src/cli/maintenance-policy.ts
6
6
  import { InvalidArgumentError } from "commander";
@@ -49,7 +49,7 @@ 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.454",
52
+ version: "0.3.456",
53
53
  updateSummary: {
54
54
  introducedIn: "0.3.90",
55
55
  summary: "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."
@@ -3,15 +3,15 @@ import {
3
3
  } from "./chunk-LJ5747UC.mjs";
4
4
  import {
5
5
  DeeplineClient
6
- } from "./chunk-YXCLG3KB.mjs";
6
+ } from "./chunk-ZODPS5JW.mjs";
7
7
  import {
8
8
  printCommandEnvelope,
9
9
  renderCommandEnvelopeText
10
- } from "./chunk-RDAUQGPG.mjs";
10
+ } from "./chunk-AGWG2PVB.mjs";
11
11
  import {
12
12
  resolveConfig,
13
13
  sdkCliStateDirPath
14
- } from "./chunk-TECW24CR.mjs";
14
+ } from "./chunk-M7FF76WO.mjs";
15
15
  import {
16
16
  __commonJS,
17
17
  __toESM
@@ -5,7 +5,7 @@ import {
5
5
  import {
6
6
  recentSearchRef,
7
7
  registerDeprecatedSearchCommand
8
- } from "./chunk-CPXT4KPC.mjs";
8
+ } from "./chunk-WXCYW6PA.mjs";
9
9
  import {
10
10
  arrayField,
11
11
  formatModelDescription,
@@ -48,7 +48,7 @@ import {
48
48
  import {
49
49
  DeeplineClient,
50
50
  validateExecutionIdempotencyKey
51
- } from "./chunk-YXCLG3KB.mjs";
51
+ } from "./chunk-ZODPS5JW.mjs";
52
52
  import {
53
53
  stableStringify
54
54
  } from "./chunk-UBKA33KY.mjs";
@@ -58,18 +58,18 @@ import {
58
58
  maybeAutoUpdateAndRelaunch,
59
59
  registerCompatibilityCatalog,
60
60
  runToolExecuteStage
61
- } from "./chunk-LVHRP7XM.mjs";
61
+ } from "./chunk-HZODG765.mjs";
62
62
  import {
63
63
  isCliTraceEnabled,
64
64
  recordCliTrace,
65
65
  resolveCliMaintenancePolicy
66
- } from "./chunk-UT6W675P.mjs";
66
+ } from "./chunk-W64S7C55.mjs";
67
67
  import {
68
68
  checkSdkCompatibility,
69
69
  enforceSdkCompatibilityResponse,
70
70
  flushDeferredSkillsSyncNotices,
71
71
  syncSdkSkillsIfNeeded
72
- } from "./chunk-G6ZOZQXT.mjs";
72
+ } from "./chunk-P5MB2PXV.mjs";
73
73
  import {
74
74
  printCommandEnvelope,
75
75
  printCompactJson,
@@ -77,12 +77,12 @@ import {
77
77
  printJsonError,
78
78
  renderCommandEnvelopeText,
79
79
  shouldEmitJson
80
- } from "./chunk-RDAUQGPG.mjs";
80
+ } from "./chunk-AGWG2PVB.mjs";
81
81
  import {
82
82
  readSdkSkillsLocalVersion,
83
83
  resolveConfig,
84
84
  sdkCliStateDirPath
85
- } from "./chunk-TECW24CR.mjs";
85
+ } from "./chunk-M7FF76WO.mjs";
86
86
  import {
87
87
  DeeplineError
88
88
  } from "./chunk-HBL4PM5Q.mjs";
@@ -971,7 +971,7 @@ Examples:
971
971
  process.exitCode = await narrowView();
972
972
  return;
973
973
  }
974
- const { describeAnything } = await import("./describe-EZDVJDPQ.mjs");
974
+ const { describeAnything } = await import("./describe-E2ZFRC5Z.mjs");
975
975
  process.exitCode = await describeAnything(
976
976
  toolId,
977
977
  {
@@ -2537,7 +2537,8 @@ async function executeTool(toolId, options, compatibilityMetadata, deferCompatib
2537
2537
  }
2538
2538
  return await client.executeTool(parsed.toolId, parsed.params, {
2539
2539
  ...executeOptions,
2540
- atomicToolOnly: true
2540
+ atomicToolOnly: true,
2541
+ ...metadata?.executionMetadata?.retrySafeAmbiguousDelivery === true ? { retryAmbiguousDelivery: true } : {}
2541
2542
  });
2542
2543
  } catch (error) {
2543
2544
  if (!(error instanceof DeeplineError) || error.code !== "ATOMIC_TOOL_EXECUTE_UNSUPPORTED")
@@ -11,10 +11,10 @@
11
11
 
12
12
 
13
13
 
14
- var _chunkYPYR4ACFjs = require('./chunk-YPYR4ACF.js');
14
+ var _chunkK5TWU5I6js = require('./chunk-K5TWU5I6.js');
15
15
 
16
16
 
17
- var _chunkSJH66N73js = require('./chunk-SJH66N73.js');
17
+ var _chunkOQEIP4HFjs = require('./chunk-OQEIP4HF.js');
18
18
 
19
19
 
20
20
 
@@ -22,7 +22,7 @@ var _chunkSJH66N73js = require('./chunk-SJH66N73.js');
22
22
 
23
23
 
24
24
 
25
- var _chunkVXBEHDM6js = require('./chunk-VXBEHDM6.js');
25
+ var _chunkS3D7OY6Djs = require('./chunk-S3D7OY6D.js');
26
26
 
27
27
  // src/cli/commands/skills.ts
28
28
  var _child_process = require('child_process');
@@ -75,7 +75,7 @@ function inferActiveSkillsScope(entrypoint = _nullishCoalesce(process.argv[1], (
75
75
  return /[\\/]\.deepline[\\/]runtime[\\/]/.test(entrypoint) ? "local" : "global";
76
76
  }
77
77
  function resolveLocalRoot() {
78
- const target = _chunkVXBEHDM6js.resolveProjectPinTarget.call(void 0, );
78
+ const target = _chunkS3D7OY6Djs.resolveProjectPinTarget.call(void 0, );
79
79
  if (!target.ok) {
80
80
  throw new Error(
81
81
  `Cowork project folder is ambiguous. Candidate folders: ${target.candidates.join(
@@ -86,7 +86,7 @@ function resolveLocalRoot() {
86
86
  return target.dir;
87
87
  }
88
88
  function detectSkillsAgents(input) {
89
- const runtime = _nullishCoalesce(input.runtime, () => ( _chunkVXBEHDM6js.detectAgentRuntime.call(void 0, )));
89
+ const runtime = _nullishCoalesce(input.runtime, () => ( _chunkS3D7OY6Djs.detectAgentRuntime.call(void 0, )));
90
90
  const knownAgent = RUNTIME_TO_SKILLS_AGENT[runtime];
91
91
  if (knownAgent) return [knownAgent];
92
92
  const roots = [
@@ -101,11 +101,11 @@ function detectSkillsAgents(input) {
101
101
  return detected.length > 0 ? detected : ["*"];
102
102
  }
103
103
  function skillsStatePathForScope(baseUrl, scope, root) {
104
- return scope === "local" && root ? _path.join.call(void 0, root, ".deepline", "setup", "skills.json") : _path.join.call(void 0, _chunkVXBEHDM6js.sdkCliStateDirPath.call(void 0, baseUrl), "skills-install.json");
104
+ return scope === "local" && root ? _path.join.call(void 0, root, ".deepline", "setup", "skills.json") : _path.join.call(void 0, _chunkS3D7OY6Djs.sdkCliStateDirPath.call(void 0, baseUrl), "skills-install.json");
105
105
  }
106
106
  function buildSkillsPlan(input) {
107
107
  const scopeArgs = input.scope === "global" ? ["--global"] : [];
108
- const legacyNames = [..._chunkYPYR4ACFjs.LEGACY_SKILL_NAMES_TO_REMOVE].sort(
108
+ const legacyNames = [..._chunkK5TWU5I6js.LEGACY_SKILL_NAMES_TO_REMOVE].sort(
109
109
  (a, b) => a.localeCompare(b)
110
110
  );
111
111
  return {
@@ -119,7 +119,7 @@ function buildSkillsPlan(input) {
119
119
  args: [
120
120
  "exec",
121
121
  "--yes",
122
- `--package=${_chunkYPYR4ACFjs.SKILLS_NPX_PACKAGE}`,
122
+ `--package=${_chunkK5TWU5I6js.SKILLS_NPX_PACKAGE}`,
123
123
  "--",
124
124
  "skills",
125
125
  "remove",
@@ -135,11 +135,11 @@ function buildSkillsPlan(input) {
135
135
  args: [
136
136
  "exec",
137
137
  "--yes",
138
- `--package=${_chunkYPYR4ACFjs.SKILLS_NPX_PACKAGE}`,
138
+ `--package=${_chunkK5TWU5I6js.SKILLS_NPX_PACKAGE}`,
139
139
  "--",
140
140
  "skills",
141
141
  "add",
142
- _chunkYPYR4ACFjs.skillsSourceUrl.call(void 0, input.baseUrl),
142
+ _chunkK5TWU5I6js.skillsSourceUrl.call(void 0, input.baseUrl),
143
143
  "--agent",
144
144
  ...input.agents,
145
145
  ...scopeArgs,
@@ -176,7 +176,7 @@ function readSkillsInstallState(path) {
176
176
  }
177
177
  function runProcess(command, args, cwd) {
178
178
  return new Promise((resolve, reject) => {
179
- const plan = _chunkYPYR4ACFjs.resolveShellSpawn.call(void 0,
179
+ const plan = _chunkK5TWU5I6js.resolveShellSpawn.call(void 0,
180
180
  command,
181
181
  args,
182
182
  process.platform,
@@ -198,7 +198,7 @@ function runProcess(command, args, cwd) {
198
198
  child.kill("SIGTERM");
199
199
  reject(
200
200
  new Error(
201
- `${_chunkYPYR4ACFjs.SKILLS_NPX_PACKAGE} timed out after ${SKILLS_PROCESS_TIMEOUT_MS}ms.`
201
+ `${_chunkK5TWU5I6js.SKILLS_NPX_PACKAGE} timed out after ${SKILLS_PROCESS_TIMEOUT_MS}ms.`
202
202
  )
203
203
  );
204
204
  }, SKILLS_PROCESS_TIMEOUT_MS);
@@ -209,7 +209,7 @@ function runProcess(command, args, cwd) {
209
209
  child.once("close", (code) => {
210
210
  clearTimeout(timeout);
211
211
  if (code && stderr.trim()) {
212
- process.stderr.write(`${_chunkYPYR4ACFjs.SKILLS_NPX_PACKAGE} exited ${code}.
212
+ process.stderr.write(`${_chunkK5TWU5I6js.SKILLS_NPX_PACKAGE} exited ${code}.
213
213
  `);
214
214
  }
215
215
  resolve(_nullishCoalesce(code, () => ( 1)));
@@ -223,7 +223,7 @@ async function runSkillsCommand(options, dependencies = {}) {
223
223
  scope = normalizeScope(options.scope);
224
224
  root = scope === "local" ? resolveLocalRoot() : null;
225
225
  } catch (error) {
226
- _chunkSJH66N73js.printCommandEnvelope.call(void 0,
226
+ _chunkOQEIP4HFjs.printCommandEnvelope.call(void 0,
227
227
  {
228
228
  ok: false,
229
229
  status: "failed",
@@ -235,22 +235,22 @@ async function runSkillsCommand(options, dependencies = {}) {
235
235
  );
236
236
  return 2;
237
237
  }
238
- const baseUrl = _chunkVXBEHDM6js.autoDetectBaseUrl.call(void 0, ).replace(/\/$/, "");
238
+ const baseUrl = _chunkS3D7OY6Djs.autoDetectBaseUrl.call(void 0, ).replace(/\/$/, "");
239
239
  const catalog = {
240
- skillNames: [..._chunkYPYR4ACFjs.DEFAULT_SDK_SKILL_NAMES],
241
- version: _chunkVXBEHDM6js.SDK_VERSION
240
+ skillNames: [..._chunkK5TWU5I6js.DEFAULT_SDK_SKILL_NAMES],
241
+ version: _chunkS3D7OY6Djs.SDK_VERSION
242
242
  };
243
243
  const agents = options.agent ? [options.agent] : detectSkillsAgents({ scope, root });
244
244
  const plan = buildSkillsPlan({ baseUrl, scope, root, agents, ...catalog });
245
245
  if (options.dryRun) {
246
- _chunkSJH66N73js.printCommandEnvelope.call(void 0,
246
+ _chunkOQEIP4HFjs.printCommandEnvelope.call(void 0,
247
247
  { ok: true, status: "planned", dryRun: true, ...plan },
248
248
  { json: options.json }
249
249
  );
250
250
  return 0;
251
251
  }
252
- if (isSkillsPlanCurrent(plan, readSkillsInstallState(plan.statePath)) && !_chunkYPYR4ACFjs.hasFailedAutomaticSkillsSync.call(void 0, baseUrl, agents)) {
253
- _chunkSJH66N73js.printCommandEnvelope.call(void 0,
252
+ if (isSkillsPlanCurrent(plan, readSkillsInstallState(plan.statePath)) && !_chunkK5TWU5I6js.hasFailedAutomaticSkillsSync.call(void 0, baseUrl, agents)) {
253
+ _chunkOQEIP4HFjs.printCommandEnvelope.call(void 0,
254
254
  {
255
255
  ok: true,
256
256
  status: "current",
@@ -282,10 +282,10 @@ async function runSkillsCommand(options, dependencies = {}) {
282
282
  }
283
283
  if (scope === "local" && root) {
284
284
  const managedNames = [
285
- .../* @__PURE__ */ new Set([...plan.skillNames, ..._chunkYPYR4ACFjs.LEGACY_SKILL_NAMES_TO_REMOVE])
285
+ .../* @__PURE__ */ new Set([...plan.skillNames, ..._chunkK5TWU5I6js.LEGACY_SKILL_NAMES_TO_REMOVE])
286
286
  ];
287
287
  const agentRoots = workspaceSkillRootsForAgents(plan.agents);
288
- _chunkVXBEHDM6js.ensureProjectPrivatePathsIgnored.call(void 0, root, [
288
+ _chunkS3D7OY6Djs.ensureProjectPrivatePathsIgnored.call(void 0, root, [
289
289
  ".deepline/",
290
290
  ...agentRoots.flatMap(
291
291
  (agentRoot) => managedNames.map((name) => `${agentRoot}/skills/${name}/`)
@@ -294,7 +294,7 @@ async function runSkillsCommand(options, dependencies = {}) {
294
294
  }
295
295
  let lease;
296
296
  try {
297
- lease = scope === "global" ? await _chunkYPYR4ACFjs.acquireSkillsInstallLease.call(void 0, baseUrl, agents, plan.version, {
297
+ lease = scope === "global" ? await _chunkK5TWU5I6js.acquireSkillsInstallLease.call(void 0, baseUrl, agents, plan.version, {
298
298
  waitMs: _nullishCoalesce(dependencies.installLeaseWaitMs, () => ( SKILLS_INSTALL_LEASE_WAIT_MS)),
299
299
  onWait: () => process.stderr.write(
300
300
  "Waiting for a background Deepline skills refresh to finish...\n"
@@ -302,8 +302,8 @@ async function runSkillsCommand(options, dependencies = {}) {
302
302
  }) : { release: () => {
303
303
  } };
304
304
  } catch (error) {
305
- if (!(error instanceof _chunkYPYR4ACFjs.SkillsStateUnavailableError)) throw error;
306
- _chunkSJH66N73js.printCommandEnvelope.call(void 0,
305
+ if (!(error instanceof _chunkK5TWU5I6js.SkillsStateUnavailableError)) throw error;
306
+ _chunkOQEIP4HFjs.printCommandEnvelope.call(void 0,
307
307
  {
308
308
  ok: false,
309
309
  status: "failed",
@@ -319,7 +319,7 @@ async function runSkillsCommand(options, dependencies = {}) {
319
319
  return 5;
320
320
  }
321
321
  if (!lease) {
322
- _chunkSJH66N73js.printCommandEnvelope.call(void 0,
322
+ _chunkOQEIP4HFjs.printCommandEnvelope.call(void 0,
323
323
  {
324
324
  ok: false,
325
325
  status: "failed",
@@ -328,7 +328,7 @@ async function runSkillsCommand(options, dependencies = {}) {
328
328
  scope,
329
329
  agents,
330
330
  message: "A background Deepline skills refresh is still running for these agents.",
331
- next: `Retry in a moment: deepline skills --scope ${scope}. If no refresh is running, remove ${_chunkYPYR4ACFjs.skillsInstallLeasePath.call(void 0, baseUrl, agents)}`
331
+ next: `Retry in a moment: deepline skills --scope ${scope}. If no refresh is running, remove ${_chunkK5TWU5I6js.skillsInstallLeasePath.call(void 0, baseUrl, agents)}`
332
332
  },
333
333
  { json: options.json }
334
334
  );
@@ -365,7 +365,7 @@ async function runSkillsInstallWithLease(input) {
365
365
  throw new Error("Could not install the current Deepline skills.");
366
366
  }
367
367
  } catch (error) {
368
- _chunkSJH66N73js.printCommandEnvelope.call(void 0,
368
+ _chunkOQEIP4HFjs.printCommandEnvelope.call(void 0,
369
369
  {
370
370
  ok: false,
371
371
  status: "failed",
@@ -404,7 +404,7 @@ async function runSkillsInstallWithLease(input) {
404
404
  {
405
405
  schemaVersion: 1,
406
406
  installedAt: (/* @__PURE__ */ new Date()).toISOString(),
407
- cliVersion: _chunkVXBEHDM6js.SDK_VERSION,
407
+ cliVersion: _chunkS3D7OY6Djs.SDK_VERSION,
408
408
  scope,
409
409
  agents,
410
410
  skillsVersion: plan.version,
@@ -417,9 +417,9 @@ async function runSkillsInstallWithLease(input) {
417
417
  "utf8"
418
418
  );
419
419
  if (scope === "global") {
420
- _chunkYPYR4ACFjs.clearFailedAutomaticSkillsSync.call(void 0, baseUrl, agents);
420
+ _chunkK5TWU5I6js.clearFailedAutomaticSkillsSync.call(void 0, baseUrl, agents);
421
421
  }
422
- _chunkSJH66N73js.printCommandEnvelope.call(void 0,
422
+ _chunkOQEIP4HFjs.printCommandEnvelope.call(void 0,
423
423
  {
424
424
  ok: true,
425
425
  status: "complete",
@@ -450,7 +450,7 @@ function registerSkillsCommand(program) {
450
450
  "after",
451
451
  `
452
452
  Notes:
453
- This command reinstalls current Deepline-managed skills using ${_chunkYPYR4ACFjs.SKILLS_NPX_PACKAGE},
453
+ This command reinstalls current Deepline-managed skills using ${_chunkK5TWU5I6js.SKILLS_NPX_PACKAGE},
454
454
  then removes legacy Deepline skill names. Local scope writes into the resolved
455
455
  persistent project.
456
456
 
@@ -462,13 +462,13 @@ Examples:
462
462
  ).action(async (options) => {
463
463
  process.exitCode = await runSkillsCommand(options);
464
464
  });
465
- program.command(_chunkYPYR4ACFjs.SKILLS_AUTO_SYNC_COMMAND, { hidden: true }).description("Refresh Deepline agent skills in the background.").option(
465
+ program.command(_chunkK5TWU5I6js.SKILLS_AUTO_SYNC_COMMAND, { hidden: true }).description("Refresh Deepline agent skills in the background.").option(
466
466
  "--claim <token>",
467
467
  "Owner token of the leases this child was started for."
468
468
  ).action(async (options) => {
469
469
  const claim = _optionalChain([options, 'access', _ => _.claim, 'optionalAccess', _2 => _2.trim, 'call', _3 => _3()]);
470
470
  if (!claim) {
471
- _chunkSJH66N73js.printCommandEnvelope.call(void 0,
471
+ _chunkOQEIP4HFjs.printCommandEnvelope.call(void 0,
472
472
  {
473
473
  ok: false,
474
474
  status: "failed",
@@ -481,7 +481,7 @@ Examples:
481
481
  process.exitCode = 2;
482
482
  return;
483
483
  }
484
- await _chunkYPYR4ACFjs.syncSdkSkillsIfNeeded.call(void 0, _chunkVXBEHDM6js.autoDetectBaseUrl.call(void 0, ).replace(/\/$/, ""), {
484
+ await _chunkK5TWU5I6js.syncSdkSkillsIfNeeded.call(void 0, _chunkS3D7OY6Djs.autoDetectBaseUrl.call(void 0, ).replace(/\/$/, ""), {
485
485
  mode: "inline",
486
486
  notices: "defer",
487
487
  claim
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  npmSupportsAllowScripts,
3
3
  readNpmVersion
4
- } from "./chunk-5OQMUDPM.mjs";
4
+ } from "./chunk-APPPIUEW.mjs";
5
5
  import {
6
6
  runSkillsCommand
7
- } from "./chunk-THJ7ORNM.mjs";
7
+ } from "./chunk-IQ5OW2WC.mjs";
8
8
  import {
9
9
  resolveShellSpawn
10
- } from "./chunk-G6ZOZQXT.mjs";
10
+ } from "./chunk-P5MB2PXV.mjs";
11
11
  import {
12
12
  printCommandEnvelope
13
- } from "./chunk-RDAUQGPG.mjs";
13
+ } from "./chunk-AGWG2PVB.mjs";
14
14
  import {
15
15
  autoDetectBaseUrl
16
- } from "./chunk-TECW24CR.mjs";
16
+ } from "./chunk-M7FF76WO.mjs";
17
17
 
18
18
  // src/cli/commands/update.ts
19
19
  import { spawn, spawnSync } from "child_process";
@@ -49,7 +49,7 @@ 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.454",
52
+ version: "0.3.456",
53
53
  updateSummary: {
54
54
  introducedIn: "0.3.90",
55
55
  summary: "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."
@@ -28,7 +28,7 @@ import {
28
28
  RUNTIME_ENVIRONMENT_TOKEN_HEADER,
29
29
  SDK_API_MAJOR,
30
30
  resolveConfig
31
- } from "./chunk-TECW24CR.mjs";
31
+ } from "./chunk-M7FF76WO.mjs";
32
32
  import {
33
33
  CustomerDbQueryOutcomeUnknownError
34
34
  } from "./chunk-4QF2K7TM.mjs";
@@ -626,6 +626,7 @@ var ToolCalls = class {
626
626
  const legacyEndpoint = `/api/v2/integrations/${encodeURIComponent(toolId)}/execute`;
627
627
  let useLegacyEndpoint = idempotencyKey === void 0;
628
628
  const atomicToolOnly = options?.atomicToolOnly === true;
629
+ const retryAmbiguousDelivery = atomicToolOnly && !idempotencyKey && options?.retryAmbiguousDelivery === true;
629
630
  const dispatchRequest = async (requestTimeoutMs) => {
630
631
  let recoverySupported = false;
631
632
  let atomicToolsSupported = false;
@@ -638,10 +639,11 @@ var ToolCalls = class {
638
639
  headers,
639
640
  {
640
641
  timeout: requestTimeoutMs,
641
- maxRetries: idempotencyKey ? 0 : options?.maxRetries ?? 0,
642
+ maxRetries: idempotencyKey ? 0 : options?.maxRetries ?? (retryAmbiguousDelivery ? 2 : 0),
642
643
  ...atomicToolOnly && !idempotencyKey && options?.maxRetries === void 0 ? { executePolicyMaxRetries: 2 } : {},
643
644
  retryApiErrors: atomicToolOnly || options?.retryApiErrors === true,
644
645
  retryFromExecutePolicy: atomicToolOnly,
646
+ retryAmbiguousDelivery,
645
647
  exactUrlOnly: true,
646
648
  toolId,
647
649
  idempotencyKey,
@@ -5175,6 +5177,17 @@ var DeeplineClient = class _DeeplineClient {
5175
5177
  async getNotificationSettings() {
5176
5178
  return this.http.get("/api/v2/settings/notifications");
5177
5179
  }
5180
+ /** Start provider OAuth; complete the returned URL in an authenticated browser. */
5181
+ async connectIntegration(provider, scopes) {
5182
+ return this.http.post("/api/v2/integrations/connect", {
5183
+ provider,
5184
+ ...scopes ? { scopes } : {}
5185
+ });
5186
+ }
5187
+ /** Probe an OAuth connection, refreshing expired tokens through the normal lifecycle. */
5188
+ async testIntegration(provider) {
5189
+ return this.http.get(`/api/oauth/test/${encodeURIComponent(provider)}`);
5190
+ }
5178
5191
  /** Save provider-owned credential fields without starting an OAuth browser flow. */
5179
5192
  async setIntegrationCredentials(provider, credentials) {
5180
5193
  return this.http.post("/api/v2/integrations/connect", {
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- var _chunkNMJ4D2WOjs = require('./chunk-NMJ4D2WO.js');
9
+ var _chunkAQFHU3DWjs = require('./chunk-AQFHU3DW.js');
10
10
  require('./chunk-COGTRVWW.js');
11
11
 
12
12
 
@@ -16,4 +16,4 @@ require('./chunk-COGTRVWW.js');
16
16
 
17
17
 
18
18
 
19
- exports.CLI_DOC_SURFACE = _chunkNMJ4D2WOjs.CLI_DOC_SURFACE; exports.COMMAND_DOCS = _chunkNMJ4D2WOjs.COMMAND_DOCS; exports.commandDocKey = _chunkNMJ4D2WOjs.commandDocKey; exports.helpDetailFromArgv = _chunkNMJ4D2WOjs.helpDetailFromArgv; exports.renderActionExplanation = _chunkNMJ4D2WOjs.renderActionExplanation; exports.renderCommandExplanation = _chunkNMJ4D2WOjs.renderCommandExplanation; exports.renderDocText = _chunkNMJ4D2WOjs.renderDocText;
19
+ exports.CLI_DOC_SURFACE = _chunkAQFHU3DWjs.CLI_DOC_SURFACE; exports.COMMAND_DOCS = _chunkAQFHU3DWjs.COMMAND_DOCS; exports.commandDocKey = _chunkAQFHU3DWjs.commandDocKey; exports.helpDetailFromArgv = _chunkAQFHU3DWjs.helpDetailFromArgv; exports.renderActionExplanation = _chunkAQFHU3DWjs.renderActionExplanation; exports.renderCommandExplanation = _chunkAQFHU3DWjs.renderCommandExplanation; exports.renderDocText = _chunkAQFHU3DWjs.renderDocText;
@@ -6,7 +6,7 @@ import {
6
6
  renderActionExplanation,
7
7
  renderCommandExplanation,
8
8
  renderDocText
9
- } from "./chunk-R2GLGLDR.mjs";
9
+ } from "./chunk-77Z5BO7D.mjs";
10
10
  import "./chunk-KRD6H754.mjs";
11
11
  export {
12
12
  CLI_DOC_SURFACE,
@@ -4,12 +4,12 @@
4
4
 
5
5
 
6
6
 
7
- var _chunkSJH66N73js = require('./chunk-SJH66N73.js');
8
- require('./chunk-VXBEHDM6.js');
7
+ var _chunkOQEIP4HFjs = require('./chunk-OQEIP4HF.js');
8
+ require('./chunk-S3D7OY6D.js');
9
9
  require('./chunk-ALJJRZNJ.js');
10
10
  require('./chunk-XNYIZMNQ.js');
11
11
  require('./chunk-DIAWYWT5.js');
12
- require('./chunk-7V3OKSB2.js');
12
+ require('./chunk-WEHXHC7N.js');
13
13
  require('./chunk-OG64RBAC.js');
14
14
  require('./chunk-COGTRVWW.js');
15
15
 
@@ -127,7 +127,7 @@ function renderTable(rows, totalRows, verbose, footer = `showing ${rows.length}
127
127
  column.length,
128
128
  ...rows.map((row) => {
129
129
  const value = _nullishCoalesce(row[column], () => ( ""));
130
- return (verbose ? value : _chunkSJH66N73js.clip.call(void 0, value, 42)).length;
130
+ return (verbose ? value : _chunkOQEIP4HFjs.clip.call(void 0, value, 42)).length;
131
131
  })
132
132
  )
133
133
  ])
@@ -137,7 +137,7 @@ function renderTable(rows, totalRows, verbose, footer = `showing ${rows.length}
137
137
  const body = rows.map(
138
138
  (row) => columns.map((column) => {
139
139
  const raw = _nullishCoalesce(row[column], () => ( ""));
140
- const display = verbose ? raw : _chunkSJH66N73js.clip.call(void 0, raw, 42);
140
+ const display = verbose ? raw : _chunkOQEIP4HFjs.clip.call(void 0, raw, 42);
141
141
  return display.padEnd(widths[column]);
142
142
  }).join(" | ")
143
143
  );
@@ -157,7 +157,7 @@ async function handleCsvShow(path, options, command) {
157
157
  { exitCode: 2 }
158
158
  );
159
159
  }
160
- const allRows = _chunkSJH66N73js.readCsvRows.call(void 0, csvPath);
160
+ const allRows = _chunkOQEIP4HFjs.readCsvRows.call(void 0, csvPath);
161
161
  const [rowStart, rowEnd] = parseRowRange(options.rows);
162
162
  const rows = options.summary && options.rows === void 0 ? allRows : selectRows(allRows, rowStart, rowEnd);
163
163
  const { rows: selected, columns } = selectColumns(
@@ -170,7 +170,7 @@ async function handleCsvShow(path, options, command) {
170
170
  if (options.summary) {
171
171
  const summaries = summarizeColumns(selected, columns);
172
172
  if (format === "json") {
173
- _chunkSJH66N73js.printJson.call(void 0, {
173
+ _chunkOQEIP4HFjs.printJson.call(void 0, {
174
174
  rows: summaries,
175
175
  total_rows: selected.length,
176
176
  source_total_rows: allRows.length
@@ -179,7 +179,7 @@ async function handleCsvShow(path, options, command) {
179
179
  }
180
180
  const displayRows = summaryDisplayRows(summaries);
181
181
  if (format === "csv") {
182
- process.stdout.write(_chunkSJH66N73js.csvStringFromRows.call(void 0, displayRows));
182
+ process.stdout.write(_chunkOQEIP4HFjs.csvStringFromRows.call(void 0, displayRows));
183
183
  return;
184
184
  }
185
185
  process.stdout.write(
@@ -194,7 +194,7 @@ async function handleCsvShow(path, options, command) {
194
194
  return;
195
195
  }
196
196
  if (format === "json") {
197
- _chunkSJH66N73js.printJson.call(void 0, {
197
+ _chunkOQEIP4HFjs.printJson.call(void 0, {
198
198
  rows: selected.map((row, index) => ({ __row: rowStart + index, ...row }))
199
199
  });
200
200
  return;
@@ -437,7 +437,7 @@ async function handleCsvRenderStart(options) {
437
437
  if (log) {
438
438
  detail = `
439
439
  CSV render log:
440
- ${_chunkSJH66N73js.clip.call(void 0, log, 2e3)}`;
440
+ ${_chunkOQEIP4HFjs.clip.call(void 0, log, 2e3)}`;
441
441
  }
442
442
  } catch (e7) {
443
443
  }
@@ -488,7 +488,7 @@ async function handleCsvRenderStatus(options) {
488
488
  if (payload.pid) lines.push(`Render PID: ${payload.pid}`);
489
489
  if (payload.url) lines.push(`Render URL: ${payload.url}`);
490
490
  lines.push(`Render Health: ${payload.health_status}`);
491
- _chunkSJH66N73js.printCommandEnvelope.call(void 0, payload, {
491
+ _chunkOQEIP4HFjs.printCommandEnvelope.call(void 0, payload, {
492
492
  json: options.json,
493
493
  text: `${lines.join("\n")}
494
494
  `
@@ -524,7 +524,7 @@ async function handleCsvRenderStop(options) {
524
524
  };
525
525
  const text = stopped.length > 0 ? `Stopped CSV render process(es): ${stopped.join(" ")}
526
526
  ` : "No running CSV render process found.\n";
527
- _chunkSJH66N73js.printCommandEnvelope.call(void 0, payload, { json: options.json, text });
527
+ _chunkOQEIP4HFjs.printCommandEnvelope.call(void 0, payload, { json: options.json, text });
528
528
  }
529
529
  async function handleCsvRender(action, options) {
530
530
  const normalized = _nullishCoalesce(action, () => ( "start"));
@@ -4,12 +4,12 @@ import {
4
4
  printCommandEnvelope,
5
5
  printJson,
6
6
  readCsvRows
7
- } from "./chunk-RDAUQGPG.mjs";
8
- import "./chunk-TECW24CR.mjs";
7
+ } from "./chunk-AGWG2PVB.mjs";
8
+ import "./chunk-M7FF76WO.mjs";
9
9
  import "./chunk-4QF2K7TM.mjs";
10
10
  import "./chunk-DLIRSHV6.mjs";
11
11
  import "./chunk-HBL4PM5Q.mjs";
12
- import "./chunk-LWYOJG66.mjs";
12
+ import "./chunk-ZCXFZSVH.mjs";
13
13
  import "./chunk-WZYKRD7T.mjs";
14
14
  import "./chunk-KRD6H754.mjs";
15
15