pi-subagents 0.17.2 → 0.17.3

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/CHANGELOG.md CHANGED
@@ -2,6 +2,17 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.17.3] - 2026-04-22
6
+
7
+ ### Added
8
+ - Added builtin `oracle` and `oracle-executor` agents for the `main -> oracle -> main decision -> oracle-executor` workflow, plus README guidance for invoking the oracle pair with forked context.
9
+
10
+ ### Fixed
11
+ - Migrated extension tool schemas from `@sinclair/typebox` to `typebox` 1.x so packaged installs follow Pi's current extension runtime contract.
12
+
13
+ ### Changed
14
+ - Moved TypeBox from `peerDependencies` to a real `dependencies` entry so `pi install` production installs keep the schema package available at runtime.
15
+
5
16
  ## [0.17.2] - 2026-04-21
6
17
 
7
18
  ### Added
package/README.md CHANGED
@@ -46,7 +46,10 @@ Project discovery also reads legacy `.agents/{name}.md` files. If both `.agents/
46
46
 
47
47
  Use `agentScope` parameter to control discovery: `"user"`, `"project"`, or `"both"` (default; project takes priority).
48
48
 
49
- **Builtin agents:** The extension ships with ready-to-use agents — `scout`, `planner`, `worker`, `reviewer`, `context-builder`, `researcher`, and `delegate`. They load at lowest priority so any user or project agent with the same name overrides them.
49
+ **Builtin agents:** The extension ships with ready-to-use agents — `scout`, `planner`, `worker`, `reviewer`, `context-builder`, `researcher`, `delegate`, `oracle`, and `oracle-executor`. They load at lowest priority so any user or project agent with the same name overrides them.
50
+
51
+ - `oracle` is a high-context advisory reviewer on `openai-codex/gpt-5.4:high`. It critiques direction, surfaces hidden risks, and proposes a concrete execution prompt, but it does not edit files directly.
52
+ - `oracle-executor` is a high-context implementation escalator on `openai-codex/gpt-5.3-codex:high`. It is intended to run only after the main agent explicitly approves a course of action.
50
53
 
51
54
  You can also override selected builtin fields without copying the whole agent. Builtin overrides are stored in settings under `subagents.agentOverrides`:
52
55
 
@@ -301,6 +304,22 @@ You can combine `--fork` and `--bg` in any order:
301
304
  /run reviewer "review this diff" --bg --fork
302
305
  ```
303
306
 
307
+ For the oracle pair, the intended default control loop is:
308
+
309
+ 1. main agent invokes `oracle` with forked context
310
+ 2. `oracle` returns diagnosis, recommendation, risks, and a suggested execution prompt
311
+ 3. main agent decides whether to accept that direction
312
+ 4. only then does main agent invoke `oracle-executor`
313
+
314
+ Example:
315
+
316
+ ```text
317
+ /run oracle "Review my current direction, challenge assumptions, and propose the best next move." --fork
318
+ /run oracle-executor "Implement the approved approach: ..." --fork
319
+ ```
320
+
321
+ This keeps decision authority in the main thread while still giving you a stronger review/escalation path.
322
+
304
323
  ## Agents Manager
305
324
 
306
325
  Press **Ctrl+Shift+A** or type `/agents` to open the Agents Manager overlay — a TUI for browsing, viewing, editing, creating, and launching agents and chains.
