@relayplane/proxy 1.2.0 → 1.3.1

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 (52) hide show
  1. package/README.md +94 -28
  2. package/dist/circuit-breaker.d.ts +39 -0
  3. package/dist/circuit-breaker.d.ts.map +1 -0
  4. package/dist/circuit-breaker.js +97 -0
  5. package/dist/circuit-breaker.js.map +1 -0
  6. package/dist/cli.d.ts +1 -1
  7. package/dist/cli.js +20 -12
  8. package/dist/cli.js.map +1 -1
  9. package/dist/health.d.ts +16 -0
  10. package/dist/health.d.ts.map +1 -0
  11. package/dist/health.js +80 -0
  12. package/dist/health.js.map +1 -0
  13. package/dist/index.d.ts +12 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +19 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/launcher.d.ts +10 -0
  18. package/dist/launcher.d.ts.map +1 -0
  19. package/dist/launcher.js +73 -0
  20. package/dist/launcher.js.map +1 -0
  21. package/dist/logger.d.ts +11 -0
  22. package/dist/logger.d.ts.map +1 -0
  23. package/dist/logger.js +13 -0
  24. package/dist/logger.js.map +1 -0
  25. package/dist/middleware.d.ts +60 -0
  26. package/dist/middleware.d.ts.map +1 -0
  27. package/dist/middleware.js +254 -0
  28. package/dist/middleware.js.map +1 -0
  29. package/dist/process-manager.d.ts +61 -0
  30. package/dist/process-manager.d.ts.map +1 -0
  31. package/dist/process-manager.js +173 -0
  32. package/dist/process-manager.js.map +1 -0
  33. package/dist/relay-config.d.ts +19 -0
  34. package/dist/relay-config.d.ts.map +1 -0
  35. package/dist/relay-config.js +32 -0
  36. package/dist/relay-config.js.map +1 -0
  37. package/dist/standalone-proxy.d.ts.map +1 -1
  38. package/dist/standalone-proxy.js +98 -7
  39. package/dist/standalone-proxy.js.map +1 -1
  40. package/dist/stats.d.ts +49 -0
  41. package/dist/stats.d.ts.map +1 -0
  42. package/dist/stats.js +72 -0
  43. package/dist/stats.js.map +1 -0
  44. package/dist/status.d.ts +46 -0
  45. package/dist/status.d.ts.map +1 -0
  46. package/dist/status.js +78 -0
  47. package/dist/status.js.map +1 -0
  48. package/dist/telemetry.d.ts +6 -0
  49. package/dist/telemetry.d.ts.map +1 -1
  50. package/dist/telemetry.js +14 -2
  51. package/dist/telemetry.js.map +1 -1
  52. package/package.json +1 -1
package/README.md CHANGED
@@ -1,16 +1,30 @@
1
1
  # @relayplane/proxy
2
2
 
3
- **Cut your OpenClaw API costs by 40-60%.** Intelligent routing that uses the right model for each task.
3
+ **Safe, intelligent AI model routing that never breaks your setup.** Sandbox architecture with circuit breakers ensures your agent keeps working even if RelayPlane has issues.
4
4
 
5
- ## The Problem
5
+ ## Why RelayPlane?
6
6
 
7
- OpenClaw agents burn through API credits fast. Every tool call, every thinking step, every retry it adds up. Most users spend $30-300/month; power users hit $1,000+.
7
+ AI agents burn through API credits fast $30-300/month for most users, $1,000+ for power users. RelayPlane routes simple tasks to cheaper models automatically while keeping your setup bulletproof.
8
8
 
9
- **The fix:** Route simple tasks to cheaper models automatically. Keep Opus for complex reasoning, use Haiku for tool calls and quick tasks.
9
+ **Safety first:** RelayPlane runs as a sandbox layer. If anything goes wrong, the circuit breaker trips and requests flow directly to your provider. Zero downtime, zero intervention.
10
10
 
11
- ## Quick Start (OpenClaw)
11
+ ## Quick Start
12
12
 
13
- ### Option 1: ClawHub Skill (Recommended)
13
+ ### Option 1: OpenClaw Config (Recommended)
14
+
15
+ Add to your `openclaw.json`:
16
+
17
+ ```json
18
+ {
19
+ "relayplane": {
20
+ "enabled": true
21
+ }
22
+ }
23
+ ```
24
+
25
+ That's it. OpenClaw handles starting and managing the proxy automatically.
26
+
27
+ ### Option 2: ClawHub Skill
14
28
 
