codex-orchestrator 2.0.1 → 2.0.3

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 (211) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +12 -9
  3. package/dist/src/index.d.ts +10 -0
  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 +63 -7
  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/candidate-cli.d.ts +4 -0
  24. package/dist/src/v2/candidate-cli.d.ts.map +1 -1
  25. package/dist/src/v2/candidate-cli.js +26 -11
  26. package/dist/src/v2/candidate-cli.js.map +1 -1
  27. package/dist/src/v2/cli-contract.d.ts +1 -1
  28. package/dist/src/v2/cli-contract.d.ts.map +1 -1
  29. package/dist/src/v2/cli-contract.js +10 -0
  30. package/dist/src/v2/cli-contract.js.map +1 -1
  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 +11 -0
  38. package/dist/src/v2/codex-process.js.map +1 -1
  39. package/dist/src/v2/config.d.ts +2 -1
  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 +6 -0
  48. package/dist/src/v2/containment.d.ts.map +1 -1
  49. package/dist/src/v2/containment.js +40 -1
  50. package/dist/src/v2/containment.js.map +1 -1
  51. package/dist/src/v2/direct-delivery.d.ts +101 -0
  52. package/dist/src/v2/direct-delivery.d.ts.map +1 -0
  53. package/dist/src/v2/direct-delivery.js +547 -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/route-continuations.d.ts +32 -0
  68. package/dist/src/v2/route-continuations.d.ts.map +1 -0
  69. package/dist/src/v2/route-continuations.js +2 -0
  70. package/dist/src/v2/route-continuations.js.map +1 -0
  71. package/dist/src/v2/route-coordinator.d.ts +77 -0
  72. package/dist/src/v2/route-coordinator.d.ts.map +1 -0
  73. package/dist/src/v2/route-coordinator.js +370 -0
  74. package/dist/src/v2/route-coordinator.js.map +1 -0
  75. package/dist/src/v2/route-decision.d.ts +129 -0
  76. package/dist/src/v2/route-decision.d.ts.map +1 -0
  77. package/dist/src/v2/route-decision.js +400 -0
  78. package/dist/src/v2/route-decision.js.map +1 -0
  79. package/dist/src/v2/run-issue.d.ts +63 -2
  80. package/dist/src/v2/run-issue.d.ts.map +1 -1
  81. package/dist/src/v2/run-issue.js +906 -91
  82. package/dist/src/v2/run-issue.js.map +1 -1
  83. package/dist/src/v2/run-store.d.ts +25 -1
  84. package/dist/src/v2/run-store.d.ts.map +1 -1
  85. package/dist/src/v2/run-store.js +143 -3
  86. package/dist/src/v2/run-store.js.map +1 -1
  87. package/dist/src/v2/runtime-assets.d.ts +15 -13
  88. package/dist/src/v2/runtime-assets.d.ts.map +1 -1
  89. package/dist/src/v2/runtime-assets.js +263 -416
  90. package/dist/src/v2/runtime-assets.js.map +1 -1
  91. package/dist/src/v2/runtime.d.ts +14 -6
  92. package/dist/src/v2/runtime.d.ts.map +1 -1
  93. package/dist/src/v2/runtime.js +478 -56
  94. package/dist/src/v2/runtime.js.map +1 -1
  95. package/dist/src/v2/setup-cli.d.ts.map +1 -1
  96. package/dist/src/v2/setup-cli.js +1 -0
  97. package/dist/src/v2/setup-cli.js.map +1 -1
  98. package/dist/src/v2/setup-runtime.d.ts.map +1 -1
  99. package/dist/src/v2/setup-runtime.js +20 -72
  100. package/dist/src/v2/setup-runtime.js.map +1 -1
  101. package/dist/src/v2/setup.d.ts +4 -1
  102. package/dist/src/v2/setup.d.ts.map +1 -1
  103. package/dist/src/v2/setup.js +104 -1
  104. package/dist/src/v2/setup.js.map +1 -1
  105. package/dist/src/v2/spec-coordinator.d.ts +85 -0
  106. package/dist/src/v2/spec-coordinator.d.ts.map +1 -0
  107. package/dist/src/v2/spec-coordinator.js +88 -0
  108. package/dist/src/v2/spec-coordinator.js.map +1 -0
  109. package/dist/src/v2/spec-delivery.d.ts +143 -0
  110. package/dist/src/v2/spec-delivery.d.ts.map +1 -0
  111. package/dist/src/v2/spec-delivery.js +401 -0
  112. package/dist/src/v2/spec-delivery.js.map +1 -0
  113. package/dist/src/v2/triage-route.d.ts +68 -0
  114. package/dist/src/v2/triage-route.d.ts.map +1 -0
  115. package/dist/src/v2/triage-route.js +223 -0
  116. package/dist/src/v2/triage-route.js.map +1 -0
  117. package/dist/src/v2/waiting-human-coordinator.d.ts +49 -0
  118. package/dist/src/v2/waiting-human-coordinator.d.ts.map +1 -0
  119. package/dist/src/v2/waiting-human-coordinator.js +509 -0
  120. package/dist/src/v2/waiting-human-coordinator.js.map +1 -0
  121. package/dist/src/v2/waiting-human.d.ts +143 -0
  122. package/dist/src/v2/waiting-human.d.ts.map +1 -0
  123. package/dist/src/v2/waiting-human.js +408 -0
  124. package/dist/src/v2/waiting-human.js.map +1 -0
  125. package/dist/src/v2/workflow-assets.d.ts +90 -0
  126. package/dist/src/v2/workflow-assets.d.ts.map +1 -0
  127. package/dist/src/v2/workflow-assets.js +554 -0
  128. package/dist/src/v2/workflow-assets.js.map +1 -0
  129. package/docs/deep-dive.md +15 -8
  130. package/internal-workflow/docs/agents/artifact-review-loop.md +267 -0
  131. package/internal-workflow/docs/agents/bug-workflow-routing.md +24 -0
  132. package/internal-workflow/docs/agents/coding-skill-routing.md +203 -0
  133. package/internal-workflow/docs/agents/confidence-rubric.md +65 -0
  134. package/internal-workflow/docs/agents/contract-test-ledger.md +60 -0
  135. package/internal-workflow/docs/agents/implementation-review-loop.md +302 -0
  136. package/internal-workflow/docs/agents/review-gates.md +49 -0
  137. package/internal-workflow/docs/agents/review-protocol.md +170 -0
  138. package/internal-workflow/docs/agents/tool-usage.md +88 -0
  139. package/internal-workflow/manifest.json +1 -0
  140. package/internal-workflow/operations/acceptance-proof/SKILL.md +3 -0
  141. package/internal-workflow/operations/ambiguity-review/SKILL.md +3 -0
  142. package/internal-workflow/operations/cleanup-review/SKILL.md +3 -0
  143. package/internal-workflow/operations/code-review/SKILL.md +3 -0
  144. package/internal-workflow/operations/implementation/SKILL.md +3 -0
  145. package/internal-workflow/operations/spec-author/SKILL.md +3 -0
  146. package/internal-workflow/operations/spec-implementation/SKILL.md +3 -0
  147. package/internal-workflow/operations/spec-review/SKILL.md +3 -0
  148. package/internal-workflow/operations/triage/SKILL.md +3 -0
  149. package/internal-workflow/profiles/analyst_deep.toml +9 -0
  150. package/internal-workflow/profiles/implementer_deep.toml +9 -0
  151. package/internal-workflow/profiles/implementer_standard.toml +9 -0
  152. package/internal-workflow/profiles/proof_agent.toml +8 -0
  153. package/internal-workflow/profiles/researcher_standard.toml +9 -0
  154. package/internal-workflow/profiles/reviewer_deep.toml +9 -0
  155. package/internal-workflow/profiles/reviewer_fast.toml +9 -0
  156. package/internal-workflow/profiles/reviewer_standard.toml +9 -0
  157. package/internal-workflow/schemas/ambiguity-review-v1.json +1 -0
  158. package/internal-workflow/schemas/code-review-v1.json +1 -0
  159. package/internal-workflow/schemas/implementation-report-v1.json +1 -0
  160. package/internal-workflow/schemas/proof-report-v1.json +1 -0
  161. package/internal-workflow/schemas/spec-author-v1.json +1 -0
  162. package/internal-workflow/schemas/spec-review-v1.json +30 -0
  163. package/internal-workflow/schemas/triage-route-v1.json +1 -0
  164. package/internal-workflow/skills/acceptance-proof/agents/openai.yaml +6 -0
  165. package/internal-workflow/skills/agent-auto/agents/openai.yaml +6 -0
  166. package/internal-workflow/skills/cleanup-review/SKILL.md +84 -0
  167. package/internal-workflow/skills/cleanup-review/agents/openai.yaml +6 -0
  168. package/internal-workflow/skills/code-review/SKILL.md +257 -0
  169. package/internal-workflow/skills/code-review/agents/openai.yaml +4 -0
  170. package/internal-workflow/skills/code-review/references/bug-classes.md +56 -0
  171. package/internal-workflow/skills/code-review/references/framework-lenses.md +34 -0
  172. package/internal-workflow/skills/code-review/references/targeted-recipes.md +49 -0
  173. package/internal-workflow/skills/codebase-design/DEEPENING.md +35 -0
  174. package/internal-workflow/skills/codebase-design/DESIGN-IT-TWICE.md +50 -0
  175. package/internal-workflow/skills/codebase-design/SKILL.md +82 -0
  176. package/internal-workflow/skills/codebase-design/agents/openai.yaml +6 -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 +93 -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 +211 -0
  185. package/internal-workflow/skills/implementation-spec-review/agents/openai.yaml +6 -0
  186. package/internal-workflow/skills/research/SKILL.md +107 -0
  187. package/internal-workflow/skills/research/agents/openai.yaml +6 -0
  188. package/internal-workflow/skills/small-task-implementer/SKILL.md +97 -0
  189. package/internal-workflow/skills/small-task-implementer/agents/openai.yaml +6 -0
  190. package/internal-workflow/skills/spec-implementer/SKILL.md +197 -0
  191. package/internal-workflow/skills/spec-implementer/agents/openai.yaml +6 -0
  192. package/internal-workflow/skills/tdd/SKILL.md +59 -0
  193. package/internal-workflow/skills/tdd/agents/openai.yaml +6 -0
  194. package/internal-workflow/skills/tdd/interface-design.md +31 -0
  195. package/internal-workflow/skills/tdd/mocking.md +59 -0
  196. package/internal-workflow/skills/tdd/refactoring.md +10 -0
  197. package/internal-workflow/skills/tdd/tests.md +77 -0
  198. package/internal-workflow/skills/triage/AGENT-BRIEF.md +192 -0
  199. package/internal-workflow/skills/triage/OUT-OF-SCOPE.md +101 -0
  200. package/internal-workflow/skills/triage/SKILL.md +134 -0
  201. package/internal-workflow/skills/triage/agents/openai.yaml +6 -0
  202. package/internal-workflow/skills/ui-evidence-proof/SKILL.md +123 -0
  203. package/internal-workflow/skills/ui-evidence-proof/agents/openai.yaml +6 -0
  204. package/package.json +6 -3
  205. /package/{internal-skills → internal-workflow/skills}/acceptance-proof/SKILL.md +0 -0
  206. /package/{internal-skills → internal-workflow/skills}/acceptance-proof/references/android.md +0 -0
  207. /package/{internal-skills → internal-workflow/skills}/acceptance-proof/references/browser.md +0 -0
  208. /package/{internal-skills → internal-workflow/skills}/acceptance-proof/references/ios.md +0 -0
  209. /package/{internal-skills → internal-workflow/skills}/acceptance-proof/tools/android-lease.mjs +0 -0
  210. /package/{internal-skills → internal-workflow/skills}/acceptance-proof/tools/ios-lease.mjs +0 -0
  211. /package/{internal-skills → internal-workflow/skills}/agent-auto/SKILL.md +0 -0
