deepline 0.3.437 → 0.3.439

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 (111) hide show
  1. package/dist/bundling-sources/sdk/src/client.ts +23 -0
  2. package/dist/bundling-sources/sdk/src/release.ts +1 -1
  3. package/dist/bundling-sources/shared_libs/observability/scheduled-jobs.json +19 -0
  4. package/dist/cli/auth-5UUDH4A7.js +40 -0
  5. package/dist/cli/{auth-TSUA536O.mjs → auth-FE2LP7A5.mjs} +4 -4
  6. package/dist/cli/{billing-V3T2YPBR.js → billing-4QAWLCKH.js} +73 -73
  7. package/dist/cli/{billing-5TGADGMX.mjs → billing-GABU2MTX.mjs} +4 -4
  8. package/dist/cli/{chunk-PZGRH4X7.mjs → chunk-2ELMQ6LW.mjs} +4 -4
  9. package/dist/cli/{chunk-R4MGS7YD.mjs → chunk-2GNX6SCO.mjs} +24 -0
  10. package/dist/cli/{chunk-WXJAODJD.js → chunk-2I42ORGH.js} +1 -1
  11. package/dist/cli/{chunk-D7NOGNG5.js → chunk-3TYXI7MD.js} +6 -6
  12. package/dist/cli/{chunk-IPJ3DZ7I.js → chunk-72XLUEP6.js} +16 -16
  13. package/dist/cli/{chunk-632AG45P.js → chunk-76DCNYH3.js} +2 -2
  14. package/dist/cli/{chunk-7QLXY6RP.mjs → chunk-BQQ4LEQB.mjs} +1 -1
  15. package/dist/cli/{chunk-JU67SR7M.js → chunk-D4VWHTDT.js} +6 -6
  16. package/dist/cli/{chunk-K4EHBVYV.js → chunk-DM6Q634K.js} +24 -0
  17. package/dist/cli/{chunk-JJ7SVPMN.mjs → chunk-E6ESUF5C.mjs} +1 -1
  18. package/dist/cli/{chunk-Q5LCLAY5.js → chunk-EBW6KRTG.js} +4 -4
  19. package/dist/cli/{chunk-BFV62ZMO.mjs → chunk-F3ORKGAM.mjs} +2 -2
  20. package/dist/cli/{chunk-Z6TTBJHH.js → chunk-FB3B2NKV.js} +8 -8
  21. package/dist/cli/{chunk-U5PCCQMO.js → chunk-FCF5BP3Q.js} +2 -2
  22. package/dist/cli/{chunk-G56WUJBT.mjs → chunk-FDQAOF3L.mjs} +3 -3
  23. package/dist/cli/{chunk-KAM3ZGK4.mjs → chunk-HO2TOFKF.mjs} +14 -1
  24. package/dist/cli/{chunk-PXUAU5Q6.mjs → chunk-HUBVYO52.mjs} +2 -2
  25. package/dist/cli/{chunk-5IJDDKD6.mjs → chunk-IAL3KSJT.mjs} +1 -1
  26. package/dist/cli/{chunk-JHT2LCK3.js → chunk-IX7ZGPLU.js} +8 -8
  27. package/dist/cli/{chunk-BZ3RMXER.js → chunk-KGR7SR3C.js} +113 -81
  28. package/dist/cli/{chunk-QHDQIHME.mjs → chunk-MGBVCVJ7.mjs} +1 -1
  29. package/dist/cli/{chunk-XGKH5EC7.js → chunk-MPY4UD6H.js} +93 -80
  30. package/dist/cli/{chunk-AFWYYSKY.mjs → chunk-N7T6S5SU.mjs} +2 -2
  31. package/dist/cli/{chunk-6VB2BPUX.js → chunk-P4ITKGRQ.js} +50 -50
  32. package/dist/cli/{chunk-HS3A4Q6E.mjs → chunk-QFTJ24UV.mjs} +3 -3
  33. package/dist/cli/{chunk-ZOPU46KZ.js → chunk-R3X55OMZ.js} +20 -20
  34. package/dist/cli/{chunk-UNX3UQFJ.mjs → chunk-RIJ4VTYJ.mjs} +3 -3
  35. package/dist/cli/{chunk-OOXULCVG.mjs → chunk-SWZQBMXR.mjs} +2 -2
  36. package/dist/cli/{chunk-BR63JXVC.js → chunk-TWXPEHTM.js} +52 -52
  37. package/dist/cli/{chunk-QOTWZX7F.mjs → chunk-UN3F6ZKR.mjs} +5 -5
  38. package/dist/cli/{chunk-NEGUDVTQ.js → chunk-WJ4PNSX3.js} +26 -26
  39. package/dist/cli/{chunk-YRK64KJY.js → chunk-XFVHEDRH.js} +35 -35
  40. package/dist/cli/{chunk-RG4ORMHV.mjs → chunk-XMSVK6O4.mjs} +42 -10
  41. package/dist/cli/{chunk-JIY4IN6O.mjs → chunk-ZTJUGK5I.mjs} +1 -1
  42. package/dist/cli/command-docs.js +2 -2
  43. package/dist/cli/command-docs.mjs +1 -1
  44. package/dist/cli/{csv-BWEZ5PWQ.mjs → csv-NZOZIEQP.mjs} +3 -3
  45. package/dist/cli/{csv-WL7ZWIT5.js → csv-TVVXG42B.js} +12 -12
  46. package/dist/cli/{db-DCTSMDWZ.js → db-3Q2OPJW6.js} +25 -25
  47. package/dist/cli/{db-KAR7YCP4.mjs → db-PEZHN563.mjs} +4 -4
  48. package/dist/cli/{describe-EMVTMHVJ.mjs → describe-GHSBWUUS.mjs} +12 -12
  49. package/dist/cli/{describe-A7FCQTHV.js → describe-M7AP5WVH.js} +16 -16
  50. package/dist/cli/describe-core.d.mts +1 -1
  51. package/dist/cli/describe-core.d.ts +1 -1
  52. package/dist/cli/{executions-XR4PN6WX.mjs → executions-7E3GU4QA.mjs} +4 -4
  53. package/dist/cli/{executions-YSUL2TQR.js → executions-YKR2SAZF.js} +6 -6
  54. package/dist/cli/{feedback-PJSTAXH7.mjs → feedback-JSPMENHA.mjs} +3 -3
  55. package/dist/cli/{feedback-G5IU7E4Y.js → feedback-JTRYBUQZ.js} +7 -7
  56. package/dist/cli/git-6QITFAMM.js +24 -0
  57. package/dist/cli/{git-TJ5Q2Z7A.mjs → git-R4PATSRX.mjs} +4 -4
  58. package/dist/cli/index.js +135 -135
  59. package/dist/cli/index.mjs +37 -37
  60. package/dist/cli/{legacy-noops-GS3DMVI5.js → legacy-noops-3OMVEANW.js} +7 -7
  61. package/dist/cli/{legacy-noops-O6OLRAES.mjs → legacy-noops-W52GTS36.mjs} +4 -4
  62. package/dist/cli/{monitors-BPEMPIO4.mjs → monitors-SIXLFZJ3.mjs} +4 -4
  63. package/dist/cli/{monitors-A4S5WBGO.js → monitors-YA6X5BM4.js} +84 -84
  64. package/dist/cli/{org-VQCNY2WB.js → org-73YXPEZ5.js} +66 -66
  65. package/dist/cli/{org-OL3AIYSH.mjs → org-EYFKI2ZI.mjs} +4 -4
  66. package/dist/cli/{play-7XS2VNKK.mjs → play-7EF6XSS6.mjs} +10 -10
  67. package/dist/cli/{play-U6UJM67Q.js → play-CSRSSDTC.js} +283 -283
  68. package/dist/cli/{providers-RLVGGWTW.js → providers-IHQGSP3E.js} +7 -7
  69. package/dist/cli/{providers-S7Q4I65H.mjs → providers-MKIVZMBG.mjs} +4 -4
  70. package/dist/cli/{quickstart-BNSND2KM.js → quickstart-26QTTEHV.js} +5 -5
  71. package/dist/cli/{quickstart-2XZPRIBJ.mjs → quickstart-COU7YD7S.mjs} +3 -3
  72. package/dist/cli/search-DOK42NBV.js +30 -0
  73. package/dist/cli/{search-UVIIPKWR.mjs → search-YKN4OI4P.mjs} +5 -5
  74. package/dist/cli/{secrets-DQUHORO5.mjs → secrets-CQPQQJ76.mjs} +4 -4
  75. package/dist/cli/{secrets-RKE6ZNTC.js → secrets-W3DT7F7Q.js} +13 -13
  76. package/dist/cli/{sessions-4Y7G5432.js → sessions-GYKUO55E.js} +5 -5
  77. package/dist/cli/{sessions-W77NIN3J.mjs → sessions-U5ULT5CF.mjs} +4 -4
  78. package/dist/cli/{settings-SL5QVPV3.mjs → settings-6MZCTUWD.mjs} +8 -8
  79. package/dist/cli/{settings-CTNYYHZP.js → settings-U6ZOQ3FZ.js} +75 -75
  80. package/dist/cli/{setup-DP6PDQUN.js → setup-HEDWKIGE.js} +42 -42
  81. package/dist/cli/{setup-Y5UBJKVQ.mjs → setup-JFG3GZGE.mjs} +7 -7
  82. package/dist/cli/skills-FOGBZYDP.js +29 -0
  83. package/dist/cli/{skills-LWLEGYDS.mjs → skills-VIY56KK5.mjs} +5 -5
  84. package/dist/cli/{tools-M2XZNF66.mjs → tools-Y64ZTYTZ.mjs} +12 -12
  85. package/dist/cli/tools-ZN54N4NT.js +44 -0
  86. package/dist/cli/{update-EK2YNVKT.mjs → update-2RL67PK2.mjs} +7 -7
  87. package/dist/cli/update-AZCNZXXP.js +31 -0
  88. package/dist/cli/{workflow-BHDL5RHZ.js → workflow-FHKZGJGS.js} +15 -15
  89. package/dist/cli/{workflow-YFZDZT4Z.mjs → workflow-YRI7MT3F.mjs} +5 -5
  90. package/dist/{client-uX4RCcOS.d.ts → client-9nH8tx4R.d.ts} +9 -0
  91. package/dist/{client-jgdWPXpp.d.mts → client-Doml68vC.d.mts} +9 -0
  92. package/dist/index.d.mts +2 -2
  93. package/dist/index.d.ts +2 -2
  94. package/dist/index.js +6 -6
  95. package/dist/index.mjs +3 -3
  96. package/dist/install-integrity.json +82 -82
  97. package/dist/plays/play-description.d.mts +1 -1
  98. package/dist/plays/play-description.d.ts +1 -1
  99. package/dist/plays/run-request.d.mts +1 -1
  100. package/dist/plays/run-request.d.ts +1 -1
  101. package/dist/release.d.mts +1 -1
  102. package/dist/release.d.ts +1 -1
  103. package/dist/release.js +2 -2
  104. package/dist/release.mjs +1 -1
  105. package/package.json +1 -1
  106. package/dist/cli/auth-DN5GJY5Q.js +0 -40
  107. package/dist/cli/git-QHEYASI4.js +0 -24
  108. package/dist/cli/search-J6VQK6XY.js +0 -30
  109. package/dist/cli/skills-G2Y3KXA3.js +0 -29
  110. package/dist/cli/tools-6SKR5PQ4.js +0 -44
  111. package/dist/cli/update-AUB6RNSI.js +0 -31
