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
@@ -0,0 +1,282 @@
1
+ {
2
+ "kind": "review-loop-flow",
3
+ "version": 1,
4
+ "constants": {
5
+ "autoReviewFixExtraPrompt": "Fix only blockers and criticals. Skip minor and warning severity."
6
+ },
7
+ "phases": [
8
+ {
9
+ "id": "review_iteration_1",
10
+ "steps": [
11
+ {
12
+ "id": "run_review",
13
+ "node": "flow-run",
14
+ "params": {
15
+ "fileName": { "const": "review.json" },
16
+ "labelText": { "const": "Running review (iteration 1)" },
17
+ "taskKey": { "ref": "params.taskKey" },
18
+ "iteration": { "const": 1 },
19
+ "extraPrompt": { "ref": "params.extraPrompt" },
20
+ "llmModel": { "ref": "params.llmModel" },
21
+ "llmExecutor": { "ref": "params.llmExecutor" }
22
+ }
23
+ },
24
+ {
25
+ "id": "notify_review_complete",
26
+ "node": "telegram-notify",
27
+ "params": {
28
+ "message": {
29
+ "template": "Review for {taskKey} complete.",
30
+ "vars": {
31
+ "taskKey": { "ref": "params.taskKey" }
32
+ }
33
+ }
34
+ }
35
+ },
36
+ {
37
+ "id": "check_ready_to_merge",
38
+ "node": "file-check",
39
+ "params": {
40
+ "path": {
41
+ "artifact": {
42
+ "kind": "ready-to-merge-file",
43
+ "taskKey": { "ref": "params.taskKey" }
44
+ }
45
+ },
46
+ "panelTitle": { "const": "Ready To Merge" },
47
+ "foundMessage": { "const": "Changes are ready to merge.\nready-to-merge.md file created." },
48
+ "tone": { "const": "green" }
49
+ },
50
+ "stopFlowIf": {
51
+ "equals": [
52
+ { "ref": "steps.review_iteration_1.check_ready_to_merge.value.exists" },
53
+ { "const": true }
54
+ ]
55
+ }
56
+ },
57
+ {
58
+ "id": "write_auto_selection",
59
+ "node": "write-selection-file",
60
+ "when": {
61
+ "equals": [
62
+ { "ref": "steps.review_iteration_1.check_ready_to_merge.value.exists" },
63
+ { "const": false }
64
+ ]
65
+ },
66
+ "params": {
67
+ "outputFile": {
68
+ "template": "{workspace}/review-fix-selection-{taskKey}-iter-{iteration}.json",
69
+ "vars": {
70
+ "workspace": { "ref": "params.workspaceDir" },
71
+ "taskKey": { "ref": "params.taskKey" },
72
+ "iteration": { "const": 1 }
73
+ }
74
+ },
75
+ "reviewFindingsJsonFile": {
76
+ "artifact": {
77
+ "kind": "review-json-file",
78
+ "taskKey": { "ref": "params.taskKey" },
79
+ "iteration": { "const": 1 }
80
+ }
81
+ },
82
+ "selectionMode": { "const": "auto-blockers-criticals" }
83
+ }
84
+ },
85
+ {
86
+ "id": "run_review_fix",
87
+ "node": "flow-run",
88
+ "when": {
89
+ "equals": [
90
+ { "ref": "steps.review_iteration_1.check_ready_to_merge.value.exists" },
91
+ { "const": false }
92
+ ]
93
+ },
94
+ "params": {
95
+ "fileName": { "const": "review-fix.json" },
96
+ "labelText": {
97
+ "template": "Running review-fix (iteration 1)"
98
+ },
99
+ "taskKey": { "ref": "params.taskKey" },
100
+ "latestIteration": { "const": 1 },
101
+ "reviewAssessmentJsonFile": { "const": null },
102
+ "reviewFixSelectionJsonFile": {
103
+ "template": "{workspace}/review-fix-selection-{taskKey}-iter-{iteration}.json",
104
+ "vars": {
105
+ "workspace": { "ref": "params.workspaceDir" },
106
+ "taskKey": { "ref": "params.taskKey" },
107
+ "iteration": { "const": 1 }
108
+ }
109
+ },
110
+ "reviewFixPoints": { "ref": "params.reviewFixPoints" },
111
+ "extraPrompt": {
112
+ "appendPrompt": {
113
+ "base": { "ref": "params.extraPrompt" },
114
+ "suffix": { "const": "Fix only blockers and criticals." }
115
+ }
116
+ },
117
+ "llmModel": { "ref": "params.llmModel" },
118
+ "llmExecutor": { "ref": "params.llmExecutor" }
119
+ }
120
+ },
121
+ {
122
+ "id": "notify_review_fix_complete",
123
+ "node": "telegram-notify",
124
+ "params": {
125
+ "message": {
126
+ "template": "Review fix for {taskKey} complete.",
127
+ "vars": {
128
+ "taskKey": { "ref": "params.taskKey" }
129
+ }
130
+ }
131
+ }
132
+ }
133
+ ]
134
+ },
135
+ {
136
+ "repeat": {
137
+ "var": "iteration",
138
+ "from": 2,
139
+ "to": 5
140
+ },
141
+ "phases": [
142
+ {
143
+ "id": "review_iteration_${iteration}",
144
+ "steps": [
145
+ {
146
+ "id": "run_review",
147
+ "node": "flow-run",
148
+ "params": {
149
+ "fileName": { "const": "review.json" },
150
+ "labelText": {
151
+ "template": "Running review (iteration ${iteration})"
152
+ },
153
+ "taskKey": { "ref": "params.taskKey" },
154
+ "iteration": { "ref": "repeat.iteration" },
155
+ "extraPrompt": { "ref": "params.extraPrompt" },
156
+ "llmModel": { "ref": "params.llmModel" },
157
+ "llmExecutor": { "ref": "params.llmExecutor" }
158
+ }
159
+ },
160
+ {
161
+ "id": "notify_review_complete",
162
+ "node": "telegram-notify",
163
+ "params": {
164
+ "message": {
165
+ "template": "Review iteration ${iteration} for {taskKey} complete.",
166
+ "vars": {
167
+ "taskKey": { "ref": "params.taskKey" },
168
+ "iteration": { "ref": "repeat.iteration" }
169
+ }
170
+ }
171
+ }
172
+ },
173
+ {
174
+ "id": "check_ready_to_merge",
175
+ "node": "file-check",
176
+ "params": {
177
+ "path": {
178
+ "artifact": {
179
+ "kind": "ready-to-merge-file",
180
+ "taskKey": { "ref": "params.taskKey" }
181
+ }
182
+ },
183
+ "panelTitle": { "const": "Ready To Merge" },
184
+ "foundMessage": { "const": "Changes are ready to merge.\nready-to-merge.md file created." },
185
+ "tone": { "const": "green" }
186
+ },
187
+ "stopFlowIf": {
188
+ "equals": [
189
+ { "ref": "steps.review_iteration_${iteration}.check_ready_to_merge.value.exists" },
190
+ { "const": true }
191
+ ]
192
+ }
193
+ },
194
+ {
195
+ "id": "write_auto_selection",
196
+ "node": "write-selection-file",
197
+ "when": {
198
+ "equals": [
199
+ { "ref": "steps.review_iteration_${iteration}.check_ready_to_merge.value.exists" },
200
+ { "const": false }
201
+ ]
202
+ },
203
+ "params": {
204
+ "outputFile": {
205
+ "template": "{workspace}/review-fix-selection-{taskKey}-iter-{iteration}.json",
206
+ "vars": {
207
+ "workspace": { "ref": "params.workspaceDir" },
208
+ "taskKey": { "ref": "params.taskKey" },
209
+ "iteration": { "ref": "repeat.iteration" }
210
+ }
211
+ },
212
+ "reviewFindingsJsonFile": {
213
+ "artifact": {
214
+ "kind": "review-json-file",
215
+ "taskKey": { "ref": "params.taskKey" },
216
+ "iteration": { "ref": "repeat.iteration" }
217
+ }
218
+ },
219
+ "selectionMode": { "const": "auto-blockers-criticals" }
220
+ }
221
+ },
222
+ {
223
+ "id": "run_review_fix",
224
+ "when": {
225
+ "equals": [
226
+ { "ref": "steps.review_iteration_${iteration}.check_ready_to_merge.value.exists" },
227
+ { "const": false }
228
+ ]
229
+ },
230
+ "node": "flow-run",
231
+ "params": {
232
+ "fileName": { "const": "review-fix.json" },
233
+ "labelText": {
234
+ "template": "Running review-fix (iteration ${iteration})"
235
+ },
236
+ "taskKey": { "ref": "params.taskKey" },
237
+ "latestIteration": { "ref": "repeat.iteration" },
238
+ "reviewAssessmentJsonFile": { "const": null },
239
+ "reviewFixSelectionJsonFile": {
240
+ "template": "{workspace}/review-fix-selection-{taskKey}-iter-{iteration}.json",
241
+ "vars": {
242
+ "workspace": { "ref": "params.workspaceDir" },
243
+ "taskKey": { "ref": "params.taskKey" },
244
+ "iteration": { "ref": "repeat.iteration" }
245
+ }
246
+ },
247
+ "reviewFixPoints": { "ref": "params.reviewFixPoints" },
248
+ "extraPrompt": {
249
+ "appendPrompt": {
250
+ "base": { "ref": "params.extraPrompt" },
251
+ "suffix": { "const": "Fix only blockers and criticals." }
252
+ }
253
+ },
254
+ "llmModel": { "ref": "params.llmModel" },
255
+ "llmExecutor": { "ref": "params.llmExecutor" }
256
+ }
257
+ },
258
+ {
259
+ "id": "notify_review_fix_complete",
260
+ "node": "telegram-notify",
261
+ "when": {
262
+ "equals": [
263
+ { "ref": "steps.review_iteration_${iteration}.check_ready_to_merge.value.exists" },
264
+ { "const": false }
265
+ ]
266
+ },
267
+ "params": {
268
+ "message": {
269
+ "template": "Review fix iteration ${iteration} for {taskKey} complete.",
270
+ "vars": {
271
+ "taskKey": { "ref": "params.taskKey" },
272
+ "iteration": { "ref": "repeat.iteration" }
273
+ }
274
+ }
275
+ }
276
+ }
277
+ ]
278
+ }
279
+ ]
280
+ }
281
+ ]
282
+ }
@@ -0,0 +1,87 @@
1
+ {
2
+ "kind": "review-project-flow",
3
+ "version": 1,
4
+ "phases": [
5
+ {
6
+ "id": "review",
7
+ "steps": [
8
+ {
9
+ "id": "run_review",
10
+ "node": "llm-prompt",
11
+ "prompt": {
12
+ "templateRef": "review-project",
13
+ "vars": {
14
+ "review_file": {
15
+ "artifact": {
16
+ "kind": "review-file",
17
+ "taskKey": { "ref": "params.taskKey" },
18
+ "iteration": { "ref": "params.iteration" }
19
+ }
20
+ },
21
+ "review_json_file": {
22
+ "artifact": {
23
+ "kind": "review-json-file",
24
+ "taskKey": { "ref": "params.taskKey" },
25
+ "iteration": { "ref": "params.iteration" }
26
+ }
27
+ },
28
+ "ready_to_merge_file": {
29
+ "artifact": {
30
+ "kind": "ready-to-merge-file",
31
+ "taskKey": { "ref": "params.taskKey" }
32
+ }
33
+ }
34
+ },
35
+ "extraPrompt": { "ref": "params.extraPrompt" },
36
+ "format": "task-prompt"
37
+ },
38
+ "params": {
39
+ "labelText": {
40
+ "template": "Running project review mode (iteration {iteration})",
41
+ "vars": {
42
+ "iteration": { "ref": "params.iteration" }
43
+ }
44
+ },
45
+ "model": { "ref": "params.llmModel" },
46
+ "executor": { "ref": "params.llmExecutor" }
47
+ },
48
+ "expect": [
49
+ {
50
+ "kind": "require-artifacts",
51
+ "when": { "not": { "ref": "context.dryRun" } },
52
+ "paths": {
53
+ "list": [
54
+ {
55
+ "artifact": {
56
+ "kind": "review-file",
57
+ "taskKey": { "ref": "params.taskKey" },
58
+ "iteration": { "ref": "params.iteration" }
59
+ }
60
+ }
61
+ ]
62
+ },
63
+ "message": "Project review did not produce the required review artifact."
64
+ },
65
+ {
66
+ "kind": "require-structured-artifacts",
67
+ "when": { "not": { "ref": "context.dryRun" } },
68
+ "items": [
69
+ {
70
+ "path": {
71
+ "artifact": {
72
+ "kind": "review-json-file",
73
+ "taskKey": { "ref": "params.taskKey" },
74
+ "iteration": { "ref": "params.iteration" }
75
+ }
76
+ },
77
+ "schemaId": "review-findings/v1"
78
+ }
79
+ ],
80
+ "message": "Project review produced invalid structured artifacts."
81
+ }
82
+ ]
83
+ }
84
+ ]
85
+ }
86
+ ]
87
+ }
@@ -0,0 +1,126 @@
1
+ {
2
+ "kind": "review-flow",
3
+ "version": 1,
4
+ "phases": [
5
+ {
6
+ "id": "review",
7
+ "steps": [
8
+ {
9
+ "id": "run_review",
10
+ "node": "llm-prompt",
11
+ "prompt": {
12
+ "templateRef": "review",
13
+ "vars": {
14
+ "jira_task_file": {
15
+ "artifact": {
16
+ "kind": "jira-task-file",
17
+ "taskKey": { "ref": "params.taskKey" }
18
+ }
19
+ },
20
+ "design_file": {
21
+ "artifact": {
22
+ "kind": "design-file",
23
+ "taskKey": { "ref": "params.taskKey" }
24
+ }
25
+ },
26
+ "design_json_file": {
27
+ "artifact": {
28
+ "kind": "design-json-file",
29
+ "taskKey": { "ref": "params.taskKey" }
30
+ }
31
+ },
32
+ "plan_file": {
33
+ "artifact": {
34
+ "kind": "plan-file",
35
+ "taskKey": { "ref": "params.taskKey" }
36
+ }
37
+ },
38
+ "plan_json_file": {
39
+ "artifact": {
40
+ "kind": "plan-json-file",
41
+ "taskKey": { "ref": "params.taskKey" }
42
+ }
43
+ },
44
+ "review_file": {
45
+ "artifact": {
46
+ "kind": "review-file",
47
+ "taskKey": { "ref": "params.taskKey" },
48
+ "iteration": { "ref": "params.iteration" }
49
+ }
50
+ },
51
+ "review_json_file": {
52
+ "artifact": {
53
+ "kind": "review-json-file",
54
+ "taskKey": { "ref": "params.taskKey" },
55
+ "iteration": { "ref": "params.iteration" }
56
+ }
57
+ }
58
+ },
59
+ "extraPrompt": { "ref": "params.extraPrompt" },
60
+ "format": "task-prompt"
61
+ },
62
+ "params": {
63
+ "labelText": {
64
+ "template": "Running review mode (iteration {iteration})",
65
+ "vars": {
66
+ "iteration": { "ref": "params.iteration" }
67
+ }
68
+ },
69
+ "model": { "ref": "params.llmModel" },
70
+ "executor": { "ref": "params.llmExecutor" }
71
+ },
72
+ "expect": [
73
+ {
74
+ "kind": "require-artifacts",
75
+ "when": { "not": { "ref": "context.dryRun" } },
76
+ "paths": {
77
+ "list": [
78
+ {
79
+ "artifact": {
80
+ "kind": "review-file",
81
+ "taskKey": { "ref": "params.taskKey" },
82
+ "iteration": { "ref": "params.iteration" }
83
+ }
84
+ }
85
+ ]
86
+ },
87
+ "message": "Review did not produce the required review artifact."
88
+ },
89
+ {
90
+ "kind": "require-structured-artifacts",
91
+ "when": { "not": { "ref": "context.dryRun" } },
92
+ "items": [
93
+ {
94
+ "path": {
95
+ "artifact": {
96
+ "kind": "review-json-file",
97
+ "taskKey": { "ref": "params.taskKey" },
98
+ "iteration": { "ref": "params.iteration" }
99
+ }
100
+ },
101
+ "schemaId": "review-findings/v1"
102
+ }
103
+ ],
104
+ "message": "Review produced invalid structured artifacts."
105
+ }
106
+ ]
107
+ },
108
+ {
109
+ "id": "check_ready_to_merge",
110
+ "node": "file-check",
111
+ "params": {
112
+ "path": {
113
+ "artifact": {
114
+ "kind": "ready-to-merge-file",
115
+ "taskKey": { "ref": "params.taskKey" }
116
+ }
117
+ },
118
+ "panelTitle": { "const": "Ready To Merge" },
119
+ "foundMessage": { "const": "Изменения готовы к merge\nФайл ready-to-merge.md создан." },
120
+ "tone": { "const": "green" }
121
+ }
122
+ }
123
+ ]
124
+ }
125
+ ]
126
+ }