deepline 0.3.212 → 0.3.214

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 (30) hide show
  1. package/dist/bundling-sources/sdk/src/client.ts +137 -32
  2. package/dist/bundling-sources/sdk/src/compat.ts +2 -0
  3. package/dist/bundling-sources/sdk/src/deployment-protection.ts +19 -0
  4. package/dist/bundling-sources/sdk/src/http.ts +3 -7
  5. package/dist/bundling-sources/sdk/src/index.ts +7 -0
  6. package/dist/bundling-sources/sdk/src/release.ts +1 -1
  7. package/dist/bundling-sources/sdk/src/types.ts +25 -0
  8. package/dist/bundling-sources/shared_libs/observability/scheduled-jobs.json +18 -0
  9. package/dist/bundling-sources/shared_libs/observability/scheduled-work-manual.ts +1 -0
  10. package/dist/bundling-sources/shared_libs/play-runtime/deployment/fly-registry.ts +33 -7
  11. package/dist/bundling-sources/shared_libs/play-runtime/runner-app/index.ts +11 -1
  12. package/dist/bundling-sources/shared_libs/play-runtime/runner-app/runtime-heartbeat.ts +3 -0
  13. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-payload-transport.ts +53 -1
  14. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-runtime-watchdog.ts +187 -6
  15. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-rate-state.ts +67 -37
  16. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres.ts +12 -3
  17. package/dist/bundling-sources/shared_libs/play-runtime/test-runtime-seams.ts +5 -2
  18. package/dist/bundling-sources/shared_libs/plays/settings-contract.ts +176 -0
  19. package/dist/cli/index.js +572 -92
  20. package/dist/cli/index.mjs +572 -92
  21. package/dist/index.d.mts +191 -3
  22. package/dist/index.d.ts +191 -3
  23. package/dist/index.js +67 -35
  24. package/dist/index.mjs +67 -35
  25. package/dist/install-integrity.json +2 -0
  26. package/dist/release.d.mts +1 -1
  27. package/dist/release.d.ts +1 -1
  28. package/dist/release.js +1 -1
  29. package/dist/release.mjs +1 -1
  30. package/package.json +3 -2
package/dist/index.js CHANGED
@@ -864,7 +864,7 @@ var SDK_RELEASE = {
864
864
  // getters keep their established compatibility behavior.
865
865
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
866
866
  // 0.3.90 is the first deliberately versioned SDK release for API v3.
867
- version: "0.3.212",
867
+ version: "0.3.214",
868
868
  updateSummary: "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.",
869
869
  packageCapabilities: {
870
870
  updatePreferences: 1
@@ -1158,6 +1158,12 @@ function readSdkSkillsLocalVersion(baseUrl) {
1158
1158
  }
1159
1159
  }
1160
1160
 
1161
+ // src/deployment-protection.ts
1162
+ function deploymentProtectionHeaders() {
1163
+ const token = typeof process !== "undefined" ? process.env?.VERCEL_PROTECTION_BYPASS_TOKEN : void 0;
1164
+ return token ? { "x-vercel-protection-bypass": token } : {};
1165
+ }
1166
+
1161
1167
  // ../play-runtime/coordinator-headers.ts
1162
1168
  var COORDINATOR_INTERNAL_TOKEN_HEADER = "x-deepline-internal-token";
1163
1169
  var COORDINATOR_URL_OVERRIDE_HEADER = "x-deepline-coordinator-url";
@@ -1540,16 +1546,13 @@ var HttpClient = class {
1540
1546
  "X-Deepline-SDK-Version": SDK_VERSION,
1541
1547
  "X-Deepline-API-Contract": SDK_API_CONTRACT,
1542
1548
  "X-Deepline-Run-Result-Shape": "canonical",
1543
- ...extra
1549
+ ...extra,
1550
+ ...deploymentProtectionHeaders()
1544
1551
  };
1545
1552
  const skillsVersion = this.readSkillsVersionHeader();
1546
1553
  if (skillsVersion) {
1547
1554
  headers["X-Deepline-Skills-Version"] = skillsVersion;
1548
1555
  }
1549
- const bypassToken = typeof process !== "undefined" ? process.env?.VERCEL_PROTECTION_BYPASS_TOKEN : void 0;
1550
- if (bypassToken) {
1551
- headers["x-vercel-protection-bypass"] = bypassToken;
1552
- }
1553
1556
  const playArtifactR2Prefix = typeof process !== "undefined" ? process.env?.DEEPLINE_PLAY_ARTIFACT_R2_PREFIX : void 0;
1554
1557
  if (playArtifactR2Prefix) {
1555
1558
  headers["x-deepline-play-artifact-r2-prefix"] = playArtifactR2Prefix;
@@ -4722,10 +4725,19 @@ function normalizePlayStatus(raw) {
4722
4725
  );
4723
4726
  }
4724
4727
  const runId = typeof raw.runId === "string" ? raw.runId : typeof raw.workflowId === "string" ? raw.workflowId : packageRun?.id ?? "";
4728
+ const legacyOverview = runPackage?.overview ?? raw.overview;
4729
+ const runStatus = runPackage?.runStatus ?? raw.runStatus;
4725
4730
  return {
4726
4731
  ...raw,
4727
4732
  runId,
4728
- ...runPackage ? { package: runPackage, outputs: runPackage.outputs } : {},
4733
+ ...isRecord7(legacyOverview) ? {
4734
+ overview: legacyOverview
4735
+ } : {},
4736
+ ...isRecord7(runStatus) ? { runStatus } : {},
4737
+ ...runPackage ? {
4738
+ package: runPackage,
4739
+ outputs: runPackage.outputs
4740
+ } : {},
4729
4741
  status
4730
4742
  };
4731
4743
  }
