deepline 0.3.376 → 0.3.377

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 (92) hide show
  1. package/dist/bundling-sources/sdk/src/release.ts +1 -1
  2. package/dist/cli/{auth-MLCDUTJY.mjs → auth-3SJMD5GS.mjs} +4 -4
  3. package/dist/cli/auth-C54HQ3XR.js +35 -0
  4. package/dist/cli/{billing-IONI4V7P.js → billing-IN4CGRX5.js} +73 -73
  5. package/dist/cli/{billing-OUGNDBL4.mjs → billing-N4PYTCSM.mjs} +4 -4
  6. package/dist/cli/{chunk-7LX2G2PU.mjs → chunk-3H5U7XCU.mjs} +1 -1
  7. package/dist/cli/{chunk-6EYTKUDI.js → chunk-4T62V4WC.js} +2 -2
  8. package/dist/cli/{chunk-VNBAOWN3.mjs → chunk-7EEPWHRK.mjs} +6 -6
  9. package/dist/cli/{chunk-H7SLESX6.mjs → chunk-ATK45XHI.mjs} +1 -1
  10. package/dist/cli/{chunk-Y4MXBE3V.js → chunk-BBONZ7CN.js} +8 -8
  11. package/dist/cli/{chunk-Y5W5IIA4.js → chunk-CEUIAIUI.js} +57 -57
  12. package/dist/cli/{chunk-GMRWUGXB.mjs → chunk-CUKV3EXY.mjs} +3 -3
  13. package/dist/cli/{chunk-47X6MQ7J.js → chunk-D3GRDNJO.js} +60 -60
  14. package/dist/cli/{chunk-V7ZREPSD.mjs → chunk-DW7BDVZY.mjs} +4 -4
  15. package/dist/cli/{chunk-SPZNLE2D.mjs → chunk-FVFKLSMD.mjs} +2 -2
  16. package/dist/cli/{chunk-ETUV6RRK.js → chunk-GPM3AZXB.js} +9 -9
  17. package/dist/cli/{chunk-34KUUN3Z.js → chunk-HYMVGRZP.js} +50 -50
  18. package/dist/cli/{chunk-4V2Q3JO6.js → chunk-IHXLIPY3.js} +15 -15
  19. package/dist/cli/{chunk-HDB4GAWY.mjs → chunk-JMDMPIGV.mjs} +1 -1
  20. package/dist/cli/{chunk-KHZ6WEVF.js → chunk-KHZQCKZ6.js} +26 -26
  21. package/dist/cli/{chunk-7ZZSGV4A.js → chunk-LJCC26EK.js} +1 -1
  22. package/dist/cli/{chunk-VL5ERG22.mjs → chunk-M2RT2YVB.mjs} +2 -2
  23. package/dist/cli/{chunk-L6OSOKS6.mjs → chunk-MDMP2VS2.mjs} +12 -8
  24. package/dist/cli/{chunk-5HJHTZI6.mjs → chunk-OEVLOA6Y.mjs} +1 -1
  25. package/dist/cli/{chunk-ZXFGA2VK.js → chunk-ON7BSEMT.js} +8 -8
  26. package/dist/cli/{chunk-YXQ7SRL3.mjs → chunk-OWJRRGZH.mjs} +2 -2
  27. package/dist/cli/{chunk-MHRDXS7J.mjs → chunk-SHPLCIOL.mjs} +1 -1
  28. package/dist/cli/{chunk-QSH5CHRI.js → chunk-SQPNP3IQ.js} +6 -6
  29. package/dist/cli/{chunk-UE2UHYT3.mjs → chunk-VB6KECLU.mjs} +57 -6
  30. package/dist/cli/{chunk-UABI2T3Z.mjs → chunk-VD6KRRST.mjs} +2 -2
  31. package/dist/cli/{chunk-5HDB7XXT.js → chunk-VEUTINSL.js} +240 -236
  32. package/dist/cli/{chunk-N6KIEYZV.js → chunk-Y72FFPX5.js} +4 -4
  33. package/dist/cli/{chunk-A6ZTYKYF.js → chunk-ZMVJSS6N.js} +63 -12
  34. package/dist/cli/{csv-NITSP7QJ.mjs → csv-747TCRJS.mjs} +3 -3
  35. package/dist/cli/{csv-LPC7BGZ2.js → csv-JHBQL7PV.js} +12 -12
  36. package/dist/cli/{db-JVDYEXNC.mjs → db-42NBKURO.mjs} +4 -4
  37. package/dist/cli/{db-WGD54UKM.js → db-FGCCQJ64.js} +29 -29
  38. package/dist/cli/{describe-SVMLA6SN.mjs → describe-E6WVN74T.mjs} +11 -9
  39. package/dist/cli/{describe-GA7LSJRY.js → describe-PJYBUSVL.js} +30 -28
  40. package/dist/cli/{executions-P47HEI4N.js → executions-5P5ZJCRJ.js} +6 -6
  41. package/dist/cli/{executions-CXBJDGMU.mjs → executions-UF7KP7B6.mjs} +4 -4
  42. package/dist/cli/{feedback-34OSXUQ2.mjs → feedback-BFXXUVXK.mjs} +3 -3
  43. package/dist/cli/{feedback-GWKWE5CU.js → feedback-S43D42JP.js} +7 -7
  44. package/dist/cli/git-C6PRTVHM.js +23 -0
  45. package/dist/cli/{git-YAROF6D3.mjs → git-TNNTQ5IJ.mjs} +4 -4
  46. package/dist/cli/index.js +82 -82
  47. package/dist/cli/index.mjs +32 -32
  48. package/dist/cli/{legacy-noops-2G55OKIU.mjs → legacy-noops-3ZEHUFE4.mjs} +4 -4
  49. package/dist/cli/{legacy-noops-MDZQL3QH.js → legacy-noops-SYWQBRUI.js} +7 -7
  50. package/dist/cli/{monitors-KUGKMABN.mjs → monitors-DAU53OC5.mjs} +4 -4
  51. package/dist/cli/{monitors-X7QYWFSP.js → monitors-GTBPXIN7.js} +85 -85
  52. package/dist/cli/{org-CNBBAN4W.mjs → org-4TGDZ2ZL.mjs} +4 -4
  53. package/dist/cli/{org-6XL3IBT2.js → org-G77WDHXX.js} +64 -64
  54. package/dist/cli/play-LNKMZFTI.js +155 -0
  55. package/dist/cli/{play-33ZMPAR5.mjs → play-OZV6FDMR.mjs} +8 -8
  56. package/dist/cli/{providers-3OSQNFPE.mjs → providers-FPTHZSZH.mjs} +4 -4
  57. package/dist/cli/{providers-5POAURDT.js → providers-GHS5B4FX.js} +7 -7
  58. package/dist/cli/{quickstart-QICTOOW6.mjs → quickstart-ADJZVPQR.mjs} +3 -3
  59. package/dist/cli/{quickstart-LQGPDJTS.js → quickstart-TGO5N665.js} +5 -5
  60. package/dist/cli/{search-HBIX4SF4.mjs → search-B7BRMMFR.mjs} +5 -5
  61. package/dist/cli/search-L6K36YWC.js +26 -0
  62. package/dist/cli/{secrets-6MRGZPHT.mjs → secrets-A4UK4TMU.mjs} +4 -4
  63. package/dist/cli/{secrets-QKPBNQ3E.js → secrets-FDREPCLL.js} +13 -13
  64. package/dist/cli/{sessions-NODY2OW4.mjs → sessions-2UJPBSAV.mjs} +4 -4
  65. package/dist/cli/{sessions-NP7BLZD2.js → sessions-KQSHUEEV.js} +5 -5
  66. package/dist/cli/{settings-JCEIOTNL.mjs → settings-BZ5JTH67.mjs} +7 -7
  67. package/dist/cli/{settings-42QHXUB2.js → settings-XZSSJUSS.js} +74 -74
  68. package/dist/cli/{setup-3QR4RGMG.mjs → setup-DIQPCI6O.mjs} +6 -6
  69. package/dist/cli/{setup-5XXWP54Y.js → setup-GQO2XQLS.js} +41 -41
  70. package/dist/cli/{skills-U4OMXLNS.mjs → skills-6ZJBKK6M.mjs} +4 -4
  71. package/dist/cli/skills-VSIYWK7T.js +28 -0
  72. package/dist/cli/tools-L7A6ITNQ.js +40 -0
  73. package/dist/cli/{tools-45OROEZQ.mjs → tools-NKGWJUGR.mjs} +7 -7
  74. package/dist/cli/{update-2XCRMJ4R.mjs → update-I3H7FXIF.mjs} +6 -6
  75. package/dist/cli/update-IP3GCUVX.js +28 -0
  76. package/dist/cli/{workflow-47P4LQNC.js → workflow-J3FZEW4S.js} +15 -15
  77. package/dist/cli/{workflow-7X3GCOPY.mjs → workflow-XFRG5G5H.mjs} +5 -5
  78. package/dist/index.js +6 -6
  79. package/dist/index.mjs +3 -3
  80. package/dist/install-integrity.json +74 -74
  81. package/dist/release.d.mts +1 -1
  82. package/dist/release.d.ts +1 -1
  83. package/dist/release.js +2 -2
  84. package/dist/release.mjs +1 -1
  85. package/package.json +1 -1
  86. package/dist/cli/auth-BTFXJQLT.js +0 -35
  87. package/dist/cli/git-MIPISCON.js +0 -23
  88. package/dist/cli/play-3CM3P2DS.js +0 -155
  89. package/dist/cli/search-A2YLJ4I5.js +0 -26
  90. package/dist/cli/skills-4JJEAA66.js +0 -28
  91. package/dist/cli/tools-FDCFSA7W.js +0 -40
  92. package/dist/cli/update-VYL4TXIE.js +0 -28
