@mesadev/agentblame 3.0.7 → 3.1.0

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.
@@ -3,11 +3,15 @@
3
3
  *
4
4
  * Handles persistent storage of sessions, prompts, and tool calls.
5
5
  * Uses Bun's built-in SQLite for high-performance lookups.
6
+ *
7
+ * Database is stored globally at ~/.agentblame/agentblame.db
8
+ * Each session is namespaced by repo identifier.
6
9
  */
7
10
  import { Database } from "bun:sqlite";
8
11
  import type { AiAgent } from "./types";
9
12
  export interface DbSession {
10
13
  id: string;
14
+ repo: string;
11
15
  agent: AiAgent;
12
16
  model: string | null;
13
17
  conversationId: string | null;
@@ -29,12 +33,41 @@ export interface DbToolCall {
29
33
  filePath: string | null;
30
34
  timestamp: string;
31
35
  }
36
+ /**
37
+ * Get the global agentblame directory (~/.agentblame/)
38
+ */
39
+ export declare function getGlobalAgentBlameDir(): string;
40
+ /**
41
+ * Get the global database path (~/.agentblame/agentblame.db)
42
+ */
43
+ export declare function getGlobalDbPath(): string;
44
+ /**
45
+ * Get the global logs directory (~/.agentblame/logs/)
46
+ */
47
+ export declare function getGlobalLogsDir(): string;
48
+ /**
49
+ * Ensure the global agentblame directory structure exists
50
+ */
51
+ export declare function ensureGlobalAgentBlameDir(): void;
52
+ /**
53
+ * Generate a repo identifier from the repo root path
54
+ * Uses the git remote URL if available, otherwise the path
55
+ */
56
+ export declare function getRepoIdentifier(repoRoot: string): string;
32
57
  /**
33
58
  * Set the database path directly.
59
+ * For most cases, use initGlobalDatabase() instead.
34
60
  */
35
61
  export declare function setDatabasePath(dbPath: string): void;
62
+ /**
63
+ * Initialize the global database
64
+ * This is the primary way to initialize the database.
65
+ * Throws if DB doesn't exist - user must run 'setup' first.
66
+ */
67
+ export declare function initGlobalDatabase(): void;
36
68
  /**
37
69
  * Get the database file path
70
+ * Throws if DB not initialized - user must run 'setup' first.
38
71
  */
39
72
  export declare function getDbPath(): string;
40
73
  /**
@@ -59,6 +92,7 @@ export declare function resetDatabase(): void;
59
92
  export declare function generateSessionId(agent: AiAgent, conversationId: string): string;
60
93
  export interface UpsertSessionParams {
61
94
  id: string;
95
+ repo: string;
62
96
  agent: AiAgent;
63
97
  model?: string | null;
64
98
  conversationId?: string | null;
@@ -165,3 +199,35 @@ export declare function getStats(): {
165
199
  prompts: number;
166
200
  toolCalls: number;
167
201
  };
202
+ /**
203
+ * Get stats for a specific repo
204
+ */
205
+ export declare function getStatsForRepo(repo: string): {
206
+ sessions: number;
207
+ prompts: number;
208
+ toolCalls: number;
209
+ };
210
+ /**
211
+ * Register a repo as enabled
212
+ */
213
+ export declare function enableRepo(repo: string): void;
214
+ /**
215
+ * Unregister a repo
216
+ */
217
+ export declare function disableRepo(repo: string): void;
218
+ /**
219
+ * Check if a repo is enabled
220
+ */
221
+ export declare function isRepoEnabled(repo: string): boolean;
222
+ /**
223
+ * Get all enabled repos
224
+ */
225
+ export declare function getEnabledRepos(): Array<{
226
+ repo: string;
227
+ enabledAt: string;
228
+ }>;
229
+ /**
230
+ * Wipe all data and recreate fresh database
231
+ * Used by 'agentblame clean'
232
+ */
233
+ export declare function wipeAndRecreateDatabase(): void;
@@ -4,6 +4,9 @@
4
4
  *
5
5
  * Handles persistent storage of sessions, prompts, and tool calls.
6
6
  * Uses Bun's built-in SQLite for high-performance lookups.
7
+ *
8
+ * Database is stored globally at ~/.agentblame/agentblame.db
9
+ * Each session is namespaced by repo identifier.
7
10
  */
8
11
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
12
  if (k2 === undefined) k2 = k;
@@ -39,7 +42,13 @@ var __importStar = (this && this.__importStar) || (function () {
39
42
  };
40
43
  })();
