@agentmeshhq/agent 0.1.9 → 0.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/index.js +3 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/list.js +18 -6
- package/dist/cli/list.js.map +1 -1
- package/dist/cli/restart.d.ts +2 -3
- package/dist/cli/restart.js +11 -5
- package/dist/cli/restart.js.map +1 -1
- package/dist/cli/start.d.ts +1 -0
- package/dist/cli/start.js +3 -0
- package/dist/cli/start.js.map +1 -1
- package/dist/cli/status.js +7 -4
- package/dist/cli/status.js.map +1 -1
- package/dist/cli/whoami.js +18 -10
- package/dist/cli/whoami.js.map +1 -1
- package/dist/config/schema.d.ts +2 -0
- package/dist/core/daemon.d.ts +14 -4
- package/dist/core/daemon.js +163 -56
- package/dist/core/daemon.js.map +1 -1
- package/dist/core/registry.d.ts +26 -0
- package/dist/core/registry.js +18 -0
- package/dist/core/registry.js.map +1 -1
- package/dist/core/tmux.js +3 -3
- package/dist/core/tmux.js.map +1 -1
- package/package.json +11 -11
- package/src/cli/index.ts +3 -2
- package/src/cli/list.ts +18 -6
- package/src/cli/restart.ts +12 -10
- package/src/cli/start.ts +3 -0
- package/src/cli/status.ts +8 -5
- package/src/cli/whoami.ts +24 -13
- package/src/config/schema.ts +2 -0
- package/src/core/daemon.ts +212 -66
- package/src/core/registry.ts +57 -16
- package/src/core/tmux.ts +3 -3
- package/LICENSE +0 -21
package/dist/core/daemon.js
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { execSync } from "node:child_process";
|
|
2
|
+
import fs from "node:fs";
|
|
3
|
+
import os from "node:os";
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
import { addAgentToState, getAgentState, loadConfig, removeAgentFromState, updateAgentInState, } from "../config/loader.js";
|
|
2
6
|
import { loadContext, loadOrCreateContext, saveContext } from "../context/index.js";
|
|
3
7
|
import { Heartbeat } from "./heartbeat.js";
|
|
4
8
|
import { handleWebSocketEvent, injectRestoredContext, injectStartupMessage } from "./injector.js";
|
|
5
|
-
import { checkInbox, registerAgent } from "./registry.js";
|
|
6
|
-
import { buildRunnerConfig, getRunnerDisplayName } from "./runner.js";
|
|
9
|
+
import { checkInbox, fetchAssignments, registerAgent } from "./registry.js";
|
|
10
|
+
import { buildRunnerConfig, getRunnerDisplayName, } from "./runner.js";
|
|
7
11
|
import { captureSessionContext, createSession, destroySession, getSessionName, sessionExists, updateSessionEnvironment, } from "./tmux.js";
|
|
8
12
|
import { AgentWebSocket } from "./websocket.js";
|
|
9
13
|
export class AgentDaemon {
|
|
@@ -16,7 +20,9 @@ export class AgentDaemon {
|
|
|
16
20
|
token = null;
|
|
17
21
|
agentId = null;
|
|
18
22
|
isRunning = false;
|
|
23
|
+
assignedProject;
|
|
19
24
|
shouldRestoreContext;
|
|
25
|
+
autoSetup;
|
|
20
26
|
constructor(options) {
|
|
21
27
|
const config = loadConfig();
|
|
22
28
|
if (!config) {
|
|
@@ -25,6 +31,7 @@ export class AgentDaemon {
|
|
|
25
31
|
this.config = config;
|
|
26
32
|
this.agentName = options.name;
|
|
27
33
|
this.shouldRestoreContext = options.restoreContext !== false;
|
|
34
|
+
this.autoSetup = options.autoSetup === true;
|
|
28
35
|
// Find or create agent config
|
|
29
36
|
let agentConfig = config.agents.find((a) => a.name === options.name);
|
|
30
37
|
if (!agentConfig) {
|
|
@@ -53,41 +60,6 @@ export class AgentDaemon {
|
|
|
53
60
|
const runnerName = getRunnerDisplayName(this.runnerConfig.type);
|
|
54
61
|
console.log(`Runner: ${runnerName}`);
|
|
55
62
|
console.log(`Effective model: ${this.runnerConfig.model}`);
|
|
56
|
-
// Check workdir conflicts - prevent multiple agents from using same directory
|
|
57
|
-
this.checkWorkdirConflict(agentConfig.workdir);
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Checks if another agent is already using the specified workdir
|
|
61
|
-
*/
|
|
62
|
-
checkWorkdirConflict(workdir) {
|
|
63
|
-
if (!workdir)
|
|
64
|
-
return;
|
|
65
|
-
const state = loadState();
|
|
66
|
-
const conflictingAgent = state.agents.find((a) => {
|
|
67
|
-
// Skip self
|
|
68
|
-
if (a.name === this.agentName)
|
|
69
|
-
return false;
|
|
70
|
-
// Check if agent is actually running
|
|
71
|
-
if (!a.pid)
|
|
72
|
-
return false;
|
|
73
|
-
try {
|
|
74
|
-
process.kill(a.pid, 0); // Check if process exists
|
|
75
|
-
}
|
|
76
|
-
catch {
|
|
77
|
-
return false; // Process not running
|
|
78
|
-
}
|
|
79
|
-
// Check if session exists and has same workdir
|
|
80
|
-
// We need to check the config for this agent's workdir
|
|
81
|
-
const otherAgentConfig = this.config.agents.find((c) => c.name === a.name);
|
|
82
|
-
if (otherAgentConfig?.workdir === workdir) {
|
|
83
|
-
return true;
|
|
84
|
-
}
|
|
85
|
-
return false;
|
|
86
|
-
});
|
|
87
|
-
if (conflictingAgent) {
|
|
88
|
-
throw new Error(`Workdir conflict: Agent "${conflictingAgent.name}" is already using "${workdir}".\n` +
|
|
89
|
-
`Use a different --workdir or stop the other agent first.`);
|
|
90
|
-
}
|
|
91
63
|
}
|
|
92
64
|
async start() {
|
|
93
65
|
if (this.isRunning) {
|
|
@@ -95,12 +67,29 @@ export class AgentDaemon {
|
|
|
95
67
|
return;
|
|
96
68
|
}
|
|
97
69
|
console.log(`Starting agent: ${this.agentName}`);
|
|
70
|
+
// Register with hub first (needed for assignment check)
|
|
71
|
+
console.log("Registering with AgentMesh hub...");
|
|
72
|
+
const existingState = getAgentState(this.agentName);
|
|
73
|
+
const registration = await registerAgent({
|
|
74
|
+
url: this.config.hubUrl,
|
|
75
|
+
apiKey: this.config.apiKey,
|
|
76
|
+
workspace: this.config.workspace,
|
|
77
|
+
agentId: existingState?.agentId || this.agentConfig.agentId,
|
|
78
|
+
agentName: this.agentName,
|
|
79
|
+
model: this.agentConfig.model || this.config.defaults.model,
|
|
80
|
+
});
|
|
81
|
+
this.agentId = registration.agentId;
|
|
82
|
+
this.token = registration.token;
|
|
83
|
+
console.log(`Registered as: ${this.agentId}`);
|
|
84
|
+
// Check assignments and auto-setup workdir if needed (before creating tmux session)
|
|
85
|
+
await this.checkAssignments();
|
|
98
86
|
// Check if session already exists
|
|
99
87
|
const sessionName = getSessionName(this.agentName);
|
|
100
88
|
const sessionAlreadyExists = sessionExists(sessionName);
|
|
101
89
|
// Create tmux session if it doesn't exist
|
|
102
90
|
if (!sessionAlreadyExists) {
|
|
103
91
|
console.log(`Creating tmux session: ${sessionName}`);
|
|
92
|
+
// Include runner env vars (e.g., OPENCODE_MODEL) at session creation
|
|
104
93
|
const created = createSession(this.agentName, this.agentConfig.command, this.agentConfig.workdir, this.runnerConfig.env);
|
|
105
94
|
if (!created) {
|
|
106
95
|
throw new Error("Failed to create tmux session");
|
|
@@ -109,31 +98,15 @@ export class AgentDaemon {
|
|
|
109
98
|
else {
|
|
110
99
|
console.log(`Reconnecting to existing session: ${sessionName}`);
|
|
111
100
|
// Update environment for existing session
|
|
112
|
-
|
|
113
|
-
updateSessionEnvironment(this.agentName, this.runnerConfig.env);
|
|
114
|
-
}
|
|
101
|
+
updateSessionEnvironment(this.agentName, this.runnerConfig.env);
|
|
115
102
|
}
|
|
116
|
-
// Register with hub
|
|
117
|
-
console.log("Registering with AgentMesh hub...");
|
|
118
|
-
const existingState = getAgentState(this.agentName);
|
|
119
|
-
const registration = await registerAgent({
|
|
120
|
-
url: this.config.hubUrl,
|
|
121
|
-
apiKey: this.config.apiKey,
|
|
122
|
-
workspace: this.config.workspace,
|
|
123
|
-
agentId: existingState?.agentId || this.agentConfig.agentId,
|
|
124
|
-
agentName: this.agentName,
|
|
125
|
-
model: this.agentConfig.model || this.config.defaults.model,
|
|
126
|
-
});
|
|
127
|
-
this.agentId = registration.agentId;
|
|
128
|
-
this.token = registration.token;
|
|
129
|
-
console.log(`Registered as: ${this.agentId}`);
|
|
130
103
|
// Inject environment variables into tmux session
|
|
131
104
|
console.log("Injecting environment variables...");
|
|
132
105
|
updateSessionEnvironment(this.agentName, {
|
|
133
106
|
AGENT_TOKEN: this.token,
|
|
134
107
|
AGENTMESH_AGENT_ID: this.agentId,
|
|
135
108
|
});
|
|
136
|
-
// Save state
|
|
109
|
+
// Save state including runtime model info
|
|
137
110
|
addAgentToState({
|
|
138
111
|
name: this.agentName,
|
|
139
112
|
agentId: this.agentId,
|
|
@@ -141,6 +114,8 @@ export class AgentDaemon {
|
|
|
141
114
|
tmuxSession: sessionName,
|
|
142
115
|
startedAt: new Date().toISOString(),
|
|
143
116
|
token: this.token,
|
|
117
|
+
workdir: this.agentConfig.workdir,
|
|
118
|
+
assignedProject: this.assignedProject,
|
|
144
119
|
runtimeModel: this.runnerConfig.model,
|
|
145
120
|
runnerType: this.runnerConfig.type,
|
|
146
121
|
});
|
|
@@ -308,5 +283,137 @@ Nudge agent:
|
|
|
308
283
|
console.error("Failed to save agent context:", error);
|
|
309
284
|
}
|
|
310
285
|
}
|
|
286
|
+
/**
|
|
287
|
+
* Fetches assignments from HQ and validates workdir setup
|
|
288
|
+
* Uses project.workdir from HQ as source of truth, falls back to helpful instructions
|
|
289
|
+
*/
|
|
290
|
+
async checkAssignments() {
|
|
291
|
+
if (!this.token)
|
|
292
|
+
return;
|
|
293
|
+
try {
|
|
294
|
+
console.log("Fetching project assignments from HQ...");
|
|
295
|
+
const assignments = await fetchAssignments(this.config.hubUrl, this.token);
|
|
296
|
+
if (assignments.length === 0) {
|
|
297
|
+
console.log("No project assignments found.");
|
|
298
|
+
return;
|
|
299
|
+
}
|
|
300
|
+
console.log(`Found ${assignments.length} assignment(s):`);
|
|
301
|
+
for (const assignment of assignments) {
|
|
302
|
+
const repoInfo = assignment.repo ? ` -> ${assignment.repo.full_name}` : "";
|
|
303
|
+
const workdirInfo = assignment.project.workdir ? ` [${assignment.project.workdir}]` : "";
|
|
304
|
+
console.log(` - ${assignment.project.name} (${assignment.role})${repoInfo}${workdirInfo}`);
|
|
305
|
+
}
|
|
306
|
+
this.assignedProject = assignments[0]?.project.name;
|
|
307
|
+
// If no CLI workdir specified, try to use project.workdir from HQ
|
|
308
|
+
if (!this.agentConfig.workdir) {
|
|
309
|
+
const assignmentWithWorkdir = assignments.find((a) => a.project.workdir);
|
|
310
|
+
if (assignmentWithWorkdir?.project.workdir) {
|
|
311
|
+
console.log(`Using workdir from project settings: ${assignmentWithWorkdir.project.workdir}`);
|
|
312
|
+
this.agentConfig.workdir = assignmentWithWorkdir.project.workdir;
|
|
313
|
+
return;
|
|
314
|
+
}
|
|
315
|
+
// No project.workdir set, check if we have a repo assignment
|
|
316
|
+
const repoAssignment = assignments.find((a) => a.repo !== null);
|
|
317
|
+
if (repoAssignment) {
|
|
318
|
+
const repo = repoAssignment.repo;
|
|
319
|
+
const expandedPath = path.join(os.homedir(), ".agentmesh", "workspaces", this.config.workspace, repoAssignment.project.code.toLowerCase(), this.agentName);
|
|
320
|
+
const suggestedPath = `~/.agentmesh/workspaces/${this.config.workspace}/${repoAssignment.project.code.toLowerCase()}/${this.agentName}`;
|
|
321
|
+
// If --auto-setup is enabled, automatically clone the repo
|
|
322
|
+
if (this.autoSetup) {
|
|
323
|
+
this.agentConfig.workdir = this.setupWorkspace(expandedPath, repo.url, repo.default_branch, repoAssignment.project.name);
|
|
324
|
+
return;
|
|
325
|
+
}
|
|
326
|
+
console.error(`
|
|
327
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
328
|
+
⚠️ WORKDIR REQUIRED
|
|
329
|
+
|
|
330
|
+
You have a project assignment with a repository, but no workdir is configured.
|
|
331
|
+
|
|
332
|
+
Project: ${repoAssignment.project.name}
|
|
333
|
+
Repo: ${repo.full_name}
|
|
334
|
+
Branch: ${repo.default_branch}
|
|
335
|
+
|
|
336
|
+
Option 1: Set workdir in project settings (recommended)
|
|
337
|
+
- Go to AgentMesh HQ → Projects → ${repoAssignment.project.name} → Settings
|
|
338
|
+
- Set the workdir field to the local path
|
|
339
|
+
|
|
340
|
+
Option 2: Set up workspace manually and pass --workdir:
|
|
341
|
+
|
|
342
|
+
mkdir -p ${suggestedPath}
|
|
343
|
+
git clone ${repo.url} ${suggestedPath}
|
|
344
|
+
cd ${suggestedPath} && git checkout ${repo.default_branch}
|
|
345
|
+
|
|
346
|
+
Then start the agent with:
|
|
347
|
+
|
|
348
|
+
agentmesh start -n ${this.agentName} --workdir ${suggestedPath}
|
|
349
|
+
|
|
350
|
+
Option 3: Use --auto-setup to automatically clone the repository:
|
|
351
|
+
|
|
352
|
+
agentmesh start -n ${this.agentName} --auto-setup
|
|
353
|
+
|
|
354
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
355
|
+
`);
|
|
356
|
+
// No session to clean up - we haven't created it yet
|
|
357
|
+
process.exit(1);
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
catch (error) {
|
|
362
|
+
// Non-fatal: log and continue (HQ might not have assignments feature yet)
|
|
363
|
+
console.log("Could not fetch assignments:", error.message);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* Sets up workspace by cloning repository or using existing clone
|
|
368
|
+
* Returns the absolute path to the workspace
|
|
369
|
+
*/
|
|
370
|
+
setupWorkspace(workspacePath, repoUrl, defaultBranch, projectName) {
|
|
371
|
+
console.log(`\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`);
|
|
372
|
+
console.log(`🔧 AUTO-SETUP: Setting up workspace for ${projectName}`);
|
|
373
|
+
console.log(`━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n`);
|
|
374
|
+
// Check if directory already exists and is a git repo
|
|
375
|
+
const gitDir = path.join(workspacePath, ".git");
|
|
376
|
+
if (fs.existsSync(gitDir)) {
|
|
377
|
+
console.log(`✓ Workspace already exists: ${workspacePath}`);
|
|
378
|
+
console.log(` Updating from remote...`);
|
|
379
|
+
try {
|
|
380
|
+
// Fetch and checkout the branch
|
|
381
|
+
execSync(`git fetch origin`, { cwd: workspacePath, stdio: "inherit" });
|
|
382
|
+
execSync(`git checkout ${defaultBranch}`, { cwd: workspacePath, stdio: "inherit" });
|
|
383
|
+
execSync(`git pull origin ${defaultBranch}`, { cwd: workspacePath, stdio: "inherit" });
|
|
384
|
+
console.log(`✓ Workspace updated successfully\n`);
|
|
385
|
+
}
|
|
386
|
+
catch (error) {
|
|
387
|
+
console.warn(`⚠ Could not update workspace: ${error.message}`);
|
|
388
|
+
console.log(` Continuing with existing state...\n`);
|
|
389
|
+
}
|
|
390
|
+
return workspacePath;
|
|
391
|
+
}
|
|
392
|
+
// Create parent directories
|
|
393
|
+
const parentDir = path.dirname(workspacePath);
|
|
394
|
+
if (!fs.existsSync(parentDir)) {
|
|
395
|
+
console.log(`Creating directory: ${parentDir}`);
|
|
396
|
+
fs.mkdirSync(parentDir, { recursive: true });
|
|
397
|
+
}
|
|
398
|
+
// Clone the repository
|
|
399
|
+
console.log(`Cloning repository...`);
|
|
400
|
+
console.log(` URL: ${repoUrl}`);
|
|
401
|
+
console.log(` Path: ${workspacePath}`);
|
|
402
|
+
console.log(` Branch: ${defaultBranch}\n`);
|
|
403
|
+
try {
|
|
404
|
+
execSync(`git clone --branch ${defaultBranch} "${repoUrl}" "${workspacePath}"`, {
|
|
405
|
+
stdio: "inherit",
|
|
406
|
+
});
|
|
407
|
+
console.log(`\n✓ Repository cloned successfully`);
|
|
408
|
+
}
|
|
409
|
+
catch (error) {
|
|
410
|
+
console.error(`\n✗ Failed to clone repository: ${error.message}`);
|
|
411
|
+
console.error(`\nMake sure you have access to the repository and SSH keys are configured.`);
|
|
412
|
+
// No session to clean up - we haven't created it yet
|
|
413
|
+
process.exit(1);
|
|
414
|
+
}
|
|
415
|
+
console.log(`✓ Workspace ready: ${workspacePath}\n`);
|
|
416
|
+
return workspacePath;
|
|
417
|
+
}
|
|
311
418
|
}
|
|
312
419
|
//# sourceMappingURL=daemon.js.map
|
package/dist/core/daemon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/core/daemon.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/core/daemon.ts"],"names":[],"mappings":"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"}
|
package/dist/core/registry.d.ts
CHANGED
|
@@ -25,3 +25,29 @@ export interface InboxItem {
|
|
|
25
25
|
export declare function registerAgent(options: RegisterOptions): Promise<RegisterResult>;
|
|
26
26
|
export declare function checkInbox(url: string, workspace: string, token: string): Promise<InboxItem[]>;
|
|
27
27
|
export declare function sendNudge(url: string, agentId: string, message: string, token: string): Promise<boolean>;
|
|
28
|
+
export interface ProjectAssignment {
|
|
29
|
+
assignment_id: string;
|
|
30
|
+
role: string;
|
|
31
|
+
status: string;
|
|
32
|
+
notes: string | null;
|
|
33
|
+
priority: number;
|
|
34
|
+
created_at: string;
|
|
35
|
+
project: {
|
|
36
|
+
project_id: string;
|
|
37
|
+
name: string;
|
|
38
|
+
code: string;
|
|
39
|
+
description: string | null;
|
|
40
|
+
workdir: string | null;
|
|
41
|
+
};
|
|
42
|
+
repo: {
|
|
43
|
+
repo_id: string;
|
|
44
|
+
provider: string;
|
|
45
|
+
full_name: string;
|
|
46
|
+
url: string;
|
|
47
|
+
default_branch: string;
|
|
48
|
+
} | null;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Fetch the agent's project assignments from HQ
|
|
52
|
+
*/
|
|
53
|
+
export declare function fetchAssignments(url: string, token: string): Promise<ProjectAssignment[]>;
|
package/dist/core/registry.js
CHANGED
|
@@ -49,4 +49,22 @@ export async function sendNudge(url, agentId, message, token) {
|
|
|
49
49
|
});
|
|
50
50
|
return response.ok;
|
|
51
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Fetch the agent's project assignments from HQ
|
|
54
|
+
*/
|
|
55
|
+
export async function fetchAssignments(url, token) {
|
|
56
|
+
const response = await fetch(`${url}/api/v1/agents/me/assignments`, {
|
|
57
|
+
headers: {
|
|
58
|
+
Authorization: `Bearer ${token}`,
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
if (!response.ok) {
|
|
62
|
+
if (response.status === 404) {
|
|
63
|
+
return []; // No assignments
|
|
64
|
+
}
|
|
65
|
+
throw new Error(`Failed to fetch assignments: ${response.status}`);
|
|
66
|
+
}
|
|
67
|
+
const data = (await response.json());
|
|
68
|
+
return data.data || [];
|
|
69
|
+
}
|
|
52
70
|
//# sourceMappingURL=registry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AA6BzC,MAAM,CAAC,KAAK,UAAU,aAAa,
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AA6BzC,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAwB;IAC1D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,UAAU,EAAE,CAAC;IAEhD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,CAAC,GAAG,yBAAyB,EAAE;QACpE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,oBAAoB,EAAE,OAAO,CAAC,MAAM;YACpC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,QAAQ,EAAE,OAAO;YACjB,YAAY,EAAE,OAAO,CAAC,SAAS;YAC/B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC;YACvE,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC;KACH,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;IAE7C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,GAAW,EACX,SAAiB,EACjB,KAAa;IAEb,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,GAAG,sBAAsB,SAAS,QAAQ,EAAE;QAC1E,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,KAAK,EAAE;SACjC;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,GAAW,EACX,OAAe,EACf,OAAe,EACf,KAAa;IAEb,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,GAAG,kBAAkB,OAAO,QAAQ,EAAE;QACpE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,KAAK,EAAE;YAChC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;KAClC,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC,EAAE,CAAC;AACrB,CAAC;AA6BD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAW,EAAE,KAAa;IAC/D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,GAAG,+BAA+B,EAAE;QAClE,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,KAAK,EAAE;SACjC;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC,CAAC,iBAAiB;QAC9B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,gCAAgC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAkC,CAAC;IACtE,OAAO,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;AACzB,CAAC"}
|
package/dist/core/tmux.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { execSync, spawn } from "node:child_process";
|
|
1
|
+
import { execFileSync, execSync, spawn } from "node:child_process";
|
|
2
2
|
const SESSION_PREFIX = "agentmesh-";
|
|
3
3
|
export function getSessionName(agentName) {
|
|
4
4
|
return `${SESSION_PREFIX}${agentName}`;
|
|
@@ -41,7 +41,7 @@ export function createSession(agentName, command, workdir, env) {
|
|
|
41
41
|
args.push("-c", workdir);
|
|
42
42
|
}
|
|
43
43
|
args.push(fullCommand);
|
|
44
|
-
|
|
44
|
+
execFileSync("tmux", args);
|
|
45
45
|
// Also set session environment for any subsequent processes/refreshes
|
|
46
46
|
if (env) {
|
|
47
47
|
setSessionEnvironment(sessionName, env);
|
|
@@ -57,7 +57,7 @@ export function setSessionEnvironment(sessionName, env) {
|
|
|
57
57
|
try {
|
|
58
58
|
for (const [key, value] of Object.entries(env)) {
|
|
59
59
|
if (value !== undefined && value !== "") {
|
|
60
|
-
|
|
60
|
+
execFileSync("tmux", ["set-environment", "-t", sessionName, key, value]);
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
return true;
|
package/dist/core/tmux.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tmux.js","sourceRoot":"","sources":["../../src/core/tmux.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,QAAQ,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"tmux.js","sourceRoot":"","sources":["../../src/core/tmux.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEtF,MAAM,cAAc,GAAG,YAAY,CAAC;AAEpC,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC9C,OAAO,GAAG,cAAc,GAAG,SAAS,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,WAAmB;IAC/C,IAAI,CAAC;QACH,QAAQ,CAAC,wBAAwB,WAAW,eAAe,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAUD,MAAM,UAAU,aAAa,CAC3B,SAAiB,EACjB,OAAe,EACf,OAAgB,EAChB,GAAgB;IAEhB,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAE9C,IAAI,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,WAAW,WAAW,iBAAiB,CAAC,CAAC;QACvD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,2CAA2C;QAC3C,0DAA0D;QAC1D,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;oBACxC,qCAAqC;oBACrC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;oBAChD,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,YAAY,GAAG,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YACvC,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GAAG,GAAG,SAAS,GAAG,OAAO,EAAE,CAAC;QAE7C,MAAM,IAAI,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QAEtD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEvB,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAE3B,sEAAsE;QACtE,IAAI,GAAG,EAAE,CAAC;YACR,qBAAqB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,kCAAkC,KAAK,EAAE,CAAC,CAAC;QACzD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,WAAmB,EAAE,GAAe;IACxE,IAAI,CAAC;QACH,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;gBACxC,YAAY,CAAC,MAAM,EAAE,CAAC,iBAAiB,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,sCAAsC,KAAK,EAAE,CAAC,CAAC;QAC7D,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,SAAiB,EAAE,GAAe;IACzE,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAE9C,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,KAAK,CAAC,WAAW,WAAW,iBAAiB,CAAC,CAAC;QACvD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,qBAAqB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC9C,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAE9C,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,CAAC,eAAe;IAC9B,CAAC;IAED,IAAI,CAAC;QACH,QAAQ,CAAC,yBAAyB,WAAW,GAAG,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,KAAK,EAAE,CAAC,CAAC;QAC1D,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,SAAiB,EAAE,OAAe;IACzD,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAE9C,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,KAAK,CAAC,WAAW,WAAW,iBAAiB,CAAC,CAAC;QACvD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,qCAAqC;QACrC,MAAM,cAAc,GAAG,OAAO;aAC3B,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;aACtB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;aACpB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;aACrB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAExB,oEAAoE;QACpE,QAAQ,CAAC,sBAAsB,WAAW,MAAM,cAAc,GAAG,CAAC,CAAC;QACnE,QAAQ,CAAC,sBAAsB,WAAW,SAAS,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC;QAC/C,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,SAAiB;IAC7C,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAE9C,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,KAAK,CAAC,WAAW,WAAW,iBAAiB,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,mDAAmD;IACnD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE;QAChE,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IAEH,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QACvB,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,yCAAyC,EAAE;YACjE,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;QACH,OAAO,MAAM;aACV,IAAI,EAAE;aACN,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;aAC3C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC9C,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAE9C,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,QAAQ,CAAC,uBAAuB,WAAW,gCAAgC,EAAE;YAC3F,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC,IAAI,EAAE,CAAC;QAEV,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC1B,CAAC;AACH,CAAC;AAQD;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,SAAiB;IACrD,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAE9C,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,8CAA8C;QAC9C,MAAM,OAAO,GAAG,QAAQ,CAAC,4BAA4B,WAAW,6BAA6B,EAAE;YAC7F,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC,IAAI,EAAE,CAAC;QAEV,MAAM,OAAO,GAAmB,EAAE,OAAO,EAAE,CAAC;QAE5C,uCAAuC;QACvC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,QAAQ,CAAC,6CAA6C,EAAE;gBACxE,QAAQ,EAAE,OAAO;gBACjB,GAAG,EAAE,OAAO;aACb,CAAC,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;YAChC,CAAC;YAED,MAAM,SAAS,GAAG,QAAQ,CAAC,gCAAgC,EAAE;gBAC3D,QAAQ,EAAE,OAAO;gBACjB,GAAG,EAAE,OAAO;aACb,CAAC,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,SAAS,EAAE,CAAC;gBACd,uBAAuB;gBACvB,OAAO,CAAC,SAAS;oBACf,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7E,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,sCAAsC;QACxC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,sCAAsC,KAAK,EAAE,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAAiB,EAAE,KAAK,GAAG,GAAG;IACjE,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAE9C,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,yBAAyB,WAAW,YAAY,KAAK,EAAE,EAAE;YAC/E,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,qCAAqC,KAAK,EAAE,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentmeshhq/agent",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.11",
|
|
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",
|
|
7
7
|
"bin": {
|
|
8
8
|
"agentmesh": "dist/cli/index.js"
|
|
9
9
|
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"dev": "tsx watch src/cli/index.ts",
|
|
12
|
+
"build": "tsc -p tsconfig.json",
|
|
13
|
+
"lint": "biome check src",
|
|
14
|
+
"start": "node dist/cli/index.js",
|
|
15
|
+
"test": "vitest run",
|
|
16
|
+
"test:watch": "vitest"
|
|
17
|
+
},
|
|
10
18
|
"dependencies": {
|
|
11
19
|
"commander": "^12.0.0",
|
|
12
20
|
"picocolors": "^1.0.0",
|
|
@@ -25,13 +33,5 @@
|
|
|
25
33
|
"opencode"
|
|
26
34
|
],
|
|
27
35
|
"author": "AgentMesh",
|
|
28
|
-
"license": "MIT"
|
|
29
|
-
|
|
30
|
-
"dev": "tsx watch src/cli/index.ts",
|
|
31
|
-
"build": "tsc -p tsconfig.json",
|
|
32
|
-
"lint": "biome check src",
|
|
33
|
-
"start": "node dist/cli/index.js",
|
|
34
|
-
"test": "vitest run",
|
|
35
|
-
"test:watch": "vitest"
|
|
36
|
-
}
|
|
37
|
-
}
|
|
36
|
+
"license": "MIT"
|
|
37
|
+
}
|
package/src/cli/index.ts
CHANGED
|
@@ -48,6 +48,7 @@ program
|
|
|
48
48
|
.option("-m, --model <model>", "Model identifier")
|
|
49
49
|
.option("-f, --foreground", "Run in foreground (blocking)")
|
|
50
50
|
.option("--no-context", "Start fresh without restoring previous context")
|
|
51
|
+
.option("--auto-setup", "Auto-clone repository for project assignments")
|
|
51
52
|
.action(async (options) => {
|
|
52
53
|
try {
|
|
53
54
|
await start(options);
|
|
@@ -166,9 +167,9 @@ program
|
|
|
166
167
|
|
|
167
168
|
program
|
|
168
169
|
.command("restart")
|
|
169
|
-
.description("Restart an agent (preserves agent ID)")
|
|
170
|
+
.description("Restart an agent (preserves agent ID and runtime model)")
|
|
170
171
|
.argument("<name>", "Agent name")
|
|
171
|
-
.option("-m, --model <model>", "
|
|
172
|
+
.option("-m, --model <model>", "Override the runtime model")
|
|
172
173
|
.action(async (name, options) => {
|
|
173
174
|
try {
|
|
174
175
|
await restart(name, { model: options.model });
|
package/src/cli/list.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { loadState, loadConfig } from "../config/loader.js";
|
|
2
2
|
import { sessionExists, getSessionName, getSessionInfo } from "../core/tmux.js";
|
|
3
|
-
import { checkInbox } from "../core/registry.js";
|
|
3
|
+
import { checkInbox, fetchAssignments } from "../core/registry.js";
|
|
4
4
|
import pc from "picocolors";
|
|
5
5
|
|
|
6
6
|
export async function list(): Promise<void> {
|
|
@@ -15,9 +15,9 @@ export async function list(): Promise<void> {
|
|
|
15
15
|
|
|
16
16
|
console.log(pc.bold("Running Agents:\n"));
|
|
17
17
|
console.log(
|
|
18
|
-
`${"NAME".padEnd(20)} ${"STATUS".padEnd(10)} ${"SESSION".padEnd(25)} ${"PENDING"}`
|
|
18
|
+
`${"NAME".padEnd(20)} ${"STATUS".padEnd(10)} ${"SESSION".padEnd(25)} ${"PENDING ID".padEnd(18)} ${"WORKDIR".padEnd(38)} ${"PROJECT"}`
|
|
19
19
|
);
|
|
20
|
-
console.log("-".repeat(
|
|
20
|
+
console.log("-".repeat(140));
|
|
21
21
|
|
|
22
22
|
for (const agent of state.agents) {
|
|
23
23
|
const sessionName = getSessionName(agent.name);
|
|
@@ -29,7 +29,8 @@ export async function list(): Promise<void> {
|
|
|
29
29
|
status = pc.red("offline");
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
let
|
|
32
|
+
let pendingId = pc.dim("-");
|
|
33
|
+
let assignedProject = agent.assignedProject || "-";
|
|
33
34
|
|
|
34
35
|
// Try to check inbox if we have a token
|
|
35
36
|
if (config && agent.token) {
|
|
@@ -40,7 +41,17 @@ export async function list(): Promise<void> {
|
|
|
40
41
|
agent.token
|
|
41
42
|
);
|
|
42
43
|
if (items.length > 0) {
|
|
43
|
-
|
|
44
|
+
const firstId = items[0]?.id || "-";
|
|
45
|
+
pendingId = pc.yellow(items.length === 1 ? firstId : `${firstId} (+${items.length - 1})`);
|
|
46
|
+
}
|
|
47
|
+
} catch {
|
|
48
|
+
// Ignore errors
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
try {
|
|
52
|
+
const assignments = await fetchAssignments(config.hubUrl, agent.token);
|
|
53
|
+
if (assignments.length > 0) {
|
|
54
|
+
assignedProject = assignments.map((a) => a.project.name).join(", ");
|
|
44
55
|
}
|
|
45
56
|
} catch {
|
|
46
57
|
// Ignore errors
|
|
@@ -48,9 +59,10 @@ export async function list(): Promise<void> {
|
|
|
48
59
|
}
|
|
49
60
|
|
|
50
61
|
const command = info.command ? pc.dim(`(${info.command})`) : "";
|
|
62
|
+
const workdir = agent.workdir || "-";
|
|
51
63
|
|
|
52
64
|
console.log(
|
|
53
|
-
`${agent.name.padEnd(20)} ${status.padEnd(19)} ${sessionName.padEnd(25)} ${
|
|
65
|
+
`${agent.name.padEnd(20)} ${status.padEnd(19)} ${sessionName.padEnd(25)} ${pendingId.padEnd(18)} ${workdir.padEnd(38)} ${assignedProject}`
|
|
54
66
|
);
|
|
55
67
|
|
|
56
68
|
if (command) {
|
package/src/cli/restart.ts
CHANGED
|
@@ -4,11 +4,7 @@ import { destroySession, getSessionName, sessionExists } from "../core/tmux.js";
|
|
|
4
4
|
import { start } from "./start.js";
|
|
5
5
|
import { stop } from "./stop.js";
|
|
6
6
|
|
|
7
|
-
export
|
|
8
|
-
model?: string;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export async function restart(name: string, options: RestartOptions = {}): Promise<void> {
|
|
7
|
+
export async function restart(name: string, options?: { model?: string }): Promise<void> {
|
|
12
8
|
const config = loadConfig();
|
|
13
9
|
|
|
14
10
|
if (!config) {
|
|
@@ -25,6 +21,12 @@ export async function restart(name: string, options: RestartOptions = {}): Promi
|
|
|
25
21
|
|
|
26
22
|
console.log(pc.dim(`Restarting agent "${name}"...`));
|
|
27
23
|
|
|
24
|
+
// Preserve runtime model from previous session unless overridden
|
|
25
|
+
const preservedModel = options?.model || agent.runtimeModel;
|
|
26
|
+
if (preservedModel) {
|
|
27
|
+
console.log(pc.dim(`Preserving runtime model: ${preservedModel}`));
|
|
28
|
+
}
|
|
29
|
+
|
|
28
30
|
// Stop the agent (but preserve the agent ID for re-registration)
|
|
29
31
|
const sessionName = getSessionName(name);
|
|
30
32
|
if (sessionExists(sessionName)) {
|
|
@@ -38,20 +40,20 @@ export async function restart(name: string, options: RestartOptions = {}): Promi
|
|
|
38
40
|
// Find agent config to get workdir and other settings
|
|
39
41
|
const agentConfig = config.agents.find((a) => a.name === name);
|
|
40
42
|
|
|
41
|
-
// Model priority: CLI option > previous runtime model > agent config
|
|
42
|
-
const effectiveModel = options.model || agent.runtimeModel || agentConfig?.model;
|
|
43
|
-
|
|
44
43
|
console.log(pc.dim("Starting new session..."));
|
|
45
44
|
|
|
46
|
-
// Start with
|
|
45
|
+
// Start with preserved model (prioritize: CLI override > previous runtime > agent config)
|
|
47
46
|
await start({
|
|
48
47
|
name,
|
|
49
48
|
command: agentConfig?.command,
|
|
50
49
|
workdir: agentConfig?.workdir,
|
|
51
|
-
model:
|
|
50
|
+
model: preservedModel || agentConfig?.model,
|
|
52
51
|
foreground: false,
|
|
53
52
|
});
|
|
54
53
|
|
|
55
54
|
console.log(pc.green(`Agent "${name}" restarted.`));
|
|
56
55
|
console.log(pc.dim(`Agent ID preserved: ${agent.agentId}`));
|
|
56
|
+
if (preservedModel) {
|
|
57
|
+
console.log(pc.dim(`Runtime model: ${preservedModel}`));
|
|
58
|
+
}
|
|
57
59
|
}
|