deepline 0.3.342 → 0.3.344

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 (105) hide show
  1. package/dist/bundling-sources/sdk/src/http.ts +9 -1
  2. package/dist/bundling-sources/sdk/src/release.ts +1 -1
  3. package/dist/bundling-sources/shared_libs/play-runtime/runner-app/index.ts +9 -1
  4. package/dist/bundling-sources/shared_libs/plays/csv-text-repair.ts +145 -0
  5. package/dist/bundling-sources/shared_libs/product-notifications/billing-sales.ts +2 -0
  6. package/dist/bundling-sources/shared_libs/product-notifications/catalog.ts +33 -0
  7. package/dist/bundling-sources/shared_libs/product-notifications/events.ts +15 -0
  8. package/dist/cli/auth-6ABMIWQQ.js +31 -0
  9. package/dist/cli/{auth-7GVSCIFY.mjs → auth-KHHPB2DO.mjs} +4 -4
  10. package/dist/cli/{billing-CQDTIFBF.js → billing-HAR4AJZT.js} +71 -71
  11. package/dist/cli/{billing-BVCHOOOJ.mjs → billing-RLK734WE.mjs} +4 -4
  12. package/dist/cli/{chunk-SBXCXMYT.mjs → chunk-23D4YCM6.mjs} +1 -1
  13. package/dist/cli/{chunk-4LPBIUQ2.mjs → chunk-2MSG6WCC.mjs} +2 -2
  14. package/dist/cli/{chunk-W5BMDA4F.js → chunk-475OQE7H.js} +2 -2
  15. package/dist/cli/{chunk-FT4V72RC.mjs → chunk-4DIFNYJZ.mjs} +2 -2
  16. package/dist/cli/{chunk-ECBT2RXL.mjs → chunk-BQYPKV4P.mjs} +8 -8
  17. package/dist/cli/{chunk-VZHA6YHU.mjs → chunk-CIV43IXR.mjs} +4 -4
  18. package/dist/cli/{chunk-GEGCG7MG.mjs → chunk-CMK6UNJA.mjs} +8 -8
  19. package/dist/cli/{chunk-OJH4W52K.mjs → chunk-DRHVFFMJ.mjs} +94 -6
  20. package/dist/cli/{chunk-ERC3XIUO.js → chunk-FHCBNR7M.js} +27 -28
  21. package/dist/cli/{chunk-BIA27ZNI.mjs → chunk-GJYCHN2L.mjs} +2 -2
  22. package/dist/cli/{chunk-G6TM2GK2.mjs → chunk-J5NN6XCF.mjs} +5 -1
  23. package/dist/cli/{chunk-B2PMPAIJ.js → chunk-J5P35NOT.js} +60 -60
  24. package/dist/cli/{chunk-K2P365R2.js → chunk-JXCEXXKW.js} +57 -67
  25. package/dist/cli/{chunk-5Y2DDT5K.js → chunk-LELCMU5K.js} +26 -26
  26. package/dist/cli/{chunk-IDTUEEF4.mjs → chunk-M5FYGL42.mjs} +1 -1
  27. package/dist/cli/{chunk-DP2XSXRA.js → chunk-MQIHCQ5Z.js} +8 -8
  28. package/dist/cli/{chunk-3BY3UMYO.js → chunk-QO6T7ETF.js} +15 -15
  29. package/dist/cli/{chunk-GAQGAH34.mjs → chunk-QZMF7VDU.mjs} +22 -23
  30. package/dist/cli/{chunk-AC7QCWXV.mjs → chunk-RN7NIZIL.mjs} +1 -1
  31. package/dist/cli/{chunk-3BGGXEO5.js → chunk-SJIF45BK.js} +8 -4
  32. package/dist/cli/{chunk-KM3JYG56.js → chunk-TYPYDSNY.js} +9 -9
  33. package/dist/cli/{chunk-4EW5CMVL.js → chunk-UWV3BA43.js} +227 -227
  34. package/dist/cli/{chunk-DL5YQFZ6.js → chunk-VL5IYXS3.js} +112 -24
  35. package/dist/cli/{chunk-XAMWA45P.mjs → chunk-XRZUDK6O.mjs} +11 -21
  36. package/dist/cli/{chunk-KYHNFT7T.js → chunk-Y6PJVWDY.js} +1 -1
  37. package/dist/cli/{chunk-LQGHKRNZ.js → chunk-ZUHK5OX3.js} +48 -48
  38. package/dist/cli/{client-UMFL6LP2.mjs → client-JWDU663V.mjs} +3 -3
  39. package/dist/cli/client-KETSZR46.js +20 -0
  40. package/dist/cli/{csv-HYZKDWVL.js → csv-7AW5GZ4K.js} +12 -12
  41. package/dist/cli/{csv-EFHLVMV2.mjs → csv-CIAWYPZO.mjs} +3 -3
  42. package/dist/cli/{db-GVC55S5W.mjs → db-SX73JJBH.mjs} +4 -4
  43. package/dist/cli/{db-RPWOYGIJ.js → db-UENUIWQN.js} +29 -29
  44. package/dist/cli/{describe-X5WLZXOS.mjs → describe-4SC5G2FG.mjs} +8 -8
  45. package/dist/cli/{describe-EPNNEVZG.js → describe-7OGZQAGF.js} +15 -15
  46. package/dist/cli/{executions-MEQFDGRU.js → executions-UDXQNB34.js} +6 -6
  47. package/dist/cli/{executions-MPEF66XO.mjs → executions-YB4IAUTW.mjs} +4 -4
  48. package/dist/cli/{feedback-SCZSITXP.js → feedback-5SGAGRAW.js} +7 -7
  49. package/dist/cli/{feedback-I4UNJEHC.mjs → feedback-76QWZSW3.mjs} +3 -3
  50. package/dist/cli/git-4PRJV7B3.js +23 -0
  51. package/dist/cli/{git-5H4ZVTTV.mjs → git-ESESPEVB.mjs} +4 -4
  52. package/dist/cli/index.js +80 -80
  53. package/dist/cli/index.mjs +32 -32
  54. package/dist/cli/{legacy-noops-326HSG4F.mjs → legacy-noops-6F6QSRDB.mjs} +4 -4
  55. package/dist/cli/{legacy-noops-BH6IRSKQ.js → legacy-noops-E74OIJCW.js} +7 -7
  56. package/dist/cli/{monitors-SIXPXBKU.js → monitors-4MIXICCR.js} +85 -85
  57. package/dist/cli/{monitors-AZ64IIUO.mjs → monitors-USOHPXUY.mjs} +4 -4
  58. package/dist/cli/{org-2FAU4GBK.mjs → org-2RRIFNXJ.mjs} +4 -4
  59. package/dist/cli/{org-4VX6L3SZ.js → org-DO3Q6L7S.js} +60 -60
  60. package/dist/cli/{play-7VQABXW7.mjs → play-KAXYPLCQ.mjs} +7 -7
  61. package/dist/cli/play-SHRBJAO4.js +153 -0
  62. package/dist/cli/{providers-DOFRWRDC.mjs → providers-FKHLPGQO.mjs} +4 -4
  63. package/dist/cli/{providers-WWEGDKWO.js → providers-RCUITFFY.js} +7 -7
  64. package/dist/cli/{quickstart-JXN53CUE.mjs → quickstart-CDBWA6IK.mjs} +3 -3
  65. package/dist/cli/{quickstart-64NWQZXP.js → quickstart-XGU4M4Z5.js} +5 -5
  66. package/dist/cli/{search-NREYIQO7.mjs → search-QA4DAJPS.mjs} +5 -5
  67. package/dist/cli/search-ZHYH2BA3.js +26 -0
  68. package/dist/cli/{secrets-LO2S3ASQ.mjs → secrets-6S2CDL2M.mjs} +4 -4
  69. package/dist/cli/{secrets-FGZSIICG.js → secrets-KYKXEHNR.js} +13 -13
  70. package/dist/cli/{sessions-VOLIMKDL.js → sessions-PWAIUF7I.js} +5 -5
  71. package/dist/cli/{sessions-FYHXMESN.mjs → sessions-WGLVMQYC.mjs} +4 -4
  72. package/dist/cli/{settings-EYQHZTCR.js → settings-CNWO5VFJ.js} +74 -74
  73. package/dist/cli/{settings-WABX7ZVG.mjs → settings-FQ5CWYNQ.mjs} +7 -7
  74. package/dist/cli/{setup-7H5EAAZK.js → setup-ABIO2LJD.js} +41 -41
  75. package/dist/cli/{setup-JVECE4TU.mjs → setup-RRT66ENS.mjs} +6 -6
  76. package/dist/cli/{skills-BEVLJDUH.mjs → skills-3LY2RQE3.mjs} +4 -4
  77. package/dist/cli/skills-OBTT3OF7.js +28 -0
  78. package/dist/cli/tools-DMXHSMU2.js +40 -0
  79. package/dist/cli/{tools-5D32S2CY.mjs → tools-TQMHPW3U.mjs} +6 -6
  80. package/dist/cli/update-4CK752WQ.js +28 -0
  81. package/dist/cli/{update-EMNDLIDA.mjs → update-6U4ASVZX.mjs} +6 -6
  82. package/dist/cli/{workflow-BBMZ2A2Y.js → workflow-GVXAFVXF.js} +15 -15
  83. package/dist/cli/{workflow-MMTSJB3D.mjs → workflow-XLE4N3W3.mjs} +5 -5
  84. package/dist/{client-B-hjM1NX.d.mts → client-BHReRdWK.d.mts} +41 -0
  85. package/dist/{client-txa3om01.d.ts → client-DW3zASj8.d.ts} +41 -0
  86. package/dist/index.d.mts +2 -2
  87. package/dist/index.d.ts +2 -2
  88. package/dist/index.js +6 -6
  89. package/dist/index.mjs +3 -3
  90. package/dist/install-integrity.json +77 -76
  91. package/dist/plays/run-request.d.mts +1 -1
  92. package/dist/plays/run-request.d.ts +1 -1
  93. package/dist/release.d.mts +1 -1
  94. package/dist/release.d.ts +1 -1
  95. package/dist/release.js +2 -2
  96. package/dist/release.mjs +1 -1
  97. package/package.json +1 -1
  98. package/dist/cli/auth-BFOCE76P.js +0 -31
  99. package/dist/cli/client-FCOLYBLU.js +0 -20
  100. package/dist/cli/git-YA73D6HG.js +0 -23
  101. package/dist/cli/play-SDZWMYJM.js +0 -153
  102. package/dist/cli/search-VKOBBQAN.js +0 -26
  103. package/dist/cli/skills-4WHWKCUN.js +0 -28
  104. package/dist/cli/tools-SGLGLR2H.js +0 -40
  105. package/dist/cli/update-HRB4G5LS.js +0 -28
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  npmSupportsAllowScripts,
3
3
  readNpmVersion
