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.
- package/README.md +165 -0
- package/agents/executor.md +26 -0
- package/agents/planner.md +41 -0
- package/agents/researcher.md +28 -0
- package/agents/verifier.md +25 -0
- package/dist/agents/backends/claude-code.d.ts +2 -0
- package/dist/agents/backends/claude-code.js +215 -0
- package/dist/agents/backends/claude-code.js.map +1 -0
- package/dist/agents/backends/mock.d.ts +9 -0
- package/dist/agents/backends/mock.js +31 -0
- package/dist/agents/backends/mock.js.map +1 -0
- package/dist/agents/context-builder.d.ts +10 -0
- package/dist/agents/context-builder.js +61 -0
- package/dist/agents/context-builder.js.map +1 -0
- package/dist/agents/prompt-compiler.d.ts +27 -0
- package/dist/agents/prompt-compiler.js +549 -0
- package/dist/agents/prompt-compiler.js.map +1 -0
- package/dist/agents/runtime.d.ts +40 -0
- package/dist/agents/runtime.js +2 -0
- package/dist/agents/runtime.js.map +1 -0
- package/dist/cli/arg-parser.d.ts +6 -0
- package/dist/cli/arg-parser.js +59 -0
- package/dist/cli/arg-parser.js.map +1 -0
- package/dist/cli/commands/config.d.ts +9 -0
- package/dist/cli/commands/config.js +120 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/dashboard.d.ts +1 -0
- package/dist/cli/commands/dashboard.js +54 -0
- package/dist/cli/commands/dashboard.js.map +1 -0
- package/dist/cli/commands/find-root.d.ts +14 -0
- package/dist/cli/commands/find-root.js +55 -0
- package/dist/cli/commands/find-root.js.map +1 -0
- package/dist/cli/commands/init.d.ts +1 -0
- package/dist/cli/commands/init.js +65 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/next.d.ts +1 -0
- package/dist/cli/commands/next.js +61 -0
- package/dist/cli/commands/next.js.map +1 -0
- package/dist/cli/commands/plan.d.ts +2 -0
- package/dist/cli/commands/plan.js +53 -0
- package/dist/cli/commands/plan.js.map +1 -0
- package/dist/cli/commands/replan.d.ts +1 -0
- package/dist/cli/commands/replan.js +54 -0
- package/dist/cli/commands/replan.js.map +1 -0
- package/dist/cli/commands/run-pipeline.d.ts +2 -0
- package/dist/cli/commands/run-pipeline.js +74 -0
- package/dist/cli/commands/run-pipeline.js.map +1 -0
- package/dist/cli/commands/run.d.ts +2 -0
- package/dist/cli/commands/run.js +106 -0
- package/dist/cli/commands/run.js.map +1 -0
- package/dist/cli/commands/status.d.ts +1 -0
- package/dist/cli/commands/status.js +51 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/verify.d.ts +1 -0
- package/dist/cli/commands/verify.js +63 -0
- package/dist/cli/commands/verify.js.map +1 -0
- package/dist/cli/commands/wizard.d.ts +8 -0
- package/dist/cli/commands/wizard.js +39 -0
- package/dist/cli/commands/wizard.js.map +1 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +82 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/wizard/index.d.ts +11 -0
- package/dist/cli/wizard/index.js +40 -0
- package/dist/cli/wizard/index.js.map +1 -0
- package/dist/cli/wizard/interview.d.ts +26 -0
- package/dist/cli/wizard/interview.js +284 -0
- package/dist/cli/wizard/interview.js.map +1 -0
- package/dist/cli/wizard/prompt.d.ts +18 -0
- package/dist/cli/wizard/prompt.js +72 -0
- package/dist/cli/wizard/prompt.js.map +1 -0
- package/dist/cli/wizard/template-generator.d.ts +8 -0
- package/dist/cli/wizard/template-generator.js +133 -0
- package/dist/cli/wizard/template-generator.js.map +1 -0
- package/dist/mcp/index.d.ts +2 -0
- package/dist/mcp/index.js +68 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/protocol.d.ts +33 -0
- package/dist/mcp/protocol.js +82 -0
- package/dist/mcp/protocol.js.map +1 -0
- package/dist/mcp/resources.d.ts +20 -0
- package/dist/mcp/resources.js +101 -0
- package/dist/mcp/resources.js.map +1 -0
- package/dist/mcp/run-manager.d.ts +36 -0
- package/dist/mcp/run-manager.js +179 -0
- package/dist/mcp/run-manager.js.map +1 -0
- package/dist/mcp/server.d.ts +13 -0
- package/dist/mcp/server.js +99 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools.d.ts +32 -0
- package/dist/mcp/tools.js +259 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/orchestrator/alert-types.d.ts +16 -0
- package/dist/orchestrator/alert-types.js +2 -0
- package/dist/orchestrator/alert-types.js.map +1 -0
- package/dist/orchestrator/alerts.d.ts +20 -0
- package/dist/orchestrator/alerts.js +76 -0
- package/dist/orchestrator/alerts.js.map +1 -0
- package/dist/orchestrator/checkpoints.d.ts +8 -0
- package/dist/orchestrator/checkpoints.js +24 -0
- package/dist/orchestrator/checkpoints.js.map +1 -0
- package/dist/orchestrator/engine.d.ts +71 -0
- package/dist/orchestrator/engine.js +420 -0
- package/dist/orchestrator/engine.js.map +1 -0
- package/dist/orchestrator/phase-gates.d.ts +6 -0
- package/dist/orchestrator/phase-gates.js +127 -0
- package/dist/orchestrator/phase-gates.js.map +1 -0
- package/dist/orchestrator/plan-approval.d.ts +10 -0
- package/dist/orchestrator/plan-approval.js +51 -0
- package/dist/orchestrator/plan-approval.js.map +1 -0
- package/dist/orchestrator/safety.d.ts +22 -0
- package/dist/orchestrator/safety.js +126 -0
- package/dist/orchestrator/safety.js.map +1 -0
- package/dist/orchestrator/task-graph.d.ts +17 -0
- package/dist/orchestrator/task-graph.js +156 -0
- package/dist/orchestrator/task-graph.js.map +1 -0
- package/dist/orchestrator/wave-executor.d.ts +37 -0
- package/dist/orchestrator/wave-executor.js +237 -0
- package/dist/orchestrator/wave-executor.js.map +1 -0
- package/dist/session/in-process.d.ts +2 -0
- package/dist/session/in-process.js +149 -0
- package/dist/session/in-process.js.map +1 -0
- package/dist/session/log-capture.d.ts +7 -0
- package/dist/session/log-capture.js +56 -0
- package/dist/session/log-capture.js.map +1 -0
- package/dist/session/manager.d.ts +20 -0
- package/dist/session/manager.js +2 -0
- package/dist/session/manager.js.map +1 -0
- package/dist/state/file-store.d.ts +3 -0
- package/dist/state/file-store.js +124 -0
- package/dist/state/file-store.js.map +1 -0
- package/dist/state/lock.d.ts +6 -0
- package/dist/state/lock.js +71 -0
- package/dist/state/lock.js.map +1 -0
- package/dist/state/plan-parser.d.ts +6 -0
- package/dist/state/plan-parser.js +54 -0
- package/dist/state/plan-parser.js.map +1 -0
- package/dist/state/store.d.ts +27 -0
- package/dist/state/store.js +2 -0
- package/dist/state/store.js.map +1 -0
- package/dist/steps/events.d.ts +49 -0
- package/dist/steps/events.js +2 -0
- package/dist/steps/events.js.map +1 -0
- package/dist/steps/pipeline.d.ts +14 -0
- package/dist/steps/pipeline.js +284 -0
- package/dist/steps/pipeline.js.map +1 -0
- package/dist/steps/plan-parser.d.ts +35 -0
- package/dist/steps/plan-parser.js +147 -0
- package/dist/steps/plan-parser.js.map +1 -0
- package/dist/steps/runner.d.ts +13 -0
- package/dist/steps/runner.js +155 -0
- package/dist/steps/runner.js.map +1 -0
- package/dist/steps/store.d.ts +26 -0
- package/dist/steps/store.js +164 -0
- package/dist/steps/store.js.map +1 -0
- package/dist/steps/types.d.ts +36 -0
- package/dist/steps/types.js +2 -0
- package/dist/steps/types.js.map +1 -0
- package/dist/tui/app.d.ts +15 -0
- package/dist/tui/app.js +297 -0
- package/dist/tui/app.js.map +1 -0
- package/dist/tui/banner.d.ts +1 -0
- package/dist/tui/banner.js +11 -0
- package/dist/tui/banner.js.map +1 -0
- package/dist/tui/colors.d.ts +22 -0
- package/dist/tui/colors.js +30 -0
- package/dist/tui/colors.js.map +1 -0
- package/dist/tui/components/agent-panel.d.ts +8 -0
- package/dist/tui/components/agent-panel.js +80 -0
- package/dist/tui/components/agent-panel.js.map +1 -0
- package/dist/tui/components/header.d.ts +15 -0
- package/dist/tui/components/header.js +69 -0
- package/dist/tui/components/header.js.map +1 -0
- package/dist/tui/components/status-bar.d.ts +2 -0
- package/dist/tui/components/status-bar.js +8 -0
- package/dist/tui/components/status-bar.js.map +1 -0
- package/dist/tui/components/task-board.d.ts +3 -0
- package/dist/tui/components/task-board.js +96 -0
- package/dist/tui/components/task-board.js.map +1 -0
- package/dist/tui/display.d.ts +23 -0
- package/dist/tui/display.js +125 -0
- package/dist/tui/display.js.map +1 -0
- package/dist/tui/input.d.ts +2 -0
- package/dist/tui/input.js +44 -0
- package/dist/tui/input.js.map +1 -0
- package/dist/tui/layout-master.d.ts +7 -0
- package/dist/tui/layout-master.js +31 -0
- package/dist/tui/layout-master.js.map +1 -0
- package/dist/tui/layout.d.ts +13 -0
- package/dist/tui/layout.js +37 -0
- package/dist/tui/layout.js.map +1 -0
- package/dist/tui/pane-formatter.d.ts +27 -0
- package/dist/tui/pane-formatter.js +153 -0
- package/dist/tui/pane-formatter.js.map +1 -0
- package/dist/tui/renderer.d.ts +8 -0
- package/dist/tui/renderer.js +30 -0
- package/dist/tui/renderer.js.map +1 -0
- package/dist/tui/screen.d.ts +12 -0
- package/dist/tui/screen.js +32 -0
- package/dist/tui/screen.js.map +1 -0
- package/dist/tui/structured-display.d.ts +5 -0
- package/dist/tui/structured-display.js +74 -0
- package/dist/tui/structured-display.js.map +1 -0
- package/dist/tui/tmux-display.d.ts +6 -0
- package/dist/tui/tmux-display.js +187 -0
- package/dist/tui/tmux-display.js.map +1 -0
- package/dist/tui/tmux.d.ts +26 -0
- package/dist/tui/tmux.js +265 -0
- package/dist/tui/tmux.js.map +1 -0
- package/dist/types.d.ts +15 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/git.d.ts +6 -0
- package/dist/utils/git.js +35 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/hello.d.ts +1 -0
- package/dist/utils/hello.js +4 -0
- package/dist/utils/hello.js.map +1 -0
- package/dist/utils/id.d.ts +1 -0
- package/dist/utils/id.js +5 -0
- package/dist/utils/id.js.map +1 -0
- package/dist/utils/jsonl.d.ts +2 -0
- package/dist/utils/jsonl.js +18 -0
- package/dist/utils/jsonl.js.map +1 -0
- package/dist/utils/logger.d.ts +20 -0
- package/dist/utils/logger.js +40 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/pricing.d.ts +3 -0
- package/dist/utils/pricing.js +26 -0
- package/dist/utils/pricing.js.map +1 -0
- package/dist/utils/xml.d.ts +13 -0
- package/dist/utils/xml.js +67 -0
- package/dist/utils/xml.js.map +1 -0
- package/dist/utils/yaml.d.ts +5 -0
- package/dist/utils/yaml.js +126 -0
- package/dist/utils/yaml.js.map +1 -0
- package/package.json +45 -0
- package/templates/CONSTITUTION.md +10 -0
- package/templates/STATE.md +3 -0
- 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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"}
|
package/dist/types.d.ts
ADDED
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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;
|
package/dist/utils/id.js
ADDED
|
@@ -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,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,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,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
|
+
}
|