@oeronteros-1/opencode-orchestra 1.0.23 → 1.0.24
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 +8 -2
- package/dashboard-dist/assets/{index-DMvE5MHc.js → index-Dc5lp8wX.js} +2 -2
- package/dashboard-dist/index.html +1 -1
- package/dist/agents/build.js +4 -0
- package/dist/agents/build.js.map +1 -1
- package/dist/agents/editor.d.ts +3 -0
- package/dist/agents/editor.js +12 -0
- package/dist/agents/editor.js.map +1 -0
- package/dist/agents/integrator.d.ts +3 -0
- package/dist/agents/integrator.js +12 -0
- package/dist/agents/integrator.js.map +1 -0
- package/dist/agents/lead.js +3 -1
- package/dist/agents/lead.js.map +1 -1
- package/dist/agents/workers.js +1 -6
- package/dist/agents/workers.js.map +1 -1
- package/dist/cli.d.ts +8 -2
- package/dist/cli.js +46 -21
- package/dist/cli.js.map +1 -1
- package/dist/config/schema.d.ts +2 -0
- package/dist/config/schema.js +6 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/index.js +10 -5
- package/dist/index.js.map +1 -1
- package/dist/orchestration/ownership.d.ts +7 -0
- package/dist/orchestration/ownership.js +45 -0
- package/dist/orchestration/ownership.js.map +1 -0
- package/dist/orchestration/worktree-adapter.d.ts +3 -0
- package/dist/orchestration/worktree-adapter.js +45 -0
- package/dist/orchestration/worktree-adapter.js.map +1 -0
- package/dist/orchestration/worktrees.d.ts +22 -0
- package/dist/orchestration/worktrees.js +27 -0
- package/dist/orchestration/worktrees.js.map +1 -0
- package/dist/prompts/load.js +1 -1
- package/dist/prompts/load.js.map +1 -1
- package/dist/routing/planner.d.ts +14 -1
- package/dist/routing/planner.js +23 -1
- package/dist/routing/planner.js.map +1 -1
- package/dist/tools.js +41 -0
- package/dist/tools.js.map +1 -1
- package/package.json +16 -2
- package/prompts/lead.md +1 -0
- package/schema/opencode-orchestra.schema.json +2 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export function normalizeOwnedPath(path) {
|
|
2
|
+
const normalized = path.replace(/\\/g, "/").replace(/^\.\//, "").replace(/\/$/, "");
|
|
3
|
+
if (!normalized || normalized.includes("\0") || normalized.startsWith("/") || /^[A-Za-z]:\//.test(normalized) || normalized.split("/").includes(".."))
|
|
4
|
+
throw new Error("ownership path must be repository-relative: " + path);
|
|
5
|
+
return normalized;
|
|
6
|
+
}
|
|
7
|
+
function overlaps(a, b) { return a === b || a.startsWith(b + "/") || b.startsWith(a + "/"); }
|
|
8
|
+
export function validateOwnership(partitions) {
|
|
9
|
+
const errors = [];
|
|
10
|
+
const normalized = partitions.map((p) => ({ id: p.id, paths: p.paths.map((path) => { try {
|
|
11
|
+
return normalizeOwnedPath(path);
|
|
12
|
+
}
|
|
13
|
+
catch (e) {
|
|
14
|
+
errors.push(e.message);
|
|
15
|
+
return "";
|
|
16
|
+
} }).filter(Boolean) }));
|
|
17
|
+
for (let i = 0; i < normalized.length; i++)
|
|
18
|
+
for (let j = i + 1; j < normalized.length; j++)
|
|
19
|
+
for (const a of normalized[i].paths)
|
|
20
|
+
for (const b of normalized[j].paths)
|
|
21
|
+
if (overlaps(a, b))
|
|
22
|
+
errors.push("ownership overlap: " + normalized[i].id + ":" + a + " and " + normalized[j].id + ":" + b);
|
|
23
|
+
return [...new Set(errors)].sort();
|
|
24
|
+
}
|
|
25
|
+
export function validateChangedFiles(partitions, changed) {
|
|
26
|
+
const errors = validateOwnership(partitions);
|
|
27
|
+
const byId = new Map(partitions.map((p) => [p.id, p.paths.map(normalizeOwnedPath)]));
|
|
28
|
+
for (const [id, files] of Object.entries(changed))
|
|
29
|
+
for (const raw of files) {
|
|
30
|
+
let file;
|
|
31
|
+
try {
|
|
32
|
+
file = normalizeOwnedPath(raw);
|
|
33
|
+
}
|
|
34
|
+
catch (e) {
|
|
35
|
+
errors.push(e.message);
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
;
|
|
39
|
+
const owners = [...byId].filter(([, paths]) => paths.some((p) => file === p || file.startsWith(p + "/"))).map(([owner]) => owner);
|
|
40
|
+
if (owners.length !== 1 || owners[0] !== id)
|
|
41
|
+
errors.push("changed file " + file + " is not exclusively owned by " + id);
|
|
42
|
+
}
|
|
43
|
+
return [...new Set(errors)].sort();
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=ownership.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ownership.js","sourceRoot":"","sources":["../../src/orchestration/ownership.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACnF,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,GAAG,IAAI,CAAC,CAAA;IAC7N,OAAO,UAAU,CAAA;AACnB,CAAC;AACD,SAAS,QAAQ,CAAC,CAAS,EAAE,CAAS,IAAa,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC,CAAA,CAAC,CAAC;AACrH,MAAM,UAAU,iBAAiB,CAAC,UAAgC;IAChE,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC;YAAC,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAA;QAAC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YAAC,MAAM,CAAC,IAAI,CAAE,CAAW,CAAC,OAAO,CAAC,CAAC;YAAC,OAAO,EAAE,CAAA;QAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;IAC9M,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE;YAAE,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,CAAC,CAAE,CAAC,KAAK;gBAAE,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,CAAC,CAAE,CAAC,KAAK;oBAAE,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;wBAAE,MAAM,CAAC,IAAI,CAAC,qBAAqB,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,CAAA;IACpS,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;AACpC,CAAC;AACD,MAAM,UAAU,oBAAoB,CAAC,UAAgC,EAAE,OAAiC;IACtG,MAAM,MAAM,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAA;IAC5C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAA;IACpF,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;YAAC,IAAI,IAAY,CAAC;YAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAA;YAAC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAE,CAAW,CAAC,OAAO,CAAC,CAAC;gBAAC,SAAQ;YAAC,CAAC;YAAA,CAAC;YAAC,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;YAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE;gBAAE,MAAM,CAAC,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,+BAA+B,GAAG,EAAE,CAAC,CAAA;QAAC,CAAC;IAC9b,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;AACpC,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { mkdir, rm } from "node:fs/promises";
|
|
2
|
+
import { dirname, join, resolve } from "node:path";
|
|
3
|
+
import { spawn } from "node:child_process";
|
|
4
|
+
function safeId(value) {
|
|
5
|
+
return value.replace(/[^a-zA-Z0-9._-]/g, "-").slice(0, 80);
|
|
6
|
+
}
|
|
7
|
+
function runGit(cwd, args) {
|
|
8
|
+
return new Promise((resolvePromise, reject) => {
|
|
9
|
+
const child = spawn("git", args, { cwd, stdio: "ignore", windowsHide: true });
|
|
10
|
+
child.once("error", reject);
|
|
11
|
+
child.once("exit", (code) => code === 0 ? resolvePromise() : reject(new Error("git " + args.join(" ") + " exited with " + code)));
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
/** OpenCode experimental workspace adapter backed by isolated local git worktrees. */
|
|
15
|
+
export function createGitWorktreeAdapter(repository, root = ".orchestra/worktrees") {
|
|
16
|
+
const base = resolve(repository);
|
|
17
|
+
const worktreeRoot = resolve(base, root);
|
|
18
|
+
const directoryOf = (config) => join(worktreeRoot, safeId(config.id));
|
|
19
|
+
return {
|
|
20
|
+
name: "Orchestra Git Worktree",
|
|
21
|
+
description: "Creates one isolated git worktree per parallel Orchestra editor.",
|
|
22
|
+
configure(config) {
|
|
23
|
+
return { ...config, directory: directoryOf(config), branch: config.branch ?? "orchestra/" + safeId(config.id) };
|
|
24
|
+
},
|
|
25
|
+
async create(config, _env, from) {
|
|
26
|
+
const directory = directoryOf(config);
|
|
27
|
+
const branch = config.branch ?? "orchestra/" + safeId(config.id);
|
|
28
|
+
await mkdir(dirname(directory), { recursive: true });
|
|
29
|
+
await runGit(base, ["worktree", "add", "-b", branch, directory, from?.branch ?? "HEAD"]);
|
|
30
|
+
},
|
|
31
|
+
async remove(config) {
|
|
32
|
+
const directory = directoryOf(config);
|
|
33
|
+
const branch = config.branch ?? "orchestra/" + safeId(config.id);
|
|
34
|
+
try {
|
|
35
|
+
await runGit(base, ["worktree", "remove", "--force", directory]);
|
|
36
|
+
}
|
|
37
|
+
finally {
|
|
38
|
+
await rm(directory, { recursive: true, force: true });
|
|
39
|
+
await runGit(base, ["branch", "-D", branch]).catch(() => undefined);
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
target(config) { return { type: "local", directory: directoryOf(config) }; },
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=worktree-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worktree-adapter.js","sourceRoot":"","sources":["../../src/orchestration/worktree-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface GitResult {
|
|
2
|
+
stdout: string;
|
|
3
|
+
stderr: string;
|
|
4
|
+
exitCode: number;
|
|
5
|
+
}
|
|
6
|
+
export interface GitRunner {
|
|
7
|
+
run(args: string[], cwd: string): Promise<GitResult>;
|
|
8
|
+
}
|
|
9
|
+
export declare const systemGit: GitRunner;
|
|
10
|
+
export interface ChangedPath {
|
|
11
|
+
status: string;
|
|
12
|
+
path: string;
|
|
13
|
+
oldPath?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare function parseNameStatusZ(output: string): ChangedPath[];
|
|
16
|
+
export declare function createEditorWorktree(git: GitRunner, repo: string, taskId: string, nodeId: string, baseSha: string, root: string): Promise<{
|
|
17
|
+
path: string;
|
|
18
|
+
branch: string;
|
|
19
|
+
}>;
|
|
20
|
+
export declare function assertCommitDescendsFromBase(git: GitRunner, repo: string, baseSha: string, commitSha: string): Promise<void>;
|
|
21
|
+
export declare function integrateValidatedCommits(git: GitRunner, repo: string, commits: string[]): Promise<void>;
|
|
22
|
+
export declare function collectCommitChanges(git: GitRunner, repo: string, baseSha: string, commitSha: string): Promise<ChangedPath[]>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
export const systemGit = { run(args, cwd) { return new Promise((resolve, reject) => { const child = spawn("git", args, { cwd, stdio: ["ignore", "pipe", "pipe"], windowsHide: true }); let stdout = "", stderr = ""; child.stdout.on("data", (chunk) => stdout += chunk); child.stderr.on("data", (chunk) => stderr += chunk); child.once("error", reject); child.once("exit", (exitCode) => resolve({ stdout, stderr, exitCode: exitCode ?? 1 })); }); } };
|
|
3
|
+
export function parseNameStatusZ(output) { const tokens = output.split("\0"); const result = []; for (let i = 0; i < tokens.length - 1;) {
|
|
4
|
+
const status = tokens[i++];
|
|
5
|
+
if (!status)
|
|
6
|
+
continue;
|
|
7
|
+
const code = status[0];
|
|
8
|
+
const first = tokens[i++];
|
|
9
|
+
if ((code === "R" || code === "C") && i < tokens.length)
|
|
10
|
+
result.push({ status, oldPath: first, path: tokens[i++] });
|
|
11
|
+
else
|
|
12
|
+
result.push({ status, path: first });
|
|
13
|
+
} return result; }
|
|
14
|
+
export async function createEditorWorktree(git, repo, taskId, nodeId, baseSha, root) { const safe = (value) => value.replace(/[^a-zA-Z0-9._-]/g, "-"); const branch = "orch/" + safe(taskId) + "/" + safe(nodeId); const path = root + "/" + safe(taskId) + "-" + safe(nodeId); const result = await git.run(["worktree", "add", "-b", branch, path, baseSha], repo); if (result.exitCode !== 0)
|
|
15
|
+
throw new Error(result.stderr || "git worktree add failed"); return { path, branch }; }
|
|
16
|
+
export async function assertCommitDescendsFromBase(git, repo, baseSha, commitSha) { const result = await git.run(["merge-base", "--is-ancestor", baseSha, commitSha], repo); if (result.exitCode !== 0)
|
|
17
|
+
throw new Error("commit is not descended from base: " + commitSha); }
|
|
18
|
+
export async function integrateValidatedCommits(git, repo, commits) { for (const commit of commits) {
|
|
19
|
+
const result = await git.run(["cherry-pick", commit], repo);
|
|
20
|
+
if (result.exitCode !== 0) {
|
|
21
|
+
await git.run(["cherry-pick", "--abort"], repo);
|
|
22
|
+
throw new Error("cherry-pick conflict for " + commit + ": " + result.stderr);
|
|
23
|
+
}
|
|
24
|
+
} }
|
|
25
|
+
export async function collectCommitChanges(git, repo, baseSha, commitSha) { const result = await git.run(["diff", "--name-status", "-z", "--find-renames", baseSha + "..." + commitSha], repo); if (result.exitCode !== 0)
|
|
26
|
+
throw new Error(result.stderr || "git diff failed"); return parseNameStatusZ(result.stdout); }
|
|
27
|
+
//# sourceMappingURL=worktrees.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worktrees.js","sourceRoot":"","sources":["../../src/orchestration/worktrees.ts"],"names":[],"mappings":"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"}
|
package/dist/prompts/load.js
CHANGED
|
@@ -2,7 +2,7 @@ import { readFile } from "node:fs/promises";
|
|
|
2
2
|
const FALLBACK_LEAD = `You are orch-lead, an evidence-driven primary implementation agent.
|
|
3
3
|
Classify the task by intellectual work profile, dispatch the smallest useful specialist team, synthesize their evidence, implement the requested change, and verify it.
|
|
4
4
|
Use workers for independent evidence, not ceremonial duplication. Never invoke yourself or bypass user instructions, active skills, plans, TDD, or review workflows.
|
|
5
|
-
Escalate to orch-judge only for critical risk or unresolved disagreement. For implementation tasks, continue through editing and verification instead of stopping at a handoff.`;
|
|
5
|
+
Escalate to orch-judge only for critical risk or unresolved disagreement. For implementation tasks, continue through editing and verification instead of stopping at a handoff. Parallel editors require explicit non-overlapping ownership, one experimental git worktree per editor, git-derived diff validation, and a single integrator; retain worktrees on failure.`;
|
|
6
6
|
const FALLBACK_JUDGE = `You are orch-judge, a costly independent arbiter.
|
|
7
7
|
You receive conflicting worker findings. Inspect only the evidence needed to resolve the disagreement.
|
|
8
8
|
Do not delegate and do not edit. State which claims are supported, which are rejected, remaining uncertainty, and the safest recommendation.`;
|
package/dist/prompts/load.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/prompts/load.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAE3C,MAAM,aAAa,GAAG;;;
|
|
1
|
+
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/prompts/load.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAE3C,MAAM,aAAa,GAAG;;;0WAGoV,CAAA;AAE1W,MAAM,cAAc,GAAG;;6IAEsH,CAAA;AAE7I,KAAK,UAAU,UAAU,CAAC,YAAoB,EAAE,QAAgB;IAC9D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,iBAAiB,YAAY,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACrE,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAA;IACjB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACtC,UAAU,CAAC,SAAS,EAAE,aAAa,CAAC;QACpC,UAAU,CAAC,UAAU,EAAE,cAAc,CAAC;KACvC,CAAC,CAAA;IACF,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;AACxB,CAAC"}
|
|
@@ -5,7 +5,13 @@ export interface PlanNode {
|
|
|
5
5
|
description: string;
|
|
6
6
|
worker: string;
|
|
7
7
|
dependsOn: string[];
|
|
8
|
-
role: "specialist" | "reviewer" | "merger";
|
|
8
|
+
role: "specialist" | "reviewer" | "merger" | "editor" | "integrator";
|
|
9
|
+
ownership?: string[];
|
|
10
|
+
worktree?: {
|
|
11
|
+
branch: string;
|
|
12
|
+
path: string;
|
|
13
|
+
baseRevision: string;
|
|
14
|
+
};
|
|
9
15
|
}
|
|
10
16
|
export interface TaskPlan {
|
|
11
17
|
nodes: PlanNode[];
|
|
@@ -13,12 +19,19 @@ export interface TaskPlan {
|
|
|
13
19
|
levels: string[][];
|
|
14
20
|
maxParallel: number;
|
|
15
21
|
mergerNodeId?: string;
|
|
22
|
+
integratorNodeId?: string;
|
|
16
23
|
}
|
|
17
24
|
export interface PlanOptions {
|
|
18
25
|
secondaryWorkers?: string[];
|
|
19
26
|
maxNodes?: number;
|
|
20
27
|
dependencyAware?: boolean;
|
|
21
28
|
includeMerger?: boolean;
|
|
29
|
+
editorPartitions?: Array<{
|
|
30
|
+
id?: string;
|
|
31
|
+
description: string;
|
|
32
|
+
ownership: string[];
|
|
33
|
+
}>;
|
|
34
|
+
includeIntegrator?: boolean;
|
|
22
35
|
}
|
|
23
36
|
export declare function planTask(profile: ProfileName, secondaryProfiles?: ProfileName[], options?: PlanOptions): TaskPlan;
|
|
24
37
|
export declare function validatePlan(plan: TaskPlan): string[];
|
package/dist/routing/planner.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { validateOwnership } from "../orchestration/ownership.js";
|
|
1
2
|
const PROFILE_WORKERS = {
|
|
2
3
|
architecture: ["orch-repo", "orch-research", "orch-critic"],
|
|
3
4
|
debug: ["orch-repo", "orch-tests", "orch-critic"],
|
|
@@ -64,7 +65,25 @@ export function planTask(profile, secondaryProfiles = [], options = {}) {
|
|
|
64
65
|
nodes.push({ id: mergerNodeId, description: "Merge all completed specialist outputs into one evidence-backed handoff, preserving conflicts and provenance.", worker: "orch-merge", dependsOn: evidence, role: "merger" });
|
|
65
66
|
levels.push([mergerNodeId]);
|
|
66
67
|
}
|
|
67
|
-
|
|
68
|
+
let integratorNodeId;
|
|
69
|
+
const partitions = options.editorPartitions ?? [];
|
|
70
|
+
if (partitions.length) {
|
|
71
|
+
const editorDeps = mergerNodeId ? [mergerNodeId] : evidence;
|
|
72
|
+
const editorIds = [];
|
|
73
|
+
for (let i = 0; i < partitions.length; i++) {
|
|
74
|
+
const partition = partitions[i];
|
|
75
|
+
const id = partition.id ?? "editor-" + i;
|
|
76
|
+
nodes.push({ id, description: partition.description, worker: "orch-editor", dependsOn: editorDeps, role: "editor", ownership: partition.ownership });
|
|
77
|
+
editorIds.push(id);
|
|
78
|
+
}
|
|
79
|
+
levels.push(editorIds);
|
|
80
|
+
if (options.includeIntegrator ?? true) {
|
|
81
|
+
integratorNodeId = "integrator";
|
|
82
|
+
nodes.push({ id: integratorNodeId, description: "Integrate validated editor commits in deterministic order.", worker: "orch-integrator", dependsOn: editorIds, role: "integrator" });
|
|
83
|
+
levels.push([integratorNodeId]);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return { nodes, levels, maxParallel: levels.reduce((max, level) => Math.max(max, level.length), 0), ...(mergerNodeId ? { mergerNodeId } : {}), ...(integratorNodeId ? { integratorNodeId } : {}) };
|
|
68
87
|
}
|
|
69
88
|
export function validatePlan(plan) {
|
|
70
89
|
const byId = new Map();
|
|
@@ -72,8 +91,11 @@ export function validatePlan(plan) {
|
|
|
72
91
|
for (const node of plan.nodes) {
|
|
73
92
|
if (byId.has(node.id))
|
|
74
93
|
problems.push("duplicate node " + node.id);
|
|
94
|
+
if (node.role === "editor" && (!node.ownership || node.ownership.length === 0))
|
|
95
|
+
problems.push("editor node " + node.id + " has no ownership");
|
|
75
96
|
byId.set(node.id, node);
|
|
76
97
|
}
|
|
98
|
+
problems.push(...validateOwnership(plan.nodes.filter((node) => node.role === "editor").map((node) => ({ id: node.id, paths: node.ownership ?? [] }))));
|
|
77
99
|
const visiting = new Set(), visited = new Set();
|
|
78
100
|
const visit = (id) => {
|
|
79
101
|
if (visiting.has(id)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"planner.js","sourceRoot":"","sources":["../../src/routing/planner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"planner.js","sourceRoot":"","sources":["../../src/routing/planner.ts"],"names":[],"mappings":"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"}
|
package/dist/tools.js
CHANGED
|
@@ -5,6 +5,8 @@ import { classifyTask } from "./routing/classifier.js";
|
|
|
5
5
|
import { createClassifierCache } from "./routing/classifier-cache.js";
|
|
6
6
|
import { decideEscalation } from "./routing/escalation.js";
|
|
7
7
|
import { planTask } from "./routing/planner.js";
|
|
8
|
+
import { validateOwnership, validateChangedFiles } from "./orchestration/ownership.js";
|
|
9
|
+
import { assertCommitDescendsFromBase, collectCommitChanges, systemGit } from "./orchestration/worktrees.js";
|
|
8
10
|
import { createBudgetGuard, paidBudgetFor } from "./routing/budget-guard.js";
|
|
9
11
|
import { estimateCost, formatEstimateWarning } from "./routing/pricing/estimate.js";
|
|
10
12
|
import { workerCapability, workerPoolKey } from "./agents/workers.js";
|
|
@@ -12,6 +14,45 @@ import { formatPluginStatus } from "./plugin-status.js";
|
|
|
12
14
|
const classificationCache = createClassifierCache();
|
|
13
15
|
export function createOrchestraTools(config, ledger, pluginStatus, pricing) {
|
|
14
16
|
return {
|
|
17
|
+
orchestration_prepare_edit_plan: tool({
|
|
18
|
+
description: "Validate explicit non-overlapping ownership partitions and prepare an isolated editor DAG.",
|
|
19
|
+
args: {
|
|
20
|
+
task: tool.schema.string().min(1),
|
|
21
|
+
profile: tool.schema.string().optional(),
|
|
22
|
+
partitions: tool.schema.array(tool.schema.object({ id: tool.schema.string().min(1), description: tool.schema.string().min(1), ownership: tool.schema.array(tool.schema.string().min(1)).min(1) })).min(1),
|
|
23
|
+
},
|
|
24
|
+
async execute(args) {
|
|
25
|
+
if (config.orchestration.parallelEditors === 0)
|
|
26
|
+
return "Parallel editor mode is disabled (orchestration.parallelEditors is 0).";
|
|
27
|
+
if (args.partitions.length > config.orchestration.parallelEditors)
|
|
28
|
+
return JSON.stringify({ ok: false, violations: ["editor partition count exceeds parallelEditors"] }, null, 2);
|
|
29
|
+
const violations = validateOwnership(args.partitions.map((p) => ({ id: p.id, paths: p.ownership })));
|
|
30
|
+
if (violations.length)
|
|
31
|
+
return JSON.stringify({ ok: false, violations }, null, 2);
|
|
32
|
+
const classification = classifyTask(args.task, config.orchestration.profiles);
|
|
33
|
+
const profile = args.profile && profileNameSchema.safeParse(args.profile).success ? args.profile : classification.profile;
|
|
34
|
+
const plan = planTask(profile, classification.secondaryProfiles, { maxNodes: config.orchestration.maxWorkers, editorPartitions: args.partitions, includeIntegrator: true });
|
|
35
|
+
const planProblems = plan.nodes.length > config.orchestration.maxWorkers ? ["editor plan exceeds maxWorkers; reduce evidence workers or partitions"] : [];
|
|
36
|
+
if (planProblems.length)
|
|
37
|
+
return JSON.stringify({ ok: false, violations: planProblems, plan }, null, 2);
|
|
38
|
+
return JSON.stringify({ ok: true, plan, parallelEditors: Math.min(config.orchestration.parallelEditors, args.partitions.length), worktreeRoot: config.orchestration.worktreeRoot ?? ".orchestra/worktrees" }, null, 2);
|
|
39
|
+
},
|
|
40
|
+
}),
|
|
41
|
+
orchestration_validate_commit: tool({
|
|
42
|
+
description: "Validate an editor commit using the actual git diff and explicit ownership, never worker claims.",
|
|
43
|
+
args: {
|
|
44
|
+
baseSha: tool.schema.string().min(7), commitSha: tool.schema.string().min(7), nodeId: tool.schema.string().min(1),
|
|
45
|
+
partitions: tool.schema.array(tool.schema.object({ id: tool.schema.string().min(1), ownership: tool.schema.array(tool.schema.string().min(1)).min(1) })).min(1),
|
|
46
|
+
},
|
|
47
|
+
async execute(args, context) {
|
|
48
|
+
await assertCommitDescendsFromBase(systemGit, context.worktree, args.baseSha, args.commitSha);
|
|
49
|
+
const changes = await collectCommitChanges(systemGit, context.worktree, args.baseSha, args.commitSha);
|
|
50
|
+
const changed = Object.fromEntries(args.partitions.map((p) => [p.id, p.id === args.nodeId ? changes.flatMap((c) => c.oldPath ? [c.oldPath, c.path] : [c.path]) : []]));
|
|
51
|
+
const ownership = args.partitions.map((p) => ({ id: p.id, paths: p.ownership }));
|
|
52
|
+
const violations = validateChangedFiles(ownership, changed);
|
|
53
|
+
return JSON.stringify({ ok: violations.length === 0, nodeId: args.nodeId, baseSha: args.baseSha, commitSha: args.commitSha, changes, violations }, null, 2);
|
|
54
|
+
},
|
|
55
|
+
}),
|
|
15
56
|
orchestra_route: tool({
|
|
16
57
|
description: "Classify a complex task and return the recommended OpenCode Orchestra worker team for the active budget mode. This does not execute the team.",
|
|
17
58
|
args: {
|
package/dist/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oeronteros-1/opencode-orchestra",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.24",
|
|
4
4
|
"description": "Production-ready model routing, specialist agents, diagnostics, telemetry, and dashboard for OpenCode",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -50,13 +50,14 @@
|
|
|
50
50
|
},
|
|
51
51
|
"scripts": {
|
|
52
52
|
"build": "npm run build:dashboard && npm run build:plugin",
|
|
53
|
+
"prebuild:dashboard": "node scripts/ensure-lightningcss.cjs",
|
|
53
54
|
"build:dashboard": "vite build --config dashboard/vite.config.ts",
|
|
54
55
|
"build:plugin": "tsc -p tsconfig.build.json",
|
|
55
56
|
"dev:dashboard": "vite --config dashboard/vite.config.ts",
|
|
56
57
|
"prepublishOnly": "npm run check",
|
|
57
58
|
"prepack": "npm run build",
|
|
58
59
|
"typecheck": "tsc --noEmit && tsc -p dashboard/tsconfig.json",
|
|
59
|
-
"test": "tsc -p tsconfig.test.json && node --test dist-test/test/config.test.js dist-test/test/classifier.test.js dist-test/test/cache-refresh.test.js dist-test/test/model-resolver.test.js dist-test/test/model-discovery.test.js dist-test/test/budget.test.js dist-test/test/agents.test.js dist-test/test/plugin.test.js dist-test/test/plugin-status.test.js dist-test/test/cli.test.js dist-test/test/dashboard.test.js dist-test/test/live.test.js dist-test/test/ledger.test.js dist-test/test/analytics.test.js dist-test/test/routing-features.test.js dist-test/test/pricing.test.js dist-test/test/fallback.test.js dist-test/test/integration.test.js dist-test/test/doctor.test.js dist-test/test/model-match.test.js dist-test/test/cost.test.js dist-test/test/openrouter.test.js dist-test/test/pricing-resolver.test.js",
|
|
60
|
+
"test": "tsc -p tsconfig.test.json && node --test dist-test/test/config.test.js dist-test/test/classifier.test.js dist-test/test/cache-refresh.test.js dist-test/test/model-resolver.test.js dist-test/test/model-discovery.test.js dist-test/test/budget.test.js dist-test/test/agents.test.js dist-test/test/plugin.test.js dist-test/test/plugin-status.test.js dist-test/test/cli.test.js dist-test/test/dashboard.test.js dist-test/test/live.test.js dist-test/test/ledger.test.js dist-test/test/analytics.test.js dist-test/test/routing-features.test.js dist-test/test/ownership.test.js dist-test/test/worktrees.test.js dist-test/test/pricing.test.js dist-test/test/fallback.test.js dist-test/test/integration.test.js dist-test/test/doctor.test.js dist-test/test/model-match.test.js dist-test/test/cost.test.js dist-test/test/openrouter.test.js dist-test/test/pricing-resolver.test.js",
|
|
60
61
|
"check": "npm run typecheck && npm test"
|
|
61
62
|
},
|
|
62
63
|
"dependencies": {
|
|
@@ -64,6 +65,19 @@
|
|
|
64
65
|
"jsonc-parser": "^3.3.1",
|
|
65
66
|
"zod": "^4.0.0"
|
|
66
67
|
},
|
|
68
|
+
"optionalDependencies": {
|
|
69
|
+
"lightningcss-android-arm64": "1.32.0",
|
|
70
|
+
"lightningcss-darwin-arm64": "1.32.0",
|
|
71
|
+
"lightningcss-darwin-x64": "1.32.0",
|
|
72
|
+
"lightningcss-freebsd-x64": "1.32.0",
|
|
73
|
+
"lightningcss-linux-arm-gnueabihf": "1.32.0",
|
|
74
|
+
"lightningcss-linux-arm64-gnu": "1.32.0",
|
|
75
|
+
"lightningcss-linux-arm64-musl": "1.32.0",
|
|
76
|
+
"lightningcss-linux-x64-gnu": "1.32.0",
|
|
77
|
+
"lightningcss-linux-x64-musl": "1.32.0",
|
|
78
|
+
"lightningcss-win32-arm64-msvc": "1.32.0",
|
|
79
|
+
"lightningcss-win32-x64-msvc": "1.32.0"
|
|
80
|
+
},
|
|
67
81
|
"devDependencies": {
|
|
68
82
|
"@base-ui/react": "^1.7.0",
|
|
69
83
|
"@hookform/resolvers": "^5.9.0",
|
package/prompts/lead.md
CHANGED
|
@@ -14,6 +14,7 @@ Operating rules:
|
|
|
14
14
|
6. Compare claims, evidence, and uncertainty. Do not treat repeated unsupported opinions as consensus.
|
|
15
15
|
7. Invoke `orch-judge` only for critical risk or genuinely unresolved disagreement. Never use it merely to polish prose.
|
|
16
16
|
8. After evidence is merged, make the smallest correct file edits and run relevant verification. Never invoke yourself or bypass the user's instructions, active skills, plans, TDD, or review workflow.
|
|
17
|
+
9. If using parallel editors, resolve one base HEAD, assign explicit non-overlapping repository-relative ownership partitions, create one experimental git worktree per editor, and pass its absolute path and base SHA. Editors must never share the main checkout. Validate actual git diff and ancestry before invoking orch-integrator exactly once; stop and retain worktrees on any conflict or validation failure.
|
|
17
18
|
|
|
18
19
|
For informational tasks, return a compact answer with:
|
|
19
20
|
|
|
@@ -37,6 +37,8 @@
|
|
|
37
37
|
"additionalProperties": false,
|
|
38
38
|
"properties": {
|
|
39
39
|
"parallelWorkers": { "type": "integer", "minimum": 1, "maximum": 8, "default": 3 },
|
|
40
|
+
"parallelEditors": { "type": "integer", "minimum": 0, "maximum": 8, "default": 0 },
|
|
41
|
+
"worktreeRoot": { "type": "string", "minLength": 1 },
|
|
40
42
|
"maxWorkers": { "type": "integer", "minimum": 1, "maximum": 12, "default": 5 },
|
|
41
43
|
"premiumEscalation": { "type": "boolean", "default": true },
|
|
42
44
|
"maxPremiumCallsPerTask": { "type": "integer", "minimum": 0, "maximum": 5, "default": 1 },
|