@frankzhang2026/opencode-android-orchestrator 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,5 @@
1
+ # Changelog
2
+
3
+ ## Unreleased
4
+
5
+ - Create the initial private TypeScript/npm plugin scaffold.
package/README.md ADDED
@@ -0,0 +1,25 @@
1
+ # OpenCode Android Orchestrator
2
+
3
+ Reusable OpenCode orchestration for macOS Android projects.
4
+
5
+ ## Status
6
+
7
+ This repository currently contains only the TypeScript/npm scaffold. The
8
+ installer lifecycle and the verified Android orchestration V3 templates have
9
+ not been migrated yet. The package metadata is configured for public
10
+ publication under the `@frankzhang2026` npm scope.
11
+
12
+ ## Planned usage
13
+
14
+ ```sh
15
+ npx @frankzhang2026/opencode-android-orchestrator@0.1.0 init .
16
+ opencode --agent scheduled-planner .
17
+ ```
18
+
19
+ ## Development
20
+
21
+ ```sh
22
+ npm run typecheck
23
+ npm test
24
+ npm run pack:check
25
+ ```
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js ADDED
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env node
2
+ import process from "node:process";
3
+ import { INSTALLER_COMMANDS } from "./commands/index.js";
4
+ function printHelp() {
5
+ process.stdout.write(`OpenCode Android Orchestrator\n\n`);
6
+ process.stdout.write(`Usage:\n`);
7
+ process.stdout.write(` opencode-android-orchestrator <command> [directory]\n\n`);
8
+ process.stdout.write(`Commands:\n`);
9
+ process.stdout.write(` init Install project-local orchestration resources\n`);
10
+ process.stdout.write(` doctor Diagnose an existing installation\n`);
11
+ process.stdout.write(` upgrade Upgrade unchanged managed resources\n`);
12
+ process.stdout.write(` uninstall Remove unchanged managed resources\n`);
13
+ }
14
+ const [command] = process.argv.slice(2);
15
+ if (command === undefined || command === "--help" || command === "-h") {
16
+ printHelp();
17
+ }
18
+ else if (INSTALLER_COMMANDS.includes(command)) {
19
+ process.stderr.write(`Command "${command}" is scaffolded but not implemented yet.\n`);
20
+ process.exitCode = 1;
21
+ }
22
+ else {
23
+ process.stderr.write(`Unknown command: ${command}\n\n`);
24
+ printHelp();
25
+ process.exitCode = 2;
26
+ }
27
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,SAAS,SAAS;IAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAC1D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAClF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;IACrF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACzE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAC3E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAExC,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;IACtE,SAAS,EAAE,CAAC;AACd,CAAC;KAAM,IAAK,kBAAwC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;IACvE,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,YAAY,OAAO,4CAA4C,CAChE,CAAC;IACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC;KAAM,CAAC;IACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,OAAO,MAAM,CAAC,CAAC;IACxD,SAAS,EAAE,CAAC;IACZ,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const INSTALLER_COMMANDS: readonly ["init", "doctor", "upgrade", "uninstall"];
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,qDAKrB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export const INSTALLER_COMMANDS = [
2
+ "init",
3
+ "doctor",
4
+ "upgrade",
5
+ "uninstall",
6
+ ];
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,MAAM;IACN,QAAQ;IACR,SAAS;IACT,WAAW;CACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const MINIMUM_OPENCODE_VERSION = "1.14.22";
2
+ export declare const MAXIMUM_OPENCODE_VERSION = "1.16.0";
3
+ export declare const CERTIFIED_OPENCODE_VERSIONS: readonly ["1.14.22", "1.15.13"];
4
+ //# sourceMappingURL=versions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"versions.d.ts","sourceRoot":"","sources":["../../src/compatibility/versions.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wBAAwB,YAAY,CAAC;AAClD,eAAO,MAAM,wBAAwB,WAAW,CAAC;AACjD,eAAO,MAAM,2BAA2B,iCAAkC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export const MINIMUM_OPENCODE_VERSION = "1.14.22";
2
+ export const MAXIMUM_OPENCODE_VERSION = "1.16.0";
3
+ export const CERTIFIED_OPENCODE_VERSIONS = ["1.14.22", "1.15.13"];
4
+ //# sourceMappingURL=versions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"versions.js","sourceRoot":"","sources":["../../src/compatibility/versions.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,wBAAwB,GAAG,SAAS,CAAC;AAClD,MAAM,CAAC,MAAM,wBAAwB,GAAG,QAAQ,CAAC;AACjD,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,SAAS,EAAE,SAAS,CAAU,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { AndroidOrchestratorPlugin, default } from "./plugin/index.js";
2
+ export { CERTIFIED_OPENCODE_VERSIONS, MAXIMUM_OPENCODE_VERSION, MINIMUM_OPENCODE_VERSION, } from "./compatibility/versions.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,6BAA6B,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export { AndroidOrchestratorPlugin, default } from "./plugin/index.js";
2
+ export { CERTIFIED_OPENCODE_VERSIONS, MAXIMUM_OPENCODE_VERSION, MINIMUM_OPENCODE_VERSION, } from "./compatibility/versions.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,6 @@
1
+ export type InstallerCommand = "init" | "doctor" | "upgrade" | "uninstall";
2
+ export interface InstallerRequest {
3
+ command: InstallerCommand;
4
+ targetDirectory: string;
5
+ }
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/installer/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;AAE3E,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;CACzB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/installer/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import type { Plugin } from "@opencode-ai/plugin";
2
+ /**
3
+ * Minimal, side-effect-free plugin entry used while the installer and
4
+ * read-only diagnostic tools are implemented.
5
+ */
6
+ export declare const AndroidOrchestratorPlugin: Plugin;
7
+ export default AndroidOrchestratorPlugin;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Minimal, side-effect-free plugin entry used while the installer and
3
+ * read-only diagnostic tools are implemented.
4
+ */
5
+ export const AndroidOrchestratorPlugin = async ({ directory, worktree, }) => {
6
+ void directory;
7
+ void worktree;
8
+ return {};
9
+ };
10
+ export default AndroidOrchestratorPlugin;
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,50 @@
1
+ {
2
+ "name": "@frankzhang2026/opencode-android-orchestrator",
3
+ "version": "0.1.0",
4
+ "description": "Reusable OpenCode orchestration for Android projects",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "main": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js"
13
+ }
14
+ },
15
+ "bin": {
16
+ "opencode-android-orchestrator": "dist/cli.js"
17
+ },
18
+ "files": [
19
+ "dist/",
20
+ "templates/",
21
+ "README.md",
22
+ "CHANGELOG.md"
23
+ ],
24
+ "publishConfig": {
25
+ "access": "public",
26
+ "registry": "https://registry.npmjs.org/"
27
+ },
28
+ "scripts": {
29
+ "build": "tsc -p tsconfig.json",
30
+ "typecheck": "tsc -p tsconfig.json --noEmit",
31
+ "test": "npm run build && node --test tests/*.test.mjs",
32
+ "pack:check": "npm pack --dry-run",
33
+ "prepack": "npm run build"
34
+ },
35
+ "keywords": [
36
+ "opencode",
37
+ "android",
38
+ "automation",
39
+ "orchestration"
40
+ ],
41
+ "author": "",
42
+ "peerDependencies": {
43
+ "@opencode-ai/plugin": ">=1.14.22 <1.16.0"
44
+ },
45
+ "devDependencies": {
46
+ "@opencode-ai/plugin": "1.14.22",
47
+ "@types/node": "22.13.9",
48
+ "typescript": "5.8.2"
49
+ }
50
+ }
@@ -0,0 +1,14 @@
1
+ # Installation templates
2
+
3
+ This directory will contain the project-local OpenCode resources extracted
4
+ from the verified Android orchestration V3 baseline.
5
+
6
+ Planned template roots:
7
+
8
+ - `.opencode/agents`, `.opencode/commands`, and `.opencode/skills`
9
+ - `automation` configuration, schemas, and the task contract example
10
+ - `scripts/automation` deterministic shell transactions
11
+ - `docs/plans/README.md`
12
+
13
+ Historical tasks, runtime evidence, backups, Android product code, and local
14
+ absolute paths must never be included.