deepline 0.3.288 → 0.3.290

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 (44) hide show
  1. package/dist/bundling-sources/sdk/src/release.ts +1 -1
  2. package/dist/bundling-sources/shared_libs/play-runtime/app-runtime-api.ts +30 -10
  3. package/dist/bundling-sources/shared_libs/play-runtime/context.ts +108 -12
  4. package/dist/bundling-sources/shared_libs/play-runtime/ctx-types.ts +1 -1
  5. package/dist/bundling-sources/shared_libs/play-runtime/fixture-behavior.ts +1 -0
  6. package/dist/bundling-sources/shared_libs/play-runtime/governor/rate-state-backend.ts +3 -0
  7. package/dist/bundling-sources/shared_libs/play-runtime/launch-identity.ts +1 -0
  8. package/dist/bundling-sources/shared_libs/play-runtime/log-provenance.ts +17 -0
  9. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/attempts/worker-terminal-projection.ts +6 -5
  10. package/dist/bundling-sources/shared_libs/play-runtime/play-runtime-batching-registry.ts +2 -0
  11. package/dist/bundling-sources/shared_libs/play-runtime/protocol.ts +7 -0
  12. package/dist/bundling-sources/shared_libs/play-runtime/run-event-catalog.ts +2 -0
  13. package/dist/bundling-sources/shared_libs/play-runtime/run-ledger-event-transport.ts +31 -3
  14. package/dist/bundling-sources/shared_libs/play-runtime/run-ledger.ts +23 -0
  15. package/dist/bundling-sources/shared_libs/play-runtime/run-log-buffer.ts +30 -0
  16. package/dist/bundling-sources/shared_libs/play-runtime/runner-app/index.ts +38 -3
  17. package/dist/bundling-sources/shared_libs/play-runtime/runner-app/runtime-progress-push.ts +2 -3
  18. package/dist/bundling-sources/shared_libs/play-runtime/runner-app/runtime-terminal-push.ts +22 -1
  19. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona.ts +1 -1
  20. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backend.ts +2 -0
  21. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-pool-options.ts +145 -0
  22. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-runtime-worker.ts +1 -5
  23. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-shared.ts +8 -139
  24. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-pool.ts +19 -5
  25. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-progress.ts +37 -15
  26. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-rate-state.ts +7 -5
  27. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres.ts +961 -281
  28. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/receipt-gateway.ts +55 -25
  29. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/run-ledger-dispatch-authority.ts +97 -0
  30. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/run-ledger-outbox-recovery.ts +33 -14
  31. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-event-search.ts +452 -43
  32. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-receipt-value-storage.ts +10 -1
  33. package/dist/bundling-sources/shared_libs/play-runtime/test-admission-batching.ts +103 -0
  34. package/dist/bundling-sources/shared_libs/play-runtime/zerobounce-batching.ts +75 -28
  35. package/dist/cli/index.js +24 -11
  36. package/dist/cli/index.mjs +24 -11
  37. package/dist/index.js +3 -1
  38. package/dist/index.mjs +3 -1
  39. package/dist/install-integrity.json +3 -0
  40. package/dist/release.d.mts +1 -1
  41. package/dist/release.d.ts +1 -1
  42. package/dist/release.js +1 -1
  43. package/dist/release.mjs +1 -1
  44. package/package.json +1 -1
@@ -85,6 +85,8 @@ type RuntimeReceiptValueStorageInput = {
85
85
  inlineFields?: RuntimeReceiptValueInlineFields;
86
86
  inlineMaxBytes?: number;
87
87
  store?: RuntimeReceiptValueBlobStore;
88
+ /** Consult the durable writer fence only when this value needs a reference. */
89
+ referencesWritable?: () => Promise<boolean>;
88
90
  };
89
91
 
90
92
  export type PersistedRuntimeReceiptValue =
