@farmslot/protocol 0.27.0 → 0.29.0

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 (143) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/agents/roles.d.ts.map +1 -1
  3. package/dist/agents/roles.js +1 -1
  4. package/dist/agents/roles.js.map +1 -1
  5. package/dist/checklist-target.d.ts +17 -0
  6. package/dist/checklist-target.d.ts.map +1 -1
  7. package/dist/checklist-target.js +31 -0
  8. package/dist/checklist-target.js.map +1 -1
  9. package/dist/contracts/agents.d.ts +76 -1
  10. package/dist/contracts/agents.d.ts.map +1 -1
  11. package/dist/contracts/agents.js +4 -0
  12. package/dist/contracts/agents.js.map +1 -1
  13. package/dist/contracts/config.d.ts +38 -0
  14. package/dist/contracts/config.d.ts.map +1 -1
  15. package/dist/contracts/config.js.map +1 -1
  16. package/dist/contracts/dispatch.d.ts +22 -1
  17. package/dist/contracts/dispatch.d.ts.map +1 -1
  18. package/dist/contracts/evals.d.ts.map +1 -1
  19. package/dist/contracts/evals.js +2 -4
  20. package/dist/contracts/evals.js.map +1 -1
  21. package/dist/contracts/execution-templates.d.ts +1 -1
  22. package/dist/contracts/execution-templates.d.ts.map +1 -1
  23. package/dist/contracts/execution-templates.js.map +1 -1
  24. package/dist/contracts/index.d.ts +3 -0
  25. package/dist/contracts/index.d.ts.map +1 -1
  26. package/dist/contracts/index.js +3 -0
  27. package/dist/contracts/index.js.map +1 -1
  28. package/dist/contracts/pr-monitoring.d.ts +44 -4
  29. package/dist/contracts/pr-monitoring.d.ts.map +1 -1
  30. package/dist/contracts/pr-recommendation.d.ts +3 -0
  31. package/dist/contracts/pr-recommendation.d.ts.map +1 -1
  32. package/dist/contracts/pr-recommendation.js +3 -0
  33. package/dist/contracts/pr-recommendation.js.map +1 -1
  34. package/dist/contracts/pr-rules.d.ts +32 -2
  35. package/dist/contracts/pr-rules.d.ts.map +1 -1
  36. package/dist/contracts/pr-rules.js +30 -1
  37. package/dist/contracts/pr-rules.js.map +1 -1
  38. package/dist/contracts/qa.d.ts +123 -0
  39. package/dist/contracts/qa.d.ts.map +1 -0
  40. package/dist/contracts/qa.js +234 -0
  41. package/dist/contracts/qa.js.map +1 -0
  42. package/dist/contracts/recipes.d.ts.map +1 -1
  43. package/dist/contracts/recipes.js +1 -0
  44. package/dist/contracts/recipes.js.map +1 -1
  45. package/dist/contracts/review-publication.d.ts +45 -0
  46. package/dist/contracts/review-publication.d.ts.map +1 -0
  47. package/dist/contracts/review-publication.js +6 -0
  48. package/dist/contracts/review-publication.js.map +1 -0
  49. package/dist/contracts/review-workspace.d.ts +68 -0
  50. package/dist/contracts/review-workspace.d.ts.map +1 -0
  51. package/dist/contracts/review-workspace.js +2 -0
  52. package/dist/contracts/review-workspace.js.map +1 -0
  53. package/dist/contracts/reviews.d.ts +24 -0
  54. package/dist/contracts/reviews.d.ts.map +1 -1
  55. package/dist/contracts/reviews.js +2 -0
  56. package/dist/contracts/reviews.js.map +1 -1
  57. package/dist/contracts/runs.d.ts +196 -7
  58. package/dist/contracts/runs.d.ts.map +1 -1
  59. package/dist/contracts/runs.js +19 -0
  60. package/dist/contracts/runs.js.map +1 -1
  61. package/dist/index.d.ts +2 -0
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +2 -0
  64. package/dist/index.js.map +1 -1
  65. package/dist/integrations/github-ref.js +1 -1
  66. package/dist/integrations/github-ref.js.map +1 -1
  67. package/dist/integrations/pr-monitoring.d.ts +8 -1
  68. package/dist/integrations/pr-monitoring.d.ts.map +1 -1
  69. package/dist/integrations/pr-monitoring.js +80 -20
  70. package/dist/integrations/pr-monitoring.js.map +1 -1
  71. package/dist/integrations/pr-rule-config.d.ts +1 -1
  72. package/dist/integrations/pr-rule-config.d.ts.map +1 -1
  73. package/dist/integrations/pr-rule-config.js +53 -5
  74. package/dist/integrations/pr-rule-config.js.map +1 -1
  75. package/dist/integrations/pr-workflow-defaults.d.ts +23 -0
  76. package/dist/integrations/pr-workflow-defaults.d.ts.map +1 -0
  77. package/dist/integrations/pr-workflow-defaults.js +100 -0
  78. package/dist/integrations/pr-workflow-defaults.js.map +1 -0
  79. package/dist/rpc/auth.d.ts +5 -0
  80. package/dist/rpc/auth.d.ts.map +1 -1
  81. package/dist/rpc/auth.js +13 -0
  82. package/dist/rpc/auth.js.map +1 -1
  83. package/dist/rpc/config.d.ts +2 -1
  84. package/dist/rpc/config.d.ts.map +1 -1
  85. package/dist/rpc/copilot-runtime.d.ts +4 -0
  86. package/dist/rpc/copilot-runtime.d.ts.map +1 -1
  87. package/dist/rpc/dispatch.d.ts +26 -1
  88. package/dist/rpc/dispatch.d.ts.map +1 -1
  89. package/dist/rpc/gateway.d.ts +16 -0
  90. package/dist/rpc/gateway.d.ts.map +1 -1
  91. package/dist/rpc/git.d.ts +4 -0
  92. package/dist/rpc/git.d.ts.map +1 -1
  93. package/dist/rpc/index.d.ts +1 -0
  94. package/dist/rpc/index.d.ts.map +1 -1
  95. package/dist/rpc/index.js +1 -0
  96. package/dist/rpc/index.js.map +1 -1
  97. package/dist/rpc/intelligence.d.ts +5 -0
  98. package/dist/rpc/intelligence.d.ts.map +1 -1
  99. package/dist/rpc/native-profile.d.ts +66 -0
  100. package/dist/rpc/native-profile.d.ts.map +1 -0
  101. package/dist/rpc/native-profile.js +37 -0
  102. package/dist/rpc/native-profile.js.map +1 -0
  103. package/dist/rpc/native-session.d.ts +56 -1
  104. package/dist/rpc/native-session.d.ts.map +1 -1
  105. package/dist/rpc/native-session.js +15 -1
  106. package/dist/rpc/native-session.js.map +1 -1
  107. package/dist/rpc/pr-rules.d.ts +6 -0
  108. package/dist/rpc/pr-rules.d.ts.map +1 -1
  109. package/dist/rpc/pr.d.ts +6 -0
  110. package/dist/rpc/pr.d.ts.map +1 -1
  111. package/dist/rpc/principal.d.ts +8 -0
  112. package/dist/rpc/principal.d.ts.map +1 -1
  113. package/dist/rpc/registry.d.ts +9 -0
  114. package/dist/rpc/registry.d.ts.map +1 -1
  115. package/dist/rpc/registry.js +9 -0
  116. package/dist/rpc/registry.js.map +1 -1
  117. package/dist/rpc/run.d.ts +38 -1
  118. package/dist/rpc/run.d.ts.map +1 -1
  119. package/dist/rpc/run.js +1 -0
  120. package/dist/rpc/run.js.map +1 -1
  121. package/dist/rpc/terminal.d.ts +1 -0
  122. package/dist/rpc/terminal.d.ts.map +1 -1
  123. package/dist/rpc/tmux.d.ts +7 -0
  124. package/dist/rpc/tmux.d.ts.map +1 -1
  125. package/dist/runs/interactive-handoff.d.ts +2 -0
  126. package/dist/runs/interactive-handoff.d.ts.map +1 -1
  127. package/dist/runs/interactive-handoff.js +8 -0
  128. package/dist/runs/interactive-handoff.js.map +1 -1
  129. package/dist/runs/review-retries.d.ts +26 -0
  130. package/dist/runs/review-retries.d.ts.map +1 -0
  131. package/dist/runs/review-retries.js +68 -0
  132. package/dist/runs/review-retries.js.map +1 -0
  133. package/dist/transport/events.d.ts +13 -0
  134. package/dist/transport/events.d.ts.map +1 -1
  135. package/dist/transport/events.js +1 -0
  136. package/dist/transport/events.js.map +1 -1
  137. package/dist/transport/signal.d.ts +8 -0
  138. package/dist/transport/signal.d.ts.map +1 -1
  139. package/dist/transport/signal.js +23 -0
  140. package/dist/transport/signal.js.map +1 -1
  141. package/dist/version.d.ts +1 -1
  142. package/dist/version.js +1 -1
  143. package/package.json +1 -1
