@davidorex/pi-workflows 0.9.1 → 0.10.0
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/README.md +1 -1
- package/agents/architecture-designer.agent.yaml +2 -1
- package/agents/architecture-inferrer.agent.yaml +2 -1
- package/agents/audit-finding-verifier.agent.yaml +2 -1
- package/agents/audit-fixer.agent.yaml +2 -1
- package/agents/audit-results-router.agent.yaml +2 -1
- package/agents/code-explorer.agent.yaml +4 -2
- package/agents/decomposer.agent.yaml +2 -1
- package/agents/gap-identifier.agent.yaml +2 -1
- package/agents/gap-resolution-assessor.agent.yaml +2 -1
- package/agents/handoff-writer.agent.yaml +2 -1
- package/agents/investigator.agent.yaml +2 -1
- package/agents/pattern-analyzer.agent.yaml +4 -2
- package/agents/phase-author.agent.yaml +2 -1
- package/agents/plan-creator.agent.yaml +2 -1
- package/agents/plan-decomposer.agent.yaml +2 -1
- package/agents/project-definer.agent.yaml +2 -1
- package/agents/project-inferrer.agent.yaml +2 -1
- package/agents/quality-analyzer.agent.yaml +4 -2
- package/agents/requirements-gatherer.agent.yaml +2 -1
- package/agents/researcher.agent.yaml +2 -1
- package/agents/spec-implementer.agent.yaml +2 -1
- package/agents/structure-analyzer.agent.yaml +4 -2
- package/agents/synthesizer.agent.yaml +4 -2
- package/agents/verifier.agent.yaml +2 -1
- package/dist/agent-spec.d.ts.map +1 -1
- package/dist/agent-spec.js +30 -4
- package/dist/agent-spec.js.map +1 -1
- package/dist/dag.d.ts.map +1 -1
- package/dist/dag.js +24 -1
- package/dist/dag.js.map +1 -1
- package/dist/dispatch.js +1 -1
- package/dist/dispatch.js.map +1 -1
- package/dist/step-foreach.d.ts.map +1 -1
- package/dist/step-foreach.js +13 -0
- package/dist/step-foreach.js.map +1 -1
- package/dist/template-validation.d.ts +15 -0
- package/dist/template-validation.d.ts.map +1 -1
- package/dist/template-validation.js +214 -0
- package/dist/template-validation.js.map +1 -1
- package/dist/workflow-executor.d.ts.map +1 -1
- package/dist/workflow-executor.js +16 -5
- package/dist/workflow-executor.js.map +1 -1
- package/dist/workflow-spec.d.ts.map +1 -1
- package/dist/workflow-spec.js +100 -63
- package/dist/workflow-spec.js.map +1 -1
- package/package.json +2 -2
- package/templates/architecture-inferrer/task.md +9 -9
- package/templates/audit-results-router/task.md +1 -1
- package/templates/gap-identifier/task.md +5 -5
- package/templates/phase-author/task.md +7 -7
- package/templates/project-inferrer/task.md +7 -7
- package/templates/spec-implementer/task.md +4 -2
- package/workflows/analyze-existing-project.workflow.yaml +10 -16
- package/workflows/create-handoff.workflow.yaml +9 -5
- package/workflows/create-phase.workflow.yaml +10 -3
- package/workflows/do-gap.workflow.yaml +7 -7
- package/workflows/fix-audit.workflow.yaml +6 -6
- package/workflows/gap-to-phase.workflow.yaml +9 -9
- package/workflows/self-implement.workflow.yaml +2 -2
|
@@ -10,8 +10,8 @@ input:
|
|
|
10
10
|
type: string
|
|
11
11
|
description: ID of the gap to work on
|
|
12
12
|
source:
|
|
13
|
-
file: .project/
|
|
14
|
-
array:
|
|
13
|
+
file: .project/issues.json
|
|
14
|
+
array: issues
|
|
15
15
|
filter: { status: open }
|
|
16
16
|
label: [id, description]
|
|
17
17
|
value: id
|
|
@@ -19,16 +19,16 @@ input:
|
|
|
19
19
|
steps:
|
|
20
20
|
load-blocks:
|
|
21
21
|
block:
|
|
22
|
-
read:
|
|
22
|
+
read: issues
|
|
23
23
|
output:
|
|
24
24
|
format: json
|
|
25
25
|
|
|
26
26
|
load:
|
|
27
27
|
command: |
|
|
28
28
|
node -e "
|
|
29
|
-
const
|
|
29
|
+
const data = JSON.parse(process.argv[1]);
|
|
30
30
|
const gapId = process.argv[2];
|
|
31
|
-
const gap =
|
|
31
|
+
const gap = data.issues.find(g => g.id === gapId);
|
|
32
32
|
if (!gap) { console.error('Gap not found: ' + gapId); process.exit(1); }
|
|
33
33
|
if (gap.status === 'resolved') { console.error('Gap already resolved'); process.exit(1); }
|
|
34
34
|
console.log(JSON.stringify({ gap }));
|
|
@@ -149,8 +149,8 @@ steps:
|
|
|
149
149
|
when: "${{ steps.assess-resolution.output.resolved }}"
|
|
150
150
|
block:
|
|
151
151
|
update:
|
|
152
|
-
name:
|
|
153
|
-
key:
|
|
152
|
+
name: issues
|
|
153
|
+
key: issues
|
|
154
154
|
match:
|
|
155
155
|
id: "${{ input.gap_id }}"
|
|
156
156
|
set:
|
|
@@ -116,14 +116,14 @@ steps:
|
|
|
116
116
|
format: json
|
|
117
117
|
|
|
118
118
|
route-issues:
|
|
119
|
-
when: "${{ steps.prepare-routing.output.
|
|
120
|
-
forEach: "${{ steps.prepare-routing.output.
|
|
121
|
-
as:
|
|
119
|
+
when: "${{ steps.prepare-routing.output.new_issues | length }}"
|
|
120
|
+
forEach: "${{ steps.prepare-routing.output.new_issues }}"
|
|
121
|
+
as: issue_item
|
|
122
122
|
block:
|
|
123
123
|
append:
|
|
124
|
-
name:
|
|
125
|
-
key:
|
|
126
|
-
item: "${{
|
|
124
|
+
name: issues
|
|
125
|
+
key: issues
|
|
126
|
+
item: "${{ issue_item }}"
|
|
127
127
|
output:
|
|
128
128
|
format: json
|
|
129
129
|
|
|
@@ -10,8 +10,8 @@ input:
|
|
|
10
10
|
type: string
|
|
11
11
|
description: ID of the gap to convert into a phase
|
|
12
12
|
source:
|
|
13
|
-
file: .project/
|
|
14
|
-
array:
|
|
13
|
+
file: .project/issues.json
|
|
14
|
+
array: issues
|
|
15
15
|
filter: { status: open }
|
|
16
16
|
label: id
|
|
17
17
|
value: id
|
|
@@ -19,16 +19,16 @@ input:
|
|
|
19
19
|
steps:
|
|
20
20
|
load-gap-blocks:
|
|
21
21
|
block:
|
|
22
|
-
read:
|
|
22
|
+
read: issues
|
|
23
23
|
output:
|
|
24
24
|
format: json
|
|
25
25
|
|
|
26
26
|
load-gap:
|
|
27
27
|
command: |
|
|
28
28
|
node -e "
|
|
29
|
-
const
|
|
29
|
+
const data = JSON.parse(process.argv[1]);
|
|
30
30
|
const gapId = process.argv[2];
|
|
31
|
-
const gap =
|
|
31
|
+
const gap = data.issues.find(g => g.id === gapId);
|
|
32
32
|
if (!gap) { console.error('Gap not found: ' + gapId); process.exit(1); }
|
|
33
33
|
if (gap.status === 'resolved') { console.error('Gap already resolved'); process.exit(1); }
|
|
34
34
|
console.log(JSON.stringify({ gap }));
|
|
@@ -44,7 +44,7 @@ steps:
|
|
|
44
44
|
|
|
45
45
|
load-context:
|
|
46
46
|
block:
|
|
47
|
-
read: [architecture, conventions,
|
|
47
|
+
read: [architecture, conventions, issues, inventory]
|
|
48
48
|
optional: [architecture, conventions, inventory]
|
|
49
49
|
output:
|
|
50
50
|
format: json
|
|
@@ -53,9 +53,9 @@ steps:
|
|
|
53
53
|
command: |
|
|
54
54
|
node -e "
|
|
55
55
|
const data = JSON.parse(process.argv[1]);
|
|
56
|
-
const open = (data.
|
|
56
|
+
const open = (data.issues || []).filter(g => g.status === 'open');
|
|
57
57
|
console.log(JSON.stringify(open));
|
|
58
|
-
" '${{ steps.load-context.output.
|
|
58
|
+
" '${{ steps.load-context.output.issues | json }}'
|
|
59
59
|
output:
|
|
60
60
|
format: json
|
|
61
61
|
|
|
@@ -67,7 +67,7 @@ steps:
|
|
|
67
67
|
phases: "${{ steps.load-phases.output }}"
|
|
68
68
|
architecture: "${{ steps.load-context.output.architecture }}"
|
|
69
69
|
conventions: "${{ steps.load-context.output.conventions }}"
|
|
70
|
-
|
|
70
|
+
issues: "${{ steps.filter-gaps.output }}"
|
|
71
71
|
inventory: "${{ steps.load-context.output.inventory }}"
|
|
72
72
|
output:
|
|
73
73
|
format: json
|
|
@@ -29,10 +29,10 @@ steps:
|
|
|
29
29
|
|
|
30
30
|
implement:
|
|
31
31
|
forEach: "${{ steps.plan.output.plans }}"
|
|
32
|
-
as:
|
|
32
|
+
as: spec
|
|
33
33
|
agent: spec-implementer
|
|
34
34
|
input:
|
|
35
|
-
|
|
35
|
+
spec: "${{ spec }}"
|
|
36
36
|
architecture: "${{ input.architecture }}"
|
|
37
37
|
conventions: "${{ input.conventions }}"
|
|
38
38
|
output:
|