@rallycry/conveyor-agent 11.0.5 → 11.0.7

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.
@@ -1,19 +1,22 @@
1
1
  import {
2
2
  startWorkbenchServer
3
- } from "./chunk-D57S4UR5.js";
3
+ } from "./chunk-IBAIJY7V.js";
4
4
  import {
5
5
  TOMBSTONE_MESSAGE,
6
6
  isLegacyEntrypointLaunch
7
7
  } from "./chunk-R3FDJQL6.js";
8
8
  import {
9
- readAgentVersion
10
- } from "./chunk-XORJ6SII.js";
11
- import "./chunk-W6VILPQE.js";
9
+ cloneReferenceRepos,
10
+ computeGraphifyEnv,
11
+ readAgentVersion,
12
+ refreshSkillsAfterCheckout,
13
+ runPreReadyBinds
14
+ } from "./chunk-SR66HQKB.js";
15
+ import "./chunk-JG3VMWRQ.js";
12
16
  import {
13
17
  GitPrepJob,
14
18
  defaultGit,
15
19
  ensureDir,
16
- redactToken,
17
20
  reportBootMilestone
18
21
  } from "./chunk-GL2DIQEQ.js";
19
22
  import "./chunk-W4LZ7R6Z.js";
@@ -29,7 +32,7 @@ import {
29
32
 
30
33
  // src/boot/index.ts
31
34
  import { spawn } from "child_process";
32
- import { statSync as statSync4 } from "fs";
35
+ import { statSync as statSync3 } from "fs";
33
36
  import { hostname as osHostname } from "os";
34
37
 
35
38
  // src/boot/bundle.ts
@@ -159,32 +162,6 @@ function buildChildEnv(opts) {
159
162
  return child;
160
163
  }
161
164
 
162
- // src/boot/graphify.ts
163
- var USER_HOME_MOUNT = "/mnt/conveyor-users";
164
- function computeGraphifyEnv(env, repoName, dirExists) {
165
- if (env.CONVEYOR_GRAPHIFY_DISABLE === "1") {
166
- return {};
167
- }
168
- const slug = env.CONVEYOR_GRAPHIFY_SLUG || repoName;
169
- if (!slug) {
170
- return {};
171
- }
172
- const primaryRoot = `${USER_HOME_MOUNT}/users/_shared/graphify`;
173
- const legacyRoot = `${USER_HOME_MOUNT}/_shared/graphify`;
174
- let sharedRoot = env.CONVEYOR_GRAPHIFY_SHARED_ROOT;
175
- if (!sharedRoot) {
176
- sharedRoot = dirExists(primaryRoot) || !dirExists(legacyRoot) ? primaryRoot : legacyRoot;
177
- }
178
- const dir = env.CONVEYOR_GRAPHIFY_DIR || `${sharedRoot}/${slug}/latest`;
179
- const graph = env.CONVEYOR_GRAPHIFY_GRAPH || `${dir}/graph.json`;
180
- return {
181
- CONVEYOR_GRAPHIFY_SLUG: slug,
182
- CONVEYOR_GRAPHIFY_SHARED_ROOT: sharedRoot,
183
- CONVEYOR_GRAPHIFY_DIR: dir,
184
- CONVEYOR_GRAPHIFY_GRAPH: graph
185
- };
186
- }
187
-
188
165
  // src/boot/logger.ts
189
166
  import { appendFileSync } from "fs";
190
167
  var BOOTSTRAP_LOG_PATH = "/tmp/claudespace-bootstrap.log";
@@ -851,306 +828,10 @@ async function startWorkspaceSshd(exec, log, port = process.env.CONVEYOR_WORKSPA
851
828
  }
852
829
  }
853
830
 
