agents-office-tower 0.1.0 → 0.1.2

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.
@@ -0,0 +1 @@
1
+ export declare function runClaims(args: string[], showUsage: () => void): Promise<void>;
package/dist/claims.js ADDED
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runClaims = runClaims;
4
+ const node_process_1 = require("node:process");
5
+ const node_path_1 = require("node:path");
6
+ const core_1 = require("@agents-tower/core");
7
+ function flagValue(args, name) {
8
+ const index = args.indexOf(name);
9
+ if (index < 0) {
10
+ return null;
11
+ }
12
+ const value = args[index + 1];
13
+ return value && !value.startsWith("--") ? value : null;
14
+ }
15
+ function positional(args, index) {
16
+ const values = args.filter((arg, position) => !arg.startsWith("--") && (position === 0 || !args[position - 1].startsWith("--") || flagValue(args, args[position - 1]) !== arg));
17
+ return values[index] ?? null;
18
+ }
19
+ function resolveClaimProjectRoot(args) {
20
+ return (0, node_path_1.resolve)(flagValue(args, "--project") ?? (0, node_process_1.cwd)());
21
+ }
22
+ function splitScope(value) {
23
+ return value ? value.split(",").map((entry) => entry.trim()).filter(Boolean) : [];
24
+ }
25
+ function formatClaimLine(claim) {
26
+ const scope = claim.scope.length > 0 ? ` scope=${claim.scope.join(",")}` : "";
27
+ const who = claim.agentLabel ? ` by ${claim.agentLabel}` : "";
28
+ const blocked = claim.blockedOn ? ` blockedOn="${claim.blockedOn}"` : "";
29
+ return ` [${claim.lifecycle}] ${claim.id.slice(0, 8)} "${claim.objective}"${who}${scope}${blocked} heartbeat=${claim.heartbeatAt} expires=${claim.expiresAt}`;
30
+ }
31
+ async function runClaims(args, showUsage) {
32
+ const subcommand = args[0];
33
+ const rest = args.slice(1);
34
+ const json = rest.includes("--json");
35
+ const projectRoot = resolveClaimProjectRoot(rest);
36
+ if (subcommand === "start") {
37
+ const objective = flagValue(rest, "--objective");
38
+ if (!objective) {
39
+ console.error("claims start requires --objective \"...\"");
40
+ (0, node_process_1.exit)(1);
41
+ }
42
+ const ttlMinutes = Number.parseInt(flagValue(rest, "--ttl") ?? "", 10);
43
+ const claim = (0, core_1.startCoordinationClaim)({
44
+ projectRoot,
45
+ objective,
46
+ scope: splitScope(flagValue(rest, "--scope") ?? flagValue(rest, "--paths")),
47
+ branch: flagValue(rest, "--branch"),
48
+ agentLabel: flagValue(rest, "--agent"),
49
+ blockedOn: flagValue(rest, "--blocked-on"),
50
+ ttlMs: Number.isFinite(ttlMinutes) ? ttlMinutes * 60 * 1000 : undefined
51
+ });
52
+ if (json) {
53
+ console.log(JSON.stringify(claim, null, 2));
54
+ }
55
+ else {
56
+ console.log(`Claim ${claim.id} started for ${projectRoot}. Heartbeat before ${claim.expiresAt} or it reads as stale.`);
57
+ }
58
+ return;
59
+ }
60
+ if (subcommand === "list") {
61
+ const claims = (0, core_1.listCoordinationClaims)(projectRoot);
62
+ if (json) {
63
+ console.log(JSON.stringify({ projectRoot, claims }, null, 2));
64
+ return;
65
+ }
66
+ if (claims.length === 0) {
67
+ console.log(`No declared claims for ${projectRoot}.`);
68
+ return;
69
+ }
70
+ console.log(`Declared claims for ${projectRoot}:`);
71
+ for (const claim of claims) {
72
+ console.log(formatClaimLine(claim));
73
+ }
74
+ return;
75
+ }
76
+ if (subcommand === "heartbeat") {
77
+ const id = positional(rest, 0);
78
+ if (!id) {
79
+ console.error("claims heartbeat requires a claim id");
80
+ (0, node_process_1.exit)(1);
81
+ }
82
+ const matched = matchClaimId(projectRoot, id);
83
+ const updated = matched ? (0, core_1.heartbeatCoordinationClaim)(projectRoot, matched, {
84
+ blockedOn: rest.includes("--blocked-on") ? flagValue(rest, "--blocked-on") : undefined
85
+ }) : null;
86
+ if (!updated) {
87
+ console.error(`No active claim matching ${id} for ${projectRoot}.`);
88
+ (0, node_process_1.exit)(1);
89
+ }
90
+ console.log(json ? JSON.stringify(updated, null, 2) : `Claim ${updated.id} extended to ${updated.expiresAt}.`);
91
+ return;
92
+ }
93
+ if (subcommand === "release") {
94
+ const id = positional(rest, 0);
95
+ if (!id) {
96
+ console.error("claims release requires a claim id");
97
+ (0, node_process_1.exit)(1);
98
+ }
99
+ const matched = matchClaimId(projectRoot, id);
100
+ const released = matched ? (0, core_1.releaseCoordinationClaim)(projectRoot, matched, { handoff: rest.includes("--handoff") }) : null;
101
+ if (!released) {
102
+ console.error(`No claim matching ${id} for ${projectRoot}.`);
103
+ (0, node_process_1.exit)(1);
104
+ }
105
+ console.log(json ? JSON.stringify(released, null, 2) : `Claim ${released.id} marked ${released.status}.`);
106
+ return;
107
+ }
108
+ if (subcommand === "check") {
109
+ const scope = splitScope(flagValue(rest, "--scope") ?? flagValue(rest, "--paths"));
110
+ if (scope.length === 0) {
111
+ console.error("claims check requires --paths a,b (or --scope)");
112
+ (0, node_process_1.exit)(1);
113
+ }
114
+ const advice = (0, core_1.adviseOnClaimOverlap)(projectRoot, scope);
115
+ if (json) {
116
+ console.log(JSON.stringify({ projectRoot, scope, ...advice }, null, 2));
117
+ return;
118
+ }
119
+ console.log(advice.verdict === "proceed" ? "Proceed: " + advice.reasons.join(" ") : "Caution:");
120
+ if (advice.verdict === "caution") {
121
+ for (const reason of advice.reasons) {
122
+ console.log(` - ${reason}`);
123
+ }
124
+ for (const claim of advice.overlapping) {
125
+ console.log(formatClaimLine(claim));
126
+ }
127
+ }
128
+ return;
129
+ }
130
+ showUsage();
131
+ (0, node_process_1.exit)(1);
132
+ }
133
+ function matchClaimId(projectRoot, prefix) {
134
+ const matches = (0, core_1.listCoordinationClaims)(projectRoot).filter((claim) => claim.id.startsWith(prefix));
135
+ return matches.length === 1 ? matches[0].id : matches.length > 1 ? null : null;
136
+ }
137
+ //# sourceMappingURL=claims.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claims.js","sourceRoot":"","sources":["../src/claims.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -5,6 +5,9 @@ const promises_1 = require("node:timers/promises");
5
5
  const node_process_1 = require("node:process");
