@farmslot/protocol 0.25.0 → 0.27.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 (120) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/contracts/agents.d.ts +17 -0
  3. package/dist/contracts/agents.d.ts.map +1 -1
  4. package/dist/contracts/dispatch.d.ts +2 -0
  5. package/dist/contracts/dispatch.d.ts.map +1 -1
  6. package/dist/contracts/execution-templates.d.ts +6 -0
  7. package/dist/contracts/execution-templates.d.ts.map +1 -1
  8. package/dist/contracts/execution-templates.js +6 -0
  9. package/dist/contracts/execution-templates.js.map +1 -1
  10. package/dist/contracts/index.d.ts +4 -0
  11. package/dist/contracts/index.d.ts.map +1 -1
  12. package/dist/contracts/index.js +4 -0
  13. package/dist/contracts/index.js.map +1 -1
  14. package/dist/contracts/pr-monitoring.d.ts +167 -0
  15. package/dist/contracts/pr-monitoring.d.ts.map +1 -0
  16. package/dist/contracts/pr-monitoring.js +2 -0
  17. package/dist/contracts/pr-monitoring.js.map +1 -0
  18. package/dist/contracts/pr-rules.d.ts +350 -0
  19. package/dist/contracts/pr-rules.d.ts.map +1 -0
  20. package/dist/contracts/pr-rules.js +6 -0
  21. package/dist/contracts/pr-rules.js.map +1 -0
  22. package/dist/contracts/readiness.d.ts +37 -0
  23. package/dist/contracts/readiness.d.ts.map +1 -0
  24. package/dist/contracts/readiness.js +8 -0
  25. package/dist/contracts/readiness.js.map +1 -0
  26. package/dist/contracts/reviews.d.ts +1 -0
  27. package/dist/contracts/reviews.d.ts.map +1 -1
  28. package/dist/contracts/reviews.js.map +1 -1
  29. package/dist/contracts/runs.d.ts +22 -6
  30. package/dist/contracts/runs.d.ts.map +1 -1
  31. package/dist/contracts/runs.js +18 -4
  32. package/dist/contracts/runs.js.map +1 -1
  33. package/dist/contracts/slots.d.ts +7 -0
  34. package/dist/contracts/slots.d.ts.map +1 -1
  35. package/dist/contracts/slots.js.map +1 -1
  36. package/dist/contracts/template-placeholders.d.ts +16 -0
  37. package/dist/contracts/template-placeholders.d.ts.map +1 -0
  38. package/dist/contracts/template-placeholders.js +39 -0
  39. package/dist/contracts/template-placeholders.js.map +1 -0
  40. package/dist/index.d.ts +6 -0
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +6 -0
  43. package/dist/index.js.map +1 -1
  44. package/dist/integrations/pr-monitoring.d.ts +13 -0
  45. package/dist/integrations/pr-monitoring.d.ts.map +1 -0
  46. package/dist/integrations/pr-monitoring.js +160 -0
  47. package/dist/integrations/pr-monitoring.js.map +1 -0
  48. package/dist/integrations/pr-project-import.d.ts +12 -0
  49. package/dist/integrations/pr-project-import.d.ts.map +1 -0
  50. package/dist/integrations/pr-project-import.js +279 -0
  51. package/dist/integrations/pr-project-import.js.map +1 -0
  52. package/dist/integrations/pr-review-requirements.d.ts +4 -0
  53. package/dist/integrations/pr-review-requirements.d.ts.map +1 -0
  54. package/dist/integrations/pr-review-requirements.js +21 -0
  55. package/dist/integrations/pr-review-requirements.js.map +1 -0
  56. package/dist/integrations/pr-rule-config.d.ts +6 -0
  57. package/dist/integrations/pr-rule-config.d.ts.map +1 -0
  58. package/dist/integrations/pr-rule-config.js +217 -0
  59. package/dist/integrations/pr-rule-config.js.map +1 -0
  60. package/dist/integrations/pr-rule-predicates.d.ts +9 -0
  61. package/dist/integrations/pr-rule-predicates.d.ts.map +1 -0
  62. package/dist/integrations/pr-rule-predicates.js +223 -0
  63. package/dist/integrations/pr-rule-predicates.js.map +1 -0
  64. package/dist/rpc/backlog.d.ts +2 -2
  65. package/dist/rpc/backlog.d.ts.map +1 -1
  66. package/dist/rpc/backlog.js +2 -1
  67. package/dist/rpc/backlog.js.map +1 -1
  68. package/dist/rpc/config.d.ts +13 -1
  69. package/dist/rpc/config.d.ts.map +1 -1
  70. package/dist/rpc/config.js +1 -0
  71. package/dist/rpc/config.js.map +1 -1
  72. package/dist/rpc/index.d.ts +4 -0
  73. package/dist/rpc/index.d.ts.map +1 -1
  74. package/dist/rpc/index.js +4 -0
  75. package/dist/rpc/index.js.map +1 -1
  76. package/dist/rpc/native-session.d.ts +193 -0
  77. package/dist/rpc/native-session.d.ts.map +1 -0
  78. package/dist/rpc/native-session.js +2 -0
  79. package/dist/rpc/native-session.js.map +1 -0
  80. package/dist/rpc/pr-push.d.ts +56 -0
  81. package/dist/rpc/pr-push.d.ts.map +1 -0
  82. package/dist/rpc/pr-push.js +2 -0
  83. package/dist/rpc/pr-push.js.map +1 -0
  84. package/dist/rpc/pr-rules.d.ts +72 -0
  85. package/dist/rpc/pr-rules.d.ts.map +1 -0
  86. package/dist/rpc/pr-rules.js +2 -0
  87. package/dist/rpc/pr-rules.js.map +1 -0
  88. package/dist/rpc/pr-watch.d.ts +43 -0
  89. package/dist/rpc/pr-watch.d.ts.map +1 -0
  90. package/dist/rpc/pr-watch.js +2 -0
  91. package/dist/rpc/pr-watch.js.map +1 -0
  92. package/dist/rpc/registry.d.ts +40 -0
  93. package/dist/rpc/registry.d.ts.map +1 -1
  94. package/dist/rpc/registry.js +40 -0
  95. package/dist/rpc/registry.js.map +1 -1
  96. package/dist/rpc/roadmap.d.ts +1 -1
  97. package/dist/rpc/roadmap.d.ts.map +1 -1
  98. package/dist/rpc/roadmap.js +2 -1
  99. package/dist/rpc/roadmap.js.map +1 -1
  100. package/dist/rpc/worker-session-history.d.ts +1 -1
  101. package/dist/rpc/worker-session-history.d.ts.map +1 -1
  102. package/dist/runs/interactive-handoff.d.ts +14 -0
  103. package/dist/runs/interactive-handoff.d.ts.map +1 -0
  104. package/dist/runs/interactive-handoff.js +69 -0
  105. package/dist/runs/interactive-handoff.js.map +1 -0
  106. package/dist/runs/portable-bundle.d.ts +2 -0
  107. package/dist/runs/portable-bundle.d.ts.map +1 -1
  108. package/dist/runs/portable-bundle.js +14 -1
  109. package/dist/runs/portable-bundle.js.map +1 -1
  110. package/dist/runs/review-chain.d.ts +3 -2
  111. package/dist/runs/review-chain.d.ts.map +1 -1
  112. package/dist/runs/review-chain.js +4 -2
  113. package/dist/runs/review-chain.js.map +1 -1
  114. package/dist/transport/events.d.ts +12 -1
  115. package/dist/transport/events.d.ts.map +1 -1
  116. package/dist/transport/events.js +4 -0
  117. package/dist/transport/events.js.map +1 -1
  118. package/dist/version.d.ts +1 -1
  119. package/dist/version.js +1 -1
  120. package/package.json +1 -1
