@frankzhang2026/opencode-android-orchestrator 0.7.0 → 0.8.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.
Files changed (61) hide show
  1. package/CHANGELOG.md +32 -1
  2. package/README.md +58 -22
  3. package/THIRD_PARTY_NOTICES.md +15 -11
  4. package/dist/index.d.ts +3 -3
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +3 -3
  7. package/dist/index.js.map +1 -1
  8. package/dist/installer/adaptive-templates.d.ts +2 -5
  9. package/dist/installer/adaptive-templates.d.ts.map +1 -1
  10. package/dist/installer/adaptive-templates.js.map +1 -1
  11. package/dist/installer/agents-config.d.ts +5 -0
  12. package/dist/installer/agents-config.d.ts.map +1 -1
  13. package/dist/installer/agents-config.js +44 -8
  14. package/dist/installer/agents-config.js.map +1 -1
  15. package/dist/installer/index.d.ts +2 -2
  16. package/dist/installer/index.d.ts.map +1 -1
  17. package/dist/installer/index.js +2 -2
  18. package/dist/installer/index.js.map +1 -1
  19. package/dist/installer/opencode-config.d.ts +3 -4
  20. package/dist/installer/opencode-config.d.ts.map +1 -1
  21. package/dist/installer/opencode-config.js +1 -3
  22. package/dist/installer/opencode-config.js.map +1 -1
  23. package/dist/installer/upgrade.d.ts.map +1 -1
  24. package/dist/installer/upgrade.js +117 -46
  25. package/dist/installer/upgrade.js.map +1 -1
  26. package/dist/plugin/index.d.ts +2 -0
  27. package/dist/plugin/index.d.ts.map +1 -1
  28. package/dist/plugin/index.js +32 -0
  29. package/dist/plugin/index.js.map +1 -1
  30. package/docs/MIGRATION.md +45 -26
  31. package/docs/SECURITY.md +32 -14
  32. package/docs/TROUBLESHOOTING.md +31 -9
  33. package/package.json +3 -1
  34. package/resources/third-party/superpowers-v6.2.0/LICENSE +21 -0
  35. package/resources/third-party/superpowers-v6.2.0/PROVENANCE.md +21 -0
  36. package/resources/third-party/superpowers-v6.2.0/skills/android-orchestrator-brainstorming/SKILL.md +43 -0
  37. package/resources/third-party/superpowers-v6.2.0/skills/android-orchestrator-systematic-debugging/SKILL.md +288 -0
  38. package/resources/third-party/superpowers-v6.2.0/skills/android-orchestrator-systematic-debugging/references/condition-based-waiting-example.ts +158 -0
  39. package/resources/third-party/superpowers-v6.2.0/skills/android-orchestrator-systematic-debugging/references/condition-based-waiting.md +115 -0
  40. package/resources/third-party/superpowers-v6.2.0/skills/android-orchestrator-systematic-debugging/references/defense-in-depth.md +122 -0
  41. package/resources/third-party/superpowers-v6.2.0/skills/android-orchestrator-systematic-debugging/references/root-cause-tracing.md +169 -0
  42. package/resources/third-party/superpowers-v6.2.0/skills/android-orchestrator-systematic-debugging/scripts/find-polluter.sh +72 -0
  43. package/resources/third-party/superpowers-v6.2.0/skills/android-orchestrator-test-driven-development/SKILL.md +327 -0
  44. package/resources/third-party/superpowers-v6.2.0/skills/android-orchestrator-test-driven-development/references/writing-good-tests.md +197 -0
  45. package/resources/third-party/superpowers-v6.2.0/skills/android-orchestrator-verification-before-completion/SKILL.md +125 -0
  46. package/resources/third-party/superpowers-v6.2.0/skills/android-orchestrator-writing-plans/SKILL.md +50 -0
  47. package/templates/.opencode/agents/scheduled-coder.md +3 -4
  48. package/templates/.opencode/agents/scheduled-planner.md +5 -5
  49. package/templates/.opencode/agents/scheduled-reviewer.md +1 -2
  50. package/templates/.opencode/skills/scheduled-quality-coder/SKILL.md +7 -6
  51. package/templates/.opencode/skills/scheduled-quality-orchestrator/SKILL.md +2 -1
  52. package/templates/.opencode/skills/scheduled-quality-reviewer/SKILL.md +1 -1
  53. package/templates/README.md +6 -2
  54. package/templates/automation/config.json +6 -9
  55. package/templates/automation/config.schema.json +2 -11
  56. package/templates/automation/task-contract.schema.json +7 -7
  57. package/templates/automation/tasks/TASK-TEMPLATE.json.example +5 -5
  58. package/templates/scripts/automation/lib.sh +1 -3
  59. package/templates/scripts/automation/preflight.sh +0 -3
  60. package/templates/scripts/automation/tests/run-tests.sh +11 -14
  61. package/templates/scripts/automation/validate-contract.sh +7 -2
