@mini-passy/sdk 0.1.4 → 0.1.5

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.
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAkD3C,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,GAC/B,OAAO,CAAC,IAAI,CAAC,CAyDf"}
1
+ {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAuD3C,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,GAC/B,OAAO,CAAC,IAAI,CAAC,CA6Df"}
package/dist/discovery.js CHANGED
@@ -1,9 +1,11 @@
1
+ import nodeHttps from "node:https";
2
+ import nodeHttp from "node:http";
1
3
  // Simple fetch wrapper using Node's https/http
2
4
  function fetchWithTimeout(url, options) {
3
5
  return new Promise((resolve, reject) => {
4
6
  const urlObj = new URL(url);
5
7
  const isHttps = urlObj.protocol === "https:";
6
- const httpModule = isHttps ? require("node:https") : require("node:http");
8
+ const httpModule = isHttps ? nodeHttps : nodeHttp;
7
9
  const reqOptions = {
8
10
  hostname: urlObj.hostname,
9
11
  port: urlObj.port || (isHttps ? 443 : 80),
@@ -16,9 +18,12 @@ function fetchWithTimeout(url, options) {
16
18
  let data = "";
17
19
  res.on("data", (chunk) => (data += chunk));
18
20
  res.on("end", () => {
19
- console.log(`[fetch] Response status: ${res.statusCode}, data length: ${data.length}`);
20
- if (data.length > 0) {
21
- console.log(`[fetch] Response preview: ${data.substring(0, 200)}`);
21
+ // Only log in debug mode to reduce console spam
22
+ if (process.env.DEBUG_DISCOVERY) {
23
+ console.log(`[fetch] Response status: ${res.statusCode}, data length: ${data.length}`);
24
+ if (data.length > 0) {
25
+ console.log(`[fetch] Response preview: ${data.substring(0, 200)}`);
26
+ }
22
27
  }
23
28
  resolve({
24
29
  ok: res.statusCode >= 200 && res.statusCode < 300,
@@ -27,11 +32,11 @@ function fetchWithTimeout(url, options) {
27
32
  });
28
33
  });
29
34
  req.on("error", (err) => {
30
- console.log(`[fetch] Error: ${err.message}`);
35
+ // Silently handle errors - no console spam
31
36
  reject(err);
32
37
  });
33
38
  req.on("timeout", () => {
34
- console.log(`[fetch] Timeout after ${options.timeout}ms`);
39
+ // Silently handle timeout - no console spam
35
40
  req.destroy();
36
41
  reject(new Error("Timeout"));
37
42
  });
@@ -52,6 +57,10 @@ export async function discoverProviders(providers) {
52
57
  provider.openai = true;
53
58
  provider.models = data.data?.map((m) => m.id) || [];
54
59
  console.log(`[${name}] ✓ OpenAI format, ${provider.models.length} models`);
60
+ // Log first 20 models for debugging
61
+ if (provider.models.length > 0) {
62
+ console.log(`[${name}] Models: ${provider.models.slice(0, 20).join(", ")}${provider.models.length > 20 ? "..." : ""}`);
63
+ }
55
64
  }
56
65
  else {
57
66
  console.log(`[${name}] OpenAI format returned non-OK status`);
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,QAAQ,MAAM,WAAW,CAAC;AAEjC,+CAA+C;AAC/C,SAAS,gBAAgB,CACvB,GAAW,EACX,OAA6D;IAE7D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC;QAC7C,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;QAElD,MAAM,UAAU,GAAG;YACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,IAAI,EAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM;YACrC,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC;QAEF,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,GAAQ,EAAE,EAAE;YACtD,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC;YACnD,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACjB,gDAAgD;gBAChD,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;oBAChC,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,CAAC,UAAU,kBAAkB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;oBACvF,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACpB,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;oBACrE,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC;oBACN,EAAE,EAAE,GAAG,CAAC,UAAU,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,GAAG,GAAG;oBACjD,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;iBACnC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;YAC7B,2CAA2C;YAC3C,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACrB,4CAA4C;YAC5C,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,SAAgC;IAEhC,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,kBAAkB,CAAC,CAAC;QAExC,oBAAoB;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,GAAG,QAAQ,CAAC,GAAG,YAAY,EAAE;gBAC9D,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,QAAQ,CAAC,GAAG,EAAE,EAAE;gBACpD,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YACH,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACX,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAqC,CAAC;gBACpE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;gBACvB,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;gBACpD,OAAO,CAAC,GAAG,CACT,IAAI,IAAI,sBAAsB,QAAQ,CAAC,MAAM,CAAC,MAAM,SAAS,CAC9D,CAAC;gBACF,oCAAoC;gBACpC,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,aAAa,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACzH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,wCAAwC,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,QAAQ,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,6BAA6B,QAAQ,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,mEAAmE;QACnE,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrD,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,GAAG,QAAQ,CAAC,GAAG,YAAY,EAAE;oBAC9D,OAAO,EAAE;wBACP,WAAW,EAAE,QAAQ,CAAC,GAAG;wBACzB,mBAAmB,EAAE,YAAY;qBAClC;oBACD,OAAO,EAAE,KAAK;iBACf,CAAC,CAAC;gBACH,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;oBACX,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAqC,CAAC;oBACpE,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;oBAC1B,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;oBAC1D,kCAAkC;oBAClC,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;oBACzE,OAAO,CAAC,GAAG,CACT,IAAI,IAAI,yBAAyB,eAAe,CAAC,MAAM,SAAS,CACjE,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,2CAA2C,CAAC,CAAC;gBACnE,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,QAAQ,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC5D,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,gCAAgC,QAAQ,EAAE,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,gCAAgC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAGlC,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAkFlD,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,EAChC,GAAG,EAAE,IAAI,CAAC,cAAc,GACvB,IAAI,CA2DN"}
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAGlC,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAmMlD,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,EAChC,GAAG,EAAE,IAAI,CAAC,cAAc,GACvB,IAAI,CA2DN"}
package/dist/proxy.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import https from "node:https";
2
2
  import httpModule from "node:http";
3
- // Connection pooling agents
3
+ // Connection pooling agents for upstream calls
4
4
  const httpsAgent = new https.Agent({
5
5
  keepAlive: true,
6
6
  maxSockets: 50,
@@ -39,15 +39,99 @@ function proxyRequest(provider, path, body, format, res) {
39
39
  headers,
40
40
  };
41
41
  const upstream = requestModule.request(options, (upRes) => {
42
- const isStreaming = body.stream || upRes.headers["content-type"]?.includes("text/event-stream");
43
- res.writeHead(upRes.statusCode || 200, {
44
- "Content-Type": isStreaming ? "text/event-stream" : "application/json",
45
- ...(isStreaming && {
46
- "Cache-Control": "no-cache",
47
- Connection: "keep-alive",
48
- }),
42
+ // Detect whether the client requested streaming and whether the upstream
43
+ // is already sending SSE. We want to:
44
+ // - passthrough real SSE streams from providers like OpenAI, and
45
+ // - convert single JSON responses into OpenAI-style SSE when stream=true.
46
+ const wantsStream = Boolean(body.stream);
47
+ const upstreamContentType = upRes.headers["content-type"] || "";
48
+ const upstreamIsSSE = upstreamContentType.includes("text/event-stream");
49
+ // Case 1: Upstream is already streaming (OpenAI-style SSE) or client did not request stream.
50
+ // In this case we just proxy the response as-is and keep headers simple.
51
+ if (upstreamIsSSE || !wantsStream) {
52
+ const isStreaming = upstreamIsSSE || wantsStream;
53
+ res.writeHead(upRes.statusCode || 200, {
54
+ "Content-Type": isStreaming ? "text/event-stream" : "application/json",
55
+ ...(isStreaming && {
56
+ "Cache-Control": "no-cache",
57
+ Connection: "keep-alive",
58
+ }),
59
+ });
60
+ upRes.pipe(res);
61
+ return;
62
+ }
63
+ // Case 2: Client requested stream=true but upstream responded with a single JSON body.
64
+ // To keep IDEs like Cursor compatible, we transform the JSON response into
65
+ // an OpenAI chat.completion.chunk SSE stream with a final [DONE] sentinel.
66
+ const chunks = [];
67
+ upRes.on("data", (chunk) => {
68
+ chunks.push(chunk);
69
+ });
70
+ upRes.on("end", () => {
71
+ const statusCode = upRes.statusCode || 200;
72
+ const rawBody = Buffer.concat(chunks).toString("utf8");
73
+ try {
74
+ const completion = JSON.parse(rawBody);
75
+ const baseId = completion.id ?? `chatcmpl-${Date.now()}`;
76
+ const baseCreated = completion.created ?? Math.floor(Date.now() / 1000);
77
+ const baseModel = completion.model ??
78
+ body.model ??
79
+ provider.name;
80
+ const firstChoice = completion.choices?.[0];
81
+ const messageContent = firstChoice?.message?.content ?? rawBody;
82
+ const finishReason = firstChoice?.finish_reason ?? "stop";
83
+ // First SSE chunk: delta with assistant role and content.
84
+ const deltaChunk = {
85
+ id: baseId,
86
+ object: "chat.completion.chunk",
87
+ created: baseCreated,
88
+ model: baseModel,
89
+ choices: [
90
+ {
91
+ index: 0,
92
+ delta: {
93
+ role: "assistant",
94
+ content: messageContent,
95
+ },
96
+ finish_reason: null,
97
+ },
98
+ ],
99
+ };
100
+ // Second SSE chunk: finish event (empty delta, finish_reason + usage if present).
101
+ const finishChunk = {
102
+ id: baseId,
103
+ object: "chat.completion.chunk",
104
+ created: baseCreated,
105
+ model: baseModel,
106
+ choices: [
107
+ {
108
+ index: 0,
109
+ delta: {},
110
+ finish_reason: finishReason,
111
+ },
112
+ ],
113
+ };
114
+ if (completion.usage) {
115
+ finishChunk.usage = completion.usage;
116
+ }
117
+ const ssePayload = `data: ${JSON.stringify(deltaChunk)}\n\n` +
118
+ `data: ${JSON.stringify(finishChunk)}\n\n` +
119
+ "data: [DONE]\n\n";
120
+ res.writeHead(statusCode, {
121
+ "Content-Type": "text/event-stream",
122
+ "Cache-Control": "no-cache",
123
+ Connection: "keep-alive",
124
+ });
125
+ res.end(ssePayload);
126
+ }
127
+ catch (err) {
128
+ // If anything goes wrong during transformation, fall back to JSON
129
+ // so the client at least receives a valid response.
130
+ console.error(`[${provider.name}] Failed to transform JSON response to SSE:`, err);
131
+ res.writeHead(statusCode, { "Content-Type": "application/json" });
132
+ res.end(rawBody);
133
+ }
49
134
  });
50
- upRes.pipe(res);
51
135
  });
52
136
  upstream.on("error", (err) => {
53
137
  console.error(`[${provider.name}] Upstream error:`, err.message);
package/dist/proxy.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AA4KA,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC,CA0B7C"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AA4LA,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC,CA6B7C"}
package/dist/server.js CHANGED
@@ -3,6 +3,7 @@ import { loadEnv } from "./env.js";
3
3
  import { discoverProviders } from "./discovery.js";
4
4
  import { proxyWithFallback } from "./proxy.js";
5
5
  const MAX_BODY_SIZE = 10 * 1024 * 1024; // 10MB
6
+ // API Key Validation - removed, now handled inline in createRequestHandler
6
7
  function parseBody(req) {
7
8
  return new Promise((resolve, reject) => {
8
9
  const chunks = [];
@@ -37,12 +38,12 @@ function sendError(res, message, status = 500, code) {
37
38
  error.code = code;
38
39
  sendJson(res, error, status);
39
40
  }
40
- function createRequestHandler(env) {
41
+ function createRequestHandler(env, authKey) {
41
42
  return async function handleRequest(req, res) {
42
43
  const path = req.url || "/";
43
44
  const method = req.method || "GET";
44
45
  try {
45
- // Health check
46
+ // Health check (no auth required)
46
47
  if (path === "/health" && method === "GET") {
47
48
  return sendJson(res, {
48
49
  status: "ok",
@@ -55,7 +56,7 @@ function createRequestHandler(env) {
55
56
  aliases: Array.from(env.aliases.keys()),
56
57
  });
57
58
  }
58
- // List models (from aliases)
59
+ // List models (no auth required)
59
60
  if (path === "/v1/models" && method === "GET") {
60
61
  const data = Array.from(env.aliases.values()).map((alias) => ({
61
62
  id: alias.name,
@@ -65,6 +66,17 @@ function createRequestHandler(env) {
65
66
  }));
66
67
  return sendJson(res, { object: "list", data });
67
68
  }
69
+ // API Key Validation for protected endpoints (only if AUTH_KEY is set)
70
+ if (authKey) {
71
+ const authHeader = req.headers["authorization"];
72
+ const token = authHeader?.replace("Bearer ", "");
73
+ if (!token) {
74
+ return sendError(res, "Missing API key. Provide Authorization: Bearer <token> header.", 401, "missing_api_key");
75
+ }
76
+ if (token !== authKey) {
77
+ return sendError(res, "Invalid API key", 401, "invalid_api_key");
78
+ }
79
+ }
68
80
  // Chat completions
69
81
  if (path === "/v1/chat/completions" && method === "POST") {
70
82
  const rawBody = await parseBody(req);
@@ -118,10 +130,12 @@ function createRequestHandler(env) {
118
130
  };
119
131
  }
120
132
  export async function startServer(port) {
133
+ // Security: Get PASSY_AUTH_KEY from environment (optional - if not set, no auth required)
134
+ const AUTH_KEY = process.env.PASSY_AUTH_KEY;
121
135
  // Load environment and discover providers
122
136
  const env = loadEnv();
123
137
  await discoverProviders(env.providers);
124
- const server = http.createServer(createRequestHandler(env));
138
+ const server = http.createServer(createRequestHandler(env, AUTH_KEY));
125
139
  return new Promise((resolve, reject) => {
126
140
  server.on("error", (err) => {
127
141
  reject(err);
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,51 +1,51 @@
1
1
  {
2
- "name": "@mini-passy/sdk",
3
- "version": "0.1.4",
4
- "description": "Lightweight AI gateway SDK for routing LLM requests",
5
- "type": "module",
6
- "main": "./dist/index.js",
7
- "types": "./dist/index.d.ts",
8
- "publishConfig": {
9
- "access": "public"
10
- },
11
- "files": [
12
- "dist",
13
- "README.md",
14
- ".env.example"
15
- ],
16
- "bin": {
17
- "mini-passy": "dist/index.js"
18
- },
19
- "scripts": {
20
- "build": "tsc -p tsconfig.build.json",
21
- "clean": "rm -rf dist",
22
- "dev": "tsx src/index.ts",
23
- "start": "node dist/index.js",
24
- "prepublishOnly": "npm run clean && npm run build"
25
- },
26
- "engines": {
27
- "node": ">=18.0.0"
28
- },
29
- "dependencies": {
30
- "dotenv": "^16.4.0"
31
- },
32
- "devDependencies": {
33
- "@types/node": "^20.0.0",
34
- "tsx": "^4.0.0",
35
- "typescript": "^5.0.0"
36
- },
37
- "keywords": [
38
- "ai",
39
- "llm",
40
- "gateway",
41
- "openai",
42
- "anthropic",
43
- "proxy",
44
- "routing"
45
- ],
46
- "license": "MIT",
47
- "repository": {
48
- "type": "git",
49
- "url": "git+https://github.com/svliantiss/mini-passy.git"
50
- }
51
- }
2
+ "name": "@mini-passy/sdk",
3
+ "version": "0.1.5",
4
+ "description": "Lightweight AI gateway SDK for routing LLM requests",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "publishConfig": {
9
+ "access": "public"
10
+ },
11
+ "files": [
12
+ "dist",
13
+ "README.md",
14
+ ".env.example"
15
+ ],
16
+ "bin": {
17
+ "mini-passy": "dist/index.js"
18
+ },
19
+ "scripts": {
20
+ "build": "tsc -p tsconfig.build.json",
21
+ "clean": "rm -rf dist",
22
+ "dev": "tsx src/index.ts",
23
+ "start": "node dist/index.js",
24
+ "prepublishOnly": "npm run clean && npm run build"
25
+ },
26
+ "engines": {
27
+ "node": ">=18.0.0"
28
+ },
29
+ "dependencies": {
30
+ "dotenv": "^16.4.0"
31
+ },
32
+ "devDependencies": {
33
+ "@types/node": "^20.0.0",
34
+ "tsx": "^4.0.0",
35
+ "typescript": "^5.0.0"
36
+ },
37
+ "keywords": [
38
+ "ai",
39
+ "llm",
40
+ "gateway",
41
+ "openai",
42
+ "anthropic",
43
+ "proxy",
44
+ "routing"
45
+ ],
46
+ "license": "MIT",
47
+ "repository": {
48
+ "type": "git",
49
+ "url": "git+https://github.com/svliantiss/mini-passy.git"
50
+ }
51
+ }
package/.env.example DELETED
@@ -1,38 +0,0 @@
1
- # Mini-Passy Environment Configuration
2
- # Copy this file to .env and fill in your API keys
3
-
4
- # Provider Configuration
5
- # Format: PROVIDER_{NAME}_URL and PROVIDER_{NAME}_KEY
6
- # The {NAME} can be any identifier (lowercase recommended)
7
-
8
- PROVIDER_OPENAI_URL=https://api.openai.com
9
- PROVIDER_OPENAI_KEY=sk-your-openai-key-here
10
-
11
- PROVIDER_ANTHROPIC_URL=https://api.anthropic.com
12
- PROVIDER_ANTHROPIC_KEY=sk-your-anthropic-key-here
13
-
14
- # Example: Add Nebius provider
15
- # PROVIDER_NEBIUS_URL=https://api.studio.nebius.ai
16
- # PROVIDER_NEBIUS_KEY=your-nebius-key-here
17
-
18
- # Model Aliases
19
- # Format: ALIAS_{NAME}=provider:model
20
- # Use the provider name from above (lowercase)
21
-
22
- ALIAS_GPT4O=openai:gpt-4o
23
- ALIAS_GPT4O_MINI=openai:gpt-4o-mini
24
- ALIAS_CLAUDE_HAIKU=anthropic:claude-3-haiku-20240307
25
- ALIAS_CLAUDE_SONNET=anthropic:claude-3-sonnet-20240229
26
-
27
- # Example: Add alias for Nebius model
28
- # ALIAS_LLAMA70B=nebius:meta-llama/Meta-Llama-3.1-70B-Instruct
29
-
30
- # Fallback Configuration (optional)
31
- # Format: ALIAS_{NAME}_FALLBACK=provider1,provider2
32
- # If the primary provider fails, it will try these in order
33
-
34
- # Example: Try nebius first, fall back to deepinfra
35
- # ALIAS_LLAMA70B_FALLBACK=deepinfra
36
-
37
- # Server Configuration
38
- PORT=3333