codex-orchestrator 2.0.4 → 2.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +50 -0
- package/README.md +30 -3
- package/dist/src/v2/acceptance-proof.d.ts +12 -0
- package/dist/src/v2/acceptance-proof.d.ts.map +1 -1
- package/dist/src/v2/acceptance-proof.js +120 -6
- package/dist/src/v2/acceptance-proof.js.map +1 -1
- package/dist/src/v2/adapters/command.d.ts +2 -0
- package/dist/src/v2/adapters/command.d.ts.map +1 -1
- package/dist/src/v2/adapters/command.js +67 -8
- package/dist/src/v2/adapters/command.js.map +1 -1
- package/dist/src/v2/adapters/gh-issue-adapter.js +16 -5
- package/dist/src/v2/adapters/gh-issue-adapter.js.map +1 -1
- package/dist/src/v2/adapters/gh-pull-request-adapter.d.ts +7 -1
- package/dist/src/v2/adapters/gh-pull-request-adapter.d.ts.map +1 -1
- package/dist/src/v2/adapters/gh-pull-request-adapter.js +288 -0
- package/dist/src/v2/adapters/gh-pull-request-adapter.js.map +1 -1
- package/dist/src/v2/adapters/pull-requests.d.ts +69 -0
- package/dist/src/v2/adapters/pull-requests.d.ts.map +1 -1
- package/dist/src/v2/adapters/pull-requests.js +48 -0
- package/dist/src/v2/adapters/pull-requests.js.map +1 -1
- package/dist/src/v2/adapters/worktree.d.ts +1 -0
- package/dist/src/v2/adapters/worktree.d.ts.map +1 -1
- package/dist/src/v2/adapters/worktree.js +10 -1
- package/dist/src/v2/adapters/worktree.js.map +1 -1
- package/dist/src/v2/android-proof-runner.d.ts +93 -0
- package/dist/src/v2/android-proof-runner.d.ts.map +1 -0
- package/dist/src/v2/android-proof-runner.js +921 -0
- package/dist/src/v2/android-proof-runner.js.map +1 -0
- package/dist/src/v2/cli.d.ts +9 -0
- package/dist/src/v2/cli.d.ts.map +1 -1
- package/dist/src/v2/cli.js +38 -11
- package/dist/src/v2/cli.js.map +1 -1
- package/dist/src/v2/config.d.ts +13 -1
- package/dist/src/v2/config.d.ts.map +1 -1
- package/dist/src/v2/config.js +57 -4
- package/dist/src/v2/config.js.map +1 -1
- package/dist/src/v2/containment.d.ts +11 -2
- package/dist/src/v2/containment.d.ts.map +1 -1
- package/dist/src/v2/containment.js +35 -7
- package/dist/src/v2/containment.js.map +1 -1
- package/dist/src/v2/direct-delivery.d.ts +1 -1
- package/dist/src/v2/direct-delivery.d.ts.map +1 -1
- package/dist/src/v2/direct-delivery.js +9 -3
- package/dist/src/v2/direct-delivery.js.map +1 -1
- package/dist/src/v2/immutable-workflow-publisher.js +6 -1
- package/dist/src/v2/immutable-workflow-publisher.js.map +1 -1
- package/dist/src/v2/mobile-lease.d.ts +9 -0
- package/dist/src/v2/mobile-lease.d.ts.map +1 -1
- package/dist/src/v2/mobile-lease.js +27 -3
- package/dist/src/v2/mobile-lease.js.map +1 -1
- package/dist/src/v2/review-feedback-coordinator.d.ts +54 -0
- package/dist/src/v2/review-feedback-coordinator.d.ts.map +1 -0
- package/dist/src/v2/review-feedback-coordinator.js +245 -0
- package/dist/src/v2/review-feedback-coordinator.js.map +1 -0
- package/dist/src/v2/review-feedback.d.ts +127 -0
- package/dist/src/v2/review-feedback.d.ts.map +1 -0
- package/dist/src/v2/review-feedback.js +436 -0
- package/dist/src/v2/review-feedback.js.map +1 -0
- package/dist/src/v2/run-issue.d.ts +61 -0
- package/dist/src/v2/run-issue.d.ts.map +1 -1
- package/dist/src/v2/run-issue.js +843 -66
- package/dist/src/v2/run-issue.js.map +1 -1
- package/dist/src/v2/run-store.d.ts +48 -1
- package/dist/src/v2/run-store.d.ts.map +1 -1
- package/dist/src/v2/run-store.js +125 -5
- package/dist/src/v2/run-store.js.map +1 -1
- package/dist/src/v2/runtime.d.ts +37 -0
- package/dist/src/v2/runtime.d.ts.map +1 -1
- package/dist/src/v2/runtime.js +183 -15
- package/dist/src/v2/runtime.js.map +1 -1
- package/dist/src/v2/setup.js +1 -1
- package/dist/src/v2/setup.js.map +1 -1
- package/docs/deep-dive.md +71 -7
- package/internal-workflow/docs/agents/contract-test-ledger.md +11 -1
- package/internal-workflow/evals/coding-skill-evals.json +18 -0
- package/internal-workflow/manifest.json +1 -1
- package/internal-workflow/skills/acceptance-proof/SKILL.md +1 -1
- package/internal-workflow/skills/acceptance-proof/references/android.md +6 -6
- package/internal-workflow/skills/code-debugger/SKILL.md +3 -3
- package/internal-workflow/skills/code-review/SKILL.md +18 -6
- package/internal-workflow/skills/implementation-spec-maker/SKILL.md +10 -8
- package/internal-workflow/skills/implementation-spec-maker/agents/openai.yaml +1 -1
- package/internal-workflow/skills/implementation-spec-review/SKILL.md +17 -3
- package/internal-workflow/skills/implementation-spec-review/evals/evals.json +30 -0
- package/internal-workflow/skills/implementation-spec-review/references/review-loop.md +30 -6
- package/internal-workflow/skills/spec-implementer/references/review-loop.md +7 -1
- package/internal-workflow/skills/tdd/SKILL.md +5 -4
- package/internal-workflow/skills/tdd/evals/evals.json +18 -0
- package/internal-workflow/skills/tdd/mocking.md +3 -42
- package/internal-workflow/skills/tdd/refactoring.md +6 -8
- package/package.json +1 -1
- package/internal-workflow/skills/acceptance-proof/tools/android-lease.mjs +0 -280
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
import { canonicalJson } from './containment.js';
|
|
2
|
+
import { GitHubPermissionRetryableError, GitHubPermissionSafetyError, } from './adapters/issues.js';
|
|
3
|
+
import { createFrozenReviewFeedbackBatch, hashReviewFeedbackSnapshot, hashReviewFeedbackText, normalizeReviewFeedbackBody, } from './review-feedback.js';
|
|
4
|
+
export class ReviewFeedbackCoordinator {
|
|
5
|
+
dependencies;
|
|
6
|
+
constructor(dependencies) {
|
|
7
|
+
this.dependencies = dependencies;
|
|
8
|
+
}
|
|
9
|
+
async observeAndFreeze(input) {
|
|
10
|
+
for (let attempt = 1; attempt <= 2; attempt += 1) {
|
|
11
|
+
try {
|
|
12
|
+
const snapshot = await this.readSnapshot(input.pullRequestNumber);
|
|
13
|
+
const targetError = validateObservationTarget(snapshot.before, input, input.expectedHeadSha);
|
|
14
|
+
if (targetError)
|
|
15
|
+
return { status: 'blocked', reason: targetError };
|
|
16
|
+
if (!sameTarget(snapshot.before, snapshot.after)) {
|
|
17
|
+
if (attempt === 1)
|
|
18
|
+
continue;
|
|
19
|
+
return { status: 'blocked', reason: 'GitHub pull request observation remained torn after one retry' };
|
|
20
|
+
}
|
|
21
|
+
const consumed = new Set(input.consumedSourceIds);
|
|
22
|
+
const candidates = collectCandidates(snapshot.threads, snapshot.reviews, input.expectedHeadSha)
|
|
23
|
+
.filter((candidate) => !consumed.has(candidate.source.sourceId))
|
|
24
|
+
.sort((left, right) => left.source.sourceId.localeCompare(right.source.sourceId));
|
|
25
|
+
const sources = [];
|
|
26
|
+
for (const candidate of candidates) {
|
|
27
|
+
const permission = await this.readTrustedPermission(candidate.login, candidate.userId);
|
|
28
|
+
if (!permission)
|
|
29
|
+
continue;
|
|
30
|
+
sources.push({ ...candidate.source, permission });
|
|
31
|
+
}
|
|
32
|
+
if (sources.length === 0)
|
|
33
|
+
return { status: 'none', observedHeadSha: input.expectedHeadSha, eligibleSourceIds: [] };
|
|
34
|
+
return {
|
|
35
|
+
status: 'frozen',
|
|
36
|
+
batch: createFrozenReviewFeedbackBatch({
|
|
37
|
+
runId: input.runId,
|
|
38
|
+
canonicalRepository: input.canonicalRepository,
|
|
39
|
+
pullRequest: {
|
|
40
|
+
nodeId: snapshot.before.nodeId,
|
|
41
|
+
number: snapshot.before.number,
|
|
42
|
+
headSha: snapshot.before.headRefOid,
|
|
43
|
+
headRefName: snapshot.before.headRefName,
|
|
44
|
+
baseRefName: snapshot.before.baseRefName,
|
|
45
|
+
marker: input.marker,
|
|
46
|
+
},
|
|
47
|
+
priorPublishedHeadSha: input.expectedHeadSha,
|
|
48
|
+
sources,
|
|
49
|
+
frozenAt: (this.dependencies.now ?? (() => new Date().toISOString()))(),
|
|
50
|
+
}),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
const classified = classifyReadError(error);
|
|
55
|
+
if (classified.status === 'retryable' && attempt === 1)
|
|
56
|
+
continue;
|
|
57
|
+
return classified;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return { status: 'retryable', reason: 'GitHub review observation did not converge' };
|
|
61
|
+
}
|
|
62
|
+
async revalidate(input) {
|
|
63
|
+
try {
|
|
64
|
+
const snapshot = await this.readSnapshot(input.batch.pullRequest.number);
|
|
65
|
+
if (!sameTarget(snapshot.before, snapshot.after))
|
|
66
|
+
return { status: 'blocked', reason: 'GitHub pull request revalidation was torn' };
|
|
67
|
+
const expected = {
|
|
68
|
+
runId: input.batch.runId,
|
|
69
|
+
canonicalRepository: input.batch.canonicalRepository,
|
|
70
|
+
pullRequestNumber: input.batch.pullRequest.number,
|
|
71
|
+
expectedHeadSha: input.expectedHeadSha,
|
|
72
|
+
expectedHeadRefName: input.batch.pullRequest.headRefName,
|
|
73
|
+
expectedBaseRefName: input.batch.pullRequest.baseRefName,
|
|
74
|
+
marker: input.batch.pullRequest.marker,
|
|
75
|
+
consumedSourceIds: [],
|
|
76
|
+
};
|
|
77
|
+
const targetError = validateObservationTarget(snapshot.before, expected, input.expectedHeadSha);
|
|
78
|
+
if (targetError || snapshot.before.nodeId !== input.batch.pullRequest.nodeId) {
|
|
79
|
+
return { status: 'blocked', reason: targetError ?? 'GitHub pull request node identity drifted' };
|
|
80
|
+
}
|
|
81
|
+
for (const frozen of input.batch.sources) {
|
|
82
|
+
const current = findCandidate(snapshot.threads, snapshot.reviews, frozen);
|
|
83
|
+
if (!current)
|
|
84
|
+
return { status: 'blocked', reason: `Frozen review source ${frozen.sourceId} was deleted or became ineligible` };
|
|
85
|
+
if (current.source.body !== frozen.body || current.source.bodySha256 !== frozen.bodySha256
|
|
86
|
+
|| current.source.snapshotSha256 !== frozen.snapshotSha256 || current.source.commitSha !== frozen.commitSha
|
|
87
|
+
|| canonicalJson(current.source.author) !== canonicalJson(frozen.author)
|
|
88
|
+
|| (input.epoch === 'pre-update' && canonicalJson(current.source.threadState) !== canonicalJson(frozen.threadState))) {
|
|
89
|
+
return { status: 'blocked', reason: `Frozen review source ${frozen.sourceId} drifted` };
|
|
90
|
+
}
|
|
91
|
+
const permission = await this.readTrustedPermission(current.login, current.userId);
|
|
92
|
+
if (!permission || permission.userId !== frozen.permission.userId) {
|
|
93
|
+
return { status: 'blocked', reason: `Frozen review source ${frozen.sourceId} permission was revoked` };
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return { status: 'valid', observedHeadSha: input.expectedHeadSha };
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
return classifyReadError(error);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
async readSnapshot(number) {
|
|
103
|
+
const before = await this.dependencies.pullRequests.getReviewTarget(number);
|
|
104
|
+
if (!before)
|
|
105
|
+
throw new GitHubPermissionSafetyError('Marker-bound pull request was not found');
|
|
106
|
+
const [threads, reviews] = await Promise.all([
|
|
107
|
+
this.dependencies.pullRequests.listReviewThreads(number),
|
|
108
|
+
this.dependencies.pullRequests.listSubmittedReviews(number),
|
|
109
|
+
]);
|
|
110
|
+
const after = await this.dependencies.pullRequests.getReviewTarget(number);
|
|
111
|
+
if (!after)
|
|
112
|
+
throw new GitHubPermissionSafetyError('Marker-bound pull request disappeared during observation');
|
|
113
|
+
return { before, after, threads, reviews };
|
|
114
|
+
}
|
|
115
|
+
async readTrustedPermission(login, userId) {
|
|
116
|
+
const permission = await this.dependencies.issues.getRepositoryPermission(login, userId);
|
|
117
|
+
if (permission.userId !== userId)
|
|
118
|
+
throw new GitHubPermissionSafetyError('GitHub permission identity mismatch');
|
|
119
|
+
if (permission.permission !== 'write' && permission.permission !== 'admin')
|
|
120
|
+
return undefined;
|
|
121
|
+
return permission;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
function collectCandidates(threads, reviews, expectedHeadSha) {
|
|
125
|
+
const output = [];
|
|
126
|
+
for (const thread of threads) {
|
|
127
|
+
const root = thread.comments[0];
|
|
128
|
+
if (!root || thread.isResolved || thread.isOutdated || root.commitId !== expectedHeadSha
|
|
129
|
+
|| !root.author || root.author.isBot || !root.body.trim())
|
|
130
|
+
continue;
|
|
131
|
+
output.push(candidateFromThread(thread));
|
|
132
|
+
}
|
|
133
|
+
for (const review of reviews) {
|
|
134
|
+
if (review.state !== 'CHANGES_REQUESTED' || review.commitId !== expectedHeadSha || !review.submittedAt
|
|
135
|
+
|| !review.author || review.author.isBot || !review.body.trim())
|
|
136
|
+
continue;
|
|
137
|
+
output.push(candidateFromReview(review));
|
|
138
|
+
}
|
|
139
|
+
return output;
|
|
140
|
+
}
|
|
141
|
+
function findCandidate(threads, reviews, frozen) {
|
|
142
|
+
if (frozen.kind === 'thread') {
|
|
143
|
+
const thread = threads.find((candidate) => `pr-thread:${candidate.nodeId}` === frozen.sourceId);
|
|
144
|
+
const root = thread?.comments[0];
|
|
145
|
+
if (!thread || !root || !root.author || root.author.isBot || !root.body.trim() || root.commitId !== frozen.commitSha)
|
|
146
|
+
return undefined;
|
|
147
|
+
return candidateFromThread(thread);
|
|
148
|
+
}
|
|
149
|
+
const review = reviews.find((candidate) => `pr-review:${candidate.nodeId}` === frozen.sourceId);
|
|
150
|
+
if (!review || review.state !== 'CHANGES_REQUESTED' || !review.submittedAt || !review.author || review.author.isBot
|
|
151
|
+
|| !review.body.trim() || review.commitId !== frozen.commitSha)
|
|
152
|
+
return undefined;
|
|
153
|
+
return candidateFromReview(review);
|
|
154
|
+
}
|
|
155
|
+
function candidateFromThread(thread) {
|
|
156
|
+
const root = thread.comments[0];
|
|
157
|
+
const author = root.author;
|
|
158
|
+
const body = normalizeReviewFeedbackBody(root.body);
|
|
159
|
+
const sourceId = `pr-thread:${thread.nodeId}`;
|
|
160
|
+
return {
|
|
161
|
+
login: author.login,
|
|
162
|
+
userId: author.id,
|
|
163
|
+
source: {
|
|
164
|
+
sourceId,
|
|
165
|
+
kind: 'thread',
|
|
166
|
+
sourceUrl: root.url,
|
|
167
|
+
path: normalizePath(thread.path),
|
|
168
|
+
line: thread.line,
|
|
169
|
+
body,
|
|
170
|
+
bodySha256: hashReviewFeedbackText(body),
|
|
171
|
+
snapshotSha256: hashReviewFeedbackSnapshot({
|
|
172
|
+
sourceId, path: normalizePath(thread.path), line: thread.line,
|
|
173
|
+
comments: thread.comments.map((comment) => ({
|
|
174
|
+
nodeId: comment.nodeId, databaseId: comment.databaseId, url: comment.url,
|
|
175
|
+
bodySha256: hashReviewFeedbackText(comment.body), createdAt: comment.createdAt, updatedAt: comment.updatedAt,
|
|
176
|
+
commitId: comment.commitId,
|
|
177
|
+
author: comment.author && { id: comment.author.id, nodeId: comment.author.nodeId ?? null, login: comment.author.login, isBot: comment.author.isBot },
|
|
178
|
+
})),
|
|
179
|
+
}),
|
|
180
|
+
threadState: { isResolved: thread.isResolved, isOutdated: thread.isOutdated },
|
|
181
|
+
commitSha: root.commitId,
|
|
182
|
+
sourceCreatedAt: root.createdAt,
|
|
183
|
+
sourceUpdatedAt: root.updatedAt,
|
|
184
|
+
author: { login: author.login, userId: author.id },
|
|
185
|
+
},
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
function candidateFromReview(review) {
|
|
189
|
+
const author = review.author;
|
|
190
|
+
const body = normalizeReviewFeedbackBody(review.body);
|
|
191
|
+
const sourceId = `pr-review:${review.nodeId}`;
|
|
192
|
+
return {
|
|
193
|
+
login: author.login,
|
|
194
|
+
userId: author.id,
|
|
195
|
+
source: {
|
|
196
|
+
sourceId,
|
|
197
|
+
kind: 'review',
|
|
198
|
+
sourceUrl: review.url,
|
|
199
|
+
path: null,
|
|
200
|
+
line: null,
|
|
201
|
+
body,
|
|
202
|
+
bodySha256: hashReviewFeedbackText(body),
|
|
203
|
+
snapshotSha256: hashReviewFeedbackSnapshot({
|
|
204
|
+
sourceId, databaseId: review.databaseId, url: review.url, state: review.state,
|
|
205
|
+
bodySha256: hashReviewFeedbackText(body), submittedAt: review.submittedAt,
|
|
206
|
+
commitId: review.commitId, author: { id: author.id, login: author.login, isBot: author.isBot },
|
|
207
|
+
}),
|
|
208
|
+
threadState: null,
|
|
209
|
+
commitSha: review.commitId,
|
|
210
|
+
sourceCreatedAt: review.submittedAt,
|
|
211
|
+
sourceUpdatedAt: review.submittedAt,
|
|
212
|
+
author: { login: author.login, userId: author.id },
|
|
213
|
+
},
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
function validateObservationTarget(target, expected, expectedHeadSha) {
|
|
217
|
+
const repository = `${target.repository.owner.login}/${target.repository.name}`.toLowerCase();
|
|
218
|
+
if (repository !== expected.canonicalRepository.toLowerCase())
|
|
219
|
+
return 'GitHub pull request repository identity mismatch';
|
|
220
|
+
if (target.number !== expected.pullRequestNumber || target.state !== 'OPEN' || !target.isDraft || target.isCrossRepository)
|
|
221
|
+
return 'GitHub pull request is not the eligible same-repository draft';
|
|
222
|
+
if (target.headRefName !== expected.expectedHeadRefName || target.baseRefName !== expected.expectedBaseRefName
|
|
223
|
+
|| target.headRefOid !== expectedHeadSha)
|
|
224
|
+
return 'GitHub pull request refs or head drifted';
|
|
225
|
+
if (!target.body.includes(expected.marker))
|
|
226
|
+
return 'GitHub pull request run marker is missing';
|
|
227
|
+
return undefined;
|
|
228
|
+
}
|
|
229
|
+
function sameTarget(left, right) {
|
|
230
|
+
return canonicalJson(left) === canonicalJson(right);
|
|
231
|
+
}
|
|
232
|
+
function normalizePath(path) {
|
|
233
|
+
const normalized = path.replace(/\\/gu, '/').replace(/^\.\//u, '');
|
|
234
|
+
if (!normalized || normalized.startsWith('/') || normalized.split('/').includes('..'))
|
|
235
|
+
throw new GitHubPermissionSafetyError('Review thread path is unsafe');
|
|
236
|
+
return normalized;
|
|
237
|
+
}
|
|
238
|
+
function classifyReadError(error) {
|
|
239
|
+
const message = error instanceof Error ? error.message : 'Unknown GitHub review read failure';
|
|
240
|
+
if (error instanceof GitHubPermissionRetryableError || /failed to run|timed out|temporar|transport/iu.test(message)) {
|
|
241
|
+
return { status: 'retryable', reason: message };
|
|
242
|
+
}
|
|
243
|
+
return { status: 'blocked', reason: message };
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=review-feedback-coordinator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-feedback-coordinator.js","sourceRoot":"","sources":["../../../src/v2/review-feedback-coordinator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import type { DirectRepairFindingV1 } from './direct-delivery.js';
|
|
2
|
+
export interface ReviewFeedbackPermissionReceiptV1 {
|
|
3
|
+
permission: 'write' | 'admin';
|
|
4
|
+
userId: string;
|
|
5
|
+
checkedAt: string;
|
|
6
|
+
}
|
|
7
|
+
export interface FrozenReviewFeedbackSourceV1 {
|
|
8
|
+
sourceId: string;
|
|
9
|
+
kind: 'thread' | 'review';
|
|
10
|
+
sourceUrl: string;
|
|
11
|
+
path: string | null;
|
|
12
|
+
line: number | null;
|
|
13
|
+
body: string;
|
|
14
|
+
bodySha256: string;
|
|
15
|
+
snapshotSha256: string;
|
|
16
|
+
threadState: {
|
|
17
|
+
isResolved: boolean;
|
|
18
|
+
isOutdated: boolean;
|
|
19
|
+
} | null;
|
|
20
|
+
commitSha: string;
|
|
21
|
+
sourceCreatedAt: string;
|
|
22
|
+
sourceUpdatedAt: string;
|
|
23
|
+
author: {
|
|
24
|
+
login: string;
|
|
25
|
+
userId: string;
|
|
26
|
+
};
|
|
27
|
+
permission: ReviewFeedbackPermissionReceiptV1;
|
|
28
|
+
}
|
|
29
|
+
export interface FrozenReviewFeedbackBatchV1 {
|
|
30
|
+
version: 1;
|
|
31
|
+
batchId: string;
|
|
32
|
+
runId: string;
|
|
33
|
+
canonicalRepository: string;
|
|
34
|
+
pullRequest: {
|
|
35
|
+
nodeId: string;
|
|
36
|
+
number: number;
|
|
37
|
+
headSha: string;
|
|
38
|
+
headRefName: string;
|
|
39
|
+
baseRefName: string;
|
|
40
|
+
marker: string;
|
|
41
|
+
};
|
|
42
|
+
priorPublishedHeadSha: string;
|
|
43
|
+
sources: FrozenReviewFeedbackSourceV1[];
|
|
44
|
+
frozenAt: string;
|
|
45
|
+
}
|
|
46
|
+
export interface ReviewFeedbackImplementationInvocationV1 {
|
|
47
|
+
phase: 'prepared' | 'launched';
|
|
48
|
+
attemptId: string;
|
|
49
|
+
reportPath: string;
|
|
50
|
+
preparedAt: string;
|
|
51
|
+
baseline: {
|
|
52
|
+
headSha: string;
|
|
53
|
+
indexTreeSha: string;
|
|
54
|
+
trackedContentSha256: string;
|
|
55
|
+
untrackedContentSha256: string;
|
|
56
|
+
worktreeIdentity: string;
|
|
57
|
+
};
|
|
58
|
+
pid: number | null;
|
|
59
|
+
processGroupId: number | null;
|
|
60
|
+
launchedAt: string | null;
|
|
61
|
+
}
|
|
62
|
+
export interface ReviewFeedbackPublishedReceiptV1 {
|
|
63
|
+
kind: 'published';
|
|
64
|
+
batchId: string;
|
|
65
|
+
sourceIds: string[];
|
|
66
|
+
priorHeadSha: string;
|
|
67
|
+
publishedHeadSha: string;
|
|
68
|
+
pullRequestNumber: number;
|
|
69
|
+
summaryCommentId: string;
|
|
70
|
+
publishedAt: string;
|
|
71
|
+
}
|
|
72
|
+
export interface ReviewFeedbackBlockedReceiptV1 {
|
|
73
|
+
kind: 'blocked-safety' | 'blocked-exhausted';
|
|
74
|
+
batchId: string;
|
|
75
|
+
blockedAt: string;
|
|
76
|
+
}
|
|
77
|
+
export interface ReviewFeedbackExecutionV1 {
|
|
78
|
+
version: 1;
|
|
79
|
+
phase: 'bootstrap-required' | 'idle' | 'frozen' | 'repairing' | 'verified' | 'publishing' | 'blocked-safety' | 'blocked-exhausted';
|
|
80
|
+
consumedSourceIds: string[];
|
|
81
|
+
previousPublishedHeadSha: string | null;
|
|
82
|
+
repairRound: 0 | 1 | 2 | 3;
|
|
83
|
+
activeBatch: FrozenReviewFeedbackBatchV1 | null;
|
|
84
|
+
implementationInvocation: ReviewFeedbackImplementationInvocationV1 | null;
|
|
85
|
+
history: Array<ReviewFeedbackPublishedReceiptV1 | ReviewFeedbackBlockedReceiptV1>;
|
|
86
|
+
verifiedReceipt: {
|
|
87
|
+
batchId: string;
|
|
88
|
+
checkedChangeSha256: string;
|
|
89
|
+
proofId: string;
|
|
90
|
+
verifiedAt: string;
|
|
91
|
+
} | null;
|
|
92
|
+
terminal: {
|
|
93
|
+
kind: 'safety' | 'exhausted';
|
|
94
|
+
blockedAt: string;
|
|
95
|
+
} | null;
|
|
96
|
+
}
|
|
97
|
+
export declare function createReviewFeedbackBootstrap(): ReviewFeedbackExecutionV1;
|
|
98
|
+
export declare function createFrozenReviewFeedbackBatch(input: Omit<FrozenReviewFeedbackBatchV1, 'version' | 'batchId'>): FrozenReviewFeedbackBatchV1;
|
|
99
|
+
export declare function normalizeReviewFeedbackBody(body: string): string;
|
|
100
|
+
export declare function hashReviewFeedbackText(body: string): string;
|
|
101
|
+
export declare function hashReviewFeedbackSnapshot(value: unknown): string;
|
|
102
|
+
export declare function projectReviewFeedbackBatch(batch: FrozenReviewFeedbackBatchV1, targetRevision: number): {
|
|
103
|
+
repairFindings: DirectRepairFindingV1[];
|
|
104
|
+
workerFeedback: Array<{
|
|
105
|
+
id: string;
|
|
106
|
+
sourceUrl: string;
|
|
107
|
+
path: string | null;
|
|
108
|
+
line: number | null;
|
|
109
|
+
body: string;
|
|
110
|
+
}>;
|
|
111
|
+
};
|
|
112
|
+
export declare function appendConsumedReviewSourceIds(execution: ReviewFeedbackExecutionV1, sourceIds: string[]): ReviewFeedbackExecutionV1;
|
|
113
|
+
export declare function bootstrapReviewFeedback(execution: ReviewFeedbackExecutionV1, previousPublishedHeadSha: string, existingSourceIds: string[]): ReviewFeedbackExecutionV1;
|
|
114
|
+
export declare function activateReviewFeedback(execution: ReviewFeedbackExecutionV1, batch: FrozenReviewFeedbackBatchV1): ReviewFeedbackExecutionV1;
|
|
115
|
+
export declare function reserveNextReviewFeedbackRound(execution: ReviewFeedbackExecutionV1): ReviewFeedbackExecutionV1;
|
|
116
|
+
export declare function markReviewFeedbackRepairing(execution: ReviewFeedbackExecutionV1): ReviewFeedbackExecutionV1;
|
|
117
|
+
export declare function markReviewFeedbackVerified(execution: ReviewFeedbackExecutionV1, input: {
|
|
118
|
+
checkedChangeSha256: string;
|
|
119
|
+
proofId: string;
|
|
120
|
+
verifiedAt: string;
|
|
121
|
+
}): ReviewFeedbackExecutionV1;
|
|
122
|
+
export declare function markReviewFeedbackPublishing(execution: ReviewFeedbackExecutionV1): ReviewFeedbackExecutionV1;
|
|
123
|
+
export declare function publishReviewFeedback(execution: ReviewFeedbackExecutionV1, receipt: ReviewFeedbackPublishedReceiptV1): ReviewFeedbackExecutionV1;
|
|
124
|
+
export declare function blockReviewFeedback(execution: ReviewFeedbackExecutionV1, kind: 'safety' | 'exhausted', blockedAt: string): ReviewFeedbackExecutionV1;
|
|
125
|
+
export declare function validateReviewFeedbackExecution(value: unknown): asserts value is ReviewFeedbackExecutionV1;
|
|
126
|
+
export declare function validateFrozenReviewFeedbackBatch(value: unknown): asserts value is FrozenReviewFeedbackBatchV1;
|
|
127
|
+
//# sourceMappingURL=review-feedback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-feedback.d.ts","sourceRoot":"","sources":["../../../src/v2/review-feedback.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAOlE,MAAM,WAAW,iCAAiC;IAChD,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,UAAU,EAAE,iCAAiC,CAAC;CAC/C;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,CAAC,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,qBAAqB,EAAE,MAAM,CAAC;IAC9B,OAAO,EAAE,4BAA4B,EAAE,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,wCAAwC;IACvD,KAAK,EAAE,UAAU,GAAG,UAAU,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE;QACR,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;QACrB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,sBAAsB,EAAE,MAAM,CAAC;QAC/B,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,gBAAgB,GAAG,mBAAmB,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,CAAC,CAAC;IACX,KAAK,EAAE,oBAAoB,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,YAAY,GAAG,gBAAgB,GAAG,mBAAmB,CAAC;IACnI,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,WAAW,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,WAAW,EAAE,2BAA2B,GAAG,IAAI,CAAC;IAChD,wBAAwB,EAAE,wCAAwC,GAAG,IAAI,CAAC;IAC1E,OAAO,EAAE,KAAK,CAAC,gCAAgC,GAAG,8BAA8B,CAAC,CAAC;IAClF,eAAe,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,mBAAmB,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9G,QAAQ,EAAE;QAAE,IAAI,EAAE,QAAQ,GAAG,WAAW,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACtE;AAED,wBAAgB,6BAA6B,IAAI,yBAAyB,CAazE;AAED,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,IAAI,CAAC,2BAA2B,EAAE,SAAS,GAAG,SAAS,CAAC,GAC9D,2BAA2B,CAsB7B;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAIjE;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,2BAA2B,EAAE,cAAc,EAAE,MAAM,GAAG;IACtG,cAAc,EAAE,qBAAqB,EAAE,CAAC;IACxC,cAAc,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClH,CA6BA;AAED,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,yBAAyB,EACpC,SAAS,EAAE,MAAM,EAAE,GAClB,yBAAyB,CAY3B;AAED,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,yBAAyB,EACpC,wBAAwB,EAAE,MAAM,EAChC,iBAAiB,EAAE,MAAM,EAAE,GAC1B,yBAAyB,CAS3B;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,yBAAyB,EACpC,KAAK,EAAE,2BAA2B,GACjC,yBAAyB,CAmB3B;AAED,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,yBAAyB,GAAG,yBAAyB,CAQ9G;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,yBAAyB,GAAG,yBAAyB,CAM3G;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,yBAAyB,EAAE,KAAK,EAAE;IACtF,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,yBAAyB,CAW5B;AAED,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,yBAAyB,GAAG,yBAAyB,CAM5G;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,yBAAyB,EAAE,OAAO,EAAE,gCAAgC,GAAG,yBAAyB,CAehJ;AAED,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,yBAAyB,EACpC,IAAI,EAAE,QAAQ,GAAG,WAAW,EAC5B,SAAS,EAAE,MAAM,GAChB,yBAAyB,CAmB3B;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,yBAAyB,CA6C1G;AAED,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,2BAA2B,CA8B9G"}
|