@@ -4907,18 +4919,6 @@ function playRunResultFromStatus(status, startedAt, fallbackRunId) {
4907
4919
  error: status.progress?.error ?? (status.status !== "completed" ? status.status : void 0)
4908
4920
  };
4909
4921
  }
4910
- function playRunStatusFromState(state) {
4911
- return {
4912
- runId: state.runId,
4913
- status: state.status,
4914
- progress: {
4915
- status: state.status,
4916
- logs: state.logs,
4917
- ...state.error ? { error: state.error } : {}
4918
- },
4919
- ..."result" in state ? { result: state.result } : {}
4920
- };
4921
- }
4922
4922
  var DeeplineClient = class _DeeplineClient {
4923
4923
  http;
4924
4924
  config;
@@ -5255,6 +5255,12 @@ var DeeplineClient = class _DeeplineClient {
5255
5255
  options.includeSearchDebug ? "true" : "false"
5256
5256
  );
5257
5257
  params.set("search_mode", options.searchMode ?? "v2");
5258
+ if (options.limit !== void 0) {
5259
+ params.set("limit", String(options.limit));
5260
+ }
5261
+ if (options.offset !== void 0) {
5262
+ params.set("offset", String(options.offset));
5263
+ }
5258
5264
  if (options.categories?.trim()) {
5259
5265
  params.set("categories", options.categories.trim());
5260
5266
  }
@@ -6316,9 +6322,18 @@ var DeeplineClient = class _DeeplineClient {
6316
6322
  }
6317
6323
  const query = params.size > 0 ? `?${params.toString()}` : "";
6318
6324
  const response = await this.http.get(
6319
- `/api/v2/runs/${encodeURIComponent(runId)}${query}`
6325
+ `/api/v2/runs/${encodeURIComponent(runId)}${query}`,
6326
+ { headers: { "x-deepline-run-status": "1" } }
6320
6327
  );
6328
+ const responseRunStatus = isPlayRunPackage(response) ? response.runStatus : isPlayRunPackage(response.package) ? response.package.runStatus : response.runStatus;
6329
+ const responseOverview = isPlayRunPackage(response) ? response.overview : isPlayRunPackage(response.package) ? response.package.overview : response.overview;
6321
6330
  const status = normalizePlayStatus(response);
6331
+ if (isRecord7(responseRunStatus)) {
6332
+ status.runStatus = responseRunStatus;
6333
+ }
6334
+ if (isRecord7(responseOverview)) {
6335
+ status.overview = responseOverview;
6336
+ }
6322
6337
  if (options?.failedLogs !== true || status.status !== "failed") {
6323
6338
  return status;
6324
6339
  }
@@ -6359,7 +6374,10 @@ var DeeplineClient = class _DeeplineClient {
6359
6374
  }
6360
6375
  };