@@ -0,0 +1,350 @@
1
+ import type { MonitoredPRIdentity, PRExecutionProfile, PRMonitorPolicy, PRSourceAccount } from './pr-monitoring.js';
2
+ import type { ReviewScope, ReviewSessionIntent, ReviewValidationDepth } from './runs.js';
3
+ /** Uses the same Continue/Fresh and review-depth choices as manual review rounds. */
4
+ export interface PRReviewOptions {
5
+ sessionIntent: ReviewSessionIntent;
6
+ scope: ReviewScope;
7
+ validationDepth: ReviewValidationDepth;
8
+ /** Wait for the compatible saved reviewer's slot, or allow a fresh session elsewhere. */
9
+ busySession?: 'wait' | 'fresh';
10
+ }
11
+ export declare const DEFAULT_PR_REVIEW_OPTIONS: Readonly<PRReviewOptions>;
12
+ export type PRRuleField = 'repository' | 'author' | 'state' | 'draft' | 'base-branch' | 'head-branch' | 'labels' | 'changed-paths' | 'author-teams' | 'project-memberships' | {
13
+ projectId: string;
14
+ fieldId: string;
15
+ valueType: 'text' | 'number' | 'date' | 'single-select';
16
+ };
17
+ export type PRRuleValue = string | number | boolean | string[] | null;
18
+ export type PRRulePredicate = {
19
+ kind: 'all' | 'any';
20
+ items: PRRulePredicate[];
21
+ } | {
22
+ kind: 'not';
23
+ item: PRRulePredicate;
24
+ } | {
25
+ kind: 'compare';
26
+ field: PRRuleField;
27
+ operator: 'equals' | 'one-of' | 'contains-any' | 'contains-all' | 'glob' | 'greater-than' | 'less-than' | 'is-set';
28
+ value: PRRuleValue;
29
+ };
30
+ export type PRRuleFact = {
31
+ state: 'known';
32
+ value: PRRuleValue;
33
+ } | {
34
+ state: 'unknown';
35
+ reason: string;
36
+ };
37
+ /** Observed GitHub review state for one configured account; cannot authorize execution. */
38
+ export interface PRReviewObservation {
39
+ observedAt: string;
40
+ headSha: string;
41
+ state: 'open' | 'closed' | 'merged';
42
+ draft: boolean;
43
+ decision: string | null;
44
+ reviewer: string;
45
+ requested: boolean;
46
+ review: {
47
+ state: string;
48
+ commit: string | null;
49
+ submittedAt: string | null;
50
+ } | null;
51
+ }
52
+ export interface PRRuleSubject {
53
+ pr: MonitoredPRIdentity;
54
+ headSha: string;
55
+ title: string;
56
+ observedAt: string;
57
+ /** Keyed with prRuleFieldKey; Project option IDs remain distinct from their display names. */
58
+ facts: Record<string, PRRuleFact>;
59
+ sourceReasons?: string[];
60
+ reviewObservation?: PRReviewObservation;
61
+ /** Supplemental display observations; not changes that authorize rule admission. */
62
+ reviewPolicyFacts?: {
63
+ approvalCount?: number;
64
+ providerReviewDecision?: string;
65
+ lastActivityAt?: string;
66
+ };
67
+ }
68
+ export interface PRRuleMatch {
69
+ state: 'match' | 'no-match' | 'unknown';
70
+ reasons: string[];
71
+ }
72
+ export type PRRuleSource = {
73
+ kind: 'repository';
74
+ repo: string;
75
+ } | {
76
+ kind: 'github-project';
77
+ projectId: string;
78
+ label: string;
79
+ url?: string;
80
+ importedView?: PRImportedProjectView;
81
+ };
82
+ export type PRProjectFilterTerm = {
83
+ text: string;
84
+ } & ({
85
+ kind: 'predicate';
86
+ predicate: PRRulePredicate;
87
+ manuallyMapped?: boolean;
88
+ } | {
89
+ kind: 'constant';
90
+ value: boolean;
91
+ } | {
92
+ kind: 'unmapped';
93
+ reason: string;
94
+ });
95
+ /** A reviewed snapshot of view filters. Later edits to the GitHub view require another import. */
96
+ export interface PRImportedProjectView {
97
+ number: number;
98
+ name: string;
99
+ filter: string;
100
+ terms: PRProjectFilterTerm[];
101
+ }
102
+ export interface PRProjectField {
103
+ id: string;
104
+ name: string;
105
+ dataType: string;
106
+ options?: Array<{
107
+ id: string;
108
+ name: string;
109
+ }>;
110
+ }
111
+ export interface PRProjectCatalog {
112
+ id: string;
113
+ title: string;
114
+ url: string;
115
+ fields: PRProjectField[];
116
+ }
117
+ export interface PRRepositoryReviewPolicy {
118
+ repo: string;
119
+ project?: string;
120
+ reviewProfile: string;
121
+ review?: PRReviewOptions;
122
+ execution?: PRExecutionProfile;
123
+ excludedLabels: string[];
124
+ approvalTarget?: number;
125
+ staleAfterDays?: number;
126
+ }
127
+ export interface PRTeamConfig {
128
+ name: string;
129
+ account: PRSourceAccount;
130
+ sources: PRRuleSource[];
131
+ predicate: PRRulePredicate;
132
+ repositories: PRRepositoryReviewPolicy[];
133
+ execution?: PRExecutionProfile;
134
+ review?: PRReviewOptions;
135
+ /** GitHub membership checks are limited to these explicit org/team slugs. */
136
+ githubTeams: string[];
137
+ /** Audience selection never grants gateway or repository access. */
138
+ notificationPrincipalIds: string[];
139
+ }
140
+ export interface PRTeamProfile {
141
+ id: string;
142
+ ownerId: string;
143
+ revision: number;
144
+ config: PRTeamConfig;
145
+ createdAt: string;
146
+ updatedAt: string;
147
+ }
148
+ export type PRRuleAction = {
149
+ kind: 'notify';
150
+ } | {
151
+ kind: 'monitor';
152
+ policy: PRMonitorPolicy;
153
+ pollIntervalMs?: number;
154
+ } | {
155
+ kind: 'review';
156
+ autoStart: boolean;
157
+ execution?: PRExecutionProfile;
158
+ review?: PRReviewOptions;
159
+ };
160
+ export interface PRTriggerRuleConfig {
161
+ name: string;
162
+ teamId: string;
163
+ predicate: PRRulePredicate;
164
+ actions: PRRuleAction[];
165
+ pollIntervalMs: number;
166
+ maxAdmissionsPerScan: number;
167
+ rereviewOnHeadChange: boolean;
168
+ }
169
+ export interface PRRuleSourceProgress {
170
+ id: string;
171
+ startedAt: string;
172
+ oldestObservationAt?: string;
173
+ completedAt?: string;
174
+ pages: number;
175
+ items: number;
176
+ pendingConnections: number;
177
+ requestsThisAttempt: number;
178
+ resumed: boolean;
179
+ nextAttemptAt?: string;
180
+ }
181
+ export interface PRRuleScanState {
182
+ sourceProgress?: PRRuleSourceProgress;
183
+ baselinePending: boolean;
184
+ /** Changed source/fact configuration needs a new baseline, while already-admitted work is revalidated. */
185
+ rebasePending?: boolean;
186
+ backfillRequested: boolean;
187
+ checkedAt?: string;
188
+ nextScanAt?: string;
189
+ error?: string;
190
+ admissionWarning?: string;
191
+ /** Baseline revisions prevent enabling/editing a rule from silently backfilling old matches. */
192
+ subjects: Record<string, {
193
+ revision: string;
194
+ matched: boolean;
195
+ admitted: boolean;
196
+ admittedActions?: Array<PRRuleAction['kind']>;
197
+ actionIds?: Partial<Record<'notify' | 'monitor', string>>;
198
+ deferredActions?: Array<PRRuleAction['kind']>;
199
+ }>;
200
+ }
201
+ /** Durable non-worker actions. Completed monitor enrollment never changes an existing policy. */
202
+ export interface PRRuleActionRecord {
203
+ id: string;
204
+ kind: 'notify' | 'monitor';
205
+ requiresFreshValidation?: boolean;
206
+ nextValidationAt?: string;
207
+ ownerId: string;
208
+ ruleId: string;
209
+ ruleRevision: number;
210
+ ruleName: string;
211
+ teamId: string;
212
+ teamRevision: number;
213
+ teamName: string;
214
+ account: PRSourceAccount;
215
+ subject: PRRuleSubject;
216
+ sourceRevision: string;
217
+ reasons: string[];
218
+ project?: string;
219
+ monitorPolicy?: PRMonitorPolicy;
220
+ monitorPollIntervalMs?: number;
221
+ current: boolean;
222
+ status: 'pending' | 'applied' | 'withdrawn';
223
+ monitorId?: string;
224
+ error?: string;
225
+ acknowledgedBy: Record<string, string>;
226
+ createdAt: string;
227
+ updatedAt: string;
228
+ }
229
+ /** Audience-filtered attention, independent of optional push delivery. */
230
+ export interface PRRuleNotification {
231
+ id: string;
232
+ teamId: string;
233
+ pr: MonitoredPRIdentity;
234
+ headSha: string;
235
+ title: string;
236
+ teamName: string;
237
+ ruleName: string;
238
+ reasons: string[];
239
+ current: boolean;
240
+ createdAt: string;
241
+ acknowledgedAt?: string;
242
+ }
243
+ export interface PRTriggerRule {
244
+ id: string;
245
+ ownerId: string;
246
+ revision: number;
247
+ config: PRTriggerRuleConfig;
248
+ enabled: boolean;
249
+ createdAt: string;
250
+ updatedAt: string;
251
+ scan: PRRuleScanState;
252
+ }
253
+ export interface PRReviewRequest {
254
+ teamId: string;
255
+ pr: MonitoredPRIdentity;
256
+ idempotencyKey: string;
257
+ autoStart: boolean;
258
+ execution?: PRExecutionProfile;
259
+ review?: PRReviewOptions;
260
+ /** Display/audit references only; these never confer execution authority. */
261
+ source: {
262
+ client: string;
263
+ reference?: string;
264
+ requester?: string;
265
+ };
266
+ }
267
+ export interface PRReviewSubmission {
268
+ id: string;
269
+ ownerId: string;
270
+ revision: number;
271
+ request: PRReviewRequest;
272
+ intentId?: string;
273
+ /** Gateway-frozen execution boundary at submission, before provider reads. */
274
+ priorExecutionIds?: string[];
275
+ checkedAt?: string;
276
+ error?: string;
277
+ cancelledAt?: string;
278
+ createdAt: string;
279
+ updatedAt: string;
280
+ }
281
+ export type PRReviewContribution = {
282
+ reviewObservation?: PRReviewObservation;
283
+ teamId: string;
284
+ teamRevision: number;
285
+ ownerId: string;
286
+ reasons: string[];
287
+ project?: string;
288
+ execution?: PRExecutionProfile;
289
+ review?: PRReviewOptions;
290
+ autoStart: boolean;
291
+ eligible: boolean;
292
+ configurationErrors: string[];
293
+ acceptedAt?: string;
294
+ deferredAt?: string;
295
+ } & ({
296
+ ruleId: string;
297
+ ruleRevision: number;
298
+ submissionId?: never;
299
+ submissionRevision?: never;
300
+ } | {
301
+ submissionId: string;
302
+ submissionRevision: number;
303
+ ruleId?: never;
304
+ ruleRevision?: never;
305
+ });
306
+ export interface PRReviewIntent {
307
+ id: string;
308
+ /** Display metadata from discovery; absent on older saved intents. */
309
+ title?: string;
310
+ author?: string;
311
+ /** Explicit resubmission after execution starts creates another round for this head/profile. */
312
+ round?: number;
313
+ pr: MonitoredPRIdentity;
314
+ headSha: string;
315
+ reviewProfile: string;
316
+ status: 'held' | 'needs-configuration' | 'queued' | 'running' | 'completed' | 'failed' | 'withdrawn';
317
+ contributions: PRReviewContribution[];
318
+ createdAt: string;
319
+ updatedAt: string;
320
+ waitingReason?: string;
321
+ queueItemId?: string;
322
+ runId?: string;
323
+ reviewedSha?: string;
324
+ dispatchHold?: string;
325
+ }
326
+ export interface PRRulePreviewItem {
327
+ subject: PRRuleSubject;
328
+ match: PRRuleMatch;
329
+ project?: string;
330
+ reviewProfile: string;
331
+ execution?: PRExecutionProfile;
332
+ review?: PRReviewOptions;
333
+ configurationErrors: string[];
334
+ actionErrors?: Partial<Record<PRRuleAction['kind'], string[]>>;
335
+ /** Supplemental team policy observations; never merge authority. */
336
+ policySummary?: string[];
337
+ }
338
+ export interface PRRulePreview {
339
+ sourceProgress?: PRRuleSourceProgress;
340
+ teamId: string;
341
+ teamRevision: number;
342
+ ruleId: string;
343
+ ruleRevision: number;
344
+ checkedAt: string;
345
+ complete: boolean;
346
+ sourceErrors: string[];
347
+ ignoredItems: number;
348
+ items: PRRulePreviewItem[];
349
+ }
350
+ //# sourceMappingURL=pr-rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pr-rules.d.ts","sourceRoot":"","sources":["../../src/contracts/pr-rules.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export const DEFAULT_PR_REVIEW_OPTIONS = {
2
+ sessionIntent: 'resume',
3
+ scope: 'incremental',
4
+ validationDepth: 'static-code',
5
+ };
6
+ //# sourceMappingURL=pr-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pr-rules.js","sourceRoot":"","sources":["../../src/contracts/pr-rules.ts"],"names":[],"mappings":"AAiBA,MAAM,CAAC,MAAM,yBAAyB,GAA8B;IAClE,aAAa,EAAE,QAAQ;IACvB,KAAK,EAAE,aAAa;IACpB,eAAe,EAAE,aAAa;CAC/B,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Readiness record: what a harness did to make a checkout ready for a task and
3
+ * whether it succeeded. Farmslot defines the shape; a harness (mm-harness) fills
4
+ * the steps. Lives at `<artifacts dir>/sandbox.json` — the task's `artifacts/`
5
+ * for a skill run, the checkout runtime dir for a farm slot.
6
+ */
7
+ export declare const READINESS_RECORD = "sandbox.json";
8
+ export type ReadinessStepStatus = 'pass' | 'fail' | 'skipped';
9
+ export interface ReadinessStep {
10
+ /** Stable step id, e.g. `doctor`, `status`, `launch`, `fixtures`, `verify`. */
11
+ id: string;
12
+ /** The exact command line the harness ran. */
13
+ command: string;
14
+ status: ReadinessStepStatus;
15
+ exitCode: number;
16
+ /** Report the step produced, relative to the record's directory, when it wrote one. */
17
+ reportPath?: string;
18
+ /** One-line reason for a fail or skip. */
19
+ reason?: string;
20
+ }
21
+ export interface ReadinessRecord {
22
+ schemaVersion: 1;
23
+ harness: {
24
+ name: string;
25
+ version: string;
26
+ /** How the executable was chosen: env override, task-local lock, PATH, … */
27
+ source: string;
28
+ executable: string;
29
+ };
30
+ platform: string;
31
+ mobilePlatform?: 'ios' | 'android';
32
+ steps: ReadinessStep[];
33
+ /** True when every non-skipped step passed. */
34
+ ready: boolean;
35
+ recordedAt: string;
36
+ }
37
+ //# sourceMappingURL=readiness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readiness.d.ts","sourceRoot":"","sources":["../../src/contracts/readiness.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAE/C,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAE9D,MAAM,WAAW,aAAa;IAC5B,+EAA+E;IAC/E,EAAE,EAAE,MAAM,CAAC;IACX,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,uFAAuF;IACvF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,CAAC,CAAC;IACjB,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,4EAA4E;QAC5E,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;IACnC,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,+CAA+C;IAC/C,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Readiness record: what a harness did to make a checkout ready for a task and
3
+ * whether it succeeded. Farmslot defines the shape; a harness (mm-harness) fills
4
+ * the steps. Lives at `<artifacts dir>/sandbox.json` — the task's `artifacts/`
5
+ * for a skill run, the checkout runtime dir for a farm slot.
6
+ */
7
+ export const READINESS_RECORD = 'sandbox.json';
8
+ //# sourceMappingURL=readiness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readiness.js","sourceRoot":"","sources":["../../src/contracts/readiness.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAAC"}
@@ -19,6 +19,7 @@ export type PRFamilyWorkflowState = 'active' | 'complete' | 'failed';
19
19
  export type PRFamilyMergeState = 'not_applicable' | 'waiting_for_merge' | 'merged' | 'closed_without_merge';
