@fentz26/envcp 1.2.0-exp.bafb368 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/README.md +21 -36
  2. package/VERSION +1 -1
  3. package/dist/adapters/base.d.ts +25 -2
  4. package/dist/adapters/base.d.ts.map +1 -1
  5. package/dist/adapters/base.js +111 -29
  6. package/dist/adapters/base.js.map +1 -1
  7. package/dist/adapters/gemini.d.ts +6 -4
  8. package/dist/adapters/gemini.d.ts.map +1 -1
  9. package/dist/adapters/gemini.js +43 -116
  10. package/dist/adapters/gemini.js.map +1 -1
  11. package/dist/adapters/openai.d.ts +6 -4
  12. package/dist/adapters/openai.d.ts.map +1 -1
  13. package/dist/adapters/openai.js +54 -131
  14. package/dist/adapters/openai.js.map +1 -1
  15. package/dist/adapters/rest.d.ts +1 -0
  16. package/dist/adapters/rest.d.ts.map +1 -1
  17. package/dist/adapters/rest.js +14 -6
  18. package/dist/adapters/rest.js.map +1 -1
  19. package/dist/cli/index.js +1463 -424
  20. package/dist/cli/index.js.map +1 -1
  21. package/dist/config/config-guard.d.ts.map +1 -1
  22. package/dist/config/config-guard.js +9 -4
  23. package/dist/config/config-guard.js.map +1 -1
  24. package/dist/config/config-hmac.d.ts.map +1 -1
  25. package/dist/config/config-hmac.js +7 -3
  26. package/dist/config/config-hmac.js.map +1 -1
  27. package/dist/config/manager.d.ts +12 -2
  28. package/dist/config/manager.d.ts.map +1 -1
  29. package/dist/config/manager.js +189 -105
  30. package/dist/config/manager.js.map +1 -1
  31. package/dist/mcp/server.d.ts.map +1 -1
  32. package/dist/mcp/server.js +2 -1
  33. package/dist/mcp/server.js.map +1 -1
  34. package/dist/server/unified.d.ts +1 -0
  35. package/dist/server/unified.d.ts.map +1 -1
  36. package/dist/server/unified.js +54 -30
  37. package/dist/server/unified.js.map +1 -1
  38. package/dist/service/config.d.ts.map +1 -1
  39. package/dist/service/config.js +5 -10
  40. package/dist/service/config.js.map +1 -1
  41. package/dist/service/generators.d.ts.map +1 -1
  42. package/dist/service/generators.js +6 -8
  43. package/dist/service/generators.js.map +1 -1
  44. package/dist/service/index.js +4 -3
  45. package/dist/service/index.js.map +1 -1
  46. package/dist/service/platform.js +2 -2
  47. package/dist/service/platform.js.map +1 -1
  48. package/dist/storage/index.d.ts +1 -1
  49. package/dist/storage/index.d.ts.map +1 -1
  50. package/dist/storage/index.js +35 -27
  51. package/dist/storage/index.js.map +1 -1
  52. package/dist/types.d.ts +265 -4
  53. package/dist/types.d.ts.map +1 -1
  54. package/dist/types.js +25 -1
  55. package/dist/types.js.map +1 -1
  56. package/dist/utils/crypto.d.ts +5 -3
  57. package/dist/utils/crypto.d.ts.map +1 -1
  58. package/dist/utils/crypto.js +7 -8
  59. package/dist/utils/crypto.js.map +1 -1
  60. package/dist/utils/fs.d.ts +11 -1
  61. package/dist/utils/fs.d.ts.map +1 -1
  62. package/dist/utils/fs.js +22 -13
  63. package/dist/utils/fs.js.map +1 -1
  64. package/dist/utils/hsm.d.ts +8 -8
  65. package/dist/utils/hsm.d.ts.map +1 -1
  66. package/dist/utils/hsm.js +13 -8
  67. package/dist/utils/hsm.js.map +1 -1
  68. package/dist/utils/http.d.ts +1 -1
  69. package/dist/utils/http.d.ts.map +1 -1
  70. package/dist/utils/http.js +9 -4
  71. package/dist/utils/http.js.map +1 -1
  72. package/dist/utils/keychain.js +4 -4
  73. package/dist/utils/keychain.js.map +1 -1
  74. package/dist/utils/lock.d.ts.map +1 -1
  75. package/dist/utils/lock.js +2 -1
  76. package/dist/utils/lock.js.map +1 -1
  77. package/dist/utils/lockout.d.ts +2 -2
  78. package/dist/utils/lockout.d.ts.map +1 -1
  79. package/dist/utils/lockout.js +3 -3
  80. package/dist/utils/lockout.js.map +1 -1
  81. package/dist/utils/prompt.d.ts +11 -0
  82. package/dist/utils/prompt.d.ts.map +1 -1
  83. package/dist/utils/prompt.js +242 -5
  84. package/dist/utils/prompt.js.map +1 -1
  85. package/dist/utils/secure-memory.d.ts.map +1 -1
  86. package/dist/utils/secure-memory.js +6 -3
  87. package/dist/utils/secure-memory.js.map +1 -1
  88. package/dist/utils/session.d.ts +3 -1
  89. package/dist/utils/session.d.ts.map +1 -1
  90. package/dist/utils/session.js +41 -19
  91. package/dist/utils/session.js.map +1 -1
  92. package/dist/utils/update-checker.d.ts +3 -0
  93. package/dist/utils/update-checker.d.ts.map +1 -1
  94. package/dist/utils/update-checker.js +51 -5
  95. package/dist/utils/update-checker.js.map +1 -1
  96. package/dist/vault/index.d.ts.map +1 -1
  97. package/dist/vault/index.js +5 -3
  98. package/dist/vault/index.js.map +1 -1
  99. package/dist/version.js +3 -3
  100. package/dist/version.js.map +1 -1
  101. package/package.json +2 -2
  102. package/scripts/sync-version.js +65 -23
@@ -1,12 +1,14 @@
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;
5
+ private static readonly TOOLS_MESSAGE;
8
6
  getGeminiFunctionDeclarations(): GeminiFunctionDeclaration[];
9
7
  processFunctionCalls(calls: GeminiFunctionCall[]): Promise<GeminiFunctionResponse[]>;
8
+ createGenerateContentResponse(results: GeminiFunctionResponse[]): Record<string, unknown>;
9
+ createAvailableToolsResponse(): Record<string, unknown>;
10
+ createToolsListResponse(): Record<string, unknown>;
11
+ createHealthResponse(): Record<string, unknown>;
10
12
  startServer(port: number, host: string, apiKey?: string, rateLimitConfig?: RateLimitConfig): Promise<void>;
11
13
  stopServer(): void;
12
14
  }
@@ -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;IAC1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAyF;IAE9H,6BAA6B,IAAI,yBAAyB,EAAE;IAItD,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAsB1F,6BAA6B,CAAC,OAAO,EAAE,sBAAsB,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAMzF,4BAA4B,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAOvD,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIlD,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IASzC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAsFhH,UAAU,IAAI,IAAI;CAMnB"}
@@ -1,29 +1,12 @@
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
6
+ static TOOLS_MESSAGE = 'EnvCP tools available. Use function calling to interact with environment variables.';
15
7
  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
- }));
8
+ return this.getStructuredToolDefinitions();
25
9
  }
26
- // Process Gemini function calls
27
10
  async processFunctionCalls(calls) {
28
11
  const results = [];
29
12
  for (const call of calls) {
@@ -44,40 +27,40 @@ export class GeminiAdapter extends BaseAdapter {
44
27
  }
45
28
  return results;
46
29
  }
30
+ createGenerateContentResponse(results) {
31
+ return {
32
+ candidates: [{ content: { parts: results.map(r => ({ functionResponse: r })), role: 'model' }, finishReason: 'STOP' }],
33
+ };
34
+ }
35
+ createAvailableToolsResponse() {
36
+ return {
37
+ candidates: [{ content: { parts: [{ text: GeminiAdapter.TOOLS_MESSAGE }], role: 'model' }, finishReason: 'STOP' }],
38
+ availableTools: [{ functionDeclarations: this.getGeminiFunctionDeclarations() }],
39
+ };
40
+ }
41
+ createToolsListResponse() {
42
+ return { tools: [{ functionDeclarations: this.getGeminiFunctionDeclarations() }] };
43
+ }
44
+ createHealthResponse() {
45
+ return {
46
+ status: 'ok',
47
+ version: VERSION,
48
+ mode: 'gemini',
49
+ endpoints: ['/v1/models', '/v1/tools', '/v1/functions/call', '/v1/function_calls', '/v1/models/envcp:generateContent'],
50
+ };
51
+ }
47
52
  async startServer(port, host, apiKey, rateLimitConfig) {
48
53
  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
54
+ this.server = await this.createHttpServer({
55
+ port,
56
+ host,
57
+ apiKey,
58
+ rateLimitConfig,
59
+ defaultClientId: 'gemini',
60
+ authHeaderFn: (req) => (req.headers['x-goog-api-key'] || req.headers['authorization']?.replace(/^Bearer\s+/i, '')),
61
+ healthEndpoints: ['/v1/health', '/'],
62
+ mode: 'gemini',
63
+ onRequest: async (req, res, pathname, clientId) => {
81
64
  if (pathname === '/v1/models' && req.method === 'GET') {
82
65
  sendJson(res, 200, {
83
66
  models: [{
@@ -89,16 +72,10 @@ export class GeminiAdapter extends BaseAdapter {
89
72
  });
90
73
  return;
91
74
  }
92
- // GET /v1/tools - List available tools/functions
93
75
  if (pathname === '/v1/tools' && req.method === 'GET') {
94
- sendJson(res, 200, {
95
- tools: [{
96
- functionDeclarations: this.getGeminiFunctionDeclarations(),
97
- }],
98
- });
76
+ sendJson(res, 200, this.createToolsListResponse());
99
77
  return;
100
78
  }
101
- // POST /v1/functions/call - Call a function directly
102
79
  if (pathname === '/v1/functions/call' && req.method === 'POST') {
103
80
  const body = await parseBody(req);
104
81
  const { name, args } = body;
@@ -107,13 +84,9 @@ export class GeminiAdapter extends BaseAdapter {
107
84
  return;
108
85
  }
109
86
  const result = await this.callTool(name, args || {}, clientId);
110
- sendJson(res, 200, {
111
- name,
112
- response: { result },
113
- });
87
+ sendJson(res, 200, { name, response: { result } });
114
88
  return;
115
89
  }
116
- // POST /v1/function_calls - Process function calls (batch)
117
90
  if (pathname === '/v1/function_calls' && req.method === 'POST') {
118
91
  const body = await parseBody(req);
119
92
  const { functionCalls } = body;
@@ -122,80 +95,35 @@ export class GeminiAdapter extends BaseAdapter {
122
95
  return;
123
96
  }
124
97
  const results = await this.processFunctionCalls(functionCalls);
125
- sendJson(res, 200, {
126
- functionResponses: results,
127
- });
98
+ sendJson(res, 200, { functionResponses: results });
128
99
  return;
129
100
  }
130
- // POST /v1/models/envcp:generateContent - Gemini-style content generation
131
101
  if ((pathname === '/v1/models/envcp:generateContent' || pathname === '/v1beta/models/envcp:generateContent') && req.method === 'POST') {
132
102
  const body = await parseBody(req);
133
103
  const contents = body.contents;
134
- // Look for function calls in the content
135
104
  const functionCalls = [];
136
105
  if (contents) {
137
106
  for (const content of contents) {
138
107
  for (const part of content.parts || []) {
139
- if (part.functionCall) {
108
+ if (part.functionCall)
140
109
  functionCalls.push(part.functionCall);
141
- }
142
110
  }
143
111
  }
144
112
  }
145
113
  if (functionCalls.length > 0) {
146
114
  const results = await this.processFunctionCalls(functionCalls);
147
- sendJson(res, 200, {
148
- candidates: [{
149
- content: {
150
- parts: results.map(r => ({
151
- functionResponse: r,
152
- })),
153
- role: 'model',
154
- },
155
- finishReason: 'STOP',
156
- }],
157
- });
115
+ sendJson(res, 200, this.createGenerateContentResponse(results));
158
116
  return;
159
117
  }
160
- // Return available tools if no function calls
161
- 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
- }],
174
- });
118
+ sendJson(res, 200, this.createAvailableToolsResponse());
175
119
  return;
176
120
  }
177
- // Health check
178
121
  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
- });
122
+ sendJson(res, 200, this.createHealthResponse());
185
123
  return;
186
124
  }
187
- // 404
188
125
  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
- });
126
+ },
199
127
  });
