deepline 0.1.118 → 0.1.120

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.
Files changed (149) hide show
  1. package/README.md +4 -0
  2. package/dist/bundling-sources/apps/play-runner-workers/src/runtime/README.md +21 -0
  3. package/dist/bundling-sources/apps/play-runner-workers/src/runtime/batching.ts +185 -0
  4. package/dist/bundling-sources/apps/play-runner-workers/src/runtime/tool-batch.ts +107 -0
  5. package/dist/{repo → bundling-sources}/sdk/src/client.ts +116 -12
  6. package/dist/bundling-sources/sdk/src/compat.ts +191 -0
  7. package/dist/bundling-sources/sdk/src/gtm.ts +146 -0
  8. package/dist/bundling-sources/sdk/src/helpers.ts +12 -0
  9. package/dist/{repo → bundling-sources}/sdk/src/index.ts +2 -1
  10. package/dist/{repo → bundling-sources}/sdk/src/play.ts +3 -1
  11. package/dist/{repo → bundling-sources}/sdk/src/plays/bundle-play-file.ts +17 -5
  12. package/dist/{repo → bundling-sources}/sdk/src/release.ts +2 -2
  13. package/dist/{repo → bundling-sources}/sdk/src/runs/observe-transport.ts +2 -3
  14. package/dist/bundling-sources/shared_libs/play-data-plane/index.ts +3 -0
  15. package/dist/bundling-sources/shared_libs/play-runtime/app-runtime-api.ts +838 -0
  16. package/dist/bundling-sources/shared_libs/play-runtime/context.ts +5510 -0
  17. package/dist/bundling-sources/shared_libs/play-runtime/ctx-contract.ts +261 -0
  18. package/dist/bundling-sources/shared_libs/play-runtime/ctx-types.ts +828 -0
  19. package/dist/bundling-sources/shared_libs/play-runtime/dataset-id.ts +10 -0
  20. package/dist/bundling-sources/shared_libs/play-runtime/daytona-runtime-config.ts +50 -0
  21. package/dist/bundling-sources/shared_libs/play-runtime/durability-store.ts +20 -0
  22. package/dist/bundling-sources/shared_libs/play-runtime/event-wait-tools.ts +9 -0
  23. package/dist/bundling-sources/shared_libs/play-runtime/governor/in-memory-rate-state-backend.ts +171 -0
  24. package/dist/bundling-sources/shared_libs/play-runtime/hatchet-cold-execution-diagnosis.ts +321 -0
  25. package/dist/bundling-sources/shared_libs/play-runtime/hatchet-cold-execution-target.ts +158 -0
  26. package/dist/bundling-sources/shared_libs/play-runtime/internal-step-ids.ts +34 -0
  27. package/dist/bundling-sources/shared_libs/play-runtime/ledger-safe-payload.ts +34 -0
  28. package/dist/bundling-sources/shared_libs/play-runtime/live-state-contract.ts +50 -0
  29. package/dist/bundling-sources/shared_libs/play-runtime/map-execution-frame.ts +119 -0
  30. package/dist/{repo → bundling-sources}/shared_libs/play-runtime/map-row-identity.ts +1 -1
  31. package/dist/bundling-sources/shared_libs/play-runtime/play-latency-trace.ts +636 -0
  32. package/dist/bundling-sources/shared_libs/play-runtime/postgres-json.ts +9 -0
  33. package/dist/bundling-sources/shared_libs/play-runtime/progress-emitter.ts +197 -0
  34. package/dist/bundling-sources/shared_libs/play-runtime/projection.ts +262 -0
  35. package/dist/bundling-sources/shared_libs/play-runtime/protocol.ts +143 -0
  36. package/dist/bundling-sources/shared_libs/play-runtime/public-play-contract.ts +42 -0
  37. package/dist/bundling-sources/shared_libs/play-runtime/receipt-status.ts +40 -0
  38. package/dist/bundling-sources/shared_libs/play-runtime/runtime-actions.ts +178 -0
  39. package/dist/bundling-sources/shared_libs/play-runtime/runtime-api.ts +4015 -0
  40. package/dist/bundling-sources/shared_libs/play-runtime/runtime-constraints.ts +2 -0
  41. package/dist/bundling-sources/shared_libs/play-runtime/runtime-pg-driver-neon-serverless.ts +238 -0
  42. package/dist/bundling-sources/shared_libs/play-runtime/runtime-pg-driver-pg.ts +53 -0
  43. package/dist/bundling-sources/shared_libs/play-runtime/runtime-pg-driver.ts +149 -0
  44. package/dist/bundling-sources/shared_libs/play-runtime/suspension.ts +68 -0
  45. package/dist/bundling-sources/shared_libs/play-runtime/tool-batch-executor.ts +149 -0
  46. package/dist/bundling-sources/shared_libs/play-runtime/tool-result-types.ts +159 -0
  47. package/dist/bundling-sources/shared_libs/play-runtime/tracing.ts +33 -0
  48. package/dist/bundling-sources/shared_libs/play-runtime/waterfall-replay.ts +79 -0
  49. package/dist/bundling-sources/shared_libs/play-runtime/worker-api-types.ts +139 -0
  50. package/dist/bundling-sources/shared_libs/plays/artifact-transport.ts +14 -0
  51. package/dist/bundling-sources/shared_libs/plays/artifact-types.ts +49 -0
  52. package/dist/bundling-sources/shared_libs/plays/compiler-manifest.ts +41 -0
  53. package/dist/bundling-sources/shared_libs/plays/dataset-summary.ts +163 -0
  54. package/dist/bundling-sources/shared_libs/plays/definition.ts +267 -0
  55. package/dist/bundling-sources/shared_libs/plays/file-refs.ts +11 -0
  56. package/dist/bundling-sources/shared_libs/plays/input-contract.ts +146 -0
  57. package/dist/bundling-sources/shared_libs/plays/resolve-static-pipeline.ts +190 -0
  58. package/dist/bundling-sources/shared_libs/plays/runtime-validation.ts +417 -0
  59. package/dist/bundling-sources/shared_libs/plays/tool-codegen.ts +142 -0
  60. package/dist/bundling-sources/shared_libs/security/safe-outbound-fetch.ts +274 -0
  61. package/dist/bundling-sources/shared_libs/temporal/preview-config.ts +150 -0
  62. package/dist/cli/index.js +839 -2207
  63. package/dist/cli/index.mjs +870 -2253
  64. package/dist/compiler-manifest-BjoRENv9.d.mts +227 -0
  65. package/dist/compiler-manifest-BjoRENv9.d.ts +227 -0
  66. package/dist/index.d.mts +8 -231
  67. package/dist/index.d.ts +8 -231
  68. package/dist/index.js +101 -15
  69. package/dist/index.mjs +101 -15
  70. package/dist/plays/bundle-play-file.d.mts +120 -0
  71. package/dist/plays/bundle-play-file.d.ts +120 -0
  72. package/dist/plays/bundle-play-file.mjs +1830 -0
  73. package/dist/viewer/viewer.js +25 -2
  74. package/package.json +4 -9
  75. /package/dist/{repo → bundling-sources}/apps/play-runner-workers/src/child-play-await.ts +0 -0
  76. /package/dist/{repo → bundling-sources}/apps/play-runner-workers/src/child-play-submit.ts +0 -0
  77. /package/dist/{repo → bundling-sources}/apps/play-runner-workers/src/coordinator-entry.ts +0 -0
  78. /package/dist/{repo → bundling-sources}/apps/play-runner-workers/src/dedup-do.ts +0 -0
  79. /package/dist/{repo → bundling-sources}/apps/play-runner-workers/src/entry.ts +0 -0
  80. /package/dist/{repo → bundling-sources}/apps/play-runner-workers/src/runtime/csv-rows.ts +0 -0
  81. /package/dist/{repo → bundling-sources}/apps/play-runner-workers/src/runtime/dataset-handles.ts +0 -0
  82. /package/dist/{repo → bundling-sources}/apps/play-runner-workers/src/runtime/harness-receipt-store.ts +0 -0
  83. /package/dist/{repo → bundling-sources}/apps/play-runner-workers/src/runtime/live-progress.ts +0 -0
  84. /package/dist/{repo → bundling-sources}/apps/play-runner-workers/src/runtime/map-chunk-plan.ts +0 -0
  85. /package/dist/{repo → bundling-sources}/apps/play-runner-workers/src/runtime/receipts.ts +0 -0
  86. /package/dist/{repo → bundling-sources}/apps/play-runner-workers/src/runtime/row-isolation.ts +0 -0
  87. /package/dist/{repo → bundling-sources}/apps/play-runner-workers/src/runtime/tool-http-errors.ts +0 -0
  88. /package/dist/{repo → bundling-sources}/apps/play-runner-workers/src/workflow-instance-create.ts +0 -0
  89. /package/dist/{repo → bundling-sources}/apps/play-runner-workers/src/workflow-retry-state.ts +0 -0
  90. /package/dist/{repo → bundling-sources}/apps/play-runner-workers/src/workflow-retry.ts +0 -0
  91. /package/dist/{repo → bundling-sources}/sdk/src/agent-runtime.ts +0 -0
  92. /package/dist/{repo → bundling-sources}/sdk/src/config.ts +0 -0
  93. /package/dist/{repo → bundling-sources}/sdk/src/errors.ts +0 -0
  94. /package/dist/{repo → bundling-sources}/sdk/src/http.ts +0 -0
  95. /package/dist/{repo → bundling-sources}/sdk/src/plays/harness-stub.ts +0 -0
  96. /package/dist/{repo → bundling-sources}/sdk/src/plays/local-file-discovery.ts +0 -0
  97. /package/dist/{repo → bundling-sources}/sdk/src/stream-reconnect.ts +0 -0
  98. /package/dist/{repo → bundling-sources}/sdk/src/tool-output.ts +0 -0
  99. /package/dist/{repo → bundling-sources}/sdk/src/types.ts +0 -0
  100. /package/dist/{repo → bundling-sources}/sdk/src/version.ts +0 -0
  101. /package/dist/{repo → bundling-sources}/sdk/src/worker-play-entry.ts +0 -0
  102. /package/dist/{repo → bundling-sources}/shared_libs/play-data-plane/cell-policy.ts +0 -0
  103. /package/dist/{repo → bundling-sources}/shared_libs/play-data-plane/column-names.ts +0 -0
  104. /package/dist/{repo → bundling-sources}/shared_libs/play-data-plane/sheet-contract.ts +0 -0
  105. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/backend.ts +0 -0
  106. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/batch-runtime.ts +0 -0
  107. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/batching-types.ts +0 -0
  108. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/cell-staleness.ts +0 -0
  109. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/coordinator-headers.ts +0 -0
  110. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/csv-rename.ts +0 -0
  111. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/db-session-crypto.ts +0 -0
  112. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/db-session-plan.ts +0 -0
  113. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/db-session.ts +0 -0
  114. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/dedup-backend.ts +0 -0
  115. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/default-batch-strategies.ts +0 -0
  116. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/email-status.ts +0 -0
  117. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/execution-plan.ts +0 -0
  118. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/extractor-targets.ts +0 -0
  119. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/fullenrich-batching.ts +0 -0
  120. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/governor/coordinator-rate-state-backend.ts +0 -0
  121. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/governor/governor.ts +0 -0
  122. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/governor/policy.ts +0 -0
  123. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/governor/rate-state-backend.ts +0 -0
  124. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/live-events.ts +0 -0
  125. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/play-runtime-batching-registry.ts +0 -0
  126. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/profiles.ts +0 -0
  127. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/providers.ts +0 -0
  128. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/run-failure.ts +0 -0
  129. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/run-ledger.ts +0 -0
  130. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/run-snapshot-stream.ts +0 -0
  131. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/scheduler-backend.ts +0 -0
  132. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/secret-capability.ts +0 -0
  133. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/secret-redaction.ts +0 -0
  134. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/step-lifecycle-tracker.ts +0 -0
  135. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/step-program-dataset-builder.ts +0 -0
  136. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/submit-limits.ts +0 -0
  137. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/tool-result.ts +0 -0
  138. /package/dist/{repo → bundling-sources}/shared_libs/play-runtime/work-receipts.ts +0 -0
  139. /package/dist/{repo → bundling-sources}/shared_libs/plays/bootstrap-routes.ts +0 -0
  140. /package/dist/{repo → bundling-sources}/shared_libs/plays/bundling/index.ts +0 -0
  141. /package/dist/{repo → bundling-sources}/shared_libs/plays/bundling/limits.ts +0 -0
  142. /package/dist/{repo → bundling-sources}/shared_libs/plays/contracts.ts +0 -0
  143. /package/dist/{repo → bundling-sources}/shared_libs/plays/dataset.ts +0 -0
  144. /package/dist/{repo → bundling-sources}/shared_libs/plays/row-identity.ts +0 -0
  145. /package/dist/{repo → bundling-sources}/shared_libs/plays/secret-guardrails.ts +0 -0
  146. /package/dist/{repo → bundling-sources}/shared_libs/plays/static-pipeline.ts +0 -0
  147. /package/dist/{repo → bundling-sources}/shared_libs/security/outbound-url-policy.ts +0 -0
  148. /package/dist/{repo → bundling-sources}/shared_libs/security/safe-fetch.ts +0 -0
  149. /package/dist/{repo → bundling-sources}/shared_libs/temporal/constants.ts +0 -0
