codex-orchestrator 2.0.2 → 2.0.4

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 (221) hide show
  1. package/CHANGELOG.md +44 -426
  2. package/README.md +135 -34
  3. package/dist/src/index.d.ts +11 -1
  4. package/dist/src/index.d.ts.map +1 -1
  5. package/dist/src/index.js +5 -0
  6. package/dist/src/index.js.map +1 -1
  7. package/dist/src/v2/acceptance-proof.d.ts +3 -0
  8. package/dist/src/v2/acceptance-proof.d.ts.map +1 -1
  9. package/dist/src/v2/acceptance-proof.js +2 -8
  10. package/dist/src/v2/acceptance-proof.js.map +1 -1
  11. package/dist/src/v2/adapters/gh-issue-adapter.d.ts +5 -3
  12. package/dist/src/v2/adapters/gh-issue-adapter.d.ts.map +1 -1
  13. package/dist/src/v2/adapters/gh-issue-adapter.js +67 -12
  14. package/dist/src/v2/adapters/gh-issue-adapter.js.map +1 -1
  15. package/dist/src/v2/adapters/issues.d.ts +16 -2
  16. package/dist/src/v2/adapters/issues.d.ts.map +1 -1
  17. package/dist/src/v2/adapters/issues.js +15 -5
  18. package/dist/src/v2/adapters/issues.js.map +1 -1
  19. package/dist/src/v2/adapters/mission-coordinator-lock.d.ts +1 -0
  20. package/dist/src/v2/adapters/mission-coordinator-lock.d.ts.map +1 -1
  21. package/dist/src/v2/adapters/mission-coordinator-lock.js +5 -1
  22. package/dist/src/v2/adapters/mission-coordinator-lock.js.map +1 -1
  23. package/dist/src/v2/cli-contract.d.ts +3 -3
  24. package/dist/src/v2/cli-contract.d.ts.map +1 -1
  25. package/dist/src/v2/cli-contract.js +9 -1
  26. package/dist/src/v2/cli-contract.js.map +1 -1
  27. package/dist/src/v2/cli.d.ts +24 -0
  28. package/dist/src/v2/cli.d.ts.map +1 -0
  29. package/dist/src/v2/{candidate-cli.js → cli.js} +30 -26
  30. package/dist/src/v2/cli.js.map +1 -0
  31. package/dist/src/v2/code-review-report.d.ts +66 -0
  32. package/dist/src/v2/code-review-report.d.ts.map +1 -0
  33. package/dist/src/v2/code-review-report.js +259 -0
  34. package/dist/src/v2/code-review-report.js.map +1 -0
  35. package/dist/src/v2/codex-process.d.ts +8 -1
  36. package/dist/src/v2/codex-process.d.ts.map +1 -1
  37. package/dist/src/v2/codex-process.js +22 -0
  38. package/dist/src/v2/codex-process.js.map +1 -1
  39. package/dist/src/v2/config.d.ts +4 -3
  40. package/dist/src/v2/config.d.ts.map +1 -1
  41. package/dist/src/v2/config.js +8 -3
  42. package/dist/src/v2/config.js.map +1 -1
  43. package/dist/src/v2/contained-report-operation.d.ts +100 -0
  44. package/dist/src/v2/contained-report-operation.d.ts.map +1 -0
  45. package/dist/src/v2/contained-report-operation.js +200 -0
  46. package/dist/src/v2/contained-report-operation.js.map +1 -0
  47. package/dist/src/v2/containment.d.ts +10 -0
  48. package/dist/src/v2/containment.d.ts.map +1 -1
  49. package/dist/src/v2/containment.js +49 -1
  50. package/dist/src/v2/containment.js.map +1 -1
  51. package/dist/src/v2/direct-delivery.d.ts +96 -0
  52. package/dist/src/v2/direct-delivery.d.ts.map +1 -0
  53. package/dist/src/v2/direct-delivery.js +482 -0
  54. package/dist/src/v2/direct-delivery.js.map +1 -0
  55. package/dist/src/v2/immutable-workflow-publisher.d.ts +40 -0
  56. package/dist/src/v2/immutable-workflow-publisher.d.ts.map +1 -0
  57. package/dist/src/v2/immutable-workflow-publisher.js +218 -0
  58. package/dist/src/v2/immutable-workflow-publisher.js.map +1 -0
  59. package/dist/src/v2/implementation-reviewer.d.ts +81 -0
  60. package/dist/src/v2/implementation-reviewer.d.ts.map +1 -0
  61. package/dist/src/v2/implementation-reviewer.js +157 -0
  62. package/dist/src/v2/implementation-reviewer.js.map +1 -0
  63. package/dist/src/v2/owner-control-lock.d.ts +41 -0
  64. package/dist/src/v2/owner-control-lock.d.ts.map +1 -0
  65. package/dist/src/v2/owner-control-lock.js +174 -0
  66. package/dist/src/v2/owner-control-lock.js.map +1 -0
  67. package/dist/src/v2/proof-report.d.ts.map +1 -1
  68. package/dist/src/v2/proof-report.js +55 -29
  69. package/dist/src/v2/proof-report.js.map +1 -1
  70. package/dist/src/v2/route-continuations.d.ts +32 -0
  71. package/dist/src/v2/route-continuations.d.ts.map +1 -0
  72. package/dist/src/v2/route-continuations.js +2 -0
  73. package/dist/src/v2/route-continuations.js.map +1 -0
  74. package/dist/src/v2/route-coordinator.d.ts +77 -0
  75. package/dist/src/v2/route-coordinator.d.ts.map +1 -0
  76. package/dist/src/v2/route-coordinator.js +370 -0
  77. package/dist/src/v2/route-coordinator.js.map +1 -0
  78. package/dist/src/v2/route-decision.d.ts +129 -0
  79. package/dist/src/v2/route-decision.d.ts.map +1 -0
  80. package/dist/src/v2/route-decision.js +400 -0
  81. package/dist/src/v2/route-decision.js.map +1 -0
  82. package/dist/src/v2/run-issue.d.ts +64 -6
  83. package/dist/src/v2/run-issue.d.ts.map +1 -1
  84. package/dist/src/v2/run-issue.js +962 -92
  85. package/dist/src/v2/run-issue.js.map +1 -1
  86. package/dist/src/v2/run-store.d.ts +25 -1
  87. package/dist/src/v2/run-store.d.ts.map +1 -1
  88. package/dist/src/v2/run-store.js +129 -4
  89. package/dist/src/v2/run-store.js.map +1 -1
  90. package/dist/src/v2/runtime-assets.d.ts +15 -13
  91. package/dist/src/v2/runtime-assets.d.ts.map +1 -1
  92. package/dist/src/v2/runtime-assets.js +263 -416
  93. package/dist/src/v2/runtime-assets.js.map +1 -1
  94. package/dist/src/v2/runtime.d.ts +17 -9
  95. package/dist/src/v2/runtime.d.ts.map +1 -1
  96. package/dist/src/v2/runtime.js +564 -64
  97. package/dist/src/v2/runtime.js.map +1 -1
  98. package/dist/src/v2/setup-cli.d.ts.map +1 -1
  99. package/dist/src/v2/setup-cli.js +4 -10
  100. package/dist/src/v2/setup-cli.js.map +1 -1
  101. package/dist/src/v2/setup-runtime.d.ts.map +1 -1
  102. package/dist/src/v2/setup-runtime.js +19 -131
  103. package/dist/src/v2/setup-runtime.js.map +1 -1
  104. package/dist/src/v2/setup-store.d.ts +0 -5
  105. package/dist/src/v2/setup-store.d.ts.map +1 -1
  106. package/dist/src/v2/setup-store.js +3 -106
  107. package/dist/src/v2/setup-store.js.map +1 -1
  108. package/dist/src/v2/setup.d.ts +6 -43
  109. package/dist/src/v2/setup.d.ts.map +1 -1
  110. package/dist/src/v2/setup.js +13 -192
  111. package/dist/src/v2/setup.js.map +1 -1
  112. package/dist/src/v2/spec-coordinator.d.ts +85 -0
  113. package/dist/src/v2/spec-coordinator.d.ts.map +1 -0
  114. package/dist/src/v2/spec-coordinator.js +88 -0
  115. package/dist/src/v2/spec-coordinator.js.map +1 -0
  116. package/dist/src/v2/spec-delivery.d.ts +143 -0
  117. package/dist/src/v2/spec-delivery.d.ts.map +1 -0
  118. package/dist/src/v2/spec-delivery.js +401 -0
  119. package/dist/src/v2/spec-delivery.js.map +1 -0
  120. package/dist/src/v2/triage-route.d.ts +68 -0
  121. package/dist/src/v2/triage-route.d.ts.map +1 -0
  122. package/dist/src/v2/triage-route.js +223 -0
  123. package/dist/src/v2/triage-route.js.map +1 -0
  124. package/dist/src/v2/waiting-human-coordinator.d.ts +49 -0
  125. package/dist/src/v2/waiting-human-coordinator.d.ts.map +1 -0
  126. package/dist/src/v2/waiting-human-coordinator.js +509 -0
  127. package/dist/src/v2/waiting-human-coordinator.js.map +1 -0
  128. package/dist/src/v2/waiting-human.d.ts +143 -0
  129. package/dist/src/v2/waiting-human.d.ts.map +1 -0
  130. package/dist/src/v2/waiting-human.js +408 -0
  131. package/dist/src/v2/waiting-human.js.map +1 -0
  132. package/dist/src/v2/workflow-assets.d.ts +98 -0
  133. package/dist/src/v2/workflow-assets.d.ts.map +1 -0
  134. package/dist/src/v2/workflow-assets.js +646 -0
  135. package/dist/src/v2/workflow-assets.js.map +1 -0
  136. package/docs/deep-dive.md +275 -52
  137. package/internal-workflow/docs/agents/bug-workflow-routing.md +24 -0
  138. package/internal-workflow/docs/agents/bugfix-quality-gate.md +11 -0
  139. package/internal-workflow/docs/agents/coding-skill-routing.md +123 -0
  140. package/internal-workflow/docs/agents/confidence-rubric.md +65 -0
  141. package/internal-workflow/docs/agents/contract-test-ledger.md +60 -0
  142. package/internal-workflow/docs/agents/review-gates.md +42 -0
  143. package/internal-workflow/docs/agents/review-protocol.md +98 -0
  144. package/internal-workflow/docs/agents/tool-usage.md +88 -0
  145. package/internal-workflow/evals/coding-skill-evals.json +66 -0
  146. package/internal-workflow/manifest.json +1 -0
  147. package/internal-workflow/operations/acceptance-proof/SKILL.md +9 -0
  148. package/internal-workflow/operations/ambiguity-review/SKILL.md +5 -0
  149. package/internal-workflow/operations/code-review/SKILL.md +23 -0
  150. package/internal-workflow/operations/implementation/SKILL.md +24 -0
  151. package/internal-workflow/operations/spec-author/SKILL.md +12 -0
  152. package/internal-workflow/operations/spec-review/SKILL.md +12 -0
  153. package/internal-workflow/operations/triage/SKILL.md +12 -0
  154. package/internal-workflow/profiles/analyst_deep.toml +9 -0
  155. package/internal-workflow/profiles/implementer_standard.toml +9 -0
  156. package/internal-workflow/profiles/proof_agent.toml +8 -0
  157. package/internal-workflow/profiles/reviewer_deep.toml +9 -0
  158. package/internal-workflow/profiles/reviewer_standard.toml +9 -0
  159. package/internal-workflow/schemas/ambiguity-review-v1.json +1 -0
  160. package/internal-workflow/schemas/code-review-v1.json +1 -0
  161. package/internal-workflow/schemas/implementation-report-v1.json +1 -0
  162. package/internal-workflow/schemas/proof-report-v1.json +1 -0
  163. package/internal-workflow/schemas/spec-author-v1.json +1 -0
  164. package/internal-workflow/schemas/spec-review-v1.json +30 -0
  165. package/internal-workflow/schemas/triage-route-v1.json +1 -0
  166. package/internal-workflow/skills/acceptance-proof/agents/openai.yaml +6 -0
  167. package/{internal-skills → internal-workflow/skills}/agent-auto/SKILL.md +6 -1
  168. package/internal-workflow/skills/agent-auto/agents/openai.yaml +6 -0
  169. package/internal-workflow/skills/code-debugger/SKILL.md +122 -0
  170. package/internal-workflow/skills/code-debugger/agents/openai.yaml +7 -0
  171. package/internal-workflow/skills/code-review/SKILL.md +279 -0
  172. package/internal-workflow/skills/code-review/agents/openai.yaml +4 -0
  173. package/internal-workflow/skills/code-review/references/bug-classes.md +56 -0
  174. package/internal-workflow/skills/code-review/references/cleanup-lens.md +52 -0
  175. package/internal-workflow/skills/code-review/references/framework-lenses.md +34 -0
  176. package/internal-workflow/skills/code-review/references/targeted-recipes.md +49 -0
  177. package/internal-workflow/skills/diagnosing-bugs/SKILL.md +138 -0
  178. package/internal-workflow/skills/diagnosing-bugs/agents/openai.yaml +6 -0
  179. package/internal-workflow/skills/diagnosing-bugs/scripts/hitl-loop.template.sh +41 -0
  180. package/internal-workflow/skills/implementation-spec-maker/SKILL.md +102 -0
  181. package/internal-workflow/skills/implementation-spec-maker/agents/openai.yaml +6 -0
  182. package/internal-workflow/skills/implementation-spec-maker/references/source-modes.md +31 -0
  183. package/internal-workflow/skills/implementation-spec-maker/references/spec-template.md +146 -0
  184. package/internal-workflow/skills/implementation-spec-review/SKILL.md +115 -0
  185. package/internal-workflow/skills/implementation-spec-review/agents/openai.yaml +6 -0
  186. package/internal-workflow/skills/implementation-spec-review/evals/evals.json +24 -0
  187. package/internal-workflow/skills/implementation-spec-review/references/review-loop.md +93 -0
  188. package/internal-workflow/skills/small-task-implementer/SKILL.md +104 -0
  189. package/internal-workflow/skills/small-task-implementer/agents/openai.yaml +6 -0
  190. package/internal-workflow/skills/spec-implementer/SKILL.md +126 -0
  191. package/internal-workflow/skills/spec-implementer/agents/openai.yaml +6 -0
  192. package/internal-workflow/skills/spec-implementer/evals/evals.json +30 -0
  193. package/internal-workflow/skills/spec-implementer/references/review-loop.md +94 -0
  194. package/internal-workflow/skills/tdd/SKILL.md +72 -0
  195. package/internal-workflow/skills/tdd/agents/openai.yaml +6 -0
  196. package/internal-workflow/skills/tdd/interface-design.md +31 -0
  197. package/internal-workflow/skills/tdd/mocking.md +59 -0
  198. package/internal-workflow/skills/tdd/refactoring.md +10 -0
  199. package/internal-workflow/skills/tdd/tests.md +77 -0
  200. package/internal-workflow/skills/triage/AGENT-BRIEF.md +192 -0
  201. package/internal-workflow/skills/triage/OUT-OF-SCOPE.md +101 -0
  202. package/internal-workflow/skills/triage/SKILL.md +134 -0
  203. package/internal-workflow/skills/triage/agents/openai.yaml +6 -0
  204. package/package.json +14 -8
  205. package/dist/src/v2/adapters/target-activity-fence.d.ts +0 -23
  206. package/dist/src/v2/adapters/target-activity-fence.d.ts.map +0 -1
  207. package/dist/src/v2/adapters/target-activity-fence.js +0 -249
  208. package/dist/src/v2/adapters/target-activity-fence.js.map +0 -1
  209. package/dist/src/v2/candidate-cli.d.ts +0 -22
  210. package/dist/src/v2/candidate-cli.d.ts.map +0 -1
  211. package/dist/src/v2/candidate-cli.js.map +0 -1
  212. package/dist/src/v2/legacy-cutover.d.ts +0 -52
  213. package/dist/src/v2/legacy-cutover.d.ts.map +0 -1
  214. package/dist/src/v2/legacy-cutover.js +0 -87
  215. package/dist/src/v2/legacy-cutover.js.map +0 -1
  216. /package/{internal-skills → internal-workflow/skills}/acceptance-proof/SKILL.md +0 -0
  217. /package/{internal-skills → internal-workflow/skills}/acceptance-proof/references/android.md +0 -0
  218. /package/{internal-skills → internal-workflow/skills}/acceptance-proof/references/browser.md +0 -0
  219. /package/{internal-skills → internal-workflow/skills}/acceptance-proof/references/ios.md +0 -0
  220. /package/{internal-skills → internal-workflow/skills}/acceptance-proof/tools/android-lease.mjs +0 -0
  221. /package/{internal-skills → internal-workflow/skills}/acceptance-proof/tools/ios-lease.mjs +0 -0
