@agentmeshhq/agent 0.2.0 → 0.2.1

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 (137) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +39 -0
  3. package/dist/__tests__/orphan-process.test.d.ts +11 -0
  4. package/dist/__tests__/orphan-process.test.js +286 -0
  5. package/dist/__tests__/orphan-process.test.js.map +1 -0
  6. package/dist/__tests__/runner.test.js +16 -0
  7. package/dist/__tests__/runner.test.js.map +1 -1
  8. package/dist/__tests__/watchdog.test.js +138 -12
  9. package/dist/__tests__/watchdog.test.js.map +1 -1
  10. package/dist/cli/index.js +0 -0
  11. package/dist/cli/status.js +11 -0
  12. package/dist/cli/status.js.map +1 -1
  13. package/dist/cli/stop.js +7 -2
  14. package/dist/cli/stop.js.map +1 -1
  15. package/dist/config/schema.d.ts +4 -2
  16. package/dist/core/daemon/assignment-message.d.ts +12 -0
  17. package/dist/core/daemon/assignment-message.js +36 -0
  18. package/dist/core/daemon/assignment-message.js.map +1 -0
  19. package/dist/core/daemon/bootstrap.d.ts +35 -0
  20. package/dist/core/daemon/bootstrap.js +52 -0
  21. package/dist/core/daemon/bootstrap.js.map +1 -0
  22. package/dist/core/daemon/crash-log.d.ts +16 -0
  23. package/dist/core/daemon/crash-log.js +24 -0
  24. package/dist/core/daemon/crash-log.js.map +1 -0
  25. package/dist/core/daemon/health-policy.d.ts +21 -0
  26. package/dist/core/daemon/health-policy.js +32 -0
  27. package/dist/core/daemon/health-policy.js.map +1 -0
  28. package/dist/core/daemon/sandbox-config.d.ts +9 -0
  29. package/dist/core/daemon/sandbox-config.js +17 -0
  30. package/dist/core/daemon/sandbox-config.js.map +1 -0
  31. package/dist/core/daemon/state.d.ts +33 -0
  32. package/dist/core/daemon/state.js +77 -0
  33. package/dist/core/daemon/state.js.map +1 -0
  34. package/dist/core/daemon/tmux-session.d.ts +17 -0
  35. package/dist/core/daemon/tmux-session.js +34 -0
  36. package/dist/core/daemon/tmux-session.js.map +1 -0
  37. package/dist/core/daemon/workspace.d.ts +10 -0
  38. package/dist/core/daemon/workspace.js +51 -0
  39. package/dist/core/daemon/workspace.js.map +1 -0
  40. package/dist/core/daemon.d.ts +0 -6
  41. package/dist/core/daemon.js +123 -244
  42. package/dist/core/daemon.js.map +1 -1
  43. package/dist/core/injector.js +6 -0
  44. package/dist/core/injector.js.map +1 -1
  45. package/dist/core/runner/build.d.ts +9 -0
  46. package/dist/core/runner/build.js +53 -0
  47. package/dist/core/runner/build.js.map +1 -0
  48. package/dist/core/runner/detect.d.ts +5 -0
  49. package/dist/core/runner/detect.js +14 -0
  50. package/dist/core/runner/detect.js.map +1 -0
  51. package/dist/core/runner/index.d.ts +5 -0
  52. package/dist/core/runner/index.js +5 -0
  53. package/dist/core/runner/index.js.map +1 -0
  54. package/dist/core/runner/model.d.ts +5 -0
  55. package/dist/core/runner/model.js +7 -0
  56. package/dist/core/runner/model.js.map +1 -0
  57. package/dist/core/runner/opencode-models.d.ts +15 -0
  58. package/dist/core/runner/opencode-models.js +70 -0
  59. package/dist/core/runner/opencode-models.js.map +1 -0
  60. package/dist/core/runner/types.d.ts +19 -0
  61. package/dist/core/runner/types.js +8 -0
  62. package/dist/core/runner/types.js.map +1 -0
  63. package/dist/core/runner.d.ts +5 -47
  64. package/dist/core/runner.js +5 -167
  65. package/dist/core/runner.js.map +1 -1
  66. package/dist/core/tmux-runtime.d.ts +13 -0
  67. package/dist/core/tmux-runtime.js +72 -0
  68. package/dist/core/tmux-runtime.js.map +1 -0
  69. package/dist/core/tmux.d.ts +7 -1
  70. package/dist/core/tmux.js +75 -45
  71. package/dist/core/tmux.js.map +1 -1
  72. package/dist/core/watchdog.d.ts +18 -1
  73. package/dist/core/watchdog.js +78 -29
  74. package/dist/core/watchdog.js.map +1 -1
  75. package/package.json +30 -11
  76. package/dist/cli/inbox.d.ts +0 -5
  77. package/dist/cli/inbox.js +0 -123
  78. package/dist/cli/inbox.js.map +0 -1
  79. package/dist/cli/issue.d.ts +0 -42
  80. package/dist/cli/issue.js +0 -297
  81. package/dist/cli/issue.js.map +0 -1
  82. package/dist/cli/ready.d.ts +0 -5
  83. package/dist/cli/ready.js +0 -131
  84. package/dist/cli/ready.js.map +0 -1
  85. package/dist/cli/sync.d.ts +0 -8
  86. package/dist/cli/sync.js +0 -154
  87. package/dist/cli/sync.js.map +0 -1
  88. package/dist/core/issue-cache.d.ts +0 -44
  89. package/dist/core/issue-cache.js +0 -75
  90. package/dist/core/issue-cache.js.map +0 -1
  91. package/src/__tests__/context.test.ts +0 -464
  92. package/src/__tests__/injector.test.ts +0 -29
  93. package/src/__tests__/jwt.test.ts +0 -112
  94. package/src/__tests__/loader.test.ts +0 -239
  95. package/src/__tests__/runner.test.ts +0 -104
  96. package/src/__tests__/sandbox.test.ts +0 -435
  97. package/src/__tests__/watchdog.test.ts +0 -368
  98. package/src/cli/attach.ts +0 -22
  99. package/src/cli/build.ts +0 -145
  100. package/src/cli/config.ts +0 -148
  101. package/src/cli/context.ts +0 -231
  102. package/src/cli/deploy.ts +0 -155
  103. package/src/cli/index.ts +0 -376
  104. package/src/cli/init.ts +0 -75
  105. package/src/cli/list.ts +0 -70
  106. package/src/cli/local.ts +0 -183
  107. package/src/cli/logs.ts +0 -64
  108. package/src/cli/migrate.ts +0 -212
  109. package/src/cli/nudge.ts +0 -81
  110. package/src/cli/restart.ts +0 -59
  111. package/src/cli/slack.ts +0 -70
  112. package/src/cli/start.ts +0 -118
  113. package/src/cli/status.ts +0 -91
  114. package/src/cli/stop.ts +0 -48
  115. package/src/cli/test.ts +0 -143
  116. package/src/cli/token.ts +0 -188
  117. package/src/cli/whoami.ts +0 -142
  118. package/src/config/loader.ts +0 -121
  119. package/src/config/schema.ts +0 -68
  120. package/src/context/handoff.ts +0 -122
  121. package/src/context/index.ts +0 -8
  122. package/src/context/schema.ts +0 -111
  123. package/src/context/storage.ts +0 -197
  124. package/src/core/daemon.ts +0 -1317
  125. package/src/core/heartbeat.ts +0 -129
  126. package/src/core/injector.ts +0 -292
  127. package/src/core/registry.ts +0 -159
  128. package/src/core/runner.ts +0 -225
  129. package/src/core/sandbox.ts +0 -547
  130. package/src/core/session-id.ts +0 -111
  131. package/src/core/tmux.ts +0 -405
  132. package/src/core/watchdog.ts +0 -238
  133. package/src/core/websocket.ts +0 -94
  134. package/src/index.ts +0 -10
  135. package/src/utils/jwt.ts +0 -87
  136. package/tsconfig.json +0 -8
  137. package/vitest.config.ts +0 -12