15
29
  ```bash
16
30
  clawhub install relayplane
@@ -21,56 +35,108 @@ Then use `/relayplane` commands:
21
35
  - `/relayplane proxy start` — Start the proxy
22
36
  - `/relayplane doctor` — Diagnose issues
23
37
 
24
- ### Option 2: Standalone Install
38
+ ### Option 3: Standalone
25
39
 
26
40
  ```bash
27
41
  npm install -g @relayplane/proxy
28
-
29
- # Start proxy
30
42
  relayplane-proxy
31
-
32
- # Add to your OpenClaw config (config.yaml)
33
- # providers:
34
- # anthropic:
35
- # baseUrl: http://localhost:4801
36
43
  ```
37
44
 
38
- ## How It Works
45
+ The proxy starts on `http://localhost:4100` by default.
46
+
47
+ ## Architecture
39
48
 
40
49
  ```
41
50
  Your Agent → RelayPlane Proxy → Right Model
42
51
 
43
- Analyzes task type
44
- Routes to optimal model
45
- Tracks costs locally
52
+ ┌─────────────────┐
53
+ │ Middleware │ Analyzes task type
54
+ │ Circuit Breaker │ Auto-bypasses on failure
55
+ │ Health Monitor │ Continuous liveness checks
56
+ │ Stats Tracker │ Real-time cost monitoring
57
+ └─────────────────┘
46
58
  ```
47
59
 
48
- **Routing logic:**
60
+ ### Sandbox Safety Model
61
+
62
+ RelayPlane is designed to **never break your setup**:
63
+
64
+ 1. **Circuit Breaker** — If the proxy encounters errors, it automatically opens the circuit and passes requests directly to your provider. No manual intervention needed.
65
+ 2. **Health Monitoring** — Continuous health checks detect issues before they affect your workflow.
66
+ 3. **Graceful Degradation** — Even if RelayPlane is completely down, your agent works normally.
67
+
68
+ ### Routing Logic
69
+
49
70
  - Quick tool calls → Haiku ($0.25/MTok)
50
- - Code review → Sonnet ($3/MTok)
71
+ - Code review → Sonnet ($3/MTok)
51
72
  - Complex reasoning → Opus ($15/MTok)
52
73
 
53
- Your prompts never leave your machine. Only anonymous usage stats (tokens, latency, model) are collected to improve routing.
74
+ Your prompts never leave your machine. Only anonymous usage stats are collected.
54
75
 
55
- ## Features
76
+ ## Programmatic API
56
77
 
57
- - **Smart Routing** Automatic model selection based on task complexity
58
- - **Cost Tracking** — Real-time spend monitoring across all providers
59
- - **Multi-Provider** — Anthropic, OpenAI, Gemini, xAI, OpenRouter
60
- - **Privacy First** — Prompts stay local, only metadata is collected
61
- - **Offline Mode** — Run fully local with `--offline`
78
+ Use RelayPlane components directly in your own tooling:
79
+
80
+ ```typescript
81
+ import {
82
+ RelayPlaneMiddleware,
83
+ CircuitBreaker,
84
+ HealthMonitor,
85
+ loadRelayConfig,
86
+ } from '@relayplane/proxy';
87
+
88
+ // Load config from openclaw.json or defaults
89
+ const config = loadRelayConfig();
90
+
91
+ // Circuit breaker with automatic recovery
92
+ const breaker = new CircuitBreaker({
93
+ failureThreshold: 3,
94
+ resetTimeoutMs: 30000,
95
+ });
96
+
97
+ // Middleware for request routing
98
+ const middleware = new RelayPlaneMiddleware({ config, circuitBreaker: breaker });
99
+
100
+ // Health monitoring
101
+ const health = new HealthMonitor({ port: 4100 });
102
+ ```
103
+
104
+ ### Managed Launcher
105
+
106
+ For process lifecycle management:
107
+
108
+ ```typescript
109
+ import { RelayPlaneLauncher } from '@relayplane/proxy';
110
+
111
+ const launcher = new RelayPlaneLauncher({ port: 4100 });
112
+ await launcher.start(); // Starts proxy, waits for healthy
113
+ await launcher.stop(); // Graceful shutdown
114
+ ```
62
115
 
63
116
  ## CLI Commands
64
117
 
