@pentoshi/clai 3.8.47 → 3.8.48

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.
@@ -1,7 +1,19 @@
1
1
  /**
2
- * Locate wordlist files for fuzzing tools. Searches known paths first, then
3
- * broadens to locate DB, full filesystem, and cached-credential sudo search so
4
- * wordlists are found regardless of install location or OS.
2
+ * Locate wordlist files for fuzzing tools. The goal is simple: if a wordlist
3
+ * exists anywhere reasonable on disk, find it regardless of how the model
4
+ * phrased the query.
5
+ *
6
+ * Models rarely pass an exact filename. They pass things like
7
+ * "directory common medium", "rockyou password list", or "medium directory
8
+ * wordlist for fuzzing". So instead of a naive exact `-name` match we:
9
+ * 1. Tokenize the query into keywords (dropping noise words like "wordlist").
10
+ * 2. Expand well-known aliases (common → common.txt, medium →
11
+ * directory-list-2.3-medium.txt, rockyou → rockyou.txt/.gz, …).
12
+ * 3. Build case-insensitive substring globs (`*keyword*.txt`) so partial and
13
+ * differently-cased names still match.
14
+ * 4. Search progressively wider: known install roots → broader user dirs →
15
+ * locate DB → full filesystem → cached-credential sudo — stopping at the
16
+ * first pass that yields hits.
5
17
  *
6
18
  * All external searches run through async execFile (never execFileSync) so a
7
19
  * slow `find /` can never block the render loop, and sudo is only ever invoked
@@ -19,6 +31,8 @@ const IS_MAC = platform() === "darwin";
19
31
  function getHome() {
20
32
  return process.env.HOME || process.env.USERPROFILE || homedir();
21
33
  }
34
+ /** Cap on how many hits we surface — enough to choose from, not a flood. */
35
+ const MAX_HITS = 60;
22
36
  /**
23
37
  * Run a capture command without inheriting any std stream. Returns stdout on
24
38
  * success; on non-zero exit (e.g. `find` hitting permission-denied dirs) we
@@ -70,6 +84,7 @@ function knownRoots() {
70
84
  ...common,
71
85
  "/opt/homebrew/share/seclists",
72
86
  "/opt/homebrew/share/wordlists",
87
+ "/opt/homebrew/share/nmap/nselib/data",
73
88
  "/usr/local/share/seclists",
74
89
  "/usr/local/share/wordlists",
75
90
  "/opt/local/share/seclists",
@@ -92,70 +107,176 @@ function knownRoots() {
92
107
  ];
93
108
  }
94
109
  // --- Aliases ---
110
+ // Maps a human keyword (or full query) to the real filenames it usually means.
111
+ // Keys are matched case-insensitively against the whole query AND each token.
95
112
  const NAME_ALIASES = {
96
- common: ["common.txt", "common.txt.gz"],
113
+ common: ["common.txt"],
97
114
  "common.txt": ["common.txt"],
98
115
  big: ["big.txt"],
99
116
  medium: ["directory-list-2.3-medium.txt"],
117
+ "directory-medium": ["directory-list-2.3-medium.txt"],
100
118
  small: ["directory-list-2.3-small.txt"],
119
+ "directory-small": ["directory-list-2.3-small.txt"],
120
+ directories: ["directory-list-2.3-medium.txt", "raft-medium-directories.txt"],
101
121
  rockyou: ["rockyou.txt", "rockyou.txt.gz"],
102
- subdomains: ["subdomains-top1million-5000.txt", "subdomains-top1million-20000.txt"],
103
- "raft-small": ["raft-small-words.txt", "raft-small-directories.txt"],
104
- "raft-medium": ["raft-medium-words.txt", "raft-medium-directories.txt"],
122
+ passwords: ["rockyou.txt", "rockyou.txt.gz"],
123
+ password: ["rockyou.txt", "rockyou.txt.gz"],
124
+ subdomains: [
125
+ "subdomains-top1million-5000.txt",
126
+ "subdomains-top1million-20000.txt",
127
+ "subdomains-top1million-110000.txt",
128
+ ],
129
+ subdomain: ["subdomains-top1million-5000.txt"],
130
+ dns: ["subdomains-top1million-5000.txt"],
131
+ vhosts: ["subdomains-top1million-5000.txt"],
132
+ "raft-small": [
133
+ "raft-small-words.txt",
134
+ "raft-small-directories.txt",
135
+ "raft-small-files.txt",
136
+ ],
137
+ "raft-medium": [
138
+ "raft-medium-words.txt",
139
+ "raft-medium-directories.txt",
140
+ "raft-medium-files.txt",
141
+ ],
142
+ "raft-large": [
143
+ "raft-large-words.txt",
144
+ "raft-large-directories.txt",
145
+ "raft-large-files.txt",
146
+ ],
147
+ quickhits: ["quickhits.txt"],
148
+ api: ["api-endpoints.txt", "actions-lowercase.txt"],
149
+ usernames: ["top-usernames-shortlist.txt", "xato-net-10-million-usernames.txt"],
150
+ users: ["top-usernames-shortlist.txt"],
151
+ fuzz: ["fuzz-Bo0oM.txt"],
152
+ fuzzing: ["fuzz-Bo0oM.txt"],
153
+ lfi: ["LFI-Jhaddix.txt"],
105
154
  };
106
- function candidateFilenames(query) {
155
+ // Extensions that identify wordlist-ish files. Substring globs are restricted
156
+ // to these so a broad `find /` doesn't drown us in unrelated files.
157
+ const WL_EXTS = ["txt", "lst", "dic", "words", "wordlist", "list", "gz"];
158
+ const WL_FILE_RE = /\.(txt|lst|dic|words|wordlist|list|gz)$/i;
159
+ // Words that carry no signal as a filename keyword.
160
+ const STOPWORDS = new Set([
161
+ "wordlist", "wordlists", "list", "lists", "the", "a", "an", "and", "or",
162
+ "for", "of", "to", "in", "on", "find", "search", "locate", "please", "get",
163
+ "me", "with", "some", "any", "best", "top", "file", "files", "txt", "using",
164
+ "use", "used", "need", "want", "looking", "look", "good", "default", "path",
165
+ "scan", "scanning", "fuzzing",
166
+ ]);
167
+ function looksLikeFilename(s) {
168
+ return !/\s/.test(s) && /\.[a-z0-9]{1,8}(\.[a-z0-9]{1,4})?$/i.test(s);
169
+ }
170
+ function tokenize(query) {
171
+ return query
172
+ .toLowerCase()
173
+ .split(/[^a-z0-9]+/i)
174
+ .filter(Boolean);
175
+ }
176
+ function buildSearchPlan(query) {
107
177
  const lower = query.toLowerCase().trim();
108
- return NAME_ALIASES[lower] ?? [query];
178
+ const names = new Set();
179
+ const globs = new Set();
180
+ const broad = new Set();
181
+ // Exact literal query when it is already filename-shaped (e.g. "common.txt").
182
+ if (looksLikeFilename(lower))
183
+ names.add(lower);
184
+ // Whole-query alias (e.g. "raft-medium", "directory-small").
185
+ for (const a of NAME_ALIASES[lower] ?? [])
186
+ names.add(a);
187
+ // Keyword extraction with graceful fallback so we never end up with nothing.
188
+ const rawTokens = tokenize(query);
189
+ let keywords = rawTokens.filter((t) => t.length >= 3 && !STOPWORDS.has(t));
190
+ if (keywords.length === 0)
191
+ keywords = rawTokens.filter((t) => t.length >= 3);
192
+ if (keywords.length === 0)
193
+ keywords = rawTokens.slice();
194
+ keywords = [...new Set(keywords)].slice(0, 6);
195
+ for (const kw of keywords) {
196
+ for (const a of NAME_ALIASES[kw] ?? [])
197
+ names.add(a);
198
+ for (const ext of WL_EXTS)
199
+ globs.add(`*${kw}*.${ext}`);
200
+ broad.add(`*${kw}*`);
201
+ }
202
+ // Absolute last resort: search for the raw query verbatim.
203
+ if (names.size === 0 && globs.size === 0)
204
+ names.add(query);
205
+ return {
206
+ names: [...names],
207
+ globs: [...globs],
208
+ broad: [...broad],
209
+ keywords,
210
+ };
109
211
  }
110
212
  // --- Search helpers ---
111
213
  function parseLines(raw) {
112
214
  return raw.split(/\r?\n/).map((l) => l.trim()).filter(Boolean);
113
215
  }
114
- function buildFindNameExpr(filenames) {
115
- return filenames.flatMap((f, i) => (i === 0 ? ["-name", f] : ["-o", "-name", f]));
216
+ function dedupe(items) {
217
+ return [...new Set(items.filter(Boolean))];
218
+ }
219
+ // POSIX `find` name expression from a list of literal names / globs. Uses
220
+ // -iname throughout so matching is always case-insensitive.
221
+ function buildFindNameExpr(patterns) {
222
+ return patterns.flatMap((p, i) => (i === 0 ? ["-iname", p] : ["-o", "-iname", p]));
223
+ }
224
+ // PowerShell array literal of quoted patterns for -like matching.
225
+ function psPatternArray(patterns) {
226
+ return patterns.map((p) => `'${p.replace(/'/g, "''")}'`).join(",");
116
227
  }
117
228
  // Quiet directory search: capped depth, timeout, stderr never inherited.
118
- async function searchRoot(root, filenames, maxDepth) {
119
- if (!existsSync(root))
229
+ async function searchRoot(root, patterns, maxDepth) {
230
+ if (!existsSync(root) || patterns.length === 0)
120
231
  return [];
121
232
  if (IS_WIN) {
122
- const namePattern = filenames.map((f) => `'${f.replace(/'/g, "''")}'`).join(",");
123
- const script = `Get-ChildItem -Path '${root.replace(/'/g, "''")}' -Recurse -File ` +
233
+ const script = `$pats=@(${psPatternArray(patterns)}); ` +
234
+ `Get-ChildItem -Path '${root.replace(/'/g, "''")}' -Recurse -File ` +
124
235
  `-Depth ${maxDepth} -ErrorAction SilentlyContinue ` +
125
- `| Where-Object { @(${namePattern}) -contains $_.Name } ` +
126
- `| Select-Object -First 20 -ExpandProperty FullName`;
236
+ `| Where-Object { $n=$_.Name; @($pats | Where-Object { $n -like $_ }).Count -gt 0 } ` +
237
+ `| Select-Object -First ${MAX_HITS} -ExpandProperty FullName`;
127
238
  return parseLines(await runCapture("powershell.exe", ["-NoProfile", "-Command", script], 8_000));
128
239
  }
129
- const nameExpr = buildFindNameExpr(filenames);
240
+ const nameExpr = buildFindNameExpr(patterns);
130
241
  return parseLines(await runCapture("find", [root, "-maxdepth", String(maxDepth), "-type", "f", "(", ...nameExpr, ")"], 8_000));
131
242
  }
132
- // Query the locate/mlocate DB — fast, no root needed. POSIX only.
133
- async function searchLocate(filenames) {
243
+ // Query the locate/mlocate DB — fast, no root needed. POSIX only. Matches on
244
+ // keywords/names as substrings, then keeps only wordlist-ish files.
245
+ async function searchLocate(plan) {
134
246
  if (IS_WIN)
135
247
  return [];
248
+ const terms = dedupe([...plan.names, ...plan.keywords]);
136
249
  const hits = [];
137
- for (const f of filenames) {
138
- hits.push(...parseLines(await runCapture("locate", ["-i", "-l", "20", f], 5_000)));
139
- if (hits.length > 0)
250
+ for (const term of terms) {
251
+ const lines = parseLines(await runCapture("locate", ["-i", "-l", String(MAX_HITS), term], 5_000));
252
+ for (const line of lines) {
253
+ if (WL_FILE_RE.test(line) || plan.names.some((n) => line.toLowerCase().endsWith(n.toLowerCase()))) {
254
+ hits.push(line);
255
+ }
256
+ }
257
+ if (hits.length >= MAX_HITS)
140
258
  break;
141
259
  }
142
260
  return hits;
143
261
  }
144
- // Full filesystem search. POSIX: find /, Windows: all drive letters.
145
- async function searchFullFilesystem(filenames) {
262
+ // Full filesystem search. POSIX: find /, Windows: all drive letters. Uses only
263
+ // precise names + extension-restricted globs to keep the result set relevant.
264
+ async function searchFullFilesystem(patterns) {
265
+ if (patterns.length === 0)
266
+ return [];
146
267
  if (IS_WIN) {
147
- const namePattern = filenames.map((f) => `'${f.replace(/'/g, "''")}'`).join(",");
148
268
  const drives = parseLines((await runCapture("powershell.exe", ["-NoProfile", "-Command", "(Get-PSDrive -PSProvider FileSystem).Root -join ','"], 3_000)).replace(/,/g, "\n"));
149
269
  if (drives.length === 0)
150
270
  return [];
151
271
  const paths = drives.map((d) => `'${d.replace(/'/g, "''")}'`).join(",");
152
- const script = `Get-ChildItem -Path ${paths} -Recurse -File ` +
272
+ const script = `$pats=@(${psPatternArray(patterns)}); ` +
273
+ `Get-ChildItem -Path ${paths} -Recurse -File ` +
153
274
  `-Depth 6 -ErrorAction SilentlyContinue ` +
154
- `| Where-Object { @(${namePattern}) -contains $_.Name } ` +
155
- `| Select-Object -First 20 -ExpandProperty FullName`;
275
+ `| Where-Object { $n=$_.Name; @($pats | Where-Object { $n -like $_ }).Count -gt 0 } ` +
276
+ `| Select-Object -First ${MAX_HITS} -ExpandProperty FullName`;
156
277
  return parseLines(await runCapture("powershell.exe", ["-NoProfile", "-Command", script], 15_000));
157
278
  }
158
- const nameExpr = buildFindNameExpr(filenames);
279
+ const nameExpr = buildFindNameExpr(patterns);
159
280
  return parseLines(await runCapture("find", ["/", "-maxdepth", "8", "-type", "f", "(", ...nameExpr, ")"], 15_000));
160
281
  }
161
282
  /**
@@ -166,27 +287,36 @@ async function searchFullFilesystem(filenames) {
166
287
  * terminal, corrupting the TUI, freezing the keyboard, and never routing
167
288
  * through clai's secure modal. POSIX only.
168
289
  */
