agent-recall-core 3.4.30 → 3.4.35

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 (251) hide show
  1. package/README.md +121 -441
  2. package/dist/digest/store.d.ts.map +1 -1
  3. package/dist/digest/store.js +4 -3
  4. package/dist/digest/store.js.map +1 -1
  5. package/dist/display/board-render.d.ts +61 -0
  6. package/dist/display/board-render.d.ts.map +1 -0
  7. package/dist/display/board-render.js +223 -0
  8. package/dist/display/board-render.js.map +1 -0
  9. package/dist/helpers/alignment-patterns.d.ts +10 -0
  10. package/dist/helpers/alignment-patterns.d.ts.map +1 -1
  11. package/dist/helpers/alignment-patterns.js +5 -1
  12. package/dist/helpers/alignment-patterns.js.map +1 -1
  13. package/dist/helpers/blind-spots.d.ts +86 -0
  14. package/dist/helpers/blind-spots.d.ts.map +1 -0
  15. package/dist/helpers/blind-spots.js +205 -0
  16. package/dist/helpers/blind-spots.js.map +1 -0
  17. package/dist/helpers/conflict-scan.d.ts +10 -0
  18. package/dist/helpers/conflict-scan.d.ts.map +1 -1
  19. package/dist/helpers/conflict-scan.js +3 -3
  20. package/dist/helpers/conflict-scan.js.map +1 -1
  21. package/dist/helpers/semantic-match.d.ts +82 -0
  22. package/dist/helpers/semantic-match.d.ts.map +1 -0
  23. package/dist/helpers/semantic-match.js +229 -0
  24. package/dist/helpers/semantic-match.js.map +1 -0
  25. package/dist/index.d.ts +52 -11
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +48 -9
  28. package/dist/index.js.map +1 -1
  29. package/dist/palace/awareness.d.ts +30 -0
  30. package/dist/palace/awareness.d.ts.map +1 -1
  31. package/dist/palace/awareness.js +65 -2
  32. package/dist/palace/awareness.js.map +1 -1
  33. package/dist/palace/consolidate.d.ts.map +1 -1
  34. package/dist/palace/consolidate.js +17 -0
  35. package/dist/palace/consolidate.js.map +1 -1
  36. package/dist/palace/decay-pass.d.ts +46 -0
  37. package/dist/palace/decay-pass.d.ts.map +1 -0
  38. package/dist/palace/decay-pass.js +87 -0
  39. package/dist/palace/decay-pass.js.map +1 -0
  40. package/dist/palace/insights-index.d.ts.map +1 -1
  41. package/dist/palace/insights-index.js +4 -2
  42. package/dist/palace/insights-index.js.map +1 -1
  43. package/dist/palace/skills.d.ts +41 -2
  44. package/dist/palace/skills.d.ts.map +1 -1
  45. package/dist/palace/skills.js +106 -4
  46. package/dist/palace/skills.js.map +1 -1
  47. package/dist/prompts/consolidation-prompt.d.ts +25 -0
  48. package/dist/prompts/consolidation-prompt.d.ts.map +1 -0
  49. package/dist/prompts/consolidation-prompt.js +91 -0
  50. package/dist/prompts/consolidation-prompt.js.map +1 -0
  51. package/dist/storage/archive-prune.d.ts +56 -0
  52. package/dist/storage/archive-prune.d.ts.map +1 -0
  53. package/dist/storage/archive-prune.js +118 -0
  54. package/dist/storage/archive-prune.js.map +1 -0
  55. package/dist/storage/archive-write.d.ts +38 -0
  56. package/dist/storage/archive-write.d.ts.map +1 -0
  57. package/dist/storage/archive-write.js +98 -0
  58. package/dist/storage/archive-write.js.map +1 -0
  59. package/dist/storage/blind-spots-store.d.ts +30 -0
  60. package/dist/storage/blind-spots-store.d.ts.map +1 -0
  61. package/dist/storage/blind-spots-store.js +91 -0
  62. package/dist/storage/blind-spots-store.js.map +1 -0
  63. package/dist/storage/capture-router.d.ts +60 -0
  64. package/dist/storage/capture-router.d.ts.map +1 -0
  65. package/dist/storage/capture-router.js +133 -0
  66. package/dist/storage/capture-router.js.map +1 -0
  67. package/dist/storage/classification.d.ts +32 -0
  68. package/dist/storage/classification.d.ts.map +1 -0
  69. package/dist/storage/classification.js +74 -0
  70. package/dist/storage/classification.js.map +1 -0
  71. package/dist/storage/consolidation-queue.d.ts +39 -0
  72. package/dist/storage/consolidation-queue.d.ts.map +1 -0
  73. package/dist/storage/consolidation-queue.js +120 -0
  74. package/dist/storage/consolidation-queue.js.map +1 -0
  75. package/dist/storage/content-guard.d.ts +74 -0
  76. package/dist/storage/content-guard.d.ts.map +1 -0
  77. package/dist/storage/content-guard.js +179 -0
  78. package/dist/storage/content-guard.js.map +1 -0
  79. package/dist/storage/corrections.d.ts +246 -21
  80. package/dist/storage/corrections.d.ts.map +1 -1
  81. package/dist/storage/corrections.js +605 -56
  82. package/dist/storage/corrections.js.map +1 -1
  83. package/dist/storage/durable-intent.d.ts +49 -0
  84. package/dist/storage/durable-intent.d.ts.map +1 -0
  85. package/dist/storage/durable-intent.js +124 -0
  86. package/dist/storage/durable-intent.js.map +1 -0
  87. package/dist/storage/filelock.d.ts +6 -0
  88. package/dist/storage/filelock.d.ts.map +1 -1
  89. package/dist/storage/filelock.js +6 -1
  90. package/dist/storage/filelock.js.map +1 -1
  91. package/dist/storage/memory-protocol.d.ts +19 -0
  92. package/dist/storage/memory-protocol.d.ts.map +1 -0
  93. package/dist/storage/memory-protocol.js +101 -0
  94. package/dist/storage/memory-protocol.js.map +1 -0
  95. package/dist/storage/paths.d.ts +23 -0
  96. package/dist/storage/paths.d.ts.map +1 -1
  97. package/dist/storage/paths.js +39 -0
  98. package/dist/storage/paths.js.map +1 -1
  99. package/dist/storage/retention.d.ts +23 -0
  100. package/dist/storage/retention.d.ts.map +1 -0
  101. package/dist/storage/retention.js +48 -0
  102. package/dist/storage/retention.js.map +1 -0
  103. package/dist/storage/session.d.ts +2 -2
  104. package/dist/storage/session.d.ts.map +1 -1
  105. package/dist/storage/session.js +11 -1
  106. package/dist/storage/session.js.map +1 -1
  107. package/dist/supabase/config.d.ts +8 -0
  108. package/dist/supabase/config.d.ts.map +1 -1
  109. package/dist/supabase/config.js +5 -0
  110. package/dist/supabase/config.js.map +1 -1
  111. package/dist/supabase/recall-backend.d.ts +1 -0
  112. package/dist/supabase/recall-backend.d.ts.map +1 -1
  113. package/dist/supabase/recall-backend.js +13 -13
  114. package/dist/supabase/recall-backend.js.map +1 -1
  115. package/dist/supabase/sync.d.ts.map +1 -1
  116. package/dist/supabase/sync.js +30 -3
  117. package/dist/supabase/sync.js.map +1 -1
  118. package/dist/tools-logic/bootstrap.d.ts +15 -0
  119. package/dist/tools-logic/bootstrap.d.ts.map +1 -1
  120. package/dist/tools-logic/bootstrap.js +238 -47
  121. package/dist/tools-logic/bootstrap.js.map +1 -1
  122. package/dist/tools-logic/brief.d.ts +84 -0
  123. package/dist/tools-logic/brief.d.ts.map +1 -0
  124. package/dist/tools-logic/brief.js +193 -0
  125. package/dist/tools-logic/brief.js.map +1 -0
  126. package/dist/tools-logic/check-action.d.ts +9 -0
  127. package/dist/tools-logic/check-action.d.ts.map +1 -1
  128. package/dist/tools-logic/check-action.js +31 -2
  129. package/dist/tools-logic/check-action.js.map +1 -1
  130. package/dist/tools-logic/check.d.ts +7 -0
  131. package/dist/tools-logic/check.d.ts.map +1 -1
  132. package/dist/tools-logic/check.js +24 -2
  133. package/dist/tools-logic/check.js.map +1 -1
  134. package/dist/tools-logic/confidence.d.ts +50 -0
  135. package/dist/tools-logic/confidence.d.ts.map +1 -0
  136. package/dist/tools-logic/confidence.js +70 -0
  137. package/dist/tools-logic/confidence.js.map +1 -0
  138. package/dist/tools-logic/drill-down.d.ts +37 -0
  139. package/dist/tools-logic/drill-down.d.ts.map +1 -0
  140. package/dist/tools-logic/drill-down.js +63 -0
  141. package/dist/tools-logic/drill-down.js.map +1 -0
  142. package/dist/tools-logic/export-corrections.d.ts +63 -0
  143. package/dist/tools-logic/export-corrections.d.ts.map +1 -0
  144. package/dist/tools-logic/export-corrections.js +124 -0
  145. package/dist/tools-logic/export-corrections.js.map +1 -0
  146. package/dist/tools-logic/journal-capture.d.ts.map +1 -1
  147. package/dist/tools-logic/journal-capture.js +4 -1
  148. package/dist/tools-logic/journal-capture.js.map +1 -1
  149. package/dist/tools-logic/journal-write.d.ts.map +1 -1
  150. package/dist/tools-logic/journal-write.js +3 -2
  151. package/dist/tools-logic/journal-write.js.map +1 -1
  152. package/dist/tools-logic/memory-query.d.ts +10 -3
  153. package/dist/tools-logic/memory-query.d.ts.map +1 -1
  154. package/dist/tools-logic/memory-query.js +31 -7
  155. package/dist/tools-logic/memory-query.js.map +1 -1
  156. package/dist/tools-logic/mirror-builder.d.ts +115 -0
  157. package/dist/tools-logic/mirror-builder.d.ts.map +1 -0
  158. package/dist/tools-logic/mirror-builder.js +348 -0
  159. package/dist/tools-logic/mirror-builder.js.map +1 -0
  160. package/dist/tools-logic/palace-write.d.ts.map +1 -1
  161. package/dist/tools-logic/palace-write.js +3 -2
  162. package/dist/tools-logic/palace-write.js.map +1 -1
  163. package/dist/tools-logic/pipeline-close.d.ts.map +1 -1
  164. package/dist/tools-logic/pipeline-close.js +2 -1
  165. package/dist/tools-logic/pipeline-close.js.map +1 -1
  166. package/dist/tools-logic/pipeline-open.d.ts.map +1 -1
  167. package/dist/tools-logic/pipeline-open.js +2 -1
  168. package/dist/tools-logic/pipeline-open.js.map +1 -1
  169. package/dist/tools-logic/predict-correction.d.ts +47 -0
  170. package/dist/tools-logic/predict-correction.d.ts.map +1 -0
  171. package/dist/tools-logic/predict-correction.js +137 -0
  172. package/dist/tools-logic/predict-correction.js.map +1 -0
  173. package/dist/tools-logic/prior-builder.d.ts +27 -0
  174. package/dist/tools-logic/prior-builder.d.ts.map +1 -0
  175. package/dist/tools-logic/prior-builder.js +57 -0
  176. package/dist/tools-logic/prior-builder.js.map +1 -0
  177. package/dist/tools-logic/recognition-builder.d.ts +116 -0
  178. package/dist/tools-logic/recognition-builder.d.ts.map +1 -0
  179. package/dist/tools-logic/recognition-builder.js +289 -0
  180. package/dist/tools-logic/recognition-builder.js.map +1 -0
  181. package/dist/tools-logic/safety-consolidation.d.ts +104 -0
  182. package/dist/tools-logic/safety-consolidation.d.ts.map +1 -0
  183. package/dist/tools-logic/safety-consolidation.js +256 -0
  184. package/dist/tools-logic/safety-consolidation.js.map +1 -0
  185. package/dist/tools-logic/session-end-reflect.d.ts +18 -0
  186. package/dist/tools-logic/session-end-reflect.d.ts.map +1 -1
  187. package/dist/tools-logic/session-end-reflect.js +68 -29
  188. package/dist/tools-logic/session-end-reflect.js.map +1 -1
  189. package/dist/tools-logic/session-end.d.ts +9 -0
  190. package/dist/tools-logic/session-end.d.ts.map +1 -1
  191. package/dist/tools-logic/session-end.js +111 -13
  192. package/dist/tools-logic/session-end.js.map +1 -1
  193. package/dist/tools-logic/session-start-lite.d.ts +2 -0
  194. package/dist/tools-logic/session-start-lite.d.ts.map +1 -1
  195. package/dist/tools-logic/session-start-lite.js +10 -0
  196. package/dist/tools-logic/session-start-lite.js.map +1 -1
  197. package/dist/tools-logic/session-start.d.ts +46 -0
  198. package/dist/tools-logic/session-start.d.ts.map +1 -1
  199. package/dist/tools-logic/session-start.js +96 -3
  200. package/dist/tools-logic/session-start.js.map +1 -1
  201. package/dist/tools-logic/skill-propose.d.ts +27 -0
  202. package/dist/tools-logic/skill-propose.d.ts.map +1 -0
  203. package/dist/tools-logic/skill-propose.js +66 -0
  204. package/dist/tools-logic/skill-propose.js.map +1 -0
  205. package/dist/tools-logic/skill-recall.d.ts +5 -0
  206. package/dist/tools-logic/skill-recall.d.ts.map +1 -1
  207. package/dist/tools-logic/skill-recall.js +14 -1
  208. package/dist/tools-logic/skill-recall.js.map +1 -1
  209. package/dist/tools-logic/smart-recall.d.ts +17 -0
  210. package/dist/tools-logic/smart-recall.d.ts.map +1 -1
  211. package/dist/tools-logic/smart-recall.js +51 -16
  212. package/dist/tools-logic/smart-recall.js.map +1 -1
  213. package/dist/tools-logic/store-doctor.d.ts +71 -0
  214. package/dist/tools-logic/store-doctor.d.ts.map +1 -0
  215. package/dist/tools-logic/store-doctor.js +387 -0
  216. package/dist/tools-logic/store-doctor.js.map +1 -0
  217. package/dist/tools-logic/store-repair.d.ts +64 -0
  218. package/dist/tools-logic/store-repair.d.ts.map +1 -0
  219. package/dist/tools-logic/store-repair.js +243 -0
  220. package/dist/tools-logic/store-repair.js.map +1 -0
  221. package/dist/tools-logic/supersession.d.ts +34 -0
  222. package/dist/tools-logic/supersession.d.ts.map +1 -0
  223. package/dist/tools-logic/supersession.js +103 -0
  224. package/dist/tools-logic/supersession.js.map +1 -0
  225. package/dist/types.d.ts +7 -1
  226. package/dist/types.d.ts.map +1 -1
  227. package/dist/types.js +1 -1
  228. package/dist/vector/local-vector-backend.d.ts.map +1 -1
  229. package/dist/vector/local-vector-backend.js +14 -17
  230. package/dist/vector/local-vector-backend.js.map +1 -1
  231. package/package.json +9 -1
  232. package/dist/relevance/injector.d.ts +0 -51
  233. package/dist/relevance/injector.d.ts.map +0 -1
  234. package/dist/relevance/injector.js +0 -121
  235. package/dist/relevance/injector.js.map +0 -1
  236. package/dist/relevance/precision.d.ts +0 -109
  237. package/dist/relevance/precision.d.ts.map +0 -1
  238. package/dist/relevance/precision.js +0 -279
  239. package/dist/relevance/precision.js.map +0 -1
  240. package/dist/relevance/promoter.d.ts +0 -60
  241. package/dist/relevance/promoter.d.ts.map +0 -1
  242. package/dist/relevance/promoter.js +0 -336
  243. package/dist/relevance/promoter.js.map +0 -1
  244. package/dist/relevance/stager.d.ts +0 -61
  245. package/dist/relevance/stager.d.ts.map +0 -1
  246. package/dist/relevance/stager.js +0 -251
  247. package/dist/relevance/stager.js.map +0 -1
  248. package/dist/relevance/surfacer.d.ts +0 -34
  249. package/dist/relevance/surfacer.d.ts.map +0 -1
  250. package/dist/relevance/surfacer.js +0 -333
  251. package/dist/relevance/surfacer.js.map +0 -1
