opencode-ag-auth 1.5.2
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 +749 -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 +138 -0
- package/dist/src/constants.d.ts.map +1 -0
- package/dist/src/constants.js +220 -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 +173 -0
- package/dist/src/plugin/accounts.d.ts.map +1 -0
- package/dist/src/plugin/accounts.js +1035 -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 +37 -0
- package/dist/src/plugin/config/loader.d.ts.map +1 -0
- package/dist/src/plugin/config/loader.js +196 -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 +70 -0
- package/dist/src/plugin/config/models.js.map +1 -0
- package/dist/src/plugin/config/schema.d.ts +133 -0
- package/dist/src/plugin/config/schema.d.ts.map +1 -0
- package/dist/src/plugin/config/schema.js +438 -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 +125 -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 +64 -0
- package/dist/src/plugin/fingerprint.d.ts.map +1 -0
- package/dist/src/plugin/fingerprint.js +125 -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 +35 -0
- package/dist/src/plugin/quota.d.ts.map +1 -0
- package/dist/src/plugin/quota.js +273 -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 +282 -0
- package/dist/src/plugin/request-helpers.d.ts.map +1 -0
- package/dist/src/plugin/request-helpers.js +2319 -0
- package/dist/src/plugin/request-helpers.js.map +1 -0
- package/dist/src/plugin/request.d.ts +93 -0
- package/dist/src/plugin/request.d.ts.map +1 -0
- package/dist/src/plugin/request.js +1352 -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 +136 -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 +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 +100 -0
- package/dist/src/plugin/transform/gemini.d.ts.map +1 -0
- package/dist/src/plugin/transform/gemini.js +465 -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 +361 -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 +33 -0
- package/dist/src/plugin/ui/auth-menu.d.ts.map +1 -0
- package/dist/src/plugin/ui/auth-menu.js +110 -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 +80 -0
- package/dist/src/plugin/version.js.map +1 -0
- package/dist/src/plugin.d.ts +30 -0
- package/dist/src/plugin.d.ts.map +1 -0
- package/dist/src/plugin.js +3050 -0
- package/dist/src/plugin.js.map +1 -0
- package/package.json +68 -0
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration loader for opencode-ag-auth plugin.
|
|
3
|
+
*
|
|
4
|
+
* Loads config from files with environment variable overrides.
|
|
5
|
+
* Priority (lowest to highest):
|
|
6
|
+
* 1. Schema defaults
|
|
7
|
+
* 2. User config file
|
|
8
|
+
* 3. Project config file
|
|
9
|
+
* 4. Environment variables
|
|
10
|
+
*/
|
|
11
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
12
|
+
import { join } from "node:path";
|
|
13
|
+
import { homedir } from "node:os";
|
|
14
|
+
import { AccountSelectionStrategySchema, AntigravityConfigSchema, DEFAULT_CONFIG, } from "./schema";
|
|
15
|
+
import { createLogger } from "../logger";
|
|
16
|
+
const log = createLogger("config");
|
|
17
|
+
// =============================================================================
|
|
18
|
+
// Path Utilities
|
|
19
|
+
// =============================================================================
|
|
20
|
+
/**
|
|
21
|
+
* Get the config directory path, with the following precedence:
|
|
22
|
+
* 1. OPENCODE_CONFIG_DIR env var (if set)
|
|
23
|
+
* 2. ~/.config/opencode (all platforms, including Windows)
|
|
24
|
+
*/
|
|
25
|
+
function getConfigDir() {
|
|
26
|
+
// 1. Check for explicit override via env var
|
|
27
|
+
if (process.env.OPENCODE_CONFIG_DIR) {
|
|
28
|
+
return process.env.OPENCODE_CONFIG_DIR;
|
|
29
|
+
}
|
|
30
|
+
// 2. Use ~/.config/opencode on all platforms (including Windows)
|
|
31
|
+
const xdgConfig = process.env.XDG_CONFIG_HOME || join(homedir(), ".config");
|
|
32
|
+
return join(xdgConfig, "opencode");
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Get the user-level config file path.
|
|
36
|
+
*/
|
|
37
|
+
export function getUserConfigPath() {
|
|
38
|
+
return join(getConfigDir(), "antigravity.json");
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Get the project-level config file path.
|
|
42
|
+
*/
|
|
43
|
+
export function getProjectConfigPath(directory) {
|
|
44
|
+
return join(directory, ".opencode", "antigravity.json");
|
|
45
|
+
}
|
|
46
|
+
// =============================================================================
|
|
47
|
+
// Config Loading
|
|
48
|
+
// =============================================================================
|
|
49
|
+
/**
|
|
50
|
+
* Load and parse a config file, returning null if not found or invalid.
|
|
51
|
+
*/
|
|
52
|
+
function loadConfigFile(path) {
|
|
53
|
+
try {
|
|
54
|
+
if (!existsSync(path)) {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
const content = readFileSync(path, "utf-8");
|
|
58
|
+
const rawConfig = JSON.parse(content);
|
|
59
|
+
// Validate with Zod (partial - we'll merge with defaults later)
|
|
60
|
+
const result = AntigravityConfigSchema.partial().safeParse(rawConfig);
|
|
61
|
+
if (!result.success) {
|
|
62
|
+
log.warn("Config validation error", {
|
|
63
|
+
path,
|
|
64
|
+
issues: result.error.issues
|
|
65
|
+
.map((i) => `${i.path.join(".")}: ${i.message}`)
|
|
66
|
+
.join(", "),
|
|
67
|
+
});
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
return result.data;
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
if (error instanceof SyntaxError) {
|
|
74
|
+
log.warn("Invalid JSON in config file", { path, error: error.message });
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
log.warn("Failed to load config file", { path, error: String(error) });
|
|
78
|
+
}
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Deep merge two config objects, with override taking precedence.
|
|
84
|
+
*/
|
|
85
|
+
function mergeConfigs(base, override) {
|
|
86
|
+
return {
|
|
87
|
+
...base,
|
|
88
|
+
...override,
|
|
89
|
+
// Deep merge signature_cache if both exist
|
|
90
|
+
signature_cache: override.signature_cache
|
|
91
|
+
? {
|
|
92
|
+
...base.signature_cache,
|
|
93
|
+
...override.signature_cache,
|
|
94
|
+
}
|
|
95
|
+
: base.signature_cache,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Apply environment variable overrides to config.
|
|
100
|
+
* Env vars always take precedence over config file values.
|
|
101
|
+
*/
|
|
102
|
+
function applyEnvOverrides(config) {
|
|
103
|
+
const env = process.env;
|
|
104
|
+
return {
|
|
105
|
+
...config,
|
|
106
|
+
// OPENCODE_ANTIGRAVITY_QUIET=1
|
|
107
|
+
quiet_mode: env.OPENCODE_ANTIGRAVITY_QUIET === "1" ||
|
|
108
|
+
env.OPENCODE_ANTIGRAVITY_QUIET === "true"
|
|
109
|
+
? true
|
|
110
|
+
: config.quiet_mode,
|
|
111
|
+
// OPENCODE_ANTIGRAVITY_DEBUG=1 or any truthy value
|
|
112
|
+
debug: env.OPENCODE_ANTIGRAVITY_DEBUG
|
|
113
|
+
? env.OPENCODE_ANTIGRAVITY_DEBUG !== "0" &&
|
|
114
|
+
env.OPENCODE_ANTIGRAVITY_DEBUG !== "false"
|
|
115
|
+
: config.debug,
|
|
116
|
+
// OPENCODE_ANTIGRAVITY_LOG_DIR=/path/to/logs
|
|
117
|
+
log_dir: env.OPENCODE_ANTIGRAVITY_LOG_DIR || config.log_dir,
|
|
118
|
+
// OPENCODE_ANTIGRAVITY_SESSION_RECOVERY=0 to disable
|
|
119
|
+
session_recovery: env.OPENCODE_ANTIGRAVITY_SESSION_RECOVERY === "0" ||
|
|
120
|
+
env.OPENCODE_ANTIGRAVITY_SESSION_RECOVERY === "false"
|
|
121
|
+
? false
|
|
122
|
+
: config.session_recovery,
|
|
123
|
+
// OPENCODE_ANTIGRAVITY_AUTO_RESUME=0 to disable auto-continue after recovery
|
|
124
|
+
auto_resume: env.OPENCODE_ANTIGRAVITY_AUTO_RESUME === "0" ||
|
|
125
|
+
env.OPENCODE_ANTIGRAVITY_AUTO_RESUME === "false"
|
|
126
|
+
? false
|
|
127
|
+
: env.OPENCODE_ANTIGRAVITY_AUTO_RESUME === "1" ||
|
|
128
|
+
env.OPENCODE_ANTIGRAVITY_AUTO_RESUME === "true"
|
|
129
|
+
? true
|
|
130
|
+
: config.auto_resume,
|
|
131
|
+
// OPENCODE_ANTIGRAVITY_RESUME_TEXT to customize resume text
|
|
132
|
+
resume_text: env.OPENCODE_ANTIGRAVITY_RESUME_TEXT || config.resume_text,
|
|
133
|
+
// OPENCODE_ANTIGRAVITY_AUTO_UPDATE=0 to disable
|
|
134
|
+
auto_update: env.OPENCODE_ANTIGRAVITY_AUTO_UPDATE === "0" ||
|
|
135
|
+
env.OPENCODE_ANTIGRAVITY_AUTO_UPDATE === "false"
|
|
136
|
+
? false
|
|
137
|
+
: config.auto_update,
|
|
138
|
+
// OPENCODE_ANTIGRAVITY_ACCOUNT_SELECTION_STRATEGY=sticky|round-robin|hybrid
|
|
139
|
+
account_selection_strategy: env.OPENCODE_ANTIGRAVITY_ACCOUNT_SELECTION_STRATEGY
|
|
140
|
+
? AccountSelectionStrategySchema.catch("sticky").parse(env.OPENCODE_ANTIGRAVITY_ACCOUNT_SELECTION_STRATEGY)
|
|
141
|
+
: config.account_selection_strategy,
|
|
142
|
+
// OPENCODE_ANTIGRAVITY_PID_OFFSET_ENABLED=1
|
|
143
|
+
pid_offset_enabled: env.OPENCODE_ANTIGRAVITY_PID_OFFSET_ENABLED === "1" ||
|
|
144
|
+
env.OPENCODE_ANTIGRAVITY_PID_OFFSET_ENABLED === "true"
|
|
145
|
+
? true
|
|
146
|
+
: config.pid_offset_enabled,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
// =============================================================================
|
|
150
|
+
// Main Loader
|
|
151
|
+
// =============================================================================
|
|
152
|
+
/**
|
|
153
|
+
* Load the complete configuration.
|
|
154
|
+
*
|
|
155
|
+
* @param directory - The project directory (for project-level config)
|
|
156
|
+
* @returns Fully resolved configuration
|
|
157
|
+
*/
|
|
158
|
+
export function loadConfig(directory) {
|
|
159
|
+
// Start with defaults
|
|
160
|
+
let config = { ...DEFAULT_CONFIG };
|
|
161
|
+
// Load user config file (if exists)
|
|
162
|
+
const userConfigPath = getUserConfigPath();
|
|
163
|
+
const userConfig = loadConfigFile(userConfigPath);
|
|
164
|
+
if (userConfig) {
|
|
165
|
+
config = mergeConfigs(config, userConfig);
|
|
166
|
+
}
|
|
167
|
+
// Load project config file (if exists) - overrides user config
|
|
168
|
+
const projectConfigPath = getProjectConfigPath(directory);
|
|
169
|
+
const projectConfig = loadConfigFile(projectConfigPath);
|
|
170
|
+
if (projectConfig) {
|
|
171
|
+
config = mergeConfigs(config, projectConfig);
|
|
172
|
+
}
|
|
173
|
+
// Apply environment variable overrides (always win)
|
|
174
|
+
config = applyEnvOverrides(config);
|
|
175
|
+
return config;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Check if a config file exists at the given path.
|
|
179
|
+
*/
|
|
180
|
+
export function configExists(path) {
|
|
181
|
+
return existsSync(path);
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Get the default logs directory.
|
|
185
|
+
*/
|
|
186
|
+
export function getDefaultLogsDir() {
|
|
187
|
+
return join(getConfigDir(), "antigravity-logs");
|
|
188
|
+
}
|
|
189
|
+
let runtimeConfig = null;
|
|
190
|
+
export function initRuntimeConfig(config) {
|
|
191
|
+
runtimeConfig = config;
|
|
192
|
+
}
|
|
193
|
+
export function getKeepThinking() {
|
|
194
|
+
return runtimeConfig?.keep_thinking ?? false;
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../../src/plugin/config/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ProviderModel } from "../types";
|
|
2
|
+
export type ModelThinkingLevel = "minimal" | "low" | "medium" | "high";
|
|
3
|
+
export interface ModelThinkingConfig {
|
|
4
|
+
thinkingBudget: number;
|
|
5
|
+
}
|
|
6
|
+
export interface ModelVariant {
|
|
7
|
+
thinkingLevel?: ModelThinkingLevel;
|
|
8
|
+
thinkingConfig?: ModelThinkingConfig;
|
|
9
|
+
}
|
|
10
|
+
export interface ModelLimit {
|
|
11
|
+
context: number;
|
|
12
|
+
output: number;
|
|
13
|
+
}
|
|
14
|
+
export type ModelModality = "text" | "image" | "pdf";
|
|
15
|
+
export interface ModelModalities {
|
|
16
|
+
input: ModelModality[];
|
|
17
|
+
output: ModelModality[];
|
|
18
|
+
}
|
|
19
|
+
export interface OpencodeModelDefinition extends ProviderModel {
|
|
20
|
+
name: string;
|
|
21
|
+
limit: ModelLimit;
|
|
22
|
+
modalities: ModelModalities;
|
|
23
|
+
variants?: Record<string, ModelVariant>;
|
|
24
|
+
}
|
|
25
|
+
export type OpencodeModelDefinitions = Record<string, OpencodeModelDefinition>;
|
|
26
|
+
export declare const OPENCODE_MODEL_DEFINITIONS: OpencodeModelDefinitions;
|
|
27
|
+
//# sourceMappingURL=models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../../src/plugin/config/models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEvE,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;AAErD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,uBAAwB,SAAQ,aAAa;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,CAAC;IAClB,UAAU,EAAE,eAAe,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACzC;AAED,MAAM,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;AAO/E,eAAO,MAAM,0BAA0B,EAAE,wBAiExC,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
const DEFAULT_MODALITIES = {
|
|
2
|
+
input: ["text", "image", "pdf"],
|
|
3
|
+
output: ["text"],
|
|
4
|
+
};
|
|
5
|
+
export const OPENCODE_MODEL_DEFINITIONS = {
|
|
6
|
+
"antigravity-gemini-3-pro": {
|
|
7
|
+
name: "Gemini 3 Pro (Antigravity)",
|
|
8
|
+
limit: { context: 1048576, output: 65535 },
|
|
9
|
+
modalities: DEFAULT_MODALITIES,
|
|
10
|
+
variants: {
|
|
11
|
+
low: { thinkingLevel: "low" },
|
|
12
|
+
high: { thinkingLevel: "high" },
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
"antigravity-gemini-3-flash": {
|
|
16
|
+
name: "Gemini 3 Flash (Antigravity)",
|
|
17
|
+
limit: { context: 1048576, output: 65536 },
|
|
18
|
+
modalities: DEFAULT_MODALITIES,
|
|
19
|
+
variants: {
|
|
20
|
+
minimal: { thinkingLevel: "minimal" },
|
|
21
|
+
low: { thinkingLevel: "low" },
|
|
22
|
+
medium: { thinkingLevel: "medium" },
|
|
23
|
+
high: { thinkingLevel: "high" },
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
"antigravity-claude-sonnet-4-5": {
|
|
27
|
+
name: "Claude Sonnet 4.5 (Antigravity)",
|
|
28
|
+
limit: { context: 200000, output: 64000 },
|
|
29
|
+
modalities: DEFAULT_MODALITIES,
|
|
30
|
+
},
|
|
31
|
+
"antigravity-claude-sonnet-4-5-thinking": {
|
|
32
|
+
name: "Claude Sonnet 4.5 Thinking (Antigravity)",
|
|
33
|
+
limit: { context: 200000, output: 64000 },
|
|
34
|
+
modalities: DEFAULT_MODALITIES,
|
|
35
|
+
variants: {
|
|
36
|
+
low: { thinkingConfig: { thinkingBudget: 8192 } },
|
|
37
|
+
max: { thinkingConfig: { thinkingBudget: 32768 } },
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
"antigravity-claude-opus-4-6-thinking": {
|
|
41
|
+
name: "Claude Opus 4.6 Thinking (Antigravity)",
|
|
42
|
+
limit: { context: 200000, output: 64000 },
|
|
43
|
+
modalities: DEFAULT_MODALITIES,
|
|
44
|
+
variants: {
|
|
45
|
+
low: { thinkingConfig: { thinkingBudget: 8192 } },
|
|
46
|
+
max: { thinkingConfig: { thinkingBudget: 32768 } },
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
"gemini-2.5-flash": {
|
|
50
|
+
name: "Gemini 2.5 Flash (Gemini CLI)",
|
|
51
|
+
limit: { context: 1048576, output: 65536 },
|
|
52
|
+
modalities: DEFAULT_MODALITIES,
|
|
53
|
+
},
|
|
54
|
+
"gemini-2.5-pro": {
|
|
55
|
+
name: "Gemini 2.5 Pro (Gemini CLI)",
|
|
56
|
+
limit: { context: 1048576, output: 65536 },
|
|
57
|
+
modalities: DEFAULT_MODALITIES,
|
|
58
|
+
},
|
|
59
|
+
"gemini-3-flash-preview": {
|
|
60
|
+
name: "Gemini 3 Flash Preview (Gemini CLI)",
|
|
61
|
+
limit: { context: 1048576, output: 65536 },
|
|
62
|
+
modalities: DEFAULT_MODALITIES,
|
|
63
|
+
},
|
|
64
|
+
"gemini-3-pro-preview": {
|
|
65
|
+
name: "Gemini 3 Pro Preview (Gemini CLI)",
|
|
66
|
+
limit: { context: 1048576, output: 65535 },
|
|
67
|
+
modalities: DEFAULT_MODALITIES,
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../../src/plugin/config/models.ts"],"names":[],"mappings":"AAkCA,MAAM,kBAAkB,GAAoB;IAC1C,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC;IAC/B,MAAM,EAAE,CAAC,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAA6B;IAClE,0BAA0B,EAAE;QAC1B,IAAI,EAAE,4BAA4B;QAClC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;QAC1C,UAAU,EAAE,kBAAkB;QAC9B,QAAQ,EAAE;YACR,GAAG,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE;YAC7B,IAAI,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE;SAChC;KACF;IACD,4BAA4B,EAAE;QAC5B,IAAI,EAAE,8BAA8B;QACpC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;QAC1C,UAAU,EAAE,kBAAkB;QAC9B,QAAQ,EAAE;YACR,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE;YACrC,GAAG,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE;YAC7B,MAAM,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE;YACnC,IAAI,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE;SAChC;KACF;IACD,+BAA+B,EAAE;QAC/B,IAAI,EAAE,iCAAiC;QACvC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE;QACzC,UAAU,EAAE,kBAAkB;KAC/B;IACD,wCAAwC,EAAE;QACxC,IAAI,EAAE,0CAA0C;QAChD,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE;QACzC,UAAU,EAAE,kBAAkB;QAC9B,QAAQ,EAAE;YACR,GAAG,EAAE,EAAE,cAAc,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE;YACjD,GAAG,EAAE,EAAE,cAAc,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE;SACnD;KACF;IAED,sCAAsC,EAAE;QACtC,IAAI,EAAE,wCAAwC;QAC9C,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE;QACzC,UAAU,EAAE,kBAAkB;QAC9B,QAAQ,EAAE;YACR,GAAG,EAAE,EAAE,cAAc,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE;YACjD,GAAG,EAAE,EAAE,cAAc,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE;SACnD;KACF;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,+BAA+B;QACrC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;QAC1C,UAAU,EAAE,kBAAkB;KAC/B;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,6BAA6B;QACnC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;QAC1C,UAAU,EAAE,kBAAkB;KAC/B;IACD,wBAAwB,EAAE;QACxB,IAAI,EAAE,qCAAqC;QAC3C,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;QAC1C,UAAU,EAAE,kBAAkB;KAC/B;IACD,sBAAsB,EAAE;QACtB,IAAI,EAAE,mCAAmC;QACzC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;QAC1C,UAAU,EAAE,kBAAkB;KAC/B;CACF,CAAC"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration schema for opencode-ag-auth plugin.
|
|
3
|
+
*
|
|
4
|
+
* Config file locations (in priority order, highest wins):
|
|
5
|
+
* - Project: .opencode/antigravity.json
|
|
6
|
+
* - User: ~/.config/opencode/antigravity.json (Linux/Mac)
|
|
7
|
+
* %APPDATA%\opencode\antigravity.json (Windows)
|
|
8
|
+
*
|
|
9
|
+
* Environment variables always override config file values.
|
|
10
|
+
*/
|
|
11
|
+
import { z } from "zod";
|
|
12
|
+
/**
|
|
13
|
+
* Account selection strategy for distributing requests across accounts.
|
|
14
|
+
*
|
|
15
|
+
* - `sticky`: Use same account until rate-limited. Preserves prompt cache.
|
|
16
|
+
* - `round-robin`: Rotate to next account on every request. Maximum throughput.
|
|
17
|
+
* - `hybrid` (default): Deterministic selection based on health score + token bucket + LRU freshness.
|
|
18
|
+
*/
|
|
19
|
+
export declare const AccountSelectionStrategySchema: z.ZodEnum<{
|
|
20
|
+
sticky: "sticky";
|
|
21
|
+
"round-robin": "round-robin";
|
|
22
|
+
hybrid: "hybrid";
|
|
23
|
+
}>;
|
|
24
|
+
export type AccountSelectionStrategy = z.infer<typeof AccountSelectionStrategySchema>;
|
|
25
|
+
/**
|
|
26
|
+
* Toast notification scope for controlling which sessions show toasts.
|
|
27
|
+
*
|
|
28
|
+
* - `root_only` (default): Only show toasts for root sessions (no parentID).
|
|
29
|
+
* Subagents and background tasks won't show toast notifications.
|
|
30
|
+
* - `all`: Show toasts for all sessions including subagents and background tasks.
|
|
31
|
+
*/
|
|
32
|
+
export declare const ToastScopeSchema: z.ZodEnum<{
|
|
33
|
+
all: "all";
|
|
34
|
+
root_only: "root_only";
|
|
35
|
+
}>;
|
|
36
|
+
export type ToastScope = z.infer<typeof ToastScopeSchema>;
|
|
37
|
+
/**
|
|
38
|
+
* Scheduling mode for rate limit behavior.
|
|
39
|
+
*
|
|
40
|
+
* - `cache_first`: Wait for same account to recover (preserves prompt cache). Default.
|
|
41
|
+
* - `balance`: Switch account immediately on rate limit. Maximum availability.
|
|
42
|
+
* - `performance_first`: Round-robin distribution for maximum throughput.
|
|
43
|
+
*/
|
|
44
|
+
export declare const SchedulingModeSchema: z.ZodEnum<{
|
|
45
|
+
cache_first: "cache_first";
|
|
46
|
+
balance: "balance";
|
|
47
|
+
performance_first: "performance_first";
|
|
48
|
+
}>;
|
|
49
|
+
export type SchedulingMode = z.infer<typeof SchedulingModeSchema>;
|
|
50
|
+
/**
|
|
51
|
+
* Signature cache configuration for persisting thinking block signatures to disk.
|
|
52
|
+
*/
|
|
53
|
+
export declare const SignatureCacheConfigSchema: z.ZodObject<{
|
|
54
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
55
|
+
memory_ttl_seconds: z.ZodDefault<z.ZodNumber>;
|
|
56
|
+
disk_ttl_seconds: z.ZodDefault<z.ZodNumber>;
|
|
57
|
+
write_interval_seconds: z.ZodDefault<z.ZodNumber>;
|
|
58
|
+
}, z.core.$strip>;
|
|
59
|
+
/**
|
|
60
|
+
* Main configuration schema for the Antigravity OAuth plugin.
|
|
61
|
+
*/
|
|
62
|
+
export declare const AntigravityConfigSchema: z.ZodObject<{
|
|
63
|
+
$schema: z.ZodOptional<z.ZodString>;
|
|
64
|
+
quiet_mode: z.ZodDefault<z.ZodBoolean>;
|
|
65
|
+
toast_scope: z.ZodDefault<z.ZodEnum<{
|
|
66
|
+
all: "all";
|
|
67
|
+
root_only: "root_only";
|
|
68
|
+
}>>;
|
|
69
|
+
debug: z.ZodDefault<z.ZodBoolean>;
|
|
70
|
+
log_dir: z.ZodOptional<z.ZodString>;
|
|
71
|
+
keep_thinking: z.ZodDefault<z.ZodBoolean>;
|
|
72
|
+
session_recovery: z.ZodDefault<z.ZodBoolean>;
|
|
73
|
+
auto_resume: z.ZodDefault<z.ZodBoolean>;
|
|
74
|
+
resume_text: z.ZodDefault<z.ZodString>;
|
|
75
|
+
signature_cache: z.ZodOptional<z.ZodObject<{
|
|
76
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
77
|
+
memory_ttl_seconds: z.ZodDefault<z.ZodNumber>;
|
|
78
|
+
disk_ttl_seconds: z.ZodDefault<z.ZodNumber>;
|
|
79
|
+
write_interval_seconds: z.ZodDefault<z.ZodNumber>;
|
|
80
|
+
}, z.core.$strip>>;
|
|
81
|
+
empty_response_max_attempts: z.ZodDefault<z.ZodNumber>;
|
|
82
|
+
empty_response_retry_delay_ms: z.ZodDefault<z.ZodNumber>;
|
|
83
|
+
tool_id_recovery: z.ZodDefault<z.ZodBoolean>;
|
|
84
|
+
claude_tool_hardening: z.ZodDefault<z.ZodBoolean>;
|
|
85
|
+
proactive_token_refresh: z.ZodDefault<z.ZodBoolean>;
|
|
86
|
+
proactive_refresh_buffer_seconds: z.ZodDefault<z.ZodNumber>;
|
|
87
|
+
proactive_refresh_check_interval_seconds: z.ZodDefault<z.ZodNumber>;
|
|
88
|
+
max_rate_limit_wait_seconds: z.ZodDefault<z.ZodNumber>;
|
|
89
|
+
quota_fallback: z.ZodDefault<z.ZodBoolean>;
|
|
90
|
+
cli_first: z.ZodDefault<z.ZodBoolean>;
|
|
91
|
+
account_selection_strategy: z.ZodDefault<z.ZodEnum<{
|
|
92
|
+
sticky: "sticky";
|
|
93
|
+
"round-robin": "round-robin";
|
|
94
|
+
hybrid: "hybrid";
|
|
95
|
+
}>>;
|
|
96
|
+
pid_offset_enabled: z.ZodDefault<z.ZodBoolean>;
|
|
97
|
+
switch_on_first_rate_limit: z.ZodDefault<z.ZodBoolean>;
|
|
98
|
+
scheduling_mode: z.ZodDefault<z.ZodEnum<{
|
|
99
|
+
cache_first: "cache_first";
|
|
100
|
+
balance: "balance";
|
|
101
|
+
performance_first: "performance_first";
|
|
102
|
+
}>>;
|
|
103
|
+
max_cache_first_wait_seconds: z.ZodDefault<z.ZodNumber>;
|
|
104
|
+
failure_ttl_seconds: z.ZodDefault<z.ZodNumber>;
|
|
105
|
+
default_retry_after_seconds: z.ZodDefault<z.ZodNumber>;
|
|
106
|
+
max_backoff_seconds: z.ZodDefault<z.ZodNumber>;
|
|
107
|
+
request_jitter_max_ms: z.ZodDefault<z.ZodNumber>;
|
|
108
|
+
soft_quota_threshold_percent: z.ZodDefault<z.ZodNumber>;
|
|
109
|
+
quota_refresh_interval_minutes: z.ZodDefault<z.ZodNumber>;
|
|
110
|
+
soft_quota_cache_ttl_minutes: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<"auto">, z.ZodNumber]>>;
|
|
111
|
+
health_score: z.ZodOptional<z.ZodObject<{
|
|
112
|
+
initial: z.ZodDefault<z.ZodNumber>;
|
|
113
|
+
success_reward: z.ZodDefault<z.ZodNumber>;
|
|
114
|
+
rate_limit_penalty: z.ZodDefault<z.ZodNumber>;
|
|
115
|
+
failure_penalty: z.ZodDefault<z.ZodNumber>;
|
|
116
|
+
recovery_rate_per_hour: z.ZodDefault<z.ZodNumber>;
|
|
117
|
+
min_usable: z.ZodDefault<z.ZodNumber>;
|
|
118
|
+
max_score: z.ZodDefault<z.ZodNumber>;
|
|
119
|
+
}, z.core.$strip>>;
|
|
120
|
+
token_bucket: z.ZodOptional<z.ZodObject<{
|
|
121
|
+
max_tokens: z.ZodDefault<z.ZodNumber>;
|
|
122
|
+
regeneration_rate_per_minute: z.ZodDefault<z.ZodNumber>;
|
|
123
|
+
initial_tokens: z.ZodDefault<z.ZodNumber>;
|
|
124
|
+
}, z.core.$strip>>;
|
|
125
|
+
auto_update: z.ZodDefault<z.ZodBoolean>;
|
|
126
|
+
}, z.core.$strip>;
|
|
127
|
+
export type AntigravityConfig = z.infer<typeof AntigravityConfigSchema>;
|
|
128
|
+
export type SignatureCacheConfig = z.infer<typeof SignatureCacheConfigSchema>;
|
|
129
|
+
/**
|
|
130
|
+
* Default configuration values.
|
|
131
|
+
*/
|
|
132
|
+
export declare const DEFAULT_CONFIG: AntigravityConfig;
|
|
133
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +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;;;;EAIzC,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAC5C,OAAO,8BAA8B,CACtC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;;;EAA+B,CAAC;AAC7D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB;;;;EAI/B,CAAC;AACH,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgXlC,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,iBAmD5B,CAAC"}
|