65
118
  ```bash
66
- relayplane-proxy # Start proxy (default port 4801)
119
+ relayplane-proxy # Start proxy (default port 4100)
120
+ relayplane-proxy --port 8080 # Custom port
67
121
  relayplane-proxy stats # View usage statistics
122
+ relayplane-proxy config # Show configuration
68
123
  relayplane-proxy telemetry off # Disable telemetry
69
124
  relayplane-proxy telemetry status # Check telemetry setting
70
125
  relayplane-proxy --audit # See telemetry before sending
71
126
  relayplane-proxy --offline # No external calls except LLM APIs
72
127
  ```
73
128
 
129
+ ## Features
130
+
131
+ - **Sandbox Architecture** — Never breaks your existing setup
132
+ - **Circuit Breaker** — Automatic failover on errors
133
+ - **Health Monitoring** — Continuous liveness and readiness checks
134
+ - **Smart Routing** — Automatic model selection based on task complexity
135
+ - **Cost Tracking** — Real-time spend monitoring across all providers
136
+ - **Multi-Provider** — Anthropic, OpenAI, Gemini, xAI, OpenRouter
137
+ - **Privacy First** — Prompts stay local, only metadata is collected
138
+ - **Offline Mode** — Run fully local with `--offline`
139
+
74
140
  ## Telemetry
75
141
 
76
142
  Anonymous telemetry helps improve routing decisions. Here's exactly what's collected:
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Circuit Breaker for RelayPlane Proxy
3
+ *
4
+ * States: CLOSED (normal) → OPEN (bypassing) → HALF-OPEN (probing) → CLOSED
5
+ * No external dependencies.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ import { EventEmitter } from 'node:events';
10
+ export type CircuitState = 'CLOSED' | 'OPEN' | 'HALF-OPEN';
11
+ export interface CircuitBreakerOptions {
12
+ /** Consecutive failures before tripping to OPEN (default: 3) */
13
+ failureThreshold?: number;
14
+ /** Ms to wait in OPEN before moving to HALF-OPEN (default: 30000) */
15
+ resetTimeoutMs?: number;
16
+ /** Ms timeout for proxied requests (default: 3000) */
17
+ requestTimeoutMs?: number;
18
+ }
19
+ export declare class CircuitBreaker extends EventEmitter {
20
+ private state;
21
+ private consecutiveFailures;
22
+ private lastFailureTime;
23
+ private halfOpenTimer;
24
+ readonly failureThreshold: number;
25
+ readonly resetTimeoutMs: number;
26
+ readonly requestTimeoutMs: number;
27
+ constructor(opts?: CircuitBreakerOptions);
28
+ getState(): CircuitState;
29
+ /** Returns true when the proxy should be attempted (CLOSED or HALF-OPEN). */
30
+ isHealthy(): boolean;
31
+ recordSuccess(): void;
32
+ recordFailure(): void;
33
+ /** Force reset to CLOSED (manual override). */
34
+ reset(): void;
35
+ destroy(): void;
36
+ private transitionTo;
37
+ private clearTimer;
38
+ }
39
+ //# sourceMappingURL=circuit-breaker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"circuit-breaker.d.ts","sourceRoot":"","sources":["../src/circuit-breaker.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAE3D,MAAM,WAAW,qBAAqB;IACpC,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qEAAqE;IACrE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,aAAa,CAA8C;IAEnE,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;gBAEtB,IAAI,GAAE,qBAA0B;IAO5C,QAAQ,IAAI,YAAY;IAQxB,6EAA6E;IAC7E,SAAS,IAAI,OAAO;IAKpB,aAAa,IAAI,IAAI;IAOrB,aAAa,IAAI,IAAI;IAYrB,+CAA+C;IAC/C,KAAK,IAAI,IAAI;IAMb,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,YAAY;IA0BpB,OAAO,CAAC,UAAU;CAMnB"}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ /**
3
+ * Circuit Breaker for RelayPlane Proxy
4
+ *
5
+ * States: CLOSED (normal) → OPEN (bypassing) → HALF-OPEN (probing) → CLOSED
6
+ * No external dependencies.
7
+ *
8
+ * @packageDocumentation
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.CircuitBreaker = void 0;
12
+ const node_events_1 = require("node:events");
13
+ class CircuitBreaker extends node_events_1.EventEmitter {
14
+ state = 'CLOSED';
15
+ consecutiveFailures = 0;
16
+ lastFailureTime = 0;
17
+ halfOpenTimer = null;
18
+ failureThreshold;
19
+ resetTimeoutMs;
20
+ requestTimeoutMs;
21
+ constructor(opts = {}) {
22
+ super();
23
+ this.failureThreshold = opts.failureThreshold ?? 3;
24
+ this.resetTimeoutMs = opts.resetTimeoutMs ?? 30_000;
25
+ this.requestTimeoutMs = opts.requestTimeoutMs ?? 3_000;
26
+ }
27
+ getState() {
28
+ // Check if we should transition from OPEN → HALF-OPEN based on elapsed time
29
+ if (this.state === 'OPEN' && Date.now() - this.lastFailureTime >= this.resetTimeoutMs) {
30
+ this.transitionTo('HALF-OPEN');
31
+ }
32
+ return this.state;
33
+ }
34
+ /** Returns true when the proxy should be attempted (CLOSED or HALF-OPEN). */
35
+ isHealthy() {
36
+ const s = this.getState();
37
+ return s === 'CLOSED' || s === 'HALF-OPEN';
38
+ }
39
+ recordSuccess() {
40
+ this.consecutiveFailures = 0;
41
+ if (this.state === 'HALF-OPEN' || this.state === 'OPEN') {
42
+ this.transitionTo('CLOSED');
43
+ }
44
+ }
45
+ recordFailure() {
46
+ this.consecutiveFailures++;
47
+ this.lastFailureTime = Date.now();
48
+ if (this.state === 'HALF-OPEN') {
49
+ // Probe failed — back to OPEN
50
+ this.transitionTo('OPEN');
51
+ }
52
+ else if (this.state === 'CLOSED' && this.consecutiveFailures >= this.failureThreshold) {
53
+ this.transitionTo('OPEN');
54
+ }
55
+ }
56
+ /** Force reset to CLOSED (manual override). */
57
+ reset() {
58
+ this.consecutiveFailures = 0;
59
+ this.clearTimer();
60
+ this.transitionTo('CLOSED');
61
+ }
62
+ destroy() {
63
+ this.clearTimer();
64
+ this.removeAllListeners();
65
+ }
66
+ transitionTo(next) {
67
+ const prev = this.state;
68
+ if (prev === next)
69
+ return;
70
+ this.state = next;
71
+ this.clearTimer();
72
+ if (next === 'OPEN') {
73
+ // Schedule timer-based transition to HALF-OPEN
74
+ this.halfOpenTimer = setTimeout(() => {
75
+ if (this.state === 'OPEN') {
76
+ this.transitionTo('HALF-OPEN');
77
+ }
78
+ }, this.resetTimeoutMs);
79
+ // Don't block process exit
80
+ if (this.halfOpenTimer && typeof this.halfOpenTimer === 'object' && 'unref' in this.halfOpenTimer) {
81
+ this.halfOpenTimer.unref();
82
+ }
83
+ }
84
+ if (next === 'CLOSED') {
85
+ this.consecutiveFailures = 0;
86
+ }
87
+ this.emit('stateChange', { from: prev, to: next });
88
+ }
89
+ clearTimer() {
90
+ if (this.halfOpenTimer) {
91
+ clearTimeout(this.halfOpenTimer);
92
+ this.halfOpenTimer = null;
93
+ }
94
+ }
95
+ }
96
+ exports.CircuitBreaker = CircuitBreaker;
97
+ //# sourceMappingURL=circuit-breaker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"circuit-breaker.js","sourceRoot":"","sources":["../src/circuit-breaker.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts CHANGED
@@ -15,7 +15,7 @@
15
15
  * config Show configuration
