@frankzhang2026/opencode-android-orchestrator 1.0.5 → 1.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.
Files changed (107) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/README.md +76 -15
  3. package/dist/config/queue-policy.d.ts.map +1 -1
  4. package/dist/config/queue-policy.js +1 -2
  5. package/dist/config/queue-policy.js.map +1 -1
  6. package/dist/doctor/index.d.ts.map +1 -1
  7. package/dist/doctor/index.js +14 -3
  8. package/dist/doctor/index.js.map +1 -1
  9. package/dist/doctor/installation.d.ts +1 -1
  10. package/dist/doctor/installation.d.ts.map +1 -1
  11. package/dist/doctor/installation.js +10 -1
  12. package/dist/doctor/installation.js.map +1 -1
  13. package/dist/index.d.ts +1 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +1 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/installer/adaptive-templates.d.ts +4 -1
  18. package/dist/installer/adaptive-templates.d.ts.map +1 -1
  19. package/dist/installer/adaptive-templates.js +38 -13
  20. package/dist/installer/adaptive-templates.js.map +1 -1
  21. package/dist/installer/android-project.d.ts +3 -1
  22. package/dist/installer/android-project.d.ts.map +1 -1
  23. package/dist/installer/android-project.js.map +1 -1
  24. package/dist/installer/capabilities-script.d.ts +2 -0
  25. package/dist/installer/capabilities-script.d.ts.map +1 -0
  26. package/dist/installer/capabilities-script.js +77 -0
  27. package/dist/installer/capabilities-script.js.map +1 -0
  28. package/dist/installer/gradle-verification.d.ts.map +1 -1
  29. package/dist/installer/gradle-verification.js +13 -6
  30. package/dist/installer/gradle-verification.js.map +1 -1
  31. package/dist/installer/init.d.ts.map +1 -1
  32. package/dist/installer/init.js +2 -1
  33. package/dist/installer/init.js.map +1 -1
  34. package/dist/installer/opencode-config.d.ts +3 -3
  35. package/dist/installer/opencode-config.js +1 -1
  36. package/dist/installer/project-capabilities.d.ts +35 -0
  37. package/dist/installer/project-capabilities.d.ts.map +1 -0
  38. package/dist/installer/project-capabilities.js +82 -0
  39. package/dist/installer/project-capabilities.js.map +1 -0
  40. package/dist/installer/upgrade.d.ts.map +1 -1
  41. package/dist/installer/upgrade.js +9 -1
  42. package/dist/installer/upgrade.js.map +1 -1
  43. package/dist/queue/cli.d.ts.map +1 -1
  44. package/dist/queue/cli.js +32 -5
  45. package/dist/queue/cli.js.map +1 -1
  46. package/dist/queue/executor.d.ts +1 -0
  47. package/dist/queue/executor.d.ts.map +1 -1
  48. package/dist/queue/executor.js +155 -11
  49. package/dist/queue/executor.js.map +1 -1
  50. package/dist/queue/process-ownership.d.ts +12 -0
  51. package/dist/queue/process-ownership.d.ts.map +1 -0
  52. package/dist/queue/process-ownership.js +58 -0
  53. package/dist/queue/process-ownership.js.map +1 -0
  54. package/dist/queue/queue.d.ts +25 -1
  55. package/dist/queue/queue.d.ts.map +1 -1
  56. package/dist/queue/queue.js +96 -11
  57. package/dist/queue/queue.js.map +1 -1
  58. package/dist/queue/service.d.ts.map +1 -1
  59. package/dist/queue/service.js +19 -2
  60. package/dist/queue/service.js.map +1 -1
  61. package/dist/queue/storage.d.ts +3 -1
  62. package/dist/queue/storage.d.ts.map +1 -1
  63. package/dist/queue/storage.js +25 -15
  64. package/dist/queue/storage.js.map +1 -1
  65. package/dist/queue/supervision.d.ts +38 -0
  66. package/dist/queue/supervision.d.ts.map +1 -0
  67. package/dist/queue/supervision.js +247 -0
  68. package/dist/queue/supervision.js.map +1 -0
  69. package/dist/queue/tools.d.ts.map +1 -1
  70. package/dist/queue/tools.js +4 -2
  71. package/dist/queue/tools.js.map +1 -1
  72. package/docs/MIGRATION.md +110 -9
  73. package/docs/QUEUE.md +350 -16
  74. package/docs/SECURITY.md +5 -2
  75. package/docs/TROUBLESHOOTING.md +82 -8
  76. package/package.json +1 -1
  77. package/templates/.opencode/agents/scheduled-coder.md +14 -1
  78. package/templates/.opencode/agents/scheduled-planner.md +64 -3
  79. package/templates/.opencode/skills/scheduled-quality-coder/SKILL.md +29 -3
  80. package/templates/.opencode/skills/scheduled-quality-orchestrator/SKILL.md +65 -4
  81. package/templates/.opencode/skills/scheduled-quality-reviewer/SKILL.md +19 -1
  82. package/templates/AGENTS.md.fragment +10 -4
  83. package/templates/README.md +3 -1
  84. package/templates/automation/config.schema.json +212 -22
  85. package/templates/automation/task-contract.schema.json +573 -49
  86. package/templates/automation/tasks/TASK-TEMPLATE.json.example +9 -4
  87. package/templates/automation/verification/collect.init.gradle +98 -0
  88. package/templates/automation/verification/contract.cjs +93 -0
  89. package/templates/automation/verification/inventory.cjs +433 -0
  90. package/templates/automation/verification/project.cjs +172 -0
  91. package/templates/automation/verification/recovery.cjs +426 -0
  92. package/templates/scripts/automation/acceptance-report.sh +17 -0
  93. package/templates/scripts/automation/claim-task.sh +35 -2
  94. package/templates/scripts/automation/integration-scope-gate.sh +3 -3
  95. package/templates/scripts/automation/lib.sh +61 -19
  96. package/templates/scripts/automation/orchestrate-task.sh +7 -1
  97. package/templates/scripts/automation/preflight.sh +1 -2
  98. package/templates/scripts/automation/quality-gate.sh +10 -1
  99. package/templates/scripts/automation/record-red.sh +13 -1
  100. package/templates/scripts/automation/resume-task.sh +3 -0
  101. package/templates/scripts/automation/scope-gate.sh +4 -4
  102. package/templates/scripts/automation/show-acceptance-review.sh +1 -0
  103. package/templates/scripts/automation/status.sh +32 -0
  104. package/templates/scripts/automation/submit-review.sh +10 -1
  105. package/templates/scripts/automation/validate-contract.sh +10 -1
  106. package/templates/scripts/automation/verify-integration.sh +3 -0
  107. package/templates/scripts/automation/verify-task.sh +3 -0
