deepline 0.3.334 → 0.3.336

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 (104) hide show
  1. package/dist/bundling-sources/sdk/src/release.ts +1 -1
  2. package/dist/bundling-sources/shared_libs/play-runtime/context.ts +53 -41
  3. package/dist/bundling-sources/shared_libs/play-runtime/ctx-types.ts +14 -0
  4. package/dist/bundling-sources/shared_libs/play-runtime/internal-bootstrap-token.ts +81 -0
  5. package/dist/bundling-sources/shared_libs/play-runtime/runner-app/index.ts +53 -0
  6. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres.ts +48 -4
  7. package/dist/cli/auth-6RQLNYNF.js +31 -0
  8. package/dist/cli/{auth-PAEBUPRS.mjs → auth-M45QKCUL.mjs} +4 -4
  9. package/dist/cli/{billing-QGQJUM5G.mjs → billing-E7ADEFLX.mjs} +4 -4
  10. package/dist/cli/{billing-V746QMQC.js → billing-XCJVALTC.js} +71 -71
  11. package/dist/cli/{chunk-XXZSLV7B.js → chunk-2CJUQWW2.js} +6 -6
  12. package/dist/cli/{chunk-SBEWKGUA.mjs → chunk-4NJCGGHK.mjs} +1 -1
  13. package/dist/cli/{chunk-U724V33M.mjs → chunk-4S3G43M3.mjs} +2 -2
  14. package/dist/cli/{chunk-Z6VHC643.js → chunk-4WHJDGBC.js} +9 -9
  15. package/dist/cli/{chunk-R6O3YVIG.js → chunk-5S4FMN6T.js} +8 -8
  16. package/dist/cli/{chunk-P3ZX3NSE.mjs → chunk-B53RXFGP.mjs} +1 -1
  17. package/dist/cli/{chunk-NLHRXDIT.js → chunk-EBIISKOH.js} +2 -2
  18. package/dist/cli/{chunk-JNNOCMQY.js → chunk-EBU7LQ64.js} +18 -6
  19. package/dist/cli/{chunk-O564PHDU.mjs → chunk-GATWDGMB.mjs} +1 -1
  20. package/dist/cli/{chunk-UUB3FTKZ.js → chunk-I5XF4PWD.js} +6 -6
  21. package/dist/cli/{chunk-TVIWEQ4V.mjs → chunk-IT3AQZDG.mjs} +3 -3
  22. package/dist/cli/{chunk-VB7TNIUB.mjs → chunk-IU3TFWPR.mjs} +1 -1
  23. package/dist/cli/{chunk-6466HVYR.js → chunk-JEE7AKWP.js} +26 -26
  24. package/dist/cli/{chunk-GUMAWNWZ.mjs → chunk-JULF4SPK.mjs} +5 -5
  25. package/dist/cli/{chunk-GX2YGFQV.js → chunk-KZT7YX7R.js} +1 -1
  26. package/dist/cli/{chunk-GNHI4WZC.js → chunk-LDMQDERZ.js} +15 -15
  27. package/dist/cli/{chunk-7XXNMV6G.js → chunk-LOD6RKCD.js} +45 -45
  28. package/dist/cli/{chunk-FLMBKUHB.js → chunk-NCPAHNXJ.js} +60 -60
  29. package/dist/cli/{chunk-EJLUQARV.mjs → chunk-PWY5DNNP.mjs} +4 -4
  30. package/dist/cli/{chunk-SABEM6FL.js → chunk-Q2HYQOID.js} +48 -48
  31. package/dist/cli/{chunk-A7S4PRK2.mjs → chunk-TGMDQIYJ.mjs} +1 -1
  32. package/dist/cli/{chunk-Y2VN54ME.mjs → chunk-TV6BWFGU.mjs} +2 -2
  33. package/dist/cli/{chunk-EJVAWHQ7.mjs → chunk-VD45LDLL.mjs} +23 -10
  34. package/dist/cli/{chunk-TT2CLWMK.mjs → chunk-VOD4V4G4.mjs} +1 -1
  35. package/dist/cli/{chunk-SFLARO4Y.mjs → chunk-WIYWSYDS.mjs} +18 -6
  36. package/dist/cli/{chunk-O64RSXDZ.mjs → chunk-WWZJ6P22.mjs} +2 -2
  37. package/dist/cli/{chunk-6MVMTDL7.js → chunk-ZPLBQ24U.js} +4 -4
  38. package/dist/cli/{chunk-HIPRSI5H.js → chunk-ZXBVQAQW.js} +327 -314
  39. package/dist/cli/client-LNCVWDUS.js +20 -0
  40. package/dist/cli/{client-JIZWAGVW.mjs → client-MUO4FRKO.mjs} +3 -3
  41. package/dist/cli/{csv-7DCY7Z6R.mjs → csv-2RT3FVOD.mjs} +3 -3
  42. package/dist/cli/{csv-KAFKXAFU.js → csv-NGNI7CWG.js} +12 -12
  43. package/dist/cli/{db-5LJPO2VA.js → db-7GKM6IUK.js} +29 -29
  44. package/dist/cli/{db-KJBWUFPL.mjs → db-KUKHLFYS.mjs} +4 -4
  45. package/dist/cli/{describe-CPF4KDKZ.mjs → describe-6MJ4B7NU.mjs} +8 -8
  46. package/dist/cli/{describe-VJEEVOH6.js → describe-RDSWCQCO.js} +15 -15
  47. package/dist/cli/{executions-LJN5QOK7.mjs → executions-C7NXL7QR.mjs} +4 -4
  48. package/dist/cli/{executions-LPVCV5SC.js → executions-E6NAUIUO.js} +6 -6
  49. package/dist/cli/{feedback-3HYS6ECC.mjs → feedback-D52ZWOTA.mjs} +3 -3
  50. package/dist/cli/{feedback-K26WP7HJ.js → feedback-K5MAECHI.js} +6 -6
  51. package/dist/cli/getting-started.d.mts +47 -9
  52. package/dist/cli/getting-started.d.ts +47 -9
  53. package/dist/cli/getting-started.js +2 -2
  54. package/dist/cli/getting-started.mjs +1 -1
  55. package/dist/cli/git-E62XZHQW.js +23 -0
  56. package/dist/cli/{git-U4VBLXSS.mjs → git-YJLIAQJW.mjs} +4 -4
  57. package/dist/cli/index.js +79 -79
  58. package/dist/cli/index.mjs +31 -31
  59. package/dist/cli/{legacy-noops-ORHX2FMA.mjs → legacy-noops-PK6JF4Y5.mjs} +4 -4
  60. package/dist/cli/{legacy-noops-32YL3VF4.js → legacy-noops-V3BNZ4BV.js} +7 -7
  61. package/dist/cli/{monitors-5JJBEJS7.mjs → monitors-ABKZDCOX.mjs} +4 -4
  62. package/dist/cli/{monitors-NFE4ICED.js → monitors-ZC6CFUHS.js} +85 -85
  63. package/dist/cli/{org-RJYSDJ3W.mjs → org-JB46ECLU.mjs} +4 -4
  64. package/dist/cli/{org-7CJS35TF.js → org-RQGEMXS6.js} +60 -60
  65. package/dist/cli/play-TRKFECQV.js +153 -0
  66. package/dist/cli/{play-H2QUTJR2.mjs → play-WANQPXLR.mjs} +7 -7
  67. package/dist/cli/{providers-VUKRZWZY.js → providers-JRRQEOUN.js} +7 -7
  68. package/dist/cli/{providers-TEVRE4Q6.mjs → providers-T4FBXHMX.mjs} +4 -4
  69. package/dist/cli/{quickstart-36OGYQ2P.js → quickstart-35VIDBJK.js} +12 -12
  70. package/dist/cli/{quickstart-2MIHVSZO.mjs → quickstart-KTT4JBZY.mjs} +4 -4
  71. package/dist/cli/{search-IRRQSN6R.mjs → search-DZ5I6Q5Z.mjs} +5 -5
  72. package/dist/cli/search-KMMM4BRX.js +26 -0
  73. package/dist/cli/{secrets-K67ZKZZM.js → secrets-4FZIXXPT.js} +13 -13
  74. package/dist/cli/{secrets-3W6OVDVE.mjs → secrets-H6UBIMY7.mjs} +4 -4
  75. package/dist/cli/{sessions-AOMOV4HG.mjs → sessions-63S3OOVP.mjs} +4 -4
  76. package/dist/cli/{sessions-SLQ2QFLK.js → sessions-RDM6DBHZ.js} +5 -5
  77. package/dist/cli/{settings-L4IFYF5D.mjs → settings-JQQVY5I5.mjs} +7 -7
  78. package/dist/cli/{settings-2X7H6O4I.js → settings-S4AHAT3J.js} +74 -74
  79. package/dist/cli/{setup-2RY5APQS.js → setup-76X6E2IB.js} +49 -49
  80. package/dist/cli/{setup-CZYQTZ2K.mjs → setup-W6U2T7HU.mjs} +7 -7
  81. package/dist/cli/skills-HLLZUL4W.js +28 -0
  82. package/dist/cli/{skills-D2QQH5S7.mjs → skills-ONHUMRAF.mjs} +4 -4
  83. package/dist/cli/{tools-TYIEROJJ.mjs → tools-JEC63YLX.mjs} +6 -6
  84. package/dist/cli/tools-YSUGUPYH.js +40 -0
  85. package/dist/cli/{update-7YCSUWFP.mjs → update-3M5CUY4U.mjs} +6 -6
  86. package/dist/cli/update-ASHUXHC5.js +28 -0
  87. package/dist/cli/{workflow-42IFLYPN.js → workflow-PEU7CC4I.js} +15 -15
  88. package/dist/cli/{workflow-GGRUCLCI.mjs → workflow-SDT7YIQ7.mjs} +5 -5
  89. package/dist/index.js +6 -6
  90. package/dist/index.mjs +3 -3
  91. package/dist/install-integrity.json +76 -76
  92. package/dist/release.d.mts +1 -1
  93. package/dist/release.d.ts +1 -1
  94. package/dist/release.js +2 -2
  95. package/dist/release.mjs +1 -1
  96. package/package.json +1 -1
  97. package/dist/cli/auth-WR3XFOHN.js +0 -31
  98. package/dist/cli/client-6OBIO6GC.js +0 -20
  99. package/dist/cli/git-VMQTXKJQ.js +0 -23
  100. package/dist/cli/play-FUZYMPHF.js +0 -153
  101. package/dist/cli/search-DFSHYVZ5.js +0 -26
  102. package/dist/cli/skills-RIFYRYWL.js +0 -28
  103. package/dist/cli/tools-M7LTH6ZT.js +0 -40
  104. package/dist/cli/update-HC62SVSQ.js +0 -28
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkUUB3FTKZjs = require('./chunk-UUB3FTKZ.js');
5
+ var _chunkI5XF4PWDjs = require('./chunk-I5XF4PWD.js');
6
6
 
