pantheon-opencode 1.6.0-beta.1 → 1.6.0-beta.11

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.
Files changed (133) hide show
  1. package/AGENTS.global.md +206 -0
  2. package/AGENTS.md +10 -891
  3. package/CHANGELOG.md +350 -0
  4. package/README.md +561 -52
  5. package/README.pt-BR.md +285 -20
  6. package/bin/pantheon-init.mjs +70 -4
  7. package/commands/pantheon-audit.md +7 -1
  8. package/commands/pantheon-consolidate.md +1 -1
  9. package/commands/pantheon-deepwork.md +14 -3
  10. package/commands/pantheon-focus.md +17 -0
  11. package/commands/pantheon-vision.md +61 -12
  12. package/package.json +24 -17
  13. package/plugin.json +2 -2
  14. package/pyproject.toml +8 -6
  15. package/scripts/build-agents-md.mjs +428 -56
  16. package/scripts/changelog-merge.mjs +161 -0
  17. package/scripts/{code_mode_server.py → code_mode.py} +3 -3
  18. package/scripts/cost.mjs +244 -41
  19. package/scripts/doctor.mjs +151 -1
  20. package/scripts/install/agents-md.mjs +4 -4
  21. package/scripts/install/backup.mjs +475 -0
  22. package/scripts/install/cli-ui.mjs +6 -1
  23. package/scripts/install/config-migration.mjs +317 -4
  24. package/scripts/install/exit-codes.mjs +26 -0
  25. package/scripts/install/health-check.mjs +21 -19
  26. package/scripts/install/interactive.mjs +16 -2
  27. package/scripts/install/migrate.mjs +41 -22
  28. package/scripts/install/opencode-version.mjs +246 -4
  29. package/scripts/install/opencode.mjs +1175 -215
  30. package/scripts/install/plan.mjs +287 -0
  31. package/scripts/install/plugin.mjs +62 -14
  32. package/scripts/install/shared.mjs +190 -48
  33. package/scripts/install/strings.mjs +20 -0
  34. package/scripts/install/venv.mjs +13 -3
  35. package/scripts/install/vision-prompt.mjs +171 -0
  36. package/scripts/install-mcp.mjs +28 -9
  37. package/scripts/{mcp_persistence_server.py → mcp_persistence.py} +52 -17
  38. package/{src/mcp/mcp_resources_server.py → scripts/mcp_resources.py} +2 -2
  39. package/scripts/{memory_mcp_server.py → memory_mcp.py} +2 -2
  40. package/scripts/probe-context-rehydrate.mjs +8 -2
  41. package/scripts/probe-pantheon-cost.mjs +71 -15
  42. package/scripts/prune.mjs +9 -3
  43. package/scripts/restore.mjs +222 -0
  44. package/scripts/run-node-tests.mjs +189 -0
  45. package/scripts/sync-artifacts.mjs +26 -13
  46. package/scripts/sync-tui.mjs +24 -3
  47. package/scripts/test-opencode-v2-sandbox.sh +180 -26
  48. package/scripts/validate-routing.mjs +3 -3
  49. package/scripts/validate-sandbox-install.mjs +138 -0
  50. package/scripts/versioning.mjs +13 -1
  51. package/scripts/vision-status.mjs +682 -0
  52. package/skills-lock.json +8 -8
  53. package/src/agents/aphrodite.md +20 -37
  54. package/src/agents/apollo.md +7 -3
  55. package/src/agents/athena.md +63 -35
  56. package/src/agents/demeter.md +8 -28
  57. package/src/agents/gaia.md +1 -1
  58. package/src/agents/hephaestus.md +10 -21
  59. package/src/agents/hermes.md +15 -38
  60. package/src/agents/iris.md +7 -1
  61. package/src/agents/mnemosyne.md +18 -54
  62. package/src/agents/nyx.md +1 -1
  63. package/src/agents/prometheus.md +16 -20
  64. package/src/agents/talos.md +10 -2
  65. package/src/agents/themis.md +5 -5
  66. package/src/agents/zeus.md +99 -172
  67. package/src/instructions/agent-return-format.instructions.md +34 -17
  68. package/src/instructions/backend-standards.instructions.md +2 -0
  69. package/src/instructions/frontend-standards.instructions.md +3 -1
  70. package/src/instructions/memory-protocol.instructions.md +12 -110
  71. package/src/instructions/test-economy.instructions.md +21 -0
  72. package/src/instructions/zeus-anti-stall.instructions.md +20 -67
  73. package/src/instructions/zeus-communication-rules.instructions.md +0 -1
  74. package/src/instructions/zeus-council-synthesis.instructions.md +31 -260
  75. package/src/instructions/zeus-memory-operations.instructions.md +30 -0
  76. package/src/instructions/zeus-timeout-retry.instructions.md +61 -89
  77. package/src/mcp/{code_mode_server.py → code_mode.py} +3 -3
  78. package/src/mcp/eval_store.py +2 -2
  79. package/src/mcp/{mcp_persistence_server.py → mcp_persistence.py} +52 -17
  80. package/{scripts/mcp_resources_server.py → src/mcp/mcp_resources.py} +2 -2
  81. package/src/mcp/{memory_mcp_server.py → memory_mcp.py} +2 -2
  82. package/src/mcp/{pantheon_vision_server.py → pantheon_vision.py} +286 -42
  83. package/src/mcp/requirements-mcp.txt +6 -4
  84. package/src/mcp/requirements-vision.txt +2 -2
  85. package/src/pantheon/cost-command.ts +403 -102
  86. package/src/pantheon/delegation-enforce.ts +10 -1
  87. package/src/pantheon/model-agents.ts +19 -0
  88. package/src/pantheon/model-command.ts +218 -56
  89. package/src/pantheon/presets.d.mts +0 -8
  90. package/src/pantheon/presets.mjs +5 -32
  91. package/src/pantheon/v2-bounded-read.ts +640 -0
  92. package/src/pantheon/v2-delegation-enforce.ts +214 -0
  93. package/src/pantheon/v2-execute-after.ts +186 -0
  94. package/src/pantheon/v2-model-overrides.ts +275 -0
  95. package/src/pantheon/v2-tools.ts +418 -0
  96. package/src/pantheon/v2-unsupported.d.mts +11 -0
  97. package/src/pantheon/v2-unsupported.mjs +90 -0
  98. package/src/pantheon/v2-vision.ts +622 -0
  99. package/src/pantheon/vision-local.ts +531 -0
  100. package/src/pantheon/vision.ts +1160 -115
  101. package/src/plugin-v2.ts +1158 -219
  102. package/src/plugin.ts +12 -9
  103. package/src/plugins/tui/dist/server.d.ts +1 -2
  104. package/src/plugins/tui/dist/server.d.ts.map +1 -1
  105. package/src/plugins/tui/dist/tui-v2.d.ts +154 -0
  106. package/src/plugins/tui/dist/tui-v2.d.ts.map +1 -0
  107. package/src/plugins/tui/dist/tui-v2.js +659 -0
  108. package/src/plugins/tui/dist/tui-v2.js.map +1 -0
  109. package/src/plugins/tui/dist/tui.d.ts +85 -82
  110. package/src/plugins/tui/dist/tui.d.ts.map +1 -1
  111. package/src/plugins/tui/dist/tui.js +72 -59
  112. package/src/plugins/tui/index-v2.ts +6 -0
  113. package/src/plugins/tui/package-lock.json +5516 -1353
  114. package/src/plugins/tui/package.json +22 -12
  115. package/src/plugins/tui/src/index-v2.tsx +734 -0
  116. package/src/plugins/tui/src/index.tsx +106 -85
  117. package/src/plugins/tui/src/opencode-v2.d.ts +13 -0
  118. package/src/plugins/tui/tsconfig.build.json +5 -0
  119. package/src/plugins/tui/tsconfig.typecheck.json +5 -0
  120. package/src/plugins/tui/tsdown.config.ts +22 -2
  121. package/src/plugins/tui/tui-v2.ts +2 -0
  122. package/src/plugins/tui/tui.ts +3 -0
  123. package/src/routing.yml +11 -21
  124. package/src/skills/README.md +3 -3
  125. package/src/skills/agent-coordination/SKILL.md +7 -2
  126. package/src/skills/artifact-management/SKILL.md +12 -5
  127. package/src/skills/auto-continue/SKILL.md +52 -35
  128. package/src/skills/code-review-checklist/SKILL.md +5 -5
  129. package/src/skills/context-compression/SKILL.md +26 -879
  130. package/src/skills/session-goal/SKILL.md +14 -5
  131. package/src/skills/spec-driven-development/SKILL.md +3 -1
  132. package/src/skills/tdd-with-agents/SKILL.md +18 -10
  133. package/opencode.json +0 -58