854
- // src/boot/workspace-extras.ts
855
- import {
856
- appendFileSync as appendFileSync3,
857
- cpSync,
858
- existsSync as existsSync3,
859
- lstatSync as lstatSync2,
860
- mkdirSync as mkdirSync3,
861
- readdirSync as readdirSync2,
862
- readFileSync as readFileSync2,
863
- readlinkSync,
864
- rmSync as rmSync2,
865
- statSync as statSync3,
866
- symlinkSync as symlinkSync2
867
- } from "fs";
868
- import { dirname as dirname2, join as join5 } from "path";
869
- import { fileURLToPath } from "url";
870
- function errText(err) {
871
- return redactToken(err instanceof Error ? err.message : String(err));
872
- }
873
- function isDir2(path) {
874
- try {
875
- return statSync3(path).isDirectory();
876
- } catch {
877
- return false;
878
- }
879
- }
880
- function isSymlink(path) {
881
- try {
882
- return lstatSync2(path).isSymbolicLink();
883
- } catch {
884
- return false;
885
- }
886
- }
887
- var GRAPHIFY_BUNDLE_FILES = [
888
- "graph.json",
889
- "GRAPH_REPORT.md",
890
- "manifest.json",
891
- ".graphify_analysis.json",
892
- ".graphify_labels.json",
893
- "publish-manifest.json",
894
- "cost.json"
895
- ];
896
- function bindGraphifyBundle(workspace, graphifyEnv, log) {
897
- const slug = graphifyEnv.CONVEYOR_GRAPHIFY_SLUG;
898
- const sourceDir = graphifyEnv.CONVEYOR_GRAPHIFY_DIR;
899
- const graphFile = graphifyEnv.CONVEYOR_GRAPHIFY_GRAPH;
900
- if (!slug || !sourceDir || !graphFile) return;
901
- if (!existsSync3(graphFile)) {
902
- log.info(`[boot] Graphify bundle not found for '${slug}' at ${sourceDir}`);
903
- return;
904
- }
905
- const targetDir = join5(workspace, "graphify-out");
906
- try {
907
- mkdirSync3(targetDir, { recursive: true });
908
- } catch {
909
- log.warn(`[boot] WARN: unable to create graphify-out at ${targetDir}`);
910
- return;
911
- }
912
- for (const rel of GRAPHIFY_BUNDLE_FILES) {
913
- const source = join5(sourceDir, rel);
914
- const target = join5(targetDir, rel);
915
- if (!existsSync3(source)) continue;
916
- if (existsSync3(target) || isSymlink(target)) continue;
917
- try {
918
- symlinkSync2(source, target);
919
- } catch {
920
- }
921
- }
922
- log.info(`[boot] Bound graphify bundle '${slug}' into ${targetDir}`);
923
- }
924
- async function ensureGrimoireSubmodule(workspace, githubToken, git, log) {
925
- try {
926
- if (!existsSync3(join5(workspace, ".gitmodules"))) return;
927
- let paths = "";
928
- try {
929
- ({ stdout: paths } = await git(
930
- ["config", "--file", ".gitmodules", "--get-regexp", String.raw`submodule\..*\.path`],
931
- { cwd: workspace, timeoutMs: 1e4 }
932
- ));
933
- } catch {
934
- return;
935
- }
936
- if (!paths.split("\n").some((line) => line.trim().endsWith(".claude/grimoire"))) return;
937
- if (isDir2(join5(workspace, ".claude", "grimoire", "skills"))) return;
938
- if (!githubToken) {
939
- log.warn("[boot] WARN: grimoire submodule absent and no token to fetch it");
940
- return;
941
- }
942
- try {
943
- await git(
944
- [
945
- "-c",
946
- `url.https://x-access-token:${githubToken}@github.com/.insteadOf=https://github.com/`,
947
- "submodule",
948
- "update",
949
- "--init",
950
- ".claude/grimoire"
951
- ],
952
- { cwd: workspace, timeoutMs: 3e5 }
953
- );
954
- log.info("[boot] Initialized grimoire submodule");
955
- } catch (err) {
956
- log.warn(
957
- `[boot] WARN: grimoire submodule init failed (baked pods may lack rc-* skills): ${errText(err)}`
958
- );
959
- }
960
- } catch (err) {
961
- log.warn(`[boot] WARN: grimoire submodule check failed: ${errText(err)}`);
962
- }
963
- }
964
- function excludeLinkedSkills(workspace, names, log) {
965
- if (names.length === 0) return;
966
- const infoDir = join5(workspace, ".git", "info");
967
- if (!isDir2(join5(workspace, ".git"))) return;
968
- try {
969
- mkdirSync3(infoDir, { recursive: true });
970
- const excludePath = join5(infoDir, "exclude");
971
- const existing = existsSync3(excludePath) ? readFileSync2(excludePath, "utf8") : "";
972
- const missing = names.map((name) => `.claude/skills/${name}`).filter((line) => !existing.split("\n").includes(line));
973
- if (missing.length === 0) return;
974
- const prefix = existing.length > 0 && !existing.endsWith("\n") ? "\n" : "";
975
- appendFileSync3(excludePath, `${prefix}${missing.join("\n")}
976
- `);
977
- } catch (err) {
978
- log.warn(`[boot] WARN: unable to exclude grimoire skill links: ${errText(err)}`);
979
- }
980
- }
981
- function symlinkTargetsGrimoire(path) {
982
- try {
983
- return readlinkSync(path).includes(join5("grimoire", "skills"));
984
- } catch {
985
- return false;
986
- }
987
- }
988
- function linkGrimoireSkills(workspace, log) {
989
- const sourceDir = join5(workspace, ".claude", "grimoire", "skills");
990
- const targetDir = join5(workspace, ".claude", "skills");
991
- if (!isDir2(sourceDir)) return;
992
- try {
993
- mkdirSync3(targetDir, { recursive: true });
994
- } catch {
995
- log.warn(`[boot] WARN: unable to create ${targetDir}; skipping grimoire skill links`);
996
- return;
997
- }
998
- const linkedNames = [];
999
- let names = [];
1000
- try {
1001
- names = readdirSync2(sourceDir);
1002
- } catch {
1003
- return;
1004
- }
1005
- for (const name of names) {
1006
- if (!isDir2(join5(sourceDir, name))) continue;
1007
- const target = join5(targetDir, name);
1008
- if (existsSync3(target) && !isSymlink(target)) {
1009
- log.warn(`[boot] WARN: ${target} exists and is not a symlink; skipping`);
1010
- continue;
1011
- }
1012
- if (isSymlink(target) && !symlinkTargetsGrimoire(target)) continue;
1013
- try {
1014
- rmSync2(target, { force: true });
1015
- symlinkSync2(join5("..", "grimoire", "skills", name), target);
1016
- linkedNames.push(name);
1017
- } catch {
1018
- }
1019
- }
1020
- excludeLinkedSkills(workspace, linkedNames, log);
1021
- log.info(`[boot] Linked ${linkedNames.length} grimoire skills into ${targetDir}`);
1022
- }
1023
- function bundledSkillsDir(moduleUrl = import.meta.url) {
1024
- try {
1025
- const dir = join5(dirname2(fileURLToPath(moduleUrl)), "..", "skills");
1026
- return isDir2(dir) ? dir : null;
1027
- } catch {
1028
- return null;
1029
- }
1030
- }
1031
- function materializeBundledSkills(workspace, log, sourceDirOverride) {
1032
- const sourceDir = sourceDirOverride === void 0 ? bundledSkillsDir() : sourceDirOverride;
1033
- if (!sourceDir) {
1034
- log.warn(
1035
- "[boot] WARN: no bundled skills payload in this agent build. Cloud modes that invoke a skill will have no workflow to follow. This is a packaging fault (tsup copySkillsPayload did not run), not a workspace problem."
1036
- );
1037
- return;
1038
- }
1039
- const targetDir = join5(workspace, ".claude", "skills");
1040
- try {
1041
- mkdirSync3(targetDir, { recursive: true });
1042
- } catch {
1043
- log.warn(`[boot] WARN: unable to create ${targetDir}; skipping bundled skills`);
1044
- return;
1045
- }
1046
- const copied = [];
1047
- let names = [];
1048
- try {
1049
- names = readdirSync2(sourceDir);
1050
- } catch {
1051
- return;
1052
- }
1053
- for (const name of names) {
1054
- if (!isDir2(join5(sourceDir, name))) continue;
1055
- const target = join5(targetDir, name);
1056
- if (existsSync3(target) || isSymlink(target)) continue;
1057
- try {
1058
- cpSync(join5(sourceDir, name), target, { recursive: true, dereference: true });
1059
- copied.push(name);
1060
- } catch {
1061
- }
1062
- }
1063
- excludeLinkedSkills(workspace, copied, log);
1064
- log.info(`[boot] Materialized ${copied.length} bundled skills into ${targetDir}`);
1065
- }
1066
- async function neutralizeGrimoirePointer(workspace, git, log) {
1067
- if (!existsSync3(join5(workspace, ".claude", "grimoire"))) return;
1068
- try {
1069
- await git(["update-index", "--assume-unchanged", ".claude/grimoire"], {
1070
- cwd: workspace,
1071
- timeoutMs: 1e4
1072
- });
1073
- log.info("[boot] Marked .claude/grimoire assume-unchanged (submodule pointer drift is noise)");
1074
- } catch (err) {
1075
- log.warn(`[boot] WARN: grimoire assume-unchanged failed: ${errText(err)}`);
1076
- }
1077
- }
1078
- function parseReferenceRepos(refsJson) {
1079
- let parsed;
1080
- try {
1081
- parsed = JSON.parse(refsJson);
1082
- } catch {
1083
- return [];
1084
- }
1085
- if (!Array.isArray(parsed)) return [];
1086
- const refs = [];
1087
- for (const entry of parsed) {
1088
- if (typeof entry !== "object" || entry === null) continue;
1089
- const raw = entry;
1090
- const str = (key) => typeof raw[key] === "string" ? raw[key] : "";
1091
- const ref = {
1092
- slug: str("slug"),
1093
- owner: str("owner"),
1094
- name: str("name"),
1095
- branch: str("branch") || "main",
1096
- token: str("token")
1097
- };
1098
- if (ref.token && ref.slug && ref.owner && ref.name) refs.push(ref);
1099
- }
1100
- return refs;
1101
- }
1102
- async function runPreReadyBinds(workspace, bundle, git, log) {
1103
- const graphifyEnv = computeGraphifyEnv(process.env, bundle.gitPlan.repoName, isDir2);
1104
- bindGraphifyBundle(workspace, graphifyEnv, log);
1105
- await ensureGrimoireSubmodule(workspace, bundle.githubToken ?? "", git, log);
1106
- linkGrimoireSkills(workspace, log);
1107
- materializeBundledSkills(workspace, log);
1108
- await neutralizeGrimoirePointer(workspace, git, log);
1109
- }
1110
- async function cloneReferenceRepos(refsJson, git, log, referencesDir = "/workspaces/references") {
1111
- if (!refsJson) return;
1112
- const refs = parseReferenceRepos(refsJson);
1113
- if (refs.length === 0) return;
1114
- try {
1115
- mkdirSync3(referencesDir, { recursive: true });
1116
- } catch {
1117
- return;
1118
- }
1119
- for (const ref of refs) {
1120
- const dest = join5(referencesDir, ref.slug);
1121
- if (existsSync3(join5(dest, ".git"))) continue;
1122
- try {
1123
- await git(
1124
- [
1125
- "clone",
1126
- "--depth",
1127
- "1",
1128
- "--single-branch",
1129
- "--branch",
1130
- ref.branch,
1131
- `https://x-access-token:${ref.token}@github.com/${ref.owner}/${ref.name}.git`,
1132
- dest
1133
- ],
1134
- { timeoutMs: 6e5 }
1135
- );
1136
- try {
1137
- await git(
1138
- ["remote", "set-url", "origin", `https://github.com/${ref.owner}/${ref.name}.git`],
1139
- { cwd: dest, timeoutMs: 1e4 }
1140
- );
1141
- } catch {
1142
- }
1143
- log.info(`[boot] cloned reference ${ref.slug} (${ref.owner}/${ref.name}@${ref.branch})`);
1144
- } catch {
1145
- log.warn(`[boot] WARN: reference clone failed: ${ref.slug}`);
1146
- }
1147
- }
1148
- }
1149
-
1150
831
  // src/boot/workbench-boot-deps.ts
