agentweaver 0.1.6 → 0.1.7

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.
@@ -30,6 +30,155 @@
30
30
  }
31
31
  ]
32
32
  },
33
+ {
34
+ "id": "check_bug_issue_type",
35
+ "node": "jira-issue-check",
36
+ "params": {
37
+ "labelText": { "const": "Checking Jira issue type for bug analysis" },
38
+ "jiraTaskFile": {
39
+ "artifact": {
40
+ "kind": "jira-task-file",
41
+ "taskKey": { "ref": "params.taskKey" }
42
+ }
43
+ },
44
+ "allowedIssueTypes": {
45
+ "const": ["Bug"]
46
+ }
47
+ }
48
+ },
49
+ {
50
+ "id": "load_existing_task_summary",
51
+ "when": {
52
+ "all": [
53
+ { "not": { "ref": "params.forceRefresh" } },
54
+ {
55
+ "exists": {
56
+ "artifact": {
57
+ "kind": "task-summary-file",
58
+ "taskKey": { "ref": "params.taskKey" }
59
+ }
60
+ }
61
+ }
62
+ ]
63
+ },
64
+ "node": "summary-file-load",
65
+ "params": {
66
+ "path": {
67
+ "artifact": {
68
+ "kind": "task-summary-file",
69
+ "taskKey": { "ref": "params.taskKey" }
70
+ }
71
+ }
72
+ }
73
+ },
74
+ {
75
+ "id": "generate_task_summary",
76
+ "when": {
77
+ "any": [
78
+ { "ref": "params.forceRefresh" },
79
+ {
80
+ "not": {
81
+ "exists": {
82
+ "artifact": {
83
+ "kind": "task-summary-file",
84
+ "taskKey": { "ref": "params.taskKey" }
85
+ }
86
+ }
87
+ }
88
+ }
89
+ ]
90
+ },
91
+ "node": "claude-prompt",
92
+ "prompt": {
93
+ "templateRef": "task-summary",
94
+ "vars": {
95
+ "jira_task_file": {
96
+ "artifact": {
97
+ "kind": "jira-task-file",
98
+ "taskKey": { "ref": "params.taskKey" }
99
+ }
100
+ },
101
+ "task_summary_file": {
102
+ "artifact": {
103
+ "kind": "task-summary-file",
104
+ "taskKey": { "ref": "params.taskKey" }
105
+ }
106
+ },
107
+ "task_summary_json_file": {
108
+ "artifact": {
109
+ "kind": "task-summary-json-file",
110
+ "taskKey": { "ref": "params.taskKey" }
111
+ }
112
+ }
113
+ },
114
+ "format": "plain"
115
+ },
116
+ "params": {
117
+ "labelText": { "const": "Preparing task summary" },
118
+ "outputFile": {
119
+ "artifact": {
120
+ "kind": "task-summary-file",
121
+ "taskKey": { "ref": "params.taskKey" }
122
+ }
123
+ },
124
+ "requiredArtifacts": {
125
+ "list": [
126
+ {
127
+ "artifact": {
128
+ "kind": "task-summary-json-file",
129
+ "taskKey": { "ref": "params.taskKey" }
130
+ }
131
+ }
132
+ ]
133
+ },
134
+ "model": { "const": "haiku" }
135
+ },
136
+ "expect": [
137
+ {
138
+ "kind": "require-artifacts",
139
+ "when": { "not": { "ref": "context.dryRun" } },
140
+ "paths": {
141
+ "list": [
142
+ {
143
+ "artifact": {
144
+ "kind": "task-summary-file",
145
+ "taskKey": { "ref": "params.taskKey" }
146
+ }
147
+ }
148
+ ]
149
+ },
150
+ "message": "Claude summary did not produce the task summary artifact."
151
+ },
152
+ {
153
+ "kind": "require-structured-artifacts",
154
+ "when": { "not": { "ref": "context.dryRun" } },
155
+ "items": [
156
+ {
157
+ "path": {
158
+ "artifact": {
159
+ "kind": "task-summary-json-file",
160
+ "taskKey": { "ref": "params.taskKey" }
161
+ }
162
+ },
163
+ "schemaId": "task-summary/v1"
164
+ }
165
+ ],
166
+ "message": "Claude summary produced invalid structured artifacts."
167
+ }
168
+ ],
169
+ "after": [
170
+ {
171
+ "kind": "set-summary-from-file",
172
+ "when": { "not": { "ref": "context.dryRun" } },
173
+ "path": {
174
+ "artifact": {
175
+ "kind": "task-summary-file",
176
+ "taskKey": { "ref": "params.taskKey" }
177
+ }
178
+ }
179
+ }
180
+ ]
181
+ },
33
182
  {
34
183
  "id": "run_codex_bug_analyze",
35
184
  "node": "codex-local-prompt",
@@ -30,6 +30,139 @@
30
30
  }
