@mgiles/perk 1.0.1 → 2.0.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 (157) hide show
  1. package/README.md +67 -57
  2. package/extension/adapters/planAdapterPlannotator.ts +27 -41
  3. package/extension/adapters/planAdapterTombell.ts +15 -28
  4. package/extension/adapters/todoAdapterJuicesharp.ts +10 -13
  5. package/extension/checkpoints/checkpoints.ts +21 -13
  6. package/extension/doors/address.ts +6 -5
  7. package/extension/doors/askUser.ts +12 -8
  8. package/extension/doors/ciExecutor.ts +23 -15
  9. package/extension/doors/hunkHandoff.ts +202 -0
  10. package/extension/doors/land.ts +33 -10
  11. package/extension/doors/learn.ts +240 -34
  12. package/extension/doors/learnFactory.ts +144 -0
  13. package/extension/doors/lifecycleGates.ts +2 -1
  14. package/extension/doors/plannotatorHandoff.ts +509 -0
  15. package/extension/doors/prReview.ts +22 -37
  16. package/extension/doors/prReviewBrowser.ts +341 -0
  17. package/extension/doors/prReviewTerminal.ts +267 -0
  18. package/extension/doors/ready.ts +2 -1
  19. package/extension/doors/selfcheck.ts +240 -6
  20. package/extension/doors/submit.ts +37 -19
  21. package/extension/doors/submitPrReview.ts +408 -0
  22. package/extension/factories/implementHere.ts +116 -0
  23. package/extension/factories/objective.ts +17 -6
  24. package/extension/factories/objectiveAuthor.ts +15 -32
  25. package/extension/factories/objectiveDraft.ts +1 -1
  26. package/extension/factories/objectivePlan.ts +16 -34
  27. package/extension/factories/objectiveSave.ts +7 -17
  28. package/extension/factories/planMode.ts +24 -38
  29. package/extension/factories/planReview.ts +291 -177
  30. package/extension/factories/planSave.ts +23 -8
  31. package/extension/index.ts +117 -20
  32. package/extension/substrate/bindingDelivery.ts +32 -10
  33. package/extension/substrate/bindings.ts +4 -2
  34. package/extension/substrate/cache.ts +36 -9
  35. package/extension/substrate/clipboard.ts +81 -0
  36. package/extension/substrate/command.ts +25 -0
  37. package/extension/substrate/config.ts +98 -76
  38. package/extension/substrate/consoleCapture.ts +90 -0
  39. package/extension/substrate/git.ts +77 -0
  40. package/extension/substrate/miniJinja.ts +480 -0
  41. package/extension/substrate/paths.ts +38 -0
  42. package/extension/substrate/prompts.ts +15 -24
  43. package/extension/substrate/providers.ts +62 -8
  44. package/extension/substrate/sessionData.ts +1 -1
  45. package/extension/substrate/sessionPointers.ts +184 -0
  46. package/extension/substrate/structuredOutput.ts +3 -1
  47. package/extension/substrate/terminalLaunch.ts +178 -0
  48. package/extension/substrate/toolGating.ts +332 -73
  49. package/extension/substrate/toolParams.ts +7 -0
  50. package/extension/substrate/workflowState.ts +54 -2
  51. package/extension/surfaces/footerProvider.ts +8 -4
  52. package/extension/surfaces/surfaces.ts +338 -13
  53. package/extension/vendor/btw/btw.ts +10 -0
  54. package/extension/worker/readOnlySession.ts +19 -6
  55. package/extension/worker/worker.ts +187 -31
  56. package/extension/workerMain.ts +14 -13
  57. package/package.json +3 -7
  58. package/prompts/README.md +56 -5
  59. package/prompts/_fixtures/cases.yaml +52 -131
  60. package/prompts/_fixtures/golden/cond_elif-a.txt +3 -0
  61. package/prompts/_fixtures/golden/cond_elif-b.txt +3 -0
  62. package/prompts/_fixtures/golden/cond_elif-c.txt +3 -0
  63. package/prompts/_fixtures/golden/cond_if-false.txt +3 -0
  64. package/prompts/_fixtures/golden/cond_if-true.txt +3 -0
  65. package/prompts/_fixtures/golden/cond_ops-1.txt +3 -0
  66. package/prompts/_fixtures/golden/cond_ops-2.txt +3 -0
  67. package/prompts/_fixtures/golden/no_trailing_nl.txt +2 -0
  68. package/prompts/_fixtures/golden/trailing_nl.txt +2 -0
  69. package/prompts/_fixtures/golden/trim_block.txt +3 -0
  70. package/prompts/_fixtures/golden/trim_inline.txt +1 -0
  71. package/prompts/_fixtures/live.yaml +396 -0
  72. package/prompts/_fixtures/templates/cond_elif.md +9 -0
  73. package/prompts/_fixtures/templates/cond_if.md +7 -0
  74. package/prompts/_fixtures/templates/cond_ops.md +3 -0
  75. package/prompts/_fixtures/templates/no_trailing_nl.md +2 -0
  76. package/prompts/_fixtures/templates/trailing_nl.md +2 -0
  77. package/prompts/_fixtures/templates/trim_block.md +5 -0
  78. package/prompts/_fixtures/templates/trim_inline.md +1 -0
  79. package/prompts/contexts/adapters/juicesharp-todo.md +7 -0
  80. package/prompts/contexts/adapters/plannotator-objective.md +7 -0
  81. package/prompts/contexts/adapters/plannotator-plan.md +6 -0
  82. package/prompts/contexts/adapters/tombell-plan.md +17 -0
  83. package/prompts/contexts/objective-authoring.md +20 -0
  84. package/prompts/contexts/plan-authoring.md +24 -0
  85. package/prompts/contexts/read-only.md +10 -0
  86. package/prompts/stages/conflict-resolution.md +4 -0
  87. package/prompts/stages/learn-code.md +8 -0
  88. package/prompts/stages/learn-docs.md +7 -6
  89. package/prompts/stages/learn-orchestrate.md +6 -0
  90. package/prompts/stages/learn.md +1 -1
  91. package/prompts/stages/objective-author/adopt.md +12 -0
  92. package/prompts/stages/objective-author/file.md +9 -0
  93. package/prompts/stages/objective-author/seed.md +9 -0
  94. package/prompts/stages/objective-plan/guidance.md +1 -1
  95. package/prompts/stages/objective-plan/seed.md +3 -2
  96. package/prompts/stages/objective-reconcile.md +7 -0
  97. package/prompts/stages/objective-replan.md +14 -0
  98. package/prompts/stages/objective-save.md +9 -0
  99. package/prompts/stages/plan-from/adopt.md +10 -0
  100. package/prompts/stages/plan-from/file.md +9 -0
  101. package/prompts/stages/pr-review-browser/active.md +11 -0
  102. package/prompts/stages/pr-review-browser/foreign.md +11 -0
  103. package/prompts/stages/pr-review-terminal/active.md +12 -0
  104. package/prompts/stages/pr-review-terminal/foreign.md +13 -0
  105. package/prompts/stages/pr-review-terminal/local.md +4 -0
  106. package/prompts/stages/pr-review.md +6 -0
  107. package/prompts/stages/replan.md +13 -0
  108. package/prompts/stages/skills/create-from.md +15 -0
  109. package/prompts/stages/skills/create.md +9 -0
  110. package/prompts/stages/skills/refine.md +9 -0
  111. package/shared/README.md +23 -13
  112. package/shared/bindings.yaml +22 -2
  113. package/shared/contracts-history.md +191 -0
  114. package/shared/contracts.md +2258 -1638
  115. package/shared/providers.yaml +8 -1
  116. package/shared/registry.yaml +10 -11
  117. package/shared/schemas/contracts/bindings.schema.json +38 -0
  118. package/shared/schemas/contracts/providers.schema.json +89 -0
  119. package/shared/schemas/contracts/registry.schema.json +98 -0
  120. package/shared/schemas/inputs/handoff-arg.schema.json +6 -0
  121. package/shared/schemas/inputs/resolve-threads-batch.schema.json +37 -0
  122. package/shared/schemas/inputs/review-post-batch.schema.json +84 -0
  123. package/shared/schemas/inputs/review-submit-batch.schema.json +66 -0
  124. package/shared/schemas/inputs/structured-roadmap-node.schema.json +102 -0
  125. package/shared/schemas/outputs/doctor-report.schema.json +236 -0
  126. package/shared/schemas/outputs/init-report.schema.json +419 -0
  127. package/shared/schemas/outputs/learn-capture.schema.json +90 -0
  128. package/shared/schemas/outputs/learn-skip.schema.json +59 -0
  129. package/shared/schemas/outputs/plan-save.schema.json +209 -0
  130. package/shared/schemas/outputs/pr-feedback.schema.json +334 -0
  131. package/shared/schemas/outputs/pr-land.schema.json +187 -0
  132. package/shared/schemas/outputs/pr-ready.schema.json +75 -0
  133. package/shared/schemas/outputs/pr-review-checkout.schema.json +69 -0
  134. package/shared/schemas/outputs/pr-review-cleanup.schema.json +54 -0
  135. package/shared/schemas/outputs/pr-review-context.schema.json +86 -0
  136. package/shared/schemas/outputs/pr-review-submit.schema.json +64 -0
  137. package/shared/schemas/outputs/pr-submit.schema.json +147 -0
  138. package/extension/doors/learnDocs.ts +0 -99
  139. package/prompts/_fixtures/golden/address-action-model.txt +0 -10
  140. package/prompts/_fixtures/golden/address-action.txt +0 -10
  141. package/prompts/_fixtures/golden/address-preview-model.txt +0 -6
  142. package/prompts/_fixtures/golden/address-preview.txt +0 -6
  143. package/prompts/_fixtures/golden/implement-github.txt +0 -8
  144. package/prompts/_fixtures/golden/learn-docs.txt +0 -8
  145. package/prompts/_fixtures/golden/learn-github.txt +0 -11
  146. package/prompts/_fixtures/golden/learn-linear.txt +0 -11
  147. package/prompts/_fixtures/golden/learn-no-ref.txt +0 -8
  148. package/prompts/_fixtures/golden/learn-other.txt +0 -8
  149. package/prompts/_fixtures/golden/objective-plan-guidance-linear.txt +0 -8
  150. package/prompts/_fixtures/golden/objective-plan-guidance.txt +0 -8
  151. package/prompts/_fixtures/golden/objective-plan-seed-linear.txt +0 -20
  152. package/prompts/_fixtures/golden/objective-plan-seed.txt +0 -15
  153. package/prompts/_fixtures/golden/objective-read-linear-nourl.txt +0 -1
  154. package/prompts/_fixtures/golden/objective-read-linear.txt +0 -1
  155. package/prompts/_fixtures/golden/plan-read-github.txt +0 -1
  156. package/prompts/_fixtures/golden/plan-read-linear.txt +0 -1
  157. package/prompts/_fixtures/golden/plan-read-other.txt +0 -1
