@runeya/runeya 2.0.16 → 2.0.18

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.
package/agent/index.js CHANGED
@@ -4365,7 +4365,7 @@ var terminalRouter = router({
4365
4365
  }
4366
4366
  const queue = [];
4367
4367
  let resolve = null;
4368
- let done = false;
4368
+ let done2 = false;
4369
4369
  const onData = (data) => {
4370
4370
  queue.push(data);
4371
4371
  if (resolve) {
@@ -4374,7 +4374,7 @@ var terminalRouter = router({
4374
4374
  }
4375
4375
  };
4376
4376
  const onExit = () => {
4377
- done = true;
4377
+ done2 = true;
4378
4378
  if (resolve) {
4379
4379
  resolve();
4380
4380
  resolve = null;
@@ -4383,7 +4383,7 @@ var terminalRouter = router({
4383
4383
  emitter.on("data", onData);
4384
4384
  emitter.on("exit", onExit);
4385
4385
  try {
4386
- while (!done || queue.length > 0) {
4386
+ while (!done2 || queue.length > 0) {
4387
4387
  if (queue.length > 0) {
4388
4388
  yield queue.shift();
4389
4389
  } else {
@@ -5030,7 +5030,7 @@ var AiSpawnManager = class {
5030
5030
  if (!entry) throw new Error(`AI spawn ${spawnId} not found`);
5031
5031
  let offset = fromOffset;
5032
5032
  let resolve = null;
5033
- let done = false;
5033
+ let done2 = false;
5034
5034
  const onChunk = () => {
5035
5035
  if (resolve) {
5036
5036
  resolve();
@@ -5038,7 +5038,7 @@ var AiSpawnManager = class {
5038
5038
  }
5039
5039
  };
5040
5040
  const onDone = () => {
5041
- done = true;
5041
+ done2 = true;
5042
5042
  if (resolve) {
5043
5043
  resolve();
5044
5044
  resolve = null;
@@ -5047,7 +5047,7 @@ var AiSpawnManager = class {
5047
5047
  entry.emitter.on("chunk", onChunk);
5048
5048
  entry.emitter.on("done", onDone);
5049
5049
  if (entry.status !== "running" && offset >= entry.buffer.length) {
5050
- done = true;
5050
+ done2 = true;
5051
5051
  }
5052
5052
  try {
5053
5053
  while (true) {
@@ -5058,7 +5058,7 @@ var AiSpawnManager = class {
5058
5058
  if (entry.status !== "running" && offset >= entry.buffer.length) {
5059
5059
  break;
5060
5060
  }
5061
- if (done && offset >= entry.buffer.length) break;
5061
+ if (done2 && offset >= entry.buffer.length) break;
5062
5062
  await new Promise((r) => {
5063
5063
  resolve = r;
5064
5064
  });
@@ -5900,11 +5900,42 @@ var appRouter = router({
5900
5900
  wiki: wikiRouter
5901
5901
  });
5902
5902
 
5903
+ // src/utils/ensure-pty-helper.ts
5904
+ import { createRequire as createRequire2 } from "module";
5905
+ import { chmodSync, existsSync as existsSync3, statSync } from "fs";
5906
+ import { dirname as dirname2, join as join6 } from "path";
5907
+ var done = false;
5908
+ function ensurePtyHelperExecutable() {
5909
+ if (done) return;
5910
+ done = true;
5911
+ if (process.platform === "win32") return;
5912
+ try {
5913
+ const require2 = createRequire2(import.meta.url);
5914
+ const ptyDir = dirname2(require2.resolve("node-pty/package.json"));
5915
+ const candidates = [
5916
+ "build/Release",
5917
+ "build/Debug",
5918
+ `prebuilds/${process.platform}-${process.arch}`
5919
+ ];
5920
+ for (const sub of candidates) {
5921
+ const helper = join6(ptyDir, sub, "spawn-helper");
5922
+ if (!existsSync3(helper)) continue;
5923
+ const mode = statSync(helper).mode;
5924
+ if ((mode & 73) !== 73) {
5925
+ chmodSync(helper, mode | 73);
5926
+ console.log(`[agent] made node-pty spawn-helper executable: ${helper}`);
5927
+ }
5928
+ }
5929
+ } catch {
5930
+ }
5931
+ }
5932
+
5903
5933
  // src/create-agent.ts
5904
5934
  function createAgent(opts) {
5905
5935
  const passphraseHex = opts?.passphraseHex ?? crypto2.randomBytes(32).toString("hex");
5906
5936
  const healthWsIntervalMs = opts?.healthWsIntervalMs ?? env.HEALTH_WS_INTERVAL;
5907
5937
  setPassphrase(passphraseHex);
5938
+ ensurePtyHelperExecutable();
5908
5939
  const app = express();
5909
5940
  const server = createServer(app);
5910
5941
  app.use(cors({ origin: "http://localhost:4000" }));