deepline 0.2.67 → 0.2.68
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 +9 -0
- package/dist/bundling-sources/sdk/src/compat.ts +9 -0
- package/dist/bundling-sources/sdk/src/release.ts +32 -1
- package/dist/bundling-sources/sdk/src/types.ts +13 -0
- package/dist/bundling-sources/shared_libs/plays/authoring-contract.ts +97 -0
- package/dist/cli/index.js +5834 -5748
- package/dist/cli/index.mjs +5835 -5749
- package/dist/{compiler-manifest-CrAB1ffd.d.mts → compiler-manifest-DFBtSjB2.d.mts} +55 -0
- package/dist/{compiler-manifest-CrAB1ffd.d.ts → compiler-manifest-DFBtSjB2.d.ts} +55 -0
- package/dist/index.d.mts +15 -2
- package/dist/index.d.ts +15 -2
- package/dist/index.js +17 -1
- package/dist/index.mjs +17 -1
- package/dist/install-integrity.json +2 -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 +18 -1
- package/package.json +1 -1
|
@@ -1135,19 +1135,44 @@ type PlaySqlQuery = {
|
|
|
1135
1135
|
readonly values: readonly unknown[];
|
|
1136
1136
|
};
|
|
1137
1137
|
declare const PLAY_SECRET_HANDLE_BRAND: unique symbol;
|
|
1138
|
+
/**
|
|
1139
|
+
* An opaque reference to a workspace secret, returned by `ctx.secrets.get`. The handle never carries the value into play code: it stringifies to `[secret:NAME]` and throws on `JSON.stringify`, so a secret cannot reach a play variable, a log line, a dataset cell, or a replay artifact even by accident. Only the runtime resolves it, at the moment it attaches the request header.
|
|
1140
|
+
*
|
|
1141
|
+
* @sdkReference runtime 176 SecretHandle
|
|
1142
|
+
*/
|
|
1138
1143
|
type PlaySecretHandle = {
|
|
1139
1144
|
readonly [PLAY_SECRET_HANDLE_BRAND]: never;
|
|
1145
|
+
/** Name of the workspace secret, uppercased. Never its value. */
|
|
1140
1146
|
readonly name: string;
|
|
1147
|
+
/** Renders `[secret:NAME]`, so an interpolated handle leaks nothing. */
|
|
1141
1148
|
toString(): string;
|
|
1149
|
+
/** Always throws. A secret handle is deliberately not serializable. */
|
|
1142
1150
|
toJSON(): never;
|
|
1143
1151
|
};
|
|
1152
|
+
/**
|
|
1153
|
+
* One resolved authentication scheme, built by `ctx.secrets.bearer` or `ctx.secrets.header` and attached to a request through `init.auth`.
|
|
1154
|
+
*
|
|
1155
|
+
* @sdkReference runtime 177 SecretAuth
|
|
1156
|
+
*/
|
|
1144
1157
|
type PlaySecretAuth = {
|
|
1158
|
+
/** `bearer` sends `Authorization: Bearer <value>`; `header` sends a named header. */
|
|
1145
1159
|
readonly kind: 'bearer' | 'header';
|
|
1160
|
+
/** The handle whose value the runtime attaches. */
|
|
1146
1161
|
readonly secret: PlaySecretHandle;
|
|
1162
|
+
/** Header name, set only when `kind` is `header`. */
|
|
1147
1163
|
readonly header?: string;
|
|
1148
1164
|
};
|
|
1165
|
+
/**
|
|
1166
|
+
* The `init` accepted by `ctx.fetch`. Same shape as `RequestInit` plus `auth`.
|
|
1167
|
+
*
|
|
1168
|
+
* @sdkReference runtime 174 SecretAwareRequestInit
|
|
1169
|
+
*/
|
|
1149
1170
|
type PlaySecretAwareRequestInit = Omit<RequestInit, 'headers'> & {
|
|
1171
|
+
/** Ordinary request headers, recorded in the durable receipt. Never interpolate a secret value here — use `auth`. */
|
|
1150
1172
|
headers?: HeadersInit;
|
|
1173
|
+
/**
|
|
1174
|
+
* The single authenticated header for this request. One value, not a list: exactly one `ctx.secrets` auth attaches per `ctx.fetch`. An API wanting two credentialed headers at once — Supabase with both `apikey` and `Authorization` — cannot express both. Put the must-stay-secret credential in `auth`; pass a genuinely non-secret second value in `headers`. If both are secret, the request needs a server-side proxy holding one of them.
|
|
1175
|
+
*/
|
|
1151
1176
|
auth?: PlaySecretAuth;
|
|
1152
1177
|
};
|
|
1153
1178
|
type PlayLooseObject = {
|
|
@@ -1324,13 +1349,27 @@ type PlayAuthoringRuntimeStepOptions = {
|
|
|
1324
1349
|
type PlayAuthoringFetchOptions = {
|
|
1325
1350
|
staleAfterSeconds?: DurableCallStaleAfterSeconds;
|
|
1326
1351
|
};
|
|
1352
|
+
/**
|
|
1353
|
+
* The value `ctx.fetch(...)` resolves to: a plain durable record, not a WHATWG `Response`. The body is read once at request time so the call can be checkpointed and replayed, so `bodyText` and `json` are already-materialized properties. There is no `.json()`, `.text()`, or `.body` to await — `await res.json()` is a type error, not a typing problem.
|
|
1354
|
+
*
|
|
1355
|
+
* @sdkReference runtime 175 PlayFetchResponse
|
|
1356
|
+
*/
|
|
1327
1357
|
type PlayAuthoringFetchResponse = {
|
|
1358
|
+
/** True when the response status is in the 2xx range. */
|
|
1328
1359
|
ok: boolean;
|
|
1360
|
+
/** HTTP status code as returned by the upstream server. */
|
|
1329
1361
|
status: number;
|
|
1362
|
+
/** HTTP status text as returned by the upstream server. */
|
|
1330
1363
|
statusText: string;
|
|
1364
|
+
/** Final response URL after any redirects. */
|
|
1331
1365
|
url: string;
|
|
1366
|
+
/** Response headers, lowercased, with any known secret values redacted. */
|
|
1332
1367
|
headers: Record<string, string>;
|
|
1368
|
+
/** Full response body as text, with any known secret values redacted. */
|
|
1333
1369
|
bodyText: string;
|
|
1370
|
+
/**
|
|
1371
|
+
* The parsed body, eagerly decoded at request time. Read it as a property — `const body = res.json`, never `await res.json()`. Null when the body is empty AND when it is not valid JSON: a malformed payload is reported as null rather than thrown, so check `res.ok` and fall back to `res.bodyText` before treating null as an empty result.
|
|
1372
|
+
*/
|
|
1334
1373
|
json: unknown | null;
|
|
1335
1374
|
};
|
|
1336
1375
|
type PlayAuthoringCustomerDbQueryOptions = {
|
|
@@ -1400,8 +1439,23 @@ interface PlayAuthoringRuntimeContext {
|
|
|
1400
1439
|
*/
|
|
1401
1440
|
fetch(key: string, url: string | URL, init?: PlaySecretAwareRequestInit, options?: PlayAuthoringFetchOptions): Promise<PlayAuthoringFetchResponse>;
|
|
1402
1441
|
secrets: {
|
|
1442
|
+
/**
|
|
1443
|
+
* Reference a workspace secret by name without reading its value. This is the only supported way to authenticate an outbound request from a Play: `process.env.X` is rejected at check time because an env read puts the raw value in a play variable, where it can reach a log line or a replay artifact. A handle cannot — pass it to `bearer` or `header` and the runtime resolves it only while attaching the header. Names are uppercased; manage stored values with `deepline secrets set` / `deepline secrets list`.
|
|
1444
|
+
*
|
|
1445
|
+
* @sdkReference runtime 171 ctx.secrets.get(name)
|
|
1446
|
+
*/
|
|
1403
1447
|
get(name: string): PlaySecretHandle;
|
|
1448
|
+
/**
|
|
1449
|
+
* Send the secret as `Authorization: Bearer <value>`.
|
|
1450
|
+
*
|
|
1451
|
+
* @sdkReference runtime 172 ctx.secrets.bearer(secret)
|
|
1452
|
+
*/
|
|
1404
1453
|
bearer(secret: PlaySecretHandle): PlaySecretAuth;
|
|
1454
|
+
/**
|
|
1455
|
+
* Send the secret as a named header, for APIs that do not use bearer tokens — `x-api-key`, `apikey`, `private-token`, and similar.
|
|
1456
|
+
*
|
|
1457
|
+
* @sdkReference runtime 173 ctx.secrets.header(header, secret)
|
|
1458
|
+
*/
|
|
1405
1459
|
header(header: string, secret: PlaySecretHandle): PlaySecretAuth;
|
|
1406
1460
|
};
|
|
1407
1461
|
/**
|
|
@@ -2344,6 +2398,7 @@ declare const PLAY_AUTHORING_FIELD_REGISTRY: {
|
|
|
2344
2398
|
readonly issueCode: "play_authoring_durable_policy_invalid";
|
|
2345
2399
|
readonly description: "Stable durable identity for one external HTTP request.";
|
|
2346
2400
|
readonly errorMessage: "ctx.fetch key must be a non-empty static string.";
|
|
2401
|
+
readonly unresolvedHint: "Push the aggregation server-side and call it once: a SQL function, a view, or a provider endpoint that returns the whole result. Keep unrolled literal keys only for a handful of genuinely distinct calls. To fan out over rows, use ctx.dataset with a static key — the per-row receipt identity comes from the row, not from the key. Do not compute the key.";
|
|
2347
2402
|
};
|
|
2348
2403
|
readonly 'ctx.fetch.staleAfterSeconds': {
|
|
2349
2404
|
readonly schema: _sinclair_typebox.TUnion<[_sinclair_typebox.TNull, _sinclair_typebox.TInteger]>;
|
|
@@ -1135,19 +1135,44 @@ type PlaySqlQuery = {
|
|
|
1135
1135
|
readonly values: readonly unknown[];
|
|
1136
1136
|
};
|
|
1137
1137
|
declare const PLAY_SECRET_HANDLE_BRAND: unique symbol;
|
|
1138
|
+
/**
|
|
1139
|
+
* An opaque reference to a workspace secret, returned by `ctx.secrets.get`. The handle never carries the value into play code: it stringifies to `[secret:NAME]` and throws on `JSON.stringify`, so a secret cannot reach a play variable, a log line, a dataset cell, or a replay artifact even by accident. Only the runtime resolves it, at the moment it attaches the request header.
|
|
1140
|
+
*
|
|
1141
|
+
* @sdkReference runtime 176 SecretHandle
|
|
1142
|
+
*/
|
|
1138
1143
|
type PlaySecretHandle = {
|
|
1139
1144
|
readonly [PLAY_SECRET_HANDLE_BRAND]: never;
|
|
1145
|
+
/** Name of the workspace secret, uppercased. Never its value. */
|
|
1140
1146
|
readonly name: string;
|
|
1147
|
+
/** Renders `[secret:NAME]`, so an interpolated handle leaks nothing. */
|
|
1141
1148
|
toString(): string;
|
|
1149
|
+
/** Always throws. A secret handle is deliberately not serializable. */
|
|
1142
1150
|
toJSON(): never;
|
|
1143
1151
|
};
|
|
1152
|
+
/**
|
|
1153
|
+
* One resolved authentication scheme, built by `ctx.secrets.bearer` or `ctx.secrets.header` and attached to a request through `init.auth`.
|
|
1154
|
+
*
|
|
1155
|
+
* @sdkReference runtime 177 SecretAuth
|
|
1156
|
+
*/
|
|
1144
1157
|
type PlaySecretAuth = {
|
|
1158
|
+
/** `bearer` sends `Authorization: Bearer <value>`; `header` sends a named header. */
|
|
1145
1159
|
readonly kind: 'bearer' | 'header';
|
|
1160
|
+
/** The handle whose value the runtime attaches. */
|
|
1146
1161
|
readonly secret: PlaySecretHandle;
|
|
1162
|
+
/** Header name, set only when `kind` is `header`. */
|
|
1147
1163
|
readonly header?: string;
|
|
1148
1164
|
};
|
|
1165
|
+
/**
|
|
1166
|
+
* The `init` accepted by `ctx.fetch`. Same shape as `RequestInit` plus `auth`.
|
|
1167
|
+
*
|
|
1168
|
+
* @sdkReference runtime 174 SecretAwareRequestInit
|
|
1169
|
+
*/
|
|
1149
1170
|
type PlaySecretAwareRequestInit = Omit<RequestInit, 'headers'> & {
|
|
1171
|
+
/** Ordinary request headers, recorded in the durable receipt. Never interpolate a secret value here — use `auth`. */
|
|
1150
1172
|
headers?: HeadersInit;
|
|
1173
|
+
/**
|
|
1174
|
+
* The single authenticated header for this request. One value, not a list: exactly one `ctx.secrets` auth attaches per `ctx.fetch`. An API wanting two credentialed headers at once — Supabase with both `apikey` and `Authorization` — cannot express both. Put the must-stay-secret credential in `auth`; pass a genuinely non-secret second value in `headers`. If both are secret, the request needs a server-side proxy holding one of them.
|
|
1175
|
+
*/
|
|
1151
1176
|
auth?: PlaySecretAuth;
|
|
1152
1177
|
};
|
|
1153
1178
|
type PlayLooseObject = {
|
|
@@ -1324,13 +1349,27 @@ type PlayAuthoringRuntimeStepOptions = {
|
|
|
1324
1349
|
type PlayAuthoringFetchOptions = {
|
|
1325
1350
|
staleAfterSeconds?: DurableCallStaleAfterSeconds;
|
|
1326
1351
|
};
|
|
1352
|
+
/**
|
|
1353
|
+
* The value `ctx.fetch(...)` resolves to: a plain durable record, not a WHATWG `Response`. The body is read once at request time so the call can be checkpointed and replayed, so `bodyText` and `json` are already-materialized properties. There is no `.json()`, `.text()`, or `.body` to await — `await res.json()` is a type error, not a typing problem.
|
|
1354
|
+
*
|
|
1355
|
+
* @sdkReference runtime 175 PlayFetchResponse
|
|
1356
|
+
*/
|
|
1327
1357
|
type PlayAuthoringFetchResponse = {
|
|
1358
|
+
/** True when the response status is in the 2xx range. */
|
|
1328
1359
|
ok: boolean;
|
|
1360
|
+
/** HTTP status code as returned by the upstream server. */
|
|
1329
1361
|
status: number;
|
|
1362
|
+
/** HTTP status text as returned by the upstream server. */
|
|
1330
1363
|
statusText: string;
|
|
1364
|
+
/** Final response URL after any redirects. */
|
|
1331
1365
|
url: string;
|
|
1366
|
+
/** Response headers, lowercased, with any known secret values redacted. */
|
|
1332
1367
|
headers: Record<string, string>;
|
|
1368
|
+
/** Full response body as text, with any known secret values redacted. */
|
|
1333
1369
|
bodyText: string;
|
|
1370
|
+
/**
|
|
1371
|
+
* The parsed body, eagerly decoded at request time. Read it as a property — `const body = res.json`, never `await res.json()`. Null when the body is empty AND when it is not valid JSON: a malformed payload is reported as null rather than thrown, so check `res.ok` and fall back to `res.bodyText` before treating null as an empty result.
|
|
1372
|
+
*/
|
|
1334
1373
|
json: unknown | null;
|
|
1335
1374
|
};
|
|
1336
1375
|
type PlayAuthoringCustomerDbQueryOptions = {
|
|
@@ -1400,8 +1439,23 @@ interface PlayAuthoringRuntimeContext {
|
|
|
1400
1439
|
*/
|
|
1401
1440
|
fetch(key: string, url: string | URL, init?: PlaySecretAwareRequestInit, options?: PlayAuthoringFetchOptions): Promise<PlayAuthoringFetchResponse>;
|
|
1402
1441
|
secrets: {
|
|
1442
|
+
/**
|
|
1443
|
+
* Reference a workspace secret by name without reading its value. This is the only supported way to authenticate an outbound request from a Play: `process.env.X` is rejected at check time because an env read puts the raw value in a play variable, where it can reach a log line or a replay artifact. A handle cannot — pass it to `bearer` or `header` and the runtime resolves it only while attaching the header. Names are uppercased; manage stored values with `deepline secrets set` / `deepline secrets list`.
|
|
1444
|
+
*
|
|
1445
|
+
* @sdkReference runtime 171 ctx.secrets.get(name)
|
|
1446
|
+
*/
|
|
1403
1447
|
get(name: string): PlaySecretHandle;
|
|
1448
|
+
/**
|
|
1449
|
+
* Send the secret as `Authorization: Bearer <value>`.
|
|
1450
|
+
*
|
|
1451
|
+
* @sdkReference runtime 172 ctx.secrets.bearer(secret)
|
|
1452
|
+
*/
|
|
1404
1453
|
bearer(secret: PlaySecretHandle): PlaySecretAuth;
|
|
1454
|
+
/**
|
|
1455
|
+
* Send the secret as a named header, for APIs that do not use bearer tokens — `x-api-key`, `apikey`, `private-token`, and similar.
|
|
1456
|
+
*
|
|
1457
|
+
* @sdkReference runtime 173 ctx.secrets.header(header, secret)
|
|
1458
|
+
*/
|
|
1405
1459
|
header(header: string, secret: PlaySecretHandle): PlaySecretAuth;
|
|
1406
1460
|
};
|
|
1407
1461
|
/**
|
|
@@ -2344,6 +2398,7 @@ declare const PLAY_AUTHORING_FIELD_REGISTRY: {
|
|
|
2344
2398
|
readonly issueCode: "play_authoring_durable_policy_invalid";
|
|
2345
2399
|
readonly description: "Stable durable identity for one external HTTP request.";
|
|
2346
2400
|
readonly errorMessage: "ctx.fetch key must be a non-empty static string.";
|
|
2401
|
+
readonly unresolvedHint: "Push the aggregation server-side and call it once: a SQL function, a view, or a provider endpoint that returns the whole result. Keep unrolled literal keys only for a handful of genuinely distinct calls. To fan out over rows, use ctx.dataset with a static key — the per-row receipt identity comes from the row, not from the key. Do not compute the key.";
|
|
2347
2402
|
};
|
|
2348
2403
|
readonly 'ctx.fetch.staleAfterSeconds': {
|
|
2349
2404
|
readonly schema: _sinclair_typebox.TUnion<[_sinclair_typebox.TNull, _sinclair_typebox.TInteger]>;
|
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { e as PlayRuntimeBackendId, c as PlayCompilerManifest, D as DeeplineError, f as ToolExecutionError, g as ToolExecutionErrorOptions, h as PlayAuthoringColumnMap, i as PlayAuthoringColumnResolver, j as PlayAuthoringRuntimeContext, k as PlayAuthoringConditionalStepResolver, l as PlayAuthoringCsvInput, m as PlayAuthoringCsvOptions, n as PlayAuthoringDatasetBuilder, o as PlayAuthoringDatasetColumnDefinition, p as PlayAuthoringDatasetColumnRunInput, q as ToolExecuteResult, r as PlayAuthoringReferenceLike, s as PlayReturnObject$1, t as PlayAuthoringDefineConfig, u as PlayAuthoringDefinedPlay, v as PlayAuthoringFetchOptions, w as PlayAuthoringFileInput, x as PlayAuthoringBindings, y as PlayAuthoringCallExecution, z as PlayAuthoringCallOptions, A as PlayAuthoringFetchResponse, B as PlayAuthoringInputContract, C as PlayAuthoringStepProgramStep, E as PlayAuthoringRuntimeStepOptions, F as PlaySqlListenerDeclaration, G as PlaySqlListenerEvent, H as PlaySqlListenerOperation, I as PlaySqlQuery, J as PlayAuthoringStepOptions, K as PlayAuthoringStepProgram, L as PlayAuthoringStepProgramResolver, M as PlayAuthoringStepResolver, N as PlayToolExecutionRequest, O as PlayAuthoringStepProgramOptions } from './compiler-manifest-
|
|
2
|
-
export { Q as DEEPLINE_EXTRACTOR_TARGETS, R as DEEPLINE_EXTRACTOR_TARGET_DEFINITIONS, S as DeeplineEmailStatusGetterValue, U as DeeplineExtractorTarget, V as DeeplineGetterValue, W as DeeplineGetterValueMap, X as JOB_CHANGE_STATUS_VALUES, Y as JobChangeStatus, Z as PHONE_STATUS_VALUES, _ as PhoneStatus, $ as PlayDataset, a0 as PlayDatasetInput, a1 as PreviousCell, a2 as ProviderTransientError, a3 as ProviderTransientErrorCategory, a4 as ProviderUnavailableError, a5 as ProviderUnavailableReason, a6 as ToolExecutionErrorCategory, a7 as ToolExecutionErrorOrigin, a8 as ToolExecutionFailureV1, a9 as ToolExecutionNetworkKind, aa as ToolExecutionNetworkScope, ab as getProviderUnavailableReason, ac as isDeeplineExtractorTarget, ad as isProviderUnavailable, ae as isProviderWaterfallUnavailableError } from './compiler-manifest-
|
|
1
|
+
import { e as PlayRuntimeBackendId, c as PlayCompilerManifest, D as DeeplineError, f as ToolExecutionError, g as ToolExecutionErrorOptions, h as PlayAuthoringColumnMap, i as PlayAuthoringColumnResolver, j as PlayAuthoringRuntimeContext, k as PlayAuthoringConditionalStepResolver, l as PlayAuthoringCsvInput, m as PlayAuthoringCsvOptions, n as PlayAuthoringDatasetBuilder, o as PlayAuthoringDatasetColumnDefinition, p as PlayAuthoringDatasetColumnRunInput, q as ToolExecuteResult, r as PlayAuthoringReferenceLike, s as PlayReturnObject$1, t as PlayAuthoringDefineConfig, u as PlayAuthoringDefinedPlay, v as PlayAuthoringFetchOptions, w as PlayAuthoringFileInput, x as PlayAuthoringBindings, y as PlayAuthoringCallExecution, z as PlayAuthoringCallOptions, A as PlayAuthoringFetchResponse, B as PlayAuthoringInputContract, C as PlayAuthoringStepProgramStep, E as PlayAuthoringRuntimeStepOptions, F as PlaySqlListenerDeclaration, G as PlaySqlListenerEvent, H as PlaySqlListenerOperation, I as PlaySqlQuery, J as PlayAuthoringStepOptions, K as PlayAuthoringStepProgram, L as PlayAuthoringStepProgramResolver, M as PlayAuthoringStepResolver, N as PlayToolExecutionRequest, O as PlayAuthoringStepProgramOptions } from './compiler-manifest-DFBtSjB2.mjs';
|
|
2
|
+
export { Q as DEEPLINE_EXTRACTOR_TARGETS, R as DEEPLINE_EXTRACTOR_TARGET_DEFINITIONS, S as DeeplineEmailStatusGetterValue, U as DeeplineExtractorTarget, V as DeeplineGetterValue, W as DeeplineGetterValueMap, X as JOB_CHANGE_STATUS_VALUES, Y as JobChangeStatus, Z as PHONE_STATUS_VALUES, _ as PhoneStatus, $ as PlayDataset, a0 as PlayDatasetInput, a1 as PreviousCell, a2 as ProviderTransientError, a3 as ProviderTransientErrorCategory, a4 as ProviderUnavailableError, a5 as ProviderUnavailableReason, a6 as ToolExecutionErrorCategory, a7 as ToolExecutionErrorOrigin, a8 as ToolExecutionFailureV1, a9 as ToolExecutionNetworkKind, aa as ToolExecutionNetworkScope, ab as getProviderUnavailableReason, ac as isDeeplineExtractorTarget, ad as isProviderUnavailable, ae as isProviderWaterfallUnavailableError } from './compiler-manifest-DFBtSjB2.mjs';
|
|
3
3
|
import '@sinclair/typebox';
|
|
4
4
|
|
|
5
5
|
declare const FIXTURE_BEHAVIOR_VERSION: 1;
|
|
@@ -1235,6 +1235,8 @@ interface ProductNotification {
|
|
|
1235
1235
|
}
|
|
1236
1236
|
interface PlayDescription {
|
|
1237
1237
|
name: string;
|
|
1238
|
+
/** Stable registry key. Same value `plays list` reports for this play. */
|
|
1239
|
+
playKey?: string;
|
|
1238
1240
|
reference?: string;
|
|
1239
1241
|
displayName?: string;
|
|
1240
1242
|
description?: string | null;
|
|
@@ -1256,6 +1258,17 @@ interface PlayDescription {
|
|
|
1256
1258
|
checkCommand: string;
|
|
1257
1259
|
};
|
|
1258
1260
|
currentPublishedVersion?: number | null;
|
|
1261
|
+
/**
|
|
1262
|
+
* Version currently serving runs by name, from the live revision. Null when
|
|
1263
|
+
* the play has never been published.
|
|
1264
|
+
*/
|
|
1265
|
+
liveVersion?: number | null;
|
|
1266
|
+
/** Whether this play's cron and webhook triggers are armed. */
|
|
1267
|
+
triggerStatus?: {
|
|
1268
|
+
cron: string | null;
|
|
1269
|
+
webhook: string | null;
|
|
1270
|
+
blockedReason: string | null;
|
|
1271
|
+
};
|
|
1259
1272
|
isDraftDirty?: boolean;
|
|
1260
1273
|
latestRunId?: string | null;
|
|
1261
1274
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { e as PlayRuntimeBackendId, c as PlayCompilerManifest, D as DeeplineError, f as ToolExecutionError, g as ToolExecutionErrorOptions, h as PlayAuthoringColumnMap, i as PlayAuthoringColumnResolver, j as PlayAuthoringRuntimeContext, k as PlayAuthoringConditionalStepResolver, l as PlayAuthoringCsvInput, m as PlayAuthoringCsvOptions, n as PlayAuthoringDatasetBuilder, o as PlayAuthoringDatasetColumnDefinition, p as PlayAuthoringDatasetColumnRunInput, q as ToolExecuteResult, r as PlayAuthoringReferenceLike, s as PlayReturnObject$1, t as PlayAuthoringDefineConfig, u as PlayAuthoringDefinedPlay, v as PlayAuthoringFetchOptions, w as PlayAuthoringFileInput, x as PlayAuthoringBindings, y as PlayAuthoringCallExecution, z as PlayAuthoringCallOptions, A as PlayAuthoringFetchResponse, B as PlayAuthoringInputContract, C as PlayAuthoringStepProgramStep, E as PlayAuthoringRuntimeStepOptions, F as PlaySqlListenerDeclaration, G as PlaySqlListenerEvent, H as PlaySqlListenerOperation, I as PlaySqlQuery, J as PlayAuthoringStepOptions, K as PlayAuthoringStepProgram, L as PlayAuthoringStepProgramResolver, M as PlayAuthoringStepResolver, N as PlayToolExecutionRequest, O as PlayAuthoringStepProgramOptions } from './compiler-manifest-
|
|
2
|
-
export { Q as DEEPLINE_EXTRACTOR_TARGETS, R as DEEPLINE_EXTRACTOR_TARGET_DEFINITIONS, S as DeeplineEmailStatusGetterValue, U as DeeplineExtractorTarget, V as DeeplineGetterValue, W as DeeplineGetterValueMap, X as JOB_CHANGE_STATUS_VALUES, Y as JobChangeStatus, Z as PHONE_STATUS_VALUES, _ as PhoneStatus, $ as PlayDataset, a0 as PlayDatasetInput, a1 as PreviousCell, a2 as ProviderTransientError, a3 as ProviderTransientErrorCategory, a4 as ProviderUnavailableError, a5 as ProviderUnavailableReason, a6 as ToolExecutionErrorCategory, a7 as ToolExecutionErrorOrigin, a8 as ToolExecutionFailureV1, a9 as ToolExecutionNetworkKind, aa as ToolExecutionNetworkScope, ab as getProviderUnavailableReason, ac as isDeeplineExtractorTarget, ad as isProviderUnavailable, ae as isProviderWaterfallUnavailableError } from './compiler-manifest-
|
|
1
|
+
import { e as PlayRuntimeBackendId, c as PlayCompilerManifest, D as DeeplineError, f as ToolExecutionError, g as ToolExecutionErrorOptions, h as PlayAuthoringColumnMap, i as PlayAuthoringColumnResolver, j as PlayAuthoringRuntimeContext, k as PlayAuthoringConditionalStepResolver, l as PlayAuthoringCsvInput, m as PlayAuthoringCsvOptions, n as PlayAuthoringDatasetBuilder, o as PlayAuthoringDatasetColumnDefinition, p as PlayAuthoringDatasetColumnRunInput, q as ToolExecuteResult, r as PlayAuthoringReferenceLike, s as PlayReturnObject$1, t as PlayAuthoringDefineConfig, u as PlayAuthoringDefinedPlay, v as PlayAuthoringFetchOptions, w as PlayAuthoringFileInput, x as PlayAuthoringBindings, y as PlayAuthoringCallExecution, z as PlayAuthoringCallOptions, A as PlayAuthoringFetchResponse, B as PlayAuthoringInputContract, C as PlayAuthoringStepProgramStep, E as PlayAuthoringRuntimeStepOptions, F as PlaySqlListenerDeclaration, G as PlaySqlListenerEvent, H as PlaySqlListenerOperation, I as PlaySqlQuery, J as PlayAuthoringStepOptions, K as PlayAuthoringStepProgram, L as PlayAuthoringStepProgramResolver, M as PlayAuthoringStepResolver, N as PlayToolExecutionRequest, O as PlayAuthoringStepProgramOptions } from './compiler-manifest-DFBtSjB2.js';
|
|
2
|
+
export { Q as DEEPLINE_EXTRACTOR_TARGETS, R as DEEPLINE_EXTRACTOR_TARGET_DEFINITIONS, S as DeeplineEmailStatusGetterValue, U as DeeplineExtractorTarget, V as DeeplineGetterValue, W as DeeplineGetterValueMap, X as JOB_CHANGE_STATUS_VALUES, Y as JobChangeStatus, Z as PHONE_STATUS_VALUES, _ as PhoneStatus, $ as PlayDataset, a0 as PlayDatasetInput, a1 as PreviousCell, a2 as ProviderTransientError, a3 as ProviderTransientErrorCategory, a4 as ProviderUnavailableError, a5 as ProviderUnavailableReason, a6 as ToolExecutionErrorCategory, a7 as ToolExecutionErrorOrigin, a8 as ToolExecutionFailureV1, a9 as ToolExecutionNetworkKind, aa as ToolExecutionNetworkScope, ab as getProviderUnavailableReason, ac as isDeeplineExtractorTarget, ad as isProviderUnavailable, ae as isProviderWaterfallUnavailableError } from './compiler-manifest-DFBtSjB2.js';
|
|
3
3
|
import '@sinclair/typebox';
|
|
4
4
|
|
|
5
5
|
declare const FIXTURE_BEHAVIOR_VERSION: 1;
|
|
@@ -1235,6 +1235,8 @@ interface ProductNotification {
|
|
|
1235
1235
|
}
|
|
1236
1236
|
interface PlayDescription {
|
|
1237
1237
|
name: string;
|
|
1238
|
+
/** Stable registry key. Same value `plays list` reports for this play. */
|
|
1239
|
+
playKey?: string;
|
|
1238
1240
|
reference?: string;
|
|
1239
1241
|
displayName?: string;
|
|
1240
1242
|
description?: string | null;
|
|
@@ -1256,6 +1258,17 @@ interface PlayDescription {
|
|
|
1256
1258
|
checkCommand: string;
|
|
1257
1259
|
};
|
|
1258
1260
|
currentPublishedVersion?: number | null;
|
|
1261
|
+
/**
|
|
1262
|
+
* Version currently serving runs by name, from the live revision. Null when
|
|
1263
|
+
* the play has never been published.
|
|
1264
|
+
*/
|
|
1265
|
+
liveVersion?: number | null;
|
|
1266
|
+
/** Whether this play's cron and webhook triggers are armed. */
|
|
1267
|
+
triggerStatus?: {
|
|
1268
|
+
cron: string | null;
|
|
1269
|
+
webhook: string | null;
|
|
1270
|
+
blockedReason: string | null;
|
|
1271
|
+
};
|
|
1259
1272
|
isDraftDirty?: boolean;
|
|
1260
1273
|
latestRunId?: string | null;
|
|
1261
1274
|
}
|
package/dist/index.js
CHANGED
|
@@ -780,7 +780,7 @@ var SDK_RELEASE = {
|
|
|
780
780
|
// 0.2.0 makes Dataset Handles uniformly async-only after 0.1.320 briefly
|
|
781
781
|
// exposed storage-dependent synchronous access. This deliberate minor
|
|
782
782
|
// release keeps lazy paging semantics independent of row residency.
|
|
783
|
-
version: "0.2.
|
|
783
|
+
version: "0.2.68",
|
|
784
784
|
contracts: {
|
|
785
785
|
api: {
|
|
786
786
|
name: "sdk-http-api",
|
|
@@ -808,6 +808,13 @@ var SDK_RELEASE = {
|
|
|
808
808
|
supportPolicy: {
|
|
809
809
|
minimumSupported: "0.1.53",
|
|
810
810
|
deprecatedBelow: "0.1.219",
|
|
811
|
+
commandIntroducedIn: [
|
|
812
|
+
{
|
|
813
|
+
command: "notifications",
|
|
814
|
+
introducedIn: "0.2.40",
|
|
815
|
+
reason: "deepline notifications was added in SDK CLI 0.2.40. Older versions have no way to configure a Play failure alert, so a cron Play that dies reports to nobody."
|
|
816
|
+
}
|
|
817
|
+
],
|
|
811
818
|
commandMinimumSupported: [
|
|
812
819
|
{
|
|
813
820
|
command: "enrich",
|
|
@@ -4061,6 +4068,10 @@ var DeeplineClient = class {
|
|
|
4061
4068
|
const cloneEditStarter = this.playCloneEditStarter(play);
|
|
4062
4069
|
return {
|
|
4063
4070
|
name: play.name,
|
|
4071
|
+
// playKey and triggerStatus were projected away here, so `plays describe`
|
|
4072
|
+
// was strictly less informative than `plays list` for the same play — no
|
|
4073
|
+
// stable key, and no way to see that a cron was armed.
|
|
4074
|
+
...play.playKey ? { playKey: play.playKey } : {},
|
|
4064
4075
|
...play.reference ? { reference: play.reference } : {},
|
|
4065
4076
|
...play.displayName ? { displayName: play.displayName } : {},
|
|
4066
4077
|
...description ? { description } : {},
|
|
@@ -4078,6 +4089,11 @@ var DeeplineClient = class {
|
|
|
4078
4089
|
examples: [runCommand],
|
|
4079
4090
|
...cloneEditStarter ? { cloneEditStarter } : {},
|
|
4080
4091
|
currentPublishedVersion: play.currentPublishedVersion ?? null,
|
|
4092
|
+
// Read the live version off the live revision. It was previously only
|
|
4093
|
+
// ever written by the publish/live routes, so every list and describe
|
|
4094
|
+
// payload reported liveVersion: null even for an actively serving play.
|
|
4095
|
+
liveVersion: play.liveRevision?.version ?? null,
|
|
4096
|
+
...play.triggerStatus ? { triggerStatus: play.triggerStatus } : {},
|
|
4081
4097
|
isDraftDirty: play.isDraftDirty
|
|
4082
4098
|
};
|
|
4083
4099
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -703,7 +703,7 @@ var SDK_RELEASE = {
|
|
|
703
703
|
// 0.2.0 makes Dataset Handles uniformly async-only after 0.1.320 briefly
|
|
704
704
|
// exposed storage-dependent synchronous access. This deliberate minor
|
|
705
705
|
// release keeps lazy paging semantics independent of row residency.
|
|
706
|
-
version: "0.2.
|
|
706
|
+
version: "0.2.68",
|
|
707
707
|
contracts: {
|
|
708
708
|
api: {
|
|
709
709
|
name: "sdk-http-api",
|
|
@@ -731,6 +731,13 @@ var SDK_RELEASE = {
|
|
|
731
731
|
supportPolicy: {
|
|
732
732
|
minimumSupported: "0.1.53",
|
|
733
733
|
deprecatedBelow: "0.1.219",
|
|
734
|
+
commandIntroducedIn: [
|
|
735
|
+
{
|
|
736
|
+
command: "notifications",
|
|
737
|
+
introducedIn: "0.2.40",
|
|
738
|
+
reason: "deepline notifications was added in SDK CLI 0.2.40. Older versions have no way to configure a Play failure alert, so a cron Play that dies reports to nobody."
|
|
739
|
+
}
|
|
740
|
+
],
|
|
734
741
|
commandMinimumSupported: [
|
|
735
742
|
{
|
|
736
743
|
command: "enrich",
|
|
@@ -3984,6 +3991,10 @@ var DeeplineClient = class {
|
|
|
3984
3991
|
const cloneEditStarter = this.playCloneEditStarter(play);
|
|
3985
3992
|
return {
|
|
3986
3993
|
name: play.name,
|
|
3994
|
+
// playKey and triggerStatus were projected away here, so `plays describe`
|
|
3995
|
+
// was strictly less informative than `plays list` for the same play — no
|
|
3996
|
+
// stable key, and no way to see that a cron was armed.
|
|
3997
|
+
...play.playKey ? { playKey: play.playKey } : {},
|
|
3987
3998
|
...play.reference ? { reference: play.reference } : {},
|
|
3988
3999
|
...play.displayName ? { displayName: play.displayName } : {},
|
|
3989
4000
|
...description ? { description } : {},
|
|
@@ -4001,6 +4012,11 @@ var DeeplineClient = class {
|
|
|
4001
4012
|
examples: [runCommand],
|
|
4002
4013
|
...cloneEditStarter ? { cloneEditStarter } : {},
|
|
4003
4014
|
currentPublishedVersion: play.currentPublishedVersion ?? null,
|
|
4015
|
+
// Read the live version off the live revision. It was previously only
|
|
4016
|
+
// ever written by the publish/live routes, so every list and describe
|
|
4017
|
+
// payload reported liveVersion: null even for an actively serving play.
|
|
4018
|
+
liveVersion: play.liveRevision?.version ?? null,
|
|
4019
|
+
...play.triggerStatus ? { triggerStatus: play.triggerStatus } : {},
|
|
4004
4020
|
isDraftDirty: play.isDraftDirty
|
|
4005
4021
|
};
|
|
4006
4022
|
}
|
|
@@ -225,8 +225,8 @@
|
|
|
225
225
|
"dist/cli/index.d.ts",
|
|
226
226
|
"dist/cli/index.js",
|
|
227
227
|
"dist/cli/index.mjs",
|
|
228
|
-
"dist/compiler-manifest-
|
|
229
|
-
"dist/compiler-manifest-
|
|
228
|
+
"dist/compiler-manifest-DFBtSjB2.d.mts",
|
|
229
|
+
"dist/compiler-manifest-DFBtSjB2.d.ts",
|
|
230
230
|
"dist/helpers.d.mts",
|
|
231
231
|
"dist/helpers.d.ts",
|
|
232
232
|
"dist/helpers.js",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { T as ToolExecutionErrorSchemaVersion, P as PlayAuthoringContractEdition, a as PlayArtifactKind$1, b as PlaySandboxRuntimeDeclaration, c as PlayCompilerManifest } from '../compiler-manifest-
|
|
2
|
-
export { d as PLAY_ARTIFACT_KINDS } from '../compiler-manifest-
|
|
1
|
+
import { T as ToolExecutionErrorSchemaVersion, P as PlayAuthoringContractEdition, a as PlayArtifactKind$1, b as PlaySandboxRuntimeDeclaration, c as PlayCompilerManifest } from '../compiler-manifest-DFBtSjB2.mjs';
|
|
2
|
+
export { d as PLAY_ARTIFACT_KINDS } from '../compiler-manifest-DFBtSjB2.mjs';
|
|
3
3
|
import '@sinclair/typebox';
|
|
4
4
|
|
|
5
5
|
type PlayPackageImport = {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { T as ToolExecutionErrorSchemaVersion, P as PlayAuthoringContractEdition, a as PlayArtifactKind$1, b as PlaySandboxRuntimeDeclaration, c as PlayCompilerManifest } from '../compiler-manifest-
|
|
2
|
-
export { d as PLAY_ARTIFACT_KINDS } from '../compiler-manifest-
|
|
1
|
+
import { T as ToolExecutionErrorSchemaVersion, P as PlayAuthoringContractEdition, a as PlayArtifactKind$1, b as PlaySandboxRuntimeDeclaration, c as PlayCompilerManifest } from '../compiler-manifest-DFBtSjB2.js';
|
|
2
|
+
export { d as PLAY_ARTIFACT_KINDS } from '../compiler-manifest-DFBtSjB2.js';
|
|
3
3
|
import '@sinclair/typebox';
|
|
4
4
|
|
|
5
5
|
type PlayPackageImport = {
|
|
@@ -2684,6 +2684,22 @@ var PLAY_SQL_LISTENER_TOOL_PATTERN = /^[a-zA-Z][a-zA-Z0-9_-]*\.[a-zA-Z][a-zA-Z0-
|
|
|
2684
2684
|
var PLAY_SQL_LISTENER_WHERE_OPERATOR_SET = new Set(
|
|
2685
2685
|
PLAY_SQL_LISTENER_WHERE_OPERATORS
|
|
2686
2686
|
);
|
|
2687
|
+
var PLAY_AUTHORING_DOCUMENTATION = {
|
|
2688
|
+
fetchBatching: {
|
|
2689
|
+
warning: "A static ctx.fetch key inside a loop is a warning because every iteration must still have distinct method, URL, body, or safe headers. One durable receipt must never stand in for every request.",
|
|
2690
|
+
guidance: "Keep the static fetch label. For a mutating batch, make the body distinct and use a replay-stable external Idempotency-Key such as `${ctx.run.id}:signals:${batchIndex}`."
|
|
2691
|
+
},
|
|
2692
|
+
runId: {
|
|
2693
|
+
semantics: "ctx.run.id is stable while Deepline retries or resumes one durable run. A separately submitted run receives a new id.",
|
|
2694
|
+
use: "Use it when deriving an external idempotency key for a sequence of batches."
|
|
2695
|
+
},
|
|
2696
|
+
staticCallKeys: {
|
|
2697
|
+
constraint: "Durable call keys \u2014 the ctx.fetch key, the ctx.dataset key, the ctx.step id \u2014 must be static string literals. The key names a durable receipt, so check, publish, and replay have to agree on it before the body runs. A key computed at runtime cannot be resolved at check time and is rejected.",
|
|
2698
|
+
consequence: "This is an architectural constraint, not a style rule. A play cannot loop over a computed key, so it cannot page a large table with a helper like page(pageNumber). Unrolling one literal key per page is not a design at any real page count.",
|
|
2699
|
+
workaround: "Push the aggregation server-side and call it once: a SQL function, a view, or a provider endpoint that returns the whole result. Keep unrolled literal keys only for a handful of genuinely distinct calls. To fan out over rows, use ctx.dataset with a static key \u2014 the per-row receipt identity comes from the row, not from the key."
|
|
2700
|
+
}
|
|
2701
|
+
};
|
|
2702
|
+
var PLAY_AUTHORING_STATIC_FETCH_KEY_HINT = `${PLAY_AUTHORING_DOCUMENTATION.staticCallKeys.workaround} Do not compute the key.`;
|
|
2687
2703
|
var SecretEnvironmentNameSchema = Type.String({
|
|
2688
2704
|
pattern: "^[A-Z][A-Z0-9_]{1,63}$",
|
|
2689
2705
|
description: "An uppercase environment variable name beginning with a letter."
|
|
@@ -3526,7 +3542,8 @@ var PLAY_AUTHORING_FIELD_REGISTRY = {
|
|
|
3526
3542
|
resolution: "static-required",
|
|
3527
3543
|
issueCode: "play_authoring_durable_policy_invalid",
|
|
3528
3544
|
description: "Stable durable identity for one external HTTP request.",
|
|
3529
|
-
errorMessage: "ctx.fetch key must be a non-empty static string."
|
|
3545
|
+
errorMessage: "ctx.fetch key must be a non-empty static string.",
|
|
3546
|
+
unresolvedHint: PLAY_AUTHORING_STATIC_FETCH_KEY_HINT
|
|
3530
3547
|
},
|
|
3531
3548
|
"ctx.fetch.staleAfterSeconds": {
|
|
3532
3549
|
schema: Type.Union([Type.Null(), Type.Integer({ minimum: 0 })]),
|