@pjmendonca/devflow 1.19.0 → 1.20.1
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.
- package/.claude/hooks/session-startup.sh +20 -0
- package/.claude/settings.json +0 -4
- package/.claude/skills/dashboard/SKILL.md +118 -0
- package/CHANGELOG.md +26 -0
- package/README.md +2 -2
- package/bin/devflow-dashboard.js +10 -0
- package/bin/devflow-swarm.js +11 -0
- package/bin/devflow.js +2 -0
- package/package.json +3 -1
- package/tooling/.automation/memory/knowledge/kg_integration-test.json +212 -1
- package/tooling/.automation/memory/knowledge/kg_test-story.json +710 -2
- package/tooling/.automation/memory/shared/shared_integration-test.json +61 -1
- package/tooling/.automation/memory/shared/shared_test-story.json +181 -1
- package/tooling/.automation/memory/shared/shared_test.json +313 -1
- package/tooling/.automation/memory/shared/shared_validation-check.json +66 -1
- package/tooling/.automation/validation/history/2026-01-16_val_0b81ec2f.json +41 -0
- package/tooling/.automation/validation/history/2026-01-16_val_26c18e64.json +32 -0
- package/tooling/.automation/validation/history/2026-01-16_val_32af0152.json +32 -0
- package/tooling/.automation/validation/history/2026-01-16_val_353d1569.json +32 -0
- package/tooling/.automation/validation/history/2026-01-16_val_39e3c143.json +59 -0
- package/tooling/.automation/validation/history/2026-01-16_val_77fb42e4.json +32 -0
- package/tooling/.automation/validation/history/2026-01-16_val_a0752656.json +41 -0
- package/tooling/.automation/validation/history/2026-01-16_val_a29213b0.json +41 -0
- package/tooling/.automation/validation/history/2026-01-16_val_a9375d4c.json +32 -0
- package/tooling/.automation/validation/history/2026-01-16_val_c147bbdf.json +32 -0
- package/tooling/.automation/validation/history/2026-01-16_val_d06ccf8d.json +32 -0
- package/tooling/.automation/validation/history/2026-01-16_val_d6a80295.json +59 -0
- package/tooling/.automation/validation/history/2026-01-16_val_dce5005d.json +41 -0
- package/tooling/.automation/validation/history/2026-01-16_val_e53b3a63.json +32 -0
- package/tooling/.automation/validation/history/2026-01-18_val_108c18cf.json +32 -0
- package/tooling/.automation/validation/history/2026-01-18_val_35ee606f.json +32 -0
- package/tooling/.automation/validation/history/2026-01-18_val_3fc7268b.json +41 -0
- package/tooling/.automation/validation/history/2026-01-18_val_49f0bb17.json +32 -0
- package/tooling/.automation/validation/history/2026-01-18_val_53c928d2.json +59 -0
- package/tooling/.automation/validation/history/2026-01-18_val_55604791.json +32 -0
- package/tooling/.automation/validation/history/2026-01-18_val_67e695f0.json +41 -0
- package/tooling/.automation/validation/history/2026-01-18_val_82784713.json +41 -0
- package/tooling/.automation/validation/history/2026-01-18_val_94a8e584.json +32 -0
- package/tooling/.automation/validation/history/2026-01-18_val_95353af0.json +32 -0
- package/tooling/.automation/validation/history/2026-01-18_val_9a046f3a.json +32 -0
- package/tooling/.automation/validation/history/2026-01-18_val_b3443d2e.json +32 -0
- package/tooling/.automation/validation/history/2026-01-18_val_bfd298f4.json +32 -0
- package/tooling/.automation/validation/history/2026-01-18_val_cfc2a362.json +32 -0
- package/tooling/.automation/validation/history/2026-01-18_val_e581a3d2.json +41 -0
- package/tooling/scripts/lib/__init__.py +1 -3
- package/tooling/scripts/lib/agent_router.py +0 -4
- package/tooling/scripts/lib/cost_display.py +7 -1
- package/tooling/scripts/lib/swarm_orchestrator.py +14 -12
- package/tooling/scripts/live_dashboard.py +832 -0
- package/tooling/scripts/new-doc.py +1 -1
- package/tooling/scripts/run-collab.py +3 -47
- package/tooling/scripts/run-story.py +21 -9
- package/tooling/scripts/setup-checkpoint-service.py +1 -1
- package/.claude/commands/pair.md +0 -23
- package/tooling/scripts/lib/pair_programming.py +0 -688
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "val_49f0bb17",
|
|
3
|
+
"timestamp": "2026-01-18T10:57:50.207021",
|
|
4
|
+
"story_key": "test",
|
|
5
|
+
"tier": 1,
|
|
6
|
+
"gate_results": [
|
|
7
|
+
{
|
|
8
|
+
"gate_name": "fail_gate",
|
|
9
|
+
"result": "fail",
|
|
10
|
+
"message": "Validation failed",
|
|
11
|
+
"duration_ms": 0.0,
|
|
12
|
+
"retry_count": 0,
|
|
13
|
+
"auto_fixed": false,
|
|
14
|
+
"details": {}
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"overall_result": "fail",
|
|
18
|
+
"total_duration_ms": 0.00286102294921875,
|
|
19
|
+
"passed": false,
|
|
20
|
+
"context": {
|
|
21
|
+
"story_key": "test",
|
|
22
|
+
"iteration": 0,
|
|
23
|
+
"max_iterations": 3,
|
|
24
|
+
"accumulated_issues": [],
|
|
25
|
+
"accumulated_fixes": [],
|
|
26
|
+
"cost_so_far": 0.0,
|
|
27
|
+
"time_elapsed_seconds": 0.0,
|
|
28
|
+
"phase": "",
|
|
29
|
+
"from_agent": "",
|
|
30
|
+
"to_agent": ""
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "val_53c928d2",
|
|
3
|
+
"timestamp": "2026-01-18T10:57:50.349070",
|
|
4
|
+
"story_key": "validation-check",
|
|
5
|
+
"tier": 3,
|
|
6
|
+
"gate_results": [
|
|
7
|
+
{
|
|
8
|
+
"gate_name": "tests_pass",
|
|
9
|
+
"result": "pass",
|
|
10
|
+
"message": "Validation passed",
|
|
11
|
+
"duration_ms": 522.3491191864014,
|
|
12
|
+
"retry_count": 0,
|
|
13
|
+
"auto_fixed": false,
|
|
14
|
+
"details": {}
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"gate_name": "lint_clean",
|
|
18
|
+
"result": "pass",
|
|
19
|
+
"message": "Validation passed",
|
|
20
|
+
"duration_ms": 15.995025634765625,
|
|
21
|
+
"retry_count": 0,
|
|
22
|
+
"auto_fixed": false,
|
|
23
|
+
"details": {}
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"gate_name": "types_valid",
|
|
27
|
+
"result": "pass",
|
|
28
|
+
"message": "Validation passed",
|
|
29
|
+
"duration_ms": 14.685869216918945,
|
|
30
|
+
"retry_count": 0,
|
|
31
|
+
"auto_fixed": false,
|
|
32
|
+
"details": {}
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"gate_name": "version_synced",
|
|
36
|
+
"result": "pass",
|
|
37
|
+
"message": "Validation passed",
|
|
38
|
+
"duration_ms": 29.78992462158203,
|
|
39
|
+
"retry_count": 0,
|
|
40
|
+
"auto_fixed": false,
|
|
41
|
+
"details": {}
|
|
42
|
+
}
|
|
43
|
+
],
|
|
44
|
+
"overall_result": "pass",
|
|
45
|
+
"total_duration_ms": 582.909345626831,
|
|
46
|
+
"passed": true,
|
|
47
|
+
"context": {
|
|
48
|
+
"story_key": "validation-check",
|
|
49
|
+
"iteration": 0,
|
|
50
|
+
"max_iterations": 3,
|
|
51
|
+
"accumulated_issues": [],
|
|
52
|
+
"accumulated_fixes": [],
|
|
53
|
+
"cost_so_far": 0.0,
|
|
54
|
+
"time_elapsed_seconds": 0.0,
|
|
55
|
+
"phase": "tier_3",
|
|
56
|
+
"from_agent": "",
|
|
57
|
+
"to_agent": ""
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "val_55604791",
|
|
3
|
+
"timestamp": "2026-01-18T10:57:50.201224",
|
|
4
|
+
"story_key": "test",
|
|
5
|
+
"tier": 1,
|
|
6
|
+
"gate_results": [
|
|
7
|
+
{
|
|
8
|
+
"gate_name": "block",
|
|
9
|
+
"result": "fail",
|
|
10
|
+
"message": "Validation failed",
|
|
11
|
+
"duration_ms": 0.00095367431640625,
|
|
12
|
+
"retry_count": 0,
|
|
13
|
+
"auto_fixed": false,
|
|
14
|
+
"details": {}
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"overall_result": "fail",
|
|
18
|
+
"total_duration_ms": 0.015974044799804688,
|
|
19
|
+
"passed": false,
|
|
20
|
+
"context": {
|
|
21
|
+
"story_key": "test",
|
|
22
|
+
"iteration": 0,
|
|
23
|
+
"max_iterations": 3,
|
|
24
|
+
"accumulated_issues": [],
|
|
25
|
+
"accumulated_fixes": [],
|
|
26
|
+
"cost_so_far": 0.0,
|
|
27
|
+
"time_elapsed_seconds": 0.0,
|
|
28
|
+
"phase": "",
|
|
29
|
+
"from_agent": "",
|
|
30
|
+
"to_agent": ""
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "val_67e695f0",
|
|
3
|
+
"timestamp": "2026-01-18T10:55:19.080287",
|
|
4
|
+
"story_key": "test",
|
|
5
|
+
"tier": 1,
|
|
6
|
+
"gate_results": [
|
|
7
|
+
{
|
|
8
|
+
"gate_name": "pass",
|
|
9
|
+
"result": "pass",
|
|
10
|
+
"message": "Validation passed",
|
|
11
|
+
"duration_ms": 0.0,
|
|
12
|
+
"retry_count": 0,
|
|
13
|
+
"auto_fixed": false,
|
|
14
|
+
"details": {}
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"gate_name": "fail",
|
|
18
|
+
"result": "fail",
|
|
19
|
+
"message": "Validation failed",
|
|
20
|
+
"duration_ms": 0.0,
|
|
21
|
+
"retry_count": 0,
|
|
22
|
+
"auto_fixed": false,
|
|
23
|
+
"details": {}
|
|
24
|
+
}
|
|
25
|
+
],
|
|
26
|
+
"overall_result": "fail",
|
|
27
|
+
"total_duration_ms": 0.003814697265625,
|
|
28
|
+
"passed": false,
|
|
29
|
+
"context": {
|
|
30
|
+
"story_key": "test",
|
|
31
|
+
"iteration": 0,
|
|
32
|
+
"max_iterations": 3,
|
|
33
|
+
"accumulated_issues": [],
|
|
34
|
+
"accumulated_fixes": [],
|
|
35
|
+
"cost_so_far": 0.0,
|
|
36
|
+
"time_elapsed_seconds": 0.0,
|
|
37
|
+
"phase": "",
|
|
38
|
+
"from_agent": "",
|
|
39
|
+
"to_agent": ""
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "val_82784713",
|
|
3
|
+
"timestamp": "2026-01-18T10:57:50.199962",
|
|
4
|
+
"story_key": "test",
|
|
5
|
+
"tier": 1,
|
|
6
|
+
"gate_results": [
|
|
7
|
+
{
|
|
8
|
+
"gate_name": "pass",
|
|
9
|
+
"result": "pass",
|
|
10
|
+
"message": "Validation passed",
|
|
11
|
+
"duration_ms": 0.0,
|
|
12
|
+
"retry_count": 0,
|
|
13
|
+
"auto_fixed": false,
|
|
14
|
+
"details": {}
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"gate_name": "fail",
|
|
18
|
+
"result": "fail",
|
|
19
|
+
"message": "Validation failed",
|
|
20
|
+
"duration_ms": 0.0,
|
|
21
|
+
"retry_count": 0,
|
|
22
|
+
"auto_fixed": false,
|
|
23
|
+
"details": {}
|
|
24
|
+
}
|
|
25
|
+
],
|
|
26
|
+
"overall_result": "fail",
|
|
27
|
+
"total_duration_ms": 0.003814697265625,
|
|
28
|
+
"passed": false,
|
|
29
|
+
"context": {
|
|
30
|
+
"story_key": "test",
|
|
31
|
+
"iteration": 0,
|
|
32
|
+
"max_iterations": 3,
|
|
33
|
+
"accumulated_issues": [],
|
|
34
|
+
"accumulated_fixes": [],
|
|
35
|
+
"cost_so_far": 0.0,
|
|
36
|
+
"time_elapsed_seconds": 0.0,
|
|
37
|
+
"phase": "",
|
|
38
|
+
"from_agent": "",
|
|
39
|
+
"to_agent": ""
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "val_94a8e584",
|
|
3
|
+
"timestamp": "2026-01-18T10:55:19.087360",
|
|
4
|
+
"story_key": "test",
|
|
5
|
+
"tier": 1,
|
|
6
|
+
"gate_results": [
|
|
7
|
+
{
|
|
8
|
+
"gate_name": "fail_gate",
|
|
9
|
+
"result": "fail",
|
|
10
|
+
"message": "Validation failed",
|
|
11
|
+
"duration_ms": 0.0007152557373046875,
|
|
12
|
+
"retry_count": 0,
|
|
13
|
+
"auto_fixed": false,
|
|
14
|
+
"details": {}
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"overall_result": "fail",
|
|
18
|
+
"total_duration_ms": 0.00286102294921875,
|
|
19
|
+
"passed": false,
|
|
20
|
+
"context": {
|
|
21
|
+
"story_key": "test",
|
|
22
|
+
"iteration": 0,
|
|
23
|
+
"max_iterations": 3,
|
|
24
|
+
"accumulated_issues": [],
|
|
25
|
+
"accumulated_fixes": [],
|
|
26
|
+
"cost_so_far": 0.0,
|
|
27
|
+
"time_elapsed_seconds": 0.0,
|
|
28
|
+
"phase": "",
|
|
29
|
+
"from_agent": "",
|
|
30
|
+
"to_agent": ""
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "val_95353af0",
|
|
3
|
+
"timestamp": "2026-01-18T10:55:19.083022",
|
|
4
|
+
"story_key": "test",
|
|
5
|
+
"tier": 1,
|
|
6
|
+
"gate_results": [
|
|
7
|
+
{
|
|
8
|
+
"gate_name": "test",
|
|
9
|
+
"result": "pass",
|
|
10
|
+
"message": "Validation passed",
|
|
11
|
+
"duration_ms": 0.0011920928955078125,
|
|
12
|
+
"retry_count": 0,
|
|
13
|
+
"auto_fixed": false,
|
|
14
|
+
"details": {}
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"overall_result": "pass",
|
|
18
|
+
"total_duration_ms": 0.004291534423828125,
|
|
19
|
+
"passed": true,
|
|
20
|
+
"context": {
|
|
21
|
+
"story_key": "test",
|
|
22
|
+
"iteration": 0,
|
|
23
|
+
"max_iterations": 3,
|
|
24
|
+
"accumulated_issues": [],
|
|
25
|
+
"accumulated_fixes": [],
|
|
26
|
+
"cost_so_far": 0.0,
|
|
27
|
+
"time_elapsed_seconds": 0.0,
|
|
28
|
+
"phase": "",
|
|
29
|
+
"from_agent": "",
|
|
30
|
+
"to_agent": ""
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "val_9a046f3a",
|
|
3
|
+
"timestamp": "2026-01-18T10:57:50.202427",
|
|
4
|
+
"story_key": "test",
|
|
5
|
+
"tier": 1,
|
|
6
|
+
"gate_results": [
|
|
7
|
+
{
|
|
8
|
+
"gate_name": "test",
|
|
9
|
+
"result": "pass",
|
|
10
|
+
"message": "Validation passed",
|
|
11
|
+
"duration_ms": 0.0,
|
|
12
|
+
"retry_count": 0,
|
|
13
|
+
"auto_fixed": false,
|
|
14
|
+
"details": {}
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"overall_result": "pass",
|
|
18
|
+
"total_duration_ms": 0.0021457672119140625,
|
|
19
|
+
"passed": true,
|
|
20
|
+
"context": {
|
|
21
|
+
"story_key": "test",
|
|
22
|
+
"iteration": 0,
|
|
23
|
+
"max_iterations": 3,
|
|
24
|
+
"accumulated_issues": [],
|
|
25
|
+
"accumulated_fixes": [],
|
|
26
|
+
"cost_so_far": 0.0,
|
|
27
|
+
"time_elapsed_seconds": 0.0,
|
|
28
|
+
"phase": "",
|
|
29
|
+
"from_agent": "",
|
|
30
|
+
"to_agent": ""
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "val_b3443d2e",
|
|
3
|
+
"timestamp": "2026-01-18T10:55:19.081740",
|
|
4
|
+
"story_key": "test",
|
|
5
|
+
"tier": 1,
|
|
6
|
+
"gate_results": [
|
|
7
|
+
{
|
|
8
|
+
"gate_name": "block",
|
|
9
|
+
"result": "fail",
|
|
10
|
+
"message": "Validation failed",
|
|
11
|
+
"duration_ms": 0.0011920928955078125,
|
|
12
|
+
"retry_count": 0,
|
|
13
|
+
"auto_fixed": false,
|
|
14
|
+
"details": {}
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"overall_result": "fail",
|
|
18
|
+
"total_duration_ms": 0.02002716064453125,
|
|
19
|
+
"passed": false,
|
|
20
|
+
"context": {
|
|
21
|
+
"story_key": "test",
|
|
22
|
+
"iteration": 0,
|
|
23
|
+
"max_iterations": 3,
|
|
24
|
+
"accumulated_issues": [],
|
|
25
|
+
"accumulated_fixes": [],
|
|
26
|
+
"cost_so_far": 0.0,
|
|
27
|
+
"time_elapsed_seconds": 0.0,
|
|
28
|
+
"phase": "",
|
|
29
|
+
"from_agent": "",
|
|
30
|
+
"to_agent": ""
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "val_bfd298f4",
|
|
3
|
+
"timestamp": "2026-01-18T10:55:19.084250",
|
|
4
|
+
"story_key": "test",
|
|
5
|
+
"tier": 3,
|
|
6
|
+
"gate_results": [
|
|
7
|
+
{
|
|
8
|
+
"gate_name": "test",
|
|
9
|
+
"result": "pass",
|
|
10
|
+
"message": "Validation passed",
|
|
11
|
+
"duration_ms": 0.0,
|
|
12
|
+
"retry_count": 0,
|
|
13
|
+
"auto_fixed": false,
|
|
14
|
+
"details": {}
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"overall_result": "pass",
|
|
18
|
+
"total_duration_ms": 0.0021457672119140625,
|
|
19
|
+
"passed": true,
|
|
20
|
+
"context": {
|
|
21
|
+
"story_key": "test",
|
|
22
|
+
"iteration": 0,
|
|
23
|
+
"max_iterations": 3,
|
|
24
|
+
"accumulated_issues": [],
|
|
25
|
+
"accumulated_fixes": [],
|
|
26
|
+
"cost_so_far": 0.0,
|
|
27
|
+
"time_elapsed_seconds": 0.0,
|
|
28
|
+
"phase": "",
|
|
29
|
+
"from_agent": "",
|
|
30
|
+
"to_agent": ""
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "val_cfc2a362",
|
|
3
|
+
"timestamp": "2026-01-18T10:57:50.203628",
|
|
4
|
+
"story_key": "test",
|
|
5
|
+
"tier": 3,
|
|
6
|
+
"gate_results": [
|
|
7
|
+
{
|
|
8
|
+
"gate_name": "test",
|
|
9
|
+
"result": "pass",
|
|
10
|
+
"message": "Validation passed",
|
|
11
|
+
"duration_ms": 0.0,
|
|
12
|
+
"retry_count": 0,
|
|
13
|
+
"auto_fixed": false,
|
|
14
|
+
"details": {}
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"overall_result": "pass",
|
|
18
|
+
"total_duration_ms": 0.0030994415283203125,
|
|
19
|
+
"passed": true,
|
|
20
|
+
"context": {
|
|
21
|
+
"story_key": "test",
|
|
22
|
+
"iteration": 0,
|
|
23
|
+
"max_iterations": 3,
|
|
24
|
+
"accumulated_issues": [],
|
|
25
|
+
"accumulated_fixes": [],
|
|
26
|
+
"cost_so_far": 0.0,
|
|
27
|
+
"time_elapsed_seconds": 0.0,
|
|
28
|
+
"phase": "",
|
|
29
|
+
"from_agent": "",
|
|
30
|
+
"to_agent": ""
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "val_e581a3d2",
|
|
3
|
+
"timestamp": "2026-01-18T10:55:19.079052",
|
|
4
|
+
"story_key": "test",
|
|
5
|
+
"tier": 1,
|
|
6
|
+
"gate_results": [
|
|
7
|
+
{
|
|
8
|
+
"gate_name": "gate1",
|
|
9
|
+
"result": "pass",
|
|
10
|
+
"message": "Validation passed",
|
|
11
|
+
"duration_ms": 0.00095367431640625,
|
|
12
|
+
"retry_count": 0,
|
|
13
|
+
"auto_fixed": false,
|
|
14
|
+
"details": {}
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"gate_name": "gate2",
|
|
18
|
+
"result": "pass",
|
|
19
|
+
"message": "Validation passed",
|
|
20
|
+
"duration_ms": 0.0,
|
|
21
|
+
"retry_count": 0,
|
|
22
|
+
"auto_fixed": false,
|
|
23
|
+
"details": {}
|
|
24
|
+
}
|
|
25
|
+
],
|
|
26
|
+
"overall_result": "pass",
|
|
27
|
+
"total_duration_ms": 0.0050067901611328125,
|
|
28
|
+
"passed": true,
|
|
29
|
+
"context": {
|
|
30
|
+
"story_key": "test",
|
|
31
|
+
"iteration": 0,
|
|
32
|
+
"max_iterations": 3,
|
|
33
|
+
"accumulated_issues": [],
|
|
34
|
+
"accumulated_fixes": [],
|
|
35
|
+
"cost_so_far": 0.0,
|
|
36
|
+
"time_elapsed_seconds": 0.0,
|
|
37
|
+
"phase": "",
|
|
38
|
+
"from_agent": "",
|
|
39
|
+
"to_agent": ""
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -14,7 +14,6 @@ This package provides:
|
|
|
14
14
|
- agent_handoff: Structured agent transitions
|
|
15
15
|
- shared_memory: Cross-agent knowledge sharing
|
|
16
16
|
- swarm_orchestrator: Multi-agent collaboration
|
|
17
|
-
- pair_programming: DEV + REVIEWER collaboration
|
|
18
17
|
- validation_loop: Three-tier validation framework
|
|
19
18
|
|
|
20
19
|
Usage:
|
|
@@ -25,7 +24,7 @@ Usage:
|
|
|
25
24
|
from lib.platform import get_platform, IS_WINDOWS
|
|
26
25
|
"""
|
|
27
26
|
|
|
28
|
-
__version__ = "1.
|
|
27
|
+
__version__ = "1.20.1"
|
|
29
28
|
|
|
30
29
|
# Lazy imports to avoid circular dependencies
|
|
31
30
|
__all__ = [
|
|
@@ -41,6 +40,5 @@ __all__ = [
|
|
|
41
40
|
"agent_handoff",
|
|
42
41
|
"shared_memory",
|
|
43
42
|
"swarm_orchestrator",
|
|
44
|
-
"pair_programming",
|
|
45
43
|
"validation_loop",
|
|
46
44
|
]
|
|
@@ -629,10 +629,6 @@ class AgentRouter:
|
|
|
629
629
|
if len(agents) == 1:
|
|
630
630
|
return "single"
|
|
631
631
|
|
|
632
|
-
# If includes REVIEWER and DEV, could use pair mode
|
|
633
|
-
if "DEV" in agents and "REVIEWER" in agents and len(agents) == 2:
|
|
634
|
-
return "pair"
|
|
635
|
-
|
|
636
632
|
# If includes ARCHITECT, likely needs sequential
|
|
637
633
|
if "ARCHITECT" in agents:
|
|
638
634
|
return "sequential"
|
|
@@ -22,7 +22,13 @@ from typing import Optional
|
|
|
22
22
|
# Add parent for imports
|
|
23
23
|
sys.path.insert(0, str(Path(__file__).parent))
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
try:
|
|
26
|
+
from lib.platform import IS_WINDOWS
|
|
27
|
+
except ImportError:
|
|
28
|
+
# Fallback for when running from lib directory
|
|
29
|
+
import sys as _sys
|
|
30
|
+
|
|
31
|
+
IS_WINDOWS = _sys.platform == "win32"
|
|
26
32
|
|
|
27
33
|
from colors import Colors
|
|
28
34
|
from cost_tracker import PRICING, CostTracker
|
|
@@ -43,11 +43,9 @@ from typing import Optional
|
|
|
43
43
|
|
|
44
44
|
# Import dependencies
|
|
45
45
|
try:
|
|
46
|
-
from
|
|
47
|
-
|
|
48
|
-
from
|
|
49
|
-
from agent_router import AgentRouter
|
|
50
|
-
from personality_system import (
|
|
46
|
+
from lib.agent_handoff import HandoffGenerator
|
|
47
|
+
from lib.agent_router import AgentRouter
|
|
48
|
+
from lib.personality_system import (
|
|
51
49
|
ConvergenceDetector,
|
|
52
50
|
DebatePosition,
|
|
53
51
|
PersonalityHandoff,
|
|
@@ -55,11 +53,16 @@ try:
|
|
|
55
53
|
PersonalitySelector,
|
|
56
54
|
extract_arguments_from_response,
|
|
57
55
|
)
|
|
58
|
-
from
|
|
56
|
+
from lib.platform import IS_WINDOWS
|
|
57
|
+
from lib.shared_memory import get_knowledge_graph, get_shared_memory
|
|
59
58
|
except ImportError:
|
|
60
|
-
from lib
|
|
61
|
-
|
|
62
|
-
|
|
59
|
+
# Fallback for when running from lib directory
|
|
60
|
+
import sys as _sys
|
|
61
|
+
|
|
62
|
+
IS_WINDOWS = _sys.platform == "win32"
|
|
63
|
+
from agent_handoff import HandoffGenerator
|
|
64
|
+
from agent_router import AgentRouter
|
|
65
|
+
from personality_system import (
|
|
63
66
|
ConvergenceDetector,
|
|
64
67
|
DebatePosition,
|
|
65
68
|
PersonalityHandoff,
|
|
@@ -67,8 +70,7 @@ except ImportError:
|
|
|
67
70
|
PersonalitySelector,
|
|
68
71
|
extract_arguments_from_response,
|
|
69
72
|
)
|
|
70
|
-
from
|
|
71
|
-
from lib.shared_memory import get_knowledge_graph, get_shared_memory
|
|
73
|
+
from shared_memory import get_knowledge_graph, get_shared_memory
|
|
72
74
|
|
|
73
75
|
# Try to import validation loop
|
|
74
76
|
try:
|
|
@@ -318,7 +320,7 @@ class SwarmConfig:
|
|
|
318
320
|
parallel_execution: bool = False
|
|
319
321
|
auto_fix_enabled: bool = True # DEV automatically addresses REVIEWER issues
|
|
320
322
|
verbose: bool = True
|
|
321
|
-
budget_limit_usd: float =
|
|
323
|
+
budget_limit_usd: float = 10.0 # Budget for debate
|
|
322
324
|
validation_enabled: bool = True # Enable inter-iteration validation
|
|
323
325
|
# Adversarial-specific settings
|
|
324
326
|
convergence_threshold: float = 0.8 # Position similarity to consider converged
|