169
- async function searchSudo(filenames) {
170
- if (IS_WIN)
290
+ async function searchSudo(patterns) {
291
+ if (IS_WIN || patterns.length === 0)
171
292
  return [];
172
- const nameExpr = buildFindNameExpr(filenames);
293
+ const nameExpr = buildFindNameExpr(patterns);
173
294
  const findArgs = ["/", "-maxdepth", "8", "-type", "f", "(", ...nameExpr, ")"];
174
295
  return parseLines(await runCapture("sudo", ["-n", "find", ...findArgs], 15_000));
175
296
  }
176
297
  // --- Result builder ---
177
298
  function found(hits, source) {
178
- return { ok: true, output: `${source}:\n${hits.join("\n")}`, exitCode: 0 };
299
+ const uniq = dedupe(hits).slice(0, MAX_HITS);
300
+ const label = `${source} (${uniq.length} match${uniq.length === 1 ? "" : "es"})`;
301
+ return { ok: true, output: `${label}:\n${uniq.join("\n")}`, exitCode: 0 };
179
302
  }
180
303
  export async function wordlistFind(args) {
181
304
  const query = args.query?.trim();
182
305
  if (!query) {
183
- return { ok: false, output: "wordlist.find requires a query, e.g. \"common.txt\" or \"rockyou\".", exitCode: 1 };
306
+ return {
307
+ ok: false,
308
+ output: 'wordlist.find requires a query, e.g. "common.txt", "rockyou", or "medium directory list".',
309
+ exitCode: 1,
310
+ };
184
311
  }
185
- const filenames = candidateFilenames(query);
312
+ const plan = buildSearchPlan(query);
313
+ const precisePatterns = dedupe([...plan.names, ...plan.globs]);
314
+ // Inside wordlist-dedicated roots we can afford broad substring globs too.
315
+ const rootPatterns = dedupe([...plan.names, ...plan.globs, ...plan.broad]);
186
316
  const roots = knownRoots();
187
- // Pass 1: well-known install locations (shallow, fast).
317
+ // Pass 1: well-known install locations (shallow, fast, broad matching ok).
188
318
  for (const root of roots) {
189
- const hits = await searchRoot(root, filenames, 6);
319
+ const hits = await searchRoot(root, rootPatterns, 6);
190
320
  if (hits.length > 0)
191
321
  return found(hits, "Found in a known wordlist location");
192
322
  }
@@ -194,12 +324,13 @@ export async function wordlistFind(args) {
194
324
  return {
195
325
  ok: false,
196
326
  output: `No match for "${query}" in known wordlist locations for ${platform()}.\n` +
327
+ `Tried keywords: ${plan.keywords.join(", ") || query}.\n` +
197
328
  `Checked: ${roots.join(", ")}\n` +
198
329
  `Retry with expand=true to broaden the search, or pkg.install seclists.`,
199
330
  exitCode: 1,
200
331
  };
201
332
  }
202
- // Pass 2: broader user directories.
333
+ // Pass 2: broader user directories (precise + extension globs only).
203
334
  const home = getHome();
204
335
  const broaderRoots = [
205
336
  join(home, "Downloads"), join(home, "Desktop"),
@@ -207,28 +338,30 @@ export async function wordlistFind(args) {
207
338
  join(home, "tools"), join(home, "Tools"),
208
339
  join(home, "github"), join(home, "repos"),
209
340
  join(home, "pentesting"), join(home, "pentest"),
341
+ join(home, "src"), join(home, "code"),
210
342
  "/opt",
211
343
  ].filter((r) => !roots.includes(r));
212
344
  for (const root of broaderRoots) {
213
- const hits = await searchRoot(root, filenames, 4);
345
+ const hits = await searchRoot(root, precisePatterns, 5);
214
346
  if (hits.length > 0)
215
347
  return found(hits, "Found in user directory");
216
348
  }
217
349
  // Pass 3: locate database (fast indexed search, POSIX only).
218
- const locateHits = await searchLocate(filenames);
350
+ const locateHits = await searchLocate(plan);
219
351
  if (locateHits.length > 0)
220
352
  return found(locateHits, "Found via locate database");
221
353
  // Pass 4: full filesystem search (find / or all Windows drives).
222
- const fsHits = await searchFullFilesystem(filenames);
354
+ const fsHits = await searchFullFilesystem(precisePatterns);
223
355
  if (fsHits.length > 0)
224
356
  return found(fsHits, "Found via full filesystem search");
225
357
  // Pass 5: cached-credential sudo search (POSIX only, never prompts).
226
- const sudoHits = await searchSudo(filenames);
358
+ const sudoHits = await searchSudo(precisePatterns);
227
359
  if (sudoHits.length > 0)
228
360
  return found(sudoHits, "Found via elevated filesystem search");
229
361
  return {
230
362
  ok: false,
231
- output: `No wordlist matching "${query}" found after searching the entire filesystem.\n` +
363
+ output: `No wordlist matching "${query}" found after searching known locations, ` +
364
+ `the locate database, and the filesystem (keywords: ${plan.keywords.join(", ") || query}).\n` +
232
365
  `Install one: pkg.install seclists (Linux/macOS) or clone https://github.com/danielmiessler/SecLists.\n` +
233
366
  `If credentials are not cached, an elevated search was skipped (clai never opens a raw sudo prompt).`,
234
367
  exitCode: 1,
@@ -1 +1 @@
1
- {"version":3,"file":"wordlists.js","sourceRoot":"","sources":["../../src/tools/wordlists.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wordlists.js","sourceRoot":"","sources":["../../src/tools/wordlists.ts"],"names":[],"mappings":"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"}
@@ -2,5 +2,5 @@
2
2
  * AUTO-GENERATED by scripts/sync-version.mjs — do not edit by hand.
3
3
  * Source of truth: package.json "version".
4
4
  */
5
- export declare const VERSION: "3.8.47";
6
- export declare const VERSION_TAG: "v3.8.47";
5
+ export declare const VERSION: "3.8.48";
6
+ export declare const VERSION_TAG: "v3.8.48";
@@ -2,6 +2,6 @@
2
2
  * AUTO-GENERATED by scripts/sync-version.mjs — do not edit by hand.
3
3
  * Source of truth: package.json "version".
4
4
  */
5
- export const VERSION = "3.8.47";
6
- export const VERSION_TAG = "v3.8.47";
5
+ export const VERSION = "3.8.48";
6
+ export const VERSION_TAG = "v3.8.48";
7
7
  //# sourceMappingURL=version.generated.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pentoshi/clai",
3
- "version": "3.8.47",
3
+ "version": "3.8.48",
4
4
  "description": "A fast, cross-platform AI CLI assistant with ask and agent modes for shell tasks, file operations, and cybersecurity workflows.",
5
5
  "type": "module",
6
6
  "license": "MIT",