@agentmeshhq/agent 0.2.0 → 0.3.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.
- package/README.md +39 -0
- package/dist/__tests__/context-template.test.d.ts +4 -0
- package/dist/__tests__/context-template.test.js +233 -0
- package/dist/__tests__/context-template.test.js.map +1 -0
- package/dist/__tests__/loader.test.js +140 -28
- package/dist/__tests__/loader.test.js.map +1 -1
- package/dist/__tests__/no-respawn.test.d.ts +1 -0
- package/dist/__tests__/no-respawn.test.js +254 -0
- package/dist/__tests__/no-respawn.test.js.map +1 -0
- package/dist/__tests__/onboard.test.d.ts +5 -0
- package/dist/__tests__/onboard.test.js +341 -0
- package/dist/__tests__/onboard.test.js.map +1 -0
- package/dist/__tests__/orphan-process.test.d.ts +11 -0
- package/dist/__tests__/orphan-process.test.js +286 -0
- package/dist/__tests__/orphan-process.test.js.map +1 -0
- package/dist/__tests__/runner.test.js +16 -0
- package/dist/__tests__/runner.test.js.map +1 -1
- package/dist/__tests__/shared-resource-guards.test.d.ts +7 -0
- package/dist/__tests__/shared-resource-guards.test.js +260 -0
- package/dist/__tests__/shared-resource-guards.test.js.map +1 -0
- package/dist/__tests__/watchdog.test.js +138 -12
- package/dist/__tests__/watchdog.test.js.map +1 -1
- package/dist/cli/status.js +11 -0
- package/dist/cli/status.js.map +1 -1
- package/dist/cli/stop.js +7 -2
- package/dist/cli/stop.js.map +1 -1
- package/dist/config/loader.d.ts +0 -4
- package/dist/config/loader.js +102 -42
- package/dist/config/loader.js.map +1 -1
- package/dist/config/schema.d.ts +6 -4
- package/dist/core/daemon/assignment-message.d.ts +12 -0
- package/dist/core/daemon/assignment-message.js +36 -0
- package/dist/core/daemon/assignment-message.js.map +1 -0
- package/dist/core/daemon/bootstrap.d.ts +35 -0
- package/dist/core/daemon/bootstrap.js +52 -0
- package/dist/core/daemon/bootstrap.js.map +1 -0
- package/dist/core/daemon/context-template.d.ts +11 -0
- package/dist/core/daemon/context-template.js +144 -0
- package/dist/core/daemon/context-template.js.map +1 -0
- package/dist/core/daemon/crash-log.d.ts +14 -0
- package/dist/core/daemon/crash-log.js +23 -0
- package/dist/core/daemon/crash-log.js.map +1 -0
- package/dist/core/daemon/git-auth.d.ts +18 -0
- package/dist/core/daemon/git-auth.js +88 -0
- package/dist/core/daemon/git-auth.js.map +1 -0
- package/dist/core/daemon/health-policy.d.ts +17 -0
- package/dist/core/daemon/health-policy.js +24 -0
- package/dist/core/daemon/health-policy.js.map +1 -0
- package/dist/core/daemon/sandbox-config.d.ts +9 -0
- package/dist/core/daemon/sandbox-config.js +17 -0
- package/dist/core/daemon/sandbox-config.js.map +1 -0
- package/dist/core/daemon/state.d.ts +33 -0
- package/dist/core/daemon/state.js +78 -0
- package/dist/core/daemon/state.js.map +1 -0
- package/dist/core/daemon/tmux-session.d.ts +17 -0
- package/dist/core/daemon/tmux-session.js +34 -0
- package/dist/core/daemon/tmux-session.js.map +1 -0
- package/dist/core/daemon/workspace.d.ts +23 -0
- package/dist/core/daemon/workspace.js +90 -0
- package/dist/core/daemon/workspace.js.map +1 -0
- package/dist/core/daemon.d.ts +9 -12
- package/dist/core/daemon.js +293 -393
- package/dist/core/daemon.js.map +1 -1
- package/dist/core/injector.d.ts +5 -1
- package/dist/core/injector.js +83 -0
- package/dist/core/injector.js.map +1 -1
- package/dist/core/registry.d.ts +62 -0
- package/dist/core/registry.js +18 -0
- package/dist/core/registry.js.map +1 -1
- package/dist/core/runner/build.d.ts +9 -0
- package/dist/core/runner/build.js +53 -0
- package/dist/core/runner/build.js.map +1 -0
- package/dist/core/runner/detect.d.ts +5 -0
- package/dist/core/runner/detect.js +14 -0
- package/dist/core/runner/detect.js.map +1 -0
- package/dist/core/runner/index.d.ts +5 -0
- package/dist/core/runner/index.js +5 -0
- package/dist/core/runner/index.js.map +1 -0
- package/dist/core/runner/model.d.ts +5 -0
- package/dist/core/runner/model.js +7 -0
- package/dist/core/runner/model.js.map +1 -0
- package/dist/core/runner/opencode-models.d.ts +15 -0
- package/dist/core/runner/opencode-models.js +70 -0
- package/dist/core/runner/opencode-models.js.map +1 -0
- package/dist/core/runner/types.d.ts +19 -0
- package/dist/core/runner/types.js +8 -0
- package/dist/core/runner/types.js.map +1 -0
- package/dist/core/runner.d.ts +5 -47
- package/dist/core/runner.js +5 -167
- package/dist/core/runner.js.map +1 -1
- package/dist/core/tmux-runtime.d.ts +13 -0
- package/dist/core/tmux-runtime.js +72 -0
- package/dist/core/tmux-runtime.js.map +1 -0
- package/dist/core/tmux.d.ts +7 -1
- package/dist/core/tmux.js +75 -45
- package/dist/core/tmux.js.map +1 -1
- package/dist/core/watchdog.d.ts +18 -1
- package/dist/core/watchdog.js +78 -29
- package/dist/core/watchdog.js.map +1 -1
- package/package.json +24 -4
- package/src/__tests__/context.test.ts +0 -464
- package/src/__tests__/injector.test.ts +0 -29
- package/src/__tests__/jwt.test.ts +0 -112
- package/src/__tests__/loader.test.ts +0 -239
- package/src/__tests__/runner.test.ts +0 -104
- package/src/__tests__/sandbox.test.ts +0 -435
- package/src/__tests__/watchdog.test.ts +0 -368
- package/src/cli/attach.ts +0 -22
- package/src/cli/build.ts +0 -145
- package/src/cli/config.ts +0 -148
- package/src/cli/context.ts +0 -231
- package/src/cli/deploy.ts +0 -155
- package/src/cli/index.ts +0 -376
- package/src/cli/init.ts +0 -75
- package/src/cli/list.ts +0 -70
- package/src/cli/local.ts +0 -183
- package/src/cli/logs.ts +0 -64
- package/src/cli/migrate.ts +0 -212
- package/src/cli/nudge.ts +0 -81
- package/src/cli/restart.ts +0 -59
- package/src/cli/slack.ts +0 -70
- package/src/cli/start.ts +0 -118
- package/src/cli/status.ts +0 -91
- package/src/cli/stop.ts +0 -48
- package/src/cli/test.ts +0 -143
- package/src/cli/token.ts +0 -188
- package/src/cli/whoami.ts +0 -142
- package/src/config/loader.ts +0 -121
- package/src/config/schema.ts +0 -68
- package/src/context/handoff.ts +0 -122
- package/src/context/index.ts +0 -8
- package/src/context/schema.ts +0 -111
- package/src/context/storage.ts +0 -197
- package/src/core/daemon.ts +0 -1317
- package/src/core/heartbeat.ts +0 -129
- package/src/core/injector.ts +0 -292
- package/src/core/registry.ts +0 -159
- package/src/core/runner.ts +0 -225
- package/src/core/sandbox.ts +0 -547
- package/src/core/session-id.ts +0 -111
- package/src/core/tmux.ts +0 -405
- package/src/core/watchdog.ts +0 -238
- package/src/core/websocket.ts +0 -94
- package/src/index.ts +0 -10
- package/src/utils/jwt.ts +0 -87
- package/tsconfig.json +0 -8
- package/vitest.config.ts +0 -12
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { loadContext } from "../../context/index.js";
|
|
2
|
+
import { snapshotSessionId } from "../session-id.js";
|
|
3
|
+
import { createSession, getSessionName, sessionExists, updateSessionEnvironment, } from "../tmux.js";
|
|
4
|
+
/**
|
|
5
|
+
* Starts or reconnects to the interactive tmux runtime session.
|
|
6
|
+
*/
|
|
7
|
+
export function startTmuxRuntimeSession(input) {
|
|
8
|
+
const sessionName = getSessionName(input.agentName);
|
|
9
|
+
const alreadyExists = sessionExists(sessionName);
|
|
10
|
+
if (!alreadyExists) {
|
|
11
|
+
let savedSessionId;
|
|
12
|
+
if (input.shouldRestoreContext && input.agentId) {
|
|
13
|
+
const savedContext = loadContext(input.agentId);
|
|
14
|
+
savedSessionId = savedContext?.custom?.opencodeSessionId;
|
|
15
|
+
if (savedSessionId) {
|
|
16
|
+
console.log(`[CONTEXT] Found saved OpenCode session ID: ${savedSessionId}`);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
const preStartSessionId = snapshotSessionId(input.agentName);
|
|
20
|
+
console.log(`Creating tmux session: ${sessionName}`);
|
|
21
|
+
const created = createSession(input.agentName, input.command, input.workdir, input.runnerEnv, savedSessionId);
|
|
22
|
+
if (!created) {
|
|
23
|
+
throw new Error("Failed to create tmux session");
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
preStartSessionId,
|
|
27
|
+
attemptedResumeSessionId: savedSessionId,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
console.log(`Reconnecting to existing session: ${sessionName}`);
|
|
31
|
+
updateSessionEnvironment(input.agentName, input.runnerEnv);
|
|
32
|
+
return {};
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=tmux-session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tmux-session.js","sourceRoot":"","sources":["../../../src/core/daemon/tmux-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EACL,aAAa,EACb,cAAc,EAEd,aAAa,EACb,wBAAwB,GACzB,MAAM,YAAY,CAAC;AAgBpB;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAA4B;IAClE,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACpD,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAEjD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,IAAI,cAAkC,CAAC;QAEvC,IAAI,KAAK,CAAC,oBAAoB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAChD,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAChD,cAAc,GAAG,YAAY,EAAE,MAAM,EAAE,iBAAuC,CAAC;YAC/E,IAAI,cAAc,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,8CAA8C,cAAc,EAAE,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;QAED,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAE7D,OAAO,CAAC,GAAG,CAAC,0BAA0B,WAAW,EAAE,CAAC,CAAC;QAErD,MAAM,OAAO,GAAG,aAAa,CAC3B,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,SAAS,EACf,cAAc,CACf,CAAC;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QAED,OAAO;YACL,iBAAiB;YACjB,wBAAwB,EAAE,cAAc;SACzC,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,qCAAqC,WAAW,EAAE,CAAC,CAAC;IAChE,wBAAwB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3D,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface WorkspaceSetupInput {
|
|
2
|
+
workspacePath: string;
|
|
3
|
+
repoUrl: string;
|
|
4
|
+
defaultBranch: string;
|
|
5
|
+
projectName: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Ensures a project workspace exists and is on the target default branch.
|
|
9
|
+
*/
|
|
10
|
+
export declare function setupWorkspace(input: WorkspaceSetupInput): string;
|
|
11
|
+
export interface GitIdentityInput {
|
|
12
|
+
workspacePath: string;
|
|
13
|
+
agentName: string;
|
|
14
|
+
agentDisplayName: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Sets local git user.name and user.email for the workspace.
|
|
18
|
+
*/
|
|
19
|
+
export declare function configureGitIdentity(input: GitIdentityInput): void;
|
|
20
|
+
/**
|
|
21
|
+
* Validates push access with a dry-run push (non-fatal).
|
|
22
|
+
*/
|
|
23
|
+
export declare function validatePushAccess(workspacePath: string, remoteBranch?: string): boolean;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { execSync } from "node:child_process";
|
|
2
|
+
import fs from "node:fs";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
/**
|
|
5
|
+
* Ensures a project workspace exists and is on the target default branch.
|
|
6
|
+
*/
|
|
7
|
+
export function setupWorkspace(input) {
|
|
8
|
+
const { workspacePath, repoUrl, defaultBranch, projectName } = input;
|
|
9
|
+
console.log(`\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`);
|
|
10
|
+
console.log(`🔧 AUTO-SETUP: Setting up workspace for ${projectName}`);
|
|
11
|
+
console.log(`━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n`);
|
|
12
|
+
const gitDir = path.join(workspacePath, ".git");
|
|
13
|
+
if (fs.existsSync(gitDir)) {
|
|
14
|
+
console.log(`✓ Workspace already exists: ${workspacePath}`);
|
|
15
|
+
console.log(" Updating from remote...");
|
|
16
|
+
try {
|
|
17
|
+
execSync("git fetch origin", { cwd: workspacePath, stdio: "inherit" });
|
|
18
|
+
execSync(`git checkout ${defaultBranch}`, { cwd: workspacePath, stdio: "inherit" });
|
|
19
|
+
execSync(`git pull origin ${defaultBranch}`, { cwd: workspacePath, stdio: "inherit" });
|
|
20
|
+
console.log("✓ Workspace updated successfully\n");
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
console.warn(`⚠ Could not update workspace: ${error.message}`);
|
|
24
|
+
console.log(" Continuing with existing state...\n");
|
|
25
|
+
}
|
|
26
|
+
return workspacePath;
|
|
27
|
+
}
|
|
28
|
+
const parentDir = path.dirname(workspacePath);
|
|
29
|
+
if (!fs.existsSync(parentDir)) {
|
|
30
|
+
console.log(`Creating directory: ${parentDir}`);
|
|
31
|
+
fs.mkdirSync(parentDir, { recursive: true });
|
|
32
|
+
}
|
|
33
|
+
console.log("Cloning repository...");
|
|
34
|
+
console.log(` URL: ${repoUrl}`);
|
|
35
|
+
console.log(` Path: ${workspacePath}`);
|
|
36
|
+
console.log(` Branch: ${defaultBranch}\n`);
|
|
37
|
+
try {
|
|
38
|
+
execSync(`git clone --branch ${defaultBranch} "${repoUrl}" "${workspacePath}"`, {
|
|
39
|
+
stdio: "inherit",
|
|
40
|
+
});
|
|
41
|
+
console.log("\n✓ Repository cloned successfully");
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
console.error(`\n✗ Failed to clone repository: ${error.message}`);
|
|
45
|
+
console.error("\nMake sure you have access to the repository and SSH keys are configured.");
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
console.log(`✓ Workspace ready: ${workspacePath}\n`);
|
|
49
|
+
return workspacePath;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Sets local git user.name and user.email for the workspace.
|
|
53
|
+
*/
|
|
54
|
+
export function configureGitIdentity(input) {
|
|
55
|
+
const { workspacePath, agentName, agentDisplayName } = input;
|
|
56
|
+
try {
|
|
57
|
+
execSync(`git config user.name "${agentDisplayName}"`, {
|
|
58
|
+
cwd: workspacePath,
|
|
59
|
+
stdio: "pipe",
|
|
60
|
+
});
|
|
61
|
+
execSync(`git config user.email "${agentName}@agents.agentmeshhq.dev"`, {
|
|
62
|
+
cwd: workspacePath,
|
|
63
|
+
stdio: "pipe",
|
|
64
|
+
});
|
|
65
|
+
console.log(`✓ Git identity configured: ${agentDisplayName} <${agentName}@agents.agentmeshhq.dev>`);
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
console.warn(`⚠ Could not configure git identity: ${error.message}`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Validates push access with a dry-run push (non-fatal).
|
|
73
|
+
*/
|
|
74
|
+
export function validatePushAccess(workspacePath, remoteBranch) {
|
|
75
|
+
const target = remoteBranch ?? "HEAD";
|
|
76
|
+
try {
|
|
77
|
+
execSync(`git push --dry-run origin ${target}`, {
|
|
78
|
+
cwd: workspacePath,
|
|
79
|
+
stdio: "pipe",
|
|
80
|
+
timeout: 15_000,
|
|
81
|
+
});
|
|
82
|
+
console.log("✓ Push access validated");
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
console.warn(`⚠ Push access validation failed: ${error.message}`);
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=workspace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../../src/core/daemon/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAS7B;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAA0B;IACvD,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAErE,OAAO,CAAC,GAAG,CAAC,oFAAoF,CAAC,CAAC;IAClG,OAAO,CAAC,GAAG,CAAC,2CAA2C,WAAW,EAAE,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,oFAAoF,CAAC,CAAC;IAElG,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAChD,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,+BAA+B,aAAa,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QAEzC,IAAI,CAAC;YACH,QAAQ,CAAC,kBAAkB,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YACvE,QAAQ,CAAC,gBAAgB,aAAa,EAAE,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YACpF,QAAQ,CAAC,mBAAmB,aAAa,EAAE,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YACvF,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,iCAAkC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QACvD,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAC;QAChD,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,WAAW,aAAa,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,aAAa,aAAa,IAAI,CAAC,CAAC;IAE5C,IAAI,CAAC;QACH,QAAQ,CAAC,sBAAsB,aAAa,KAAK,OAAO,MAAM,aAAa,GAAG,EAAE;YAC9E,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,mCAAoC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7E,OAAO,CAAC,KAAK,CAAC,4EAA4E,CAAC,CAAC;QAC5F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,sBAAsB,aAAa,IAAI,CAAC,CAAC;IACrD,OAAO,aAAa,CAAC;AACvB,CAAC;AAYD;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAuB;IAC1D,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,KAAK,CAAC;IAC7D,IAAI,CAAC;QACH,QAAQ,CAAC,yBAAyB,gBAAgB,GAAG,EAAE;YACrD,GAAG,EAAE,aAAa;YAClB,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;QACH,QAAQ,CAAC,0BAA0B,SAAS,0BAA0B,EAAE;YACtE,GAAG,EAAE,aAAa;YAClB,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CACT,8BAA8B,gBAAgB,KAAK,SAAS,0BAA0B,CACvF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,uCAAwC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;IAClF,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,aAAqB,EAAE,YAAqB;IAC7E,MAAM,MAAM,GAAG,YAAY,IAAI,MAAM,CAAC;IACtC,IAAI,CAAC;QACH,QAAQ,CAAC,6BAA6B,MAAM,EAAE,EAAE;YAC9C,GAAG,EAAE,aAAa;YAClB,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,oCAAqC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7E,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
package/dist/core/daemon.d.ts
CHANGED
|
@@ -44,13 +44,11 @@ export declare class AgentDaemon {
|
|
|
44
44
|
private sandboxImage;
|
|
45
45
|
private sandboxCpu;
|
|
46
46
|
private sandboxMemory;
|
|
47
|
+
private onboardData;
|
|
47
48
|
private sandbox;
|
|
48
49
|
private healthCheckInterval;
|
|
49
|
-
private serverContext;
|
|
50
50
|
private _preStartSessionId;
|
|
51
51
|
private _attemptedResumeSessionId;
|
|
52
|
-
private restartCount;
|
|
53
|
-
private lastStableTime;
|
|
54
52
|
private stuckSince;
|
|
55
53
|
private nudgeSentAt;
|
|
56
54
|
constructor(options: DaemonOptions);
|
|
@@ -68,10 +66,6 @@ export declare class AgentDaemon {
|
|
|
68
66
|
* Handles stuck agent - sends nudge first, then restarts if still stuck
|
|
69
67
|
*/
|
|
70
68
|
private handleStuckAgent;
|
|
71
|
-
/**
|
|
72
|
-
* Restarts the agent session (sandbox or non-sandbox)
|
|
73
|
-
*/
|
|
74
|
-
private restartSession;
|
|
75
69
|
stop(): Promise<void>;
|
|
76
70
|
/**
|
|
77
71
|
* Starts opencode serve mode (for Integration Service)
|
|
@@ -96,14 +90,17 @@ export declare class AgentDaemon {
|
|
|
96
90
|
* Uses project.workdir from HQ as source of truth, falls back to helpful instructions
|
|
97
91
|
*/
|
|
98
92
|
private checkAssignments;
|
|
99
|
-
/**
|
|
100
|
-
* Sets up workspace by cloning repository or using existing clone
|
|
101
|
-
* Returns the absolute path to the workspace
|
|
102
|
-
*/
|
|
103
|
-
private setupWorkspace;
|
|
104
93
|
/**
|
|
105
94
|
* Ensures the sandbox OpenCode config exists
|
|
106
95
|
* Creates ~/.agentmesh/opencode-sandbox.json with permissive permissions and model
|
|
107
96
|
*/
|
|
108
97
|
private ensureSandboxOpencodeConfig;
|
|
98
|
+
/**
|
|
99
|
+
* Caches onboard data to disk for offline fallback
|
|
100
|
+
*/
|
|
101
|
+
private cacheOnboardData;
|
|
102
|
+
/**
|
|
103
|
+
* Loads cached onboard data from disk (without credentials)
|
|
104
|
+
*/
|
|
105
|
+
private loadCachedOnboardData;
|
|
109
106
|
}
|