200
128
  }
201
129
  stopServer() {
@@ -203,7 +131,6 @@ export class GeminiAdapter extends BaseAdapter {
203
131
  this.server.close();
204
132
  this.server = null;
205
133
  }
206
- this.rateLimiter?.destroy();
207
134
  }
208
135
  }
209
136
  //# 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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"}
@@ -1,12 +1,14 @@
1
1
  import { BaseAdapter } from './base.js';
2
- import { EnvCPConfig, OpenAIFunction, OpenAIToolCall, OpenAIMessage, RateLimitConfig } from '../types.js';
2
+ import { OpenAIFunction, OpenAIToolCall, OpenAIMessage, RateLimitConfig } from '../types.js';
3
3
  export declare class OpenAIAdapter 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;
5
+ private static readonly TOOLS_MESSAGE;
8
6
  getOpenAIFunctions(): OpenAIFunction[];
9
7
  processToolCalls(toolCalls: OpenAIToolCall[]): Promise<OpenAIMessage[]>;
8
+ createToolResultsCompletion(results: OpenAIMessage[]): Record<string, unknown>;
9
+ createAvailableToolsCompletion(): Record<string, unknown>;
10
+ createFunctionsListResponse(): Record<string, unknown>;
11
+ createHealthResponse(): Record<string, unknown>;
10
12
  startServer(port: number, host: string, apiKey?: string, rateLimitConfig?: RateLimitConfig): Promise<void>;
11
13
  stopServer(): void;
12
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/adapters/openai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAK1G,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,kBAAkB,IAAI,cAAc,EAAE;IAahC,gBAAgB,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IA0BzE,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAyL9G,UAAU,IAAI,IAAI;CAOnB"}
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/adapters/openai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAK7F,qBAAa,aAAc,SAAQ,WAAW;IAC5C,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAyF;IAE9H,kBAAkB,IAAI,cAAc,EAAE;IAIhC,gBAAgB,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAyB7E,2BAA2B,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAW9E,8BAA8B,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAWzD,2BAA2B,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAItD,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IASzC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAiFhH,UAAU,IAAI,IAAI;CAMnB"}
@@ -1,29 +1,12 @@
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 OpenAIAdapter 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 OpenAI function format
6
+ static TOOLS_MESSAGE = 'EnvCP tools available. Use function calling to interact with environment variables.';
15
7
  getOpenAIFunctions() {
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
- }));
8
+ return this.getStructuredToolDefinitions();
25
9
  }