@@ -2,7 +2,7 @@ import {
2
2
  addDescribeOptions,
3
3
  recordPlayTermination,
4
4
  schemaFields
5
- } from "./chunk-UE2UHYT3.mjs";
5
+ } from "./chunk-VB6KECLU.mjs";
6
6
  import {
7
7
  shellQuote
8
8
  } from "./chunk-OVDNJAJN.mjs";
@@ -19,11 +19,11 @@ import {
19
19
  } from "./chunk-EDWJY6T4.mjs";
20
20
  import {
21
21
  registerDeprecatedSearchCommand
22
- } from "./chunk-GMRWUGXB.mjs";
22
+ } from "./chunk-CUKV3EXY.mjs";
23
23
  import {
24
24
  handleDeploymentGet,
25
25
  handleDeploymentsList
26
- } from "./chunk-UABI2T3Z.mjs";
26
+ } from "./chunk-VD6KRRST.mjs";
27
27
  import {
28
28
  pinLocalPlayImports,
29
29
  planLocalPlayExecution
@@ -42,7 +42,7 @@ import {
42
42
  normalizeRunEventOperationRequest,
43
43
  parseLogLevel,
44
44
  playInputExampleArgs
45
- } from "./chunk-H7SLESX6.mjs";
45
+ } from "./chunk-ATK45XHI.mjs";
46
46
  import {
47
47
  CSV_DATA_INPUT_KEY,
48
48
  buildNamedPlayRunRequest,
@@ -75,10 +75,10 @@ import {
75
75
  printJsonError,
76
76
  renderCommandEnvelopeText,
77
77
  shouldEmitJson
78
- } from "./chunk-MHRDXS7J.mjs";
78
+ } from "./chunk-SHPLCIOL.mjs";
79
79
  import {
80
80
  fetchWithDeploymentProtection
81
- } from "./chunk-HDB4GAWY.mjs";
81
+ } from "./chunk-JMDMPIGV.mjs";
82
82
  import {
83
83
  DeeplineError
84
84
  } from "./chunk-NXGCO4JB.mjs";
