opencode-antigravity-auth-mf 11.3.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 +630 -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 +168 -0
- package/dist/src/antigravity/oauth.js.map +1 -0
- package/dist/src/constants.d.ts +99 -0
- package/dist/src/constants.d.ts.map +1 -0
- package/dist/src/constants.js +135 -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 +86 -0
- package/dist/src/plugin/accounts.d.ts.map +1 -0
- package/dist/src/plugin/accounts.js +609 -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 +19 -0
- package/dist/src/plugin/cli.d.ts.map +1 -0
- package/dist/src/plugin/cli.js +59 -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 +37 -0
- package/dist/src/plugin/config/loader.d.ts.map +1 -0
- package/dist/src/plugin/config/loader.js +206 -0
- package/dist/src/plugin/config/loader.js.map +1 -0
- package/dist/src/plugin/config/schema.d.ts +411 -0
- package/dist/src/plugin/config/schema.d.ts.map +1 -0
- package/dist/src/plugin/config/schema.js +339 -0
- package/dist/src/plugin/config/schema.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 +255 -0
- package/dist/src/plugin/core/streaming/transformer.js.map +1 -0
- package/dist/src/plugin/core/streaming/types.d.ts +35 -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 +68 -0
- package/dist/src/plugin/debug.d.ts.map +1 -0
- package/dist/src/plugin/debug.js +325 -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/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/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 +376 -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 +244 -0
- package/dist/src/plugin/refresh-queue.js.map +1 -0
- package/dist/src/plugin/request-helpers.d.ts +278 -0
- package/dist/src/plugin/request-helpers.d.ts.map +1 -0
- package/dist/src/plugin/request-helpers.js +2268 -0
- package/dist/src/plugin/request-helpers.js.map +1 -0
- package/dist/src/plugin/request.d.ts +91 -0
- package/dist/src/plugin/request.d.ts.map +1 -0
- package/dist/src/plugin/request.js +1302 -0
- package/dist/src/plugin/request.js.map +1 -0
- package/dist/src/plugin/rotation.d.ts +168 -0
- package/dist/src/plugin/rotation.d.ts.map +1 -0
- package/dist/src/plugin/rotation.js +302 -0
- package/dist/src/plugin/rotation.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 +92 -0
- package/dist/src/plugin/storage.d.ts.map +1 -0
- package/dist/src/plugin/storage.js +417 -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 +80 -0
- package/dist/src/plugin/transform/claude.d.ts.map +1 -0
- package/dist/src/plugin/transform/claude.js +265 -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 +112 -0
- package/dist/src/plugin/transform/gemini.d.ts.map +1 -0
- package/dist/src/plugin/transform/gemini.js +409 -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 +101 -0
- package/dist/src/plugin/transform/model-resolver.d.ts.map +1 -0
- package/dist/src/plugin/transform/model-resolver.js +356 -0
- package/dist/src/plugin/transform/model-resolver.js.map +1 -0
- package/dist/src/plugin/transform/types.d.ts +106 -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 +96 -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/usage-reporter.d.ts +23 -0
- package/dist/src/plugin/usage-reporter.d.ts.map +1 -0
- package/dist/src/plugin/usage-reporter.js +43 -0
- package/dist/src/plugin/usage-reporter.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 +1708 -0
- package/dist/src/plugin.js.map +1 -0
- package/package.json +67 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured Logger for Antigravity Plugin
|
|
3
|
+
*
|
|
4
|
+
* Provides TUI-integrated logging that is silent by default.
|
|
5
|
+
* Logs are only visible when:
|
|
6
|
+
* 1. TUI client is available (logs to app log panel)
|
|
7
|
+
* 2. OPENCODE_ANTIGRAVITY_CONSOLE_LOG=1 is set (logs to console)
|
|
8
|
+
*
|
|
9
|
+
* Ported from opencode-google-antigravity-auth/src/plugin/logger.ts
|
|
10
|
+
*/
|
|
11
|
+
import type { PluginClient } from "./types";
|
|
12
|
+
type LogLevel = "debug" | "info" | "warn" | "error";
|
|
13
|
+
export interface Logger {
|
|
14
|
+
debug(message: string, extra?: Record<string, unknown>): void;
|
|
15
|
+
info(message: string, extra?: Record<string, unknown>): void;
|
|
16
|
+
warn(message: string, extra?: Record<string, unknown>): void;
|
|
17
|
+
error(message: string, extra?: Record<string, unknown>): void;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Initialize the logger with the plugin client.
|
|
21
|
+
* Must be called during plugin initialization to enable TUI logging.
|
|
22
|
+
*/
|
|
23
|
+
export declare function initLogger(client: PluginClient): void;
|
|
24
|
+
/**
|
|
25
|
+
* Get the current client (for testing or advanced usage).
|
|
26
|
+
*/
|
|
27
|
+
export declare function getLoggerClient(): PluginClient | null;
|
|
28
|
+
/**
|
|
29
|
+
* Create a logger instance for a specific module.
|
|
30
|
+
*
|
|
31
|
+
* @param module - The module name (e.g., "refresh-queue", "transform.claude")
|
|
32
|
+
* @returns Logger instance with debug, info, warn, error methods
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```typescript
|
|
36
|
+
* const log = createLogger("refresh-queue");
|
|
37
|
+
* log.debug("Checking tokens", { count: 5 });
|
|
38
|
+
* log.warn("Token expired", { accountIndex: 0 });
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare function createLogger(module: string): Logger;
|
|
42
|
+
/**
|
|
43
|
+
* Print a message to the console with Antigravity prefix.
|
|
44
|
+
* Only outputs when OPENCODE_ANTIGRAVITY_CONSOLE_LOG=1 is set.
|
|
45
|
+
*
|
|
46
|
+
* Use this for standalone messages that don't belong to a specific module.
|
|
47
|
+
*
|
|
48
|
+
* @param level - Log level
|
|
49
|
+
* @param message - Message to print
|
|
50
|
+
* @param extra - Optional extra data
|
|
51
|
+
*/
|
|
52
|
+
export declare function printAntigravityConsole(level: LogLevel, message: string, extra?: unknown): void;
|
|
53
|
+
export {};
|
|
54
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/plugin/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,KAAK,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAKpD,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC9D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC/D;AAYD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAErD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,YAAY,GAAG,IAAI,CAErD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CA0CnD;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,OAAO,GACd,IAAI,CAsBN"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured Logger for Antigravity Plugin
|
|
3
|
+
*
|
|
4
|
+
* Provides TUI-integrated logging that is silent by default.
|
|
5
|
+
* Logs are only visible when:
|
|
6
|
+
* 1. TUI client is available (logs to app log panel)
|
|
7
|
+
* 2. OPENCODE_ANTIGRAVITY_CONSOLE_LOG=1 is set (logs to console)
|
|
8
|
+
*
|
|
9
|
+
* Ported from opencode-google-antigravity-auth/src/plugin/logger.ts
|
|
10
|
+
*/
|
|
11
|
+
const ENV_CONSOLE_LOG = "OPENCODE_ANTIGRAVITY_CONSOLE_LOG";
|
|
12
|
+
const ANTIGRAVITY_CONSOLE_PREFIX = "[Antigravity]";
|
|
13
|
+
let _client = null;
|
|
14
|
+
/**
|
|
15
|
+
* Check if console logging is enabled via environment variable.
|
|
16
|
+
*/
|
|
17
|
+
function isConsoleLogEnabled() {
|
|
18
|
+
const val = process.env[ENV_CONSOLE_LOG];
|
|
19
|
+
return val === "1" || val?.toLowerCase() === "true";
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Initialize the logger with the plugin client.
|
|
23
|
+
* Must be called during plugin initialization to enable TUI logging.
|
|
24
|
+
*/
|
|
25
|
+
export function initLogger(client) {
|
|
26
|
+
_client = client;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Get the current client (for testing or advanced usage).
|
|
30
|
+
*/
|
|
31
|
+
export function getLoggerClient() {
|
|
32
|
+
return _client;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Create a logger instance for a specific module.
|
|
36
|
+
*
|
|
37
|
+
* @param module - The module name (e.g., "refresh-queue", "transform.claude")
|
|
38
|
+
* @returns Logger instance with debug, info, warn, error methods
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* const log = createLogger("refresh-queue");
|
|
43
|
+
* log.debug("Checking tokens", { count: 5 });
|
|
44
|
+
* log.warn("Token expired", { accountIndex: 0 });
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export function createLogger(module) {
|
|
48
|
+
const service = `antigravity.${module}`;
|
|
49
|
+
const log = (level, message, extra) => {
|
|
50
|
+
// Try TUI logging first
|
|
51
|
+
const app = _client?.app;
|
|
52
|
+
if (app && typeof app.log === "function") {
|
|
53
|
+
app
|
|
54
|
+
.log({
|
|
55
|
+
body: { service, level, message, extra },
|
|
56
|
+
})
|
|
57
|
+
.catch(() => {
|
|
58
|
+
// Silently ignore logging errors
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
else if (isConsoleLogEnabled()) {
|
|
62
|
+
// Fallback to console if env var is set
|
|
63
|
+
const prefix = `[${service}]`;
|
|
64
|
+
const args = extra ? [prefix, message, extra] : [prefix, message];
|
|
65
|
+
switch (level) {
|
|
66
|
+
case "debug":
|
|
67
|
+
console.debug(...args);
|
|
68
|
+
break;
|
|
69
|
+
case "info":
|
|
70
|
+
console.info(...args);
|
|
71
|
+
break;
|
|
72
|
+
case "warn":
|
|
73
|
+
console.warn(...args);
|
|
74
|
+
break;
|
|
75
|
+
case "error":
|
|
76
|
+
console.error(...args);
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// If neither TUI nor console logging is enabled, log is silently discarded
|
|
81
|
+
};
|
|
82
|
+
return {
|
|
83
|
+
debug: (message, extra) => log("debug", message, extra),
|
|
84
|
+
info: (message, extra) => log("info", message, extra),
|
|
85
|
+
warn: (message, extra) => log("warn", message, extra),
|
|
86
|
+
error: (message, extra) => log("error", message, extra),
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Print a message to the console with Antigravity prefix.
|
|
91
|
+
* Only outputs when OPENCODE_ANTIGRAVITY_CONSOLE_LOG=1 is set.
|
|
92
|
+
*
|
|
93
|
+
* Use this for standalone messages that don't belong to a specific module.
|
|
94
|
+
*
|
|
95
|
+
* @param level - Log level
|
|
96
|
+
* @param message - Message to print
|
|
97
|
+
* @param extra - Optional extra data
|
|
98
|
+
*/
|
|
99
|
+
export function printAntigravityConsole(level, message, extra) {
|
|
100
|
+
if (!isConsoleLogEnabled()) {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
const prefixedMessage = `${ANTIGRAVITY_CONSOLE_PREFIX} ${message}`;
|
|
104
|
+
const args = extra === undefined ? [prefixedMessage] : [prefixedMessage, extra];
|
|
105
|
+
switch (level) {
|
|
106
|
+
case "debug":
|
|
107
|
+
console.debug(...args);
|
|
108
|
+
break;
|
|
109
|
+
case "info":
|
|
110
|
+
console.info(...args);
|
|
111
|
+
break;
|
|
112
|
+
case "warn":
|
|
113
|
+
console.warn(...args);
|
|
114
|
+
break;
|
|
115
|
+
case "error":
|
|
116
|
+
console.error(...args);
|
|
117
|
+
break;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/plugin/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { OAuthAuthDetails, ProjectContextResult } from "./types";
|
|
2
|
+
interface AntigravityUserTier {
|
|
3
|
+
id?: string;
|
|
4
|
+
isDefault?: boolean;
|
|
5
|
+
userDefinedCloudaicompanionProject?: boolean;
|
|
6
|
+
}
|
|
7
|
+
interface LoadCodeAssistPayload {
|
|
8
|
+
cloudaicompanionProject?: string | {
|
|
9
|
+
id?: string;
|
|
10
|
+
};
|
|
11
|
+
currentTier?: {
|
|
12
|
+
id?: string;
|
|
13
|
+
};
|
|
14
|
+
allowedTiers?: AntigravityUserTier[];
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Clears cached project context results and pending promises, globally or for a refresh key.
|
|
18
|
+
*/
|
|
19
|
+
export declare function invalidateProjectContextCache(refresh?: string): void;
|
|
20
|
+
/**
|
|
21
|
+
* Loads managed project information for the given access token and optional project.
|
|
22
|
+
*/
|
|
23
|
+
export declare function loadManagedProject(accessToken: string, projectId?: string): Promise<LoadCodeAssistPayload | null>;
|
|
24
|
+
/**
|
|
25
|
+
* Onboards a managed project for the user, optionally retrying until completion.
|
|
26
|
+
*/
|
|
27
|
+
export declare function onboardManagedProject(accessToken: string, tierId: string, projectId?: string, attempts?: number, delayMs?: number): Promise<string | undefined>;
|
|
28
|
+
/**
|
|
29
|
+
* Resolves an effective project ID for the current auth state, caching results per refresh token.
|
|
30
|
+
*/
|
|
31
|
+
export declare function ensureProjectContext(auth: OAuthAuthDetails): Promise<ProjectContextResult>;
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../../src/plugin/project.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAatE,UAAU,mBAAmB;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kCAAkC,CAAC,EAAE,OAAO,CAAC;CAC9C;AAED,UAAU,qBAAqB;IAC7B,uBAAuB,CAAC,EAAE,MAAM,GAAG;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD,WAAW,CAAC,EAAE;QACZ,EAAE,CAAC,EAAE,MAAM,CAAC;KACb,CAAC;IACF,YAAY,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACtC;AAuED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAQpE;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAuCvC;AAGD;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,SAAK,EACb,OAAO,SAAO,GACb,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA6C7B;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA+FhG"}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
import { ANTIGRAVITY_HEADERS, ANTIGRAVITY_ENDPOINT_FALLBACKS, ANTIGRAVITY_LOAD_ENDPOINTS, ANTIGRAVITY_DEFAULT_PROJECT_ID, } from "../constants";
|
|
2
|
+
import { formatRefreshParts, parseRefreshParts } from "./auth";
|
|
3
|
+
import { createLogger } from "./logger";
|
|
4
|
+
const log = createLogger("project");
|
|
5
|
+
const projectContextResultCache = new Map();
|
|
6
|
+
const projectContextPendingCache = new Map();
|
|
7
|
+
const CODE_ASSIST_METADATA = {
|
|
8
|
+
ideType: "IDE_UNSPECIFIED",
|
|
9
|
+
platform: "PLATFORM_UNSPECIFIED",
|
|
10
|
+
pluginType: "GEMINI",
|
|
11
|
+
};
|
|
12
|
+
function buildMetadata(projectId) {
|
|
13
|
+
const metadata = {
|
|
14
|
+
ideType: CODE_ASSIST_METADATA.ideType,
|
|
15
|
+
platform: CODE_ASSIST_METADATA.platform,
|
|
16
|
+
pluginType: CODE_ASSIST_METADATA.pluginType,
|
|
17
|
+
};
|
|
18
|
+
if (projectId) {
|
|
19
|
+
metadata.duetProject = projectId;
|
|
20
|
+
}
|
|
21
|
+
return metadata;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Selects the default tier ID from the allowed tiers list.
|
|
25
|
+
*/
|
|
26
|
+
function getDefaultTierId(allowedTiers) {
|
|
27
|
+
if (!allowedTiers || allowedTiers.length === 0) {
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
for (const tier of allowedTiers) {
|
|
31
|
+
if (tier?.isDefault) {
|
|
32
|
+
return tier.id;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return allowedTiers[0]?.id;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Promise-based delay utility.
|
|
39
|
+
*/
|
|
40
|
+
function wait(ms) {
|
|
41
|
+
return new Promise(function (resolve) {
|
|
42
|
+
setTimeout(resolve, ms);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Extracts the cloudaicompanion project id from loadCodeAssist responses.
|
|
47
|
+
*/
|
|
48
|
+
function extractManagedProjectId(payload) {
|
|
49
|
+
if (!payload) {
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
if (typeof payload.cloudaicompanionProject === "string") {
|
|
53
|
+
return payload.cloudaicompanionProject;
|
|
54
|
+
}
|
|
55
|
+
if (payload.cloudaicompanionProject && typeof payload.cloudaicompanionProject.id === "string") {
|
|
56
|
+
return payload.cloudaicompanionProject.id;
|
|
57
|
+
}
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Generates a cache key for project context based on refresh token.
|
|
62
|
+
*/
|
|
63
|
+
function getCacheKey(auth) {
|
|
64
|
+
const refresh = auth.refresh?.trim();
|
|
65
|
+
return refresh ? refresh : undefined;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Clears cached project context results and pending promises, globally or for a refresh key.
|
|
69
|
+
*/
|
|
70
|
+
export function invalidateProjectContextCache(refresh) {
|
|
71
|
+
if (!refresh) {
|
|
72
|
+
projectContextPendingCache.clear();
|
|
73
|
+
projectContextResultCache.clear();
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
projectContextPendingCache.delete(refresh);
|
|
77
|
+
projectContextResultCache.delete(refresh);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Loads managed project information for the given access token and optional project.
|
|
81
|
+
*/
|
|
82
|
+
export async function loadManagedProject(accessToken, projectId) {
|
|
83
|
+
const metadata = buildMetadata(projectId);
|
|
84
|
+
const requestBody = { metadata };
|
|
85
|
+
const loadHeaders = {
|
|
86
|
+
"Content-Type": "application/json",
|
|
87
|
+
Authorization: `Bearer ${accessToken}`,
|
|
88
|
+
"User-Agent": "google-api-nodejs-client/9.15.1",
|
|
89
|
+
"X-Goog-Api-Client": "google-cloud-sdk vscode_cloudshelleditor/0.1",
|
|
90
|
+
"Client-Metadata": ANTIGRAVITY_HEADERS["Client-Metadata"],
|
|
91
|
+
};
|
|
92
|
+
const loadEndpoints = Array.from(new Set([...ANTIGRAVITY_LOAD_ENDPOINTS, ...ANTIGRAVITY_ENDPOINT_FALLBACKS]));
|
|
93
|
+
for (const baseEndpoint of loadEndpoints) {
|
|
94
|
+
try {
|
|
95
|
+
const response = await fetch(`${baseEndpoint}/v1internal:loadCodeAssist`, {
|
|
96
|
+
method: "POST",
|
|
97
|
+
headers: loadHeaders,
|
|
98
|
+
body: JSON.stringify(requestBody),
|
|
99
|
+
});
|
|
100
|
+
if (!response.ok) {
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
return (await response.json());
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
log.debug("Failed to load managed project", { endpoint: baseEndpoint, error: String(error) });
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Onboards a managed project for the user, optionally retrying until completion.
|
|
114
|
+
*/
|
|
115
|
+
export async function onboardManagedProject(accessToken, tierId, projectId, attempts = 10, delayMs = 5000) {
|
|
116
|
+
const metadata = buildMetadata(projectId);
|
|
117
|
+
const requestBody = {
|
|
118
|
+
tierId,
|
|
119
|
+
metadata,
|
|
120
|
+
};
|
|
121
|
+
for (const baseEndpoint of ANTIGRAVITY_ENDPOINT_FALLBACKS) {
|
|
122
|
+
for (let attempt = 0; attempt < attempts; attempt += 1) {
|
|
123
|
+
try {
|
|
124
|
+
const response = await fetch(`${baseEndpoint}/v1internal:onboardUser`, {
|
|
125
|
+
method: "POST",
|
|
126
|
+
headers: {
|
|
127
|
+
"Content-Type": "application/json",
|
|
128
|
+
Authorization: `Bearer ${accessToken}`,
|
|
129
|
+
...ANTIGRAVITY_HEADERS,
|
|
130
|
+
},
|
|
131
|
+
body: JSON.stringify(requestBody),
|
|
132
|
+
});
|
|
133
|
+
if (!response.ok) {
|
|
134
|
+
break;
|
|
135
|
+
}
|
|
136
|
+
const payload = (await response.json());
|
|
137
|
+
const managedProjectId = payload.response?.cloudaicompanionProject?.id;
|
|
138
|
+
if (payload.done && managedProjectId) {
|
|
139
|
+
return managedProjectId;
|
|
140
|
+
}
|
|
141
|
+
if (payload.done && projectId) {
|
|
142
|
+
return projectId;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
log.debug("Failed to onboard managed project", { endpoint: baseEndpoint, error: String(error) });
|
|
147
|
+
break;
|
|
148
|
+
}
|
|
149
|
+
await wait(delayMs);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return undefined;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Resolves an effective project ID for the current auth state, caching results per refresh token.
|
|
156
|
+
*/
|
|
157
|
+
export async function ensureProjectContext(auth) {
|
|
158
|
+
const accessToken = auth.access;
|
|
159
|
+
if (!accessToken) {
|
|
160
|
+
return { auth, effectiveProjectId: "" };
|
|
161
|
+
}
|
|
162
|
+
const cacheKey = getCacheKey(auth);
|
|
163
|
+
if (cacheKey) {
|
|
164
|
+
const cached = projectContextResultCache.get(cacheKey);
|
|
165
|
+
if (cached) {
|
|
166
|
+
return cached;
|
|
167
|
+
}
|
|
168
|
+
const pending = projectContextPendingCache.get(cacheKey);
|
|
169
|
+
if (pending) {
|
|
170
|
+
return pending;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
const resolveContext = async () => {
|
|
174
|
+
const parts = parseRefreshParts(auth.refresh);
|
|
175
|
+
if (parts.managedProjectId) {
|
|
176
|
+
return { auth, effectiveProjectId: parts.managedProjectId };
|
|
177
|
+
}
|
|
178
|
+
const fallbackProjectId = ANTIGRAVITY_DEFAULT_PROJECT_ID;
|
|
179
|
+
const persistManagedProject = async (managedProjectId) => {
|
|
180
|
+
const updatedAuth = {
|
|
181
|
+
...auth,
|
|
182
|
+
refresh: formatRefreshParts({
|
|
183
|
+
refreshToken: parts.refreshToken,
|
|
184
|
+
projectId: parts.projectId,
|
|
185
|
+
managedProjectId,
|
|
186
|
+
}),
|
|
187
|
+
};
|
|
188
|
+
return { auth: updatedAuth, effectiveProjectId: managedProjectId };
|
|
189
|
+
};
|
|
190
|
+
// Try to resolve a managed project from Antigravity if possible.
|
|
191
|
+
const loadPayload = await loadManagedProject(accessToken, parts.projectId ?? fallbackProjectId);
|
|
192
|
+
const resolvedManagedProjectId = extractManagedProjectId(loadPayload);
|
|
193
|
+
if (resolvedManagedProjectId) {
|
|
194
|
+
return persistManagedProject(resolvedManagedProjectId);
|
|
195
|
+
}
|
|
196
|
+
// No managed project found - try to auto-provision one via onboarding.
|
|
197
|
+
// This handles accounts that were added before managed project provisioning was required.
|
|
198
|
+
const tierId = getDefaultTierId(loadPayload?.allowedTiers) ?? "FREE";
|
|
199
|
+
log.debug("Auto-provisioning managed project", { tierId, projectId: parts.projectId });
|
|
200
|
+
const provisionedProjectId = await onboardManagedProject(accessToken, tierId, parts.projectId);
|
|
201
|
+
if (provisionedProjectId) {
|
|
202
|
+
log.debug("Successfully provisioned managed project", { provisionedProjectId });
|
|
203
|
+
return persistManagedProject(provisionedProjectId);
|
|
204
|
+
}
|
|
205
|
+
log.warn("Failed to provision managed project - account may not work correctly", {
|
|
206
|
+
hasProjectId: !!parts.projectId,
|
|
207
|
+
});
|
|
208
|
+
if (parts.projectId) {
|
|
209
|
+
return { auth, effectiveProjectId: parts.projectId };
|
|
210
|
+
}
|
|
211
|
+
// No project id present in auth; fall back to the hardcoded id for requests.
|
|
212
|
+
return { auth, effectiveProjectId: fallbackProjectId };
|
|
213
|
+
};
|
|
214
|
+
if (!cacheKey) {
|
|
215
|
+
return resolveContext();
|
|
216
|
+
}
|
|
217
|
+
const promise = resolveContext()
|
|
218
|
+
.then((result) => {
|
|
219
|
+
const nextKey = getCacheKey(result.auth) ?? cacheKey;
|
|
220
|
+
projectContextPendingCache.delete(cacheKey);
|
|
221
|
+
projectContextResultCache.set(nextKey, result);
|
|
222
|
+
if (nextKey !== cacheKey) {
|
|
223
|
+
projectContextResultCache.delete(cacheKey);
|
|
224
|
+
}
|
|
225
|
+
return result;
|
|
226
|
+
})
|
|
227
|
+
.catch((error) => {
|
|
228
|
+
projectContextPendingCache.delete(cacheKey);
|
|
229
|
+
throw error;
|
|
230
|
+
});
|
|
231
|
+
projectContextPendingCache.set(cacheKey, promise);
|
|
232
|
+
return promise;
|
|
233
|
+
}
|
|
234
|
+
//# sourceMappingURL=project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../../src/plugin/project.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Constants for session recovery storage paths.
|
|
3
|
+
*
|
|
4
|
+
* Based on oh-my-opencode/src/hooks/session-recovery/constants.ts
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Get the XDG config directory for Antigravity config.
|
|
8
|
+
* Falls back to ~/.config on Linux/Mac, or APPDATA on Windows.
|
|
9
|
+
*/
|
|
10
|
+
export declare function getXdgConfig(): string;
|
|
11
|
+
/**
|
|
12
|
+
* Get the Antigravity config directory.
|
|
13
|
+
* Default: ~/.config/opencode/antigravity.json
|
|
14
|
+
*/
|
|
15
|
+
export declare function getAntigravityConfigDir(): string;
|
|
16
|
+
export declare const OPENCODE_STORAGE: string;
|
|
17
|
+
export declare const MESSAGE_STORAGE: string;
|
|
18
|
+
export declare const PART_STORAGE: string;
|
|
19
|
+
export declare const THINKING_TYPES: Set<string>;
|
|
20
|
+
export declare const META_TYPES: Set<string>;
|
|
21
|
+
export declare const CONTENT_TYPES: Set<string>;
|
|
22
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/plugin/recovery/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAmBH;;;GAGG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAQrC;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED,eAAO,MAAM,gBAAgB,QAA4C,CAAC;AAC1E,eAAO,MAAM,eAAe,QAAoC,CAAC;AACjE,eAAO,MAAM,YAAY,QAAiC,CAAC;AAE3D,eAAO,MAAM,cAAc,aAA0D,CAAC;AACtF,eAAO,MAAM,UAAU,aAAyC,CAAC;AACjE,eAAO,MAAM,aAAa,aAAuD,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Constants for session recovery storage paths.
|
|
3
|
+
*
|
|
4
|
+
* Based on oh-my-opencode/src/hooks/session-recovery/constants.ts
|
|
5
|
+
*/
|
|
6
|
+
import { join } from "node:path";
|
|
7
|
+
import { homedir } from "node:os";
|
|
8
|
+
/**
|
|
9
|
+
* Get the XDG data directory for OpenCode storage.
|
|
10
|
+
* Falls back to ~/.local/share on Linux/Mac, or APPDATA on Windows.
|
|
11
|
+
*/
|
|
12
|
+
function getXdgData() {
|
|
13
|
+
const platform = process.platform;
|
|
14
|
+
if (platform === "win32") {
|
|
15
|
+
return process.env.APPDATA || join(homedir(), "AppData", "Roaming");
|
|
16
|
+
}
|
|
17
|
+
return process.env.XDG_DATA_HOME || join(homedir(), ".local", "share");
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Get the XDG config directory for Antigravity config.
|
|
21
|
+
* Falls back to ~/.config on Linux/Mac, or APPDATA on Windows.
|
|
22
|
+
*/
|
|
23
|
+
export function getXdgConfig() {
|
|
24
|
+
const platform = process.platform;
|
|
25
|
+
if (platform === "win32") {
|
|
26
|
+
return process.env.APPDATA || join(homedir(), "AppData", "Roaming");
|
|
27
|
+
}
|
|
28
|
+
return process.env.XDG_CONFIG_HOME || join(homedir(), ".config");
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Get the Antigravity config directory.
|
|
32
|
+
* Default: ~/.config/opencode/antigravity.json
|
|
33
|
+
*/
|
|
34
|
+
export function getAntigravityConfigDir() {
|
|
35
|
+
return join(getXdgConfig(), "opencode");
|
|
36
|
+
}
|
|
37
|
+
export const OPENCODE_STORAGE = join(getXdgData(), "opencode", "storage");
|
|
38
|
+
export const MESSAGE_STORAGE = join(OPENCODE_STORAGE, "message");
|
|
39
|
+
export const PART_STORAGE = join(OPENCODE_STORAGE, "part");
|
|
40
|
+
export const THINKING_TYPES = new Set(["thinking", "redacted_thinking", "reasoning"]);
|
|
41
|
+
export const META_TYPES = new Set(["step-start", "step-finish"]);
|
|
42
|
+
export const CONTENT_TYPES = new Set(["text", "tool", "tool_use", "tool_result"]);
|
|
43
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/plugin/recovery/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC;;;GAGG;AACH,SAAS,UAAU;IACjB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAElC,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACzE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAElC,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AACnE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO,IAAI,CAAC,YAAY,EAAE,EAAE,UAAU,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;AAC1E,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;AACjE,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,mBAAmB,EAAE,WAAW,CAAC,CAAC,CAAC;AACtF,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC;AACjE,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session recovery module for opencode-antigravity-auth.
|
|
3
|
+
*
|
|
4
|
+
* Provides recovery from:
|
|
5
|
+
* - tool_result_missing: Interrupted tool executions
|
|
6
|
+
* - thinking_block_order: Corrupted thinking blocks
|
|
7
|
+
* - thinking_disabled_violation: Thinking in non-thinking model
|
|
8
|
+
*/
|
|
9
|
+
export * from "./types";
|
|
10
|
+
export * from "./constants";
|
|
11
|
+
export * from "./storage";
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugin/recovery/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session recovery module for opencode-antigravity-auth.
|
|
3
|
+
*
|
|
4
|
+
* Provides recovery from:
|
|
5
|
+
* - tool_result_missing: Interrupted tool executions
|
|
6
|
+
* - thinking_block_order: Corrupted thinking blocks
|
|
7
|
+
* - thinking_disabled_violation: Thinking in non-thinking model
|
|
8
|
+
*/
|
|
9
|
+
export * from "./types";
|
|
10
|
+
export * from "./constants";
|
|
11
|
+
export * from "./storage";
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugin/recovery/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Storage utilities for reading OpenCode's session data.
|
|
3
|
+
*
|
|
4
|
+
* Based on oh-my-opencode/src/hooks/session-recovery/storage.ts
|
|
5
|
+
*/
|
|
6
|
+
import type { StoredMessageMeta, StoredPart } from "./types";
|
|
7
|
+
export declare function generatePartId(): string;
|
|
8
|
+
export declare function getMessageDir(sessionID: string): string;
|
|
9
|
+
export declare function readMessages(sessionID: string): StoredMessageMeta[];
|
|
10
|
+
export declare function readParts(messageID: string): StoredPart[];
|
|
11
|
+
export declare function hasContent(part: StoredPart): boolean;
|
|
12
|
+
export declare function messageHasContent(messageID: string): boolean;
|
|
13
|
+
export declare function injectTextPart(sessionID: string, messageID: string, text: string): boolean;
|
|
14
|
+
export declare function findMessagesWithThinkingBlocks(sessionID: string): string[];
|
|
15
|
+
export declare function findMessagesWithThinkingOnly(sessionID: string): string[];
|
|
16
|
+
export declare function findMessagesWithOrphanThinking(sessionID: string): string[];
|
|
17
|
+
export declare function prependThinkingPart(sessionID: string, messageID: string): boolean;
|
|
18
|
+
export declare function stripThinkingParts(messageID: string): boolean;
|
|
19
|
+
export declare function findEmptyMessages(sessionID: string): string[];
|
|
20
|
+
export declare function findEmptyMessageByIndex(sessionID: string, targetIndex: number): string | null;
|
|
21
|
+
export declare function findMessageByIndexNeedingThinking(sessionID: string, targetIndex: number): string | null;
|
|
22
|
+
export declare function replaceEmptyTextParts(messageID: string, replacementText: string): boolean;
|
|
23
|
+
export declare function findMessagesWithEmptyTextParts(sessionID: string): string[];
|
|
24
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../src/plugin/recovery/storage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAkB,MAAM,SAAS,CAAC;AAM7E,wBAAgB,cAAc,IAAI,MAAM,CAIvC;AAMD,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAqBvD;AAMD,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAyBnE;AAMD,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,EAAE,CAoBzD;AAMD,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAkBpD;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAG5D;AAMD,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAuB1F;AAMD,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAe1E;AAED,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAoBxE;AAED,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAwB1E;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAuBjF;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAyB7D;AAMD,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAW7D;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkB7F;AAED,wBAAgB,iCAAiC,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAsBvG;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CA+BzF;AAED,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAkB1E"}
|