@@ -0,0 +1,236 @@
1
+ {
2
+ "$defs": {
3
+ "ArtifactHealthOut": {
4
+ "additionalProperties": false,
5
+ "description": "The serialization boundary of one :class:`ArtifactHealth` row (field order load-bearing).",
6
+ "properties": {
7
+ "key": {
8
+ "title": "Key",
9
+ "type": "string"
10
+ },
11
+ "path": {
12
+ "title": "Path",
13
+ "type": "string"
14
+ },
15
+ "kind": {
16
+ "title": "Kind",
17
+ "type": "string"
18
+ },
19
+ "status": {
20
+ "enum": [
21
+ "up-to-date",
22
+ "not-installed",
23
+ "locally-modified",
24
+ "changed-upstream",
25
+ "state-missing"
26
+ ],
27
+ "title": "Status",
28
+ "type": "string"
29
+ },
30
+ "recorded_version": {
31
+ "anyOf": [
32
+ {
33
+ "type": "string"
34
+ },
35
+ {
36
+ "type": "null"
37
+ }
38
+ ],
39
+ "title": "Recorded Version"
40
+ },
41
+ "recorded_hash": {
42
+ "anyOf": [
43
+ {
44
+ "type": "string"
45
+ },
46
+ {
47
+ "type": "null"
48
+ }
49
+ ],
50
+ "title": "Recorded Hash"
51
+ },
52
+ "desired_hash": {
53
+ "title": "Desired Hash",
54
+ "type": "string"
55
+ },
56
+ "observed_hash": {
57
+ "anyOf": [
58
+ {
59
+ "type": "string"
60
+ },
61
+ {
62
+ "type": "null"
63
+ }
64
+ ],
65
+ "title": "Observed Hash"
66
+ }
67
+ },
68
+ "required": [
69
+ "key",
70
+ "path",
71
+ "kind",
72
+ "status",
73
+ "recorded_version",
74
+ "recorded_hash",
75
+ "desired_hash",
76
+ "observed_hash"
77
+ ],
78
+ "title": "ArtifactHealthOut",
79
+ "type": "object"
80
+ },
81
+ "CheckOut": {
82
+ "additionalProperties": false,
83
+ "description": "The serialization boundary of one :class:`Check` (field order load-bearing).",
84
+ "properties": {
85
+ "name": {
86
+ "title": "Name",
87
+ "type": "string"
88
+ },
89
+ "group": {
90
+ "title": "Group",
91
+ "type": "string"
92
+ },
93
+ "status": {
94
+ "enum": [
95
+ "ok",
96
+ "warn",
97
+ "info",
98
+ "fail"
99
+ ],
100
+ "title": "Status",
101
+ "type": "string"
102
+ },
103
+ "message": {
104
+ "title": "Message",
105
+ "type": "string"
106
+ },
107
+ "detail": {
108
+ "title": "Detail",
109
+ "type": "string"
110
+ },
111
+ "remediation": {
112
+ "title": "Remediation",
113
+ "type": "string"
114
+ }
115
+ },
116
+ "required": [
117
+ "name",
118
+ "group",
119
+ "status",
120
+ "message",
121
+ "detail",
122
+ "remediation"
123
+ ],
124
+ "title": "CheckOut",
125
+ "type": "object"
126
+ },
127
+ "SummaryOut": {
128
+ "additionalProperties": false,
129
+ "description": "The computed status tally (field order load-bearing).",
130
+ "properties": {
131
+ "passed": {
132
+ "title": "Passed",
133
+ "type": "integer"
134
+ },
135
+ "warnings": {
136
+ "title": "Warnings",
137
+ "type": "integer"
138
+ },
139
+ "failed": {
140
+ "title": "Failed",
141
+ "type": "integer"
142
+ }
143
+ },
144
+ "required": [
145
+ "passed",
146
+ "warnings",
147
+ "failed"
148
+ ],
149
+ "title": "SummaryOut",
150
+ "type": "object"
151
+ }
152
+ },
153
+ "additionalProperties": false,
154
+ "description": "The ``--json`` serialization boundary of :class:`DoctorReport` (field order load-bearing).",
155
+ "properties": {
156
+ "success": {
157
+ "title": "Success",
158
+ "type": "boolean"
159
+ },
160
+ "healthy": {
161
+ "title": "Healthy",
162
+ "type": "boolean"
163
+ },
164
+ "self_repo": {
165
+ "title": "Self Repo",
166
+ "type": "boolean"
167
+ },
168
+ "error_type": {
169
+ "anyOf": [
170
+ {
171
+ "type": "string"
172
+ },
173
+ {
174
+ "type": "null"
175
+ }
176
+ ],
177
+ "title": "Error Type"
178
+ },
179
+ "message": {
180
+ "anyOf": [
181
+ {
182
+ "type": "string"
183
+ },
184
+ {
185
+ "type": "null"
186
+ }
187
+ ],
188
+ "title": "Message"
189
+ },
190
+ "checks": {
191
+ "items": {
192
+ "$ref": "#/$defs/CheckOut"
193
+ },
194
+ "title": "Checks",
195
+ "type": "array"
196
+ },
197
+ "summary": {
198
+ "$ref": "#/$defs/SummaryOut"
199
+ },
200
+ "fixed": {
201
+ "items": {
202
+ "type": "string"
203
+ },
204
+ "title": "Fixed",
205
+ "type": "array"
206
+ },
207
+ "fix_errors": {
208
+ "items": {
209
+ "type": "string"
210
+ },
211
+ "title": "Fix Errors",
212
+ "type": "array"
213
+ },
214
+ "artifact_health": {
215
+ "items": {
216
+ "$ref": "#/$defs/ArtifactHealthOut"
217
+ },
218
+ "title": "Artifact Health",
219
+ "type": "array"
220
+ }
221
+ },
222
+ "required": [
223
+ "success",
224
+ "healthy",
225
+ "self_repo",
226
+ "error_type",
227
+ "message",
228
+ "checks",
229
+ "summary",
230
+ "fixed",
231
+ "fix_errors",
232
+ "artifact_health"
233
+ ],
234
+ "title": "DoctorReportOut",
235
+ "type": "object"
236
+ }
@@ -0,0 +1,419 @@
1
+ {
2
+ "$defs": {
3
+ "AuthOut": {
4
+ "additionalProperties": false,
5
+ "description": "The serialization boundary of the picked :class:`AuthStatus` subset (order load-bearing).",
6
+ "properties": {
7
+ "ok": {
8
+ "title": "Ok",
9
+ "type": "boolean"
10
+ },
11
+ "user": {
12
+ "anyOf": [
13
+ {
14
+ "type": "string"
15
+ },
16
+ {
17
+ "type": "null"
18
+ }
19
+ ],
20
+ "title": "User"
21
+ },
22
+ "scopes": {
23
+ "items": {
24
+ "type": "string"
25
+ },
26
+ "title": "Scopes",
27
+ "type": "array"
28
+ },
29
+ "error": {
30
+ "anyOf": [
31
+ {
32
+ "type": "string"
33
+ },
34
+ {
35
+ "type": "null"
36
+ }
37
+ ],
38
+ "title": "Error"
39
+ }
40
+ },
41
+ "required": [
42
+ "ok",
43
+ "user",
44
+ "scopes",
45
+ "error"
46
+ ],
47
+ "title": "AuthOut",
48
+ "type": "object"
49
+ },
50
+ "EnvCheckOut": {
51
+ "additionalProperties": false,
52
+ "description": "The serialization boundary of one :class:`EnvCheck`. Field order is load-bearing.",
53
+ "properties": {
54
+ "name": {
55
+ "title": "Name",
56
+ "type": "string"
57
+ },
58
+ "ok": {
59
+ "title": "Ok",
60
+ "type": "boolean"
61
+ },
62
+ "detail": {
63
+ "title": "Detail",
64
+ "type": "string"
65
+ },
66
+ "remediation": {
67
+ "title": "Remediation",
68
+ "type": "string"
69
+ }
70
+ },
71
+ "required": [
72
+ "name",
73
+ "ok",
74
+ "detail",
75
+ "remediation"
76
+ ],
77
+ "title": "EnvCheckOut",
78
+ "type": "object"
79
+ },
80
+ "GitHubReportOut": {
81
+ "additionalProperties": false,
82
+ "description": "The serialization boundary of :class:`GitHubReport`. Field order is load-bearing.",
83
+ "properties": {
84
+ "auth": {
85
+ "$ref": "#/$defs/AuthOut"
86
+ },
87
+ "repo": {
88
+ "$ref": "#/$defs/RepoOut"
89
+ }
90
+ },
91
+ "required": [
92
+ "auth",
93
+ "repo"
94
+ ],
95
+ "title": "GitHubReportOut",
96
+ "type": "object"
97
+ },
98
+ "LinearProjectOut": {
99
+ "additionalProperties": false,
100
+ "description": "Serialization boundary of :class:`linear.LinearProjectReadiness` (order load-bearing).",
101
+ "properties": {
102
+ "projects_ok": {
103
+ "title": "Projects Ok",
104
+ "type": "boolean"
105
+ },
106
+ "projects_error": {
107
+ "anyOf": [
108
+ {
109
+ "type": "string"
110
+ },
111
+ {
112
+ "type": "null"
113
+ }
114
+ ],
115
+ "title": "Projects Error"
116
+ },
117
+ "missing_state_types": {
118
+ "items": {
119
+ "type": "string"
120
+ },
121
+ "title": "Missing State Types",
122
+ "type": "array"
123
+ },
124
+ "states_error": {
125
+ "anyOf": [
126
+ {
127
+ "type": "string"
128
+ },
129
+ {
130
+ "type": "null"
131
+ }
132
+ ],
133
+ "title": "States Error"
134
+ }
135
+ },
136
+ "required": [
137
+ "projects_ok",
138
+ "projects_error",
139
+ "missing_state_types",
140
+ "states_error"
141
+ ],
142
+ "title": "LinearProjectOut",
143
+ "type": "object"
144
+ },
145
+ "LinearReadinessOut": {
146
+ "additionalProperties": false,
147
+ "description": "The serialization boundary of :class:`linear.LinearReadiness`. Order is load-bearing.",
148
+ "properties": {
149
+ "auth_ok": {
150
+ "title": "Auth Ok",
151
+ "type": "boolean"
152
+ },
153
+ "user": {
154
+ "anyOf": [
155
+ {
156
+ "type": "string"
157
+ },
158
+ {
159
+ "type": "null"
160
+ }
161
+ ],
162
+ "title": "User"
163
+ },
164
+ "team_ok": {
165
+ "title": "Team Ok",
166
+ "type": "boolean"
167
+ },
168
+ "missing_labels": {
169
+ "items": {
170
+ "type": "string"
171
+ },
172
+ "title": "Missing Labels",
173
+ "type": "array"
174
+ },
175
+ "created_labels": {
176
+ "items": {
177
+ "type": "string"
178
+ },
179
+ "title": "Created Labels",
180
+ "type": "array"
181
+ },
182
+ "error": {
183
+ "anyOf": [
184
+ {
185
+ "type": "string"
186
+ },
187
+ {
188
+ "type": "null"
189
+ }
190
+ ],
191
+ "title": "Error"
192
+ }
193
+ },
194
+ "required": [
195
+ "auth_ok",
196
+ "user",
197
+ "team_ok",
198
+ "missing_labels",
199
+ "created_labels",
200
+ "error"
201
+ ],
202
+ "title": "LinearReadinessOut",
203
+ "type": "object"
204
+ },
205
+ "LinearReportOut": {
206
+ "additionalProperties": false,
207
+ "description": "The serialization boundary of the nullable :class:`LinearReport`. Order is load-bearing.",
208
+ "properties": {
209
+ "ok": {
210
+ "title": "Ok",
211
+ "type": "boolean"
212
+ },
213
+ "team": {
214
+ "anyOf": [
215
+ {
216
+ "type": "string"
217
+ },
218
+ {
219
+ "type": "null"
220
+ }
221
+ ],
222
+ "title": "Team"
223
+ },
224
+ "error": {
225
+ "anyOf": [
226
+ {
227
+ "type": "string"
228
+ },
229
+ {
230
+ "type": "null"
231
+ }
232
+ ],
233
+ "title": "Error"
234
+ },
235
+ "readiness": {
236
+ "anyOf": [
237
+ {
238
+ "$ref": "#/$defs/LinearReadinessOut"
239
+ },
240
+ {
241
+ "type": "null"
242
+ }
243
+ ]
244
+ },
245
+ "project": {
246
+ "anyOf": [
247
+ {
248
+ "$ref": "#/$defs/LinearProjectOut"
249
+ },
250
+ {
251
+ "type": "null"
252
+ }
253
+ ]
254
+ }
255
+ },
256
+ "required": [
257
+ "ok",
258
+ "team",
259
+ "error",
260
+ "readiness",
261
+ "project"
262
+ ],
263
+ "title": "LinearReportOut",
264
+ "type": "object"
265
+ },
266
+ "RepoOut": {
267
+ "additionalProperties": false,
268
+ "description": "The serialization boundary of the picked :class:`RepoAccess` subset (order load-bearing).",
269
+ "properties": {
270
+ "ok": {
271
+ "title": "Ok",
272
+ "type": "boolean"
273
+ },
274
+ "repo": {
275
+ "anyOf": [
276
+ {
277
+ "type": "string"
278
+ },
279
+ {
280
+ "type": "null"
281
+ }
282
+ ],
283
+ "title": "Repo"
284
+ },
285
+ "can_push": {
286
+ "title": "Can Push",
287
+ "type": "boolean"
288
+ },
289
+ "error": {
290
+ "anyOf": [
291
+ {
292
+ "type": "string"
293
+ },
294
+ {
295
+ "type": "null"
296
+ }
297
+ ],
298
+ "title": "Error"
299
+ }
300
+ },
301
+ "required": [
302
+ "ok",
303
+ "repo",
304
+ "can_push",
305
+ "error"
306
+ ],
307
+ "title": "RepoOut",
308
+ "type": "object"
309
+ }
310
+ },
311
+ "additionalProperties": false,
312
+ "description": "The ``--json`` serialization boundary of :class:`InitReport`. Field order is load-bearing.",
313
+ "properties": {
314
+ "success": {
315
+ "title": "Success",
316
+ "type": "boolean"
317
+ },
318
+ "mode": {
319
+ "title": "Mode",
320
+ "type": "string"
321
+ },
322
+ "error_type": {
323
+ "anyOf": [
324
+ {
325
+ "type": "string"
326
+ },
327
+ {
328
+ "type": "null"
329
+ }
330
+ ],
331
+ "title": "Error Type"
332
+ },
333
+ "message": {
334
+ "anyOf": [
335
+ {
336
+ "type": "string"
337
+ },
338
+ {
339
+ "type": "null"
340
+ }
341
+ ],
342
+ "title": "Message"
343
+ },
344
+ "env": {
345
+ "items": {
346
+ "$ref": "#/$defs/EnvCheckOut"
347
+ },
348
+ "title": "Env",
349
+ "type": "array"
350
+ },
351
+ "github": {
352
+ "anyOf": [
353
+ {
354
+ "$ref": "#/$defs/GitHubReportOut"
355
+ },
356
+ {
357
+ "type": "null"
358
+ }
359
+ ]
360
+ },
361
+ "linear": {
362
+ "anyOf": [
363
+ {
364
+ "$ref": "#/$defs/LinearReportOut"
365
+ },
366
+ {
367
+ "type": "null"
368
+ }
369
+ ]
370
+ },
371
+ "capabilities": {
372
+ "items": {
373
+ "type": "string"
374
+ },
375
+ "title": "Capabilities",
376
+ "type": "array"
377
+ },
378
+ "changes": {
379
+ "items": {
380
+ "type": "string"
381
+ },
382
+ "title": "Changes",
383
+ "type": "array"
384
+ },
385
+ "warnings": {
386
+ "items": {
387
+ "type": "string"
388
+ },
389
+ "title": "Warnings",
390
+ "type": "array"
391
+ },
392
+ "handoff": {
393
+ "anyOf": [
394
+ {
395
+ "type": "string"
396
+ },
397
+ {
398
+ "type": "null"
399
+ }
400
+ ],
401
+ "title": "Handoff"
402
+ }
403
+ },
404
+ "required": [
405
+ "success",
406
+ "mode",
407
+ "error_type",
408
+ "message",
409
+ "env",
410
+ "github",
411
+ "linear",
412
+ "capabilities",
413
+ "changes",
414
+ "warnings",
415
+ "handoff"
416
+ ],
417
+ "title": "InitReportOut",
418
+ "type": "object"
419
+ }