20
20
  export interface PRStatus {
21
21
  pr: number;
22
+ author?: string;
22
23
  title: string;
23
24
  summary: string | null;
24
25
  repo: string;
@@ -1 +1 @@
1
- {"version":3,"file":"reviews.d.ts","sourceRoot":"","sources":["../../src/contracts/reviews.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reviews.d.ts","sourceRoot":"","sources":["../../src/contracts/reviews.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"reviews.js","sourceRoot":"","sources":["../../src/contracts/reviews.ts"],"names":[],"mappings":"AA4HA,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"reviews.js","sourceRoot":"","sources":["../../src/contracts/reviews.ts"],"names":[],"mappings":"AA6HA,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,WAAW,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { ArtifactRef, SelfReviewIssue } from '../recipes/step-io.js';
2
2
  import type { WorkerSignalChecklistEvent, WorkerSignalChecklistTiming } from '../transport/signal.js';
3
- import type { AgentContext, AgentContextTarget, SafetyTier, ScriptedRunnerConfig } from './agents.js';
3
+ import type { AgentContext, AgentContextTarget, RunnerSessionArchiveRef, SafetyTier, ScriptedRunnerConfig } from './agents.js';
4
4
  import type { FailureCategory, RunRecoveryProposalConfidence } from './chat.js';
5
5
  import type { TaskTemplateSelection, TemplateProvenance } from './evals.js';
6
6
  import type { EvidenceQualityReport, RecipeQualityArtifact } from './recipes.js';
@@ -93,6 +93,8 @@ export interface ReviewGatePayload {
93
93
  qualityReport?: EvidenceQualityReport | null;
94
94
  workerLearnings?: string;
95
95
  }
96
+ /** Review evidence retained independently of the decision to publish it. */
97
+ export type RunReviewResult = Pick<ReviewGatePayload, 'recommendation' | 'reviewMd' | 'lineComments' | 'reviewSnapshot' | 'artifactManifest' | 'reviewInputArtifactPaths'>;
96
98
  export type PublicationTarget = 'draft' | 'ready';
97
99
  export type PublicationStatus = 'not_published' | 'pending_publish' | 'published_draft' | 'published_ready' | 'publish_failed';
98
100
  export interface ReviewDepthPolicy {
@@ -126,7 +128,7 @@ export declare function reviewValidationDepthForLoop(_index: number, _total: num
126
128
  export type ReviewSessionIntent = 'resume' | 'reset';
127
129
  /** What actually happened when the reviewer generation launched. */
128
130
  export type ReviewSessionContinuity = 'fresh' | 'resumed' | 'fallback-fresh' | 'resume-unconfirmed';
129
- export type ReviewSessionFallbackReason = 'unsupported-runner' | 'slot-mismatch' | 'runner-mismatch' | 'missing-session' | 'session-unavailable';
131
+ export type ReviewSessionFallbackReason = 'unsupported-runner' | 'slot-mismatch' | 'runner-mismatch' | 'model-mismatch' | 'missing-session' | 'session-unavailable';
130
132
  export interface ReviewSessionTrace {
131
133
  intent: ReviewSessionIntent;
132
134
  continuity: ReviewSessionContinuity;
@@ -926,6 +928,11 @@ export interface RunMetrics {
926
928
  runner: string | null;
927
929
  runnerSessionId?: string | null;
928
930
  runnerSessionPath?: string | null;
931
+ /**
932
+ * Recycle snapshot of the primary runner transcript. Pointer only; the bytes
933
+ * live under `.runs/session-archives/`. Not eval evidence and not a farmrun payload.
934
+ */
935
+ runnerSessionArchive?: RunnerSessionArchiveRef;
929
936
  /**
930
937
  * Operator-local provider subscription label that actually funded this run
931
938
  * (after any in-place failover). Label only — never an email, token, or home path.
@@ -1617,6 +1624,8 @@ export interface MachineParkRecord {
1617
1624
  }
1618
1625
  export interface Run {
1619
1626
  id: string;
1627
+ prWork?: import('./pr-monitoring.js').PRWorkReference;
1628
+ prPublications?: import('./pr-monitoring.js').PRPublicationRecord[];
1620
1629
  familyId: string;
1621
1630
  parentRunId?: string | null;
1622
1631
  familyRootTicketOrPr?: string;
@@ -1696,6 +1705,7 @@ export interface Run {
1696
1705
  mergedAt?: string | null;
1697
1706
  steps: RunStep[];
1698
1707
  decisions: RunDecision[];
1708
+ reviewResult?: RunReviewResult;
1699
1709
  metrics: RunMetrics;
1700
1710
  createdAt: string;
1701
1711
  /** Timestamp when the supervised run lifecycle started. */
@@ -1894,6 +1904,8 @@ export interface RunCiWatchState {
1894
1904
  lastProgressReason?: string;
1895
1905
  /** Last watched-check status fingerprint used to detect progress. */
1896
1906
  lastCheckFingerprint?: string;
1907
+ /** Last observed actionable feedback, retained so restart does not invent progress. */
1908
+ lastActionableFingerprint?: string;
1897
1909
  /** Last observed local PR head SHA used to detect new commits. */
1898
1910
  lastHeadSha?: string | null;
1899
1911
  /** Consecutive-failure counter; resets on success. Gates consecutive fallback (MAX_INLINE_CI_FIX_ATTEMPTS). */
@@ -2101,11 +2113,15 @@ export declare const DEFAULT_TASK_DIR = ".task";
2101
2113
  * Changing this value alters defaults across the dispatch wizard and gateway
2102
2114
  * dispatch path — verify all `DEFAULT_CLAUDE_MODEL` callers when touching it. */
2103
2115
  export declare const DEFAULT_CLAUDE_MODEL = "opus";
2104
- /** Default Codex model used when no slot/task/project/user override is set.
2105
- * GPT-5.6 family uses tiered slugs (sol/terra/luna); Sol is the flagship. */
2106
- export declare const DEFAULT_CODEX_MODEL = "gpt-5.6-sol";
2116
+ /** Default Codex model used when no slot/task/project/user override is set. */
2117
+ export declare const DEFAULT_CODEX_MODEL = "gpt-6-astra";
2118
+ /** Reasoning efforts exposed by the Codex CLI, including Astra's max and ultra. */
2119
+ export declare const CODEX_REASONING_EFFORTS: readonly ["low", "medium", "high", "xhigh", "max", "ultra"];
2120
+ export type CodexReasoningEffort = (typeof CODEX_REASONING_EFFORTS)[number];
2121
+ /** Model capabilities from the Codex CLI catalog. Unknown models keep the legacy levels. */
2122
+ export declare function codexReasoningEfforts(model?: string | null): readonly CodexReasoningEffort[];
2107
2123
  /** Default Codex reasoning effort when dispatch/launch omits effort. */
2108
- export declare const DEFAULT_CODEX_EFFORT = "xhigh";
2124
+ export declare const DEFAULT_CODEX_EFFORT = "high";
2109
2125
  /** Default Cursor Agent model used when no slot/task/project/user override is set. */
2110
2126
  export declare const DEFAULT_CURSOR_MODEL = "cursor-grok-4.6-high-fast";
2111
2127
  /** Default Grok model used when no slot/task/project/user override is set. */