@spool-lab/core 0.6.0 → 0.6.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.
- package/README.md +22 -14
- package/dist/db/db.d.ts +1 -1
- package/dist/db/db.d.ts.map +1 -1
- package/dist/db/db.js +24 -13
- package/dist/db/db.js.map +1 -1
- package/dist/db/native-binding.d.ts +21 -0
- package/dist/db/native-binding.d.ts.map +1 -0
- package/dist/db/native-binding.js +32 -0
- package/dist/db/native-binding.js.map +1 -0
- package/dist/db/published-shares-cache.d.ts.map +1 -1
- package/dist/db/published-shares-cache.js.map +1 -1
- package/dist/db/queries.d.ts.map +1 -1
- package/dist/db/queries.js +96 -74
- package/dist/db/queries.js.map +1 -1
- package/dist/db/search-query.d.ts.map +1 -1
- package/dist/db/search-query.js +8 -8
- package/dist/db/search-query.js.map +1 -1
- package/dist/db/share-drafts.d.ts.map +1 -1
- package/dist/db/share-drafts.js +1 -3
- package/dist/db/share-drafts.js.map +1 -1
- package/dist/doctor/checks/config.d.ts.map +1 -1
- package/dist/doctor/checks/config.js +3 -3
- package/dist/doctor/checks/config.js.map +1 -1
- package/dist/doctor/checks/db.d.ts.map +1 -1
- package/dist/doctor/checks/db.js +36 -18
- package/dist/doctor/checks/db.js.map +1 -1
- package/dist/doctor/checks/env.d.ts.map +1 -1
- package/dist/doctor/checks/env.js +5 -1
- package/dist/doctor/checks/env.js.map +1 -1
- package/dist/doctor/checks/index.js +2 -2
- package/dist/doctor/checks/index.js.map +1 -1
- package/dist/doctor/checks/native.d.ts.map +1 -1
- package/dist/doctor/checks/native.js.map +1 -1
- package/dist/doctor/checks/versions.d.ts.map +1 -1
- package/dist/doctor/checks/versions.js +2 -2
- package/dist/doctor/checks/versions.js.map +1 -1
- package/dist/doctor/preflight.js +2 -2
- package/dist/doctor/preflight.js.map +1 -1
- package/dist/doctor/runner.d.ts.map +1 -1
- package/dist/doctor/runner.js +1 -1
- package/dist/doctor/runner.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/migrations/agent-search-cleanup.d.ts.map +1 -1
- package/dist/migrations/agent-search-cleanup.js +10 -6
- package/dist/migrations/agent-search-cleanup.js.map +1 -1
- package/dist/migrations/worktree-identity-upgrade.d.ts.map +1 -1
- package/dist/migrations/worktree-identity-upgrade.js +3 -1
- package/dist/migrations/worktree-identity-upgrade.js.map +1 -1
- package/dist/observability/exporter-file.d.ts.map +1 -1
- package/dist/observability/exporter-file.js +14 -6
- package/dist/observability/exporter-file.js.map +1 -1
- package/dist/observability/exporter-pretty.d.ts.map +1 -1
- package/dist/observability/exporter-pretty.js +13 -7
- package/dist/observability/exporter-pretty.js.map +1 -1
- package/dist/observability/layer.d.ts.map +1 -1
- package/dist/observability/layer.js +1 -1
- package/dist/observability/layer.js.map +1 -1
- package/dist/parsers/claude.d.ts.map +1 -1
- package/dist/parsers/claude.js.map +1 -1
- package/dist/parsers/codex.d.ts.map +1 -1
- package/dist/parsers/codex.js +2 -6
- package/dist/parsers/codex.js.map +1 -1
- package/dist/parsers/gemini.d.ts.map +1 -1
- package/dist/parsers/gemini.js +11 -11
- package/dist/parsers/gemini.js.map +1 -1
- package/dist/parsers/opencode.d.ts.map +1 -1
- package/dist/parsers/opencode.js +67 -33
- package/dist/parsers/opencode.js.map +1 -1
- package/dist/parsers/pi.d.ts.map +1 -1
- package/dist/parsers/pi.js +7 -6
- package/dist/parsers/pi.js.map +1 -1
- package/dist/projects/display-name.d.ts.map +1 -1
- package/dist/projects/display-name.js +4 -1
- package/dist/projects/display-name.js.map +1 -1
- package/dist/projects/fs.d.ts.map +1 -1
- package/dist/projects/fs.js +1 -1
- package/dist/projects/fs.js.map +1 -1
- package/dist/projects/groups.d.ts.map +1 -1
- package/dist/projects/groups.js +8 -4
- package/dist/projects/groups.js.map +1 -1
- package/dist/projects/identity-synthesizers.d.ts.map +1 -1
- package/dist/projects/identity-synthesizers.js.map +1 -1
- package/dist/projects/identity.d.ts +1 -1
- package/dist/projects/identity.d.ts.map +1 -1
- package/dist/projects/identity.js +12 -12
- package/dist/projects/identity.js.map +1 -1
- package/dist/projects/local-identity.d.ts +5 -0
- package/dist/projects/local-identity.d.ts.map +1 -0
- package/dist/projects/local-identity.js +68 -0
- package/dist/projects/local-identity.js.map +1 -0
- package/dist/projects/sessions.d.ts.map +1 -1
- package/dist/projects/sessions.js +11 -10
- package/dist/projects/sessions.js.map +1 -1
- package/dist/projects/worktree-resolvers.d.ts.map +1 -1
- package/dist/projects/worktree-resolvers.js +16 -8
- package/dist/projects/worktree-resolvers.js.map +1 -1
- package/dist/security/index.d.ts +2 -2
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/index.js +1 -1
- package/dist/security/index.js.map +1 -1
- package/dist/security/maintenance.d.ts.map +1 -1
- package/dist/security/maintenance.js +1 -1
- package/dist/security/maintenance.js.map +1 -1
- package/dist/security/profile.d.ts.map +1 -1
- package/dist/security/profile.js +4 -1
- package/dist/security/profile.js.map +1 -1
- package/dist/security/purge.d.ts +2 -2
- package/dist/security/purge.d.ts.map +1 -1
- package/dist/security/purge.js +20 -16
- package/dist/security/purge.js.map +1 -1
- package/dist/security/repo.d.ts +1 -1
- package/dist/security/repo.d.ts.map +1 -1
- package/dist/security/repo.js +64 -37
- package/dist/security/repo.js.map +1 -1
- package/dist/security/scan.d.ts +2 -2
- package/dist/security/scan.d.ts.map +1 -1
- package/dist/security/scan.js +6 -4
- package/dist/security/scan.js.map +1 -1
- package/dist/security/worker.d.ts +2 -2
- package/dist/security/worker.d.ts.map +1 -1
- package/dist/security/worker.js +4 -10
- package/dist/security/worker.js.map +1 -1
- package/dist/sync/source-paths.d.ts.map +1 -1
- package/dist/sync/source-paths.js +10 -16
- package/dist/sync/source-paths.js.map +1 -1
- package/dist/sync/syncer.d.ts.map +1 -1
- package/dist/sync/syncer.js +69 -45
- package/dist/sync/syncer.js.map +1 -1
- package/dist/sync/watcher.d.ts +1 -1
- package/dist/sync/watcher.d.ts.map +1 -1
- package/dist/sync/watcher.js +15 -4
- package/dist/sync/watcher.js.map +1 -1
- package/dist/util/resolve-bin.d.ts.map +1 -1
- package/dist/util/resolve-bin.js +40 -25
- package/dist/util/resolve-bin.js.map +1 -1
- package/package.json +34 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"share-drafts.js","sourceRoot":"","sources":["../../src/db/share-drafts.ts"],"names":[],"mappings":"AAwCA,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"share-drafts.js","sourceRoot":"","sources":["../../src/db/share-drafts.ts"],"names":[],"mappings":"AAwCA,MAAM,SAAS,GACb,mFAAmF,CAAA;AACrF,MAAM,SAAS,GAAG,GAAG,SAAS,iBAAiB,CAAA;AAE/C;;iEAEiE;AACjE,MAAM,UAAU,eAAe,CAC7B,EAAqB,EACrB,IAAI,GAAuB,EAAE;IAE7B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,GAAG,CAAA;IAC/B,OAAO,EAAE;SACN,OAAO,CAAC,UAAU,SAAS,qDAAqD,CAAC;SACjF,GAAG,CAAC,KAAK,CAAyB,CAAA;AACvC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAAqB,EAAE,OAAe;IAClE,OAAO,CACJ,EAAE,CAAC,OAAO,CAAC,UAAU,SAAS,uCAAuC,CAAC,CAAC,GAAG,CAAC,OAAO,CAErE,IAAI,IAAI,CACvB,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAAqB,EAAE,KAA4B;IAClF,EAAE,CAAC,OAAO,CACR;;;;;;;;2CAQuC,CACxC,CAAC,GAAG,CACH,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,YAAY,CACnB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAAqB,EAAE,OAAe;IACrE,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;AACxE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,EAAqB,EAAE,WAAmB;IAC7E,MAAM,GAAG,GAAG,EAAE;SACX,OAAO,CACN;iEAC2D,CAC5D;SACA,GAAG,CAAC,WAAW,CAAkB,CAAA;IACpC,OAAO,GAAG,CAAC,CAAC,CAAA;AACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/doctor/checks/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/doctor/checks/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAY,KAAK,EAAe,MAAM,aAAa,CAAA;AAmC/D,eAAO,MAAM,YAAY,EAAE,KAAK,EAK7B,CAAA"}
|
|
@@ -6,7 +6,7 @@ const FILES = [
|
|
|
6
6
|
id: 'config.agents',
|
|
7
7
|
filename: 'agents.json',
|
|
8
8
|
required: false,
|
|
9
|
-
validate: parsed => {
|
|
9
|
+
validate: (parsed) => {
|
|
10
10
|
if (parsed === null || typeof parsed !== 'object')
|
|
11
11
|
return 'expected JSON object';
|
|
12
12
|
return null;
|
|
@@ -16,7 +16,7 @@ const FILES = [
|
|
|
16
16
|
id: 'config.ui',
|
|
17
17
|
filename: 'ui.json',
|
|
18
18
|
required: false,
|
|
19
|
-
validate: parsed => {
|
|
19
|
+
validate: (parsed) => {
|
|
20
20
|
if (parsed === null || typeof parsed !== 'object')
|
|
21
21
|
return 'expected JSON object';
|
|
22
22
|
return null;
|
|
@@ -28,7 +28,7 @@ const FILES = [
|
|
|
28
28
|
required: false,
|
|
29
29
|
},
|
|
30
30
|
];
|
|
31
|
-
export const configChecks = FILES.map(file => ({
|
|
31
|
+
export const configChecks = FILES.map((file) => ({
|
|
32
32
|
id: file.id,
|
|
33
33
|
category: 'config',
|
|
34
34
|
title: file.filename,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/doctor/checks/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/doctor/checks/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../../src/doctor/checks/db.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../../src/doctor/checks/db.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAA8B,MAAM,aAAa,CAAA;AAOpE,eAAO,MAAM,QAAQ,EAAE,KAAK,EA0J3B,CAAA"}
|
package/dist/doctor/checks/db.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import Database from 'better-sqlite3';
|
|
2
1
|
import { existsSync, statSync } from 'node:fs';
|
|
3
2
|
import { DB_PATH } from '../../db/db.js';
|
|
3
|
+
import { openDatabase } from '../../db/native-binding.js';
|
|
4
4
|
import { probeSqlite } from '../preflight.js';
|
|
5
5
|
const WAL_PATH = `${DB_PATH}-wal`;
|
|
6
6
|
const WAL_WARN_RATIO = 0.5;
|
|
@@ -14,7 +14,9 @@ export const dbChecks = [
|
|
|
14
14
|
run: () => {
|
|
15
15
|
if (!existsSync(DB_PATH)) {
|
|
16
16
|
return {
|
|
17
|
-
id: 'db.exists',
|
|
17
|
+
id: 'db.exists',
|
|
18
|
+
category: 'db',
|
|
19
|
+
title: 'Database file',
|
|
18
20
|
severity: 'warn',
|
|
19
21
|
message: `Not found at ${DB_PATH} — run \`spool sync\` to create it`,
|
|
20
22
|
details: { path: DB_PATH },
|
|
@@ -22,7 +24,9 @@ export const dbChecks = [
|
|
|
22
24
|
}
|
|
23
25
|
const size = statSync(DB_PATH).size;
|
|
24
26
|
return {
|
|
25
|
-
id: 'db.exists',
|
|
27
|
+
id: 'db.exists',
|
|
28
|
+
category: 'db',
|
|
29
|
+
title: 'Database file',
|
|
26
30
|
severity: 'ok',
|
|
27
31
|
message: `${humanBytes(size)} at ${DB_PATH}`,
|
|
28
32
|
details: { path: DB_PATH, sizeBytes: size },
|
|
@@ -33,9 +37,9 @@ export const dbChecks = [
|
|
|
33
37
|
id: 'db.integrity',
|
|
34
38
|
category: 'db',
|
|
35
39
|
title: 'Database integrity',
|
|
36
|
-
run: () => withReadonlyDb('db.integrity', 'Database integrity', db => {
|
|
40
|
+
run: () => withReadonlyDb('db.integrity', 'Database integrity', (db) => {
|
|
37
41
|
const rows = db.pragma('integrity_check');
|
|
38
|
-
const messages = rows.map(r => r.integrity_check);
|
|
42
|
+
const messages = rows.map((r) => r.integrity_check);
|
|
39
43
|
if (messages.length === 1 && messages[0] === 'ok') {
|
|
40
44
|
return { severity: 'ok', message: 'integrity_check passed' };
|
|
41
45
|
}
|
|
@@ -50,7 +54,7 @@ export const dbChecks = [
|
|
|
50
54
|
id: 'db.foreign-keys',
|
|
51
55
|
category: 'db',
|
|
52
56
|
title: 'Foreign key consistency',
|
|
53
|
-
run: () => withReadonlyDb('db.foreign-keys', 'Foreign key consistency', db => {
|
|
57
|
+
run: () => withReadonlyDb('db.foreign-keys', 'Foreign key consistency', (db) => {
|
|
54
58
|
const rows = db.pragma('foreign_key_check');
|
|
55
59
|
if (rows.length === 0) {
|
|
56
60
|
return { severity: 'ok', message: 'foreign_key_check passed' };
|
|
@@ -59,7 +63,8 @@ export const dbChecks = [
|
|
|
59
63
|
for (const r of rows)
|
|
60
64
|
byTable.set(r.table, (byTable.get(r.table) ?? 0) + 1);
|
|
61
65
|
const summary = Array.from(byTable.entries())
|
|
62
|
-
.map(([t, n]) => `${t}: ${n}`)
|
|
66
|
+
.map(([t, n]) => `${t}: ${n}`)
|
|
67
|
+
.join(', ');
|
|
63
68
|
const fix = {
|
|
64
69
|
description: `Delete ${rows.length} orphaned row(s) (${summary})`,
|
|
65
70
|
destructive: false,
|
|
@@ -86,19 +91,27 @@ export const dbChecks = [
|
|
|
86
91
|
try {
|
|
87
92
|
walSize = statSync(WAL_PATH).size;
|
|
88
93
|
}
|
|
89
|
-
catch {
|
|
94
|
+
catch {
|
|
95
|
+
/* WAL file optional */
|
|
96
|
+
}
|
|
90
97
|
const ratio = dbSize > 0 ? walSize / dbSize : 0;
|
|
91
98
|
const oversized = walSize >= WAL_WARN_MIN_BYTES && ratio >= WAL_WARN_RATIO;
|
|
92
99
|
if (!oversized) {
|
|
93
100
|
return {
|
|
94
|
-
id: 'db.wal-size',
|
|
101
|
+
id: 'db.wal-size',
|
|
102
|
+
category: 'db',
|
|
103
|
+
title: 'WAL size',
|
|
95
104
|
severity: 'ok',
|
|
96
|
-
message: walSize === 0
|
|
105
|
+
message: walSize === 0
|
|
106
|
+
? 'WAL empty'
|
|
107
|
+
: `${humanBytes(walSize)} (${(ratio * 100).toFixed(0)}% of db)`,
|
|
97
108
|
details: { walBytes: walSize, dbBytes: dbSize },
|
|
98
109
|
};
|
|
99
110
|
}
|
|
100
111
|
return {
|
|
101
|
-
id: 'db.wal-size',
|
|
112
|
+
id: 'db.wal-size',
|
|
113
|
+
category: 'db',
|
|
114
|
+
title: 'WAL size',
|
|
102
115
|
severity: 'warn',
|
|
103
116
|
message: `WAL is ${humanBytes(walSize)} (${(ratio * 100).toFixed(0)}% of db)`,
|
|
104
117
|
details: { walBytes: walSize, dbBytes: dbSize },
|
|
@@ -114,7 +127,7 @@ export const dbChecks = [
|
|
|
114
127
|
id: 'db.vacuum-hint',
|
|
115
128
|
category: 'db',
|
|
116
129
|
title: 'Free-page ratio',
|
|
117
|
-
run: () => withReadonlyDb('db.vacuum-hint', 'Free-page ratio', db => {
|
|
130
|
+
run: () => withReadonlyDb('db.vacuum-hint', 'Free-page ratio', (db) => {
|
|
118
131
|
const free = db.pragma('freelist_count')[0]?.freelist_count ?? 0;
|
|
119
132
|
const total = db.pragma('page_count')[0]?.page_count ?? 0;
|
|
120
133
|
const ratio = total > 0 ? free / total : 0;
|
|
@@ -146,7 +159,7 @@ function withReadonlyDb(id, title, fn) {
|
|
|
146
159
|
}
|
|
147
160
|
if (!existsSync(DB_PATH))
|
|
148
161
|
return skipped(id, title);
|
|
149
|
-
const db =
|
|
162
|
+
const db = openDatabase(DB_PATH, { readonly: true, fileMustExist: true });
|
|
150
163
|
try {
|
|
151
164
|
const out = fn(db);
|
|
152
165
|
return { id, category: 'db', title, ...out };
|
|
@@ -157,13 +170,15 @@ function withReadonlyDb(id, title, fn) {
|
|
|
157
170
|
}
|
|
158
171
|
function skipped(id, title) {
|
|
159
172
|
return {
|
|
160
|
-
id,
|
|
173
|
+
id,
|
|
174
|
+
category: 'db',
|
|
175
|
+
title,
|
|
161
176
|
severity: 'ok',
|
|
162
177
|
message: 'skipped — no database',
|
|
163
178
|
};
|
|
164
179
|
}
|
|
165
180
|
function applyForeignKeyCleanup(violations) {
|
|
166
|
-
const db =
|
|
181
|
+
const db = openDatabase(DB_PATH);
|
|
167
182
|
try {
|
|
168
183
|
db.pragma('foreign_keys = OFF');
|
|
169
184
|
const grouped = new Map();
|
|
@@ -187,14 +202,17 @@ function applyForeignKeyCleanup(violations) {
|
|
|
187
202
|
}
|
|
188
203
|
}
|
|
189
204
|
function applyWalCheckpoint() {
|
|
190
|
-
const db =
|
|
205
|
+
const db = openDatabase(DB_PATH);
|
|
191
206
|
try {
|
|
192
207
|
const result = db.pragma('wal_checkpoint(TRUNCATE)');
|
|
193
208
|
const r = result[0];
|
|
194
209
|
if (!r)
|
|
195
210
|
return { ok: true, message: 'WAL checkpointed' };
|
|
196
211
|
if (r.busy)
|
|
197
|
-
return {
|
|
212
|
+
return {
|
|
213
|
+
ok: false,
|
|
214
|
+
message: 'WAL checkpoint reported busy — close other Spool processes and retry',
|
|
215
|
+
};
|
|
198
216
|
return { ok: true, message: `Checkpointed ${r.checkpointed}/${r.log} frames` };
|
|
199
217
|
}
|
|
200
218
|
finally {
|
|
@@ -202,7 +220,7 @@ function applyWalCheckpoint() {
|
|
|
202
220
|
}
|
|
203
221
|
}
|
|
204
222
|
function applyVacuum() {
|
|
205
|
-
const db =
|
|
223
|
+
const db = openDatabase(DB_PATH);
|
|
206
224
|
try {
|
|
207
225
|
const before = statSync(DB_PATH).size;
|
|
208
226
|
db.exec('VACUUM');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../../src/doctor/checks/db.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../../src/doctor/checks/db.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/doctor/checks/env.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/doctor/checks/env.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAe,MAAM,aAAa,CAAA;AAKrD,eAAO,MAAM,SAAS,EAAE,KAAK,EAkF5B,CAAA"}
|
|
@@ -31,7 +31,11 @@ export const envChecks = [
|
|
|
31
31
|
try {
|
|
32
32
|
mkdirSync(dir, { recursive: true });
|
|
33
33
|
accessSync(dir, constants.W_OK);
|
|
34
|
-
return mk('env.spool-dir', 'Spool home directory', 'ok', dir, {
|
|
34
|
+
return mk('env.spool-dir', 'Spool home directory', 'ok', dir, {
|
|
35
|
+
path: dir,
|
|
36
|
+
overrideActive,
|
|
37
|
+
defaultDir,
|
|
38
|
+
});
|
|
35
39
|
}
|
|
36
40
|
catch (err) {
|
|
37
41
|
return mk('env.spool-dir', 'Spool home directory', 'error', `Cannot write to ${dir}: ${err.message}`, { path: dir, overrideActive, defaultDir });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../../src/doctor/checks/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../../src/doctor/checks/env.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import { configChecks } from './config.js';
|
|
2
|
+
import { dbChecks } from './db.js';
|
|
1
3
|
import { envChecks } from './env.js';
|
|
2
4
|
import { nativeChecks } from './native.js';
|
|
3
5
|
import { versionChecks } from './versions.js';
|
|
4
|
-
import { dbChecks } from './db.js';
|
|
5
|
-
import { configChecks } from './config.js';
|
|
6
6
|
export const allChecks = [
|
|
7
7
|
...envChecks,
|
|
8
8
|
...nativeChecks,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/doctor/checks/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/doctor/checks/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAE7C,MAAM,CAAC,MAAM,SAAS,GAAY;IAChC,GAAG,SAAS;IACZ,GAAG,YAAY;IACf,GAAG,aAAa;IAChB,GAAG,QAAQ;IACX,GAAG,YAAY;CAChB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/doctor/checks/native.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/doctor/checks/native.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAe,MAAM,aAAa,CAAA;AAErD,eAAO,MAAM,YAAY,EAAE,KAAK,EA2B/B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native.js","sourceRoot":"","sources":["../../../src/doctor/checks/native.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"native.js","sourceRoot":"","sources":["../../../src/doctor/checks/native.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAG7C,MAAM,CAAC,MAAM,YAAY,GAAY;IACnC;QACE,EAAE,EAAE,eAAe;QACnB,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,8BAA8B;QACrC,GAAG,EAAE,GAAgB,EAAE;YACrB,MAAM,MAAM,GAAG,WAAW,EAAE,CAAA;YAC5B,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;gBACd,OAAO;oBACL,EAAE,EAAE,eAAe;oBACnB,QAAQ,EAAE,QAAQ;oBAClB,KAAK,EAAE,8BAA8B;oBACrC,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,gBAAgB,OAAO,CAAC,OAAO,GAAG;oBAC3C,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE;iBACnC,CAAA;YACH,CAAC;YACD,OAAO;gBACL,EAAE,EAAE,eAAe;gBACnB,QAAQ,EAAE,QAAQ;gBAClB,KAAK,EAAE,8BAA8B;gBACrC,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC;gBACxC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE;aAChE,CAAA;QACH,CAAC;KACF;CACF,CAAA;AAED,SAAS,iBAAiB,CAAC,GAAU;IACnC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAA;IACvB,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAA;IACxF,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC1B,OAAO,CACL,oCAAoC,QAAQ,sBAAsB,MAAM,KAAK;YAC7E,gDAAgD,CACjD,CAAA;IACH,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAA;IACzC,OAAO,mBAAmB,OAAO,EAAE,CAAA;AACrC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"versions.d.ts","sourceRoot":"","sources":["../../../src/doctor/checks/versions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"versions.d.ts","sourceRoot":"","sources":["../../../src/doctor/checks/versions.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAe,MAAM,aAAa,CAAA;AAErD,eAAO,MAAM,aAAa,EAAE,KAAK,EA6EhC,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import Database from 'better-sqlite3';
|
|
2
1
|
import { existsSync } from 'node:fs';
|
|
3
2
|
import { DB_PATH, LATEST_SCHEMA_VERSION, getDB } from '../../db/db.js';
|
|
3
|
+
import { openDatabase } from '../../db/native-binding.js';
|
|
4
4
|
import { probeSqlite } from '../preflight.js';
|
|
5
5
|
export const versionChecks = [
|
|
6
6
|
{
|
|
@@ -28,7 +28,7 @@ export const versionChecks = [
|
|
|
28
28
|
details: { expected: LATEST_SCHEMA_VERSION },
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
|
-
const db =
|
|
31
|
+
const db = openDatabase(DB_PATH, { readonly: true, fileMustExist: true });
|
|
32
32
|
try {
|
|
33
33
|
const row = db.pragma('user_version');
|
|
34
34
|
const current = row[0]?.user_version ?? 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../../../src/doctor/checks/versions.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../../../src/doctor/checks/versions.ts"],"names":[],"mappings":"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"}
|
package/dist/doctor/preflight.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { openDatabase } from '../db/native-binding.js';
|
|
2
2
|
let cached = null;
|
|
3
3
|
/**
|
|
4
4
|
* Confirms the bundled better-sqlite3 binary can actually load and open a
|
|
@@ -11,7 +11,7 @@ export function probeSqlite() {
|
|
|
11
11
|
if (cached)
|
|
12
12
|
return cached;
|
|
13
13
|
try {
|
|
14
|
-
const db =
|
|
14
|
+
const db = openDatabase(':memory:');
|
|
15
15
|
db.close();
|
|
16
16
|
cached = { ok: true };
|
|
17
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/doctor/preflight.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/doctor/preflight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAItD,IAAI,MAAM,GAAwB,IAAI,CAAA;AAEtC;;;;;;GAMG;AACH,MAAM,UAAU,WAAW;IACzB,IAAI,MAAM;QAAE,OAAO,MAAM,CAAA;IACzB,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,YAAY,CAAC,UAAU,CAAC,CAAA;QACnC,EAAE,CAAC,KAAK,EAAE,CAAA;QACV,MAAM,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;IACvB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAA;IACpF,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,gDAAgD;AAChD,MAAM,UAAU,kBAAkB;IAChC,MAAM,GAAG,IAAI,CAAA;AACf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/doctor/runner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/doctor/runner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAEpD;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAUrF;AAgBD,wBAAgB,UAAU,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,UAAU,GAAG,OAAO,CAAC,CAAC,CAE5E"}
|
package/dist/doctor/runner.js
CHANGED
|
@@ -9,7 +9,7 @@ import { allChecks } from './checks/index.js';
|
|
|
9
9
|
*/
|
|
10
10
|
export async function runChecks(filterIds) {
|
|
11
11
|
const selected = filterIds && filterIds.length > 0
|
|
12
|
-
? allChecks.filter(c => filterIds.includes(c.id))
|
|
12
|
+
? allChecks.filter((c) => filterIds.includes(c.id))
|
|
13
13
|
: allChecks;
|
|
14
14
|
const results = [];
|
|
15
15
|
for (const check of selected) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/doctor/runner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/doctor/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAG7C;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,SAA6B;IAC3D,MAAM,QAAQ,GACZ,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;QAC/B,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACnD,CAAC,CAAC,SAAS,CAAA;IACf,MAAM,OAAO,GAAkB,EAAE,CAAA;IACjC,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IACnC,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,KAAY;IAChC,IAAI,CAAC;QACH,OAAO,MAAM,KAAK,CAAC,GAAG,EAAE,CAAA;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,gBAAgB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;SAC5E,CAAA;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;AAC9E,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export * from './parsers/spool-prelude.js';
|
|
|
12
12
|
export * from './sync/syncer.js';
|
|
13
13
|
export * from './sync/watcher.js';
|
|
14
14
|
export * from './projects/groups.js';
|
|
15
|
+
export * from './projects/local-identity.js';
|
|
15
16
|
export * from './projects/sessions.js';
|
|
16
17
|
export { resolveSystemBinary, resolveSystemBinaryAsync, cachedResolve, cachedResolveAsync, clearResolveCache, hydrateResolveCache, getResolveCacheSnapshot, } from './util/resolve-bin.js';
|
|
17
18
|
export * from './doctor/index.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,4BAA4B,CAAA;AAC1C,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,wBAAwB,CAAA;AACtC,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,uBAAuB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,4BAA4B,CAAA;AAC1C,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,wBAAwB,CAAA;AACtC,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,uBAAuB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -12,6 +12,7 @@ export * from './parsers/spool-prelude.js';
|
|
|
12
12
|
export * from './sync/syncer.js';
|
|
13
13
|
export * from './sync/watcher.js';
|
|
14
14
|
export * from './projects/groups.js';
|
|
15
|
+
export * from './projects/local-identity.js';
|
|
15
16
|
export * from './projects/sessions.js';
|
|
16
17
|
export { resolveSystemBinary, resolveSystemBinaryAsync, cachedResolve, cachedResolveAsync, clearResolveCache, hydrateResolveCache, getResolveCacheSnapshot, } from './util/resolve-bin.js';
|
|
17
18
|
export * from './doctor/index.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,4BAA4B,CAAA;AAC1C,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,wBAAwB,CAAA;AACtC,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,uBAAuB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,4BAA4B,CAAA;AAC1C,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,wBAAwB,CAAA;AACtC,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,uBAAuB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-search-cleanup.d.ts","sourceRoot":"","sources":["../../src/migrations/agent-search-cleanup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"agent-search-cleanup.d.ts","sourceRoot":"","sources":["../../src/migrations/agent-search-cleanup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAG1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AA0ChD,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,aAAa,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB,EAAE,MAAM,CAAA;IACxB,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,SAAS,EAAE,CAAA;IACvB,+DAA+D;IAC/D,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,MAAM,CAAA;IACvB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,wBAAwB,EAAE,MAAM,CAAA;IAChC,eAAe,EAAE,MAAM,EAAE,CAAA;CAC1B;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,aAAa,CA6DzE;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA4B9F;AAOD,wBAAgB,cAAc,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,aAAa,GAAG,eAAe,CA0D1F;AAED,+DAA+D;AAC/D,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,eAAe,CAG5E"}
|
|
@@ -51,7 +51,8 @@ export function computeMigrationPlan(db) {
|
|
|
51
51
|
// or too broad (cwd='/' could be anyone running claude from the
|
|
52
52
|
// filesystem root). The blob check is the only signal that's both
|
|
53
53
|
// Spool-unique and cross-environment robust.
|
|
54
|
-
const rows = db
|
|
54
|
+
const rows = db
|
|
55
|
+
.prepare(`
|
|
55
56
|
SELECT s.id, s.session_uuid, s.source_id, s.project_id, s.title,
|
|
56
57
|
src.name AS source_name
|
|
57
58
|
FROM sessions s
|
|
@@ -64,8 +65,9 @@ export function computeMigrationPlan(db) {
|
|
|
64
65
|
AND m.role = 'user'
|
|
65
66
|
AND m.content_text LIKE ?
|
|
66
67
|
)
|
|
67
|
-
`)
|
|
68
|
-
|
|
68
|
+
`)
|
|
69
|
+
.all(`${CAVEAT_TITLE_PREFIX}%`, `${SPOOL_PROMPT_TITLE_PREFIX}%`, `%${SPOOL_PROMPT_BODY_MARKER}%`);
|
|
70
|
+
const candidates = rows.map((r) => ({
|
|
69
71
|
sessionId: r.id,
|
|
70
72
|
sessionUuid: r.session_uuid,
|
|
71
73
|
source: r.source_name,
|
|
@@ -89,16 +91,18 @@ export function computeMigrationPlan(db) {
|
|
|
89
91
|
* Returns null when no usable user message exists (extreme corruption case).
|
|
90
92
|
*/
|
|
91
93
|
export function extractQueryForSession(db, sessionId) {
|
|
92
|
-
const messages = db
|
|
94
|
+
const messages = db
|
|
95
|
+
.prepare(`
|
|
93
96
|
SELECT content_text FROM messages
|
|
94
97
|
WHERE session_id = ? AND role = 'user'
|
|
95
98
|
ORDER BY seq
|
|
96
|
-
`)
|
|
99
|
+
`)
|
|
100
|
+
.all(sessionId);
|
|
97
101
|
for (const m of messages) {
|
|
98
102
|
const text = m.content_text.trim();
|
|
99
103
|
if (!text)
|
|
100
104
|
continue;
|
|
101
|
-
if (NOISE_PATTERNS.some(re => re.test(text)))
|
|
105
|
+
if (NOISE_PATTERNS.some((re) => re.test(text)))
|
|
102
106
|
continue;
|
|
103
107
|
if (text.includes(SPOOL_PROMPT_BODY_MARKER)) {
|
|
104
108
|
const match = USER_QUERY_RE.exec(text);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-search-cleanup.js","sourceRoot":"","sources":["../../src/migrations/agent-search-cleanup.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"agent-search-cleanup.js","sourceRoot":"","sources":["../../src/migrations/agent-search-cleanup.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAGxD;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,mBAAmB,GACvB,oFAAoF,CAAA;AACtF,MAAM,yBAAyB,GAAG,wDAAwD,CAAA;AAC1F,MAAM,wBAAwB,GAAG,wDAAwD,CAAA;AAEzF,wEAAwE;AACxE,+EAA+E;AAC/E,0CAA0C;AAC1C,MAAM,cAAc,GAAa;IAC/B,sFAAsF;IACtF,WAAW;IACX,iBAAiB;IACjB,mBAAmB;CACpB,CAAA;AAED,MAAM,aAAa,GAAG,gCAAgC,CAAA;AAyBtD,MAAM,UAAU,oBAAoB,CAAC,EAAqB;IACxD,iDAAiD;IACjD,oEAAoE;IACpE,oEAAoE;IACpE,mDAAmD;IACnD,uEAAuE;IACvE,uEAAuE;IACvE,qEAAqE;IACrE,wDAAwD;IACxD,EAAE;IACF,uEAAuE;IACvE,wEAAwE;IACxE,uEAAuE;IACvE,wEAAwE;IACxE,gEAAgE;IAChE,kEAAkE;IAClE,6CAA6C;IAC7C,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CAAC;;;;;;;;;;;;;GAaV,CAAC;SACC,GAAG,CACF,GAAG,mBAAmB,GAAG,EACzB,GAAG,yBAAyB,GAAG,EAC/B,IAAI,wBAAwB,GAAG,CAQjC,CAAA;IAEF,MAAM,UAAU,GAAgB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/C,SAAS,EAAE,CAAC,CAAC,EAAE;QACf,WAAW,EAAE,CAAC,CAAC,YAAY;QAC3B,MAAM,EAAE,CAAC,CAAC,WAAW;QACrB,QAAQ,EAAE,CAAC,CAAC,SAAS;QACrB,gBAAgB,EAAE,CAAC,CAAC,UAAU;QAC9B,YAAY,EAAE,CAAC,CAAC,KAAK;QACrB,cAAc,EAAE,sBAAsB,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;KACjD,CAAC,CAAC,CAAA;IAEH,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAA;IAClD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IAC/F,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAA;AACzC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CAAC,EAAqB,EAAE,SAAiB;IAC7E,MAAM,QAAQ,GAAG,EAAE;SAChB,OAAO,CAAC;;;;GAIV,CAAC;SACC,GAAG,CAAC,SAAS,CAAoC,CAAA;IAEpD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,CAAA;QAClC,IAAI,CAAC,IAAI;YAAE,SAAQ;QACnB,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAAE,SAAQ;QAExD,IAAI,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACtC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACf,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;gBACzB,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YAClD,CAAC;YACD,kEAAkE;YAClE,mEAAmE;YACnE,SAAQ;QACV,CAAC;QAED,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAS;IACjC,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;IAC7C,OAAO,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAA;AACvE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAAqB,EAAE,IAAmB;IACvE,IAAI,eAAe,GAAG,CAAC,CAAA;IACvB,IAAI,oBAAoB,GAAG,CAAC,CAAA;IAC5B,IAAI,wBAAwB,GAAG,CAAC,CAAA;IAEhC,6DAA6D;IAC7D,MAAM,YAAY,GAAG,IAAI,GAAG,EAAyB,CAAA;IACrD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QAChC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;QACjE,CAAC;IACH,CAAC;IAED,MAAM,eAAe,GAAG,EAAE,CAAC,OAAO,CAAC;;;;GAIlC,CAAC,CAAA;IACF,MAAM,iBAAiB,GAAG,EAAE,CAAC,OAAO,CAAC;;;;GAIpC,CAAC,CAAA;IAEF,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QAChC,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;QAClD,IAAI,eAAe,KAAK,SAAS;YAAE,SAAQ;QAC3C,eAAe,IAAI,CAAC,CAAA;QACpB,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC;YACrB,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,EAAE,eAAe,EAAE,CAAC,CAAC,SAAS,CAAC,CAAA;YACnE,oBAAoB,IAAI,CAAC,CAAA;QAC3B,CAAC;aAAM,CAAC;YACN,oEAAoE;YACpE,mEAAmE;YACnE,kEAAkE;YAClE,iBAAiB,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,SAAS,CAAC,CAAA;YACnD,wBAAwB,IAAI,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC;IAED,qDAAqD;IACrD,MAAM,eAAe,GAAa,EAAE,CAAA;IACpC,MAAM,aAAa,GAAG,EAAE,CAAC,OAAO,CAAC,yDAAyD,CAAC,CAAA;IAC3F,MAAM,aAAa,GAAG,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAA;IACrE,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC;QACrD,MAAM,SAAS,GAAI,aAAa,CAAC,GAAG,CAAC,SAAS,CAAmB,CAAC,CAAC,CAAA;QACnE,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YACpB,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YAC5B,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACjC,CAAC;IACH,CAAC;IAED,OAAO;QACL,eAAe;QACf,oBAAoB;QACpB,wBAAwB;QACxB,eAAe;KAChB,CAAA;AACH,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,qBAAqB,CAAC,EAAqB;IACzD,MAAM,IAAI,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAA;IACrC,OAAO,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;AACjC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree-identity-upgrade.d.ts","sourceRoot":"","sources":["../../src/migrations/worktree-identity-upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"worktree-identity-upgrade.d.ts","sourceRoot":"","sources":["../../src/migrations/worktree-identity-upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAG1C,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAE1E;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,EAAE,EAAE,UAAU,EACd,kBAAkB,GAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,IAAgC,GAClF,qBAAqB,CA4CvB"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { loadCodexSessionGitRemote } from '../parsers/codex.js';
|
|
2
2
|
import { computeIdentity } from '../projects/identity.js';
|
|
3
3
|
export function upgradeWorktreeIdentities(db, fs, readCodexGitRemote = loadCodexSessionGitRemote) {
|
|
4
|
-
const rows = db
|
|
4
|
+
const rows = db
|
|
5
|
+
.prepare(`SELECT id, identity_key FROM projects WHERE identity_kind = 'path'`)
|
|
6
|
+
.all();
|
|
5
7
|
if (rows.length === 0)
|
|
6
8
|
return { examined: 0, upgraded: 0 };
|
|
7
9
|
const update = db.prepare(`UPDATE projects
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree-identity-upgrade.js","sourceRoot":"","sources":["../../src/migrations/worktree-identity-upgrade.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"worktree-identity-upgrade.js","sourceRoot":"","sources":["../../src/migrations/worktree-identity-upgrade.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAmB,MAAM,yBAAyB,CAAA;AAiC1E,MAAM,UAAU,yBAAyB,CACvC,EAAqB,EACrB,EAAc,EACd,kBAAkB,GAAwC,yBAAyB;IAEnF,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CAAC,oEAAoE,CAAC;SAC7E,GAAG,EAAiD,CAAA;IAEvD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAA;IAE1D,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CACvB;;kBAEc,CACf,CAAA;IACD,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;GAM7B,CAAC,CAAA;IAEF,IAAI,QAAQ,GAAG,CAAC,CAAA;IAChB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;QAC9C,sEAAsE;QACtE,uEAAuE;QACvE,4EAA4E;QAC5E,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAiC,CAAA;YACpE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBACjD,IAAI,CAAC,MAAM;oBAAE,SAAQ;gBACrB,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;gBAC1D,MAAK;YACP,CAAC;QACH,CAAC;QACD,wEAAwE;QACxE,uEAAuE;QACvE,uCAAuC;QACvC,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO;YAAE,SAAQ;QACvD,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;QACnD,QAAQ,IAAI,CAAC,CAAA;IACf,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAA;AAC5C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exporter-file.d.ts","sourceRoot":"","sources":["../../src/observability/exporter-file.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"exporter-file.d.ts","sourceRoot":"","sources":["../../src/observability/exporter-file.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAI/E,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED,MAAM,WAAW,+BAA+B;IAC9C,2DAA2D;IAC3D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,kEAAkE;IAClE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,kCAAkC;IAClC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAA;CAC1B;AAMD,qBAAa,wBAAyB,YAAW,YAAY;IAC3D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;IACtC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAMhC,OAAO,CAAC,UAAU,CAAsB;IAExC,YAAY,IAAI,EAAE,+BAA+B,EAKhD;IAED,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,cAAc,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI,CAYlF;IAED,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAExB;IACD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAE1B;IAED,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,cAAc;CAmBvB;AA0ED;qDACqD;AACrD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAIlD"}
|