@frankzhang2026/opencode-android-orchestrator 0.6.0 → 0.7.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 +26 -0
- package/README.md +79 -25
- package/dist/cli.js +66 -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/config/verification-policy.d.ts +20 -0
- package/dist/config/verification-policy.d.ts.map +1 -0
- package/dist/config/verification-policy.js +59 -0
- package/dist/config/verification-policy.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 +49 -4
- 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 +10 -1
- package/dist/installer/adaptive-templates.d.ts.map +1 -1
- package/dist/installer/adaptive-templates.js +21 -0
- package/dist/installer/adaptive-templates.js.map +1 -1
- package/dist/installer/init.d.ts +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/install-manifest.d.ts.map +1 -1
- package/dist/installer/install-manifest.js +13 -1
- package/dist/installer/install-manifest.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 +41 -2
- 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 +25 -13
- package/docs/SECURITY.md +25 -6
- package/docs/TROUBLESHOOTING.md +20 -2
- 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-coder/SKILL.md +4 -3
- package/templates/.opencode/skills/scheduled-quality-orchestrator/SKILL.md +38 -3
- package/templates/.opencode/skills/scheduled-quality-reviewer/SKILL.md +3 -2
- package/templates/README.md +7 -4
- package/templates/automation/config.json +5 -1
- package/templates/automation/config.schema.json +13 -2
- package/templates/automation/tasks/TASK-TEMPLATE.json.example +1 -1
- package/templates/scripts/automation/claim-task.sh +23 -8
- package/templates/scripts/automation/lib.sh +38 -0
- package/templates/scripts/automation/orchestrate-task.sh +1 -1
- 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 +64 -3
- package/templates/scripts/automation/verify-integration.sh +2 -9
- package/templates/scripts/automation/verify-task.sh +2 -9
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.7.0 - Unreleased
|
|
4
|
+
|
|
5
|
+
- Make unit-test and Android lint gates explicit, repository-configured
|
|
6
|
+
policies. `unitTestsEnabled` defaults to `true`, `lintEnabled` defaults to
|
|
7
|
+
`false`, and both are changed only in `automation/config.json`.
|
|
8
|
+
- Preserve supported verification-policy edits across upgrades and accept them
|
|
9
|
+
in doctor checks while keeping every other generated configuration field
|
|
10
|
+
protected by manifest integrity.
|
|
11
|
+
- Skip baseline/focused/full unit-test gates or `lintTasks` when their policy is
|
|
12
|
+
disabled, while retaining RED evidence and discovered task lists.
|
|
13
|
+
- Raise direct managed long-running automation commands through the certified
|
|
14
|
+
`tool.execute.before` hook to a 30-minute (`1800000` ms) default timeout,
|
|
15
|
+
while preserving any higher caller timeout and leaving unrelated commands
|
|
16
|
+
untouched.
|
|
17
|
+
- Add the bounded `longCommandTimeoutMs` configuration (`120000` through
|
|
18
|
+
`7200000` ms), expose it through `init` and `upgrade` as
|
|
19
|
+
`--long-command-timeout-ms`, and preserve an installed value during upgrade.
|
|
20
|
+
- Add `/resume-task` and `resume-task.sh` for one explicitly approved recovery
|
|
21
|
+
when baseline capture was interrupted before `baseline.json` existed. The
|
|
22
|
+
script proves both refs, HEAD, lease, transition history, sealed planning
|
|
23
|
+
hashes, zero product changes, and absent downstream evidence before routing
|
|
24
|
+
`BLOCKED -> PENDING` through the normal claim flow.
|
|
25
|
+
- Expand the managed inventory from 45 to 47 files, the executable Shell
|
|
26
|
+
inventory from 28 to 29 scripts, and the transaction suite from 42 to 44
|
|
27
|
+
cases.
|
|
28
|
+
|
|
3
29
|
## 0.6.0 - 2026-09-01
|
|
4
30
|
|
|
5
31
|
- Disable Gradle Configuration Cache only for the temporary `help` invocation
|
package/README.md
CHANGED
|
@@ -11,6 +11,9 @@ including product flavors, without a separate JSON file and bootstraps the
|
|
|
11
11
|
human-owned worktree allowlist when it is missing. Version `0.6.0` makes that
|
|
12
12
|
discovery reliable in repositories that enable Gradle Configuration Cache by
|
|
13
13
|
disabling the cache only for the temporary discovery invocation.
|
|
14
|
+
Version `0.7.0` adds repository-configured unit-test and lint verification
|
|
15
|
+
policies, while retaining the configurable 30-minute timeout and bounded
|
|
16
|
+
baseline-capture recovery path.
|
|
14
17
|
|
|
15
18
|
## Documentation
|
|
16
19
|
|
|
@@ -45,8 +48,8 @@ project builds retain their configured cache behavior.
|
|
|
45
48
|
## Quick start
|
|
46
49
|
|
|
47
50
|
```sh
|
|
48
|
-
npx @frankzhang2026/opencode-android-orchestrator@0.
|
|
49
|
-
npx @frankzhang2026/opencode-android-orchestrator@0.
|
|
51
|
+
npx @frankzhang2026/opencode-android-orchestrator@0.7.0 init .
|
|
52
|
+
npx @frankzhang2026/opencode-android-orchestrator@0.7.0 doctor .
|
|
50
53
|
opencode --agent scheduled-planner .
|
|
51
54
|
```
|
|
52
55
|
|
|
@@ -56,7 +59,7 @@ a task contract without selecting a primary module. To intentionally restrict
|
|
|
56
59
|
generated contracts to one module, opt into primary-module scope:
|
|
57
60
|
|
|
58
61
|
```sh
|
|
59
|
-
npx @frankzhang2026/opencode-android-orchestrator@0.
|
|
62
|
+
npx @frankzhang2026/opencode-android-orchestrator@0.7.0 init . \
|
|
60
63
|
--module-scope primary \
|
|
61
64
|
--primary-module :mobile
|
|
62
65
|
```
|
|
@@ -77,6 +80,51 @@ cacheable `help` invocation. `--gradle-verification-config` remains available
|
|
|
77
80
|
only for an intentional nonstandard policy override and is not part of the
|
|
78
81
|
normal quick start.
|
|
79
82
|
|
|
83
|
+
### Configurable unit-test and lint verification
|
|
84
|
+
|
|
85
|
+
Verification policy lives in `automation/config.json`:
|
|
86
|
+
|
|
87
|
+
```json
|
|
88
|
+
{
|
|
89
|
+
"unitTestsEnabled": true,
|
|
90
|
+
"lintEnabled": false
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Unit-test verification is enabled by default. Setting `unitTestsEnabled` to
|
|
95
|
+
`false` skips the baseline unit suite and the focused/full unit-test portions
|
|
96
|
+
of task, review, and integration gates. The mandatory TDD RED evidence step is
|
|
97
|
+
unchanged. Android lint is disabled by default; setting `lintEnabled` to `true`
|
|
98
|
+
runs the discovered `lintTasks` in those gates. Assemble, scope, evidence, and
|
|
99
|
+
required device-test checks are unaffected by either flag.
|
|
100
|
+
|
|
101
|
+
These two booleans are the operator-editable exceptions in the otherwise
|
|
102
|
+
managed configuration. Change their values in place and commit the file before
|
|
103
|
+
starting orchestration. Doctor accepts these policy changes and a later
|
|
104
|
+
upgrade preserves them. Do not reformat or edit unrelated generated fields.
|
|
105
|
+
Legacy installations without the fields receive `true` for unit tests and
|
|
106
|
+
`false` for lint during upgrade.
|
|
107
|
+
|
|
108
|
+
### Managed long-command timeout
|
|
109
|
+
|
|
110
|
+
The plugin raises direct managed lifecycle commands such as `claim-task.sh`,
|
|
111
|
+
`approve-and-run.sh`, quality/review verification, recovery, and integration
|
|
112
|
+
to at least `1800000` milliseconds (30 minutes). It never shortens a larger
|
|
113
|
+
timeout supplied by the caller and does not alter unrelated Bash commands.
|
|
114
|
+
|
|
115
|
+
Configure a different bounded value during installation or upgrade:
|
|
116
|
+
|
|
117
|
+
```sh
|
|
118
|
+
opencode-android-orchestrator init . --long-command-timeout-ms 3600000
|
|
119
|
+
opencode-android-orchestrator upgrade . --long-command-timeout-ms 3600000
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
The accepted range is `120000` through `7200000` milliseconds. Upgrade
|
|
123
|
+
preserves an installed value; installations before `0.6.1` receive the
|
|
124
|
+
30-minute default. Apart from the two verification-policy booleans, generated
|
|
125
|
+
`automation/config.json` fields remain managed, so use the lifecycle option
|
|
126
|
+
instead of editing the timeout directly.
|
|
127
|
+
|
|
80
128
|
### Allow intentional local worktree changes
|
|
81
129
|
|
|
82
130
|
`init` automatically creates `.automation-worktree-allowlist` in the Git
|
|
@@ -95,7 +143,7 @@ file paths; directory entries and glob patterns are rejected. The control file
|
|
|
95
143
|
itself is automatically ignored by orchestration, so it does not need a
|
|
96
144
|
`.gitignore` rule merely to pass preflight.
|
|
97
145
|
|
|
98
|
-
The file is bootstrapped but intentionally not part of the
|
|
146
|
+
The file is bootstrapped but intentionally not part of the 47 managed-resource
|
|
99
147
|
hashes, so human edits do not create installation-integrity drift. Planning
|
|
100
148
|
remains read-only, and a file newly created by `init` is removed if that
|
|
101
149
|
installation later rolls back. Upgrade and uninstall preserve the file as
|
|
@@ -114,21 +162,23 @@ Task status exposes the effective snapshot to Coder and Reviewer sessions; an
|
|
|
114
162
|
isolated task worktree receives an empty effective list so task-local edits are
|
|
115
163
|
never hidden by source-worktree exclusions.
|
|
116
164
|
|
|
117
|
-
The install transaction manages
|
|
165
|
+
The install transaction manages 47 project-local paths:
|
|
118
166
|
|
|
119
167
|
| Resource group | Count | Installation behavior |
|
|
120
168
|
| --- | ---: | --- |
|
|
121
|
-
| Scheduled agents, commands, and skills |
|
|
122
|
-
| Deterministic automation Shell files |
|
|
169
|
+
| Scheduled agents, commands, and skills | 11 | Copy exact audited templates. |
|
|
170
|
+
| Deterministic automation Shell files | 29 | Copy exact templates with `0755` modes. |
|
|
123
171
|
| Schemas and plan authoring guide | 3 | Copy fixed supporting resources. |
|
|
124
172
|
| Android automation config and task example | 2 | Generate from detected modules. |
|
|
125
173
|
| `AGENTS.md` and OpenCode JSON/JSONC | 2 | Merge bounded content without replacing unrelated settings. |
|
|
126
174
|
|
|
127
175
|
After installation, start the `scheduled-planner` and use its interactive flow.
|
|
128
|
-
The `/acceptance <TASK-ID>`, `/resume-
|
|
129
|
-
`/abort-task <TASK-ID>` commands are
|
|
130
|
-
replace the required fresh approval
|
|
131
|
-
|
|
176
|
+
The `/acceptance <TASK-ID>`, `/resume-task <TASK-ID>`,
|
|
177
|
+
`/resume-review <TASK-ID>`, and `/abort-task <TASK-ID>` commands are
|
|
178
|
+
recovery/re-entry points; they do not replace the required fresh approval
|
|
179
|
+
controls. `/resume-task` is limited to one baseline-only retry and rejects any
|
|
180
|
+
product diff or existing baseline/downstream evidence. The workflow never
|
|
181
|
+
pushes and does not register Scheduler or launchd jobs.
|
|
132
182
|
|
|
133
183
|
## Status
|
|
134
184
|
|
|
@@ -138,7 +188,9 @@ defaults and stronger verification contracts, and `0.4.0` adds the bounded
|
|
|
138
188
|
worktree allowlist described above. Version `0.5.0` added automatic registered
|
|
139
189
|
Gradle-task discovery and safe allowlist bootstrapping during `init`; version
|
|
140
190
|
`0.6.0` makes discovery independent of the target project's Configuration
|
|
141
|
-
Cache setting.
|
|
191
|
+
Cache setting, `0.6.1` adds configurable long-command timeouts plus bounded
|
|
192
|
+
baseline-interruption recovery, and `0.7.0` makes unit-test and lint gates
|
|
193
|
+
repository-configurable.
|
|
142
194
|
|
|
143
195
|
The cross-version plugin entry, OpenCode version doctor, Android/Gradle project
|
|
144
196
|
discovery, audited V3 resources, and all deterministic V3 Shell transactions
|
|
@@ -167,12 +219,13 @@ Implemented checks include:
|
|
|
167
219
|
multi-module, custom `projectDir`, version-catalog plugin aliases, and Gradle
|
|
168
220
|
Wrapper detection
|
|
169
221
|
- one-pass, marker-bounded Gradle task discovery for unflavored and flavored
|
|
170
|
-
debug unit, build, lint, and connected-device verification tasks
|
|
222
|
+
debug unit, build, lint, and connected-device verification tasks, with unit
|
|
223
|
+
and lint execution controlled independently by repository policy
|
|
171
224
|
- a plugin compatibility boundary restricted to API fields and hooks shared
|
|
172
225
|
by both certified OpenCode versions
|
|
173
|
-
- project-independent templates for the three V3 agents,
|
|
226
|
+
- project-independent templates for the three V3 agents, five commands, and
|
|
174
227
|
three scheduled-quality skills
|
|
175
|
-
- all
|
|
228
|
+
- all 29 automation Bash files with their `0755` modes; scope and test-change
|
|
176
229
|
gates consume detected source-set paths instead of a fixed module name
|
|
177
230
|
- a portable automation configuration source, both Schemas, contract example,
|
|
178
231
|
plan guide, and bounded AGENTS managed block
|
|
@@ -196,14 +249,14 @@ Implemented checks include:
|
|
|
196
249
|
- read-only conflict reports with existing and desired hashes, sizes, modes,
|
|
197
250
|
source, and strategy; installation planning fails closed before any write
|
|
198
251
|
when `copy`/`generate` content or an existing file mode would be changed
|
|
199
|
-
- a write-capable `init` transaction that installs
|
|
252
|
+
- a write-capable `init` transaction that installs 47 managed files, preserves
|
|
200
253
|
Shell executable modes, merges OpenCode JSON/JSONC and one bounded AGENTS
|
|
201
254
|
block, bootstraps the optional human-owned worktree allowlist when missing,
|
|
202
255
|
and is byte-idempotent for an unchanged installed version
|
|
203
|
-
- write-before-complete verification using the
|
|
256
|
+
- write-before-complete verification using the 44-case automation suite and a
|
|
204
257
|
read-only shadow run; any failure restores original files before reporting
|
|
205
258
|
the error
|
|
206
|
-
- an installation-aware, read-only doctor that authenticates the
|
|
259
|
+
- an installation-aware, read-only doctor that authenticates the 47-file
|
|
207
260
|
inventory against packaged templates, separates content and permission
|
|
208
261
|
drift, verifies original-file backups, and semantically checks the OpenCode,
|
|
209
262
|
AGENTS, adaptive Android, and task-example configuration
|
|
@@ -278,7 +331,7 @@ preparation alone as resource installation;
|
|
|
278
331
|
## Init
|
|
279
332
|
|
|
280
333
|
```sh
|
|
281
|
-
npx @frankzhang2026/opencode-android-orchestrator@0.
|
|
334
|
+
npx @frankzhang2026/opencode-android-orchestrator@0.7.0 init .
|
|
282
335
|
opencode --agent scheduled-planner .
|
|
283
336
|
```
|
|
284
337
|
|
|
@@ -306,7 +359,7 @@ Android Gradle project, an executable Gradle Wrapper, `git`, `jq`, `rg`,
|
|
|
306
359
|
preserving any existing regular file;
|
|
307
360
|
5. backs up every existing managed path and publishes a `prepared` manifest;
|
|
308
361
|
6. writes missing or approved merged files with verified hashes and modes;
|
|
309
|
-
7. runs the
|
|
362
|
+
7. runs the 44 automation tests and `shadow-run.sh`;
|
|
310
363
|
8. marks the manifest `installed` only after both checks pass.
|
|
311
364
|
|
|
312
365
|
Verification failure automatically restores originals and records rollback
|
|
@@ -333,8 +386,8 @@ without detectable `platforms` or `build-tools` is reported as a warning.
|
|
|
333
386
|
Installation checks are deliberately read-only and cover:
|
|
334
387
|
|
|
335
388
|
- manifest schema, installed state, fixed package version, `0600` mode, exact
|
|
336
|
-
|
|
337
|
-
- each managed file's SHA-256, size, and mode, including all
|
|
389
|
+
47-file inventory, sources, strategies, and packaged-template hashes;
|
|
390
|
+
- each managed file's SHA-256, size, and mode, including all 29 executable
|
|
338
391
|
automation scripts;
|
|
339
392
|
- every original-file backup required for future recovery;
|
|
340
393
|
- pinned OpenCode and Superpowers references, the exact bounded AGENTS block,
|
|
@@ -370,7 +423,7 @@ preflight verifies both resolved permissions and tool discovery.
|
|
|
370
423
|
### Phase 2 mutating-tool decision
|
|
371
424
|
|
|
372
425
|
The 2026-08-25 evaluation remains **NO-GO for mutating custom tools in
|
|
373
|
-
`0.
|
|
426
|
+
`0.7.0`**.
|
|
374
427
|
The fixed Shell allowlist remains the only entry point for state transitions,
|
|
375
428
|
Git mutations, and agent launches. OpenCode custom tools provide typed arguments
|
|
376
429
|
and workspace context, but a normal permission prompt is not the workflow's
|
|
@@ -387,6 +440,7 @@ two-version common execution surface. See the OpenCode documentation for
|
|
|
387
440
|
| `prepare-contract-review.sh` | Writes approval/origin evidence and initializes `CONTRACT_REVIEW` | Defer until a fresh proposal selection can produce a one-use receipt. |
|
|
388
441
|
| `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. |
|
|
389
442
|
| `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. |
|
|
443
|
+
| `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. |
|
|
390
444
|
| `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. |
|
|
391
445
|
| `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. |
|
|
392
446
|
| `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. |
|
|
@@ -397,7 +451,7 @@ the immediately preceding `question` result and bind at least the approval
|
|
|
397
451
|
kind, task ID, session, message, relevant sealed SHA/branch, timestamp, and
|
|
398
452
|
nonce. It must also retain fixed-script authentication, strict state
|
|
399
453
|
preconditions, project/worktree bounds, abort propagation that terminates child
|
|
400
|
-
processes, bounded structured output, exact per-agent permissions, the
|
|
454
|
+
processes, bounded structured output, exact per-agent permissions, the 44-case
|
|
401
455
|
transaction suite, and real `1.14.22`/`1.15.13` integration tests. Internal
|
|
402
456
|
Coder/Reviewer transition scripts remain private orchestration details rather
|
|
403
457
|
than public tools.
|
|
@@ -430,7 +484,7 @@ For an older healthy installation, the command:
|
|
|
430
484
|
backup set;
|
|
431
485
|
4. writes only changed managed resources and restores or removes resources no
|
|
432
486
|
longer managed by the new version;
|
|
433
|
-
5. runs the
|
|
487
|
+
5. runs the 44 automation tests and a mutation-free shadow run before swapping
|
|
434
488
|
the active manifest;
|
|
435
489
|
6. records upgrade history below `.automation-plugin/history/`.
|
|
436
490
|
|
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,12 @@ 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`);
|
|
28
|
+
process.stdout.write(`Verification policy: edit lintEnabled and unitTestsEnabled in automation/config.json after installation.\n`);
|
|
27
29
|
process.stdout.write(`Worktree allowlist: created automatically when missing; an existing regular file is preserved.\n`);
|
|
30
|
+
process.stdout.write(`Default managed long-command timeout: ${DEFAULT_LONG_COMMAND_TIMEOUT_MS} ms (30 minutes).\n`);
|
|
28
31
|
}
|
|
29
32
|
function printDoctorHelp() {
|
|
30
33
|
process.stdout.write(`OpenCode Android Orchestrator doctor\n\n`);
|
|
@@ -34,8 +37,17 @@ function printDoctorHelp() {
|
|
|
34
37
|
function printUpgradeHelp() {
|
|
35
38
|
process.stdout.write(`OpenCode Android Orchestrator upgrade\n\n`);
|
|
36
39
|
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`);
|
|
40
|
+
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
41
|
process.stdout.write(`\nPreserves the installed module scope; legacy installations default to primary.\n`);
|
|
42
|
+
process.stdout.write(`Preserves verification policy from automation/config.json; legacy defaults are unit tests enabled and lint disabled.\n`);
|
|
43
|
+
process.stdout.write(`Preserves the installed long-command timeout; legacy installations default to ${DEFAULT_LONG_COMMAND_TIMEOUT_MS} ms.\n`);
|
|
44
|
+
}
|
|
45
|
+
function parseLongCommandTimeoutMs(value) {
|
|
46
|
+
if (!/^\d+$/.test(value)) {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
const parsed = Number(value);
|
|
50
|
+
return isLongCommandTimeoutMs(parsed) ? parsed : undefined;
|
|
39
51
|
}
|
|
40
52
|
function printUninstallHelp() {
|
|
41
53
|
process.stdout.write(`OpenCode Android Orchestrator uninstall\n\n`);
|
|
@@ -89,6 +101,7 @@ else if (command === "init") {
|
|
|
89
101
|
let moduleScope;
|
|
90
102
|
let primaryModule;
|
|
91
103
|
let gradleVerificationConfigPath;
|
|
104
|
+
let longCommandTimeoutMs;
|
|
92
105
|
let json = false;
|
|
93
106
|
const unexpected = [];
|
|
94
107
|
for (let index = 0; index < commandArguments.length; index += 1) {
|
|
@@ -158,6 +171,28 @@ else if (command === "init") {
|
|
|
158
171
|
gradleVerificationConfigPath = value;
|
|
159
172
|
}
|
|
160
173
|
}
|
|
174
|
+
else if (argument === "--long-command-timeout-ms") {
|
|
175
|
+
const value = commandArguments[index + 1];
|
|
176
|
+
const parsed = value === undefined
|
|
177
|
+
? undefined
|
|
178
|
+
: parseLongCommandTimeoutMs(value);
|
|
179
|
+
if (parsed === undefined) {
|
|
180
|
+
unexpected.push(value === undefined ? argument : `${argument} ${value}`);
|
|
181
|
+
}
|
|
182
|
+
else {
|
|
183
|
+
longCommandTimeoutMs = parsed;
|
|
184
|
+
index += 1;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
else if (argument.startsWith("--long-command-timeout-ms=")) {
|
|
188
|
+
const parsed = parseLongCommandTimeoutMs(argument.slice("--long-command-timeout-ms=".length));
|
|
189
|
+
if (parsed === undefined) {
|
|
190
|
+
unexpected.push(argument);
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
longCommandTimeoutMs = parsed;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
161
196
|
else if (argument.startsWith("-")) {
|
|
162
197
|
unexpected.push(argument);
|
|
163
198
|
}
|
|
@@ -184,6 +219,9 @@ else if (command === "init") {
|
|
|
184
219
|
if (gradleVerificationConfigPath !== undefined) {
|
|
185
220
|
options.gradleVerification = readGradleVerificationConfiguration(gradleVerificationConfigPath);
|
|
186
221
|
}
|
|
222
|
+
if (longCommandTimeoutMs !== undefined) {
|
|
223
|
+
options.longCommandTimeoutMs = longCommandTimeoutMs;
|
|
224
|
+
}
|
|
187
225
|
const result = runProjectInitialization(targetDirectory ?? process.cwd(), options);
|
|
188
226
|
process.stdout.write(json
|
|
189
227
|
? `${JSON.stringify(result, null, 2)}\n`
|
|
@@ -207,6 +245,7 @@ else if (command === "upgrade") {
|
|
|
207
245
|
let moduleScope;
|
|
208
246
|
let primaryModule;
|
|
209
247
|
let gradleVerificationConfigPath;
|
|
248
|
+
let longCommandTimeoutMs;
|
|
210
249
|
let json = false;
|
|
211
250
|
const unexpected = [];
|
|
212
251
|
for (let index = 0; index < commandArguments.length; index += 1) {
|
|
@@ -276,6 +315,28 @@ else if (command === "upgrade") {
|
|
|
276
315
|
gradleVerificationConfigPath = value;
|
|
277
316
|
}
|
|
278
317
|
}
|
|
318
|
+
else if (argument === "--long-command-timeout-ms") {
|
|
319
|
+
const value = commandArguments[index + 1];
|
|
320
|
+
const parsed = value === undefined
|
|
321
|
+
? undefined
|
|
322
|
+
: parseLongCommandTimeoutMs(value);
|
|
323
|
+
if (parsed === undefined) {
|
|
324
|
+
unexpected.push(value === undefined ? argument : `${argument} ${value}`);
|
|
325
|
+
}
|
|
326
|
+
else {
|
|
327
|
+
longCommandTimeoutMs = parsed;
|
|
328
|
+
index += 1;
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
else if (argument.startsWith("--long-command-timeout-ms=")) {
|
|
332
|
+
const parsed = parseLongCommandTimeoutMs(argument.slice("--long-command-timeout-ms=".length));
|
|
333
|
+
if (parsed === undefined) {
|
|
334
|
+
unexpected.push(argument);
|
|
335
|
+
}
|
|
336
|
+
else {
|
|
337
|
+
longCommandTimeoutMs = parsed;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
279
340
|
else if (argument.startsWith("-")) {
|
|
280
341
|
unexpected.push(argument);
|
|
281
342
|
}
|
|
@@ -302,6 +363,9 @@ else if (command === "upgrade") {
|
|
|
302
363
|
if (gradleVerificationConfigPath !== undefined) {
|
|
303
364
|
options.gradleVerification = readGradleVerificationConfiguration(gradleVerificationConfigPath);
|
|
304
365
|
}
|
|
366
|
+
if (longCommandTimeoutMs !== undefined) {
|
|
367
|
+
options.longCommandTimeoutMs = longCommandTimeoutMs;
|
|
368
|
+
}
|
|
305
369
|
const result = runProjectUpgrade(targetDirectory ?? process.cwd(), options);
|
|
306
370
|
process.stdout.write(json
|
|
307
371
|
? `${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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare const AUTOMATION_CONFIG_RELATIVE_PATH = "automation/config.json";
|
|
2
|
+
export declare const DEFAULT_LINT_ENABLED = false;
|
|
3
|
+
export declare const DEFAULT_UNIT_TESTS_ENABLED = true;
|
|
4
|
+
export interface VerificationPolicy {
|
|
5
|
+
lintEnabled: boolean;
|
|
6
|
+
unitTestsEnabled: boolean;
|
|
7
|
+
}
|
|
8
|
+
interface ContentFingerprint {
|
|
9
|
+
sha256: string;
|
|
10
|
+
size: number;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Accept an otherwise byte-identical generated configuration when an operator
|
|
14
|
+
* changed only the two supported verification-policy booleans. Enumerating the
|
|
15
|
+
* previous boolean states lets upgrades authenticate the remaining managed
|
|
16
|
+
* content against the installed manifest without storing another file copy.
|
|
17
|
+
*/
|
|
18
|
+
export declare function matchesManifestModuloVerificationPolicy(content: Uint8Array, expected: ContentFingerprint): boolean;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=verification-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verification-policy.d.ts","sourceRoot":"","sources":["../../src/config/verification-policy.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,+BAA+B,2BAA2B,CAAC;AACxE,eAAO,MAAM,oBAAoB,QAAQ,CAAC;AAC1C,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,UAAU,kBAAkB;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAsBD;;;;;GAKG;AACH,wBAAgB,uCAAuC,CACrD,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,kBAAkB,GAC3B,OAAO,CAwCT"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
export const AUTOMATION_CONFIG_RELATIVE_PATH = "automation/config.json";
|
|
3
|
+
export const DEFAULT_LINT_ENABLED = false;
|
|
4
|
+
export const DEFAULT_UNIT_TESTS_ENABLED = true;
|
|
5
|
+
function isRecord(value) {
|
|
6
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
7
|
+
}
|
|
8
|
+
function sha256(content) {
|
|
9
|
+
return createHash("sha256").update(content).digest("hex");
|
|
10
|
+
}
|
|
11
|
+
function setOptionalBoolean(value, key, configured) {
|
|
12
|
+
if (configured === undefined) {
|
|
13
|
+
delete value[key];
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
value[key] = configured;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Accept an otherwise byte-identical generated configuration when an operator
|
|
21
|
+
* changed only the two supported verification-policy booleans. Enumerating the
|
|
22
|
+
* previous boolean states lets upgrades authenticate the remaining managed
|
|
23
|
+
* content against the installed manifest without storing another file copy.
|
|
24
|
+
*/
|
|
25
|
+
export function matchesManifestModuloVerificationPolicy(content, expected) {
|
|
26
|
+
if (content.byteLength === expected.size &&
|
|
27
|
+
sha256(content) === expected.sha256) {
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
let parsed;
|
|
31
|
+
try {
|
|
32
|
+
parsed = JSON.parse(Buffer.from(content).toString("utf8"));
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
if (!isRecord(parsed)) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
if (typeof parsed.lintEnabled !== "boolean" ||
|
|
41
|
+
typeof parsed.unitTestsEnabled !== "boolean") {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
const states = [undefined, false, true];
|
|
45
|
+
for (const unitTestsEnabled of states) {
|
|
46
|
+
for (const lintEnabled of states) {
|
|
47
|
+
const candidate = { ...parsed };
|
|
48
|
+
setOptionalBoolean(candidate, "unitTestsEnabled", unitTestsEnabled);
|
|
49
|
+
setOptionalBoolean(candidate, "lintEnabled", lintEnabled);
|
|
50
|
+
const rendered = Buffer.from(`${JSON.stringify(candidate, null, 2)}\n`);
|
|
51
|
+
if (rendered.byteLength === expected.size &&
|
|
52
|
+
sha256(rendered) === expected.sha256) {
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=verification-policy.js.map
|