@@ -1,9 +1,9 @@
1
- export { AGENTS_MANAGED_BLOCK_BEGIN, AGENTS_MANAGED_BLOCK_END, AgentsConfigMergeError, mergeAgentsConfigText, planAgentsConfigMerge, } from "./agents-config.js";
1
+ export { AGENTS_MANAGED_BLOCK_BEGIN, AGENTS_MANAGED_BLOCK_END, AgentsConfigMergeError, mergeAgentsConfigForUpgradeText, mergeAgentsConfigText, planAgentsConfigMerge, } from "./agents-config.js";
2
2
  export { AdaptiveProjectTemplateError, DEFAULT_MODULE_SCOPE, isModuleScope, planAdaptiveProjectTemplates, } from "./adaptive-templates.js";
3
3
  export { detectAndroidProject, } from "./android-project.js";
4
4
  export { INITIAL_WORKTREE_ALLOWLIST_CONTENT, ProjectInitializationError, WORKTREE_ALLOWLIST_RELATIVE_PATH, formatProjectInitializationResult, planProjectInitialization, planProjectResourceInputs, runInitProcess, runProjectInitialization, verifyInitializedProject, } from "./init.js";
5
5
  export { INSTALLATION_BACKUPS_DIRECTORY, INSTALLATION_CONTROL_DIRECTORY, INSTALLATION_HISTORY_DIRECTORY, INSTALLATION_MANIFEST_RELATIVE_PATH, INSTALLATION_MANIFEST_SCHEMA_VERSION, InstallationManifestError, applyInstallationPlan, completeInstallationManifest, detectInstallationConflicts, planInstallationPreparation, prepareInstallationBackup, readInstallationManifest, rollbackPreparedInstallation, verifyInstallationIntegrity, } from "./install-manifest.js";
6
6
  export { UPGRADE_MARKER_RELATIVE_PATH, UPGRADE_RECOVERY_DIRECTORY, ProjectUpgradeError, applyProjectUpgrade, formatProjectUpgradeResult, planProjectUpgrade, runProjectUpgrade, } from "./upgrade.js";
7
7
  export { UNINSTALL_MARKER_RELATIVE_PATH, UNINSTALL_RECOVERY_DIRECTORY, ProjectUninstallError, applyProjectUninstall, formatProjectUninstallResult, planProjectUninstall, runProjectUninstall, } from "./uninstall.js";
