@agentmeshhq/agent 0.3.0 → 0.4.0

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 (49) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +6 -0
  3. package/dist/__tests__/context-template.test.js +2 -0
  4. package/dist/__tests__/context-template.test.js.map +1 -1
  5. package/dist/__tests__/default-branch-fallback.test.d.ts +10 -0
  6. package/dist/__tests__/default-branch-fallback.test.js +123 -0
  7. package/dist/__tests__/default-branch-fallback.test.js.map +1 -0
  8. package/dist/__tests__/default-repo-fallback.test.d.ts +12 -0
  9. package/dist/__tests__/default-repo-fallback.test.js +156 -0
  10. package/dist/__tests__/default-repo-fallback.test.js.map +1 -0
  11. package/dist/__tests__/onboard.test.js +2 -0
  12. package/dist/__tests__/onboard.test.js.map +1 -1
  13. package/dist/__tests__/project-flag.test.d.ts +9 -0
  14. package/dist/__tests__/project-flag.test.js +140 -0
  15. package/dist/__tests__/project-flag.test.js.map +1 -0
  16. package/dist/cli/index.js +6 -0
  17. package/dist/cli/index.js.map +1 -1
  18. package/dist/cli/start.d.ts +4 -0
  19. package/dist/cli/start.js +6 -0
  20. package/dist/cli/start.js.map +1 -1
  21. package/dist/core/daemon/bootstrap.d.ts +4 -0
  22. package/dist/core/daemon/bootstrap.js +2 -0
  23. package/dist/core/daemon/bootstrap.js.map +1 -1
  24. package/dist/core/daemon/git-auth.js +6 -0
  25. package/dist/core/daemon/git-auth.js.map +1 -1
  26. package/dist/core/daemon.d.ts +10 -0
  27. package/dist/core/daemon.js +137 -20
  28. package/dist/core/daemon.js.map +1 -1
  29. package/dist/core/registry.d.ts +35 -0
  30. package/dist/core/registry.js +41 -0
  31. package/dist/core/registry.js.map +1 -1
  32. package/dist/core/tmux-runtime.js +4 -0
  33. package/dist/core/tmux-runtime.js.map +1 -1
  34. package/package.json +11 -12
  35. package/dist/cli/inbox.d.ts +0 -5
  36. package/dist/cli/inbox.js +0 -123
  37. package/dist/cli/inbox.js.map +0 -1
  38. package/dist/cli/issue.d.ts +0 -42
  39. package/dist/cli/issue.js +0 -297
  40. package/dist/cli/issue.js.map +0 -1
  41. package/dist/cli/ready.d.ts +0 -5
  42. package/dist/cli/ready.js +0 -131
  43. package/dist/cli/ready.js.map +0 -1
  44. package/dist/cli/sync.d.ts +0 -8
  45. package/dist/cli/sync.js +0 -154
  46. package/dist/cli/sync.js.map +0 -1
  47. package/dist/core/issue-cache.d.ts +0 -44
  48. package/dist/core/issue-cache.js +0 -75
  49. package/dist/core/issue-cache.js.map +0 -1
@@ -43,6 +43,8 @@ export interface ProjectAssignment {
43
43
  code: string;
44
44
  description: string | null;
45
45
  workdir: string | null;
46
+ default_branch: string | null;
47
+ default_repo_id: string | null;
46
48
  };
