@fentz26/envcp 1.2.0-exp.1 → 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 (96) hide show
  1. package/README.md +8 -1
  2. package/VERSION +1 -1
  3. package/dist/adapters/base.d.ts +42 -4
  4. package/dist/adapters/base.d.ts.map +1 -1
  5. package/dist/adapters/base.js +153 -26
  6. package/dist/adapters/base.js.map +1 -1
  7. package/dist/adapters/gemini.d.ts +1 -4
  8. package/dist/adapters/gemini.d.ts.map +1 -1
  9. package/dist/adapters/gemini.js +22 -111
  10. package/dist/adapters/gemini.js.map +1 -1
  11. package/dist/adapters/openai.d.ts +1 -4
  12. package/dist/adapters/openai.d.ts.map +1 -1
  13. package/dist/adapters/openai.js +26 -125
  14. package/dist/adapters/openai.js.map +1 -1
  15. package/dist/adapters/rest.d.ts +1 -1
  16. package/dist/adapters/rest.d.ts.map +1 -1
  17. package/dist/adapters/rest.js +36 -16
  18. package/dist/adapters/rest.js.map +1 -1
  19. package/dist/cli/index.js +278 -107
  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.js +2 -2
  25. package/dist/config/config-hmac.js.map +1 -1
  26. package/dist/config/manager.d.ts +6 -2
  27. package/dist/config/manager.d.ts.map +1 -1
  28. package/dist/config/manager.js +53 -33
  29. package/dist/config/manager.js.map +1 -1
  30. package/dist/mcp/server.d.ts +1 -1
  31. package/dist/mcp/server.d.ts.map +1 -1
  32. package/dist/mcp/server.js +7 -3
  33. package/dist/mcp/server.js.map +1 -1
  34. package/dist/server/unified.d.ts.map +1 -1
  35. package/dist/server/unified.js +10 -10
  36. package/dist/server/unified.js.map +1 -1
  37. package/dist/service/config.d.ts.map +1 -1
  38. package/dist/service/config.js +5 -4
  39. package/dist/service/config.js.map +1 -1
  40. package/dist/service/generators.d.ts.map +1 -1
  41. package/dist/service/generators.js +6 -8
  42. package/dist/service/generators.js.map +1 -1
  43. package/dist/service/index.js +4 -3
  44. package/dist/service/index.js.map +1 -1
  45. package/dist/service/platform.js +2 -2
  46. package/dist/service/platform.js.map +1 -1
  47. package/dist/storage/index.d.ts +14 -1
  48. package/dist/storage/index.d.ts.map +1 -1
  49. package/dist/storage/index.js +67 -27
  50. package/dist/storage/index.js.map +1 -1
  51. package/dist/types.d.ts +29 -0
  52. package/dist/types.d.ts.map +1 -1
  53. package/dist/types.js +6 -1
  54. package/dist/types.js.map +1 -1
  55. package/dist/utils/crypto.js +2 -2
  56. package/dist/utils/crypto.js.map +1 -1
  57. package/dist/utils/fs.d.ts +1 -0
  58. package/dist/utils/fs.d.ts.map +1 -1
  59. package/dist/utils/fs.js +17 -5
  60. package/dist/utils/fs.js.map +1 -1
  61. package/dist/utils/hsm.d.ts +8 -8
  62. package/dist/utils/hsm.d.ts.map +1 -1
  63. package/dist/utils/hsm.js +7 -6
  64. package/dist/utils/hsm.js.map +1 -1
  65. package/dist/utils/http.d.ts +1 -1
  66. package/dist/utils/http.d.ts.map +1 -1
  67. package/dist/utils/http.js +1 -1
  68. package/dist/utils/http.js.map +1 -1
  69. package/dist/utils/keychain.js +4 -4
  70. package/dist/utils/keychain.js.map +1 -1
  71. package/dist/utils/lock.d.ts.map +1 -1
  72. package/dist/utils/lock.js +2 -1
  73. package/dist/utils/lock.js.map +1 -1
  74. package/dist/utils/lockout.d.ts +2 -2
  75. package/dist/utils/lockout.d.ts.map +1 -1
  76. package/dist/utils/lockout.js +3 -3
  77. package/dist/utils/lockout.js.map +1 -1
  78. package/dist/utils/prompt.js +3 -3
  79. package/dist/utils/prompt.js.map +1 -1
  80. package/dist/utils/secure-memory.d.ts.map +1 -1
  81. package/dist/utils/secure-memory.js +6 -3
  82. package/dist/utils/secure-memory.js.map +1 -1
  83. package/dist/utils/session.js +3 -3
  84. package/dist/utils/session.js.map +1 -1
  85. package/dist/utils/update-checker.d.ts +3 -0
  86. package/dist/utils/update-checker.d.ts.map +1 -1
  87. package/dist/utils/update-checker.js +51 -5
  88. package/dist/utils/update-checker.js.map +1 -1
  89. package/dist/vault/index.d.ts +2 -0
  90. package/dist/vault/index.d.ts.map +1 -1
  91. package/dist/vault/index.js +17 -5
  92. package/dist/vault/index.js.map +1 -1
  93. package/dist/version.js +3 -3
  94. package/dist/version.js.map +1 -1
  95. package/package.json +1 -1
  96. package/scripts/sync-version.js +65 -23
@@ -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) {
9
- super(config, projectPath, password, vaultPath);
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,36 +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
- try {
77
- // Gemini-compatible endpoints
78
- // 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) => {
79
41
  if (pathname === '/v1/models' && req.method === 'GET') {
80
42
  sendJson(res, 200, {
81
43
  models: [{
@@ -87,16 +49,10 @@ export class GeminiAdapter extends BaseAdapter {
87
49
  });
88
50
  return;
89
51
  }
90
- // GET /v1/tools - List available tools/functions
91
52
  if (pathname === '/v1/tools' && req.method === 'GET') {
92
- sendJson(res, 200, {
93
- tools: [{
94
- functionDeclarations: this.getGeminiFunctionDeclarations(),
95
- }],
96
- });
53
+ sendJson(res, 200, { tools: [{ functionDeclarations: this.getGeminiFunctionDeclarations() }] });
97
54
  return;
98
55
  }
99
- // POST /v1/functions/call - Call a function directly
100
56
  if (pathname === '/v1/functions/call' && req.method === 'POST') {
101
57
  const body = await parseBody(req);
102
58
  const { name, args } = body;
@@ -104,14 +60,10 @@ export class GeminiAdapter extends BaseAdapter {
104
60
  sendJson(res, 400, { error: { code: 400, message: 'Function name required', status: 'INVALID_ARGUMENT' } });
105
61
  return;
106
62
  }
107
- const result = await this.callTool(name, args || {});
108
- sendJson(res, 200, {
109
- name,
110
- response: { result },
111
- });
63
+ const result = await this.callTool(name, args || {}, clientId);
64
+ sendJson(res, 200, { name, response: { result } });
112
65
  return;
113
66
  }
114
- // POST /v1/function_calls - Process function calls (batch)
115
67
  if (pathname === '/v1/function_calls' && req.method === 'POST') {
116
68
  const body = await parseBody(req);
117
69
  const { functionCalls } = body;
@@ -120,80 +72,40 @@ export class GeminiAdapter extends BaseAdapter {
120
72
  return;
121
73
  }
122
74
  const results = await this.processFunctionCalls(functionCalls);
123
- sendJson(res, 200, {
124
- functionResponses: results,
125
- });
75
+ sendJson(res, 200, { functionResponses: results });
126
76
  return;
127
77
  }
128
- // POST /v1/models/envcp:generateContent - Gemini-style content generation
129
78
  if ((pathname === '/v1/models/envcp:generateContent' || pathname === '/v1beta/models/envcp:generateContent') && req.method === 'POST') {
130
79
  const body = await parseBody(req);
131
80
  const contents = body.contents;
132
- // Look for function calls in the content
133
81
  const functionCalls = [];
134
82
  if (contents) {
135
83
  for (const content of contents) {
136
84
  for (const part of content.parts || []) {
137
- if (part.functionCall) {
85
+ if (part.functionCall)
138
86
  functionCalls.push(part.functionCall);
139
- }
140
87
  }
141
88
  }
142
89
  }
143
90
  if (functionCalls.length > 0) {
144
91
  const results = await this.processFunctionCalls(functionCalls);
145
92
  sendJson(res, 200, {
146
- candidates: [{
147
- content: {
148
- parts: results.map(r => ({
149
- functionResponse: r,
150
- })),
151
- role: 'model',
152
- },
153
- finishReason: 'STOP',
154
- }],
93
+ candidates: [{ content: { parts: results.map(r => ({ functionResponse: r })), role: 'model' }, finishReason: 'STOP' }],
155
94
  });
156
95
  return;
157
96
  }
158
- // Return available tools if no function calls
159
97
  sendJson(res, 200, {
160
- candidates: [{
161
- content: {
162
- parts: [{
163
- text: 'EnvCP tools available. Use function calling to interact with environment variables.',
164
- }],
165
- role: 'model',
166
- },
167
- finishReason: 'STOP',
168
- }],
169
- availableTools: [{
170
- functionDeclarations: this.getGeminiFunctionDeclarations(),
171
- }],
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() }],
172
100
  });
173
101
  return;
174
102
  }
175
- // Health check
176
103
  if (pathname === '/v1/health' || pathname === '/') {
177
- sendJson(res, 200, {
178
- status: 'ok',
179
- version: VERSION,
180
- mode: 'gemini',
181
- endpoints: ['/v1/models', '/v1/tools', '/v1/functions/call', '/v1/function_calls', '/v1/models/envcp:generateContent'],
182
- });
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'] });
183
105
  return;
184
106
  }
185
- // 404
186
107
  sendJson(res, 404, { error: { code: 404, message: 'Not found', status: 'NOT_FOUND' } });
187
- }
188
- catch (error) {
189
- const message = error instanceof Error ? error.message : String(error);
190
- sendJson(res, 500, { error: { code: 500, message, status: 'INTERNAL' } });
191
- }
192
- });
193
- return new Promise((resolve) => {
194
- this.server.listen(port, host, () => {
195
- resolve();
196
- });
108
+ },
197
109
  });
