cygon commited on
Commit
3ddaff6
·
1 Parent(s): bc84a2b

Initial deployment with Ollama support

Browse files
Dockerfile CHANGED
@@ -26,14 +26,16 @@ RUN mkdir -p .encore
26
  ENV PORT=7860
27
  ENV NODE_ENV=production
28
  ENV OLLAMA_BASE_URL=http://localhost:11434
29
- ENV OLLAMA_MODEL=llama2
30
  ENV OLLAMA_EMBEDDING_MODEL=nomic-embed-text
31
  ENV API_KEYS=demo-key-1,demo-key-2
32
  ENV RATE_LIMIT_DEFAULT=100
33
  ENV RATE_LIMIT_ADMIN=1000
34
  ENV LOG_LEVEL=info
35
  ENV ENABLE_BACKGROUND_WORKERS=true
36
- ENV OLLAMA_MODELS=/data/ollama-models
 
 
37
 
38
  EXPOSE 7860
39
 
@@ -70,9 +72,9 @@ timeout 30s ollama run $OLLAMA_MODEL "Hi" > /dev/null 2>&1 || echo "Warmup compl
70
  echo "Starting AI API Service on port $PORT..."\n\
71
  echo "Available models: $(ollama list)"\n\
72
  \n\
73
- exec node .encore/build/backend/main.js || exec npm start\n\
74
  ' > /app/start.sh && chmod +x /app/start.sh
75
 
76
- VOLUME /data
77
 
78
  CMD ["/app/start.sh"]
 
26
  ENV PORT=7860
27
  ENV NODE_ENV=production
28
  ENV OLLAMA_BASE_URL=http://localhost:11434
29
+ ENV OLLAMA_MODEL=phi:latest
30
  ENV OLLAMA_EMBEDDING_MODEL=nomic-embed-text
31
  ENV API_KEYS=demo-key-1,demo-key-2
32
  ENV RATE_LIMIT_DEFAULT=100
33
  ENV RATE_LIMIT_ADMIN=1000
34
  ENV LOG_LEVEL=info
35
  ENV ENABLE_BACKGROUND_WORKERS=true
36
+ ENV OLLAMA_MODELS=/app/.ollama/models
37
+
38
+ RUN mkdir -p /app/.ollama/models && chown -R node:node /app/.ollama
39
 
40
  EXPOSE 7860
41
 
 
72
  echo "Starting AI API Service on port $PORT..."\n\
73
  echo "Available models: $(ollama list)"\n\
74
  \n\
75
+ exec npx encore run --port=$PORT\n\
76
  ' > /app/start.sh && chmod +x /app/start.sh
77
 
78
+ USER node
79
 
80
  CMD ["/app/start.sh"]
structure.md → ar.md RENAMED
File without changes
backend/package.json CHANGED
@@ -12,10 +12,5 @@
12
  },
13
  "devDependencies": {
14
  "typescript": "^5.8.3"
15
- },
16
- "scripts": {
17
- "build": "npx encore build",
18
- "dev": "npx encore dev",
19
- "start": "node .encore/build/backend/main.js || npx encore dev"
20
  }
21
- }
 
12
  },
13
  "devDependencies": {
14
  "typescript": "^5.8.3"
 
 
 
 
 
15
  }
