@frankzhang2026/opencode-android-orchestrator 1.0.4 → 1.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/CHANGELOG.md +78 -0
- package/README.md +79 -18
- package/dist/config/queue-policy.d.ts.map +1 -1
- package/dist/config/queue-policy.js +1 -2
- package/dist/config/queue-policy.js.map +1 -1
- package/dist/doctor/index.d.ts.map +1 -1
- package/dist/doctor/index.js +14 -3
- package/dist/doctor/index.js.map +1 -1
- package/dist/doctor/installation.d.ts +1 -1
- package/dist/doctor/installation.d.ts.map +1 -1
- package/dist/doctor/installation.js +10 -1
- package/dist/doctor/installation.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/installer/adaptive-templates.d.ts +4 -1
- package/dist/installer/adaptive-templates.d.ts.map +1 -1
- package/dist/installer/adaptive-templates.js +49 -13
- package/dist/installer/adaptive-templates.js.map +1 -1
- package/dist/installer/android-project.d.ts +3 -1
- package/dist/installer/android-project.d.ts.map +1 -1
- package/dist/installer/android-project.js.map +1 -1
- package/dist/installer/capabilities-script.d.ts +2 -0
- package/dist/installer/capabilities-script.d.ts.map +1 -0
- package/dist/installer/capabilities-script.js +77 -0
- package/dist/installer/capabilities-script.js.map +1 -0
- package/dist/installer/gradle-verification.d.ts.map +1 -1
- package/dist/installer/gradle-verification.js +13 -6
- package/dist/installer/gradle-verification.js.map +1 -1
- package/dist/installer/init.d.ts.map +1 -1
- package/dist/installer/init.js +2 -1
- package/dist/installer/init.js.map +1 -1
- package/dist/installer/opencode-config.d.ts +3 -3
- package/dist/installer/opencode-config.js +1 -1
- package/dist/installer/project-capabilities.d.ts +35 -0
- package/dist/installer/project-capabilities.d.ts.map +1 -0
- package/dist/installer/project-capabilities.js +82 -0
- package/dist/installer/project-capabilities.js.map +1 -0
- package/dist/installer/upgrade.d.ts.map +1 -1
- package/dist/installer/upgrade.js +9 -1
- package/dist/installer/upgrade.js.map +1 -1
- package/dist/queue/cli.d.ts.map +1 -1
- package/dist/queue/cli.js +32 -5
- package/dist/queue/cli.js.map +1 -1
- package/dist/queue/executor.d.ts +1 -0
- package/dist/queue/executor.d.ts.map +1 -1
- package/dist/queue/executor.js +155 -11
- package/dist/queue/executor.js.map +1 -1
- package/dist/queue/process-ownership.d.ts +12 -0
- package/dist/queue/process-ownership.d.ts.map +1 -0
- package/dist/queue/process-ownership.js +58 -0
- package/dist/queue/process-ownership.js.map +1 -0
- package/dist/queue/queue.d.ts +25 -1
- package/dist/queue/queue.d.ts.map +1 -1
- package/dist/queue/queue.js +152 -11
- package/dist/queue/queue.js.map +1 -1
- package/dist/queue/service.d.ts.map +1 -1
- package/dist/queue/service.js +19 -2
- package/dist/queue/service.js.map +1 -1
- package/dist/queue/storage.d.ts +3 -1
- package/dist/queue/storage.d.ts.map +1 -1
- package/dist/queue/storage.js +25 -15
- package/dist/queue/storage.js.map +1 -1
- package/dist/queue/supervision.d.ts +38 -0
- package/dist/queue/supervision.d.ts.map +1 -0
- package/dist/queue/supervision.js +247 -0
- package/dist/queue/supervision.js.map +1 -0
- package/dist/queue/tools.d.ts.map +1 -1
- package/dist/queue/tools.js +4 -2
- package/dist/queue/tools.js.map +1 -1
- package/docs/MIGRATION.md +110 -9
- package/docs/QUEUE.md +360 -6
- package/docs/SECURITY.md +5 -2
- package/docs/TROUBLESHOOTING.md +82 -8
- package/package.json +1 -1
- package/templates/.opencode/agents/scheduled-coder.md +22 -0
- package/templates/.opencode/agents/scheduled-planner.md +73 -2
- package/templates/.opencode/skills/scheduled-quality-coder/SKILL.md +34 -2
- package/templates/.opencode/skills/scheduled-quality-orchestrator/SKILL.md +65 -4
- package/templates/.opencode/skills/scheduled-quality-reviewer/SKILL.md +22 -0
- package/templates/AGENTS.md.fragment +10 -4
- package/templates/README.md +3 -1
- package/templates/automation/config.schema.json +212 -22
- package/templates/automation/task-contract.schema.json +617 -21
- package/templates/automation/tasks/TASK-TEMPLATE.json.example +31 -3
- package/templates/automation/verification/collect.init.gradle +98 -0
- package/templates/automation/verification/contract.cjs +93 -0
- package/templates/automation/verification/inventory.cjs +433 -0
- package/templates/automation/verification/project.cjs +172 -0
- package/templates/automation/verification/recovery.cjs +426 -0
- package/templates/scripts/automation/acceptance-report.sh +29 -0
- package/templates/scripts/automation/claim-task.sh +35 -2
- package/templates/scripts/automation/integration-scope-gate.sh +3 -3
- package/templates/scripts/automation/lib.sh +167 -17
- package/templates/scripts/automation/orchestrate-task.sh +7 -1
- package/templates/scripts/automation/preflight.sh +1 -2
- package/templates/scripts/automation/quality-gate.sh +10 -1
- package/templates/scripts/automation/record-red.sh +182 -32
- package/templates/scripts/automation/resume-task.sh +3 -0
- package/templates/scripts/automation/scope-gate.sh +4 -4
- package/templates/scripts/automation/show-acceptance-review.sh +8 -0
- package/templates/scripts/automation/status.sh +38 -0
- package/templates/scripts/automation/submit-review.sh +10 -1
- package/templates/scripts/automation/validate-contract.sh +56 -3
- package/templates/scripts/automation/verify-integration.sh +3 -0
- package/templates/scripts/automation/verify-task.sh +17 -0
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
import { randomBytes } from "node:crypto";
|
|
3
|
+
import { existsSync } from "node:fs";
|
|
4
|
+
import { join } from "node:path";
|
|
5
|
+
import { fileURLToPath } from "node:url";
|
|
6
|
+
import { atomicJson, git, invariant, isAlive, processIdentity, readJson, recoverLock, sha256 } from "./storage.js";
|
|
7
|
+
import { ownedTree, processSnapshot, signalOwned } from "./process-ownership.js";
|
|
8
|
+
import { helper } from "./executor.js";
|
|
9
|
+
const entry = fileURLToPath(new URL("./cli.js", import.meta.url));
|
|
10
|
+
const wait = (ms) => new Promise(resolve => setTimeout(resolve, ms));
|
|
11
|
+
export function initialSupervision(policy, now) {
|
|
12
|
+
return { owner: null, token: randomBytes(32).toString("hex"), startedAt: now, deadline: now + policy.maxRunMs,
|
|
13
|
+
stage: "preparation", stageStartedAt: now, stageDeadline: now + policy.maxStageMs,
|
|
14
|
+
state: "RUNNING", stopReason: null, termAt: null, killAt: null, known: [], events: [] };
|
|
15
|
+
}
|
|
16
|
+
export function supervisionEvidence(record) {
|
|
17
|
+
const { token, ...evidence } = record;
|
|
18
|
+
return { ...evidence, ownershipDigest: sha256(token) };
|
|
19
|
+
}
|
|
20
|
+
export function deadlineReason(record, now) {
|
|
21
|
+
if (now < record.startedAt || now < record.stageStartedAt)
|
|
22
|
+
return "Clock moved backwards; ownership review required";
|
|
23
|
+
if (now >= record.deadline)
|
|
24
|
+
return "Approved Worker execution deadline exceeded";
|
|
25
|
+
if (now >= record.stageDeadline)
|
|
26
|
+
return `Approved ${record.stage} stage deadline exceeded`;
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
function stageFor(queue, run) {
|
|
30
|
+
if (["integrate", "recover", "revalidate"].includes(run.kind))
|
|
31
|
+
return "integration";
|
|
32
|
+
if (run.kind === "abort")
|
|
33
|
+
return "abort";
|
|
34
|
+
const item = queue.item(run.key), file = join(queue.storage.runtime, "state", `${item.taskId}.json`);
|
|
35
|
+
const state = existsSync(file) ? readJson(file).state : item.state;
|
|
36
|
+
if (["READY_TO_COMMIT", "INTEGRATING", "COMPLETED"].includes(state))
|
|
37
|
+
return "integration";
|
|
38
|
+
if (["READY_FOR_REVIEW", "REVIEWING", "CHANGES_REQUESTED"].includes(state))
|
|
39
|
+
return "review";
|
|
40
|
+
if (["PENDING", "CODING"].includes(state))
|
|
41
|
+
return existsSync(join(queue.storage.runtime, "evidence", item.taskId, "baseline.json")) ? "coding" : "baseline";
|
|
42
|
+
return run.supervision.stage;
|
|
43
|
+
}
|
|
44
|
+
function update(queue, runId, owner, action) {
|
|
45
|
+
queue.storage.transaction(document => {
|
|
46
|
+
invariant(document.active?.id === runId, "Supervisor lost its execution reservation");
|
|
47
|
+
invariant(document.active.supervision?.owner?.pid === owner.pid && document.active.supervision.owner.started === owner.started, "Supervisor identity changed");
|
|
48
|
+
action(document.active);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
export function recoverOwnedTransaction(queue, record, worker) {
|
|
52
|
+
if (!existsSync(queue.storage.lockPath))
|
|
53
|
+
return;
|
|
54
|
+
let owner;
|
|
55
|
+
try {
|
|
56
|
+
owner = readJson(queue.storage.lockPath);
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
// A live transaction creates its lock exclusively before writing its owner
|
|
60
|
+
// and may release it between exists/read. Leave ambiguous bytes untouched;
|
|
61
|
+
// normal transaction acquisition still waits and refuses an occupied lock.
|
|
62
|
+
if (error instanceof SyntaxError || error.code === "ENOENT")
|
|
63
|
+
return;
|
|
64
|
+
throw error;
|
|
65
|
+
}
|
|
66
|
+
if (isAlive(owner))
|
|
67
|
+
return;
|
|
68
|
+
// The process probe runs outside the file read. A short-lived transaction
|
|
69
|
+
// can release its lock and exit before ps answers. Recheck the exact owner
|
|
70
|
+
// before rejecting it, and bind any recovery to this same lock generation.
|
|
71
|
+
try {
|
|
72
|
+
const current = readJson(queue.storage.lockPath);
|
|
73
|
+
if (current.pid !== owner.pid || current.started !== owner.started || current.token !== owner.token)
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
if (error instanceof SyntaxError || error.code === "ENOENT")
|
|
78
|
+
return;
|
|
79
|
+
throw error;
|
|
80
|
+
}
|
|
81
|
+
invariant([...(worker ? [worker] : []), ...(record.owner ? [record.owner] : []), ...record.known].some(p => p.pid === owner.pid && p.started === owner.started), "Dead queue lock does not belong to the supervised execution; explicit recovery required");
|
|
82
|
+
recoverLock(queue.storage.lockPath, owner);
|
|
83
|
+
}
|
|
84
|
+
function finishStopped(queue, run) {
|
|
85
|
+
const item = queue.item(run.key), evidence = join(queue.storage.runtime, "evidence", item.taskId);
|
|
86
|
+
// A commit may already be visible. Preserve its transaction for the existing
|
|
87
|
+
// idempotent recovery route; never start integration again here.
|
|
88
|
+
const commit = existsSync(join(evidence, "commit-transaction.json"));
|
|
89
|
+
const state = commit ? "INTEGRATION_BLOCKED" : "BLOCKED";
|
|
90
|
+
const note = `${run.supervision.stopReason}; all owned processes exited; candidate retained`;
|
|
91
|
+
const statePath = join(queue.storage.runtime, "state", `${item.taskId}.json`);
|
|
92
|
+
const previous = existsSync(statePath) ? readJson(statePath) : { revision: 0 };
|
|
93
|
+
atomicJson(statePath, { taskId: item.taskId, state, revision: previous.revision + 1,
|
|
94
|
+
updatedAt: new Date().toISOString(), updatedBy: "worker-supervisor", note });
|
|
95
|
+
let diff = null, head = "";
|
|
96
|
+
const workspacePath = join(queue.storage.runtime, "workspaces", `${item.taskId}.json`);
|
|
97
|
+
if (!commit && existsSync(workspacePath)) {
|
|
98
|
+
const workspace = readJson(workspacePath);
|
|
99
|
+
invariant(git(workspace.taskRoot, ["symbolic-ref", "--short", "HEAD"]) === workspace.taskBranch, "Stopped workspace branch changed");
|
|
100
|
+
head = git(workspace.taskRoot, ["rev-parse", "HEAD"]);
|
|
101
|
+
invariant(head === workspace.baselineHead, "Stopped workspace HEAD changed; preserve lease for explicit recovery");
|
|
102
|
+
diff = helper(workspace.taskRoot, "automation_worktree_diff_sha", [workspace.taskRoot]);
|
|
103
|
+
const patch = helper(workspace.taskRoot, "automation_worktree_patch_at", [workspace.taskRoot]);
|
|
104
|
+
atomicJson(join(evidence, "queue-seal.json"), { runId: run.id, queueKey: item.key, taskRoot: workspace.taskRoot,
|
|
105
|
+
taskBranch: workspace.taskBranch, head, diffSha256: diff, patch, state, sealedAt: new Date().toISOString(), stoppedBySupervisor: true });
|
|
106
|
+
}
|
|
107
|
+
queue.storage.transaction(document => {
|
|
108
|
+
invariant(document.active?.id === run.id && document.active.supervision?.owner?.pid === run.supervision.owner.pid, "Stopped execution changed before sealing");
|
|
109
|
+
document.active.outcome = { state, error: note };
|
|
110
|
+
document.active.supervision.state = "EXITED";
|
|
111
|
+
document.active.supervision.events.push({ at: Date.now(), kind: "exit-confirmed" });
|
|
112
|
+
const current = document.items.find(candidate => candidate.key === item.key);
|
|
113
|
+
current.state = state;
|
|
114
|
+
if (current.baselineRecovery)
|
|
115
|
+
current.baselineRecovery.nextRunAt = null;
|
|
116
|
+
current.sealedDiff = diff;
|
|
117
|
+
current.sealedRunId = diff ? run.id : null;
|
|
118
|
+
current.candidateId = diff ? sha256(`${item.digest}:${head}:${diff}`) : null;
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
/** Independent of both Worker event-loop progress and the scheduler lifetime. */
|
|
122
|
+
export async function supervise(queue, runId) {
|
|
123
|
+
const owner = processIdentity(process.pid);
|
|
124
|
+
invariant(owner, "Cannot identify Worker supervisor");
|
|
125
|
+
let run = queue.storage.read().active;
|
|
126
|
+
invariant(run?.id === runId && run.supervision, "Missing approved supervision reservation");
|
|
127
|
+
const previous = run.supervision.owner;
|
|
128
|
+
if (previous && isAlive(previous))
|
|
129
|
+
return;
|
|
130
|
+
recoverOwnedTransaction(queue, run.supervision, run.worker);
|
|
131
|
+
queue.storage.transaction(document => {
|
|
132
|
+
invariant(document.active?.id === runId && document.active.supervision, "Supervision reservation changed");
|
|
133
|
+
const current = document.active.supervision.owner;
|
|
134
|
+
invariant(!current || !isAlive(current), "Supervisor already alive");
|
|
135
|
+
document.active.supervision.owner = owner;
|
|
136
|
+
document.active.supervision.events.push({ at: Date.now(), kind: previous ? "supervisor-restarted" : "supervisor-started" });
|
|
137
|
+
});
|
|
138
|
+
const policy = queue.item(run.key).contract.execution;
|
|
139
|
+
let launched = false;
|
|
140
|
+
try {
|
|
141
|
+
if (!run.worker && !previous) {
|
|
142
|
+
const env = { ...process.env, AUTOMATION_WORKER_TOKEN: run.supervision.token };
|
|
143
|
+
const child = spawn(process.execPath, [entry, "_worker", runId, queue.storage.root], { cwd: queue.storage.root, env, detached: true, stdio: "inherit" });
|
|
144
|
+
child.on("error", () => { });
|
|
145
|
+
child.unref();
|
|
146
|
+
launched = true;
|
|
147
|
+
}
|
|
148
|
+
let previousClock = Date.now(), emptySnapshots = 0;
|
|
149
|
+
for (;;) {
|
|
150
|
+
run = queue.storage.read().active;
|
|
151
|
+
invariant(run?.id === runId && run.supervision, "Supervisor reservation disappeared");
|
|
152
|
+
const record = run.supervision, now = Date.now();
|
|
153
|
+
invariant(now >= previousClock, "Clock moved backwards; retain execution slot");
|
|
154
|
+
previousClock = now;
|
|
155
|
+
if (record.state === "EXITED" || record.state === "OWNERSHIP_BLOCKED")
|
|
156
|
+
return;
|
|
157
|
+
if (!run.worker) {
|
|
158
|
+
invariant(launched && now < record.startedAt + Math.min(policy.maxRunMs, 30000), "Worker launch has no registered ownership; explicit recovery required");
|
|
159
|
+
await wait(250);
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
162
|
+
const tree = ownedTree(processSnapshot(record.token), run.worker, record.known);
|
|
163
|
+
recoverOwnedTransaction(queue, record, run.worker);
|
|
164
|
+
if (!tree.length) {
|
|
165
|
+
emptySnapshots++;
|
|
166
|
+
if (emptySnapshots < 2) {
|
|
167
|
+
await wait(250);
|
|
168
|
+
continue;
|
|
169
|
+
}
|
|
170
|
+
if (!run.outcome && !record.stopReason)
|
|
171
|
+
update(queue, runId, owner, current => {
|
|
172
|
+
current.supervision.stopReason = "Worker exited without a durable outcome";
|
|
173
|
+
});
|
|
174
|
+
run = queue.storage.read().active;
|
|
175
|
+
if (run.supervision.stopReason)
|
|
176
|
+
finishStopped(queue, run);
|
|
177
|
+
else
|
|
178
|
+
update(queue, runId, owner, current => {
|
|
179
|
+
current.supervision.state = "EXITED";
|
|
180
|
+
current.supervision.events.push({ at: Date.now(), kind: "exit-confirmed" });
|
|
181
|
+
});
|
|
182
|
+
const document = queue.storage.read();
|
|
183
|
+
const final = document.active?.id === runId ? document.active : document.runs.find(candidate => candidate.id === runId);
|
|
184
|
+
invariant(final, "Completed supervision evidence is missing");
|
|
185
|
+
atomicJson(join(queue.storage.runtime, "evidence", queue.item(final.key).taskId, `worker-stop-${runId}.json`), supervisionEvidence(final.supervision));
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
emptySnapshots = 0;
|
|
189
|
+
const stage = stageFor(queue, run);
|
|
190
|
+
const reason = record.stopReason ?? deadlineReason(record, now);
|
|
191
|
+
if (stage !== record.stage && !reason)
|
|
192
|
+
update(queue, runId, owner, current => {
|
|
193
|
+
const s = current.supervision;
|
|
194
|
+
s.stage = stage;
|
|
195
|
+
s.stageStartedAt = now;
|
|
196
|
+
s.stageDeadline = Math.min(s.deadline, now + policy.maxStageMs);
|
|
197
|
+
s.events.push({ at: now, kind: `stage:${stage}` });
|
|
198
|
+
});
|
|
199
|
+
const fresh = tree.filter(p => !record.known.some(k => k.pid === p.pid && k.started === p.started));
|
|
200
|
+
if (fresh.length)
|
|
201
|
+
update(queue, runId, owner, current => {
|
|
202
|
+
const live = new Set(tree.map(p => `${p.pid}:${p.started}`));
|
|
203
|
+
current.supervision.known = [...current.supervision.known.filter(p => !live.has(`${p.pid}:${p.started}`)).slice(-(512 - tree.length)), ...tree];
|
|
204
|
+
});
|
|
205
|
+
if (reason) {
|
|
206
|
+
const signal = record.termAt !== null && now >= record.termAt + policy.terminationGraceMs ? "SIGKILL" : "SIGTERM";
|
|
207
|
+
invariant(record.killAt === null || now < record.killAt + 10000, "Owned processes did not exit after KILL; preserve execution slot");
|
|
208
|
+
update(queue, runId, owner, current => {
|
|
209
|
+
const s = current.supervision;
|
|
210
|
+
s.stopReason = reason;
|
|
211
|
+
if (s.termAt === null)
|
|
212
|
+
s.termAt = now;
|
|
213
|
+
if (signal === "SIGKILL" && s.killAt === null)
|
|
214
|
+
s.killAt = now;
|
|
215
|
+
s.state = signal === "SIGKILL" ? "KILL_SENT" : "TERM_SENT";
|
|
216
|
+
});
|
|
217
|
+
// Stop the Worker first so it cannot start a fresh stage while children
|
|
218
|
+
// handle TERM. Never signal a process group or a name-matched daemon.
|
|
219
|
+
tree.sort((a, b) => Number(b.pid === run.worker.pid) - Number(a.pid === run.worker.pid));
|
|
220
|
+
for (const process of tree) {
|
|
221
|
+
if (record.events.some(e => (e.kind === `${signal}:sent` || e.kind === `${signal}:gone`) && e.pid === process.pid && e.started === process.started))
|
|
222
|
+
continue;
|
|
223
|
+
update(queue, runId, owner, current => current.supervision.events.push({ at: Date.now(), kind: signal, pid: process.pid, started: process.started }));
|
|
224
|
+
const sent = signalOwned(record.token, process, signal, [...record.known, ...fresh]);
|
|
225
|
+
update(queue, runId, owner, current => current.supervision.events.push({ at: Date.now(), kind: `${signal}:${sent ? "sent" : "gone"}`, pid: process.pid, started: process.started }));
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
await wait(250);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
catch (error) {
|
|
232
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
233
|
+
// No timeout ever authorizes taking an unknown lock or killing an unknown process.
|
|
234
|
+
try {
|
|
235
|
+
update(queue, runId, owner, current => {
|
|
236
|
+
current.supervision.state = "OWNERSHIP_BLOCKED";
|
|
237
|
+
current.supervision.stopReason = message;
|
|
238
|
+
current.supervision.events.push({ at: Date.now(), kind: "ownership-blocked" });
|
|
239
|
+
});
|
|
240
|
+
queue.storage.transaction(document => { document.fault = `Worker termination requires ownership recovery: ${message}`; });
|
|
241
|
+
}
|
|
242
|
+
finally {
|
|
243
|
+
atomicJson(join(queue.storage.runtime, "evidence", queue.item(run.key).taskId, `worker-stop-${runId}-blocked.json`), { runId, reason: message, at: Date.now() });
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
//# sourceMappingURL=supervision.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supervision.js","sourceRoot":"","sources":["../../src/queue/supervision.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/queue/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/queue/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAKlF,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAIhD,eAAO,MAAM,gBAAgB,yGAA0G,CAAC;AAExI,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,iBAAuB,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CA4GnH;AAED;6DAC6D;AAC7D,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,MAAM,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAqBjH"}
|
package/dist/queue/tools.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { tool } from "@opencode-ai/plugin";
|
|
2
2
|
import { resolve } from "node:path";
|
|
3
|
+
import { gradleBuildRoot } from "../installer/project-capabilities.js";
|
|
3
4
|
import { installationDoctorChecks } from "../doctor/index.js";
|
|
4
5
|
import { invariant } from "./storage.js";
|
|
5
6
|
import { ApprovalLedger } from "./approvals.js";
|
|
6
|
-
import { TaskQueue } from "./queue.js";
|
|
7
|
+
import { TaskQueue, publicRun } from "./queue.js";
|
|
7
8
|
import { serviceStatus, startService, stopService, wakeService } from "./service.js";
|
|
8
9
|
export const QUEUE_TOOL_NAMES = ["android_orchestrator_snapshot", "android_orchestrator_intake", "android_orchestrator_queue"];
|
|
9
10
|
export function createQueueTools(worktree, approvals = new ApprovalLedger()) {
|
|
@@ -85,7 +86,7 @@ export function createQueueTools(worktree, approvals = new ApprovalLedger()) {
|
|
|
85
86
|
if (args.key)
|
|
86
87
|
return JSON.stringify(queue.details(args.key));
|
|
87
88
|
const document = queue.storage.read();
|
|
88
|
-
return JSON.stringify({ service: serviceStatus(queue), paused: document.paused, fault: document.fault, active: document.active,
|
|
89
|
+
return JSON.stringify({ service: serviceStatus(queue), paused: document.paused, fault: document.fault, active: publicRun(document.active),
|
|
89
90
|
items: document.items.map(({ key, taskId, state, waitingReason, workspaceStrategy, commitPolicy, targetBranch, taskRoot, dependsOn, sealedDiff, candidateId, completedCommit }) => ({ key, taskId, state, waitingReason, workspaceStrategy, commitPolicy, targetBranch, taskRoot, dependsOn, sealedDiff, candidateId, completedCommit, pushed: false })),
|
|
90
91
|
notifications: document.notifications.filter(notification => !notification.acknowledged) });
|
|
91
92
|
}
|
|
@@ -141,6 +142,7 @@ export function guardExecutorCommand(input, output, directory) {
|
|
|
141
142
|
if (gradle.test(command)) {
|
|
142
143
|
invariant(directory, "Gradle execution requires the recorded project configuration");
|
|
143
144
|
const config = new TaskQueue(directory).config();
|
|
145
|
+
invariant(gradleBuildRoot(config, directory) === resolve(directory), "Nested builds must use the managed verification scripts, which select the recorded Gradle root");
|
|
144
146
|
const allowed = Object.values(config.gradleVerification).flat();
|
|
145
147
|
const arguments_ = command.slice("./gradlew ".length).split(" ");
|
|
146
148
|
for (let index = 0; index < arguments_.length; index += 1) {
|
package/dist/queue/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/queue/tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/queue/tools.ts"],"names":[],"mappings":"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"}
|
package/docs/MIGRATION.md
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
# Migration guide
|
|
2
2
|
|
|
3
3
|
This guide covers migration to
|
|
4
|
-
`@frankzhang2026/opencode-android-orchestrator@1.0
|
|
4
|
+
`@frankzhang2026/opencode-android-orchestrator@1.1.0`. Pin the exact version and
|
|
5
5
|
prove the migration in a disposable clone before changing a long-lived
|
|
6
|
-
repository.
|
|
6
|
+
repository. npm publication of 1.1.0 is pending; use the pinned Registry
|
|
7
|
+
commands below only after publication.
|
|
7
8
|
|
|
8
9
|
## Choose the migration path
|
|
9
10
|
|
|
10
11
|
| Current state | Correct command after release | Important distinction |
|
|
11
12
|
| --- | --- | --- |
|
|
12
|
-
| No orchestrator files or manifest | `npx @frankzhang2026/opencode-android-orchestrator@1.0
|
|
13
|
+
| No orchestrator files or manifest | `npx @frankzhang2026/opencode-android-orchestrator@1.1.0 init .` | Normal new installation; all runtime-detected Android modules and registered debug verification tasks are discovered automatically. |
|
|
13
14
|
| Published `0.1.0` scaffold only | Remove any project-local `@0.1.0` plugin reference after review, then run `init`. | `0.1.0` did not create a usable managed installation and cannot be upgraded. |
|
|
14
|
-
| `0.2.0` through `0.10.0` manifest-managed installation with intact managed/backup content | Run the `1.
|
|
15
|
-
| Healthy `1.0.0` through `1.0.
|
|
15
|
+
| `0.2.0` through `0.10.0` manifest-managed installation with intact managed/backup content | Run the `1.1.0` `upgrade`; add `--refresh-gradle-discovery` when generated module/task lists are incomplete. | Refresh replaces all derived module metadata, source paths, protected build files, and task allowlists from one Gradle runtime snapshot. Module scope, operator policies, user-owned AGENTS content, and an existing commit-prefix sidecar remain preserved. |
|
|
16
|
+
| Healthy `1.0.0` through `1.0.5` installation | Stop the queue service, finish or abort retained workspaces, then run the fixed `1.1.0` `upgrade`. | Pending inbox contracts remain durable. Version 1.1.0 adds V4 test inventories, opt-in V5-V8 recovery/continuity and Android build capabilities; older approved contracts retain their authority. |
|
|
16
17
|
| Manually copied V3 files, no `.automation-plugin/manifest.json` | Finish active tasks, preserve historical evidence separately, then run `init`. | Exact files can be reused; differing managed files fail as conflicts. |
|
|
17
18
|
| Healthy older manifest-managed installation | Run `doctor`, then the fixed target version's `upgrade`. | `upgrade` requires a valid installed manifest and intact original backups. |
|
|
18
19
|
| Healthy current-version manifest | Run `doctor`; repeated `init` or same-version `upgrade` is verification-only and byte-idempotent. | Do not reinstall or delete the manifest. |
|
|
@@ -58,7 +59,7 @@ installation of `0.1.0` alone does not require project-file cleanup.
|
|
|
58
59
|
After release, initialize with the fixed version:
|
|
59
60
|
|
|
60
61
|
```sh
|
|
61
|
-
npx @frankzhang2026/opencode-android-orchestrator@1.0
|
|
62
|
+
npx @frankzhang2026/opencode-android-orchestrator@1.1.0 init .
|
|
62
63
|
```
|
|
63
64
|
|
|
64
65
|
New installations default to all-module scope, so multiple application modules
|
|
@@ -106,7 +107,7 @@ Use the lifecycle command selected by the active manifest:
|
|
|
106
107
|
|
|
107
108
|
```sh
|
|
108
109
|
npx --yes --registry=https://registry.npmjs.org/ \
|
|
109
|
-
@frankzhang2026/opencode-android-orchestrator@1.0
|
|
110
|
+
@frankzhang2026/opencode-android-orchestrator@1.1.0 upgrade . --json
|
|
110
111
|
```
|
|
111
112
|
|
|
112
113
|
The command-level Registry option is useful when a company-wide npm Registry
|
|
@@ -136,7 +137,7 @@ computed includes dynamically or a company convention plugin applied
|
|
|
136
137
|
|
|
137
138
|
```sh
|
|
138
139
|
npx --yes --registry=https://registry.npmjs.org/ \
|
|
139
|
-
@frankzhang2026/opencode-android-orchestrator@1.0
|
|
140
|
+
@frankzhang2026/opencode-android-orchestrator@1.1.0 upgrade . \
|
|
140
141
|
--refresh-gradle-discovery --json
|
|
141
142
|
```
|
|
142
143
|
|
|
@@ -220,7 +221,7 @@ use the queue rather than the old direct Shell commands. See [Queue operation](Q
|
|
|
220
221
|
Run all checks from the detected Git root:
|
|
221
222
|
|
|
222
223
|
```sh
|
|
223
|
-
npx @frankzhang2026/opencode-android-orchestrator@1.0
|
|
224
|
+
npx @frankzhang2026/opencode-android-orchestrator@1.1.0 doctor .
|
|
224
225
|
opencode debug config
|
|
225
226
|
opencode debug skill
|
|
226
227
|
opencode debug agent scheduled-planner
|
|
@@ -248,6 +249,19 @@ Verify all of the following before switching normal work to the plugin:
|
|
|
248
249
|
Complete one small task in a disposable project before accepting the migration
|
|
249
250
|
for a long-lived repository.
|
|
250
251
|
|
|
252
|
+
## 1.1.0 continuity fixes
|
|
253
|
+
|
|
254
|
+
Upgrade managed scripts and the packaged executor together after resolving
|
|
255
|
+
active/retained tasks through the existing lifecycle checks. Review recovery
|
|
256
|
+
keeps the existing approval, RED/GREEN and sealed-diff protocol. No contract
|
|
257
|
+
or approval schema changes and no automatic retries are introduced.
|
|
258
|
+
|
|
259
|
+
Existing verification matrices remain valid. Rediscovery may record absent
|
|
260
|
+
lint/device capabilities as empty arrays; existing required checks are not
|
|
261
|
+
disabled automatically. Enabling missing lint or requiring missing device
|
|
262
|
+
tasks is an explicit validation failure. Old managed AGENTS blocks are
|
|
263
|
+
replaced through the normal manifest-checked upgrade workflow.
|
|
264
|
+
|
|
251
265
|
## Rollback
|
|
252
266
|
|
|
253
267
|
- A failed `init` automatically restores pre-install files before reporting
|
|
@@ -268,3 +282,90 @@ for a long-lived repository.
|
|
|
268
282
|
|
|
269
283
|
See [Troubleshooting](TROUBLESHOOTING.md) for failure-specific diagnostics and
|
|
270
284
|
[Security](SECURITY.md) before sharing recovery evidence.
|
|
285
|
+
|
|
286
|
+
## 1.1.0 V5 baseline recovery
|
|
287
|
+
|
|
288
|
+
Version 1.1.0 adds a task-contract protocol, not an automatic
|
|
289
|
+
migration of existing approvals. V3 and V4 contracts retain their existing
|
|
290
|
+
verification and recovery behavior; V4 still cannot resume inventory capture
|
|
291
|
+
once its `baseline.json` exists. New V5 tasks require a newly reviewed contract
|
|
292
|
+
with explicit baseline-only retry counts, backoff and elapsed window. Do not
|
|
293
|
+
edit queued contracts or translate old baseline evidence into checkpoints.
|
|
294
|
+
|
|
295
|
+
The package includes `automation/verification/recovery.cjs`, the shared V4/V5
|
|
296
|
+
validator/schema, queue scheduling and matching agent instructions. Upgrade
|
|
297
|
+
only with stopped service and no retained active workspace using a newly
|
|
298
|
+
versioned development/release package; the existing same-version installer is
|
|
299
|
+
verification-only. The published 1.0.5 package does not acquire these changes
|
|
300
|
+
from this documentation. Preserve pending approvals and historical evidence;
|
|
301
|
+
any scope or recovery-policy change requires a new draft and approval.
|
|
302
|
+
|
|
303
|
+
Validate installation, doctor, upgrade and packaging with the entire managed
|
|
304
|
+
file inventory. Never copy a new recovery script alone into an existing
|
|
305
|
+
installation or alter manifest hashes. No remote publication is part of this
|
|
306
|
+
change. See QUEUE.md for policy fields and the process-interruption limitation.
|
|
307
|
+
|
|
308
|
+
## 1.1.0 V6 Worker termination
|
|
309
|
+
|
|
310
|
+
Only new V6 approvals with an `execution` policy enable automatic TERM/KILL.
|
|
311
|
+
Existing V5 contracts keep baseline recovery without Worker termination;
|
|
312
|
+
V1..V4 also retain their original behavior. There is no in-place rewriting of
|
|
313
|
+
queued approvals. Stop the service and finish or archive retained workspaces
|
|
314
|
+
before upgrading using a newly versioned package; same-version verification
|
|
315
|
+
still does not apply development templates. The supervisor ships in compiled
|
|
316
|
+
queue code and uses the existing managed validator/schema and Shell resources.
|
|
317
|
+
No separate system service or extra managed resource is installed. Validate
|
|
318
|
+
contract schema, installer, doctor, queue, recovery and package contents together.
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
## 1.1.0 V7 stage verification recovery
|
|
322
|
+
|
|
323
|
+
V7 requires new approval of `stageRecovery` plus the V5 baseline and V6 Worker
|
|
324
|
+
policies. Existing contracts and the V4 example remain unchanged. RED/GREEN/
|
|
325
|
+
Reviewer verification commands can retry identified environment failures within
|
|
326
|
+
separate persisted budgets; model/provider calls and integration are unchanged.
|
|
327
|
+
Recovery logic extends the existing managed recovery.cjs. Version 1.1.0 has
|
|
328
|
+
52 managed resources, including the Android project capability validator.
|
|
329
|
+
Upgrade with 1.1.0 after publication; same-version upgrade does not refresh
|
|
330
|
+
managed templates. See the V7 policy and retained-evidence workflow in QUEUE.md.
|
|
331
|
+
|
|
332
|
+
|
|
333
|
+
## Android project capability snapshot (1.1.0)
|
|
334
|
+
|
|
335
|
+
Nested builds are selected explicitly by initializing from their Gradle settings
|
|
336
|
+
directory, such as `init /path/to/repo/android`. Discovery records
|
|
337
|
+
`buildRoot: "android"`; installation files and the queue remain at the Git root. Run doctor,
|
|
338
|
+
upgrade and managed scripts from that Git root. Upgrade reuses this selection,
|
|
339
|
+
including `--refresh-gradle-discovery`; it does not search sibling builds.
|
|
340
|
+
An existing root installation is not silently retargeted to a nested build.
|
|
341
|
+
This behavior is included in 1.1.0 source; a same-version upgrade does not
|
|
342
|
+
install changed templates.
|
|
343
|
+
|
|
344
|
+
Fresh runtime discovery records `androidProject.capabilities` version 1 with
|
|
345
|
+
portable module/build-file paths, source sets, direct project-dependency edges
|
|
346
|
+
and verification tasks. Android-reachable JVM libraries are selected transitively.
|
|
347
|
+
All local Test tasks and production assemble variants remain required, so changing
|
|
348
|
+
a dependency also verifies its Android consumers. There is no minimal affected-set
|
|
349
|
+
scheduler. Taskless/disabled variants are not a coverage claim.
|
|
350
|
+
|
|
351
|
+
The new protected `automation/verification/project.cjs` resource brings the
|
|
352
|
+
managed inventory to 52. Installation, doctor and Shell use this same validator.
|
|
353
|
+
An upgrade preserves an existing snapshot without rerunning Gradle; a legacy
|
|
354
|
+
installation retains its legacy source/matrix semantics. Build-layout changes
|
|
355
|
+
require fresh discovery and reviewed configuration regeneration, not manual
|
|
356
|
+
snapshot edits during an approved task. Nested roots without a snapshot, composite builds,
|
|
357
|
+
generated/external/symlink sources and production/test overlaps fail closed.
|
|
358
|
+
|
|
359
|
+
npm publication of 1.1.0 is pending. A same-version upgrade remains
|
|
360
|
+
verification-only and is not a template delivery mechanism.
|
|
361
|
+
|
|
362
|
+
|
|
363
|
+
## 1.1.0 V8 isolated automatic integration
|
|
364
|
+
|
|
365
|
+
Upgrade executable and managed templates together with a newly versioned package.
|
|
366
|
+
Version 1.1.0 includes these resources; same-version upgrade is verification-only.
|
|
367
|
+
Repository defaults may combine isolatedWorktree and autoCommit, but execution
|
|
368
|
+
still requires a newly approved V8 contract with explicit continuity authority.
|
|
369
|
+
Old queued tasks never inherit that permission. V8 planning snapshots are sealed
|
|
370
|
+
with the draft; existing drafts cannot acquire them through in-place edits.
|
|
371
|
+
See QUEUE.md for planning inputs, completed-queue refresh and recovery boundaries.
|