@chrishdx/llm-dev-server 1.1.0 → 1.1.1
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/backend/dist/controllers/AuthController.d.ts.map +1 -1
- package/backend/dist/controllers/AuthController.js +19 -0
- package/backend/dist/controllers/AuthController.js.map +1 -1
- package/backend/dist/middleware/authelia.middleware.d.ts.map +1 -1
- package/backend/dist/middleware/authelia.middleware.js +39 -12
- package/backend/dist/middleware/authelia.middleware.js.map +1 -1
- package/backend/dist/routes/index.js +1 -1
- package/backend/dist/routes/index.js.map +1 -1
- package/backend/dist/services/llm/ClaudeProvider.d.ts +8 -0
- package/backend/dist/services/llm/ClaudeProvider.d.ts.map +1 -1
- package/backend/dist/services/llm/ClaudeProvider.js +129 -10
- package/backend/dist/services/llm/ClaudeProvider.js.map +1 -1
- package/backend/dist/services/llm/CodexProvider.d.ts.map +1 -1
- package/backend/dist/services/llm/CodexProvider.js +29 -3
- package/backend/dist/services/llm/CodexProvider.js.map +1 -1
- package/backend/dist/services/llm/GeminiProvider.d.ts +4 -0
- package/backend/dist/services/llm/GeminiProvider.d.ts.map +1 -1
- package/backend/dist/services/llm/GeminiProvider.js +61 -1
- package/backend/dist/services/llm/GeminiProvider.js.map +1 -1
- package/backend/public/assets/{index-D3MSZSAs.js → index-C5FA1UMN.js} +21 -21
- package/backend/public/index.html +1 -1
- package/package.json +1 -1
|
@@ -6,9 +6,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.GeminiProvider = void 0;
|
|
7
7
|
const child_process_1 = require("child_process");
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
10
|
const readline_1 = __importDefault(require("readline"));
|
|
10
11
|
const LLMProviderBase_1 = require("./LLMProviderBase");
|
|
11
12
|
const models_1 = require("../../models");
|
|
13
|
+
const crypto_1 = require("../../utils/crypto");
|
|
12
14
|
const environment_1 = __importDefault(require("../../config/environment"));
|
|
13
15
|
const logger_1 = __importDefault(require("../../utils/logger"));
|
|
14
16
|
class GeminiProvider extends LLMProviderBase_1.LLMProviderBase {
|
|
@@ -25,17 +27,72 @@ class GeminiProvider extends LLMProviderBase_1.LLMProviderBase {
|
|
|
25
27
|
...process.env,
|
|
26
28
|
HOME: this.geminiHome,
|
|
27
29
|
};
|
|
28
|
-
//
|
|
30
|
+
// Ensure .gemini directory exists
|
|
31
|
+
const geminiConfigDir = path_1.default.join(this.geminiHome, ".gemini");
|
|
32
|
+
if (!fs_1.default.existsSync(geminiConfigDir)) {
|
|
33
|
+
fs_1.default.mkdirSync(geminiConfigDir, { recursive: true, mode: 0o700 });
|
|
34
|
+
logger_1.default.info(`Created Gemini config directory: ${geminiConfigDir}`);
|
|
35
|
+
}
|
|
36
|
+
// Verify auth token exists and sync credentials
|
|
29
37
|
const token = await models_1.AuthToken.findByPk(this.config.tokenId);
|
|
30
38
|
if (!token || token.provider !== "gemini") {
|
|
31
39
|
throw new Error("Invalid Gemini auth token");
|
|
32
40
|
}
|
|
41
|
+
// Ensure settings.json exists with proper auth config
|
|
42
|
+
await this.ensureGeminiSettings(token);
|
|
33
43
|
// Use session ID from config if provided
|
|
34
44
|
if (this.config.sessionId) {
|
|
35
45
|
this.currentSessionId = this.config.sessionId;
|
|
36
46
|
}
|
|
37
47
|
logger_1.default.info("Gemini provider initialized");
|
|
38
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Ensure Gemini settings.json has proper auth configuration
|
|
51
|
+
*/
|
|
52
|
+
async ensureGeminiSettings(token) {
|
|
53
|
+
const settingsPath = path_1.default.join(this.geminiHome, ".gemini", "settings.json");
|
|
54
|
+
const oauthCredsPath = path_1.default.join(this.geminiHome, "oauth_creds.json");
|
|
55
|
+
try {
|
|
56
|
+
// Check if we have OAuth credentials from database
|
|
57
|
+
if (token.accessToken) {
|
|
58
|
+
// Write oauth_creds.json for the CLI
|
|
59
|
+
const accessToken = (0, crypto_1.decrypt)(token.accessToken);
|
|
60
|
+
const refreshToken = token.refreshToken ? (0, crypto_1.decrypt)(token.refreshToken) : null;
|
|
61
|
+
const oauthCreds = {
|
|
62
|
+
access_token: accessToken,
|
|
63
|
+
refresh_token: refreshToken,
|
|
64
|
+
token_type: token.tokenType || "Bearer",
|
|
65
|
+
expires_at: token.expiresAt ? new Date(token.expiresAt).getTime() : null,
|
|
66
|
+
};
|
|
67
|
+
// Write to both standard location and .gemini location
|
|
68
|
+
const credsInGeminiDir = path_1.default.join(this.geminiHome, ".gemini", "oauth_creds.json");
|
|
69
|
+
fs_1.default.writeFileSync(oauthCredsPath, JSON.stringify(oauthCreds, null, 2), { mode: 0o600 });
|
|
70
|
+
fs_1.default.writeFileSync(credsInGeminiDir, JSON.stringify(oauthCreds, null, 2), { mode: 0o600 });
|
|
71
|
+
logger_1.default.debug("Synced Gemini OAuth credentials to file");
|
|
72
|
+
}
|
|
73
|
+
// Ensure settings.json exists with proper auth type
|
|
74
|
+
let settings = {};
|
|
75
|
+
if (fs_1.default.existsSync(settingsPath)) {
|
|
76
|
+
try {
|
|
77
|
+
settings = JSON.parse(fs_1.default.readFileSync(settingsPath, "utf8"));
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
settings = {};
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// Set auth type to oauth-personal if not already set
|
|
84
|
+
if (!settings.security?.auth?.selectedType) {
|
|
85
|
+
settings.security = settings.security || {};
|
|
86
|
+
settings.security.auth = settings.security.auth || {};
|
|
87
|
+
settings.security.auth.selectedType = "oauth-personal";
|
|
88
|
+
fs_1.default.writeFileSync(settingsPath, JSON.stringify(settings, null, 2), { mode: 0o600 });
|
|
89
|
+
logger_1.default.info("Updated Gemini settings.json with OAuth auth type");
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
logger_1.default.warn("Failed to ensure Gemini settings:", error);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
39
96
|
async sendMessage(params) {
|
|
40
97
|
const { content, systemPrompt, onChunk } = params;
|
|
41
98
|
// Build CLI arguments
|
|
@@ -49,6 +106,9 @@ class GeminiProvider extends LLMProviderBase_1.LLMProviderBase {
|
|
|
49
106
|
}
|
|
50
107
|
// Spawn Gemini CLI
|
|
51
108
|
const cliPath = this.resolveGeminiCli();
|
|
109
|
+
logger_1.default.info(`Spawning Gemini CLI: node ${cliPath}`);
|
|
110
|
+
logger_1.default.info(`Gemini CLI args: ${args.join(" ")}`);
|
|
111
|
+
logger_1.default.info(`Gemini HOME: ${this.geminiHome}`);
|
|
52
112
|
const child = (0, child_process_1.spawn)("node", [cliPath, ...args], {
|
|
53
113
|
env: this.env,
|
|
54
114
|
cwd: this.config.workingDirectory,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeminiProvider.js","sourceRoot":"","sources":["../../../src/services/llm/GeminiProvider.ts"],"names":[],"mappings":";;;;;;AAAA,iDAAoD;AACpD,gDAAwB;AACxB,wDAAgC;AAChC,uDAM2B;AAC3B,yCAAyC;AACzC,2EAA8C;AAC9C,gEAAwC;AAWxC,MAAa,cAAe,SAAQ,iCAAe;IAIjD,YAAY,cAAiC;QAC3C,KAAK,CAAC,cAAc,CAAC,CAAC;QACtB,oCAAoC;QACpC,IAAI,CAAC,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,qBAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,UAAU;QACd,gBAAM,CAAC,IAAI,CACT,uDAAuD,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CACtF,CAAC;QAEF,iCAAiC;QACjC,mDAAmD;QACnD,IAAI,CAAC,GAAG,GAAG;YACT,GAAG,OAAO,CAAC,GAAG;YACd,IAAI,EAAE,IAAI,CAAC,UAAU;SACtB,CAAC;QAEF,
|
|
1
|
+
{"version":3,"file":"GeminiProvider.js","sourceRoot":"","sources":["../../../src/services/llm/GeminiProvider.ts"],"names":[],"mappings":"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"}
|