@@ -2,7 +2,7 @@ import {
2
2
  DeeplineClient,
3
3
  iterateCursorPages,
4
4
  requireBillingIdempotencyKey
5
- } from "./chunk-KAM3ZGK4.mjs";
5
+ } from "./chunk-HO2TOFKF.mjs";
6
6
  import "./chunk-L2VKAASU.mjs";
7
7
  import "./chunk-KCC3FKIW.mjs";
8
8
  import "./chunk-EIMG75BT.mjs";
@@ -13,8 +13,8 @@ import {
13
13
  openInBrowser,
14
14
  printCommandEnvelope,
15
15
  shouldEmitJson
16
- } from "./chunk-7QLXY6RP.mjs";
17
- import "./chunk-JIY4IN6O.mjs";
16
+ } from "./chunk-BQQ4LEQB.mjs";
17
+ import "./chunk-ZTJUGK5I.mjs";
18
18
  import {
19
19
  AuthError,
20
20
  ConfigError
@@ -23,7 +23,7 @@ import "./chunk-DLIRSHV6.mjs";
23
23
  import {
24
24
  DeeplineError
25
25
  } from "./chunk-E4IXDAZI.mjs";
26
- import "./chunk-QHDQIHME.mjs";
26
+ import "./chunk-MGBVCVJ7.mjs";
27
27
  import "./chunk-WZYKRD7T.mjs";
28
28
  import "./chunk-KRD6H754.mjs";
29
29
 
@@ -4,18 +4,18 @@ import {
4
4
  resolveUpdatePlan,
5
5
  runAutomaticUpdatePlan,
6
6
  shouldRunCliAutoUpdate
7
- } from "./chunk-QOTWZX7F.mjs";
7
+ } from "./chunk-UN3F6ZKR.mjs";
8
8
  import {
9
9
  isCiEnvironment
10
- } from "./chunk-UNX3UQFJ.mjs";
10
+ } from "./chunk-RIJ4VTYJ.mjs";
11
11
  import {
12
12
  addJsonNotice,
13
13
  isJsonOutputMode
14
- } from "./chunk-7QLXY6RP.mjs";
14
+ } from "./chunk-BQQ4LEQB.mjs";
15
15
  import {
16
16
  SDK_VERSION,
17
17
  resolveApiKeyForBaseUrl
18
- } from "./chunk-JIY4IN6O.mjs";
18
+ } from "./chunk-ZTJUGK5I.mjs";
19
19
 
