agentweaver 0.1.10 → 0.1.12

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 (110) hide show
  1. package/README.md +218 -224
  2. package/dist/artifacts.js +109 -55
  3. package/dist/executors/{codex-local-executor.js → codex-executor.js} +6 -5
  4. package/dist/executors/configs/{codex-local-config.js → codex-config.js} +1 -1
  5. package/dist/executors/configs/jira-fetch-config.js +2 -0
  6. package/dist/executors/configs/telegram-notifier-config.js +3 -0
  7. package/dist/executors/fetch-gitlab-diff-executor.js +1 -1
  8. package/dist/executors/fetch-gitlab-review-executor.js +1 -1
  9. package/dist/executors/git-commit-executor.js +25 -0
  10. package/dist/executors/jira-fetch-executor.js +1 -0
  11. package/dist/executors/opencode-executor.js +22 -11
  12. package/dist/executors/process-executor.js +3 -0
  13. package/dist/executors/telegram-notifier-executor.js +54 -0
  14. package/dist/flow-state.js +46 -1
  15. package/dist/gitlab.js +13 -8
  16. package/dist/index.js +477 -514
  17. package/dist/interactive-ui.js +609 -88
  18. package/dist/jira.js +109 -5
  19. package/dist/pipeline/auto-flow.js +6 -6
  20. package/dist/pipeline/context.js +1 -0
  21. package/dist/pipeline/flow-catalog.js +34 -4
  22. package/dist/pipeline/flow-model-settings.js +77 -0
  23. package/dist/pipeline/flow-specs/auto-common.json +446 -0
  24. package/dist/pipeline/flow-specs/auto-golang.json +563 -0
  25. package/dist/pipeline/flow-specs/{bug-analyze.json → bugz/bug-analyze.json} +43 -25
  26. package/dist/pipeline/flow-specs/{bug-fix.json → bugz/bug-fix.json} +5 -4
  27. package/dist/pipeline/flow-specs/git-commit.json +196 -0
  28. package/dist/pipeline/flow-specs/{gitlab-diff-review.json → gitlab/gitlab-diff-review.json} +20 -50
  29. package/dist/pipeline/flow-specs/{gitlab-review.json → gitlab/gitlab-review.json} +65 -133
  30. package/dist/pipeline/flow-specs/{mr-description.json → gitlab/mr-description.json} +17 -10
  31. package/dist/pipeline/flow-specs/{run-go-linter-loop.json → go/run-go-linter-loop.json} +40 -14
  32. package/dist/pipeline/flow-specs/{run-go-tests-loop.json → go/run-go-tests-loop.json} +40 -14
  33. package/dist/pipeline/flow-specs/implement.json +5 -4
  34. package/dist/pipeline/flow-specs/plan.json +40 -148
  35. package/dist/pipeline/flow-specs/{review-fix.json → review/review-fix.json} +74 -13
  36. package/dist/pipeline/flow-specs/review/review-loop.json +282 -0
  37. package/dist/pipeline/flow-specs/review/review-project.json +87 -0
  38. package/dist/pipeline/flow-specs/review/review.json +126 -0
  39. package/dist/pipeline/flow-specs/task-describe.json +252 -11
  40. package/dist/pipeline/launch-profile-config.js +38 -0
  41. package/dist/pipeline/node-registry.js +75 -45
  42. package/dist/pipeline/nodes/build-failure-summary-node.js +16 -29
  43. package/dist/pipeline/nodes/build-review-fix-prompt-node.js +36 -0
  44. package/dist/pipeline/nodes/codex-prompt-node.js +41 -0
  45. package/dist/pipeline/nodes/commit-message-form-node.js +79 -0
  46. package/dist/pipeline/nodes/git-commit-form-node.js +138 -0
  47. package/dist/pipeline/nodes/git-commit-node.js +28 -0
  48. package/dist/pipeline/nodes/git-status-node.js +221 -0
  49. package/dist/pipeline/nodes/gitlab-review-artifacts-node.js +10 -6
  50. package/dist/pipeline/nodes/jira-context-node.js +10 -0
  51. package/dist/pipeline/nodes/jira-fetch-node.js +3 -0
  52. package/dist/pipeline/nodes/llm-prompt-node.js +62 -0
  53. package/dist/pipeline/nodes/plan-codex-node.js +1 -1
  54. package/dist/pipeline/nodes/read-file-node.js +11 -0
  55. package/dist/pipeline/nodes/review-findings-form-node.js +48 -14
  56. package/dist/pipeline/nodes/select-files-form-node.js +72 -0
  57. package/dist/pipeline/nodes/telegram-notifier-node.js +28 -0
  58. package/dist/pipeline/nodes/user-input-node.js +43 -8
  59. package/dist/pipeline/nodes/write-selection-file-node.js +46 -0
  60. package/dist/pipeline/prompt-registry.js +3 -4
  61. package/dist/pipeline/prompt-runtime.js +13 -3
  62. package/dist/pipeline/registry.js +6 -8
  63. package/dist/pipeline/spec-compiler.js +5 -0
  64. package/dist/pipeline/spec-types.js +9 -3
  65. package/dist/pipeline/spec-validator.js +4 -0
  66. package/dist/pipeline/types.js +1 -0
  67. package/dist/pipeline/value-resolver.js +50 -38
  68. package/dist/prompts.js +119 -110
  69. package/dist/runtime/agentweaver-home.js +8 -0
  70. package/dist/runtime/command-resolution.js +0 -38
  71. package/dist/runtime/env-loader.js +43 -0
  72. package/dist/runtime/process-runner.js +9 -3
  73. package/dist/structured-artifact-schema-registry.js +54 -0
  74. package/dist/structured-artifact-schemas.json +22 -20
  75. package/dist/structured-artifacts.js +3 -43
  76. package/dist/user-input.js +38 -3
  77. package/package.json +2 -6
  78. package/Dockerfile.codex +0 -56
  79. package/dist/executors/claude-executor.js +0 -46
  80. package/dist/executors/codex-docker-executor.js +0 -27
  81. package/dist/executors/configs/claude-config.js +0 -12
  82. package/dist/executors/configs/codex-docker-config.js +0 -10
  83. package/dist/executors/configs/verify-build-config.js +0 -7
  84. package/dist/executors/verify-build-executor.js +0 -123
  85. package/dist/pipeline/flow-specs/auto.json +0 -979
  86. package/dist/pipeline/flow-specs/opencode/auto-opencode.json +0 -1365
  87. package/dist/pipeline/flow-specs/opencode/bugz/bug-analyze-opencode.json +0 -382
  88. package/dist/pipeline/flow-specs/opencode/bugz/bug-fix-opencode.json +0 -56
  89. package/dist/pipeline/flow-specs/opencode/gitlab/gitlab-diff-review-opencode.json +0 -308
  90. package/dist/pipeline/flow-specs/opencode/gitlab/gitlab-review-opencode.json +0 -437
  91. package/dist/pipeline/flow-specs/opencode/gitlab/mr-description-opencode.json +0 -117
  92. package/dist/pipeline/flow-specs/opencode/go/run-go-linter-loop-opencode.json +0 -321
  93. package/dist/pipeline/flow-specs/opencode/go/run-go-tests-loop-opencode.json +0 -321
  94. package/dist/pipeline/flow-specs/opencode/implement-opencode.json +0 -64
  95. package/dist/pipeline/flow-specs/opencode/plan-opencode.json +0 -603
  96. package/dist/pipeline/flow-specs/opencode/review/review-fix-opencode.json +0 -209
  97. package/dist/pipeline/flow-specs/opencode/review/review-opencode.json +0 -452
  98. package/dist/pipeline/flow-specs/opencode/task-describe-opencode.json +0 -148
  99. package/dist/pipeline/flow-specs/review-project.json +0 -243
  100. package/dist/pipeline/flow-specs/review.json +0 -312
  101. package/dist/pipeline/flows/preflight-flow.js +0 -19
  102. package/dist/pipeline/nodes/claude-prompt-node.js +0 -54
  103. package/dist/pipeline/nodes/codex-docker-prompt-node.js +0 -32
  104. package/dist/pipeline/nodes/codex-local-prompt-node.js +0 -32
  105. package/dist/pipeline/nodes/review-claude-node.js +0 -38
  106. package/dist/pipeline/nodes/review-reply-codex-node.js +0 -40
  107. package/dist/pipeline/nodes/verify-build-node.js +0 -15
  108. package/dist/runtime/docker-runtime.js +0 -51
  109. package/docker-compose.yml +0 -445
  110. package/verify_build.sh +0 -105
