deepline 0.3.247 → 0.3.249
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 +177 -13
- package/dist/bundling-sources/sdk/src/index.ts +8 -0
- package/dist/bundling-sources/sdk/src/plays/input-example.ts +40 -0
- package/dist/bundling-sources/sdk/src/release.ts +1 -1
- package/dist/bundling-sources/sdk/src/runs/overview.ts +457 -0
- package/dist/bundling-sources/sdk/src/runs/receipts.ts +23 -0
- package/dist/bundling-sources/sdk/src/tool-calls.ts +21 -1
- package/dist/bundling-sources/sdk/src/types.ts +16 -1
- package/dist/bundling-sources/shared_libs/observability/scheduled-jobs.json +19 -1
- package/dist/bundling-sources/shared_libs/play-data-plane/column-names.ts +17 -3
- package/dist/bundling-sources/shared_libs/play-data-plane/sheet-contract.ts +40 -8
- package/dist/bundling-sources/shared_libs/play-runtime/app-runtime-api.ts +26 -1
- package/dist/bundling-sources/shared_libs/play-runtime/context.ts +144 -14
- package/dist/bundling-sources/shared_libs/play-runtime/ctx-types.ts +2 -1
- package/dist/bundling-sources/shared_libs/play-runtime/daytona-runtime-config.ts +6 -3
- package/dist/bundling-sources/shared_libs/play-runtime/daytona-sandbox-janitor.ts +26 -21
- package/dist/bundling-sources/shared_libs/play-runtime/daytona-sandbox-reaper.ts +23 -21
- package/dist/bundling-sources/shared_libs/play-runtime/deployment/fly-machines.ts +17 -0
- package/dist/bundling-sources/shared_libs/play-runtime/log-context.ts +105 -0
- package/dist/bundling-sources/shared_libs/play-runtime/output-size-limits.ts +8 -1
- 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/protocol.ts +9 -0
- package/dist/bundling-sources/shared_libs/play-runtime/run-ledger-event-transport.ts +40 -4
- package/dist/bundling-sources/shared_libs/play-runtime/run-ledger.ts +50 -5
- package/dist/bundling-sources/shared_libs/play-runtime/run-lifecycle-policy.ts +3 -1
- package/dist/bundling-sources/shared_libs/play-runtime/run-log-buffer.ts +28 -1
- package/dist/bundling-sources/shared_libs/play-runtime/runner-app/index.ts +14 -1
- package/dist/bundling-sources/shared_libs/play-runtime/runner-app/runtime-terminal-push.ts +56 -16
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-control-transport.ts +184 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-launch-transport.ts +327 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-lifecycle.ts +87 -30
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-session-execution.ts +24 -13
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-start-admission.ts +23 -6
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona.ts +76 -33
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-runtime-worker.ts +90 -35
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-pool.ts +16 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-progress.ts +112 -50
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres.ts +447 -77
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/receipt-gateway.ts +22 -4
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/run-ledger-outbox-recovery.ts +105 -121
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-event-search.ts +1648 -0
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-queue-health.ts +16 -19
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-receipt-value-storage.ts +14 -6
- package/dist/bundling-sources/shared_libs/play-runtime/tool-execute-retry-policy.ts +16 -0
- package/dist/bundling-sources/shared_libs/play-runtime/tool-http-errors.ts +40 -0
- package/dist/bundling-sources/shared_libs/plays/authoring-contract.ts +5 -2
- package/dist/bundling-sources/shared_libs/plays/dataset-summary.ts +11 -7
- package/dist/bundling-sources/shared_libs/plays/static-pipeline-storage-codec.ts +5 -2
- package/dist/bundling-sources/shared_libs/plays/static-pipeline.ts +11 -2
- package/dist/cli/index.js +3504 -2368
- package/dist/cli/index.mjs +3188 -2052
- package/dist/{compiler-manifest-n8ZtPv2h.d.mts → compiler-manifest-DavmLa8y.d.mts} +1 -0
- package/dist/{compiler-manifest-n8ZtPv2h.d.ts → compiler-manifest-DavmLa8y.d.ts} +1 -0
- package/dist/index.d.mts +97 -5
- package/dist/index.d.ts +97 -5
- package/dist/index.js +135 -15
- package/dist/index.mjs +135 -15
- package/dist/install-integrity.json +9 -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 +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
package/dist/index.js
CHANGED
|
@@ -122,6 +122,31 @@ async function* iterateCursorPages(fetchPage) {
|
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
124
|
|
|
125
|
+
// src/plays/input-example.ts
|
|
126
|
+
function playInputExampleArgs(schema) {
|
|
127
|
+
if (!schema) return " --input '@<input.json>'";
|
|
128
|
+
if (schema.$ref || schema.allOf) return " --input '@<input.json>'";
|
|
129
|
+
const csv = schema.csvInput;
|
|
130
|
+
const csvField = typeof csv?.inputField === "string" ? csv.inputField : null;
|
|
131
|
+
const required = Array.isArray(schema.required) ? schema.required : [];
|
|
132
|
+
const csvOnlyRequired = required.every((key) => key === csvField);
|
|
133
|
+
const alternatives = schema.oneOf ?? schema.anyOf;
|
|
134
|
+
const hasCsvAlternative = Array.isArray(alternatives) && alternatives.some((branch) => {
|
|
135
|
+
if (!branch || typeof branch !== "object") return false;
|
|
136
|
+
const keys = branch.required;
|
|
137
|
+
return Array.isArray(keys) && keys.includes(csvField) && keys.every((key) => key === csvField);
|
|
138
|
+
});
|
|
139
|
+
if (csvField && csvOnlyRequired && (!alternatives || hasCsvAlternative)) {
|
|
140
|
+
if (csvField === "csv") return " --csv '<contacts.csv>'";
|
|
141
|
+
const value = JSON.stringify({ [csvField]: "<contacts.csv>" });
|
|
142
|
+
return ` --input '${value.replace(/'/g, "'\\''")}'`;
|
|
143
|
+
}
|
|
144
|
+
if (Array.isArray(schema.required) && !required.length && !csv && !alternatives) {
|
|
145
|
+
return "";
|
|
146
|
+
}
|
|
147
|
+
return " --input '@<input.json>'";
|
|
148
|
+
}
|
|
149
|
+
|
|
125
150
|
// src/config.ts
|
|
126
151
|
var import_node_fs = require("fs");
|
|
127
152
|
var import_node_os = require("os");
|
|
@@ -979,8 +1004,12 @@ function executionRecoveryError(input) {
|
|
|
979
1004
|
var DEEPLINEAGENT_EXECUTE_TIMEOUT_MS = 15 * 60 * 1e3;
|
|
980
1005
|
var APIFY_SYNC_DEFAULT_TIMEOUT_MS = 3e5;
|
|
981
1006
|
var APIFY_SYNC_RESPONSE_GRACE_MS = 9e4;
|
|
982
|
-
|
|
1007
|
+
var JSEARCH_SEARCH_CLIENT_TIMEOUT_MS = 2 * 12e4 + 250 + 15e3;
|
|
1008
|
+
function resolveToolExecuteTimeoutMs(toolId, input, configuredRequestTimeoutMs) {
|
|
983
1009
|
const normalized = toolId.trim().toLowerCase();
|
|
1010
|
+
if (normalized === "openwebninja_jsearch_search") {
|
|
1011
|
+
return configuredRequestTimeoutMs ?? JSEARCH_SEARCH_CLIENT_TIMEOUT_MS;
|
|
1012
|
+
}
|
|
984
1013
|
const lookupTimeoutMs = resolveLookupClientTimeoutMs(normalized);
|
|
985
1014
|
if (lookupTimeoutMs !== void 0) return lookupTimeoutMs;
|
|
986
1015
|
if (normalized === "apify_run_actor_sync") {
|
|
@@ -1049,9 +1078,10 @@ function materializeToolExecutionResponse(response) {
|
|
|
1049
1078
|
};
|
|
1050
1079
|
}
|
|
1051
1080
|
var ToolCalls = class {
|
|
1052
|
-
constructor(http, defaultRequestTimeoutMs) {
|
|
1081
|
+
constructor(http, defaultRequestTimeoutMs, configuredRequestTimeoutMs) {
|
|
1053
1082
|
this.http = http;
|
|
1054
1083
|
this.defaultRequestTimeoutMs = defaultRequestTimeoutMs;
|
|
1084
|
+
this.configuredRequestTimeoutMs = configuredRequestTimeoutMs;
|
|
1055
1085
|
}
|
|
1056
1086
|
async call(toolId, input, options) {
|
|
1057
1087
|
const inputSnapshot = JSON.parse(JSON.stringify(input));
|
|
@@ -1068,7 +1098,11 @@ var ToolCalls = class {
|
|
|
1068
1098
|
}
|
|
1069
1099
|
await options?.onExecution?.({ idempotencyKey });
|
|
1070
1100
|
}
|
|
1071
|
-
const timeoutMs = options?.timeout ?? resolveToolExecuteTimeoutMs(
|
|
1101
|
+
const timeoutMs = options?.timeout ?? resolveToolExecuteTimeoutMs(
|
|
1102
|
+
toolId,
|
|
1103
|
+
inputSnapshot,
|
|
1104
|
+
this.configuredRequestTimeoutMs
|
|
1105
|
+
);
|
|
1072
1106
|
if (idempotencyKey !== void 0) {
|
|
1073
1107
|
await this.lookupExecutionByKey(idempotencyKey, timeoutMs);
|
|
1074
1108
|
}
|
|
@@ -1286,7 +1320,7 @@ var SDK_RELEASE = {
|
|
|
1286
1320
|
// getters keep their established compatibility behavior.
|
|
1287
1321
|
// 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
|
|
1288
1322
|
// 0.3.90 is the first deliberately versioned SDK release for API v3.
|
|
1289
|
-
version: "0.3.
|
|
1323
|
+
version: "0.3.249",
|
|
1290
1324
|
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.",
|
|
1291
1325
|
packageCapabilities: {
|
|
1292
1326
|
updatePreferences: 1
|
|
@@ -2675,8 +2709,12 @@ function resolveTimingWindow(input) {
|
|
|
2675
2709
|
// ../play-runtime/run-failure.ts
|
|
2676
2710
|
var PUBLIC_FAILURE_TEXT_BYTE_LIMIT = 64 * 1024;
|
|
2677
2711
|
|
|
2712
|
+
// ../play-runtime/log-context.ts
|
|
2713
|
+
var utf8 = new TextEncoder();
|
|
2714
|
+
|
|
2678
2715
|
// ../play-runtime/run-log-buffer.ts
|
|
2679
2716
|
var RUNNER_LOG_MAX_BYTES = 5 * 1024 * 1024;
|
|
2717
|
+
var RUNNER_LOG_CONTEXT_MAX_BYTES = 128 * 1024;
|
|
2680
2718
|
var TERMINAL_RESERVE_BYTES = 64 * 1024;
|
|
2681
2719
|
var encoder = new TextEncoder();
|
|
2682
2720
|
|
|
@@ -3606,6 +3644,21 @@ function runtimeSelectionHeaders(runtime) {
|
|
|
3606
3644
|
...receivers ? { [RETAINED_PIPELINE_RECEIVERS_HEADER]: receivers } : {}
|
|
3607
3645
|
};
|
|
3608
3646
|
}
|
|
3647
|
+
function isolatedCiRuntimeEventReadHeaders() {
|
|
3648
|
+
const schema = process.env.DEEPLINE_RUNTIME_SCHEDULER_SCHEMA?.trim();
|
|
3649
|
+
if (process.env.DEEPLINE_SYNTHETIC_RUN?.trim() !== "1" || !schema || !/^fly_absurd_pr_\d+_\d+(?:_\d+)?$/.test(schema)) {
|
|
3650
|
+
return void 0;
|
|
3651
|
+
}
|
|
3652
|
+
const token = process.env.DEEPLINE_INTERNAL_TOKEN?.trim();
|
|
3653
|
+
if (!token) {
|
|
3654
|
+
throw new DeeplineError(
|
|
3655
|
+
"DEEPLINE_INTERNAL_TOKEN is required for isolated CI runtime event reads.",
|
|
3656
|
+
void 0,
|
|
3657
|
+
"RUNTIME_EVENT_INTERNAL_TOKEN_REQUIRED"
|
|
3658
|
+
);
|
|
3659
|
+
}
|
|
3660
|
+
return { [COORDINATOR_INTERNAL_TOKEN_HEADER]: token };
|
|
3661
|
+
}
|
|
3609
3662
|
function normalizeTestPolicyOverrides(value, source) {
|
|
3610
3663
|
if (value && typeof value === "object" && !Array.isArray(value)) {
|
|
3611
3664
|
return value;
|
|
@@ -3978,8 +4031,13 @@ var DeeplineClient = class _DeeplineClient {
|
|
|
3978
4031
|
constructor(options) {
|
|
3979
4032
|
this.config = resolveConfig(options);
|
|
3980
4033
|
this.http = new HttpClient(this.config);
|
|
3981
|
-
this.toolCalls = new ToolCalls(
|
|
4034
|
+
this.toolCalls = new ToolCalls(
|
|
4035
|
+
this.http,
|
|
4036
|
+
this.config.timeout,
|
|
4037
|
+
options?.timeout
|
|
4038
|
+
);
|
|
3982
4039
|
this.runs = {
|
|
4040
|
+
getReceipts: (runId, options2) => this.getRunReceipts(runId, options2),
|
|
3983
4041
|
get: (runId, options2) => this.getRunStatus(runId, options2),
|
|
3984
4042
|
status: (runId) => this.getRunLifecycleStatus(runId),
|
|
3985
4043
|
list: (options2) => this.listRuns(options2),
|
|
@@ -3987,6 +4045,7 @@ var DeeplineClient = class _DeeplineClient {
|
|
|
3987
4045
|
watch: (runId, options2) => this.watchRunToTerminal(runId, options2),
|
|
3988
4046
|
tail: (runId, options2) => this.tailRun(runId, options2),
|
|
3989
4047
|
logs: (runId, options2) => this.getRunLogs(runId, options2),
|
|
4048
|
+
searchEvents: (options2) => this.searchRunEvents(options2),
|
|
3990
4049
|
input: (runId) => this.getRunInput(runId),
|
|
3991
4050
|
rerun: (runId, options2) => this.rerun(runId, options2),
|
|
3992
4051
|
exportDatasetRows: (input) => this.getPlaySheetRows(input),
|
|
@@ -4111,13 +4170,9 @@ var DeeplineClient = class _DeeplineClient {
|
|
|
4111
4170
|
const value = schema[key];
|
|
4112
4171
|
return isRecord4(value) ? value : null;
|
|
4113
4172
|
}
|
|
4114
|
-
playRunCommand(play
|
|
4173
|
+
playRunCommand(play) {
|
|
4115
4174
|
const target = play.reference || play.name;
|
|
4116
|
-
|
|
4117
|
-
const inputField = typeof options.csvInput.inputField === "string" && options.csvInput.inputField.trim() ? options.csvInput.inputField.trim() : "csv";
|
|
4118
|
-
return `deepline plays run ${target} --input '${JSON.stringify({ [inputField]: "leads.csv" })}' --watch`;
|
|
4119
|
-
}
|
|
4120
|
-
return `deepline plays run ${target} --input '{...}' --watch`;
|
|
4175
|
+
return `deepline plays run ${target}${playInputExampleArgs(play.inputSchema)} --watch`;
|
|
4121
4176
|
}
|
|
4122
4177
|
starterPlayPath(play) {
|
|
4123
4178
|
const target = play.reference || play.name;
|
|
@@ -4144,7 +4199,7 @@ var DeeplineClient = class _DeeplineClient {
|
|
|
4144
4199
|
"rowOutputSchema"
|
|
4145
4200
|
);
|
|
4146
4201
|
const description = play.description?.trim() || play.currentRevision?.description?.trim() || play.liveRevision?.description?.trim() || null;
|
|
4147
|
-
const runCommand = this.playRunCommand(play
|
|
4202
|
+
const runCommand = this.playRunCommand(play);
|
|
4148
4203
|
const cloneEditStarter = this.playCloneEditStarter(play);
|
|
4149
4204
|
return {
|
|
4150
4205
|
name: play.name,
|
|
@@ -5357,6 +5412,33 @@ var DeeplineClient = class _DeeplineClient {
|
|
|
5357
5412
|
);
|
|
5358
5413
|
return { ...response, runs: response.runs ?? [] };
|
|
5359
5414
|
}
|
|
5415
|
+
/** Read batches rather than silently truncating a long key list. */
|
|
5416
|
+
async getRunReceipts(runId, options) {
|
|
5417
|
+
if (!options.keys.length || options.keys.some(
|
|
5418
|
+
(key) => typeof key !== "string" || !key.trim() || key.length > 2048 || /[\r\n\0]/.test(key)
|
|
5419
|
+
)) {
|
|
5420
|
+
throw Object.assign(
|
|
5421
|
+
new Error(
|
|
5422
|
+
"Supply nonempty receipt keys, at most 2048 characters each."
|
|
5423
|
+
),
|
|
5424
|
+
{ exitCode: 2 }
|
|
5425
|
+
);
|
|
5426
|
+
}
|
|
5427
|
+
const receipts = [];
|
|
5428
|
+
for (let offset = 0; offset < options.keys.length; offset += 100) {
|
|
5429
|
+
const keys = options.keys.slice(offset, offset + 100);
|
|
5430
|
+
const result = await this.http.post(`/api/v2/runs/${encodeURIComponent(runId)}/receipts/results`, { keys });
|
|
5431
|
+
if (result.runId !== runId || result.receipts.length !== keys.length || result.receipts.some(
|
|
5432
|
+
(receipt, index) => receipt.receiptKey !== keys[index]
|
|
5433
|
+
)) {
|
|
5434
|
+
throw new Error(
|
|
5435
|
+
"Receipt response does not match the requested run and keys."
|
|
5436
|
+
);
|
|
5437
|
+
}
|
|
5438
|
+
receipts.push(...result.receipts);
|
|
5439
|
+
}
|
|
5440
|
+
return { runId, receipts };
|
|
5441
|
+
}
|
|
5360
5442
|
/** Get the exact original input retained for a run. This is intentionally separate from status. */
|
|
5361
5443
|
async getRunInput(runId) {
|
|
5362
5444
|
return this.http.get(`/api/v2/runs/${encodeURIComponent(runId)}/input`);
|
|
@@ -5406,7 +5488,8 @@ var DeeplineClient = class _DeeplineClient {
|
|
|
5406
5488
|
const requestedLimit = typeof options.limit === "number" && Number.isFinite(options.limit) && options.limit > 0 ? Math.trunc(options.limit) : RUNS_FAILED_LOG_LIMIT;
|
|
5407
5489
|
const failedLimit = Math.min(RUNS_FAILED_LOG_LIMIT, requestedLimit);
|
|
5408
5490
|
const page = await this.http.get(
|
|
5409
|
-
`/api/v2/runs/${encodeURIComponent(runId)}/logs?view=failed&limit=${failedLimit}
|
|
5491
|
+
`/api/v2/runs/${encodeURIComponent(runId)}/logs?view=failed&limit=${failedLimit}`,
|
|
5492
|
+
{ retryApiErrors: true }
|
|
5410
5493
|
);
|
|
5411
5494
|
return {
|
|
5412
5495
|
runId: page.runId,
|
|
@@ -5428,7 +5511,8 @@ var DeeplineClient = class _DeeplineClient {
|
|
|
5428
5511
|
}
|
|
5429
5512
|
const limit = options?.all ? Number.MAX_SAFE_INTEGER : typeof options?.limit === "number" && Number.isFinite(options.limit) && options.limit > 0 ? Math.trunc(options.limit) : 200;
|
|
5430
5513
|
const fetchPage = (afterSeq2, pageLimit) => this.http.get(
|
|
5431
|
-
`/api/v2/runs/${encodeURIComponent(runId)}/logs?afterSeq=${afterSeq2}&limit=${pageLimit}
|
|
5514
|
+
`/api/v2/runs/${encodeURIComponent(runId)}/logs?afterSeq=${afterSeq2}&limit=${pageLimit}`,
|
|
5515
|
+
{ retryApiErrors: true }
|
|
5432
5516
|
);
|
|
5433
5517
|
const probe = await fetchPage(0, 1);
|
|
5434
5518
|
const lastStoredSeq = probe.lastStoredSeq;
|
|
@@ -5463,6 +5547,42 @@ var DeeplineClient = class _DeeplineClient {
|
|
|
5463
5547
|
...probe.logsTruncated ? { logsTruncated: true } : {}
|
|
5464
5548
|
};
|
|
5465
5549
|
}
|
|
5550
|
+
/** Search bounded, structured runtime history without requiring a run id. */
|
|
5551
|
+
async searchRunEvents(options = {}) {
|
|
5552
|
+
const now = Date.now();
|
|
5553
|
+
const params = new URLSearchParams({
|
|
5554
|
+
since: options.since ?? new Date(now - 60 * 60 * 1e3).toISOString(),
|
|
5555
|
+
until: options.until ?? new Date(now).toISOString()
|
|
5556
|
+
});
|
|
5557
|
+
if (options.runId) params.set("runId", options.runId);
|
|
5558
|
+
if (options.playName) params.set("playName", options.playName);
|
|
5559
|
+
if (options.kind) params.set("kind", options.kind);
|
|
5560
|
+
if (options.jsonpath) params.set("jsonpath", options.jsonpath);
|
|
5561
|
+
if (options.includePayloads) params.set("payloads", "true");
|
|
5562
|
+
if (options.limit !== void 0) params.set("limit", String(options.limit));
|
|
5563
|
+
if (options.cursor) params.set("cursor", options.cursor);
|
|
5564
|
+
let headers;
|
|
5565
|
+
if (options.runtime !== void 0) {
|
|
5566
|
+
const runtime = normalizePlayRuntimeSelection(options.runtime);
|
|
5567
|
+
if (!runtime) {
|
|
5568
|
+
throw new DeeplineError(
|
|
5569
|
+
"runs.searchEvents runtime must be a valid Preview selection.",
|
|
5570
|
+
void 0,
|
|
5571
|
+
"INVALID_RUNTIME_SELECTION"
|
|
5572
|
+
);
|
|
5573
|
+
}
|
|
5574
|
+
params.set("runtime", "preview");
|
|
5575
|
+
params.set("namespace", runtime.namespace);
|
|
5576
|
+
if (runtime.backend) params.set("backend", runtime.backend);
|
|
5577
|
+
headers = runtimeSelectionHeaders(runtime);
|
|
5578
|
+
} else {
|
|
5579
|
+
headers = isolatedCiRuntimeEventReadHeaders();
|
|
5580
|
+
}
|
|
5581
|
+
return this.http.get(
|
|
5582
|
+
`/api/v2/runs/events?${params.toString()}`,
|
|
5583
|
+
{ headers, retryApiErrors: true }
|
|
5584
|
+
);
|
|
5585
|
+
}
|
|
5466
5586
|
/**
|
|
5467
5587
|
* Export persisted runtime-sheet rows for a play dataset/table namespace.
|
|
5468
5588
|
*
|
|
@@ -10242,7 +10362,7 @@ var PLAY_AUTHORING_CLOUD_TYPE_DECLARATIONS = [
|
|
|
10242
10362
|
` runPlay<TOutput = unknown>(key: string, playRef: ${cloudReferenceType("ctx.runPlay.playRef")}, input: ${cloudReferenceType("ctx.runPlay.input")}, options: PlayCallOptions): Promise<TOutput>;`,
|
|
10243
10363
|
" runPlayAsync<TInput extends Record<string, unknown>>(key: string, playRef: PlayReferenceLike<TInput>, input: NoInfer<TInput>, options: PlayAsyncCallOptions): Promise<AsyncPlayRunRef>;",
|
|
10244
10364
|
" runPlayAsync(key: string, playRef: string, input: Record<string, unknown>, options: PlayAsyncCallOptions): Promise<AsyncPlayRunRef>;",
|
|
10245
|
-
" log(message: string, options?: { level?: 'debug' | 'info' | 'warn' | 'error' }): void;",
|
|
10365
|
+
" log(message: string, options?: { level?: 'debug' | 'info' | 'warn' | 'error'; context?: Readonly<Record<string, string | number | boolean>> }): void;",
|
|
10246
10366
|
` sleep(ms: ${cloudReferenceType("ctx.sleep.ms")}): Promise<void>;`,
|
|
10247
10367
|
"}",
|
|
10248
10368
|
"export type DefinePlayConfig<TInput, TOutput extends PlayReturnObject> = { id: string; description?: string; input: PlayInputContract<TInput>; run: (ctx: DeeplinePlayRuntimeContext, input: TInput) => Promise<TOutput>; bindings?: PlayBindings<TInput>; billing?: PlayBindings<TInput>['billing']; runtime?: PlayBindings<TInput>['runtime']; compatibility?: PlayBindings<TInput>['compatibility'] };",
|
package/dist/index.mjs
CHANGED
|
@@ -18,6 +18,31 @@ async function* iterateCursorPages(fetchPage) {
|
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
+
// src/plays/input-example.ts
|
|
22
|
+
function playInputExampleArgs(schema) {
|
|
23
|
+
if (!schema) return " --input '@<input.json>'";
|
|
24
|
+
if (schema.$ref || schema.allOf) return " --input '@<input.json>'";
|
|
25
|
+
const csv = schema.csvInput;
|
|
26
|
+
const csvField = typeof csv?.inputField === "string" ? csv.inputField : null;
|
|
27
|
+
const required = Array.isArray(schema.required) ? schema.required : [];
|
|
28
|
+
const csvOnlyRequired = required.every((key) => key === csvField);
|
|
29
|
+
const alternatives = schema.oneOf ?? schema.anyOf;
|
|
30
|
+
const hasCsvAlternative = Array.isArray(alternatives) && alternatives.some((branch) => {
|
|
31
|
+
if (!branch || typeof branch !== "object") return false;
|
|
32
|
+
const keys = branch.required;
|
|
33
|
+
return Array.isArray(keys) && keys.includes(csvField) && keys.every((key) => key === csvField);
|
|
34
|
+
});
|
|
35
|
+
if (csvField && csvOnlyRequired && (!alternatives || hasCsvAlternative)) {
|
|
36
|
+
if (csvField === "csv") return " --csv '<contacts.csv>'";
|
|
37
|
+
const value = JSON.stringify({ [csvField]: "<contacts.csv>" });
|
|
38
|
+
return ` --input '${value.replace(/'/g, "'\\''")}'`;
|
|
39
|
+
}
|
|
40
|
+
if (Array.isArray(schema.required) && !required.length && !csv && !alternatives) {
|
|
41
|
+
return "";
|
|
42
|
+
}
|
|
43
|
+
return " --input '@<input.json>'";
|
|
44
|
+
}
|
|
45
|
+
|
|
21
46
|
// src/config.ts
|
|
22
47
|
import {
|
|
23
48
|
existsSync,
|
|
@@ -883,8 +908,12 @@ function executionRecoveryError(input) {
|
|
|
883
908
|
var DEEPLINEAGENT_EXECUTE_TIMEOUT_MS = 15 * 60 * 1e3;
|
|
884
909
|
var APIFY_SYNC_DEFAULT_TIMEOUT_MS = 3e5;
|
|
885
910
|
var APIFY_SYNC_RESPONSE_GRACE_MS = 9e4;
|
|
886
|
-
|
|
911
|
+
var JSEARCH_SEARCH_CLIENT_TIMEOUT_MS = 2 * 12e4 + 250 + 15e3;
|
|
912
|
+
function resolveToolExecuteTimeoutMs(toolId, input, configuredRequestTimeoutMs) {
|
|
887
913
|
const normalized = toolId.trim().toLowerCase();
|
|
914
|
+
if (normalized === "openwebninja_jsearch_search") {
|
|
915
|
+
return configuredRequestTimeoutMs ?? JSEARCH_SEARCH_CLIENT_TIMEOUT_MS;
|
|
916
|
+
}
|
|
888
917
|
const lookupTimeoutMs = resolveLookupClientTimeoutMs(normalized);
|
|
889
918
|
if (lookupTimeoutMs !== void 0) return lookupTimeoutMs;
|
|
890
919
|
if (normalized === "apify_run_actor_sync") {
|
|
@@ -953,9 +982,10 @@ function materializeToolExecutionResponse(response) {
|
|
|
953
982
|
};
|
|
954
983
|
}
|
|
955
984
|
var ToolCalls = class {
|
|
956
|
-
constructor(http, defaultRequestTimeoutMs) {
|
|
985
|
+
constructor(http, defaultRequestTimeoutMs, configuredRequestTimeoutMs) {
|
|
957
986
|
this.http = http;
|
|
958
987
|
this.defaultRequestTimeoutMs = defaultRequestTimeoutMs;
|
|
988
|
+
this.configuredRequestTimeoutMs = configuredRequestTimeoutMs;
|
|
959
989
|
}
|
|
960
990
|
async call(toolId, input, options) {
|
|
961
991
|
const inputSnapshot = JSON.parse(JSON.stringify(input));
|
|
@@ -972,7 +1002,11 @@ var ToolCalls = class {
|
|
|
972
1002
|
}
|
|
973
1003
|
await options?.onExecution?.({ idempotencyKey });
|
|
974
1004
|
}
|
|
975
|
-
const timeoutMs = options?.timeout ?? resolveToolExecuteTimeoutMs(
|
|
1005
|
+
const timeoutMs = options?.timeout ?? resolveToolExecuteTimeoutMs(
|
|
1006
|
+
toolId,
|
|
1007
|
+
inputSnapshot,
|
|
1008
|
+
this.configuredRequestTimeoutMs
|
|
1009
|
+
);
|
|
976
1010
|
if (idempotencyKey !== void 0) {
|
|
977
1011
|
await this.lookupExecutionByKey(idempotencyKey, timeoutMs);
|
|
978
1012
|
}
|
|
@@ -1190,7 +1224,7 @@ var SDK_RELEASE = {
|
|
|
1190
1224
|
// getters keep their established compatibility behavior.
|
|
1191
1225
|
// 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
|
|
1192
1226
|
// 0.3.90 is the first deliberately versioned SDK release for API v3.
|
|
1193
|
-
version: "0.3.
|
|
1227
|
+
version: "0.3.249",
|
|
1194
1228
|
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.",
|
|
1195
1229
|
packageCapabilities: {
|
|
1196
1230
|
updatePreferences: 1
|
|
@@ -2579,8 +2613,12 @@ function resolveTimingWindow(input) {
|
|
|
2579
2613
|
// ../play-runtime/run-failure.ts
|
|
2580
2614
|
var PUBLIC_FAILURE_TEXT_BYTE_LIMIT = 64 * 1024;
|
|
2581
2615
|
|
|
2616
|
+
// ../play-runtime/log-context.ts
|
|
2617
|
+
var utf8 = new TextEncoder();
|
|
2618
|
+
|
|
2582
2619
|
// ../play-runtime/run-log-buffer.ts
|
|
2583
2620
|
var RUNNER_LOG_MAX_BYTES = 5 * 1024 * 1024;
|
|
2621
|
+
var RUNNER_LOG_CONTEXT_MAX_BYTES = 128 * 1024;
|
|
2584
2622
|
var TERMINAL_RESERVE_BYTES = 64 * 1024;
|
|
2585
2623
|
var encoder = new TextEncoder();
|
|
2586
2624
|
|
|
@@ -3510,6 +3548,21 @@ function runtimeSelectionHeaders(runtime) {
|
|
|
3510
3548
|
...receivers ? { [RETAINED_PIPELINE_RECEIVERS_HEADER]: receivers } : {}
|
|
3511
3549
|
};
|
|
3512
3550
|
}
|
|
3551
|
+
function isolatedCiRuntimeEventReadHeaders() {
|
|
3552
|
+
const schema = process.env.DEEPLINE_RUNTIME_SCHEDULER_SCHEMA?.trim();
|
|
3553
|
+
if (process.env.DEEPLINE_SYNTHETIC_RUN?.trim() !== "1" || !schema || !/^fly_absurd_pr_\d+_\d+(?:_\d+)?$/.test(schema)) {
|
|
3554
|
+
return void 0;
|
|
3555
|
+
}
|
|
3556
|
+
const token = process.env.DEEPLINE_INTERNAL_TOKEN?.trim();
|
|
3557
|
+
if (!token) {
|
|
3558
|
+
throw new DeeplineError(
|
|
3559
|
+
"DEEPLINE_INTERNAL_TOKEN is required for isolated CI runtime event reads.",
|
|
3560
|
+
void 0,
|
|
3561
|
+
"RUNTIME_EVENT_INTERNAL_TOKEN_REQUIRED"
|
|
3562
|
+
);
|
|
3563
|
+
}
|
|
3564
|
+
return { [COORDINATOR_INTERNAL_TOKEN_HEADER]: token };
|
|
3565
|
+
}
|
|
3513
3566
|
function normalizeTestPolicyOverrides(value, source) {
|
|
3514
3567
|
if (value && typeof value === "object" && !Array.isArray(value)) {
|
|
3515
3568
|
return value;
|
|
@@ -3882,8 +3935,13 @@ var DeeplineClient = class _DeeplineClient {
|
|
|
3882
3935
|
constructor(options) {
|
|
3883
3936
|
this.config = resolveConfig(options);
|
|
3884
3937
|
this.http = new HttpClient(this.config);
|
|
3885
|
-
this.toolCalls = new ToolCalls(
|
|
3938
|
+
this.toolCalls = new ToolCalls(
|
|
3939
|
+
this.http,
|
|
3940
|
+
this.config.timeout,
|
|
3941
|
+
options?.timeout
|
|
3942
|
+
);
|
|
3886
3943
|
this.runs = {
|
|
3944
|
+
getReceipts: (runId, options2) => this.getRunReceipts(runId, options2),
|
|
3887
3945
|
get: (runId, options2) => this.getRunStatus(runId, options2),
|
|
3888
3946
|
status: (runId) => this.getRunLifecycleStatus(runId),
|
|
3889
3947
|
list: (options2) => this.listRuns(options2),
|
|
@@ -3891,6 +3949,7 @@ var DeeplineClient = class _DeeplineClient {
|
|
|
3891
3949
|
watch: (runId, options2) => this.watchRunToTerminal(runId, options2),
|
|
3892
3950
|
tail: (runId, options2) => this.tailRun(runId, options2),
|
|
3893
3951
|
logs: (runId, options2) => this.getRunLogs(runId, options2),
|
|
3952
|
+
searchEvents: (options2) => this.searchRunEvents(options2),
|
|
3894
3953
|
input: (runId) => this.getRunInput(runId),
|
|
3895
3954
|
rerun: (runId, options2) => this.rerun(runId, options2),
|
|
3896
3955
|
exportDatasetRows: (input) => this.getPlaySheetRows(input),
|
|
@@ -4015,13 +4074,9 @@ var DeeplineClient = class _DeeplineClient {
|
|
|
4015
4074
|
const value = schema[key];
|
|
4016
4075
|
return isRecord4(value) ? value : null;
|
|
4017
4076
|
}
|
|
4018
|
-
playRunCommand(play
|
|
4077
|
+
playRunCommand(play) {
|
|
4019
4078
|
const target = play.reference || play.name;
|
|
4020
|
-
|
|
4021
|
-
const inputField = typeof options.csvInput.inputField === "string" && options.csvInput.inputField.trim() ? options.csvInput.inputField.trim() : "csv";
|
|
4022
|
-
return `deepline plays run ${target} --input '${JSON.stringify({ [inputField]: "leads.csv" })}' --watch`;
|
|
4023
|
-
}
|
|
4024
|
-
return `deepline plays run ${target} --input '{...}' --watch`;
|
|
4079
|
+
return `deepline plays run ${target}${playInputExampleArgs(play.inputSchema)} --watch`;
|
|
4025
4080
|
}
|
|
4026
4081
|
starterPlayPath(play) {
|
|
4027
4082
|
const target = play.reference || play.name;
|
|
@@ -4048,7 +4103,7 @@ var DeeplineClient = class _DeeplineClient {
|
|
|
4048
4103
|
"rowOutputSchema"
|
|
4049
4104
|
);
|
|
4050
4105
|
const description = play.description?.trim() || play.currentRevision?.description?.trim() || play.liveRevision?.description?.trim() || null;
|
|
4051
|
-
const runCommand = this.playRunCommand(play
|
|
4106
|
+
const runCommand = this.playRunCommand(play);
|
|
4052
4107
|
const cloneEditStarter = this.playCloneEditStarter(play);
|
|
4053
4108
|
return {
|
|
4054
4109
|
name: play.name,
|
|
@@ -5261,6 +5316,33 @@ var DeeplineClient = class _DeeplineClient {
|
|
|
5261
5316
|
);
|
|
5262
5317
|
return { ...response, runs: response.runs ?? [] };
|
|
5263
5318
|
}
|
|
5319
|
+
/** Read batches rather than silently truncating a long key list. */
|
|
5320
|
+
async getRunReceipts(runId, options) {
|
|
5321
|
+
if (!options.keys.length || options.keys.some(
|
|
5322
|
+
(key) => typeof key !== "string" || !key.trim() || key.length > 2048 || /[\r\n\0]/.test(key)
|
|
5323
|
+
)) {
|
|
5324
|
+
throw Object.assign(
|
|
5325
|
+
new Error(
|
|
5326
|
+
"Supply nonempty receipt keys, at most 2048 characters each."
|
|
5327
|
+
),
|
|
5328
|
+
{ exitCode: 2 }
|
|
5329
|
+
);
|
|
5330
|
+
}
|
|
5331
|
+
const receipts = [];
|
|
5332
|
+
for (let offset = 0; offset < options.keys.length; offset += 100) {
|
|
5333
|
+
const keys = options.keys.slice(offset, offset + 100);
|
|
5334
|
+
const result = await this.http.post(`/api/v2/runs/${encodeURIComponent(runId)}/receipts/results`, { keys });
|
|
5335
|
+
if (result.runId !== runId || result.receipts.length !== keys.length || result.receipts.some(
|
|
5336
|
+
(receipt, index) => receipt.receiptKey !== keys[index]
|
|
5337
|
+
)) {
|
|
5338
|
+
throw new Error(
|
|
5339
|
+
"Receipt response does not match the requested run and keys."
|
|
5340
|
+
);
|
|
5341
|
+
}
|
|
5342
|
+
receipts.push(...result.receipts);
|
|
5343
|
+
}
|
|
5344
|
+
return { runId, receipts };
|
|
5345
|
+
}
|
|
5264
5346
|
/** Get the exact original input retained for a run. This is intentionally separate from status. */
|
|
5265
5347
|
async getRunInput(runId) {
|
|
5266
5348
|
return this.http.get(`/api/v2/runs/${encodeURIComponent(runId)}/input`);
|
|
@@ -5310,7 +5392,8 @@ var DeeplineClient = class _DeeplineClient {
|
|
|
5310
5392
|
const requestedLimit = typeof options.limit === "number" && Number.isFinite(options.limit) && options.limit > 0 ? Math.trunc(options.limit) : RUNS_FAILED_LOG_LIMIT;
|
|
5311
5393
|
const failedLimit = Math.min(RUNS_FAILED_LOG_LIMIT, requestedLimit);
|
|
5312
5394
|
const page = await this.http.get(
|
|
5313
|
-
`/api/v2/runs/${encodeURIComponent(runId)}/logs?view=failed&limit=${failedLimit}
|
|
5395
|
+
`/api/v2/runs/${encodeURIComponent(runId)}/logs?view=failed&limit=${failedLimit}`,
|
|
5396
|
+
{ retryApiErrors: true }
|
|
5314
5397
|
);
|
|
5315
5398
|
return {
|
|
5316
5399
|
runId: page.runId,
|
|
@@ -5332,7 +5415,8 @@ var DeeplineClient = class _DeeplineClient {
|
|
|
5332
5415
|
}
|
|
5333
5416
|
const limit = options?.all ? Number.MAX_SAFE_INTEGER : typeof options?.limit === "number" && Number.isFinite(options.limit) && options.limit > 0 ? Math.trunc(options.limit) : 200;
|
|
5334
5417
|
const fetchPage = (afterSeq2, pageLimit) => this.http.get(
|
|
5335
|
-
`/api/v2/runs/${encodeURIComponent(runId)}/logs?afterSeq=${afterSeq2}&limit=${pageLimit}
|
|
5418
|
+
`/api/v2/runs/${encodeURIComponent(runId)}/logs?afterSeq=${afterSeq2}&limit=${pageLimit}`,
|
|
5419
|
+
{ retryApiErrors: true }
|
|
5336
5420
|
);
|
|
5337
5421
|
const probe = await fetchPage(0, 1);
|
|
5338
5422
|
const lastStoredSeq = probe.lastStoredSeq;
|
|
@@ -5367,6 +5451,42 @@ var DeeplineClient = class _DeeplineClient {
|
|
|
5367
5451
|
...probe.logsTruncated ? { logsTruncated: true } : {}
|
|
5368
5452
|
};
|
|
5369
5453
|
}
|
|
5454
|
+
/** Search bounded, structured runtime history without requiring a run id. */
|
|
5455
|
+
async searchRunEvents(options = {}) {
|
|
5456
|
+
const now = Date.now();
|
|
5457
|
+
const params = new URLSearchParams({
|
|
5458
|
+
since: options.since ?? new Date(now - 60 * 60 * 1e3).toISOString(),
|
|
5459
|
+
until: options.until ?? new Date(now).toISOString()
|
|
5460
|
+
});
|
|
5461
|
+
if (options.runId) params.set("runId", options.runId);
|
|
5462
|
+
if (options.playName) params.set("playName", options.playName);
|
|
5463
|
+
if (options.kind) params.set("kind", options.kind);
|
|
5464
|
+
if (options.jsonpath) params.set("jsonpath", options.jsonpath);
|
|
5465
|
+
if (options.includePayloads) params.set("payloads", "true");
|
|
5466
|
+
if (options.limit !== void 0) params.set("limit", String(options.limit));
|
|
5467
|
+
if (options.cursor) params.set("cursor", options.cursor);
|
|
5468
|
+
let headers;
|
|
5469
|
+
if (options.runtime !== void 0) {
|
|
5470
|
+
const runtime = normalizePlayRuntimeSelection(options.runtime);
|
|
5471
|
+
if (!runtime) {
|
|
5472
|
+
throw new DeeplineError(
|
|
5473
|
+
"runs.searchEvents runtime must be a valid Preview selection.",
|
|
5474
|
+
void 0,
|
|
5475
|
+
"INVALID_RUNTIME_SELECTION"
|
|
5476
|
+
);
|
|
5477
|
+
}
|
|
5478
|
+
params.set("runtime", "preview");
|
|
5479
|
+
params.set("namespace", runtime.namespace);
|
|
5480
|
+
if (runtime.backend) params.set("backend", runtime.backend);
|
|
5481
|
+
headers = runtimeSelectionHeaders(runtime);
|
|
5482
|
+
} else {
|
|
5483
|
+
headers = isolatedCiRuntimeEventReadHeaders();
|
|
5484
|
+
}
|
|
5485
|
+
return this.http.get(
|
|
5486
|
+
`/api/v2/runs/events?${params.toString()}`,
|
|
5487
|
+
{ headers, retryApiErrors: true }
|
|
5488
|
+
);
|
|
5489
|
+
}
|
|
5370
5490
|
/**
|
|
5371
5491
|
* Export persisted runtime-sheet rows for a play dataset/table namespace.
|
|
5372
5492
|
*
|
|
@@ -10146,7 +10266,7 @@ var PLAY_AUTHORING_CLOUD_TYPE_DECLARATIONS = [
|
|
|
10146
10266
|
` runPlay<TOutput = unknown>(key: string, playRef: ${cloudReferenceType("ctx.runPlay.playRef")}, input: ${cloudReferenceType("ctx.runPlay.input")}, options: PlayCallOptions): Promise<TOutput>;`,
|
|
10147
10267
|
" runPlayAsync<TInput extends Record<string, unknown>>(key: string, playRef: PlayReferenceLike<TInput>, input: NoInfer<TInput>, options: PlayAsyncCallOptions): Promise<AsyncPlayRunRef>;",
|
|
10148
10268
|
" runPlayAsync(key: string, playRef: string, input: Record<string, unknown>, options: PlayAsyncCallOptions): Promise<AsyncPlayRunRef>;",
|
|
10149
|
-
" log(message: string, options?: { level?: 'debug' | 'info' | 'warn' | 'error' }): void;",
|
|
10269
|
+
" log(message: string, options?: { level?: 'debug' | 'info' | 'warn' | 'error'; context?: Readonly<Record<string, string | number | boolean>> }): void;",
|
|
10150
10270
|
` sleep(ms: ${cloudReferenceType("ctx.sleep.ms")}): Promise<void>;`,
|
|
10151
10271
|
"}",
|
|
10152
10272
|
"export type DefinePlayConfig<TInput, TOutput extends PlayReturnObject> = { id: string; description?: string; input: PlayInputContract<TInput>; run: (ctx: DeeplinePlayRuntimeContext, input: TInput) => Promise<TOutput>; bindings?: PlayBindings<TInput>; billing?: PlayBindings<TInput>['billing']; runtime?: PlayBindings<TInput>['runtime']; compatibility?: PlayBindings<TInput>['compatibility'] };",
|
|
@@ -18,10 +18,13 @@
|
|
|
18
18
|
"dist/bundling-sources/sdk/src/pagination.ts",
|
|
19
19
|
"dist/bundling-sources/sdk/src/play.ts",
|
|
20
20
|
"dist/bundling-sources/sdk/src/plays/bundle-play-file.ts",
|
|
21
|
+
"dist/bundling-sources/sdk/src/plays/input-example.ts",
|
|
21
22
|
"dist/bundling-sources/sdk/src/plays/local-file-discovery.ts",
|
|
22
23
|
"dist/bundling-sources/sdk/src/release.ts",
|
|
23
24
|
"dist/bundling-sources/sdk/src/runs/observe-transport.ts",
|
|
25
|
+
"dist/bundling-sources/sdk/src/runs/overview.ts",
|
|
24
26
|
"dist/bundling-sources/sdk/src/runs/read-errors.ts",
|
|
27
|
+
"dist/bundling-sources/sdk/src/runs/receipts.ts",
|
|
25
28
|
"dist/bundling-sources/sdk/src/runs/watch-polling.ts",
|
|
26
29
|
"dist/bundling-sources/sdk/src/skills-version.ts",
|
|
27
30
|
"dist/bundling-sources/sdk/src/tool-calls.ts",
|
|
@@ -221,6 +224,7 @@
|
|
|
221
224
|
"dist/bundling-sources/shared_libs/play-runtime/ledger-safe-payload.ts",
|
|
222
225
|
"dist/bundling-sources/shared_libs/play-runtime/live-events.ts",
|
|
223
226
|
"dist/bundling-sources/shared_libs/play-runtime/live-state-contract.ts",
|
|
227
|
+
"dist/bundling-sources/shared_libs/play-runtime/log-context.ts",
|
|
224
228
|
"dist/bundling-sources/shared_libs/play-runtime/log-provenance.ts",
|
|
225
229
|
"dist/bundling-sources/shared_libs/play-runtime/map-chunk-limits.ts",
|
|
226
230
|
"dist/bundling-sources/shared_libs/play-runtime/map-execution-frame.ts",
|
|
@@ -317,7 +321,9 @@
|
|
|
317
321
|
"dist/bundling-sources/shared_libs/play-runtime/runner-app/runtime-progress-push.ts",
|
|
318
322
|
"dist/bundling-sources/shared_libs/play-runtime/runner-app/runtime-sheet-persistence-retry.ts",
|
|
319
323
|
"dist/bundling-sources/shared_libs/play-runtime/runner-app/runtime-terminal-push.ts",
|
|
324
|
+
"dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-control-transport.ts",
|
|
320
325
|
"dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-labels.ts",
|
|
326
|
+
"dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-launch-transport.ts",
|
|
321
327
|
"dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-lifecycle.ts",
|
|
322
328
|
"dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-modal-fallback.ts",
|
|
323
329
|
"dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-payload-transport.ts",
|
|
@@ -409,6 +415,7 @@
|
|
|
409
415
|
"dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/run-terminal-transition.ts",
|
|
410
416
|
"dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runner-push.ts",
|
|
411
417
|
"dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-api-origin.ts",
|
|
418
|
+
"dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-event-search.ts",
|
|
412
419
|
"dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-queue-health.ts",
|
|
413
420
|
"dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-receipt-gateway-health.ts",
|
|
414
421
|
"dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-receipt-value-storage.ts",
|
|
@@ -575,8 +582,8 @@
|
|
|
575
582
|
"dist/cli/index.js",
|
|
576
583
|
"dist/cli/index.mjs",
|
|
577
584
|
"dist/cli/text-imports.d.ts",
|
|
578
|
-
"dist/compiler-manifest-
|
|
579
|
-
"dist/compiler-manifest-
|
|
585
|
+
"dist/compiler-manifest-DavmLa8y.d.mts",
|
|
586
|
+
"dist/compiler-manifest-DavmLa8y.d.ts",
|
|
580
587
|
"dist/helpers.d.mts",
|
|
581
588
|
"dist/helpers.d.ts",
|
|
582
589
|
"dist/helpers.js",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference path="./text-imports.d.ts" />
|
|
2
|
-
import { P as PlayArtifactKind, a as PlayBundleArtifact, b as PlaySandboxRuntimeDeclaration, c as PlayCompilerManifest } from '../compiler-manifest-
|
|
3
|
-
export { d as PLAY_ARTIFACT_KINDS, e as PlayArtifactCompatibility, f as PlayImportPolicy, g as PlayPackageImport, h as PlayRuntimeFeature } from '../compiler-manifest-
|
|
2
|
+
import { P as PlayArtifactKind, a as PlayBundleArtifact, b as PlaySandboxRuntimeDeclaration, c as PlayCompilerManifest } from '../compiler-manifest-DavmLa8y.mjs';
|
|
3
|
+
export { d as PLAY_ARTIFACT_KINDS, e as PlayArtifactCompatibility, f as PlayImportPolicy, g as PlayPackageImport, h as PlayRuntimeFeature } from '../compiler-manifest-DavmLa8y.mjs';
|
|
4
4
|
import '@sinclair/typebox';
|
|
5
5
|
|
|
6
6
|
type ImportedPlayDependency = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference path="./text-imports.d.ts" />
|
|
2
|
-
import { P as PlayArtifactKind, a as PlayBundleArtifact, b as PlaySandboxRuntimeDeclaration, c as PlayCompilerManifest } from '../compiler-manifest-
|
|
3
|
-
export { d as PLAY_ARTIFACT_KINDS, e as PlayArtifactCompatibility, f as PlayImportPolicy, g as PlayPackageImport, h as PlayRuntimeFeature } from '../compiler-manifest-
|
|
2
|
+
import { P as PlayArtifactKind, a as PlayBundleArtifact, b as PlaySandboxRuntimeDeclaration, c as PlayCompilerManifest } from '../compiler-manifest-DavmLa8y.js';
|
|
3
|
+
export { d as PLAY_ARTIFACT_KINDS, e as PlayArtifactCompatibility, f as PlayImportPolicy, g as PlayPackageImport, h as PlayRuntimeFeature } from '../compiler-manifest-DavmLa8y.js';
|
|
4
4
|
import '@sinclair/typebox';
|
|
5
5
|
|
|
6
6
|
type ImportedPlayDependency = {
|
|
@@ -1609,7 +1609,7 @@ var PLAY_AUTHORING_CLOUD_TYPE_DECLARATIONS = [
|
|
|
1609
1609
|
` runPlay<TOutput = unknown>(key: string, playRef: ${cloudReferenceType("ctx.runPlay.playRef")}, input: ${cloudReferenceType("ctx.runPlay.input")}, options: PlayCallOptions): Promise<TOutput>;`,
|
|
1610
1610
|
" runPlayAsync<TInput extends Record<string, unknown>>(key: string, playRef: PlayReferenceLike<TInput>, input: NoInfer<TInput>, options: PlayAsyncCallOptions): Promise<AsyncPlayRunRef>;",
|
|
1611
1611
|
" runPlayAsync(key: string, playRef: string, input: Record<string, unknown>, options: PlayAsyncCallOptions): Promise<AsyncPlayRunRef>;",
|
|
1612
|
-
" log(message: string, options?: { level?: 'debug' | 'info' | 'warn' | 'error' }): void;",
|
|
1612
|
+
" log(message: string, options?: { level?: 'debug' | 'info' | 'warn' | 'error'; context?: Readonly<Record<string, string | number | boolean>> }): void;",
|
|
1613
1613
|
` sleep(ms: ${cloudReferenceType("ctx.sleep.ms")}): Promise<void>;`,
|
|
1614
1614
|
"}",
|
|
1615
1615
|
"export type DefinePlayConfig<TInput, TOutput extends PlayReturnObject> = { id: string; description?: string; input: PlayInputContract<TInput>; run: (ctx: DeeplinePlayRuntimeContext, input: TInput) => Promise<TOutput>; bindings?: PlayBindings<TInput>; billing?: PlayBindings<TInput>['billing']; runtime?: PlayBindings<TInput>['runtime']; compatibility?: PlayBindings<TInput>['compatibility'] };",
|
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.249";
|
|
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.249";
|
|
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.249",
|
|
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.249",
|
|
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
|