pantheon-opencode 1.5.2 → 1.6.0-beta.10
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/.pantheon/code-mode/README.md +4 -2
- package/.pantheon/code-mode/checkpoint_session.py +138 -102
- package/.pantheon/code-mode/compress-inline.py +102 -57
- package/.pantheon/code-mode/manifest.json +2 -8
- package/AGENTS.global.md +182 -0
- package/AGENTS.md +10 -891
- package/CHANGELOG.md +343 -0
- package/README.md +577 -79
- package/README.pt-BR.md +345 -60
- package/bin/pantheon-init.mjs +26 -3
- package/commands/pantheon-audit.md +7 -1
- package/commands/pantheon-consolidate.md +1 -1
- package/commands/pantheon-deepwork.md +14 -3
- package/commands/pantheon-focus.md +17 -0
- package/commands/pantheon-optimize.md +2 -2
- package/commands/pantheon-vision.md +61 -12
- package/package.json +30 -11
- package/plugin.json +2 -2
- package/pyproject.toml +11 -16
- package/scripts/build-agents-md.mjs +376 -58
- package/scripts/changelog-merge.mjs +161 -0
- package/scripts/check-plugin-v2-coverage.mjs +213 -0
- package/scripts/ci-validate-yaml.py +7 -5
- package/scripts/{code_mode_server.py → code_mode.py} +119 -27
- package/scripts/cost.mjs +244 -41
- package/scripts/doctor.mjs +236 -29
- package/scripts/install/agents-md.mjs +4 -4
- package/scripts/install/cli-ui.mjs +1 -1
- package/scripts/install/config-migration.mjs +319 -6
- package/scripts/install/health-check.mjs +26 -37
- package/scripts/install/interactive.mjs +7 -7
- package/scripts/install/migrate.mjs +1 -1
- package/scripts/install/opencode-version.mjs +246 -4
- package/scripts/install/opencode.mjs +627 -179
- package/scripts/install/plugin.mjs +43 -9
- package/scripts/install/shared.mjs +120 -12
- package/scripts/install/vision-prompt.mjs +161 -0
- package/scripts/install-mcp.mjs +28 -9
- package/scripts/{mcp_persistence_server.py → mcp_persistence.py} +392 -78
- package/{src/mcp/mcp_resources_server.py → scripts/mcp_resources.py} +2 -2
- package/scripts/{memory_mcp_server.py → memory_mcp.py} +372 -198
- package/scripts/postinstall.mjs +0 -7
- package/scripts/probe-context-rehydrate.mjs +36 -13
- package/scripts/probe-pantheon-cost.mjs +71 -15
- package/scripts/prune.mjs +2 -2
- package/scripts/run-node-tests.mjs +189 -0
- package/scripts/sync-artifacts.mjs +26 -13
- package/scripts/sync-tui.mjs +24 -3
- package/scripts/test-opencode-v2-sandbox.sh +1913 -0
- package/scripts/validate-routing.mjs +43 -3
- package/scripts/validate-sandbox-install.mjs +138 -0
- package/scripts/versioning.mjs +13 -1
- package/scripts/vision-status.mjs +682 -0
- package/skills-lock.json +15 -16
- package/src/agents/aphrodite.md +20 -37
- package/src/agents/apollo.md +7 -3
- package/src/agents/athena.md +63 -35
- package/src/agents/demeter.md +8 -28
- package/src/agents/gaia.md +1 -1
- package/src/agents/hephaestus.md +10 -21
- package/src/agents/hermes.md +15 -38
- package/src/agents/iris.md +1 -1
- package/src/agents/mnemosyne.md +23 -60
- package/src/agents/nyx.md +1 -1
- package/src/agents/prometheus.md +16 -20
- package/src/agents/talos.md +10 -2
- package/src/agents/themis.md +5 -5
- package/src/agents/zeus.md +99 -130
- package/src/instructions/agent-return-format.instructions.md +18 -3
- package/src/instructions/backend-standards.instructions.md +2 -0
- package/src/instructions/frontend-standards.instructions.md +3 -1
- package/src/instructions/memory-protocol.instructions.md +11 -110
- package/src/instructions/zeus-anti-stall.instructions.md +14 -61
- package/src/instructions/zeus-communication-rules.instructions.md +0 -1
- package/src/instructions/zeus-council-synthesis.instructions.md +32 -260
- package/src/instructions/zeus-memory-operations.instructions.md +26 -0
- package/src/instructions/zeus-timeout-retry.instructions.md +40 -87
- package/src/mcp/{code_mode_server.py → code_mode.py} +119 -27
- package/src/mcp/eval_store.py +2 -2
- package/src/mcp/mcp_codemap_module.py +559 -129
- package/src/mcp/{mcp_persistence_server.py → mcp_persistence.py} +392 -78
- package/{scripts/mcp_resources_server.py → src/mcp/mcp_resources.py} +2 -2
- package/src/mcp/{memory_mcp_server.py → memory_mcp.py} +373 -250
- package/src/mcp/{pantheon_vision_server.py → pantheon_vision.py} +396 -40
- package/src/mcp/requirements-mcp.txt +10 -6
- package/src/mcp/requirements-vision.txt +4 -2
- package/src/pantheon/cost-command.ts +399 -101
- package/src/pantheon/delegation-enforce.ts +10 -1
- package/src/pantheon/model-command.ts +18 -7
- package/src/pantheon/presets.d.mts +0 -8
- package/src/pantheon/presets.mjs +5 -32
- package/src/pantheon/todo-enforcer.ts +1 -1
- package/src/pantheon/v2-bounded-read.ts +640 -0
- package/src/pantheon/v2-delegation-enforce.ts +214 -0
- package/src/pantheon/v2-execute-after.ts +186 -0
- package/src/pantheon/v2-tools.ts +429 -0
- package/src/pantheon/v2-unsupported.d.mts +11 -0
- package/src/pantheon/v2-unsupported.mjs +90 -0
- package/src/pantheon/v2-vision.ts +622 -0
- package/src/pantheon/vision-local.ts +531 -0
- package/src/pantheon/vision.ts +1161 -116
- package/src/plugin-v2.ts +1244 -288
- package/src/plugin.ts +12 -9
- package/src/plugins/tui/dist/server.d.ts +1 -2
- package/src/plugins/tui/dist/server.d.ts.map +1 -1
- package/src/plugins/tui/dist/tui-v2.d.ts +154 -0
- package/src/plugins/tui/dist/tui-v2.d.ts.map +1 -0
- package/src/plugins/tui/dist/tui-v2.js +659 -0
- package/src/plugins/tui/dist/tui-v2.js.map +1 -0
- package/src/plugins/tui/dist/tui.d.ts +85 -82
- package/src/plugins/tui/dist/tui.d.ts.map +1 -1
- package/src/plugins/tui/dist/tui.js +72 -59
- package/src/plugins/tui/index-v2.ts +6 -0
- package/src/plugins/tui/package-lock.json +5504 -1341
- package/src/plugins/tui/package.json +25 -15
- package/src/plugins/tui/src/index-v2.tsx +734 -0
- package/src/plugins/tui/src/index.tsx +106 -85
- package/src/plugins/tui/src/opencode-v2.d.ts +13 -0
- package/src/plugins/tui/tsconfig.build.json +5 -0
- package/src/plugins/tui/tsconfig.typecheck.json +5 -0
- package/src/plugins/tui/tsdown.config.ts +22 -2
- package/src/plugins/tui/tui-v2.ts +2 -0
- package/src/plugins/tui/tui.ts +3 -0
- package/src/routing.yml +11 -22
- package/src/skills/README.md +34 -39
- package/src/skills/agent-coordination/SKILL.md +7 -2
- package/src/skills/artifact-management/SKILL.md +12 -5
- package/src/skills/auto-continue/SKILL.md +54 -95
- package/src/skills/code-review-checklist/SKILL.md +5 -5
- package/src/skills/context-compression/SKILL.md +26 -879
- package/src/skills/session-goal/SKILL.md +14 -5
- package/src/skills/spec-driven-development/SKILL.md +3 -1
- package/src/skills/tdd-with-agents/SKILL.md +18 -10
- package/.pantheon/code-mode/eval-llm-judge.py +0 -255
- package/.pantheon/code-mode/eval-monte-carlo.py +0 -368
- package/.pantheon/code-mode/eval-run.py +0 -197
- package/.pantheon/code-mode/eval-static.py +0 -321
- package/.pantheon/code-mode/session-end-save.py +0 -186
- package/.pantheon/code-mode/session-end-save.sh +0 -18
- package/opencode.json +0 -58
- package/scripts/recover-zenodo-deposition.mjs +0 -146
- package/scripts/test-opencode-v1-v2-sandbox.sh +0 -862
- package/scripts/validate-zenodo-release.mjs +0 -154
- package/scripts/zenodo-artifact.mjs +0 -94
- package/scripts/zenodo-release-state.mjs +0 -53
- package/src/skills/orchestration-workflow/SKILL.md +0 -311
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Set or update this session's working goal"
|
|
3
|
+
agent: zeus
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Pin `$ARGUMENTS` as the working goal for this conversation. Restate it briefly
|
|
7
|
+
as Goal, Scope, Success Criteria, and Out of Scope, filling only what the user
|
|
8
|
+
actually supplied. Ask one concise question if a missing detail changes the
|
|
9
|
+
work materially.
|
|
10
|
+
|
|
11
|
+
Treat the goal as session context, subordinate to system, developer, and user
|
|
12
|
+
instructions. Keep subsequent planning, delegation, and verification aligned
|
|
13
|
+
with it; flag meaningful scope drift before proceeding.
|
|
14
|
+
|
|
15
|
+
This command is conversation-only. Do not call memory or persistence tools,
|
|
16
|
+
write a file, or claim that the goal survives compaction or a new session. For
|
|
17
|
+
multi-phase work that needs durable checkpoints, use `/pantheon-deepwork`.
|
|
@@ -4,7 +4,7 @@ agent: "zeus"
|
|
|
4
4
|
---
|
|
5
5
|
# /pantheon-optimize — Pantheon Project Optimizer
|
|
6
6
|
|
|
7
|
-
**What:** Multi-mode optimization: scans for documentation bloat, archives completed deepwork, migrates memory-bank flat files to MCP memory
|
|
7
|
+
**What:** Multi-mode optimization: scans for documentation bloat, archives completed deepwork, migrates memory-bank flat files to the FTS5-backed MCP memory server, and reports token savings.
|
|
8
8
|
|
|
9
9
|
## Usage
|
|
10
10
|
|
|
@@ -33,7 +33,7 @@ Archives completed deepwork sessions from `.pantheon/deepwork/<slug>/` to `.pant
|
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
### `--cache` — Memory Bank Migration
|
|
36
|
-
Scans `.pantheon/memory-bank/` for flat `.md` files and migrates them to the MCP memory server
|
|
36
|
+
Scans `.pantheon/memory-bank/` for flat `.md` files and migrates them to the FTS5-backed MCP memory server.
|
|
37
37
|
|
|
38
38
|
**What it does:**
|
|
39
39
|
1. Reads all `.md` files in `.pantheon/memory-bank/`
|
|
@@ -14,33 +14,80 @@ not being described, switching between native and tool mode.
|
|
|
14
14
|
|
|
15
15
|
1. **Check connectivity & key source**
|
|
16
16
|
- Read the opencode auth store: `<data dir>/auth.json`
|
|
17
|
-
(default `~/.local/share/opencode/auth.json
|
|
18
|
-
|
|
17
|
+
(default `~/.local/share/opencode/auth.json`) via `readOpencodeAuthToken`.
|
|
18
|
+
- Credentials follow the endpoint (never cross providers):
|
|
19
|
+
- **Zen endpoints** (`opencode`, `opencode-go*`): the env keys
|
|
20
|
+
`PANTHEON_OPENCODE_API_KEY` / `OPENCODE_API_KEY` first, then the auth
|
|
21
|
+
store — the resolved provider entry first, then the legacy Zen entries
|
|
22
|
+
`opencode-go` then `opencode`.
|
|
23
|
+
- **Non-Zen endpoints** (e.g. discovered OpenAI-compatible providers):
|
|
24
|
+
ONLY that provider's own auth-store entry. The shared Zen env keys and
|
|
25
|
+
the legacy `opencode-go` / `opencode` entries are never attached to a
|
|
26
|
+
non-Zen base URL; absent an own credential the image falls through to
|
|
27
|
+
the tool→local chain.
|
|
19
28
|
- Report whether the user is connected (`opencode auth login`) or has an
|
|
20
|
-
env key
|
|
29
|
+
env key — for a non-Zen target, report the target provider's own entry.
|
|
21
30
|
- **Never log or echo the token itself** — only connected/not connected.
|
|
22
31
|
|
|
23
|
-
2. **Show current status**
|
|
32
|
+
2. **Show current status (mode + resolved target + origin)**
|
|
24
33
|
- Effective mode precedence: env `PANTHEON_VISION_MODE` > config file
|
|
25
34
|
`mode` > default `auto`.
|
|
26
|
-
-
|
|
27
|
-
|
|
35
|
+
- Resolved target + origin, in precedence order:
|
|
36
|
+
env `PANTHEON_VISION_MODEL` → config `visionModel` (project
|
|
37
|
+
`.opencode/opencode-vision.json`, then user
|
|
38
|
+
`~/.config/opencode/opencode-vision.json`) → active preset `vision.model`
|
|
39
|
+
→ **automatic discovery** in the host catalog (`GET /config/providers`)
|
|
40
|
+
→ built-in default.
|
|
41
|
+
- Resolve the installed helper first (do not assume the current project
|
|
42
|
+
contains Pantheon source). Check, in order:
|
|
43
|
+
`$OPENCODE_CONFIG_DIR/.opencode/scripts/`,
|
|
44
|
+
`$OPENCODE_CONFIG_DIR/scripts/`,
|
|
45
|
+
`${XDG_CONFIG_HOME:-$HOME/.config}/opencode/scripts/`,
|
|
46
|
+
`$HOME/.opencode/scripts/`, `.opencode/scripts/`, then
|
|
47
|
+
`$(npm root -g)/pantheon-opencode/scripts/`. Run the first existing
|
|
48
|
+
`vision-status.mjs` as `node "$helper" --dir="$PWD"` and show its output
|
|
49
|
+
(mode + target + origin). The same helper drives the picker with
|
|
50
|
+
`--list` (enumerate candidates) and `--set <provider/model>` (pin one).
|
|
51
|
+
- If the helper is missing, resolve inline with the same precedence and be
|
|
52
|
+
honest: discovery needs the live host catalog, so when no explicit model
|
|
53
|
+
is configured report `auto (resolved at session start)` and name the
|
|
54
|
+
fallback default — never invent a value.
|
|
28
55
|
|
|
29
56
|
3. **Ask what to set (interactive)**
|
|
30
57
|
- **Mode:** `native` | `tool` | `auto`
|
|
31
|
-
- `native` — describe images via the multimodal model directly (needs
|
|
58
|
+
- `native` — describe images via the multimodal model directly (needs a
|
|
59
|
+
usable credential for the resolved endpoint)
|
|
32
60
|
- `tool` — always use the MCP tool fallback (`imageAnalysisTool`)
|
|
33
61
|
- `auto` — try native first, fall back to the tool (default)
|
|
34
|
-
- **Vision model
|
|
35
|
-
|
|
36
|
-
`
|
|
62
|
+
- **Vision model — show the picker, do NOT make the user type blind.**
|
|
63
|
+
Run `node "$helper" --list --dir="$PWD"` and present its numbered list.
|
|
64
|
+
- **Read the `Source:` line out loud.** It is `host catalog`
|
|
65
|
+
(`capabilities.input.image`) when the live catalog is available, or
|
|
66
|
+
`heuristic` (`opencode models` + known vision families) otherwise — the
|
|
67
|
+
heuristic is a *guess*, so say so; never present it as certain.
|
|
68
|
+
- Each row shows `Access` (free/paid when the catalog reports cost) and
|
|
69
|
+
`Credential`. **`Credential: no` means the native path has no key for
|
|
70
|
+
that provider, so images degrade to the MCP tool fallback (which then
|
|
71
|
+
falls back to local metadata like EXIF/size) — that is expected, not an
|
|
72
|
+
error.** `yes (env|store)` means a key is present (never echo it).
|
|
73
|
+
- Let the user choose by **number** or type a `provider/model`. Then apply
|
|
74
|
+
it with `node "$helper" --set <provider/model> --dir="$PWD"` (add
|
|
75
|
+
`--global` to pin in the user config; default is the project config).
|
|
76
|
+
- If the list is empty, report the helper's `Source: none` reason (e.g.
|
|
77
|
+
`opencode models` unavailable) and let the user type the model manually.
|
|
78
|
+
- Precedence for the effective model is unchanged: env
|
|
79
|
+
`PANTHEON_VISION_MODEL` > config `visionModel` > active preset
|
|
80
|
+
`vision.model` > automatic discovery > default `opencode-go/mimo-v2.5`.
|
|
37
81
|
- **Tool fallback:** `imageAnalysisTool` (default
|
|
38
82
|
`pantheon_vision_vision_describe`). Bifrost is opt-in only when
|
|
39
83
|
explicitly selected here or through `PANTHEON_VISION_TOOL`.
|
|
40
84
|
|
|
41
85
|
4. **Save the config**
|
|
42
|
-
-
|
|
43
|
-
(
|
|
86
|
+
- The `--set` in step 3 already merged `visionModel` atomically
|
|
87
|
+
(`.bak` backup, existing keys preserved, corrupted JSON left untouched).
|
|
88
|
+
If the user typed a model instead of using `--set`, apply it the same way.
|
|
89
|
+
- Default target: project config `.opencode/opencode-vision.json`
|
|
90
|
+
(resolved alongside the user config `~/.config/opencode/opencode-vision.json`;
|
|
44
91
|
project wins on conflicts).
|
|
45
92
|
- `--global` → write to `~/.config/opencode/opencode-vision.json`.
|
|
46
93
|
- Shape:
|
|
@@ -65,3 +112,5 @@ not being described, switching between native and tool mode.
|
|
|
65
112
|
- Do NOT print tokens or auth.json contents.
|
|
66
113
|
- Do NOT overwrite existing config keys not being changed — merge.
|
|
67
114
|
- If the config file is corrupted JSON, warn and ask before overwriting.
|
|
115
|
+
- State the picker's `Source:` (catalog vs heuristic) honestly — a heuristic
|
|
116
|
+
list is a guess; never imply certainty about image capability.
|
package/package.json
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pantheon-opencode",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0-beta.10",
|
|
4
4
|
"description": "Multi-agent orchestration for OpenCode — 14 specialized agents, TDD, Themis review gates.",
|
|
5
5
|
"type": "module",
|
|
6
|
+
"workspaces": [
|
|
7
|
+
"src/plugins/tui"
|
|
8
|
+
],
|
|
6
9
|
"publishConfig": {
|
|
7
10
|
"access": "public",
|
|
8
11
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -38,8 +41,12 @@
|
|
|
38
41
|
"hooks:install": "pre-commit install",
|
|
39
42
|
"hooks:update": "pre-commit autoupdate",
|
|
40
43
|
"test:security": "npm run secret-scan",
|
|
41
|
-
"test:node": "node --test tests/*.mjs tests/pantheon/*.mjs",
|
|
44
|
+
"test:node": "node scripts/run-node-tests.mjs --label 'test:node' 'tests/*.mjs' 'tests/pantheon/*.mjs'",
|
|
45
|
+
"coverage": "echo 'Node coverage (report-only, NO threshold is enforced).' && echo 'Covers: the .mjs/.js modules under scripts/, src/ and bin/ that test:node exercises.' && echo 'Does NOT cover: test:ts (hand-rolled tsx loop, no node --test runner) and test:ci (pytest).' && echo ' TypeScript under src/ (41 files) is therefore entirely unmeasured here.' && echo '' && node scripts/run-node-tests.mjs --label 'coverage' -- --experimental-test-coverage --test-coverage-include='scripts/**/*.mjs' --test-coverage-include='src/**/*.mjs' --test-coverage-include='src/**/*.js' --test-coverage-include='bin/**/*.mjs' 'tests/*.mjs' 'tests/pantheon/*.mjs'",
|
|
46
|
+
"coverage:plugin-v2": "node scripts/check-plugin-v2-coverage.mjs",
|
|
42
47
|
"test:ts": "for f in tests/pantheon/*.test.ts; do if [ \"$f\" = tests/pantheon/plugin-v2-contract.test.ts ]; then NODE_OPTIONS=--conditions=import tsx \"$f\"; else tsx \"$f\"; fi || exit 1; done",
|
|
48
|
+
"test:hooks": "node scripts/run-node-tests.mjs --label 'test:hooks' 'tests/pantheon/plugin-v2-hook-canary.test.mjs'",
|
|
49
|
+
"test:tool-canary": "node scripts/run-node-tests.mjs --label 'test:tool-canary' 'tests/canary/plugin-v2-tool-canary.test.mjs'",
|
|
43
50
|
"test:all": "npm run test:ci && npm run test:node && npm run test:ts",
|
|
44
51
|
"test": "npm run test:all",
|
|
45
52
|
"test:ci": "python3 -m pytest -q --tb=short 2>&1"
|
|
@@ -68,8 +75,8 @@
|
|
|
68
75
|
"!src/agents/README.md",
|
|
69
76
|
"bin/*.mjs",
|
|
70
77
|
"AGENTS.md",
|
|
78
|
+
"AGENTS.global.md",
|
|
71
79
|
"CHANGELOG.md",
|
|
72
|
-
"opencode.json",
|
|
73
80
|
"src/mcp/*.py",
|
|
74
81
|
"src/instructions/*.instructions.md",
|
|
75
82
|
"src/mcp/*.mjs",
|
|
@@ -78,6 +85,9 @@
|
|
|
78
85
|
"src/routing.yml",
|
|
79
86
|
"src/pantheon/**",
|
|
80
87
|
".pantheon/code-mode/**",
|
|
88
|
+
"!.pantheon/code-mode/session-end-save.py",
|
|
89
|
+
"!.pantheon/code-mode/session-end-save.sh",
|
|
90
|
+
"!.pantheon/code-mode/eval-*.py",
|
|
81
91
|
"src/plugins/**",
|
|
82
92
|
"scripts/hooks/**",
|
|
83
93
|
"src/mcp/requirements*",
|
|
@@ -88,18 +98,27 @@
|
|
|
88
98
|
"!**/*.pyc"
|
|
89
99
|
],
|
|
90
100
|
"dependencies": {
|
|
91
|
-
"@opencode-ai/plugin": "1.18.
|
|
92
|
-
"js-yaml": "^4.
|
|
93
|
-
"zod": "4.1.8"
|
|
101
|
+
"@opencode-ai/plugin": "1.18.33",
|
|
102
|
+
"js-yaml": "^5.4.2",
|
|
103
|
+
"zod": "4.1.8",
|
|
104
|
+
"@opencode-ai/sdk": "1.18.33"
|
|
94
105
|
},
|
|
95
106
|
"devDependencies": {
|
|
96
|
-
"@biomejs/biome": "2.5.
|
|
97
|
-
"@commitlint/cli": "21.2.
|
|
98
|
-
"@commitlint/config-conventional": "21.2.
|
|
107
|
+
"@biomejs/biome": "2.5.14",
|
|
108
|
+
"@commitlint/cli": "21.2.3",
|
|
109
|
+
"@commitlint/config-conventional": "21.2.3",
|
|
110
|
+
"ajv": "8.20.0",
|
|
99
111
|
"husky": "^9.1.7",
|
|
100
|
-
"tsx": "4.23.
|
|
101
|
-
"typescript": "
|
|
112
|
+
"tsx": "4.23.15",
|
|
113
|
+
"typescript": "7.0.2"
|
|
114
|
+
},
|
|
115
|
+
"overrides": {
|
|
116
|
+
"@babel/core": "7.29.7",
|
|
117
|
+
"seroval": "1.6.8",
|
|
118
|
+
"solid-js": "1.9.12",
|
|
119
|
+
"rolldown": "1.2.7"
|
|
102
120
|
},
|
|
121
|
+
"//overrides": "TUI production advisory fixes: Babel >=7.29.6 and Seroval >=1.6.3; Solid stays at 1.9.12 to satisfy OpenTUI's exact peer. Remove only after upstream ranges include fixed versions; Seroval compatibility is covered by the Solid serializer regression test.",
|
|
103
122
|
"repository": {
|
|
104
123
|
"type": "git",
|
|
105
124
|
"url": "https://github.com/ils15/pantheon-opencode.git"
|
package/plugin.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pantheon",
|
|
3
3
|
"publisher": "ils15",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.6.0-beta.10",
|
|
5
5
|
"displayName": "Pantheon",
|
|
6
|
-
"description": "Conductor-Delegate orchestration platform with 14 specialized agents,
|
|
6
|
+
"description": "Conductor-Delegate orchestration platform with 14 specialized agents, 20 skills, and OpenCode support.",
|
|
7
7
|
"agents": "./src/agents",
|
|
8
8
|
"skills": "./src/skills",
|
|
9
9
|
"instructions": "./src/instructions",
|
package/pyproject.toml
CHANGED
|
@@ -4,20 +4,19 @@ build-backend = "setuptools.backends._legacy:_Backend"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "pantheon"
|
|
7
|
-
version = "1.
|
|
7
|
+
version = "1.6.0-beta.10"
|
|
8
8
|
description = "Multi-agent orchestration framework"
|
|
9
9
|
requires-python = ">=3.11"
|
|
10
10
|
dependencies = []
|
|
11
11
|
|
|
12
12
|
[tool.pytest.ini_options]
|
|
13
|
-
# `tests/` holds the main suite; the
|
|
14
|
-
#
|
|
15
|
-
#
|
|
16
|
-
# rot as dead code.
|
|
13
|
+
# `tests/` holds the main suite; the entry below is an orphaned test module
|
|
14
|
+
# that lives next to the code it covers and is collected here so pytest (and
|
|
15
|
+
# therefore `npm test`) exercises it instead of letting it rot as dead code.
|
|
17
16
|
testpaths = [
|
|
18
17
|
"tests",
|
|
19
|
-
"scripts/vector_memory/test_memory.py",
|
|
20
18
|
"benchmarks/beta2/test_beta2.py",
|
|
19
|
+
"benchmarks/beta2/test_t1.py",
|
|
21
20
|
]
|
|
22
21
|
asyncio_mode = "auto"
|
|
23
22
|
addopts = "-v --tb=short"
|
|
@@ -28,7 +27,6 @@ target-version = "py311"
|
|
|
28
27
|
|
|
29
28
|
[tool.ruff.lint]
|
|
30
29
|
select = ["E", "F", "W", "I", "N", "UP", "B", "SIM", "PL", "RUF", "C901"]
|
|
31
|
-
ignore = ["E501"]
|
|
32
30
|
|
|
33
31
|
[tool.ruff.lint.per-file-ignores]
|
|
34
32
|
"__init__.py" = ["F401"]
|
|
@@ -36,25 +34,22 @@ ignore = ["E501"]
|
|
|
36
34
|
"scripts/ci-validate-yaml.py" = ["N999"]
|
|
37
35
|
"scripts/scrub-secrets.py" = ["N999"]
|
|
38
36
|
# These modules defer optional/heavy imports until the corresponding command is used.
|
|
39
|
-
"scripts/vector_memory/*.py" = ["PLC0415"]
|
|
40
37
|
"tests/test_code_mode_sandbox.py" = ["PLC0415", "N806"]
|
|
41
38
|
"tests/test_code_mode_server.py" = ["PLC0415"]
|
|
42
39
|
"tests/test_codemap_mcp.py" = ["PLC0415"]
|
|
43
40
|
"tests/test_memory_mcp_server.py" = ["PLC0415", "PLR2004"]
|
|
44
41
|
# Existing public APIs and test fixtures are intentionally broad/simple; refactoring
|
|
45
42
|
# them would be behavior-affecting rather than a mechanical lint correction.
|
|
46
|
-
"scripts/
|
|
47
|
-
"src/mcp/
|
|
48
|
-
"scripts/
|
|
49
|
-
"src/mcp/
|
|
50
|
-
"scripts/
|
|
51
|
-
"scripts/vector_memory/index.py" = ["C901", "PLR0913", "PLR2004", "PLW0603", "PLW2901"]
|
|
52
|
-
"scripts/vector_memory/cli.py" = ["PLR2004"]
|
|
53
|
-
"scripts/vector_memory/query.py" = ["PLR0913"]
|
|
43
|
+
"scripts/code_mode.py" = ["PLR0913", "PLR0917"]
|
|
44
|
+
"src/mcp/code_mode.py" = ["PLR0913", "PLR0917"]
|
|
45
|
+
"scripts/mcp_persistence.py" = ["PLR0913", "PLR0917"]
|
|
46
|
+
"src/mcp/mcp_persistence.py" = ["PLR0913", "PLR0917"]
|
|
47
|
+
"scripts/memory_mcp.py" = ["C901"]
|
|
54
48
|
"src/mcp/eval_store.py" = ["PLR2004"]
|
|
55
49
|
"tests/test_code_mode_frontmatter.py" = ["PLR2004"]
|
|
56
50
|
"tests/test_eval.py" = ["PLR2004"]
|
|
57
51
|
"tests/test_mcp_persistence_server.py" = ["PLR2004"]
|
|
52
|
+
"benchmarks/beta2/test_t1.py" = ["PLR2004"]
|
|
58
53
|
|
|
59
54
|
[tool.mypy]
|
|
60
55
|
python_version = "3.11"
|