clay-server 2.34.0-beta.2 → 2.34.0-beta.3

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/lib/yoke/index.js CHANGED
@@ -4,7 +4,6 @@
4
4
  var iface = require("./interface");
5
5
  var instructions = require("./instructions");
6
6
  var createClaudeAdapter = require("./adapters/claude").createClaudeAdapter;
7
- var createGeminiAdapter = require("./adapters/gemini").createGeminiAdapter;
8
7
  var createCodexAdapter = require("./adapters/codex").createCodexAdapter;
9
8
 
10
9
  /**
@@ -48,8 +47,6 @@ function createAdapter(opts) {
48
47
  var adapter;
49
48
  if (vendor === "claude") {
50
49
  adapter = createClaudeAdapter(opts);
51
- } else if (vendor === "gemini") {
52
- adapter = createGeminiAdapter(opts);
53
50
  } else if (vendor === "codex") {
54
51
  adapter = createCodexAdapter(opts);
55
52
  } else {
@@ -113,7 +110,31 @@ function checkAuth() {
113
110
  return false;
114
111
  }
115
112
 
113
+ function hasThirdPartyProviderAuth() {
114
+ // Claude Code supports third-party providers via env vars. When these are set,
115
+ // `claude auth status` reports "not logged in" because there is no OAuth session,
116
+ // but Claude Code itself authenticates directly through the provider.
117
+ var env = process.env;
118
+ if (env.CLAUDE_CODE_USE_BEDROCK === "1"
119
+ && (env.AWS_BEARER_TOKEN_BEDROCK
120
+ || env.AWS_ACCESS_KEY_ID
121
+ || env.AWS_PROFILE
122
+ || env.AWS_SESSION_TOKEN)) {
123
+ return "bedrock";
124
+ }
125
+ if (env.CLAUDE_CODE_USE_VERTEX === "1") return "vertex";
126
+ if (env.ANTHROPIC_API_KEY) return "api_key";
127
+ if (env.ANTHROPIC_AUTH_TOKEN) return "auth_token";
128
+ return null;
129
+ }
130
+
116
131
  function checkClaude() {
132
+ var provider = hasThirdPartyProviderAuth();
133
+ if (provider) {
134
+ console.log("[yoke] Claude auth via third-party provider: " + provider);
135
+ return true;
136
+ }
137
+
117
138
  try {
118
139
  var out = execSync("claude auth status --json", { timeout: 5000, encoding: "utf8", stdio: ["pipe", "pipe", "pipe"] });
119
140
  var parsed = parseClaudeAuthStatusJson(out);
@@ -159,7 +180,7 @@ function checkAuth() {
159
180
  }
160
181
  }
161
182
 
162
- _authCache = { claude: checkClaude(), codex: checkCodex(), gemini: false };
183
+ _authCache = { claude: checkClaude(), codex: checkCodex() };
163
184
  logAuthCheck(_authCache);
164
185
  return _authCache;
165
186
  }
@@ -213,19 +234,24 @@ function createAdapters(opts) {
213
234
  return { adapters: _sharedAdapters, auth: _sharedAuth };
214
235
  }
215
236
 
216
- var auth = checkAuth();
237
+ // Gate adapter creation on binary installation, not OAuth auth status.
238
+ // Claude Code supports multiple auth modes (OAuth, Bedrock, Vertex, API key)
239
+ // that `claude auth status` does not always detect. Runtime auth failures are
240
+ // handled downstream via query-level error detection.
241
+ var installed = checkInstalled();
242
+ var auth = { claude: false, codex: false };
217
243
  var adapters = {};
218
- var vendors = Object.keys(auth);
244
+ var vendors = Object.keys(installed);
219
245
 
220
246
  for (var i = 0; i < vendors.length; i++) {
221
247
  var vendor = vendors[i];
222
- if (!auth[vendor]) continue;
248
+ if (!installed[vendor]) continue;
223
249
  try {
224
250
  adapters[vendor] = createAdapter({ vendor: vendor, cwd: opts.cwd });
251
+ auth[vendor] = true;
225
252
  console.log("[yoke] Adapter created: " + vendor);
226
253
  } catch (e) {
227
254
  console.error("[yoke] Failed to create adapter for " + vendor + ":", e.message);
228
- auth[vendor] = false;
229
255
  }
230
256
  }
231
257
 
@@ -249,8 +275,8 @@ async function lazyCreateAdapter(adapters, vendor, opts) {
249
275
  invalidateAuthCache();
250
276
  _sharedAdapters = null;
251
277
  _sharedAuth = null;
252
- var auth = checkAuth();
253
- if (!auth[vendor]) return null;
278
+ var installed = checkInstalled();
279
+ if (!installed[vendor]) return null;
254
280
 
255
281
  try {
256
282
  var ad = createAdapter({ vendor: vendor, cwd: opts.cwd });
@@ -24,7 +24,6 @@ var KNOWN_FILES = [
24
24
  var NATIVE_FILES = {
25
25
  claude: ["CLAUDE.md"],
26
26
  codex: ["AGENTS.md"],
27
- gemini: [],
28
27
  };
29
28
 
30
29
  // Scan projectDir for instruction files and return merged text.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clay-server",
3
- "version": "2.34.0-beta.2",
3
+ "version": "2.34.0-beta.3",
4
4
  "description": "Self-hosted Claude Code in your browser. Multi-session, multi-user, push notifications.",
5
5
  "bin": {
6
6
  "clay-server": "./bin/cli.js",
@@ -37,7 +37,6 @@
37
37
  "author": "Chad",
38
38
  "dependencies": {
39
39
  "@anthropic-ai/claude-agent-sdk": "^0.2.112",
40
- "@google/genai": "^1.49.0",
41
40
  "@lydell/node-pty": "^1.2.0-beta.3",
42
41
  "@openai/codex": "^0.121.0",
43
42
  "imapflow": "^1.3.1",