@fentz26/envcp 1.2.0-exp.8d5b91b → 1.2.0-exp.92feaad

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.
Files changed (86) hide show
  1. package/VERSION +1 -1
  2. package/dist/adapters/base.d.ts +25 -2
  3. package/dist/adapters/base.d.ts.map +1 -1
  4. package/dist/adapters/base.js +68 -6
  5. package/dist/adapters/base.js.map +1 -1
  6. package/dist/adapters/gemini.d.ts +1 -4
  7. package/dist/adapters/gemini.d.ts.map +1 -1
  8. package/dist/adapters/gemini.js +21 -112
  9. package/dist/adapters/gemini.js.map +1 -1
  10. package/dist/adapters/openai.d.ts +1 -4
  11. package/dist/adapters/openai.d.ts.map +1 -1
  12. package/dist/adapters/openai.js +25 -126
  13. package/dist/adapters/openai.js.map +1 -1
  14. package/dist/adapters/rest.d.ts.map +1 -1
  15. package/dist/adapters/rest.js +7 -3
  16. package/dist/adapters/rest.js.map +1 -1
  17. package/dist/cli/index.js +109 -62
  18. package/dist/cli/index.js.map +1 -1
  19. package/dist/config/config-guard.d.ts.map +1 -1
  20. package/dist/config/config-guard.js +9 -4
  21. package/dist/config/config-guard.js.map +1 -1
  22. package/dist/config/config-hmac.js +2 -2
  23. package/dist/config/config-hmac.js.map +1 -1
  24. package/dist/config/manager.d.ts.map +1 -1
  25. package/dist/config/manager.js +22 -20
  26. package/dist/config/manager.js.map +1 -1
  27. package/dist/mcp/server.d.ts.map +1 -1
  28. package/dist/mcp/server.js +2 -1
  29. package/dist/mcp/server.js.map +1 -1
  30. package/dist/server/unified.js +1 -1
  31. package/dist/server/unified.js.map +1 -1
  32. package/dist/service/config.d.ts.map +1 -1
  33. package/dist/service/config.js +5 -4
  34. package/dist/service/config.js.map +1 -1
  35. package/dist/service/generators.d.ts.map +1 -1
  36. package/dist/service/generators.js +6 -8
  37. package/dist/service/generators.js.map +1 -1
  38. package/dist/service/index.js +4 -3
  39. package/dist/service/index.js.map +1 -1
  40. package/dist/service/platform.js +2 -2
  41. package/dist/service/platform.js.map +1 -1
  42. package/dist/storage/index.d.ts +1 -1
  43. package/dist/storage/index.d.ts.map +1 -1
  44. package/dist/storage/index.js +35 -27
  45. package/dist/storage/index.js.map +1 -1
  46. package/dist/types.js +1 -1
  47. package/dist/types.js.map +1 -1
  48. package/dist/utils/crypto.js +2 -2
  49. package/dist/utils/crypto.js.map +1 -1
  50. package/dist/utils/fs.js +6 -6
  51. package/dist/utils/fs.js.map +1 -1
  52. package/dist/utils/hsm.d.ts +8 -8
  53. package/dist/utils/hsm.d.ts.map +1 -1
  54. package/dist/utils/hsm.js +7 -6
  55. package/dist/utils/hsm.js.map +1 -1
  56. package/dist/utils/http.d.ts +1 -1
  57. package/dist/utils/http.d.ts.map +1 -1
  58. package/dist/utils/http.js +1 -1
  59. package/dist/utils/http.js.map +1 -1
  60. package/dist/utils/keychain.js +4 -4
  61. package/dist/utils/keychain.js.map +1 -1
  62. package/dist/utils/lock.d.ts.map +1 -1
  63. package/dist/utils/lock.js +2 -1
  64. package/dist/utils/lock.js.map +1 -1
  65. package/dist/utils/lockout.d.ts +2 -2
  66. package/dist/utils/lockout.d.ts.map +1 -1
  67. package/dist/utils/lockout.js +3 -3
  68. package/dist/utils/lockout.js.map +1 -1
  69. package/dist/utils/prompt.js +3 -3
  70. package/dist/utils/prompt.js.map +1 -1
  71. package/dist/utils/secure-memory.d.ts.map +1 -1
  72. package/dist/utils/secure-memory.js +6 -3
  73. package/dist/utils/secure-memory.js.map +1 -1
  74. package/dist/utils/session.js +3 -3
  75. package/dist/utils/session.js.map +1 -1
  76. package/dist/utils/update-checker.d.ts +3 -0
  77. package/dist/utils/update-checker.d.ts.map +1 -1
  78. package/dist/utils/update-checker.js +51 -5
  79. package/dist/utils/update-checker.js.map +1 -1
  80. package/dist/vault/index.d.ts.map +1 -1
  81. package/dist/vault/index.js +5 -3
  82. package/dist/vault/index.js.map +1 -1
  83. package/dist/version.js +3 -3
  84. package/dist/version.js.map +1 -1
  85. package/package.json +1 -1
  86. package/scripts/sync-version.js +65 -23
