@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.
Files changed (124) hide show
  1. package/CHANGELOG.md +75 -2
  2. package/LICENSE +21 -0
  3. package/README.md +391 -6
  4. package/THIRD_PARTY_NOTICES.md +119 -0
  5. package/dist/cli.js +243 -1
  6. package/dist/cli.js.map +1 -1
  7. package/dist/compatibility/hooks.d.ts +23 -0
  8. package/dist/compatibility/hooks.d.ts.map +1 -0
  9. package/dist/compatibility/hooks.js +44 -0
  10. package/dist/compatibility/hooks.js.map +1 -0
  11. package/dist/compatibility/versions.d.ts +19 -0
  12. package/dist/compatibility/versions.d.ts.map +1 -1
  13. package/dist/compatibility/versions.js +116 -0
  14. package/dist/compatibility/versions.js.map +1 -1
  15. package/dist/doctor/index.d.ts +36 -0
  16. package/dist/doctor/index.d.ts.map +1 -0
  17. package/dist/doctor/index.js +289 -0
  18. package/dist/doctor/index.js.map +1 -0
  19. package/dist/doctor/installation.d.ts +4 -0
  20. package/dist/doctor/installation.d.ts.map +1 -0
  21. package/dist/doctor/installation.js +472 -0
  22. package/dist/doctor/installation.js.map +1 -0
  23. package/dist/index.d.ts +13 -2
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +13 -2
  26. package/dist/index.js.map +1 -1
  27. package/dist/installer/adaptive-templates.d.ts +56 -0
  28. package/dist/installer/adaptive-templates.d.ts.map +1 -0
  29. package/dist/installer/adaptive-templates.js +167 -0
  30. package/dist/installer/adaptive-templates.js.map +1 -0
  31. package/dist/installer/agents-config.d.ts +19 -0
  32. package/dist/installer/agents-config.d.ts.map +1 -0
  33. package/dist/installer/agents-config.js +147 -0
  34. package/dist/installer/agents-config.js.map +1 -0
  35. package/dist/installer/android-project.d.ts +36 -0
  36. package/dist/installer/android-project.d.ts.map +1 -0
  37. package/dist/installer/android-project.js +418 -0
  38. package/dist/installer/android-project.js.map +1 -0
  39. package/dist/installer/index.d.ts +8 -0
  40. package/dist/installer/index.d.ts.map +1 -1
  41. package/dist/installer/index.js +8 -1
  42. package/dist/installer/index.js.map +1 -1
  43. package/dist/installer/init.d.ts +67 -0
  44. package/dist/installer/init.d.ts.map +1 -0
  45. package/dist/installer/init.js +389 -0
  46. package/dist/installer/init.js.map +1 -0
  47. package/dist/installer/install-manifest.d.ts +132 -0
  48. package/dist/installer/install-manifest.d.ts.map +1 -0
  49. package/dist/installer/install-manifest.js +1047 -0
  50. package/dist/installer/install-manifest.js.map +1 -0
  51. package/dist/installer/opencode-config.d.ts +31 -0
  52. package/dist/installer/opencode-config.d.ts.map +1 -0
  53. package/dist/installer/opencode-config.js +296 -0
  54. package/dist/installer/opencode-config.js.map +1 -0
  55. package/dist/installer/uninstall.d.ts +70 -0
  56. package/dist/installer/uninstall.d.ts.map +1 -0
  57. package/dist/installer/uninstall.js +770 -0
  58. package/dist/installer/uninstall.js.map +1 -0
  59. package/dist/installer/upgrade.d.ts +96 -0
  60. package/dist/installer/upgrade.d.ts.map +1 -0
  61. package/dist/installer/upgrade.js +1106 -0
  62. package/dist/installer/upgrade.js.map +1 -0
  63. package/dist/opencode-plugin.d.ts +2 -0
  64. package/dist/opencode-plugin.d.ts.map +1 -0
  65. package/dist/opencode-plugin.js +4 -0
  66. package/dist/opencode-plugin.js.map +1 -0
  67. package/dist/plugin/index.d.ts +7 -2
  68. package/dist/plugin/index.d.ts.map +1 -1
  69. package/dist/plugin/index.js +23 -6
  70. package/dist/plugin/index.js.map +1 -1
  71. package/dist/tools/index.d.ts +35 -1
  72. package/dist/tools/index.d.ts.map +1 -1
  73. package/dist/tools/index.js +197 -1
  74. package/dist/tools/index.js.map +1 -1
  75. package/docs/MIGRATION.md +173 -0
  76. package/docs/SECURITY.md +212 -0
  77. package/docs/TROUBLESHOOTING.md +172 -0
  78. package/package.json +23 -5
  79. package/templates/.opencode/agents/scheduled-coder.md +115 -0
  80. package/templates/.opencode/agents/scheduled-planner.md +166 -0
  81. package/templates/.opencode/agents/scheduled-reviewer.md +88 -0
  82. package/templates/.opencode/commands/abort-task.md +20 -0
  83. package/templates/.opencode/commands/acceptance.md +20 -0
  84. package/templates/.opencode/commands/change.md +23 -0
  85. package/templates/.opencode/commands/resume-review.md +19 -0
  86. package/templates/.opencode/skills/scheduled-quality-coder/SKILL.md +93 -0
  87. package/templates/.opencode/skills/scheduled-quality-orchestrator/SKILL.md +216 -0
  88. package/templates/.opencode/skills/scheduled-quality-reviewer/SKILL.md +68 -0
  89. package/templates/AGENTS.md.fragment +19 -0
  90. package/templates/README.md +52 -9
  91. package/templates/automation/config.json +50 -0
  92. package/templates/automation/config.schema.json +163 -0
  93. package/templates/automation/task-contract.schema.json +71 -0
  94. package/templates/automation/tasks/TASK-TEMPLATE.json.example +53 -0
  95. package/templates/docs/plans/README.md +26 -0
  96. package/templates/installation-manifest.schema.json +201 -0
  97. package/templates/scripts/automation/abort-task.sh +171 -0
  98. package/templates/scripts/automation/accept-and-integrate.sh +263 -0
  99. package/templates/scripts/automation/acceptance-report.sh +132 -0
  100. package/templates/scripts/automation/approve-and-run.sh +175 -0
  101. package/templates/scripts/automation/begin-review.sh +18 -0
  102. package/templates/scripts/automation/block-task.sh +26 -0
  103. package/templates/scripts/automation/claim-task.sh +74 -0
  104. package/templates/scripts/automation/integration-scope-gate.sh +103 -0
  105. package/templates/scripts/automation/lib.sh +697 -0
  106. package/templates/scripts/automation/orchestrate-task.sh +119 -0
  107. package/templates/scripts/automation/preflight.sh +206 -0
  108. package/templates/scripts/automation/prepare-contract-review.sh +101 -0
  109. package/templates/scripts/automation/quality-gate.sh +72 -0
  110. package/templates/scripts/automation/queue-task.sh +35 -0
  111. package/templates/scripts/automation/record-red.sh +57 -0
  112. package/templates/scripts/automation/resume-review-fix.sh +32 -0
  113. package/templates/scripts/automation/resume-review.sh +120 -0
  114. package/templates/scripts/automation/scope-gate.sh +110 -0
  115. package/templates/scripts/automation/select-task.sh +34 -0
  116. package/templates/scripts/automation/shadow-run.sh +24 -0
  117. package/templates/scripts/automation/show-acceptance-review.sh +111 -0
  118. package/templates/scripts/automation/status.sh +125 -0
  119. package/templates/scripts/automation/submit-review.sh +73 -0
  120. package/templates/scripts/automation/tests/run-tests.sh +699 -0
  121. package/templates/scripts/automation/transition-state.sh +21 -0
  122. package/templates/scripts/automation/validate-contract.sh +87 -0
  123. package/templates/scripts/automation/verify-integration.sh +37 -0
  124. 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,2 @@
