opencode-antigravity-auth 1.3.1 → 1.3.2-beta.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 +15 -0
- package/dist/src/antigravity/oauth.d.ts.map +1 -1
- package/dist/src/antigravity/oauth.js +10 -4
- package/dist/src/antigravity/oauth.js.map +1 -1
- package/dist/src/constants.d.ts +30 -3
- package/dist/src/constants.d.ts.map +1 -1
- package/dist/src/constants.js +80 -3
- package/dist/src/constants.js.map +1 -1
- package/dist/src/plugin/accounts.d.ts +39 -3
- package/dist/src/plugin/accounts.d.ts.map +1 -1
- package/dist/src/plugin/accounts.js +163 -17
- package/dist/src/plugin/accounts.js.map +1 -1
- package/dist/src/plugin/cli.d.ts +15 -12
- package/dist/src/plugin/cli.d.ts.map +1 -1
- package/dist/src/plugin/cli.js +40 -13
- package/dist/src/plugin/cli.js.map +1 -1
- package/dist/src/plugin/config/loader.d.ts.map +1 -1
- package/dist/src/plugin/config/loader.js +0 -13
- package/dist/src/plugin/config/loader.js.map +1 -1
- package/dist/src/plugin/config/schema.d.ts +38 -319
- package/dist/src/plugin/config/schema.d.ts.map +1 -1
- package/dist/src/plugin/config/schema.js +66 -27
- package/dist/src/plugin/config/schema.js.map +1 -1
- package/dist/src/plugin/core/streaming/transformer.d.ts.map +1 -1
- package/dist/src/plugin/core/streaming/transformer.js +37 -6
- package/dist/src/plugin/core/streaming/transformer.js.map +1 -1
- package/dist/src/plugin/core/streaming/types.d.ts.map +1 -1
- package/dist/src/plugin/debug.d.ts.map +1 -1
- package/dist/src/plugin/debug.js +14 -1
- package/dist/src/plugin/debug.js.map +1 -1
- package/dist/src/plugin/fingerprint.d.ts +70 -0
- package/dist/src/plugin/fingerprint.d.ts.map +1 -0
- package/dist/src/plugin/fingerprint.js +155 -0
- package/dist/src/plugin/fingerprint.js.map +1 -0
- package/dist/src/plugin/request-helpers.d.ts.map +1 -1
- package/dist/src/plugin/request-helpers.js +61 -23
- package/dist/src/plugin/request-helpers.js.map +1 -1
- package/dist/src/plugin/request.d.ts +4 -1
- package/dist/src/plugin/request.d.ts.map +1 -1
- package/dist/src/plugin/request.js +60 -13
- package/dist/src/plugin/request.js.map +1 -1
- package/dist/src/plugin/rotation.d.ts +5 -4
- package/dist/src/plugin/rotation.d.ts.map +1 -1
- package/dist/src/plugin/rotation.js +35 -9
- package/dist/src/plugin/rotation.js.map +1 -1
- package/dist/src/plugin/search.d.ts +32 -0
- package/dist/src/plugin/search.d.ts.map +1 -0
- package/dist/src/plugin/search.js +197 -0
- package/dist/src/plugin/search.js.map +1 -0
- package/dist/src/plugin/storage.d.ts +2 -0
- package/dist/src/plugin/storage.d.ts.map +1 -1
- package/dist/src/plugin/storage.js +15 -2
- package/dist/src/plugin/storage.js.map +1 -1
- package/dist/src/plugin/transform/gemini.d.ts +1 -13
- package/dist/src/plugin/transform/gemini.d.ts.map +1 -1
- package/dist/src/plugin/transform/gemini.js +49 -12
- package/dist/src/plugin/transform/gemini.js.map +1 -1
- package/dist/src/plugin/transform/model-resolver.d.ts.map +1 -1
- package/dist/src/plugin/transform/model-resolver.js +4 -2
- package/dist/src/plugin/transform/model-resolver.js.map +1 -1
- package/dist/src/plugin/transform/types.d.ts +5 -0
- package/dist/src/plugin/transform/types.d.ts.map +1 -1
- package/dist/src/plugin/types.d.ts +1 -0
- package/dist/src/plugin/types.d.ts.map +1 -1
- package/dist/src/plugin/ui/ansi.d.ts +32 -0
- package/dist/src/plugin/ui/ansi.d.ts.map +1 -0
- package/dist/src/plugin/ui/ansi.js +52 -0
- package/dist/src/plugin/ui/ansi.js.map +1 -0
- package/dist/src/plugin/ui/auth-menu.d.ts +24 -0
- package/dist/src/plugin/ui/auth-menu.d.ts.map +1 -0
- package/dist/src/plugin/ui/auth-menu.js +92 -0
- package/dist/src/plugin/ui/auth-menu.js.map +1 -0
- package/dist/src/plugin/ui/confirm.d.ts +2 -0
- package/dist/src/plugin/ui/confirm.d.ts.map +1 -0
- package/dist/src/plugin/ui/confirm.js +15 -0
- package/dist/src/plugin/ui/confirm.js.map +1 -0
- package/dist/src/plugin/ui/select.d.ts +14 -0
- package/dist/src/plugin/ui/select.d.ts.map +1 -0
- package/dist/src/plugin/ui/select.js +174 -0
- package/dist/src/plugin/ui/select.js.map +1 -0
- package/dist/src/plugin.d.ts.map +1 -1
- package/dist/src/plugin.js +317 -76
- package/dist/src/plugin.js.map +1 -1
- package/package.json +4 -4
|
@@ -16,217 +16,78 @@ import { z } from "zod";
|
|
|
16
16
|
* - `round-robin`: Rotate to next account on every request. Maximum throughput.
|
|
17
17
|
* - `hybrid` (default): Deterministic selection based on health score + token bucket + LRU freshness.
|
|
18
18
|
*/
|
|
19
|
-
export declare const AccountSelectionStrategySchema: z.ZodEnum<
|
|
19
|
+
export declare const AccountSelectionStrategySchema: z.ZodEnum<{
|
|
20
|
+
sticky: "sticky";
|
|
21
|
+
"round-robin": "round-robin";
|
|
22
|
+
hybrid: "hybrid";
|
|
23
|
+
}>;
|
|
20
24
|
export type AccountSelectionStrategy = z.infer<typeof AccountSelectionStrategySchema>;
|
|
25
|
+
/**
|
|
26
|
+
* Scheduling mode for rate limit behavior.
|
|
27
|
+
*
|
|
28
|
+
* - `cache_first`: Wait for same account to recover (preserves prompt cache). Default.
|
|
29
|
+
* - `balance`: Switch account immediately on rate limit. Maximum availability.
|
|
30
|
+
* - `performance_first`: Round-robin distribution for maximum throughput.
|
|
31
|
+
*/
|
|
32
|
+
export declare const SchedulingModeSchema: z.ZodEnum<{
|
|
33
|
+
cache_first: "cache_first";
|
|
34
|
+
balance: "balance";
|
|
35
|
+
performance_first: "performance_first";
|
|
36
|
+
}>;
|
|
37
|
+
export type SchedulingMode = z.infer<typeof SchedulingModeSchema>;
|
|
21
38
|
/**
|
|
22
39
|
* Signature cache configuration for persisting thinking block signatures to disk.
|
|
23
40
|
*/
|
|
24
41
|
export declare const SignatureCacheConfigSchema: z.ZodObject<{
|
|
25
|
-
/** Enable disk caching of signatures (default: true) */
|
|
26
42
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
27
|
-
/** In-memory TTL in seconds (default: 3600 = 1 hour) */
|
|
28
43
|
memory_ttl_seconds: z.ZodDefault<z.ZodNumber>;
|
|
29
|
-
/** Disk TTL in seconds (default: 172800 = 48 hours) */
|
|
30
44
|
disk_ttl_seconds: z.ZodDefault<z.ZodNumber>;
|
|
31
|
-
/** Background write interval in seconds (default: 60) */
|
|
32
45
|
write_interval_seconds: z.ZodDefault<z.ZodNumber>;
|
|
33
|
-
},
|
|
34
|
-
enabled: boolean;
|
|
35
|
-
memory_ttl_seconds: number;
|
|
36
|
-
disk_ttl_seconds: number;
|
|
37
|
-
write_interval_seconds: number;
|
|
38
|
-
}, {
|
|
39
|
-
enabled?: boolean | undefined;
|
|
40
|
-
memory_ttl_seconds?: number | undefined;
|
|
41
|
-
disk_ttl_seconds?: number | undefined;
|
|
42
|
-
write_interval_seconds?: number | undefined;
|
|
43
|
-
}>;
|
|
46
|
+
}, z.core.$strip>;
|
|
44
47
|
/**
|
|
45
48
|
* Main configuration schema for the Antigravity OAuth plugin.
|
|
46
49
|
*/
|
|
47
50
|
export declare const AntigravityConfigSchema: z.ZodObject<{
|
|
48
|
-
/** JSON Schema reference for IDE support */
|
|
49
51
|
$schema: z.ZodOptional<z.ZodString>;
|
|
50
|
-
/**
|
|
51
|
-
* Suppress most toast notifications (rate limit, account switching, etc.)
|
|
52
|
-
* Recovery toasts are always shown regardless of this setting.
|
|
53
|
-
* Env override: OPENCODE_ANTIGRAVITY_QUIET=1
|
|
54
|
-
* @default false
|
|
55
|
-
*/
|
|
56
52
|
quiet_mode: z.ZodDefault<z.ZodBoolean>;
|
|
57
|
-
/**
|
|
58
|
-
* Enable debug logging to file.
|
|
59
|
-
* Env override: OPENCODE_ANTIGRAVITY_DEBUG=1
|
|
60
|
-
* @default false
|
|
61
|
-
*/
|
|
62
53
|
debug: z.ZodDefault<z.ZodBoolean>;
|
|
63
|
-
/**
|
|
64
|
-
* Custom directory for debug logs.
|
|
65
|
-
* Env override: OPENCODE_ANTIGRAVITY_LOG_DIR=/path/to/logs
|
|
66
|
-
* @default OS-specific config dir + "/antigravity-logs"
|
|
67
|
-
*/
|
|
68
54
|
log_dir: z.ZodOptional<z.ZodString>;
|
|
69
|
-
/**
|
|
70
|
-
* Preserve thinking blocks for Claude models using signature caching.
|
|
71
|
-
*
|
|
72
|
-
* When false (default): Thinking blocks are stripped for reliability.
|
|
73
|
-
* When true: Full context preserved, but may encounter signature errors.
|
|
74
|
-
*
|
|
75
|
-
* Env override: OPENCODE_ANTIGRAVITY_KEEP_THINKING=1
|
|
76
|
-
* @default false
|
|
77
|
-
*/
|
|
78
55
|
keep_thinking: z.ZodDefault<z.ZodBoolean>;
|
|
79
|
-
/**
|
|
80
|
-
* Enable automatic session recovery from tool_result_missing errors.
|
|
81
|
-
* When enabled, shows a toast notification when recoverable errors occur.
|
|
82
|
-
*
|
|
83
|
-
* @default true
|
|
84
|
-
*/
|
|
85
56
|
session_recovery: z.ZodDefault<z.ZodBoolean>;
|
|
86
|
-
/**
|
|
87
|
-
* Automatically send a "continue" prompt after successful recovery.
|
|
88
|
-
* Only applies when session_recovery is enabled.
|
|
89
|
-
*
|
|
90
|
-
* When false: Only shows toast notification, user must manually continue.
|
|
91
|
-
* When true: Automatically sends "continue" to resume the session.
|
|
92
|
-
*
|
|
93
|
-
* @default false
|
|
94
|
-
*/
|
|
95
57
|
auto_resume: z.ZodDefault<z.ZodBoolean>;
|
|
96
|
-
/**
|
|
97
|
-
* Custom text to send when auto-resuming after recovery.
|
|
98
|
-
* Only used when auto_resume is enabled.
|
|
99
|
-
*
|
|
100
|
-
* @default "continue"
|
|
101
|
-
*/
|
|
102
58
|
resume_text: z.ZodDefault<z.ZodString>;
|
|
103
|
-
/**
|
|
104
|
-
* Signature cache configuration for persisting thinking block signatures.
|
|
105
|
-
* Only used when keep_thinking is enabled.
|
|
106
|
-
*/
|
|
107
59
|
signature_cache: z.ZodOptional<z.ZodObject<{
|
|
108
|
-
/** Enable disk caching of signatures (default: true) */
|
|
109
60
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
110
|
-
/** In-memory TTL in seconds (default: 3600 = 1 hour) */
|
|
111
61
|
memory_ttl_seconds: z.ZodDefault<z.ZodNumber>;
|
|
112
|
-
/** Disk TTL in seconds (default: 172800 = 48 hours) */
|
|
113
62
|
disk_ttl_seconds: z.ZodDefault<z.ZodNumber>;
|
|
114
|
-
/** Background write interval in seconds (default: 60) */
|
|
115
63
|
write_interval_seconds: z.ZodDefault<z.ZodNumber>;
|
|
116
|
-
},
|
|
117
|
-
enabled: boolean;
|
|
118
|
-
memory_ttl_seconds: number;
|
|
119
|
-
disk_ttl_seconds: number;
|
|
120
|
-
write_interval_seconds: number;
|
|
121
|
-
}, {
|
|
122
|
-
enabled?: boolean | undefined;
|
|
123
|
-
memory_ttl_seconds?: number | undefined;
|
|
124
|
-
disk_ttl_seconds?: number | undefined;
|
|
125
|
-
write_interval_seconds?: number | undefined;
|
|
126
|
-
}>>;
|
|
127
|
-
/**
|
|
128
|
-
* Maximum retry attempts when Antigravity returns an empty response.
|
|
129
|
-
* Empty responses occur when no candidates/choices are returned.
|
|
130
|
-
*
|
|
131
|
-
* @default 4
|
|
132
|
-
*/
|
|
64
|
+
}, z.core.$strip>>;
|
|
133
65
|
empty_response_max_attempts: z.ZodDefault<z.ZodNumber>;
|
|
134
|
-
/**
|
|
135
|
-
* Delay in milliseconds between empty response retries.
|
|
136
|
-
*
|
|
137
|
-
* @default 2000
|
|
138
|
-
*/
|
|
139
66
|
empty_response_retry_delay_ms: z.ZodDefault<z.ZodNumber>;
|
|
140
|
-
/**
|
|
141
|
-
* Enable tool ID orphan recovery.
|
|
142
|
-
* When tool responses have mismatched IDs (due to context compaction),
|
|
143
|
-
* attempt to match them by function name or create placeholders.
|
|
144
|
-
*
|
|
145
|
-
* @default true
|
|
146
|
-
*/
|
|
147
67
|
tool_id_recovery: z.ZodDefault<z.ZodBoolean>;
|
|
148
|
-
/**
|
|
149
|
-
* Enable tool hallucination prevention for Claude models.
|
|
150
|
-
* When enabled, injects:
|
|
151
|
-
* - Parameter signatures into tool descriptions
|
|
152
|
-
* - System instruction with strict tool usage rules
|
|
153
|
-
*
|
|
154
|
-
* This helps prevent Claude from using parameter names from its training
|
|
155
|
-
* data instead of the actual schema.
|
|
156
|
-
*
|
|
157
|
-
* @default true
|
|
158
|
-
*/
|
|
159
68
|
claude_tool_hardening: z.ZodDefault<z.ZodBoolean>;
|
|
160
|
-
/**
|
|
161
|
-
* Enable proactive background token refresh.
|
|
162
|
-
* When enabled, tokens are refreshed in the background before they expire,
|
|
163
|
-
* ensuring requests never block on token refresh.
|
|
164
|
-
*
|
|
165
|
-
* @default true
|
|
166
|
-
*/
|
|
167
69
|
proactive_token_refresh: z.ZodDefault<z.ZodBoolean>;
|
|
168
|
-
/**
|
|
169
|
-
* Seconds before token expiry to trigger proactive refresh.
|
|
170
|
-
* Default is 30 minutes (1800 seconds).
|
|
171
|
-
*
|
|
172
|
-
* @default 1800
|
|
173
|
-
*/
|
|
174
70
|
proactive_refresh_buffer_seconds: z.ZodDefault<z.ZodNumber>;
|
|
175
|
-
/**
|
|
176
|
-
* Interval between proactive refresh checks in seconds.
|
|
177
|
-
* Default is 5 minutes (300 seconds).
|
|
178
|
-
*
|
|
179
|
-
* @default 300
|
|
180
|
-
*/
|
|
181
71
|
proactive_refresh_check_interval_seconds: z.ZodDefault<z.ZodNumber>;
|
|
182
|
-
/**
|
|
183
|
-
* Maximum time in seconds to wait when all accounts are rate-limited.
|
|
184
|
-
* If the minimum wait time across all accounts exceeds this threshold,
|
|
185
|
-
* the plugin fails fast with an error instead of hanging.
|
|
186
|
-
*
|
|
187
|
-
* Set to 0 to disable (wait indefinitely).
|
|
188
|
-
*
|
|
189
|
-
* @default 300 (5 minutes)
|
|
190
|
-
*/
|
|
191
72
|
max_rate_limit_wait_seconds: z.ZodDefault<z.ZodNumber>;
|
|
192
|
-
/**
|
|
193
|
-
* Enable quota fallback for Gemini models.
|
|
194
|
-
* When the preferred quota (gemini-cli or antigravity) is exhausted,
|
|
195
|
-
* try the alternate quota on the same account before switching accounts.
|
|
196
|
-
*
|
|
197
|
-
* Only applies when model is requested without explicit quota suffix.
|
|
198
|
-
* Explicit suffixes like `:antigravity` or `:gemini-cli` always use
|
|
199
|
-
* that specific quota and switch accounts if exhausted.
|
|
200
|
-
*
|
|
201
|
-
* @default false
|
|
202
|
-
*/
|
|
203
73
|
quota_fallback: z.ZodDefault<z.ZodBoolean>;
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
account_selection_strategy: z.ZodDefault<z.ZodEnum<["sticky", "round-robin", "hybrid"]>>;
|
|
210
|
-
/**
|
|
211
|
-
* Enable PID-based account offset for multi-session distribution.
|
|
212
|
-
*
|
|
213
|
-
* When enabled, different sessions (PIDs) will prefer different starting
|
|
214
|
-
* accounts, which helps distribute load when running multiple parallel agents.
|
|
215
|
-
*
|
|
216
|
-
* When disabled (default), accounts start from the same index, which preserves
|
|
217
|
-
* Anthropic's prompt cache across restarts (recommended for single-session use).
|
|
218
|
-
*
|
|
219
|
-
* Env override: OPENCODE_ANTIGRAVITY_PID_OFFSET_ENABLED=1
|
|
220
|
-
* @default false
|
|
221
|
-
*/
|
|
74
|
+
account_selection_strategy: z.ZodDefault<z.ZodEnum<{
|
|
75
|
+
sticky: "sticky";
|
|
76
|
+
"round-robin": "round-robin";
|
|
77
|
+
hybrid: "hybrid";
|
|
78
|
+
}>>;
|
|
222
79
|
pid_offset_enabled: z.ZodDefault<z.ZodBoolean>;
|
|
223
|
-
/**
|
|
224
|
-
* Switch to another account immediately on first rate limit (after 1s delay).
|
|
225
|
-
* When disabled, retries same account first, then switches on second rate limit.
|
|
226
|
-
*
|
|
227
|
-
* @default true
|
|
228
|
-
*/
|
|
229
80
|
switch_on_first_rate_limit: z.ZodDefault<z.ZodBoolean>;
|
|
81
|
+
scheduling_mode: z.ZodDefault<z.ZodEnum<{
|
|
82
|
+
cache_first: "cache_first";
|
|
83
|
+
balance: "balance";
|
|
84
|
+
performance_first: "performance_first";
|
|
85
|
+
}>>;
|
|
86
|
+
max_cache_first_wait_seconds: z.ZodDefault<z.ZodNumber>;
|
|
87
|
+
failure_ttl_seconds: z.ZodDefault<z.ZodNumber>;
|
|
88
|
+
default_retry_after_seconds: z.ZodDefault<z.ZodNumber>;
|
|
89
|
+
max_backoff_seconds: z.ZodDefault<z.ZodNumber>;
|
|
90
|
+
request_jitter_max_ms: z.ZodDefault<z.ZodNumber>;
|
|
230
91
|
health_score: z.ZodOptional<z.ZodObject<{
|
|
231
92
|
initial: z.ZodDefault<z.ZodNumber>;
|
|
232
93
|
success_reward: z.ZodDefault<z.ZodNumber>;
|
|
@@ -235,156 +96,14 @@ export declare const AntigravityConfigSchema: z.ZodObject<{
|
|
|
235
96
|
recovery_rate_per_hour: z.ZodDefault<z.ZodNumber>;
|
|
236
97
|
min_usable: z.ZodDefault<z.ZodNumber>;
|
|
237
98
|
max_score: z.ZodDefault<z.ZodNumber>;
|
|
238
|
-
},
|
|
239
|
-
initial: number;
|
|
240
|
-
success_reward: number;
|
|
241
|
-
rate_limit_penalty: number;
|
|
242
|
-
failure_penalty: number;
|
|
243
|
-
recovery_rate_per_hour: number;
|
|
244
|
-
min_usable: number;
|
|
245
|
-
max_score: number;
|
|
246
|
-
}, {
|
|
247
|
-
initial?: number | undefined;
|
|
248
|
-
success_reward?: number | undefined;
|
|
249
|
-
rate_limit_penalty?: number | undefined;
|
|
250
|
-
failure_penalty?: number | undefined;
|
|
251
|
-
recovery_rate_per_hour?: number | undefined;
|
|
252
|
-
min_usable?: number | undefined;
|
|
253
|
-
max_score?: number | undefined;
|
|
254
|
-
}>>;
|
|
99
|
+
}, z.core.$strip>>;
|
|
255
100
|
token_bucket: z.ZodOptional<z.ZodObject<{
|
|
256
101
|
max_tokens: z.ZodDefault<z.ZodNumber>;
|
|
257
102
|
regeneration_rate_per_minute: z.ZodDefault<z.ZodNumber>;
|
|
258
103
|
initial_tokens: z.ZodDefault<z.ZodNumber>;
|
|
259
|
-
},
|
|
260
|
-
max_tokens: number;
|
|
261
|
-
regeneration_rate_per_minute: number;
|
|
262
|
-
initial_tokens: number;
|
|
263
|
-
}, {
|
|
264
|
-
max_tokens?: number | undefined;
|
|
265
|
-
regeneration_rate_per_minute?: number | undefined;
|
|
266
|
-
initial_tokens?: number | undefined;
|
|
267
|
-
}>>;
|
|
268
|
-
/**
|
|
269
|
-
* Enable automatic plugin updates.
|
|
270
|
-
* @default true
|
|
271
|
-
*/
|
|
104
|
+
}, z.core.$strip>>;
|
|
272
105
|
auto_update: z.ZodDefault<z.ZodBoolean>;
|
|
273
|
-
|
|
274
|
-
/**
|
|
275
|
-
* Default mode for web search when not specified by variant.
|
|
276
|
-
* - `auto`: Model decides when to search (dynamic retrieval).
|
|
277
|
-
* - `off`: Search is disabled by default.
|
|
278
|
-
* @default "off"
|
|
279
|
-
*/
|
|
280
|
-
default_mode: z.ZodDefault<z.ZodEnum<["auto", "off"]>>;
|
|
281
|
-
/**
|
|
282
|
-
* Dynamic retrieval threshold (0.0 to 1.0).
|
|
283
|
-
* Higher values make the model search LESS often (requires higher confidence to trigger search).
|
|
284
|
-
* Only applies in 'auto' mode.
|
|
285
|
-
* @default 0.3
|
|
286
|
-
*/
|
|
287
|
-
grounding_threshold: z.ZodDefault<z.ZodNumber>;
|
|
288
|
-
}, "strip", z.ZodTypeAny, {
|
|
289
|
-
default_mode: "auto" | "off";
|
|
290
|
-
grounding_threshold: number;
|
|
291
|
-
}, {
|
|
292
|
-
default_mode?: "auto" | "off" | undefined;
|
|
293
|
-
grounding_threshold?: number | undefined;
|
|
294
|
-
}>>;
|
|
295
|
-
}, "strip", z.ZodTypeAny, {
|
|
296
|
-
debug: boolean;
|
|
297
|
-
quiet_mode: boolean;
|
|
298
|
-
keep_thinking: boolean;
|
|
299
|
-
session_recovery: boolean;
|
|
300
|
-
auto_resume: boolean;
|
|
301
|
-
resume_text: string;
|
|
302
|
-
empty_response_max_attempts: number;
|
|
303
|
-
empty_response_retry_delay_ms: number;
|
|
304
|
-
tool_id_recovery: boolean;
|
|
305
|
-
claude_tool_hardening: boolean;
|
|
306
|
-
proactive_token_refresh: boolean;
|
|
307
|
-
proactive_refresh_buffer_seconds: number;
|
|
308
|
-
proactive_refresh_check_interval_seconds: number;
|
|
309
|
-
max_rate_limit_wait_seconds: number;
|
|
310
|
-
quota_fallback: boolean;
|
|
311
|
-
account_selection_strategy: "sticky" | "round-robin" | "hybrid";
|
|
312
|
-
pid_offset_enabled: boolean;
|
|
313
|
-
switch_on_first_rate_limit: boolean;
|
|
314
|
-
auto_update: boolean;
|
|
315
|
-
$schema?: string | undefined;
|
|
316
|
-
log_dir?: string | undefined;
|
|
317
|
-
signature_cache?: {
|
|
318
|
-
enabled: boolean;
|
|
319
|
-
memory_ttl_seconds: number;
|
|
320
|
-
disk_ttl_seconds: number;
|
|
321
|
-
write_interval_seconds: number;
|
|
322
|
-
} | undefined;
|
|
323
|
-
health_score?: {
|
|
324
|
-
initial: number;
|
|
325
|
-
success_reward: number;
|
|
326
|
-
rate_limit_penalty: number;
|
|
327
|
-
failure_penalty: number;
|
|
328
|
-
recovery_rate_per_hour: number;
|
|
329
|
-
min_usable: number;
|
|
330
|
-
max_score: number;
|
|
331
|
-
} | undefined;
|
|
332
|
-
token_bucket?: {
|
|
333
|
-
max_tokens: number;
|
|
334
|
-
regeneration_rate_per_minute: number;
|
|
335
|
-
initial_tokens: number;
|
|
336
|
-
} | undefined;
|
|
337
|
-
web_search?: {
|
|
338
|
-
default_mode: "auto" | "off";
|
|
339
|
-
grounding_threshold: number;
|
|
340
|
-
} | undefined;
|
|
341
|
-
}, {
|
|
342
|
-
debug?: boolean | undefined;
|
|
343
|
-
$schema?: string | undefined;
|
|
344
|
-
quiet_mode?: boolean | undefined;
|
|
345
|
-
log_dir?: string | undefined;
|
|
346
|
-
keep_thinking?: boolean | undefined;
|
|
347
|
-
session_recovery?: boolean | undefined;
|
|
348
|
-
auto_resume?: boolean | undefined;
|
|
349
|
-
resume_text?: string | undefined;
|
|
350
|
-
signature_cache?: {
|
|
351
|
-
enabled?: boolean | undefined;
|
|
352
|
-
memory_ttl_seconds?: number | undefined;
|
|
353
|
-
disk_ttl_seconds?: number | undefined;
|
|
354
|
-
write_interval_seconds?: number | undefined;
|
|
355
|
-
} | undefined;
|
|
356
|
-
empty_response_max_attempts?: number | undefined;
|
|
357
|
-
empty_response_retry_delay_ms?: number | undefined;
|
|
358
|
-
tool_id_recovery?: boolean | undefined;
|
|
359
|
-
claude_tool_hardening?: boolean | undefined;
|
|
360
|
-
proactive_token_refresh?: boolean | undefined;
|
|
361
|
-
proactive_refresh_buffer_seconds?: number | undefined;
|
|
362
|
-
proactive_refresh_check_interval_seconds?: number | undefined;
|
|
363
|
-
max_rate_limit_wait_seconds?: number | undefined;
|
|
364
|
-
quota_fallback?: boolean | undefined;
|
|
365
|
-
account_selection_strategy?: "sticky" | "round-robin" | "hybrid" | undefined;
|
|
366
|
-
pid_offset_enabled?: boolean | undefined;
|
|
367
|
-
switch_on_first_rate_limit?: boolean | undefined;
|
|
368
|
-
health_score?: {
|
|
369
|
-
initial?: number | undefined;
|
|
370
|
-
success_reward?: number | undefined;
|
|
371
|
-
rate_limit_penalty?: number | undefined;
|
|
372
|
-
failure_penalty?: number | undefined;
|
|
373
|
-
recovery_rate_per_hour?: number | undefined;
|
|
374
|
-
min_usable?: number | undefined;
|
|
375
|
-
max_score?: number | undefined;
|
|
376
|
-
} | undefined;
|
|
377
|
-
token_bucket?: {
|
|
378
|
-
max_tokens?: number | undefined;
|
|
379
|
-
regeneration_rate_per_minute?: number | undefined;
|
|
380
|
-
initial_tokens?: number | undefined;
|
|
381
|
-
} | undefined;
|
|
382
|
-
auto_update?: boolean | undefined;
|
|
383
|
-
web_search?: {
|
|
384
|
-
default_mode?: "auto" | "off" | undefined;
|
|
385
|
-
grounding_threshold?: number | undefined;
|
|
386
|
-
} | undefined;
|
|
387
|
-
}>;
|
|
106
|
+
}, z.core.$strip>;
|
|
388
107
|
export type AntigravityConfig = z.infer<typeof AntigravityConfigSchema>;
|
|
389
108
|
export type SignatureCacheConfig = z.infer<typeof SignatureCacheConfigSchema>;
|
|
390
109
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/plugin/config/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/plugin/config/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B;;;;EAA8C,CAAC;AAC1F,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB;;;;EAA0D,CAAC;AAC5F,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;;iBAYrC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqTlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,iBA8C5B,CAAC"}
|
|
@@ -17,6 +17,14 @@ import { z } from "zod";
|
|
|
17
17
|
* - `hybrid` (default): Deterministic selection based on health score + token bucket + LRU freshness.
|
|
18
18
|
*/
|
|
19
19
|
export const AccountSelectionStrategySchema = z.enum(['sticky', 'round-robin', 'hybrid']);
|
|
20
|
+
/**
|
|
21
|
+
* Scheduling mode for rate limit behavior.
|
|
22
|
+
*
|
|
23
|
+
* - `cache_first`: Wait for same account to recover (preserves prompt cache). Default.
|
|
24
|
+
* - `balance`: Switch account immediately on rate limit. Maximum availability.
|
|
25
|
+
* - `performance_first`: Round-robin distribution for maximum throughput.
|
|
26
|
+
*/
|
|
27
|
+
export const SchedulingModeSchema = z.enum(['cache_first', 'balance', 'performance_first']);
|
|
20
28
|
/**
|
|
21
29
|
* Signature cache configuration for persisting thinking block signatures to disk.
|
|
22
30
|
*/
|
|
@@ -218,12 +226,60 @@ export const AntigravityConfigSchema = z.object({
|
|
|
218
226
|
*/
|
|
219
227
|
pid_offset_enabled: z.boolean().default(false),
|
|
220
228
|
/**
|
|
221
|
-
|
|
222
|
-
|
|
229
|
+
* Switch to another account immediately on first rate limit (after 1s delay).
|
|
230
|
+
* When disabled, retries same account first, then switches on second rate limit.
|
|
231
|
+
*
|
|
232
|
+
* @default true
|
|
233
|
+
*/
|
|
234
|
+
switch_on_first_rate_limit: z.boolean().default(true),
|
|
235
|
+
/**
|
|
236
|
+
* Scheduling mode for rate limit behavior.
|
|
223
237
|
*
|
|
224
|
-
*
|
|
238
|
+
* - `cache_first`: Wait for same account to recover (preserves prompt cache). Default.
|
|
239
|
+
* - `balance`: Switch account immediately on rate limit. Maximum availability.
|
|
240
|
+
* - `performance_first`: Round-robin distribution for maximum throughput.
|
|
241
|
+
*
|
|
242
|
+
* Env override: OPENCODE_ANTIGRAVITY_SCHEDULING_MODE
|
|
243
|
+
* @default "cache_first"
|
|
225
244
|
*/
|
|
226
|
-
|
|
245
|
+
scheduling_mode: SchedulingModeSchema.default('cache_first'),
|
|
246
|
+
/**
|
|
247
|
+
* Maximum seconds to wait for same account in cache_first mode.
|
|
248
|
+
* If the account's rate limit reset time exceeds this, switch accounts.
|
|
249
|
+
*
|
|
250
|
+
* @default 60
|
|
251
|
+
*/
|
|
252
|
+
max_cache_first_wait_seconds: z.number().min(5).max(300).default(60),
|
|
253
|
+
/**
|
|
254
|
+
* TTL in seconds for failure count expiration.
|
|
255
|
+
* After this period of no failures, consecutiveFailures resets to 0.
|
|
256
|
+
* This prevents old failures from permanently penalizing an account.
|
|
257
|
+
*
|
|
258
|
+
* @default 3600 (1 hour)
|
|
259
|
+
*/
|
|
260
|
+
failure_ttl_seconds: z.number().min(60).max(7200).default(3600),
|
|
261
|
+
/**
|
|
262
|
+
* Default retry delay in seconds when API doesn't return a retry-after header.
|
|
263
|
+
* Lower values allow faster retries but may trigger more 429 errors.
|
|
264
|
+
*
|
|
265
|
+
* @default 60
|
|
266
|
+
*/
|
|
267
|
+
default_retry_after_seconds: z.number().min(1).max(300).default(60),
|
|
268
|
+
/**
|
|
269
|
+
* Maximum backoff delay in seconds for exponential retry.
|
|
270
|
+
* This caps how long the exponential backoff can grow.
|
|
271
|
+
*
|
|
272
|
+
* @default 60
|
|
273
|
+
*/
|
|
274
|
+
max_backoff_seconds: z.number().min(5).max(300).default(60),
|
|
275
|
+
/**
|
|
276
|
+
* Maximum random delay in milliseconds before each API request.
|
|
277
|
+
* Adds timing jitter to break predictable request cadence patterns.
|
|
278
|
+
* Set to 0 to disable request jitter.
|
|
279
|
+
*
|
|
280
|
+
* @default 0
|
|
281
|
+
*/
|
|
282
|
+
request_jitter_max_ms: z.number().min(0).max(5000).default(0),
|
|
227
283
|
// =========================================================================
|
|
228
284
|
// Health Score (used by hybrid strategy)
|
|
229
285
|
// =========================================================================
|
|
@@ -252,25 +308,6 @@ export const AntigravityConfigSchema = z.object({
|
|
|
252
308
|
* @default true
|
|
253
309
|
*/
|
|
254
310
|
auto_update: z.boolean().default(true),
|
|
255
|
-
// =========================================================================
|
|
256
|
-
// Web Search (Gemini Grounding)
|
|
257
|
-
// =========================================================================
|
|
258
|
-
web_search: z.object({
|
|
259
|
-
/**
|
|
260
|
-
* Default mode for web search when not specified by variant.
|
|
261
|
-
* - `auto`: Model decides when to search (dynamic retrieval).
|
|
262
|
-
* - `off`: Search is disabled by default.
|
|
263
|
-
* @default "off"
|
|
264
|
-
*/
|
|
265
|
-
default_mode: z.enum(['auto', 'off']).default('off'),
|
|
266
|
-
/**
|
|
267
|
-
* Dynamic retrieval threshold (0.0 to 1.0).
|
|
268
|
-
* Higher values make the model search LESS often (requires higher confidence to trigger search).
|
|
269
|
-
* Only applies in 'auto' mode.
|
|
270
|
-
* @default 0.3
|
|
271
|
-
*/
|
|
272
|
-
grounding_threshold: z.number().min(0).max(1).default(0.3),
|
|
273
|
-
}).optional(),
|
|
274
311
|
});
|
|
275
312
|
/**
|
|
276
313
|
* Default configuration values.
|
|
@@ -294,6 +331,12 @@ export const DEFAULT_CONFIG = {
|
|
|
294
331
|
account_selection_strategy: 'hybrid',
|
|
295
332
|
pid_offset_enabled: false,
|
|
296
333
|
switch_on_first_rate_limit: true,
|
|
334
|
+
scheduling_mode: 'cache_first',
|
|
335
|
+
max_cache_first_wait_seconds: 60,
|
|
336
|
+
failure_ttl_seconds: 3600,
|
|
337
|
+
default_retry_after_seconds: 60,
|
|
338
|
+
max_backoff_seconds: 60,
|
|
339
|
+
request_jitter_max_ms: 0,
|
|
297
340
|
auto_update: true,
|
|
298
341
|
signature_cache: {
|
|
299
342
|
enabled: true,
|
|
@@ -315,9 +358,5 @@ export const DEFAULT_CONFIG = {
|
|
|
315
358
|
regeneration_rate_per_minute: 6,
|
|
316
359
|
initial_tokens: 50,
|
|
317
360
|
},
|
|
318
|
-
web_search: {
|
|
319
|
-
default_mode: 'off',
|
|
320
|
-
grounding_threshold: 0.3,
|
|
321
|
-
},
|
|
322
361
|
};
|
|
323
362
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/plugin/config/schema.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/plugin/config/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../../../../../src/plugin/core/streaming/transformer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACd,MAAM,SAAS,CAAC;AAejB,wBAAgB,mBAAmB,IAAI,aAAa,CAOnD;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,sBAAsB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,OAAO,GACtD,MAAM,CAuBR;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,OAAO,EACjB,UAAU,EAAE,aAAa,EACzB,uBAAuB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACpC,OAAO,CA+GT;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,EAC5B,kBAAkB,EAAE,aAAa,EACjC,SAAS,EAAE,kBAAkB,EAC7B,OAAO,EAAE,gBAAgB,EACzB,UAAU,EAAE;IAAE,QAAQ,EAAE,OAAO,CAAA;CAAE,GAChC,MAAM,
|
|
1
|
+
{"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../../../../../src/plugin/core/streaming/transformer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACd,MAAM,SAAS,CAAC;AAejB,wBAAgB,mBAAmB,IAAI,aAAa,CAOnD;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,sBAAsB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,OAAO,GACtD,MAAM,CAuBR;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,OAAO,EACjB,UAAU,EAAE,aAAa,EACzB,uBAAuB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACpC,OAAO,CA+GT;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,EAC5B,kBAAkB,EAAE,aAAa,EACjC,SAAS,EAAE,kBAAkB,EAC7B,OAAO,EAAE,gBAAgB,EACzB,UAAU,EAAE;IAAE,QAAQ,EAAE,OAAO,CAAA;CAAE,GAChC,MAAM,CAyCR;AAED,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,OAAO,EACjB,mBAAmB,EAAE,MAAM,EAC3B,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,EAC5B,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,GAC/E,IAAI,CAyDN;AAED,wBAAgB,0BAA0B,CACxC,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAE,kBAAkB,EAC7B,OAAO,GAAE,gBAAqB,GAC7B,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC,CAoEzC"}
|
|
@@ -155,6 +155,7 @@ export function transformSseLine(line, signatureStore, thoughtBuffer, sentThinki
|
|
|
155
155
|
response = callbacks.onInjectDebug(response, options.debugText);
|
|
156
156
|
debugState.injected = true;
|
|
157
157
|
}
|
|
158
|
+
// Note: onInjectSyntheticThinking removed - keep_thinking now uses debugText path
|
|
158
159
|
const transformed = callbacks.transformThinkingParts
|
|
159
160
|
? callbacks.transformThinkingParts(response)
|
|
160
161
|
: response;
|
|
@@ -197,16 +198,25 @@ export function cacheThinkingSignaturesFromResponse(response, signatureSessionKe
|
|
|
197
198
|
});
|
|
198
199
|
}
|
|
199
200
|
if (Array.isArray(resp.content)) {
|
|
200
|
-
|
|
201
|
+
// Use thoughtBuffer to accumulate thinking text across SSE events
|
|
202
|
+
// Claude streams thinking content and signature in separate events
|
|
203
|
+
const CLAUDE_BUFFER_KEY = 0; // Use index 0 for Claude's single-stream content
|
|
201
204
|
resp.content.forEach((block) => {
|
|
202
205
|
const b = block;
|
|
203
206
|
if (b?.type === 'thinking') {
|
|
204
|
-
|
|
207
|
+
const text = (b.thinking || b.text || '');
|
|
208
|
+
if (text) {
|
|
209
|
+
const current = thoughtBuffer.get(CLAUDE_BUFFER_KEY) ?? '';
|
|
210
|
+
thoughtBuffer.set(CLAUDE_BUFFER_KEY, current + text);
|
|
211
|
+
}
|
|
205
212
|
}
|
|
206
|
-
if (b?.signature
|
|
207
|
-
const
|
|
208
|
-
|
|
209
|
-
|
|
213
|
+
if (b?.signature) {
|
|
214
|
+
const fullText = thoughtBuffer.get(CLAUDE_BUFFER_KEY) ?? '';
|
|
215
|
+
if (fullText) {
|
|
216
|
+
const signature = b.signature;
|
|
217
|
+
onCacheSignature?.(signatureSessionKey, fullText, signature);
|
|
218
|
+
signatureStore.set(signatureSessionKey, { text: fullText, signature });
|
|
219
|
+
}
|
|
210
220
|
}
|
|
211
221
|
});
|
|
212
222
|
}
|
|
@@ -218,12 +228,17 @@ export function createStreamingTransformer(signatureStore, callbacks, options =
|
|
|
218
228
|
const thoughtBuffer = createThoughtBuffer();
|
|
219
229
|
const sentThinkingBuffer = createThoughtBuffer();
|
|
220
230
|
const debugState = { injected: false };
|
|
231
|
+
let hasSeenUsageMetadata = false;
|
|
221
232
|
return new TransformStream({
|
|
222
233
|
transform(chunk, controller) {
|
|
223
234
|
buffer += decoder.decode(chunk, { stream: true });
|
|
224
235
|
const lines = buffer.split('\n');
|
|
225
236
|
buffer = lines.pop() || '';
|
|
226
237
|
for (const line of lines) {
|
|
238
|
+
// Quick check for usage metadata presence in the raw line
|
|
239
|
+
if (line.includes('usageMetadata')) {
|
|
240
|
+
hasSeenUsageMetadata = true;
|
|
241
|
+
}
|
|
227
242
|
const transformedLine = transformSseLine(line, signatureStore, thoughtBuffer, sentThinkingBuffer, callbacks, options, debugState);
|
|
228
243
|
controller.enqueue(encoder.encode(transformedLine + '\n'));
|
|
229
244
|
}
|
|
@@ -231,9 +246,25 @@ export function createStreamingTransformer(signatureStore, callbacks, options =
|
|
|
231
246
|
flush(controller) {
|
|
232
247
|
buffer += decoder.decode();
|
|
233
248
|
if (buffer) {
|
|
249
|
+
if (buffer.includes('usageMetadata')) {
|
|
250
|
+
hasSeenUsageMetadata = true;
|
|
251
|
+
}
|
|
234
252
|
const transformedLine = transformSseLine(buffer, signatureStore, thoughtBuffer, sentThinkingBuffer, callbacks, options, debugState);
|
|
235
253
|
controller.enqueue(encoder.encode(transformedLine));
|
|
236
254
|
}
|
|
255
|
+
// Inject synthetic usage metadata if missing (fixes "Context % used: 0%" issue)
|
|
256
|
+
if (!hasSeenUsageMetadata) {
|
|
257
|
+
const syntheticUsage = {
|
|
258
|
+
response: {
|
|
259
|
+
usageMetadata: {
|
|
260
|
+
promptTokenCount: 0,
|
|
261
|
+
candidatesTokenCount: 0,
|
|
262
|
+
totalTokenCount: 0,
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
};
|
|
266
|
+
controller.enqueue(encoder.encode(`\ndata: ${JSON.stringify(syntheticUsage)}\n\n`));
|
|
267
|
+
}
|
|
237
268
|
},
|
|
238
269
|
});
|
|
239
270
|
}
|