@frankzhang2026/opencode-android-orchestrator 0.1.0 → 0.2.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 +75 -2
- package/LICENSE +21 -0
- package/README.md +391 -6
- package/THIRD_PARTY_NOTICES.md +119 -0
- package/dist/cli.js +243 -1
- package/dist/cli.js.map +1 -1
- package/dist/compatibility/hooks.d.ts +23 -0
- package/dist/compatibility/hooks.d.ts.map +1 -0
- package/dist/compatibility/hooks.js +44 -0
- package/dist/compatibility/hooks.js.map +1 -0
- package/dist/compatibility/versions.d.ts +19 -0
- package/dist/compatibility/versions.d.ts.map +1 -1
- package/dist/compatibility/versions.js +116 -0
- package/dist/compatibility/versions.js.map +1 -1
- package/dist/doctor/index.d.ts +36 -0
- package/dist/doctor/index.d.ts.map +1 -0
- package/dist/doctor/index.js +289 -0
- package/dist/doctor/index.js.map +1 -0
- package/dist/doctor/installation.d.ts +4 -0
- package/dist/doctor/installation.d.ts.map +1 -0
- package/dist/doctor/installation.js +472 -0
- package/dist/doctor/installation.js.map +1 -0
- package/dist/index.d.ts +13 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -2
- package/dist/index.js.map +1 -1
- package/dist/installer/adaptive-templates.d.ts +56 -0
- package/dist/installer/adaptive-templates.d.ts.map +1 -0
- package/dist/installer/adaptive-templates.js +167 -0
- package/dist/installer/adaptive-templates.js.map +1 -0
- package/dist/installer/agents-config.d.ts +19 -0
- package/dist/installer/agents-config.d.ts.map +1 -0
- package/dist/installer/agents-config.js +147 -0
- package/dist/installer/agents-config.js.map +1 -0
- package/dist/installer/android-project.d.ts +36 -0
- package/dist/installer/android-project.d.ts.map +1 -0
- package/dist/installer/android-project.js +418 -0
- package/dist/installer/android-project.js.map +1 -0
- package/dist/installer/index.d.ts +8 -0
- package/dist/installer/index.d.ts.map +1 -1
- package/dist/installer/index.js +8 -1
- package/dist/installer/index.js.map +1 -1
- package/dist/installer/init.d.ts +67 -0
- package/dist/installer/init.d.ts.map +1 -0
- package/dist/installer/init.js +389 -0
- package/dist/installer/init.js.map +1 -0
- package/dist/installer/install-manifest.d.ts +132 -0
- package/dist/installer/install-manifest.d.ts.map +1 -0
- package/dist/installer/install-manifest.js +1047 -0
- package/dist/installer/install-manifest.js.map +1 -0
- package/dist/installer/opencode-config.d.ts +31 -0
- package/dist/installer/opencode-config.d.ts.map +1 -0
- package/dist/installer/opencode-config.js +296 -0
- package/dist/installer/opencode-config.js.map +1 -0
- package/dist/installer/uninstall.d.ts +70 -0
- package/dist/installer/uninstall.d.ts.map +1 -0
- package/dist/installer/uninstall.js +770 -0
- package/dist/installer/uninstall.js.map +1 -0
- package/dist/installer/upgrade.d.ts +96 -0
- package/dist/installer/upgrade.d.ts.map +1 -0
- package/dist/installer/upgrade.js +1106 -0
- package/dist/installer/upgrade.js.map +1 -0
- package/dist/opencode-plugin.d.ts +2 -0
- package/dist/opencode-plugin.d.ts.map +1 -0
- package/dist/opencode-plugin.js +4 -0
- package/dist/opencode-plugin.js.map +1 -0
- package/dist/plugin/index.d.ts +7 -2
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +23 -6
- package/dist/plugin/index.js.map +1 -1
- package/dist/tools/index.d.ts +35 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +197 -1
- package/dist/tools/index.js.map +1 -1
- package/docs/MIGRATION.md +173 -0
- package/docs/SECURITY.md +212 -0
- package/docs/TROUBLESHOOTING.md +172 -0
- package/package.json +23 -5
- package/templates/.opencode/agents/scheduled-coder.md +115 -0
- package/templates/.opencode/agents/scheduled-planner.md +166 -0
- package/templates/.opencode/agents/scheduled-reviewer.md +88 -0
- package/templates/.opencode/commands/abort-task.md +20 -0
- package/templates/.opencode/commands/acceptance.md +20 -0
- package/templates/.opencode/commands/change.md +23 -0
- package/templates/.opencode/commands/resume-review.md +19 -0
- package/templates/.opencode/skills/scheduled-quality-coder/SKILL.md +93 -0
- package/templates/.opencode/skills/scheduled-quality-orchestrator/SKILL.md +216 -0
- package/templates/.opencode/skills/scheduled-quality-reviewer/SKILL.md +68 -0
- package/templates/AGENTS.md.fragment +19 -0
- package/templates/README.md +52 -9
- package/templates/automation/config.json +50 -0
- package/templates/automation/config.schema.json +163 -0
- package/templates/automation/task-contract.schema.json +71 -0
- package/templates/automation/tasks/TASK-TEMPLATE.json.example +53 -0
- package/templates/docs/plans/README.md +26 -0
- package/templates/installation-manifest.schema.json +201 -0
- package/templates/scripts/automation/abort-task.sh +171 -0
- package/templates/scripts/automation/accept-and-integrate.sh +263 -0
- package/templates/scripts/automation/acceptance-report.sh +132 -0
- package/templates/scripts/automation/approve-and-run.sh +175 -0
- package/templates/scripts/automation/begin-review.sh +18 -0
- package/templates/scripts/automation/block-task.sh +26 -0
- package/templates/scripts/automation/claim-task.sh +74 -0
- package/templates/scripts/automation/integration-scope-gate.sh +103 -0
- package/templates/scripts/automation/lib.sh +697 -0
- package/templates/scripts/automation/orchestrate-task.sh +119 -0
- package/templates/scripts/automation/preflight.sh +206 -0
- package/templates/scripts/automation/prepare-contract-review.sh +101 -0
- package/templates/scripts/automation/quality-gate.sh +72 -0
- package/templates/scripts/automation/queue-task.sh +35 -0
- package/templates/scripts/automation/record-red.sh +57 -0
- package/templates/scripts/automation/resume-review-fix.sh +32 -0
- package/templates/scripts/automation/resume-review.sh +120 -0
- package/templates/scripts/automation/scope-gate.sh +110 -0
- package/templates/scripts/automation/select-task.sh +34 -0
- package/templates/scripts/automation/shadow-run.sh +24 -0
- package/templates/scripts/automation/show-acceptance-review.sh +111 -0
- package/templates/scripts/automation/status.sh +125 -0
- package/templates/scripts/automation/submit-review.sh +73 -0
- package/templates/scripts/automation/tests/run-tests.sh +699 -0
- package/templates/scripts/automation/transition-state.sh +21 -0
- package/templates/scripts/automation/validate-contract.sh +87 -0
- package/templates/scripts/automation/verify-integration.sh +37 -0
- package/templates/scripts/automation/verify-task.sh +54 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/installer/upgrade.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-plugin.d.ts","sourceRoot":"","sources":["../src/opencode-plugin.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-plugin.js","sourceRoot":"","sources":["../src/opencode-plugin.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,yEAAyE;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/plugin/index.d.ts
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import type { Plugin } from "@opencode-ai/plugin";
|
|
2
|
+
import { type CompatiblePlugin } from "../compatibility/hooks.js";
|
|
3
|
+
export declare const ORCHESTRATOR_DIRECTORY_ENV = "OPENCODE_ANDROID_ORCHESTRATOR_DIRECTORY";
|
|
4
|
+
export declare const ORCHESTRATOR_WORKTREE_ENV = "OPENCODE_ANDROID_ORCHESTRATOR_WORKTREE";
|
|
2
5
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
6
|
+
* Runtime implementation deliberately receives only fields shared by the two
|
|
7
|
+
* certified OpenCode versions.
|
|
5
8
|
*/
|
|
9
|
+
export declare const createCompatiblePlugin: CompatiblePlugin;
|
|
10
|
+
/** OpenCode SDK entry point compiled against the 1.14.22 baseline. */
|
|
6
11
|
export declare const AndroidOrchestratorPlugin: Plugin;
|
|
7
12
|
export default AndroidOrchestratorPlugin;
|
|
8
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,2BAA2B,CAAC;AAGnC,eAAO,MAAM,0BAA0B,4CACI,CAAC;AAC5C,eAAO,MAAM,yBAAyB,2CACI,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,gBAmBpC,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,yBAAyB,EAAE,MACyB,CAAC;AAElE,eAAe,yBAAyB,CAAC"}
|
package/dist/plugin/index.js
CHANGED
|
@@ -1,11 +1,28 @@
|
|
|
1
|
+
import { resolve } from "node:path";
|
|
2
|
+
import { defineCompatibleHooks, toCompatiblePluginInput, } from "../compatibility/hooks.js";
|
|
3
|
+
import { createReadOnlyTools } from "../tools/index.js";
|
|
4
|
+
export const ORCHESTRATOR_DIRECTORY_ENV = "OPENCODE_ANDROID_ORCHESTRATOR_DIRECTORY";
|
|
5
|
+
export const ORCHESTRATOR_WORKTREE_ENV = "OPENCODE_ANDROID_ORCHESTRATOR_WORKTREE";
|
|
1
6
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
7
|
+
* Runtime implementation deliberately receives only fields shared by the two
|
|
8
|
+
* certified OpenCode versions.
|
|
4
9
|
*/
|
|
5
|
-
export const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
return {
|
|
10
|
+
export const createCompatiblePlugin = async ({ directory, worktree, $, }) => {
|
|
11
|
+
const projectDirectory = resolve(directory);
|
|
12
|
+
const projectWorktree = resolve(worktree);
|
|
13
|
+
return defineCompatibleHooks({
|
|
14
|
+
tool: createReadOnlyTools({
|
|
15
|
+
directory: projectDirectory,
|
|
16
|
+
worktree: projectWorktree,
|
|
17
|
+
shell: $,
|
|
18
|
+
}),
|
|
19
|
+
"shell.env": async (_input, output) => {
|
|
20
|
+
output.env[ORCHESTRATOR_DIRECTORY_ENV] = projectDirectory;
|
|
21
|
+
output.env[ORCHESTRATOR_WORKTREE_ENV] = projectWorktree;
|
|
22
|
+
},
|
|
23
|
+
});
|
|
9
24
|
};
|
|
25
|
+
/** OpenCode SDK entry point compiled against the 1.14.22 baseline. */
|
|
26
|
+
export const AndroidOrchestratorPlugin = async (input, options) => createCompatiblePlugin(toCompatiblePluginInput(input), options);
|
|
10
27
|
export default AndroidOrchestratorPlugin;
|
|
11
28
|
//# sourceMappingURL=index.js.map
|
package/dist/plugin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,EACL,qBAAqB,EACrB,uBAAuB,GAExB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,CAAC,MAAM,0BAA0B,GACrC,yCAAyC,CAAC;AAC5C,MAAM,CAAC,MAAM,yBAAyB,GACpC,wCAAwC,CAAC;AAE3C;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAqB,KAAK,EAAE,EAC7D,SAAS,EACT,QAAQ,EACR,CAAC,GACF,EAAE,EAAE;IACH,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE1C,OAAO,qBAAqB,CAAC;QAC3B,IAAI,EAAE,mBAAmB,CAAC;YACxB,SAAS,EAAE,gBAAgB;YAC3B,QAAQ,EAAE,eAAe;YACzB,KAAK,EAAE,CAAC;SACT,CAAC;QACF,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YACpC,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,GAAG,gBAAgB,CAAC;YAC1D,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,GAAG,eAAe,CAAC;QAC1D,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,sEAAsE;AACtE,MAAM,CAAC,MAAM,yBAAyB,GAAW,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CACxE,sBAAsB,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;AAElE,eAAe,yBAAyB,CAAC"}
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -1,2 +1,36 @@
|
|
|
1
|
-
|
|
1
|
+
import { type PluginInput, type ToolDefinition } from "@opencode-ai/plugin";
|
|
2
|
+
import { type DoctorCheck, type DoctorOptions, type DoctorReport } from "../doctor/index.js";
|
|
3
|
+
export declare const ORCHESTRATOR_STATUS_TOOL_NAME = "android_orchestrator_status";
|
|
4
|
+
export declare const ORCHESTRATOR_DOCTOR_TOOL_NAME = "android_orchestrator_doctor";
|
|
5
|
+
export declare const READ_ONLY_TOOL_NAMES: readonly ["android_orchestrator_status", "android_orchestrator_doctor"];
|
|
6
|
+
export type ReadOnlyToolName = (typeof READ_ONLY_TOOL_NAMES)[number];
|
|
7
|
+
export type ReadOnlyTools = Record<ReadOnlyToolName, ToolDefinition>;
|
|
8
|
+
export type ReadOnlyToolErrorCode = "INVALID_TASK_ID" | "WORKSPACE_MISMATCH" | "TOOL_ABORTED" | "UNTRUSTED_INSTALLATION" | "STATUS_RUNNER_UNAVAILABLE" | "STATUS_COMMAND_FAILED" | "STATUS_OUTPUT_TOO_LARGE" | "INVALID_STATUS_OUTPUT";
|
|
9
|
+
export declare class ReadOnlyToolError extends Error {
|
|
10
|
+
readonly code: ReadOnlyToolErrorCode;
|
|
11
|
+
readonly details: readonly string[];
|
|
12
|
+
constructor(code: ReadOnlyToolErrorCode, message: string, details?: readonly string[]);
|
|
13
|
+
}
|
|
14
|
+
export interface StatusRunnerInput {
|
|
15
|
+
scriptPath: string;
|
|
16
|
+
targetDirectory: string;
|
|
17
|
+
taskId: string;
|
|
18
|
+
}
|
|
19
|
+
export interface StatusRunnerResult {
|
|
20
|
+
exitCode: number;
|
|
21
|
+
stdout: string;
|
|
22
|
+
stderr: string;
|
|
23
|
+
}
|
|
24
|
+
export type StatusRunner = (input: StatusRunnerInput) => Promise<StatusRunnerResult>;
|
|
25
|
+
export type DoctorRunner = (options: DoctorOptions) => DoctorReport;
|
|
26
|
+
export type InstallationCheckRunner = (targetDirectory: string) => readonly DoctorCheck[];
|
|
27
|
+
export interface ReadOnlyToolsOptions {
|
|
28
|
+
directory: string;
|
|
29
|
+
worktree: string;
|
|
30
|
+
shell?: PluginInput["$"];
|
|
31
|
+
doctorRunner?: DoctorRunner;
|
|
32
|
+
installationCheckRunner?: InstallationCheckRunner;
|
|
33
|
+
statusRunner?: StatusRunner;
|
|
34
|
+
}
|
|
35
|
+
export declare function createReadOnlyTools(options: ReadOnlyToolsOptions): ReadOnlyTools;
|
|
2
36
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,WAAW,EAEhB,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAE5B,eAAO,MAAM,6BAA6B,gCACX,CAAC;AAChC,eAAO,MAAM,6BAA6B,gCACX,CAAC;AAChC,eAAO,MAAM,oBAAoB,yEAGvB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AACrE,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;AAErE,MAAM,MAAM,qBAAqB,GAC7B,iBAAiB,GACjB,oBAAoB,GACpB,cAAc,GACd,wBAAwB,GACxB,2BAA2B,GAC3B,uBAAuB,GACvB,yBAAyB,GACzB,uBAAuB,CAAC;AAE5B,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;gBAGlC,IAAI,EAAE,qBAAqB,EAC3B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,SAAS,MAAM,EAAO;CAOlC;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,YAAY,GAAG,CACzB,KAAK,EAAE,iBAAiB,KACrB,OAAO,CAAC,kBAAkB,CAAC,CAAC;AACjC,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK,YAAY,CAAC;AACpE,MAAM,MAAM,uBAAuB,GAAG,CACpC,eAAe,EAAE,MAAM,KACpB,SAAS,WAAW,EAAE,CAAC;AAE5B,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;IACzB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;IAClD,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AA6ID,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,oBAAoB,GAC5B,aAAa,CA6Gf"}
|
package/dist/tools/index.js
CHANGED
|
@@ -1,2 +1,198 @@
|
|
|
1
|
-
|
|
1
|
+
import { Buffer } from "node:buffer";
|
|
2
|
+
import { isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
3
|
+
import { tool, } from "@opencode-ai/plugin";
|
|
4
|
+
import { installationDoctorChecks, runDoctor, } from "../doctor/index.js";
|
|
5
|
+
export const ORCHESTRATOR_STATUS_TOOL_NAME = "android_orchestrator_status";
|
|
6
|
+
export const ORCHESTRATOR_DOCTOR_TOOL_NAME = "android_orchestrator_doctor";
|
|
7
|
+
export const READ_ONLY_TOOL_NAMES = [
|
|
8
|
+
ORCHESTRATOR_STATUS_TOOL_NAME,
|
|
9
|
+
ORCHESTRATOR_DOCTOR_TOOL_NAME,
|
|
10
|
+
];
|
|
11
|
+
export class ReadOnlyToolError extends Error {
|
|
12
|
+
code;
|
|
13
|
+
details;
|
|
14
|
+
constructor(code, message, details = []) {
|
|
15
|
+
super(message);
|
|
16
|
+
this.name = "ReadOnlyToolError";
|
|
17
|
+
this.code = code;
|
|
18
|
+
this.details = details;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
const TASK_ID_PATTERN = /^TASK-[A-Z0-9-]+$/;
|
|
22
|
+
const STATUS_SCRIPT_RELATIVE_PATH = "scripts/automation/status.sh";
|
|
23
|
+
const MAX_STATUS_OUTPUT_BYTES = 1024 * 1024;
|
|
24
|
+
const REQUIRED_STATUS_CHECKS = [
|
|
25
|
+
"installation-manifest",
|
|
26
|
+
"managed-resources",
|
|
27
|
+
"managed-permissions",
|
|
28
|
+
];
|
|
29
|
+
function isInside(root, candidate) {
|
|
30
|
+
const pathFromRoot = relative(root, candidate);
|
|
31
|
+
return (pathFromRoot === "" ||
|
|
32
|
+
(pathFromRoot !== ".." &&
|
|
33
|
+
!pathFromRoot.startsWith(`..${sep}`) &&
|
|
34
|
+
!isAbsolute(pathFromRoot)));
|
|
35
|
+
}
|
|
36
|
+
function assertContextIsBounded(context, projectWorktree) {
|
|
37
|
+
const contextWorktree = resolve(context.worktree);
|
|
38
|
+
const contextDirectory = resolve(context.directory);
|
|
39
|
+
if (contextWorktree !== projectWorktree ||
|
|
40
|
+
!isInside(projectWorktree, contextDirectory)) {
|
|
41
|
+
throw new ReadOnlyToolError("WORKSPACE_MISMATCH", "The tool context does not match the workspace that loaded the plugin.", [
|
|
42
|
+
`Plugin worktree: ${projectWorktree}`,
|
|
43
|
+
`Context worktree: ${contextWorktree}`,
|
|
44
|
+
`Context directory: ${contextDirectory}`,
|
|
45
|
+
]);
|
|
46
|
+
}
|
|
47
|
+
if (context.abort.aborted) {
|
|
48
|
+
throw new ReadOnlyToolError("TOOL_ABORTED", "The read-only tool call was aborted before execution.");
|
|
49
|
+
}
|
|
50
|
+
return contextDirectory;
|
|
51
|
+
}
|
|
52
|
+
function createShellStatusRunner(shell) {
|
|
53
|
+
return async ({ scriptPath, targetDirectory, taskId }) => {
|
|
54
|
+
const result = await shell `${scriptPath} ${taskId}`
|
|
55
|
+
.cwd(targetDirectory)
|
|
56
|
+
.quiet()
|
|
57
|
+
.nothrow();
|
|
58
|
+
return {
|
|
59
|
+
exitCode: result.exitCode,
|
|
60
|
+
stdout: result.stdout.toString("utf8"),
|
|
61
|
+
stderr: result.stderr.toString("utf8"),
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
const unavailableStatusRunner = async () => {
|
|
66
|
+
throw new ReadOnlyToolError("STATUS_RUNNER_UNAVAILABLE", "OpenCode did not provide the shell adapter required by the status tool.");
|
|
67
|
+
};
|
|
68
|
+
function trustedStatusInstallation(checks) {
|
|
69
|
+
const checksById = new Map(checks.map((check) => [check.id, check]));
|
|
70
|
+
return REQUIRED_STATUS_CHECKS.flatMap((id) => {
|
|
71
|
+
const check = checksById.get(id);
|
|
72
|
+
if (check === undefined) {
|
|
73
|
+
return [`${id}: required integrity check is missing`];
|
|
74
|
+
}
|
|
75
|
+
if (check.status !== "pass") {
|
|
76
|
+
return [
|
|
77
|
+
`${id}: ${check.summary}`,
|
|
78
|
+
...check.details.map((detail) => `${id}: ${detail}`),
|
|
79
|
+
];
|
|
80
|
+
}
|
|
81
|
+
return [];
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
function parseStatusOutput(stdout, taskId) {
|
|
85
|
+
if (Buffer.byteLength(stdout, "utf8") > MAX_STATUS_OUTPUT_BYTES) {
|
|
86
|
+
throw new ReadOnlyToolError("STATUS_OUTPUT_TOO_LARGE", `The status command returned more than ${MAX_STATUS_OUTPUT_BYTES} bytes.`);
|
|
87
|
+
}
|
|
88
|
+
let value;
|
|
89
|
+
try {
|
|
90
|
+
value = JSON.parse(stdout);
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
throw new ReadOnlyToolError("INVALID_STATUS_OUTPUT", "The status command did not return valid JSON.", [error instanceof Error ? error.message : String(error)]);
|
|
94
|
+
}
|
|
95
|
+
if (typeof value !== "object" ||
|
|
96
|
+
value === null ||
|
|
97
|
+
Array.isArray(value) ||
|
|
98
|
+
!("contract" in value) ||
|
|
99
|
+
typeof value.contract !== "object" ||
|
|
100
|
+
value.contract === null ||
|
|
101
|
+
Array.isArray(value.contract) ||
|
|
102
|
+
!("id" in value.contract) ||
|
|
103
|
+
value.contract.id !== taskId) {
|
|
104
|
+
throw new ReadOnlyToolError("INVALID_STATUS_OUTPUT", "The status JSON does not identify the requested task contract.");
|
|
105
|
+
}
|
|
106
|
+
return value;
|
|
107
|
+
}
|
|
108
|
+
function validateTaskId(taskId) {
|
|
109
|
+
if (!TASK_ID_PATTERN.test(taskId)) {
|
|
110
|
+
throw new ReadOnlyToolError("INVALID_TASK_ID", "Task ID must match TASK-[A-Z0-9-]+.");
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
export function createReadOnlyTools(options) {
|
|
114
|
+
const projectDirectory = resolve(options.directory);
|
|
115
|
+
const projectWorktree = resolve(options.worktree);
|
|
116
|
+
if (!isInside(projectWorktree, projectDirectory)) {
|
|
117
|
+
throw new ReadOnlyToolError("WORKSPACE_MISMATCH", "The plugin directory must be inside its worktree.", [
|
|
118
|
+
`Plugin worktree: ${projectWorktree}`,
|
|
119
|
+
`Plugin directory: ${projectDirectory}`,
|
|
120
|
+
]);
|
|
121
|
+
}
|
|
122
|
+
const doctorRunner = options.doctorRunner ?? runDoctor;
|
|
123
|
+
const installationCheckRunner = options.installationCheckRunner ?? installationDoctorChecks;
|
|
124
|
+
const statusRunner = options.statusRunner ??
|
|
125
|
+
(options.shell === undefined
|
|
126
|
+
? unavailableStatusRunner
|
|
127
|
+
: createShellStatusRunner(options.shell));
|
|
128
|
+
return {
|
|
129
|
+
[ORCHESTRATOR_STATUS_TOOL_NAME]: tool({
|
|
130
|
+
description: "Read the authenticated automation state and evidence for one TASK-[A-Z0-9-]+ contract in the current Android project.",
|
|
131
|
+
args: {
|
|
132
|
+
taskId: tool.schema
|
|
133
|
+
.string()
|
|
134
|
+
.regex(TASK_ID_PATTERN, "Task ID must match TASK-[A-Z0-9-]+."),
|
|
135
|
+
},
|
|
136
|
+
async execute({ taskId }, context) {
|
|
137
|
+
validateTaskId(taskId);
|
|
138
|
+
assertContextIsBounded(context, projectWorktree);
|
|
139
|
+
const integrityFailures = trustedStatusInstallation(installationCheckRunner(projectWorktree));
|
|
140
|
+
if (integrityFailures.length > 0) {
|
|
141
|
+
throw new ReadOnlyToolError("UNTRUSTED_INSTALLATION", "Status execution was refused because the installed read-only script could not be authenticated.", integrityFailures);
|
|
142
|
+
}
|
|
143
|
+
context.metadata({
|
|
144
|
+
title: `Android orchestrator status: ${taskId}`,
|
|
145
|
+
metadata: {
|
|
146
|
+
readOnly: true,
|
|
147
|
+
taskId,
|
|
148
|
+
},
|
|
149
|
+
});
|
|
150
|
+
const result = await statusRunner({
|
|
151
|
+
scriptPath: join(projectWorktree, STATUS_SCRIPT_RELATIVE_PATH),
|
|
152
|
+
targetDirectory: projectWorktree,
|
|
153
|
+
taskId,
|
|
154
|
+
});
|
|
155
|
+
if (result.exitCode !== 0) {
|
|
156
|
+
const detail = result.stderr.trim() || result.stdout.trim();
|
|
157
|
+
throw new ReadOnlyToolError("STATUS_COMMAND_FAILED", `The status command exited with status ${result.exitCode}.`, detail.length === 0 ? [] : [detail.slice(-4_000)]);
|
|
158
|
+
}
|
|
159
|
+
const status = parseStatusOutput(result.stdout, taskId);
|
|
160
|
+
return {
|
|
161
|
+
output: `${JSON.stringify(status, null, 2)}\n`,
|
|
162
|
+
metadata: {
|
|
163
|
+
readOnly: true,
|
|
164
|
+
taskId,
|
|
165
|
+
},
|
|
166
|
+
};
|
|
167
|
+
},
|
|
168
|
+
}),
|
|
169
|
+
[ORCHESTRATOR_DOCTOR_TOOL_NAME]: tool({
|
|
170
|
+
description: "Run read-only OpenCode, Android, dependency, SDK, and installed-resource diagnostics for the current project.",
|
|
171
|
+
args: {},
|
|
172
|
+
async execute(_args, context) {
|
|
173
|
+
const targetDirectory = assertContextIsBounded(context, projectWorktree);
|
|
174
|
+
context.metadata({
|
|
175
|
+
title: "Android orchestrator doctor",
|
|
176
|
+
metadata: {
|
|
177
|
+
readOnly: true,
|
|
178
|
+
targetDirectory,
|
|
179
|
+
},
|
|
180
|
+
});
|
|
181
|
+
const report = doctorRunner({
|
|
182
|
+
checkDependencies: true,
|
|
183
|
+
checkInstallation: true,
|
|
184
|
+
targetDirectory,
|
|
185
|
+
});
|
|
186
|
+
return {
|
|
187
|
+
output: `${JSON.stringify(report, null, 2)}\n`,
|
|
188
|
+
metadata: {
|
|
189
|
+
readOnly: true,
|
|
190
|
+
ok: report.ok,
|
|
191
|
+
targetDirectory,
|
|
192
|
+
},
|
|
193
|
+
};
|
|
194
|
+
},
|
|
195
|
+
}),
|
|
196
|
+
};
|
|
197
|
+
}
|
|
2
198
|
//# sourceMappingURL=index.js.map
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
# Migration guide
|
|
2
|
+
|
|
3
|
+
This guide covers migration to
|
|
4
|
+
`@frankzhang2026/opencode-android-orchestrator@0.2.0` after that exact version
|
|
5
|
+
has been released and accepted. Version `0.2.0` is currently unpublished; do
|
|
6
|
+
not use these commands to switch a live project yet.
|
|
7
|
+
|
|
8
|
+
## Choose the migration path
|
|
9
|
+
|
|
10
|
+
| Current state | Correct command after release | Important distinction |
|
|
11
|
+
| --- | --- | --- |
|
|
12
|
+
| No orchestrator files or manifest | `npx @frankzhang2026/opencode-android-orchestrator@0.2.0 init .` | Normal new installation. |
|
|
13
|
+
| 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
|
+
| 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. |
|
|
15
|
+
| Healthy older manifest-managed installation | Run `doctor`, then the fixed target version's `upgrade`. | `upgrade` requires a valid installed manifest and intact original backups. |
|
|
16
|
+
| 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. |
|
|
17
|
+
| Damaged manifest, managed-file drift, or damaged backup | Stop and investigate. | `init` and `upgrade` intentionally refuse to overwrite this state. |
|
|
18
|
+
|
|
19
|
+
`uninstall` is not an upgrade shortcut. It restores verified pre-install files,
|
|
20
|
+
removes unchanged plugin-created files, and retains drift for manual review.
|
|
21
|
+
|
|
22
|
+
## Before migration
|
|
23
|
+
|
|
24
|
+
1. Finish, explicitly abort, or otherwise account for every active automation
|
|
25
|
+
task. Do not migrate while a task holds the repository lease or owns an
|
|
26
|
+
active task branch/worktree.
|
|
27
|
+
2. Use a dedicated clean branch. Record `git status --short`, the current
|
|
28
|
+
branch, and `git rev-parse HEAD`. Preserve an independent repository backup.
|
|
29
|
+
3. Record the current OpenCode version with `opencode --version`. Certified
|
|
30
|
+
targets are exactly `1.14.22` and `1.15.13`.
|
|
31
|
+
4. Preserve the current `opencode.json`/`opencode.jsonc`, `AGENTS.md`,
|
|
32
|
+
`.opencode/`, `automation/`, and `scripts/automation/` for review. Never
|
|
33
|
+
include `.env`, signing keys, npm credentials, or `local.properties` in a
|
|
34
|
+
support bundle.
|
|
35
|
+
5. If a managed manifest already exists, run:
|
|
36
|
+
|
|
37
|
+
```sh
|
|
38
|
+
npx @frankzhang2026/opencode-android-orchestrator@0.2.0 doctor . --json
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Do not proceed with `upgrade` unless the installation checks pass.
|
|
42
|
+
6. Prove the migration in a disposable clone or temporary Android fixture
|
|
43
|
+
before applying it to the intended repository.
|
|
44
|
+
|
|
45
|
+
## From the `0.1.0` scaffold
|
|
46
|
+
|
|
47
|
+
The published `0.1.0` package did not install the 45 project resources and did
|
|
48
|
+
not create `.automation-plugin/manifest.json`. Treat it as an uninstalled
|
|
49
|
+
scaffold, not as an older managed installation.
|
|
50
|
+
|
|
51
|
+
If the project OpenCode configuration contains an exact
|
|
52
|
+
`@frankzhang2026/opencode-android-orchestrator@0.1.0` entry, save the file and
|
|
53
|
+
remove only that obsolete entry in a reviewed Git change before running
|
|
54
|
+
`0.2.0 init`. The merger deliberately rejects a different version of the same
|
|
55
|
+
managed package; it will not silently replace the reference. A global npm
|
|
56
|
+
installation of `0.1.0` alone does not require project-file cleanup.
|
|
57
|
+
|
|
58
|
+
After release, initialize with the fixed version:
|
|
59
|
+
|
|
60
|
+
```sh
|
|
61
|
+
npx @frankzhang2026/opencode-android-orchestrator@0.2.0 init .
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Use `--primary-module :mobile` when the project has multiple application
|
|
65
|
+
modules and `:mobile` is the intended orchestration target.
|
|
66
|
+
|
|
67
|
+
## From a manually copied V3 setup
|
|
68
|
+
|
|
69
|
+
Manual V3 installations have no installer manifest, so the installer cannot
|
|
70
|
+
know which files were copied, customized, or created by the user. Apply these
|
|
71
|
+
rules:
|
|
72
|
+
|
|
73
|
+
- Historical task contracts, plans, and `.git/automation-runtime/` evidence are
|
|
74
|
+
not imported into the new installation. Preserve or archive them separately;
|
|
75
|
+
do not copy them into package templates or `.automation-plugin/`.
|
|
76
|
+
- A fixed managed file is reusable only when its bytes and effective mode
|
|
77
|
+
already match the packaged template. Any differing `copy` or `generate`
|
|
78
|
+
target is a `FILE_CONFLICT`; there is no force flag.
|
|
79
|
+
- Move legitimate local policy out of managed agent, command, skill, or Shell
|
|
80
|
+
files before installation. Put project rules in the unmanaged portion of
|
|
81
|
+
`AGENTS.md` and product behavior in normal project sources. Editing managed
|
|
82
|
+
files after installation creates drift and blocks a future upgrade.
|
|
83
|
+
- `AGENTS.md` is merged through one bounded marker block. Existing content
|
|
84
|
+
outside that block remains user-owned.
|
|
85
|
+
- OpenCode JSON/JSONC is merged structurally. Existing fields, comments, plugin
|
|
86
|
+
order, and plugin options are retained. Duplicate package identities,
|
|
87
|
+
malformed JSONC, both `opencode.json` and `opencode.jsonc`, symbolic links,
|
|
88
|
+
or another orchestrator version are hard conflicts.
|
|
89
|
+
- The installer does not remove an unrelated legacy Scheduler plugin. Review
|
|
90
|
+
and remove that reference only as a separate Git diff after the new
|
|
91
|
+
installation passes discovery, shadow, and rollback review.
|
|
92
|
+
|
|
93
|
+
Run `init` only after resolving conflicts explicitly. Replacing a customized
|
|
94
|
+
managed template with the packaged version is a migration decision: preserve
|
|
95
|
+
the old file outside the managed path, review the diff, and never rely on the
|
|
96
|
+
installer to guess which customization should survive.
|
|
97
|
+
|
|
98
|
+
## From a manifest-managed version
|
|
99
|
+
|
|
100
|
+
Use the lifecycle command selected by the active manifest:
|
|
101
|
+
|
|
102
|
+
```sh
|
|
103
|
+
npx @frankzhang2026/opencode-android-orchestrator@0.2.0 doctor . --json
|
|
104
|
+
npx @frankzhang2026/opencode-android-orchestrator@0.2.0 upgrade . --json
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
`upgrade` verifies the installed manifest, every managed file, and every
|
|
108
|
+
first-install backup before it creates recovery state. It reconstructs merged
|
|
109
|
+
OpenCode and AGENTS content from the original pre-install files, carries that
|
|
110
|
+
recovery lineage forward, snapshots the current version, writes the new
|
|
111
|
+
resources, and reruns the 38 automation tests plus the shadow run.
|
|
112
|
+
|
|
113
|
+
The command refuses:
|
|
114
|
+
|
|
115
|
+
- a downgrade or malformed semantic version;
|
|
116
|
+
- a missing, non-installed, foreign-package, or modified manifest;
|
|
117
|
+
- content, existence, or mode drift in managed files;
|
|
118
|
+
- missing or modified original backups;
|
|
119
|
+
- an unfinished upgrade or uninstall marker;
|
|
120
|
+
- a stale plan or changed file between planning and application.
|
|
121
|
+
|
|
122
|
+
Do not repair those conditions by editing the manifest or its hashes. Diagnose
|
|
123
|
+
the source of drift and use the recorded recovery data.
|
|
124
|
+
|
|
125
|
+
## Post-migration verification
|
|
126
|
+
|
|
127
|
+
Run all checks from the detected Git root:
|
|
128
|
+
|
|
129
|
+
```sh
|
|
130
|
+
npx @frankzhang2026/opencode-android-orchestrator@0.2.0 doctor .
|
|
131
|
+
opencode debug config
|
|
132
|
+
opencode debug agent scheduled-planner
|
|
133
|
+
opencode debug agent scheduled-coder
|
|
134
|
+
opencode debug agent scheduled-reviewer
|
|
135
|
+
./scripts/automation/preflight.sh --source
|
|
136
|
+
./scripts/automation/tests/run-tests.sh
|
|
137
|
+
./scripts/automation/shadow-run.sh
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Verify all of the following before switching normal work to the plugin:
|
|
141
|
+
|
|
142
|
+
- doctor has no failed check;
|
|
143
|
+
- all three agents, four commands, and required skills are discoverable;
|
|
144
|
+
- both read-only custom tools resolve for the scheduled agents;
|
|
145
|
+
- the Shell suite ends with `1..38`;
|
|
146
|
+
- shadow output contains `"mutationPerformed": false`;
|
|
147
|
+
- `git status --short` contains only the reviewed installation diff;
|
|
148
|
+
- no Git push, launchd registration, extra candidate worktree, or copied Android
|
|
149
|
+
project was created.
|
|
150
|
+
|
|
151
|
+
Complete one small task in a disposable project before accepting the migration
|
|
152
|
+
for a long-lived repository.
|
|
153
|
+
|
|
154
|
+
## Rollback
|
|
155
|
+
|
|
156
|
+
- A failed `init` automatically restores pre-install files before reporting
|
|
157
|
+
failure. It retains verified backups and rollback history under
|
|
158
|
+
`.automation-plugin/` for diagnosis.
|
|
159
|
+
- A failed `upgrade` automatically restores the complete old manifest and old
|
|
160
|
+
managed resources. Inspect `.automation-plugin/upgrades/<upgrade-id>/` and
|
|
161
|
+
`.automation-plugin/history/`.
|
|
162
|
+
- After a successful install, use the fixed version's `uninstall` command for
|
|
163
|
+
a guarded removal. It restores original files, removes exact plugin-created
|
|
164
|
+
matches, and leaves drift untouched.
|
|
165
|
+
- Never delete `.automation-plugin/upgrade.json`,
|
|
166
|
+
`.automation-plugin/uninstall.json`, the manifest, backups, or recovery
|
|
167
|
+
directories merely to make a command continue. An unfinished marker means
|
|
168
|
+
the transaction requires evidence-based recovery.
|
|
169
|
+
- Switching an existing production repository from its old orchestration setup
|
|
170
|
+
remains a separate human approval and Git commit from package installation.
|
|
171
|
+
|
|
172
|
+
See [Troubleshooting](TROUBLESHOOTING.md) for failure-specific diagnostics and
|
|
173
|
+
[Security](SECURITY.md) before sharing recovery evidence.
|