16
16
  *
17
17
  * Options:
18
- * --port <number> Port to listen on (default: 4801)
18
+ * --port <number> Port to listen on (default: 4100)
19
19
  * --host <string> Host to bind to (default: 127.0.0.1)
20
20
  * --offline Disable all network calls except LLM endpoints
21
21
  * --audit Show telemetry payloads before sending
package/dist/cli.js CHANGED
@@ -16,7 +16,7 @@
16
16
  * config Show configuration
17
17
  *
18
18
  * Options:
19
- * --port <number> Port to listen on (default: 4801)
19
+ * --port <number> Port to listen on (default: 4100)
20
20
  * --host <string> Host to bind to (default: 127.0.0.1)
21
21
  * --offline Disable all network calls except LLM endpoints
22
22
  * --audit Show telemetry payloads before sending
@@ -98,7 +98,7 @@ Commands:
98
98
  config Show configuration
99
99
 
100
100
  Options:
101
- --port <number> Port to listen on (default: 4801)
101
+ --port <number> Port to listen on (default: 4100)
102
102
  --host <string> Host to bind to (default: 127.0.0.1)
103
103
  --offline Disable all network calls except LLM endpoints
104
104
  --audit Show telemetry payloads before sending
@@ -126,9 +126,8 @@ Example:
126
126
  # Disable telemetry completely