47
49
  repo: {
48
50
  repo_id: string;
@@ -97,6 +99,8 @@ export interface OnboardData {
97
99
  code: string;
98
100
  description: string | null;
99
101
  workdir: string | null;
102
+ default_branch: string | null;
103
+ default_repo_id: string | null;
100
104
  instructions: string | null;
101
105
  workflow_config: OnboardWorkflowConfig;
102
106
  } | null;
@@ -114,6 +118,37 @@ export interface OnboardData {
114
118
  * Fetch the full onboard payload from HQ
115
119
  */
116
120
  export declare function fetchOnboard(url: string, token: string): Promise<OnboardData | null>;
121
+ export interface ProjectLookupResult {
122
+ project: {
123
+ project_id: string;
124
+ name: string;
125
+ code: string;
126
+ description: string | null;
127
+ workdir: string | null;
128
+ default_branch: string | null;
129
+ };
130
+ repo: {
131
+ repo_id: string;
132
+ provider: string;
133
+ full_name: string;
134
+ url: string;
135
+ default_branch: string | null;
136
+ } | null;
137
+ }
138
+ /**
139
+ * Fetch project info by code from HQ
140
+ */
141
+ export declare function fetchProjectByCode(url: string, token: string, code: string): Promise<ProjectLookupResult | null>;
142
+ export interface CreateAssignmentParams {
143
+ workspace_id: string;
144
+ project_id: string;
145
+ agent_id: string;
146
+ role: string;
147
+ }
148
+ /**
149
+ * Create an assignment for the current agent (auto-assign to project)
150
+ */
151
+ export declare function createSelfAssignment(url: string, token: string, params: CreateAssignmentParams): Promise<string>;
117
152
  /**
118
153
  * Fetch the agent's project assignments from HQ
119
154
  */
@@ -74,6 +74,47 @@ export async function fetchOnboard(url, token) {
74
74
  const data = (await response.json());
75
75
  return data.data || null;
76
76
  }
77
+ /**
78
+ * Fetch project info by code from HQ
79
+ */
80
+ export async function fetchProjectByCode(url, token, code) {
81
+ const response = await fetch(`${url}/api/v1/agents/me/project-by-code/${encodeURIComponent(code)}`, {
82
+ headers: {
83
+ Authorization: `Bearer ${token}`,
84
+ },
85
+ });
86
+ if (!response.ok) {
87
+ if (response.status === 404) {
88
+ return null;
89
+ }
90
+ throw new Error(`Failed to fetch project by code: ${response.status}`);
91
+ }
92
+ const data = (await response.json());
93
+ return data.data || null;
94
+ }
95
+ /**
96
+ * Create an assignment for the current agent (auto-assign to project)
97
+ */
98
+ export async function createSelfAssignment(url, token, params) {
99
+ const response = await fetch(`${url}/api/v1/assignments`, {
100
+ method: "POST",
101
+ headers: {
102
+ Authorization: `Bearer ${token}`,
103
+ "Content-Type": "application/json",
104
+ },
105
+ body: JSON.stringify(params),
106
+ });
107
+ if (!response.ok) {
108
+ if (response.status === 409) {
109
+ // Already assigned — not an error
110
+ return "existing";
111
+ }
112
+ const error = await response.text();
113
+ throw new Error(`Failed to create assignment: ${error}`);
114
+ }
115
+ const data = (await response.json());
116
+ return data.assignment_id;
117
+ }
77
118
  /**
78
119
  * Fetch the agent's project assignments from HQ
79
120
  */
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"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"}
@@ -60,6 +60,10 @@ export function buildInteractiveCommand(command, env, opencodeSessionId) {
60
60
  !command.includes("-m ")) {
61
61
  finalCommand = `${command} --model ${env.CODEX_MODEL}`;
62
62
  }
63
+ // Codex requires --full-auto to skip the interactive directory trust prompt
64
+ if (kind === "codex" && !finalCommand.includes("--full-auto")) {
65
+ finalCommand = `${finalCommand} --full-auto`;
66
+ }
63
67
  if (kind === "opencode" &&
64
68
  opencodeSessionId &&
65
69
  !finalCommand.includes("--session") &&
@@ -1 +1 @@
1
- {"version":3,"file":"tmux-runtime.js","sourceRoot":"","sources":["../../src/core/tmux-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tmux-runtime.js","sourceRoot":"","sources":["../../src/core/tmux-runtime.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentmeshhq/agent",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "AgentMesh Agent Wrapper - Turn any AI coding assistant into a dispatchable, nudge-able agent",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -16,15 +16,6 @@
16
16
  "access": "public",
17
17
  "registry": "https://registry.npmjs.org/"
18
18
  },
19
- "scripts": {
20
- "dev": "tsx watch src/cli/index.ts",
21
- "build": "tsc -p tsconfig.json",
22
- "lint": "biome check src",
23
- "start": "node dist/cli/index.js",
24
- "test": "vitest run",
25
- "test:watch": "vitest",
26
- "prepublishOnly": "pnpm build && pnpm test"
27
- },
28
19
  "dependencies": {
29
20
  "commander": "^12.0.0",
30
21
  "picocolors": "^1.0.0",
@@ -53,5 +44,13 @@
53
44
  "url": "https://github.com/therajushahi/agentmesh.git",
54
45
  "directory": "packages/agent"
55
46
  },
56
- "homepage": "https://agentmeshhq.dev"
57
- }
47
+ "homepage": "https://agentmeshhq.dev",
48
+ "scripts": {
49
+ "dev": "tsx watch src/cli/index.ts",
50
+ "build": "tsc -p tsconfig.json",
51
+ "lint": "biome check src",
52
+ "start": "node dist/cli/index.js",
53
+ "test": "vitest run",
54
+ "test:watch": "vitest"
55
+ }
56
+ }
@@ -1,5 +0,0 @@
1
- /**
2
- * Inbox CLI Command
3
- * Shows agent's assigned issues and pending handoffs
4
- */
5
- export declare function inbox(): Promise<void>;
package/dist/cli/inbox.js DELETED
@@ -1,123 +0,0 @@
1
- /**
2
- * Inbox CLI Command
3
- * Shows agent's assigned issues and pending handoffs
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 getStatusColor(status) {
46
- switch (status) {
47
- case "open":
48
- return pc.yellow;
49
- case "in_progress":
50
- return pc.blue;
51
- case "review":
52
- return pc.magenta;
53
- case "closed":
54
- return pc.green;
55
- default:
56
- return pc.dim;
57
- }
58
- }
59
- function getPriorityColor(priority) {
60
- switch (priority) {
61
- case "P0":
62
- return pc.red;
63
- case "P1":
64
- return (s) => pc.yellow(pc.bold(s));
65
- case "P2":
66
- return pc.yellow;
67
- default:
68
- return pc.dim;
69
- }
70
- }
71
- export async function inbox() {
72
- console.log(pc.bold("Your Inbox"));
73
- console.log();
74
- // Fetch issues assigned to me
75
- const issuesResult = await apiRequest("/api/v1/agents/me/inbox");
76
- if (issuesResult.error) {
77
- if (issuesResult.error.includes("fetch") || issuesResult.error.includes("network")) {
78
- console.log(pc.yellow("Offline - showing cached assigned issues"));
79
- const workspace = await getWorkspace();
80
- const cache = loadCache(workspace);
81
- const state = getAgentState(process.env.AGENT_NAME || "");
82
- const myIssues = cache.issues.filter((i) => i.assignee_agent_id === state?.agentId && i.status !== "closed");
83
- displayInbox(myIssues);
84
- return;
85
- }
86
- console.error(pc.red(`Error fetching inbox: ${issuesResult.error}`));
87
- process.exit(1);
88
- }
89
- displayInbox(issuesResult.data?.issues || []);
90
- }
91
- function displayInbox(issues) {
92
- if (issues.length === 0) {
93
- console.log(pc.dim("No assigned issues. Use 'agentmesh ready' to find available work."));
94
- return;
95
- }
96
- // Group by status
97
- const inProgress = issues.filter((i) => i.status === "in_progress");
98
- const review = issues.filter((i) => i.status === "review");
99
- const open = issues.filter((i) => i.status === "open");
100
- if (inProgress.length > 0) {
101
- console.log(pc.blue(pc.bold("In Progress")));
102
- for (const issue of inProgress) {
103
- console.log(` ${pc.cyan(issue.issue_id)} ${getPriorityColor(issue.priority)(issue.priority)} ${issue.title}`);
104
- }
105
- console.log();
106
- }
107
- if (review.length > 0) {
108
- console.log(pc.magenta(pc.bold("In Review")));
109
- for (const issue of review) {
110
- console.log(` ${pc.cyan(issue.issue_id)} ${getPriorityColor(issue.priority)(issue.priority)} ${issue.title}`);
111
- }
112
- console.log();
113
- }
114
- if (open.length > 0) {
115
- console.log(pc.yellow(pc.bold("Open")));
116
- for (const issue of open) {
117
- console.log(` ${pc.cyan(issue.issue_id)} ${getPriorityColor(issue.priority)(issue.priority)} ${issue.title}`);
118
- }
119
- console.log();
120
- }
121
- console.log(pc.dim(`Total: ${issues.length} issue(s) assigned to you`));
122
- }
123
- //# sourceMappingURL=inbox.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inbox.js","sourceRoot":"","sources":["../../src/cli/inbox.ts"],"names":[],"mappings":"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"}
@@ -1,42 +0,0 @@
1
- /**
2
- * Issue CLI Commands
3
- * Integrated issue tracking for agents
4
- */
5
- export interface CreateIssueOptions {
6
- title: string;
7
- description?: string;
8
- type?: string;
9
- priority?: string;
10
- project?: string;
11
- parent?: string;
12
- labels?: string[];
13
- }
14
- export declare function createIssue(options: CreateIssueOptions): Promise<void>;
15
- export interface ListIssuesOptions {
16
- status?: string;
17
- type?: string;
18
- priority?: string;
19
- assignee?: string;
20
- project?: string;
21
- limit?: number;
22
- }
23
- export declare function listIssues(options?: ListIssuesOptions): Promise<void>;
24
- export declare function showIssue(issueId: string): Promise<void>;
25
- export interface UpdateIssueOptions {
26
- title?: string;
27
- description?: string;
28
- type?: string;
29
- priority?: string;
30
- status?: string;
31
- project?: string;
32
- assignee?: string;
33
- labels?: string[];
34
- }
35
- export declare function updateIssue(issueId: string, options: UpdateIssueOptions): Promise<void>;
36
- export declare function closeIssue(issueId: string): Promise<void>;
37
- export declare function claimIssue(issueId: string): Promise<void>;
38
- export interface HandoffOptions {
39
- to: string;
40
- reason?: string;
41
- }
42
- export declare function handoffIssue(issueId: string, options: HandoffOptions): Promise<void>;
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