mcp-codex-subagent 2.0.9 → 2.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/event/bus.d.ts +53 -0
- package/dist/event/bus.d.ts.map +1 -0
- package/dist/event/bus.js +94 -0
- package/dist/event/bus.js.map +1 -0
- package/dist/event/throttle.d.ts +36 -0
- package/dist/event/throttle.d.ts.map +1 -0
- package/dist/event/throttle.js +66 -0
- package/dist/event/throttle.js.map +1 -0
- package/dist/index.js +32 -1
- package/dist/index.js.map +1 -1
- package/dist/process/event-parser.d.ts +37 -0
- package/dist/process/event-parser.d.ts.map +1 -0
- package/dist/process/event-parser.js +141 -0
- package/dist/process/event-parser.js.map +1 -0
- package/dist/process/runner.d.ts +48 -0
- package/dist/process/runner.d.ts.map +1 -0
- package/dist/process/runner.js +227 -0
- package/dist/process/runner.js.map +1 -0
- package/dist/process/types.d.ts +74 -0
- package/dist/process/types.d.ts.map +1 -0
- package/dist/process/types.js +5 -0
- package/dist/process/types.js.map +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +128 -36
- package/dist/server.js.map +1 -1
- package/dist/services/account-rotator.d.ts +28 -0
- package/dist/services/account-rotator.d.ts.map +1 -0
- package/dist/services/account-rotator.js +216 -0
- package/dist/services/account-rotator.js.map +1 -0
- package/dist/services/output-file.d.ts.map +1 -1
- package/dist/services/output-file.js +80 -36
- package/dist/services/output-file.js.map +1 -1
- package/dist/services/template-init.d.ts +10 -0
- package/dist/services/template-init.d.ts.map +1 -0
- package/dist/services/template-init.js +41 -0
- package/dist/services/template-init.js.map +1 -0
- package/dist/session/file-storage.d.ts +27 -0
- package/dist/session/file-storage.d.ts.map +1 -0
- package/dist/session/file-storage.js +281 -0
- package/dist/session/file-storage.js.map +1 -0
- package/dist/session/storage.js +1 -1
- package/dist/session/storage.js.map +1 -1
- package/dist/task/state-machine.d.ts +27 -0
- package/dist/task/state-machine.d.ts.map +1 -0
- package/dist/task/state-machine.js +59 -0
- package/dist/task/state-machine.js.map +1 -0
- package/dist/task/store.d.ts +91 -0
- package/dist/task/store.d.ts.map +1 -0
- package/dist/task/store.js +317 -0
- package/dist/task/store.js.map +1 -0
- package/dist/task/types.d.ts +72 -0
- package/dist/task/types.d.ts.map +1 -0
- package/dist/task/types.js +13 -0
- package/dist/task/types.js.map +1 -0
- package/dist/templates/index.d.ts +16 -0
- package/dist/templates/index.d.ts.map +1 -1
- package/dist/templates/index.js +57 -5
- package/dist/templates/index.js.map +1 -1
- package/dist/tools/definitions.d.ts +5 -1
- package/dist/tools/definitions.d.ts.map +1 -1
- package/dist/tools/definitions.js +253 -179
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/description-builder.d.ts +18 -0
- package/dist/tools/description-builder.d.ts.map +1 -0
- package/dist/tools/description-builder.js +88 -0
- package/dist/tools/description-builder.js.map +1 -0
- package/dist/tools/handlers.d.ts +19 -17
- package/dist/tools/handlers.d.ts.map +1 -1
- package/dist/tools/handlers.js +287 -341
- package/dist/tools/handlers.js.map +1 -1
- package/dist/types.d.ts +5 -12
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +7 -10
- package/dist/types.js.map +1 -1
- package/dist/utils/ring-buffer.d.ts +41 -0
- package/dist/utils/ring-buffer.d.ts.map +1 -0
- package/dist/utils/ring-buffer.js +83 -0
- package/dist/utils/ring-buffer.js.map +1 -0
- package/dist/wave/dag.d.ts +32 -0
- package/dist/wave/dag.d.ts.map +1 -0
- package/dist/wave/dag.js +186 -0
- package/dist/wave/dag.js.map +1 -0
- package/dist/wave/git.d.ts +57 -0
- package/dist/wave/git.d.ts.map +1 -0
- package/dist/wave/git.js +227 -0
- package/dist/wave/git.js.map +1 -0
- package/dist/wave/orchestrator.d.ts +15 -0
- package/dist/wave/orchestrator.d.ts.map +1 -0
- package/dist/wave/orchestrator.js +565 -0
- package/dist/wave/orchestrator.js.map +1 -0
- package/dist/wave/progress.d.ts +51 -0
- package/dist/wave/progress.d.ts.map +1 -0
- package/dist/wave/progress.js +176 -0
- package/dist/wave/progress.js.map +1 -0
- package/dist/wave/registry.d.ts +66 -0
- package/dist/wave/registry.d.ts.map +1 -0
- package/dist/wave/registry.js +340 -0
- package/dist/wave/registry.js.map +1 -0
- package/dist/wave/semaphore.d.ts +42 -0
- package/dist/wave/semaphore.d.ts.map +1 -0
- package/dist/wave/semaphore.js +119 -0
- package/dist/wave/semaphore.js.map +1 -0
- package/dist/wave/types.d.ts +197 -0
- package/dist/wave/types.d.ts.map +1 -0
- package/dist/wave/types.js +147 -0
- package/dist/wave/types.js.map +1 -0
- package/package.json +1 -1
- package/dist/services/task-manager.d.ts +0 -69
- package/dist/services/task-manager.d.ts.map +0 -1
- package/dist/services/task-manager.js +0 -173
- package/dist/services/task-manager.js.map +0 -1
package/dist/wave/git.js
ADDED
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Git operations for wave sub-agent groups.
|
|
3
|
+
*
|
|
4
|
+
* All commands use executeCommand() from src/utils/command.ts.
|
|
5
|
+
* No direct child_process usage.
|
|
6
|
+
*/
|
|
7
|
+
import { existsSync, mkdirSync } from 'fs';
|
|
8
|
+
import { join } from 'path';
|
|
9
|
+
import { executeCommand } from '../utils/command.js';
|
|
10
|
+
// Directory existence cache (same pattern as output-file.ts)
|
|
11
|
+
const knownDirs = new Set();
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
// Git command helper
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
async function git(cwd, args) {
|
|
16
|
+
return executeCommand('git', ['-C', cwd, ...args]);
|
|
17
|
+
}
|
|
18
|
+
// ---------------------------------------------------------------------------
|
|
19
|
+
// Worktree operations
|
|
20
|
+
// ---------------------------------------------------------------------------
|
|
21
|
+
/**
|
|
22
|
+
* Ensure the .worktree root directory exists.
|
|
23
|
+
*/
|
|
24
|
+
export function ensureWorktreeRoot(baseCwd) {
|
|
25
|
+
const root = join(baseCwd, '.worktree');
|
|
26
|
+
if (knownDirs.has(root))
|
|
27
|
+
return;
|
|
28
|
+
try {
|
|
29
|
+
mkdirSync(root, { recursive: true });
|
|
30
|
+
knownDirs.add(root);
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
// Best-effort
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Create a Git worktree with a new branch.
|
|
38
|
+
*
|
|
39
|
+
* @param baseCwd - The repository root
|
|
40
|
+
* @param groupId - Group identifier (used for branch name)
|
|
41
|
+
* @param groupName - Group alias (used for directory name)
|
|
42
|
+
* @param baseCommit - The commit SHA to base the new branch on
|
|
43
|
+
* @returns The absolute path to the created worktree
|
|
44
|
+
*/
|
|
45
|
+
export async function createWorktree(baseCwd, groupId, groupName, baseCommit) {
|
|
46
|
+
ensureWorktreeRoot(baseCwd);
|
|
47
|
+
const worktreePath = join(baseCwd, '.worktree', `${groupId}-${groupName}`);
|
|
48
|
+
const branchName = `sub-agent/${groupId}`;
|
|
49
|
+
// Check if branch already exists
|
|
50
|
+
try {
|
|
51
|
+
const { stdout } = await git(baseCwd, ['branch', '--list', branchName]);
|
|
52
|
+
if (stdout.trim()) {
|
|
53
|
+
throw new Error(`Branch "${branchName}" already exists. ` +
|
|
54
|
+
'Use append mode to reuse an existing group.');
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
catch (err) {
|
|
58
|
+
if (err instanceof Error && err.message.includes('already exists')) {
|
|
59
|
+
throw err;
|
|
60
|
+
}
|
|
61
|
+
// git branch --list may fail if not in a repo; re-throw
|
|
62
|
+
throw new Error(`Failed to check for existing branch: ${err instanceof Error ? err.message : String(err)}`);
|
|
63
|
+
}
|
|
64
|
+
// Create worktree
|
|
65
|
+
try {
|
|
66
|
+
await git(baseCwd, [
|
|
67
|
+
'worktree',
|
|
68
|
+
'add',
|
|
69
|
+
worktreePath,
|
|
70
|
+
'-b',
|
|
71
|
+
branchName,
|
|
72
|
+
baseCommit,
|
|
73
|
+
]);
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
throw new Error(`Failed to create worktree at ${worktreePath}: ${err instanceof Error ? err.message : String(err)}`);
|
|
77
|
+
}
|
|
78
|
+
return worktreePath;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Check if a worktree directory exists on disk.
|
|
82
|
+
*/
|
|
83
|
+
export function worktreeExists(baseCwd, groupId, groupName) {
|
|
84
|
+
const worktreePath = join(baseCwd, '.worktree', `${groupId}-${groupName}`);
|
|
85
|
+
return existsSync(worktreePath);
|
|
86
|
+
}
|
|
87
|
+
// ---------------------------------------------------------------------------
|
|
88
|
+
// Base commit resolution
|
|
89
|
+
// ---------------------------------------------------------------------------
|
|
90
|
+
/**
|
|
91
|
+
* Resolve the base commit for a new group.
|
|
92
|
+
*
|
|
93
|
+
* Rules:
|
|
94
|
+
* 1. No dependencies: use HEAD of the current branch
|
|
95
|
+
* 2. Single dependency: use HEAD of the dep's branch
|
|
96
|
+
* 3. Multiple dependencies: validate linear ancestry, use most recent
|
|
97
|
+
*
|
|
98
|
+
* @param baseCwd - The repository root
|
|
99
|
+
* @param dependsOn - Array of dependency group IDs
|
|
100
|
+
* @param depBranches - Map from group ID to branch name
|
|
101
|
+
*/
|
|
102
|
+
export async function resolveBaseCommit(baseCwd, dependsOn, depBranches) {
|
|
103
|
+
if (dependsOn.length === 0) {
|
|
104
|
+
return getHead(baseCwd);
|
|
105
|
+
}
|
|
106
|
+
if (!depBranches || depBranches.size === 0) {
|
|
107
|
+
throw new Error('dependsOn specified but no dependency branches provided');
|
|
108
|
+
}
|
|
109
|
+
// Resolve branch heads
|
|
110
|
+
const branchTips = [];
|
|
111
|
+
for (const depId of dependsOn) {
|
|
112
|
+
const branch = depBranches.get(depId);
|
|
113
|
+
if (!branch) {
|
|
114
|
+
throw new Error(`Dependency group "${depId}" has no associated branch`);
|
|
115
|
+
}
|
|
116
|
+
const sha = await getBranchHead(baseCwd, branch);
|
|
117
|
+
branchTips.push({ groupId: depId, branch, sha });
|
|
118
|
+
}
|
|
119
|
+
if (branchTips.length === 1) {
|
|
120
|
+
return branchTips[0].sha;
|
|
121
|
+
}
|
|
122
|
+
// Multiple dependencies: validate linear ancestry
|
|
123
|
+
await validateLinearAncestry(baseCwd, branchTips.map((t) => t.sha));
|
|
124
|
+
// Return the most recent tip (the one that is an ancestor of none)
|
|
125
|
+
// With linear ancestry, the "newest" is the one that has all others as ancestors
|
|
126
|
+
for (const candidate of branchTips) {
|
|
127
|
+
const isNewest = await isAncestorOfAll(baseCwd, branchTips.filter((t) => t.sha !== candidate.sha).map((t) => t.sha), candidate.sha);
|
|
128
|
+
if (isNewest)
|
|
129
|
+
return candidate.sha;
|
|
130
|
+
}
|
|
131
|
+
// Fallback: use the last one
|
|
132
|
+
return branchTips[branchTips.length - 1].sha;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Validate that all given commit SHAs form a linear ancestry chain.
|
|
136
|
+
* Throws if any pair is not an ancestor relationship.
|
|
137
|
+
*/
|
|
138
|
+
export async function validateLinearAncestry(baseCwd, shas) {
|
|
139
|
+
if (shas.length <= 1)
|
|
140
|
+
return;
|
|
141
|
+
// Check each pair for ancestry
|
|
142
|
+
for (let i = 0; i < shas.length; i++) {
|
|
143
|
+
for (let j = i + 1; j < shas.length; j++) {
|
|
144
|
+
const isAncestor = await checkIsAncestor(baseCwd, shas[i], shas[j]);
|
|
145
|
+
const isReverse = await checkIsAncestor(baseCwd, shas[j], shas[i]);
|
|
146
|
+
if (!isAncestor && !isReverse) {
|
|
147
|
+
throw new Error(`Dependency branches have diverged (non-linear ancestry). ` +
|
|
148
|
+
`Commits ${shas[i].slice(0, 8)} and ${shas[j].slice(0, 8)} ` +
|
|
149
|
+
`are not in an ancestor relationship. ` +
|
|
150
|
+
`Please merge your dependency branches first.`);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Get HEAD of the current branch.
|
|
157
|
+
*/
|
|
158
|
+
export async function getHead(baseCwd) {
|
|
159
|
+
const { stdout } = await git(baseCwd, ['rev-parse', 'HEAD']);
|
|
160
|
+
return stdout.trim();
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Get the HEAD SHA of a branch.
|
|
164
|
+
*/
|
|
165
|
+
export async function getBranchHead(baseCwd, branch) {
|
|
166
|
+
try {
|
|
167
|
+
const { stdout } = await git(baseCwd, ['rev-parse', '--verify', branch]);
|
|
168
|
+
return stdout.trim();
|
|
169
|
+
}
|
|
170
|
+
catch {
|
|
171
|
+
throw new Error(`Branch "${branch}" does not exist or has been deleted`);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
// ---------------------------------------------------------------------------
|
|
175
|
+
// Commit operations
|
|
176
|
+
// ---------------------------------------------------------------------------
|
|
177
|
+
/**
|
|
178
|
+
* Stage all changes and commit.
|
|
179
|
+
*
|
|
180
|
+
* @returns The commit SHA, or null if nothing to commit.
|
|
181
|
+
*/
|
|
182
|
+
export async function commitChanges(worktreePath, groupId, agentCount, successCount) {
|
|
183
|
+
// Stage everything
|
|
184
|
+
await git(worktreePath, ['add', '-A']);
|
|
185
|
+
// Check if there are staged changes
|
|
186
|
+
try {
|
|
187
|
+
await git(worktreePath, ['diff', '--cached', '--quiet']);
|
|
188
|
+
// Exit code 0 means no changes
|
|
189
|
+
return null;
|
|
190
|
+
}
|
|
191
|
+
catch {
|
|
192
|
+
// Exit code 1 means there ARE changes (git diff --quiet exits 1 when there are diffs)
|
|
193
|
+
}
|
|
194
|
+
// Commit
|
|
195
|
+
const message = `sub-agent/${groupId}: ${successCount}/${agentCount} agents completed`;
|
|
196
|
+
await git(worktreePath, ['commit', '-m', message]);
|
|
197
|
+
// Get the commit SHA
|
|
198
|
+
const { stdout } = await git(worktreePath, ['rev-parse', 'HEAD']);
|
|
199
|
+
return stdout.trim();
|
|
200
|
+
}
|
|
201
|
+
// ---------------------------------------------------------------------------
|
|
202
|
+
// Internal helpers
|
|
203
|
+
// ---------------------------------------------------------------------------
|
|
204
|
+
/**
|
|
205
|
+
* Check if `ancestor` is an ancestor of `descendant`.
|
|
206
|
+
*/
|
|
207
|
+
async function checkIsAncestor(baseCwd, ancestor, descendant) {
|
|
208
|
+
try {
|
|
209
|
+
await git(baseCwd, ['merge-base', '--is-ancestor', ancestor, descendant]);
|
|
210
|
+
return true; // exit code 0 = is ancestor
|
|
211
|
+
}
|
|
212
|
+
catch {
|
|
213
|
+
return false; // exit code 1 = not ancestor
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Check if all `otherShas` are ancestors of `candidate`.
|
|
218
|
+
*/
|
|
219
|
+
async function isAncestorOfAll(baseCwd, otherShas, candidate) {
|
|
220
|
+
for (const sha of otherShas) {
|
|
221
|
+
const result = await checkIsAncestor(baseCwd, sha, candidate);
|
|
222
|
+
if (!result)
|
|
223
|
+
return false;
|
|
224
|
+
}
|
|
225
|
+
return true;
|
|
226
|
+
}
|
|
227
|
+
//# sourceMappingURL=git.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/wave/git.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wave group orchestrator — main scheduling loop.
|
|
3
|
+
*
|
|
4
|
+
* Synchronous from the MCP tool handler's perspective (blocks until
|
|
5
|
+
* all agents finish or the 30-minute timeout fires).
|
|
6
|
+
*
|
|
7
|
+
* Integrates with Phase 1 primitives:
|
|
8
|
+
* - CodexProcessRunner for spawning
|
|
9
|
+
* - taskStore for per-agent task records
|
|
10
|
+
* - taskEventBus for event routing
|
|
11
|
+
* - NotificationThrottle via progress collector
|
|
12
|
+
*/
|
|
13
|
+
import { type OrchestratorOptions, type OrchestratorResult } from './types.js';
|
|
14
|
+
export declare function orchestrate(opts: OrchestratorOptions): Promise<OrchestratorResult>;
|
|
15
|
+
//# sourceMappingURL=orchestrator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/wave/orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAuBH,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EAOxB,MAAM,YAAY,CAAC;AAQpB,wBAAsB,WAAW,CAC/B,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,kBAAkB,CAAC,CA8L7B"}
|