6361
6376
  }
6362
- /** Read only the bounded scalar projection; does not hydrate the run package. */
6377
+ /** Fetch only the legacy scalar lifecycle status for a run.
6378
+ *
6379
+ * @deprecated Use `client.runs.get(runId)` for the canonical run read.
6380
+ */
6363
6381
  async getRunLifecycleStatus(runId) {
6364
6382
  const response = await this.http.get(
6365
6383
  `/api/v2/runs/${encodeURIComponent(runId)}/status`
@@ -6535,9 +6553,7 @@ var DeeplineClient = class _DeeplineClient {
6535
6553
  if (!status || !TERMINAL_PLAY_STATUSES.has(status.status)) {
6536
6554
  continue;
6537
6555
  }
6538
- return await this.getRunStatus(status.runId || runId).catch(
6539
- () => state.latest ?? playRunStatusFromState(state)
6540
- );
6556
+ return await this.getRunStatus(status.runId || runId);
6541
6557
  }
6542
6558
  if (options?.signal?.aborted) {
6543
6559
  throw new DeeplineError("Run observation aborted.", void 0, "ABORTED");
@@ -6588,6 +6604,7 @@ var DeeplineClient = class _DeeplineClient {
6588
6604
  for (; ; ) {
6589
6605
  const connectedAt = Date.now();
6590
6606
  let sawEvent = false;
6607
+ let terminalRunId = null;
6591
6608
  let endedReason = "stream window ended before a terminal event";
6592
6609
  try {
6593
6610
  for await (const event of this.streamPlayRunEvents(runId, {
@@ -6600,9 +6617,8 @@ var DeeplineClient = class _DeeplineClient {
6600
6617
  if (!status || !TERMINAL_PLAY_STATUSES.has(status.status)) {
6601
6618
  continue;
6602
6619
  }
6603
- return await this.getRunStatus(status.runId || runId).catch(
6604
- () => state.latest ?? playRunStatusFromState(state)
6605
- );
6620
+ terminalRunId = status.runId || runId;
6621
+ break;
6606
6622
  }
6607
6623
  } catch (error) {
6608
6624
  if (options?.signal?.aborted || !isTransientPlayStreamError(error)) {
@@ -6610,15 +6626,11 @@ var DeeplineClient = class _DeeplineClient {
6610
6626
  }
6611
6627
  endedReason = error instanceof Error ? error.message : String(error);
6612
6628
  }
6613
- let refreshed = null;
6614
- try {
6615
- refreshed = await this.getRunStatus(runId);
6616
- } catch (error) {
6617
- if (!isTransientPlayStreamError(error)) {
6618
- throw error;
6619
- }
6629
+ if (terminalRunId) {
6630
+ return await this.getRunStatus(terminalRunId);
6620
6631
  }
6621
- if (refreshed && TERMINAL_PLAY_STATUSES.has(refreshed.status)) {
6632
+ const refreshed = await this.getRunStatus(runId);
6633
+ if (TERMINAL_PLAY_STATUSES.has(refreshed.status)) {
6622
6634
  return refreshed;
6623
6635
  }
6624
6636
  if (sawEvent || Date.now() - connectedAt >= STREAM_HEALTHY_CONNECTION_MS) {
@@ -6907,6 +6919,26 @@ var DeeplineClient = class _DeeplineClient {
6907
6919
  hasMore: Boolean(response.pagination?.hasMore ?? response.hasMore)
6908
6920
  };
6909
6921
  }
6922
+ /** Read definition-level settings, independently of code revisions. */
6923
+ async getPlaySettings(playName) {
6924
+ return this.http.get(
6925
+ `/api/v2/plays/${encodeURIComponent(playName)}/settings`
6926
+ );
6927
+ }
6928
+ /** Retry-safe field patch; omitted fields retain their current value. */
6929
+ async updatePlaySettings(playName, patch) {
6930
+ return this.http.patch(
6931
+ `/api/v2/plays/${encodeURIComponent(playName)}/settings`,
6932
+ patch
6933
+ );
6934
+ }
6935
+ /** List one bounded page of existing Play locations; continue with cursor. */
6936
+ async listPlaySettingsPaths(options = {}) {
6937
+ const query = new URLSearchParams();
6938
+ for (const [key, value] of Object.entries(options))
6939
+ if (value !== void 0) query.set(key, String(value));
6940
+ return this.http.get(`/api/v2/plays/settings/paths?${query}`);
6941
+ }
6910
6942
  /** Set whether an org-owned Play sorts before unpinned Plays. */
6911
6943
  async setPlayPinned(playName, pinned) {
6912
6944
  return this.http.post(`/api/v2/plays/${encodeURIComponent(playName)}/pin`, {
package/dist/index.mjs CHANGED
@@ -768,7 +768,7 @@ var SDK_RELEASE = {
768
768
  // getters keep their established compatibility behavior.
769
769
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
770
770
  // 0.3.90 is the first deliberately versioned SDK release for API v3.
771
- version: "0.3.212",
771
+ version: "0.3.214",
772
772
  updateSummary: "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.",
773
773
  packageCapabilities: {
774
774
  updatePreferences: 1
@@ -1062,6 +1062,12 @@ function readSdkSkillsLocalVersion(baseUrl) {
1062
1062
  }
1063
1063
  }
1064
1064
 
1065
+ // src/deployment-protection.ts
1066
+ function deploymentProtectionHeaders() {
1067
+ const token = typeof process !== "undefined" ? process.env?.VERCEL_PROTECTION_BYPASS_TOKEN : void 0;
1068
+ return token ? { "x-vercel-protection-bypass": token } : {};
1069
+ }
1070
+
1065
1071
  // ../play-runtime/coordinator-headers.ts
1066
1072
  var COORDINATOR_INTERNAL_TOKEN_HEADER = "x-deepline-internal-token";
1067
1073
  var COORDINATOR_URL_OVERRIDE_HEADER = "x-deepline-coordinator-url";
@@ -1444,16 +1450,13 @@ var HttpClient = class {
1444
1450
  "X-Deepline-SDK-Version": SDK_VERSION,
1445
1451
  "X-Deepline-API-Contract": SDK_API_CONTRACT,
1446
1452
  "X-Deepline-Run-Result-Shape": "canonical",
1447
- ...extra
1453
+ ...extra,
1454
+ ...deploymentProtectionHeaders()
1448
1455
  };
1449
1456
  const skillsVersion = this.readSkillsVersionHeader();
1450
1457
  if (skillsVersion) {
1451
1458
  headers["X-Deepline-Skills-Version"] = skillsVersion;
1452
1459
  }
1453
- const bypassToken = typeof process !== "undefined" ? process.env?.VERCEL_PROTECTION_BYPASS_TOKEN : void 0;
1454
- if (bypassToken) {
1455
- headers["x-vercel-protection-bypass"] = bypassToken;
1456
- }
1457
1460
  const playArtifactR2Prefix = typeof process !== "undefined" ? process.env?.DEEPLINE_PLAY_ARTIFACT_R2_PREFIX : void 0;
1458
1461
  if (playArtifactR2Prefix) {
1459
1462
  headers["x-deepline-play-artifact-r2-prefix"] = playArtifactR2Prefix;
@@ -4626,10 +4629,19 @@ function normalizePlayStatus(raw) {
4626
4629
  );
4627
4630
  }
4628
4631
  const runId = typeof raw.runId === "string" ? raw.runId : typeof raw.workflowId === "string" ? raw.workflowId : packageRun?.id ?? "";
4632
+ const legacyOverview = runPackage?.overview ?? raw.overview;
4633
+ const runStatus = runPackage?.runStatus ?? raw.runStatus;
4629
4634
  return {
4630
4635
  ...raw,
4631
4636
  runId,
4632
- ...runPackage ? { package: runPackage, outputs: runPackage.outputs } : {},
4637
+ ...isRecord7(legacyOverview) ? {
4638
+ overview: legacyOverview
4639
+ } : {},
4640
+ ...isRecord7(runStatus) ? { runStatus } : {},
4641
+ ...runPackage ? {
4642
+ package: runPackage,
4643
+ outputs: runPackage.outputs
4644
+ } : {},
4633
4645
  status
4634
4646
  };
4635
4647
  }
@@ -4811,18 +4823,6 @@ function playRunResultFromStatus(status, startedAt, fallbackRunId) {
4811
4823
  error: status.progress?.error ?? (status.status !== "completed" ? status.status : void 0)
4812
4824
  };
4813
4825
  }
4814
- function playRunStatusFromState(state) {
4815
- return {
4816
- runId: state.runId,
4817
- status: state.status,
4818
- progress: {
4819
- status: state.status,
4820
- logs: state.logs,
4821
- ...state.error ? { error: state.error } : {}
4822
- },
4823
- ..."result" in state ? { result: state.result } : {}
4824
- };
4825
- }
4826
4826
  var DeeplineClient = class _DeeplineClient {
4827
4827
  http;
4828
4828
  config;
@@ -5159,6 +5159,12 @@ var DeeplineClient = class _DeeplineClient {
5159
5159
  options.includeSearchDebug ? "true" : "false"
5160
5160
  );
5161
5161
  params.set("search_mode", options.searchMode ?? "v2");
5162
+ if (options.limit !== void 0) {
5163
+ params.set("limit", String(options.limit));
5164
+ }
5165
+ if (options.offset !== void 0) {
5166
+ params.set("offset", String(options.offset));
5167
+ }
5162
5168
  if (options.categories?.trim()) {
5163
5169
  params.set("categories", options.categories.trim());
5164
5170
  }
@@ -6220,9 +6226,18 @@ var DeeplineClient = class _DeeplineClient {
6220
6226
  }
6221
6227
  const query = params.size > 0 ? `?${params.toString()}` : "";
6222
6228
  const response = await this.http.get(
6223
- `/api/v2/runs/${encodeURIComponent(runId)}${query}`
6229
+ `/api/v2/runs/${encodeURIComponent(runId)}${query}`,
6230
+ { headers: { "x-deepline-run-status": "1" } }
6224
6231
  );
6232
+ const responseRunStatus = isPlayRunPackage(response) ? response.runStatus : isPlayRunPackage(response.package) ? response.package.runStatus : response.runStatus;
6233
+ const responseOverview = isPlayRunPackage(response) ? response.overview : isPlayRunPackage(response.package) ? response.package.overview : response.overview;
6225
6234
  const status = normalizePlayStatus(response);
6235
+ if (isRecord7(responseRunStatus)) {
6236
+ status.runStatus = responseRunStatus;
6237
+ }
6238
+ if (isRecord7(responseOverview)) {
6239
+ status.overview = responseOverview;
6240
+ }
6226
6241
  if (options?.failedLogs !== true || status.status !== "failed") {
6227
6242
  return status;
6228
6243
  }
@@ -6263,7 +6278,10 @@ var DeeplineClient = class _DeeplineClient {
6263
6278
  }
6264
6279
  };
6265
6280
  }
6266
- /** Read only the bounded scalar projection; does not hydrate the run package. */
6281
+ /** Fetch only the legacy scalar lifecycle status for a run.
6282
+ *
6283
+ * @deprecated Use `client.runs.get(runId)` for the canonical run read.
6284
+ */
6267
6285
  async getRunLifecycleStatus(runId) {
6268
6286
  const response = await this.http.get(
6269
6287
  `/api/v2/runs/${encodeURIComponent(runId)}/status`
@@ -6439,9 +6457,7 @@ var DeeplineClient = class _DeeplineClient {
6439
6457
  if (!status || !TERMINAL_PLAY_STATUSES.has(status.status)) {
6440
6458
  continue;
6441
6459
  }
6442
- return await this.getRunStatus(status.runId || runId).catch(
6443
- () => state.latest ?? playRunStatusFromState(state)
6444
- );
6460
+ return await this.getRunStatus(status.runId || runId);
6445
6461
  }
6446
6462
  if (options?.signal?.aborted) {
6447
6463
  throw new DeeplineError("Run observation aborted.", void 0, "ABORTED");
@@ -6492,6 +6508,7 @@ var DeeplineClient = class _DeeplineClient {
6492
6508
  for (; ; ) {
6493
6509
  const connectedAt = Date.now();
6494
6510
  let sawEvent = false;
6511
+ let terminalRunId = null;
6495
6512
  let endedReason = "stream window ended before a terminal event";
6496
6513
  try {
6497
6514
  for await (const event of this.streamPlayRunEvents(runId, {
@@ -6504,9 +6521,8 @@ var DeeplineClient = class _DeeplineClient {
6504
6521
  if (!status || !TERMINAL_PLAY_STATUSES.has(status.status)) {
6505
6522
  continue;
6506
6523
  }
6507
- return await this.getRunStatus(status.runId || runId).catch(
6508
- () => state.latest ?? playRunStatusFromState(state)
6509
- );
6524
+ terminalRunId = status.runId || runId;
6525
+ break;
6510
6526
  }
6511
6527
  } catch (error) {
6512
6528
  if (options?.signal?.aborted || !isTransientPlayStreamError(error)) {
@@ -6514,15 +6530,11 @@ var DeeplineClient = class _DeeplineClient {
6514
6530
  }
6515
6531
  endedReason = error instanceof Error ? error.message : String(error);
6516
6532
  }
6517
- let refreshed = null;
6518
- try {
6519
- refreshed = await this.getRunStatus(runId);
6520
- } catch (error) {
6521
- if (!isTransientPlayStreamError(error)) {
6522
- throw error;
6523
- }
6533
+ if (terminalRunId) {
6534
+ return await this.getRunStatus(terminalRunId);
6524
6535
  }
6525
- if (refreshed && TERMINAL_PLAY_STATUSES.has(refreshed.status)) {
6536
+ const refreshed = await this.getRunStatus(runId);
6537
+ if (TERMINAL_PLAY_STATUSES.has(refreshed.status)) {
6526
6538
  return refreshed;
6527
6539
  }
6528
6540
  if (sawEvent || Date.now() - connectedAt >= STREAM_HEALTHY_CONNECTION_MS) {
@@ -6811,6 +6823,26 @@ var DeeplineClient = class _DeeplineClient {
6811
6823
  hasMore: Boolean(response.pagination?.hasMore ?? response.hasMore)
6812
6824
  };
6813
6825
  }
6826
+ /** Read definition-level settings, independently of code revisions. */
6827
+ async getPlaySettings(playName) {
6828
+ return this.http.get(
6829
+ `/api/v2/plays/${encodeURIComponent(playName)}/settings`
6830
+ );
6831
+ }
6832
+ /** Retry-safe field patch; omitted fields retain their current value. */
6833
+ async updatePlaySettings(playName, patch) {
6834
+ return this.http.patch(
6835
+ `/api/v2/plays/${encodeURIComponent(playName)}/settings`,
6836
+ patch
6837
+ );
6838
+ }
6839
+ /** List one bounded page of existing Play locations; continue with cursor. */
6840
+ async listPlaySettingsPaths(options = {}) {
6841
+ const query = new URLSearchParams();
6842
+ for (const [key, value] of Object.entries(options))
6843
+ if (value !== void 0) query.set(key, String(value));
6844
+ return this.http.get(`/api/v2/plays/settings/paths?${query}`);
6845
+ }
6814
6846
  /** Set whether an org-owned Play sorts before unpinned Plays. */
6815
6847
  async setPlayPinned(playName, pinned) {
6816
6848
  return this.http.post(`/api/v2/plays/${encodeURIComponent(playName)}/pin`, {
@@ -5,6 +5,7 @@
5
5
  "dist/bundling-sources/sdk/src/client.ts",
6
6
  "dist/bundling-sources/sdk/src/compat.ts",
7
7
  "dist/bundling-sources/sdk/src/config.ts",
8
+ "dist/bundling-sources/sdk/src/deployment-protection.ts",
8
9
  "dist/bundling-sources/sdk/src/errors.ts",
9
10
  "dist/bundling-sources/sdk/src/gtm.ts",
10
11
  "dist/bundling-sources/sdk/src/helpers.ts",
@@ -503,6 +504,7 @@
503
504
  "dist/bundling-sources/shared_libs/plays/sandbox-runtime-limits.ts",
504
505
  "dist/bundling-sources/shared_libs/plays/secret-guardrails.ts",
505
506
  "dist/bundling-sources/shared_libs/plays/secrets/errors.ts",
507
+ "dist/bundling-sources/shared_libs/plays/settings-contract.ts",
506
508
  "dist/bundling-sources/shared_libs/plays/share/copy.ts",
507
509
  "dist/bundling-sources/shared_libs/plays/share/metrics.ts",
508
510
  "dist/bundling-sources/shared_libs/plays/share/public-read-model.ts",
@@ -149,7 +149,7 @@ type SdkRelease = {
149
149
  supportPolicy: SdkSupportPolicy;
150
150
  };
151
151
  declare const SDK_RELEASE: {
152
- readonly version: "0.3.212";
152
+ readonly version: "0.3.214";
153
153
  readonly updateSummary: "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.";
154
154
  readonly packageCapabilities: {
155
155
  readonly updatePreferences: 1;
package/dist/release.d.ts CHANGED
@@ -149,7 +149,7 @@ type SdkRelease = {
149
149
  supportPolicy: SdkSupportPolicy;
150
150
  };
151
151
  declare const SDK_RELEASE: {
152
- readonly version: "0.3.212";
152
+ readonly version: "0.3.214";
153
153
  readonly updateSummary: "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.";
154
154
  readonly packageCapabilities: {
155
155
  readonly updatePreferences: 1;
package/dist/release.js CHANGED
@@ -74,7 +74,7 @@ var SDK_RELEASE = {
74
74
  // getters keep their established compatibility behavior.
75
75
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
76
76
  // 0.3.90 is the first deliberately versioned SDK release for API v3.
77
- version: "0.3.212",
77
+ version: "0.3.214",
78
78
  updateSummary: "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.",
79
79
  packageCapabilities: {
80
80
  updatePreferences: 1
package/dist/release.mjs CHANGED
@@ -48,7 +48,7 @@ var SDK_RELEASE = {
48
48
  // getters keep their established compatibility behavior.
49
49
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
50
50
  // 0.3.90 is the first deliberately versioned SDK release for API v3.
51
- version: "0.3.212",
51
+ version: "0.3.214",
52
52
  updateSummary: "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.",
53
53
  packageCapabilities: {
54
54
  updatePreferences: 1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "deepline",
3
- "version": "0.3.212",
3
+ "version": "0.3.214",
4
4
  "description": "GTM data CLI and TypeScript SDK for coding agents",
5
5
  "license": "MIT",
6
6
  "homepage": "https://code.deepline.com",
@@ -71,7 +71,8 @@
71
71
  "csv-parse": "^5.6.0",
72
72
  "csv-stringify": "^6.5.0",
73
73
  "handlebars": "4.7.8",
74
- "undici": "^6.22.0"
74
+ "undici": "^6.22.0",
75
+ "zod": "^4.0.0"
75
76
  },
76
77
  "optionalDependencies": {
77
78
  "esbuild": "^0.27.0"