1151
832
  var WORKSPACE_DIR = "/workspaces/repo";
1152
833
  var HOME_DIR = "/home/conveyor";
1153
- var USER_HOME_MOUNT2 = "/mnt/conveyor-users";
834
+ var USER_HOME_MOUNT = "/mnt/conveyor-users";
1154
835
  function sleep(ms) {
1155
836
  return new Promise((resolve) => {
1156
837
  setTimeout(resolve, ms);
@@ -1183,6 +864,14 @@ function defaultWorkbenchBootDeps() {
1183
864
  }),
1184
865
  bindsBeforeReady: (ctx, bundle) => runPreReadyBinds(WORKSPACE_DIR, bundle, defaultGit, ctx.log),
1185
866
  cloneReferences: (ctx, bundle) => cloneReferenceRepos(bundle.envVars?.REFERENCE_REPOS_JSON, defaultGit, ctx.log),
867
+ refreshSkills: async (ctx) => {
868
+ const { filled, shadowed, stale } = await refreshSkillsAfterCheckout(
869
+ WORKSPACE_DIR,
870
+ defaultGit,
871
+ ctx.log
872
+ );
873
+ return { t: "refreshSkills", filled, shadowed, stale };
874
+ },
1186
875
  ensureWorkspaceDir: (ctx) => {
1187
876
  ensureDir(WORKSPACE_DIR);
1188
877
  ctx.log.info(`[boot] ensured workspace dir ${WORKSPACE_DIR}`);
@@ -1190,7 +879,7 @@ function defaultWorkbenchBootDeps() {
1190
879
  wireHome: (ctx) => {
1191
880
  void wireUserHome({
1192
881
  home: HOME_DIR,
1193
- userHomeMount: USER_HOME_MOUNT2,
882
+ userHomeMount: USER_HOME_MOUNT,
1194
883
  userId: ctx.childEnv?.CONVEYOR_USER_ID,
1195
884
  projectId: ctx.childEnv?.CONVEYOR_PROJECT_ID ?? ctx.childEnv?.PROJECT_ID,
1196
885
  sharedDir: process.env.CONVEYOR_SHARED_DIR,
@@ -1239,6 +928,7 @@ async function runWorkbenchBoot(ctx, overrides = {}) {
1239
928
  token: ctx.bootstrapToken,
1240
929
  version: readAgentVersion() ?? "unknown",
1241
930
  getGitStatus: () => toGitStatusFrame(job.status),
931
+ refreshSkills: () => deps.refreshSkills(ctx),
1242
932
  oomWatchdog: oomWatchdogOptionsFromEnv(ctx.log)
1243
933
  });
1244
934
  ctx.log.info("[boot] step=startDaemon listen socket up (startupProbe gate open)");
@@ -1261,7 +951,7 @@ async function runWorkbenchBoot(ctx, overrides = {}) {
1261
951
 
1262
952
  // src/boot/index.ts
1263
953
  var HOME_DIR2 = "/home/conveyor";
1264
- var USER_HOME_MOUNT3 = "/mnt/conveyor-users";
954
+ var USER_HOME_MOUNT2 = "/mnt/conveyor-users";
1265
955
  function defaultBootDeps() {
1266
956
  return {
1267
957
  fetchFn: fetch,
@@ -1272,7 +962,7 @@ function defaultBootDeps() {
1272
962
  exec: defaultExec,
1273
963
  dirExists: (path) => {
1274
964
  try {
1275
- return statSync4(path).isDirectory();
965
+ return statSync3(path).isDirectory();
1276
966
  } catch {
1277
967
  return false;
1278
968
  }
@@ -1349,7 +1039,7 @@ function agentBootSteps(deps = defaultBootDeps(), signal = new AbortController()
1349
1039
  if (ctx.bundle) {
1350
1040
  void wireUserHome({
1351
1041
  home: HOME_DIR2,
1352
- userHomeMount: USER_HOME_MOUNT3,
1042
+ userHomeMount: USER_HOME_MOUNT2,
1353
1043
  userId: ctx.childEnv?.CONVEYOR_USER_ID,
1354
1044
  projectId: ctx.childEnv?.CONVEYOR_PROJECT_ID ?? ctx.childEnv?.PROJECT_ID,
1355
1045
  sharedDir: process.env.CONVEYOR_SHARED_DIR,
@@ -5,7 +5,7 @@ import {
5
5
  readWorkspaceBytes,
6
6
  statWorkspacePath,
7
7
  workspacePathExists
8
- } from "./chunk-SLUBOIYE.js";
8
+ } from "./chunk-APP6Y2D7.js";
9
9
  import {
10
10
  reportBootMilestone
11
11
  } from "./chunk-GL2DIQEQ.js";
@@ -16,7 +16,7 @@ import {
16
16
  } from "./chunk-W4LZ7R6Z.js";
17
17
  import {
18
18
  getWorkbenchClient
19
- } from "./chunk-EXQ6AHOY.js";
19
+ } from "./chunk-TOTCEWJD.js";
20
20
  import {
21
21
  workbenchEnabled
22
22
  } from "./chunk-KMB3BU4S.js";
@@ -20,7 +20,7 @@ import {
20
20
  import {
21
21
  WorkbenchError,
22
22
  getWorkbenchClient
23
- } from "./chunk-EXQ6AHOY.js";
23
+ } from "./chunk-TOTCEWJD.js";
24
24
  import {
25
25
  workbenchEnabled
26
26
  } from "./chunk-KMB3BU4S.js";
@@ -287,6 +287,10 @@ var AgentConnection = class _AgentConnection {
287
287
  // PTY relay (S5 terminal). Single-slot callbacks, set per PtySession run.
288
288
  ptyInputCallback = null;
289
289
  ptyResizeCallback = null;
290
+ /** Epoch ms of the last relayed keystroke, or null before any input. The
291
+ * question-grace expiry reads it to defer un-parking while a human is
292
+ * actively typing into the Connected-TUI (they may be mid-answer). */
293
+ _lastPtyInputAt = null;
290
294
  constructor(config) {
291
295
  this.config = config;
292
296
  }
@@ -475,6 +479,7 @@ var AgentConnection = class _AgentConnection {
475
479
  });
476
480
  this.socket.on("pty:input", (data) => {
477
481
  if (data.sessionId && data.sessionId !== this.config.sessionId) return;
482
+ this._lastPtyInputAt = Date.now();
478
483
  this.ptyInputCallback?.(data.data);
479
484
  });
480
485
  this.socket.on("pty:resize", (data) => {
@@ -925,6 +930,10 @@ var AgentConnection = class _AgentConnection {
925
930
  }).catch(() => {
926
931
  });
927
932
  }
933
+ /** Epoch ms of the last relayed TUI keystroke, or null before any. */
934
+ get lastPtyInputAt() {
935
+ return this._lastPtyInputAt;
936
+ }
928
937
  /** Subscribe to relayed keystrokes. Returns an unsubscribe fn. */
929
938
  onPtyInput(handler) {
930
939
  this.ptyInputCallback = handler;
@@ -2539,6 +2548,7 @@ export {
2539
2548
  statWorkspacePath,
2540
2549
  workspacePathExists,
2541
2550
  GIT_TIMEOUT_MS,
2551
+ git,
2542
2552
  updateRemoteToken,
2543
2553
  verifyGitCredential,
2544
2554
  forceFreshMintBlocked,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  loadPtySpawn
3
- } from "./chunk-W6VILPQE.js";
3
+ } from "./chunk-JG3VMWRQ.js";
4
4
  import {
5
5
  terminateProcessGroup
6
6
  } from "./chunk-W4LZ7R6Z.js";
@@ -99,6 +99,19 @@ function handleConnection(socket, opts, liveOps) {
99
99
  });
100
100
  socket.on("data", (chunk) => reader.push(chunk));
101
101
  }
102
+ async function runRefreshSkills(socket, opts) {
103
+ const empty = { t: "refreshSkills", filled: [], shadowed: [], stale: [] };
104
+ try {
105
+ writeFrame(socket, await opts.refreshSkills?.() ?? empty);
106
+ } catch (err) {
107
+ writeFrame(socket, {
108
+ t: "error",
109
+ message: err instanceof Error ? err.message : String(err),
110
+ code: errCode(err)
111
+ });
112
+ }
113
+ socket.end();
114
+ }
102
115
  function dispatch(socket, req, sink, opts, liveOps) {
103
116
  if (!req || typeof req !== "object" || !timingSafeTokenEqual(req.token ?? "", opts.token)) {
104
117
  writeFrame(socket, { t: "error", message: "unauthorized", code: "unauthorized" });
@@ -114,6 +127,9 @@ function dispatch(socket, req, sink, opts, liveOps) {
114
127
  writeFrame(socket, opts.getGitStatus?.() ?? { t: "gitStatus", state: "ready" });
115
128
  socket.end();
116
129
  return;
130
+ case "refreshSkills":
131
+ void runRefreshSkills(socket, opts);
132
+ return;
117
133
  case "exec":
118
134
  runExec(socket, req, sink, liveOps);
119
135
  return;
@@ -200,7 +200,7 @@ async function loadPtySpawn() {
200
200
  async function resolvePtySpawn() {
201
201
  const { workbenchEnabled } = await import("./mode-ZJSOSLGU.js");
202
202
  if (!workbenchEnabled()) return loadPtySpawn();
203
- const { getWorkbenchClient } = await import("./client-IG6C5F2G.js");
203
+ const { getWorkbenchClient } = await import("./client-6AUPKKMV.js");
204
204
  return (file, args, options) => getWorkbenchClient().spawnPty(file, args, options);
205
205
  }
206
206
  function sessionTempBase() {