@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.
Files changed (128) hide show
  1. package/README.md +22 -14
  2. package/dist/db/db.d.ts +1 -1
  3. package/dist/db/db.d.ts.map +1 -1
  4. package/dist/db/db.js +24 -13
  5. package/dist/db/db.js.map +1 -1
  6. package/dist/db/native-binding.d.ts +21 -0
  7. package/dist/db/native-binding.d.ts.map +1 -0
  8. package/dist/db/native-binding.js +32 -0
  9. package/dist/db/native-binding.js.map +1 -0
  10. package/dist/db/published-shares-cache.d.ts.map +1 -1
  11. package/dist/db/published-shares-cache.js.map +1 -1
  12. package/dist/db/queries.d.ts.map +1 -1
  13. package/dist/db/queries.js +96 -74
  14. package/dist/db/queries.js.map +1 -1
  15. package/dist/db/search-query.d.ts.map +1 -1
  16. package/dist/db/search-query.js +8 -8
  17. package/dist/db/search-query.js.map +1 -1
  18. package/dist/db/share-drafts.d.ts.map +1 -1
  19. package/dist/db/share-drafts.js +1 -3
  20. package/dist/db/share-drafts.js.map +1 -1
  21. package/dist/doctor/checks/config.d.ts.map +1 -1
  22. package/dist/doctor/checks/config.js +3 -3
  23. package/dist/doctor/checks/config.js.map +1 -1
  24. package/dist/doctor/checks/db.d.ts.map +1 -1
  25. package/dist/doctor/checks/db.js +36 -18
  26. package/dist/doctor/checks/db.js.map +1 -1
  27. package/dist/doctor/checks/env.d.ts.map +1 -1
  28. package/dist/doctor/checks/env.js +5 -1
  29. package/dist/doctor/checks/env.js.map +1 -1
  30. package/dist/doctor/checks/index.js +2 -2
  31. package/dist/doctor/checks/index.js.map +1 -1
  32. package/dist/doctor/checks/native.d.ts.map +1 -1
  33. package/dist/doctor/checks/native.js.map +1 -1
  34. package/dist/doctor/checks/versions.d.ts.map +1 -1
  35. package/dist/doctor/checks/versions.js +2 -2
  36. package/dist/doctor/checks/versions.js.map +1 -1
  37. package/dist/doctor/preflight.js +2 -2
  38. package/dist/doctor/preflight.js.map +1 -1
  39. package/dist/doctor/runner.d.ts.map +1 -1
  40. package/dist/doctor/runner.js +1 -1
  41. package/dist/doctor/runner.js.map +1 -1
  42. package/dist/migrations/agent-search-cleanup.d.ts.map +1 -1
  43. package/dist/migrations/agent-search-cleanup.js +10 -6
  44. package/dist/migrations/agent-search-cleanup.js.map +1 -1
  45. package/dist/migrations/worktree-identity-upgrade.d.ts.map +1 -1
  46. package/dist/migrations/worktree-identity-upgrade.js +3 -1
  47. package/dist/migrations/worktree-identity-upgrade.js.map +1 -1
  48. package/dist/observability/exporter-file.d.ts.map +1 -1
  49. package/dist/observability/exporter-file.js +14 -6
  50. package/dist/observability/exporter-file.js.map +1 -1
  51. package/dist/observability/exporter-pretty.d.ts.map +1 -1
  52. package/dist/observability/exporter-pretty.js +13 -7
  53. package/dist/observability/exporter-pretty.js.map +1 -1
  54. package/dist/observability/layer.d.ts.map +1 -1
  55. package/dist/observability/layer.js +1 -1
  56. package/dist/observability/layer.js.map +1 -1
  57. package/dist/parsers/claude.d.ts.map +1 -1
  58. package/dist/parsers/claude.js.map +1 -1
  59. package/dist/parsers/codex.d.ts.map +1 -1
  60. package/dist/parsers/codex.js +2 -6
  61. package/dist/parsers/codex.js.map +1 -1
  62. package/dist/parsers/gemini.d.ts.map +1 -1
  63. package/dist/parsers/gemini.js +11 -11
  64. package/dist/parsers/gemini.js.map +1 -1
  65. package/dist/parsers/opencode.d.ts.map +1 -1
  66. package/dist/parsers/opencode.js +67 -33
  67. package/dist/parsers/opencode.js.map +1 -1
  68. package/dist/parsers/pi.d.ts.map +1 -1
  69. package/dist/parsers/pi.js +7 -6
  70. package/dist/parsers/pi.js.map +1 -1
  71. package/dist/projects/fs.d.ts.map +1 -1
  72. package/dist/projects/fs.js +1 -1
  73. package/dist/projects/fs.js.map +1 -1
  74. package/dist/projects/groups.d.ts.map +1 -1
  75. package/dist/projects/groups.js +8 -4
  76. package/dist/projects/groups.js.map +1 -1
  77. package/dist/projects/identity-synthesizers.d.ts.map +1 -1
  78. package/dist/projects/identity-synthesizers.js.map +1 -1
  79. package/dist/projects/identity.d.ts +1 -1
  80. package/dist/projects/identity.d.ts.map +1 -1
  81. package/dist/projects/identity.js +12 -12
  82. package/dist/projects/identity.js.map +1 -1
  83. package/dist/projects/sessions.d.ts.map +1 -1
  84. package/dist/projects/sessions.js +11 -10
  85. package/dist/projects/sessions.js.map +1 -1
  86. package/dist/projects/worktree-resolvers.d.ts.map +1 -1
  87. package/dist/projects/worktree-resolvers.js +16 -8
  88. package/dist/projects/worktree-resolvers.js.map +1 -1
  89. package/dist/security/index.d.ts +2 -2
  90. package/dist/security/index.d.ts.map +1 -1
  91. package/dist/security/index.js +1 -1
  92. package/dist/security/index.js.map +1 -1
  93. package/dist/security/maintenance.d.ts.map +1 -1
  94. package/dist/security/maintenance.js +1 -1
  95. package/dist/security/maintenance.js.map +1 -1
  96. package/dist/security/profile.d.ts.map +1 -1
  97. package/dist/security/profile.js +4 -1
  98. package/dist/security/profile.js.map +1 -1
  99. package/dist/security/purge.d.ts +2 -2
  100. package/dist/security/purge.d.ts.map +1 -1
  101. package/dist/security/purge.js +20 -16
  102. package/dist/security/purge.js.map +1 -1
  103. package/dist/security/repo.d.ts +1 -1
  104. package/dist/security/repo.d.ts.map +1 -1
  105. package/dist/security/repo.js +64 -37
  106. package/dist/security/repo.js.map +1 -1
  107. package/dist/security/scan.d.ts +2 -2
  108. package/dist/security/scan.d.ts.map +1 -1
  109. package/dist/security/scan.js +6 -4
  110. package/dist/security/scan.js.map +1 -1
  111. package/dist/security/worker.d.ts +2 -2
  112. package/dist/security/worker.d.ts.map +1 -1
  113. package/dist/security/worker.js +4 -10
  114. package/dist/security/worker.js.map +1 -1
  115. package/dist/sync/source-paths.d.ts.map +1 -1
  116. package/dist/sync/source-paths.js +10 -16
  117. package/dist/sync/source-paths.js.map +1 -1
  118. package/dist/sync/syncer.d.ts.map +1 -1
  119. package/dist/sync/syncer.js +69 -45
  120. package/dist/sync/syncer.js.map +1 -1
  121. package/dist/sync/watcher.d.ts +1 -1
  122. package/dist/sync/watcher.d.ts.map +1 -1
  123. package/dist/sync/watcher.js +15 -4
  124. package/dist/sync/watcher.js.map +1 -1
  125. package/dist/util/resolve-bin.d.ts.map +1 -1
  126. package/dist/util/resolve-bin.js +40 -25
  127. package/dist/util/resolve-bin.js.map +1 -1
  128. package/package.json +34 -19