8
- export { ORCHESTRATOR_PACKAGE_NAME, ORCHESTRATOR_PACKAGE_VERSION, ORCHESTRATOR_PLUGIN_REFERENCE, OPENCODE_CONFIG_SCHEMA_URL, REQUIRED_PLUGIN_REFERENCES, SUPERPOWERS_PLUGIN_REFERENCE, OpenCodeConfigMergeError, mergeOpenCodeConfigText, planOpenCodeConfigMerge, pluginPackageIdentity, } from "./opencode-config.js";
8
+ export { ORCHESTRATOR_PACKAGE_NAME, ORCHESTRATOR_PACKAGE_VERSION, ORCHESTRATOR_PLUGIN_REFERENCE, OPENCODE_CONFIG_SCHEMA_URL, REQUIRED_PLUGIN_REFERENCES, OpenCodeConfigMergeError, mergeOpenCodeConfigText, planOpenCodeConfigMerge, pluginPackageIdentity, } from "./opencode-config.js";
9
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/installer/index.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,GAGtB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,aAAa,EACb,4BAA4B,GAW7B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,oBAAoB,GAMrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,kCAAkC,EAClC,0BAA0B,EAC1B,gCAAgC,EAChC,iCAAiC,EACjC,yBAAyB,EACzB,yBAAyB,EACzB,cAAc,EACd,wBAAwB,EACxB,wBAAwB,GAYzB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,8BAA8B,EAC9B,8BAA8B,EAC9B,8BAA8B,EAC9B,mCAAmC,EACnC,oCAAoC,EACpC,yBAAyB,EACzB,qBAAqB,EACrB,4BAA4B,EAC5B,2BAA2B,EAC3B,2BAA2B,EAC3B,yBAAyB,EACzB,wBAAwB,EACxB,4BAA4B,EAC5B,2BAA2B,GAsB5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,mBAAmB,EACnB,mBAAmB,EACnB,0BAA0B,EAC1B,kBAAkB,EAClB,iBAAiB,GASlB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,8BAA8B,EAC9B,4BAA4B,EAC5B,qBAAqB,EACrB,qBAAqB,EACrB,4BAA4B,EAC5B,oBAAoB,EACpB,mBAAmB,GASpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,6BAA6B,EAC7B,0BAA0B,EAC1B,0BAA0B,EAC1B,4BAA4B,EAC5B,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,GAKtB,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/installer/index.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,sBAAsB,EACtB,+BAA+B,EAC/B,qBAAqB,EACrB,qBAAqB,GAItB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,aAAa,EACb,4BAA4B,GAW7B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,oBAAoB,GAMrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,kCAAkC,EAClC,0BAA0B,EAC1B,gCAAgC,EAChC,iCAAiC,EACjC,yBAAyB,EACzB,yBAAyB,EACzB,cAAc,EACd,wBAAwB,EACxB,wBAAwB,GAYzB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,8BAA8B,EAC9B,8BAA8B,EAC9B,8BAA8B,EAC9B,mCAAmC,EACnC,oCAAoC,EACpC,yBAAyB,EACzB,qBAAqB,EACrB,4BAA4B,EAC5B,2BAA2B,EAC3B,2BAA2B,EAC3B,yBAAyB,EACzB,wBAAwB,EACxB,4BAA4B,EAC5B,2BAA2B,GAsB5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,mBAAmB,EACnB,mBAAmB,EACnB,0BAA0B,EAC1B,kBAAkB,EAClB,iBAAiB,GASlB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,8BAA8B,EAC9B,4BAA4B,EAC5B,qBAAqB,EACrB,qBAAqB,EACrB,4BAA4B,EAC5B,oBAAoB,EACpB,mBAAmB,GASpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,6BAA6B,EAC7B,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,GAKtB,MAAM,sBAAsB,CAAC"}
@@ -1,9 +1,8 @@
1
1
  export declare const ORCHESTRATOR_PACKAGE_NAME = "@frankzhang2026/opencode-android-orchestrator";
2
- export declare const ORCHESTRATOR_PACKAGE_VERSION = "0.7.0";
3
- export declare const ORCHESTRATOR_PLUGIN_REFERENCE = "@frankzhang2026/opencode-android-orchestrator@0.7.0";
2
+ export declare const ORCHESTRATOR_PACKAGE_VERSION = "0.8.1";
3
+ export declare const ORCHESTRATOR_PLUGIN_REFERENCE = "@frankzhang2026/opencode-android-orchestrator@0.8.1";
4
4
  export declare const OPENCODE_CONFIG_SCHEMA_URL = "https://opencode.ai/config.json";
5
- export declare const SUPERPOWERS_PLUGIN_REFERENCE = "superpowers@git+https://github.com/obra/superpowers.git#v6.2.0";
6
- export declare const REQUIRED_PLUGIN_REFERENCES: readonly ["superpowers@git+https://github.com/obra/superpowers.git#v6.2.0", "@frankzhang2026/opencode-android-orchestrator@0.7.0"];
5
+ export declare const REQUIRED_PLUGIN_REFERENCES: readonly ["@frankzhang2026/opencode-android-orchestrator@0.8.1"];
7
6
  export type OpenCodeConfigMergeErrorCode = "AMBIGUOUS_CONFIG" | "CONFIG_NOT_FILE" | "CONFIG_READ_FAILED" | "CONFIG_SYMLINK" | "DUPLICATE_PLUGIN" | "DUPLICATE_PROPERTY" | "INVALID_JSONC" | "INVALID_PLUGIN_ENTRY" | "PLUGIN_NOT_ARRAY" | "PLUGIN_VERSION_CONFLICT" | "ROOT_NOT_OBJECT" | "TARGET_NOT_DIRECTORY";
