trantor 0.18.4 → 0.18.5

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "trantor",
3
- "version": "0.18.4",
3
+ "version": "0.18.5",
4
4
  "description": "Trantor \u2014 the hub-world for AI agent crews: live message bus, presence, project Kanban/flow board + crew orchestration for independent AI coding agents (Claude, Codex, Gemini, Kimi, DeepSeek)",
5
5
  "mcpServers": {
6
6
  "relay": {
package/bin/doctor.mjs CHANGED
@@ -152,7 +152,7 @@ if (!installed) warn("no crew CLIs found", "install at least one of: codex, gemi
152
152
  // 2. ~/.agent-bus/.env — the CREW layer (seats: opencode/deepseek/openrouter/dsh)
153
153
  // 3. ~/.token-scrooge/.env — the SCROOGE layer (cheap-model grunt routing)
154
154
  section("provider keys (who spends on what)");
155
- const KEY_VARS = ["DEEPSEEK_API_KEY", "OPENROUTER_API_KEY", "MOONSHOT_API_KEY", "ZAI_API_KEY", "OPENAI_API_KEY", "GEMINI_API_KEY", "XAI_API_KEY"];
155
+ const KEY_VARS = ["DEEPSEEK_API_KEY", "OPENROUTER_API_KEY", "MOONSHOT_API_KEY", "ZAI_API_KEY", "OPENAI_API_KEY", "GEMINI_API_KEY", "XAI_API_KEY", "INCEPTION_API_KEY"];
156
156
  // Only some of these are a CREW credential. A seat that authenticates through its own config never
157
157
  // reads the env var at all, so a shared value there costs nothing and flagging it is noise:
158
158
  // glm → opencode.json provider["zai-coding-plan"].options.apiKey (and a coding plan is flat
@@ -164,7 +164,15 @@ const KEY_VARS = ["DEEPSEEK_API_KEY", "OPENROUTER_API_KEY", "MOONSHOT_API_KEY",
164
164
  // which is how a doctor becomes something you skip.
165
165
  const OPENCODE_CFG = read(join(H, ".config", "opencode", "opencode.json")) || {};
166
166
  const SEAT_ENV_VARS = { DEEPSEEK_API_KEY: "deepseek", OPENROUTER_API_KEY: "openrouter" };
167
+ const ENV_TEMPLATE = /\{env:([A-Z0-9_]+)\}/;
168
+ // Every var any opencode provider resolves from the environment, read out of opencode's own config.
169
+ const opencodeEnvVars = new Set();
170
+ for (const cfg of Object.values(OPENCODE_CFG?.provider || {})) {
171
+ const m = ENV_TEMPLATE.exec(String(cfg?.options?.apiKey || ""));
172
+ if (m) opencodeEnvVars.add(m[1]);
173
+ }
167
174
  const crewUsesVar = (v) => {
175
+ if (opencodeEnvVars.has(v)) return true; // a seat resolves this var at run time — stated by the config itself
168
176
  const provider = SEAT_ENV_VARS[v];
169
177
  if (!provider) return false;
170
178
  const configured = OPENCODE_CFG?.provider?.[provider]?.options?.apiKey;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "trantor",
3
- "version": "0.18.4",
3
+ "version": "0.18.5",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "trantor": "bin/cli.mjs"