198
110
  }
199
111
  stopServer() {
@@ -201,7 +113,6 @@ export class GeminiAdapter extends BaseAdapter {
201
113
  this.server.close();
202
114
  this.server = null;
203
115
  }
204
- this.rateLimiter?.destroy();
205
116
  }
206
117
  }
207
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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"}
@@ -1,10 +1,7 @@
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);
7
- protected registerTools(): void;
8
5
  getOpenAIFunctions(): OpenAIFunction[];
9
6
  processToolCalls(toolCalls: OpenAIToolCall[]): Promise<OpenAIMessage[]>;
10
7
  startServer(port: number, host: string, apiKey?: string, rateLimitConfig?: RateLimitConfig): Promise<void>;
@@ -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;IAI3F,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;IAsL9G,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;IAE1C,kBAAkB,IAAI,cAAc,EAAE;IAIhC,gBAAgB,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAyBvE,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAyFhH,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 OpenAIAdapter extends BaseAdapter {
6
5
  server = null;
7
- rateLimiter = new RateLimiter(60, 60000);
8
- constructor(config, projectPath, password, vaultPath) {
9
- super(config, projectPath, password, vaultPath);
10
- }
11
- registerTools() {
12
- this.registerDefaultTools();
13
- }
14
- // Convert tools to OpenAI function format
15
6
  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
- }));
7
+ return this.getStructuredToolDefinitions();
25
8
  }