@@ -0,0 +1,146 @@
1
+ /**
2
+ * GTM normalization primitives used by generated plays and user-authored
3
+ * prospecting notebooks.
4
+ *
5
+ * Keep these helpers small, deterministic, and schema-shaped. They are not an
6
+ * agent or a provider policy layer; they are the shared vocabulary for turning
7
+ * messy GTM rows into contact/account fields that Deepline plays understand.
8
+ * As provider enums and row conventions get sharper, improve them here so
9
+ * bootstrapped plays get better without carrying more generated glue.
10
+ *
11
+ * Do not add helpers that extract values from tool/play results. Result values
12
+ * should come from declared getters (`extractedValues.email.get()`) or declared
13
+ * play output fields (`result.email`). Helpers in this file normalize input
14
+ * rows and candidate entities, not opaque execution envelopes.
15
+ */
16
+
17
+ export type GtmRow = Record<string, unknown>;
18
+
19
+ export type GtmContact = GtmRow & {
20
+ first_name: string;
21
+ last_name: string;
22
+ domain: string;
23
+ company_name: string;
24
+ linkedin_url: string;
25
+ title: string;
26
+ email: string;
27
+ phone: string;
28
+ };
29
+
30
+ export function normalizeGtmRows(value: unknown): GtmRow[] {
31
+ if (!value) return [];
32
+ if (Array.isArray(value)) return value.filter(isRecord);
33
+ if (isRecord(value)) {
34
+ for (const key of ['rows', 'people', 'contacts', 'companies', 'data']) {
35
+ const nested = value[key];
36
+ if (Array.isArray(nested)) return nested.filter(isRecord);
37
+ }
38
+ }
39
+ return [];
40
+ }
41
+
42
+ export function normalizeGtmContact(row: GtmRow): GtmContact {
43
+ const first = pickString(row, [
44
+ 'first_name',
45
+ 'FIRST_NAME',
46
+ 'firstName',
47
+ 'first',
48
+ 'firstname',
49
+ 'First Name',
50
+ 'given_name',
51
+ 'givenName',
52
+ ]);
53
+ const last = pickString(row, [
54
+ 'last_name',
55
+ 'LAST_NAME',
56
+ 'lastName',
57
+ 'last',
58
+ 'lastname',
59
+ 'Last Name',
60
+ 'family_name',
61
+ 'familyName',
62
+ ]);
63
+ const full = pickString(row, [
64
+ 'full_name',
65
+ 'FULL_NAME',
66
+ 'name',
67
+ 'person_name',
68
+ ]);
69
+ const split = splitName(full);
70
+ return {
71
+ ...row,
72
+ first_name: first || split.first,
73
+ last_name: last || split.last,
74
+ domain: pickString(row, [
75
+ 'domain',
76
+ 'DOMAIN',
77
+ 'company_domain',
78
+ 'COMPANY_DOMAIN',
79
+ 'companyDomain',
80
+ 'website_domain',
81
+ 'company website',
82
+ 'Company Domain',
83
+ 'Website',
84
+ 'website',
85
+ ]),
86
+ company_name: pickString(row, [
87
+ 'company_name',
88
+ 'COMPANY_NAME',
89
+ 'company',
90
+ 'organization_name',
91
+ 'account_name',
92
+ 'Company',
93
+ 'Account',
94
+ ]),
95
+ linkedin_url: pickString(row, [
96
+ 'linkedin_url',
97
+ 'LINKEDIN_URL',
98
+ 'linkedin',
99
+ 'person_linkedin_url',
100
+ 'linkedin_profile',
101
+ 'LinkedIn',
102
+ ]),
103
+ title: pickString(row, [
104
+ 'title',
105
+ 'TITLE',
106
+ 'job_title',
107
+ 'headline',
108
+ 'Job Title',
109
+ ]),
110
+ email: pickString(row, [
111
+ 'email',
112
+ 'EMAIL',
113
+ 'work_email',
114
+ 'workEmail',
115
+ 'Work Email',
116
+ ]),
117
+ phone: pickString(row, [
118
+ 'phone',
119
+ 'PHONE',
120
+ 'phone_number',
121
+ 'phoneNumber',
122
+ 'mobile',
123
+ 'Mobile Phone',
124
+ ]),
125
+ };
126
+ }
127
+
128
+ function isRecord(value: unknown): value is GtmRow {
129
+ return Boolean(value && typeof value === 'object' && !Array.isArray(value));
130
+ }
131
+
132
+ function pickString(row: GtmRow, names: string[]): string {
133
+ for (const name of names) {
134
+ const value = row[name];
135
+ if (typeof value === 'string' && value.trim()) return value.trim();
136
+ }
137
+ return '';
138
+ }
139
+
140
+ function splitName(value: string): { first: string; last: string } {
141
+ const parts = String(value || '')
142
+ .trim()
143
+ .split(/\s+/)
144
+ .filter(Boolean);
145
+ return { first: parts[0] ?? '', last: parts.slice(1).join(' ') };
146
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Public helper shelf for generated plays and user-authored Deepline notebooks.
3
+ *
4
+ * Design intent: root `deepline` stays focused on SDK/runtime primitives like
5
+ * `definePlay`, while `deepline/helpers` carries reusable domain helpers that
6
+ * make generated plays smaller and easier to improve over time. Keep this file
7
+ * as a curated export surface, not a junk drawer; helper families should stay
8
+ * deterministic, dependency-light, and safe to run inside play workers.
9
+ */
10
+
11
+ export { normalizeGtmContact, normalizeGtmRows } from './gtm.js';
12
+ export type { GtmContact, GtmRow } from './gtm.js';
@@ -35,7 +35,8 @@
35
35
  * });
