@gramatr/mcp 0.10.12 → 0.10.14

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.
@@ -7,11 +7,11 @@
7
7
  *
8
8
  * Set GRAMATR_STATE_DB=:memory: in tests to avoid touching the filesystem.
9
9
  */
10
- import BetterSqlite3 from 'better-sqlite3';
11
- import { existsSync, mkdirSync } from 'node:fs';
12
- import { dirname, join } from 'node:path';
13
- import { getGramatrDirFromEnv, getHomeDir } from '../../config-runtime.js';
14
- import { HOOK_STATE_ABORT_TIMEOUT_MS } from '../generated/hook-timeouts.js';
10
+ import BetterSqlite3 from "better-sqlite3";
11
+ import { existsSync, mkdirSync } from "node:fs";
12
+ import { dirname, join } from "node:path";
13
+ import { getGramatrDirFromEnv, getHomeDir } from "../../config-runtime.js";
14
+ import { HOOK_STATE_ABORT_TIMEOUT_MS } from "../generated/hook-timeouts.js";
15
15
  // ── DB singleton ──
16
16
  let _db = null;
17
17
  /**
@@ -28,14 +28,14 @@ let _filesystemAvailable = true;
28
28
  function getDbPath() {
29
29
  if (process.env.GRAMATR_STATE_DB)
30
30
  return process.env.GRAMATR_STATE_DB;
31
- const dir = getGramatrDirFromEnv() || join(getHomeDir(), '.gramatr');
32
- return join(dir, 'state.db');
31
+ const dir = getGramatrDirFromEnv() || join(getHomeDir(), ".gramatr");
32
+ return join(dir, "state.db");
33
33
  }
34
34
  function getDb() {
35
35
  if (_db)
36
36
  return _db;
37
37
  const path = getDbPath();
38
- if (path !== ':memory:') {
38
+ if (path !== ":memory:") {
39
39
  try {
40
40
  const dir = dirname(path);
41
41
  if (!existsSync(dir))
@@ -46,14 +46,14 @@ function getDb() {
46
46
  }
47
47
  }
48
48
  try {
49
- _db = new BetterSqlite3(_filesystemAvailable ? path : ':memory:');
49
+ _db = new BetterSqlite3(_filesystemAvailable ? path : ":memory:");
50
50
  }
51
51
  catch {
52
52
  _filesystemAvailable = false;
53
- _db = new BetterSqlite3(':memory:');
53
+ _db = new BetterSqlite3(":memory:");
54
54
  }
55
- _db.exec('PRAGMA journal_mode = WAL');
56
- _db.exec('PRAGMA synchronous = NORMAL');
55
+ _db.exec("PRAGMA journal_mode = WAL");
56
+ _db.exec("PRAGMA synchronous = NORMAL");
57
57
  _db.exec(`
58
58
  CREATE TABLE IF NOT EXISTS session_context (
59
59
  session_id TEXT PRIMARY KEY,
@@ -72,15 +72,37 @@ function getDb() {
72
72
  );
73
73
 
74
74
  CREATE TABLE IF NOT EXISTS turns (
75
- id INTEGER PRIMARY KEY AUTOINCREMENT,
76
- session_id TEXT NOT NULL,
77
- turn_number INTEGER,
78
- timestamp TEXT,
79
- prompt TEXT,
80
- effort_level TEXT,
81
- intent_type TEXT,
82
- confidence REAL,
83
- tokens_saved INTEGER
75
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
76
+ session_id TEXT NOT NULL,
77
+ client_session_id TEXT,
78
+ project_id TEXT,
79
+ agent_name TEXT,
80
+ turn_number INTEGER,
81
+ timestamp TEXT,
82
+ prompt TEXT,
83
+ effort_level TEXT,
84
+ intent_type TEXT,
85
+ confidence REAL,
86
+ tokens_saved INTEGER
87
+ );
88
+
89
+ CREATE TABLE IF NOT EXISTS directive_cache (
90
+ key TEXT NOT NULL,
91
+ user_id TEXT NOT NULL,
92
+ value_json TEXT NOT NULL,
93
+ cached_at TEXT NOT NULL,
94
+ expires_at TEXT NOT NULL,
95
+ PRIMARY KEY (key, user_id)
96
+ );
97
+
98
+ CREATE TABLE IF NOT EXISTS mutation_outbox (
99
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
100
+ tool_name TEXT NOT NULL,
101
+ args_json TEXT NOT NULL,
102
+ created_at TEXT NOT NULL,
103
+ replicated_at TEXT,
104
+ attempts INTEGER NOT NULL DEFAULT 0,
105
+ last_error TEXT
84
106
  );
85
107
 
86
108
  CREATE TABLE IF NOT EXISTS op_history (
@@ -149,31 +171,48 @@ function getDb() {
149
171
  // These are no-ops if the column already exists (SQLite 3.37+ IF NOT EXISTS).
150
172
  // For older SQLite we catch and ignore.
151
173
  const migrations = [
152
- 'ALTER TABLE session_context ADD COLUMN entity_id TEXT',
153
- 'ALTER TABLE session_context ADD COLUMN client_type TEXT',
154
- 'ALTER TABLE session_context ADD COLUMN agent_name TEXT',
155
- 'ALTER TABLE latest_classification ADD COLUMN original_prompt TEXT',
156
- 'ALTER TABLE latest_classification ADD COLUMN pending_feedback INTEGER DEFAULT 0',
157
- 'ALTER TABLE latest_classification ADD COLUMN feedback_submitted_at TEXT',
158
- 'ALTER TABLE latest_classification ADD COLUMN client_type TEXT',
159
- 'ALTER TABLE latest_classification ADD COLUMN agent_name TEXT',
160
- 'ALTER TABLE latest_classification ADD COLUMN memory_tier TEXT',
161
- 'ALTER TABLE latest_classification ADD COLUMN memory_scope TEXT',
162
- 'ALTER TABLE session_log ADD COLUMN interaction_id TEXT',
163
- 'ALTER TABLE session_log ADD COLUMN entity_id TEXT',
164
- 'ALTER TABLE session_log ADD COLUMN client_type TEXT',
165
- 'ALTER TABLE session_log ADD COLUMN agent_name TEXT',
166
- 'ALTER TABLE session_log ADD COLUMN synced_at TEXT',
174
+ "ALTER TABLE session_context ADD COLUMN entity_id TEXT",
175
+ "ALTER TABLE session_context ADD COLUMN client_type TEXT",
176
+ "ALTER TABLE session_context ADD COLUMN agent_name TEXT",
177
+ "ALTER TABLE latest_classification ADD COLUMN original_prompt TEXT",
178
+ "ALTER TABLE latest_classification ADD COLUMN pending_feedback INTEGER DEFAULT 0",
179
+ "ALTER TABLE latest_classification ADD COLUMN feedback_submitted_at TEXT",
180
+ "ALTER TABLE latest_classification ADD COLUMN client_type TEXT",
181
+ "ALTER TABLE latest_classification ADD COLUMN agent_name TEXT",
182
+ "ALTER TABLE latest_classification ADD COLUMN memory_tier TEXT",
183
+ "ALTER TABLE latest_classification ADD COLUMN memory_scope TEXT",
184
+ "ALTER TABLE session_log ADD COLUMN interaction_id TEXT",
185
+ "ALTER TABLE session_log ADD COLUMN entity_id TEXT",
186
+ "ALTER TABLE session_log ADD COLUMN client_type TEXT",
187
+ "ALTER TABLE session_log ADD COLUMN agent_name TEXT",
188
+ "ALTER TABLE session_log ADD COLUMN synced_at TEXT",
167
189
  // Unique index is safe to re-run (IF NOT EXISTS)
168
- 'CREATE UNIQUE INDEX IF NOT EXISTS session_log_session_id ON session_log(session_id) WHERE session_id IS NOT NULL',
169
- 'ALTER TABLE session_context ADD COLUMN platform TEXT',
170
- 'ALTER TABLE session_context ADD COLUMN arch TEXT',
190
+ "CREATE UNIQUE INDEX IF NOT EXISTS session_log_session_id ON session_log(session_id) WHERE session_id IS NOT NULL",
191
+ "ALTER TABLE session_context ADD COLUMN platform TEXT",
192
+ "ALTER TABLE session_context ADD COLUMN arch TEXT",
193
+ // #1214: cross-agent fields on turns for local SQLite intelligence cache
194
+ "ALTER TABLE turns ADD COLUMN project_id TEXT",
195
+ "ALTER TABLE turns ADD COLUMN client_session_id TEXT",
196
+ "ALTER TABLE turns ADD COLUMN agent_name TEXT",
171
197
  ];
172
198
  for (const sql of migrations) {
173
199
  try {
174
200
  _db.exec(sql);
175
201
  }
176
- catch { /* column already exists */ }
202
+ catch {
203
+ /* column already exists */
204
+ }
205
+ }
206
+ // #1214: 7-day rolling delete — evict stale turns to keep DB bounded.
207
+ // Safe to run on every open: small WHERE + indexed-ish timestamp; the
208
+ // overwhelming common case is zero matches.
209
+ try {
210
+ _db
211
+ .prepare("DELETE FROM turns WHERE timestamp IS NOT NULL AND timestamp < datetime('now', '-7 days')")
212
+ .run();
213
+ }
214
+ catch {
215
+ // Non-fatal — older SQLite without datetime() arithmetic should still boot.
177
216
  }