4
- } from "./chunk-IDTUEEF4.mjs";
4
+ } from "./chunk-M5FYGL42.mjs";
5
5
  import {
6
6
  resolveShellSpawn,
7
7
  runSkillsCommand
8
- } from "./chunk-4LPBIUQ2.mjs";
8
+ } from "./chunk-2MSG6WCC.mjs";
9
9
  import {
10
10
  printCommandEnvelope
11
- } from "./chunk-OJH4W52K.mjs";
11
+ } from "./chunk-DRHVFFMJ.mjs";
12
12
  import {
13
13
  autoDetectBaseUrl
14
- } from "./chunk-G6TM2GK2.mjs";
14
+ } from "./chunk-J5NN6XCF.mjs";
15
15
 
16
16
  // src/cli/commands/update.ts
17
17
  import { spawn, spawnSync } from "child_process";
@@ -10,7 +10,7 @@ import {
10
10
  import {
11
11
  recentSearchRef,
12
12
  registerDeprecatedSearchCommand
13
- } from "./chunk-GAQGAH34.mjs";
13
+ } from "./chunk-QZMF7VDU.mjs";
14
14
  import {
15
15
  extractSummaryFields,
16
16
  projectRowOutput,
@@ -22,7 +22,7 @@ import {
22
22
  import {
23
23
  DeeplineClient,
24
24
  validateExecutionIdempotencyKey
25
- } from "./chunk-SBXCXMYT.mjs";
25
+ } from "./chunk-23D4YCM6.mjs";
26
26
  import {
27
27
  beginToolExecuteCommand,
28
28
  getToolExecuteInvocationId,
@@ -36,11 +36,11 @@ import {
36
36
  printJsonError,
37
37
  renderCommandEnvelopeText,
38
38
  shouldEmitJson
39
- } from "./chunk-OJH4W52K.mjs";
39
+ } from "./chunk-DRHVFFMJ.mjs";
40
40
  import {
41
41
  resolveConfig,
42
42
  sdkCliStateDirPath
43
- } from "./chunk-G6TM2GK2.mjs";
43
+ } from "./chunk-J5NN6XCF.mjs";
44
44
  import {
45
45
  playToolListGetterMode
46
46
  } from "./chunk-NTVTZAVZ.mjs";