@@ -0,0 +1,123 @@
1
+ /** Project-defined inputs passed unchanged to a shared validation skill. */
2
+ export type QaInput = string | number | boolean | null | QaInput[] | {
3
+ [key: string]: QaInput;
4
+ };
5
+ /** Optional form hints for skill inputs. The farm owns their meaning. */
6
+ export interface QaInputField {
7
+ path: string;
8
+ title: string;
9
+ type: 'text' | 'number' | 'boolean' | 'select';
10
+ description?: string;
11
+ required?: boolean;
12
+ options?: Array<{
13
+ value: string;
14
+ title: string;
15
+ }>;
16
+ }
17
+ /** A preset selects a shared workflow; it does not define workflow steps. */
18
+ export interface QaProfile {
19
+ id: string;
20
+ title: string;
21
+ description?: string;
22
+ template_id: string;
23
+ inputs?: Record<string, QaInput>;
24
+ input_fields?: QaInputField[];
25
+ }
26
+ export interface ProjectQaConfig {
27
+ default_profile: string;
28
+ profiles: QaProfile[];
29
+ after_review?: {
30
+ enabled: boolean;
31
+ profile_id: string;
32
+ };
33
+ }
34
+ export interface QaProfileSelection {
35
+ profile: QaProfile;
36
+ inputs: Record<string, QaInput>;
37
+ }
38
+ /** Captured only when a new static review is admitted with automatic QA enabled. */
39
+ export interface QaAfterReview {
40
+ version: 1;
41
+ capturedAt: string;
42
+ selection: QaProfileSelection;
43
+ execution?: import('./pr-monitoring.js').PRExecutionProfile;
44
+ review: import('./pr-rules.js').PRReviewOptions;
45
+ state: 'pending' | 'blocked' | 'submitted';
46
+ teamId?: string;
47
+ submissionId?: string;
48
+ intentId?: string;
49
+ checkedAt?: string;
50
+ error?: string;
51
+ }
52
+ /** Retained only as provenance when an old combined review request is normalized. */
53
+ export interface LegacyReviewSettings {
54
+ validationDepth?: string;
55
+ tier?: string;
56
+ recipeStrategy?: string;
57
+ executionTemplateId?: string;
58
+ executionTemplate?: import('./execution-templates.js').ExecutionTemplateReference;
59
+ taskTemplate?: import('./evals.js').TaskTemplateSelection;
60
+ taskFile?: string;
61
+ }
62
+ /** Marks an execution that uses separate static Review and runtime QA semantics. */
63
+ export interface ReviewQaContract {
64
+ version: 1;
65
+ legacy?: LegacyReviewSettings;
66
+ }
67
+ export interface ReviewQaDispatchInput {
68
+ flowType: string;
69
+ executionTemplateId?: string;
70
+ taskTemplate?: import('./evals.js').TaskTemplateSelection;
71
+ reviewValidationDepth?: string;
72
+ reviewTier?: string;
73
+ recipeStrategy?: string;
74
+ qaProfileId?: string;
75
+ qaInputs?: Record<string, QaInput>;
76
+ }
77
+ export type ReviewQaDispatchSelection = {
78
+ flowType: 'review-pr';
79
+ contract: ReviewQaContract;
80
+ qa?: never;
81
+ } | {
82
+ flowType: 'qa';
83
+ contract: ReviewQaContract;
84
+ qa: QaProfileSelection;
85
+ };
86
+ export declare class ReviewQaConfigurationError extends Error {
87
+ readonly code = "REVIEW_QA_NEEDS_CONFIGURATION";
88
+ }
89
+ /** Apply at unstarted intake boundaries; running and historical records keep their contract. */
90
+ export declare function resolveReviewQaDispatch(input: ReviewQaDispatchInput, config?: ProjectQaConfig): ReviewQaDispatchSelection | undefined;
91
+ export declare function validateQaConfig(value: unknown): asserts value is ProjectQaConfig;
92
+ export declare function captureQaAfterReview(config: ProjectQaConfig | undefined, defaults: import('./config.js').PRWorkflowPolicy): QaAfterReview | undefined;
93
+ /** Returns a detached snapshot so configuration edits cannot change an admitted task. */
94
+ export declare function selectQaProfile(config: ProjectQaConfig | undefined, requestedId?: string, inputs?: Record<string, QaInput>): QaProfileSelection;
95
+ export declare function qaInputFieldValue(inputs: Record<string, QaInput>, path: string): QaInput | undefined;
96
+ /** Skill-resolved runtime evidence index, written as artifacts/qa-result.json. */
97
+ export interface QaResult {
98
+ version: 1;
99
+ runId: string;
100
+ /** Exact admitted preset and effective inputs from inputs/qa.json. */
101
+ qa: QaProfileSelection;
102
+ /** Immutable source range resolved by the skill, checked against the prepared checkout. */
103
+ source: {
104
+ baseSha: string;
105
+ headSha: string;
106
+ };
107
+ /** Suite directory relative to artifacts/, using existing Recipe v1 suite scope/result files. */
108
+ suitePath: string;
109
+ /** Retained skill scope and suite binding, using canonical JSON SHA-256 digests. */
110
+ scope: {
111
+ path: string;
112
+ digest: string;
113
+ suiteDigest: string;
114
+ };
115
+ /** Case id to complete recipe package directory, relative to artifacts/. */
116
+ packages: Record<string, string>;
117
+ /** Existing case/proof target selected by the farm skill as the runtime smoke check. */
118
+ smoke: {
119
+ caseId: string;
120
+ proofTarget: string;
121
+ };
122
+ }
123
+ //# sourceMappingURL=qa.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qa.d.ts","sourceRoot":"","sources":["../../src/contracts/qa.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,234 @@
1
+ export class ReviewQaConfigurationError extends Error {
2
+ constructor() {
3
+ super(...arguments);
4
+ this.code = 'REVIEW_QA_NEEDS_CONFIGURATION';
5
+ }
6
+ }
7
+ /** Apply at unstarted intake boundaries; running and historical records keep their contract. */
8
+ export function resolveReviewQaDispatch(input, config) {
9
+ if (input.flowType !== 'review-pr' && input.flowType !== 'qa') {
10
+ if (input.qaProfileId !== undefined || input.qaInputs !== undefined) {
11
+ throw new ReviewQaConfigurationError('QA preset inputs require the QA flow');
12
+ }
13
+ return undefined;
14
+ }
15
+ const depth = input.reviewValidationDepth;
16
+ const tier = input.reviewTier?.trim();
17
+ const strategy = input.recipeStrategy?.trim();
18
+ if (depth !== undefined && depth !== 'static-code' && depth !== 'full-live') {
19
+ throw new ReviewQaConfigurationError(`Unknown legacy review validation depth: ${depth}`);
20
+ }
21
+ if (tier && !['light', 'standard', 'full'].includes(tier)) {
22
+ throw new ReviewQaConfigurationError(`Unknown legacy review tier: ${tier}`);
23
+ }
24
+ if (strategy && !['smoke', 'targeted', 'full-qa'].includes(strategy)) {
25
+ throw new ReviewQaConfigurationError(`Unknown legacy recipe strategy: ${strategy}`);
26
+ }
27
+ if (input.flowType === 'qa' && depth === 'static-code') {
28
+ throw new ReviewQaConfigurationError('QA conflicts with a static review depth; choose one flow');
29
+ }
30
+ if (input.flowType === 'review-pr' && depth !== 'full-live') {
31
+ if (strategy || (tier && (depth === undefined || tier !== 'light'))) {
32
+ throw new ReviewQaConfigurationError('Legacy review tier or recipe strategy is ambiguous; select Review or a QA preset');
33
+ }
34
+ if (input.qaProfileId !== undefined || input.qaInputs !== undefined) {
35
+ throw new ReviewQaConfigurationError('Static Review cannot select a QA preset; use Run QA');
36
+ }
37
+ }
38
+ const legacy = {
39
+ ...(depth !== undefined ? { validationDepth: depth } : {}),
40
+ ...(tier ? { tier } : {}),
41
+ ...(strategy ? { recipeStrategy: strategy } : {}),
42
+ ...(input.flowType === 'review-pr' && depth === 'full-live'
43
+ ? {
44
+ ...(input.executionTemplateId ? { executionTemplateId: input.executionTemplateId } : {}),
45
+ ...(input.taskTemplate ? { taskTemplate: input.taskTemplate } : {}),
46
+ }
47
+ : {}),
48
+ };
49
+ const contract = {
50
+ version: 1,
51
+ ...(Object.keys(legacy).length ? { legacy } : {}),
52
+ };
53
+ if (input.flowType === 'qa' || depth === 'full-live') {
54
+ if (!config) {
55
+ throw new ReviewQaConfigurationError("Configure this farm's QA presets before launching QA");
56
+ }
57
+ const qa = selectQaProfile(config, input.qaProfileId, input.qaInputs);
58
+ if (input.flowType === 'qa' &&
59
+ (input.taskTemplate ||
60
+ (input.executionTemplateId && input.executionTemplateId !== qa.profile.template_id))) {
61
+ throw new ReviewQaConfigurationError('QA execution template must match the selected farm preset');
62
+ }
63
+ return { flowType: 'qa', contract, qa };
64
+ }
65
+ return { flowType: 'review-pr', contract };
66
+ }
67
+ function isRecord(value) {
68
+ return value !== null && typeof value === 'object' && !Array.isArray(value);
69
+ }
70
+ function isInput(value) {
71
+ if (value === null || typeof value === 'string' || typeof value === 'boolean')
72
+ return true;
73
+ if (typeof value === 'number')
74
+ return Number.isFinite(value);
75
+ if (Array.isArray(value))
76
+ return value.every(isInput);
77
+ return isRecord(value) && Object.values(value).every(isInput);
78
+ }
79
+ function requireText(value, field) {
80
+ if (typeof value !== 'string' || !value.trim() || value !== value.trim()) {
81
+ throw new Error(`${field} must be a nonempty string without surrounding whitespace`);
82
+ }
83
+ }
84
+ function requireFields(value, allowed, field) {
85
+ const unknown = Object.keys(value).find((key) => !allowed.includes(key));
86
+ if (unknown)
87
+ throw new Error(`${field}.${unknown} is not a supported preset field`);
88
+ }
89
+ export function validateQaConfig(value) {
90
+ if (!isRecord(value))
91
+ throw new Error('qa must be an object');
92
+ requireFields(value, ['default_profile', 'profiles', 'after_review'], 'qa');
93
+ requireText(value.default_profile, 'qa.default_profile');
94
+ if (!Array.isArray(value.profiles) || value.profiles.length === 0) {
95
+ throw new Error('qa.profiles must contain at least one preset');
96
+ }
97
+ const ids = new Set();
98
+ for (const [index, profile] of value.profiles.entries()) {
99
+ const field = `qa.profiles[${index}]`;
100
+ if (!isRecord(profile))
101
+ throw new Error(`${field} must be an object`);
102
+ requireFields(profile, ['id', 'title', 'description', 'template_id', 'inputs', 'input_fields'], field);
103
+ requireText(profile.id, `${field}.id`);
104
+ requireText(profile.title, `${field}.title`);
105
+ requireText(profile.template_id, `${field}.template_id`);
106
+ if (profile.description !== undefined)
107
+ requireText(profile.description, `${field}.description`);
108
+ if (ids.has(profile.id))
109
+ throw new Error(`Duplicate QA preset id: ${profile.id}`);
110
+ ids.add(profile.id);
111
+ if (profile.inputs !== undefined &&
112
+ (!isRecord(profile.inputs) || !Object.values(profile.inputs).every(isInput))) {
113
+ throw new Error(`${field}.inputs must be an object containing JSON values`);
114
+ }
115
+ if (profile.input_fields !== undefined) {
116
+ if (!Array.isArray(profile.input_fields))
117
+ throw new Error(`${field}.input_fields must be an array`);
118
+ const paths = new Set();
119
+ for (const input of profile.input_fields) {
120
+ if (!isRecord(input))
121
+ throw new Error(`${field}.input_fields entries must be objects`);
122
+ requireFields(input, ['path', 'title', 'type', 'description', 'required', 'options'], `${field}.input_fields`);
123
+ requireText(input.path, 'QA field path');
124
+ requireText(input.title, 'QA field title');
125
+ if (!/^[a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*$/.test(input.path) ||
126
+ input.path
127
+ .split('.')
128
+ .some((part) => ['__proto__', 'constructor', 'prototype'].includes(part)))
129
+ throw new Error('QA field path is invalid');
130
+ if (paths.has(input.path))
131
+ throw new Error(`Duplicate QA field: ${input.path}`);
132
+ paths.add(input.path);
133
+ if (!['text', 'number', 'boolean', 'select'].includes(String(input.type)))
134
+ throw new Error('QA field type is invalid');
135
+ if (input.required !== undefined && typeof input.required !== 'boolean')
136
+ throw new Error('QA field required must be boolean');
137
+ if (input.description !== undefined)
138
+ requireText(input.description, 'QA field description');
139
+ if (input.type === 'select') {
140
+ if (!Array.isArray(input.options) || !input.options.length)
141
+ throw new Error('QA select field needs options');
142
+ const values = new Set();
143
+ for (const option of input.options) {
144
+ if (!isRecord(option))
145
+ throw new Error('QA field option must be an object');
146
+ requireFields(option, ['value', 'title'], 'QA field option');
147
+ requireText(option.value, 'QA option value');
148
+ requireText(option.title, 'QA option title');
149
+ if (values.has(option.value))
150
+ throw new Error('QA option values must be unique');
151
+ values.add(option.value);
152
+ }
153
+ }
154
+ else if (input.options !== undefined)
155
+ throw new Error('Only select fields have options');
156
+ }
157
+ }
158
+ }
159
+ if (!ids.has(value.default_profile)) {
160
+ throw new Error(`QA default preset does not exist: ${value.default_profile}`);
161
+ }
162
+ if (value.after_review !== undefined) {
163
+ if (!isRecord(value.after_review))
164
+ throw new Error('qa.after_review must be an object');
165
+ requireFields(value.after_review, ['enabled', 'profile_id'], 'qa.after_review');
166
+ if (typeof value.after_review.enabled !== 'boolean')
167
+ throw new Error('qa.after_review.enabled must be boolean');
168
+ requireText(value.after_review.profile_id, 'qa.after_review.profile_id');
169
+ if (!ids.has(value.after_review.profile_id))
170
+ throw new Error('Automatic QA profile does not exist');
171
+ }
172
+ }
173
+ export function captureQaAfterReview(config, defaults) {
174
+ if (!config?.after_review?.enabled)
175
+ return undefined;
176
+ const selection = selectQaProfile(config, config.after_review.profile_id, defaults.review?.qaInputs);
177
+ const { validationDepth: _legacyDepth, busySession: _busySession, ...review } = defaults.review ?? {
178
+ sessionIntent: 'reset',
179
+ scope: 'full',
180
+ };
181
+ return {
182
+ version: 1,
183
+ capturedAt: new Date().toISOString(),
184
+ selection,
185
+ ...(defaults.execution ? { execution: structuredClone(defaults.execution) } : {}),
186
+ review: {
187
+ ...structuredClone(review),
188
+ sessionIntent: 'reset',
189
+ scope: 'full',
190
+ workflow: 'qa',
191
+ qaProfileId: selection.profile.id,
192
+ qaInputs: structuredClone(selection.inputs),
193
+ },
194
+ state: 'pending',
195
+ };
196
+ }
197
+ /** Returns a detached snapshot so configuration edits cannot change an admitted task. */
198
+ export function selectQaProfile(config, requestedId, inputs = {}) {
199
+ if (!config)
200
+ throw new ReviewQaConfigurationError('This farm has no QA presets configured');
201
+ validateQaConfig(config);
202
+ if (requestedId !== undefined)
203
+ requireText(requestedId, 'QA preset id');
204
+ if (!isRecord(inputs) || !Object.values(inputs).every(isInput)) {
205
+ throw new Error('QA inputs must be an object containing JSON values');
206
+ }
207
+ const id = requestedId ?? config.default_profile;
208
+ const profile = config.profiles.find((entry) => entry.id === id);
209
+ if (!profile)
210
+ throw new ReviewQaConfigurationError(`QA preset does not exist in this farm: ${id}`);
211
+ const selection = JSON.parse(JSON.stringify({ profile, inputs: { ...profile.inputs, ...inputs } }));
212
+ for (const field of profile.input_fields ?? []) {
213
+ const value = qaInputFieldValue(selection.inputs, field.path);
214
+ const missing = value === undefined || value === null || (typeof value === 'string' && !value.trim());
215
+ if (missing) {
216
+ if (field.required)
217
+ throw new ReviewQaConfigurationError(`${field.title} is required`);
218
+ continue;
219
+ }
220
+ if ((field.type === 'text' && typeof value !== 'string') ||
221
+ (field.type === 'number' && (typeof value !== 'number' || !Number.isFinite(value))) ||
222
+ (field.type === 'boolean' && typeof value !== 'boolean') ||
223
+ (field.type === 'select' && !field.options?.some((option) => option.value === value)))
224
+ throw new ReviewQaConfigurationError(`${field.title} has an invalid value`);
225
+ }
226
+ return selection;
227
+ }
228
+ export function qaInputFieldValue(inputs, path) {
229
+ let value = inputs;
230
+ for (const part of path.split('.'))
231
+ value = isRecord(value) ? value[part] : undefined;
232
+ return value;
233
+ }
234
+ //# sourceMappingURL=qa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qa.js","sourceRoot":"","sources":["../../src/contracts/qa.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../../src/contracts/recipes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../../src/contracts/recipes.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,7 @@ export const RECIPE_QUALITY_FALLBACK_SOURCES = [
36
36
  'fallback:missing',
37
37
  ];