@@ -0,0 +1,174 @@
1
+ import { spawn } from 'node:child_process';
2
+ import { lstat, mkdir } from 'node:fs/promises';
3
+ import { join } from 'node:path';
4
+ import { canonicalJson, sha256 } from './containment.js';
5
+ const ZERO_OID = '0'.repeat(40);
6
+ export async function inspectOwnerControlLock(input) {
7
+ validateRepository(input.canonicalRepository);
8
+ const controlGitDir = join(input.orchestratorHome, 'v2', 'owner-control.git');
9
+ try {
10
+ if (!(await lstat(controlGitDir)).isDirectory())
11
+ return { status: 'ambiguous', reason: 'Owner control store is not a directory.' };
12
+ }
13
+ catch (error) {
14
+ if (typeof error === 'object' && error !== null && error.code === 'ENOENT')
15
+ return { status: 'absent' };
16
+ return { status: 'ambiguous', reason: 'Owner control store cannot be inspected.' };
17
+ }
18
+ const ref = `refs/codex-orchestrator/owners/${sha256(input.canonicalRepository)}`;
19
+ let oid;
20
+ try {
21
+ oid = await readRef(controlGitDir, ref);
22
+ }
23
+ catch {
24
+ return { status: 'ambiguous', reason: 'Owner control ref is invalid.' };
25
+ }
26
+ if (!oid)
27
+ return { status: 'absent' };
28
+ let owner;
29
+ try {
30
+ owner = await readOwner(controlGitDir, oid);
31
+ }
32
+ catch {
33
+ return { status: 'ambiguous', reason: 'Owner control record is malformed.' };
34
+ }
35
+ if (owner.canonicalRepository !== input.canonicalRepository || owner.host !== input.host || owner.bootId !== input.bootId) {
36
+ return { status: 'ambiguous', reason: 'Owner control identity is foreign or stale.' };
37
+ }
38
+ return input.processAlive(owner.pid)
39
+ ? { status: 'active' }
40
+ : { status: 'ambiguous', reason: 'Owner control record has ambiguous liveness.' };
41
+ }
42
+ export class OwnerControlLockBlockedError extends Error {
43
+ kind;
44
+ constructor(message = 'owner control lock is held or ambiguous', kind = 'safety') {
45
+ super(message);
46
+ this.kind = kind;
47
+ this.name = 'OwnerControlLockBlockedError';
48
+ }
49
+ }
50
+ export async function acquireOwnerControlLock(input) {
51
+ validateRepository(input.canonicalRepository);
52
+ if (!input.bootId || !input.host || !Number.isSafeInteger(input.pid) || input.pid <= 0)
53
+ throw new OwnerControlLockBlockedError('owner identity is invalid');
54
+ const controlGitDir = join(input.orchestratorHome, 'v2', 'owner-control.git');
55
+ await mkdir(join(input.orchestratorHome, 'v2'), { recursive: true, mode: 0o700 });
56
+ const initialized = await runGit(['init', '--bare', '--quiet', '--object-format=sha1', controlGitDir]);
57
+ if (initialized.code !== 0)
58
+ throw new OwnerControlLockBlockedError('owner control store initialization failed');
59
+ const ref = `refs/codex-orchestrator/owners/${sha256(input.canonicalRepository)}`;
60
+ const owner = {
61
+ version: 1,
62
+ token: input.createToken(),
63
+ canonicalRepository: input.canonicalRepository,
64
+ host: input.host,
65
+ bootId: input.bootId,
66
+ pid: input.pid,
67
+ acquiredAt: input.now(),
68
+ };
69
+ const blob = await writeBlob(controlGitDir, owner);
70
+ const startedAt = Date.now();
71
+ while (true) {
72
+ const observedOid = await readRef(controlGitDir, ref);
73
+ if (observedOid === undefined) {
74
+ if (await updateRef(controlGitDir, ref, blob, ZERO_OID))
75
+ return handle(controlGitDir, ref, blob);
76
+ continue;
77
+ }
78
+ const observed = await readOwner(controlGitDir, observedOid).catch(() => undefined);
79
+ if (!observed
80
+ || observed.canonicalRepository !== input.canonicalRepository
81
+ || observed.host !== input.host
82
+ || observed.bootId !== input.bootId) {
83
+ throw new OwnerControlLockBlockedError();
84
+ }
85
+ if (input.processAlive(observed.pid)) {
86
+ if (Date.now() - startedAt >= (input.waitMs ?? 5_000))
87
+ throw new OwnerControlLockBlockedError('owner control lock wait timed out', 'live-contention');
88
+ await delay(input.pollMs ?? 25);
89
+ continue;
90
+ }
91
+ await input.afterObservedOwner?.(structuredClone(observed));
92
+ if (await updateRef(controlGitDir, ref, blob, observedOid))
93
+ return handle(controlGitDir, ref, blob);
94
+ if (Date.now() - startedAt >= (input.waitMs ?? 5_000))
95
+ throw new OwnerControlLockBlockedError('owner control lock reclaim lost');
96
+ }
97
+ }
98
+ function handle(controlGitDir, ref, ownBlob) {
99
+ let released = false;
100
+ return {
101
+ async release() {
102
+ if (released)
103
+ return;
104
+ const result = await runGit(['--git-dir', controlGitDir, 'update-ref', '-d', ref, ownBlob]);
105
+ const observed = await readRef(controlGitDir, ref);
106
+ if (result.code !== 0 && observed === ownBlob)
107
+ throw new OwnerControlLockBlockedError('owner control lock release failed');
108
+ if (observed === ownBlob)
109
+ throw new OwnerControlLockBlockedError('owner control lock release was not confirmed');
110
+ released = true;
111
+ },
112
+ };
113
+ }
114
+ async function writeBlob(controlGitDir, owner) {
115
+ const result = await runGit(['--git-dir', controlGitDir, 'hash-object', '-w', '--stdin'], `${canonicalJson(owner)}\n`);
116
+ const oid = result.stdout.trim();
117
+ if (result.code !== 0 || !/^[0-9a-f]{40}$/u.test(oid))
118
+ throw new OwnerControlLockBlockedError('owner control blob write failed');
119
+ return oid;
120
+ }
121
+ async function readRef(controlGitDir, ref) {
122
+ const result = await runGit(['--git-dir', controlGitDir, 'rev-parse', '--verify', '--quiet', ref]);
123
+ if (result.code === 1)
124
+ return undefined;
125
+ const oid = result.stdout.trim();
126
+ if (result.code !== 0 || !/^[0-9a-f]{40}$/u.test(oid))
127
+ throw new OwnerControlLockBlockedError('owner control ref is invalid');
128
+ return oid;
129
+ }
130
+ async function readOwner(controlGitDir, oid) {
131
+ const result = await runGit(['--git-dir', controlGitDir, 'cat-file', 'blob', oid]);
132
+ if (result.code !== 0 || Buffer.byteLength(result.stdout) > 16 * 1024)
133
+ throw new Error('owner control blob is invalid');
134
+ return parseOwner(JSON.parse(result.stdout));
135
+ }
136
+ async function updateRef(controlGitDir, ref, next, previous) {
137
+ return (await runGit(['--git-dir', controlGitDir, 'update-ref', ref, next, previous])).code === 0;
138
+ }
139
+ function parseOwner(value) {
140
+ if (typeof value !== 'object' || value === null || Array.isArray(value))
141
+ throw new Error('owner control record is invalid');
142
+ const keys = Object.keys(value).sort();
143
+ const expected = ['version', 'token', 'canonicalRepository', 'host', 'bootId', 'pid', 'acquiredAt'].sort();
144
+ if (keys.length !== expected.length || keys.some((key, index) => key !== expected[index]))
145
+ throw new Error('owner control record keys are invalid');
146
+ const owner = value;
147
+ validateRepository(owner.canonicalRepository);
148
+ if (owner.version !== 1 || !owner.token || !owner.host || !owner.bootId
149
+ || !Number.isSafeInteger(owner.pid) || owner.pid <= 0
150
+ || Number.isNaN(Date.parse(owner.acquiredAt)) || new Date(owner.acquiredAt).toISOString() !== owner.acquiredAt) {
151
+ throw new Error('owner control record fields are invalid');
152
+ }
153
+ return owner;
154
+ }
155
+ function validateRepository(value) {
156
+ if (!/^[a-z0-9._-]+\/[a-z0-9._-]+$/u.test(value))
157
+ throw new OwnerControlLockBlockedError('canonical repository is invalid');
158
+ }
159
+ function runGit(args, stdin) {
160
+ return new Promise((resolve, reject) => {
161
+ const child = spawn('git', args, { stdio: ['pipe', 'pipe', 'pipe'] });
162
+ const stdout = [];
163
+ const stderr = [];
164
+ child.stdout.on('data', (chunk) => stdout.push(chunk));
165
+ child.stderr.on('data', (chunk) => stderr.push(chunk));
166
+ child.once('error', reject);
167
+ child.once('close', (code) => resolve({ code: code ?? 1, stdout: Buffer.concat(stdout).toString('utf8'), stderr: Buffer.concat(stderr).toString('utf8') }));
168
+ child.stdin.end(stdin);
169
+ });
170
+ }
171
+ function delay(ms) {
172
+ return new Promise((resolve) => setTimeout(resolve, ms));
173
+ }
174
+ //# sourceMappingURL=owner-control-lock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"owner-control-lock.js","sourceRoot":"","sources":["../../../src/v2/owner-control-lock.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { PersistedFrozenCriterionV1, PersistedIssueSnapshotV1 } from './run-store.js';
2
+ import type { RouteReceiptV1 } from './route-decision.js';
3
+ import type { WorkflowGenerationReceipt } from './workflow-assets.js';
4
+ import type { WaitingHumanResult, WaitingHumanState } from './waiting-human-coordinator.js';
5
+ import type { SpecCoordinatorResult, SpecDeliveryState } from './spec-coordinator.js';
6
+ export interface RoutedRunContext {
7
+ runId: string;
8
+ issue: PersistedIssueSnapshotV1;
9
+ frozenCriteria: PersistedFrozenCriterionV1[];
10
+ worktreePath: string;
11
+ workflowGeneration: WorkflowGenerationReceipt;
12
+ receipt: RouteReceiptV1;
13
+ }
14
+ export type RoutedContinuationResult = {
15
+ status: 'completed';
16
+ } | {
17
+ status: 'retryable';
18
+ code: string;
19
+ } | {
20
+ status: 'blocked';
21
+ kind: 'external' | 'safety' | 'exhausted';
22
+ code: string;
23
+ evidence: string[];
24
+ } | {
25
+ status: 'cancelled';
26
+ };
27
+ export interface RoutedContinuationRegistry {
28
+ direct(input: RoutedRunContext): Promise<RoutedContinuationResult>;
29
+ specRequired(input: RoutedRunContext, state: SpecDeliveryState, signal: AbortSignal): Promise<SpecCoordinatorResult>;
30
+ awaitingUser(input: RoutedRunContext, state: WaitingHumanState, signal: AbortSignal): Promise<WaitingHumanResult>;
31
+ }
32
+ //# sourceMappingURL=route-continuations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-continuations.d.ts","sourceRoot":"","sources":["../../../src/v2/route-continuations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC3F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAC5F,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAEtF,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,wBAAwB,CAAC;IAChC,cAAc,EAAE,0BAA0B,EAAE,CAAC;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,yBAAyB,CAAC;IAC9C,OAAO,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,MAAM,wBAAwB,GAChC;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,UAAU,GAAG,QAAQ,GAAG,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,GAClG;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC;AAE5B,MAAM,WAAW,0BAA0B;IACzC,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACnE,YAAY,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACrH,YAAY,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACnH"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=route-continuations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-continuations.js","sourceRoot":"","sources":["../../../src/v2/route-continuations.ts"],"names":[],"mappings":""}
@@ -0,0 +1,77 @@
1
+ import { type AmbiguityReviewRefV1, type CandidateRepairInputV1, type MalformedRepairInputV1, type RouteArtifactRefV1, type RouteExecutionV1, type RouteReceiptV1 } from './route-decision.js';
2
+ import { type TriageRouteV1 } from './triage-route.js';
3
+ import type { WorkflowGenerationReceipt } from './workflow-assets.js';
4
+ import type { ContainedReportOperation, ContainedReportOperationResult } from './contained-report-operation.js';
5
+ export type { AmbiguityReviewRefV1, CandidateRepairInputV1, ContainedReportOperation, MalformedRepairInputV1, RouteArtifactRefV1, RouteExecutionV1, RouteReceiptV1, };
6
+ export type RouteCoordinatorResult = {
7
+ status: 'succeeded';
8
+ receipt: RouteReceiptV1;
9
+ } | {
10
+ status: 'repairable';
11
+ code: 'triage-artifact-invalid' | 'waiting-candidate-rejected';
12
+ findings: string[];
13
+ } | {
14
+ status: 'retryable';
15
+ owner: 'triage' | 'ambiguity-review';
16
+ code: string;
17
+ } | {
18
+ status: 'safe-halt';
19
+ process: Extract<ContainedReportOperationResult, {
20
+ status: 'safe-halt';
21
+ }>['process'];
22
+ waitForAbsence(): Promise<void>;
23
+ } | {
24
+ status: 'awaiting-user';
25
+ receipt: RouteReceiptV1;
26
+ } | {
27
+ status: 'cancelled';
28
+ } | {
29
+ status: 'blocked';
30
+ kind: 'external' | 'safety' | 'exhausted';
31
+ code: string;
32
+ evidence: string[];
33
+ };
34
+ export interface RouteCoordinatorState {
35
+ read(): Promise<RouteExecutionV1>;
36
+ compareAndSwap(expected: RouteExecutionV1, next: RouteExecutionV1): Promise<boolean>;
37
+ complete(expected: RouteExecutionV1, next: RouteExecutionV1, receipt: RouteReceiptV1): Promise<boolean>;
38
+ cancel(expected: RouteExecutionV1): Promise<boolean>;
39
+ }
40
+ export interface RouteReceiptInput {
41
+ artifact: TriageRouteV1;
42
+ triage: RouteArtifactRefV1;
43
+ review: AmbiguityReviewRefV1 | null;
44
+ decidedAt: string;
45
+ }
46
+ export interface RouteCoordinatorDependencies {
47
+ state: RouteCoordinatorState;
48
+ operation: ContainedReportOperation;
49
+ createAttemptId(): string;
50
+ now(): string;
51
+ createReceipt(input: RouteReceiptInput): RouteReceiptV1;
52
+ }
53
+ export interface RouteCoordinatorInput {
54
+ runId: string;
55
+ worktreePath: string;
56
+ workflowGeneration: WorkflowGenerationReceipt;
57
+ promptFacts: string[];
58
+ signal: AbortSignal;
59
+ }
60
+ export declare function initialRouteExecution(): RouteExecutionV1;
61
+ export declare class RouteCoordinator {
62
+ private readonly dependencies;
63
+ constructor(dependencies: RouteCoordinatorDependencies);
64
+ run(input: RouteCoordinatorInput): Promise<RouteCoordinatorResult>;
65
+ private launchTriage;
66
+ private adoptTriage;
67
+ private launchReview;
68
+ private adoptReview;
69
+ private invalidTriage;
70
+ private retryTriage;
71
+ private retryReview;
72
+ private recoverTriage;
73
+ private recoverReview;
74
+ private complete;
75
+ private cancel;
76
+ }
77
+ //# sourceMappingURL=route-coordinator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-coordinator.d.ts","sourceRoot":"","sources":["../../../src/v2/route-coordinator.ts"],"names":[],"mappings":"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"}