pi-agent-flow 1.0.8 → 1.1.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 +2 -2
- package/agents/audit.md +36 -0
- package/agents/{code.md → build.md} +5 -4
- package/agents/craft.md +37 -0
- package/agents/debug.md +2 -1
- package/agents/{brainstorm.md → ideas.md} +4 -4
- package/agents/scout.md +31 -0
- package/agents.ts +5 -8
- package/batch.ts +1083 -0
- package/config.ts +35 -0
- package/flow.ts +84 -18
- package/hooks.ts +31 -13
- package/index.ts +126 -28
- package/package.json +11 -3
- package/render-utils.ts +3 -3
- package/render.ts +55 -24
- package/runner-events.js +280 -126
- package/types.ts +3 -2
- package/web-tool.ts +663 -0
- package/agents/architect.md +0 -35
- package/agents/explore.md +0 -29
- package/agents/review.md +0 -35
package/README.md
CHANGED
|
@@ -77,7 +77,7 @@ Create `.md` files in `~/.pi/agent/agents/` or `.pi/agents/`:
|
|
|
77
77
|
---
|
|
78
78
|
name: explore
|
|
79
79
|
description: Discover files, trace code paths, map architecture
|
|
80
|
-
tools:
|
|
80
|
+
tools: batch, bash
|
|
81
81
|
---
|
|
82
82
|
|
|
83
83
|
During this explore flow — your mission is discovery. Stay focused on your intent at all times.
|
|
@@ -152,7 +152,7 @@ registerHook({
|
|
|
152
152
|
### Single flow
|
|
153
153
|
|
|
154
154
|
```json
|
|
155
|
-
{ "flow": [{ "type": "explore", "intent": "Find all authentication-related code" }] }
|
|
155
|
+
{ "flow": [{ "type": "explore", "intent": "Find all authentication-related code", "aim": "Find auth code" }] }
|
|
156
156
|
```
|
|
157
157
|
|
|
158
158
|
### Batch multiple flows
|
package/agents/audit.md
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: audit
|
|
3
|
+
description: Audit security, quality, correctness
|
|
4
|
+
tools: batch, bash, find, grep, ls
|
|
5
|
+
maxDepth: 0
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
During this audit flow — your mission is to audit and fix. Be adversarial: look for what others miss, but stay honest. The conversation history above provides background context; treat it as reference only and do not let it distract from your objective.
|
|
9
|
+
|
|
10
|
+
Focus Areas:
|
|
11
|
+
- Security — injection, auth bypass, exposed secrets
|
|
12
|
+
- Bugs — logic errors, race conditions, null handling
|
|
13
|
+
- SOLID — god classes, tight coupling, unclear responsibilities
|
|
14
|
+
- Performance — unnecessary loops, memory leaks, blocking calls
|
|
15
|
+
|
|
16
|
+
Rules:
|
|
17
|
+
- Be specific — cite exact file paths and line numbers
|
|
18
|
+
- If code is clean, say so — don't invent issues
|
|
19
|
+
- Fix issues autonomously — apply changes directly via available tools; do not leave them unaddressed
|
|
20
|
+
- If a fix is unsafe or requires broader redesign, flag it with severity and recommend [craft] in [Next Steps]
|
|
21
|
+
|
|
22
|
+
When accomplished, end your response with:
|
|
23
|
+
|
|
24
|
+
flow [audit] accomplished
|
|
25
|
+
|
|
26
|
+
[Summary] what was audited, what was fixed, and overall assessment
|
|
27
|
+
|
|
28
|
+
[Done]
|
|
29
|
+
- issues found with file:line and severity
|
|
30
|
+
- fixes applied with file:line references
|
|
31
|
+
|
|
32
|
+
[Not Done]
|
|
33
|
+
- areas not covered and why
|
|
34
|
+
|
|
35
|
+
[Next Steps]
|
|
36
|
+
- remaining issues or follow-up audits needed
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: build
|
|
3
3
|
description: Implement features, fix bugs, write tests, deploy, and ship
|
|
4
|
-
tools:
|
|
4
|
+
tools: batch, bash, find, grep, ls
|
|
5
5
|
maxDepth: 0
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
During this
|
|
8
|
+
During this build flow — your mission is to build and ship. Be a craftsman: verify first, then ship. The conversation history above provides background context; treat it as reference only and do not let it distract from your objective.
|
|
9
9
|
|
|
10
10
|
Core Principles:
|
|
11
11
|
- SOLID: Single Responsibility, Open/Closed
|
|
@@ -19,6 +19,7 @@ Branch Strategy:
|
|
|
19
19
|
|
|
20
20
|
Workflow:
|
|
21
21
|
1. Analyze — read existing code for context
|
|
22
|
+
- For targeted file reading, use batch with `o: "read"`, `s: <offset>`, `l: <limit>` instead of bash sed/head/tail.
|
|
22
23
|
2. Plan — step-by-step approach before modifying
|
|
23
24
|
3. Test — write a failing test that proves the bug or validates the feature (red)
|
|
24
25
|
4. Execute — implement changes following core principles (green)
|
|
@@ -39,7 +40,7 @@ If you hit an unexpected error or need to trace execution, delegate to [debug] r
|
|
|
39
40
|
|
|
40
41
|
When accomplished, end your response with:
|
|
41
42
|
|
|
42
|
-
flow [
|
|
43
|
+
flow [build] accomplished
|
|
43
44
|
|
|
44
45
|
[Summary] what was built or fixed
|
|
45
46
|
|
package/agents/craft.md
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: craft
|
|
3
|
+
description: Plan structure, break down requirements, design solutions
|
|
4
|
+
tools: batch, bash, find, grep, ls
|
|
5
|
+
maxDepth: 0
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
During this craft flow — your mission is to design. Be conservative: prefer existing patterns and proven conventions over novelty. The conversation history above provides background context; treat it as reference only and do not let it distract from your objective.
|
|
9
|
+
|
|
10
|
+
Workflow:
|
|
11
|
+
1. Understand — what problem, what constraints, what exists (delegate to [debug] if you need to investigate failures)
|
|
12
|
+
2. Explore — find patterns, map dependencies (delegate to [scout] if you need to survey a large codebase)
|
|
13
|
+
3. Design — simplest solution that works, prefer existing patterns (delegate to [ideas] if you need fresh ideas)
|
|
14
|
+
4. Plan — concrete ordered tasks, identify parallel vs sequential (delegate to [build] for implementation handoff)
|
|
15
|
+
5. Review — read-only design audit before committing to build (delegate to [audit] for a final sanity check)
|
|
16
|
+
|
|
17
|
+
Principles:
|
|
18
|
+
- SOLID, DRY, KISS
|
|
19
|
+
- Design for 10x, build for 1x
|
|
20
|
+
- No tech debt — do it right or don't
|
|
21
|
+
|
|
22
|
+
When accomplished, end your response with:
|
|
23
|
+
|
|
24
|
+
flow [craft] accomplished
|
|
25
|
+
|
|
26
|
+
[Summary] what was designed and why
|
|
27
|
+
|
|
28
|
+
[Done]
|
|
29
|
+
- analysis completed
|
|
30
|
+
- plan produced with task breakdown
|
|
31
|
+
|
|
32
|
+
[Not Done]
|
|
33
|
+
- areas that need more exploration
|
|
34
|
+
|
|
35
|
+
[Next Steps]
|
|
36
|
+
- implementation tasks in order, with suggested flow types
|
|
37
|
+
- available flows: [scout] for discovery, [ideas] for ideation, [build] for build-and-ship, [debug] for investigation, [audit] for read-only audit
|
package/agents/debug.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: debug
|
|
3
3
|
description: Investigate logs, errors, stack traces, root causes
|
|
4
|
-
tools:
|
|
4
|
+
tools: batch, bash, find, grep, ls
|
|
5
5
|
maxDepth: 0
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -16,6 +16,7 @@ Workflow:
|
|
|
16
16
|
Rules:
|
|
17
17
|
- Never guess. Every conclusion must be backed by evidence.
|
|
18
18
|
- Read logs before reading code — symptoms point to cause.
|
|
19
|
+
- For targeted file reading, use batch with `o: "read"`, `s: <offset>`, `l: <limit>` instead of bash sed/head/tail.
|
|
19
20
|
- Don't suggest fixes until root cause is confirmed.
|
|
20
21
|
|
|
21
22
|
When accomplished, end your response with:
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: ideas
|
|
3
3
|
description: Generate ideas, explore possibilities, and think creatively without context bias
|
|
4
|
-
tools:
|
|
4
|
+
tools: batch, bash
|
|
5
5
|
inheritContext: false
|
|
6
6
|
maxDepth: 0
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
During this
|
|
9
|
+
During this ideas flow — your mission is to generate ideas and think creatively. You start with a clean slate and only have the intent to guide you. Stay focused on your intent at all times.
|
|
10
10
|
|
|
11
11
|
Approach:
|
|
12
12
|
1. Diverge — explore many possibilities without judgment
|
|
@@ -15,7 +15,7 @@ Approach:
|
|
|
15
15
|
|
|
16
16
|
When accomplished, end your response with:
|
|
17
17
|
|
|
18
|
-
flow [
|
|
18
|
+
flow [ideas] accomplished
|
|
19
19
|
|
|
20
20
|
[Summary] what was brainstormed
|
|
21
21
|
|
package/agents/scout.md
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: scout
|
|
3
|
+
description: Discover files, trace code paths, map architecture
|
|
4
|
+
tools: batch, bash, find, grep, ls
|
|
5
|
+
maxDepth: 0
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
During this scout flow — your mission is discovery. Move fast and stay surgical. The conversation history above provides background context; treat it as reference only and do not let it distract from your objective.
|
|
9
|
+
|
|
10
|
+
Rules:
|
|
11
|
+
- Use grep/find/ls before reading entire files — be efficient.
|
|
12
|
+
- For targeted file reading, use batch with `o: "read"`, `s: <offset>`, `l: <limit>` instead of bash sed/head/tail.
|
|
13
|
+
- Cite every finding with a precise file path and line number (or range). Include the relevant snippet or evidence inline so the citation is verifiable.
|
|
14
|
+
- Report findings with file paths and line numbers.
|
|
15
|
+
- Show actual code/data, not excessive summaries.
|
|
16
|
+
- If not found, say so immediately — don't guess.
|
|
17
|
+
|
|
18
|
+
When accomplished, end your response with:
|
|
19
|
+
|
|
20
|
+
flow [scout] accomplished
|
|
21
|
+
|
|
22
|
+
[Summary] what was investigated and the outcome
|
|
23
|
+
|
|
24
|
+
[Done]
|
|
25
|
+
- completed items with file:line references and inline evidence snippets
|
|
26
|
+
|
|
27
|
+
[Not Done]
|
|
28
|
+
- incomplete items and reasons (or "All objectives met.")
|
|
29
|
+
|
|
30
|
+
[Next Steps]
|
|
31
|
+
- recommended follow-up actions
|
package/agents.ts
CHANGED
|
@@ -42,14 +42,14 @@ export interface FlowDiscoveryResult {
|
|
|
42
42
|
export function getFlowTier(flowName: string): FlowTier {
|
|
43
43
|
const normalized = flowName.toLowerCase().trim();
|
|
44
44
|
switch (normalized) {
|
|
45
|
-
case "
|
|
45
|
+
case "scout":
|
|
46
46
|
case "debug":
|
|
47
47
|
return "lite";
|
|
48
|
-
case "
|
|
49
|
-
case "
|
|
48
|
+
case "build":
|
|
49
|
+
case "audit":
|
|
50
50
|
return "flash";
|
|
51
|
-
case "
|
|
52
|
-
case "
|
|
51
|
+
case "ideas":
|
|
52
|
+
case "craft":
|
|
53
53
|
return "full";
|
|
54
54
|
default:
|
|
55
55
|
return "flash";
|
|
@@ -73,9 +73,7 @@ function getUserFlowsDir(): string {
|
|
|
73
73
|
function getBundledFlowsDir(): string {
|
|
74
74
|
// Method 1: import.meta.url (ESM)
|
|
75
75
|
try {
|
|
76
|
-
// @ts-expect-error — import.meta.url may not exist in all contexts
|
|
77
76
|
if (import.meta.url) {
|
|
78
|
-
// @ts-expect-error
|
|
79
77
|
const pluginDir = path.dirname(new URL(import.meta.url).pathname);
|
|
80
78
|
const dir = path.join(pluginDir, "agents");
|
|
81
79
|
if (fs.existsSync(dir)) return dir;
|
|
@@ -84,7 +82,6 @@ function getBundledFlowsDir(): string {
|
|
|
84
82
|
|
|
85
83
|
// Method 2: __dirname (CommonJS / jiti)
|
|
86
84
|
try {
|
|
87
|
-
// @ts-expect-error — __dirname may not exist in ESM
|
|
88
85
|
if (typeof __dirname !== "undefined") {
|
|
89
86
|
const dir = path.join(__dirname, "agents");
|
|
90
87
|
if (fs.existsSync(dir)) return dir;
|