package/VERSION CHANGED
@@ -1 +1 @@
1
- 1.2.0-exp.772c5eb
1
+ 1.2.0-exp.92feaad
@@ -1,6 +1,7 @@
1
1
  import { StorageManager, LogManager } from '../storage/index.js';
2
- import { EnvCPConfig, ToolDefinition, LogsRole } from '../types.js';
2
+ import { EnvCPConfig, ToolDefinition, LogsRole, RateLimitConfig } from '../types.js';
3
3
  import { SessionManager } from '../utils/session.js';
4
+ import * as http from 'node:http';
4
5
  export declare abstract class BaseAdapter {
5
6
  protected storage: StorageManager;
6
7
  protected logs: LogManager;
@@ -9,7 +10,7 @@ export declare abstract class BaseAdapter {
9
10
  protected projectPath: string;
10
11
  protected tools: Map<string, ToolDefinition>;
11
12
  constructor(config: EnvCPConfig, projectPath: string, password?: string, vaultPath?: string, sessionPath?: string);
12
- protected abstract registerTools(): void;
13
+ protected registerTools(): void;
13
14
  protected registerDefaultTools(): void;
14
15
  protected readLogs(args: {
15
16
  date?: string;
@@ -26,6 +27,15 @@ export declare abstract class BaseAdapter {
26
27
  init(): Promise<void>;
27
28
  protected ensurePassword(): Promise<void>;
28
29
  getToolDefinitions(): ToolDefinition[];
30
+ protected getStructuredToolDefinitions(): Array<{
31
+ name: string;
32
+ description: string;
33
+ parameters: {
34
+ type: 'object';
35
+ properties: Record<string, unknown>;
36
+ required?: string[];
37
+ };
38
+ }>;
29
39
  protected currentClientId: string;
30
40
  callTool(name: string, params: Record<string, unknown>, clientId?: string): Promise<unknown>;
31
41
  protected resolveLogsRole(clientId: string): LogsRole;
@@ -110,5 +120,18 @@ export declare abstract class BaseAdapter {
110
120
  stdout: string;
111
121
  stderr: string;
112
122
  }>;
123
+ protected createHttpServer(opts: {
124
+ port: number;
125
+ host: string;
126
+ apiKey?: string;
127
+ rateLimitConfig?: RateLimitConfig;
128
+ defaultClientId: string;
129
+ authHeaderFn: (req: http.IncomingMessage) => string | undefined;
130
+ onRequest: (req: http.IncomingMessage, res: http.ServerResponse, pathname: string, clientId: string) => Promise<void>;
131
+ authFailureResponse?: (message: string) => unknown;
132
+ internalErrorResponse?: (message: string) => unknown;
133
+ healthEndpoints: string[];
134
+ mode: string;
135
+ }): Promise<http.Server>;
113
136
  }
114
137
  //# sourceMappingURL=base.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/adapters/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/adapters/base.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,11 @@ import { maskValue, hashVariablePassword, verifyVariablePassword, encryptVariabl
3
3
  import { canAccess, isBlacklisted, canAIActiveCheck, validateVariableName, matchesPattern } from '../config/manager.js';
4
4
  import { SessionManager } from '../utils/session.js';
5
5
  import { resolveSessionPath } from '../vault/index.js';
6
- import * as fs from 'fs/promises';
6
+ import { setCorsHeaders, sendJson, validateApiKey, RateLimiter, rateLimitMiddleware } from '../utils/http.js';
7
+ import * as fs from 'node:fs/promises';
7
8
  import { pathExists, parseEnv } from '../utils/fs.js';
8
- import * as path from 'path';
9
+ import * as path from 'node:path';
10
+ import * as http from 'node:http';
9
11
  export class BaseAdapter {
10
12
  storage;
11
13
  logs;
@@ -27,6 +29,9 @@ export class BaseAdapter {
27
29
  this.tools = new Map();
28
30
  this.registerTools();
29
31
  }
32
+ registerTools() {
33
+ this.registerDefaultTools();
34
+ }
30
35
  registerDefaultTools() {
31
36
  const tools = [
32
37
  {
@@ -192,6 +197,20 @@ export class BaseAdapter {
192
197
  getToolDefinitions() {
193
198
  return Array.from(this.tools.values());
194
199
  }
200
+ getStructuredToolDefinitions() {
201
+ return this.getToolDefinitions().map(tool => {
202
+ const parameters = tool.parameters;
203
+ return {
204
+ name: tool.name,
205
+ description: tool.description,
206
+ parameters: {
207
+ type: 'object',
208
+ properties: parameters.properties || {},
209
+ required: parameters.required,
210
+ },
211
+ };
212
+ });
213
+ }
195
214
  currentClientId = '';
196
215
  async callTool(name, params, clientId = '') {
197
216
  const tool = this.tools.get(name);
@@ -209,10 +228,13 @@ export class BaseAdapter {
209
228
  }
210
229
  }
211
230
  resolveLogsRole(clientId) {
231
+ /* c8 ignore next -- Zod always provides logs_roles default; || fallback unreachable */
212
232
  const roles = this.config.access.logs_roles || {};
213
- if (clientId && Object.prototype.hasOwnProperty.call(roles, clientId)) {
233
+ /* c8 ignore next */
234
+ if (clientId && Object.hasOwn(roles, clientId)) {
214
235
  return roles[clientId];
215
236
  }
237
+ /* c8 ignore next -- Zod always provides logs_default_role; ?? fallback unreachable */
216
238
  return this.config.access.logs_default_role ?? 'own_sessions';
217
239
  }
218
240
  async logEvent(entry) {
@@ -529,7 +551,7 @@ export class BaseAdapter {
529
551
  continue;
530
552
  }
531
553
  const needsQuoting = /[\s#"'\\]/.test(variable.value);
532
- const val = needsQuoting ? `"${variable.value.replace(/\\/g, '\\\\').replace(/"/g, '\\"')}"` : variable.value;
554
+ const val = needsQuoting ? `"${variable.value.replaceAll('\\', '\\\\').replaceAll('"', '\\"')}"` : variable.value;
533
555
  lines.push(`${name}=${val}`);
534
556
  }
535
557
  const envPath = path.resolve(this.projectPath, this.config.sync.target);
@@ -566,7 +588,7 @@ export class BaseAdapter {
566
588
  }
567
589
  const envVars = parseEnv(content);
568
590
  const needsQuoting = /[\s#"'\\]/.test(variable.value);
569
- const quotedValue = needsQuoting ? `"${variable.value.replace(/\\/g, '\\\\').replace(/"/g, '\\"')}"` : variable.value;
591
+ const quotedValue = needsQuoting ? `"${variable.value.replaceAll('\\', '\\\\').replaceAll('"', '\\"')}"` : variable.value;
570
592
  if (envVars[args.name]) {
571
593
  const lines = content.split('\n');
572
594
  const newLines = lines.map(line => {
@@ -712,7 +734,7 @@ export class BaseAdapter {
712
734
  const { program: prog, args: cmdArgs } = this.parseCommand(args.command);
713
735
  // Enforce require_command_whitelist: allowed_commands must exist and contain the program
714
736
  if (this.config.access.run_safety?.require_command_whitelist) {
715
- if (!this.config.access.allowed_commands || !this.config.access.allowed_commands.includes(prog)) {
737
+ if (!this.config.access.allowed_commands?.includes(prog)) {
716
738
  throw new Error(`Command '${prog}' is not in the allowed commands list (require_command_whitelist is enabled)`);
717
739
  }
718
740
  }
@@ -827,5 +849,45 @@ export class BaseAdapter {
827
849
  });
828
850
  return result;
829
851
  }
852
+ createHttpServer(opts) {
853
+ const rateLimiter = new RateLimiter(opts.rateLimitConfig?.requests_per_minute ?? 60, 60000);
854
+ const rateLimitEnabled = opts.rateLimitConfig?.enabled !== false;
855
+ const whitelist = opts.rateLimitConfig?.whitelist ?? [];
856
+ const server = http.createServer(async (req, res) => {
857
+ setCorsHeaders(res, undefined, req.headers.origin);
858
+ if (req.method === 'OPTIONS') {
859
+ res.writeHead(204);
860
+ res.end();
861
+ return;
862
+ }
863
+ if (rateLimitEnabled && !rateLimitMiddleware(rateLimiter, req, res, whitelist)) {
864
+ return;
865
+ }
866
+ if (opts.apiKey) {
867
+ const providedKey = opts.authHeaderFn(req);
868
+ if (!validateApiKey(providedKey, opts.apiKey)) {
869
+ await this.logs.log({ timestamp: new Date().toISOString(), operation: 'auth_failure', variable: '', source: 'api', success: false, message: `Invalid API key from ${req.socket.remoteAddress ?? 'unknown'}` });
870
+ sendJson(res, 401, opts.authFailureResponse?.('Invalid API key') ?? { error: { code: 401, message: 'Invalid API key', status: 'UNAUTHENTICATED' } });
871
+ return;
872
+ }
873
+ }
874
+ const parsedUrl = new URL(req.url || '/', `http://${req.headers.host ?? 'localhost'}`);
875
+ const pathname = parsedUrl.pathname;
876
+ const clientIdHeader = req.headers['x-envcp-client-id'];
877
+ const clientId = (Array.isArray(clientIdHeader) ? clientIdHeader[0] : clientIdHeader) || opts.defaultClientId;
878
+ try {
879
+ await opts.onRequest(req, res, pathname, clientId);
880
+ }
881
+ catch (error) {
882
+ const message = error instanceof Error ? error.message : String(error);
883
+ sendJson(res, 500, opts.internalErrorResponse?.(message) ?? { error: { code: 500, message, status: 'INTERNAL' } });
884
+ }
885
+ });
886
+ return new Promise((resolve) => {
887
+ server.listen(opts.port, opts.host, () => {
888
+ resolve(server);
889
+ });
890
+ });
891
+ }
830
892
  }
831
893
  //# sourceMappingURL=base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/adapters/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/adapters/base.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,7 @@
1
1
  import { BaseAdapter } from './base.js';
2
- import { EnvCPConfig, GeminiFunctionDeclaration, GeminiFunctionCall, GeminiFunctionResponse, RateLimitConfig } from '../types.js';
2
+ import { GeminiFunctionDeclaration, GeminiFunctionCall, GeminiFunctionResponse, RateLimitConfig } from '../types.js';
3
3
  export declare class GeminiAdapter extends BaseAdapter {
4
4
  private server;
5
- private rateLimiter;
6
- constructor(config: EnvCPConfig, projectPath: string, password?: string, vaultPath?: string, sessionPath?: string);
7
- protected registerTools(): void;
8
5
  getGeminiFunctionDeclarations(): GeminiFunctionDeclaration[];
9
6
  processFunctionCalls(calls: GeminiFunctionCall[]): Promise<GeminiFunctionResponse[]>;
10
7
  startServer(port: number, host: string, apiKey?: string, rateLimitConfig?: RateLimitConfig): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/adapters/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAKlI,qBAAa,aAAc,SAAQ,WAAW;IAC5C,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,WAAW,CAA8B;gBAErC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;IAIjH,SAAS,CAAC,aAAa,IAAI,IAAI;IAK/B,6BAA6B,IAAI,yBAAyB,EAAE;IAatD,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAuBtF,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAkL9G,UAAU,IAAI,IAAI;CAOnB"}
1
+ {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/adapters/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAKrH,qBAAa,aAAc,SAAQ,WAAW;IAC5C,OAAO,CAAC,MAAM,CAA4B;IAE1C,6BAA6B,IAAI,yBAAyB,EAAE;IAItD,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAsBpF,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA2FhH,UAAU,IAAI,IAAI;CAMnB"}
@@ -1,29 +1,11 @@
1
1
  import { BaseAdapter } from './base.js';
2
- import { setCorsHeaders, sendJson, parseBody, validateApiKey, RateLimiter, rateLimitMiddleware } from '../utils/http.js';
2
+ import { sendJson, parseBody } from '../utils/http.js';
3
3
  import { VERSION } from '../version.js';
4
- import * as http from 'http';
5
4
  export class GeminiAdapter extends BaseAdapter {
6
5
  server = null;
7
- rateLimiter = new RateLimiter(60, 60000);
8
- constructor(config, projectPath, password, vaultPath, sessionPath) {
9
- super(config, projectPath, password, vaultPath, sessionPath);
10
- }
11
- registerTools() {
12
- this.registerDefaultTools();
13
- }
14
- // Convert tools to Gemini function declaration format
15
6
  getGeminiFunctionDeclarations() {
16
- return this.getToolDefinitions().map(tool => ({
17
- name: tool.name,
18
- description: tool.description,
19
- parameters: {
20
- type: 'object',
21
- properties: tool.parameters.properties || {},
22
- required: tool.parameters.required,
23
- },
24
- }));
7
+ return this.getStructuredToolDefinitions();
25
8
  }
26
- // Process Gemini function calls
27
9
  async processFunctionCalls(calls) {
28
10
  const results = [];
29
11
  for (const call of calls) {
@@ -46,38 +28,16 @@ export class GeminiAdapter extends BaseAdapter {
46
28
  }
47
29
  async startServer(port, host, apiKey, rateLimitConfig) {
48
30
  await this.init();
49
- const rateLimitEnabled = rateLimitConfig?.enabled !== false;
50
- if (rateLimitEnabled) {
51
- this.rateLimiter?.destroy();
52
- this.rateLimiter = new RateLimiter(rateLimitConfig?.requests_per_minute ?? 60, 60000);
53
- }
54
- const whitelist = rateLimitConfig?.whitelist ?? [];
55
- this.server = http.createServer(async (req, res) => {
56
- setCorsHeaders(res, undefined, req.headers.origin);
57
- if (req.method === 'OPTIONS') {
58
- res.writeHead(204);
59
- res.end();
60
- return;
61
- }
62
- if (rateLimitEnabled && !rateLimitMiddleware(this.rateLimiter, req, res, whitelist)) {
63
- return;
64
- }
65
- // API key validation
66
- if (apiKey) {
67
- const providedKey = (req.headers['x-goog-api-key'] || req.headers['authorization']?.replace(/^Bearer\s+/i, ''));
68
- if (!validateApiKey(providedKey, apiKey)) {
69
- await this.logs.log({ timestamp: new Date().toISOString(), operation: 'auth_failure', variable: '', source: 'api', success: false, message: `Invalid API key from ${req.socket.remoteAddress || 'unknown'}` });
70
- sendJson(res, 401, { error: { code: 401, message: 'Invalid API key', status: 'UNAUTHENTICATED' } });
71
- return;
72
- }
73
- }
74
- const parsedUrl = new URL(req.url || '/', `http://${req.headers.host ?? 'localhost'}`);
75
- const pathname = parsedUrl.pathname;
76
- const clientIdHeader = req.headers['x-envcp-client-id'];
77
- const clientId = (Array.isArray(clientIdHeader) ? clientIdHeader[0] : clientIdHeader) || 'gemini';
78
- try {
79
- // Gemini-compatible endpoints
80
- // GET /v1/models - List models
31
+ this.server = await this.createHttpServer({
32
+ port,
33
+ host,
34
+ apiKey,
35
+ rateLimitConfig,
36
+ defaultClientId: 'gemini',
37
+ authHeaderFn: (req) => (req.headers['x-goog-api-key'] || req.headers['authorization']?.replace(/^Bearer\s+/i, '')),
38
+ healthEndpoints: ['/v1/health', '/'],
39
+ mode: 'gemini',
40
+ onRequest: async (req, res, pathname, clientId) => {
81
41
  if (pathname === '/v1/models' && req.method === 'GET') {
82
42
  sendJson(res, 200, {
83
43
  models: [{
@@ -89,16 +49,10 @@ export class GeminiAdapter extends BaseAdapter {
89
49
  });
90
50
  return;
91
51
  }
92
- // GET /v1/tools - List available tools/functions
93
52
  if (pathname === '/v1/tools' && req.method === 'GET') {
94
- sendJson(res, 200, {
95
- tools: [{
96
- functionDeclarations: this.getGeminiFunctionDeclarations(),
97
- }],
98
- });
53
+ sendJson(res, 200, { tools: [{ functionDeclarations: this.getGeminiFunctionDeclarations() }] });
99
54
  return;
100
55
  }
101
- // POST /v1/functions/call - Call a function directly
102
56
  if (pathname === '/v1/functions/call' && req.method === 'POST') {
103
57
  const body = await parseBody(req);
104
58
  const { name, args } = body;
@@ -107,13 +61,9 @@ export class GeminiAdapter extends BaseAdapter {
107
61
  return;
108
62
  }
109
63
  const result = await this.callTool(name, args || {}, clientId);
110
- sendJson(res, 200, {
111
- name,
112
- response: { result },
113
- });
64
+ sendJson(res, 200, { name, response: { result } });
114
65
  return;
115
66
  }
116
- // POST /v1/function_calls - Process function calls (batch)
117
67
  if (pathname === '/v1/function_calls' && req.method === 'POST') {
118
68
  const body = await parseBody(req);
119
69
  const { functionCalls } = body;
@@ -122,80 +72,40 @@ export class GeminiAdapter extends BaseAdapter {
122
72
  return;
123
73
  }
124
74
  const results = await this.processFunctionCalls(functionCalls);
125
- sendJson(res, 200, {
126
- functionResponses: results,
127
- });
75
+ sendJson(res, 200, { functionResponses: results });
128
76
  return;
129
77
  }
130
- // POST /v1/models/envcp:generateContent - Gemini-style content generation
131
78
  if ((pathname === '/v1/models/envcp:generateContent' || pathname === '/v1beta/models/envcp:generateContent') && req.method === 'POST') {
132
79
  const body = await parseBody(req);
133
80
  const contents = body.contents;
134
- // Look for function calls in the content
135
81
  const functionCalls = [];
136
82
  if (contents) {
137
83
  for (const content of contents) {
138
84
  for (const part of content.parts || []) {
139
- if (part.functionCall) {
85
+ if (part.functionCall)
140
86
  functionCalls.push(part.functionCall);
141
- }
142
87
  }
143
88
  }
144
89
  }
145
90
  if (functionCalls.length > 0) {
146
91
  const results = await this.processFunctionCalls(functionCalls);
147
92
  sendJson(res, 200, {
148
- candidates: [{
149
- content: {
150
- parts: results.map(r => ({
151
- functionResponse: r,
152
- })),
153
- role: 'model',
154
- },
155
- finishReason: 'STOP',
156
- }],
93
+ candidates: [{ content: { parts: results.map(r => ({ functionResponse: r })), role: 'model' }, finishReason: 'STOP' }],
157
94
  });
158
95
  return;
159
96
  }
160
- // Return available tools if no function calls
161
97
  sendJson(res, 200, {
162
- candidates: [{
163
- content: {
164
- parts: [{
165
- text: 'EnvCP tools available. Use function calling to interact with environment variables.',
166
- }],
167
- role: 'model',
168
- },
169
- finishReason: 'STOP',
170
- }],
171
- availableTools: [{
172
- functionDeclarations: this.getGeminiFunctionDeclarations(),
173
- }],
98
+ candidates: [{ content: { parts: [{ text: 'EnvCP tools available. Use function calling to interact with environment variables.' }], role: 'model' }, finishReason: 'STOP' }],
99
+ availableTools: [{ functionDeclarations: this.getGeminiFunctionDeclarations() }],
174
100
  });
175
101
  return;
176
102
  }
177
- // Health check
178
103
  if (pathname === '/v1/health' || pathname === '/') {
179
- sendJson(res, 200, {
180
- status: 'ok',
181
- version: VERSION,
182
- mode: 'gemini',
183
- endpoints: ['/v1/models', '/v1/tools', '/v1/functions/call', '/v1/function_calls', '/v1/models/envcp:generateContent'],
184
- });
104
+ sendJson(res, 200, { status: 'ok', version: VERSION, mode: 'gemini', endpoints: ['/v1/models', '/v1/tools', '/v1/functions/call', '/v1/function_calls', '/v1/models/envcp:generateContent'] });
185
105
  return;
186
106
  }
187
- // 404
188
107
  sendJson(res, 404, { error: { code: 404, message: 'Not found', status: 'NOT_FOUND' } });
189
- }
190
- catch (error) {
191
- const message = error instanceof Error ? error.message : String(error);
192
- sendJson(res, 500, { error: { code: 500, message, status: 'INTERNAL' } });
193
- }
194
- });
195
- return new Promise((resolve) => {
196
- this.server.listen(port, host, () => {
197
- resolve();
198
- });
108
+ },
199
109
  });
200
110
  }
201
111
  stopServer() {
@@ -203,7 +113,6 @@ export class GeminiAdapter extends BaseAdapter {
203
113
  this.server.close();
204
114
  this.server = null;
205
115
  }
206
- this.rateLimiter?.destroy();
207
116
  }
208
117
  }
209
118
  //# sourceMappingURL=gemini.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/adapters/gemini.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/adapters/gemini.ts"],"names":[],"mappings":"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"}