36
36
  * ```
37
37
  *
38
- * Then run: `deepline plays run --file my-play.play.ts --watch`
38
+ * Then run with the CLI: `deepline plays run --file my-play.play.ts --watch`
39
+ * Installed npm CLIs can also run saved or prebuilt plays by name.
39
40
  *
40
41
  * ## Architecture
41
42
  *
@@ -38,7 +38,9 @@
38
38
  * });
39
39
  * ```
40
40
  *
41
- * Then run via CLI: `deepline plays run --file my-play.play.ts --watch`
41
+ * Then run via the CLI:
42
+ * `deepline plays run --file my-play.play.ts --watch`.
43
+ * Installed npm CLIs can also run saved or prebuilt plays by name.
42
44
  *
43
45
  * ### Programmatic usage
44
46
  *
@@ -46,19 +46,29 @@ const SOURCE_REPO_ROOT = resolve(SDK_PACKAGE_ROOT, '..');
46
46
  const HAS_SOURCE_BUNDLING_SOURCES = existsSync(
47
47
  resolve(SOURCE_REPO_ROOT, 'apps', 'play-runner-workers', 'src', 'entry.ts'),
48
48
  );
49
- const PACKAGED_REPO_ROOT = resolve(SDK_PACKAGE_ROOT, 'dist', 'repo');
49
+ const PACKAGED_BUNDLING_SOURCE_ROOT = resolve(
50
+ SDK_PACKAGE_ROOT,
51
+ 'dist',
52
+ 'bundling-sources',
53
+ );
50
54
  const HAS_PACKAGED_BUNDLING_SOURCES = existsSync(
51
- resolve(PACKAGED_REPO_ROOT, 'apps', 'play-runner-workers', 'src', 'entry.ts'),
55
+ resolve(
56
+ PACKAGED_BUNDLING_SOURCE_ROOT,
57
+ 'apps',
58
+ 'play-runner-workers',
59
+ 'src',
60
+ 'entry.ts',
61
+ ),
52
62
  );
