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/project-shell-command.js +160 -0
- package/lib/project-user-message.js +10 -0
- package/lib/project.js +13 -0
- package/lib/public/antigravity-avatar.png +0 -0
- package/lib/public/app.js +10 -0
- package/lib/public/css/input.css +63 -0
- package/lib/public/index.html +8 -3
- package/lib/public/modules/app-messages.js +16 -1
- package/lib/public/modules/app-panels.js +4 -4
- package/lib/public/modules/app-projects.js +2 -0
- package/lib/public/modules/app-rendering.js +4 -4
- package/lib/public/modules/input.js +58 -28
- package/lib/public/modules/mate-sidebar.js +3 -3
- package/lib/public/modules/shell-command.js +148 -0
- package/lib/public/modules/sidebar-mates.js +1 -1
- package/lib/public/modules/tools.js +1 -1
- package/lib/sdk-bridge.js +16 -8
- package/lib/sdk-message-processor.js +10 -1
- package/lib/ws-schema.js +3 -0
- package/lib/yoke/acp-agent-profiles.js +0 -14
- package/lib/yoke/adapters/antigravity.js +417 -0
- package/lib/yoke/index.js +25 -20
- package/lib/yoke/vendor-registry.js +6 -6
- package/package.json +1 -1
- package/lib/public/gemini-avatar.svg +0 -11
- package/lib/yoke/adapters/gemini.js +0 -7
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
|
|
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", "
|
|
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 === "
|
|
77
|
-
adapter =
|
|
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 + "
|
|
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
|
-
|
|
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,
|
|
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,
|
|
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
|
|
357
|
-
for (var
|
|
358
|
-
var
|
|
359
|
-
var
|
|
360
|
-
if (installed[
|
|
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[
|
|
363
|
-
auth[
|
|
364
|
-
console.log("[yoke] Adapter created: " +
|
|
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 " +
|
|
371
|
+
console.error("[yoke] Failed to create adapter for " + subprocessVendor + ":", e.message);
|
|
367
372
|
}
|
|
368
|
-
} else if (installed[
|
|
369
|
-
console.log("[yoke] " +
|
|
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
|
-
|
|
44
|
-
displayName: "
|
|
45
|
-
loginCommand: "
|
|
46
|
-
binaryName: "
|
|
47
|
-
avatar: "/
|
|
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,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>
|