@csdwd/ai-teams-agent 0.3.4 → 0.3.5
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/index.js +47 -16
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -247,6 +247,28 @@ var CLAUDE_HOOKS_ENABLED = process.env.CLAUDE_HOOKS_ENABLED !== "false";
|
|
|
247
247
|
var WORKSPACE_CLAUDE_MD = path3.join(DEFAULT_WORKSPACE, "CLAUDE.md");
|
|
248
248
|
var CLAUDE_MD_SECTION_START = "<!-- AI_TEAMS_AGENT_RULES_START -->";
|
|
249
249
|
var CLAUDE_MD_SECTION_END = "<!-- AI_TEAMS_AGENT_RULES_END -->";
|
|
250
|
+
function reinitializeConfig() {
|
|
251
|
+
fileConfig = loadConfigFile();
|
|
252
|
+
SERVER_PORT = process.env.AI_TEAMS_SERVER_PORT || "3789";
|
|
253
|
+
SERVER_URL = process.env.SERVER_URL || fileConfig?.serverUrl || `ws://localhost:${SERVER_PORT}`;
|
|
254
|
+
AUTH_TOKEN = process.env.AI_TEAMS_AUTH_TOKEN || fileConfig?.authToken || "";
|
|
255
|
+
EMPLOYEE_ID = process.env.EMPLOYEE_ID || fileConfig?.employeeId || "emp_local";
|
|
256
|
+
EMPLOYEE_NAME = process.env.EMPLOYEE_NAME || fileConfig?.employeeName || "Local Agent";
|
|
257
|
+
EMPLOYEE_LABELS = process.env.EMPLOYEE_LABELS?.split(",").map((item) => item.trim()).filter(Boolean) ?? [];
|
|
258
|
+
RECONNECT_MS = Number(process.env.RECONNECT_MS) || 5e3;
|
|
259
|
+
RUNNER_MODE = process.env.RUNNER_MODE || fileConfig?.runnerMode || "claude";
|
|
260
|
+
DEFAULT_WORKSPACE = process.env.DEFAULT_WORKSPACE || fileConfig?.workspace || process.cwd();
|
|
261
|
+
MAX_BUFFERED_MESSAGES = Number(process.env.AGENT_BUFFER_LIMIT) || 400;
|
|
262
|
+
AGENT_RECORDS_DIR = process.env.AGENT_RECORDS_DIR || path3.join(DEFAULT_WORKSPACE, ".ai-teams", "agents", EMPLOYEE_ID);
|
|
263
|
+
STATE_FILE = process.env.AGENT_STATE_FILE || path3.join(AGENT_RECORDS_DIR, "session-state.json");
|
|
264
|
+
LEGACY_STATE_FILE = path3.join(process.cwd(), `.agent-state.${EMPLOYEE_ID}.json`);
|
|
265
|
+
DAILY_RECORDS_DIR = path3.join(AGENT_RECORDS_DIR, "daily");
|
|
266
|
+
HOOKS_DIR = path3.join(AGENT_RECORDS_DIR, "hooks");
|
|
267
|
+
CLAUDE_HOOK_SCRIPT = path3.join(HOOKS_DIR, "claude-session-recorder.cjs");
|
|
268
|
+
CLAUDE_HOOK_SETTINGS = path3.join(HOOKS_DIR, "claude-hooks.settings.json");
|
|
269
|
+
CLAUDE_HOOKS_ENABLED = process.env.CLAUDE_HOOKS_ENABLED !== "false";
|
|
270
|
+
WORKSPACE_CLAUDE_MD = path3.join(DEFAULT_WORKSPACE, "CLAUDE.md");
|
|
271
|
+
}
|
|
250
272
|
|
|
251
273
|
// src/state.ts
|
|
252
274
|
import fs3 from "node:fs";
|
|
@@ -1201,15 +1223,19 @@ function gracefulShutdown(signal) {
|
|
|
1201
1223
|
if (shuttingDown) return;
|
|
1202
1224
|
shuttingDown = true;
|
|
1203
1225
|
console.log(`[agent:${EMPLOYEE_ID}] received ${signal}, shutting down...`);
|
|
1226
|
+
const children = [];
|
|
1204
1227
|
for (const task of [mainTask, queueTask]) {
|
|
1205
1228
|
if (!task) continue;
|
|
1206
1229
|
task.cancelRequested = true;
|
|
1230
|
+
if (task.child) children.push(task.child);
|
|
1207
1231
|
task.child?.kill("SIGTERM");
|
|
1208
1232
|
send2({ type: "task.cancelled", taskId: task.taskId });
|
|
1209
1233
|
}
|
|
1234
|
+
mainTask = null;
|
|
1235
|
+
queueTask = null;
|
|
1210
1236
|
setTimeout(() => {
|
|
1211
|
-
for (const
|
|
1212
|
-
|
|
1237
|
+
for (const child of children) {
|
|
1238
|
+
child.kill("SIGKILL");
|
|
1213
1239
|
}
|
|
1214
1240
|
}, 2e3);
|
|
1215
1241
|
if (connState.reconnectTimer) clearTimeout(connState.reconnectTimer);
|
|
@@ -1217,7 +1243,7 @@ function gracefulShutdown(signal) {
|
|
|
1217
1243
|
if (connState.socket && connState.socket.readyState === WebSocket2.OPEN) {
|
|
1218
1244
|
connState.socket.close(1e3, "agent shutting down");
|
|
1219
1245
|
}
|
|
1220
|
-
setTimeout(() => process.exit(0),
|
|
1246
|
+
setTimeout(() => process.exit(0), 3e3);
|
|
1221
1247
|
}
|
|
1222
1248
|
process.on("SIGTERM", () => gracefulShutdown("SIGTERM"));
|
|
1223
1249
|
process.on("SIGINT", () => gracefulShutdown("SIGINT"));
|
|
@@ -1254,7 +1280,7 @@ if (isCli) {
|
|
|
1254
1280
|
getArgValue2 = getArgValue, resolveWorkspace3 = resolveWorkspace2, resolveAgentDir2 = resolveAgentDir, resolvePidFile2 = resolvePidFile, resolveLogDir2 = resolveLogDir, applyCliArgsToEnv2 = applyCliArgsToEnv;
|
|
1255
1281
|
const args = process.argv.slice(2);
|
|
1256
1282
|
if (args.includes("--version") || args.includes("-v")) {
|
|
1257
|
-
console.log("0.3.
|
|
1283
|
+
console.log("0.3.5");
|
|
1258
1284
|
process.exit(0);
|
|
1259
1285
|
}
|
|
1260
1286
|
if (args.includes("--help") || args.includes("-h")) {
|
|
@@ -1291,20 +1317,22 @@ if (isCli) {
|
|
|
1291
1317
|
} else {
|
|
1292
1318
|
const subcommand = args[0];
|
|
1293
1319
|
if (subcommand === "start" || subcommand === "restart") {
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1320
|
+
applyCliArgsToEnv();
|
|
1321
|
+
if (!process.env.__AI_TEAMS_DAEMON_WATCHDOG && !process.env.__AI_TEAMS_DAEMON_WORKER) {
|
|
1322
|
+
if (subcommand === "restart") {
|
|
1323
|
+
const pidFile = resolvePidFile();
|
|
1324
|
+
const status = getDaemonStatus(pidFile);
|
|
1325
|
+
if (status.running) {
|
|
1326
|
+
void stopDaemon(pidFile);
|
|
1327
|
+
}
|
|
1328
|
+
} else {
|
|
1329
|
+
const status = getDaemonStatus(resolvePidFile());
|
|
1330
|
+
if (status.running) {
|
|
1331
|
+
console.log(`Already running (PID ${status.pid}).`);
|
|
1332
|
+
process.exit(0);
|
|
1333
|
+
}
|
|
1305
1334
|
}
|
|
1306
1335
|
}
|
|
1307
|
-
applyCliArgsToEnv();
|
|
1308
1336
|
const fileConfig2 = loadConfigFile();
|
|
1309
1337
|
const hasEnvConfig = process.env.AI_TEAMS_AUTH_TOKEN || process.env.SERVER_URL;
|
|
1310
1338
|
if (!fileConfig2 && !hasEnvConfig) {
|
|
@@ -1319,6 +1347,8 @@ if (isCli) {
|
|
|
1319
1347
|
run: async () => {
|
|
1320
1348
|
console.log(" \u2713 \u6B63\u5728\u8FDE\u63A5\u670D\u52A1\u5668...");
|
|
1321
1349
|
connect2();
|
|
1350
|
+
return new Promise(() => {
|
|
1351
|
+
});
|
|
1322
1352
|
}
|
|
1323
1353
|
});
|
|
1324
1354
|
})();
|
|
@@ -1355,6 +1385,7 @@ if (isCli) {
|
|
|
1355
1385
|
await runSetup(null);
|
|
1356
1386
|
}
|
|
1357
1387
|
applyCliArgsToEnv();
|
|
1388
|
+
reinitializeConfig();
|
|
1358
1389
|
console.log(" \u2713 \u6B63\u5728\u8FDE\u63A5\u670D\u52A1\u5668...");
|
|
1359
1390
|
connect2();
|
|
1360
1391
|
})();
|