@@ -22,6 +22,13 @@
22
22
  "minLength": 1,
23
23
  "pattern": "^(?:[A-Za-z][A-Za-z0-9_.-]*|(?::[A-Za-z0-9_.-]+)+)$"
24
24
  },
25
+ "optionalGradleTaskList": {
26
+ "type": "array",
27
+ "uniqueItems": true,
28
+ "items": {
29
+ "$ref": "#/$defs/gradleTask"
30
+ }
31
+ },
25
32
  "gradleTaskList": {
26
33
  "type": "array",
27
34
  "minItems": 1,
@@ -184,10 +191,10 @@
184
191
  "$ref": "#/$defs/gradleTaskList"
185
192
  },
186
193
  "lintTasks": {
187
- "$ref": "#/$defs/gradleTaskList"
194
+ "$ref": "#/$defs/optionalGradleTaskList"
188
195
  },
189
196
  "deviceTestTasks": {
190
- "$ref": "#/$defs/gradleTaskList"
197
+ "$ref": "#/$defs/optionalGradleTaskList"
191
198
  }
192
199
  }
193
200
  },
@@ -266,7 +273,8 @@
266
273
  "library",
267
274
  "dynamic-feature",
268
275
  "test",
269
- "asset-pack"
276
+ "asset-pack",
277
+ "jvm-library"
270
278
  ]
271
279
  },
272
280
  "namespace": {
@@ -283,14 +291,7 @@
283
291
  "minItems": 1,
284
292
  "uniqueItems": true,
285
293
  "items": {
286
- "allOf": [
287
- {
288
- "$ref": "#/$defs/repositoryPath"
289
- },
290
- {
291
- "pattern": "(^|/)src/main/\\*\\*$"
292
- }
293
- ]
294
+ "$ref": "#/$defs/repositoryPath"
294
295
  }
295
296
  },
