agentweaver 0.1.10 → 0.1.11

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 (106) hide show
  1. package/README.md +218 -224
  2. package/dist/artifacts.js +100 -55
  3. package/dist/executors/{codex-local-executor.js → codex-executor.js} +4 -4
  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/telegram-notifier-executor.js +54 -0
  11. package/dist/flow-state.js +46 -1
  12. package/dist/gitlab.js +13 -8
  13. package/dist/index.js +469 -514
  14. package/dist/interactive-ui.js +144 -43
  15. package/dist/jira.js +52 -5
  16. package/dist/pipeline/auto-flow.js +6 -6
  17. package/dist/pipeline/context.js +1 -0
  18. package/dist/pipeline/flow-catalog.js +34 -4
  19. package/dist/pipeline/flow-model-settings.js +77 -0
  20. package/dist/pipeline/flow-specs/auto-common.json +446 -0
  21. package/dist/pipeline/flow-specs/auto-golang.json +563 -0
  22. package/dist/pipeline/flow-specs/{bug-analyze.json → bugz/bug-analyze.json} +43 -25
  23. package/dist/pipeline/flow-specs/{bug-fix.json → bugz/bug-fix.json} +5 -4
  24. package/dist/pipeline/flow-specs/git-commit.json +196 -0
  25. package/dist/pipeline/flow-specs/{gitlab-diff-review.json → gitlab/gitlab-diff-review.json} +20 -50
  26. package/dist/pipeline/flow-specs/gitlab/gitlab-review.json +165 -0
  27. package/dist/pipeline/flow-specs/{mr-description.json → gitlab/mr-description.json} +17 -10
  28. package/dist/pipeline/flow-specs/{run-go-linter-loop.json → go/run-go-linter-loop.json} +40 -14
  29. package/dist/pipeline/flow-specs/{run-go-tests-loop.json → go/run-go-tests-loop.json} +40 -14
  30. package/dist/pipeline/flow-specs/implement.json +5 -4
  31. package/dist/pipeline/flow-specs/plan.json +40 -148
  32. package/dist/pipeline/flow-specs/{review-fix.json → review/review-fix.json} +73 -13
  33. package/dist/pipeline/flow-specs/review/review-loop.json +280 -0
  34. package/dist/pipeline/flow-specs/review/review-project.json +87 -0
  35. package/dist/pipeline/flow-specs/review/review.json +126 -0
  36. package/dist/pipeline/flow-specs/task-describe.json +191 -11
  37. package/dist/pipeline/launch-profile-config.js +38 -0
  38. package/dist/pipeline/node-registry.js +75 -45
  39. package/dist/pipeline/nodes/build-failure-summary-node.js +16 -29
  40. package/dist/pipeline/nodes/build-review-fix-prompt-node.js +36 -0
  41. package/dist/pipeline/nodes/codex-prompt-node.js +41 -0
  42. package/dist/pipeline/nodes/commit-message-form-node.js +79 -0
  43. package/dist/pipeline/nodes/git-commit-form-node.js +138 -0
  44. package/dist/pipeline/nodes/git-commit-node.js +28 -0
  45. package/dist/pipeline/nodes/git-status-node.js +221 -0
  46. package/dist/pipeline/nodes/gitlab-review-artifacts-node.js +10 -6
  47. package/dist/pipeline/nodes/jira-context-node.js +10 -0
  48. package/dist/pipeline/nodes/llm-prompt-node.js +62 -0
  49. package/dist/pipeline/nodes/plan-codex-node.js +1 -1
  50. package/dist/pipeline/nodes/read-file-node.js +11 -0
  51. package/dist/pipeline/nodes/review-findings-form-node.js +18 -14
  52. package/dist/pipeline/nodes/select-files-form-node.js +72 -0
  53. package/dist/pipeline/nodes/telegram-notifier-node.js +28 -0
  54. package/dist/pipeline/nodes/user-input-node.js +29 -8
  55. package/dist/pipeline/nodes/write-selection-file-node.js +46 -0
  56. package/dist/pipeline/prompt-registry.js +2 -4
  57. package/dist/pipeline/prompt-runtime.js +13 -3
  58. package/dist/pipeline/registry.js +6 -8
  59. package/dist/pipeline/spec-compiler.js +5 -0
  60. package/dist/pipeline/spec-types.js +7 -3
  61. package/dist/pipeline/spec-validator.js +4 -0
  62. package/dist/pipeline/types.js +1 -0
  63. package/dist/pipeline/value-resolver.js +40 -38
  64. package/dist/prompts.js +104 -110
  65. package/dist/runtime/agentweaver-home.js +8 -0
  66. package/dist/runtime/command-resolution.js +0 -38
  67. package/dist/runtime/env-loader.js +43 -0
  68. package/dist/structured-artifact-schema-registry.js +53 -0
  69. package/dist/structured-artifact-schemas.json +0 -20
  70. package/dist/structured-artifacts.js +3 -43
  71. package/dist/user-input.js +30 -2
  72. package/package.json +2 -6
  73. package/Dockerfile.codex +0 -56
  74. package/dist/executors/claude-executor.js +0 -46
  75. package/dist/executors/codex-docker-executor.js +0 -27
  76. package/dist/executors/configs/claude-config.js +0 -12
  77. package/dist/executors/configs/codex-docker-config.js +0 -10
  78. package/dist/executors/configs/verify-build-config.js +0 -7
  79. package/dist/executors/verify-build-executor.js +0 -123
  80. package/dist/pipeline/flow-specs/auto.json +0 -979
  81. package/dist/pipeline/flow-specs/gitlab-review.json +0 -317
  82. package/dist/pipeline/flow-specs/opencode/auto-opencode.json +0 -1365
  83. package/dist/pipeline/flow-specs/opencode/bugz/bug-analyze-opencode.json +0 -382
  84. package/dist/pipeline/flow-specs/opencode/bugz/bug-fix-opencode.json +0 -56
  85. package/dist/pipeline/flow-specs/opencode/gitlab/gitlab-diff-review-opencode.json +0 -308
  86. package/dist/pipeline/flow-specs/opencode/gitlab/gitlab-review-opencode.json +0 -437
  87. package/dist/pipeline/flow-specs/opencode/gitlab/mr-description-opencode.json +0 -117
  88. package/dist/pipeline/flow-specs/opencode/go/run-go-linter-loop-opencode.json +0 -321
  89. package/dist/pipeline/flow-specs/opencode/go/run-go-tests-loop-opencode.json +0 -321
  90. package/dist/pipeline/flow-specs/opencode/implement-opencode.json +0 -64
  91. package/dist/pipeline/flow-specs/opencode/plan-opencode.json +0 -603
  92. package/dist/pipeline/flow-specs/opencode/review/review-fix-opencode.json +0 -209
  93. package/dist/pipeline/flow-specs/opencode/review/review-opencode.json +0 -452
  94. package/dist/pipeline/flow-specs/opencode/task-describe-opencode.json +0 -148
  95. package/dist/pipeline/flow-specs/review-project.json +0 -243
  96. package/dist/pipeline/flow-specs/review.json +0 -312
  97. package/dist/pipeline/flows/preflight-flow.js +0 -19
  98. package/dist/pipeline/nodes/claude-prompt-node.js +0 -54
  99. package/dist/pipeline/nodes/codex-docker-prompt-node.js +0 -32
  100. package/dist/pipeline/nodes/codex-local-prompt-node.js +0 -32
  101. package/dist/pipeline/nodes/review-claude-node.js +0 -38
  102. package/dist/pipeline/nodes/review-reply-codex-node.js +0 -40
  103. package/dist/pipeline/nodes/verify-build-node.js +0 -15
  104. package/dist/runtime/docker-runtime.js +0 -51
  105. package/docker-compose.yml +0 -445
  106. package/verify_build.sh +0 -105
