opencode-antigravity-auth 1.0.4 → 1.0.6
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 +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/src/antigravity/oauth.d.ts +31 -0
- package/dist/src/antigravity/oauth.d.ts.map +1 -0
- package/dist/src/antigravity/oauth.js +154 -0
- package/dist/src/antigravity/oauth.js.map +1 -0
- package/dist/src/constants.d.ts +52 -0
- package/dist/src/constants.d.ts.map +1 -0
- package/dist/src/constants.js +66 -0
- package/dist/src/constants.js.map +1 -0
- package/dist/src/plugin/auth.d.ts +15 -0
- package/dist/src/plugin/auth.d.ts.map +1 -0
- package/dist/src/plugin/auth.js +33 -0
- package/dist/src/plugin/auth.js.map +1 -0
- package/dist/src/plugin/cache.d.ts +14 -0
- package/dist/src/plugin/cache.d.ts.map +1 -0
- package/dist/src/plugin/cache.js +56 -0
- package/dist/src/plugin/cache.js.map +1 -0
- package/dist/src/plugin/cli.d.ts +5 -0
- package/dist/src/plugin/cli.d.ts.map +1 -0
- package/dist/src/plugin/cli.js +16 -0
- package/dist/src/plugin/cli.js.map +1 -0
- package/dist/src/plugin/debug.d.ts +30 -0
- package/dist/src/plugin/debug.d.ts.map +1 -0
- package/dist/src/plugin/debug.js +142 -0
- package/dist/src/plugin/debug.js.map +1 -0
- package/dist/src/plugin/project.d.ts +33 -0
- package/dist/src/plugin/project.d.ts.map +1 -0
- package/dist/src/plugin/project.js +241 -0
- package/dist/src/plugin/project.js.map +1 -0
- package/dist/src/plugin/request-helpers.d.ts +81 -0
- package/dist/src/plugin/request-helpers.d.ts.map +1 -0
- package/dist/src/plugin/request-helpers.js +288 -0
- package/dist/src/plugin/request-helpers.js.map +1 -0
- package/dist/src/plugin/request.d.ts +27 -0
- package/dist/src/plugin/request.d.ts.map +1 -0
- package/dist/src/plugin/request.js +478 -0
- package/dist/src/plugin/request.js.map +1 -0
- package/dist/src/plugin/server.d.ts +23 -0
- package/dist/src/plugin/server.d.ts.map +1 -0
- package/dist/src/plugin/server.js +216 -0
- package/dist/src/plugin/server.js.map +1 -0
- package/dist/src/plugin/token.d.ts +6 -0
- package/dist/src/plugin/token.d.ts.map +1 -0
- package/dist/src/plugin/token.js +126 -0
- package/dist/src/plugin/token.js.map +1 -0
- package/dist/src/plugin/token.test.d.ts +2 -0
- package/dist/src/plugin/token.test.d.ts.map +1 -0
- package/dist/src/plugin/token.test.js +56 -0
- package/dist/src/plugin/token.test.js.map +1 -0
- package/dist/src/plugin/types.d.ts +68 -0
- package/dist/src/plugin/types.d.ts.map +1 -0
- package/dist/src/plugin/types.js +1 -0
- package/dist/src/plugin/types.js.map +1 -0
- package/dist/src/plugin.d.ts +8 -0
- package/dist/src/plugin.d.ts.map +1 -0
- package/dist/src/plugin.js +249 -0
- package/dist/src/plugin.js.map +1 -0
- package/package.json +4 -3
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
const ANTIGRAVITY_PREVIEW_LINK = "https://goo.gle/enable-preview-features"; // TODO: Update to Antigravity link if available
|
|
2
|
+
/**
|
|
3
|
+
* Default token budget for thinking/reasoning. 16000 tokens provides sufficient
|
|
4
|
+
* space for complex reasoning while staying within typical model limits.
|
|
5
|
+
*/
|
|
6
|
+
export const DEFAULT_THINKING_BUDGET = 16000;
|
|
7
|
+
/**
|
|
8
|
+
* Checks if a model name indicates thinking/reasoning capability.
|
|
9
|
+
* Models with "thinking", "gemini-3", or "opus" in their name support extended thinking.
|
|
10
|
+
*/
|
|
11
|
+
export function isThinkingCapableModel(modelName) {
|
|
12
|
+
const lowerModel = modelName.toLowerCase();
|
|
13
|
+
return lowerModel.includes("thinking")
|
|
14
|
+
|| lowerModel.includes("gemini-3")
|
|
15
|
+
|| lowerModel.includes("opus");
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Extracts thinking configuration from various possible request locations.
|
|
19
|
+
* Supports both Gemini-style thinkingConfig and Anthropic-style thinking options.
|
|
20
|
+
*/
|
|
21
|
+
export function extractThinkingConfig(requestPayload, rawGenerationConfig, extraBody) {
|
|
22
|
+
const thinkingConfig = rawGenerationConfig?.thinkingConfig
|
|
23
|
+
?? extraBody?.thinkingConfig
|
|
24
|
+
?? requestPayload.thinkingConfig;
|
|
25
|
+
if (thinkingConfig && typeof thinkingConfig === "object") {
|
|
26
|
+
const config = thinkingConfig;
|
|
27
|
+
return {
|
|
28
|
+
includeThoughts: Boolean(config.includeThoughts),
|
|
29
|
+
thinkingBudget: typeof config.thinkingBudget === "number" ? config.thinkingBudget : DEFAULT_THINKING_BUDGET,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
// Convert Anthropic-style "thinking" option: { type: "enabled", budgetTokens: N }
|
|
33
|
+
const anthropicThinking = extraBody?.thinking ?? requestPayload.thinking;
|
|
34
|
+
if (anthropicThinking && typeof anthropicThinking === "object") {
|
|
35
|
+
const thinking = anthropicThinking;
|
|
36
|
+
if (thinking.type === "enabled" || thinking.budgetTokens) {
|
|
37
|
+
return {
|
|
38
|
+
includeThoughts: true,
|
|
39
|
+
thinkingBudget: typeof thinking.budgetTokens === "number" ? thinking.budgetTokens : DEFAULT_THINKING_BUDGET,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Determines the final thinking configuration based on model capabilities and user settings.
|
|
47
|
+
* Claude models require signed thinking blocks for multi-turn conversations.
|
|
48
|
+
* Since previous thinking blocks may lack signatures, we disable thinking for Claude multi-turn.
|
|
49
|
+
*/
|
|
50
|
+
export function resolveThinkingConfig(userConfig, isThinkingModel, isClaudeModel, hasAssistantHistory) {
|
|
51
|
+
if (isClaudeModel && hasAssistantHistory) {
|
|
52
|
+
return { includeThoughts: false, thinkingBudget: 0 };
|
|
53
|
+
}
|
|
54
|
+
if (isThinkingModel && !userConfig) {
|
|
55
|
+
return { includeThoughts: true, thinkingBudget: DEFAULT_THINKING_BUDGET };
|
|
56
|
+
}
|
|
57
|
+
return userConfig;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Checks if a part is a thinking/reasoning block (Anthropic or Gemini style).
|
|
61
|
+
*/
|
|
62
|
+
function isThinkingPart(part) {
|
|
63
|
+
return part.type === "thinking"
|
|
64
|
+
|| part.type === "reasoning"
|
|
65
|
+
|| part.thinking !== undefined
|
|
66
|
+
|| part.thought === true;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Checks if a thinking part has a valid signature.
|
|
70
|
+
*/
|
|
71
|
+
function hasValidSignature(part) {
|
|
72
|
+
if (part.thought === true) {
|
|
73
|
+
return Boolean(part.thoughtSignature);
|
|
74
|
+
}
|
|
75
|
+
return Boolean(part.signature);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Filters out unsigned thinking blocks from contents (required by Claude API).
|
|
79
|
+
*/
|
|
80
|
+
export function filterUnsignedThinkingBlocks(contents) {
|
|
81
|
+
return contents.map((content) => {
|
|
82
|
+
if (!content || !Array.isArray(content.parts)) {
|
|
83
|
+
return content;
|
|
84
|
+
}
|
|
85
|
+
const filteredParts = content.parts.filter((part) => {
|
|
86
|
+
if (!part || typeof part !== "object") {
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
if (isThinkingPart(part)) {
|
|
90
|
+
return hasValidSignature(part);
|
|
91
|
+
}
|
|
92
|
+
return true;
|
|
93
|
+
});
|
|
94
|
+
return { ...content, parts: filteredParts };
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Transforms Anthropic-style thinking blocks (type: "thinking") to reasoning format.
|
|
99
|
+
*/
|
|
100
|
+
function transformAnthropicThinkingBlocks(content) {
|
|
101
|
+
return content.map((block) => {
|
|
102
|
+
if (block && typeof block === "object" && block.type === "thinking") {
|
|
103
|
+
return {
|
|
104
|
+
type: "reasoning",
|
|
105
|
+
text: block.text || "",
|
|
106
|
+
...(block.signature ? { signature: block.signature } : {}),
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
return block;
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Transforms Gemini-style thought parts (thought: true) to reasoning format.
|
|
114
|
+
*/
|
|
115
|
+
function transformGeminiCandidate(candidate) {
|
|
116
|
+
if (!candidate || typeof candidate !== "object") {
|
|
117
|
+
return candidate;
|
|
118
|
+
}
|
|
119
|
+
const content = candidate.content;
|
|
120
|
+
if (!content || typeof content !== "object" || !Array.isArray(content.parts)) {
|
|
121
|
+
return candidate;
|
|
122
|
+
}
|
|
123
|
+
const thinkingTexts = [];
|
|
124
|
+
const transformedParts = content.parts.map((part) => {
|
|
125
|
+
if (part && typeof part === "object" && part.thought === true) {
|
|
126
|
+
thinkingTexts.push(part.text || "");
|
|
127
|
+
return { ...part, type: "reasoning" };
|
|
128
|
+
}
|
|
129
|
+
return part;
|
|
130
|
+
});
|
|
131
|
+
return {
|
|
132
|
+
...candidate,
|
|
133
|
+
content: { ...content, parts: transformedParts },
|
|
134
|
+
...(thinkingTexts.length > 0 ? { reasoning_content: thinkingTexts.join("\n\n") } : {}),
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Transforms thinking/reasoning content in response parts to OpenCode's expected format.
|
|
139
|
+
* Handles both Gemini-style (thought: true) and Anthropic-style (type: "thinking") formats.
|
|
140
|
+
*/
|
|
141
|
+
export function transformThinkingParts(response) {
|
|
142
|
+
if (!response || typeof response !== "object") {
|
|
143
|
+
return response;
|
|
144
|
+
}
|
|
145
|
+
const resp = response;
|
|
146
|
+
const result = { ...resp };
|
|
147
|
+
if (Array.isArray(resp.content)) {
|
|
148
|
+
result.content = transformAnthropicThinkingBlocks(resp.content);
|
|
149
|
+
}
|
|
150
|
+
if (Array.isArray(resp.candidates)) {
|
|
151
|
+
result.candidates = resp.candidates.map(transformGeminiCandidate);
|
|
152
|
+
}
|
|
153
|
+
return result;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Ensures thinkingConfig is valid: includeThoughts only allowed when budget > 0.
|
|
157
|
+
*/
|
|
158
|
+
export function normalizeThinkingConfig(config) {
|
|
159
|
+
if (!config || typeof config !== "object") {
|
|
160
|
+
return undefined;
|
|
161
|
+
}
|
|
162
|
+
const record = config;
|
|
163
|
+
const budgetRaw = record.thinkingBudget ?? record.thinking_budget;
|
|
164
|
+
const includeRaw = record.includeThoughts ?? record.include_thoughts;
|
|
165
|
+
const thinkingBudget = typeof budgetRaw === "number" && Number.isFinite(budgetRaw) ? budgetRaw : undefined;
|
|
166
|
+
const includeThoughts = typeof includeRaw === "boolean" ? includeRaw : undefined;
|
|
167
|
+
const enableThinking = thinkingBudget !== undefined && thinkingBudget > 0;
|
|
168
|
+
const finalInclude = enableThinking ? includeThoughts ?? false : false;
|
|
169
|
+
if (!enableThinking && finalInclude === false && thinkingBudget === undefined && includeThoughts === undefined) {
|
|
170
|
+
return undefined;
|
|
171
|
+
}
|
|
172
|
+
const normalized = {};
|
|
173
|
+
if (thinkingBudget !== undefined) {
|
|
174
|
+
normalized.thinkingBudget = thinkingBudget;
|
|
175
|
+
}
|
|
176
|
+
if (finalInclude !== undefined) {
|
|
177
|
+
normalized.includeThoughts = finalInclude;
|
|
178
|
+
}
|
|
179
|
+
return normalized;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Parses an Antigravity API body; handles array-wrapped responses the API sometimes returns.
|
|
183
|
+
*/
|
|
184
|
+
export function parseAntigravityApiBody(rawText) {
|
|
185
|
+
try {
|
|
186
|
+
const parsed = JSON.parse(rawText);
|
|
187
|
+
if (Array.isArray(parsed)) {
|
|
188
|
+
const firstObject = parsed.find((item) => typeof item === "object" && item !== null);
|
|
189
|
+
if (firstObject && typeof firstObject === "object") {
|
|
190
|
+
return firstObject;
|
|
191
|
+
}
|
|
192
|
+
return null;
|
|
193
|
+
}
|
|
194
|
+
if (parsed && typeof parsed === "object") {
|
|
195
|
+
return parsed;
|
|
196
|
+
}
|
|
197
|
+
return null;
|
|
198
|
+
}
|
|
199
|
+
catch {
|
|
200
|
+
return null;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Extracts usageMetadata from a response object, guarding types.
|
|
205
|
+
*/
|
|
206
|
+
export function extractUsageMetadata(body) {
|
|
207
|
+
const usage = (body.response && typeof body.response === "object"
|
|
208
|
+
? body.response.usageMetadata
|
|
209
|
+
: undefined);
|
|
210
|
+
if (!usage || typeof usage !== "object") {
|
|
211
|
+
return null;
|
|
212
|
+
}
|
|
213
|
+
const asRecord = usage;
|
|
214
|
+
const toNumber = (value) => typeof value === "number" && Number.isFinite(value) ? value : undefined;
|
|
215
|
+
return {
|
|
216
|
+
totalTokenCount: toNumber(asRecord.totalTokenCount),
|
|
217
|
+
promptTokenCount: toNumber(asRecord.promptTokenCount),
|
|
218
|
+
candidatesTokenCount: toNumber(asRecord.candidatesTokenCount),
|
|
219
|
+
cachedContentTokenCount: toNumber(asRecord.cachedContentTokenCount),
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Walks SSE lines to find a usage-bearing response chunk.
|
|
224
|
+
*/
|
|
225
|
+
export function extractUsageFromSsePayload(payload) {
|
|
226
|
+
const lines = payload.split("\n");
|
|
227
|
+
for (const line of lines) {
|
|
228
|
+
if (!line.startsWith("data:")) {
|
|
229
|
+
continue;
|
|
230
|
+
}
|
|
231
|
+
const jsonText = line.slice(5).trim();
|
|
232
|
+
if (!jsonText) {
|
|
233
|
+
continue;
|
|
234
|
+
}
|
|
235
|
+
try {
|
|
236
|
+
const parsed = JSON.parse(jsonText);
|
|
237
|
+
if (parsed && typeof parsed === "object") {
|
|
238
|
+
const usage = extractUsageMetadata({ response: parsed.response });
|
|
239
|
+
if (usage) {
|
|
240
|
+
return usage;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
catch {
|
|
245
|
+
continue;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
return null;
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Enhances 404 errors for Antigravity models with a direct preview-access message.
|
|
252
|
+
*/
|
|
253
|
+
export function rewriteAntigravityPreviewAccessError(body, status, requestedModel) {
|
|
254
|
+
if (!needsPreviewAccessOverride(status, body, requestedModel)) {
|
|
255
|
+
return null;
|
|
256
|
+
}
|
|
257
|
+
const error = body.error ?? {};
|
|
258
|
+
const trimmedMessage = typeof error.message === "string" ? error.message.trim() : "";
|
|
259
|
+
const messagePrefix = trimmedMessage.length > 0
|
|
260
|
+
? trimmedMessage
|
|
261
|
+
: "Antigravity preview features are not enabled for this account.";
|
|
262
|
+
const enhancedMessage = `${messagePrefix} Request preview access at ${ANTIGRAVITY_PREVIEW_LINK} before using this model.`;
|
|
263
|
+
return {
|
|
264
|
+
...body,
|
|
265
|
+
error: {
|
|
266
|
+
...error,
|
|
267
|
+
message: enhancedMessage,
|
|
268
|
+
},
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
function needsPreviewAccessOverride(status, body, requestedModel) {
|
|
272
|
+
if (status !== 404) {
|
|
273
|
+
return false;
|
|
274
|
+
}
|
|
275
|
+
if (isAntigravityModel(requestedModel)) {
|
|
276
|
+
return true;
|
|
277
|
+
}
|
|
278
|
+
const errorMessage = typeof body.error?.message === "string" ? body.error.message : "";
|
|
279
|
+
return isAntigravityModel(errorMessage);
|
|
280
|
+
}
|
|
281
|
+
function isAntigravityModel(target) {
|
|
282
|
+
if (!target) {
|
|
283
|
+
return false;
|
|
284
|
+
}
|
|
285
|
+
// Check for Antigravity models instead of Gemini 3
|
|
286
|
+
return /antigravity/i.test(target) || /opus/i.test(target) || /claude/i.test(target);
|
|
287
|
+
}
|
|
288
|
+
//# sourceMappingURL=request-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-helpers.js","sourceRoot":"","sources":["../../../src/plugin/request-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type AntigravityDebugContext } from "./debug";
|
|
2
|
+
/**
|
|
3
|
+
* Detects requests headed to the Google Generative Language API so we can intercept them.
|
|
4
|
+
*/
|
|
5
|
+
export declare function isGenerativeLanguageRequest(input: RequestInfo): input is string;
|
|
6
|
+
/**
|
|
7
|
+
* Rewrites OpenAI-style requests into Antigravity shape, normalizing model, headers,
|
|
8
|
+
* optional cached_content, and thinking config. Also toggles streaming mode for SSE actions.
|
|
9
|
+
*/
|
|
10
|
+
export declare function prepareAntigravityRequest(input: RequestInfo, init: RequestInit | undefined, accessToken: string, projectId: string, endpointOverride?: string): {
|
|
11
|
+
request: RequestInfo;
|
|
12
|
+
init: RequestInit;
|
|
13
|
+
streaming: boolean;
|
|
14
|
+
requestedModel?: string;
|
|
15
|
+
effectiveModel?: string;
|
|
16
|
+
projectId?: string;
|
|
17
|
+
endpoint?: string;
|
|
18
|
+
toolDebugMissing?: number;
|
|
19
|
+
toolDebugSummary?: string;
|
|
20
|
+
toolDebugPayload?: string;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Normalizes Antigravity responses: applies retry headers, extracts cache usage into headers,
|
|
24
|
+
* rewrites preview errors, flattens streaming payloads, and logs debug metadata.
|
|
25
|
+
*/
|
|
26
|
+
export declare function transformAntigravityResponse(response: Response, streaming: boolean, debugContext?: AntigravityDebugContext | null, requestedModel?: string, projectId?: string, endpoint?: string, effectiveModel?: string, toolDebugMissing?: number, toolDebugSummary?: string, toolDebugPayload?: string): Promise<Response>;
|
|
27
|
+
//# sourceMappingURL=request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/plugin/request.ts"],"names":[],"mappings":"AAKA,OAAO,EAA+B,KAAK,uBAAuB,EAAE,MAAM,SAAS,CAAC;AA0BpF;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,WAAW,GAAG,KAAK,IAAI,MAAM,CAE/E;AA6BD;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,gBAAgB,CAAC,EAAE,MAAM,GACxB;IAAE,OAAO,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAE,CAiY3O;AAED;;;GAGG;AACH,wBAAsB,4BAA4B,CAChD,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,OAAO,EAClB,YAAY,CAAC,EAAE,uBAAuB,GAAG,IAAI,EAC7C,cAAc,CAAC,EAAE,MAAM,EACvB,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,EACjB,cAAc,CAAC,EAAE,MAAM,EACvB,gBAAgB,CAAC,EAAE,MAAM,EACzB,gBAAgB,CAAC,EAAE,MAAM,EACzB,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,QAAQ,CAAC,CAgHnB"}
|