1
+ export { default } from "./plugin/index.js";
2
+ //# sourceMappingURL=opencode-plugin.d.ts.map
@@ -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,4 @@
1
+ // Keep the package root plugin-only. OpenCode treats every root export as a
2
+ // plugin factory, so constants and lifecycle APIs must live under ./api.
3
+ export { default } from "./plugin/index.js";
4
+ //# sourceMappingURL=opencode-plugin.js.map
@@ -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"}
@@ -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
- * Minimal, side-effect-free plugin entry used while the installer and
4
- * read-only diagnostic tools are implemented.
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":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAQvC,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
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"}
@@ -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
- * Minimal, side-effect-free plugin entry used while the installer and
3
- * read-only diagnostic tools are implemented.
7
+ * Runtime implementation deliberately receives only fields shared by the two
8
+ * certified OpenCode versions.
4
9
  */
5
- export const AndroidOrchestratorPlugin = async ({ directory, worktree, }) => {
6
- void directory;
7
- void worktree;
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
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAW,KAAK,EAAE,EACtD,SAAS,EACT,QAAQ,GACT,EAAE,EAAE;IACH,KAAK,SAAS,CAAC;IACf,KAAK,QAAQ,CAAC;IAEd,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
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"}
@@ -1,2 +1,36 @@
1
- export {};
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":"AACA,OAAO,EAAE,CAAC"}
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"}
@@ -1,2 +1,198 @@
1
- export {};
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
@@ -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.