deepline 0.1.182 → 0.1.183

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 (66) hide show
  1. package/dist/bundling-sources/apps/play-runner-workers/src/child-play-await.ts +203 -6
  2. package/dist/bundling-sources/apps/play-runner-workers/src/child-play-submit.ts +8 -1
  3. package/dist/bundling-sources/apps/play-runner-workers/src/coordinator-entry.ts +633 -107
  4. package/dist/bundling-sources/apps/play-runner-workers/src/dedup-do.ts +3 -2
  5. package/dist/bundling-sources/apps/play-runner-workers/src/entry.ts +1747 -1890
  6. package/dist/bundling-sources/apps/play-runner-workers/src/runtime/harness-receipt-store.ts +116 -0
  7. package/dist/bundling-sources/apps/play-runner-workers/src/runtime/map-chunk-plan.ts +542 -78
  8. package/dist/bundling-sources/apps/play-runner-workers/src/runtime/receipts.ts +292 -11
  9. package/dist/bundling-sources/apps/play-runner-workers/src/runtime/run-work-dispatcher.ts +519 -0
  10. package/dist/bundling-sources/apps/play-runner-workers/src/runtime/tool-dispatch.ts +2381 -0
  11. package/dist/bundling-sources/apps/play-runner-workers/src/runtime/tool-receipts.ts +18 -5
  12. package/dist/bundling-sources/apps/play-runner-workers/src/runtime/work-budget.ts +130 -0
  13. package/dist/bundling-sources/apps/play-runner-workers/src/runtime/worker-platform-budget.ts +39 -0
  14. package/dist/bundling-sources/apps/play-runner-workers/src/workflow-retry-state.ts +2 -0
  15. package/dist/bundling-sources/sdk/src/client.ts +41 -0
  16. package/dist/bundling-sources/sdk/src/http.ts +23 -8
  17. package/dist/bundling-sources/sdk/src/plays/harness-stub.ts +56 -3
  18. package/dist/bundling-sources/sdk/src/release.ts +2 -2
  19. package/dist/bundling-sources/sdk/src/types.ts +2 -0
  20. package/dist/bundling-sources/shared_libs/play-runtime/app-runtime-api.ts +132 -10
  21. package/dist/bundling-sources/shared_libs/play-runtime/auth-scope-resolver.ts +92 -0
  22. package/dist/bundling-sources/shared_libs/play-runtime/batch-runtime.ts +4 -4
  23. package/dist/bundling-sources/shared_libs/play-runtime/batching-types.ts +8 -0
  24. package/dist/bundling-sources/shared_libs/play-runtime/child-run-id.ts +101 -0
  25. package/dist/bundling-sources/shared_libs/play-runtime/context.ts +1605 -281
  26. package/dist/bundling-sources/shared_libs/play-runtime/ctx-types.ts +105 -6
  27. package/dist/bundling-sources/shared_libs/play-runtime/dedup-backend.ts +0 -0
  28. package/dist/bundling-sources/shared_libs/play-runtime/default-batch-strategies.ts +1 -0
  29. package/dist/bundling-sources/shared_libs/play-runtime/durability-store.ts +4 -0
  30. package/dist/bundling-sources/shared_libs/play-runtime/durable-call-cache.ts +116 -16
  31. package/dist/bundling-sources/shared_libs/play-runtime/durable-receipt-execution.ts +186 -20
  32. package/dist/bundling-sources/shared_libs/play-runtime/dynamic-worker-version.ts +2 -0
  33. package/dist/bundling-sources/shared_libs/play-runtime/execution-ledger-store.ts +133 -0
  34. package/dist/bundling-sources/shared_libs/play-runtime/governor/app-runtime-rate-state-backend.ts +245 -0
  35. package/dist/bundling-sources/shared_libs/play-runtime/governor/governor.ts +5 -5
  36. package/dist/bundling-sources/shared_libs/play-runtime/governor/policy.ts +14 -0
  37. package/dist/bundling-sources/shared_libs/play-runtime/lease-policy.ts +52 -0
  38. package/dist/bundling-sources/shared_libs/play-runtime/protocol.ts +41 -0
  39. package/dist/bundling-sources/shared_libs/play-runtime/providers.ts +3 -2
  40. package/dist/bundling-sources/shared_libs/play-runtime/receipt-sql.ts +124 -0
  41. package/dist/bundling-sources/shared_libs/play-runtime/receipt-status.ts +6 -2
  42. package/dist/bundling-sources/shared_libs/play-runtime/row-isolation.ts +48 -2
  43. package/dist/bundling-sources/shared_libs/play-runtime/run-ledger.ts +158 -15
  44. package/dist/bundling-sources/shared_libs/play-runtime/run-terminal-source.ts +45 -0
  45. package/dist/bundling-sources/shared_libs/play-runtime/runtime-actions.ts +9 -0
  46. package/dist/bundling-sources/shared_libs/play-runtime/runtime-api.ts +2037 -262
  47. package/dist/bundling-sources/shared_libs/play-runtime/runtime-contract.ts +42 -0
  48. package/dist/bundling-sources/shared_libs/play-runtime/runtime-sheet-attempt-state-machine.ts +183 -0
  49. package/dist/bundling-sources/shared_libs/play-runtime/runtime-sheet-errors.ts +88 -0
  50. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backend.ts +8 -1
  51. package/dist/bundling-sources/shared_libs/play-runtime/sheet-attempt-sql.ts +103 -0
  52. package/dist/bundling-sources/shared_libs/play-runtime/suspension.ts +19 -1
  53. package/dist/bundling-sources/shared_libs/play-runtime/test-runtime-seams.ts +343 -0
  54. package/dist/bundling-sources/shared_libs/play-runtime/tool-execute-retry-policy.ts +43 -0
  55. package/dist/bundling-sources/shared_libs/play-runtime/tool-http-errors.ts +11 -0
  56. package/dist/bundling-sources/shared_libs/play-runtime/work-receipt-state-machine.ts +437 -0
  57. package/dist/bundling-sources/shared_libs/play-runtime/work-receipts.ts +83 -6
  58. package/dist/bundling-sources/shared_libs/security/safe-outbound-fetch.ts +24 -17
  59. package/dist/cli/index.js +76 -17
  60. package/dist/cli/index.mjs +76 -17
  61. package/dist/index.d.mts +2 -0
  62. package/dist/index.d.ts +2 -0
  63. package/dist/index.js +63 -9
  64. package/dist/index.mjs +63 -9
  65. package/dist/plays/bundle-play-file.mjs +2 -2
  66. package/package.json +1 -1
