deepline 0.3.174 → 0.3.176

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.
@@ -11852,15 +11852,26 @@ export async function cancelPostgresSchedulerRun(
11852
11852
  absurdTaskId: string;
11853
11853
  engineTaskTable: string | null;
11854
11854
  };
11855
+ /**
11856
+ * Optional control-plane ownership for the pending causal head. The
11857
+ * caller resumes this same lease after commit to make cancellation visible
11858
+ * synchronously in the canonical Run Ledger.
11859
+ */
11860
+ outboxLease?: { leaseOwner: string; leaseSeconds: number };
11855
11861
  },
11856
11862
  options?: Pick<PostgresSchedulerOptions, 'schema'>,
11857
11863
  ): Promise<boolean> {
11858
11864
  const reason = input.reason?.trim() || 'Cancelled.';
11865
+ const outboxLeaseOwner = input.outboxLease?.leaseOwner.trim() || null;
11866
+ const outboxLeaseSeconds = Math.max(
11867
+ 5,
11868
+ Math.min(300, Math.floor(input.outboxLease?.leaseSeconds ?? 15)),
11869
+ );
11859
11870
  const strandedFence = input.onlyIfStrandedPreExecution;
11860
11871
  const strandedEligibility = strandedFence
11861
11872
  ? `AND target.status = 'queued'
11862
- AND target.launch_json->>'absurdReleaseId' = $6
11863
- AND target.absurd_task_id = $7
11873
+ AND target.launch_json->>'absurdReleaseId' = $8
11874
+ AND target.absurd_task_id = $9
11864
11875
  AND NOT EXISTS (
11865
11876
  SELECT 1 FROM ${tableName('attempts', options)} AS attempt
11866
11877
  WHERE attempt.run_id = target.run_id
@@ -11991,16 +12002,46 @@ export async function cancelPostgresSchedulerRun(
11991
12002
  AND NULLIF(resource->>'sandboxId', '') IS NOT NULL
11992
12003
  ON CONFLICT (provider, sandbox_id, routing_domain_key) DO NOTHING
11993
12004
  ),
12005
+ cancellation_outbox_head AS MATERIALIZED (
12006
+ SELECT pending.event_id
12007
+ FROM ${tableName('outbox', options)} AS pending
12008
+ JOIN cancelled_run ON cancelled_run.run_id = pending.run_id
12009
+ WHERE pending.delivered_at IS NULL
12010
+ AND pending.failed_at IS NULL
12011
+ ORDER BY ${runLedgerOrderSql('pending')}
12012
+ LIMIT 1
12013
+ ),
12014
+ cancellation_outbox_lease AS (
12015
+ UPDATE ${tableName('outbox', options)} AS pending
12016
+ SET lease_owner = $6::text,
12017
+ lease_expires_at = now() + make_interval(secs => $7::integer),
12018
+ next_attempt_at = NULL
12019
+ WHERE $6::text IS NOT NULL
12020
+ AND pending.event_id IN (SELECT event_id FROM cancellation_outbox_head)
12021
+ RETURNING pending.event_id
12022
+ ),
11994
12023
  terminal_outbox AS (
11995
12024
  INSERT INTO ${tableName('outbox', options)} (
11996
- event_id, run_id, event_type, payload_json, created_at
12025
+ event_id, run_id, event_type, payload_json, created_at,
12026
+ next_attempt_at, lease_owner, lease_expires_at
11997
12027
  )
11998
12028
  SELECT
11999
12029
  'run-terminal:' || run_id,
12000
12030
  cancelled_run.run_id,
12001
12031
  'run.cancelled',
12002
12032
  jsonb_build_object('error', $5::text),
12003
- ${causalOutboxCreatedAt('cancelled_run.run_id', options)}
12033
+ ${causalOutboxCreatedAt('cancelled_run.run_id', options)},
12034
+ NULL,
12035
+ CASE
12036
+ WHEN EXISTS (SELECT 1 FROM cancellation_outbox_head) THEN NULL
12037
+ ELSE $6::text
12038
+ END,
12039
+ CASE
12040
+ WHEN $6::text IS NULL
12041
+ OR EXISTS (SELECT 1 FROM cancellation_outbox_head)
12042
+ THEN NULL
12043
+ ELSE now() + make_interval(secs => $7::integer)
12044
+ END
12004
12045
  FROM cancelled_run
12005
12046
  ON CONFLICT (event_id) DO NOTHING
12006
12047
  ),
@@ -12017,11 +12058,39 @@ export async function cancelPostgresSchedulerRun(
12017
12058
  postgresSchedulerNotifyChannel('terminal', options),
12018
12059
  JSON.stringify({ runId: input.runId, status: 'cancelled' }),
12019
12060
  reason,
12061
+ outboxLeaseOwner,
12062
+ outboxLeaseSeconds,
12020
12063
  ...(strandedFence
12021
12064
  ? [strandedFence.releaseId, strandedFence.absurdTaskId]
12022
12065
  : []),
12023
12066
  ],
12024
12067
  );
12068
+ if (cancelled.rows.length === 0 && outboxLeaseOwner) {
12069
+ // A competing terminal writer may win while this UPDATE waits on the run
12070
+ // row. The next statement gets a fresh READ COMMITTED snapshot. Adopt its
12071
+ // pending causal prefix before this enclosing cancellation transaction
12072
+ // commits so the request can still project the winning terminal state
12073
+ // without waiting for a background lease.
12074
+ await client.query(
12075
+ `UPDATE ${tableName('outbox', options)} AS pending
12076
+ SET lease_owner = $2,
12077
+ lease_expires_at = now() + make_interval(secs => $3::integer),
12078
+ next_attempt_at = NULL
12079
+ WHERE pending.event_id = (
12080
+ SELECT candidate.event_id
12081
+ FROM ${tableName('outbox', options)} AS candidate
12082
+ JOIN ${tableName('runs', options)} AS terminal_run
12083
+ ON terminal_run.run_id = candidate.run_id
12084
+ WHERE candidate.run_id = $1
12085
+ AND candidate.delivered_at IS NULL
12086
+ AND candidate.failed_at IS NULL
12087
+ AND terminal_run.status IN ('completed', 'failed', 'cancelled')
12088
+ ORDER BY ${runLedgerOrderSql('candidate')}
12089
+ LIMIT 1
12090
+ )`,
12091
+ [input.runId, outboxLeaseOwner, outboxLeaseSeconds],
12092
+ );
12093
+ }
12025
12094
  return cancelled.rows.length > 0;
12026
12095
  }
12027
12096
 
@@ -15369,7 +15438,12 @@ export async function readPendingPostgresSchedulerOutboxEvents(
15369
15438
  AND candidate.failed_at IS NULL
15370
15439
  AND coalesce(candidate.next_attempt_at, candidate.created_at) <= now()
15371
15440
  AND ($2::text IS NULL OR candidate.run_id = $2)
15372
- AND ($3::text IS NULL OR candidate.lease_expires_at IS NULL OR candidate.lease_expires_at <= now())
15441
+ AND (
15442
+ $3::text IS NULL
15443
+ OR candidate.lease_owner = $3::text
15444
+ OR candidate.lease_expires_at IS NULL
15445
+ OR candidate.lease_expires_at <= now()
15446
+ )
15373
15447
  -- A producer transaction may commit an older timestamp after a
15374
15448
  -- delivery has started. Ownership covers the run, not just the
15375
15449
  -- current oldest row: that late predecessor must wait as well.
@@ -15379,6 +15453,7 @@ export async function readPendingPostgresSchedulerOutboxEvents(
15379
15453
  AND active.delivered_at IS NULL
15380
15454
  AND active.lease_owner IS NOT NULL
15381
15455
  AND active.lease_expires_at > now()
15456
+ AND active.lease_owner IS DISTINCT FROM $3::text
15382
15457
  )
15383
15458
  -- Competing projectors acquire one run through its oldest event.
15384
15459
  -- Locking this head prevents another projector from splitting the
@@ -15417,7 +15492,12 @@ export async function readPendingPostgresSchedulerOutboxEvents(
15417
15492
  -- its receipt stable independently of the recovery caller's limit.
15418
15493
  AND (outbox.event_type <> 'run.events' OR outbox.event_id = head.event_id)
15419
15494
  AND coalesce(outbox.next_attempt_at, outbox.created_at) <= now()
15420
- AND ($3::text IS NULL OR outbox.lease_expires_at IS NULL OR outbox.lease_expires_at <= now())
15495
+ AND (
15496
+ $3::text IS NULL
15497
+ OR outbox.lease_owner = $3::text
15498
+ OR outbox.lease_expires_at IS NULL
15499
+ OR outbox.lease_expires_at <= now()
15500
+ )
15421
15501
  -- A started terminal batch is deliberately stable across a retry.
15422
15502
  -- Do not enlarge it with a later event before acknowledgement: the
15423
15503
  -- runtime can replay the old idempotent append, but it cannot prove
@@ -15460,6 +15540,7 @@ export async function readPendingPostgresSchedulerOutboxEvents(
15460
15540
  $3::text IS NOT NULL
15461
15541
  AND predecessor.lease_expires_at IS NOT NULL
15462
15542
  AND predecessor.lease_expires_at > now()
15543
+ AND predecessor.lease_owner IS DISTINCT FROM $3::text
15463
15544
  )
15464
15545
  )
15465
15546
  )
@@ -16348,6 +16429,30 @@ export async function listPostgresSchedulerOutboxMaterializationPlans(
16348
16429
  */
16349
16430
  export type RunLedgerOutboxTokenAuthority = 'local_mint' | 'gateway';
16350
16431
 
16432
+ const POSTGRES_SCHEDULER_CANCELLATION_OUTBOX_LEASE_SECONDS = 15;
16433
+
16434
+ /**
16435
+ * Stable lease identity shared by the atomic scheduler cancellation and the
16436
+ * app-side terminal projector. Cancellation can therefore fence a stale or
16437
+ * slow background delivery inside the terminal transaction, then resume from
16438
+ * that exact head immediately without waiting for its old lease to age.
16439
+ */
16440
+ export function postgresSchedulerCancellationOutboxLease(runId: string): {
16441
+ leaseOwner: string;
16442
+ leaseSeconds: number;
16443
+ } {
16444
+ const normalizedRunId = runId.trim();
16445
+ if (!normalizedRunId) {
16446
+ throw new Error('Cancellation outbox lease requires a run id.');
16447
+ }
16448
+ return {
16449
+ leaseOwner: `run-ledger-cancel:${createHash('sha256')
16450
+ .update(normalizedRunId)
16451
+ .digest('hex')}`,
16452
+ leaseSeconds: POSTGRES_SCHEDULER_CANCELLATION_OUTBOX_LEASE_SECONDS,
16453
+ };
16454
+ }
16455
+
16351
16456
  export type RunLedgerOutboxDispatchInput = {
16352
16457
  runtimeApi?: WorkerRuntimeApiContext | null;
16353
16458
  limit?: number;
@@ -16564,10 +16669,11 @@ export async function dispatchRunLedgerOutboxToLedgerBatchOnceWithClientScope(
16564
16669
  AND active.delivered_at IS NULL
16565
16670
  AND active.lease_owner IS NOT NULL
16566
16671
  AND active.lease_expires_at > now()
16672
+ AND active.lease_owner IS DISTINCT FROM $2::text
16567
16673
  )
16568
16674
  FOR UPDATE OF runs SKIP LOCKED
16569
16675
  `,
16570
- [targetRunId],
16676
+ [targetRunId, leaseOwner],
16571
16677
  )