@@ -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`, provider entries
18
- `opencode-go` then `opencode`) via `readOpencodeAuthToken`.
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 (`PANTHEON_OPENCODE_API_KEY` / `OPENCODE_API_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
- - Read the current config file if present (project `.opencode/opencode-vision.json`
27
- then user `~/.config/opencode/opencode-vision.json`).
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 key)
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:** e.g. `opencode-go/mimo-v2.5`, `opencode-go/minimax-m3`,
35
- or an explicit override (precedence: env `PANTHEON_VISION_MODEL` > config
36
- `visionModel` > active preset `vision.model` > default `opencode-go/mimo-v2.5`).
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
- - Default: project config `.opencode/opencode-vision.json`
43
- (merged with the user config `~/.config/opencode/opencode-vision.json`;
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,6 +1,6 @@
1
1
  {
2
2
  "name": "pantheon-opencode",
3
- "version": "1.6.0-beta.1",
3
+ "version": "1.6.0-beta.11",
4
4
  "description": "Multi-agent orchestration for OpenCode — 14 specialized agents, TDD, Themis review gates.",
5
5
  "type": "module",
6
6
  "workspaces": [
@@ -18,12 +18,12 @@
18
18
  "scripts": {
19
19
  "postinstall": "node scripts/postinstall.mjs && node scripts/sync-tui.mjs",
20
20
  "prepare": "husky",
21
- "setup": "node bin/pantheon-init.mjs init",
21
+ "setup": "node bin/pantheon-init.mjs init --yes",
22
22
  "build:agents-md": "node scripts/build-agents-md.mjs",
23
- "setup:lite": "node bin/pantheon-init.mjs init --clean --components agents,skills,instructions",
23
+ "setup:lite": "node bin/pantheon-init.mjs init --yes --clean --components agents,skills,instructions",
24
24
  "doctor": "node scripts/doctor.mjs",
25
25
  "prune": "node scripts/prune.mjs",
26
- "init": "node bin/pantheon-init.mjs init",
26
+ "init": "node bin/pantheon-init.mjs init --yes",
27
27
  "opencode": "OPENCODE_EXPERIMENTAL_BACKGROUND_SUBAGENTS=true opencode",
28
28
  "start": "OPENCODE_EXPERIMENTAL_BACKGROUND_SUBAGENTS=true opencode",
29
29
  "prepublishOnly": "node scripts/validate-routing.mjs",
@@ -41,11 +41,12 @@
41
41
  "hooks:install": "pre-commit install",
42
42
  "hooks:update": "pre-commit autoupdate",
43
43
  "test:security": "npm run secret-scan",
44
- "test:node": "node --test 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 --test --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",
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
46
  "coverage:plugin-v2": "node scripts/check-plugin-v2-coverage.mjs",
47
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 --test tests/pantheon/plugin-v2-hook-canary.test.mjs",
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'",
49
50
  "test:all": "npm run test:ci && npm run test:node && npm run test:ts",
50
51
  "test": "npm run test:all",
51
52
  "test:ci": "python3 -m pytest -q --tb=short 2>&1"
@@ -74,8 +75,8 @@
74
75
  "!src/agents/README.md",
75
76
  "bin/*.mjs",
76
77
  "AGENTS.md",
78
+ "AGENTS.global.md",
77
79
  "CHANGELOG.md",
78
- "opencode.json",
79
80
  "src/mcp/*.py",
80
81
  "src/instructions/*.instructions.md",
81
82
  "src/mcp/*.mjs",
@@ -97,21 +98,27 @@
97
98
  "!**/*.pyc"
98
99
  ],
99
100
  "dependencies": {
100
- "@opencode-ai/plugin": "1.18.30",
101
- "js-yaml": "^4.3.2",
102
- "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"
103
105
  },
104
106
  "devDependencies": {
105
- "@biomejs/biome": "2.5.13",
106
- "@commitlint/cli": "21.2.2",
107
- "@commitlint/config-conventional": "21.2.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",
108
111
  "husky": "^9.1.7",
109
- "tsx": "4.23.13",
110
- "typescript": "6.0.3"
112
+ "tsx": "4.23.15",
113
+ "typescript": "7.0.2"
111
114
  },
112
115
  "overrides": {
113
- "rolldown": "1.2.0"
116
+ "@babel/core": "7.29.7",
117
+ "seroval": "1.6.8",
118
+ "solid-js": "1.9.12",
119
+ "rolldown": "1.2.7"
114
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.",
115
122
  "repository": {
116
123
  "type": "git",
117
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.6.0-beta.1",
4
+ "version": "1.6.0-beta.11",
5
5
  "displayName": "Pantheon",
6
- "description": "Conductor-Delegate orchestration platform with 14 specialized agents, 21 skills, and OpenCode support.",
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,7 +4,7 @@ build-backend = "setuptools.backends._legacy:_Backend"
4
4
 
5
5
  [project]
6
6
  name = "pantheon"
7
- version = "1.6.0-beta.1"
7
+ version = "1.6.0-beta.11"
8
8
  description = "Multi-agent orchestration framework"
9
9
  requires-python = ">=3.11"
10
10
  dependencies = []
@@ -16,6 +16,7 @@ dependencies = []
16
16
  testpaths = [
17
17
  "tests",
18
18
  "benchmarks/beta2/test_beta2.py",
19
+ "benchmarks/beta2/test_t1.py",
19
20
  ]
20
21
  asyncio_mode = "auto"
21
22
  addopts = "-v --tb=short"
@@ -39,15 +40,16 @@ select = ["E", "F", "W", "I", "N", "UP", "B", "SIM", "PL", "RUF", "C901"]
39
40
  "tests/test_memory_mcp_server.py" = ["PLC0415", "PLR2004"]
40
41
  # Existing public APIs and test fixtures are intentionally broad/simple; refactoring
41
42
  # them would be behavior-affecting rather than a mechanical lint correction.
42
- "scripts/code_mode_server.py" = ["PLR0913", "PLR0917"]
43
- "src/mcp/code_mode_server.py" = ["PLR0913", "PLR0917"]
44
- "scripts/mcp_persistence_server.py" = ["PLR0913", "PLR0917"]
45
- "src/mcp/mcp_persistence_server.py" = ["PLR0913", "PLR0917"]
46
- "scripts/memory_mcp_server.py" = ["C901"]
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"]
47
48
  "src/mcp/eval_store.py" = ["PLR2004"]
48
49
  "tests/test_code_mode_frontmatter.py" = ["PLR2004"]
49
50
  "tests/test_eval.py" = ["PLR2004"]
50
51
  "tests/test_mcp_persistence_server.py" = ["PLR2004"]
52
+ "benchmarks/beta2/test_t1.py" = ["PLR2004"]
51
53
 
52
54
  [tool.mypy]
53
55
  python_version = "3.11"