@@ -9,6 +9,7 @@
9
9
  import * as fs from "node:fs";
10
10
  import * as path from "node:path";
11
11
  import * as os from "node:os";
12
+ import { randomUUID } from "node:crypto";
12
13
  import { execFile } from "node:child_process";
13
14
  import { promisify } from "node:util";
14
15
  import { getRoot } from "../types.js";
@@ -19,8 +20,52 @@ import { palaceWrite } from "./palace-write.js";
19
20
  import { journalWrite } from "./journal-write.js";
20
21
  import { awarenessUpdate } from "./awareness-update.js";
21
22
  import { palaceDir, sanitizeProject } from "../storage/paths.js";
23
+ import { scrubSecretContent } from "../storage/content-guard.js";
22
24
  const execFileAsync = promisify(execFile);
23
25
  // ---------------------------------------------------------------------------
26
+ // GUARD 3: In-process nonce registry
27
+ //
28
+ // bootstrapScan() mints a random UUID nonce and stores it here.
29
+ // bootstrapImport() requires the caller to pass back the same nonce.
30
+ // This ensures that only a scan result produced by THIS process can be
31
+ // imported — an external MCP client that fabricates a scan_result cannot
32
+ // know the nonce and will be rejected.
33
+ //
34
+ // Map<nonce, scanRoots> — roots embedded so import can re-validate paths.
35
+ // ---------------------------------------------------------------------------
36
+ const VALID_NONCES = new Map();
37
+ /** Maximum age (ms) after which a nonce is automatically expired. 30 minutes. */
38
+ const NONCE_MAX_AGE_MS = 30 * 60 * 1000;
39
+ const NONCE_TIMESTAMPS = new Map();
40
+ /** Register a newly-minted nonce (called by bootstrapScan). */
41
+ function registerNonce(nonce, scanRoots) {
42
+ // Purge expired nonces to avoid unbounded growth
43
+ const now = Date.now();
44
+ for (const [k, ts] of NONCE_TIMESTAMPS) {
45
+ if (now - ts > NONCE_MAX_AGE_MS) {
46
+ VALID_NONCES.delete(k);
47
+ NONCE_TIMESTAMPS.delete(k);
48
+ }
49
+ }
50
+ VALID_NONCES.set(nonce, scanRoots);
51
+ NONCE_TIMESTAMPS.set(nonce, now);
52
+ }
53
+ /**
54
+ * Validate a nonce passed to bootstrapImport.
55
+ * Returns the registered scan roots if valid, null if invalid or expired.
56
+ */
57
+ function validateNonce(nonce) {
58
+ const ts = NONCE_TIMESTAMPS.get(nonce);
59
+ if (ts === undefined)
60
+ return null;
61
+ if (Date.now() - ts > NONCE_MAX_AGE_MS) {
62
+ VALID_NONCES.delete(nonce);
63
+ NONCE_TIMESTAMPS.delete(nonce);
64
+ return null;
65
+ }
66
+ return VALID_NONCES.get(nonce) ?? null;
67
+ }
68
+ // ---------------------------------------------------------------------------
24
69
  // Denylist — parent / system / cache directories that should NEVER be imported
