deepline 0.3.33 → 0.3.34

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.
@@ -199,7 +199,7 @@ export const SDK_RELEASE = {
199
199
  // available at toolResponse.rawV2 while toolResponse.raw and all declared
200
200
  // getters keep their established compatibility behavior.
201
201
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
202
- version: '0.3.33',
202
+ version: '0.3.34',
203
203
  updateSummary:
204
204
  'Automatic CLI updates are now enabled by default. To opt out, run `deepline settings autoupdate off`; use `deepline settings autoupdate on` to re-enable updates or `deepline settings autoupdate pin <version>` to hold an exact release. This release also adds raw-v2 tool responses at toolResponse.rawV2 while preserving existing toolResponse.raw and declared getters.',
205
205
  packageCapabilities: {
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Execution ABI for a persisted Play launch.
3
+ *
4
+ * This is deliberately separate from a customer Play artifact version and a
5
+ * worker image/release id. The artifact is immutable customer code; this
6
+ * protocol names the stable coordinator <-> worker <-> runner contract used
7
+ * to resume that artifact. A worker may support several protocol versions,
8
+ * but it must reject an unknown one loudly rather than guessing how to replay
9
+ * a persisted run.
10
+ */
11
+ export const PLAY_RUNTIME_PROTOCOL = {
12
+ /** Launches written before this field existed. */
13
+ legacy: 0,
14
+ /** Current scheduler/runner protocol. */
15
+ current: 1,
16
+ } as const;
17
+
18
+ export type PlayRuntimeProtocolVersion =
19
+ (typeof PLAY_RUNTIME_PROTOCOL)[keyof typeof PLAY_RUNTIME_PROTOCOL];
20
+
21
+ const SUPPORTED_PROTOCOLS = new Set<number>([
22
+ PLAY_RUNTIME_PROTOCOL.legacy,
23
+ PLAY_RUNTIME_PROTOCOL.current,
24
+ ]);
25
+
26
+ /** New launches always get an explicit protocol snapshot. */
27
+ export function protocolForNewPlayRuntimeLaunch(
28
+ value?: PlayRuntimeProtocolVersion | null,
29
+ ): PlayRuntimeProtocolVersion {
30
+ return value == null
31
+ ? PLAY_RUNTIME_PROTOCOL.current
32
+ : protocolForPersistedPlayRuntimeLaunch(value);
33
+ }
34
+
35
+ /** Missing is valid only for historic rows written before the field existed. */
36
+ export function protocolForPersistedPlayRuntimeLaunch(
37
+ value: unknown,
38
+ ): PlayRuntimeProtocolVersion {
39
+ if (value == null) return PLAY_RUNTIME_PROTOCOL.legacy;
40
+ if (
41
+ typeof value === 'number' &&
42
+ Number.isSafeInteger(value) &&
43
+ SUPPORTED_PROTOCOLS.has(value)
44
+ ) {
45
+ return value as PlayRuntimeProtocolVersion;
46
+ }
47
+ throw new Error(
48
+ `Unsupported Play runtime protocol ${JSON.stringify(value)}. The run remains durable but requires a worker with an explicit compatibility handler.`,
49
+ );
50
+ }
51
+
52
+ /**
53
+ * A worker declares the persisted protocols it can execute. Keep an old
54
+ * protocol here until every open run using it is terminal and retained history
55
+ * no longer needs replay support; do not use deployment SHA as this boundary.
56
+ */
57
+ export const WORKER_SUPPORTED_PLAY_RUNTIME_PROTOCOLS = [
58
+ PLAY_RUNTIME_PROTOCOL.legacy,
59
+ PLAY_RUNTIME_PROTOCOL.current,
60
+ ] as const satisfies readonly PlayRuntimeProtocolVersion[];
61
+
62
+ export function assertWorkerSupportsPlayRuntimeProtocol(
63
+ value: unknown,
64
+ supported: readonly PlayRuntimeProtocolVersion[] = WORKER_SUPPORTED_PLAY_RUNTIME_PROTOCOLS,
65
+ ): PlayRuntimeProtocolVersion {
66
+ const protocol = protocolForPersistedPlayRuntimeLaunch(value);
67
+ if (supported.includes(protocol)) return protocol;
68
+ throw new Error(
69
+ `Play runtime protocol ${protocol} is not supported by this worker. Refuse to execute rather than replaying with an incompatible runtime.`,
70
+ );
71
+ }
@@ -22,6 +22,7 @@ import type { PlayRunnerRuntimeTiming } from './protocol';
22
22
  import type { RuntimeTestPolicyOverrides } from './test-runtime-seams';
23
23
  import type { PlayRunInputPayload } from './play-input';
24
24
  import type { RuntimeSandboxPlacementPolicyId } from './runtime-sandbox-placement-policy';
25
+ import type { PlayRuntimeProtocolVersion } from './execution-protocol';
25
26
 
26
27
  export const PLAY_SCHEDULER_BACKENDS = {
27
28
  /**
@@ -48,6 +49,8 @@ export type PlaySchedulerSubmitInput = {
48
49
  runtimeArtifact?: unknown;
49
50
  artifactHash: string;
50
51
  graphHash: string;
52
+ /** Immutable scheduler/worker/runner ABI snapshot (not a Git SHA). */
53
+ runtimeProtocolVersion?: PlayRuntimeProtocolVersion | null;
51
54
  input: PlayRunInputPayload;
52
55
  /** Convex metadata for the exact input saved before scheduler submission. */
53
56
  inputFileId?: string;
package/dist/cli/index.js CHANGED
@@ -1043,7 +1043,7 @@ var SDK_RELEASE = {
1043
1043
  // available at toolResponse.rawV2 while toolResponse.raw and all declared
1044
1044
  // getters keep their established compatibility behavior.
1045
1045
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
1046
- version: "0.3.33",
1046
+ version: "0.3.34",
1047
1047
  updateSummary: "Automatic CLI updates are now enabled by default. To opt out, run `deepline settings autoupdate off`; use `deepline settings autoupdate on` to re-enable updates or `deepline settings autoupdate pin <version>` to hold an exact release. This release also adds raw-v2 tool responses at toolResponse.rawV2 while preserving existing toolResponse.raw and declared getters.",
1048
1048
  packageCapabilities: {
1049
1049
  updatePreferences: 1
@@ -1029,7 +1029,7 @@ var SDK_RELEASE = {
1029
1029
  // available at toolResponse.rawV2 while toolResponse.raw and all declared
1030
1030
  // getters keep their established compatibility behavior.
1031
1031
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
1032
- version: "0.3.33",
1032
+ version: "0.3.34",
1033
1033
  updateSummary: "Automatic CLI updates are now enabled by default. To opt out, run `deepline settings autoupdate off`; use `deepline settings autoupdate on` to re-enable updates or `deepline settings autoupdate pin <version>` to hold an exact release. This release also adds raw-v2 tool responses at toolResponse.rawV2 while preserving existing toolResponse.raw and declared getters.",
1034
1034
  packageCapabilities: {
1035
1035
  updatePreferences: 1
package/dist/index.js CHANGED
@@ -779,7 +779,7 @@ var SDK_RELEASE = {
779
779
  // available at toolResponse.rawV2 while toolResponse.raw and all declared
780
780
  // getters keep their established compatibility behavior.
781
781
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
782
- version: "0.3.33",
782
+ version: "0.3.34",
783
783
  updateSummary: "Automatic CLI updates are now enabled by default. To opt out, run `deepline settings autoupdate off`; use `deepline settings autoupdate on` to re-enable updates or `deepline settings autoupdate pin <version>` to hold an exact release. This release also adds raw-v2 tool responses at toolResponse.rawV2 while preserving existing toolResponse.raw and declared getters.",
784
784
  packageCapabilities: {
785
785
  updatePreferences: 1
package/dist/index.mjs CHANGED
@@ -702,7 +702,7 @@ var SDK_RELEASE = {
702
702
  // available at toolResponse.rawV2 while toolResponse.raw and all declared
703
703
  // getters keep their established compatibility behavior.
704
704
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
705
- version: "0.3.33",
705
+ version: "0.3.34",
706
706
  updateSummary: "Automatic CLI updates are now enabled by default. To opt out, run `deepline settings autoupdate off`; use `deepline settings autoupdate on` to re-enable updates or `deepline settings autoupdate pin <version>` to hold an exact release. This release also adds raw-v2 tool responses at toolResponse.rawV2 while preserving existing toolResponse.raw and declared getters.",
707
707
  packageCapabilities: {
708
708
  updatePreferences: 1
@@ -67,6 +67,7 @@
67
67
  "dist/bundling-sources/shared_libs/play-runtime/execution-capabilities.ts",
68
68
  "dist/bundling-sources/shared_libs/play-runtime/execution-ledger-store.ts",
69
69
  "dist/bundling-sources/shared_libs/play-runtime/execution-plan.ts",
70
+ "dist/bundling-sources/shared_libs/play-runtime/execution-protocol.ts",
70
71
  "dist/bundling-sources/shared_libs/play-runtime/extractor-targets.ts",
71
72
  "dist/bundling-sources/shared_libs/play-runtime/fixture-behavior.ts",
72
73
  "dist/bundling-sources/shared_libs/play-runtime/fullenrich-batching.ts",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "deepline",
3
- "version": "0.3.33",
3
+ "version": "0.3.34",
4
4
  "description": "GTM data CLI and TypeScript SDK for coding agents",
5
5
  "license": "MIT",
6
6
  "homepage": "https://code.deepline.com",