baxian 2.0.0 → 2.0.1

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 (133) hide show
  1. package/dist/agent/branch.d.ts +0 -1
  2. package/dist/agent/branch.d.ts.map +1 -1
  3. package/dist/agent/branch.js.map +1 -1
  4. package/dist/agent/dispatch-reconciler.d.ts.map +1 -1
  5. package/dist/agent/dispatch-reconciler.js +10 -5
  6. package/dist/agent/dispatch-reconciler.js.map +1 -1
  7. package/dist/agent/manager.d.ts +42 -13
  8. package/dist/agent/manager.d.ts.map +1 -1
  9. package/dist/agent/manager.js +568 -165
  10. package/dist/agent/manager.js.map +1 -1
  11. package/dist/agent/net-exec.d.ts +3 -0
  12. package/dist/agent/net-exec.d.ts.map +1 -1
  13. package/dist/agent/net-exec.js +6 -0
  14. package/dist/agent/net-exec.js.map +1 -1
  15. package/dist/agent/pane-streamer-manager.d.ts +6 -6
  16. package/dist/agent/pane-streamer-manager.d.ts.map +1 -1
  17. package/dist/agent/pane-streamer-manager.js.map +1 -1
  18. package/dist/agent/pane-streamer.d.ts +2 -2
  19. package/dist/agent/pane-streamer.d.ts.map +1 -1
  20. package/dist/agent/pane-streamer.js +46 -36
  21. package/dist/agent/pane-streamer.js.map +1 -1
  22. package/dist/agent/phase-signal-watcher.d.ts +15 -1
  23. package/dist/agent/phase-signal-watcher.d.ts.map +1 -1
  24. package/dist/agent/phase-signal-watcher.js +113 -6
  25. package/dist/agent/phase-signal-watcher.js.map +1 -1
  26. package/dist/agent/phase-signal.d.ts +7 -0
  27. package/dist/agent/phase-signal.d.ts.map +1 -1
  28. package/dist/agent/phase-signal.js +14 -5
  29. package/dist/agent/phase-signal.js.map +1 -1
  30. package/dist/agent/prompt.d.ts +0 -5
  31. package/dist/agent/prompt.d.ts.map +1 -1
  32. package/dist/agent/prompt.js +5 -18
  33. package/dist/agent/prompt.js.map +1 -1
  34. package/dist/agent/repo-store.d.ts +4 -1
  35. package/dist/agent/repo-store.d.ts.map +1 -1
  36. package/dist/agent/repo-store.js +33 -7
  37. package/dist/agent/repo-store.js.map +1 -1
  38. package/dist/agent/root-agent-runtime.d.ts +80 -0
  39. package/dist/agent/root-agent-runtime.d.ts.map +1 -0
  40. package/dist/agent/root-agent-runtime.js +635 -0
  41. package/dist/agent/root-agent-runtime.js.map +1 -0
  42. package/dist/agent/root-recovery-coordinator.d.ts +125 -0
  43. package/dist/agent/root-recovery-coordinator.d.ts.map +1 -0
  44. package/dist/agent/root-recovery-coordinator.js +1579 -0
  45. package/dist/agent/root-recovery-coordinator.js.map +1 -0
  46. package/dist/agent/runner.d.ts +1 -0
  47. package/dist/agent/runner.d.ts.map +1 -1
  48. package/dist/agent/runner.js +103 -7
  49. package/dist/agent/runner.js.map +1 -1
  50. package/dist/agent/tmux-probe-poller.d.ts +1 -0
  51. package/dist/agent/tmux-probe-poller.d.ts.map +1 -1
  52. package/dist/agent/tmux-probe-poller.js +16 -10
  53. package/dist/agent/tmux-probe-poller.js.map +1 -1
  54. package/dist/agent/tmux.d.ts +3 -0
  55. package/dist/agent/tmux.d.ts.map +1 -1
  56. package/dist/agent/tmux.js +11 -5
  57. package/dist/agent/tmux.js.map +1 -1
  58. package/dist/api/agents.d.ts.map +1 -1
  59. package/dist/api/agents.js +42 -1
  60. package/dist/api/agents.js.map +1 -1
  61. package/dist/api/config.d.ts.map +1 -1
  62. package/dist/api/config.js +77 -7
  63. package/dist/api/config.js.map +1 -1
  64. package/dist/api/hosts.d.ts.map +1 -1
  65. package/dist/api/hosts.js +68 -13
  66. package/dist/api/hosts.js.map +1 -1
  67. package/dist/api/projects.d.ts.map +1 -1
  68. package/dist/api/projects.js +23 -7
  69. package/dist/api/projects.js.map +1 -1
  70. package/dist/app.d.ts +2 -0
  71. package/dist/app.d.ts.map +1 -1
  72. package/dist/app.js +6 -0
  73. package/dist/app.js.map +1 -1
  74. package/dist/cli.d.ts +1 -1
  75. package/dist/cli.d.ts.map +1 -1
  76. package/dist/cli.js +49 -7
  77. package/dist/cli.js.map +1 -1
  78. package/dist/config/loader.d.ts.map +1 -1
  79. package/dist/config/loader.js +22 -1
  80. package/dist/config/loader.js.map +1 -1
  81. package/dist/config/normalizer.d.ts.map +1 -1
  82. package/dist/config/normalizer.js +18 -0
  83. package/dist/config/normalizer.js.map +1 -1
  84. package/dist/config/validator.d.ts.map +1 -1
  85. package/dist/config/validator.js +194 -23
  86. package/dist/config/validator.js.map +1 -1
  87. package/dist/event/handlers.d.ts.map +1 -1
  88. package/dist/event/handlers.js +0 -3
  89. package/dist/event/handlers.js.map +1 -1
  90. package/dist/event/server-handlers.d.ts.map +1 -1
  91. package/dist/event/server-handlers.js +201 -128
  92. package/dist/event/server-handlers.js.map +1 -1
  93. package/dist/index.d.ts.map +1 -1
  94. package/dist/index.js +45 -0
  95. package/dist/index.js.map +1 -1
  96. package/dist/platform/platform-poller.d.ts.map +1 -1
  97. package/dist/platform/platform-poller.js +1 -5
  98. package/dist/platform/platform-poller.js.map +1 -1
  99. package/dist/shared/constants.d.ts +7 -1
  100. package/dist/shared/constants.d.ts.map +1 -1
  101. package/dist/shared/constants.js +5 -0
  102. package/dist/shared/constants.js.map +1 -1
  103. package/dist/shared/types.d.ts +25 -2
  104. package/dist/shared/types.d.ts.map +1 -1
  105. package/dist/shared/types.js +18 -0
  106. package/dist/shared/types.js.map +1 -1
  107. package/dist/skills/baxian-pr-feedback/SKILL.md +2 -4
  108. package/dist/skills/baxian-pr-recheck/SKILL.md +2 -0
  109. package/dist/skills/baxian-pr-review/SKILL.md +2 -0
  110. package/dist/skills/baxian-research/SKILL.md +1 -1
  111. package/dist/skills/baxian-server-feedback/SKILL.md +1 -1
  112. package/dist/skills/baxian-server-review/SKILL.md +2 -2
  113. package/dist/skills/baxian-signals/SKILL.md +6 -0
  114. package/dist/state/init.d.ts.map +1 -1
  115. package/dist/state/init.js +1 -0
  116. package/dist/state/init.js.map +1 -1
  117. package/dist/state/lock.d.ts +6 -0
  118. package/dist/state/lock.d.ts.map +1 -1
  119. package/dist/state/lock.js +8 -0
  120. package/dist/state/lock.js.map +1 -1
  121. package/dist/state/root-recovery-store.d.ts +107 -0
  122. package/dist/state/root-recovery-store.d.ts.map +1 -0
  123. package/dist/state/root-recovery-store.js +400 -0
  124. package/dist/state/root-recovery-store.js.map +1 -0
  125. package/dist/state/task-store.d.ts.map +1 -1
  126. package/dist/state/task-store.js +7 -3
  127. package/dist/state/task-store.js.map +1 -1
  128. package/dist/terminal/attach.d.ts +3 -3
  129. package/dist/terminal/attach.d.ts.map +1 -1
  130. package/dist/terminal/attach.js.map +1 -1
  131. package/dist/terminal/stream-ws.d.ts.map +1 -1
  132. package/dist/terminal/stream-ws.js.map +1 -1
  133. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -5,6 +5,7 @@ import { readFile } from 'node:fs/promises';