296
297
  "testPaths": {
@@ -298,17 +299,202 @@
298
299
  "minItems": 1,
299
300
  "uniqueItems": true,
300
301
  "items": {
301
- "allOf": [
302
- {
303
- "$ref": "#/$defs/repositoryPath"
302
+ "$ref": "#/$defs/repositoryPath"
303
+ }
304
+ },
305
+ "capabilities": {
306
+ "type": "object",
307
+ "additionalProperties": false,
308
+ "required": [
309
+ "version",
310
+ "buildRoot",
311
+ "modules"
312
+ ],
313
+ "properties": {
314
+ "version": {
315
+ "const": 1
316
+ },
317
+ "buildRoot": {
318
+ "$ref": "#/$defs/repositoryPath"
319
+ },
320
+ "modules": {
321
+ "type": "array",
322
+ "items": {
323
+ "type": "object",
324
+ "additionalProperties": false,
325
+ "required": [
326
+ "gradlePath",
327
+ "directory",
328
+ "buildFile",
329
+ "type",
330
+ "namespace",
331
+ "applicationId",
332
+ "dependencies",
333
+ "sources",
334
+ "tasks"
335
+ ],
336
+ "properties": {
337
+ "gradlePath": {
338
+ "type": "string",
339
+ "pattern": "^:(?:[A-Za-z0-9_.-]+(?::[A-Za-z0-9_.-]+)*)?$"
340
+ },
341
+ "directory": {
342
+ "$ref": "#/$defs/repositoryPath"
343
+ },
344
+ "buildFile": {
345
+ "$ref": "#/$defs/repositoryPath"
346
+ },
347
+ "type": {
348
+ "enum": [
349
+ "application",
350
+ "library",
351
+ "dynamic-feature",
352
+ "test",
353
+ "asset-pack",
354
+ "jvm-library"
355
+ ]
356
+ },
357
+ "namespace": {
358
+ "$ref": "#/$defs/nullableIdentifier"
359
+ },
360
+ "applicationId": {
361
+ "$ref": "#/$defs/nullableIdentifier"
362
+ },
363
+ "dependencies": {
364
+ "type": "array",
365
+ "items": {
366
+ "type": "string",
367
+ "pattern": "^:(?:[A-Za-z0-9_.-]+(?::[A-Za-z0-9_.-]+)*)?$"
368
+ },
369
+ "uniqueItems": true
370
+ },
371
+ "sources": {
372
+ "type": "array",
373
+ "items": {
374
+ "type": "object",
375
+ "additionalProperties": false,
376
+ "required": [
377
+ "name",
378
+ "kind",
379
+ "paths"
380
+ ],
381
+ "properties": {
382
+ "name": {
383
+ "type": "string",
384
+ "pattern": "^[A-Za-z0-9_.-]+$"
385
+ },
386
+ "kind": {
387
+ "enum": [
388
+ "production",
389
+ "test"
390
+ ]
391
+ },
392
+ "paths": {
393
+ "type": "array",
394
+ "items": {
395
+ "$ref": "#/$defs/repositoryPath"
396
+ },
397
+ "uniqueItems": true
398
+ }
399
+ }
400
+ },
401
+ "uniqueItems": true
402
+ },
403
+ "tasks": {
404
+ "type": "array",
405
+ "items": {
406
+ "type": "object",
407
+ "additionalProperties": false,
408
+ "required": [
409
+ "path",
410
+ "kind",
411
+ "variant"
412
+ ],
413
+ "properties": {
414
+ "path": {
415
+ "type": "string",
416
+ "pattern": "^:(?:[A-Za-z0-9_.-]+:)*[A-Za-z][A-Za-z0-9_.-]*$"
417
+ },
418
+ "kind": {
419
+ "enum": [
420
+ "unit",
421
+ "assemble",
422
+ "lint",
423
+ "device"
424
+ ]
425
+ },
426
+ "variant": {
427
+ "type": [
428
+ "string",
429
+ "null"
430
+ ],
431
+ "pattern": "^[A-Za-z0-9]+$"
432
+ }
433
+ }
434
+ },
435
+ "uniqueItems": true
436
+ }
437
+ }
304
438
  },
305
- {
306
- "pattern": "(^|/)src/(?:test|androidTest)/\\*\\*$"
307
- }
439
+ "uniqueItems": true,
440
+ "minItems": 1
441
+ }
442
+ }
443
+ }
444
+ },
445
+ "allOf": [
446
+ {
447
+ "if": {
448
+ "required": [
449
+ "capabilities"
308
450
  ]
451
+ },
452
+ "then": {},
453
+ "else": {
454
+ "properties": {
455
+ "productionPaths": {
456
+ "items": {
457
+ "allOf": [
458
+ {
459
+ "$ref": "#/$defs/repositoryPath"
460
+ },
461
+ {
462
+ "pattern": "(^|/)src/main/\\*\\*$"
463
+ }
464
+ ]
465
+ }
466
+ },
467
+ "testPaths": {
468
+ "items": {
469
+ "allOf": [
470
+ {
471
+ "$ref": "#/$defs/repositoryPath"
472
+ },
473
+ {
474
+ "pattern": "(^|/)src/(?:test|androidTest)/\\*\\*$"
475
+ }
476
+ ]
477
+ }
478
+ },
479
+ "modules": {
480
+ "items": {
481
+ "properties": {
482
+ "type": {
483
+ "enum": [
484
+ "application",
485
+ "library",
486
+ "dynamic-feature",
487
+ "test",
488
+ "asset-pack"
489
+ ]
490
+ }
491
+ }
492
+ }
493
+ }
494
+ }
309
495
  }
310
496
  }
311
- }
497
+ ]
312
498
  },
313
499
  "protectedPaths": {
314
500
  "type": "array",
@@ -356,15 +542,19 @@
356
542
  {
357
543
  "if": {
358
544
  "properties": {
359
- "workspaceStrategy": {
360
- "const": "isolatedWorktree"
545
+ "lintEnabled": {
546
+ "const": true
361
547
  }
362
548
  }
363
549
  },
364
550
  "then": {
365
551
  "properties": {
366
- "commitPolicy": {
367
- "const": "humanApproval"
552
+ "gradleVerification": {
553
+ "properties": {
554
+ "lintTasks": {
555
+ "minItems": 1
556
+ }
557
+ }
368
558
  }
369
559
  }
370
560
  }