@agentmeshhq/agent 0.4.2 → 0.4.3

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.
Files changed (60) hide show
  1. package/LICENSE +21 -0
  2. package/dist/__tests__/evicted-cleanup.test.d.ts +10 -0
  3. package/dist/__tests__/evicted-cleanup.test.js +459 -0
  4. package/dist/__tests__/evicted-cleanup.test.js.map +1 -0
  5. package/dist/__tests__/local.test.d.ts +1 -0
  6. package/dist/__tests__/local.test.js +124 -0
  7. package/dist/__tests__/local.test.js.map +1 -0
  8. package/dist/__tests__/tmux-send.test.d.ts +10 -0
  9. package/dist/__tests__/tmux-send.test.js +96 -0
  10. package/dist/__tests__/tmux-send.test.js.map +1 -0
  11. package/dist/cli/inbox.d.ts +5 -0
  12. package/dist/cli/inbox.js +123 -0
  13. package/dist/cli/inbox.js.map +1 -0
  14. package/dist/cli/index.js +285 -11
  15. package/dist/cli/index.js.map +1 -1
  16. package/dist/cli/issue.d.ts +42 -0
  17. package/dist/cli/issue.js +297 -0
  18. package/dist/cli/issue.js.map +1 -0
  19. package/dist/cli/local.d.ts +27 -6
  20. package/dist/cli/local.js +319 -36
  21. package/dist/cli/local.js.map +1 -1
  22. package/dist/cli/ready.d.ts +5 -0
  23. package/dist/cli/ready.js +131 -0
  24. package/dist/cli/ready.js.map +1 -0
  25. package/dist/cli/sync.d.ts +8 -0
  26. package/dist/cli/sync.js +154 -0
  27. package/dist/cli/sync.js.map +1 -0
  28. package/dist/cli/token.js +242 -9
  29. package/dist/cli/token.js.map +1 -1
  30. package/dist/cli/whoami.d.ts +6 -0
  31. package/dist/cli/whoami.js +109 -5
  32. package/dist/cli/whoami.js.map +1 -1
  33. package/dist/core/cleanup/eligibility.d.ts +41 -0
  34. package/dist/core/cleanup/eligibility.js +64 -0
  35. package/dist/core/cleanup/eligibility.js.map +1 -0
  36. package/dist/core/cleanup/scheduler.d.ts +50 -0
  37. package/dist/core/cleanup/scheduler.js +120 -0
  38. package/dist/core/cleanup/scheduler.js.map +1 -0
  39. package/dist/core/cleanup/worker.d.ts +63 -0
  40. package/dist/core/cleanup/worker.js +191 -0
  41. package/dist/core/cleanup/worker.js.map +1 -0
  42. package/dist/core/daemon.d.ts +1 -0
  43. package/dist/core/daemon.js +18 -0
  44. package/dist/core/daemon.js.map +1 -1
  45. package/dist/core/heartbeat.d.ts +6 -1
  46. package/dist/core/heartbeat.js +44 -39
  47. package/dist/core/heartbeat.js.map +1 -1
  48. package/dist/core/issue-cache.d.ts +44 -0
  49. package/dist/core/issue-cache.js +75 -0
  50. package/dist/core/issue-cache.js.map +1 -0
  51. package/dist/core/registry.d.ts +1 -0
  52. package/dist/core/registry.js +1 -0
  53. package/dist/core/registry.js.map +1 -1
  54. package/dist/core/token-lifecycle.d.ts +81 -0
  55. package/dist/core/token-lifecycle.js +210 -0
  56. package/dist/core/token-lifecycle.js.map +1 -0
  57. package/dist/core/token-lifecycle.test.d.ts +10 -0
  58. package/dist/core/token-lifecycle.test.js +309 -0
  59. package/dist/core/token-lifecycle.test.js.map +1 -0
  60. package/package.json +11 -12