38
38
  const RECIPE_QUALITY_FLOW_TYPES = [
39
+ 'qa',
39
40
  'fix-bug',
40
41
  'review-pr',
41
42
  'dev',
@@ -1 +1 @@
1
- {"version":3,"file":"recipes.js","sourceRoot":"","sources":["../../src/contracts/recipes.ts"],"names":[],"mappings":"AAkBA,MAAM,CAAC,MAAM,sBAAsB,GAG/B;IACF,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,mCAAmC,EAAE;IAC7E,QAAQ,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,oCAAoC,EAAE;IACvF,KAAK,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,yCAAyC,EAAE;CACnF,CAAC;AAuCF,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC;AAEjD,8EAA8E;AAC9E,+DAA+D;AAC/D,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAU,CAAC;AACzE,MAAM,CAAC,MAAM,iCAAiC,GAAG;IAC/C,MAAM;IACN,MAAM;IACN,MAAM;IACN,gBAAgB;CACR,CAAC;AACX,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,MAAM;IACN,OAAO;IACP,OAAO;IACP,YAAY;IACZ,OAAO;IACP,SAAS;CACD,CAAC;AACX,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,QAAQ;IACR,SAAS;IACT,0BAA0B;IAC1B,sBAAsB;IACtB,iBAAiB;IACjB,kBAAkB;CACV,CAAC;AACX,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,0BAA0B;IAC1B,sBAAsB;IACtB,iBAAiB;IACjB,kBAAkB;CACV,CAAC;AAEX,MAAM,yBAAyB,GAAG;IAChC,SAAS;IACT,WAAW;IACX,KAAK;IACL,aAAa;IACb,eAAe;CACP,CAAC;AAmEX,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC;AACnF,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAc;IAC5C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9E,MAAM,OAAO,GAAG,KAAgC,CAAC;IACjD,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC1F,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACrF,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAc;IAC/C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9E,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,EAAE;QAC9C,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;YAAE,OAAO,KAAK,CAAC;QAC1F,MAAM,MAAM,GAAG,SAAoC,CAAC;QACpD,OAAO,CACL,iCAAiC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAsC,CAAC;YACzF,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;YACjC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAC/B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,6BAA6B,CACpC,KAAc;IAEd,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9E,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACzE,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC/E,IACE,MAAM,CAAC,SAAS,IAAI,IAAI;QACxB,CAAC,yBAAyB,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAa,CAAC;QAEzE,OAAO,KAAK,CAAC;IACf,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACnF,IAAI,MAAM,CAAC,eAAe,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,eAAe,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAChG,IACE,MAAM,CAAC,UAAU,IAAI,IAAI;QACzB,CAAC,0BAA0B,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAA8B,CAAC;QAE5F,OAAO,KAAK,CAAC;IACf,IAAI,MAAM,CAAC,aAAa,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC;QAAE,OAAO,KAAK,CAAC;IACvF,IAAI,MAAM,CAAC,aAAa,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC;QAAE,OAAO,KAAK,CAAC;IACvF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9E,MAAM,IAAI,GAAG,KAAgC,CAAC;IAC9C,IAAI,CAAC,+BAA+B,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAuC,CAAC;QACzF,OAAO,KAAK,CAAC;IACf,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC1D,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACxD,IAAI,OAAO,IAAI,CAAC,iBAAiB,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC9D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC;QAAE,OAAO,KAAK,CAAC;IACtD,IACE,IAAI,CAAC,eAAe,IAAI,IAAI;QAC5B,CAAC,+BAA+B,CAAC,QAAQ,CACvC,IAAI,CAAC,eAA6E,CACnF;QAED,OAAO,KAAK,CAAC;IACf,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9E,MAAM,QAAQ,GAAG,KAAgC,CAAC;IAClD,IAAI,QAAQ,CAAC,OAAO,KAAK,+BAA+B;QAAE,OAAO,KAAK,CAAC;IACvE,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAA+B,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9F,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC9F,OAAO,KAAK,CAAC;IACf,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAkC,CAAC;IAC5D,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9E,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,uBAAuB,CAAC;QACpF,OAAO,KAAK,CAAC;IACf,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IAClE,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAC5C,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,sBAAsB,CAAC;QAE3D,OAAO,KAAK,CAAC;IACf,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAC5C,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,sBAAsB,CAAC;QAE3D,OAAO,KAAK,CAAC;IACf,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QAAE,OAAO,KAAK,CAAC;IAClE,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,eAAe,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3E,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACtD,OAAO,IAAI,CAAC;AACd,CAAC;AAaD,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,6BAA6B,GAC9B,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"recipes.js","sourceRoot":"","sources":["../../src/contracts/recipes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import type { PRWorkflowDefaultSource } from './config.js';
2
+ import type { MonitoredPRIdentity, PRSourceAccount } from './pr-monitoring.js';
3
+ export interface ReviewPublicationPolicy {
4
+ enabled: boolean;
5
+ source: PRWorkflowDefaultSource | 'built-in';
6
+ teamId: string;
7
+ account: PRSourceAccount;
8
+ }
9
+ export interface ReviewPublicationReceipt {
10
+ version: 1;
11
+ state: 'prepared' | 'posting' | 'published';
12
+ runId: string;
13
+ ownerId: string;
14
+ account: PRSourceAccount;
15
+ pr: MonitoredPRIdentity;
16
+ headSha: string;
17
+ contentSha256: string;
18
+ marker: string;
19
+ event: 'APPROVE' | 'REQUEST_CHANGES' | 'COMMENT';
20
+ attemptedAt: string;
21
+ /** Hash of the outgoing body, retained for reconciliation after a lost response. */
22
+ bodySha256?: string;
23
+ reviewId?: number;
24
+ url?: string;
25
+ publishedAt?: string;
26
+ }
27
+ /** Gateway-created authority for a direct static run, independent of PR-intake intent state. */
28
+ export interface DirectReviewPublication {
29
+ ownerId: string;
30
+ pr: MonitoredPRIdentity;
31
+ requested?: boolean;
32
+ policy: ReviewPublicationPolicy | {
33
+ enabled: false;
34
+ source: PRWorkflowDefaultSource | 'built-in';
35
+ teamId?: never;
36
+ account?: never;
37
+ };
38
+ }
39
+ export declare function reviewPublicationPolicyForRun(run: Pick<import('./runs.js').Run, 'prWork' | 'reviewPublication'>): ReviewPublicationPolicy | {
40
+ enabled: false;
41
+ source: PRWorkflowDefaultSource | "built-in";
42
+ teamId?: never;
43
+ account?: never;
44
+ } | undefined;
45
+ //# sourceMappingURL=review-publication.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-publication.d.ts","sourceRoot":"","sources":["../../src/contracts/review-publication.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE/E,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,uBAAuB,GAAG,UAAU,CAAC;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,eAAe,CAAC;CAC1B;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,CAAC,CAAC;IACX,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,eAAe,CAAC;IACzB,EAAE,EAAE,mBAAmB,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,GAAG,iBAAiB,GAAG,SAAS,CAAC;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,gGAAgG;AAChG,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,mBAAmB,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,EACF,uBAAuB,GACvB;QACE,OAAO,EAAE,KAAK,CAAC;QACf,MAAM,EAAE,uBAAuB,GAAG,UAAU,CAAC;QAC7C,MAAM,CAAC,EAAE,KAAK,CAAC;QACf,OAAO,CAAC,EAAE,KAAK,CAAC;KACjB,CAAC;CACP;AAED,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,IAAI,CAAC,OAAO,WAAW,EAAE,GAAG,EAAE,QAAQ,GAAG,mBAAmB,CAAC;aARnD,KAAK;YACN,uBAAuB,GAAG,UAAU;aACnC,KAAK;cACJ,KAAK;cAYtB"}
@@ -0,0 +1,6 @@
1
+ export function reviewPublicationPolicyForRun(run) {
2
+ return (run.reviewPublication?.gate?.publication.policy ??
3
+ run.prWork?.publication ??
4
+ run.reviewPublication?.direct?.policy);
5
+ }
6
+ //# sourceMappingURL=review-publication.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-publication.js","sourceRoot":"","sources":["../../src/contracts/review-publication.ts"],"names":[],"mappings":"AA4CA,MAAM,UAAU,6BAA6B,CAC3C,GAAkE;IAElE,OAAO,CACL,GAAG,CAAC,iBAAiB,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM;QAC/C,GAAG,CAAC,MAAM,EAAE,WAAW;QACvB,GAAG,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,CACtC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,68 @@
1
+ import type { ExecutionTemplateSourceRoot } from './execution-templates.js';
2
+ export interface ReviewWorkspaceSupportSource {
3
+ name: string;
4
+ root: ExecutionTemplateSourceRoot;
5
+ subpath?: string;
6
+ }
7
+ export interface ReviewWorkspaceSupportEntry extends ReviewWorkspaceSupportSource {
8
+ entry: string;
9
+ }
10
+ /** Trusted farm configuration. This contract accepts files and installed packages, never commands. */
11
+ export interface ReviewWorkspaceSupportConfig {
12
+ skills?: ReviewWorkspaceSupportEntry[];
13
+ libraries?: ReviewWorkspaceSupportSource[];
14
+ runtime?: ReviewWorkspaceSupportEntry;
15
+ environment?: Record<string, string>;
16
+ }
17
+ export interface ReviewWorkspaceSupportBinding {
18
+ /** Immutable node cache outside the run's source and writable output roots. */
19
+ path: string;
20
+ sha256: string;
21
+ sources: Array<{
22
+ kind: 'skill' | 'library' | 'runtime';
23
+ name: string;
24
+ sourceRevision?: string;
25
+ sourceDirty?: boolean;
26
+ packageName?: string;
27
+ packageVersion?: string;
28
+ }>;
29
+ skills: Array<{
30
+ name: string;
31
+ path: string;
32
+ }>;
33
+ runtime?: {
34
+ name: string;
35
+ path: string;
36
+ };
37
+ /** Literal configuration with {{support}} bound at native launch. Never credentials. */
38
+ environment: Record<string, string>;
39
+ }
40
+ /** Operator-selected machine for a static review without a slot. */
41
+ export interface ReviewWorkspaceTarget {
42
+ machine: string;
43
+ }
44
+ /** Immutable PR inputs captured before a workspace reviewer starts. */
45
+ export interface ReviewWorkspaceSubject {
46
+ repository: string;
47
+ repositoryUrl: string;
48
+ headSha: string;
49
+ baseSha: string;
50
+ branch: string;
51
+ title: string;
52
+ body: string;
53
+ capturedAt: string;
54
+ url?: string;
55
+ }
56
+ /** Trusted binding created by the execution runtime, never supplied by a caller. */
57
+ export interface ReviewWorkspaceBinding {
58
+ workspaceId: string;
59
+ machine: string;
60
+ executionNodeId: string;
61
+ checkoutPath: string;
62
+ taskPath: string;
63
+ artifactPath: string;
64
+ support?: ReviewWorkspaceSupportBinding;
65
+ /** Node receipt confirms the source checkout was removed; task/report paths remain. */
66
+ cleanedAt?: string;
67
+ }
68
+ //# sourceMappingURL=review-workspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-workspace.d.ts","sourceRoot":"","sources":["../../src/contracts/review-workspace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAE5E,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,2BAA2B,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,MAAM,WAAW,2BAA4B,SAAQ,4BAA4B;IAC/E,KAAK,EAAE,MAAM,CAAC;CACf;AACD,sGAAsG;AACtG,MAAM,WAAW,4BAA4B;IAC3C,MAAM,CAAC,EAAE,2BAA2B,EAAE,CAAC;IACvC,SAAS,CAAC,EAAE,4BAA4B,EAAE,CAAC;IAC3C,OAAO,CAAC,EAAE,2BAA2B,CAAC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AACD,MAAM,WAAW,6BAA6B;IAC5C,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;QACtC,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC,CAAC;IACH,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9C,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,wFAAwF;IACxF,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED,oEAAoE;AACpE,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,uEAAuE;AACvE,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,oFAAoF;AACpF,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,6BAA6B,CAAC;IACxC,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=review-workspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-workspace.js","sourceRoot":"","sources":["../../src/contracts/review-workspace.ts"],"names":[],"mappings":""}
@@ -17,6 +17,13 @@ export interface BotComment {
17
17
  export type PRRecommendation = 'WORKING' | 'NEEDS_ATTENTION' | 'IN_REVIEW' | 'READY' | 'WAITING_FOR_MERGE' | 'MERGED' | 'CLOSED_WITHOUT_MERGE';
18
18
  export type PRFamilyWorkflowState = 'active' | 'complete' | 'failed';
19
19
  export type PRFamilyMergeState = 'not_applicable' | 'waiting_for_merge' | 'merged' | 'closed_without_merge';
20
+ /** A reviewer's standing verdict: the review that still counts toward reviewDecision. */
21
+ export interface PRReviewVerdict {
22
+ reviewer: string;
23
+ /** APPROVED | CHANGES_REQUESTED (GitHub `latestOpinionatedReviews`). */
24
+ state: string;
25
+ submittedAt: string | null;
26
+ }
20
27
  export interface PRStatus {
21
28
  pr: number;
22
29
  author?: string;
@@ -59,6 +66,22 @@ export interface PRStatus {
59
66
  mergeable: string;
60
67
  mergeConflict: boolean;
61
68
  reviewDecision: string;
69
+ /**
70
+ * Each reviewer's standing verdict. Later plain comments from the same
71
+ * reviewer do not replace it, which is why this is not `latestReviews`.
72
+ */
73
+ reviewVerdicts?: PRReviewVerdict[];
74
+ /** Reviewers GitHub is still waiting on: team slugs and user logins. */
75
+ reviewRequests?: {
76
+ teams: string[];
77
+ users: string[];
78
+ };
79
+ /**
80
+ * A commit landed after the newest CHANGES_REQUESTED review and no later
81
+ * verdict replaced it: the author may have addressed the feedback and is
82
+ * waiting for a re-review.
83
+ */
84
+ pushedAfterChangesRequested?: boolean;
62
85
  recommendation: PRRecommendation;
63
86
  /** True when a dispatch worker is actively running against this PR. */
64
87
  workerActive?: boolean;
@@ -86,6 +109,7 @@ export interface PRReviewComment {
86
109
  createdAt: string;
87
110
  updatedAt: string;
88
111
  }
112
+ export { APPROVE_PUBLISH_UNRESOLVED_ACTION, independentReviewFixRetriesExhausted, independentReviewMatchesPreparedPackage, independentReviewRetryCapReason, independentReviewRetryCount, latestExhaustedIndependentReview, latestIndependentReview, } from '../runs/review-retries.js';
89
113
  export type { CommentsTriageSummary, IndependentReviewAttempt, IndependentReviewStatus, PublicationStatus, PublicationTarget, ReviewDiffSnapshot, ReviewFixDeltaSnapshot, ReviewGatePayload, ReviewLineComment, ReviewLoopTimelineSegment, ReviewLoopTimelineSegmentKind, ReviewRunnerId, ReviewValidationDepth, RunnerSessionUsage, } from './runs.js';
90
114
  export { isReviewValidationDepth, REVIEW_VALIDATION_DEPTHS, reviewValidationDepthForLoop, } from './runs.js';
91
115
  //# sourceMappingURL=reviews.d.ts.map