41
44
  Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.getGlobalAgentBlameDir = getGlobalAgentBlameDir;
46
+ exports.getGlobalDbPath = getGlobalDbPath;
47
+ exports.getGlobalLogsDir = getGlobalLogsDir;
48
+ exports.ensureGlobalAgentBlameDir = ensureGlobalAgentBlameDir;
49
+ exports.getRepoIdentifier = getRepoIdentifier;
42
50
  exports.setDatabasePath = setDatabasePath;
51
+ exports.initGlobalDatabase = initGlobalDatabase;
43
52
  exports.getDbPath = getDbPath;
44
53
  exports.getDatabase = getDatabase;
45
54
  exports.closeDatabase = closeDatabase;
@@ -64,17 +73,25 @@ exports.getToolCountsForSession = getToolCountsForSession;
64
73
  exports.getSessionDuration = getSessionDuration;
65
74
  exports.cleanupOldEntries = cleanupOldEntries;
66
75
  exports.getStats = getStats;
76
+ exports.getStatsForRepo = getStatsForRepo;
77
+ exports.enableRepo = enableRepo;
78
+ exports.disableRepo = disableRepo;
79
+ exports.isRepoEnabled = isRepoEnabled;
80
+ exports.getEnabledRepos = getEnabledRepos;
81
+ exports.wipeAndRecreateDatabase = wipeAndRecreateDatabase;
67
82
  const bun_sqlite_1 = require("bun:sqlite");
68
83
  const fs = __importStar(require("node:fs"));
69
84
  const path = __importStar(require("node:path"));
85
+ const os = __importStar(require("node:os"));
70
86
  const node_crypto_1 = require("node:crypto");
71
87
  // =============================================================================
72
88
  // Database Schema
73
89
  // =============================================================================
74
90
  const SCHEMA = `
75
- -- Sessions: One per AI conversation
91
+ -- Sessions: One per AI conversation, namespaced by repo
76
92
  CREATE TABLE IF NOT EXISTS sessions (
77
93
  id TEXT PRIMARY KEY,
94
+ repo TEXT NOT NULL,
78
95
  agent TEXT NOT NULL,
79
96
  model TEXT,
80
97
  conversation_id TEXT,
@@ -103,7 +120,14 @@ CREATE TABLE IF NOT EXISTS tool_calls (
103
120
  FOREIGN KEY (session_id) REFERENCES sessions(id)
104
121
  );
105
122
 
123
+ -- Enabled repos: Track which repos have agentblame enabled
124
+ CREATE TABLE IF NOT EXISTS enabled_repos (
125
+ repo TEXT PRIMARY KEY,
126
+ enabled_at TEXT NOT NULL
127
+ );
128
+
106
129
  -- Indexes
130
+ CREATE INDEX IF NOT EXISTS idx_sessions_repo ON sessions(repo);
107
131
  CREATE INDEX IF NOT EXISTS idx_sessions_agent ON sessions(agent, conversation_id);
108
132
  CREATE INDEX IF NOT EXISTS idx_prompts_session ON prompts(session_id);
109
133
  CREATE INDEX IF NOT EXISTS idx_tool_calls_session ON tool_calls(session_id);
@@ -111,12 +135,79 @@ CREATE INDEX IF NOT EXISTS idx_tool_calls_file ON tool_calls(file_path);
111
135
  CREATE INDEX IF NOT EXISTS idx_tool_calls_timestamp ON tool_calls(timestamp);
112
136
  `;
113
137
  // =============================================================================