20
20
  // src/cli/compatibility-catalog.ts
21
21
  var readers = /* @__PURE__ */ new WeakMap();
@@ -439,6 +439,30 @@ The sequence:
439
439
  Cost:
440
440
  search, describe, list, and grep are free. execute can spend credits; the
441
441
  price is in [[cli:describe <id>]][[mcp:deepline_describe_tool]].
442
+ `
443
+ },
444
+ "tools connect": {
445
+ core: `
446
+ Purpose:
447
+ Connect a provider to the active workspace. Requires an owner or admin.
448
+ Input:
449
+ --credentials-file <path> saves a private JSON object of credential strings.
450
+ --oauth prints an authorization URL. Open it in a browser signed into the
451
+ same Deepline workspace and finish provider consent.
452
+ HubSpot: --preset read-crm, update-crm, marketing, sales-sequences, tickets, or all.
453
+ all requests every supported capability, including write and admin access.
454
+ For custom access use comma-separated --scopes and --optional-scopes instead
455
+ of --preset. --scopes must be nonempty; an empty --optional-scopes string
456
+ requests no optional scopes. Scope names and presets
457
+ are validated by the server; requested access may differ from granted access.
458
+ Output:
459
+ Credentials: confirmation without secret values.
460
+ OAuth: URL, or {provider, redirect_url} with --json. This does not confirm a
461
+ completed connection. The browser must finish authorization.
462
+ Cost:
463
+ Does not spend Deepline credits.
464
+ Example:
465
+ deepline tools connect hubspot --oauth --preset read-crm
442
466
  `
443
467
  },
444
468
  "tools grep": {
@@ -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.437",
52
+ version: "0.3.439",
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."
@@ -1,11 +1,11 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunk632AG45Pjs = require('./chunk-632AG45P.js');
3
+ var _chunk76DCNYH3js = require('./chunk-76DCNYH3.js');
4
4
 
5
5
 
6
6
 
7
7
 
8
- var _chunkBR63JXVCjs = require('./chunk-BR63JXVC.js');
8
+ var _chunkTWXPEHTMjs = require('./chunk-TWXPEHTM.js');
9
9
 
10
10
  // src/cli/play-run-admission.ts
11
11
  function usesInlinePlayAdmission(command, args) {
@@ -14,17 +14,17 @@ function usesInlinePlayAdmission(command, args) {
14
14
  );
15
15
  }
16
16
  async function checkPlayRunCompatibility(baseUrl, maintenancePolicy = "configured") {
17
- if (maintenancePolicy !== "off") _chunkBR63JXVCjs.flushDeferredSkillsSyncNotices.call(void 0, baseUrl);
18
- const compatibility = await _chunk632AG45Pjs.traceCliSpan.call(void 0,
17
+ if (maintenancePolicy !== "off") _chunkTWXPEHTMjs.flushDeferredSkillsSyncNotices.call(void 0, baseUrl);
18
+ const compatibility = await _chunk76DCNYH3js.traceCliSpan.call(void 0,
19
19
  "cli.sdk_compatibility",
20
20
  { baseUrl, command: "plays run" },
21
- () => _chunkBR63JXVCjs.checkSdkCompatibility.call(void 0, baseUrl, {
21
+ () => _chunkTWXPEHTMjs.checkSdkCompatibility.call(void 0, baseUrl, {
22
22
  command: "plays run",
23
23
  persistCache: maintenancePolicy !== "off"
24
24
  })
25
25
  );
26
26
  if (compatibility.error) throw compatibility.error;
27
- _chunkBR63JXVCjs.enforceSdkCompatibilityResponse.call(void 0, compatibility.response, {
27
+ _chunkTWXPEHTMjs.enforceSdkCompatibilityResponse.call(void 0, compatibility.response, {
28
28
  quietAdvisory: true
29
29
  });
30
30
  }
@@ -1,19 +1,19 @@
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
3
 
4
- var _chunkU5PCCQMOjs = require('./chunk-U5PCCQMO.js');
4
+ var _chunkFCF5BP3Qjs = require('./chunk-FCF5BP3Q.js');
5
5
 
6
6
 
7
- var _chunkYRK64KJYjs = require('./chunk-YRK64KJY.js');
7
+ var _chunkXFVHEDRHjs = require('./chunk-XFVHEDRH.js');
8
8
 
9
9
 
10
- var _chunkBR63JXVCjs = require('./chunk-BR63JXVC.js');
10
+ var _chunkTWXPEHTMjs = require('./chunk-TWXPEHTM.js');
11
11
 
12
12
 
13
- var _chunkJU67SR7Mjs = require('./chunk-JU67SR7M.js');
13
+ var _chunkD4VWHTDTjs = require('./chunk-D4VWHTDT.js');
14
14
 
15
15
 
16
- var _chunkQ5LCLAY5js = require('./chunk-Q5LCLAY5.js');
16
+ var _chunkEBW6KRTGjs = require('./chunk-EBW6KRTG.js');
17
17
 
18
18
  // src/cli/commands/update.ts
19
19
  var _child_process = require('child_process');
@@ -495,7 +495,7 @@ function normalizedNpmPrefix(value) {
495
495
  }
496
496
  function resolveNpmGlobalPrefix(env) {
497
497
  try {
498
- const plan = _chunkBR63JXVCjs.resolveShellSpawn.call(void 0,
498
+ const plan = _chunkTWXPEHTMjs.resolveShellSpawn.call(void 0,
499
499
  "npm",
500
500
  ["prefix", "-g"],
501
501
  process.platform,
@@ -556,8 +556,8 @@ function resolveUpdatePlan(options = {}) {
556
556
  const npmGlobalPrefix = options.npmGlobalPrefix !== void 0 ? options.npmGlobalPrefix : resolveNpmGlobalPrefix(env);
557
557
  const hasVerifiedNpmOwnership = inferredInstallPrefix !== null && normalizedNpmPrefix(inferredInstallPrefix) === normalizedNpmPrefix(npmGlobalPrefix);
558
558
  const installPrefix = options.requireVerifiedNpmOwnership ? hasVerifiedNpmOwnership ? inferredInstallPrefix : null : inferredInstallPrefix;
559
- const npmVersion = options.npmVersion === void 0 ? _chunkU5PCCQMOjs.readNpmVersion.call(void 0, env) : options.npmVersion;
560
- const npmGlobalInstallFlags = _chunkU5PCCQMOjs.npmSupportsAllowScripts.call(void 0, npmVersion) ? [...NPM_SDK_INSTALL_COMMON_FLAGS, "--allow-scripts=esbuild"] : NPM_SDK_INSTALL_COMMON_FLAGS;
559
+ const npmVersion = options.npmVersion === void 0 ? _chunkFCF5BP3Qjs.readNpmVersion.call(void 0, env) : options.npmVersion;
560
+ const npmGlobalInstallFlags = _chunkFCF5BP3Qjs.npmSupportsAllowScripts.call(void 0, npmVersion) ? [...NPM_SDK_INSTALL_COMMON_FLAGS, "--allow-scripts=esbuild"] : NPM_SDK_INSTALL_COMMON_FLAGS;
561
561
  const args = installPrefix ? [
562
562
  "install",
563
563
  "-g",
@@ -567,7 +567,7 @@ function resolveUpdatePlan(options = {}) {
567
567
  packageSpec
568
568
  ] : ["install", "-g", ...npmGlobalInstallFlags, packageSpec];
569
569
  const fallbackRegistryUrl = options.npmFallbackRegistryUrl !== void 0 ? options.npmFallbackRegistryUrl : publicNpmFallbackRegistryUrl(
570
- _optionalChain([env, 'access', _22 => _22.DEEPLINE_HOST_URL, 'optionalAccess', _23 => _23.trim, 'call', _24 => _24()]) || _chunkQ5LCLAY5js.autoDetectBaseUrl.call(void 0, )
570
+ _optionalChain([env, 'access', _22 => _22.DEEPLINE_HOST_URL, 'optionalAccess', _23 => _23.trim, 'call', _24 => _24()]) || _chunkEBW6KRTGjs.autoDetectBaseUrl.call(void 0, )
571
571
  );
572
572
  return {
573
573
  kind: "npm-global",
@@ -816,7 +816,7 @@ function sidecarInstallFailure(versionDir) {
816
816
  function runCommand(command, args, env = process.env) {
817
817
  return new Promise((resolveResult) => {
818
818
  let output = "";
819
- const plan = _chunkBR63JXVCjs.resolveShellSpawn.call(void 0, command, args, process.platform, env);
819
+ const plan = _chunkTWXPEHTMjs.resolveShellSpawn.call(void 0, command, args, process.platform, env);
820
820
  const child = _child_process.spawn.call(void 0, plan.command, plan.args, {
821
821
  stdio: ["inherit", "pipe", "pipe"],
822
822
  shell: plan.shell,
@@ -1199,14 +1199,14 @@ async function publishedVersionSupportsPin(version, fallbackRegistryUrl) {
1199
1199
  throw _nullishCoalesce(lastError, () => ( new Error("No npm registry was available")));
1200
1200
  }
1201
1201
  async function runUpdateCommand(options, dependencies = {}) {
1202
- const detectBaseUrl = _nullishCoalesce(dependencies.detectBaseUrl, () => ( _chunkQ5LCLAY5js.autoDetectBaseUrl));
1202
+ const detectBaseUrl = _nullishCoalesce(dependencies.detectBaseUrl, () => ( _chunkEBW6KRTGjs.autoDetectBaseUrl));
1203
1203
  const resolvePlan = _nullishCoalesce(dependencies.resolvePlan, () => ( resolveUpdatePlan));
1204
1204
  const runPlan = _nullishCoalesce(dependencies.runPlan, () => ( runUpdatePlan));
1205
1205
  const syncSkills = _nullishCoalesce(dependencies.syncSkillsIfNeeded, () => ( (async () => {
1206
1206
  const originalWrite = process.stdout.write.bind(process.stdout);
1207
1207
  process.stdout.write = (() => true);
1208
1208
  try {
1209
- const exitCode = await _chunkYRK64KJYjs.runSkillsCommand.call(void 0, { json: true });
1209
+ const exitCode = await _chunkXFVHEDRHjs.runSkillsCommand.call(void 0, { json: true });
1210
1210
  if (exitCode !== 0) {
1211
1211
  throw new Error(
1212
1212
  `Deepline skills update failed with exit ${exitCode}.`
@@ -1277,11 +1277,11 @@ async function runUpdateCommand(options, dependencies = {}) {
1277
1277
  ]
1278
1278
  };
1279
1279
  if (options.json && !options.executeWithJson) {
1280
- _chunkJU67SR7Mjs.printCommandEnvelope.call(void 0, { ...plan, render }, { json: true });
1280
+ _chunkD4VWHTDTjs.printCommandEnvelope.call(void 0, { ...plan, render }, { json: true });
1281
1281
  return 0;
1282
1282
  }
1283
1283
  if (options.printCommand) {
1284
- _chunkJU67SR7Mjs.printCommandEnvelope.call(void 0,
1284
+ _chunkD4VWHTDTjs.printCommandEnvelope.call(void 0,
1285
1285
  {
1286
1286
  ...plan,
1287
1287
  render: {
@@ -1294,7 +1294,7 @@ async function runUpdateCommand(options, dependencies = {}) {
1294
1294
  return 0;
1295
1295
  }
1296
1296
  if (plan.kind === "source" || plan.kind === "homebrew") {
1297
- _chunkJU67SR7Mjs.printCommandEnvelope.call(void 0, { ...plan, render }, { json: false });
1297
+ _chunkD4VWHTDTjs.printCommandEnvelope.call(void 0, { ...plan, render }, { json: false });
1298
1298
  return 0;
1299
1299
  }
1300
1300
  stderr.write(`Updating Deepline SDK/CLI with: ${plan.manualCommand}
