@agentmeshhq/agent 0.1.8 → 0.1.10
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/__tests__/runner.test.d.ts +1 -0
- package/dist/__tests__/runner.test.js +87 -0
- package/dist/__tests__/runner.test.js.map +1 -0
- package/dist/cli/index.js +5 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/restart.d.ts +3 -1
- package/dist/cli/restart.js +11 -3
- 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 -0
- package/dist/cli/status.js.map +1 -1
- package/dist/cli/whoami.js +25 -0
- package/dist/cli/whoami.js.map +1 -1
- package/dist/config/schema.d.ts +5 -0
- package/dist/core/daemon.d.ts +14 -0
- package/dist/core/daemon.js +173 -17
- 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/runner.d.ts +49 -0
- package/dist/core/runner.js +148 -0
- package/dist/core/runner.js.map +1 -0
- package/dist/core/tmux.d.ts +3 -0
- package/dist/core/tmux.js +23 -7
- package/dist/core/tmux.js.map +1 -1
- package/package.json +11 -11
- package/src/__tests__/runner.test.ts +105 -0
- package/src/cli/index.ts +5 -3
- package/src/cli/restart.ts +12 -3
- package/src/cli/start.ts +3 -0
- package/src/cli/status.ts +8 -0
- package/src/cli/whoami.ts +30 -1
- package/src/config/schema.ts +6 -0
- package/src/core/daemon.ts +223 -20
- package/src/core/registry.ts +57 -16
- package/src/core/runner.ts +200 -0
- package/src/core/tmux.ts +28 -9
- package/LICENSE +0 -21
package/dist/core/daemon.js
CHANGED
|
@@ -1,20 +1,27 @@
|
|
|
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";
|
|
1
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";
|
|
9
|
+
import { checkInbox, fetchAssignments, registerAgent } from "./registry.js";
|
|
10
|
+
import { buildRunnerConfig, getRunnerDisplayName, } from "./runner.js";
|
|
6
11
|
import { captureSessionContext, createSession, destroySession, getSessionName, sessionExists, updateSessionEnvironment, } from "./tmux.js";
|
|
7
12
|
import { AgentWebSocket } from "./websocket.js";
|
|
8
13
|
export class AgentDaemon {
|
|
9
14
|
agentName;
|
|
10
15
|
config;
|
|
11
16
|
agentConfig;
|
|
17
|
+
runnerConfig;
|
|
12
18
|
ws = null;
|
|
13
19
|
heartbeat = null;
|
|
14
20
|
token = null;
|
|
15
21
|
agentId = null;
|
|
16
22
|
isRunning = false;
|
|
17
23
|
shouldRestoreContext;
|
|
24
|
+
autoSetup;
|
|
18
25
|
constructor(options) {
|
|
19
26
|
const config = loadConfig();
|
|
20
27
|
if (!config) {
|
|
@@ -23,6 +30,7 @@ export class AgentDaemon {
|
|
|
23
30
|
this.config = config;
|
|
24
31
|
this.agentName = options.name;
|
|
25
32
|
this.shouldRestoreContext = options.restoreContext !== false;
|
|
33
|
+
this.autoSetup = options.autoSetup === true;
|
|
26
34
|
// Find or create agent config
|
|
27
35
|
let agentConfig = config.agents.find((a) => a.name === options.name);
|
|
28
36
|
if (!agentConfig) {
|
|
@@ -41,6 +49,16 @@ export class AgentDaemon {
|
|
|
41
49
|
if (options.model)
|
|
42
50
|
agentConfig.model = options.model;
|
|
43
51
|
this.agentConfig = agentConfig;
|
|
52
|
+
// Build runner configuration with model resolution
|
|
53
|
+
this.runnerConfig = buildRunnerConfig({
|
|
54
|
+
cliModel: options.model,
|
|
55
|
+
agentModel: agentConfig.model,
|
|
56
|
+
defaultModel: config.defaults.model,
|
|
57
|
+
command: agentConfig.command,
|
|
58
|
+
});
|
|
59
|
+
const runnerName = getRunnerDisplayName(this.runnerConfig.type);
|
|
60
|
+
console.log(`Runner: ${runnerName}`);
|
|
61
|
+
console.log(`Effective model: ${this.runnerConfig.model}`);
|
|
44
62
|
}
|
|
45
63
|
async start() {
|
|
46
64
|
if (this.isRunning) {
|
|
@@ -48,21 +66,7 @@ export class AgentDaemon {
|
|
|
48
66
|
return;
|
|
49
67
|
}
|
|
50
68
|
console.log(`Starting agent: ${this.agentName}`);
|
|
51
|
-
//
|
|
52
|
-
const sessionName = getSessionName(this.agentName);
|
|
53
|
-
const sessionAlreadyExists = sessionExists(sessionName);
|
|
54
|
-
// Create tmux session if it doesn't exist
|
|
55
|
-
if (!sessionAlreadyExists) {
|
|
56
|
-
console.log(`Creating tmux session: ${sessionName}`);
|
|
57
|
-
const created = createSession(this.agentName, this.agentConfig.command, this.agentConfig.workdir);
|
|
58
|
-
if (!created) {
|
|
59
|
-
throw new Error("Failed to create tmux session");
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
console.log(`Reconnecting to existing session: ${sessionName}`);
|
|
64
|
-
}
|
|
65
|
-
// Register with hub
|
|
69
|
+
// Register with hub first (needed for assignment check)
|
|
66
70
|
console.log("Registering with AgentMesh hub...");
|
|
67
71
|
const existingState = getAgentState(this.agentName);
|
|
68
72
|
const registration = await registerAgent({
|
|
@@ -76,13 +80,32 @@ export class AgentDaemon {
|
|
|
76
80
|
this.agentId = registration.agentId;
|
|
77
81
|
this.token = registration.token;
|
|
78
82
|
console.log(`Registered as: ${this.agentId}`);
|
|
83
|
+
// Check assignments and auto-setup workdir if needed (before creating tmux session)
|
|
84
|
+
await this.checkAssignments();
|
|
85
|
+
// Check if session already exists
|
|
86
|
+
const sessionName = getSessionName(this.agentName);
|
|
87
|
+
const sessionAlreadyExists = sessionExists(sessionName);
|
|
88
|
+
// Create tmux session if it doesn't exist
|
|
89
|
+
if (!sessionAlreadyExists) {
|
|
90
|
+
console.log(`Creating tmux session: ${sessionName}`);
|
|
91
|
+
// Include runner env vars (e.g., OPENCODE_MODEL) at session creation
|
|
92
|
+
const created = createSession(this.agentName, this.agentConfig.command, this.agentConfig.workdir, this.runnerConfig.env);
|
|
93
|
+
if (!created) {
|
|
94
|
+
throw new Error("Failed to create tmux session");
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
console.log(`Reconnecting to existing session: ${sessionName}`);
|
|
99
|
+
// Update environment for existing session
|
|
100
|
+
updateSessionEnvironment(this.agentName, this.runnerConfig.env);
|
|
101
|
+
}
|
|
79
102
|
// Inject environment variables into tmux session
|
|
80
103
|
console.log("Injecting environment variables...");
|
|
81
104
|
updateSessionEnvironment(this.agentName, {
|
|
82
105
|
AGENT_TOKEN: this.token,
|
|
83
106
|
AGENTMESH_AGENT_ID: this.agentId,
|
|
84
107
|
});
|
|
85
|
-
// Save state
|
|
108
|
+
// Save state including runtime model info
|
|
86
109
|
addAgentToState({
|
|
87
110
|
name: this.agentName,
|
|
88
111
|
agentId: this.agentId,
|
|
@@ -90,6 +113,8 @@ export class AgentDaemon {
|
|
|
90
113
|
tmuxSession: sessionName,
|
|
91
114
|
startedAt: new Date().toISOString(),
|
|
92
115
|
token: this.token,
|
|
116
|
+
runtimeModel: this.runnerConfig.model,
|
|
117
|
+
runnerType: this.runnerConfig.type,
|
|
93
118
|
});
|
|
94
119
|
// Start heartbeat with auto-refresh
|
|
95
120
|
console.log("Starting heartbeat...");
|
|
@@ -255,5 +280,136 @@ Nudge agent:
|
|
|
255
280
|
console.error("Failed to save agent context:", error);
|
|
256
281
|
}
|
|
257
282
|
}
|
|
283
|
+
/**
|
|
284
|
+
* Fetches assignments from HQ and validates workdir setup
|
|
285
|
+
* Uses project.workdir from HQ as source of truth, falls back to helpful instructions
|
|
286
|
+
*/
|
|
287
|
+
async checkAssignments() {
|
|
288
|
+
if (!this.token)
|
|
289
|
+
return;
|
|
290
|
+
try {
|
|
291
|
+
console.log("Fetching project assignments from HQ...");
|
|
292
|
+
const assignments = await fetchAssignments(this.config.hubUrl, this.token);
|
|
293
|
+
if (assignments.length === 0) {
|
|
294
|
+
console.log("No project assignments found.");
|
|
295
|
+
return;
|
|
296
|
+
}
|
|
297
|
+
console.log(`Found ${assignments.length} assignment(s):`);
|
|
298
|
+
for (const assignment of assignments) {
|
|
299
|
+
const repoInfo = assignment.repo ? ` -> ${assignment.repo.full_name}` : "";
|
|
300
|
+
const workdirInfo = assignment.project.workdir ? ` [${assignment.project.workdir}]` : "";
|
|
301
|
+
console.log(` - ${assignment.project.name} (${assignment.role})${repoInfo}${workdirInfo}`);
|
|
302
|
+
}
|
|
303
|
+
// If no CLI workdir specified, try to use project.workdir from HQ
|
|
304
|
+
if (!this.agentConfig.workdir) {
|
|
305
|
+
const assignmentWithWorkdir = assignments.find((a) => a.project.workdir);
|
|
306
|
+
if (assignmentWithWorkdir?.project.workdir) {
|
|
307
|
+
console.log(`Using workdir from project settings: ${assignmentWithWorkdir.project.workdir}`);
|
|
308
|
+
this.agentConfig.workdir = assignmentWithWorkdir.project.workdir;
|
|
309
|
+
return;
|
|
310
|
+
}
|
|
311
|
+
// No project.workdir set, check if we have a repo assignment
|
|
312
|
+
const repoAssignment = assignments.find((a) => a.repo !== null);
|
|
313
|
+
if (repoAssignment) {
|
|
314
|
+
const repo = repoAssignment.repo;
|
|
315
|
+
const expandedPath = path.join(os.homedir(), ".agentmesh", "workspaces", this.config.workspace, repoAssignment.project.code.toLowerCase(), this.agentName);
|
|
316
|
+
const suggestedPath = `~/.agentmesh/workspaces/${this.config.workspace}/${repoAssignment.project.code.toLowerCase()}/${this.agentName}`;
|
|
317
|
+
// If --auto-setup is enabled, automatically clone the repo
|
|
318
|
+
if (this.autoSetup) {
|
|
319
|
+
this.agentConfig.workdir = this.setupWorkspace(expandedPath, repo.url, repo.default_branch, repoAssignment.project.name);
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
322
|
+
console.error(`
|
|
323
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
324
|
+
⚠️ WORKDIR REQUIRED
|
|
325
|
+
|
|
326
|
+
You have a project assignment with a repository, but no workdir is configured.
|
|
327
|
+
|
|
328
|
+
Project: ${repoAssignment.project.name}
|
|
329
|
+
Repo: ${repo.full_name}
|
|
330
|
+
Branch: ${repo.default_branch}
|
|
331
|
+
|
|
332
|
+
Option 1: Set workdir in project settings (recommended)
|
|
333
|
+
- Go to AgentMesh HQ → Projects → ${repoAssignment.project.name} → Settings
|
|
334
|
+
- Set the workdir field to the local path
|
|
335
|
+
|
|
336
|
+
Option 2: Set up workspace manually and pass --workdir:
|
|
337
|
+
|
|
338
|
+
mkdir -p ${suggestedPath}
|
|
339
|
+
git clone ${repo.url} ${suggestedPath}
|
|
340
|
+
cd ${suggestedPath} && git checkout ${repo.default_branch}
|
|
341
|
+
|
|
342
|
+
Then start the agent with:
|
|
343
|
+
|
|
344
|
+
agentmesh start -n ${this.agentName} --workdir ${suggestedPath}
|
|
345
|
+
|
|
346
|
+
Option 3: Use --auto-setup to automatically clone the repository:
|
|
347
|
+
|
|
348
|
+
agentmesh start -n ${this.agentName} --auto-setup
|
|
349
|
+
|
|
350
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
351
|
+
`);
|
|
352
|
+
// No session to clean up - we haven't created it yet
|
|
353
|
+
process.exit(1);
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
catch (error) {
|
|
358
|
+
// Non-fatal: log and continue (HQ might not have assignments feature yet)
|
|
359
|
+
console.log("Could not fetch assignments:", error.message);
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* Sets up workspace by cloning repository or using existing clone
|
|
364
|
+
* Returns the absolute path to the workspace
|
|
365
|
+
*/
|
|
366
|
+
setupWorkspace(workspacePath, repoUrl, defaultBranch, projectName) {
|
|
367
|
+
console.log(`\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`);
|
|
368
|
+
console.log(`🔧 AUTO-SETUP: Setting up workspace for ${projectName}`);
|
|
369
|
+
console.log(`━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n`);
|
|
370
|
+
// Check if directory already exists and is a git repo
|
|
371
|
+
const gitDir = path.join(workspacePath, ".git");
|
|
372
|
+
if (fs.existsSync(gitDir)) {
|
|
373
|
+
console.log(`✓ Workspace already exists: ${workspacePath}`);
|
|
374
|
+
console.log(` Updating from remote...`);
|
|
375
|
+
try {
|
|
376
|
+
// Fetch and checkout the branch
|
|
377
|
+
execSync(`git fetch origin`, { cwd: workspacePath, stdio: "inherit" });
|
|
378
|
+
execSync(`git checkout ${defaultBranch}`, { cwd: workspacePath, stdio: "inherit" });
|
|
379
|
+
execSync(`git pull origin ${defaultBranch}`, { cwd: workspacePath, stdio: "inherit" });
|
|
380
|
+
console.log(`✓ Workspace updated successfully\n`);
|
|
381
|
+
}
|
|
382
|
+
catch (error) {
|
|
383
|
+
console.warn(`⚠ Could not update workspace: ${error.message}`);
|
|
384
|
+
console.log(` Continuing with existing state...\n`);
|
|
385
|
+
}
|
|
386
|
+
return workspacePath;
|
|
387
|
+
}
|
|
388
|
+
// Create parent directories
|
|
389
|
+
const parentDir = path.dirname(workspacePath);
|
|
390
|
+
if (!fs.existsSync(parentDir)) {
|
|
391
|
+
console.log(`Creating directory: ${parentDir}`);
|
|
392
|
+
fs.mkdirSync(parentDir, { recursive: true });
|
|
393
|
+
}
|
|
394
|
+
// Clone the repository
|
|
395
|
+
console.log(`Cloning repository...`);
|
|
396
|
+
console.log(` URL: ${repoUrl}`);
|
|
397
|
+
console.log(` Path: ${workspacePath}`);
|
|
398
|
+
console.log(` Branch: ${defaultBranch}\n`);
|
|
399
|
+
try {
|
|
400
|
+
execSync(`git clone --branch ${defaultBranch} "${repoUrl}" "${workspacePath}"`, {
|
|
401
|
+
stdio: "inherit",
|
|
402
|
+
});
|
|
403
|
+
console.log(`\n✓ Repository cloned successfully`);
|
|
404
|
+
}
|
|
405
|
+
catch (error) {
|
|
406
|
+
console.error(`\n✗ Failed to clone repository: ${error.message}`);
|
|
407
|
+
console.error(`\nMake sure you have access to the repository and SSH keys are configured.`);
|
|
408
|
+
// No session to clean up - we haven't created it yet
|
|
409
|
+
process.exit(1);
|
|
410
|
+
}
|
|
411
|
+
console.log(`✓ Workspace ready: ${workspacePath}\n`);
|
|
412
|
+
return workspacePath;
|
|
413
|
+
}
|
|
258
414
|
}
|
|
259
415
|
//# 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":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runner Module
|
|
3
|
+
* Handles model resolution, validation, and runner-specific configuration
|
|
4
|
+
*/
|
|
5
|
+
export type RunnerType = "opencode" | "claude" | "custom";
|
|
6
|
+
export interface RunnerConfig {
|
|
7
|
+
type: RunnerType;
|
|
8
|
+
command: string;
|
|
9
|
+
model: string;
|
|
10
|
+
env: Record<string, string>;
|
|
11
|
+
}
|
|
12
|
+
export interface ModelResolutionInput {
|
|
13
|
+
cliModel?: string;
|
|
14
|
+
agentModel?: string;
|
|
15
|
+
defaultModel: string;
|
|
16
|
+
command: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Detects the runner type from the command
|
|
20
|
+
*/
|
|
21
|
+
export declare function detectRunner(command: string): RunnerType;
|
|
22
|
+
/**
|
|
23
|
+
* Resolves the effective model from CLI > agent config > defaults
|
|
24
|
+
*/
|
|
25
|
+
export declare function resolveModel(input: ModelResolutionInput): string;
|
|
26
|
+
/**
|
|
27
|
+
* Gets available OpenCode models (cached)
|
|
28
|
+
*/
|
|
29
|
+
export declare function getOpenCodeModels(): string[];
|
|
30
|
+
/**
|
|
31
|
+
* Validates that a model is available in OpenCode
|
|
32
|
+
*/
|
|
33
|
+
export declare function validateOpenCodeModel(model: string): {
|
|
34
|
+
valid: boolean;
|
|
35
|
+
error?: string;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Normalizes a model name for OpenCode
|
|
39
|
+
* e.g., "claude-sonnet-4" -> "anthropic/claude-sonnet-4" if that's what OpenCode expects
|
|
40
|
+
*/
|
|
41
|
+
export declare function normalizeOpenCodeModel(model: string): string;
|
|
42
|
+
/**
|
|
43
|
+
* Builds the complete runner configuration including environment variables
|
|
44
|
+
*/
|
|
45
|
+
export declare function buildRunnerConfig(input: ModelResolutionInput): RunnerConfig;
|
|
46
|
+
/**
|
|
47
|
+
* Gets a human-readable runner name
|
|
48
|
+
*/
|
|
49
|
+
export declare function getRunnerDisplayName(runnerType: RunnerType): string;
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runner Module
|
|
3
|
+
* Handles model resolution, validation, and runner-specific configuration
|
|
4
|
+
*/
|
|
5
|
+
import { execSync } from "node:child_process";
|
|
6
|
+
// ============================================================================
|
|
7
|
+
// Runner Detection
|
|
8
|
+
// ============================================================================
|
|
9
|
+
/**
|
|
10
|
+
* Detects the runner type from the command
|
|
11
|
+
*/
|
|
12
|
+
export function detectRunner(command) {
|
|
13
|
+
const cmd = command.toLowerCase().trim();
|
|
14
|
+
if (cmd === "opencode" || cmd.startsWith("opencode ")) {
|
|
15
|
+
return "opencode";
|
|
16
|
+
}
|
|
17
|
+
if (cmd === "claude" || cmd.startsWith("claude ")) {
|
|
18
|
+
return "claude";
|
|
19
|
+
}
|
|
20
|
+
return "custom";
|
|
21
|
+
}
|
|
22
|
+
// ============================================================================
|
|
23
|
+
// Model Resolution
|
|
24
|
+
// ============================================================================
|
|
25
|
+
/**
|
|
26
|
+
* Resolves the effective model from CLI > agent config > defaults
|
|
27
|
+
*/
|
|
28
|
+
export function resolveModel(input) {
|
|
29
|
+
// Priority: CLI flag > agent config > default
|
|
30
|
+
return input.cliModel || input.agentModel || input.defaultModel;
|
|
31
|
+
}
|
|
32
|
+
// ============================================================================
|
|
33
|
+
// OpenCode Integration
|
|
34
|
+
// ============================================================================
|
|
35
|
+
let cachedOpenCodeModels = null;
|
|
36
|
+
/**
|
|
37
|
+
* Gets available OpenCode models (cached)
|
|
38
|
+
*/
|
|
39
|
+
export function getOpenCodeModels() {
|
|
40
|
+
if (cachedOpenCodeModels) {
|
|
41
|
+
return cachedOpenCodeModels;
|
|
42
|
+
}
|
|
43
|
+
try {
|
|
44
|
+
const output = execSync("opencode models 2>/dev/null", {
|
|
45
|
+
encoding: "utf-8",
|
|
46
|
+
timeout: 10000,
|
|
47
|
+
});
|
|
48
|
+
cachedOpenCodeModels = output
|
|
49
|
+
.split("\n")
|
|
50
|
+
.map((line) => line.trim())
|
|
51
|
+
.filter((line) => line.length > 0 && !line.startsWith("#"));
|
|
52
|
+
return cachedOpenCodeModels;
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
// OpenCode not available or failed
|
|
56
|
+
return [];
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Validates that a model is available in OpenCode
|
|
61
|
+
*/
|
|
62
|
+
export function validateOpenCodeModel(model) {
|
|
63
|
+
const models = getOpenCodeModels();
|
|
64
|
+
// If we couldn't get models list, allow any (graceful degradation)
|
|
65
|
+
if (models.length === 0) {
|
|
66
|
+
return { valid: true };
|
|
67
|
+
}
|
|
68
|
+
if (models.includes(model)) {
|
|
69
|
+
return { valid: true };
|
|
70
|
+
}
|
|
71
|
+
// Check for partial match (e.g., "claude-sonnet-4" matches "anthropic/claude-sonnet-4")
|
|
72
|
+
const partialMatch = models.find((m) => m.endsWith(`/${model}`) || m === model || m.split("/").pop() === model);
|
|
73
|
+
if (partialMatch) {
|
|
74
|
+
return { valid: true };
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
valid: false,
|
|
78
|
+
error: `Model "${model}" not found in OpenCode. Run 'opencode models' to see available models.`,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Normalizes a model name for OpenCode
|
|
83
|
+
* e.g., "claude-sonnet-4" -> "anthropic/claude-sonnet-4" if that's what OpenCode expects
|
|
84
|
+
*/
|
|
85
|
+
export function normalizeOpenCodeModel(model) {
|
|
86
|
+
const models = getOpenCodeModels();
|
|
87
|
+
// Direct match
|
|
88
|
+
if (models.includes(model)) {
|
|
89
|
+
return model;
|
|
90
|
+
}
|
|
91
|
+
// Try to find full path version
|
|
92
|
+
const fullPath = models.find((m) => m.endsWith(`/${model}`) || m.split("/").pop() === model);
|
|
93
|
+
return fullPath || model;
|
|
94
|
+
}
|
|
95
|
+
// ============================================================================
|
|
96
|
+
// Runner Configuration
|
|
97
|
+
// ============================================================================
|
|
98
|
+
/**
|
|
99
|
+
* Builds the complete runner configuration including environment variables
|
|
100
|
+
*/
|
|
101
|
+
export function buildRunnerConfig(input) {
|
|
102
|
+
const runnerType = detectRunner(input.command);
|
|
103
|
+
const model = resolveModel(input);
|
|
104
|
+
const env = {};
|
|
105
|
+
switch (runnerType) {
|
|
106
|
+
case "opencode": {
|
|
107
|
+
// Validate model for OpenCode
|
|
108
|
+
const validation = validateOpenCodeModel(model);
|
|
109
|
+
if (!validation.valid) {
|
|
110
|
+
console.warn(`Warning: ${validation.error}`);
|
|
111
|
+
}
|
|
112
|
+
// Normalize and set OPENCODE_MODEL
|
|
113
|
+
const normalizedModel = normalizeOpenCodeModel(model);
|
|
114
|
+
env.OPENCODE_MODEL = normalizedModel;
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
case "claude": {
|
|
118
|
+
// Claude CLI uses ANTHROPIC_MODEL or similar
|
|
119
|
+
// For now, just pass the model - Claude CLI will handle it
|
|
120
|
+
env.CLAUDE_MODEL = model;
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
case "custom":
|
|
124
|
+
// Custom runners don't get automatic model env
|
|
125
|
+
// User is responsible for configuring their tool
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
return {
|
|
129
|
+
type: runnerType,
|
|
130
|
+
command: input.command,
|
|
131
|
+
model,
|
|
132
|
+
env,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Gets a human-readable runner name
|
|
137
|
+
*/
|
|
138
|
+
export function getRunnerDisplayName(runnerType) {
|
|
139
|
+
switch (runnerType) {
|
|
140
|
+
case "opencode":
|
|
141
|
+
return "OpenCode";
|
|
142
|
+
case "claude":
|
|
143
|
+
return "Claude CLI";
|
|
144
|
+
case "custom":
|
|
145
|
+
return "Custom";
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/core/tmux.d.ts
CHANGED
|
@@ -3,6 +3,9 @@ export declare function sessionExists(sessionName: string): boolean;
|
|
|
3
3
|
export interface SessionEnv {
|
|
4
4
|
AGENT_TOKEN?: string;
|
|
5
5
|
AGENTMESH_AGENT_ID?: string;
|
|
6
|
+
OPENCODE_MODEL?: string;
|
|
7
|
+
CLAUDE_MODEL?: string;
|
|
8
|
+
[key: string]: string | undefined;
|
|
6
9
|
}
|
|
7
10
|
export declare function createSession(agentName: string, command: string, workdir?: string, env?: SessionEnv): boolean;
|
|
8
11
|
export declare function setSessionEnvironment(sessionName: string, env: SessionEnv): boolean;
|
package/dist/core/tmux.js
CHANGED
|
@@ -19,13 +19,30 @@ export function createSession(agentName, command, workdir, env) {
|
|
|
19
19
|
return false;
|
|
20
20
|
}
|
|
21
21
|
try {
|
|
22
|
+
// Build environment prefix for the command
|
|
23
|
+
// This ensures env vars are set BEFORE the process starts
|
|
24
|
+
let envPrefix = "";
|
|
25
|
+
if (env) {
|
|
26
|
+
const envParts = [];
|
|
27
|
+
for (const [key, value] of Object.entries(env)) {
|
|
28
|
+
if (value !== undefined && value !== "") {
|
|
29
|
+
// Escape special characters in value
|
|
30
|
+
const escapedValue = value.replace(/"/g, '\\"');
|
|
31
|
+
envParts.push(`${key}="${escapedValue}"`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
if (envParts.length > 0) {
|
|
35
|
+
envPrefix = envParts.join(" ") + " ";
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
const fullCommand = `${envPrefix}${command}`;
|
|
22
39
|
const args = ["new-session", "-d", "-s", sessionName];
|
|
23
40
|
if (workdir) {
|
|
24
41
|
args.push("-c", workdir);
|
|
25
42
|
}
|
|
26
|
-
args.push(
|
|
43
|
+
args.push(fullCommand);
|
|
27
44
|
execSync(`tmux ${args.join(" ")}`);
|
|
28
|
-
//
|
|
45
|
+
// Also set session environment for any subsequent processes/refreshes
|
|
29
46
|
if (env) {
|
|
30
47
|
setSessionEnvironment(sessionName, env);
|
|
31
48
|
}
|
|
@@ -38,11 +55,10 @@ export function createSession(agentName, command, workdir, env) {
|
|
|
38
55
|
}
|
|
39
56
|
export function setSessionEnvironment(sessionName, env) {
|
|
40
57
|
try {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
execSync(`tmux set-environment -t "${sessionName}" AGENTMESH_AGENT_ID "${env.AGENTMESH_AGENT_ID}"`);
|
|
58
|
+
for (const [key, value] of Object.entries(env)) {
|
|
59
|
+
if (value !== undefined && value !== "") {
|
|
60
|
+
execSync(`tmux set-environment -t "${sessionName}" ${key} "${value}"`);
|
|
61
|
+
}
|
|
46
62
|
}
|
|
47
63
|
return true;
|
|
48
64
|
}
|