138
+ // Global Paths
139
+ // =============================================================================
140
+ /**
141
+ * Get the global agentblame directory (~/.agentblame/)
142
+ */
143
+ function getGlobalAgentBlameDir() {
144
+ return path.join(os.homedir(), ".agentblame");
145
+ }
146
+ /**
147
+ * Get the global database path (~/.agentblame/agentblame.db)
148
+ */
149
+ function getGlobalDbPath() {
150
+ return path.join(getGlobalAgentBlameDir(), "agentblame.db");
151
+ }
152
+ /**
153
+ * Get the global logs directory (~/.agentblame/logs/)
154
+ */
155
+ function getGlobalLogsDir() {
156
+ return path.join(getGlobalAgentBlameDir(), "logs");
157
+ }
158
+ /**
159
+ * Ensure the global agentblame directory structure exists
160
+ */
161
+ function ensureGlobalAgentBlameDir() {
162
+ const globalDir = getGlobalAgentBlameDir();
163
+ const logsDir = getGlobalLogsDir();
164
+ if (!fs.existsSync(globalDir)) {
165
+ fs.mkdirSync(globalDir, { recursive: true });
166
+ }
167
+ if (!fs.existsSync(logsDir)) {
168
+ fs.mkdirSync(logsDir, { recursive: true });
169
+ }
170
+ }
171
+ /**
172
+ * Generate a repo identifier from the repo root path
173
+ * Uses the git remote URL if available, otherwise the path
174
+ */
175
+ function getRepoIdentifier(repoRoot) {
176
+ // Try to get remote URL first
177
+ try {
178
+ const { execSync } = require("node:child_process");
179
+ const remoteUrl = execSync("git remote get-url origin", {
180
+ cwd: repoRoot,
181
+ encoding: "utf8",
182
+ stdio: ["pipe", "pipe", "pipe"],
183
+ }).trim();
184
+ if (remoteUrl) {
185
+ // Normalize the URL: remove .git suffix, convert to lowercase
186
+ // Examples: git@github.com:org/repo.git -> github.com/org/repo
187
+ // https://github.com/org/repo.git -> github.com/org/repo
188
+ let normalized = remoteUrl
189
+ .replace(/\.git$/, "")
190
+ .replace(/^git@/, "")
191
+ .replace(/^https?:\/\//, "")
192
+ .replace(":", "/")
193
+ .toLowerCase();
194
+ return normalized;
195
+ }
196
+ }
197
+ catch {
198
+ // No remote, fall back to path
199
+ }
200
+ // Fall back to repo path
201
+ return repoRoot;
202
+ }
203
+ // =============================================================================
114
204
  // Database Connection
115
205
  // =============================================================================
116
206
  let dbInstance = null;
117
207
  let currentDbPath = null;
118
208
  /**
119
209
  * Set the database path directly.
210
+ * For most cases, use initGlobalDatabase() instead.
120
211
  */
121
212
  function setDatabasePath(dbPath) {
122
213
  if (currentDbPath !== dbPath) {
@@ -127,12 +218,26 @@ function setDatabasePath(dbPath) {
127
218
  currentDbPath = dbPath;
128
219
  }
129
220
  }
221
+ /**
222
+ * Initialize the global database
223
+ * This is the primary way to initialize the database.
224
+ * Throws if DB doesn't exist - user must run 'setup' first.
225
+ */
226
+ function initGlobalDatabase() {
227
+ const dbPath = getGlobalDbPath();
228
+ if (!fs.existsSync(dbPath)) {
229
+ throw new Error("Database not found. Run 'bunx @mesadev/agentblame@latest setup' first.");
230
+ }
231
+ setDatabasePath(dbPath);
232
+ initDatabase();
233
+ }
130
234
  /**
131
235
  * Get the database file path
236
+ * Throws if DB not initialized - user must run 'setup' first.
132
237
  */
133
238
  function getDbPath() {
134
239
  if (!currentDbPath) {
135
- throw new Error("Database path not set. Call setDatabasePath() first.");
240
+ throw new Error("Database not initialized. Run 'bunx @mesadev/agentblame@latest setup' first.");
136
241
  }
137
242
  return currentDbPath;
138
243
  }
@@ -153,6 +258,8 @@ function getDatabase() {
153
258
  dbInstance.exec("PRAGMA journal_mode = WAL");
154
259
  dbInstance.exec("PRAGMA busy_timeout = 5000");
155
260
  dbInstance.exec(SCHEMA);
261
+ // Run migrations to ensure schema is up to date
262
+ runMigrations(dbInstance);
156
263
  return dbInstance;
157
264
  }
158
265
  /**
@@ -179,8 +286,31 @@ function resetDatabase() {
179
286
  db.exec("DROP TABLE IF EXISTS tool_calls");
180
287
  db.exec("DROP TABLE IF EXISTS prompts");
181
288
  db.exec("DROP TABLE IF EXISTS sessions");
289
+ db.exec("DROP TABLE IF EXISTS enabled_repos");
182
290
  db.exec(SCHEMA);
183
291
  }
292
+ /**
293
+ * Migrate old database schema to new schema (internal use)
294
+ * Adds 'repo' column to sessions if it doesn't exist
295
+ */
296
+ function runMigrations(db) {
297
+ // Check if repo column exists
298
+ const tableInfo = db.prepare("PRAGMA table_info(sessions)").all();
299
+ const hasRepoColumn = tableInfo.some((col) => col.name === "repo");
300
+ if (!hasRepoColumn) {
301
+ // Add repo column with default value (empty string for legacy data)
302
+ db.exec("ALTER TABLE sessions ADD COLUMN repo TEXT NOT NULL DEFAULT ''");
303
+ }
304
+ // Ensure enabled_repos table exists
305
+ db.exec(`
306
+ CREATE TABLE IF NOT EXISTS enabled_repos (
307
+ repo TEXT PRIMARY KEY,
308
+ enabled_at TEXT NOT NULL
309
+ )
310
+ `);
311
+ // Create new indexes if they don't exist
312
+ db.exec("CREATE INDEX IF NOT EXISTS idx_sessions_repo ON sessions(repo)");
313
+ }
184
314
  // =============================================================================
185
315
  // Session ID Generation
186
316
  // =============================================================================
@@ -198,12 +328,12 @@ function generateSessionId(agent, conversationId) {
198
328
  function upsertSession(params) {
199
329
  const db = getDatabase();
200
330
  const stmt = db.prepare(`
201
- INSERT INTO sessions (id, agent, model, conversation_id, created_at)
202
- VALUES (?, ?, ?, ?, ?)
331
+ INSERT INTO sessions (id, repo, agent, model, conversation_id, created_at)
332
+ VALUES (?, ?, ?, ?, ?, ?)
203
333
  ON CONFLICT(id) DO UPDATE SET
204
334
  model = COALESCE(excluded.model, sessions.model)
205
335
  `);
206
- stmt.run(params.id, params.agent, params.model ?? null, params.conversationId ?? null, new Date().toISOString());
336
+ stmt.run(params.id, params.repo, params.agent, params.model ?? null, params.conversationId ?? null, new Date().toISOString());
207
337
  }
208
338
  /**
209
339
  * Get a session by ID
@@ -449,12 +579,83 @@ function getStats() {
449
579
  const toolCalls = db.prepare("SELECT COUNT(*) as count FROM tool_calls").get().count;
450
580
  return { sessions, prompts, toolCalls };
451
581
  }
582
+ /**
583
+ * Get stats for a specific repo
584
+ */
585
+ function getStatsForRepo(repo) {
586
+ const db = getDatabase();
587
+ const sessions = db.prepare("SELECT COUNT(*) as count FROM sessions WHERE repo = ?").get(repo).count;
588
+ const prompts = db.prepare(`
589
+ SELECT COUNT(*) as count FROM prompts
590
+ WHERE session_id IN (SELECT id FROM sessions WHERE repo = ?)
591
+ `).get(repo).count;
592
+ const toolCalls = db.prepare(`
593
+ SELECT COUNT(*) as count FROM tool_calls
594
+ WHERE session_id IN (SELECT id FROM sessions WHERE repo = ?)
595
+ `).get(repo).count;
596
+ return { sessions, prompts, toolCalls };
597
+ }
598
+ // =============================================================================
599
+ // Enabled Repos Operations
600
+ // =============================================================================
601
+ /**
602
+ * Register a repo as enabled
603
+ */
604
+ function enableRepo(repo) {
605
+ const db = getDatabase();
606
+ const stmt = db.prepare(`
607
+ INSERT INTO enabled_repos (repo, enabled_at)
608
+ VALUES (?, ?)
609
+ ON CONFLICT(repo) DO UPDATE SET enabled_at = excluded.enabled_at
610
+ `);
611
+ stmt.run(repo, new Date().toISOString());
612
+ }
613
+ /**
614
+ * Unregister a repo
615
+ */
616
+ function disableRepo(repo) {
617
+ const db = getDatabase();
618
+ db.prepare("DELETE FROM enabled_repos WHERE repo = ?").run(repo);
619
+ }
620
+ /**
621
+ * Check if a repo is enabled
622
+ */
623
+ function isRepoEnabled(repo) {
624
+ const db = getDatabase();
625
+ const result = db.prepare("SELECT 1 FROM enabled_repos WHERE repo = ? LIMIT 1").get(repo);
626
+ return result !== undefined && result !== null;
627
+ }
628
+ /**
629
+ * Get all enabled repos
630
+ */
631
+ function getEnabledRepos() {
632
+ const db = getDatabase();
633
+ const rows = db.prepare("SELECT repo, enabled_at FROM enabled_repos ORDER BY enabled_at DESC").all();
634
+ return rows.map(row => ({ repo: row.repo, enabledAt: row.enabled_at }));
635
+ }
636
+ /**
637
+ * Wipe all data and recreate fresh database
638
+ * Used by 'agentblame clean'
639
+ */
640
+ function wipeAndRecreateDatabase() {
641
+ closeDatabase();
642
+ const globalDir = getGlobalAgentBlameDir();
643
+ // Remove entire directory
644
+ if (fs.existsSync(globalDir)) {
645
+ fs.rmSync(globalDir, { recursive: true });
646
+ }
647
+ // Recreate fresh (directly create DB, bypassing existence check)
648
+ ensureGlobalAgentBlameDir();
649
+ setDatabasePath(getGlobalDbPath());
650
+ initDatabase();
651
+ }
452
652
  // =============================================================================
453
653
  // Helpers
454
654
  // =============================================================================
455
655
  function rowToSession(row) {
456
656
  return {
457
657
  id: row.id,
658
+ repo: row.repo,
458
659
  agent: row.agent,
459
660
  model: row.model,
460
661
  conversationId: row.conversation_id,
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/lib/database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/lib/database.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmGH,wDAEC;AAKD,0CAEC;AAKD,4CAEC;AAKD,8DAUC;AAMD,8CA4BC;AAaD,0CAQC;AAOD,gDAOC;AAMD,8BAKC;AAKD,kCAsBC;AAKD,sCAKC;AAKD,oCAGC;AAKD,sCAOC;AAmCD,8CAIC;AAiBD,sCAgBC;AAKD,gCAMC;AAKD,4DASC;AAKD,8CAKC;AAgBD,oCAaC;AAKD,8CAEC;AAKD,oDAKC;AAKD,8DAOC;AAMD,4EAYC;AAOD,4DA2DC;AAKD,oCAQC;AAgBD,wCAaC;AAKD,wDAKC;AAKD,wDAKC;AAMD,0DAcC;AAMD,gDAoBC;AASD,8CAYC;AAKD,4BAMC;AAKD,0CAYC;AASD,gCAQC;AAKD,kCAGC;AAKD,sCAIC;AAKD,0CAIC;AAMD,0DAcC;AA9tBD,2CAAsC;AACtC,4CAA8B;AAC9B,gDAAkC;AAClC,4CAA8B;AAC9B,6CAAyC;AAkCzC,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8Cd,CAAC;AAEF,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF;;GAEG;AACH,SAAgB,sBAAsB;IACpC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,aAAa,CAAC,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe;IAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,eAAe,CAAC,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB;IAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,MAAM,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,SAAgB,yBAAyB;IACvC,MAAM,SAAS,GAAG,sBAAsB,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;IAEnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,QAAgB;IAChD,8BAA8B;IAC9B,IAAI,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,QAAQ,CAAC,2BAA2B,EAAE;YACtD,GAAG,EAAE,QAAQ;YACb,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC,IAAI,EAAE,CAAC;QAEV,IAAI,SAAS,EAAE,CAAC;YACd,8DAA8D;YAC9D,+DAA+D;YAC/D,mEAAmE;YACnE,IAAI,UAAU,GAAG,SAAS;iBACvB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;iBACrB,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;iBACpB,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;iBAC3B,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;iBACjB,WAAW,EAAE,CAAC;YACjB,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,+BAA+B;IACjC,CAAC;IAED,yBAAyB;IACzB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAEhF,IAAI,UAAU,GAAoB,IAAI,CAAC;AACvC,IAAI,aAAa,GAAkB,IAAI,CAAC;AAExC;;;GAGG;AACH,SAAgB,eAAe,CAAC,MAAc;IAC5C,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;QAC7B,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,aAAa,GAAG,MAAM,CAAC;IACzB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,kBAAkB;IAChC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;IAC5F,CAAC;IACD,eAAe,CAAC,MAAM,CAAC,CAAC;IACxB,YAAY,EAAE,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,SAAgB,SAAS;IACvB,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;IAClG,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW;IACzB,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,UAAU,GAAG,IAAI,qBAAQ,CAAC,MAAM,CAAC,CAAC;IAClC,UAAU,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC5C,UAAU,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAC7C,UAAU,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAC9C,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAExB,gDAAgD;IAChD,aAAa,CAAC,UAAU,CAAC,CAAC;IAE1B,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa;IAC3B,IAAI,UAAU,EAAE,CAAC;QACf,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,UAAU,GAAG,IAAI,CAAC;IACpB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY;IAC1B,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa;IAC3B,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,EAAE,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC3C,EAAE,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IACxC,EAAE,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IACzC,EAAE,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IAC9C,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,EAAY;IACjC,8BAA8B;IAC9B,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,GAAG,EAAW,CAAC;IAC3E,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IAEnE,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,oEAAoE;QACpE,EAAE,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;IAC3E,CAAC;IAED,oCAAoC;IACpC,EAAE,CAAC,IAAI,CAAC;;;;;GAKP,CAAC,CAAC;IAEH,yCAAyC;IACzC,EAAE,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;AAC5E,CAAC;AAED,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF;;GAEG;AACH,SAAgB,iBAAiB,CAAC,KAAc,EAAE,cAAsB;IACtE,MAAM,IAAI,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,IAAI,cAAc,EAAE,CAAC,CAAC;IAC1C,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC7C,CAAC;AAcD;;GAEG;AACH,SAAgB,aAAa,CAAC,MAA2B;IACvD,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;GAKvB,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CACN,MAAM,CAAC,EAAE,EACT,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,KAAK,IAAI,IAAI,EACpB,MAAM,CAAC,cAAc,IAAI,IAAI,EAC7B,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CACzB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAC,SAAiB;IAC1C,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAQ,CAAC;IACvC,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,SAAgB,wBAAwB,CAAC,SAAiB,EAAE,SAAiB;IAC3E,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;GAKvB,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,KAAK,GAAG,CAAC;IACzC,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,yDAAyD,CAAC,CAAC;IACnF,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAU,CAAC;IACtC,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAChC,CAAC;AAaD;;GAEG;AACH,SAAgB,YAAY,CAAC,MAA0B;IACrD,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;GAGvB,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CACrB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAC7C,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,OAAe;IAC/C,OAAO,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAAC,SAAiB;IACpD,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,mEAAmE,CAAC,CAAC;IAC7F,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAU,CAAC;IAC1C,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,SAAgB,yBAAyB,CAAC,SAAiB;IACzD,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;GAEvB,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAQ,CAAC;IACvC,OAAO,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,SAAgB,gCAAgC,CAAC,SAAiB;IAChE,MAAM,OAAO,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,sBAAsB,CAAC;IACtD,CAAC;IAED,2DAA2D;IAC3D,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,cAAc,EAAE,CAAC;SAC1D,IAAI,CAAC,KAAK,CAAC,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,SAAgB,wBAAwB,CAAC,SAAiB;IAOxD,MAAM,OAAO,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,MAAM,SAAS,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAEpD,MAAM,MAAM,GAMP,EAAE,CAAC;IAER,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;QACxD,MAAM,cAAc,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;YAC3C,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;YAC9C,CAAC,CAAC,QAAQ,CAAC;QAEb,mDAAmD;QACnD,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE;YAC7C,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;YAChD,OAAO,MAAM,IAAI,UAAU,IAAI,MAAM,GAAG,cAAc,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,cAAc;QACd,MAAM,KAAK,GAA2B,EAAE,CAAC;QACzC,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACzD,CAAC;QAED,2DAA2D;QAC3D,IAAI,QAA4B,CAAC;QACjC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;QAC9D,CAAC;aAAM,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,6CAA6C;YAC7C,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;YAC7F,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACxD,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,SAAiB,EAAE,WAAmB;IACjE,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,yEAAyE,CAAC,CAAC;IACnG,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAChD,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,MAAM,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,CAAC;AACjD,CAAC;AAaD;;GAEG;AACH,SAAgB,cAAc,CAAC,MAA4B;IACzD,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;GAGvB,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CACrB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,QAAQ,IAAI,IAAI,EACvB,MAAM,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAC7C,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,SAAgB,sBAAsB,CAAC,SAAiB;IACtD,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,sEAAsE,CAAC,CAAC;IAChG,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAU,CAAC;IAC1C,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,SAAgB,sBAAsB,CAAC,SAAiB;IACtD,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,mFAAmF,CAAC,CAAC;IAC7G,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAU,CAAC;IAC1C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,SAAgB,uBAAuB,CAAC,SAAiB;IACvD,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;GAKvB,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAU,CAAC;IAC1C,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;IACpC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,SAAiB;IAClD,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IAEzB,yBAAyB;IACzB,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC,GAAG,CAAC,SAAS,CAAQ,CAAC;IACjG,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,0BAA0B;IAC1B,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAAC;;;;GAI/B,CAAC,CAAC,GAAG,CAAC,SAAS,CAAQ,CAAC;IAEzB,IAAI,CAAC,YAAY,EAAE,OAAO;QAAE,OAAO,IAAI,CAAC;IAExC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC;IACzD,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;IAEzD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;AAClD,CAAC;AAED,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF;;GAEG;AACH,SAAgB,iBAAiB,CAAC,UAAU,GAAG,EAAE;IAC/C,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,MAAM,WAAW,GAAI,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC,GAAG,EAAU,CAAC,KAAK,CAAC;IAE9F,EAAE,CAAC,OAAO,CAAC;;;;GAIV,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAEnB,MAAM,UAAU,GAAI,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC,GAAG,EAAU,CAAC,KAAK,CAAC;IAC7F,OAAO,EAAE,OAAO,EAAE,WAAW,GAAG,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AACjE,CAAC;AAED;;GAEG;AACH,SAAgB,QAAQ;IACtB,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,MAAM,QAAQ,GAAI,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC,GAAG,EAAU,CAAC,KAAK,CAAC;IAC3F,MAAM,OAAO,GAAI,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC,GAAG,EAAU,CAAC,KAAK,CAAC;IACzF,MAAM,SAAS,GAAI,EAAE,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC,GAAG,EAAU,CAAC,KAAK,CAAC;IAC9F,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,IAAY;IAC1C,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,MAAM,QAAQ,GAAI,EAAE,CAAC,OAAO,CAAC,uDAAuD,CAAC,CAAC,GAAG,CAAC,IAAI,CAAS,CAAC,KAAK,CAAC;IAC9G,MAAM,OAAO,GAAI,EAAE,CAAC,OAAO,CAAC;;;GAG3B,CAAC,CAAC,GAAG,CAAC,IAAI,CAAS,CAAC,KAAK,CAAC;IAC3B,MAAM,SAAS,GAAI,EAAE,CAAC,OAAO,CAAC;;;GAG7B,CAAC,CAAC,GAAG,CAAC,IAAI,CAAS,CAAC,KAAK,CAAC;IAC3B,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAC1C,CAAC;AAED,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;AAEhF;;GAEG;AACH,SAAgB,UAAU,CAAC,IAAY;IACrC,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;;GAIvB,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,IAAY;IACtC,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,EAAE,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACnE,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,IAAY;IACxC,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,oDAAoD,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1F,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe;IAC7B,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,qEAAqE,CAAC,CAAC,GAAG,EAAW,CAAC;IAC9G,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED;;;GAGG;AACH,SAAgB,uBAAuB;IACrC,aAAa,EAAE,CAAC;IAEhB,MAAM,SAAS,GAAG,sBAAsB,EAAE,CAAC;IAE3C,0BAA0B;IAC1B,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,iEAAiE;IACjE,yBAAyB,EAAE,CAAC;IAC5B,eAAe,CAAC,eAAe,EAAE,CAAC,CAAC;IACnC,YAAY,EAAE,CAAC;AACjB,CAAC;AAED,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF,SAAS,YAAY,CAAC,GAAQ;IAC5B,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,KAAK,EAAE,GAAG,CAAC,KAAgB;QAC3B,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,cAAc,EAAE,GAAG,CAAC,eAAe;QACnC,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,cAAc,EAAE,GAAG,CAAC,gBAAgB;QACpC,aAAa,EAAE,GAAG,CAAC,eAAe;KACnC,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,GAAQ;IAC3B,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,SAAS,EAAE,GAAG,CAAC,SAAS;KACzB,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,GAAQ;IAC7B,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,QAAQ,EAAE,GAAG,CAAC,SAAS;QACvB,QAAQ,EAAE,GAAG,CAAC,SAAS;QACvB,SAAS,EAAE,GAAG,CAAC,SAAS;KACzB,CAAC;AACJ,CAAC"}
@@ -57,6 +57,42 @@ export declare function installAllHooks(repoRoot: string): Promise<{
57
57
  claude: boolean;
58
58
  opencode: boolean;
59
59
  }>;
60
+ /**
61
+ * Detected git hooks setup type
62
+ */
63
+ export type HooksSetupType = {
64
+ type: "custom";
65
+ path: string;
66
+ } | {
67
+ type: "standard";
68
+ path: string;
69
+ };
70
+ /**
71
+ * Detect where git hooks should be installed.
72
+ * Simple approach:
73
+ * 1. Check core.hooksPath (explicit git config - works for husky, lefthook, custom setups)
74
+ * 2. Fall back to .git/hooks/ (standard location)
75
+ */
76
+ export declare function detectHooksSetup(repoRoot: string): Promise<HooksSetupType>;
77
+ /**
78
+ * Check if git hook is already installed
79
+ */
80
+ export declare function isGitHookInstalled(repoRoot: string): Promise<boolean>;
81
+ /**
82
+ * Lazily install git hook on first capture.
83
+ * Called from capture command to auto-setup without user running enable.
84
+ */
85
+ export declare function ensureGitHook(repoRoot: string): Promise<void>;
86
+ /**
87
+ * Install git hook by detecting existing setup and integrating appropriately.
88
+ * Simple approach:
89
+ * 1. Detect hooks directory (core.hooksPath or .git/hooks/)
90
+ * 2. Create/append to post-commit hook there
91
+ */
92
+ export declare function installGitHookSmart(repoRoot: string): Promise<{
93
+ success: boolean;
94
+ method: string;
95
+ }>;
60
96
  /**
61
97
  * Install git post-commit hook to auto-process commits (per-repo)
62
98
  * Always installs/updates the hook - removes old agentblame section if present and adds latest