16572
16678
  : await client.query<{ run_id: string }>(`
16573
16679
  WITH heads AS MATERIALIZED (
package/dist/cli/index.js CHANGED
@@ -3051,7 +3051,7 @@ var SDK_RELEASE = {
3051
3051
  // getters keep their established compatibility behavior.
3052
3052
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
3053
3053
  // 0.3.90 is the first deliberately versioned SDK release for API v3.
3054
- version: "0.3.174",
3054
+ version: "0.3.176",
3055
3055
  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.",
3056
3056
  packageCapabilities: {
3057
3057
  updatePreferences: 1
@@ -6425,6 +6425,16 @@ function resolveTheirstackClientTimeoutMs(endpointId, payload) {
6425
6425
  return usesExtendedTheirstackJobSearchBudget(endpointId, payload) ? THEIRSTACK_SLOW_JOB_SEARCH_CLIENT_TIMEOUT_MS : null;
6426
6426
  }
6427
6427
 
6428
+ // ../integration-contracts/waterfall/execution-policy.ts
6429
+ var WATERFALL_PROSPECTOR_CLIENT_TIMEOUT_MS = 18e4;
6430
+ var WATERFALL_PROSPECTOR_LAUNCHER_TOOL_IDS = /* @__PURE__ */ new Set([
6431
+ "prospector",
6432
+ "deepline_native_prospector"
6433
+ ]);
6434
+ function resolveWaterfallClientTimeoutMs(toolId) {
6435
+ return WATERFALL_PROSPECTOR_LAUNCHER_TOOL_IDS.has(toolId.trim().toLowerCase()) ? WATERFALL_PROSPECTOR_CLIENT_TIMEOUT_MS : null;
6436
+ }
6437
+
6428
6438
  // ../integration-contracts/bettercontact/execution-policy.ts
6429
6439
  var BETTERCONTACT_LAUNCHER_CLIENT_TIMEOUT_MS = 12e4;
6430
6440
  var BETTERCONTACT_LAUNCHER_TOOL_IDS = /* @__PURE__ */ new Set([
@@ -6835,6 +6845,8 @@ function resolveToolExecuteTimeoutMs(toolId, input2) {
6835
6845
  input2
6836
6846
  );
6837
6847
  if (theirstackTimeoutMs !== null) return theirstackTimeoutMs;
6848
+ const waterfallTimeoutMs = resolveWaterfallClientTimeoutMs(normalized);
6849
+ if (waterfallTimeoutMs !== null) return waterfallTimeoutMs;
6838
6850
  if (usesExtendedBetterContactLauncherBudget(normalized)) {
6839
6851
  return BETTERCONTACT_LAUNCHER_CLIENT_TIMEOUT_MS;
6840
6852
  }
@@ -3046,7 +3046,7 @@ var SDK_RELEASE = {
3046
3046
  // getters keep their established compatibility behavior.
3047
3047
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
3048
3048
  // 0.3.90 is the first deliberately versioned SDK release for API v3.
3049
- version: "0.3.174",
3049
+ version: "0.3.176",
3050
3050
  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.",
3051
3051
  packageCapabilities: {
3052
3052
  updatePreferences: 1
@@ -6420,6 +6420,16 @@ function resolveTheirstackClientTimeoutMs(endpointId, payload) {
6420
6420
  return usesExtendedTheirstackJobSearchBudget(endpointId, payload) ? THEIRSTACK_SLOW_JOB_SEARCH_CLIENT_TIMEOUT_MS : null;
6421
6421
  }
6422
6422
 
6423
+ // ../integration-contracts/waterfall/execution-policy.ts
6424
+ var WATERFALL_PROSPECTOR_CLIENT_TIMEOUT_MS = 18e4;
6425
+ var WATERFALL_PROSPECTOR_LAUNCHER_TOOL_IDS = /* @__PURE__ */ new Set([
6426
+ "prospector",
6427
+ "deepline_native_prospector"
6428
+ ]);
6429
+ function resolveWaterfallClientTimeoutMs(toolId) {
6430
+ return WATERFALL_PROSPECTOR_LAUNCHER_TOOL_IDS.has(toolId.trim().toLowerCase()) ? WATERFALL_PROSPECTOR_CLIENT_TIMEOUT_MS : null;
6431
+ }
6432
+
6423
6433
  // ../integration-contracts/bettercontact/execution-policy.ts
6424
6434
  var BETTERCONTACT_LAUNCHER_CLIENT_TIMEOUT_MS = 12e4;
6425
6435
  var BETTERCONTACT_LAUNCHER_TOOL_IDS = /* @__PURE__ */ new Set([
@@ -6830,6 +6840,8 @@ function resolveToolExecuteTimeoutMs(toolId, input2) {
6830
6840
  input2
6831
6841
  );
6832
6842
  if (theirstackTimeoutMs !== null) return theirstackTimeoutMs;
6843
+ const waterfallTimeoutMs = resolveWaterfallClientTimeoutMs(normalized);
6844
+ if (waterfallTimeoutMs !== null) return waterfallTimeoutMs;
6833
6845
  if (usesExtendedBetterContactLauncherBudget(normalized)) {
6834
6846
  return BETTERCONTACT_LAUNCHER_CLIENT_TIMEOUT_MS;
6835
6847
  }
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.174",
867
+ version: "0.3.176",
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
@@ -4095,6 +4095,16 @@ function resolveTheirstackClientTimeoutMs(endpointId, payload) {
4095
4095
  return usesExtendedTheirstackJobSearchBudget(endpointId, payload) ? THEIRSTACK_SLOW_JOB_SEARCH_CLIENT_TIMEOUT_MS : null;
4096
4096
  }
4097
4097
 
4098
+ // ../integration-contracts/waterfall/execution-policy.ts
4099
+ var WATERFALL_PROSPECTOR_CLIENT_TIMEOUT_MS = 18e4;
4100
+ var WATERFALL_PROSPECTOR_LAUNCHER_TOOL_IDS = /* @__PURE__ */ new Set([
4101
+ "prospector",
4102
+ "deepline_native_prospector"
4103
+ ]);
4104
+ function resolveWaterfallClientTimeoutMs(toolId) {
4105
+ return WATERFALL_PROSPECTOR_LAUNCHER_TOOL_IDS.has(toolId.trim().toLowerCase()) ? WATERFALL_PROSPECTOR_CLIENT_TIMEOUT_MS : null;
4106
+ }
4107
+
4098
4108
  // ../integration-contracts/bettercontact/execution-policy.ts
4099
4109
  var BETTERCONTACT_LAUNCHER_CLIENT_TIMEOUT_MS = 12e4;
4100
4110
  var BETTERCONTACT_LAUNCHER_TOOL_IDS = /* @__PURE__ */ new Set([
@@ -4505,6 +4515,8 @@ function resolveToolExecuteTimeoutMs(toolId, input) {
4505
4515
  input
4506
4516
  );
4507
4517
  if (theirstackTimeoutMs !== null) return theirstackTimeoutMs;
4518
+ const waterfallTimeoutMs = resolveWaterfallClientTimeoutMs(normalized);
4519
+ if (waterfallTimeoutMs !== null) return waterfallTimeoutMs;
4508
4520
  if (usesExtendedBetterContactLauncherBudget(normalized)) {
4509
4521
  return BETTERCONTACT_LAUNCHER_CLIENT_TIMEOUT_MS;
4510
4522
  }
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.174",
771
+ version: "0.3.176",
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
@@ -3999,6 +3999,16 @@ function resolveTheirstackClientTimeoutMs(endpointId, payload) {
3999
3999
  return usesExtendedTheirstackJobSearchBudget(endpointId, payload) ? THEIRSTACK_SLOW_JOB_SEARCH_CLIENT_TIMEOUT_MS : null;
4000
4000
  }
4001
4001
 
4002
+ // ../integration-contracts/waterfall/execution-policy.ts
4003
+ var WATERFALL_PROSPECTOR_CLIENT_TIMEOUT_MS = 18e4;
4004
+ var WATERFALL_PROSPECTOR_LAUNCHER_TOOL_IDS = /* @__PURE__ */ new Set([
4005
+ "prospector",
4006
+ "deepline_native_prospector"
4007
+ ]);
4008
+ function resolveWaterfallClientTimeoutMs(toolId) {
4009
+ return WATERFALL_PROSPECTOR_LAUNCHER_TOOL_IDS.has(toolId.trim().toLowerCase()) ? WATERFALL_PROSPECTOR_CLIENT_TIMEOUT_MS : null;
4010
+ }
4011
+
4002
4012
  // ../integration-contracts/bettercontact/execution-policy.ts
4003
4013
  var BETTERCONTACT_LAUNCHER_CLIENT_TIMEOUT_MS = 12e4;
4004
4014
  var BETTERCONTACT_LAUNCHER_TOOL_IDS = /* @__PURE__ */ new Set([
@@ -4409,6 +4419,8 @@ function resolveToolExecuteTimeoutMs(toolId, input) {
4409
4419
  input
4410
4420
  );
4411
4421
  if (theirstackTimeoutMs !== null) return theirstackTimeoutMs;
4422
+ const waterfallTimeoutMs = resolveWaterfallClientTimeoutMs(normalized);
4423
+ if (waterfallTimeoutMs !== null) return waterfallTimeoutMs;
4412
4424
  if (usesExtendedBetterContactLauncherBudget(normalized)) {
4413
4425
  return BETTERCONTACT_LAUNCHER_CLIENT_TIMEOUT_MS;
4414
4426
  }
@@ -32,6 +32,7 @@
32
32
  "dist/bundling-sources/shared_libs/integration-contracts/monitor-input-contract.ts",
33
33
  "dist/bundling-sources/shared_libs/integration-contracts/README.md",
34
34
  "dist/bundling-sources/shared_libs/integration-contracts/theirstack/execution-policy.ts",
35
+ "dist/bundling-sources/shared_libs/integration-contracts/waterfall/execution-policy.ts",
35
36
  "dist/bundling-sources/shared_libs/monitors/analytics-install-guides.ts",
36
37
  "dist/bundling-sources/shared_libs/monitors/analytics-public.ts",
37
38
  "dist/bundling-sources/shared_libs/monitors/billing/charges.ts",
@@ -114,6 +115,7 @@
114
115
  "dist/bundling-sources/shared_libs/play-data-plane/index.ts",
115
116
  "dist/bundling-sources/shared_libs/play-data-plane/neon-constants.ts",
116
117
  "dist/bundling-sources/shared_libs/play-data-plane/r2.ts",
118
+ "dist/bundling-sources/shared_libs/play-data-plane/runtime-sheet-orm.ts",
117
119
  "dist/bundling-sources/shared_libs/play-data-plane/runtime-sheet-storage-contract.ts",
118
120
  "dist/bundling-sources/shared_libs/play-data-plane/sheet-contract.ts",
119
121
  "dist/bundling-sources/shared_libs/play-runtime/activity-observation.ts",
@@ -149,7 +149,7 @@ type SdkRelease = {
149
149
  supportPolicy: SdkSupportPolicy;
150
150
  };
151
151
  declare const SDK_RELEASE: {
152
- readonly version: "0.3.174";
152
+ readonly version: "0.3.176";
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.174";
152
+ readonly version: "0.3.176";
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.174",
77
+ version: "0.3.176",
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.174",
51
+ version: "0.3.176",
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.174",
3
+ "version": "0.3.176",
4
4
  "description": "GTM data CLI and TypeScript SDK for coding agents",
5
5
  "license": "MIT",
6
6
  "homepage": "https://code.deepline.com",