@trenchwork/erosolar 1.1.26 → 1.1.28
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/capabilities/ghidraHeadlessCapability.d.ts +25 -0
- package/dist/capabilities/ghidraHeadlessCapability.d.ts.map +1 -0
- package/dist/capabilities/ghidraHeadlessCapability.js +593 -0
- package/dist/capabilities/ghidraHeadlessCapability.js.map +1 -0
- package/dist/capabilities/index.d.ts +1 -0
- package/dist/capabilities/index.d.ts.map +1 -1
- package/dist/capabilities/index.js +1 -0
- package/dist/capabilities/index.js.map +1 -1
- package/dist/core/reviewerGuard.d.ts +37 -0
- package/dist/core/reviewerGuard.d.ts.map +1 -0
- package/dist/core/reviewerGuard.js +188 -0
- package/dist/core/reviewerGuard.js.map +1 -0
- package/dist/core/toolRuntime.d.ts.map +1 -1
- package/dist/core/toolRuntime.js +51 -0
- package/dist/core/toolRuntime.js.map +1 -1
- package/dist/core/userApproval.d.ts +21 -0
- package/dist/core/userApproval.d.ts.map +1 -1
- package/dist/core/userApproval.js +45 -0
- package/dist/core/userApproval.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ghidra `analyzeHeadless` wrappers — direct binding to the
|
|
3
|
+
* support/analyzeHeadless driver Project Zero / NSA / Trail of Bits
|
|
4
|
+
* use at scale, no MCP bridge required. Each tool spawns
|
|
5
|
+
* analyzeHeadless with one of the embedded Jython post-scripts;
|
|
6
|
+
* scripts write JSON to a temp file the TS handler reads. Project
|
|
7
|
+
* databases live under ~/.erosolar/ghidra-projects/<project>/ so
|
|
8
|
+
* a follow-up tool call (decompile, xrefs, list-functions) reuses
|
|
9
|
+
* the analysis from the prior `ghidra_analyze` run.
|
|
10
|
+
*
|
|
11
|
+
* The post-script approach is preferred over running scripts via
|
|
12
|
+
* the Ghidra GUI / MCP bridge because:
|
|
13
|
+
* - No process to keep alive; analyzeHeadless exits per call.
|
|
14
|
+
* - Version-stable; the Jython script API is much more stable
|
|
15
|
+
* than the MCP server's surface.
|
|
16
|
+
* - First-class to Ghidra; this is the path the security
|
|
17
|
+
* research community already uses.
|
|
18
|
+
*/
|
|
19
|
+
import type { CapabilityContext, CapabilityContribution, CapabilityModule } from '../runtime/agentHost.js';
|
|
20
|
+
export declare class GhidraHeadlessCapabilityModule implements CapabilityModule {
|
|
21
|
+
readonly id = "capability.ghidraHeadless";
|
|
22
|
+
readonly description = "Ghidra analyzeHeadless wrappers \u2014 ghidra_analyze, ghidra_list_functions, ghidra_decompile, ghidra_xrefs, ghidra_fid_matches, ghidra_function_diff, ghidra_delete_project. Each tool spawns analyzeHeadless once with an embedded Jython post-script; project databases persist under ~/.erosolar/ghidra-projects/.";
|
|
23
|
+
create(_context: CapabilityContext): Promise<CapabilityContribution>;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=ghidraHeadlessCapability.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ghidraHeadlessCapability.d.ts","sourceRoot":"","sources":["../../src/capabilities/ghidraHeadlessCapability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAcH,OAAO,KAAK,EACV,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,yBAAyB,CAAC;AAqkBjC,qBAAa,8BAA+B,YAAW,gBAAgB;IACrE,QAAQ,CAAC,EAAE,+BAA+B;IAC1C,QAAQ,CAAC,WAAW,6TAAwT;IAEtU,MAAM,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAU3E"}
|
|
@@ -0,0 +1,593 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ghidra `analyzeHeadless` wrappers — direct binding to the
|
|
3
|
+
* support/analyzeHeadless driver Project Zero / NSA / Trail of Bits
|
|
4
|
+
* use at scale, no MCP bridge required. Each tool spawns
|
|
5
|
+
* analyzeHeadless with one of the embedded Jython post-scripts;
|
|
6
|
+
* scripts write JSON to a temp file the TS handler reads. Project
|
|
7
|
+
* databases live under ~/.erosolar/ghidra-projects/<project>/ so
|
|
8
|
+
* a follow-up tool call (decompile, xrefs, list-functions) reuses
|
|
9
|
+
* the analysis from the prior `ghidra_analyze` run.
|
|
10
|
+
*
|
|
11
|
+
* The post-script approach is preferred over running scripts via
|
|
12
|
+
* the Ghidra GUI / MCP bridge because:
|
|
13
|
+
* - No process to keep alive; analyzeHeadless exits per call.
|
|
14
|
+
* - Version-stable; the Jython script API is much more stable
|
|
15
|
+
* than the MCP server's surface.
|
|
16
|
+
* - First-class to Ghidra; this is the path the security
|
|
17
|
+
* research community already uses.
|
|
18
|
+
*/
|
|
19
|
+
import { spawn } from 'node:child_process';
|
|
20
|
+
import { existsSync, mkdirSync, readFileSync, rmSync, unlinkSync, writeFileSync, } from 'node:fs';
|
|
21
|
+
import { homedir, tmpdir } from 'node:os';
|
|
22
|
+
import { join } from 'node:path';
|
|
23
|
+
import { logDebug } from '../utils/debugLogger.js';
|
|
24
|
+
const GHIDRA_HEADLESS = process.env['GHIDRA_HEADLESS']
|
|
25
|
+
|| (existsSync('/usr/share/ghidra/support/analyzeHeadless')
|
|
26
|
+
? '/usr/share/ghidra/support/analyzeHeadless'
|
|
27
|
+
: '/opt/ghidra/support/analyzeHeadless');
|
|
28
|
+
const PROJECTS_ROOT = join(homedir(), '.erosolar', 'ghidra-projects');
|
|
29
|
+
const DEFAULT_TIMEOUT_MS = 30 * 60 * 1000; // analyzeHeadless can take a while on large binaries
|
|
30
|
+
const SCRIPT_DIR = join(tmpdir(), 'erosolar-ghidra-scripts');
|
|
31
|
+
/* ------------------------------------------------------------------
|
|
32
|
+
* Embedded Java GhidraScript post-scripts.
|
|
33
|
+
*
|
|
34
|
+
* Modern Ghidra (12.x in Kali 2026) replaced Jython with PyGhidra
|
|
35
|
+
* (CPython bridge), which requires `pip install pyghidra`. Java
|
|
36
|
+
* GhidraScripts compile at script-load time inside Ghidra's JVM —
|
|
37
|
+
* no extra deps for end users. Each script writes a JSON file the
|
|
38
|
+
* TS handler reads back.
|
|
39
|
+
*
|
|
40
|
+
* All scripts share the same shape:
|
|
41
|
+
* public class <Name> extends GhidraScript {
|
|
42
|
+
* public void run() throws Exception {
|
|
43
|
+
* String[] args = getScriptArgs();
|
|
44
|
+
* String out = args[0];
|
|
45
|
+
* // ... build JSON, write to out ...
|
|
46
|
+
* }
|
|
47
|
+
* }
|
|
48
|
+
*
|
|
49
|
+
* JSON is hand-built. The shape is small per-call and Ghidra's
|
|
50
|
+
* classpath doesn't reliably expose Jackson/Gson to scripts.
|
|
51
|
+
* ----------------------------------------------------------------*/
|
|
52
|
+
const JSON_HELPERS = `
|
|
53
|
+
private static String jsonStr(String s) {
|
|
54
|
+
if (s == null) return "null";
|
|
55
|
+
StringBuilder sb = new StringBuilder("\\"");
|
|
56
|
+
for (int i = 0; i < s.length(); i++) {
|
|
57
|
+
char c = s.charAt(i);
|
|
58
|
+
switch (c) {
|
|
59
|
+
case '\\\\': sb.append("\\\\\\\\"); break;
|
|
60
|
+
case '"': sb.append("\\\\\\""); break;
|
|
61
|
+
case '\\n': sb.append("\\\\n"); break;
|
|
62
|
+
case '\\r': sb.append("\\\\r"); break;
|
|
63
|
+
case '\\t': sb.append("\\\\t"); break;
|
|
64
|
+
case '\\b': sb.append("\\\\b"); break;
|
|
65
|
+
case '\\f': sb.append("\\\\f"); break;
|
|
66
|
+
default:
|
|
67
|
+
if (c < 0x20) {
|
|
68
|
+
sb.append(String.format("\\\\u%04x", (int) c));
|
|
69
|
+
} else {
|
|
70
|
+
sb.append(c);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
sb.append("\\"");
|
|
75
|
+
return sb.toString();
|
|
76
|
+
}
|
|
77
|
+
private static String hex(long v) { return "0x" + Long.toHexString(v); }
|
|
78
|
+
`;
|
|
79
|
+
const SCRIPT_LIST_FUNCTIONS = `// EvrpListFunctions.java
|
|
80
|
+
import ghidra.app.script.GhidraScript;
|
|
81
|
+
import ghidra.program.model.listing.Function;
|
|
82
|
+
import java.io.FileWriter;
|
|
83
|
+
import java.util.ArrayList;
|
|
84
|
+
import java.util.List;
|
|
85
|
+
|
|
86
|
+
public class EvrpListFunctions extends GhidraScript {
|
|
87
|
+
${JSON_HELPERS}
|
|
88
|
+
@Override
|
|
89
|
+
public void run() throws Exception {
|
|
90
|
+
String[] args = getScriptArgs();
|
|
91
|
+
String out = args[0];
|
|
92
|
+
List<String> entries = new ArrayList<>();
|
|
93
|
+
for (Function f : currentProgram.getFunctionManager().getFunctions(true)) {
|
|
94
|
+
String sig;
|
|
95
|
+
try { sig = f.getPrototypeString(true, true); } catch (Exception e) { sig = f.getName() + "()"; }
|
|
96
|
+
entries.add("{\\"name\\":" + jsonStr(f.getName())
|
|
97
|
+
+ ",\\"entry\\":" + jsonStr(hex(f.getEntryPoint().getOffset()))
|
|
98
|
+
+ ",\\"size\\":" + f.getBody().getNumAddresses()
|
|
99
|
+
+ ",\\"signature\\":" + jsonStr(sig)
|
|
100
|
+
+ ",\\"thunk\\":" + f.isThunk()
|
|
101
|
+
+ ",\\"external\\":" + f.isExternal() + "}");
|
|
102
|
+
}
|
|
103
|
+
StringBuilder sb = new StringBuilder();
|
|
104
|
+
sb.append("{\\"program\\":").append(jsonStr(currentProgram.getName()));
|
|
105
|
+
sb.append(",\\"functionCount\\":").append(entries.size());
|
|
106
|
+
sb.append(",\\"functions\\":[");
|
|
107
|
+
for (int i = 0; i < entries.size(); i++) {
|
|
108
|
+
if (i > 0) sb.append(",");
|
|
109
|
+
sb.append(entries.get(i));
|
|
110
|
+
}
|
|
111
|
+
sb.append("]}");
|
|
112
|
+
try (FileWriter fw = new FileWriter(out)) { fw.write(sb.toString()); }
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
`;
|
|
116
|
+
const SCRIPT_DECOMPILE = `// EvrpDecompile.java
|
|
117
|
+
import ghidra.app.script.GhidraScript;
|
|
118
|
+
import ghidra.app.decompiler.DecompInterface;
|
|
119
|
+
import ghidra.app.decompiler.DecompileResults;
|
|
120
|
+
import ghidra.program.model.address.Address;
|
|
121
|
+
import ghidra.program.model.listing.Function;
|
|
122
|
+
import ghidra.program.model.listing.FunctionManager;
|
|
123
|
+
import ghidra.util.task.ConsoleTaskMonitor;
|
|
124
|
+
import java.io.FileWriter;
|
|
125
|
+
|
|
126
|
+
public class EvrpDecompile extends GhidraScript {
|
|
127
|
+
${JSON_HELPERS}
|
|
128
|
+
@Override
|
|
129
|
+
public void run() throws Exception {
|
|
130
|
+
String[] args = getScriptArgs();
|
|
131
|
+
String out = args[0];
|
|
132
|
+
String target = args[1];
|
|
133
|
+
|
|
134
|
+
FunctionManager fm = currentProgram.getFunctionManager();
|
|
135
|
+
Function fn = null;
|
|
136
|
+
if (target.startsWith("0x")) {
|
|
137
|
+
Address addr = currentProgram.getAddressFactory().getAddress(target);
|
|
138
|
+
fn = fm.getFunctionAt(addr);
|
|
139
|
+
if (fn == null) fn = fm.getFunctionContaining(addr);
|
|
140
|
+
} else {
|
|
141
|
+
for (Function f : fm.getFunctions(true)) {
|
|
142
|
+
if (f.getName().equals(target)) { fn = f; break; }
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
try (FileWriter fw = new FileWriter(out)) {
|
|
147
|
+
if (fn == null) {
|
|
148
|
+
fw.write("{\\"error\\":\\"function not found\\",\\"target\\":" + jsonStr(target) + "}");
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
DecompInterface di = new DecompInterface();
|
|
152
|
+
di.openProgram(currentProgram);
|
|
153
|
+
DecompileResults res = di.decompileFunction(fn, 60, new ConsoleTaskMonitor());
|
|
154
|
+
if (res.decompileCompleted()) {
|
|
155
|
+
String code = res.getDecompiledFunction().getC();
|
|
156
|
+
fw.write("{\\"name\\":" + jsonStr(fn.getName())
|
|
157
|
+
+ ",\\"entry\\":" + jsonStr(hex(fn.getEntryPoint().getOffset()))
|
|
158
|
+
+ ",\\"signature\\":" + jsonStr(fn.getPrototypeString(true, true))
|
|
159
|
+
+ ",\\"decompilation\\":" + jsonStr(code) + "}");
|
|
160
|
+
} else {
|
|
161
|
+
fw.write("{\\"name\\":" + jsonStr(fn.getName())
|
|
162
|
+
+ ",\\"error\\":" + jsonStr(res.getErrorMessage() != null ? res.getErrorMessage() : "decompile failed") + "}");
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
`;
|
|
168
|
+
const SCRIPT_XREFS = `// EvrpXrefs.java
|
|
169
|
+
import ghidra.app.script.GhidraScript;
|
|
170
|
+
import ghidra.program.model.address.Address;
|
|
171
|
+
import ghidra.program.model.listing.Function;
|
|
172
|
+
import ghidra.program.model.listing.FunctionManager;
|
|
173
|
+
import ghidra.program.model.symbol.Reference;
|
|
174
|
+
import ghidra.util.task.ConsoleTaskMonitor;
|
|
175
|
+
import java.io.FileWriter;
|
|
176
|
+
import java.util.Set;
|
|
177
|
+
import java.util.TreeSet;
|
|
178
|
+
|
|
179
|
+
public class EvrpXrefs extends GhidraScript {
|
|
180
|
+
${JSON_HELPERS}
|
|
181
|
+
@Override
|
|
182
|
+
public void run() throws Exception {
|
|
183
|
+
String[] args = getScriptArgs();
|
|
184
|
+
String out = args[0];
|
|
185
|
+
String target = args[1];
|
|
186
|
+
|
|
187
|
+
FunctionManager fm = currentProgram.getFunctionManager();
|
|
188
|
+
Function fn = null;
|
|
189
|
+
if (target.startsWith("0x")) {
|
|
190
|
+
Address addr = currentProgram.getAddressFactory().getAddress(target);
|
|
191
|
+
fn = fm.getFunctionAt(addr);
|
|
192
|
+
if (fn == null) fn = fm.getFunctionContaining(addr);
|
|
193
|
+
} else {
|
|
194
|
+
for (Function f : fm.getFunctions(true)) {
|
|
195
|
+
if (f.getName().equals(target)) { fn = f; break; }
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
try (FileWriter fw = new FileWriter(out)) {
|
|
200
|
+
if (fn == null) {
|
|
201
|
+
fw.write("{\\"error\\":\\"function not found\\",\\"target\\":" + jsonStr(target) + "}");
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
Set<String> callers = new TreeSet<>();
|
|
205
|
+
for (Reference ref : currentProgram.getReferenceManager().getReferencesTo(fn.getEntryPoint())) {
|
|
206
|
+
Function cf = fm.getFunctionContaining(ref.getFromAddress());
|
|
207
|
+
if (cf != null) callers.add(cf.getName());
|
|
208
|
+
}
|
|
209
|
+
Set<String> callees = new TreeSet<>();
|
|
210
|
+
for (Function callee : fn.getCalledFunctions(new ConsoleTaskMonitor())) {
|
|
211
|
+
callees.add(callee.getName());
|
|
212
|
+
}
|
|
213
|
+
StringBuilder sb = new StringBuilder();
|
|
214
|
+
sb.append("{\\"name\\":").append(jsonStr(fn.getName()));
|
|
215
|
+
sb.append(",\\"entry\\":").append(jsonStr(hex(fn.getEntryPoint().getOffset())));
|
|
216
|
+
sb.append(",\\"callers\\":[");
|
|
217
|
+
int i = 0;
|
|
218
|
+
for (String c : callers) { if (i > 0) sb.append(","); sb.append(jsonStr(c)); i++; }
|
|
219
|
+
sb.append("],\\"callees\\":[");
|
|
220
|
+
i = 0;
|
|
221
|
+
for (String c : callees) { if (i > 0) sb.append(","); sb.append(jsonStr(c)); i++; }
|
|
222
|
+
sb.append("]}");
|
|
223
|
+
fw.write(sb.toString());
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
`;
|
|
228
|
+
const SCRIPT_FID_MATCHES = `// EvrpFidMatches.java
|
|
229
|
+
import ghidra.app.script.GhidraScript;
|
|
230
|
+
import ghidra.program.model.listing.Function;
|
|
231
|
+
import java.io.FileWriter;
|
|
232
|
+
import java.util.ArrayList;
|
|
233
|
+
import java.util.List;
|
|
234
|
+
|
|
235
|
+
public class EvrpFidMatches extends GhidraScript {
|
|
236
|
+
${JSON_HELPERS}
|
|
237
|
+
@Override
|
|
238
|
+
public void run() throws Exception {
|
|
239
|
+
String[] args = getScriptArgs();
|
|
240
|
+
String out = args[0];
|
|
241
|
+
List<String> recognized = new ArrayList<>();
|
|
242
|
+
int unrecognized = 0;
|
|
243
|
+
for (Function f : currentProgram.getFunctionManager().getFunctions(true)) {
|
|
244
|
+
String name = f.getName();
|
|
245
|
+
if (name.startsWith("FUN_") || name.startsWith("sub_")) { unrecognized++; continue; }
|
|
246
|
+
if (f.isThunk() || f.isExternal()) continue;
|
|
247
|
+
if (recognized.size() < 1000) {
|
|
248
|
+
recognized.add("{\\"name\\":" + jsonStr(name)
|
|
249
|
+
+ ",\\"entry\\":" + jsonStr(hex(f.getEntryPoint().getOffset()))
|
|
250
|
+
+ ",\\"size\\":" + f.getBody().getNumAddresses() + "}");
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
StringBuilder sb = new StringBuilder();
|
|
254
|
+
sb.append("{\\"program\\":").append(jsonStr(currentProgram.getName()));
|
|
255
|
+
sb.append(",\\"recognized_count\\":").append(recognized.size());
|
|
256
|
+
sb.append(",\\"unrecognized_count\\":").append(unrecognized);
|
|
257
|
+
sb.append(",\\"recognized\\":[");
|
|
258
|
+
for (int i = 0; i < recognized.size(); i++) {
|
|
259
|
+
if (i > 0) sb.append(",");
|
|
260
|
+
sb.append(recognized.get(i));
|
|
261
|
+
}
|
|
262
|
+
sb.append("]}");
|
|
263
|
+
try (FileWriter fw = new FileWriter(out)) { fw.write(sb.toString()); }
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
`;
|
|
267
|
+
function ensureScriptDir() {
|
|
268
|
+
if (!existsSync(SCRIPT_DIR))
|
|
269
|
+
mkdirSync(SCRIPT_DIR, { recursive: true });
|
|
270
|
+
return SCRIPT_DIR;
|
|
271
|
+
}
|
|
272
|
+
function ensureProjectDir(name) {
|
|
273
|
+
if (!/^[A-Za-z0-9._-]+$/.test(name)) {
|
|
274
|
+
throw new Error(`bad project name "${name}" — use [A-Za-z0-9._-]+`);
|
|
275
|
+
}
|
|
276
|
+
if (!existsSync(PROJECTS_ROOT))
|
|
277
|
+
mkdirSync(PROJECTS_ROOT, { recursive: true });
|
|
278
|
+
const dir = join(PROJECTS_ROOT, name);
|
|
279
|
+
if (!existsSync(dir))
|
|
280
|
+
mkdirSync(dir, { recursive: true });
|
|
281
|
+
return dir;
|
|
282
|
+
}
|
|
283
|
+
async function runGhidra(options) {
|
|
284
|
+
const scriptDir = ensureScriptDir();
|
|
285
|
+
const scriptPath = join(scriptDir, options.scriptName);
|
|
286
|
+
writeFileSync(scriptPath, options.scriptBody, 'utf8');
|
|
287
|
+
const projectDir = ensureProjectDir(options.project);
|
|
288
|
+
const outFile = join(tmpdir(), `evrp-ghidra-${Date.now()}-${Math.random().toString(36).slice(2, 8)}.json`);
|
|
289
|
+
const argv = [projectDir, options.project];
|
|
290
|
+
if (options.importBinary) {
|
|
291
|
+
argv.push('-import', options.importBinary, '-overwrite');
|
|
292
|
+
}
|
|
293
|
+
else {
|
|
294
|
+
argv.push('-process', '-noanalysis');
|
|
295
|
+
}
|
|
296
|
+
if (options.readOnly)
|
|
297
|
+
argv.push('-readOnly');
|
|
298
|
+
argv.push('-scriptPath', scriptDir);
|
|
299
|
+
argv.push('-postScript', options.scriptName, outFile, ...options.scriptArgs);
|
|
300
|
+
argv.push('-analysisTimeoutPerFile', '600');
|
|
301
|
+
return await new Promise((resolve, reject) => {
|
|
302
|
+
const start = Date.now();
|
|
303
|
+
const child = spawn(GHIDRA_HEADLESS, argv, {
|
|
304
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
305
|
+
});
|
|
306
|
+
let stdout = '';
|
|
307
|
+
let stderr = '';
|
|
308
|
+
let stdoutBytes = 0;
|
|
309
|
+
let stderrBytes = 0;
|
|
310
|
+
const MAX = 1 * 1024 * 1024;
|
|
311
|
+
child.stdout?.on('data', (b) => {
|
|
312
|
+
if (stdoutBytes < MAX) {
|
|
313
|
+
const room = MAX - stdoutBytes;
|
|
314
|
+
const slice = b.length > room ? b.subarray(0, room) : b;
|
|
315
|
+
stdout += slice.toString();
|
|
316
|
+
stdoutBytes += slice.length;
|
|
317
|
+
}
|
|
318
|
+
});
|
|
319
|
+
child.stderr?.on('data', (b) => {
|
|
320
|
+
if (stderrBytes < MAX) {
|
|
321
|
+
const room = MAX - stderrBytes;
|
|
322
|
+
const slice = b.length > room ? b.subarray(0, room) : b;
|
|
323
|
+
stderr += slice.toString();
|
|
324
|
+
stderrBytes += slice.length;
|
|
325
|
+
}
|
|
326
|
+
});
|
|
327
|
+
const timer = setTimeout(() => {
|
|
328
|
+
child.kill('SIGTERM');
|
|
329
|
+
setTimeout(() => child.kill('SIGKILL'), 1500);
|
|
330
|
+
}, options.timeoutMs ?? DEFAULT_TIMEOUT_MS);
|
|
331
|
+
child.on('error', (err) => {
|
|
332
|
+
clearTimeout(timer);
|
|
333
|
+
reject(err);
|
|
334
|
+
});
|
|
335
|
+
child.on('close', (code) => {
|
|
336
|
+
clearTimeout(timer);
|
|
337
|
+
let output = null;
|
|
338
|
+
if (existsSync(outFile)) {
|
|
339
|
+
try {
|
|
340
|
+
output = JSON.parse(readFileSync(outFile, 'utf8'));
|
|
341
|
+
}
|
|
342
|
+
catch (e) {
|
|
343
|
+
output = { error: `failed to parse script output: ${e.message}` };
|
|
344
|
+
}
|
|
345
|
+
try {
|
|
346
|
+
unlinkSync(outFile);
|
|
347
|
+
}
|
|
348
|
+
catch { /* ignore */ }
|
|
349
|
+
}
|
|
350
|
+
resolve({ exitCode: code, stdout, stderr, output, durationMs: Date.now() - start });
|
|
351
|
+
});
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
function summarize(stdout, stderr) {
|
|
355
|
+
// analyzeHeadless is loud — extract just the final ERROR/WARN lines so
|
|
356
|
+
// the LLM-visible string isn't dominated by JVM banner text.
|
|
357
|
+
const lines = (stdout + '\n' + stderr).split('\n');
|
|
358
|
+
const interesting = lines.filter((l) => /\b(ERROR|WARN|FATAL|Exception|Traceback)\b/.test(l) ||
|
|
359
|
+
/^Analyzing|^DECOMPILER|^FID/i.test(l));
|
|
360
|
+
return interesting.slice(-20).join('\n');
|
|
361
|
+
}
|
|
362
|
+
function buildGhidraTools() {
|
|
363
|
+
return [
|
|
364
|
+
{
|
|
365
|
+
name: 'ghidra_analyze',
|
|
366
|
+
description: 'Run Ghidra analyzeHeadless against a binary. Creates / overwrites a project under ~/.erosolar/ghidra-projects/<project>/. Subsequent ghidra_decompile / ghidra_xrefs / ghidra_list_functions / ghidra_fid_matches calls reuse this project (no re-analysis). Use after any binary change.',
|
|
367
|
+
parameters: {
|
|
368
|
+
type: 'object',
|
|
369
|
+
properties: {
|
|
370
|
+
binary: { type: 'string', description: 'Absolute path to the binary to analyze' },
|
|
371
|
+
project: { type: 'string', description: 'Project name (alphanum/_-./) — pick one per binary so subsequent reads target the right db' },
|
|
372
|
+
processor: { type: 'string', description: 'Optional Ghidra languageID (e.g. "x86:LE:64:default") to skip auto-detect' },
|
|
373
|
+
timeoutMs: { type: 'number', description: 'Wall-clock cap; default 30min' },
|
|
374
|
+
},
|
|
375
|
+
required: ['binary', 'project'],
|
|
376
|
+
},
|
|
377
|
+
handler: async (args) => {
|
|
378
|
+
const r = await runGhidra({
|
|
379
|
+
project: String(args.project),
|
|
380
|
+
scriptName: 'EvrpListFunctions.java',
|
|
381
|
+
scriptBody: SCRIPT_LIST_FUNCTIONS,
|
|
382
|
+
scriptArgs: [],
|
|
383
|
+
importBinary: String(args.binary),
|
|
384
|
+
timeoutMs: typeof args.timeoutMs === 'number' ? args.timeoutMs : undefined,
|
|
385
|
+
});
|
|
386
|
+
const out = r.output;
|
|
387
|
+
const lines = [
|
|
388
|
+
`analyzed binary=${args.binary} project=${args.project}`,
|
|
389
|
+
`exit=${r.exitCode} duration=${r.durationMs}ms`,
|
|
390
|
+
`program=${out?.program ?? '?'} functions=${out?.functionCount ?? 0}`,
|
|
391
|
+
`project_dir=${join(PROJECTS_ROOT, String(args.project))}`,
|
|
392
|
+
];
|
|
393
|
+
const tail = summarize(r.stdout, r.stderr);
|
|
394
|
+
if (tail)
|
|
395
|
+
lines.push('--- analyzeHeadless tail ---', tail);
|
|
396
|
+
return lines.join('\n');
|
|
397
|
+
},
|
|
398
|
+
},
|
|
399
|
+
{
|
|
400
|
+
name: 'ghidra_list_functions',
|
|
401
|
+
description: 'List every defined function in an already-analyzed project (name, entry, size, signature, thunk/external flag). Run ghidra_analyze first.',
|
|
402
|
+
parameters: {
|
|
403
|
+
type: 'object',
|
|
404
|
+
properties: {
|
|
405
|
+
project: { type: 'string' },
|
|
406
|
+
},
|
|
407
|
+
required: ['project'],
|
|
408
|
+
},
|
|
409
|
+
handler: async (args) => {
|
|
410
|
+
const r = await runGhidra({
|
|
411
|
+
project: String(args.project),
|
|
412
|
+
scriptName: 'EvrpListFunctions.java',
|
|
413
|
+
scriptBody: SCRIPT_LIST_FUNCTIONS,
|
|
414
|
+
scriptArgs: [],
|
|
415
|
+
readOnly: true,
|
|
416
|
+
});
|
|
417
|
+
if (r.output === null) {
|
|
418
|
+
return `ghidra_list_functions failed (exit ${r.exitCode})\n${summarize(r.stdout, r.stderr)}`;
|
|
419
|
+
}
|
|
420
|
+
return JSON.stringify(r.output);
|
|
421
|
+
},
|
|
422
|
+
},
|
|
423
|
+
{
|
|
424
|
+
name: 'ghidra_decompile',
|
|
425
|
+
description: 'Decompile one function in an already-analyzed project. Target by name or 0x-address. Returns C pseudocode + signature.',
|
|
426
|
+
parameters: {
|
|
427
|
+
type: 'object',
|
|
428
|
+
properties: {
|
|
429
|
+
project: { type: 'string' },
|
|
430
|
+
target: { type: 'string', description: 'Function name (e.g. "main") or hex address (e.g. "0x401040")' },
|
|
431
|
+
},
|
|
432
|
+
required: ['project', 'target'],
|
|
433
|
+
},
|
|
434
|
+
handler: async (args) => {
|
|
435
|
+
const r = await runGhidra({
|
|
436
|
+
project: String(args.project),
|
|
437
|
+
scriptName: 'EvrpDecompile.java',
|
|
438
|
+
scriptBody: SCRIPT_DECOMPILE,
|
|
439
|
+
scriptArgs: [String(args.target)],
|
|
440
|
+
readOnly: true,
|
|
441
|
+
});
|
|
442
|
+
if (r.output === null) {
|
|
443
|
+
return `ghidra_decompile failed (exit ${r.exitCode})\n${summarize(r.stdout, r.stderr)}`;
|
|
444
|
+
}
|
|
445
|
+
return JSON.stringify(r.output);
|
|
446
|
+
},
|
|
447
|
+
},
|
|
448
|
+
{
|
|
449
|
+
name: 'ghidra_xrefs',
|
|
450
|
+
description: 'List callers and callees of one function in an already-analyzed project. Target by name or 0x-address.',
|
|
451
|
+
parameters: {
|
|
452
|
+
type: 'object',
|
|
453
|
+
properties: {
|
|
454
|
+
project: { type: 'string' },
|
|
455
|
+
target: { type: 'string' },
|
|
456
|
+
},
|
|
457
|
+
required: ['project', 'target'],
|
|
458
|
+
},
|
|
459
|
+
handler: async (args) => {
|
|
460
|
+
const r = await runGhidra({
|
|
461
|
+
project: String(args.project),
|
|
462
|
+
scriptName: 'EvrpXrefs.java',
|
|
463
|
+
scriptBody: SCRIPT_XREFS,
|
|
464
|
+
scriptArgs: [String(args.target)],
|
|
465
|
+
readOnly: true,
|
|
466
|
+
});
|
|
467
|
+
if (r.output === null) {
|
|
468
|
+
return `ghidra_xrefs failed (exit ${r.exitCode})\n${summarize(r.stdout, r.stderr)}`;
|
|
469
|
+
}
|
|
470
|
+
return JSON.stringify(r.output);
|
|
471
|
+
},
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
name: 'ghidra_fid_matches',
|
|
475
|
+
description: 'Dump library-function name recognition results from Ghidra FID. Useful for reasoning about library calls inside a stripped binary.',
|
|
476
|
+
parameters: {
|
|
477
|
+
type: 'object',
|
|
478
|
+
properties: {
|
|
479
|
+
project: { type: 'string' },
|
|
480
|
+
},
|
|
481
|
+
required: ['project'],
|
|
482
|
+
},
|
|
483
|
+
handler: async (args) => {
|
|
484
|
+
const r = await runGhidra({
|
|
485
|
+
project: String(args.project),
|
|
486
|
+
scriptName: 'EvrpFidMatches.java',
|
|
487
|
+
scriptBody: SCRIPT_FID_MATCHES,
|
|
488
|
+
scriptArgs: [],
|
|
489
|
+
readOnly: true,
|
|
490
|
+
});
|
|
491
|
+
if (r.output === null) {
|
|
492
|
+
return `ghidra_fid_matches failed (exit ${r.exitCode})\n${summarize(r.stdout, r.stderr)}`;
|
|
493
|
+
}
|
|
494
|
+
return JSON.stringify(r.output);
|
|
495
|
+
},
|
|
496
|
+
},
|
|
497
|
+
{
|
|
498
|
+
name: 'ghidra_function_diff',
|
|
499
|
+
description: 'Compare two already-analyzed projects at function-set granularity. Returns: only-in-A names, only-in-B names, and signature-changed pairs. For deep semantic diff, decompile each changed function in both projects and compare the C pseudocode.',
|
|
500
|
+
parameters: {
|
|
501
|
+
type: 'object',
|
|
502
|
+
properties: {
|
|
503
|
+
projectA: { type: 'string', description: 'Vulnerable / pre-patch project' },
|
|
504
|
+
projectB: { type: 'string', description: 'Patched project' },
|
|
505
|
+
},
|
|
506
|
+
required: ['projectA', 'projectB'],
|
|
507
|
+
},
|
|
508
|
+
handler: async (args) => {
|
|
509
|
+
const projA = String(args.projectA);
|
|
510
|
+
const projB = String(args.projectB);
|
|
511
|
+
const [rA, rB] = await Promise.all([
|
|
512
|
+
runGhidra({
|
|
513
|
+
project: projA,
|
|
514
|
+
scriptName: 'EvrpListFunctions.java',
|
|
515
|
+
scriptBody: SCRIPT_LIST_FUNCTIONS,
|
|
516
|
+
scriptArgs: [],
|
|
517
|
+
readOnly: true,
|
|
518
|
+
}),
|
|
519
|
+
runGhidra({
|
|
520
|
+
project: projB,
|
|
521
|
+
scriptName: 'EvrpListFunctions.java',
|
|
522
|
+
scriptBody: SCRIPT_LIST_FUNCTIONS,
|
|
523
|
+
scriptArgs: [],
|
|
524
|
+
readOnly: true,
|
|
525
|
+
}),
|
|
526
|
+
]);
|
|
527
|
+
const a = rA.output?.functions ?? [];
|
|
528
|
+
const b = rB.output?.functions ?? [];
|
|
529
|
+
const aMap = new Map(a.map((f) => [f.name, f]));
|
|
530
|
+
const bMap = new Map(b.map((f) => [f.name, f]));
|
|
531
|
+
const onlyInA = [];
|
|
532
|
+
const onlyInB = [];
|
|
533
|
+
const sigChanged = [];
|
|
534
|
+
for (const [name, fa] of aMap) {
|
|
535
|
+
const fb = bMap.get(name);
|
|
536
|
+
if (!fb) {
|
|
537
|
+
onlyInA.push(name);
|
|
538
|
+
}
|
|
539
|
+
else if (fa.signature !== fb.signature) {
|
|
540
|
+
sigChanged.push({ name, a: fa.signature, b: fb.signature });
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
for (const name of bMap.keys()) {
|
|
544
|
+
if (!aMap.has(name))
|
|
545
|
+
onlyInB.push(name);
|
|
546
|
+
}
|
|
547
|
+
return JSON.stringify({
|
|
548
|
+
projectA: projA,
|
|
549
|
+
projectB: projB,
|
|
550
|
+
functionsA: a.length,
|
|
551
|
+
functionsB: b.length,
|
|
552
|
+
onlyInA: onlyInA.slice(0, 200),
|
|
553
|
+
onlyInB: onlyInB.slice(0, 200),
|
|
554
|
+
signatureChanged: sigChanged.slice(0, 200),
|
|
555
|
+
});
|
|
556
|
+
},
|
|
557
|
+
},
|
|
558
|
+
{
|
|
559
|
+
name: 'ghidra_delete_project',
|
|
560
|
+
description: 'Delete a Ghidra project directory under ~/.erosolar/ghidra-projects/. Use sparingly — projects represent expensive analysis runs.',
|
|
561
|
+
parameters: {
|
|
562
|
+
type: 'object',
|
|
563
|
+
properties: { project: { type: 'string' } },
|
|
564
|
+
required: ['project'],
|
|
565
|
+
},
|
|
566
|
+
handler: async (args) => {
|
|
567
|
+
const dir = join(PROJECTS_ROOT, String(args.project));
|
|
568
|
+
if (!/^[A-Za-z0-9._-]+$/.test(String(args.project))) {
|
|
569
|
+
return `bad project name "${args.project}"`;
|
|
570
|
+
}
|
|
571
|
+
if (!existsSync(dir))
|
|
572
|
+
return `no such project: ${args.project}`;
|
|
573
|
+
rmSync(dir, { recursive: true, force: true });
|
|
574
|
+
return `deleted ${dir}`;
|
|
575
|
+
},
|
|
576
|
+
},
|
|
577
|
+
];
|
|
578
|
+
}
|
|
579
|
+
export class GhidraHeadlessCapabilityModule {
|
|
580
|
+
id = 'capability.ghidraHeadless';
|
|
581
|
+
description = 'Ghidra analyzeHeadless wrappers — ghidra_analyze, ghidra_list_functions, ghidra_decompile, ghidra_xrefs, ghidra_fid_matches, ghidra_function_diff, ghidra_delete_project. Each tool spawns analyzeHeadless once with an embedded Jython post-script; project databases persist under ~/.erosolar/ghidra-projects/.';
|
|
582
|
+
async create(_context) {
|
|
583
|
+
void _context;
|
|
584
|
+
logDebug('[GhidraHeadless] Capability initialized');
|
|
585
|
+
const toolSuite = {
|
|
586
|
+
id: 'ghidraHeadless.tools',
|
|
587
|
+
description: 'Ghidra analyzeHeadless wrappers',
|
|
588
|
+
tools: buildGhidraTools(),
|
|
589
|
+
};
|
|
590
|
+
return { id: this.id, description: this.description, toolSuite };
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
//# sourceMappingURL=ghidraHeadlessCapability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ghidraHeadlessCapability.js","sourceRoot":"","sources":["../../src/capabilities/ghidraHeadlessCapability.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,5 +13,6 @@ export { AflppCapabilityModule } from './aflppCapability.js';
|
|
|
13
13
|
export { GdbCapabilityModule } from './gdbCapability.js';
|
|
14
14
|
export { BinaryAnalysisCapabilityModule } from './binaryAnalysisCapability.js';
|
|
15
15
|
export { PwntoolsCapabilityModule } from './pwntoolsCapability.js';
|
|
16
|
+
export { GhidraHeadlessCapabilityModule } from './ghidraHeadlessCapability.js';
|
|
16
17
|
export { BaseCapabilityModule, type BaseCapabilityOptions, ToolSuiteBuilder, SharedUtilities } from './baseCapability.js';
|
|
17
18
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/capabilities/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,KAAK,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGvI,OAAO,EAAE,0BAA0B,EAAE,KAAK,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACzG,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,sBAAsB,EAAE,KAAK,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAE,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/capabilities/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,KAAK,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGvI,OAAO,EAAE,0BAA0B,EAAE,KAAK,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACzG,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,sBAAsB,EAAE,KAAK,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAE,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAI/E,OAAO,EAAE,oBAAoB,EAAE,KAAK,qBAAqB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -15,6 +15,7 @@ export { AflppCapabilityModule } from './aflppCapability.js';
|
|
|
15
15
|
export { GdbCapabilityModule } from './gdbCapability.js';
|
|
16
16
|
export { BinaryAnalysisCapabilityModule } from './binaryAnalysisCapability.js';
|
|
17
17
|
export { PwntoolsCapabilityModule } from './pwntoolsCapability.js';
|
|
18
|
+
export { GhidraHeadlessCapabilityModule } from './ghidraHeadlessCapability.js';
|
|
18
19
|
// CoworkCapabilityModule moved to ~/GitHub/erosolar-cowork (2026-05) —
|
|
19
20
|
// productivity-assistant surface kept separate from the coding CLI.
|
|
20
21
|
// See CLAUDE.md "Capability separation".
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/capabilities/index.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,OAAO,EAAE,6BAA6B,EAAE,6BAA6B,EAA6B,MAAM,8BAA8B,CAAC;AAEvI,4BAA4B;AAC5B,OAAO,EAAE,0BAA0B,EAAoC,MAAM,2BAA2B,CAAC;AACzG,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAA8B,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,sBAAsB,EAAgC,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAE,mBAAmB,EAA6B,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAA8B,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,uEAAuE;AACvE,oEAAoE;AACpE,yCAAyC;AACzC,OAAO,EAAE,oBAAoB,EAA8B,gBAAgB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/capabilities/index.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,OAAO,EAAE,6BAA6B,EAAE,6BAA6B,EAA6B,MAAM,8BAA8B,CAAC;AAEvI,4BAA4B;AAC5B,OAAO,EAAE,0BAA0B,EAAoC,MAAM,2BAA2B,CAAC;AACzG,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAA8B,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,sBAAsB,EAAgC,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAE,mBAAmB,EAA6B,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAA8B,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAC/E,uEAAuE;AACvE,oEAAoE;AACpE,yCAAyC;AACzC,OAAO,EAAE,oBAAoB,EAA8B,gBAAgB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Constitutional reviewer-agent guard. Runs between user-configured
|
|
3
|
+
* shell hooks and the actual tool handler. Two layers:
|
|
4
|
+
*
|
|
5
|
+
* 1. **Hardcoded heuristic guard (always on)**. Catches the
|
|
6
|
+
* well-known catastrophic patterns (rm -rf /, curl-to-shell,
|
|
7
|
+
* anything that targets a path outside the workspace AND
|
|
8
|
+
* destroys data). Cheap, deterministic, no LLM call.
|
|
9
|
+
*
|
|
10
|
+
* 2. **LLM reviewer (gated by EROSOLAR_REVIEWER=1)**. Sends the
|
|
11
|
+
* proposed tool call + a brief constitution to a small, cheap
|
|
12
|
+
* reviewer model (Anthropic Haiku by default). Returns one of
|
|
13
|
+
* `approve | refine | veto` with a reason. The decision is
|
|
14
|
+
* logged to Firestore at reviewer_log/{uid}/decisions/{id} for
|
|
15
|
+
* operator review.
|
|
16
|
+
*
|
|
17
|
+
* The reviewer fails *open* on any error (network blip, unparseable
|
|
18
|
+
* model response, missing API key). Refusing-by-default would brick
|
|
19
|
+
* the CLI for users without the reviewer model configured. Instead,
|
|
20
|
+
* a failure is itself an audit-log event the operator can review.
|
|
21
|
+
*/
|
|
22
|
+
export interface ReviewDecision {
|
|
23
|
+
decision: 'approve' | 'refine' | 'veto';
|
|
24
|
+
reason: string;
|
|
25
|
+
source: 'heuristic' | 'llm' | 'disabled' | 'error';
|
|
26
|
+
}
|
|
27
|
+
export declare function buildReviewPrompt(toolName: string, args: unknown): string;
|
|
28
|
+
export declare function parseReviewDecision(text: string): ReviewDecision | null;
|
|
29
|
+
/**
|
|
30
|
+
* Review a proposed tool call. Decision flow:
|
|
31
|
+
* 1. Heuristic veto patterns — if any match, veto immediately (no LLM).
|
|
32
|
+
* 2. If EROSOLAR_REVIEWER env is on AND ANTHROPIC_API_KEY is present,
|
|
33
|
+
* call the reviewer model.
|
|
34
|
+
* 3. Otherwise, approve.
|
|
35
|
+
*/
|
|
36
|
+
export declare function reviewToolCall(toolName: string, args: unknown): Promise<ReviewDecision>;
|
|
37
|
+
//# sourceMappingURL=reviewerGuard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reviewerGuard.d.ts","sourceRoot":"","sources":["../../src/core/reviewerGuard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,GAAG,KAAK,GAAG,UAAU,GAAG,OAAO,CAAC;CACpD;AAwGD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAazE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAWvE;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAmC7F"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Constitutional reviewer-agent guard. Runs between user-configured
|
|
3
|
+
* shell hooks and the actual tool handler. Two layers:
|
|
4
|
+
*
|
|
5
|
+
* 1. **Hardcoded heuristic guard (always on)**. Catches the
|
|
6
|
+
* well-known catastrophic patterns (rm -rf /, curl-to-shell,
|
|
7
|
+
* anything that targets a path outside the workspace AND
|
|
8
|
+
* destroys data). Cheap, deterministic, no LLM call.
|
|
9
|
+
*
|
|
10
|
+
* 2. **LLM reviewer (gated by EROSOLAR_REVIEWER=1)**. Sends the
|
|
11
|
+
* proposed tool call + a brief constitution to a small, cheap
|
|
12
|
+
* reviewer model (Anthropic Haiku by default). Returns one of
|
|
13
|
+
* `approve | refine | veto` with a reason. The decision is
|
|
14
|
+
* logged to Firestore at reviewer_log/{uid}/decisions/{id} for
|
|
15
|
+
* operator review.
|
|
16
|
+
*
|
|
17
|
+
* The reviewer fails *open* on any error (network blip, unparseable
|
|
18
|
+
* model response, missing API key). Refusing-by-default would brick
|
|
19
|
+
* the CLI for users without the reviewer model configured. Instead,
|
|
20
|
+
* a failure is itself an audit-log event the operator can review.
|
|
21
|
+
*/
|
|
22
|
+
const CONSTITUTION = `You are the constitutional reviewer for a CLI agent that holds offsec
|
|
23
|
+
tooling. Before any tool call fires, you say approve / refine / veto.
|
|
24
|
+
|
|
25
|
+
PRINCIPLES (most important first):
|
|
26
|
+
|
|
27
|
+
1. Operator authorization is the load-bearing assumption. The user has
|
|
28
|
+
pre-authorized targets via the rulebook + their own engagement
|
|
29
|
+
scope. You don't second-guess that. You DO catch drift: tools
|
|
30
|
+
targeting hosts/files/URLs that have nothing to do with the recent
|
|
31
|
+
conversation.
|
|
32
|
+
|
|
33
|
+
2. Coordinated disclosure is pinned. Any tool call whose effect is to
|
|
34
|
+
exfiltrate, sell, or silently retain a finding without sending it
|
|
35
|
+
through hackerone / vendor PSIRT / CERT-CC / published-advisory /
|
|
36
|
+
internal-writeup must be vetoed. "Broker" / "buyer" / "private
|
|
37
|
+
sale" in args means veto.
|
|
38
|
+
|
|
39
|
+
3. Destructive operations on shared infrastructure get refined. rm -rf
|
|
40
|
+
on a path the agent didn't itself create, force-push to main,
|
|
41
|
+
DROP TABLE on prod-shaped DBs — these get a refine with a tighter
|
|
42
|
+
scope suggestion, not a veto (the operator can override).
|
|
43
|
+
|
|
44
|
+
4. Scope creep beats target drift. "We were investigating X but the
|
|
45
|
+
agent now wants to scan Y" gets a veto. "We were on phase.recon
|
|
46
|
+
but the agent skipped to phase.disclose" gets a refine.
|
|
47
|
+
|
|
48
|
+
5. Fail open. If you can't decide, approve with reason="uncertain —
|
|
49
|
+
approving conservatively". Refusing every uncertain call locks the
|
|
50
|
+
CLI for no benefit.`;
|
|
51
|
+
const VETO_PATTERNS_BASH = [
|
|
52
|
+
// rm -rf where the target is the filesystem root, $HOME, or ~ as the
|
|
53
|
+
// full atom (not a path prefix). The lookahead requires a shell-
|
|
54
|
+
// separator or end-of-string immediately after, so `rm -rf /tmp/x`
|
|
55
|
+
// is allowed and `rm -rf /` / `rm -rf $HOME` are vetoed.
|
|
56
|
+
{ pattern: /\brm\s+-[a-zA-Z]*r[a-zA-Z]*f?\s+(?:\/|\$HOME|~)(?=\s|$|;|&|\|)/, reason: 'rm -rf on filesystem root, $HOME, or ~' },
|
|
57
|
+
// dd / mkfs to block devices
|
|
58
|
+
{ pattern: /\bdd\s+if=\/dev\/(?:zero|random|urandom)\s+of=\/(?:dev\/[hsv]d[a-z]|[A-Za-z])/, reason: 'dd-zero/random to a block device or filesystem root' },
|
|
59
|
+
{ pattern: /\bmkfs\b.*\/dev\/[hsv]d[a-z]/, reason: 'mkfs targeting a block device' },
|
|
60
|
+
// fork bomb
|
|
61
|
+
{ pattern: /:\(\)\s*\{\s*:\|:&\s*\}\s*;\s*:/, reason: 'fork bomb' },
|
|
62
|
+
// curl/wget piped to shell. Match wget/curl, any non-pipe/separator
|
|
63
|
+
// text up to the first |, then a shell name as the next word.
|
|
64
|
+
{ pattern: /\bcurl\b[^|;&]*\|\s*(?:bash|sh|zsh|fish)\b/i, reason: 'curl-to-shell' },
|
|
65
|
+
{ pattern: /\bwget\b[^|;&]*\|\s*(?:bash|sh|zsh|fish)\b/i, reason: 'wget-to-shell' },
|
|
66
|
+
];
|
|
67
|
+
const VETO_PATTERNS_DISCLOSURE = /\b(?:broker|brokerage|zerodium|crowdfense|silent\s+sale|private\s+buyer|sell\s+(?:exploit|0day|zero[- ]day))\b/i;
|
|
68
|
+
function heuristicReview(toolName, args) {
|
|
69
|
+
if (toolName === 'Bash' || toolName === 'kali_sqlmap' /* … other shell-shaped tools */) {
|
|
70
|
+
const cmd = args?.command || '';
|
|
71
|
+
for (const { pattern, reason } of VETO_PATTERNS_BASH) {
|
|
72
|
+
if (pattern.test(cmd)) {
|
|
73
|
+
return { decision: 'veto', reason, source: 'heuristic' };
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
// Cross-tool: any args field that looks like a brokerage handoff is
|
|
78
|
+
// a hard veto regardless of the tool surface.
|
|
79
|
+
const argsJson = JSON.stringify(args ?? {});
|
|
80
|
+
if (VETO_PATTERNS_DISCLOSURE.test(argsJson)) {
|
|
81
|
+
return { decision: 'veto', reason: 'disclosure path resembles brokerage / private sale', source: 'heuristic' };
|
|
82
|
+
}
|
|
83
|
+
return null; // no heuristic verdict — defer to LLM (or approve)
|
|
84
|
+
}
|
|
85
|
+
function isLlmReviewerEnabled() {
|
|
86
|
+
const v = (process.env['EROSOLAR_REVIEWER'] || '').toLowerCase();
|
|
87
|
+
return v === '1' || v === 'true' || v === 'on';
|
|
88
|
+
}
|
|
89
|
+
let cachedReviewer = null;
|
|
90
|
+
let reviewerInitFailed = false;
|
|
91
|
+
async function getLlmReviewer() {
|
|
92
|
+
if (reviewerInitFailed)
|
|
93
|
+
return null;
|
|
94
|
+
if (cachedReviewer)
|
|
95
|
+
return cachedReviewer;
|
|
96
|
+
if (!process.env['ANTHROPIC_API_KEY']) {
|
|
97
|
+
reviewerInitFailed = true;
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
try {
|
|
101
|
+
const { createProvider, hasProvider } = await import('../providers/providerFactory.js');
|
|
102
|
+
if (!hasProvider('anthropic')) {
|
|
103
|
+
// Provider plugin not registered yet — happens when reviewerGuard
|
|
104
|
+
// runs before agent boot completes the registration. Mark as
|
|
105
|
+
// failed (we'll fail open) and let the next boot retry.
|
|
106
|
+
reviewerInitFailed = true;
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
cachedReviewer = createProvider({
|
|
110
|
+
provider: 'anthropic',
|
|
111
|
+
model: process.env['EROSOLAR_REVIEWER_MODEL'] || 'claude-haiku-4-5-20251001',
|
|
112
|
+
});
|
|
113
|
+
return cachedReviewer;
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
reviewerInitFailed = true;
|
|
117
|
+
return null;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
export function buildReviewPrompt(toolName, args) {
|
|
121
|
+
return [
|
|
122
|
+
CONSTITUTION,
|
|
123
|
+
'',
|
|
124
|
+
'## Proposed tool call',
|
|
125
|
+
`tool: ${toolName}`,
|
|
126
|
+
`args: ${JSON.stringify(args, null, 2).slice(0, 4000)}`,
|
|
127
|
+
'',
|
|
128
|
+
'## Output',
|
|
129
|
+
'Reply with ONLY a JSON object on a single line:',
|
|
130
|
+
'{"decision": "approve" | "refine" | "veto", "reason": "≤200 chars"}',
|
|
131
|
+
'No preamble, no markdown fences, no commentary.',
|
|
132
|
+
].join('\n');
|
|
133
|
+
}
|
|
134
|
+
export function parseReviewDecision(text) {
|
|
135
|
+
const match = text.match(/\{[\s\S]*?\}/);
|
|
136
|
+
if (!match)
|
|
137
|
+
return null;
|
|
138
|
+
try {
|
|
139
|
+
const obj = JSON.parse(match[0]);
|
|
140
|
+
const d = String(obj.decision || '').toLowerCase();
|
|
141
|
+
if (d === 'approve' || d === 'refine' || d === 'veto') {
|
|
142
|
+
return { decision: d, reason: String(obj.reason || '').slice(0, 200), source: 'llm' };
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
catch { /* fall through */ }
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Review a proposed tool call. Decision flow:
|
|
150
|
+
* 1. Heuristic veto patterns — if any match, veto immediately (no LLM).
|
|
151
|
+
* 2. If EROSOLAR_REVIEWER env is on AND ANTHROPIC_API_KEY is present,
|
|
152
|
+
* call the reviewer model.
|
|
153
|
+
* 3. Otherwise, approve.
|
|
154
|
+
*/
|
|
155
|
+
export async function reviewToolCall(toolName, args) {
|
|
156
|
+
const heuristic = heuristicReview(toolName, args);
|
|
157
|
+
if (heuristic)
|
|
158
|
+
return heuristic;
|
|
159
|
+
if (!isLlmReviewerEnabled()) {
|
|
160
|
+
return { decision: 'approve', reason: 'reviewer disabled', source: 'disabled' };
|
|
161
|
+
}
|
|
162
|
+
const reviewer = await getLlmReviewer();
|
|
163
|
+
if (!reviewer) {
|
|
164
|
+
return { decision: 'approve', reason: 'no LLM reviewer configured', source: 'disabled' };
|
|
165
|
+
}
|
|
166
|
+
try {
|
|
167
|
+
const prompt = buildReviewPrompt(toolName, args);
|
|
168
|
+
const res = await reviewer.generate([{ role: 'user', content: prompt }], []);
|
|
169
|
+
const text = res.type === 'message' ? res.content : (res.content ?? '');
|
|
170
|
+
const parsed = parseReviewDecision(text);
|
|
171
|
+
if (!parsed) {
|
|
172
|
+
return {
|
|
173
|
+
decision: 'approve',
|
|
174
|
+
reason: 'unparseable reviewer response — failing open',
|
|
175
|
+
source: 'error',
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
return parsed;
|
|
179
|
+
}
|
|
180
|
+
catch (err) {
|
|
181
|
+
return {
|
|
182
|
+
decision: 'approve',
|
|
183
|
+
reason: `reviewer error: ${err.message.slice(0, 100)} — failing open`,
|
|
184
|
+
source: 'error',
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=reviewerGuard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reviewerGuard.js","sourceRoot":"","sources":["../../src/core/reviewerGuard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolRuntime.d.ts","sourceRoot":"","sources":["../../src/core/toolRuntime.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"toolRuntime.d.ts","sourceRoot":"","sources":["../../src/core/toolRuntime.ts"],"names":[],"mappings":"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"}
|
package/dist/core/toolRuntime.js
CHANGED
|
@@ -248,6 +248,57 @@ export class ToolRuntime {
|
|
|
248
248
|
// A buggy hook should never crash the agent. Log + continue.
|
|
249
249
|
logDebug('[hooks] PreToolUse error: ' + err.message);
|
|
250
250
|
}
|
|
251
|
+
// Constitutional reviewer guard. Two layers:
|
|
252
|
+
// - Heuristic veto patterns (always on) — `rm -rf /` style
|
|
253
|
+
// destructive ops, fork bombs, curl-to-shell, broker-shaped
|
|
254
|
+
// disclosure args.
|
|
255
|
+
// - LLM reviewer (gated by EROSOLAR_REVIEWER=1, default off)
|
|
256
|
+
// — Anthropic Haiku-tier model checks the call against a
|
|
257
|
+
// short constitution, returns approve/refine/veto.
|
|
258
|
+
// Vetoes block the call. Refines log + continue (soft warning).
|
|
259
|
+
// All non-approve decisions are audit-logged (best-effort) to
|
|
260
|
+
// Firestore at reviewer_log/{uid}/decisions/{id}. The reviewer
|
|
261
|
+
// fails open on any internal error — refusing every uncertain
|
|
262
|
+
// call would brick the CLI for users without the reviewer
|
|
263
|
+
// model configured.
|
|
264
|
+
try {
|
|
265
|
+
const { reviewToolCall } = await import('./reviewerGuard.js');
|
|
266
|
+
const review = await reviewToolCall(call.name, args);
|
|
267
|
+
if (review.decision !== 'approve') {
|
|
268
|
+
// Best-effort audit log — fire-and-forget.
|
|
269
|
+
void (async () => {
|
|
270
|
+
try {
|
|
271
|
+
const { writeReviewerLog } = await import('./userApproval.js');
|
|
272
|
+
await writeReviewerLog({
|
|
273
|
+
toolName: call.name,
|
|
274
|
+
decision: review.decision,
|
|
275
|
+
reason: review.reason,
|
|
276
|
+
source: review.source,
|
|
277
|
+
argsSummary: JSON.stringify(args).slice(0, 500),
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
catch { /* swallow — audit is non-critical */ }
|
|
281
|
+
})();
|
|
282
|
+
if (review.decision === 'veto') {
|
|
283
|
+
const message = `Error: ${call.name} vetoed by constitutional reviewer (${review.source}): ${review.reason}`;
|
|
284
|
+
this.observer?.onToolError?.(augmentedCall, message);
|
|
285
|
+
this.recordToolHistory({
|
|
286
|
+
toolName: call.name,
|
|
287
|
+
args,
|
|
288
|
+
timestamp: Date.now(),
|
|
289
|
+
success: false,
|
|
290
|
+
hasOutput: false,
|
|
291
|
+
});
|
|
292
|
+
return message;
|
|
293
|
+
}
|
|
294
|
+
// 'refine' is a soft warning — log and proceed; the model
|
|
295
|
+
// will see the tool output and can self-correct on retry.
|
|
296
|
+
logDebug(`[reviewer] refine ${call.name}: ${review.reason}`);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
catch (err) {
|
|
300
|
+
logDebug('[reviewer] guard error: ' + err.message);
|
|
301
|
+
}
|
|
251
302
|
const result = await toolExecutionContext.run({ call: augmentedCall, observer: this.observer ?? undefined }, async () => record.definition.handler(args));
|
|
252
303
|
let output = typeof result === 'string' ? result : JSON.stringify(result, null, 2);
|
|
253
304
|
// PostToolUse hooks: append text from each matching hook so
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolRuntime.js","sourceRoot":"","sources":["../../src/core/toolRuntime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"toolRuntime.js","sourceRoot":"","sources":["../../src/core/toolRuntime.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,6 +53,27 @@ export declare function requestApproval(): Promise<{
|
|
|
53
53
|
ok: boolean;
|
|
54
54
|
reason?: string;
|
|
55
55
|
}>;
|
|
56
|
+
export interface ReviewerLogEntry {
|
|
57
|
+
toolName: string;
|
|
58
|
+
decision: 'approve' | 'refine' | 'veto';
|
|
59
|
+
reason: string;
|
|
60
|
+
source: 'heuristic' | 'llm' | 'disabled' | 'error';
|
|
61
|
+
/** Truncated/redacted args summary — full args are NOT logged. */
|
|
62
|
+
argsSummary: string;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Append a reviewer-decision audit entry at
|
|
66
|
+
* `reviewer_log/{uid}/decisions/{id}`. Best-effort: a failure here
|
|
67
|
+
* doesn't block the agent (the in-process veto already happened).
|
|
68
|
+
*
|
|
69
|
+
* `argsSummary` is a short, sanitized rendering of the proposed args
|
|
70
|
+
* — we deliberately do NOT log full args because they may contain
|
|
71
|
+
* tokens or PII the user expected to stay local.
|
|
72
|
+
*/
|
|
73
|
+
export declare function writeReviewerLog(entry: ReviewerLogEntry): Promise<{
|
|
74
|
+
ok: boolean;
|
|
75
|
+
reason?: string;
|
|
76
|
+
}>;
|
|
56
77
|
export interface UsageLogEntry {
|
|
57
78
|
profile: string;
|
|
58
79
|
model: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userApproval.d.ts","sourceRoot":"","sources":["../../src/core/userApproval.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD;AA6CD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA6C7E;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA6BjF;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAiCnG"}
|
|
1
|
+
{"version":3,"file":"userApproval.d.ts","sourceRoot":"","sources":["../../src/core/userApproval.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD;AA6CD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA6C7E;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA6BjF;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,GAAG,KAAK,GAAG,UAAU,GAAG,OAAO,CAAC;IACnD,kEAAkE;IAClE,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAkCzG;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAiCnG"}
|
|
@@ -148,6 +148,51 @@ export async function requestApproval() {
|
|
|
148
148
|
return { ok: false, reason: err instanceof Error ? err.message : String(err) };
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* Append a reviewer-decision audit entry at
|
|
153
|
+
* `reviewer_log/{uid}/decisions/{id}`. Best-effort: a failure here
|
|
154
|
+
* doesn't block the agent (the in-process veto already happened).
|
|
155
|
+
*
|
|
156
|
+
* `argsSummary` is a short, sanitized rendering of the proposed args
|
|
157
|
+
* — we deliberately do NOT log full args because they may contain
|
|
158
|
+
* tokens or PII the user expected to stay local.
|
|
159
|
+
*/
|
|
160
|
+
export async function writeReviewerLog(entry) {
|
|
161
|
+
const status = getAuthStatus();
|
|
162
|
+
if (!status.authenticated || !status.uid) {
|
|
163
|
+
return { ok: false, reason: 'not signed in' };
|
|
164
|
+
}
|
|
165
|
+
try {
|
|
166
|
+
const idToken = await getValidIdToken();
|
|
167
|
+
const id = `${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
|
|
168
|
+
const url = `${FIRESTORE_BASE}/reviewer_log/${encodeURIComponent(status.uid)}/decisions?documentId=${encodeURIComponent(id)}`;
|
|
169
|
+
const body = {
|
|
170
|
+
fields: {
|
|
171
|
+
uid: { stringValue: status.uid },
|
|
172
|
+
email: { stringValue: status.email ?? '' },
|
|
173
|
+
loggedAt: { timestampValue: new Date().toISOString() },
|
|
174
|
+
toolName: { stringValue: entry.toolName },
|
|
175
|
+
decision: { stringValue: entry.decision },
|
|
176
|
+
reason: { stringValue: entry.reason.slice(0, 200) },
|
|
177
|
+
source: { stringValue: entry.source },
|
|
178
|
+
argsSummary: { stringValue: entry.argsSummary.slice(0, 500) },
|
|
179
|
+
},
|
|
180
|
+
};
|
|
181
|
+
const res = await fetch(url, {
|
|
182
|
+
method: 'POST',
|
|
183
|
+
headers: { Authorization: `Bearer ${idToken}`, 'Content-Type': 'application/json' },
|
|
184
|
+
body: JSON.stringify(body),
|
|
185
|
+
});
|
|
186
|
+
if (!res.ok) {
|
|
187
|
+
const txt = await res.text().catch(() => '<no body>');
|
|
188
|
+
return { ok: false, reason: `Firestore ${res.status}: ${txt.slice(0, 200)}` };
|
|
189
|
+
}
|
|
190
|
+
return { ok: true };
|
|
191
|
+
}
|
|
192
|
+
catch (err) {
|
|
193
|
+
return { ok: false, reason: err instanceof Error ? err.message : String(err) };
|
|
194
|
+
}
|
|
195
|
+
}
|
|
151
196
|
/**
|
|
152
197
|
* Append an audit-log entry at `usage_logs/{uid}/sessions/{sessionId}`.
|
|
153
198
|
* Best-effort: a Firestore failure does NOT block the user's session
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userApproval.js","sourceRoot":"","sources":["../../src/core/userApproval.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"userApproval.js","sourceRoot":"","sources":["../../src/core/userApproval.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED