@frankzhang2026/opencode-android-orchestrator 0.5.0 → 0.6.1
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 +28 -0
- package/README.md +66 -31
- package/THIRD_PARTY_NOTICES.md +1 -1
- package/dist/cli.js +64 -2
- package/dist/cli.js.map +1 -1
- package/dist/config/long-command-timeout.d.ts +20 -0
- package/dist/config/long-command-timeout.d.ts.map +1 -0
- package/dist/config/long-command-timeout.js +65 -0
- package/dist/config/long-command-timeout.js.map +1 -0
- package/dist/doctor/installation.d.ts +1 -1
- package/dist/doctor/installation.d.ts.map +1 -1
- package/dist/doctor/installation.js +3 -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 +8 -0
- package/dist/installer/adaptive-templates.js.map +1 -1
- package/dist/installer/gradle-verification.d.ts.map +1 -1
- package/dist/installer/gradle-verification.js +3 -0
- package/dist/installer/gradle-verification.js.map +1 -1
- package/dist/installer/init.d.ts.map +1 -1
- package/dist/installer/init.js +4 -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/upgrade.d.ts +1 -0
- package/dist/installer/upgrade.d.ts.map +1 -1
- package/dist/installer/upgrade.js +7 -0
- package/dist/installer/upgrade.js.map +1 -1
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +5 -0
- package/dist/plugin/index.js.map +1 -1
- package/docs/MIGRATION.md +19 -13
- package/docs/SECURITY.md +17 -6
- package/docs/TROUBLESHOOTING.md +23 -3
- package/package.json +1 -1
- package/templates/.opencode/agents/scheduled-planner.md +5 -0
- package/templates/.opencode/commands/resume-task.md +28 -0
- package/templates/.opencode/skills/scheduled-quality-orchestrator/SKILL.md +38 -3
- package/templates/README.md +3 -3
- package/templates/automation/config.json +3 -1
- package/templates/automation/config.schema.json +9 -2
- package/templates/scripts/automation/lib.sh +2 -0
- package/templates/scripts/automation/preflight.sh +1 -0
- package/templates/scripts/automation/resume-task.sh +135 -0
- package/templates/scripts/automation/tests/run-tests.sh +39 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.6.1 - Unreleased
|
|
4
|
+
|
|
5
|
+
- Raise direct managed long-running automation commands through the certified
|
|
6
|
+
`tool.execute.before` hook to a 30-minute (`1800000` ms) default timeout,
|
|
7
|
+
while preserving any higher caller timeout and leaving unrelated commands
|
|
8
|
+
untouched.
|
|
9
|
+
- Add the bounded `longCommandTimeoutMs` configuration (`120000` through
|
|
10
|
+
`7200000` ms), expose it through `init` and `upgrade` as
|
|
11
|
+
`--long-command-timeout-ms`, and preserve an installed value during upgrade.
|
|
12
|
+
- Add `/resume-task` and `resume-task.sh` for one explicitly approved recovery
|
|
13
|
+
when baseline capture was interrupted before `baseline.json` existed. The
|
|
14
|
+
script proves both refs, HEAD, lease, transition history, sealed planning
|
|
15
|
+
hashes, zero product changes, and absent downstream evidence before routing
|
|
16
|
+
`BLOCKED -> PENDING` through the normal claim flow.
|
|
17
|
+
- Expand the managed inventory from 45 to 47 files, the executable Shell
|
|
18
|
+
inventory from 28 to 29 scripts, and the transaction suite from 42 to 44
|
|
19
|
+
cases.
|
|
20
|
+
|
|
21
|
+
## 0.6.0 - 2026-09-01
|
|
22
|
+
|
|
23
|
+
- Disable Gradle Configuration Cache only for the temporary `help` invocation
|
|
24
|
+
used to enumerate registered Android verification tasks. This guarantees the
|
|
25
|
+
discovery init script and its `projectsEvaluated` callback run even when the
|
|
26
|
+
target repository enables `org.gradle.configuration-cache=true`.
|
|
27
|
+
- Add regression coverage for the exact discovery arguments and repeated task
|
|
28
|
+
discovery, preventing a cache hit from being misreported as five missing
|
|
29
|
+
verification-task groups.
|
|
30
|
+
|
|
3
31
|
## 0.5.0 - 2026-08-31
|
|
4
32
|
|
|
5
33
|
- Make `init` discover registered Android debug verification tasks through one
|
package/README.md
CHANGED
|
@@ -8,7 +8,12 @@ default all-module orchestration and stronger verification contracts. Version
|
|
|
8
8
|
changes while retaining the same certified OpenCode compatibility range.
|
|
9
9
|
Version `0.5.0` makes `init` discover real Android debug verification tasks,
|
|
10
10
|
including product flavors, without a separate JSON file and bootstraps the
|
|
11
|
-
human-owned worktree allowlist when it is missing.
|
|
11
|
+
human-owned worktree allowlist when it is missing. Version `0.6.0` makes that
|
|
12
|
+
discovery reliable in repositories that enable Gradle Configuration Cache by
|
|
13
|
+
disabling the cache only for the temporary discovery invocation.
|
|
14
|
+
Version `0.6.1` gives managed long-running commands a configurable 30-minute
|
|
15
|
+
default timeout and adds a bounded recovery path for baseline capture that was
|
|
16
|
+
externally interrupted before evidence sealing.
|
|
12
17
|
|
|
13
18
|
## Documentation
|
|
14
19
|
|
|
@@ -35,14 +40,16 @@ human-owned worktree allowlist when it is missing.
|
|
|
35
40
|
Run lifecycle commands from the project root or a directory below it. Use a
|
|
36
41
|
clean branch and preserve an independent backup before the first installation,
|
|
37
42
|
even though the installer maintains its own verified recovery data.
|
|
38
|
-
`init` configures Gradle once with a temporary read-only init script
|
|
39
|
-
|
|
43
|
+
`init` configures Gradle once with a temporary read-only init script and
|
|
44
|
+
explicitly disables Configuration Cache for that invocation, so the project's
|
|
45
|
+
normal Gradle configuration and dependency resolution must succeed. Normal
|
|
46
|
+
project builds retain their configured cache behavior.
|
|
40
47
|
|
|
41
48
|
## Quick start
|
|
42
49
|
|
|
43
50
|
```sh
|
|
44
|
-
npx @frankzhang2026/opencode-android-orchestrator@0.
|
|
45
|
-
npx @frankzhang2026/opencode-android-orchestrator@0.
|
|
51
|
+
npx @frankzhang2026/opencode-android-orchestrator@0.6.1 init .
|
|
52
|
+
npx @frankzhang2026/opencode-android-orchestrator@0.6.1 doctor .
|
|
46
53
|
opencode --agent scheduled-planner .
|
|
47
54
|
```
|
|
48
55
|
|
|
@@ -52,7 +59,7 @@ a task contract without selecting a primary module. To intentionally restrict
|
|
|
52
59
|
generated contracts to one module, opt into primary-module scope:
|
|
53
60
|
|
|
54
61
|
```sh
|
|
55
|
-
npx @frankzhang2026/opencode-android-orchestrator@0.
|
|
62
|
+
npx @frankzhang2026/opencode-android-orchestrator@0.6.1 init . \
|
|
56
63
|
--module-scope primary \
|
|
57
64
|
--primary-module :mobile
|
|
58
65
|
```
|
|
@@ -61,16 +68,37 @@ In all-module scope, `--primary-module` is optional and only chooses the
|
|
|
61
68
|
default module used by the focused-test placeholder; it does not narrow which
|
|
62
69
|
detected modules may be modified.
|
|
63
70
|
|
|
64
|
-
|
|
71
|
+
Since `0.5.0`, the same plain `init .` command automatically builds
|
|
65
72
|
`gradleVerification` from tasks that Gradle actually registers. Standard
|
|
66
73
|
unflavored tasks are collapsed to portable selectors such as
|
|
67
74
|
`testDebugUnitTest`, while flavor-specific application tasks remain exact
|
|
68
75
|
module paths. The preferred application's matching flavor is placed first for
|
|
69
76
|
the generated focused-test example; all discovered debug flavors remain in the
|
|
70
|
-
full verification matrix.
|
|
77
|
+
full verification matrix. Version `0.6.0` runs this configuration-phase query
|
|
78
|
+
with `--no-configuration-cache`, avoiding false empty results after a previous
|
|
79
|
+
cacheable `help` invocation. `--gradle-verification-config` remains available
|
|
71
80
|
only for an intentional nonstandard policy override and is not part of the
|
|
72
81
|
normal quick start.
|
|
73
82
|
|
|
83
|
+
### Managed long-command timeout
|
|
84
|
+
|
|
85
|
+
The plugin raises direct managed lifecycle commands such as `claim-task.sh`,
|
|
86
|
+
`approve-and-run.sh`, quality/review verification, recovery, and integration
|
|
87
|
+
to at least `1800000` milliseconds (30 minutes). It never shortens a larger
|
|
88
|
+
timeout supplied by the caller and does not alter unrelated Bash commands.
|
|
89
|
+
|
|
90
|
+
Configure a different bounded value during installation or upgrade:
|
|
91
|
+
|
|
92
|
+
```sh
|
|
93
|
+
opencode-android-orchestrator init . --long-command-timeout-ms 3600000
|
|
94
|
+
opencode-android-orchestrator upgrade . --long-command-timeout-ms 3600000
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
The accepted range is `120000` through `7200000` milliseconds. Upgrade
|
|
98
|
+
preserves an installed value; installations before `0.6.1` receive the
|
|
99
|
+
30-minute default. The generated `automation/config.json` remains managed, so
|
|
100
|
+
use the lifecycle option instead of editing it directly.
|
|
101
|
+
|
|
74
102
|
### Allow intentional local worktree changes
|
|
75
103
|
|
|
76
104
|
`init` automatically creates `.automation-worktree-allowlist` in the Git
|
|
@@ -89,7 +117,7 @@ file paths; directory entries and glob patterns are rejected. The control file
|
|
|
89
117
|
itself is automatically ignored by orchestration, so it does not need a
|
|
90
118
|
`.gitignore` rule merely to pass preflight.
|
|
91
119
|
|
|
92
|
-
The file is bootstrapped but intentionally not part of the
|
|
120
|
+
The file is bootstrapped but intentionally not part of the 47 managed-resource
|
|
93
121
|
hashes, so human edits do not create installation-integrity drift. Planning
|
|
94
122
|
remains read-only, and a file newly created by `init` is removed if that
|
|
95
123
|
installation later rolls back. Upgrade and uninstall preserve the file as
|
|
@@ -108,29 +136,34 @@ Task status exposes the effective snapshot to Coder and Reviewer sessions; an
|
|
|
108
136
|
isolated task worktree receives an empty effective list so task-local edits are
|
|
109
137
|
never hidden by source-worktree exclusions.
|
|
110
138
|
|
|
111
|
-
The install transaction manages
|
|
139
|
+
The install transaction manages 47 project-local paths:
|
|
112
140
|
|
|
113
141
|
| Resource group | Count | Installation behavior |
|
|
114
142
|
| --- | ---: | --- |
|
|
115
|
-
| Scheduled agents, commands, and skills |
|
|
116
|
-
| Deterministic automation Shell files |
|
|
143
|
+
| Scheduled agents, commands, and skills | 11 | Copy exact audited templates. |
|
|
144
|
+
| Deterministic automation Shell files | 29 | Copy exact templates with `0755` modes. |
|
|
117
145
|
| Schemas and plan authoring guide | 3 | Copy fixed supporting resources. |
|
|
118
146
|
| Android automation config and task example | 2 | Generate from detected modules. |
|
|
119
147
|
| `AGENTS.md` and OpenCode JSON/JSONC | 2 | Merge bounded content without replacing unrelated settings. |
|
|
120
148
|
|
|
121
149
|
After installation, start the `scheduled-planner` and use its interactive flow.
|
|
122
|
-
The `/acceptance <TASK-ID>`, `/resume-
|
|
123
|
-
`/abort-task <TASK-ID>` commands are
|
|
124
|
-
replace the required fresh approval
|
|
125
|
-
|
|
150
|
+
The `/acceptance <TASK-ID>`, `/resume-task <TASK-ID>`,
|
|
151
|
+
`/resume-review <TASK-ID>`, and `/abort-task <TASK-ID>` commands are
|
|
152
|
+
recovery/re-entry points; they do not replace the required fresh approval
|
|
153
|
+
controls. `/resume-task` is limited to one baseline-only retry and rejects any
|
|
154
|
+
product diff or existing baseline/downstream evidence. The workflow never
|
|
155
|
+
pushes and does not register Scheduler or launchd jobs.
|
|
126
156
|
|
|
127
157
|
## Status
|
|
128
158
|
|
|
129
159
|
Version `0.1.0` was an early scaffold without a working installer. Version
|
|
130
160
|
`0.2.0` introduced the complete managed lifecycle, `0.3.0` added all-module
|
|
131
161
|
defaults and stronger verification contracts, and `0.4.0` adds the bounded
|
|
132
|
-
worktree allowlist described above. Version `0.5.0`
|
|
133
|
-
Gradle-task discovery and safe allowlist bootstrapping during `init
|
|
162
|
+
worktree allowlist described above. Version `0.5.0` added automatic registered
|
|
163
|
+
Gradle-task discovery and safe allowlist bootstrapping during `init`; version
|
|
164
|
+
`0.6.0` makes discovery independent of the target project's Configuration
|
|
165
|
+
Cache setting, and `0.6.1` adds configurable long-command timeouts plus bounded
|
|
166
|
+
baseline-interruption recovery.
|
|
134
167
|
|
|
135
168
|
The cross-version plugin entry, OpenCode version doctor, Android/Gradle project
|
|
136
169
|
discovery, audited V3 resources, and all deterministic V3 Shell transactions
|
|
@@ -162,9 +195,9 @@ Implemented checks include:
|
|
|
162
195
|
debug unit, build, lint, and connected-device verification tasks
|
|
163
196
|
- a plugin compatibility boundary restricted to API fields and hooks shared
|
|
164
197
|
by both certified OpenCode versions
|
|
165
|
-
- project-independent templates for the three V3 agents,
|
|
198
|
+
- project-independent templates for the three V3 agents, five commands, and
|
|
166
199
|
three scheduled-quality skills
|
|
167
|
-
- all
|
|
200
|
+
- all 29 automation Bash files with their `0755` modes; scope and test-change
|
|
168
201
|
gates consume detected source-set paths instead of a fixed module name
|
|
169
202
|
- a portable automation configuration source, both Schemas, contract example,
|
|
170
203
|
plan guide, and bounded AGENTS managed block
|
|
@@ -188,14 +221,14 @@ Implemented checks include:
|
|
|
188
221
|
- read-only conflict reports with existing and desired hashes, sizes, modes,
|
|
189
222
|
source, and strategy; installation planning fails closed before any write
|
|
190
223
|
when `copy`/`generate` content or an existing file mode would be changed
|
|
191
|
-
- a write-capable `init` transaction that installs
|
|
224
|
+
- a write-capable `init` transaction that installs 47 managed files, preserves
|
|
192
225
|
Shell executable modes, merges OpenCode JSON/JSONC and one bounded AGENTS
|
|
193
226
|
block, bootstraps the optional human-owned worktree allowlist when missing,
|
|
194
227
|
and is byte-idempotent for an unchanged installed version
|
|
195
|
-
- write-before-complete verification using the
|
|
228
|
+
- write-before-complete verification using the 44-case automation suite and a
|
|
196
229
|
read-only shadow run; any failure restores original files before reporting
|
|
197
230
|
the error
|
|
198
|
-
- an installation-aware, read-only doctor that authenticates the
|
|
231
|
+
- an installation-aware, read-only doctor that authenticates the 47-file
|
|
199
232
|
inventory against packaged templates, separates content and permission
|
|
200
233
|
drift, verifies original-file backups, and semantically checks the OpenCode,
|
|
201
234
|
AGENTS, adaptive Android, and task-example configuration
|
|
@@ -270,7 +303,7 @@ preparation alone as resource installation;
|
|
|
270
303
|
## Init
|
|
271
304
|
|
|
272
305
|
```sh
|
|
273
|
-
npx @frankzhang2026/opencode-android-orchestrator@0.
|
|
306
|
+
npx @frankzhang2026/opencode-android-orchestrator@0.6.1 init .
|
|
274
307
|
opencode --agent scheduled-planner .
|
|
275
308
|
```
|
|
276
309
|
|
|
@@ -290,14 +323,15 @@ Android Gradle project, an executable Gradle Wrapper, `git`, `jq`, `rg`,
|
|
|
290
323
|
`ANDROID_SDK_ROOT`. It then:
|
|
291
324
|
|
|
292
325
|
1. when no override was supplied, configures Gradle with a temporary `0600`
|
|
293
|
-
init script
|
|
326
|
+
init script, disables Configuration Cache for that invocation, and derives
|
|
327
|
+
the verification matrix from registered tasks;
|
|
294
328
|
2. renders project-specific configuration and plans both safe merges;
|
|
295
329
|
3. rejects all unresolved content or mode conflicts;
|
|
296
330
|
4. creates a comment-only `.automation-worktree-allowlist` when missing while
|
|
297
331
|
preserving any existing regular file;
|
|
298
332
|
5. backs up every existing managed path and publishes a `prepared` manifest;
|
|
299
333
|
6. writes missing or approved merged files with verified hashes and modes;
|
|
300
|
-
7. runs the
|
|
334
|
+
7. runs the 44 automation tests and `shadow-run.sh`;
|
|
301
335
|
8. marks the manifest `installed` only after both checks pass.
|
|
302
336
|
|
|
303
337
|
Verification failure automatically restores originals and records rollback
|
|
@@ -324,8 +358,8 @@ without detectable `platforms` or `build-tools` is reported as a warning.
|
|
|
324
358
|
Installation checks are deliberately read-only and cover:
|
|
325
359
|
|
|
326
360
|
- manifest schema, installed state, fixed package version, `0600` mode, exact
|
|
327
|
-
|
|
328
|
-
- each managed file's SHA-256, size, and mode, including all
|
|
361
|
+
47-file inventory, sources, strategies, and packaged-template hashes;
|
|
362
|
+
- each managed file's SHA-256, size, and mode, including all 29 executable
|
|
329
363
|
automation scripts;
|
|
330
364
|
- every original-file backup required for future recovery;
|
|
331
365
|
- pinned OpenCode and Superpowers references, the exact bounded AGENTS block,
|
|
@@ -361,7 +395,7 @@ preflight verifies both resolved permissions and tool discovery.
|
|
|
361
395
|
### Phase 2 mutating-tool decision
|
|
362
396
|
|
|
363
397
|
The 2026-08-25 evaluation remains **NO-GO for mutating custom tools in
|
|
364
|
-
`0.
|
|
398
|
+
`0.6.1`**.
|
|
365
399
|
The fixed Shell allowlist remains the only entry point for state transitions,
|
|
366
400
|
Git mutations, and agent launches. OpenCode custom tools provide typed arguments
|
|
367
401
|
and workspace context, but a normal permission prompt is not the workflow's
|
|
@@ -378,6 +412,7 @@ two-version common execution surface. See the OpenCode documentation for
|
|
|
378
412
|
| `prepare-contract-review.sh` | Writes approval/origin evidence and initializes `CONTRACT_REVIEW` | Defer until a fresh proposal selection can produce a one-use receipt. |
|
|
379
413
|
| `approve-and-run.sh` | Acquires a repository lease, creates or switches a task branch/worktree, and launches agents | Do not wrap without a contract-approval receipt and cancellable long-running execution. |
|
|
380
414
|
| `show-acceptance-review.sh` | Reads sealed evidence but may regenerate `acceptance-report.json` | First split out a genuinely read-only, in-memory preview; that preview is the earliest suitable candidate. |
|
|
415
|
+
| `resume-task.sh` | Records one baseline-only resumption, changes a narrowly proven `BLOCKED` state to `PENDING`, and relaunches normal orchestration | Keep behind the fresh command question and fixed Shell allowlist; do not expose as a custom mutating tool without a one-use receipt. |
|
|
381
416
|
| `resume-review.sh` | Records a bounded resumption, changes `BLOCKED` to `REVIEWING`, and launches Reviewer | Consider only after command-bound authorization and subprocess cancellation are proven on both versions. |
|
|
382
417
|
| `accept-and-integrate.sh` | Creates the combined commit, fast-forwards the original branch, removes a worktree, and deletes the task branch | Do not wrap until final acceptance is bound to task ID, sealed diff, branch, session, and a consumed nonce. |
|
|
383
418
|
| `abort-task.sh` | Archives work, may create a recovery commit, switches/removes worktrees, and releases the lease | Do not wrap until an equally bound, one-use abort receipt exists. |
|
|
@@ -388,7 +423,7 @@ the immediately preceding `question` result and bind at least the approval
|
|
|
388
423
|
kind, task ID, session, message, relevant sealed SHA/branch, timestamp, and
|
|
389
424
|
nonce. It must also retain fixed-script authentication, strict state
|
|
390
425
|
preconditions, project/worktree bounds, abort propagation that terminates child
|
|
391
|
-
processes, bounded structured output, exact per-agent permissions, the
|
|
426
|
+
processes, bounded structured output, exact per-agent permissions, the 44-case
|
|
392
427
|
transaction suite, and real `1.14.22`/`1.15.13` integration tests. Internal
|
|
393
428
|
Coder/Reviewer transition scripts remain private orchestration details rather
|
|
394
429
|
than public tools.
|
|
@@ -421,7 +456,7 @@ For an older healthy installation, the command:
|
|
|
421
456
|
backup set;
|
|
422
457
|
4. writes only changed managed resources and restores or removes resources no
|
|
423
458
|
longer managed by the new version;
|
|
424
|
-
5. runs the
|
|
459
|
+
5. runs the 44 automation tests and a mutation-free shadow run before swapping
|
|
425
460
|
the active manifest;
|
|
426
461
|
6. records upgrade history below `.automation-plugin/history/`.
|
|
427
462
|
|
package/THIRD_PARTY_NOTICES.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Third-Party Notices
|
|
2
2
|
|
|
3
|
-
Last reviewed for `0.
|
|
3
|
+
Last reviewed for `0.6.0` on 2026-09-01.
|
|
4
4
|
|
|
5
5
|
The published package does not vendor `node_modules`, third-party binaries, or
|
|
6
6
|
third-party Skill source. Its compiled JavaScript imports the direct runtime
|
package/dist/cli.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { readFileSync } from "node:fs";
|
|
3
3
|
import { resolve } from "node:path";
|
|
4
4
|
import process from "node:process";
|
|
5
|
+
import { DEFAULT_LONG_COMMAND_TIMEOUT_MS, isLongCommandTimeoutMs, } from "./config/long-command-timeout.js";
|
|
5
6
|
import { INSTALLER_COMMANDS } from "./commands/index.js";
|
|
6
7
|
import { formatDoctorReport, runDoctor } from "./doctor/index.js";
|
|
7
8
|
import { formatProjectInitializationResult, runProjectInitialization, } from "./installer/init.js";
|
|
@@ -21,10 +22,11 @@ function printHelp() {
|
|
|
21
22
|
function printInitHelp() {
|
|
22
23
|
process.stdout.write(`OpenCode Android Orchestrator init\n\n`);
|
|
23
24
|
process.stdout.write(`Usage:\n`);
|
|
24
|
-
process.stdout.write(` opencode-android-orchestrator init [directory] [--module-scope <all|primary>] [--primary-module <gradle-path>] [--gradle-verification-config <json-path>] [--json]\n`);
|
|
25
|
+
process.stdout.write(` opencode-android-orchestrator init [directory] [--module-scope <all|primary>] [--primary-module <gradle-path>] [--gradle-verification-config <json-path>] [--long-command-timeout-ms <milliseconds>] [--json]\n`);
|
|
25
26
|
process.stdout.write(`\nDefault module scope: all\n`);
|
|
26
27
|
process.stdout.write(`Default Gradle verification: auto-discovered; the JSON option is an explicit override.\n`);
|
|
27
28
|
process.stdout.write(`Worktree allowlist: created automatically when missing; an existing regular file is preserved.\n`);
|
|
29
|
+
process.stdout.write(`Default managed long-command timeout: ${DEFAULT_LONG_COMMAND_TIMEOUT_MS} ms (30 minutes).\n`);
|
|
28
30
|
}
|
|
29
31
|
function printDoctorHelp() {
|
|
30
32
|
process.stdout.write(`OpenCode Android Orchestrator doctor\n\n`);
|
|
@@ -34,8 +36,16 @@ function printDoctorHelp() {
|
|
|
34
36
|
function printUpgradeHelp() {
|
|
35
37
|
process.stdout.write(`OpenCode Android Orchestrator upgrade\n\n`);
|
|
36
38
|
process.stdout.write(`Usage:\n`);
|
|
37
|
-
process.stdout.write(` opencode-android-orchestrator upgrade [directory] [--module-scope <all|primary>] [--primary-module <gradle-path>] [--gradle-verification-config <json-path>] [--json]\n`);
|
|
39
|
+
process.stdout.write(` opencode-android-orchestrator upgrade [directory] [--module-scope <all|primary>] [--primary-module <gradle-path>] [--gradle-verification-config <json-path>] [--long-command-timeout-ms <milliseconds>] [--json]\n`);
|
|
38
40
|
process.stdout.write(`\nPreserves the installed module scope; legacy installations default to primary.\n`);
|
|
41
|
+
process.stdout.write(`Preserves the installed long-command timeout; legacy installations default to ${DEFAULT_LONG_COMMAND_TIMEOUT_MS} ms.\n`);
|
|
42
|
+
}
|
|
43
|
+
function parseLongCommandTimeoutMs(value) {
|
|
44
|
+
if (!/^\d+$/.test(value)) {
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
const parsed = Number(value);
|
|
48
|
+
return isLongCommandTimeoutMs(parsed) ? parsed : undefined;
|
|
39
49
|
}
|
|
40
50
|
function printUninstallHelp() {
|
|
41
51
|
process.stdout.write(`OpenCode Android Orchestrator uninstall\n\n`);
|
|
@@ -89,6 +99,7 @@ else if (command === "init") {
|
|
|
89
99
|
let moduleScope;
|
|
90
100
|
let primaryModule;
|
|
91
101
|
let gradleVerificationConfigPath;
|
|
102
|
+
let longCommandTimeoutMs;
|
|
92
103
|
let json = false;
|
|
93
104
|
const unexpected = [];
|
|
94
105
|
for (let index = 0; index < commandArguments.length; index += 1) {
|
|
@@ -158,6 +169,28 @@ else if (command === "init") {
|
|
|
158
169
|
gradleVerificationConfigPath = value;
|
|
159
170
|
}
|
|
160
171
|
}
|
|
172
|
+
else if (argument === "--long-command-timeout-ms") {
|
|
173
|
+
const value = commandArguments[index + 1];
|
|
174
|
+
const parsed = value === undefined
|
|
175
|
+
? undefined
|
|
176
|
+
: parseLongCommandTimeoutMs(value);
|
|
177
|
+
if (parsed === undefined) {
|
|
178
|
+
unexpected.push(value === undefined ? argument : `${argument} ${value}`);
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
longCommandTimeoutMs = parsed;
|
|
182
|
+
index += 1;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
else if (argument.startsWith("--long-command-timeout-ms=")) {
|
|
186
|
+
const parsed = parseLongCommandTimeoutMs(argument.slice("--long-command-timeout-ms=".length));
|
|
187
|
+
if (parsed === undefined) {
|
|
188
|
+
unexpected.push(argument);
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
longCommandTimeoutMs = parsed;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
161
194
|
else if (argument.startsWith("-")) {
|
|
162
195
|
unexpected.push(argument);
|
|
163
196
|
}
|
|
@@ -184,6 +217,9 @@ else if (command === "init") {
|
|
|
184
217
|
if (gradleVerificationConfigPath !== undefined) {
|
|
185
218
|
options.gradleVerification = readGradleVerificationConfiguration(gradleVerificationConfigPath);
|
|
186
219
|
}
|
|
220
|
+
if (longCommandTimeoutMs !== undefined) {
|
|
221
|
+
options.longCommandTimeoutMs = longCommandTimeoutMs;
|
|
222
|
+
}
|
|
187
223
|
const result = runProjectInitialization(targetDirectory ?? process.cwd(), options);
|
|
188
224
|
process.stdout.write(json
|
|
189
225
|
? `${JSON.stringify(result, null, 2)}\n`
|
|
@@ -207,6 +243,7 @@ else if (command === "upgrade") {
|
|
|
207
243
|
let moduleScope;
|
|
208
244
|
let primaryModule;
|
|
209
245
|
let gradleVerificationConfigPath;
|
|
246
|
+
let longCommandTimeoutMs;
|
|
210
247
|
let json = false;
|
|
211
248
|
const unexpected = [];
|
|
212
249
|
for (let index = 0; index < commandArguments.length; index += 1) {
|
|
@@ -276,6 +313,28 @@ else if (command === "upgrade") {
|
|
|
276
313
|
gradleVerificationConfigPath = value;
|
|
277
314
|
}
|
|
278
315
|
}
|
|
316
|
+
else if (argument === "--long-command-timeout-ms") {
|
|
317
|
+
const value = commandArguments[index + 1];
|
|
318
|
+
const parsed = value === undefined
|
|
319
|
+
? undefined
|
|
320
|
+
: parseLongCommandTimeoutMs(value);
|
|
321
|
+
if (parsed === undefined) {
|
|
322
|
+
unexpected.push(value === undefined ? argument : `${argument} ${value}`);
|
|
323
|
+
}
|
|
324
|
+
else {
|
|
325
|
+
longCommandTimeoutMs = parsed;
|
|
326
|
+
index += 1;
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
else if (argument.startsWith("--long-command-timeout-ms=")) {
|
|
330
|
+
const parsed = parseLongCommandTimeoutMs(argument.slice("--long-command-timeout-ms=".length));
|
|
331
|
+
if (parsed === undefined) {
|
|
332
|
+
unexpected.push(argument);
|
|
333
|
+
}
|
|
334
|
+
else {
|
|
335
|
+
longCommandTimeoutMs = parsed;
|
|
336
|
+
}
|
|
337
|
+
}
|
|
279
338
|
else if (argument.startsWith("-")) {
|
|
280
339
|
unexpected.push(argument);
|
|
281
340
|
}
|
|
@@ -302,6 +361,9 @@ else if (command === "upgrade") {
|
|
|
302
361
|
if (gradleVerificationConfigPath !== undefined) {
|
|
303
362
|
options.gradleVerification = readGradleVerificationConfiguration(gradleVerificationConfigPath);
|
|
304
363
|
}
|
|
364
|
+
if (longCommandTimeoutMs !== undefined) {
|
|
365
|
+
options.longCommandTimeoutMs = longCommandTimeoutMs;
|
|
366
|
+
}
|
|
305
367
|
const result = runProjectUpgrade(targetDirectory ?? process.cwd(), options);
|
|
306
368
|
process.stdout.write(json
|
|
307
369
|
? `${JSON.stringify(result, null, 2)}\n`
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare const DEFAULT_LONG_COMMAND_TIMEOUT_MS: number;
|
|
2
|
+
export declare const MINIMUM_LONG_COMMAND_TIMEOUT_MS: number;
|
|
3
|
+
export declare const MAXIMUM_LONG_COMMAND_TIMEOUT_MS: number;
|
|
4
|
+
export declare const LONG_RUNNING_AUTOMATION_SCRIPTS: readonly ["accept-and-integrate.sh", "approve-and-run.sh", "claim-task.sh", "orchestrate-task.sh", "quality-gate.sh", "resume-review.sh", "resume-task.sh", "submit-review.sh", "verify-integration.sh", "verify-task.sh"];
|
|
5
|
+
export declare function isLongCommandTimeoutMs(value: unknown): value is number;
|
|
6
|
+
/**
|
|
7
|
+
* Runtime loading is deliberately fail-safe for legacy installations: schema
|
|
8
|
+
* validation remains the install-time authority, while a missing or malformed
|
|
9
|
+
* value can never restore OpenCode's shorter default for managed long runs.
|
|
10
|
+
*/
|
|
11
|
+
export declare function readLongCommandTimeoutMs(worktree: string): number;
|
|
12
|
+
export interface ToolExecutionInput {
|
|
13
|
+
tool: string;
|
|
14
|
+
}
|
|
15
|
+
export interface ToolExecutionOutput {
|
|
16
|
+
args: unknown;
|
|
17
|
+
}
|
|
18
|
+
/** Raise, but never shorten, the timeout for a direct managed long command. */
|
|
19
|
+
export declare function applyLongCommandTimeout(input: ToolExecutionInput, output: ToolExecutionOutput, configuredTimeoutMs: number): void;
|
|
20
|
+
//# sourceMappingURL=long-command-timeout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"long-command-timeout.d.ts","sourceRoot":"","sources":["../../src/config/long-command-timeout.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,+BAA+B,QAAkB,CAAC;AAC/D,eAAO,MAAM,+BAA+B,QAAiB,CAAC;AAC9D,eAAO,MAAM,+BAA+B,QAAsB,CAAC;AAEnE,eAAO,MAAM,+BAA+B,4NAWlC,CAAC;AAEX,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAOtE;AAMD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAYjE;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,CAAC;CACf;AAcD,+EAA+E;AAC/E,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,kBAAkB,EACzB,MAAM,EAAE,mBAAmB,EAC3B,mBAAmB,EAAE,MAAM,GAC1B,IAAI,CAgBN"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
export const DEFAULT_LONG_COMMAND_TIMEOUT_MS = 30 * 60 * 1_000;
|
|
4
|
+
export const MINIMUM_LONG_COMMAND_TIMEOUT_MS = 2 * 60 * 1_000;
|
|
5
|
+
export const MAXIMUM_LONG_COMMAND_TIMEOUT_MS = 2 * 60 * 60 * 1_000;
|
|
6
|
+
export const LONG_RUNNING_AUTOMATION_SCRIPTS = [
|
|
7
|
+
"accept-and-integrate.sh",
|
|
8
|
+
"approve-and-run.sh",
|
|
9
|
+
"claim-task.sh",
|
|
10
|
+
"orchestrate-task.sh",
|
|
11
|
+
"quality-gate.sh",
|
|
12
|
+
"resume-review.sh",
|
|
13
|
+
"resume-task.sh",
|
|
14
|
+
"submit-review.sh",
|
|
15
|
+
"verify-integration.sh",
|
|
16
|
+
"verify-task.sh",
|
|
17
|
+
];
|
|
18
|
+
export function isLongCommandTimeoutMs(value) {
|
|
19
|
+
return (typeof value === "number" &&
|
|
20
|
+
Number.isInteger(value) &&
|
|
21
|
+
value >= MINIMUM_LONG_COMMAND_TIMEOUT_MS &&
|
|
22
|
+
value <= MAXIMUM_LONG_COMMAND_TIMEOUT_MS);
|
|
23
|
+
}
|
|
24
|
+
function isRecord(value) {
|
|
25
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Runtime loading is deliberately fail-safe for legacy installations: schema
|
|
29
|
+
* validation remains the install-time authority, while a missing or malformed
|
|
30
|
+
* value can never restore OpenCode's shorter default for managed long runs.
|
|
31
|
+
*/
|
|
32
|
+
export function readLongCommandTimeoutMs(worktree) {
|
|
33
|
+
try {
|
|
34
|
+
const config = JSON.parse(readFileSync(join(worktree, "automation", "config.json"), "utf8"));
|
|
35
|
+
if (isRecord(config) && isLongCommandTimeoutMs(config.longCommandTimeoutMs)) {
|
|
36
|
+
return config.longCommandTimeoutMs;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
// The read-only plugin must still load so doctor can report installation issues.
|
|
41
|
+
}
|
|
42
|
+
return DEFAULT_LONG_COMMAND_TIMEOUT_MS;
|
|
43
|
+
}
|
|
44
|
+
function isManagedLongCommand(command) {
|
|
45
|
+
if (typeof command !== "string") {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
const scriptNames = LONG_RUNNING_AUTOMATION_SCRIPTS.map((name) => name.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("|");
|
|
49
|
+
return new RegExp(`^\\s*\\./scripts/automation/(?:${scriptNames})(?:\\s|$)`).test(command);
|
|
50
|
+
}
|
|
51
|
+
/** Raise, but never shorten, the timeout for a direct managed long command. */
|
|
52
|
+
export function applyLongCommandTimeout(input, output, configuredTimeoutMs) {
|
|
53
|
+
if (input.tool !== "bash" ||
|
|
54
|
+
!isRecord(output.args) ||
|
|
55
|
+
!isManagedLongCommand(output.args.command)) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const existing = output.args.timeout;
|
|
59
|
+
if (typeof existing !== "number" ||
|
|
60
|
+
!Number.isFinite(existing) ||
|
|
61
|
+
existing < configuredTimeoutMs) {
|
|
62
|
+
output.args.timeout = configuredTimeoutMs;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=long-command-timeout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"long-command-timeout.js","sourceRoot":"","sources":["../../src/config/long-command-timeout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,CAAC,MAAM,+BAA+B,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;AAC/D,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;AAC9D,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;AAEnE,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,yBAAyB;IACzB,oBAAoB;IACpB,eAAe;IACf,qBAAqB;IACrB,iBAAiB;IACjB,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,uBAAuB;IACvB,gBAAgB;CACR,CAAC;AAEX,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;QACvB,KAAK,IAAI,+BAA+B;QACxC,KAAK,IAAI,+BAA+B,CACzC,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,QAAgB;IACvD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CACvB,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CACvD,CAAC;QACb,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,sBAAsB,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,CAAC;YAC5E,OAAO,MAAM,CAAC,oBAAoB,CAAC;QACrC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,iFAAiF;IACnF,CAAC;IACD,OAAO,+BAA+B,CAAC;AACzC,CAAC;AAUD,SAAS,oBAAoB,CAAC,OAAgB;IAC5C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,WAAW,GAAG,+BAA+B,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC/D,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAC5C,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACZ,OAAO,IAAI,MAAM,CACf,kCAAkC,WAAW,YAAY,CAC1D,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAClB,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,uBAAuB,CACrC,KAAyB,EACzB,MAA2B,EAC3B,mBAA2B;IAE3B,IACE,KAAK,CAAC,IAAI,KAAK,MAAM;QACrB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;QACtB,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAC1C,CAAC;QACD,OAAO;IACT,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;IACrC,IACE,OAAO,QAAQ,KAAK,QAAQ;QAC5B,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC1B,QAAQ,GAAG,mBAAmB,EAC9B,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,mBAAmB,CAAC;IAC5C,CAAC;AACH,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { DoctorCheck } from "./index.js";
|
|
2
|
-
export declare const EXPECTED_MANAGED_FILE_COUNT =
|
|
2
|
+
export declare const EXPECTED_MANAGED_FILE_COUNT = 47;
|
|
3
3
|
export declare function installationDoctorChecks(targetDirectory: string): readonly DoctorCheck[];
|
|
4
4
|
//# sourceMappingURL=installation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installation.d.ts","sourceRoot":"","sources":["../../src/doctor/installation.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,eAAO,MAAM,2BAA2B,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"installation.d.ts","sourceRoot":"","sources":["../../src/doctor/installation.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAkkB9C,wBAAgB,wBAAwB,CACtC,eAAe,EAAE,MAAM,GACtB,SAAS,WAAW,EAAE,CA4DxB"}
|
|
@@ -6,7 +6,7 @@ import { isModuleScope, planAdaptiveProjectTemplates, } from "../installer/adapt
|
|
|
6
6
|
import { planAgentsConfigMerge } from "../installer/agents-config.js";
|
|
7
7
|
import { INSTALLATION_MANIFEST_RELATIVE_PATH, readInstallationManifest, verifyInstallationIntegrity, } from "../installer/install-manifest.js";
|
|
8
8
|
import { ORCHESTRATOR_PACKAGE_NAME, ORCHESTRATOR_PACKAGE_VERSION, mergeOpenCodeConfigText, } from "../installer/opencode-config.js";
|
|
9
|
-
export const EXPECTED_MANAGED_FILE_COUNT =
|
|
9
|
+
export const EXPECTED_MANAGED_FILE_COUNT = 47;
|
|
10
10
|
const OPENCODE_TEMPLATE_PATHS = [
|
|
11
11
|
".opencode/agents/scheduled-coder.md",
|
|
12
12
|
".opencode/agents/scheduled-planner.md",
|
|
@@ -14,6 +14,7 @@ const OPENCODE_TEMPLATE_PATHS = [
|
|
|
14
14
|
".opencode/commands/abort-task.md",
|
|
15
15
|
".opencode/commands/acceptance.md",
|
|
16
16
|
".opencode/commands/change.md",
|
|
17
|
+
".opencode/commands/resume-task.md",
|
|
17
18
|
".opencode/commands/resume-review.md",
|
|
18
19
|
".opencode/skills/scheduled-quality-coder/SKILL.md",
|
|
19
20
|
".opencode/skills/scheduled-quality-orchestrator/SKILL.md",
|
|
@@ -35,6 +36,7 @@ const AUTOMATION_SCRIPT_PATHS = [
|
|
|
35
36
|
"scripts/automation/quality-gate.sh",
|
|
36
37
|
"scripts/automation/queue-task.sh",
|
|
37
38
|
"scripts/automation/record-red.sh",
|
|
39
|
+
"scripts/automation/resume-task.sh",
|
|
38
40
|
"scripts/automation/resume-review-fix.sh",
|
|
39
41
|
"scripts/automation/resume-review.sh",
|
|
40
42
|
"scripts/automation/scope-gate.sh",
|