@clauderecallhq/cli 0.12.1 → 0.61.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/LICENSE +37 -17
  2. package/README.md +316 -106
  3. package/dist/cli.js +1641 -361
  4. package/dist/daemon/entrypoint.js +1872 -54
  5. package/dist/mcp-server.js +930 -0
  6. package/dist/share/fonts/Inter-Bold.woff +0 -0
  7. package/dist/share/fonts/Inter-Regular.woff +0 -0
  8. package/dist/share/fonts/JetBrainsMono-Regular.woff +0 -0
  9. package/dist/web/assets/_brand-Bw9uSB4O.js +1 -0
  10. package/dist/web/assets/captureNode-9CVj9vYC.js +2 -0
  11. package/dist/web/assets/card-a-minimal-ujNERzX7.js +1 -0
  12. package/dist/web/assets/card-b-terminal-DpJ_tVpg.js +1 -0
  13. package/dist/web/assets/card-c-gradient-CZXVGuNd.js +1 -0
  14. package/dist/web/assets/card-d-dashboard-CHKD-PnB.js +1 -0
  15. package/dist/web/assets/dist-CWaokT35.js +56 -0
  16. package/dist/web/assets/index-B-HrjaDy.css +1 -0
  17. package/dist/web/assets/index-BZYcD76T.js +633 -0
  18. package/dist/web/assets/jetbrains-mono-latin-700-normal-D3wTyLJW.woff +0 -0
  19. package/dist/web/assets/patterns-BPeZb9N0.js +1 -0
  20. package/dist/web/assets/stats-BSwqSiFU.js +1 -0
  21. package/dist/web/assets/thread-D2AXyhOx.js +1 -0
  22. package/dist/web/index.html +8 -2
  23. package/package.json +57 -16
  24. package/scripts/postinstall.mjs +38 -0
  25. package/dist/cli.js.map +0 -1
  26. package/dist/commands/activate.js +0 -69
  27. package/dist/commands/activate.js.map +0 -1
  28. package/dist/commands/audit-secrets.js +0 -103
  29. package/dist/commands/audit-secrets.js.map +0 -1
  30. package/dist/commands/blame.js +0 -35
  31. package/dist/commands/blame.js.map +0 -1
  32. package/dist/commands/config-verification.js +0 -18
  33. package/dist/commands/config-verification.js.map +0 -1
  34. package/dist/commands/context.js +0 -144
  35. package/dist/commands/context.js.map +0 -1
  36. package/dist/commands/correlate.js +0 -70
  37. package/dist/commands/correlate.js.map +0 -1
  38. package/dist/commands/digest.js +0 -78
  39. package/dist/commands/digest.js.map +0 -1
  40. package/dist/commands/health.js +0 -62
  41. package/dist/commands/health.js.map +0 -1
  42. package/dist/commands/index.js +0 -247
  43. package/dist/commands/index.js.map +0 -1
  44. package/dist/commands/install-extension.js +0 -138
  45. package/dist/commands/install-extension.js.map +0 -1
  46. package/dist/commands/installs.js +0 -128
  47. package/dist/commands/installs.js.map +0 -1
  48. package/dist/commands/license.js +0 -39
  49. package/dist/commands/license.js.map +0 -1
  50. package/dist/commands/list.js +0 -47
  51. package/dist/commands/list.js.map +0 -1
  52. package/dist/commands/mcp.js +0 -29
  53. package/dist/commands/mcp.js.map +0 -1
  54. package/dist/commands/open.js +0 -28
  55. package/dist/commands/open.js.map +0 -1
  56. package/dist/commands/paste.js +0 -154
  57. package/dist/commands/paste.js.map +0 -1
  58. package/dist/commands/projects.js +0 -36
  59. package/dist/commands/projects.js.map +0 -1
  60. package/dist/commands/search.js +0 -67
  61. package/dist/commands/search.js.map +0 -1
  62. package/dist/commands/semantic.js +0 -173
  63. package/dist/commands/semantic.js.map +0 -1
  64. package/dist/commands/show.js +0 -121
  65. package/dist/commands/show.js.map +0 -1
  66. package/dist/commands/start.js +0 -47
  67. package/dist/commands/start.js.map +0 -1
  68. package/dist/commands/stats.js +0 -133
  69. package/dist/commands/stats.js.map +0 -1
  70. package/dist/commands/status.js +0 -45
  71. package/dist/commands/status.js.map +0 -1
  72. package/dist/commands/stop.js +0 -29
  73. package/dist/commands/stop.js.map +0 -1
  74. package/dist/commands/thread.js +0 -396
  75. package/dist/commands/thread.js.map +0 -1
  76. package/dist/context/formatter.js +0 -103
  77. package/dist/context/formatter.js.map +0 -1
  78. package/dist/daemon/auto-tag-config.js +0 -103
  79. package/dist/daemon/auto-tag-config.js.map +0 -1
  80. package/dist/daemon/auto-tag-config.test.js +0 -72
  81. package/dist/daemon/auto-tag-config.test.js.map +0 -1
  82. package/dist/daemon/auto-title-config.js +0 -70
  83. package/dist/daemon/auto-title-config.js.map +0 -1
  84. package/dist/daemon/bulk-title-jobs.js +0 -170
  85. package/dist/daemon/bulk-title-jobs.js.map +0 -1
  86. package/dist/daemon/correlator.js +0 -320
  87. package/dist/daemon/correlator.js.map +0 -1
  88. package/dist/daemon/discover.js +0 -316
  89. package/dist/daemon/discover.js.map +0 -1
  90. package/dist/daemon/editor-detection.js +0 -186
  91. package/dist/daemon/editor-detection.js.map +0 -1
  92. package/dist/daemon/entrypoint.js.map +0 -1
  93. package/dist/daemon/git-correlator.js +0 -256
  94. package/dist/daemon/git-correlator.js.map +0 -1
  95. package/dist/daemon/mcp-installer.js +0 -108
  96. package/dist/daemon/mcp-installer.js.map +0 -1
  97. package/dist/daemon/onboarding-state.js +0 -140
  98. package/dist/daemon/onboarding-state.js.map +0 -1
  99. package/dist/daemon/pidfile.js +0 -57
  100. package/dist/daemon/pidfile.js.map +0 -1
  101. package/dist/daemon/ports.js +0 -48
  102. package/dist/daemon/ports.js.map +0 -1
  103. package/dist/daemon/scanProgressRegistry.js +0 -62
  104. package/dist/daemon/scanProgressRegistry.js.map +0 -1
  105. package/dist/daemon/server.js +0 -2010
  106. package/dist/daemon/server.js.map +0 -1
  107. package/dist/daemon/tag-scanner/anthropic-client.js +0 -40
  108. package/dist/daemon/tag-scanner/anthropic-client.js.map +0 -1
  109. package/dist/daemon/tag-scanner/autopilot.js +0 -131
  110. package/dist/daemon/tag-scanner/autopilot.js.map +0 -1
  111. package/dist/daemon/tag-scanner/claude-cli-driver.js +0 -250
  112. package/dist/daemon/tag-scanner/claude-cli-driver.js.map +0 -1
  113. package/dist/daemon/tag-scanner/orchestrator.js +0 -88
  114. package/dist/daemon/tag-scanner/orchestrator.js.map +0 -1
  115. package/dist/daemon/tag-scanner/prompt.js +0 -46
  116. package/dist/daemon/tag-scanner/prompt.js.map +0 -1
  117. package/dist/daemon/tag-scanner/prompt.test.js +0 -48
  118. package/dist/daemon/tag-scanner/prompt.test.js.map +0 -1
  119. package/dist/daemon/tag-scanner/scan-state.js +0 -49
  120. package/dist/daemon/tag-scanner/scan-state.js.map +0 -1
  121. package/dist/daemon/tag-scanner/session-fetcher.js +0 -82
  122. package/dist/daemon/tag-scanner/session-fetcher.js.map +0 -1
  123. package/dist/daemon/tag-scanner/session-fetcher.test.js +0 -34
  124. package/dist/daemon/tag-scanner/session-fetcher.test.js.map +0 -1
  125. package/dist/daemon/tag-scanner/validator.js +0 -50
  126. package/dist/daemon/tag-scanner/validator.js.map +0 -1
  127. package/dist/daemon/tag-scanner/validator.test.js +0 -41
  128. package/dist/daemon/tag-scanner/validator.test.js.map +0 -1
  129. package/dist/daemon/terminal-registry.js +0 -443
  130. package/dist/daemon/terminal-registry.js.map +0 -1
  131. package/dist/daemon/ui.js +0 -64
  132. package/dist/daemon/ui.js.map +0 -1
  133. package/dist/daemon/watcher.js +0 -256
  134. package/dist/daemon/watcher.js.map +0 -1
  135. package/dist/db/client.js +0 -22
  136. package/dist/db/client.js.map +0 -1
  137. package/dist/db/schema.js +0 -496
  138. package/dist/db/schema.js.map +0 -1
  139. package/dist/license/api-base.js +0 -13
  140. package/dist/license/api-base.js.map +0 -1
  141. package/dist/license/manager.js +0 -43
  142. package/dist/license/manager.js.map +0 -1
  143. package/dist/license/public-key.js +0 -19
  144. package/dist/license/public-key.js.map +0 -1
  145. package/dist/license/storage.js +0 -27
  146. package/dist/license/storage.js.map +0 -1
  147. package/dist/license/verify.js +0 -23
  148. package/dist/license/verify.js.map +0 -1
  149. package/dist/mcp/audit.js +0 -126
  150. package/dist/mcp/audit.js.map +0 -1
  151. package/dist/mcp/prompts.js +0 -180
  152. package/dist/mcp/prompts.js.map +0 -1
  153. package/dist/mcp/server.js +0 -502
  154. package/dist/mcp/server.js.map +0 -1
  155. package/dist/mcp/thread-tools.js +0 -363
  156. package/dist/mcp/thread-tools.js.map +0 -1
  157. package/dist/mcp/write-tools.js +0 -239
  158. package/dist/mcp/write-tools.js.map +0 -1
  159. package/dist/parser/jsonl.js +0 -150
  160. package/dist/parser/jsonl.js.map +0 -1
  161. package/dist/semantic/chunker.js +0 -47
  162. package/dist/semantic/chunker.js.map +0 -1
  163. package/dist/semantic/config.js +0 -74
  164. package/dist/semantic/config.js.map +0 -1
  165. package/dist/semantic/embedder.js +0 -54
  166. package/dist/semantic/embedder.js.map +0 -1
  167. package/dist/semantic/fusion.js +0 -38
  168. package/dist/semantic/fusion.js.map +0 -1
  169. package/dist/semantic/model-download.js +0 -69
  170. package/dist/semantic/model-download.js.map +0 -1
  171. package/dist/semantic/pipeline.js +0 -375
  172. package/dist/semantic/pipeline.js.map +0 -1
  173. package/dist/semantic/query.js +0 -42
  174. package/dist/semantic/query.js.map +0 -1
  175. package/dist/semantic/worker.js +0 -78
  176. package/dist/semantic/worker.js.map +0 -1
  177. package/dist/stats/backfill.js +0 -151
  178. package/dist/stats/backfill.js.map +0 -1
  179. package/dist/stats/health.js +0 -102
  180. package/dist/stats/health.js.map +0 -1
  181. package/dist/stats/query.js +0 -385
  182. package/dist/stats/query.js.map +0 -1
  183. package/dist/utils/aliases.js +0 -107
  184. package/dist/utils/aliases.js.map +0 -1
  185. package/dist/utils/autoCollections.js +0 -635
  186. package/dist/utils/autoCollections.js.map +0 -1
  187. package/dist/utils/autoTitle.js +0 -348
  188. package/dist/utils/autoTitle.js.map +0 -1
  189. package/dist/utils/collections.js +0 -446
  190. package/dist/utils/collections.js.map +0 -1
  191. package/dist/utils/format.js +0 -46
  192. package/dist/utils/format.js.map +0 -1
  193. package/dist/utils/notes.js +0 -270
  194. package/dist/utils/notes.js.map +0 -1
  195. package/dist/utils/paths.js +0 -50
  196. package/dist/utils/paths.js.map +0 -1
  197. package/dist/utils/pricing.js +0 -257
  198. package/dist/utils/pricing.js.map +0 -1
  199. package/dist/utils/secret-scanner.js +0 -166
  200. package/dist/utils/secret-scanner.js.map +0 -1
  201. package/dist/utils/sessionLabel.js +0 -64
  202. package/dist/utils/sessionLabel.js.map +0 -1
  203. package/dist/utils/tags.js +0 -97
  204. package/dist/utils/tags.js.map +0 -1
  205. package/dist/utils/thread-context.js +0 -129
  206. package/dist/utils/thread-context.js.map +0 -1
  207. package/dist/utils/threadFilter.js +0 -18
  208. package/dist/utils/threadFilter.js.map +0 -1
  209. package/dist/utils/threads-titler.js +0 -298
  210. package/dist/utils/threads-titler.js.map +0 -1
  211. package/dist/utils/threads.js +0 -383
  212. package/dist/utils/threads.js.map +0 -1
  213. package/dist/utils/usage.js +0 -76
  214. package/dist/utils/usage.js.map +0 -1
  215. package/dist/verification/compute.js +0 -88
  216. package/dist/verification/compute.js.map +0 -1
  217. package/dist/verification/config.js +0 -34
  218. package/dist/verification/config.js.map +0 -1
  219. package/dist/web/assets/index-CIr6J4Fw.js +0 -1201
  220. package/dist/web/assets/index-Ctc8g9Jw.css +0 -1