25
70
  // as projects. AutoMemory encoded paths like "-Users-tongwu-Downloads" decode
26
71
  // to basename "Downloads", which without filtering becomes a phantom project.
@@ -92,7 +137,9 @@ const SKIP_DIRS = new Set([
92
137
  ".npm",
93
138
  ]);
94
139
  const SECRET_PATTERNS = [
140
+ // Exact-match / extension patterns on basename
95
141
  /\.env$/i,
142
+ /\.env\..+$/i, // .env.local, .env.development, .env.*.local
96
143
  /credentials/i,
97
144
  /secrets/i,
98
145
  /tokens/i,
@@ -103,16 +150,81 @@ const SECRET_PATTERNS = [
103
150
  /^id_ecdsa$/i,
104
151
  /^authorized_keys$/i,
105
152
  /\.pub$/i,
153
+ /^\.npmrc$/i,
154
+ /^\.netrc$/i,
155
+ /^\.pgpass$/i,
156
+ /^\.aws$/i, // edge case: dir named .aws
157
+ /^\.bash_history$/i, // shell command history
158
+ /^\.zsh_history$/i, // zsh command history
159
+ /^hosts\.yml$/i, // gh CLI OAuth token store (~/.config/gh/hosts.yml)
106
160
  ];
161
+ /**
162
+ * Parent directory names that contain secrets. When a file lives inside one of
163
+ * these dirs, it is treated as secret regardless of its basename. Catches
164
+ * ~/.ssh/config, ~/.aws/config, ~/.docker/config.json, ~/.kube/config, etc.
165
+ */
166
+ const SECRET_PARENT_DIRS = new Set([
167
+ ".ssh",
168
+ ".aws",
169
+ ".docker",
170
+ ".kube",
171
+ ".gnupg",
172
+ ".gpg",
173
+ "gh", // ~/.config/gh/hosts.yml stores GitHub OAuth tokens
174
+ ]);
107
175
  const MAX_FILE_SIZE = 5 * 1024; // 5KB
108
176
  const PREVIEW_LEN = 100;
109
177
  const GIT_TIMEOUT_MS = 2000;
110
178
  // ---------------------------------------------------------------------------
111
- // Helpers
179
+ // Security helpers
112
180
  // ---------------------------------------------------------------------------
181
+ /**
182
+ * Normalize a filesystem path by resolving symlinks.
183
+ * Returns the real absolute path, or the input as-is when the path does not
184
+ * yet exist (e.g. a newly-created temp directory not yet written).
185
+ */
186
+ function saferealpathSync(p) {
187
+ try {
188
+ return fs.realpathSync(p);
189
+ }
190
+ catch {
191
+ return p;
192
+ }
193
+ }
194
+ /**
195
+ * Return true when `filePath` is inside one of the `allowedRoots` after
196
+ * symlink resolution on BOTH sides. This is Guard 1 (realpath jail).
197
+ *
198
+ * - Resolves `filePath` with realpathSync (follows symlinks).
199
+ * - Each root is also normalised — a symlinked scan root itself is followed.
200
+ * - Checks real === root OR real starts with root + '/'.
201
+ */
202
+ function isInsideScanRoots(filePath, allowedRoots) {
203
+ const real = saferealpathSync(filePath);
204
+ for (const root of allowedRoots) {
205
+ const realRoot = saferealpathSync(root);
206
+ if (real === realRoot || real.startsWith(realRoot + "/"))
207
+ return true;
208
+ }
209
+ return false;
210
+ }
211
+ /**
212
+ * Guard 2 — expanded secret file check.
213
+ *
214
+ * Checks BOTH:
215
+ * a) Basename against SECRET_PATTERNS (original behaviour).
216
+ * b) Immediate parent directory name against SECRET_PARENT_DIRS (new).
217
+ *
218
+ * Either condition is sufficient to flag the file as secret.
219
+ */
113
220
  function isSecretFile(filePath) {
114
221
  const base = path.basename(filePath);
115
- return SECRET_PATTERNS.some((re) => re.test(base));
222
+ if (SECRET_PATTERNS.some((re) => re.test(base)))
223
+ return true;
224
+ const parentDir = path.basename(path.dirname(filePath));
225
+ if (SECRET_PARENT_DIRS.has(parentDir))
226
+ return true;
227
+ return false;
116
228
  }
117
229
  function toSlug(name) {
118
230
  return name
@@ -155,32 +267,26 @@ function detectLanguage(dir) {
155
267
  return undefined;
156
268
  }
157
269
  }
158
- function readPreview(filePath) {
159
- try {
160
- if (!fs.existsSync(filePath))
161
- return "";
162
- const stat = fs.statSync(filePath);
163
- if (stat.size > MAX_FILE_SIZE)
164
- return "[file too large skipped]";
165
- const buf = Buffer.alloc(PREVIEW_LEN + 10);
166
- const fd = fs.openSync(filePath, "r");
167
- let bytesRead;
168
- try {
169
- bytesRead = fs.readSync(fd, buf, 0, PREVIEW_LEN + 10, 0);
170
- }
171
- finally {
172
- fs.closeSync(fd);
173
- }
174
- return buf
175
- .slice(0, bytesRead)
176
- .toString("utf-8")
177
- .slice(0, PREVIEW_LEN)
178
- .replace(/\n/g, " ")
179
- .trim();
180
- }
181
- catch {
182
- return "";
183
- }
270
+ /**
271
+ * GUARD 4 — CONSENT GATE: readPreview intentionally returns a placeholder
272
+ * string during the SCAN phase. File content is NOT read until the user
273
+ * explicitly calls bootstrapImport() (the opt-in step).
274
+ *
275
+ * Previously: read first 100 bytes of every discovered file into the
276
+ * BootstrapScanResult MCP response, which meant secret file CONTENT
277
+ * (e.g. first line of ~/.env, first 100 chars of a key file that bypassed
278
+ * the denylist) could appear in MCP logs, terminal output, and remote
279
+ * Supabase sync.
280
+ *
281
+ * Now: preview is always the empty string during scan. The only fields
282
+ * populated are source_path and size_bytes, which are metadata-only.
283
+ * The actual content is read at import time inside bootstrapImport() after
284
+ * the realpath jail and secret-file checks have already run.
285
+ */
286
+ function readPreview(_filePath) {
287
+ // Intentionally no-op during scan (Guard 4: consent gate).
288
+ // Content is read at import time, not scan time.
289
+ return "";
184
290
  }
185
291
  function fileSizeBytes(filePath) {
186
292
  try {
@@ -262,29 +368,39 @@ function getTargetRoom(meta) {
262
368
  default: return "knowledge";
263
369
  }
264
370
  }
265
- /** Walk a directory to find git repos up to max_depth. Stops recursing into found repos. */
371
+ /**
372
+ * Walk a directory to find git repos up to max_depth. Stops recursing into
373
+ * found repos.
374
+ *
375
+ * GUARD 1 (realpath jail): each discovered repo path is resolved via
376
+ * realpathSync so that symlinked directories are followed to their real
377
+ * location. The realpath is what gets recorded — callers must compare against
378
+ * realpath-normalised scan roots, not raw string prefixes.
379
+ */
266
380
  function findGitRepos(dir, maxDepth, depth = 0) {
267
381
  if (depth > maxDepth)
268
382
  return [];
269
- if (!fs.existsSync(dir))
383
+ // Resolve symlinks before existence check (Guard 1)
384
+ const realDir = saferealpathSync(dir);
385
+ if (!fs.existsSync(realDir))
270
386
  return [];
271
387
  let entries;
272
388
  try {
273
- entries = fs.readdirSync(dir, { withFileTypes: true });
389
+ entries = fs.readdirSync(realDir, { withFileTypes: true });
274
390
  }
275
391
  catch {
276
392
  return [];
277
393
  }
278
394
  const hasGit = entries.some((e) => e.name === ".git" && e.isDirectory());
279
395
  if (hasGit)
280
- return [dir];
396
+ return [realDir];
281
397
  const results = [];
282
398
  for (const entry of entries) {
283
399
  if (!entry.isDirectory())
284
400
  continue;
285
401
  if (SKIP_DIRS.has(entry.name))
286
402
  continue;
287
- results.push(...findGitRepos(path.join(dir, entry.name), maxDepth, depth + 1));
403
+ results.push(...findGitRepos(path.join(realDir, entry.name), maxDepth, depth + 1));
288
404
  }
289
405
  return results;
290
406
  }
@@ -311,8 +427,23 @@ export async function bootstrapScan(options) {
311
427
  const t0 = Date.now();
312
428
  const maxDepth = options?.max_depth ?? 3;
313
429
  const home = os.homedir();
430
+ const realHome = saferealpathSync(home);
431
+ // GUARD 1 & 3: resolve scan dirs via realpathSync so symlinked roots are
432
+ // followed, and record the resolved roots in the result for import-time
433
+ // re-validation.
314
434
  const rawScanDirs = [...DEFAULT_SCAN_DIRS, ...(options?.scan_dirs ?? []), ...(options?.source_dirs ?? [])];
315
- const scanDirs = rawScanDirs.filter((d) => d.startsWith(home));
435
+ // Filter: must start with home (string check before realpath) then re-check
436
+ // against realHome after resolution
437
+ const scanDirs = rawScanDirs
438
+ .filter((d) => d.startsWith(home) || d.startsWith(realHome))
439
+ .map((d) => saferealpathSync(d))
440
+ .filter((d) => d.startsWith(realHome));
441
+ // Deduplicate resolved roots
442
+ const uniqueScanRoots = [...new Set(scanDirs)];
443
+ // Session nonce — ties scan result to this process. bootstrapImport() must
444
+ // pass back the same nonce or the import is rejected (Guard 3).
445
+ const sessionNonce = randomUUID();
446
+ registerNonce(sessionNonce, uniqueScanRoots);
316
447
  const arSlugs = existingArSlugs();
317
448
  // Map from slug → DiscoveredProject (for merging multi-source projects)
318
449
  const projectMap = new Map();
@@ -320,7 +451,7 @@ export async function bootstrapScan(options) {
320
451
  // 1. Git repo discovery
321
452
  // -------------------------------------------------------------------------
322
453
  const allRepoDirs = [];
323
- for (const dir of scanDirs) {
454
+ for (const dir of uniqueScanRoots) {
324
455
  allRepoDirs.push(...findGitRepos(dir, maxDepth));
325
456
  }
326
457
  const uniqueRepoDirs = [...new Set(allRepoDirs)];
@@ -556,6 +687,8 @@ export async function bootstrapScan(options) {
556
687
  total_already_in_ar: alreadyInAr,
557
688
  scan_duration_ms: Date.now() - t0,
558
689
  },
690
+ _session_nonce: sessionNonce,
691
+ _scan_roots: uniqueScanRoots,
559
692
  };
560
693
  }
561
694
  // ---------------------------------------------------------------------------
@@ -564,6 +697,49 @@ export async function bootstrapScan(options) {
564
697
  export async function bootstrapImport(scan, selection) {
565
698
  const t0 = Date.now();
566
699
  const home = os.homedir();
700
+ const realHome = saferealpathSync(home);
701
+ // GUARD 3: Validate session nonce — reject fabricated scan results.
702
+ // A scan_result arriving over MCP from an untrusted caller will not have a
703
+ // nonce registered in this process's VALID_NONCES map.
704
+ const nonce = scan._session_nonce;
705
+ if (!nonce) {
706
+ return {
707
+ projects_created: 0,
708
+ items_imported: 0,
709
+ items_skipped: 0,
710
+ errors: [{ project: "__security__", item: "__nonce__", error: "bootstrap_import rejected: scan_result is missing _session_nonce. Call bootstrap_scan() in the same session to obtain a valid scan result." }],
711
+ duration_ms: Date.now() - t0,
712
+ };
713
+ }
714
+ const registeredRoots = validateNonce(nonce);
715
+ if (!registeredRoots) {
716
+ return {
717
+ projects_created: 0,
718
+ items_imported: 0,
719
+ items_skipped: 0,
720
+ errors: [{ project: "__security__", item: "__nonce__", error: "bootstrap_import rejected: _session_nonce is invalid, expired (>30m), or was not produced by this session's bootstrap_scan(). Fabricated scan results are not accepted." }],
721
+ duration_ms: Date.now() - t0,
722
+ };
723
+ }
724
+ // GUARD 1: Use registeredRoots (realpath-resolved scan roots from scan time)
725
+ // as the trusted allowlist. Every source_path is re-validated against these
726
+ // roots after symlink resolution before any file read.
727
+ const allowedScanRoots = registeredRoots.length > 0 ? registeredRoots : [realHome];
728
+ /**
729
+ * Validate a source_path from the scan result:
730
+ * 1. Resolve symlinks (realpathSync).
731
+ * 2. Confirm the resolved path is inside one of allowedScanRoots OR inside home.
732
+ * 3. Re-run isSecretFile() on the resolved path (catches renamed/moved files).
733
+ */
734
+ function isPathSafe(sourcePath) {
735
+ if (!sourcePath || typeof sourcePath !== "string")
736
+ return false;
737
+ // INTENTIONAL: realHome is included as a fallback root so that AutoMemory
738
+ // items (e.g. ~/.claude/projects/…) are accepted even when scan_dirs was a
739
+ // narrower subset. For in-home files isSecretFile() (Guard 2) is the
740
+ // content/filename barrier — it runs on every accepted path before import.
741
+ return isInsideScanRoots(sourcePath, [...allowedScanRoots, realHome]);
742
+ }
567
743
  const includeGlobal = selection?.include_global ?? true;
568
744
  const skipItems = new Set(selection?.skip_items ?? []);
569
745
  const allowedTypes = selection?.item_types ? new Set(selection.item_types) : null;
@@ -671,20 +847,25 @@ export async function bootstrapImport(scan, selection) {
671
847
  itemsImported++;
672
848
  }
673
849
  else if (item.id === "claudemd") {
674
- // Read CLAUDE.md first 3KB, write to architecture room
850
+ // GUARD 1 + 2: realpath jail + secret-file check
675
851
  if (!fs.existsSync(item.source_path) || isSecretFile(item.source_path)) {
676
852
  itemsSkipped++;
677
853
  continue;
678
854
  }
679
- if (!item.source_path.startsWith(home)) {
855
+ if (!isPathSafe(item.source_path)) {
680
856
  itemsSkipped++;
681
857
  continue;
682
858
  }
683
859
  const raw = fs.readFileSync(item.source_path, "utf-8");
684
- // Scrub prompt-injection patterns before importing user-controlled
685
- // content into palace. CLAUDE.md often contains <system-reminder>
686
- // tags etc. that would surface to future agents as if real.
687
- const claudemdContent = scrubPromptInjection(raw.slice(0, 3000));
860
+ // GUARD 2: scrub prompt-injection AND content secrets before import.
861
+ // CLAUDE.md often contains <system-reminder> tags; some may also
862
+ // inadvertently include API keys / tokens in examples.
863
+ const afterInjection = scrubPromptInjection(raw.slice(0, 3000));
864
+ const { content: claudemdContent, redactedCount: claudemdSecrets } = scrubSecretContent(afterInjection);
865
+ if (claudemdSecrets > 0) {
866
+ // Non-fatal: log but proceed with redacted content
867
+ errors.push({ project: proj.slug, item: item.id, error: `[SECURITY] ${claudemdSecrets} secret pattern(s) redacted from CLAUDE.md before import` });
868
+ }
688
869
  await palaceWrite({
689
870
  room: "architecture",
690
871
  topic: "project-conventions",
@@ -694,12 +875,12 @@ export async function bootstrapImport(scan, selection) {
694
875
  itemsImported++;
695
876
  }
696
877
  else if (item.id.startsWith("claude-memory:")) {
697
- // Read memory file, strip frontmatter, route by type
878
+ // GUARD 1 + 2: realpath jail + secret-file check
698
879
  if (!fs.existsSync(item.source_path) || isSecretFile(item.source_path)) {
699
880
  itemsSkipped++;
700
881
  continue;
701
882
  }
702
- if (!item.source_path.startsWith(home)) {
883
+ if (!isPathSafe(item.source_path)) {
703
884
  itemsSkipped++;
704
885
  continue;
705
886
  }
@@ -710,8 +891,12 @@ export async function bootstrapImport(scan, selection) {
710
891
  }
711
892
  const rawContent = fs.readFileSync(item.source_path, "utf-8");
712
893
  const { body: rawBody, meta } = stripFrontmatter(rawContent);
713
- // Scrub prompt-injection patterns before storing imported content.
714
- const body = scrubPromptInjection(rawBody);
894
+ // GUARD 2: two-layer scrub injection then content secrets.
895
+ const afterInjection = scrubPromptInjection(rawBody);
896
+ const { content: body, redactedCount: memSecrets } = scrubSecretContent(afterInjection);
897
+ if (memSecrets > 0) {
898
+ errors.push({ project: proj.slug, item: item.id, error: `[SECURITY] ${memSecrets} secret pattern(s) redacted from memory file before import` });
899
+ }
715
900
  const rawTopic = (meta["name"] ?? item.id.replace("claude-memory:", "")).replace(/\.md$/, "");
716
901
  const topic = rawTopic.replace(/[^a-zA-Z0-9_\-]/g, "-");
717
902
  if (meta["type"] === "user") {
@@ -775,11 +960,12 @@ export async function bootstrapImport(scan, selection) {
775
960
  continue;
776
961
  }
777
962
  try {
963
+ // GUARD 1 + 2: realpath jail + secret-file check for global items
778
964
  if (!fs.existsSync(item.source_path) || isSecretFile(item.source_path)) {
779
965
  itemsSkipped++;
780
966
  continue;
781
967
  }
782
- if (!item.source_path.startsWith(home)) {
968
+ if (!isPathSafe(item.source_path)) {
783
969
  itemsSkipped++;
784
970
  continue;
785
971
  }
@@ -790,7 +976,12 @@ export async function bootstrapImport(scan, selection) {
790
976
  }
791
977
  const rawContent = fs.readFileSync(item.source_path, "utf-8");
792
978
  const { body: rawBody, meta } = stripFrontmatter(rawContent);
793
- const body = scrubPromptInjection(rawBody);
979
+ // GUARD 2: two-layer scrub
980
+ const afterInjection = scrubPromptInjection(rawBody);
981
+ const { content: body, redactedCount: globalSecrets } = scrubSecretContent(afterInjection);
982
+ if (globalSecrets > 0) {
983
+ errors.push({ project: globalSlug, item: item.id, error: `[SECURITY] ${globalSecrets} secret pattern(s) redacted from global item before import` });
984
+ }
794
985
  const rawTopic2 = (meta["name"] ?? item.id.replace("global:", "")).replace(/\.md$/, "");
795
986
  const topic = rawTopic2.replace(/[^a-zA-Z0-9_\-]/g, "-");
796
987
  if (meta["type"] === "user") {
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/tools-logic/bootstrap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/tools-logic/bootstrap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * brief.ts — compact LLM-free re-orientation briefing (≤200 tokens).
3
+ *
4
+ * Designed for:
5
+ * - Hook-less hosts (no session_start auto-fire) that need a lightweight
6
+ * mid-session reminder of lifecycle rules and current project state.
7
+ * - Tier-B fallback when a client does not want the full session_start payload.
8
+ *
9
+ * Contract:
10
+ * - READ-ONLY: no session_start side-effects (no recordPolicyLoad, no
11
+ * recordOutcome, no autoBackfill). Does NOT replace session_start.
12
+ * - DETERMINISTIC: same on-disk state → byte-identical JSON output across
13
+ * runs. No Date.now() in output, no timestamps, no random values.
14
+ * - LLM-FREE: only synchronous fs reads + keyword matching.
15
+ * - ≤200 tokens output budget (enforced by field limits; caller may verify).
16
+ * - NEVER call recordPolicyLoad or any write-side function here.
17
+ *
18
+ * Spec ref: cross-surface-adapter-spec.md §5 "brief tool design"
19
+ * --full only: registered inside the `if (fullMode)` block in index.ts.
20
+ */
21
+ export interface BriefInput {
22
+ project?: string;
23
+ }
24
+ export interface BriefCorrection {
25
+ id: string;
26
+ rule: string;
27
+ severity: "p0" | "p1";
28
+ }
29
+ export interface BriefWatchFor {
30
+ pattern: string;
31
+ suggestion: string;
32
+ }
33
+ export interface BriefRule {
34
+ name: string;
35
+ when: string;
36
+ do: string;
37
+ }
38
+ export interface BriefResult {
39
+ /** Resolved project slug. */
40
+ project: string;
41
+ /**
42
+ * Identity one-liner (≤140 chars). `"unknown"` when no identity card exists.
43
+ * Same extraction as sessionStartLite.
44
+ */
45
+ identity: string;
46
+ /**
47
+ * Active pipeline phase name, or null when no phase is active.
48
+ * Deterministic: uses listMilestones().find(m => status === 'active').
49
+ */
50
+ active_phase: string | null;
51
+ /** Top P0 corrections (≤3), deterministically ordered by date descending. */
52
+ corrections_top: BriefCorrection[];
53
+ /** Top watch_for patterns (≤2), extracted from alignment log. */
54
+ watch_for_top: BriefWatchFor[];
55
+ /** Top behavior rules (≤3), most recently created first. */
56
+ rules_top: BriefRule[];
57
+ /**
58
+ * The 3-rule lifecycle text verbatim. Always present.
59
+ * Keeps this tool self-contained for hook-less hosts.
60
+ */
61
+ lifecycle_text: string;
62
+ /**
63
+ * Canonical save-trigger vocabulary (human-readable string list).
64
+ * Derived from TRIGGER_VOCAB_DISPLAY — deterministic.
65
+ */
66
+ trigger_vocab: string[];
67
+ /**
68
+ * READ-ONLY store-integrity one-liner; null when the store is healthy.
69
+ * Best-effort — never throws.
70
+ */
71
+ store_health: string | null;
72
+ /**
73
+ * Host-honesty line: warns hook-less hosts they must drive the lifecycle.
74
+ * Always included.
75
+ */
76
+ host_hint: string;
77
+ }
78
+ /**
79
+ * The 3-rule lifecycle verbatim — must match server.ts instructions.
80
+ * Single source of truth here; server.ts REFERENCES this exported constant.
81
+ */
82
+ export declare const LIFECYCLE_TEXT: string;
83
+ export declare function brief(input: BriefInput): Promise<BriefResult>;
84
+ //# sourceMappingURL=brief.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brief.d.ts","sourceRoot":"","sources":["../../src/tools-logic/brief.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAcH,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,WAAW;IAC1B,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,6EAA6E;IAC7E,eAAe,EAAE,eAAe,EAAE,CAAC;IACnC,iEAAiE;IACjE,aAAa,EAAE,aAAa,EAAE,CAAC;IAC/B,4DAA4D;IAC5D,SAAS,EAAE,SAAS,EAAE,CAAC;IACvB;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB;;;OAGG;IACH,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD;;;GAGG;AACH,eAAO,MAAM,cAAc,QAI4B,CAAC;AAyExD,wBAAsB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CA2FnE"}