@jigyasudham/veto 1.2.12 → 1.2.15

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 CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  > **50 agents. 45 tools. 3 AIs. Self-learning. Zero extra cost.**
4
4
 
5
- An MCP server that runs locally on your machine, plugs into Claude Code, Codex CLI, and Gemini CLI using your existing subscriptions — giving every AI a council of specialist agents, persistent cross-platform memory, a self-learning router, live usage tracking, CI/CD pipeline gates, workspace discovery, live documentation fetching, auto session save, and the ability to say no to bad decisions.
5
+ An MCP server that runs locally on your machine, plugs into Claude Code, Codex CLI, and Gemini CLI using your existing subscriptions — giving every AI a council of specialist agents, persistent cross-platform memory, a self-learning router that improves automatically from every tool call, live usage tracking, CI/CD pipeline gates, workspace discovery, live documentation fetching, auto session save, and the ability to say no to bad decisions.
6
6
 
7
7
  ---
8
8
 
@@ -356,20 +356,44 @@ veto_watch_poll { watch_id: "a3f2b1c0" }
356
356
 
357
357
  ## Self-Learning Router
358
358
 
359
- The router gets smarter as you use it:
359
+ The router improves automatically no manual steps needed.
360
+
361
+ Every tool that runs an agent auto-records a `learning_data` row when it completes. After any normal working session, `veto_learning_stats` will show live data and `veto_learning_apply` will start producing meaningful threshold adjustments after ~20 tool calls.
362
+
363
+ **What auto-records (all of these, without any extra call):**
364
+
365
+ | Tool | Quality signal used |
366
+ |---|---|
367
+ | `veto_council_debate` | Verdict: GREEN → 90, YELLOW → 60, RED → 20, DEADLOCK → 50 |
368
+ | `veto_workflow` | Per-step confidence score |
369
+ | `veto_execute_parallel` | Per-task confidence score |
370
+ | `veto_route_task` | Routing registered (tier distribution) |
371
+ | `veto_agent_plan` | Agent confidence |
372
+ | `veto_code_review` | Analysis score |
373
+ | `veto_security_scan` | Analysis score |
374
+ | `veto_secrets_scan` | Clean = 100, findings found = score |
375
+ | `veto_diff_review` | Average of code + security scores |
376
+ | `veto_ci_gate` | Average of code + security scores |
377
+ | `veto_pr_review` | Average of code + security scores |
378
+ | `veto_explain` | Agent confidence |
379
+ | `veto_task_parse` | Planner confidence |
380
+ | `veto_summarize` | Agent confidence |
381
+
382
+ You can still record manually for custom signals:
360
383
 
361
384
  ```bash
362
- # After completing a task:
363
385
  veto_record_outcome {
364
386
  task_type: "fix-auth-bug",
365
387
  complexity: 45,
366
388
  model_tier: 2,
367
389
  output_quality: 88,
368
390
  agent: "debugger",
369
- file_ext: ".ts" # ← teaches the router which agent works best for .ts files
391
+ file_ext: ".ts" # ← teaches which agent works best for .ts files
370
392
  }
393
+ ```
371
394
 
