@agentmeshhq/agent 0.4.1 → 0.4.3

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 (122) hide show
  1. package/dist/__tests__/bootstrap.test.d.ts +1 -0
  2. package/dist/__tests__/bootstrap.test.js +39 -0
  3. package/dist/__tests__/bootstrap.test.js.map +1 -0
  4. package/dist/__tests__/claims.integration.test.d.ts +1 -0
  5. package/dist/__tests__/claims.integration.test.js +128 -0
  6. package/dist/__tests__/claims.integration.test.js.map +1 -0
  7. package/dist/__tests__/context-template.test.js +15 -0
  8. package/dist/__tests__/context-template.test.js.map +1 -1
  9. package/dist/__tests__/evicted-cleanup.test.d.ts +10 -0
  10. package/dist/__tests__/evicted-cleanup.test.js +459 -0
  11. package/dist/__tests__/evicted-cleanup.test.js.map +1 -0
  12. package/dist/__tests__/handoff-sla.test.d.ts +1 -0
  13. package/dist/__tests__/handoff-sla.test.js +29 -0
  14. package/dist/__tests__/handoff-sla.test.js.map +1 -0
  15. package/dist/__tests__/handoff.integration.test.d.ts +1 -0
  16. package/dist/__tests__/handoff.integration.test.js +77 -0
  17. package/dist/__tests__/handoff.integration.test.js.map +1 -0
  18. package/dist/__tests__/injector.test.js +31 -2
  19. package/dist/__tests__/injector.test.js.map +1 -1
  20. package/dist/__tests__/local.test.d.ts +1 -0
  21. package/dist/__tests__/local.test.js +124 -0
  22. package/dist/__tests__/local.test.js.map +1 -0
  23. package/dist/__tests__/registry.claims.test.d.ts +1 -0
  24. package/dist/__tests__/registry.claims.test.js +70 -0
  25. package/dist/__tests__/registry.claims.test.js.map +1 -0
  26. package/dist/__tests__/registry.retry.test.d.ts +1 -0
  27. package/dist/__tests__/registry.retry.test.js +33 -0
  28. package/dist/__tests__/registry.retry.test.js.map +1 -0
  29. package/dist/__tests__/status.test.d.ts +1 -0
  30. package/dist/__tests__/status.test.js +55 -0
  31. package/dist/__tests__/status.test.js.map +1 -0
  32. package/dist/__tests__/tmux-send.test.d.ts +10 -0
  33. package/dist/__tests__/tmux-send.test.js +96 -0
  34. package/dist/__tests__/tmux-send.test.js.map +1 -0
  35. package/dist/__tests__/worker.test.d.ts +1 -0
  36. package/dist/__tests__/worker.test.js +51 -0
  37. package/dist/__tests__/worker.test.js.map +1 -0
  38. package/dist/cli/autopilot.d.ts +17 -0
  39. package/dist/cli/autopilot.js +20 -0
  40. package/dist/cli/autopilot.js.map +1 -0
  41. package/dist/cli/claims.d.ts +18 -0
  42. package/dist/cli/claims.js +133 -0
  43. package/dist/cli/claims.js.map +1 -0
  44. package/dist/cli/handoff.d.ts +22 -0
  45. package/dist/cli/handoff.js +147 -0
  46. package/dist/cli/handoff.js.map +1 -0
  47. package/dist/cli/inbox.d.ts +5 -0
  48. package/dist/cli/inbox.js +123 -0
  49. package/dist/cli/inbox.js.map +1 -0
  50. package/dist/cli/index.js +496 -13
  51. package/dist/cli/index.js.map +1 -1
  52. package/dist/cli/issue.d.ts +42 -0
  53. package/dist/cli/issue.js +297 -0
  54. package/dist/cli/issue.js.map +1 -0
  55. package/dist/cli/local.d.ts +27 -6
  56. package/dist/cli/local.js +319 -36
  57. package/dist/cli/local.js.map +1 -1
  58. package/dist/cli/ready.d.ts +5 -0
  59. package/dist/cli/ready.js +131 -0
  60. package/dist/cli/ready.js.map +1 -0
  61. package/dist/cli/start.d.ts +2 -0
  62. package/dist/cli/start.js +3 -0
  63. package/dist/cli/start.js.map +1 -1
  64. package/dist/cli/status.d.ts +14 -1
  65. package/dist/cli/status.js +46 -1
  66. package/dist/cli/status.js.map +1 -1
  67. package/dist/cli/sync.d.ts +8 -0
  68. package/dist/cli/sync.js +154 -0
  69. package/dist/cli/sync.js.map +1 -0
  70. package/dist/cli/token.js +242 -9
  71. package/dist/cli/token.js.map +1 -1
  72. package/dist/cli/whoami.d.ts +6 -0
  73. package/dist/cli/whoami.js +109 -5
  74. package/dist/cli/whoami.js.map +1 -1
  75. package/dist/cli/worker.d.ts +2 -0
  76. package/dist/cli/worker.js +52 -0
  77. package/dist/cli/worker.js.map +1 -0
  78. package/dist/config/schema.d.ts +12 -0
  79. package/dist/core/cleanup/eligibility.d.ts +41 -0
  80. package/dist/core/cleanup/eligibility.js +64 -0
  81. package/dist/core/cleanup/eligibility.js.map +1 -0
  82. package/dist/core/cleanup/scheduler.d.ts +50 -0
  83. package/dist/core/cleanup/scheduler.js +120 -0
  84. package/dist/core/cleanup/scheduler.js.map +1 -0
  85. package/dist/core/cleanup/worker.d.ts +63 -0
  86. package/dist/core/cleanup/worker.js +191 -0
  87. package/dist/core/cleanup/worker.js.map +1 -0
  88. package/dist/core/daemon/bootstrap.d.ts +2 -0
  89. package/dist/core/daemon/bootstrap.js +10 -1
  90. package/dist/core/daemon/bootstrap.js.map +1 -1
  91. package/dist/core/daemon/context-template.d.ts +7 -2
  92. package/dist/core/daemon/context-template.js +18 -11
  93. package/dist/core/daemon/context-template.js.map +1 -1
  94. package/dist/core/daemon/workspace.d.ts +5 -0
  95. package/dist/core/daemon/workspace.js +47 -7
  96. package/dist/core/daemon/workspace.js.map +1 -1
  97. package/dist/core/daemon.d.ts +20 -0
  98. package/dist/core/daemon.js +304 -20
  99. package/dist/core/daemon.js.map +1 -1
  100. package/dist/core/handoff-sla.d.ts +6 -0
  101. package/dist/core/handoff-sla.js +29 -0
  102. package/dist/core/handoff-sla.js.map +1 -0
  103. package/dist/core/heartbeat.d.ts +6 -1
  104. package/dist/core/heartbeat.js +44 -39
  105. package/dist/core/heartbeat.js.map +1 -1
  106. package/dist/core/injector.js +2 -2
  107. package/dist/core/injector.js.map +1 -1
  108. package/dist/core/issue-cache.d.ts +44 -0
  109. package/dist/core/issue-cache.js +75 -0
  110. package/dist/core/issue-cache.js.map +1 -0
  111. package/dist/core/registry.d.ts +48 -0
  112. package/dist/core/registry.js +106 -0
  113. package/dist/core/registry.js.map +1 -1
  114. package/dist/core/tmux-runtime.js +5 -2
  115. package/dist/core/tmux-runtime.js.map +1 -1
  116. package/dist/core/token-lifecycle.d.ts +81 -0
  117. package/dist/core/token-lifecycle.js +210 -0
  118. package/dist/core/token-lifecycle.js.map +1 -0
  119. package/dist/core/token-lifecycle.test.d.ts +10 -0
  120. package/dist/core/token-lifecycle.test.js +309 -0
  121. package/dist/core/token-lifecycle.test.js.map +1 -0
  122. package/package.json +1 -1