@@ -0,0 +1,154 @@
1
+ /**
2
+ * Sync CLI Command
3
+ * Synchronize local cache with HQ
4
+ */
5
+ import pc from "picocolors";
6
+ import { getAgentState, loadConfig } from "../config/loader.js";
7
+ import { getLastSyncTime, hasPendingChanges, loadCache, saveCache, } from "../core/issue-cache.js";
8
+ async function getHubUrl() {
9
+ const config = loadConfig();
10
+ return config?.hubUrl || process.env.AGENTMESH_HUB_URL || "https://agentmeshhq.dev";
11
+ }
12
+ async function getToken() {
13
+ const state = getAgentState(process.env.AGENT_NAME || "");
14
+ if (state?.token)
15
+ return state.token;
16
+ if (process.env.AGENT_TOKEN)
17
+ return process.env.AGENT_TOKEN;
18
+ return null;
19
+ }
20
+ async function getWorkspace() {
21
+ const config = loadConfig();
22
+ return config?.workspace || process.env.AGENTMESH_WORKSPACE || "agentmesh";
23
+ }
24
+ async function apiRequest(method, path, body) {
25
+ const hubUrl = await getHubUrl();
26
+ const token = await getToken();
27
+ try {
28
+ const response = await fetch(`${hubUrl}${path}`, {
29
+ method,
30
+ headers: {
31
+ "Content-Type": "application/json",
32
+ ...(token && { Authorization: `Bearer ${token}` }),
33
+ },
34
+ body: body ? JSON.stringify(body) : undefined,
35
+ });
36
+ if (!response.ok) {
37
+ const error = await response.json().catch(() => ({ error: response.statusText }));
38
+ return { error: error.error || response.statusText };
39
+ }
40
+ if (response.status === 204) {
41
+ return { data: undefined };
42
+ }
43
+ const data = await response.json();
44
+ return { data: data };
45
+ }
46
+ catch (err) {
47
+ return { error: err.message };
48
+ }
49
+ }
50
+ export async function sync(options = {}) {
51
+ const workspace = await getWorkspace();
52
+ const cache = loadCache(workspace);
53
+ console.log(pc.cyan("Syncing with AgentMesh HQ..."));
54
+ console.log();
55
+ // Check connectivity first
56
+ const healthResult = await apiRequest("GET", "/health");
57
+ if (healthResult.error) {
58
+ console.error(pc.red("Cannot connect to HQ. Check your network connection."));
59
+ console.log();
60
+ if (hasPendingChanges(workspace)) {
61
+ console.log(pc.yellow(`You have ${cache.pendingChanges.length} pending change(s) queued locally.`));
62
+ }
63
+ process.exit(1);
64
+ }
65
+ let syncErrors = 0;
66
+ let _syncSuccess = 0;
67
+ // Push pending changes first
68
+ if (cache.pendingChanges.length > 0) {
69
+ console.log(pc.bold(`Pushing ${cache.pendingChanges.length} pending change(s)...`));
70
+ const remainingChanges = [];
71
+ for (const change of cache.pendingChanges) {
72
+ const result = await pushChange(workspace, change);
73
+ if (result.success) {
74
+ _syncSuccess++;
75
+ console.log(pc.green(` + ${change.action} ${change.issueId || "new issue"}`));
76
+ }
77
+ else {
78
+ syncErrors++;
79
+ console.log(pc.red(` x ${change.action} ${change.issueId || "new issue"}: ${result.error}`));
80
+ // Keep failed changes for retry unless forcing
81
+ if (!options.force) {
82
+ remainingChanges.push(change);
83
+ }
84
+ }
85
+ }
86
+ // Update pending changes
87
+ cache.pendingChanges = remainingChanges;
88
+ saveCache(cache);
89
+ console.log();
90
+ }
91
+ // Pull latest issues
92
+ console.log(pc.bold("Pulling latest issues..."));
93
+ const issuesResult = await apiRequest("GET", `/api/v1/workspaces/${workspace}/issues?limit=100`);
94
+ if (issuesResult.error) {
95
+ console.error(pc.red(`Failed to fetch issues: ${issuesResult.error}`));
96
+ syncErrors++;
97
+ }
98
+ else {
99
+ const issues = issuesResult.data?.issues || [];
100
+ cache.issues = issues;
101
+ cache.lastSync = new Date().toISOString();
102
+ saveCache(cache);
103
+ console.log(pc.green(` Cached ${issues.length} issue(s)`));
104
+ }
105
+ console.log();
106
+ // Summary
107
+ if (syncErrors > 0) {
108
+ console.log(pc.yellow(`Sync completed with ${syncErrors} error(s)`));
109
+ if (cache.pendingChanges.length > 0) {
110
+ console.log(pc.dim(`${cache.pendingChanges.length} change(s) still pending`));
111
+ }
112
+ }
113
+ else {
114
+ console.log(pc.green("Sync completed successfully"));
115
+ }
116
+ const lastSync = getLastSyncTime(workspace);
117
+ if (lastSync) {
118
+ console.log(pc.dim(`Last sync: ${lastSync}`));
119
+ }
120
+ }
121
+ async function pushChange(workspace, change) {
122
+ switch (change.action) {
123
+ case "create": {
124
+ const result = await apiRequest("POST", `/api/v1/workspaces/${workspace}/issues`, change.data);
125
+ if (result.error) {
126
+ return { success: false, error: result.error };
127
+ }
128
+ return { success: true };
129
+ }
130
+ case "update": {
131
+ if (!change.issueId) {
132
+ return { success: false, error: "Missing issueId for update" };
133
+ }
134
+ const result = await apiRequest("PATCH", `/api/v1/workspaces/${workspace}/issues/${change.issueId}`, change.data);
135
+ if (result.error) {
136
+ return { success: false, error: result.error };
137
+ }
138
+ return { success: true };
139
+ }
140
+ case "delete": {
141
+ if (!change.issueId) {
142
+ return { success: false, error: "Missing issueId for delete" };
143
+ }
144
+ const result = await apiRequest("DELETE", `/api/v1/workspaces/${workspace}/issues/${change.issueId}`);
145
+ if (result.error) {
146
+ return { success: false, error: result.error };
147
+ }
148
+ return { success: true };
149
+ }
150
+ default:
151
+ return { success: false, error: `Unknown action: ${change.action}` };
152
+ }
153
+ }
154
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/cli/sync.ts"],"names":[],"mappings":"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"}
package/dist/cli/token.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { execSync } from "node:child_process";
1
2
  import pc from "picocolors";