127
127
  npx @relayplane/proxy telemetry off
128
128
 
129
- # Then point your SDKs to the proxy
130
- export ANTHROPIC_BASE_URL=http://localhost:4801
131
- export OPENAI_BASE_URL=http://localhost:4801
129
+ # Add to openclaw.json:
130
+ # { "relayplane": { "enabled": true } }
132
131
 
133
132
  Learn more: https://relayplane.com/docs
134
133
  `);
@@ -174,20 +173,30 @@ function handleStatsCommand() {
174
173
  console.log('═══════════════════');
175
174
  console.log('');
176
175
  console.log(` Total requests: ${stats.totalEvents}`);
177
- console.log(` Total cost: $${stats.totalCost.toFixed(2)}`);
176
+ console.log(` Actual cost: $${stats.totalCost.toFixed(4)}`);
177
+ console.log(` Without RP: $${stats.baselineCost.toFixed(4)}`);
178
+ if (stats.savings > 0) {
179
+ console.log(` 💰 You saved: $${stats.savings.toFixed(4)} (${stats.savingsPercent.toFixed(1)}%)`);
180
+ }
181
+ else if (stats.totalEvents > 0 && stats.baselineCost === 0) {
182
+ console.log(` ⚠️ No token data yet — savings will appear after new requests`);
183
+ }
178
184
  console.log(` Success rate: ${(stats.successRate * 100).toFixed(1)}%`);
179
185
  console.log('');
180
186
  if (Object.keys(stats.byModel).length > 0) {
181
187
  console.log(' By Model:');
182
188
  for (const [model, data] of Object.entries(stats.byModel)) {
183
- console.log(` ${model}: ${data.count} requests, $${data.cost.toFixed(2)}`);
189
+ const savingsNote = data.baselineCost > 0
190
+ ? ` (saved $${(data.baselineCost - data.cost).toFixed(4)} vs Opus)`
191
+ : '';
192
+ console.log(` ${model}: ${data.count} requests, $${data.cost.toFixed(4)}${savingsNote}`);
184
193
  }
185
194
  console.log('');
186
195
  }
187
196
  if (Object.keys(stats.byTaskType).length > 0) {
188
197
  console.log(' By Task Type:');
189
198
  for (const [taskType, data] of Object.entries(stats.byTaskType)) {
190
- console.log(` ${taskType}: ${data.count} requests, $${data.cost.toFixed(2)}`);
199
+ console.log(` ${taskType}: ${data.count} requests, $${data.cost.toFixed(4)}`);
191
200
  }
192
201
  console.log('');
193
202
  }
@@ -245,7 +254,7 @@ async function main() {
245
254
  process.exit(0);
246
255
  }
247
256
  // Parse server options
248
- let port = 4801;
257
+ let port = 4100;
249
258
  let host = '127.0.0.1';
250
259
  let verbose = false;
251
260
  let audit = false;
@@ -333,9 +342,8 @@ async function main() {
333
342
  try {
334
343
  await (0, standalone_proxy_js_1.startProxy)({ port, host, verbose });
335
344
  console.log('');
336
- console.log(' To use, set these environment variables:');
337
- console.log(` export ANTHROPIC_BASE_URL=http://${host}:${port}`);
338
- console.log(` export OPENAI_BASE_URL=http://${host}:${port}`);
345
+ console.log(' To use, add to your openclaw.json:');
346
+ console.log(' { "relayplane": { "enabled": true } }');
339
347
  console.log('');
340
348
  console.log(' Then run your agent (OpenClaw, Cursor, Aider, etc.)');
