pantheon-opencode 1.6.0-beta.10 → 1.6.0-beta.12
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/AGENTS.global.md +42 -18
- package/AGENTS.md +1 -1
- package/CHANGELOG.md +46 -0
- package/README.md +122 -38
- package/README.pt-BR.md +5 -4
- package/bin/pantheon-init.mjs +322 -101
- package/package.json +7 -6
- package/plugin.json +1 -1
- package/pyproject.toml +1 -1
- package/scripts/build-agents-md.mjs +128 -10
- package/scripts/check-plugin-v2-coverage.mjs +7 -7
- package/scripts/doctor.mjs +242 -19
- package/scripts/install/backup.mjs +648 -0
- package/scripts/install/cli-ui.mjs +79 -1
- package/scripts/install/exit-codes.mjs +26 -0
- package/scripts/install/file-inventory.mjs +555 -0
- package/scripts/install/interactive.mjs +15 -1
- package/scripts/install/migrate.mjs +32 -6
- package/scripts/install/model-picker.mjs +63 -22
- package/scripts/install/opencode-version.mjs +9 -1
- package/scripts/install/opencode.mjs +761 -63
- package/scripts/install/plan-artifact.mjs +517 -0
- package/scripts/install/plan.mjs +449 -0
- package/scripts/install/plugin.mjs +136 -18
- package/scripts/install/shared.mjs +249 -94
- package/scripts/install/state.mjs +63 -8
- package/scripts/install/strings.mjs +20 -0
- package/scripts/install/venv.mjs +25 -6
- package/scripts/install/verify.mjs +128 -0
- package/scripts/install/vision-prompt.mjs +13 -1
- package/scripts/install-mcp.mjs +1 -1
- package/scripts/manifest-inventory.mjs +49 -3
- package/scripts/mcp_persistence.py +50 -15
- package/scripts/node-engine-policy.mjs +74 -0
- package/scripts/package-evidence.mjs +6 -0
- package/scripts/postinstall.mjs +3 -4
- package/scripts/prune.mjs +9 -3
- package/scripts/reconcile.mjs +325 -0
- package/scripts/restore.mjs +222 -0
- package/scripts/uninstall.mjs +258 -34
- package/scripts/update.mjs +164 -0
- package/scripts/validate-node-engine-policy.mjs +13 -0
- package/scripts/version-check.mjs +34 -1
- package/scripts/versioning.mjs +9 -1
- package/skills-lock.json +4 -4
- package/src/agents/iris.md +6 -0
- package/src/agents/mnemosyne.md +7 -2
- package/src/agents/zeus.md +19 -62
- package/src/instructions/agent-return-format.instructions.md +17 -15
- package/src/instructions/memory-protocol.instructions.md +3 -2
- package/src/instructions/test-economy.instructions.md +21 -0
- package/src/instructions/zeus-anti-stall.instructions.md +6 -6
- package/src/instructions/zeus-council-synthesis.instructions.md +10 -11
- package/src/instructions/zeus-memory-operations.instructions.md +11 -6
- package/src/instructions/zeus-timeout-retry.instructions.md +28 -9
- package/src/mcp/mcp_persistence.py +50 -15
- package/src/pantheon/cost-command.ts +5 -2
- package/src/pantheon/model-agents.ts +19 -0
- package/src/pantheon/model-command.ts +218 -56
- package/src/pantheon/v2-model-overrides.ts +275 -0
- package/src/pantheon/v2-tools.ts +18 -29
- package/src/pantheon/v2-unsupported.mjs +2 -3
- package/src/plugin-v2.ts +13 -0
- package/src/plugins/tui/dist/tui-v2.js +2 -2
- package/src/plugins/tui/dist/tui.js +1 -1
- package/src/plugins/tui/package-lock.json +3 -3
- package/src/plugins/tui/package.json +2 -2
- package/src/skills/artifact-management/SKILL.md +5 -1
- package/src/skills/auto-continue/SKILL.md +14 -6
- package/src/skills/memory-bank/SKILL.md +5 -1
- package/src/skills/worktrees/SKILL.md +30 -11
package/AGENTS.global.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<!-- pantheon:generated:begin — Pantheon-managed region; regenerated on install/upgrade, never edit inside -->
|
|
2
2
|
<!-- Generated by scripts/build-agents-md.mjs — do not edit directly. -->
|
|
3
3
|
<!-- Source of truth: src/instructions/*.instructions.md + the static sections in this script. -->
|
|
4
|
-
<!-- pantheon:agents-md v2 artifact=global generated-at=2026-10-
|
|
4
|
+
<!-- pantheon:agents-md v2 artifact=global generated-at=2026-10-16T15:32:02-03:00 sha=2cda37c -->
|
|
5
5
|
|
|
6
6
|
# Pantheon Agent System — OpenCode
|
|
7
7
|
|
|
@@ -76,7 +76,7 @@ the complete plan in the current conversation before requesting approval.
|
|
|
76
76
|
|
|
77
77
|
## Council Specialist Response Format
|
|
78
78
|
|
|
79
|
-
When responding to a `/pantheon` council synthesis invocation, specialists MUST return this structured format
|
|
79
|
+
When responding to a `/pantheon` council synthesis invocation, specialists MUST return this structured format. First-round specialists receive independent prompts without peer responses, whether dispatch is parallel or synchronous/sequential; they therefore cannot know actual peer positions. Do not guess them, claim agreement/disagreement with unseen peers, or self-reference in agreement signals. Omit `agreement_signals` or write `none` in the first round. In a rebuttal round, signals may reference only peer responses included in that round's prompt. Zeus derives agreement and disagreement during synthesis by comparing actual responses.
|
|
80
80
|
|
|
81
81
|
```
|
|
82
82
|
## specialist_response
|
|
@@ -85,8 +85,8 @@ When responding to a `/pantheon` council synthesis invocation, specialists MUST
|
|
|
85
85
|
**trade_offs:** <what's gained vs lost, specific>
|
|
86
86
|
**risks:** <what could go wrong, max 3 items>
|
|
87
87
|
**confidence:** High | Medium | Low
|
|
88
|
-
**agreement_signals:**
|
|
89
|
-
**specific_claims:** <
|
|
88
|
+
**agreement_signals:** <omit or `none` in first round; rebuttal may cite only visible peer responses>
|
|
89
|
+
**specific_claims:** <optional self-reported count; advisory only, not evidence>
|
|
90
90
|
```
|
|
91
91
|
|
|
92
92
|
### Field Rules
|
|
@@ -98,29 +98,31 @@ When responding to a `/pantheon` council synthesis invocation, specialists MUST
|
|
|
98
98
|
| trade_offs | ✅ | At least one gain and one loss, specific to context |
|
|
99
99
|
| risks | ✅ | Max 3 bullet points |
|
|
100
100
|
| confidence | ✅ | One of: High, Medium, Low |
|
|
101
|
-
| agreement_signals | Optional |
|
|
102
|
-
| specific_claims |
|
|
101
|
+
| agreement_signals | Optional | Omit or use `none` in the first round. In rebuttal, reference only peer responses visible in the prompt; never speculate or self-reference. Zeus derives synthesis positions from actual responses, not these signals. |
|
|
102
|
+
| specific_claims | Optional | Self-reported integer count only; advisory and not independently validated. Do not treat the count alone as evidence or proof of confidence. |
|
|
103
103
|
|
|
104
104
|
### Confidence Guidelines
|
|
105
105
|
|
|
106
|
-
- **High**: Position backed by 3
|
|
107
|
-
- **Medium**: Position backed by 1
|
|
106
|
+
- **High**: Position backed by at least 3 verifiable claims supported by evidence in the response; a self-reported count alone does not qualify
|
|
107
|
+
- **Medium**: Position backed by at least 1 verifiable claim supported by evidence in the response
|
|
108
108
|
- **Low**: Position is opinion-based or speculative
|
|
109
109
|
|
|
110
|
+
Equal self-reported counts (for example, several specialists each reporting 7) do not by themselves prove fabrication; assess whether the actual response contains verifiable, supported claims.
|
|
111
|
+
|
|
110
112
|
### Example
|
|
111
113
|
```
|
|
112
114
|
## specialist_response
|
|
113
|
-
**position:**
|
|
114
|
-
**reasoning:** The
|
|
115
|
-
**trade_offs:** Gain:
|
|
116
|
-
**risks:**
|
|
117
|
-
**confidence:**
|
|
118
|
-
**agreement_signals:**
|
|
119
|
-
**specific_claims:**
|
|
115
|
+
**position:** Use a bounded local cache for the read-heavy endpoint.
|
|
116
|
+
**reasoning:** The endpoint repeatedly reads the same reference data. A bounded cache reduces repeated lookups, while a short TTL limits staleness.
|
|
117
|
+
**trade_offs:** Gain: fewer repeated reads. Lose: results may remain stale until the TTL expires.
|
|
118
|
+
**risks:** Cache invalidation may lag after updates.
|
|
119
|
+
**confidence:** Medium
|
|
120
|
+
**agreement_signals:** none
|
|
121
|
+
**specific_claims:** 2 (self-reported; advisory)
|
|
120
122
|
```
|
|
121
123
|
|
|
122
124
|
## Memory Context
|
|
123
|
-
If memory affected the result, state the takeaway briefly; do not repeat the entry or task context.
|
|
125
|
+
If memory affected the result, state the takeaway briefly; do not repeat the entry or task context. If persistence was expected but no write tool was exposed or a write failed, state that it was not persisted; never imply a successful store without confirmation.
|
|
124
126
|
|
|
125
127
|
<!-- Source: src/instructions/memory-protocol.instructions.md -->
|
|
126
128
|
## Memory Protocol
|
|
@@ -138,12 +140,34 @@ These rules apply to all agents; each agent file may add domain-specific rules.
|
|
|
138
140
|
- Use a targeted query (`top_k=2`); do not search the whole prompt by default. Missing or irrelevant results never block current work.
|
|
139
141
|
|
|
140
142
|
### Persistence
|
|
141
|
-
-
|
|
142
|
-
- Confirm
|
|
143
|
+
- Tool grants vary by agent/runtime. Zeus's installed allowlist has `memory_search` and temporary `context_save`/`context_get` checkpoints, but no durable writes; Mnemosyne's includes `memory_store` and other durable-memory tools. Use only tools exposed and permitted in the active session.
|
|
144
|
+
- Store at most one concise, reusable top-level result; never persist routine child summaries, phase updates, test logs, or temporary state. Confirm a successful write before claiming persistence. Never store secrets, credentials, or tokens. `memory_store` stores submitted values and metadata without guaranteed redaction; omit sensitive content or redact it before storage.
|
|
145
|
+
- If no write tool is available or the write did not succeed, say that the information was not persisted. Do not imply automatic memory storage or recovery. Add ADRs to the memory bank only when explicitly requested.
|
|
143
146
|
|
|
144
147
|
### Relevance and permanent records
|
|
145
148
|
Ignore weak matches; routine summaries do not belong in durable memory.
|
|
146
149
|
|
|
150
|
+
<!-- Source: src/instructions/test-economy.instructions.md -->
|
|
151
|
+
## Test Economy
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
Write the smallest test that proves the behavior: one behavior → one focused
|
|
155
|
+
test, never the same coverage duplicated across suites or files.
|
|
156
|
+
|
|
157
|
+
- Do NOT add E2E, full-install, or network-dependent tests unless the change
|
|
158
|
+
actually alters that end-to-end path. Prefer unit or integration tests.
|
|
159
|
+
- Do not assert on copy/format strings redundantly, and do not write
|
|
160
|
+
assertions that only restate the implementation ("test the test").
|
|
161
|
+
- Heavy or slow suites (e.g. real install/E2E) MUST be opt-in via a separate
|
|
162
|
+
script/tier. Never run them per edit or per phase; run only the affected
|
|
163
|
+
subset.
|
|
164
|
+
- Respect a per-phase validation time budget: if a suite takes minutes,
|
|
165
|
+
justify running it and prefer the targeted subset. Reserve the full heavy
|
|
166
|
+
suites for release gates.
|
|
167
|
+
- Fixing a bug: add one targeted regression test, not a broad new suite.
|
|
168
|
+
- This economy rule does NOT weaken stronger gates: auth, security,
|
|
169
|
+
data-integrity, and required coverage thresholds stay mandatory.
|
|
170
|
+
|
|
147
171
|
<!-- Source: src/instructions/yagni.instructions.md -->
|
|
148
172
|
## YAGNI Anti-overengineering
|
|
149
173
|
|
package/AGENTS.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<!-- pantheon:generated:begin — Pantheon-managed region; regenerated on install/upgrade, never edit inside -->
|
|
2
2
|
<!-- Generated by scripts/build-agents-md.mjs — do not edit directly. -->
|
|
3
3
|
<!-- Source of truth: the static project sections in scripts/build-agents-md.mjs. -->
|
|
4
|
-
<!-- pantheon:agents-md v2 artifact=project generated-at=2026-10-
|
|
4
|
+
<!-- pantheon:agents-md v2 artifact=project generated-at=2026-10-16T15:32:02-03:00 sha=2cda37c -->
|
|
5
5
|
|
|
6
6
|
# Pantheon — Repository Setup
|
|
7
7
|
|
package/CHANGELOG.md
CHANGED
|
@@ -18,6 +18,52 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
18
18
|
|
|
19
19
|
## ✅ Closed Issues
|
|
20
20
|
|
|
21
|
+
## [v1.6.0-beta.12] - 2026-10-17
|
|
22
|
+
|
|
23
|
+
## 🆕 What's New
|
|
24
|
+
|
|
25
|
+
- **Raise the Node.js support floor to 26.4.0** for the package, CLI, installer,
|
|
26
|
+
and Node-based tooling. This release drops Node 22, Node 24, and Node
|
|
27
|
+
26.0–26.3; the npm `beta` dist-tag remains the intended publication channel.
|
|
28
|
+
- **Clarify runtime boundaries:** this package requirement is not a universal
|
|
29
|
+
OpenCode host-runtime claim. Official OpenCode V2.0.31 has a Bun runtime path
|
|
30
|
+
and a separate Node build pinned to 26.4.0; no Bun minimum is asserted.
|
|
31
|
+
- **Keep `node:sqlite` as a separate capability threshold:** Node >=22.5 may
|
|
32
|
+
provide the optional `pantheon_cost` backend, but does not imply package
|
|
33
|
+
support on that Node version.
|
|
34
|
+
- **Recommend a persistent external Git worktree location** in interactive TTY
|
|
35
|
+
setup summaries and the shipped worktrees skill. This is guidance only;
|
|
36
|
+
Pantheon does not create worktrees or directories automatically.
|
|
37
|
+
|
|
38
|
+
## 🐞 Fixed
|
|
39
|
+
|
|
40
|
+
- **Synchronize Beta 12 version metadata and Node engine policy** across package
|
|
41
|
+
manifests, locks, citation/release metadata, CLI guards, doctor, and CI.
|
|
42
|
+
|
|
43
|
+
## [v1.6.0-beta.11] - 2026-10-15
|
|
44
|
+
|
|
45
|
+
## 🆕 What's New
|
|
46
|
+
|
|
47
|
+
- **record final Beta 11 scope decisions**
|
|
48
|
+
- **record Setup delivery and final-gate lessons in roadmap**
|
|
49
|
+
- **forbid hook bypass in Iris commit contract**
|
|
50
|
+
- **add installer failure reporting and secret-safe output audit**
|
|
51
|
+
- **detect drift between installer plan and apply**
|
|
52
|
+
- **require explicit --yes authorization before installer apply**
|
|
53
|
+
- **exact installer backup set with restore**
|
|
54
|
+
- **add Beta 11 test-economy requirement to shared instructions**
|
|
55
|
+
- **preview per-file change set in installer dry-run**
|
|
56
|
+
- **reconcile Beta 11 roadmap status with completed phases**
|
|
57
|
+
- **describe pantheon_cost window and aggregation limits**
|
|
58
|
+
- **align lean-flow guidance and cost wording**
|
|
59
|
+
- **add project-scoped V2 model overrides**
|
|
60
|
+
- **align host tool and background contracts**
|
|
61
|
+
|
|
62
|
+
## 🐞 Fixed
|
|
63
|
+
|
|
64
|
+
- **restore explicit "both" in zeus memory operations instruction**
|
|
65
|
+
- **correct council protocol and persistence bounds**
|
|
66
|
+
|
|
21
67
|
## [v1.6.0-beta.10] - 2026-10-12
|
|
22
68
|
|
|
23
69
|
## 🆕 What's New
|
package/README.md
CHANGED
|
@@ -31,16 +31,17 @@ way to plan work, make progress, check results, and keep useful project context.
|
|
|
31
31
|
## Start in 2 minutes
|
|
32
32
|
|
|
33
33
|
Requirements: [OpenCode 1.18.4+](https://opencode.ai/docs/) and Node.js
|
|
34
|
-
|
|
35
|
-
release line supports, see
|
|
34
|
+
26.4.0+ for the Pantheon CLI, installer, and Node-based tooling. For which
|
|
35
|
+
OpenCode generation each Pantheon release line supports, see
|
|
36
36
|
[Compatibility and support policy](#compatibility-and-support-policy).
|
|
37
37
|
|
|
38
|
-
Pantheon declares `engines.node` as
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
38
|
+
Pantheon declares `engines.node` as `>=26.4.0`; Node 22, Node 24, and Node
|
|
39
|
+
26.0–26.3 are not supported by this release. This package floor does not imply
|
|
40
|
+
that every OpenCode host runs on Node: official OpenCode V2.0.31 has a Bun
|
|
41
|
+
runtime path and a separate Node build pinned to Node 26.4.0. No Bun minimum is
|
|
42
|
+
asserted here. The optional `pantheon_cost` SQLite backend has its own capability
|
|
43
|
+
threshold, `node:sqlite` on Node >= 22.5; that feature threshold does not lower
|
|
44
|
+
Pantheon's package or CLI support floor.
|
|
44
45
|
|
|
45
46
|
From the project where you want to use Pantheon:
|
|
46
47
|
|
|
@@ -52,6 +53,64 @@ opencode
|
|
|
52
53
|
The installer guides you through the available setup. For optional MCP servers,
|
|
53
54
|
project-local installation, or non-interactive setup, see the
|
|
54
55
|
[installation guide](docs/INSTALLATION.md).
|
|
56
|
+
|
|
57
|
+
In an interactive TTY setup summary, Pantheon recommends the persistent
|
|
58
|
+
external worktree location
|
|
59
|
+
`<project-parent>/.pantheon-worktrees/<exact-repository-directory-basename>/<task>`
|
|
60
|
+
(for example, `/home/user/.pantheon-worktrees/My Project/feature-name`). Use the
|
|
61
|
+
project directory's exact basename, including spaces; do not normalize it into
|
|
62
|
+
a slug. This is guidance for future agent work only; Pantheon does not create
|
|
63
|
+
Git worktrees or directories automatically. See the shipped
|
|
64
|
+
[worktrees skill](src/skills/worktrees/SKILL.md) for the agent workflow.
|
|
65
|
+
|
|
66
|
+
A non-interactive apply requires `--yes` (alias `-y`): without a TTY and
|
|
67
|
+
without `--yes`, `init` prints the change plan and applies nothing. Exit codes:
|
|
68
|
+
`0` success or plan/no-apply, `1` failure, `2` apply requested without
|
|
69
|
+
authorization, `3` drift (a planned target changed before apply), `130` canceled.
|
|
70
|
+
|
|
71
|
+
Preview with `init --dry-run`. To review and apply across separate invocations,
|
|
72
|
+
save a versioned plan and then explicitly authorize it:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
npx pantheon-opencode init --dry-run --project --no-mcp --components agents \
|
|
76
|
+
--save-plan .pantheon-install-plan.json
|
|
77
|
+
npx pantheon-opencode init --apply-plan .pantheon-install-plan.json --yes
|
|
78
|
+
npx pantheon-opencode init --dry-run --json # machine-readable preview on stdout
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Saved plans use mode `0600`, contain operation metadata and fingerprints rather
|
|
82
|
+
than generated file contents, and are bound to their original target and plan
|
|
83
|
+
file path. Applying rechecks the package source and destination snapshots; drift
|
|
84
|
+
aborts before writes. Saved plans do not support `--force`/`--clean`, and
|
|
85
|
+
machine-readable previews reject those options because clean performs bulk removal.
|
|
86
|
+
A dry-run skips probing the OpenCode host to avoid host-side writes; when no version hint
|
|
87
|
+
is configured, it assumes V1 and reports that advisory. Pass
|
|
88
|
+
`--opencode-version v1|v2` to preview a specific generation.
|
|
89
|
+
Saving an artifact is supported on Linux, Darwin, FreeBSD, OpenBSD, and NetBSD
|
|
90
|
+
when the required descriptor paths and filesystem flags are usable. Cross-platform
|
|
91
|
+
behavior has not been fully tested; unsupported platforms fail closed rather
|
|
92
|
+
than risk writing through a replaced parent directory.
|
|
93
|
+
Previews describe managed-file operations, not every bulk or external effect
|
|
94
|
+
(such as Python environment setup). The `postinstall`/`sync-tui` step also only
|
|
95
|
+
refreshes TUI artifacts and is outside this approval flow.
|
|
96
|
+
|
|
97
|
+
Before the first managed-file write, `init` saves an exact backup set under
|
|
98
|
+
`.pantheon/backups/<timestamp>/` (directory `0700`, files `0600`, the 5 most
|
|
99
|
+
recent kept); it is a byte-for-byte copy and therefore also contains any API
|
|
100
|
+
keys or tokens already present in your files — it is never printed. Recover with
|
|
101
|
+
`pantheon-opencode restore [--project] [--yes]`. There is no automatic rollback;
|
|
102
|
+
an interrupted apply is recoverable from the backup in the same way.
|
|
103
|
+
To remove Pantheon-managed files, review with
|
|
104
|
+
`pantheon-opencode uninstall --project --dry-run` (or `--global`) before applying
|
|
105
|
+
with `--force`. The opt-in `--purge-data` removes only a verified install-state
|
|
106
|
+
file and never removes recovery backups; see the installation guide for details.
|
|
107
|
+
New installs also record a versioned per-file ownership inventory. Review stale,
|
|
108
|
+
unchanged installer-owned files with `pantheon-opencode reconcile --project --dry-run`
|
|
109
|
+
(or `--global --dry-run`); preview is read-only, and apply requires `--apply --yes` or a
|
|
110
|
+
saved reviewed plan. Legacy files without inventory, modified files, and
|
|
111
|
+
symlinks are preserved for manual review. An explicit `--target PATH` uses project
|
|
112
|
+
layout; combine it with `--global` to select the flat global layout. See the
|
|
113
|
+
[installation guide](docs/INSTALLATION.md).
|
|
55
114
|
The bundled Python MCP servers use the pinned MCP SDK 2.2.0 and standalone
|
|
56
115
|
FastMCP 4.0.10 runtime; see the [MCP guide](docs/MCP.md).
|
|
57
116
|
The installer also turns each agent's `mcp_tools` allowlist into native
|
|
@@ -182,12 +241,17 @@ session/compaction hooks, so the 1.6 line is not full V2 feature parity.
|
|
|
182
241
|
| V2 native subagent admission | OpenCode v2.0.29 | `tests/canary/run-v2-permission-proof.sh`; identity, root/child checks and permission-before-child ordering are recorded in [`bench/results/f4a-v229-admission-identity-2026-10-14.md`](bench/results/f4a-v229-admission-identity-2026-10-14.md) |
|
|
183
242
|
| Exact 1.X host version the 1.6 line is exercised against end-to-end | **Unverified.** No V1 host leg exists: the sandbox runner is V2-only and `--run v1` is rejected | — |
|
|
184
243
|
|
|
185
|
-
## Delegation (
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
244
|
+
## Delegation (root `subagent`; host/API `task()`)
|
|
245
|
+
|
|
246
|
+
The host's child-session engine is referred to as native `task()` in API and
|
|
247
|
+
implementation documentation. In the user-reported Beta 10 Zeus-root runtime,
|
|
248
|
+
the callable dispatch tool was `subagent`; `task()` was not exposed as a root
|
|
249
|
+
tool. Treat the API name and examples below as host/API terminology, not a
|
|
250
|
+
guaranteed root-tool name or signature. The active runtime determines the
|
|
251
|
+
`subagent` schema, background options, and completion observability. The former
|
|
252
|
+
custom `pantheon_delegate` tool and the V1 delegation engine (`delegation.ts`,
|
|
253
|
+
`delegate-manager.ts` and supporting modules) were removed; there is no
|
|
254
|
+
Pantheon-specific delegation tool surface to configure. See
|
|
191
255
|
[ADR-0011](.pantheon/memory-bank/adr/0011-delegation-engine-contract.md) for the
|
|
192
256
|
historical engine contract.
|
|
193
257
|
|
|
@@ -210,8 +274,12 @@ global database. Both OpenCode services were running, so the 404 in the global
|
|
|
210
274
|
log may come from the other instance; this remains an end-to-end verification
|
|
211
275
|
item.
|
|
212
276
|
|
|
213
|
-
Delegated
|
|
214
|
-
|
|
277
|
+
Delegated work gets at most one retry after an initial transient failure. If no
|
|
278
|
+
completion/status tool is exposed, prefer synchronous `subagent` dispatch or
|
|
279
|
+
wait for a host-provided completion notification; do not assume polling,
|
|
280
|
+
cancellation, job tracking, or board-based recovery. If the runtime does not
|
|
281
|
+
make completion observable, report that limitation. The configured fallback or
|
|
282
|
+
escalation chain still applies.
|
|
215
283
|
|
|
216
284
|
## Cost tool backend
|
|
217
285
|
|
|
@@ -228,7 +296,9 @@ available.
|
|
|
228
296
|
|
|
229
297
|
| Variable | Default | Purpose |
|
|
230
298
|
|----------|---------|---------|
|
|
231
|
-
| `PANTHEON_NODE` | `node` from `PATH` | Path to a Node.js >= 22.5 binary used
|
|
299
|
+
| `PANTHEON_NODE` | `node` from `PATH` | Path to a Node.js >= 22.5 binary used only for the `node:sqlite` capability in the CLI fallback; this is not the Pantheon package support floor. An explicit path must exist and be executable, otherwise the tool fails fast instead of ignoring the override |
|
|
300
|
+
|
|
301
|
+
Tool interpretation matters: `pantheon_model status` reports configuration, not the model serving a completion. V2 manual model overrides are project-only; global override files are neither read nor applied, and global mutation is unsupported until a future surface can obtain separate explicit human authorization. V2 ignores static presets and applies only explicit per-agent project model/variant overrides, leaving the host default unchanged otherwise; V1 preset behavior remains legacy pending compatibility decisions. `pantheon_cost` is a rolling token aggregate, not a session-level or monetary cost report. See the [OpenCode plugin tool notes](docs/mcp-tools.md#opencode-plugin-tools) for details and measurement limits.
|
|
232
302
|
|
|
233
303
|
|
|
234
304
|
## Code-mode execution (explicit opt-in)
|
|
@@ -515,13 +585,10 @@ Key order does not matter.
|
|
|
515
585
|
One command keeps an existing installation current:
|
|
516
586
|
|
|
517
587
|
```bash
|
|
518
|
-
#
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
# With a global install, use the global bin (defaults to the beta channel):
|
|
524
|
-
pantheon-opencode update
|
|
588
|
+
# Install globally first; update refuses local, workspace, and npx copies.
|
|
589
|
+
npm install -g pantheon-opencode@beta
|
|
590
|
+
pantheon-opencode update # npm beta channel + config refresh
|
|
591
|
+
pantheon-opencode update --stable # stable channel instead
|
|
525
592
|
```
|
|
526
593
|
|
|
527
594
|
`update` compares your installed version with the npm dist-tag, runs
|
|
@@ -550,23 +617,35 @@ Two freshness guarantees back it up:
|
|
|
550
617
|
current package.
|
|
551
618
|
|
|
552
619
|
`init` also gained `--components agents,skills,...` (narrow install),
|
|
553
|
-
`--clean` (alias of `--force`), `--opencode-version auto`,
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
`
|
|
620
|
+
`--clean` (alias of `--force`), `--opencode-version auto`, preflight checks for
|
|
621
|
+
python3/npm before any file is written, and a non-fatal Python runtime: if the
|
|
622
|
+
venv fails, the install completes but MCP entries are omitted (with a warning)
|
|
623
|
+
instead of pointing at a broken interpreter. Before the first modifying write,
|
|
624
|
+
`init` preserves, byte-for-byte, every regular file it can modify or remove
|
|
625
|
+
inside the config dir (including files a `--clean` run deletes) under
|
|
626
|
+
`.pantheon/backups/<timestamp>/` (directory `0700`, files `0600`, kept 5 deep);
|
|
627
|
+
bulk directories
|
|
628
|
+
(`.venv`, the plugin's `node_modules`) and out-of-target global files
|
|
629
|
+
(`tui.json` copies elsewhere, the global `opencode-vision.json`) are listed in
|
|
630
|
+
the manifest as `notRevertible` rather than silently omitted. The exact-set
|
|
631
|
+
warning is printed once and never echoes file contents. Restore with
|
|
632
|
+
`pantheon-opencode restore [--project] [--yes]` (the old `opencode.json.bak`
|
|
633
|
+
sidecar is gone; the global vision config keeps its own `.bak`). Installer
|
|
634
|
+
messages auto-detect pt-BR via `LANG`/`LC_ALL`.
|
|
559
635
|
|
|
560
636
|
## Migrating to 1.5.x (from 1.4.x)
|
|
561
637
|
|
|
562
638
|
1.5.0 removed the custom `pantheon_delegate` tool (and the V1 delegation
|
|
563
|
-
engine) in favor of
|
|
564
|
-
[Delegation (
|
|
639
|
+
engine) in favor of the host child-session engine; see
|
|
640
|
+
[Delegation (`subagent` / host API `task()`)](#delegation-root-subagent-hostapi-task). In the
|
|
641
|
+
reported Beta 10 runtime Zeus dispatches through `subagent`; `task()` remains
|
|
642
|
+
host/API terminology, not a guaranteed root tool. Two things change on
|
|
565
643
|
an existing install:
|
|
566
644
|
|
|
567
645
|
1. **The tool disappears from the plugin surface.** `pantheon_delegate` is no
|
|
568
646
|
longer registered by `src/plugin.ts` or `src/plugin-v2.ts`. Agents now
|
|
569
|
-
delegate through
|
|
647
|
+
delegate through the dispatch tool actually exposed by the active runtime —
|
|
648
|
+
no Pantheon-specific delegation tool configuration is needed.
|
|
570
649
|
2. **A lockfile-pinned copy can keep the old tool alive.** `npm install` is
|
|
571
650
|
lockfile-authoritative: a `package-lock.json` pinned to `1.4.1` (which
|
|
572
651
|
satisfies `^1.4.1`) is never re-resolved, so a project's
|
|
@@ -811,7 +890,7 @@ or whole-file binary classification. The host-backed evidence is in
|
|
|
811
890
|
|
|
812
891
|
`npm run coverage:plugin-v2` runs the `tests/pantheon/*.test.ts` suite with
|
|
813
892
|
Node's source-mapped native coverage and enforces an 80% line-coverage minimum
|
|
814
|
-
for `src/plugin-v2.ts` only. It requires Node
|
|
893
|
+
for `src/plugin-v2.ts` only. It requires Node `>=26.4.0`; branch and function
|
|
815
894
|
coverage are reported but are not gates. This is not a repository-wide coverage
|
|
816
895
|
claim.
|
|
817
896
|
|
|
@@ -839,13 +918,18 @@ with the other.
|
|
|
839
918
|
|
|
840
919
|
### Task-result guard
|
|
841
920
|
|
|
842
|
-
A `task-result-guard` intercepts
|
|
843
|
-
child session returns an empty or missing result.
|
|
921
|
+
A `task-result-guard` intercepts host/API child-session dispatch calls where the
|
|
922
|
+
child session returns an empty or missing result. In the reported Beta 10 Zeus
|
|
923
|
+
root, dispatch is exposed as `subagent`; host/API `task()` terminology does not
|
|
924
|
+
guarantee a root tool by that name. Instead of surfacing a silent
|
|
844
925
|
`completed` with no payload (which confuses the orchestrator), the guard now
|
|
845
926
|
raises an explicit error. This catches the common free-tier failure mode where a
|
|
846
927
|
child session exceeds the uncached-prefill token budget (`BackendAdmissionRejected`)
|
|
847
|
-
and returns nothing.
|
|
848
|
-
|
|
928
|
+
and returns nothing. Background dispatch and status/fan-in facilities are
|
|
929
|
+
runtime-dependent. The reported Beta 10 Zeus root did not expose `task_status`;
|
|
930
|
+
use synchronous `subagent` dispatch or wait for a host-provided completion
|
|
931
|
+
notification when no status tool is visible. Do not claim deterministic fan-in
|
|
932
|
+
or job recovery without an exposed, verified mechanism.
|
|
849
933
|
|
|
850
934
|
|
|
851
935
|
## Configuration (environment variables)
|
package/README.pt-BR.md
CHANGED
|
@@ -31,7 +31,9 @@ de planejar o trabalho, avançar, conferir resultados e preservar o contexto
|
|
|
31
31
|
|
|
32
32
|
## Comece em 2 minutos
|
|
33
33
|
|
|
34
|
-
Requisitos: [OpenCode 1.18.4+](https://opencode.ai/docs/) e Node.js
|
|
34
|
+
Requisitos: [OpenCode 1.18.4+](https://opencode.ai/docs/) e Node.js `>=26.4.0` para a CLI, o instalador e as ferramentas Node do Pantheon. Node 22, Node 24 e Node 26.0–26.3 não são compatíveis com esta versão.
|
|
35
|
+
|
|
36
|
+
Esse requisito do pacote não significa que todo host OpenCode execute Node: o OpenCode V2.0.31 oficial oferece um caminho de runtime Bun e um build Node separado fixado em Node 26.4.0. Não há aqui um requisito mínimo para Bun. O backend SQLite opcional de `pantheon_cost` tem um limite de capacidade distinto (`node:sqlite` requer Node >=22.5), que não reduz o requisito de suporte do pacote.
|
|
35
37
|
|
|
36
38
|
No projeto em que você quer usar o Pantheon:
|
|
37
39
|
|
|
@@ -75,8 +77,7 @@ verificações repetíveis e passagens claras entre etapas do trabalho.
|
|
|
75
77
|
|
|
76
78
|
## Status
|
|
77
79
|
|
|
78
|
-
Versão operacional neste checkout: **v1.6.0-beta.
|
|
79
|
-
com OpenCode 2; esta página não afirma publicação). O Pantheon foi feito para OpenCode e depende da
|
|
80
|
+
Versão operacional neste checkout: **v1.6.0-beta.12** (esta página não afirma publicação). O Pantheon foi feito para OpenCode e depende da
|
|
80
81
|
disponibilidade e da configuração do OpenCode e dos serviços opcionais que você
|
|
81
82
|
escolher. Veja as [releases](https://github.com/ils15/pantheon-opencode/releases)
|
|
82
83
|
e o [changelog](CHANGELOG.md) para acompanhar as mudanças publicadas.
|
|
@@ -536,7 +537,7 @@ anteriores foram preservadas separadamente em
|
|
|
536
537
|
|
|
537
538
|
`npm run coverage:plugin-v2` executa a suíte `tests/pantheon/*.test.ts` com a
|
|
538
539
|
cobertura nativa do Node habilitada para source maps e exige pelo menos 80% de
|
|
539
|
-
cobertura de linhas somente para `src/plugin-v2.ts`. Requer Node
|
|
540
|
+
cobertura de linhas somente para `src/plugin-v2.ts`. Requer Node `>=26.4.0`;
|
|
540
541
|
coberturas de branches e funções são informativas, não gates. Isso não é uma
|
|
541
542
|
alegação de cobertura do repositório inteiro.
|
|
542
543
|
|