2
3
  import { loadConfig, loadState, updateAgentInState } from "../config/loader.js";
3
4
  import { registerAgent } from "../core/registry.js";
@@ -9,7 +10,6 @@ export async function token(action, agentName) {
9
10
  console.log(pc.red("No config found. Run 'agentmesh init' first."));
10
11
  process.exit(1);
11
12
  }
12
- // Check if running inside an agent session
13
13
  const envAgentId = process.env.AGENTMESH_AGENT_ID;
14
14
  const envToken = process.env.AGENT_TOKEN;
15
15
  switch (action) {
@@ -22,19 +22,20 @@ export async function token(action, agentName) {
22
22
  case "info":
23
23
  await tokenInfo(config, agentName, envAgentId, envToken);
24
24
  break;
25
+ case "health":
26
+ await providerHealth(config, agentName, envAgentId, envToken);
27
+ break;
25
28
  default:
26
29
  console.log(pc.red(`Unknown action: ${action}`));
27
- console.log(pc.dim("Available actions: show, refresh, info"));
30
+ console.log(pc.dim("Available actions: show, refresh, info, health"));
28
31
  process.exit(1);
29
32
  }
30
33
  }
31
34
  async function showToken(_config, agentName, _envAgentId, envToken) {
32
- // If running as agent, show env token
33
35
  if (envToken && !agentName) {
34
36
  console.log(envToken);
35
37
  return;
36
38
  }
37
- // Find agent in state
38
39
  const state = loadState();
39
40
  const agent = agentName ? state.agents.find((a) => a.name === agentName) : state.agents[0];
40
41
  if (!agent) {
@@ -58,7 +59,6 @@ async function refreshToken(config, agentName, envAgentId) {
58
59
  process.exit(1);
59
60
  }
60
61
  const state = loadState();
61
- // Find the agent to refresh
62
62
  const agent = agentName
63
63
  ? state.agents.find((a) => a.name === agentName)
64
64
  : envAgentId
@@ -76,13 +76,11 @@ async function refreshToken(config, agentName, envAgentId) {
76
76
  workspace: config.workspace,
77
77
  agentId: agent.agentId,
78
78
  agentName: agent.name,
79
- model: "claude-sonnet-4", // Default model
79
+ model: "claude-sonnet-4",
80
80
  });
81
- // Update state
82
81
  updateAgentInState(agent.name, {
83
82
  token: registration.token,
84
83
  });
85
- // Update tmux environment if session exists
86
84
  if (sessionExists(getSessionName(agent.name))) {
87
85
  updateSessionEnvironment(agent.name, {
88
86
  AGENT_TOKEN: registration.token,
@@ -95,6 +93,9 @@ async function refreshToken(config, agentName, envAgentId) {
95
93
  if (expiry) {
96
94
  console.log(pc.dim(`New expiry: ${expiry.toISOString()}`));
97
95
  }
96
+ // Automatically run provider health check after refresh
97
+ console.log();
98
+ await providerHealth(config, agentName, agent.agentId, registration.token);
98
99
  }
99
100
  catch (error) {
100
101
  console.log(pc.red(`Failed to refresh token: ${error.message}`));
@@ -102,7 +103,6 @@ async function refreshToken(config, agentName, envAgentId) {
102
103
  }
103
104
  }
104
105
  async function tokenInfo(_config, agentName, _envAgentId, envToken) {
105
- // Get token to inspect
106
106
  let tokenToInspect = null;
107
107
  let source = "unknown";
108
108
  if (envToken && !agentName) {
@@ -143,4 +143,237 @@ async function tokenInfo(_config, agentName, _envAgentId, envToken) {
143
143
  console.log(` Remaining: ${pc.dim(`${days}d ${hours}h`)}`);
144
144
  }
145
145
  }
146
+ async function providerHealth(config, agentName, envAgentId, envToken) {
147
+ // Resolve token for AgentMesh JWT check
148
+ let agentmeshToken = null;
149
+ let agentDisplayName = "unknown";
150
+ if (envToken && !agentName) {
151
+ agentmeshToken = envToken;
152
+ agentDisplayName = envAgentId ?? "current";
153
+ }
154
+ else {
155
+ const state = loadState();
156
+ const agent = agentName
157
+ ? state.agents.find((a) => a.name === agentName)
158
+ : envAgentId
159
+ ? state.agents.find((a) => a.agentId === envAgentId)
160
+ : state.agents[0];
161
+ if (agent) {
162
+ agentmeshToken = agent.token ?? null;
163
+ agentDisplayName = agent.name;
164
+ }
165
+ }
166
+ console.log(pc.bold("Provider Auth Health"));
167
+ console.log(pc.dim(` Agent: ${agentDisplayName}`));
168
+ console.log();
169
+ const results = [];
170
+ // 1. AgentMesh JWT
171
+ results.push(checkAgentmeshJwt(agentmeshToken, config?.hubUrl));
172
+ // 2. Claude (Anthropic API key)
173
+ results.push(await checkClaudeHealth());
174
+ // 3. OpenAI / Codex
175
+ results.push(checkOpenAIHealth());
176
+ // 4. OpenCode session
177
+ results.push(await checkOpenCodeHealth());
178
+ // Print results
179
+ for (const r of results) {
180
+ const icon = r.status === "ok"
181
+ ? pc.green("✓")
182
+ : r.status === "warn"
183
+ ? pc.yellow("!")
184
+ : r.status === "error"
185
+ ? pc.red("✗")
186
+ : pc.dim("?");
187
+ const statusText = r.status === "ok"
188
+ ? pc.green("OK")
189
+ : r.status === "warn"
190
+ ? pc.yellow("WARN")
191
+ : r.status === "error"
192
+ ? pc.red("ERROR")
193
+ : pc.dim("UNKNOWN");
194
+ console.log(` ${icon} ${r.name.padEnd(20)} ${statusText}`);
195
+ console.log(` ${pc.dim(r.detail)}`);
196
+ if (r.remediation && r.status !== "ok") {
197
+ console.log(` ${pc.cyan("Fix: ")}${r.remediation}`);
198
+ }
199
+ console.log();
200
+ }
201
+ const hasError = results.some((r) => r.status === "error");
202
+ const hasWarn = results.some((r) => r.status === "warn");
203
+ if (hasError) {
204
+ console.log(pc.red("Health check: DEGRADED — fix errors above before proceeding."));
205
+ }
206
+ else if (hasWarn) {
207
+ console.log(pc.yellow("Health check: WARN — some providers may be unavailable."));
208
+ }
209
+ else {
210
+ console.log(pc.green("Health check: OK"));
211
+ }
212
+ }
213
+ function checkAgentmeshJwt(agentToken, hubUrl) {
214
+ if (!agentToken) {
215
+ return {
216
+ name: "AgentMesh JWT",
217
+ status: "error",
218
+ detail: "No token found.",
219
+ remediation: "agentmesh token refresh -n <agent-name>",
220
+ };
221
+ }
222
+ const expired = isTokenExpired(agentToken);
223
+ if (expired) {
224
+ return {
225
+ name: "AgentMesh JWT",
226
+ status: "error",
227
+ detail: "Token is expired.",
228
+ remediation: "agentmesh token refresh -n <agent-name>",
229
+ };
230
+ }
231
+ const remaining = getTokenTimeRemaining(agentToken);
232
+ const daysLeft = Math.floor(remaining / (1000 * 60 * 60 * 24));
233
+ const hoursLeft = Math.floor((remaining % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
234
+ if (daysLeft < 1) {
235
+ return {
236
+ name: "AgentMesh JWT",
237
+ status: "warn",
238
+ detail: `Token expires in ${hoursLeft}h — refresh soon.`,
239
+ remediation: "agentmesh token refresh -n <agent-name>",
240
+ };
241
+ }
242
+ const hub = hubUrl ?? "https://agentmeshhq.dev";
243
+ return {
244
+ name: "AgentMesh JWT",
245
+ status: "ok",
246
+ detail: `Valid, expires in ${daysLeft}d ${hoursLeft}h. Hub: ${hub}`,
247
+ };
248
+ }
249
+ async function checkClaudeHealth() {
250
+ const apiKey = process.env.ANTHROPIC_API_KEY ??
251
+ process.env.CLAUDE_API_KEY ??
252
+ readEnvFromKeyring("ANTHROPIC_API_KEY");
253
+ if (!apiKey) {
254
+ return {
255
+ name: "Claude (Anthropic)",
256
+ status: "warn",
257
+ detail: "ANTHROPIC_API_KEY not set in environment.",
258
+ remediation: "export ANTHROPIC_API_KEY=sk-ant-...",
259
+ };
260
+ }
261
+ // Quick ping — models list endpoint is cheap and auth-verifying
262
+ try {
263
+ const res = await fetch("https://api.anthropic.com/v1/models", {
264
+ headers: {
265
+ "x-api-key": apiKey,
266
+ "anthropic-version": "2023-06-01",
267
+ },
268
+ signal: AbortSignal.timeout(5000),
269
+ });
270
+ if (res.status === 401) {
271
+ return {
272
+ name: "Claude (Anthropic)",
273
+ status: "error",
274
+ detail: "API key rejected (401 Unauthorized).",
275
+ remediation: "Check your ANTHROPIC_API_KEY — it may be invalid or revoked.",
276
+ };
277
+ }
278
+ if (res.status === 429) {
279
+ return {
280
+ name: "Claude (Anthropic)",
281
+ status: "warn",
282
+ detail: "Rate limited (429). Key is valid but quota exceeded.",
283
+ };
284
+ }
285
+ if (!res.ok) {
286
+ return {
287
+ name: "Claude (Anthropic)",
288
+ status: "warn",
289
+ detail: `API returned ${res.status} — may be transient.`,
290
+ };
291
+ }
292
+ return {
293
+ name: "Claude (Anthropic)",
294
+ status: "ok",
295
+ detail: "API key valid, models endpoint reachable.",
296
+ };
297
+ }
298
+ catch (err) {
299
+ return {
300
+ name: "Claude (Anthropic)",
301
+ status: "warn",
302
+ detail: `Could not reach api.anthropic.com: ${err.message}`,
303
+ remediation: "Check network connectivity.",
304
+ };
305
+ }
306
+ }
307
+ function checkOpenAIHealth() {
308
+ const apiKey = process.env.OPENAI_API_KEY ?? readEnvFromKeyring("OPENAI_API_KEY");
309
+ if (!apiKey) {
310
+ return {
311
+ name: "OpenAI / Codex",
312
+ status: "unknown",
313
+ detail: "OPENAI_API_KEY not set — skipped.",
314
+ };
315
+ }
316
+ // Key present — we don't make a live call to avoid costs; just confirm it's plausibly valid
317
+ if (!apiKey.startsWith("sk-")) {
318
+ return {
319
+ name: "OpenAI / Codex",
320
+ status: "warn",
321
+ detail: "OPENAI_API_KEY is set but format looks unexpected (should start with sk-).",
322
+ remediation: "Verify your OPENAI_API_KEY value.",
323
+ };
324
+ }
325
+ return {
326
+ name: "OpenAI / Codex",
327
+ status: "ok",
328
+ detail: "OPENAI_API_KEY is set and format looks valid.",
329
+ };
330
+ }
331
+ async function checkOpenCodeHealth() {
332
+ // Check if opencode binary is available
333
+ try {
334
+ execSync("which opencode", { stdio: "ignore" });
335
+ }
336
+ catch {
337
+ return {
338
+ name: "OpenCode session",
339
+ status: "warn",
340
+ detail: "opencode binary not found in PATH.",
341
+ remediation: "Install OpenCode: https://opencode.ai",
342
+ };
343
+ }
344
+ // Check if any tmux sessions look like opencode sessions
345
+ try {
346
+ const sessions = execSync("tmux list-sessions -F '#{session_name}' 2>/dev/null || true", {
347
+ encoding: "utf-8",
348
+ })
349
+ .trim()
350
+ .split("\n")
351
+ .filter(Boolean);
352
+ const agentmeshSessions = sessions.filter((s) => s.startsWith("agentmesh-"));
353
+ if (agentmeshSessions.length === 0) {
354
+ return {
355
+ name: "OpenCode session",
356
+ status: "unknown",
357
+ detail: "No agentmesh tmux sessions active.",
358
+ };
359
+ }
360
+ return {
361
+ name: "OpenCode session",
362
+ status: "ok",
363
+ detail: `opencode reachable; ${agentmeshSessions.length} agent session(s) active.`,
364
+ };
365
+ }
366
+ catch {
367
+ return {
368
+ name: "OpenCode session",
369
+ status: "unknown",
370
+ detail: "Could not inspect tmux sessions.",
371
+ };
372
+ }
373
+ }
374
+ /** Best-effort: try to read env var from a keyring file or .env if not in process.env */
375
+ function readEnvFromKeyring(_varName) {
376
+ // Placeholder — could integrate with pass/keychain in future
377
+ return undefined;
378
+ }
146
379
  //# sourceMappingURL=token.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/cli/token.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/cli/token.ts"],"names":[],"mappings":"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"}
@@ -1 +1,7 @@
1
1
  export declare function whoami(agentName?: string): Promise<void>;
2
+ /**
3
+ * Resolve the canonical Product Owner agent ID for the current team/workspace.
4
+ * Usage: agentmesh po resolve
5
+ * agentmesh whoami --po
6
+ */
7
+ export declare function resolvePO(agentName?: string): Promise<void>;