opengauge 0.2.3 → 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.
Files changed (40) hide show
  1. package/README.md +100 -72
  2. package/bin/opengauge.js +72 -0
  3. package/dist/cli/stats.d.ts.map +1 -1
  4. package/dist/cli/stats.js +15 -3
  5. package/dist/cli/stats.js.map +1 -1
  6. package/dist/core/cost/pricing-loader.d.ts +35 -0
  7. package/dist/core/cost/pricing-loader.d.ts.map +1 -0
  8. package/dist/core/cost/pricing-loader.js +176 -0
  9. package/dist/core/cost/pricing-loader.js.map +1 -0
  10. package/dist/core/index.d.ts +1 -0
  11. package/dist/core/index.d.ts.map +1 -1
  12. package/dist/core/index.js +8 -1
  13. package/dist/core/index.js.map +1 -1
  14. package/dist/db/index.d.ts.map +1 -1
  15. package/dist/db/index.js +6 -0
  16. package/dist/db/index.js.map +1 -1
  17. package/dist/db/schema.d.ts.map +1 -1
  18. package/dist/db/schema.js +34 -0
  19. package/dist/db/schema.js.map +1 -1
  20. package/dist/db/session-queries.d.ts +2 -2
  21. package/dist/db/session-queries.d.ts.map +1 -1
  22. package/dist/db/session-queries.js +20 -6
  23. package/dist/db/session-queries.js.map +1 -1
  24. package/dist/proxy/server.d.ts.map +1 -1
  25. package/dist/proxy/server.js +6 -2
  26. package/dist/proxy/server.js.map +1 -1
  27. package/dist/test/cost.test.d.ts +2 -0
  28. package/dist/test/cost.test.d.ts.map +1 -0
  29. package/dist/test/cost.test.js +93 -0
  30. package/dist/test/cost.test.js.map +1 -0
  31. package/dist/test/providers.test.d.ts +2 -0
  32. package/dist/test/providers.test.d.ts.map +1 -0
  33. package/dist/test/providers.test.js +99 -0
  34. package/dist/test/providers.test.js.map +1 -0
  35. package/dist/test/proxy-integration.test.d.ts +2 -0
  36. package/dist/test/proxy-integration.test.d.ts.map +1 -0
  37. package/dist/test/proxy-integration.test.js +153 -0
  38. package/dist/test/proxy-integration.test.js.map +1 -0
  39. package/package.json +4 -2
  40. package/pricing.json +39 -0
package/README.md CHANGED
@@ -1,122 +1,150 @@
1
1
  # OpenGauge
2
2
 
3
- A local-first, token-efficient LLM chat interface.
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
- If you just want to use it, you only need one command:
5
+ ## Quick Start
6
6
 
7
7
  ```bash
8
8
  npx opengauge
9
9
  ```
10
10
 
11
- ## What this repo does
11
+ ## What it does
12
12
 
13
- OpenGauge runs a local web chat app with:
14
- - Token optimization (compression + deduplication + checkpoints)
15
- - Context retrieval from conversation history (RAG-style)
16
- - Multiple providers: Anthropic, OpenAI, Gemini, Ollama
17
- - Local storage in SQLite at `~/.opengauge/opengauge.db`
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
- ## Use via npx (recommended)
19
+ ## Three ways to use it
20
20
 
21
- ```bash
22
- npx opengauge
23
- ```
21
+ ### 1. Proxy mode — track any LLM tool
24
22
 
25
- You do not need to install OpenGauge globally first.
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
- This starts a local server and opens the app in your browser.
30
-
31
- Default URL:
32
-
33
- ```txt
34
- http://localhost:3000
25
+ ```bash
26
+ npx opengauge watch
35
27
  ```
36
28
 
37
- If port 3000 is busy:
29
+ Then configure your tool to use the proxy:
38
30
 
39
31
  ```bash
40
- npx opengauge --port 3001
32
+ ANTHROPIC_BASE_URL=http://localhost:4000 claude
33
+ OPENAI_BASE_URL=http://localhost:4000/v1 your-tool
41
34
  ```
42
35
 
43
- ## First-time setup
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
- defaults:
58
- provider: anthropic
38
+ ```bash
39
+ openclaw plugins install @opengauge/openclaw-plugin
40
+ openclaw gateway restart
59
41
  ```
60
42
 
61
- ## Developer setup (from source)
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
- git clone https://github.com/applytorque/opengauge.git
65
- cd opengauge
66
- npm install
67
- npm run build
68
- npm start
48
+ npx opengauge
69
49
  ```
70
50
 
71
- ## Useful commands
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
- npm run build # Compile TypeScript + copy UI assets
75
- npm start # Run CLI entry locally
76
- npm pack --dry-run # Preview npm package contents
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
- ## Competitors and positioning
64
+ Example output:
80
65
 
81
- OpenGauge sits between chat UIs and full LLM observability suites.
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
- ### PromptOps / Observability tools
77
+ ## Configuration
84
78
 
85
- Examples: PromptLayer, Helicone, Langfuse, Humanloop, Arize Phoenix
79
+ Create `~/.opengauge/config.yml`:
86
80
 
