deepline 0.2.73 → 0.2.74

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.
@@ -149,6 +149,7 @@ import type {
149
149
  PlayLooseObject,
150
150
  PlayReturnObject as PlayAuthoringReturnObject,
151
151
  PlaySecretAuth,
152
+ PlaySecretAuthInput,
152
153
  PlaySecretAwareRequestInit,
153
154
  PlaySecretHandle,
154
155
  PlaySqlQuery,
@@ -249,6 +250,7 @@ export type SqlListenerEvent<T extends object = Record<string, unknown>> =
249
250
  export type SqlQuery = PlaySqlQuery;
250
251
  export type SecretHandle = PlaySecretHandle;
251
252
  export type SecretAuth = PlaySecretAuth;
253
+ export type SecretAuthInput = PlaySecretAuthInput;
252
254
  export type SecretAwareRequestInit = PlaySecretAwareRequestInit;
253
255
  export type LoosePlayObject = PlayLooseObject;
254
256
 
@@ -183,7 +183,7 @@ export const SDK_RELEASE = {
183
183
  // 0.2.0 makes Dataset Handles uniformly async-only after 0.1.320 briefly
184
184
  // exposed storage-dependent synchronous access. This deliberate minor
185
185
  // release keeps lazy paging semantics independent of row residency.
186
- version: '0.2.73',
186
+ version: '0.2.74',
187
187
  contracts: {
188
188
  api: {
189
189
  name: 'sdk-http-api',
@@ -255,10 +255,12 @@ import {
255
255
  createBearerSecretAuth,
256
256
  createHeaderSecretAuth,
257
257
  createSecretHandle,
258
- isSecretAuth,
258
+ isSecretAuthInput,
259
+ secretAuthEntries,
259
260
  secretAuthHeaderMarkers,
260
261
  valueContainsSecret,
261
262
  type SecretAuth,
263
+ type SecretAuthInput,
262
264
  type SecretAwareRequestInit,
263
265
  type SecretHandle,
264
266
  } from './secret-capability';
@@ -2676,7 +2678,15 @@ export class PlayContextImpl implements ScalarPlayAuthoringRuntimeContext {
2676
2678
  }
2677
2679
  }
2678
2680
 
2679
- private async resolveSecretAuth(auth: SecretAuth | undefined) {
2681
+ private async resolveSecretAuth(auth: SecretAuthInput | undefined) {
2682
+ const headers: Record<string, string> = {};
2683
+ for (const entry of secretAuthEntries(auth)) {
2684
+ Object.assign(headers, await this.resolveSingleSecretAuth(entry));
2685
+ }
2686
+ return headers;
2687
+ }
2688
+
2689
+ private async resolveSingleSecretAuth(auth: SecretAuth) {
2680
2690
  if (!auth) return {};
2681
2691
  let value: string | null = null;
2682
2692
  if (this.#options.resolveSecret) {
@@ -9648,7 +9658,7 @@ export class PlayContextImpl implements ScalarPlayAuthoringRuntimeContext {
9648
9658
  'ctx.fetch does not allow raw secret headers. Use ctx.secrets.bearer(...) or ctx.secrets.header(...).',
9649
9659
  );
9650
9660
  }
9651
- if (init.auth !== undefined && !isSecretAuth(init.auth)) {
9661
+ if (init.auth !== undefined && !isSecretAuthInput(init.auth)) {
9652
9662
  throw new Error('ctx.fetch auth must come from ctx.secrets.');
9653
9663
  }
9654
9664
  // Secret handles are deliberately resolved at the last possible moment, so
@@ -30,8 +30,10 @@ export type SecretAuth = PlaySecretAuth &
30
30
  }
31
31
  );
32
32
 
33
+ export type SecretAuthInput = SecretAuth | readonly SecretAuth[];
34
+
33
35
  export type SecretAwareRequestInit = PlaySecretAwareRequestInit & {
34
- auth?: SecretAuth;
36
+ auth?: SecretAuthInput;
35
37
  };
36
38
 
37
39
  function isRecord(value: unknown): value is Record<string | symbol, unknown> {
@@ -46,6 +48,22 @@ export function isSecretAuth(value: unknown): value is SecretAuth {
46
48
  return isRecord(value) && value[SECRET_AUTH_BRAND] === true;
47
49
  }
48
50
 
51
+ export function isSecretAuthInput(value: unknown): value is SecretAuthInput {
52
+ return (
53
+ isSecretAuth(value) ||
54
+ (Array.isArray(value) &&
55
+ value.length > 0 &&
56
+ value.every((entry) => isSecretAuth(entry)))
57
+ );
58
+ }
59
+
60
+ export function secretAuthEntries(
61
+ auth: SecretAuthInput | undefined,
62
+ ): readonly SecretAuth[] {
63
+ if (!auth) return [];
64
+ return isSecretAuth(auth) ? [auth] : auth;
65
+ }
66
+
49
67
  export function valueContainsSecret(value: unknown): boolean {
50
68
  const pending: unknown[] = [value];
51
69
  const seen = new WeakSet<object>();
@@ -107,17 +125,24 @@ export function createHeaderSecretAuth(
107
125
  }
108
126
 
109
127
  export function secretAuthHeaderMarkers(
110
- auth: SecretAuth | undefined,
128
+ auth: SecretAuthInput | undefined,
111
129
  ): Record<string, string> {
112
- if (!auth) return {};
113
- if (auth.kind === 'bearer') {
114
- return { authorization: `[secret:${auth.secret.name}]` };
130
+ const markers: Record<string, string> = {};
131
+ for (const entry of secretAuthEntries(auth)) {
132
+ const header =
133
+ entry.kind === 'bearer' ? 'authorization' : entry.header.toLowerCase();
134
+ if (markers[header] !== undefined) {
135
+ throw new Error(
136
+ `ctx.fetch cannot attach more than one secret to the ${header} header.`,
137
+ );
138
+ }
139
+ markers[header] = `[secret:${entry.secret.name}]`;
115
140
  }
116
- return { [auth.header.toLowerCase()]: `[secret:${auth.secret.name}]` };
141
+ return markers;
117
142
  }
118
143
 
119
144
  export function assertSecretAuthUsesTls(
120
- auth: SecretAuth | undefined,
145
+ auth: SecretAuthInput | undefined,
121
146
  input: string | URL,
122
147
  sink: string,
123
148
  ): void {
@@ -410,6 +410,8 @@ export type PlaySecretAuth = {
410
410
  /** Header name, set only when `kind` is `header`. */
411
411
  readonly header?: string;
412
412
  };
413
+ /** One or more resolved authentication schemes for an outbound request. */
414
+ export type PlaySecretAuthInput = PlaySecretAuth | readonly PlaySecretAuth[];
413
415
  /**
414
416
  * The `init` accepted by `ctx.fetch`. Same shape as `RequestInit` plus `auth`.
415
417
  *
@@ -419,9 +421,9 @@ export type PlaySecretAwareRequestInit = Omit<RequestInit, 'headers'> & {
419
421
  /** Ordinary request headers, recorded in the durable receipt. Never interpolate a secret value here — use `auth`. */
420
422
  headers?: HeadersInit;
421
423
  /**
422
- * 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.
424
+ * One or more secret-backed authentication headers for this request. Pass a single `ctx.secrets` auth for the common case, or an array when an API requires multiple credentialed headers for example, Supabase with both `apikey` and `Authorization`. Every secret is resolved only while the request is attached, never stored in the durable receipt. Each auth entry must target a distinct header.
423
425
  */
424
- auth?: PlaySecretAuth;
426
+ auth?: PlaySecretAuthInput;
425
427
  };
426
428
  export type PlayLooseObject = { [key: string]: PlayLooseObject };
427
429
 
@@ -2464,6 +2466,7 @@ export const PLAY_AUTHORING_CLOUD_TYPE_DECLARATIONS = [
2464
2466
  'declare const SECRET_HANDLE_BRAND: unique symbol;',
2465
2467
  'export type SecretHandle = { readonly [SECRET_HANDLE_BRAND]: never; readonly name: string; toString(): string; toJSON(): never };',
2466
2468
  "export type SecretAuth = { readonly kind: 'bearer' | 'header'; readonly secret: SecretHandle; readonly header?: string };",
2469
+ 'export type SecretAuthInput = SecretAuth | readonly SecretAuth[];',
2467
2470
  'export type PlayInputContract<TInput> = { readonly schema: Record<string, unknown>; readonly __inputType?: TInput };',
2468
2471
  'export type PlayReturnObject = Record<string, unknown> & { readonly _metadata?: never };',
2469
2472
  'export type CsvRenameMap = Record<string, string | readonly string[]>;',
@@ -2512,7 +2515,7 @@ export const PLAY_AUTHORING_CLOUD_TYPE_DECLARATIONS = [
2512
2515
  ` customerDb: { query<TRow extends Record<string, unknown> = Record<string, unknown>>(statement: SqlQuery, options?: { maxRows?: ${cloudReferenceType('ctx.customerDb.query.options.maxRows')}; timeoutMs?: ${cloudReferenceType('ctx.customerDb.query.options.timeoutMs')} }): Promise<TRow[]> };`,
2513
2516
  ` tool<K extends string>(key: ${cloudReferenceType('ctx.tool.key')}, toolId: K, input: ${cloudReferenceType('ctx.tool.input')}, options?: { description?: ${cloudReferenceType('ctx.tool.options.description')} }): Promise<ToolExecutionOutput<K>>;`,
2514
2517
  ' step<T>(id: string, run: () => T | Promise<T>, options?: RuntimeStepOptions): Promise<T>;',
2515
- " fetch(key: string, url: string | URL, init?: RequestInit & { headers?: HeadersInit & { 'Idempotency-Key'?: string; 'X-Idempotency-Key'?: string }; auth?: SecretAuth }, options?: FetchOptions): Promise<PlayFetchResponse>;",
2518
+ " fetch(key: string, url: string | URL, init?: RequestInit & { headers?: HeadersInit & { 'Idempotency-Key'?: string; 'X-Idempotency-Key'?: string }; auth?: SecretAuthInput }, options?: FetchOptions): Promise<PlayFetchResponse>;",
2516
2519
  ' secrets: { get(name: string): SecretHandle; bearer(secret: SecretHandle): SecretAuth; header(header: string, secret: SecretHandle): SecretAuth };',
2517
2520
  ` runPlay<TOutput = unknown>(key: string, playRef: ${cloudReferenceType('ctx.runPlay.playRef')}, input: ${cloudReferenceType('ctx.runPlay.input')}, options: PlayCallOptions): Promise<TOutput>;`,
2518
2521
  ' log(message: string): void;',
package/dist/cli/index.js CHANGED
@@ -1044,7 +1044,7 @@ var SDK_RELEASE = {
1044
1044
  // 0.2.0 makes Dataset Handles uniformly async-only after 0.1.320 briefly
1045
1045
  // exposed storage-dependent synchronous access. This deliberate minor
1046
1046
  // release keeps lazy paging semantics independent of row residency.
1047
- version: "0.2.73",
1047
+ version: "0.2.74",
1048
1048
  contracts: {
1049
1049
  api: {
1050
1050
  name: "sdk-http-api",
@@ -16604,6 +16604,7 @@ var PLAY_AUTHORING_CLOUD_TYPE_DECLARATIONS = [
16604
16604
  "declare const SECRET_HANDLE_BRAND: unique symbol;",
16605
16605
  "export type SecretHandle = { readonly [SECRET_HANDLE_BRAND]: never; readonly name: string; toString(): string; toJSON(): never };",
16606
16606
  "export type SecretAuth = { readonly kind: 'bearer' | 'header'; readonly secret: SecretHandle; readonly header?: string };",
16607
+ "export type SecretAuthInput = SecretAuth | readonly SecretAuth[];",
16607
16608
  "export type PlayInputContract<TInput> = { readonly schema: Record<string, unknown>; readonly __inputType?: TInput };",
16608
16609
  "export type PlayReturnObject = Record<string, unknown> & { readonly _metadata?: never };",
16609
16610
  "export type CsvRenameMap = Record<string, string | readonly string[]>;",
@@ -16652,7 +16653,7 @@ var PLAY_AUTHORING_CLOUD_TYPE_DECLARATIONS = [
16652
16653
  ` customerDb: { query<TRow extends Record<string, unknown> = Record<string, unknown>>(statement: SqlQuery, options?: { maxRows?: ${cloudReferenceType("ctx.customerDb.query.options.maxRows")}; timeoutMs?: ${cloudReferenceType("ctx.customerDb.query.options.timeoutMs")} }): Promise<TRow[]> };`,
16653
16654
  ` tool<K extends string>(key: ${cloudReferenceType("ctx.tool.key")}, toolId: K, input: ${cloudReferenceType("ctx.tool.input")}, options?: { description?: ${cloudReferenceType("ctx.tool.options.description")} }): Promise<ToolExecutionOutput<K>>;`,
16654
16655
  " step<T>(id: string, run: () => T | Promise<T>, options?: RuntimeStepOptions): Promise<T>;",
16655
- " fetch(key: string, url: string | URL, init?: RequestInit & { headers?: HeadersInit & { 'Idempotency-Key'?: string; 'X-Idempotency-Key'?: string }; auth?: SecretAuth }, options?: FetchOptions): Promise<PlayFetchResponse>;",
16656
+ " fetch(key: string, url: string | URL, init?: RequestInit & { headers?: HeadersInit & { 'Idempotency-Key'?: string; 'X-Idempotency-Key'?: string }; auth?: SecretAuthInput }, options?: FetchOptions): Promise<PlayFetchResponse>;",
16656
16657
  " secrets: { get(name: string): SecretHandle; bearer(secret: SecretHandle): SecretAuth; header(header: string, secret: SecretHandle): SecretAuth };",
16657
16658
  ` runPlay<TOutput = unknown>(key: string, playRef: ${cloudReferenceType("ctx.runPlay.playRef")}, input: ${cloudReferenceType("ctx.runPlay.input")}, options: PlayCallOptions): Promise<TOutput>;`,
16658
16659
  " log(message: string): void;",
@@ -1030,7 +1030,7 @@ var SDK_RELEASE = {
1030
1030
  // 0.2.0 makes Dataset Handles uniformly async-only after 0.1.320 briefly
1031
1031
  // exposed storage-dependent synchronous access. This deliberate minor
1032
1032
  // release keeps lazy paging semantics independent of row residency.
1033
- version: "0.2.73",
1033
+ version: "0.2.74",
1034
1034
  contracts: {
1035
1035
  api: {
1036
1036
  name: "sdk-http-api",
@@ -16657,6 +16657,7 @@ var PLAY_AUTHORING_CLOUD_TYPE_DECLARATIONS = [
16657
16657
  "declare const SECRET_HANDLE_BRAND: unique symbol;",
16658
16658
  "export type SecretHandle = { readonly [SECRET_HANDLE_BRAND]: never; readonly name: string; toString(): string; toJSON(): never };",
16659
16659
  "export type SecretAuth = { readonly kind: 'bearer' | 'header'; readonly secret: SecretHandle; readonly header?: string };",
16660
+ "export type SecretAuthInput = SecretAuth | readonly SecretAuth[];",
16660
16661
  "export type PlayInputContract<TInput> = { readonly schema: Record<string, unknown>; readonly __inputType?: TInput };",
16661
16662
  "export type PlayReturnObject = Record<string, unknown> & { readonly _metadata?: never };",
16662
16663
  "export type CsvRenameMap = Record<string, string | readonly string[]>;",
@@ -16705,7 +16706,7 @@ var PLAY_AUTHORING_CLOUD_TYPE_DECLARATIONS = [
16705
16706
  ` customerDb: { query<TRow extends Record<string, unknown> = Record<string, unknown>>(statement: SqlQuery, options?: { maxRows?: ${cloudReferenceType("ctx.customerDb.query.options.maxRows")}; timeoutMs?: ${cloudReferenceType("ctx.customerDb.query.options.timeoutMs")} }): Promise<TRow[]> };`,
16706
16707
  ` tool<K extends string>(key: ${cloudReferenceType("ctx.tool.key")}, toolId: K, input: ${cloudReferenceType("ctx.tool.input")}, options?: { description?: ${cloudReferenceType("ctx.tool.options.description")} }): Promise<ToolExecutionOutput<K>>;`,
16707
16708
  " step<T>(id: string, run: () => T | Promise<T>, options?: RuntimeStepOptions): Promise<T>;",
16708
- " fetch(key: string, url: string | URL, init?: RequestInit & { headers?: HeadersInit & { 'Idempotency-Key'?: string; 'X-Idempotency-Key'?: string }; auth?: SecretAuth }, options?: FetchOptions): Promise<PlayFetchResponse>;",
16709
+ " fetch(key: string, url: string | URL, init?: RequestInit & { headers?: HeadersInit & { 'Idempotency-Key'?: string; 'X-Idempotency-Key'?: string }; auth?: SecretAuthInput }, options?: FetchOptions): Promise<PlayFetchResponse>;",
16709
16710
  " secrets: { get(name: string): SecretHandle; bearer(secret: SecretHandle): SecretAuth; header(header: string, secret: SecretHandle): SecretAuth };",
16710
16711
  ` runPlay<TOutput = unknown>(key: string, playRef: ${cloudReferenceType("ctx.runPlay.playRef")}, input: ${cloudReferenceType("ctx.runPlay.input")}, options: PlayCallOptions): Promise<TOutput>;`,
16711
16712
  " log(message: string): void;",
@@ -1162,6 +1162,8 @@ type PlaySecretAuth = {
1162
1162
  /** Header name, set only when `kind` is `header`. */
1163
1163
  readonly header?: string;
1164
1164
  };
1165
+ /** One or more resolved authentication schemes for an outbound request. */
1166
+ type PlaySecretAuthInput = PlaySecretAuth | readonly PlaySecretAuth[];
1165
1167
  /**
1166
1168
  * The `init` accepted by `ctx.fetch`. Same shape as `RequestInit` plus `auth`.
1167
1169
  *
@@ -1171,9 +1173,9 @@ type PlaySecretAwareRequestInit = Omit<RequestInit, 'headers'> & {
1171
1173
  /** Ordinary request headers, recorded in the durable receipt. Never interpolate a secret value here — use `auth`. */
1172
1174
  headers?: HeadersInit;
1173
1175
  /**
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.
1176
+ * One or more secret-backed authentication headers for this request. Pass a single `ctx.secrets` auth for the common case, or an array when an API requires multiple credentialed headers for example, Supabase with both `apikey` and `Authorization`. Every secret is resolved only while the request is attached, never stored in the durable receipt. Each auth entry must target a distinct header.
1175
1177
  */
1176
- auth?: PlaySecretAuth;
1178
+ auth?: PlaySecretAuthInput;
1177
1179
  };
1178
1180
  type PlayLooseObject = {
1179
1181
  [key: string]: PlayLooseObject;
@@ -1162,6 +1162,8 @@ type PlaySecretAuth = {
1162
1162
  /** Header name, set only when `kind` is `header`. */
1163
1163
  readonly header?: string;
1164
1164
  };
1165
+ /** One or more resolved authentication schemes for an outbound request. */
1166
+ type PlaySecretAuthInput = PlaySecretAuth | readonly PlaySecretAuth[];
1165
1167
  /**
1166
1168
  * The `init` accepted by `ctx.fetch`. Same shape as `RequestInit` plus `auth`.
1167
1169
  *
@@ -1171,9 +1173,9 @@ type PlaySecretAwareRequestInit = Omit<RequestInit, 'headers'> & {
1171
1173
  /** Ordinary request headers, recorded in the durable receipt. Never interpolate a secret value here — use `auth`. */
1172
1174
  headers?: HeadersInit;
1173
1175
  /**
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.
1176
+ * One or more secret-backed authentication headers for this request. Pass a single `ctx.secrets` auth for the common case, or an array when an API requires multiple credentialed headers for example, Supabase with both `apikey` and `Authorization`. Every secret is resolved only while the request is attached, never stored in the durable receipt. Each auth entry must target a distinct header.
1175
1177
  */
1176
- auth?: PlaySecretAuth;
1178
+ auth?: PlaySecretAuthInput;
1177
1179
  };
1178
1180
  type PlayLooseObject = {
1179
1181
  [key: string]: PlayLooseObject;
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-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';
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-DFuz9-0_.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-DFuz9-0_.mjs';
3
3
  import '@sinclair/typebox';
4
4
 
5
5
  declare const FIXTURE_BEHAVIOR_VERSION: 1;
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-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';
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-DFuz9-0_.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-DFuz9-0_.js';
3
3
  import '@sinclair/typebox';
4
4
 
5
5
  declare const FIXTURE_BEHAVIOR_VERSION: 1;
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.73",
783
+ version: "0.2.74",
784
784
  contracts: {
785
785
  api: {
786
786
  name: "sdk-http-api",
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.73",
706
+ version: "0.2.74",
707
707
  contracts: {
708
708
  api: {
709
709
  name: "sdk-http-api",
@@ -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-DFBtSjB2.d.mts",
229
- "dist/compiler-manifest-DFBtSjB2.d.ts",
228
+ "dist/compiler-manifest-DFuz9-0_.d.mts",
229
+ "dist/compiler-manifest-DFuz9-0_.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-DFBtSjB2.mjs';
2
- export { d as PLAY_ARTIFACT_KINDS } from '../compiler-manifest-DFBtSjB2.mjs';
1
+ import { T as ToolExecutionErrorSchemaVersion, P as PlayAuthoringContractEdition, a as PlayArtifactKind$1, b as PlaySandboxRuntimeDeclaration, c as PlayCompilerManifest } from '../compiler-manifest-DFuz9-0_.mjs';
2
+ export { d as PLAY_ARTIFACT_KINDS } from '../compiler-manifest-DFuz9-0_.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-DFBtSjB2.js';
2
- export { d as PLAY_ARTIFACT_KINDS } from '../compiler-manifest-DFBtSjB2.js';
1
+ import { T as ToolExecutionErrorSchemaVersion, P as PlayAuthoringContractEdition, a as PlayArtifactKind$1, b as PlaySandboxRuntimeDeclaration, c as PlayCompilerManifest } from '../compiler-manifest-DFuz9-0_.js';
2
+ export { d as PLAY_ARTIFACT_KINDS } from '../compiler-manifest-DFuz9-0_.js';
3
3
  import '@sinclair/typebox';
4
4
 
5
5
  type PlayPackageImport = {
@@ -3942,6 +3942,7 @@ var PLAY_AUTHORING_CLOUD_TYPE_DECLARATIONS = [
3942
3942
  "declare const SECRET_HANDLE_BRAND: unique symbol;",
3943
3943
  "export type SecretHandle = { readonly [SECRET_HANDLE_BRAND]: never; readonly name: string; toString(): string; toJSON(): never };",
3944
3944
  "export type SecretAuth = { readonly kind: 'bearer' | 'header'; readonly secret: SecretHandle; readonly header?: string };",
3945
+ "export type SecretAuthInput = SecretAuth | readonly SecretAuth[];",
3945
3946
  "export type PlayInputContract<TInput> = { readonly schema: Record<string, unknown>; readonly __inputType?: TInput };",
3946
3947
  "export type PlayReturnObject = Record<string, unknown> & { readonly _metadata?: never };",
3947
3948
  "export type CsvRenameMap = Record<string, string | readonly string[]>;",
@@ -3990,7 +3991,7 @@ var PLAY_AUTHORING_CLOUD_TYPE_DECLARATIONS = [
3990
3991
  ` customerDb: { query<TRow extends Record<string, unknown> = Record<string, unknown>>(statement: SqlQuery, options?: { maxRows?: ${cloudReferenceType("ctx.customerDb.query.options.maxRows")}; timeoutMs?: ${cloudReferenceType("ctx.customerDb.query.options.timeoutMs")} }): Promise<TRow[]> };`,
3991
3992
  ` tool<K extends string>(key: ${cloudReferenceType("ctx.tool.key")}, toolId: K, input: ${cloudReferenceType("ctx.tool.input")}, options?: { description?: ${cloudReferenceType("ctx.tool.options.description")} }): Promise<ToolExecutionOutput<K>>;`,
3992
3993
  " step<T>(id: string, run: () => T | Promise<T>, options?: RuntimeStepOptions): Promise<T>;",
3993
- " fetch(key: string, url: string | URL, init?: RequestInit & { headers?: HeadersInit & { 'Idempotency-Key'?: string; 'X-Idempotency-Key'?: string }; auth?: SecretAuth }, options?: FetchOptions): Promise<PlayFetchResponse>;",
3994
+ " fetch(key: string, url: string | URL, init?: RequestInit & { headers?: HeadersInit & { 'Idempotency-Key'?: string; 'X-Idempotency-Key'?: string }; auth?: SecretAuthInput }, options?: FetchOptions): Promise<PlayFetchResponse>;",
3994
3995
  " secrets: { get(name: string): SecretHandle; bearer(secret: SecretHandle): SecretAuth; header(header: string, secret: SecretHandle): SecretAuth };",
3995
3996
  ` runPlay<TOutput = unknown>(key: string, playRef: ${cloudReferenceType("ctx.runPlay.playRef")}, input: ${cloudReferenceType("ctx.runPlay.input")}, options: PlayCallOptions): Promise<TOutput>;`,
3996
3997
  " log(message: string): void;",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "deepline",
3
- "version": "0.2.73",
3
+ "version": "0.2.74",
4
4
  "description": "GTM data CLI and TypeScript SDK for coding agents",
5
5
  "license": "MIT",
6
6
  "homepage": "https://code.deepline.com",