7
7
 
8
8
 
@@ -25,7 +25,7 @@ var _chunkUUB3FTKZjs = require('./chunk-UUB3FTKZ.js');
25
25
 
26
26
 
27
27
 
28
- var _chunk6MVMTDL7js = require('./chunk-6MVMTDL7.js');
28
+ var _chunkZPLBQ24Ujs = require('./chunk-ZPLBQ24U.js');
29
29
 
30
30
  // src/cli/commands/auth.ts
31
31
 
@@ -52,7 +52,7 @@ function statusBannerLine(value) {
52
52
  return `Service notice: ${banner.message}`;
53
53
  }
54
54
  function envFilePath(baseUrl) {
55
- return _chunk6MVMTDL7js.hostEnvFilePath.call(void 0, baseUrl);
55
+ return _chunkZPLBQ24Ujs.hostEnvFilePath.call(void 0, baseUrl);
56
56
  }
57
57
  function normalizeAuthScope(value) {
58
58
  if (!value || value === "global") return "global";
@@ -65,7 +65,7 @@ function parseAuthScope(args) {
65
65
  }
66
66
  function pendingClaimPath(baseUrl, scope) {
67
67
  if (scope === "folder") {
68
- const target = _chunk6MVMTDL7js.resolveProjectPinTarget.call(void 0, );
68
+ const target = _chunkZPLBQ24Ujs.resolveProjectPinTarget.call(void 0, );
69
69
  if (!target.ok) {
70
70
  throw new Error(
71
71
  `Cowork project folder is ambiguous. Candidate folders: ${target.candidates.join(
@@ -75,10 +75,10 @@ function pendingClaimPath(baseUrl, scope) {
75
75
  }
76
76
  return _path.join.call(void 0, target.dir, ".deepline", "setup", "pending-auth.json");
77
77
  }
78
- return `${_chunk6MVMTDL7js.hostConfigDirPath.call(void 0, baseUrl)}/pending-auth.json`;
78
+ return `${_chunkZPLBQ24Ujs.hostConfigDirPath.call(void 0, baseUrl)}/pending-auth.json`;
79
79
  }
80
80
  function legacyPendingClaimTokenPath(baseUrl) {
81
- return `${_chunk6MVMTDL7js.hostConfigDirPath.call(void 0, baseUrl)}/pending-claim-token`;
81
+ return `${_chunkZPLBQ24Ujs.hostConfigDirPath.call(void 0, baseUrl)}/pending-claim-token`;
82
82
  }
83
83
  function savePendingClaim(baseUrl, claim) {
84
84
  const filePath = pendingClaimPath(baseUrl, claim.scope);
@@ -180,21 +180,21 @@ function parseRegisterWaitMode(args) {
180
180
  function shouldWaitForRegisterClaim(mode) {
181
181
  if (mode === "yes") return true;
182
182
  if (mode === "no") return false;
183
- return _chunk6MVMTDL7js.detectAgentRuntime.call(void 0, ) !== "claude_cowork";
183
+ return _chunkZPLBQ24Ujs.detectAgentRuntime.call(void 0, ) !== "claude_cowork";
184
184
  }
185
185
  function saveEnvValues(values, baseUrl, scope) {
186
186
  const filtered = {
187
- ...values[_chunk6MVMTDL7js.HOST_URL_ENV] ? { [_chunk6MVMTDL7js.HOST_URL_ENV]: values[_chunk6MVMTDL7js.HOST_URL_ENV] } : {},
188
- ...values[_chunk6MVMTDL7js.API_KEY_ENV] ? { [_chunk6MVMTDL7js.API_KEY_ENV]: values[_chunk6MVMTDL7js.API_KEY_ENV] } : {},
189
- ...values[_chunk6MVMTDL7js.ACTIVE_ORG_ID_ENV] ? { [_chunk6MVMTDL7js.ACTIVE_ORG_ID_ENV]: values[_chunk6MVMTDL7js.ACTIVE_ORG_ID_ENV] } : {},
190
- ...Object.prototype.hasOwnProperty.call(values, _chunk6MVMTDL7js.ACTIVE_ORG_NAME_ENV) ? { [_chunk6MVMTDL7js.ACTIVE_ORG_NAME_ENV]: values[_chunk6MVMTDL7js.ACTIVE_ORG_NAME_ENV] } : {},
187
+ ...values[_chunkZPLBQ24Ujs.HOST_URL_ENV] ? { [_chunkZPLBQ24Ujs.HOST_URL_ENV]: values[_chunkZPLBQ24Ujs.HOST_URL_ENV] } : {},
188
+ ...values[_chunkZPLBQ24Ujs.API_KEY_ENV] ? { [_chunkZPLBQ24Ujs.API_KEY_ENV]: values[_chunkZPLBQ24Ujs.API_KEY_ENV] } : {},
189
+ ...values[_chunkZPLBQ24Ujs.ACTIVE_ORG_ID_ENV] ? { [_chunkZPLBQ24Ujs.ACTIVE_ORG_ID_ENV]: values[_chunkZPLBQ24Ujs.ACTIVE_ORG_ID_ENV] } : {},
190
+ ...Object.prototype.hasOwnProperty.call(values, _chunkZPLBQ24Ujs.ACTIVE_ORG_NAME_ENV) ? { [_chunkZPLBQ24Ujs.ACTIVE_ORG_NAME_ENV]: values[_chunkZPLBQ24Ujs.ACTIVE_ORG_NAME_ENV] } : {},
191
191
  // An explicit empty list must reach the store: it clears a stale line.
192
- ...Object.prototype.hasOwnProperty.call(values, _chunk6MVMTDL7js.FEATURES_ENV) ? { [_chunk6MVMTDL7js.FEATURES_ENV]: values[_chunk6MVMTDL7js.FEATURES_ENV] } : {}
192
+ ...Object.prototype.hasOwnProperty.call(values, _chunkZPLBQ24Ujs.FEATURES_ENV) ? { [_chunkZPLBQ24Ujs.FEATURES_ENV]: values[_chunkZPLBQ24Ujs.FEATURES_ENV] } : {}
193
193
  };
194
194
  if (scope === "folder") {
195
- _chunk6MVMTDL7js.saveProjectDeeplineEnvValues.call(void 0, filtered);
195
+ _chunkZPLBQ24Ujs.saveProjectDeeplineEnvValues.call(void 0, filtered);
196
196
  } else {
197
- _chunk6MVMTDL7js.saveHostEnvValues.call(void 0, baseUrl, filtered);
197
+ _chunkZPLBQ24Ujs.saveHostEnvValues.call(void 0, baseUrl, filtered);
198
198
  }
199
199
  }
200
200
  function activeOrgEnvValues(data) {
@@ -202,21 +202,21 @@ function activeOrgEnvValues(data) {
202
202
  if (!orgId) return {};
203
203
  const orgName = typeof data.org_name === "string" ? data.org_name.trim() : "";
204
204
  return {
205
- [_chunk6MVMTDL7js.ACTIVE_ORG_ID_ENV]: orgId,
206
- [_chunk6MVMTDL7js.ACTIVE_ORG_NAME_ENV]: orgName,
207
- ..._chunk6MVMTDL7js.featureEnvValues.call(void 0, data)
205
+ [_chunkZPLBQ24Ujs.ACTIVE_ORG_ID_ENV]: orgId,
206
+ [_chunkZPLBQ24Ujs.ACTIVE_ORG_NAME_ENV]: orgName,
207
+ ..._chunkZPLBQ24Ujs.featureEnvValues.call(void 0, data)
208
208
  };
209
209
  }
210
210
  async function httpJson(method, url, apiKey, body, timeoutMs = AUTH_HTTP_TIMEOUT_MS) {
211
211
  const headers = {
212
212
  "Content-Type": "application/json",
213
- "User-Agent": `deepline-ts-sdk/${_chunk6MVMTDL7js.SDK_VERSION}`,
213
+ "User-Agent": `deepline-ts-sdk/${_chunkZPLBQ24Ujs.SDK_VERSION}`,
214
214
  "X-Deepline-Client-Family": "sdk",
215
215
  "X-Deepline-CLI-Family": "sdk",
216
- "X-Deepline-Agent-Runtime": _chunk6MVMTDL7js.detectAgentRuntime.call(void 0, ),
217
- "X-Deepline-CLI-Version": _chunk6MVMTDL7js.SDK_VERSION,
218
- "X-Deepline-SDK-Version": _chunk6MVMTDL7js.SDK_VERSION,
219
- "X-Deepline-API-Contract": _chunk6MVMTDL7js.SDK_API_CONTRACT
216
+ "X-Deepline-Agent-Runtime": _chunkZPLBQ24Ujs.detectAgentRuntime.call(void 0, ),
217
+ "X-Deepline-CLI-Version": _chunkZPLBQ24Ujs.SDK_VERSION,
218
+ "X-Deepline-SDK-Version": _chunkZPLBQ24Ujs.SDK_VERSION,
219
+ "X-Deepline-API-Contract": _chunkZPLBQ24Ujs.SDK_API_CONTRACT
220
220
  };
221
221
  if (apiKey) headers["Authorization"] = `Bearer ${apiKey}`;
222
222
  const bypassToken = _optionalChain([process, 'access', _7 => _7.env, 'access', _8 => _8.VERCEL_PROTECTION_BYPASS_TOKEN, 'optionalAccess', _9 => _9.trim, 'call', _10 => _10()]);
@@ -254,7 +254,7 @@ async function httpJson(method, url, apiKey, body, timeoutMs = AUTH_HTTP_TIMEOUT
254
254
  throw lastError instanceof Error ? lastError : new Error(String(lastError));
255
255
  }
256
256
  async function reportSetupCompleted(input) {
257
- const apiKey = input.authScope === "folder" ? _chunk6MVMTDL7js.resolveProjectApiKeyForBaseUrl.call(void 0, input.baseUrl) : _chunk6MVMTDL7js.resolveGlobalApiKeyForBaseUrl.call(void 0, input.baseUrl);
257
+ const apiKey = input.authScope === "folder" ? _chunkZPLBQ24Ujs.resolveProjectApiKeyForBaseUrl.call(void 0, input.baseUrl) : _chunkZPLBQ24Ujs.resolveGlobalApiKeyForBaseUrl.call(void 0, input.baseUrl);
258
258
  if (!apiKey) return;
259
259
  try {
260
260
  await httpJson(
@@ -351,7 +351,7 @@ async function printClaimSuccessBanner(baseUrl, apiKey, statusData) {
351
351
  }
352
352
  }
353
353
  async function handleRegister(args) {
354
- const baseUrl = _chunk6MVMTDL7js.autoDetectBaseUrl.call(void 0, ).replace(/\/$/, "");
354
+ const baseUrl = _chunkZPLBQ24Ujs.autoDetectBaseUrl.call(void 0, ).replace(/\/$/, "");
355
355
  let orgName = "";
356
356
  let orgId = "";
357
357
  let agentName = "";
@@ -406,19 +406,19 @@ async function handleRegister(args) {
406
406
  });
407
407
  saveEnvValues(
408
408
  {
409
- [_chunk6MVMTDL7js.HOST_URL_ENV]: baseUrl
409
+ [_chunkZPLBQ24Ujs.HOST_URL_ENV]: baseUrl
410
410
  },
411
411
  baseUrl,
412
412
  authScope
413
413
  );
414
414
  }
415
415
  if (claimUrl) {
416
- const shouldOpen = waitMode !== "no" && _chunk6MVMTDL7js.detectAgentRuntime.call(void 0, ) !== "claude_cowork";
416
+ const shouldOpen = waitMode !== "no" && _chunkZPLBQ24Ujs.detectAgentRuntime.call(void 0, ) !== "claude_cowork";
417
417
  console.log(
418
418
  shouldOpen ? " Opening approval page in your browser." : " Open this approval page in your browser:"
419
419
  );
420
420
  console.log(` ${claimUrl}`);
421
- if (shouldOpen) _chunkUUB3FTKZjs.openInBrowser.call(void 0, claimUrl);
421
+ if (shouldOpen) _chunkI5XF4PWDjs.openInBrowser.call(void 0, claimUrl);
422
422
  }
423
423
  if (data.cli_message) {
424
424
  console.log(String(data.cli_message));
@@ -461,8 +461,8 @@ async function handleRegister(args) {
461
461
  if (apiKey) {
462
462
  saveEnvValues(
463
463
  {
464
- [_chunk6MVMTDL7js.HOST_URL_ENV]: baseUrl,
465
- [_chunk6MVMTDL7js.API_KEY_ENV]: apiKey,
464
+ [_chunkZPLBQ24Ujs.HOST_URL_ENV]: baseUrl,
465
+ [_chunkZPLBQ24Ujs.API_KEY_ENV]: apiKey,
466
466
  ...activeOrgEnvValues(statusData)
467
467
  },
468
468
  baseUrl,
@@ -484,7 +484,7 @@ async function handleRegister(args) {
484
484
  }
485
485
  }
486
486
  async function handleWait(args) {
487
- const baseUrl = _chunk6MVMTDL7js.autoDetectBaseUrl.call(void 0, ).replace(/\/$/, "");
487
+ const baseUrl = _chunkZPLBQ24Ujs.autoDetectBaseUrl.call(void 0, ).replace(/\/$/, "");
488
488
  let timeoutSeconds = 300;
489
489
  let requestedScope;
490
490
  if (args.includes("--auth-scope")) {
@@ -508,7 +508,7 @@ async function handleWait(args) {
508
508
  const authScope = resumed.scope;
509
509
  const claimToken = _nullishCoalesce(_optionalChain([pendingClaim, 'optionalAccess', _11 => _11.claimToken]), () => ( ""));
510
510
  if (!pendingClaim) {
511
- const scopedApiKey = authScope === "folder" ? _chunk6MVMTDL7js.resolveProjectApiKeyForBaseUrl.call(void 0, baseUrl) : _chunk6MVMTDL7js.resolveGlobalApiKeyForBaseUrl.call(void 0, baseUrl);
511
+ const scopedApiKey = authScope === "folder" ? _chunkZPLBQ24Ujs.resolveProjectApiKeyForBaseUrl.call(void 0, baseUrl) : _chunkZPLBQ24Ujs.resolveGlobalApiKeyForBaseUrl.call(void 0, baseUrl);
512
512
  if (scopedApiKey) {
513
513
  console.log("Already connected.");
514
514
  return EXIT_OK;
@@ -551,8 +551,8 @@ async function handleWait(args) {
551
551
  if (apiKey) {
552
552
  saveEnvValues(
553
553
  {
554
- [_chunk6MVMTDL7js.HOST_URL_ENV]: baseUrl,
555
- [_chunk6MVMTDL7js.API_KEY_ENV]: apiKey,
554
+ [_chunkZPLBQ24Ujs.HOST_URL_ENV]: baseUrl,
555
+ [_chunkZPLBQ24Ujs.API_KEY_ENV]: apiKey,
556
556
  ...activeOrgEnvValues(data)
557
557
  },
558
558
  baseUrl,
@@ -576,9 +576,9 @@ async function handleWait(args) {
576
576
  return EXIT_AUTH;
577
577
  }
578
578
  async function handleStatus(args) {
579
- const baseUrl = _chunk6MVMTDL7js.autoDetectBaseUrl.call(void 0, ).replace(/\/$/, "");
579
+ const baseUrl = _chunkZPLBQ24Ujs.autoDetectBaseUrl.call(void 0, ).replace(/\/$/, "");
580
580
  const reveal = args.includes("--reveal");
581
- const jsonOutput = _chunkUUB3FTKZjs.argsWantJson.call(void 0, args);
581
+ const jsonOutput = _chunkI5XF4PWDjs.argsWantJson.call(void 0, args);
582
582
  const hasExplicitAuthScope = args.includes("--auth-scope");
583
583
  let authScope = null;
584
584
  if (hasExplicitAuthScope) {
@@ -618,14 +618,14 @@ async function handleStatus(args) {
618
618
  };
619
619
  hostLines.push(`Host: ${baseUrl} (unreachable)`);
620
620
  }
621
- const apiKey = authScope === "folder" ? _chunk6MVMTDL7js.resolveProjectApiKeyForBaseUrl.call(void 0, baseUrl) : authScope === "global" ? _chunk6MVMTDL7js.resolveGlobalApiKeyForBaseUrl.call(void 0, baseUrl) : _chunk6MVMTDL7js.resolveApiKeyForBaseUrl.call(void 0, baseUrl);
621
+ const apiKey = authScope === "folder" ? _chunkZPLBQ24Ujs.resolveProjectApiKeyForBaseUrl.call(void 0, baseUrl) : authScope === "global" ? _chunkZPLBQ24Ujs.resolveGlobalApiKeyForBaseUrl.call(void 0, baseUrl) : _chunkZPLBQ24Ujs.resolveApiKeyForBaseUrl.call(void 0, baseUrl);
622
622
  if (!apiKey) {
623
623
  const { claim: pendingClaim } = resolvePendingAuthClaimForResume(
624
624
  baseUrl,
625
625
  _nullishCoalesce(authScope, () => ( void 0))
626
626
  );
627
627
  if (pendingClaim) {
628
- _chunkUUB3FTKZjs.printCommandEnvelope.call(void 0,
628
+ _chunkI5XF4PWDjs.printCommandEnvelope.call(void 0,
629
629
  {
630
630
  ..._nullishCoalesce(hostStatusPayload, () => ( { host: baseUrl })),
631
631
  status: "pending",
@@ -646,7 +646,7 @@ async function handleStatus(args) {
646
646
  );
647
647
  return EXIT_OK;
648
648
  }
649
- _chunkUUB3FTKZjs.printCommandEnvelope.call(void 0,
649
+ _chunkI5XF4PWDjs.printCommandEnvelope.call(void 0,
650
650
  {
651
651
  ..._nullishCoalesce(hostStatusPayload, () => ( { host: baseUrl })),
652
652
  status: "not connected",
@@ -682,7 +682,7 @@ async function handleStatus(args) {
682
682
  }
683
683
  );
684
684
  if (status === 401 || status === 403) {
685
- _chunkUUB3FTKZjs.printCommandEnvelope.call(void 0,
685
+ _chunkI5XF4PWDjs.printCommandEnvelope.call(void 0,
686
686
  {
687
687
  ..._nullishCoalesce(hostStatusPayload, () => ( { host: baseUrl })),
688
688
  status: "unauthorized",
@@ -712,7 +712,7 @@ async function handleStatus(args) {
712
712
  console.error(`Auth status error (status ${status}).`);
713
713
  return EXIT_SERVER;
714
714
  }
715
- const resolvedAuthScope = _nullishCoalesce(authScope, () => ( (_chunk6MVMTDL7js.getResolvedProjectAuthSource.call(void 0, baseUrl, apiKey) ? "folder" : "global")));
715
+ const resolvedAuthScope = _nullishCoalesce(authScope, () => ( (_chunkZPLBQ24Ujs.getResolvedProjectAuthSource.call(void 0, baseUrl, apiKey) ? "folder" : "global")));
716
716
  clearSatisfiedPendingClaim(
717
717
  baseUrl,
718
718
  resolvedAuthScope,
@@ -740,28 +740,28 @@ async function handleStatus(args) {
740
740
  if (apiKeyResp) {
741
741
  saveEnvValues(
742
742
  {
743
- [_chunk6MVMTDL7js.HOST_URL_ENV]: baseUrl,
744
- [_chunk6MVMTDL7js.API_KEY_ENV]: apiKeyResp,
743
+ [_chunkZPLBQ24Ujs.HOST_URL_ENV]: baseUrl,
744
+ [_chunkZPLBQ24Ujs.API_KEY_ENV]: apiKeyResp,
745
745
  ...activeOrgEnvValues(data)
746
746
  },
747
747
  baseUrl,
748
748
  resolvedAuthScope
749
749
  );
750
750
  if (resolvedAuthScope === "folder") {
751
- const target = _chunk6MVMTDL7js.resolveProjectPinTarget.call(void 0, );
751
+ const target = _chunkZPLBQ24Ujs.resolveProjectPinTarget.call(void 0, );
752
752
  savedApiKeyPath = target.ok ? _path.join.call(void 0, target.dir, ".env.deepline") : null;
753
753
  } else {
754
754
  savedApiKeyPath = envFilePath(baseUrl);
755
755
  }
756
756
  }
757
- } else if (resolvedAuthScope === "folder" || _chunk6MVMTDL7js.storedHostApiKey.call(void 0, baseUrl) === apiKey) {
758
- saveEnvValues(_chunk6MVMTDL7js.featureEnvValues.call(void 0, data), baseUrl, resolvedAuthScope);
757
+ } else if (resolvedAuthScope === "folder" || _chunkZPLBQ24Ujs.storedHostApiKey.call(void 0, baseUrl) === apiKey) {
758
+ saveEnvValues(_chunkZPLBQ24Ujs.featureEnvValues.call(void 0, data), baseUrl, resolvedAuthScope);
759
759
  }
760
- _chunkUUB3FTKZjs.printCommandEnvelope.call(void 0,
760
+ _chunkI5XF4PWDjs.printCommandEnvelope.call(void 0,
761
761
  {
762
762
  ...payload,
763
- ..._chunk6MVMTDL7js.detectAgentRuntime.call(void 0, ) !== "unknown" ? {
764
- command_context: _chunk6MVMTDL7js.resolveCliCommandContext.call(void 0,
763
+ ..._chunkZPLBQ24Ujs.detectAgentRuntime.call(void 0, ) !== "unknown" ? {
764
+ command_context: _chunkZPLBQ24Ujs.resolveCliCommandContext.call(void 0,
765
765
  { baseUrl, apiKey },
766
766
  resolvedAuthScope
767
767
  )
@@ -3,7 +3,7 @@ import {
3
3
  detectAgentRuntime,
4
4
  resolveCliCommandContext,
5
5
  resolveConfig
6
- } from "./chunk-VB7TNIUB.mjs";
6
+ } from "./chunk-IU3TFWPR.mjs";
7
7
  import {
8
8
  DeeplineError
9
9
  } from "./chunk-NXGCO4JB.mjs";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-GAMFK2ZP.mjs";
4
4
  import {
5
5
  printCommandEnvelope
6
- } from "./chunk-A7S4PRK2.mjs";
6
+ } from "./chunk-TGMDQIYJ.mjs";
7
7
  import {
8
8
  DEFAULT_SKILL_AGENTS,
9
9
  KNOWN_SKILL_AGENTS,
@@ -22,7 +22,7 @@ import {
22
22
  sdkCliStateDirPath,
23
23
  skillsAgentPathSegment,
24
24
  writeSdkSkillsLocalVersion
25
- } from "./chunk-VB7TNIUB.mjs";
25
+ } from "./chunk-IU3TFWPR.mjs";
26
26
  import {
27
27
  DeeplineError
28
28
  } from "./chunk-NXGCO4JB.mjs";
@@ -10,11 +10,11 @@ import {
10
10
  } from "./chunk-EDWJY6T4.mjs";
11
11
  import {
12
12
  registerDeprecatedSearchCommand
13
- } from "./chunk-TVIWEQ4V.mjs";
13
+ } from "./chunk-IT3AQZDG.mjs";
14
14
  import {
15
15
  handleDeploymentGet,
16
16
  handleDeploymentsList
17
- } from "./chunk-O64RSXDZ.mjs";
17
+ } from "./chunk-WWZJ6P22.mjs";
18
18
  import {
19
19
  PLAY_BOOTSTRAP_COMPANY_PROVIDER_CATEGORY,
20
20
  PLAY_BOOTSTRAP_OUTPUT_FIELD_BY_FINDER,
@@ -39,7 +39,7 @@ import {
39
39
  normalizeRunEventOperationRequest,
40
40
  parseLogLevel,
41
41
  playInputExampleArgs
42
- } from "./chunk-TT2CLWMK.mjs";
42
+ } from "./chunk-VOD4V4G4.mjs";
43
43
  import {
44
44
  CSV_DATA_INPUT_KEY,
45
45
  buildNamedPlayRunRequest,
@@ -72,10 +72,10 @@ import {
72
72
  printJsonError,
73
73
  renderCommandEnvelopeText,
74
74
  shouldEmitJson
75
- } from "./chunk-A7S4PRK2.mjs";
75
+ } from "./chunk-TGMDQIYJ.mjs";
76
76
  import {
77
77
  fetchWithDeploymentProtection
78
- } from "./chunk-VB7TNIUB.mjs";
78
+ } from "./chunk-IU3TFWPR.mjs";
79
79
  import {
80
80
  PLAY_DEFAULT_EXPORT,
81
81
  extractDefinedPlayName,
@@ -13692,6 +13692,12 @@ function assertDatasetHasExportableRows(input) {
13692
13692
  if (input.rowsInfo.rows.length > 0) {
13693
13693
  return input.rowsInfo;
13694
13694
  }
13695
+ const rowOutcomes = readRowOutcomeSummary(input.status) ?? readRowOutcomeSummary(
13696
+ getRecordField(getRecordField(input.status, "result"), "_metadata")
13697
+ );
13698
+ if (input.allowEmpty === true && input.status.status === "completed" && !getRecordField(input.status, "error") && !getRecordField(input.status.progress, "error") && structuredErrorsForStatus(input.status).length === 0 && input.rowsInfo.complete && input.rowsInfo.totalRows === 0 && rowOutcomes?.failedRows === 0 && !rowOutcomes.hasRowFailures) {
13699
+ return input.rowsInfo;
13700
+ }
13695
13701
  const datasetLabel = input.datasetPath ?? input.rowsInfo.tableNamespace ?? input.rowsInfo.source ?? "result.rows";
13696
13702
  const available = input.availableRows.map((info) => info.tableNamespace ?? info.source).filter((name) => typeof name === "string");
13697
13703
  const runStatus = String(input.status.status ?? "").toLowerCase();
@@ -13711,7 +13717,7 @@ function assertDatasetHasExportableRows(input) {
13711
13717
  if (!TERMINAL_PLAY_STATUSES.has(input.status.status)) {
13712
13718
  const waitCommand = `${retryCommand} --wait`;
13713
13719
  throw new DeeplineError(
13714
- `Run ${input.status.runId} is ${runStatus}; this dataset has no accepted rows to export yet. Wait for this same run: ${waitCommand}. Do not start another run to retrieve results.`,
13720
+ `Run ${input.status.runId} is ${runStatus}; this dataset has zero rows to export yet. Wait for this same run: ${waitCommand}. Do not start another run to retrieve results.`,
13715
13721
  void 0,
13716
13722
  "RUN_EXPORT_EMPTY",
13717
13723
  {
@@ -13892,6 +13898,7 @@ ${commands.join("\n")}`,
13892
13898
  status,
13893
13899
  availableRows,
13894
13900
  datasetPath: options.datasetPath,
13901
+ allowEmpty: options.allowEmpty,
13895
13902
  outPath,
13896
13903
  format: options.format
13897
13904
  });
@@ -13903,6 +13910,7 @@ ${commands.join("\n")}`,
13903
13910
  status,
13904
13911
  availableRows,
13905
13912
  datasetPath: options.datasetPath,
13913
+ allowEmpty: options.allowEmpty,
13906
13914
  outPath,
13907
13915
  format: options.format
13908
13916
  });
@@ -13936,6 +13944,7 @@ ${commands.join("\n")}`,
13936
13944
  status,
13937
13945
  availableRows,
13938
13946
  datasetPath: options.datasetPath,
13947
+ allowEmpty: options.allowEmpty,
13939
13948
  outPath,
13940
13949
  format: options.format
13941
13950
  });
@@ -16463,7 +16472,7 @@ async function handleRunStopAll(args) {
16463
16472
  async function handleRunExport(args) {
16464
16473
  const selection = parseJsonFields(args, "export");
16465
16474
  args = selection.args;
16466
- const usage2 = "Usage: deepline runs export <run-id> [--dataset result.rows] --out <path> [--format csv|json] [--wait] [--timeout-ms 300000] [--metadata-out export.json] [--json]";
16475
+ const usage2 = "Usage: deepline runs export <run-id> [--dataset result.rows] --out <path> [--format csv|json] [--wait] [--timeout-ms 300000] [--metadata-out export.json] [--allow-empty] [--json]";
16467
16476
  let runId;
16468
16477
  try {
16469
16478
  runId = parseRunIdPositional(args, usage2);
@@ -16550,6 +16559,7 @@ async function handleRunExport(args) {
16550
16559
  }
16551
16560
  const exportResult = await exportPlayStatusRows(client, status, outPath, {
16552
16561
  datasetPath,
16562
+ allowEmpty: args.includes("--allow-empty"),
16553
16563
  format
16554
16564
  });
16555
16565
  const source = exportResult?.rowsInfo.source ?? datasetPath ?? null;
@@ -16569,7 +16579,7 @@ async function handleRunExport(args) {
16569
16579
  outPath,
16570
16580
  unambiguousName ?? datasetPath ?? exportResult?.datasetPath,
16571
16581
  { format }
16572
- );
16582
+ ) + (args.includes("--allow-empty") ? " --allow-empty" : "");
16573
16583
  const fileLocation = format === "json" ? { json_path: exportResult?.path ?? null } : { csv_path: exportResult?.path ?? null };
16574
16584
  const exportedRowOutcomes = exportResult?.rowsInfo.exportedRowOutcomes;
16575
16585
  const rowFailures = exportedRowOutcomes && exportedRowOutcomes.failed > 0 ? {
@@ -18156,7 +18166,7 @@ Examples:
18156
18166
  process.exitCode = await ownView();
18157
18167
  return;
18158
18168
  }
18159
- const { describeAnything } = await import("./describe-CPF4KDKZ.mjs");
18169
+ const { describeAnything } = await import("./describe-6MJ4B7NU.mjs");
18160
18170
  process.exitCode = await describeAnything(
18161
18171
  name,
18162
18172
  {
@@ -18693,6 +18703,8 @@ Notes:
18693
18703
  --json controls stdout metadata, not the file format.
18694
18704
  --metadata-out writes the same export metadata object returned by --json,
18695
18705
  including the source dataset path and row/column metadata.
18706
+ --allow-empty permits a completed dataset with a known zero count and no
18707
+ failed rows. Missing advertised rows and failed runs still fail loudly.
18696
18708
  An active run exports only the rows accepted so far; the receipt labels it
18697
18709
  partial. --wait observes the same run until it completes, fails, or is cancelled
18698
18710
  before exporting its saved rows. --timeout-ms bounds that wait (default 300000);
@@ -18709,7 +18721,7 @@ Examples:
18709
18721
  ).requiredOption("--out <path>", "Output file path").option("--format <format>", "File format: csv or json", "csv").option(
18710
18722
  "--dataset <path>",
18711
18723
  "Returned dataset handle path, such as result.rows"
18712
- ).option("--metadata-out <path>", "Write export metadata JSON to a file").option(
18724
+ ).option("--metadata-out <path>", "Write export metadata JSON to a file").option("--allow-empty", "Allow a completed, healthy zero-row dataset").option(
18713
18725
  "--wait",
18714
18726
  "Wait for this run to reach a terminal status before export"
18715
18727
  ).option("--timeout-ms <ms>", "Maximum wait with --wait (default: 300000)").option(
@@ -18724,6 +18736,7 @@ Examples:
18724
18736
  "--format",
18725
18737
  options.format,
18726
18738
  ...options.metadataOut ? ["--metadata-out", options.metadataOut] : [],
18739
+ ...options.allowEmpty ? ["--allow-empty"] : [],
18727
18740
  ...options.wait ? ["--wait"] : [],
18728
18741
  ...options.timeoutMs ? ["--timeout-ms", options.timeoutMs] : [],
18729
18742
  ...jsonFieldArgs(options.json)
@@ -15,7 +15,7 @@ import {
15
15
  RETAINED_PIPELINE_RECEIVERS_HEADER,
16
16
  RUNTIME_ENVIRONMENT_TOKEN_HEADER,
17
17
  resolveConfig
18
- } from "./chunk-VB7TNIUB.mjs";
18
+ } from "./chunk-IU3TFWPR.mjs";
19
19
  import {
20
20
  PLAY_RUNTIME_BACKENDS,
21
21
  RAW_V2_TOOL_RESPONSE_CONTRACT,
@@ -2,21 +2,33 @@
2
2
  var DEEPLINE_GTM_SKILL = "/deepline-gtm";
3
3
  var DEEPLINE_GTM_STARTER_PROMPTS = [
4
4
  {
5
+ // Preserve the historical opaque SDK choice ID.
5
6
  id: "competitor-tracking",
6
- title: "Competitor tracking",
7
- prompt: "/deepline-gtm Track competitors of my company. Use my business email domain when available; otherwise ask for my company name."
7
+ title: "Recently funded AI companies",
8
+ prompt: "/deepline-gtm Find 3 AI companies funded in the last 30 days, with founder contacts and verified work emails.",
9
+ prebuilt: "prebuilt/starter-funded-ai-founders",
10
+ defaultInput: { target_count: 3, days: 30 },
11
+ requiredInputs: [],
12
+ runCommand: "deepline plays run prebuilt/starter-funded-ai-founders --input '{}' --watch"
8
13
  },
9
14
  {
10
15
  id: "contact-email-enrichment",
11
16
  title: "Contact email enrichment",
12
- prompt: "/deepline-gtm Find 10 CTOs at B2B SaaS companies and enrich them with email addresses."
17
+ prompt: "/deepline-gtm Find 10 CTOs at B2B SaaS companies and enrich them with email addresses.",
18
+ prebuilt: "prebuilt/starter-b2b-saas-ctos",
19
+ defaultInput: { target_count: 10 },
20
+ requiredInputs: [],
21
+ runCommand: "deepline plays run prebuilt/starter-b2b-saas-ctos --input '{}' --watch"
13
22
  },
14
23
  {
15
- // Historical ID retained for SDK payload compatibility; the current
16
- // starter copy is the fintech hiring-and-growth workflow below.
24
+ // Preserve the historical opaque SDK choice ID.
17
25
  id: "decision-maker-discovery",
18
26
  title: "Fintech hiring and growth",
19
- prompt: "/deepline-gtm Find five fintech companies with live SDR openings and six-month headcount growth. Show dated evidence for both."
27
+ prompt: "/deepline-gtm Find 3 fintech companies with live SDR openings and six-month headcount growth. Show dated evidence for both.",
28
+ prebuilt: "prebuilt/starter-fintech-hiring-growth",
29
+ defaultInput: { target_count: 3 },
30
+ requiredInputs: [],
31
+ runCommand: "deepline plays run prebuilt/starter-fintech-hiring-growth --input '{}' --watch"
20
32
  }
21
33
  ];
22
34
  var DEEPLINE_GTM_PRIMARY_STARTER_PROMPT = DEEPLINE_GTM_STARTER_PROMPTS[0].prompt;
@@ -2,10 +2,10 @@ import {
2
2
  getAuthedHttpClient,
3
3
  openInBrowser,
4
4
  printCommandEnvelope
5
- } from "./chunk-A7S4PRK2.mjs";
5
+ } from "./chunk-TGMDQIYJ.mjs";
6
6
  import {
7
7
  resolveBaseUrlOnly
8
- } from "./chunk-VB7TNIUB.mjs";
8
+ } from "./chunk-IU3TFWPR.mjs";
9
9
 
10
10
  // src/cli/commands/git.ts
11
11
  function shellQuote(value) {
@@ -4,7 +4,7 @@
4
4
  var _chunkXNYIZMNQjs = require('./chunk-XNYIZMNQ.js');
5
5
 
6
6
 
7
- var _chunkGX2YGFQVjs = require('./chunk-GX2YGFQV.js');
7
+ var _chunkKZT7YX7Rjs = require('./chunk-KZT7YX7R.js');
8
8
 
9
9
 
10
10
 
@@ -743,9 +743,9 @@ function resolveCliCommandContext(inputConfig, requestedScope) {
743
743
  }
744
744
 
745
745
  // src/version.ts
746
- var SDK_VERSION = _chunkGX2YGFQVjs.SDK_RELEASE.version;
747
- var SDK_API_MAJOR = _chunkGX2YGFQVjs.SDK_RELEASE.contracts.api.currentMajor;
748
- var SDK_API_CONTRACT = _nullishCoalesce(_chunkGX2YGFQVjs.SDK_RELEASE.contracts.api.legacyWireIds[0], () => ( `api-v${SDK_API_MAJOR}`));
746
+ var SDK_VERSION = _chunkKZT7YX7Rjs.SDK_RELEASE.version;
747
+ var SDK_API_MAJOR = _chunkKZT7YX7Rjs.SDK_RELEASE.contracts.api.currentMajor;
748
+ var SDK_API_CONTRACT = _nullishCoalesce(_chunkKZT7YX7Rjs.SDK_RELEASE.contracts.api.legacyWireIds[0], () => ( `api-v${SDK_API_MAJOR}`));
749
749
 
750
750
  // src/agent-runtime.ts
751
751