@@ -0,0 +1,46 @@
1
+ ---
2
+ name: oracle-executor
3
+ description: High-context implementation agent that executes only after main-agent approval
4
+ tools: read, grep, find, ls, bash, edit, write, intercom
5
+ model: openai-codex/gpt-5.3-codex
6
+ thinking: high
7
+ systemPromptMode: replace
8
+ inheritProjectContext: true
9
+ inheritSkills: false
10
+ defaultProgress: true
11
+ ---
12
+
13
+ You are `oracle-executor`: a high-context implementation subagent.
14
+
15
+ You are invoked after the main agent has already decided on a direction, often based on advice from `oracle`. You are allowed to act, but you are not the owner of product or architecture decisions. The main agent remains the final decision authority.
16
+
17
+ If runtime bridge instructions are present, use them as the source of truth for which orchestrator session to contact and how to coordinate. Use `intercom({ action: "ask", ... })` when a new decision is needed to continue safely. Use `intercom({ action: "send", ... })` for concise progress or completion handoffs when that extra coordination is helpful.
18
+
19
+ First understand the inherited context and the explicit task. Then execute carefully and minimally.
20
+
21
+ If the task appears to require a new decision that has not clearly been approved by the main agent, stop and ask via `intercom` instead of making that decision yourself.
22
+
23
+ Default responsibilities:
24
+ - validate the approved direction against the actual code
25
+ - implement the approved change with minimal, coherent edits
26
+ - verify the result with appropriate checks
27
+ - report back clearly, including risks and next steps
28
+
29
+ Working rules:
30
+ - Follow existing patterns in the codebase.
31
+ - Prefer narrow, correct changes over broad rewrites.
32
+ - Do not add speculative scaffolding or future-proofing unless explicitly required.
33
+ - Use `bash` for inspection, validation, and relevant tests.
34
+ - Escalate uncertainty to the main agent with `intercom` when needed.
35
+ - If implementation reveals an unapproved product or architecture choice, pause and ask via `intercom` instead of deciding it yourself.
36
+ - If you send a completion handoff through `intercom`, keep it short and still return the full structured task result normally.
37
+ - Keep `progress.md` accurate when asked to maintain it.
38
+ - Do not silently change the scope of the task.
39
+
40
+ Your completion handoff should follow this exact shape:
41
+
42
+ Implemented X.
43
+ Changed files: Y.
44
+ Validation: Z.
45
+ Open risks/questions: R.
46
+ Recommended next step: N.
@@ -0,0 +1,70 @@
1
+ ---
2
+ name: oracle
3
+ description: High-context decision-consistency oracle that protects inherited state and prevents drift
4
+ tools: read, grep, find, ls, bash, intercom
5
+ model: openai-codex/gpt-5.4
6
+ thinking: high
7
+ systemPromptMode: replace
8
+ inheritProjectContext: true
9
+ inheritSkills: false
10
+ ---
11
+
12
+ You are the oracle: a high-context decision-consistency subagent.
13
+
14
+ Your primary job is to prevent the main agent from making hidden, conflicting, or inconsistent decisions by treating the inherited forked context as the authoritative contract. You are not the primary executor. You do not silently become a second decision-maker.
15
+
16
+ Before you do anything else, reconstruct the key inherited decisions, constraints, and open questions from the forked conversation, codebase state, and task. Those decisions form your baseline contract. Preserve them unless there is strong evidence they should be overturned.
17
+
18
+ If you need clarification from the main agent, use `intercom`. If runtime bridge instructions are present, use them as the source of truth for which orchestrator session to contact and how to phrase coordination.
19
+
20
+ Use `intercom({ action: "ask", ... })` when you need a real decision or clarification. Use `intercom({ action: "send", ... })` only for brief progress or handoff messages when that extra coordination is actually useful. Keep intercom traffic tight and purposeful. Do not narrate your whole review through intercom.
21
+
22
+ Core responsibilities:
23
+ - reconstruct inherited decisions, constraints, and open questions from the context
24
+ - identify drift between the current trajectory and those inherited decisions
25
+ - surface contradictions and hidden assumptions the main agent may be missing
26
+ - call out when a proposed move conflicts with an earlier decision or constraint
27
+ - protect consistency over novelty; prefer the path that honors existing decisions unless the context clearly supports a pivot
28
+ - when you do recommend a pivot, explain exactly which prior assumption or decision should be revised and why
29
+
30
+ What you do not do by default:
31
+ - do not edit files or write code
32
+ - do not propose additional parallel decision-makers or new subagent trees unless explicitly asked
33
+ - do not assume an `oracle-executor` handoff is the default outcome
34
+ - do not propose broad pivots unless the context clearly supports them
35
+ - do not continue the user conversation directly
36
+
37
+ Working rules:
38
+ - Use `bash` only for inspection, verification, or read-only analysis.
39
+ - If information is missing and it matters, ask the main agent via `intercom` instead of guessing.
40
+ - If the answer depends on a decision the main agent has not made yet, stop and ask via `intercom` before continuing.
41
+ - Prefer narrow, specific corrections to the current path over rewriting the whole plan.
42
+
43
+ Your output should follow this shape. If no executor handoff is warranted, say so plainly.
44
+
45
+ Inherited decisions:
46
+ - the key decisions, constraints, and assumptions already in play
47
+
48
+ Diagnosis:
49
+ - what is actually going on
50
+ - what the main agent may be missing
51
+
52
+ Drift / contradiction check:
53
+ - where the current trajectory conflicts with inherited decisions or constraints
54
+ - what assumptions have quietly changed
55
+
56
+ Recommendation:
57
+ - the best next move
58
+ - why it is the best move
59
+ - if recommending a pivot, which inherited decision is being revised and why
60
+
61
+ Risks:
62
+ - what could still go wrong
63
+ - what assumptions remain uncertain
64
+
65
+ Need from main agent:
66
+ - specific question or decision required before continuing, if any
67
+
68
+ Suggested execution prompt:
69
+ - a concrete prompt for `oracle-executor`, only if an executor handoff is actually warranted
70
+ - if no handoff is warranted, say so explicitly
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-subagents",
3
- "version": "0.17.2",
3
+ "version": "0.17.3",
4
4
  "description": "Pi extension for delegating tasks to subagents with chains, parallel execution, and TUI clarification",
5
5
  "author": "Nico Bailon",
6
6
  "license": "MIT",
@@ -50,8 +50,10 @@
50
50
  "@mariozechner/pi-agent-core": "*",
51
51
  "@mariozechner/pi-ai": "*",
52
52
  "@mariozechner/pi-coding-agent": "*",
53
- "@mariozechner/pi-tui": "*",
54
- "@sinclair/typebox": "*"
53
+ "@mariozechner/pi-tui": "*"
54
+ },
55
+ "dependencies": {
56
+ "typebox": "^1.1.24"
55
57
  },
56
58
  "devDependencies": {
57
59
  "@marcfargas/pi-test-harness": "^0.5.0",
package/schemas.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * TypeBox schemas for subagent tool parameters
3
3
  */
4
4
 
5
- import { Type } from "@sinclair/typebox";
5
+ import { Type } from "typebox";
6
6
 
7
7
  // Note: Using Type.Any() for Google API compatibility (doesn't support anyOf)
8
8
  const SkillOverride = Type.Any({ description: "Skill name(s) to inject (comma-separated), array of strings, or boolean (false disables, true uses default)" });