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.
Files changed (92) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/README.md +30 -3
  3. package/dist/src/v2/acceptance-proof.d.ts +12 -0
  4. package/dist/src/v2/acceptance-proof.d.ts.map +1 -1
  5. package/dist/src/v2/acceptance-proof.js +120 -6
  6. package/dist/src/v2/acceptance-proof.js.map +1 -1
  7. package/dist/src/v2/adapters/command.d.ts +2 -0
  8. package/dist/src/v2/adapters/command.d.ts.map +1 -1
  9. package/dist/src/v2/adapters/command.js +67 -8
  10. package/dist/src/v2/adapters/command.js.map +1 -1
  11. package/dist/src/v2/adapters/gh-issue-adapter.js +16 -5
  12. package/dist/src/v2/adapters/gh-issue-adapter.js.map +1 -1
  13. package/dist/src/v2/adapters/gh-pull-request-adapter.d.ts +7 -1
  14. package/dist/src/v2/adapters/gh-pull-request-adapter.d.ts.map +1 -1
  15. package/dist/src/v2/adapters/gh-pull-request-adapter.js +288 -0
  16. package/dist/src/v2/adapters/gh-pull-request-adapter.js.map +1 -1
  17. package/dist/src/v2/adapters/pull-requests.d.ts +69 -0
  18. package/dist/src/v2/adapters/pull-requests.d.ts.map +1 -1
  19. package/dist/src/v2/adapters/pull-requests.js +48 -0
  20. package/dist/src/v2/adapters/pull-requests.js.map +1 -1
  21. package/dist/src/v2/adapters/worktree.d.ts +1 -0
  22. package/dist/src/v2/adapters/worktree.d.ts.map +1 -1
  23. package/dist/src/v2/adapters/worktree.js +10 -1
  24. package/dist/src/v2/adapters/worktree.js.map +1 -1
  25. package/dist/src/v2/android-proof-runner.d.ts +93 -0
  26. package/dist/src/v2/android-proof-runner.d.ts.map +1 -0
  27. package/dist/src/v2/android-proof-runner.js +921 -0
  28. package/dist/src/v2/android-proof-runner.js.map +1 -0
  29. package/dist/src/v2/cli.d.ts +9 -0
  30. package/dist/src/v2/cli.d.ts.map +1 -1
  31. package/dist/src/v2/cli.js +38 -11
  32. package/dist/src/v2/cli.js.map +1 -1
  33. package/dist/src/v2/config.d.ts +13 -1
  34. package/dist/src/v2/config.d.ts.map +1 -1
  35. package/dist/src/v2/config.js +57 -4
  36. package/dist/src/v2/config.js.map +1 -1
  37. package/dist/src/v2/containment.d.ts +11 -2
  38. package/dist/src/v2/containment.d.ts.map +1 -1
  39. package/dist/src/v2/containment.js +35 -7
  40. package/dist/src/v2/containment.js.map +1 -1
  41. package/dist/src/v2/direct-delivery.d.ts +1 -1
  42. package/dist/src/v2/direct-delivery.d.ts.map +1 -1
  43. package/dist/src/v2/direct-delivery.js +9 -3
  44. package/dist/src/v2/direct-delivery.js.map +1 -1
  45. package/dist/src/v2/immutable-workflow-publisher.js +6 -1
  46. package/dist/src/v2/immutable-workflow-publisher.js.map +1 -1
  47. package/dist/src/v2/mobile-lease.d.ts +9 -0
  48. package/dist/src/v2/mobile-lease.d.ts.map +1 -1
  49. package/dist/src/v2/mobile-lease.js +27 -3
  50. package/dist/src/v2/mobile-lease.js.map +1 -1
  51. package/dist/src/v2/review-feedback-coordinator.d.ts +54 -0
  52. package/dist/src/v2/review-feedback-coordinator.d.ts.map +1 -0
  53. package/dist/src/v2/review-feedback-coordinator.js +245 -0
  54. package/dist/src/v2/review-feedback-coordinator.js.map +1 -0
  55. package/dist/src/v2/review-feedback.d.ts +127 -0
  56. package/dist/src/v2/review-feedback.d.ts.map +1 -0
  57. package/dist/src/v2/review-feedback.js +436 -0
  58. package/dist/src/v2/review-feedback.js.map +1 -0
  59. package/dist/src/v2/run-issue.d.ts +61 -0
  60. package/dist/src/v2/run-issue.d.ts.map +1 -1
  61. package/dist/src/v2/run-issue.js +843 -66
  62. package/dist/src/v2/run-issue.js.map +1 -1
  63. package/dist/src/v2/run-store.d.ts +48 -1
  64. package/dist/src/v2/run-store.d.ts.map +1 -1
  65. package/dist/src/v2/run-store.js +125 -5
  66. package/dist/src/v2/run-store.js.map +1 -1
  67. package/dist/src/v2/runtime.d.ts +37 -0
  68. package/dist/src/v2/runtime.d.ts.map +1 -1
  69. package/dist/src/v2/runtime.js +183 -15
  70. package/dist/src/v2/runtime.js.map +1 -1
  71. package/dist/src/v2/setup.js +1 -1
  72. package/dist/src/v2/setup.js.map +1 -1
  73. package/docs/deep-dive.md +71 -7
  74. package/internal-workflow/docs/agents/contract-test-ledger.md +11 -1
  75. package/internal-workflow/evals/coding-skill-evals.json +18 -0
  76. package/internal-workflow/manifest.json +1 -1
  77. package/internal-workflow/skills/acceptance-proof/SKILL.md +1 -1
  78. package/internal-workflow/skills/acceptance-proof/references/android.md +6 -6
  79. package/internal-workflow/skills/code-debugger/SKILL.md +3 -3
  80. package/internal-workflow/skills/code-review/SKILL.md +18 -6
  81. package/internal-workflow/skills/implementation-spec-maker/SKILL.md +10 -8
  82. package/internal-workflow/skills/implementation-spec-maker/agents/openai.yaml +1 -1
  83. package/internal-workflow/skills/implementation-spec-review/SKILL.md +17 -3
  84. package/internal-workflow/skills/implementation-spec-review/evals/evals.json +30 -0
  85. package/internal-workflow/skills/implementation-spec-review/references/review-loop.md +30 -6
  86. package/internal-workflow/skills/spec-implementer/references/review-loop.md +7 -1
  87. package/internal-workflow/skills/tdd/SKILL.md +5 -4
  88. package/internal-workflow/skills/tdd/evals/evals.json +18 -0
  89. package/internal-workflow/skills/tdd/mocking.md +3 -42
  90. package/internal-workflow/skills/tdd/refactoring.md +6 -8
  91. package/package.json +1 -1
  92. 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":"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"}