deepline 0.3.19 → 0.3.21

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.
@@ -11,8 +11,12 @@ import {
11
11
  type AdmittedPlayAuthoringContract,
12
12
  } from './authoring-contract';
13
13
  import {
14
+ InvalidToolResponseReceiptRevisionError,
14
15
  normalizeToolResponseContract,
16
+ normalizeToolResponseReceiptRevision,
15
17
  RAW_V2_TOOL_RESPONSE_CONTRACT,
18
+ RAW_V2_TOOL_RESPONSE_RECEIPT_REVISION,
19
+ UnsupportedToolResponseContractError,
16
20
  type ToolResponseContract,
17
21
  } from '../play-runtime/tool-response-contract';
18
22
 
@@ -46,6 +50,11 @@ export type PlayContractCompatibilitySnapshot = {
46
50
  authoringContractEdition?: PlayAuthoringContractEdition;
47
51
  /** Immutable execute-result transport selected when the artifact is built. */
48
52
  toolResponseContract?: ToolResponseContract;
53
+ /**
54
+ * Deliberate receipt-cache boundary for a response transformation. Missing
55
+ * preserves the original namespace of artifacts written before this field.
56
+ */
57
+ toolResponseReceiptRevision?: string;
49
58
  };
50
59
 
51
60
  export type NormalizedPlayContractCompatibilitySnapshot =
@@ -65,8 +74,8 @@ export class UnsupportedPlayToolErrorSchemaVersionError extends Error {
65
74
  }
66
75
 
67
76
  export class InvalidPlayContractCompatibilityError extends Error {
68
- constructor() {
69
- super('Play artifact compatibility must be an object.');
77
+ constructor(message = 'Play artifact compatibility must be an object.') {
78
+ super(message);
70
79
  this.name = 'InvalidPlayContractCompatibilityError';
71
80
  }
72
81
  }
@@ -99,12 +108,29 @@ export function normalizePlayContractCompatibility(
99
108
  requestedToolErrorSchemaVersion,
100
109
  );
101
110
  }
