@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.
- package/README.md +94 -28
- package/dist/circuit-breaker.d.ts +39 -0
- package/dist/circuit-breaker.d.ts.map +1 -0
- package/dist/circuit-breaker.js +97 -0
- package/dist/circuit-breaker.js.map +1 -0
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +20 -12
- package/dist/cli.js.map +1 -1
- package/dist/health.d.ts +16 -0
- package/dist/health.d.ts.map +1 -0
- package/dist/health.js +80 -0
- package/dist/health.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -1
- package/dist/index.js.map +1 -1
- package/dist/launcher.d.ts +10 -0
- package/dist/launcher.d.ts.map +1 -0
- package/dist/launcher.js +73 -0
- package/dist/launcher.js.map +1 -0
- package/dist/logger.d.ts +11 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +13 -0
- package/dist/logger.js.map +1 -0
- package/dist/middleware.d.ts +60 -0
- package/dist/middleware.d.ts.map +1 -0
- package/dist/middleware.js +254 -0
- package/dist/middleware.js.map +1 -0
- package/dist/process-manager.d.ts +61 -0
- package/dist/process-manager.d.ts.map +1 -0
- package/dist/process-manager.js +173 -0
- package/dist/process-manager.js.map +1 -0
- package/dist/relay-config.d.ts +19 -0
- package/dist/relay-config.d.ts.map +1 -0
- package/dist/relay-config.js +32 -0
- package/dist/relay-config.js.map +1 -0
- package/dist/standalone-proxy.d.ts.map +1 -1
- package/dist/standalone-proxy.js +98 -7
- package/dist/standalone-proxy.js.map +1 -1
- package/dist/stats.d.ts +49 -0
- package/dist/stats.d.ts.map +1 -0
- package/dist/stats.js +72 -0
- package/dist/stats.js.map +1 -0
- package/dist/status.d.ts +46 -0
- package/dist/status.d.ts.map +1 -0
- package/dist/status.js +78 -0
- package/dist/status.js.map +1 -0
- package/dist/telemetry.d.ts +6 -0
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +14 -2
- package/dist/telemetry.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,16 +1,30 @@
|
|
|
1
1
|
# @relayplane/proxy
|
|
2
2
|
|
|
3
|
-
**
|
|
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
|
-
##
|
|
5
|
+
## Why RelayPlane?
|
|
6
6
|
|
|
7
|
-
|
|
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
|
-
**
|
|
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
|
|
11
|
+
## Quick Start
|
|
12
12
|
|
|
13
|
-
### Option 1:
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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
|
-
|
|
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
|
|
74
|
+
Your prompts never leave your machine. Only anonymous usage stats are collected.
|
|
54
75
|
|
|
55
|
-
##
|
|
76
|
+
## Programmatic API
|
|
56
77
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
-
#
|
|
130
|
-
|
|
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(`
|
|
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
|
-
|
|
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(
|
|
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 =
|
|
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,
|
|
337
|
-
console.log(
|
|
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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"}
|
package/dist/health.d.ts
ADDED
|
@@ -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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|