deepline 0.3.211 → 0.3.213
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.
- package/dist/bundling-sources/sdk/src/client.ts +15 -0
- package/dist/bundling-sources/sdk/src/release.ts +1 -1
- package/dist/bundling-sources/shared_libs/monitors/signal-radars/inbound-dead-letter.ts +3 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-rate-state.ts +67 -37
- package/dist/cli/index.js +13 -1
- package/dist/cli/index.mjs +13 -1
- package/dist/index.d.mts +26 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/release.d.mts +1 -1
- package/dist/release.d.ts +1 -1
- package/dist/release.js +1 -1
- package/dist/release.mjs +1 -1
- package/package.json +1 -1
|
@@ -1026,6 +1026,21 @@ export type RunLifecycleStatus =
|
|
|
1026
1026
|
startedAt: number | null;
|
|
1027
1027
|
finishedAt: number | null;
|
|
1028
1028
|
};
|
|
1029
|
+
/** Null for scheduler-only admission or a pre-expansion projection row. */
|
|
1030
|
+
source?: { ledgerNextSeq: number | null };
|
|
1031
|
+
/** One durable current activity, not proof that every row is blocked. */
|
|
1032
|
+
activity?: {
|
|
1033
|
+
kind: string;
|
|
1034
|
+
reason: string | null;
|
|
1035
|
+
targetKind: string | null;
|
|
1036
|
+
observedAt: number | null;
|
|
1037
|
+
nextAt: number | null;
|
|
1038
|
+
} | null;
|
|
1039
|
+
calls?: {
|
|
1040
|
+
logicalCalls: { value: number | null; confirmed: boolean };
|
|
1041
|
+
providerRequests: { value: number | null; confirmed: boolean };
|
|
1042
|
+
provider429s: { value: number | null; confirmed: boolean };
|
|
1043
|
+
};
|
|
1029
1044
|
steps: {
|
|
1030
1045
|
observed: number;
|
|
1031
1046
|
running: number;
|
|
@@ -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.
|
|
203
|
+
version: '0.3.213',
|
|
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: {
|
|
@@ -47,6 +47,9 @@ export function classifyInboundFailure(error: unknown): InboundFailureClass {
|
|
|
47
47
|
// redelivery as poison could dead-letter a live callback and clear the
|
|
48
48
|
// owner's receipt before its lease completes.
|
|
49
49
|
'provider_callback_raw_receipt_in_progress',
|
|
50
|
+
// The finding has already been delivered. Redelivery only records its
|
|
51
|
+
// activity from the terminal raw receipt; it must not become poison input.
|
|
52
|
+
'provider_monitor_activity_recording_pending',
|
|
50
53
|
'ECONNRESET',
|
|
51
54
|
'ECONNREFUSED',
|
|
52
55
|
'ETIMEDOUT',
|
package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-rate-state.ts
CHANGED
|
@@ -60,9 +60,13 @@ const CONCURRENCY_OBSERVATION_DEDUP_RETENTION_MS = 24 * 60 * 60 * 1000;
|
|
|
60
60
|
const CONCURRENCY_OBSERVER_CLEANUP_BATCH_SIZE = 128;
|
|
61
61
|
const ACTIVE_LEASE_TTL_MS = 5 * 60 * 1000;
|
|
62
62
|
const RATE_RESERVATION_TTL_MS = 5 * 60 * 1000;
|
|
63
|
-
//
|
|
64
|
-
//
|
|
65
|
-
const MIN_ADAPTIVE_RPS_FLOOR =
|
|
63
|
+
// Known provider estimates should not strand later runs below five requests
|
|
64
|
+
// per minute. Explicit adaptive ceilings remain authoritative.
|
|
65
|
+
const MIN_ADAPTIVE_RPS_FLOOR = 5 / 60;
|
|
66
|
+
// Repeated 429s with no successful work back off to at most one probe/minute.
|
|
67
|
+
const MIN_NO_PROGRESS_PROBE_RPS = 1 / 60;
|
|
68
|
+
// Used only to keep wait-time division finite for persisted legacy state.
|
|
69
|
+
const MIN_SCHEDULE_RPS = 1 / 86_400;
|
|
66
70
|
/**
|
|
67
71
|
* Horizon a granted=0 caller is allowed to sleep toward a WHOLE block instead of
|
|
68
72
|
* a single token. Waiting for one token means one permit per store round trip,
|
|
@@ -427,8 +431,8 @@ function normalizeRules(
|
|
|
427
431
|
* per second; `capacity` is one window of burst. The adaptive `[min,max]` range
|
|
428
432
|
* is derived value-first so the same wire shape drives both declared and
|
|
429
433
|
* default-pacing buckets:
|
|
430
|
-
* - min_rps = min(
|
|
431
|
-
* (
|
|
434
|
+
* - min_rps = min(5/60, max)
|
|
435
|
+
* (a lower explicit adaptive maximum remains authoritative)
|
|
432
436
|
* - max_rps = max(base, 100) (catalogued-rate recommendation)
|
|
433
437
|
* - max_rps = explicit adaptiveMaxRps when supplied
|
|
434
438
|
*/
|
|
@@ -446,17 +450,16 @@ function seedForRule(rule: AcquirePacingRule): RateBucketSeed {
|
|
|
446
450
|
// Preserve its fractional refill rate, with dispatch times resolved in ms.
|
|
447
451
|
const capacity = Math.max(1, rule.requestsPerWindow);
|
|
448
452
|
const base = (rule.requestsPerWindow / rule.windowMs) * 1000;
|
|
449
|
-
// Undeclared providers use the shared fallback rate as their operating
|
|
450
|
-
// floor. Explicit provider Retry-After deadlines still block dispatch; a
|
|
451
|
-
// prior learned AIMD rate must not leave later runs paced below the fallback.
|
|
452
|
-
const minRps =
|
|
453
|
-
rule.ruleId === 'default:provider-scope'
|
|
454
|
-
? base
|
|
455
|
-
: Math.min(base, MIN_ADAPTIVE_RPS_FLOOR);
|
|
456
453
|
const maxRps =
|
|
457
454
|
rule.adaptiveMaxRps != null && rule.adaptiveMaxRps > 0
|
|
458
455
|
? Math.max(rule.adaptiveMaxRps, base)
|
|
459
456
|
: Math.max(base, DEFAULT_ADVISORY_PROVIDER_MAX_RPS);
|
|
457
|
+
// Undeclared providers keep their existing 10-RPS fallback. Other provider
|
|
458
|
+
// scopes use the five-RPM floor, capped by an explicit adaptive maximum.
|
|
459
|
+
const minRps =
|
|
460
|
+
rule.ruleId === 'default:provider-scope'
|
|
461
|
+
? base
|
|
462
|
+
: Math.min(MIN_ADAPTIVE_RPS_FLOOR, maxRps);
|
|
460
463
|
return {
|
|
461
464
|
rule_id: rule.ruleId,
|
|
462
465
|
capacity,
|
|
@@ -467,10 +470,20 @@ function seedForRule(rule: AcquirePacingRule): RateBucketSeed {
|
|
|
467
470
|
};
|
|
468
471
|
}
|
|
469
472
|
|
|
473
|
+
function minimumRateRpsForRules(rules: readonly AcquirePacingRule[]): number {
|
|
474
|
+
if (rules.some((rule) => rule.ruleId === 'default:provider-scope')) {
|
|
475
|
+
return DEFAULT_UNKNOWN_PROVIDER_COLD_START_RPS;
|
|
476
|
+
}
|
|
477
|
+
const explicitAdaptiveMaxima = rules.flatMap((rule) => {
|
|
478
|
+
if (rule.adaptiveMaxRps == null || rule.adaptiveMaxRps <= 0) return [];
|
|
479
|
+
const base = (rule.requestsPerWindow / rule.windowMs) * 1_000;
|
|
480
|
+
return [Math.max(rule.adaptiveMaxRps, base)];
|
|
481
|
+
});
|
|
482
|
+
return Math.min(MIN_ADAPTIVE_RPS_FLOOR, ...explicitAdaptiveMaxima);
|
|
483
|
+
}
|
|
484
|
+
|
|
470
485
|
function minimumRateSqlForRules(rules: readonly AcquirePacingRule[]): string {
|
|
471
|
-
return rules
|
|
472
|
-
? `${DEFAULT_UNKNOWN_PROVIDER_COLD_START_RPS}::float8`
|
|
473
|
-
: 'NULL::float8';
|
|
486
|
+
return `${minimumRateRpsForRules(rules)}::float8`;
|
|
474
487
|
}
|
|
475
488
|
|
|
476
489
|
function positiveInt(value: number, label: string): number {
|
|
@@ -1053,7 +1066,7 @@ function fairShareSql(
|
|
|
1053
1066
|
r.refill_per_sec,
|
|
1054
1067
|
GREATEST(
|
|
1055
1068
|
${ADAPTIVE_BURST_HORIZON_MS},
|
|
1056
|
-
CEIL(r.effective_capacity / GREATEST(r.refill_per_sec, ${
|
|
1069
|
+
CEIL(r.effective_capacity / GREATEST(r.refill_per_sec, ${MIN_SCHEDULE_RPS}) * 1000)
|
|
1057
1070
|
)::bigint AS window_ms
|
|
1058
1071
|
FROM refreshed r
|
|
1059
1072
|
ORDER BY r.refill_per_sec ASC, r.effective_capacity ASC
|
|
@@ -1453,14 +1466,14 @@ async function acquirePureRate(
|
|
|
1453
1466
|
scheduled_capacity
|
|
1454
1467
|
/ GREATEST(
|
|
1455
1468
|
next_refill_per_sec,
|
|
1456
|
-
${
|
|
1469
|
+
${MIN_SCHEDULE_RPS}
|
|
1457
1470
|
)
|
|
1458
1471
|
* 1000
|
|
1459
1472
|
)
|
|
1460
1473
|
)::bigint
|
|
1461
1474
|
)
|
|
1462
1475
|
)::bigint AS first_at_ms,
|
|
1463
|
-
CEIL(MAX(1000.0 / GREATEST(next_refill_per_sec, ${
|
|
1476
|
+
CEIL(MAX(1000.0 / GREATEST(next_refill_per_sec, ${MIN_SCHEDULE_RPS})))::bigint AS spacing_ms,
|
|
1464
1477
|
GREATEST(1, FLOOR(MIN(next_refill_per_sec) / 100.0))::bigint AS burst_size
|
|
1465
1478
|
FROM refreshed
|
|
1466
1479
|
),
|
|
@@ -1614,7 +1627,7 @@ async function acquirePureRate(
|
|
|
1614
1627
|
FLOOR(new_refill_per_sec * ${BLOCK_WAIT_HORIZON_MS} / 1000.0)
|
|
1615
1628
|
)
|
|
1616
1629
|
) - tokens_after_refill
|
|
1617
|
-
) / GREATEST(new_refill_per_sec, ${
|
|
1630
|
+
) / GREATEST(new_refill_per_sec, ${MIN_SCHEDULE_RPS}) * 1000
|
|
1618
1631
|
)
|
|
1619
1632
|
)::bigint
|
|
1620
1633
|
FROM updated
|
|
@@ -1973,14 +1986,14 @@ async function acquireWithConcurrency(
|
|
|
1973
1986
|
scheduled_capacity
|
|
1974
1987
|
/ GREATEST(
|
|
1975
1988
|
next_refill_per_sec,
|
|
1976
|
-
${
|
|
1989
|
+
${MIN_SCHEDULE_RPS}
|
|
1977
1990
|
)
|
|
1978
1991
|
* 1000
|
|
1979
1992
|
)
|
|
1980
1993
|
)::bigint
|
|
1981
1994
|
)
|
|
1982
1995
|
)::bigint AS first_at_ms,
|
|
1983
|
-
CEIL(MAX(1000.0 / GREATEST(next_refill_per_sec, ${
|
|
1996
|
+
CEIL(MAX(1000.0 / GREATEST(next_refill_per_sec, ${MIN_SCHEDULE_RPS})))::bigint AS spacing_ms,
|
|
1984
1997
|
GREATEST(1, FLOOR(MIN(next_refill_per_sec) / 100.0))::bigint AS burst_size
|
|
1985
1998
|
FROM refreshed
|
|
1986
1999
|
),
|
|
@@ -2162,7 +2175,7 @@ async function acquireWithConcurrency(
|
|
|
2162
2175
|
WHEN (SELECT free FROM free_slots) <= 0 THEN $7::bigint
|
|
2163
2176
|
ELSE (
|
|
2164
2177
|
SELECT CEIL(
|
|
2165
|
-
MAX((1.0 - tokens_after_refill) / GREATEST(new_refill_per_sec, ${
|
|
2178
|
+
MAX((1.0 - tokens_after_refill) / GREATEST(new_refill_per_sec, ${MIN_SCHEDULE_RPS}) * 1000)
|
|
2166
2179
|
)::bigint
|
|
2167
2180
|
FROM updated
|
|
2168
2181
|
)
|
|
@@ -3034,11 +3047,11 @@ async function penalizeRateStateStatements(
|
|
|
3034
3047
|
return emptyRateStatePenaltyTelemetry();
|
|
3035
3048
|
}
|
|
3036
3049
|
const rules = normalizeRules((input.rules ?? []) as AcquirePacingRule[]);
|
|
3037
|
-
const minimumRateRps = rules
|
|
3038
|
-
|
|
3039
|
-
|
|
3040
|
-
|
|
3041
|
-
|
|
3050
|
+
const minimumRateRps = minimumRateRpsForRules(rules);
|
|
3051
|
+
const noProgressProbeRateRps = Math.min(
|
|
3052
|
+
MIN_NO_PROGRESS_PROBE_RPS,
|
|
3053
|
+
minimumRateRps,
|
|
3054
|
+
);
|
|
3042
3055
|
await applyConcurrencyObservations(
|
|
3043
3056
|
client,
|
|
3044
3057
|
input,
|
|
@@ -3047,8 +3060,10 @@ async function penalizeRateStateStatements(
|
|
|
3047
3060
|
concurrencyObservationBatchFrom(input.concurrencyObservationBatch),
|
|
3048
3061
|
);
|
|
3049
3062
|
// Lock/update the provider-scope hold before touching rate-rule rows, matching
|
|
3050
|
-
// acquire's lock order.
|
|
3051
|
-
//
|
|
3063
|
+
// acquire's lock order. Retry-After remains an uncapped provider deadline;
|
|
3064
|
+
// repeated no-success 429s also extend the separate AIMD cooldown to the
|
|
3065
|
+
// one-minute probe interval so the five-RPM floor cannot turn into a retry
|
|
3066
|
+
// loop.
|
|
3052
3067
|
// - refill_per_sec: multiplicative decrease, but ONLY once per active
|
|
3053
3068
|
// cooldown window (halve-once guard: skip if already cooling), floored at
|
|
3054
3069
|
// min_rps.
|
|
@@ -3105,7 +3120,7 @@ async function penalizeRateStateStatements(
|
|
|
3105
3120
|
- COALESCE(h.rate_observation_started_at_ms, nv.now_ms)
|
|
3106
3121
|
END) AS cycle_ms,
|
|
3107
3122
|
CASE
|
|
3108
|
-
WHEN $5::bigint IS NOT NULL
|
|
3123
|
+
WHEN h.rate_successes <= 0 AND ($5::bigint IS NOT NULL OR h.seen_backpressure) THEN
|
|
3109
3124
|
CASE WHEN h.seen_backpressure THEN
|
|
3110
3125
|
LEAST(60000, GREATEST(1000, h.rate_recovery_interval_ms * 2))
|
|
3111
3126
|
ELSE 1000 END
|
|
@@ -3117,20 +3132,25 @@ async function penalizeRateStateStatements(
|
|
|
3117
3132
|
SELECT e.*,
|
|
3118
3133
|
GREATEST(${minimumRateRps},
|
|
3119
3134
|
CASE WHEN e.seen_backpressure AND e.rate_successes = 0 THEN
|
|
3120
|
-
CASE WHEN
|
|
3135
|
+
CASE WHEN e.no_progress_probe_interval_ms IS NOT NULL
|
|
3121
3136
|
-- A fresh provider deadline is not a throughput measurement.
|
|
3122
3137
|
-- Repeated probes with no successful work are evidence that
|
|
3123
|
-
-- the scope is still unavailable,
|
|
3124
|
-
--
|
|
3125
|
-
--
|
|
3126
|
-
THEN
|
|
3138
|
+
-- the scope is still unavailable, even without Retry-After.
|
|
3139
|
+
-- Space them exponentially (up to one per minute) across all
|
|
3140
|
+
-- runs sharing this provider credential.
|
|
3141
|
+
THEN GREATEST(${noProgressProbeRateRps},
|
|
3142
|
+
1000.0 / e.no_progress_probe_interval_ms)
|
|
3127
3143
|
ELSE e.refill_before END
|
|
3128
3144
|
ELSE e.refill_before / 2 END
|
|
3129
3145
|
) AS next_ceiling_rps
|
|
3130
3146
|
FROM evidence e
|
|
3131
3147
|
), learned AS (
|
|
3132
3148
|
SELECT e.*,
|
|
3133
|
-
CASE WHEN e.new_episode THEN GREATEST(
|
|
3149
|
+
CASE WHEN e.new_episode THEN GREATEST(
|
|
3150
|
+
CASE WHEN e.seen_backpressure AND e.rate_successes = 0
|
|
3151
|
+
THEN ${noProgressProbeRateRps}
|
|
3152
|
+
ELSE ${minimumRateRps} END,
|
|
3153
|
+
LEAST(
|
|
3134
3154
|
e.next_ceiling_rps,
|
|
3135
3155
|
GREATEST(1, e.rate_successes) * 1000.0 / e.cycle_ms
|
|
3136
3156
|
)) ELSE e.refill_before END AS refill_after
|
|
@@ -3140,7 +3160,17 @@ async function penalizeRateStateStatements(
|
|
|
3140
3160
|
retry_at_ms = e.deadline,
|
|
3141
3161
|
refill_per_sec = e.refill_after,
|
|
3142
3162
|
seen_backpressure = e.seen_backpressure OR e.new_episode,
|
|
3143
|
-
|
|
3163
|
+
-- A repeated no-success throttle can impose a slower local probe
|
|
3164
|
+
-- interval than the normal adaptive floor. Keep that pause separate
|
|
3165
|
+
-- from retry_at_ms, which remains the provider's absolute deadline.
|
|
3166
|
+
cool_until_ms = GREATEST(e.cool_until_ms, LEAST(
|
|
3167
|
+
e.now_ms + $4::bigint,
|
|
3168
|
+
GREATEST(
|
|
3169
|
+
e.deadline,
|
|
3170
|
+
e.now_ms + LEAST($2::bigint, $4::bigint),
|
|
3171
|
+
e.now_ms + COALESCE(e.no_progress_probe_interval_ms, 0)
|
|
3172
|
+
)
|
|
3173
|
+
)),
|
|
3144
3174
|
tokens = CASE WHEN e.new_episode THEN 0 ELSE e.tokens END,
|
|
3145
3175
|
rate_successes = e.rate_successes,
|
|
3146
3176
|
rate_throttle_ceiling_rps = CASE WHEN e.new_episode
|
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.
|
|
3054
|
+
version: "0.3.213",
|
|
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
|
|
@@ -28877,11 +28877,23 @@ async function handleRunLifecycleStatus(args) {
|
|
|
28877
28877
|
console.log(
|
|
28878
28878
|
`Map-step work (summed, not unique rows): completed ${formatCount(status.mapStepWork.completed)} / ${formatCount(status.mapStepWork.total)}, failed ${formatCount(status.mapStepWork.failed)}`
|
|
28879
28879
|
);
|
|
28880
|
+
if (status.activity) {
|
|
28881
|
+
const { activity } = status;
|
|
28882
|
+
const reason = activity.reason ? ` (${activity.reason})` : "";
|
|
28883
|
+
const nextDate = typeof activity.nextAt === "number" ? new Date(activity.nextAt) : null;
|
|
28884
|
+
const next = nextDate && Number.isFinite(nextDate.getTime()) ? `; next at ${nextDate.toISOString()}` : "";
|
|
28885
|
+
console.log(`Activity: ${activity.kind}${reason}${next}`);
|
|
28886
|
+
}
|
|
28880
28887
|
if (status.lifecycle.status === "waiting") {
|
|
28881
28888
|
console.log(
|
|
28882
28889
|
status.wait.confirmed && status.wait.kind ? `Waiting: ${status.wait.kind}` : "Waiting reason: unknown"
|
|
28883
28890
|
);
|
|
28884
28891
|
}
|
|
28892
|
+
if (status.calls) {
|
|
28893
|
+
console.log(
|
|
28894
|
+
`Calls: ${formatCount(status.calls.logicalCalls)} logical, ${formatCount(status.calls.providerRequests)} provider requests, ${formatCount(status.calls.provider429s)} provider 429s`
|
|
28895
|
+
);
|
|
28896
|
+
}
|
|
28885
28897
|
return 0;
|
|
28886
28898
|
}
|
|
28887
28899
|
async function handleRunsRerun(args) {
|
package/dist/cli/index.mjs
CHANGED
|
@@ -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.
|
|
3049
|
+
version: "0.3.213",
|
|
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
|
|
@@ -28950,11 +28950,23 @@ async function handleRunLifecycleStatus(args) {
|
|
|
28950
28950
|
console.log(
|
|
28951
28951
|
`Map-step work (summed, not unique rows): completed ${formatCount(status.mapStepWork.completed)} / ${formatCount(status.mapStepWork.total)}, failed ${formatCount(status.mapStepWork.failed)}`
|
|
28952
28952
|
);
|
|
28953
|
+
if (status.activity) {
|
|
28954
|
+
const { activity } = status;
|
|
28955
|
+
const reason = activity.reason ? ` (${activity.reason})` : "";
|
|
28956
|
+
const nextDate = typeof activity.nextAt === "number" ? new Date(activity.nextAt) : null;
|
|
28957
|
+
const next = nextDate && Number.isFinite(nextDate.getTime()) ? `; next at ${nextDate.toISOString()}` : "";
|
|
28958
|
+
console.log(`Activity: ${activity.kind}${reason}${next}`);
|
|
28959
|
+
}
|
|
28953
28960
|
if (status.lifecycle.status === "waiting") {
|
|
28954
28961
|
console.log(
|
|
28955
28962
|
status.wait.confirmed && status.wait.kind ? `Waiting: ${status.wait.kind}` : "Waiting reason: unknown"
|
|
28956
28963
|
);
|
|
28957
28964
|
}
|
|
28965
|
+
if (status.calls) {
|
|
28966
|
+
console.log(
|
|
28967
|
+
`Calls: ${formatCount(status.calls.logicalCalls)} logical, ${formatCount(status.calls.providerRequests)} provider requests, ${formatCount(status.calls.provider429s)} provider 429s`
|
|
28968
|
+
);
|
|
28969
|
+
}
|
|
28958
28970
|
return 0;
|
|
28959
28971
|
}
|
|
28960
28972
|
async function handleRunsRerun(args) {
|
package/dist/index.d.mts
CHANGED
|
@@ -3478,6 +3478,32 @@ type RunLifecycleStatus = {
|
|
|
3478
3478
|
startedAt: number | null;
|
|
3479
3479
|
finishedAt: number | null;
|
|
3480
3480
|
};
|
|
3481
|
+
/** Null for scheduler-only admission or a pre-expansion projection row. */
|
|
3482
|
+
source?: {
|
|
3483
|
+
ledgerNextSeq: number | null;
|
|
3484
|
+
};
|
|
3485
|
+
/** One durable current activity, not proof that every row is blocked. */
|
|
3486
|
+
activity?: {
|
|
3487
|
+
kind: string;
|
|
3488
|
+
reason: string | null;
|
|
3489
|
+
targetKind: string | null;
|
|
3490
|
+
observedAt: number | null;
|
|
3491
|
+
nextAt: number | null;
|
|
3492
|
+
} | null;
|
|
3493
|
+
calls?: {
|
|
3494
|
+
logicalCalls: {
|
|
3495
|
+
value: number | null;
|
|
3496
|
+
confirmed: boolean;
|
|
3497
|
+
};
|
|
3498
|
+
providerRequests: {
|
|
3499
|
+
value: number | null;
|
|
3500
|
+
confirmed: boolean;
|
|
3501
|
+
};
|
|
3502
|
+
provider429s: {
|
|
3503
|
+
value: number | null;
|
|
3504
|
+
confirmed: boolean;
|
|
3505
|
+
};
|
|
3506
|
+
};
|
|
3481
3507
|
steps: {
|
|
3482
3508
|
observed: number;
|
|
3483
3509
|
running: number;
|
package/dist/index.d.ts
CHANGED
|
@@ -3478,6 +3478,32 @@ type RunLifecycleStatus = {
|
|
|
3478
3478
|
startedAt: number | null;
|
|
3479
3479
|
finishedAt: number | null;
|
|
3480
3480
|
};
|
|
3481
|
+
/** Null for scheduler-only admission or a pre-expansion projection row. */
|
|
3482
|
+
source?: {
|
|
3483
|
+
ledgerNextSeq: number | null;
|
|
3484
|
+
};
|
|
3485
|
+
/** One durable current activity, not proof that every row is blocked. */
|
|
3486
|
+
activity?: {
|
|
3487
|
+
kind: string;
|
|
3488
|
+
reason: string | null;
|
|
3489
|
+
targetKind: string | null;
|
|
3490
|
+
observedAt: number | null;
|
|
3491
|
+
nextAt: number | null;
|
|
3492
|
+
} | null;
|
|
3493
|
+
calls?: {
|
|
3494
|
+
logicalCalls: {
|
|
3495
|
+
value: number | null;
|
|
3496
|
+
confirmed: boolean;
|
|
3497
|
+
};
|
|
3498
|
+
providerRequests: {
|
|
3499
|
+
value: number | null;
|
|
3500
|
+
confirmed: boolean;
|
|
3501
|
+
};
|
|
3502
|
+
provider429s: {
|
|
3503
|
+
value: number | null;
|
|
3504
|
+
confirmed: boolean;
|
|
3505
|
+
};
|
|
3506
|
+
};
|
|
3481
3507
|
steps: {
|
|
3482
3508
|
observed: number;
|
|
3483
3509
|
running: number;
|
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.
|
|
867
|
+
version: "0.3.213",
|
|
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.
|
|
771
|
+
version: "0.3.213",
|
|
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
|
package/dist/release.d.mts
CHANGED
|
@@ -149,7 +149,7 @@ type SdkRelease = {
|
|
|
149
149
|
supportPolicy: SdkSupportPolicy;
|
|
150
150
|
};
|
|
151
151
|
declare const SDK_RELEASE: {
|
|
152
|
-
readonly version: "0.3.
|
|
152
|
+
readonly version: "0.3.213";
|
|
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.
|
|
152
|
+
readonly version: "0.3.213";
|
|
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.
|
|
77
|
+
version: "0.3.213",
|
|
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.
|
|
51
|
+
version: "0.3.213",
|
|
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
|