372
- # After 20+ outcomes:
395
+ ```bash
396
+ # After 20+ outcomes (auto or manual):
373
397
  veto_learning_apply # adjusts tier thresholds from your actual data
374
398
 
375
399
  # Next route_task call:
@@ -455,11 +479,24 @@ Machine B → veto_memory_import → veto_session_restore
455
479
  | 14 — Observability + Usage Stats + Audit Log | ✅ Complete | v1.2.0 |
456
480
  | 15 — CI/CD Gates + GitHub PR Review | ✅ Complete | v1.2.5 |
457
481
  | 16 — Workspace Discovery + Summarization + Doctor | ✅ Complete | v1.2.8 |
482
+ | 17 — VS Code Extension + Token Budget + Risk Annotations | ✅ Complete | v1.2.14 |
483
+ | 18 — Extension Upgrades (status bar, PR review, Learning Stats panel, secrets trigger) | ✅ Complete | veto-vscode v0.6.0 |
484
+ | 19 — Auto-Learning Hooks (every agent tool auto-records outcomes) | ✅ Complete | v1.2.15 |
458
485
 
459
486
  ---
460
487
 
461
488
  ## Changelog
462
489
 
490
+ ### v1.2.15
491
+ - **feat:** Auto-learning hooks — `learning_data` now fills automatically from every agent-producing tool. No manual `veto_record_outcome` calls needed. Hooks fire on `veto_council_debate` (verdict → quality score), `veto_workflow` (per-step confidence), `veto_execute_parallel` (per-task confidence), `veto_route_task` (tier distribution), plus `veto_agent_plan`, `veto_code_review`, `veto_security_scan`, `veto_secrets_scan`, `veto_diff_review`, `veto_ci_gate`, `veto_pr_review`, `veto_explain`, `veto_task_parse`, and `veto_summarize`. After any working session, `veto_learning_stats` shows live data and `veto_learning_apply` starts producing real threshold adjustments after ~20 calls.
492
+
493
+ ### v1.2.14
494
+ - **feat:** Token budget per operation — `max_tokens` optional param on `veto_council_debate` and `veto_execute_parallel`; warns if estimated output exceeds budget; all calls logged to new `usage_log` table; `veto_usage_status` now includes `operation_budget_log`
495
+ - **feat:** MCP tool risk annotations — all 45 tools annotated with `readOnlyHint`, `destructiveHint`, `openWorldHint` using the official MCP SDK annotation fields; 23 read-only, 3 destructive, 2 open-world
496
+
497
+ ### v1.2.13
498
+ - **feat:** Real token tracking for Rate Status — `tokens_today` and `budget_used_pct` per platform; `veto_usage_status` accepts `set_budget` to configure daily token limits (defaults: Claude 500K, Gemini 1M, Codex 200K)
499
+
463
500
  ### v1.2.12
464
501
  - **feat:** `veto_pr_review` — pass a GitHub PR URL, Veto fetches the diff via GitHub API and runs the full triple-scan (code review + security + secrets). Returns a structured verdict and ready-to-post GitHub review comment. Set `GITHUB_TOKEN` for private repos.
465
502
 
@@ -0,0 +1,11 @@
1
+ export type VetoConfig = {
2
+ dailyTokenBudget: {
3
+ claude: number;
4
+ gemini: number;
5
+ codex: number;
6
+ };
7
+ };
8
+ export declare const DEFAULT_BUDGETS: VetoConfig['dailyTokenBudget'];
9
+ export declare function getConfig(): VetoConfig;
10
+ export declare function setConfig(partial: Partial<VetoConfig>): void;
11
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/memory/config.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,UAAU,GAAG;IACvB,gBAAgB,EAAE;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH,CAAC;AAIF,eAAO,MAAM,eAAe,EAAE,UAAU,CAAC,kBAAkB,CAI1D,CAAC;AAEF,wBAAgB,SAAS,IAAI,UAAU,CAgBtC;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAW5D"}
@@ -0,0 +1,40 @@
1
+ import { join } from 'node:path';
2
+ import { homedir } from 'node:os';
3
+ import { readFileSync, writeFileSync, existsSync } from 'node:fs';
4
+ const CONFIG_PATH = join(homedir(), '.veto', 'config.json');
5
+ export const DEFAULT_BUDGETS = {
6
+ claude: 500_000,
7
+ gemini: 1_000_000,
8
+ codex: 200_000,
9
+ };
10
+ export function getConfig() {
11
+ if (!existsSync(CONFIG_PATH)) {
12
+ return { dailyTokenBudget: { ...DEFAULT_BUDGETS } };
13
+ }
14
+ try {
15
+ const raw = JSON.parse(readFileSync(CONFIG_PATH, 'utf8'));
16
+ return {
17
+ dailyTokenBudget: {
18
+ claude: raw.dailyTokenBudget?.claude ?? DEFAULT_BUDGETS.claude,
19
+ gemini: raw.dailyTokenBudget?.gemini ?? DEFAULT_BUDGETS.gemini,
20
+ codex: raw.dailyTokenBudget?.codex ?? DEFAULT_BUDGETS.codex,
21
+ },
22
+ };
23
+ }
24
+ catch {
25
+ return { dailyTokenBudget: { ...DEFAULT_BUDGETS } };
26
+ }
27
+ }
28
+ export function setConfig(partial) {
29
+ const current = getConfig();
30
+ const next = {
31
+ ...current,
32
+ ...partial,
33
+ dailyTokenBudget: {
34
+ ...current.dailyTokenBudget,
35
+ ...(partial.dailyTokenBudget ?? {}),
36
+ },
37
+ };
38
+ writeFileSync(CONFIG_PATH, JSON.stringify(next, null, 2), 'utf8');
39
+ }
40
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/memory/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAUlE,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;AAE5D,MAAM,CAAC,MAAM,eAAe,GAAmC;IAC7D,MAAM,EAAG,OAAO;IAChB,MAAM,EAAE,SAAS;IACjB,KAAK,EAAI,OAAO;CACjB,CAAC;AAEF,MAAM,UAAU,SAAS;IACvB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,gBAAgB,EAAE,EAAE,GAAG,eAAe,EAAE,EAAE,CAAC;IACtD,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAwB,CAAC;QACjF,OAAO;YACL,gBAAgB,EAAE;gBAChB,MAAM,EAAG,GAAG,CAAC,gBAAgB,EAAE,MAAM,IAAK,eAAe,CAAC,MAAM;gBAChE,MAAM,EAAG,GAAG,CAAC,gBAAgB,EAAE,MAAM,IAAK,eAAe,CAAC,MAAM;gBAChE,KAAK,EAAI,GAAG,CAAC,gBAAgB,EAAE,KAAK,IAAM,eAAe,CAAC,KAAK;aAChE;SACF,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,gBAAgB,EAAE,EAAE,GAAG,eAAe,EAAE,EAAE,CAAC;IACtD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,OAA4B;IACpD,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAe;QACvB,GAAG,OAAO;QACV,GAAG,OAAO;QACV,gBAAgB,EAAE;YAChB,GAAG,OAAO,CAAC,gBAAgB;YAC3B,GAAG,CAAC,OAAO,CAAC,gBAAgB,IAAI,EAAE,CAAC;SACpC;KACF,CAAC;IACF,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACpE,CAAC"}
@@ -141,4 +141,26 @@ export type HealthStats = {
141
141
  avg_council_latency_ms: number | null;
142
142
  };
143
143
  export declare function getHealthStats(): HealthStats;
144
+ export type UsageLogRow = {
145
+ id: string;
146
+ tool_name: string;
147
+ session_id: string | null;
148
+ max_tokens: number;
149
+ estimated_tokens: number;
150
+ exceeded: number;
151
+ created_at: string;
152
+ };
153
+ export declare function logUsage(entry: {
154
+ tool_name: string;
155
+ session_id?: string;
156
+ max_tokens: number;
157
+ output: string;
158
+ }): {
159
+ exceeded: boolean;
160
+ estimated_tokens: number;
161
+ };
162
+ export declare function getUsageLogs(opts?: {
163
+ limit?: number;
164
+ tool_name?: string;
165
+ }): UsageLogRow[];
144
166
  //# sourceMappingURL=local.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/memory/local.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/memory/local.ts"],"names":[],"mappings":"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"}
@@ -37,8 +37,31 @@ export function getDb() {
37
37
  migrateCouncilColumns(_db);
38
38
  migrateSessionColumns(_db);
39
39
  migrateCouncilDuration(_db);
40
+ migrateRateUsageTokens(_db);
41
+ migrateUsageLog(_db);
40
42
  return _db;
41
43
  }
44
+ // Adds token_count column to rate_usage if it doesn't exist (v1.2.13 migration)
45
+ function migrateRateUsageTokens(db) {
46
+ const cols = db.prepare('PRAGMA table_info(rate_usage)').all();
47
+ const names = new Set(cols.map(c => c.name));
48
+ if (!names.has('token_count'))
49
+ db.exec('ALTER TABLE rate_usage ADD COLUMN token_count INTEGER DEFAULT 0');
50
+ }
51
+ // Creates usage_log table if it doesn't exist (v1.2.14 migration)
52
+ function migrateUsageLog(db) {
53
+ db.exec(`
54
+ CREATE TABLE IF NOT EXISTS usage_log (
55
+ id TEXT PRIMARY KEY,
56
+ tool_name TEXT NOT NULL,
57
+ session_id TEXT,
58
+ max_tokens INTEGER NOT NULL,
59
+ estimated_tokens INTEGER NOT NULL,
60
+ exceeded INTEGER NOT NULL DEFAULT 0,
61
+ created_at TEXT NOT NULL DEFAULT (datetime('now'))
62
+ )
63
+ `);
64
+ }
42
65
  // Adds duration_ms column to council_outcomes if it doesn't exist (v1.2.3 migration)
43
66
  function migrateCouncilDuration(db) {
44
67
  const cols = db.prepare('PRAGMA table_info(council_outcomes)').all();
@@ -422,4 +445,20 @@ export function getHealthStats() {
422
445
  avg_council_latency_ms,
423
446
  };
424
447
  }
448
+ export function logUsage(entry) {
449
+ const db = getDb();
450
+ const estimated_tokens = Math.ceil(entry.output.length / 4);
451
+ const exceeded = estimated_tokens > entry.max_tokens ? 1 : 0;
452
+ db.prepare(`INSERT INTO usage_log (id, tool_name, session_id, max_tokens, estimated_tokens, exceeded, created_at)
453
+ VALUES (?, ?, ?, ?, ?, ?, datetime('now'))`).run(randomUUID(), entry.tool_name, entry.session_id ?? null, entry.max_tokens, estimated_tokens, exceeded);
454
+ return { exceeded: exceeded === 1, estimated_tokens };
455
+ }
456
+ export function getUsageLogs(opts = {}) {
457
+ const db = getDb();
458
+ const limit = opts.limit ?? 20;
459
+ if (opts.tool_name) {
460
+ return db.prepare('SELECT * FROM usage_log WHERE tool_name = ? ORDER BY created_at DESC LIMIT ?').all(opts.tool_name, limit);
461
+ }
462
+ return db.prepare('SELECT * FROM usage_log ORDER BY created_at DESC LIMIT ?').all(limit);
463
+ }
425
464
  //# sourceMappingURL=local.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"local.js","sourceRoot":"","sources":["../../src/memory/local.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local.js","sourceRoot":"","sources":["../../src/memory/local.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export declare const CREATE_TABLES = "\n CREATE TABLE IF NOT EXISTS sessions (\n id TEXT PRIMARY KEY,\n started_at TEXT NOT NULL,\n ended_at TEXT,\n platform TEXT NOT NULL DEFAULT 'claude',\n active_client TEXT,\n last_resumed_at TEXT,\n connection_type TEXT NOT NULL DEFAULT 'subscription',\n project_dir TEXT,\n summary TEXT,\n context TEXT,\n task_state TEXT,\n token_count INTEGER DEFAULT 0,\n created_at TEXT NOT NULL DEFAULT (datetime('now'))\n );\n\n CREATE TABLE IF NOT EXISTS docs_cache (\n id TEXT PRIMARY KEY,\n package_name TEXT NOT NULL,\n ecosystem TEXT NOT NULL,\n version TEXT NOT NULL,\n content TEXT NOT NULL,\n fetched_at TEXT NOT NULL,\n UNIQUE(package_name, ecosystem, version)\n );\n\n CREATE TABLE IF NOT EXISTS task_plans (\n id TEXT PRIMARY KEY,\n description_hash TEXT NOT NULL,\n plan_json TEXT NOT NULL,\n project_dir TEXT,\n created_at TEXT NOT NULL DEFAULT (datetime('now'))\n );\n\n CREATE TABLE IF NOT EXISTS usage_events (\n id TEXT PRIMARY KEY,\n session_id TEXT,\n platform TEXT NOT NULL,\n connection_type TEXT NOT NULL DEFAULT 'subscription',\n tokens INTEGER DEFAULT 0,\n event_type TEXT NOT NULL DEFAULT 'session_save',\n recorded_at TEXT NOT NULL DEFAULT (datetime('now'))\n );\n\n CREATE TABLE IF NOT EXISTS decisions (\n id TEXT PRIMARY KEY,\n session_id TEXT NOT NULL,\n made_at TEXT NOT NULL,\n decision TEXT NOT NULL,\n rationale TEXT,\n council_verdict TEXT,\n files_affected TEXT,\n overridden INTEGER DEFAULT 0,\n FOREIGN KEY (session_id) REFERENCES sessions(id)\n );\n\n CREATE TABLE IF NOT EXISTS files_modified (\n id TEXT PRIMARY KEY,\n session_id TEXT NOT NULL,\n file_path TEXT NOT NULL,\n operation TEXT NOT NULL,\n modified_at TEXT NOT NULL,\n FOREIGN KEY (session_id) REFERENCES sessions(id)\n );\n\n CREATE TABLE IF NOT EXISTS council_outcomes (\n id TEXT PRIMARY KEY,\n session_id TEXT,\n task TEXT NOT NULL,\n verdict TEXT NOT NULL,\n lead_dev TEXT,\n pm TEXT,\n architect TEXT,\n ux TEXT,\n devil TEXT,\n legal TEXT,\n security TEXT,\n recommended TEXT,\n debated_at TEXT NOT NULL,\n duration_ms INTEGER DEFAULT 0\n );\n\n CREATE TABLE IF NOT EXISTS learning_data (\n id TEXT PRIMARY KEY,\n task_type TEXT NOT NULL,\n complexity INTEGER NOT NULL,\n model_tier INTEGER NOT NULL,\n output_quality INTEGER,\n tokens_used INTEGER,\n agent TEXT,\n recorded_at TEXT NOT NULL DEFAULT (datetime('now'))\n );\n\n CREATE TABLE IF NOT EXISTS patterns (\n id TEXT PRIMARY KEY,\n pattern_key TEXT NOT NULL UNIQUE,\n pattern_val TEXT NOT NULL,\n confidence REAL DEFAULT 1.0,\n seen_count INTEGER DEFAULT 1,\n updated_at TEXT NOT NULL DEFAULT (datetime('now'))\n );\n\n CREATE TABLE IF NOT EXISTS rate_usage (\n id TEXT PRIMARY KEY,\n platform TEXT NOT NULL,\n date_key TEXT NOT NULL,\n request_count INTEGER DEFAULT 0,\n updated_at TEXT NOT NULL DEFAULT (datetime('now')),\n UNIQUE(platform, date_key)\n );\n\n CREATE TABLE IF NOT EXISTS knowledge_base (\n id TEXT PRIMARY KEY,\n type TEXT NOT NULL DEFAULT 'solution',\n title TEXT NOT NULL,\n content TEXT NOT NULL,\n tags TEXT,\n project_dir TEXT,\n session_id TEXT,\n relevance REAL DEFAULT 1.0,\n accessed_count INTEGER DEFAULT 0,\n created_at TEXT NOT NULL DEFAULT (datetime('now')),\n updated_at TEXT NOT NULL DEFAULT (datetime('now'))\n );\n\n CREATE TABLE IF NOT EXISTS project_map (\n id TEXT PRIMARY KEY,\n project_dir TEXT NOT NULL UNIQUE,\n structure TEXT NOT NULL,\n key_modules TEXT,\n tech_stack TEXT,\n updated_at TEXT NOT NULL DEFAULT (datetime('now'))\n );\n\n CREATE INDEX IF NOT EXISTS idx_sessions_platform ON sessions(platform);\n CREATE INDEX IF NOT EXISTS idx_decisions_session ON decisions(session_id);\n CREATE INDEX IF NOT EXISTS idx_files_session ON files_modified(session_id);\n CREATE INDEX IF NOT EXISTS idx_learning_task_type ON learning_data(task_type);\n CREATE INDEX IF NOT EXISTS idx_patterns_key ON patterns(pattern_key);\n CREATE INDEX IF NOT EXISTS idx_rate_usage_platform ON rate_usage(platform, date_key);\n CREATE INDEX IF NOT EXISTS idx_knowledge_type ON knowledge_base(type);\n CREATE INDEX IF NOT EXISTS idx_knowledge_project ON knowledge_base(project_dir);\n CREATE INDEX IF NOT EXISTS idx_project_map_dir ON project_map(project_dir);\n CREATE INDEX IF NOT EXISTS idx_docs_cache_pkg ON docs_cache(package_name, ecosystem);\n CREATE INDEX IF NOT EXISTS idx_usage_events_session ON usage_events(session_id);\n CREATE INDEX IF NOT EXISTS idx_usage_events_date ON usage_events(recorded_at);\n";
1
+ export declare const CREATE_TABLES = "\n CREATE TABLE IF NOT EXISTS sessions (\n id TEXT PRIMARY KEY,\n started_at TEXT NOT NULL,\n ended_at TEXT,\n platform TEXT NOT NULL DEFAULT 'claude',\n active_client TEXT,\n last_resumed_at TEXT,\n connection_type TEXT NOT NULL DEFAULT 'subscription',\n project_dir TEXT,\n summary TEXT,\n context TEXT,\n task_state TEXT,\n token_count INTEGER DEFAULT 0,\n created_at TEXT NOT NULL DEFAULT (datetime('now'))\n );\n\n CREATE TABLE IF NOT EXISTS docs_cache (\n id TEXT PRIMARY KEY,\n package_name TEXT NOT NULL,\n ecosystem TEXT NOT NULL,\n version TEXT NOT NULL,\n content TEXT NOT NULL,\n fetched_at TEXT NOT NULL,\n UNIQUE(package_name, ecosystem, version)\n );\n\n CREATE TABLE IF NOT EXISTS task_plans (\n id TEXT PRIMARY KEY,\n description_hash TEXT NOT NULL,\n plan_json TEXT NOT NULL,\n project_dir TEXT,\n created_at TEXT NOT NULL DEFAULT (datetime('now'))\n );\n\n CREATE TABLE IF NOT EXISTS usage_events (\n id TEXT PRIMARY KEY,\n session_id TEXT,\n platform TEXT NOT NULL,\n connection_type TEXT NOT NULL DEFAULT 'subscription',\n tokens INTEGER DEFAULT 0,\n event_type TEXT NOT NULL DEFAULT 'session_save',\n recorded_at TEXT NOT NULL DEFAULT (datetime('now'))\n );\n\n CREATE TABLE IF NOT EXISTS decisions (\n id TEXT PRIMARY KEY,\n session_id TEXT NOT NULL,\n made_at TEXT NOT NULL,\n decision TEXT NOT NULL,\n rationale TEXT,\n council_verdict TEXT,\n files_affected TEXT,\n overridden INTEGER DEFAULT 0,\n FOREIGN KEY (session_id) REFERENCES sessions(id)\n );\n\n CREATE TABLE IF NOT EXISTS files_modified (\n id TEXT PRIMARY KEY,\n session_id TEXT NOT NULL,\n file_path TEXT NOT NULL,\n operation TEXT NOT NULL,\n modified_at TEXT NOT NULL,\n FOREIGN KEY (session_id) REFERENCES sessions(id)\n );\n\n CREATE TABLE IF NOT EXISTS council_outcomes (\n id TEXT PRIMARY KEY,\n session_id TEXT,\n task TEXT NOT NULL,\n verdict TEXT NOT NULL,\n lead_dev TEXT,\n pm TEXT,\n architect TEXT,\n ux TEXT,\n devil TEXT,\n legal TEXT,\n security TEXT,\n recommended TEXT,\n debated_at TEXT NOT NULL,\n duration_ms INTEGER DEFAULT 0\n );\n\n CREATE TABLE IF NOT EXISTS learning_data (\n id TEXT PRIMARY KEY,\n task_type TEXT NOT NULL,\n complexity INTEGER NOT NULL,\n model_tier INTEGER NOT NULL,\n output_quality INTEGER,\n tokens_used INTEGER,\n agent TEXT,\n recorded_at TEXT NOT NULL DEFAULT (datetime('now'))\n );\n\n CREATE TABLE IF NOT EXISTS patterns (\n id TEXT PRIMARY KEY,\n pattern_key TEXT NOT NULL UNIQUE,\n pattern_val TEXT NOT NULL,\n confidence REAL DEFAULT 1.0,\n seen_count INTEGER DEFAULT 1,\n updated_at TEXT NOT NULL DEFAULT (datetime('now'))\n );\n\n CREATE TABLE IF NOT EXISTS rate_usage (\n id TEXT PRIMARY KEY,\n platform TEXT NOT NULL,\n date_key TEXT NOT NULL,\n request_count INTEGER DEFAULT 0,\n updated_at TEXT NOT NULL DEFAULT (datetime('now')),\n UNIQUE(platform, date_key)\n );\n\n CREATE TABLE IF NOT EXISTS usage_log (\n id TEXT PRIMARY KEY,\n tool_name TEXT NOT NULL,\n session_id TEXT,\n max_tokens INTEGER NOT NULL,\n estimated_tokens INTEGER NOT NULL,\n exceeded INTEGER NOT NULL DEFAULT 0,\n created_at TEXT NOT NULL DEFAULT (datetime('now'))\n );\n\n CREATE TABLE IF NOT EXISTS knowledge_base (\n id TEXT PRIMARY KEY,\n type TEXT NOT NULL DEFAULT 'solution',\n title TEXT NOT NULL,\n content TEXT NOT NULL,\n tags TEXT,\n project_dir TEXT,\n session_id TEXT,\n relevance REAL DEFAULT 1.0,\n accessed_count INTEGER DEFAULT 0,\n created_at TEXT NOT NULL DEFAULT (datetime('now')),\n updated_at TEXT NOT NULL DEFAULT (datetime('now'))\n );\n\n CREATE TABLE IF NOT EXISTS project_map (\n id TEXT PRIMARY KEY,\n project_dir TEXT NOT NULL UNIQUE,\n structure TEXT NOT NULL,\n key_modules TEXT,\n tech_stack TEXT,\n updated_at TEXT NOT NULL DEFAULT (datetime('now'))\n );\n\n CREATE INDEX IF NOT EXISTS idx_sessions_platform ON sessions(platform);\n CREATE INDEX IF NOT EXISTS idx_decisions_session ON decisions(session_id);\n CREATE INDEX IF NOT EXISTS idx_files_session ON files_modified(session_id);\n CREATE INDEX IF NOT EXISTS idx_learning_task_type ON learning_data(task_type);\n CREATE INDEX IF NOT EXISTS idx_patterns_key ON patterns(pattern_key);\n CREATE INDEX IF NOT EXISTS idx_rate_usage_platform ON rate_usage(platform, date_key);\n CREATE INDEX IF NOT EXISTS idx_knowledge_type ON knowledge_base(type);\n CREATE INDEX IF NOT EXISTS idx_knowledge_project ON knowledge_base(project_dir);\n CREATE INDEX IF NOT EXISTS idx_project_map_dir ON project_map(project_dir);\n CREATE INDEX IF NOT EXISTS idx_docs_cache_pkg ON docs_cache(package_name, ecosystem);\n CREATE INDEX IF NOT EXISTS idx_usage_events_session ON usage_events(session_id);\n CREATE INDEX IF NOT EXISTS idx_usage_events_date ON usage_events(recorded_at);\n";
2
2
  export type SessionRow = {
3
3
  id: string;
4
4
  started_at: string;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/memory/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/memory/schema.ts"],"names":[],"mappings":"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"}
@@ -112,6 +112,16 @@ export const CREATE_TABLES = `
112
112
  UNIQUE(platform, date_key)