26
- // Process OpenAI tool calls
27
9
  async processToolCalls(toolCalls) {
28
10
  const results = [];
29
11
  for (const call of toolCalls) {
@@ -49,57 +31,29 @@ export class OpenAIAdapter extends BaseAdapter {
49
31
  }
50
32
  async startServer(port, host, apiKey, rateLimitConfig) {
51
33
  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
- try {
80
- // OpenAI-compatible endpoints
81
- // GET /v1/models - List models (for compatibility)
34
+ this.server = await this.createHttpServer({
35
+ port,
36
+ host,
37
+ apiKey,
38
+ rateLimitConfig,
39
+ defaultClientId: 'openai',
40
+ authHeaderFn: (req) => req.headers['authorization']?.replace(/^Bearer\s+/i, ''),
41
+ authFailureResponse: (message) => ({ error: { message, type: 'invalid_api_key' } }),
42
+ internalErrorResponse: (message) => ({ error: { message, type: 'internal_error' } }),
43
+ healthEndpoints: ['/v1/health', '/'],
44
+ mode: 'openai',
45
+ onRequest: async (req, res, pathname, clientId) => {
82
46
  if (pathname === '/v1/models' && req.method === 'GET') {
83
47
  sendJson(res, 200, {
84
48
  object: 'list',
85
- data: [{
86
- id: `envcp-${VERSION}`,
87
- object: 'model',
88
- created: Date.now(),
89
- owned_by: 'envcp',
90
- }],
49
+ data: [{ id: `envcp-${VERSION}`, object: 'model', created: Date.now(), owned_by: 'envcp' }],
91
50
  });
92
51
  return;
93
52
  }
94
- // GET /v1/functions - List available functions
95
53
  if (pathname === '/v1/functions' && req.method === 'GET') {
96
- sendJson(res, 200, {
97
- object: 'list',
98
- data: this.getOpenAIFunctions(),
99
- });
54
+ sendJson(res, 200, { object: 'list', data: this.getOpenAIFunctions() });
100
55
  return;
101
56
  }
102
- // POST /v1/functions/call - Call a function directly
103
57
  if (pathname === '/v1/functions/call' && req.method === 'POST') {
104
58
  const body = await parseBody(req);
105
59
  const { name, arguments: args } = body;
@@ -107,15 +61,10 @@ export class OpenAIAdapter extends BaseAdapter {
107
61
  sendJson(res, 400, { error: { message: 'Function name required', type: 'invalid_request_error' } });
108
62
  return;
109
63
  }
110
- const result = await this.callTool(name, args || {});
111
- sendJson(res, 200, {
112
- object: 'function_result',
113
- name,
114
- result,
115
- });
64
+ const result = await this.callTool(name, args || {}, clientId);
65
+ sendJson(res, 200, { object: 'function_result', name, result });
116
66
  return;
117
67
  }
118
- // POST /v1/tool_calls - Process tool calls (batch)
119
68
  if (pathname === '/v1/tool_calls' && req.method === 'POST') {
120
69
  const body = await parseBody(req);
121
70
  const { tool_calls } = body;
@@ -124,14 +73,9 @@ export class OpenAIAdapter extends BaseAdapter {
124
73
  return;
125
74
  }
126
75
  const results = await this.processToolCalls(tool_calls);
127
- sendJson(res, 200, {
128
- object: 'list',
129
- data: results,
130
- });
76
+ sendJson(res, 200, { object: 'list', data: results });
131
77
  return;
132
78
  }
133
- // POST /v1/chat/completions - For integration with proxies
134
- // This allows tools to be called through a chat completion-like interface
135
79
  if (pathname === '/v1/chat/completions' && req.method === 'POST') {
136
80
  const body = await parseBody(req);
137
81
  const messages = body.messages;
@@ -139,71 +83,29 @@ export class OpenAIAdapter extends BaseAdapter {
139
83
  sendJson(res, 400, { error: { message: 'messages array required', type: 'invalid_request_error' } });
140
84
  return;
141
85
  }
142
- // Check if last message has tool_calls to process
143
86
  const lastMessage = messages[messages.length - 1];
144
87
  if (lastMessage?.tool_calls) {
145
88
  const results = await this.processToolCalls(lastMessage.tool_calls);
146
89
  sendJson(res, 200, {
147
- id: `chatcmpl-${Date.now()}`,
148
- object: 'chat.completion',
149
- created: Math.floor(Date.now() / 1000),
150
- model: `envcp-${VERSION}`,
151
- choices: [{
152
- index: 0,
153
- message: {
154
- role: 'assistant',
155
- content: null,
156
- tool_calls: null,
157
- },
158
- finish_reason: 'tool_calls',
159
- }],
90
+ id: `chatcmpl-${Date.now()}`, object: 'chat.completion', created: Math.floor(Date.now() / 1000), model: `envcp-${VERSION}`,
91
+ choices: [{ index: 0, message: { role: 'assistant', content: null, tool_calls: null }, finish_reason: 'tool_calls' }],
160
92
  tool_results: results,
161
93
  });
162
94
  return;
163
95
  }
164
- // Return available tools if no tool_calls
165
96
  sendJson(res, 200, {
166
- id: `chatcmpl-${Date.now()}`,
167
- object: 'chat.completion',
168
- created: Math.floor(Date.now() / 1000),
169
- model: `envcp-${VERSION}`,
170
- choices: [{
171
- index: 0,
172
- message: {
173
- role: 'assistant',
174
- content: 'EnvCP tools available. Use function calling to interact with environment variables.',
175
- },
176
- finish_reason: 'stop',
177
- }],
178
- available_tools: this.getOpenAIFunctions().map(f => ({
179
- type: 'function',
180
- function: f,
181
- })),
97
+ id: `chatcmpl-${Date.now()}`, object: 'chat.completion', created: Math.floor(Date.now() / 1000), model: `envcp-${VERSION}`,
98
+ choices: [{ index: 0, message: { role: 'assistant', content: 'EnvCP tools available. Use function calling to interact with environment variables.' }, finish_reason: 'stop' }],
99
+ available_tools: this.getOpenAIFunctions().map(f => ({ type: 'function', function: f })),
182
100
  });
183
101
  return;
184
102
  }
185
- // Health check
186
103
  if (pathname === '/v1/health' || pathname === '/') {
187
- sendJson(res, 200, {
188
- status: 'ok',
189
- version: VERSION,
190
- mode: 'openai',
191
- endpoints: ['/v1/models', '/v1/functions', '/v1/functions/call', '/v1/tool_calls', '/v1/chat/completions'],
192
- });
104
+ sendJson(res, 200, { status: 'ok', version: VERSION, mode: 'openai', endpoints: ['/v1/models', '/v1/functions', '/v1/functions/call', '/v1/tool_calls', '/v1/chat/completions'] });
193
105
  return;
194
106
  }
195
- // 404
196
107
  sendJson(res, 404, { error: { message: 'Not found', type: 'not_found' } });
197
- }
198
- catch (error) {
199
- const message = error instanceof Error ? error.message : String(error);
200
- sendJson(res, 500, { error: { message, type: 'internal_error' } });
201
- }
202
- });
203
- return new Promise((resolve) => {
204
- this.server.listen(port, host, () => {
205
- resolve();
206
- });
108
+ },
207
109
  });
208
110
  }
209
111
  stopServer() {
@@ -211,7 +113,6 @@ export class OpenAIAdapter extends BaseAdapter {
211
113
  this.server.close();
212
114
  this.server = null;
213
115
  }
214
- this.rateLimiter?.destroy();
215
116
  }
216
117
  }
217
118
  //# 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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"}
@@ -4,7 +4,7 @@ export declare class RESTAdapter extends BaseAdapter {
4
4
  private server;
5
5
  private rateLimiter;
6
6
  private lockoutManager?;
7
- constructor(config: EnvCPConfig, projectPath: string, password?: string, vaultPath?: string);
7
+ constructor(config: EnvCPConfig, projectPath: string, password?: string, vaultPath?: string, sessionPath?: string);
8
8
  private clearApiKeyLockout;
9
9
  protected registerTools(): void;
10
10
  private createResponse;
@@ -1 +1 @@
1
- {"version":3,"file":"rest.d.ts","sourceRoot":"","sources":["../../src/adapters/rest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAgC,eAAe,EAAE,MAAM,aAAa,CAAC;AAOzF,qBAAa,WAAY,SAAQ,WAAW;IAC1C,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,cAAc,CAAC,CAAiB;gBAE5B,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;YAW7E,kBAAkB;IAOhC,SAAS,CAAC,aAAa,IAAI,IAAI;IA2E/B,OAAO,CAAC,cAAc;IAUlB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAoO9G,UAAU,IAAI,IAAI;IAQlB,UAAU,IAAI,MAAM;CAoCrB"}
1
+ {"version":3,"file":"rest.d.ts","sourceRoot":"","sources":["../../src/adapters/rest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAgC,eAAe,EAAE,MAAM,aAAa,CAAC;AAQzF,qBAAa,WAAY,SAAQ,WAAW;IAC1C,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,cAAc,CAAC,CAAiB;gBAE5B,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;YAUnG,kBAAkB;IAOhC,SAAS,CAAC,aAAa,IAAI,IAAI;IA0F/B,OAAO,CAAC,cAAc;IAUlB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA4O9G,UAAU,IAAI,IAAI;IAQlB,UAAU,IAAI,MAAM;CAoCrB"}