opencode-agy-auth 2.0.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/LICENSE +21 -0
- package/README.md +745 -0
- 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 +171 -0
- package/dist/src/antigravity/oauth.js.map +1 -0
- package/dist/src/constants.d.ts +155 -0
- package/dist/src/constants.d.ts.map +1 -0
- package/dist/src/constants.js +251 -0
- package/dist/src/constants.js.map +1 -0
- package/dist/src/hooks/auto-update-checker/cache.d.ts +3 -0
- package/dist/src/hooks/auto-update-checker/cache.d.ts.map +1 -0
- package/dist/src/hooks/auto-update-checker/cache.js +71 -0
- package/dist/src/hooks/auto-update-checker/cache.js.map +1 -0
- package/dist/src/hooks/auto-update-checker/checker.d.ts +16 -0
- package/dist/src/hooks/auto-update-checker/checker.d.ts.map +1 -0
- package/dist/src/hooks/auto-update-checker/checker.js +237 -0
- package/dist/src/hooks/auto-update-checker/checker.js.map +1 -0
- package/dist/src/hooks/auto-update-checker/constants.d.ts +9 -0
- package/dist/src/hooks/auto-update-checker/constants.d.ts.map +1 -0
- package/dist/src/hooks/auto-update-checker/constants.js +23 -0
- package/dist/src/hooks/auto-update-checker/constants.js.map +1 -0
- package/dist/src/hooks/auto-update-checker/index.d.ts +34 -0
- package/dist/src/hooks/auto-update-checker/index.d.ts.map +1 -0
- package/dist/src/hooks/auto-update-checker/index.js +125 -0
- package/dist/src/hooks/auto-update-checker/index.js.map +1 -0
- package/dist/src/hooks/auto-update-checker/types.d.ts +25 -0
- package/dist/src/hooks/auto-update-checker/types.d.ts.map +1 -0
- package/dist/src/hooks/auto-update-checker/types.js +1 -0
- package/dist/src/hooks/auto-update-checker/types.js.map +1 -0
- package/dist/src/plugin/accounts.d.ts +174 -0
- package/dist/src/plugin/accounts.d.ts.map +1 -0
- package/dist/src/plugin/accounts.js +1243 -0
- package/dist/src/plugin/accounts.js.map +1 -0
- package/dist/src/plugin/auth.d.ts +21 -0
- package/dist/src/plugin/auth.d.ts.map +1 -0
- package/dist/src/plugin/auth.js +46 -0
- package/dist/src/plugin/auth.js.map +1 -0
- package/dist/src/plugin/cache/index.d.ts +5 -0
- package/dist/src/plugin/cache/index.d.ts.map +1 -0
- package/dist/src/plugin/cache/index.js +5 -0
- package/dist/src/plugin/cache/index.js.map +1 -0
- package/dist/src/plugin/cache/signature-cache.d.ts +111 -0
- package/dist/src/plugin/cache/signature-cache.d.ts.map +1 -0
- package/dist/src/plugin/cache/signature-cache.js +375 -0
- package/dist/src/plugin/cache/signature-cache.js.map +1 -0
- package/dist/src/plugin/cache.d.ts +44 -0
- package/dist/src/plugin/cache.d.ts.map +1 -0
- package/dist/src/plugin/cache.js +200 -0
- package/dist/src/plugin/cache.js.map +1 -0
- package/dist/src/plugin/cli.d.ts +27 -0
- package/dist/src/plugin/cli.d.ts.map +1 -0
- package/dist/src/plugin/cli.js +130 -0
- package/dist/src/plugin/cli.js.map +1 -0
- package/dist/src/plugin/config/index.d.ts +16 -0
- package/dist/src/plugin/config/index.d.ts.map +1 -0
- package/dist/src/plugin/config/index.js +16 -0
- package/dist/src/plugin/config/index.js.map +1 -0
- package/dist/src/plugin/config/loader.d.ts +38 -0
- package/dist/src/plugin/config/loader.d.ts.map +1 -0
- package/dist/src/plugin/config/loader.js +204 -0
- package/dist/src/plugin/config/loader.js.map +1 -0
- package/dist/src/plugin/config/models.d.ts +27 -0
- package/dist/src/plugin/config/models.d.ts.map +1 -0
- package/dist/src/plugin/config/models.js +79 -0
- package/dist/src/plugin/config/models.js.map +1 -0
- package/dist/src/plugin/config/schema.d.ts +134 -0
- package/dist/src/plugin/config/schema.d.ts.map +1 -0
- package/dist/src/plugin/config/schema.js +445 -0
- package/dist/src/plugin/config/schema.js.map +1 -0
- package/dist/src/plugin/config/updater.d.ts +55 -0
- package/dist/src/plugin/config/updater.d.ts.map +1 -0
- package/dist/src/plugin/config/updater.js +133 -0
- package/dist/src/plugin/config/updater.js.map +1 -0
- package/dist/src/plugin/core/streaming/index.d.ts +3 -0
- package/dist/src/plugin/core/streaming/index.d.ts.map +1 -0
- package/dist/src/plugin/core/streaming/index.js +3 -0
- package/dist/src/plugin/core/streaming/index.js.map +1 -0
- package/dist/src/plugin/core/streaming/transformer.d.ts +10 -0
- package/dist/src/plugin/core/streaming/transformer.d.ts.map +1 -0
- package/dist/src/plugin/core/streaming/transformer.js +271 -0
- package/dist/src/plugin/core/streaming/transformer.js.map +1 -0
- package/dist/src/plugin/core/streaming/types.d.ts +27 -0
- package/dist/src/plugin/core/streaming/types.d.ts.map +1 -0
- package/dist/src/plugin/core/streaming/types.js +1 -0
- package/dist/src/plugin/core/streaming/types.js.map +1 -0
- package/dist/src/plugin/debug.d.ts +94 -0
- package/dist/src/plugin/debug.d.ts.map +1 -0
- package/dist/src/plugin/debug.js +418 -0
- package/dist/src/plugin/debug.js.map +1 -0
- package/dist/src/plugin/errors.d.ts +28 -0
- package/dist/src/plugin/errors.d.ts.map +1 -0
- package/dist/src/plugin/errors.js +42 -0
- package/dist/src/plugin/errors.js.map +1 -0
- package/dist/src/plugin/fingerprint.d.ts +71 -0
- package/dist/src/plugin/fingerprint.d.ts.map +1 -0
- package/dist/src/plugin/fingerprint.js +140 -0
- package/dist/src/plugin/fingerprint.js.map +1 -0
- package/dist/src/plugin/image-saver.d.ts +25 -0
- package/dist/src/plugin/image-saver.d.ts.map +1 -0
- package/dist/src/plugin/image-saver.js +86 -0
- package/dist/src/plugin/image-saver.js.map +1 -0
- package/dist/src/plugin/logger.d.ts +54 -0
- package/dist/src/plugin/logger.d.ts.map +1 -0
- package/dist/src/plugin/logger.js +120 -0
- package/dist/src/plugin/logger.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 +234 -0
- package/dist/src/plugin/project.js.map +1 -0
- package/dist/src/plugin/proxy.d.ts +2 -0
- package/dist/src/plugin/proxy.d.ts.map +1 -0
- package/dist/src/plugin/proxy.js +20 -0
- package/dist/src/plugin/proxy.js.map +1 -0
- package/dist/src/plugin/quota.d.ts +58 -0
- package/dist/src/plugin/quota.d.ts.map +1 -0
- package/dist/src/plugin/quota.js +430 -0
- package/dist/src/plugin/quota.js.map +1 -0
- package/dist/src/plugin/recovery/constants.d.ts +22 -0
- package/dist/src/plugin/recovery/constants.d.ts.map +1 -0
- package/dist/src/plugin/recovery/constants.js +43 -0
- package/dist/src/plugin/recovery/constants.js.map +1 -0
- package/dist/src/plugin/recovery/index.d.ts +12 -0
- package/dist/src/plugin/recovery/index.d.ts.map +1 -0
- package/dist/src/plugin/recovery/index.js +12 -0
- package/dist/src/plugin/recovery/index.js.map +1 -0
- package/dist/src/plugin/recovery/storage.d.ts +24 -0
- package/dist/src/plugin/recovery/storage.d.ts.map +1 -0
- package/dist/src/plugin/recovery/storage.js +354 -0
- package/dist/src/plugin/recovery/storage.js.map +1 -0
- package/dist/src/plugin/recovery/types.d.ts +116 -0
- package/dist/src/plugin/recovery/types.d.ts.map +1 -0
- package/dist/src/plugin/recovery/types.js +6 -0
- package/dist/src/plugin/recovery/types.js.map +1 -0
- package/dist/src/plugin/recovery.d.ts +61 -0
- package/dist/src/plugin/recovery.d.ts.map +1 -0
- package/dist/src/plugin/recovery.js +378 -0
- package/dist/src/plugin/recovery.js.map +1 -0
- package/dist/src/plugin/refresh-queue.d.ts +101 -0
- package/dist/src/plugin/refresh-queue.d.ts.map +1 -0
- package/dist/src/plugin/refresh-queue.js +248 -0
- package/dist/src/plugin/refresh-queue.js.map +1 -0
- package/dist/src/plugin/request-helpers.d.ts +306 -0
- package/dist/src/plugin/request-helpers.d.ts.map +1 -0
- package/dist/src/plugin/request-helpers.js +2476 -0
- package/dist/src/plugin/request-helpers.js.map +1 -0
- package/dist/src/plugin/request.d.ts +98 -0
- package/dist/src/plugin/request.d.ts.map +1 -0
- package/dist/src/plugin/request.js +1513 -0
- package/dist/src/plugin/request.js.map +1 -0
- package/dist/src/plugin/rotation.d.ts +169 -0
- package/dist/src/plugin/rotation.d.ts.map +1 -0
- package/dist/src/plugin/rotation.js +328 -0
- package/dist/src/plugin/rotation.js.map +1 -0
- 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 +195 -0
- package/dist/src/plugin/search.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 +324 -0
- package/dist/src/plugin/server.js.map +1 -0
- package/dist/src/plugin/storage.d.ts +137 -0
- package/dist/src/plugin/storage.d.ts.map +1 -0
- package/dist/src/plugin/storage.js +588 -0
- package/dist/src/plugin/storage.js.map +1 -0
- package/dist/src/plugin/stores/signature-store.d.ts +5 -0
- package/dist/src/plugin/stores/signature-store.d.ts.map +1 -0
- package/dist/src/plugin/stores/signature-store.js +25 -0
- package/dist/src/plugin/stores/signature-store.js.map +1 -0
- package/dist/src/plugin/thinking-recovery.d.ts +90 -0
- package/dist/src/plugin/thinking-recovery.d.ts.map +1 -0
- package/dist/src/plugin/thinking-recovery.js +316 -0
- package/dist/src/plugin/thinking-recovery.js.map +1 -0
- package/dist/src/plugin/token.d.ts +19 -0
- package/dist/src/plugin/token.d.ts.map +1 -0
- package/dist/src/plugin/token.js +128 -0
- package/dist/src/plugin/token.js.map +1 -0
- package/dist/src/plugin/transform/claude.d.ts +82 -0
- package/dist/src/plugin/transform/claude.d.ts.map +1 -0
- package/dist/src/plugin/transform/claude.js +278 -0
- package/dist/src/plugin/transform/claude.js.map +1 -0
- package/dist/src/plugin/transform/cross-model-sanitizer.d.ts +35 -0
- package/dist/src/plugin/transform/cross-model-sanitizer.d.ts.map +1 -0
- package/dist/src/plugin/transform/cross-model-sanitizer.js +225 -0
- package/dist/src/plugin/transform/cross-model-sanitizer.js.map +1 -0
- package/dist/src/plugin/transform/gemini.d.ts +100 -0
- package/dist/src/plugin/transform/gemini.d.ts.map +1 -0
- package/dist/src/plugin/transform/gemini.js +504 -0
- package/dist/src/plugin/transform/gemini.js.map +1 -0
- package/dist/src/plugin/transform/index.d.ts +15 -0
- package/dist/src/plugin/transform/index.d.ts.map +1 -0
- package/dist/src/plugin/transform/index.js +14 -0
- package/dist/src/plugin/transform/index.js.map +1 -0
- package/dist/src/plugin/transform/model-resolver.d.ts +104 -0
- package/dist/src/plugin/transform/model-resolver.d.ts.map +1 -0
- package/dist/src/plugin/transform/model-resolver.js +409 -0
- package/dist/src/plugin/transform/model-resolver.js.map +1 -0
- package/dist/src/plugin/transform/types.d.ts +111 -0
- package/dist/src/plugin/transform/types.d.ts.map +1 -0
- package/dist/src/plugin/transform/types.js +1 -0
- package/dist/src/plugin/transform/types.js.map +1 -0
- package/dist/src/plugin/types.d.ts +97 -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/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 +37 -0
- package/dist/src/plugin/ui/auth-menu.d.ts.map +1 -0
- package/dist/src/plugin/ui/auth-menu.js +182 -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 +23 -0
- package/dist/src/plugin/ui/select.d.ts.map +1 -0
- package/dist/src/plugin/ui/select.js +254 -0
- package/dist/src/plugin/ui/select.js.map +1 -0
- package/dist/src/plugin/version.d.ts +19 -0
- package/dist/src/plugin/version.d.ts.map +1 -0
- package/dist/src/plugin/version.js +74 -0
- package/dist/src/plugin/version.js.map +1 -0
- package/dist/src/plugin.d.ts +40 -0
- package/dist/src/plugin.d.ts.map +1 -0
- package/dist/src/plugin.js +3407 -0
- package/dist/src/plugin.js.map +1 -0
- package/package.json +73 -0
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenCode configuration file updater.
|
|
3
|
+
*
|
|
4
|
+
* Updates ~/.config/opencode/opencode.json(c) with plugin models.
|
|
5
|
+
*/
|
|
6
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync } from "node:fs";
|
|
7
|
+
import { join, dirname } from "node:path";
|
|
8
|
+
import { homedir } from "node:os";
|
|
9
|
+
import { OPENCODE_MODEL_DEFINITIONS } from "./models";
|
|
10
|
+
// =============================================================================
|
|
11
|
+
// Constants
|
|
12
|
+
// =============================================================================
|
|
13
|
+
const PLUGIN_ID = "opencode-agy-auth";
|
|
14
|
+
const LEGACY_PLUGIN_ID = "opencode-ag-auth";
|
|
15
|
+
const PLUGIN_NAME = `${PLUGIN_ID}@latest`;
|
|
16
|
+
const SCHEMA_URL = "https://opencode.ai/config.json";
|
|
17
|
+
const OPENCODE_JSON_FILENAME = "opencode.json";
|
|
18
|
+
const OPENCODE_JSONC_FILENAME = "opencode.jsonc";
|
|
19
|
+
function stripJsonCommentsAndTrailingCommas(json) {
|
|
20
|
+
return json
|
|
21
|
+
.replace(/\\"|"(?:\\"|[^"])*"|(\/\/.*|\/\*[\s\S]*?\*\/)/g, (match, group) => (group ? "" : match))
|
|
22
|
+
.replace(/,(\s*[}\]])/g, "$1");
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Get the opencode config directory path.
|
|
26
|
+
*/
|
|
27
|
+
export function getOpencodeConfigDir() {
|
|
28
|
+
const xdgConfig = process.env.XDG_CONFIG_HOME || join(homedir(), ".config");
|
|
29
|
+
return join(xdgConfig, "opencode");
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Get the opencode config file path.
|
|
33
|
+
*
|
|
34
|
+
* Prefers opencode.jsonc when present so we update the active config file
|
|
35
|
+
* instead of creating a new opencode.json.
|
|
36
|
+
*/
|
|
37
|
+
export function getOpencodeConfigPath() {
|
|
38
|
+
const configDir = getOpencodeConfigDir();
|
|
39
|
+
const jsoncPath = join(configDir, OPENCODE_JSONC_FILENAME);
|
|
40
|
+
const jsonPath = join(configDir, OPENCODE_JSON_FILENAME);
|
|
41
|
+
if (existsSync(jsoncPath)) {
|
|
42
|
+
return jsoncPath;
|
|
43
|
+
}
|
|
44
|
+
if (existsSync(jsonPath)) {
|
|
45
|
+
return jsonPath;
|
|
46
|
+
}
|
|
47
|
+
return jsonPath;
|
|
48
|
+
}
|
|
49
|
+
// =============================================================================
|
|
50
|
+
// Main Function
|
|
51
|
+
// =============================================================================
|
|
52
|
+
/**
|
|
53
|
+
* Updates the opencode configuration file with plugin models.
|
|
54
|
+
*
|
|
55
|
+
* This function:
|
|
56
|
+
* 1. Reads existing opencode.json/opencode.jsonc (or creates default structure)
|
|
57
|
+
* 2. Replaces `provider.google.models` with plugin models
|
|
58
|
+
* 3. Writes back to disk with proper formatting
|
|
59
|
+
*
|
|
60
|
+
* Preserves:
|
|
61
|
+
* - $schema and other top-level config keys
|
|
62
|
+
* - Non-google provider sections
|
|
63
|
+
* - Other settings within google provider (except models)
|
|
64
|
+
*
|
|
65
|
+
* @param options - Optional configuration (e.g., custom configPath for testing)
|
|
66
|
+
* @returns UpdateConfigResult with success status and path
|
|
67
|
+
*/
|
|
68
|
+
export async function updateOpencodeConfig(options = {}) {
|
|
69
|
+
const configPath = options.configPath ?? getOpencodeConfigPath();
|
|
70
|
+
try {
|
|
71
|
+
let config;
|
|
72
|
+
// Read existing config or create default
|
|
73
|
+
if (existsSync(configPath)) {
|
|
74
|
+
const content = readFileSync(configPath, "utf-8");
|
|
75
|
+
config = JSON.parse(stripJsonCommentsAndTrailingCommas(content));
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
// Create default config structure
|
|
79
|
+
config = {
|
|
80
|
+
$schema: SCHEMA_URL,
|
|
81
|
+
plugin: [],
|
|
82
|
+
provider: {},
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
// Ensure $schema is set
|
|
86
|
+
if (!config.$schema) {
|
|
87
|
+
config.$schema = SCHEMA_URL;
|
|
88
|
+
}
|
|
89
|
+
// Ensure plugin array exists and contains our plugin
|
|
90
|
+
if (!Array.isArray(config.plugin)) {
|
|
91
|
+
config.plugin = [];
|
|
92
|
+
}
|
|
93
|
+
config.plugin = config.plugin.map((entry) => {
|
|
94
|
+
if (!entry.includes(LEGACY_PLUGIN_ID) || entry.includes(PLUGIN_ID)) {
|
|
95
|
+
return entry;
|
|
96
|
+
}
|
|
97
|
+
return entry.replace(LEGACY_PLUGIN_ID, PLUGIN_ID);
|
|
98
|
+
});
|
|
99
|
+
// Check if plugin is already in the list (any version)
|
|
100
|
+
const hasPlugin = config.plugin.some((p) => p.includes(PLUGIN_ID));
|
|
101
|
+
if (!hasPlugin) {
|
|
102
|
+
config.plugin.push(PLUGIN_NAME);
|
|
103
|
+
}
|
|
104
|
+
// Ensure provider.google structure exists
|
|
105
|
+
if (!config.provider) {
|
|
106
|
+
config.provider = {};
|
|
107
|
+
}
|
|
108
|
+
if (!config.provider.google) {
|
|
109
|
+
config.provider.google = {};
|
|
110
|
+
}
|
|
111
|
+
// Replace google models with plugin models
|
|
112
|
+
config.provider.google.models = { ...OPENCODE_MODEL_DEFINITIONS };
|
|
113
|
+
// Ensure config directory exists
|
|
114
|
+
const configDir = dirname(configPath);
|
|
115
|
+
if (!existsSync(configDir)) {
|
|
116
|
+
mkdirSync(configDir, { recursive: true });
|
|
117
|
+
}
|
|
118
|
+
// Write config with proper formatting (2-space indent)
|
|
119
|
+
writeFileSync(configPath, JSON.stringify(config, null, 2), "utf-8");
|
|
120
|
+
return {
|
|
121
|
+
success: true,
|
|
122
|
+
configPath,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
return {
|
|
127
|
+
success: false,
|
|
128
|
+
configPath,
|
|
129
|
+
error: error instanceof Error ? error.message : String(error),
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=updater.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updater.js","sourceRoot":"","sources":["../../../../src/plugin/config/updater.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/plugin/core/streaming/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/plugin/core/streaming/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { SignatureStore, StreamingCallbacks, StreamingOptions, ThoughtBuffer } from './types';
|
|
2
|
+
export declare function createThoughtBuffer(): ThoughtBuffer;
|
|
3
|
+
export declare function transformStreamingPayload(payload: string, transformThinkingParts?: (response: unknown) => unknown): string;
|
|
4
|
+
export declare function deduplicateThinkingText(response: unknown, sentBuffer: ThoughtBuffer, displayedThinkingHashes?: Set<string>): unknown;
|
|
5
|
+
export declare function transformSseLine(line: string, signatureStore: SignatureStore, thoughtBuffer: ThoughtBuffer, sentThinkingBuffer: ThoughtBuffer, callbacks: StreamingCallbacks, options: StreamingOptions, debugState: {
|
|
6
|
+
injected: boolean;
|
|
7
|
+
}): string;
|
|
8
|
+
export declare function cacheThinkingSignaturesFromResponse(response: unknown, signatureSessionKey: string, signatureStore: SignatureStore, thoughtBuffer: ThoughtBuffer, onCacheSignature?: (sessionKey: string, text: string, signature: string) => void): void;
|
|
9
|
+
export declare function createStreamingTransformer(signatureStore: SignatureStore, callbacks: StreamingCallbacks, options?: StreamingOptions): TransformStream<Uint8Array, Uint8Array>;
|
|
10
|
+
//# sourceMappingURL=transformer.d.ts.map
|
|
@@ -0,0 +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,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"}
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
import { processImageData } from '../../image-saver';
|
|
2
|
+
/**
|
|
3
|
+
* Simple string hash for thinking deduplication.
|
|
4
|
+
* Uses DJB2-like algorithm.
|
|
5
|
+
*/
|
|
6
|
+
function hashString(str) {
|
|
7
|
+
let hash = 5381;
|
|
8
|
+
for (let i = 0; i < str.length; i++) {
|
|
9
|
+
hash = ((hash << 5) + hash) + str.charCodeAt(i); /* hash * 33 + c */
|
|
10
|
+
}
|
|
11
|
+
return (hash >>> 0).toString(16);
|
|
12
|
+
}
|
|
13
|
+
export function createThoughtBuffer() {
|
|
14
|
+
const buffer = new Map();
|
|
15
|
+
return {
|
|
16
|
+
get: (index) => buffer.get(index),
|
|
17
|
+
set: (index, text) => buffer.set(index, text),
|
|
18
|
+
clear: () => buffer.clear(),
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export function transformStreamingPayload(payload, transformThinkingParts) {
|
|
22
|
+
return payload
|
|
23
|
+
.split('\n')
|
|
24
|
+
.map((line) => {
|
|
25
|
+
if (!line.startsWith('data:')) {
|
|
26
|
+
return line;
|
|
27
|
+
}
|
|
28
|
+
const json = line.slice(5).trim();
|
|
29
|
+
if (!json) {
|
|
30
|
+
return line;
|
|
31
|
+
}
|
|
32
|
+
try {
|
|
33
|
+
const parsed = JSON.parse(json);
|
|
34
|
+
if (parsed.response !== undefined) {
|
|
35
|
+
const transformed = transformThinkingParts
|
|
36
|
+
? transformThinkingParts(parsed.response)
|
|
37
|
+
: parsed.response;
|
|
38
|
+
return `data: ${JSON.stringify(transformed)}`;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
catch (_) { }
|
|
42
|
+
return line;
|
|
43
|
+
})
|
|
44
|
+
.join('\n');
|
|
45
|
+
}
|
|
46
|
+
export function deduplicateThinkingText(response, sentBuffer, displayedThinkingHashes) {
|
|
47
|
+
if (!response || typeof response !== 'object')
|
|
48
|
+
return response;
|
|
49
|
+
const resp = response;
|
|
50
|
+
if (Array.isArray(resp.candidates)) {
|
|
51
|
+
const newCandidates = resp.candidates.map((candidate, index) => {
|
|
52
|
+
const cand = candidate;
|
|
53
|
+
if (!cand?.content)
|
|
54
|
+
return candidate;
|
|
55
|
+
const content = cand.content;
|
|
56
|
+
if (!Array.isArray(content.parts))
|
|
57
|
+
return candidate;
|
|
58
|
+
const newParts = content.parts.map((part) => {
|
|
59
|
+
const p = part;
|
|
60
|
+
// Handle image data - save to disk and return file path
|
|
61
|
+
if (p.inlineData) {
|
|
62
|
+
const inlineData = p.inlineData;
|
|
63
|
+
const result = processImageData({
|
|
64
|
+
mimeType: inlineData.mimeType,
|
|
65
|
+
data: inlineData.data,
|
|
66
|
+
});
|
|
67
|
+
if (result) {
|
|
68
|
+
return { text: result };
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (p.thought === true || p.type === 'thinking') {
|
|
72
|
+
const fullText = (p.text || p.thinking || '');
|
|
73
|
+
if (displayedThinkingHashes) {
|
|
74
|
+
const hash = hashString(fullText);
|
|
75
|
+
if (displayedThinkingHashes.has(hash)) {
|
|
76
|
+
sentBuffer.set(index, fullText);
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
displayedThinkingHashes.add(hash);
|
|
80
|
+
}
|
|
81
|
+
const sentText = sentBuffer.get(index) ?? '';
|
|
82
|
+
if (fullText.startsWith(sentText)) {
|
|
83
|
+
const delta = fullText.slice(sentText.length);
|
|
84
|
+
sentBuffer.set(index, fullText);
|
|
85
|
+
if (delta) {
|
|
86
|
+
return { ...p, text: delta, thinking: delta };
|
|
87
|
+
}
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
sentBuffer.set(index, fullText);
|
|
91
|
+
return part;
|
|
92
|
+
}
|
|
93
|
+
return part;
|
|
94
|
+
});
|
|
95
|
+
const filteredParts = newParts.filter((p) => p !== null);
|
|
96
|
+
return {
|
|
97
|
+
...cand,
|
|
98
|
+
content: { ...content, parts: filteredParts },
|
|
99
|
+
};
|
|
100
|
+
});
|
|
101
|
+
return { ...resp, candidates: newCandidates };
|
|
102
|
+
}
|
|
103
|
+
if (Array.isArray(resp.content)) {
|
|
104
|
+
let thinkingIndex = 0;
|
|
105
|
+
const newContent = resp.content.map((block) => {
|
|
106
|
+
const b = block;
|
|
107
|
+
if (b?.type === 'thinking') {
|
|
108
|
+
const fullText = (b.thinking || b.text || '');
|
|
109
|
+
if (displayedThinkingHashes) {
|
|
110
|
+
const hash = hashString(fullText);
|
|
111
|
+
if (displayedThinkingHashes.has(hash)) {
|
|
112
|
+
sentBuffer.set(thinkingIndex, fullText);
|
|
113
|
+
thinkingIndex++;
|
|
114
|
+
return null;
|
|
115
|
+
}
|
|
116
|
+
displayedThinkingHashes.add(hash);
|
|
117
|
+
}
|
|
118
|
+
const sentText = sentBuffer.get(thinkingIndex) ?? '';
|
|
119
|
+
if (fullText.startsWith(sentText)) {
|
|
120
|
+
const delta = fullText.slice(sentText.length);
|
|
121
|
+
sentBuffer.set(thinkingIndex, fullText);
|
|
122
|
+
thinkingIndex++;
|
|
123
|
+
if (delta) {
|
|
124
|
+
return { ...b, thinking: delta, text: delta };
|
|
125
|
+
}
|
|
126
|
+
return null;
|
|
127
|
+
}
|
|
128
|
+
sentBuffer.set(thinkingIndex, fullText);
|
|
129
|
+
thinkingIndex++;
|
|
130
|
+
return block;
|
|
131
|
+
}
|
|
132
|
+
return block;
|
|
133
|
+
});
|
|
134
|
+
const filteredContent = newContent.filter((b) => b !== null);
|
|
135
|
+
return { ...resp, content: filteredContent };
|
|
136
|
+
}
|
|
137
|
+
return response;
|
|
138
|
+
}
|
|
139
|
+
export function transformSseLine(line, signatureStore, thoughtBuffer, sentThinkingBuffer, callbacks, options, debugState) {
|
|
140
|
+
if (!line.startsWith('data:')) {
|
|
141
|
+
return line;
|
|
142
|
+
}
|
|
143
|
+
const json = line.slice(5).trim();
|
|
144
|
+
if (!json) {
|
|
145
|
+
return line;
|
|
146
|
+
}
|
|
147
|
+
try {
|
|
148
|
+
const parsed = JSON.parse(json);
|
|
149
|
+
if (parsed.response !== undefined) {
|
|
150
|
+
if (options.cacheSignatures && options.signatureSessionKey) {
|
|
151
|
+
cacheThinkingSignaturesFromResponse(parsed.response, options.signatureSessionKey, signatureStore, thoughtBuffer, callbacks.onCacheSignature);
|
|
152
|
+
}
|
|
153
|
+
let response = deduplicateThinkingText(parsed.response, sentThinkingBuffer, options.displayedThinkingHashes);
|
|
154
|
+
if (options.debugText && callbacks.onInjectDebug && !debugState.injected) {
|
|
155
|
+
response = callbacks.onInjectDebug(response, options.debugText);
|
|
156
|
+
debugState.injected = true;
|
|
157
|
+
}
|
|
158
|
+
// Note: onInjectSyntheticThinking removed - keep_thinking now uses debugText path
|
|
159
|
+
const transformed = callbacks.transformThinkingParts
|
|
160
|
+
? callbacks.transformThinkingParts(response)
|
|
161
|
+
: response;
|
|
162
|
+
return `data: ${JSON.stringify(transformed)}`;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
catch (_) { }
|
|
166
|
+
return line;
|
|
167
|
+
}
|
|
168
|
+
export function cacheThinkingSignaturesFromResponse(response, signatureSessionKey, signatureStore, thoughtBuffer, onCacheSignature) {
|
|
169
|
+
if (!response || typeof response !== 'object')
|
|
170
|
+
return;
|
|
171
|
+
const resp = response;
|
|
172
|
+
if (Array.isArray(resp.candidates)) {
|
|
173
|
+
resp.candidates.forEach((candidate, index) => {
|
|
174
|
+
const cand = candidate;
|
|
175
|
+
if (!cand?.content)
|
|
176
|
+
return;
|
|
177
|
+
const content = cand.content;
|
|
178
|
+
if (!Array.isArray(content.parts))
|
|
179
|
+
return;
|
|
180
|
+
content.parts.forEach((part) => {
|
|
181
|
+
const p = part;
|
|
182
|
+
if (p.thought === true || p.type === 'thinking') {
|
|
183
|
+
const text = (p.text || p.thinking || '');
|
|
184
|
+
if (text) {
|
|
185
|
+
const current = thoughtBuffer.get(index) ?? '';
|
|
186
|
+
thoughtBuffer.set(index, current + text);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
if (p.thoughtSignature) {
|
|
190
|
+
const fullText = thoughtBuffer.get(index) ?? '';
|
|
191
|
+
if (fullText) {
|
|
192
|
+
const signature = p.thoughtSignature;
|
|
193
|
+
onCacheSignature?.(signatureSessionKey, fullText, signature);
|
|
194
|
+
signatureStore.set(signatureSessionKey, { text: fullText, signature });
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
if (Array.isArray(resp.content)) {
|
|
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
|
|
204
|
+
resp.content.forEach((block) => {
|
|
205
|
+
const b = block;
|
|
206
|
+
if (b?.type === 'thinking') {
|
|
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
|
+
}
|
|
212
|
+
}
|
|
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
|
+
}
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
export function createStreamingTransformer(signatureStore, callbacks, options = {}) {
|
|
225
|
+
const decoder = new TextDecoder();
|
|
226
|
+
const encoder = new TextEncoder();
|
|
227
|
+
let buffer = '';
|
|
228
|
+
const thoughtBuffer = createThoughtBuffer();
|
|
229
|
+
const sentThinkingBuffer = createThoughtBuffer();
|
|
230
|
+
const debugState = { injected: false };
|
|
231
|
+
let hasSeenUsageMetadata = false;
|
|
232
|
+
return new TransformStream({
|
|
233
|
+
transform(chunk, controller) {
|
|
234
|
+
buffer += decoder.decode(chunk, { stream: true });
|
|
235
|
+
const lines = buffer.split('\n');
|
|
236
|
+
buffer = lines.pop() || '';
|
|
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
|
+
}
|
|
242
|
+
const transformedLine = transformSseLine(line, signatureStore, thoughtBuffer, sentThinkingBuffer, callbacks, options, debugState);
|
|
243
|
+
controller.enqueue(encoder.encode(transformedLine + '\n'));
|
|
244
|
+
}
|
|
245
|
+
},
|
|
246
|
+
flush(controller) {
|
|
247
|
+
buffer += decoder.decode();
|
|
248
|
+
if (buffer) {
|
|
249
|
+
if (buffer.includes('usageMetadata')) {
|
|
250
|
+
hasSeenUsageMetadata = true;
|
|
251
|
+
}
|
|
252
|
+
const transformedLine = transformSseLine(buffer, signatureStore, thoughtBuffer, sentThinkingBuffer, callbacks, options, debugState);
|
|
253
|
+
controller.enqueue(encoder.encode(transformedLine));
|
|
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
|
+
}
|
|
268
|
+
},
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
//# sourceMappingURL=transformer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformer.js","sourceRoot":"","sources":["../../../../../src/plugin/core/streaming/transformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface SignedThinking {
|
|
2
|
+
text: string;
|
|
3
|
+
signature: string;
|
|
4
|
+
}
|
|
5
|
+
export interface SignatureStore {
|
|
6
|
+
get(sessionKey: string): SignedThinking | undefined;
|
|
7
|
+
set(sessionKey: string, value: SignedThinking): void;
|
|
8
|
+
has(sessionKey: string): boolean;
|
|
9
|
+
delete(sessionKey: string): void;
|
|
10
|
+
}
|
|
11
|
+
export interface StreamingCallbacks {
|
|
12
|
+
onCacheSignature?: (sessionKey: string, text: string, signature: string) => void;
|
|
13
|
+
onInjectDebug?: (response: unknown, debugText: string) => unknown;
|
|
14
|
+
transformThinkingParts?: (parts: unknown) => unknown;
|
|
15
|
+
}
|
|
16
|
+
export interface StreamingOptions {
|
|
17
|
+
signatureSessionKey?: string;
|
|
18
|
+
debugText?: string;
|
|
19
|
+
cacheSignatures?: boolean;
|
|
20
|
+
displayedThinkingHashes?: Set<string>;
|
|
21
|
+
}
|
|
22
|
+
export interface ThoughtBuffer {
|
|
23
|
+
get(index: number): string | undefined;
|
|
24
|
+
set(index: number, text: string): void;
|
|
25
|
+
clear(): void;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/plugin/core/streaming/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IACpD,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;IACrD,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACjF,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IAElE,sBAAsB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;CACtD;AAED,MAAM,WAAW,gBAAgB;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,uBAAuB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAEvC;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACvC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,KAAK,IAAI,IAAI,CAAC;CACf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/plugin/core/streaming/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import type { AntigravityConfig } from "./config";
|
|
2
|
+
export declare const DEBUG_MESSAGE_PREFIX = "[opencode-agy-auth debug]";
|
|
3
|
+
/**
|
|
4
|
+
* Initialize or reinitialize debug state with the given config.
|
|
5
|
+
* Call this once at plugin startup after loading config.
|
|
6
|
+
*/
|
|
7
|
+
export declare function initializeDebug(config: AntigravityConfig): void;
|
|
8
|
+
export declare function isDebugEnabled(): boolean;
|
|
9
|
+
export declare function isVerboseEnabled(): boolean;
|
|
10
|
+
export declare function getLogFilePath(): string | undefined;
|
|
11
|
+
export interface AntigravityDebugContext {
|
|
12
|
+
id: string;
|
|
13
|
+
streaming: boolean;
|
|
14
|
+
startedAt: number;
|
|
15
|
+
}
|
|
16
|
+
interface AntigravityDebugRequestMeta {
|
|
17
|
+
originalUrl: string;
|
|
18
|
+
resolvedUrl: string;
|
|
19
|
+
method?: string;
|
|
20
|
+
headers?: HeadersInit;
|
|
21
|
+
body?: BodyInit | null;
|
|
22
|
+
streaming: boolean;
|
|
23
|
+
projectId?: string;
|
|
24
|
+
}
|
|
25
|
+
interface AntigravityDebugResponseMeta {
|
|
26
|
+
body?: string;
|
|
27
|
+
note?: string;
|
|
28
|
+
error?: unknown;
|
|
29
|
+
headersOverride?: HeadersInit;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Begins a debug trace for an Antigravity request.
|
|
33
|
+
*/
|
|
34
|
+
export declare function startAntigravityDebugRequest(meta: AntigravityDebugRequestMeta): AntigravityDebugContext | null;
|
|
35
|
+
/**
|
|
36
|
+
* Logs response details for a previously started debug trace.
|
|
37
|
+
*/
|
|
38
|
+
export declare function logAntigravityDebugResponse(context: AntigravityDebugContext | null | undefined, response: Response, meta?: AntigravityDebugResponseMeta): void;
|
|
39
|
+
export interface AccountDebugInfo {
|
|
40
|
+
index: number;
|
|
41
|
+
email?: string;
|
|
42
|
+
family: string;
|
|
43
|
+
totalAccounts: number;
|
|
44
|
+
rateLimitState?: {
|
|
45
|
+
claude?: number;
|
|
46
|
+
gemini?: number;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
export declare function logAccountContext(label: string, info: AccountDebugInfo): void;
|
|
50
|
+
export declare function logRateLimitEvent(accountIndex: number, email: string | undefined, family: string, status: number, retryAfterMs: number, bodyInfo: {
|
|
51
|
+
message?: string;
|
|
52
|
+
quotaResetTime?: string;
|
|
53
|
+
retryDelayMs?: number | null;
|
|
54
|
+
reason?: string;
|
|
55
|
+
}): void;
|
|
56
|
+
export declare function logRateLimitSnapshot(family: string, accounts: Array<{
|
|
57
|
+
index: number;
|
|
58
|
+
email?: string;
|
|
59
|
+
rateLimitResetTimes?: {
|
|
60
|
+
claude?: number;
|
|
61
|
+
gemini?: number;
|
|
62
|
+
};
|
|
63
|
+
}>): void;
|
|
64
|
+
export declare function logResponseBody(context: AntigravityDebugContext | null | undefined, response: Response, status: number): Promise<string | undefined>;
|
|
65
|
+
export declare function logModelFamily(url: string, extractedModel: string | null, family: string): void;
|
|
66
|
+
export declare function debugLogToFile(message: string): void;
|
|
67
|
+
/**
|
|
68
|
+
* Logs a toast message to the debug file.
|
|
69
|
+
* This helps correlate what the user saw with debug events.
|
|
70
|
+
*/
|
|
71
|
+
export declare function logToast(message: string, variant: "info" | "warning" | "success" | "error"): void;
|
|
72
|
+
/**
|
|
73
|
+
* Logs retry attempt information.
|
|
74
|
+
* @param maxAttempts - Use -1 for unlimited retries
|
|
75
|
+
*/
|
|
76
|
+
export declare function logRetryAttempt(attempt: number, maxAttempts: number, reason: string, delayMs?: number): void;
|
|
77
|
+
/**
|
|
78
|
+
* Logs cache hit/miss information from response usage metadata.
|
|
79
|
+
*/
|
|
80
|
+
export declare function logCacheStats(model: string, cacheReadTokens: number, cacheWriteTokens: number, totalInputTokens: number): void;
|
|
81
|
+
/**
|
|
82
|
+
* Logs quota status for an account.
|
|
83
|
+
*/
|
|
84
|
+
export declare function logQuotaStatus(accountEmail: string | undefined, accountIndex: number, quotaPercent: number, family?: string): void;
|
|
85
|
+
/**
|
|
86
|
+
* Logs background quota fetch events.
|
|
87
|
+
*/
|
|
88
|
+
export declare function logQuotaFetch(event: "start" | "complete" | "error", accountCount?: number, details?: string): void;
|
|
89
|
+
/**
|
|
90
|
+
* Logs which model is being used for a request.
|
|
91
|
+
*/
|
|
92
|
+
export declare function logModelUsed(requestedModel: string, actualModel: string, accountEmail?: string): void;
|
|
93
|
+
export {};
|
|
94
|
+
//# sourceMappingURL=debug.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../../src/plugin/debug.ts"],"names":[],"mappings":"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"}
|