@@ -15362,7 +15362,11 @@ function describedPlay(play) {
15362
15362
  inputs: schemaFields(play.inputSchema),
15363
15363
  outputs: schemaFields(play.outputSchema),
15364
15364
  ...rowInputs.length ? { rowInputs } : {},
15365
- ...rowOutputs.length ? { rowOutputs } : {},
15365
+ ...typeof csv.inputField === "string" ? { csvInput: csv.inputField } : {},
15366
+ ...rowOutputs.length ? {
15367
+ rowOutputs,
15368
+ rowOutputsAddToSource: Object.keys(added).length > 0 || rowOutput.preservesSourceColumns === true
15369
+ } : {},
15366
15370
  runner: {
15367
15371
  via: "play",
15368
15372
  reference,
@@ -16494,7 +16498,7 @@ Examples:
16494
16498
  process.exitCode = await ownView();
16495
16499
  return;
16496
16500
  }
16497
- const { describeAnything } = await import("./describe-SVMLA6SN.mjs");
16501
+ const { describeAnything } = await import("./describe-E6WVN74T.mjs");
16498
16502
  process.exitCode = await describeAnything(
16499
16503
  name,
16500
16504
  {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  resolveShellSpawn
3
- } from "./chunk-SPZNLE2D.mjs";
3
+ } from "./chunk-FVFKLSMD.mjs";
4
4
 
5
5
  // src/cli/npm-script-policy.ts
6
6
  import { spawnSync } from "child_process";
@@ -1,14 +1,14 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunkETUV6RRKjs = require('./chunk-ETUV6RRK.js');
3
+ var _chunkGPM3AZXBjs = require('./chunk-GPM3AZXB.js');
4
4
 
5
5
 
6
6
 
7
- var _chunkQSH5CHRIjs = require('./chunk-QSH5CHRI.js');
7
+ var _chunkSQPNP3IQjs = require('./chunk-SQPNP3IQ.js');
8
8
 
9
9
 
10
10
 
11
- var _chunkN6KIEYZVjs = require('./chunk-N6KIEYZV.js');
11
+ var _chunkY72FFPX5js = require('./chunk-Y72FFPX5.js');
12
12
 
13
13
  // src/cli/commands/search.ts
14
14
  var _commander = require('commander');
@@ -18,7 +18,7 @@ var _fs = require('fs');
18
18
  var _path = require('path');
19
19
  var SEARCH_REF_TTL_MS = 15 * 6e4;
20
20
  function lastSearchPath() {
21
- return _path.join.call(void 0, _chunkN6KIEYZVjs.sdkCliStateDirPath.call(void 0, _chunkN6KIEYZVjs.resolveConfig.call(void 0, ).baseUrl), "last-search.json");
21
+ return _path.join.call(void 0, _chunkY72FFPX5js.sdkCliStateDirPath.call(void 0, _chunkY72FFPX5js.resolveConfig.call(void 0, ).baseUrl), "last-search.json");
22
22
  }
23
23
  function rememberSearchRef(searchRef) {
24
24
  try {
@@ -259,7 +259,7 @@ function searchRow(item) {
259
259
  }
260
260
  function renderSearchResults(result) {
261
261
  if (result.results.length === 0)
262
- return _chunkQSH5CHRIjs.renderCommandEnvelopeText.call(void 0, result);
262
+ return _chunkSQPNP3IQjs.renderCommandEnvelopeText.call(void 0, result);
263
263
  const rows = result.results.map(searchRow);
264
264
  const kinds = new Set(rows.map((row) => row.kind));
265
265
  const onlyTools = kinds.size === 1 && kinds.has("tool");
@@ -283,7 +283,7 @@ function renderSearchResults(result) {
283
283
  actions: _optionalChain([render, 'optionalAccess', _11 => _11.actions])
284
284
  };
285
285
  const followUps = _optionalChain([remaining, 'access', _12 => _12.sections, 'optionalAccess', _13 => _13.length]) || _optionalChain([remaining, 'access', _14 => _14.actions, 'optionalAccess', _15 => _15.length]) ? `
286
- ${_chunkQSH5CHRIjs.renderCommandEnvelopeText.call(void 0, { render: remaining })}` : "";
286
+ ${_chunkSQPNP3IQjs.renderCommandEnvelopeText.call(void 0, { render: remaining })}` : "";
287
287
  const notes = rows.flatMap(
288
288
  (row) => row.notes.map((note) => ` ${row.id}: ${note}`)
289
289
  );
@@ -360,7 +360,7 @@ async function runSearch(queryInput, options, types, exclude = []) {
360
360
  console.error(USAGE);
361
361
  return 1;
362
362
  }
363
- const { search_ref: searchRef, ...result } = await new (0, _chunkETUV6RRKjs.DeeplineClient)().search({
363
+ const { search_ref: searchRef, ...result } = await new (0, _chunkGPM3AZXBjs.DeeplineClient)().search({
364
364
  query,
365
365
  types,
366
366
  exclude,
@@ -374,7 +374,7 @@ async function runSearch(queryInput, options, types, exclude = []) {
374
374
  });
375
375
  if (searchRef) rememberSearchRef(searchRef);
376
376
  pointAtDescribe(result);
377
- _chunkQSH5CHRIjs.printCommandEnvelope.call(void 0, result, {
377
+ _chunkSQPNP3IQjs.printCommandEnvelope.call(void 0, result, {
378
378
  json: options.json === true,
379
379
  text: renderSearchResults(result)
380
380
  });
@@ -2,7 +2,7 @@ import {
2
2
  argsWantJson,
3
3
  openInBrowser,
4
4
  printCommandEnvelope
5
- } from "./chunk-MHRDXS7J.mjs";
5
+ } from "./chunk-SHPLCIOL.mjs";
6
6
  import {
7
7
  ACTIVE_ORG_ID_ENV,
8
8
  ACTIVE_ORG_NAME_ENV,
@@ -25,7 +25,7 @@ import {
25
25
  saveHostEnvValues,
26
26
  saveProjectDeeplineEnvValues,
27
27
  storedHostApiKey
28
- } from "./chunk-HDB4GAWY.mjs";
28
+ } from "./chunk-JMDMPIGV.mjs";
29
29
 
30
30
  // src/cli/commands/auth.ts
31
31
  import {
@@ -3,7 +3,7 @@ import {
3
3
  detectAgentRuntime,
4
4
  resolveCliCommandContext,
5
5
  resolveConfig
6
- } from "./chunk-HDB4GAWY.mjs";
6
+ } from "./chunk-JMDMPIGV.mjs";
7
7
  import {
8
8
  DeeplineError
9
9
  } from "./chunk-NXGCO4JB.mjs";
@@ -3,7 +3,7 @@
3
3
 
4
4
 
5
5
 
6
- var _chunkN6KIEYZVjs = require('./chunk-N6KIEYZV.js');
6
+ var _chunkY72FFPX5js = require('./chunk-Y72FFPX5.js');
7
7
 
8
8
 
9
9
  var _chunk7P5AA3SNjs = require('./chunk-7P5AA3SN.js');
@@ -225,8 +225,8 @@ var BROWSER_OPEN_COOLDOWN_MS = 3e4;
225
225
  var SAME_URL_BROWSER_OPEN_COOLDOWN_MS = 5 * 6e4;
226
226
  var defaultBrowserCommandRunner = childProcess;
227
227
  function getAuthedHttpClient() {
228
- const config = _chunkN6KIEYZVjs.resolveConfig.call(void 0, );
229
- return { config, http: new (0, _chunkN6KIEYZVjs.HttpClient)(config) };
228
+ const config = _chunkY72FFPX5js.resolveConfig.call(void 0, );
229
+ return { config, http: new (0, _chunkY72FFPX5js.HttpClient)(config) };
230
230
  }
231
231
  function stableOsUserId() {
232
232
  try {
@@ -566,7 +566,7 @@ function collectLocalEnvInfo() {
566
566
  os: `${process.platform} ${process.arch}`,
567
567
  node_version: process.version,
568
568
  home_dir: homeDir,
569
- agent_runtime: _chunkN6KIEYZVjs.detectAgentRuntime.call(void 0, )
569
+ agent_runtime: _chunkY72FFPX5js.detectAgentRuntime.call(void 0, )
570
570
  };
571
571
  const env = process.env;
572
572
  const optional = {
@@ -813,9 +813,9 @@ function markdownTableFromRows(rows, preferredColumns = []) {
813
813
  }
814
814
  function withAgentCommandContext(value) {
815
815
  const valueRecord = value !== null && typeof value === "object" && !Array.isArray(value) ? value : null;
816
- return _chunkN6KIEYZVjs.detectAgentRuntime.call(void 0, ) !== "unknown" && valueRecord && !Object.prototype.hasOwnProperty.call(valueRecord, "command_context") ? {
816
+ return _chunkY72FFPX5js.detectAgentRuntime.call(void 0, ) !== "unknown" && valueRecord && !Object.prototype.hasOwnProperty.call(valueRecord, "command_context") ? {
817
817
  ...valueRecord,
818
- command_context: _chunkN6KIEYZVjs.resolveCliCommandContext.call(void 0, )
818
+ command_context: _chunkY72FFPX5js.resolveCliCommandContext.call(void 0, )
819
819
  } : value;
820
820
  }
821
821
  function printJson(value, fields) {
@@ -93,7 +93,6 @@ function schemaField(name, node, required) {
93
93
  const example = [
94
94
  schema.example,
95
95
  schema.default,
96
- Array.isArray(schema.enum) ? schema.enum[0] : void 0,
97
96
  type === "string" ? NAMED_EXAMPLES[name.toLowerCase()] : void 0
98
97
  ].find((value) => value !== void 0);
99
98
  return {
@@ -174,6 +173,8 @@ function exampleValue(field) {
174
173
  const value = field.type.slice(RECORD.length).replace(/>( \| null)?$/, "");
175
174
  return { key: exampleValue({ ...field, type: value }) };
176
175
  }
176
+ const literal = /^"(?:[^"\\]|\\.)*"/.exec(field.type);
177
+ if (literal) return JSON.parse(literal[0]);
177
178
  const type = field.type.toLowerCase();
178
179
  if (type.includes("[]")) return [];
179
180
  if (type.startsWith(SHAPE)) {
@@ -237,12 +238,58 @@ function namedShapes(roots) {
237
238
  }
238
239
  return named;
239
240
  }
241
+ function withRowInputs(described) {
242
+ const columns = described.rowInputs;
243
+ if (!columns?.length) return described.inputs;
244
+ const join = (...notes) => notes.filter(Boolean).join(" - ");
245
+ const first = columns[0].name;
246
+ return described.inputs.map((field) => {
247
+ if (field.name === described.csvInput) {
248
+ return {
249
+ ...field,
250
+ type: `CsvInput<${SHAPE}>`,
251
+ fields: columns,
252
+ description: join(
253
+ field.description,
254
+ 'Headers match these names ignoring case, spaces and punctuation ("LinkedIn URL" reads as linked_in_url); map any other header in columns.'
255
+ )
256
+ };
257
+ }
258
+ if (field.name === "columns") {
259
+ return {
260
+ ...field,
261
+ type: SHAPE,
262
+ fields: columns.map(({ name }) => ({
263
+ name,
264
+ type: "string | string[]",
265
+ required: false
266
+ })),
267
+ description: join(
268
+ field.description,
269
+ `Your CSV header for a column, e.g. {"${first}": "My Header"}. CLI: --columns.${first} "My Header"`
270
+ )
271
+ };
272
+ }
273
+ return field;
274
+ });
275
+ }
276
+ function withRowOutputs(described) {
277
+ const columns = described.rowOutputs;
278
+ if (!columns?.length) return described.outputs;
279
+ const typed = (field) => ({
280
+ ...field,
281
+ type: `PlayDataset<${SHAPE}>`,
282
+ fields: columns,
283
+ ...described.rowOutputsAddToSource ? { spread: described.csvInput ?? "source row" } : {}
284
+ });
285
+ return described.outputs.some((field) => field.name === "rows") ? described.outputs.map(
286
+ (field) => field.name === "rows" ? typed(field) : field
287
+ ) : [...described.outputs, typed({ name: "rows", type: "", required: true })];
288
+ }
240
289
  function schemaBlocks(described, maxDepth, everyField = false) {
241
290
  const sections = [
242
- ["Inputs:", described.inputs],
243
- ["CSV columns read from each row:", described.rowInputs ?? []],
244
- ["Outputs:", described.outputs],
245
- ["Columns added to each row:", described.rowOutputs ?? []],
291
+ ["Inputs:", withRowInputs(described)],
292
+ ["Outputs:", withRowOutputs(described)],
246
293
  [
247
294
  "Raw response, as declared (read it from result.toolResponse.rawV2; check one real response for its nesting):",
248
295
  everyField ? described.rawResponse ?? [] : []
@@ -272,13 +319,17 @@ function schemaBlocks(described, maxDepth, everyField = false) {
272
319
  ];
273
320
  }
274
321
  if (depth >= maxDepth || field.summarized && !everyField) {
275
- const names = field.fields.map((child) => child.name).join(", ");
322
+ const names = [
323
+ ...field.spread ? [`...${field.spread}`] : [],
324
+ ...field.fields.map((child) => child.name)
325
+ ].join(", ");
276
326
  return [
277
327
  `${start}${before}{ ${names} }${after},${comment([field.means, field.description])}`
278
328
  ];
279
329
  }
280
330
  return [
281
331
  `${start}${before}{${comment([field.means, field.description])}`,
332
+ ...field.spread ? [`${indent} ...${field.spread},`] : [],
282
333
  ...field.fields.flatMap(
283
334
  (child) => fieldLines(child, `${indent} `, depth + 1)
284
335
  ),
@@ -2,10 +2,10 @@ import {
2
2
  getAuthedHttpClient,
3
3
  openInBrowser,
4
4
  printCommandEnvelope
5
- } from "./chunk-MHRDXS7J.mjs";
5
+ } from "./chunk-SHPLCIOL.mjs";
6
6
  import {
7
7
  resolveBaseUrlOnly
8
- } from "./chunk-HDB4GAWY.mjs";
8
+ } from "./chunk-JMDMPIGV.mjs";
9
9
 
10
10
  // src/cli/commands/git.ts
11
11
  function shellQuote(value) {