package/dist/index.mjs CHANGED
@@ -352,10 +352,10 @@ var SDK_RELEASE = {
352
352
  // 0.1.154 removes the short-lived generated enrich StepOptions recompute
353
353
  // fields shipped in 0.1.153.
354
354
  // 0.1.175 ships loud `deepline enrich` empty-waterfall reporting.
355
- version: "0.1.182",
355
+ version: "0.1.183",
356
356
  apiContract: "2026-06-dataset-handle-results-hard-cutover",
357
357
  supportPolicy: {
358
- latest: "0.1.182",
358
+ latest: "0.1.183",
359
359
  minimumSupported: "0.1.53",
360
360
  deprecatedBelow: "0.1.53",
361
361
  commandMinimumSupported: [
@@ -513,6 +513,10 @@ var WORKER_CALLBACK_URL_OVERRIDE_HEADER = "x-deepline-worker-callback-url";
513
513
  var RUNTIME_SCHEDULER_SCHEMA_OVERRIDE_HEADER = "x-deepline-runtime-scheduler-schema";
514
514
  var SYNTHETIC_RUN_HEADER = "x-deepline-synthetic-run";
515
515
 
516
+ // ../shared_libs/play-runtime/test-runtime-seams.ts
517
+ var PLAY_RUNTIME_TEST_FAULT_HEADER = "x-deepline-test-fault";
518
+ var MAX_RUNTIME_TEST_POLICY_MS = 10 * 6e4;
519
+
516
520
  // src/http.ts
517
521
  var MAX_DIAGNOSTIC_HEADER_LENGTH = 120;
518
522
  var COWORK_NETWORK_HINT = "Claude Cowork appears to be running Deepline in a network-restricted sandbox. In Claude Desktop, open Settings > Capabilities, turn on Allow network egress, and set Domain allowlist to All domains for the Cowork session.";
@@ -627,12 +631,9 @@ var HttpClient = class {
627
631
  headers["x-deepline-play-artifact-r2-prefix"] = playArtifactR2Prefix;
628
632
  }
629
633
  const coordinatorUrl = typeof process !== "undefined" ? process.env?.DEEPLINE_COORDINATOR_URL : void 0;
634
+ const coordinatorInternalToken = typeof process !== "undefined" ? process.env?.DEEPLINE_INTERNAL_TOKEN : void 0;
630
635
  if (coordinatorUrl?.trim()) {
631
636
  headers[COORDINATOR_URL_OVERRIDE_HEADER] = coordinatorUrl.trim();
632
- const coordinatorInternalToken = typeof process !== "undefined" ? process.env?.DEEPLINE_INTERNAL_TOKEN : void 0;
633
- if (coordinatorInternalToken?.trim()) {
634
- headers[COORDINATOR_INTERNAL_TOKEN_HEADER] = coordinatorInternalToken.trim();
635
- }
636
637
  }
637
638
  const workerCallbackUrl = typeof process !== "undefined" ? process.env?.DEEPLINE_WORKER_CALLBACK_URL : void 0;
638
639
  if (workerCallbackUrl?.trim()) {
@@ -646,6 +647,13 @@ var HttpClient = class {
646
647
  if (syntheticRun && syntheticRun.trim() && syntheticRun.trim() !== "0") {
647
648
  headers[SYNTHETIC_RUN_HEADER] = "1";
648
649
  }
650
+ const runtimeTestFault = typeof process !== "undefined" ? process.env?.DEEPLINE_TEST_RUNTIME_FAULT : void 0;
651
+ if (runtimeTestFault?.trim()) {
652
+ headers[PLAY_RUNTIME_TEST_FAULT_HEADER] = runtimeTestFault.trim();
653
+ }
654
+ if (coordinatorInternalToken?.trim() && (coordinatorUrl?.trim() || workerCallbackUrl?.trim() || runtimeTestFault?.trim())) {
655
+ headers[COORDINATOR_INTERNAL_TOKEN_HEADER] = coordinatorInternalToken.trim();
656
+ }
649
657
  return headers;
650
658
  }
651
659
  /**
@@ -1059,6 +1067,20 @@ function resolveTimingWindow(input) {
1059
1067
  };
1060
1068
  }
1061
1069
 
1070
+ // ../shared_libs/play-runtime/run-terminal-source.ts
1071
+ var PLAY_RUN_LEDGER_EVENT_SOURCES = [
1072
+ "worker",
1073
+ "temporal",
1074
+ "convex",
1075
+ "coordinator",
1076
+ "system"
1077
+ ];
1078
+ function normalizePlayRunLedgerTerminalSource(value) {
1079
+ return PLAY_RUN_LEDGER_EVENT_SOURCES.includes(
1080
+ value
1081
+ ) ? value : null;
1082
+ }
1083
+
1062
1084
  // ../shared_libs/play-runtime/run-ledger.ts
1063
1085
  var LOG_TAIL_LIMIT = 100;
1064
1086
  function isRecord(value) {
@@ -1195,7 +1217,8 @@ function normalizePlayRunLedgerSnapshot(value, fallback) {
1195
1217
  ),
1196
1218
  resultTableNamespace: optionalNullableString(value.resultTableNamespace),
1197
1219
  resultSummary: value.resultSummary,
1198
- result: value.result
1220
+ result: value.result,
1221
+ terminalSource: normalizePlayRunLedgerTerminalSource(value.terminalSource)
1199
1222
  };
1200
1223
  }
1201
1224
  function normalizeStepStatus(value) {
@@ -1920,6 +1943,33 @@ function resolvePlayRunIntegrationMode(request) {
1920
1943
  request.integrationMode ?? process.env.DEEPLINE_EVAL_INTEGRATION_MODE
1921
1944
  );
1922
1945
  }
1946
+ function normalizeTestPolicyOverrides(value, source) {
1947
+ if (value && typeof value === "object" && !Array.isArray(value)) {
1948
+ return value;
1949
+ }
1950
+ throw new DeeplineError(
1951
+ `${source} must be a JSON object.`,
1952
+ void 0,
1953
+ "INVALID_TEST_POLICY_OVERRIDES"
1954
+ );
1955
+ }
1956
+ function parseEnvTestPolicyOverrides() {
1957
+ const raw = typeof process !== "undefined" ? process.env?.DEEPLINE_TEST_POLICY_OVERRIDES : void 0;
1958
+ const trimmed = raw?.trim();
1959
+ if (!trimmed) return void 0;
1960
+ let parsed;
1961
+ try {
1962
+ parsed = JSON.parse(trimmed);
1963
+ } catch (error) {
1964
+ const detail = error instanceof Error ? ` ${error.message}` : "";
1965
+ throw new DeeplineError(
1966
+ `DEEPLINE_TEST_POLICY_OVERRIDES must be valid JSON.${detail}`,
1967
+ void 0,
1968
+ "INVALID_TEST_POLICY_OVERRIDES"
1969
+ );
1970
+ }
1971
+ return normalizeTestPolicyOverrides(parsed, "DEEPLINE_TEST_POLICY_OVERRIDES");
1972
+ }
1923
1973
  function sleep2(ms) {
1924
1974
  return new Promise((resolve2) => setTimeout(resolve2, ms));
1925
1975
  }
@@ -2562,6 +2612,7 @@ var DeeplineClient = class {
2562
2612
  */
2563
2613
  async startPlayRun(request) {
2564
2614
  const integrationMode = resolvePlayRunIntegrationMode(request);
2615
+ const testPolicyOverrides = request.testPolicyOverrides ?? parseEnvTestPolicyOverrides();
2565
2616
  const forceToolRefresh = request.forceToolRefresh === true;
2566
2617
  const response = await this.http.post(
2567
2618
  "/api/v2/plays/run",
@@ -2589,7 +2640,8 @@ var DeeplineClient = class {
2589
2640
  // defaults to workers_edge; tests and runtime probes that want a
2590
2641
  // different profile pass `request.profile` explicitly.
2591
2642
  ...request.profile ? { profile: request.profile } : {},
2592
- ...integrationMode ? { integrationMode } : {}
2643
+ ...integrationMode ? { integrationMode } : {},
2644
+ ...testPolicyOverrides ? { testPolicyOverrides } : {}
2593
2645
  }
2594
2646
  );
2595
2647
  return normalizePlayRunStart(response);
@@ -2607,6 +2659,7 @@ var DeeplineClient = class {
2607
2659
  */
2608
2660
  async *startPlayRunStream(request, options) {
2609
2661
  const integrationMode = resolvePlayRunIntegrationMode(request);
2662
+ const testPolicyOverrides = request.testPolicyOverrides ?? parseEnvTestPolicyOverrides();
2610
2663
  const forceToolRefresh = request.forceToolRefresh === true;
2611
2664
  const body = {
2612
2665
  ...request.name ? { name: request.name } : {},
@@ -2629,7 +2682,8 @@ var DeeplineClient = class {
2629
2682
  ...forceToolRefresh ? { forceToolRefresh: true } : {},
2630
2683
  ...typeof request.waitForCompletionMs === "number" ? { waitForCompletionMs: request.waitForCompletionMs } : {},
2631
2684
  ...request.profile ? { profile: request.profile } : {},
2632
- ...integrationMode ? { integrationMode } : {}
2685
+ ...integrationMode ? { integrationMode } : {},
2686
+ ...testPolicyOverrides ? { testPolicyOverrides } : {}
2633
2687
  };
2634
2688
  for await (const event of this.http.streamSse(
2635
2689
  "/api/v2/plays/run?stream=true",
@@ -1749,9 +1749,9 @@ var PLAY_RUNTIME_PROVIDERS = {
1749
1749
  id: PLAY_RUNTIME_PROVIDER_IDS.hatchet,
1750
1750
  scheduler: PLAY_SCHEDULER_BACKENDS.hatchet,
1751
1751
  runner: PLAY_RUNTIME_BACKENDS.daytona,
1752
- dedup: PLAY_DEDUP_BACKENDS.durableObject,
1752
+ dedup: PLAY_DEDUP_BACKENDS.inMemory,
1753
1753
  artifactKind: PLAY_ARTIFACT_KINDS.cjsNode20,
1754
- label: "Hatchet scheduler + one-shot Daytona runner + DO dedup"
1754
+ label: "Hatchet scheduler + one-shot Daytona runner + receipt-backed in-process dedup"
1755
1755
  },
1756
1756
  local: {
1757
1757
  id: PLAY_RUNTIME_PROVIDER_IDS.local,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "deepline",
3
- "version": "0.1.182",
3
+ "version": "0.1.183",
4
4
  "description": "Deepline SDK + CLI — B2B data enrichment powered by durable cloud execution",
5
5
  "license": "MIT",
6
6
  "repository": {