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.
Files changed (111) hide show
  1. package/dist/event/bus.d.ts +53 -0
  2. package/dist/event/bus.d.ts.map +1 -0
  3. package/dist/event/bus.js +94 -0
  4. package/dist/event/bus.js.map +1 -0
  5. package/dist/event/throttle.d.ts +36 -0
  6. package/dist/event/throttle.d.ts.map +1 -0
  7. package/dist/event/throttle.js +66 -0
  8. package/dist/event/throttle.js.map +1 -0
  9. package/dist/index.js +32 -1
  10. package/dist/index.js.map +1 -1
  11. package/dist/process/event-parser.d.ts +37 -0
  12. package/dist/process/event-parser.d.ts.map +1 -0
  13. package/dist/process/event-parser.js +141 -0
  14. package/dist/process/event-parser.js.map +1 -0
  15. package/dist/process/runner.d.ts +48 -0
  16. package/dist/process/runner.d.ts.map +1 -0
  17. package/dist/process/runner.js +227 -0
  18. package/dist/process/runner.js.map +1 -0
  19. package/dist/process/types.d.ts +74 -0
  20. package/dist/process/types.d.ts.map +1 -0
  21. package/dist/process/types.js +5 -0
  22. package/dist/process/types.js.map +1 -0
  23. package/dist/server.d.ts.map +1 -1
  24. package/dist/server.js +128 -36
  25. package/dist/server.js.map +1 -1
  26. package/dist/services/account-rotator.d.ts +28 -0
  27. package/dist/services/account-rotator.d.ts.map +1 -0
  28. package/dist/services/account-rotator.js +216 -0
  29. package/dist/services/account-rotator.js.map +1 -0
  30. package/dist/services/output-file.d.ts.map +1 -1
  31. package/dist/services/output-file.js +80 -36
  32. package/dist/services/output-file.js.map +1 -1
  33. package/dist/services/template-init.d.ts +10 -0
  34. package/dist/services/template-init.d.ts.map +1 -0
  35. package/dist/services/template-init.js +41 -0
  36. package/dist/services/template-init.js.map +1 -0
  37. package/dist/session/file-storage.d.ts +27 -0
  38. package/dist/session/file-storage.d.ts.map +1 -0
  39. package/dist/session/file-storage.js +281 -0
  40. package/dist/session/file-storage.js.map +1 -0
  41. package/dist/session/storage.js +1 -1
  42. package/dist/session/storage.js.map +1 -1
  43. package/dist/task/state-machine.d.ts +27 -0
  44. package/dist/task/state-machine.d.ts.map +1 -0
  45. package/dist/task/state-machine.js +59 -0
  46. package/dist/task/state-machine.js.map +1 -0
  47. package/dist/task/store.d.ts +91 -0
  48. package/dist/task/store.d.ts.map +1 -0
  49. package/dist/task/store.js +317 -0
  50. package/dist/task/store.js.map +1 -0
  51. package/dist/task/types.d.ts +72 -0
  52. package/dist/task/types.d.ts.map +1 -0
  53. package/dist/task/types.js +13 -0
  54. package/dist/task/types.js.map +1 -0
  55. package/dist/templates/index.d.ts +16 -0
  56. package/dist/templates/index.d.ts.map +1 -1
  57. package/dist/templates/index.js +57 -5
  58. package/dist/templates/index.js.map +1 -1
  59. package/dist/tools/definitions.d.ts +5 -1
  60. package/dist/tools/definitions.d.ts.map +1 -1
  61. package/dist/tools/definitions.js +253 -179
  62. package/dist/tools/definitions.js.map +1 -1
  63. package/dist/tools/description-builder.d.ts +18 -0
  64. package/dist/tools/description-builder.d.ts.map +1 -0
  65. package/dist/tools/description-builder.js +88 -0
  66. package/dist/tools/description-builder.js.map +1 -0
  67. package/dist/tools/handlers.d.ts +19 -17
  68. package/dist/tools/handlers.d.ts.map +1 -1
  69. package/dist/tools/handlers.js +287 -341
  70. package/dist/tools/handlers.js.map +1 -1
  71. package/dist/types.d.ts +5 -12
  72. package/dist/types.d.ts.map +1 -1
  73. package/dist/types.js +7 -10
  74. package/dist/types.js.map +1 -1
  75. package/dist/utils/ring-buffer.d.ts +41 -0
  76. package/dist/utils/ring-buffer.d.ts.map +1 -0
  77. package/dist/utils/ring-buffer.js +83 -0
  78. package/dist/utils/ring-buffer.js.map +1 -0
  79. package/dist/wave/dag.d.ts +32 -0
  80. package/dist/wave/dag.d.ts.map +1 -0
  81. package/dist/wave/dag.js +186 -0
  82. package/dist/wave/dag.js.map +1 -0
  83. package/dist/wave/git.d.ts +57 -0
  84. package/dist/wave/git.d.ts.map +1 -0
  85. package/dist/wave/git.js +227 -0
  86. package/dist/wave/git.js.map +1 -0
  87. package/dist/wave/orchestrator.d.ts +15 -0
  88. package/dist/wave/orchestrator.d.ts.map +1 -0
  89. package/dist/wave/orchestrator.js +565 -0
  90. package/dist/wave/orchestrator.js.map +1 -0
  91. package/dist/wave/progress.d.ts +51 -0
  92. package/dist/wave/progress.d.ts.map +1 -0
  93. package/dist/wave/progress.js +176 -0
  94. package/dist/wave/progress.js.map +1 -0
  95. package/dist/wave/registry.d.ts +66 -0
  96. package/dist/wave/registry.d.ts.map +1 -0
  97. package/dist/wave/registry.js +340 -0
  98. package/dist/wave/registry.js.map +1 -0
  99. package/dist/wave/semaphore.d.ts +42 -0
  100. package/dist/wave/semaphore.d.ts.map +1 -0
  101. package/dist/wave/semaphore.js +119 -0
  102. package/dist/wave/semaphore.js.map +1 -0
  103. package/dist/wave/types.d.ts +197 -0
  104. package/dist/wave/types.d.ts.map +1 -0
  105. package/dist/wave/types.js +147 -0
  106. package/dist/wave/types.js.map +1 -0
  107. package/package.json +1 -1
  108. package/dist/services/task-manager.d.ts +0 -69
  109. package/dist/services/task-manager.d.ts.map +0 -1
  110. package/dist/services/task-manager.js +0 -173
  111. package/dist/services/task-manager.js.map +0 -1
@@ -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"}