@@ -1,7 +1,7 @@
1
- import { createHash, randomUUID } from 'node:crypto';
1
+ import { randomUUID } from 'node:crypto';
2
2
  import { constants } from 'node:fs';
3
- import { lstat, mkdir, open, readFile, readdir, rename, rm } from 'node:fs/promises';
4
- import { basename, dirname, join, relative, resolve } from 'node:path';
3
+ import { lstat, mkdir, open, readFile, rename, rm } from 'node:fs/promises';
4
+ import { basename, dirname, join, resolve } from 'node:path';
5
5
  export class SetupStore {
6
6
  options;
7
7
  constructor(options = {}) {
@@ -22,109 +22,6 @@ export class SetupStore {
22
22
  await assertDirectDirectoryPath(dirname(path));
23
23
  return readFile(path);
24
24
  }
25
- async isAbsentOrEmptyDirectory(path) {
26
- let info;
27
- try {
28
- info = await lstat(path);
29
- }
30
- catch (error) {
31
- if (isCode(error, 'ENOENT'))
32
- return true;
33
- throw error;
34
- }
35
- if (!info.isDirectory() || info.isSymbolicLink())
36
- return false;
37
- await assertDirectDirectoryPath(dirname(path));
38
- return (await readdir(path)).length === 0;
39
- }
40
- async listJsonFiles(path) {
41
- let info;
42
- try {
43
- info = await lstat(path);
44
- }
45
- catch (error) {
46
- if (isCode(error, 'ENOENT'))
47
- return [];
48
- throw error;
49
- }
50
- if (!info.isDirectory() || info.isSymbolicLink())
51
- throw new Error('setup manifest path is not a direct directory');
52
- await assertDirectDirectoryPath(dirname(path));
53
- let entries;
54
- try {
55
- entries = await readdir(path, { withFileTypes: true });
56
- }
57
- catch (error) {
58
- if (isCode(error, 'ENOENT'))
59
- return [];
60
- throw error;
61
- }
62
- return entries.filter((entry) => entry.isFile() && !entry.isSymbolicLink() && entry.name.endsWith('.json'))
63
- .map((entry) => join(path, entry.name)).sort();
64
- }
65
- async hashPath(path) {
66
- const top = await lstat(path).catch((error) => isCode(error, 'ENOENT') ? undefined : Promise.reject(error));
67
- if (top)
68
- await assertDirectDirectoryPath(dirname(path));
69
- const hash = createHash('sha256');
70
- const walk = async (current, base) => {
71
- let info;
72
- try {
73
- info = await lstat(current);
74
- }
75
- catch (error) {
76
- if (isCode(error, 'ENOENT')) {
77
- hash.update('absent\0');
78
- return;
79
- }
80
- throw error;
81
- }
82
- if (info.isSymbolicLink())
83
- throw new Error('setup source contains a symbolic link');
84
- const name = relative(base, current);
85
- if (info.isFile()) {
86
- if (info.size > 16 * 1024 * 1024)
87
- throw new Error('setup source file exceeds bound');
88
- hash.update(`file\0${name}\0`);
89
- hash.update(await readFile(current));
90
- return;
91
- }
92
- if (!info.isDirectory())
93
- throw new Error('setup source contains an unsupported entry');
94
- hash.update(`dir\0${name}\0`);
95
- const entries = (await readdir(current)).sort();
96
- if (entries.length > 4096)
97
- throw new Error('setup source directory exceeds entry bound');
98
- for (const entry of entries)
99
- await walk(join(current, entry), base);
100
- };
101
- await walk(path, path);
102
- return hash.digest('hex');
103
- }
104
- async copyTree(source, destination) {
105
- const info = await lstat(source);
106
- if (info.isSymbolicLink())
107
- throw new Error('setup source is a symbolic link');
108
- if (info.isFile()) {
109
- await this.writeAtomic(destination, await readFile(source), 0o600);
110
- return;
111
- }
112
- if (!info.isDirectory())
113
- throw new Error('setup source is unsupported');
114
- await ensureDirectDirectoryPath(destination);
115
- for (const entry of (await readdir(source)).sort())
116
- await this.copyTree(join(source, entry), join(destination, entry));
117
- await syncDirectory(destination);
118
- }
119
- async copyTreeIfPresent(source, destination) {
120
- try {
121
- await this.copyTree(source, destination);
122
- }
123
- catch (error) {
124
- if (!isCode(error, 'ENOENT'))
125
- throw error;
126
- }
127
- }
128
25
  async writeAtomic(path, content, mode = 0o600) {
129
26
  const parent = dirname(path);
130
27
  await ensureDirectDirectoryPath(parent);
@@ -1 +1 @@
1
- {"version":3,"file":"setup-store.js","sourceRoot":"","sources":["../../../src/v2/setup-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup-store.js","sourceRoot":"","sources":["../../../src/v2/setup-store.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { type AgentAutoConfigV1 } from './config.js';
1
+ import { type AgentAutoConfig } from './config.js';
2
2
  import { SetupStore } from './setup-store.js';
3
- export type SetupOperation = 'configure' | 'prepare-labels' | 'fresh' | 'doctor' | 'status';
3
+ export type SetupOperation = 'configure' | 'prepare-labels' | 'doctor' | 'status';
4
4
  export interface SetupIntent {
5
5
  targetRoot: string;
6
6
  operation: SetupOperation;
@@ -19,12 +19,6 @@ export type SetupAction = {
19
19
  } | {
20
20
  kind: 'create-label';
21
21
  name: string;
22
- } | {
23
- kind: 'backup-legacy';
24
- path: string;
25
- } | {
26
- kind: 'commit-fresh';
27
- path: '.codex-orchestrator/config.json';
28
22
  };
29
23
  export interface SetupDiagnostic {
30
24
  code: string;
@@ -36,7 +30,7 @@ export interface SetupFailure {
36
30
  summary: string;
37
31
  }
38
32
  export type SetupOutcome = {
39
- status: 'created' | 'unchanged' | 'labels-prepared' | 'fresh-reset';
33
+ status: 'created' | 'unchanged' | 'labels-prepared';
40
34
  } | {
41
35
  status: 'planned';
42
36
  actions: SetupAction[];
@@ -50,7 +44,7 @@ export type SetupOutcome = {
50
44
  missing: string[];
51
45
  cause: SetupFailure;
52
46
  } | {
53
- status: 'legacy-detected' | 'blocked-active' | 'repository-mismatch' | 'unsupported-schema';
47
+ status: 'blocked-active' | 'repository-mismatch' | 'unsupported-schema';
54
48
  reason: string;
55
49
  } | {
56
50
  status: 'transport-failed' | 'io-failed';
@@ -65,23 +59,6 @@ export interface SetupDependencies {
65
59
  };
66
60
  baseBranch?: string;
67
61
  }>;
68
- inspectRetained(input: {
69
- targetRoot: string;
70
- legacy: {
71
- workspaceRoot: string;
72
- stateDir: string;
73
- };
74
- v2: {
75
- workspaceRoot: string;
76
- stateDir: string;
77
- proofDir: string;
78
- };
79
- }): Promise<{
80
- worktreePaths: string[];
81
- localRefs: string[];
82
- remoteRefs: string[];
83
- collisions: string[];
84
- }>;
85
62
  };
86
63
  labels: {
87
64
  listPage(input: {
@@ -97,16 +74,11 @@ export interface SetupDependencies {
97
74
  create(input: {
98
75
  owner: string;
99
76
  repo: string;
100
- label: AgentAutoConfigV1['github']['labels'][keyof AgentAutoConfigV1['github']['labels']];
77
+ label: AgentAutoConfig['github']['labels'][keyof AgentAutoConfig['github']['labels']];
101
78
  }): Promise<'created' | 'already-exists' | {
102
79
  status: 'failed';
103
80
  failure: SetupFailure;
104
81
  }>;
105
- listOpenIssueNumbersWithLabel(input: {
106
- owner: string;
107
- repo: string;
108
- label: string;
109
- }): Promise<number[]>;
110
82
  };
111
83
  ownership: {
112
84
  acquire(repository: {
@@ -115,16 +87,13 @@ export interface SetupDependencies {
115
87
  }): Promise<{
116
88
  release(): Promise<void>;
117
89
  }>;
118
- inspectV2Owner(repository: {
90
+ inspectOwner(repository: {
119
91
  owner: string;
120
92
  repo: string;
121
93
  }): Promise<{
122
94
  status: 'absent' | 'inactive' | 'active' | 'ambiguous';
123
95
  reason?: string;
124
96
  }>;
125
- acquireLegacyFence(targetRoot: string): Promise<{
126
- release(): Promise<void>;
127
- }>;
128
97
  };
129
98
  now?: () => string;
130
99
  }
@@ -137,11 +106,5 @@ export declare class Setup {
137
106
  private prepareLabels;
138
107
  private inspect;
139
108
  private listAllLabels;
140
- private fresh;
141
- private replayCommittedFresh;
142
- private readManifests;
143
- private buildManifest;
144
- private copyBackupIfNeeded;
145
- private copyConfigBackupIfNeeded;
146
109
  }
147
110
  //# sourceMappingURL=setup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/v2/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/v2/setup.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
1
  import { lstat, realpath } from 'node:fs/promises';
2
- import { basename, resolve } from 'node:path';
2
+ import { resolve } from 'node:path';
3
3
  import { canonicalJson } from './containment.js';
4
4
  import { parseAgentAutoConfig } from './config.js';
5
- import { detectLegacyConfig, parseCutoverManifest, sha256, } from './legacy-cutover.js';
6
5
  import { SetupStore } from './setup-store.js';
7
6
  const CONFIG_PATH = '.codex-orchestrator/config.json';
8
7
  const IGNORE_PATH = '.gitignore';
@@ -45,7 +44,7 @@ export class Setup {
45
44
  if (intent.operation === 'doctor' || intent.operation === 'status') {
46
45
  return await this.inspect(targetRoot, observed.repository);
47
46
  }
48
- return await this.fresh(targetRoot, intent, observed.repository, observed.baseBranch);
47
+ return { status: 'unsupported-schema', reason: 'Setup operation is unsupported.' };
49
48
  }
50
49
  catch {
51
50
  return { status: 'io-failed', detail: failure('setup-operation', 'Setup operation could not complete safely.') };
@@ -59,7 +58,7 @@ export class Setup {
59
58
  config = parseAgentAutoConfig(JSON.parse(existing.toString('utf8')));
60
59
  }
61
60
  catch {
62
- return classifyNonV2Config(existing);
61
+ return unsupportedConfig();
63
62
  }
64
63
  if (!sameRepository(config.github, repository) || (intent.repository && !sameRepository(config.github, intent.repository))) {
65
64
  return { status: 'repository-mismatch', reason: 'Persisted repository does not match target origin.' };
@@ -86,7 +85,7 @@ export class Setup {
86
85
  : { status: 'repository-mismatch', reason: 'Persisted repository changed while waiting for setup ownership.' };
87
86
  }
88
87
  catch {
89
- return classifyNonV2Config(recheck);
88
+ return unsupportedConfig();
90
89
  }
91
90
  }
92
91
  if (nextIgnore.changed)
@@ -111,7 +110,7 @@ export class Setup {
111
110
  config = parseAgentAutoConfig(JSON.parse(existing.toString('utf8')));
112
111
  }
113
112
  catch {
114
- return classifyNonV2Config(existing);
113
+ return unsupportedConfig();
115
114
  }
116
115
  if (!sameRepository(config.github, repository)) {
117
116
  return { status: 'repository-mismatch', reason: 'Persisted repository does not match target origin.' };
@@ -155,7 +154,7 @@ export class Setup {
155
154
  }
156
155
  }
157
156
  catch {
158
- return classifyNonV2Config(recheck);
157
+ return unsupportedConfig();
159
158
  }
160
159
  }
161
160
  else {
@@ -222,12 +221,9 @@ export class Setup {
222
221
  config = parseAgentAutoConfig(JSON.parse(bytes.toString('utf8')));
223
222
  }
224
223
  catch {
225
- const classified = classifyNonV2Config(bytes);
226
- const legacy = classified.status === 'legacy-detected';
227
224
  return {
228
225
  status: 'inspected', disposition: 'blocked', diagnostics: [{
229
- code: legacy ? 'legacy-detected' : 'unsupported-schema', status: 'block',
230
- summary: legacy ? 'Legacy configuration requires setup --fresh.' : 'Configuration schema is unsupported.',
226
+ code: 'unsupported-schema', status: 'block', summary: 'Configuration schema is unsupported.',
231
227
  }],
232
228
  };
233
229
  }
@@ -238,7 +234,7 @@ export class Setup {
238
234
  diagnostics.push(repositoryMatch
239
235
  ? { code: 'repository', status: 'pass', summary: 'Configured repository matches target origin.' }
240
236
  : { code: 'repository', status: 'block', summary: 'Configured repository does not match target origin.' });
241
- const owner = await this.dependencies.ownership.inspectV2Owner(repository).catch(() => ({ status: 'ambiguous' }));
237
+ const owner = await this.dependencies.ownership.inspectOwner(repository).catch(() => ({ status: 'ambiguous' }));
242
238
  diagnostics.push(owner.status === 'active' || owner.status === 'ambiguous'
243
239
  ? { code: 'owner', status: 'block', summary: 'An active or ambiguous V2 owner blocks setup.' }
244
240
  : { code: 'owner', status: 'pass', summary: 'No active V2 owner blocks setup.' });
@@ -274,177 +270,6 @@ export class Setup {
274
270
  }
275
271
  throw new Error('label pagination exceeded bound');
276
272
  }
277
- async fresh(targetRoot, intent, repository, baseBranch) {
278
- const configPath = resolve(targetRoot, CONFIG_PATH);
279
- let sourceBytes;
280
- try {
281
- sourceBytes = await this.store.readOptional(configPath);
282
- }
283
- catch {
284
- return { status: 'io-failed', detail: failure('fresh-config-read', 'Fresh could not read target configuration safely.') };
285
- }
286
- if (!sourceBytes)
287
- return { status: 'unsupported-schema', reason: 'Fresh requires a recognized Legacy configuration.' };
288
- try {
289
- const v2 = parseAgentAutoConfig(JSON.parse(sourceBytes.toString('utf8')));
290
- if (!sameRepository(v2.github, repository))
291
- return { status: 'repository-mismatch', reason: 'Persisted repository does not match target origin.' };
292
- return this.replayCommittedFresh(targetRoot, repository, sourceBytes);
293
- }
294
- catch {
295
- // Detect-only parsing below owns the Legacy boundary.
296
- }
297
- const detected = detectLegacyConfig(sourceBytes);
298
- if (detected.status !== 'recognized')
299
- return { status: 'unsupported-schema', reason: 'Fresh configuration schema is unsupported.' };
300
- const legacy = detected.record;
301
- if (!sameRepository(legacy.repository, repository) || (intent.repository && !sameRepository(legacy.repository, intent.repository))) {
302
- return { status: 'repository-mismatch', reason: 'Legacy repository does not match target origin.' };
303
- }
304
- if (intent.dryRun) {
305
- return { status: 'planned', actions: [
306
- { kind: 'backup-legacy', path: '.codex-orchestrator/v2/legacy-backups' },
307
- { kind: 'commit-fresh', path: CONFIG_PATH },
308
- ] };
309
- }
310
- let ownerLock;
311
- let legacyFence;
312
- try {
313
- const owner = await this.dependencies.ownership.inspectV2Owner(repository);
314
- if (owner.status === 'active' || owner.status === 'ambiguous') {
315
- return { status: 'blocked-active', reason: owner.reason ?? 'An active or ambiguous V2 owner blocks fresh.' };
316
- }
317
- ownerLock = await this.dependencies.ownership.acquire(repository);
318
- legacyFence = await this.dependencies.ownership.acquireLegacyFence(targetRoot);
319
- let running;
320
- try {
321
- running = await this.dependencies.labels.listOpenIssueNumbersWithLabel({ ...repository, label: legacy.runningLabel });
322
- }
323
- catch {
324
- return { status: 'transport-failed', detail: failure('fresh-running-read', 'Fresh could not prove remote running claims are absent.') };
325
- }
326
- if (running.length > 0)
327
- return { status: 'blocked-active', reason: 'Open Legacy running claims block fresh.' };
328
- const config = await defaultConfig(targetRoot, repository, baseBranch, this.store);
329
- const roots = [config.runner.workspaceRoot, config.runner.stateDir, config.proof.artifactDir];
330
- for (const root of roots) {
331
- if (!await this.store.isAbsentOrEmptyDirectory(resolve(targetRoot, root))) {
332
- return { status: 'blocked-active', reason: `V2 destination root is not empty: ${root}` };
333
- }
334
- }
335
- let retained;
336
- try {
337
- retained = await this.dependencies.repository.inspectRetained({
338
- targetRoot,
339
- legacy: { workspaceRoot: legacy.workspaceRoot, stateDir: legacy.stateDir },
340
- v2: { workspaceRoot: config.runner.workspaceRoot, stateDir: config.runner.stateDir, proofDir: config.proof.artifactDir },
341
- });
342
- }
343
- catch {
344
- return { status: 'io-failed', detail: failure('fresh-retained-read', 'Fresh could not inspect retained worktrees and refs.') };
345
- }
346
- if (retained.collisions.length > 0)
347
- return { status: 'blocked-active', reason: 'Retained worktree or ref collision blocks fresh.' };
348
- const configBytes = `${canonicalJson(config)}\n`;
349
- const manifest = await this.buildManifest(targetRoot, legacy, configBytes, retained);
350
- const manifestDirectory = resolve(targetRoot, '.codex-orchestrator/v2/fresh-cutover');
351
- const manifestPath = resolve(manifestDirectory, `${manifest.transactionId}.json`);
352
- const existingManifests = await this.readManifests(manifestDirectory);
353
- if (existingManifests.some((entry) => entry.transactionId !== manifest.transactionId)) {
354
- return { status: 'blocked-active', reason: 'Ambiguous fresh-cutover manifests block authority switch.' };
355
- }
356
- const existingManifest = existingManifests[0];
357
- if (existingManifest && canonicalJson(existingManifest) !== canonicalJson(manifest)) {
358
- return { status: 'blocked-active', reason: 'Fresh-cutover manifest does not match current Legacy evidence.' };
359
- }
360
- if (!existingManifest)
361
- await this.store.writeAtomic(manifestPath, `${canonicalJson(manifest)}\n`, 0o600);
362
- await this.copyConfigBackupIfNeeded(resolve(targetRoot, CONFIG_PATH), resolve(targetRoot, manifest.backup.configPath), manifest.source.configSha256);
363
- await this.copyBackupIfNeeded(resolve(targetRoot, legacy.stateDir), resolve(targetRoot, manifest.backup.statePath), manifest.source.stateSha256);
364
- const ignore = renderIgnore((await this.store.readOptional(resolve(targetRoot, IGNORE_PATH)))?.toString('utf8') ?? '', config);
365
- if (ignore.changed)
366
- await this.store.writeAtomic(resolve(targetRoot, IGNORE_PATH), ignore.bytes, 0o644);
367
- await this.store.writeAtomic(configPath, configBytes, 0o644);
368
- return { status: 'fresh-reset' };
369
- }
370
- catch {
371
- return { status: 'io-failed', detail: failure('fresh-write', 'Fresh could not durably complete the cutover.') };
372
- }
373
- finally {
374
- await legacyFence?.release().catch(() => undefined);
375
- await ownerLock?.release().catch(() => undefined);
376
- }
377
- }
378
- async replayCommittedFresh(targetRoot, repository, configBytes) {
379
- let manifests;
380
- try {
381
- manifests = await this.readManifests(resolve(targetRoot, '.codex-orchestrator/v2/fresh-cutover'));
382
- }
383
- catch {
384
- return { status: 'unsupported-schema', reason: 'Fresh-cutover manifest set is unreadable or ambiguous.' };
385
- }
386
- const matches = manifests.filter((manifest) => sameRepository(manifest.repository, repository)
387
- && manifest.destination.configSha256 === sha256(configBytes));
388
- return matches.length === 1 && manifests.length === 1
389
- ? { status: 'fresh-reset' }
390
- : { status: 'unsupported-schema', reason: 'Valid V2 configuration is not linked to one exact fresh-cutover manifest.' };
391
- }
392
- async readManifests(directory) {
393
- const output = [];
394
- for (const path of await this.store.listJsonFiles(directory)) {
395
- const bytes = await this.store.readOptional(path);
396
- if (!bytes)
397
- throw new Error('fresh manifest disappeared');
398
- output.push(parseCutoverManifest(JSON.parse(bytes.toString('utf8'))));
399
- }
400
- return output;
401
- }
402
- async buildManifest(targetRoot, legacy, configBytes, retained) {
403
- const stateSha256 = await this.store.hashPath(resolve(targetRoot, legacy.stateDir));
404
- const destination = {
405
- workspaceRoot: '.codex-orchestrator/workspaces-v2', stateDir: '.codex-orchestrator/v2/state',
406
- proofDir: '.codex-orchestrator/v2/proofs', configSha256: sha256(configBytes),
407
- };
408
- const inventory = {
409
- worktreePaths: [...retained.worktreePaths].sort(), localRefs: [...retained.localRefs].sort(), remoteRefs: [...retained.remoteRefs].sort(),
410
- };
411
- const transactionId = sha256(canonicalJson({
412
- repository: legacy.repository, configSha256: legacy.configSha256, stateSha256, destination, retained: inventory,
413
- }));
414
- const backupRoot = `.codex-orchestrator/v2/legacy-backups/${transactionId}`;
415
- return {
416
- schema: 'codex-orchestrator.agent-auto-fresh-cutover', version: 1, transactionId,
417
- repository: legacy.repository,
418
- source: { configPath: CONFIG_PATH, configSha256: legacy.configSha256, statePath: legacy.stateDir, stateSha256 },
419
- destination,
420
- retained: inventory,
421
- backup: { root: backupRoot, configPath: `${backupRoot}/${basename(CONFIG_PATH)}`, statePath: `${backupRoot}/state` },
422
- };
423
- }
424
- async copyBackupIfNeeded(source, destination, expectedHash) {
425
- const destinationHash = await this.store.hashPath(destination);
426
- if (destinationHash === expectedHash)
427
- return;
428
- const sourceHash = await this.store.hashPath(source);
429
- if (sourceHash !== expectedHash)
430
- throw new Error('fresh source hash changed');
431
- const absentHash = await this.store.hashPath(`${destination}.known-absent-sentinel`);
432
- if (destinationHash !== absentHash)
433
- throw new Error('fresh backup destination contains different evidence');
434
- await this.store.copyTree(source, destination);
435
- }
436
- async copyConfigBackupIfNeeded(source, destination, expectedHash) {
437
- const destinationBytes = await this.store.readOptional(destination);
438
- if (destinationBytes) {
439
- if (sha256(destinationBytes) !== expectedHash)
440
- throw new Error('fresh config backup contains different evidence');
441
- return;
442
- }
443
- const sourceBytes = await this.store.readOptional(source);
444
- if (!sourceBytes || sha256(sourceBytes) !== expectedHash)
445
- throw new Error('fresh config source hash changed');
446
- await this.store.writeAtomic(destination, sourceBytes, 0o600);
447
- }
448
273
  }
449
274
  async function defaultConfig(targetRoot, repository, baseBranch, store) {
450
275
  const packageJson = await store.readOptional(resolve(targetRoot, 'package.json'));
@@ -466,7 +291,7 @@ async function defaultConfig(targetRoot, repository, baseBranch, store) {
466
291
  checks.typecheck = 'npm run typecheck';
467
292
  return parseAgentAutoConfig({
468
293
  schema: 'codex-orchestrator.agent-auto',
469
- version: 1,
294
+ version: 2,
470
295
  github: {
471
296
  owner: repository.owner,
472
297
  repo: repository.repo,
@@ -476,6 +301,7 @@ async function defaultConfig(targetRoot, repository, baseBranch, store) {
476
301
  running: { name: 'agent:running', color: 'fbca04', description: 'Agent is running.' },
477
302
  blocked: { name: 'agent:blocked', color: 'd93f0b', description: 'Agent needs help.' },
478
303
  review: { name: 'agent:review', color: '0e8a16', description: 'Ready for review.' },
304
+ waitingHuman: { name: 'agent:waiting-human', color: '5319e7', description: 'Waiting for an authorized product answer.' },
479
305
  },
480
306
  },
481
307
  runner: {
@@ -507,13 +333,8 @@ function renderIgnore(current, config) {
507
333
  const entries = [config.runner.workspaceRoot, config.runner.stateDir, config.proof.artifactDir].map((path) => `${path}/`);
508
334
  return { changed: true, bytes: `${prefix}${IGNORE_START}\n${entries.join('\n')}\n${IGNORE_END}\n` };
509
335
  }
510
- function classifyNonV2Config(bytes) {
511
- const detected = detectLegacyConfig(bytes);
512
- return detected.status === 'recognized'
513
- ? { status: 'legacy-detected', reason: detected.record.kind === 'experimental-skill-runtime-v2'
514
- ? 'Experimental runtime configuration requires setup --fresh.'
515
- : 'Legacy configuration requires setup --fresh.' }
516
- : { status: 'unsupported-schema', reason: 'Configuration schema is unsupported or unreadable.' };
336
+ function unsupportedConfig() {
337
+ return { status: 'unsupported-schema', reason: 'Configuration schema is unsupported or unreadable.' };
517
338
  }
518
339
  function sameRepository(left, right) {
519
340
  return left.owner.toLowerCase() === right.owner.toLowerCase() && left.repo.toLowerCase() === right.repo.toLowerCase();
@@ -521,7 +342,7 @@ function sameRepository(left, right) {
521
342
  function failure(code, summary) { return { code, summary }; }
522
343
  function isIntent(value) {
523
344
  return typeof value?.targetRoot === 'string' && value.targetRoot.length > 0
524
- && ['configure', 'prepare-labels', 'fresh', 'doctor', 'status'].includes(value.operation)
345
+ && ['configure', 'prepare-labels', 'doctor', 'status'].includes(value.operation)
525
346
  && typeof value.dryRun === 'boolean'
526
347
  && (value.repository === undefined || (typeof value.repository.owner === 'string' && value.repository.owner.length > 0
527
348
  && typeof value.repository.repo === 'string' && value.repository.repo.length > 0));