@@ -206,7 +208,10 @@ export async function persistRuntimeReceiptValue(
206
208
  input.inlineFields === undefined
207
209
  ? undefined
208
210
  : normalizeRuntimeReceiptValueInlineFields(input.inlineFields);
209
- if (body.byteLength <= inlineMaxBytes) {
211
+ if (
212
+ body.byteLength <= inlineMaxBytes ||
213
+ (input.referencesWritable && !(await input.referencesWritable()))
214
+ ) {
210
215
  return { kind: 'inline', outputJson: input.serialized };
211
216
  }
212
217
 
@@ -242,6 +247,7 @@ export function createRuntimeReceiptValuePersister(
242
247
  input: {
243
248
  store?: RuntimeReceiptValueBlobStore;
244
249
  inlineMaxBytes?: number;
250
+ referencesWritable?: () => Promise<boolean>;
245
251
  } = {},
246
252
  ): RuntimeReceiptValuePersister {
247
253
  const inlineMaxBytes =
@@ -278,6 +284,9 @@ export function createRuntimeReceiptValuePersister(
278
284
  ...value,
279
285
  inlineMaxBytes,
280
286
  ...(input.store ? { store: input.store } : {}),
287
+ ...(input.referencesWritable
288
+ ? { referencesWritable: input.referencesWritable }
289
+ : {}),
281
290
  }),
282
291
  };
283
292
  } catch (error) {
@@ -0,0 +1,103 @@
1
+ import {
2
+ defineBatchStrategyMap,
3
+ type BatchOperationStrategy,
4
+ } from './batching-types';
5
+
6
+ type Single = {
7
+ key: string;
8
+ simulated_delay_ms?: number;
9
+ overlap_group?: string;
10
+ };
11
+ type Result = {
12
+ key: string;
13
+ physical_id: string;
14
+ batch_size: number;
15
+ started_at_ms: number;
16
+ finished_at_ms: number;
17
+ };
18
+ type Bulk = {
19
+ items: Array<{ key: string }>;
20
+ simulated_delay_ms?: number;
21
+ overlap_group?: string;
22
+ };
23
+ const bucket = (input: Single) =>
24
+ JSON.stringify([input.simulated_delay_ms ?? 0, input.overlap_group ?? null]);
25
+
26
+ const strategy: BatchOperationStrategy<
27
+ Single,
28
+ Single | Bulk,
29
+ Result | { items: Result[] },
30
+ Result
31
+ > = {
32
+ sourceOperation: 'test_batching_single',
33
+ batchOperation: 'test_batching_bulk',
34
+ kind: 'identifier_batch',
35
+ maxBatchSize: 100,
36
+ bucketKeyPayloadFields: ['simulated_delay_ms', 'overlap_group'],
37
+ toBucketKey: bucket,
38
+ toItemKey: (input) => input.key,
39
+ canBatchWith: (left, right) => bucket(left) === bucket(right),
40
+ compile(inputs) {
41
+ const first = inputs[0];
42
+ if (
43
+ !first ||
44
+ inputs.length > 100 ||
45
+ inputs.some((input) => !input.key || bucket(input) !== bucket(first))
46
+ ) {
47
+ throw new Error('Synthetic batch needs 1–100 compatible keyed members.');
48
+ }
49
+ const keys = [...new Set(inputs.map((input) => input.key))];
50
+ return {
51
+ batchOperation:
52
+ keys.length === 1 ? 'test_batching_single' : 'test_batching_bulk',
53
+ batchPayload:
54
+ keys.length === 1
55
+ ? first
56
+ : {
57
+ items: keys.map((key) => ({ key })),
58
+ simulated_delay_ms: first.simulated_delay_ms,
59
+ ...(first.overlap_group
60
+ ? { overlap_group: first.overlap_group }
61
+ : {}),
62
+ },
63
+ items: inputs.map((payload) => ({ itemKey: payload.key, payload })),
64
+ };
65
+ },
66
+ splitResult(result, compiled) {
67
+ const rows =
68
+ compiled.batchOperation === 'test_batching_single'
69
+ ? [result as Result]
70
+ : (result as { items: Result[] }).items;
71
+ if (!Array.isArray(rows))
72
+ throw new Error('Synthetic batch omitted its result list.');
73
+ const byKey = new Map<string, Result>();
74
+ const expected = new Set(compiled.items.map((item) => item.itemKey));
75
+ for (const row of rows) {
76
+ if (
77
+ !row ||
78
+ !expected.has(row.key) ||
79
+ byKey.has(row.key) ||
80
+ typeof row.physical_id !== 'string' ||
81
+ row.physical_id.length === 0 ||
82
+ row.batch_size !== expected.size ||
83
+ !Number.isInteger(row.started_at_ms) ||
84
+ row.started_at_ms < 0 ||
85
+ !Number.isInteger(row.finished_at_ms) ||
86
+ row.finished_at_ms < row.started_at_ms
87
+ ) {
88
+ throw new Error(
89
+ 'Synthetic batch returned a malformed or unexpected member.',
90
+ );
91
+ }
92
+ byKey.set(row.key, row);
93
+ }
94
+ return compiled.items.map((item) => {
95
+ const row = byKey.get(item.itemKey);
96
+ if (!row) throw new Error('Synthetic batch omitted a member.');
97
+ return { itemKey: item.itemKey, result: row, rawResult: row };
98
+ });
99
+ },
100
+ };
101
+ export const testAdmissionBatchStrategies = defineBatchStrategyMap({
102
+ test_batching_single: strategy,
103
+ });
@@ -8,11 +8,38 @@ type Bulk = {
8
8
  email_batch: Array<{ email_address: string; ip_address?: string }>;
9
9
  };
10
10
  type Verdict = Record<string, unknown> & { address: string; status: string };
11
- type Results = { email_batch?: unknown[]; errors?: unknown[]; data?: Results };
11
+ type Results = {
12
+ email_batch?: unknown[];
13
+ errors?: unknown[];
14
+ data?: Results;
15
+ // The scalar validate endpoint returns one verdict at the top level.
16
+ address?: unknown;
17
+ status?: unknown;
18
+ };
19
+
20
+ const VERDICT_STATUSES = [
21
+ 'valid',
22
+ 'invalid',
23
+ 'catch-all',
24
+ 'unknown',
25
+ 'spamtrap',
26
+ 'abuse',
27
+ 'do_not_mail',
28
+ ];
12
29
 
13
30
  function emailKey(email: string) {
14
31
  return email.trim().toLowerCase();
15
32
  }
33
+
34
+ function isVerdict(value: unknown): value is Verdict {
35
+ const row = value as Verdict | null;
36
+ return Boolean(
37
+ row &&
38
+ typeof row.address === 'string' &&
39
+ typeof row.status === 'string' &&
40
+ VERDICT_STATUSES.includes(row.status),
41
+ );
42
+ }
16
43
  function bucket(payload: Single) {
17
44
  // The response identifies emails, but does not echo the supplied IP.
18
45
  return JSON.stringify([
@@ -23,7 +50,7 @@ function bucket(payload: Single) {
23
50
 
24
51
  export const zerobounceValidateBatchStrategy: BatchOperationStrategy<
25
52
  Single,
26
- Bulk,
53
+ Bulk | Single,
27
54
  Results,
28
55
  { data: Verdict }
29
56
  > = {
@@ -47,25 +74,58 @@ export const zerobounceValidateBatchStrategy: BatchOperationStrategy<
47
74
  'ZeroBounce batch requires 1–100 emails with matching IP options.',
48
75
  );
49
76
  }
77
+ const items = payloads.map((payload) => ({
78
+ itemKey: zerobounceValidateBatchStrategy.toItemKey(payload),
79
+ payload,
80
+ }));
81
+ const emails = [...new Set(payloads.map((p) => emailKey(p.email!)))];
82
+ if (emails.length === 1) {
83
+ // One distinct email (a per-row waterfall, duplicate rows, or receipt
84
+ // dedup leaving one owned member) must not ride the bulk endpoint:
85
+ // zerobounce_batch_validate is gated at 30/min provider_shared, while
86
+ // the scalar validate endpoint allows 80,000 validations per 10 s.
87
+ // Compiling here covers both the receipt-owned cohort
88
+ // (compileOwnedPhysicalBatch) and the legacy path.
89
+ return {
90
+ batchOperation: 'zerobounce_validate',
91
+ batchPayload: first,
92
+ items,
93
+ };
94
+ }
50
95
  return {
51
- // Receipt deduplication may leave one owned email. Keep the bulk operation.
52
96
  batchOperation: 'zerobounce_batch_validate',
53
97
  batchPayload: {
54
- email_batch: [...new Set(payloads.map((p) => emailKey(p.email!)))].map(
55
- (email_address) => ({
56
- email_address,
57
- ...(first.ip_address ? { ip_address: first.ip_address } : {}),
58
- }),
59
- ),
98
+ email_batch: emails.map((email_address) => ({
99
+ email_address,
100
+ ...(first.ip_address ? { ip_address: first.ip_address } : {}),
101
+ })),
60
102
  },
61
- items: payloads.map((payload) => ({
62
- itemKey: zerobounceValidateBatchStrategy.toItemKey(payload),
63
- payload,
64
- })),
103
+ items,
65
104
  };
66
105
  },
67
106
  splitResult(fullResult, compiled) {
68
107
  const result = fullResult.data ?? fullResult;
108
+ if (compiled.batchOperation === 'zerobounce_validate') {
109
+ if (
110
+ !isVerdict(result) ||
111
+ compiled.items.some(
112
+ (item) => emailKey(result.address) !== emailKey(item.payload.email!),
113
+ )
114
+ ) {
115
+ throw new Error(
116
+ 'ZeroBounce single verification returned a malformed or mismatched verdict.',
117
+ );
118
+ }
119
+ // Every item shares the one distinct email this call verified.
120
+ return compiled.items.map((item) => ({
121
+ itemKey: item.itemKey,
122
+ result: { data: result },
123
+ rawResult: result,
124
+ }));
125
+ }
126
+ if (!('email_batch' in compiled.batchPayload)) {
127
+ throw new Error('ZeroBounce bulk split received a scalar payload.');
128
+ }
69
129
  if (
70
130
  !Array.isArray(result.email_batch) ||
71
131
  (result.errors !== undefined &&
@@ -79,21 +139,8 @@ export const zerobounceValidateBatchStrategy: BatchOperationStrategy<
79
139
  compiled.batchPayload.email_batch.map((p) => emailKey(p.email_address)),
80
140
  );
81
141
  const byEmail = new Map<string, Verdict>();
82
- for (const value of result.email_batch) {
83
- const row = value as Verdict | null;
84
- if (
85
- !row ||
86
- typeof row.address !== 'string' ||
87
- ![
88
- 'valid',
89
- 'invalid',
90
- 'catch-all',
91
- 'unknown',
92
- 'spamtrap',
93
- 'abuse',
94
- 'do_not_mail',
95
- ].includes(row.status)
96
- ) {
142
+ for (const row of result.email_batch) {
143
+ if (!isVerdict(row)) {
97
144
  throw new Error(
98
145
  'ZeroBounce bulk verification returned a malformed verdict.',
99
146
  );
package/dist/cli/index.js CHANGED
@@ -3515,7 +3515,7 @@ var SDK_RELEASE = {
3515
3515
  // getters keep their established compatibility behavior.
3516
3516
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
3517
3517
  // 0.3.90 is the first deliberately versioned SDK release for API v3.
3518
- version: "0.3.288",
3518
+ version: "0.3.290",
3519
3519
  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.",
3520
3520
  packageCapabilities: {
3521
3521
  updatePreferences: 1
@@ -5551,6 +5551,7 @@ var RUN_SCHEDULER_OUTBOX_EVENT_TYPE = {
5551
5551
  runCancelled: RUN_EVENT_KIND.runCancelled,
5552
5552
  runEvents: "run.events",
5553
5553
  runnerLogs: "runner.logs",
5554
+ receiptEvent: "receipt.event",
5554
5555
  runWaitTimeout: "run.wait_timeout"
5555
5556
  };
5556
5557
  var RUN_SCHEDULER_OUTBOX_EVENT_TYPES = Object.freeze(
@@ -5651,6 +5652,7 @@ var RUN_SCHEDULER_OUTBOX_EVENT_TYPE_SQL_LITERAL = {
5651
5652
  runCancelled: sqlStringLiteral(RUN_SCHEDULER_OUTBOX_EVENT_TYPE.runCancelled),
5652
5653
  runEvents: sqlStringLiteral(RUN_SCHEDULER_OUTBOX_EVENT_TYPE.runEvents),
5653
5654
  runnerLogs: sqlStringLiteral(RUN_SCHEDULER_OUTBOX_EVENT_TYPE.runnerLogs),
5655
+ receiptEvent: sqlStringLiteral(RUN_SCHEDULER_OUTBOX_EVENT_TYPE.receiptEvent),
5654
5656
  runWaitTimeout: sqlStringLiteral(
5655
5657
  RUN_SCHEDULER_OUTBOX_EVENT_TYPE.runWaitTimeout
5656
5658
  )
@@ -46644,16 +46646,27 @@ function resolvePersistentGlobalCommand(dependencies = {}) {
46644
46646
  const pathClis = dependencies.pathClis ?? resolvePathCommands("deepline");
46645
46647
  const homebrewCommand = pathClis.find(isHomebrewFormulaCommand);
46646
46648
  if (homebrewCommand) return homebrewCommand;
46647
- const plan = resolveShellSpawn("npm", ["prefix", "-g"], platform3);
46648
- const prefix = run(plan.command, plan.args, {
46649
- encoding: "utf8",
46650
- shell: plan.shell
46651
- });
46652
- if (prefix.status !== 0) return null;
46653
- const root = String(prefix.stdout ?? "").trim();
46654
- if (!root) return null;
46655
- const candidates = platform3 === "win32" ? [(0, import_node_path27.join)(root, "deepline.cmd"), (0, import_node_path27.join)(root, "deepline")] : [(0, import_node_path27.join)(root, "bin", "deepline")];
46656
- return candidates.find((candidate) => pathExists(candidate)) ?? null;
46649
+ for (const manager of ["npm", "pnpm"]) {
46650
+ const plan = resolveShellSpawn(
46651
+ manager,
46652
+ manager === "npm" ? ["prefix", "-g"] : ["bin", "-g"],
46653
+ platform3
46654
+ );
46655
+ const result = run(plan.command, plan.args, {
46656
+ encoding: "utf8",
46657
+ shell: plan.shell,
46658
+ cwd: manager === "pnpm" ? (0, import_node_os14.homedir)() : void 0,
46659
+ timeout: 1e4
46660
+ });
46661
+ if (result.status !== 0) continue;
46662
+ const root = String(result.stdout ?? "").trim();
46663
+ if (!root) continue;
46664
+ const bin = manager === "npm" && platform3 !== "win32" ? (0, import_node_path27.join)(root, "bin") : root;
46665
+ const candidates = platform3 === "win32" ? [(0, import_node_path27.join)(bin, "deepline.cmd"), (0, import_node_path27.join)(bin, "deepline")] : [(0, import_node_path27.join)(bin, "deepline")];
46666
+ const command = candidates.find((candidate) => pathExists(candidate));
46667
+ if (command) return command;
46668
+ }
46669
+ return null;
46657
46670
  }
46658
46671
  function inspectGlobalCliAvailability(input2) {
46659
46672
  const pathClis = input2?.pathClis ?? resolvePathCommands("deepline");
@@ -3510,7 +3510,7 @@ var SDK_RELEASE = {
3510
3510
  // getters keep their established compatibility behavior.
3511
3511
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
3512
3512
  // 0.3.90 is the first deliberately versioned SDK release for API v3.
3513
- version: "0.3.288",
3513
+ version: "0.3.290",
3514
3514
  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.",
3515
3515
  packageCapabilities: {
3516
3516
  updatePreferences: 1
@@ -5546,6 +5546,7 @@ var RUN_SCHEDULER_OUTBOX_EVENT_TYPE = {
5546
5546
  runCancelled: RUN_EVENT_KIND.runCancelled,
5547
5547
  runEvents: "run.events",
5548
5548
  runnerLogs: "runner.logs",
5549
+ receiptEvent: "receipt.event",
5549
5550
  runWaitTimeout: "run.wait_timeout"
5550
5551
  };
5551
5552
  var RUN_SCHEDULER_OUTBOX_EVENT_TYPES = Object.freeze(
@@ -5646,6 +5647,7 @@ var RUN_SCHEDULER_OUTBOX_EVENT_TYPE_SQL_LITERAL = {
5646
5647
  runCancelled: sqlStringLiteral(RUN_SCHEDULER_OUTBOX_EVENT_TYPE.runCancelled),
5647
5648
  runEvents: sqlStringLiteral(RUN_SCHEDULER_OUTBOX_EVENT_TYPE.runEvents),
5648
5649
  runnerLogs: sqlStringLiteral(RUN_SCHEDULER_OUTBOX_EVENT_TYPE.runnerLogs),
5650
+ receiptEvent: sqlStringLiteral(RUN_SCHEDULER_OUTBOX_EVENT_TYPE.receiptEvent),
5649
5651
  runWaitTimeout: sqlStringLiteral(
5650
5652
  RUN_SCHEDULER_OUTBOX_EVENT_TYPE.runWaitTimeout
5651
5653
  )
@@ -46743,16 +46745,27 @@ function resolvePersistentGlobalCommand(dependencies = {}) {
46743
46745
  const pathClis = dependencies.pathClis ?? resolvePathCommands("deepline");
46744
46746
  const homebrewCommand = pathClis.find(isHomebrewFormulaCommand);
46745
46747
  if (homebrewCommand) return homebrewCommand;
46746
- const plan = resolveShellSpawn("npm", ["prefix", "-g"], platform3);
46747
- const prefix = run(plan.command, plan.args, {
46748
- encoding: "utf8",
46749
- shell: plan.shell
46750
- });
46751
- if (prefix.status !== 0) return null;
46752
- const root = String(prefix.stdout ?? "").trim();
46753
- if (!root) return null;
46754
- const candidates = platform3 === "win32" ? [join21(root, "deepline.cmd"), join21(root, "deepline")] : [join21(root, "bin", "deepline")];
46755
- return candidates.find((candidate) => pathExists(candidate)) ?? null;
46748
+ for (const manager of ["npm", "pnpm"]) {
46749
+ const plan = resolveShellSpawn(
46750
+ manager,
46751
+ manager === "npm" ? ["prefix", "-g"] : ["bin", "-g"],
46752
+ platform3
46753
+ );
46754
+ const result = run(plan.command, plan.args, {
46755
+ encoding: "utf8",
46756
+ shell: plan.shell,
46757
+ cwd: manager === "pnpm" ? homedir9() : void 0,
46758
+ timeout: 1e4
46759
+ });
46760
+ if (result.status !== 0) continue;
46761
+ const root = String(result.stdout ?? "").trim();
46762
+ if (!root) continue;
46763
+ const bin = manager === "npm" && platform3 !== "win32" ? join21(root, "bin") : root;
46764
+ const candidates = platform3 === "win32" ? [join21(bin, "deepline.cmd"), join21(bin, "deepline")] : [join21(bin, "deepline")];
46765
+ const command = candidates.find((candidate) => pathExists(candidate));
46766
+ if (command) return command;
46767
+ }
46768
+ return null;
46756
46769
  }
46757
46770
  function inspectGlobalCliAvailability(input2) {
46758
46771
  const pathClis = input2?.pathClis ?? resolvePathCommands("deepline");
package/dist/index.js CHANGED
@@ -1328,7 +1328,7 @@ var SDK_RELEASE = {
1328
1328
  // getters keep their established compatibility behavior.
1329
1329
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
1330
1330
  // 0.3.90 is the first deliberately versioned SDK release for API v3.
1331
- version: "0.3.288",
1331
+ version: "0.3.290",
1332
1332
  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.",
1333
1333
  packageCapabilities: {
1334
1334
  updatePreferences: 1
@@ -3302,6 +3302,7 @@ var RUN_SCHEDULER_OUTBOX_EVENT_TYPE = {
3302
3302
  runCancelled: RUN_EVENT_KIND.runCancelled,
3303
3303
  runEvents: "run.events",
3304
3304
  runnerLogs: "runner.logs",
3305
+ receiptEvent: "receipt.event",
3305
3306
  runWaitTimeout: "run.wait_timeout"
3306
3307
  };
3307
3308
  var RUN_SCHEDULER_OUTBOX_EVENT_TYPES = Object.freeze(
@@ -3402,6 +3403,7 @@ var RUN_SCHEDULER_OUTBOX_EVENT_TYPE_SQL_LITERAL = {
3402
3403
  runCancelled: sqlStringLiteral(RUN_SCHEDULER_OUTBOX_EVENT_TYPE.runCancelled),
3403
3404
  runEvents: sqlStringLiteral(RUN_SCHEDULER_OUTBOX_EVENT_TYPE.runEvents),
3404
3405
  runnerLogs: sqlStringLiteral(RUN_SCHEDULER_OUTBOX_EVENT_TYPE.runnerLogs),
3406
+ receiptEvent: sqlStringLiteral(RUN_SCHEDULER_OUTBOX_EVENT_TYPE.receiptEvent),
3405
3407
  runWaitTimeout: sqlStringLiteral(
3406
3408
  RUN_SCHEDULER_OUTBOX_EVENT_TYPE.runWaitTimeout
3407
3409
  )
package/dist/index.mjs CHANGED
@@ -1232,7 +1232,7 @@ var SDK_RELEASE = {
1232
1232
  // getters keep their established compatibility behavior.
1233
1233
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
1234
1234
  // 0.3.90 is the first deliberately versioned SDK release for API v3.
1235
- version: "0.3.288",
1235
+ version: "0.3.290",
1236
1236
  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.",
1237
1237
  packageCapabilities: {
1238
1238
  updatePreferences: 1
@@ -3206,6 +3206,7 @@ var RUN_SCHEDULER_OUTBOX_EVENT_TYPE = {
3206
3206
  runCancelled: RUN_EVENT_KIND.runCancelled,
3207
3207
  runEvents: "run.events",
3208
3208
  runnerLogs: "runner.logs",
3209
+ receiptEvent: "receipt.event",
3209
3210
  runWaitTimeout: "run.wait_timeout"
3210
3211
  };
3211
3212
  var RUN_SCHEDULER_OUTBOX_EVENT_TYPES = Object.freeze(
@@ -3306,6 +3307,7 @@ var RUN_SCHEDULER_OUTBOX_EVENT_TYPE_SQL_LITERAL = {
3306
3307
  runCancelled: sqlStringLiteral(RUN_SCHEDULER_OUTBOX_EVENT_TYPE.runCancelled),
3307
3308
  runEvents: sqlStringLiteral(RUN_SCHEDULER_OUTBOX_EVENT_TYPE.runEvents),
3308
3309
  runnerLogs: sqlStringLiteral(RUN_SCHEDULER_OUTBOX_EVENT_TYPE.runnerLogs),
3310
+ receiptEvent: sqlStringLiteral(RUN_SCHEDULER_OUTBOX_EVENT_TYPE.receiptEvent),
3309
3311
  runWaitTimeout: sqlStringLiteral(
3310
3312
  RUN_SCHEDULER_OUTBOX_EVENT_TYPE.runWaitTimeout
3311
3313
  )
@@ -394,6 +394,7 @@
394
394
  "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-deadline-reconciliation.ts",
395
395
  "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-play-deploy-task.ts",
396
396
  "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-play-run-task.ts",
397
+ "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-pool-options.ts",
397
398
  "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-pool.ts",
398
399
  "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-queue-lifecycle.ts",
399
400
  "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-queue-suffix.ts",
@@ -420,6 +421,7 @@
420
421
  "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres.ts",
421
422
  "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/receipt-completion-coalescer.ts",
422
423
  "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/receipt-gateway.ts",
424
+ "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/run-ledger-dispatch-authority.ts",
423
425
  "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/run-ledger-outbox-recovery.ts",
424
426
  "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/run-terminal-transition.ts",
425
427
  "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runner-push.ts",
@@ -449,6 +451,7 @@
449
451
  "dist/bundling-sources/shared_libs/play-runtime/step-progress.ts",
450
452
  "dist/bundling-sources/shared_libs/play-runtime/submit-limits.ts",
451
453
  "dist/bundling-sources/shared_libs/play-runtime/suspension.ts",
454
+ "dist/bundling-sources/shared_libs/play-runtime/test-admission-batching.ts",
452
455
  "dist/bundling-sources/shared_libs/play-runtime/test-async-batching.ts",
453
456
  "dist/bundling-sources/shared_libs/play-runtime/test-runtime-seams.ts",
454
457
  "dist/bundling-sources/shared_libs/play-runtime/tool-batch-executor.ts",
@@ -149,7 +149,7 @@ type SdkRelease = {
149
149
  supportPolicy: SdkSupportPolicy;
150
150
  };
151
151
  declare const SDK_RELEASE: {
152
- readonly version: "0.3.288";
152
+ readonly version: "0.3.290";
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.288";
152
+ readonly version: "0.3.290";
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.288",
77
+ version: "0.3.290",
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.288",
51
+ version: "0.3.290",
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.288",
3
+ "version": "0.3.290",
4
4
  "description": "GTM data CLI and TypeScript SDK for coding agents",
5
5
  "license": "MIT",
6
6
  "homepage": "https://code.deepline.com",