@@ -1,321 +0,0 @@
1
- {
2
- "kind": "run-go-linter-loop-flow",
3
- "version": 1,
4
- "phases": [
5
- {
6
- "id": "run_go_linter_try_1",
7
- "steps": [
8
- {
9
- "id": "run_go_linter",
10
- "node": "local-script-check",
11
- "params": {
12
- "argv": {
13
- "list": [
14
- {
15
- "ref": "params.runGoLinterScript"
16
- }
17
- ]
18
- },
19
- "outputFile": {
20
- "artifact": {
21
- "kind": "run-go-linter-result-json-file",
22
- "taskKey": {
23
- "ref": "params.taskKey"
24
- },
25
- "iteration": {
26
- "const": 1
27
- }
28
- }
29
- },
30
- "labelText": {
31
- "const": "Running run_go_linter.py locally (attempt 1)"
32
- }
33
- },
34
- "expect": [
35
- {
36
- "kind": "require-file",
37
- "when": {
38
- "not": {
39
- "ref": "context.dryRun"
40
- }
41
- },
42
- "path": {
43
- "artifact": {
44
- "kind": "run-go-linter-result-json-file",
45
- "taskKey": {
46
- "ref": "params.taskKey"
47
- },
48
- "iteration": {
49
- "const": 1
50
- }
51
- }
52
- },
53
- "message": "run-go-linter-loop did not produce the structured linter result artifact."
54
- }
55
- ],
56
- "stopFlowIf": {
57
- "equals": [
58
- {
59
- "ref": "steps.run_go_linter_try_1.run_go_linter.outputs.parsed.ok"
60
- },
61
- {
62
- "const": true
63
- }
64
- ]
65
- }
66
- },
67
- {
68
- "id": "fix_go_linter",
69
- "when": {
70
- "equals": [
71
- {
72
- "ref": "steps.run_go_linter_try_1.run_go_linter.outputs.parsed.ok"
73
- },
74
- {
75
- "const": false
76
- }
77
- ]
78
- },
79
- "node": "opencode-prompt",
80
- "prompt": {
81
- "templateRef": "run-go-linter-loop-fix",
82
- "vars": {
83
- "linter_result_json_file": {
84
- "artifact": {
85
- "kind": "run-go-linter-result-json-file",
86
- "taskKey": {
87
- "ref": "params.taskKey"
88
- },
89
- "iteration": {
90
- "const": 1
91
- }
92
- }
93
- }
94
- },
95
- "extraPrompt": {
96
- "appendPrompt": {
97
- "base": {
98
- "ref": "params.extraPrompt"
99
- },
100
- "suffix": {
101
- "template": "Последний результат run_go_linter.py сохранён в {result_file}. exitCode={exit_code}, summary={summary}.\nПолный raw-вывод последнего запуска:\n{raw_output}\nИсправь только то, что мешает успешному прохождению проверки.",
102
- "vars": {
103
- "result_file": {
104
- "artifact": {
105
- "kind": "run-go-linter-result-json-file",
106
- "taskKey": {
107
- "ref": "params.taskKey"
108
- },
109
- "iteration": {
110
- "const": 1
111
- }
112
- }
113
- },
114
- "exit_code": {
115
- "ref": "steps.run_go_linter_try_1.run_go_linter.outputs.parsed.exitCode"
116
- },
117
- "summary": {
118
- "ref": "steps.run_go_linter_try_1.run_go_linter.outputs.parsed.summary"
119
- },
120
- "raw_output": {
121
- "ref": "steps.run_go_linter_try_1.run_go_linter.outputs.parsed.details.raw"
122
- }
123
- }
124
- }
125
- }
126
- },
127
- "format": "task-prompt"
128
- },
129
- "params": {
130
- "labelText": {
131
- "const": "Running OpenCode Go linter loop fix (attempt 1)"
132
- },
133
- "model": {
134
- "const": "minimax-coding-plan/MiniMax-M2.7"
135
- }
136
- }
137
- }
138
- ]
139
- },
140
- {
141
- "repeat": {
142
- "var": "attempt",
143
- "from": 2,
144
- "to": 5
145
- },
146
- "phases": [
147
- {
148
- "id": "run_go_linter_try_${attempt}",
149
- "when": {
150
- "equals": [
151
- {
152
- "ref": "steps.run_go_linter_try_${attempt_minus_one}.run_go_linter.outputs.parsed.ok"
153
- },
154
- {
155
- "const": false
156
- }
157
- ]
158
- },
159
- "steps": [
160
- {
161
- "id": "run_go_linter",
162
- "node": "local-script-check",
163
- "params": {
164
- "argv": {
165
- "list": [
166
- {
167
- "ref": "params.runGoLinterScript"
168
- }
169
- ]
170
- },
171
- "outputFile": {
172
- "artifact": {
173
- "kind": "run-go-linter-result-json-file",
174
- "taskKey": {
175
- "ref": "params.taskKey"
176
- },
177
- "iteration": {
178
- "ref": "repeat.attempt"
179
- }
180
- }
181
- },
182
- "labelText": {
183
- "template": "Running run_go_linter.py locally (attempt ${attempt})"
184
- }
185
- },
186
- "expect": [
187
- {
188
- "kind": "require-file",
189
- "when": {
190
- "not": {
191
- "ref": "context.dryRun"
192
- }
193
- },
194
- "path": {
195
- "artifact": {
196
- "kind": "run-go-linter-result-json-file",
197
- "taskKey": {
198
- "ref": "params.taskKey"
199
- },
200
- "iteration": {
201
- "ref": "repeat.attempt"
202
- }
203
- }
204
- },
205
- "message": "run-go-linter-loop did not produce the structured linter result artifact."
206
- }
207
- ],
208
- "stopFlowIf": {
209
- "equals": [
210
- {
211
- "ref": "steps.run_go_linter_try_${attempt}.run_go_linter.outputs.parsed.ok"
212
- },
213
- {
214
- "const": true
215
- }
216
- ]
217
- }
218
- },
219
- {
220
- "id": "fix_go_linter",
221
- "when": {
222
- "equals": [
223
- {
224
- "ref": "steps.run_go_linter_try_${attempt}.run_go_linter.outputs.parsed.ok"
225
- },
226
- {
227
- "const": false
228
- }
229
- ]
230
- },
231
- "node": "opencode-prompt",
232
- "prompt": {
233
- "templateRef": "run-go-linter-loop-fix",
234
- "vars": {
235
- "linter_result_json_file": {
236
- "artifact": {
237
- "kind": "run-go-linter-result-json-file",
238
- "taskKey": {
239
- "ref": "params.taskKey"
240
- },
241
- "iteration": {
242
- "ref": "repeat.attempt"
243
- }
244
- }
245
- }
246
- },
247
- "extraPrompt": {
248
- "appendPrompt": {
249
- "base": {
250
- "ref": "params.extraPrompt"
251
- },
252
- "suffix": {
253
- "template": "Последний результат run_go_linter.py сохранён в {result_file}. exitCode={exit_code}, summary={summary}.\nПолный raw-вывод последнего запуска:\n{raw_output}\nИсправь только то, что мешает успешному прохождению проверки.",
254
- "vars": {
255
- "result_file": {
256
- "artifact": {
257
- "kind": "run-go-linter-result-json-file",
258
- "taskKey": {
259
- "ref": "params.taskKey"
260
- },
261
- "iteration": {
262
- "ref": "repeat.attempt"
263
- }
264
- }
265
- },
266
- "exit_code": {
267
- "ref": "steps.run_go_linter_try_${attempt}.run_go_linter.outputs.parsed.exitCode"
268
- },
269
- "summary": {
270
- "ref": "steps.run_go_linter_try_${attempt}.run_go_linter.outputs.parsed.summary"
271
- },
272
- "raw_output": {
273
- "ref": "steps.run_go_linter_try_${attempt}.run_go_linter.outputs.parsed.details.raw"
274
- }
275
- }
276
- }
277
- }
278
- },
279
- "format": "task-prompt"
280
- },
281
- "params": {
282
- "labelText": {
283
- "template": "Running OpenCode Go linter loop fix (attempt ${attempt})"
284
- },
285
- "model": {
286
- "const": "minimax-coding-plan/MiniMax-M2.7"
287
- }
288
- }
289
- }
290
- ]
291
- }
292
- ]
293
- },
294
- {
295
- "id": "run_go_linter_failed",
296
- "steps": [
297
- {
298
- "id": "assert_run_go_linter_success",
299
- "node": "file-check",
300
- "params": {
301
- "path": {
302
- "ref": "params.runGoLinterScript"
303
- }
304
- },
305
- "expect": [
306
- {
307
- "kind": "step-output",
308
- "value": {
309
- "ref": "steps.run_go_linter_try_5.run_go_linter.outputs.parsed.ok"
310
- },
311
- "equals": {
312
- "const": true
313
- },
314
- "message": "run-go-linter-loop exhausted all attempts without a successful run_go_linter.py execution."
315
- }
316
- ]
317
- }
318
- ]
319
- }
320
- ]
321
- }
@@ -1,321 +0,0 @@
1
- {
2
- "kind": "run-go-tests-loop-flow",
3
- "version": 1,
4
- "phases": [
5
- {
6
- "id": "run_go_tests_try_1",
7
- "steps": [
8
- {
9
- "id": "run_go_tests",
10
- "node": "local-script-check",
11
- "params": {
12
- "argv": {
13
- "list": [
14
- {
15
- "ref": "params.runGoTestsScript"
16
- }
17
- ]
18
- },
19
- "outputFile": {
20
- "artifact": {
21
- "kind": "run-go-tests-result-json-file",
22
- "taskKey": {
23
- "ref": "params.taskKey"
24
- },
25
- "iteration": {
26
- "const": 1
27
- }
28
- }
29
- },
30
- "labelText": {
31
- "const": "Running run_go_tests.py locally (attempt 1)"
32
- }
33
- },
34
- "expect": [
35
- {
36
- "kind": "require-file",
37
- "when": {
38
- "not": {
39
- "ref": "context.dryRun"
40
- }
41
- },
42
- "path": {
43
- "artifact": {
44
- "kind": "run-go-tests-result-json-file",
45
- "taskKey": {
46
- "ref": "params.taskKey"
47
- },
48
- "iteration": {
49
- "const": 1
50
- }
51
- }
52
- },
53
- "message": "run-go-tests-loop did not produce the structured tests result artifact."
54
- }
55
- ],
56
- "stopFlowIf": {
57
- "equals": [
58
- {
59
- "ref": "steps.run_go_tests_try_1.run_go_tests.outputs.parsed.ok"
60
- },
61
- {
62
- "const": true
63
- }
64
- ]
65
- }
66
- },
67
- {
68
- "id": "fix_go_tests",
69
- "when": {
70
- "equals": [
71
- {
72
- "ref": "steps.run_go_tests_try_1.run_go_tests.outputs.parsed.ok"
73
- },
74
- {
75
- "const": false
76
- }
77
- ]
78
- },
79
- "node": "opencode-prompt",
80
- "prompt": {
81
- "templateRef": "run-go-tests-loop-fix",
82
- "vars": {
83
- "tests_result_json_file": {
84
- "artifact": {
85
- "kind": "run-go-tests-result-json-file",
86
- "taskKey": {
87
- "ref": "params.taskKey"
88
- },
89
- "iteration": {
90
- "const": 1
91
- }
92
- }
93
- }
94
- },
95
- "extraPrompt": {
96
- "appendPrompt": {
97
- "base": {
98
- "ref": "params.extraPrompt"
99
- },
100
- "suffix": {
101
- "template": "Последний результат run_go_tests.py сохранён в {result_file}. exitCode={exit_code}, summary={summary}.\nПолный raw-вывод последнего запуска:\n{raw_output}\nИсправь только то, что мешает успешному прохождению проверки.",
102
- "vars": {
103
- "result_file": {
104
- "artifact": {
105
- "kind": "run-go-tests-result-json-file",
106
- "taskKey": {
107
- "ref": "params.taskKey"
108
- },
109
- "iteration": {
110
- "const": 1
111
- }
112
- }
113
- },
114
- "exit_code": {
115
- "ref": "steps.run_go_tests_try_1.run_go_tests.outputs.parsed.exitCode"
116
- },
117
- "summary": {
118
- "ref": "steps.run_go_tests_try_1.run_go_tests.outputs.parsed.summary"
119
- },
120
- "raw_output": {
121
- "ref": "steps.run_go_tests_try_1.run_go_tests.outputs.parsed.details.raw"
122
- }
123
- }
124
- }
125
- }
126
- },
127
- "format": "task-prompt"
128
- },
129
- "params": {
130
- "labelText": {
131
- "const": "Running OpenCode Go tests loop fix (attempt 1)"
132
- },
133
- "model": {
134
- "const": "minimax-coding-plan/MiniMax-M2.7"
135
- }
136
- }
137
- }
138
- ]
139
- },
140
- {
141
- "repeat": {
142
- "var": "attempt",
143
- "from": 2,
144
- "to": 5
145
- },
146
- "phases": [
147
- {
148
- "id": "run_go_tests_try_${attempt}",
149
- "when": {
150
- "equals": [
151
- {
152
- "ref": "steps.run_go_tests_try_${attempt_minus_one}.run_go_tests.outputs.parsed.ok"
153
- },
154
- {
155
- "const": false
156
- }
157
- ]
158
- },
159
- "steps": [
160
- {
161
- "id": "run_go_tests",
162
- "node": "local-script-check",
163
- "params": {
164
- "argv": {
165
- "list": [
166
- {
167
- "ref": "params.runGoTestsScript"
168
- }
169
- ]
170
- },
171
- "outputFile": {
172
- "artifact": {
173
- "kind": "run-go-tests-result-json-file",
174
- "taskKey": {
175
- "ref": "params.taskKey"
176
- },
177
- "iteration": {
178
- "ref": "repeat.attempt"
179
- }
180
- }
181
- },
182
- "labelText": {
183
- "template": "Running run_go_tests.py locally (attempt ${attempt})"
184
- }
185
- },
186
- "expect": [
187
- {
188
- "kind": "require-file",
189
- "when": {
190
- "not": {
191
- "ref": "context.dryRun"
192
- }
193
- },
194
- "path": {
195
- "artifact": {
196
- "kind": "run-go-tests-result-json-file",
197
- "taskKey": {
198
- "ref": "params.taskKey"
199
- },
200
- "iteration": {
201
- "ref": "repeat.attempt"
202
- }
203
- }
204
- },
205
- "message": "run-go-tests-loop did not produce the structured tests result artifact."
206
- }
207
- ],
208
- "stopFlowIf": {
209
- "equals": [
210
- {
211
- "ref": "steps.run_go_tests_try_${attempt}.run_go_tests.outputs.parsed.ok"
212
- },
213
- {
214
- "const": true
215
- }
216
- ]
217
- }
218
- },
219
- {
220
- "id": "fix_go_tests",
221
- "when": {
222
- "equals": [
223
- {
224
- "ref": "steps.run_go_tests_try_${attempt}.run_go_tests.outputs.parsed.ok"
225
- },
226
- {
227
- "const": false
228
- }
229
- ]
230
- },
231
- "node": "opencode-prompt",
232
- "prompt": {
233
- "templateRef": "run-go-tests-loop-fix",
234
- "vars": {
235
- "tests_result_json_file": {
236
- "artifact": {
237
- "kind": "run-go-tests-result-json-file",
238
- "taskKey": {
239
- "ref": "params.taskKey"
240
- },
241
- "iteration": {
242
- "ref": "repeat.attempt"
243
- }
244
- }
245
- }
246
- },
247
- "extraPrompt": {
248
- "appendPrompt": {
249
- "base": {
250
- "ref": "params.extraPrompt"
251
- },
252
- "suffix": {
253
- "template": "Последний результат run_go_tests.py сохранён в {result_file}. exitCode={exit_code}, summary={summary}.\nПолный raw-вывод последнего запуска:\n{raw_output}\nИсправь только то, что мешает успешному прохождению проверки.",
254
- "vars": {
255
- "result_file": {
256
- "artifact": {
257
- "kind": "run-go-tests-result-json-file",
258
- "taskKey": {
259
- "ref": "params.taskKey"
260
- },
261
- "iteration": {
262
- "ref": "repeat.attempt"
263
- }
264
- }
265
- },
266
- "exit_code": {
267
- "ref": "steps.run_go_tests_try_${attempt}.run_go_tests.outputs.parsed.exitCode"
268
- },
269
- "summary": {
270
- "ref": "steps.run_go_tests_try_${attempt}.run_go_tests.outputs.parsed.summary"
271
- },
272
- "raw_output": {
273
- "ref": "steps.run_go_tests_try_${attempt}.run_go_tests.outputs.parsed.details.raw"
274
- }
275
- }
276
- }
277
- }
278
- },
279
- "format": "task-prompt"
280
- },
281
- "params": {
282
- "labelText": {
283
- "template": "Running OpenCode Go tests loop fix (attempt ${attempt})"
284
- },
285
- "model": {
286
- "const": "minimax-coding-plan/MiniMax-M2.7"
287
- }
288
- }
289
- }
290
- ]
291
- }
292
- ]
293
- },
294
- {
295
- "id": "run_go_tests_failed",
296
- "steps": [
297
- {
298
- "id": "assert_run_go_tests_success",
299
- "node": "file-check",
300
- "params": {
301
- "path": {
302
- "ref": "params.runGoTestsScript"
303
- }
304
- },
305
- "expect": [
306
- {
307
- "kind": "step-output",
308
- "value": {
309
- "ref": "steps.run_go_tests_try_5.run_go_tests.outputs.parsed.ok"
310
- },
311
- "equals": {
312
- "const": true
313
- },
314
- "message": "run-go-tests-loop exhausted all attempts without a successful run_go_tests.py execution."
315
- }
316
- ]
317
- }
318
- ]
319
- }
320
- ]
321
- }