@pentoshi/clai 3.8.20 → 3.8.21
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 +8 -5
- package/dist/agent/context-breakdown.d.ts +37 -0
- package/dist/agent/context-breakdown.js +145 -0
- package/dist/agent/context-breakdown.js.map +1 -0
- package/dist/agent/reliability-policy.d.ts +85 -0
- package/dist/agent/reliability-policy.js +158 -0
- package/dist/agent/reliability-policy.js.map +1 -0
- package/dist/agent/runner.js +235 -136
- package/dist/agent/runner.js.map +1 -1
- package/dist/agent/session-state.d.ts +11 -1
- package/dist/agent/session-state.js +22 -15
- package/dist/agent/session-state.js.map +1 -1
- package/dist/agent/task-evidence.js +13 -0
- package/dist/agent/task-evidence.js.map +1 -1
- package/dist/agent/tool-history.d.ts +12 -0
- package/dist/agent/tool-history.js +159 -0
- package/dist/agent/tool-history.js.map +1 -1
- package/dist/agent/tool-output-formatting.d.ts +4 -0
- package/dist/agent/tool-output-formatting.js +13 -4
- package/dist/agent/tool-output-formatting.js.map +1 -1
- package/dist/app/controllers/session-controller.d.ts +6 -0
- package/dist/app/controllers/session-controller.js +21 -1
- package/dist/app/controllers/session-controller.js.map +1 -1
- package/dist/commands/providers.js +57 -26
- package/dist/commands/providers.js.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/llm/gemini.js +4 -1
- package/dist/llm/gemini.js.map +1 -1
- package/dist/llm/key-rotation.d.ts +52 -0
- package/dist/llm/key-rotation.js +122 -0
- package/dist/llm/key-rotation.js.map +1 -0
- package/dist/llm/provider.d.ts +2 -0
- package/dist/llm/provider.js +8 -0
- package/dist/llm/provider.js.map +1 -1
- package/dist/llm/router.d.ts +15 -2
- package/dist/llm/router.js +318 -125
- package/dist/llm/router.js.map +1 -1
- package/dist/prompts/embedded.js +1 -1
- package/dist/prompts/embedded.js.map +1 -1
- package/dist/prompts/index.d.ts +25 -0
- package/dist/prompts/index.js +55 -7
- package/dist/prompts/index.js.map +1 -1
- package/dist/prompts/system.agent.md +1 -1
- package/dist/repl/slash-commands.js +14 -8
- package/dist/repl/slash-commands.js.map +1 -1
- package/dist/repl.d.ts +4 -1
- package/dist/repl.js +12 -2
- package/dist/repl.js.map +1 -1
- package/dist/store/config.d.ts +18 -0
- package/dist/store/config.js +9 -0
- package/dist/store/config.js.map +1 -1
- package/dist/store/history.d.ts +8 -0
- package/dist/store/history.js +38 -0
- package/dist/store/history.js.map +1 -1
- package/dist/store/keys.d.ts +55 -0
- package/dist/store/keys.js +226 -21
- package/dist/store/keys.js.map +1 -1
- package/dist/store/logs.js +35 -12
- package/dist/store/logs.js.map +1 -1
- package/dist/store/paths.d.ts +13 -0
- package/dist/store/paths.js +23 -1
- package/dist/store/paths.js.map +1 -1
- package/dist/store/session-workspace.d.ts +79 -0
- package/dist/store/session-workspace.js +199 -0
- package/dist/store/session-workspace.js.map +1 -0
- package/dist/tools/definitions.js +9 -1
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/http.d.ts +8 -0
- package/dist/tools/http.js +86 -2
- package/dist/tools/http.js.map +1 -1
- package/dist/tools/pentest-workflows.js +38 -19
- package/dist/tools/pentest-workflows.js.map +1 -1
- package/dist/tools/registry.js +25 -2
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/shell.d.ts +1 -1
- package/dist/tui/format-keys.js +29 -6
- package/dist/tui/format-keys.js.map +1 -1
- package/dist/tui-v2/app/command-handlers.js +1 -2
- package/dist/tui-v2/app/command-handlers.js.map +1 -1
- package/dist/tui-v2/app/commands/config-commands.d.ts +1 -2
- package/dist/tui-v2/app/commands/config-commands.js +1 -11
- package/dist/tui-v2/app/commands/config-commands.js.map +1 -1
- package/dist/tui-v2/app/commands/key-commands.d.ts +1 -1
- package/dist/tui-v2/app/commands/key-commands.js +148 -63
- package/dist/tui-v2/app/commands/key-commands.js.map +1 -1
- package/dist/tui-v2/app/commands/picker-commands.js +6 -0
- package/dist/tui-v2/app/commands/picker-commands.js.map +1 -1
- package/dist/tui-v2/bootstrap/composition-root.js +8 -5
- package/dist/tui-v2/bootstrap/composition-root.js.map +1 -1
- package/dist/tui-v2/components/modal/keys-modal.d.ts +19 -0
- package/dist/tui-v2/components/modal/keys-modal.js +203 -0
- package/dist/tui-v2/components/modal/keys-modal.js.map +1 -0
- package/dist/tui-v2/components/overlay/overlay-host.js +6 -2
- package/dist/tui-v2/components/overlay/overlay-host.js.map +1 -1
- package/dist/tui-v2/components/pager/pager-line.js +5 -2
- package/dist/tui-v2/components/pager/pager-line.js.map +1 -1
- package/dist/tui-v2/components/pager/pager.js +6 -3
- package/dist/tui-v2/components/pager/pager.js.map +1 -1
- package/dist/tui-v2/components/plan/use-pane-presence.d.ts +6 -4
- package/dist/tui-v2/components/plan/use-pane-presence.js +8 -45
- package/dist/tui-v2/components/plan/use-pane-presence.js.map +1 -1
- package/dist/tui-v2/components/transcript/assistant-message.js +4 -1
- package/dist/tui-v2/components/transcript/assistant-message.js.map +1 -1
- package/dist/tui-v2/components/transcript/compacted-row.js +1 -1
- package/dist/tui-v2/components/transcript/compacted-row.js.map +1 -1
- package/dist/tui-v2/components/transcript/file-diff-card.js +3 -23
- package/dist/tui-v2/components/transcript/file-diff-card.js.map +1 -1
- package/dist/tui-v2/components/transcript/linkable-text.js +9 -2
- package/dist/tui-v2/components/transcript/linkable-text.js.map +1 -1
- package/dist/tui-v2/components/transcript/selectable-line.d.ts +22 -0
- package/dist/tui-v2/components/transcript/selectable-line.js +24 -0
- package/dist/tui-v2/components/transcript/selectable-line.js.map +1 -0
- package/dist/tui-v2/components/transcript/thinking-block.js +3 -1
- package/dist/tui-v2/components/transcript/thinking-block.js.map +1 -1
- package/dist/tui-v2/components/transcript/tool-card.d.ts +5 -3
- package/dist/tui-v2/components/transcript/tool-card.js +39 -33
- package/dist/tui-v2/components/transcript/tool-card.js.map +1 -1
- package/dist/tui-v2/components/transcript/use-click-without-drag.js +4 -1
- package/dist/tui-v2/components/transcript/use-click-without-drag.js.map +1 -1
- package/dist/tui-v2/components/transcript/user-message.js +1 -1
- package/dist/tui-v2/components/transcript/user-message.js.map +1 -1
- package/dist/tui-v2/controllers/overlay-controller.d.ts +36 -0
- package/dist/tui-v2/controllers/overlay-controller.js +28 -0
- package/dist/tui-v2/controllers/overlay-controller.js.map +1 -1
- package/dist/tui-v2/rendering/batch-sections.d.ts +15 -4
- package/dist/tui-v2/rendering/batch-sections.js +157 -64
- package/dist/tui-v2/rendering/batch-sections.js.map +1 -1
- package/dist/tui-v2/rendering/format-help.js +1 -1
- package/dist/tui-v2/rendering/format-help.js.map +1 -1
- package/dist/tui-v2/rendering/open-tool-output.js +10 -7
- package/dist/tui-v2/rendering/open-tool-output.js.map +1 -1
- package/dist/tui-v2/rendering/pager-markdown.d.ts +9 -0
- package/dist/tui-v2/rendering/pager-markdown.js +46 -0
- package/dist/tui-v2/rendering/pager-markdown.js.map +1 -1
- package/dist/tui-v2/rendering/pager-view-policy.d.ts +6 -3
- package/dist/tui-v2/rendering/pager-view-policy.js +9 -13
- package/dist/tui-v2/rendering/pager-view-policy.js.map +1 -1
- package/dist/tui-v2/rendering/sanitize-display.js +3 -1
- package/dist/tui-v2/rendering/sanitize-display.js.map +1 -1
- package/dist/types.d.ts +7 -0
- package/dist/version.generated.d.ts +2 -2
- package/dist/version.generated.js +2 -2
- package/package.json +1 -1
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-session scratch + tool-output workspace.
|
|
3
|
+
*
|
|
4
|
+
* Each chat/history session owns a unique folder under the OS temp root:
|
|
5
|
+
*
|
|
6
|
+
* {tmpdir}/clai/{code}-{DD}-{MM}-{YYYY}-{HH}-{MM}-{SS}/
|
|
7
|
+
* temp/ ← tool run outputs (fs.list, shell.exec, recon, …)
|
|
8
|
+
* … ← agent scratch (findings.md, engagement notes, …)
|
|
9
|
+
*
|
|
10
|
+
* `code` is a 6-digit hexadecimal id. The timestamp is local wall-clock
|
|
11
|
+
* of session creation so operators can spot folders by eye. Folder names
|
|
12
|
+
* use only [0-9a-f-] so they are safe on Windows, macOS, and Linux.
|
|
13
|
+
*
|
|
14
|
+
* The active workspace is process-global (one live TUI/REPL session).
|
|
15
|
+
* History records store `workspaceFolder` + `workspaceCode` so resume
|
|
16
|
+
* rebinds the same directory when it still exists (or recreates it).
|
|
17
|
+
*/
|
|
18
|
+
export interface SessionWorkspace {
|
|
19
|
+
/** 6-char lowercase hex code (session workspace id). */
|
|
20
|
+
readonly code: string;
|
|
21
|
+
/** Folder name only, e.g. `a3f9c1-18-07-2026-14-24-23`. */
|
|
22
|
+
readonly folderName: string;
|
|
23
|
+
/** Absolute path to the session workspace root (scratch). */
|
|
24
|
+
readonly rootDir: string;
|
|
25
|
+
/** Absolute path to `{root}/temp` (tool output artifacts). */
|
|
26
|
+
readonly tempDir: string;
|
|
27
|
+
}
|
|
28
|
+
/** Regex for the 6-hex workspace code. */
|
|
29
|
+
export declare const SESSION_CODE_RE: RegExp;
|
|
30
|
+
/** Regex for a full session folder name (code + local timestamp). */
|
|
31
|
+
export declare const SESSION_FOLDER_RE: RegExp;
|
|
32
|
+
/** Generate a cryptographically random 6-digit hexadecimal code. */
|
|
33
|
+
export declare function generateSessionCode(): string;
|
|
34
|
+
export declare function isValidSessionCode(code: string): boolean;
|
|
35
|
+
export declare function isValidSessionFolderName(name: string): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Build `{code}-{DD}-{MM}-{YYYY}-{HH}-{MM}-{SS}` using local time.
|
|
38
|
+
* Example: `a3f9c1-25-08-2003-22-45-56`.
|
|
39
|
+
*/
|
|
40
|
+
export declare function formatSessionFolderName(code: string, at?: Date): string;
|
|
41
|
+
/** Parent of all session workspaces: `{tmpdir}/clai`. */
|
|
42
|
+
export declare function getSessionWorkspaceParent(): string;
|
|
43
|
+
export declare function sessionWorkspaceRoot(folderName: string): string;
|
|
44
|
+
export declare function sessionTempDir(folderName: string): string;
|
|
45
|
+
/** Create root + temp directories (idempotent, cross-platform). */
|
|
46
|
+
export declare function ensureSessionWorkspaceDirs(ws: SessionWorkspace): void;
|
|
47
|
+
/**
|
|
48
|
+
* Mint a new unique session workspace. Retries the 6-hex code if the
|
|
49
|
+
* folder name already exists for the same second (astronomically rare).
|
|
50
|
+
*/
|
|
51
|
+
export declare function mintSessionWorkspace(at?: Date): SessionWorkspace;
|
|
52
|
+
/**
|
|
53
|
+
* Restore a previously persisted workspace. Recreates dirs if the OS
|
|
54
|
+
* cleaned temp; accepts a folder name even when the code field is missing
|
|
55
|
+
* (older partial records) by parsing the leading 6 hex digits.
|
|
56
|
+
*/
|
|
57
|
+
export declare function restoreSessionWorkspace(folderName: string, code?: string | undefined): SessionWorkspace;
|
|
58
|
+
export declare function getActiveSessionWorkspace(): SessionWorkspace | undefined;
|
|
59
|
+
export declare function bindSessionWorkspace(ws: SessionWorkspace): SessionWorkspace;
|
|
60
|
+
/**
|
|
61
|
+
* Start (or rebind) the active session workspace.
|
|
62
|
+
* - With a prior folder name → restore/recreate that session's dirs.
|
|
63
|
+
* - Without → mint a fresh unique workspace.
|
|
64
|
+
*/
|
|
65
|
+
export declare function beginSessionWorkspace(existing?: {
|
|
66
|
+
folderName?: string | undefined;
|
|
67
|
+
code?: string | undefined;
|
|
68
|
+
}): SessionWorkspace;
|
|
69
|
+
/** Drop the active binding (tests / process teardown). Does not delete files. */
|
|
70
|
+
export declare function clearActiveSessionWorkspace(): void;
|
|
71
|
+
/** Absolute scratch root for the active session, if any. */
|
|
72
|
+
export declare function getActiveSessionScratchDir(): string | undefined;
|
|
73
|
+
/** Absolute tool-output dir for the active session, if any. */
|
|
74
|
+
export declare function getActiveSessionTempDir(): string | undefined;
|
|
75
|
+
/**
|
|
76
|
+
* True when `path` lives under the session workspace parent (`…/clai/`).
|
|
77
|
+
* Used by cleanup and safety checks.
|
|
78
|
+
*/
|
|
79
|
+
export declare function isUnderSessionWorkspaceParent(path: string): boolean;
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-session scratch + tool-output workspace.
|
|
3
|
+
*
|
|
4
|
+
* Each chat/history session owns a unique folder under the OS temp root:
|
|
5
|
+
*
|
|
6
|
+
* {tmpdir}/clai/{code}-{DD}-{MM}-{YYYY}-{HH}-{MM}-{SS}/
|
|
7
|
+
* temp/ ← tool run outputs (fs.list, shell.exec, recon, …)
|
|
8
|
+
* … ← agent scratch (findings.md, engagement notes, …)
|
|
9
|
+
*
|
|
10
|
+
* `code` is a 6-digit hexadecimal id. The timestamp is local wall-clock
|
|
11
|
+
* of session creation so operators can spot folders by eye. Folder names
|
|
12
|
+
* use only [0-9a-f-] so they are safe on Windows, macOS, and Linux.
|
|
13
|
+
*
|
|
14
|
+
* The active workspace is process-global (one live TUI/REPL session).
|
|
15
|
+
* History records store `workspaceFolder` + `workspaceCode` so resume
|
|
16
|
+
* rebinds the same directory when it still exists (or recreates it).
|
|
17
|
+
*/
|
|
18
|
+
import { randomBytes } from "node:crypto";
|
|
19
|
+
import { existsSync, mkdirSync } from "node:fs";
|
|
20
|
+
import { tmpdir } from "node:os";
|
|
21
|
+
import { join, resolve, sep } from "node:path";
|
|
22
|
+
/** Regex for the 6-hex workspace code. */
|
|
23
|
+
export const SESSION_CODE_RE = /^[0-9a-f]{6}$/;
|
|
24
|
+
/** Regex for a full session folder name (code + local timestamp). */
|
|
25
|
+
export const SESSION_FOLDER_RE = /^[0-9a-f]{6}-\d{2}-\d{2}-\d{4}-\d{2}-\d{2}-\d{2}$/;
|
|
26
|
+
let active;
|
|
27
|
+
function pad2(n) {
|
|
28
|
+
return String(n).padStart(2, "0");
|
|
29
|
+
}
|
|
30
|
+
/** Generate a cryptographically random 6-digit hexadecimal code. */
|
|
31
|
+
export function generateSessionCode() {
|
|
32
|
+
return randomBytes(3).toString("hex");
|
|
33
|
+
}
|
|
34
|
+
export function isValidSessionCode(code) {
|
|
35
|
+
return SESSION_CODE_RE.test(code.toLowerCase());
|
|
36
|
+
}
|
|
37
|
+
export function isValidSessionFolderName(name) {
|
|
38
|
+
return SESSION_FOLDER_RE.test(name.toLowerCase());
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Build `{code}-{DD}-{MM}-{YYYY}-{HH}-{MM}-{SS}` using local time.
|
|
42
|
+
* Example: `a3f9c1-25-08-2003-22-45-56`.
|
|
43
|
+
*/
|
|
44
|
+
export function formatSessionFolderName(code, at = new Date()) {
|
|
45
|
+
const normalized = code.toLowerCase();
|
|
46
|
+
if (!isValidSessionCode(normalized)) {
|
|
47
|
+
throw new Error(`invalid session code: ${code}`);
|
|
48
|
+
}
|
|
49
|
+
return [
|
|
50
|
+
normalized,
|
|
51
|
+
pad2(at.getDate()),
|
|
52
|
+
pad2(at.getMonth() + 1),
|
|
53
|
+
String(at.getFullYear()),
|
|
54
|
+
pad2(at.getHours()),
|
|
55
|
+
pad2(at.getMinutes()),
|
|
56
|
+
pad2(at.getSeconds()),
|
|
57
|
+
].join("-");
|
|
58
|
+
}
|
|
59
|
+
/** Parent of all session workspaces: `{tmpdir}/clai`. */
|
|
60
|
+
export function getSessionWorkspaceParent() {
|
|
61
|
+
return join(tmpdir(), "clai");
|
|
62
|
+
}
|
|
63
|
+
export function sessionWorkspaceRoot(folderName) {
|
|
64
|
+
// Reject path separators / traversal so a corrupted history record cannot
|
|
65
|
+
// escape the clai temp namespace. Do not silently strip separators — that
|
|
66
|
+
// would turn "a/b" into "ab" and hide the attack.
|
|
67
|
+
const safe = folderName.trim();
|
|
68
|
+
if (!safe ||
|
|
69
|
+
safe === "." ||
|
|
70
|
+
safe === ".." ||
|
|
71
|
+
safe.includes("..") ||
|
|
72
|
+
/[/\\]/.test(safe) ||
|
|
73
|
+
safe.includes("\0")) {
|
|
74
|
+
throw new Error(`invalid session folder name: ${folderName}`);
|
|
75
|
+
}
|
|
76
|
+
return join(getSessionWorkspaceParent(), safe);
|
|
77
|
+
}
|
|
78
|
+
export function sessionTempDir(folderName) {
|
|
79
|
+
return join(sessionWorkspaceRoot(folderName), "temp");
|
|
80
|
+
}
|
|
81
|
+
function toWorkspace(code, folderName) {
|
|
82
|
+
const rootDir = sessionWorkspaceRoot(folderName);
|
|
83
|
+
return {
|
|
84
|
+
code: code.toLowerCase(),
|
|
85
|
+
folderName,
|
|
86
|
+
rootDir,
|
|
87
|
+
tempDir: join(rootDir, "temp"),
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
/** Create root + temp directories (idempotent, cross-platform). */
|
|
91
|
+
export function ensureSessionWorkspaceDirs(ws) {
|
|
92
|
+
try {
|
|
93
|
+
mkdirSync(ws.rootDir, { recursive: true });
|
|
94
|
+
mkdirSync(ws.tempDir, { recursive: true });
|
|
95
|
+
}
|
|
96
|
+
catch {
|
|
97
|
+
// Best-effort: callers tolerate missing dirs (artifact open already
|
|
98
|
+
// retries mkdir). Never throw out of path setup.
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Mint a new unique session workspace. Retries the 6-hex code if the
|
|
103
|
+
* folder name already exists for the same second (astronomically rare).
|
|
104
|
+
*/
|
|
105
|
+
export function mintSessionWorkspace(at = new Date()) {
|
|
106
|
+
for (let attempt = 0; attempt < 16; attempt++) {
|
|
107
|
+
const code = generateSessionCode();
|
|
108
|
+
const folderName = formatSessionFolderName(code, at);
|
|
109
|
+
const root = sessionWorkspaceRoot(folderName);
|
|
110
|
+
if (!existsSync(root)) {
|
|
111
|
+
const ws = toWorkspace(code, folderName);
|
|
112
|
+
ensureSessionWorkspaceDirs(ws);
|
|
113
|
+
return ws;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// Last resort: still unique by appending 2 more hex digits (folder name
|
|
117
|
+
// diverges slightly from the strict template only under pathological
|
|
118
|
+
// collision — keeps the process from looping forever).
|
|
119
|
+
const code = generateSessionCode();
|
|
120
|
+
const folderName = `${formatSessionFolderName(code, at)}-${randomBytes(1).toString("hex")}`;
|
|
121
|
+
const ws = toWorkspace(code, folderName);
|
|
122
|
+
ensureSessionWorkspaceDirs(ws);
|
|
123
|
+
return ws;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Restore a previously persisted workspace. Recreates dirs if the OS
|
|
127
|
+
* cleaned temp; accepts a folder name even when the code field is missing
|
|
128
|
+
* (older partial records) by parsing the leading 6 hex digits.
|
|
129
|
+
*/
|
|
130
|
+
export function restoreSessionWorkspace(folderName, code) {
|
|
131
|
+
const safeName = folderName.trim();
|
|
132
|
+
// Prefer strict validation; fall back to minting if the stored name is
|
|
133
|
+
// corrupted (should never happen for records we wrote ourselves).
|
|
134
|
+
if (!safeName ||
|
|
135
|
+
/[/\\]/.test(safeName) ||
|
|
136
|
+
safeName.includes("..") ||
|
|
137
|
+
safeName.includes("\0")) {
|
|
138
|
+
return mintSessionWorkspace();
|
|
139
|
+
}
|
|
140
|
+
if (!isValidSessionFolderName(safeName) && !/^[0-9a-f]{6}-/i.test(safeName)) {
|
|
141
|
+
return mintSessionWorkspace();
|
|
142
|
+
}
|
|
143
|
+
const resolvedCode = (code && isValidSessionCode(code) ? code.toLowerCase() : undefined) ??
|
|
144
|
+
safeName.slice(0, 6).toLowerCase();
|
|
145
|
+
if (!isValidSessionCode(resolvedCode)) {
|
|
146
|
+
return mintSessionWorkspace();
|
|
147
|
+
}
|
|
148
|
+
try {
|
|
149
|
+
const ws = toWorkspace(resolvedCode, safeName);
|
|
150
|
+
ensureSessionWorkspaceDirs(ws);
|
|
151
|
+
return ws;
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
return mintSessionWorkspace();
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
export function getActiveSessionWorkspace() {
|
|
158
|
+
return active;
|
|
159
|
+
}
|
|
160
|
+
export function bindSessionWorkspace(ws) {
|
|
161
|
+
ensureSessionWorkspaceDirs(ws);
|
|
162
|
+
active = ws;
|
|
163
|
+
return ws;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Start (or rebind) the active session workspace.
|
|
167
|
+
* - With a prior folder name → restore/recreate that session's dirs.
|
|
168
|
+
* - Without → mint a fresh unique workspace.
|
|
169
|
+
*/
|
|
170
|
+
export function beginSessionWorkspace(existing) {
|
|
171
|
+
if (existing?.folderName && existing.folderName.trim()) {
|
|
172
|
+
return bindSessionWorkspace(restoreSessionWorkspace(existing.folderName, existing.code));
|
|
173
|
+
}
|
|
174
|
+
return bindSessionWorkspace(mintSessionWorkspace());
|
|
175
|
+
}
|
|
176
|
+
/** Drop the active binding (tests / process teardown). Does not delete files. */
|
|
177
|
+
export function clearActiveSessionWorkspace() {
|
|
178
|
+
active = undefined;
|
|
179
|
+
}
|
|
180
|
+
/** Absolute scratch root for the active session, if any. */
|
|
181
|
+
export function getActiveSessionScratchDir() {
|
|
182
|
+
return active?.rootDir;
|
|
183
|
+
}
|
|
184
|
+
/** Absolute tool-output dir for the active session, if any. */
|
|
185
|
+
export function getActiveSessionTempDir() {
|
|
186
|
+
return active?.tempDir;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* True when `path` lives under the session workspace parent (`…/clai/`).
|
|
190
|
+
* Used by cleanup and safety checks.
|
|
191
|
+
*/
|
|
192
|
+
export function isUnderSessionWorkspaceParent(path) {
|
|
193
|
+
const parent = resolve(getSessionWorkspaceParent());
|
|
194
|
+
const target = resolve(path);
|
|
195
|
+
const rel = target.slice(parent.length);
|
|
196
|
+
return (target === parent ||
|
|
197
|
+
(target.startsWith(parent + sep) && !rel.includes(`..${sep}`)));
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=session-workspace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-workspace.js","sourceRoot":"","sources":["../../src/store/session-workspace.ts"],"names":[],"mappings":"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"}
|
|
@@ -265,7 +265,7 @@ export const TOOL_DEFINITIONS = [
|
|
|
265
265
|
required: ["target"],
|
|
266
266
|
additionalProperties: false,
|
|
267
267
|
}, { readOnly: true }),
|
|
268
|
-
def("http.fetch", "Raw HTTP evidence for pentest/protocol/private targets: status, redirect chain, headers/cookies, body. Default no status-retries (pass retries to retry 5xx). TLS
|
|
268
|
+
def("http.fetch", "Raw HTTP evidence for pentest/protocol/private targets: status, redirect chain, headers/cookies, body. Default no status-retries (pass retries to retry 5xx). For https://IP or self-signed lab certs use insecureTls=true (records that verification was off). TLS fingerprint: web.fetch includeTls. Not for casual public-page reading (prefer web.fetch).", {
|
|
269
269
|
type: "object",
|
|
270
270
|
properties: {
|
|
271
271
|
url: { type: "string" },
|
|
@@ -286,6 +286,14 @@ export const TOOL_DEFINITIONS = [
|
|
|
286
286
|
type: "integer",
|
|
287
287
|
description: "Request timeout ms (default 15000, clamp 3000-60000)",
|
|
288
288
|
},
|
|
289
|
+
insecureTls: {
|
|
290
|
+
type: "boolean",
|
|
291
|
+
description: "Skip TLS cert/hostname verification (https://IP, self-signed labs). Authorized testing only; evidence notes verification was disabled.",
|
|
292
|
+
},
|
|
293
|
+
tlsInsecure: {
|
|
294
|
+
type: "boolean",
|
|
295
|
+
description: "Alias of insecureTls",
|
|
296
|
+
},
|
|
289
297
|
},
|
|
290
298
|
required: ["url"],
|
|
291
299
|
additionalProperties: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/http.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { ToolResult } from "../types.js";
|
|
2
2
|
import { isBlockedAddress } from "./web/ssrf-guard.js";
|
|
3
|
+
/** True when the error is a TLS hostname/cert mismatch (common for https://IP). */
|
|
4
|
+
export declare function isTlsCertNameError(error: unknown): boolean;
|
|
3
5
|
/**
|
|
4
6
|
* Block (or require explicit ownership confirmation for) requests that
|
|
5
7
|
* target loopback, private, link-local, or cloud-metadata addresses.
|
|
@@ -28,6 +30,12 @@ interface FetchOptions {
|
|
|
28
30
|
retries?: number | undefined;
|
|
29
31
|
/** Request timeout in ms (clamped 3s–60s). Default 15s. */
|
|
30
32
|
timeoutMs?: number | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* Skip TLS certificate verification (hostname mismatch / self-signed).
|
|
35
|
+
* For authorized pentest against https://IP or lab certs only. Evidence
|
|
36
|
+
* will note that verification was disabled.
|
|
37
|
+
*/
|
|
38
|
+
insecureTls?: boolean | undefined;
|
|
31
39
|
signal?: AbortSignal | undefined;
|
|
32
40
|
authorizeHop?: ((url: string, resolvedAddresses: string[]) => Promise<{
|
|
33
41
|
allowed: boolean;
|
package/dist/tools/http.js
CHANGED
|
@@ -1,7 +1,81 @@
|
|
|
1
1
|
import net from "node:net";
|
|
2
2
|
import { lookup } from "node:dns/promises";
|
|
3
|
+
import { Agent } from "undici";
|
|
3
4
|
import { isBlockedAddress } from "./web/ssrf-guard.js";
|
|
4
5
|
import { toReadableText } from "./web/readable.js";
|
|
6
|
+
/** Shared undici agent that skips cert verification (authorized pentest only). */
|
|
7
|
+
let insecureTlsAgent;
|
|
8
|
+
function getInsecureTlsAgent() {
|
|
9
|
+
if (!insecureTlsAgent) {
|
|
10
|
+
insecureTlsAgent = new Agent({
|
|
11
|
+
connect: {
|
|
12
|
+
rejectUnauthorized: false,
|
|
13
|
+
},
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
return insecureTlsAgent;
|
|
17
|
+
}
|
|
18
|
+
/** Flatten error + nested cause(s) for TLS code matching. */
|
|
19
|
+
function errorText(error, depth = 0) {
|
|
20
|
+
if (depth > 4 || error == null)
|
|
21
|
+
return "";
|
|
22
|
+
if (typeof error === "string")
|
|
23
|
+
return error;
|
|
24
|
+
if (error instanceof Error) {
|
|
25
|
+
const cause = error.cause !== undefined ? errorText(error.cause, depth + 1) : "";
|
|
26
|
+
const code = "code" in error && typeof error.code === "string"
|
|
27
|
+
? String(error.code)
|
|
28
|
+
: "";
|
|
29
|
+
return `${error.message} ${code} ${cause}`;
|
|
30
|
+
}
|
|
31
|
+
if (typeof error === "object") {
|
|
32
|
+
const rec = error;
|
|
33
|
+
const code = typeof rec.code === "string" ? rec.code : "";
|
|
34
|
+
const message = typeof rec.message === "string" ? rec.message : "";
|
|
35
|
+
const cause = rec.cause !== undefined ? errorText(rec.cause, depth + 1) : "";
|
|
36
|
+
try {
|
|
37
|
+
return `${message} ${code} ${cause} ${JSON.stringify(error)}`;
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
return `${message} ${code} ${cause}`;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return String(error);
|
|
44
|
+
}
|
|
45
|
+
/** True when the error is a TLS hostname/cert mismatch (common for https://IP). */
|
|
46
|
+
export function isTlsCertNameError(error) {
|
|
47
|
+
const text = errorText(error);
|
|
48
|
+
return (/ERR_TLS_CERT_ALTNAME_INVALID/i.test(text) ||
|
|
49
|
+
/Hostname\/IP does not match certificate/i.test(text) ||
|
|
50
|
+
/certificate.*altname/i.test(text) ||
|
|
51
|
+
/UNABLE_TO_VERIFY_LEAF_SIGNATURE/i.test(text) ||
|
|
52
|
+
/DEPTH_ZERO_SELF_SIGNED_CERT/i.test(text) ||
|
|
53
|
+
/SELF_SIGNED_CERT/i.test(text) ||
|
|
54
|
+
/unable to verify the first certificate/i.test(text));
|
|
55
|
+
}
|
|
56
|
+
function formatTlsNetworkError(error, url) {
|
|
57
|
+
const base = error instanceof Error ? error.message : String(error);
|
|
58
|
+
if (!isTlsCertNameError(error))
|
|
59
|
+
return base;
|
|
60
|
+
let host = url;
|
|
61
|
+
try {
|
|
62
|
+
host = new URL(url).hostname;
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
/* keep raw */
|
|
66
|
+
}
|
|
67
|
+
const byIp = net.isIP(host.replace(/^\[|\]$/g, "")) !== 0;
|
|
68
|
+
return (`${base}\n\n` +
|
|
69
|
+
`TLS certificate did not validate for this URL` +
|
|
70
|
+
(byIp
|
|
71
|
+
? ` (you connected by IP ${host}; the cert is almost always issued for a hostname, not the IP).`
|
|
72
|
+
: `.`) +
|
|
73
|
+
`\nAuthorized testing options:\n` +
|
|
74
|
+
` 1. Retry with the hostname that matches the cert (from SAN/CN), or\n` +
|
|
75
|
+
` 2. http.fetch with insecureTls=true (or tlsInsecure=true) to skip verification and still capture evidence, or\n` +
|
|
76
|
+
` 3. shell: curl -k -i ${url}\n` +
|
|
77
|
+
`Evidence taken with insecureTls is still valid for recon; record that TLS verification was disabled.`);
|
|
78
|
+
}
|
|
5
79
|
/** Capture budget for body bytes (artifact + evidence build). Model context is capped later. */
|
|
6
80
|
const DEFAULT_MAX_BYTES = 128 * 1024;
|
|
7
81
|
/**
|
|
@@ -201,6 +275,7 @@ export async function httpFetch(url, options = {}) {
|
|
|
201
275
|
if (!headers.has("accept-language")) {
|
|
202
276
|
headers.set("accept-language", "en-US,en;q=0.8");
|
|
203
277
|
}
|
|
278
|
+
const insecureTls = Boolean(options.insecureTls);
|
|
204
279
|
const init = {
|
|
205
280
|
method,
|
|
206
281
|
headers,
|
|
@@ -209,6 +284,10 @@ export async function httpFetch(url, options = {}) {
|
|
|
209
284
|
if (options.body !== undefined && method !== "GET" && method !== "HEAD") {
|
|
210
285
|
init.body = options.body;
|
|
211
286
|
}
|
|
287
|
+
// Node undici: skip cert checks for authorized IP/lab HTTPS probes.
|
|
288
|
+
if (insecureTls && target.protocol === "https:") {
|
|
289
|
+
init.dispatcher = getInsecureTlsAgent();
|
|
290
|
+
}
|
|
212
291
|
// Local dev: try localhost / 127.0.0.1 / ::1 until one accepts (Vite dual-stack).
|
|
213
292
|
const urlCandidates = ownedLoopback && (method === "GET" || method === "HEAD")
|
|
214
293
|
? loopbackUrlCandidates(url)
|
|
@@ -325,9 +404,10 @@ export async function httpFetch(url, options = {}) {
|
|
|
325
404
|
const tried = urlCandidates.length > 1
|
|
326
405
|
? ` (tried ${urlCandidates.join(" → ")})`
|
|
327
406
|
: "";
|
|
407
|
+
const detail = formatTlsNetworkError(error, usedUrl || url);
|
|
328
408
|
return {
|
|
329
409
|
ok: false,
|
|
330
|
-
output: `Network error after ${attempts} attempt${attempts === 1 ? "" : "s"}${tried}: ${
|
|
410
|
+
output: `Network error after ${attempts} attempt${attempts === 1 ? "" : "s"}${tried}: ${detail}`,
|
|
331
411
|
exitCode: 1,
|
|
332
412
|
};
|
|
333
413
|
}
|
|
@@ -402,6 +482,7 @@ export async function httpFetch(url, options = {}) {
|
|
|
402
482
|
isBinary,
|
|
403
483
|
redirectHops,
|
|
404
484
|
lastNetworkError,
|
|
485
|
+
insecureTls,
|
|
405
486
|
});
|
|
406
487
|
return {
|
|
407
488
|
ok: true,
|
|
@@ -423,6 +504,9 @@ const PRIORITY_HEADER_RE = /^(set-cookie|server|x-powered-by|x-aspnet|x-generato
|
|
|
423
504
|
function formatHttpEvidence(input) {
|
|
424
505
|
const lines = [];
|
|
425
506
|
lines.push(`${input.status} ${input.statusText} ${input.method} ${input.finalUrl}`);
|
|
507
|
+
if (input.insecureTls) {
|
|
508
|
+
lines.push("TLS: verification DISABLED (insecureTls=true) — hostname/cert not validated; authorized-test only.");
|
|
509
|
+
}
|
|
426
510
|
if (input.redirectHops.length > 0) {
|
|
427
511
|
const chain = [
|
|
428
512
|
...input.redirectHops.map((h) => `${h.status} ${h.url} → ${h.location}`),
|
|
@@ -447,7 +531,7 @@ function formatHttpEvidence(input) {
|
|
|
447
531
|
metaBits.push(`requested=${input.requestedUrl}`);
|
|
448
532
|
}
|
|
449
533
|
lines.push(metaBits.join(" "));
|
|
450
|
-
if (input.finalUrl.startsWith("https:")) {
|
|
534
|
+
if (input.finalUrl.startsWith("https:") && !input.insecureTls) {
|
|
451
535
|
lines.push("TLS: leaf cert not captured by http.fetch — use web.fetch with includeTls=true for fingerprint/SAN.");
|
|
452
536
|
}
|
|
453
537
|
// ALL response headers, always — cheap vs body and critical for pentest.
|