@haoyiyin/workflow 0.2.11 → 0.3.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/dist/src/agents/contracts/implementer.d.ts +29 -0
- package/dist/src/agents/contracts/implementer.d.ts.map +1 -0
- package/dist/src/agents/contracts/implementer.js +94 -0
- package/dist/src/agents/contracts/implementer.js.map +1 -0
- package/dist/src/agents/contracts/index.d.ts +11 -0
- package/dist/src/agents/contracts/index.d.ts.map +1 -0
- package/dist/src/agents/contracts/index.js +11 -0
- package/dist/src/agents/contracts/index.js.map +1 -0
- package/dist/src/agents/contracts/planner.d.ts +25 -0
- package/dist/src/agents/contracts/planner.d.ts.map +1 -0
- package/dist/src/agents/contracts/planner.js +107 -0
- package/dist/src/agents/contracts/planner.js.map +1 -0
- package/dist/src/agents/contracts/router.d.ts +24 -0
- package/dist/src/agents/contracts/router.d.ts.map +1 -0
- package/dist/src/agents/contracts/router.js +137 -0
- package/dist/src/agents/contracts/router.js.map +1 -0
- package/dist/src/agents/contracts/verifier.d.ts +27 -0
- package/dist/src/agents/contracts/verifier.d.ts.map +1 -0
- package/dist/src/agents/contracts/verifier.js +115 -0
- package/dist/src/agents/contracts/verifier.js.map +1 -0
- package/dist/src/agents/dispatcher.d.ts +94 -51
- package/dist/src/agents/dispatcher.d.ts.map +1 -1
- package/dist/src/agents/dispatcher.js +207 -164
- package/dist/src/agents/dispatcher.js.map +1 -1
- package/dist/src/persistence/index.d.ts +4 -2
- package/dist/src/persistence/index.d.ts.map +1 -1
- package/dist/src/persistence/index.js +4 -1
- package/dist/src/persistence/index.js.map +1 -1
- package/dist/src/persistence/plan-md.d.ts +3 -2
- package/dist/src/persistence/plan-md.d.ts.map +1 -1
- package/dist/src/persistence/plan-md.js +47 -15
- package/dist/src/persistence/plan-md.js.map +1 -1
- package/dist/src/persistence/state-md.d.ts +2 -0
- package/dist/src/persistence/state-md.d.ts.map +1 -1
- package/dist/src/persistence/state-md.js +40 -22
- package/dist/src/persistence/state-md.js.map +1 -1
- package/dist/src/persistence/types.d.ts +35 -39
- package/dist/src/persistence/types.d.ts.map +1 -1
- package/dist/src/pi-extension.d.ts +4 -3
- package/dist/src/pi-extension.d.ts.map +1 -1
- package/dist/src/pi-extension.js +36 -67
- package/dist/src/pi-extension.js.map +1 -1
- package/dist/src/router/namespace/core/intent-router.d.ts +24 -0
- package/dist/src/router/namespace/core/intent-router.d.ts.map +1 -0
- package/dist/src/router/namespace/core/intent-router.js +190 -0
- package/dist/src/router/namespace/core/intent-router.js.map +1 -0
- package/dist/src/router/namespace/core/lifecycle-router.d.ts +28 -0
- package/dist/src/router/namespace/core/lifecycle-router.d.ts.map +1 -0
- package/dist/src/router/namespace/core/lifecycle-router.js +132 -0
- package/dist/src/router/namespace/core/lifecycle-router.js.map +1 -0
- package/dist/src/router/namespace/core/state-router.d.ts +32 -0
- package/dist/src/router/namespace/core/state-router.d.ts.map +1 -0
- package/dist/src/router/namespace/core/state-router.js +157 -0
- package/dist/src/router/namespace/core/state-router.js.map +1 -0
- package/dist/src/router/namespace/domain/code-router.d.ts +26 -0
- package/dist/src/router/namespace/domain/code-router.d.ts.map +1 -0
- package/dist/src/router/namespace/domain/code-router.js +171 -0
- package/dist/src/router/namespace/domain/code-router.js.map +1 -0
- package/dist/src/router/namespace/domain/debug-router.d.ts +25 -0
- package/dist/src/router/namespace/domain/debug-router.d.ts.map +1 -0
- package/dist/src/router/namespace/domain/debug-router.js +139 -0
- package/dist/src/router/namespace/domain/debug-router.js.map +1 -0
- package/dist/src/router/namespace/domain/plan-router.d.ts +29 -0
- package/dist/src/router/namespace/domain/plan-router.d.ts.map +1 -0
- package/dist/src/router/namespace/domain/plan-router.js +160 -0
- package/dist/src/router/namespace/domain/plan-router.js.map +1 -0
- package/dist/src/router/namespace/domain/review-router.d.ts +24 -0
- package/dist/src/router/namespace/domain/review-router.d.ts.map +1 -0
- package/dist/src/router/namespace/domain/review-router.js +116 -0
- package/dist/src/router/namespace/domain/review-router.js.map +1 -0
- package/dist/src/router/namespace/index.d.ts +19 -0
- package/dist/src/router/namespace/index.d.ts.map +1 -0
- package/dist/src/router/namespace/index.js +22 -0
- package/dist/src/router/namespace/index.js.map +1 -0
- package/dist/src/router/namespace/registry.d.ts +67 -0
- package/dist/src/router/namespace/registry.d.ts.map +1 -0
- package/dist/src/router/namespace/registry.js +197 -0
- package/dist/src/router/namespace/registry.js.map +1 -0
- package/dist/src/router/namespace/types.d.ts +124 -0
- package/dist/src/router/namespace/types.d.ts.map +1 -0
- package/dist/src/router/namespace/types.js +20 -0
- package/dist/src/router/namespace/types.js.map +1 -0
- package/dist/src/router/namespace/utility/fallback-router.d.ts +28 -0
- package/dist/src/router/namespace/utility/fallback-router.d.ts.map +1 -0
- package/dist/src/router/namespace/utility/fallback-router.js +88 -0
- package/dist/src/router/namespace/utility/fallback-router.js.map +1 -0
- package/dist/src/router/namespace/utility/quick-task-router.d.ts +28 -0
- package/dist/src/router/namespace/utility/quick-task-router.d.ts.map +1 -0
- package/dist/src/router/namespace/utility/quick-task-router.js +99 -0
- package/dist/src/router/namespace/utility/quick-task-router.js.map +1 -0
- package/dist/src/router/namespace/utility/research-router.d.ts +24 -0
- package/dist/src/router/namespace/utility/research-router.d.ts.map +1 -0
- package/dist/src/router/namespace/utility/research-router.js +84 -0
- package/dist/src/router/namespace/utility/research-router.js.map +1 -0
- package/dist/src/skills/agents-md/index.js +2 -2
- package/dist/src/skills/agents-md/index.js.map +1 -1
- package/dist/src/skills/execute-plan/index.d.ts +45 -65
- package/dist/src/skills/execute-plan/index.d.ts.map +1 -1
- package/dist/src/skills/execute-plan/index.js +325 -551
- package/dist/src/skills/execute-plan/index.js.map +1 -1
- package/dist/src/skills/index.d.ts +1 -0
- package/dist/src/skills/index.d.ts.map +1 -1
- package/dist/src/skills/index.js +1 -0
- package/dist/src/skills/index.js.map +1 -1
- package/dist/src/skills/quick-task/index.d.ts +4 -4
- package/dist/src/skills/quick-task/index.js +1 -1
- package/dist/src/skills/quick-task/index.js.map +1 -1
- package/dist/src/skills/review-diff/index.d.ts +6 -6
- package/dist/src/skills/review-diff/index.js +1 -1
- package/dist/src/skills/review-diff/index.js.map +1 -1
- package/dist/src/skills/router/index.d.ts +101 -0
- package/dist/src/skills/router/index.d.ts.map +1 -0
- package/dist/src/skills/router/index.js +450 -0
- package/dist/src/skills/router/index.js.map +1 -0
- package/dist/src/skills/router/types.d.ts +79 -0
- package/dist/src/skills/router/types.d.ts.map +1 -0
- package/dist/src/skills/router/types.js +8 -0
- package/dist/src/skills/router/types.js.map +1 -0
- package/dist/src/skills/systematic-debugging/index.js +1 -1
- package/dist/src/skills/systematic-debugging/index.js.map +1 -1
- package/dist/src/skills/tdd/index.d.ts +14 -14
- package/dist/src/skills/tdd/index.js +1 -1
- package/dist/src/skills/tdd/index.js.map +1 -1
- package/dist/src/skills/to-plan/index-enhanced.d.ts +4 -4
- package/dist/src/skills/to-plan/index-enhanced.d.ts.map +1 -1
- package/dist/src/skills/to-plan/index-enhanced.js +3 -5
- package/dist/src/skills/to-plan/index-enhanced.js.map +1 -1
- package/dist/src/skills/to-plan/index.d.ts +24 -91
- package/dist/src/skills/to-plan/index.d.ts.map +1 -1
- package/dist/src/skills/to-plan/index.js +214 -409
- package/dist/src/skills/to-plan/index.js.map +1 -1
- package/package.json +3 -5
- package/scripts/postinstall.js +42 -47
- package/src/agents/contracts/implementer.ts +122 -0
- package/src/agents/contracts/index.ts +27 -0
- package/src/agents/contracts/planner.ts +129 -0
- package/src/agents/contracts/router.ts +168 -0
- package/src/agents/contracts/verifier.ts +137 -0
- package/src/agents/dispatcher.ts +387 -362
- package/src/persistence/index.ts +10 -4
- package/src/persistence/plan-md.ts +52 -18
- package/src/persistence/state-md.ts +45 -23
- package/src/persistence/types.ts +37 -40
- package/src/pi-extension.ts +38 -76
- package/src/router/namespace/README.md +127 -0
- package/src/router/namespace/core/intent-router.ts +221 -0
- package/src/router/namespace/core/lifecycle-router.ts +156 -0
- package/src/router/namespace/core/state-router.ts +192 -0
- package/src/router/namespace/domain/code-router.ts +202 -0
- package/src/router/namespace/domain/debug-router.ts +167 -0
- package/src/router/namespace/domain/plan-router.ts +196 -0
- package/src/router/namespace/domain/review-router.ts +142 -0
- package/src/router/namespace/index.ts +84 -0
- package/src/router/namespace/registry.ts +242 -0
- package/src/router/namespace/types.ts +182 -0
- package/src/router/namespace/utility/fallback-router.ts +107 -0
- package/src/router/namespace/utility/quick-task-router.ts +121 -0
- package/src/router/namespace/utility/research-router.ts +105 -0
- package/src/skills/agents-md/index.ts +2 -2
- package/src/skills/execute-plan/index.ts +419 -673
- package/src/skills/index.ts +1 -0
- package/src/skills/quick-task/index.ts +1 -1
- package/src/skills/review-diff/index.ts +1 -1
- package/src/skills/router/SKILL.md +81 -0
- package/src/skills/router/index.ts +577 -0
- package/src/skills/router/types.ts +90 -0
- package/src/skills/systematic-debugging/index.ts +1 -1
- package/src/skills/tdd/index.ts +1 -1
- package/src/skills/to-plan/index-enhanced.ts +3 -5
- package/src/skills/to-plan/index.ts +231 -502
- package/dist/src/extension/classifier.d.ts +0 -18
- package/dist/src/extension/classifier.d.ts.map +0 -1
- package/dist/src/extension/classifier.js +0 -143
- package/dist/src/extension/classifier.js.map +0 -1
- package/src/extension/classifier.ts +0 -160
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Verifier Subagent Contract
|
|
3
|
+
*
|
|
4
|
+
* The verifier agent checks that implemented changes satisfy requirements.
|
|
5
|
+
* It operates with read-only permissions to analyze code and test results.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { SubagentContract, PermissionSet } from '../types.js';
|
|
9
|
+
|
|
10
|
+
const READ_ONLY: PermissionSet = {
|
|
11
|
+
readFiles: true,
|
|
12
|
+
searchCode: true,
|
|
13
|
+
runCommands: false,
|
|
14
|
+
writeFiles: false,
|
|
15
|
+
gitOperations: false,
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export interface VerifierParams {
|
|
19
|
+
/** The original goal / requirement */
|
|
20
|
+
goal: string;
|
|
21
|
+
/** The plan that was executed */
|
|
22
|
+
plan: string;
|
|
23
|
+
/** Files that were changed */
|
|
24
|
+
changedFiles: string[];
|
|
25
|
+
/** Acceptance criteria */
|
|
26
|
+
acceptanceCriteria: string[];
|
|
27
|
+
/** Test results to verify (if available) */
|
|
28
|
+
testResults?: string;
|
|
29
|
+
/** Additional files to read for context */
|
|
30
|
+
contextFiles?: string[];
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Verifier contract: read-only goal-backward verification.
|
|
35
|
+
* Checks that implemented changes satisfy the original requirements.
|
|
36
|
+
*/
|
|
37
|
+
export function verifierContract(params: VerifierParams): SubagentContract {
|
|
38
|
+
const criteriaList = params.acceptanceCriteria
|
|
39
|
+
.map((c, i) => `${i + 1}. ${c}`)
|
|
40
|
+
.join('\n');
|
|
41
|
+
|
|
42
|
+
const testResultsBlock = params.testResults
|
|
43
|
+
? `\n\n## Test Results\n\n\`\`\`\n${params.testResults}\n\`\`\``
|
|
44
|
+
: '';
|
|
45
|
+
|
|
46
|
+
const prompt = [
|
|
47
|
+
`Verify that the implemented changes satisfy the original goal.`,
|
|
48
|
+
'',
|
|
49
|
+
'## Original Goal',
|
|
50
|
+
'',
|
|
51
|
+
params.goal,
|
|
52
|
+
'',
|
|
53
|
+
'## Execution Plan',
|
|
54
|
+
'',
|
|
55
|
+
params.plan,
|
|
56
|
+
'',
|
|
57
|
+
'## Changed Files',
|
|
58
|
+
'',
|
|
59
|
+
params.changedFiles.map((f) => `- \`${f}\``).join('\n'),
|
|
60
|
+
testResultsBlock,
|
|
61
|
+
'',
|
|
62
|
+
'## Acceptance Criteria',
|
|
63
|
+
'',
|
|
64
|
+
criteriaList,
|
|
65
|
+
'',
|
|
66
|
+
'## Verification Process',
|
|
67
|
+
'',
|
|
68
|
+
'Work backward from each acceptance criterion:',
|
|
69
|
+
'',
|
|
70
|
+
'1. **For Each Criterion**',
|
|
71
|
+
' - Identify what evidence would prove it is met',
|
|
72
|
+
' - Check the changed files for that evidence',
|
|
73
|
+
' - Verify the implementation matches the intent',
|
|
74
|
+
'',
|
|
75
|
+
'2. **Evidence Types**',
|
|
76
|
+
' - Code changes directly addressing the requirement',
|
|
77
|
+
' - Test coverage for the new functionality',
|
|
78
|
+
' - Type safety and compilation success',
|
|
79
|
+
' - Error handling for edge cases',
|
|
80
|
+
'',
|
|
81
|
+
'3. **Mark Each Criterion**',
|
|
82
|
+
' - **PASS**: Criterion is fully satisfied',
|
|
83
|
+
' - **FAIL**: Criterion is not satisfied',
|
|
84
|
+
' - **UNCERTAIN**: Cannot determine from available information',
|
|
85
|
+
'',
|
|
86
|
+
'4. **Identify Gaps**',
|
|
87
|
+
' - Missing functionality',
|
|
88
|
+
' - Incomplete error handling',
|
|
89
|
+
' - Missing tests',
|
|
90
|
+
' - Documentation gaps',
|
|
91
|
+
'',
|
|
92
|
+
'## Output Format',
|
|
93
|
+
'',
|
|
94
|
+
'Respond with a JSON block containing:',
|
|
95
|
+
'```json',
|
|
96
|
+
'{',
|
|
97
|
+
' "verdict": "pass|fail|partial",',
|
|
98
|
+
' "summary": "Brief summary of verification findings",',
|
|
99
|
+
' "criteriaResults": [',
|
|
100
|
+
' {',
|
|
101
|
+
' "criterion": "The acceptance criterion text",',
|
|
102
|
+
' "status": "pass|fail|uncertain",',
|
|
103
|
+
' "evidence": "Specific evidence from code or tests",',
|
|
104
|
+
' "files": ["relevant files"]',
|
|
105
|
+
' }',
|
|
106
|
+
' ],',
|
|
107
|
+
' "gaps": [',
|
|
108
|
+
' {',
|
|
109
|
+
' "description": "What is missing",',
|
|
110
|
+
' "severity": "low|medium|high",',
|
|
111
|
+
' "recommendation": "How to address the gap"',
|
|
112
|
+
' }',
|
|
113
|
+
' ],',
|
|
114
|
+
' "recommendation": "Next steps or actions needed"',
|
|
115
|
+
'}',
|
|
116
|
+
'```',
|
|
117
|
+
].join('\n');
|
|
118
|
+
|
|
119
|
+
const reads = [
|
|
120
|
+
...params.changedFiles,
|
|
121
|
+
...(params.contextFiles ?? []),
|
|
122
|
+
];
|
|
123
|
+
|
|
124
|
+
return {
|
|
125
|
+
permissions: READ_ONLY,
|
|
126
|
+
outputSchema: {
|
|
127
|
+
verdict: 'string',
|
|
128
|
+
summary: 'string',
|
|
129
|
+
criteriaResults: 'object',
|
|
130
|
+
gaps: 'object',
|
|
131
|
+
recommendation: 'string',
|
|
132
|
+
},
|
|
133
|
+
prompt,
|
|
134
|
+
owns: [],
|
|
135
|
+
reads,
|
|
136
|
+
};
|
|
137
|
+
}
|