@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
|
|
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
|
-
|
|
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 (!
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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 (
|
|
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" }));
|