5
5
  import { dirname, resolve } from 'node:path';
6
6
  import { fileURLToPath } from 'node:url';
7
7
  import { Command } from 'commander';
8
+ import { ROOT_AGENT_ID } from './shared/index.js';
8
9
  import { startServer } from './index.js';
9
10
  import { shellQuote, wrapRemoteCommand, sshTarget, resolveAgentHost } from './agent/runner.js';
10
11
  export function readTtyDimensions(stdout) {
@@ -23,6 +24,14 @@ function claimGatedWindowSize(agentId) {
23
24
  const set = `set-option -t '=${agentId}:' window-size latest`;
24
25
  return `tmux if-shell -t '=${agentId}:' -F '${cond}' '${set}' ''`;
25
26
  }
27
+ function claimGatedAttachArgs(agentId) {
28
+ const target = `=${agentId}`;
29
+ const cond = `#{==:#{@baxian-agent-id},${agentId}}`;
30
+ const attach = `attach-session -t ${shellQuote(target)}`;
31
+ const refuse = `display-message -p ${shellQuote(`Refusing to attach: tmux session ${agentId} is not owned by Baxian`)}` +
32
+ `; run-shell ${shellQuote('exit 1')}`;
33
+ return ['-u', 'if-shell', '-t', `${target}:`, '-F', cond, attach, refuse];
34
+ }
26
35
  export function buildLocalAttachCommands(agentId, _dims) {
27
36
  const cond = `#{==:#{@baxian-agent-id},${agentId}}`;
28
37
  return [
@@ -36,20 +45,29 @@ export function buildLocalAttachCommands(agentId, _dims) {
36
45
  file: 'tmux',
37
46
  args: ['set-option', '-g', 'focus-events', 'on'],
38
47
  },
39
- { kind: 'attach', file: 'tmux', args: ['-u', 'attach-session', '-t', `=${agentId}`] },
48
+ {
49
+ kind: 'attach',
50
+ file: 'tmux',
51
+ args: agentId === ROOT_AGENT_ID
52
+ ? claimGatedAttachArgs(agentId)
53
+ : ['-u', 'attach-session', '-t', `=${agentId}`],
54
+ },
40
55
  ];
41
56
  }
42
57
  export function buildRemoteAttachSshArgs(host, agentId, _dims) {
43
58
  const quotedId = shellQuote(`=${agentId}`);
44
59
  const autoSizePrefix = `${claimGatedWindowSize(agentId)} 2>/dev/null || true; `;
45
60
  const focusEventsPrefix = 'tmux set-option -g focus-events on 2>/dev/null || true; ';
61
+ const attach = agentId === ROOT_AGENT_ID
62
+ ? `tmux ${claimGatedAttachArgs(agentId).map(shellQuote).join(' ')}`
63
+ : `tmux -u attach-session -t ${quotedId}`;
46
64
  return [
47
65
  '-o', 'ConnectTimeout=10',
48
66
  ...(host.port !== undefined ? ['-p', String(host.port)] : []),
49
67
  '-t',
50
68
  '--',
51
69
  sshTarget(host),
52
- wrapRemoteCommand(`${autoSizePrefix}${focusEventsPrefix}tmux -u attach-session -t ${quotedId}`, 'login-interactive'),
70
+ wrapRemoteCommand(`${autoSizePrefix}${focusEventsPrefix}${attach}`, 'login-interactive'),
53
71
  ];
54
72
  }
55
73
  function resolveApiBase(opts) {
@@ -67,7 +85,7 @@ function authHeaders(opts) {
67
85
  async function readResponse(res, method, path) {
68
86
  if (!res.ok) {
69
87
  const text = await res.text();
70
- throw new Error(`${method} ${path} failed (${res.status}): ${text || res.statusText}`);
88
+ throw new Error(`${method} ${path} failed (${res.status}): ${apiErrorDetail(text, res.statusText)}`);
71
89
  }
72
90
  const text = await res.text();
73
91
  if (!text)
@@ -79,6 +97,22 @@ async function readResponse(res, method, path) {
79
97
  throw new Error(`${method} ${path} returned non-JSON: ${text.slice(0, 200)}`);
80
98
  }
81
99
  }
100
+ function apiErrorDetail(text, fallback) {
101
+ if (!text)
102
+ return fallback;
103
+ try {
104
+ const body = JSON.parse(text);
105
+ if (typeof body === 'object'
106
+ && body !== null
107
+ && 'error' in body
108
+ && typeof body.error === 'string')
109
+ return body.error;
110
+ }
111
+ catch {
112
+ return text;
113
+ }
114
+ return text;
115
+ }
82
116
  async function apiGet(path, opts = {}) {
83
117
  const res = await fetch(`${resolveApiBase(opts)}${path}`, {
84
118
  headers: authHeaders(opts),
@@ -185,6 +219,10 @@ export function buildCli() {
185
219
  let resolvedHost;
186
220
  try {
187
221
  const cfgRes = await apiGet('/config', ctx);
222
+ if (agentId === ROOT_AGENT_ID && cfgRes?.root) {
223
+ agent = cfgRes.root;
224
+ resolvedHost = resolveAgentHost(cfgRes.host, cfgRes.root.host);
225
+ }
188
226
  for (const proj of cfgRes?.project ?? []) {
189
227
  for (const pair of proj.agent ?? []) {
190
228
  for (const a of pair) {
@@ -215,10 +253,14 @@ export function buildCli() {
215
253
  program
216
254
  .command('stop <agent-id>')
217
255
  .description('Stop an agent')
218
- .action(async (agentId, opts) => {
219
- await apiDelete(`/agents/${encodeURIComponent(agentId)}/session`, ctxOf(opts));
220
- console.log(`Agent ${agentId} stopped.`);
221
- });
256
+ .action((agentId, opts) => withErrors(async () => {
257
+ const response = await apiDelete(`/agents/${encodeURIComponent(agentId)}/session`, ctxOf(opts));
258
+ const message = agentId === ROOT_AGENT_ID
259
+ && typeof response?.message === 'string'
260
+ ? ` ${response.message}`
261
+ : '';
262
+ console.log(`Agent ${agentId} stopped.${message}`);
263
+ }));
222
264
  const taskCommand = program.command('task').description('Task management');
223
265
  taskCommand
224
266
  .command('create')
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAIA,OAAO,EAA4B,KAAK,YAAY,EAA2E,MAAM,oBAAoB,CAAC;AAoB1J,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGtE,qBAAa,qBAAsB,SAAQ,KAAK;aAClB,MAAM,EAAE,eAAe,EAAE;gBAAzB,MAAM,EAAE,eAAe,EAAE;CAKtD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CAoCxD;AAED,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAG1E;AAaD,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAsB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAOjF;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAG1D;AASD,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGrE;AAGD,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BxF"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAIA,OAAO,EAA4B,KAAK,YAAY,EAAiG,MAAM,oBAAoB,CAAC;AAqBhL,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGtE,qBAAa,qBAAsB,SAAQ,KAAK;aAClB,MAAM,EAAE,eAAe,EAAE;gBAAzB,MAAM,EAAE,eAAe,EAAE;CAKtD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CA8CxD;AAED,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAG1E;AAaD,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAsB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAOjF;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAG1D;AASD,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGrE;AAGD,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BxF"}
@@ -3,7 +3,7 @@ import { randomBytes } from 'node:crypto';
3
3
  import { dirname, resolve } from 'node:path';
4
4
  import { homedir } from 'node:os';
5
5
  import { isRecord } from '../shared/index.js';
6
- import { CONFIG_FILE, DEFAULT_BOOTSTRAP_RETRY_INTERVAL_MS, DEFAULT_DISPATCH_RECONCILE_INTERVAL_MS, DEFAULT_DISPATCH_BUSY_WAIT_BUDGET_MS, DEFAULT_DISPATCH_RECONCILE_MAX_ATTEMPTS, DEFAULT_GITHUB_POLL_INTERVAL_MS, DEFAULT_REVIEW_ROUNDS, DEFAULT_SERVER_HOST, DEFAULT_SERVER_PORT, DEFAULT_TMUX_PROBE_CONCURRENCY, DEFAULT_TMUX_PROBE_POLL_INTERVAL_MS, DEFAULT_TMUX_PROBE_TIMEOUT_MS, STATE_DIR, USER_CONFIG_REL, USER_STATE_REL, isGitHubRepo, } from '../shared/index.js';
6
+ import { CONFIG_FILE, DEFAULT_BOOTSTRAP_RETRY_INTERVAL_MS, DEFAULT_DISPATCH_RECONCILE_INTERVAL_MS, DEFAULT_DISPATCH_BUSY_WAIT_BUDGET_MS, DEFAULT_DISPATCH_RECONCILE_MAX_ATTEMPTS, DEFAULT_GITHUB_POLL_INTERVAL_MS, DEFAULT_REVIEW_ROUNDS, DEFAULT_ROOT_RESPONSE_TIMEOUT_MINUTES, DEFAULT_SERVER_HOST, DEFAULT_SERVER_PORT, DEFAULT_TMUX_PROBE_CONCURRENCY, DEFAULT_TMUX_PROBE_POLL_INTERVAL_MS, DEFAULT_TMUX_PROBE_TIMEOUT_MS, STATE_DIR, USER_CONFIG_REL, USER_STATE_REL, isGitHubRepo, } from '../shared/index.js';
7
7
  import { normalizeConfig } from './normalizer.js';
8
8
  import { validateConfig } from './validator.js';
9
9
  import { backupConfig } from './backup.js';
@@ -24,6 +24,11 @@ export function prepareConfig(raw) {
24
24
  ]);
25
25
  }
26
26
  const normalized = normalizeConfig(raw);
27
+ if ('main' in normalized) {
28
+ throw new ConfigValidationError([
29
+ { path: 'main', message: 'main agent was renamed to root agent; configure the top-level root object instead' },
30
+ ]);
31
+ }
27
32
  if ('project' in normalized && normalized.project !== undefined && !Array.isArray(normalized.project)) {
28
33
  throw new ConfigValidationError([
29
34
  { path: 'project', message: 'project must be an array' },
@@ -34,6 +39,11 @@ export function prepareConfig(raw) {
34
39
  { path: 'host', message: 'host must be an array' },
35
40
  ]);
36
41
  }
42
+ if ('root' in normalized && normalized.root !== undefined && !isRecord(normalized.root)) {
43
+ throw new ConfigValidationError([
44
+ { path: 'root', message: 'root must be an object' },
45
+ ]);
46
+ }
37
47
  if (Array.isArray(normalized.host)) {
38
48
  const hostShapeErrors = normalized.host.flatMap((h, i) => isRecord(h) ? [] : [{ path: `host[${i}]`, message: `host[${i}] must be an object` }]);
39
49
  if (hostShapeErrors.length > 0) {
@@ -185,6 +195,7 @@ function applyDefaults(normalized) {
185
195
  const hosts = Array.isArray(normalized.host)
186
196
  ? normalized.host.filter(isRecord).map(h => ({ ...h }))
187
197
  : [];
198
+ const root = isRecord(normalized.root) ? normalized.root : undefined;
188
199
  const hasHttps = sv !== undefined && Object.prototype.hasOwnProperty.call(sv, 'https');
189
200
  const hasAllowedHosts = sv !== undefined && Object.prototype.hasOwnProperty.call(sv, 'allowedHosts');
190
201
  const reviewMode = (rv.mode === undefined ? 'git' : rv.mode);
@@ -214,6 +225,16 @@ function applyDefaults(normalized) {
214
225
  },
215
226
  host: hosts,
216
227
  project: projects.map(p => applyProjectDefaults(p, reviewMode)),
228
+ ...(root ? { root: applyRootDefaults(root) } : {}),
229
+ };
230
+ }
231
+ function applyRootDefaults(root) {
232
+ return {
233
+ ...root,
234
+ yolo: root.yolo === undefined ? true : root.yolo,
235
+ responseTimeoutMinutes: root.responseTimeoutMinutes === undefined
236
+ ? DEFAULT_ROOT_RESPONSE_TIMEOUT_MINUTES
237
+ : root.responseTimeoutMinutes,
217
238
  };
218
239
  }
219
240
  function applyProjectDefaults(p, globalReviewMode) {
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"normalizer.d.ts","sourceRoot":"","sources":["../../src/config/normalizer.ts"],"names":[],"mappings":"AAaA,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkBrE"}
1
+ {"version":3,"file":"normalizer.d.ts","sourceRoot":"","sources":["../../src/config/normalizer.ts"],"names":[],"mappings":"AAmBA,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAsBrE"}
@@ -9,6 +9,11 @@ const CANONICAL_CASE = {
9
9
  specapproval: 'specApproval',
10
10
  gitcli: 'gitCli',
11
11
  };
12
+ const ROOT_CANONICAL_CASE = {
13
+ projects: 'projects',
14
+ responsetimeoutminutes: 'responseTimeoutMinutes',
15
+ workdir: 'workdir',
16
+ };
12
17
  export function normalizeConfig(raw) {
13
18
  if (typeof raw !== 'object' || raw === null) {
14
19
  return {};
@@ -23,6 +28,19 @@ export function normalizeConfig(raw) {
23
28
  return item;
24
29
  });
25
30
  }
31
+ if (typeof result.root === 'object' && result.root !== null && !Array.isArray(result.root)) {
32
+ result.root = normalizeRootKeys(result.root);
33
+ }
34
+ return result;
35
+ }
36
+ function normalizeRootKeys(obj) {
37
+ const result = {};
38
+ for (const [key, value] of Object.entries(obj)) {
39
+ const lower = key.toLowerCase();
40
+ const canonical = ROOT_CANONICAL_CASE[lower] ?? lower;
41
+ if (!(canonical in result))
42
+ result[canonical] = value;
43
+ }
26
44
  return result;
27
45
  }
28
46
  function normalizeKeys(obj) {
@@ -1 +1 @@
1
- {"version":3,"file":"normalizer.js","sourceRoot":"","sources":["../../src/config/normalizer.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAA2B;IAC9C,QAAQ,EAAE,SAAS;IACnB,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,KAAK,EAAE,MAAM;CACd,CAAC;AAEF,wDAAwD;AACxD,MAAM,cAAc,GAA2B;IAC7C,YAAY,EAAE,cAAc;IAC5B,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC5C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,GAAG,GAAG,GAA8B,CAAC;IAC3C,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAElC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAa,EAAE,EAAE;YACpD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC9C,OAAO,aAAa,CAAC,IAA+B,CAAC,CAAC;YACxD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,GAA4B;IACjD,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,MAAM,oBAAoB,GAA4B,EAAE,CAAC;IAEzD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,cAAc,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;QACpG,MAAM,kBAAkB,GAAG,KAAK,KAAK,QAAQ,CAAC,WAAW,EAAE,CAAC;QAE5D,IAAI,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;YACzB,oBAAoB,CAAC,QAAQ,CAAC,GAAG,kBAAkB,CAAC;YACpD,SAAS;QACX,CAAC;QAED,IAAI,kBAAkB,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1D,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;YACzB,oBAAoB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;QACxC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"normalizer.js","sourceRoot":"","sources":["../../src/config/normalizer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/config/validator.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,SAAS,EAAE,KAAK,YAAY,EAAyE,KAAK,aAAa,EAAE,KAAK,UAAU,EAC9I,MAAM,oBAAoB,CAAC;AAI5B,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAkBD,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,eAAe,EAAE,CAuBtE;AAOD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,GAAG,UAAU,CAG1F;AAID,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAG7E;AAGD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,GAAG,SAAS,CAMxF;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAG/F"}
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/config/validator.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,SAAS,EAAE,KAAK,YAAY,EAAyE,KAAK,aAAa,EAAE,KAAK,UAAU,EAC9I,MAAM,oBAAoB,CAAC;AAK5B,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAqBD,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,eAAe,EAAE,CAwBtE;AAOD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,GAAG,UAAU,CAG1F;AAID,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAG7E;AAGD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,GAAG,SAAS,CAMxF;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAG/F"}
@@ -1,5 +1,6 @@
1
1
  import { isAbsolute, normalize } from 'node:path';
2
- import { isBareRepoSlug, CONTROL_CHAR_RE, TOOL_PATTERN, hasEmbeddedCredentials, isGitHubRepo, isRecord, isSafeGitHost, parseGitRemote, repoIdentityKey, repoSlug, } from '../shared/index.js';
2
+ import { isBareRepoSlug, CONTROL_CHAR_RE, TOOL_PATTERN, hasEmbeddedCredentials, isGitHubRepo, isRecord, isSafeGitHost, parseGitRemote, repoIdentityKey, repoSlug, ROOT_AGENT_ID, } from '../shared/index.js';
3
+ import { mayShareHostAccount, resolveAgentHost } from '../agent/runner.js';
3
4
  const VALID_REVIEW_MODES = new Set(['git', 'server']);
4
5
  const VALID_RUNTIMES = ['claude-code', 'codex', 'opencode', 'qodercli'];
5
6
  const VALID_ROLES = ['dev', 'qa', 'research'];
@@ -9,6 +10,9 @@ const VALID_SPEC_APPROVAL = ['human', null, undefined];
9
10
  const ID_PATTERN = /^[a-z][a-z0-9-]{1,31}$/;
10
11
  const REPO_SLUG_PATTERN = /^[A-Za-z0-9_-][A-Za-z0-9._-]*\/[A-Za-z0-9_-][A-Za-z0-9._-]*$/;
11
12
  const REPO_SEGMENT_PATTERN = /^[A-Za-z0-9_-][A-Za-z0-9._-]*$/;
13
+ const ROOT_FIELDS = new Set([
14
+ 'runtime', 'mode', 'host', 'workdir', 'yolo', 'model', 'projects', 'responseTimeoutMinutes',
15
+ ]);
12
16
  function isValidRepo(repo) {
13
17
  if (isGitHubRepo(repo))
14
18
  return REPO_SLUG_PATTERN.test(repoSlug(repo));
@@ -36,6 +40,7 @@ export function validateConfig(config) {
36
40
  validateAgentWorkdirUniqueness(config, errors);
37
41
  validateAgentPairs(config, errors);
38
42
  validateRemoteHosts(config, errors);
43
+ validateRootAgent(config, errors);
39
44
  return errors;
40
45
  }
41
46
  function nonEmptyString(v) {
@@ -425,7 +430,23 @@ function validateAgentIds(config, errors) {
425
430
  }
426
431
  }
427
432
  function validateAgentWorkdirUniqueness(config, errors) {
428
- const seen = new Map();
433
+ const hosts = Array.isArray(config.host) ? config.host : [];
434
+ const seen = [];
435
+ const root = config.root;
436
+ if (root
437
+ && VALID_MODES.includes(root.mode)
438
+ && nonEmptyString(root.workdir)
439
+ && isAbsolute(root.workdir)) {
440
+ const host = resolveAgentHost(hosts, root.host);
441
+ if (root.mode === 'local' || host) {
442
+ seen.push({
443
+ id: ROOT_AGENT_ID,
444
+ mode: root.mode,
445
+ host,
446
+ workdir: normalize(root.workdir),
447
+ });
448
+ }
449
+ }
429
450
  for (const project of config.project) {
430
451
  if (!Array.isArray(project.agent))
431
452
  continue;
@@ -435,41 +456,191 @@ function validateAgentWorkdirUniqueness(config, errors) {
435
456
  continue;
436
457
  for (let j = 0; j < pair.length; j++) {
437
458
  const agent = pair[j];
438
- if (!nonEmptyString(agent.workdir) || !isAbsolute(agent.workdir))
459
+ if (!VALID_MODES.includes(agent.mode)
460
+ || !nonEmptyString(agent.workdir)
461
+ || !isAbsolute(agent.workdir))
439
462
  continue;
440
- const host = configuredAgentHostKey(config, agent.mode, agent.host);
441
- if (!host)
463
+ const host = resolveAgentHost(hosts, agent.host);
464
+ if (agent.mode === 'remote' && !host)
442
465
  continue;
443
- const key = `${host}\0${normalize(agent.workdir)}`;
444
- const existing = seen.get(key);
466
+ const workdir = normalize(agent.workdir);
467
+ const existing = seen.find(entry => entry.workdir === workdir
468
+ && mayShareHostAccount(entry.mode, entry.host, agent.mode, host));
445
469
  const path = `project.${project.id}.agent[${i}][${j}].workdir`;
446
470
  if (existing) {
447
471
  errors.push({
448
472
  path,
449
- message: `Workdir is already used by agent "${existing}" on the same host; different agents must not share a directory`,
473
+ message: `Workdir is already used by agent "${existing.id}" on the same host; different agents must not share a directory`,
450
474
  });
451
475
  }
452
476
  else if (nonEmptyString(agent.id)) {
453
- seen.set(key, agent.id);
477
+ seen.push({ id: agent.id, mode: agent.mode, host, workdir });
454
478
  }
455
479
  }
456
480
  }
457
481
  }
458
482
  }
459
- function configuredAgentHostKey(config, mode, hostRef) {
460
- if (mode === 'local')
461
- return 'local';
462
- if (mode !== 'remote')
463
- return null;
464
- const host = typeof hostRef === 'string'
465
- ? (Array.isArray(config.host) ? config.host : []).find(item => item.id === hostRef)
466
- : hostRef;
467
- if (!isRecord(host) || !nonEmptyString(host.hostname))
468
- return null;
469
- const port = host.port === undefined ? '22' : String(host.port);
470
- return nonEmptyString(host.user)
471
- ? `remote:${host.user}@${host.hostname}:${port}`
472
- : `remote:${host.hostname}:${port}`;
483
+ function validateRootAgent(config, errors) {
484
+ for (const project of config.project) {
485
+ if (!Array.isArray(project.agent))
486
+ continue;
487
+ for (const group of project.agent) {
488
+ if (!Array.isArray(group))
489
+ continue;
490
+ if (group.some(agent => isRecord(agent) && agent.id === ROOT_AGENT_ID)) {
491
+ errors.push({
492
+ path: `project.${project.id}.agent.${ROOT_AGENT_ID}`,
493
+ message: `Agent id "${ROOT_AGENT_ID}" is reserved for the root agent`,
494
+ });
495
+ }
496
+ }
497
+ }
498
+ const root = config.root;
499
+ if (root === undefined)
500
+ return;
501
+ if (!isRecord(root)) {
502
+ errors.push({ path: 'root', message: 'root must be an object' });
503
+ return;
504
+ }
505
+ for (const field of Object.keys(root)) {
506
+ if (!ROOT_FIELDS.has(field)) {
507
+ errors.push({ path: `root.${field}`, message: `unsupported root field: ${field}` });
508
+ }
509
+ }
510
+ if (!VALID_RUNTIMES.includes(root.runtime)) {
511
+ errors.push({
512
+ path: 'root.runtime',
513
+ message: `root.runtime must be one of: ${VALID_RUNTIMES.join(', ')}`,
514
+ });
515
+ }
516
+ if (!VALID_MODES.includes(root.mode)) {
517
+ errors.push({
518
+ path: 'root.mode',
519
+ message: `root.mode must be one of: ${VALID_MODES.join(', ')}`,
520
+ });
521
+ }
522
+ if (!nonEmptyString(root.workdir)) {
523
+ errors.push({ path: 'root.workdir', message: 'root.workdir must be a non-empty string' });
524
+ }
525
+ else if (!isAbsolute(root.workdir)) {
526
+ errors.push({ path: 'root.workdir', message: 'root.workdir must be an absolute path' });
527
+ }
528
+ else if (normalize(root.workdir) === '/') {
529
+ errors.push({ path: 'root.workdir', message: 'root.workdir must not be the filesystem root' });
530
+ }
531
+ if (root.model !== undefined && !nonEmptyString(root.model)) {
532
+ errors.push({ path: 'root.model', message: 'root.model, when set, must be a non-empty string' });
533
+ }
534
+ if (root.yolo !== undefined && typeof root.yolo !== 'boolean') {
535
+ errors.push({ path: 'root.yolo', message: 'root.yolo must be a boolean if present' });
536
+ }
537
+ if (!Number.isInteger(root.responseTimeoutMinutes)
538
+ || root.responseTimeoutMinutes < 1
539
+ || root.responseTimeoutMinutes > 1440) {
540
+ errors.push({
541
+ path: 'root.responseTimeoutMinutes',
542
+ message: 'root.responseTimeoutMinutes must be an integer in [1, 1440]',
543
+ });
544
+ }
545
+ const projectIds = new Set(config.project.map(project => project.id));
546
+ if (root.projects !== undefined) {
547
+ if (!Array.isArray(root.projects)) {
548
+ errors.push({ path: 'root.projects', message: 'root.projects must be an array of project ids' });
549
+ }
550
+ else {
551
+ if (root.projects.length === 0) {
552
+ errors.push({ path: 'root.projects', message: 'root.projects must contain at least one project id' });
553
+ }
554
+ const seen = new Set();
555
+ root.projects.forEach((projectId, index) => {
556
+ if (!nonEmptyString(projectId)) {
557
+ errors.push({ path: `root.projects[${index}]`, message: 'root.projects[*] must be a non-empty string' });
558
+ return;
559
+ }
560
+ if (!projectIds.has(projectId)) {
561
+ errors.push({
562
+ path: `root.projects[${index}]`,
563
+ message: `root.projects references unknown project id "${projectId}"`,
564
+ });
565
+ }
566
+ if (seen.has(projectId)) {
567
+ errors.push({ path: `root.projects[${index}]`, message: `Duplicate root project id: ${projectId}` });
568
+ }
569
+ seen.add(projectId);
570
+ });
571
+ }
572
+ }
573
+ validateRootHost(config, root, errors);
574
+ validateRootAccountIsolation(config, errors);
575
+ }
576
+ function validateRootAccountIsolation(config, errors) {
577
+ const root = config.root;
578
+ if (!root || !VALID_MODES.includes(root.mode))
579
+ return;
580
+ const rootHost = resolveAgentHost(config.host, root.host);
581
+ if (root.mode === 'remote' && !rootHost)
582
+ return;
583
+ for (const project of config.project) {
584
+ for (const group of project.agent) {
585
+ for (const agent of group) {
586
+ if (agent.yolo === false || !VALID_MODES.includes(agent.mode))
587
+ continue;
588
+ const agentHost = resolveAgentHost(config.host, agent.host);
589
+ if (agent.mode === 'remote' && !agentHost)
590
+ continue;
591
+ if (!mayShareHostAccount(root.mode, rootHost, agent.mode, agentHost))
592
+ continue;
593
+ errors.push({
594
+ path: `project.${project.id}.agent.${agent.id}.yolo`,
595
+ message: `yolo agent "${agent.id}" may share the root mailbox OS account; ` +
596
+ 'set yolo: false or use a different explicit SSH user or hostname',
597
+ });
598
+ }
599
+ }
600
+ }
601
+ }
602
+ function validateRootHost(config, root, errors) {
603
+ if (root.mode === 'local') {
604
+ if (root.host !== undefined) {
605
+ errors.push({ path: 'root.host', message: 'local root agent must not configure root.host' });
606
+ }
607
+ return;
608
+ }
609
+ if (root.mode !== 'remote')
610
+ return;
611
+ if (root.host === undefined || root.host === null) {
612
+ errors.push({ path: 'root.host', message: 'remote root agent must reference a host' });
613
+ return;
614
+ }
615
+ if (typeof root.host === 'string') {
616
+ if (!config.host.some(host => host.id === root.host)) {
617
+ errors.push({
618
+ path: 'root.host',
619
+ message: `remote root agent references unknown host id "${root.host}" — add it via Host 管理`,
620
+ });
621
+ }
622
+ return;
623
+ }
624
+ if (!isRecord(root.host)) {
625
+ errors.push({ path: 'root.host', message: 'root.host must be a host id (string) or an inline host object' });
626
+ return;
627
+ }
628
+ if (!nonEmptyString(root.host.hostname)) {
629
+ errors.push({ path: 'root.host.hostname', message: 'host.hostname must be a non-empty string' });
630
+ }
631
+ if (root.host.port !== undefined
632
+ && (!Number.isInteger(root.host.port) || root.host.port <= 0 || root.host.port > 65535)) {
633
+ errors.push({ path: 'root.host.port', message: 'host.port must be a positive integer ≤ 65535' });
634
+ }
635
+ if (root.host.user !== undefined && !nonEmptyString(root.host.user)) {
636
+ errors.push({ path: 'root.host.user', message: 'host.user, if set, must be a non-empty string' });
637
+ }
638
+ if (root.host.password !== undefined) {
639
+ errors.push({
640
+ path: 'root.host.password',
641
+ message: 'inline root.host must not carry a password; define it in the top-level host registry and reference it by id',
642
+ });
643
+ }
473
644
  }
474
645
  function validateAgentPairs(config, errors) {
475
646
  for (const project of config.project) {