8
7
  export declare class OpenCodeConfigMergeError extends Error {
9
8
  readonly code: OpenCodeConfigMergeErrorCode;
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-config.d.ts","sourceRoot":"","sources":["../../src/installer/opencode-config.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,yBAAyB,kDACW,CAAC;AAClD,eAAO,MAAM,4BAA4B,UAAU,CAAC;AACpD,eAAO,MAAM,6BAA6B,wDACsB,CAAC;AACjE,eAAO,MAAM,0BAA0B,oCACJ,CAAC;AACpC,eAAO,MAAM,4BAA4B,mEACyB,CAAC;AACnE,eAAO,MAAM,0BAA0B,oIAG7B,CAAC;AAEX,MAAM,MAAM,4BAA4B,GACpC,kBAAkB,GAClB,iBAAiB,GACjB,oBAAoB,GACpB,gBAAgB,GAChB,kBAAkB,GAClB,oBAAoB,GACpB,eAAe,GACf,sBAAsB,GACtB,kBAAkB,GAClB,yBAAyB,GACzB,iBAAiB,GACjB,sBAAsB,CAAC;AAE3B,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,QAAQ,CAAC,IAAI,EAAE,4BAA4B,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;gBAGlC,IAAI,EAAE,4BAA4B,EAClC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,SAAS,MAAM,EAAO;CAOlC;AAED,MAAM,WAAW,0BAA0B;IACzC,wBAAwB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9C;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,qBAAqB,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,uBAAwB,SAAQ,yBAAyB;IACxE,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;CACzB;AAmHD,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAU/D;AAyHD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,0BAA+B,GACvC,yBAAyB,CAsF3B;AAiDD,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,0BAA+B,GACvC,uBAAuB,CA+CzB"}
1
+ {"version":3,"file":"opencode-config.d.ts","sourceRoot":"","sources":["../../src/installer/opencode-config.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,yBAAyB,kDACW,CAAC;AAClD,eAAO,MAAM,4BAA4B,UAAU,CAAC;AACpD,eAAO,MAAM,6BAA6B,wDACsB,CAAC;AACjE,eAAO,MAAM,0BAA0B,oCACJ,CAAC;AACpC,eAAO,MAAM,0BAA0B,kEAE7B,CAAC;AAEX,MAAM,MAAM,4BAA4B,GACpC,kBAAkB,GAClB,iBAAiB,GACjB,oBAAoB,GACpB,gBAAgB,GAChB,kBAAkB,GAClB,oBAAoB,GACpB,eAAe,GACf,sBAAsB,GACtB,kBAAkB,GAClB,yBAAyB,GACzB,iBAAiB,GACjB,sBAAsB,CAAC;AAE3B,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,QAAQ,CAAC,IAAI,EAAE,4BAA4B,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;gBAGlC,IAAI,EAAE,4BAA4B,EAClC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,SAAS,MAAM,EAAO;CAOlC;AAED,MAAM,WAAW,0BAA0B;IACzC,wBAAwB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9C;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,qBAAqB,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,uBAAwB,SAAQ,yBAAyB;IACxE,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;CACzB;AAmHD,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAU/D;AAyHD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,0BAA+B,GACvC,yBAAyB,CAsF3B;AAiDD,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,0BAA+B,GACvC,uBAAuB,CA+CzB"}
@@ -2,12 +2,10 @@ import { lstatSync, readFileSync, statSync } from "node:fs";
2
2
  import { join, resolve } from "node:path";
3
3
  import { applyEdits, findNodeAtLocation, getNodeValue, modify, parseTree, printParseErrorCode, } from "jsonc-parser";
4
4
  export const ORCHESTRATOR_PACKAGE_NAME = "@frankzhang2026/opencode-android-orchestrator";
5
- export const ORCHESTRATOR_PACKAGE_VERSION = "0.7.0";
5
+ export const ORCHESTRATOR_PACKAGE_VERSION = "0.8.1";
6
6
  export const ORCHESTRATOR_PLUGIN_REFERENCE = `${ORCHESTRATOR_PACKAGE_NAME}@${ORCHESTRATOR_PACKAGE_VERSION}`;
7
7
  export const OPENCODE_CONFIG_SCHEMA_URL = "https://opencode.ai/config.json";
8
- export const SUPERPOWERS_PLUGIN_REFERENCE = "superpowers@git+https://github.com/obra/superpowers.git#v6.2.0";
9
8
  export const REQUIRED_PLUGIN_REFERENCES = [
10
- SUPERPOWERS_PLUGIN_REFERENCE,
11
9
  ORCHESTRATOR_PLUGIN_REFERENCE,
12
10
  ];
13
11
  export class OpenCodeConfigMergeError extends Error {
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-config.js","sourceRoot":"","sources":["../../src/installer/opencode-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opencode-config.js","sourceRoot":"","sources":["../../src/installer/opencode-config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../src/installer/upgrade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../src/installer/upgrade.ts"],"names":[],"mappings":"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"}
@@ -4,15 +4,17 @@ import { dirname, join, posix, resolve, } from "node:path";
4
4
  import { compareSemanticVersions, parseOpenCodeVersion, } from "../compatibility/versions.js";
5
5
  import { AUTOMATION_CONFIG_RELATIVE_PATH, matchesManifestModuloVerificationPolicy, } from "../config/verification-policy.js";
6
6
  import { formatDoctorReport, runDoctor, } from "../doctor/index.js";
7
- import { mergeAgentsConfigText } from "./agents-config.js";
7
+ import { mergeAgentsConfigForUpgradeText } from "./agents-config.js";
8
8
  import { detectAndroidProject } from "./android-project.js";
9
- import { INSTALLATION_BACKUPS_DIRECTORY, INSTALLATION_CONTROL_DIRECTORY, INSTALLATION_HISTORY_DIRECTORY, INSTALLATION_MANIFEST_RELATIVE_PATH, readInstallationManifest, verifyInstallationIntegrity, } from "./install-manifest.js";
9
+ import { INSTALLATION_BACKUPS_DIRECTORY, INSTALLATION_CONTROL_DIRECTORY, INSTALLATION_HISTORY_DIRECTORY, INSTALLATION_MANIFEST_RELATIVE_PATH, readInstallationManifest, } from "./install-manifest.js";
10
10
  import { planProjectResourceInputs, runInitProcess, verifyInitializedProject, } from "./init.js";
11
11
  import { ORCHESTRATOR_PACKAGE_NAME, ORCHESTRATOR_PACKAGE_VERSION, mergeOpenCodeConfigText, } from "./opencode-config.js";
12
12
  import { isModuleScope, } from "./adaptive-templates.js";
13
13
  export const UPGRADE_MARKER_RELATIVE_PATH = `${INSTALLATION_CONTROL_DIRECTORY}/upgrade.json`;
14
14
  export const UPGRADE_RECOVERY_DIRECTORY = `${INSTALLATION_CONTROL_DIRECTORY}/upgrades`;
15
15
  const UNINSTALL_MARKER_RELATIVE_PATH = `${INSTALLATION_CONTROL_DIRECTORY}/uninstall.json`;
16
+ const AGENTS_MERGE_SOURCE = "generated/agents-managed-block-merge";
17
+ const OPENCODE_CONFIG_MERGE_SOURCE = "generated/opencode-config-merge";
16
18
  export class ProjectUpgradeError extends Error {
17
19
  code;
18
20
  details;
@@ -170,6 +172,11 @@ function snapshotsMatch(left, right) {
170
172
  left.size === right.size &&
171
173
  left.mode === right.mode);
172
174
  }
175
+ function snapshotContentMatches(left, right) {
176
+ return (left.existed === right.existed &&
177
+ left.sha256 === right.sha256 &&
178
+ left.size === right.size);
179
+ }
173
180
  function snapshotMatchesDesired(snapshot, file) {
174
181
  return (snapshot.existed &&
175
182
  snapshot.sha256 === file.sha256 &&
@@ -190,16 +197,15 @@ function originalSnapshot(targetDirectory, file) {
190
197
  throw new ProjectUpgradeError("INSTALLATION_INVALID", `Original backup metadata is incomplete: ${file.path}`);
191
198
  }
192
199
  const snapshot = snapshotFile(targetDirectory, file.previous.backupPath, true);
193
- if (!snapshotsMatch(snapshot, file.previous)) {
194
- throw new ProjectUpgradeError("INSTALLATION_INVALID", `Original backup failed integrity verification: ${file.path}`);
200
+ if (!snapshotContentMatches(snapshot, file.previous)) {
201
+ throw new ProjectUpgradeError("INSTALLATION_INVALID", `Original backup failed content integrity verification: ${file.path}`);
195
202
  }
196
203
  return snapshot;
197
204
  }
198
205
  function manifestFileMatchesSnapshot(file, snapshot) {
199
206
  return (snapshot.existed &&
200
207
  snapshot.sha256 === file.sha256 &&
201
- snapshot.size === file.size &&
202
- snapshot.mode === file.mode);
208
+ snapshot.size === file.size);
203
209
  }
204
210
  function managedFileAcceptsSnapshot(file, snapshot) {
205
211
  if (manifestFileMatchesSnapshot(file, snapshot)) {
@@ -208,7 +214,6 @@ function managedFileAcceptsSnapshot(file, snapshot) {
208
214
  return (file.path === AUTOMATION_CONFIG_RELATIVE_PATH &&
209
215
  snapshot.existed &&
210
216
  snapshot.content !== null &&
211
- snapshot.mode === file.mode &&
212
217
  matchesManifestModuloVerificationPolicy(snapshot.content, {
213
218
  sha256: file.sha256,
214
219
  size: file.size,
@@ -220,9 +225,6 @@ function readStableManifest(targetDirectory) {
220
225
  manifestSnapshotBefore.content === null) {
221
226
  throw new ProjectUpgradeError("INSTALLATION_INVALID", "An installed manifest is required before upgrade.", ["Run init for a project that has never installed the orchestrator."]);
222
227
  }
223
- if (manifestSnapshotBefore.mode !== 0o600) {
224
- throw new ProjectUpgradeError("INSTALLATION_INVALID", "The active installation manifest must have mode 0600.");
225
- }
226
228
  const content = Buffer.from(manifestSnapshotBefore.content).toString("utf8");
227
229
  const manifest = readInstallationManifest(targetDirectory);
228
230
  const manifestSnapshotAfter = snapshotFile(targetDirectory, INSTALLATION_MANIFEST_RELATIVE_PATH, true);
@@ -266,18 +268,47 @@ function assertInstalledIntegrity(targetDirectory, manifest, expectedManifestSha
266
268
  if (manifest.package.name !== ORCHESTRATOR_PACKAGE_NAME) {
267
269
  throw new ProjectUpgradeError("PACKAGE_MISMATCH", "The installed manifest belongs to a different package.", [manifest.package.name, ORCHESTRATOR_PACKAGE_NAME]);
268
270
  }
269
- const integrity = verifyInstallationIntegrity(targetDirectory);
271
+ const failures = [];
272
+ for (const file of manifest.files) {
273
+ let installed = "match";
274
+ try {
275
+ const snapshot = snapshotFile(targetDirectory, file.path);
276
+ const accepted = file.source === AGENTS_MERGE_SOURCE
277
+ ? snapshot.existed && snapshot.content !== null
278
+ : managedFileAcceptsSnapshot(file, snapshot);
279
+ installed = !snapshot.existed
280
+ ? "missing"
281
+ : accepted
282
+ ? "match"
283
+ : "mismatch";
284
+ }
285
+ catch {
286
+ installed = "mismatch";
287
+ }
288
+ let backup = "not-required";
289
+ if (file.previous.existed && file.previous.backupPath !== null) {
290
+ try {
291
+ const snapshot = snapshotFile(targetDirectory, file.previous.backupPath, true);
292
+ backup = !snapshot.existed
293
+ ? "missing"
294
+ : snapshotContentMatches(snapshot, file.previous)
295
+ ? "match"
296
+ : "mismatch";
297
+ }
298
+ catch {
299
+ backup = "mismatch";
300
+ }
301
+ }
302
+ if (installed !== "match" || (backup !== "match" && backup !== "not-required")) {
303
+ failures.push(`${file.path}: installed=${installed}, backup=${backup}`);
304
+ }
305
+ }
270
306
  const changedManifest = snapshotFile(targetDirectory, INSTALLATION_MANIFEST_RELATIVE_PATH, true);
271
307
  if (changedManifest.sha256 !== expectedManifestSha256) {
272
308
  throw new ProjectUpgradeError("PLAN_STALE", "The installation manifest changed during integrity verification.");
273
309
  }
274
- if (!integrity.ok) {
275
- throw new ProjectUpgradeError("INSTALLED_FILES_MODIFIED", "Upgrade refused because managed files or original backups no longer match the installed manifest.", integrity.checks
276
- .filter((check) => check.installed === "missing" ||
277
- check.installed === "mismatch" ||
278
- check.backup === "missing" ||
279
- check.backup === "mismatch")
280
- .map((check) => `${check.path}: installed=${check.installed}, backup=${check.backup}`));
310
+ if (failures.length > 0) {
311
+ throw new ProjectUpgradeError("INSTALLED_FILES_MODIFIED", "Upgrade refused because managed content or original backup content no longer matches the installed manifest.", failures);
281
312
  }
282
313
  }
283
314
  function uniqueManifestFileBySource(manifest, source) {
@@ -344,25 +375,62 @@ function configuredAdaptiveOptions(targetDirectory, manifest) {
344
375
  }
345
376
  return configured;
346
377
  }
347
- function desiredMergeInputs(targetDirectory, manifest) {
348
- const agents = uniqueManifestFileBySource(manifest, "generated/agents-managed-block-merge");
349
- const openCode = uniqueManifestFileBySource(manifest, "generated/opencode-config-merge");
350
- return [
351
- {
352
- path: agents.path,
353
- source: agents.source,
354
- strategy: "merge",
355
- content: mergeAgentsConfigText(textFromOriginal(targetDirectory, agents, "")),
356
- mode: agents.mode,
357
- },
358
- {
359
- path: openCode.path,
360
- source: openCode.source,
361
- strategy: "merge",
362
- content: mergeOpenCodeConfigText(textFromOriginal(targetDirectory, openCode, "{}\n")).content,
363
- mode: openCode.mode,
364
- },
365
- ];
378
+ function snapshotFromOptionalText(content, mode) {
379
+ if (content === null) {
380
+ return {
381
+ existed: false,
382
+ content: null,
383
+ sha256: null,
384
+ size: null,
385
+ mode: null,
386
+ };
387
+ }
388
+ const value = bytes(content);
389
+ return {
390
+ existed: true,
391
+ content: value,
392
+ sha256: sha256(value),
393
+ size: value.byteLength,
394
+ mode,
395
+ };
396
+ }
397
+ function desiredMergePlan(targetDirectory, manifest) {
398
+ const agents = uniqueManifestFileBySource(manifest, AGENTS_MERGE_SOURCE);
399
+ const openCode = uniqueManifestFileBySource(manifest, OPENCODE_CONFIG_MERGE_SOURCE);
400
+ const currentAgents = snapshotFile(targetDirectory, agents.path);
401
+ if (!currentAgents.existed ||
402
+ currentAgents.content === null ||
403
+ currentAgents.mode === null) {
404
+ throw new ProjectUpgradeError("INSTALLED_FILES_MODIFIED", "AGENTS.md must remain a readable regular file before upgrade.");
405
+ }
406
+ const originalAgents = originalSnapshot(targetDirectory, agents);
407
+ const mergedAgents = mergeAgentsConfigForUpgradeText(Buffer.from(currentAgents.content).toString("utf8"), originalAgents.content === null
408
+ ? null
409
+ : Buffer.from(originalAgents.content).toString("utf8"));
410
+ return {
411
+ inputs: [
412
+ {
413
+ path: agents.path,
414
+ source: agents.source,
415
+ strategy: "merge",
416
+ content: mergedAgents.content,
417
+ mode: currentAgents.mode,
418
+ },
419
+ {
420
+ path: openCode.path,
421
+ source: openCode.source,
422
+ strategy: "merge",
423
+ content: mergeOpenCodeConfigText(textFromOriginal(targetDirectory, openCode, "{}\n")).content,
424
+ mode: openCode.mode,
425
+ },
426
+ ],
427
+ originalOverrides: new Map([
428
+ [
429
+ agents.path,
430
+ snapshotFromOptionalText(mergedAgents.previousContent, currentAgents.mode),
431
+ ],
432
+ ]),
433
+ };
366
434
  }
367
435
  function previousMetadata(upgradeId, path, original) {
368
436
  return original.existed
@@ -381,7 +449,7 @@ function previousMetadata(upgradeId, path, original) {
381
449
  backupPath: null,
382
450
  };
383
451
  }
384
- function planDesiredFiles(targetDirectory, currentManifest, inputs, upgradeId) {
452
+ function planDesiredFiles(targetDirectory, currentManifest, inputs, upgradeId, originalOverrides = new Map()) {
385
453
  const currentByPath = new Map(currentManifest.files.map((file) => [file.path, file]));
386
454
  const seen = new Set();
387
455
  return inputs
@@ -394,7 +462,9 @@ function planDesiredFiles(targetDirectory, currentManifest, inputs, upgradeId) {
394
462
  const content = bytes(input.content);
395
463
  const before = snapshotFile(targetDirectory, path);
396
464
  const current = currentByPath.get(path);
397
- if (current !== undefined && !managedFileAcceptsSnapshot(current, before)) {
465
+ if (current !== undefined &&
466
+ current.source !== AGENTS_MERGE_SOURCE &&
467
+ !managedFileAcceptsSnapshot(current, before)) {
398
468
  throw new ProjectUpgradeError("INSTALLED_FILES_MODIFIED", `Managed file changed before upgrade planning: ${path}`);
399
469
  }
400
470
  const mode = input.mode ?? current?.mode ?? before.mode ?? 0o644;
@@ -410,9 +480,10 @@ function planDesiredFiles(targetDirectory, currentManifest, inputs, upgradeId) {
410
480
  before.mode === mode)) {
411
481
  throw new ProjectUpgradeError("UPGRADE_CONFLICT", `A newly managed path already contains different user content: ${path}`);
412
482
  }
413
- const original = current === undefined
414
- ? before
415
- : originalSnapshot(targetDirectory, current);
483
+ const original = originalOverrides.get(path) ??
484
+ (current === undefined
485
+ ? before
486
+ : originalSnapshot(targetDirectory, current));
416
487
  return {
417
488
  path,
418
489
  source: input.source,
@@ -543,10 +614,11 @@ export function planProjectUpgrade(directory, options = {}) {
543
614
  const preparedAt = validateTimestamp(options.preparedAt ?? new Date().toISOString());
544
615
  const installedAt = validateTimestamp(options.installedAt ?? preparedAt);
545
616
  const upgradeId = validateUpgradeId(options.upgradeId ?? defaultUpgradeId(preparedAt));
617
+ const merges = desiredMergePlan(requestedTarget, stable.manifest);
546
618
  const desiredFiles = planDesiredFiles(requestedTarget, stable.manifest, [
547
619
  ...resources.inputs,
548
- ...desiredMergeInputs(requestedTarget, stable.manifest),
549
- ], upgradeId);
620
+ ...merges.inputs,
621
+ ], upgradeId, merges.originalOverrides);
550
622
  const removedFiles = planRemovedFiles(requestedTarget, stable.manifest, desiredFiles);
551
623
  const manifest = desiredManifest(upgradeId, preparedAt, installedAt, desiredFiles);
552
624
  const paths = upgradeControlPaths(requestedTarget, upgradeId);
@@ -872,8 +944,7 @@ function prepareUpgrade(plan) {
872
944
  function assertManifestUnchanged(plan) {
873
945
  const current = snapshotFile(plan.targetDirectory, INSTALLATION_MANIFEST_RELATIVE_PATH, true);
874
946
  if (!current.existed ||
875
- current.sha256 !== plan.currentManifestSha256 ||
876
- current.mode !== 0o600) {
947
+ current.sha256 !== plan.currentManifestSha256) {
877
948
  throw new ProjectUpgradeError("PLAN_STALE", "The active installation manifest changed during upgrade.");
878
949
  }
879
950
  }