@renseiai/agentfactory 0.8.29 → 0.8.31

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.
@@ -12,4 +12,5 @@ export * from './workflow/index.js';
12
12
  export * from './routing/index.js';
13
13
  export * from './registry/index.js';
14
14
  export * from './merge-queue/index.js';
15
+ export * from './package-manager.js';
15
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,aAAa,CAAA;AAC3B,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,aAAa,CAAA;AAC3B,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA"}
package/dist/src/index.js CHANGED
@@ -12,3 +12,4 @@ export * from './workflow/index.js';
12
12
  export * from './routing/index.js';
13
13
  export * from './registry/index.js';
14
14
  export * from './merge-queue/index.js';
15
+ export * from './package-manager.js';
@@ -1,4 +1,5 @@
1
- export type PackageManager = 'pnpm' | 'npm' | 'yarn' | 'bun' | 'none';
1
+ import { type PackageManager } from '../package-manager.js';
2
+ export type { PackageManager } from '../package-manager.js';
2
3
  export interface RegenerationResult {
3
4
  success: boolean;
4
5
  lockFile: string;
@@ -1 +1 @@
1
- {"version":3,"file":"lock-file-regeneration.d.ts","sourceRoot":"","sources":["../../../src/merge-queue/lock-file-regeneration.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAA;AAuBrE,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,cAAc,CAAA;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,oBAAoB;IAC/B,gBAAgB,CAAC,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,OAAO,GAAG,OAAO;IAItF,eAAe,CAAC,cAAc,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI;IAIxD,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAmC7F,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAuB3F"}
1
+ {"version":3,"file":"lock-file-regeneration.d.ts","sourceRoot":"","sources":["../../../src/merge-queue/lock-file-regeneration.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,cAAc,EAIpB,MAAM,uBAAuB,CAAA;AAK9B,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAE3D,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,cAAc,CAAA;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,oBAAoB;IAC/B,gBAAgB,CAAC,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,OAAO,GAAG,OAAO;IAItF,eAAe,CAAC,cAAc,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI;IAKxD,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAuC7F,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAwB3F"}
@@ -2,30 +2,15 @@ import { exec as execCb } from 'child_process';
2
2
  import { promisify } from 'util';
3
3
  import { readFile, writeFile, access } from 'fs/promises';
4
4
  import { join } from 'path';
5
+ import { LOCK_FILES, GITATTRIBUTES_ENTRIES, getRegenerateCommand, } from '../package-manager.js';
5
6
  const exec = promisify(execCb);
6
- const LOCK_FILES = {
7
- pnpm: 'pnpm-lock.yaml',
8
- npm: 'package-lock.json',
9
- yarn: 'yarn.lock',
10
- bun: 'bun.lockb',
11
- };
12
- const INSTALL_COMMANDS = {
13
- pnpm: 'pnpm install --no-frozen-lockfile',
14
- npm: 'npm install',
15
- yarn: 'yarn install',
16
- bun: 'bun install',
17
- };
18
- const GITATTRIBUTES_ENTRIES = {
19
- pnpm: 'pnpm-lock.yaml merge=ours',
20
- npm: 'package-lock.json merge=ours',
21
- yarn: 'yarn.lock merge=ours',
22
- bun: 'bun.lockb merge=ours',
23
- };
24
7
  export class LockFileRegeneration {
25
8
  shouldRegenerate(packageManager, lockFileRegenerate) {
26
9
  return lockFileRegenerate && packageManager !== 'none';
27
10
  }
28
11
  getLockFileName(packageManager) {
12
+ if (packageManager === 'none')
13
+ return null;
29
14
  return LOCK_FILES[packageManager] ?? null;
30
15
  }
31
16
  async regenerate(worktreePath, packageManager) {
@@ -33,7 +18,10 @@ export class LockFileRegeneration {
33
18
  if (!lockFile) {
34
19
  return { success: false, lockFile: '', packageManager, error: `Unsupported package manager: ${packageManager}` };
35
20
  }
36
- const installCommand = INSTALL_COMMANDS[packageManager];
21
+ const installCommand = getRegenerateCommand(packageManager);
22
+ if (!installCommand) {
23
+ return { success: false, lockFile: '', packageManager, error: `No install command for: ${packageManager}` };
24
+ }
37
25
  try {
38
26
  // 1. Delete the conflicted lock file (if it exists)
39
27
  const lockFilePath = join(worktreePath, lockFile);
@@ -60,6 +48,8 @@ export class LockFileRegeneration {
60
48
  }
61
49
  }
62
50
  async ensureGitAttributes(repoPath, packageManager) {
51
+ if (packageManager === 'none')
52
+ return;
63
53
  const entry = GITATTRIBUTES_ENTRIES[packageManager];
64
54
  if (!entry)
65
55
  return;
@@ -234,6 +234,14 @@ export declare class AgentOrchestrator {
234
234
  * node_modules first, then running `pnpm add` with the guard bypass.
235
235
  */
236
236
  private writeWorktreeHelpers;
237
+ /**
238
+ * Bootstrap worktree dependencies from origin/main.
239
+ * Ensures the lockfile and root package.json in the worktree match the latest
240
+ * remote main, not the (potentially stale) local main the worktree branched from.
241
+ * Framework-neutral: uses getLockFileName() to resolve the correct lockfile.
242
+ * No-op for packageManager 'none'.
243
+ */
244
+ private bootstrapWorktreeDeps;
237
245
  /**
238
246
  * Configure mergiraf as the git merge driver in a worktree.
239
247
  * Uses worktree-local git config so mergiraf only runs in agent worktrees.
@@ -260,9 +268,9 @@ export declare class AgentOrchestrator {
260
268
  * resolving through a directory-level symlink and corrupting the main
261
269
  * repo's node_modules when an agent accidentally runs `pnpm install`.
262
270
  *
263
- * For non-Node repos (no node_modules in main repo), this is a no-op.
271
+ * For non-Node repos (packageManager 'none' or no node_modules), this is a no-op.
264
272
  *
265
- * Falls back to `pnpm install --frozen-lockfile` if symlinking fails.
273
+ * Falls back to install via the configured package manager if symlinking fails.
266
274
  */
267
275
  linkDependencies(worktreePath: string, identifier: string): void;
268
276
  /**
@@ -294,7 +302,7 @@ export declare class AgentOrchestrator {
294
302
  */
295
303
  private linkNodeModulesContents;
296
304
  /**
297
- * Fallback: install dependencies via pnpm install.
305
+ * Fallback: install dependencies via the configured package manager.
298
306
  * Only called when symlinking fails.
299
307
  */
300
308
  private installDependencies;
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../src/orchestrator/orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../src/orchestrator/orchestrator.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,7 @@ import { createLogger } from '../logger.js';
25
25
  import { TemplateRegistry, CodexToolPermissionAdapter, createToolPermissionAdapter } from '../templates/index.js';
26
26
  import { loadRepositoryConfig, getProjectConfig, getProvidersConfig } from '../config/index.js';
27
27
  import { ToolRegistry } from '../tools/index.js';
28
+ import { getLockFileName, getInstallCommand, getAddCommand } from '../package-manager.js';
28
29
  import { createMergeQueueAdapter } from '../merge-queue/index.js';
29
30
  // Default inactivity timeout: 5 minutes
30
31
  const DEFAULT_INACTIVITY_TIMEOUT_MS = 300000;
@@ -1623,10 +1624,24 @@ export class AgentOrchestrator {
1623
1624
  }
1624
1625
  }
1625
1626
  console.log(`Creating worktree: ${worktreePath} (branch: ${branchName})`);
1626
- // Determine the base branch for new worktrees
1627
- // Always base new feature branches on 'main' to avoid HEAD resolution issues
1628
- // when running from worktrees with deleted branches (e.g., after PR merge in acceptance)
1629
- const baseBranch = 'main';
1627
+ // Fetch latest main from remote so worktrees start with current deps/lockfiles.
1628
+ // Non-fatal: offline/CI environments may not have network access.
1629
+ let hasRemoteMain = false;
1630
+ try {
1631
+ execSync('git fetch origin main', {
1632
+ stdio: 'pipe',
1633
+ encoding: 'utf-8',
1634
+ cwd: this.gitRoot,
1635
+ timeout: 30_000,
1636
+ });
1637
+ hasRemoteMain = true;
1638
+ }
1639
+ catch {
1640
+ console.warn('Failed to fetch origin/main — proceeding with local main');
1641
+ }
1642
+ // Base new feature branches on origin/main (latest remote) when available,
1643
+ // falling back to local main for offline environments.
1644
+ const baseBranch = hasRemoteMain ? 'origin/main' : 'main';
1630
1645
  // Try to create worktree with new branch
1631
1646
  // Uses a two-attempt strategy: if a branch conflict is detected and the
1632
1647
  // conflicting worktree's agent is no longer alive, clean it up and retry once.
@@ -1720,6 +1735,8 @@ export class AgentOrchestrator {
1720
1735
  this.writeWorktreeHelpers(worktreePath);
1721
1736
  // Configure mergiraf merge driver if enabled
1722
1737
  this.configureMergiraf(worktreePath);
1738
+ // Bootstrap lockfile and package.json from origin/main
1739
+ this.bootstrapWorktreeDeps(worktreePath);
1723
1740
  // Capture quality baseline for delta checking (runs test/typecheck on main)
1724
1741
  if (this.isQualityBaselineEnabled()) {
1725
1742
  try {
@@ -1792,15 +1809,16 @@ export class AgentOrchestrator {
1792
1809
  * node_modules first, then running `pnpm add` with the guard bypass.
1793
1810
  */
1794
1811
  writeWorktreeHelpers(worktreePath) {
1795
- // Skip helper scripts for non-Node projects (no pnpm/npm available)
1796
- if (this.packageManager === 'none') {
1812
+ const pm = (this.packageManager ?? 'pnpm');
1813
+ // Skip helper scripts for non-Node projects
1814
+ if (pm === 'none')
1797
1815
  return;
1798
- }
1816
+ const addCmd = getAddCommand(pm) ?? `${pm} add`;
1799
1817
  const agentDir = resolve(worktreePath, '.agent');
1800
1818
  const scriptPath = resolve(agentDir, 'add-dep.sh');
1801
1819
  const script = `#!/bin/bash
1802
1820
  # Safe dependency addition for agents in worktrees.
1803
- # Removes symlinked node_modules, then runs pnpm add with guard bypass.
1821
+ # Removes symlinked node_modules, then runs ${addCmd} with guard bypass.
1804
1822
  # Usage: bash .agent/add-dep.sh <package> [--filter <workspace>]
1805
1823
  set -e
1806
1824
  if [ $# -eq 0 ]; then
@@ -1812,8 +1830,8 @@ rm -rf node_modules
1812
1830
  for subdir in apps packages; do
1813
1831
  [ -d "$subdir" ] && find "$subdir" -maxdepth 2 -name node_modules -type d -exec rm -rf {} + 2>/dev/null || true
1814
1832
  done
1815
- echo "Installing: pnpm add $@"
1816
- ORCHESTRATOR_INSTALL=1 exec pnpm add "$@"
1833
+ echo "Installing: ${addCmd} $@"
1834
+ ORCHESTRATOR_INSTALL=1 exec ${addCmd} "$@"
1817
1835
  `;
1818
1836
  try {
1819
1837
  if (!existsSync(agentDir)) {
@@ -1826,6 +1844,47 @@ ORCHESTRATOR_INSTALL=1 exec pnpm add "$@"
1826
1844
  console.warn(`Failed to write worktree helper scripts: ${error instanceof Error ? error.message : String(error)}`);
1827
1845
  }
1828
1846
  }
1847
+ /**
1848
+ * Bootstrap worktree dependencies from origin/main.
1849
+ * Ensures the lockfile and root package.json in the worktree match the latest
1850
+ * remote main, not the (potentially stale) local main the worktree branched from.
1851
+ * Framework-neutral: uses getLockFileName() to resolve the correct lockfile.
1852
+ * No-op for packageManager 'none'.
1853
+ */
1854
+ bootstrapWorktreeDeps(worktreePath) {
1855
+ const pm = (this.packageManager ?? 'pnpm');
1856
+ if (pm === 'none')
1857
+ return;
1858
+ const lockFile = getLockFileName(pm);
1859
+ if (!lockFile)
1860
+ return;
1861
+ // Copy lockfile from origin/main into the worktree
1862
+ try {
1863
+ const originLockContent = execSync(`git show origin/main:${lockFile}`, {
1864
+ encoding: 'utf-8',
1865
+ cwd: this.gitRoot,
1866
+ stdio: ['pipe', 'pipe', 'pipe'],
1867
+ timeout: 10_000,
1868
+ });
1869
+ writeFileSync(resolve(worktreePath, lockFile), originLockContent);
1870
+ }
1871
+ catch {
1872
+ // Lockfile may not exist on origin/main (new repo) or fetch failed — skip
1873
+ }
1874
+ // Copy root package.json from origin/main
1875
+ try {
1876
+ const originPkgContent = execSync('git show origin/main:package.json', {
1877
+ encoding: 'utf-8',
1878
+ cwd: this.gitRoot,
1879
+ stdio: ['pipe', 'pipe', 'pipe'],
1880
+ timeout: 10_000,
1881
+ });
1882
+ writeFileSync(resolve(worktreePath, 'package.json'), originPkgContent);
1883
+ }
1884
+ catch {
1885
+ // Skip if not found
1886
+ }
1887
+ }
1829
1888
  /**
1830
1889
  * Configure mergiraf as the git merge driver in a worktree.
1831
1890
  * Uses worktree-local git config so mergiraf only runs in agent worktrees.
@@ -1943,11 +2002,14 @@ ORCHESTRATOR_INSTALL=1 exec pnpm add "$@"
1943
2002
  * resolving through a directory-level symlink and corrupting the main
1944
2003
  * repo's node_modules when an agent accidentally runs `pnpm install`.
1945
2004
  *
1946
- * For non-Node repos (no node_modules in main repo), this is a no-op.
2005
+ * For non-Node repos (packageManager 'none' or no node_modules), this is a no-op.
1947
2006
  *
1948
- * Falls back to `pnpm install --frozen-lockfile` if symlinking fails.
2007
+ * Falls back to install via the configured package manager if symlinking fails.
1949
2008
  */
1950
2009
  linkDependencies(worktreePath, identifier) {
2010
+ const pm = (this.packageManager ?? 'pnpm');
2011
+ if (pm === 'none')
2012
+ return;
1951
2013
  // Use the main repo root (set at construction from process.cwd()) for node_modules.
1952
2014
  // Worktrees are sibling directories that don't contain node_modules.
1953
2015
  const repoRoot = this.gitRoot ?? resolveMainRepoRoot(worktreePath) ?? findRepoRoot(worktreePath);
@@ -2036,12 +2098,14 @@ ORCHESTRATOR_INSTALL=1 exec pnpm add "$@"
2036
2098
  return false;
2037
2099
  // Sentinel packages that should always be present in a Node.js project
2038
2100
  const sentinels = ['typescript'];
2039
- // Also check for .modules.yaml (pnpm store metadata) if it exists in main
2040
- const repoRoot = findRepoRoot(worktreePath);
2041
- if (repoRoot) {
2042
- const pnpmMeta = resolve(repoRoot, 'node_modules', '.modules.yaml');
2043
- if (existsSync(pnpmMeta)) {
2044
- sentinels.push('.modules.yaml');
2101
+ // Also check for .modules.yaml (pnpm store metadata) if using pnpm
2102
+ if ((this.packageManager ?? 'pnpm') === 'pnpm') {
2103
+ const repoRoot = findRepoRoot(worktreePath);
2104
+ if (repoRoot) {
2105
+ const pnpmMeta = resolve(repoRoot, 'node_modules', '.modules.yaml');
2106
+ if (existsSync(pnpmMeta)) {
2107
+ sentinels.push('.modules.yaml');
2108
+ }
2045
2109
  }
2046
2110
  }
2047
2111
  for (const pkg of sentinels) {
@@ -2153,18 +2217,25 @@ ORCHESTRATOR_INSTALL=1 exec pnpm add "$@"
2153
2217
  }
2154
2218
  }
2155
2219
  /**
2156
- * Fallback: install dependencies via pnpm install.
2220
+ * Fallback: install dependencies via the configured package manager.
2157
2221
  * Only called when symlinking fails.
2158
2222
  */
2159
2223
  installDependencies(worktreePath, identifier) {
2160
- console.log(`[${identifier}] Installing dependencies via pnpm...`);
2224
+ const pm = (this.packageManager ?? 'pnpm');
2225
+ if (pm === 'none')
2226
+ return;
2227
+ const frozenCmd = getInstallCommand(pm, true);
2228
+ const baseCmd = getInstallCommand(pm, false);
2229
+ if (!baseCmd)
2230
+ return;
2231
+ console.log(`[${identifier}] Installing dependencies via ${pm}...`);
2161
2232
  // Remove any node_modules from a partial linkDependencies attempt
2162
2233
  this.removeWorktreeNodeModules(worktreePath);
2163
2234
  // Set ORCHESTRATOR_INSTALL=1 to bypass the preinstall guard script
2164
- // that blocks pnpm install in worktrees (to prevent symlink corruption).
2235
+ // that blocks installs in worktrees (to prevent symlink corruption).
2165
2236
  const installEnv = { ...process.env, ORCHESTRATOR_INSTALL: '1' };
2166
2237
  try {
2167
- execSync('pnpm install --frozen-lockfile 2>&1', {
2238
+ execSync(`${frozenCmd ?? baseCmd} 2>&1`, {
2168
2239
  cwd: worktreePath,
2169
2240
  stdio: 'pipe',
2170
2241
  encoding: 'utf-8',
@@ -2175,7 +2246,7 @@ ORCHESTRATOR_INSTALL=1 exec pnpm add "$@"
2175
2246
  }
2176
2247
  catch {
2177
2248
  try {
2178
- execSync('pnpm install 2>&1', {
2249
+ execSync(`${baseCmd} 2>&1`, {
2179
2250
  cwd: worktreePath,
2180
2251
  stdio: 'pipe',
2181
2252
  encoding: 'utf-8',
@@ -2197,28 +2268,59 @@ ORCHESTRATOR_INSTALL=1 exec pnpm add "$@"
2197
2268
  * updates the main repo's node_modules, then re-links into the worktree.
2198
2269
  */
2199
2270
  syncDependencies(worktreePath, identifier) {
2271
+ const pm = (this.packageManager ?? 'pnpm');
2272
+ if (pm === 'none')
2273
+ return;
2200
2274
  const repoRoot = this.gitRoot ?? resolveMainRepoRoot(worktreePath) ?? findRepoRoot(worktreePath);
2201
2275
  if (!repoRoot) {
2202
2276
  this.linkDependencies(worktreePath, identifier);
2203
2277
  return;
2204
2278
  }
2205
- const worktreeLock = resolve(worktreePath, 'pnpm-lock.yaml');
2206
- const mainLock = resolve(repoRoot, 'pnpm-lock.yaml');
2207
- // Detect lockfile drift: if the worktree has a lockfile that differs from main,
2208
- // a dev agent added/changed dependencies on the branch
2209
- let lockfileDrifted = false;
2279
+ const lockFileName = getLockFileName(pm);
2280
+ if (!lockFileName) {
2281
+ this.linkDependencies(worktreePath, identifier);
2282
+ return;
2283
+ }
2284
+ const worktreeLock = resolve(worktreePath, lockFileName);
2285
+ const mainLock = resolve(repoRoot, lockFileName);
2286
+ // Detect behind-drift: worktree lockfile is stale vs origin/main
2287
+ // (main was bumped after this worktree was created or last synced)
2288
+ let behindDrift = false;
2289
+ try {
2290
+ const originLock = execSync(`git show origin/main:${lockFileName}`, {
2291
+ encoding: 'utf-8',
2292
+ cwd: this.gitRoot,
2293
+ stdio: ['pipe', 'pipe', 'pipe'],
2294
+ timeout: 10_000,
2295
+ });
2296
+ if (existsSync(worktreeLock)) {
2297
+ const wtContent = readFileSync(worktreeLock, 'utf-8');
2298
+ if (wtContent !== originLock) {
2299
+ console.log(`[${identifier}] Lockfile behind origin/main — updating worktree`);
2300
+ writeFileSync(worktreeLock, originLock);
2301
+ behindDrift = true;
2302
+ }
2303
+ }
2304
+ }
2305
+ catch {
2306
+ // git show failed (no remote, no lockfile on main) — skip behind-drift check
2307
+ }
2308
+ // Detect ahead-drift: worktree lockfile differs from main repo
2309
+ // (agent added/changed dependencies on the branch)
2310
+ let aheadDrift = false;
2210
2311
  if (existsSync(worktreeLock) && existsSync(mainLock)) {
2211
2312
  try {
2212
2313
  const wtContent = readFileSync(worktreeLock, 'utf-8');
2213
2314
  const mainContent = readFileSync(mainLock, 'utf-8');
2214
- lockfileDrifted = wtContent !== mainContent;
2315
+ aheadDrift = wtContent !== mainContent;
2215
2316
  }
2216
2317
  catch {
2217
2318
  // If we can't read either file, proceed without sync
2218
2319
  }
2219
2320
  }
2220
- if (lockfileDrifted) {
2221
- console.log(`[${identifier}] Lockfile drift detected syncing main repo dependencies`);
2321
+ if (aheadDrift || behindDrift) {
2322
+ const driftType = behindDrift && aheadDrift ? 'bidirectional' : behindDrift ? 'behind-main' : 'ahead-of-main';
2323
+ console.log(`[${identifier}] Lockfile drift detected (${driftType}) — syncing main repo dependencies`);
2222
2324
  try {
2223
2325
  // Copy the worktree's lockfile to the main repo so install picks up new deps
2224
2326
  copyFileSync(worktreeLock, mainLock);
@@ -2247,8 +2349,9 @@ ORCHESTRATOR_INSTALL=1 exec pnpm add "$@"
2247
2349
  }
2248
2350
  }
2249
2351
  // Install in the main repo (not the worktree) to update node_modules
2352
+ const installCmd = getInstallCommand(pm, true) ?? `${pm} install`;
2250
2353
  const installEnv = { ...process.env, ORCHESTRATOR_INSTALL: '1' };
2251
- execSync('pnpm install --frozen-lockfile 2>&1', {
2354
+ execSync(`${installCmd} 2>&1`, {
2252
2355
  cwd: repoRoot,
2253
2356
  stdio: 'pipe',
2254
2357
  encoding: 'utf-8',
@@ -2370,6 +2473,7 @@ You are running in an AgentFactory-managed worktree. Follow these rules strictly
2370
2473
  projectPath: perProject?.path ?? this.projectPaths?.[projectName ?? ''],
2371
2474
  sharedPaths: this.sharedPaths,
2372
2475
  useToolPlugins: spawnProviderName === 'claude',
2476
+ hasCodeIntelligence: this.toolRegistry.getPlugins().some(p => p.name === 'af-code-intelligence'),
2373
2477
  linearCli: this.linearCli ?? 'pnpm af-linear',
2374
2478
  packageManager: perProject?.packageManager ?? this.packageManager ?? 'pnpm',
2375
2479
  buildCommand: perProject?.buildCommand ?? this.buildCommand,
@@ -2565,13 +2669,12 @@ You are running in an AgentFactory-managed worktree. Follow these rules strictly
2565
2669
  env.WORKER_AUTH_TOKEN = this.config.apiActivityConfig.apiKey;
2566
2670
  }
2567
2671
  log.info('Starting agent via provider', { provider: spawnProviderName, source: providerSource, cwd: worktreePath ?? 'repo-root', workType, promptPreview: prompt.substring(0, 50) });
2568
- // Create tool servers from registered plugins
2672
+ // Create stdio MCP server configs for tool plugins.
2673
+ // Stdio servers are used for all providers (Claude + Codex) so that
2674
+ // sub-agents spawned via the Agent tool inherit the tool servers.
2675
+ // In-process servers (createServers) only work for the top-level agent.
2569
2676
  const toolPluginContext = { env, cwd: worktreePath ?? process.cwd() };
2570
- const toolServers = spawnProviderName === 'claude'
2571
- ? this.toolRegistry.createServers(toolPluginContext)
2572
- : undefined;
2573
- // Create stdio MCP server configs for Codex provider (SUP-1744)
2574
- const stdioServers = spawnProviderName === 'codex'
2677
+ const stdioServers = this.toolRegistry.getPlugins().length > 0
2575
2678
  ? this.toolRegistry.createStdioServerConfigs(toolPluginContext)
2576
2679
  : undefined;
2577
2680
  // Coordinators need significantly more turns than standard agents
@@ -2594,8 +2697,7 @@ You are running in an AgentFactory-managed worktree. Follow these rules strictly
2594
2697
  abortController,
2595
2698
  autonomous: true,
2596
2699
  sandboxEnabled: this.config.sandboxEnabled,
2597
- mcpServers: toolServers?.servers,
2598
- mcpToolNames: toolServers?.toolNames,
2700
+ mcpToolNames: stdioServers?.toolNames,
2599
2701
  mcpStdioServers: stdioServers?.servers,
2600
2702
  maxTurns,
2601
2703
  baseInstructions: codexBaseInstructions,
@@ -4494,13 +4596,9 @@ You are running in an AgentFactory-managed worktree. Follow these rules strictly
4494
4596
  resuming: !!providerSessionId,
4495
4597
  workType: workType ?? 'development',
4496
4598
  });
4497
- // Create tool servers from registered plugins
4599
+ // Create stdio MCP server configs for tool plugins (same as spawn path)
4498
4600
  const toolPluginContext = { env, cwd: worktreePath ?? process.cwd() };
4499
- const toolServers = spawnProviderName === 'claude'
4500
- ? this.toolRegistry.createServers(toolPluginContext)
4501
- : undefined;
4502
- // Create stdio MCP server configs for Codex provider (SUP-1744)
4503
- const stdioServers = spawnProviderName === 'codex'
4601
+ const stdioServers = this.toolRegistry.getPlugins().length > 0
4504
4602
  ? this.toolRegistry.createStdioServerConfigs(toolPluginContext)
4505
4603
  : undefined;
4506
4604
  // Coordinators need significantly more turns than standard agents
@@ -4522,8 +4620,7 @@ You are running in an AgentFactory-managed worktree. Follow these rules strictly
4522
4620
  abortController,
4523
4621
  autonomous: true,
4524
4622
  sandboxEnabled: this.config.sandboxEnabled,
4525
- mcpServers: toolServers?.servers,
4526
- mcpToolNames: toolServers?.toolNames,
4623
+ mcpToolNames: stdioServers?.toolNames,
4527
4624
  mcpStdioServers: stdioServers?.servers,
4528
4625
  maxTurns,
4529
4626
  baseInstructions: codexBaseInstructions,
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Shared package manager constants and helpers.
3
+ *
4
+ * Used by the orchestrator (worktree bootstrap, dep sync, helper scripts),
5
+ * the merge queue (lockfile regeneration), and the CLI (af-add-dep).
6
+ *
7
+ * Framework-neutral: supports pnpm, npm, yarn, bun, and 'none' (non-Node projects).
8
+ */
9
+ export type PackageManager = 'pnpm' | 'npm' | 'yarn' | 'bun' | 'none';
10
+ export declare const LOCK_FILES: Record<Exclude<PackageManager, 'none'>, string>;
11
+ export declare const INSTALL_COMMANDS: Record<Exclude<PackageManager, 'none'>, string>;
12
+ export declare const ADD_COMMANDS: Record<Exclude<PackageManager, 'none'>, string>;
13
+ export declare const GITATTRIBUTES_ENTRIES: Record<Exclude<PackageManager, 'none'>, string>;
14
+ /** Get the lockfile name for a package manager, or null for 'none'. */
15
+ export declare function getLockFileName(pm: PackageManager): string | null;
16
+ /** Get the install command for a package manager, with optional frozen-lockfile flag. */
17
+ export declare function getInstallCommand(pm: PackageManager, frozen?: boolean): string | null;
18
+ /** Get the install command that explicitly allows lockfile regeneration. */
19
+ export declare function getRegenerateCommand(pm: PackageManager): string | null;
20
+ /** Get the "add package" command for a package manager. */
21
+ export declare function getAddCommand(pm: PackageManager): string | null;
22
+ /** Get the gitattributes merge=ours entry for a package manager's lockfile. */
23
+ export declare function getGitattributesEntry(pm: PackageManager): string | null;
24
+ //# sourceMappingURL=package-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../../src/package-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAA;AAErE,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,EAAE,MAAM,CAKtE,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,EAAE,MAAM,CAK5E,CAAA;AAiBD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,EAAE,MAAM,CAKxE,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,EAAE,MAAM,CAKjF,CAAA;AAED,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,CAGjE;AAED,yFAAyF;AACzF,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CASrF;AAED,4EAA4E;AAC5E,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,CAMtE;AAED,2DAA2D;AAC3D,wBAAgB,aAAa,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,CAG/D;AAED,+EAA+E;AAC/E,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,CAGvE"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Shared package manager constants and helpers.
3
+ *
4
+ * Used by the orchestrator (worktree bootstrap, dep sync, helper scripts),
5
+ * the merge queue (lockfile regeneration), and the CLI (af-add-dep).
6
+ *
7
+ * Framework-neutral: supports pnpm, npm, yarn, bun, and 'none' (non-Node projects).
8
+ */
9
+ export const LOCK_FILES = {
10
+ pnpm: 'pnpm-lock.yaml',
11
+ npm: 'package-lock.json',
12
+ yarn: 'yarn.lock',
13
+ bun: 'bun.lockb',
14
+ };
15
+ export const INSTALL_COMMANDS = {
16
+ pnpm: 'pnpm install',
17
+ npm: 'npm install',
18
+ yarn: 'yarn install',
19
+ bun: 'bun install',
20
+ };
21
+ const FROZEN_FLAGS = {
22
+ pnpm: '--frozen-lockfile',
23
+ npm: '--ci',
24
+ yarn: '--frozen-lockfile',
25
+ bun: '--frozen-lockfile',
26
+ };
27
+ /** Explicit "allow lockfile changes" flags (for lockfile regeneration). */
28
+ const NO_FROZEN_FLAGS = {
29
+ pnpm: '--no-frozen-lockfile',
30
+ npm: null,
31
+ yarn: null,
32
+ bun: null,
33
+ };
34
+ export const ADD_COMMANDS = {
35
+ pnpm: 'pnpm add',
36
+ npm: 'npm install',
37
+ yarn: 'yarn add',
38
+ bun: 'bun add',
39
+ };
40
+ export const GITATTRIBUTES_ENTRIES = {
41
+ pnpm: 'pnpm-lock.yaml merge=ours',
42
+ npm: 'package-lock.json merge=ours',
43
+ yarn: 'yarn.lock merge=ours',
44
+ bun: 'bun.lockb merge=ours',
45
+ };
46
+ /** Get the lockfile name for a package manager, or null for 'none'. */
47
+ export function getLockFileName(pm) {
48
+ if (pm === 'none')
49
+ return null;
50
+ return LOCK_FILES[pm] ?? null;
51
+ }
52
+ /** Get the install command for a package manager, with optional frozen-lockfile flag. */
53
+ export function getInstallCommand(pm, frozen) {
54
+ if (pm === 'none')
55
+ return null;
56
+ const base = INSTALL_COMMANDS[pm];
57
+ if (!base)
58
+ return null;
59
+ if (frozen) {
60
+ const flag = FROZEN_FLAGS[pm];
61
+ return flag ? `${base} ${flag}` : base;
62
+ }
63
+ return base;
64
+ }
65
+ /** Get the install command that explicitly allows lockfile regeneration. */
66
+ export function getRegenerateCommand(pm) {
67
+ if (pm === 'none')
68
+ return null;
69
+ const base = INSTALL_COMMANDS[pm];
70
+ if (!base)
71
+ return null;
72
+ const flag = NO_FROZEN_FLAGS[pm];
73
+ return flag ? `${base} ${flag}` : base;
74
+ }
75
+ /** Get the "add package" command for a package manager. */
76
+ export function getAddCommand(pm) {
77
+ if (pm === 'none')
78
+ return null;
79
+ return ADD_COMMANDS[pm] ?? null;
80
+ }
81
+ /** Get the gitattributes merge=ours entry for a package manager's lockfile. */
82
+ export function getGitattributesEntry(pm) {
83
+ if (pm === 'none')
84
+ return null;
85
+ return GITATTRIBUTES_ENTRIES[pm] ?? null;
86
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=package-manager.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-manager.test.d.ts","sourceRoot":"","sources":["../../src/package-manager.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,51 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { getLockFileName, getInstallCommand, getAddCommand, getGitattributesEntry, } from './package-manager.js';
3
+ describe('getLockFileName', () => {
4
+ it('returns correct lockfile for each package manager', () => {
5
+ expect(getLockFileName('pnpm')).toBe('pnpm-lock.yaml');
6
+ expect(getLockFileName('npm')).toBe('package-lock.json');
7
+ expect(getLockFileName('yarn')).toBe('yarn.lock');
8
+ expect(getLockFileName('bun')).toBe('bun.lockb');
9
+ });
10
+ it('returns null for none', () => {
11
+ expect(getLockFileName('none')).toBeNull();
12
+ });
13
+ });
14
+ describe('getInstallCommand', () => {
15
+ it('returns base install command without frozen flag', () => {
16
+ expect(getInstallCommand('pnpm')).toBe('pnpm install');
17
+ expect(getInstallCommand('npm')).toBe('npm install');
18
+ expect(getInstallCommand('yarn')).toBe('yarn install');
19
+ expect(getInstallCommand('bun')).toBe('bun install');
20
+ });
21
+ it('returns frozen install command when frozen is true', () => {
22
+ expect(getInstallCommand('pnpm', true)).toBe('pnpm install --frozen-lockfile');
23
+ expect(getInstallCommand('npm', true)).toBe('npm install --ci');
24
+ expect(getInstallCommand('yarn', true)).toBe('yarn install --frozen-lockfile');
25
+ expect(getInstallCommand('bun', true)).toBe('bun install --frozen-lockfile');
26
+ });
27
+ it('returns null for none', () => {
28
+ expect(getInstallCommand('none')).toBeNull();
29
+ expect(getInstallCommand('none', true)).toBeNull();
30
+ });
31
+ });
32
+ describe('getAddCommand', () => {
33
+ it('returns correct add command for each package manager', () => {
34
+ expect(getAddCommand('pnpm')).toBe('pnpm add');
35
+ expect(getAddCommand('npm')).toBe('npm install');
36
+ expect(getAddCommand('yarn')).toBe('yarn add');
37
+ expect(getAddCommand('bun')).toBe('bun add');
38
+ });
39
+ it('returns null for none', () => {
40
+ expect(getAddCommand('none')).toBeNull();
41
+ });
42
+ });
43
+ describe('getGitattributesEntry', () => {
44
+ it('returns correct gitattributes entry for each package manager', () => {
45
+ expect(getGitattributesEntry('pnpm')).toBe('pnpm-lock.yaml merge=ours');
46
+ expect(getGitattributesEntry('npm')).toBe('package-lock.json merge=ours');
47
+ });
48
+ it('returns null for none', () => {
49
+ expect(getGitattributesEntry('none')).toBeNull();
50
+ });
51
+ });
@@ -1 +1 @@
1
- {"version":3,"file":"claude-provider.d.ts","sourceRoot":"","sources":["../../../src/providers/claude-provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,WAAW,EAEZ,MAAM,YAAY,CAAA;AA6FnB,qBAAa,cAAe,YAAW,aAAa;IAClD,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAS;IACjC,QAAQ,CAAC,YAAY;;;MAGX;IAEV,KAAK,CAAC,MAAM,EAAE,gBAAgB,GAAG,WAAW;IAI5C,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,WAAW;IAIhE,OAAO,CAAC,YAAY;CA8KrB;AAsND;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CAErD"}
1
+ {"version":3,"file":"claude-provider.d.ts","sourceRoot":"","sources":["../../../src/providers/claude-provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,WAAW,EAEZ,MAAM,YAAY,CAAA;AA6FnB,qBAAa,cAAe,YAAW,aAAa;IAClD,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAS;IACjC,QAAQ,CAAC,YAAY;;;MAGX;IAEV,KAAK,CAAC,MAAM,EAAE,gBAAgB,GAAG,WAAW;IAI5C,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,WAAW;IAIhE,OAAO,CAAC,YAAY;CA0LrB;AAsND;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CAErD"}
@@ -172,13 +172,21 @@ export class ClaudeProvider {
172
172
  ...(config.mcpToolNames ?? []),
173
173
  ]
174
174
  : [];
175
+ // Convert stdio server configs to SDK McpStdioServerConfig format.
176
+ // Stdio servers propagate to sub-agents (in-process servers don't).
177
+ const mcpServers = config.mcpStdioServers && config.mcpStdioServers.length > 0
178
+ ? Object.fromEntries(config.mcpStdioServers.map(s => [
179
+ s.name,
180
+ { type: 'stdio', command: s.command, args: s.args, env: s.env },
181
+ ]))
182
+ : undefined;
175
183
  const agentQuery = query({
176
184
  prompt: config.prompt,
177
185
  options: {
178
186
  cwd: config.cwd,
179
187
  env: config.env,
180
188
  abortController,
181
- mcpServers: config.mcpServers,
189
+ mcpServers,
182
190
  maxTurns: config.maxTurns,
183
191
  allowedTools: config.allowedTools ?? defaultAllowedTools,
184
192
  // Programmatic permission handler for autonomous agents.
@@ -83,14 +83,9 @@ export interface AgentSpawnConfig {
83
83
  * Providers call this once the underlying process is created.
84
84
  */
85
85
  onProcessSpawned?: (pid: number | undefined) => void;
86
- /**
87
- * In-process MCP servers providing typed tools to the agent.
88
- * Created by ToolRegistry.createServers() from registered plugins.
89
- */
90
- mcpServers?: Record<string, import('@anthropic-ai/claude-agent-sdk').McpServerConfig>;
91
86
  /**
92
87
  * Fully-qualified MCP tool names (e.g. 'mcp__af-code-intelligence__af_code_get_repo_map').
93
- * Added to the allowedTools list so autonomous agents can use in-process MCP tools.
88
+ * Added to the allowedTools list so autonomous agents can use MCP tools.
94
89
  */
95
90
  mcpToolNames?: string[];
96
91
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/types.ts"],"names":[],"mappings":"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"}
@@ -100,6 +100,8 @@ export interface TemplateContext {
100
100
  sharedPaths?: string[];
101
101
  /** When true, agents use in-process af_linear_* tools instead of CLI */
102
102
  useToolPlugins?: boolean;
103
+ /** When true, code-intelligence tools (af_code_*) are available via registered plugin */
104
+ hasCodeIntelligence?: boolean;
103
105
  /** Command to invoke the Linear CLI (default: "pnpm af-linear") */
104
106
  linearCli?: string;
105
107
  /** Package manager used by the project (default: "pnpm"). Set to "none" for non-Node projects. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/templates/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/templates/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@renseiai/agentfactory",
3
- "version": "0.8.29",
3
+ "version": "0.8.31",
4
4
  "type": "module",
5
5
  "description": "Multi-agent fleet management for coding agents — orchestrator, providers, crash recovery",
6
6
  "author": "Rensei AI (https://rensei.ai)",
@@ -57,7 +57,7 @@
57
57
  "@types/node": "^22.5.4",
58
58
  "typescript": "^5.7.3",
59
59
  "vitest": "^3.2.3",
60
- "@renseiai/create-agentfactory-app": "0.8.29"
60
+ "@renseiai/create-agentfactory-app": "0.8.31"
61
61
  },
62
62
  "scripts": {
63
63
  "build": "tsc",