@rynfar/meridian 1.73.0 → 1.75.0
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/README.md +119 -107
- package/assets/banner.svg +18 -43
- package/assets/how-it-works.svg +40 -86
- package/assets/providers/README.md +10 -0
- package/assets/providers/antigravity.png +0 -0
- package/assets/providers/claude.png +0 -0
- package/dist/antigravity-clients/opencode.js +173 -0
- package/dist/antigravity-clients/pi.js +21 -0
- package/dist/antigravitySetup-35pd5xqn.js +191 -0
- package/dist/{cli-2h3w5n6g.js → cli-0psmkhv5.js} +1 -1
- package/dist/{cli-p5zbk952.js → cli-e6rne560.js} +22229 -10618
- package/dist/{cli-p9ca4p13.js → cli-wbsmhxcx.js} +12 -3
- package/dist/cli.js +70 -32
- package/dist/{pluginPage-3kxsrdpj.js → pluginPage-pp72d2j8.js} +1 -1
- package/dist/{profileCli-1bfgc05h.js → profileCli-zz83nvq0.js} +1 -1
- package/dist/{profilePage-etxqg3vn.js → profilePage-vs319rvf.js} +1 -1
- package/dist/proxy/auth.d.ts +2 -0
- package/dist/proxy/auth.d.ts.map +1 -1
- package/dist/proxy/backends/antigravity.d.ts +8 -0
- package/dist/proxy/backends/antigravity.d.ts.map +1 -0
- package/dist/proxy/backends/antigravityAttachments.d.ts +16 -0
- package/dist/proxy/backends/antigravityAttachments.d.ts.map +1 -0
- package/dist/proxy/backends/antigravityGrammar.d.ts +12 -0
- package/dist/proxy/backends/antigravityGrammar.d.ts.map +1 -0
- package/dist/proxy/backends/antigravityJobs.d.ts +19 -0
- package/dist/proxy/backends/antigravityJobs.d.ts.map +1 -0
- package/dist/proxy/backends/antigravityMedia.d.ts +9 -0
- package/dist/proxy/backends/antigravityMedia.d.ts.map +1 -0
- package/dist/proxy/backends/antigravityNative.d.ts +8 -0
- package/dist/proxy/backends/antigravityNative.d.ts.map +1 -0
- package/dist/proxy/backends/antigravityOpenai.d.ts +9 -0
- package/dist/proxy/backends/antigravityOpenai.d.ts.map +1 -0
- package/dist/proxy/backends/antigravityOpenaiMedia.d.ts +9 -0
- package/dist/proxy/backends/antigravityOpenaiMedia.d.ts.map +1 -0
- package/dist/proxy/backends/antigravityPlugins.d.ts +41 -0
- package/dist/proxy/backends/antigravityPlugins.d.ts.map +1 -0
- package/dist/proxy/backends/antigravityProbe.d.ts +16 -0
- package/dist/proxy/backends/antigravityProbe.d.ts.map +1 -0
- package/dist/proxy/backends/antigravityProcess.d.ts +4 -0
- package/dist/proxy/backends/antigravityProcess.d.ts.map +1 -0
- package/dist/proxy/backends/antigravityProtocol.d.ts +582 -0
- package/dist/proxy/backends/antigravityProtocol.d.ts.map +1 -0
- package/dist/proxy/backends/antigravityReplay.d.ts +41 -0
- package/dist/proxy/backends/antigravityReplay.d.ts.map +1 -0
- package/dist/proxy/backends/antigravityResponses.d.ts +35 -0
- package/dist/proxy/backends/antigravityResponses.d.ts.map +1 -0
- package/dist/proxy/backends/antigravityRuntime.d.ts +189 -0
- package/dist/proxy/backends/antigravityRuntime.d.ts.map +1 -0
- package/dist/proxy/backends/antigravitySchema.d.ts +10 -0
- package/dist/proxy/backends/antigravitySchema.d.ts.map +1 -0
- package/dist/proxy/backends/antigravitySessions.d.ts +28 -0
- package/dist/proxy/backends/antigravitySessions.d.ts.map +1 -0
- package/dist/proxy/backends/antigravityState.d.ts +22 -0
- package/dist/proxy/backends/antigravityState.d.ts.map +1 -0
- package/dist/proxy/backends/antigravityStops.d.ts +10 -0
- package/dist/proxy/backends/antigravityStops.d.ts.map +1 -0
- package/dist/proxy/backends/antigravityTokens.d.ts +14 -0
- package/dist/proxy/backends/antigravityTokens.d.ts.map +1 -0
- package/dist/proxy/backends/antigravityUrl.d.ts +7 -0
- package/dist/proxy/backends/antigravityUrl.d.ts.map +1 -0
- package/dist/proxy/backends/providerStatus.d.ts +15 -0
- package/dist/proxy/backends/providerStatus.d.ts.map +1 -0
- package/dist/proxy/models.d.ts +1 -1
- package/dist/proxy/models.d.ts.map +1 -1
- package/dist/proxy/openai.d.ts +2 -0
- package/dist/proxy/openai.d.ts.map +1 -1
- package/dist/proxy/server.d.ts.map +1 -1
- package/dist/proxy/types.d.ts +32 -0
- package/dist/proxy/types.d.ts.map +1 -1
- package/dist/server.js +3 -3
- package/dist/telemetry/pricing.d.ts +2 -1
- package/dist/telemetry/pricing.d.ts.map +1 -1
- package/dist/telemetry/profileBar.d.ts +3 -3
- package/dist/telemetry/profileBar.d.ts.map +1 -1
- package/dist/telemetry/providerPage.d.ts +2 -0
- package/dist/telemetry/providerPage.d.ts.map +1 -0
- package/dist/telemetry/providerSetup.d.ts +5 -0
- package/dist/telemetry/providerSetup.d.ts.map +1 -0
- package/dist/telemetry/providerView.d.ts +45 -0
- package/dist/telemetry/providerView.d.ts.map +1 -0
- package/dist/telemetry/settingsPage.d.ts +1 -1
- package/dist/telemetry/settingsPage.d.ts.map +1 -1
- package/package.json +12 -5
|
@@ -118,9 +118,11 @@ var themeCss = `
|
|
|
118
118
|
background: rgba(188,140,255,0.12);
|
|
119
119
|
border: 1px solid rgba(188,140,255,0.35);
|
|
120
120
|
cursor: default;
|
|
121
|
-
|
|
121
|
+
}
|
|
122
|
+
.meridian-header .mh-profile.following { border-color: var(--accent2, #bc8cff); }
|
|
122
123
|
.meridian-header .mh-profile .mh-profile-follow {
|
|
123
|
-
color: var(--accent2, #bc8cff); font-size: 10px;
|
|
124
|
+
color: var(--accent2, #bc8cff); font-size: 10px;
|
|
125
|
+
}
|
|
124
126
|
.meridian-header .mh-status {
|
|
125
127
|
display: inline-flex; align-items: center; gap: 6px;
|
|
126
128
|
font-size: 11px; color: var(--muted, #8b949e); white-space: nowrap;
|
|
@@ -135,6 +137,8 @@ var themeCss = `
|
|
|
135
137
|
@media (max-width: 720px) {
|
|
136
138
|
.meridian-header { gap: 10px; padding: 10px 16px; flex-wrap: wrap; }
|
|
137
139
|
.meridian-header .mh-name { display: none; }
|
|
140
|
+
.meridian-header .mh-nav { order: 3; flex-basis: 100%; min-width: 0; overflow-x: auto; scrollbar-width: thin; scrollbar-color: var(--border) transparent; }
|
|
141
|
+
.meridian-header .mh-nav a { flex-shrink: 0; }
|
|
138
142
|
.meridian-header .mh-status .mh-status-text { display: none; }
|
|
139
143
|
}
|
|
140
144
|
`, profileBarHtml, profileBarJs = `
|
|
@@ -187,6 +191,10 @@ var themeCss = `
|
|
|
187
191
|
statusDot.className = 'mh-dot ' + st;
|
|
188
192
|
statusText.textContent = st === 'healthy' ? 'Operational' : st === 'degraded' ? 'Degraded' : 'Offline';
|
|
189
193
|
renderBuild(h.build);
|
|
194
|
+
if (h.backend === 'antigravity') {
|
|
195
|
+
['nav-telemetry','nav-profiles','nav-settings','nav-plugins'].forEach(function(id) { document.getElementById(id).hidden = true; });
|
|
196
|
+
profileChip.removeAttribute('href');
|
|
197
|
+
}
|
|
190
198
|
}).catch(function() {
|
|
191
199
|
statusDot.className = 'mh-dot unhealthy';
|
|
192
200
|
statusText.textContent = 'Offline';
|
|
@@ -223,12 +231,13 @@ var themeCss = `
|
|
|
223
231
|
var init_profileBar = __esm(() => {
|
|
224
232
|
profileBarHtml = `
|
|
225
233
|
<header class="meridian-header" id="meridianHeader">
|
|
226
|
-
<a class="mh-brand" href="/">
|
|
234
|
+
<a class="mh-brand" href="/" aria-label="Meridian home">
|
|
227
235
|
${meridianLogoSvg}
|
|
228
236
|
<span class="mh-name">Meridian</span>
|
|
229
237
|
</a>
|
|
230
238
|
<nav class="mh-nav">
|
|
231
239
|
<a href="/" id="nav-home">Home</a>
|
|
240
|
+
<a href="/providers" id="nav-providers">Providers</a>
|
|
232
241
|
<a href="/telemetry" id="nav-telemetry">Telemetry</a>
|
|
233
242
|
<a href="/profiles" id="nav-profiles">Profiles</a>
|
|
234
243
|
<a href="/settings" id="nav-settings">Settings</a>
|
package/dist/cli.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
startProxyServer
|
|
4
|
-
} from "./cli-
|
|
4
|
+
} from "./cli-e6rne560.js";
|
|
5
5
|
import"./cli-82e2m44k.js";
|
|
6
6
|
import"./cli-dh0a1bw4.js";
|
|
7
7
|
import"./cli-8sw5wr9j.js";
|
|
8
8
|
import"./cli-grfp0s1j.js";
|
|
9
9
|
import"./cli-sry5aqdj.js";
|
|
10
|
-
import"./cli-
|
|
10
|
+
import"./cli-wbsmhxcx.js";
|
|
11
11
|
import {
|
|
12
12
|
resolveClaudeExecutableAsync
|
|
13
|
-
} from "./cli-
|
|
13
|
+
} from "./cli-0psmkhv5.js";
|
|
14
14
|
import"./cli-chsp880k.js";
|
|
15
15
|
import"./cli-1jstkdj9.js";
|
|
16
16
|
import"./cli-qpfky8wy.js";
|
|
@@ -33,18 +33,25 @@ if (args.includes("--version") || args.includes("-v")) {
|
|
|
33
33
|
if (args.includes("--help") || args.includes("-h")) {
|
|
34
34
|
console.log(`meridian v${version}
|
|
35
35
|
|
|
36
|
-
Local
|
|
36
|
+
Local API bridge for Claude and Antigravity subscriptions.
|
|
37
37
|
|
|
38
38
|
Usage: meridian [command] [options]
|
|
39
39
|
|
|
40
40
|
Commands:
|
|
41
41
|
(default) Start the proxy server
|
|
42
42
|
status Show what a running instance is doing (the / page, in the terminal)
|
|
43
|
-
setup Configure
|
|
43
|
+
setup Configure client integrations (run once after install)
|
|
44
44
|
profile Manage Claude account profiles (add, list, switch, remove)
|
|
45
45
|
refresh-token Refresh the Claude Code OAuth token
|
|
46
46
|
|
|
47
47
|
Setup options:
|
|
48
|
+
--antigravity Configure Pi or OpenCode V1 for Antigravity
|
|
49
|
+
--client <pi|opencode> Client to configure with --antigravity
|
|
50
|
+
--url <base URL> Antigravity URL (include /antigravity in combined mode)
|
|
51
|
+
--model <account slug> Account model to add
|
|
52
|
+
--config-dir <directory> Optional client configuration directory
|
|
53
|
+
--api-key-env <variable> Reference a local Meridian API key from the environment
|
|
54
|
+
--set-default Also select Antigravity for the client
|
|
48
55
|
--v1 Install the OpenCode V1 plugin
|
|
49
56
|
--v2 Install the pinned OpenCode V2 beta plugin
|
|
50
57
|
--opencode-bin <executable> Probe this OpenCode executable
|
|
@@ -56,6 +63,19 @@ Options:
|
|
|
56
63
|
Environment variables:
|
|
57
64
|
MERIDIAN_PORT Port to listen on (default: 3456)
|
|
58
65
|
MERIDIAN_HOST Host to bind to (default: 127.0.0.1)
|
|
66
|
+
MERIDIAN_BACKEND claude (default), antigravity, or combined
|
|
67
|
+
MERIDIAN_AGY_STATE_PATH Optional bounded persistent state file
|
|
68
|
+
MERIDIAN_AGY_TURN_TIMEOUT_MS Active CLI turn deadline (default: 300000)
|
|
69
|
+
MERIDIAN_AGY_TOOL_TIMEOUT_MS Idle client-tool wait (default: 60000)
|
|
70
|
+
MERIDIAN_AGY_MAX_CONCURRENT Maximum CLI processes (default: 4)
|
|
71
|
+
MERIDIAN_AGY_PLUGIN_PATHS JSON array of Antigravity plugin modules
|
|
72
|
+
MERIDIAN_AGY_GRAMMAR_PYTHON Local Python with Lark for custom grammars
|
|
73
|
+
MERIDIAN_AGY_PATH Official agy executable (default: agy)
|
|
74
|
+
MERIDIAN_AGY_ALLOW_TOOL_BRIDGE Opt into Antigravity client-owned tools (1)
|
|
75
|
+
MERIDIAN_AGY_ADAPT_THINKING_BUDGETS Map numeric budgets to Gemini effort (1)
|
|
76
|
+
MERIDIAN_AGY_ALLOW_NATIVE_BROWSER Opt into native browser actions (1)
|
|
77
|
+
MERIDIAN_AGY_BROWSER_MCP_PATH Installed chrome-devtools-mcp 1.9.0 executable
|
|
78
|
+
MERIDIAN_AGY_ALLOW_NATIVE_SUBAGENTS Opt into native subagents (1)
|
|
59
79
|
MERIDIAN_PASSTHROUGH Enable passthrough mode (tools forwarded to client)
|
|
60
80
|
MERIDIAN_IDLE_TIMEOUT_SECONDS Idle timeout in seconds (default: 120)
|
|
61
81
|
MERIDIAN_PLUGIN_DIR Plugin auto-discovery directory (default: ~/.config/meridian/plugins)
|
|
@@ -65,7 +85,7 @@ See https://github.com/rynfar/meridian for full documentation.`);
|
|
|
65
85
|
process.exit(0);
|
|
66
86
|
}
|
|
67
87
|
if (args[0] === "profile") {
|
|
68
|
-
const { profileAdd, profileAddOauthToken, profileList, profileRemove, profileRename, profileSwitch, profileLogin, profileHelp } = await import("./profileCli-
|
|
88
|
+
const { profileAdd, profileAddOauthToken, profileList, profileRemove, profileRename, profileSwitch, profileLogin, profileHelp } = await import("./profileCli-zz83nvq0.js");
|
|
69
89
|
const subcommand = args[1];
|
|
70
90
|
const profileId = args[2];
|
|
71
91
|
const headless = args.includes("--headless");
|
|
@@ -91,6 +111,22 @@ if (args[0] === "profile") {
|
|
|
91
111
|
profileHelp();
|
|
92
112
|
process.exit(0);
|
|
93
113
|
}
|
|
114
|
+
if (args[0] === "setup" && args.includes("--antigravity")) {
|
|
115
|
+
const { parseAntigravitySetupArgs, setupAntigravityClient } = await import("./antigravitySetup-35pd5xqn.js");
|
|
116
|
+
try {
|
|
117
|
+
const result = setupAntigravityClient(parseAntigravitySetupArgs(args.slice(1)), import.meta.url);
|
|
118
|
+
console.log(`${result.changed.length ? "Configured" : "Already configured"} ${result.client} for Antigravity`);
|
|
119
|
+
console.log(` Config: ${result.configPath}`);
|
|
120
|
+
console.log(` Integration: ${result.integrationPath}`);
|
|
121
|
+
for (const backup of result.backups)
|
|
122
|
+
console.log(` Backup: ${backup}`);
|
|
123
|
+
console.log(`Restart ${result.client}, then select meridian-agy/${result.model}. Tool permissions remain in the client.`);
|
|
124
|
+
process.exit(0);
|
|
125
|
+
} catch (error) {
|
|
126
|
+
console.error(error instanceof Error ? error.message : String(error));
|
|
127
|
+
process.exit(1);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
94
130
|
if (args[0] === "setup") {
|
|
95
131
|
const {
|
|
96
132
|
detectOpenCodeGeneration,
|
|
@@ -228,34 +264,36 @@ async function runCli(start = startProxyServer, runAuthCheck = async () => {
|
|
|
228
264
|
const claudePath = await resolveClaudeExecutableAsync();
|
|
229
265
|
return execFile(claudePath, ["auth", "status"], { timeout: 5000 });
|
|
230
266
|
}) {
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
267
|
+
if (process.env.MERIDIAN_BACKEND !== "antigravity") {
|
|
268
|
+
try {
|
|
269
|
+
const { findOpencodeConfigPath, checkPluginConfigured, findPluginPath } = await import("./setup-7fr49z92.js");
|
|
270
|
+
const configPath = findOpencodeConfigPath();
|
|
271
|
+
const { existsSync } = await import("fs");
|
|
272
|
+
if (existsSync(configPath) && !checkPluginConfigured(configPath)) {
|
|
273
|
+
const pluginPath = findPluginPath(import.meta.url);
|
|
274
|
+
console.error("\x1B[33m⚠ Meridian plugin not found in OpenCode config.\x1B[0m");
|
|
275
|
+
console.error(" Session tracking and subagent model selection won't work.");
|
|
276
|
+
console.error(` Fix: meridian setup`);
|
|
277
|
+
console.error("");
|
|
278
|
+
}
|
|
279
|
+
} catch {}
|
|
280
|
+
try {
|
|
281
|
+
const { stdout } = await runAuthCheck();
|
|
282
|
+
const auth = JSON.parse(stdout);
|
|
283
|
+
if (!auth.loggedIn) {
|
|
284
|
+
console.error("\x1B[31m✗ Not logged in to Claude.\x1B[0m Run: claude login");
|
|
285
|
+
process.exit(1);
|
|
286
|
+
}
|
|
287
|
+
if (auth.subscriptionType !== "max") {
|
|
288
|
+
console.error(`\x1B[33m⚠ Claude subscription: ${auth.subscriptionType || "unknown"} (Max recommended)\x1B[0m`);
|
|
289
|
+
}
|
|
290
|
+
} catch {
|
|
291
|
+
console.error("\x1B[33m⚠ Could not verify Claude auth status. If requests fail, run: claude login\x1B[0m");
|
|
241
292
|
}
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
const auth = JSON.parse(stdout);
|
|
246
|
-
if (!auth.loggedIn) {
|
|
247
|
-
console.error("\x1B[31m✗ Not logged in to Claude.\x1B[0m Run: claude login");
|
|
248
|
-
process.exit(1);
|
|
293
|
+
if (!profiles) {
|
|
294
|
+
const { enableDiskProfileDiscovery } = await import("./profiles-0mp32ek9.js");
|
|
295
|
+
enableDiskProfileDiscovery();
|
|
249
296
|
}
|
|
250
|
-
if (auth.subscriptionType !== "max") {
|
|
251
|
-
console.error(`\x1B[33m⚠ Claude subscription: ${auth.subscriptionType || "unknown"} (Max recommended)\x1B[0m`);
|
|
252
|
-
}
|
|
253
|
-
} catch {
|
|
254
|
-
console.error("\x1B[33m⚠ Could not verify Claude auth status. If requests fail, run: claude login\x1B[0m");
|
|
255
|
-
}
|
|
256
|
-
if (!profiles) {
|
|
257
|
-
const { enableDiskProfileDiscovery } = await import("./profiles-0mp32ek9.js");
|
|
258
|
-
enableDiskProfileDiscovery();
|
|
259
297
|
}
|
|
260
298
|
const { enableOrganizationLookup } = await import("./organizationName-90f0atkn.js");
|
|
261
299
|
enableOrganizationLookup();
|
package/dist/proxy/auth.d.ts
CHANGED
|
@@ -13,6 +13,8 @@ import type { Context, Next } from "hono";
|
|
|
13
13
|
* True when MERIDIAN_API_KEY is set to a non-empty value.
|
|
14
14
|
*/
|
|
15
15
|
export declare function authEnabled(): boolean;
|
|
16
|
+
/** Shared by the Hono default backend and standard-Request runtime backends. */
|
|
17
|
+
export declare function hasValidApiKey(headers: Headers): boolean;
|
|
16
18
|
/**
|
|
17
19
|
* Hono middleware that rejects requests without a valid API key.
|
|
18
20
|
* No-op when MERIDIAN_API_KEY is not set.
|
package/dist/proxy/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/proxy/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAMzC;;;GAGG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAErC;
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/proxy/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAMzC;;;GAGG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAYD,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAMxD;AAgBD;;;GAGG;AACH,wBAAsB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI;;;;;;kBAgBvD"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type ProviderUsage } from '../../telemetry/providerView';
|
|
2
|
+
import type { ProxyConfig, ProxyServer } from "../types";
|
|
3
|
+
import { AntigravityRuntime } from "./antigravityRuntime";
|
|
4
|
+
export declare function createAntigravityServer(config: ProxyConfig, runtime?: AntigravityRuntime): ProxyServer & {
|
|
5
|
+
closeBackend(): Promise<void>;
|
|
6
|
+
providerStatus(): Promise<ProviderUsage>;
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=antigravity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"antigravity.d.ts","sourceRoot":"","sources":["../../../src/proxy/backends/antigravity.ts"],"names":[],"mappings":"AAOA,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAGnF,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAGxD,OAAO,EAAE,kBAAkB,EAAuB,MAAM,sBAAsB,CAAA;AAyB9E,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,qBAA8H,GAAG,WAAW,GAAG;IAAE,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC,CAAA;CAAE,CAyU7R"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type AgBlock, type AgMessage, type AgResult } from "./antigravityProtocol";
|
|
2
|
+
/** Materialize supplied bytes and validated public images, never caller filesystem paths. */
|
|
3
|
+
export declare class AgAttachments {
|
|
4
|
+
private readonly workspace;
|
|
5
|
+
private readonly signal?;
|
|
6
|
+
private readonly paths;
|
|
7
|
+
private bytes;
|
|
8
|
+
private fetches;
|
|
9
|
+
constructor(workspace: string, signal?: AbortSignal | undefined);
|
|
10
|
+
private reserve;
|
|
11
|
+
get present(): boolean;
|
|
12
|
+
content(content: AgBlock[]): Promise<AgBlock[]>;
|
|
13
|
+
toolResult(result: AgResult): Promise<AgResult>;
|
|
14
|
+
messages(messages: AgMessage[]): Promise<AgMessage[]>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=antigravityAttachments.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"antigravityAttachments.d.ts","sourceRoot":"","sources":["../../../src/proxy/backends/antigravityAttachments.ts"],"names":[],"mappings":"AASA,OAAO,EAA4B,KAAK,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAE7G,6FAA6F;AAC7F,qBAAa,aAAa;IAIZ,OAAO,CAAC,QAAQ,CAAC,SAAS;IAAU,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAHxE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;IAC1C,OAAO,CAAC,KAAK,CAAI;IACjB,OAAO,CAAC,OAAO,CAAI;gBACU,SAAS,EAAE,MAAM,EAAmB,MAAM,CAAC,EAAE,WAAW,YAAA;IACrF,OAAO,CAAC,OAAO;IAKf,IAAI,OAAO,IAAI,OAAO,CAA+B;IAC/C,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAmF/C,UAAU,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAK/C,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;CAK5D"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { AgRequest } from './antigravityProtocol';
|
|
2
|
+
/** Validate custom tool payloads outside the server thread with a hard deadline. */
|
|
3
|
+
export declare class AgGrammars {
|
|
4
|
+
private readonly request;
|
|
5
|
+
private readonly signal;
|
|
6
|
+
constructor(request: AgRequest, signal: AbortSignal);
|
|
7
|
+
prepare(): Promise<void>;
|
|
8
|
+
validate(name: string, input: Record<string, unknown>): Promise<void>;
|
|
9
|
+
private check;
|
|
10
|
+
private checkInside;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=antigravityGrammar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"antigravityGrammar.d.ts","sourceRoot":"","sources":["../../../src/proxy/backends/antigravityGrammar.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAWtD,oFAAoF;AACpF,qBAAa,UAAU;IACT,OAAO,CAAC,QAAQ,CAAC,OAAO;IAAa,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAA3C,OAAO,EAAE,SAAS,EAAmB,MAAM,EAAE,WAAW;IAC/E,OAAO;IAIP,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;YAM7C,KAAK;YAIL,WAAW;CAmC1B"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { AgResponseStore } from './antigravityResponses';
|
|
2
|
+
export type AgResponseEvent = {
|
|
3
|
+
type: string;
|
|
4
|
+
sequence_number: number;
|
|
5
|
+
[key: string]: unknown;
|
|
6
|
+
};
|
|
7
|
+
export declare function responseEvents(response: Record<string, unknown>): AgResponseEvent[];
|
|
8
|
+
export declare function agEventStream(events: AgResponseEvent[], startingAfter?: number): Response;
|
|
9
|
+
/** Background consumers own their cancellation; disconnecting a polling client does not abort agy. */
|
|
10
|
+
export declare class AgResponseJobs {
|
|
11
|
+
private readonly store;
|
|
12
|
+
private readonly jobs;
|
|
13
|
+
constructor(store: AgResponseStore);
|
|
14
|
+
start(scope: string, input: unknown[], model: string, execute: (signal: AbortSignal, id: string) => Promise<Response>): Record<string, unknown>;
|
|
15
|
+
cancel(id: string, scope: string): Promise<Record<string, unknown>>;
|
|
16
|
+
close(): Promise<void>;
|
|
17
|
+
stream(id: string, scope: string, after: number, signal: AbortSignal): Promise<Response>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=antigravityJobs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"antigravityJobs.d.ts","sourceRoot":"","sources":["../../../src/proxy/backends/antigravityJobs.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAE7D,MAAM,MAAM,eAAe,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAA;AAE/F,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe,EAAE,CAWnF;AACD,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,aAAa,SAAK,GAAG,QAAQ,CAMrF;AAED,sGAAsG;AACtG,qBAAa,cAAc;IAEb,OAAO,CAAC,QAAQ,CAAC,KAAK;IADlC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA+G;gBACvG,KAAK,EAAE,eAAe;IACnD,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAoDzI,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAOhC,KAAK;IAKL,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;CA2B/F"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Timestamps come from ffmpeg's selected source frames, never inferred from frame indices. */
|
|
2
|
+
export declare function agFrameTimes(log: string, count: number): number[];
|
|
3
|
+
/** Local adaptation only; no paid transcription API or model SDK. */
|
|
4
|
+
export declare function preprocessAgMedia(input: string, kind: 'audio' | 'video', workspace: string, signal?: AbortSignal): Promise<{
|
|
5
|
+
text: string;
|
|
6
|
+
frames: string[];
|
|
7
|
+
frameTimes: number[];
|
|
8
|
+
}>;
|
|
9
|
+
//# sourceMappingURL=antigravityMedia.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"antigravityMedia.d.ts","sourceRoot":"","sources":["../../../src/proxy/backends/antigravityMedia.ts"],"names":[],"mappings":"AAOA,+FAA+F;AAC/F,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAIjE;AAGD,qEAAqE;AACrE,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAmC1L"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Native tool names are an operator-selected capability, independent of client tools. */
|
|
2
|
+
export declare function agNativeTools(options: {
|
|
3
|
+
allowNativeBrowser?: boolean;
|
|
4
|
+
allowNativeSubagents?: boolean;
|
|
5
|
+
}): string[];
|
|
6
|
+
/** Keep subagents in the guarded workspace and gate browser delegation separately. */
|
|
7
|
+
export declare function agNativeAllowed(name: unknown, args: unknown, allowed: string[], browser: boolean, subagents: boolean): boolean;
|
|
8
|
+
//# sourceMappingURL=antigravityNative.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"antigravityNative.d.ts","sourceRoot":"","sources":["../../../src/proxy/backends/antigravityNative.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,wBAAgB,aAAa,CAAC,OAAO,EAAE;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,EAAE,CAMjH;AAED,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAkB9H"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { AgResponseJobs } from './antigravityJobs';
|
|
2
|
+
import { AgResponseStore } from './antigravityResponses';
|
|
3
|
+
/** Provider-specific validation prevents generic converters silently dropping unsupported fields. */
|
|
4
|
+
export declare function agOpenai(request: Request, raw: unknown, responses: boolean, messages: (request: Request) => Promise<Response>, store: AgResponseStore, jobs?: AgResponseJobs, execution?: {
|
|
5
|
+
id?: string;
|
|
6
|
+
background?: boolean;
|
|
7
|
+
countTokens?: boolean;
|
|
8
|
+
}): Promise<Response>;
|
|
9
|
+
//# sourceMappingURL=antigravityOpenai.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"antigravityOpenai.d.ts","sourceRoot":"","sources":["../../../src/proxy/backends/antigravityOpenai.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,mBAAmB,CAAA;AAExE,OAAO,EAAE,eAAe,EAAmB,MAAM,wBAAwB,CAAA;AAuDzE,qGAAqG;AACrG,wBAAsB,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,CAAC,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CA4JhR"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Lossless wire-format adaptation; actual decoding runs under runtime admission. */
|
|
2
|
+
export declare class AgOpenaiMedia {
|
|
3
|
+
private readonly blocks;
|
|
4
|
+
private placeholder;
|
|
5
|
+
audio(data: string, format: string): string;
|
|
6
|
+
file(data: string, title?: string): string;
|
|
7
|
+
restore(value: unknown): unknown;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=antigravityOpenaiMedia.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"antigravityOpenaiMedia.d.ts","sourceRoot":"","sources":["../../../src/proxy/backends/antigravityOpenaiMedia.ts"],"names":[],"mappings":"AAGA,qFAAqF;AACrF,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IACpD,OAAO,CAAC,WAAW;IAKnB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAGlC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;IASjC,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;CAejC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export interface AntigravityPlugin {
|
|
2
|
+
name: string;
|
|
3
|
+
/** Return an Anthropic-shaped request. Meridian validates it before dispatch. */
|
|
4
|
+
onRequest?: (context: {
|
|
5
|
+
provider: 'antigravity';
|
|
6
|
+
request: unknown;
|
|
7
|
+
signal: AbortSignal;
|
|
8
|
+
}) => unknown | Promise<unknown>;
|
|
9
|
+
/** Observe-only: mutating the clone cannot change tools, replies or history. */
|
|
10
|
+
onResponse?: (context: {
|
|
11
|
+
provider: 'antigravity';
|
|
12
|
+
response: unknown;
|
|
13
|
+
signal: AbortSignal;
|
|
14
|
+
}) => void | Promise<void>;
|
|
15
|
+
onTelemetry?: (context: {
|
|
16
|
+
provider: 'antigravity';
|
|
17
|
+
metric: unknown;
|
|
18
|
+
signal: AbortSignal;
|
|
19
|
+
}) => void | Promise<void>;
|
|
20
|
+
}
|
|
21
|
+
export declare class AgPlugins {
|
|
22
|
+
private readonly configured;
|
|
23
|
+
private readonly paths;
|
|
24
|
+
private plugins;
|
|
25
|
+
private loading?;
|
|
26
|
+
private active;
|
|
27
|
+
private readonly failures;
|
|
28
|
+
constructor(configured?: AntigravityPlugin[], paths?: string[]);
|
|
29
|
+
init(): Promise<void>;
|
|
30
|
+
list(): {
|
|
31
|
+
name: string;
|
|
32
|
+
provider: string;
|
|
33
|
+
status: string;
|
|
34
|
+
error: string | undefined;
|
|
35
|
+
hooks: string[];
|
|
36
|
+
}[];
|
|
37
|
+
private invoke;
|
|
38
|
+
request(body: unknown, signal: AbortSignal): Promise<unknown>;
|
|
39
|
+
observe(kind: 'onResponse' | 'onTelemetry', value: unknown, signal: AbortSignal): Promise<void>;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=antigravityPlugins.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"antigravityPlugins.d.ts","sourceRoot":"","sources":["../../../src/proxy/backends/antigravityPlugins.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,iFAAiF;IACjF,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,aAAa,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,WAAW,CAAA;KAAE,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACvH,gFAAgF;IAChF,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,aAAa,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,WAAW,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACnH,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,aAAa,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,WAAW,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACnH;AAOD,qBAAa,SAAS;IAKR,OAAO,CAAC,QAAQ,CAAC,UAAU;IAA4B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAJzF,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,OAAO,CAAC,CAAe;IAC/B,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;gBACxB,UAAU,GAAE,iBAAiB,EAAO,EAAmB,KAAK,GAAE,MAAM,EAAO;IAGxG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IASrB,IAAI;;;;;;;YACU,MAAM;IAWd,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAS7D,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAStG"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
type Probe = 'version' | 'configuration' | 'models';
|
|
2
|
+
type Failure = 'timeout' | 'cancelled' | 'spawn' | 'exit' | 'output-limit';
|
|
3
|
+
interface ProbeOptions {
|
|
4
|
+
env: NodeJS.ProcessEnv;
|
|
5
|
+
signal: AbortSignal;
|
|
6
|
+
timeoutMs?: number;
|
|
7
|
+
killGraceMs?: number;
|
|
8
|
+
}
|
|
9
|
+
export declare class ProbeFailure extends Error {
|
|
10
|
+
readonly reason: Failure;
|
|
11
|
+
constructor(reason: Failure, message: string);
|
|
12
|
+
}
|
|
13
|
+
/** Read-only official commands only. Never retry model generation or print CLI output. */
|
|
14
|
+
export declare function readAgProbe(executable: string, kind: Probe, options: ProbeOptions): Promise<string>;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=antigravityProbe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"antigravityProbe.d.ts","sourceRoot":"","sources":["../../../src/proxy/backends/antigravityProbe.ts"],"names":[],"mappings":"AAIA,KAAK,KAAK,GAAG,SAAS,GAAG,eAAe,GAAG,QAAQ,CAAA;AACnD,KAAK,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,cAAc,CAAA;AAC1E,UAAU,YAAY;IACpB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAA;IACtB,MAAM,EAAE,WAAW,CAAA;IAEnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AACD,qBAAa,YAAa,SAAQ,KAAK;IACzB,QAAQ,CAAC,MAAM,EAAE,OAAO;gBAAf,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM;CACtD;AAED,0FAA0F;AAC1F,wBAAsB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAUzG"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type ChildProcessWithoutNullStreams } from 'node:child_process';
|
|
2
|
+
export declare function agHookCommand(executable: string, script: string, platform?: NodeJS.Platform): string;
|
|
3
|
+
export declare function signalAgProcess(child: ChildProcessWithoutNullStreams, signal: NodeJS.Signals): void;
|
|
4
|
+
//# sourceMappingURL=antigravityProcess.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"antigravityProcess.d.ts","sourceRoot":"","sources":["../../../src/proxy/backends/antigravityProcess.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,8BAA8B,EAAE,MAAM,oBAAoB,CAAA;AAElF,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAAG,MAAM,CAStH;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,8BAA8B,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAYnG"}
|