6
6
  const node_path_1 = require("node:path");
7
7
  const demo_preview_1 = require("./demo-preview");
8
+ const claims_1 = require("./claims");
9
+ const lifecycle_1 = require("./lifecycle");
10
+ const status_1 = require("./status");
8
11
  const web_query_1 = require("./web-query");
9
12
  const core_1 = require("@agents-tower/core");
10
13
  const web_1 = require("@agents-tower/web");
@@ -16,6 +19,17 @@ Usage:
16
19
  aot watch [projectRoot] [--history]
17
20
  aot web [--port 4181] [--host 127.0.0.1] [projectRoot...]
18
21
  aot web query <repo> <gist|recent|last> [scope=local|team] [limit=10] [type=agents|events|all] [--json]
22
+ aot status [--json] [--server http://127.0.0.1:4181]
23
+ aot doctor [--json] [--server http://127.0.0.1:4181]
24
+ aot digest [--since 4h] [--json] [--server http://127.0.0.1:4181]
25
+ aot claims start --objective "..." [--paths a,b] [--branch x] [--agent name] [--ttl 20] [--project root]
26
+ aot claims <list|check> [--paths a,b] [--json] [--project root]
27
+ aot claims <heartbeat|release> <id> [--handoff] [--project root]
28
+ aot start|stop|restart [--port 4181] [--force]
29
+ aot logs [--lines 50]
30
+ aot audit [--lines 20] [--json]
31
+ aot upgrade [--dry-run]
32
+ aot service install [--port 4181]
19
33
  aot demo preview [--port 4181] [--host 127.0.0.1] [--duration 75] [--keep]
20
34
  aot aseprite inspect [file]
21
35
  aot presence boss [projectRoot]
@@ -54,7 +68,7 @@ function printSnapshot(snapshot) {
54
68
  list.push(agent);
55
69
  grouped.set(key, list);
56
70
  }
57
- console.log("Codex Agents Office");
71
+ console.log("Agents Office Tower");
58
72
  console.log(`Project: ${snapshot.projectRoot}`);
59
73
  console.log(`Generated: ${snapshot.generatedAt}`);
60
74
  console.log("");
@@ -204,6 +218,54 @@ async function main() {
204
218
  usage();
205
219
  return;
206
220
  }
221
+ if (command === "--version" || command === "-v") {
222
+ console.log((0, status_1.cliVersion)());
223
+ return;
224
+ }
225
+ if (command === "status") {
226
+ await (0, status_1.runStatus)(args);
227
+ return;
228
+ }
229
+ if (command === "doctor") {
230
+ await (0, status_1.runDoctor)(args);
231
+ return;
232
+ }
233
+ if (command === "digest") {
234
+ await (0, status_1.runDigest)(args);
235
+ return;
236
+ }
237
+ if (command === "claims") {
238
+ await (0, claims_1.runClaims)(args, usage);
239
+ return;
240
+ }
241
+ if (command === "start") {
242
+ await (0, lifecycle_1.runStart)(args);
243
+ return;
244
+ }
245
+ if (command === "stop") {
246
+ await (0, lifecycle_1.runStop)(args);
247
+ return;
248
+ }
249
+ if (command === "restart") {
250
+ await (0, lifecycle_1.runRestart)(args);
251
+ return;
252
+ }
253
+ if (command === "logs") {
254
+ (0, lifecycle_1.runLogs)(args);
255
+ return;
256
+ }
257
+ if (command === "upgrade") {
258
+ await (0, lifecycle_1.runUpgrade)(args);
259
+ return;
260
+ }
261
+ if (command === "audit") {
262
+ (0, lifecycle_1.runAudit)(args);
263
+ return;
264
+ }
265
+ if (command === "service" && args[0] === "install") {
266
+ (0, lifecycle_1.runServiceInstall)(args.slice(1));
267
+ return;
268
+ }
207
269
  if (command === "snapshot") {
208
270
  await runSnapshot(resolveProjectRootArg(args), includeHistory(args));
209
271
  return;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,mDAA2D;AAC3D,+CAAyC;AACzC,yCAAoC;AAEpC,iDAAgD;AAChD,2CAA0C;AAC1C,6CAc4B;AAC5B,2CAAmD;AAEnD,SAAS,KAAK;IACZ,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;CAkBb,CAAC,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,MAAqB;IACtC,OAAO,MAAM,IAAI,OAAO,CAAC;AAC3B,CAAC;AAED,SAAS,YAAY,CAAC,MAAwB;IAC5C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO,MAAM;SACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC5E,OAAO,QAAQ,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,KAAK,CAAC,MAAM,GAAG,IAAI,GAAG,QAAQ,GAAG,QAAQ,EAAE,CAAC;IAC7H,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,QAA2B;IAChD,MAAM,OAAO,GAAG,IAAI,GAAG,EAA4B,CAAC;IACpD,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,YAAY,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,cAAc,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,KAAK,MAAM,IAAI,IAAI,IAAA,mBAAY,EAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACnG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC;IAEvC,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,WAAmB,EAAE,OAAO,GAAG,KAAK;IAC7D,MAAM,QAAQ,GAAG,MAAM,IAAA,6BAAsB,EAAC;QAC5C,WAAW;QACX,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAA,sCAA+B,EAAC,QAAQ,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,WAAmB,EAAE,OAAO,GAAG,KAAK;IAC1D,OAAO,IAAI,EAAE,CAAC;QACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,IAAA,qBAAK,EAAC,IAAI,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAc;IAC3C,OAAO,IAAA,mBAAO,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,IAAA,kBAAG,GAAE,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,cAAc,CAAC,IAAc;IACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACpC,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,IAAc;IACpC,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,MAAM,GAAG,IAAA,mBAAO,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAA,kBAAG,GAAE,CAAC,CAAC;IAEzC,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAA,mCAA4B,EAAC,MAAM,CAAC,CAAC;QAC/F,MAAM,MAAM,GAAG,MAAM,IAAA,uBAAgB,EAAC,QAAQ,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnD,KAAK,MAAM,IAAI,IAAI,IAAA,mBAAY,EAAC,MAAM,CAAC,EAAE,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACnH,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAiB,EAAC,MAAM,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtB,OAAO;IACT,CAAC;IAED,KAAK,EAAE,CAAC;IACR,IAAA,mBAAI,EAAC,CAAC,CAAC,CAAC;AACV,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,IAAc;IACvC,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,KAAK,EAAE,CAAC;QACR,IAAA,mBAAI,EAAC,CAAC,CAAC,CAAC;IACV,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,mBAAO,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAA,kBAAG,GAAE,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,MAAM,IAAA,yBAAkB,EAAC,MAAM,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAA,iCAA0B,EAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,IAAc;IACvC,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,MAAM,GAAG,IAAA,mBAAO,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAA,kBAAG,GAAE,CAAC,CAAC;IAEzC,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAA,sBAAe,EAAC,MAAM,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,6BAA6B,MAAM,EAAE,CAAC,CAAC;QACnD,OAAO;IACT,CAAC;IAED,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;QAC3B,MAAM,IAAA,wBAAiB,EAAC,MAAM,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,6BAA6B,MAAM,EAAE,CAAC,CAAC;QACnD,OAAO;IACT,CAAC;IAED,KAAK,EAAE,CAAC;IACR,IAAA,mBAAI,EAAC,CAAC,CAAC,CAAC;AACV,CAAC;AAED,SAAS,UAAU,CAAC,IAAc,EAAE,IAAY;IAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC9B,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACzD,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,IAAc;IACrC,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,UAAU,KAAK,MAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,IAAA,sCAA+B,EAAC;YACnD,UAAU,EAAE,UAAU,CAAC,IAAI,EAAE,eAAe,CAAC;YAC7C,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC;SACxC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,oGAAoG,CAAC,CAAC;QAClH,OAAO;IACT,CAAC;IAED,KAAK,EAAE,CAAC;IACR,IAAA,mBAAI,EAAC,CAAC,CAAC,CAAC;AACV,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,IAAc;IACnC,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,IAAA,6BAAc,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,OAAO;IACT,CAAC;IAED,KAAK,EAAE,CAAC;IACR,IAAA,mBAAI,EAAC,CAAC,CAAC,CAAC;AACV,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,IAAc;IAClC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QACxB,MAAM,IAAA,uBAAW,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACxC,OAAO;IACT,CAAC;IAED,MAAM,IAAA,oBAAc,EAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEjD,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACzD,KAAK,EAAE,CAAC;QACR,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3B,MAAM,WAAW,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QACrE,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,MAAM,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QAClE,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACtB,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3B,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;QACxB,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3B,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;QACxB,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;QACtB,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QACpB,OAAO;IACT,CAAC;IAED,KAAK,EAAE,CAAC;IACR,IAAA,mBAAI,EAAC,CAAC,CAAC,CAAC;AACV,CAAC;AAED,KAAK,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export type StopSafety = "safe" | "not-running" | "ownership-mismatch";
2
+ export declare function evaluateStopSafety(pidfilePid: number | null, livePid: number | null): StopSafety;
3
+ export declare function runStart(args: string[]): Promise<void>;
4
+ export declare function runStop(args: string[]): Promise<void>;
5
+ export declare function runRestart(args: string[]): Promise<void>;
6
+ export declare function runLogs(args: string[]): void;
7
+ export declare function runAudit(args: string[]): void;
8
+ export declare function buildServiceFile(platform: NodeJS.Platform, cliEntry: string, port: string): {
9
+ path: string;
10
+ contents: string;
11
+ instructions: string;
12
+ } | null;
13
+ export declare function runServiceInstall(args: string[]): void;
14
+ export declare function runUpgrade(args: string[]): Promise<void>;
@@ -0,0 +1,273 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.evaluateStopSafety = evaluateStopSafety;
37
+ exports.runStart = runStart;
38
+ exports.runStop = runStop;
39
+ exports.runRestart = runRestart;
40
+ exports.runLogs = runLogs;
41
+ exports.runAudit = runAudit;
42
+ exports.buildServiceFile = buildServiceFile;
43
+ exports.runServiceInstall = runServiceInstall;
44
+ exports.runUpgrade = runUpgrade;
45
+ const node_child_process_1 = require("node:child_process");
46
+ const node_fs_1 = require("node:fs");
47
+ const node_os_1 = require("node:os");
48
+ const node_path_1 = require("node:path");
49
+ const node_process_1 = require("node:process");
50
+ const core_1 = require("@agents-tower/core");
51
+ const status_1 = require("./status");
52
+ const status_2 = require("./status");
53
+ const START_POLL_ATTEMPTS = 30;
54
+ const START_POLL_INTERVAL_MS = 500;
55
+ function pidfilePath() {
56
+ return (0, node_path_1.join)((0, core_1.getAppDataDirectory)(), "web-server.pid.json");
57
+ }
58
+ function logFilePath() {
59
+ return (0, node_path_1.join)((0, core_1.getAppDataDirectory)(), "logs", "web-server.log");
60
+ }
61
+ function readPidfile() {
62
+ try {
63
+ const parsed = JSON.parse((0, node_fs_1.readFileSync)(pidfilePath(), "utf8"));
64
+ return Number.isFinite(parsed?.pid) ? parsed : null;
65
+ }
66
+ catch {
67
+ return null;
68
+ }
69
+ }
70
+ async function liveServerPid(serverBase) {
71
+ try {
72
+ const response = await fetch(`${serverBase}/api/health/live`, { signal: AbortSignal.timeout(2000) });
73
+ if (!response.ok) {
74
+ return null;
75
+ }
76
+ const payload = await response.json();
77
+ return Number.isFinite(payload?.pid) ? payload.pid : null;
78
+ }
79
+ catch {
80
+ return null;
81
+ }
82
+ }
83
+ function evaluateStopSafety(pidfilePid, livePid) {
84
+ if (livePid === null) {
85
+ return "not-running";
86
+ }
87
+ if (pidfilePid === null || pidfilePid !== livePid) {
88
+ return "ownership-mismatch";
89
+ }
90
+ return "safe";
91
+ }
92
+ function delay(ms) {
93
+ return new Promise((resolvePromise) => setTimeout(resolvePromise, ms));
94
+ }
95
+ async function runStart(args) {
96
+ const target = (0, status_2.resolveServerTarget)(args);
97
+ const port = new URL(target.serverBase).port || "4181";
98
+ const existingPid = await liveServerPid(target.serverBase);
99
+ if (existingPid !== null) {
100
+ console.log(`Agents Office Tower is already running at ${target.serverBase} (pid ${existingPid}).`);
101
+ return;
102
+ }
103
+ (0, node_fs_1.mkdirSync)((0, node_path_1.join)((0, core_1.getAppDataDirectory)(), "logs"), { recursive: true });
104
+ const logFd = (0, node_fs_1.openSync)(logFilePath(), "a");
105
+ const entry = (0, node_path_1.resolve)(__dirname, "index.js");
106
+ const child = (0, node_child_process_1.spawn)(process.execPath, [entry, "web", "--port", port], {
107
+ detached: true,
108
+ stdio: ["ignore", logFd, logFd]
109
+ });
110
+ child.unref();
111
+ (0, node_fs_1.writeFileSync)(pidfilePath(), `${JSON.stringify({ pid: child.pid, port: Number(port), startedAt: new Date().toISOString() }, null, 2)}\n`);
112
+ for (let attempt = 0; attempt < START_POLL_ATTEMPTS; attempt += 1) {
113
+ await delay(START_POLL_INTERVAL_MS);
114
+ const livePid = await liveServerPid(target.serverBase);
115
+ if (livePid !== null) {
116
+ console.log(`Started Agents Office Tower at ${target.serverBase} (pid ${livePid}). Logs: ${logFilePath()}`);
117
+ return;
118
+ }
119
+ }
120
+ console.error(`Server did not become live within ${(START_POLL_ATTEMPTS * START_POLL_INTERVAL_MS) / 1000}s. Check logs: ${logFilePath()}`);
121
+ (0, node_process_1.exit)(1);
122
+ }
123
+ async function runStop(args) {
124
+ const target = (0, status_2.resolveServerTarget)(args);
125
+ const pidfile = readPidfile();
126
+ const livePid = await liveServerPid(target.serverBase);
127
+ const safety = evaluateStopSafety(pidfile?.pid ?? null, livePid);
128
+ if (safety === "not-running") {
129
+ console.log(`No live Agents Office Tower at ${target.serverBase}.`);
130
+ (0, node_fs_1.rmSync)(pidfilePath(), { force: true });
131
+ return;
132
+ }
133
+ if (safety === "ownership-mismatch" && !args.includes("--force")) {
134
+ console.error(`A server is live at ${target.serverBase} (pid ${livePid}) but it does not match the pidfile`
135
+ + `${pidfile ? ` (pid ${pidfile.pid})` : " (no pidfile)"} — it may belong to another launcher. Pass --force to stop it anyway.`);
136
+ (0, node_process_1.exit)(1);
137
+ }
138
+ process.kill(livePid, "SIGTERM");
139
+ for (let attempt = 0; attempt < 40; attempt += 1) {
140
+ await delay(500);
141
+ if (await liveServerPid(target.serverBase) === null) {
142
+ (0, node_fs_1.rmSync)(pidfilePath(), { force: true });
143
+ console.log(`Stopped Agents Office Tower (pid ${livePid}).`);
144
+ return;
145
+ }
146
+ }
147
+ console.error(`Sent SIGTERM to pid ${livePid} but the server was still answering after 20s. It may still be draining observers; check again with \`aot status\` before forcing anything.`);
148
+ (0, node_process_1.exit)(1);
149
+ }
150
+ async function runRestart(args) {
151
+ await runStop(args.filter((arg) => arg !== "--force").concat(args.includes("--force") ? ["--force"] : []));
152
+ await runStart(args);
153
+ }
154
+ function runLogs(args) {
155
+ const linesFlag = args.indexOf("--lines");
156
+ const requested = linesFlag >= 0 ? Number.parseInt(args[linesFlag + 1] ?? "", 10) : 50;
157
+ const lineCount = Number.isFinite(requested) && requested > 0 ? requested : 50;
158
+ const path = logFilePath();
159
+ if (!(0, node_fs_1.existsSync)(path)) {
160
+ console.log(`No server log at ${path} yet. Start the tower with \`aot start\`.`);
161
+ return;
162
+ }
163
+ const lines = (0, node_fs_1.readFileSync)(path, "utf8").split(/\r?\n/);
164
+ for (const line of lines.slice(-lineCount)) {
165
+ console.log(line);
166
+ }
167
+ }
168
+ function runAudit(args) {
169
+ const linesFlag = args.indexOf("--lines");
170
+ const requested = linesFlag >= 0 ? Number.parseInt(args[linesFlag + 1] ?? "", 10) : 20;
171
+ const limit = Number.isFinite(requested) && requested > 0 ? requested : 20;
172
+ const records = (0, core_1.readAuditJournal)(limit);
173
+ if (args.includes("--json")) {
174
+ console.log(JSON.stringify(records, null, 2));
175
+ return;
176
+ }
177
+ if (records.length === 0) {
178
+ console.log("No audited operational actions recorded yet.");
179
+ return;
180
+ }
181
+ for (const record of records) {
182
+ const target = record.target.requestId ?? record.target.threadId ?? "";
183
+ console.log(`${record.at} ${record.outcome.padEnd(5)} ${record.actor} ${record.action} ${record.target.projectRoot}${target ? ` ${target}` : ""}${record.detail ? ` — ${record.detail}` : ""}${record.error ? ` (${record.error})` : ""}`);
184
+ }
185
+ }
186
+ function buildServiceFile(platform, cliEntry, port) {
187
+ if (platform === "darwin") {
188
+ const path = (0, node_path_1.join)((0, node_os_1.homedir)(), "Library", "LaunchAgents", "com.agents-tower.aot.plist");
189
+ const contents = `<?xml version="1.0" encoding="UTF-8"?>
190
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
191
+ <plist version="1.0">
192
+ <dict>
193
+ <key>Label</key><string>com.agents-tower.aot</string>
194
+ <key>ProgramArguments</key>
195
+ <array>
196
+ <string>${process.execPath}</string>
197
+ <string>${cliEntry}</string>
198
+ <string>web</string>
199
+ <string>--port</string>
200
+ <string>${port}</string>
201
+ </array>
202
+ <key>RunAtLoad</key><true/>
203
+ <key>KeepAlive</key><true/>
204
+ </dict>
205
+ </plist>
206
+ `;
207
+ return { path, contents, instructions: `launchctl load ${path}` };
208
+ }
209
+ if (platform === "linux") {
210
+ const path = (0, node_path_1.join)((0, node_os_1.homedir)(), ".config", "systemd", "user", "agents-office-tower.service");
211
+ const contents = `[Unit]
212
+ Description=Agents Office Tower
213
+
214
+ [Service]
215
+ ExecStart=${process.execPath} ${cliEntry} web --port ${port}
216
+ Restart=on-failure
217
+
218
+ [Install]
219
+ WantedBy=default.target
220
+ `;
221
+ return { path, contents, instructions: `systemctl --user daemon-reload && systemctl --user enable --now agents-office-tower` };
222
+ }
223
+ return null;
224
+ }
225
+ function runServiceInstall(args) {
226
+ const target = (0, status_2.resolveServerTarget)(args);
227
+ const port = new URL(target.serverBase).port || "4181";
228
+ const service = buildServiceFile(process.platform, (0, node_path_1.resolve)(__dirname, "index.js"), port);
229
+ if (!service) {
230
+ console.error(`Service files are not supported on ${process.platform} yet. Use \`aot start\` or your platform's task scheduler.`);
231
+ (0, node_process_1.exit)(1);
232
+ }
233
+ (0, node_fs_1.mkdirSync)((0, node_path_1.join)(service.path, ".."), { recursive: true });
234
+ (0, node_fs_1.writeFileSync)(service.path, service.contents);
235
+ console.log(`Wrote ${service.path}.`);
236
+ console.log(`Enable it with: ${service.instructions}`);
237
+ console.log("This command writes the service file only; loading it is left to you.");
238
+ }
239
+ async function runUpgrade(args) {
240
+ const { execFile } = await Promise.resolve().then(() => __importStar(require("node:child_process")));
241
+ const { promisify } = await Promise.resolve().then(() => __importStar(require("node:util")));
242
+ const execFileAsync = promisify(execFile);
243
+ const current = (0, status_1.cliVersion)();
244
+ let latest;
245
+ try {
246
+ const { stdout } = await execFileAsync("npm", ["view", "agents-office-tower", "version"], { timeout: 15_000 });
247
+ latest = stdout.trim();
248
+ }
249
+ catch (error) {
250
+ console.error(`Could not read the latest version from the registry: ${error instanceof Error ? error.message : String(error)}`);
251
+ (0, node_process_1.exit)(1);
252
+ }
253
+ if (latest === current) {
254
+ console.log(`Already on the latest version (${current}).`);
255
+ return;
256
+ }
257
+ console.log(`Upgrading agents-office-tower ${current} -> ${latest} …`);
258
+ if (args.includes("--dry-run")) {
259
+ console.log("Dry run: would execute `npm install -g agents-office-tower@latest`.");
260
+ return;
261
+ }
262
+ try {
263
+ await execFileAsync("npm", ["install", "-g", "agents-office-tower@latest"], { timeout: 300_000, maxBuffer: 4 * 1024 * 1024 });
264
+ }
265
+ catch (error) {
266
+ console.error(`Upgrade failed: ${error instanceof Error ? error.message : String(error)}`);
267
+ console.error(`Your current install (${current}) is untouched.`);
268
+ (0, node_process_1.exit)(1);
269
+ }
270
+ console.log(`Upgraded to ${latest}. Roll back anytime with: npm install -g agents-office-tower@${current}`);
271
+ console.log("Restart the tower to run the new build: aot restart");
272
+ }
273
+ //# sourceMappingURL=lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDA,gDAQC;AAMD,4BA6BC;AAED,0BA+BC;AAED,gCAGC;AAED,0BAaC;AAED,4BAiBC;AAED,4CAsCC;AAED,8CAaC;AAGD,gCAkCC;AApQD,2DAA2C;AAC3C,qCAA+F;AAC/F,qCAAkC;AAClC,yCAA0C;AAC1C,+CAAoC;AAEpC,6CAA2E;AAE3E,qCAAsC;AAEtC,qCAA+C;AAE/C,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAC/B,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAQnC,SAAS,WAAW;IAClB,OAAO,IAAA,gBAAI,EAAC,IAAA,0BAAmB,GAAE,EAAE,qBAAqB,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,WAAW;IAClB,OAAO,IAAA,gBAAI,EAAC,IAAA,0BAAmB,GAAE,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,WAAW;IAClB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,WAAW,EAAE,EAAE,MAAM,CAAC,CAAiB,CAAC;QAC/E,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,UAAkB;IAC7C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,UAAU,kBAAkB,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrG,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAsB,CAAC;QAC1D,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAE,OAAO,CAAC,GAAc,CAAC,CAAC,CAAC,IAAI,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAID,SAAgB,kBAAkB,CAAC,UAAyB,EAAE,OAAsB;IAClF,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;QAClD,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;AACzE,CAAC;AAEM,KAAK,UAAU,QAAQ,CAAC,IAAc;IAC3C,MAAM,MAAM,GAAG,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC;IACvD,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3D,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,6CAA6C,MAAM,CAAC,UAAU,SAAS,WAAW,IAAI,CAAC,CAAC;QACpG,OAAO;IACT,CAAC;IAED,IAAA,mBAAS,EAAC,IAAA,gBAAI,EAAC,IAAA,0BAAmB,GAAE,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,IAAA,kBAAQ,EAAC,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAA,mBAAO,EAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,IAAA,0BAAK,EAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE;QACpE,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC;KAChC,CAAC,CAAC;IACH,KAAK,CAAC,KAAK,EAAE,CAAC;IACd,IAAA,uBAAa,EAAC,WAAW,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAE1I,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,mBAAmB,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QAClE,MAAM,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,kCAAkC,MAAM,CAAC,UAAU,SAAS,OAAO,YAAY,WAAW,EAAE,EAAE,CAAC,CAAC;YAC5G,OAAO;QACT,CAAC;IACH,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,mBAAmB,GAAG,sBAAsB,CAAC,GAAG,IAAI,kBAAkB,WAAW,EAAE,EAAE,CAAC,CAAC;IAC3I,IAAA,mBAAI,EAAC,CAAC,CAAC,CAAC;AACV,CAAC;AAEM,KAAK,UAAU,OAAO,CAAC,IAAc;IAC1C,MAAM,MAAM,GAAG,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,OAAO,CAAC,CAAC;IAEjE,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,kCAAkC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;QACpE,IAAA,gBAAM,EAAC,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACvC,OAAO;IACT,CAAC;IAED,IAAI,MAAM,KAAK,oBAAoB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACjE,OAAO,CAAC,KAAK,CACX,uBAAuB,MAAM,CAAC,UAAU,SAAS,OAAO,qCAAqC;cAC3F,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,eAAe,uEAAuE,CAChI,CAAC;QACF,IAAA,mBAAI,EAAC,CAAC,CAAC,CAAC;IACV,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,OAAiB,EAAE,SAAS,CAAC,CAAC;IAC3C,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,EAAE,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QACjD,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QACjB,IAAI,MAAM,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC;YACpD,IAAA,gBAAM,EAAC,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,oCAAoC,OAAO,IAAI,CAAC,CAAC;YAC7D,OAAO;QACT,CAAC;IACH,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,uBAAuB,OAAO,6IAA6I,CAAC,CAAC;IAC3L,IAAA,mBAAI,EAAC,CAAC,CAAC,CAAC;AACV,CAAC;AAEM,KAAK,UAAU,UAAU,CAAC,IAAc;IAC7C,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3G,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC;AAED,SAAgB,OAAO,CAAC,IAAc;IACpC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvF,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/E,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC;IAC3B,IAAI,CAAC,IAAA,oBAAU,EAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,2CAA2C,CAAC,CAAC;QACjF,OAAO;IACT,CAAC;IACD,MAAM,KAAK,GAAG,IAAA,sBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACxD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAgB,QAAQ,CAAC,IAAc;IACrC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvF,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,MAAM,OAAO,GAAG,IAAA,uBAAgB,EAAC,KAAK,CAAC,CAAC;IACxC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;QAC5D,OAAO;IACT,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7O,CAAC;AACH,CAAC;AAED,SAAgB,gBAAgB,CAAC,QAAyB,EAAE,QAAgB,EAAE,IAAY;IACxF,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAA,gBAAI,EAAC,IAAA,iBAAO,GAAE,EAAE,SAAS,EAAE,cAAc,EAAE,4BAA4B,CAAC,CAAC;QACtF,MAAM,QAAQ,GAAG;;;;;;;cAOP,OAAO,CAAC,QAAQ;cAChB,QAAQ;;;cAGR,IAAI;;;;;;CAMjB,CAAC;QACE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,kBAAkB,IAAI,EAAE,EAAE,CAAC;IACpE,CAAC;IACD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAA,gBAAI,EAAC,IAAA,iBAAO,GAAE,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,6BAA6B,CAAC,CAAC;QAC1F,MAAM,QAAQ,GAAG;;;;YAIT,OAAO,CAAC,QAAQ,IAAI,QAAQ,eAAe,IAAI;;;;;CAK1D,CAAC;QACE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,qFAAqF,EAAE,CAAC;IACjI,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,iBAAiB,CAAC,IAAc;IAC9C,MAAM,MAAM,GAAG,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC;IACvD,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAA,mBAAO,EAAC,SAAS,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;IACzF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,sCAAsC,OAAO,CAAC,QAAQ,4DAA4D,CAAC,CAAC;QAClI,IAAA,mBAAI,EAAC,CAAC,CAAC,CAAC;IACV,CAAC;IACD,IAAA,mBAAS,EAAC,IAAA,gBAAI,EAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,IAAA,uBAAa,EAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,SAAS,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,mBAAmB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;AACvF,CAAC;AAGM,KAAK,UAAU,UAAU,CAAC,IAAc;IAC7C,MAAM,EAAE,QAAQ,EAAE,GAAG,wDAAa,oBAAoB,GAAC,CAAC;IACxD,MAAM,EAAE,SAAS,EAAE,GAAG,wDAAa,WAAW,GAAC,CAAC;IAChD,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAE1C,MAAM,OAAO,GAAG,IAAA,mBAAU,GAAE,CAAC;IAC7B,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,qBAAqB,EAAE,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/G,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wDAAwD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChI,IAAA,mBAAI,EAAC,CAAC,CAAC,CAAC;IACV,CAAC;IAED,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,kCAAkC,OAAO,IAAI,CAAC,CAAC;QAC3D,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,iCAAiC,OAAO,OAAO,MAAM,IAAI,CAAC,CAAC;IACvE,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;QACnF,OAAO;IACT,CAAC;IACD,IAAI,CAAC;QACH,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,4BAA4B,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;IAChI,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,mBAAmB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC3F,OAAO,CAAC,KAAK,CAAC,yBAAyB,OAAO,iBAAiB,CAAC,CAAC;QACjE,IAAA,mBAAI,EAAC,CAAC,CAAC,CAAC;IACV,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,gEAAgE,OAAO,EAAE,CAAC,CAAC;IAC5G,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;AACrE,CAAC"}
@@ -0,0 +1,73 @@
1
+ import { type HistoryEvent } from "@agents-tower/core";
2
+ export interface ServerTarget {
3
+ serverBase: string;
4
+ json: boolean;
5
+ }
6
+ export interface DoctorCheck {
7
+ name: string;
8
+ status: "pass" | "warn" | "fail";
9
+ detail: string;
10
+ }
11
+ interface HealthProviderRollup {
12
+ adapterId: string;
13
+ provider: string;
14
+ status: string;
15
+ detail: string | null;
16
+ degradedProjects: number;
17
+ }
18
+ interface HealthProjectSummary {
19
+ projectRoot: string;
20
+ projectLabel: string;
21
+ snapshotAgeMs: number;
22
+ status: string;
23
+ }
24
+ interface PulsePayload {
25
+ waitingForHuman: {
26
+ count: number;
27
+ oldestWaitMs: number | null;
28
+ waits: {
29
+ projectLabel: string;
30
+ agentLabel: string;
31
+ kind: string;
32
+ waitMs: number;
33
+ }[];
34
+ };
35
+ churnHotspots: {
36
+ projectLabel: string;
37
+ label: string;
38
+ changeCount: number;
39
+ }[];
40
+ repeatedFailures: {
41
+ projectLabel: string;
42
+ threadId: string;
43
+ failures: number;
44
+ }[];
45
+ instabilityNotes: string[];
46
+ }
47
+ interface HealthPayload {
48
+ status: string;
49
+ version: string;
50
+ buildAt: string;
51
+ startedAt: string;
52
+ pid: number;
53
+ host: string;
54
+ port: number;
55
+ projectCount: number;
56
+ projects: HealthProjectSummary[];
57
+ providers: HealthProviderRollup[];
58
+ notes: string[];
59
+ pulse?: PulsePayload;
60
+ }
61
+ export declare function resolveServerTarget(args: string[]): ServerTarget;
62
+ export declare function cliVersion(): string;
63
+ export declare function formatAge(ageMs: number): string;
64
+ export declare function formatStatusLines(health: HealthPayload): string[];
65
+ export declare function formatPulseLines(pulse: PulsePayload | undefined): string[];
66
+ export declare function runDigest(args: string[]): Promise<void>;
67
+ export declare function formatDoctorLines(checks: DoctorCheck[]): string[];
68
+ export declare function collectDoctorChecks(target: ServerTarget): Promise<DoctorCheck[]>;
69
+ export declare function runStatus(args: string[]): Promise<void>;
70
+ export declare function runDoctor(args: string[]): Promise<void>;
71
+ export declare function parseSinceMs(args: string[], nowMs?: number): number | null;
72
+ export declare function formatHistoryLines(events: HistoryEvent[], sinceMs: number): string[];
73
+ export {};
package/dist/status.js ADDED
@@ -0,0 +1,297 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveServerTarget = resolveServerTarget;
4
+ exports.cliVersion = cliVersion;
5
+ exports.formatAge = formatAge;
6
+ exports.formatStatusLines = formatStatusLines;
7
+ exports.formatPulseLines = formatPulseLines;
8
+ exports.runDigest = runDigest;
9
+ exports.formatDoctorLines = formatDoctorLines;
10
+ exports.collectDoctorChecks = collectDoctorChecks;
11
+ exports.runStatus = runStatus;
12
+ exports.runDoctor = runDoctor;
13
+ exports.parseSinceMs = parseSinceMs;
14
+ exports.formatHistoryLines = formatHistoryLines;
15
+ const node_child_process_1 = require("node:child_process");
16
+ const node_fs_1 = require("node:fs");
17
+ const node_os_1 = require("node:os");
18
+ const node_path_1 = require("node:path");
19
+ const node_process_1 = require("node:process");
20
+ const node_util_1 = require("node:util");
21
+ const core_1 = require("@agents-tower/core");
22
+ const execFileAsync = (0, node_util_1.promisify)(node_child_process_1.execFile);
23
+ const HEALTH_FETCH_TIMEOUT_MS = 3000;
24
+ function normalizeHost(host) {
25
+ return host === "0.0.0.0" || host === "::" || host === "[::]" ? "127.0.0.1" : host;
26
+ }
27
+ function resolveServerTarget(args) {
28
+ const explicitServer = flagValue(args, "--server");
29
+ const host = normalizeHost(flagValue(args, "--host") ?? node_process_1.env.CODEX_AGENTS_OFFICE_HOST ?? "127.0.0.1");
30
+ const parsedPort = Number.parseInt(flagValue(args, "--port") ?? node_process_1.env.CODEX_AGENTS_OFFICE_PORT ?? "4181", 10);
31
+ const port = Number.isFinite(parsedPort) ? parsedPort : 4181;
32
+ return {
33
+ serverBase: explicitServer ?? `http://${host}:${port}`,
34
+ json: args.includes("--json")
35
+ };
36
+ }
37
+ function flagValue(args, name) {
38
+ const index = args.indexOf(name);
39
+ if (index < 0) {
40
+ return null;
41
+ }
42
+ const value = args[index + 1];
43
+ return value && !value.startsWith("--") ? value : null;
44
+ }
45
+ function cliVersion() {
46
+ try {
47
+ const parsed = JSON.parse((0, node_fs_1.readFileSync)((0, node_path_1.resolve)(__dirname, "../package.json"), "utf8"));
48
+ return typeof parsed.version === "string" ? parsed.version : "0.0.0";
49
+ }
50
+ catch {
51
+ return "0.0.0";
52
+ }
53
+ }
54
+ async function fetchJson(url) {
55
+ try {
56
+ const response = await fetch(url, { signal: AbortSignal.timeout(HEALTH_FETCH_TIMEOUT_MS) });
57
+ return { ok: response.ok, status: response.status, payload: await response.json().catch(() => null) };
58
+ }
59
+ catch {
60
+ return null;
61
+ }
62
+ }
63
+ function formatAge(ageMs) {
64
+ if (!Number.isFinite(ageMs)) {
65
+ return "unknown age";
66
+ }
67
+ if (ageMs < 1000) {
68
+ return "just now";
69
+ }
70
+ const seconds = Math.round(ageMs / 1000);
71
+ if (seconds < 60) {
72
+ return `${seconds}s ago`;
73
+ }
74
+ const minutes = Math.round(seconds / 60);
75
+ if (minutes < 60) {
76
+ return `${minutes}m ago`;
77
+ }
78
+ return `${Math.round(minutes / 60)}h ago`;
79
+ }
80
+ function formatStatusLines(health) {
81
+ const lines = [];
82
+ lines.push(`Tower: ${health.status} — ${health.projectCount} project${health.projectCount === 1 ? "" : "s"}, `
83
+ + `v${health.version}, pid ${health.pid} @ ${health.host}:${health.port}`);
84
+ lines.push(`Build: ${health.buildAt} · started ${health.startedAt}`);
85
+ if (health.providers.length > 0) {
86
+ lines.push("", "Providers:");
87
+ for (const provider of health.providers) {
88
+ const detail = provider.status === "ready"
89
+ ? ""
90
+ : ` — ${provider.detail ?? "no detail"}${provider.degradedProjects > 1 ? ` (${provider.degradedProjects} projects)` : ""}`;
91
+ lines.push(` ${provider.status.padEnd(8)} ${provider.adapterId}${detail}`);
92
+ }
93
+ }
94
+ if (health.projects.length > 0) {
95
+ lines.push("", "Projects:");
96
+ for (const project of health.projects) {
97
+ lines.push(` ${project.status.padEnd(8)} ${project.projectLabel} (${formatAge(project.snapshotAgeMs)})`);
98
+ }
99
+ }
100
+ if (health.notes.length > 0) {
101
+ lines.push("", "Notes:");
102
+ for (const note of health.notes) {
103
+ lines.push(` ! ${note}`);
104
+ }
105
+ }
106
+ lines.push(...formatPulseLines(health.pulse));
107
+ return lines;
108
+ }
109
+ function formatPulseLines(pulse) {
110
+ if (!pulse) {
111
+ return [];
112
+ }
113
+ const lines = [];
114
+ const signals = [];
115
+ if (pulse.waitingForHuman.count > 0) {
116
+ signals.push(` waiting on you: ${pulse.waitingForHuman.count} (oldest ${formatAge(pulse.waitingForHuman.oldestWaitMs ?? 0)})`);
117
+ for (const wait of pulse.waitingForHuman.waits) {
118
+ signals.push(` - ${wait.agentLabel} in ${wait.projectLabel}: ${wait.kind} for ${formatAge(wait.waitMs)}`);
119
+ }
120
+ }
121
+ for (const churn of pulse.churnHotspots) {
122
+ signals.push(` churn: ${churn.label} in ${churn.projectLabel} changed ${churn.changeCount} times recently`);
123
+ }
124
+ for (const failure of pulse.repeatedFailures) {
125
+ signals.push(` repeated failures: thread ${failure.threadId} in ${failure.projectLabel} failed ${failure.failures} times in the live event window`);
126
+ }
127
+ for (const note of pulse.instabilityNotes) {
128
+ signals.push(` instability: ${note}`);
129
+ }
130
+ if (signals.length === 0) {
131
+ return [];
132
+ }
133
+ lines.push("", "Pulse:");
134
+ lines.push(...signals);
135
+ return lines;
136
+ }
137
+ async function runDigest(args) {
138
+ const target = resolveServerTarget(args);
139
+ const health = await fetchJson(`${target.serverBase}/api/health`);
140
+ if (!health || !health.payload) {
141
+ console.error(`Could not reach Agents Office Tower at ${target.serverBase}. Start it with \`aot start\`.`);
142
+ (0, node_process_1.exit)(1);
143
+ }
144
+ const payload = health.payload;
145
+ if (target.json) {
146
+ console.log(JSON.stringify({ generatedAt: new Date().toISOString(), status: payload.status, pulse: payload.pulse, projects: payload.projects, notes: payload.notes }, null, 2));
147
+ return;
148
+ }
149
+ console.log(`Digest for ${payload.host}:${payload.port} — fleet ${payload.status}, ${payload.projectCount} project${payload.projectCount === 1 ? "" : "s"}.`);
150
+ const sinceMs = parseSinceMs(args);
151
+ if (sinceMs !== null) {
152
+ for (const line of formatHistoryLines((0, core_1.readHistoryEvents)(sinceMs), sinceMs)) {
153
+ console.log(line);
154
+ }
155
+ }
156
+ const pulseLines = formatPulseLines(payload.pulse);
157
+ if (pulseLines.length > 0) {
158
+ for (const line of pulseLines) {
159
+ console.log(line);
160
+ }
161
+ }
162
+ else {
163
+ console.log("No attention signals: nothing waiting on you, no churn hotspots, no repeated failures observed.");
164
+ }
165
+ if (payload.notes.length > 0) {
166
+ console.log("", "Coverage notes:");
167
+ for (const note of payload.notes) {
168
+ console.log(` ! ${note}`);
169
+ }
170
+ }
171
+ }
172
+ function formatDoctorLines(checks) {
173
+ const badge = { pass: "PASS", warn: "WARN", fail: "FAIL" };
174
+ return checks.map((check) => `${badge[check.status]} ${check.name}: ${check.detail}`);
175
+ }
176
+ async function probeCommandVersion(command) {
177
+ try {
178
+ const { stdout } = await execFileAsync(command, ["--version"], { timeout: 3000, maxBuffer: 64 * 1024 });
179
+ return stdout.trim().split(/\r?\n/)[0] || "available";
180
+ }
181
+ catch {
182
+ return null;
183
+ }
184
+ }
185
+ async function collectDoctorChecks(target) {
186
+ const checks = [];
187
+ checks.push({ name: "aot CLI", status: "pass", detail: `v${cliVersion()} on node ${process.version}` });
188
+ const live = await fetchJson(`${target.serverBase}/api/health/live`);
189
+ if (!live) {
190
+ checks.push({
191
+ name: "tower server",
192
+ status: "fail",
193
+ detail: `not reachable at ${target.serverBase} — start it with \`aot web\` or \`npm start\``
194
+ });
195
+ return checks;
196
+ }
197
+ const livePid = live.payload?.pid;
198
+ checks.push({ name: "tower server", status: "pass", detail: `live at ${target.serverBase}${livePid ? ` (pid ${livePid})` : ""}` });
199
+ const ready = await fetchJson(`${target.serverBase}/api/health/ready`);
200
+ checks.push(ready?.ok
201
+ ? { name: "fleet readiness", status: "pass", detail: "fleet snapshot published" }
202
+ : { name: "fleet readiness", status: "warn", detail: "server is live but has not published a fleet snapshot yet" });
203
+ const health = await fetchJson(`${target.serverBase}/api/health`);
204
+ const payload = health?.payload;
205
+ if (payload) {
206
+ const degraded = payload.providers.filter((provider) => provider.status !== "ready");
207
+ checks.push({
208
+ name: "fleet health",
209
+ status: payload.status === "healthy" ? "pass" : "warn",
210
+ detail: `${payload.status} across ${payload.projectCount} project${payload.projectCount === 1 ? "" : "s"}`
211
+ });
212
+ for (const provider of degraded) {
213
+ checks.push({
214
+ name: `provider ${provider.adapterId}`,
215
+ status: provider.status === "error" ? "fail" : "warn",
216
+ detail: provider.detail ?? provider.status
217
+ });
218
+ }
219
+ }
220
+ const codexVersion = await probeCommandVersion("codex");
221
+ checks.push(codexVersion
222
+ ? { name: "codex CLI", status: "pass", detail: codexVersion }
223
+ : { name: "codex CLI", status: "warn", detail: "not found on PATH — local Codex visibility will rely on app bundles or logs" });
224
+ const home = (0, node_os_1.homedir)();
225
+ checks.push((0, node_fs_1.existsSync)((0, node_path_1.join)(home, ".claude"))
226
+ ? { name: "claude data", status: "pass", detail: "~/.claude present" }
227
+ : { name: "claude data", status: "warn", detail: "~/.claude not found — Claude sessions will not be visible" });
228
+ checks.push((0, node_fs_1.existsSync)((0, node_path_1.join)(home, ".hermes"))
229
+ ? { name: "hermes data", status: "pass", detail: "~/.hermes present" }
230
+ : { name: "hermes data", status: "warn", detail: "~/.hermes not found — Hermes visibility disabled" });
231
+ return checks;
232
+ }
233
+ async function runStatus(args) {
234
+ const target = resolveServerTarget(args);
235
+ const health = await fetchJson(`${target.serverBase}/api/health`);
236
+ if (!health || !health.payload) {
237
+ console.error(`Could not reach Agents Office Tower at ${target.serverBase}. Start it with \`aot web\` or \`npm start\`.`);
238
+ (0, node_process_1.exit)(1);
239
+ }
240
+ if (target.json) {
241
+ console.log(JSON.stringify(health.payload, null, 2));
242
+ return;
243
+ }
244
+ for (const line of formatStatusLines(health.payload)) {
245
+ console.log(line);
246
+ }
247
+ }
248
+ async function runDoctor(args) {
249
+ const target = resolveServerTarget(args);
250
+ const checks = await collectDoctorChecks(target);
251
+ if (target.json) {
252
+ console.log(JSON.stringify({ generatedAt: new Date().toISOString(), checks }, null, 2));
253
+ }
254
+ else {
255
+ for (const line of formatDoctorLines(checks)) {
256
+ console.log(line);
257
+ }
258
+ }
259
+ if (checks.some((check) => check.status === "fail")) {
260
+ (0, node_process_1.exit)(1);
261
+ }
262
+ }
263
+ function parseSinceMs(args, nowMs = Date.now()) {
264
+ const index = args.indexOf("--since");
265
+ if (index < 0) {
266
+ return null;
267
+ }
268
+ const raw = args[index + 1];
269
+ const match = raw ? /^(\d+)([mhd])$/.exec(raw) : null;
270
+ if (!match) {
271
+ console.error("--since expects a duration like 30m, 4h, or 2d");
272
+ (0, node_process_1.exit)(1);
273
+ }
274
+ const amount = Number.parseInt(match[1], 10);
275
+ const unitMs = match[2] === "m" ? 60_000 : match[2] === "h" ? 3_600_000 : 86_400_000;
276
+ return nowMs - amount * unitMs;
277
+ }
278
+ function formatHistoryLines(events, sinceMs) {
279
+ const lines = ["", `Since ${new Date(sinceMs).toISOString()}:`];
280
+ if (events.length === 0) {
281
+ lines.push(" No recorded wait or session lifecycle events. (History records while the tower server runs.)");
282
+ return lines;
283
+ }
284
+ const count = (kind) => events.filter((event) => event.kind === kind).length;
285
+ const resolved = events.filter((event) => event.kind === "wait.resolved");
286
+ const totalWaitMs = resolved.reduce((sum, event) => sum + (event.waitMs ?? 0), 0);
287
+ lines.push(` sessions: ${count("session.started")} started, ${count("session.finished")} finished`, ` waits: ${count("wait.opened")} opened, ${resolved.length} resolved`
288
+ + (resolved.length > 0 ? ` (${formatAge(totalWaitMs).replace(" ago", "")} of human wait time total)` : ""));
289
+ for (const event of events.slice(-8)) {
290
+ lines.push(` ${event.at} ${event.kind} ${event.agentLabel} in ${event.projectLabel}${event.waitMs ? ` after ${formatAge(event.waitMs).replace(" ago", "")}` : ""}`);
291
+ }
292
+ if (events.length > 8) {
293
+ lines.push(` … ${events.length - 8} earlier events omitted`);
294
+ }
295
+ return lines;
296
+ }
297
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,8 +1,13 @@
1
1
  {
2
2
  "name": "agents-office-tower",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Live pixel-office view for agent work across Codex, Claude, Cursor, Hermes, OpenClaw, cloud tasks, and shared rooms.",
5
5
  "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/Kundara/AgentsOfficeTower.git",
9
+ "directory": "packages/cli"
10
+ },
6
11
  "main": "dist/index.js",
7
12
  "types": "dist/index.d.ts",
8
13
  "files": [
@@ -14,6 +19,7 @@
14
19
  },
15
20
  "scripts": {
16
21
  "build": "tsc -p tsconfig.json",
22
+ "test": "node --test test/*.test.js",
17
23
  "typecheck": "tsc -p tsconfig.json --noEmit"
18
24
  },
19
25
  "dependencies": {