@relayplane/proxy 0.2.1 → 1.1.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.
package/package.json CHANGED
@@ -1,56 +1,52 @@
1
1
  {
2
2
  "name": "@relayplane/proxy",
3
- "version": "0.2.1",
4
- "description": "RelayPlane proxy server - intelligent AI model routing with observability",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
3
+ "version": "1.1.0",
4
+ "description": "RelayPlane Local LLM Proxy - Route requests through multiple providers",
5
+ "type": "module",
6
+ "main": "dist/server.js",
7
+ "types": "dist/server.d.ts",
7
8
  "bin": {
8
- "relayplane-proxy": "dist/cli.js"
9
+ "relayplane-proxy": "dist/server.js"
10
+ },
11
+ "scripts": {
12
+ "build": "tsc",
13
+ "dev": "tsc --watch",
14
+ "start": "node dist/server.js",
15
+ "test": "vitest run",
16
+ "test:watch": "vitest",
17
+ "type-check": "tsc --noEmit",
18
+ "clean": "rm -rf dist"
9
19
  },
10
20
  "keywords": [
11
- "relayplane",
12
- "ai",
13
- "llm",
14
21
  "proxy",
15
- "routing",
16
- "anthropic",
22
+ "llm",
17
23
  "openai",
18
- "gemini",
19
- "openclaw",
20
- "observability",
21
- "agent-ops"
24
+ "anthropic",
25
+ "ai",
26
+ "relayplane"
22
27
  ],
23
28
  "author": "RelayPlane",
24
29
  "license": "MIT",
25
- "dependencies": {
26
- "@relayplane/core": "^0.1.1"
27
- },
28
- "optionalDependencies": {
29
- "@relayplane/ledger": "^0.1.0",
30
- "@relayplane/auth-gate": "^0.1.0",
31
- "@relayplane/policy-engine": "^0.1.0",
32
- "@relayplane/routing-engine": "^0.1.0",
33
- "@relayplane/explainability": "^0.1.0"
34
- },
35
- "devDependencies": {
36
- "typescript": "^5.3.3",
37
- "vitest": "^1.1.0"
38
- },
30
+ "homepage": "https://relayplane.com",
39
31
  "engines": {
40
- "node": ">=18"
32
+ "node": ">=18.0.0"
41
33
  },
42
34
  "publishConfig": {
43
- "access": "public"
35
+ "access": "public",
36
+ "registry": "https://registry.npmjs.org/"
44
37
  },
45
38
  "files": [
46
39
  "dist",
47
- "README.md"
40
+ "README.md",
41
+ "LICENSE"
48
42
  ],
49
- "scripts": {
50
- "build": "tsc",
51
- "dev": "tsc --watch",
52
- "start": "node dist/cli.js",
53
- "test": "vitest run",
54
- "test:watch": "vitest"
43
+ "dependencies": {
44
+ "node-fetch": "^2.7.0"
45
+ },
46
+ "devDependencies": {
47
+ "@types/node": "^20.10.0",
48
+ "@types/node-fetch": "^2.6.11",
49
+ "typescript": "^5.3.3",
50
+ "vitest": "^1.1.0"
55
51
  }
56
- }
52
+ }
@@ -1,87 +0,0 @@
1
- /**
2
- * Brain API Client
3
- *
4
- * Calls the RelayPlane Brain API for intelligent routing decisions.
5
- * Only used for Pro/Trial users with valid API keys.
6
- *
7
- * @packageDocumentation
8
- */
9
- /**
10
- * Route request to Brain API
11
- */
12
- export interface BrainRouteRequest {
13
- taskType: string;
14
- estimatedInputTokens?: number;
15
- estimatedOutputTokens?: number;
16
- requiresVision?: boolean;
17
- requiresToolUse?: boolean;
18
- requiresThinking?: boolean;
19
- currentModel?: string;
20
- prioritizeSpeed?: boolean;
21
- prioritizeQuality?: boolean;
22
- }
23
- /**
24
- * Route response from Brain API
25
- */
26
- export interface BrainRouteResponse {
27
- success: boolean;
28
- recommendedModel: string;
29
- confidence: number;
30
- estimatedCostUsd: number;
31
- staticWouldChoose: string;
32
- staticCostUsd: number;
33
- savingsUsd: number;
34
- explanation: {
35
- reason: string;
36
- factors: Array<{
37
- name: string;
38
- value: string;
39
- impact: 'positive' | 'negative' | 'neutral';
40
- weight: number;
41
- }>;
42
- networkData?: {
43
- similarTaskSuccessRate: number;
44
- totalSimilarTasks: number;
45
- };
46
- };
47
- processingTimeMs: number;
48
- }
49
- /**
50
- * Check if user has Brain access (Pro API key)
51
- */
52
- export declare function hasBrainAccess(): boolean;
53
- /**
54
- * Get configured API key
55
- */
56
- export declare function getApiKey(): string | null;
57
- /**
58
- * Set API key
59
- */
60
- export declare function setApiKey(apiKey: string): void;
61
- /**
62
- * Get routing recommendation from Brain API
63
- *
64
- * Falls back to static routing if Brain is unavailable.
65
- */
66
- export declare function getRouteRecommendation(request: BrainRouteRequest): Promise<BrainRouteResponse | null>;
67
- /**
68
- * Get routing recommendation for a request
69
- *
70
- * Analyzes the request and calls Brain API to get the optimal model.
71
- */
72
- export declare function getBrainRouting(inputTokens: number, outputTokens: number, currentModel: string, hasTools?: boolean, hasVision?: boolean): Promise<{
73
- model: string;
74
- reason: string;
75
- isBrain: boolean;
76
- }>;
77
- /**
78
- * Get provider status from Brain API
79
- */
80
- export declare function getProviderStatus(): Promise<Array<{
81
- provider: string;
82
- status: 'healthy' | 'degraded' | 'down';
83
- latencyP50Ms: number;
84
- latencyP99Ms: number;
85
- successRate: number;
86
- }> | null>;
87
- //# sourceMappingURL=brain-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"brain-client.d.ts","sourceRoot":"","sources":["../src/brain-client.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAUH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,KAAK,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;YAC5C,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC,CAAC;QACH,WAAW,CAAC,EAAE;YACZ,sBAAsB,EAAE,MAAM,CAAC;YAC/B,iBAAiB,EAAE,MAAM,CAAC;SAC3B,CAAC;KACH,CAAC;IACF,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAQxC;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,GAAG,IAAI,CAWzC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAmB9C;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAwCpC;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,QAAQ,GAAE,OAAe,EACzB,SAAS,GAAE,OAAe,GACzB,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CA4B9D;AAED;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,KAAK,CAAC;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC,GAAG,IAAI,CAAC,CAwBT"}
@@ -1,205 +0,0 @@
1
- "use strict";
2
- /**
3
- * Brain API Client
4
- *
5
- * Calls the RelayPlane Brain API for intelligent routing decisions.
6
- * Only used for Pro/Trial users with valid API keys.
7
- *
8
- * @packageDocumentation
9
- */
10
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- var desc = Object.getOwnPropertyDescriptor(m, k);
13
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
14
- desc = { enumerable: true, get: function() { return m[k]; } };
15
- }
16
- Object.defineProperty(o, k2, desc);
17
- }) : (function(o, m, k, k2) {
18
- if (k2 === undefined) k2 = k;
19
- o[k2] = m[k];
20
- }));
21
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
22
- Object.defineProperty(o, "default", { enumerable: true, value: v });
23
- }) : function(o, v) {
24
- o["default"] = v;
25
- });
26
- var __importStar = (this && this.__importStar) || (function () {
27
- var ownKeys = function(o) {
28
- ownKeys = Object.getOwnPropertyNames || function (o) {
29
- var ar = [];
30
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
31
- return ar;
32
- };
33
- return ownKeys(o);
34
- };
35
- return function (mod) {
36
- if (mod && mod.__esModule) return mod;
37
- var result = {};
38
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
39
- __setModuleDefault(result, mod);
40
- return result;
41
- };
42
- })();
43
- Object.defineProperty(exports, "__esModule", { value: true });
44
- exports.hasBrainAccess = hasBrainAccess;
45
- exports.getApiKey = getApiKey;
46
- exports.setApiKey = setApiKey;
47
- exports.getRouteRecommendation = getRouteRecommendation;
48
- exports.getBrainRouting = getBrainRouting;
49
- exports.getProviderStatus = getProviderStatus;
50
- const fs = __importStar(require("fs"));
51
- const path = __importStar(require("path"));
52
- const config_js_1 = require("./config.js");
53
- const telemetry_js_1 = require("./telemetry.js");
54
- const BRAIN_API_URL = process.env.RELAYPLANE_API_URL || 'https://api.relayplane.com';
55
- const BRAIN_TIMEOUT_MS = 5000; // 5 second timeout for Brain calls
56
- /**
57
- * Check if user has Brain access (Pro API key)
58
- */
59
- function hasBrainAccess() {
60
- if ((0, telemetry_js_1.isOfflineMode)())
61
- return false;
62
- const apiKey = getApiKey();
63
- if (!apiKey)
64
- return false;
65
- // Pro keys start with 'rp_live_' or 'rp_trial_'
66
- return apiKey.startsWith('rp_live_') || apiKey.startsWith('rp_trial_');
67
- }
68
- /**
69
- * Get configured API key
70
- */
71
- function getApiKey() {
72
- try {
73
- const configPath = path.join((0, config_js_1.getConfigDir)(), 'config.json');
74
- if (fs.existsSync(configPath)) {
75
- const config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
76
- return config.apiKey || null;
77
- }
78
- }
79
- catch (err) {
80
- // Ignore config read errors
81
- }
82
- return process.env.RELAYPLANE_API_KEY || null;
83
- }
84
- /**
85
- * Set API key
86
- */
87
- function setApiKey(apiKey) {
88
- const configDir = (0, config_js_1.getConfigDir)();
89
- if (!fs.existsSync(configDir)) {
90
- fs.mkdirSync(configDir, { recursive: true });
91
- }
92
- const configPath = path.join(configDir, 'config.json');
93
- let config = {};
94
- try {
95
- if (fs.existsSync(configPath)) {
96
- config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
97
- }
98
- }
99
- catch (err) {
100
- // Start fresh
101
- }
102
- config.apiKey = apiKey;
103
- fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
104
- }
105
- /**
106
- * Get routing recommendation from Brain API
107
- *
108
- * Falls back to static routing if Brain is unavailable.
109
- */
110
- async function getRouteRecommendation(request) {
111
- if (!hasBrainAccess()) {
112
- return null;
113
- }
114
- const apiKey = getApiKey();
115
- if (!apiKey)
116
- return null;
117
- try {
118
- const controller = new AbortController();
119
- const timeout = setTimeout(() => controller.abort(), BRAIN_TIMEOUT_MS);
120
- const response = await fetch(`${BRAIN_API_URL}/v1/route`, {
121
- method: 'POST',
122
- headers: {
123
- 'Content-Type': 'application/json',
124
- 'Authorization': `Bearer ${apiKey}`,
125
- },
126
- body: JSON.stringify(request),
127
- signal: controller.signal,
128
- });
129
- clearTimeout(timeout);
130
- if (!response.ok) {
131
- // Brain unavailable - fall back to static
132
- console.warn(`[Brain] Route request failed: ${response.status}`);
133
- return null;
134
- }
135
- const result = await response.json();
136
- return result;
137
- }
138
- catch (err) {
139
- if (err instanceof Error && err.name === 'AbortError') {
140
- console.warn('[Brain] Route request timed out');
141
- }
142
- else {
143
- console.warn('[Brain] Route request failed:', err);
144
- }
145
- return null;
146
- }
147
- }
148
- /**
149
- * Get routing recommendation for a request
150
- *
151
- * Analyzes the request and calls Brain API to get the optimal model.
152
- */
153
- async function getBrainRouting(inputTokens, outputTokens, currentModel, hasTools = false, hasVision = false) {
154
- // Infer task type
155
- const taskType = (0, telemetry_js_1.inferTaskType)(inputTokens, outputTokens, currentModel, hasTools);
156
- // Try Brain API
157
- const brainResponse = await getRouteRecommendation({
158
- taskType,
159
- estimatedInputTokens: inputTokens,
160
- estimatedOutputTokens: outputTokens,
161
- requiresVision: hasVision,
162
- requiresToolUse: hasTools,
163
- currentModel,
164
- });
165
- if (brainResponse && brainResponse.success) {
166
- return {
167
- model: brainResponse.recommendedModel,
168
- reason: brainResponse.explanation.reason,
169
- isBrain: true,
170
- };
171
- }
172
- // Fall back to static routing
173
- return {
174
- model: currentModel,
175
- reason: 'Static routing (Brain unavailable)',
176
- isBrain: false,
177
- };
178
- }
179
- /**
180
- * Get provider status from Brain API
181
- */
182
- async function getProviderStatus() {
183
- if (!hasBrainAccess()) {
184
- return null;
185
- }
186
- const apiKey = getApiKey();
187
- if (!apiKey)
188
- return null;
189
- try {
190
- const response = await fetch(`${BRAIN_API_URL}/v1/status`, {
191
- headers: {
192
- 'Authorization': `Bearer ${apiKey}`,
193
- },
194
- });
195
- if (!response.ok) {
196
- return null;
197
- }
198
- const result = await response.json();
199
- return result.providers || null;
200
- }
201
- catch (err) {
202
- return null;
203
- }
204
- }
205
- //# sourceMappingURL=brain-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"brain-client.js","sourceRoot":"","sources":["../src/brain-client.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts DELETED
@@ -1,36 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * RelayPlane Proxy CLI
4
- *
5
- * Intelligent AI model routing proxy server.
6
- *
7
- * Usage:
8
- * npx @relayplane/proxy [command] [options]
9
- * relayplane-proxy [command] [options]
10
- *
11
- * Commands:
12
- * (default) Start the proxy server
13
- * telemetry [on|off|status] Manage telemetry settings
14
- * stats Show usage statistics
15
- * config Show configuration
16
- *
17
- * Options:
18
- * --port <number> Port to listen on (default: 3001)
19
- * --host <string> Host to bind to (default: 127.0.0.1)
20
- * --offline Disable all network calls except LLM endpoints
21
- * --audit Show telemetry payloads before sending
22
- * -v, --verbose Enable verbose logging
23
- * -h, --help Show this help message
24
- * --version Show version
25
- *
26
- * Environment Variables:
27
- * ANTHROPIC_API_KEY Anthropic API key
28
- * OPENAI_API_KEY OpenAI API key
29
- * GEMINI_API_KEY Google Gemini API key
30
- * XAI_API_KEY xAI/Grok API key
31
- * MOONSHOT_API_KEY Moonshot API key
32
- *
33
- * @packageDocumentation
34
- */
35
- export {};
36
- //# sourceMappingURL=cli.d.ts.map
package/dist/cli.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG"}