opengauge 0.2.4 → 0.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +100 -72
- package/bin/opengauge.js +72 -0
- package/dist/cli/stats.d.ts.map +1 -1
- package/dist/cli/stats.js +15 -3
- package/dist/cli/stats.js.map +1 -1
- package/dist/core/cost/pricing-loader.d.ts +35 -0
- package/dist/core/cost/pricing-loader.d.ts.map +1 -0
- package/dist/core/cost/pricing-loader.js +176 -0
- package/dist/core/cost/pricing-loader.js.map +1 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +8 -1
- package/dist/core/index.js.map +1 -1
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +6 -0
- package/dist/db/index.js.map +1 -1
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +34 -0
- package/dist/db/schema.js.map +1 -1
- package/dist/db/session-queries.d.ts +2 -2
- package/dist/db/session-queries.d.ts.map +1 -1
- package/dist/db/session-queries.js +20 -6
- package/dist/db/session-queries.js.map +1 -1
- package/dist/proxy/server.d.ts.map +1 -1
- package/dist/proxy/server.js +2 -0
- package/dist/proxy/server.js.map +1 -1
- package/dist/test/cost.test.d.ts +2 -0
- package/dist/test/cost.test.d.ts.map +1 -0
- package/dist/test/cost.test.js +93 -0
- package/dist/test/cost.test.js.map +1 -0
- package/dist/test/providers.test.d.ts +2 -0
- package/dist/test/providers.test.d.ts.map +1 -0
- package/dist/test/providers.test.js +99 -0
- package/dist/test/providers.test.js.map +1 -0
- package/dist/test/proxy-integration.test.d.ts +2 -0
- package/dist/test/proxy-integration.test.d.ts.map +1 -0
- package/dist/test/proxy-integration.test.js +153 -0
- package/dist/test/proxy-integration.test.js.map +1 -0
- package/package.json +4 -2
- package/pricing.json +39 -0
package/README.md
CHANGED
|
@@ -1,122 +1,150 @@
|
|
|
1
1
|
# OpenGauge
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Local-first LLM cost tracking and observability. Per-call cost logging, runaway loop detection, circuit breaker, and budget enforcement — all stored in SQLite on your machine.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Quick Start
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
8
|
npx opengauge
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
## What
|
|
11
|
+
## What it does
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
13
|
+
- **Per-call cost tracking** — every LLM API call logged with token counts, cost estimates, and latency
|
|
14
|
+
- **Runaway loop detection** — trigram similarity catches agents stuck repeating the same call
|
|
15
|
+
- **Circuit breaker** — alerts (or blocks) when loops or budget thresholds are breached
|
|
16
|
+
- **Budget enforcement** — session, daily, and monthly spend limits
|
|
17
|
+
- **Multi-provider** — Anthropic, OpenAI, Google Gemini, Ollama (local)
|
|
18
18
|
|
|
19
|
-
##
|
|
19
|
+
## Three ways to use it
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
npx opengauge
|
|
23
|
-
```
|
|
21
|
+
### 1. Proxy mode — track any LLM tool
|
|
24
22
|
|
|
25
|
-
|
|
26
|
-
`npx` will download the package (if not already cached) and run it.
|
|
27
|
-
On first run, it may take a little longer while it fetches the package.
|
|
23
|
+
Point any tool (Claude Code, Cursor, custom apps) at the proxy to track all API calls:
|
|
28
24
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
Default URL:
|
|
32
|
-
|
|
33
|
-
```txt
|
|
34
|
-
http://localhost:3000
|
|
25
|
+
```bash
|
|
26
|
+
npx opengauge watch
|
|
35
27
|
```
|
|
36
28
|
|
|
37
|
-
|
|
29
|
+
Then configure your tool to use the proxy:
|
|
38
30
|
|
|
39
31
|
```bash
|
|
40
|
-
|
|
32
|
+
ANTHROPIC_BASE_URL=http://localhost:4000 claude
|
|
33
|
+
OPENAI_BASE_URL=http://localhost:4000/v1 your-tool
|
|
41
34
|
```
|
|
42
35
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
When the app opens, configure your provider in the UI wizard, or create:
|
|
46
|
-
|
|
47
|
-
`~/.opengauge/config.yml`
|
|
48
|
-
|
|
49
|
-
Example:
|
|
50
|
-
|
|
51
|
-
```yaml
|
|
52
|
-
providers:
|
|
53
|
-
anthropic:
|
|
54
|
-
api_key: YOUR_API_KEY
|
|
55
|
-
default_model: claude-opus-4-6
|
|
36
|
+
### 2. OpenClaw plugin — track OpenClaw agents
|
|
56
37
|
|
|
57
|
-
|
|
58
|
-
|
|
38
|
+
```bash
|
|
39
|
+
openclaw plugins install @opengauge/openclaw-plugin
|
|
40
|
+
openclaw gateway restart
|
|
59
41
|
```
|
|
60
42
|
|
|
61
|
-
|
|
43
|
+
Every LLM call your agent makes is automatically tracked. No code changes needed.
|
|
44
|
+
|
|
45
|
+
### 3. Chat UI — built-in chat interface
|
|
62
46
|
|
|
63
47
|
```bash
|
|
64
|
-
|
|
65
|
-
cd opengauge
|
|
66
|
-
npm install
|
|
67
|
-
npm run build
|
|
68
|
-
npm start
|
|
48
|
+
npx opengauge
|
|
69
49
|
```
|
|
70
50
|
|
|
71
|
-
|
|
51
|
+
Opens a local web chat at `http://localhost:3000` with token optimization, context retrieval, and cost tracking built in.
|
|
52
|
+
|
|
53
|
+
## View stats
|
|
72
54
|
|
|
73
55
|
```bash
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
56
|
+
npx opengauge stats # all time, all sources
|
|
57
|
+
npx opengauge stats --source=proxy # proxy mode only
|
|
58
|
+
npx opengauge stats --source=openclaw # openclaw plugin only
|
|
59
|
+
npx opengauge stats --period=7d # last 7 days
|
|
60
|
+
npx opengauge stats --model=claude-sonnet-4-6 # specific model
|
|
61
|
+
npx opengauge stats --json # machine-readable output
|
|
77
62
|
```
|
|
78
63
|
|
|
79
|
-
|
|
64
|
+
Example output:
|
|
80
65
|
|
|
81
|
-
|
|
66
|
+
```
|
|
67
|
+
Total Spend
|
|
68
|
+
┌──────────────┬─────────┐
|
|
69
|
+
│ Total Spend │ $0.0408 │
|
|
70
|
+
│ Tokens In │ 25.4K │
|
|
71
|
+
│ Tokens Out │ 203 │
|
|
72
|
+
│ Sessions │ 7 │
|
|
73
|
+
│ API Calls │ 7 │
|
|
74
|
+
└──────────────┴─────────┘
|
|
75
|
+
```
|
|
82
76
|
|
|
83
|
-
|
|
77
|
+
## Configuration
|
|
84
78
|
|
|
85
|
-
|
|
79
|
+
Create `~/.opengauge/config.yml`:
|
|
86
80
|
|
|
87
|
-
|
|
88
|
-
|
|
81
|
+
```yaml
|
|
82
|
+
providers:
|
|
83
|
+
anthropic:
|
|
84
|
+
api_key: YOUR_API_KEY
|
|
85
|
+
default_model: claude-sonnet-4-6
|
|
86
|
+
openai:
|
|
87
|
+
api_key: YOUR_API_KEY
|
|
88
|
+
default_model: gpt-4o
|
|
89
|
+
ollama:
|
|
90
|
+
base_url: http://localhost:11434
|
|
91
|
+
default_model: llama3
|
|
89
92
|
|
|
90
|
-
|
|
93
|
+
defaults:
|
|
94
|
+
provider: anthropic
|
|
91
95
|
|
|
92
|
-
|
|
96
|
+
# OpenClaw plugin settings (optional)
|
|
97
|
+
openclaw:
|
|
98
|
+
circuit_breaker:
|
|
99
|
+
enabled: true
|
|
100
|
+
similarity_threshold: 0.8
|
|
101
|
+
max_similar_calls: 5
|
|
102
|
+
action: warn # warn | block
|
|
103
|
+
budget:
|
|
104
|
+
session_limit_usd: 5.00
|
|
105
|
+
daily_limit_usd: 20.00
|
|
106
|
+
monthly_limit_usd: 400.00
|
|
107
|
+
```
|
|
93
108
|
|
|
94
|
-
|
|
95
|
-
- OpenGauge advantage: prompt quality optimization is first-class (Improve + analytics), not only chat.
|
|
109
|
+
## Supported models
|
|
96
110
|
|
|
97
|
-
|
|
111
|
+
| Provider | Models | Input/1M | Output/1M |
|
|
112
|
+
|----------|--------|----------|-----------|
|
|
113
|
+
| Anthropic | claude-opus-4-6, claude-sonnet-4-6, claude-haiku-4-5 | $0.80–$15 | $4–$75 |
|
|
114
|
+
| OpenAI | gpt-4o, gpt-4o-mini, o1, o3-mini | $0.15–$15 | $0.60–$60 |
|
|
115
|
+
| Google | gemini-2.0-flash, gemini-1.5-pro | $0.075–$1.25 | $0.30–$5 |
|
|
116
|
+
| Ollama | Any local model | Free | Free |
|
|
98
117
|
|
|
99
|
-
|
|
118
|
+
## Data storage
|
|
100
119
|
|
|
101
|
-
|
|
102
|
-
- OpenGauge advantage: model-agnostic PromptOps for any user (product, ops, research, support), not just coding.
|
|
120
|
+
Everything local at `~/.opengauge/`:
|
|
103
121
|
|
|
104
|
-
|
|
122
|
+
```
|
|
123
|
+
config.yml — configuration
|
|
124
|
+
opengauge.db — SQLite database (sessions, interactions, alerts)
|
|
125
|
+
error.log — error log for debugging
|
|
126
|
+
```
|
|
105
127
|
|
|
106
|
-
|
|
128
|
+
## Packages
|
|
107
129
|
|
|
108
|
-
|
|
109
|
-
|
|
130
|
+
| Package | Description |
|
|
131
|
+
|---------|-------------|
|
|
132
|
+
| [opengauge](https://www.npmjs.com/package/opengauge) | Core CLI — chat UI, proxy mode, stats |
|
|
133
|
+
| [@opengauge/openclaw-plugin](https://www.npmjs.com/package/@opengauge/openclaw-plugin) | OpenClaw agent observability plugin |
|
|
110
134
|
|
|
111
|
-
|
|
135
|
+
## Developer setup
|
|
112
136
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
137
|
+
```bash
|
|
138
|
+
git clone https://github.com/applytorque/opengauge.git
|
|
139
|
+
cd opengauge
|
|
140
|
+
npm install
|
|
141
|
+
npm run build
|
|
142
|
+
npm start
|
|
143
|
+
```
|
|
116
144
|
|
|
117
|
-
|
|
145
|
+
## Docs
|
|
118
146
|
|
|
119
|
-
|
|
147
|
+
See [docs/GUIDE.md](docs/GUIDE.md) for the full setup and usage guide.
|
|
120
148
|
|
|
121
149
|
## License
|
|
122
150
|
|
package/bin/opengauge.js
CHANGED
|
@@ -21,6 +21,77 @@ async function main() {
|
|
|
21
21
|
return;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
// ---- pricing command ----
|
|
25
|
+
if (command === 'pricing') {
|
|
26
|
+
const subcommand = args[1];
|
|
27
|
+
const { getDb } = require('../dist/db');
|
|
28
|
+
const { initSchema } = require('../dist/db/schema');
|
|
29
|
+
const { listModelProfiles } = require('../dist/core/cost');
|
|
30
|
+
const { initPricing, fetchRemotePricing, cachePricingToDb } = require('../dist/core/cost/pricing-loader');
|
|
31
|
+
|
|
32
|
+
const db = getDb();
|
|
33
|
+
initSchema(db);
|
|
34
|
+
initPricing(db);
|
|
35
|
+
|
|
36
|
+
if (subcommand === 'update') {
|
|
37
|
+
console.log('Fetching latest pricing from remote...');
|
|
38
|
+
const profiles = await fetchRemotePricing();
|
|
39
|
+
if (profiles.length === 0) {
|
|
40
|
+
console.log('No pricing data received. Using existing profiles.');
|
|
41
|
+
} else {
|
|
42
|
+
cachePricingToDb(db, profiles);
|
|
43
|
+
for (const p of profiles) {
|
|
44
|
+
const { registerModelProfile } = require('../dist/core/cost');
|
|
45
|
+
registerModelProfile(p);
|
|
46
|
+
}
|
|
47
|
+
console.log(`Updated ${profiles.length} model pricing profiles.`);
|
|
48
|
+
}
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
if (subcommand === 'list' || !subcommand) {
|
|
53
|
+
const profiles = listModelProfiles();
|
|
54
|
+
console.log(`\n Known model pricing (${profiles.length} models):\n`);
|
|
55
|
+
const grouped = {};
|
|
56
|
+
for (const p of profiles) {
|
|
57
|
+
if (!grouped[p.provider]) grouped[p.provider] = [];
|
|
58
|
+
grouped[p.provider].push(p);
|
|
59
|
+
}
|
|
60
|
+
for (const [provider, models] of Object.entries(grouped)) {
|
|
61
|
+
console.log(` ${provider}:`);
|
|
62
|
+
for (const m of models) {
|
|
63
|
+
console.log(` ${m.model.padEnd(35)} in: $${m.inputPricePer1M}/1M out: $${m.outputPricePer1M}/1M`);
|
|
64
|
+
}
|
|
65
|
+
console.log();
|
|
66
|
+
}
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
if (subcommand === '--help' || subcommand === '-h') {
|
|
71
|
+
console.log(`
|
|
72
|
+
OpenGauge Pricing — Manage model pricing profiles
|
|
73
|
+
|
|
74
|
+
Usage:
|
|
75
|
+
npx opengauge pricing [subcommand]
|
|
76
|
+
|
|
77
|
+
Subcommands:
|
|
78
|
+
list Show all known model pricing (default)
|
|
79
|
+
update Fetch latest pricing from remote
|
|
80
|
+
|
|
81
|
+
Custom pricing in ~/.opengauge/config.yml:
|
|
82
|
+
pricing:
|
|
83
|
+
- provider: anthropic
|
|
84
|
+
model: my-custom-model
|
|
85
|
+
inputPricePer1M: 5
|
|
86
|
+
outputPricePer1M: 25
|
|
87
|
+
`);
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
console.log(`Unknown pricing subcommand: ${subcommand}. Use --help for usage.`);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
|
|
24
95
|
// ---- watch command ----
|
|
25
96
|
if (command === 'watch') {
|
|
26
97
|
const { startWatchProxy } = require('../dist/proxy/server');
|
|
@@ -87,6 +158,7 @@ async function main() {
|
|
|
87
158
|
(default) Start the chat UI server
|
|
88
159
|
stats Show analytics dashboard
|
|
89
160
|
watch Start proxy watch mode for IDE agents
|
|
161
|
+
pricing Manage model pricing profiles
|
|
90
162
|
|
|
91
163
|
Options (chat server):
|
|
92
164
|
--port <number> Port to run on (default: 3000)
|
package/dist/cli/stats.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/cli/stats.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/cli/stats.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CAY3D;AA0DD,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAwL5D"}
|
package/dist/cli/stats.js
CHANGED
|
@@ -16,6 +16,7 @@ const cli_table3_1 = __importDefault(require("cli-table3"));
|
|
|
16
16
|
const db_1 = require("../db");
|
|
17
17
|
const session_queries_1 = require("../db/session-queries");
|
|
18
18
|
const queries_1 = require("../db/queries");
|
|
19
|
+
const pricing_loader_1 = require("../core/cost/pricing-loader");
|
|
19
20
|
function parseStatsArgs(args) {
|
|
20
21
|
const opts = {};
|
|
21
22
|
for (const arg of args) {
|
|
@@ -101,6 +102,7 @@ async function runStats(args) {
|
|
|
101
102
|
return;
|
|
102
103
|
}
|
|
103
104
|
const db = (0, db_1.getDb)();
|
|
105
|
+
(0, pricing_loader_1.initPricing)(db);
|
|
104
106
|
const sq = new session_queries_1.SessionQueries(db);
|
|
105
107
|
const since = parsePeriod(opts.period);
|
|
106
108
|
if (opts.json) {
|
|
@@ -259,11 +261,21 @@ async function runStats(args) {
|
|
|
259
261
|
}
|
|
260
262
|
// ---- JSON output ----
|
|
261
263
|
function runStatsJson(sq, opts, since) {
|
|
264
|
+
const days = opts.period ? parseInt(opts.period) || 7 : 30;
|
|
262
265
|
const output = {
|
|
266
|
+
meta: {
|
|
267
|
+
version: '0.2.5',
|
|
268
|
+
generatedAt: new Date().toISOString(),
|
|
269
|
+
filters: {
|
|
270
|
+
period: opts.period || null,
|
|
271
|
+
model: opts.model || null,
|
|
272
|
+
source: opts.source || null,
|
|
273
|
+
},
|
|
274
|
+
},
|
|
263
275
|
summary: sq.getSpendSummary(since, opts.source),
|
|
264
|
-
models: sq.getModelUsage(since),
|
|
265
|
-
daily: sq.getDailySpend(
|
|
266
|
-
topSessions: sq.getTopSessionsByCost(
|
|
276
|
+
models: sq.getModelUsage(since, opts.source),
|
|
277
|
+
daily: sq.getDailySpend(days),
|
|
278
|
+
topSessions: sq.getTopSessionsByCost(10, since, opts.source),
|
|
267
279
|
alerts: sq.queryAlerts({ dismissed: false, limit: 20, since }),
|
|
268
280
|
alertSummary: sq.getAlertSummary(since),
|
|
269
281
|
};
|
package/dist/cli/stats.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/cli/stats.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;AAoBH,wCAYC;AA0DD,4BAuLC;AA/QD,kDAA0B;AAC1B,4DAA+B;AAC/B,8BAA8B;AAC9B,2DAAuD;AACvD,2CAAwC;AAcxC,SAAgB,cAAc,CAAC,IAAc;IAC3C,MAAM,IAAI,GAAiB,EAAE,CAAC;IAC9B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAC5D,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAC/D,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aACjE,IAAI,GAAG,KAAK,UAAU;YAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;aAC3C,IAAI,GAAG,KAAK,QAAQ;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;aACvC,IAAI,GAAG,KAAK,WAAW;YAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;aAC7C,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAC9D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,cAAc;IACrB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;GAmBX,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAAC,MAAe;IAClC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,EAAE,GAA2B,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;IAC5F,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,UAAU,CAAC,GAAW;IAC7B,IAAI,GAAG,GAAG,IAAI;QAAE,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5C,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACzC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9B,CAAC;AAED,SAAS,YAAY,CAAC,CAAS;IAC7B,IAAI,CAAC,IAAI,SAAS;QAAE,OAAO,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAC5D,IAAI,CAAC,IAAI,KAAK;QAAE,OAAO,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IACpD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AAED,SAAS,cAAc,CAAC,OAAe,EAAE,KAAoB;IAC3D,MAAM,QAAQ,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC;IACjD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;IAC1C,IAAI,IAAI,GAAG,EAAE;QAAE,OAAO,GAAG,IAAI,GAAG,CAAC;IACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IACpC,IAAI,KAAK,GAAG,EAAE;QAAE,OAAO,GAAG,KAAK,KAAK,IAAI,GAAG,EAAE,GAAG,CAAC;IACjD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,KAAK,GAAG,EAAE,GAAG,CAAC;AACrD,CAAC;AAED,+BAA+B;AAExB,KAAK,UAAU,QAAQ,CAAC,IAAc;IAC3C,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAElC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,cAAc,EAAE,CAAC;QACjB,OAAO;IACT,CAAC;IAED,MAAM,EAAE,GAAG,IAAA,UAAK,GAAE,CAAC;IACnB,MAAM,EAAE,GAAG,IAAI,gCAAc,CAAC,EAAE,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEvC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,gBAAgB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,mBAAmB;IACnB,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/K,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,wBAAwB;IACxB,MAAM,OAAO,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,IAAI,oBAAK,CAAC;QAC3B,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,eAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjD,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;KAChC,CAAC,CAAC;IACH,UAAU,CAAC,IAAI,CACb,CAAC,aAAa,EAAE,eAAK,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EACjE,CAAC,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,EACpD,CAAC,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,EACtD,CAAC,cAAc,EAAE,eAAK,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,EACvE,CAAC,YAAY,EAAE,eAAK,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,EACrE,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,EAC3C,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CACjD,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,4BAA4B;IAC5B,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAe,EAAE,CAAC;IAClC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;YACxB,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAC7G,CAAC;IACH,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,WAAW,GAAG,IAAI,oBAAK,CAAC;YAC5B,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,eAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACtE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;SAChC,CAAC,CAAC;QACH,WAAW,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,+BAA+B;IAC/B,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,IAAI,oBAAK,CAAC;YAC3B,IAAI,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,eAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnG,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;SAChC,CAAC,CAAC;QACH,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YACpC,UAAU,CAAC,IAAI,CAAC;gBACd,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK;gBACnB,eAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;gBAC1C,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC;gBAC/B,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC;gBAChC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC;aACxB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,8BAA8B;IAC9B,MAAM,KAAK,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,UAAU,GAAG,IAAI,oBAAK,CAAC;YAC3B,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,eAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACrE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;SAChC,CAAC,CAAC;QACH,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YACnC,UAAU,CAAC,IAAI,CAAC;gBACd,CAAC,CAAC,GAAG;gBACL,eAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACpC,YAAY,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,UAAU,CAAC;gBACxC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;aACnB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,iCAAiC;IACjC,MAAM,WAAW,GAAG,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACtD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,YAAY,GAAG,IAAI,oBAAK,CAAC;YAC7B,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,eAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9E,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;SAChC,CAAC,CAAC;QACH,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC5B,YAAY,CAAC,IAAI,CAAC;gBAChB,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,KAAK;gBACP,eAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;gBAC1C,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC;gBAC3B,cAAc,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC;aACzC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,qCAAqC;IACrC,MAAM,YAAY,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC/C,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,IAAI,oBAAK,CAAC;YAC3B,IAAI,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,eAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3D,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;SAChC,CAAC,CAAC;QACH,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;YAC7B,MAAM,aAAa,GAAG,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,eAAK,CAAC,MAAM,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC;YAClH,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,0BAA0B;IAC1B,MAAM,YAAY,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3E,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC3C,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClI,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,8CAA8C;IAC9C,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,IAAI,iBAAO,CAAC,EAAE,CAAC,CAAC;QACtC,MAAM,WAAW,GAAG,aAAa,CAAC,uBAAuB,EAAE,CAAC;QAC5D,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,WAAW,GAAG,IAAI,oBAAK,CAAC;gBAC5B,IAAI,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,eAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACnG,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;aAChC,CAAC,CAAC;YACH,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;gBAC5B,WAAW,CAAC,IAAI,CAAC;oBACf,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK;oBACnB,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC;oBAC/B,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC;oBAChC,eAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;oBAC/C,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC;iBACxB,CAAC,CAAC;YACL,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;YACpC,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,8BAA8B;IAChC,CAAC;AACH,CAAC;AAED,wBAAwB;AAExB,SAAS,YAAY,CAAC,EAAkB,EAAE,IAAkB,EAAE,KAAc;IAC1E,MAAM,MAAM,GAAQ;QAClB,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;QAC/C,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC;QAC/B,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;QAC1B,WAAW,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,KAAK,CAAC;QAC9C,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;QAC9D,YAAY,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC;KACxC,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,wBAAwB;AAExB,SAAS,YAAY,CAAC,EAAkB,EAAE,KAAc;IACtD,MAAM,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAEtE,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO;IACT,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;YACrE,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC7D,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,cAAc,EAAE,CAAC;QAEzD,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,IAAI,cAAc,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACjF,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;AACH,CAAC;AAED,+CAA+C;AAE/C,SAAS,gBAAgB,CAAC,EAAkB,EAAE,KAAc;IAC1D,MAAM,OAAO,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAE1C,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,IAAI,OAAO,CAAC,iBAAiB,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO;IACT,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC;IAC3C,MAAM,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC;IACjD,MAAM,cAAc,GAAG,WAAW,GAAG,WAAW,CAAC;IACjD,MAAM,cAAc,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/E,OAAO,CAAC,GAAG,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACpF,OAAO,CAAC,GAAG,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,eAAK,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/F,OAAO,CAAC,GAAG,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,eAAK,CAAC,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,KAAK,eAAK,CAAC,KAAK,CAAC,UAAU,UAAU,CAAC,WAAW,CAAC,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvL,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC"}
|
|
1
|
+
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/cli/stats.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dynamic pricing loader — loads model pricing from:
|
|
3
|
+
* 1. User config (~/.opengauge/config.yml pricing section)
|
|
4
|
+
* 2. Cached remote pricing (model_profiles DB table)
|
|
5
|
+
* 3. Local pricing.json bundled with the package
|
|
6
|
+
*
|
|
7
|
+
* Falls back to hardcoded MODEL_PROFILES if all else fails.
|
|
8
|
+
*/
|
|
9
|
+
import { type ModelProfile } from './index';
|
|
10
|
+
/**
|
|
11
|
+
* Load pricing from the bundled pricing.json file.
|
|
12
|
+
*/
|
|
13
|
+
export declare function loadBundledPricing(): ModelProfile[];
|
|
14
|
+
/**
|
|
15
|
+
* Load custom pricing overrides from ~/.opengauge/config.yml
|
|
16
|
+
*/
|
|
17
|
+
export declare function loadUserPricingOverrides(): ModelProfile[];
|
|
18
|
+
/**
|
|
19
|
+
* Fetch latest pricing from remote and return parsed profiles.
|
|
20
|
+
*/
|
|
21
|
+
export declare function fetchRemotePricing(): Promise<ModelProfile[]>;
|
|
22
|
+
/**
|
|
23
|
+
* Cache pricing profiles to the model_profiles DB table.
|
|
24
|
+
*/
|
|
25
|
+
export declare function cachePricingToDb(db: any, profiles: ModelProfile[]): void;
|
|
26
|
+
/**
|
|
27
|
+
* Load cached pricing from the model_profiles DB table.
|
|
28
|
+
*/
|
|
29
|
+
export declare function loadPricingFromDb(db: any): ModelProfile[];
|
|
30
|
+
/**
|
|
31
|
+
* Initialize pricing: load from bundled file, then DB cache, then user overrides.
|
|
32
|
+
* User overrides take highest priority.
|
|
33
|
+
*/
|
|
34
|
+
export declare function initPricing(db?: any): void;
|
|
35
|
+
//# sourceMappingURL=pricing-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pricing-loader.d.ts","sourceRoot":"","sources":["../../../src/core/cost/pricing-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAAwB,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAKlE;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,EAAE,CAoBnD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,YAAY,EAAE,CAqBzD;AAED;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CA6BlE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,GAAG,EACP,QAAQ,EAAE,YAAY,EAAE,GACvB,IAAI,CAuBN;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,GAAG,GAAG,YAAY,EAAE,CAiBzD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,IAAI,CAoB1C"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Dynamic pricing loader — loads model pricing from:
|
|
4
|
+
* 1. User config (~/.opengauge/config.yml pricing section)
|
|
5
|
+
* 2. Cached remote pricing (model_profiles DB table)
|
|
6
|
+
* 3. Local pricing.json bundled with the package
|
|
7
|
+
*
|
|
8
|
+
* Falls back to hardcoded MODEL_PROFILES if all else fails.
|
|
9
|
+
*/
|
|
10
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
11
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.loadBundledPricing = loadBundledPricing;
|
|
15
|
+
exports.loadUserPricingOverrides = loadUserPricingOverrides;
|
|
16
|
+
exports.fetchRemotePricing = fetchRemotePricing;
|
|
17
|
+
exports.cachePricingToDb = cachePricingToDb;
|
|
18
|
+
exports.loadPricingFromDb = loadPricingFromDb;
|
|
19
|
+
exports.initPricing = initPricing;
|
|
20
|
+
const fs_1 = __importDefault(require("fs"));
|
|
21
|
+
const path_1 = __importDefault(require("path"));
|
|
22
|
+
const os_1 = __importDefault(require("os"));
|
|
23
|
+
const index_1 = require("./index");
|
|
24
|
+
const REMOTE_PRICING_URL = 'https://raw.githubusercontent.com/applytorque/opengauge/main/pricing.json';
|
|
25
|
+
/**
|
|
26
|
+
* Load pricing from the bundled pricing.json file.
|
|
27
|
+
*/
|
|
28
|
+
function loadBundledPricing() {
|
|
29
|
+
try {
|
|
30
|
+
// Try to find pricing.json relative to the package root
|
|
31
|
+
const candidates = [
|
|
32
|
+
path_1.default.resolve(__dirname, '../../../pricing.json'), // from dist/core/cost/
|
|
33
|
+
path_1.default.resolve(__dirname, '../../pricing.json'), // fallback
|
|
34
|
+
];
|
|
35
|
+
for (const candidate of candidates) {
|
|
36
|
+
if (fs_1.default.existsSync(candidate)) {
|
|
37
|
+
const data = JSON.parse(fs_1.default.readFileSync(candidate, 'utf-8'));
|
|
38
|
+
if (Array.isArray(data.models)) {
|
|
39
|
+
return data.models;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
// Ignore — fall back to hardcoded
|
|
46
|
+
}
|
|
47
|
+
return [];
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Load custom pricing overrides from ~/.opengauge/config.yml
|
|
51
|
+
*/
|
|
52
|
+
function loadUserPricingOverrides() {
|
|
53
|
+
try {
|
|
54
|
+
const configPath = path_1.default.join(os_1.default.homedir(), '.opengauge', 'config.yml');
|
|
55
|
+
if (!fs_1.default.existsSync(configPath))
|
|
56
|
+
return [];
|
|
57
|
+
// Lazy-load js-yaml only when needed
|
|
58
|
+
const yaml = require('js-yaml');
|
|
59
|
+
const config = yaml.load(fs_1.default.readFileSync(configPath, 'utf-8'));
|
|
60
|
+
if (!config?.pricing || !Array.isArray(config.pricing))
|
|
61
|
+
return [];
|
|
62
|
+
return config.pricing.map((entry) => ({
|
|
63
|
+
provider: entry.provider,
|
|
64
|
+
model: entry.model,
|
|
65
|
+
inputPricePer1M: entry.inputPricePer1M ?? entry.input_price_per_1m ?? 0,
|
|
66
|
+
outputPricePer1M: entry.outputPricePer1M ?? entry.output_price_per_1m ?? 0,
|
|
67
|
+
contextWindow: entry.contextWindow ?? entry.context_window,
|
|
68
|
+
})).filter((p) => p.provider && p.model);
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
return [];
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Fetch latest pricing from remote and return parsed profiles.
|
|
76
|
+
*/
|
|
77
|
+
async function fetchRemotePricing() {
|
|
78
|
+
const https = require('https');
|
|
79
|
+
const http = require('http');
|
|
80
|
+
return new Promise((resolve) => {
|
|
81
|
+
const transport = REMOTE_PRICING_URL.startsWith('https') ? https : http;
|
|
82
|
+
const req = transport.get(REMOTE_PRICING_URL, { timeout: 10000 }, (res) => {
|
|
83
|
+
if (res.statusCode !== 200) {
|
|
84
|
+
resolve([]);
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
const chunks = [];
|
|
88
|
+
res.on('data', (chunk) => chunks.push(chunk));
|
|
89
|
+
res.on('end', () => {
|
|
90
|
+
try {
|
|
91
|
+
const data = JSON.parse(Buffer.concat(chunks).toString('utf-8'));
|
|
92
|
+
if (Array.isArray(data.models)) {
|
|
93
|
+
resolve(data.models);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
resolve([]);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
resolve([]);
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
req.on('error', () => resolve([]));
|
|
105
|
+
req.on('timeout', () => { req.destroy(); resolve([]); });
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Cache pricing profiles to the model_profiles DB table.
|
|
110
|
+
*/
|
|
111
|
+
function cachePricingToDb(db, profiles) {
|
|
112
|
+
try {
|
|
113
|
+
const stmt = db.prepare(`
|
|
114
|
+
INSERT INTO model_profiles (model_id, provider, cost_per_1m_in, cost_per_1m_out, max_context, preferred_format, optimization_rules, updated_at)
|
|
115
|
+
VALUES (?, ?, ?, ?, ?, NULL, NULL, ?)
|
|
116
|
+
ON CONFLICT(model_id) DO UPDATE SET
|
|
117
|
+
provider = excluded.provider,
|
|
118
|
+
cost_per_1m_in = excluded.cost_per_1m_in,
|
|
119
|
+
cost_per_1m_out = excluded.cost_per_1m_out,
|
|
120
|
+
max_context = excluded.max_context,
|
|
121
|
+
updated_at = excluded.updated_at
|
|
122
|
+
`);
|
|
123
|
+
const now = Date.now();
|
|
124
|
+
const tx = db.transaction(() => {
|
|
125
|
+
for (const p of profiles) {
|
|
126
|
+
stmt.run(`${p.provider}:${p.model}`, p.provider, p.inputPricePer1M, p.outputPricePer1M, p.contextWindow || null, now);
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
tx();
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
// Non-blocking
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Load cached pricing from the model_profiles DB table.
|
|
137
|
+
*/
|
|
138
|
+
function loadPricingFromDb(db) {
|
|
139
|
+
try {
|
|
140
|
+
const rows = db.prepare(`SELECT * FROM model_profiles`).all();
|
|
141
|
+
return rows.map((r) => ({
|
|
142
|
+
provider: r.provider,
|
|
143
|
+
model: r.model_id.includes(':') ? r.model_id.split(':').slice(1).join(':') : r.model_id,
|
|
144
|
+
inputPricePer1M: r.cost_per_1m_in,
|
|
145
|
+
outputPricePer1M: r.cost_per_1m_out,
|
|
146
|
+
contextWindow: r.max_context ?? undefined,
|
|
147
|
+
}));
|
|
148
|
+
}
|
|
149
|
+
catch {
|
|
150
|
+
return [];
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Initialize pricing: load from bundled file, then DB cache, then user overrides.
|
|
155
|
+
* User overrides take highest priority.
|
|
156
|
+
*/
|
|
157
|
+
function initPricing(db) {
|
|
158
|
+
// 1. Load bundled pricing.json (supplements hardcoded defaults)
|
|
159
|
+
const bundled = loadBundledPricing();
|
|
160
|
+
for (const p of bundled) {
|
|
161
|
+
(0, index_1.registerModelProfile)(p);
|
|
162
|
+
}
|
|
163
|
+
// 2. Load from DB cache (may have newer remote data)
|
|
164
|
+
if (db) {
|
|
165
|
+
const cached = loadPricingFromDb(db);
|
|
166
|
+
for (const p of cached) {
|
|
167
|
+
(0, index_1.registerModelProfile)(p);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
// 3. User config overrides (highest priority)
|
|
171
|
+
const overrides = loadUserPricingOverrides();
|
|
172
|
+
for (const p of overrides) {
|
|
173
|
+
(0, index_1.registerModelProfile)(p);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=pricing-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pricing-loader.js","sourceRoot":"","sources":["../../../src/core/cost/pricing-loader.ts"],"names":[],"mappings":"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"}
|
package/dist/core/index.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export { initSchema } from '../db/schema';
|
|
|
14
14
|
export { Queries, type Conversation, type Message, type TokenUsage, type Checkpoint, type StoredFile, type FileChunk, type PromptAnalyticsRecord, type PromptImprovementRecord, } from '../db/queries';
|
|
15
15
|
export { SessionQueries, type SessionRecord, type InteractionRecord, type AlertRecord, type ModelProfileRecord, type SessionFilters, type AlertFilters, type SpendSummary, type ModelUsage, } from '../db/session-queries';
|
|
16
16
|
export { calculateCost, getModelProfile, registerModelProfile, listModelProfiles, type ModelProfile, type CostEstimate, } from './cost';
|
|
17
|
+
export { initPricing, fetchRemotePricing, cachePricingToDb, loadBundledPricing, loadUserPricingOverrides, } from './cost/pricing-loader';
|
|
17
18
|
export { checkRunawayLoop, trigramJaccard, type Interaction, type Verdict, type CircuitBreakerResult, type CircuitBreakerConfig, } from './circuit-breaker';
|
|
18
19
|
export { analyzeSession, detectDegradation, detectCostAnomaly, detectStaleContext, detectRunawayLoop, type InsightResult, type DegradationScore, } from './insights';
|
|
19
20
|
//# sourceMappingURL=index.d.ts.map
|