whatileaked 0.5.1 → 0.5.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 +3 -1
- package/dist/cli.js +16 -5
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -206,7 +206,7 @@ npx whatileaked scan || echo "found something"
|
|
|
206
206
|
| Agent | Folder |
|
|
207
207
|
| --- | --- |
|
|
208
208
|
| Claude Code | `~/.claude/projects/` · `~/.claude/history.jsonl` · `~/.claude/paste-cache/` · `~/.claude/CLAUDE.md` |
|
|
209
|
-
| Codex | `~/.codex/sessions/` · `~/.codex/archived_sessions/` · `~/.codex/history.jsonl` · `~/.codex/AGENTS.md` |
|
|
209
|
+
| Codex | `~/.codex/sessions/` · `~/.codex/archived_sessions/` · `~/.codex/history.jsonl` · `~/.codex/AGENTS.md` · `~/.codex/AGENTS.override.md` |
|
|
210
210
|
| Cursor | `~/.cursor/projects/*/agent-transcripts/` |
|
|
211
211
|
| opencode | `~/.local/share/opencode/opencode.db` |
|
|
212
212
|
|
|
@@ -220,6 +220,8 @@ opencode, and rotate.
|
|
|
220
220
|
Cursor keeps its older Ask-mode chats in SQLite as well, and those are not
|
|
221
221
|
scanned yet. Agent transcripts are covered; Ask history is not.
|
|
222
222
|
|
|
223
|
+
Claude Code transcripts it set aside (`*.jsonl.superseded-*`) are scanned too.
|
|
224
|
+
|
|
223
225
|
Transcripts record credentials that were already sent. So does prompt history,
|
|
224
226
|
which keeps every prompt you typed and every long paste after the session itself
|
|
225
227
|
has been cleaned up. Instruction and memory files are worse: they are read again
|
package/dist/cli.js
CHANGED
|
@@ -2431,7 +2431,16 @@ var FileExtension = {
|
|
|
2431
2431
|
database: ".db"
|
|
2432
2432
|
};
|
|
2433
2433
|
function isJsonl(path) {
|
|
2434
|
-
return path.endsWith(FileExtension.jsonl);
|
|
2434
|
+
return path.endsWith(FileExtension.jsonl) || supersededJsonl.test(path);
|
|
2435
|
+
}
|
|
2436
|
+
var supersededJsonl = /\.jsonl\.superseded-[^/\\]+$/;
|
|
2437
|
+
async function listJsonl(dir) {
|
|
2438
|
+
try {
|
|
2439
|
+
const entries = await readdir(dir, { withFileTypes: true });
|
|
2440
|
+
return entries.filter((entry) => entry.isFile() && isJsonl(entry.name)).map((entry) => entry.name);
|
|
2441
|
+
} catch {
|
|
2442
|
+
return [];
|
|
2443
|
+
}
|
|
2435
2444
|
}
|
|
2436
2445
|
async function listFiles(dir, extension) {
|
|
2437
2446
|
try {
|
|
@@ -2638,7 +2647,7 @@ var ClaudeCodeSource = class {
|
|
|
2638
2647
|
const dir = join2(root, slug);
|
|
2639
2648
|
let project = slug;
|
|
2640
2649
|
for (const nested of await walkDirectories(dir)) {
|
|
2641
|
-
for (const file of await
|
|
2650
|
+
for (const file of await listJsonl(nested)) {
|
|
2642
2651
|
const path = join2(nested, file);
|
|
2643
2652
|
const cwd = await firstCwd(path);
|
|
2644
2653
|
if (cwd !== null) project = basename(cwd);
|
|
@@ -2682,9 +2691,11 @@ var CodexSource = class {
|
|
|
2682
2691
|
this.#home = home2;
|
|
2683
2692
|
}
|
|
2684
2693
|
async *discover() {
|
|
2685
|
-
const
|
|
2686
|
-
|
|
2687
|
-
|
|
2694
|
+
for (const name of ["AGENTS.override.md", "AGENTS.md"]) {
|
|
2695
|
+
const instructions = await resolveFile(join3(this.#home, ".codex", name));
|
|
2696
|
+
if (instructions !== null) {
|
|
2697
|
+
yield { source: this.name, kind: FileKind.memory, path: instructions, project: this.name };
|
|
2698
|
+
}
|
|
2688
2699
|
}
|
|
2689
2700
|
const history = await resolveFile(join3(this.#home, ".codex", "history.jsonl"));
|
|
2690
2701
|
if (history !== null) {
|
package/package.json
CHANGED