package/dist/cli/issue.js DELETED
@@ -1,297 +0,0 @@
1
- /**
2
- * Issue CLI Commands
3
- * Integrated issue tracking for agents
4
- */
5
- import pc from "picocolors";
6
- import { loadConfig, getAgentState } from "../config/loader.js";
7
- import { loadCache, updateCacheIssues, queueChange, } 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
- // Try agent state first
14
- const state = getAgentState(process.env.AGENT_NAME || "");
15
- if (state?.token)
16
- return state.token;
17
- // Try environment
18
- if (process.env.AGENT_TOKEN)
19
- return process.env.AGENT_TOKEN;
20
- return null;
21
- }
22
- async function getWorkspace() {
23
- const config = loadConfig();
24
- return config?.workspace || process.env.AGENTMESH_WORKSPACE || "agentmesh";
25
- }
26
- async function apiRequest(method, path, body) {
27
- const hubUrl = await getHubUrl();
28
- const token = await getToken();
29
- try {
30
- const response = await fetch(`${hubUrl}${path}`, {
31
- method,
32
- headers: {
33
- "Content-Type": "application/json",
34
- ...(token && { Authorization: `Bearer ${token}` }),
35
- },
36
- body: body ? JSON.stringify(body) : undefined,
37
- });
38
- if (!response.ok) {
39
- const error = await response.json().catch(() => ({ error: response.statusText }));
40
- return { error: error.error || response.statusText };
41
- }
42
- if (response.status === 204) {
43
- return { data: undefined };
44
- }
45
- const data = await response.json();
46
- return { data: data };
47
- }
48
- catch (err) {
49
- return { error: err.message };
50
- }
51
- }
52
- export async function createIssue(options) {
53
- const workspace = await getWorkspace();
54
- console.log(pc.cyan("Creating issue..."));
55
- const result = await apiRequest("POST", `/api/v1/workspaces/${workspace}/issues`, {
56
- title: options.title,
57
- description: options.description,
58
- type: options.type || "task",
59
- priority: options.priority || "P2",
60
- project_id: options.project,
61
- parent_issue_id: options.parent,
62
- labels: options.labels,
63
- });
64
- if (result.error) {
65
- // Queue for offline sync
66
- if (result.error.includes("fetch") || result.error.includes("network")) {
67
- console.log(pc.yellow("Offline - queuing change for later sync"));
68
- queueChange(workspace, {
69
- action: "create",
70
- data: {
71
- title: options.title,
72
- description: options.description || null,
73
- type: options.type || "task",
74
- priority: options.priority || "P2",
75
- project_id: options.project || null,
76
- parent_issue_id: options.parent || null,
77
- labels: options.labels || [],
78
- },
79
- queuedAt: new Date().toISOString(),
80
- });
81
- return;
82
- }
83
- console.error(pc.red(`Error: ${result.error}`));
84
- process.exit(1);
85
- }
86
- console.log(pc.green(`Created issue: ${result.data?.issue_id}`));
87
- }
88
- export async function listIssues(options = {}) {
89
- const workspace = await getWorkspace();
90
- const params = new URLSearchParams();
91
- if (options.status)
92
- params.set("status", options.status);
93
- if (options.type)
94
- params.set("type", options.type);
95
- if (options.priority)
96
- params.set("priority", options.priority);
97
- if (options.assignee === "me") {
98
- const state = getAgentState(process.env.AGENT_NAME || "");
99
- if (state?.agentId)
100
- params.set("assignee_agent_id", state.agentId);
101
- }
102
- else if (options.assignee) {
103
- params.set("assignee_agent_id", options.assignee);
104
- }
105
- if (options.project)
106
- params.set("project_id", options.project);
107
- if (options.limit)
108
- params.set("limit", String(options.limit));
109
- const result = await apiRequest("GET", `/api/v1/workspaces/${workspace}/issues?${params}`);
110
- if (result.error) {
111
- // Try cache
112
- if (result.error.includes("fetch") || result.error.includes("network")) {
113
- console.log(pc.yellow("Offline - showing cached issues"));
114
- const cache = loadCache(workspace);
115
- displayIssueList(cache.issues.filter((i) => {
116
- if (options.status && i.status !== options.status)
117
- return false;
118
- if (options.type && i.type !== options.type)
119
- return false;
120
- if (options.priority && i.priority !== options.priority)
121
- return false;
122
- return true;
123
- }));
124
- return;
125
- }
126
- console.error(pc.red(`Error: ${result.error}`));
127
- process.exit(1);
128
- }
129
- const issues = result.data?.issues || [];
130
- // Update cache
131
- updateCacheIssues(workspace, issues);
132
- displayIssueList(issues);
133
- }
134
- function displayIssueList(issues) {
135
- if (issues.length === 0) {
136
- console.log(pc.dim("No issues found"));
137
- return;
138
- }
139
- console.log();
140
- console.log(pc.bold(`${issues.length} issue(s)`));
141
- console.log();
142
- for (const issue of issues) {
143
- const statusColor = getStatusColor(issue.status);
144
- const priorityColor = getPriorityColor(issue.priority);
145
- console.log(`${pc.cyan(issue.issue_id)} ${statusColor(issue.status.padEnd(12))} ${priorityColor(issue.priority.padEnd(3))} ${issue.title}`);
146
- }
147
- }
148
- function getStatusColor(status) {
149
- switch (status) {
150
- case "open":
151
- return pc.yellow;
152
- case "in_progress":
153
- return pc.blue;
154
- case "review":
155
- return pc.magenta;
156
- case "closed":
157
- return pc.green;
158
- default:
159
- return pc.dim;
160
- }
161
- }
162
- function getPriorityColor(priority) {
163
- switch (priority) {
164
- case "P0":
165
- return pc.red;
166
- case "P1":
167
- return (s) => pc.yellow(pc.bold(s));
168
- case "P2":
169
- return pc.yellow;
170
- case "P3":
171
- return pc.dim;
172
- case "P4":
173
- return pc.dim;
174
- default:
175
- return pc.dim;
176
- }
177
- }
178
- export async function showIssue(issueId) {
179
- const workspace = await getWorkspace();
180
- const result = await apiRequest("GET", `/api/v1/workspaces/${workspace}/issues/${issueId}`);
181
- if (result.error) {
182
- // Try cache
183
- if (result.error.includes("fetch") || result.error.includes("network")) {
184
- console.log(pc.yellow("Offline - showing cached issue"));
185
- const cache = loadCache(workspace);
186
- const issue = cache.issues.find((i) => i.issue_id === issueId);
187
- if (!issue) {
188
- console.error(pc.red(`Issue ${issueId} not found in cache`));
189
- process.exit(1);
190
- }
191
- displayIssue(issue);
192
- return;
193
- }
194
- console.error(pc.red(`Error: ${result.error}`));
195
- process.exit(1);
196
- }
197
- displayIssue(result.data);
198
- }
199
- function displayIssue(issue) {
200
- console.log();
201
- console.log(pc.bold(pc.cyan(issue.issue_id)) + " " + issue.title);
202
- console.log();
203
- console.log(`Status: ${getStatusColor(issue.status)(issue.status)}`);
204
- console.log(`Type: ${issue.type}`);
205
- console.log(`Priority: ${getPriorityColor(issue.priority)(issue.priority)}`);
206
- if (issue.assignee_agent_id) {
207
- console.log(`Assignee: ${issue.assignee_agent_id}`);
208
- }
209
- if (issue.project_id) {
210
- console.log(`Project: ${issue.project_id}`);
211
- }
212
- if (issue.labels && issue.labels.length > 0) {
213
- console.log(`Labels: ${issue.labels.join(", ")}`);
214
- }
215
- if (issue.external_ref) {
216
- console.log(`External: ${issue.external_provider}:${issue.external_ref}`);
217
- if (issue.external_url) {
218
- console.log(`URL: ${issue.external_url}`);
219
- }
220
- }
221
- console.log();
222
- console.log(`Created: ${issue.created_at}`);
223
- console.log(`Updated: ${issue.updated_at}`);
224
- if (issue.description) {
225
- console.log();
226
- console.log(pc.dim("Description:"));
227
- console.log(issue.description);
228
- }
229
- }
230
- export async function updateIssue(issueId, options) {
231
- const workspace = await getWorkspace();
232
- console.log(pc.cyan(`Updating issue ${issueId}...`));
233
- const body = {};
234
- if (options.title)
235
- body.title = options.title;
236
- if (options.description)
237
- body.description = options.description;
238
- if (options.type)
239
- body.type = options.type;
240
- if (options.priority)
241
- body.priority = options.priority;
242
- if (options.status)
243
- body.status = options.status;
244
- if (options.project)
245
- body.project_id = options.project;
246
- if (options.assignee)
247
- body.assignee_agent_id = options.assignee;
248
- if (options.labels)
249
- body.labels = options.labels;
250
- const result = await apiRequest("PATCH", `/api/v1/workspaces/${workspace}/issues/${issueId}`, body);
251
- if (result.error) {
252
- if (result.error.includes("fetch") || result.error.includes("network")) {
253
- console.log(pc.yellow("Offline - queuing change for later sync"));
254
- queueChange(workspace, {
255
- action: "update",
256
- issueId,
257
- data: body,
258
- queuedAt: new Date().toISOString(),
259
- });
260
- return;
261
- }
262
- console.error(pc.red(`Error: ${result.error}`));
263
- process.exit(1);
264
- }
265
- console.log(pc.green(`Updated issue ${issueId}`));
266
- }
267
- export async function closeIssue(issueId) {
268
- await updateIssue(issueId, { status: "closed" });
269
- }
270
- // ============================================================================
271
- // Workflow Commands
272
- // ============================================================================
273
- export async function claimIssue(issueId) {
274
- const workspace = await getWorkspace();
275
- console.log(pc.cyan(`Claiming issue ${issueId}...`));
276
- const result = await apiRequest("POST", `/api/v1/workspaces/${workspace}/issues/${issueId}/claim`);
277
- if (result.error) {
278
- console.error(pc.red(`Error: ${result.error}`));
279
- process.exit(1);
280
- }
281
- console.log(pc.green(`Claimed issue ${issueId} - now assigned to you and in_progress`));
282
- }
283
- export async function handoffIssue(issueId, options) {
284
- const workspace = await getWorkspace();
285
- console.log(pc.cyan(`Creating handoff for issue ${issueId}...`));
286
- const result = await apiRequest("POST", `/api/v1/workspaces/${workspace}/issues/${issueId}/handoff`, {
287
- to_agent_id: options.to,
288
- reason: options.reason,
289
- });
290
- if (result.error) {
291
- console.error(pc.red(`Error: ${result.error}`));
292
- process.exit(1);
293
- }
294
- console.log(pc.green(`Created handoff ${result.data?.handoff_id}`));
295
- console.log(pc.dim("Note: Issue assignment unchanged. Target agent will see this in their inbox."));
296
- }
297
- //# sourceMappingURL=issue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"issue.js","sourceRoot":"","sources":["../../src/cli/issue.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Ready CLI Command
3
- * Shows available unassigned work
4
- */
5
- export declare function ready(): Promise<void>;
package/dist/cli/ready.js DELETED
@@ -1,131 +0,0 @@
1
- /**
2
- * Ready CLI Command
3
- * Shows available unassigned work
4
- */
5
- import pc from "picocolors";
6
- import { loadConfig, getAgentState } from "../config/loader.js";
7
- import { loadCache } 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(path) {
25
- const hubUrl = await getHubUrl();
26
- const token = await getToken();
27
- try {
28
- const response = await fetch(`${hubUrl}${path}`, {
29
- headers: {
30
- "Content-Type": "application/json",
31
- ...(token && { Authorization: `Bearer ${token}` }),
32
- },
33
- });
34
- if (!response.ok) {
35
- const error = await response.json().catch(() => ({ error: response.statusText }));
36
- return { error: error.error || response.statusText };
37
- }
38
- const data = await response.json();
39
- return { data: data };
40
- }
41
- catch (err) {
42
- return { error: err.message };
43
- }
44
- }
45
- function getPriorityColor(priority) {
46
- switch (priority) {
47
- case "P0":
48
- return pc.red;
49
- case "P1":
50
- return (s) => pc.yellow(pc.bold(s));
51
- case "P2":
52
- return pc.yellow;
53
- default:
54
- return pc.dim;
55
- }
56
- }
57
- function getTypeIcon(type) {
58
- switch (type) {
59
- case "bug":
60
- return "!";
61
- case "feature":
62
- return "+";
63
- case "task":
64
- return "-";
65
- case "epic":
66
- return "*";
67
- default:
68
- return "-";
69
- }
70
- }
71
- export async function ready() {
72
- console.log(pc.bold("Available Work"));
73
- console.log();
74
- const result = await apiRequest("/api/v1/agents/me/ready");
75
- if (result.error) {
76
- if (result.error.includes("fetch") || result.error.includes("network")) {
77
- console.log(pc.yellow("Offline - showing cached unassigned issues"));
78
- const workspace = await getWorkspace();
79
- const cache = loadCache(workspace);
80
- const unassigned = cache.issues.filter((i) => !i.assignee_agent_id && !i.assignee_user_id && i.status === "open");
81
- displayReadyWork(unassigned);
82
- return;
83
- }
84
- console.error(pc.red(`Error: ${result.error}`));
85
- process.exit(1);
86
- }
87
- displayReadyWork(result.data?.issues || []);
88
- }
89
- function displayReadyWork(issues) {
90
- if (issues.length === 0) {
91
- console.log(pc.green("No unassigned work available. All caught up!"));
92
- return;
93
- }
94
- // Group by priority
95
- const p0 = issues.filter((i) => i.priority === "P0");
96
- const p1 = issues.filter((i) => i.priority === "P1");
97
- const p2 = issues.filter((i) => i.priority === "P2");
98
- const rest = issues.filter((i) => !["P0", "P1", "P2"].includes(i.priority || ""));
99
- if (p0.length > 0) {
100
- console.log(pc.red(pc.bold("Critical (P0)")));
101
- for (const issue of p0) {
102
- console.log(` ${getTypeIcon(issue.type)} ${pc.cyan(issue.issue_id)} ${issue.title}`);
103
- }
104
- console.log();
105
- }
106
- if (p1.length > 0) {
107
- console.log(pc.yellow(pc.bold("High Priority (P1)")));
108
- for (const issue of p1) {
109
- console.log(` ${getTypeIcon(issue.type)} ${pc.cyan(issue.issue_id)} ${issue.title}`);
110
- }
111
- console.log();
112
- }
113
- if (p2.length > 0) {
114
- console.log(pc.bold("Normal Priority (P2)"));
115
- for (const issue of p2) {
116
- console.log(` ${getTypeIcon(issue.type)} ${pc.cyan(issue.issue_id)} ${issue.title}`);
117
- }
118
- console.log();
119
- }
120
- if (rest.length > 0) {
121
- console.log(pc.dim("Lower Priority"));
122
- for (const issue of rest) {
123
- console.log(` ${getTypeIcon(issue.type)} ${pc.cyan(issue.issue_id)} ${issue.title}`);
124
- }
125
- console.log();
126
- }
127
- console.log(pc.dim(`Total: ${issues.length} unassigned issue(s)`));
128
- console.log();
129
- console.log(`Claim an issue: ${pc.cyan("agentmesh issue claim <id>")}`);
130
- }
131
- //# sourceMappingURL=ready.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ready.js","sourceRoot":"","sources":["../../src/cli/ready.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Sync CLI Command
3
- * Synchronize local cache with HQ
4
- */
5
- export interface SyncOptions {
6
- force?: boolean;
7
- }
8
- export declare function sync(options?: SyncOptions): Promise<void>;
package/dist/cli/sync.js DELETED
@@ -1,154 +0,0 @@
1
- /**
2
- * Sync CLI Command
3
- * Synchronize local cache with HQ
4
- */
5
- import pc from "picocolors";
6
- import { loadConfig, getAgentState } from "../config/loader.js";
7
- import { loadCache, saveCache, hasPendingChanges, getLastSyncTime, } 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
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/cli/sync.ts"],"names":[],"mappings":"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"}