53
63
  const PROJECT_ROOT = HAS_SOURCE_BUNDLING_SOURCES
54
64
  ? SOURCE_REPO_ROOT
55
65
  : HAS_PACKAGED_BUNDLING_SOURCES
56
- ? PACKAGED_REPO_ROOT
66
+ ? PACKAGED_BUNDLING_SOURCE_ROOT
57
67
  : resolve(SDK_PACKAGE_ROOT, '..');
58
68
  const SDK_SOURCE_ROOT = HAS_SOURCE_BUNDLING_SOURCES
59
69
  ? resolve(SOURCE_REPO_ROOT, 'sdk', 'src')
60
70
  : HAS_PACKAGED_BUNDLING_SOURCES
61
- ? resolve(PACKAGED_REPO_ROOT, 'sdk', 'src')
71
+ ? resolve(PACKAGED_BUNDLING_SOURCE_ROOT, 'sdk', 'src')
62
72
  : resolve(SDK_PACKAGE_ROOT, 'src');
63
73
  const SDK_PACKAGE_JSON = resolve(SDK_PACKAGE_ROOT, 'package.json');
64
74
  const SDK_ENTRY_FILE = resolve(SDK_SOURCE_ROOT, 'index.ts');
@@ -126,7 +136,9 @@ function defaultPlayBundleTarget(): PlayArtifactKind {
126
136
  export function createSdkPlayBundlingAdapter(): PlayBundlingAdapter {
127
137
  return {
128
138
  projectRoot: PROJECT_ROOT,
129
- nodeModulesDir: resolve(PROJECT_ROOT, 'node_modules'),
139
+ nodeModulesDir: HAS_PACKAGED_BUNDLING_SOURCES
140
+ ? resolve(SDK_PACKAGE_ROOT, 'node_modules')
141
+ : resolve(PROJECT_ROOT, 'node_modules'),
130
142
  cacheDir: join(
131
143
  tmpdir(),
132
144
  `deepline-play-artifacts-v${PLAY_BUNDLE_CACHE_VERSION}`,
@@ -99,10 +99,10 @@ export const SDK_RELEASE = {
99
99
  // skill on the sdk sync surface, and the people-search-to-email prebuilt.
100
100
  // 0.1.108 ships explicit dataset column/tool recompute policy and removes
101
101
  // the SDK enrich generator's one-second stale policy.
102
- version: '0.1.118',
102
+ version: '0.1.120',
103
103
  apiContract: '2026-06-dataset-column-cell-stale-hard-cutover',
104
104
  supportPolicy: {
105
- latest: '0.1.118',
105
+ latest: '0.1.120',
106
106
  minimumSupported: '0.1.53',
107
107
  deprecatedBelow: '0.1.53',
108
108
  commandMinimumSupported: [
@@ -233,9 +233,8 @@ export async function* observeRunEvents(
233
233
  if (typeof WebSocket === 'undefined') {
234
234
  // Node 18/20 have no global WebSocket; use the ws shim.
235
235
  try {
236
- // 'ws' lives in sdk/package.json (not the repo root, which typechecks
237
- // this file without sdk's node_modules) resolve dynamically so the
238
- // root tsc does not need @types/ws.
236
+ // Optional transport helper: thin SDK installs omit this and fall back to
237
+ // the canonical SSE tail path instead of pulling a websocket stack.
239
238
  const wsModuleName = 'ws';
240
239
  const ws = (await import(wsModuleName)) as { default: unknown };
241
240
  webSocketConstructor = ws.default as typeof WebSocket;
@@ -0,0 +1,3 @@
1
+ export * from './cell-policy';
2
+ export * from './column-names';
3
+ export * from './sheet-contract';