cyrus-gemini-runner 0.2.4
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 +674 -0
- package/README.md +411 -0
- package/dist/GeminiRunner.d.ts +136 -0
- package/dist/GeminiRunner.d.ts.map +1 -0
- package/dist/GeminiRunner.js +683 -0
- package/dist/GeminiRunner.js.map +1 -0
- package/dist/SimpleGeminiRunner.d.ts +27 -0
- package/dist/SimpleGeminiRunner.d.ts.map +1 -0
- package/dist/SimpleGeminiRunner.js +149 -0
- package/dist/SimpleGeminiRunner.js.map +1 -0
- package/dist/adapters.d.ts +37 -0
- package/dist/adapters.d.ts.map +1 -0
- package/dist/adapters.js +317 -0
- package/dist/adapters.js.map +1 -0
- package/dist/formatter.d.ts +40 -0
- package/dist/formatter.d.ts.map +1 -0
- package/dist/formatter.js +363 -0
- package/dist/formatter.js.map +1 -0
- package/dist/index.d.ts +36 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +56 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/system.md +108 -0
- package/dist/schemas.d.ts +1472 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/schemas.js +678 -0
- package/dist/schemas.js.map +1 -0
- package/dist/settingsGenerator.d.ts +72 -0
- package/dist/settingsGenerator.d.ts.map +1 -0
- package/dist/settingsGenerator.js +255 -0
- package/dist/settingsGenerator.js.map +1 -0
- package/dist/systemPromptManager.d.ts +27 -0
- package/dist/systemPromptManager.d.ts.map +1 -0
- package/dist/systemPromptManager.js +65 -0
- package/dist/systemPromptManager.js.map +1 -0
- package/dist/types.d.ts +113 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +23 -0
- package/dist/types.js.map +1 -0
- package/package.json +37 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { McpServerConfig } from "cyrus-core";
|
|
2
|
+
import type { GeminiMcpServerConfig } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Options for generating Gemini settings
|
|
5
|
+
*/
|
|
6
|
+
export interface GeminiSettingsOptions {
|
|
7
|
+
maxSessionTurns?: number;
|
|
8
|
+
mcpServers?: Record<string, GeminiMcpServerConfig>;
|
|
9
|
+
allowMCPServers?: string[];
|
|
10
|
+
excludeMCPServers?: string[];
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Convert McpServerConfig (cyrus-core format) to GeminiMcpServerConfig (Gemini CLI format)
|
|
14
|
+
* https://github.com/google-gemini/gemini-cli/blob/main/docs/cli/configuration.md
|
|
15
|
+
*
|
|
16
|
+
* Gemini CLI supports three transport types:
|
|
17
|
+
* - stdio: command-based (spawns subprocess)
|
|
18
|
+
* - sse: Server-Sent Events (url-based)
|
|
19
|
+
* - http: Streamable HTTP (httpUrl-based)
|
|
20
|
+
*
|
|
21
|
+
* Claude SDK's McpServerConfig uses `type: "http"` with `url` for HTTP servers.
|
|
22
|
+
* This function maps to Gemini CLI's format which uses `httpUrl` for HTTP transport.
|
|
23
|
+
*
|
|
24
|
+
* @param serverName - Name of the MCP server (for logging)
|
|
25
|
+
* @param config - McpServerConfig from cyrus-core
|
|
26
|
+
* @returns GeminiMcpServerConfig or null if conversion not possible
|
|
27
|
+
*/
|
|
28
|
+
export declare function convertToGeminiMcpConfig(serverName: string, config: McpServerConfig): GeminiMcpServerConfig | null;
|
|
29
|
+
/**
|
|
30
|
+
* Load MCP configuration from file paths
|
|
31
|
+
*
|
|
32
|
+
* @param configPaths - Single path or array of paths to MCP config files
|
|
33
|
+
*
|
|
34
|
+
* @returns Merged MCP server configurations
|
|
35
|
+
*/
|
|
36
|
+
export declare function loadMcpConfigFromPaths(configPaths: string | string[] | undefined): Record<string, McpServerConfig>;
|
|
37
|
+
/**
|
|
38
|
+
* Auto-detect .mcp.json in working directory
|
|
39
|
+
*
|
|
40
|
+
* @param workingDirectory - Working directory to check
|
|
41
|
+
* @returns Path to .mcp.json if valid, undefined otherwise
|
|
42
|
+
*/
|
|
43
|
+
export declare function autoDetectMcpConfig(workingDirectory?: string): string | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* Backup existing settings.json if it exists
|
|
46
|
+
* Returns true if backup was created, false if no file to backup
|
|
47
|
+
*/
|
|
48
|
+
export declare function backupGeminiSettings(): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Restore settings.json from backup
|
|
51
|
+
* Returns true if restored, false if no backup exists
|
|
52
|
+
*/
|
|
53
|
+
export declare function restoreGeminiSettings(): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Delete settings.json (used when no backup existed)
|
|
56
|
+
*/
|
|
57
|
+
export declare function deleteGeminiSettings(): void;
|
|
58
|
+
/**
|
|
59
|
+
* Write settings.json with specified options
|
|
60
|
+
* Creates ~/.gemini directory if it doesn't exist
|
|
61
|
+
*
|
|
62
|
+
* @param options - Settings options including maxSessionTurns, mcpServers, etc.
|
|
63
|
+
*/
|
|
64
|
+
export declare function writeGeminiSettings(options: GeminiSettingsOptions): void;
|
|
65
|
+
/**
|
|
66
|
+
* Setup Gemini settings for a session
|
|
67
|
+
* Returns cleanup function to call when session ends
|
|
68
|
+
*
|
|
69
|
+
* @param options - Settings options including maxSessionTurns, mcpServers, etc.
|
|
70
|
+
*/
|
|
71
|
+
export declare function setupGeminiSettings(options: GeminiSettingsOptions): () => void;
|
|
72
|
+
//# sourceMappingURL=settingsGenerator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settingsGenerator.d.ts","sourceRoot":"","sources":["../src/settingsGenerator.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAqBxD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IACnD,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wBAAwB,CACvC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,eAAe,GACrB,qBAAqB,GAAG,IAAI,CA0F9B;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACrC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,GACxC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CA0BjC;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAClC,gBAAgB,CAAC,EAAE,MAAM,GACvB,MAAM,GAAG,SAAS,CAoBpB;AA6CD;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAS9C;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAU/C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAK3C;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAoBxE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAClC,OAAO,EAAE,qBAAqB,GAC5B,MAAM,IAAI,CAcZ"}
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
import { copyFileSync, existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync, } from "node:fs";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
const GEMINI_DIR = join(homedir(), ".gemini");
|
|
5
|
+
const SETTINGS_PATH = join(GEMINI_DIR, "settings.json");
|
|
6
|
+
const BACKUP_PATH = join(GEMINI_DIR, "settings.json.backup");
|
|
7
|
+
/**
|
|
8
|
+
* Convert McpServerConfig (cyrus-core format) to GeminiMcpServerConfig (Gemini CLI format)
|
|
9
|
+
* https://github.com/google-gemini/gemini-cli/blob/main/docs/cli/configuration.md
|
|
10
|
+
*
|
|
11
|
+
* Gemini CLI supports three transport types:
|
|
12
|
+
* - stdio: command-based (spawns subprocess)
|
|
13
|
+
* - sse: Server-Sent Events (url-based)
|
|
14
|
+
* - http: Streamable HTTP (httpUrl-based)
|
|
15
|
+
*
|
|
16
|
+
* Claude SDK's McpServerConfig uses `type: "http"` with `url` for HTTP servers.
|
|
17
|
+
* This function maps to Gemini CLI's format which uses `httpUrl` for HTTP transport.
|
|
18
|
+
*
|
|
19
|
+
* @param serverName - Name of the MCP server (for logging)
|
|
20
|
+
* @param config - McpServerConfig from cyrus-core
|
|
21
|
+
* @returns GeminiMcpServerConfig or null if conversion not possible
|
|
22
|
+
*/
|
|
23
|
+
export function convertToGeminiMcpConfig(serverName, config) {
|
|
24
|
+
const configAny = config;
|
|
25
|
+
// Detect SDK MCP server instances (in-process servers)
|
|
26
|
+
// These have methods like listTools, callTool, etc. and are not convertible
|
|
27
|
+
// to Gemini CLI's transport-based configuration format
|
|
28
|
+
if (typeof configAny.listTools === "function" ||
|
|
29
|
+
typeof configAny.callTool === "function" ||
|
|
30
|
+
typeof configAny.name === "string") {
|
|
31
|
+
console.warn(`[GeminiRunner] MCP server "${serverName}" is an SDK server instance (in-process). ` +
|
|
32
|
+
`Gemini CLI only supports external MCP servers with transport configurations. Skipping.`);
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
const geminiConfig = {};
|
|
36
|
+
// Determine transport type and configure accordingly
|
|
37
|
+
if (configAny.type === "http" && configAny.url) {
|
|
38
|
+
// Claude SDK HTTP transport -> Gemini HTTP transport (httpUrl)
|
|
39
|
+
geminiConfig.httpUrl = configAny.url;
|
|
40
|
+
console.log(`[GeminiRunner] MCP server "${serverName}" configured with HTTP transport: ${geminiConfig.httpUrl}`);
|
|
41
|
+
}
|
|
42
|
+
else if (configAny.url && !configAny.command) {
|
|
43
|
+
// URL without command and not explicitly HTTP -> treat as SSE
|
|
44
|
+
geminiConfig.url = configAny.url;
|
|
45
|
+
console.log(`[GeminiRunner] MCP server "${serverName}" configured with SSE transport: ${geminiConfig.url}`);
|
|
46
|
+
}
|
|
47
|
+
else if (configAny.command) {
|
|
48
|
+
// Command-based -> stdio transport
|
|
49
|
+
geminiConfig.command = configAny.command;
|
|
50
|
+
console.log(`[GeminiRunner] MCP server "${serverName}" configured with stdio transport: ${geminiConfig.command}`);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
// No valid transport configuration
|
|
54
|
+
console.warn(`[GeminiRunner] MCP server "${serverName}" has no valid transport configuration (need command, url, or httpUrl). Skipping.`);
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
// Map stdio-specific fields
|
|
58
|
+
if (configAny.args && Array.isArray(configAny.args)) {
|
|
59
|
+
geminiConfig.args = configAny.args;
|
|
60
|
+
}
|
|
61
|
+
if (configAny.cwd && typeof configAny.cwd === "string") {
|
|
62
|
+
geminiConfig.cwd = configAny.cwd;
|
|
63
|
+
}
|
|
64
|
+
// Map HTTP headers (for SSE and HTTP transports)
|
|
65
|
+
if (configAny.headers &&
|
|
66
|
+
typeof configAny.headers === "object" &&
|
|
67
|
+
!Array.isArray(configAny.headers)) {
|
|
68
|
+
geminiConfig.headers = configAny.headers;
|
|
69
|
+
}
|
|
70
|
+
// Map common fields
|
|
71
|
+
if (configAny.env &&
|
|
72
|
+
typeof configAny.env === "object" &&
|
|
73
|
+
!Array.isArray(configAny.env)) {
|
|
74
|
+
geminiConfig.env = configAny.env;
|
|
75
|
+
}
|
|
76
|
+
if (configAny.timeout && typeof configAny.timeout === "number") {
|
|
77
|
+
geminiConfig.timeout = configAny.timeout;
|
|
78
|
+
}
|
|
79
|
+
// Trust MCP servers by default for auto-approval (matches --yolo behavior)
|
|
80
|
+
geminiConfig.trust = true;
|
|
81
|
+
if (configAny.includeTools && Array.isArray(configAny.includeTools)) {
|
|
82
|
+
geminiConfig.includeTools = configAny.includeTools;
|
|
83
|
+
}
|
|
84
|
+
if (configAny.excludeTools && Array.isArray(configAny.excludeTools)) {
|
|
85
|
+
geminiConfig.excludeTools = configAny.excludeTools;
|
|
86
|
+
}
|
|
87
|
+
return geminiConfig;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Load MCP configuration from file paths
|
|
91
|
+
*
|
|
92
|
+
* @param configPaths - Single path or array of paths to MCP config files
|
|
93
|
+
*
|
|
94
|
+
* @returns Merged MCP server configurations
|
|
95
|
+
*/
|
|
96
|
+
export function loadMcpConfigFromPaths(configPaths) {
|
|
97
|
+
if (!configPaths) {
|
|
98
|
+
return {};
|
|
99
|
+
}
|
|
100
|
+
const paths = Array.isArray(configPaths) ? configPaths : [configPaths];
|
|
101
|
+
let mcpServers = {};
|
|
102
|
+
for (const configPath of paths) {
|
|
103
|
+
try {
|
|
104
|
+
const mcpConfigContent = readFileSync(configPath, "utf8");
|
|
105
|
+
const mcpConfig = JSON.parse(mcpConfigContent);
|
|
106
|
+
const servers = mcpConfig.mcpServers || {};
|
|
107
|
+
mcpServers = { ...mcpServers, ...servers };
|
|
108
|
+
console.log(`[GeminiRunner] Loaded MCP config from ${configPath}: ${Object.keys(servers).join(", ")}`);
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
console.error(`[GeminiRunner] Failed to load MCP config from ${configPath}:`, error);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return mcpServers;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Auto-detect .mcp.json in working directory
|
|
118
|
+
*
|
|
119
|
+
* @param workingDirectory - Working directory to check
|
|
120
|
+
* @returns Path to .mcp.json if valid, undefined otherwise
|
|
121
|
+
*/
|
|
122
|
+
export function autoDetectMcpConfig(workingDirectory) {
|
|
123
|
+
if (!workingDirectory) {
|
|
124
|
+
return undefined;
|
|
125
|
+
}
|
|
126
|
+
const mcpJsonPath = join(workingDirectory, ".mcp.json");
|
|
127
|
+
if (existsSync(mcpJsonPath)) {
|
|
128
|
+
try {
|
|
129
|
+
// Validate it's valid JSON
|
|
130
|
+
const content = readFileSync(mcpJsonPath, "utf8");
|
|
131
|
+
JSON.parse(content);
|
|
132
|
+
console.log(`[GeminiRunner] Auto-detected .mcp.json at ${mcpJsonPath}`);
|
|
133
|
+
return mcpJsonPath;
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
console.warn(`[GeminiRunner] Found .mcp.json at ${mcpJsonPath} but it's not valid JSON, skipping`);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return undefined;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Generates settings.json structure with maxSessionTurns and MCP servers
|
|
143
|
+
* Reference: https://github.com/google-gemini/gemini-cli/blob/main/docs/get-started/configuration.md
|
|
144
|
+
*
|
|
145
|
+
* Based on investigation of Gemini CLI source code, maxSessionTurns is a top-level
|
|
146
|
+
* setting under "model", not a per-alias configuration. Aliases can only configure
|
|
147
|
+
* generateContentConfig parameters (temperature, topP, etc).
|
|
148
|
+
*/
|
|
149
|
+
function generateSettings(options) {
|
|
150
|
+
const settings = {
|
|
151
|
+
general: {
|
|
152
|
+
previewFeatures: true,
|
|
153
|
+
},
|
|
154
|
+
};
|
|
155
|
+
// Add model settings if maxSessionTurns specified
|
|
156
|
+
if (options.maxSessionTurns !== undefined) {
|
|
157
|
+
settings.model = {
|
|
158
|
+
maxSessionTurns: options.maxSessionTurns,
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
// Add MCP servers if provided
|
|
162
|
+
if (options.mcpServers && Object.keys(options.mcpServers).length > 0) {
|
|
163
|
+
settings.mcpServers = options.mcpServers;
|
|
164
|
+
console.log(`[GeminiRunner] Including ${Object.keys(options.mcpServers).length} MCP server(s) in settings.json: ${Object.keys(options.mcpServers).join(", ")}`);
|
|
165
|
+
}
|
|
166
|
+
// Add allowMCPServers whitelist if provided
|
|
167
|
+
if (options.allowMCPServers && options.allowMCPServers.length > 0) {
|
|
168
|
+
settings.allowMCPServers = options.allowMCPServers;
|
|
169
|
+
}
|
|
170
|
+
// Add excludeMCPServers blacklist if provided
|
|
171
|
+
if (options.excludeMCPServers && options.excludeMCPServers.length > 0) {
|
|
172
|
+
settings.excludeMCPServers = options.excludeMCPServers;
|
|
173
|
+
}
|
|
174
|
+
return settings;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Backup existing settings.json if it exists
|
|
178
|
+
* Returns true if backup was created, false if no file to backup
|
|
179
|
+
*/
|
|
180
|
+
export function backupGeminiSettings() {
|
|
181
|
+
if (!existsSync(SETTINGS_PATH)) {
|
|
182
|
+
return false;
|
|
183
|
+
}
|
|
184
|
+
// Create backup
|
|
185
|
+
copyFileSync(SETTINGS_PATH, BACKUP_PATH);
|
|
186
|
+
console.log(`[GeminiRunner] Backed up settings.json to ${BACKUP_PATH}`);
|
|
187
|
+
return true;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Restore settings.json from backup
|
|
191
|
+
* Returns true if restored, false if no backup exists
|
|
192
|
+
*/
|
|
193
|
+
export function restoreGeminiSettings() {
|
|
194
|
+
if (!existsSync(BACKUP_PATH)) {
|
|
195
|
+
return false;
|
|
196
|
+
}
|
|
197
|
+
// Restore from backup
|
|
198
|
+
copyFileSync(BACKUP_PATH, SETTINGS_PATH);
|
|
199
|
+
unlinkSync(BACKUP_PATH);
|
|
200
|
+
console.log(`[GeminiRunner] Restored settings.json from backup`);
|
|
201
|
+
return true;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Delete settings.json (used when no backup existed)
|
|
205
|
+
*/
|
|
206
|
+
export function deleteGeminiSettings() {
|
|
207
|
+
if (existsSync(SETTINGS_PATH)) {
|
|
208
|
+
unlinkSync(SETTINGS_PATH);
|
|
209
|
+
console.log(`[GeminiRunner] Deleted temporary settings.json`);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Write settings.json with specified options
|
|
214
|
+
* Creates ~/.gemini directory if it doesn't exist
|
|
215
|
+
*
|
|
216
|
+
* @param options - Settings options including maxSessionTurns, mcpServers, etc.
|
|
217
|
+
*/
|
|
218
|
+
export function writeGeminiSettings(options) {
|
|
219
|
+
// Create ~/.gemini directory if it doesn't exist
|
|
220
|
+
if (!existsSync(GEMINI_DIR)) {
|
|
221
|
+
mkdirSync(GEMINI_DIR, { recursive: true });
|
|
222
|
+
}
|
|
223
|
+
// Generate and write settings
|
|
224
|
+
const settings = generateSettings(options);
|
|
225
|
+
writeFileSync(SETTINGS_PATH, JSON.stringify(settings, null, 2), "utf-8");
|
|
226
|
+
const parts = [];
|
|
227
|
+
if (options.maxSessionTurns !== undefined) {
|
|
228
|
+
parts.push(`maxSessionTurns=${options.maxSessionTurns}`);
|
|
229
|
+
}
|
|
230
|
+
if (options.mcpServers && Object.keys(options.mcpServers).length > 0) {
|
|
231
|
+
parts.push(`mcpServers=[${Object.keys(options.mcpServers).join(", ")}]`);
|
|
232
|
+
}
|
|
233
|
+
console.log(`[GeminiRunner] Wrote settings.json${parts.length > 0 ? ` with ${parts.join(", ")}` : ""}`);
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Setup Gemini settings for a session
|
|
237
|
+
* Returns cleanup function to call when session ends
|
|
238
|
+
*
|
|
239
|
+
* @param options - Settings options including maxSessionTurns, mcpServers, etc.
|
|
240
|
+
*/
|
|
241
|
+
export function setupGeminiSettings(options) {
|
|
242
|
+
const hadBackup = backupGeminiSettings();
|
|
243
|
+
// Write settings
|
|
244
|
+
writeGeminiSettings(options);
|
|
245
|
+
// Return cleanup function
|
|
246
|
+
return () => {
|
|
247
|
+
if (hadBackup) {
|
|
248
|
+
restoreGeminiSettings();
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
deleteGeminiSettings();
|
|
252
|
+
}
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
//# sourceMappingURL=settingsGenerator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settingsGenerator.js","sourceRoot":"","sources":["../src/settingsGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manages system prompts for Gemini CLI by writing them to disk
|
|
3
|
+
* and configuring the GEMINI_SYSTEM_MD environment variable.
|
|
4
|
+
*
|
|
5
|
+
* Unlike Claude runner which can accept system prompts directly,
|
|
6
|
+
* Gemini CLI requires system prompts to be in a file on disk.
|
|
7
|
+
*
|
|
8
|
+
* Supports parallel execution by using unique file paths per workspace.
|
|
9
|
+
*/
|
|
10
|
+
export declare class SystemPromptManager {
|
|
11
|
+
private cyrusHome;
|
|
12
|
+
private systemPromptPath;
|
|
13
|
+
constructor(cyrusHome: string, workspaceName: string);
|
|
14
|
+
/**
|
|
15
|
+
* Write system prompt to disk and return the path to be used with GEMINI_SYSTEM_MD
|
|
16
|
+
*/
|
|
17
|
+
prepareSystemPrompt(dynamicSystemPrompt: string): Promise<string>;
|
|
18
|
+
/**
|
|
19
|
+
* Get the path where system prompts are stored for this workspace
|
|
20
|
+
*/
|
|
21
|
+
getSystemPromptPath(): string;
|
|
22
|
+
/**
|
|
23
|
+
* Resolve tilde (~) in paths to absolute home directory path
|
|
24
|
+
*/
|
|
25
|
+
static resolveTildePath(path: string): string;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=systemPromptManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"systemPromptManager.d.ts","sourceRoot":"","sources":["../src/systemPromptManager.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AACH,qBAAa,mBAAmB;IAC/B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,gBAAgB,CAAS;gBAErB,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IASpD;;OAEG;IACG,mBAAmB,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA+BvE;;OAEG;IACH,mBAAmB,IAAI,MAAM;IAI7B;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAM7C"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
import { dirname, join } from "node:path";
|
|
4
|
+
import { fileURLToPath } from "node:url";
|
|
5
|
+
/**
|
|
6
|
+
* Manages system prompts for Gemini CLI by writing them to disk
|
|
7
|
+
* and configuring the GEMINI_SYSTEM_MD environment variable.
|
|
8
|
+
*
|
|
9
|
+
* Unlike Claude runner which can accept system prompts directly,
|
|
10
|
+
* Gemini CLI requires system prompts to be in a file on disk.
|
|
11
|
+
*
|
|
12
|
+
* Supports parallel execution by using unique file paths per workspace.
|
|
13
|
+
*/
|
|
14
|
+
export class SystemPromptManager {
|
|
15
|
+
cyrusHome;
|
|
16
|
+
systemPromptPath;
|
|
17
|
+
constructor(cyrusHome, workspaceName) {
|
|
18
|
+
this.cyrusHome = cyrusHome;
|
|
19
|
+
// Use workspace-specific path to support parallel execution
|
|
20
|
+
// Format: ~/.cyrus/gemini-system-prompts/<workspace-name>.md
|
|
21
|
+
// NOTE: Workspace-name is the Linear issue identifier
|
|
22
|
+
const promptsDir = join(this.cyrusHome, "gemini-system-prompts");
|
|
23
|
+
this.systemPromptPath = join(promptsDir, `${workspaceName}.md`);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Write system prompt to disk and return the path to be used with GEMINI_SYSTEM_MD
|
|
27
|
+
*/
|
|
28
|
+
async prepareSystemPrompt(dynamicSystemPrompt) {
|
|
29
|
+
try {
|
|
30
|
+
// Ensure prompts directory exists
|
|
31
|
+
const promptsDir = join(this.cyrusHome, "gemini-system-prompts");
|
|
32
|
+
await mkdir(promptsDir, { recursive: true });
|
|
33
|
+
// Get Gemini system prompt, which we will append
|
|
34
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
35
|
+
const __dirname = dirname(__filename);
|
|
36
|
+
const subroutinePromptPath = join(__dirname, "prompts", "system.md");
|
|
37
|
+
const geminiSystemPrompt = await readFile(subroutinePromptPath, "utf-8");
|
|
38
|
+
const completeSystemPrompt = geminiSystemPrompt + dynamicSystemPrompt;
|
|
39
|
+
// Write system prompt to workspace-specific file
|
|
40
|
+
await writeFile(this.systemPromptPath, completeSystemPrompt, "utf8");
|
|
41
|
+
console.log(`[SystemPromptManager] Wrote system prompt to: ${this.systemPromptPath}`);
|
|
42
|
+
return this.systemPromptPath;
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
console.error("[SystemPromptManager] Failed to write system prompt:", error);
|
|
46
|
+
throw error;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Get the path where system prompts are stored for this workspace
|
|
51
|
+
*/
|
|
52
|
+
getSystemPromptPath() {
|
|
53
|
+
return this.systemPromptPath;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Resolve tilde (~) in paths to absolute home directory path
|
|
57
|
+
*/
|
|
58
|
+
static resolveTildePath(path) {
|
|
59
|
+
if (path.startsWith("~/")) {
|
|
60
|
+
return join(homedir(), path.slice(2));
|
|
61
|
+
}
|
|
62
|
+
return path;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=systemPromptManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"systemPromptManager.js","sourceRoot":"","sources":["../src/systemPromptManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;;;;;;;GAQG;AACH,MAAM,OAAO,mBAAmB;IACvB,SAAS,CAAS;IAClB,gBAAgB,CAAS;IAEjC,YAAY,SAAiB,EAAE,aAAqB;QACnD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,4DAA4D;QAC5D,6DAA6D;QAC7D,sDAAsD;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;QACjE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,aAAa,KAAK,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,mBAA2B;QACpD,IAAI,CAAC;YACJ,kCAAkC;YAClC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;YACjE,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAE7C,iDAAiD;YACjD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;YACtC,MAAM,oBAAoB,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;YAErE,MAAM,kBAAkB,GAAG,MAAM,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;YACzE,MAAM,oBAAoB,GAAG,kBAAkB,GAAG,mBAAmB,CAAC;YAEtE,iDAAiD;YACjD,MAAM,SAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,CAAC,CAAC;YAErE,OAAO,CAAC,GAAG,CACV,iDAAiD,IAAI,CAAC,gBAAgB,EAAE,CACxE,CAAC;YAEF,OAAO,IAAI,CAAC,gBAAgB,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CACZ,sDAAsD,EACtD,KAAK,CACL,CAAC;YACF,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC;IAED;;OAEG;IACH,mBAAmB;QAClB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,IAAY;QACnC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for Gemini Runner
|
|
3
|
+
*
|
|
4
|
+
* Event types are derived from Zod schemas in schemas.ts for runtime validation.
|
|
5
|
+
* Configuration and session types remain as interfaces.
|
|
6
|
+
*/
|
|
7
|
+
import type { AgentRunnerConfig, AgentSessionInfo, McpServerConfig, SDKMessage } from "cyrus-core";
|
|
8
|
+
/**
|
|
9
|
+
* Gemini CLI MCP server configuration
|
|
10
|
+
*
|
|
11
|
+
* Gemini CLI supports three transport types:
|
|
12
|
+
* - stdio: Spawns a subprocess and communicates via stdin/stdout (command-based)
|
|
13
|
+
* - sse: Connects to Server-Sent Events endpoints (url-based)
|
|
14
|
+
* - http: Uses HTTP streaming for communication (httpUrl-based)
|
|
15
|
+
*
|
|
16
|
+
* Reference: https://github.com/google-gemini/gemini-cli/blob/main/docs/get-started/configuration.md
|
|
17
|
+
*/
|
|
18
|
+
export interface GeminiMcpServerConfig {
|
|
19
|
+
/** The command to execute to start the MCP server (stdio transport) */
|
|
20
|
+
command?: string;
|
|
21
|
+
/** Arguments to pass to the command (stdio transport) */
|
|
22
|
+
args?: string[];
|
|
23
|
+
/** The working directory in which to start the server (stdio transport) */
|
|
24
|
+
cwd?: string;
|
|
25
|
+
/** SSE endpoint URL (sse transport) */
|
|
26
|
+
url?: string;
|
|
27
|
+
/** HTTP streaming endpoint URL (http transport) */
|
|
28
|
+
httpUrl?: string;
|
|
29
|
+
/** Custom HTTP headers when using url or httpUrl */
|
|
30
|
+
headers?: Record<string, string>;
|
|
31
|
+
/** Environment variables for the server process */
|
|
32
|
+
env?: Record<string, string>;
|
|
33
|
+
/** Timeout in milliseconds for requests to this MCP server (default: 600000ms) */
|
|
34
|
+
timeout?: number;
|
|
35
|
+
/** Trust this server and bypass all tool call confirmations */
|
|
36
|
+
trust?: boolean;
|
|
37
|
+
/** List of tool names to include from this MCP server (whitelist) */
|
|
38
|
+
includeTools?: string[];
|
|
39
|
+
/** List of tool names to exclude from this MCP server (blacklist) */
|
|
40
|
+
excludeTools?: string[];
|
|
41
|
+
}
|
|
42
|
+
export type { McpServerConfig };
|
|
43
|
+
export type { GeminiErrorEvent, GeminiInitEvent, GeminiMessageEvent, GeminiResultEvent, GeminiStreamEvent, GeminiToolParameters, GeminiToolResultEvent, GeminiToolUseEvent, ListDirectoryParameters, ListDirectoryToolResult, ListDirectoryToolUseEvent, ReadFileParameters, ReadFileToolResult, ReadFileToolUseEvent, ReplaceParameters, ReplaceToolResult, ReplaceToolUseEvent, RunShellCommandParameters, RunShellCommandToolResult, RunShellCommandToolUseEvent, SearchFileContentParameters, SearchFileContentToolResult, SearchFileContentToolUseEvent, TodoItem, UnknownToolUseEvent, WriteFileParameters, WriteFileToolResult, WriteFileToolUseEvent, WriteTodosParameters, WriteTodosToolResult, WriteTodosToolUseEvent, } from "./schemas.js";
|
|
44
|
+
export { extractToolNameFromId, GeminiErrorEventSchema, GeminiInitEventSchema, GeminiMessageEventSchema, GeminiResultEventSchema, GeminiStreamEventSchema, GeminiToolParametersSchema, GeminiToolResultEventSchema, GeminiToolUseEventSchema, isGeminiErrorEvent, isGeminiInitEvent, isGeminiMessageEvent, isGeminiResultEvent, isGeminiToolResultEvent, isGeminiToolUseEvent, isListDirectoryTool, isListDirectoryToolResult, isReadFileTool, isReadFileToolResult, isReplaceTool, isReplaceToolResult, isRunShellCommandTool, isRunShellCommandToolResult, isSearchFileContentTool, isSearchFileContentToolResult, isWriteFileTool, isWriteFileToolResult, isWriteTodosTool, isWriteTodosToolResult, ListDirectoryParametersSchema, ListDirectoryToolResultSchema, ListDirectoryToolUseEventSchema, parseAsListDirectoryTool, parseAsReadFileTool, parseAsReplaceTool, parseAsRunShellCommandTool, parseAsSearchFileContentTool, parseAsWriteFileTool, parseAsWriteTodosTool, parseGeminiStreamEvent, ReadFileParametersSchema, ReadFileToolResultSchema, ReadFileToolUseEventSchema, ReplaceParametersSchema, ReplaceToolResultSchema, ReplaceToolUseEventSchema, RunShellCommandParametersSchema, RunShellCommandToolResultSchema, RunShellCommandToolUseEventSchema, SearchFileContentParametersSchema, SearchFileContentToolResultSchema, SearchFileContentToolUseEventSchema, safeParseGeminiStreamEvent, TodoItemSchema, UnknownToolUseEventSchema, WriteFileParametersSchema, WriteFileToolResultSchema, WriteFileToolUseEventSchema, WriteTodosParametersSchema, WriteTodosToolResultSchema, WriteTodosToolUseEventSchema, } from "./schemas.js";
|
|
45
|
+
/**
|
|
46
|
+
* Configuration for GeminiRunner
|
|
47
|
+
* Extends the base AgentRunnerConfig with Gemini-specific options
|
|
48
|
+
*
|
|
49
|
+
* MCP Configuration:
|
|
50
|
+
* - mcpConfig: Inline MCP server configurations (inherited from AgentRunnerConfig)
|
|
51
|
+
* - mcpConfigPath: Path(s) to MCP configuration file(s) (inherited from AgentRunnerConfig)
|
|
52
|
+
* - allowMCPServers: Gemini-specific whitelist of MCP server names
|
|
53
|
+
* - excludeMCPServers: Gemini-specific blacklist of MCP server names
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```typescript
|
|
57
|
+
* const config: GeminiRunnerConfig = {
|
|
58
|
+
* cyrusHome: '/home/user/.cyrus',
|
|
59
|
+
* workingDirectory: '/path/to/repo',
|
|
60
|
+
* mcpConfig: {
|
|
61
|
+
* linear: {
|
|
62
|
+
* command: 'npx',
|
|
63
|
+
* args: ['-y', '@anthropic/mcp-linear'],
|
|
64
|
+
* env: { LINEAR_API_TOKEN: 'token' }
|
|
65
|
+
* }
|
|
66
|
+
* },
|
|
67
|
+
* allowMCPServers: ['linear'], // Only enable Linear MCP
|
|
68
|
+
* };
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
export interface GeminiRunnerConfig extends AgentRunnerConfig {
|
|
72
|
+
/** Path to gemini CLI binary (defaults to 'gemini' in PATH) */
|
|
73
|
+
geminiPath?: string;
|
|
74
|
+
/** Whether to auto-approve all actions (--yolo flag) */
|
|
75
|
+
autoApprove?: boolean;
|
|
76
|
+
/** Approval mode for tool use */
|
|
77
|
+
approvalMode?: "auto_edit" | "auto" | "manual";
|
|
78
|
+
/** Enable debug output */
|
|
79
|
+
debug?: boolean;
|
|
80
|
+
/** Additional directories to include in workspace context (--include-directories flag) */
|
|
81
|
+
includeDirectories?: string[];
|
|
82
|
+
/** Enable single-turn mode (sets maxSessionTurns=1 in settings.json) */
|
|
83
|
+
singleTurn?: boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Whitelist of MCP server names to make available to the model.
|
|
86
|
+
* If specified, only listed servers will be available.
|
|
87
|
+
* Matches Gemini CLI's allowMCPServers setting.
|
|
88
|
+
*/
|
|
89
|
+
allowMCPServers?: string[];
|
|
90
|
+
/**
|
|
91
|
+
* Blacklist of MCP server names to exclude from the model.
|
|
92
|
+
* Takes precedence over allowMCPServers.
|
|
93
|
+
* Matches Gemini CLI's excludeMCPServers setting.
|
|
94
|
+
*/
|
|
95
|
+
excludeMCPServers?: string[];
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Session information for Gemini runner
|
|
99
|
+
*/
|
|
100
|
+
export interface GeminiSessionInfo extends AgentSessionInfo {
|
|
101
|
+
/** Gemini-specific session ID */
|
|
102
|
+
sessionId: string | null;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Event emitter interface for GeminiRunner
|
|
106
|
+
*/
|
|
107
|
+
export interface GeminiRunnerEvents {
|
|
108
|
+
message: (message: SDKMessage) => void;
|
|
109
|
+
error: (error: Error) => void;
|
|
110
|
+
complete: (messages: SDKMessage[]) => void;
|
|
111
|
+
streamEvent: (event: import("./schemas.js").GeminiStreamEvent) => void;
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for Gemini Runner
|
|
3
|
+
*
|
|
4
|
+
* Event types are derived from Zod schemas in schemas.ts for runtime validation.
|
|
5
|
+
* Configuration and session types remain as interfaces.
|
|
6
|
+
*/
|
|
7
|
+
// Re-export schemas for runtime validation
|
|
8
|
+
export {
|
|
9
|
+
// Parsing utilities
|
|
10
|
+
extractToolNameFromId,
|
|
11
|
+
// Event schemas
|
|
12
|
+
GeminiErrorEventSchema, GeminiInitEventSchema, GeminiMessageEventSchema, GeminiResultEventSchema, GeminiStreamEventSchema,
|
|
13
|
+
// Tool parameter schemas
|
|
14
|
+
GeminiToolParametersSchema, GeminiToolResultEventSchema, GeminiToolUseEventSchema,
|
|
15
|
+
// Event type guards
|
|
16
|
+
isGeminiErrorEvent, isGeminiInitEvent, isGeminiMessageEvent, isGeminiResultEvent, isGeminiToolResultEvent, isGeminiToolUseEvent,
|
|
17
|
+
// Tool use type guards
|
|
18
|
+
isListDirectoryTool,
|
|
19
|
+
// Tool result type guards
|
|
20
|
+
isListDirectoryToolResult, isReadFileTool, isReadFileToolResult, isReplaceTool, isReplaceToolResult, isRunShellCommandTool, isRunShellCommandToolResult, isSearchFileContentTool, isSearchFileContentToolResult, isWriteFileTool, isWriteFileToolResult, isWriteTodosTool, isWriteTodosToolResult, ListDirectoryParametersSchema,
|
|
21
|
+
// Tool result schemas
|
|
22
|
+
ListDirectoryToolResultSchema, ListDirectoryToolUseEventSchema, parseAsListDirectoryTool, parseAsReadFileTool, parseAsReplaceTool, parseAsRunShellCommandTool, parseAsSearchFileContentTool, parseAsWriteFileTool, parseAsWriteTodosTool, parseGeminiStreamEvent, ReadFileParametersSchema, ReadFileToolResultSchema, ReadFileToolUseEventSchema, ReplaceParametersSchema, ReplaceToolResultSchema, ReplaceToolUseEventSchema, RunShellCommandParametersSchema, RunShellCommandToolResultSchema, RunShellCommandToolUseEventSchema, SearchFileContentParametersSchema, SearchFileContentToolResultSchema, SearchFileContentToolUseEventSchema, safeParseGeminiStreamEvent, TodoItemSchema, UnknownToolUseEventSchema, WriteFileParametersSchema, WriteFileToolResultSchema, WriteFileToolUseEventSchema, WriteTodosParametersSchema, WriteTodosToolResultSchema, WriteTodosToolUseEventSchema, } from "./schemas.js";
|
|
23
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA2FH,2CAA2C;AAC3C,OAAO;AACN,oBAAoB;AACpB,qBAAqB;AACrB,gBAAgB;AAChB,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB;AACvB,yBAAyB;AACzB,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB;AACxB,oBAAoB;AACpB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,EACvB,oBAAoB;AACpB,uBAAuB;AACvB,mBAAmB;AACnB,0BAA0B;AAC1B,yBAAyB,EACzB,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,2BAA2B,EAC3B,uBAAuB,EACvB,6BAA6B,EAC7B,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,6BAA6B;AAC7B,sBAAsB;AACtB,6BAA6B,EAC7B,+BAA+B,EAC/B,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,0BAA0B,EAC1B,4BAA4B,EAC5B,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,+BAA+B,EAC/B,+BAA+B,EAC/B,iCAAiC,EACjC,iCAAiC,EACjC,iCAAiC,EACjC,mCAAmC,EACnC,0BAA0B,EAC1B,cAAc,EACd,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,2BAA2B,EAC3B,0BAA0B,EAC1B,0BAA0B,EAC1B,4BAA4B,GAC5B,MAAM,cAAc,CAAC"}
|