341
349
  console.log('');
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Health endpoint handler + active health probe.
3
+ * @packageDocumentation
4
+ */
5
+ import * as http from 'node:http';
6
+ /**
7
+ * Handle GET /health on the proxy server.
8
+ * Returns { ok: true, uptime: <seconds> }.
9
+ */
10
+ export declare function handleHealthRequest(res: http.ServerResponse): void;
11
+ /**
12
+ * Probe a proxy's /health endpoint.
13
+ * Resolves true if healthy, false on any error/timeout.
14
+ */
15
+ export declare function probeHealth(proxyUrl: string, timeoutMs?: number): Promise<boolean>;
16
+ //# sourceMappingURL=health.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAIlC;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAIlE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAqBhF"}
package/dist/health.js ADDED
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ /**
3
+ * Health endpoint handler + active health probe.
4
+ * @packageDocumentation
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.handleHealthRequest = handleHealthRequest;
41
+ exports.probeHealth = probeHealth;
42
+ const http = __importStar(require("node:http"));
43
+ const startTime = Date.now();
44
+ /**
45
+ * Handle GET /health on the proxy server.
46
+ * Returns { ok: true, uptime: <seconds> }.
47
+ */
48
+ function handleHealthRequest(res) {
49
+ const body = JSON.stringify({ ok: true, uptime: Math.floor((Date.now() - startTime) / 1000) });
50
+ res.writeHead(200, { 'Content-Type': 'application/json', 'Content-Length': Buffer.byteLength(body) });
51
+ res.end(body);
52
+ }
53
+ /**
54
+ * Probe a proxy's /health endpoint.
55
+ * Resolves true if healthy, false on any error/timeout.
56
+ */
57
+ function probeHealth(proxyUrl, timeoutMs = 2000) {
58
+ const url = new URL('/health', proxyUrl);
59
+ return new Promise((resolve) => {
60
+ const req = http.get(url, { timeout: timeoutMs }, (res) => {
61
+ let data = '';
62
+ res.on('data', (c) => (data += c));
63
+ res.on('end', () => {
64
+ try {
65
+ const json = JSON.parse(data);
66
+ resolve(json.ok === true);
67
+ }
68
+ catch {
69
+ resolve(false);
70
+ }
71
+ });
72
+ });
73
+ req.on('error', () => resolve(false));
74
+ req.on('timeout', () => {
75
+ req.destroy();
76
+ resolve(false);
77
+ });
78
+ });
79
+ }
80
+ //# sourceMappingURL=health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUH,kDAIC;AAMD,kCAqBC;AAvCD,gDAAkC;AAElC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAE7B;;;GAGG;AACH,SAAgB,mBAAmB,CAAC,GAAwB;IAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/F,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAgB,WAAW,CAAC,QAAgB,EAAE,SAAS,GAAG,IAAI;IAC5D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACzC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;YACxD,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YACnC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACjB,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC9B,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;gBAC5B,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,CAAC,KAAK,CAAC,CAAC;gBACjB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACtC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACrB,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
package/dist/index.d.ts CHANGED
@@ -23,5 +23,17 @@ export { loadConfig, saveConfig, updateConfig, isFirstRun, markFirstRunComplete,
23
23
  export type { ProxyConfig as ProxyLocalConfig } from './config.js';
24
24
  export { recordTelemetry, inferTaskType, estimateCost, setAuditMode, isAuditMode, setOfflineMode, isOfflineMode, getAuditBuffer, clearAuditBuffer, getLocalTelemetry, getTelemetryStats, clearTelemetry, getTelemetryPath, printTelemetryDisclosure, } from './telemetry.js';
25
25
  export type { TelemetryEvent } from './telemetry.js';
26
+ export { CircuitBreaker, CircuitState } from './circuit-breaker.js';
27
+ export { RelayPlaneMiddleware } from './middleware.js';
28
+ export type { MiddlewareOptions } from './middleware.js';
29
+ export { ProcessManager } from './process-manager.js';
30
+ export { handleHealthRequest, probeHealth } from './health.js';
31
+ export { StatsCollector } from './stats.js';
32
+ export { StatusReporter } from './status.js';
33
+ export type { ProxyStatus } from './status.js';
34
+ export { resolveConfig } from './relay-config.js';
35
+ export type { RelayPlaneConfig } from './relay-config.js';
36
+ export { defaultLogger } from './logger.js';
37
+ export type { Logger } from './logger.js';
26
38
  export type { Provider, TaskType } from '@relayplane/core';
27
39
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,EACL,UAAU,EACV,UAAU,EACV,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,SAAS,EACT,YAAY,EACZ,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,WAAW,IAAI,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGnE,OAAO,EACL,eAAe,EACf,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,cAAc,EACd,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,EACL,UAAU,EACV,UAAU,EACV,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,SAAS,EACT,YAAY,EACZ,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,WAAW,IAAI,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGnE,OAAO,EACL,eAAe,EACf,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,cAAc,EACd,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -19,7 +19,7 @@
19
19
  * @packageDocumentation
20
20
  */
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.printTelemetryDisclosure = exports.getTelemetryPath = exports.clearTelemetry = exports.getTelemetryStats = exports.getLocalTelemetry = exports.clearAuditBuffer = exports.getAuditBuffer = exports.isOfflineMode = exports.setOfflineMode = exports.isAuditMode = exports.setAuditMode = exports.estimateCost = exports.inferTaskType = exports.recordTelemetry = exports.getConfigPath = exports.getConfigDir = exports.getApiKey = exports.setApiKey = exports.getDeviceId = exports.disableTelemetry = exports.enableTelemetry = exports.isTelemetryEnabled = exports.markFirstRunComplete = exports.isFirstRun = exports.updateConfig = exports.saveConfig = exports.loadConfig = exports.startProxy = void 0;
22
+ exports.defaultLogger = exports.resolveConfig = exports.StatusReporter = exports.StatsCollector = exports.probeHealth = exports.handleHealthRequest = exports.ProcessManager = exports.RelayPlaneMiddleware = exports.CircuitBreaker = exports.printTelemetryDisclosure = exports.getTelemetryPath = exports.clearTelemetry = exports.getTelemetryStats = exports.getLocalTelemetry = exports.clearAuditBuffer = exports.getAuditBuffer = exports.isOfflineMode = exports.setOfflineMode = exports.isAuditMode = exports.setAuditMode = exports.estimateCost = exports.inferTaskType = exports.recordTelemetry = exports.getConfigPath = exports.getConfigDir = exports.getApiKey = exports.setApiKey = exports.getDeviceId = exports.disableTelemetry = exports.enableTelemetry = exports.isTelemetryEnabled = exports.markFirstRunComplete = exports.isFirstRun = exports.updateConfig = exports.saveConfig = exports.loadConfig = exports.startProxy = void 0;
23
23
  // Standalone proxy (requires only @relayplane/core)
24
24
  var standalone_proxy_js_1 = require("./standalone-proxy.js");
25
25
  Object.defineProperty(exports, "startProxy", { enumerable: true, get: function () { return standalone_proxy_js_1.startProxy; } });
@@ -54,6 +54,24 @@ Object.defineProperty(exports, "getTelemetryStats", { enumerable: true, get: fun
54
54
  Object.defineProperty(exports, "clearTelemetry", { enumerable: true, get: function () { return telemetry_js_1.clearTelemetry; } });
55
55
  Object.defineProperty(exports, "getTelemetryPath", { enumerable: true, get: function () { return telemetry_js_1.getTelemetryPath; } });
56
56
  Object.defineProperty(exports, "printTelemetryDisclosure", { enumerable: true, get: function () { return telemetry_js_1.printTelemetryDisclosure; } });
57
+ // Sandbox Architecture (v1.3.0+)
58
+ var circuit_breaker_js_1 = require("./circuit-breaker.js");
59
+ Object.defineProperty(exports, "CircuitBreaker", { enumerable: true, get: function () { return circuit_breaker_js_1.CircuitBreaker; } });
60
+ var middleware_js_1 = require("./middleware.js");
61
+ Object.defineProperty(exports, "RelayPlaneMiddleware", { enumerable: true, get: function () { return middleware_js_1.RelayPlaneMiddleware; } });
62
+ var process_manager_js_1 = require("./process-manager.js");
63
+ Object.defineProperty(exports, "ProcessManager", { enumerable: true, get: function () { return process_manager_js_1.ProcessManager; } });
64
+ var health_js_1 = require("./health.js");
65
+ Object.defineProperty(exports, "handleHealthRequest", { enumerable: true, get: function () { return health_js_1.handleHealthRequest; } });
66
+ Object.defineProperty(exports, "probeHealth", { enumerable: true, get: function () { return health_js_1.probeHealth; } });
67
+ var stats_js_1 = require("./stats.js");
68
+ Object.defineProperty(exports, "StatsCollector", { enumerable: true, get: function () { return stats_js_1.StatsCollector; } });
69
+ var status_js_1 = require("./status.js");
70
+ Object.defineProperty(exports, "StatusReporter", { enumerable: true, get: function () { return status_js_1.StatusReporter; } });
71
+ var relay_config_js_1 = require("./relay-config.js");
72
+ Object.defineProperty(exports, "resolveConfig", { enumerable: true, get: function () { return relay_config_js_1.resolveConfig; } });
73
+ var logger_js_1 = require("./logger.js");
74
+ Object.defineProperty(exports, "defaultLogger", { enumerable: true, get: function () { return logger_js_1.defaultLogger; } });
57
75
  // Note: Advanced features (ProxyServer, streaming, etc.) require additional
58
76
  // dependencies. Install @relayplane/ledger, @relayplane/auth-gate, etc.
59
77
  // for full functionality. See documentation for details.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;AAEH,oDAAoD;AACpD,6DAAmD;AAA1C,iHAAA,UAAU,OAAA;AAGnB,gBAAgB;AAChB,yCAcqB;AAbnB,uGAAA,UAAU,OAAA;AACV,uGAAA,UAAU,OAAA;AACV,yGAAA,YAAY,OAAA;AACZ,uGAAA,UAAU,OAAA;AACV,iHAAA,oBAAoB,OAAA;AACpB,+GAAA,kBAAkB,OAAA;AAClB,4GAAA,eAAe,OAAA;AACf,6GAAA,gBAAgB,OAAA;AAChB,wGAAA,WAAW,OAAA;AACX,sGAAA,SAAS,OAAA;AACT,sGAAA,SAAS,OAAA;AACT,yGAAA,YAAY,OAAA;AACZ,0GAAA,aAAa,OAAA;AAIf,YAAY;AACZ,+CAewB;AAdtB,+GAAA,eAAe,OAAA;AACf,6GAAA,aAAa,OAAA;AACb,4GAAA,YAAY,OAAA;AACZ,4GAAA,YAAY,OAAA;AACZ,2GAAA,WAAW,OAAA;AACX,8GAAA,cAAc,OAAA;AACd,6GAAA,aAAa,OAAA;AACb,8GAAA,cAAc,OAAA;AACd,gHAAA,gBAAgB,OAAA;AAChB,iHAAA,iBAAiB,OAAA;AACjB,iHAAA,iBAAiB,OAAA;AACjB,8GAAA,cAAc,OAAA;AACd,gHAAA,gBAAgB,OAAA;AAChB,wHAAA,wBAAwB,OAAA;AAO1B,4EAA4E;AAC5E,wEAAwE;AACxE,yDAAyD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;AAEH,oDAAoD;AACpD,6DAAmD;AAA1C,iHAAA,UAAU,OAAA;AAGnB,gBAAgB;AAChB,yCAcqB;AAbnB,uGAAA,UAAU,OAAA;AACV,uGAAA,UAAU,OAAA;AACV,yGAAA,YAAY,OAAA;AACZ,uGAAA,UAAU,OAAA;AACV,iHAAA,oBAAoB,OAAA;AACpB,+GAAA,kBAAkB,OAAA;AAClB,4GAAA,eAAe,OAAA;AACf,6GAAA,gBAAgB,OAAA;AAChB,wGAAA,WAAW,OAAA;AACX,sGAAA,SAAS,OAAA;AACT,sGAAA,SAAS,OAAA;AACT,yGAAA,YAAY,OAAA;AACZ,0GAAA,aAAa,OAAA;AAIf,YAAY;AACZ,+CAewB;AAdtB,+GAAA,eAAe,OAAA;AACf,6GAAA,aAAa,OAAA;AACb,4GAAA,YAAY,OAAA;AACZ,4GAAA,YAAY,OAAA;AACZ,2GAAA,WAAW,OAAA;AACX,8GAAA,cAAc,OAAA;AACd,6GAAA,aAAa,OAAA;AACb,8GAAA,cAAc,OAAA;AACd,gHAAA,gBAAgB,OAAA;AAChB,iHAAA,iBAAiB,OAAA;AACjB,iHAAA,iBAAiB,OAAA;AACjB,8GAAA,cAAc,OAAA;AACd,gHAAA,gBAAgB,OAAA;AAChB,wHAAA,wBAAwB,OAAA;AAI1B,iCAAiC;AACjC,2DAAoE;AAA3D,oHAAA,cAAc,OAAA;AACvB,iDAAuD;AAA9C,qHAAA,oBAAoB,OAAA;AAE7B,2DAAsD;AAA7C,oHAAA,cAAc,OAAA;AACvB,yCAA+D;AAAtD,gHAAA,mBAAmB,OAAA;AAAE,wGAAA,WAAW,OAAA;AACzC,uCAA4C;AAAnC,0GAAA,cAAc,OAAA;AACvB,yCAA6C;AAApC,2GAAA,cAAc,OAAA;AAEvB,qDAAkD;AAAzC,gHAAA,aAAa,OAAA;AAEtB,yCAA4C;AAAnC,0GAAA,aAAa,OAAA;AAMtB,4EAA4E;AAC5E,wEAAwE;AACxE,yDAAyD"}