178
217
  return _db;
179
218
  }
@@ -211,7 +250,7 @@ export function isFilesystemAvailable() {
211
250
  export async function hydrateSessionContextFromServer(sessionId) {
212
251
  // ── Phase IV path: local hooks server ──
213
252
  try {
214
- const { pullSessionContextFromLocal } = await import('../../proxy/local-client.js');
253
+ const { pullSessionContextFromLocal } = await import("../../proxy/local-client.js");
215
254
  const localCtx = await pullSessionContextFromLocal(sessionId);
216
255
  if (localCtx) {
217
256
  setSessionContext(localCtx);
@@ -223,20 +262,20 @@ export async function hydrateSessionContextFromServer(sessionId) {
223
262
  }
224
263
  // ── Phase III fallback: remote REST API ──
225
264
  try {
226
- const { getServerUrl, getToken } = await import('../../server/auth.js');
265
+ const { getServerUrl, getToken } = await import("../../server/auth.js");
227
266
  const serverUrl = getServerUrl();
228
267
  const token = getToken();
229
268
  const url = `${serverUrl}/api/v1/sessions?session_id=${encodeURIComponent(sessionId)}`;
230
- const headers = { Accept: 'application/json' };
269
+ const headers = { Accept: "application/json" };
231
270
  if (token)
232
- headers['Authorization'] = `Bearer ${token}`;
271
+ headers["Authorization"] = `Bearer ${token}`;
233
272
  const response = await fetch(url, {
234
273
  headers,
235
274
  signal: AbortSignal.timeout(HOOK_STATE_ABORT_TIMEOUT_MS),
236
275
  });
237
276
  if (!response.ok)
238
277
  return;
239
- const data = await response.json();
278
+ const data = (await response.json());
240
279
  const session = data.sessions?.[0];
241
280
  if (!session)
242
281
  return;
@@ -265,7 +304,8 @@ export async function hydrateSessionContextFromServer(sessionId) {
265
304
  // ── Session context — cross-hook IPC ──
266
305
  /** Write current project/session context so other hooks can read it. */
267
306
  export function setSessionContext(ctx) {
268
- getDb().prepare(`
307
+ getDb()
308
+ .prepare(`
269
309
  INSERT OR REPLACE INTO session_context
270
310
  (session_id, project_id, interaction_id, entity_id, project_name, git_root,
271
311
  git_branch, git_remote, working_directory, session_start, updated_at,
@@ -274,7 +314,8 @@ export function setSessionContext(ctx) {
274
314
  (@session_id, @project_id, @interaction_id, @entity_id, @project_name, @git_root,
275
315
  @git_branch, @git_remote, @working_directory, @session_start, @updated_at,
276
316
  @client_type, @agent_name, @platform, @arch)
277
- `).run(p(ctx));
317
+ `)
318
+ .run(p(ctx));
278
319
  }
279
320
  /**
280
321
  * Read session context.
@@ -284,64 +325,69 @@ export function setSessionContext(ctx) {
284
325
  */
285
326
  export function getSessionContext(sessionId) {
286
327
  const db = getDb();
287
- if (sessionId && sessionId !== 'unknown') {
328
+ if (sessionId && sessionId !== "unknown") {
288
329
  const scoped = db
289
- .prepare('SELECT * FROM session_context WHERE session_id = ? ORDER BY updated_at DESC LIMIT 1')
330
+ .prepare("SELECT * FROM session_context WHERE session_id = ? ORDER BY updated_at DESC LIMIT 1")
290
331
  .get(sessionId);
291
332
  if (scoped)
292
333
  return scoped;
293
334
  }
294
- const row = db
295
- .prepare('SELECT * FROM session_context ORDER BY updated_at DESC LIMIT 1')
296
- .get();
335
+ const row = db.prepare("SELECT * FROM session_context ORDER BY updated_at DESC LIMIT 1").get();
297
336
  return row ?? null;
298
337
  }
299
338
  export function getSessionContextByProject(projectId) {
300
339
  const row = getDb()
301
- .prepare('SELECT * FROM session_context WHERE project_id = ? ORDER BY updated_at DESC LIMIT 1')
340
+ .prepare("SELECT * FROM session_context WHERE project_id = ? ORDER BY updated_at DESC LIMIT 1")
302
341
  .get(projectId);
303
342
  return row ?? null;
304
343
  }
305
344
  // ── Turns — per-prompt metadata accumulated across user-prompt-submit calls ──
306
345
  /** Append one turn record. Called once per user-prompt-submit invocation. */
307
346
  export function appendTurn(turn) {
308
- getDb().prepare(`
347
+ getDb()
348
+ .prepare(`
309
349
  INSERT INTO turns
310
- (session_id, turn_number, timestamp, prompt, effort_level, intent_type, confidence, tokens_saved)
350
+ (session_id, client_session_id, project_id, agent_name,
351
+ turn_number, timestamp, prompt, effort_level, intent_type, confidence, tokens_saved)
311
352
  VALUES
312
- (@session_id, @turn_number, @timestamp, @prompt, @effort_level, @intent_type, @confidence, @tokens_saved)
313
- `).run(p(turn));
353
+ (@session_id, @client_session_id, @project_id, @agent_name,
354
+ @turn_number, @timestamp, @prompt, @effort_level, @intent_type, @confidence, @tokens_saved)
355
+ `)
356
+ .run(p(turn));
314
357
  }
315
358
  /** Return all turns for a session and delete them atomically. Called at session-end. */
316
359
  export function flushTurns(sessionId) {
317
360
  const db = getDb();
318
361
  const rows = db
319
- .prepare('SELECT * FROM turns WHERE session_id = ? ORDER BY id')
362
+ .prepare("SELECT * FROM turns WHERE session_id = ? ORDER BY id")
320
363
  .all(sessionId);
321
- db.prepare('DELETE FROM turns WHERE session_id = ?').run(sessionId);
364
+ db.prepare("DELETE FROM turns WHERE session_id = ?").run(sessionId);
322
365
  return rows;
323
366
  }
324
367
  // ── Op history — tool call log accumulated per session ──
325
368
  /** Append one op record. Called once per gramatr tool call. */
326
369
  export function appendOpHistory(op) {
327
- getDb().prepare(`
370
+ getDb()
371
+ .prepare(`
328
372
  INSERT INTO op_history (session_id, tool, time_ms, tokens_saved, timestamp)
329
373
  VALUES (@session_id, @tool, @time_ms, @tokens_saved, @timestamp)
330
- `).run(p(op));
374
+ `)
375
+ .run(p(op));
331
376
  }
332
377
  /** Return all op records for a session and delete them atomically. Called at session-end. */
333
378
  export function flushOpHistory(sessionId) {
334
379
  const db = getDb();
335
380
  const rows = db
336
- .prepare('SELECT * FROM op_history WHERE session_id = ? ORDER BY id')
381
+ .prepare("SELECT * FROM op_history WHERE session_id = ? ORDER BY id")
337
382
  .all(sessionId);
338
- db.prepare('DELETE FROM op_history WHERE session_id = ?').run(sessionId);
383
+ db.prepare("DELETE FROM op_history WHERE session_id = ?").run(sessionId);
339
384
  return rows;
340
385
  }
341
386
  // ── Latest classification — for statusline display and feedback ──
342
387
  /** Overwrite the latest classification result for a session. */
343
388
  export function setLatestClassification(record) {
344
- getDb().prepare(`
389
+ getDb()
390
+ .prepare(`
345
391
  INSERT OR REPLACE INTO latest_classification
346
392
  (session_id, classifier_model, classifier_time_ms, tokens_saved, savings_ratio,
347
393
  effort, intent, confidence, memory_delivered, downstream_model,
@@ -354,7 +400,8 @@ export function setLatestClassification(record) {
354
400
  @server_version, @stage_timing, @recorded_at,
355
401
  @original_prompt, @pending_feedback, @feedback_submitted_at,
356
402
  @client_type, @agent_name, @memory_tier, @memory_scope)
357
- `).run(p({
403
+ `)
404
+ .run(p({
358
405
  ...record,
359
406
  pending_feedback: record.pending_feedback ? 1 : 0,
360
407
  }));
@@ -362,7 +409,7 @@ export function setLatestClassification(record) {
362
409
  /** Read the latest classification record for a session. */
363
410
  export function getLatestClassification(sessionId) {
364
411
  const row = getDb()
365
- .prepare('SELECT * FROM latest_classification WHERE session_id = ?')
412
+ .prepare("SELECT * FROM latest_classification WHERE session_id = ?")
366
413
  .get(sessionId);
367
414
  if (!row)
368
415
  return null;
@@ -371,23 +418,27 @@ export function getLatestClassification(sessionId) {
371
418
  /** Mark pending feedback as submitted for a session. */
372
419
  export function markClassificationFeedbackSubmitted(sessionId, submittedAt) {
373
420
  const ts = submittedAt ?? new Date().toISOString();
374
- getDb().prepare(`
421
+ getDb()
422
+ .prepare(`
375
423
  UPDATE latest_classification
376
424
  SET pending_feedback = 0, feedback_submitted_at = ?
377
425
  WHERE session_id = ?
378
- `).run(ts, sessionId);
426
+ `)
427
+ .run(ts, sessionId);
379
428
  }
380
429
  // ── Session log — persistent history across sessions ──
381
430
  /** Append a session-end entry. Replaces session-history.log + last-session-commits.txt. */
382
431
  export function appendSessionLog(entry) {
383
- getDb().prepare(`
432
+ getDb()
433
+ .prepare(`
384
434
  INSERT INTO session_log
385
435
  (session_id, project_id, ended_at, reason, commit_log,
386
436
  interaction_id, entity_id, client_type, agent_name, synced_at)
387
437
  VALUES
388
438
  (@session_id, @project_id, @ended_at, @reason, @commit_log,
389
439
  @interaction_id, @entity_id, @client_type, @agent_name, @synced_at)
390
- `).run(p(entry));
440
+ `)
441
+ .run(p(entry));
391
442
  }
392
443
  /**
393
444
  * Return the most recent session log entry for a project.
@@ -408,7 +459,7 @@ export function getLastSessionForProject(projectId) {
408
459
  /** Return the commit log from the most recent session that had commits. */
409
460
  export function getLastSessionCommits() {
410
461
  const row = getDb()
411
- .prepare('SELECT commit_log FROM session_log WHERE commit_log IS NOT NULL ORDER BY id DESC LIMIT 1')
462
+ .prepare("SELECT commit_log FROM session_log WHERE commit_log IS NOT NULL ORDER BY id DESC LIMIT 1")
412
463
  .get();
413
464
  return row?.commit_log ?? null;
414
465
  }
@@ -454,28 +505,27 @@ export function migrateProjectId(oldProjectId, newProjectId) {
454
505
  if (oldProjectId === newProjectId)
455
506
  return 0;
456
507
  const db = getDb();
457
- db.prepare('UPDATE session_log SET project_id = ? WHERE project_id = ?').run(newProjectId, oldProjectId);
458
- const row = db.prepare('SELECT changes() as changes').get();
508
+ db.prepare("UPDATE session_log SET project_id = ? WHERE project_id = ?").run(newProjectId, oldProjectId);
509
+ const row = db.prepare("SELECT changes() as changes").get();
459
510
  return row?.changes ?? 0;
460
511
  }
461
512
  /** Mark a local session as synced to the server after a successful session-end call. */
462
513
  export function markSessionSynced(sessionId, syncedAt) {
463
514
  const ts = syncedAt ?? new Date().toISOString();
464
- getDb()
465
- .prepare('UPDATE session_log SET synced_at = ? WHERE session_id = ?')
466
- .run(ts, sessionId);
515
+ getDb().prepare("UPDATE session_log SET synced_at = ? WHERE session_id = ?").run(ts, sessionId);
467
516
  }
468
517
  /** Count total sessions for a project (for "Session #N" display). */
469
518
  export function getProjectSessionCount(projectId) {
470
519
  const row = getDb()
471
- .prepare('SELECT COUNT(*) as cnt FROM session_log WHERE project_id = ?')
520
+ .prepare("SELECT COUNT(*) as cnt FROM session_log WHERE project_id = ?")
472
521
  .get(projectId);
473
522
  return row?.cnt ?? 0;
474
523
  }
475
524
  // ── Projects — local project identity persistence (#947) ──
476
525
  /** Upsert a project record in the local SQLite database. */
477
526
  export function upsertLocalProject(project) {
478
- getDb().prepare(`
527
+ getDb()
528
+ .prepare(`
479
529
  INSERT INTO projects (id, slug, git_remote, directory, org_id, updated_at)
480
530
  VALUES (@id, @slug, @git_remote, @directory, @org_id, datetime('now'))
481
531
  ON CONFLICT(id) DO UPDATE SET
@@ -484,7 +534,8 @@ export function upsertLocalProject(project) {
484
534
  directory = COALESCE(excluded.directory, projects.directory),
485
535
  org_id = COALESCE(excluded.org_id, projects.org_id),
486
536
  updated_at = datetime('now')
487
- `).run(p({
537
+ `)
538
+ .run(p({
488
539
  id: project.id,
489
540
  slug: project.slug,
490
541
  git_remote: project.git_remote ?? null,
@@ -495,15 +546,157 @@ export function upsertLocalProject(project) {
495
546
  /** Look up a project by its slug. */
496
547
  export function getLocalProjectBySlug(slug) {
497
548
  const row = getDb()
498
- .prepare('SELECT * FROM projects WHERE slug = ? ORDER BY updated_at DESC LIMIT 1')
549
+ .prepare("SELECT * FROM projects WHERE slug = ? ORDER BY updated_at DESC LIMIT 1")
499
550
  .get(slug);
500
551
  return row ?? null;
501
552
  }
502
553
  /** Look up a project by its directory path. */
503
554
  export function getLocalProjectByDirectory(directory) {
504
555
  const row = getDb()
505
- .prepare('SELECT * FROM projects WHERE directory = ? ORDER BY updated_at DESC LIMIT 1')
556
+ .prepare("SELECT * FROM projects WHERE directory = ? ORDER BY updated_at DESC LIMIT 1")
506
557
  .get(directory);
507
558
  return row ?? null;
508
559
  }
560
+ // ── Directive cache — keyed {key, user_id} JSON values with TTL (#1214) ──
561
+ /**
562
+ * Write a cached directive/project-context value under (key, user_id).
563
+ * TTL defaults to 24h. Keys are free-form (e.g. 'directives', 'phase_template',
564
+ * 'project_context'). Overwrites any existing row.
565
+ */
566
+ export function setCachedDirective(key, userId, value, ttlHours = 24) {
567
+ const now = new Date();
568
+ const expires = new Date(now.getTime() + ttlHours * 3600 * 1000);
569
+ getDb()
570
+ .prepare(`
571
+ INSERT INTO directive_cache (key, user_id, value_json, cached_at, expires_at)
572
+ VALUES (@key, @user_id, @value_json, @cached_at, @expires_at)
573
+ ON CONFLICT(key, user_id) DO UPDATE SET
574
+ value_json = excluded.value_json,
575
+ cached_at = excluded.cached_at,
576
+ expires_at = excluded.expires_at
577
+ `)
578
+ .run(p({
579
+ key,
580
+ user_id: userId,
581
+ value_json: JSON.stringify(value),
582
+ cached_at: now.toISOString(),
583
+ expires_at: expires.toISOString(),
584
+ }));
585
+ }
586
+ /**
587
+ * Read a cached directive. Returns null when the row is missing or expired.
588
+ * Corrupt JSON is treated as a miss (not a throw) so callers can degrade cleanly.
589
+ */
590
+ export function getCachedDirective(key, userId) {
591
+ const row = getDb()
592
+ .prepare("SELECT value_json, expires_at FROM directive_cache WHERE key = ? AND user_id = ?")
593
+ .get(key, userId);
594
+ if (!row)
595
+ return null;
596
+ const expiresMs = Date.parse(row.expires_at);
597
+ if (Number.isFinite(expiresMs) && expiresMs <= Date.now())
598
+ return null;
599
+ try {
600
+ return JSON.parse(row.value_json);
601
+ }
602
+ catch {
603
+ return null;
604
+ }
605
+ }
606
+ // ── Mutation outbox — replicate failed mutations when the network recovers (#1214) ──
607
+ /** Enqueue a mutation to be replicated asynchronously. */
608
+ export function enqueueOutboxMutation(toolName, args) {
609
+ getDb()
610
+ .prepare(`
611
+ INSERT INTO mutation_outbox (tool_name, args_json, created_at, attempts)
612
+ VALUES (@tool_name, @args_json, @created_at, 0)
613
+ `)
614
+ .run(p({
615
+ tool_name: toolName,
616
+ args_json: JSON.stringify(args),
617
+ created_at: new Date().toISOString(),
618
+ }));
619
+ }
620
+ /**
621
+ * Attempt to replicate every unreplicated outbox row. On success the row is
622
+ * marked replicated_at. Rows that reach three failed attempts keep their
623
+ * last_error and remain in the table for manual inspection — they are not
624
+ * retried on subsequent drains. Rows replicated more than seven days ago are
625
+ * GC'd to keep the DB bounded.
626
+ */
627
+ export async function drainOutbox(callTool) {
628
+ const db = getDb();
629
+ // GC old replicated rows first — cheap and keeps the table small.
630
+ try {
631
+ db.prepare("DELETE FROM mutation_outbox WHERE replicated_at IS NOT NULL AND replicated_at < datetime('now', '-7 days')").run();
632
+ }
633
+ catch {
634
+ // Non-fatal
635
+ }
636
+ const rows = db
637
+ .prepare(`
638
+ SELECT id, tool_name, args_json, attempts
639
+ FROM mutation_outbox
640
+ WHERE replicated_at IS NULL AND attempts < 3
641
+ ORDER BY id
642
+ `)
643
+ .all();
644
+ const markSuccess = db.prepare("UPDATE mutation_outbox SET replicated_at = ?, attempts = attempts + 1, last_error = NULL WHERE id = ?");
645
+ const markFailure = db.prepare("UPDATE mutation_outbox SET attempts = attempts + 1, last_error = ? WHERE id = ?");
646
+ for (const row of rows) {
647
+ let args = {};
648
+ try {
649
+ args = JSON.parse(row.args_json);
650
+ }
651
+ catch (err) {
652
+ // Permanently poisoned row — mark as terminal to stop retrying.
653
+ const detail = err instanceof Error ? err.message : String(err);
654
+ markFailure.run(`args_json parse error: ${detail}`, row.id);
655
+ // Force attempts to 3 so we never retry this row.
656
+ db.prepare("UPDATE mutation_outbox SET attempts = 3 WHERE id = ?").run(row.id);
657
+ continue;
658
+ }
659
+ try {
660
+ await callTool(row.tool_name, args);
661
+ markSuccess.run(new Date().toISOString(), row.id);
662
+ }
663
+ catch (err) {
664
+ const detail = err instanceof Error ? err.message : String(err);
665
+ markFailure.run(detail, row.id);
666
+ }
667
+ }
668
+ }
669
+ /** Current unreplicated outbox size. Exposed for diagnostics + tests. */
670
+ export function getOutboxPendingCount() {
671
+ const row = getDb()
672
+ .prepare("SELECT COUNT(*) as cnt FROM mutation_outbox WHERE replicated_at IS NULL")
673
+ .get();
674
+ return row?.cnt ?? 0;
675
+ }
676
+ /** Diagnostic — read every outbox row (primarily for tests). */
677
+ export function listOutboxEntries() {
678
+ return getDb()
679
+ .prepare("SELECT id, tool_name, args_json, created_at, replicated_at, attempts, last_error FROM mutation_outbox ORDER BY id")
680
+ .all();
681
+ }
682
+ /**
683
+ * Test-only hook: inject an outbox row with arbitrary args_json so the
684
+ * JSON.parse failure path in drainOutbox can be exercised. Production code
685
+ * never calls this — the marker prefix keeps it discoverable.
686
+ */
687
+ export function __testOnlyInsertOutboxRaw(toolName, argsJsonLiteral) {
688
+ const result = getDb()
689
+ .prepare(`
690
+ INSERT INTO mutation_outbox (tool_name, args_json, created_at, attempts)
691
+ VALUES (?, ?, ?, 0)
692
+ `)
693
+ .run(toolName, argsJsonLiteral, new Date().toISOString());
694
+ return Number(result.lastInsertRowid);
695
+ }
696
+ /** List all locally known projects, sorted by most recently active. */
697
+ export function listLocalProjects(limit = 20) {
698
+ return getDb()
699
+ .prepare('SELECT * FROM projects ORDER BY updated_at DESC LIMIT ?')
700
+ .all(Math.min(Math.max(1, limit), 50));
701
+ }
509
702
  //# sourceMappingURL=hook-state.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hook-state.js","sourceRoot":"","sources":["../../../src/hooks/lib/hook-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,aAAa,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAuG5E,qBAAqB;AAErB,IAAI,GAAG,GAAoB,IAAI,CAAC;AAEhC;;;;;GAKG;AACH,SAAS,CAAC,CAAC,GAAW;IACpB,OAAO,GAA8B,CAAC;AACxC,CAAC;AACD,6FAA6F;AAC7F,IAAI,oBAAoB,GAAG,IAAI,CAAC;AAEhC,SAAS,SAAS;IAChB,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACtE,MAAM,GAAG,GAAG,oBAAoB,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,UAAU,CAAC,CAAC;IACrE,OAAO,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,KAAK;IACZ,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IAEpB,MAAM,IAAI,GAAG,SAAS,EAAE,CAAC;IACzB,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,oBAAoB,GAAG,KAAK,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,oBAAoB,GAAG,KAAK,CAAC;QAC7B,GAAG,GAAG,IAAI,aAAa,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACtC,GAAG,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAExC,GAAG,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0FR,CAAC,CAAC;IAEH,0EAA0E;IAC1E,8EAA8E;IAC9E,wCAAwC;IACxC,MAAM,UAAU,GAAG;QACjB,uDAAuD;QACvD,yDAAyD;QACzD,wDAAwD;QACxD,mEAAmE;QACnE,iFAAiF;QACjF,yEAAyE;QACzE,+DAA+D;QAC/D,8DAA8D;QAC9D,+DAA+D;QAC/D,gEAAgE;QAChE,wDAAwD;QACxD,mDAAmD;QACnD,qDAAqD;QACrD,oDAAoD;QACpD,mDAAmD;QACnD,iDAAiD;QACjD,kHAAkH;QAClH,sDAAsD;QACtD,kDAAkD;KACnD,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,CAAC;YAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,2BAA2B,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,OAAO;IACrB,GAAG,EAAE,KAAK,EAAE,CAAC;IACb,GAAG,GAAG,IAAI,CAAC;AACb,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB;IACnC,4DAA4D;IAC5D,KAAK,EAAE,CAAC;IACR,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CAAC,SAAiB;IACrE,0CAA0C;IAC1C,IAAI,CAAC;QACH,MAAM,EAAE,2BAA2B,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;QACpF,MAAM,QAAQ,GAAG,MAAM,2BAA2B,CAAC,SAAS,CAAC,CAAC;QAC9D,IAAI,QAAQ,EAAE,CAAC;YACb,iBAAiB,CAAC,QAAqC,CAAC,CAAC;YACzD,OAAO;QACT,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,2DAA2D;IAC7D,CAAC;IAED,4CAA4C;IAC5C,IAAI,CAAC;QACH,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACxE,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QAEzB,MAAM,GAAG,GAAG,GAAG,SAAS,+BAA+B,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;QACvF,MAAM,OAAO,GAA2B,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;QACvE,IAAI,KAAK;YAAE,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,KAAK,EAAE,CAAC;QAExD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,OAAO;YACP,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,2BAA2B,CAAC;SACzD,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAO;QAEzB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA8B,CAAC;QAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAUpB,CAAC;QACd,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,iBAAiB,CAAC;YAChB,UAAU,EAAE,OAAO,CAAC,iBAAiB,IAAI,SAAS;YAClD,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;YACtC,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,IAAI;YAC9C,SAAS,EAAE,IAAI;YACf,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;YACtC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;YACtC,iBAAiB,EAAE,IAAI;YACvB,aAAa,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;YACzC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC1D,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI;YACxC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;YACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,uEAAuE;IACzE,CAAC;AACH,CAAC;AAED,yCAAyC;AAEzC,wEAAwE;AACxE,MAAM,UAAU,iBAAiB,CAAC,GAAmB;IACnD,KAAK,EAAE,CAAC,OAAO,CAAC;;;;;;;;;GASf,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAkB;IAClD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,IAAI,SAAS,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,EAAE;aACd,OAAO,CAAC,qFAAqF,CAAC;aAC9F,GAAG,CAAC,SAAS,CAA+B,CAAC;QAChD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;IAC5B,CAAC;IACD,MAAM,GAAG,GAAG,EAAE;SACX,OAAO,CAAC,gEAAgE,CAAC;SACzE,GAAG,EAAgC,CAAC;IACvC,OAAO,GAAG,IAAI,IAAI,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,SAAiB;IAC1D,MAAM,GAAG,GAAG,KAAK,EAAE;SAChB,OAAO,CAAC,qFAAqF,CAAC;SAC9F,GAAG,CAAC,SAAS,CAA+B,CAAC;IAChD,OAAO,GAAG,IAAI,IAAI,CAAC;AACrB,CAAC;AAED,gFAAgF;AAEhF,6EAA6E;AAC7E,MAAM,UAAU,UAAU,CAAC,IAAgB;IACzC,KAAK,EAAE,CAAC,OAAO,CAAC;;;;;GAKf,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,UAAU,CAAC,SAAiB;IAC1C,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CAAC,sDAAsD,CAAC;SAC/D,GAAG,CAAC,SAAS,CAAiB,CAAC;IAClC,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACpE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,2DAA2D;AAE3D,+DAA+D;AAC/D,MAAM,UAAU,eAAe,CAAC,EAAY;IAC1C,KAAK,EAAE,CAAC,OAAO,CAAC;;;GAGf,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChB,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC9C,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CAAC,2DAA2D,CAAC;SACpE,GAAG,CAAC,SAAS,CAAe,CAAC;IAChC,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACzE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,oEAAoE;AAEpE,gEAAgE;AAChE,MAAM,UAAU,uBAAuB,CAAC,MAA4B;IAClE,KAAK,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;;;;GAaf,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACP,GAAG,MAAM;QACT,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAClD,CAAC,CAAC,CAAC;AACN,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,uBAAuB,CAAC,SAAiB;IACvD,MAAM,GAAG,GAAG,KAAK,EAAE;SAChB,OAAO,CAAC,0DAA0D,CAAC;SACnE,GAAG,CAAC,SAAS,CAAgG,CAAC;IACjH,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,OAAO,EAAE,GAAG,GAAG,EAAE,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,KAAK,CAAC,EAAE,CAAC;AAClE,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,mCAAmC,CAAC,SAAiB,EAAE,WAAoB;IACzF,MAAM,EAAE,GAAG,WAAW,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACnD,KAAK,EAAE,CAAC,OAAO,CAAC;;;;GAIf,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;AACxB,CAAC;AAED,yDAAyD;AAEzD,2FAA2F;AAC3F,MAAM,UAAU,gBAAgB,CAAC,KAAsB;IACrD,KAAK,EAAE,CAAC,OAAO,CAAC;;;;;;;GAOf,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,SAAiB;IAGxD,MAAM,GAAG,GAAG,KAAK,EAAE;SAChB,OAAO,CAAC;;;;;;KAMR,CAAC;SACD,GAAG,CAAC,SAAS,CAED,CAAC;IAChB,OAAO,GAAG,IAAI,IAAI,CAAC;AACrB,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,qBAAqB;IACnC,MAAM,GAAG,GAAG,KAAK,EAAE;SAChB,OAAO,CAAC,0FAA0F,CAAC;SACnG,GAAG,EAAwC,CAAC;IAC/C,OAAO,GAAG,EAAE,UAAU,IAAI,IAAI,CAAC;AACjC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,QAA+B;IACtE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAClC,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC1C,MAAM,IAAI,GAAG,KAAK,EAAE,CAAC,OAAO,CAAC;;;;;;;GAO5B,CAAC,CAAC;IACH,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACT,UAAU,EAAE,CAAC,CAAC,iBAAiB,IAAI,CAAC,CAAC,EAAE;YACvC,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI;YAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI;YACxB,UAAU,EAAE,IAAI;YAChB,cAAc,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI;YACxC,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI;YAClC,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI;YAChC,SAAS,EAAE,QAAQ;SACpB,CAAC,CAAC,CAAC;IACN,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,YAAoB,EAAE,YAAoB;IACzE,IAAI,YAAY,KAAK,YAAY;QAAE,OAAO,CAAC,CAAC;IAC5C,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,EAAE,CAAC,OAAO,CAAC,4DAA4D,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IACzG,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,GAAG,EAAgC,CAAC;IAC1F,OAAO,GAAG,EAAE,OAAO,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,iBAAiB,CAAC,SAAiB,EAAE,QAAiB;IACpE,MAAM,EAAE,GAAG,QAAQ,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAChD,KAAK,EAAE;SACJ,OAAO,CAAC,2DAA2D,CAAC;SACpE,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;AACxB,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,sBAAsB,CAAC,SAAiB;IACtD,MAAM,GAAG,GAAG,KAAK,EAAE;SAChB,OAAO,CAAC,8DAA8D,CAAC;SACvE,GAAG,CAAC,SAAS,CAAgC,CAAC;IACjD,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AACvB,CAAC;AAED,6DAA6D;AAE7D,4DAA4D;AAC5D,MAAM,UAAU,kBAAkB,CAAC,OAMlC;IACC,KAAK,EAAE,CAAC,OAAO,CAAC;;;;;;;;;GASf,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACP,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;QACtC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;QACpC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI;KAC/B,CAAC,CAAC,CAAC;AACN,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,MAAM,GAAG,GAAG,KAAK,EAAE;SAChB,OAAO,CAAC,wEAAwE,CAAC;SACjF,GAAG,CAAC,IAAI,CAA6B,CAAC;IACzC,OAAO,GAAG,IAAI,IAAI,CAAC;AACrB,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,0BAA0B,CAAC,SAAiB;IAC1D,MAAM,GAAG,GAAG,KAAK,EAAE;SAChB,OAAO,CAAC,6EAA6E,CAAC;SACtF,GAAG,CAAC,SAAS,CAA6B,CAAC;IAC9C,OAAO,GAAG,IAAI,IAAI,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"hook-state.js","sourceRoot":"","sources":["../../../src/hooks/lib/hook-state.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rating-capture.d.ts","sourceRoot":"","sources":["../../src/hooks/rating-capture.ts"],"names":[],"mappings":"AAwBA,wBAAsB,oBAAoB,CAAC,KAAK,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAkFhF"}
1
+ {"version":3,"file":"rating-capture.d.ts","sourceRoot":"","sources":["../../src/hooks/rating-capture.ts"],"names":[],"mappings":"AA8BA,wBAAsB,oBAAoB,CAAC,KAAK,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAqGhF"}