slavedriver 0.1.0

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 (240) hide show
  1. package/README.md +165 -0
  2. package/agents/executor.md +26 -0
  3. package/agents/planner.md +41 -0
  4. package/agents/researcher.md +28 -0
  5. package/agents/verifier.md +25 -0
  6. package/dist/agents/backends/claude-code.d.ts +2 -0
  7. package/dist/agents/backends/claude-code.js +215 -0
  8. package/dist/agents/backends/claude-code.js.map +1 -0
  9. package/dist/agents/backends/mock.d.ts +9 -0
  10. package/dist/agents/backends/mock.js +31 -0
  11. package/dist/agents/backends/mock.js.map +1 -0
  12. package/dist/agents/context-builder.d.ts +10 -0
  13. package/dist/agents/context-builder.js +61 -0
  14. package/dist/agents/context-builder.js.map +1 -0
  15. package/dist/agents/prompt-compiler.d.ts +27 -0
  16. package/dist/agents/prompt-compiler.js +549 -0
  17. package/dist/agents/prompt-compiler.js.map +1 -0
  18. package/dist/agents/runtime.d.ts +40 -0
  19. package/dist/agents/runtime.js +2 -0
  20. package/dist/agents/runtime.js.map +1 -0
  21. package/dist/cli/arg-parser.d.ts +6 -0
  22. package/dist/cli/arg-parser.js +59 -0
  23. package/dist/cli/arg-parser.js.map +1 -0
  24. package/dist/cli/commands/config.d.ts +9 -0
  25. package/dist/cli/commands/config.js +120 -0
  26. package/dist/cli/commands/config.js.map +1 -0
  27. package/dist/cli/commands/dashboard.d.ts +1 -0
  28. package/dist/cli/commands/dashboard.js +54 -0
  29. package/dist/cli/commands/dashboard.js.map +1 -0
  30. package/dist/cli/commands/find-root.d.ts +14 -0
  31. package/dist/cli/commands/find-root.js +55 -0
  32. package/dist/cli/commands/find-root.js.map +1 -0
  33. package/dist/cli/commands/init.d.ts +1 -0
  34. package/dist/cli/commands/init.js +65 -0
  35. package/dist/cli/commands/init.js.map +1 -0
  36. package/dist/cli/commands/next.d.ts +1 -0
  37. package/dist/cli/commands/next.js +61 -0
  38. package/dist/cli/commands/next.js.map +1 -0
  39. package/dist/cli/commands/plan.d.ts +2 -0
  40. package/dist/cli/commands/plan.js +53 -0
  41. package/dist/cli/commands/plan.js.map +1 -0
  42. package/dist/cli/commands/replan.d.ts +1 -0
  43. package/dist/cli/commands/replan.js +54 -0
  44. package/dist/cli/commands/replan.js.map +1 -0
  45. package/dist/cli/commands/run-pipeline.d.ts +2 -0
  46. package/dist/cli/commands/run-pipeline.js +74 -0
  47. package/dist/cli/commands/run-pipeline.js.map +1 -0
  48. package/dist/cli/commands/run.d.ts +2 -0
  49. package/dist/cli/commands/run.js +106 -0
  50. package/dist/cli/commands/run.js.map +1 -0
  51. package/dist/cli/commands/status.d.ts +1 -0
  52. package/dist/cli/commands/status.js +51 -0
  53. package/dist/cli/commands/status.js.map +1 -0
  54. package/dist/cli/commands/verify.d.ts +1 -0
  55. package/dist/cli/commands/verify.js +63 -0
  56. package/dist/cli/commands/verify.js.map +1 -0
  57. package/dist/cli/commands/wizard.d.ts +8 -0
  58. package/dist/cli/commands/wizard.js +39 -0
  59. package/dist/cli/commands/wizard.js.map +1 -0
  60. package/dist/cli/index.d.ts +2 -0
  61. package/dist/cli/index.js +82 -0
  62. package/dist/cli/index.js.map +1 -0
  63. package/dist/cli/wizard/index.d.ts +11 -0
  64. package/dist/cli/wizard/index.js +40 -0
  65. package/dist/cli/wizard/index.js.map +1 -0
  66. package/dist/cli/wizard/interview.d.ts +26 -0
  67. package/dist/cli/wizard/interview.js +284 -0
  68. package/dist/cli/wizard/interview.js.map +1 -0
  69. package/dist/cli/wizard/prompt.d.ts +18 -0
  70. package/dist/cli/wizard/prompt.js +72 -0
  71. package/dist/cli/wizard/prompt.js.map +1 -0
  72. package/dist/cli/wizard/template-generator.d.ts +8 -0
  73. package/dist/cli/wizard/template-generator.js +133 -0
  74. package/dist/cli/wizard/template-generator.js.map +1 -0
  75. package/dist/mcp/index.d.ts +2 -0
  76. package/dist/mcp/index.js +68 -0
  77. package/dist/mcp/index.js.map +1 -0
  78. package/dist/mcp/protocol.d.ts +33 -0
  79. package/dist/mcp/protocol.js +82 -0
  80. package/dist/mcp/protocol.js.map +1 -0
  81. package/dist/mcp/resources.d.ts +20 -0
  82. package/dist/mcp/resources.js +101 -0
  83. package/dist/mcp/resources.js.map +1 -0
  84. package/dist/mcp/run-manager.d.ts +36 -0
  85. package/dist/mcp/run-manager.js +179 -0
  86. package/dist/mcp/run-manager.js.map +1 -0
  87. package/dist/mcp/server.d.ts +13 -0
  88. package/dist/mcp/server.js +99 -0
  89. package/dist/mcp/server.js.map +1 -0
  90. package/dist/mcp/tools.d.ts +32 -0
  91. package/dist/mcp/tools.js +259 -0
  92. package/dist/mcp/tools.js.map +1 -0
  93. package/dist/orchestrator/alert-types.d.ts +16 -0
  94. package/dist/orchestrator/alert-types.js +2 -0
  95. package/dist/orchestrator/alert-types.js.map +1 -0
  96. package/dist/orchestrator/alerts.d.ts +20 -0
  97. package/dist/orchestrator/alerts.js +76 -0
  98. package/dist/orchestrator/alerts.js.map +1 -0
  99. package/dist/orchestrator/checkpoints.d.ts +8 -0
  100. package/dist/orchestrator/checkpoints.js +24 -0
  101. package/dist/orchestrator/checkpoints.js.map +1 -0
  102. package/dist/orchestrator/engine.d.ts +71 -0
  103. package/dist/orchestrator/engine.js +420 -0
  104. package/dist/orchestrator/engine.js.map +1 -0
  105. package/dist/orchestrator/phase-gates.d.ts +6 -0
  106. package/dist/orchestrator/phase-gates.js +127 -0
  107. package/dist/orchestrator/phase-gates.js.map +1 -0
  108. package/dist/orchestrator/plan-approval.d.ts +10 -0
  109. package/dist/orchestrator/plan-approval.js +51 -0
  110. package/dist/orchestrator/plan-approval.js.map +1 -0
  111. package/dist/orchestrator/safety.d.ts +22 -0
  112. package/dist/orchestrator/safety.js +126 -0
  113. package/dist/orchestrator/safety.js.map +1 -0
  114. package/dist/orchestrator/task-graph.d.ts +17 -0
  115. package/dist/orchestrator/task-graph.js +156 -0
  116. package/dist/orchestrator/task-graph.js.map +1 -0
  117. package/dist/orchestrator/wave-executor.d.ts +37 -0
  118. package/dist/orchestrator/wave-executor.js +237 -0
  119. package/dist/orchestrator/wave-executor.js.map +1 -0
  120. package/dist/session/in-process.d.ts +2 -0
  121. package/dist/session/in-process.js +149 -0
  122. package/dist/session/in-process.js.map +1 -0
  123. package/dist/session/log-capture.d.ts +7 -0
  124. package/dist/session/log-capture.js +56 -0
  125. package/dist/session/log-capture.js.map +1 -0
  126. package/dist/session/manager.d.ts +20 -0
  127. package/dist/session/manager.js +2 -0
  128. package/dist/session/manager.js.map +1 -0
  129. package/dist/state/file-store.d.ts +3 -0
  130. package/dist/state/file-store.js +124 -0
  131. package/dist/state/file-store.js.map +1 -0
  132. package/dist/state/lock.d.ts +6 -0
  133. package/dist/state/lock.js +71 -0
  134. package/dist/state/lock.js.map +1 -0
  135. package/dist/state/plan-parser.d.ts +6 -0
  136. package/dist/state/plan-parser.js +54 -0
  137. package/dist/state/plan-parser.js.map +1 -0
  138. package/dist/state/store.d.ts +27 -0
  139. package/dist/state/store.js +2 -0
  140. package/dist/state/store.js.map +1 -0
  141. package/dist/steps/events.d.ts +49 -0
  142. package/dist/steps/events.js +2 -0
  143. package/dist/steps/events.js.map +1 -0
  144. package/dist/steps/pipeline.d.ts +14 -0
  145. package/dist/steps/pipeline.js +284 -0
  146. package/dist/steps/pipeline.js.map +1 -0
  147. package/dist/steps/plan-parser.d.ts +35 -0
  148. package/dist/steps/plan-parser.js +147 -0
  149. package/dist/steps/plan-parser.js.map +1 -0
  150. package/dist/steps/runner.d.ts +13 -0
  151. package/dist/steps/runner.js +155 -0
  152. package/dist/steps/runner.js.map +1 -0
  153. package/dist/steps/store.d.ts +26 -0
  154. package/dist/steps/store.js +164 -0
  155. package/dist/steps/store.js.map +1 -0
  156. package/dist/steps/types.d.ts +36 -0
  157. package/dist/steps/types.js +2 -0
  158. package/dist/steps/types.js.map +1 -0
  159. package/dist/tui/app.d.ts +15 -0
  160. package/dist/tui/app.js +297 -0
  161. package/dist/tui/app.js.map +1 -0
  162. package/dist/tui/banner.d.ts +1 -0
  163. package/dist/tui/banner.js +11 -0
  164. package/dist/tui/banner.js.map +1 -0
  165. package/dist/tui/colors.d.ts +22 -0
  166. package/dist/tui/colors.js +30 -0
  167. package/dist/tui/colors.js.map +1 -0
  168. package/dist/tui/components/agent-panel.d.ts +8 -0
  169. package/dist/tui/components/agent-panel.js +80 -0
  170. package/dist/tui/components/agent-panel.js.map +1 -0
  171. package/dist/tui/components/header.d.ts +15 -0
  172. package/dist/tui/components/header.js +69 -0
  173. package/dist/tui/components/header.js.map +1 -0
  174. package/dist/tui/components/status-bar.d.ts +2 -0
  175. package/dist/tui/components/status-bar.js +8 -0
  176. package/dist/tui/components/status-bar.js.map +1 -0
  177. package/dist/tui/components/task-board.d.ts +3 -0
  178. package/dist/tui/components/task-board.js +96 -0
  179. package/dist/tui/components/task-board.js.map +1 -0
  180. package/dist/tui/display.d.ts +23 -0
  181. package/dist/tui/display.js +125 -0
  182. package/dist/tui/display.js.map +1 -0
  183. package/dist/tui/input.d.ts +2 -0
  184. package/dist/tui/input.js +44 -0
  185. package/dist/tui/input.js.map +1 -0
  186. package/dist/tui/layout-master.d.ts +7 -0
  187. package/dist/tui/layout-master.js +31 -0
  188. package/dist/tui/layout-master.js.map +1 -0
  189. package/dist/tui/layout.d.ts +13 -0
  190. package/dist/tui/layout.js +37 -0
  191. package/dist/tui/layout.js.map +1 -0
  192. package/dist/tui/pane-formatter.d.ts +27 -0
  193. package/dist/tui/pane-formatter.js +153 -0
  194. package/dist/tui/pane-formatter.js.map +1 -0
  195. package/dist/tui/renderer.d.ts +8 -0
  196. package/dist/tui/renderer.js +30 -0
  197. package/dist/tui/renderer.js.map +1 -0
  198. package/dist/tui/screen.d.ts +12 -0
  199. package/dist/tui/screen.js +32 -0
  200. package/dist/tui/screen.js.map +1 -0
  201. package/dist/tui/structured-display.d.ts +5 -0
  202. package/dist/tui/structured-display.js +74 -0
  203. package/dist/tui/structured-display.js.map +1 -0
  204. package/dist/tui/tmux-display.d.ts +6 -0
  205. package/dist/tui/tmux-display.js +187 -0
  206. package/dist/tui/tmux-display.js.map +1 -0
  207. package/dist/tui/tmux.d.ts +26 -0
  208. package/dist/tui/tmux.js +265 -0
  209. package/dist/tui/tmux.js.map +1 -0
  210. package/dist/types.d.ts +15 -0
  211. package/dist/types.js +2 -0
  212. package/dist/types.js.map +1 -0
  213. package/dist/utils/git.d.ts +6 -0
  214. package/dist/utils/git.js +35 -0
  215. package/dist/utils/git.js.map +1 -0
  216. package/dist/utils/hello.d.ts +1 -0
  217. package/dist/utils/hello.js +4 -0
  218. package/dist/utils/hello.js.map +1 -0
  219. package/dist/utils/id.d.ts +1 -0
  220. package/dist/utils/id.js +5 -0
  221. package/dist/utils/id.js.map +1 -0
  222. package/dist/utils/jsonl.d.ts +2 -0
  223. package/dist/utils/jsonl.js +18 -0
  224. package/dist/utils/jsonl.js.map +1 -0
  225. package/dist/utils/logger.d.ts +20 -0
  226. package/dist/utils/logger.js +40 -0
  227. package/dist/utils/logger.js.map +1 -0
  228. package/dist/utils/pricing.d.ts +3 -0
  229. package/dist/utils/pricing.js +26 -0
  230. package/dist/utils/pricing.js.map +1 -0
  231. package/dist/utils/xml.d.ts +13 -0
  232. package/dist/utils/xml.js +67 -0
  233. package/dist/utils/xml.js.map +1 -0
  234. package/dist/utils/yaml.d.ts +5 -0
  235. package/dist/utils/yaml.js +126 -0
  236. package/dist/utils/yaml.js.map +1 -0
  237. package/package.json +45 -0
  238. package/templates/CONSTITUTION.md +10 -0
  239. package/templates/STATE.md +3 -0
  240. package/templates/config.json +11 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tmux.js","sourceRoot":"","sources":["../../src/tui/tmux.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export type StepStatus = 'pending' | 'running' | 'completed' | 'failed' | 'skipped';
