@caupulican/pi-adaptative 0.95.0 → 0.96.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/CHANGELOG.md +19 -0
- package/dist/bundled-resources/extensions/tmux-agent-manager/index.d.ts.map +1 -1
- package/dist/bundled-resources/extensions/tmux-agent-manager/index.js +28 -0
- package/dist/bundled-resources/extensions/tmux-agent-manager/index.js.map +1 -1
- package/dist/bundled-resources/extensions/tmux-agent-manager/index.ts +25 -0
- package/dist/bundled-resources/extensions/tps/index.d.ts +3 -0
- package/dist/bundled-resources/extensions/tps/index.d.ts.map +1 -0
- package/dist/bundled-resources/extensions/tps/index.js +44 -0
- package/dist/bundled-resources/extensions/tps/index.js.map +1 -0
- package/dist/bundled-resources/extensions/tps/index.ts +48 -0
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js +12 -3
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/compaction-controller.d.ts +3 -0
- package/dist/core/compaction-controller.d.ts.map +1 -1
- package/dist/core/compaction-controller.js +12 -1
- package/dist/core/compaction-controller.js.map +1 -1
- package/dist/core/extension-import-authority.d.ts +3 -1
- package/dist/core/extension-import-authority.d.ts.map +1 -1
- package/dist/core/extension-import-authority.js +15 -0
- package/dist/core/extension-import-authority.js.map +1 -1
- package/dist/core/keybindings.d.ts +2 -2
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +2 -2
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/profile-filter-controller.d.ts.map +1 -1
- package/dist/core/profile-filter-controller.js +5 -2
- package/dist/core/profile-filter-controller.js.map +1 -1
- package/dist/core/provider-prompt-contracts.d.ts +5 -1
- package/dist/core/provider-prompt-contracts.d.ts.map +1 -1
- package/dist/core/provider-prompt-contracts.js +5 -1
- package/dist/core/provider-prompt-contracts.js.map +1 -1
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +6 -2
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/risk-classifier.d.ts.map +1 -1
- package/dist/core/risk-classifier.js +22 -2
- package/dist/core/risk-classifier.js.map +1 -1
- package/dist/core/settings-manager.d.ts +7 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +22 -0
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/system-prompt-builder.d.ts +1 -0
- package/dist/core/system-prompt-builder.d.ts.map +1 -1
- package/dist/core/system-prompt-builder.js +21 -1
- package/dist/core/system-prompt-builder.js.map +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +5 -1
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/tools/goal.d.ts.map +1 -1
- package/dist/core/tools/goal.js +6 -16
- package/dist/core/tools/goal.js.map +1 -1
- package/dist/core/tools/orchestration-panel.d.ts +7 -0
- package/dist/core/tools/orchestration-panel.d.ts.map +1 -1
- package/dist/core/tools/orchestration-panel.js +58 -9
- package/dist/core/tools/orchestration-panel.js.map +1 -1
- package/dist/core/tools/task-steps.d.ts.map +1 -1
- package/dist/core/tools/task-steps.js +1 -0
- package/dist/core/tools/task-steps.js.map +1 -1
- package/dist/modes/interactive/components/agents-overlay.d.ts +16 -4
- package/dist/modes/interactive/components/agents-overlay.d.ts.map +1 -1
- package/dist/modes/interactive/components/agents-overlay.js +108 -29
- package/dist/modes/interactive/components/agents-overlay.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +5 -4
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/docs/extensions.md +2 -0
- package/docs/index.md +1 -0
- package/docs/keybindings.md +2 -0
- package/docs/task-steps.md +2 -0
- package/docs/tmux-agent-manager.md +1 -1
- package/docs/work-lifecycle.md +137 -0
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/npm-shrinkwrap.json +12 -12
- package/package.json +4 -4
package/docs/extensions.md
CHANGED
|
@@ -147,6 +147,8 @@ Additional paths and filters via `settings.json`:
|
|
|
147
147
|
|
|
148
148
|
Resource arrays support include/exclude patterns: plain entries include local paths, `!pattern` excludes matching auto-discovered resources, `+path` force-includes an exact path, and `-path` force-excludes an exact path. `disabledResources.extensions` remains as the legacy explicit reversible unload form and is merged as a `resourceProfiles` block filter. Prefer `resourceProfiles` when you need focused per-session, per-repo, or subagent-specific loading.
|
|
149
149
|
|
|
150
|
+
Pi ships the passive `tps` status-line meter as a default-on bundled extension. It loads without an active resource profile, but explicit user authority remains final: add `"tps"` to `disabledResources.extensions`, block it in an active profile, or start with `--no-extensions` to disable it. Other bundled extensions still require an active profile allow rule.
|
|
151
|
+
|
|
150
152
|
Extensions may carry profile blocks inside comments. Pi reads only matching `<resource-profile>` blocks as JSON config before filtering, and ignores the rest of the extension file for profile parsing:
|
|
151
153
|
|
|
152
154
|
```ts
|
package/docs/index.md
CHANGED
|
@@ -48,6 +48,7 @@ For the full first-run flow, see [Quickstart](quickstart.md).
|
|
|
48
48
|
- [FastContext scout](scout.md) - read-only repository scout setup and 10 GB local profile.
|
|
49
49
|
- [Tool repair](tool-repair.md) - repaired tool-call arguments, health diagnostics, kill switches, and replay workflow.
|
|
50
50
|
- [Task steps](task-steps.md) - native session checklist, slash commands, persistence, and delegation migration.
|
|
51
|
+
- [Work lifecycle](work-lifecycle.md) - canonical five-phase Survey-to-delivery contract, adaptive solo/team routing, verification, and checkpoint boundaries.
|
|
51
52
|
- [Native Python](python.md) - uv-managed bounded Python execution, provisioning, output limits, and cross-platform file guidance.
|
|
52
53
|
- [Managed data tools](managed-data-tools.md) - pinned rg, jq, and Rust jscpd provisioning without project files.
|
|
53
54
|
|
package/docs/keybindings.md
CHANGED
|
@@ -86,6 +86,8 @@ Modifier combinations: `ctrl+shift+x`, `alt+ctrl+x`, `ctrl+shift+alt+x`, `ctrl+1
|
|
|
86
86
|
| `app.clear` | `ctrl+c` | Clear editor |
|
|
87
87
|
| `app.exit` | `ctrl+d` | Exit (when editor empty) |
|
|
88
88
|
| `app.suspend` | `ctrl+z` (none on Windows) | Suspend to background |
|
|
89
|
+
| `app.agents.open` | `ctrl+q` | Inspect the full goal, requirements, evidence, task plan, agents, and background work |
|
|
90
|
+
| `app.agents.close` | `escape` | Close the work inspector |
|
|
89
91
|
| `app.editor.external` | `ctrl+g` | Open in external editor (`$VISUAL` or `$EDITOR`) |
|
|
90
92
|
| `app.clipboard.pasteImage` | `ctrl+v` (Unix/macOS), `alt+v` (Windows), both (WSL) | Paste image or clipboard text |
|
|
91
93
|
|
package/docs/task-steps.md
CHANGED
|
@@ -8,6 +8,8 @@ Task steps complement the native goal and delegation systems:
|
|
|
8
8
|
- `goal` records durable outcome requirements and evidence.
|
|
9
9
|
- `delegate` starts worker lanes, retrieves status, reviews claims, and coordinates them.
|
|
10
10
|
|
|
11
|
+
For the canonical Survey → Contract → Plan/Route → Execute → Prove/Deliver flow and the ownership boundary between these systems, see [Five-step work lifecycle](work-lifecycle.md).
|
|
12
|
+
|
|
11
13
|
## Statuses
|
|
12
14
|
|
|
13
15
|
Each step has one of these statuses:
|
|
@@ -42,7 +42,7 @@ starts every provider with the initial prompt file as part of the same CLI comma
|
|
|
42
42
|
On deadline, the watcher persists `timeout` first and then terminates its owned pane. A timed-out
|
|
43
43
|
provider process therefore cannot remain live and continue spending resources.
|
|
44
44
|
|
|
45
|
-
The parent Pi session watches result-file events. Once a turn's worker is terminal, it records a per-agent notification marker (`notifiedTurn`) and sends a bounded, source-labelled untrusted handoff with `triggerTurn: true`. Startup
|
|
45
|
+
The parent Pi session watches result-file events. Once a turn's worker is terminal, it records a per-agent notification marker (`notifiedTurn`) and sends a bounded, source-labelled untrusted handoff with `triggerTurn: true`. Startup reconciles every persisted terminal turn into host lane state, including turns whose user-facing handoff was already delivered, so a rehydrated running projection cannot outlive the worker. It also reconciles tmux **sessions**: see [Persistence](#persistence-follow-ups-reconcile-dismiss) below.
|
|
46
46
|
|
|
47
47
|
Do not poll pane state, capture pane output, or inspect logs merely to detect completion. Use `job_status` or terminal artifacts after the handoff only when its bounded evidence is insufficient.
|
|
48
48
|
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# Five-step work lifecycle
|
|
2
|
+
|
|
3
|
+
This document is the canonical design for how Pi carries a request from first inspection to verified delivery. It defines five phases only, then maps each phase onto existing `goal`, `task_steps`, delegation, evidence, and approval owners. For tool syntax, read [Task steps](task-steps.md) and [Task worker presets](worker-profiles.md); this document does not duplicate those references.
|
|
4
|
+
|
|
5
|
+
## Confidence and scope
|
|
6
|
+
|
|
7
|
+
**Confirmed:** current Pi claims were checked against the source paths cited below. **External comparison:** Codex observations were checked against the adjacent `external/codex` checkout and are not claims about Pi. **Not checked:** provider-specific compliance beyond the deterministic prompt and gate tests, stochastic routing quality, and runtime performance under a large worker fleet.
|
|
8
|
+
|
|
9
|
+
## Core invariant
|
|
10
|
+
|
|
11
|
+
Pi uses this one five-phase spine:
|
|
12
|
+
|
|
13
|
+
1. **Survey**
|
|
14
|
+
2. **Contract**
|
|
15
|
+
3. **Plan/Route**
|
|
16
|
+
4. **Execute**
|
|
17
|
+
5. **Prove/Deliver**
|
|
18
|
+
|
|
19
|
+
The phase list is source-owned by `WORK_LIFECYCLE_PHASES`. Every root prompt receives the phase contract; the owner-specific line appears only when a goal or planning tool is active, and child workers keep their narrower contract (`packages/coding-agent/src/core/provider-prompt-contracts.ts`; `packages/coding-agent/src/core/system-prompt-builder.ts`). Chat and minimal-class models receive the same five phases in a 56-character compact form so their stable prompts remain inside their 2,048- and 4,096-character capability envelopes; larger root profiles retain the full contract (`packages/coding-agent/src/core/model-capability.ts`). Short or read-only work may collapse phases, but it must not invent a sixth phase or another workflow state machine.
|
|
20
|
+
|
|
21
|
+
State ownership stays singular:
|
|
22
|
+
|
|
23
|
+
- `goal` owns the desired outcome, acceptance requirements, and trusted evidence.
|
|
24
|
+
- `task_steps` owns the foreground execution plan.
|
|
25
|
+
- `delegate` and the orchestration runtime own worker identity, attempts, grants, results, and independent verifier lanes.
|
|
26
|
+
- the risk and policy gates own authorization decisions.
|
|
27
|
+
- the root session owns integration and the final acceptance decision.
|
|
28
|
+
|
|
29
|
+
The runtime already joins these owners through a read-only projection; it does not cross-write their stores (`packages/coding-agent/src/core/orchestration/work-state-projection.ts:111-167`; `packages/coding-agent/src/core/goals/goal-runtime-snapshot.ts:18-87,136-151`).
|
|
30
|
+
|
|
31
|
+
## 1. Survey
|
|
32
|
+
|
|
33
|
+
Start project work with bounded, read-only discovery. Read the relevant project instructions, entry points, nearby tests, affected contracts, and existing implementation owners. Stop discovery when the evidence is sufficient to state a delivery contract and its uncertainty; do not scan the whole repository by default.
|
|
34
|
+
|
|
35
|
+
Survey happens before project mutation and before final delivery classification. Pi's existing model router is intentionally not the delivery classifier: routing receives the expanded original prompt during request preparation, before request-model validation and tool execution (`packages/coding-agent/src/core/agent-session.ts:2602-2624`; `packages/coding-agent/src/core/model-router-controller.ts:438-464`; `packages/coding-agent/src/core/risk-classifier.ts:87-179`). Reusing that prompt-only classifier for project scope would make POC-versus-complete decisions without source evidence.
|
|
36
|
+
|
|
37
|
+
**Exit condition:** relevant project facts, affected surfaces, uncertainty, and consequential owner choices are known. Routine implementation choices remain with Pi.
|
|
38
|
+
|
|
39
|
+
## 2. Contract
|
|
40
|
+
|
|
41
|
+
Translate the request and Survey evidence into a project-relative outcome contract. Record that contract in the goal objective and requirements, not in task titles. Goal state already owns requirement status and evidence bindings (`packages/coding-agent/src/core/goals/goal-state.ts:34-128`), and the goal tool now tells the root to make delivery depth explicit after Survey (`packages/coding-agent/src/core/tools/goal.ts:428-442`).
|
|
42
|
+
|
|
43
|
+
Use these delivery meanings:
|
|
44
|
+
|
|
45
|
+
- **POC:** a bounded executable proof that establishes whether the requested capability works. Production integration is intentionally outside the contract unless explicitly named.
|
|
46
|
+
- **MVP:** the smallest usable project slice that proves the requested feature in its real context. Deliberately omitted integrations must be explicit.
|
|
47
|
+
- **Complete feature:** a production-ready feature integrated across every affected project surface. A demo, isolated helper, or passing happy-path test is not complete.
|
|
48
|
+
|
|
49
|
+
For a complete feature, inspect and include every applicable surface: public entry points and callers; types and wire contracts; configuration and defaults; persistence, migration, and compatibility; cancellation, failure, retry, and resume behavior; UI or CLI exposure; tests and production-shaped verification; documentation and changelog; obsolete-path cleanup. “Applicable” matters: the contract must not manufacture irrelevant work merely to fill a checklist.
|
|
50
|
+
|
|
51
|
+
**Exit condition:** acceptance criteria distinguish requested outcome from implementation method, name the delivery depth, cover applicable project integration, preserve authority boundaries, and identify what evidence can prove each criterion.
|
|
52
|
+
|
|
53
|
+
## 3. Plan/Route
|
|
54
|
+
|
|
55
|
+
Create the mutation plan in `task_steps`, link steps to goal requirements, and keep one step active. `task_steps` already enforces one active item and preserves notes/evidence (`packages/coding-agent/src/core/tasks/task-state.ts:358-400,431-488`); its tool contract now makes Plan/Route precede project mutation and forbids a second outcome state (`packages/coding-agent/src/core/tools/task-steps.ts:316-332`). Detailed plans may contain more than five checklist items—the five-item limit applies to lifecycle phases, not implementation decomposition.
|
|
56
|
+
|
|
57
|
+
Choose solo versus team execution adaptively. Long duration alone never mandates a team. Evaluate:
|
|
58
|
+
|
|
59
|
+
- risk and invariant sensitivity;
|
|
60
|
+
- uncertainty and missing expertise;
|
|
61
|
+
- urgency and available parallelism;
|
|
62
|
+
- reversibility and blast radius;
|
|
63
|
+
- test strength and verification cost;
|
|
64
|
+
- cognitive load and integration coupling.
|
|
65
|
+
|
|
66
|
+
Keep dependent, trivial, context-heavy, or interactive work local. Delegate separable discovery, implementation, tests, or specialist review when doing so improves speed or confidence. Require a different reviewer identity when the factors make implementation self-review insufficient. Worker profiles already support mandatory independent verification and resolve a dedicated verifier shipment (`packages/coding-agent/src/core/delegation/worker-delegation-controller.ts:710-734`).
|
|
67
|
+
|
|
68
|
+
**Exit condition:** ordered work, stable owners, dependencies, acceptance evidence, verification depth, and solo/team route are explicit before mutation.
|
|
69
|
+
|
|
70
|
+
## 4. Execute
|
|
71
|
+
|
|
72
|
+
Work the first open plan item. The root remains integration owner; a worker result is evidence, not accepted truth. Workers receive immutable authority and result contracts through the existing orchestration runtime rather than a lifecycle-specific executor (`packages/coding-agent/src/core/orchestration/contracts.ts:367-509`; `packages/coding-agent/src/core/orchestration/policy-gate.ts:10-30`).
|
|
73
|
+
|
|
74
|
+
Record changed files, focused tests, rejected hypotheses, and blockers on the relevant task and goal requirement. Wait event-driven at true dependencies. Worker terminals already pass through one durable notification coordinator and one foreground handoff path; matching active-goal completions wake the parent (`packages/coding-agent/src/core/background-lane-controller.ts:174-200`; `packages/coding-agent/src/core/foreground-terminal-handoff-controller.ts:197-205,341-429`). The goal continuation decision waits on bound in-flight workers and resumes once work can advance (`packages/coding-agent/src/core/goals/goal-continuation-controller.ts:284-353`).
|
|
75
|
+
|
|
76
|
+
A failed implementation or review does not create a new phase. Update Contract only if the requested outcome changed; otherwise return to Plan/Route or continue Execute with the new evidence.
|
|
77
|
+
|
|
78
|
+
**Exit condition:** planned mutations are integrated, no required work is silently deferred, and evidence is ready for independent acceptance.
|
|
79
|
+
|
|
80
|
+
## 5. Prove/Deliver
|
|
81
|
+
|
|
82
|
+
Verify from narrow to broad in proportion to risk: focused reproduction and negative control, adjacent tests, type/build/static gates, then production-shaped checks when the contract requires them. Independent review must inspect the integrated result, not only worker claims or exit codes. Goal completion already distinguishes proven requirements from open work, waits for cited background tasks, and requires an explicit completion transition (`packages/coding-agent/src/core/goals/goal-continuation-controller.ts:198-237`; `packages/coding-agent/src/core/goal-loop-controller.ts:88-199`).
|
|
83
|
+
|
|
84
|
+
When checks are green and the owner requested or authorized a checkpoint, create a local commit inside Prove/Deliver. Commit is not a sixth lifecycle state. The risk classifier now admits one plain local `git commit` as a reversible scoped write, while composed shell commands, history-rewriting commits, push, reset, clean, stash, rebase, release, deploy, and publish operations stay approval-gated (`packages/coding-agent/src/core/risk-classifier.ts:220-265`; `packages/coding-agent/src/core/autonomy/gates.ts:189-219`). A commit message containing words such as “release” does not turn a local checkpoint into publication.
|
|
85
|
+
|
|
86
|
+
`git push`, tags, releases, package publication, deployment, destructive operations, credential/authentication changes, settings/authority expansion, and other external side effects remain owner-gated. Approval produces authority for the requested operation; it is not proof that the feature is correct (`packages/coding-agent/src/core/orchestration/contracts.ts:486-509`; `packages/coding-agent/src/core/orchestration/policy-compiler.ts:161-186`).
|
|
87
|
+
|
|
88
|
+
**Exit condition:** every required criterion has trusted evidence, integrated review is clean, no active work remains, authorized local checkpointing is complete, and either delivery is complete or Pi is explicitly waiting at an external authorization boundary. Any failed criterion loops to Contract, Plan/Route, or Execute.
|
|
89
|
+
|
|
90
|
+
## Current-code audit
|
|
91
|
+
|
|
92
|
+
### Retained as authoritative
|
|
93
|
+
|
|
94
|
+
**Confirmed:** goal state, task state, delegated task runtime, worker lifecycle, foreground handoff, continuation, risk assessment, and approval compilation are live owners with focused tests. The goal/task/worker read model already links stable IDs without merging their mutation paths (`packages/coding-agent/src/core/orchestration/work-state-projection.ts:89-167`). Historical hardening of these owners is documented in [Goal/Task-Steps/Subagent Fix Cycle](goal-task-subagent-cycle-2026-07-19.md); this document links rather than restating that dated fix ledger.
|
|
95
|
+
|
|
96
|
+
### Rewired in this feature
|
|
97
|
+
|
|
98
|
+
**Confirmed:**
|
|
99
|
+
|
|
100
|
+
- one root-only lifecycle contract is always assembled, with goal/task/delegate ownership wording added only when the corresponding planning surface is available;
|
|
101
|
+
- goal and task tool guidance directs Contract and Plan/Route into their existing owners;
|
|
102
|
+
- delegation guidance makes team use adaptive rather than duration-triggered;
|
|
103
|
+
- plain local commits no longer hit the publication/destructive approval path;
|
|
104
|
+
- focused tests lock the five exact phases, root/child/tool-surface prompt gating, project-relative delivery wording, adaptive factors, and local-commit negative controls.
|
|
105
|
+
|
|
106
|
+
No lifecycle database, controller, event type, planner store, or delivery enum was added. Delivery completeness is contextual and belongs in acceptance requirements; a global enum could not determine which project surfaces are applicable after discovery.
|
|
107
|
+
|
|
108
|
+
### Deliberately not reused as delivery classification
|
|
109
|
+
|
|
110
|
+
**Confirmed:** `classifyModelRouterRoute(prompt)` and its `intent-classifier.ts` re-export remain model-cost/risk routing mechanisms. They run on prompt text before Survey and cannot safely decide project delivery depth. The orchestration event store remains the delegated execution owner; mirroring root lifecycle phases into it would duplicate goal/task state.
|
|
111
|
+
|
|
112
|
+
### Residual limits
|
|
113
|
+
|
|
114
|
+
**Confirmed limitation:** adaptive routing and the decision to request an independent reviewer are semantic decisions made by the root under the lifecycle contract. The host deterministically enforces worker authority and a profile's required verifier once selected, but it does not infer project risk after Survey or auto-spawn reviewers for solo work.
|
|
115
|
+
|
|
116
|
+
**Confirmed limitation:** automatic local checkpointing means the root invokes a plain `git commit` after green evidence. Pi does not run an ambient auto-commit daemon, because that could capture unrelated owner changes without a proven patch boundary.
|
|
117
|
+
|
|
118
|
+
**Not checked:** prompt conformance cannot prove every provider follows the lifecycle under all context-pressure conditions. Deterministic prompt-shape tests and completion gates reduce that risk; evidence-gated review remains necessary.
|
|
119
|
+
|
|
120
|
+
## Codex mechanisms considered
|
|
121
|
+
|
|
122
|
+
**External comparison, confirmed against the adjacent checkout:** Codex's Thread Store exposes one raw history append API, one metadata update API, and a preferred `LiveThread` path for active persistence (`../../external/codex/codex-rs/thread-store/README.md:3-30`). That supports Pi's one-owner-per-invariant decision; it does not justify copying Codex's storage types.
|
|
123
|
+
|
|
124
|
+
Codex review launches a one-shot subagent with an explicit review prompt, disables collaboration features inside that reviewer, and marks it as `SubAgentSource::Review` (`../../external/codex/codex-rs/core/src/tasks/review.rs:103-140`). Pi retains the same useful separation—implementation evidence is reviewed by a distinct identity when warranted—through its existing verifier shipment instead of adding a second review subsystem.
|
|
125
|
+
|
|
126
|
+
Codex approval handling is tool/operation scoped rather than a generic “commit phase”: the tool orchestrator computes an execution approval requirement, requests approval when needed, then attempts the tool under the selected sandbox (`../../external/codex/codex-rs/core/src/tools/orchestrator.rs:154-233`). Pi follows the same separation: lifecycle acceptance and execution authority remain different decisions. No Codex rollout or thread-store code is copied.
|
|
127
|
+
|
|
128
|
+
## Verification map
|
|
129
|
+
|
|
130
|
+
- Prompt lifecycle and tool-surface gating: `packages/coding-agent/test/system-prompt-builder-tool-selection.test.ts`.
|
|
131
|
+
- Stable compact base prompt: `packages/coding-agent/test/system-prompt.test.ts`.
|
|
132
|
+
- Local commit and approval negative controls: `packages/coding-agent/test/autonomy-risk-assessment.test.ts`.
|
|
133
|
+
- Existing goal/task/delegate behavior: the focused suites referenced by [Task steps](task-steps.md) and [Goal/Task-Steps/Subagent Fix Cycle](goal-task-subagent-cycle-2026-07-19.md).
|
|
134
|
+
|
|
135
|
+
## Documentation scope note
|
|
136
|
+
|
|
137
|
+
Covered in depth: lifecycle semantics, delivery-depth contract, ownership, current wiring, local checkpoint authorization, and the directly compared Codex mechanisms. Structurally checked: goal continuation, worker verifier admission, terminal handoff, work-state projection, and approval compilation. Not checked in depth: every provider adapter, every worker profile, UI rendering, pipeline internals, release automation, and performance under fleet load.
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-extension-custom-provider",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.96.0",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "pi-extension-custom-provider",
|
|
9
|
-
"version": "0.
|
|
9
|
+
"version": "0.96.0",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@anthropic-ai/sdk": "^0.52.0"
|
|
12
12
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-extension-sandbox",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.96.0",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "pi-extension-sandbox",
|
|
9
|
-
"version": "0.
|
|
9
|
+
"version": "0.96.0",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@anthropic-ai/sandbox-runtime": "^0.0.26"
|
|
12
12
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-extension-with-deps",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.96.0",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "pi-extension-with-deps",
|
|
9
|
-
"version": "0.
|
|
9
|
+
"version": "0.96.0",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"ms": "^2.1.3"
|
|
12
12
|
},
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@caupulican/pi-adaptative",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.96.0",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@caupulican/pi-adaptative",
|
|
9
|
-
"version": "0.
|
|
9
|
+
"version": "0.96.0",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@caupulican/pi-agent-core": "^0.
|
|
13
|
-
"@caupulican/pi-ai": "^0.
|
|
14
|
-
"@caupulican/pi-tui": "^0.
|
|
12
|
+
"@caupulican/pi-agent-core": "^0.96.0",
|
|
13
|
+
"@caupulican/pi-ai": "^0.96.0",
|
|
14
|
+
"@caupulican/pi-tui": "^0.96.0",
|
|
15
15
|
"@silvia-odwyer/photon-node": "0.3.4",
|
|
16
16
|
"chalk": "5.6.2",
|
|
17
17
|
"cross-spawn": "7.0.6",
|
|
@@ -506,11 +506,11 @@
|
|
|
506
506
|
}
|
|
507
507
|
},
|
|
508
508
|
"node_modules/@caupulican/pi-agent-core": {
|
|
509
|
-
"version": "0.
|
|
510
|
-
"resolved": "https://registry.npmjs.org/@caupulican/pi-agent-core/-/pi-agent-core-0.
|
|
509
|
+
"version": "0.96.0",
|
|
510
|
+
"resolved": "https://registry.npmjs.org/@caupulican/pi-agent-core/-/pi-agent-core-0.96.0.tgz",
|
|
511
511
|
"license": "MIT",
|
|
512
512
|
"dependencies": {
|
|
513
|
-
"@caupulican/pi-ai": "^0.
|
|
513
|
+
"@caupulican/pi-ai": "^0.96.0",
|
|
514
514
|
"ignore": "7.0.5",
|
|
515
515
|
"typebox": "1.1.38",
|
|
516
516
|
"yaml": "2.9.0"
|
|
@@ -520,8 +520,8 @@
|
|
|
520
520
|
}
|
|
521
521
|
},
|
|
522
522
|
"node_modules/@caupulican/pi-ai": {
|
|
523
|
-
"version": "0.
|
|
524
|
-
"resolved": "https://registry.npmjs.org/@caupulican/pi-ai/-/pi-ai-0.
|
|
523
|
+
"version": "0.96.0",
|
|
524
|
+
"resolved": "https://registry.npmjs.org/@caupulican/pi-ai/-/pi-ai-0.96.0.tgz",
|
|
525
525
|
"license": "MIT",
|
|
526
526
|
"dependencies": {
|
|
527
527
|
"@anthropic-ai/sdk": "0.117.1",
|
|
@@ -546,8 +546,8 @@
|
|
|
546
546
|
}
|
|
547
547
|
},
|
|
548
548
|
"node_modules/@caupulican/pi-tui": {
|
|
549
|
-
"version": "0.
|
|
550
|
-
"resolved": "https://registry.npmjs.org/@caupulican/pi-tui/-/pi-tui-0.
|
|
549
|
+
"version": "0.96.0",
|
|
550
|
+
"resolved": "https://registry.npmjs.org/@caupulican/pi-tui/-/pi-tui-0.96.0.tgz",
|
|
551
551
|
"license": "MIT",
|
|
552
552
|
"dependencies": {
|
|
553
553
|
"get-east-asian-width": "1.6.0",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@caupulican/pi-adaptative",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.96.0",
|
|
4
4
|
"description": "Adaptive fork of Pi coding agent for self-evolving agent harness experiments",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"piConfig": {
|
|
@@ -89,9 +89,9 @@
|
|
|
89
89
|
"postinstall": "node scripts/postinstall-python-runtime.mjs"
|
|
90
90
|
},
|
|
91
91
|
"dependencies": {
|
|
92
|
-
"@caupulican/pi-agent-core": "^0.
|
|
93
|
-
"@caupulican/pi-ai": "^0.
|
|
94
|
-
"@caupulican/pi-tui": "^0.
|
|
92
|
+
"@caupulican/pi-agent-core": "^0.96.0",
|
|
93
|
+
"@caupulican/pi-ai": "^0.96.0",
|
|
94
|
+
"@caupulican/pi-tui": "^0.96.0",
|
|
95
95
|
"@silvia-odwyer/photon-node": "0.3.4",
|
|
96
96
|
"chalk": "5.6.2",
|
|
97
97
|
"cross-spawn": "7.0.6",
|