@@ -1,9 +1,13 @@
1
- import { exec, execSync } from 'node:child_process';
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 execAsync = promisify(exec);
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().reverse()
23
- .map(d => join(versionsDir, d, 'bin', name));
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
- ? ['latest', ...versions.filter(v => v !== 'latest').sort().reverse()]
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 = execSync(`${shell} ${flags} 'command -v ${name}'`, {
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
- try {
92
- const p = execSync(`command -v ${name}`, { encoding: 'utf8', timeout: 3000, stdio: ['pipe', 'pipe', 'pipe'] }).trim();
93
- if (p)
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 execSync('<shell> -ilc ...') which spawns a
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 execAsync(`${shell} ${flags} 'command -v ${name}'`, {
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
- try {
160
- const { stdout } = await execAsync(`command -v ${name}`, { encoding: 'utf8', timeout: 3000 });
161
- const p = stdout.trim();
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":"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"}
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.0",
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.63.0",
35
+ "@effect/opentelemetry": "^0.64.0",
22
36
  "@opentelemetry/api": "^1.9.1",
23
- "@opentelemetry/resources": "^2.7.1",
24
- "@opentelemetry/sdk-trace-base": "^2.7.1",
25
- "@opentelemetry/sdk-trace-node": "^2.7.1",
26
- "@opentelemetry/semantic-conventions": "^1.41.1",
27
- "better-sqlite3": "11.10.0",
28
- "effect": "^3.21.2",
29
- "@spool-lab/redact": "0.6.0",
30
- "@spool-lab/session-kit": "^0.6.0"
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.29.0",
47
+ "@effect/vitest": "^0.30.0",
34
48
  "@types/better-sqlite3": "^7.6.13",
35
- "@types/node": "^22.19.17",
36
- "vitest": "^3.2.4"
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": "vitest run",
45
- "bench:search": "pnpm run build && node scripts/benchmark-search-preview.mjs",
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
  }