113
113
  );
114
114
 
115
+ CREATE TABLE IF NOT EXISTS usage_log (
116
+ id TEXT PRIMARY KEY,
117
+ tool_name TEXT NOT NULL,
118
+ session_id TEXT,
119
+ max_tokens INTEGER NOT NULL,
120
+ estimated_tokens INTEGER NOT NULL,
121
+ exceeded INTEGER NOT NULL DEFAULT 0,
122
+ created_at TEXT NOT NULL DEFAULT (datetime('now'))
123
+ );
124
+
115
125
  CREATE TABLE IF NOT EXISTS knowledge_base (
116
126
  id TEXT PRIMARY KEY,
117
127
  type TEXT NOT NULL DEFAULT 'solution',
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/memory/schema.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,wDAAwD;AAExD,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmJ5B,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/memory/schema.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,wDAAwD;AAExD,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6J5B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { getRateStatus, trackRequest } from './rate-monitor.js';
1
+ import { getRateStatus, trackRequest, trackTokens } from './rate-monitor.js';
2
2
  import { estimateTokens } from './context-compressor.js';
3
3
  import { recordOutcome, getLearningStats, getLearnedThresholds, applyLearnedThresholds, getAgentPerformanceStats, getTaskTypeBreakdown, getCouncilInsights, getRecommendedAgent } from './learning-updater.js';
4
4
  export type { ComplexityResult, ComplexityFactors } from './complexity-scorer.js';
@@ -6,7 +6,7 @@ export type { AgentType, Tier, ModelRecommendation } from './model-selector.js';
6
6
  export type { Platform, RateLimitEntry, RateStatus } from './rate-monitor.js';
7
7
  export type { CompressionStrategy, CompressionResult } from './context-compressor.js';
8
8
  export type { LearningStats, LearnedThresholds, AgentPerformanceStat, TaskTypeBreakdown, CouncilInsight } from './learning-updater.js';
9
- export { estimateTokens, getRateStatus, trackRequest, recordOutcome, getLearningStats, getLearnedThresholds, applyLearnedThresholds, getAgentPerformanceStats, getTaskTypeBreakdown, getCouncilInsights, getRecommendedAgent };
9
+ export { estimateTokens, getRateStatus, trackRequest, trackTokens, recordOutcome, getLearningStats, getLearnedThresholds, applyLearnedThresholds, getAgentPerformanceStats, getTaskTypeBreakdown, getCouncilInsights, getRecommendedAgent };
10
10
  export type RouteOptions = {
11
11
  agentType?: import('./model-selector.js').AgentType;
12
12
  filesAffected?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAoB,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAmB,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE/M,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAClF,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAChF,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC9E,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACtF,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvI,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,CAAC;AAE/N,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,CAAC,EAAE,OAAO,qBAAqB,EAAE,SAAS,CAAC;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,iBAAiB,CAAC,EAAE,OAAO,mBAAmB,EAAE,QAAQ,CAAC;CAC1D,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,UAAU,EAAE,OAAO,wBAAwB,EAAE,gBAAgB,CAAC;IAC9D,KAAK,EAAE,OAAO,qBAAqB,EAAE,mBAAmB,CAAC;IACzD,WAAW,EAAE,OAAO,mBAAmB,EAAE,UAAU,CAAC;IACpD,YAAY,CAAC,EAAE,OAAO,yBAAyB,EAAE,iBAAiB,CAAC;IACnE,kBAAkB,EAAE,OAAO,mBAAmB,EAAE,QAAQ,CAAC;IACzD,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,WAAW,CA0B/E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAoB,MAAM,mBAAmB,CAAC;AAC/F,OAAO,EAAmB,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE/M,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAClF,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAChF,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC9E,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACtF,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvI,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,CAAC;AAE5O,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,CAAC,EAAE,OAAO,qBAAqB,EAAE,SAAS,CAAC;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,iBAAiB,CAAC,EAAE,OAAO,mBAAmB,EAAE,QAAQ,CAAC;CAC1D,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,UAAU,EAAE,OAAO,wBAAwB,EAAE,gBAAgB,CAAC;IAC9D,KAAK,EAAE,OAAO,qBAAqB,EAAE,mBAAmB,CAAC;IACzD,WAAW,EAAE,OAAO,mBAAmB,EAAE,UAAU,CAAC;IACpD,YAAY,CAAC,EAAE,OAAO,yBAAyB,EAAE,iBAAiB,CAAC;IACnE,kBAAkB,EAAE,OAAO,mBAAmB,EAAE,QAAQ,CAAC;IACzD,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,WAAW,CA0B/E"}
@@ -1,10 +1,10 @@
1
1
  // Router entry point — composes all sub-modules into a single routeTask() call
2
2
  import { scoreComplexity } from './complexity-scorer.js';
3
3
  import { selectModel } from './model-selector.js';
4
- import { getRateStatus, trackRequest, getRoutingAdvice } from './rate-monitor.js';
4
+ import { getRateStatus, trackRequest, trackTokens, getRoutingAdvice } from './rate-monitor.js';
5
5
  import { compressContext, estimateTokens } from './context-compressor.js';
6
6
  import { recordOutcome, getLearningStats, getLearnedThresholds, applyLearnedThresholds, getAgentPerformanceStats, getTaskTypeBreakdown, getCouncilInsights, getRecommendedAgent } from './learning-updater.js';
7
- export { estimateTokens, getRateStatus, trackRequest, recordOutcome, getLearningStats, getLearnedThresholds, applyLearnedThresholds, getAgentPerformanceStats, getTaskTypeBreakdown, getCouncilInsights, getRecommendedAgent };
7
+ export { estimateTokens, getRateStatus, trackRequest, trackTokens, recordOutcome, getLearningStats, getLearnedThresholds, applyLearnedThresholds, getAgentPerformanceStats, getTaskTypeBreakdown, getCouncilInsights, getRecommendedAgent };
8
8
  export function routeTask(task, options = {}) {
9
9
  const learned = getLearnedThresholds();
10
10
  const complexity = scoreComplexity(task, options.filesAffected, options.forceCouncil, learned.source === 'learned' ? learned : undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAE/E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAO/M,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,CAAC;AAoB/N,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,UAAwB,EAAE;IAChE,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC1I,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC;IAE5E,MAAM,SAAS,GAAG,OAAO,CAAC,iBAAiB,IAAI,QAAQ,CAAC;IACxD,qFAAqF;IACrF,MAAM,kBAAkB,GACtB,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAE7D,YAAY,CAAC,kBAAkB,CAAC,CAAC;IAEjC,MAAM,WAAW,GAAG,aAAa,EAAE,CAAC;IAEpC,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO;QAClC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;QAC/D,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO;QACL,UAAU;QACV,KAAK;QACL,WAAW;QACX,YAAY;QACZ,kBAAkB;QAClB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAE/E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAO/M,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,CAAC;AAoB5O,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,UAAwB,EAAE;IAChE,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC1I,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC;IAE5E,MAAM,SAAS,GAAG,OAAO,CAAC,iBAAiB,IAAI,QAAQ,CAAC;IACxD,qFAAqF;IACrF,MAAM,kBAAkB,GACtB,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAE7D,YAAY,CAAC,kBAAkB,CAAC,CAAC;IAEjC,MAAM,WAAW,GAAG,aAAa,EAAE,CAAC;IAEpC,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO;QAClC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;QAC/D,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO;QACL,UAAU;QACV,KAAK;QACL,WAAW;QACX,YAAY;QACZ,kBAAkB;QAClB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;AACJ,CAAC"}
@@ -2,7 +2,8 @@ export type Platform = 'claude' | 'gemini' | 'codex';
2
2
  export type RateLimitEntry = {
3
3
  platform: Platform;
4
4
  requests_today: number;
5
- daily_limit: number;
5
+ tokens_today: number;
6
+ daily_token_budget: number;
6
7
  used_percent: number;
7
8
  resets_at: string;
8
9
  status: 'normal' | 'warning' | 'critical';
@@ -14,6 +15,7 @@ export type RateStatus = {
14
15
  updated_at: string;
15
16
  };
16
17
  export declare function trackRequest(platform: Platform, count?: number): void;
18
+ export declare function trackTokens(platform: Platform, tokens: number): void;
17
19
  export declare function getRateStatus(): RateStatus;
18
20
  export declare function getRoutingAdvice(preferred: Platform): Platform;
19
21
  //# sourceMappingURL=rate-monitor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rate-monitor.d.ts","sourceRoot":"","sources":["../../src/router/rate-monitor.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAErD,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,cAAc,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAmBF,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,SAAI,GAAG,IAAI,CAiBhE;AAqBD,wBAAgB,aAAa,IAAI,UAAU,CAO1C;AAGD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAY9D"}
1
+ {"version":3,"file":"rate-monitor.d.ts","sourceRoot":"","sources":["../../src/router/rate-monitor.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAErD,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,cAAc,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAaF,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,SAAI,GAAG,IAAI,CAehE;AAID,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAiBpE;AA6BD,wBAAgB,aAAa,IAAI,UAAU,CAO1C;AAGD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAY9D"}
@@ -1,13 +1,8 @@
1
- // Tracks request counts per platform per day, exposes routing advice
2
- // Veto cannot read actual API rate limits it tracks its own routed requests
3
- // and lets users configure their daily limits in patterns table
1
+ // Tracks token usage per platform per day against user-configured daily budgets.
2
+ // Token counts come from the AI's own token_count reports via veto_status calls.
4
3
  import { randomUUID } from 'node:crypto';
5
4
  import { getDb } from '../memory/local.js';
6
- const DEFAULT_LIMITS = {
7
- claude: 100,
8
- gemini: 200,
9
- codex: 150,
10
- };
5
+ import { getConfig } from '../memory/config.js';
11
6
  function getTodayKey() {
12
7
  return new Date().toISOString().slice(0, 10); // YYYY-MM-DD
13
8
  }
@@ -25,18 +20,34 @@ export function trackRequest(platform, count = 1) {
25
20
  db.prepare('UPDATE rate_usage SET request_count = ?, updated_at = ? WHERE id = ?').run(existing.request_count + count, new Date().toISOString(), existing.id);
26
21
  }
27
22
  else {
28
- db.prepare('INSERT INTO rate_usage (id, platform, date_key, request_count) VALUES (?, ?, ?, ?)').run(randomUUID(), platform, today, count);
23
+ db.prepare('INSERT INTO rate_usage (id, platform, date_key, request_count, token_count) VALUES (?, ?, ?, ?, 0)').run(randomUUID(), platform, today, count);
29
24
  }
30
25
  }
31
- function getRequestCount(platform) {
26
+ // Records the AI's reported token count for the current session. Uses MAX so
27
+ // the running total only moves forward within a session, and sums across sessions.
28
+ export function trackTokens(platform, tokens) {
29
+ if (tokens <= 0)
30
+ return;
32
31
  const db = getDb();
33
- const row = db.prepare('SELECT request_count FROM rate_usage WHERE platform = ? AND date_key = ?').get(platform, getTodayKey());
34
- return row?.request_count ?? 0;
32
+ const today = getTodayKey();
33
+ const existing = db.prepare('SELECT id, token_count FROM rate_usage WHERE platform = ? AND date_key = ?').get(platform, today);
34
+ if (existing) {
35
+ const updated = Math.max(existing.token_count, tokens);
36
+ db.prepare('UPDATE rate_usage SET token_count = ?, updated_at = ? WHERE id = ?').run(updated, new Date().toISOString(), existing.id);
37
+ }
38
+ else {
39
+ db.prepare('INSERT INTO rate_usage (id, platform, date_key, request_count, token_count) VALUES (?, ?, ?, 0, ?)').run(randomUUID(), platform, today, tokens);
40
+ }
41
+ }
42
+ function getRow(platform) {
43
+ const db = getDb();
44
+ return db.prepare('SELECT request_count, token_count FROM rate_usage WHERE platform = ? AND date_key = ?').get(platform, getTodayKey())
45
+ ?? { request_count: 0, token_count: 0 };
35
46
  }
36
47
  function buildEntry(platform) {
37
- const requests_today = getRequestCount(platform);
38
- const daily_limit = DEFAULT_LIMITS[platform];
39
- const used_percent = Math.min(100, Math.round((requests_today / daily_limit) * 100));
48
+ const { request_count, token_count } = getRow(platform);
49
+ const daily_token_budget = getConfig().dailyTokenBudget[platform];
50
+ const used_percent = Math.min(100, Math.round((token_count / daily_token_budget) * 100));
40
51
  let status;
41
52
  if (used_percent >= 90)
42
53
  status = 'critical';
@@ -44,7 +55,15 @@ function buildEntry(platform) {
44
55
  status = 'warning';
45
56
  else
46
57
  status = 'normal';
47
- return { platform, requests_today, daily_limit, used_percent, resets_at: getNextResetISO(), status };
58
+ return {
59
+ platform,
60
+ requests_today: request_count,
61
+ tokens_today: token_count,
62
+ daily_token_budget,
63
+ used_percent,
64
+ resets_at: getNextResetISO(),
65
+ status,
66
+ };
48
67
  }
49
68
  export function getRateStatus() {
50
69
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"rate-monitor.js","sourceRoot":"","sources":["../../src/router/rate-monitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rate-monitor.js","sourceRoot":"","sources":["../../src/router/rate-monitor.ts"],"names":[],"mappings":"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"}