16
+ }
package-lock.json DELETED
@@ -1,507 +0,0 @@
1
- {
2
- "name": "leap-app",
3
- "version": "1.0.0",
4
- "lockfileVersion": 3,
5
- "requires": true,
6
- "packages": {
7
- "": {
8
- "name": "leap-app",
9
- "version": "1.0.0",
10
- "workspaces": [
11
- "backend"
12
- ]
13
- },
14
- "backend": {
15
- "version": "1.0.0",
16
- "dependencies": {
17
- "@anthropic-ai/sdk": "^0.24.1",
18
- "@huggingface/inference": "^3.10.0",
19
- "@pinecone-database/pinecone": "^6.1.1",
20
- "encore.dev": "^1.50.4",
21
- "openai": "^4.90.0"
22
- },
23
- "devDependencies": {
24
- "typescript": "^5.8.3"
25
- }
26
- },
27
- "node_modules/@anthropic-ai/sdk": {
28
- "version": "0.24.3",
29
- "resolved": "https://registry.npmjs.org/@anthropic-ai/sdk/-/sdk-0.24.3.tgz",
30
- "integrity": "sha512-916wJXO6T6k8R6BAAcLhLPv/pnLGy7YSEBZXZ1XTFbLcTZE8oTy3oDW9WJf9KKZwMvVcePIfoTSvzXHRcGxkQQ==",
31
- "dependencies": {
32
- "@types/node": "^18.11.18",
33
- "@types/node-fetch": "^2.6.4",
34
- "abort-controller": "^3.0.0",
35
- "agentkeepalive": "^4.2.1",
36
- "form-data-encoder": "1.7.2",
37
- "formdata-node": "^4.3.2",
38
- "node-fetch": "^2.6.7",
39
- "web-streams-polyfill": "^3.2.1"
40
- }
41
- },
42
- "node_modules/@huggingface/inference": {
43
- "version": "3.15.0",
44
- "resolved": "https://registry.npmjs.org/@huggingface/inference/-/inference-3.15.0.tgz",
45
- "integrity": "sha512-C+Adt4fu4ztlq0Al9EOgEdK5Hl8ebV1eoDEWegJPdAJ97U8A1aqBbl1Sp4S4+wIy3nLApTrtcLuoizGZmLtDMA==",
46
- "dependencies": {
47
- "@huggingface/jinja": "^0.5.0",
48
- "@huggingface/tasks": "^0.19.9"
49
- },
50
- "engines": {
51
- "node": ">=18"
52
- }
53
- },
54
- "node_modules/@huggingface/jinja": {
55
- "version": "0.5.1",
56
- "resolved": "https://registry.npmjs.org/@huggingface/jinja/-/jinja-0.5.1.tgz",
57
- "integrity": "sha512-yUZLld4lrM9iFxHCwFQ7D1HW2MWMwSbeB7WzWqFYDWK+rEb+WldkLdAJxUPOmgICMHZLzZGVcVjFh3w/YGubng==",
58
- "engines": {
59
- "node": ">=18"
60
- }
61
- },
62
- "node_modules/@huggingface/tasks": {
63
- "version": "0.19.49",
64
- "resolved": "https://registry.npmjs.org/@huggingface/tasks/-/tasks-0.19.49.tgz",
65
- "integrity": "sha512-TBBs2klFqo0f9BgLBeG5sNH/oXt3nDxp8wEjwcR1/AepHb8VJAFf9oAW1SS9jmiWRrW8ZjXQJ3THOxsonHVBJA=="
66
- },
67
- "node_modules/@pinecone-database/pinecone": {
68
- "version": "6.1.2",
69
- "resolved": "https://registry.npmjs.org/@pinecone-database/pinecone/-/pinecone-6.1.2.tgz",
70
- "integrity": "sha512-ydIlbtgIIHFgBL08sPzua5ckmOgtjgDz8xg21CnP1fqnnEgDmOlnfd10MRKU+fvFRhDlh4Md37SwZDr0d4cBqg==",
71
- "engines": {
72
- "node": ">=18.0.0"
73
- }
74
- },
75
- "node_modules/@types/node": {
76
- "version": "18.19.129",
77
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.129.tgz",
78
- "integrity": "sha512-hrmi5jWt2w60ayox3iIXwpMEnfUvOLJCRtrOPbHtH15nTjvO7uhnelvrdAs0dO0/zl5DZ3ZbahiaXEVb54ca/A==",
79
- "dependencies": {
80
- "undici-types": "~5.26.4"
81
- }
82
- },
83
- "node_modules/@types/node-fetch": {
84
- "version": "2.6.13",
85
- "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.13.tgz",
86
- "integrity": "sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==",
87
- "dependencies": {
88
- "@types/node": "*",
89
- "form-data": "^4.0.4"
90
- }
91
- },
92
- "node_modules/abort-controller": {
93
- "version": "3.0.0",
94
- "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
95
- "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
96
- "dependencies": {
97
- "event-target-shim": "^5.0.0"
98
- },
99
- "engines": {
100
- "node": ">=6.5"
101
- }
102
- },
103
- "node_modules/agentkeepalive": {
104
- "version": "4.6.0",
105
- "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.6.0.tgz",
106
- "integrity": "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==",
107
- "dependencies": {
108
- "humanize-ms": "^1.2.1"
109
- },
110
- "engines": {
111
- "node": ">= 8.0.0"
112
- }
113
- },
114
- "node_modules/asynckit": {
115
- "version": "0.4.0",
116
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
117
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
118
- },
119
- "node_modules/backend": {
120
- "resolved": "backend",
121
- "link": true
122
- },
123
- "node_modules/call-bind-apply-helpers": {
124
- "version": "1.0.2",
125
- "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
126
- "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
127
- "dependencies": {
128
- "es-errors": "^1.3.0",
129
- "function-bind": "^1.1.2"
130
- },
131
- "engines": {
132
- "node": ">= 0.4"
133
- }
134
- },
135
- "node_modules/combined-stream": {
136
- "version": "1.0.8",
137
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
138
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
139
- "dependencies": {
140
- "delayed-stream": "~1.0.0"
141
- },
142
- "engines": {
143
- "node": ">= 0.8"
144
- }
145
- },
146
- "node_modules/delayed-stream": {
147
- "version": "1.0.0",
148
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
149
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
150
- "engines": {
151
- "node": ">=0.4.0"
152
- }
153
- },
154
- "node_modules/dunder-proto": {
155
- "version": "1.0.1",
156
- "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
157
- "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
158
- "dependencies": {
159
- "call-bind-apply-helpers": "^1.0.1",
160
- "es-errors": "^1.3.0",
161
- "gopd": "^1.2.0"
162
- },
163
- "engines": {
164
- "node": ">= 0.4"
165
- }
166
- },
167
- "node_modules/encore.dev": {
168
- "version": "1.50.4",
169
- "resolved": "https://registry.npmjs.org/encore.dev/-/encore.dev-1.50.4.tgz",
170
- "integrity": "sha512-BAF3sckeurWNrBa51bCJOrCUhvXvRenfytNOQQ4IaHr1KiPorM/6XF59qKqiCkXL3Mtt9Vt3liyxd0mW024ebg==",
171
- "engines": {
172
- "node": ">=18.0.0"
173
- }
174
- },
175
- "node_modules/es-define-property": {
176
- "version": "1.0.1",
177
- "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
178
- "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
179
- "engines": {
180
- "node": ">= 0.4"
181
- }
182
- },
183
- "node_modules/es-errors": {
184
- "version": "1.3.0",
185
- "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
186
- "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
187
- "engines": {
188
- "node": ">= 0.4"
189
- }
190
- },
191
- "node_modules/es-object-atoms": {
192
- "version": "1.1.1",
193
- "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
194
- "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
195
- "dependencies": {
196
- "es-errors": "^1.3.0"
197
- },
198
- "engines": {
199
- "node": ">= 0.4"
200
- }
201
- },
202
- "node_modules/es-set-tostringtag": {
203
- "version": "2.1.0",
204
- "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
205
- "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
206
- "dependencies": {
207
- "es-errors": "^1.3.0",
208
- "get-intrinsic": "^1.2.6",
209
- "has-tostringtag": "^1.0.2",
210
- "hasown": "^2.0.2"
211
- },
212
- "engines": {
213
- "node": ">= 0.4"
214
- }
215
- },
216
- "node_modules/event-target-shim": {
217
- "version": "5.0.1",
218
- "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
219
- "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
220
- "engines": {
221
- "node": ">=6"
222
- }
223
- },
224
- "node_modules/form-data": {
225
- "version": "4.0.4",
226
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
227
- "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
228
- "dependencies": {
229
- "asynckit": "^0.4.0",
230
- "combined-stream": "^1.0.8",
231
- "es-set-tostringtag": "^2.1.0",
232
- "hasown": "^2.0.2",
233
- "mime-types": "^2.1.12"
234
- },
235
- "engines": {
236
- "node": ">= 6"
237
- }
238
- },
239
- "node_modules/form-data-encoder": {
240
- "version": "1.7.2",
241
- "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.2.tgz",
242
- "integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A=="
243
- },
244
- "node_modules/formdata-node": {
245
- "version": "4.4.1",
246
- "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-4.4.1.tgz",
247
- "integrity": "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==",
248
- "dependencies": {
249
- "node-domexception": "1.0.0",
250
- "web-streams-polyfill": "4.0.0-beta.3"
251
- },
252
- "engines": {
253
- "node": ">= 12.20"
254
- }
255
- },
256
- "node_modules/formdata-node/node_modules/web-streams-polyfill": {
257
- "version": "4.0.0-beta.3",
258
- "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz",
259
- "integrity": "sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==",
260
- "engines": {
261
- "node": ">= 14"
262
- }
263
- },
264
- "node_modules/function-bind": {
265
- "version": "1.1.2",
266
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
267
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
268
- "funding": {
269
- "url": "https://github.com/sponsors/ljharb"
270
- }
271
- },
272
- "node_modules/get-intrinsic": {
273
- "version": "1.3.0",
274
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
275
- "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
276
- "dependencies": {
277
- "call-bind-apply-helpers": "^1.0.2",
278
- "es-define-property": "^1.0.1",
279
- "es-errors": "^1.3.0",
280
- "es-object-atoms": "^1.1.1",
281
- "function-bind": "^1.1.2",
282
- "get-proto": "^1.0.1",
283
- "gopd": "^1.2.0",
284
- "has-symbols": "^1.1.0",
285
- "hasown": "^2.0.2",
286
- "math-intrinsics": "^1.1.0"
287
- },
288
- "engines": {
289
- "node": ">= 0.4"
290
- },
291
- "funding": {
292
- "url": "https://github.com/sponsors/ljharb"
293
- }
294
- },
295
- "node_modules/get-proto": {
296
- "version": "1.0.1",
297
- "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
298
- "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
299
- "dependencies": {
300
- "dunder-proto": "^1.0.1",
301
- "es-object-atoms": "^1.0.0"
302
- },
303
- "engines": {
304
- "node": ">= 0.4"
305
- }
306
- },
307
- "node_modules/gopd": {
308
- "version": "1.2.0",
309
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
310
- "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
311
- "engines": {
312
- "node": ">= 0.4"
313
- },
314
- "funding": {
315
- "url": "https://github.com/sponsors/ljharb"
316
- }
317
- },
318
- "node_modules/has-symbols": {
319
- "version": "1.1.0",
320
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
321
- "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
322
- "engines": {
323
- "node": ">= 0.4"
324
- },
325
- "funding": {
326
- "url": "https://github.com/sponsors/ljharb"
327
- }
328
- },
329
- "node_modules/has-tostringtag": {
330
- "version": "1.0.2",
331
- "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
332
- "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
333
- "dependencies": {
334
- "has-symbols": "^1.0.3"
335
- },
336
- "engines": {
337
- "node": ">= 0.4"
338
- },
339
- "funding": {
340
- "url": "https://github.com/sponsors/ljharb"
341
- }
342
- },
343
- "node_modules/hasown": {
344
- "version": "2.0.2",
345
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
346
- "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
347
- "dependencies": {
348
- "function-bind": "^1.1.2"
349
- },
350
- "engines": {
351
- "node": ">= 0.4"
352
- }
353
- },
354
- "node_modules/humanize-ms": {
355
- "version": "1.2.1",
356
- "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
357
- "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==",
358
- "dependencies": {
359
- "ms": "^2.0.0"
360
- }
361
- },
362
- "node_modules/math-intrinsics": {
363
- "version": "1.1.0",
364
- "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
365
- "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
366
- "engines": {
367
- "node": ">= 0.4"
368
- }
369
- },
370
- "node_modules/mime-db": {
371
- "version": "1.52.0",
372
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
373
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
374
- "engines": {
375
- "node": ">= 0.6"
376
- }
377
- },
378
- "node_modules/mime-types": {
379
- "version": "2.1.35",
380
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
381
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
382
- "dependencies": {
383
- "mime-db": "1.52.0"
384
- },
385
- "engines": {
386
- "node": ">= 0.6"
387
- }
388
- },
389
- "node_modules/ms": {
390
- "version": "2.1.3",
391
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
392
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
393
- },
394
- "node_modules/node-domexception": {
395
- "version": "1.0.0",
396
- "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
397
- "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==",
398
- "deprecated": "Use your platform's native DOMException instead",
399
- "funding": [
400
- {
401
- "type": "github",
402
- "url": "https://github.com/sponsors/jimmywarting"
403
- },
404
- {
405
- "type": "github",
406
- "url": "https://paypal.me/jimmywarting"
407
- }
408
- ],
409
- "engines": {
410
- "node": ">=10.5.0"
411
- }
412
- },
413
- "node_modules/node-fetch": {
414
- "version": "2.7.0",
415
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
416
- "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
417
- "dependencies": {
418
- "whatwg-url": "^5.0.0"
419
- },
420
- "engines": {
421
- "node": "4.x || >=6.0.0"
422
- },
423
- "peerDependencies": {
424
- "encoding": "^0.1.0"
425
- },
426
- "peerDependenciesMeta": {
427
- "encoding": {
428
- "optional": true
429
- }
430
- }
431
- },
432
- "node_modules/openai": {
433
- "version": "4.104.0",
434
- "resolved": "https://registry.npmjs.org/openai/-/openai-4.104.0.tgz",
435
- "integrity": "sha512-p99EFNsA/yX6UhVO93f5kJsDRLAg+CTA2RBqdHK4RtK8u5IJw32Hyb2dTGKbnnFmnuoBv5r7Z2CURI9sGZpSuA==",
436
- "dependencies": {
437
- "@types/node": "^18.11.18",
438
- "@types/node-fetch": "^2.6.4",
439
- "abort-controller": "^3.0.0",
440
- "agentkeepalive": "^4.2.1",
441
- "form-data-encoder": "1.7.2",
442
- "formdata-node": "^4.3.2",
443
- "node-fetch": "^2.6.7"
444
- },
445
- "bin": {
446
- "openai": "bin/cli"
447
- },
448
- "peerDependencies": {
449
- "ws": "^8.18.0",
450
- "zod": "^3.23.8"
451
- },
452
- "peerDependenciesMeta": {
453
- "ws": {
454
- "optional": true
455
- },
456
- "zod": {
457
- "optional": true
458
- }
459
- }
460
- },
461
- "node_modules/tr46": {
462
- "version": "0.0.3",
463
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
464
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
465
- },
466
- "node_modules/typescript": {
467
- "version": "5.9.3",
468
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
469
- "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
470
- "dev": true,
471
- "bin": {
472
- "tsc": "bin/tsc",
473
- "tsserver": "bin/tsserver"
474
- },
475
- "engines": {
476
- "node": ">=14.17"
477
- }
478
- },
479
- "node_modules/undici-types": {
480
- "version": "5.26.5",
481
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
482
- "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="
483
- },
484
- "node_modules/web-streams-polyfill": {
485
- "version": "3.3.3",
486
- "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz",
487
- "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==",
488
- "engines": {
489
- "node": ">= 8"
490
- }
491
- },
492
- "node_modules/webidl-conversions": {
493
- "version": "3.0.1",
494
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
495
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
496
- },
497
- "node_modules/whatwg-url": {
498
- "version": "5.0.0",
499
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
500
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
501
- "dependencies": {
502
- "tr46": "~0.0.3",
503
- "webidl-conversions": "^3.0.0"
504
- }
505
- }
506
- }
507
- }