87
- - Great at: traces, eval pipelines, team dashboards, observability depth.
88
- - OpenGauge advantage: local-first workflow, in-chat prompt improvement, duplicate-risk + token-efficiency feedback in one loop.
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
- ### Multi-model chat interfaces
93
+ defaults:
94
+ provider: anthropic
91
95
 
92
- Examples: LibreChat, Open WebUI, Chatbot UI, AnythingLLM
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
- - Great at: broad chat UX and plugin ecosystems.
95
- - OpenGauge advantage: prompt quality optimization is first-class (Improve + analytics), not only chat.
109
+ ## Supported models
96
110
 
97
- ### IDE coding assistants
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
- Examples: Continue and other IDE-native AI assistants
118
+ ## Data storage
100
119
 
101
- - Great at: deep coding workflows inside editors.
102
- - OpenGauge advantage: model-agnostic PromptOps for any user (product, ops, research, support), not just coding.
120
+ Everything local at `~/.opengauge/`:
103
121
 
104
- ### Cloud model platforms
122
+ ```
123
+ config.yml — configuration
124
+ opengauge.db — SQLite database (sessions, interactions, alerts)
125
+ error.log — error log for debugging
126
+ ```
105
127
 
106
- Examples: Azure AI Studio, Vertex AI, Bedrock consoles
128
+ ## Packages
107
129
 
108
- - Great at: enterprise governance and managed cloud workflows.
109
- - OpenGauge advantage: fast setup, no cloud lock-in, supports local Ollama and cloud providers together.
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
- ### Why choose OpenGauge
135
+ ## Developer setup
112
136
 
113
- - Improve prompts before send (optional Auto Improve mode)
114
- - Measure quality, duplicates, and token efficiency after send
115
- - Keep data local with SQLite and run quickly with `npx opengauge`
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
- Positioning line:
145
+ ## Docs
118
146
 
119
- > OpenGauge is PromptOps in the loop: improve prompt quality before send, measure impact after send, and reduce token waste continuously.
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)
@@ -1 +1 @@
1
- {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/cli/stats.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,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,CAuL5D"}
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(7),
266
- topSessions: sq.getTopSessionsByCost(5, since),
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
  };
@@ -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":";AAAA;;;;;;;GAOG;;;;;AAaH,gDAoBC;AAKD,4DAqBC;AAKD,gDA6BC;AAKD,4CA0BC;AAKD,8CAiBC;AAMD,kCAoBC;AA1KD,4CAAoB;AACpB,gDAAwB;AACxB,4CAAoB;AACpB,mCAAkE;AAElE,MAAM,kBAAkB,GACtB,2EAA2E,CAAC;AAE9E;;GAEG;AACH,SAAgB,kBAAkB;IAChC,IAAI,CAAC;QACH,wDAAwD;QACxD,MAAM,UAAU,GAAG;YACjB,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,uBAAuB,CAAC,EAAI,uBAAuB;YAC3E,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAAO,WAAW;SAChE,CAAC;QAEF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC7D,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC/B,OAAO,IAAI,CAAC,MAAwB,CAAC;gBACvC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,kCAAkC;IACpC,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,SAAgB,wBAAwB;IACtC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;QACvE,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,OAAO,EAAE,CAAC;QAE1C,qCAAqC;QACrC,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAQ,CAAC;QAEtE,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;YAAE,OAAO,EAAE,CAAC;QAElE,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,CAAC;YACzC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC;YACvE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC;YAC1E,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,cAAc;SAC3D,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,kBAAkB;IACtC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,SAAS,GAAG,kBAAkB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACxE,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,GAAQ,EAAE,EAAE;YAC7E,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;gBAC3B,OAAO,CAAC,EAAE,CAAC,CAAC;gBACZ,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACtD,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACjB,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;oBACjE,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC/B,OAAO,CAAC,IAAI,CAAC,MAAwB,CAAC,CAAC;oBACzC,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,EAAE,CAAC,CAAC;oBACd,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,CAAC,EAAE,CAAC,CAAC;gBACd,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAC9B,EAAO,EACP,QAAwB;IAExB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;;;;KASvB,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YAC7B,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,aAAa,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;YACxH,CAAC;QACH,CAAC,CAAC,CAAC;QACH,EAAE,EAAE,CAAC;IACP,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,EAAO;IACvC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,GAAG,EAGzD,CAAC;QAEH,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;YACvF,eAAe,EAAE,CAAC,CAAC,cAAc;YACjC,gBAAgB,EAAE,CAAC,CAAC,eAAe;YACnC,aAAa,EAAE,CAAC,CAAC,WAAW,IAAI,SAAS;SAC1C,CAAC,CAAC,CAAC;IACN,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,WAAW,CAAC,EAAQ;IAClC,gEAAgE;IAChE,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;IACrC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAA,4BAAoB,EAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED,qDAAqD;IACrD,IAAI,EAAE,EAAE,CAAC;QACP,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;QACrC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,IAAA,4BAAoB,EAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,8CAA8C;IAC9C,MAAM,SAAS,GAAG,wBAAwB,EAAE,CAAC;IAC7C,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,IAAA,4BAAoB,EAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC"}
@@ -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