@relayplane/proxy 0.1.9 → 0.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.
- package/README.md +113 -247
- package/__tests__/server.test.ts +512 -0
- package/__tests__/telemetry.test.ts +126 -0
- package/dist/cli.d.ts +35 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +262 -3024
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +80 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +208 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +25 -1130
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +72 -3005
- package/dist/index.js.map +1 -1
- package/dist/server.d.ts +209 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +1089 -0
- package/dist/server.js.map +1 -0
- package/dist/streaming.d.ts +80 -0
- package/dist/streaming.d.ts.map +1 -0
- package/dist/streaming.js +271 -0
- package/dist/streaming.js.map +1 -0
- package/dist/telemetry.d.ts +111 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +315 -0
- package/dist/telemetry.js.map +1 -0
- package/package.json +21 -46
- package/src/cli.ts +341 -0
- package/src/config.ts +206 -0
- package/src/index.ts +82 -0
- package/src/server.ts +1328 -0
- package/src/streaming.ts +331 -0
- package/src/telemetry.ts +343 -0
- package/tsconfig.json +19 -0
- package/vitest.config.ts +21 -0
- package/LICENSE +0 -21
- package/dist/cli.d.mts +0 -1
- package/dist/cli.mjs +0 -3043
- package/dist/cli.mjs.map +0 -1
- package/dist/index.d.mts +0 -1141
- package/dist/index.mjs +0 -2948
- package/dist/index.mjs.map +0 -1
package/dist/server.d.ts
ADDED
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RelayPlane Agent Ops Proxy Server
|
|
3
|
+
*
|
|
4
|
+
* OpenAI-compatible proxy server with integrated observability via the Learning Ledger
|
|
5
|
+
* and auth enforcement via Auth Gate.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - OpenAI-compatible `/v1/chat/completions` endpoint
|
|
9
|
+
* - Auth Gate integration for consumer vs API auth detection
|
|
10
|
+
* - Learning Ledger integration for run tracking
|
|
11
|
+
* - Timing capture (latency_ms, ttft_ms)
|
|
12
|
+
* - Structured error handling
|
|
13
|
+
*
|
|
14
|
+
* @packageDocumentation
|
|
15
|
+
*/
|
|
16
|
+
import { Ledger } from '@relayplane/ledger';
|
|
17
|
+
import { AuthGate, type AuthProfileStorage } from '@relayplane/auth-gate';
|
|
18
|
+
import { PolicyEngine, type PolicyStorage } from '@relayplane/policy-engine';
|
|
19
|
+
import { RoutingEngine, type CapabilityRegistry, type ProviderManager } from '@relayplane/routing-engine';
|
|
20
|
+
import { ExplanationEngine, RunComparator, Simulator } from '@relayplane/explainability';
|
|
21
|
+
import type { AuthEnforcementMode } from '@relayplane/ledger';
|
|
22
|
+
/**
|
|
23
|
+
* Proxy server configuration
|
|
24
|
+
*/
|
|
25
|
+
export interface ProxyServerConfig {
|
|
26
|
+
port?: number;
|
|
27
|
+
host?: string;
|
|
28
|
+
ledger?: Ledger;
|
|
29
|
+
authStorage?: AuthProfileStorage;
|
|
30
|
+
policyStorage?: PolicyStorage;
|
|
31
|
+
policyEngine?: PolicyEngine;
|
|
32
|
+
verbose?: boolean;
|
|
33
|
+
defaultWorkspaceId?: string;
|
|
34
|
+
defaultAgentId?: string;
|
|
35
|
+
defaultAuthEnforcementMode?: AuthEnforcementMode;
|
|
36
|
+
enforcePolicies?: boolean;
|
|
37
|
+
routingEngine?: RoutingEngine;
|
|
38
|
+
capabilityRegistry?: CapabilityRegistry;
|
|
39
|
+
providerManager?: ProviderManager;
|
|
40
|
+
/** Enable capability-based routing (Phase 3) */
|
|
41
|
+
enableRouting?: boolean;
|
|
42
|
+
providers?: {
|
|
43
|
+
anthropic?: {
|
|
44
|
+
apiKey: string;
|
|
45
|
+
baseUrl?: string;
|
|
46
|
+
};
|
|
47
|
+
openai?: {
|
|
48
|
+
apiKey: string;
|
|
49
|
+
baseUrl?: string;
|
|
50
|
+
};
|
|
51
|
+
openrouter?: {
|
|
52
|
+
apiKey: string;
|
|
53
|
+
baseUrl?: string;
|
|
54
|
+
};
|
|
55
|
+
google?: {
|
|
56
|
+
apiKey: string;
|
|
57
|
+
baseUrl?: string;
|
|
58
|
+
};
|
|
59
|
+
together?: {
|
|
60
|
+
apiKey: string;
|
|
61
|
+
baseUrl?: string;
|
|
62
|
+
};
|
|
63
|
+
deepseek?: {
|
|
64
|
+
apiKey: string;
|
|
65
|
+
baseUrl?: string;
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* RelayPlane Agent Ops Proxy Server
|
|
71
|
+
*/
|
|
72
|
+
export declare class ProxyServer {
|
|
73
|
+
private server;
|
|
74
|
+
private ledger;
|
|
75
|
+
private authGate;
|
|
76
|
+
private policyEngine;
|
|
77
|
+
private routingEngine;
|
|
78
|
+
private capabilityRegistry;
|
|
79
|
+
private providerManager;
|
|
80
|
+
private explainer;
|
|
81
|
+
private comparator;
|
|
82
|
+
private simulator;
|
|
83
|
+
private config;
|
|
84
|
+
constructor(config?: ProxyServerConfig);
|
|
85
|
+
/**
|
|
86
|
+
* Build provider overrides from config
|
|
87
|
+
*/
|
|
88
|
+
private buildProviderOverrides;
|
|
89
|
+
/**
|
|
90
|
+
* Configure provider API keys from config
|
|
91
|
+
*/
|
|
92
|
+
private configureProviderApiKeys;
|
|
93
|
+
/**
|
|
94
|
+
* Start the proxy server
|
|
95
|
+
*/
|
|
96
|
+
start(): Promise<void>;
|
|
97
|
+
/**
|
|
98
|
+
* Stop the proxy server
|
|
99
|
+
*/
|
|
100
|
+
stop(): Promise<void>;
|
|
101
|
+
/**
|
|
102
|
+
* Handle incoming request
|
|
103
|
+
*/
|
|
104
|
+
private handleRequest;
|
|
105
|
+
private handleListPolicies;
|
|
106
|
+
private handleCreatePolicy;
|
|
107
|
+
private handleGetPolicy;
|
|
108
|
+
private handleUpdatePolicy;
|
|
109
|
+
private handleDeletePolicy;
|
|
110
|
+
private handlePolicyTest;
|
|
111
|
+
private handleGetBudget;
|
|
112
|
+
/**
|
|
113
|
+
* Handle GET /v1/runs/{id}/explain - Full decision chain explanation
|
|
114
|
+
*/
|
|
115
|
+
private handleExplainRun;
|
|
116
|
+
/**
|
|
117
|
+
* Handle GET /v1/runs/{id}/timeline - Timeline view only
|
|
118
|
+
*/
|
|
119
|
+
private handleRunTimeline;
|
|
120
|
+
/**
|
|
121
|
+
* Handle GET /v1/runs/{id}/decisions - Raw decision chain
|
|
122
|
+
*/
|
|
123
|
+
private handleRunDecisions;
|
|
124
|
+
/**
|
|
125
|
+
* Handle GET /v1/runs/{id} - Run inspector (all details)
|
|
126
|
+
*/
|
|
127
|
+
private handleRunInspector;
|
|
128
|
+
/**
|
|
129
|
+
* Handle GET /v1/runs/compare?ids=run1,run2 - Run comparison
|
|
130
|
+
*/
|
|
131
|
+
private handleCompareRuns;
|
|
132
|
+
/**
|
|
133
|
+
* Handle POST /v1/simulate/policy - Policy simulation
|
|
134
|
+
*/
|
|
135
|
+
private handleSimulatePolicy;
|
|
136
|
+
/**
|
|
137
|
+
* Handle POST /v1/simulate/routing - Routing simulation
|
|
138
|
+
*/
|
|
139
|
+
private handleSimulateRouting;
|
|
140
|
+
/**
|
|
141
|
+
* Handle /v1/chat/completions
|
|
142
|
+
*/
|
|
143
|
+
private handleChatCompletions;
|
|
144
|
+
/**
|
|
145
|
+
* Forward request to provider
|
|
146
|
+
*/
|
|
147
|
+
private forwardToProvider;
|
|
148
|
+
/**
|
|
149
|
+
* Detect auth type from Authorization header
|
|
150
|
+
*/
|
|
151
|
+
private detectAuthType;
|
|
152
|
+
/**
|
|
153
|
+
* Estimate cost based on provider and usage
|
|
154
|
+
*/
|
|
155
|
+
private estimateCost;
|
|
156
|
+
/**
|
|
157
|
+
* Read request body
|
|
158
|
+
*/
|
|
159
|
+
private readBody;
|
|
160
|
+
/**
|
|
161
|
+
* Send error response
|
|
162
|
+
*/
|
|
163
|
+
private sendError;
|
|
164
|
+
/**
|
|
165
|
+
* Log message
|
|
166
|
+
*/
|
|
167
|
+
private log;
|
|
168
|
+
/**
|
|
169
|
+
* Get the ledger instance (useful for testing)
|
|
170
|
+
*/
|
|
171
|
+
getLedger(): Ledger;
|
|
172
|
+
/**
|
|
173
|
+
* Get the auth gate instance (useful for testing)
|
|
174
|
+
*/
|
|
175
|
+
getAuthGate(): AuthGate;
|
|
176
|
+
/**
|
|
177
|
+
* Get the policy engine instance (useful for testing and policy management)
|
|
178
|
+
*/
|
|
179
|
+
getPolicyEngine(): PolicyEngine;
|
|
180
|
+
/**
|
|
181
|
+
* Get the routing engine instance (Phase 3)
|
|
182
|
+
*/
|
|
183
|
+
getRoutingEngine(): RoutingEngine;
|
|
184
|
+
/**
|
|
185
|
+
* Get the capability registry instance (Phase 3)
|
|
186
|
+
*/
|
|
187
|
+
getCapabilityRegistry(): CapabilityRegistry;
|
|
188
|
+
/**
|
|
189
|
+
* Get the provider manager instance (Phase 3)
|
|
190
|
+
*/
|
|
191
|
+
getProviderManager(): ProviderManager;
|
|
192
|
+
/**
|
|
193
|
+
* Get the explanation engine instance (Phase 4)
|
|
194
|
+
*/
|
|
195
|
+
getExplainer(): ExplanationEngine;
|
|
196
|
+
/**
|
|
197
|
+
* Get the run comparator instance (Phase 4)
|
|
198
|
+
*/
|
|
199
|
+
getComparator(): RunComparator;
|
|
200
|
+
/**
|
|
201
|
+
* Get the simulator instance (Phase 4)
|
|
202
|
+
*/
|
|
203
|
+
getSimulator(): Simulator;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Create a new proxy server
|
|
207
|
+
*/
|
|
208
|
+
export declare function createProxyServer(config?: ProxyServerConfig): ProxyServer;
|
|
209
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|