pi-opium 0.4.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.4.1
4
+
5
+ - **Fix:** `/opium-doctor` no longer warns about the default `codegraph`,
6
+ `context7` and `gh_grep` servers when a `pi-mcp-adapter` config exists
7
+ without its metadata cache.
8
+ - Install guide: back up an existing `opium.json` first, keep a model
9
+ the user set by moving it into the preset, copy model ids exactly, and
10
+ tell the user when a provider still needs a sign-in.
11
+ - README installs from npm (`pi install npm:pi-opium`).
12
+
3
13
  ## 0.4.0
4
14
 
5
15
  Install by asking your agent, see every agent at work.
package/README.md CHANGED
@@ -45,7 +45,7 @@ checks the result.
45
45
  Or by hand:
46
46
 
47
47
  ```sh
48
- pi install git:github.com/akholod/pi-opium
48
+ pi install npm:pi-opium
49
49
  ```
50
50
 
51
51
  Start Pi (or `/reload` a running session) and keep working as usual. Every agent starts on your
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-opium",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "description": "Turn your Pi session into a small team: an orchestrator with background specialist agents and a multi-model council",
5
5
  "keywords": [
6
6
  "pi-package",
package/src/mcp.ts CHANGED
@@ -95,11 +95,14 @@ export const resolveMcpTools = (
95
95
  if (!existsSync(configPath)) return { tools, errors };
96
96
  const config = read(configPath, 'MCP config');
97
97
  if (typeof config === 'string') return { tools, errors: [config] };
98
- const cache = read(cachePath, 'MCP metadata cache');
99
- if (typeof cache === 'string') return { tools, errors: [cache] };
100
-
101
98
  const settings = isRecord(config.settings) ? config.settings : {};
102
99
  const defs = isRecord(config.mcpServers) ? config.mcpServers : {};
100
+ // the cache only matters for servers the config defines
101
+ if (!servers.some((server) => isRecord(defs[server]))) {
102
+ return { tools, errors };
103
+ }
104
+ const cache = read(cachePath, 'MCP metadata cache');
105
+ if (typeof cache === 'string') return { tools, errors: [cache] };
103
106
  const cached = isRecord(cache.servers) ? cache.servers : {};
104
107
  for (const server of servers) {
105
108
  const def = defs[server];