deepline 0.3.226 → 0.3.227

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.
@@ -200,7 +200,7 @@ export const SDK_RELEASE = {
200
200
  // getters keep their established compatibility behavior.
201
201
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
202
202
  // 0.3.90 is the first deliberately versioned SDK release for API v3.
203
- version: '0.3.226',
203
+ version: '0.3.227',
204
204
  updateSummary:
205
205
  '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.',
206
206
  packageCapabilities: {
@@ -39,6 +39,11 @@ type Waiter<T> = {
39
39
  timer: ReturnType<typeof setTimeout>;
40
40
  };
41
41
 
42
+ type DrainWaiter = Waiter<void> & {
43
+ idleStartedAt: number;
44
+ onTimeout: () => void;
45
+ };
46
+
42
47
  export class RuntimeMapRowFeed {
43
48
  #appended = 0;
44
49
  #dispatched = 0;
@@ -47,7 +52,7 @@ export class RuntimeMapRowFeed {
47
52
  #failure: unknown = null;
48
53
  #failed = false;
49
54
  readonly #rowWaiters = new Map<Waiter<boolean>, number>();
50
- #drainWaiter: Waiter<void> | null = null;
55
+ #drainWaiter: DrainWaiter | null = null;
51
56
  #onAppended: ((fromIndex: number, toIndex: number) => void) | null = null;
52
57
  readonly #maxWaitMs: number;
53
58
 
@@ -70,7 +75,9 @@ export class RuntimeMapRowFeed {
70
75
  throw new Error('Runtime map row feed is closed; cannot append rows.');
71
76
  }
72
77
  if (!Number.isInteger(rowCount) || rowCount < 0) {
73
- throw new Error(`Runtime map row feed append count must be a non-negative integer, got ${String(rowCount)}.`);
78
+ throw new Error(
79
+ `Runtime map row feed append count must be a non-negative integer, got ${String(rowCount)}.`,
80
+ );
74
81
  }
75
82
  const fromIndex = this.#appended;
76
83
  this.#appended += rowCount;
@@ -111,13 +118,29 @@ export class RuntimeMapRowFeed {
111
118
  }
112
119
 
113
120
  markDispatched(count = 1): void {
114
- this.#dispatched += count;
115
- if (this.#dispatched > this.#appended) {
121
+ if (!Number.isInteger(count) || count < 0) {
116
122
  throw new Error(
117
- `Runtime map row feed dispatched ${this.#dispatched} rows but only ${this.#appended} were appended.`,
123
+ `Runtime map row feed dispatch count must be a non-negative integer, got ${String(count)}.`,
118
124
  );
119
125
  }
126
+ const dispatched = this.#dispatched + count;
127
+ if (dispatched > this.#appended) {
128
+ throw new Error(
129
+ `Runtime map row feed dispatched ${dispatched} rows but only ${this.#appended} were appended.`,
130
+ );
131
+ }
132
+ this.#dispatched = dispatched;
120
133
  this.#settleDrainWaiter();
134
+ const waiter = this.#drainWaiter;
135
+ if (count > 0 && waiter) {
136
+ // A slow page can take longer than the idle bound to dispatch. Only
137
+ // advancing its pending work resets the diagnostic, never page age,
138
+ // provider logs, or unrelated activity.
139
+ clearTimeout(waiter.timer);
140
+ waiter.idleStartedAt = Date.now();
141
+ waiter.timer = setTimeout(waiter.onTimeout, this.#maxWaitMs);
142
+ waiter.timer.unref?.();
143
+ }
121
144
  }
122
145
 
123
146
  /**
@@ -149,7 +172,7 @@ export class RuntimeMapRowFeed {
149
172
  });
150
173
  }
151
174
 
152
- /** Resolves once every appended row has been dispatched to a worker. */
175
+ /** Resolves on full dispatch; rejects after the bound with no dispatch progress. */
153
176
  waitUntilDrained(): Promise<void> {
154
177
  if (this.#failed) return Promise.reject(this.#failure);
155
178
  if (this.#dispatched >= this.#appended) return Promise.resolve();
@@ -159,22 +182,25 @@ export class RuntimeMapRowFeed {
159
182
  );
160
183
  }
161
184
  return new Promise<void>((resolve, reject) => {
162
- const startedAt = Date.now();
163
- this.#drainWaiter = {
185
+ const waiter: DrainWaiter = {
164
186
  resolve,
165
187
  reject,
166
- timer: setTimeout(() => {
188
+ idleStartedAt: Date.now(),
189
+ onTimeout: () => {
190
+ if (this.#drainWaiter !== waiter) return;
167
191
  this.#drainWaiter = null;
168
192
  reject(
169
193
  new RuntimeMapRowFeedStalledError({
170
194
  waiter: 'pump',
171
- waitMs: Date.now() - startedAt,
195
+ waitMs: Date.now() - waiter.idleStartedAt,
172
196
  snapshot: this.snapshot(),
173
197
  }),
174
198
  );
175
- }, this.#maxWaitMs),
199
+ },
200
+ timer: setTimeout(() => waiter.onTimeout(), this.#maxWaitMs),
176
201
  };
177
- this.#drainWaiter.timer.unref?.();
202
+ this.#drainWaiter = waiter;
203
+ waiter.timer.unref?.();
178
204
  });
179
205
  }
180
206
 
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.226",
3054
+ version: "0.3.227",
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
@@ -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.226",
3049
+ version: "0.3.227",
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
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.226",
867
+ version: "0.3.227",
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
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.226",
771
+ version: "0.3.227",
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
@@ -149,7 +149,7 @@ type SdkRelease = {
149
149
  supportPolicy: SdkSupportPolicy;
150
150
  };
151
151
  declare const SDK_RELEASE: {
152
- readonly version: "0.3.226";
152
+ readonly version: "0.3.227";
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.226";
152
+ readonly version: "0.3.227";
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.226",
77
+ version: "0.3.227",
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.226",
51
+ version: "0.3.227",
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.226",
3
+ "version": "0.3.227",
4
4
  "description": "GTM data CLI and TypeScript SDK for coding agents",
5
5
  "license": "MIT",
6
6
  "homepage": "https://code.deepline.com",