@integrity-labs/agt-cli 0.28.331 → 0.28.332
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/dist/bin/agt.js +3 -3
- package/dist/{chunk-4Y3UPOR2.js → chunk-YNHMQ4CW.js} +119 -26
- package/dist/chunk-YNHMQ4CW.js.map +1 -0
- package/dist/lib/manager-worker.js +4 -4
- package/dist/mcp/direct-chat-channel.js +92 -51
- package/dist/mcp/slack-channel.js +155 -118
- package/dist/mcp/teams-channel.js +100 -51
- package/dist/mcp/telegram-channel.js +146 -98
- package/dist/{responsiveness-probe-OJJESVVX.js → responsiveness-probe-46XFHCPY.js} +12 -2
- package/dist/responsiveness-probe-46XFHCPY.js.map +1 -0
- package/package.json +1 -1
- package/dist/chunk-4Y3UPOR2.js.map +0 -1
- package/dist/responsiveness-probe-OJJESVVX.js.map +0 -1
|
@@ -43,7 +43,7 @@ import {
|
|
|
43
43
|
requireHost,
|
|
44
44
|
safeWriteJsonAtomic,
|
|
45
45
|
setConfigHash
|
|
46
|
-
} from "../chunk-
|
|
46
|
+
} from "../chunk-YNHMQ4CW.js";
|
|
47
47
|
import {
|
|
48
48
|
getProjectDir as getProjectDir2,
|
|
49
49
|
getReadyTasks,
|
|
@@ -8386,7 +8386,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
|
|
|
8386
8386
|
var lastVersionCheckAt = 0;
|
|
8387
8387
|
var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
|
|
8388
8388
|
var lastResponsivenessProbeAt = 0;
|
|
8389
|
-
var agtCliVersion = true ? "0.28.
|
|
8389
|
+
var agtCliVersion = true ? "0.28.332" : "dev";
|
|
8390
8390
|
function resolveBrewPath(execFileSync2) {
|
|
8391
8391
|
try {
|
|
8392
8392
|
const out = execFileSync2("which", ["brew"], { timeout: 5e3 }).toString().trim();
|
|
@@ -9530,7 +9530,7 @@ async function pollCycle() {
|
|
|
9530
9530
|
const {
|
|
9531
9531
|
collectResponsivenessProbes,
|
|
9532
9532
|
getResponsivenessIntervalMs
|
|
9533
|
-
} = await import("../responsiveness-probe-
|
|
9533
|
+
} = await import("../responsiveness-probe-46XFHCPY.js");
|
|
9534
9534
|
const probeIntervalMs = getResponsivenessIntervalMs();
|
|
9535
9535
|
if (now - lastResponsivenessProbeAt > probeIntervalMs) {
|
|
9536
9536
|
const probeCodeNames = [...agentState.persistentSessionAgents];
|
|
@@ -9562,7 +9562,7 @@ async function pollCycle() {
|
|
|
9562
9562
|
collectResponsivenessProbes,
|
|
9563
9563
|
livePendingInboundOldestAgeSeconds,
|
|
9564
9564
|
parkPendingInbound
|
|
9565
|
-
} = await import("../responsiveness-probe-
|
|
9565
|
+
} = await import("../responsiveness-probe-46XFHCPY.js");
|
|
9566
9566
|
const { getProjectDir: wedgeProjectDir } = await import("../claude-scheduler-FATCLHDM.js");
|
|
9567
9567
|
const wedgeNow = /* @__PURE__ */ new Date();
|
|
9568
9568
|
const liveAgents = agentState.persistentSessionAgents;
|
|
@@ -14378,6 +14378,34 @@ async function consumeDirectChatRecoveryFile(fullPath, filename, deps) {
|
|
|
14378
14378
|
return "failed";
|
|
14379
14379
|
}
|
|
14380
14380
|
|
|
14381
|
+
// src/inbound-delivery-ledger.ts
|
|
14382
|
+
import { existsSync as existsSync3, mkdirSync as mkdirSync3, readdirSync as readdirSync2, readFileSync as readFileSync3, renameSync as renameSync3, writeFileSync as writeFileSync3 } from "fs";
|
|
14383
|
+
import { join as join4 } from "path";
|
|
14384
|
+
function safeInboundId(inboundId) {
|
|
14385
|
+
return inboundId.replace(/[^A-Za-z0-9_-]/g, "_");
|
|
14386
|
+
}
|
|
14387
|
+
var defaultDeps = {
|
|
14388
|
+
mkdir: (dir) => mkdirSync3(dir, { recursive: true }),
|
|
14389
|
+
writeFile: (path, data) => writeFileSync3(path, data, "utf8"),
|
|
14390
|
+
rename: (from, to) => renameSync3(from, to),
|
|
14391
|
+
readdir: (dir) => readdirSync2(dir),
|
|
14392
|
+
readFile: (path) => readFileSync3(path, "utf8"),
|
|
14393
|
+
exists: (path) => existsSync3(path)
|
|
14394
|
+
};
|
|
14395
|
+
function writeInboundDeliveryLedgerEntry(dir, record2, deps = defaultDeps) {
|
|
14396
|
+
if (!dir || !record2.inbound_id || !record2.conv_key) return;
|
|
14397
|
+
const safe = safeInboundId(record2.inbound_id);
|
|
14398
|
+
if (!safe || safe.includes("/") || safe.includes("\\") || safe.includes("..")) return;
|
|
14399
|
+
try {
|
|
14400
|
+
deps.mkdir(dir);
|
|
14401
|
+
const final = join4(dir, `${safe}.json`);
|
|
14402
|
+
const tmp = `${final}.tmp`;
|
|
14403
|
+
deps.writeFile(tmp, JSON.stringify(record2));
|
|
14404
|
+
deps.rename(tmp, final);
|
|
14405
|
+
} catch {
|
|
14406
|
+
}
|
|
14407
|
+
}
|
|
14408
|
+
|
|
14381
14409
|
// src/direct-chat-poll-guard.ts
|
|
14382
14410
|
function evaluatePollGuard(state, nowMs, stuckMs) {
|
|
14383
14411
|
if (!state.inFlight) return { run: true, stuck: false };
|
|
@@ -14400,14 +14428,14 @@ async function fetchWithTimeout(input, init, timeoutMs, fetchImpl = fetch) {
|
|
|
14400
14428
|
|
|
14401
14429
|
// src/mcp-spawn-lock.ts
|
|
14402
14430
|
import {
|
|
14403
|
-
existsSync as
|
|
14404
|
-
mkdirSync as
|
|
14405
|
-
readFileSync as
|
|
14406
|
-
renameSync as
|
|
14431
|
+
existsSync as existsSync4,
|
|
14432
|
+
mkdirSync as mkdirSync4,
|
|
14433
|
+
readFileSync as readFileSync4,
|
|
14434
|
+
renameSync as renameSync4,
|
|
14407
14435
|
unlinkSync as unlinkSync2,
|
|
14408
|
-
writeFileSync as
|
|
14436
|
+
writeFileSync as writeFileSync4
|
|
14409
14437
|
} from "fs";
|
|
14410
|
-
import { join as
|
|
14438
|
+
import { join as join5 } from "path";
|
|
14411
14439
|
function defaultIsPidAlive(pid) {
|
|
14412
14440
|
if (!Number.isFinite(pid) || pid <= 0) return false;
|
|
14413
14441
|
try {
|
|
@@ -14425,7 +14453,7 @@ function acquireMcpSpawnLock(args) {
|
|
|
14425
14453
|
const isPidAlive = options.isPidAlive ?? defaultIsPidAlive;
|
|
14426
14454
|
const selfPid = options.selfPid ?? process.pid;
|
|
14427
14455
|
const now = options.now ?? (() => (/* @__PURE__ */ new Date()).toISOString());
|
|
14428
|
-
const path =
|
|
14456
|
+
const path = join5(agentDir, basename);
|
|
14429
14457
|
const existing = readLockHolder(path);
|
|
14430
14458
|
if (existing) {
|
|
14431
14459
|
if (existing.pid === selfPid) {
|
|
@@ -14435,11 +14463,11 @@ function acquireMcpSpawnLock(args) {
|
|
|
14435
14463
|
return { kind: "blocked", path, holder: existing };
|
|
14436
14464
|
}
|
|
14437
14465
|
}
|
|
14438
|
-
|
|
14466
|
+
mkdirSync4(agentDir, { recursive: true, mode: 448 });
|
|
14439
14467
|
const tmpPath = `${path}.${selfPid}.tmp`;
|
|
14440
14468
|
const payload = { pid: selfPid, started_at: now() };
|
|
14441
|
-
|
|
14442
|
-
|
|
14469
|
+
writeFileSync4(tmpPath, JSON.stringify(payload), { mode: 384 });
|
|
14470
|
+
renameSync4(tmpPath, path);
|
|
14443
14471
|
return { kind: "acquired", path };
|
|
14444
14472
|
}
|
|
14445
14473
|
function releaseMcpSpawnLock(lockPath, opts = {}) {
|
|
@@ -14454,9 +14482,9 @@ function releaseMcpSpawnLock(lockPath, opts = {}) {
|
|
|
14454
14482
|
}
|
|
14455
14483
|
}
|
|
14456
14484
|
function readLockHolder(path) {
|
|
14457
|
-
if (!
|
|
14485
|
+
if (!existsSync4(path)) return null;
|
|
14458
14486
|
try {
|
|
14459
|
-
const raw =
|
|
14487
|
+
const raw = readFileSync4(path, "utf8");
|
|
14460
14488
|
const parsed = JSON.parse(raw);
|
|
14461
14489
|
const pid = typeof parsed.pid === "number" ? parsed.pid : Number(parsed.pid);
|
|
14462
14490
|
if (!Number.isFinite(pid) || pid <= 0) return null;
|
|
@@ -14469,36 +14497,36 @@ function readLockHolder(path) {
|
|
|
14469
14497
|
|
|
14470
14498
|
// src/direct-chat-channel.ts
|
|
14471
14499
|
import { homedir as homedir2 } from "os";
|
|
14472
|
-
import { join as
|
|
14500
|
+
import { join as join8 } from "path";
|
|
14473
14501
|
import { randomUUID } from "crypto";
|
|
14474
14502
|
import {
|
|
14475
14503
|
watch,
|
|
14476
|
-
mkdirSync as
|
|
14477
|
-
writeFileSync as
|
|
14478
|
-
readFileSync as
|
|
14479
|
-
readdirSync as
|
|
14480
|
-
existsSync as
|
|
14481
|
-
renameSync as
|
|
14504
|
+
mkdirSync as mkdirSync5,
|
|
14505
|
+
writeFileSync as writeFileSync5,
|
|
14506
|
+
readFileSync as readFileSync6,
|
|
14507
|
+
readdirSync as readdirSync3,
|
|
14508
|
+
existsSync as existsSync6,
|
|
14509
|
+
renameSync as renameSync5,
|
|
14482
14510
|
unlinkSync as unlinkSync3
|
|
14483
14511
|
} from "fs";
|
|
14484
14512
|
|
|
14485
14513
|
// src/direct-chat-inbound-attachments.ts
|
|
14486
|
-
import { dirname as dirname2, join as
|
|
14514
|
+
import { dirname as dirname2, join as join6 } from "path";
|
|
14487
14515
|
var MAX_INBOUND_ATTACHMENT_BYTES = 10 * 1024 * 1024;
|
|
14488
14516
|
var INBOUND_ATTACHMENTS_SUBDIR = "direct-chat-inbound";
|
|
14489
14517
|
function resolveInboundAttachmentsDir(input) {
|
|
14490
14518
|
const { codeName, turnInitiatorFile, agentId, homeDir } = input;
|
|
14491
14519
|
const codeNameTrimmed = typeof codeName === "string" ? codeName.trim() : "";
|
|
14492
14520
|
if (codeNameTrimmed) {
|
|
14493
|
-
return
|
|
14521
|
+
return join6(homeDir, ".augmented", codeNameTrimmed, INBOUND_ATTACHMENTS_SUBDIR);
|
|
14494
14522
|
}
|
|
14495
14523
|
const initiator = typeof turnInitiatorFile === "string" ? turnInitiatorFile.trim() : "";
|
|
14496
14524
|
if (initiator) {
|
|
14497
|
-
return
|
|
14525
|
+
return join6(dirname2(initiator), INBOUND_ATTACHMENTS_SUBDIR);
|
|
14498
14526
|
}
|
|
14499
14527
|
const agentIdTrimmed = typeof agentId === "string" ? agentId.trim() : "";
|
|
14500
14528
|
if (agentIdTrimmed) {
|
|
14501
|
-
return
|
|
14529
|
+
return join6(homeDir, ".augmented", agentIdTrimmed, INBOUND_ATTACHMENTS_SUBDIR);
|
|
14502
14530
|
}
|
|
14503
14531
|
return null;
|
|
14504
14532
|
}
|
|
@@ -14596,11 +14624,11 @@ async function downloadInboundAttachments(attachments, dir, deps) {
|
|
|
14596
14624
|
}
|
|
14597
14625
|
|
|
14598
14626
|
// src/flags-cache-read.ts
|
|
14599
|
-
import { existsSync as
|
|
14627
|
+
import { existsSync as existsSync5, readFileSync as readFileSync5 } from "fs";
|
|
14600
14628
|
import { homedir } from "os";
|
|
14601
|
-
import { join as
|
|
14629
|
+
import { join as join7 } from "path";
|
|
14602
14630
|
function defaultFlagsCachePath() {
|
|
14603
|
-
return
|
|
14631
|
+
return join7(homedir(), ".augmented", "flags-cache.json");
|
|
14604
14632
|
}
|
|
14605
14633
|
function envBoolean(raw) {
|
|
14606
14634
|
if (raw === void 0) return void 0;
|
|
@@ -14612,8 +14640,8 @@ function envBoolean(raw) {
|
|
|
14612
14640
|
}
|
|
14613
14641
|
function cachedBoolean(key, path) {
|
|
14614
14642
|
try {
|
|
14615
|
-
if (!
|
|
14616
|
-
const parsed = JSON.parse(
|
|
14643
|
+
if (!existsSync5(path)) return void 0;
|
|
14644
|
+
const parsed = JSON.parse(readFileSync5(path, "utf8"));
|
|
14617
14645
|
if (!parsed || typeof parsed !== "object") return void 0;
|
|
14618
14646
|
const flags = parsed.flags;
|
|
14619
14647
|
if (!flags || typeof flags !== "object") return void 0;
|
|
@@ -14950,7 +14978,7 @@ var DIRECT_CHAT_MAINTENANCE_COOLDOWN_MS = (() => {
|
|
|
14950
14978
|
var AGT_HOST = process.env.AGT_HOST;
|
|
14951
14979
|
var AGT_API_KEY = process.env.AGT_API_KEY;
|
|
14952
14980
|
var AGT_AGENT_ID = process.env.AGT_AGENT_ID;
|
|
14953
|
-
var DIRECT_CHAT_AGENT_DIR = AGT_AGENT_ID ?
|
|
14981
|
+
var DIRECT_CHAT_AGENT_DIR = AGT_AGENT_ID ? join8(homedir2(), ".augmented", AGT_AGENT_ID) : null;
|
|
14954
14982
|
var INBOUND_ATTACHMENTS_DIR = resolveInboundAttachmentsDir({
|
|
14955
14983
|
codeName: process.env.AGT_AGENT_CODE_NAME,
|
|
14956
14984
|
turnInitiatorFile: process.env.AGT_TURN_INITIATOR_FILE,
|
|
@@ -14958,10 +14986,20 @@ var INBOUND_ATTACHMENTS_DIR = resolveInboundAttachmentsDir({
|
|
|
14958
14986
|
homeDir: homedir2()
|
|
14959
14987
|
});
|
|
14960
14988
|
var AGT_AGENT_CODE_NAME = process.env.AGT_AGENT_CODE_NAME;
|
|
14961
|
-
var PROGRESS_HEARTBEAT_PATH = AGT_AGENT_CODE_NAME ?
|
|
14962
|
-
var DIRECT_CHAT_PENDING_INBOUND_DIR = AGT_AGENT_CODE_NAME ?
|
|
14963
|
-
var
|
|
14964
|
-
|
|
14989
|
+
var PROGRESS_HEARTBEAT_PATH = AGT_AGENT_CODE_NAME ? join8(homedir2(), ".augmented", AGT_AGENT_CODE_NAME, "channel-progress-heartbeat.json") : null;
|
|
14990
|
+
var DIRECT_CHAT_PENDING_INBOUND_DIR = AGT_AGENT_CODE_NAME ? join8(homedir2(), ".augmented", AGT_AGENT_CODE_NAME, "direct-chat-pending-inbound") : null;
|
|
14991
|
+
var DIRECT_CHAT_DELIVERY_LEDGER_DIR = AGT_AGENT_CODE_NAME ? join8(homedir2(), ".augmented", AGT_AGENT_CODE_NAME, ".agt-inbound-delivery-ledger") : null;
|
|
14992
|
+
function recordDirectChatDelivery(sessionId, messageIds) {
|
|
14993
|
+
if (!sessionId) return;
|
|
14994
|
+
writeInboundDeliveryLedgerEntry(DIRECT_CHAT_DELIVERY_LEDGER_DIR, {
|
|
14995
|
+
inbound_id: directChatInboundId(sessionId, messageIds[0] ?? ""),
|
|
14996
|
+
source: "direct-chat",
|
|
14997
|
+
conv_key: sessionId,
|
|
14998
|
+
delivered_at: (/* @__PURE__ */ new Date()).toISOString()
|
|
14999
|
+
});
|
|
15000
|
+
}
|
|
15001
|
+
var DIRECT_CHAT_RECOVERY_OUTBOX_DIR = AGT_AGENT_CODE_NAME ? join8(homedir2(), ".augmented", AGT_AGENT_CODE_NAME, "direct-chat-recovery-outbox") : null;
|
|
15002
|
+
var DIRECT_CHAT_RECOVERY_LEDGER_DIR = AGT_AGENT_CODE_NAME ? join8(homedir2(), ".augmented", AGT_AGENT_CODE_NAME, ".agt-direct-chat-recovery-ledger") : null;
|
|
14965
15003
|
var progressReceivedAt = /* @__PURE__ */ new Map();
|
|
14966
15004
|
var directChatProgressState = { tracked: null };
|
|
14967
15005
|
var directChatProgressTickRunning = false;
|
|
@@ -14978,9 +15016,9 @@ var directChatKanbanCardClient = createKanbanCardActiveClient({
|
|
|
14978
15016
|
`)
|
|
14979
15017
|
});
|
|
14980
15018
|
function readProgressHeartbeat() {
|
|
14981
|
-
if (!PROGRESS_HEARTBEAT_PATH || !
|
|
15019
|
+
if (!PROGRESS_HEARTBEAT_PATH || !existsSync6(PROGRESS_HEARTBEAT_PATH)) return null;
|
|
14982
15020
|
try {
|
|
14983
|
-
return parseProgressHeartbeat(
|
|
15021
|
+
return parseProgressHeartbeat(readFileSync6(PROGRESS_HEARTBEAT_PATH, "utf-8"));
|
|
14984
15022
|
} catch {
|
|
14985
15023
|
return null;
|
|
14986
15024
|
}
|
|
@@ -14989,9 +15027,9 @@ function seedProgressHeartbeat() {
|
|
|
14989
15027
|
if (!PROGRESS_HEARTBEAT_PATH) return;
|
|
14990
15028
|
const tmp = `${PROGRESS_HEARTBEAT_PATH}.${process.pid}.tmp`;
|
|
14991
15029
|
try {
|
|
14992
|
-
|
|
14993
|
-
|
|
14994
|
-
|
|
15030
|
+
mkdirSync5(join8(homedir2(), ".augmented", AGT_AGENT_CODE_NAME), { recursive: true });
|
|
15031
|
+
writeFileSync5(tmp, serializeProgressHeartbeat(SEED_PROGRESS_STEP, Date.now()), { mode: 384 });
|
|
15032
|
+
renameSync5(tmp, PROGRESS_HEARTBEAT_PATH);
|
|
14995
15033
|
} catch {
|
|
14996
15034
|
try {
|
|
14997
15035
|
unlinkSync3(tmp);
|
|
@@ -15147,9 +15185,9 @@ var inboundAttachmentDeps = {
|
|
|
15147
15185
|
bytes: async () => new Uint8Array(await res.arrayBuffer())
|
|
15148
15186
|
};
|
|
15149
15187
|
},
|
|
15150
|
-
ensureDir: (dir) =>
|
|
15151
|
-
writeFile: (path, bytes) =>
|
|
15152
|
-
joinPath: (...parts) =>
|
|
15188
|
+
ensureDir: (dir) => mkdirSync5(dir, { recursive: true }),
|
|
15189
|
+
writeFile: (path, bytes) => writeFileSync5(path, bytes, { mode: 384 }),
|
|
15190
|
+
joinPath: (...parts) => join8(...parts),
|
|
15153
15191
|
warn: (msg) => process.stderr.write(`${msg}
|
|
15154
15192
|
`)
|
|
15155
15193
|
};
|
|
@@ -15318,6 +15356,7 @@ mcp.setRequestHandler(CallToolRequestSchema, async (req) => {
|
|
|
15318
15356
|
}
|
|
15319
15357
|
claimTracker.clear(session_id, message_ids);
|
|
15320
15358
|
clearDirectChatPendingMarkersForSession(DIRECT_CHAT_PENDING_INBOUND_DIR, session_id);
|
|
15359
|
+
recordDirectChatDelivery(session_id, message_ids);
|
|
15321
15360
|
const messageId = data.message_id;
|
|
15322
15361
|
for (let i = 1; i < slices.length; i++) {
|
|
15323
15362
|
await sleep(STREAM_REPLY_FLUSH_MS);
|
|
@@ -15363,6 +15402,7 @@ mcp.setRequestHandler(CallToolRequestSchema, async (req) => {
|
|
|
15363
15402
|
}
|
|
15364
15403
|
claimTracker.clear(session_id, message_ids);
|
|
15365
15404
|
clearDirectChatPendingMarkersForSession(DIRECT_CHAT_PENDING_INBOUND_DIR, session_id);
|
|
15405
|
+
recordDirectChatDelivery(session_id, message_ids);
|
|
15366
15406
|
return { content: [{ type: "text", text: "sent" }] };
|
|
15367
15407
|
} catch (err) {
|
|
15368
15408
|
return {
|
|
@@ -15392,6 +15432,7 @@ mcp.setRequestHandler(CallToolRequestSchema, async (req) => {
|
|
|
15392
15432
|
}
|
|
15393
15433
|
claimTracker.clear(session_id, message_ids);
|
|
15394
15434
|
clearDirectChatPendingMarkersForSession(DIRECT_CHAT_PENDING_INBOUND_DIR, session_id);
|
|
15435
|
+
recordDirectChatDelivery(session_id, message_ids);
|
|
15395
15436
|
return { content: [{ type: "text", text: "consumed" }] };
|
|
15396
15437
|
} catch (err) {
|
|
15397
15438
|
return {
|
|
@@ -15587,7 +15628,7 @@ var doorbellWatcher = null;
|
|
|
15587
15628
|
var safetyNetTimer = null;
|
|
15588
15629
|
if (DOORBELL_ENABLED && DIRECT_CHAT_AGENT_DIR) {
|
|
15589
15630
|
try {
|
|
15590
|
-
|
|
15631
|
+
mkdirSync5(DIRECT_CHAT_AGENT_DIR, { recursive: true });
|
|
15591
15632
|
} catch {
|
|
15592
15633
|
}
|
|
15593
15634
|
const sessionState = readDirectChatSessionState(DIRECT_CHAT_AGENT_DIR, Date.now());
|
|
@@ -15642,10 +15683,10 @@ function sanitizeRecoveryText(text) {
|
|
|
15642
15683
|
}
|
|
15643
15684
|
function directChatRecoveryDeps() {
|
|
15644
15685
|
return {
|
|
15645
|
-
readFile: (p) =>
|
|
15646
|
-
renameFile: (from, to) =>
|
|
15686
|
+
readFile: (p) => readFileSync6(p, "utf-8"),
|
|
15687
|
+
renameFile: (from, to) => renameSync5(from, to),
|
|
15647
15688
|
unlinkFile: (p) => {
|
|
15648
|
-
if (
|
|
15689
|
+
if (existsSync6(p)) unlinkSync3(p);
|
|
15649
15690
|
},
|
|
15650
15691
|
sanitize: sanitizeRecoveryText,
|
|
15651
15692
|
peekClaims: (sessionId) => claimTracker.peek(sessionId),
|
|
@@ -15655,8 +15696,8 @@ function directChatRecoveryDeps() {
|
|
|
15655
15696
|
if (!DIRECT_CHAT_RECOVERY_LEDGER_DIR) return;
|
|
15656
15697
|
if (markerName.includes("/") || markerName.includes("\\") || markerName.includes("..")) return;
|
|
15657
15698
|
try {
|
|
15658
|
-
const p =
|
|
15659
|
-
if (
|
|
15699
|
+
const p = join8(DIRECT_CHAT_RECOVERY_LEDGER_DIR, markerName);
|
|
15700
|
+
if (existsSync6(p)) unlinkSync3(p);
|
|
15660
15701
|
} catch {
|
|
15661
15702
|
}
|
|
15662
15703
|
},
|
|
@@ -15691,7 +15732,7 @@ async function processDirectChatRecoveryOutboxFile(filename) {
|
|
|
15691
15732
|
if (!enabled) return;
|
|
15692
15733
|
directChatRecoveryInFlight.add(filename);
|
|
15693
15734
|
try {
|
|
15694
|
-
const fullPath =
|
|
15735
|
+
const fullPath = join8(DIRECT_CHAT_RECOVERY_OUTBOX_DIR, filename);
|
|
15695
15736
|
await consumeDirectChatRecoveryFile(fullPath, filename, directChatRecoveryDeps());
|
|
15696
15737
|
} catch (err) {
|
|
15697
15738
|
process.stderr.write(
|
|
@@ -15705,11 +15746,11 @@ async function processDirectChatRecoveryOutboxFile(filename) {
|
|
|
15705
15746
|
var directChatRecoveryWatcher = null;
|
|
15706
15747
|
if (DIRECT_CHAT_RECOVERY_OUTBOX_DIR) {
|
|
15707
15748
|
try {
|
|
15708
|
-
|
|
15749
|
+
mkdirSync5(DIRECT_CHAT_RECOVERY_OUTBOX_DIR, { recursive: true, mode: 448 });
|
|
15709
15750
|
} catch {
|
|
15710
15751
|
}
|
|
15711
15752
|
try {
|
|
15712
|
-
for (const f of
|
|
15753
|
+
for (const f of readdirSync3(DIRECT_CHAT_RECOVERY_OUTBOX_DIR)) {
|
|
15713
15754
|
if (f.endsWith(".json")) void processDirectChatRecoveryOutboxFile(f);
|
|
15714
15755
|
}
|
|
15715
15756
|
} catch {
|
|
@@ -15719,7 +15760,7 @@ if (DIRECT_CHAT_RECOVERY_OUTBOX_DIR) {
|
|
|
15719
15760
|
if (!filename) return;
|
|
15720
15761
|
const name = filename.toString();
|
|
15721
15762
|
if (!name.endsWith(".json")) return;
|
|
15722
|
-
if (
|
|
15763
|
+
if (existsSync6(join8(DIRECT_CHAT_RECOVERY_OUTBOX_DIR, name))) {
|
|
15723
15764
|
void processDirectChatRecoveryOutboxFile(name);
|
|
15724
15765
|
}
|
|
15725
15766
|
});
|