archal 0.9.18 → 0.9.19

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.
@@ -21,7 +21,7 @@ import {
21
21
  requestedSeedsMatchSession,
22
22
  sleep,
23
23
  trimEnv
24
- } from "./chunk-CTSN67QR.js";
24
+ } from "./chunk-WZ7SA4CK.js";
25
25
 
26
26
  // ../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/codegen/code.js
27
27
  var require_code = __commonJS({
@@ -2974,7 +2974,7 @@ var require_compile = __commonJS({
2974
2974
  const schOrFunc = root.refs[ref];
2975
2975
  if (schOrFunc)
2976
2976
  return schOrFunc;
2977
- let _sch = resolve7.call(this, root, ref);
2977
+ let _sch = resolve8.call(this, root, ref);
2978
2978
  if (_sch === void 0) {
2979
2979
  const schema = (_a2 = root.localRefs) === null || _a2 === void 0 ? void 0 : _a2[ref];
2980
2980
  const { schemaId } = this.opts;
@@ -3001,7 +3001,7 @@ var require_compile = __commonJS({
3001
3001
  function sameSchemaEnv(s1, s2) {
3002
3002
  return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId;
3003
3003
  }
3004
- function resolve7(root, ref) {
3004
+ function resolve8(root, ref) {
3005
3005
  let sch;
3006
3006
  while (typeof (sch = this.refs[ref]) == "string")
3007
3007
  ref = sch;
@@ -3576,55 +3576,55 @@ var require_fast_uri = __commonJS({
3576
3576
  }
3577
3577
  return uri;
3578
3578
  }
3579
- function resolve7(baseURI, relativeURI, options) {
3579
+ function resolve8(baseURI, relativeURI, options) {
3580
3580
  const schemelessOptions = options ? Object.assign({ scheme: "null" }, options) : { scheme: "null" };
3581
3581
  const resolved = resolveComponent(parse3(baseURI, schemelessOptions), parse3(relativeURI, schemelessOptions), schemelessOptions, true);
3582
3582
  schemelessOptions.skipEscape = true;
3583
3583
  return serialize(resolved, schemelessOptions);
3584
3584
  }
3585
- function resolveComponent(base, relative2, options, skipNormalization) {
3585
+ function resolveComponent(base, relative3, options, skipNormalization) {
3586
3586
  const target = {};
3587
3587
  if (!skipNormalization) {
3588
3588
  base = parse3(serialize(base, options), options);
3589
- relative2 = parse3(serialize(relative2, options), options);
3589
+ relative3 = parse3(serialize(relative3, options), options);
3590
3590
  }
3591
3591
  options = options || {};
3592
- if (!options.tolerant && relative2.scheme) {
3593
- target.scheme = relative2.scheme;
3594
- target.userinfo = relative2.userinfo;
3595
- target.host = relative2.host;
3596
- target.port = relative2.port;
3597
- target.path = removeDotSegments(relative2.path || "");
3598
- target.query = relative2.query;
3592
+ if (!options.tolerant && relative3.scheme) {
3593
+ target.scheme = relative3.scheme;
3594
+ target.userinfo = relative3.userinfo;
3595
+ target.host = relative3.host;
3596
+ target.port = relative3.port;
3597
+ target.path = removeDotSegments(relative3.path || "");
3598
+ target.query = relative3.query;
3599
3599
  } else {
3600
- if (relative2.userinfo !== void 0 || relative2.host !== void 0 || relative2.port !== void 0) {
3601
- target.userinfo = relative2.userinfo;
3602
- target.host = relative2.host;
3603
- target.port = relative2.port;
3604
- target.path = removeDotSegments(relative2.path || "");
3605
- target.query = relative2.query;
3600
+ if (relative3.userinfo !== void 0 || relative3.host !== void 0 || relative3.port !== void 0) {
3601
+ target.userinfo = relative3.userinfo;
3602
+ target.host = relative3.host;
3603
+ target.port = relative3.port;
3604
+ target.path = removeDotSegments(relative3.path || "");
3605
+ target.query = relative3.query;
3606
3606
  } else {
3607
- if (!relative2.path) {
3607
+ if (!relative3.path) {
3608
3608
  target.path = base.path;
3609
- if (relative2.query !== void 0) {
3610
- target.query = relative2.query;
3609
+ if (relative3.query !== void 0) {
3610
+ target.query = relative3.query;
3611
3611
  } else {
3612
3612
  target.query = base.query;
3613
3613
  }
3614
3614
  } else {
3615
- if (relative2.path[0] === "/") {
3616
- target.path = removeDotSegments(relative2.path);
3615
+ if (relative3.path[0] === "/") {
3616
+ target.path = removeDotSegments(relative3.path);
3617
3617
  } else {
3618
3618
  if ((base.userinfo !== void 0 || base.host !== void 0 || base.port !== void 0) && !base.path) {
3619
- target.path = "/" + relative2.path;
3619
+ target.path = "/" + relative3.path;
3620
3620
  } else if (!base.path) {
3621
- target.path = relative2.path;
3621
+ target.path = relative3.path;
3622
3622
  } else {
3623
- target.path = base.path.slice(0, base.path.lastIndexOf("/") + 1) + relative2.path;
3623
+ target.path = base.path.slice(0, base.path.lastIndexOf("/") + 1) + relative3.path;
3624
3624
  }
3625
3625
  target.path = removeDotSegments(target.path);
3626
3626
  }
3627
- target.query = relative2.query;
3627
+ target.query = relative3.query;
3628
3628
  }
3629
3629
  target.userinfo = base.userinfo;
3630
3630
  target.host = base.host;
@@ -3632,7 +3632,7 @@ var require_fast_uri = __commonJS({
3632
3632
  }
3633
3633
  target.scheme = base.scheme;
3634
3634
  }
3635
- target.fragment = relative2.fragment;
3635
+ target.fragment = relative3.fragment;
3636
3636
  return target;
3637
3637
  }
3638
3638
  function equal(uriA, uriB, options) {
@@ -3803,7 +3803,7 @@ var require_fast_uri = __commonJS({
3803
3803
  var fastUri = {
3804
3804
  SCHEMES,
3805
3805
  normalize,
3806
- resolve: resolve7,
3806
+ resolve: resolve8,
3807
3807
  resolveComponent,
3808
3808
  equal,
3809
3809
  serialize,
@@ -7280,6 +7280,7 @@ var slackRouteManifest = {
7280
7280
  exactDomain("slack.com"),
7281
7281
  exactDomain("api.slack.com")
7282
7282
  ],
7283
+ upstreamBasePath: "/api",
7283
7284
  // Block adjacent Slack-owned domains that tests don't need and that can be
7284
7285
  // abused as data-exfiltration channels. hooks.slack.com and files.slack.com
7285
7286
  // in particular are ideal POST targets for a malicious dependency trying to
@@ -8211,7 +8212,7 @@ var ROUTE_RUNTIME_DISPATCHING_ROUTE_KINDS = new Set(ROUTE_RUNTIME_PUBLIC_ROUTE_K
8211
8212
  var stripeCompatibilityProfile = buildServiceCompatibilityProfile(stripeRouteManifest);
8212
8213
 
8213
8214
  // ../route-runtime-core/src/hosted-capabilities.ts
8214
- import { createHash as createHash5 } from "crypto";
8215
+ import { createHash as createHash6 } from "crypto";
8215
8216
 
8216
8217
  // ../../twins/core/src/control-plane-auth.ts
8217
8218
  import { timingSafeEqual } from "crypto";
@@ -27620,13 +27621,96 @@ import { randomUUID as randomUUID3 } from "crypto";
27620
27621
  import { performance as performance2 } from "perf_hooks";
27621
27622
 
27622
27623
  // ../../twins/core/src/fixture-oracle.ts
27623
- import { existsSync as existsSync2, readdirSync as readdirSync2, readFileSync as readFileSync3 } from "fs";
27624
- import { dirname as dirname3, resolve as resolve3 } from "path";
27624
+ import { existsSync as existsSync4, readdirSync as readdirSync2, readFileSync as readFileSync5 } from "fs";
27625
+ import { dirname as dirname5, resolve as resolve5 } from "path";
27625
27626
  import { fileURLToPath as fileURLToPath3 } from "url";
27626
27627
 
27628
+ // ../../twins/core/src/legacy-asset-cache.ts
27629
+ import { createHash as createHash4 } from "crypto";
27630
+ import {
27631
+ existsSync as existsSync3,
27632
+ mkdirSync as mkdirSync2,
27633
+ readFileSync as readFileSync4,
27634
+ renameSync as renameSync3,
27635
+ writeFileSync as writeFileSync3
27636
+ } from "fs";
27637
+ import { homedir as homedir2 } from "os";
27638
+ import { dirname as dirname4, relative as relative2, resolve as resolve4 } from "path";
27639
+
27640
+ // ../../twins/core/src/recording-fetcher.ts
27641
+ import { createHash as createHash3 } from "crypto";
27642
+ import {
27643
+ existsSync as existsSync2,
27644
+ mkdirSync,
27645
+ readFileSync as readFileSync3,
27646
+ renameSync as renameSync2,
27647
+ statSync,
27648
+ writeFileSync as writeFileSync2
27649
+ } from "fs";
27650
+ import { homedir } from "os";
27651
+ import { dirname as dirname3, resolve as resolve3 } from "path";
27652
+ var RecordingManifestEntrySchema = external_exports3.object({
27653
+ filename: external_exports3.string(),
27654
+ sha256: external_exports3.string().regex(/^[0-9a-f]{64}$/, "sha256 must be 64 lowercase hex chars"),
27655
+ size: external_exports3.number().optional(),
27656
+ sizeBytes: external_exports3.number().optional(),
27657
+ uploadedAt: external_exports3.string().optional(),
27658
+ // Optional symbolic tags that map fixture-oracle / replay lookups onto this
27659
+ // recording. Lets twins keep tag→file resolution inside the manifest itself
27660
+ // rather than depending on a separate provenance.json (which is excluded
27661
+ // from the in-tree fixture allowlist for graduated twins). Codex P2 on
27662
+ // tavily #3603 — fixture-oracle previously required provenance.json to
27663
+ // resolve `rest-profile:tavily:tavily_search_basic` → filename.
27664
+ tags: external_exports3.array(external_exports3.string()).optional()
27665
+ }).loose();
27666
+ var RecordingManifestSchema = external_exports3.object({
27667
+ service: external_exports3.string().min(1),
27668
+ version: external_exports3.number().int(),
27669
+ container: external_exports3.string().min(1),
27670
+ baseUrl: external_exports3.string().optional(),
27671
+ entries: external_exports3.array(RecordingManifestEntrySchema)
27672
+ }).loose();
27673
+ var DEFAULT_BASE_URL = process.env["ARCHAL_FIXTURE_BASE_URL"] ?? "https://archalforge8f96908966.blob.core.windows.net/archal-fixture-artifacts?sv=2023-11-03&spr=https&se=2031-05-10T00%3A00%3A00Z&sr=c&sp=rl&sig=r3%2FC3EwzilSHls8z3Pn5ZR%2BkinwQw1C6%2BDKObIZSIu0%3D";
27674
+ var DEFAULT_CACHE_ROOT = process.env["ARCHAL_FIXTURE_CACHE_ROOT"] ?? resolve3(homedir(), ".archal", "forge", "recordings-cache");
27675
+ function warnIfSasExpiresSoon(baseUrl) {
27676
+ if (process.env["ARCHAL_FIXTURE_SAS_WARN"] === "0") return;
27677
+ const queryIdx = baseUrl.indexOf("?");
27678
+ if (queryIdx < 0) return;
27679
+ const query = baseUrl.slice(queryIdx + 1);
27680
+ const seParam = query.split("&").find((p) => p.startsWith("se="));
27681
+ if (!seParam) return;
27682
+ const seValue = decodeURIComponent(seParam.slice(3));
27683
+ const expiresAt = Date.parse(seValue);
27684
+ if (Number.isNaN(expiresAt)) return;
27685
+ const now2 = Date.now();
27686
+ const daysRemaining = Math.floor((expiresAt - now2) / (1e3 * 60 * 60 * 24));
27687
+ if (daysRemaining < 365) {
27688
+ console.warn(
27689
+ `[recording-fetcher] SAS token in ARCHAL_FIXTURE_BASE_URL expires in ${daysRemaining}d (${seValue}). Rotate via scripts/rotate-fixture-sas.mjs before expiry.`
27690
+ );
27691
+ }
27692
+ }
27693
+ warnIfSasExpiresSoon(DEFAULT_BASE_URL);
27694
+
27695
+ // ../../twins/core/src/legacy-asset-cache.ts
27696
+ var DEFAULT_CACHE_ROOT2 = process.env["ARCHAL_LEGACY_ASSET_CACHE_ROOT"] ?? resolve4(homedir2(), ".archal", "forge", "legacy-assets-cache");
27697
+ var LegacyAssetEntrySchema = external_exports3.object({
27698
+ relativePath: external_exports3.string().min(1),
27699
+ sha256: external_exports3.string().regex(/^[0-9a-f]{64}$/, "sha256 must be 64 lowercase hex chars"),
27700
+ sizeBytes: external_exports3.number().optional(),
27701
+ uploadedAt: external_exports3.string().optional()
27702
+ }).loose();
27703
+ var LegacyAssetManifestSchema = external_exports3.object({
27704
+ service: external_exports3.string().min(1),
27705
+ version: external_exports3.number().int(),
27706
+ container: external_exports3.string().min(1),
27707
+ layout: external_exports3.string().optional(),
27708
+ entries: external_exports3.array(LegacyAssetEntrySchema)
27709
+ }).loose();
27710
+
27627
27711
  // ../../twins/core/src/run-twin-cli.ts
27628
- import { accessSync, constants, realpathSync, statSync } from "fs";
27629
- import { resolve as resolve4 } from "path";
27712
+ import { accessSync, constants, realpathSync, statSync as statSync2 } from "fs";
27713
+ import { resolve as resolve6 } from "path";
27630
27714
 
27631
27715
  // ../../twins/manifest.json
27632
27716
  var manifest_default = [
@@ -27677,6 +27761,12 @@ var manifest_default = [
27677
27761
  package: "@archal/twin-firecrawl",
27678
27762
  path: "twins/firecrawl",
27679
27763
  stage: "internal",
27764
+ display: {
27765
+ icon: "FC",
27766
+ name: "Firecrawl",
27767
+ description: "Scraping, crawling, mapping, search, and extraction.",
27768
+ toolCount: 6
27769
+ },
27680
27770
  transport: "rest",
27681
27771
  hostedRuntime: { enabled: true, requiresDist: true, requiresEmptySeed: true },
27682
27772
  cli: { bundleAssets: false, bundleToolSnapshot: false },
@@ -27744,6 +27834,12 @@ var manifest_default = [
27744
27834
  package: "@archal/twin-hubspot",
27745
27835
  path: "twins/hubspot",
27746
27836
  stage: "internal",
27837
+ display: {
27838
+ icon: "HS",
27839
+ name: "HubSpot",
27840
+ description: "CRM contacts, companies, deals, tickets, and engagements.",
27841
+ toolCount: 45
27842
+ },
27747
27843
  transport: "rest",
27748
27844
  hostedRuntime: { enabled: true, requiresDist: true, requiresEmptySeed: true },
27749
27845
  cli: { bundleAssets: false, bundleToolSnapshot: false },
@@ -27820,6 +27916,12 @@ var manifest_default = [
27820
27916
  package: "@archal/twin-sendgrid",
27821
27917
  path: "twins/sendgrid",
27822
27918
  stage: "internal",
27919
+ display: {
27920
+ icon: "SG",
27921
+ name: "SendGrid",
27922
+ description: "Mail send, contacts, lists, templates, and stats.",
27923
+ toolCount: 28
27924
+ },
27823
27925
  transport: "rest",
27824
27926
  hostedRuntime: { enabled: true, requiresDist: true, requiresEmptySeed: true },
27825
27927
  cli: { bundleAssets: false, bundleToolSnapshot: false },
@@ -27916,6 +28018,12 @@ var manifest_default = [
27916
28018
  package: "@archal/twin-telegram",
27917
28019
  path: "twins/telegram",
27918
28020
  stage: "internal",
28021
+ display: {
28022
+ icon: "TG",
28023
+ name: "Telegram",
28024
+ description: "Bot messages, chats, updates, and webhooks.",
28025
+ toolCount: 32
28026
+ },
27919
28027
  transport: "both",
27920
28028
  hostedRuntime: { enabled: true, requiresDist: true, requiresEmptySeed: true },
27921
28029
  cli: { bundleAssets: false, bundleToolSnapshot: false },
@@ -27928,6 +28036,12 @@ var manifest_default = [
27928
28036
  package: "@archal/twin-twilio",
27929
28037
  path: "twins/twilio",
27930
28038
  stage: "internal",
28039
+ display: {
28040
+ icon: "TW",
28041
+ name: "Twilio",
28042
+ description: "Messages, calls, phone numbers, and verifications.",
28043
+ toolCount: 35
28044
+ },
27931
28045
  transport: "rest",
27932
28046
  hostedRuntime: { enabled: true, requiresDist: true, requiresEmptySeed: true },
27933
28047
  cli: { bundleAssets: false, bundleToolSnapshot: false },
@@ -27940,6 +28054,12 @@ var manifest_default = [
27940
28054
  package: "@archal/twin-unipile",
27941
28055
  path: "twins/unipile",
27942
28056
  stage: "internal",
28057
+ display: {
28058
+ icon: "UP",
28059
+ name: "Unipile",
28060
+ description: "LinkedIn and email messaging, accounts, and chats.",
28061
+ toolCount: 24
28062
+ },
27943
28063
  transport: "rest",
27944
28064
  hostedRuntime: { enabled: true, requiresDist: true, requiresEmptySeed: true },
27945
28065
  cli: { bundleAssets: false, bundleToolSnapshot: false },
@@ -27958,7 +28078,7 @@ var CLONE_PACKAGES = CLONE_MANIFEST.map((t) => t.package);
27958
28078
  var TWIN_PREFIX_PATTERN = new RegExp(`^(${CLONE_NAMES.join("|")})_`, "i");
27959
28079
 
27960
28080
  // ../../twins/core/src/session-run-id.ts
27961
- import { createHash as createHash3 } from "crypto";
28081
+ import { createHash as createHash5 } from "crypto";
27962
28082
 
27963
28083
  // ../../twins/core/src/webhook-signing.ts
27964
28084
  import { createHmac, timingSafeEqual as timingSafeEqual2 } from "crypto";
@@ -28099,61 +28219,6 @@ var SCENARIO_RISK_TAXONOMY = SCENARIO_RISK_RULES.map(
28099
28219
  ({ id, label, description }) => ({ id, label, description })
28100
28220
  );
28101
28221
 
28102
- // ../../twins/core/src/recording-fetcher.ts
28103
- import { createHash as createHash4 } from "crypto";
28104
- import {
28105
- existsSync as existsSync3,
28106
- mkdirSync,
28107
- readFileSync as readFileSync4,
28108
- renameSync as renameSync2,
28109
- statSync as statSync2,
28110
- writeFileSync as writeFileSync2
28111
- } from "fs";
28112
- import { homedir } from "os";
28113
- import { dirname as dirname4, resolve as resolve5 } from "path";
28114
- var RecordingManifestEntrySchema = external_exports3.object({
28115
- filename: external_exports3.string(),
28116
- sha256: external_exports3.string().regex(/^[0-9a-f]{64}$/, "sha256 must be 64 lowercase hex chars"),
28117
- size: external_exports3.number().optional(),
28118
- sizeBytes: external_exports3.number().optional(),
28119
- uploadedAt: external_exports3.string().optional(),
28120
- // Optional symbolic tags that map fixture-oracle / replay lookups onto this
28121
- // recording. Lets twins keep tag→file resolution inside the manifest itself
28122
- // rather than depending on a separate provenance.json (which is excluded
28123
- // from the in-tree fixture allowlist for graduated twins). Codex P2 on
28124
- // tavily #3603 — fixture-oracle previously required provenance.json to
28125
- // resolve `rest-profile:tavily:tavily_search_basic` → filename.
28126
- tags: external_exports3.array(external_exports3.string()).optional()
28127
- }).loose();
28128
- var RecordingManifestSchema = external_exports3.object({
28129
- service: external_exports3.string().min(1),
28130
- version: external_exports3.number().int(),
28131
- container: external_exports3.string().min(1),
28132
- baseUrl: external_exports3.string().optional(),
28133
- entries: external_exports3.array(RecordingManifestEntrySchema)
28134
- }).loose();
28135
- var DEFAULT_BASE_URL = process.env["ARCHAL_FIXTURE_BASE_URL"] ?? "https://archalforge8f96908966.blob.core.windows.net/archal-fixture-artifacts?sv=2023-11-03&spr=https&se=2031-05-10T00%3A00%3A00Z&sr=c&sp=rl&sig=r3%2FC3EwzilSHls8z3Pn5ZR%2BkinwQw1C6%2BDKObIZSIu0%3D";
28136
- var DEFAULT_CACHE_ROOT = process.env["ARCHAL_FIXTURE_CACHE_ROOT"] ?? resolve5(homedir(), ".archal", "forge", "recordings-cache");
28137
- function warnIfSasExpiresSoon(baseUrl) {
28138
- if (process.env["ARCHAL_FIXTURE_SAS_WARN"] === "0") return;
28139
- const queryIdx = baseUrl.indexOf("?");
28140
- if (queryIdx < 0) return;
28141
- const query = baseUrl.slice(queryIdx + 1);
28142
- const seParam = query.split("&").find((p) => p.startsWith("se="));
28143
- if (!seParam) return;
28144
- const seValue = decodeURIComponent(seParam.slice(3));
28145
- const expiresAt = Date.parse(seValue);
28146
- if (Number.isNaN(expiresAt)) return;
28147
- const now2 = Date.now();
28148
- const daysRemaining = Math.floor((expiresAt - now2) / (1e3 * 60 * 60 * 24));
28149
- if (daysRemaining < 365) {
28150
- console.warn(
28151
- `[recording-fetcher] SAS token in ARCHAL_FIXTURE_BASE_URL expires in ${daysRemaining}d (${seValue}). Rotate via scripts/rotate-fixture-sas.mjs before expiry.`
28152
- );
28153
- }
28154
- }
28155
- warnIfSasExpiresSoon(DEFAULT_BASE_URL);
28156
-
28157
28222
  // src/runtime/service-profiles.ts
28158
28223
  function unsupportedServiceMessage(unsupportedServices) {
28159
28224
  const supportedServices = listSharedRouteManifests().map((manifest) => manifest.service).sort();
@@ -28183,10 +28248,10 @@ function resolveArchalVitestServiceProfiles(services) {
28183
28248
  }
28184
28249
 
28185
28250
  // src/runtime/hosted-session-provider.ts
28186
- import { createHash as createHash6, randomUUID as randomUUID4 } from "crypto";
28251
+ import { createHash as createHash7, randomUUID as randomUUID4 } from "crypto";
28187
28252
  import { spawn } from "child_process";
28188
28253
  import { promises as fs } from "fs";
28189
- import { join, resolve as resolve6 } from "path";
28254
+ import { join, resolve as resolve7 } from "path";
28190
28255
  import { tmpdir } from "os";
28191
28256
 
28192
28257
  // src/url-resolution.ts
@@ -28236,15 +28301,15 @@ function toSafeCoordinatorDirectoryName(sessionKey) {
28236
28301
  return sessionKey;
28237
28302
  }
28238
28303
  const slug = sessionKey.replace(/[^a-zA-Z0-9._-]+/g, "-").replace(/^[.-]+|[.-]+$/g, "").slice(0, 48);
28239
- const hash2 = createHash6("sha256").update(sessionKey).digest("hex").slice(0, 12);
28304
+ const hash2 = createHash7("sha256").update(sessionKey).digest("hex").slice(0, 12);
28240
28305
  return `${slug || "session"}-${hash2}`;
28241
28306
  }
28242
28307
  function resolveCoordinatorPaths(config2) {
28243
- const baseDirectory = resolve6(
28308
+ const baseDirectory = resolve7(
28244
28309
  trimEnv("ARCHAL_VITEST_COORDINATOR_DIR") ?? join(tmpdir(), "archal-vitest")
28245
28310
  );
28246
28311
  const sessionKey = config2.sessionKey ?? `${config2.projectName}-${randomUUID4()}`;
28247
- const directory = resolve6(baseDirectory, toSafeCoordinatorDirectoryName(sessionKey));
28312
+ const directory = resolve7(baseDirectory, toSafeCoordinatorDirectoryName(sessionKey));
28248
28313
  return {
28249
28314
  directory,
28250
28315
  lockDirectory: join(directory, "lock"),
@@ -29170,11 +29235,11 @@ async function buildRuntimeConfig(scope) {
29170
29235
  };
29171
29236
  scope[GLOBAL_SESSION_KEY] = redactSessionSnapshot(session);
29172
29237
  try {
29173
- const { writeFileSync: writeFileSync3, mkdirSync: mkdirSync2 } = await import("fs");
29174
- const { dirname: dirname5 } = await import("path");
29238
+ const { writeFileSync: writeFileSync4, mkdirSync: mkdirSync3 } = await import("fs");
29239
+ const { dirname: dirname6 } = await import("path");
29175
29240
  const sessionIdPath = getSessionIdFilePath(config2.sessionKey);
29176
- mkdirSync2(dirname5(sessionIdPath), { recursive: true });
29177
- writeFileSync3(sessionIdPath, session.sessionId, "utf-8");
29241
+ mkdirSync3(dirname6(sessionIdPath), { recursive: true });
29242
+ writeFileSync4(sessionIdPath, session.sessionId, "utf-8");
29178
29243
  } catch {
29179
29244
  }
29180
29245
  return {