@@ -0,0 +1,191 @@
1
+ /**
2
+ * Cleanup Worker — GH-421
3
+ *
4
+ * Executes filesystem cleanup for eviction-eligible agents:
5
+ * 1. Stop any residual tmux session for the agent
6
+ * 2. Optionally archive diagnostics (last N log lines)
7
+ * 3. Remove ~/.agentmesh/opencode-data/<agentName>
8
+ * 4. Remove ~/.agentmesh/agents/<agentName>.waiting signal file if present
9
+ * 5. Emit a structured audit event for every action
10
+ *
11
+ * Safety guarantees:
12
+ * - Dry-run mode: logs actions without touching filesystem
13
+ * - Idempotent: re-running on an already-cleaned agent is a no-op
14
+ * - Never removes paths outside ~/.agentmesh/opencode-data/
15
+ * - Never removes the base ~/.agentmesh/ directory
16
+ */
17
+ import { execSync } from "node:child_process";
18
+ import fs from "node:fs";
19
+ import os from "node:os";
20
+ import path from "node:path";
21
+ // ─── path helpers ─────────────────────────────────────────────────────────────
22
+ function agentDataDir(agentName, homeDir) {
23
+ return path.join(homeDir, ".agentmesh", "opencode-data", agentName);
24
+ }
25
+ function agentWaitingFile(agentName, homeDir) {
26
+ return path.join(homeDir, ".agentmesh", "agents", `${agentName}.waiting`);
27
+ }
28
+ function agentLogDir(agentName, homeDir) {
29
+ return path.join(homeDir, ".agentmesh", "opencode-data", agentName, "opencode", "log");
30
+ }
31
+ function archivePath(agentName, homeDir) {
32
+ const ts = new Date().toISOString().replace(/[:.]/g, "-");
33
+ return path.join(homeDir, ".agentmesh", "logs", `cleanup-${agentName}-${ts}.txt`);
34
+ }
35
+ // ─── tmux helpers ─────────────────────────────────────────────────────────────
36
+ /** Returns true if a tmux session named <agentName> exists. */
37
+ function tmuxSessionExists(agentName) {
38
+ try {
39
+ execSync(`tmux has-session -t "${agentName}" 2>/dev/null`, { stdio: "pipe" });
40
+ return true;
41
+ }
42
+ catch {
43
+ return false;
44
+ }
45
+ }
46
+ /** Kill the tmux session for an agent (best-effort). */
47
+ function killTmuxSession(agentName) {
48
+ execSync(`tmux kill-session -t "${agentName}" 2>/dev/null || true`, { stdio: "pipe" });
49
+ }
50
+ // ─── log archive ─────────────────────────────────────────────────────────────
51
+ /**
52
+ * Read the last N lines from the newest log file in the agent's log directory.
53
+ * Returns null if no logs found.
54
+ */
55
+ function readLastLogLines(logDir, maxLines) {
56
+ try {
57
+ if (!fs.existsSync(logDir))
58
+ return null;
59
+ const files = fs
60
+ .readdirSync(logDir)
61
+ .filter((f) => f.endsWith(".log"))
62
+ .map((f) => ({ name: f, mtime: fs.statSync(path.join(logDir, f)).mtimeMs }))
63
+ .sort((a, b) => b.mtime - a.mtime);
64
+ if (files.length === 0)
65
+ return null;
66
+ const logPath = path.join(logDir, files[0].name);
67
+ const content = fs.readFileSync(logPath, "utf8");
68
+ const lines = content.split("\n");
69
+ return lines.slice(-maxLines).join("\n");
70
+ }
71
+ catch {
72
+ return null;
73
+ }
74
+ }
75
+ // ─── main cleanup ─────────────────────────────────────────────────────────────
76
+ /**
77
+ * Clean up the filesystem artifacts for a single eviction-eligible agent.
78
+ *
79
+ * Steps (all logged as CleanupAction entries):
80
+ * 1. Kill residual tmux session (if present)
81
+ * 2. Archive last N log lines to ~/.agentmesh/logs/cleanup-<agent>-<ts>.txt
82
+ * 3. Remove ~/.agentmesh/opencode-data/<agentName>/ recursively
83
+ * 4. Remove ~/.agentmesh/agents/<agentName>.waiting (if exists)
84
+ */
85
+ export async function cleanupAgent(agent, opts = {}) {
86
+ const { dryRun = false, archiveLogLines = 200 } = opts;
87
+ const homeDir = opts.homeDir ?? os.homedir();
88
+ const actions = [];
89
+ const agentName = agent.displayName;
90
+ const action = (type, detail, filePath) => {
91
+ const a = {
92
+ type,
93
+ agentId: agent.agentId,
94
+ agentName,
95
+ path: filePath,
96
+ detail,
97
+ timestamp: new Date().toISOString(),
98
+ dryRun,
99
+ };
100
+ actions.push(a);
101
+ const prefix = dryRun ? "[DRY-RUN]" : "[CLEANUP]";
102
+ console.log(`${prefix} ${type} agent=${agentName}${detail ? ` — ${detail}` : ""}`);
103
+ return a;
104
+ };
105
+ try {
106
+ // ── 1. Kill tmux session ──────────────────────────────────────────────────
107
+ if (tmuxSessionExists(agentName)) {
108
+ if (dryRun) {
109
+ action("skipped_dry_run", "would kill tmux session");
110
+ }
111
+ else {
112
+ killTmuxSession(agentName);
113
+ action("session_killed", `killed tmux session: ${agentName}`);
114
+ }
115
+ }
116
+ else {
117
+ action("session_not_found", `no tmux session for: ${agentName}`);
118
+ }
119
+ // ── 2. Archive diagnostics ────────────────────────────────────────────────
120
+ if (archiveLogLines > 0) {
121
+ const logDir = agentLogDir(agentName, homeDir);
122
+ const lastLines = readLastLogLines(logDir, archiveLogLines);
123
+ if (lastLines) {
124
+ const dest = archivePath(agentName, homeDir);
125
+ if (dryRun) {
126
+ action("skipped_dry_run", `would archive ${archiveLogLines} log lines to ${dest}`);
127
+ }
128
+ else {
129
+ fs.mkdirSync(path.dirname(dest), { recursive: true });
130
+ const header = `# Cleanup archive for ${agentName} (${agent.agentId})\n# Generated: ${new Date().toISOString()}\n\n`;
131
+ fs.writeFileSync(dest, header + lastLines, "utf8");
132
+ action("logs_archived", `archived to ${dest}`, dest);
133
+ }
134
+ }
135
+ }
136
+ // ── 3. Remove opencode-data directory ────────────────────────────────────
137
+ const dataDir = agentDataDir(agentName, homeDir);
138
+ // Safety: only remove directories strictly under ~/.agentmesh/opencode-data/
139
+ const allowedBase = path.join(homeDir, ".agentmesh", "opencode-data");
140
+ if (!dataDir.startsWith(allowedBase + path.sep)) {
141
+ throw new Error(`SAFETY: dataDir ${dataDir} is outside allowed base ${allowedBase}`);
142
+ }
143
+ if (fs.existsSync(dataDir)) {
144
+ if (dryRun) {
145
+ action("skipped_dry_run", `would remove ${dataDir}`, dataDir);
146
+ }
147
+ else {
148
+ fs.rmSync(dataDir, { recursive: true, force: true });
149
+ action("dir_removed", `removed ${dataDir}`, dataDir);
150
+ }
151
+ }
152
+ else {
153
+ action("dir_not_found", `${dataDir} already absent`, dataDir);
154
+ }
155
+ // ── 4. Remove .waiting signal file ───────────────────────────────────────
156
+ const waitingFile = agentWaitingFile(agentName, homeDir);
157
+ if (fs.existsSync(waitingFile)) {
158
+ if (dryRun) {
159
+ action("skipped_dry_run", `would remove ${waitingFile}`, waitingFile);
160
+ }
161
+ else {
162
+ fs.unlinkSync(waitingFile);
163
+ action("waiting_file_removed", `removed ${waitingFile}`, waitingFile);
164
+ }
165
+ }
166
+ return { agentId: agent.agentId, agentName, success: true, actions };
167
+ }
168
+ catch (err) {
169
+ const msg = err instanceof Error ? err.message : String(err);
170
+ action("error", msg);
171
+ return { agentId: agent.agentId, agentName, success: false, actions, error: msg };
172
+ }
173
+ }
174
+ /**
175
+ * Run cleanup for multiple eligible agents.
176
+ * Failures on one agent never abort the others.
177
+ */
178
+ export async function cleanupAgents(agents, opts = {}) {
179
+ const results = [];
180
+ for (const agent of agents) {
181
+ const result = await cleanupAgent(agent, opts);
182
+ results.push(result);
183
+ }
184
+ return {
185
+ processed: results.length,
186
+ succeeded: results.filter((r) => r.success).length,
187
+ failed: results.filter((r) => !r.success).length,
188
+ results,
189
+ };
190
+ }
191
+ //# sourceMappingURL=worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/core/cleanup/worker.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ export interface BootstrapOptions {
16
16
  sandboxMemory?: string;
