@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.
Files changed (144) hide show
  1. package/README.md +8 -5
  2. package/dist/agent/context-breakdown.d.ts +37 -0
  3. package/dist/agent/context-breakdown.js +145 -0
  4. package/dist/agent/context-breakdown.js.map +1 -0
  5. package/dist/agent/reliability-policy.d.ts +85 -0
  6. package/dist/agent/reliability-policy.js +158 -0
  7. package/dist/agent/reliability-policy.js.map +1 -0
  8. package/dist/agent/runner.js +235 -136
  9. package/dist/agent/runner.js.map +1 -1
  10. package/dist/agent/session-state.d.ts +11 -1
  11. package/dist/agent/session-state.js +22 -15
  12. package/dist/agent/session-state.js.map +1 -1
  13. package/dist/agent/task-evidence.js +13 -0
  14. package/dist/agent/task-evidence.js.map +1 -1
  15. package/dist/agent/tool-history.d.ts +12 -0
  16. package/dist/agent/tool-history.js +159 -0
  17. package/dist/agent/tool-history.js.map +1 -1
  18. package/dist/agent/tool-output-formatting.d.ts +4 -0
  19. package/dist/agent/tool-output-formatting.js +13 -4
  20. package/dist/agent/tool-output-formatting.js.map +1 -1
  21. package/dist/app/controllers/session-controller.d.ts +6 -0
  22. package/dist/app/controllers/session-controller.js +21 -1
  23. package/dist/app/controllers/session-controller.js.map +1 -1
  24. package/dist/commands/providers.js +57 -26
  25. package/dist/commands/providers.js.map +1 -1
  26. package/dist/index.js +3 -3
  27. package/dist/index.js.map +1 -1
  28. package/dist/llm/gemini.js +4 -1
  29. package/dist/llm/gemini.js.map +1 -1
  30. package/dist/llm/key-rotation.d.ts +52 -0
  31. package/dist/llm/key-rotation.js +122 -0
  32. package/dist/llm/key-rotation.js.map +1 -0
  33. package/dist/llm/provider.d.ts +2 -0
  34. package/dist/llm/provider.js +8 -0
  35. package/dist/llm/provider.js.map +1 -1
  36. package/dist/llm/router.d.ts +15 -2
  37. package/dist/llm/router.js +318 -125
  38. package/dist/llm/router.js.map +1 -1
  39. package/dist/prompts/embedded.js +1 -1
  40. package/dist/prompts/embedded.js.map +1 -1
  41. package/dist/prompts/index.d.ts +25 -0
  42. package/dist/prompts/index.js +55 -7
  43. package/dist/prompts/index.js.map +1 -1
  44. package/dist/prompts/system.agent.md +1 -1
  45. package/dist/repl/slash-commands.js +14 -8
  46. package/dist/repl/slash-commands.js.map +1 -1
  47. package/dist/repl.d.ts +4 -1
  48. package/dist/repl.js +12 -2
  49. package/dist/repl.js.map +1 -1
  50. package/dist/store/config.d.ts +18 -0
  51. package/dist/store/config.js +9 -0
  52. package/dist/store/config.js.map +1 -1
  53. package/dist/store/history.d.ts +8 -0
  54. package/dist/store/history.js +38 -0
  55. package/dist/store/history.js.map +1 -1
  56. package/dist/store/keys.d.ts +55 -0
  57. package/dist/store/keys.js +226 -21
  58. package/dist/store/keys.js.map +1 -1
  59. package/dist/store/logs.js +35 -12
  60. package/dist/store/logs.js.map +1 -1
  61. package/dist/store/paths.d.ts +13 -0
  62. package/dist/store/paths.js +23 -1
  63. package/dist/store/paths.js.map +1 -1
  64. package/dist/store/session-workspace.d.ts +79 -0
  65. package/dist/store/session-workspace.js +199 -0
  66. package/dist/store/session-workspace.js.map +1 -0
  67. package/dist/tools/definitions.js +9 -1
  68. package/dist/tools/definitions.js.map +1 -1
  69. package/dist/tools/http.d.ts +8 -0
  70. package/dist/tools/http.js +86 -2
  71. package/dist/tools/http.js.map +1 -1
  72. package/dist/tools/pentest-workflows.js +38 -19
  73. package/dist/tools/pentest-workflows.js.map +1 -1
  74. package/dist/tools/registry.js +25 -2
  75. package/dist/tools/registry.js.map +1 -1
  76. package/dist/tools/shell.d.ts +1 -1
  77. package/dist/tui/format-keys.js +29 -6
  78. package/dist/tui/format-keys.js.map +1 -1
  79. package/dist/tui-v2/app/command-handlers.js +1 -2
  80. package/dist/tui-v2/app/command-handlers.js.map +1 -1
  81. package/dist/tui-v2/app/commands/config-commands.d.ts +1 -2
  82. package/dist/tui-v2/app/commands/config-commands.js +1 -11
  83. package/dist/tui-v2/app/commands/config-commands.js.map +1 -1
  84. package/dist/tui-v2/app/commands/key-commands.d.ts +1 -1
  85. package/dist/tui-v2/app/commands/key-commands.js +148 -63
  86. package/dist/tui-v2/app/commands/key-commands.js.map +1 -1
  87. package/dist/tui-v2/app/commands/picker-commands.js +6 -0
  88. package/dist/tui-v2/app/commands/picker-commands.js.map +1 -1
  89. package/dist/tui-v2/bootstrap/composition-root.js +8 -5
  90. package/dist/tui-v2/bootstrap/composition-root.js.map +1 -1
  91. package/dist/tui-v2/components/modal/keys-modal.d.ts +19 -0
  92. package/dist/tui-v2/components/modal/keys-modal.js +203 -0
  93. package/dist/tui-v2/components/modal/keys-modal.js.map +1 -0
  94. package/dist/tui-v2/components/overlay/overlay-host.js +6 -2
  95. package/dist/tui-v2/components/overlay/overlay-host.js.map +1 -1
  96. package/dist/tui-v2/components/pager/pager-line.js +5 -2
  97. package/dist/tui-v2/components/pager/pager-line.js.map +1 -1
  98. package/dist/tui-v2/components/pager/pager.js +6 -3
  99. package/dist/tui-v2/components/pager/pager.js.map +1 -1
  100. package/dist/tui-v2/components/plan/use-pane-presence.d.ts +6 -4
  101. package/dist/tui-v2/components/plan/use-pane-presence.js +8 -45
  102. package/dist/tui-v2/components/plan/use-pane-presence.js.map +1 -1
  103. package/dist/tui-v2/components/transcript/assistant-message.js +4 -1
  104. package/dist/tui-v2/components/transcript/assistant-message.js.map +1 -1
  105. package/dist/tui-v2/components/transcript/compacted-row.js +1 -1
  106. package/dist/tui-v2/components/transcript/compacted-row.js.map +1 -1
  107. package/dist/tui-v2/components/transcript/file-diff-card.js +3 -23
  108. package/dist/tui-v2/components/transcript/file-diff-card.js.map +1 -1
  109. package/dist/tui-v2/components/transcript/linkable-text.js +9 -2
  110. package/dist/tui-v2/components/transcript/linkable-text.js.map +1 -1
  111. package/dist/tui-v2/components/transcript/selectable-line.d.ts +22 -0
  112. package/dist/tui-v2/components/transcript/selectable-line.js +24 -0
  113. package/dist/tui-v2/components/transcript/selectable-line.js.map +1 -0
  114. package/dist/tui-v2/components/transcript/thinking-block.js +3 -1
  115. package/dist/tui-v2/components/transcript/thinking-block.js.map +1 -1
  116. package/dist/tui-v2/components/transcript/tool-card.d.ts +5 -3
  117. package/dist/tui-v2/components/transcript/tool-card.js +39 -33
  118. package/dist/tui-v2/components/transcript/tool-card.js.map +1 -1
  119. package/dist/tui-v2/components/transcript/use-click-without-drag.js +4 -1
  120. package/dist/tui-v2/components/transcript/use-click-without-drag.js.map +1 -1
  121. package/dist/tui-v2/components/transcript/user-message.js +1 -1
  122. package/dist/tui-v2/components/transcript/user-message.js.map +1 -1
  123. package/dist/tui-v2/controllers/overlay-controller.d.ts +36 -0
  124. package/dist/tui-v2/controllers/overlay-controller.js +28 -0
  125. package/dist/tui-v2/controllers/overlay-controller.js.map +1 -1
  126. package/dist/tui-v2/rendering/batch-sections.d.ts +15 -4
  127. package/dist/tui-v2/rendering/batch-sections.js +157 -64
  128. package/dist/tui-v2/rendering/batch-sections.js.map +1 -1
  129. package/dist/tui-v2/rendering/format-help.js +1 -1
  130. package/dist/tui-v2/rendering/format-help.js.map +1 -1
  131. package/dist/tui-v2/rendering/open-tool-output.js +10 -7
  132. package/dist/tui-v2/rendering/open-tool-output.js.map +1 -1
  133. package/dist/tui-v2/rendering/pager-markdown.d.ts +9 -0
  134. package/dist/tui-v2/rendering/pager-markdown.js +46 -0
  135. package/dist/tui-v2/rendering/pager-markdown.js.map +1 -1
  136. package/dist/tui-v2/rendering/pager-view-policy.d.ts +6 -3
  137. package/dist/tui-v2/rendering/pager-view-policy.js +9 -13
  138. package/dist/tui-v2/rendering/pager-view-policy.js.map +1 -1
  139. package/dist/tui-v2/rendering/sanitize-display.js +3 -1
  140. package/dist/tui-v2/rendering/sanitize-display.js.map +1 -1
  141. package/dist/types.d.ts +7 -0
  142. package/dist/version.generated.d.ts +2 -2
  143. package/dist/version.generated.js +2 -2
  144. 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 cert fingerprint: web.fetch includeTls. Not for casual public-page reading (prefer web.fetch).", {
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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"}
@@ -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;
@@ -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}: ${error instanceof Error ? error.message : String(error)}`,
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.