@@ -857,7 +857,7 @@ function playLikeToolExecuteErrorMessage(toolId, tool) {
857
857
  return [
858
858
  `${toolId} is a workflow/play entry, not an atomic provider tool.`,
859
859
  nextStep,
860
- 'Or search provider tools only with: deepline search --type tools "<query>" --json'
860
+ 'Or search provider tools only with: deepline search "<input you have -> result you need>" --type tools --json'
861
861
  ].join("\n");
862
862
  }
863
863
  function printPlayLikeToolExecuteError(toolId, tool) {
@@ -883,7 +883,7 @@ Concepts:
883
883
  through the plays namespace.
884
884
 
885
885
  Common commands:
886
- deepline search --type tools email --json
886
+ deepline search "name and company domain -> work email" --type tools --json
887
887
  deepline describe hunter_email_verifier
888
888
  deepline tools execute hunter_email_verifier --input '{"email":"a@b.com"}'
889
889
  deepline billing usage --request-id <job_id> --json
@@ -915,7 +915,7 @@ Examples:
915
915
  deepline tools list email_finder
916
916
  deepline tools list email_finder --json
917
917
  deepline tools list --categories email_finder --json
918
- deepline search --type tools email --json
918
+ deepline search "name and company domain -> work email" --type tools --json
919
919
  `
920
920
  ).option(
921
921
  "--categories <categories>",
@@ -1029,7 +1029,7 @@ Examples:
1029
1029
  process.exitCode = await narrowView();
1030
1030
  return;
1031
1031
  }
1032
- const { describeAnything } = await import("./describe-X5WLZXOS.mjs");
1032
+ const { describeAnything } = await import("./describe-4SC5G2FG.mjs");
1033
1033
  process.exitCode = await describeAnything(
1034
1034
  toolId,
1035
1035
  { ...options, kinds: ["tools", "monitors"], fetchedTool: metadata },
@@ -3,7 +3,7 @@ import {
3
3
  detectAgentRuntime,
4
4
  resolveCliCommandContext,
5
5
  resolveConfig
6
- } from "./chunk-G6TM2GK2.mjs";
6
+ } from "./chunk-J5NN6XCF.mjs";
7
7
  import {
8
8
  DeeplineError
9
9
  } from "./chunk-NXGCO4JB.mjs";
@@ -131,6 +131,95 @@ import { homedir, tmpdir, userInfo } from "os";
131
131
  import { dirname, join, resolve } from "path";
132
132
  import * as childProcess from "child_process";
133
133
  import { parse } from "csv-parse/sync";
134
+
135
+ // ../plays/csv-text-repair.ts
136
+ var CP1252_HIGH_TO_BYTE = /* @__PURE__ */ new Map([
137
+ [8364, 128],
138
+ [8218, 130],
139
+ [402, 131],
140
+ [8222, 132],
141
+ [8230, 133],
142
+ [8224, 134],
143
+ [8225, 135],
144
+ [710, 136],
145
+ [8240, 137],
146
+ [352, 138],
147
+ [8249, 139],
148
+ [338, 140],
149
+ [381, 142],
150
+ [8216, 145],
151
+ [8217, 146],
152
+ [8220, 147],
153
+ [8221, 148],
154
+ [8226, 149],
155
+ [8211, 150],
156
+ [8212, 151],
157
+ [732, 152],
158
+ [8482, 153],
159
+ [353, 154],
160
+ [8250, 155],
161
+ [339, 156],
162
+ [382, 158],
163
+ [376, 159]
164
+ ]);
165
+ var MAC_ROMAN_HIGH = "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u03A9\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\u20AC\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uF8FF\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7";
166
+ var MAC_ROMAN_TO_BYTE = new Map(
167
+ [...MAC_ROMAN_HIGH].map((ch, i) => [ch.codePointAt(0), 128 + i])
168
+ );
169
+ var STRICT_UTF8 = new TextDecoder("utf-8", { fatal: true });
170
+ function cp1252Byte(code) {
171
+ if (code < 256) return code;
172
+ return CP1252_HIGH_TO_BYTE.get(code) ?? null;
173
+ }
174
+ function macRomanByte(code) {
175
+ if (code < 128) return code;
176
+ return MAC_ROMAN_TO_BYTE.get(code) ?? null;
177
+ }
178
+ function decodeAs(run, toByte) {
179
+ const bytes = new Uint8Array(run.length);
180
+ let i = 0;
181
+ for (const ch of run) {
182
+ const byte = toByte(ch.codePointAt(0));
183
+ if (byte === null) return null;
184
+ bytes[i++] = byte;
185
+ }
186
+ if (!bytes.subarray(0, i).some((b) => b >= 194 && b <= 244)) return null;
187
+ try {
188
+ return STRICT_UTF8.decode(bytes.subarray(0, i));
189
+ } catch {
190
+ return null;
191
+ }
192
+ }
193
+ var NON_ASCII_RUN = /[^\u0000-\u007f]+/g;
194
+ function repairMisdecodedText(value) {
195
+ if (!/[^\u0000-\u007f]/.test(value)) return value;
196
+ let changed = false;
197
+ const repaired = value.replace(NON_ASCII_RUN, (run) => {
198
+ const fixed = decodeAs(run, cp1252Byte) ?? decodeAs(run, macRomanByte);
199
+ if (fixed === null || fixed === run) return run;
200
+ changed = true;
201
+ return fixed;
202
+ });
203
+ return changed ? repaired : value;
204
+ }
205
+ function repairRecordText(record) {
206
+ for (const key of Object.keys(record)) {
207
+ const value = record[key];
208
+ if (typeof value === "string") {
209
+ record[key] = repairMisdecodedText(value);
210
+ }
211
+ }
212
+ return record;
213
+ }
214
+ function csvInputTextOptions() {
215
+ return {
216
+ bom: true,
217
+ columns: (header) => header.map(repairMisdecodedText),
218
+ on_record: repairRecordText
219
+ };
220
+ }
221
+
222
+ // src/cli/utils.ts
134
223
  import { stringify } from "csv-stringify/sync";
135
224
  var BROWSER_OPEN_COOLDOWN_MS = 3e4;
136
225
  var SAME_URL_BROWSER_OPEN_COOLDOWN_MS = 5 * 6e4;
@@ -504,11 +593,10 @@ function collectLocalEnvInfo() {
504
593
  function readCsvRows(csvPath) {
505
594
  const raw = readFileSync(resolve(csvPath), "utf-8");
506
595
  return parse(raw, {
507
- // `csv-parse` otherwise treats a BOM before an opening quote as a field
508
- // value, then rejects the quote as invalid. A UTF-8 BOM is a valid file
509
- // prefix and must not become part of the first column name either.
510
- bom: true,
511
- columns: true,
596
+ // Strips the UTF-8 BOM (`csv-parse` otherwise treats one before an opening
597
+ // quote as a field value) and repairs mis-decoded UTF-8 in headers and
598
+ // cells, matching what the Play runtime does with the same file.
599
+ ...csvInputTextOptions(),
512
600
  skip_empty_lines: true
513
601
  });
514
602
  }
@@ -1,21 +1,24 @@
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 _chunkKM3JYG56js = require('./chunk-KM3JYG56.js');
3
+ var _chunkTYPYDSNYjs = require('./chunk-TYPYDSNY.js');
4
4
 
5
5
 
6
6
 
7
- var _chunkDL5YQFZ6js = require('./chunk-DL5YQFZ6.js');
7
+ var _chunkVL5IYXS3js = require('./chunk-VL5IYXS3.js');
8
8
 
9
9
 
10
10
 
11
- var _chunk3BGGXEO5js = require('./chunk-3BGGXEO5.js');
11
+ var _chunkSJIF45BKjs = require('./chunk-SJIF45BK.js');
12
+
13
+ // src/cli/commands/search.ts
14
+ var _commander = require('commander');
12
15
 
13
16
  // src/cli/search-ref.ts
14
17
  var _fs = require('fs');
15
18
  var _path = require('path');
16
19
  var SEARCH_REF_TTL_MS = 15 * 6e4;
17
20
  function lastSearchPath() {
18
- return _path.join.call(void 0, _chunk3BGGXEO5js.sdkCliStateDirPath.call(void 0, _chunk3BGGXEO5js.resolveConfig.call(void 0, ).baseUrl), "last-search.json");
21
+ return _path.join.call(void 0, _chunkSJIF45BKjs.sdkCliStateDirPath.call(void 0, _chunkSJIF45BKjs.resolveConfig.call(void 0, ).baseUrl), "last-search.json");
19
22
  }
20
23
  function rememberSearchRef(searchRef) {
21
24
  try {
@@ -127,7 +130,7 @@ function searchRow(item) {
127
130
  }
128
131
  function renderSearchResults(result) {
129
132
  if (result.results.length === 0)
130
- return _chunkDL5YQFZ6js.renderCommandEnvelopeText.call(void 0, result);
133
+ return _chunkVL5IYXS3js.renderCommandEnvelopeText.call(void 0, result);
131
134
  const rows = result.results.map(searchRow);
132
135
  const kinds = new Set(rows.map((row) => row.kind));
133
136
  const onlyTools = kinds.size === 1 && kinds.has("tool");
@@ -144,7 +147,7 @@ function renderSearchResults(result) {
144
147
  actions: _optionalChain([render, 'optionalAccess', _9 => _9.actions])
145
148
  };
146
149
  const followUps = _optionalChain([remaining, 'access', _10 => _10.sections, 'optionalAccess', _11 => _11.length]) || _optionalChain([remaining, 'access', _12 => _12.actions, 'optionalAccess', _13 => _13.length]) ? `
147
- ${_chunkDL5YQFZ6js.renderCommandEnvelopeText.call(void 0, { render: remaining })}` : "";
150
+ ${_chunkVL5IYXS3js.renderCommandEnvelopeText.call(void 0, { render: remaining })}` : "";
148
151
  const notes = rows.flatMap(
149
152
  (row) => row.notes.map((note) => ` ${row.id}: ${note}`)
150
153
  );
@@ -171,7 +174,7 @@ var SEARCH_TYPES = [
171
174
  "prebuilts",
172
175
  "custom"
173
176
  ];
174
- var USAGE = "Usage: deepline search [query] [--type <types>] [--categories <categories>] [--search_terms <terms>] [--json]";
177
+ var USAGE = "Usage: deepline search [task] [--type <types>] [--categories <categories>] [--search_terms <terms>] [--json]";
175
178
  function parseTypes(flag, raw) {
176
179
  const names = (_nullishCoalesce(raw, () => ( ""))).split(",").map((name) => name.trim().toLowerCase()).filter(Boolean);
177
180
  const unknown = names.filter(
@@ -193,14 +196,11 @@ function appendCsv(value, previous) {
193
196
  function addSearchOptions(command) {
194
197
  return command.option(
195
198
  "--categories <categories>",
196
- "Comma-separated tool categories; may be used without a query"
199
+ "Comma-separated tool categories; may be used without a task"
197
200
  ).option(
198
201
  "--search_terms <terms>",
199
- "Comma-separated structured search terms; may be used without a query"
200
- ).option("--search-terms <terms>", "Alias for --search_terms").option(
201
- "--task <sentence>",
202
- "What you are trying to accomplish: input you have -> result you need"
203
- ).option("--limit <count>", "Maximum ranked results to return (1-50)").option("--offset <count>", "Zero-based ranked result offset").option("--search-mode <mode>", "Ranked search mode: v1 or v2").option("--include-search-debug", "Include ranked search debug metadata").option("--json", "Emit JSON output instead of the readable default");
202
+ "Comma-separated structured search terms; may be used without a task"
203
+ ).option("--search-terms <terms>", "Alias for --search_terms").addOption(new (0, _commander.Option)("--task <sentence>").hideHelp()).option("--limit <count>", "Maximum ranked results to return (1-50)").option("--offset <count>", "Zero-based ranked result offset").option("--search-mode <mode>", "Ranked search mode: v1 or v2").option("--include-search-debug", "Include ranked search debug metadata").option("--json", "Emit JSON output instead of the readable default");
204
204
  }
205
205
  function pointAtDescribe(result) {
206
206
  const old = /`deepline (tools|plays) describe [^`]*`/;
@@ -224,7 +224,7 @@ async function runSearch(queryInput, options, types, exclude = []) {
224
224
  console.error(USAGE);
225
225
  return 1;
226
226
  }
227
- const { search_ref: searchRef, ...result } = await new (0, _chunkKM3JYG56js.DeeplineClient)().search({
227
+ const { search_ref: searchRef, ...result } = await new (0, _chunkTYPYDSNYjs.DeeplineClient)().search({
228
228
  query,
229
229
  types,
230
230
  exclude,
@@ -238,7 +238,7 @@ async function runSearch(queryInput, options, types, exclude = []) {
238
238
  });
239
239
  if (searchRef) rememberSearchRef(searchRef);
240
240
  pointAtDescribe(result);
241
- _chunkDL5YQFZ6js.printCommandEnvelope.call(void 0, result, {
241
+ _chunkVL5IYXS3js.printCommandEnvelope.call(void 0, result, {
242
242
  json: options.json === true,
243
243
  text: renderSearchResults(result)
244
244
  });
@@ -247,7 +247,7 @@ async function runSearch(queryInput, options, types, exclude = []) {
247
247
  function registerDeprecatedSearchCommand(parent, typesFor) {
248
248
  const name = `deepline ${parent.name()} search`;
249
249
  addSearchOptions(
250
- parent.command("search [query]").description(`Deprecated. Use deepline search --type <types>.`).addHelpText(
250
+ parent.command("search [task]").description(`Deprecated. Use deepline search --type <types>.`).addHelpText(
251
251
  "after",
252
252
  `
253
253
  Notes:
@@ -255,7 +255,7 @@ Notes:
255
255
  matching --type and returns the same results envelope.
256
256
 
257
257
  Examples:
258
- deepline search email --type ${typesFor({}).join(",")}
258
+ deepline search "name and company domain -> work email" --type ${typesFor({}).join(",")}
259
259
  `
260
260
  ).option("--all", "Include plays your workspace created").option("--compact", "Accepted for compatibility; results are compact")
261
261
  ).action(async (query, options) => {
@@ -268,7 +268,7 @@ Examples:
268
268
  }
269
269
  function registerSearchCommand(program) {
270
270
  addSearchOptions(
271
- program.command("search [query]").description(
271
+ program.command("search [task]").description(
272
272
  "Search tools, monitors, and plays together, ranked by intent."
273
273
  ).addHelpText(
274
274
  "after",
@@ -287,22 +287,21 @@ Notes:
287
287
  Ranking uses a third-party AI relevance model. For plays your workspace
288
288
  created it is sent only the play name and description, never play code.
289
289
  Both flags may be repeated: --type tools --type prebuilts.
290
- Provide a query, or omit it only when --categories and/or --search_terms is
291
- supplied. Use --limit and --offset to page (limit 1-50, offset zero-based);
292
- JSON includes next_offset. Pass --task with one sentence on what you are
293
- trying to accomplish: the input you have and the result you need. It
294
- materially improves ranking, especially for short queries.
290
+ The task is one sentence on what you are trying to accomplish, written as
291
+ the input you have -> the result you need. Do not send keywords: the
292
+ sentence is what ranks the results. Omit it only when --categories and/or
293
+ --search_terms is supplied. Use --limit and --offset to page (limit 1-50,
294
+ offset zero-based); JSON includes next_offset.
295
295
  Search prints a readable result list by default, piped or not, and that is
296
296
  the recommended form. Pass --json only when a program parses the result.
297
297
  Readable prices are Deepline credits with a per-row unit. Estimates and
298
298
  observed historical charges are labelled; usage-based prices are not quotes.
299
299
 
300
300
  Examples:
301
- deepline search "find work email"
302
- deepline search "find work email" --type tools --limit 10
303
- deepline search "company to contacts" --type plays
304
- deepline search "enrich a company" --exclude monitors,custom
305
- deepline search linkedin --task "I have 200 LinkedIn profile URLs and need each person's current title and company"
301
+ deepline search "first name, last name and company domain -> verified work email"
302
+ deepline search "200 LinkedIn profile URLs -> each person's current title and company" --type tools --limit 10
303
+ deepline search "company domain -> contacts in sales leadership" --type plays
304
+ deepline search "company domain -> headcount, funding and industry" --exclude monitors,custom
306
305
  deepline search --type tools --categories company_search --search_terms "investors,funding"
307
306
  `
308
307
  ).option(
@@ -2,10 +2,10 @@ import {
2
2
  getAuthedHttpClient,
3
3
  openInBrowser,
4
4
  printCommandEnvelope
5
- } from "./chunk-OJH4W52K.mjs";
5
+ } from "./chunk-DRHVFFMJ.mjs";
6
6
  import {
7
7
  resolveBaseUrlOnly
8
- } from "./chunk-G6TM2GK2.mjs";
8
+ } from "./chunk-J5NN6XCF.mjs";
9
9
 
10
10
  // src/cli/commands/git.ts
11
11
  function shellQuote(value) {
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-DLIRSHV6.mjs";
5
5
  import {
6
6
  SDK_RELEASE
7
- } from "./chunk-AC7QCWXV.mjs";
7
+ } from "./chunk-RN7NIZIL.mjs";
8
8
  import {
9
9
  DeeplineError,
10
10
  TOOL_EXECUTION_ERROR_SCHEMA_VERSION,
@@ -1383,6 +1383,10 @@ var HttpClient = class {
1383
1383
  if (skillsVersion) {
1384
1384
  headers["X-Deepline-Skills-Version"] = skillsVersion;
1385
1385
  }
1386
+ const agentSessionId = agentSessionIdFromEnvironment();
1387
+ if (agentSessionId) {
1388
+ headers["X-Deepline-Agent-Session-Id"] = agentSessionId;
1389
+ }
1386
1390
  const playArtifactR2Prefix = typeof process !== "undefined" ? process.env?.DEEPLINE_PLAY_ARTIFACT_R2_PREFIX : void 0;
1387
1391
  if (playArtifactR2Prefix) {
1388
1392
  headers["x-deepline-play-artifact-r2-prefix"] = playArtifactR2Prefix;