@pentoshi/clai 3.8.46 → 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.
- package/dist/agent/compaction-summary.js +1 -1
- package/dist/agent/compaction-summary.js.map +1 -1
- package/dist/agent/plan-tool.js +110 -14
- package/dist/agent/plan-tool.js.map +1 -1
- package/dist/agent/reliability-policy.d.ts +4 -3
- package/dist/agent/reliability-policy.js +4 -3
- package/dist/agent/reliability-policy.js.map +1 -1
- package/dist/agent/responder-context.d.ts +10 -0
- package/dist/agent/responder-context.js +50 -0
- package/dist/agent/responder-context.js.map +1 -0
- package/dist/agent/runner.js +160 -12
- package/dist/agent/runner.js.map +1 -1
- package/dist/agent/task-plan.d.ts +4 -0
- package/dist/agent/task-plan.js.map +1 -1
- package/dist/app/adapters/current-jobs-adapter.js +7 -0
- package/dist/app/adapters/current-jobs-adapter.js.map +1 -1
- package/dist/app/controllers/job-controller.d.ts +9 -6
- package/dist/app/controllers/job-controller.js +21 -0
- package/dist/app/controllers/job-controller.js.map +1 -1
- package/dist/app/controllers/session-controller.d.ts +14 -33
- package/dist/app/controllers/session-controller.js +71 -132
- package/dist/app/controllers/session-controller.js.map +1 -1
- package/dist/app/controllers/session-prompt-queue.d.ts +34 -0
- package/dist/app/controllers/session-prompt-queue.js +141 -0
- package/dist/app/controllers/session-prompt-queue.js.map +1 -0
- package/dist/app/controllers/session-responder.d.ts +49 -0
- package/dist/app/controllers/session-responder.js +311 -0
- package/dist/app/controllers/session-responder.js.map +1 -0
- package/dist/app/ports/jobs-port.d.ts +10 -7
- package/dist/prompts/embedded.js +1 -1
- package/dist/prompts/embedded.js.map +1 -1
- package/dist/prompts/system.agent.md +14 -9
- package/dist/repl.js +24 -14
- package/dist/repl.js.map +1 -1
- package/dist/safety/engagement-policy.js +39 -7
- package/dist/safety/engagement-policy.js.map +1 -1
- package/dist/store/config.js +1 -1
- package/dist/store/config.js.map +1 -1
- package/dist/store/plan.d.ts +11 -0
- package/dist/store/plan.js +66 -3
- package/dist/store/plan.js.map +1 -1
- package/dist/tools/definitions.js +35 -4
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/jobs.d.ts +72 -3
- package/dist/tools/jobs.js +743 -121
- package/dist/tools/jobs.js.map +1 -1
- package/dist/tools/pentest-workflows.js +80 -4
- package/dist/tools/pentest-workflows.js.map +1 -1
- package/dist/tools/registry.js +60 -19
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/tool-types.d.ts +5 -0
- package/dist/tools/wordlists.js +228 -108
- package/dist/tools/wordlists.js.map +1 -1
- package/dist/tui-v2/actions/action-id.js +1 -1
- package/dist/tui-v2/actions/action-id.js.map +1 -1
- package/dist/tui-v2/actions/keymap.js +1 -1
- package/dist/tui-v2/actions/keymap.js.map +1 -1
- package/dist/tui-v2/app/App.js +82 -12
- package/dist/tui-v2/app/App.js.map +1 -1
- package/dist/tui-v2/app/commands/session-commands.js +0 -5
- package/dist/tui-v2/app/commands/session-commands.js.map +1 -1
- package/dist/tui-v2/bootstrap/composition-root.js +2 -0
- package/dist/tui-v2/bootstrap/composition-root.js.map +1 -1
- package/dist/tui-v2/components/jobs/jobs-panel.d.ts +12 -0
- package/dist/tui-v2/components/jobs/jobs-panel.js +184 -14
- package/dist/tui-v2/components/jobs/jobs-panel.js.map +1 -1
- package/dist/tui-v2/components/plan/plan-view.js +7 -3
- package/dist/tui-v2/components/plan/plan-view.js.map +1 -1
- package/dist/tui-v2/components/status/status-line.js +2 -3
- package/dist/tui-v2/components/status/status-line.js.map +1 -1
- package/dist/tui-v2/components/toast/toast-host.js +16 -1
- package/dist/tui-v2/components/toast/toast-host.js.map +1 -1
- package/dist/tui-v2/components/transcript/tool-card.d.ts +3 -0
- package/dist/tui-v2/components/transcript/tool-card.js +12 -2
- package/dist/tui-v2/components/transcript/tool-card.js.map +1 -1
- package/dist/tui-v2/components/transcript/transcript-row.js +1 -1
- package/dist/tui-v2/components/transcript/transcript-row.js.map +1 -1
- package/dist/tui-v2/composer/composer-editor.d.ts +6 -0
- package/dist/tui-v2/composer/composer-editor.js +10 -17
- package/dist/tui-v2/composer/composer-editor.js.map +1 -1
- package/dist/tui-v2/composer/composer-image-paste.d.ts +1 -0
- package/dist/tui-v2/composer/composer-image-paste.js +22 -1
- package/dist/tui-v2/composer/composer-image-paste.js.map +1 -1
- package/dist/tui-v2/state/transcript-store.d.ts +4 -0
- package/dist/tui-v2/state/transcript-store.js +13 -0
- package/dist/tui-v2/state/transcript-store.js.map +1 -1
- package/dist/ui/intro-card.js +3 -3
- package/dist/ui/intro-card.js.map +1 -1
- package/dist/ui/mentions.d.ts +11 -13
- package/dist/ui/mentions.js +67 -26
- package/dist/ui/mentions.js.map +1 -1
- package/dist/ui/plan-pane.js +6 -2
- package/dist/ui/plan-pane.js.map +1 -1
- package/dist/version.generated.d.ts +2 -2
- package/dist/version.generated.js +2 -2
- package/package.json +1 -1
package/dist/tools/wordlists.js
CHANGED
|
@@ -1,17 +1,59 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Locate wordlist files for fuzzing tools.
|
|
3
|
-
*
|
|
4
|
-
*
|
|
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.
|
|
17
|
+
*
|
|
18
|
+
* All external searches run through async execFile (never execFileSync) so a
|
|
19
|
+
* slow `find /` can never block the render loop, and sudo is only ever invoked
|
|
20
|
+
* with `-n` (cached credentials) — it must NEVER inherit the TTY to prompt for
|
|
21
|
+
* a password, which corrupts the OpenTUI screen and steals the keyboard.
|
|
5
22
|
*/
|
|
6
|
-
import {
|
|
23
|
+
import { execFile } from "node:child_process";
|
|
24
|
+
import { promisify } from "node:util";
|
|
7
25
|
import { existsSync } from "node:fs";
|
|
8
26
|
import { homedir, platform } from "node:os";
|
|
9
27
|
import { join } from "node:path";
|
|
28
|
+
const execFileAsync = promisify(execFile);
|
|
10
29
|
const IS_WIN = platform() === "win32";
|
|
11
30
|
const IS_MAC = platform() === "darwin";
|
|
12
31
|
function getHome() {
|
|
13
32
|
return process.env.HOME || process.env.USERPROFILE || homedir();
|
|
14
33
|
}
|
|
34
|
+
/** Cap on how many hits we surface — enough to choose from, not a flood. */
|
|
35
|
+
const MAX_HITS = 60;
|
|
36
|
+
/**
|
|
37
|
+
* Run a capture command without inheriting any std stream. Returns stdout on
|
|
38
|
+
* success; on non-zero exit (e.g. `find` hitting permission-denied dirs) we
|
|
39
|
+
* still recover whatever stdout was produced. Never throws.
|
|
40
|
+
*/
|
|
41
|
+
async function runCapture(command, argv, timeoutMs) {
|
|
42
|
+
try {
|
|
43
|
+
const { stdout } = await execFileAsync(command, argv, {
|
|
44
|
+
timeout: timeoutMs,
|
|
45
|
+
encoding: "utf8",
|
|
46
|
+
maxBuffer: 8 * 1024 * 1024,
|
|
47
|
+
killSignal: "SIGKILL",
|
|
48
|
+
windowsHide: true,
|
|
49
|
+
});
|
|
50
|
+
return stdout ?? "";
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
const stdout = error?.stdout;
|
|
54
|
+
return typeof stdout === "string" ? stdout : "";
|
|
55
|
+
}
|
|
56
|
+
}
|
|
15
57
|
// --- Known roots per OS ---
|
|
16
58
|
function knownRoots() {
|
|
17
59
|
const home = getHome();
|
|
@@ -42,6 +84,7 @@ function knownRoots() {
|
|
|
42
84
|
...common,
|
|
43
85
|
"/opt/homebrew/share/seclists",
|
|
44
86
|
"/opt/homebrew/share/wordlists",
|
|
87
|
+
"/opt/homebrew/share/nmap/nselib/data",
|
|
45
88
|
"/usr/local/share/seclists",
|
|
46
89
|
"/usr/local/share/wordlists",
|
|
47
90
|
"/opt/local/share/seclists",
|
|
@@ -64,142 +107,216 @@ function knownRoots() {
|
|
|
64
107
|
];
|
|
65
108
|
}
|
|
66
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.
|
|
67
112
|
const NAME_ALIASES = {
|
|
68
|
-
common: ["common.txt"
|
|
113
|
+
common: ["common.txt"],
|
|
69
114
|
"common.txt": ["common.txt"],
|
|
70
115
|
big: ["big.txt"],
|
|
71
116
|
medium: ["directory-list-2.3-medium.txt"],
|
|
117
|
+
"directory-medium": ["directory-list-2.3-medium.txt"],
|
|
72
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"],
|
|
73
121
|
rockyou: ["rockyou.txt", "rockyou.txt.gz"],
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
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"],
|
|
77
154
|
};
|
|
78
|
-
|
|
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) {
|
|
79
177
|
const lower = query.toLowerCase().trim();
|
|
80
|
-
|
|
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
|
+
};
|
|
81
211
|
}
|
|
82
212
|
// --- Search helpers ---
|
|
83
213
|
function parseLines(raw) {
|
|
84
214
|
return raw.split(/\r?\n/).map((l) => l.trim()).filter(Boolean);
|
|
85
215
|
}
|
|
86
|
-
function
|
|
87
|
-
return
|
|
216
|
+
function dedupe(items) {
|
|
217
|
+
return [...new Set(items.filter(Boolean))];
|
|
88
218
|
}
|
|
89
|
-
//
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
timeout: 8_000, encoding: "utf8", stdio: ["ignore", "pipe", "ignore"],
|
|
102
|
-
});
|
|
103
|
-
return parseLines(out);
|
|
104
|
-
}
|
|
105
|
-
const nameExpr = buildFindNameExpr(filenames);
|
|
106
|
-
const out = execFileSync("find", [root, "-maxdepth", String(maxDepth), "-type", "f", "(", ...nameExpr, ")"], { timeout: 8_000, encoding: "utf8", stdio: ["ignore", "pipe", "ignore"] });
|
|
107
|
-
return parseLines(out);
|
|
108
|
-
}
|
|
109
|
-
catch {
|
|
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(",");
|
|
227
|
+
}
|
|
228
|
+
// Quiet directory search: capped depth, timeout, stderr never inherited.
|
|
229
|
+
async function searchRoot(root, patterns, maxDepth) {
|
|
230
|
+
if (!existsSync(root) || patterns.length === 0)
|
|
110
231
|
return [];
|
|
232
|
+
if (IS_WIN) {
|
|
233
|
+
const script = `$pats=@(${psPatternArray(patterns)}); ` +
|
|
234
|
+
`Get-ChildItem -Path '${root.replace(/'/g, "''")}' -Recurse -File ` +
|
|
235
|
+
`-Depth ${maxDepth} -ErrorAction SilentlyContinue ` +
|
|
236
|
+
`| Where-Object { $n=$_.Name; @($pats | Where-Object { $n -like $_ }).Count -gt 0 } ` +
|
|
237
|
+
`| Select-Object -First ${MAX_HITS} -ExpandProperty FullName`;
|
|
238
|
+
return parseLines(await runCapture("powershell.exe", ["-NoProfile", "-Command", script], 8_000));
|
|
111
239
|
}
|
|
240
|
+
const nameExpr = buildFindNameExpr(patterns);
|
|
241
|
+
return parseLines(await runCapture("find", [root, "-maxdepth", String(maxDepth), "-type", "f", "(", ...nameExpr, ")"], 8_000));
|
|
112
242
|
}
|
|
113
|
-
// Query the locate/mlocate DB — fast, no root needed. POSIX only.
|
|
114
|
-
|
|
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) {
|
|
115
246
|
if (IS_WIN)
|
|
116
247
|
return [];
|
|
248
|
+
const terms = dedupe([...plan.names, ...plan.keywords]);
|
|
117
249
|
const hits = [];
|
|
118
|
-
for (const
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
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
|
+
}
|
|
124
256
|
}
|
|
125
|
-
|
|
126
|
-
// locate not installed or DB not built — skip silently.
|
|
127
|
-
}
|
|
128
|
-
if (hits.length > 0)
|
|
257
|
+
if (hits.length >= MAX_HITS)
|
|
129
258
|
break;
|
|
130
259
|
}
|
|
131
260
|
return hits;
|
|
132
261
|
}
|
|
133
|
-
// Full filesystem search. POSIX: find /, Windows: all drive letters.
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
const namePattern = filenames.map((f) => `'${f.replace(/'/g, "''")}'`).join(",");
|
|
138
|
-
// Discover available drive letters
|
|
139
|
-
const drivesRaw = execFileSync("powershell.exe", ["-NoProfile", "-Command", "(Get-PSDrive -PSProvider FileSystem).Root -join ','"], { timeout: 3_000, encoding: "utf8", stdio: ["ignore", "pipe", "ignore"] });
|
|
140
|
-
const drives = parseLines(drivesRaw.replace(/,/g, "\n"));
|
|
141
|
-
if (drives.length === 0)
|
|
142
|
-
return [];
|
|
143
|
-
const paths = drives.map((d) => `'${d.replace(/'/g, "''")}'`).join(",");
|
|
144
|
-
const script = `Get-ChildItem -Path ${paths} -Recurse -File ` +
|
|
145
|
-
`-Depth 6 -ErrorAction SilentlyContinue ` +
|
|
146
|
-
`| Where-Object { @(${namePattern}) -contains $_.Name } ` +
|
|
147
|
-
`| Select-Object -First 20 -ExpandProperty FullName`;
|
|
148
|
-
const out = execFileSync("powershell.exe", ["-NoProfile", "-Command", script], {
|
|
149
|
-
timeout: 15_000, encoding: "utf8", stdio: ["ignore", "pipe", "ignore"],
|
|
150
|
-
});
|
|
151
|
-
return parseLines(out);
|
|
152
|
-
}
|
|
153
|
-
const nameExpr = buildFindNameExpr(filenames);
|
|
154
|
-
const out = execFileSync("find", ["/", "-maxdepth", "8", "-type", "f", "(", ...nameExpr, ")"], { timeout: 15_000, encoding: "utf8", stdio: ["ignore", "pipe", "ignore"] });
|
|
155
|
-
return parseLines(out);
|
|
156
|
-
}
|
|
157
|
-
catch {
|
|
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)
|
|
158
266
|
return [];
|
|
267
|
+
if (IS_WIN) {
|
|
268
|
+
const drives = parseLines((await runCapture("powershell.exe", ["-NoProfile", "-Command", "(Get-PSDrive -PSProvider FileSystem).Root -join ','"], 3_000)).replace(/,/g, "\n"));
|
|
269
|
+
if (drives.length === 0)
|
|
270
|
+
return [];
|
|
271
|
+
const paths = drives.map((d) => `'${d.replace(/'/g, "''")}'`).join(",");
|
|
272
|
+
const script = `$pats=@(${psPatternArray(patterns)}); ` +
|
|
273
|
+
`Get-ChildItem -Path ${paths} -Recurse -File ` +
|
|
274
|
+
`-Depth 6 -ErrorAction SilentlyContinue ` +
|
|
275
|
+
`| Where-Object { $n=$_.Name; @($pats | Where-Object { $n -like $_ }).Count -gt 0 } ` +
|
|
276
|
+
`| Select-Object -First ${MAX_HITS} -ExpandProperty FullName`;
|
|
277
|
+
return parseLines(await runCapture("powershell.exe", ["-NoProfile", "-Command", script], 15_000));
|
|
159
278
|
}
|
|
279
|
+
const nameExpr = buildFindNameExpr(patterns);
|
|
280
|
+
return parseLines(await runCapture("find", ["/", "-maxdepth", "8", "-type", "f", "(", ...nameExpr, ")"], 15_000));
|
|
160
281
|
}
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
282
|
+
/**
|
|
283
|
+
* Cached-credential sudo search only. We try `sudo -n find /` which succeeds
|
|
284
|
+
* silently when a sudo timestamp is already valid and fails instantly (no
|
|
285
|
+
* prompt) otherwise. We deliberately do NOT fall back to an interactive
|
|
286
|
+
* `sudo find`: inheriting the TTY makes sudo print "Password:" straight to the
|
|
287
|
+
* terminal, corrupting the TUI, freezing the keyboard, and never routing
|
|
288
|
+
* through clai's secure modal. POSIX only.
|
|
289
|
+
*/
|
|
290
|
+
async function searchSudo(patterns) {
|
|
291
|
+
if (IS_WIN || patterns.length === 0)
|
|
165
292
|
return [];
|
|
166
|
-
const nameExpr = buildFindNameExpr(
|
|
293
|
+
const nameExpr = buildFindNameExpr(patterns);
|
|
167
294
|
const findArgs = ["/", "-maxdepth", "8", "-type", "f", "(", ...nameExpr, ")"];
|
|
168
|
-
|
|
169
|
-
try {
|
|
170
|
-
const out = execFileSync("sudo", ["-n", "find", ...findArgs], {
|
|
171
|
-
timeout: 15_000, encoding: "utf8", stdio: ["ignore", "pipe", "ignore"],
|
|
172
|
-
});
|
|
173
|
-
const hits = parseLines(out);
|
|
174
|
-
if (hits.length > 0)
|
|
175
|
-
return hits;
|
|
176
|
-
}
|
|
177
|
-
catch { /* creds not cached — fall through to interactive */ }
|
|
178
|
-
// Interactive sudo: inherit stdin so the terminal can prompt for password.
|
|
179
|
-
try {
|
|
180
|
-
const out = execFileSync("sudo", ["find", ...findArgs], {
|
|
181
|
-
timeout: 30_000, encoding: "utf8", stdio: ["inherit", "pipe", "ignore"],
|
|
182
|
-
});
|
|
183
|
-
return parseLines(out);
|
|
184
|
-
}
|
|
185
|
-
catch {
|
|
186
|
-
return [];
|
|
187
|
-
}
|
|
295
|
+
return parseLines(await runCapture("sudo", ["-n", "find", ...findArgs], 15_000));
|
|
188
296
|
}
|
|
189
297
|
// --- Result builder ---
|
|
190
298
|
function found(hits, source) {
|
|
191
|
-
|
|
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 };
|
|
192
302
|
}
|
|
193
303
|
export async function wordlistFind(args) {
|
|
194
304
|
const query = args.query?.trim();
|
|
195
305
|
if (!query) {
|
|
196
|
-
return {
|
|
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
|
+
};
|
|
197
311
|
}
|
|
198
|
-
const
|
|
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]);
|
|
199
316
|
const roots = knownRoots();
|
|
200
|
-
// Pass 1: well-known install locations (shallow, fast).
|
|
317
|
+
// Pass 1: well-known install locations (shallow, fast, broad matching ok).
|
|
201
318
|
for (const root of roots) {
|
|
202
|
-
const hits = searchRoot(root,
|
|
319
|
+
const hits = await searchRoot(root, rootPatterns, 6);
|
|
203
320
|
if (hits.length > 0)
|
|
204
321
|
return found(hits, "Found in a known wordlist location");
|
|
205
322
|
}
|
|
@@ -207,12 +324,13 @@ export async function wordlistFind(args) {
|
|
|
207
324
|
return {
|
|
208
325
|
ok: false,
|
|
209
326
|
output: `No match for "${query}" in known wordlist locations for ${platform()}.\n` +
|
|
327
|
+
`Tried keywords: ${plan.keywords.join(", ") || query}.\n` +
|
|
210
328
|
`Checked: ${roots.join(", ")}\n` +
|
|
211
329
|
`Retry with expand=true to broaden the search, or pkg.install seclists.`,
|
|
212
330
|
exitCode: 1,
|
|
213
331
|
};
|
|
214
332
|
}
|
|
215
|
-
// Pass 2: broader user directories.
|
|
333
|
+
// Pass 2: broader user directories (precise + extension globs only).
|
|
216
334
|
const home = getHome();
|
|
217
335
|
const broaderRoots = [
|
|
218
336
|
join(home, "Downloads"), join(home, "Desktop"),
|
|
@@ -220,30 +338,32 @@ export async function wordlistFind(args) {
|
|
|
220
338
|
join(home, "tools"), join(home, "Tools"),
|
|
221
339
|
join(home, "github"), join(home, "repos"),
|
|
222
340
|
join(home, "pentesting"), join(home, "pentest"),
|
|
341
|
+
join(home, "src"), join(home, "code"),
|
|
223
342
|
"/opt",
|
|
224
343
|
].filter((r) => !roots.includes(r));
|
|
225
344
|
for (const root of broaderRoots) {
|
|
226
|
-
const hits = searchRoot(root,
|
|
345
|
+
const hits = await searchRoot(root, precisePatterns, 5);
|
|
227
346
|
if (hits.length > 0)
|
|
228
347
|
return found(hits, "Found in user directory");
|
|
229
348
|
}
|
|
230
349
|
// Pass 3: locate database (fast indexed search, POSIX only).
|
|
231
|
-
const locateHits = searchLocate(
|
|
350
|
+
const locateHits = await searchLocate(plan);
|
|
232
351
|
if (locateHits.length > 0)
|
|
233
352
|
return found(locateHits, "Found via locate database");
|
|
234
353
|
// Pass 4: full filesystem search (find / or all Windows drives).
|
|
235
|
-
const fsHits = searchFullFilesystem(
|
|
354
|
+
const fsHits = await searchFullFilesystem(precisePatterns);
|
|
236
355
|
if (fsHits.length > 0)
|
|
237
356
|
return found(fsHits, "Found via full filesystem search");
|
|
238
|
-
// Pass 5:
|
|
239
|
-
const sudoHits = searchSudo(
|
|
357
|
+
// Pass 5: cached-credential sudo search (POSIX only, never prompts).
|
|
358
|
+
const sudoHits = await searchSudo(precisePatterns);
|
|
240
359
|
if (sudoHits.length > 0)
|
|
241
360
|
return found(sudoHits, "Found via elevated filesystem search");
|
|
242
361
|
return {
|
|
243
362
|
ok: false,
|
|
244
|
-
output: `No wordlist matching "${query}" found after searching
|
|
363
|
+
output: `No wordlist matching "${query}" found after searching known locations, ` +
|
|
364
|
+
`the locate database, and the filesystem (keywords: ${plan.keywords.join(", ") || query}).\n` +
|
|
245
365
|
`Install one: pkg.install seclists (Linux/macOS) or clone https://github.com/danielmiessler/SecLists.\n` +
|
|
246
|
-
`If
|
|
366
|
+
`If credentials are not cached, an elevated search was skipped (clai never opens a raw sudo prompt).`,
|
|
247
367
|
exitCode: 1,
|
|
248
368
|
};
|
|
249
369
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wordlists.js","sourceRoot":"","sources":["../../src/tools/wordlists.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,MAAM,MAAM,GAAG,QAAQ,EAAE,KAAK,OAAO,CAAC;AACtC,MAAM,MAAM,GAAG,QAAQ,EAAE,KAAK,QAAQ,CAAC;AACvC,SAAS,OAAO;IACd,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,EAAE,CAAC;AAClE,CAAC;AAED,6BAA6B;AAE7B,SAAS,UAAU;IACjB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG;QACb,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;QACtB,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;QACtB,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC;QACxB,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC;QACnC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;QACtB,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;QACpB,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;QACnB,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC;QACxB,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC;KACtB,CAAC;IACF,IAAI,MAAM,EAAE,CAAC;QACX,OAAO;YACL,GAAG,MAAM;YACT,cAAc;YACd,qBAAqB;YACrB,sBAAsB;YACtB,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC;SAChC,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO;YACL,GAAG,MAAM;YACT,8BAA8B;YAC9B,+BAA+B;YAC/B,2BAA2B;YAC3B,4BAA4B;YAC5B,2BAA2B;YAC3B,4BAA4B;YAC5B,sBAAsB;YACtB,qBAAqB;SACtB,CAAC;IACJ,CAAC;IACD,OAAO;QACL,GAAG,MAAM;QACT,sBAAsB;QACtB,qBAAqB;QACrB,2BAA2B;QAC3B,gCAAgC;QAChC,2BAA2B;QAC3B,eAAe;QACf,gBAAgB;QAChB,gBAAgB;QAChB,UAAU;KACX,CAAC;AACJ,CAAC;AAED,kBAAkB;AAElB,MAAM,YAAY,GAA6B;IAC7C,MAAM,EAAE,CAAC,YAAY,EAAE,eAAe,CAAC;IACvC,YAAY,EAAE,CAAC,YAAY,CAAC;IAC5B,GAAG,EAAE,CAAC,SAAS,CAAC;IAChB,MAAM,EAAE,CAAC,+BAA+B,CAAC;IACzC,KAAK,EAAE,CAAC,8BAA8B,CAAC;IACvC,OAAO,EAAE,CAAC,aAAa,EAAE,gBAAgB,CAAC;IAC1C,UAAU,EAAE,CAAC,iCAAiC,EAAE,kCAAkC,CAAC;IACnF,YAAY,EAAE,CAAC,sBAAsB,EAAE,4BAA4B,CAAC;IACpE,aAAa,EAAE,CAAC,uBAAuB,EAAE,6BAA6B,CAAC;CACxE,CAAC;AAEF,SAAS,kBAAkB,CAAC,KAAa;IACvC,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IACzC,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC;AAED,yBAAyB;AAEzB,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,iBAAiB,CAAC,SAAmB;IAC5C,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,oEAAoE;AACpE,SAAS,UAAU,CAAC,IAAY,EAAE,SAAmB,EAAE,QAAgB;IACrE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,IAAI,CAAC;QACH,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjF,MAAM,MAAM,GACV,wBAAwB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB;gBACnE,UAAU,QAAQ,iCAAiC;gBACnD,sBAAsB,WAAW,wBAAwB;gBACzD,oDAAoD,CAAC;YACvD,MAAM,GAAG,GAAG,YAAY,CAAC,gBAAgB,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE;gBAC7E,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;aACtE,CAAC,CAAC;YACH,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QACD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,YAAY,CACtB,MAAM,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,CAAC,EAClF,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAC1E,CAAC;QACF,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,kEAAkE;AAClE,SAAS,YAAY,CAAC,SAAmB;IACvC,IAAI,MAAM;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;gBACxD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;aACtE,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,wDAAwD;QAC1D,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM;IAC7B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,qEAAqE;AACrE,SAAS,oBAAoB,CAAC,SAAmB;IAC/C,IAAI,CAAC;QACH,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjF,mCAAmC;YACnC,MAAM,SAAS,GAAG,YAAY,CAC5B,gBAAgB,EAChB,CAAC,YAAY,EAAE,UAAU,EAAE,qDAAqD,CAAC,EACjF,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAC1E,CAAC;YACF,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACzD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxE,MAAM,MAAM,GACV,uBAAuB,KAAK,kBAAkB;gBAC9C,yCAAyC;gBACzC,sBAAsB,WAAW,wBAAwB;gBACzD,oDAAoD,CAAC;YACvD,MAAM,GAAG,GAAG,YAAY,CAAC,gBAAgB,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE;gBAC7E,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;aACvE,CAAC,CAAC;YACH,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QACD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,YAAY,CACtB,MAAM,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,CAAC,EACpE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAC3E,CAAC;QACF,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,yEAAyE;AACzE,+DAA+D;AAC/D,SAAS,UAAU,CAAC,SAAmB;IACrC,IAAI,MAAM;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC9E,iEAAiE;IACjE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,EAAE;YAC5D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACvE,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC,CAAC,oDAAoD,CAAC,CAAC;IAChE,2EAA2E;IAC3E,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,EAAE;YACtD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC;SACxE,CAAC,CAAC;QACH,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAGD,yBAAyB;AAEzB,SAAS,KAAK,CAAC,IAAc,EAAE,MAAc;IAC3C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;AAC7E,CAAC;AASD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAsB;IACvD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;IACjC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,qEAAqE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACnH,CAAC;IACD,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAE3B,wDAAwD;IACxD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAC5C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC,IAAI,EAAE,oCAAoC,CAAC,CAAC;IAChF,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QAC1B,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EACJ,iBAAiB,KAAK,qCAAqC,QAAQ,EAAE,KAAK;gBAC1E,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;gBAChC,wEAAwE;YAC1E,QAAQ,EAAE,CAAC;SACZ,CAAC;IACJ,CAAC;IAED,oCAAoC;IACpC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,YAAY,GAAG;QACnB,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC;QAC9C,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;QAC/C,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;QACzC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC;QAC/C,MAAM;KACP,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpC,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAC5C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAAC;IACrE,CAAC;IAED,6DAA6D;IAC7D,MAAM,UAAU,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IAC3C,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC,UAAU,EAAE,2BAA2B,CAAC,CAAC;IAEjF,iEAAiE;IACjE,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAC/C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC,MAAM,EAAE,kCAAkC,CAAC,CAAC;IAEhF,8DAA8D;IAC9D,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACvC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC,QAAQ,EAAE,sCAAsC,CAAC,CAAC;IAExF,OAAO;QACL,EAAE,EAAE,KAAK;QACT,MAAM,EACJ,yBAAyB,KAAK,kDAAkD;YAChF,wGAAwG;YACxG,yCAAyC;QAC3C,QAAQ,EAAE,CAAC;KACZ,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"wordlists.js","sourceRoot":"","sources":["../../src/tools/wordlists.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,7 @@ export const ACTION_CONTEXTS = [
|
|
|
21
21
|
export const ACTION_IDS = [
|
|
22
22
|
// global
|
|
23
23
|
"app.quit",
|
|
24
|
-
/** Esc
|
|
24
|
+
/** Esc arms/dismisses; a second press cancels turn, queue, and session jobs. */
|
|
25
25
|
"app.cancel",
|
|
26
26
|
/**
|
|
27
27
|
* Ctrl+C: first press aborts a running turn (or arms quit); second press
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-id.js","sourceRoot":"","sources":["../../../src/tui-v2/actions/action-id.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,QAAQ;IACR,YAAY;IACZ,UAAU;IACV,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,MAAM;IACN,mBAAmB;IACnB,OAAO;IACP,MAAM;CACE,CAAC;AAIX,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,SAAS;IACT,UAAU;IACV,
|
|
1
|
+
{"version":3,"file":"action-id.js","sourceRoot":"","sources":["../../../src/tui-v2/actions/action-id.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,QAAQ;IACR,YAAY;IACZ,UAAU;IACV,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,MAAM;IACN,mBAAmB;IACnB,OAAO;IACP,MAAM;CACE,CAAC;AAIX,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,SAAS;IACT,UAAU;IACV,gFAAgF;IAChF,YAAY;IACZ;;;OAGG;IACH,eAAe;IACf,UAAU;IACV,iBAAiB;IACjB,UAAU;IACV,gBAAgB;IAChB,mBAAmB;IACnB,gBAAgB;IAChB,kBAAkB;IAClB,oBAAoB;IACpB,eAAe;IACf,gBAAgB;IAChB,qBAAqB;IACrB,qBAAqB;IACrB,cAAc;IACd,yBAAyB;IACzB,sBAAsB;IACtB,wBAAwB;IACxB,oBAAoB;IACpB,sBAAsB;IACtB,gBAAgB;IAChB,mBAAmB;IACnB,mBAAmB;IACnB,0BAA0B;IAC1B,4BAA4B;IAC5B,0BAA0B;IAC1B,iBAAiB;IACjB,gBAAgB;IAChB,iBAAiB;IACjB,sBAAsB;IACtB,uBAAuB;IACvB,wBAAwB;IACxB,qBAAqB;IACrB,uBAAuB;IACvB,4BAA4B;IAC5B,6BAA6B;IAC7B,6BAA6B;IAC7B,2BAA2B;IAC3B,SAAS;IACT,WAAW;IACX,aAAa;IACb,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,QAAQ;IACR,eAAe;IACf,YAAY;IACZ,eAAe;IACf,OAAO;IACP,gBAAgB;IAChB,gBAAgB;IAChB,oBAAoB;IACpB,QAAQ;IACR,eAAe;IACf,iBAAiB;IACjB,eAAe;IACf,iBAAiB;IACjB,oBAAoB;IACpB,sBAAsB;IACtB,WAAW;IACX,cAAc;IACd,cAAc;IACd,kBAAkB;IAClB,kBAAkB;IAClB,yBAAyB;IACzB,qBAAqB;IACrB,YAAY;IACZ,2CAA2C;IAC3C,cAAc;IACd,mCAAmC;IACnC,WAAW;IACX,aAAa;IACb,OAAO;IACP,SAAS;IACT,WAAW;IACX,WAAW;IACX,WAAW;IACX,YAAY;CACJ,CAAC;AAIX,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,OAAQ,eAAqC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,OAAQ,UAAgC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC"}
|
|
@@ -25,7 +25,7 @@ function binding(chord, action, context) {
|
|
|
25
25
|
}
|
|
26
26
|
export const defaultKeymap = [
|
|
27
27
|
// global
|
|
28
|
-
// Ctrl+C: abort-then-quit (double press). Esc:
|
|
28
|
+
// Ctrl+C: abort-then-quit (double press). Esc: dismiss/arm, then cancel all.
|
|
29
29
|
// Exit: double Ctrl+C or /exit. (Ctrl+D is chat jump-to-bottom, not quit.)
|
|
30
30
|
binding("ctrl+c", "app.interrupt", "global"),
|
|
31
31
|
binding("escape", "app.cancel", "global"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keymap.js","sourceRoot":"","sources":["../../../src/tui-v2/actions/keymap.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAgBH,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAU,CAAC;AAEjE,2EAA2E;AAC3E,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,MAAM,KAAK,GAAG,KAAK;SAChB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAClC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,cAAoC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7F,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAE,cAAoC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACrF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,OAAO,CACd,KAAa,EACb,MAAgB,EAChB,OAAsB;IAEtB,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAA0B;IAClD,SAAS;IACT,
|
|
1
|
+
{"version":3,"file":"keymap.js","sourceRoot":"","sources":["../../../src/tui-v2/actions/keymap.ts"],"names":[],"mappings":"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"}
|