@@ -1324,7 +1324,7 @@ To retry with full installer output, run: deepline skills
1324
1324
  );
1325
1325
  }
1326
1326
  if (options.executeWithJson && options.json) {
1327
- _chunkJU67SR7Mjs.printCommandEnvelope.call(void 0,
1327
+ _chunkD4VWHTDTjs.printCommandEnvelope.call(void 0,
1328
1328
  {
1329
1329
  ok: true,
1330
1330
  pinnedVersion
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
2
2
 
3
- var _chunkJU67SR7Mjs = require('./chunk-JU67SR7M.js');
3
+ var _chunkD4VWHTDTjs = require('./chunk-D4VWHTDT.js');
4
4
 
5
5
  // src/cli/maintenance-policy.ts
6
6
  var _commander = require('commander');
@@ -33,7 +33,7 @@ function recordCliTrace(event) {
33
33
  sinceStartMs: now - cliTraceStartedAt,
34
34
  ...event
35
35
  };
36
- _chunkJU67SR7Mjs.writeRawStderr.call(void 0, `[cli-trace] ${JSON.stringify(payload)}
36
+ _chunkD4VWHTDTjs.writeRawStderr.call(void 0, `[cli-trace] ${JSON.stringify(payload)}
37
37
  `);
38
38
  }
39
39
  async function traceCliSpan(phase, fields, run) {
@@ -3,7 +3,7 @@ import {
3
3
  detectAgentRuntime,
4
4
  resolveCliCommandContext,
5
5
  resolveConfig
6
- } from "./chunk-JIY4IN6O.mjs";
6
+ } from "./chunk-ZTJUGK5I.mjs";
7
7
  import {
8
8
  DeeplineError,
9
9
  serializeToolExecutionFailure
@@ -3,7 +3,7 @@
3
3
 
4
4
 
5
5
 
6
- var _chunkQ5LCLAY5js = require('./chunk-Q5LCLAY5.js');
6
+ var _chunkEBW6KRTGjs = require('./chunk-EBW6KRTG.js');
7
7
 
8
8
 
9
9
 
@@ -288,8 +288,8 @@ var BROWSER_OPEN_COOLDOWN_MS = 3e4;
288
288
  var SAME_URL_BROWSER_OPEN_COOLDOWN_MS = 5 * 6e4;
289
289
  var defaultBrowserCommandRunner = childProcess;
290
290
  function getAuthedHttpClient() {
291
- const config = _chunkQ5LCLAY5js.resolveConfig.call(void 0, );
292
- return { config, http: new (0, _chunkQ5LCLAY5js.HttpClient)(config) };
291
+ const config = _chunkEBW6KRTGjs.resolveConfig.call(void 0, );
292
+ return { config, http: new (0, _chunkEBW6KRTGjs.HttpClient)(config) };
293
293
  }
294
294
  function stableOsUserId() {
295
295
  try {
@@ -629,7 +629,7 @@ function collectLocalEnvInfo() {
629
629
  os: `${process.platform} ${process.arch}`,
630
630
  node_version: process.version,
631
631
  home_dir: homeDir,
632
- agent_runtime: _chunkQ5LCLAY5js.detectAgentRuntime.call(void 0, )
632
+ agent_runtime: _chunkEBW6KRTGjs.detectAgentRuntime.call(void 0, )
633
633
  };
634
634
  const env = process.env;
635
635
  const optional = {
@@ -876,9 +876,9 @@ function markdownTableFromRows(rows, preferredColumns = []) {
876
876
  }
877
877
  function withAgentCommandContext(value) {
878
878
  const valueRecord = value !== null && typeof value === "object" && !Array.isArray(value) ? value : null;
879
- return _chunkQ5LCLAY5js.detectAgentRuntime.call(void 0, ) !== "unknown" && valueRecord && !Object.prototype.hasOwnProperty.call(valueRecord, "command_context") ? {
879
+ return _chunkEBW6KRTGjs.detectAgentRuntime.call(void 0, ) !== "unknown" && valueRecord && !Object.prototype.hasOwnProperty.call(valueRecord, "command_context") ? {
880
880
  ...valueRecord,
881
- command_context: _chunkQ5LCLAY5js.resolveCliCommandContext.call(void 0, )
881
+ command_context: _chunkEBW6KRTGjs.resolveCliCommandContext.call(void 0, )
882
882
  } : value;
883
883
  }
884
884
  function printJson(value, fields) {
@@ -439,6 +439,30 @@ The sequence:
439
439
  Cost:
440
440
  search, describe, list, and grep are free. execute can spend credits; the
441
441
  price is in [[cli:describe <id>]][[mcp:deepline_describe_tool]].
442
+ `
443
+ },
444
+ "tools connect": {
445
+ core: `
446
+ Purpose:
447
+ Connect a provider to the active workspace. Requires an owner or admin.
448
+ Input:
449
+ --credentials-file <path> saves a private JSON object of credential strings.
450
+ --oauth prints an authorization URL. Open it in a browser signed into the
451
+ same Deepline workspace and finish provider consent.
452
+ HubSpot: --preset read-crm, update-crm, marketing, sales-sequences, tickets, or all.
453
+ all requests every supported capability, including write and admin access.
454
+ For custom access use comma-separated --scopes and --optional-scopes instead
455
+ of --preset. --scopes must be nonempty; an empty --optional-scopes string
456
+ requests no optional scopes. Scope names and presets
457
+ are validated by the server; requested access may differ from granted access.
458
+ Output:
459
+ Credentials: confirmation without secret values.
460
+ OAuth: URL, or {provider, redirect_url} with --json. This does not confirm a
461
+ completed connection. The browser must finish authorization.
462
+ Cost:
463
+ Does not spend Deepline credits.
464
+ Example:
465
+ deepline tools connect hubspot --oauth --preset read-crm
442
466
  `
443
467
  },
444
468
  "tools grep": {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  writeRawStderr
3
- } from "./chunk-7QLXY6RP.mjs";
3
+ } from "./chunk-BQQ4LEQB.mjs";
4
4
 
5
5
  // src/cli/maintenance-policy.ts
6
6
  import { InvalidArgumentError } from "commander";
@@ -17,7 +17,7 @@ var _chunkXNYIZMNQjs = require('./chunk-XNYIZMNQ.js');
17
17
  var _chunkPPDBRJRWjs = require('./chunk-PPDBRJRW.js');
18
18
 
19
19
 
20
- var _chunkWXJAODJDjs = require('./chunk-WXJAODJD.js');
20
+ var _chunk2I42ORGHjs = require('./chunk-2I42ORGH.js');
21
21
 
22
22
  // src/config.ts
23
23
 
@@ -649,9 +649,9 @@ function resolveCliCommandContext(inputConfig, requestedScope) {
649
649
  }
650
650
 
651
651
  // src/version.ts
652
- var SDK_VERSION = _chunkWXJAODJDjs.SDK_RELEASE.version;
653
- var SDK_API_MAJOR = _chunkWXJAODJDjs.SDK_RELEASE.contracts.api.currentMajor;
654
- var SDK_API_CONTRACT = _nullishCoalesce(_chunkWXJAODJDjs.SDK_RELEASE.contracts.api.legacyWireIds[0], () => ( `api-v${SDK_API_MAJOR}`));
652
+ var SDK_VERSION = _chunk2I42ORGHjs.SDK_RELEASE.version;
653
+ var SDK_API_MAJOR = _chunk2I42ORGHjs.SDK_RELEASE.contracts.api.currentMajor;
654
+ var SDK_API_CONTRACT = _nullishCoalesce(_chunk2I42ORGHjs.SDK_RELEASE.contracts.api.legacyWireIds[0], () => ( `api-v${SDK_API_MAJOR}`));
655
655
 
656
656
  // src/agent-runtime.ts
657
657
 
@@ -2,10 +2,10 @@ import {
2
2
  getAuthedHttpClient,
3
3
  openInBrowser,
4
4
  printCommandEnvelope
5
- } from "./chunk-7QLXY6RP.mjs";
5
+ } from "./chunk-BQQ4LEQB.mjs";
6
6
  import {
7
7
  resolveBaseUrlOnly
8
- } from "./chunk-JIY4IN6O.mjs";
8
+ } from "./chunk-ZTJUGK5I.mjs";
9
9
 
10
10
  // src/cli/commands/git.ts
11
11
  function shellQuote(value) {
@@ -1,10 +1,10 @@
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
3
 
4
- var _chunkJU67SR7Mjs = require('./chunk-JU67SR7M.js');
4
+ var _chunkD4VWHTDTjs = require('./chunk-D4VWHTDT.js');
5
5
 
6
6
 
7
- var _chunkQ5LCLAY5js = require('./chunk-Q5LCLAY5.js');
7
+ var _chunkEBW6KRTGjs = require('./chunk-EBW6KRTG.js');
8
8
 
9
9
  // src/cli/commands/sessions.ts
10
10
 
@@ -139,7 +139,7 @@ function currentSessionFile(agent) {
139
139
  const newestFirst = listSessionFiles(agent).sort(
140
140
  (a, b) => b.mtimeMs - a.mtimeMs
141
141
  );
142
- const sessionId = _chunkQ5LCLAY5js.agentSessionIdFromEnvironment.call(void 0,
142
+ const sessionId = _chunkEBW6KRTGjs.agentSessionIdFromEnvironment.call(void 0,
143
143
  process.env,
144
144
  agent === "auto" ? void 0 : agent === "claude" ? "claude_code" : "codex"
145
145
  );
@@ -451,7 +451,7 @@ function buildSessionUploadContent(raw) {
451
451
  return { encodedContent: encoded, needsChunking: true };
452
452
  }
453
453
  async function uploadPayload(path, payload) {
454
- const { http } = _chunkJU67SR7Mjs.getAuthedHttpClient.call(void 0, );
454
+ const { http } = _chunkD4VWHTDTjs.getAuthedHttpClient.call(void 0, );
455
455
  return await http.post(path, payload);
456
456
  }
457
457
  async function uploadChunkedSessions(sessions, options) {
@@ -484,7 +484,7 @@ async function uploadChunkedSessions(sessions, options) {
484
484
  ...options.rating ? { rating: options.rating } : {}
485
485
  });
486
486
  const sessionIds = sessions.map((session) => session.sessionId);
487
- _chunkJU67SR7Mjs.printCommandEnvelope.call(void 0,
487
+ _chunkD4VWHTDTjs.printCommandEnvelope.call(void 0,
488
488
  {
489
489
  ...response,
490
490
  ok: true,
@@ -516,7 +516,7 @@ async function handleSessionsSend(options) {
516
516
  filename: _path.basename.call(void 0, filePath),
517
517
  ...rating ? { rating } : {}
518
518
  });
519
- _chunkJU67SR7Mjs.printCommandEnvelope.call(void 0,
519
+ _chunkD4VWHTDTjs.printCommandEnvelope.call(void 0,
520
520
  {
521
521
  ...response2,
522
522
  ok: true,
@@ -566,7 +566,7 @@ async function handleSessionsSend(options) {
566
566
  ...rating ? { rating } : {}
567
567
  });
568
568
  const sessionIds = built.map((session) => session.sessionId);
569
- _chunkJU67SR7Mjs.printCommandEnvelope.call(void 0,
569
+ _chunkD4VWHTDTjs.printCommandEnvelope.call(void 0,
570
570
  {
571
571
  ...response,
572
572
  ok: true,
@@ -674,7 +674,7 @@ ${refreshMeta}
674
674
  </body>
675
675
  </html>`;
676
676
  _fs.writeFileSync.call(void 0, outputPath, html, "utf8");
677
- _chunkJU67SR7Mjs.printCommandEnvelope.call(void 0,
677
+ _chunkD4VWHTDTjs.printCommandEnvelope.call(void 0,
678
678
  {
679
679
  ok: true,
680
680
  file: outputPath,
@@ -1,6 +1,6 @@
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 _chunkBR63JXVCjs = require('./chunk-BR63JXVC.js');
3
+ var _chunkTWXPEHTMjs = require('./chunk-TWXPEHTM.js');
4
4
 
5
5
  // src/cli/npm-script-policy.ts
6
6
  var _child_process = require('child_process');
@@ -13,7 +13,7 @@ function npmSupportsAllowScripts(version) {
13
13
  }
14
14
  function readNpmVersion(env) {
15
15
  try {
16
- const plan = _chunkBR63JXVCjs.resolveShellSpawn.call(void 0, "npm", ["--version"], process.platform, env);
16
+ const plan = _chunkTWXPEHTMjs.resolveShellSpawn.call(void 0, "npm", ["--version"], process.platform, env);
17
17
  const result = _child_process.spawnSync.call(void 0, plan.command, plan.args, {
18
18
  encoding: "utf8",
19
19
  env,
@@ -11,10 +11,10 @@ import {
11
11
  skillsInstallLeasePath,
12
12
  skillsSourceUrl,
13
13
  syncSdkSkillsIfNeeded
14
- } from "./chunk-UNX3UQFJ.mjs";
14
+ } from "./chunk-RIJ4VTYJ.mjs";
15
15
  import {
16
16
  printCommandEnvelope
17
- } from "./chunk-7QLXY6RP.mjs";
17
+ } from "./chunk-BQQ4LEQB.mjs";
18
18
  import {
19
19
  SDK_VERSION,
20
20
  autoDetectBaseUrl,
@@ -22,7 +22,7 @@ import {
22
22
  ensureProjectPrivatePathsIgnored,
23
23
  resolveProjectPinTarget,
24
24
  sdkCliStateDirPath
25
- } from "./chunk-JIY4IN6O.mjs";
25
+ } from "./chunk-ZTJUGK5I.mjs";
26
26
 
27
27
  // src/cli/commands/skills.ts
28
28
  import { spawn } from "child_process";
@@ -28,7 +28,7 @@ import {
28
28
  RUNTIME_ENVIRONMENT_TOKEN_HEADER,
29
29
  SDK_API_MAJOR,
30
30
  resolveConfig
31
- } from "./chunk-JIY4IN6O.mjs";
31
+ } from "./chunk-ZTJUGK5I.mjs";
32
32
  import {
33
33
  CustomerDbQueryOutcomeUnknownError
34
34
  } from "./chunk-MAMVGOSC.mjs";
@@ -5181,6 +5181,19 @@ var DeeplineClient = class _DeeplineClient {
5181
5181
  credentials
5182
5182
  });
5183
5183
  }
5184
+ /** Start provider OAuth and return the URL to open in a browser. */
5185
+ async startIntegrationOAuth(provider, options = {}) {
5186
+ const scopes = options.scopes?.map((scope) => scope.trim()).filter(Boolean);
5187
+ if (scopes !== void 0 && scopes.length === 0) {
5188
+ throw new Error("scopes must contain at least one OAuth scope.");
5189
+ }
5190
+ return this.http.post("/api/v2/integrations/connect", {
5191
+ provider,
5192
+ ...options.preset !== void 0 ? { preset: options.preset } : {},
5193
+ ...scopes !== void 0 ? { scopes } : {},
5194
+ ...options.optionalScopes !== void 0 ? { optional_scopes: options.optionalScopes } : {}
5195
+ });
5196
+ }
5184
5197
  /** Start the Slack OAuth flow required by product notifications. */
5185
5198
  async connectNotificationSlack(options) {
5186
5199
  return this.http.post("/api/v2/integrations/connect", {
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  getAuthedHttpClient,
3
3
  printCommandEnvelope
4
- } from "./chunk-7QLXY6RP.mjs";
4
+ } from "./chunk-BQQ4LEQB.mjs";
5
5
  import {
6
6
  agentSessionIdFromEnvironment
7
- } from "./chunk-JIY4IN6O.mjs";
7
+ } from "./chunk-ZTJUGK5I.mjs";
8
8
 
9
9
  // src/cli/commands/sessions.ts
10
10
  import {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  resolveShellSpawn
3
- } from "./chunk-UNX3UQFJ.mjs";
3
+ } from "./chunk-RIJ4VTYJ.mjs";
4
4
 
5
5
  // src/cli/npm-script-policy.ts
6
6
  import { spawnSync } from "child_process";
@@ -3,15 +3,15 @@
3
3
  var _chunkZM2YPJQJjs = require('./chunk-ZM2YPJQJ.js');
4
4
 
5
5
 
6
- var _chunkXGKH5EC7js = require('./chunk-XGKH5EC7.js');
6
+ var _chunkMPY4UD6Hjs = require('./chunk-MPY4UD6H.js');
7
7
 
8
8
 
9
9
 
10
- var _chunkJU67SR7Mjs = require('./chunk-JU67SR7M.js');
10
+ var _chunkD4VWHTDTjs = require('./chunk-D4VWHTDT.js');
11
11
 
12
12
 
13
13
 
14
- var _chunkQ5LCLAY5js = require('./chunk-Q5LCLAY5.js');
14
+ var _chunkEBW6KRTGjs = require('./chunk-EBW6KRTG.js');
15
15
 
16
16
 
17
17
 
@@ -5713,7 +5713,7 @@ var _fs = require('fs');
5713
5713
  var _path = require('path');
5714
5714
  var SEARCH_REF_TTL_MS = 15 * 6e4;
5715
5715
  function lastSearchPath() {
5716
- return _path.join.call(void 0, _chunkQ5LCLAY5js.sdkCliStateDirPath.call(void 0, _chunkQ5LCLAY5js.resolveConfig.call(void 0, ).baseUrl), "last-search.json");
5716
+ return _path.join.call(void 0, _chunkEBW6KRTGjs.sdkCliStateDirPath.call(void 0, _chunkEBW6KRTGjs.resolveConfig.call(void 0, ).baseUrl), "last-search.json");
5717
5717
  }
5718
5718
  function rememberSearchRef(searchRef) {
5719
5719
  try {
@@ -5877,7 +5877,7 @@ var OPTIONAL_COLUMNS = [
5877
5877
  ];
5878
5878
  function renderSearchResults(result, summaryWidth = DEFAULT_SUMMARY_WIDTH) {
5879
5879
  if (result.results.length === 0)
5880
- return _chunkJU67SR7Mjs.renderCommandEnvelopeText.call(void 0, result);
5880
+ return _chunkD4VWHTDTjs.renderCommandEnvelopeText.call(void 0, result);
5881
5881
  const rows = result.results.map((item) => searchRow(item, summaryWidth));
5882
5882
  const kinds = new Set(rows.map((row) => row.kind));
5883
5883
  const onlyTools = kinds.size === 1 && kinds.has("tool");
@@ -5902,7 +5902,7 @@ function renderSearchResults(result, summaryWidth = DEFAULT_SUMMARY_WIDTH) {
5902
5902
  actions: _optionalChain([render, 'optionalAccess', _12 => _12.actions])
5903
5903
  };
5904
5904
  const followUps = _optionalChain([remaining, 'access', _13 => _13.sections, 'optionalAccess', _14 => _14.length]) || _optionalChain([remaining, 'access', _15 => _15.actions, 'optionalAccess', _16 => _16.length]) ? `
5905
- ${_chunkJU67SR7Mjs.renderCommandEnvelopeText.call(void 0, { render: remaining })}` : "";
5905
+ ${_chunkD4VWHTDTjs.renderCommandEnvelopeText.call(void 0, { render: remaining })}` : "";
5906
5906
  const notes = rows.flatMap(
5907
5907
  (row) => row.notes.map((note) => ` ${row.id}: ${note}`)
5908
5908
  );
@@ -5987,7 +5987,7 @@ async function runSearch(queryInput, options, types, exclude = []) {
5987
5987
  console.error("--summary-width must be an integer of at least 2.");
5988
5988
  return 1;
5989
5989
  }
5990
- const { search_ref: searchRef, ...result } = await new (0, _chunkXGKH5EC7js.DeeplineClient)().search({
5990
+ const { search_ref: searchRef, ...result } = await new (0, _chunkMPY4UD6Hjs.DeeplineClient)().search({
5991
5991
  query,
5992
5992
  types,
5993
5993
  exclude,
@@ -6001,7 +6001,7 @@ async function runSearch(queryInput, options, types, exclude = []) {
6001
6001
  });
6002
6002
  if (searchRef) rememberSearchRef(searchRef);
6003
6003
  pointAtDescribe(result);
6004
- _chunkJU67SR7Mjs.printCommandEnvelope.call(void 0, result, {
6004
+ _chunkD4VWHTDTjs.printCommandEnvelope.call(void 0, result, {
6005
6005
  json: options.json === true,
6006
6006
  text: renderSearchResults(result, summaryWidth)
6007
6007
  });