26
- // Process OpenAI tool calls
27
10
  async processToolCalls(toolCalls) {
28
11
  const results = [];
29
12
  for (const call of toolCalls) {
@@ -47,61 +30,62 @@ export class OpenAIAdapter extends BaseAdapter {
47
30
  }
48
31
  return results;
49
32
  }
33
+ createToolResultsCompletion(results) {
34
+ return {
35
+ id: `chatcmpl-${Date.now()}`,
36
+ object: 'chat.completion',
37
+ created: Math.floor(Date.now() / 1000),
38
+ model: `envcp-${VERSION}`,
39
+ choices: [{ index: 0, message: { role: 'assistant', content: null, tool_calls: null }, finish_reason: 'tool_calls' }],
40
+ tool_results: results,
41
+ };
42
+ }
43
+ createAvailableToolsCompletion() {
44
+ return {
45
+ id: `chatcmpl-${Date.now()}`,
46
+ object: 'chat.completion',
47
+ created: Math.floor(Date.now() / 1000),
48
+ model: `envcp-${VERSION}`,
49
+ choices: [{ index: 0, message: { role: 'assistant', content: OpenAIAdapter.TOOLS_MESSAGE }, finish_reason: 'stop' }],
50
+ available_tools: this.getOpenAIFunctions().map(f => ({ type: 'function', function: f })),
51
+ };
52
+ }
53
+ createFunctionsListResponse() {
54
+ return { object: 'list', data: this.getOpenAIFunctions() };
55
+ }
56
+ createHealthResponse() {
57
+ return {
58
+ status: 'ok',
59
+ version: VERSION,
60
+ mode: 'openai',
61
+ endpoints: ['/v1/models', '/v1/functions', '/v1/functions/call', '/v1/tool_calls', '/v1/chat/completions'],
62
+ };
63
+ }
50
64
  async startServer(port, host, apiKey, rateLimitConfig) {
51
65
  await this.init();
52
- const rateLimitEnabled = rateLimitConfig?.enabled !== false;
53
- if (rateLimitEnabled) {
54
- this.rateLimiter?.destroy();
55
- this.rateLimiter = new RateLimiter(rateLimitConfig?.requests_per_minute ?? 60, 60000);
56
- }
57
- const whitelist = rateLimitConfig?.whitelist ?? [];
58
- this.server = http.createServer(async (req, res) => {
59
- setCorsHeaders(res, undefined, req.headers.origin);
60
- if (req.method === 'OPTIONS') {
61
- res.writeHead(204);
62
- res.end();
63
- return;
64
- }
65
- if (rateLimitEnabled && !rateLimitMiddleware(this.rateLimiter, req, res, whitelist)) {
66
- return;
67
- }
68
- // API key validation
69
- if (apiKey) {
70
- const providedKey = req.headers['authorization']?.replace(/^Bearer\s+/i, '');
71
- if (!validateApiKey(providedKey, apiKey)) {
72
- 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'}` });
73
- sendJson(res, 401, { error: { message: 'Invalid API key', type: 'invalid_api_key' } });
74
- return;
75
- }
76
- }
77
- const parsedUrl = new URL(req.url || '/', `http://${req.headers.host ?? 'localhost'}`);
78
- const pathname = parsedUrl.pathname;
79
- const clientIdHeader = req.headers['x-envcp-client-id'];
80
- const clientId = (Array.isArray(clientIdHeader) ? clientIdHeader[0] : clientIdHeader) || 'openai';
81
- try {
82
- // OpenAI-compatible endpoints
83
- // GET /v1/models - List models (for compatibility)
66
+ this.server = await this.createHttpServer({
67
+ port,
68
+ host,
69
+ apiKey,
70
+ rateLimitConfig,
71
+ defaultClientId: 'openai',
72
+ authHeaderFn: (req) => req.headers['authorization']?.replace(/^Bearer\s+/i, ''),
73
+ authFailureResponse: (message) => ({ error: { message, type: 'invalid_api_key' } }),
74
+ internalErrorResponse: (message) => ({ error: { message, type: 'internal_error' } }),
75
+ healthEndpoints: ['/v1/health', '/'],
76
+ mode: 'openai',
77
+ onRequest: async (req, res, pathname, clientId) => {
84
78
  if (pathname === '/v1/models' && req.method === 'GET') {
85
79
  sendJson(res, 200, {
86
80
  object: 'list',
87
- data: [{
88
- id: `envcp-${VERSION}`,
89
- object: 'model',
90
- created: Date.now(),
91
- owned_by: 'envcp',
92
- }],
81
+ data: [{ id: `envcp-${VERSION}`, object: 'model', created: Date.now(), owned_by: 'envcp' }],
93
82
  });
94
83
  return;
95
84
  }
96
- // GET /v1/functions - List available functions
97
85
  if (pathname === '/v1/functions' && req.method === 'GET') {
98
- sendJson(res, 200, {
99
- object: 'list',
100
- data: this.getOpenAIFunctions(),
101
- });
86
+ sendJson(res, 200, this.createFunctionsListResponse());
102
87
  return;
103
88
  }
104
- // POST /v1/functions/call - Call a function directly
105
89
  if (pathname === '/v1/functions/call' && req.method === 'POST') {
106
90
  const body = await parseBody(req);
107
91
  const { name, arguments: args } = body;
@@ -110,14 +94,9 @@ export class OpenAIAdapter extends BaseAdapter {
110
94
  return;
111
95
  }
112
96
  const result = await this.callTool(name, args || {}, clientId);
113
- sendJson(res, 200, {
114
- object: 'function_result',
115
- name,
116
- result,
117
- });
97
+ sendJson(res, 200, { object: 'function_result', name, result });
118
98
  return;
119
99
  }
120
- // POST /v1/tool_calls - Process tool calls (batch)
121
100
  if (pathname === '/v1/tool_calls' && req.method === 'POST') {
122
101
  const body = await parseBody(req);
123
102
  const { tool_calls } = body;
@@ -126,14 +105,9 @@ export class OpenAIAdapter extends BaseAdapter {
126
105
  return;
127
106
  }
128
107
  const results = await this.processToolCalls(tool_calls);
129
- sendJson(res, 200, {
130
- object: 'list',
131
- data: results,
132
- });
108
+ sendJson(res, 200, { object: 'list', data: results });
133
109
  return;
134
110
  }
135
- // POST /v1/chat/completions - For integration with proxies
136
- // This allows tools to be called through a chat completion-like interface
137
111
  if (pathname === '/v1/chat/completions' && req.method === 'POST') {
138
112
  const body = await parseBody(req);
139
113
  const messages = body.messages;
@@ -141,71 +115,21 @@ export class OpenAIAdapter extends BaseAdapter {
141
115
  sendJson(res, 400, { error: { message: 'messages array required', type: 'invalid_request_error' } });
142
116
  return;
143
117
  }
144
- // Check if last message has tool_calls to process
145
118
  const lastMessage = messages[messages.length - 1];
146
119
  if (lastMessage?.tool_calls) {
147
120
  const results = await this.processToolCalls(lastMessage.tool_calls);
148
- sendJson(res, 200, {
149
- id: `chatcmpl-${Date.now()}`,
150
- object: 'chat.completion',
151
- created: Math.floor(Date.now() / 1000),
152
- model: `envcp-${VERSION}`,
153
- choices: [{
154
- index: 0,
155
- message: {
156
- role: 'assistant',
157
- content: null,
158
- tool_calls: null,
159
- },
160
- finish_reason: 'tool_calls',
161
- }],
162
- tool_results: results,
163
- });
121
+ sendJson(res, 200, this.createToolResultsCompletion(results));
164
122
  return;
165
123
  }
166
- // Return available tools if no tool_calls
167
- sendJson(res, 200, {
168
- id: `chatcmpl-${Date.now()}`,
169
- object: 'chat.completion',
170
- created: Math.floor(Date.now() / 1000),
171
- model: `envcp-${VERSION}`,
172
- choices: [{
173
- index: 0,
174
- message: {
175
- role: 'assistant',
176
- content: 'EnvCP tools available. Use function calling to interact with environment variables.',
177
- },
178
- finish_reason: 'stop',
179
- }],
180
- available_tools: this.getOpenAIFunctions().map(f => ({
181
- type: 'function',
182
- function: f,
183
- })),
184
- });
124
+ sendJson(res, 200, this.createAvailableToolsCompletion());
185
125
  return;
186
126
  }
187
- // Health check
188
127
  if (pathname === '/v1/health' || pathname === '/') {
189
- sendJson(res, 200, {
190
- status: 'ok',
191
- version: VERSION,
192
- mode: 'openai',
193
- endpoints: ['/v1/models', '/v1/functions', '/v1/functions/call', '/v1/tool_calls', '/v1/chat/completions'],
194
- });
128
+ sendJson(res, 200, this.createHealthResponse());
195
129
  return;
196
130
  }
197
- // 404
198
131
  sendJson(res, 404, { error: { message: 'Not found', type: 'not_found' } });
199
- }
200
- catch (error) {
201
- const message = error instanceof Error ? error.message : String(error);
202
- sendJson(res, 500, { error: { message, type: 'internal_error' } });
203
- }
204
- });
205
- return new Promise((resolve) => {
206
- this.server.listen(port, host, () => {
207
- resolve();
208
- });
132
+ },
209
133
  });
210
134
  }
211
135
  stopServer() {
@@ -213,7 +137,6 @@ export class OpenAIAdapter extends BaseAdapter {
213
137
  this.server.close();
214
138
  this.server = null;
215
139
  }
216
- this.rateLimiter?.destroy();
217
140
  }
218
141
  }
219
142
  //# sourceMappingURL=openai.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/adapters/openai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/adapters/openai.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export declare class RESTAdapter extends BaseAdapter {
5
5
  private rateLimiter;
6
6
  private lockoutManager?;
7
7
  constructor(config: EnvCPConfig, projectPath: string, password?: string, vaultPath?: string, sessionPath?: string);
8
+ private scheduleApiKeyLockoutClear;
8
9
  private clearApiKeyLockout;
9
10
  protected registerTools(): void;
10
11
  private createResponse;