2
+ export interface ProjectConfig {
3
+ readonly maxConcurrentAgents: number;
4
+ readonly maxTotalTokens?: number;
5
+ readonly maxTokensPerStep?: number;
6
+ readonly maxWallTimeSeconds?: number;
7
+ readonly maxAgentInvocations?: number;
8
+ readonly excludedPaths: readonly string[];
9
+ readonly excludedCommands: readonly string[];
10
+ }
11
+ export interface SlavedriverError {
12
+ readonly code: string;
13
+ readonly message: string;
14
+ readonly cause?: unknown;
15
+ }
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ export declare function gitAdd(files: readonly string[], cwd?: string): Promise<void>;
2
+ export declare function gitCommit(message: string, cwd?: string): Promise<string>;
3
+ export declare function gitBranch(name: string, cwd?: string): Promise<void>;
4
+ export declare function gitCheckout(name: string, cwd?: string): Promise<void>;
5
+ export declare function gitStatus(cwd?: string): Promise<string>;
6
+ export declare function gitCurrentBranch(cwd?: string): Promise<string>;
@@ -0,0 +1,35 @@
1
+ import { execFile } from 'node:child_process';
2
+ function exec(cmd, args, cwd) {
3
+ return new Promise((resolve, reject) => {
4
+ execFile(cmd, args, { cwd, encoding: 'utf-8' }, (error, stdout, stderr) => {
5
+ if (error) {
6
+ reject(error);
7
+ return;
8
+ }
9
+ resolve({ stdout, stderr });
10
+ });
11
+ });
12
+ }
13
+ export async function gitAdd(files, cwd) {
14
+ await exec('git', ['add', ...files], cwd);
15
+ }
16
+ export async function gitCommit(message, cwd) {
17
+ await exec('git', ['commit', '-m', message], cwd);
18
+ const { stdout } = await exec('git', ['rev-parse', 'HEAD'], cwd);
19
+ return stdout.trim();
20
+ }
21
+ export async function gitBranch(name, cwd) {
22
+ await exec('git', ['branch', name], cwd);
23
+ }
24
+ export async function gitCheckout(name, cwd) {
25
+ await exec('git', ['checkout', name], cwd);
26
+ }
27
+ export async function gitStatus(cwd) {
28
+ const { stdout } = await exec('git', ['status', '--porcelain'], cwd);
29
+ return stdout;
30
+ }
31
+ export async function gitCurrentBranch(cwd) {
32
+ const { stdout } = await exec('git', ['branch', '--show-current'], cwd);
33
+ return stdout.trim();
34
+ }
35
+ //# sourceMappingURL=git.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAO9C,SAAS,IAAI,CAAC,GAAW,EAAE,IAAuB,EAAE,GAAY;IAC9D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YACxE,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,KAAK,CAAC,CAAC;gBACd,OAAO;YACT,CAAC;YACD,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,KAAwB,EAAE,GAAY;IACjE,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAe,EAAE,GAAY;IAC3D,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;IAClD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;IACjE,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAY,EAAE,GAAY;IACxD,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAY,EAAE,GAAY;IAC1D,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAY;IAC1C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,GAAG,CAAC,CAAC;IACrE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAY;IACjD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAE,GAAG,CAAC,CAAC;IACxE,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function printHelloWorld(): void;
@@ -0,0 +1,4 @@
1
+ export function printHelloWorld() {
2
+ console.log('Hello World');
3
+ }
4
+ //# sourceMappingURL=hello.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hello.js","sourceRoot":"","sources":["../../src/utils/hello.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,eAAe;IAC7B,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAC7B,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function generateId(): string;
@@ -0,0 +1,5 @@
1
+ import { randomBytes } from 'node:crypto';
2
+ export function generateId() {
3
+ return randomBytes(4).toString('hex');
4
+ }
5
+ //# sourceMappingURL=id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,UAAU,UAAU;IACxB,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function appendLine(filePath: string, data: unknown): Promise<void>;
2
+ export declare function readLines<T>(filePath: string): AsyncIterable<T>;
@@ -0,0 +1,18 @@
1
+ import { appendFile } from 'node:fs/promises';
2
+ import { createReadStream } from 'node:fs';
3
+ import { createInterface } from 'node:readline';
4
+ export async function appendLine(filePath, data) {
5
+ const line = JSON.stringify(data) + '\n';
6
+ await appendFile(filePath, line, 'utf-8');
7
+ }
8
+ export async function* readLines(filePath) {
9
+ const stream = createReadStream(filePath, { encoding: 'utf-8' });
10
+ const rl = createInterface({ input: stream, crlfDelay: Infinity });
11
+ for await (const line of rl) {
12
+ const trimmed = line.trim();
13
+ if (trimmed === '')
14
+ continue;
15
+ yield JSON.parse(trimmed);
16
+ }
17
+ }
18
+ //# sourceMappingURL=jsonl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonl.js","sourceRoot":"","sources":["../../src/utils/jsonl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB,EAAE,IAAa;IAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACzC,MAAM,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,SAAS,CAAI,QAAgB;IAClD,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IACjE,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEnE,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,OAAO,KAAK,EAAE;YAAE,SAAS;QAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAM,CAAC;IACjC,CAAC;AACH,CAAC"}
@@ -0,0 +1,20 @@
1
+ export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
2
+ export type LogEntry = {
3
+ readonly ts: string;
4
+ readonly level: LogLevel;
5
+ readonly msg: string;
6
+ readonly prefix?: string;
7
+ readonly [key: string]: unknown;
8
+ };
9
+ export type Logger = {
10
+ readonly debug: (msg: string, extra?: Record<string, unknown>) => void;
11
+ readonly info: (msg: string, extra?: Record<string, unknown>) => void;
12
+ readonly warn: (msg: string, extra?: Record<string, unknown>) => void;
13
+ readonly error: (msg: string, extra?: Record<string, unknown>) => void;
14
+ };
15
+ export type LoggerOptions = {
16
+ readonly level: LogLevel;
17
+ readonly prefix?: string;
18
+ readonly write?: (line: string) => void;
19
+ };
20
+ export declare function createLogger(options: LoggerOptions): Logger;
@@ -0,0 +1,40 @@
1
+ const LEVEL_ORDER = {
2
+ debug: 0,
3
+ info: 1,
4
+ warn: 2,
5
+ error: 3,
6
+ };
7
+ export function createLogger(options) {
8
+ const { level, prefix, write } = options;
9
+ const minLevel = LEVEL_ORDER[level];
10
+ const writeLine = write ?? ((line) => {
11
+ process.stderr.write(line + '\n');
12
+ });
13
+ function log(msgLevel, msg, extra) {
14
+ if (LEVEL_ORDER[msgLevel] < minLevel)
15
+ return;
16
+ const entry = {
17
+ ts: new Date().toISOString(),
18
+ level: msgLevel,
19
+ msg,
20
+ };
21
+ if (prefix !== undefined) {
22
+ entry.prefix = prefix;
23
+ }
24
+ if (extra !== undefined) {
25
+ for (const [key, value] of Object.entries(extra)) {
26
+ if (!(key in entry)) {
27
+ entry[key] = value;
28
+ }
29
+ }
30
+ }
31
+ writeLine(JSON.stringify(entry));
32
+ }
33
+ return {
34
+ debug: (msg, extra) => log('debug', msg, extra),
35
+ info: (msg, extra) => log('info', msg, extra),
36
+ warn: (msg, extra) => log('warn', msg, extra),
37
+ error: (msg, extra) => log('error', msg, extra),
38
+ };
39
+ }
40
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,GAA6B;IAC5C,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAC;AAuBF,MAAM,UAAU,YAAY,CAAC,OAAsB;IACjD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IACzC,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAEpC,MAAM,SAAS,GAAG,KAAK,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE;QAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,SAAS,GAAG,CAAC,QAAkB,EAAE,GAAW,EAAE,KAA+B;QAC3E,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,QAAQ;YAAE,OAAO;QAE7C,MAAM,KAAK,GAA4B;YACrC,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC5B,KAAK,EAAE,QAAQ;YACf,GAAG;SACJ,CAAC;QAEF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QACxB,CAAC;QAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjD,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC;oBACpB,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACrB,CAAC;YACH,CAAC;QACH,CAAC;QAED,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,OAAO;QACL,KAAK,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC;QAC/C,IAAI,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC;QAC7C,IAAI,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC;QAC7C,KAAK,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC;KAChD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { PricingEntry } from '../types.js';
2
+ export declare const DEFAULT_PRICING: readonly PricingEntry[];
3
+ export declare function estimateCost(inputTokens: number, outputTokens: number, model: string | undefined, pricingTable: readonly PricingEntry[] | undefined): number;
@@ -0,0 +1,26 @@
1
+ export const DEFAULT_PRICING = [
2
+ { model: 'claude-sonnet-4', inputPer1MTokens: 3, outputPer1MTokens: 15 },
3
+ { model: 'claude-opus-4', inputPer1MTokens: 15, outputPer1MTokens: 75 },
4
+ ];
5
+ export function estimateCost(inputTokens, outputTokens, model, pricingTable) {
6
+ const table = pricingTable ?? DEFAULT_PRICING;
7
+ if (table.length === 0)
8
+ return 0;
9
+ let entry;
10
+ if (model !== undefined) {
11
+ // Exact match
12
+ entry = table.find((e) => e.model === model);
13
+ // Prefix match
14
+ if (!entry) {
15
+ entry = table.find((e) => model.startsWith(e.model));
16
+ }
17
+ }
18
+ // Fallback to first entry
19
+ if (!entry) {
20
+ entry = table[0];
21
+ }
22
+ const inputCost = (inputTokens / 1_000_000) * entry.inputPer1MTokens;
23
+ const outputCost = (outputTokens / 1_000_000) * entry.outputPer1MTokens;
24
+ return inputCost + outputCost;
25
+ }
26
+ //# sourceMappingURL=pricing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pricing.js","sourceRoot":"","sources":["../../src/utils/pricing.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAA4B;IACtD,EAAE,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,CAAC,EAAE,iBAAiB,EAAE,EAAE,EAAE;IACxE,EAAE,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE;CACxE,CAAC;AAEF,MAAM,UAAU,YAAY,CAC1B,WAAmB,EACnB,YAAoB,EACpB,KAAyB,EACzB,YAAiD;IAEjD,MAAM,KAAK,GAAG,YAAY,IAAI,eAAe,CAAC;IAC9C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAEjC,IAAI,KAA+B,CAAC;IAEpC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,cAAc;QACd,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;QAE7C,eAAe;QACf,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC,GAAG,KAAK,CAAC,gBAAgB,CAAC;IACrE,MAAM,UAAU,GAAG,CAAC,YAAY,GAAG,SAAS,CAAC,GAAG,KAAK,CAAC,iBAAiB,CAAC;IACxE,OAAO,SAAS,GAAG,UAAU,CAAC;AAChC,CAAC"}
@@ -0,0 +1,13 @@
1
+ export type XmlTask = {
2
+ readonly id: string;
3
+ readonly wave: string;
4
+ readonly agent: string;
5
+ readonly priority: string;
6
+ readonly title: string;
7
+ readonly dependsOn: readonly string[];
8
+ readonly description: string;
9
+ readonly mustHaves: readonly string[];
10
+ readonly verification: string;
11
+ readonly mode: string;
12
+ };
13
+ export declare function parseXmlTasks(xml: string): XmlTask[];
@@ -0,0 +1,67 @@
1
+ function parseAttributes(tag) {
2
+ const attrs = {};
3
+ const attrRegex = /(\w[\w-]*)="([^"]*)"/g;
4
+ let match;
5
+ while ((match = attrRegex.exec(tag)) !== null) {
6
+ attrs[match[1]] = match[2];
7
+ }
8
+ return attrs;
9
+ }
10
+ function getElementContent(body, tagName) {
11
+ const openTag = `<${tagName}>`;
12
+ const closeTag = `</${tagName}>`;
13
+ const startIdx = body.indexOf(openTag);
14
+ if (startIdx === -1)
15
+ return undefined;
16
+ const contentStart = startIdx + openTag.length;
17
+ const endIdx = body.indexOf(closeTag, contentStart);
18
+ if (endIdx === -1)
19
+ return undefined;
20
+ return body.slice(contentStart, endIdx).trim();
21
+ }
22
+ function parseBulletList(content) {
23
+ return content
24
+ .split('\n')
25
+ .map((line) => line.trim())
26
+ .filter((line) => line.startsWith('-'))
27
+ .map((line) => line.slice(1).trim())
28
+ .filter((item) => item.length > 0);
29
+ }
30
+ function parseDependsList(content) {
31
+ return content
32
+ .split(',')
33
+ .map((item) => item.trim())
34
+ .filter((item) => item.length > 0);
35
+ }
36
+ export function parseXmlTasks(xml) {
37
+ const tasks = [];
38
+ const taskRegex = /<task\s+([^>]*)>([\s\S]*?)<\/task>/g;
39
+ let match;
40
+ while ((match = taskRegex.exec(xml)) !== null) {
41
+ const attrString = match[1];
42
+ const body = match[2];
43
+ const attrs = parseAttributes(attrString);
44
+ const title = getElementContent(body, 'title') ?? '';
45
+ const dependsOnRaw = getElementContent(body, 'depends-on');
46
+ const description = getElementContent(body, 'description') ?? '';
47
+ const mustHavesRaw = getElementContent(body, 'must-haves');
48
+ const verification = getElementContent(body, 'verification') ?? '';
49
+ const mode = getElementContent(body, 'mode') ?? '';
50
+ const dependsOn = dependsOnRaw ? parseDependsList(dependsOnRaw) : [];
51
+ const mustHaves = mustHavesRaw ? parseBulletList(mustHavesRaw) : [];
52
+ tasks.push({
53
+ id: attrs.id ?? '',
54
+ wave: attrs.wave ?? '',
55
+ agent: attrs.agent ?? '',
56
+ priority: attrs.priority ?? '',
57
+ title,
58
+ dependsOn,
59
+ description,
60
+ mustHaves,
61
+ verification,
62
+ mode,
63
+ });
64
+ }
65
+ return tasks;
66
+ }
67
+ //# sourceMappingURL=xml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xml.js","sourceRoot":"","sources":["../../src/utils/xml.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export type FrontmatterResult = {
2
+ readonly frontmatter: Record<string, unknown>;
3
+ readonly body: string;
4
+ };
5
+ export declare function parseFrontmatter(content: string): FrontmatterResult;
@@ -0,0 +1,126 @@
1
+ function parseValue(raw) {
2
+ const trimmed = raw.trim();
3
+ // Quoted strings
4
+ if ((trimmed.startsWith('"') && trimmed.endsWith('"')) ||
5
+ (trimmed.startsWith("'") && trimmed.endsWith("'"))) {
6
+ return trimmed.slice(1, -1);
7
+ }
8
+ // Booleans
9
+ if (trimmed === 'true')
10
+ return true;
11
+ if (trimmed === 'false')
12
+ return false;
13
+ // Null
14
+ if (trimmed === 'null' || trimmed === '~')
15
+ return null;
16
+ // Numbers
17
+ if (trimmed !== '' && !isNaN(Number(trimmed))) {
18
+ return Number(trimmed);
19
+ }
20
+ // Plain string
21
+ return trimmed;
22
+ }
23
+ export function parseFrontmatter(content) {
24
+ const lines = content.split('\n');
25
+ // Find opening ---
26
+ let startIdx = -1;
27
+ for (let i = 0; i < lines.length; i++) {
28
+ if (lines[i].trim() === '---') {
29
+ startIdx = i;
30
+ break;
31
+ }
32
+ }
33
+ if (startIdx === -1) {
34
+ return { frontmatter: {}, body: content };
35
+ }
36
+ // Find closing ---
37
+ let endIdx = -1;
38
+ for (let i = startIdx + 1; i < lines.length; i++) {
39
+ if (lines[i].trim() === '---') {
40
+ endIdx = i;
41
+ break;
42
+ }
43
+ }
44
+ if (endIdx === -1) {
45
+ return { frontmatter: {}, body: content };
46
+ }
47
+ const fmLines = lines.slice(startIdx + 1, endIdx);
48
+ const body = lines.slice(endIdx + 1).join('\n');
49
+ const frontmatter = {};
50
+ let i = 0;
51
+ while (i < fmLines.length) {
52
+ const line = fmLines[i];
53
+ // Skip empty lines
54
+ if (line.trim() === '') {
55
+ i++;
56
+ continue;
57
+ }
58
+ // Must be a key: value line at the top level (no leading spaces)
59
+ const keyMatch = line.match(/^(\w[\w-]*)\s*:\s*(.*)/);
60
+ if (!keyMatch) {
61
+ i++;
62
+ continue;
63
+ }
64
+ const key = keyMatch[1];
65
+ const valueRaw = keyMatch[2].trim();
66
+ // Check if next lines are array items or nested object
67
+ if (valueRaw === '') {
68
+ // Could be an array or nested object - peek ahead
69
+ const children = [];
70
+ let j = i + 1;
71
+ while (j < fmLines.length) {
72
+ const childLine = fmLines[j];
73
+ if (childLine.trim() === '') {
74
+ j++;
75
+ continue;
76
+ }
77
+ // Check if it's indented (part of this key's value)
78
+ if (childLine.match(/^\s+/)) {
79
+ children.push(childLine);
80
+ j++;
81
+ }
82
+ else {
83
+ break;
84
+ }
85
+ }
86
+ if (children.length > 0) {
87
+ // Determine if array or object
88
+ const firstChild = children[0].trim();
89
+ if (firstChild.startsWith('- ') || firstChild === '-') {
90
+ // Array
91
+ const items = [];
92
+ for (const child of children) {
93
+ const itemMatch = child.match(/^\s+-\s+(.*)/);
94
+ if (itemMatch) {
95
+ items.push(parseValue(itemMatch[1]));
96
+ }
97
+ }
98
+ frontmatter[key] = items;
99
+ }
100
+ else {
101
+ // Nested object (one level deep)
102
+ const nested = {};
103
+ for (const child of children) {
104
+ const nestedMatch = child.match(/^\s+(\w[\w-]*)\s*:\s*(.*)/);
105
+ if (nestedMatch) {
106
+ nested[nestedMatch[1]] = parseValue(nestedMatch[2]);
107
+ }
108
+ }
109
+ frontmatter[key] = nested;
110
+ }
111
+ }
112
+ else {
113
+ // Empty value
114
+ frontmatter[key] = '';
115
+ }
116
+ i = j;
117
+ }
118
+ else {
119
+ // Inline value
120
+ frontmatter[key] = parseValue(valueRaw);
121
+ i++;
122
+ }
123
+ }
124
+ return { frontmatter, body };
125
+ }
126
+ //# sourceMappingURL=yaml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yaml.js","sourceRoot":"","sources":["../../src/utils/yaml.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,45 @@
1
+ {
2
+ "name": "slavedriver",
3
+ "version": "0.1.0",
4
+ "description": "Multi-agent orchestration CLI powered by Claude Code",
5
+ "type": "module",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/tikket1/slavedriver.git"
9
+ },
10
+ "bin": {
11
+ "slavedriver": "./dist/cli/index.js",
12
+ "slavedriver-mcp": "./dist/mcp/index.js"
13
+ },
14
+ "scripts": {
15
+ "build": "tsc && chmod +x dist/cli/index.js dist/mcp/index.js",
16
+ "prepublishOnly": "npm run build && npm test",
17
+ "test": "scripts/test-cached.sh",
18
+ "test:force": "vitest run",
19
+ "test:watch": "vitest",
20
+ "lint": "tsc --noEmit",
21
+ "clean": "rm -rf dist"
22
+ },
23
+ "engines": {
24
+ "node": ">=20"
25
+ },
26
+ "files": [
27
+ "dist",
28
+ "agents",
29
+ "templates"
30
+ ],
31
+ "keywords": [
32
+ "ai",
33
+ "agent",
34
+ "orchestration",
35
+ "claude",
36
+ "cli",
37
+ "multi-agent"
38
+ ],
39
+ "license": "MIT",
40
+ "devDependencies": {
41
+ "typescript": "^5.7.0",
42
+ "vitest": "^3.0.0",
43
+ "@types/node": "^22.0.0"
44
+ }
45
+ }
@@ -0,0 +1,10 @@
1
+ # Project Constitution
2
+
3
+ Add your project's non-negotiable constraints here.
4
+ These will be included in every agent's context.
5
+
6
+ ## Examples
7
+
8
+ - All code must include tests
9
+ - Never modify the database schema directly
10
+ - Always use the project's logging framework
@@ -0,0 +1,3 @@
1
+ # Project State
2
+
3
+ No discovery has been run yet.
@@ -0,0 +1,11 @@
1
+ {
2
+ "maxIterations": 200,
3
+ "maxBudgetUsd": 20.00,
4
+ "maxConcurrentAgents": 8,
5
+ "maxWaveRetries": 2,
6
+ "maxTaskRetries": 3,
7
+ "requirePlanApproval": true,
8
+ "requireVerification": true,
9
+ "excludedPaths": [".env", "*.key", "*.pem", "credentials/"],
10
+ "excludedCommands": ["rm -rf /", "sudo", "curl | bash"]
11
+ }