deepline 0.3.128 → 0.3.129
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 +34 -9
- package/dist/bundling-sources/sdk/src/http.ts +22 -0
- package/dist/bundling-sources/sdk/src/release.ts +1 -1
- package/dist/bundling-sources/shared_libs/play-data-plane/r2.ts +22 -0
- package/dist/bundling-sources/shared_libs/play-runtime/app-runtime-api.ts +265 -2
- package/dist/bundling-sources/shared_libs/play-runtime/bounded-batch-function.ts +682 -0
- package/dist/bundling-sources/shared_libs/play-runtime/child-execution-strategy.ts +21 -5
- package/dist/bundling-sources/shared_libs/play-runtime/context.ts +5390 -1732
- package/dist/bundling-sources/shared_libs/play-runtime/ctx-types.ts +107 -1
- package/dist/bundling-sources/shared_libs/play-runtime/deployment/commands/roll-execution-relay.ts +7 -0
- package/dist/bundling-sources/shared_libs/play-runtime/deployment/fly-machines.ts +229 -7
- package/dist/bundling-sources/shared_libs/play-runtime/deployment/fly-registry.ts +25 -4
- package/dist/bundling-sources/shared_libs/play-runtime/deployment/runtime-gateway-capacity.ts +71 -0
- package/dist/bundling-sources/shared_libs/play-runtime/deployment/runtime-gateway-drain.ts +1 -1
- package/dist/bundling-sources/shared_libs/play-runtime/deployment/runtime-topology.ts +4 -1
- package/dist/bundling-sources/shared_libs/play-runtime/durable-receipt-execution.ts +694 -28
- package/dist/bundling-sources/shared_libs/play-runtime/egress-bandwidth-probe.ts +167 -0
- package/dist/bundling-sources/shared_libs/play-runtime/execute-server-timing.ts +103 -0
- package/dist/bundling-sources/shared_libs/play-runtime/execution-gateway-receipt-output-reference.ts +34 -0
- package/dist/bundling-sources/shared_libs/play-runtime/execution-gateway-response-size.ts +27 -0
- package/dist/bundling-sources/shared_libs/play-runtime/gateway-postgres-admission.ts +66 -1
- package/dist/bundling-sources/shared_libs/play-runtime/governor/app-runtime-rate-state-backend.ts +425 -71
- package/dist/bundling-sources/shared_libs/play-runtime/governor/governor.ts +210 -32
- package/dist/bundling-sources/shared_libs/play-runtime/governor/in-memory-rate-state-backend.ts +27 -13
- package/dist/bundling-sources/shared_libs/play-runtime/governor/policy.ts +19 -6
- package/dist/bundling-sources/shared_libs/play-runtime/governor/rate-state-backend.ts +61 -2
- package/dist/bundling-sources/shared_libs/play-runtime/integration-operation-reader-fence/contracts.ts +33 -1
- package/dist/bundling-sources/shared_libs/play-runtime/integration-operation-reader-fence/job.ts +42 -1
- package/dist/bundling-sources/shared_libs/play-runtime/launch-source-policy.ts +11 -11
- package/dist/bundling-sources/shared_libs/play-runtime/ledger-safe-payload.ts +49 -16
- package/dist/bundling-sources/shared_libs/play-runtime/map-memory-limits.ts +1653 -98
- package/dist/bundling-sources/shared_libs/play-runtime/memory-ledger.ts +807 -0
- package/dist/bundling-sources/shared_libs/play-runtime/memory-pressure-signal.ts +138 -0
- package/dist/bundling-sources/shared_libs/play-runtime/output-size-limits.ts +85 -3
- package/dist/bundling-sources/shared_libs/play-runtime/persistence-latch.ts +60 -2
- package/dist/bundling-sources/shared_libs/play-runtime/play-run-recovery-policy.ts +46 -1
- package/dist/bundling-sources/shared_libs/play-runtime/play-runs/terminal/contracts.ts +2 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runs/terminal/job.ts +1 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runs/terminal/ports.ts +1 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runs/terminal/postgres-adapter.ts +1 -0
- package/dist/bundling-sources/shared_libs/play-runtime/play-runtime-semantics.ts +70 -27
- package/dist/bundling-sources/shared_libs/play-runtime/protocol.ts +56 -0
- package/dist/bundling-sources/shared_libs/play-runtime/provider-capacity/adaptive-provider-capacity-controller.ts +192 -0
- package/dist/bundling-sources/shared_libs/play-runtime/provider-capacity/epoch-aimd-rate-controller.ts +194 -0
- package/dist/bundling-sources/shared_libs/play-runtime/provider-capacity/fixture-capacity-simulator.ts +220 -0
- package/dist/bundling-sources/shared_libs/play-runtime/provider-capacity/gradient2-concurrency-controller.ts +214 -0
- package/dist/bundling-sources/shared_libs/play-runtime/provider-capacity/provider-capacity-policy.ts +43 -0
- package/dist/bundling-sources/shared_libs/play-runtime/provider-capacity/provider-concurrency-policy.ts +30 -0
- package/dist/bundling-sources/shared_libs/play-runtime/provider-capacity/provider-rate-policy.ts +95 -0
- package/dist/bundling-sources/shared_libs/play-runtime/provider-capacity/provider-throttle-classifier.ts +40 -0
- package/dist/bundling-sources/shared_libs/play-runtime/resource-governor.ts +1535 -11
- package/dist/bundling-sources/shared_libs/play-runtime/run-failure.ts +49 -2
- package/dist/bundling-sources/shared_libs/play-runtime/run-ledger.ts +6 -1
- package/dist/bundling-sources/shared_libs/play-runtime/run-log-buffer.ts +55 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runner-app/egress-probe.ts +221 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runner-app/index.ts +339 -29
- package/dist/bundling-sources/shared_libs/play-runtime/runner-app/runtime-deadline.ts +28 -1
- package/dist/bundling-sources/shared_libs/play-runtime/runner-app/runtime-progress-push.ts +192 -165
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-lifecycle.ts +6 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-payload-transport.ts +90 -5
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-runtime-watchdog.ts +281 -6
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona.ts +27 -1
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/local-process.ts +19 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/modal.ts +108 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/runtime-sandbox-reconciliation.ts +40 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/types.ts +11 -5
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-actions.ts +30 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-api-compression.ts +276 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-api.ts +723 -115
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-capacity-policy.ts +98 -2
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-contract.ts +3 -2
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-environment.ts +41 -4
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-flow.ts +448 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-map-row-feed.ts +215 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-operation-contract.ts +11 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-receipt-store-adapter.ts +161 -14
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-receipt-value.ts +184 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-receipt-writer.ts +607 -121
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-sandbox-placement-policy.ts +4 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-sheet-row-writer.ts +21 -0
- package/dist/bundling-sources/shared_libs/play-runtime/sandbox-runs/contract.ts +15 -2
- package/dist/bundling-sources/shared_libs/play-runtime/sandbox-runs/runner-backend-adapter.ts +71 -14
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-play-deploy-task.ts +2 -2
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-runtime-worker.ts +288 -119
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-shared.ts +8 -6
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-worker-required-env.ts +28 -3
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/canonical-integration-operation-store.ts +179 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/gateway-heavy-request-admission.ts +80 -2
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/gateway-progress-registry.ts +31 -2
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/integration-operation-store-contract.ts +104 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/integration-operation-value-reference.ts +47 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/integration-operation-value-retirement.ts +193 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/integration-operation-value-storage.ts +420 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-pool.ts +41 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-progress.ts +134 -3
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-rate-state.ts +1657 -95
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres.ts +885 -73
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/receipt-completion-coalescer.ts +452 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/receipt-gateway.ts +601 -42
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/run-terminal-transition.ts +1 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-receipt-value-storage.ts +371 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/worker-resource-metrics.ts +86 -7
- package/dist/bundling-sources/shared_libs/play-runtime/secret-redaction.ts +153 -22
- package/dist/bundling-sources/shared_libs/play-runtime/tool-call/index.ts +1 -0
- package/dist/bundling-sources/shared_libs/play-runtime/tool-call/receipt-cohort.ts +188 -38
- package/dist/bundling-sources/shared_libs/play-runtime/tool-call/runtime-step-receipts-adapter.ts +28 -13
- package/dist/bundling-sources/shared_libs/play-runtime/tool-execute-retry-policy.ts +44 -1
- package/dist/bundling-sources/shared_libs/play-runtime/tool-result.ts +56 -4
- package/dist/bundling-sources/shared_libs/play-runtime/work-receipts.ts +2 -0
- package/dist/bundling-sources/shared_libs/plays/authoring-contract.ts +16 -10
- package/dist/bundling-sources/shared_libs/plays/dataset.ts +4 -1
- package/dist/cli/index.js +250 -38
- package/dist/cli/index.mjs +250 -38
- package/dist/{compiler-manifest-DfSnbCTW.d.mts → compiler-manifest-BIqRyj5m.d.mts} +1 -1
- package/dist/{compiler-manifest-DfSnbCTW.d.ts → compiler-manifest-BIqRyj5m.d.ts} +1 -1
- package/dist/index.d.mts +4 -2
- package/dist/index.d.ts +4 -2
- package/dist/index.js +231 -35
- package/dist/index.mjs +231 -35
- package/dist/install-integrity.json +31 -2
- package/dist/plays/bundle-play-file.d.mts +2 -2
- package/dist/plays/bundle-play-file.d.ts +2 -2
- package/dist/plays/bundle-play-file.mjs +65 -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
package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-progress.ts
CHANGED
|
@@ -19,12 +19,18 @@ import {
|
|
|
19
19
|
} from '../app-runtime-api';
|
|
20
20
|
import type { PlayVisualNodeProgressMap } from '../worker-api-types';
|
|
21
21
|
import type { PlayExecutionEvent } from '../ctx-types';
|
|
22
|
+
import type { PlayActivityObservation } from '../activity-observation';
|
|
22
23
|
import type {
|
|
23
24
|
PlayRunnerLogEvent,
|
|
24
25
|
PlayRunnerResult,
|
|
25
26
|
} from '../protocol';
|
|
26
27
|
import type { PlaySchedulerSubmitInput } from '../scheduler-backend';
|
|
27
28
|
import type { DocflowObservationRecord } from '../docflow-observation';
|
|
29
|
+
import {
|
|
30
|
+
buildPlayRunLedgerEventsFromStatusPatch,
|
|
31
|
+
createEmptyPlayRunLedgerSnapshot,
|
|
32
|
+
type PlayRunLedgerEvent,
|
|
33
|
+
} from '../run-ledger';
|
|
28
34
|
import {
|
|
29
35
|
getTopLevelPipelineSubsteps,
|
|
30
36
|
type PlayStaticPipeline,
|
|
@@ -248,7 +254,16 @@ function shouldPublishTerminalResultLog(
|
|
|
248
254
|
mode: PostgresSchedulerDurableLogMode,
|
|
249
255
|
line: string,
|
|
250
256
|
): boolean {
|
|
251
|
-
|
|
257
|
+
// Direct workers keep host lifecycle noise out of the customer Run Log
|
|
258
|
+
// Stream. The resource summary is one bounded, machine-readable terminal
|
|
259
|
+
// diagnostic rather than a host log, though: the fixture harness needs it
|
|
260
|
+
// after the runner has gone away and the normal terminal result is no longer
|
|
261
|
+
// available through the status projection.
|
|
262
|
+
return (
|
|
263
|
+
mode !== 'direct_worker' ||
|
|
264
|
+
CTX_LOG_TIMESTAMP_PREFIX_RE.test(line) ||
|
|
265
|
+
line.startsWith('[runtime.phase_summary] ')
|
|
266
|
+
);
|
|
252
267
|
}
|
|
253
268
|
|
|
254
269
|
type TerminalLogReplayPayload = NonNullable<
|
|
@@ -323,14 +338,34 @@ export function createPostgresSchedulerProgressReporter(input: {
|
|
|
323
338
|
durableLogMode?: PostgresSchedulerDurableLogMode;
|
|
324
339
|
producerAttempt?: number;
|
|
325
340
|
isCurrentAttempt?: () => boolean | Promise<boolean>;
|
|
341
|
+
/**
|
|
342
|
+
* The caller already read the durable attempt fence for THIS request and it
|
|
343
|
+
* was current. The first projection flush then reuses that read instead of
|
|
344
|
+
* paying a second identical round trip. A reporter lives for exactly one
|
|
345
|
+
* request, and the credit is consumed by the first flush, so a later flush —
|
|
346
|
+
* and every other request — re-reads the fence.
|
|
347
|
+
*/
|
|
348
|
+
attemptAlreadyVerified?: boolean;
|
|
326
349
|
/** Durable log position before this reporter's first event. Push runners own
|
|
327
350
|
* this cursor so successive batches may land on different gateway Machines. */
|
|
328
351
|
initialLiveLogTotalCount?: number;
|
|
352
|
+
/** Override the app-runtime transport when a caller needs to capture the
|
|
353
|
+
* folded terminal patch for a durable scheduler outbox instead of posting
|
|
354
|
+
* it synchronously. */
|
|
355
|
+
publishStatusUpdate?: (update: RuntimeStatusUpdate) => Promise<void>;
|
|
329
356
|
}): PostgresSchedulerProgressReporter {
|
|
330
357
|
const launch = input.launch;
|
|
331
358
|
const durableLogMode = input.durableLogMode ?? 'progress_reporter';
|
|
332
359
|
const producerAttempt = input.producerAttempt;
|
|
333
|
-
const
|
|
360
|
+
const readAttemptFence = input.isCurrentAttempt ?? (() => true);
|
|
361
|
+
let verifiedAttemptCredit = input.attemptAlreadyVerified === true;
|
|
362
|
+
const isCurrentAttempt = async (): Promise<boolean> => {
|
|
363
|
+
if (verifiedAttemptCredit) {
|
|
364
|
+
verifiedAttemptCredit = false;
|
|
365
|
+
return true;
|
|
366
|
+
}
|
|
367
|
+
return await readAttemptFence();
|
|
368
|
+
};
|
|
334
369
|
const orderedNodes = buildOrderedNodeList(launch.contractSnapshot);
|
|
335
370
|
const mapNodeLookup = buildMapNodeLookup(launch.contractSnapshot);
|
|
336
371
|
const runtimeApi = {
|
|
@@ -338,6 +373,10 @@ export function createPostgresSchedulerProgressReporter(input: {
|
|
|
338
373
|
executorToken: launch.executorToken,
|
|
339
374
|
vercelProtectionBypassToken: launch.vercelProtectionBypassToken ?? null,
|
|
340
375
|
};
|
|
376
|
+
const publishStatusUpdate =
|
|
377
|
+
input.publishStatusUpdate ??
|
|
378
|
+
((update: RuntimeStatusUpdate) =>
|
|
379
|
+
updateRunStatusViaAppRuntime(runtimeApi, update));
|
|
341
380
|
|
|
342
381
|
let liveNodeProgress: PlayVisualNodeProgressMap = {};
|
|
343
382
|
let liveNodeProgressDirty = false;
|
|
@@ -427,7 +466,7 @@ export function createPostgresSchedulerProgressReporter(input: {
|
|
|
427
466
|
|
|
428
467
|
try {
|
|
429
468
|
if (await isCurrentAttempt()) {
|
|
430
|
-
await
|
|
469
|
+
await publishStatusUpdate({
|
|
431
470
|
playId: launch.runId,
|
|
432
471
|
status: request.status,
|
|
433
472
|
liveNodeProgress: nextProgress,
|
|
@@ -1246,10 +1285,102 @@ export const createDirectWorkerProgressReporter = (input: {
|
|
|
1246
1285
|
launch: PlaySchedulerSubmitInput;
|
|
1247
1286
|
producerAttempt?: number;
|
|
1248
1287
|
isCurrentAttempt?: () => boolean | Promise<boolean>;
|
|
1288
|
+
/** See `createPostgresSchedulerProgressReporter`: one request, one credit. */
|
|
1289
|
+
attemptAlreadyVerified?: boolean;
|
|
1249
1290
|
initialLiveLogTotalCount?: number;
|
|
1291
|
+
publishStatusUpdate?: (update: RuntimeStatusUpdate) => Promise<void>;
|
|
1250
1292
|
}) =>
|
|
1251
1293
|
createPostgresSchedulerProgressReporter({
|
|
1252
1294
|
...input,
|
|
1253
1295
|
durableLogMode: 'direct_worker',
|
|
1254
1296
|
});
|
|
1255
1297
|
export type DirectWorkerProgressReporter = PostgresSchedulerProgressReporter;
|
|
1298
|
+
|
|
1299
|
+
/**
|
|
1300
|
+
* Fold a detached runner's final progress without crossing the app-runtime
|
|
1301
|
+
* network boundary. The returned events are stored in the same Postgres
|
|
1302
|
+
* terminal outbox row as `run.completed`, so the projector can append the
|
|
1303
|
+
* final step/log/activity facts and the terminal fact in one ordered Convex
|
|
1304
|
+
* mutation. This is the completed-run fast path; failed/suspended runs retain
|
|
1305
|
+
* the compatibility projection until their parked worker resumes.
|
|
1306
|
+
*/
|
|
1307
|
+
export async function collectGatewayRunnerTerminalProgressLedgerEvents(input: {
|
|
1308
|
+
launch: PlaySchedulerSubmitInput;
|
|
1309
|
+
attempt: number;
|
|
1310
|
+
result: PlayRunnerResult;
|
|
1311
|
+
events: unknown[];
|
|
1312
|
+
liveLogOffset: number;
|
|
1313
|
+
}): Promise<PlayRunLedgerEvent[]> {
|
|
1314
|
+
const captured: { update?: RuntimeStatusUpdate } = {};
|
|
1315
|
+
const reporter = createDirectWorkerProgressReporter({
|
|
1316
|
+
launch: input.launch,
|
|
1317
|
+
producerAttempt: input.attempt,
|
|
1318
|
+
initialLiveLogTotalCount: input.liveLogOffset,
|
|
1319
|
+
isCurrentAttempt: () => true,
|
|
1320
|
+
attemptAlreadyVerified: true,
|
|
1321
|
+
publishStatusUpdate: async (update) => {
|
|
1322
|
+
captured.update = update;
|
|
1323
|
+
},
|
|
1324
|
+
});
|
|
1325
|
+
for (const event of input.events) reporter.onRunnerEvent(event);
|
|
1326
|
+
await reporter.finalize(input.result, {
|
|
1327
|
+
status: 'running',
|
|
1328
|
+
required: true,
|
|
1329
|
+
skipTerminalLogReplay: true,
|
|
1330
|
+
terminalLogProducerAttempt: input.attempt,
|
|
1331
|
+
});
|
|
1332
|
+
const finalUpdate = captured.update;
|
|
1333
|
+
if (!finalUpdate) return [];
|
|
1334
|
+
|
|
1335
|
+
const liveLogs = finalUpdate.liveLogs ?? [];
|
|
1336
|
+
const liveLogTotalCount =
|
|
1337
|
+
finalUpdate.liveLogTotalCount ?? liveLogs.length + input.liveLogOffset;
|
|
1338
|
+
const progressEvents = buildPlayRunLedgerEventsFromStatusPatch({
|
|
1339
|
+
patch: {
|
|
1340
|
+
runId: input.launch.runId,
|
|
1341
|
+
status: 'running',
|
|
1342
|
+
lastCheckpointAt: finalUpdate.lastCheckpointAt,
|
|
1343
|
+
liveNodeProgress: finalUpdate.liveNodeProgress,
|
|
1344
|
+
liveLogs,
|
|
1345
|
+
liveLogsChannelOffset: Math.max(0, liveLogTotalCount - liveLogs.length),
|
|
1346
|
+
liveLogsProducerAttempt:
|
|
1347
|
+
finalUpdate.liveLogProducerAttempt ?? input.attempt,
|
|
1348
|
+
},
|
|
1349
|
+
previousSnapshot: createEmptyPlayRunLedgerSnapshot({
|
|
1350
|
+
runId: input.launch.runId,
|
|
1351
|
+
status: 'queued',
|
|
1352
|
+
}),
|
|
1353
|
+
source: 'worker',
|
|
1354
|
+
});
|
|
1355
|
+
const datasetEvents: PlayRunLedgerEvent[] = (
|
|
1356
|
+
finalUpdate.datasetLifecycleEvents ?? []
|
|
1357
|
+
).map((event) => ({
|
|
1358
|
+
type: 'dataset.lifecycle',
|
|
1359
|
+
runId: input.launch.runId,
|
|
1360
|
+
source: 'worker',
|
|
1361
|
+
occurredAt: event.at,
|
|
1362
|
+
datasetId: event.datasetId,
|
|
1363
|
+
path: event.path,
|
|
1364
|
+
tableNamespace: event.tableNamespace,
|
|
1365
|
+
phase: event.phase,
|
|
1366
|
+
...(event.persistedRows === undefined
|
|
1367
|
+
? {}
|
|
1368
|
+
: { persistedRows: event.persistedRows }),
|
|
1369
|
+
...(event.succeededRows === undefined
|
|
1370
|
+
? {}
|
|
1371
|
+
: { succeededRows: event.succeededRows }),
|
|
1372
|
+
...(event.failedRows === undefined ? {} : { failedRows: event.failedRows }),
|
|
1373
|
+
...(event.complete === undefined ? {} : { complete: event.complete }),
|
|
1374
|
+
...(event.bornFrom === undefined ? {} : { bornFrom: event.bornFrom }),
|
|
1375
|
+
}));
|
|
1376
|
+
const activityEvents: PlayRunLedgerEvent[] = (
|
|
1377
|
+
finalUpdate.activityObservations ?? []
|
|
1378
|
+
).map((observation: PlayActivityObservation) => ({
|
|
1379
|
+
type: 'activity.observed',
|
|
1380
|
+
runId: input.launch.runId,
|
|
1381
|
+
source: 'worker',
|
|
1382
|
+
occurredAt: observation.observedAt,
|
|
1383
|
+
observation,
|
|
1384
|
+
}));
|
|
1385
|
+
return [...progressEvents, ...datasetEvents, ...activityEvents];
|
|
1386
|
+
}
|