@@ -1,256 +0,0 @@
1
- import { watch } from 'chokidar';
2
- import { statSync } from 'node:fs';
3
- import { CLAUDE_PROJECTS_DIR } from '../utils/paths.js';
4
- import { getDb } from '../db/client.js';
5
- import { parseSessionFile } from '../parser/jsonl.js';
6
- import { basename } from 'node:path';
7
- import { tryAutoAlias } from './correlator.js';
8
- import { redactSecrets } from '../utils/secret-scanner.js';
9
- import { maybeProcessOnSessionClose } from '../semantic/pipeline.js';
10
- import { writeMessageUsageRows, recomputeSessionRollup } from '../utils/usage.js';
11
- import { maybeCorrelateInBackground } from './git-correlator.js';
12
- import { deriveHeuristicTitle, setAutoTitle } from '../utils/autoTitle.js';
13
- import { readAutoTitleConfig } from './auto-title-config.js';
14
- import { applyRulesToSession } from '../utils/autoCollections.js';
15
- const DEBOUNCE_MS = 1500;
16
- const pending = new Map();
17
- function getEncodedProjectFromPath(filePath) {
18
- // ~/.claude/projects/<encoded>/<uuid>.jsonl
19
- const parts = filePath.split('/');
20
- const idx = parts.findIndex((p) => p === 'projects');
21
- if (idx === -1 || idx + 1 >= parts.length)
22
- return null;
23
- return parts[idx + 1] ?? null;
24
- }
25
- async function reindexFile(filePath) {
26
- let mtime = 0;
27
- try {
28
- mtime = statSync(filePath).mtimeMs;
29
- }
30
- catch {
31
- return;
32
- }
33
- const encodedProject = getEncodedProjectFromPath(filePath);
34
- if (!encodedProject)
35
- return;
36
- const db = getDb();
37
- const existing = db
38
- .prepare('SELECT id, file_mtime FROM sessions WHERE file_path = ? LIMIT 1')
39
- .get(filePath);
40
- if (existing && existing.file_mtime >= mtime)
41
- return;
42
- const accs = new Map();
43
- let observedCwd = null;
44
- for await (const e of parseSessionFile(filePath)) {
45
- let acc = accs.get(e.sessionId);
46
- if (!acc) {
47
- acc = {
48
- sessionId: e.sessionId,
49
- entries: [],
50
- earliest: null,
51
- latest: null,
52
- firstUser: null,
53
- users: 0,
54
- assistants: 0,
55
- cwd: null,
56
- branch: null,
57
- version: null,
58
- };
59
- accs.set(e.sessionId, acc);
60
- }
61
- acc.entries.push(e);
62
- if (e.timestamp) {
63
- if (!acc.earliest || e.timestamp < acc.earliest)
64
- acc.earliest = e.timestamp;
65
- if (!acc.latest || e.timestamp > acc.latest)
66
- acc.latest = e.timestamp;
67
- }
68
- if (e.role === 'user' && !e.isSidechain) {
69
- acc.users += 1;
70
- if (!acc.firstUser && e.contentText) {
71
- const body = e.contentText.replace(/^(?:<[^>]+>[\s\S]*?<\/[^>]+>\s*)+/, '').trim();
72
- if (body && !/^<local-command-caveat>/.test(body)) {
73
- acc.firstUser = redactSecrets(body).redacted.slice(0, 200);
74
- }
75
- }
76
- }
77
- else if (e.role === 'assistant' && !e.isSidechain) {
78
- acc.assistants += 1;
79
- }
80
- if (!acc.cwd && e.cwd)
81
- acc.cwd = e.cwd;
82
- if (!acc.branch && e.gitBranch)
83
- acc.branch = e.gitBranch;
84
- if (!acc.version && e.version)
85
- acc.version = e.version;
86
- if (!observedCwd && e.cwd)
87
- observedCwd = e.cwd;
88
- }
89
- const projectName = observedCwd ? basename(observedCwd) || observedCwd : encodedProject;
90
- const decoded = observedCwd ?? encodedProject.replace(/^-/, '/').replace(/-/g, '/');
91
- const upsertProj = db.prepare(`INSERT INTO projects (encoded_path, decoded_path, name)
92
- VALUES (?, ?, ?)
93
- ON CONFLICT(encoded_path) DO UPDATE SET decoded_path = excluded.decoded_path, name = excluded.name
94
- RETURNING id`);
95
- const insSession = db.prepare(`
96
- INSERT INTO sessions (
97
- id, project_id, file_path, file_mtime,
98
- started_at, ended_at, message_count,
99
- user_message_count, assistant_message_count,
100
- first_user_message, cwd, git_branch, version, indexed_at
101
- ) VALUES (@id, @project_id, @file_path, @file_mtime, @started_at, @ended_at, @message_count,
102
- @user_message_count, @assistant_message_count, @first_user_message,
103
- @cwd, @git_branch, @version, @indexed_at)
104
- ON CONFLICT(id) DO UPDATE SET
105
- file_path = excluded.file_path,
106
- file_mtime = excluded.file_mtime,
107
- started_at = excluded.started_at,
108
- ended_at = excluded.ended_at,
109
- message_count = excluded.message_count,
110
- user_message_count = excluded.user_message_count,
111
- assistant_message_count = excluded.assistant_message_count,
112
- first_user_message = excluded.first_user_message,
113
- cwd = excluded.cwd,
114
- git_branch = excluded.git_branch,
115
- version = excluded.version,
116
- indexed_at = excluded.indexed_at
117
- `);
118
- const insMsg = db.prepare(`
119
- INSERT INTO messages (uuid, session_id, parent_uuid, type, role, timestamp,
120
- is_sidechain, content_text, tool_names, raw_json)
121
- VALUES (@uuid, @session_id, @parent_uuid, @type, @role, @timestamp,
122
- @is_sidechain, @content_text, @tool_names, @raw_json)
123
- ON CONFLICT(uuid) DO NOTHING
124
- `);
125
- const delMsgs = db.prepare('DELETE FROM messages WHERE session_id = ?');
126
- const now = new Date().toISOString();
127
- const txn = db.transaction(() => {
128
- const { id: projectId } = upsertProj.get(encodedProject, decoded, projectName);
129
- for (const acc of accs.values()) {
130
- insSession.run({
131
- id: acc.sessionId,
132
- project_id: projectId,
133
- file_path: filePath,
134
- file_mtime: mtime,
135
- started_at: acc.earliest,
136
- ended_at: acc.latest,
137
- message_count: acc.entries.length,
138
- user_message_count: acc.users,
139
- assistant_message_count: acc.assistants,
140
- first_user_message: acc.firstUser,
141
- cwd: acc.cwd,
142
- git_branch: acc.branch,
143
- version: acc.version,
144
- indexed_at: now,
145
- });
146
- delMsgs.run(acc.sessionId);
147
- for (const entry of acc.entries)
148
- insMsg.run(makeEntryRow(entry));
149
- // v0.10a — per-message usage + session rollups.
150
- writeMessageUsageRows(db, acc.sessionId, acc.entries);
151
- recomputeSessionRollup(db, acc.sessionId);
152
- }
153
- });
154
- txn();
155
- // v0.14b (T5) — refresh heuristic title after the session row lands.
156
- // setAutoTitle is a no-op when the existing title is agent-sourced, so a
157
- // user's ✨ Generate choice survives subsequent reindexes of the same file.
158
- if (readAutoTitleConfig().heuristicEnabled) {
159
- for (const acc of accs.values()) {
160
- const title = deriveHeuristicTitle(acc.firstUser);
161
- if (title)
162
- setAutoTitle(acc.sessionId, title, 'heuristic');
163
- }
164
- }
165
- }
166
- function makeEntryRow(e) {
167
- // Redact secrets before they ever reach SQLite. The source JSONL at
168
- // ~/.claude/projects/ stays untouched; only our derived store is scrubbed.
169
- const safeContent = redactSecrets(e.contentText).redacted;
170
- const safeRaw = redactSecrets(e.raw).redacted;
171
- return {
172
- uuid: e.uuid,
173
- session_id: e.sessionId,
174
- parent_uuid: e.parentUuid,
175
- type: e.type,
176
- role: e.role,
177
- timestamp: e.timestamp,
178
- is_sidechain: e.isSidechain ? 1 : 0,
179
- content_text: safeContent,
180
- tool_names: e.toolNames.join(','),
181
- raw_json: safeRaw,
182
- };
183
- }
184
- function scheduleReindex(filePath) {
185
- const prior = pending.get(filePath);
186
- if (prior?.timer)
187
- clearTimeout(prior.timer);
188
- const entry = { timer: null };
189
- entry.timer = setTimeout(() => {
190
- pending.delete(filePath);
191
- reindexFile(filePath)
192
- .then(async () => {
193
- // v0.7 correlator: after a successful ingest, best-effort auto-alias
194
- // this session to the VS Code terminal tab it was started in. Silent
195
- // if no matching entry is in the registry.
196
- void tryAutoAlias(filePath);
197
- // v0.11 — semantic summary pass. No-op when semantic mode is off.
198
- // Walks every session in the file (a single .jsonl can hold > 1).
199
- try {
200
- const db = getDb();
201
- const rows = db
202
- .prepare('SELECT id FROM sessions WHERE file_path = ?')
203
- .all(filePath);
204
- for (const r of rows) {
205
- void maybeProcessOnSessionClose(r.id);
206
- // v0.10b — link newly-closed sessions to the commits their cwd
207
- // saw during the session window. Non-blocking, silently no-ops
208
- // on non-repo cwds.
209
- maybeCorrelateInBackground(r.id);
210
- // v0.15 T6 — apply the auto-collection engine. Pure SQL, fast;
211
- // runs inline so the UI sees new memberships immediately after
212
- // the session row appears.
213
- try {
214
- applyRulesToSession(r.id);
215
- }
216
- catch (acErr) {
217
- console.error('[watcher] auto-collections apply failed:', acErr);
218
- }
219
- }
220
- }
221
- catch (err) {
222
- console.error('[watcher] semantic dispatch failed:', err);
223
- }
224
- })
225
- .catch((err) => {
226
- console.error(`[watcher] reindex failed for ${filePath}:`, err);
227
- });
228
- }, DEBOUNCE_MS);
229
- pending.set(filePath, entry);
230
- }
231
- export function startWatcher() {
232
- const watcher = watch(CLAUDE_PROJECTS_DIR, {
233
- depth: 4,
234
- ignoreInitial: true,
235
- persistent: true,
236
- awaitWriteFinish: { stabilityThreshold: 500, pollInterval: 200 },
237
- ignored: (path) => {
238
- // Only care about .jsonl files (and the dirs containing them).
239
- if (path.endsWith('.jsonl'))
240
- return false;
241
- try {
242
- const stat = statSync(path);
243
- if (stat.isDirectory())
244
- return false;
245
- }
246
- catch {
247
- /* ignore */
248
- }
249
- return true;
250
- },
251
- });
252
- watcher.on('add', (p) => p.endsWith('.jsonl') && scheduleReindex(p));
253
- watcher.on('change', (p) => p.endsWith('.jsonl') && scheduleReindex(p));
254
- return watcher;
255
- }
256
- //# sourceMappingURL=watcher.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../src/daemon/watcher.ts"],"names":[],"mappings":"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"}
package/dist/db/client.js DELETED
@@ -1,22 +0,0 @@
1
- import Database from 'better-sqlite3';
2
- import * as sqliteVec from 'sqlite-vec';
3
- import { ensureRecallHome, RECALL_DB_PATH } from '../utils/paths.js';
4
- import { SCHEMA_SQL, runMigrations } from './schema.js';
5
- let db = null;
6
- export function getDb() {
7
- if (db)
8
- return db;
9
- ensureRecallHome();
10
- db = new Database(RECALL_DB_PATH);
11
- sqliteVec.load(db);
12
- db.exec(SCHEMA_SQL);
13
- runMigrations(db);
14
- return db;
15
- }
16
- export function closeDb() {
17
- if (db) {
18
- db.close();
19
- db = null;
20
- }
21
- }
22
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAExD,IAAI,EAAE,GAAwB,IAAI,CAAC;AAEnC,MAAM,UAAU,KAAK;IACnB,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAClB,gBAAgB,EAAE,CAAC;IACnB,EAAE,GAAG,IAAI,QAAQ,CAAC,cAAc,CAAC,CAAC;IAClC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnB,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpB,aAAa,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,IAAI,EAAE,EAAE,CAAC;QACP,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,EAAE,GAAG,IAAI,CAAC;IACZ,CAAC;AACH,CAAC"}