111
+ let toolResponseContract: ToolResponseContract;
112
+ let toolResponseReceiptRevision: string | undefined;
113
+ try {
114
+ toolResponseContract = normalizeToolResponseContract(
115
+ compatibility.toolResponseContract,
116
+ );
117
+ toolResponseReceiptRevision = normalizeToolResponseReceiptRevision(
118
+ compatibility.toolResponseReceiptRevision,
119
+ );
120
+ } catch (error) {
121
+ if (
122
+ error instanceof UnsupportedToolResponseContractError ||
123
+ error instanceof InvalidToolResponseReceiptRevisionError
124
+ ) {
125
+ throw new InvalidPlayContractCompatibilityError(error.message);
126
+ }
127
+ throw error;
128
+ }
102
129
  return {
103
130
  ...compatibility,
104
131
  toolErrorSchemaVersion: TOOL_EXECUTION_ERROR_SCHEMA_VERSION,
105
- toolResponseContract: normalizeToolResponseContract(
106
- compatibility.toolResponseContract,
107
- ),
132
+ toolResponseContract,
133
+ ...(toolResponseReceiptRevision ? { toolResponseReceiptRevision } : {}),
108
134
  authoringContractEdition: normalizePlayAuthoringContractEdition(
109
135
  compatibility.authoringContractEdition,
110
136
  ),
@@ -116,6 +142,7 @@ export function buildPlayContractCompatibility(input?: {
116
142
  toolErrorSchemaVersion?: ToolExecutionErrorSchemaVersion;
117
143
  authoringContractEdition?: PlayAuthoringContractEdition;
118
144
  toolResponseContract?: ToolResponseContract;
145
+ toolResponseReceiptRevision?: string;
119
146
  }): PlayContractCompatibilitySnapshot {
120
147
  return {
121
148
  apiVersion: PLAY_PUBLIC_API_VERSION,
@@ -129,6 +156,10 @@ export function buildPlayContractCompatibility(input?: {
129
156
  input?.authoringContractEdition ?? PLAY_AUTHORING_CONTRACT_EDITION,
130
157
  toolResponseContract:
131
158
  input?.toolResponseContract ?? RAW_V2_TOOL_RESPONSE_CONTRACT,
159
+ toolResponseReceiptRevision: normalizeToolResponseReceiptRevision(
160
+ input?.toolResponseReceiptRevision ??
161
+ RAW_V2_TOOL_RESPONSE_RECEIPT_REVISION,
162
+ ),
132
163
  };
133
164
  }
134
165
 
package/dist/cli/index.js CHANGED
@@ -1047,7 +1047,7 @@ var SDK_RELEASE = {
1047
1047
  // 0.3.0 introduces raw-v2: complete scrubbed provider responses are
1048
1048
  // available at toolResponse.rawV2 while toolResponse.raw and all declared
1049
1049
  // getters keep their established compatibility behavior.
1050
- version: "0.3.19",
1050
+ version: "0.3.21",
1051
1051
  updateSummary: "New raw-v2 tool responses preserve complete scrubbed provider envelopes at toolResponse.rawV2, including JSON:API included resources, links, cursors, and totals. Existing toolResponse.raw and declared getters keep working unchanged.",
1052
1052
  contracts: {
1053
1053
  api: {
@@ -15817,6 +15817,26 @@ var PLAY_AUTHORING_FIELD_REGISTRY = {
15817
15817
  description: "Artifact-pinned tool error behavior, either 0 or 1.",
15818
15818
  errorMessage: "compatibility.toolErrorSchemaVersion must be the static literal 0 or 1."
15819
15819
  },
15820
+ "compatibility.toolResponseReceiptRevision": {
15821
+ schema: Type.String({
15822
+ minLength: 1,
15823
+ maxLength: 64,
15824
+ pattern: "^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$"
15825
+ }),
15826
+ fixtures: {
15827
+ valid: "raw-v2-receipt-v1",
15828
+ invalid: "has spaces",
15829
+ absent: void 0,
15830
+ unresolved: { expression: "revision" },
15831
+ edition1: void 0
15832
+ },
15833
+ referenceType: "string",
15834
+ required: false,
15835
+ resolution: "static-required",
15836
+ issueCode: "play_authoring_binding_invalid",
15837
+ description: "Explicit durable-receipt revision for a response transformation; bump only when serialized tool output changes.",
15838
+ errorMessage: "compatibility.toolResponseReceiptRevision must be a non-empty static identifier using letters, numbers, dots, underscores, or hyphens."
15839
+ },
15820
15840
  inline: {
15821
15841
  schema: Type.Boolean(),
15822
15842
  fixtures: {
@@ -17004,7 +17024,7 @@ var PLAY_AUTHORING_CLOUD_TYPE_DECLARATIONS = [
17004
17024
  "};",
17005
17025
  "export type PlayBindings = {",
17006
17026
  ` description?: ${cloudReferenceType("description")};`,
17007
- ` compatibility?: { toolErrorSchemaVersion: ${cloudReferenceType("compatibility.toolErrorSchemaVersion")} };`,
17027
+ ` compatibility?: { toolErrorSchemaVersion?: ${cloudReferenceType("compatibility.toolErrorSchemaVersion")}; toolResponseReceiptRevision?: ${cloudReferenceType("compatibility.toolResponseReceiptRevision")} };`,
17008
17028
  ` inline?: ${cloudReferenceType("inline")};`,
17009
17029
  ` billing?: { maxCreditsPerRun?: ${cloudReferenceType("billing.maxCreditsPerRun")} };`,
17010
17030
  ` runtime?: { timeout?: ${cloudReferenceType("runtime.timeout")}; size?: ${cloudReferenceType("runtime.size")} };`,
@@ -17343,7 +17363,7 @@ function collectInlineSecretFindings(sourceCode) {
17343
17363
  var MAX_PLAY_BUNDLE_BYTES = 30 * 1024 * 1024;
17344
17364
 
17345
17365
  // ../shared_libs/plays/bundling/index.ts
17346
- var PLAY_BUNDLE_CACHE_VERSION = 35;
17366
+ var PLAY_BUNDLE_CACHE_VERSION = 36;
17347
17367
  var PLAY_ARTIFACT_CACHE_DIR = (0, import_node_path11.join)(
17348
17368
  (0, import_node_os8.tmpdir)(),
17349
17369
  `deepline-play-artifacts-v${PLAY_BUNDLE_CACHE_VERSION}`
@@ -17664,11 +17684,34 @@ function toolErrorSchemaVersionFromOptions(node, context) {
17664
17684
  "toolErrorSchemaVersion",
17665
17685
  context
17666
17686
  );
17687
+ if (schema.kind === "absent") return void 0;
17667
17688
  if (schema.kind !== "found") return null;
17668
17689
  const schemaVersion = staticNumberFromExpression(schema.value, context);
17669
17690
  if (schemaVersion === 0 || schemaVersion === 1) return schemaVersion;
17670
17691
  return null;
17671
17692
  }
17693
+ function toolResponseReceiptRevisionFromOptions(node, context) {
17694
+ const directCompatibility = resolveStaticProperty(
17695
+ node,
17696
+ "compatibility",
17697
+ context
17698
+ );
17699
+ if (directCompatibility.kind === "unknown") return null;
17700
+ const bindings = resolveStaticProperty(node, "bindings", context);
17701
+ if (bindings.kind === "unknown") return null;
17702
+ const bindingCompatibility = bindings.kind === "found" ? resolveStaticProperty(bindings.value, "compatibility", context) : { kind: "absent" };
17703
+ if (bindingCompatibility.kind === "unknown") return null;
17704
+ const compatibility = directCompatibility.kind === "found" ? directCompatibility : bindingCompatibility;
17705
+ if (compatibility.kind === "absent") return void 0;
17706
+ const revision = resolveStaticProperty(
17707
+ compatibility.value,
17708
+ "toolResponseReceiptRevision",
17709
+ context
17710
+ );
17711
+ if (revision.kind === "absent") return void 0;
17712
+ if (revision.kind !== "found") return null;
17713
+ return staticStringFromExpression(revision.value, context);
17714
+ }
17672
17715
  function sandboxRuntimeDeclarationFromOptions(node, context) {
17673
17716
  const directRuntime = resolveStaticProperty(node, "runtime", context);
17674
17717
  const bindings = resolveStaticProperty(node, "bindings", context);
@@ -17769,7 +17812,12 @@ function playMetadataFromDefinePlayCall(node, context) {
17769
17812
  context
17770
17813
  );
17771
17814
  const toolErrorSchemaVersionUnknown = toolErrorSchemaVersion === null;
17772
- if (!name && !description && toolErrorSchemaVersion === void 0 && !toolErrorSchemaVersionUnknown) {
17815
+ const toolResponseReceiptRevision = toolResponseReceiptRevisionFromOptions(
17816
+ options,
17817
+ context
17818
+ );
17819
+ const toolResponseReceiptRevisionUnknown = toolResponseReceiptRevision === null;
17820
+ if (!name && !description && toolErrorSchemaVersion === void 0 && !toolErrorSchemaVersionUnknown && toolResponseReceiptRevision === void 0 && !toolResponseReceiptRevisionUnknown) {
17773
17821
  return null;
17774
17822
  }
17775
17823
  return {
@@ -17777,7 +17825,9 @@ function playMetadataFromDefinePlayCall(node, context) {
17777
17825
  description,
17778
17826
  sandboxRuntimeDeclaration,
17779
17827
  toolErrorSchemaVersion: toolErrorSchemaVersion ?? null,
17780
- toolErrorSchemaVersionUnknown
17828
+ toolErrorSchemaVersionUnknown,
17829
+ toolResponseReceiptRevision: toolResponseReceiptRevision ?? null,
17830
+ toolResponseReceiptRevisionUnknown
17781
17831
  };
17782
17832
  }
17783
17833
  function resolveExportExpression(exportName, context) {
@@ -1033,7 +1033,7 @@ var SDK_RELEASE = {
1033
1033
  // 0.3.0 introduces raw-v2: complete scrubbed provider responses are
1034
1034
  // available at toolResponse.rawV2 while toolResponse.raw and all declared
1035
1035
  // getters keep their established compatibility behavior.
1036
- version: "0.3.19",
1036
+ version: "0.3.21",
1037
1037
  updateSummary: "New raw-v2 tool responses preserve complete scrubbed provider envelopes at toolResponse.rawV2, including JSON:API included resources, links, cursors, and totals. Existing toolResponse.raw and declared getters keep working unchanged.",
1038
1038
  contracts: {
1039
1039
  api: {
@@ -15873,6 +15873,26 @@ var PLAY_AUTHORING_FIELD_REGISTRY = {
15873
15873
  description: "Artifact-pinned tool error behavior, either 0 or 1.",
15874
15874
  errorMessage: "compatibility.toolErrorSchemaVersion must be the static literal 0 or 1."
15875
15875
  },
15876
+ "compatibility.toolResponseReceiptRevision": {
15877
+ schema: Type.String({
15878
+ minLength: 1,
15879
+ maxLength: 64,
15880
+ pattern: "^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$"
15881
+ }),
15882
+ fixtures: {
15883
+ valid: "raw-v2-receipt-v1",
15884
+ invalid: "has spaces",
15885
+ absent: void 0,
15886
+ unresolved: { expression: "revision" },
15887
+ edition1: void 0
15888
+ },
15889
+ referenceType: "string",
15890
+ required: false,
15891
+ resolution: "static-required",
15892
+ issueCode: "play_authoring_binding_invalid",
15893
+ description: "Explicit durable-receipt revision for a response transformation; bump only when serialized tool output changes.",
15894
+ errorMessage: "compatibility.toolResponseReceiptRevision must be a non-empty static identifier using letters, numbers, dots, underscores, or hyphens."
15895
+ },
15876
15896
  inline: {
15877
15897
  schema: Type.Boolean(),
15878
15898
  fixtures: {
@@ -17060,7 +17080,7 @@ var PLAY_AUTHORING_CLOUD_TYPE_DECLARATIONS = [
17060
17080
  "};",
17061
17081
  "export type PlayBindings = {",
17062
17082
  ` description?: ${cloudReferenceType("description")};`,
17063
- ` compatibility?: { toolErrorSchemaVersion: ${cloudReferenceType("compatibility.toolErrorSchemaVersion")} };`,
17083
+ ` compatibility?: { toolErrorSchemaVersion?: ${cloudReferenceType("compatibility.toolErrorSchemaVersion")}; toolResponseReceiptRevision?: ${cloudReferenceType("compatibility.toolResponseReceiptRevision")} };`,
17064
17084
  ` inline?: ${cloudReferenceType("inline")};`,
17065
17085
  ` billing?: { maxCreditsPerRun?: ${cloudReferenceType("billing.maxCreditsPerRun")} };`,
17066
17086
  ` runtime?: { timeout?: ${cloudReferenceType("runtime.timeout")}; size?: ${cloudReferenceType("runtime.size")} };`,
@@ -17399,7 +17419,7 @@ function collectInlineSecretFindings(sourceCode) {
17399
17419
  var MAX_PLAY_BUNDLE_BYTES = 30 * 1024 * 1024;
17400
17420
 
17401
17421
  // ../shared_libs/plays/bundling/index.ts
17402
- var PLAY_BUNDLE_CACHE_VERSION = 35;
17422
+ var PLAY_BUNDLE_CACHE_VERSION = 36;
17403
17423
  var PLAY_ARTIFACT_CACHE_DIR = join7(
17404
17424
  tmpdir2(),
17405
17425
  `deepline-play-artifacts-v${PLAY_BUNDLE_CACHE_VERSION}`
@@ -17720,11 +17740,34 @@ function toolErrorSchemaVersionFromOptions(node, context) {
17720
17740
  "toolErrorSchemaVersion",
17721
17741
  context
17722
17742
  );
17743
+ if (schema.kind === "absent") return void 0;
17723
17744
  if (schema.kind !== "found") return null;
17724
17745
  const schemaVersion = staticNumberFromExpression(schema.value, context);
17725
17746
  if (schemaVersion === 0 || schemaVersion === 1) return schemaVersion;
17726
17747
  return null;
17727
17748
  }
17749
+ function toolResponseReceiptRevisionFromOptions(node, context) {
17750
+ const directCompatibility = resolveStaticProperty(
17751
+ node,
17752
+ "compatibility",
17753
+ context
17754
+ );
17755
+ if (directCompatibility.kind === "unknown") return null;
17756
+ const bindings = resolveStaticProperty(node, "bindings", context);
17757
+ if (bindings.kind === "unknown") return null;
17758
+ const bindingCompatibility = bindings.kind === "found" ? resolveStaticProperty(bindings.value, "compatibility", context) : { kind: "absent" };
17759
+ if (bindingCompatibility.kind === "unknown") return null;
17760
+ const compatibility = directCompatibility.kind === "found" ? directCompatibility : bindingCompatibility;
17761
+ if (compatibility.kind === "absent") return void 0;
17762
+ const revision = resolveStaticProperty(
17763
+ compatibility.value,
17764
+ "toolResponseReceiptRevision",
17765
+ context
17766
+ );
17767
+ if (revision.kind === "absent") return void 0;
17768
+ if (revision.kind !== "found") return null;
17769
+ return staticStringFromExpression(revision.value, context);
17770
+ }
17728
17771
  function sandboxRuntimeDeclarationFromOptions(node, context) {
17729
17772
  const directRuntime = resolveStaticProperty(node, "runtime", context);
17730
17773
  const bindings = resolveStaticProperty(node, "bindings", context);
@@ -17825,7 +17868,12 @@ function playMetadataFromDefinePlayCall(node, context) {
17825
17868
  context
17826
17869
  );
17827
17870
  const toolErrorSchemaVersionUnknown = toolErrorSchemaVersion === null;
17828
- if (!name && !description && toolErrorSchemaVersion === void 0 && !toolErrorSchemaVersionUnknown) {
17871
+ const toolResponseReceiptRevision = toolResponseReceiptRevisionFromOptions(
17872
+ options,
17873
+ context
17874
+ );
17875
+ const toolResponseReceiptRevisionUnknown = toolResponseReceiptRevision === null;
17876
+ if (!name && !description && toolErrorSchemaVersion === void 0 && !toolErrorSchemaVersionUnknown && toolResponseReceiptRevision === void 0 && !toolResponseReceiptRevisionUnknown) {
17829
17877
  return null;
17830
17878
  }
17831
17879
  return {
@@ -17833,7 +17881,9 @@ function playMetadataFromDefinePlayCall(node, context) {
17833
17881
  description,
17834
17882
  sandboxRuntimeDeclaration,
17835
17883
  toolErrorSchemaVersion: toolErrorSchemaVersion ?? null,
17836
- toolErrorSchemaVersionUnknown
17884
+ toolErrorSchemaVersionUnknown,
17885
+ toolResponseReceiptRevision: toolResponseReceiptRevision ?? null,
17886
+ toolResponseReceiptRevisionUnknown
17837
17887
  };
17838
17888
  }
17839
17889
  function resolveExportExpression(exportName, context) {
@@ -1098,7 +1098,12 @@ type PlayAuthoringAstBindings = {
1098
1098
  type PlayAuthoringBindings = {
1099
1099
  description?: string;
1100
1100
  compatibility?: {
1101
- toolErrorSchemaVersion: ToolExecutionErrorSchemaVersion;
1101
+ toolErrorSchemaVersion?: ToolExecutionErrorSchemaVersion;
1102
+ /**
1103
+ * Bump only when a Play's response transformation changes serialized tool
1104
+ * output and requires fresh durable tool receipts.
1105
+ */
1106
+ toolResponseReceiptRevision?: string;
1102
1107
  };
1103
1108
  inline?: boolean;
1104
1109
  billing?: {
@@ -1528,6 +1533,24 @@ declare const PLAY_AUTHORING_FIELD_REGISTRY: {
1528
1533
  readonly description: "Artifact-pinned tool error behavior, either 0 or 1.";
1529
1534
  readonly errorMessage: "compatibility.toolErrorSchemaVersion must be the static literal 0 or 1.";
1530
1535
  };
1536
+ readonly 'compatibility.toolResponseReceiptRevision': {
1537
+ readonly schema: _sinclair_typebox.TString;
1538
+ readonly fixtures: {
1539
+ readonly valid: "raw-v2-receipt-v1";
1540
+ readonly invalid: "has spaces";
1541
+ readonly absent: undefined;
1542
+ readonly unresolved: {
1543
+ readonly expression: "revision";
1544
+ };
1545
+ readonly edition1: undefined;
1546
+ };
1547
+ readonly referenceType: "string";
1548
+ readonly required: false;
1549
+ readonly resolution: "static-required";
1550
+ readonly issueCode: "play_authoring_binding_invalid";
1551
+ readonly description: "Explicit durable-receipt revision for a response transformation; bump only when serialized tool output changes.";
1552
+ readonly errorMessage: "compatibility.toolResponseReceiptRevision must be a non-empty static identifier using letters, numbers, dots, underscores, or hyphens.";
1553
+ };
1531
1554
  readonly inline: {
1532
1555
  readonly schema: _sinclair_typebox.TBoolean;
1533
1556
  readonly fixtures: {
@@ -1098,7 +1098,12 @@ type PlayAuthoringAstBindings = {
1098
1098
  type PlayAuthoringBindings = {
1099
1099
  description?: string;
1100
1100
  compatibility?: {
1101
- toolErrorSchemaVersion: ToolExecutionErrorSchemaVersion;
1101
+ toolErrorSchemaVersion?: ToolExecutionErrorSchemaVersion;
1102
+ /**
1103
+ * Bump only when a Play's response transformation changes serialized tool
1104
+ * output and requires fresh durable tool receipts.
1105
+ */
1106
+ toolResponseReceiptRevision?: string;
1102
1107
  };
1103
1108
  inline?: boolean;
1104
1109
  billing?: {
@@ -1528,6 +1533,24 @@ declare const PLAY_AUTHORING_FIELD_REGISTRY: {
1528
1533
  readonly description: "Artifact-pinned tool error behavior, either 0 or 1.";
1529
1534
  readonly errorMessage: "compatibility.toolErrorSchemaVersion must be the static literal 0 or 1.";
1530
1535
  };
1536
+ readonly 'compatibility.toolResponseReceiptRevision': {
1537
+ readonly schema: _sinclair_typebox.TString;
1538
+ readonly fixtures: {
1539
+ readonly valid: "raw-v2-receipt-v1";
1540
+ readonly invalid: "has spaces";
1541
+ readonly absent: undefined;
1542
+ readonly unresolved: {
1543
+ readonly expression: "revision";
1544
+ };
1545
+ readonly edition1: undefined;
1546
+ };
1547
+ readonly referenceType: "string";
1548
+ readonly required: false;
1549
+ readonly resolution: "static-required";
1550
+ readonly issueCode: "play_authoring_binding_invalid";
1551
+ readonly description: "Explicit durable-receipt revision for a response transformation; bump only when serialized tool output changes.";
1552
+ readonly errorMessage: "compatibility.toolResponseReceiptRevision must be a non-empty static identifier using letters, numbers, dots, underscores, or hyphens.";
1553
+ };
1531
1554
  readonly inline: {
1532
1555
  readonly schema: _sinclair_typebox.TBoolean;
1533
1556
  readonly fixtures: {
package/dist/index.d.mts CHANGED
@@ -1,6 +1,6 @@
1
1
  /// <reference path="./text-imports.d.ts" />
2
- 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-Bd0O94yZ.mjs';
3
- 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-Bd0O94yZ.mjs';
2
+ 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-DwYe2C2S.mjs';
3
+ 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-DwYe2C2S.mjs';
4
4
  import '@sinclair/typebox';
5
5
 
6
6
  declare const FIXTURE_BEHAVIOR_VERSION: 1;
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /// <reference path="./text-imports.d.ts" />
2
- 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-Bd0O94yZ.js';
3
- 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-Bd0O94yZ.js';
2
+ 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-DwYe2C2S.js';
3
+ 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-DwYe2C2S.js';
4
4
  import '@sinclair/typebox';
5
5
 
6
6
  declare const FIXTURE_BEHAVIOR_VERSION: 1;
package/dist/index.js CHANGED
@@ -783,7 +783,7 @@ var SDK_RELEASE = {
783
783
  // 0.3.0 introduces raw-v2: complete scrubbed provider responses are
784
784
  // available at toolResponse.rawV2 while toolResponse.raw and all declared
785
785
  // getters keep their established compatibility behavior.
786
- version: "0.3.19",
786
+ version: "0.3.21",
787
787
  updateSummary: "New raw-v2 tool responses preserve complete scrubbed provider envelopes at toolResponse.rawV2, including JSON:API included resources, links, cursors, and totals. Existing toolResponse.raw and declared getters keep working unchanged.",
788
788
  contracts: {
789
789
  api: {
package/dist/index.mjs CHANGED
@@ -706,7 +706,7 @@ var SDK_RELEASE = {
706
706
  // 0.3.0 introduces raw-v2: complete scrubbed provider responses are
707
707
  // available at toolResponse.rawV2 while toolResponse.raw and all declared
708
708
  // getters keep their established compatibility behavior.
709
- version: "0.3.19",
709
+ version: "0.3.21",
710
710
  updateSummary: "New raw-v2 tool responses preserve complete scrubbed provider envelopes at toolResponse.rawV2, including JSON:API included resources, links, cursors, and totals. Existing toolResponse.raw and declared getters keep working unchanged.",
711
711
  contracts: {
712
712
  api: {
@@ -233,8 +233,8 @@
233
233
  "dist/cli/index.js",
234
234
  "dist/cli/index.mjs",
235
235
  "dist/cli/text-imports.d.ts",
236
- "dist/compiler-manifest-Bd0O94yZ.d.mts",
237
- "dist/compiler-manifest-Bd0O94yZ.d.ts",
236
+ "dist/compiler-manifest-DwYe2C2S.d.mts",
237
+ "dist/compiler-manifest-DwYe2C2S.d.ts",
238
238
  "dist/helpers.d.mts",
239
239
  "dist/helpers.d.ts",
240
240
  "dist/helpers.js",
@@ -1,11 +1,15 @@
1
1
  /// <reference path="./text-imports.d.ts" />
2
- import { T as ToolExecutionErrorSchemaVersion, P as PlayAuthoringContractEdition, a as PlayArtifactKind$1, b as PlaySandboxRuntimeDeclaration, c as PlayCompilerManifest } from '../compiler-manifest-Bd0O94yZ.mjs';
3
- export { d as PLAY_ARTIFACT_KINDS } from '../compiler-manifest-Bd0O94yZ.mjs';
2
+ import { T as ToolExecutionErrorSchemaVersion, P as PlayAuthoringContractEdition, a as PlayArtifactKind$1, b as PlaySandboxRuntimeDeclaration, c as PlayCompilerManifest } from '../compiler-manifest-DwYe2C2S.mjs';
3
+ export { d as PLAY_ARTIFACT_KINDS } from '../compiler-manifest-DwYe2C2S.mjs';
4
4
  import '@sinclair/typebox';
5
5
 
6
6
  /**
7
7
  * Public tool-response contracts shared by the API, SDK, Play bundler, and
8
- * runtime. A response contract is transport behavior, never Play authoring.
8
+ * runtime. This is a versioned response transformation contract: a change to
9
+ * the persisted public tool-result shape must introduce a new value here and
10
+ * have newly built Play artifacts select it. Receipt-cache revisions are
11
+ * intentionally separate: ordinary response-contract changes do not refresh
12
+ * durable receipts unless the response transformation changed as well.
9
13
  */
10
14
  declare const V2_TOOL_RESPONSE_CONTRACT: "v2-tool-response";
11
15
  declare const RAW_V2_TOOL_RESPONSE_CONTRACT: "raw-v2";
@@ -33,6 +37,8 @@ type PlayArtifactCompatibility = {
33
37
  authoringContractEdition?: PlayAuthoringContractEdition;
34
38
  /** Missing preserves the raw-only V2 execute response contract. */
35
39
  toolResponseContract?: ToolResponseContract;
40
+ /** Missing preserves the receipt namespace of artifacts created before this revision existed. */
41
+ toolResponseReceiptRevision?: string;
36
42
  };
37
43
  /** The only executable Play artifact contract. */
38
44
  type PlayArtifactKind = 'cjs_node20';
@@ -1,11 +1,15 @@
1
1
  /// <reference path="./text-imports.d.ts" />
2
- import { T as ToolExecutionErrorSchemaVersion, P as PlayAuthoringContractEdition, a as PlayArtifactKind$1, b as PlaySandboxRuntimeDeclaration, c as PlayCompilerManifest } from '../compiler-manifest-Bd0O94yZ.js';
3
- export { d as PLAY_ARTIFACT_KINDS } from '../compiler-manifest-Bd0O94yZ.js';
2
+ import { T as ToolExecutionErrorSchemaVersion, P as PlayAuthoringContractEdition, a as PlayArtifactKind$1, b as PlaySandboxRuntimeDeclaration, c as PlayCompilerManifest } from '../compiler-manifest-DwYe2C2S.js';
3
+ export { d as PLAY_ARTIFACT_KINDS } from '../compiler-manifest-DwYe2C2S.js';
4
4
  import '@sinclair/typebox';
5
5
 
6
6
  /**
7
7
  * Public tool-response contracts shared by the API, SDK, Play bundler, and
8
- * runtime. A response contract is transport behavior, never Play authoring.
8
+ * runtime. This is a versioned response transformation contract: a change to
9
+ * the persisted public tool-result shape must introduce a new value here and
10
+ * have newly built Play artifacts select it. Receipt-cache revisions are
11
+ * intentionally separate: ordinary response-contract changes do not refresh
12
+ * durable receipts unless the response transformation changed as well.
9
13
  */
10
14
  declare const V2_TOOL_RESPONSE_CONTRACT: "v2-tool-response";
11
15
  declare const RAW_V2_TOOL_RESPONSE_CONTRACT: "raw-v2";
@@ -33,6 +37,8 @@ type PlayArtifactCompatibility = {
33
37
  authoringContractEdition?: PlayAuthoringContractEdition;
34
38
  /** Missing preserves the raw-only V2 execute response contract. */
35
39
  toolResponseContract?: ToolResponseContract;
40
+ /** Missing preserves the receipt namespace of artifacts created before this revision existed. */
41
+ toolResponseReceiptRevision?: string;
36
42
  };
37
43
  /** The only executable Play artifact contract. */
38
44
  type PlayArtifactKind = 'cjs_node20';