31
31
  ]
32
32
  },
33
+ {
34
+ "id": "load_existing_task_summary",
35
+ "when": {
36
+ "all": [
37
+ { "not": { "ref": "params.forceRefresh" } },
38
+ {
39
+ "exists": {
40
+ "artifact": {
41
+ "kind": "task-summary-file",
42
+ "taskKey": { "ref": "params.taskKey" }
43
+ }
44
+ }
45
+ }
46
+ ]
47
+ },
48
+ "node": "summary-file-load",
49
+ "params": {
50
+ "path": {
51
+ "artifact": {
52
+ "kind": "task-summary-file",
53
+ "taskKey": { "ref": "params.taskKey" }
54
+ }
55
+ }
56
+ }
57
+ },
58
+ {
59
+ "id": "generate_task_summary",
60
+ "when": {
61
+ "any": [
62
+ { "ref": "params.forceRefresh" },
63
+ {
64
+ "not": {
65
+ "exists": {
66
+ "artifact": {
67
+ "kind": "task-summary-file",
68
+ "taskKey": { "ref": "params.taskKey" }
69
+ }
70
+ }
71
+ }
72
+ }
73
+ ]
74
+ },
75
+ "node": "claude-prompt",
76
+ "prompt": {
77
+ "templateRef": "task-summary",
78
+ "vars": {
79
+ "jira_task_file": {
80
+ "artifact": {
81
+ "kind": "jira-task-file",
82
+ "taskKey": { "ref": "params.taskKey" }
83
+ }
84
+ },
85
+ "task_summary_file": {
86
+ "artifact": {
87
+ "kind": "task-summary-file",
88
+ "taskKey": { "ref": "params.taskKey" }
89
+ }
90
+ },
91
+ "task_summary_json_file": {
92
+ "artifact": {
93
+ "kind": "task-summary-json-file",
94
+ "taskKey": { "ref": "params.taskKey" }
95
+ }
96
+ }
97
+ },
98
+ "format": "plain"
99
+ },
100
+ "params": {
101
+ "labelText": { "const": "Preparing task summary" },
102
+ "outputFile": {
103
+ "artifact": {
104
+ "kind": "task-summary-file",
105
+ "taskKey": { "ref": "params.taskKey" }
106
+ }
107
+ },
108
+ "requiredArtifacts": {
109
+ "list": [
110
+ {
111
+ "artifact": {
112
+ "kind": "task-summary-json-file",
113
+ "taskKey": { "ref": "params.taskKey" }
114
+ }
115
+ }
116
+ ]
117
+ },
118
+ "model": { "const": "haiku" }
119
+ },
120
+ "expect": [
121
+ {
122
+ "kind": "require-artifacts",
123
+ "when": { "not": { "ref": "context.dryRun" } },
124
+ "paths": {
125
+ "list": [
126
+ {
127
+ "artifact": {
128
+ "kind": "task-summary-file",
129
+ "taskKey": { "ref": "params.taskKey" }
130
+ }
131
+ }
132
+ ]
133
+ },
134
+ "message": "Claude summary did not produce the task summary artifact."
135
+ },
136
+ {
137
+ "kind": "require-structured-artifacts",
138
+ "when": { "not": { "ref": "context.dryRun" } },
139
+ "items": [
140
+ {
141
+ "path": {
142
+ "artifact": {
143
+ "kind": "task-summary-json-file",
144
+ "taskKey": { "ref": "params.taskKey" }
145
+ }
146
+ },
147
+ "schemaId": "task-summary/v1"
148
+ }
149
+ ],
150
+ "message": "Claude summary produced invalid structured artifacts."
151
+ }
152
+ ],
153
+ "after": [
154
+ {
155
+ "kind": "set-summary-from-file",
156
+ "when": { "not": { "ref": "context.dryRun" } },
157
+ "path": {
158
+ "artifact": {
159
+ "kind": "task-summary-file",
160
+ "taskKey": { "ref": "params.taskKey" }
161
+ }
162
+ }
163
+ }
164
+ ]
165
+ },
33
166
  {
34
167
  "id": "run_codex_plan",
35
168
  "node": "codex-local-prompt",
@@ -0,0 +1,243 @@
1
+ {
2
+ "kind": "review-project-flow",
3
+ "version": 1,
4
+ "phases": [
5
+ {
6
+ "id": "review",
7
+ "steps": [
8
+ {
9
+ "id": "run_claude_review",
10
+ "node": "claude-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 Claude project review mode (iteration {iteration})",
41
+ "vars": {
42
+ "iteration": { "ref": "params.iteration" }
43
+ }
44
+ },
45
+ "model": { "const": "opus" }
46
+ },
47
+ "expect": [
48
+ {
49
+ "kind": "require-artifacts",
50
+ "when": { "not": { "ref": "context.dryRun" } },
51
+ "paths": {
52
+ "list": [
53
+ {
54
+ "artifact": {
55
+ "kind": "review-file",
56
+ "taskKey": { "ref": "params.taskKey" },
57
+ "iteration": { "ref": "params.iteration" }
58
+ }
59
+ }
60
+ ]
61
+ },
62
+ "message": "Claude project review did not produce the required review artifact."
63
+ },
64
+ {
65
+ "kind": "require-structured-artifacts",
66
+ "when": { "not": { "ref": "context.dryRun" } },
67
+ "items": [
68
+ {
69
+ "path": {
70
+ "artifact": {
71
+ "kind": "review-json-file",
72
+ "taskKey": { "ref": "params.taskKey" },
73
+ "iteration": { "ref": "params.iteration" }
74
+ }
75
+ },
76
+ "schemaId": "review-findings/v1"
77
+ }
78
+ ],
79
+ "message": "Claude project review produced invalid structured artifacts."
80
+ }
81
+ ]
82
+ },
83
+ {
84
+ "id": "summarize_review",
85
+ "when": { "not": { "ref": "context.dryRun" } },
86
+ "node": "claude-prompt",
87
+ "prompt": {
88
+ "templateRef": "review-summary",
89
+ "vars": {
90
+ "review_file": {
91
+ "artifact": {
92
+ "kind": "review-file",
93
+ "taskKey": { "ref": "params.taskKey" },
94
+ "iteration": { "ref": "params.iteration" }
95
+ }
96
+ },
97
+ "review_summary_file": {
98
+ "artifact": {
99
+ "kind": "review-summary-file",
100
+ "taskKey": { "ref": "params.taskKey" },
101
+ "iteration": { "ref": "params.iteration" }
102
+ }
103
+ }
104
+ },
105
+ "format": "plain"
106
+ },
107
+ "params": {
108
+ "labelText": { "const": "Preparing project review summary" },
109
+ "summaryTitle": { "const": "Project Review Comments" },
110
+ "model": { "const": "haiku" },
111
+ "outputFile": {
112
+ "artifact": {
113
+ "kind": "review-summary-file",
114
+ "taskKey": { "ref": "params.taskKey" },
115
+ "iteration": { "ref": "params.iteration" }
116
+ }
117
+ }
118
+ }
119
+ },
120
+ {
121
+ "id": "run_codex_review_reply",
122
+ "node": "codex-local-prompt",
123
+ "prompt": {
124
+ "templateRef": "review-reply-project",
125
+ "vars": {
126
+ "review_file": {
127
+ "artifact": {
128
+ "kind": "review-file",
129
+ "taskKey": { "ref": "params.taskKey" },
130
+ "iteration": { "ref": "params.iteration" }
131
+ }
132
+ },
133
+ "review_json_file": {
134
+ "artifact": {
135
+ "kind": "review-json-file",
136
+ "taskKey": { "ref": "params.taskKey" },
137
+ "iteration": { "ref": "params.iteration" }
138
+ }
139
+ },
140
+ "review_reply_file": {
141
+ "artifact": {
142
+ "kind": "review-reply-file",
143
+ "taskKey": { "ref": "params.taskKey" },
144
+ "iteration": { "ref": "params.iteration" }
145
+ }
146
+ },
147
+ "review_reply_json_file": {
148
+ "artifact": {
149
+ "kind": "review-reply-json-file",
150
+ "taskKey": { "ref": "params.taskKey" },
151
+ "iteration": { "ref": "params.iteration" }
152
+ }
153
+ }
154
+ },
155
+ "extraPrompt": { "ref": "params.extraPrompt" },
156
+ "format": "task-prompt"
157
+ },
158
+ "params": {
159
+ "labelText": {
160
+ "template": "Running Codex project review reply mode (iteration {iteration})",
161
+ "vars": {
162
+ "iteration": { "ref": "params.iteration" }
163
+ }
164
+ },
165
+ "model": { "const": "gpt-5.4" }
166
+ },
167
+ "expect": [
168
+ {
169
+ "kind": "require-artifacts",
170
+ "when": { "not": { "ref": "context.dryRun" } },
171
+ "paths": {
172
+ "list": [
173
+ {
174
+ "artifact": {
175
+ "kind": "review-reply-file",
176
+ "taskKey": { "ref": "params.taskKey" },
177
+ "iteration": { "ref": "params.iteration" }
178
+ }
179
+ }
180
+ ]
181
+ },
182
+ "message": "Codex project review reply did not produce the required review-reply artifact."
183
+ },
184
+ {
185
+ "kind": "require-structured-artifacts",
186
+ "when": { "not": { "ref": "context.dryRun" } },
187
+ "items": [
188
+ {
189
+ "path": {
190
+ "artifact": {
191
+ "kind": "review-reply-json-file",
192
+ "taskKey": { "ref": "params.taskKey" },
193
+ "iteration": { "ref": "params.iteration" }
194
+ }
195
+ },
196
+ "schemaId": "review-reply/v1"
197
+ }
198
+ ],
199
+ "message": "Codex project review reply produced invalid structured artifacts."
200
+ }
201
+ ]
202
+ },
203
+ {
204
+ "id": "summarize_review_reply",
205
+ "when": { "not": { "ref": "context.dryRun" } },
206
+ "node": "claude-prompt",
207
+ "prompt": {
208
+ "templateRef": "review-reply-summary",
209
+ "vars": {
210
+ "review_reply_file": {
211
+ "artifact": {
212
+ "kind": "review-reply-file",
213
+ "taskKey": { "ref": "params.taskKey" },
214
+ "iteration": { "ref": "params.iteration" }
215
+ }
216
+ },
217
+ "review_reply_summary_file": {
218
+ "artifact": {
219
+ "kind": "review-reply-summary-file",
220
+ "taskKey": { "ref": "params.taskKey" },
221
+ "iteration": { "ref": "params.iteration" }
222
+ }
223
+ }
224
+ },
225
+ "format": "plain"
226
+ },
227
+ "params": {
228
+ "labelText": { "const": "Preparing project review reply summary" },
229
+ "summaryTitle": { "const": "Project Review Reply" },
230
+ "model": { "const": "haiku" },
231
+ "outputFile": {
232
+ "artifact": {
233
+ "kind": "review-reply-summary-file",
234
+ "taskKey": { "ref": "params.taskKey" },
235
+ "iteration": { "ref": "params.iteration" }
236
+ }
237
+ }
238
+ }
239
+ }
240
+ ]
241
+ }
242
+ ]
243
+ }
@@ -0,0 +1,155 @@
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
+ { "ref": "params.runGoLinterScript" }
15
+ ]
16
+ },
17
+ "labelText": {
18
+ "const": "Running run_go_linter.sh locally (attempt 1)"
19
+ }
20
+ },
21
+ "stopFlowIf": {
22
+ "equals": [
23
+ { "ref": "steps.run_go_linter_try_1.run_go_linter.outputs.parsed.ok" },
24
+ { "const": true }
25
+ ]
26
+ }
27
+ },
28
+ {
29
+ "id": "fix_go_linter",
30
+ "when": {
31
+ "equals": [
32
+ { "ref": "steps.run_go_linter_try_1.run_go_linter.outputs.parsed.ok" },
33
+ { "const": false }
34
+ ]
35
+ },
36
+ "node": "codex-local-prompt",
37
+ "prompt": {
38
+ "templateRef": "run-go-linter-loop-fix",
39
+ "extraPrompt": {
40
+ "appendPrompt": {
41
+ "base": { "ref": "params.extraPrompt" },
42
+ "suffix": {
43
+ "template": "Последний результат run_go_linter.sh: exitCode={exit_code}, summary={summary}. Исправь только то, что мешает успешному прохождению проверки.",
44
+ "vars": {
45
+ "exit_code": { "ref": "steps.run_go_linter_try_1.run_go_linter.outputs.parsed.exitCode" },
46
+ "summary": { "ref": "steps.run_go_linter_try_1.run_go_linter.outputs.parsed.summary" }
47
+ }
48
+ }
49
+ }
50
+ },
51
+ "format": "task-prompt"
52
+ },
53
+ "params": {
54
+ "labelText": {
55
+ "const": "Running Codex Go linter loop fix (attempt 1)"
56
+ },
57
+ "model": { "const": "gpt-5.4" }
58
+ }
59
+ }
60
+ ]
61
+ },
62
+ {
63
+ "repeat": {
64
+ "var": "attempt",
65
+ "from": 2,
66
+ "to": 5
67
+ },
68
+ "phases": [
69
+ {
70
+ "id": "run_go_linter_try_${attempt}",
71
+ "when": {
72
+ "equals": [
73
+ { "ref": "steps.run_go_linter_try_${attempt_minus_one}.run_go_linter.outputs.parsed.ok" },
74
+ { "const": false }
75
+ ]
76
+ },
77
+ "steps": [
78
+ {
79
+ "id": "run_go_linter",
80
+ "node": "local-script-check",
81
+ "params": {
82
+ "argv": {
83
+ "list": [
84
+ { "ref": "params.runGoLinterScript" }
85
+ ]
86
+ },
87
+ "labelText": {
88
+ "template": "Running run_go_linter.sh locally (attempt ${attempt})"
89
+ }
90
+ },
91
+ "stopFlowIf": {
92
+ "equals": [
93
+ { "ref": "steps.run_go_linter_try_${attempt}.run_go_linter.outputs.parsed.ok" },
94
+ { "const": true }
95
+ ]
96
+ }
97
+ },
98
+ {
99
+ "id": "fix_go_linter",
100
+ "when": {
101
+ "equals": [
102
+ { "ref": "steps.run_go_linter_try_${attempt}.run_go_linter.outputs.parsed.ok" },
103
+ { "const": false }
104
+ ]
105
+ },
106
+ "node": "codex-local-prompt",
107
+ "prompt": {
108
+ "templateRef": "run-go-linter-loop-fix",
109
+ "extraPrompt": {
110
+ "appendPrompt": {
111
+ "base": { "ref": "params.extraPrompt" },
112
+ "suffix": {
113
+ "template": "Последний результат run_go_linter.sh: exitCode={exit_code}, summary={summary}. Исправь только то, что мешает успешному прохождению проверки.",
114
+ "vars": {
115
+ "exit_code": { "ref": "steps.run_go_linter_try_${attempt}.run_go_linter.outputs.parsed.exitCode" },
116
+ "summary": { "ref": "steps.run_go_linter_try_${attempt}.run_go_linter.outputs.parsed.summary" }
117
+ }
118
+ }
119
+ }
120
+ },
121
+ "format": "task-prompt"
122
+ },
123
+ "params": {
124
+ "labelText": {
125
+ "template": "Running Codex Go linter loop fix (attempt ${attempt})"
126
+ },
127
+ "model": { "const": "gpt-5.4" }
128
+ }
129
+ }
130
+ ]
131
+ }
132
+ ]
133
+ },
134
+ {
135
+ "id": "run_go_linter_failed",
136
+ "steps": [
137
+ {
138
+ "id": "assert_run_go_linter_success",
139
+ "node": "file-check",
140
+ "params": {
141
+ "path": { "ref": "params.runGoLinterScript" }
142
+ },
143
+ "expect": [
144
+ {
145
+ "kind": "step-output",
146
+ "value": { "ref": "steps.run_go_linter_try_5.run_go_linter.outputs.parsed.ok" },
147
+ "equals": { "const": true },
148
+ "message": "run-go-linter-loop exhausted all attempts without a successful run_go_linter.sh execution."
149
+ }
150
+ ]
151
+ }
152
+ ]
153
+ }
154
+ ]
155
+ }