@integrity-labs/agt-cli 0.27.159 → 0.27.161
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 +194 -112
- package/dist/bin/agt.js.map +1 -1
- package/dist/{chunk-GJVY7WKU.js → chunk-7RCGHACC.js} +2 -2
- package/dist/{chunk-5E5B4T7K.js → chunk-BC26YO7P.js} +95 -29
- package/dist/chunk-BC26YO7P.js.map +1 -0
- package/dist/{chunk-F5ZAIJHI.js → chunk-V5RAWFRT.js} +231 -26
- package/dist/{chunk-F5ZAIJHI.js.map → chunk-V5RAWFRT.js.map} +1 -1
- package/dist/{claude-pair-runtime-FTU6NTBF.js → claude-pair-runtime-G4MYOINJ.js} +2 -2
- package/dist/lib/manager-worker.js +59 -71
- package/dist/lib/manager-worker.js.map +1 -1
- package/dist/{persistent-session-EWHFMQRC.js → persistent-session-W6V2DO3R.js} +3 -3
- package/dist/{responsiveness-probe-SWHB27QI.js → responsiveness-probe-LY2H2XR5.js} +3 -3
- package/package.json +1 -1
- package/dist/chunk-5E5B4T7K.js.map +0 -1
- /package/dist/{chunk-GJVY7WKU.js.map → chunk-7RCGHACC.js.map} +0 -0
- /package/dist/{claude-pair-runtime-FTU6NTBF.js.map → claude-pair-runtime-G4MYOINJ.js.map} +0 -0
- /package/dist/{persistent-session-EWHFMQRC.js.map → persistent-session-W6V2DO3R.js.map} +0 -0
- /package/dist/{responsiveness-probe-SWHB27QI.js.map → responsiveness-probe-LY2H2XR5.js.map} +0 -0
|
@@ -100,7 +100,7 @@ async function spawnPairSession(session) {
|
|
|
100
100
|
return { ok: true };
|
|
101
101
|
} catch {
|
|
102
102
|
}
|
|
103
|
-
const { resolveClaudeBinary } = await import("./persistent-session-
|
|
103
|
+
const { resolveClaudeBinary } = await import("./persistent-session-W6V2DO3R.js");
|
|
104
104
|
const claudeBin = resolveClaudeBinary();
|
|
105
105
|
const pairEnv = {
|
|
106
106
|
...process.env,
|
|
@@ -373,4 +373,4 @@ export {
|
|
|
373
373
|
startClaudePair,
|
|
374
374
|
submitClaudePairCode
|
|
375
375
|
};
|
|
376
|
-
//# sourceMappingURL=claude-pair-runtime-
|
|
376
|
+
//# sourceMappingURL=claude-pair-runtime-G4MYOINJ.js.map
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ApiError,
|
|
3
3
|
CHANNEL_SECRET_ENV_KEYS,
|
|
4
|
+
HostFlagStore,
|
|
4
5
|
INTEGRATIONS_SECTION_END,
|
|
5
6
|
INTEGRATIONS_SECTION_START,
|
|
6
7
|
SUPERVISOR_RESTART_EXIT_CODE,
|
|
7
8
|
api,
|
|
9
|
+
atomicWriteFileSync,
|
|
10
|
+
defaultFlagsCachePath,
|
|
8
11
|
estimateActiveTasksTokens,
|
|
9
12
|
exchangeApiKey,
|
|
10
13
|
extractCommandNotFound,
|
|
@@ -19,7 +22,7 @@ import {
|
|
|
19
22
|
provisionStopHook,
|
|
20
23
|
requireHost,
|
|
21
24
|
safeWriteJsonAtomic
|
|
22
|
-
} from "../chunk-
|
|
25
|
+
} from "../chunk-V5RAWFRT.js";
|
|
23
26
|
import {
|
|
24
27
|
getProjectDir as getProjectDir2,
|
|
25
28
|
getReadyTasks,
|
|
@@ -61,8 +64,9 @@ import {
|
|
|
61
64
|
takeWatchdogGiveUpCount,
|
|
62
65
|
takeZombieDetection,
|
|
63
66
|
transcriptActivityAgeSeconds
|
|
64
|
-
} from "../chunk-
|
|
67
|
+
} from "../chunk-7RCGHACC.js";
|
|
65
68
|
import {
|
|
69
|
+
FLAGS_SCHEMA_VERSION,
|
|
66
70
|
KANBAN_CHECK_COMMAND,
|
|
67
71
|
MAX_AVATAR_ENV_URL_BYTES,
|
|
68
72
|
SUPPRESS_SENTINEL,
|
|
@@ -91,7 +95,7 @@ import {
|
|
|
91
95
|
resolveDmTarget,
|
|
92
96
|
worseConnectivityOutcome,
|
|
93
97
|
wrapScheduledTaskPrompt
|
|
94
|
-
} from "../chunk-
|
|
98
|
+
} from "../chunk-BC26YO7P.js";
|
|
95
99
|
import {
|
|
96
100
|
parsePsRows,
|
|
97
101
|
reapOrphanChannelMcps
|
|
@@ -99,10 +103,10 @@ import {
|
|
|
99
103
|
|
|
100
104
|
// src/lib/manager-worker.ts
|
|
101
105
|
import { createHash as createHash3 } from "crypto";
|
|
102
|
-
import { readFileSync as readFileSync9, writeFileSync as writeFileSync4, appendFileSync, mkdirSync as
|
|
106
|
+
import { readFileSync as readFileSync9, writeFileSync as writeFileSync4, appendFileSync, mkdirSync as mkdirSync3, chmodSync, existsSync as existsSync5, rmSync as rmSync2, readdirSync as readdirSync4, statSync as statSync3, unlinkSync, copyFileSync } from "fs";
|
|
103
107
|
import https from "https";
|
|
104
108
|
import { execFileSync as syncExecFile } from "child_process";
|
|
105
|
-
import { join as join9, dirname as
|
|
109
|
+
import { join as join9, dirname as dirname2 } from "path";
|
|
106
110
|
import { homedir as homedir5 } from "os";
|
|
107
111
|
import { fileURLToPath } from "url";
|
|
108
112
|
|
|
@@ -752,40 +756,6 @@ function extractSlackBehaviourSubset(config2) {
|
|
|
752
756
|
// src/lib/channel-quarantine.ts
|
|
753
757
|
import { readFileSync } from "fs";
|
|
754
758
|
import { join } from "path";
|
|
755
|
-
|
|
756
|
-
// src/lib/atomic-write.ts
|
|
757
|
-
import { closeSync, fsyncSync, openSync, writeSync, renameSync, mkdirSync } from "fs";
|
|
758
|
-
import { dirname } from "path";
|
|
759
|
-
function atomicWriteFileSync(path, data) {
|
|
760
|
-
const dirPath = dirname(path);
|
|
761
|
-
const tmpPath = `${path}.tmp.${process.pid}.${Math.random().toString(36).slice(2, 8)}`;
|
|
762
|
-
try {
|
|
763
|
-
mkdirSync(dirPath, { recursive: true });
|
|
764
|
-
} catch {
|
|
765
|
-
}
|
|
766
|
-
const fd = openSync(tmpPath, "w", 420);
|
|
767
|
-
try {
|
|
768
|
-
writeSync(fd, data);
|
|
769
|
-
try {
|
|
770
|
-
fsyncSync(fd);
|
|
771
|
-
} catch {
|
|
772
|
-
}
|
|
773
|
-
} finally {
|
|
774
|
-
closeSync(fd);
|
|
775
|
-
}
|
|
776
|
-
renameSync(tmpPath, path);
|
|
777
|
-
try {
|
|
778
|
-
const dirFd = openSync(dirPath, "r");
|
|
779
|
-
try {
|
|
780
|
-
fsyncSync(dirFd);
|
|
781
|
-
} finally {
|
|
782
|
-
closeSync(dirFd);
|
|
783
|
-
}
|
|
784
|
-
} catch {
|
|
785
|
-
}
|
|
786
|
-
}
|
|
787
|
-
|
|
788
|
-
// src/lib/channel-quarantine.ts
|
|
789
759
|
var ESSENTIAL_CHANNEL_KEYS = /* @__PURE__ */ new Set(["direct-chat", "augmented"]);
|
|
790
760
|
var OPTIONAL_CHANNEL_KEYS = /* @__PURE__ */ new Set([
|
|
791
761
|
"telegram",
|
|
@@ -1391,8 +1361,8 @@ function runCliProbe(binary, args, opts = {}) {
|
|
|
1391
1361
|
}
|
|
1392
1362
|
|
|
1393
1363
|
// src/lib/self-update-coalesce.ts
|
|
1394
|
-
import { readFileSync as readFileSync2, writeFileSync, mkdirSync
|
|
1395
|
-
import { dirname
|
|
1364
|
+
import { readFileSync as readFileSync2, writeFileSync, mkdirSync } from "fs";
|
|
1365
|
+
import { dirname } from "path";
|
|
1396
1366
|
var DEFAULT_SELF_UPDATE_COALESCE_MS = 30 * 60 * 1e3;
|
|
1397
1367
|
function resolveCoalesceWindowMs(env = process.env) {
|
|
1398
1368
|
const raw = env.AGT_SELF_UPDATE_COALESCE_MS;
|
|
@@ -1414,7 +1384,7 @@ function readLastSelfUpdateAppliedMs(markerPath, now = Date.now(), read = (p) =>
|
|
|
1414
1384
|
return v;
|
|
1415
1385
|
}
|
|
1416
1386
|
function stampLastSelfUpdateApplied(markerPath, now = Date.now(), write = (p, v) => {
|
|
1417
|
-
|
|
1387
|
+
mkdirSync(dirname(p), { recursive: true });
|
|
1418
1388
|
writeFileSync(p, v);
|
|
1419
1389
|
}) {
|
|
1420
1390
|
try {
|
|
@@ -3655,7 +3625,7 @@ function partitionActionableByPoison(actionable, states, config2) {
|
|
|
3655
3625
|
}
|
|
3656
3626
|
|
|
3657
3627
|
// src/lib/restart-flags.ts
|
|
3658
|
-
import { existsSync as existsSync4, mkdirSync as
|
|
3628
|
+
import { existsSync as existsSync4, mkdirSync as mkdirSync2, readdirSync as readdirSync3, readFileSync as readFileSync8, renameSync, rmSync, writeFileSync as writeFileSync3 } from "fs";
|
|
3659
3629
|
import { homedir as homedir4 } from "os";
|
|
3660
3630
|
import { join as join8 } from "path";
|
|
3661
3631
|
import { randomUUID } from "crypto";
|
|
@@ -4397,6 +4367,7 @@ var AUTO_RESUME_SELF_WINDOW_MS = 12e4;
|
|
|
4397
4367
|
var autoResumeLoggedSkips = /* @__PURE__ */ new Map();
|
|
4398
4368
|
var autoResumeStandDowns = /* @__PURE__ */ new Set();
|
|
4399
4369
|
var killPausedCodeNames = /* @__PURE__ */ new Set();
|
|
4370
|
+
var BACK_ONLINE_GREETING_GUIDANCE = " When you reconnect, if you tell anyone you are back, start that message with a \u{1F44B} wave emoji and do not use a \u{1F7E2} green-light emoji.";
|
|
4400
4371
|
function maybeAutoResume(agent) {
|
|
4401
4372
|
const codeName = agent.code_name;
|
|
4402
4373
|
if (autoResumeInFlight.has(codeName)) return;
|
|
@@ -4924,7 +4895,7 @@ var cachedMaintenanceWindow = null;
|
|
|
4924
4895
|
var lastVersionCheckAt = 0;
|
|
4925
4896
|
var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
|
|
4926
4897
|
var lastResponsivenessProbeAt = 0;
|
|
4927
|
-
var agtCliVersion = true ? "0.27.
|
|
4898
|
+
var agtCliVersion = true ? "0.27.161" : "dev";
|
|
4928
4899
|
function resolveBrewPath(execFileSync4) {
|
|
4929
4900
|
try {
|
|
4930
4901
|
const out = execFileSync4("which", ["brew"], { timeout: 5e3 }).toString().trim();
|
|
@@ -5019,7 +4990,7 @@ async function ensureToolkitCli(toolkitSlug) {
|
|
|
5019
4990
|
toolkitCliEnsured.add(toolkitSlug);
|
|
5020
4991
|
return;
|
|
5021
4992
|
}
|
|
5022
|
-
brewBinDir =
|
|
4993
|
+
brewBinDir = dirname2(brewPath);
|
|
5023
4994
|
const isRoot = typeof process.getuid === "function" && process.getuid() === 0;
|
|
5024
4995
|
log(`[toolkit-install] ${toolkitSlug}: installing via brew (${pkg})\u2026`);
|
|
5025
4996
|
if (isRoot) {
|
|
@@ -5117,7 +5088,7 @@ function ensureClaudeManagedSettings(path = claudeManagedSettingsPath()) {
|
|
|
5117
5088
|
}
|
|
5118
5089
|
if (settings.channelsEnabled === true) return "ok";
|
|
5119
5090
|
settings.channelsEnabled = true;
|
|
5120
|
-
|
|
5091
|
+
mkdirSync3(dirname2(path), { recursive: true });
|
|
5121
5092
|
writeFileSync4(path, `${JSON.stringify(settings, null, 2)}
|
|
5122
5093
|
`);
|
|
5123
5094
|
log(`[managed-settings] set channelsEnabled:true in ${path} (ENG-5786 \u2014 unblocks Claude Code channels)`);
|
|
@@ -5159,7 +5130,7 @@ async function ensureFrameworkBinary(frameworkId) {
|
|
|
5159
5130
|
log(`Claude Code install failed: ${err.message}`);
|
|
5160
5131
|
return;
|
|
5161
5132
|
}
|
|
5162
|
-
const brewBinDir =
|
|
5133
|
+
const brewBinDir = dirname2(brewPath);
|
|
5163
5134
|
if (!process.env.PATH?.split(":").includes(brewBinDir)) {
|
|
5164
5135
|
process.env.PATH = `${brewBinDir}:${process.env.PATH ?? ""}`;
|
|
5165
5136
|
}
|
|
@@ -5538,7 +5509,7 @@ function ensureEvalEmptyMcpConfig() {
|
|
|
5538
5509
|
if (evalEmptyMcpConfigPath && existsSync5(evalEmptyMcpConfigPath)) return evalEmptyMcpConfigPath;
|
|
5539
5510
|
const dir = join9(homedir5(), ".augmented");
|
|
5540
5511
|
try {
|
|
5541
|
-
|
|
5512
|
+
mkdirSync3(dir, { recursive: true });
|
|
5542
5513
|
} catch {
|
|
5543
5514
|
}
|
|
5544
5515
|
const p = join9(dir, ".eval-empty-mcp.json");
|
|
@@ -5622,7 +5593,7 @@ function loadGatewayPorts() {
|
|
|
5622
5593
|
}
|
|
5623
5594
|
}
|
|
5624
5595
|
function saveGatewayPorts(ports) {
|
|
5625
|
-
|
|
5596
|
+
mkdirSync3(AUGMENTED_DIR, { recursive: true });
|
|
5626
5597
|
writeFileSync4(GATEWAY_PORTS_FILE, JSON.stringify(ports, null, 2));
|
|
5627
5598
|
}
|
|
5628
5599
|
function allocatePort(codeName) {
|
|
@@ -5665,6 +5636,14 @@ function channelQuarantineStore() {
|
|
|
5665
5636
|
}
|
|
5666
5637
|
return _channelQuarantineStore;
|
|
5667
5638
|
}
|
|
5639
|
+
var _hostFlagStore = null;
|
|
5640
|
+
function hostFlagStore() {
|
|
5641
|
+
if (!_hostFlagStore) {
|
|
5642
|
+
const dir = config?.configDir ?? join9(process.env["HOME"] ?? "/tmp", ".augmented");
|
|
5643
|
+
_hostFlagStore = new HostFlagStore({ cachePath: defaultFlagsCachePath(dir), log });
|
|
5644
|
+
}
|
|
5645
|
+
return _hostFlagStore;
|
|
5646
|
+
}
|
|
5668
5647
|
function channelQuarantineMode() {
|
|
5669
5648
|
const v = process.env["AGT_CHANNEL_QUARANTINE_MODE"]?.toLowerCase();
|
|
5670
5649
|
if (v === "off") return "off";
|
|
@@ -5716,7 +5695,7 @@ function log(msg) {
|
|
|
5716
5695
|
if (!managerLogPath) {
|
|
5717
5696
|
try {
|
|
5718
5697
|
managerLogPath = join9(homedir5(), ".augmented", "manager.log");
|
|
5719
|
-
|
|
5698
|
+
mkdirSync3(dirname2(managerLogPath), { recursive: true });
|
|
5720
5699
|
if (existsSync5(managerLogPath)) {
|
|
5721
5700
|
chmodSync(managerLogPath, 384);
|
|
5722
5701
|
}
|
|
@@ -5849,7 +5828,7 @@ async function migrateToProfiles() {
|
|
|
5849
5828
|
const profileAuthDir = join9(profileDir, "agents", codeName, "agent");
|
|
5850
5829
|
const authFile = join9(sharedAuthDir, "auth-profiles.json");
|
|
5851
5830
|
if (existsSync5(authFile)) {
|
|
5852
|
-
|
|
5831
|
+
mkdirSync3(profileAuthDir, { recursive: true });
|
|
5853
5832
|
const authContent = readFileSync9(authFile, "utf-8");
|
|
5854
5833
|
writeFileSync4(join9(profileAuthDir, "auth-profiles.json"), authContent);
|
|
5855
5834
|
}
|
|
@@ -6122,7 +6101,7 @@ async function pollCycle() {
|
|
|
6122
6101
|
}
|
|
6123
6102
|
try {
|
|
6124
6103
|
const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
|
|
6125
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
6104
|
+
const { collectDiagnostics } = await import("../persistent-session-W6V2DO3R.js");
|
|
6126
6105
|
const diagCodeNames = [...agentState.persistentSessionAgents];
|
|
6127
6106
|
const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames) : void 0;
|
|
6128
6107
|
let tailscaleHostname;
|
|
@@ -6185,11 +6164,18 @@ async function pollCycle() {
|
|
|
6185
6164
|
// ALL channel inbound — the API opens a host-scoped alert on it.
|
|
6186
6165
|
// Omitted (undefined) on hosts that haven't run the assertion
|
|
6187
6166
|
// (non-claude-code frameworks).
|
|
6188
|
-
channels_setting_status: lastManagedSettingsStatus ?? void 0
|
|
6167
|
+
channels_setting_status: lastManagedSettingsStatus ?? void 0,
|
|
6168
|
+
// ENG-6251: capability advertisement — the flags schema version this
|
|
6169
|
+
// CLI compiled with, so the admin UI can show flip reach across a
|
|
6170
|
+
// mixed-CLI fleet (an older CLI sends an older fingerprint).
|
|
6171
|
+
flags_schema_version: FLAGS_SCHEMA_VERSION
|
|
6189
6172
|
});
|
|
6190
6173
|
if (hbResp?.maintenance_window) {
|
|
6191
6174
|
cachedMaintenanceWindow = hbResp.maintenance_window;
|
|
6192
6175
|
}
|
|
6176
|
+
if (hbResp?.feature_flags) {
|
|
6177
|
+
hostFlagStore().applyHeartbeat(hbResp.feature_flags, hbResp.flags_schema_version);
|
|
6178
|
+
}
|
|
6193
6179
|
try {
|
|
6194
6180
|
if (decideMaintenanceWindowGate({ window: cachedMaintenanceWindow, now: /* @__PURE__ */ new Date() }) === "proceed") {
|
|
6195
6181
|
const { maybeUpdateClaudeCode } = await import("../claude-code-updater-4E5T2X3Z.js");
|
|
@@ -6209,12 +6195,12 @@ async function pollCycle() {
|
|
|
6209
6195
|
const {
|
|
6210
6196
|
collectResponsivenessProbes,
|
|
6211
6197
|
getResponsivenessIntervalMs
|
|
6212
|
-
} = await import("../responsiveness-probe-
|
|
6198
|
+
} = await import("../responsiveness-probe-LY2H2XR5.js");
|
|
6213
6199
|
const probeIntervalMs = getResponsivenessIntervalMs();
|
|
6214
6200
|
if (now - lastResponsivenessProbeAt > probeIntervalMs) {
|
|
6215
6201
|
const probeCodeNames = [...agentState.persistentSessionAgents];
|
|
6216
6202
|
if (probeCodeNames.length > 0) {
|
|
6217
|
-
const { takeAcpxExecFailureCount, creditAcpxExecFailureCount } = await import("../persistent-session-
|
|
6203
|
+
const { takeAcpxExecFailureCount, creditAcpxExecFailureCount } = await import("../persistent-session-W6V2DO3R.js");
|
|
6218
6204
|
const drainedGiveUps = /* @__PURE__ */ new Map();
|
|
6219
6205
|
const drainedAcpxFailures = /* @__PURE__ */ new Map();
|
|
6220
6206
|
const probes = collectResponsivenessProbes(probeCodeNames).map((p) => {
|
|
@@ -6248,7 +6234,7 @@ async function pollCycle() {
|
|
|
6248
6234
|
collectResponsivenessProbes,
|
|
6249
6235
|
livePendingInboundOldestAgeSeconds,
|
|
6250
6236
|
parkPendingInbound
|
|
6251
|
-
} = await import("../responsiveness-probe-
|
|
6237
|
+
} = await import("../responsiveness-probe-LY2H2XR5.js");
|
|
6252
6238
|
const { getProjectDir: wedgeProjectDir } = await import("../claude-scheduler-FATCLHDM.js");
|
|
6253
6239
|
const wedgeNow = /* @__PURE__ */ new Date();
|
|
6254
6240
|
const liveAgents = agentState.persistentSessionAgents;
|
|
@@ -6960,7 +6946,7 @@ async function processAgent(agent, agentStates) {
|
|
|
6960
6946
|
try {
|
|
6961
6947
|
const artifacts = generateArtifacts(agent, refreshData, frameworkAdapter);
|
|
6962
6948
|
const changedFiles = [];
|
|
6963
|
-
|
|
6949
|
+
mkdirSync3(agentDir, { recursive: true });
|
|
6964
6950
|
for (const artifact of artifacts) {
|
|
6965
6951
|
const filePath = join9(agentDir, artifact.relativePath);
|
|
6966
6952
|
let existingHash;
|
|
@@ -7028,7 +7014,7 @@ async function processAgent(agent, agentStates) {
|
|
|
7028
7014
|
log(`${verb} '${agent.code_name}': ${fileNames}`);
|
|
7029
7015
|
for (const file of changedFiles) {
|
|
7030
7016
|
const filePath = join9(agentDir, file.relativePath);
|
|
7031
|
-
|
|
7017
|
+
mkdirSync3(dirname2(filePath), { recursive: true });
|
|
7032
7018
|
if (file.relativePath === ".mcp.json") {
|
|
7033
7019
|
safeWriteJsonAtomic(filePath, file.content, { mode: 384 });
|
|
7034
7020
|
} else {
|
|
@@ -7103,7 +7089,7 @@ async function processAgent(agent, agentStates) {
|
|
|
7103
7089
|
const delivered = await injectMessage(
|
|
7104
7090
|
agent.code_name,
|
|
7105
7091
|
"system",
|
|
7106
|
-
restartNotice,
|
|
7092
|
+
restartNotice + BACK_ONLINE_GREETING_GUIDANCE,
|
|
7107
7093
|
{ task_name: "model-update" },
|
|
7108
7094
|
log
|
|
7109
7095
|
).catch(() => false);
|
|
@@ -7311,7 +7297,7 @@ async function processAgent(agent, agentStates) {
|
|
|
7311
7297
|
const reason = reasonParts.join(" ");
|
|
7312
7298
|
log(`[hot-reload] Channel set changed for '${agent.code_name}' (${reason}) \u2014 restarting session`);
|
|
7313
7299
|
const restartNotice = restartDecision.added.length > 0 ? `New channels have been wired up (${restartDecision.added.join(", ")}). Note: channels require a session restart to attach their MCP servers as channel listeners. Your manager will restart your session shortly.` : `Channels were removed (${restartDecision.removed.join(", ")}). Your manager will restart your session shortly so the launch flags drop those channels.`;
|
|
7314
|
-
const delivered = await injectMessage(agent.code_name, "system", restartNotice, { task_name: "channel-update" }, log).catch(() => false);
|
|
7300
|
+
const delivered = await injectMessage(agent.code_name, "system", restartNotice + BACK_ONLINE_GREETING_GUIDANCE, { task_name: "channel-update" }, log).catch(() => false);
|
|
7315
7301
|
const delay = delivered ? 8e3 : 3e3;
|
|
7316
7302
|
if (!delivered) {
|
|
7317
7303
|
log(`[hot-reload] Inject notification unconfirmed for '${agent.code_name}' \u2014 proceeding with shorter delay`);
|
|
@@ -7339,7 +7325,7 @@ async function processAgent(agent, agentStates) {
|
|
|
7339
7325
|
const delivered = await injectMessage(
|
|
7340
7326
|
agent.code_name,
|
|
7341
7327
|
"system",
|
|
7342
|
-
notice,
|
|
7328
|
+
notice + BACK_ONLINE_GREETING_GUIDANCE,
|
|
7343
7329
|
{ task_name: "sender-policy-update" },
|
|
7344
7330
|
log
|
|
7345
7331
|
).catch(() => false);
|
|
@@ -7383,7 +7369,7 @@ async function processAgent(agent, agentStates) {
|
|
|
7383
7369
|
const behaviourDelivered = await injectMessage(
|
|
7384
7370
|
agent.code_name,
|
|
7385
7371
|
"system",
|
|
7386
|
-
behaviourNotice,
|
|
7372
|
+
behaviourNotice + BACK_ONLINE_GREETING_GUIDANCE,
|
|
7387
7373
|
{ task_name: "channel-update" },
|
|
7388
7374
|
log
|
|
7389
7375
|
).catch(() => false);
|
|
@@ -7431,7 +7417,7 @@ async function processAgent(agent, agentStates) {
|
|
|
7431
7417
|
const slackBehaviourDelivered = await injectMessage(
|
|
7432
7418
|
agent.code_name,
|
|
7433
7419
|
"system",
|
|
7434
|
-
slackBehaviourNotice,
|
|
7420
|
+
slackBehaviourNotice + BACK_ONLINE_GREETING_GUIDANCE,
|
|
7435
7421
|
{ task_name: "channel-update" },
|
|
7436
7422
|
log
|
|
7437
7423
|
).catch(() => false);
|
|
@@ -7458,8 +7444,8 @@ async function processAgent(agent, agentStates) {
|
|
|
7458
7444
|
try {
|
|
7459
7445
|
const agentProvisionDir = agentDir;
|
|
7460
7446
|
const projectDir = join9(homedir5(), ".augmented", agent.code_name, "project");
|
|
7461
|
-
|
|
7462
|
-
|
|
7447
|
+
mkdirSync3(agentProvisionDir, { recursive: true });
|
|
7448
|
+
mkdirSync3(projectDir, { recursive: true });
|
|
7463
7449
|
const provisionMcpPath = join9(agentProvisionDir, ".mcp.json");
|
|
7464
7450
|
const projectMcpPath = join9(projectDir, ".mcp.json");
|
|
7465
7451
|
let mcpConfig = { mcpServers: {} };
|
|
@@ -7719,7 +7705,7 @@ async function processAgent(agent, agentStates) {
|
|
|
7719
7705
|
const delivered = await injectMessage(
|
|
7720
7706
|
agent.code_name,
|
|
7721
7707
|
"system",
|
|
7722
|
-
restartNotice,
|
|
7708
|
+
restartNotice + BACK_ONLINE_GREETING_GUIDANCE,
|
|
7723
7709
|
{ task_name: "mcp-update" },
|
|
7724
7710
|
log
|
|
7725
7711
|
).catch(() => false);
|
|
@@ -10838,7 +10824,7 @@ async function processClaudePairSessions(agents) {
|
|
|
10838
10824
|
killPairSession,
|
|
10839
10825
|
pairTmuxSession,
|
|
10840
10826
|
finalizeClaudePairOnboarding
|
|
10841
|
-
} = await import("../claude-pair-runtime-
|
|
10827
|
+
} = await import("../claude-pair-runtime-G4MYOINJ.js");
|
|
10842
10828
|
for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
|
|
10843
10829
|
log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
|
|
10844
10830
|
const killed = await killPairSession(pairTmuxSession(pairId));
|
|
@@ -11220,7 +11206,7 @@ async function downloadMemories(agent, memoryDir, log2, { force }) {
|
|
|
11220
11206
|
lastDownloadHash.set(agent.agent_id, responseHash);
|
|
11221
11207
|
lastLocalFileHash.set(agent.agent_id, localListHash);
|
|
11222
11208
|
if (dbMemories.memories?.length) {
|
|
11223
|
-
|
|
11209
|
+
mkdirSync3(memoryDir, { recursive: true });
|
|
11224
11210
|
let written = 0;
|
|
11225
11211
|
let overwritten = 0;
|
|
11226
11212
|
for (let i = 0; i < dbMemories.memories.length; i++) {
|
|
@@ -11389,6 +11375,7 @@ function startPolling() {
|
|
|
11389
11375
|
running = true;
|
|
11390
11376
|
void startCaffeinate();
|
|
11391
11377
|
loadChannelHashCache2();
|
|
11378
|
+
hostFlagStore().init();
|
|
11392
11379
|
log(`Starting poll loop (interval=${config.intervalMs}ms, configDir=${config.configDir})`);
|
|
11393
11380
|
void killAllAgtTmuxSessions().catch(() => {
|
|
11394
11381
|
}).then(() => migrateToProfiles()).then(() => {
|
|
@@ -11646,8 +11633,8 @@ function restartRunningChannelMcps(basenames) {
|
|
|
11646
11633
|
}
|
|
11647
11634
|
function deployMcpAssets() {
|
|
11648
11635
|
const targetDir = join9(homedir5(), ".augmented", "_mcp");
|
|
11649
|
-
|
|
11650
|
-
const moduleDir =
|
|
11636
|
+
mkdirSync3(targetDir, { recursive: true });
|
|
11637
|
+
const moduleDir = dirname2(fileURLToPath(import.meta.url));
|
|
11651
11638
|
let mcpSourceDir = "";
|
|
11652
11639
|
let dir = moduleDir;
|
|
11653
11640
|
for (let i = 0; i < 6; i++) {
|
|
@@ -11656,7 +11643,7 @@ function deployMcpAssets() {
|
|
|
11656
11643
|
mcpSourceDir = candidate;
|
|
11657
11644
|
break;
|
|
11658
11645
|
}
|
|
11659
|
-
const parent =
|
|
11646
|
+
const parent = dirname2(dir);
|
|
11660
11647
|
if (parent === dir) break;
|
|
11661
11648
|
dir = parent;
|
|
11662
11649
|
}
|
|
@@ -11765,6 +11752,7 @@ process.on("disconnect", () => {
|
|
|
11765
11752
|
});
|
|
11766
11753
|
});
|
|
11767
11754
|
export {
|
|
11755
|
+
BACK_ONLINE_GREETING_GUIDANCE,
|
|
11768
11756
|
ChildProcessError,
|
|
11769
11757
|
SCHEDULED_CARD_DELIVERY_CONTRACT,
|
|
11770
11758
|
__resetScheduledDeliveryDedupeForTest,
|