17
17
  project?: string;
18
18
  role?: string;
19
+ autoAcceptHandoffs?: boolean;
19
20
  }
20
21
  export interface DaemonBootstrap {
21
22
  config: Config;
@@ -32,6 +33,7 @@ export interface DaemonBootstrap {
32
33
  sandboxMemory: string;
33
34
  projectCode: string | undefined;
34
35
  projectRole: string;
36
+ autoAcceptHandoffs: boolean;
35
37
  }
36
38
  /**
37
39
  * Resolves daemon runtime configuration from persisted config + CLI overrides.
@@ -34,12 +34,20 @@ export function bootstrapDaemon(options) {
34
34
  defaultModel: config.defaults.model,
35
35
  command: agentConfig.command,
36
36
  });
37
+ const inferWorkerFromRole = (role) => {
38
+ if (!role)
39
+ return false;
40
+ const normalized = role.trim().toLowerCase();
41
+ // Non-human contributor roles should default to worker mode for autonomy controls.
42
+ return !["product-owner", "po", "architect", "concierge"].includes(normalized);
43
+ };
44
+ const workerMode = options.worker === true || inferWorkerFromRole(options.role);
37
45
  return {
38
46
  config,
39
47
  agentConfig,
40
48
  runnerConfig,
41
49
  shouldRestoreContext: options.restoreContext === true,
42
- isWorkerAgent: options.worker === true,
50
+ isWorkerAgent: workerMode,
43
51
  autoSetup: options.autoSetup === true,
44
52
  serveMode: options.serve === true,
45
53
  servePort: options.servePort || 3001,
@@ -49,6 +57,7 @@ export function bootstrapDaemon(options) {
49
57
  sandboxMemory: options.sandboxMemory || "2g",
50
58
  projectCode: options.project,
51
59
  projectRole: options.role || "dev",
60
+ autoAcceptHandoffs: workerMode && options.autoAcceptHandoffs !== false,
52
61
  };
53
62
  }
54
63
  //# sourceMappingURL=bootstrap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../src/core/daemon/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAqB,MAAM,cAAc,CAAC;AAqCpE;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAAyB;IACvD,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;IACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,CAAC,QAAQ,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,4BAA4B,EAAE,CAAC;IACjF,CAAC;IAED,IAAI,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAErE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,WAAW,GAAG;YACZ,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO;YACnD,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK;SAC9C,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,OAAO;QAAE,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAC3D,IAAI,OAAO,CAAC,OAAO;QAAE,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAC3D,IAAI,OAAO,CAAC,KAAK;QAAE,WAAW,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAErD,MAAM,YAAY,GAAG,iBAAiB,CAAC;QACrC,QAAQ,EAAE,OAAO,CAAC,KAAK;QACvB,UAAU,EAAE,WAAW,CAAC,KAAK;QAC7B,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK;QACnC,OAAO,EAAE,WAAW,CAAC,OAAO;KAC7B,CAAC,CAAC;IAEH,OAAO;QACL,MAAM;QACN,WAAW;QACX,YAAY;QACZ,oBAAoB,EAAE,OAAO,CAAC,cAAc,KAAK,IAAI;QACrD,aAAa,EAAE,OAAO,CAAC,MAAM,KAAK,IAAI;QACtC,SAAS,EAAE,OAAO,CAAC,SAAS,KAAK,IAAI;QACrC,SAAS,EAAE,OAAO,CAAC,KAAK,KAAK,IAAI;QACjC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;QACpC,WAAW,EAAE,OAAO,CAAC,OAAO,KAAK,IAAI;QACrC,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,gCAAgC;QACtE,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,GAAG;QACrC,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI;QAC5C,WAAW,EAAE,OAAO,CAAC,OAAO;QAC5B,WAAW,EAAE,OAAO,CAAC,IAAI,IAAI,KAAK;KACnC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../src/core/daemon/bootstrap.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,14 @@
3
3
  * Renders project context as a persistent file (complements ephemeral tmux injection).
4
4
  */
5
5
  import type { OnboardData } from "../registry.js";
6
- export declare function generateClaudeMd(onboard: OnboardData): string;
7
- export declare function writeClaudeMd({ workdir, onboard, }: {
6
+ export interface ClaudeMdOptions {
7
+ hubUrl: string;
8
+ token: string;
9
+ }
10
+ export declare function generateClaudeMd(onboard: OnboardData, options?: ClaudeMdOptions): string;
11
+ export declare function writeClaudeMd({ workdir, onboard, options, }: {
8
12
  workdir: string;
9
13
  onboard: OnboardData;
14
+ options?: ClaudeMdOptions;
10
15
  }): string | null;
11
16
  export declare function removeClaudeMd(workdir: string): void;
@@ -4,10 +4,7 @@
4
4
  */
5
5
  import fs from "node:fs";
6
6
  import path from "node:path";
7
- // ---------------------------------------------------------------------------
8
- // Pure renderer
9
- // ---------------------------------------------------------------------------
10
- export function generateClaudeMd(onboard) {
7
+ export function generateClaudeMd(onboard, options) {
11
8
  const lines = [];
12
9
  lines.push("<!-- AUTO-GENERATED by AgentMesh — do not edit manually -->");
13
10
  lines.push("");
@@ -71,12 +68,22 @@ export function generateClaudeMd(onboard) {
71
68
  // ── Hub API Reference ─────────────────────────────────────────────
72
69
  lines.push("## Hub API");
73
70
  lines.push("");
71
+ if (options?.hubUrl) {
72
+ lines.push(`- **Hub URL**: \`${options.hubUrl}\``);
73
+ }
74
+ if (options?.token) {
75
+ lines.push(`- **Auth**: \`Authorization: Bearer ${options.token}\``);
76
+ }
77
+ lines.push("");
74
78
  const api = onboard.hub_api;
75
- lines.push(`- **Handoffs**: \`${api.handoffs}\``);
76
- lines.push(`- **Claims**: \`${api.claims}\``);
77
- lines.push(`- **Blockers**: \`${api.blockers}\``);
78
- lines.push(`- **Inbox**: \`${api.inbox}\``);
79
- lines.push(`- **Heartbeat**: \`${api.heartbeat}\``);
79
+ const base = options?.hubUrl ?? "";
80
+ const stripMethod = (s) => s.replace(/^(GET|POST|PUT|PATCH|DELETE)\s+/, "");
81
+ const method = (s) => s.split(" ")[0];
82
+ lines.push(`- **Handoffs**: \`${method(api.handoffs)} ${base}${stripMethod(api.handoffs)}\``);
83
+ lines.push(`- **Claims**: \`${method(api.claims)} ${base}${stripMethod(api.claims)}\``);
84
+ lines.push(`- **Blockers**: \`${method(api.blockers)} ${base}${stripMethod(api.blockers)}\``);
85
+ lines.push(`- **Inbox**: \`${method(api.inbox)} ${base}${stripMethod(api.inbox)}\``);
86
+ lines.push(`- **Heartbeat**: \`${method(api.heartbeat)} ${base}${stripMethod(api.heartbeat)}\``);
80
87
  lines.push("");
81
88
  // ── Repositories (NO credentials) ─────────────────────────────────
82
89
  if (onboard.repos.length > 0) {
@@ -103,12 +110,12 @@ export function generateClaudeMd(onboard) {
103
110
  // ---------------------------------------------------------------------------
104
111
  // File I/O
105
112
  // ---------------------------------------------------------------------------
106
- export function writeClaudeMd({ workdir, onboard, }) {
113
+ export function writeClaudeMd({ workdir, onboard, options, }) {
107
114
  if (!fs.existsSync(workdir)) {
108
115
  return null;
109
116
  }
110
117
  const filePath = path.join(workdir, "CLAUDE.md");
111
- const content = generateClaudeMd(onboard);
118
+ const content = generateClaudeMd(onboard, options);
112
119
  fs.writeFileSync(filePath, content, { encoding: "utf-8" });
113
120
  // Ensure CLAUDE.md is in .gitignore
114
121
  const gitignorePath = path.join(workdir, ".gitignore");
@@ -1 +1 @@
1
- {"version":3,"file":"context-template.js","sourceRoot":"","sources":["../../../src/core/daemon/context-template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-template.js","sourceRoot":"","sources":["../../../src/core/daemon/context-template.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,11 @@ export interface WorkspaceSetupInput {
4
4
  defaultBranch: string;
5
5
  projectName: string;
6
6
  }
7
+ export declare function updateWorkspaceFromRemote(workspacePath: string, defaultBranch: string): {
8
+ ok: boolean;
9
+ autoStashed: boolean;
10
+ stashRef?: string;
11
+ };
7
12
  /**
8
13
  * Ensures a project workspace exists and is on the target default branch.
9
14
  */
@@ -1,6 +1,43 @@
1
1
  import { execSync } from "node:child_process";
2
2
  import fs from "node:fs";
3
3
  import path from "node:path";
4
+ function shouldAutoStashOnPullError(message) {
5
+ return (message.includes("would be overwritten by merge") ||
6
+ message.includes("Your local changes to the following files would be overwritten"));
7
+ }
8
+ export function updateWorkspaceFromRemote(workspacePath, defaultBranch) {
9
+ try {
10
+ execSync("git fetch origin", { cwd: workspacePath, stdio: "pipe", timeout: 30_000 });
11
+ execSync(`git checkout ${defaultBranch}`, { cwd: workspacePath, stdio: "pipe", timeout: 30_000 });
12
+ execSync(`git pull origin ${defaultBranch}`, { cwd: workspacePath, stdio: "pipe", timeout: 30_000 });
13
+ return { ok: true, autoStashed: false };
14
+ }
15
+ catch (error) {
16
+ const message = error instanceof Error
17
+ ? [error.message, error.stderr ?? ""].join("\n")
18
+ : String(error);
19
+ if (!shouldAutoStashOnPullError(message)) {
20
+ return { ok: false, autoStashed: false };
21
+ }
22
+ const stashLabel = `agentmesh-autostash-${new Date().toISOString()}`;
23
+ try {
24
+ execSync(`git stash push -u -m "${stashLabel}"`, {
25
+ cwd: workspacePath,
26
+ stdio: "pipe",
27
+ timeout: 30_000,
28
+ });
29
+ execSync(`git pull origin ${defaultBranch}`, {
30
+ cwd: workspacePath,
31
+ stdio: "pipe",
32
+ timeout: 30_000,
33
+ });
34
+ return { ok: true, autoStashed: true, stashRef: stashLabel };
35
+ }
36
+ catch {
37
+ return { ok: false, autoStashed: false };
38
+ }
39
+ }
40
+ }
4
41
  /**
5
42
  * Ensures a project workspace exists and is on the target default branch.
6
43
  */
@@ -13,14 +50,17 @@ export function setupWorkspace(input) {
13
50
  if (fs.existsSync(gitDir)) {
14
51
  console.log(`✓ Workspace already exists: ${workspacePath}`);
15
52
  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");
53
+ const update = updateWorkspaceFromRemote(workspacePath, defaultBranch);
54
+ if (update.ok) {
55
+ if (update.autoStashed) {
56
+ console.log(`✓ Workspace updated after auto-stash (${update.stashRef})\n`);
57
+ }
58
+ else {
59
+ console.log("✓ Workspace updated successfully\n");
60
+ }
21
61
  }
22
- catch (error) {
23
- console.warn(`⚠ Could not update workspace: ${error.message}`);
62
+ else {
63
+ console.warn("⚠ Could not update workspace from remote");
24
64
  console.log(" Continuing with existing state...\n");
25
65
  }
26
66
  return workspacePath;
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../../src/core/daemon/workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../../src/core/daemon/workspace.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,8 @@ export interface DaemonOptions {
26
26
  project?: string;
27
27
  /** Role for auto-assignment (default: dev) */
28
28
  role?: string;
29
+ /** Auto-accept pending handoffs in worker mode (default: enabled for --worker) */
30
+ autoAcceptHandoffs?: boolean;
29
31
  }
30
32
  export declare class AgentDaemon {
31
33
  private agentName;
@@ -52,17 +54,35 @@ export declare class AgentDaemon {
52
54
  private sandbox;
53
55
  private projectCode;
54
56
  private projectRole;
57
+ private autoAcceptHandoffs;
55
58
  private healthCheckInterval;
59
+ private stopCleanupScheduler;
56
60
  private _preStartSessionId;
57
61
  private _attemptedResumeSessionId;
58
62
  private stuckSince;
59
63
  private nudgeSentAt;
64
+ private lastPendingHandoffAlertAt;
65
+ private remoteAutomationPaused;
66
+ private lastAutonomyPolicyFetchAt;
67
+ private pendingClaimCreations;
60
68
  constructor(options: DaemonOptions);
61
69
  start(): Promise<void>;
62
70
  /**
63
71
  * Starts periodic health monitoring for the tmux session
64
72
  * Includes auto-restart logic and progress watchdog
65
73
  */
74
+ private autoAcceptPendingHandoffs;
75
+ private autoAcceptHandoffFromEvent;
76
+ private isAutomationPaused;
77
+ private refreshRemoteAutonomyPolicy;
78
+ private acceptHandoffWithRetry;
79
+ private checkPendingHandoffSla;
80
+ private getAutoClaimScope;
81
+ private getAutoClaimPaths;
82
+ private ensureClaimForHandoff;
83
+ private releaseClaimForHandoff;
84
+ private releaseAllAutoClaims;
85
+ private reconcileAutoClaims;
66
86
  private startHealthMonitor;
67
87
  /**
68
88
  * Handles session death - logs crash and attempts auto-restart