@spool-lab/core 0.6.0 → 0.6.1
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/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/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/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
package/dist/util/resolve-bin.js
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { execFile, execFileSync } from 'node:child_process';
|
|
2
2
|
import { existsSync, readdirSync } from 'node:fs';
|
|
3
3
|
import { homedir } from 'node:os';
|
|
4
4
|
import { join } from 'node:path';
|
|
5
5
|
import { promisify } from 'node:util';
|
|
6
|
-
const
|
|
6
|
+
const execFileAsync = promisify(execFile);
|
|
7
|
+
const SAFE_BINARY_NAME = /^[A-Za-z0-9._+-]+$/;
|
|
8
|
+
function isSafeBinaryName(name) {
|
|
9
|
+
return name.length > 0 && SAFE_BINARY_NAME.test(name);
|
|
10
|
+
}
|
|
7
11
|
/**
|
|
8
12
|
* Resolve a binary path that works in both terminal-launched and
|
|
9
13
|
* GUI-launched (minimal PATH) contexts on macOS.
|
|
@@ -15,12 +19,15 @@ const execAsync = promisify(exec);
|
|
|
15
19
|
* in .zshrc / .bashrc (mise, asdf, fnm, etc.) rather than only profile files.
|
|
16
20
|
*/
|
|
17
21
|
export function nvmVersionBins(home, name) {
|
|
22
|
+
if (!isSafeBinaryName(name))
|
|
23
|
+
return [];
|
|
18
24
|
const versionsDir = join(home, '.nvm', 'versions', 'node');
|
|
19
25
|
try {
|
|
20
26
|
return readdirSync(versionsDir)
|
|
21
|
-
.filter(d => d.startsWith('v'))
|
|
22
|
-
.sort()
|
|
23
|
-
.
|
|
27
|
+
.filter((d) => d.startsWith('v'))
|
|
28
|
+
.sort()
|
|
29
|
+
.reverse()
|
|
30
|
+
.map((d) => join(versionsDir, d, 'bin', name));
|
|
24
31
|
}
|
|
25
32
|
catch {
|
|
26
33
|
return [];
|
|
@@ -33,6 +40,8 @@ export function nvmVersionBins(home, name) {
|
|
|
33
40
|
* (it's a stable entry point), then scan installed versions newest-first.
|
|
34
41
|
*/
|
|
35
42
|
export function miseVersionBins(home, name) {
|
|
43
|
+
if (!isSafeBinaryName(name))
|
|
44
|
+
return [];
|
|
36
45
|
const root = join(home, '.local', 'share', 'mise');
|
|
37
46
|
const result = [join(root, 'shims', name)];
|
|
38
47
|
const installsDir = join(root, 'installs');
|
|
@@ -53,7 +62,13 @@ export function miseVersionBins(home, name) {
|
|
|
53
62
|
continue;
|
|
54
63
|
}
|
|
55
64
|
const ordered = versions.includes('latest')
|
|
56
|
-
? [
|
|
65
|
+
? [
|
|
66
|
+
'latest',
|
|
67
|
+
...versions
|
|
68
|
+
.filter((v) => v !== 'latest')
|
|
69
|
+
.sort()
|
|
70
|
+
.reverse(),
|
|
71
|
+
]
|
|
57
72
|
: versions.sort().reverse();
|
|
58
73
|
for (const v of ordered) {
|
|
59
74
|
result.push(join(pluginDir, v, 'bin', name));
|
|
@@ -63,6 +78,8 @@ export function miseVersionBins(home, name) {
|
|
|
63
78
|
}
|
|
64
79
|
/** Ordered list of filesystem paths to probe for `name`. Pure. */
|
|
65
80
|
export function wellKnownBinPaths(name, home, extras = []) {
|
|
81
|
+
if (!isSafeBinaryName(name))
|
|
82
|
+
return [];
|
|
66
83
|
return [
|
|
67
84
|
...extras,
|
|
68
85
|
`/usr/local/bin/${name}`,
|
|
@@ -74,8 +91,10 @@ export function wellKnownBinPaths(name, home, extras = []) {
|
|
|
74
91
|
];
|
|
75
92
|
}
|
|
76
93
|
function shellLookup(shell, flags, name, timeoutMs) {
|
|
94
|
+
if (!isSafeBinaryName(name))
|
|
95
|
+
return null;
|
|
77
96
|
try {
|
|
78
|
-
const p =
|
|
97
|
+
const p = execFileSync(shell, [flags, 'command -v -- "$1"', 'spool-resolve', name], {
|
|
79
98
|
encoding: 'utf8',
|
|
80
99
|
timeout: timeoutMs,
|
|
81
100
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
@@ -87,13 +106,12 @@ function shellLookup(shell, flags, name, timeoutMs) {
|
|
|
87
106
|
}
|
|
88
107
|
}
|
|
89
108
|
export function resolveSystemBinary(name, extraSearchPaths = []) {
|
|
109
|
+
if (!isSafeBinaryName(name))
|
|
110
|
+
return null;
|
|
90
111
|
// 1. Current process PATH — fast path for terminal-launched contexts
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
return p;
|
|
95
|
-
}
|
|
96
|
-
catch { }
|
|
112
|
+
const processPathMatch = shellLookup('/bin/sh', '-c', name, 3000);
|
|
113
|
+
if (processPathMatch)
|
|
114
|
+
return processPathMatch;
|
|
97
115
|
// 2. User's login+interactive shell — covers mise/asdf/fnm activated in .zshrc/.bashrc
|
|
98
116
|
const userShell = process.env['SHELL'];
|
|
99
117
|
if (userShell) {
|
|
@@ -127,7 +145,7 @@ export function clearResolveCache(name) {
|
|
|
127
145
|
delete resolvedPaths[name];
|
|
128
146
|
}
|
|
129
147
|
// ── Async API ─────────────────────────────────────────────────────────────
|
|
130
|
-
// The sync variants above use
|
|
148
|
+
// The sync variants above use execFileSync('<shell>', ['-ilc', ...]) which spawns a
|
|
131
149
|
// fresh interactive login shell and can take seconds when the user's
|
|
132
150
|
// .zshrc is heavy. Awaiting calls to those from the Electron main process
|
|
133
151
|
// stalls the event loop and produces a launch beachball. Async callers
|
|
@@ -142,11 +160,10 @@ export function clearResolveCache(name) {
|
|
|
142
160
|
// is reserved for users whose binaries genuinely only exist behind a
|
|
143
161
|
// shell-activated alias or function.
|
|
144
162
|
async function shellLookupAsync(shell, flags, name, timeoutMs) {
|
|
163
|
+
if (!isSafeBinaryName(name))
|
|
164
|
+
return null;
|
|
145
165
|
try {
|
|
146
|
-
const { stdout } = await
|
|
147
|
-
encoding: 'utf8',
|
|
148
|
-
timeout: timeoutMs,
|
|
149
|
-
});
|
|
166
|
+
const { stdout } = await execFileAsync(shell, [flags, 'command -v -- "$1"', 'spool-resolve', name], { encoding: 'utf8', timeout: timeoutMs });
|
|
150
167
|
const p = stdout.trim();
|
|
151
168
|
return p || null;
|
|
152
169
|
}
|
|
@@ -155,14 +172,12 @@ async function shellLookupAsync(shell, flags, name, timeoutMs) {
|
|
|
155
172
|
}
|
|
156
173
|
}
|
|
157
174
|
export async function resolveSystemBinaryAsync(name, extraSearchPaths = []) {
|
|
175
|
+
if (!isSafeBinaryName(name))
|
|
176
|
+
return null;
|
|
158
177
|
// 1. Current process PATH — fastest, covers terminal-launched contexts
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
if (p)
|
|
163
|
-
return p;
|
|
164
|
-
}
|
|
165
|
-
catch { }
|
|
178
|
+
const processPathMatch = await shellLookupAsync('/bin/sh', '-c', name, 3000);
|
|
179
|
+
if (processPathMatch)
|
|
180
|
+
return processPathMatch;
|
|
166
181
|
// 2. Well-known install locations — pure filesystem probes, no shell exec.
|
|
167
182
|
// Covers homebrew, ~/.local/bin, nvm versions, and mise installs/shims.
|
|
168
183
|
for (const p of wellKnownBinPaths(name, homedir(), extraSearchPaths)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-bin.js","sourceRoot":"","sources":["../../src/util/resolve-bin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"resolve-bin.js","sourceRoot":"","sources":["../../src/util/resolve-bin.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spool-lab/core",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.1",
|
|
4
4
|
"private": false,
|
|
5
|
+
"homepage": "https://github.com/spool-lab/spool#readme",
|
|
6
|
+
"bugs": {
|
|
7
|
+
"url": "https://github.com/spool-lab/spool/issues"
|
|
8
|
+
},
|
|
9
|
+
"license": "MIT",
|
|
10
|
+
"author": {
|
|
11
|
+
"name": "xinyao",
|
|
12
|
+
"email": "hi@xinyao.me"
|
|
13
|
+
},
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "git+https://github.com/spool-lab/spool.git"
|
|
17
|
+
},
|
|
18
|
+
"funding": "https://github.com/sponsors/xinyao27",
|
|
19
|
+
"files": [
|
|
20
|
+
"dist"
|
|
21
|
+
],
|
|
5
22
|
"type": "module",
|
|
6
23
|
"main": "./dist/index.js",
|
|
7
24
|
"types": "./dist/index.d.ts",
|
|
@@ -11,38 +28,36 @@
|
|
|
11
28
|
"types": "./dist/index.d.ts"
|
|
12
29
|
}
|
|
13
30
|
},
|
|
14
|
-
"files": [
|
|
15
|
-
"dist"
|
|
16
|
-
],
|
|
17
31
|
"publishConfig": {
|
|
18
32
|
"access": "public"
|
|
19
33
|
},
|
|
20
34
|
"dependencies": {
|
|
21
|
-
"@effect/opentelemetry": "^0.
|
|
35
|
+
"@effect/opentelemetry": "^0.64.0",
|
|
22
36
|
"@opentelemetry/api": "^1.9.1",
|
|
23
|
-
"@opentelemetry/resources": "^2.
|
|
24
|
-
"@opentelemetry/sdk-trace-base": "^2.
|
|
25
|
-
"@opentelemetry/sdk-trace-node": "^2.
|
|
26
|
-
"@opentelemetry/semantic-conventions": "^1.
|
|
27
|
-
"better-sqlite3": "11.
|
|
28
|
-
"effect": "^3.
|
|
29
|
-
"@spool-lab/redact": "0.6.
|
|
30
|
-
"@spool-lab/session-kit": "^0.6.
|
|
37
|
+
"@opentelemetry/resources": "^2.9.0",
|
|
38
|
+
"@opentelemetry/sdk-trace-base": "^2.9.0",
|
|
39
|
+
"@opentelemetry/sdk-trace-node": "^2.9.0",
|
|
40
|
+
"@opentelemetry/semantic-conventions": "^1.43.0",
|
|
41
|
+
"better-sqlite3": "12.11.1",
|
|
42
|
+
"effect": "^3.22.0",
|
|
43
|
+
"@spool-lab/redact": "0.6.1",
|
|
44
|
+
"@spool-lab/session-kit": "^0.6.1"
|
|
31
45
|
},
|
|
32
46
|
"devDependencies": {
|
|
33
|
-
"@effect/vitest": "^0.
|
|
47
|
+
"@effect/vitest": "^0.30.0",
|
|
34
48
|
"@types/better-sqlite3": "^7.6.13",
|
|
35
|
-
"@types/node": "^
|
|
36
|
-
"
|
|
49
|
+
"@types/node": "^26.1.1",
|
|
50
|
+
"vite": "npm:@voidzero-dev/vite-plus-core@0.2.5",
|
|
51
|
+
"vite-plus": "0.2.5",
|
|
52
|
+
"vitest": "4.1.10"
|
|
37
53
|
},
|
|
38
54
|
"scripts": {
|
|
39
55
|
"rebuild:native": "pnpm run rebuild:native:node",
|
|
40
56
|
"rebuild:native:node": "node ../../scripts/rebuild-better-sqlite3-node.mjs",
|
|
41
|
-
"build": "pnpm run clean && tsc",
|
|
42
57
|
"dev": "tsc --watch",
|
|
43
58
|
"typecheck": "tsc --noEmit",
|
|
44
|
-
"test": "
|
|
45
|
-
"bench:search": "
|
|
59
|
+
"test": "vp test run",
|
|
60
|
+
"bench:search": "vp run build && node scripts/benchmark-search-preview.mjs",
|
|
46
61
|
"clean": "rm -rf dist"
|
|
47
62
|
}
|
|
48
63
|
}
|