@@ -1,64 +0,0 @@
1
- {
2
- "kind": "implement-flow",
3
- "version": 1,
4
- "phases": [
5
- {
6
- "id": "implement",
7
- "steps": [
8
- {
9
- "id": "run_codex_implement",
10
- "node": "opencode-prompt",
11
- "prompt": {
12
- "templateRef": "implement",
13
- "vars": {
14
- "design_file": {
15
- "artifact": {
16
- "kind": "design-file",
17
- "taskKey": {
18
- "ref": "params.taskKey"
19
- }
20
- }
21
- },
22
- "design_json_file": {
23
- "artifact": {
24
- "kind": "design-json-file",
25
- "taskKey": {
26
- "ref": "params.taskKey"
27
- }
28
- }
29
- },
30
- "plan_file": {
31
- "artifact": {
32
- "kind": "plan-file",
33
- "taskKey": {
34
- "ref": "params.taskKey"
35
- }
36
- }
37
- },
38
- "plan_json_file": {
39
- "artifact": {
40
- "kind": "plan-json-file",
41
- "taskKey": {
42
- "ref": "params.taskKey"
43
- }
44
- }
45
- }
46
- },
47
- "extraPrompt": {
48
- "ref": "params.extraPrompt"
49
- },
50
- "format": "task-prompt"
51
- },
52
- "params": {
53
- "labelText": {
54
- "const": "Running OpenCode implementation mode locally"
55
- },
56
- "model": {
57
- "const": "minimax-coding-plan/MiniMax-M2.7"
58
- }
59
- }
60
- }
61
- ]
62
- }
63
- ]
64
- }
@@ -1,603 +0,0 @@
1
- {
2
- "kind": "plan-flow",
3
- "version": 1,
4
- "phases": [
5
- {
6
- "id": "plan-opencode",
7
- "steps": [
8
- {
9
- "id": "fetch_jira",
10
- "node": "jira-fetch",
11
- "params": {
12
- "jiraApiUrl": {
13
- "ref": "params.jiraApiUrl"
14
- },
15
- "outputFile": {
16
- "artifact": {
17
- "kind": "jira-task-file",
18
- "taskKey": {
19
- "ref": "params.taskKey"
20
- }
21
- }
22
- },
23
- "attachmentsManifestFile": {
24
- "artifact": {
25
- "kind": "jira-attachments-manifest-file",
26
- "taskKey": {
27
- "ref": "params.taskKey"
28
- }
29
- }
30
- },
31
- "attachmentsContextFile": {
32
- "artifact": {
33
- "kind": "jira-attachments-context-file",
34
- "taskKey": {
35
- "ref": "params.taskKey"
36
- }
37
- }
38
- }
39
- },
40
- "expect": [
41
- {
42
- "kind": "require-file",
43
- "path": {
44
- "artifact": {
45
- "kind": "jira-task-file",
46
- "taskKey": {
47
- "ref": "params.taskKey"
48
- }
49
- }
50
- },
51
- "message": "Jira fetch node did not produce the Jira task file."
52
- },
53
- {
54
- "kind": "require-file",
55
- "path": {
56
- "artifact": {
57
- "kind": "jira-attachments-manifest-file",
58
- "taskKey": {
59
- "ref": "params.taskKey"
60
- }
61
- }
62
- },
63
- "message": "Jira fetch node did not produce the Jira attachments manifest file."
64
- },
65
- {
66
- "kind": "require-file",
67
- "path": {
68
- "artifact": {
69
- "kind": "jira-attachments-context-file",
70
- "taskKey": {
71
- "ref": "params.taskKey"
72
- }
73
- }
74
- },
75
- "message": "Jira fetch node did not produce the Jira attachments context file."
76
- }
77
- ]
78
- },
79
- {
80
- "id": "load_existing_task_summary",
81
- "when": {
82
- "all": [
83
- {
84
- "not": {
85
- "ref": "params.forceRefresh"
86
- }
87
- },
88
- {
89
- "exists": {
90
- "artifact": {
91
- "kind": "task-summary-file",
92
- "taskKey": {
93
- "ref": "params.taskKey"
94
- }
95
- }
96
- }
97
- }
98
- ]
99
- },
100
- "node": "summary-file-load",
101
- "params": {
102
- "path": {
103
- "artifact": {
104
- "kind": "task-summary-file",
105
- "taskKey": {
106
- "ref": "params.taskKey"
107
- }
108
- }
109
- }
110
- }
111
- },
112
- {
113
- "id": "generate_task_summary",
114
- "when": {
115
- "any": [
116
- {
117
- "ref": "params.forceRefresh"
118
- },
119
- {
120
- "not": {
121
- "exists": {
122
- "artifact": {
123
- "kind": "task-summary-file",
124
- "taskKey": {
125
- "ref": "params.taskKey"
126
- }
127
- }
128
- }
129
- }
130
- }
131
- ]
132
- },
133
- "node": "opencode-prompt",
134
- "prompt": {
135
- "templateRef": "task-summary",
136
- "vars": {
137
- "jira_task_file": {
138
- "artifact": {
139
- "kind": "jira-task-file",
140
- "taskKey": {
141
- "ref": "params.taskKey"
142
- }
143
- }
144
- },
145
- "task_summary_file": {
146
- "artifact": {
147
- "kind": "task-summary-file",
148
- "taskKey": {
149
- "ref": "params.taskKey"
150
- }
151
- }
152
- },
153
- "task_summary_json_file": {
154
- "artifact": {
155
- "kind": "task-summary-json-file",
156
- "taskKey": {
157
- "ref": "params.taskKey"
158
- }
159
- }
160
- }
161
- },
162
- "format": "plain"
163
- },
164
- "params": {
165
- "labelText": {
166
- "const": "Preparing task summary"
167
- },
168
- "outputFile": {
169
- "artifact": {
170
- "kind": "task-summary-file",
171
- "taskKey": {
172
- "ref": "params.taskKey"
173
- }
174
- }
175
- },
176
- "requiredArtifacts": {
177
- "list": [
178
- {
179
- "artifact": {
180
- "kind": "task-summary-json-file",
181
- "taskKey": {
182
- "ref": "params.taskKey"
183
- }
184
- }
185
- }
186
- ]
187
- },
188
- "model": {
189
- "const": "minimax-coding-plan/MiniMax-M2.7"
190
- }
191
- },
192
- "expect": [
193
- {
194
- "kind": "require-artifacts",
195
- "when": {
196
- "not": {
197
- "ref": "context.dryRun"
198
- }
199
- },
200
- "paths": {
201
- "list": [
202
- {
203
- "artifact": {
204
- "kind": "task-summary-file",
205
- "taskKey": {
206
- "ref": "params.taskKey"
207
- }
208
- }
209
- }
210
- ]
211
- },
212
- "message": "Claude summary did not produce the task summary artifact."
213
- },
214
- {
215
- "kind": "require-structured-artifacts",
216
- "when": {
217
- "not": {
218
- "ref": "context.dryRun"
219
- }
220
- },
221
- "items": [
222
- {
223
- "path": {
224
- "artifact": {
225
- "kind": "task-summary-json-file",
226
- "taskKey": {
227
- "ref": "params.taskKey"
228
- }
229
- }
230
- },
231
- "schemaId": "task-summary/v1"
232
- }
233
- ],
234
- "message": "Claude summary produced invalid structured artifacts."
235
- }
236
- ],
237
- "after": [
238
- {
239
- "kind": "set-summary-from-file",
240
- "when": {
241
- "not": {
242
- "ref": "context.dryRun"
243
- }
244
- },
245
- "path": {
246
- "artifact": {
247
- "kind": "task-summary-file",
248
- "taskKey": {
249
- "ref": "params.taskKey"
250
- }
251
- }
252
- }
253
- }
254
- ]
255
- },
256
- {
257
- "id": "generate_planning_questions",
258
- "node": "opencode-prompt",
259
- "prompt": {
260
- "templateRef": "plan-questions",
261
- "vars": {
262
- "jira_task_file": {
263
- "artifact": {
264
- "kind": "jira-task-file",
265
- "taskKey": {
266
- "ref": "params.taskKey"
267
- }
268
- }
269
- },
270
- "jira_attachments_manifest_file": {
271
- "artifact": {
272
- "kind": "jira-attachments-manifest-file",
273
- "taskKey": {
274
- "ref": "params.taskKey"
275
- }
276
- }
277
- },
278
- "jira_attachments_context_file": {
279
- "artifact": {
280
- "kind": "jira-attachments-context-file",
281
- "taskKey": {
282
- "ref": "params.taskKey"
283
- }
284
- }
285
- },
286
- "planning_questions_json_file": {
287
- "artifact": {
288
- "kind": "planning-questions-json-file",
289
- "taskKey": {
290
- "ref": "params.taskKey"
291
- }
292
- }
293
- }
294
- },
295
- "extraPrompt": {
296
- "ref": "params.extraPrompt"
297
- },
298
- "format": "task-prompt"
299
- },
300
- "params": {
301
- "labelText": {
302
- "const": "Generating planning questions"
303
- },
304
- "model": {
305
- "const": "minimax-coding-plan/MiniMax-M2.7"
306
- },
307
- "requiredArtifacts": {
308
- "list": [
309
- {
310
- "artifact": {
311
- "kind": "planning-questions-json-file",
312
- "taskKey": {
313
- "ref": "params.taskKey"
314
- }
315
- }
316
- }
317
- ]
318
- }
319
- },
320
- "expect": [
321
- {
322
- "kind": "require-artifacts",
323
- "when": {
324
- "not": {
325
- "ref": "context.dryRun"
326
- }
327
- },
328
- "paths": {
329
- "list": [
330
- {
331
- "artifact": {
332
- "kind": "planning-questions-json-file",
333
- "taskKey": {
334
- "ref": "params.taskKey"
335
- }
336
- }
337
- }
338
- ]
339
- },
340
- "message": "Planning questions step did not produce the questions artifact."
341
- },
342
- {
343
- "kind": "require-structured-artifacts",
344
- "when": {
345
- "not": {
346
- "ref": "context.dryRun"
347
- }
348
- },
349
- "items": [
350
- {
351
- "path": {
352
- "artifact": {
353
- "kind": "planning-questions-json-file",
354
- "taskKey": {
355
- "ref": "params.taskKey"
356
- }
357
- }
358
- },
359
- "schemaId": "planning-questions/v1"
360
- }
361
- ],
362
- "message": "Planning questions step produced invalid structured artifacts."
363
- }
364
- ]
365
- },
366
- {
367
- "id": "build_planning_questions_form",
368
- "node": "planning-questions-form",
369
- "params": {
370
- "planningQuestionsJsonFile": {
371
- "artifact": {
372
- "kind": "planning-questions-json-file",
373
- "taskKey": {
374
- "ref": "params.taskKey"
375
- }
376
- }
377
- },
378
- "formId": {
379
- "const": "planning-questions"
380
- },
381
- "title": {
382
- "const": "Planning Questions"
383
- },
384
- "description": {
385
- "const": "Ответьте на вопросы модели, если они нужны для точного design/plan. Если вопросов нет, шаг завершится автоматически."
386
- }
387
- }
388
- },
389
- {
390
- "id": "collect_planning_answers",
391
- "node": "user-input",
392
- "params": {
393
- "formId": {
394
- "ref": "steps.plan-opencode.build_planning_questions_form.value.formId"
395
- },
396
- "title": {
397
- "ref": "steps.plan-opencode.build_planning_questions_form.value.title"
398
- },
399
- "description": {
400
- "ref": "steps.plan-opencode.build_planning_questions_form.value.description"
401
- },
402
- "submitLabel": {
403
- "const": "Continue planning"
404
- },
405
- "fields": {
406
- "ref": "steps.plan-opencode.build_planning_questions_form.value.fields"
407
- },
408
- "outputFile": {
409
- "artifact": {
410
- "kind": "planning-answers-json-file",
411
- "taskKey": {
412
- "ref": "params.taskKey"
413
- }
414
- }
415
- }
416
- },
417
- "expect": [
418
- {
419
- "kind": "require-structured-artifacts",
420
- "items": [
421
- {
422
- "path": {
423
- "artifact": {
424
- "kind": "planning-answers-json-file",
425
- "taskKey": {
426
- "ref": "params.taskKey"
427
- }
428
- }
429
- },
430
- "schemaId": "user-input/v1"
431
- }
432
- ],
433
- "message": "Planning answers input is missing or invalid."
434
- }
435
- ]
436
- },
437
- {
438
- "id": "run_opencode_plan",
439
- "node": "opencode-prompt",
440
- "prompt": {
441
- "templateRef": "plan",
442
- "vars": {
443
- "jira_task_file": {
444
- "artifact": {
445
- "kind": "jira-task-file",
446
- "taskKey": {
447
- "ref": "params.taskKey"
448
- }
449
- }
450
- },
451
- "jira_attachments_manifest_file": {
452
- "artifact": {
453
- "kind": "jira-attachments-manifest-file",
454
- "taskKey": {
455
- "ref": "params.taskKey"
456
- }
457
- }
458
- },
459
- "jira_attachments_context_file": {
460
- "artifact": {
461
- "kind": "jira-attachments-context-file",
462
- "taskKey": {
463
- "ref": "params.taskKey"
464
- }
465
- }
466
- },
467
- "design_file": {
468
- "artifact": {
469
- "kind": "design-file",
470
- "taskKey": {
471
- "ref": "params.taskKey"
472
- }
473
- }
474
- },
475
- "design_json_file": {
476
- "artifact": {
477
- "kind": "design-json-file",
478
- "taskKey": {
479
- "ref": "params.taskKey"
480
- }
481
- }
482
- },
483
- "plan_file": {
484
- "artifact": {
485
- "kind": "plan-file",
486
- "taskKey": {
487
- "ref": "params.taskKey"
488
- }
489
- }
490
- },
491
- "plan_json_file": {
492
- "artifact": {
493
- "kind": "plan-json-file",
494
- "taskKey": {
495
- "ref": "params.taskKey"
496
- }
497
- }
498
- },
499
- "qa_file": {
500
- "artifact": {
501
- "kind": "qa-file",
502
- "taskKey": {
503
- "ref": "params.taskKey"
504
- }
505
- }
506
- },
507
- "qa_json_file": {
508
- "artifact": {
509
- "kind": "qa-json-file",
510
- "taskKey": {
511
- "ref": "params.taskKey"
512
- }
513
- }
514
- }
515
- },
516
- "extraPrompt": {
517
- "appendPrompt": {
518
- "base": {
519
- "ref": "params.extraPrompt"
520
- },
521
- "suffix": {
522
- "ref": "steps.plan-opencode.collect_planning_answers.value.promptSuffix"
523
- }
524
- }
525
- },
526
- "format": "task-prompt"
527
- },
528
- "params": {
529
- "labelText": {
530
- "const": "Running OpenCode planning mode"
531
- },
532
- "model": {
533
- "const": "minimax-coding-plan/MiniMax-M2.7"
534
- }
535
- },
536
- "expect": [
537
- {
538
- "kind": "require-artifacts",
539
- "when": {
540
- "not": {
541
- "ref": "context.dryRun"
542
- }
543
- },
544
- "paths": {
545
- "artifactList": {
546
- "kind": "plan-artifacts",
547
- "taskKey": {
548
- "ref": "params.taskKey"
549
- }
550
- }
551
- },
552
- "message": "Plan mode did not produce the required artifacts."
553
- },
554
- {
555
- "kind": "require-structured-artifacts",
556
- "when": {
557
- "not": {
558
- "ref": "context.dryRun"
559
- }
560
- },
561
- "items": [
562
- {
563
- "path": {
564
- "artifact": {
565
- "kind": "design-json-file",
566
- "taskKey": {
567
- "ref": "params.taskKey"
568
- }
569
- }
570
- },
571
- "schemaId": "implementation-design/v1"
572
- },
573
- {
574
- "path": {
575
- "artifact": {
576
- "kind": "plan-json-file",
577
- "taskKey": {
578
- "ref": "params.taskKey"
579
- }
580
- }
581
- },
582
- "schemaId": "implementation-plan/v1"
583
- },
584
- {
585
- "path": {
586
- "artifact": {
587
- "kind": "qa-json-file",
588
- "taskKey": {
589
- "ref": "params.taskKey"
590
- }
591
- }
592
- },
593
- "schemaId": "qa-plan/v1"
594
- }
595
- ],
596
- "message": "Plan mode produced invalid structured artifacts."
597
- }
598
- ]
599
- }
600
- ]
601
- }
602
- ]
603
- }