clay-server 3.4.0-beta.1 → 3.4.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
@@ -6,13 +6,13 @@ var instructions = require("./instructions");
6
6
  var vendorRegistry = require("./vendor-registry");
7
7
  var createClaudeAdapter = require("./adapters/claude").createClaudeAdapter;
8
8
  var createCodexAdapter = require("./adapters/codex").createCodexAdapter;
9
- var createGeminiAdapter = require("./adapters/gemini").createGeminiAdapter;
9
+ var createAntigravityAdapter = require("./adapters/antigravity").createAntigravityAdapter;
10
10
  var createOpenCodeAdapter = require("./adapters/opencode").createOpenCodeAdapter;
11
11
  var createKiroAdapter = require("./adapters/kiro").createKiroAdapter;
12
12
 
13
13
  // Keep the first session in a new project predictable. This order is also
14
14
  // used by the UI when a project has no remembered vendor yet.
15
- var DEFAULT_VENDOR_ORDER = ["claude", "codex", "gemini", "opencode", "kiro"];
15
+ var DEFAULT_VENDOR_ORDER = ["claude", "codex", "antigravity", "opencode", "kiro"];
16
16
 
17
17
  function resolveDefaultVendor(availableVendors) {
18
18
  availableVendors = availableVendors || {};
@@ -73,8 +73,8 @@ function createAdapter(opts) {
73
73
  adapter = createClaudeAdapter(opts);
74
74
  } else if (vendor === "codex") {
75
75
  adapter = createCodexAdapter(opts);
76
- } else if (vendor === "gemini") {
77
- adapter = createGeminiAdapter(opts);
76
+ } else if (vendor === "antigravity") {
77
+ adapter = createAntigravityAdapter(opts);
78
78
  } else if (vendor === "opencode") {
79
79
  adapter = createOpenCodeAdapter(opts);
80
80
  } else if (vendor === "kiro") {
@@ -102,7 +102,7 @@ function logAuthCheck(auth) {
102
102
  if (_lastAuthLogKey === key && now - _lastAuthLogAt < 30000) return;
103
103
  _lastAuthLogKey = key;
104
104
  _lastAuthLogAt = now;
105
- console.log("[yoke] Auth check: claude=" + auth.claude + " codex=" + auth.codex + " gemini=" + auth.gemini + " opencode=" + auth.opencode + " kiro=" + auth.kiro);
105
+ console.log("[yoke] Auth check: claude=" + auth.claude + " codex=" + auth.codex + " antigravity=" + auth.antigravity + " opencode=" + auth.opencode + " kiro=" + auth.kiro);
106
106
  }
107
107
 
108
108
  function checkAuth() {
@@ -236,7 +236,7 @@ function checkAuth() {
236
236
  _authCache = {
237
237
  claude: checkClaude(),
238
238
  codex: checkCodex(),
239
- gemini: !!lookupBinary("gemini"),
239
+ antigravity: !!lookupBinary("agy"),
240
240
  opencode: !!lookupBinary("opencode"),
241
241
  kiro: checkKiro(),
242
242
  };
@@ -261,7 +261,7 @@ function checkInstalled() {
261
261
 
262
262
  var fs = require("fs");
263
263
  var execFileSync = require("child_process").execFileSync;
264
- var result = { claude: false, codex: false, gemini: false, opencode: false, kiro: false };
264
+ var result = { claude: false, codex: false, antigravity: false, opencode: false, kiro: false };
265
265
  try {
266
266
  if (process.platform === "win32") execFileSync("where", ["claude"], { timeout: 3000, stdio: ["pipe", "pipe", "pipe"] });
267
267
  else execFileSync("which", ["claude"], { timeout: 3000, stdio: ["pipe", "pipe", "pipe"] });
@@ -289,9 +289,14 @@ function checkInstalled() {
289
289
  if (whichOut.trim()) result.codex = true;
290
290
  }
291
291
  } catch (e) {}
292
+ try {
293
+ var antigravityBinary = process.platform === "win32"
294
+ ? execFileSync("where", ["agy"], { timeout: 3000, encoding: "utf8", stdio: ["pipe", "pipe", "pipe"] })
295
+ : execFileSync("which", ["agy"], { timeout: 3000, encoding: "utf8", stdio: ["pipe", "pipe", "pipe"] });
296
+ result.antigravity = !!antigravityBinary.trim();
297
+ } catch (e) {}
292
298
  try {
293
299
  var acpProfiles = require("./acp-agent-profiles");
294
- result.gemini = !!acpProfiles.findAcpAgentPath(acpProfiles.getAcpAgentProfile("gemini"));
295
300
  result.opencode = !!acpProfiles.findAcpAgentPath(acpProfiles.getAcpAgentProfile("opencode"));
296
301
  } catch (e) {}
297
302
  _installedCache = result;
@@ -318,7 +323,7 @@ function createAdapters(opts) {
318
323
  // that `claude auth status` does not always detect. Runtime auth failures are
319
324
  // handled downstream via query-level error detection.
320
325
  var installed = checkInstalled();
321
- var auth = { claude: false, codex: false, gemini: false, opencode: false, kiro: false };
326
+ var auth = { claude: false, codex: false, antigravity: false, opencode: false, kiro: false };
322
327
  var adapters = {};
323
328
 
324
329
  function supportsConfiguredIsolation(vendor) {
@@ -353,20 +358,20 @@ function createAdapters(opts) {
353
358
  }
354
359
  }
355
360
 
356
- var acpVendors = ["gemini", "opencode"];
357
- for (var acpIndex = 0; acpIndex < acpVendors.length; acpIndex++) {
358
- var acpVendor = acpVendors[acpIndex];
359
- var acpInfo = vendorRegistry.getVendorInfo(acpVendor);
360
- if (installed[acpVendor] && supportsConfiguredIsolation(acpVendor)) {
361
+ var subprocessVendors = ["antigravity", "opencode"];
362
+ for (var subprocessIndex = 0; subprocessIndex < subprocessVendors.length; subprocessIndex++) {
363
+ var subprocessVendor = subprocessVendors[subprocessIndex];
364
+ var subprocessInfo = vendorRegistry.getVendorInfo(subprocessVendor);
365
+ if (installed[subprocessVendor] && supportsConfiguredIsolation(subprocessVendor)) {
361
366
  try {
362
- adapters[acpVendor] = createAdapter({ vendor: acpVendor, cwd: opts.cwd, slug: opts.slug });
363
- auth[acpVendor] = true;
364
- console.log("[yoke] Adapter created: " + acpVendor);
367
+ adapters[subprocessVendor] = createAdapter({ vendor: subprocessVendor, cwd: opts.cwd, slug: opts.slug });
368
+ auth[subprocessVendor] = true;
369
+ console.log("[yoke] Adapter created: " + subprocessVendor);
365
370
  } catch (e) {
366
- console.error("[yoke] Failed to create adapter for " + acpVendor + ":", e.message);
371
+ console.error("[yoke] Failed to create adapter for " + subprocessVendor + ":", e.message);
367
372
  }
368
- } else if (installed[acpVendor] && opts.osUsers) {
369
- console.log("[yoke] " + acpInfo.displayName + " adapter disabled: OS-user isolation requires per-user spawning");
373
+ } else if (installed[subprocessVendor] && opts.osUsers) {
374
+ console.log("[yoke] " + subprocessInfo.displayName + " adapter disabled: OS-user isolation requires per-user spawning");
370
375
  }
371
376
  }
372
377
 
@@ -40,13 +40,13 @@ var VENDOR_REGISTRY = {
40
40
  },
41
41
  rateLimitTracking: true,
42
42
  },
43
- gemini: {
44
- displayName: "Gemini CLI",
45
- loginCommand: "gemini",
46
- binaryName: "gemini",
47
- avatar: "/gemini-avatar.svg",
43
+ antigravity: {
44
+ displayName: "Antigravity CLI",
45
+ loginCommand: "agy",
46
+ binaryName: "agy",
47
+ avatar: "/antigravity-avatar.png",
48
48
  sessionModes: ["gui"],
49
- effortLevels: [],
49
+ effortLevels: ["low", "medium", "high"],
50
50
  osUserIsolation: false,
51
51
  usageDashboard: null,
52
52
  rateLimitTracking: false,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clay-server",
3
- "version": "3.4.0-beta.1",
3
+ "version": "3.4.0-beta.3",
4
4
  "description": "Self-hosted team workspace for Claude Code and Codex. Multi-user, browser-based, with persistent AI mates.",
5
5
  "bin": {
6
6
  "clay-server": "./bin/cli.js",
@@ -1,11 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="Gemini CLI">
2
- <defs>
3
- <linearGradient id="g" x1="8" y1="56" x2="56" y2="8" gradientUnits="userSpaceOnUse">
4
- <stop stop-color="#4f7cff"/>
5
- <stop offset="0.5" stop-color="#9b5cff"/>
6
- <stop offset="1" stop-color="#ff65b3"/>
7
- </linearGradient>
8
- </defs>
9
- <rect width="64" height="64" rx="16" fill="#10131d"/>
10
- <path d="M32 8c2.3 14.1 9.9 21.7 24 24-14.1 2.3-21.7 9.9-24 24-2.3-14.1-9.9-21.7-24-24 14.1-2.3 21.7-9.9 24-24Z" fill="url(#g)"/>
11
- </svg>
@@ -1,7 +0,0 @@
1
- var createAcpAdapter = require("./acp").createAcpAdapter;
2
-
3
- function createGeminiAdapter(opts) {
4
- return createAcpAdapter("gemini", opts);
5
- }
6
-
7
- module.exports = { createGeminiAdapter: createGeminiAdapter };